{
    "shortName": "1_unit",
    "name" : "1 unit v2.3"
 "description" : "restricted to 1 random combat unit",
    "options" : { 
"option_notes" : "restricted to 1 random combat unit",
"noelo" : 1,
"equalcom" : "enable",
"tweakunits" : 
"ewpzdWJyYWlkZXIgPSB7CnNmeHR5cGVzID0gewpleHBsb3Npb25nZW5lcmF0b3JzID0gewpbW2N1c3RvbTpidWJibGVzX3NtYWxsXV0sCltbY3VzdG9tOmRpc3J1cHRvcl9jYW5ub25fbXV6emxlXV0sCn0sCn0sCndlYXBvbnMgPSB7CnsKZGVmID0gW1tDQU5OT05dXSwKYmFkVGFyZ2V0Q2F0ZWdvcnkgPSBbW0ZJWEVEV0lOR11dLApvbmx5VGFyZ2V0Q2F0ZWdvcnkgPSBbW0ZJWEVEV0lORyBMQU5EIFNJTksgVFVSUkVUIFNISVAgU1dJTSBGTE9BVCBHVU5TSElQIEhPVkVSXV0sCn0sCnsKZGVmID0gW1tGQUtFX0NBTk5PTl1dLApiYWRUYXJnZXRDYXRlZ29yeSA9IFtbRklYRURXSU5HXV0sCm9ubHlUYXJnZXRDYXRlZ29yeSA9IFtbRklYRURXSU5HIExBTkQgU0lOSyBUVVJSRVQgU0hJUCBTV0lNIEZMT0FUIEdVTlNISVAgSE9WRVJdXSwKfSwKfSwKd2VhcG9uRGVmcyA9IHsKQ0FOTk9OID0gewpuYW1lID0gW1tEaXNydXB0aW9uIENhbm5vbl1dLAphY2N1cmFjeSA9IDIwMCwKYXJlYU9mRWZmZWN0ID0gMzIsCmNlZ1RhZyA9IFtbZGlzcnVwdG9ydHJhaWxdXSwKY3JhdGVyQm9vc3QgPSAxLApjcmF0ZXJNdWx0ID0gMiwKY3VzdG9tcGFyYW1zID0gewpidXJzdCA9IFNoYXJlZC5CVVJTVF9SRUxJQUJMRSwKdGltZXNsb3dfZGFtYWdlZmFjdG9yID0gMS42NjcsCmxpZ2h0X2NhbWVyYV9oZWlnaHQgPSAyNTAwLApsaWdodF9jb2xvciA9IFtbMS4zNiAwLjY4IDEuNV1dLApsaWdodF9yYWRpdXMgPSAxODAsCn0sCmRhbWFnZSA9IHsKZGVmYXVsdCA9IDE1MC4xLAp9LApleHBsb3Npb25HZW5lcmF0b3IgPSBbW2N1c3RvbTpmbGFzaHNsb3d3aXRoc3BhcmtzXV0sCmZpcmVTdGFydGVyID0gMTgwLAppbXBhY3RPbmx5ID0gdHJ1ZSwKaW1wdWxzZUJvb3N0ID0gMCwKaW1wdWxzZUZhY3RvciA9IDAuMiwKaW50ZXJjZXB0ZWRCeVNoaWVsZFR5cGUgPSAyLApteUdyYXZpdHkgPSAwLjE4LApyYW5nZSA9IDQ1MCwKcmVsb2FkdGltZSA9IDEuOCwKcmdiY29sb3IgPSBbWzAuOSAwLjEgMC45XV0sCnNvdW5kSGl0ID0gW1t3ZWFwb24vbGFzZXIvc21hbGxfbGFzZXJfZmlyZV1dLApzb3VuZEhpdFZvbHVtZSA9IDIuMiwKc291bmRTdGFydCA9IFtbd2VhcG9uL2xhc2VyL3NtYWxsX2xhc2VyX2ZpcmUzXV0sCnNvdW5kU3RhcnRWb2x1bWUgPSAzLjUsCnNvdW5kVHJpZ2dlciA9IHRydWUsCnR1cnJldCA9IHRydWUsCndlYXBvblR5cGUgPSBbW0Nhbm5vbl1dLAp3ZWFwb25WZWxvY2l0eSA9IDMwMCwKfSwKRkFLRV9DQU5OT04gPSB7Cm5hbWUgPSBbW0Zha2UgRGlzcnVwdGlvbiBDYW5ub25dXSwKYWNjdXJhY3kgPSAyMDAsCmFyZWFPZkVmZmVjdCA9IDMyLAphdm9pZEZyaWVuZGx5ID0gZmFsc2UsCmNlZ1RhZyA9IFtbYmVhbXdlYXBvbl9tdXp6bGVfcHVycGxlXV0sCmNyYXRlckJvb3N0ID0gMSwKY3JhdGVyTXVsdCA9IDIsCmN1c3RvbXBhcmFtcyA9IHsKdGltZXNsb3dfZGFtYWdlZmFjdG9yID0gMS43LApib2d1cyA9IDEsCn0sCmRhbWFnZSA9IHsKZGVmYXVsdCA9IDE1MCwKfSwKZXhwbG9zaW9uR2VuZXJhdG9yID0gW1tjdXN0b206Zmxhc2hzbG93d2l0aHNwYXJrc11dLApmaXJlU3RhcnRlciA9IDE4MCwKaW1wYWN0T25seSA9IHRydWUsCmltcHVsc2VCb29zdCA9IDAsCmltcHVsc2VGYWN0b3IgPSAwLjIsCmludGVyY2VwdGVkQnlTaGllbGRUeXBlID0gMiwKbXlHcmF2aXR5ID0gMC4yLApyYW5nZSA9IDQ1MCwKcmVsb2FkdGltZSA9IDEuOCwKcmdiY29sb3IgPSBbWzAuOSAwLjEgMC45XV0sCnNvdW5kSGl0ID0gW1t3ZWFwb24vbGFzZXIvc21hbGxfbGFzZXJfZmlyZV1dLApzb3VuZEhpdFZvbHVtZSA9IDIuMiwKc291bmRTdGFydCA9IFtbd2VhcG9uL2xhc2VyL3NtYWxsX2xhc2VyX2ZpcmUzXV0sCnNvdW5kU3RhcnRWb2x1bWUgPSAzLjUsCnNvdW5kVHJpZ2dlciA9IHRydWUsCnR1cnJldCA9IHRydWUsCndhdGVyV2VhcG9uID0gdHJ1ZSwKd2VhcG9uVHlwZSA9IFtbQ2Fubm9uXV0sCndlYXBvblZlbG9jaXR5ID0gMzQwLAp9LAp9LAp9LApzaGlwdG9ycHJhaWRlciA9IHsKc2Z4dHlwZXMgPSB7CmV4cGxvc2lvbmdlbmVyYXRvcnMgPSB7CltbY3VzdG9tOkhFQVZZSE9WRVJTX09OX0dST1VORF1dLApbW2N1c3RvbTpKQU5VU01VWlpMRV1dLApbW2N1c3RvbTpKQU5VU0JBQ0tdXSwKfSwKfSwKd2VhcG9ucyA9IHsKewpkZWYgPSBbW01JU1NJTEVdXSwKYmFkVGFyZ2V0Q2F0ZWdvcnkgPSBbW0ZJWEVEV0lOR11dLApvbmx5VGFyZ2V0Q2F0ZWdvcnkgPSBbW0ZJWEVEV0lORyBMQU5EIFNJTksgVFVSUkVUIFNISVAgU1dJTSBGTE9BVCBHVU5TSElQIEhPVkVSIFNVQl1dLAp9LAp9LAp3ZWFwb25EZWZzID0gewpNSVNTSUxFID0gewpuYW1lID0gW1tIZWF2eSBNaXNzaWxlIEJhdHRlcnldXSwKYXJlYU9mRWZmZWN0ID0gODAsCmNlZ1RhZyA9IFtbbWlzc2lsZXRyYWlseWVsbG93XV0sCmNyYXRlckJvb3N0ID0gMSwKY3JhdGVyTXVsdCA9IDEuNCwKY3VzdG9tUGFyYW1zID0gewpidXJzdCA9IFNoYXJlZC5CVVJTVF9SRUxJQUJMRSwKZm9yY2VfaWdub3JlX2dyb3VuZCA9IFtbMV1dLApsaWdodF9jYW1lcmFfaGVpZ2h0ID0gMzAwMCwKbGlnaHRfY29sb3IgPSBbWzEgMC41OCAwLjE3XV0sCmxpZ2h0X3JhZGl1cyA9IDIwMCwKfSwKZGFtYWdlID0gewpkZWZhdWx0ID0gMzIwLAp9LApmaXJlU3RhcnRlciA9IDcwLApmaXhlZGxhdW5jaGVyID0gdHJ1ZSwKZmxpZ2h0VGltZSA9IDMuMSwKaW1wdWxzZUJvb3N0ID0gMC43NSwKaW1wdWxzZUZhY3RvciA9IDAuMywKaW50ZXJjZXB0ZWRCeVNoaWVsZFR5cGUgPSAyLApsZWFkbGltaXQgPSAwLAptb2RlbCA9IFtbd2VwX21fZHJhZ29uc2ZhbmcuczNvXV0sCnByb2plY3RpbGVzID0gMiwKcmFuZ2UgPSA0NDAsCnJlbG9hZHRpbWUgPSAxMCwKc21va2VUcmFpbCA9IHRydWUsCnNvdW5kSGl0ID0gW1tleHBsb3Npb24vZXhfbWVkNV1dLApzb3VuZEhpdFZvbHVtZSA9IDgsCnNvdW5kU3RhcnQgPSBbW3dlYXBvbi9taXNzaWxlL3JhcGlkX3JvY2tldF9maXJlMl1dLApzb3VuZFN0YXJ0Vm9sdW1lID0gNywKc3RhcnRWZWxvY2l0eSA9IDE5MCwKdGV4dHVyZTIgPSBbW2xpZ2h0c21va2V0cmFpbF1dLAp0cmFja3MgPSB0cnVlLAp0cmFqZWN0b3J5SGVpZ2h0ID0gMC40LAp0dXJuUmF0ZSA9IDIxMDAwLAp0dXJyZXQgPSB0cnVlLAp3ZWFwb25BY2NlbGVyYXRpb24gPSA5MCwKd2VhcG9uVHlwZSA9IFtbTWlzc2lsZUxhdW5jaGVyXV0sCndlYXBvblZlbG9jaXR5ID0gMTgwLAp9LAp9LAp9LApzdHJpZGVyaHViID0gewpjdXN0b21QYXJhbXMgPSB7Cm5lZWRlZGxpbmsgPSAwLAp9LAptZXRhbGNvc3QgPSA0MDAwLApoZWFsdGggPSAxNTAwMCwKYnVpbGRvcHRpb25zID0gewpbW3NwaWRlcmNvbl1dLApbW3BsYW5lY29uXV0sCltbYXRoZW5hXV0sCltbc3RyaWRlcmFudGloZWF2eV1dLApbW3N0cmlkZXJzY29ycGlvbl1dLApbW3N0cmlkZXJkYW50ZV1dLApbW3N0cmlkZXJhcnR5XV0sCltbc3RyaWRlcmZ1bm5lbHdlYl1dLApbW3N0cmlkZXJiYW50aGFdXSwKW1tzdHJpZGVyZGV0cmltZW50XV0sCltbc2hpcGhlYXZ5YXJ0eV1dLApbW3NoaXBjYXJyaWVyXV0sCltbc3VidGFjbWlzc2lsZV1dLAp9LAp9LAp9", 
"tweakdefs" :
"bG9jYWwgRmFjdG9yeUNvblVuaXROYW1lcyA9IHsKWyJmYWN0b3J5Y2xvYWsiXSA9ICJjbG9ha2NvbiIsClsiZmFjdG9yeXNoaWVsZCJdID0gInNoaWVsZGNvbiIsClsiZmFjdG9yeXZlaCJdID0gInZlaGNvbiIsClsiZmFjdG9yeWhvdmVyIl0gPSAiaG92ZXJjb24iLApbImZhY3RvcnlndW5zaGlwIl0gPSAiZ3Vuc2hpcGNvbiIsClsiZmFjdG9yeXBsYW5lIl0gPSAicGxhbmVjb24iLApbImZhY3RvcnlzcGlkZXIiXSA9ICJzcGlkZXJjb24iLApbImZhY3RvcnlqdW1wIl0gPSAianVtcGNvbiIsClsiZmFjdG9yeXRhbmsiXSA9ICJ0YW5rY29uIiwKWyJmYWN0b3J5YW1waCJdID0gImFtcGhjb24iLApbImZhY3RvcnlzaGlwIl0gPSAic2hpcGNvbiIKfQpsb2NhbCBDb21WYWxpZFVuaXROYW1lcyA9IHsKWyJHdWFyZGlhbiBDb21tYW5kZXIiXSA9IHRydWUsClsiU3RyaWtlIENvbW1hbmRlciJdID0gdHJ1ZSwKWyJSZWNvbiBDb21tYW5kZXIiXSA9IHRydWUsClsiRW5naW5lZXIgQ29tbWFuZGVyIl0gPSB0cnVlCn0KbG9jYWwgRmFjdG9yeUNsb2FrUmFuZG9tQnVpbGRPcHRpb25zID0gewoiY2xvYWtyYWlkIiwKImNsb2Frc2tpcm0iLAoiY2xvYWtyaW90IiwKImNsb2FrYXNzYXVsdCIsCiJjbG9ha2FydHkiLAoiY2xvYWtoZWF2eXJhaWQiLAoiY2xvYWtzbmlwZSIsCiJjbG9ha2JvbWIiCn0KbG9jYWwgRmFjdG9yeUNsb2FrU3BlY2lmaWNCdWlsZE9wdGlvbnMgPSB7CiJjbG9ha2NvbiIsCiJjbG9ha2FhIiwKImNsb2FramFtbWVyIgp9CmxvY2FsIEZhY3RvcnlTaGllbGRSYW5kb21CdWlsZE9wdGlvbnMgPSB7CiJzaGllbGRyYWlkIiwKInNoaWVsZHNraXJtIiwKInNoaWVsZHJpb3QiLAoic2hpZWxkYXNzYXVsdCIsCiJzaGllbGRzY291dCIsCiJzaGllbGRmZWxvbiIsCiJzaGllbGRib21iIgp9CmxvY2FsIEZhY3RvcnlTaGllbGRTcGVjaWZpY0J1aWxkT3B0aW9ucyA9IHsKInNoaWVsZGNvbiIsCiJzaGllbGRhYSIsCiJzaGllbGRzaGllbGQiLAoic2hpZWxkYXJ0eSIKfQpsb2NhbCBGYWN0b3J5VmVoUmFuZG9tQnVpbGRPcHRpb25zID0gewoidmVocmFpZCIsCiJ2ZWhzdXBwb3J0IiwKInZlaHJpb3QiLAoidmVoYXNzYXVsdCIsCiJ2ZWhhcnR5IiwKInZlaHNjb3V0IiwKInZlaGhlYXZ5YXJ0eSIsCiJ2ZWhjYXB0dXJlIgp9CmxvY2FsIEZhY3RvcnlWZWhTcGVjaWZpY0J1aWxkT3B0aW9ucyA9IHsKInZlaGNvbiIsCiJ2ZWhhYSIKfQpsb2NhbCBGYWN0b3J5SG92ZXJSYW5kb21CdWlsZE9wdGlvbnMgPSB7CiJob3ZlcnJhaWQiLAoiaG92ZXJza2lybSIsCiJob3ZlcnJpb3QiLAoiaG92ZXJhc3NhdWx0IiwKImhvdmVyYXJ0eSIsCiJob3ZlcmhlYXZ5cmFpZCIsCiJob3ZlcmRlcHRoY2hhcmdlIgp9CmxvY2FsIEZhY3RvcnlIb3ZlclNwZWNpZmljQnVpbGRPcHRpb25zID0gewoiaG92ZXJjb24iLAoiaG92ZXJhYSIKfQpsb2NhbCBGYWN0b3J5R3Vuc2hpcFJhbmRvbUJ1aWxkT3B0aW9ucyA9IHsKImd1bnNoaXByYWlkIiwKImd1bnNoaXBza2lybSIsCiJndW5zaGlwYm9tYiIsCiJndW5zaGlwYXNzYXVsdCIsCiJndW5zaGlwaGVhdnlza2lybSIsCiJndW5zaGlwZW1wIiwKImd1bnNoaXBrcm93Igp9CmxvY2FsIEZhY3RvcnlHdW5zaGlwU3BlY2lmaWNCdWlsZE9wdGlvbnMgPSB7CiJndW5zaGlwY29uIiwKImd1bnNoaXBhYSIsCiJndW5zaGlwdHJhbnMiLAoiZ3Vuc2hpcGhlYXZ5dHJhbnMiCn0KbG9jYWwgRmFjdG9yeVBsYW5lUmFuZG9tQnVpbGRPcHRpb25zID0gewoibWFncGllIiwKImJvbWJlcnJpb3QiLAoiYm9tYmVycHJlYyIsCiJib21iZXJoZWF2eSIsCiJib21iZXJkaXNhcm0iLAoib2RpbiIKfQpsb2NhbCBGYWN0b3J5UGxhbmVTcGVjaWZpY0J1aWxkT3B0aW9ucyA9IHsKInBsYW5lZmlnaHRlciIsCiJwbGFuZWNvbiIsCiJwbGFuZWxpZ2h0c2NvdXQiLAoicGxhbmVoZWF2eWZpZ2h0ZXIiLAoicGxhbmVzY291dCIKfQpsb2NhbCBGYWN0b3J5U3BpZGVyUmFuZG9tQnVpbGRPcHRpb25zID0gewoic3BpZGVyc2NvdXQiLAoic3BpZGVyc2tpcm0iLAoic3BpZGVycmlvdCIsCiJzcGlkZXJhc3NhdWx0IiwKInNwaWRlcmVtcCIsCiJzcGlkZXJjcmFiZSIsCiJzcGlkZXJhbnRpaGVhdnkiCn0KbG9jYWwgRmFjdG9yeVNwaWRlclNwZWNpZmljQnVpbGRPcHRpb25zID0gewoic3BpZGVyY29uIiwKInNwaWRlcmFhIgp9CmxvY2FsIEZhY3RvcnlKdW1wUmFuZG9tQnVpbGRPcHRpb25zID0gewoianVtcHJhaWQiLAoianVtcHNraXJtIiwKImp1bXBhc3NhdWx0IiwKImp1bXBhcnR5IiwKImp1bXBzY291dCIsCiJqdW1wc3VtbyIsCiJqdW1wYm9tYiIKfQpsb2NhbCBGYWN0b3J5SnVtcFNwZWNpZmljQnVpbGRPcHRpb25zID0gewoianVtcGNvbiIsCiJqdW1wYmxhY2tob2xlIiwKImp1bXBhYSIKfQpsb2NhbCBGYWN0b3J5VGFua1JhbmRvbUJ1aWxkT3B0aW9ucyA9IHsKInRhbmtoZWF2eXJhaWQiLAoidGFua3Jpb3QiLAoidGFua2Fzc2F1bHQiLAoidGFua2FydHkiLAoidGFua3JhaWQiLAoidGFua2hlYXZ5YXNzYXVsdCIsCiJ0YW5raGVhdnlhcnR5IiwKfQpsb2NhbCBGYWN0b3J5VGFua1NwZWNpZmljQnVpbGRPcHRpb25zID0gewoidGFua2NvbiIsCiJ0YW5rYWEiCn0KbG9jYWwgRmFjdG9yeUFtcGhSYW5kb21CdWlsZE9wdGlvbnMgPSB7CiJhbXBocmFpZCIsCiJhbXBoZmxvYXRlciIsCiJhbXBocmlvdCIsCiJhbXBoc3VwcG9ydCIsCiJhbXBoaW1wdWxzZSIsCiJhbXBoYXNzYXVsdCIsCiJhbXBoYm9tYiIKfQpsb2NhbCBGYWN0b3J5QW1waFNwZWNpZmljQnVpbGRPcHRpb25zID0gewoiYW1waGNvbiIsCiJhbXBobGF1bmNoIiwKImFtcGhhYSIsCiJhbXBodGVsZSIKfQpsb2NhbCBGYWN0b3J5U2hpcFJhbmRvbUJ1aWxkT3B0aW9ucyA9IHsKInNoaXB0b3JwcmFpZGVyIiwKInNoaXBza2lybSIsCiJzaGlwcmlvdCIsCiJzaGlwYXNzYXVsdCIsCiJzaGlwYXJ0eSIsCiJzaGlwc2NvdXQiLAoic3VicmFpZGVyIgp9CmxvY2FsIEZhY3RvcnlTaGlwU3BlY2lmaWNCdWlsZE9wdGlvbnMgPSB7CiJzaGlwY29uIiwKInNoaXBhYSIKfQpsb2NhbCBDb21SYW5kb21CdWlsZE9wdGlvbnMgPSB7CiJmYWN0b3J5Y2xvYWsiLAoiZmFjdG9yeXNoaWVsZCIsCiJmYWN0b3J5dmVoIiwKImZhY3Rvcnlob3ZlciIsCiJmYWN0b3J5Z3Vuc2hpcCIsCiJmYWN0b3J5cGxhbmUiLAoiZmFjdG9yeXNwaWRlciIsCiJmYWN0b3J5anVtcCIsCiJmYWN0b3J5dGFuayIsCiJmYWN0b3J5YW1waCIsCiJmYWN0b3J5c2hpcCIKfQpsb2NhbCBDb21TcGVjaWZpY0J1aWxkT3B0aW9ucyA9IHsKInN0cmlkZXJodWIiLAoidHVycmV0bGFzZXIiLAoidHVycmV0bWlzc2lsZSIsCiJ0dXJyZXRyaW90IiwKInR1cnJldGVtcCIsCiJ0dXJyZXRnYXVzcyIsCiJ0dXJyZXRoZWF2eWxhc2VyIiwKInR1cnJldGFhY2xvc2UiLAoidHVycmV0YWFsYXNlciIsCiJ0dXJyZXRhYWZsYWsiLAoidHVycmV0YWFmYXIiLAoidHVycmV0YWFoZWF2eSIsCiJ0dXJyZXRpbXB1bHNlIiwKInR1cnJldHRvcnBlZG8iLAoidHVycmV0aGVhdnkiLAoidHVycmV0YW50aWhlYXZ5IiwKInN0YXRpY3NoaWVsZCIsCiJzdGF0aWNyYWRhciIsCiJzdGF0aWNqYW1tZXIiLAoic3RhdGljaGVhdnlyYWRhciIsCiJzdGF0aWNtaXNzaWxlc2lsbyIsCiJzdGF0aWNhbnRpbnVrZSIsCiJzdGF0aWNhcnR5IiwKInN0YXRpY2hlYXZ5YXJ0eSIsCiJzdGF0aWNudWtlIiwKInplbml0aCIsCiJyYXZlcGFydHkiLAoibWFobGF6ZXIiLAoic3RhdGljbWV4IiwKImVuZXJneXdpbmQiLAoiZW5lcmd5c29sYXIiLAoiZW5lcmd5Z2VvIiwKImVuZXJneWZ1c2lvbiIsCiJlbmVyZ3lzaW5ndSIsCiJzdGF0aWNzdG9yYWdlIiwKImVuZXJneXB5bG9uIiwKInN0YXRpY2NvbiIsCiJzdGF0aWNyZWFybSIKfQpsb2NhbCBmdW5jdGlvbiBzaHVmZmxlKHRibCkKbG9jYWwgbGVuID0gI3RibApmb3IgaSA9IGxlbiwgMiwgLTEgZG8KbG9jYWwgaiA9IG1hdGgucmFuZG9tKGkpCnRibFtpXSwgdGJsW2pdID0gdGJsW2pdLCB0YmxbaV0KZW5kCnJldHVybiB0YmwKZW5kCmxvY2FsIGZ1bmN0aW9uIGdldFJhbmRvbUZhY3RvcnlUeXBlKCkKbG9jYWwgZmFjdG9yeVR5cGVzID0gewoiZmFjdG9yeWNsb2FrIiwKImZhY3RvcnlzaGllbGQiLAoiZmFjdG9yeXZlaCIsCiJmYWN0b3J5aG92ZXIiLAoiZmFjdG9yeWd1bnNoaXAiLAoiZmFjdG9yeXBsYW5lIiwKImZhY3RvcnlzcGlkZXIiLAoiZmFjdG9yeWp1bXAiLAoiZmFjdG9yeXRhbmsiLAoiZmFjdG9yeWFtcGgiLAoiZmFjdG9yeXNoaXAiCn0KbG9jYWwgc2h1ZmZsZWQgPSBzaHVmZmxlKGZhY3RvcnlUeXBlcykKcmV0dXJuIHNodWZmbGVkWzFdCmVuZApsb2NhbCBmdW5jdGlvbiBhcHBseUJ1aWxkT3B0aW9uc1RvRmFjdG9yeShmYWN0b3J5VHlwZSkKbG9jYWwgc2VsZWN0ZWRPcHRpb25zID0ge30KaWYgZmFjdG9yeVR5cGUgPT0gImZhY3RvcnljbG9hayIgdGhlbgpsb2NhbCBzaHVmZmxlZE9wdGlvbnMgPSBzaHVmZmxlKEZhY3RvcnlDbG9ha1JhbmRvbUJ1aWxkT3B0aW9ucykKZm9yIF8sIG9wdGlvbiBpbiBpcGFpcnMoRmFjdG9yeUNsb2FrU3BlY2lmaWNCdWlsZE9wdGlvbnMpIGRvCnRhYmxlLmluc2VydChzZWxlY3RlZE9wdGlvbnMsIG9wdGlvbikKZW5kCnRhYmxlLmluc2VydChzZWxlY3RlZE9wdGlvbnMsIHNodWZmbGVkT3B0aW9uc1sxXSkKZWxzZWlmIGZhY3RvcnlUeXBlID09ICJmYWN0b3J5c2hpZWxkIiB0aGVuCmxvY2FsIHNodWZmbGVkT3B0aW9ucyA9IHNodWZmbGUoRmFjdG9yeVNoaWVsZFJhbmRvbUJ1aWxkT3B0aW9ucykKZm9yIF8sIG9wdGlvbiBpbiBpcGFpcnMoRmFjdG9yeVNoaWVsZFNwZWNpZmljQnVpbGRPcHRpb25zKSBkbwp0YWJsZS5pbnNlcnQoc2VsZWN0ZWRPcHRpb25zLCBvcHRpb24pCmVuZAp0YWJsZS5pbnNlcnQoc2VsZWN0ZWRPcHRpb25zLCBzaHVmZmxlZE9wdGlvbnNbMV0pCmVsc2VpZiBmYWN0b3J5VHlwZSA9PSAiZmFjdG9yeXZlaCIgdGhlbgpsb2NhbCBzaHVmZmxlZE9wdGlvbnMgPSBzaHVmZmxlKEZhY3RvcnlWZWhSYW5kb21CdWlsZE9wdGlvbnMpCmZvciBfLCBvcHRpb24gaW4gaXBhaXJzKEZhY3RvcnlWZWhTcGVjaWZpY0J1aWxkT3B0aW9ucykgZG8KdGFibGUuaW5zZXJ0KHNlbGVjdGVkT3B0aW9ucywgb3B0aW9uKQplbmQKdGFibGUuaW5zZXJ0KHNlbGVjdGVkT3B0aW9ucywgc2h1ZmZsZWRPcHRpb25zWzFdKQplbHNlaWYgZmFjdG9yeVR5cGUgPT0gImZhY3Rvcnlob3ZlciIgdGhlbgpsb2NhbCBzaHVmZmxlZE9wdGlvbnMgPSBzaHVmZmxlKEZhY3RvcnlIb3ZlclJhbmRvbUJ1aWxkT3B0aW9ucykKZm9yIF8sIG9wdGlvbiBpbiBpcGFpcnMoRmFjdG9yeUhvdmVyU3BlY2lmaWNCdWlsZE9wdGlvbnMpIGRvCnRhYmxlLmluc2VydChzZWxlY3RlZE9wdGlvbnMsIG9wdGlvbikKZW5kCnRhYmxlLmluc2VydChzZWxlY3RlZE9wdGlvbnMsIHNodWZmbGVkT3B0aW9uc1sxXSkKZWxzZWlmIGZhY3RvcnlUeXBlID09ICJmYWN0b3J5Z3Vuc2hpcCIgdGhlbgpsb2NhbCBzaHVmZmxlZE9wdGlvbnMgPSBzaHVmZmxlKEZhY3RvcnlHdW5zaGlwUmFuZG9tQnVpbGRPcHRpb25zKQpmb3IgXywgb3B0aW9uIGluIGlwYWlycyhGYWN0b3J5R3Vuc2hpcFNwZWNpZmljQnVpbGRPcHRpb25zKSBkbwp0YWJsZS5pbnNlcnQoc2VsZWN0ZWRPcHRpb25zLCBvcHRpb24pCmVuZAp0YWJsZS5pbnNlcnQoc2VsZWN0ZWRPcHRpb25zLCBzaHVmZmxlZE9wdGlvbnNbMV0pCmVsc2VpZiBmYWN0b3J5VHlwZSA9PSAiZmFjdG9yeXBsYW5lIiB0aGVuCmxvY2FsIHNodWZmbGVkT3B0aW9ucyA9IHNodWZmbGUoRmFjdG9yeVBsYW5lUmFuZG9tQnVpbGRPcHRpb25zKQpmb3IgXywgb3B0aW9uIGluIGlwYWlycyhGYWN0b3J5UGxhbmVTcGVjaWZpY0J1aWxkT3B0aW9ucykgZG8KdGFibGUuaW5zZXJ0KHNlbGVjdGVkT3B0aW9ucywgb3B0aW9uKQplbmQKdGFibGUuaW5zZXJ0KHNlbGVjdGVkT3B0aW9ucywgc2h1ZmZsZWRPcHRpb25zWzFdKQplbHNlaWYgZmFjdG9yeVR5cGUgPT0gImZhY3RvcnlzcGlkZXIiIHRoZW4KbG9jYWwgc2h1ZmZsZWRPcHRpb25zID0gc2h1ZmZsZShGYWN0b3J5U3BpZGVyUmFuZG9tQnVpbGRPcHRpb25zKQpmb3IgXywgb3B0aW9uIGluIGlwYWlycyhGYWN0b3J5U3BpZGVyU3BlY2lmaWNCdWlsZE9wdGlvbnMpIGRvCnRhYmxlLmluc2VydChzZWxlY3RlZE9wdGlvbnMsIG9wdGlvbikKZW5kCnRhYmxlLmluc2VydChzZWxlY3RlZE9wdGlvbnMsIHNodWZmbGVkT3B0aW9uc1sxXSkKZWxzZWlmIGZhY3RvcnlUeXBlID09ICJmYWN0b3J5anVtcCIgdGhlbgpsb2NhbCBzaHVmZmxlZE9wdGlvbnMgPSBzaHVmZmxlKEZhY3RvcnlKdW1wUmFuZG9tQnVpbGRPcHRpb25zKQpmb3IgXywgb3B0aW9uIGluIGlwYWlycyhGYWN0b3J5SnVtcFNwZWNpZmljQnVpbGRPcHRpb25zKSBkbwp0YWJsZS5pbnNlcnQoc2VsZWN0ZWRPcHRpb25zLCBvcHRpb24pCmVuZAp0YWJsZS5pbnNlcnQoc2VsZWN0ZWRPcHRpb25zLCBzaHVmZmxlZE9wdGlvbnNbMV0pCmVsc2VpZiBmYWN0b3J5VHlwZSA9PSAiZmFjdG9yeXRhbmsiIHRoZW4KbG9jYWwgc2h1ZmZsZWRPcHRpb25zID0gc2h1ZmZsZShGYWN0b3J5VGFua1JhbmRvbUJ1aWxkT3B0aW9ucykKZm9yIF8sIG9wdGlvbiBpbiBpcGFpcnMoRmFjdG9yeVRhbmtTcGVjaWZpY0J1aWxkT3B0aW9ucykgZG8KdGFibGUuaW5zZXJ0KHNlbGVjdGVkT3B0aW9ucywgb3B0aW9uKQplbmQKdGFibGUuaW5zZXJ0KHNlbGVjdGVkT3B0aW9ucywgc2h1ZmZsZWRPcHRpb25zWzFdKQplbHNlaWYgZmFjdG9yeVR5cGUgPT0gImZhY3RvcnlhbXBoIiB0aGVuCmxvY2FsIHNodWZmbGVkT3B0aW9ucyA9IHNodWZmbGUoRmFjdG9yeUFtcGhSYW5kb21CdWlsZE9wdGlvbnMpCmZvciBfLCBvcHRpb24gaW4gaXBhaXJzKEZhY3RvcnlBbXBoU3BlY2lmaWNCdWlsZE9wdGlvbnMpIGRvCnRhYmxlLmluc2VydChzZWxlY3RlZE9wdGlvbnMsIG9wdGlvbikKZW5kCnRhYmxlLmluc2VydChzZWxlY3RlZE9wdGlvbnMsIHNodWZmbGVkT3B0aW9uc1sxXSkKZWxzZWlmIGZhY3RvcnlUeXBlID09ICJmYWN0b3J5c2hpcCIgdGhlbgpsb2NhbCBzaHVmZmxlZE9wdGlvbnMgPSBzaHVmZmxlKEZhY3RvcnlTaGlwUmFuZG9tQnVpbGRPcHRpb25zKQpmb3IgXywgb3B0aW9uIGluIGlwYWlycyhGYWN0b3J5U2hpcFNwZWNpZmljQnVpbGRPcHRpb25zKSBkbwp0YWJsZS5pbnNlcnQoc2VsZWN0ZWRPcHRpb25zLCBvcHRpb24pCmVuZAp0YWJsZS5pbnNlcnQoc2VsZWN0ZWRPcHRpb25zLCBzaHVmZmxlZE9wdGlvbnNbMV0pCmZvciBuYW1lLCB1ZCBpbiBwYWlycyhVbml0RGVmcykgZG8KaWYKdWQubmFtZSA9PSAiTWFyaW5lciIgb3IKdWQubmFtZSA9PSAiSHVudGVyIiBvcgp1ZC5uYW1lID09ICJNaXN0cmFsIiBvcgp1ZC5uYW1lID09ICJDb3JzYWlyIiBvcgp1ZC5uYW1lID09ICJTaXJlbiIgb3IKdWQubmFtZSA9PSAiRW52b3kiIG9yCnVkLm5hbWUgPT0gIkN1dHRlciIgb3IKdWQubmFtZSA9PSAiWmVwaHlyIiBvcgp1ZC5uYW1lID09ICJTZWF3b2xmIiBvcgp1ZC5uYW1lID09ICJTaG9ndW4iIG9yCnVkLm5hbWUgPT0gIlJlZWYiIG9yCnVkLm5hbWUgPT0gIlNjeWxsYSIgdGhlbgp1ZC5tb3ZlbWVudGNsYXNzID0gW1tIT1ZFUjJdXQp1ZC5jdXN0b21wYXJhbXMgPSB7CnR1cm5hdGZ1bGxzcGVlZF9ob3ZlciA9IFtbMV1dCn0KZW5kCmlmIHVkLm5hbWUgPT0gIlNoaXB5YXJkIiB0aGVuCnVkLm1pbndhdGVyZGVwdGggPSAtIDIwMDAKZW5kCmVuZAplbmQKZm9yIG5hbWUsIHVkIGluIHBhaXJzKFVuaXREZWZzKSBkbwppZiBuYW1lID09IGZhY3RvcnlUeXBlIHRoZW4KdWQuYnVpbGRvcHRpb25zID0gc2VsZWN0ZWRPcHRpb25zCnVkLm1ldGFsY29zdCA9IDc3NwplbmQKZW5kCmVuZApsb2NhbCBmdW5jdGlvbiBhcHBseUJ1aWxkT3B0aW9uc1RvQ29uVW5pdChmYWN0b3J5VHlwZSkKbG9jYWwgY29uVW5pdE5hbWUgPSBGYWN0b3J5Q29uVW5pdE5hbWVzW2ZhY3RvcnlUeXBlXQppZiBub3QgY29uVW5pdE5hbWUgdGhlbgpyZXR1cm4KZW5kCmxvY2FsIHNlbGVjdGVkT3B0aW9ucyA9IHt9CmZvciBfLCBvcHRpb24gaW4gaXBhaXJzKENvbVNwZWNpZmljQnVpbGRPcHRpb25zKSBkbwp0YWJsZS5pbnNlcnQoc2VsZWN0ZWRPcHRpb25zLCBvcHRpb24pCmVuZAp0YWJsZS5pbnNlcnQoc2VsZWN0ZWRPcHRpb25zLCBmYWN0b3J5VHlwZSkKaWYgVW5pdERlZnNbY29uVW5pdE5hbWVdIHRoZW4KVW5pdERlZnNbY29uVW5pdE5hbWVdLmJ1aWxkb3B0aW9ucyA9IHNlbGVjdGVkT3B0aW9ucwplbmQKZW5kCmxvY2FsIGZ1bmN0aW9uIGFwcGx5QnVpbGRPcHRpb25zVG9Db21tYW5kZXJzKGZhY3RvcnlUeXBlKQpmb3IgbmFtZSwgdWQgaW4gcGFpcnMoVW5pdERlZnMpIGRvCmlmIENvbVZhbGlkVW5pdE5hbWVzW3VkLm5hbWVdIHRoZW4KbG9jYWwgc2h1ZmZsZWRPcHRpb25zID0gc2h1ZmZsZShDb21SYW5kb21CdWlsZE9wdGlvbnMpCmxvY2FsIHNlbGVjdGVkT3B0aW9ucyA9IHt9CmZvciBfLCBvcHRpb24gaW4gaXBhaXJzKENvbVNwZWNpZmljQnVpbGRPcHRpb25zKSBkbwp0YWJsZS5pbnNlcnQoc2VsZWN0ZWRPcHRpb25zLCBvcHRpb24pCmVuZAp0YWJsZS5pbnNlcnQoc2VsZWN0ZWRPcHRpb25zLCBmYWN0b3J5VHlwZSkKdWQuYnVpbGRvcHRpb25zID0gc2VsZWN0ZWRPcHRpb25zCmVuZAplbmQKZW5kCmxvY2FsIHJhbmRvbUZhY3RvcnlUeXBlID0gZ2V0UmFuZG9tRmFjdG9yeVR5cGUoKQphcHBseUJ1aWxkT3B0aW9uc1RvRmFjdG9yeShyYW5kb21GYWN0b3J5VHlwZSkKYXBwbHlCdWlsZE9wdGlvbnNUb0NvblVuaXQocmFuZG9tRmFjdG9yeVR5cGUpCmFwcGx5QnVpbGRPcHRpb25zVG9Db21tYW5kZXJzKHJhbmRvbUZhY3RvcnlUeXBlKQ=="
    }
}