gAJjZG9jdXRpbHMubm9kZXMKZG9jdW1lbnQKcQEpgXECfXEDKFUJbmFtZXR5cGVzcQR9cQUoWA8AAABnZXR0aW5nLXN0YXJ0ZWRxBohYCgAAAHVzaW5nIG1vY2txB05YDwAAAG1vY2tpbmcgY2xhc3Nlc3EITlgjAAAAc2lkZSBlZmZlY3QgZnVuY3Rpb25zIGFuZCBpdGVyYWJsZXNxCU5YGQAAAGdldHRpbmcgc3RhcnRlZCB3aXRoIG1vY2txCk5YEAAAAHBhdGNoIGRlY29yYXRvcnNxC05YFQAAAG1vY2sgcGF0Y2hpbmcgbWV0aG9kc3EMTlgiAAAAbW9jayBmb3IgbWV0aG9kIGNhbGxzIG9uIGFuIG9iamVjdHENTlgSAAAAdHJhY2tpbmcgYWxsIGNhbGxzcQ5OWBEAAABuYW1pbmcgeW91ciBtb2Nrc3EPTlgkAAAAc2V0dGluZyByZXR1cm4gdmFsdWVzIGFuZCBhdHRyaWJ1dGVzcRBOWCcAAABjcmVhdGluZyBhIG1vY2sgZnJvbSBhbiBleGlzdGluZyBvYmplY3RxEU5YHQAAAHJhaXNpbmcgZXhjZXB0aW9ucyB3aXRoIG1vY2tzcRJOdVURc3Vic3RpdHV0aW9uX2RlZnNxE31xFFUOcGFyc2VfbWVzc2FnZXNxFV1xFlUOY3VycmVudF9zb3VyY2VxF05VCmRlY29yYXRpb25xGE5VEmF1dG9mb290bm90ZV9zdGFydHEZSwFVB25hbWVpZHNxGn1xGyhoBlUPZ2V0dGluZy1zdGFydGVkcRxoB1UKdXNpbmctbW9ja3EdaAhVD21vY2tpbmctY2xhc3Nlc3EeaAlVI3NpZGUtZWZmZWN0LWZ1bmN0aW9ucy1hbmQtaXRlcmFibGVzcR9oClUZZ2V0dGluZy1zdGFydGVkLXdpdGgtbW9ja3EgaAtVEHBhdGNoLWRlY29yYXRvcnNxIWgMVRVtb2NrLXBhdGNoaW5nLW1ldGhvZHNxImgNVSJtb2NrLWZvci1tZXRob2QtY2FsbHMtb24tYW4tb2JqZWN0cSNoDlUSdHJhY2tpbmctYWxsLWNhbGxzcSRoD1URbmFtaW5nLXlvdXItbW9ja3NxJWgQVSRzZXR0aW5nLXJldHVybi12YWx1ZXMtYW5kLWF0dHJpYnV0ZXNxJmgRVSdjcmVhdGluZy1hLW1vY2stZnJvbS1hbi1leGlzdGluZy1vYmplY3RxJ2gSVR1yYWlzaW5nLWV4Y2VwdGlvbnMtd2l0aC1tb2Nrc3EodVUIY2hpbGRyZW5xKV1xKmNkb2N1dGlscy5ub2RlcwpzZWN0aW9uCnErKYFxLH1xLShVCXJhd3NvdXJjZXEuVQBVBnBhcmVudHEvaAJVBnNvdXJjZXEwY2RvY3V0aWxzLm5vZGVzCnJlcHJ1bmljb2RlCnExWCYAAAAvY29tcGlsZS9tb2NrL2RvY3MvZ2V0dGluZy1zdGFydGVkLnR4dHEyhYFxM31xNGJVB3RhZ25hbWVxNVUHc2VjdGlvbnE2VQphdHRyaWJ1dGVzcTd9cTgoVQhkdXBuYW1lc3E5XXE6VQdjbGFzc2VzcTtdcTxVCGJhY2tyZWZzcT1dcT5VA2lkc3E/XXFAaCBhVQVuYW1lc3FBXXFCaAphdVUEbGluZXFDSwNVCGRvY3VtZW50cURoAmgpXXFFKGNkb2N1dGlscy5ub2Rlcwp0aXRsZQpxRimBcUd9cUgoaC5YGQAAAEdldHRpbmcgU3RhcnRlZCB3aXRoIE1vY2txSWgvaCxoMGgzaDVVBXRpdGxlcUpoN31xSyhoOV1xTGg7XXFNaD1dcU5oP11xT2hBXXFQdWhDSwNoRGgCaCldcVFjZG9jdXRpbHMubm9kZXMKVGV4dApxUlgZAAAAR2V0dGluZyBTdGFydGVkIHdpdGggTW9ja3FThYFxVH1xVShoLmhJaC9oR3ViYXViY2RvY3V0aWxzLm5vZGVzCnRhcmdldApxVimBcVd9cVgoaC5YFAAAAC4uIF9nZXR0aW5nLXN0YXJ0ZWQ6cVloL2gsaDBoM2g1VQZ0YXJnZXRxWmg3fXFbKGg5XXFcaDtdcV1oPV1xXmg/XXFfaBxhaEFdcWBoBmF1aENLBWhEaAJoKV1xYXViY3NwaGlueC5hZGRub2RlcwppbmRleApxYimBcWN9cWQoaC5VAGgvaCxoMGgzaDVVBWluZGV4cWVoN31xZihoP11xZ2g9XXFoaDldcWloO11xamhBXXFrVQdlbnRyaWVzcWxdcW0oVQZzaW5nbGVxblgPAAAAR2V0dGluZyBTdGFydGVkVQdpbmRleC0wcW9VAHRxcGFVBmlubGluZXFxiXVoQ0sIaERoAmgpXXFydWJoVimBcXN9cXQoaC5VAGgvaCxoMGgzaDVoWmg3fXF1KGg5XXF2aDtdcXdoPV1xeGg/XXF5aG9haEFdcXp1aENLCGhEaAJoKV1xe3ViY2RvY3V0aWxzLm5vZGVzCmNvbW1lbnQKcXwpgXF9fXF+KGguWPYAAABjbGFzcyBTb21lQ2xhc3Mob2JqZWN0KToKICAgIHN0YXRpY19tZXRob2QgPSBOb25lCiAgICBjbGFzc19tZXRob2QgPSBOb25lCiAgICBhdHRyaWJ1dGUgPSBOb25lCgpzeXMubW9kdWxlc1sncGFja2FnZSddID0gcGFja2FnZSA9IE1vY2sobmFtZT0ncGFja2FnZScpCnN5cy5tb2R1bGVzWydwYWNrYWdlLm1vZHVsZSddID0gbW9kdWxlID0gcGFja2FnZS5tb2R1bGUKc3lzLm1vZHVsZXNbJ21vZHVsZSddID0gcGFja2FnZS5tb2R1bGVxf2gvaCxoMGgzaDVVB2NvbW1lbnRxgGg3fXGBKFUMdGVzdG5vZGV0eXBlcYJYCQAAAHRlc3RzZXR1cHGDVQl4bWw6c3BhY2VxhFUIcHJlc2VydmVxhWg/XXGGaD1dcYdoOV1xiGg7XXGJaEFdcYpVBmdyb3Vwc3GLXXGMVQdkZWZhdWx0cY1hVQdvcHRpb25zcY59cY91aENLCWhEaAJoKV1xkGhSWPYAAABjbGFzcyBTb21lQ2xhc3Mob2JqZWN0KToKICAgIHN0YXRpY19tZXRob2QgPSBOb25lCiAgICBjbGFzc19tZXRob2QgPSBOb25lCiAgICBhdHRyaWJ1dGUgPSBOb25lCgpzeXMubW9kdWxlc1sncGFja2FnZSddID0gcGFja2FnZSA9IE1vY2sobmFtZT0ncGFja2FnZScpCnN5cy5tb2R1bGVzWydwYWNrYWdlLm1vZHVsZSddID0gbW9kdWxlID0gcGFja2FnZS5tb2R1bGUKc3lzLm1vZHVsZXNbJ21vZHVsZSddID0gcGFja2FnZS5tb2R1bGVxkYWBcZJ9cZMoaC5VAGgvaH11YmF1YmgrKYFxlH1xlShoLlUAaC9oLGgwaDNoNWg2aDd9cZYoaDldcZdoO11xmGg9XXGZaD9dcZpoHWFoQV1xm2gHYXVoQ0sWaERoAmgpXXGcKGhGKYFxnX1xnihoLlgK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b3JrIHRvIHByb3ZpZGUgdGhlICdjbG9zZScgbWV0aG9kIG9uIG91ciBtb2NrLgpBY2Nlc3NpbmcgY2xvc2UgY3JlYXRlcyBpdC4gU28sIGlmICdjbG9zZScgaGFzbid0IGFscmVhZHkgYmVlbiBjYWxsZWQgdGhlbgphY2Nlc3NpbmcgaXQgaW4gdGhlIHRlc3Qgd2lsbCBjcmVhdGUgaXQsIGJ1dCA6bWV0aDpgfk1vY2suYXNzZXJ0X2NhbGxlZF93aXRoYAp3aWxsIHJhaXNlIGEgZmFpbHVyZSBleGNlcHRpb24uclMDAABoL2qqAgAAaDBoM2g1aMRoN31yVAMAAChoOV1yVQMAAGg7XXJWAwAAaD1dclcDAABoP11yWAMAAGhBXXJZAwAAdWhDS2doRGgCaCldcloDAAAoaFJYwAAAAFdlIGRvbid0IGhhdmUgdG8gZG8gYW55IHdvcmsgdG8gcHJvdmlkZSB0aGUgJ2Nsb3NlJyBtZXRob2Qgb24gb3VyIG1vY2suCkFjY2Vzc2luZyBjbG9zZSBjcmVhdGVzIGl0LiBTbywgaWYgJ2Nsb3NlJyBoYXNuJ3QgYWxyZWFkeSBiZWVuIGNhbGxlZCB0aGVuCmFjY2Vzc2luZyBpdCBpbiB0aGUgdGVzdCB3aWxsIGNyZWF0ZSBpdCwgYnV0IHJbAwAAhYFyXAMAAH1yXQMAAChoLljAAAAAV2UgZG9uJ3QgaGF2ZSB0byBkbyBhbnkgd29yayB0byBwcm92aWRlIHRoZSAnY2xvc2UnIG1ldGhvZCBvbiBvdXIgbW9jay4KQWNjZXNzaW5nIGNsb3NlIGNyZWF0ZXMgaXQuIFNvLCBpZiAnY2xvc2UnIGhhc24ndCBhbHJlYWR5IGJlZW4gY2FsbGVkIHRoZW4KYWNjZXNzaW5nIGl0IGluIHRoZSB0ZXN0IHdpbGwgY3JlYXRlIGl0LCBidXQgcl4DAABoL2pRAwAAdWJo0CmBcl8DAAB9cmADAAAoaC5YIAAAADptZXRoOmB+TW9jay5hc3NlcnRfY2FsbGVkX3dpdGhgcmEDAABoL2pRAwAAaDBoM2g1aNRoN31yYgMAAChVB3JlZnR5cGVyYwMAAFgEAAAAbWV0aHJkAwAAaNiJaNlYFwAAAE1vY2suYXNzZXJ0X2NhbGxlZF93aXRocmUDAABV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IG1vY2subW9ja19jYWxscwpbY2FsbC5tZXRob2QoKSwgY2FsbC5hdHRyaWJ1dGUubWV0aG9kKDEwLCB4PTUzKV1yxwQAAGgvaoAEAABoMGgzaDVqSAEAAGg3fXLIBAAAKFUMdGVzdG5vZGV0eXBlcskEAABYBwAAAGRvY3Rlc3RyygQAAGiEaIVoP11yywQAAGg9XXLMBAAAaDldcs0EAABoO11yzgQAAGhBXXLPBAAAVQZncm91cHNy0AQAAF1y0QQAAGiNYWiOfXLSBAAAdWhDS55oRGgCaCldctMEAABoUljvAAAAPj4+IG1vY2sgPSBNYWdpY01vY2soKQo+Pj4gbW9jay5tZXRob2QoKQo8TWFnaWNNb2NrIG5hbWU9J21vY2subWV0aG9kKCknIGlkPScuLi4nPgo+Pj4gbW9jay5hdHRyaWJ1dGUubWV0aG9kKDEwLCB4PTUzKQo8TWFnaWNNb2NrIG5hbWU9J21vY2suYXR0cmlidXRlLm1ldGhvZCgpJyBpZD0nLi4uJz4KPj4+IG1vY2subW9ja19jYWxscwpbY2FsbC5tZXRob2QoKSwgY2FsbC5hdHRyaWJ1dGUubWV0aG9kKDEwLCB4PTUzKV1y1AQAAIWBctUEAAB9ctYEAAAoaC5VAGgvasUEAAB1YmF1YmjAKYFy1wQAAH1y2AQAAChoLlgpAQAASWYgeW91IG1ha2UgYW4gYXNzZXJ0aW9uIGFib3V0IGBtb2NrX2NhbGxzYCBhbmQgYW55IHVuZXhwZWN0ZWQgbWV0aG9kcwpoYXZlIGJlZW4gY2FsbGVkLCB0aGVuIHRoZSBhc3NlcnRpb24gd2lsbCBmYWlsLiBUaGlzIGlzIHVzZWZ1bCBiZWNhdXNlIGFzIHdlbGwKYXMgYXNzZXJ0aW5nIHRoYXQgdGhlIGNhbGxzIHlvdSBleHBlY3RlZCBoYXZlIGJlZW4gbWFkZSwgeW91IGFyZSBhbHNvIGNoZWNraW5nCnRoYXQgdGhleSB3ZXJlIG1hZGUgaW4gdGhlIHJpZ2h0IG9yZGVyIGFuZCB3aXRoIG5vIGFkZGl0aW9uYWwgY2FsbHM6ctkEAABoL2qABAAAaDBoM2g1aMRoN31y2gQAAChoOV1y2wQAAGg7XXLcBAAAaD1dct0EAABoP11y3gQAAGhBXXLfBAAAdWhDS6ho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Lm1vY2tfY2FsbHMKW2NhbGwuY29ubmVjdGlvbi5jdXJzb3IoKSwgY2FsbC5jb25uZWN0aW9uLmN1cnNvcigpLmV4ZWN1dGUoJ1NFTEVDVCAxJyldCj4+PiBtb2NrLm1vY2tfY2FsbHMgPT0gZXhwZWN0ZWQKVHJ1ZXIoBgAAaC9qRgUAAGgwaDNoNWpIAQAAaDd9cikGAAAoVQx0ZXN0bm9kZXR5cGVyKgYAAFgHAAAAZG9jdGVzdHIrBgAAaIRohWg/XXIsBgAAaD1dci0GAABoOV1yLgYAAGg7XXIvBgAAaEFdcjAGAABVBmdyb3Vwc3IxBgAAXXIyBgAAaI1haI59cjMGAAB1aENL5WhEaAJoKV1yNAYAAGhSWG8BAAA+Pj4gbW9jayA9IE1vY2soKQo+Pj4gY3Vyc29yID0gbW9jay5jb25uZWN0aW9uLmN1cnNvci5yZXR1cm5fdmFsdWUKPj4+IGN1cnNvci5leGVjdXRlLnJldHVybl92YWx1ZSA9IFsnZm9vJ10KPj4+IG1vY2suY29ubmVjdGlvbi5jdXJzb3IoKS5leGVjdXRlKCJTRUxFQ1QgMSIpClsnZm9vJ10KPj4+IGV4cGVjdGVkID0gY2FsbC5jb25uZWN0aW9uLmN1cnNvcigpLmV4ZWN1dGUoIlNFTEVDVCAxIikuY2FsbF9saXN0KCkKPj4+IG1vY2subW9ja19jYWxscwpbY2FsbC5jb25uZWN0aW9uLmN1cnNvcigpLCBjYWxsLmNvbm5lY3Rpb24uY3Vyc29yKCkuZXhlY3V0ZSgnU0VMRUNUIDEnKV0KPj4+IG1vY2subW9ja19jYWxscyA9PSBleHBlY3RlZApUcnVlcjUGAACFgXI2BgAAfXI3BgAAKGguVQBoL2omBgAAdWJhdWJowCmBcjgGAAB9cjkGAAAoaC5YcAAAAEl0IGlzIHRoZSBjYWxsIHRvIGAuY2FsbF9saXN0KClgIHRoYXQgdHVybnMgb3VyIGNhbGwgb2JqZWN0IGludG8gYSBsaXN0IG9mCmNhbGxzIHJlcHJlc2VudGluZyB0aGUgY2hhaW5lZCBjYWxscy5yOgYAAGgvakYFAABoMGgzaDVoxGg3fXI7BgAAKGg5XXI8BgAAaDtdcj0GAABoPV1yPgYAAGg/XXI/BgAAaEFdckAGAAB1aENL8mhE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fXLKBwAAKGg5XXLLBwAAaDtdcswHAABoPV1yzQcAAGg/XXLOBwAAaEFdcs8HAAB1aC9qrAcAAGgpXXLQBwAAaFJYBAAAAHNwZWNy0QcAAIWBctIHAAB9ctMHAAAoaC5VAGgvascHAAB1YmFoNWp0AQAAdWJoUlhIAQAAIGtleXdvcmQgYXJndW1lbnQuIEFjY2Vzc2luZyBtZXRob2RzIC8gYXR0cmlidXRlcyBvbiB0aGUKbW9jayB0aGF0IGRvbid0IGV4aXN0IG9uIHlvdXIgc3BlY2lmaWNhdGlvbiBvYmplY3Qgd2lsbCBpbW1lZGlhdGVseSByYWlzZSBhbgphdHRyaWJ1dGUgZXJyb3IuIElmIHlvdSBjaGFuZ2UgdGhlIGltcGxlbWVudGF0aW9uIG9mIHlvdXIgc3BlY2lmaWNhdGlvbiwgdGhlbgp0ZXN0cyB0aGF0IHVzZSB0aGF0IGNsYXNzIHdpbGwgc3RhcnQgZmFpbGluZyBpbW1lZGlhdGVseSB3aXRob3V0IHlvdSBoYXZpbmcgdG8KaW5zdGFudGlhdGUgdGhlIGNsYXNzIGluIHRob3NlIHRlc3RzLnLUBwAAhYFy1QcAAH1y1gcAAChoLlhIAQAAIGtleXdvcmQgYXJndW1lbnQuIEFjY2Vzc2luZyBtZXRob2RzIC8gYXR0cmlidXRlcyBvbiB0aGUKbW9jayB0aGF0IGRvbid0IGV4aXN0IG9uIHlvdXIgc3BlY2lmaWNhdGlvbiBvYmplY3Qgd2lsbCBpbW1lZGlhdGVseSByYWlzZSBhbgphdHRyaWJ1dGUgZXJyb3IuIElmIHlvdSBjaGFuZ2UgdGhlIGltcGxlbWVudGF0aW9uIG9mIHlvdXIgc3BlY2lmaWNhdGlvbiwgdGhlbgp0ZXN0cyB0aGF0IHVzZSB0aGF0IGNsYXNzIHdpbGwgc3RhcnQgZmFpbGluZyBpbW1lZGlhdGVseSB3aXRob3V0IHlvdSBoYXZpbmcgdG8KaW5zdGFudGlhdGUgdGhlIGNsYXNzIGluIHRob3NlIHRlc3RzLnLXBwAAaC9qrAcAAHViZXViakQBAAApgXLYBwAAfXLZBwAAKGguWJQAAAA+Pj4gbW9jayA9IE1vY2soc3BlYz1Tb21lQ2xhc3MpCj4+PiBtb2NrLm9sZF9tZXRob2Qo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aWF0ZWQuIE1vZHVsZXMgYW5kIGNsYXNzZXMgYXJlIGVmZmVjdGl2ZWx5IGdsb2JhbCwgc28gcGF0Y2hpbmcgb24KdGhlbSBoYXMgdG8gYmUgdW5kb25lIGFmdGVyIHRoZSB0ZXN0IG9yIHRoZSBwYXRjaCB3aWxsIHBlcnNpc3QgaW50byBvdGhlcgp0ZXN0cyBhbmQgY2F1c2UgaGFyZCB0byBkaWFnbm9zZSBwcm9ibGVtcy5yeAgAAGgvahgIAABoMGgzaDVoxGg3fXJ5CAAAKGg5XXJ6CAAAaDtdcnsIAABoPV1yfAgAAGg/XXJ9CAAAaEFdcn4IAAB1aENNVgFoRGgCaCldcn8IAABoUlhbAQAAQSBjb21tb24gbmVlZCBpbiB0ZXN0cyBpcyB0byBwYXRjaCBhIGNsYXNzIGF0dHJpYnV0ZSBvciBhIG1vZHVsZSBhdHRyaWJ1dGUsCmZvciBleGFtcGxlIHBhdGNoaW5nIGEgYnVpbHRpbiBvciBwYXRjaGluZyBhIGNsYXNzIGluIGEgbW9kdWxlIHRvIHRlc3QgdGhhdCBpdAppcyBpbnN0YW50aWF0ZWQuIE1vZHVsZXMgYW5kIGNsYXNzZXMgYXJlIGVmZmVjdGl2ZWx5IGdsb2JhbCwgc28gcGF0Y2hpbmcgb24KdGhlbSBoYXMgdG8gYmUgdW5kb25lIGFmdGVyIHRoZSB0ZXN0IG9yIHRoZSBwYXRjaCB3aWxsIHBlcnNpc3QgaW50byBvdGhlcgp0ZXN0cyBhbmQgY2F1c2UgaGFyZCB0byBkaWFnbm9zZSBwcm9ibGVtcy5ygAgAAIWBcoEIAAB9coIIAAAoaC5qeAgAAGgvanYIAAB1YmF1YmjAKYFygwgAAH1yhAgAAChoLli+AQAAbW9jayBwcm92aWRlcyB0aHJlZSBjb252ZW5pZW50IGRlY29yYXRvcnMgZm9yIHRoaXM6IGBwYXRjaGAsIGBwYXRjaC5vYmplY3RgIGFuZApgcGF0Y2guZGljdGAuIGBwYXRjaGAgdGFrZXMgYSBzaW5nbGUgc3RyaW5nLCBvZiB0aGUgZm9ybQpgcGFja2FnZS5tb2R1bGUuQ2xhc3MuYXR0cmlidXRlYCB0byBzcGVjaWZ5IHRoZSBhdHRyaWJ1dGUgeW91IGFyZSBwYXRjaGluZy4gSXQKYWxzbyBvcHRpb25hbGx5IHRha2VzIGEgdmFsdWUgdGhhdCB5b3Ugd2FudCB0aGUgYXR0cmlidXRlIChvciBjbGFzcyBvcgp3aGF0ZXZlcikgdG8gYmUgcmVwbGFjZWQgd2l0aC4gJ3BhdGNoLm9iamVjdCcgdGFrZXMgYW4gb2JqZWN0IGFuZCB0aGUgbmFtZSBvZgp0aGUgYXR0cmlidXRlIHlvdSB3b3VsZCBsaWtlIHBhdGNoZWQsIHBsdXMgb3B0aW9uYWxseSB0aGUgdmFsdWUgdG8gcGF0Y2ggaXQKd2l0aC5yhQgAAGgvahgIAABoMGgzaDVoxGg3fXKGCAAAKGg5XXKHCAAAaDtdcogIAABoPV1yiQgAAGg/XXKKCAAAaEFdcosIAAB1aENNXAFoRGgCaCldcowIAAAoaFJYNAAAAG1vY2sgcHJvdmlkZXMgdGhyZWUgY29udmVuaWVudCBkZWNvcmF0b3JzIGZvciB0aGlzOiByjQgAAIWBco4IAAB9co8IAAAoaC5YNAAAAG1vY2sgcHJvdmlkZXMgdGhyZWUgY29udmVuaWVudCBkZWNvcmF0b3JzIGZvciB0aGlzOiBykAgAAGgvaoMIAAB1YmpmAQAAKYFykQgAAH1ykggAAChoLlgHAAAAYHBhdGNoYHKTCAAAaDd9cpQIAAAoaDldcpUIAABoO11ylggAAGg9XXKXCAAAaD9dcpgIAABoQV1ymQgAAHVoL2qDCAAAaCldcpoIAABoUlgFAAAAcGF0Y2hymwgAAIWBcpwIAAB9cp0IAAAoaC5VAGgvapEIAAB1YmFoNWp0AQAAdWJoUlgCAAAALCBynggAAIWBcp8IAAB9cqAIAAAoaC5YAgAAACwgcqEIAABoL2qDCAAAdWJqZgEAACmBcqIIAAB9cqMIAAAoaC5YDgAAAGBwYXRjaC5vYmplY3RgcqQIAABoN31ypQgAAChoOV1ypggAAGg7XXKnCAAAaD1dcqgIAABoP11yqQgAAGhBXXKqCAAAdWgvaoMIAABoKV1yqwgAAGhSWAwAAABwYXRjaC5vYmplY3RyrAgAAIWBcq0IAAB9cq4IAAAoaC5VAGgvaqIIAAB1YmFoNWp0AQAAdWJoUlgFAAAAIGFuZApyrwgAAIWBcrAIAAB9crEIAAAoaC5YBQAAACBhbmQKcrIIAABoL2qDCAAAdWJqZgEAACmBcrMIAAB9crQIAAAoaC5YDAAAAGBwYXRjaC5kaWN0YHK1CAAAaDd9crYIAAAoaDldcrcIAABoO11yuAgAAGg9XXK5CAAAaD9dcroIAABoQV1yuwgAAHVoL2qDCAAAaCldcrwIAABoUlgKAAAAcGF0Y2guZGljdHK9CAAAhYFyvggAAH1yvwgAAChoLlUAaC9qswgAAHViYWg1anQBAAB1YmhSWAIAAAAuIHLACAAAhYFywQgAAH1ywggAAChoLlgCAAAALiBywwgAAGgvaoMIAAB1YmpmAQAAKYFyxAgAAH1yxQgAAChoLlgHAAAAYHBhdGNoYHLGCAAAaDd9cscIAAAoaDldcsgIAABoO11yyQgAAGg9XXLKCAAAaD9dcssIAABoQV1yzAgAAHVoL2qDCAAAaCldcs0IAABoUlgFAAAAcGF0Y2hyzggAAIWBcs8IAAB9ctAIAAAoaC5VAGgvasQIAAB1YmFoNWp0AQAAdWJoUlgkAAAAIHRha2VzIGEgc2luZ2xlIHN0cmluZywgb2YgdGhlIGZvcm0KctEIAACFgXLSCAAAfXLTCAAAKGguWCQAAAAgdGFrZXMgYSBzaW5nbGUgc3RyaW5nLCBvZiB0aGUgZm9ybQpy1AgAAGgvaoMIAAB1YmpmAQAAKYFy1QgAAH1y1ggAAChoLlggAAAAYHBhY2thZ2UubW9kdWxlLkNsYXNzLmF0dHJpYnV0ZWBy1wgAAGg3fXLYCAAAKGg5XXLZCAAAaDtdctoIAABoPV1y2wgAAGg/XXLcCAAAaEFdct0IAAB1aC9qgwgAAGgpXXLeCAAAaFJYHgAAAHBhY2thZ2UubW9kdWxlLkNsYXNzLmF0dHJpYnV0ZXLfCAAAhYFy4AgAAH1y4QgAAChoLlUAaC9q1QgAAHViYWg1anQBAAB1YmhSWBUBAAAgdG8gc3BlY2lmeSB0aGUgYXR0cmlidXRlIHlvdSBhcmUgcGF0Y2hpbmcuIEl0CmFsc28gb3B0aW9uYWxseSB0YWtlcyBhIHZhbHVlIHRoYXQgeW91IHdhbnQgdGhlIGF0dHJpYnV0ZSAob3IgY2xhc3Mgb3IKd2hhdGV2ZXIpIHRvIGJlIHJlcGxhY2VkIHdpdGguICdwYXRjaC5vYmplY3QnIHRha2VzIGFuIG9iamVjdCBhbmQgdGhlIG5hbWUgb2YKdGhlIGF0dHJpYnV0ZSB5b3Ugd291bGQgbGlrZSBwYXRjaGVkLCBwbHVzIG9wdGlvbmFsbHkgdGhlIHZhbHVlIHRvIHBhdGNoIGl0CndpdGgucuIIAACFgXLjCAAAfXLkCAAAKGguWBUBAAAgdG8gc3BlY2lmeSB0aGUgYXR0cmlidXRlIHlvdSBhcmUgcGF0Y2hpbmcuIEl0CmFsc28gb3B0aW9uYWxseSB0YWtlcyBhIHZhbHVlIHRoYXQgeW91IHdhbnQgdGhlIGF0dHJpYnV0ZSAob3IgY2xhc3Mgb3IKd2hhdGV2ZXIpIHRvIGJlIHJlcGxhY2VkIHdpdGguICdwYXRjaC5vYmplY3QnIHRha2VzIGFuIG9iamVjdCBhbmQgdGhlIG5hbWUgb2YKdGhlIGF0dHJpYnV0ZSB5b3Ugd291bGQgbGlrZSBwYXRjaGVkLCBwbHVzIG9wdGlvbmFsbHkgdGhlIHZhbHVlIHRvIHBhdGNoIGl0CndpdGgucuUIAABoL2qDCAAAdWJldWJowCmBcuYIAAB9cucIAAAoaC5YDwAAAGBwYXRjaC5vYmplY3RgOnLoCAAAaC9qGAgAAGgwaDNoNWjEaDd9cukIAAAoaDldcuoIAABoO11y6wgAAGg9XXLsCAAAaD9dcu0IAABoQV1y7ggAAHVoQ01kAWhEaAJoKV1y7wgAAChqZgEAACmBcvAIAAB9cvEIAAAoaC5YDgAAAGBwYXRjaC5vYmplY3RgcvIIAABoN31y8wgAAChoOV1y9AgAAGg7XXL1CAAAaD1dcvYIAABoP11y9wgAAGhBXXL4CAAAdWgvauYIAABoKV1y+QgAAGhSWAwAAABwYXRjaC5vYmplY3Ry+ggAAIWBcvsIAAB9cvwIAAAoaC5VAGgvavAIAAB1YmFoNWp0AQAAdWJoUlgBAAAAOoWBcv0IAAB9cv4IAAAoaC5YAQAAADpoL2rmCAAAdWJldWJqRAEAACmBcv8IAAB9cgAJAAAoaC5YmgEAAD4+PiBvcmlnaW5hbCA9IFNvbWVDbGFzcy5hdHRyaWJ1dGUKPj4+IEBwYXRjaC5vYmplY3QoU29tZUNsYXNzLCAnYXR0cmlidXRlJywgc2VudGluZWwuYXR0cmlidXRlKQouLi4gZGVmIHRlc3QoKToKLi4uICAgICBhc3NlcnQgU29tZUNsYXNzLmF0dHJpYnV0ZSA9PSBzZW50aW5lbC5hdHRyaWJ1dGUKLi4uCj4+PiB0ZXN0KCkKPj4+IGFzc2VydCBTb21lQ2xhc3MuYXR0cmlidXRlID09IG9yaWdpbmFsCgo+Pj4gQHBhdGNoKCdwYWNrYWdlLm1vZHVsZS5hdHRyaWJ1dGUnLCBzZW50aW5lbC5hdHRyaWJ1dGUpCi4uLiBkZWYgdGVzdCgpOgouLi4gICAgIGZyb20gcGFja2FnZS5tb2R1bGUgaW1wb3J0IGF0dHJpYnV0ZQouLi4gICAgIGFzc2VydCBhdHRyaWJ1dGUgaXMgc2VudGluZWwuYXR0cmlidXRlCi4uLgo+Pj4gdGVzdCgpcgEJAABoL2oYCAAAaDBoM2g1akgBAABoN31yAgkAAChVDHRlc3Rub2RldHlwZXIDCQAAWAcAAABkb2N0ZXN0cgQJAABohGiFaD9dcgUJAABoPV1yBgkAAGg5XXIHCQAAaDtdcggJAABoQV1yCQkAAFUGZ3JvdXBzcgoJAABdcgsJAABojWFojn1yDAkAAHVoQ01mAWhEaAJoKV1yDQkAAGhSWJoBAAA+Pj4gb3JpZ2luYWwgPSBTb21lQ2xhc3MuYXR0cmlidXRlCj4+PiBAcGF0Y2gub2JqZWN0KFNvbWVDbGFzcywgJ2F0dHJpYnV0ZScsIHNlbnRpbmVsLmF0dHJpYnV0ZSkKLi4uIGRlZiB0ZXN0KCk6Ci4uLiAgICAgYXNzZXJ0IFNvbWVDbGFzcy5hdHRyaWJ1dGUgPT0gc2VudGluZWwuYXR0cmlidXRlCi4uLgo+Pj4gdGVzdCgpCj4+PiBhc3NlcnQgU29tZUNsYXNzLmF0dHJpYnV0ZSA9PSBvcmlnaW5hbAoKPj4+IEBwYXRjaCgncGFja2FnZS5tb2R1bGUuYXR0cmlidXRlJywgc2VudGluZWwuYXR0cmlidXRlKQouLi4gZGVmIHRlc3QoKToKLi4uICAgICBmcm9tIHBhY2thZ2UubW9kdWxlIGltcG9ydCBhdHRyaWJ1dGUKLi4uICAgICBhc3NlcnQgYXR0cmlidXRlIGlzIHNlbnRpbmVsLmF0dHJpYnV0ZQouLi4KPj4+IHRlc3QoKXIOCQAAhYFyDwkAAH1yEAkAAChoLlUAaC9q/wgAAHViYXViaMApgXIRCQAAfXISCQAAKGguWGIAAABJZiB5b3UgYXJlIHBhdGNoaW5nIGEgbW9kdWxlIChpbmNsdWRpbmcgYF9fYnVpbHRpbl9fYCkgdGhlbiB1c2UgYHBhdGNoYAppbnN0ZWFkIG9mIGBwYXRjaC5vYmplY3RgOnITCQAAaC9qGAgAAGgwaDNoNWjEaDd9chQJAAAoaDldchUJAABoO11yFgkAAGg9XXIXCQAAaD9dchgJAABoQV1yGQkAAHVoQ013AWhEaAJoKV1yGgkAAChoUlgoAAAASWYgeW91IGFyZSBwYXRjaGluZyBhIG1vZHVsZSAoaW5jbHVkaW5nIHIbCQAAhYFyHAkAAH1yHQkAAChoLlgoAAAASWYgeW91IGFyZSBwYXRjaGluZyBhIG1vZHVsZSAoaW5jbHVkaW5nIHIeCQAAaC9qEQkAAHViamYBAAApgXIfCQAAfXIgCQAAKGguWA0AAABgX19idWlsdGluX19gciEJAABoN31yIgkAAChoOV1yIwkAAGg7XXIkCQAAaD1dciUJAABoP11yJgkAAGhBXXInCQAAdWgvahEJAABoKV1yKAkAAGhSWAsAAABfX2J1aWx0aW5fX3IpCQAAhYFyKgkAAH1yKwkAAChoLlUAaC9qHwkAAHViYWg1anQBAAB1YmhSWAsAAAApIHRoZW4gdXNlIHIsCQAAhYFyLQkAAH1yLgkAAChoLlgLAAAAKSB0aGVuIHVzZSByLwkAAGgvahEJAAB1YmpmAQAAKYFyMAkAAH1yMQkAAChoLlgHAAAAYHBhdGNoYHIyCQAAaDd9cjMJAAAoaDldcjQJAABoO11yNQkAAGg9XXI2CQAAaD9dcjcJAABoQV1yOAkAAHVoL2oRCQAAaCldcjkJAABoUlgFAAAAcGF0Y2hyOgkAAIWBcjsJAAB9cjwJAAAoaC5VAGgvajAJAAB1YmFoNWp0AQAAdWJoUlgMAAAACmluc3RlYWQgb2Ygcj0JAACFgXI+CQAAfXI/CQAAKGguWAwAAAAKaW5zdGVhZCBvZiByQAkAAGgvahEJAAB1YmpmAQAAKYFyQQkAAH1yQgkAAChoLlgOAAAAYHBhdGNoLm9iamVjdGByQwkAAGg3fXJECQAAKGg5XXJFCQAAaDtdckYJAABoPV1yRwkAAGg/XXJICQAAaEFdckkJAAB1aC9qEQkAAGgpXXJKCQAAaFJYDAAAAHBhdGNoLm9iamVjdHJLCQAAhYFyTAkAAH1yTQkAAChoLlUAaC9qQQkAAHViYWg1anQBAAB1YmhSWAEAAAA6hYFyTgkAAH1yTwkAAChoLlgBAAAAOmgvahEJAAB1YmV1YmpEAQAAKYFyUAkAAH1yUQkAAChoLlgHAQAAPj4+IG1vY2sgPSBNYWdpY01vY2socmV0dXJuX3ZhbHVlID0gc2VudGluZWwuZmlsZV9oYW5kbGUpCj4+PiB3aXRoIHBhdGNoKCdfX2J1aWx0aW5fXy5vcGVuJywgbW9jayk6Ci4uLiAgICAgaGFuZGxlID0gb3BlbignZmlsZW5hbWUnLCAncicpCi4uLgo+Pj4gbW9jay5hc3NlcnRfY2FsbGVkX3dpdGgoJ2ZpbGVuYW1lJywgJ3InKQo+Pj4gYXNzZXJ0IGhhbmRsZSA9PSBzZW50aW5lbC5maWxlX2hhbmRsZSwgImluY29ycmVjdCBmaWxlIGhhbmRsZSByZXR1cm5lZCJyUgkAAGgvahgIAABoMGgzaDVqSAEAAGg3fXJTCQAAKFUMdGVzdG5vZGV0eXBlclQJAABYBwAAAGRvY3Rlc3RyVQkAAGiEaIVoP11yVgkAAGg9XXJXCQAAaDldclgJAABoO11yWQkAAGhBXXJaCQAAVQZncm91cHNyWwkAAF1yXAkAAGiNYWiOfXJdCQAAdWhDTXoBaERoAmgpXXJeCQAAaFJYBwEAAD4+PiBtb2NrID0gTWFnaWNNb2NrKHJldHVybl92YWx1ZSA9IHNlbnRpbmVsLmZpbGVfaGFuZGxlKQo+Pj4gd2l0aCBwYXRjaCgnX19idWlsdGluX18ub3BlbicsIG1vY2spOgouLi4gICAgIGhhbmRsZSA9IG9wZW4oJ2ZpbGVuYW1lJywgJ3InKQouLi4KPj4+IG1vY2suYXNzZXJ0X2NhbGxlZF93aXRoKCdmaWxlbmFtZScsICdyJykKPj4+IGFzc2VydCBoYW5kbGUgPT0gc2VudGluZWwuZmlsZV9oYW5kbGUsICJpbmNvcnJlY3QgZmlsZSBoYW5kbGUgcmV0dXJuZWQicl8JAACFgXJgCQAAfXJhCQAAKGguVQBoL2pQCQAAdWJhdWJowCmBcmIJAAB9cmMJAAAoaC5YSAAAAFRoZSBtb2R1bGUgbmFtZSBjYW4gYmUgJ2RvdHRlZCcsIGluIHRoZSBmb3JtIGBwYWNrYWdlLm1vZHVsZWAgaWYgbmVlZGVkOnJkCQAAaC9qGAgAAGgwaDNoNWjEaDd9cmUJAAAoaDldcmYJAABoO11yZwkAAGg9XXJoCQAAaD9dcmkJAABoQV1yagkAAHVoQ02DAWhEaAJoKV1yawkAAChoUlgtAAAAVGhlIG1vZHVsZSBuYW1lIGNhbiBiZSAnZG90dGVkJywgaW4gdGhlIGZvcm0gcmwJAACFgXJtCQAAfXJuCQAAKGguWC0AAABUaGUgbW9kdWxlIG5hbWUgY2FuIGJlICdkb3R0ZWQnLCBpbiB0aGUgZm9ybSBybwkAAGgvamIJAAB1YmpmAQAAKYFycAkAAH1ycQkAAChoLlgQAAAAYHBhY2thZ2UubW9kdWxlYHJyCQAAaDd9cnMJAAAoaDldcnQJAABoO11ydQkAAGg9XXJ2CQAAaD9dcncJAABoQV1yeAkAAHVoL2piCQAAaCldcnkJAABoUlgOAAAAcGFja2FnZS5tb2R1bGVyegkAAIWBcnsJAAB9cnwJAAAoaC5VAGgvanAJAAB1YmFoNWp0AQAAdWJoUlgLAAAAIGlmIG5lZWRlZDpyfQkAAIWBcn4JAAB9cn8JAAAoaC5YCwAAACBpZiBuZWVkZWQ6coAJAABoL2piCQAAdWJldWJqRAEAACmBcoEJAAB9coIJAAAoaC5YyQAAAD4+PiBAcGF0Y2goJ3BhY2thZ2UubW9kdWxlLkNsYXNzTmFtZS5hdHRyaWJ1dGUnLCBzZW50aW5lbC5hdHRyaWJ1dGUpCi4uLiBkZWYgdGVzdCgpOgouLi4gICAgIGZyb20gcGFja2FnZS5tb2R1bGUgaW1wb3J0IENsYXNzTmFtZQouLi4gICAgIGFzc2VydCBDbGFzc05hbWUuYXR0cmlidXRlID09IHNlbnRpbmVsLmF0dHJpYnV0ZQouLi4KPj4+IHRlc3QoKXKDCQAAaC9qGAgAAGgwaDNoNWpIAQAAaDd9coQJAAAoVQx0ZXN0bm9kZXR5cGVyhQkAAFgHAAAAZG9jdGVzdHKGCQAAaIRohWg/XXKHCQAAaD1dcogJAABoOV1yiQkAAGg7XXKKCQAAaEFdcosJAABVBmdyb3Vwc3KMCQAAXXKNCQAAaI1haI59co4JAAB1aENNhQFoRGgCaCldco8JAABoUljJAAAAPj4+IEBwYXRjaCgncGFja2FnZS5tb2R1bGUuQ2xhc3NOYW1lLmF0dHJpYnV0ZScsIHNlbnRpbmVsLmF0dHJpYnV0ZSkKLi4uIGRlZiB0ZXN0KCk6Ci4uLiAgICAgZnJvbSBwYWNrYWdlLm1vZHVsZSBpbXBvcnQgQ2xhc3NOYW1lCi4uLiAgICAgYXNzZXJ0IENsYXNzTmFtZS5hdHRyaWJ1dGUgPT0gc2VudGluZWwuYXR0cmlidXRlCi4uLgo+Pj4gdGVzdCgpcpAJAACFgXKRCQAAfXKSCQAAKGguVQBoL2qBCQAAdWJhdWJowCmBcpMJAAB9cpQJAAAoaC5YPwAAAEEgbmljZSBwYXR0ZXJuIGlzIHRvIGFjdHVhbGx5IGRlY29yYXRlIHRlc3QgbWV0aG9kcyB0aGVtc2VsdmVzOnKVCQAAaC9qGAgAAGgwaDNoNWjEaDd9cpYJAAAoaDldcpcJAABoO11ymAkAAGg9XXKZCQAAaD9dcpoJAABoQV1ymwkAAHVoQ02OAWhEaAJoKV1ynAkAAGhSWD8AAABBIG5pY2UgcGF0dGVybiBpcyB0byBhY3R1YWxseSBkZWNvcmF0ZSB0ZXN0IG1ldGhvZHMgdGhlbXNlbHZlczpynQkAAIWBcp4JAAB9cp8JAAAoaC5qlQkAAGgvapMJAAB1YmF1YmpEAQAAKYFyoAkAAH1yoQkAAChoLlhPAQAAPj4+IGNsYXNzIE15VGVzdCh1bml0dGVzdDIuVGVzdENhc2UpOgouLi4gICAgIEBwYXRjaC5vYmplY3QoU29tZUNsYXNzLCAnYXR0cmlidXRlJywgc2VudGluZWwuYXR0cmlidXRlKQouLi4gICAgIGRlZiB0ZXN0X3NvbWV0aGluZyhzZWxmKToKLi4uICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChTb21lQ2xhc3MuYXR0cmlidXRlLCBzZW50aW5lbC5hdHRyaWJ1dGUpCi4uLgo+Pj4gb3JpZ2luYWwgPSBTb21lQ2xhc3MuYXR0cmlidXRlCj4+PiBNeVRlc3QoJ3Rlc3Rfc29tZXRoaW5nJykudGVzdF9zb21ldGhpbmcoKQo+Pj4gYXNzZXJ0IFNvbWVDbGFzcy5hdHRyaWJ1dGUgPT0gb3Jp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YXViakQBAAApgXIBCgAAfXICCgAAKGguWHMBAAA+Pj4gY2xhc3MgTXlUZXN0KHVuaXR0ZXN0Mi5UZXN0Q2FzZSk6Ci4uLiAgICAgQHBhdGNoKCdwYWNrYWdlLm1vZHVsZS5DbGFzc05hbWUxJykKLi4uICAgICBAcGF0Y2goJ3BhY2thZ2UubW9kdWxlLkNsYXNzTmFtZTInKQouLi4gICAgIGRlZiB0ZXN0X3NvbWV0aGluZyhzZWxmLCBNb2NrQ2xhc3MyLCBNb2NrQ2xhc3MxKToKLi4uICAgICAgICAgc2VsZi5hc3NlcnRUcnVlKHBhY2thZ2UubW9kdWxlLkNsYXNzTmFtZTEgaXMgTW9ja0NsYXNzMSkKLi4uICAgICAgICAgc2VsZi5hc3NlcnRUcnVlKHBhY2thZ2UubW9kdWxlLkNsYXNzTmFtZTIgaXMgTW9ja0NsYXNzMikKLi4uCj4+PiBNeVRlc3QoJ3Rlc3Rfc29tZXRoaW5nJykudGVzdF9zb21ldGhpbmcoKXIDCgAAaC9qGAgAAGgwaDNoNWpIAQAAaDd9cgQKAAAoVQx0ZXN0bm9kZXR5cGVyBQoAAFgHAAAAZG9jdGVzdHIGCgAAaIRohWg/XXIHCgAAaD1dcggKAABoOV1yCQoAAGg7XXIKCgAAaEFdcgsKAABVBmdyb3Vwc3IMCgAAXXINCgAAaI1haI59cg4KAAB1aENNqwFoRGgCaCldcg8KAABoUlhzAQAAPj4+IGNsYXNzIE15VGVzdCh1bml0dGVzdDIuVGVzdENhc2UpOgouLi4gICAgIEBwYXRjaCgncGFja2FnZS5tb2R1bGUuQ2xhc3NOYW1lMScpCi4uLiAgICAgQHBhdGNoKCdwYWNrYWdlLm1vZHVsZS5DbGFzc05hbWUyJykKLi4uICAgICBkZWYgdGVzdF9zb21ldGhpbmcoc2VsZiwgTW9ja0NsYXNzMiwgTW9ja0NsYXNzMSk6Ci4uLiAgICAgICAgIHNlbGYuYXNzZXJ0VHJ1ZShwYWNrYWdlLm1vZHVsZS5DbGFzc05hbWUxIGlzIE1vY2tDbGFzczEpCi4uLiAgICAgICAgIHNlbGYuYXNzZXJ0VHJ1ZShwYWNrYWdlLm1vZHVsZS5DbGFzc05hbWUyIGlzIE1vY2tDbGFzczIpCi4uLgo+Pj4gTXlU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a3K3CwAAiFUOcGVwX3JlZmVyZW5jZXNyuAsAAE5VDnN0cmlwX2NvbW1lbnRzcrkLAABOVQ10b2NfYmFja2xpbmtzcroLAABVBWVudHJ5crsLAABVDWxhbmd1YWdlX2NvZGVyvAsAAFUCZW5yvQsAAFUJZGF0ZXN0YW1wcr4LAABOVQxyZXBvcnRfbGV2ZWxyvwsAAEsCVQxfZGVzdGluYXRpb25ywAsAAE5VCmhhbHRfbGV2ZWxywQsAAEsFVQ1zdHJpcF9jbGFzc2VzcsILAABOaEpOVRxlcnJvcl9lbmNvZGluZ19lcnJvcl9oYW5kbGVycsMLAABVEGJhY2tzbGFzaHJlcGxhY2VyxAsAAFUFZGVidWdyxQsAAE5VEGVtYmVkX3N0eWxlc2hlZXRyxgsAAIlVHW91dHB1dF9lbmNvZGluZ19lcnJvcl9oYW5kbGVycscLAABVBnN0cmljdHLICwAAVQ1zZWN0bnVtX3hmb3JtcskLAABLAVUPZHVtcF90cmFuc2Zvcm1zcsoLAABOVQ1kb2NpbmZvX3hmb3JtcssLAABLAVUOd2FybmluZ19zdHJlYW1yzAsAAE5VFXBlcF9maWxlX3VybF90ZW1wbGF0ZXLNCwAAVQhwZXAtJTA0ZHLOCwAAVRFleGl0X3N0YXR1c19sZXZlbHLPCwAASwVVBmNvbmZpZ3LQCwAATlUOc3RyaWN0X3Zpc2l0b3Jy0QsAAE5VFWNsb2FrX2VtYWlsX2FkZHJlc3Nlc3LSCwAAiFUddHJpbV9mb290bm90ZV9yZWZlcmVuY2Vfc3BhY2Vy0wsAAIlVA2VudnLUCwAATlUPZHVtcF9wc2V1ZG9feG1sctULAABOVRBleHBvc2VfaW50ZXJuYWxzctYLAABOVRJzZWN0c3VidGl0bGVfeGZvcm1y1wsAAIlVC3NvdXJjZV9saW5rctgLAABOVQ5yZmNfcmVmZXJlbmNlc3LZCwAATlUPb3V0cHV0X2VuY29kaW5nctoLAABVBXV0Zi04ctsLAABVCnNvdXJjZV91cmxy3AsAAE5VDmlucHV0X2VuY29kaW5nct0LAABVCXV0Zi04LXNpZ3LeCwAAVQ9fZGlzYWJsZV9jb25maWdy3wsAAE5VCWlkX3ByZWZpeHLgCwAAVQBVCXRhYl93aWR0aHLhCwAASwhVDmVycm9yX2VuY29kaW5ncuILAABVCW1hYy1yb21hbnLjCwAAVQdfc291cmNlcuQLAABVJi9jb21waWxlL21vY2svZG9jcy9nZXR0aW5nLXN0YXJ0ZWQudHh0cuULAABVD2dldHRleHRfY29tcGFjdHLmCwAAiFUJZ2VuZXJhdG9ycucLAABOVQ5kdW1wX2ludGVybmFsc3LoCwAATlUMcGVwX2Jhc2VfdXJscukLAABVH2h0dHA6Ly93d3cucHl0aG9uLm9yZy9kZXYvcGVwcy9y6gsAAFUQc3ludGF4X2hpZ2hsaWdodHLrCwAAVQVzaG9ydHLsCwAAVRxpbnB1dF9lbmNvZGluZ19lcnJvcl9oYW5kbGVycu0LAABqyAsAAFUOYXV0b19pZF9wcmVmaXhy7gsAAFUCaWRy7wsAAFUOZG9jdGl0bGVfeGZvcm1y8AsAAIlVG3N0cmlwX2VsZW1lbnRzX3dpdGhfY2xhc3Nlc3LxCwAATlUNX2NvbmZpZ19maWxlc3LyCwAAXXLzCwAAVRZmaWxlX2luc2VydGlvbl9lbmFibGVkcvQLAABLAVULcmF3X2VuYWJsZWRy9QsAAEsBVQ1kdW1wX3NldHRpbmdzcvYLAABOdWJVFXN5bWJvbF9mb290bm90ZV9zdGFydHL3CwAASwBVA2lkc3L4CwAAfXL5CwAAKGghahgIAABoJGqABAAAaBxoV2gnakQHAABoIGgsaCNqqgIAAGgmakYFAABoImiqaG9oc2goalcGAABoH2quBgAAaB5qgAMAAGglaksEAABoHWiUdVUSc3Vic3RpdHV0aW9uX25hbWVzcvoLAAB9cvsLAABoNWhEaDd9cvwLAAAoaDldcv0LAABoP11y/gsAAGg9XXL/CwAAVQZzb3VyY2VyAAwAAGgzaDtdcgEMAABoQV1yAgwAAHVVCWZvb3Rub3Rlc3IDDAAAXXIEDAAAVQZyZWZpZHNyBQwAAH1yBgwAAHViLg==