gASV5LYAAAAAAACMDmRvY3V0aWxzLm5vZGVzlIwIZG9jdW1lbnSUk5QpgZR9lCiMCXJhd3NvdXJjZZSMAJSMCGNoaWxkcmVulF2UKGgAjAZ0YXJnZXSUk5QpgZR9lChoBWgGaAddlIwKYXR0cmlidXRlc5R9lCiMA2lkc5RdlIw8bW9kdWxlLWV0aGVyZXVtLm11aXJfZ2xhY2llci52bS5wcmVjb21waWxlZF9jb250cmFjdHMubW9kZXhwlGGMB2NsYXNzZXOUXZSMBW5hbWVzlF2UjAhkdXBuYW1lc5RdlIwIYmFja3JlZnOUXZSMBWlzbW9klIh1jAd0YWduYW1llGgJjAZzb3VyY2WUjH0vaG9tZS9ydW5uZXIvd29yay9leGVjdXRpb24tc3BlY3MvZXhlY3V0aW9uLXNwZWNzL2RvYy9hdXRvYXBpL2V0aGVyZXVtL211aXJfZ2xhY2llci92bS9wcmVjb21waWxlZF9jb250cmFjdHMvbW9kZXhwL2luZGV4LnJzdJSMBGxpbmWUSwGMBnBhcmVudJRoA4wJX2RvY3VtZW50lGgDdWKMD3NwaGlueC5hZGRub2Rlc5SMBWluZGV4lJOUKYGUfZQoaAVoBmgHXZRoDn2UKGgQXZRoE12UaBVdlGgXXZRoGV2UjAdlbnRyaWVzlF2UKIwEcGFpcpSMPW1vZHVsZTsgZXRoZXJldW0ubXVpcl9nbGFjaWVyLnZtLnByZWNvbXBpbGVkX2NvbnRyYWN0cy5tb2RleHCUaBJoBk50lGF1aBxoI2gdaB5oH0sCaCBoA2ghaAN1YmgAjAdzZWN0aW9ulJOUKYGUfZQoaAVoBmgHXZQoaACMBXRpdGxllJOUKYGUfZQoaAWMOkV0aGVyZXVtIFZpcnR1YWwgTWFjaGluZSAoRVZNKSBNT0RFWFAgUFJFQ09NUElMRUQgQ09OVFJBQ1SUaAddlGgAjARUZXh0lJOUjDpFdGhlcmV1bSBWaXJ0dWFsIE1hY2hpbmUgKEVWTSkgTU9ERVhQIFBSRUNPTVBJTEVEIENPTlRSQUNUlIWUgZR9lChoBWgGaCBoOmghaANoHYxcL2hvbWUvcnVubmVyL3dvcmsvZXhlY3V0aW9uLXNwZWNzL2V4ZWN1dGlvbi1zcGVjcy8udG94L2RvY3Mvc3RhZ2UwX291dC9hdXRv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KYGUfZQoaAVqPwMAAGgHXZRoP4wTZ2V0X211bHRfY29tcGxleGl0eZSFlIGUfZQoaAVoBmggakQDAABoIWgDaB1oRGgfSwB1YmFoDn2UKGgQXZRoE12UKGrFAgAAjAJweZSMBnB5LW9iapRlaBVdlGgXXZRoGV2UdWgcarkCAABoHU5oH05oIGpBAwAAdWJhaA59lChoEF2UaBNdlGgVXZRoF12UaBldlIwIaW50ZXJuYWyUiIwFcmVmaWSUjElldGhlcmV1bS5tdWlyX2dsYWNpZXIudm0ucHJlY29tcGlsZWRfY29udHJhY3RzLm1vZGV4cC5nZXRfbXVsdF9jb21wbGV4aXR5lIwIcmVmdGl0bGWUjElldGhlcmV1bS5tdWlyX2dsYWNpZXIudm0ucHJlY29tcGlsZWRfY29udHJhY3RzLm1vZGV4cC5nZXRfbXVsdF9jb21wbGV4aXR5lHVoHGhtaB1OaB9OaCBqPQMAAHViYWgOfZQoaBBdlGgTXZSMD2NoYW5nZS1yZXBsYWNlZJRhaBVdlGgXXZRoGV2UdWgcaGhoHYyOL2hvbWUvcnVubmVyL3dvcmsvZXhlY3V0aW9uLXNwZWNzL2V4ZWN1dGlvbi1zcGVjcy9kb2MvYXV0b2FwaS9ldGhlcmV1bS9tdWlyX2dsYWNpZXIvdm0vcHJlY29tcGlsZWRfY29udHJhY3RzL21vZGV4cC9pbmRleC5yc3Q6MzI6PGF1dG9zdW1tYXJ5PpRoH0sBaCBqOgMAAGghaAN1YmhpKYGUfZQoaAWMTjpvYmo6YGNvbXBsZXhpdHkgPGV0aGVyZXVtLmJlcmxpbi52bS5wcmVjb21waWxlZF9jb250cmFjdHMubW9kZXhwLmNvbXBsZXhpdHk+YJRoB12UaG4pgZR9lChoBWgGaAddlGq6AgAAKYGUfZQoaAVqaAMAAGgHXZRoP4wKY29tcGxleGl0eZSFlIGUfZQoaAVoBmggam0DAABoIWgDaB1oRGgfSwB1YmFoDn2UKGgQXZRoE12UKIwEeHJlZpSMAnB5lIwGcHktb2JqlGVoFV2UaBddlGgZXZR1aBxquQIAAGgdTmgfTmggamoDAAB1YmFoDn2UKGgQXZRoE12UaBVdlGgXXZRoGV2UjAhpbnRlcm5hbJSIjAVyZWZpZJSMOmV0aGVyZXVtLmJlcmxp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KGgFjFk6b2JqOmBHUVVBRERJVklTT1IgPGV0aGVyZXVtLm11aXJfZ2xhY2llci52bS5wcmVjb21waWxlZF9jb250cmFjdHMubW9kZXhwLkdRVUFERElWSVNPUj5gXJRoB12UKGhuKYGUfZQoaAVoBmgHXZRqugIAACmBlH2UKGgFjFg6b2JqOmBHUVVBRERJVklTT1IgPGV0aGVyZXVtLm11aXJfZ2xhY2llci52bS5wcmVjb21waWxlZF9jb250cmFjdHMubW9kZXhwLkdRVUFERElWSVNPUj5glGgHXZRoP4wMR1FVQURESVZJU09SlIWUgZR9lChoBWgGaCBq4wQAAGghaANoHWhEaB9LAHViYWgOfZQoaBBdlGgTXZQoasUCAACMAnB5lIwGcHktb2JqlGVoFV2UaBddlGgZXZR1aBxquQIAAGgdTmgfTmggauAEAAB1YmFoDn2UKGgQXZRoE12UaBVdlGgXXZRoGV2UjAhpbnRlcm5hbJSIjAVyZWZpZJSMQmV0aGVyZXVtLm11aXJfZ2xhY2llci52bS5wcmVjb21waWxlZF9jb250cmFjdHMubW9kZXhwLkdRVUFERElWSVNPUpSMCHJlZnRpdGxllIxCZXRoZXJldW0ubXVpcl9nbGFjaWVyLnZtLnByZWNvbXBpbGVkX2NvbnRyYWN0cy5tb2RleHAuR1FVQURESVZJU09SlHVoHGhtaB1OaB9OaCBq3AQAAHViaD9oBoWUgZR9lChoBWgGaCBq3AQAAGghaANoHWhEaB9LAHViZWgOfZQoaBBdlGgTXZRoFV2UaBddlGgZXZR1aBxoaGgdjI4vaG9tZS9ydW5uZXIvd29yay9leGVjdXRpb24tc3BlY3MvZXhlY3V0aW9uLXNwZWNzL2RvYy9hdXRvYXBpL2V0aGVyZXVtL211aXJfZ2xhY2llci92bS9wcmVjb21waWxlZF9jb250cmFjdHMvbW9kZXhwL2luZGV4LnJzdDo0MDo8YXV0b3N1bW1hcnk+lGgfSwFoIGrZBAAAdWJhaA59lChoEF2UaBNdlGgVXZRoF12UaBldlHVoHGqtAgAAaB1OaB9OaCBq1gQAAHViaq4CAAApgZR9lChoBWgGaAddlGhpKYGUfZQoaAVoBmgHXZRoDn2UKGgQXZRoE12UaBVdlGgXXZRoGV2UdWgcaGho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amIGAACMB29ianR5cGWUassGAACMCGRlc2N0eXBllGrLBgAAjAdub2luZGV4lIl1aBxqfwUAAGgdaB5oH0sAaCBqBAYAAGghaAN1YmrEBQAAKYGUfZQoaAVYrgUAAGRlZiBtb2RleHAoZXZtOiBFdm0pIC0+IE5vbmU6CiAgICBkYXRhID0gZXZtLm1lc3NhZ2UuZGF0YQoKICAgICMgR0FTCiAgICBiYXNlX2xlbmd0aCA9IFUyNTYuZnJvbV9iZV9ieXRlcyhidWZmZXJfcmVhZChkYXRhLCBVMjU2KDApLCBVMjU2KDMyKSkpCiAgICBleHBfbGVuZ3RoID0gVTI1Ni5mcm9tX2JlX2J5dGVzKGJ1ZmZlcl9yZWFkKGRhdGEsIFUyNTYoMzIpLCBVMjU2KDMyKSkpCiAgICBtb2R1bHVzX2xlbmd0aCA9IFUyNTYuZnJvbV9iZV9ieXRlcyhidWZmZXJfcmVhZChkYXRhLCBVMjU2KDY0KSwgVTI1NigzMikpKQoKICAgIGV4cF9zdGFydCA9IFUyNTYoOTYpICsgYmFzZV9sZW5ndGgKICAgIG1vZHVsdXNfc3RhcnQgPSBleHBfc3RhcnQgKyBleHBfbGVuZ3RoCgogICAgZXhwX2hlYWQgPSBVMjU2LmZyb21fYmVfYnl0ZXMoCiAgICAgICAgYnVmZmVyX3JlYWQoZGF0YSwgZXhwX3N0YXJ0LCBtaW4oVTI1NigzMiksIGV4cF9sZW5ndGgpKQogICAgKQogICAgaWYgZXhwX2xlbmd0aCA8IDMyOgogICAgICAgIGFkanVzdGVkX2V4cF9sZW5ndGggPSBVaW50KG1heCgwLCBleHBfaGVhZC5iaXRfbGVuZ3RoKCkgLSAxKSkKICAgIGVsc2U6CiAgICAgICAgYWRqdXN0ZWRfZXhwX2xlbmd0aCA9IFVpbnQoCiAgICAgICAgICAgIDggKiAoaW50KGV4cF9sZW5ndGgpIC0gMzIpICsgbWF4KDAsIGV4cF9oZWFkLmJpdF9sZW5ndGgoKSAtIDEpCiAgICAgICAgKQoKICAgIGNoYXJnZV9nYXMoCiAgICAgICAgZXZtLAogICAgICAgICgKICAgICAgICAgICAgZ2V0X211bHRfY29tcGxleGl0eShVaW50KG1heChiYXNlX2xlbmd0aCwgbW9kdWx1c19sZW5ndGgpKSkKICAgICAgICAgICAgKiBtYXgoYWRqdXN0ZWRfZXhwX2xlbmd0aCwgVWludCgxKSkKICAgICAgICApCiAgICAgICAgLy8gR1FVQURESVZJU09SLAogICAgKQoKICAgICMgT1BFUkFUSU9OCiAgICBpZiBiYXNlX2xlbmd0aCA9PSAwIGFuZCBtb2R1bHVzX2xlbmd0aCA9PSAwOgogICAgICAgIGV2bS5vdXRwdXQgPSBCeXRlcygpCiAgICAgICAgcmV0dXJuCgogICAgYmFzZSA9IFVpbnQuZnJvbV9iZV9ieXRlcyhidWZmZXJfcmVhZChkYXRhLCBVMjU2KDk2KSwgYmFzZV9sZW5ndGgpKQogICAgZXhwID0gVWludC5mcm9tX2JlX2J5dGVzKGJ1ZmZlcl9yZWFkKGRhdGEsIGV4cF9zdGFydCwgZXhwX2xlbmd0aCkpCiAgICBtb2R1bHVzID0gVWludC5mcm9tX2JlX2J5dGVzKAogICAgICAgIGJ1ZmZlcl9yZWFkKGRhdGEsIG1vZHVsdXNfc3RhcnQsIG1vZHVsdXNfbGVuZ3RoKQogICAgKQoKICAgIGlmIG1vZHVsdXMgPT0gMDoKICAgICAgICBldm0ub3V0cHV0ID0gQnl0ZXMoYiJceDAwIikgKiBtb2R1bHVzX2xlbmd0aAogICAgZWxzZToKICAgICAgICBldm0ub3V0cHV0ID0gVWludChwb3coYmFzZSwgZXhwLCBtb2R1bHVzKSkudG9fYnl0ZXMoCiAgICAgICAgICAgIG1vZHVsdXNfbGVuZ3RoLCAiYmlnIgogICAgICAgICkKlGgHXZQoaD9YjQEAAGRlZiBtb2RleHAoZXZtOiBFdm0pIC0+IE5vbmU6CiAgICBkYXRhID0gZXZtLm1lc3NhZ2UuZGF0YQoKICAgICMgR0FTCiAgICBiYXNlX2xlbmd0aCA9IFUyNTYuZnJvbV9iZV9ieXRlcyhidWZmZXJfcmVhZChkYXRhLCBVMjU2KDApLCBVMjU2KDMyKSkpCiAgICBleHBfbGVuZ3RoID0gVTI1Ni5mcm9tX2JlX2J5dGVzKGJ1ZmZlcl9yZWFkKGRhdGEsIFUyNTYoMzIpLCBVMjU2KDMyKSkpCiAgICBtb2R1bHVzX2xlbmd0aCA9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jAhmdW5jdGlvbpRlaBVdlGgXXZRoGV2UjAZkb21haW6UaocKAACMB29ianR5cGWUap4LAACMCGRlc2N0eXBllGqeCwAAjAdub2luZGV4lIl1aBxqfwUAAGgdTmgfTmggahYKAAB1YmrEBQAAKYGUfZQoaAVYMAIAAGRlZiBpdGVyYXRpb25zKGV4cG9uZW50X2xlbmd0aDogVTI1NiwgZXhwb25lbnRfaGVhZDogVWludCkgLT4gVWludDoKICAgIGlmIGV4cG9uZW50X2xlbmd0aCA8PSAzMiBhbmQgZXhwb25lbnRfaGVhZCA9PSAwOgogICAgICAgIGNvdW50ID0gVWludCgwKQogICAgZWxpZiBleHBvbmVudF9sZW5ndGggPD0gMzI6CiAgICAgICAgYml0X2xlbmd0aCA9IFVpbnQoZXhwb25lbnRfaGVhZC5iaXRfbGVuZ3RoKCkpCgogICAgICAgIGlmIGJpdF9sZW5ndGggPiAwOgogICAgICAgICAgICBiaXRfbGVuZ3RoIC09IDEKCiAgICAgICAgY291bnQgPSBiaXRfbGVuZ3RoCiAgICBlbHNlOgogICAgICAgIGxlbmd0aF9wYXJ0ID0gOCAqIChVaW50KGV4cG9uZW50X2xlbmd0aCkgLSAzMikKICAgICAgICBiaXRzX3BhcnQgPSBVaW50KGV4cG9uZW50X2hlYWQuYml0X2xlbmd0aCgpKQoKICAgICAgICBpZiBiaXRzX3BhcnQgPiAwOgogICAgICAgICAgICBiaXRzX3BhcnQgLT0gMQoKICAgICAgICBjb3VudCA9IGxlbmd0aF9wYXJ0ICsgYml0c19wYXJ0CgogICAgcmV0dXJuIG1heChjb3VudCwgVWludCgxKSkKlGgHXZRoP1gwAgAAZGVmIGl0ZXJhdGlvbnMoZXhwb25lbnRfbGVuZ3RoOiBVMjU2LCBleHBvbmVudF9oZWFkOiBVaW50KSAtPiBVaW50OgogICAgaWYgZXhwb25lbnRfbGVuZ3RoIDw9IDMyIGFuZCBleHBvbmVudF9oZWFkID09IDA6CiAgICAgICAgY291bnQgPSBVaW50KDApCiAgICBlbGlmIGV4cG9uZW50X2xlbmd0aCA8PSAzMjoKICAgICAgICBiaXRfbGVuZ3RoID0gVWludChleHBv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CwAAdWJqxAUAACmBlH2UKGgFWHgBAABkZWYgZ2FzX2Nvc3QoCiAgICBiYXNlX2xlbmd0aDogVTI1NiwKICAgIG1vZHVsdXNfbGVuZ3RoOiBVMjU2LAogICAgZXhwb25lbnRfbGVuZ3RoOiBVMjU2LAogICAgZXhwb25lbnRfaGVhZDogVWludCwKKSAtPiBVaW50OgogICAgbXVsdGlwbGljYXRpb25fY29tcGxleGl0eSA9IGNvbXBsZXhpdHkoYmFzZV9sZW5ndGgsIG1vZHVsdXNfbGVuZ3RoKQogICAgaXRlcmF0aW9uX2NvdW50ID0gaXRlcmF0aW9ucyhleHBvbmVudF9sZW5ndGgsIGV4cG9uZW50X2hlYWQpCiAgICBjb3N0ID0gbXVsdGlwbGljYXRpb25fY29tcGxleGl0eSAqIGl0ZXJhdGlvbl9jb3VudAogICAgY29zdCAvLz0gR1FVQURESVZJU09SCiAgICByZXR1cm4gbWF4KFVpbnQoMjAwKSwgY29zdCkKlGgHXZRoP1h4AQAAZGVmIGdhc19jb3N0KAogICAgYmFzZV9sZW5ndGg6IFUyNTYsCiAgICBtb2R1bHVzX2xlbmd0aDogVTI1NiwKICAgIGV4cG9uZW50X2xlbmd0aDogVTI1NiwKICAgIGV4cG9uZW50X2hlYWQ6IFVpbnQsCikgLT4gVWludDoKICAgIG11bHRpcGxpY2F0aW9uX2NvbXBsZXhpdHkgPSBjb21wbGV4aXR5KGJhc2VfbGVuZ3RoLCBtb2R1bHVzX2xlbmd0aCkKICAgIGl0ZXJhdGlvbl9jb3VudCA9IGl0ZXJhdGlvbnMoZXhwb25lbnRfbGVuZ3RoLCBleHBvbmVudF9oZWFkKQogICAgY29zdCA9IG11bHRpcGxpY2F0aW9uX2NvbXBsZXhpdHkgKiBpdGVyYXRpb25fY291bnQKICAgIGNvc3QgLy89IEdRVUFERElWSVNPUgogICAgcmV0dXJuIG1heChVaW50KDIwMCksIGNvc3QpCpSFlIGUfZQoaAVoBmggatUNAABoIWgDaB1oRGgfSwB1YmFoDn2UKGgQXZRoE12UaBVdlGgXXZRoGV2UjAZzb3VyY2WUjGgvaG9tZS9ydW5uZXIvd29yay9leGVjdXRpb24tc3BlY3MvZXhlY3V0aW9uLXNwZWNzL3NyYy9ldGhlcmV1bS9iZXJsaW4vdm0vcHJlY29tcGlsZWRfY29udHJhY3RzL21vZGV4cC5weZSMCXhtbDpzcGFjZZRqRAIAAIwFZm9yY2WUiYwIbGFuZ3VhZ2WUjAZweXRob26UjA5oaWdobGlnaHRfYXJnc5R9lGoMCgAASwFzjAdsaW5lbm9zlIl1aBxqwwUAAGgdamUIAABoH0uQaCBqxQsAAHViZWgOfZQoaBBdlGrbAQAAYWgTXZSMEmNoYW5nZS1yZXBsYWNlbWVudJRhaBVdlIwIZ2FzX2Nvc3SUYWgXXZRoGV2UdWgcaDNoHWplCAAAaB9LfGggak4FAABoIWgDdWJlaA59lChoEF2Uag8BAABhaBNdlGgVXZSMDm1vZHVsZSBkZXRhaWxzlGFoF12UaBldlHVoHGgzaB1oHmgfSypoIGg1aCFoA3ViZWgOfZQoaBBdlIw4ZXRoZXJldW0tdmlydHVhbC1tYWNoaW5lLWV2bS1tb2RleHAtcHJlY29tcGlsZWQtY29udHJhY3SUYWgTXZRoFV2UjDpldGhlcmV1bSB2aXJ0dWFsIG1hY2hpbmUgKGV2bSkgbW9kZXhwIHByZWNvbXBpbGVkIGNvbnRyYWN0lGFoF12UaBldlHVoHGgzaB1oHmgfSwRoIGgDaCFoA3ViZWgOfZQoaBBdlGgTXZRoFV2UaBddlGgZXZSMBnNvdXJjZZRoRHVoHGgBjA5jdXJyZW50X3NvdXJjZZRoRIwMY3VycmVudF9saW5llEsAjAhzZXR0aW5nc5SMEWRvY3V0aWxzLmZyb250ZW5klIwGVmFsdWVzlJOUKYGUfZQojAxyZXBvcnRfbGV2ZWyUSwKMCmhhbHRfbGV2ZWyUSwSMEWV4aXRfc3RhdHVzX2xldmVslEsFjAVkZWJ1Z5ROjA53YXJuaW5nX3N0cmVhbZROjAl0cmFjZWJhY2uUTowPb3V0cHV0X2VuY29kaW5nlIwFdXRmLTiUjB1vdXRwdXRfZW5jb2RpbmdfZXJyb3JfaGFuZGxlcpSMEXhtbGNoYXJyZWZyZXBsYWNllIwOZXJyb3JfZW5jb2RpbmeUjAV1dGYtOJSMHGVycm9yX2VuY29kaW5nX2Vycm9yX2hhbmRsZXKUjBBiYWNrc2xhc2hyZXBsYWNllIwTcmVjb3JkX2RlcGVuZGVuY2llc5SMDmRvY3V0aWxzLnV0aWxzlIwORGVwZW5kZW5jeUxpc3SUk5QpgZR9lCiMBGxpc3SUXZSMBGZpbGWUTnVijAZjb25maWeUTowNZHVtcF9zZXR0aW5nc5ROjA5kdW1wX2ludGVybmFsc5ROjA9kdW1wX3RyYW5zZm9ybXOUTowPZHVtcF9wc2V1ZG9feG1slE6MEGV4cG9zZV9pbnRlcm5hbHOUTowOc3RyaWN0X3Zpc2l0b3KUTowPX2Rpc2FibGVfY29uZmlnlE6MB19zb3VyY2WUTowMX2Rlc3RpbmF0aW9ulIxMZG9jL2RpZmZzL211aXJfZ2xhY2llcl9iZXJsaW4vdm0vcHJlY29tcGlsZWRfY29udHJhY3RzL21vZGV4cC9pbmRleC5waWNrbGU2NJSMDV9jb25maWdfZmlsZXOUXZSMEWxpbmVfbGVuZ3RoX2xpbWl0lE0QJ4wJdGFiX3dpZHRolEsIjBBzeW50YXhfaGlnaGxpZ2h0lIwEbG9uZ5SMDHNtYXJ0X3F1b3Rlc5SJjBNzbWFydHF1b3Rlc19sb2NhbGVzlE6MHWNoYXJhY3Rlcl9sZXZlbF9pbmxpbmVfbWFya3VwlImMBndyaXRlcpSMA3htbJSMGWNvbXBhcmVfc2VjdGlvbnNfYnlfbmFtZXOUSwGMDGR1bXBfcnN0ZGlmZpROjAVfYm90aJR9lChoOE6MCWdlbmVyYXRvcpROjAlkYXRlc3RhbXCUTowLc291cmNlX2xpbmuUTowKc291cmNlX3VybJROjA10b2NfYmFja2xpbmtzlGqtAgAAjBJmb290bm90ZV9iYWNrbGlua3OUSwGMDXNlY3RudW1feGZvcm2USwGMDmRvY3RpdGxlX3hmb3JtlEsBjA1kb2NpbmZvX3hmb3JtlEsBjBJzZWN0c3VidGl0bGVfeGZvcm2USwCMDnN0cmlwX2NvbW1lbnRzlE6MDmlucHV0X2VuY29kaW5nlE6MHGlucHV0X2VuY29kaW5nX2Vycm9yX2hhbmRsZXKUjAZzdHJpY3SUjA1sYW5ndWFnZV9jb2RllIwCZW6UjA5wZXBfcmVmZXJlbmNlc5ROjAxwZXBfYmFzZV91cmyUjB9odHRwOi8vd3d3LnB5dGhvbi5vcmcvZGV2L3BlcHMvlIwVcGVwX2ZpbGVfdXJsX3RlbXBsYXRllIwIcGVwLSUwNGSUjA5yZmNfcmVmZXJlbmNlc5ROjAxyZmNfYmFzZV91cmyUjBtodHRwOi8vdG9vbHMuaWV0Zi5vcmcvaHRtbC+UjB10cmltX2Zvb3Rub3RlX3JlZmVyZW5jZV9zcGFjZZROjBZmaWxlX2luc2VydGlvbl9lbmFibGVklEsBjAtyYXdfZW5hYmxlZJRLAYwOYXV0b19pZF9wcmVmaXiUjAJpZJSMCWlkX3ByZWZpeJRoBowbc3RyaXBfZWxlbWVudHNfd2l0aF9jbGFzc2VzlE6MDXN0cmlwX2NsYXNzZXOUTnWMBGJvdGiUfZSMCl9vcHRpb25zVG+UjAVfYm90aJSMC19vbGRfc291cmNllIxPL2hvbWUvcnVubmVyL3dvcmsvZXhlY3V0aW9uLXNwZWNzL2V4ZWN1dGlvbi1zcGVjcy8udG94L2RvY3Mvc3RhZ2UwX291dC9hdXRvYXBpL5SMC19uZXdfc291cmNllIwJZG9jL2RpZmZzlGpRDgAAalIOAACMFmlnbm9yZV9pbl9zZWN0aW9uX25hbWWUXZQojARtdWlylIwHZ2xhY2llcpSMBmJlcmxpbpRldWKMCHJlcG9ydGVylE6MEGluZGlyZWN0X3RhcmdldHOUXZSMEXN1YnN0aXR1dGlvbl9kZWZzlH2UjBJzdWJzdGl0dXRpb25fbmFtZXOUfZSMCHJlZm5hbWVzlH2UjAZyZWZpZHOUfZSMB25hbWVpZHOUfZSMCW5hbWV0eXBlc5R9lGgQfZSMDWZvb3Rub3RlX3JlZnOUfZSMDWNpdGF0aW9uX3JlZnOUfZSMDWF1dG9mb290bm90ZXOUXZSMEWF1dG9mb290bm90ZV9yZWZzlF2UjBBzeW1ib2xfZm9vdG5vdGVzlF2UjBRzeW1ib2xfZm9vdG5vdGVfcmVmc5RdlIwJZm9vdG5vdGVzlF2UjAljaXRhdGlvbnOUXZSMEmF1dG9mb290bm90ZV9zdGFydJRLAYwVc3ltYm9sX2Zvb3Rub3RlX3N0YXJ0lEsAjAppZF9jb3VudGVylIwLY29sbGVjdGlvbnOUjAdDb3VudGVylJOUfZSFlFKUjA5wYXJzZV9tZXNzYWdlc5RdlIwSdHJhbnNmb3JtX21lc3NhZ2VzlF2UjAt0cmFuc2Zvcm1lcpROjAtpbmNsdWRlX2xvZ5RdlIwKZGVjb3JhdGlvbpROaCFoA3ViLg==