IyBUaGlzIGlzIGEgZnJvemVuIHN0YXRlIGZpbGUgZ2VuZXJhdGVkIGJ5IEdOVSBNNCAxLjQuMTYKVjEKUTEsMQpbXQpUMTIsNjkKX200X2xpc3RfY21wbTRfaWYoWyQxXSwgW10sIFswbTRfaWdub3JlXSwgWyQyXSwgWzBdLCBbbTRfdW5xdW90ZV0sIFskMm00X2lnbm9yZV0pCkYxMiw5Cm00X2RlYnVnZmlsZWRlYnVnZmlsZQpUOCwwCl9tNF93YXJuClQxNSwyMTgKbTRfbWFwX2FyZ3Nfc2VwbTRfaWYoWyQjXSwgWzBdLCBbbTRfZmF0YWwoWyQwOiB0b28gZmV3IGFyZ3VtZW50czogJCNdKV0sCiAgICAgICBbJCNdLCBbMV0sIFtdLAogICAgICAgWyQjXSwgWzJdLCBbXSwKICAgICAgIFskI10sIFszXSwgW10sCiAgICAgICBbJCNdLCBbNF0sIFskMVskNF0kMltdXSwKICAgICAgIFskMVskNF0kMltdX200X2ZvcmVhY2goWyQzW10kMV0sIFskMl0sIG00X3NoaWZ0MygkQCkpXSkKVDgsMTUwCm00X2RlZnVubTRfZGVmaW5lKFttNF9sb2NhdGlvbigkMSldLCBtNF9sb2NhdGlvbiltNF9kZWZhdWx0KFskM10sIFttNF9kZWZpbmVdKShbJDFdLAogIFtfbTRfZGVmdW5fcHJvKF1tNF9kcXVvdGUoJFswXSlbKSQyW11fbTRfZGVmdW5fZXBpKF1tNF9kcXVvdGUoJFswXSlbKV0pClQxOCw1MApfbTRfc2V0X2NvbnRlbnRzXzFfbTRfc3RhY2tfcmV2ZXJzZShbX200X3NldChbJDFdKV0sIFtfbTRfc2V0XygkMSldKQpUMTgsOTQKX200X3NldF9jb250ZW50c18yX200X3N0YWNrX3JldmVyc2UoW19tNF9zZXRfKCQxKV0sIFtfbTRfc2V0KFskMV0pXSwKICBbJDJbXV9tNF9kZWZuKFtfbTRfc2V0XygkMSldKSQzXSwgWyQ0W11dKQpUOCw4MQptNF9jaG9tcG00X2Zvcm1hdChbWyUuKnNdXSwgbTRfaW5kZXgobTRfdHJhbnNsaXQoW1skMV1dLCBbCi8uXSwgWy8gIF0pWy4vLl0sIFsvLl0pLCBbJDFdKQpUMTMsODIKbTRfZHF1b3RlX2VsdG00X2lmKFskI10sIFswXSwgW10sCiAgICAgICBbJCNdLCBbMV0sIFtbWyQxXV1dLAogICAgICAgW1tbJDFdXSwkMChtNF9zaGlmdCgkQCkpXSkKVDI0LDMyCm00X2RlZmF1bHRfbmJsYW5rX3F1b3RlZG00X2lmYmxhbmsoWyQxXSwgW1skMl1dLCBbWyQxXV0pClQ5LDU3Cm00X2FwcGVuZG00X2RlZmluZShbJDFdLCBtNF9pZmRlZihbJDFdLCBbX200X2RlZm4oWyQxXSlbJDNdXSlbJDJdKQpUMTEsMzcKbTRfbGlzdF9jbXBfJDBfcmF3KG00X2RxdW90ZSgkMSksIG00X2RxdW90ZSgkMikpClQ3LDg0Cl9tNF9mb3IkNFskMV0kNVtdbTRfaWYoWyQxXSwgWyQyXSwgW10sCgkJIFskMChtNF9ldmFsKFskMSArICQzXSksIFskMl0sIFskM10sIFskNF0sIFskNV0pXSkKVDEyLDc4Cm00X2ZvcmVhY2hfd200X3B1c2hkZWYoWyQxXSltNF9tYXBfYXJnc193KFskMl0sCiAgW200X2RlZmluZShbJDFdLF0sIFspJDNdKW00X3BvcGRlZihbJDFdKQpUMTEsMTY1Cl9tNF9kdW1wZGVmbTRfaWYoWyQjXSwgWzBdLCBbbTRfZmF0YWwoWyQwOiBtaXNzaW5nIGFyZ3VtZW50XSldLAogICAgICAgWyQjXSwgWzFdLCBbbTRfYnVpbHRpbihbZHVtcGRlZl0sIFskMV0pXSwKICAgICAgIFttNF9tYXBfYXJnc19zZXAoW200X2J1aWx0aW4oW2R1bXBkZWZdLF0sIFspXSwgW10sICRAKV0pClQxNCwxMzEKbTRfc2V0X2FkZF9hbGxtNF9kZWZpbmUoW19tNF9zZXRfc2l6ZSgkMSldLCBtNF9ldmFsKG00X3NldF9zaXplKFskMV0pCiAgKyBtNF9sZW4obTRfaWZkZWYoW19tNF9zZXRfY2xlYW51cCgkMSldLCBbXyQwX2NoZWNrXSwgW18kMF0pKFskMV0sICRAKSkpKQpGNyw0Cm00X2luY3JpbmNyCkY4LDQKX200X2RlZm5kZWZuClQxMywxMjQKX200X2RlZnVuX3Byb200X2lmZGVmKFtfbTRf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bTRfc2V0X3NpemUoWyQxXSwgW200X2luY3JdKSQzXSwgWyQ0XSldLAoJICBbbTRfZGVmaW5lKFtfbTRfc2V0KFskMV0sJDIpXSwKCQkgICAgIFsxXSltNF9wdXNoZGVmKFtfbTRfc2V0KFskMV0pXSwKCQkJCSAgICBbJDJdKV9tNF9zZXRfc2l6ZShbJDFdLCBbbTRfaW5jcl0pJDNdKQpUMTQsMTIyCm00X2FwcGVuZF91bmlxbTRfaWZ2YWwoWyQzXSwgW200X2lmKG00X2luZGV4KFskMl0sIFskM10pLCBbLTFdLCBbXSwKCQkgICAgICAgW200X3dhcm4oW3N5bnRheF0sCgkJCQlbJDA6IGAkMicgY29udGFpbnMgYCQzJ10pXSldKV8kMCgkQCkKVDE1LDAKX200X2RpdmVydF9kdW1wClQyMCwyMAptNF9QQUNLQUdFX0JVR1JFUE9SVGJ1Zy1hdXRvY29uZkBnbnUub3JnClQ4LDY2Cm00X2lmc2V0bTRfaWZkZWYoWyQxXSwKCSAgW200X2lmdmFsKF9tNF9kZWZuKFskMV0pLCBbJDJdLCBbJDNdKV0sCgkgIFskM10pClQ3LDE4MgptNF9jb25kbTRfaWYoWyQjXSwgWzBdLCBbbTRfZmF0YWwoWyQwOiBjYW5ub3QgYmUgY2FsbGVkIHdpdGhvdXQgYXJndW1lbnRzXSldLAogICAgICAgWyQjXSwgWzFdLCBbJDFdLAogICAgICAgbTRfZXZhbChbJCMgJSAzXSksIFsyXSwgW200X2ZhdGFsKFskMDogbWlzc2luZyBhbiBhcmd1bWVudF0pXSwKICAgICAgIFtfJDAoJEApXSkKVDEyLDMwCm00X2VzeXNjbWRfc200X2Nob21wX2FsbChtNF9lc3lzY21kKFskMV0pKQpUMTUsMTQ4Cl9tNF9hcHBlbmRfdW5pcW00X2lmZGVmKFskMV0sCgkgIFttNF9pZihtNF9pbmRleChbJDNdX200X2RlZm4oWyQxXSlbJDNdLCBbJDMkMiQzXSksIFstMV0sCgkJIFttNF9hcHBlbmQoWyQxXSwgWyQyXSwgWyQzXSkkNF0sIFskNV0pXSwKCSAgW200X2RlZmluZShbJDFdLCBbJDJdKSQ0XSkKVDksMzEKX200X2FwcGx5bTRfaWYoWyQyXSwgW10sIFtdLCBbJDEoJDIpW11dKQpUMTAsMgptNF91bnF1b3RlJCoKVDksNzIKbTRfbWFwYWxsbTRfaWYoWyQyXSwgW10sIFtdLAogICAgICAgW19tNF9mb3JlYWNoKFttNF9hcHBseShbJDFdLF0sIFspXSwgW10sICQyKV0pCkYxNCw2Cl9tNF9kaXZlcnRfcmF3ZGl2ZXJ0ClQ2LDEyMgptNF9jZHJtNF9pZihbJCNdLCAwLCBbbTRfZmF0YWwoWyQwOiBjYW5ub3QgYmUgY2FsbGVkIHdpdGhvdXQgYXJndW1lbnRzXSldLAogICAgICAgWyQjXSwgMSwgW10sCiAgICAgICBbbTRfZHF1b3RlKG00X3NoaWZ0KCRAKSldKQpUMTQsNDEKX200X2xpc3RfY21wXzFfbTRfbGlzdF9jbXBfMihbJDJdLCBbbTRfc2hpZnQyKCRAKV0sICQxKQpUMTQsOTUKX200X2xpc3RfY21wXzJfbTRfbGlzdF9jbXAoWyQxJDNdLCBtNF9jbXAoWyQzKzBdLCBbJDErMF0pKSgKICBbX200X2xpc3RfY21wXzEobTRfZHF1b3RlKG00X3NoaWZ0MygkQCkpLCAkMildKQpUMTEsNTMKX200X2pvaW5hbGxtNF9pZihbJCNdLCBbMl0sIFtdLCBbWyQxJDNdJDAoWyQxXSwgbTRfc2hpZnQyKCRAKSldKQpUOSwxNTgKbTRfcG9wZGVmbTRfaWYoWyQjXSwgWzBdLCBbWyQwXV0sCiAgICAgICBbJCNdLCBbMV0sIFttNF9pZmRlZihbJDFdLCBbX200X3BvcGRlZihbJDFdKV0sCgkJCSAgICBbbTRfZmF0YWwoWyQwOiB1bmRlZmluZWQgbWFjcm86ICQxXSldKV0sCiAgICAgICBbbTRfbWFwX2FyZ3MoWyQwXSwgJEApXSkKVDEyLDE1MgpfbTRfc2V0X2R1bXBtNF9pZmRlZihbX200X3NldChbJDFdKV0sCgkgIFtbJDJdX200X2RlZm4oW19tNF9zZXQoWyQxXSldKV9tNF9wb3BkZWYoW19tNF9zZXQoWyQxXSxdX200X2RlZm4oCgkJW19tNF9zZXQoWyQxXSldKVspXSwgW19tNF9zZXQoWyQxXSldKSQwKFskMV0sIFskMiQzXSldKQpUMTIsMzIKbTRfbWFrZV9saXN0bTRfam9pbihbLApdLCBtNF9kcXVvdGVfZWx0KCRAKSkKVDUsNzMKbTRfZG9tNF9pZihbJCNdLCAwLCBbXSwKICAgICAgIFskI10sIDEsIFskMVtdXSwKICAgICAgIFskMVtdJDAobTRfc2hpZnQoJEApKV0pCkY5LDYKbTRfc3Vic3Ryc3Vic3RyClQxOCw4Cm00X1BBQ0tBR0VfVEFSTkFNRWF1dG9jb25mClQxMywyNTIKbTRfc2V0X3JlbW92ZW00X3NldF9jb250YWlucyhbJDFdLCBbJDJdLCBbX200X3NldF9zaXplKFskMV0sCiAgICBbbTRfZGVjcl0pbTRfaWYoX200X2RlZm4oW19tNF9zZXQoWyQxXSldKSwgWyQyXSwKCQkgICAgW19tNF9wb3BkZWYoW19tNF9zZXQoWyQxXSwkMildLCBbX200X3NldChbJDFdKV0pXSwKCQkgICAgW200X2RlZmluZShbX200X3NldF9jbGVhbnVwKCQxKV0pbTRfZGVmaW5lKAoJCSAgICAgIFtfbTRfc2V0KFskMV0sJDIpXSwgWzBdKV0pJDNdLCBbJDRdKQpUMTksMTA5Cl9tNF9kZWZ1bl9lcGlfb3V0ZXJfbTRfcG9wZGVmKFtfbTRfZGl2ZXJ0X2R1bXBdLCBbX200X2RpdmVydGluZyhbJDFdKV0sIFtfbTRfZGl2ZXJ0aW5nXSltNF9kaXZlcnRfcG9wKFtHUk9XXSltNF91bmRpdmVydChbR1JPV10pClQxNSw1OAptNF9kaXZlcnRfc3RhY2ttNF9zdGFja19mb3JlYWNoX3NlcF9saWZvKFtfbTRfZGl2ZXJ0X3N0YWNrXSwgW10sIFtdLCBbCl0pClQxNywzMQptNF9kZWZhdWx0X3F1b3RlZG00X2lmKFskMV0sIFtdLCBbWyQyXV0sIFtbJDFdXSkKRjksNgptNF9zeXNjbWRzeXNjbWQKVDExLDEzNgptNF9zZXRfZHVtcG00X2lmZGVmKFtfbTRfc2V0X3NpemUoJDEpXSwKCSAgW19tNF9wb3BkZWYoW19tNF9zZXRfc2l6ZSgkMSldKV0pbTRfaWZkZWYoW19tNF9zZXRfY2xlYW51cCgkMSldLAogICAgW18kMF9jaGVja10sIFtfJDBdKShbJDFdLCBbXSwgWyQyXSkKVDksNTgKbTRfaWZ2YWxubTRfaWYoWyQxXSwKICAgICAgIFtdLCAgIFttNF9uKFskM10pXSwKCSAgICAgW200X24oWyQyXSldKQpUNywwCl9fZ251X18KVDEwLDI3Cm00X2pvaW5hbGxbJDJdXyQwKFskMV0sIG00X3NoaWZ0KCRAKSkKVDksMjIKbTRfc2hpZnQybTRfc2hpZnQobTRfc2hpZnQoJEApKQpUMTgsODAKbTRfZXhwYW5zaW9uX3N0YWNrbTRfc3RhY2tfZm9yZWFjaF9zZXBfbGlmbyhbXyQwXSwgW18kMF9lbnRyeShdLCBbKQpdKW00X2xvY2F0aW9uWzogdGhlIHRvcCBsZXZlbF0KVDksMzIKbTRfc2hpZnQzbTRfc2hpZnQobTRfc2hpZnQobTRfc2hpZnQoJEApKSkKVDE3LDE1MgptNF92ZXJzaW9uX3ByZXJlcW00X2lmKG00X3ZlcnNpb25fY29tcGFyZShbMi42OF0sIFskMV0pLAoJWy0xXSwKCVttNF9kZWZhdWx0KFskM10sCgkJICAgIFttNF9mYXRhbChbQXV0b2NvbmYgdmVyc2lvbiAkMSBvciBoaWdoZXIgaXMgcmVxdWlyZWRdLAoJCQkgICAgICBbNjNdKV0pXSwKCVskMl0pClQxNiw1MApfbTRfbGlzdF9jbXBfcmF3bTRfaWYoWyQxXSwgWyQyXSwgWzBdLCBbX200X2xpc3RfY21wXzEoWyQxXSwgJDIpXSkKVDgsMApfX3VuaXhfXwpUMTQsMTA5Cm00X2ZpbGVfYXBwZW5kbTRfc3lzY21kKFtjYXQgPj4kMSA8PF9tNGVvZgokMgpfbTRlb2YKXSkKbTRfaWYobTRfc3lzdmFsLCBbMF0sIFtdLAogICAgICBbbTRfZmF0YWwoWyQwOiBjYW5ub3Qgd3JpdGU6ICQxXSldKQpUMTUsNDkKbTRfcmVuYW1lX2ZvcmNlbTRfaWZkZWYoWyQyXSwgW19tNF91bmRlZmluZShbJDJdKV0pbTRfcmVuYW1lKCRAKQpUOSwyMjIKbTRfYm1hdGNobTRfaWYoWyQjXSwgMCwgW200X2ZhdGFsKFskMDogdG9vIGZldyBhcmd1bWVudHM6ICQjXSldLAogICAgICAgWyQjXSwgMSwgW200X2ZhdGFsKFskMDogdG9vIGZldyBhcmd1bWVudHM6ICQjOiAkMV0pXSwKICAgICAgIFskI10sIDIsIFskMl0sCiAgICAgICBbbTRfaWYobTRfYnJlZ2V4cChbJDFdLCBbJDJdKSwgLTEsIFskMChbJDFdLCBtNF9zaGlmdDMoJEApKV0sCgkgICAgICBbJDNdKV0pClQxMywzMzMKbTRfZGl2ZXJ0X3BvcG00X2lmKFskMV0sIFtdLCBbXSwKICAgICAgIFskMV0sIF9tNF9kZWZuKFtfbTRfZGl2ZXJ0X2RpdmVyc2lvbl0pLCBbXSwKICAgICAgIFttNF9mYXRhbChbJDAoJDEpOiBkaXZlcnNpb24gbWlzbWF0Y2g6Cl1tNF9kaXZlcnRfc3RhY2spXSlfbTRfcG9wZGVmKFtfbTRfZGl2ZXJ0X3N0YWNrXSwgW19tNF9kaXZlcnRfZGl2ZXJzaW9uXSltNF9pZmRlZihbX200X2RpdmVydF9kaXZlcnNpb25dLCBbXSwKCSAgIFttNF9mYXRhbChbdG9vIG1hbnkgbTRfZGl2ZXJ0X3BvcF0pXSlfbTRfZGl2ZXJ0X3JhdyhfbTRfZGl2ZXJ0KF9tNF9kZWZuKFtfbTRfZGl2ZXJ0X2RpdmVyc2lvbl0pLCBbLV0pKQpUMTAsMTIxCm00X3JlX3dvcmRbYWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXpBQkNERUZHSElKS0xNTk9QUVJTVFVWV1hZWl9dW2FiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6QUJDREVGR0hJSktMTU5PUFFSU1RVVldYWVpfMDEyMzQ1Njc4OV0qClQxNCwzNwptNF9QQUNLQUdFX1VSTGh0dHA6Ly93d3cuZ251Lm9yZy9zb2Z0d2FyZS9hdXRvY29uZi8KVDExLDYyCm00X2NyX2FsbnVtYWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXpBQkNERUZHSElKS0xNTk9QUVJTVFVWV1hZWjAxMjM0NTY3ODkKRjExLDgKbTRfdHJhbnNsaXR0cmFuc2xpdApUMTQsMTEwCm00X2RpdmVydF9wdXNobTRfZGl2ZXJ0X3N0YWNrX3B1c2goWyQwXSwgWyQxXSltNF9wdXNoZGVmKFtfbTRfZGl2ZXJ0X2RpdmVyc2lvbl0sIFskMV0pX200X2RpdmVydF9yYXcoX200X2RpdmVydChbJDFdLCBbJDJdKSkKVDgsODcKbTRfZmF0YWxtNF9lcnJwcmludG4obTRfbG9jYXRpb25bOiBlcnJvcjogJDFdCm00X2V4cGFuc2lvbl9zdGFjayltNF9leGl0KG00X2lmKFskMl0sLCAxLCBbJDJdKSkKRjgsNQptNF9pZmRlZmlmZGVmClQ3LDIwCm00X3dyYXBfbTRfd3JhcChbXSwgWyQxW11dKQpUMTIsMTEwCl9tNF9zZXRfc2l6ZW00X2RlZmluZShbX200X3NldF9zaXplKCQxKV0sCgkgICBtNF9pZmRlZihbX200X3NldF9zaXplKCQxKV0sIFskMihtNF9pbmRpcihbX200X3NldF9zaXplKCQxKV0pKV0sCgkJICAgIFsxXSkpClQ2LDQzCm00X21hcF9tNF9mb3JlYWNoKFtfbTRfYXBwbHkoWyQxXSxdLCBbKV0sIFtdLCAkMikKVDEwLDU0Cm00X2luY2x1ZGVtNF9pbmNsdWRlX3VuaXF1ZShbJDFdKWRubAptNF9idWlsdGluKFtpbmNsdWRlXSwgWyQxXSkKVDgsMTg5Cm00X3NwbGl0bTRfaWYoWyQxXSwgW10sIFtdLAogICAgICAgWyQyXSwgWyBdLCBbbTRfaWYobTRfaW5kZXgoWyQxXSwgWyBdKSwgWy0xXSwgW1tbJDFdXV0sCgkJCSBbXyQwKFskMV0sIFskMl0sIFssIF0pXSldLAogICAgICAgWyQyXSwgW10sIFtfJDAoWyQxXSwgW1sJIF0rXSwgWywgXSldLAogICAgICAgW18kMChbJDFdLCBbJDJdLCBbLCBdKV0pClQ2LDE5MAptNF9taW5tNF9pZihbJCNdLCBbMF0sIFttNF9mYXRhbChbdG9vIGZldyBhcmd1bWVudHMgdG8gJDBdKV0sCiAgICAgICBbJCNdLCBbMV0sIFttNF9ldmFsKFskMV0pXSwKICAgICAgIFskIyQxXSwgWzIkMl0sIFttNF9ldmFsKFskMV0pXSwKICAgICAgIFskI10sIFsyXSwgW18kMCgkQCldLAogICAgICAgW19tNF9taW5tYXgoW18kMF0sICRAKV0pCkYxNCwxMQptNF9jaGFuZ2VxdW90ZWNoYW5nZXF1b3RlClQxMCw1NAptNF9pZmJsYW5rbTRfaWYobTRfdHJhbnNsaXQoW1skMV1dLCAgWyBdWwldWwpdKSwgW10sIFskMl0sIFskM10pClQxNCwxNjYKbTRfY2xlYXJkaXZlcnRtNF9pZihbJCNdLCBbMF0sIFttNF9mYXRhbChbJDA6IG1pc3NpbmcgYXJndW1lbnRdKV0sCiAgICAgICBbX200X2RpdmVydF9yYXcoWy0xXSltNF91bmRpdmVydCgkQClfbTRfZGl2ZXJ0X3JhdygKCSBfbTRfZGl2ZXJ0KF9tNF9kZWZuKFtfbTRfZGl2ZXJ0X2RpdmVyc2lvbl0pLCBbLV0pKV0pClQxOCwyMDYKX200X3RleHRfd3JhcF93b3JkbTRfZGVmaW5lKFttNF9DdXJzb3JdLCBtNF9ldmFsKG00X0N1cnNvciArIG00X3FsZW4oWyQxXSkgKyAxKSltNF9pZihtNF9ldmFsKG00X0N1cnNvciA+IChbJDNdKSksCiAgICAgIFsxXSwgW200X2RlZmluZShbbTRfQ3Vyc29yXSwgbTRfZXZhbChtNF9JbmRlbnQgKyBtNF9xbGVuKFskMV0pICsgMSkpClskMl1dLAogICAgICBbbTRfU2VwYXJhdG9yW11dKVskMV0KVDcsNDgKbTRfcWxlbm00X2lmZGVmKFskMC0kMV0sIFtfbTRfZGVmbihbJDAtXV0sIFtfJDAoXSlbJDFdKQpUNiwxOTAKbTRfbWF4bTRfaWYoWyQjXSwgWzBdLCBbbTRfZmF0YWwoW3RvbyBmZXcgYXJndW1lbnRzIHRvICQwXSldLAogICAgICAgWyQjXSwgWzFdLCBbbTRfZXZhbChbJDFdKV0sCiAgICAgICBbJCMkMV0sIFsyJDJdLCBbbTRfZXZhbChbJDFdKV0sCiAgICAgICBbJCNdLCBbMl0sIFtfJDAoJEApXSwKICAgICAgIFtfbTRfbWlubWF4KFtfJDBdLCAkQCldKQpGMTEsOAptNF9lcnJwcmludGVycnByaW50ClQxMCwxMzcKX200X2RpdmVydG00X2lmZGVmKFtfbTRfZGl2ZXJ0KCQxKV0sCgkgIFttNF9pbmRpcihbX200X2RpdmVydCgkMSldKV0sCgkgIFttNF9pZihbJDJdLCBbXSwgW200X3dhcm4oW3N5bnRheF0sCgkgICAgIFtwcmVmZXIgbmFtZWQgZGl2ZXJzaW9uc10pXSkkMV0pClQxMywyNgptNF9jcl9MRVRURVJTQUJDREVGR0hJSktMTU5PUFFSU1RVVldYWVoKVDE3LDk0Cl9tNF9zdGFja19yZXZlcnNlbTRfaWZkZWYoWyQxXSwgW200X3B1c2hkZWYoWyQyXSwKICBfbTRfZGVmbihbJDFdKSkkM1tdX200X3BvcGRlZihbJDFdKSQwKFskMV0sIFskMl0sIFskNCQzXSldKQpGMTEsNwptNF9tYWtldGVtcG1rc3RlbXAKVDQsMzcKbTRfbm00X2lmKFskMV0sCiAgICAgICBbXSwgW10sCgkgICBbJDEKXSkKVDEwLDE1NAptNF9wcm92aWRlbTRfaWZkZWYoW200X3Byb3ZpZGUoJDEpXSwgW10sClttNF9zZXRfYWRkKFtfbTRfcHJvdmlkZV0sIFskMV0sIFttNF9kZWZpbmUoW200X3Byb3ZpZGUoJDEpXSwKICBtNF9pZmRlZihbX200X2RpdmVydGluZ10sIFtfbTRfZGVmbihbX200X2RpdmVydGluZ10pXSkpXSldKQpUMTEsNjUKbTRfc2V0X3NpemVtNF9pZmRlZihbX200X3NldF9zaXplKCQxKV0sIFttNF9pbmRpcihbX200X3NldF9zaXplKCQxKV0pXSwgWzBdKQpUOSwwCm00X2lnbm9yZQpUOSwyOApfbTRfcXVvdGVtNF9pZihbJCNdLCBbMF0sIFtdLCBbWyQqXV0pClQ5LDM1Cm00X3NoaWZ0bm00X2Fzc2VydCgwIDwgJDEgJiYgJDEgPCAkIylfJDAoJEApClQ3LDc1Cm00X3dhcm5fbTRfd2FybihbJDFdLCBbJDJdLAptNF9pZmRlZihbX200X2V4cGFuc2lvbl9zdGFja10sIFttNF9leHBhbnNpb25fc3RhY2tdKSkKVDE2LDI0NQptNF9jcl9ub3RfZGlnaXRzAQIDBAUGBwgJCgsMDQ4PEBESExQVFhcYGRobHB0eHyAhIiMqJSYnKCkkKywuLzo7PD0+P0BBQkNERUZHSElKS0xNTk9QUVJTVFVWV1hZWltcXV5fYGFiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6e3x9fn+AgYKDhIWGh4iJiouMjY6PkJGSk5SVlpeYmZqbnJ2en6ChoqOkpaanqKmqq6ytrq+wsbKztLW2t7i5uru8vb6/wMHCw8TFxsfIycrLzM3Oz9DR0tPU1dbX2Nna29zd3t/g4eLj5OXm5+jp6uvs7e7v8PHy8/T19vf4+fr7/P3+/y0KVDEyLDI1Cm00X3NldF9saXN0Y200X3NldF9tYXBfc2VwKFskMV0sIFssXSkKRjksNgptNF9kaXZudW1kaXZudW0KVDIxLDc2Cl9tNF9zZXRfYWRkX2FsbF9jaGVja200X2lmKFskI10sIFsyXSwgW10sCiAgICAgICBbbTRfc2V0X2FkZChbJDFdLCBbJDNdKSQwKFskMV0sIG00X3NoaWZ0MigkQCkpXSkKVDEwLDMKbTRfbmV3bGluZQokMQpUMTMsMjkzCm00X2RlZnVuX29uY2VtNF9kZWZpbmUoW200X2xvY2F0aW9uKCQxKV0sIG00X2xvY2F0aW9uKW00X2RlZmluZShbJDFdLCBbX200X2RlZnVuX29uY2UoWyQxXSwgWyQyXSwgbTRfaWYoX200X2RpdmVydF9kdW1wLCBbXSwKICBbW19tNF9kZWZ1bl9wcm8oWyQxXSltNF91bnF1b3RlKF0sIFspX200X2RlZnVuX2VwaShbJDFdKV1dLAptNF9pZmRlZihbX200X2RpdmVydGluZyhbJDFdKV0sIFstXSksIFstXSwgW1ttNF91bnF1b3RlKF0sIFspXV0sCiAgW1tfbTRfcmVxdWlyZV9jYWxsKFskMV0sXSwgWywgX200X2RpdmVydF9kdW1wKV1dKSldKQpUMTMsNDc0Cl9tNF90ZXh0X3dyYXBtNF9wdXNoZGVmKFttNF9JbmRlbnRdLCBtNF9xbGVuKFskMl0pKW00X3B1c2hkZWYoW200X0N1cnNvcl0sIG00X3FsZW4oWyQzXSkpbTRfcHVzaGRlZihbbTRfU2VwYXJhdG9yXSwgW200X2RlZmluZShbbTRfU2VwYXJhdG9yXSwgWyBdKV0pWyQzXW00X2NvbmQoW200X0N1cnNvcl0sIG00X0luZGVudCwgW10sCgkgICAgICBbbTRfZXZhbChtNF9DdXJzb3IgPiBtNF9JbmRlbnQpXSwgWzFdLCBbClskMl1tNF9kZWZpbmUoW200X0N1cnNvcl0sIG00X0luZGVudCldLAoJICAgICAgW200X2Zvcm1hdChbJSpzXSwgbTRfbWF4KFswXSwKICBtNF9ldmFsKG00X0luZGVudCAtIG00X0N1cnNvcikpLCBbXSltNF9kZWZpbmUoW200X0N1cnNvcl0sIG00X0luZGVudCldKW00X21hcF9hcmdzX3coWyQxXSwgWyQwX3dvcmQoXSwgWywgWyQyXSwgWyQ0XSldKV9tNF9wb3BkZWYoW200X1NlcGFyYXRvcl0sIFttNF9DdXJzb3JdLCBbbTRfSW5kZW50XSkKRjksNgptNF9mb3JtYXRmb3JtYXQKRjEwLDcKbTRfbWtzdGVtcG1rc3RlbXAKRjExLDExCl9fcHJvZ3JhbV9fX19wcm9ncmFtX18KVDcsMTU2Cm00X2RlZm5tNF9pZihbJCNdLCBbMF0sIFtbJDBdXSwKICAgICAgIFskI10sIFsxXSwgW200X2lmZGVmKFskMV0sIFtfbTRfZGVmbihbJDFdKV0sCgkJCSAgICBbbTRfZmF0YWwoWyQwOiB1bmRlZmluZWQgbWFjcm86ICQxXSldKV0sCiAgICAgICBbbTRfbWFwX2FyZ3MoWyQwXSwgJEApXSkKVDE2LDU0Cm00X2FwcGVuZF91bmlxX3dtNF9tYXBfYXJnc193KFskMl0sIFtfbTRfYXBwZW5kX3VuaXEoWyQxXSxdLCBbLCBbIF0pXSkKVDEzLDIwNwptNF9tYXBfYXJnc193XyQwKF9tNF9zcGxpdChbIF1tNF9mbGF0dGVuKFskMV0pWyBdLCBbWwkgXStdLAoJICAgICAgIG00X2lmKG00X2luZGV4KFskMiQzJDRdLCBbXF0pLCBbLTFdLCBbWyQzW10kNFtdJDJdXSwKCQkgICAgIFttNF9icGF0c3Vic3QoW1skM1tdJDRbXSQyXV0sIFtcXF0sIFtcXFxcXSldKSksCiAgICAgbTRfbGVuKFtbXSQzW10kNF0pLCBtNF9sZW4oWyQ0W10kMltdXSkpClQ2LDQKbTRfY2FyWyQxXQpUOCwyCm00X2NvdW50JCMKVDE0LDQyCl9tNF9kZWZ1bl9vbmNlbTRfcHVzaGRlZihbJDFdKSQzWyQyW11tNF9wcm92aWRlKFskMV0pXSQ0ClQxNCw2MgptNF9zZXRfZm9yZWFjaG00X3B1c2hkZWYoWyQyXSltNF9zZXRfbWFwX3NlcChbJDFdLCBbbTRfZGVmaW5lKFskMl0sXSwgWykkM10pClQxNiwxMDEKbTRfc3RhY2tfZm9yZWFjaF9tNF9zdGFja19yZXZlcnNlKFskMV0sIFttNF90bXAtJDFdKV9tNF9zdGFja19yZXZlcnNlKFttNF90bXAtJDFdLCBbJDFdLCBbJDIoX200X2RlZm4oW200X3RtcC0kMV0pKV0pClQxMiw3NwptNF9jaG9tcF9hbGxtNF9mb3JtYXQoW1slLipzXV0sIG00X2JyZWdleHAobTRfdHJhbnNsaXQoW1skMV1dLCBbCi9dLCBbLyBdKSwgWy8qJF0pLCBbJDFdKQpUNiw0NgptNF9jbXBtNF9ldmFsKCgoWyQxXSkgPiAoWyQyXSkpIC0gKChbJDFdKSA8IChbJDJdKSkpCkY1LDYKbTRfaWZpZmVsc2UKVDksMzYKbTRfcmVuYW1lbTRfY29weShbJDFdLCBbJDJdKW00X3VuZGVmaW5lKFskMV0pCkY4LDUKbTRfaW5kaXJpbmRpcgpUMTIsMQpfbTRfZGl2ZXJ0KCkwCkYxMiw5Cm00X2NoYW5nZWNvbWNoYW5nZWNvbQpUMTAsNjIKbTRfbm9xdW90ZW00X2NoYW5nZXF1b3RlKFstPTx7KF0sWyl9Pj0tXSkkMS09PHsoKX0+PS1tNF9jaGFuZ2VxdW90ZShbLF0pCkY4LDUKbTRfaW5kZXhpbmRleApUMTQsNTgKX200X21hcF9hcmdzX3dtNF9zdWJzdHIoWyQxXSwgWyQyXSwgbTRfZXZhbChtNF9sZW4oWyQxXSkgLSBbJDJdIC0gWyQzXSkpClQxNCwxMDcKbTRfc2V0X21hcF9zZXBtNF9pZmRlZihbX200X3NldF9jbGVhbnVwKCQxKV0sIFtfbTRfc2V0X2NvbnRlbnRzXzFjXSwKCSAgW19tNF9zZXRfY29udGVudHNfMV0pKFskMV0pX200X3NldF9jb250ZW50c18yKCRAKQpUOSwxNzQKbTRfZXhwYW5kbTRfcHVzaGRlZihbbTRfZGl2ZXJ0XSwgX200X2RlZm4oW19tNF9kaXZlcnRfdW5zYWZlXSkpbTRfcHVzaGRlZihbbTRfZGl2ZXJ0X3B1c2hdLCBfbTRfZGVmbihbX200X2RpdmVydF91bnNhZmVdKSltNF9jaG9tcChfJDAoWyQxCl0pKV9tNF9wb3BkZWYoW200X2RpdmVydF0sIFttNF9kaXZlcnRfcHVzaF0pClQxNywyMjkKbTRfY3Jfbm90X0xFVFRFUlMBAgMEBQYHCAkKCwwNDg8QERITFBUWFxgZGhscHR4fICEiIyolJicoKSQrLC4vMDEyMzQ1Njc4OTo7PD0+P0BbXF1eX2BhYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5ent8fX5/gIGCg4SFhoeIiYqLjI2Oj5CRkpOUlZaXmJmam5ydnp+goaKjpKWmp6ipqqusra6vsLGys7S1tre4ubq7vL2+v8DBwsPExcbHyMnKy8zNzs/Q0dLT1NXW19jZ2tvc3d7f4OHi4+Tl5ufo6err7O3u7/Dx8vP09fb3+Pn6+/z9/v8tClQxOCwyNTYKX200X3NldF9kdW1wX2NoZWNrbTRfaWZkZWYoW19tNF9zZXQoWyQxXSldLAoJICBbbTRfc2V0X2NvbnRhaW5zKFskMV0sIF9tNF9kZWZuKFtfbTRfc2V0KFskMV0pXSksCgkJCSAgIFtbJDJdX200X2RlZm4oW19tNF9zZXQoWyQxXSldKV0pX200X3BvcGRlZigKICAgIFtfbTRfc2V0KFskMV0sXV9tNF9kZWZuKFtfbTRfc2V0KFskMV0pXSlbKV0sCiAgICBbX200X3NldChbJDFdKV0pJDAoWyQxXSwgWyQyJDNdKV0sCgkgIFtfbTRfcG9wZGVmKFtfbTRfc2V0X2NsZWFudXAoJDEpXSldKQpUMTEsMTcKbTRfbG9jYXRpb25fX2ZpbGVfXzpfX2xpbmVfXwpUMTEsNTQKbTRfaWZuYmxhbmttNF9pZihtNF90cmFuc2xpdChbWyQxXV0sICBbIF1bCV1bCl0pLCBbXSwgWyQzXSwgWyQyXSkKVDEzLDEzNApfbTRfZGVmdW5fZXBpX200X3BvcGRlZihbX200X2V4cGFuZGluZygkMSldLCBbX200X2V4cGFuc2lvbl9zdGFja10pbTRfaWZkZWYoW19tNF9leHBhbnNpb25fc3RhY2tdLCBbXSwgW19tNF9kZWZ1bl9lcGlfb3V0ZXIoWyQxXSldKW00X3Byb3ZpZGUoWyQxXSkKVDEwLDQwCm00X3dhcm5pbmdtNF9lcnJwcmludG4obTRfbG9jYXRpb25bOiB3YXJuaW5nOiAkMV0pCkY3LDQKbTRfZXZhbGV2YWwKVDE1LDUKX200X2RpdmVydF9ncm93MTAwMDAKVDYsNTk4Cm00X2Zvcm00X3B1c2hkZWYoWyQxXSwgbTRfZXZhbChbJDJdKSltNF9jb25kKFttNF9ldmFsKChbJDNdKSA+IChbJDJdKSldLCAxLAoJICAgW200X3B1c2hkZWYoW19tNF9zdGVwXSwgbTRfZXZhbChtNF9kZWZhdWx0X3F1b3RlZChbJDRdLAoJICAgICAgMSkpKW00X2Fzc2VydChfbTRfc3RlcCA+IDApXyQwKF9tNF9kZWZuKFskMV0pLAogIG00X2V2YWwoKChbJDNdKSAtIChbJDJdKSkgLyBfbTRfc3RlcCAqIF9tNF9zdGVwICsgKFskMl0pKSwgX200X3N0ZXAsXSwKCSBbbTRfZXZhbCgoWyQzXSkgPCAoWyQyXSkpXSwgMSwKCSAgIFttNF9wdXNoZGVmKFtfbTRfc3RlcF0sIG00X2V2YWwobTRfZGVmYXVsdF9xdW90ZWQoWyQ0XSwKCSAgICAgIC0xKSkpbTRfYXNzZXJ0KF9tNF9zdGVwIDwgMClfJDAoX200X2RlZm4oWyQxXSksCiAgbTRfZXZhbCgoKFskMl0pIC0gKFskM10pKSAvIC0oX200X3N0ZXApICogX200X3N0ZXAgKyAoWyQyXSkpLCBfbTRfc3RlcCxdLAoJIFttNF9wdXNoZGVmKFtfbTRfc3RlcF0pXyQwKF9tNF9kZWZuKFskMV0pLCBfbTRfZGVmbihbJDFdKSwgMCxdKVttNF9kZWZpbmUoWyQxXSxdLCBbKSQ1XSltNF9wb3BkZWYoW19tNF9zdGVwXSwgWyQxXSkKVDE2LDI5OAptNF9tYXBfYXJnc19wYWlybTRfaWYoWyQjXSwgWzBdLCBbbTRfZmF0YWwoWyQwOiB0b28gZmV3IGFyZ3VtZW50czogJCNdKV0sCiAgICAgICBbJCNdLCBbMV0sIFttNF9mYXRhbChbJDA6IHRvbyBmZXcgYXJndW1lbnRzOiAkIzogJDFdKV0sCiAgICAgICBbJCNdLCBbMl0sIFtdLAogICAgICAgWyQjXSwgWzNdLCBbbTRfZGVmYXVsdChbJDJdLCBbJDFdKShbJDNdKVtdXSwKICAgICAgIFskI10sIFs0XSwgWyQxKFskM10sIFskNF0pW11dLAogICAgICAgWyQxKFskM10sIFskNF0pW10kMChbJDFdLCBbJDJdLCBtNF9zaGlmdChtNF9zaGlmdDMoJEApKSldKQpUNywzNgptNF9zaWdubTRfZXZhbCgoKFskMV0pID4gMCkgLSAoKFskMV0pIDwgMCkpClQyNSw1MwpfbTRfZXhwYW5zaW9uX3N0YWNrX2VudHJ5X200X2RlZm4oW200X2xvY2F0aW9uKCQxKV0pWzogJDEgaXMgZXhwYW5kZWQgZnJvbS4uLl0KVDksMTI3Cl9tNF9zcGxpdG00X2NoYW5nZXF1b3RlKFstPTx7KF0sWyl9Pj0tXSlbbTRfYnBhdHN1YnN0KC09PHsoLT08eygkMSl9Pj0tKX0+PS0sIC09PHsoJDIpfT49LSwKCSAgICAgICAtPTx7KF0kM1spfT49LSldbTRfY2hhbmdlcXVvdGUoWywgXSkKVDgsODUKX200X2pvaW5tNF9pZihbJCMkMl0sIFsyXSwgW10sCiAgICAgICBbbTRfaWYoWyQyXSwgW10sIFtdLCBbWyQxJDJdXSkkMChbJDFdLCBtNF9zaGlmdDIoJEApKV0pClQxMywyNzYKbTRfc2V0X2RlbGV0ZW00X2lmZGVmKFtfbTRfc2V0KFskMV0pXSwKCSAgW19tNF9wb3BkZWYoW19tNF9zZXQoWyQxXSxdX200X2RlZm4oW19tNF9zZXQoWyQxXSldKVspXSwKCQkgICAgICBbX200X3NldChbJDFdKV0pJDAoWyQxXSldLAoJICBbbTRfaWZkZWYoW19tNF9zZXRfY2xlYW51cCgkMSldLAoJCSAgICBbX200X3BvcGRlZihbX200X3NldF9jbGVhbnVwKCQxKV0pXSltNF9pZmRlZigKCQkgICAgW19tNF9zZXRfc2l6ZSgkMSldLAoJCSAgICBbX200X3BvcGRlZihbX200X3NldF9zaXplKCQxKV0pXSldKQpUMTIsMTAKbTRfY3JfZGlnaXRzMDEyMzQ1Njc4OQpUMTcsMTcKbTRfUEFDS0FHRV9TVFJJTkdHTlUgQXV0b2NvbmYgMi42OApGMTAsNgpfbTRfcG9wZGVmcG9wZGVmClQ3LDE2ODgKbTRfaW5pdCMgQWxsIHRoZSBNNHN1Z2FyIG1hY3JvcyBzdGFydCB3aXRoIGBtNF8nLCBleGNlcHQgYGRubCcga2VwdCBhcyBpcwojIGZvciBzYWtlIG9mIHNpbXBsaWNpdHkuCm00X3BhdHRlcm5fZm9yYmlkKFteXz9tNF9dKQptNF9wYXR0ZXJuX2ZvcmJpZChbXmRubCRdKQoKIyBJZiBfX200X3ZlcnNpb25fXyBpcyBkZWZpbmVkLCB3ZSBhc3N1bWUgdGhhdCB3ZSBhcmUgYmVpbmcgcnVuIGJ5IE00CiMgMS42IG9yIG5ld2VyLCB0aHVzICRAIHJlY3Vyc2lvbiBpcyBsaW5lYXIsIGFuZCBkZWJ1Z21vZGUoK2RvKQojIGlzIGF2YWlsYWJsZSBmb3IgZmFzdGVyIGNoZWNrcyBvZiBkZXJlZmVyZW5jaW5nIHVuZGVmaW5lZCBtYWNyb3MKIyBhbmQgZm9yY2luZyBkdW1wZGVmIHRvIHByaW50IHRvIHN0ZGVyciByZWdhcmRsZXNzIG9mIGRlYnVnZmlsZS4KIyBCdXQgaWYgaXQgaXMgbWlzc2luZywgd2UgYXNzdW1lIHdlIGFyZSBiZWluZyBydW4gYnkgTTQgMS40LngsIHRoYXQKIyAkQCByZWN1cnNpb24gaXMgcXVhZHJhdGljLCBhbmQgdGhhdCB3ZSBuZWVkIGZvcmVhY2gtYmFzZWQKIyByZXBsYWNlbWVudCBtYWNyb3MuICBBbHNvLCBtNCBwcmlvciB0byAxLjQuOCBsb3NlcyB0cmFjayBvZiBsb2NhdGlvbgojIGR1cmluZyBtNHdyYXAgdGV4dDsgX19saW5lX18gc2hvdWxkIG5ldmVyIGJlIDAuCiMKIyBVc2UgdGhlIHJhdyBidWlsdGluIHRvIGF2b2lkIHRyaXBwaW5nIHVwIGluY2x1ZGUgdHJhY2luZy4KIyBNZWFud2hpbGUsIGF2b2lkIG00X2NvcHksIHNpbmNlIGl0IHRlbXBvcmFyaWx5IHVuZGVmaW5lcyBtNF9kZWZuLgptNF9pZmRlZihbX19tNF92ZXJzaW9uX19dLApbbTRfZGVidWdtb2RlKFsrZG9dKQptNF9kZWZpbmUoW200X2RlZm5dLCBfbTRfZGVmbihbX200X2RlZm5dKSkKbTRfZGVmaW5lKFttNF9kdW1wZGVmXSwgX200X2RlZm4oW19tNF9kdW1wZGVmXSkpCm00X2RlZmluZShbbTRfcG9wZGVmXSwgX200X2RlZm4oW19tNF9wb3BkZWZdKSkKbTRfZGVmaW5lKFttNF91bmRlZmluZV0sIF9tNF9kZWZuKFtfbTRfdW5kZWZpbmVdKSldLApbbTRfYnVpbHRpbihbaW5jbHVkZV0sIFttNHN1Z2FyL2ZvcmVhY2gubTRdKQptNF93cmFwX2xpZm8oW200X2lmKF9fbGluZV9fLCBbMF0sIFttNF9wdXNoZGVmKFttNF9sb2NhdGlvbl0sCl1dbTRfZHF1b3RlKG00X2RxdW90ZShtNF9kcXVvdGUoX19maWxlX186X19saW5lX18pKSlbWyldKV0pXSkKCiMgUmV3cml0ZSB0aGUgZmlyc3QgZW50cnkgb2YgdGhlIGRpdmVyc2lvbiBzdGFjay4KbTRfZGl2ZXJ0KFtLSUxMXSkKCiMgQ2hlY2sgdGhlIGRpdmVydCBwdXNoL3BvcCBwZXJmZWN0IGJhbGFuY2UuCiMgU29tZSB1c2VycyBhcmUgcHJvbmUgdG8gYWxzbyB1c2UgbTRfd3JhcCB0byByZWdpc3RlciBsYXN0LW1pbnV0ZQojIG00X2RpdmVydF90ZXh0OyBzbyBhZnRlciBvdXIgZGl2ZXJzaW9uIGNsZWFudXBzLCB3ZSByZXN0b3JlCiMgS0lMTCBhcyB0aGUgYm90dG9tIG9mIHRoZSBkaXZlcnNpb24gc3RhY2suCm00X3dyYXAoW200X3BvcGRlZihbX200X2RpdmVydF9kaXZlcnNpb25dKW00X2lmZGVmKAogIFtfbTRfZGl2ZXJ0X2RpdmVyc2lvbl0sIFttNF9mYXRhbChbJDA6IHVuYmFsYW5jZWQgbTRfZGl2ZXJ0X3B1c2g6Cl1tNF9kaXZlcnRfc3RhY2spXSlfbTRfcG9wZGVmKFtfbTRfZGl2ZXJ0X3N0YWNrXSltNF9kaXZlcnRfcHVzaChbS0lMTF0pXSkKClQxMSwxNjIKbTRfZHVtcGRlZnNtNF9pZihbJCNdLCBbMF0sIFttNF9mYXRhbChbJDA6IG1pc3NpbmcgYXJndW1lbnRdKV0sCiAgICAgICBbJCNdLCBbMV0sIFttNF9zdGFja19mb3JlYWNoX2xpZm8oWyQxXSwgW200X2R1bXBkZWYoWyQxXSltNF9pZ25vcmVdKV0sCiAgICAgICBbbTRfbWFwX2FyZ3MoWyQwXSwgJEApXSkKVDEyLDE2Cm00X3dyYXBfbGlmb19tNF93cmFwKFskMVtdXSkKVDEwLDEwMwptNF9mbGF0dGVubTRfaWYobTRfaW5kZXgoWyQxXSwgWwpdKSwgWy0xXSwgW1skMV1dLAogICAgICAgW200X3RyYW5zbGl0KG00X2JwYXRzdWJzdChbW1skMV1dXSwgW1xcCl0pLCBbCl0sIFsgXSldKQpUMjAsMzYKX200X3NldF9pbnRlcnNlY3Rpb25tNF9zZXRfY29udGFpbnMoWyQxXSwgWyQyXSwgWyxbJDJdXSkKVDksMTU2Cm00X2VzY2FwZW00X2lmKG00X2luZGV4KG00X3RyYW5zbGl0KFskMV0sCiAgIFtbXSMsKCldW2FiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6QUJDREVGR0hJSktMTU5PUFFSU1RVVldYWVpfMDEyMzQ1Njc4OV0sIFskJCRdKSwgWyRdKSwKICBbLTFdLCBbbTRfZWNob10sIFtfJDBdKShbJDFdKQpUMTIsMjQKbTRfcmVuYW1lX200bTRfcmVuYW1lKFskMV0sIFttNF8kMV0pClQyMCwxMTEKbTRfc3RhY2tfZm9yZWFjaF9zZXBfbTRfc3RhY2tfcmV2ZXJzZShbJDFdLCBbbTRfdG1wLSQxXSlfbTRfc3RhY2tfcmV2ZXJzZShbbTRfdG1wLSQxXSwgWyQxXSwgWyQyW11fbTRfZGVmbihbbTRfdG1wLSQxXSkkM10sIFskNFtdXSkKVDE5LDE1NgpfbTRfZGVmdW5fcHJvX291dGVybTRfc2V0X2RlbGV0ZShbX200X3Byb3ZpZGVdKW00X3B1c2hkZWYoW19tNF9kaXZlcnRpbmcoWyQxXSldKW00X3B1c2hkZWYoW19tNF9kaXZlcnRpbmddLCBbJDFdKW00X3B1c2hkZWYoW19tNF9kaXZlcnRfZHVtcF0sIG00X2Rpdm51bSltNF9kaXZlcnRfcHVzaChbR1JPV10pClQxNyw2MwptNF9zZXRfZGlmZmVyZW5jZW00X2lmKFskMV0sIFskMl0sIFtdLCBbbTRfc2V0X21hcF9zZXAoWyQxXSwgW18kMChbJDJdLF0sIFspXSldKQpUMTcsMjA5Cl9tNF9yZXF1aXJlX2NoZWNrbTRfaWYoX200X2RlZm4oW19tNF9kaXZlcnRpbmddKSwgWyQyXSwgW200X2lnbm9yZV0sCiAgICAgICBtNF9pZmRlZihbX200X2RpdmVydGluZyhbJDJdKV0sIFstXSksIFstXSwgW200X3dhcm4oW3N5bnRheF0sCiAgIFskMzogYCQxJyB3YXMgZXhwYW5kZWQgYmVmb3JlIGl0IHdhcyByZXF1aXJlZF0pX200X3JlcXVpcmVfY2FsbF0sCiAgICAgICBbbTRfaWdub3JlXSkKVDE5LDE2NgptNF9zZXRfaW50ZXJzZWN0aW9ubTRfaWYoWyQxXSwgWyQyXSwgW200X3NldF9saXN0YyhbJDFdKV0sCiAgICAgICBtNF9ldmFsKG00X3NldF9zaXplKFskMl0pIDwgbTRfc2V0X3NpemUoWyQxXSkpLCBbMV0sIFskMChbJDJdLCBbJDFdKV0sCiAgICAgICBbbTRfc2V0X21hcF9zZXAoWyQxXSwgW18kMChbJDJdLF0sIFspXSldKQpUMjEsMTAxCm00X3N0YWNrX2ZvcmVhY2hfbGlmb19tNF9zdGFja19yZXZlcnNlKFskMV0sIFttNF90bXAtJDFdLCBbJDIoX200X2RlZm4oW200X3RtcC0kMV0pKV0pX200X3N0YWNrX3JldmVyc2UoW200X3RtcC0kMV0sIFskMV0pClQxMSwzMwptNF9zZXRfbGlzdG00X3NldF9tYXBfc2VwKFskMV0sIFtdLCBbXSwgWyxdKQpGOCw4Cl9fbGluZV9fX19saW5lX18KVDEzLDQxCl9tNF9zZXRfdW5pb25tNF9pZmRlZihbX200X3NldChbJDFdLCQyKV0sIFtdLCBbLFskMl1dKQpUMTAsNTUKX200X3NoaWZ0Mm00X2lmKFskI10sIFsyXSwgW10sCiAgICAgICBbLCBtNF9zaGlmdChtNF9zaGlmdCgkQCkpXSkKVDE4LDQKbTRfUEFDS0FHRV9WRVJTSU9OMi42OApUMTAsNjUKX200X3NoaWZ0M200X2lmKFskI10sIFszXSwgW10sCiAgICAgICBbLCBtNF9zaGlmdChtNF9zaGlmdChtNF9zaGlmdCgkQCkpKV0pClQxMCw4NApfbTRfbWlubWF4bTRfaWYoWyQjXSwgWzNdLCBbJDEoWyQyXSwgWyQzXSldLAogICAgICAgWyQwKFskMV0sICQxKFskMl0sIFskM10pLCBtNF9zaGlmdDMoJEApKV0pClQxMSwyMzgKbTRfdGV4dF9ib3htNF9wdXNoZGVmKFttNF9Cb3JkZXJdLAoJICAgIG00X3RyYW5zbGl0KG00X2Zvcm1hdChbW1slKnNdXV0sIG00X2RlY3IobTRfcWxlbihfbTRfZXhwYW5kKFskMQpdKSkpLCBbXSksIFsgXSwgbTRfZGVmYXVsdF9xdW90ZWQoWyQyXSwgWy1dKSkpWyMjXSBfbTRfZGVmbihbbTRfQm9yZGVyXSkgWyMjXQpbIyNdICQxIFsjI10KWyMjXSBfbTRfZGVmbihbbTRfQm9yZGVyXSkgWyMjXV9tNF9wb3BkZWYoW200X0JvcmRlcl0pClQxNSwxODAKbTRfc2V0X2NvbnRhaW5zbTRfaWZkZWYoW19tNF9zZXRfY2xlYW51cCgkMSldLAoJICBbbTRfaWYobTRfaWZkZWYoW19tNF9zZXQoWyQxXSwkMildLAoJCSAgICBbbTRfaW5kaXIoW19tNF9zZXQoWyQxXSwkMildKV0sIFswXSksIFsxXSwgWyQzXSwgWyQ0XSldLAoJICBbbTRfaWZkZWYoW19tNF9zZXQoWyQxXSwkMildLCBbJDNdLCBbJDRdKV0pCkYxMCw3Cm00X2VzeXNjbWRlc3lzY21kClQxMCwzMgptNF9zZXRfbWFwbTRfc2V0X21hcF9zZXAoWyQxXSwgWyQyKF0sIFspXSkKVDE0LDUzCm00X2NyX3N5bWJvbHMxYWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXpBQkNERUZHSElKS0xNTk9QUVJTVFVWV1hZWl8KVDE0LDYzCm00X2NyX3N5bWJvbHMyYWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXpBQkNERUZHSElKS0xNTk9QUVJTVFVWV1hZWl8wMTIzNDU2Nzg5ClQxMiwxOAptNF9lcnJwcmludG5tNF9lcnJwcmludChbJDEKXSkKVDEzLDMwNgptNF9icGF0c3Vic3RzbTRfaWYoWyQjXSwgMCwgW200X2ZhdGFsKFskMDogdG9vIGZldyBhcmd1bWVudHM6ICQjXSldLAogICAgICAgWyQjXSwgMSwgW200X2ZhdGFsKFskMDogdG9vIGZldyBhcmd1bWVudHM6ICQjOiAkMV0pXSwKICAgICAgIFskI10sIDIsIFttNF91bnF1b3RlKG00X2J1aWx0aW4oW3BhdHN1YnN0XSwgW1skMV1dLCBbJDJdKSldLAogICAgICAgWyQjXSwgMywgW200X3VucXVvdGUobTRfYnVpbHRpbihbcGF0c3Vic3RdLCBbWyQxXV0sIFskMl0sIFskM10pKV0sCiAgICAgICBbXyQwKCRAbTRfaWYobTRfZXZhbCgkIyAmIDEpLCAwLCBbLF0pKV0pCkY3LDQKbTRfZGVjcmRlY3IKVDEyLDkzCm00X3RleHRfd3JhcF8kMChtNF9lc2NhcGUoWyQxXSksIFskMl0sIG00X2RlZmF1bHRfcXVvdGVkKFskM10sIFskMl0pLAogICAgIG00X2RlZmF1bHRfcXVvdGVkKFskNF0sIFs3OV0pKQpUMTIsOTMKbTRfc2V0X2VtcHR5bTRfaWZkZWYoW19tNF9zZXRfc2l6ZSgkMSldLAoJICBbbTRfaWYobTRfaW5kaXIoW19tNF9zZXRfc2l6ZSgkMSldKSwgWzBdLCBbJDJdLCBbJDNdKV0sIFskMl0pClQxNSwzNgptNF9zZXRfY29udGVudHNtNF9zZXRfbWFwX3NlcChbJDFdLCBbXSwgW10sIFtbJDJdXSkKVDEwLDE2OAptNF9jb21iaW5lbTRfaWYoWyQyXSwgW10sIFtdLCBtNF9ldmFsKFskIyA+IDNdKSwgWzFdLApbbTRfbWFwX2FyZ3Nfc2VwKFttNF9tYXBfYXJnc19zZXAobTRfZHF1b3RlKF0sIFspW1skM11dLCBbXSwgW1skMV1dLF1dbTRfZHF1b3RlKG00X2RxdW90ZShtNF9zaGlmdDMoJEApKSlbWyldLCBbWyQxXV0sICQyKV0pClQxOCwyMDIKbTRfY3Jfbm90X3N5bWJvbHMxAQIDBAUGBwgJCgsMDQ4PEBESExQVFhcYGRobHB0eHyAhIiMqJSYnKCkkKywuLzAxMjM0NTY3ODk6Ozw9Pj9AW1xdXmB7fH1+f4CBgoOEhYaHiImKi4yNjo+QkZKTlJWWl5iZmpucnZ6foKGio6SlpqeoqaqrrK2ur7CxsrO0tba3uLm6u7y9vr/AwcLDxMXGx8jJysvMzc7P0NHS09TV1tfY2drb3N3e3+Dh4uPk5ebn6Onq6+zt7u/w8fLz9PX29/j5+vv8/f7/LQpUMTgsMTkyCm00X2NyX25vdF9zeW1ib2xzMgECAwQFBgcICQoLDA0ODxAREhMUFRYXGBkaGxwdHh8gISIjKiUmJygpJCssLi86Ozw9Pj9AW1xdXmB7fH1+f4CBgoOEhYaHiImKi4yNjo+QkZKTlJWWl5iZmpucnZ6foKGio6SlpqeoqaqrrK2ur7CxsrO0tba3uLm6u7y9vr/AwcLDxMXGx8jJysvMzc7P0NHS09TV1tfY2drb3N3e3+Dh4uPk5ebn6Onq6+zt7u/w8fLz9PX29/j5+vv8/f7/LQpGMTIsOAptNF9icGF0c3Vic3RwYXRzdWJzdApUNywyCm00X2VjaG8kQApUMjUsMTExCm00X3N0YWNrX2ZvcmVhY2hfc2VwX2xpZm9fbTRfc3RhY2tfcmV2ZXJzZShbJDFdLCBbbTRfdG1wLSQxXSwgWyQyW11fbTRfZGVmbihbbTRfdG1wLSQxXSkkM10sIFskNFtdXSlfbTRfc3RhY2tfcmV2ZXJzZShbbTRfdG1wLSQxXSwgWyQxXSkKVDcsOTEKbTRfYXJnbm00X2Fzc2VydChbMCA8ICQxXSltNF9wdXNoZGVmKFtfJDBdLCBbX200X3BvcGRlZihbXyQwXSldbTRfZHF1b3RlKFskXW00X2luY3IoWyQxXSkpKV8kMCgkQCkKVDgsMjcKbTRfaWZ2YWxtNF9pZihbJDFdLCBbXSwgWyQzXSwgWyQyXSkKVDcsMTk3Cm00X2NvcHltNF9pZmRlZihbJDJdLCBbbTRfZmF0YWwoWyQwOiB3b24ndCBvdmVyd3JpdGUgZGVmaW5lZCBtYWNybzogJDJdKV0sCgkgIFttNF9zdGFja19mb3JlYWNoX3NlcChbJDFdLCBbbTRfcHVzaGRlZihbJDJdLF0sIFspXSldKW00X2lmZGVmKFttNF9sb2NhdGlvbigkMSldLCBbbTRfZGVmaW5lKFttNF9sb2NhdGlvbigkMildLCBtNF9sb2NhdGlvbildKQpUMTQsMTEzCm00X2V4cGFuZF9vbmNlbTRfcHJvdmlkZV9pZihtNF9kZWZhdWx0X3F1b3RlZChbJDJdLCBbJDFdKSwKCSAgICAgICBbXSwKCSAgICAgICBbbTRfcHJvdmlkZShtNF9kZWZhdWx0X3F1b3RlZChbJDJdLCBbJDFdKSlbXSQxXSkKVDE0LDk2Cl9tNF9icGF0c3Vic3RzbTRfaWYoWyQjXSwgMiwgWyQxXSwKICAgICAgIFskMChtNF9idWlsdGluKFtwYXRzdWJzdF0sIFtbJDFdXSwgWyQyXSwgWyQzXSksCgkgICBtNF9zaGlmdDMoJEApKV0pClQxMyw0MQptNF9wcm92aWRlX2lmbTRfaWZkZWYoW200X3Byb3ZpZGUoJDEpXSwKCSAgWyQyXSwgWyQzXSkKVDIwLDQKX200X2RpdmVydF9kaXZlcnNpb25LSUxMCkYxMiw4Cl9tNF91bmRpdmVydHVuZGl2ZXJ0ClQ3LDU0Cl9tNF9jZHJtNF9pZihbJCNdLCAxLCBbXSwKICAgICAgIFssIG00X2RxdW90ZShtNF9zaGlmdCgkQCkpXSkKVDEwLDg2Cm00X3RvdXBwZXJtNF90cmFuc2xpdChbWyQxXV0sIFthYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5el0sCgkJICAgICBbQUJDREVGR0hJSktMTU5PUFFSU1RVVldYWVpdKQpUOCwxOQptNF9jdXJyeSQxKG00X3NoaWZ0KCRALClfJDAKVDE3LDI4Cm00X2RlZmF1bHRfbmJsYW5rbTRfaWZibGFuayhbJDFdLCBbJDJdLCBbJDFdKQpUMTIsNDgKbTRfcmVfZXNjYXBlbTRfYnBhdHN1YnN0KFskMV0sCgkgICAgICBbW11bKisuP1xeJF1dLCBbXFxcJl0pClQxMiwyNgptNF9ub3JtYWxpemVtNF9zdHJpcChtNF9mbGF0dGVuKFskMV0pKQpUMTgsNDAKX200X3NldF9kaWZmZXJlbmNlbTRfc2V0X2NvbnRhaW5zKFskMV0sIFskMl0sIFtdLCBbLFskMl1dKQpGMywzCmRubGRubApGMTIsOApfbTRfdW5kZWZpbmV1bmRlZmluZQpUMTAsNzkKX200X3NoaWZ0bm00X2lmKFskMV0sIDEsIFttNF9zaGlmdChdLAogICAgICAgWyQwKG00X2RlY3IoWyQxXSldKSwgbTRfc2hpZnQobTRfc2hpZnQoJEApKSkKVDIwLDE3MApfbTRfdmVyc2lvbl91bmxldHRlcm00X2JwYXRzdWJzdChtNF9icGF0c3Vic3QobTRfdHJhbnNsaXQoW1tbWzAsJDFdXV1dLCBbLi1dLCBbLCxdKSxbW2FiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6QUJDREVGR0hJSktMTU5PUFFSU1RVVldYWVpdXVsrXSwKCSAgICAgIFsrMSwtMSxbMHIzNjpcJl1dKSwgWywwXSwgWyxbMHIxMDowXV0pClQxMSwxMzYKbTRfdW5kaXZlcnRtNF9pZihbJCNdLCBbMF0sIFttNF9mYXRhbChbJDA6IG1pc3NpbmcgYXJndW1lbnRdKV0sCiAgICAgICBbJCNdLCBbMV0sIFtfbTRfdW5kaXZlcnQoX200X2RpdmVydChbJDFdKSldLAogICAgICAgW200X21hcF9hcmdzKFskMF0sICRAKV0pClQxMCw0MTIKbTRfcmVxdWlyZW00X2lmZGVmKFtfbTRfZXhwYW5kaW5nKCQxKV0sCiAgW200X2ZhdGFsKFskMDogY2lyY3VsYXIgZGVwZW5kZW5jeSBvZiAkMV0pXSltNF9pZihfbTRfZGl2ZXJ0X2R1bXAsIFtdLAogIFttNF9mYXRhbChbJDAoJDEpOiBjYW5ub3QgYmUgdXNlZCBvdXRzaWRlIG9mIGFuIF1kbmwKbTRfaWYoWyQwXSwgW200X3JlcXVpcmVdLCBbW200X2RlZnVuXV0sIFtbQUNfREVGVU5dXSlbJ2QgbWFjcm9dKV0pbTRfcHJvdmlkZV9pZihbJDFdLCBbbTRfc2V0X2NvbnRhaW5zKFtfbTRfcHJvdmlkZV0sIFskMV0sCiAgICBbX200X3JlcXVpcmVfY2hlY2soWyQxXSwgX200X2RlZm4oW200X3Byb3ZpZGUoJDEpXSksIFskMF0pXSwgW200X2lnbm9yZV0pXSwKICBbX200X3JlcXVpcmVfY2FsbF0pKFskMV0sIFskMl0sIF9tNF9kaXZlcnRfZHVtcCkKVDcsMTE5Cm00X2Nhc2VtNF9pZihbJCNdLCAwLCBbXSwKICAgICAgIFskI10sIDEsIFtdLAogICAgICAgWyQjXSwgMiwgWyQyXSwKICAgICAgIFskMV0sIFskMl0sIFskM10sCiAgICAgICBbJDAoWyQxXSwgbTRfc2hpZnQzKCRAKSldKQpUMTEsNTUKbTRfc2luY2x1ZGVtNF9pbmNsdWRlX3VuaXF1ZShbJDFdKWRubAptNF9idWlsdGluKFtzaW5jbHVkZV0sIFskMV0pClQ5LDI1NQptNF9jcl9hbGwBAgMEBQYHCAkKCwwNDg8QERITFBUWFxgZGhscHR4fICEiIyolJicoKSQrLC4vMDEyMzQ1Njc4OTo7PD0+P0BBQkNERUZHSElKS0xNTk9QUVJTVFVWV1hZWltcXV5fYGFiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6e3x9fn+AgYKDhIWGh4iJiouMjY6PkJGSk5SVlpeYmZqbnJ2en6ChoqOkpaanqKmqq6ytrq+wsbKztLW2t7i5uru8vb6/wMHCw8TFxsfIycrLzM3Oz9DR0tPU1dbX2Nna29zd3t/g4eLj5OXm5+jp6uvs7e7v8PHy8/T19vf4+fr7/P3+/y0KVDE5LDYyCm00X3ZlcnNpb25fdW5sZXR0ZXJtNF9zdWJzdHIobTRfbWFwX2FyZ3MoWy5tNF9ldmFsXSwgbTRfdW5xdW90ZShfJDAoWyQxXSkpKSwgWzNdKQpUMTcsMzIKbTRfZGVmaW5lX2RlZmF1bHRtNF9pZm5kZWYoWyQxXSwgW200X2RlZmluZSgkQCldKQpUMTEsMTYwCm00X3VuZGVmaW5lbTRfaWYoWyQjXSwgWzBdLCBbWyQwXV0sCiAgICAgICBbJCNdLCBbMV0sIFttNF9pZmRlZihbJDFdLCBbX200X3VuZGVmaW5lKFskMV0pXSwKCQkJICAgIFttNF9mYXRhbChbJDA6IHVuZGVmaW5lZCBtYWNybzogJDFdKV0pXSwKICAgICAgIFttNF9tYXBfYXJncyhbJDBdLCAkQCldKQpUMTUsMTIKbTRfUEFDS0FHRV9OQU1FR05VIEF1dG9jb25mCkYxMCw3Cm00X2J1aWx0aW5idWlsdGluClQxNCw0NAptNF9kaXZlcnRfb25jZW00X2V4cGFuZF9vbmNlKFttNF9kaXZlcnRfdGV4dChbJDFdLCBbJDJdKV0pClQxMSwxNDYKX200X2V4cGFuZF9tNF9pZihbJDRdLCBbfT49LV0sCiAgICAgICBbbTRfY2hhbmdlcXVvdGUoWy09PHskMl0sIFspfT49LV0pJDNtNF9jaGFuZ2VxdW90ZShbLCBdKV0sCiAgICAgICBbJDAoWyQxXSwgWygkMl0sIC09PHsoJDIkMSl9Pj0tLCBbfT49LV0pbTRfaWdub3JlJDJdKQpUMTcsNjQKX200X2RpdmVydF91bnNhZmVtNF9mYXRhbChbJDA6IGNhbm5vdCBjaGFuZ2UgZGl2ZXJzaW9uIHRvIGAkMScgaW5zaWRlIG00X2V4cGFuZF0pClQ4LDk5Cl9tNF9jb25kbTRfaWYoKCQxKSwgWygkMildLCBbJDNdLAogICAgICAgWyQjXSwgWzNdLCBbXSwKICAgICAgIFskI10sIFs0XSwgWyQ0XSwKICAgICAgIFskMChtNF9zaGlmdDMoJEApKV0pClQxNiwwCm00X3BhdHRlcm5fYWxsb3cKVDE3LDI1MwptNF9kaXZlcnRfcmVxdWlyZW00X2lmZGVmKFtfbTRfZXhwYW5kaW5nKCQyKV0sCiAgW200X2ZhdGFsKFskMDogY2lyY3VsYXIgZGVwZW5kZW5jeSBvZiAkMl0pXSltNF9pZihfbTRfZGl2ZXJ0X2R1bXAsIFtdLAogIFttNF9mYXRhbChbJDAoJDIpOiBjYW5ub3QgYmUgdXNlZCBvdXRzaWRlIG9mIGFuIG00X2RlZnVuJ2QgbWFjcm9dKV0pbTRfcHJvdmlkZV9pZihbJDJdLCBbXSwKICBbX200X3JlcXVpcmVfY2FsbChbJDJdLCBbJDNdLCBfbTRfZGl2ZXJ0KFskMV0sIFstXSkpXSkKRjksNgptNF9zeXN2YWxzeXN2YWwKVDE3LDAKbTRfcGF0dGVybl9mb3JiaWQKVDksNjkKbTRfYXNzZXJ0bTRfaWYobTRfZXZhbChbJDFdKSwgMCwKICAgICAgIFttNF9mYXRhbChbYXNzZXJ0IGZhaWxlZDogJDFdLCBbJDJdKV0pCkYxMCw3Cm00X3B1c2hkZWZwdXNoZGVmClQyMCw1MwptNF9kaXZlcnRfc3RhY2tfcHVzaG00X3B1c2hkZWYoW19tNF9kaXZlcnRfc3RhY2tdLCBtNF9sb2NhdGlvbls6ICQxOiAkMl0pClQxNywxMDUKX200X2RlZmluZV9jcl9ub3RtNF9kZWZpbmUoW200X2NyX25vdF8kMV0sCgkgICBtNF90cmFuc2xpdChtNF9kcXVvdGUobTRfZGVmbihbbTRfY3JfYWxsXSkpLAoJCSAgICAgICBtNF9kZWZuKFttNF9jcl8kMV0pKSkKVDIzLDM5Cm00X2V4cGFuc2lvbl9zdGFja19wdXNobTRfcHVzaGRlZihbX200X2V4cGFuc2lvbl9zdGFja10sIFskMV0pClQxMywyNgptNF9jcl9sZXR0ZXJzYWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXoKVDEwLDM2Cl9tNF9leHBhbmQkMF8oWyQxXSwgWyhdLCAtPTx7KCQxKX0+PS0sIFt9Pj0tXSkKVDExLDE0OQptNF9tYXBfYXJnc200X2lmKFskI10sIFswXSwgW200X2ZhdGFsKFskMDogdG9vIGZldyBhcmd1bWVudHM6ICQjXSldLAogICAgICAgWyQjXSwgWzFdLCBbXSwKICAgICAgIFskI10sIFsyXSwgWyQxKFskMl0pW11dLAogICAgICAgW19tNF9mb3JlYWNoKFskMShdLCBbKV0sICRAKV0pClQxOSwyODgKX200X3NldF9jb250ZW50c18xY200X2lmZGVmKFtfbTRfc2V0KFskMV0pXSwKCSAgW200X3NldF9jb250YWlucyhbJDFdLCBfbTRfZGVmbihbX200X3NldChbJDFdKV0pLAoJCSAgIFttNF9wdXNoZGVmKFtfbTRfc2V0XygkMSldLCBfbTRfZGVmbihbX200X3NldChbJDFdKV0pKV0sCgkJICAgW19tNF9wb3BkZWYoW19tNF9zZXQoWyQxXSxdX200X2RlZm4oCiAgICAgIFtfbTRfc2V0KFskMV0pXSlbKV0pXSlfbTRfcG9wZGVmKFtfbTRfc2V0KFskMV0pXSkkMChbJDFdKV0sCgkgIFtfbTRfcG9wZGVmKFtfbTRfc2V0X2NsZWFudXAoJDEpXSldKQpUNyw2NQpfbTRfbWlubTRfZXZhbCgoKFskMV0pIDwgKFskMl0pKSAqIChbJDFdKSArICgoWyQxXSkgPj0gKFskMl0pKSAqIChbJDJdKSkKRjgsNQptNF9zaGlmdHNoaWZ0ClQxNiw0NTIKX200X3JlcXVpcmVfY2FsbG00X3B1c2hkZWYoW19tNF9kaXZlcnRfZ3Jvd10sIG00X2RlY3IoX200X2RpdmVydF9ncm93KSltNF9wdXNoZGVmKFtfbTRfZGl2ZXJ0aW5nKFskMV0pXSltNF9wdXNoZGVmKFtfbTRfZGl2ZXJ0aW5nXSwgWyQxXSltNF9kaXZlcnRfcHVzaChfbTRfZGl2ZXJ0X2dyb3csIFstXSltNF9pZihbJDJdLCBbXSwgWyQxXSwgWyQyXSkKbTRfcHJvdmlkZV9pZihbJDFdLCBbbTRfc2V0X3JlbW92ZShbX200X3Byb3ZpZGVdLCBbJDFdKV0sCiAgW200X3dhcm4oW3N5bnRheF0sIFskMSBpcyBtNF9yZXF1aXJlJ2QgYnV0IG5vdCBtNF9kZWZ1bidkXSldKV9tNF9kaXZlcnRfcmF3KCQzKV9tNF91bmRpdmVydChfbTRfZGl2ZXJ0X2dyb3cpbTRfZGl2ZXJ0X3BvcChfbTRfZGl2ZXJ0X2dyb3cpX200X3BvcGRlZihbX200X2RpdmVydF9ncm93XSwKW19tNF9kaXZlcnRpbmcoWyQxXSldLCBbX200X2RpdmVydGluZ10pClQxMSw3MApfbTRfZm9yZWFjaG00X2lmKFskI10sIFszXSwgW10sCiAgICAgICBbJDFbJDRdJDJbXSQwKFskMV0sIFskMl0sIG00X3NoaWZ0MygkQCkpXSkKVDcsNjUKX200X21heG00X2V2YWwoKChbJDFdKSA+IChbJDJdKSkgKiAoWyQxXSkgKyAoKFskMV0pIDw9IChbJDJdKSkgKiAoWyQyXSkpCkY4LDgKX19maWxlX19fX2ZpbGVfXwpGMTAsNgptNF9icmVnZXhwcmVnZXhwClQxMyw0MgptNF9tYXBhbGxfc2VwbTRfaWYoWyQzXSwgW10sIFtdLCBbXyQwKFskMV0sIFskMl0sICQzKV0pClQ5LDI2Cm00X2lmbmRlZm00X2lmZGVmKFskMV0sIFskM10sIFskMl0pClQxMyw0NwptNF9jb3B5X2ZvcmNlbTRfaWZkZWYoWyQyXSwgW19tNF91bmRlZmluZShbJDJdKV0pbTRfY29weSgkQCkKVDcsMTA4Cm00X2pvaW5tNF9pZihbJCNdLCBbMV0sIFtdLAogICAgICAgWyQjXSwgWzJdLCBbWyQyXV0sCiAgICAgICBbbTRfaWYoWyQyXSwgW10sIFtdLCBbWyQyXV9dKSQwKFskMV0sIG00X3NoaWZ0MigkQCkpXSkKRjcsNgptNF9leGl0bTRleGl0ClQxMiw4MwptNF9zZXRfdW5pb25tNF9zZXRfbGlzdGMoWyQxXSltNF9pZihbJDFdLCBbJDJdLCBbXSwKICBbbTRfc2V0X21hcF9zZXAoWyQyXSwgW18kMChbJDFdLF0sIFspXSldKQpUMTYsMgpfbTRfZGl2ZXJ0KEtJTEwpLTEKVDEwLDEwMAptNF9mb3JlYWNobTRfaWYoWyQyXSwgW10sIFtdLAogICAgICAgW200X3B1c2hkZWYoWyQxXSlfJDAoW200X2RlZmluZShbJDFdLF0sIFspJDNdLCBbXSwKICAkMiltNF9wb3BkZWYoWyQxXSldKQpGMTEsOAptNF90cmFjZW9mZnRyYWNlb2ZmClQ4LDMzCm00X2FwcGx5bTRfaWYoWyQyXSwgW10sIFskMV0sIFskMSgkMildKVtdClQzMCwwCm00X2luY2x1ZGUobTRzdWdhci92ZXJzaW9uLm00KQpUMTQsNzMKX200X21hcGFsbF9zZXBtNF9hcHBseShbJDFdLCBbJDNdKV9tNF9mb3JlYWNoKFttNF9hcHBseShbJDJbXSQxXSxdLCBbKV0sIG00X3NoaWZ0MigkQCkpClQ5LDEzMgptNF9kaXZlcnRtNF9wb3BkZWYoW19tNF9kaXZlcnRfc3RhY2tdKW00X2RlZmluZShbX200X2RpdmVydF9kaXZlcnNpb25dLCBbJDFdKW00X2RpdmVydF9zdGFja19wdXNoKFskMF0sIFskMV0pX200X2RpdmVydF9yYXcoX200X2RpdmVydChbJDFdKSkKRjEwLDcKbTRfdHJhY2VvbnRyYWNlb24KVDEzLDUyCm00X2NyX0xldHRlcnNhYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5ekFCQ0RFRkdISUpLTE1OT1BRUlNUVVZXWFlaClQ5LDc1Cm00X2JlZm9yZW00X3Byb3ZpZGVfaWYoWyQyXSwKCSAgICAgICBbbTRfd2Fybihbc3ludGF4XSwgWyQyIHdhcyBjYWxsZWQgYmVmb3JlICQxXSldKQpUMTAsMTQzCm00X21hcF9zZXBtNF9wdXNoZGVmKFttNF9TZXBdLCBbbTRfZGVmaW5lKFttNF9TZXBdLCBfbTRfZGVmbihbbTRfdW5xdW90ZV0pKV0pX200X2ZvcmVhY2goW19tNF9hcHBseShbbTRfU2VwKFskMl0pW10kMV0sXSwgWyldLCBbXSwgJDMpbTRfcG9wZGVmKFttNF9TZXBdKQpUMTIsNTUKbTRfY29weV91bm00bTRfY29weShbJDFdLCBtNF9icGF0c3Vic3QoWyQxXSwgW15tNF9cKC4qXCldLCBbW1wxXV0pKQpUMTAsODYKbTRfdG9sb3dlcm00X3RyYW5zbGl0KFtbJDFdXSwgW0FCQ0RFRkdISUpLTE1OT1BRUlNUVVZXWFlaXSwKCQkgICAgIFthYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5el0pClQ4LDE4OQpfbTRfd3JhcG00X2lmZGVmKFskMF90ZXh0XSwKCSAgW200X2RlZmluZShbJDBfdGV4dF0sIFskMV1fbTRfZGVmbihbJDBfdGV4dF0pWyQyXSldLAoJICBbbTRfYnVpbHRpbihbbTR3cmFwXSwgW200X3VucXVvdGUoCiAgX200X2RlZm4oWyQwX3RleHRdKV9tNF9wb3BkZWYoWyQwX3RleHRdKSldKW00X2RlZmluZShbJDBfdGV4dF0sIFskMSQyXSldKQpGOSw2Cm00X2RlZmluZWRlZmluZQpUMTAsMjcKbTRfZGVmYXVsdG00X2lmKFskMV0sIFtdLCBbJDJdLCBbJDFdKQpUOSw1Cl9tNF9jdXJyeVskMV0pClQ4LDE5OApfbTRfcWxlbm00X2RlZmluZShbbTRfcWxlbi0kMV0sCm00X2lmKG00X2luZGV4KFskMV0sIFtAXSksIFstMV0sIFttNF9sZW4oWyQxXSldLAogICAgICBbbTRfbGVuKG00X2JwYXRzdWJzdChbWyQxXV0sCgkJCSAgIFtAXChcKDw6XHw6Plx8U3xcfCU6XHxcezpcfDpcfVwpXChAXClcfCZ0QFwpXSwKCQkJICAgW1wzXSkpXSkpX200X2RlZm4oW200X3FsZW4tJDFdKQpUMTAsNzIKbTRfcmV2ZXJzZW00X2lmKFskI10sIFswXSwgW10sIFskI10sIFsxXSwgW1skMV1dLAogICAgICAgWyQwKG00X3NoaWZ0KCRAKSksIFskMV1dKQpUMTAsMjk0Cl9tNF9lc2NhcGVtNF9jaGFuZ2VxdW90ZShbLT08eyhdLFspfT49LV0pbTRfYnBhdHN1YnN0KG00X2JwYXRzdWJzdChtNF9icGF0c3Vic3QobTRfYnBhdHN1YnN0KAoJICAtPTx7KC09PHsoLT08eygtPTx7KC09PHsoJDEpfT49LSl9Pj0tKX0+PS0pfT49LSl9Pj0tLAoJLT08eygjKX0+PS0sIC09PHsoQCU6QCl9Pj0tKSwKICAgICAgLT08eyhcWyl9Pj0tLCAtPTx7KEA8OkApfT49LSksCiAgICAtPTx7KFxdKX0+PS0sIC09PHsoQDo+QCl9Pj0tKSwKICAtPTx7KFwkKX0+PS0sIC09PHsoQFN8QCl9Pj0tKW00X2NoYW5nZXF1b3RlKFssXSkKVDE2LDEyOApfbTRfZGl2ZXJ0X3N0YWNrL2hvbWUveHh4eHh4eHh4L3h4eC94eHh4eHh4eC94eHh4eC9idWlsZC90b29scy9wYWNrYWdlcy9hdXRvY29uZi9hdXRvY29uZi0yLjY4L2xpYi9tNHN1Z2FyL200c3VnYXIubTQ6MzI1OTogbTRfZGl2ZXJ0X3B1c2g6IEtJTEwKVDE3LDIyOQptNF9jcl9ub3RfbGV0dGVycwECAwQFBgcICQoLDA0ODxAREhMUFRYXGBkaGxwdHh8gISIjKiUmJygpJCssLi8wMTIzNDU2Nzg5Ojs8PT4/QEFCQ0RFRkdISUpLTE1OT1BRUlNUVVZXWFlaW1xdXl9ge3x9fn+AgYKDhIWGh4iJiouMjY6PkJGSk5SVlpeYmZqbnJ2en6ChoqOkpaanqKmqq6ytrq+wsbKztLW2t7i5uru8vb6/wMHCw8TFxsfIycrLzM3Oz9DR0tPU1dbX2Nna29zd3t/g4eLj5OXm5+jp6uvs7e7v8PHy8/T19vf4+fr7/P3+/y0KVDE3LDExNwptNF9pbmNsdWRlX3VuaXF1ZW00X2lmZGVmKFttNF9pbmNsdWRlKCQxKV0sCgkgIFttNF93YXJuKFtzeW50YXhdLCBbZmlsZSBgJDEnIGluY2x1ZGVkIHNldmVyYWwgdGltZXNdKV0pZG5sCm00X2RlZmluZShbbTRfaW5jbHVkZSgkMSldKQpUOCw3NwptNF9zdHJpcG00X2JwYXRzdWJzdHMoWyQxIF0sCgkgICAgICAgW1sJIF0rXSwgWyBdLAoJICAgICAgIFteLiA/XCguKlwpIC4kXSwgW1tbXDFdXV0pClQ5LDQKbTRfZHF1b3RlWyRAXQpELTEsMAoKIyBFbmQgb2YgZnJvemVuIHN0YXRlIGZpbGUK