Console Output
Skipping 15,677 KB..
Full LogTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTest
crane_align/
extrinsics/
hardware/
hdmap/
hdmap_interface/
hesai_lidar/
imv_spreader_detection/
lane_detection/
lidar_loc_v2/
master/
perception/
pncc_common_config/
pncc_port_related_config/
pncc_vehicle_related_config/
pointcloud/
prediction/
rslidar_sdk/
slave/
system-ros/
[Pipeline] echo
最终目录包含slave目录,进行合并操作
[Pipeline] sh
+ cp -r /root/workspace/params-submodule/yiwu-suxi-submodule/T10/slave/params/slave/camera_driver /root/workspace/params-submodule/yiwu-suxi-submodule/T10/slave/params/slave/recorder.toml /root/workspace/params-submodule/yiwu-suxi-submodule/T10/slave/params/slave/system-ros /root/workspace/params-submodule/yiwu-suxi-submodule/T10/slave/params/
[Pipeline] sh
+ mkdir -p params_orin_slave_T10_2026-09-22_13-44-36/
+ mv params/ params_orin_slave_T10_2026-09-22_13-44-36/
[Pipeline] sh
+ zip -rq params_orin_slave_T10_2026-09-22_13-44-36.zip params_orin_slave_T10_2026-09-22_13-44-36 ./version.json
[Pipeline] echo
/root/workspace/params-submodule/yiwu-suxi-submodule/T10/slave/params_orin_slave_T10_2026-09-22_13-44-36.zip,/root/workspace/params-submodule/yiwu-suxi-submodule/T10/slave/version.json
[Pipeline] sh
+ curl -X POST http://172.16.110.148:60180/ota-api/otaUploadFileAndVersion --form 'Content-Type="multipart/form-data"' --form 'file=@"/root/workspace/params-submodule/yiwu-suxi-submodule/T10/slave/params_orin_slave_T10_2026-09-22_13-44-36.zip"' --form 'version=@"/root/workspace/params-submodule/yiwu-suxi-submodule/T10/slave/version.json"'
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
0 0 0 0 0 0 0 0 --:--:-- --:--:-- --:--:-- 0
0 160M 0 0 0 0 0 0 --:--:-- --:--:-- --:--:-- 0
2 160M 0 0 2 3840k 0 2594k 0:01:03 0:00:01 0:01:02 2592k
5 160M 0 0 5 8512k 0 3403k 0:00:48 0:00:02 0:00:46 3402k
8 160M 0 0 8 13.3M 0 3920k 0:00:41 0:00:03 0:00:38 3919k
11 160M 0 0 11 18.9M 0 4307k 0:00:38 0:00:04 0:00:34 4306k
15 160M 0 0 15 24.4M 0 4565k 0:00:35 0:00:05 0:00:30 5065k
18 160M 0 0 18 29.1M 0 4606k 0:00:35 0:00:06 0:00:29 5202k
21 160M 0 0 21 33.9M 0 4642k 0:00:35 0:00:07 0:00:28 5262k
24 160M 0 0 24 39.2M 0 4742k 0:00:34 0:00:08 0:00:26 5314k
28 160M 0 0 28 44.8M 0 4840k 0:00:33 0:00:09 0:00:24 5319k
31 160M 0 0 31 50.5M 0 4936k 0:00:33 0:00:10 0:00:23 5342k
35 160M 0 0 35 56.3M 0 5015k 0:00:32 0:00:11 0:00:21 5543k
38 160M 0 0 38 62.2M 0 5109k 0:00:32 0:00:12 0:00:20 5811k
42 160M 0 0 42 68.8M 0 5221k 0:00:31 0:00:13 0:00:18 6030k
47 160M 0 0 47 75.4M 0 5337k 0:00:30 0:00:14 0:00:16 6284k
51 160M 0 0 51 82.6M 0 5462k 0:00:30 0:00:15 0:00:15 6563k
56 160M 0 0 56 90.0M 0 5590k 0:00:29 0:00:16 0:00:13 6913k
60 160M 0 0 60 97.6M 0 5720k 0:00:28 0:00:17 0:00:11 7240k
65 160M 0 0 65 104M 0 5797k 0:00:28 0:00:18 0:00:10 7353k
69 160M 0 0 69 112M 0 5891k 0:00:27 0:00:19 0:00:08 7496k
72 160M 0 0 72 115M 0 5748k 0:00:28 0:00:20 0:00:08 6612k
74 160M 0 0 74 119M 0 5684k 0:00:28 0:00:21 0:00:07 5994k
77 160M 0 0 77 123M 0 5640k 0:00:29 0:00:22 0:00:07 5361k
80 160M 0 0 80 128M 0 5607k 0:00:29 0:00:23 0:00:06 4904k
83 160M 0 0 83 133M 0 5590k 0:00:29 0:00:24 0:00:05 4416k
86 160M 0 0 86 139M 0 5588k 0:00:29 0:00:25 0:00:04 4914k
90 160M 0 0 90 144M 0 5598k 0:00:29 0:00:26 0:00:03 5228k
94 160M 0 0 94 150M 0 5621k 0:00:29 0:00:27 0:00:02 5537k
98 160M 0 0 98 157M 0 5657k 0:00:29 0:00:28 0:00:01 5889k
100 160M 0 0 100 160M 0 5484k 0:00:29 0:00:29 --:--:-- 5008k
100 160M 0 0 100 160M 0 5307k 0:00:30 0:00:30 --:--:-- 3989k
100 160M 0 0 100 160M 0 5140k 0:00:31 0:00:31 --:--:-- 2913k
100 160M 0 0 100 160M 0 4984k 0:00:32 0:00:32 --:--:-- 1763k
100 160M 0 0 100 160M 0 4837k 0:00:33 0:00:33 --:--:-- 551k
100 160M 0 0 100 160M 0 4698k 0:00:34 0:00:34 --:--:-- 0
100 160M 0 0 100 160M 0 4567k 0:00:35 0:00:35 --:--:-- 0
100 160M 0 0 100 160M 0 4443k 0:00:36 0:00:36 --:--:-- 0
100 160M 0 0 100 160M 0 4326k 0:00:37 0:00:37 --:--:-- 0
100 160M 0 0 100 160M 0 4215k 0:00:38 0:00:38 --:--:-- 0
100 160M 0 0 100 160M 0 4109k 0:00:39 0:00:39 --:--:-- 0
100 160M 0 0 100 160M 0 4009k 0:00:40 0:00:40 --:--:-- 0
100 160M 0 0 100 160M 0 3913k 0:00:41 0:00:41 --:--:-- 0
100 160M 0 0 100 160M 0 3822k 0:00:42 0:00:42 --:--:-- 0
100 160M 0 0 100 160M 0 3735k 0:00:43 0:00:43 --:--:-- 0
100 160M 0 0 100 160M 0 3651k 0:00:44 0:00:44 --:--:-- 0
100 160M 0 0 100 160M 0 3572k 0:00:45 0:00:45 --:--:-- 0
100 160M 0 0 100 160M 0 3496k 0:00:46 0:00:46 --:--:-- 0
100 160M 0 0 100 160M 0 3423k 0:00:47 0:00:47 --:--:-- 0
100 160M 0 43 100 160M 0 3399k 0:00:48 0:00:48 --:--:-- 9
[Pipeline] echo
{"msg":"操作成功","code":200,"data":""}
[Pipeline] readJSON
[Pipeline] echo
[msg:操作成功, code:200, data:]
[Pipeline] echo
status:200
[Pipeline] echo
{"msg":"操作成功","code":200,"data":""}
[Pipeline] }
[Pipeline] // dir
[Pipeline] sh
+ rm -rf /root/workspace/params-submodule/yiwu-suxi-submodule/T10/slave@tmp
[Pipeline] sh
+ rm -rf /root/workspace/params-submodule/yiwu-suxi-submodule/T10/slave/params_submodule/
[Pipeline] echo
------------------------------------- YWSX_KINGLONG_IGV11压缩并上传,slave -------------------------------------------
[Pipeline] dir
Running in /root/workspace/params-submodule/yiwu-suxi-submodule/YWSX_KINGLONG_IGV11/slave
[Pipeline] {
[Pipeline] sh
+ cd /root/workspace/params-submodule/yiwu-suxi-submodule/YWSX_KINGLONG_IGV11/slave/params/
+ ls -d crane_align/ extrinsics/ hardware/ hdmap/ hdmap_interface/ hesai_lidar/ imv_spreader_detection/ lane_detection/ lidar_correction_files/ lidar_loc_v2/ master/ perception/ pncc_common_config/ pncc_port_related_config/ pncc_vehicle_related_config/ pointcloud/ prediction/ rslidar_sdk/ slave/ system-ros/
[Pipeline] echo
crane_align/
extrinsics/
hardware/
hdmap/
hdmap_interface/
hesai_lidar/
imv_spreader_detection/
lane_detection/
lidar_correction_files/
lidar_loc_v2/
master/
perception/
pncc_common_config/
pncc_port_related_config/
pncc_vehicle_related_config/
pointcloud/
prediction/
rslidar_sdk/
slave/
system-ros/
[Pipeline] echo
最终目录包含slave目录,进行合并操作
[Pipeline] sh
+ cp -r /root/workspace/params-submodule/yiwu-suxi-submodule/YWSX_KINGLONG_IGV11/slave/params/slave/camera_driver /root/workspace/params-submodule/yiwu-suxi-submodule/YWSX_KINGLONG_IGV11/slave/params/slave/recorder.toml /root/workspace/params-submodule/yiwu-suxi-submodule/YWSX_KINGLONG_IGV11/slave/params/slave/system-ros /root/workspace/params-submodule/yiwu-suxi-submodule/YWSX_KINGLONG_IGV11/slave/params/
[Pipeline] sh
+ mkdir -p params_orin_slave_YWSX_KINGLONG_IGV11_2026-09-22_13-44-36/
+ mv params/ params_orin_slave_YWSX_KINGLONG_IGV11_2026-09-22_13-44-36/
[Pipeline] sh
+ zip -rq params_orin_slave_YWSX_KINGLONG_IGV11_2026-09-22_13-44-36.zip params_orin_slave_YWSX_KINGLONG_IGV11_2026-09-22_13-44-36 ./version.json
[Pipeline] echo
/root/workspace/params-submodule/yiwu-suxi-submodule/YWSX_KINGLONG_IGV11/slave/params_orin_slave_YWSX_KINGLONG_IGV11_2026-09-22_13-44-36.zip,/root/workspace/params-submodule/yiwu-suxi-submodule/YWSX_KINGLONG_IGV11/slave/version.json
[Pipeline] sh
+ curl -X POST http://172.16.110.148:60180/ota-api/otaUploadFileAndVersion --form 'Content-Type="multipart/form-data"' --form 'file=@"/root/workspace/params-submodule/yiwu-suxi-submodule/YWSX_KINGLONG_IGV11/slave/params_orin_slave_YWSX_KINGLONG_IGV11_2026-09-22_13-44-36.zip"' --form 'version=@"/root/workspace/params-submodule/yiwu-suxi-submodule/YWSX_KINGLONG_IGV11/slave/version.json"'
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
0 0 0 0 0 0 0 0 --:--:-- --:--:-- --:--:-- 0
0 160M 0 0 0 0 0 0 --:--:-- --:--:-- --:--:-- 0
0 160M 0 0 0 1344k 0 959k 0:02:51 0:00:01 0:02:50 958k
2 160M 0 0 2 4096k 0 1710k 0:01:35 0:00:02 0:01:33 1710k
4 160M 0 0 4 7168k 0 2125k 0:01:17 0:00:03 0:01:14 2125k
6 160M 0 0 6 10.3M 0 2415k 0:01:07 0:00:04 0:01:03 2415k
8 160M 0 0 8 13.8M 0 2631k 0:01:02 0:00:05 0:00:57 2841k
11 160M 0 0 11 17.7M 0 2852k 0:00:57 0:00:06 0:00:51 3385k
13 160M 0 0 13 21.9M 0 3045k 0:00:53 0:00:07 0:00:46 3687k
16 160M 0 0 16 26.6M 0 3245k 0:00:50 0:00:08 0:00:42 3996k
19 160M 0 0 19 31.4M 0 3430k 0:00:47 0:00:09 0:00:38 4316k
22 160M 0 0 22 36.7M 0 3619k 0:00:45 0:00:10 0:00:35 4675k
26 160M 0 0 26 42.2M 0 3802k 0:00:43 0:00:11 0:00:32 5012k
30 160M 0 0 30 48.5M 0 4020k 0:00:40 0:00:12 0:00:28 5457k
35 160M 0 0 35 56.5M 0 4326k 0:00:37 0:00:13 0:00:24 6152k
41 160M 0 0 41 66.6M 0 4751k 0:00:34 0:00:14 0:00:20 7232k
47 160M 0 0 47 76.3M 0 5075k 0:00:32 0:00:15 0:00:17 8104k
51 160M 0 0 51 82.5M 0 5160k 0:00:31 0:00:16 0:00:15 8247k
54 160M 0 0 54 87.8M 0 5179k 0:00:31 0:00:17 0:00:14 8044k
58 160M 0 0 58 93.5M 0 5211k 0:00:31 0:00:18 0:00:13 7572k
62 160M 0 0 62 99.3M 0 5250k 0:00:31 0:00:19 0:00:12 6685k
65 160M 0 0 65 105M 0 5300k 0:00:30 0:00:20 0:00:10 5995k
69 160M 0 0 69 111M 0 5359k 0:00:30 0:00:21 0:00:09 6012k
73 160M 0 0 73 117M 0 5388k 0:00:30 0:00:22 0:00:08 6115k
76 160M 0 0 76 123M 0 5398k 0:00:30 0:00:23 0:00:07 6086k
80 160M 0 0 80 129M 0 5438k 0:00:30 0:00:24 0:00:06 6166k
84 160M 0 0 84 136M 0 5488k 0:00:29 0:00:25 0:00:04 6255k
89 160M 0 0 89 142M 0 5544k 0:00:29 0:00:26 0:00:03 6336k
93 160M 0 0 93 149M 0 5595k 0:00:29 0:00:27 0:00:02 6523k
97 160M 0 0 97 156M 0 5641k 0:00:29 0:00:28 0:00:01 6779k
100 160M 0 0 100 160M 0 5480k 0:00:29 0:00:29 --:--:-- 5662k
100 160M 0 0 100 160M 0 5302k 0:00:30 0:00:30 --:--:-- 4455k
100 160M 0 0 100 160M 0 5136k 0:00:31 0:00:31 --:--:-- 3207k
100 160M 0 0 100 160M 0 4980k 0:00:32 0:00:32 --:--:-- 1956k
100 160M 0 0 100 160M 0 4833k 0:00:33 0:00:33 --:--:-- 725k
100 160M 0 0 100 160M 0 4695k 0:00:34 0:00:34 --:--:-- 0
100 160M 0 0 100 160M 0 4564k 0:00:35 0:00:35 --:--:-- 0
100 160M 0 0 100 160M 0 4441k 0:00:36 0:00:36 --:--:-- 0
100 160M 0 0 100 160M 0 4323k 0:00:37 0:00:37 --:--:-- 0
100 160M 0 0 100 160M 0 4212k 0:00:38 0:00:38 --:--:-- 0
100 160M 0 0 100 160M 0 4107k 0:00:39 0:00:39 --:--:-- 0
100 160M 0 0 100 160M 0 4006k 0:00:40 0:00:40 --:--:-- 0
100 160M 0 0 100 160M 0 3911k 0:00:41 0:00:41 --:--:-- 0
100 160M 0 0 100 160M 0 3820k 0:00:42 0:00:42 --:--:-- 0
100 160M 0 0 100 160M 0 3733k 0:00:43 0:00:43 --:--:-- 0
100 160M 0 0 100 160M 0 3649k 0:00:44 0:00:44 --:--:-- 0
100 160M 0 0 100 160M 0 3570k 0:00:45 0:00:45 --:--:-- 0
100 160M 0 0 100 160M 0 3494k 0:00:46 0:00:46 --:--:-- 0
100 160M 0 0 100 160M 0 3421k 0:00:47 0:00:47 --:--:-- 0
100 160M 0 43 100 160M 0 3374k 0:00:48 0:00:48 --:--:-- 9
100 160M 0 43 100 160M 0 3374k 0:00:48 0:00:48 --:--:-- 11
[Pipeline] echo
{"msg":"操作成功","code":200,"data":""}
[Pipeline] readJSON
[Pipeline] echo
[msg:操作成功, code:200, data:]
[Pipeline] echo
status:200
[Pipeline] echo
{"msg":"操作成功","code":200,"data":""}
[Pipeline] }
[Pipeline] // dir
[Pipeline] sh
+ rm -rf /root/workspace/params-submodule/yiwu-suxi-submodule/YWSX_KINGLONG_IGV11/slave@tmp
[Pipeline] sh
+ rm -rf /root/workspace/params-submodule/yiwu-suxi-submodule/YWSX_KINGLONG_IGV11/slave/params_submodule/
[Pipeline] echo
------------------------------------- YWSX_KINGLONG_IGV12压缩并上传,slave -------------------------------------------
[Pipeline] dir
Running in /root/workspace/params-submodule/yiwu-suxi-submodule/YWSX_KINGLONG_IGV12/slave
[Pipeline] {
[Pipeline] sh
+ cd /root/workspace/params-submodule/yiwu-suxi-submodule/YWSX_KINGLONG_IGV12/slave/params/
+ ls -d crane_align/ extrinsics/ hardware/ hdmap/ hdmap_interface/ hesai_lidar/ imv_spreader_detection/ lane_detection/ lidar_correction_files/ lidar_loc_v2/ master/ perception/ pncc_common_config/ pncc_port_related_config/ pncc_vehicle_related_config/ pointcloud/ prediction/ rslidar_sdk/ slave/ system-ros/
[Pipeline] echo
crane_align/
extrinsics/
hardware/
hdmap/
hdmap_interface/
hesai_lidar/
imv_spreader_detection/
lane_detection/
lidar_correction_files/
lidar_loc_v2/
master/
perception/
pncc_common_config/
pncc_port_related_config/
pncc_vehicle_related_config/
pointcloud/
prediction/
rslidar_sdk/
slave/
system-ros/
[Pipeline] echo
最终目录包含slave目录,进行合并操作
[Pipeline] sh
+ cp -r /root/workspace/params-submodule/yiwu-suxi-submodule/YWSX_KINGLONG_IGV12/slave/params/slave/camera_driver /root/workspace/params-submodule/yiwu-suxi-submodule/YWSX_KINGLONG_IGV12/slave/params/slave/recorder.toml /root/workspace/params-submodule/yiwu-suxi-submodule/YWSX_KINGLONG_IGV12/slave/params/slave/system-ros /root/workspace/params-submodule/yiwu-suxi-submodule/YWSX_KINGLONG_IGV12/slave/params/
[Pipeline] sh
+ mkdir -p params_orin_slave_YWSX_KINGLONG_IGV12_2026-09-22_13-44-36/
+ mv params/ params_orin_slave_YWSX_KINGLONG_IGV12_2026-09-22_13-44-36/
[Pipeline] sh
+ zip -rq params_orin_slave_YWSX_KINGLONG_IGV12_2026-09-22_13-44-36.zip params_orin_slave_YWSX_KINGLONG_IGV12_2026-09-22_13-44-36 ./version.json
[Pipeline] echo
/root/workspace/params-submodule/yiwu-suxi-submodule/YWSX_KINGLONG_IGV12/slave/params_orin_slave_YWSX_KINGLONG_IGV12_2026-09-22_13-44-36.zip,/root/workspace/params-submodule/yiwu-suxi-submodule/YWSX_KINGLONG_IGV12/slave/version.json
[Pipeline] sh
+ curl -X POST http://172.16.110.148:60180/ota-api/otaUploadFileAndVersion --form 'Content-Type="multipart/form-data"' --form 'file=@"/root/workspace/params-submodule/yiwu-suxi-submodule/YWSX_KINGLONG_IGV12/slave/params_orin_slave_YWSX_KINGLONG_IGV12_2026-09-22_13-44-36.zip"' --form 'version=@"/root/workspace/params-submodule/yiwu-suxi-submodule/YWSX_KINGLONG_IGV12/slave/version.json"'
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
0 0 0 0 0 0 0 0 --:--:-- --:--:-- --:--:-- 0
1 160M 0 0 1 3008k 0 3172k 0:00:51 --:--:-- 0:00:51 3169k
7 160M 0 0 7 12.3M 0 6529k 0:00:25 0:00:01 0:00:24 6525k
13 160M 0 0 13 21.6M 0 7517k 0:00:21 0:00:02 0:00:19 7515k
17 160M 0 0 17 28.7M 0 7498k 0:00:21 0:00:03 0:00:18 7496k
20 160M 0 0 20 32.8M 0 6849k 0:00:23 0:00:04 0:00:19 6847k
23 160M 0 0 23 37.3M 0 6457k 0:00:25 0:00:05 0:00:20 7082k
26 160M 0 0 26 42.0M 0 6215k 0:00:26 0:00:06 0:00:20 6093k
29 160M 0 0 29 47.0M 0 6069k 0:00:27 0:00:07 0:00:20 5207k
32 160M 0 0 32 52.2M 0 6000k 0:00:27 0:00:08 0:00:19 4821k
36 160M 0 0 36 57.8M 0 5972k 0:00:27 0:00:09 0:00:18 5113k
39 160M 0 0 39 63.8M 0 5984k 0:00:27 0:00:10 0:00:17 5423k
43 160M 0 0 43 70.1M 0 6021k 0:00:27 0:00:11 0:00:16 5754k
47 160M 0 0 47 76.7M 0 6082k 0:00:26 0:00:12 0:00:14 6102k
52 160M 0 0 52 83.7M 0 6156k 0:00:26 0:00:13 0:00:13 6435k
56 160M 0 0 56 91.1M 0 6255k 0:00:26 0:00:14 0:00:12 6816k
62 160M 0 0 62 100M 0 6438k 0:00:25 0:00:15 0:00:10 7428k
68 160M 0 0 68 110M 0 6673k 0:00:24 0:00:16 0:00:08 8232k
74 160M 0 0 74 119M 0 6819k 0:00:24 0:00:17 0:00:07 8727k
79 160M 0 0 79 127M 0 6917k 0:00:23 0:00:18 0:00:05 9040k
84 160M 0 0 84 135M 0 6970k 0:00:23 0:00:19 0:00:04 9100k
89 160M 0 0 89 144M 0 7045k 0:00:23 0:00:20 0:00:03 8971k
92 160M 0 0 92 148M 0 6932k 0:00:23 0:00:21 0:00:02 7799k
94 160M 0 0 94 152M 0 6790k 0:00:24 0:00:22 0:00:02 6685k
97 160M 0 0 97 155M 0 6658k 0:00:24 0:00:23 0:00:01 5674k
99 160M 0 0 99 159M 0 6537k 0:00:25 0:00:24 0:00:01 4822k
100 160M 0 0 100 160M 0 6260k 0:00:26 0:00:26 --:--:-- 3152k
100 160M 0 0 100 160M 0 6030k 0:00:27 0:00:27 --:--:-- 2265k
100 160M 0 0 100 160M 0 5816k 0:00:28 0:00:28 --:--:-- 1589k
100 160M 0 0 100 160M 0 5617k 0:00:29 0:00:29 --:--:-- 919k
100 160M 0 0 100 160M 0 5431k 0:00:30 0:00:30 --:--:-- 208k
100 160M 0 0 100 160M 0 5257k 0:00:31 0:00:31 --:--:-- 0
100 160M 0 0 100 160M 0 5093k 0:00:32 0:00:32 --:--:-- 0
100 160M 0 0 100 160M 0 4940k 0:00:33 0:00:33 --:--:-- 0
100 160M 0 0 100 160M 0 4795k 0:00:34 0:00:34 --:--:-- 0
100 160M 0 0 100 160M 0 4659k 0:00:35 0:00:35 --:--:-- 0
100 160M 0 0 100 160M 0 4530k 0:00:36 0:00:36 --:--:-- 0
100 160M 0 0 100 160M 0 4408k 0:00:37 0:00:37 --:--:-- 0
100 160M 0 0 100 160M 0 4293k 0:00:38 0:00:38 --:--:-- 0
100 160M 0 0 100 160M 0 4183k 0:00:39 0:00:39 --:--:-- 0
100 160M 0 0 100 160M 0 4079k 0:00:40 0:00:40 --:--:-- 0
100 160M 0 0 100 160M 0 3980k 0:00:41 0:00:41 --:--:-- 0
100 160M 0 0 100 160M 0 3886k 0:00:42 0:00:42 --:--:-- 0
100 160M 0 0 100 160M 0 3796k 0:00:43 0:00:43 --:--:-- 0
100 160M 0 0 100 160M 0 3710k 0:00:44 0:00:44 --:--:-- 0
100 160M 0 0 100 160M 0 3628k 0:00:45 0:00:45 --:--:-- 0
100 160M 0 43 100 160M 0 3565k 0:00:46 0:00:46 --:--:-- 8
100 160M 0 43 100 160M 0 3565k 0:00:46 0:00:46 --:--:-- 11
[Pipeline] echo
{"msg":"操作成功","code":200,"data":""}
[Pipeline] readJSON
[Pipeline] echo
[msg:操作成功, code:200, data:]
[Pipeline] echo
status:200
[Pipeline] echo
{"msg":"操作成功","code":200,"data":""}
[Pipeline] }
[Pipeline] // dir
[Pipeline] sh
+ rm -rf /root/workspace/params-submodule/yiwu-suxi-submodule/YWSX_KINGLONG_IGV12/slave@tmp
[Pipeline] sh
+ rm -rf /root/workspace/params-submodule/yiwu-suxi-submodule/YWSX_KINGLONG_IGV12/slave/params_submodule/
[Pipeline] echo
------------------------------------- YWSX_KINGLONG_IGV13压缩并上传,slave -------------------------------------------
[Pipeline] dir
Running in /root/workspace/params-submodule/yiwu-suxi-submodule/YWSX_KINGLONG_IGV13/slave
[Pipeline] {
[Pipeline] sh
+ cd /root/workspace/params-submodule/yiwu-suxi-submodule/YWSX_KINGLONG_IGV13/slave/params/
+ ls -d crane_align/ extrinsics/ hardware/ hdmap/ hdmap_interface/ hesai_lidar/ imv_spreader_detection/ lane_detection/ lidar_correction_files/ lidar_loc_v2/ master/ perception/ pncc_common_config/ pncc_port_related_config/ pncc_vehicle_related_config/ pointcloud/ prediction/ rslidar_sdk/ slave/ system-ros/
[Pipeline] echo
crane_align/
extrinsics/
hardware/
hdmap/
hdmap_interface/
hesai_lidar/
imv_spreader_detection/
lane_detection/
lidar_correction_files/
lidar_loc_v2/
master/
perception/
pncc_common_config/
pncc_port_related_config/
pncc_vehicle_related_config/
pointcloud/
prediction/
rslidar_sdk/
slave/
system-ros/
[Pipeline] echo
最终目录包含slave目录,进行合并操作
[Pipeline] sh
+ cp -r /root/workspace/params-submodule/yiwu-suxi-submodule/YWSX_KINGLONG_IGV13/slave/params/slave/camera_driver /root/workspace/params-submodule/yiwu-suxi-submodule/YWSX_KINGLONG_IGV13/slave/params/slave/recorder.toml /root/workspace/params-submodule/yiwu-suxi-submodule/YWSX_KINGLONG_IGV13/slave/params/slave/system-ros /root/workspace/params-submodule/yiwu-suxi-submodule/YWSX_KINGLONG_IGV13/slave/params/
[Pipeline] sh
+ mkdir -p params_orin_slave_YWSX_KINGLONG_IGV13_2026-09-22_13-44-36/
+ mv params/ params_orin_slave_YWSX_KINGLONG_IGV13_2026-09-22_13-44-36/
[Pipeline] sh
+ zip -rq params_orin_slave_YWSX_KINGLONG_IGV13_2026-09-22_13-44-36.zip params_orin_slave_YWSX_KINGLONG_IGV13_2026-09-22_13-44-36 ./version.json
[Pipeline] echo
/root/workspace/params-submodule/yiwu-suxi-submodule/YWSX_KINGLONG_IGV13/slave/params_orin_slave_YWSX_KINGLONG_IGV13_2026-09-22_13-44-36.zip,/root/workspace/params-submodule/yiwu-suxi-submodule/YWSX_KINGLONG_IGV13/slave/version.json
[Pipeline] sh
+ curl -X POST http://172.16.110.148:60180/ota-api/otaUploadFileAndVersion --form 'Content-Type="multipart/form-data"' --form 'file=@"/root/workspace/params-submodule/yiwu-suxi-submodule/YWSX_KINGLONG_IGV13/slave/params_orin_slave_YWSX_KINGLONG_IGV13_2026-09-22_13-44-36.zip"' --form 'version=@"/root/workspace/params-submodule/yiwu-suxi-submodule/YWSX_KINGLONG_IGV13/slave/version.json"'
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
0 0 0 0 0 0 0 0 --:--:-- --:--:-- --:--:-- 0
0 160M 0 0 0 0 0 0 --:--:-- --:--:-- --:--:-- 0
1 160M 0 0 1 1792k 0 1633k 0:01:40 0:00:01 0:01:39 1632k
4 160M 0 0 4 7744k 0 3659k 0:00:44 0:00:02 0:00:42 3658k
7 160M 0 0 7 11.9M 0 3926k 0:00:41 0:00:03 0:00:38 3925k
10 160M 0 0 10 16.5M 0 4135k 0:00:39 0:00:04 0:00:35 4134k
13 160M 0 0 13 21.5M 0 4310k 0:00:38 0:00:05 0:00:33 4485k
16 160M 0 0 16 26.6M 0 4482k 0:00:36 0:00:06 0:00:30 5107k
20 160M 0 0 20 32.3M 0 4658k 0:00:35 0:00:07 0:00:28 5080k
23 160M 0 0 23 38.1M 0 4828k 0:00:33 0:00:08 0:00:25 5391k
27 160M 0 0 27 44.5M 0 5004k 0:00:32 0:00:09 0:00:23 5716k
31 160M 0 0 31 51.0M 0 5179k 0:00:31 0:00:10 0:00:21 6071k
36 160M 0 0 36 58.0M 0 5356k 0:00:30 0:00:11 0:00:19 6421k
40 160M 0 0 40 65.3M 0 5528k 0:00:29 0:00:12 0:00:17 6771k
45 160M 0 0 45 73.3M 0 5736k 0:00:28 0:00:13 0:00:15 7207k
51 160M 0 0 51 83.1M 0 6043k 0:00:27 0:00:14 0:00:13 7943k
59 160M 0 0 59 95.3M 0 6461k 0:00:25 0:00:15 0:00:10 9049k
67 160M 0 0 67 107M 0 6741k 0:00:24 0:00:16 0:00:08 9674k
69 160M 0 0 69 111M 0 6674k 0:00:24 0:00:17 0:00:07 9442k
73 160M 0 0 73 117M 0 6647k 0:00:24 0:00:18 0:00:06 9029k
77 160M 0 0 77 123M 0 6637k 0:00:24 0:00:19 0:00:05 8313k
81 160M 0 0 81 130M 0 6647k 0:00:24 0:00:20 0:00:04 7207k
85 160M 0 0 85 137M 0 6654k 0:00:24 0:00:21 0:00:03 6351k
89 160M 0 0 89 142M 0 6613k 0:00:24 0:00:22 0:00:02 6402k
92 160M 0 0 92 148M 0 6590k 0:00:24 0:00:23 0:00:01 6382k
96 160M 0 0 96 155M 0 6594k 0:00:24 0:00:24 --:--:-- 6426k
100 160M 0 0 100 160M 0 6347k 0:00:25 0:00:25 --:--:-- 5300k
100 160M 0 0 100 160M 0 6111k 0:00:26 0:00:26 --:--:-- 4118k
100 160M 0 0 100 160M 0 5891k 0:00:27 0:00:27 --:--:-- 3118k
100 160M 0 0 100 160M 0 5687k 0:00:28 0:00:28 --:--:-- 2059k
100 160M 0 0 100 160M 0 5496k 0:00:29 0:00:29 --:--:-- 902k
100 160M 0 0 100 160M 0 5318k 0:00:30 0:00:30 --:--:-- 0
100 160M 0 0 100 160M 0 5151k 0:00:31 0:00:31 --:--:-- 0
100 160M 0 0 100 160M 0 4994k 0:00:32 0:00:32 --:--:-- 0
100 160M 0 0 100 160M 0 4846k 0:00:33 0:00:33 --:--:-- 0
100 160M 0 0 100 160M 0 4707k 0:00:34 0:00:34 --:--:-- 0
100 160M 0 0 100 160M 0 4575k 0:00:35 0:00:35 --:--:-- 0
100 160M 0 0 100 160M 0 4451k 0:00:36 0:00:36 --:--:-- 0
100 160M 0 0 100 160M 0 4334k 0:00:37 0:00:37 --:--:-- 0
100 160M 0 0 100 160M 0 4222k 0:00:38 0:00:38 --:--:-- 0
100 160M 0 0 100 160M 0 4116k 0:00:39 0:00:39 --:--:-- 0
100 160M 0 43 100 160M 1 4108k 0:00:39 0:00:39 --:--:-- 10
[Pipeline] echo
{"msg":"操作成功","code":200,"data":""}
[Pipeline] readJSON
[Pipeline] echo
[msg:操作成功, code:200, data:]
[Pipeline] echo
status:200
[Pipeline] echo
{"msg":"操作成功","code":200,"data":""}
[Pipeline] }
[Pipeline] // dir
[Pipeline] sh
+ rm -rf /root/workspace/params-submodule/yiwu-suxi-submodule/YWSX_KINGLONG_IGV13/slave@tmp
[Pipeline] sh
+ rm -rf /root/workspace/params-submodule/yiwu-suxi-submodule/YWSX_KINGLONG_IGV13/slave/params_submodule/
[Pipeline] echo
------------------------------------- YWSX_KINGLONG_IGV14压缩并上传,slave -------------------------------------------
[Pipeline] dir
Running in /root/workspace/params-submodule/yiwu-suxi-submodule/YWSX_KINGLONG_IGV14/slave
[Pipeline] {
[Pipeline] sh
+ cd /root/workspace/params-submodule/yiwu-suxi-submodule/YWSX_KINGLONG_IGV14/slave/params/
+ ls -d crane_align/ extrinsics/ hardware/ hdmap/ hdmap_interface/ hesai_lidar/ imv_spreader_detection/ lane_detection/ lidar_correction_files/ lidar_loc_v2/ master/ perception/ pncc_common_config/ pncc_port_related_config/ pncc_vehicle_related_config/ pointcloud/ prediction/ rslidar_sdk/ slave/ system-ros/
[Pipeline] echo
crane_align/
extrinsics/
hardware/
hdmap/
hdmap_interface/
hesai_lidar/
imv_spreader_detection/
lane_detection/
lidar_correction_files/
lidar_loc_v2/
master/
perception/
pncc_common_config/
pncc_port_related_config/
pncc_vehicle_related_config/
pointcloud/
prediction/
rslidar_sdk/
slave/
system-ros/
[Pipeline] echo
最终目录包含slave目录,进行合并操作
[Pipeline] sh
+ cp -r /root/workspace/params-submodule/yiwu-suxi-submodule/YWSX_KINGLONG_IGV14/slave/params/slave/camera_driver /root/workspace/params-submodule/yiwu-suxi-submodule/YWSX_KINGLONG_IGV14/slave/params/slave/recorder.toml /root/workspace/params-submodule/yiwu-suxi-submodule/YWSX_KINGLONG_IGV14/slave/params/slave/system-ros /root/workspace/params-submodule/yiwu-suxi-submodule/YWSX_KINGLONG_IGV14/slave/params/
[Pipeline] sh
+ mkdir -p params_orin_slave_YWSX_KINGLONG_IGV14_2026-09-22_13-44-36/
+ mv params/ params_orin_slave_YWSX_KINGLONG_IGV14_2026-09-22_13-44-36/
[Pipeline] sh
+ zip -rq params_orin_slave_YWSX_KINGLONG_IGV14_2026-09-22_13-44-36.zip params_orin_slave_YWSX_KINGLONG_IGV14_2026-09-22_13-44-36 ./version.json
[Pipeline] echo
/root/workspace/params-submodule/yiwu-suxi-submodule/YWSX_KINGLONG_IGV14/slave/params_orin_slave_YWSX_KINGLONG_IGV14_2026-09-22_13-44-36.zip,/root/workspace/params-submodule/yiwu-suxi-submodule/YWSX_KINGLONG_IGV14/slave/version.json
[Pipeline] sh
+ curl -X POST http://172.16.110.148:60180/ota-api/otaUploadFileAndVersion --form 'Content-Type="multipart/form-data"' --form 'file=@"/root/workspace/params-submodule/yiwu-suxi-submodule/YWSX_KINGLONG_IGV14/slave/params_orin_slave_YWSX_KINGLONG_IGV14_2026-09-22_13-44-36.zip"' --form 'version=@"/root/workspace/params-submodule/yiwu-suxi-submodule/YWSX_KINGLONG_IGV14/slave/version.json"'
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
0 0 0 0 0 0 0 0 --:--:-- --:--:-- --:--:-- 0
0 160M 0 0 0 0 0 0 --:--:-- --:--:-- --:--:-- 0
1 160M 0 0 1 2432k 0 1937k 0:01:24 0:00:01 0:01:23 1936k
3 160M 0 0 3 5184k 0 2324k 0:01:10 0:00:02 0:01:08 2324k
5 160M 0 0 5 8384k 0 2578k 0:01:03 0:00:03 0:01:00 2578k
7 160M 0 0 7 11.5M 0 2801k 0:00:58 0:00:04 0:00:54 2800k
9 160M 0 0 9 15.3M 0 2997k 0:00:54 0:00:05 0:00:49 3280k
12 160M 0 0 12 19.3M 0 3187k 0:00:51 0:00:06 0:00:45 3502k
14 160M 0 0 14 23.8M 0 3383k 0:00:48 0:00:07 0:00:41 3855k
17 160M 0 0 17 28.6M 0 3558k 0:00:46 0:00:08 0:00:38 4197k
21 160M 0 0 21 33.8M 0 3746k 0:00:43 0:00:09 0:00:34 4544k
24 160M 0 0 24 39.2M 0 3926k 0:00:41 0:00:10 0:00:31 4905k
28 160M 0 0 28 45.1M 0 4121k 0:00:39 0:00:11 0:00:28 5285k
32 160M 0 0 32 52.5M 0 4397k 0:00:37 0:00:12 0:00:25 5862k
33 160M 0 0 33 54.4M 0 4144k 0:00:39 0:00:13 0:00:26 5071k
33 160M 0 0 33 54.4M 0 3857k 0:00:42 0:00:14 0:00:28 4055k
35 160M 0 0 35 57.2M 0 3847k 0:00:42 0:00:15 0:00:27 3686k
35 160M 0 0 35 57.6M 0 3626k 0:00:45 0:00:16 0:00:29 2529k
36 160M 0 0 36 57.8M 0 3422k 0:00:47 0:00:17 0:00:30 1072k
38 160M 0 0 38 61.3M 0 3447k 0:00:47 0:00:18 0:00:29 1485k
40 160M 0 0 40 65.2M 0 3469k 0:00:47 0:00:19 0:00:28 2303k
43 160M 0 0 43 69.1M 0 3501k 0:00:46 0:00:20 0:00:26 2444k
44 160M 0 0 44 72.0M 0 3455k 0:00:47 0:00:21 0:00:26 2903k
46 160M 0 0 46 74.8M 0 3449k 0:00:47 0:00:22 0:00:25 3543k
49 160M 0 0 49 78.8M 0 3474k 0:00:47 0:00:23 0:00:24 3576k
50 160M 0 0 50 81.5M 0 3446k 0:00:47 0:00:24 0:00:23 3354k
51 160M 0 0 51 83.1M 0 3362k 0:00:48 0:00:25 0:00:23 2813k
53 160M 0 0 53 85.3M 0 3333k 0:00:49 0:00:26 0:00:23 2801k
53 160M 0 0 53 85.6M 0 3209k 0:00:51 0:00:27 0:00:24 2163k
53 160M 0 0 53 85.6M 0 3096k 0:00:52 0:00:28 0:00:24 1362k
53 160M 0 0 53 85.6M 0 2990k 0:00:54 0:00:29 0:00:25 818k
54 160M 0 0 54 88.1M 0 2982k 0:00:55 0:00:30 0:00:25 1026k
56 160M 0 0 56 91.1M 0 2987k 0:00:54 0:00:31 0:00:23 1175k
59 160M 0 0 59 94.6M 0 3004k 0:00:54 0:00:32 0:00:22 1866k
61 160M 0 0 61 98.3M 0 3029k 0:00:54 0:00:33 0:00:21 2643k
63 160M 0 0 63 102M 0 3065k 0:00:53 0:00:34 0:00:19 3507k
66 160M 0 0 66 106M 0 3106k 0:00:52 0:00:35 0:00:17 3862k
69 160M 0 0 69 111M 0 3157k 0:00:51 0:00:36 0:00:15 4221k
72 160M 0 0 72 116M 0 3212k 0:00:51 0:00:37 0:00:14 4564k
76 160M 0 0 76 122M 0 3277k 0:00:50 0:00:38 0:00:12 4922k
79 160M 0 0 79 127M 0 3327k 0:00:49 0:00:39 0:00:10 5124k
82 160M 0 0 82 132M 0 3377k 0:00:48 0:00:40 0:00:08 5287k
86 160M 0 0 86 138M 0 3437k 0:00:47 0:00:41 0:00:06 5471k
90 160M 0 0 90 144M 0 3504k 0:00:46 0:00:42 0:00:04 5674k
93 160M 0 0 93 150M 0 3567k 0:00:45 0:00:43 0:00:02 5789k
97 160M 0 0 97 156M 0 3630k 0:00:45 0:00:44 0:00:01 6021k
100 160M 0 0 100 160M 0 3583k 0:00:45 0:00:45 --:--:-- 5074k
100 160M 0 0 100 160M 0 3507k 0:00:46 0:00:46 --:--:-- 4021k
100 160M 0 0 100 160M 0 3433k 0:00:47 0:00:47 --:--:-- 2900k
100 160M 0 0 100 160M 0 3363k 0:00:48 0:00:48 --:--:-- 1775k
100 160M 0 0 100 160M 0 3295k 0:00:49 0:00:49 --:--:-- 633k
100 160M 0 0 100 160M 0 3230k 0:00:50 0:00:50 --:--:-- 0
100 160M 0 0 100 160M 0 3168k 0:00:51 0:00:51 --:--:-- 0
100 160M 0 0 100 160M 0 3108k 0:00:52 0:00:52 --:--:-- 0
100 160M 0 0 100 160M 0 3050k 0:00:53 0:00:53 --:--:-- 0
100 160M 0 0 100 160M 0 2994k 0:00:54 0:00:54 --:--:-- 0
100 160M 0 0 100 160M 0 2941k 0:00:55 0:00:55 --:--:-- 0
100 160M 0 0 100 160M 0 2889k 0:00:56 0:00:56 --:--:-- 0
100 160M 0 0 100 160M 0 2839k 0:00:57 0:00:57 --:--:-- 0
100 160M 0 0 100 160M 0 2790k 0:00:58 0:00:58 --:--:-- 0
100 160M 0 0 100 160M 0 2744k 0:00:59 0:00:59 --:--:-- 0
100 160M 0 43 100 160M 0 2720k 0:01:00 0:01:00 --:--:-- 9
100 160M 0 43 100 160M 0 2720k 0:01:00 0:01:00 --:--:-- 12
[Pipeline] echo
{"msg":"操作成功","code":200,"data":""}
[Pipeline] readJSON
[Pipeline] echo
[msg:操作成功, code:200, data:]
[Pipeline] echo
status:200
[Pipeline] echo
{"msg":"操作成功","code":200,"data":""}
[Pipeline] }
[Pipeline] // dir
[Pipeline] sh
+ rm -rf /root/workspace/params-submodule/yiwu-suxi-submodule/YWSX_KINGLONG_IGV14/slave@tmp
[Pipeline] sh
+ rm -rf /root/workspace/params-submodule/yiwu-suxi-submodule/YWSX_KINGLONG_IGV14/slave/params_submodule/
[Pipeline] echo
------------------------------------- YWSX_KINGLONG_IGV15压缩并上传,slave -------------------------------------------
[Pipeline] dir
Running in /root/workspace/params-submodule/yiwu-suxi-submodule/YWSX_KINGLONG_IGV15/slave
[Pipeline] {
[Pipeline] sh
+ cd /root/workspace/params-submodule/yiwu-suxi-submodule/YWSX_KINGLONG_IGV15/slave/params/
+ ls -d crane_align/ extrinsics/ hardware/ hdmap/ hdmap_interface/ hesai_lidar/ imv_spreader_detection/ lane_detection/ lidar_correction_files/ lidar_loc_v2/ master/ perception/ pncc_common_config/ pncc_port_related_config/ pncc_vehicle_related_config/ pointcloud/ prediction/ rslidar_sdk/ slave/ system-ros/
[Pipeline] echo
crane_align/
extrinsics/
hardware/
hdmap/
hdmap_interface/
hesai_lidar/
imv_spreader_detection/
lane_detection/
lidar_correction_files/
lidar_loc_v2/
master/
perception/
pncc_common_config/
pncc_port_related_config/
pncc_vehicle_related_config/
pointcloud/
prediction/
rslidar_sdk/
slave/
system-ros/
[Pipeline] echo
最终目录包含slave目录,进行合并操作
[Pipeline] sh
+ cp -r /root/workspace/params-submodule/yiwu-suxi-submodule/YWSX_KINGLONG_IGV15/slave/params/slave/camera_driver /root/workspace/params-submodule/yiwu-suxi-submodule/YWSX_KINGLONG_IGV15/slave/params/slave/recorder.toml /root/workspace/params-submodule/yiwu-suxi-submodule/YWSX_KINGLONG_IGV15/slave/params/slave/system-ros /root/workspace/params-submodule/yiwu-suxi-submodule/YWSX_KINGLONG_IGV15/slave/params/
[Pipeline] sh
+ mkdir -p params_orin_slave_YWSX_KINGLONG_IGV15_2026-09-22_13-44-36/
+ mv params/ params_orin_slave_YWSX_KINGLONG_IGV15_2026-09-22_13-44-36/
[Pipeline] sh
+ zip -rq params_orin_slave_YWSX_KINGLONG_IGV15_2026-09-22_13-44-36.zip params_orin_slave_YWSX_KINGLONG_IGV15_2026-09-22_13-44-36 ./version.json
[Pipeline] echo
/root/workspace/params-submodule/yiwu-suxi-submodule/YWSX_KINGLONG_IGV15/slave/params_orin_slave_YWSX_KINGLONG_IGV15_2026-09-22_13-44-36.zip,/root/workspace/params-submodule/yiwu-suxi-submodule/YWSX_KINGLONG_IGV15/slave/version.json
[Pipeline] sh
+ curl -X POST http://172.16.110.148:60180/ota-api/otaUploadFileAndVersion --form 'Content-Type="multipart/form-data"' --form 'file=@"/root/workspace/params-submodule/yiwu-suxi-submodule/YWSX_KINGLONG_IGV15/slave/params_orin_slave_YWSX_KINGLONG_IGV15_2026-09-22_13-44-36.zip"' --form 'version=@"/root/workspace/params-submodule/yiwu-suxi-submodule/YWSX_KINGLONG_IGV15/slave/version.json"'
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
0 0 0 0 0 0 0 0 --:--:-- --:--:-- --:--:-- 0
0 0 0 0 0 0 0 0 --:--:-- --:--:-- --:--:-- 0
1 160M 0 0 1 2304k 0 2204k 0:01:14 0:00:01 0:01:13 2202k
3 160M 0 0 3 4992k 0 2430k 0:01:07 0:00:02 0:01:05 2429k
4 160M 0 0 4 8000k 0 2628k 0:01:02 0:00:03 0:00:59 2627k
6 160M 0 0 6 11.0M 0 2794k 0:00:58 0:00:04 0:00:54 2794k
9 160M 0 0 9 14.6M 0 2979k 0:00:55 0:00:05 0:00:50 3006k
11 160M 0 0 11 18.6M 0 3148k 0:00:52 0:00:06 0:00:46 3346k
14 160M 0 0 14 22.8M 0 3325k 0:00:49 0:00:07 0:00:42 3694k
17 160M 0 0 17 27.5M 0 3502k 0:00:46 0:00:08 0:00:38 4033k
20 160M 0 0 20 32.5M 0 3683k 0:00:44 0:00:09 0:00:35 4404k
23 160M 0 0 23 37.8M 0 3857k 0:00:42 0:00:10 0:00:32 4741k
27 160M 0 0 27 43.6M 0 4048k 0:00:40 0:00:11 0:00:29 5138k
30 160M 0 0 30 48.8M 0 4155k 0:00:39 0:00:12 0:00:27 5324k
33 160M 0 0 33 54.4M 0 4274k 0:00:38 0:00:13 0:00:25 5521k
37 160M 0 0 37 60.5M 0 4409k 0:00:37 0:00:14 0:00:23 5720k
41 160M 0 0 41 67.0M 0 4558k 0:00:35 0:00:15 0:00:20 5971k
45 160M 0 0 45 72.2M 0 4602k 0:00:35 0:00:16 0:00:19 5823k
48 160M 0 0 48 77.4M 0 4650k 0:00:35 0:00:17 0:00:18 5841k
51 160M 0 0 51 83.0M 0 4710k 0:00:34 0:00:18 0:00:16 5848k
55 160M 0 0 55 88.6M 0 4764k 0:00:34 0:00:19 0:00:15 5765k
59 160M 0 0 59 94.6M 0 4836k 0:00:33 0:00:20 0:00:13 5673k
63 160M 0 0 63 101M 0 4917k 0:00:33 0:00:21 0:00:12 5934k
67 160M 0 0 67 107M 0 5010k 0:00:32 0:00:22 0:00:10 6239k
71 160M 0 0 71 114M 0 5107k 0:00:32 0:00:23 0:00:09 6540k
76 160M 0 0 76 122M 0 5210k 0:00:31 0:00:24 0:00:07 6906k
80 160M 0 0 80 129M 0 5281k 0:00:31 0:00:25 0:00:06 7065k
84 160M 0 0 84 135M 0 5327k 0:00:30 0:00:26 0:00:04 7047k
88 160M 0 0 88 142M 0 5395k 0:00:30 0:00:27 0:00:03 7091k
93 160M 0 0 93 150M 0 5479k 0:00:29 0:00:28 0:00:01 7195k
98 160M 0 0 98 157M 0 5559k 0:00:29 0:00:29 --:--:-- 7245k
100 160M 0 0 100 160M 0 5404k 0:00:30 0:00:30 --:--:-- 5984k
100 160M 0 0 100 160M 0 5232k 0:00:31 0:00:31 --:--:-- 4762k
100 160M 0 0 100 160M 0 5070k 0:00:32 0:00:32 --:--:-- 3419k
100 160M 0 0 100 160M 0 4918k 0:00:33 0:00:33 --:--:-- 1961k
100 160M 0 0 100 160M 0 4774k 0:00:34 0:00:34 --:--:-- 494k
100 160M 0 0 100 160M 0 4639k 0:00:35 0:00:35 --:--:-- 0
100 160M 0 0 100 160M 0 4512k 0:00:36 0:00:36 --:--:-- 0
100 160M 0 0 100 160M 0 4391k 0:00:37 0:00:37 --:--:-- 0
100 160M 0 0 100 160M 0 4276k 0:00:38 0:00:38 --:--:-- 0
100 160M 0 0 100 160M 0 4167k 0:00:39 0:00:39 --:--:-- 0
100 160M 0 0 100 160M 0 4064k 0:00:40 0:00:40 --:--:-- 0
100 160M 0 0 100 160M 0 3966k 0:00:41 0:00:41 --:--:-- 0
100 160M 0 0 100 160M 0 3872k 0:00:42 0:00:42 --:--:-- 0
100 160M 0 0 100 160M 0 3783k 0:00:43 0:00:43 --:--:-- 0
100 160M 0 0 100 160M 0 3697k 0:00:44 0:00:44 --:--:-- 0
100 160M 0 0 100 160M 0 3616k 0:00:45 0:00:45 --:--:-- 0
100 160M 0 0 100 160M 0 3538k 0:00:46 0:00:46 --:--:-- 0
100 160M 0 0 100 160M 0 3463k 0:00:47 0:00:47 --:--:-- 0
100 160M 0 0 100 160M 0 3391k 0:00:48 0:00:48 --:--:-- 0
100 160M 0 43 100 160M 0 3382k 0:00:48 0:00:48 --:--:-- 10
[Pipeline] echo
{"msg":"操作成功","code":200,"data":""}
[Pipeline] readJSON
[Pipeline] echo
[msg:操作成功, code:200, data:]
[Pipeline] echo
status:200
[Pipeline] echo
{"msg":"操作成功","code":200,"data":""}
[Pipeline] }
[Pipeline] // dir
[Pipeline] sh
+ rm -rf /root/workspace/params-submodule/yiwu-suxi-submodule/YWSX_KINGLONG_IGV15/slave@tmp
[Pipeline] sh
+ rm -rf /root/workspace/params-submodule/yiwu-suxi-submodule/YWSX_KINGLONG_IGV15/slave/params_submodule/
[Pipeline] echo
------------------------------------- YWSX_KINGLONG_IGV16压缩并上传,slave -------------------------------------------
[Pipeline] dir
Running in /root/workspace/params-submodule/yiwu-suxi-submodule/YWSX_KINGLONG_IGV16/slave
[Pipeline] {
[Pipeline] sh
+ cd /root/workspace/params-submodule/yiwu-suxi-submodule/YWSX_KINGLONG_IGV16/slave/params/
+ ls -d crane_align/ extrinsics/ hardware/ hdmap/ hdmap_interface/ hesai_lidar/ imv_spreader_detection/ lane_detection/ lidar_correction_files/ lidar_loc_v2/ master/ perception/ pncc_common_config/ pncc_port_related_config/ pncc_vehicle_related_config/ pointcloud/ prediction/ rslidar_sdk/ slave/ system-ros/
[Pipeline] echo
crane_align/
extrinsics/
hardware/
hdmap/
hdmap_interface/
hesai_lidar/
imv_spreader_detection/
lane_detection/
lidar_correction_files/
lidar_loc_v2/
master/
perception/
pncc_common_config/
pncc_port_related_config/
pncc_vehicle_related_config/
pointcloud/
prediction/
rslidar_sdk/
slave/
system-ros/
[Pipeline] echo
最终目录包含slave目录,进行合并操作
[Pipeline] sh
+ cp -r /root/workspace/params-submodule/yiwu-suxi-submodule/YWSX_KINGLONG_IGV16/slave/params/slave/camera_driver /root/workspace/params-submodule/yiwu-suxi-submodule/YWSX_KINGLONG_IGV16/slave/params/slave/recorder.toml /root/workspace/params-submodule/yiwu-suxi-submodule/YWSX_KINGLONG_IGV16/slave/params/slave/system-ros /root/workspace/params-submodule/yiwu-suxi-submodule/YWSX_KINGLONG_IGV16/slave/params/
[Pipeline] sh
+ mkdir -p params_orin_slave_YWSX_KINGLONG_IGV16_2026-09-22_13-44-36/
+ mv params/ params_orin_slave_YWSX_KINGLONG_IGV16_2026-09-22_13-44-36/
[Pipeline] sh
+ zip -rq params_orin_slave_YWSX_KINGLONG_IGV16_2026-09-22_13-44-36.zip params_orin_slave_YWSX_KINGLONG_IGV16_2026-09-22_13-44-36 ./version.json
[Pipeline] echo
/root/workspace/params-submodule/yiwu-suxi-submodule/YWSX_KINGLONG_IGV16/slave/params_orin_slave_YWSX_KINGLONG_IGV16_2026-09-22_13-44-36.zip,/root/workspace/params-submodule/yiwu-suxi-submodule/YWSX_KINGLONG_IGV16/slave/version.json
[Pipeline] sh
+ curl -X POST http://172.16.110.148:60180/ota-api/otaUploadFileAndVersion --form 'Content-Type="multipart/form-data"' --form 'file=@"/root/workspace/params-submodule/yiwu-suxi-submodule/YWSX_KINGLONG_IGV16/slave/params_orin_slave_YWSX_KINGLONG_IGV16_2026-09-22_13-44-36.zip"' --form 'version=@"/root/workspace/params-submodule/yiwu-suxi-submodule/YWSX_KINGLONG_IGV16/slave/version.json"'
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
0 0 0 0 0 0 0 0 --:--:-- --:--:-- --:--:-- 0
0 160M 0 0 0 1024k 0 1535k 0:01:46 --:--:-- 0:01:46 1532k
2 160M 0 0 2 4032k 0 2449k 0:01:06 0:00:01 0:01:05 2448k
4 160M 0 0 4 7296k 0 2778k 0:00:59 0:00:02 0:00:57 2777k
6 160M 0 0 6 10.6M 0 2989k 0:00:54 0:00:03 0:00:51 2989k
9 160M 0 0 9 14.4M 0 3196k 0:00:51 0:00:04 0:00:47 3195k
11 160M 0 0 11 18.6M 0 3386k 0:00:48 0:00:05 0:00:43 3634k
14 160M 0 0 14 23.1M 0 3573k 0:00:45 0:00:06 0:00:39 3944k
17 160M 0 0 17 28.0M 0 3761k 0:00:43 0:00:07 0:00:36 4277k
20 160M 0 0 20 33.1M 0 3938k 0:00:41 0:00:08 0:00:33 4630k
24 160M 0 0 24 38.8M 0 4129k 0:00:39 0:00:09 0:00:30 4992k
27 160M 0 0 27 44.6M 0 4303k 0:00:38 0:00:10 0:00:28 5344k
32 160M 0 0 32 51.3M 0 4526k 0:00:36 0:00:11 0:00:25 5790k
37 160M 0 0 37 59.8M 0 4854k 0:00:33 0:00:12 0:00:21 6518k
43 160M 0 0 43 69.4M 0 5218k 0:00:31 0:00:13 0:00:18 7426k
48 160M 0 0 48 78.1M 0 5470k 0:00:29 0:00:14 0:00:15 8052k
54 160M 0 0 54 87.8M 0 5753k 0:00:28 0:00:15 0:00:13 8835k
61 160M 0 0 61 98.1M 0 6047k 0:00:27 0:00:16 0:00:11 9583k
67 160M 0 0 67 108M 0 6327k 0:00:25 0:00:17 0:00:08 9.8M
74 160M 0 0 74 119M 0 6583k 0:00:24 0:00:18 0:00:06 10.0M
78 160M 0 0 78 126M 0 6590k 0:00:24 0:00:19 0:00:05 9860k
82 160M 0 0 82 132M 0 6560k 0:00:25 0:00:20 0:00:05 9080k
86 160M 0 0 86 138M 0 6555k 0:00:25 0:00:21 0:00:04 8241k
90 160M 0 0 90 145M 0 6560k 0:00:25 0:00:22 0:00:03 7379k
94 160M 0 0 94 151M 0 6569k 0:00:24 0:00:23 0:00:01 6519k
98 160M 0 0 98 158M 0 6593k 0:00:24 0:00:24 --:--:-- 6608k
100 160M 0 0 100 160M 0 6344k 0:00:25 0:00:25 --:--:-- 5490k
100 160M 0 0 100 160M 0 6108k 0:00:26 0:00:26 --:--:-- 4264k
100 160M 0 0 100 160M 0 5888k 0:00:27 0:00:27 --:--:-- 2985k
100 160M 0 0 100 160M 0 5684k 0:00:28 0:00:28 --:--:-- 1697k
100 160M 0 0 100 160M 0 5493k 0:00:29 0:00:29 --:--:-- 319k
100 160M 0 0 100 160M 0 5315k 0:00:30 0:00:30 --:--:-- 0
100 160M 0 0 100 160M 0 5148k 0:00:31 0:00:31 --:--:-- 0
100 160M 0 0 100 160M 0 4991k 0:00:32 0:00:32 --:--:-- 0
100 160M 0 0 100 160M 0 4844k 0:00:33 0:00:33 --:--:-- 0
100 160M 0 0 100 160M 0 4705k 0:00:34 0:00:34 --:--:-- 0
100 160M 0 0 100 160M 0 4574k 0:00:35 0:00:35 --:--:-- 0
100 160M 0 0 100 160M 0 4449k 0:00:36 0:00:36 --:--:-- 0
100 160M 0 0 100 160M 0 4332k 0:00:37 0:00:37 --:--:-- 0
100 160M 0 0 100 160M 0 4220k 0:00:38 0:00:38 --:--:-- 0
100 160M 0 0 100 160M 0 4114k 0:00:39 0:00:39 --:--:-- 0
100 160M 0 0 100 160M 0 4014k 0:00:40 0:00:40 --:--:-- 0
100 160M 0 0 100 160M 0 3918k 0:00:41 0:00:41 --:--:-- 0
100 160M 0 0 100 160M 0 3826k 0:00:42 0:00:42 --:--:-- 0
100 160M 0 43 100 160M 0 3778k 0:00:43 0:00:43 --:--:-- 9
[Pipeline] echo
{"msg":"操作成功","code":200,"data":""}
[Pipeline] readJSON
[Pipeline] echo
[msg:操作成功, code:200, data:]
[Pipeline] echo
status:200
[Pipeline] echo
{"msg":"操作成功","code":200,"data":""}
[Pipeline] }
[Pipeline] // dir
[Pipeline] sh
+ rm -rf /root/workspace/params-submodule/yiwu-suxi-submodule/YWSX_KINGLONG_IGV16/slave@tmp
[Pipeline] sh
+ rm -rf /root/workspace/params-submodule/yiwu-suxi-submodule/YWSX_KINGLONG_IGV16/slave/params_submodule/
[Pipeline] echo
------------------------------------- YWSX_KINGLONG_IGV17压缩并上传,slave -------------------------------------------
[Pipeline] dir
Running in /root/workspace/params-submodule/yiwu-suxi-submodule/YWSX_KINGLONG_IGV17/slave
[Pipeline] {
[Pipeline] sh
+ cd /root/workspace/params-submodule/yiwu-suxi-submodule/YWSX_KINGLONG_IGV17/slave/params/
+ ls -d crane_align/ extrinsics/ hardware/ hdmap/ hdmap_interface/ hesai_lidar/ imv_spreader_detection/ lane_detection/ lidar_correction_files/ lidar_loc_v2/ master/ perception/ pncc_common_config/ pncc_port_related_config/ pncc_vehicle_related_config/ pointcloud/ prediction/ rslidar_sdk/ slave/ system-ros/
[Pipeline] echo
crane_align/
extrinsics/
hardware/
hdmap/
hdmap_interface/
hesai_lidar/
imv_spreader_detection/
lane_detection/
lidar_correction_files/
lidar_loc_v2/
master/
perception/
pncc_common_config/
pncc_port_related_config/
pncc_vehicle_related_config/
pointcloud/
prediction/
rslidar_sdk/
slave/
system-ros/
[Pipeline] echo
最终目录包含slave目录,进行合并操作
[Pipeline] sh
+ cp -r /root/workspace/params-submodule/yiwu-suxi-submodule/YWSX_KINGLONG_IGV17/slave/params/slave/camera_driver /root/workspace/params-submodule/yiwu-suxi-submodule/YWSX_KINGLONG_IGV17/slave/params/slave/recorder.toml /root/workspace/params-submodule/yiwu-suxi-submodule/YWSX_KINGLONG_IGV17/slave/params/slave/system-ros /root/workspace/params-submodule/yiwu-suxi-submodule/YWSX_KINGLONG_IGV17/slave/params/
[Pipeline] sh
+ mkdir -p params_orin_slave_YWSX_KINGLONG_IGV17_2026-09-22_13-44-36/
+ mv params/ params_orin_slave_YWSX_KINGLONG_IGV17_2026-09-22_13-44-36/
[Pipeline] sh
+ zip -rq params_orin_slave_YWSX_KINGLONG_IGV17_2026-09-22_13-44-36.zip params_orin_slave_YWSX_KINGLONG_IGV17_2026-09-22_13-44-36 ./version.json
[Pipeline] echo
/root/workspace/params-submodule/yiwu-suxi-submodule/YWSX_KINGLONG_IGV17/slave/params_orin_slave_YWSX_KINGLONG_IGV17_2026-09-22_13-44-36.zip,/root/workspace/params-submodule/yiwu-suxi-submodule/YWSX_KINGLONG_IGV17/slave/version.json
[Pipeline] sh
+ curl -X POST http://172.16.110.148:60180/ota-api/otaUploadFileAndVersion --form 'Content-Type="multipart/form-data"' --form 'file=@"/root/workspace/params-submodule/yiwu-suxi-submodule/YWSX_KINGLONG_IGV17/slave/params_orin_slave_YWSX_KINGLONG_IGV17_2026-09-22_13-44-36.zip"' --form 'version=@"/root/workspace/params-submodule/yiwu-suxi-submodule/YWSX_KINGLONG_IGV17/slave/version.json"'
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
0 0 0 0 0 0 0 0 --:--:-- --:--:-- --:--:-- 0
0 160M 0 0 0 192k 0 441k 0:06:11 --:--:-- 0:06:11 440k
2 160M 0 0 2 3520k 0 2410k 0:01:08 0:00:01 0:01:07 2409k
4 160M 0 0 4 6656k 0 2725k 0:01:00 0:00:02 0:00:58 2724k
6 160M 0 0 6 9.8M 0 2950k 0:00:55 0:00:03 0:00:52 2949k
8 160M 0 0 8 13.7M 0 3161k 0:00:51 0:00:04 0:00:47 3160k
11 160M 0 0 11 17.7M 0 3346k 0:00:49 0:00:05 0:00:44 3598k
13 160M 0 0 13 22.3M 0 3542k 0:00:46 0:00:06 0:00:40 3873k
16 160M 0 0 16 27.0M 0 3719k 0:00:44 0:00:07 0:00:37 4205k
20 160M 0 0 20 32.2M 0 3904k 0:00:42 0:00:08 0:00:34 4555k
23 160M 0 0 23 37.6M 0 4089k 0:00:40 0:00:09 0:00:31 4918k
27 160M 0 0 27 43.5M 0 4274k 0:00:38 0:00:10 0:00:28 5285k
31 160M 0 0 31 50.1M 0 4488k 0:00:36 0:00:11 0:00:25 5711k
35 160M 0 0 35 56.8M 0 4683k 0:00:35 0:00:12 0:00:23 6119k
39 160M 0 0 39 63.4M 0 4839k 0:00:33 0:00:13 0:00:20 6429k
44 160M 0 0 44 70.6M 0 5016k 0:00:32 0:00:14 0:00:18 6770k
48 160M 0 0 48 78.3M 0 5200k 0:00:31 0:00:15 0:00:16 7129k
53 160M 0 0 53 86.2M 0 5377k 0:00:30 0:00:16 0:00:14 7413k
58 160M 0 0 58 94.1M 0 5532k 0:00:29 0:00:17 0:00:12 7643k
63 160M 0 0 63 102M 0 5677k 0:00:28 0:00:18 0:00:10 7926k
68 160M 0 0 68 110M 0 5804k 0:00:28 0:00:19 0:00:09 8076k
73 160M 0 0 73 118M 0 5933k 0:00:27 0:00:20 0:00:07 8192k
79 160M 0 0 79 126M 0 6066k 0:00:27 0:00:21 0:00:06 8331k
83 160M 0 0 83 134M 0 6119k 0:00:26 0:00:22 0:00:04 8166k
88 160M 0 0 88 141M 0 6180k 0:00:26 0:00:23 0:00:03 8036k
93 160M 0 0 93 149M 0 6267k 0:00:26 0:00:24 0:00:02 8067k
98 160M 0 0 98 158M 0 6367k 0:00:25 0:00:25 --:--:-- 8140k
100 160M 0 0 100 160M 0 6151k 0:00:26 0:00:26 --:--:-- 6498k
100 160M 0 0 100 160M 0 5928k 0:00:27 0:00:27 --:--:-- 5114k
100 160M 0 0 100 160M 0 5721k 0:00:28 0:00:28 --:--:-- 3679k
100 160M 0 0 100 160M 0 5528k 0:00:29 0:00:29 --:--:-- 2096k
100 160M 0 0 100 160M 0 5348k 0:00:30 0:00:30 --:--:-- 427k
100 160M 0 0 100 160M 0 5179k 0:00:31 0:00:31 --:--:-- 0
100 160M 0 0 100 160M 0 5020k 0:00:32 0:00:32 --:--:-- 0
100 160M 0 0 100 160M 0 4871k 0:00:33 0:00:33 --:--:-- 0
100 160M 0 0 100 160M 0 4731k 0:00:34 0:00:34 --:--:-- 0
100 160M 0 0 100 160M 0 4598k 0:00:35 0:00:35 --:--:-- 0
100 160M 0 0 100 160M 0 4472k 0:00:36 0:00:36 --:--:-- 0
100 160M 0 0 100 160M 0 4354k 0:00:37 0:00:37 --:--:-- 0
100 160M 0 0 100 160M 0 4241k 0:00:38 0:00:38 --:--:-- 0
100 160M 0 0 100 160M 0 4134k 0:00:39 0:00:39 --:--:-- 0
100 160M 0 0 100 160M 0 4032k 0:00:40 0:00:40 --:--:-- 0
100 160M 0 0 100 160M 0 3935k 0:00:41 0:00:41 --:--:-- 0
100 160M 0 0 100 160M 0 3843k 0:00:42 0:00:42 --:--:-- 0
100 160M 0 0 100 160M 0 3755k 0:00:43 0:00:43 --:--:-- 0
100 160M 0 0 100 160M 0 3671k 0:00:44 0:00:44 --:--:-- 0
100 160M 0 43 100 160M 0 3592k 0:00:45 0:00:45 --:--:-- 8
100 160M 0 43 100 160M 0 3592k 0:00:45 0:00:45 --:--:-- 10
[Pipeline] echo
{"msg":"操作成功","code":200,"data":""}
[Pipeline] readJSON
[Pipeline] echo
[msg:操作成功, code:200, data:]
[Pipeline] echo
status:200
[Pipeline] echo
{"msg":"操作成功","code":200,"data":""}
[Pipeline] }
[Pipeline] // dir
[Pipeline] sh
+ rm -rf /root/workspace/params-submodule/yiwu-suxi-submodule/YWSX_KINGLONG_IGV17/slave@tmp
[Pipeline] sh
+ rm -rf /root/workspace/params-submodule/yiwu-suxi-submodule/YWSX_KINGLONG_IGV17/slave/params_submodule/
[Pipeline] echo
------------------------------------- YWSX_KINGLONG_IGV18压缩并上传,slave -------------------------------------------
[Pipeline] dir
Running in /root/workspace/params-submodule/yiwu-suxi-submodule/YWSX_KINGLONG_IGV18/slave
[Pipeline] {
[Pipeline] sh
+ cd /root/workspace/params-submodule/yiwu-suxi-submodule/YWSX_KINGLONG_IGV18/slave/params/
+ ls -d crane_align/ extrinsics/ hardware/ hdmap/ hdmap_interface/ hesai_lidar/ imv_spreader_detection/ lane_detection/ lidar_correction_files/ lidar_loc_v2/ master/ perception/ pncc_common_config/ pncc_port_related_config/ pncc_vehicle_related_config/ pointcloud/ prediction/ rslidar_sdk/ slave/ system-ros/
[Pipeline] echo
crane_align/
extrinsics/
hardware/
hdmap/
hdmap_interface/
hesai_lidar/
imv_spreader_detection/
lane_detection/
lidar_correction_files/
lidar_loc_v2/
master/
perception/
pncc_common_config/
pncc_port_related_config/
pncc_vehicle_related_config/
pointcloud/
prediction/
rslidar_sdk/
slave/
system-ros/
[Pipeline] echo
最终目录包含slave目录,进行合并操作
[Pipeline] sh
+ cp -r /root/workspace/params-submodule/yiwu-suxi-submodule/YWSX_KINGLONG_IGV18/slave/params/slave/camera_driver /root/workspace/params-submodule/yiwu-suxi-submodule/YWSX_KINGLONG_IGV18/slave/params/slave/recorder.toml /root/workspace/params-submodule/yiwu-suxi-submodule/YWSX_KINGLONG_IGV18/slave/params/slave/system-ros /root/workspace/params-submodule/yiwu-suxi-submodule/YWSX_KINGLONG_IGV18/slave/params/
[Pipeline] sh
+ mkdir -p params_orin_slave_YWSX_KINGLONG_IGV18_2026-09-22_13-44-36/
+ mv params/ params_orin_slave_YWSX_KINGLONG_IGV18_2026-09-22_13-44-36/
[Pipeline] sh
+ zip -rq params_orin_slave_YWSX_KINGLONG_IGV18_2026-09-22_13-44-36.zip params_orin_slave_YWSX_KINGLONG_IGV18_2026-09-22_13-44-36 ./version.json
[Pipeline] echo
/root/workspace/params-submodule/yiwu-suxi-submodule/YWSX_KINGLONG_IGV18/slave/params_orin_slave_YWSX_KINGLONG_IGV18_2026-09-22_13-44-36.zip,/root/workspace/params-submodule/yiwu-suxi-submodule/YWSX_KINGLONG_IGV18/slave/version.json
[Pipeline] sh
+ curl -X POST http://172.16.110.148:60180/ota-api/otaUploadFileAndVersion --form 'Content-Type="multipart/form-data"' --form 'file=@"/root/workspace/params-submodule/yiwu-suxi-submodule/YWSX_KINGLONG_IGV18/slave/params_orin_slave_YWSX_KINGLONG_IGV18_2026-09-22_13-44-36.zip"' --form 'version=@"/root/workspace/params-submodule/yiwu-suxi-submodule/YWSX_KINGLONG_IGV18/slave/version.json"'
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
0 0 0 0 0 0 0 0 --:--:-- --:--:-- --:--:-- 0
2 160M 0 0 2 3456k 0 3708k 0:00:44 --:--:-- 0:00:44 3704k
5 160M 0 0 5 9344k 0 4889k 0:00:33 0:00:01 0:00:32 4887k
8 160M 0 0 8 13.5M 0 4716k 0:00:34 0:00:02 0:00:32 4716k
11 160M 0 0 11 17.6M 0 4636k 0:00:35 0:00:03 0:00:32 4635k
13 160M 0 0 13 21.5M 0 4498k 0:00:36 0:00:04 0:00:32 4497k
16 160M 0 0 16 25.8M 0 4478k 0:00:36 0:00:05 0:00:31 4622k
16 160M 0 0 16 26.5M 0 3928k 0:00:41 0:00:06 0:00:35 3559k
18 160M 0 0 18 28.9M 0 3419k 0:00:47 0:00:08 0:00:39 2756k
18 160M 0 0 18 29.0M 0 3194k 0:00:51 0:00:09 0:00:42 2149k
19 160M 0 0 19 30.5M 0 3155k 0:00:52 0:00:09 0:00:43 1839k
19 160M 0 0 19 31.4M 0 2875k 0:00:57 0:00:11 0:00:46 1088k
20 160M 0 0 20 32.1M 0 2764k 0:00:59 0:00:11 0:00:48 1161k
21 160M 0 0 21 34.3M 0 2726k 0:01:00 0:00:12 0:00:48 1311k
23 160M 0 0 23 36.9M 0 2715k 0:01:00 0:00:13 0:00:47 1753k
24 160M 0 0 24 39.7M 0 2727k 0:01:00 0:00:14 0:00:46 1880k
26 160M 0 0 26 42.9M 0 2765k 0:00:59 0:00:15 0:00:44 2502k
29 160M 0 0 29 46.5M 0 2815k 0:00:58 0:00:16 0:00:42 2937k
31 160M 0 0 31 50.3M 0 2881k 0:00:56 0:00:17 0:00:39 3285k
34 160M 0 0 34 54.6M 0 2959k 0:00:55 0:00:18 0:00:37 3641k
36 160M 0 0 36 59.1M 0 3043k 0:00:53 0:00:19 0:00:34 3989k
39 160M 0 0 39 64.0M 0 3139k 0:00:52 0:00:20 0:00:32 4328k
43 160M 0 0 43 69.5M 0 3249k 0:00:50 0:00:21 0:00:29 4721k
47 160M 0 0 47 76.5M 0 3422k 0:00:47 0:00:22 0:00:25 5357k
53 160M 0 0 53 85.9M 0 3682k 0:00:44 0:00:23 0:00:21 6419k
60 160M 0 0 60 97.6M 0 4015k 0:00:40 0:00:24 0:00:16 7883k
67 160M 0 0 67 107M 0 4252k 0:00:38 0:00:25 0:00:13 8908k
72 160M 0 0 72 115M 0 4405k 0:00:37 0:00:26 0:00:11 9466k
76 160M 0 0 76 121M 0 4468k 0:00:36 0:00:27 0:00:09 9252k
80 160M 0 0 80 128M 0 4547k 0:00:36 0:00:28 0:00:08 8681k
84 160M 0 0 84 135M 0 4622k 0:00:35 0:00:29 0:00:06 7642k
88 160M 0 0 88 141M 0 4698k 0:00:34 0:00:30 0:00:04 7004k
92 160M 0 0 92 148M 0 4781k 0:00:34 0:00:31 0:00:03 6802k
95 160M 0 0 95 153M 0 4759k 0:00:34 0:00:33 0:00:01 6334k
98 160M 0 0 98 158M 0 4773k 0:00:34 0:00:33 0:00:01 6080k
100 160M 0 0 100 160M 0 4652k 0:00:35 0:00:35 --:--:-- 4822k
100 160M 0 0 100 160M 0 4524k 0:00:36 0:00:36 --:--:-- 3520k
100 160M 0 0 100 160M 0 4402k 0:00:37 0:00:37 --:--:-- 2157k
100 160M 0 0 100 160M 0 4287k 0:00:38 0:00:38 --:--:-- 1292k
100 160M 0 0 100 160M 0 4178k 0:00:39 0:00:39 --:--:-- 419k
100 160M 0 0 100 160M 0 4074k 0:00:40 0:00:40 --:--:-- 0
100 160M 0 0 100 160M 0 3976k 0:00:41 0:00:41 --:--:-- 0
100 160M 0 0 100 160M 0 3881k 0:00:42 0:00:42 --:--:-- 0
100 160M 0 0 100 160M 0 3792k 0:00:43 0:00:43 --:--:-- 0
100 160M 0 0 100 160M 0 3706k 0:00:44 0:00:44 --:--:-- 0
100 160M 0 0 100 160M 0 3624k 0:00:45 0:00:45 --:--:-- 0
100 160M 0 0 100 160M 0 3546k 0:00:46 0:00:46 --:--:-- 0
100 160M 0 0 100 160M 0 3471k 0:00:47 0:00:47 --:--:-- 0
100 160M 0 0 100 160M 0 3399k 0:00:48 0:00:48 --:--:-- 0
100 160M 0 0 100 160M 0 3330k 0:00:49 0:00:49 --:--:-- 0
100 160M 0 43 100 160M 0 3285k 0:00:49 0:00:49 --:--:-- 9
100 160M 0 43 100 160M 0 3285k 0:00:49 0:00:49 --:--:-- 11
[Pipeline] echo
{"msg":"操作成功","code":200,"data":""}
[Pipeline] readJSON
[Pipeline] echo
[msg:操作成功, code:200, data:]
[Pipeline] echo
status:200
[Pipeline] echo
{"msg":"操作成功","code":200,"data":""}
[Pipeline] }
[Pipeline] // dir
[Pipeline] sh
+ rm -rf /root/workspace/params-submodule/yiwu-suxi-submodule/YWSX_KINGLONG_IGV18/slave@tmp
[Pipeline] sh
+ rm -rf /root/workspace/params-submodule/yiwu-suxi-submodule/YWSX_KINGLONG_IGV18/slave/params_submodule/
[Pipeline] echo
------------------------------------- YWSX_KINGLONG_IGV19压缩并上传,slave -------------------------------------------
[Pipeline] dir
Running in /root/workspace/params-submodule/yiwu-suxi-submodule/YWSX_KINGLONG_IGV19/slave
[Pipeline] {
[Pipeline] sh
+ cd /root/workspace/params-submodule/yiwu-suxi-submodule/YWSX_KINGLONG_IGV19/slave/params/
+ ls -d crane_align/ extrinsics/ hardware/ hdmap/ hdmap_interface/ hesai_lidar/ imv_spreader_detection/ lane_detection/ lidar_correction_files/ lidar_loc_v2/ master/ perception/ pncc_common_config/ pncc_port_related_config/ pncc_vehicle_related_config/ pointcloud/ prediction/ rslidar_sdk/ slave/ system-ros/
[Pipeline] echo
crane_align/
extrinsics/
hardware/
hdmap/
hdmap_interface/
hesai_lidar/
imv_spreader_detection/
lane_detection/
lidar_correction_files/
lidar_loc_v2/
master/
perception/
pncc_common_config/
pncc_port_related_config/
pncc_vehicle_related_config/
pointcloud/
prediction/
rslidar_sdk/
slave/
system-ros/
[Pipeline] echo
最终目录包含slave目录,进行合并操作
[Pipeline] sh
+ cp -r /root/workspace/params-submodule/yiwu-suxi-submodule/YWSX_KINGLONG_IGV19/slave/params/slave/camera_driver /root/workspace/params-submodule/yiwu-suxi-submodule/YWSX_KINGLONG_IGV19/slave/params/slave/recorder.toml /root/workspace/params-submodule/yiwu-suxi-submodule/YWSX_KINGLONG_IGV19/slave/params/slave/system-ros /root/workspace/params-submodule/yiwu-suxi-submodule/YWSX_KINGLONG_IGV19/slave/params/
[Pipeline] sh
+ mkdir -p params_orin_slave_YWSX_KINGLONG_IGV19_2026-09-22_13-44-36/
+ mv params/ params_orin_slave_YWSX_KINGLONG_IGV19_2026-09-22_13-44-36/
[Pipeline] sh
+ zip -rq params_orin_slave_YWSX_KINGLONG_IGV19_2026-09-22_13-44-36.zip params_orin_slave_YWSX_KINGLONG_IGV19_2026-09-22_13-44-36 ./version.json
[Pipeline] echo
/root/workspace/params-submodule/yiwu-suxi-submodule/YWSX_KINGLONG_IGV19/slave/params_orin_slave_YWSX_KINGLONG_IGV19_2026-09-22_13-44-36.zip,/root/workspace/params-submodule/yiwu-suxi-submodule/YWSX_KINGLONG_IGV19/slave/version.json
[Pipeline] sh
+ curl -X POST http://172.16.110.148:60180/ota-api/otaUploadFileAndVersion --form 'Content-Type="multipart/form-data"' --form 'file=@"/root/workspace/params-submodule/yiwu-suxi-submodule/YWSX_KINGLONG_IGV19/slave/params_orin_slave_YWSX_KINGLONG_IGV19_2026-09-22_13-44-36.zip"' --form 'version=@"/root/workspace/params-submodule/yiwu-suxi-submodule/YWSX_KINGLONG_IGV19/slave/version.json"'
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
0 0 0 0 0 0 0 0 --:--:-- --:--:-- --:--:-- 0
0 160M 0 0 0 0 0 0 --:--:-- --:--:-- --:--:-- 0
3 160M 0 0 3 5696k 0 4668k 0:00:35 0:00:01 0:00:34 4665k
6 160M 0 0 6 10.5M 0 4883k 0:00:33 0:00:02 0:00:31 4880k
9 160M 0 0 9 14.6M 0 4641k 0:00:35 0:00:03 0:00:32 4640k
11 160M 0 0 11 18.6M 0 4535k 0:00:36 0:00:04 0:00:32 4534k
14 160M 0 0 14 23.0M 0 4508k 0:00:36 0:00:05 0:00:31 4808k
17 160M 0 0 17 27.6M 0 4549k 0:00:36 0:00:06 0:00:30 4519k
20 160M 0 0 20 32.6M 0 4627k 0:00:35 0:00:07 0:00:28 4514k
23 160M 0 0 23 37.8M 0 4718k 0:00:34 0:00:08 0:00:26 4767k
27 160M 0 0 27 43.5M 0 4833k 0:00:33 0:00:09 0:00:24 5084k
30 160M 0 0 30 49.4M 0 4951k 0:00:33 0:00:10 0:00:23 5415k
34 160M 0 0 34 55.7M 0 5090k 0:00:32 0:00:11 0:00:21 5764k
38 160M 0 0 38 62.4M 0 5229k 0:00:31 0:00:12 0:00:19 6099k
43 160M 0 0 43 69.5M 0 5385k 0:00:30 0:00:13 0:00:17 6483k
48 160M 0 0 48 78.1M 0 5629k 0:00:29 0:00:14 0:00:15 7094k
55 160M 0 0 55 88.9M 0 5986k 0:00:27 0:00:15 0:00:12 8105k
61 160M 0 0 61 98.8M 0 6243k 0:00:26 0:00:16 0:00:10 8828k
65 160M 0 0 65 104M 0 6201k 0:00:26 0:00:17 0:00:09 8580k
68 160M 0 0 68 109M 0 6165k 0:00:26 0:00:18 0:00:08 8227k
71 160M 0 0 71 115M 0 6143k 0:00:26 0:00:19 0:00:07 7606k
75 160M 0 0 75 121M 0 6135k 0:00:26 0:00:20 0:00:06 6592k
79 160M 0 0 79 127M 0 6147k 0:00:26 0:00:21 0:00:05 5836k
83 160M 0 0 83 133M 0 6170k 0:00:26 0:00:22 0:00:04 6064k
87 160M 0 0 87 140M 0 6209k 0:00:26 0:00:23 0:00:03 6370k
92 160M 0 0 92 147M 0 6254k 0:00:26 0:00:24 0:00:02 6682k
96 160M 0 0 96 155M 0 6311k 0:00:25 0:00:25 --:--:-- 7022k
100 160M 0 0 100 160M 0 6113k 0:00:26 0:00:26 --:--:-- 5984k
100 160M 0 0 100 160M 0 5893k 0:00:27 0:00:27 --:--:-- 4801k
100 160M 0 0 100 160M 0 5689k 0:00:28 0:00:28 --:--:-- 3540k
100 160M 0 0 100 160M 0 5498k 0:00:29 0:00:29 --:--:-- 2242k
100 160M 0 0 100 160M 0 5319k 0:00:30 0:00:30 --:--:-- 877k
100 160M 0 0 100 160M 0 5152k 0:00:31 0:00:31 --:--:-- 0
100 160M 0 0 100 160M 0 4995k 0:00:32 0:00:32 --:--:-- 0
100 160M 0 0 100 160M 0 4847k 0:00:33 0:00:33 --:--:-- 0
100 160M 0 0 100 160M 0 4708k 0:00:34 0:00:34 --:--:-- 0
100 160M 0 0 100 160M 0 4577k 0:00:35 0:00:35 --:--:-- 0
100 160M 0 0 100 160M 0 4452k 0:00:36 0:00:36 --:--:-- 0
100 160M 0 0 100 160M 0 4335k 0:00:37 0:00:37 --:--:-- 0
100 160M 0 0 100 160M 0 4223k 0:00:38 0:00:38 --:--:-- 0
100 160M 0 0 100 160M 0 4117k 0:00:39 0:00:39 --:--:-- 0
100 160M 0 0 100 160M 0 4016k 0:00:40 0:00:40 --:--:-- 0
100 160M 0 0 100 160M 0 3920k 0:00:41 0:00:41 --:--:-- 0
100 160M 0 0 100 160M 0 3828k 0:00:42 0:00:42 --:--:-- 0
100 160M 0 0 100 160M 0 3741k 0:00:43 0:00:43 --:--:-- 0
100 160M 0 43 100 160M 0 3703k 0:00:44 0:00:44 --:--:-- 9
100 160M 0 43 100 160M 0 3703k 0:00:44 0:00:44 --:--:-- 12
[Pipeline] echo
{"msg":"操作成功","code":200,"data":""}
[Pipeline] readJSON
[Pipeline] echo
[msg:操作成功, code:200, data:]
[Pipeline] echo
status:200
[Pipeline] echo
{"msg":"操作成功","code":200,"data":""}
[Pipeline] }
[Pipeline] // dir
[Pipeline] sh
+ rm -rf /root/workspace/params-submodule/yiwu-suxi-submodule/YWSX_KINGLONG_IGV19/slave@tmp
[Pipeline] sh
+ rm -rf /root/workspace/params-submodule/yiwu-suxi-submodule/YWSX_KINGLONG_IGV19/slave/params_submodule/
[Pipeline] echo
------------------------------------- YWSX_KINGLONG_IGV20压缩并上传,slave -------------------------------------------
[Pipeline] dir
Running in /root/workspace/params-submodule/yiwu-suxi-submodule/YWSX_KINGLONG_IGV20/slave
[Pipeline] {
[Pipeline] sh
+ cd /root/workspace/params-submodule/yiwu-suxi-submodule/YWSX_KINGLONG_IGV20/slave/params/
+ ls -d crane_align/ extrinsics/ hardware/ hdmap/ hdmap_interface/ hesai_lidar/ imv_spreader_detection/ lane_detection/ lidar_correction_files/ lidar_loc_v2/ master/ perception/ pncc_common_config/ pncc_port_related_config/ pncc_vehicle_related_config/ pointcloud/ prediction/ rslidar_sdk/ slave/ system-ros/
[Pipeline] echo
crane_align/
extrinsics/
hardware/
hdmap/
hdmap_interface/
hesai_lidar/
imv_spreader_detection/
lane_detection/
lidar_correction_files/
lidar_loc_v2/
master/
perception/
pncc_common_config/
pncc_port_related_config/
pncc_vehicle_related_config/
pointcloud/
prediction/
rslidar_sdk/
slave/
system-ros/
[Pipeline] echo
最终目录包含slave目录,进行合并操作
[Pipeline] sh
+ cp -r /root/workspace/params-submodule/yiwu-suxi-submodule/YWSX_KINGLONG_IGV20/slave/params/slave/camera_driver /root/workspace/params-submodule/yiwu-suxi-submodule/YWSX_KINGLONG_IGV20/slave/params/slave/recorder.toml /root/workspace/params-submodule/yiwu-suxi-submodule/YWSX_KINGLONG_IGV20/slave/params/slave/system-ros /root/workspace/params-submodule/yiwu-suxi-submodule/YWSX_KINGLONG_IGV20/slave/params/
[Pipeline] sh
+ mkdir -p params_orin_slave_YWSX_KINGLONG_IGV20_2026-09-22_13-44-36/
+ mv params/ params_orin_slave_YWSX_KINGLONG_IGV20_2026-09-22_13-44-36/
[Pipeline] sh
+ zip -rq params_orin_slave_YWSX_KINGLONG_IGV20_2026-09-22_13-44-36.zip params_orin_slave_YWSX_KINGLONG_IGV20_2026-09-22_13-44-36 ./version.json
[Pipeline] echo
/root/workspace/params-submodule/yiwu-suxi-submodule/YWSX_KINGLONG_IGV20/slave/params_orin_slave_YWSX_KINGLONG_IGV20_2026-09-22_13-44-36.zip,/root/workspace/params-submodule/yiwu-suxi-submodule/YWSX_KINGLONG_IGV20/slave/version.json
[Pipeline] sh
+ curl -X POST http://172.16.110.148:60180/ota-api/otaUploadFileAndVersion --form 'Content-Type="multipart/form-data"' --form 'file=@"/root/workspace/params-submodule/yiwu-suxi-submodule/YWSX_KINGLONG_IGV20/slave/params_orin_slave_YWSX_KINGLONG_IGV20_2026-09-22_13-44-36.zip"' --form 'version=@"/root/workspace/params-submodule/yiwu-suxi-submodule/YWSX_KINGLONG_IGV20/slave/version.json"'
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
0 0 0 0 0 0 0 0 --:--:-- --:--:-- --:--:-- 0
1 160M 0 0 1 1920k 0 2171k 0:01:15 --:--:-- 0:01:15 2169k
3 160M 0 0 3 6080k 0 3191k 0:00:51 0:00:01 0:00:50 3189k
6 160M 0 0 6 10.3M 0 3660k 0:00:44 0:00:02 0:00:42 3659k
9 160M 0 0 9 15.0M 0 3979k 0:00:41 0:00:03 0:00:38 3979k
12 160M 0 0 12 19.9M 0 4167k 0:00:39 0:00:04 0:00:35 4167k
14 160M 0 0 14 23.8M 0 4151k 0:00:39 0:00:05 0:00:34 4501k
17 160M 0 0 17 28.1M 0 4179k 0:00:39 0:00:06 0:00:33 4556k
20 160M 0 0 20 32.7M 0 4253k 0:00:38 0:00:07 0:00:31 4595k
23 160M 0 0 23 37.6M 0 4329k 0:00:37 0:00:08 0:00:29 4599k
26 160M 0 0 26 42.5M 0 4405k 0:00:37 0:00:09 0:00:28 4638k
29 160M 0 0 29 47.8M 0 4491k 0:00:36 0:00:10 0:00:26 4890k
33 160M 0 0 33 53.2M 0 4590k 0:00:35 0:00:11 0:00:24 5157k
37 160M 0 0 37 59.3M 0 4706k 0:00:34 0:00:12 0:00:22 5418k
40 160M 0 0 40 65.3M 0 4824k 0:00:34 0:00:13 0:00:21 5709k
44 160M 0 0 44 72.0M 0 4956k 0:00:33 0:00:14 0:00:19 6043k
49 160M 0 0 49 78.8M 0 5084k 0:00:32 0:00:15 0:00:17 6383k
54 160M 0 0 54 86.5M 0 5249k 0:00:31 0:00:16 0:00:15 6812k
59 160M 0 0 59 95.5M 0 5473k 0:00:29 0:00:17 0:00:12 7462k
66 160M 0 0 66 106M 0 5799k 0:00:28 0:00:18 0:00:10 8501k
72 160M 0 0 72 116M 0 6014k 0:00:27 0:00:19 0:00:08 9153k
77 160M 0 0 77 124M 0 6091k 0:00:26 0:00:20 0:00:06 9273k
80 160M 0 0 80 129M 0 6037k 0:00:27 0:00:21 0:00:06 8700k
83 160M 0 0 83 133M 0 5970k 0:00:27 0:00:22 0:00:05 7737k
86 160M 0 0 86 138M 0 5921k 0:00:27 0:00:23 0:00:04 6380k
89 160M 0 0 89 143M 0 5890k 0:00:27 0:00:24 0:00:03 5393k
92 160M 0 0 92 148M 0 5870k 0:00:27 0:00:25 0:00:02 4940k
96 160M 0 0 96 154M 0 5864k 0:00:27 0:00:26 0:00:01 5107k
98 160M 0 0 98 157M 0 5760k 0:00:28 0:00:27 0:00:01 4802k
100 160M 0 0 100 160M 0 5497k 0:00:29 0:00:29 --:--:-- 3801k
100 160M 0 0 100 160M 0 5319k 0:00:30 0:00:30 --:--:-- 2939k
100 160M 0 0 100 160M 0 5152k 0:00:31 0:00:31 --:--:-- 2038k
100 160M 0 0 100 160M 0 4995k 0:00:32 0:00:32 --:--:-- 1074k
100 160M 0 0 100 160M 0 4847k 0:00:33 0:00:33 --:--:-- 551k
100 160M 0 0 100 160M 0 4708k 0:00:34 0:00:34 --:--:-- 0
100 160M 0 0 100 160M 0 4576k 0:00:35 0:00:35 --:--:-- 0
100 160M 0 0 100 160M 0 4452k 0:00:36 0:00:36 --:--:-- 0
100 160M 0 0 100 160M 0 4334k 0:00:37 0:00:37 --:--:-- 0
100 160M 0 0 100 160M 0 4223k 0:00:38 0:00:38 --:--:-- 0
100 160M 0 0 100 160M 0 4116k 0:00:39 0:00:39 --:--:-- 0
100 160M 0 0 100 160M 0 4016k 0:00:40 0:00:40 --:--:-- 0
100 160M 0 0 100 160M 0 3920k 0:00:41 0:00:41 --:--:-- 0
100 160M 0 0 100 160M 0 3828k 0:00:42 0:00:42 --:--:-- 0
100 160M 0 0 100 160M 0 3741k 0:00:43 0:00:43 --:--:-- 0
100 160M 0 0 100 160M 0 3657k 0:00:44 0:00:44 --:--:-- 0
100 160M 0 0 100 160M 0 3577k 0:00:45 0:00:45 --:--:-- 0
100 160M 0 0 100 160M 0 3501k 0:00:46 0:00:46 --:--:-- 0
100 160M 0 0 100 160M 0 3428k 0:00:47 0:00:47 --:--:-- 0
100 160M 0 43 100 160M 0 3392k 0:00:48 0:00:48 --:--:-- 9
100 160M 0 43 100 160M 0 3392k 0:00:48 0:00:48 --:--:-- 12
[Pipeline] echo
{"msg":"操作成功","code":200,"data":""}
[Pipeline] readJSON
[Pipeline] echo
[msg:操作成功, code:200, data:]
[Pipeline] echo
status:200
[Pipeline] echo
{"msg":"操作成功","code":200,"data":""}
[Pipeline] }
[Pipeline] // dir
[Pipeline] sh
+ rm -rf /root/workspace/params-submodule/yiwu-suxi-submodule/YWSX_KINGLONG_IGV20/slave@tmp
[Pipeline] sh
+ rm -rf /root/workspace/params-submodule/yiwu-suxi-submodule/YWSX_KINGLONG_IGV20/slave/params_submodule/
[Pipeline] fileExists
[Pipeline] readFile
[Pipeline] writeFile
[Pipeline] }
[Pipeline] // script
[Pipeline] }
[Pipeline] // stage
[Pipeline] stage
[Pipeline] { (Declarative: Post Actions)
[Pipeline] script
[Pipeline] {
[Pipeline] echo
always
[Pipeline] }
[Pipeline] // script
[Pipeline] script
[Pipeline] {
[Pipeline] echo
success
[Pipeline] publishHTML
[htmlpublisher] Archiving HTML reports...
[htmlpublisher] Archiving at BUILD level /root/workspace/params-submodule/yiwu-suxi-submodule to /var/lib/jenkins/jobs/yiwu-suxi-submodule/builds/432/htmlreports/update_20message
[Pipeline] wrap
[Pipeline] {
[Pipeline] script
[Pipeline] {
[Pipeline] echo
user: , telphone:
[Pipeline] }
[Pipeline] // script
[Pipeline] sh
+ curl -X POST 'https://oapi.dingtalk.com/robot/send?access_token=c4e318472bbd19d0449efb4060de213f730dc32b4bf44819381a8fa7adf61983' -H 'Content-Type: application/json' -d '{"msgtype": "markdown","markdown": {"title":"jenkins通知","text": "# 参数发布通知
### [苏溪全量参数-从]
---
- 状态:<font color=#01B468> 编译成功 </font>
- 执行人:yangyuxing
- 更新车辆:
[T01slave][T02slave][T03slave][T04slave][T05slave][T06slave][T07slave][T08slave][T09slave][T10slave][YWSX_KINGLONG_IGV11slave][YWSX_KINGLONG_IGV12slave][YWSX_KINGLONG_IGV13slave][YWSX_KINGLONG_IGV14slave][YWSX_KINGLONG_IGV15slave][YWSX_KINGLONG_IGV16slave][YWSX_KINGLONG_IGV17slave][YWSX_KINGLONG_IGV18slave][YWSX_KINGLONG_IGV19slave][YWSX_KINGLONG_IGV20slave]
- 分支名:main
- 具体模块分支:[点此链接](http://jenkins.vehicle.senior.auto:8080/jenkins/job/yiwu-suxi-submodule/432/update_20message/index.html)
---
> 请ota发布同学尽快发布验证,并在群里同步发布信息~@"},"at": {"atMobiles": [""],"isAtAll": "false"} }'
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
0 0 0 0 0 0 0 0 --:--:-- --:--:-- --:--:-- 0
100 938 100 27 100 911 380 12830 --:--:-- --:--:-- --:--:-- 13211
[Pipeline] echo
{"errcode":0,"errmsg":"ok"}
[Pipeline] }
[Pipeline] // wrap
[Pipeline] }
[Pipeline] // script
[Pipeline] }
[Pipeline] // stage
[Pipeline] }
[Pipeline] // timeout
[Pipeline] }
Lock released on resource [Label: built-in, Quantity: 1]
[Pipeline] // lock
[Pipeline] }
[Pipeline] // withEnv
[Pipeline] }
[Pipeline] // withEnv
[Pipeline] }
[Pipeline] // node
[Pipeline] End of Pipeline
Finished: SUCCESS