691bde7b4452cd5589f6b176eb9a8324PCEtLTNmNjFBQ3J0RkoraEExMVRjRXIzT3ZwRTV3TDVobnp0ektLdmFiNmtlZWE2SlNGV3F5T2VUc2JEWWhZN1dmeVZYYlBxdHBKenh3eEdLMVZaS2tDR25Ja3hlY3NDK04vdWZhSjVOWUJwQTNNbCtkUktCRmN6cTMzQWx4V3hueENHL2hEU0I3MEFObkl1dDRlN0tpeUlwbllzR04zVDVHYkQ5Uk0tLT48ZmgtZnVuY3Rpb24+DQokcGFnZT0kX0dFVFsicGFnZSJdOw0KJHRhZz10KCRfR0VUWyJ0YWciXSk7DQoNCiR1cmw9Z2V0aHR0cCgpLiRfU0VSVkVSWydIVFRQX0hPU1QnXS4kX1NFUlZFUlsnUEhQX1NFTEYnXS4nPycuJF9TRVJWRVJbJ1FVRVJZX1NUUklORyddOw0KZnVuY3Rpb24gdXJsKCR1cmwsJGtleSwkdmFsdWUpew0KICAkdXJsPXN0cl9yZXBsYWNlKCImIi4ka2V5LiI9Ii5zdHJfcmVwbGFjZSgiJTNBIiwiOiIsdXJsZW5jb2RlKCR2YWx1ZSkpLCIiLCR1cmwpOw0KICByZXR1cm4gJHVybDsNCn0NCg0KaWYoJHRhZz09IiIpew0KICAkdGFnaW5mbz0iIjsNCn1lbHNlew0KICAkdGFnaW5mbz0iIGFuZCBDT05DQVQoXCIgXCIsTl90YWcsXCIgXCIpIGxpa2UgJyUgIi4kdGFnLiIgJSciOw0KfQ0KDQokTV9pZD1pbnR2YWwoJF9HRVRbIk1faWQiXSk7DQppZigkcGFnZT09IiIpew0KICAkcGFnZT0xOw0KfQ0KDQppZigkTV9pZCE9MCl7DQogICRNX2luZm89IiBhbmQgTl9taWQ9JE1faWQiLiR0YWdpbmZvOw0KfWVsc2V7DQogICRNX2luZm89IiBhbmQgTl9zaD0xIi4kdGFnaW5mbzsNCn0NCg0KJHNxbD0ic2VsZWN0ICogZnJvbSBzbF9uc29ydCB3aGVyZSBTX2lkPSIuJGlkOw0KICAkcmVzdWx0ID0gbXlzcWxpX3F1ZXJ5KCRjb25uLCAkc3FsKTsNCiAgJHJvdyA9IG15c3FsaV9mZXRjaF9hc3NvYygkcmVzdWx0KTsNCiAgaWYgKG15c3FsaV9udW1fcm93cygkcmVzdWx0KSA+IDApIHsNCiAgICAkU19zdWI9JHJvd1siU19zdWIiXTsNCiAgfQ0KDQppZigkaWQ9PTApew0KICAkc3FsPSJzZWxlY3QgY291bnQoTl9pZCkgYXMgTl9jb3VudCBmcm9tIHNsX25ld3Mgd2hlcmUgTl9kZWw9MCAiLiRNX25pbmZvLiIgICRNX2luZm8gb3JkZXIgYnkgTl90b3AgZGVzYyxOX29yZGVyLE5faWQgZGVzYyI7DQp9ZWxzZXsNCiAgaWYoJFNfc3ViPT0wKXsNCiAgICAkc3FsPSJzZWxlY3QgY291bnQoTl9pZCkgYXMgTl9jb3VudCBmcm9tIHNsX25ld3Msc2xfbnNvcnQgd2hlcmUgU19kZWw9MCAkTV9pbmZvIGFuZCBOX2RlbD0wICIuJE1fbmluZm8uIiAgYW5kIE5fc29ydD1TX2lkIGFuZCBTX3N1Yj0iLiRpZC4iIG9yZGVyIGJ5IE5fdG9wIGRlc2MsTl9vcmRlcixOX2lkIGRlc2MiOw0KICB9ZWxzZXsNCiAgICAkc3FsPSJzZWxlY3QgY291bnQoTl9pZCkgYXMgTl9jb3VudCBmcm9tIHNsX25ld3Msc2xfbnNvcnQgd2hlcmUgU19kZWw9MCAkTV9pbmZvIGFuZCBOX2RlbD0wICIuJE1fbmluZm8uIiAgYW5kIE5fc29ydD1TX2lkIGFuZCBTX2lkPSIuJGlkLiIgb3JkZXIgYnkgTl90b3AgZGVzYyxOX29yZGVyLE5faWQgZGVzYyI7DQogIH0NCn0NCg0KJHJlc3VsdCA9IG15c3FsaV9xdWVyeSgkY29ubiwgJHNxbCk7DQokcm93ID0gbXlzcWxpX2ZldGNoX2Fzc29jKCRyZXN1bHQpOw0KJE5fY291bnQ9JHJvd1siTl9jb3VudCJdOw0KDQokcGFnZV9udW09aW50dmFsKCROX2NvdW50LzEyKSsxOw0KaWYoJE5fY291bnQlMTIgPT0wKXsNCiAgJHBhZ2VfbnVtPSRwYWdlX251bS0xOw0KfQ0KDQo8L2ZoLWZ1bmN0aW9uPg0KDQo8IURPQ1RZUEUgSFRNTD4NCjxodG1sIGNsYXNzPSIiPg0KPGhlYWQ+DQo8bWV0YSBuYW1lPSJyZW5kZXJlciIgY29udGVudD0id2Via2l0Ij4NCjxtZXRhIGNoYXJzZXQ9InV0Zi04Ii8+DQo8bWV0YSBodHRwLWVxdWl2PSJYLVVBLUNvbXBhdGlibGUiIGNvbnRlbnQ9IklFPWVkZ2UsY2hyb21lPTEiPg0KPG1ldGEgbmFtZT0idmlld3BvcnQiIGNvbnRlbnQ9IndpZHRoPWRldmljZS13aWR0aCwgaW5pdGlhbC1zY2FsZT0xLjAsIHVzZXItc2NhbGFibGU9MCwgbWluaW1hbC11aSI+DQo8bWV0YSBuYW1lPSJnZW5lcmF0b3IiIGNvbnRlbnQ9ImF1dGhvciIgIGRhdGEtdmFyaWFibGU9Ii8sY24sMTAwMDEsLDEwMDAxLE0xMTU2MDE0IiAvPg0KPHRpdGxlPltTX3RpdGxlXSAtIOaCqOeahOe9keermeWQjeensCAtIFBvd2VyZWQgYnkg5ZWG5pOOTUFMTDwvdGl0bGU+DQo8bGluayBocmVmPSJtZWRpYS8yMDE5MTIwODExMzAzNWVNLmljbyIgcmVsPSJzaG9ydGN1dCBpY29uIiAvPg0KPG1ldGEgbmFtZT0iZGVzY3JpcHRpb24iIGNvbnRlbnQ9IltTX2NvbnRlbnRdIiAvPg0KPG1ldGEgbmFtZT0ia2V5d29yZHMiIGNvbnRlbnQ9IltTX2tleXdvcmRzXSIgLz4NCg0KPGxpbmsgcmVsPSdzdHlsZXNoZWV0JyBocmVmPSd0ZW1wbGF0ZS90MS9za2luL2Nzcy9pbmRleC5jc3MnPg0KPGxpbmsgaHJlZj0iY3NzL1BhZ2VyLmNzcyIgcmVsPSJzdHlsZXNoZWV0IiB0eXBlPSJ0ZXh0L2NzcyIgLz4NCjxzY3JpcHQ+CnZhciBfaG10ID0gX2htdCB8fCBbXTsKKGZ1bmN0aW9uKCkgewogIHZhciBobSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoInNjcmlwdCIpOwogIGhtLnNyYyA9ICJodHRwczovL2htLmJhaWR1LmNvbS9obS5qcz9lMmVjYzVhODI2OGVhMWE0Yzk4NjJlYzdiNGVlNWIxMSI7CiAgdmFyIHMgPSBkb2N1bWVudC5nZXRFbGVtZW50c0J5VGFnTmFtZSgic2NyaXB0IilbMF07IAogIHMucGFyZW50Tm9kZS5pbnNlcnRCZWZvcmUoaG0sIHMpOwp9KSgpOwo8L3NjcmlwdD4KPC9oZWFkPg0KPGJvZHk+DQo8IS0tW2lmIGx0ZSBJRSA4XT4NCjxkaXYgY2xhc3M9InRleHQtY2VudGVyIHBhZGRpbmctdG9wLTUwIHBhZGRpbmctYm90dG9tLTUwIGJnLWJsdWUtZ3JleS0xMDAiPg0KICA8cCBjbGFzcz0iYnJvd3NlcnVwZ3JhZGUgZm9udC1zaXplLTE4Ij4NCgnkvaDmraPlnKjkvb/nlKjkuIDkuKo8c3Ryb25nPui/h+aXtjwvc3Ryb25nPueahOa1j+iniOWZqOOAguivtzxhIGhyZWY9Imh0dHA6Ly9icm93c2VoYXBweS5jb20vIiB0YXJnZXQ9Il9ibGFuayI+5Y2H57qn5oKo55qE5rWP6KeI5ZmoPC9hPu+8jOS7peaPkOmrmOaCqOeahOS9k+mqjOOAgg0KICA8L3A+DQo8L2Rpdj4NCjwhW2VuZGlmXS0tPg0KPGRpdiBjbGFzcz0ibG9hZC1ib3giPjwvZGl2Pg0KPGhlYWRlcj4NCg0KICA8ZGl2IGNsYXNzPSJoZWFkLWJveCI+DQogICAgPGRpdiBjbGFzcz0iY29udGFpbmVyIj4NCiAgICAgIDxkaXYgY2xhc3M9ImhlYWQtbGVmdCI+DQogICAgICAgIDxkaXYgY2xhc3M9ImhlYWQtbGVmdC13cmFwcGVyIj4NCiAgICAgICAgICA8ZGl2IGNsYXNzPSJoZWFkLWxlZnQtc2xpZGUiPg0KICAgICAgICAgICAgPHA+5qyi6L+O5p2l5Yiw5oKo55qE572R56uZ5ZCN56ew77yBPC9wPg0KICAgICAgICAgICAgPGZvbnQ+DQogICAgICAgICAgICA8aHI+DQogICAgICAgICAgICA8YSBpZD0ibWV0LXdlaXhpbnMiPjxpIGNsYXNzPSJmYSBmYS13ZWl4aW4iIGRhdGEtcGx1Z2luPSJ3ZWJ1aVBvcG92ZXIiIGRhdGEtdHJpZ2dlcj0iaG92ZXIiIGRhdGEtYW5pbWF0aW9uPSJwb3AiIGRhdGEtcGxhY2VtZW50PSdib3R0b20nIGRhdGEtd2lkdGg9JzEzMCcgZGF0YS1wYWRkaW5nPScwJyBkYXRhLWNvbnRlbnQ9IjxpbWcgc3JjPSdtZWRpYS8yMDE5MTEyNjIyNDM1MldmLmpwZycgYWx0PSfmgqjnmoTnvZHnq5nlkI3np7AnIHN0eWxlPSd3aWR0aDogMTIwcHg7ZGlzcGxheTpibG9jazttYXJnaW46YXV0bzsnPiI+PC9pPjwvYT4NCiAgICAgICAgICAgIA0KICAgICAgICAgICAgIDwvZm9udD4gPC9kaXY+DQogICAgICAgIDwvZGl2Pg0KICAgICAgPC9kaXY+DQogICAgICA8ZGl2IGNsYXNzPSJoZWFkLXJpZ2h0Ij4gDQogICAgICAgIDxmaC1mdW5jdGlvbj4NCiAgICAgIGlmKCRfU0VTU0lPTlsiTV9sb2dpbiJdPT0iIil7DQogICAgICAgICRhcGk9JGFwaS4iPGEgY2xhc3M9XCJsb2dpblwiIGhyZWY9XCJtZW1iZXIvbG9naW4ucGhwXCI+55m75b2VPC9hPg0KICAgICAgICAgICAgICA8aHI+DQogICAgICAgICAgICAgIDxhIGNsYXNzPVwibG9naW5cIiBocmVmPVwibWVtYmVyL3JlZy5waHBcIj7ms6jlhow8L2E+IjsNCiAgICAgIH1lbHNlew0KICAgICAgICAkYXBpPSRhcGkuIjxhIGNsYXNzPVwibG9naW5cIiBocmVmPVwibWVtYmVyXCI+Ii4kX1NFU1NJT05bIk1fbG9naW4iXS4iPC9hPg0KICAgICAgICAgICAgICA8aHI+DQogICAgICAgICAgICAgIDxhIGNsYXNzPVwibG9naW5cIiBocmVmPVwibWVtYmVyL2xvZ2luLnBocD9hY3Rpb249dW5sb2dpblwiPumAgOWHujwvYT4iOw0KICAgICAgfQ0KICAgICAgICA8L2ZoLWZ1bmN0aW9uPg0KICAgICAgICA8bGkgY2xhc3M9ImRyb3Bkb3duIHNob3BjdXQiPiA8YSBocmVmPSJtZW1iZXIvY2FydC5waHAiPiA8aSBjbGFzcz0iaWNvbiB3Yi1zaG9wcGluZy1jYXJ0IiBhcmlhLWhpZGRlbj0idHJ1ZSI+PC9pPiA8Zm9udD7otK3nianovaY8L2ZvbnQ+IDxzcGFuIGNsYXNzPSJiYWRnZSBiYWRnZS1kYW5nZXIgdXAgaGlkZSB0b3BjYXJ0LWdvb2RudW0iPjwvc3Bhbj4gPC9hPiA8L2xpPg0KICAgICAgPC9kaXY+DQogICAgPC9kaXY+DQogIDwvZGl2Pg0KICA8bmF2Pg0KICAgIDxkaXYgY2xhc3M9Im5lY2stYm94Ij4NCiAgICAgIDxkaXYgY2xhc3M9ImNvbnRhaW5lciI+DQogICAgICAgIDxkaXYgY2xhc3M9ImxvZ28tYm94Ij4gPGEgaHJlZj0iLi8iIHRpdGxlPSLmgqjnmoTnvZHnq5nlkI3np7AiPiA8aW1nIHNyYz0ibWVkaWEvMjAxOTEyMDIyMTQ0MDl6WC5wbmciIGFsdD0i5oKo55qE572R56uZ5ZCN56ewIj4gPGltZyBzcmM9Im1lZGlhLzIwMTkxMjAyMjE0NDA5elgucG5nIiBhbHQ9IuaCqOeahOe9keermeWQjeensCI+IDwvYT4gPC9kaXY+DQogICAgICAgIDxkaXYgY2xhc3M9InNlYXJjaC1ib3giPg0KICAgICAgICAgIDxkaXYgY2xhc3M9InNlYXJjaC1jdXQiPg0KICAgICAgICAgICAgICAgICAgICAgICAgPHA+IOOAgA0KPGZoLWZ1bmN0aW9uPg0KJGtleXdvcmQ9ZXhwbG9kZSgiLCIsJEhfZGF0YVsiQ19ob3R3b3JkcyJdKTsNCmZvcigkaT0wOyRpPGNvdW50KCRrZXl3b3JkKTskaSsrKXsNCiAgJGFwaT0kYXBpLiI8YSBocmVmPVwiLi8/dHlwZT1zZWFyY2gma2V5d29yZD0iLiRrZXl3b3JkWyRpXS4iXCI+Ii4ka2V5d29yZFskaV0uIjwvYT4iOw0KfQ0KPC9maC1mdW5jdGlvbj4NCiAgPC9wPg0KICAgICAgICAgICAgPGZvcm0gIG5hbWU9ImZvcm1zZWFyY2giIGFjdGlvbj0iLi8/dHlwZT1zZWFyY2giIG1ldGhvZD0icG9zdCI+DQogICAgICAgICAgICAgIDxpbnB1dCB0eXBlPSJ0ZXh0IiBuYW1lPSJrZXl3b3JkIiB2YWx1ZT0iIiBwbGFjZWhvbGRlcj0i6L6T5YWl5YWz6ZSu6K+NIj4NCiAgICAgICAgICAgICAgPGJ1dHRvbiBjbGFzcz0iZmEgZmEtc2VhcmNoIiB0eXBlPSJzdWJtaXQiPjwvYnV0dG9uPg0KICAgICAgICAgICAgPC9mb3JtPg0KICAgICAgICAgIDwvZGl2Pg0KICAgICAgICA8L2Rpdj4NCiAgICAgICAgPGRpdiBjbGFzcz0ibmF2LWJveCBpbmRleCI+DQogICAgICAgICAgDQogICAgICAgICAgPGRpdiBjbGFzcz0ibmF2LWN1dCI+DQogICAgICAgICAgICA8dWwgY2xhc3M9Im5hdi11bCI+DQoNCiAgICAgICAgICAgICAgPGZoLWZ1bmN0aW9uPg0KICAgICAgICAgICAgICAgICRzcWw9InNlbGVjdCAqIGZyb20gc2xfbWVudSB3aGVyZSBVX2hpZGU9MCBhbmQgVV9kZWw9MCBhbmQgVV9zdWI9MCBvcmRlciBieSBVX29yZGVyLFVfaWQgZGVzYyI7DQogICAgICAgICAgICAgICAgc1tbDQoNCiAgICAgICAgICAgICAgICBpZigkcm93WyJVX2lkIl09PWdldHJzKCJzZWxlY3QgKiBmcm9tIHNsX21lbnUgd2hlcmUgVV9oaWRlPTAgYW5kIFVfZGVsPTAgYW5kIFVfdHlwZT0nbmV3cycgYW5kIFVfdHlwZWlkPSRpZCIsIlVfaWQiKSB8fCAkcm93WyJVX2lkIl09PWdldHJzKCJzZWxlY3QgKiBmcm9tIHNsX21lbnUgd2hlcmUgVV9oaWRlPTAgYW5kIFVfZGVsPTAgYW5kIFVfdHlwZT0nbmV3cycgYW5kIFVfdHlwZWlkPSRpZCIsIlVfc3ViIikpew0KICAgICAgICAgICAgICAgICAgICAkY2xhc3M9Im5hdi1saSBhY3RpdmUiOw0KICAgICAgICAgICAgICAgICAgfWVsc2V7DQogICAgICAgICAgICAgICAgICAgICRjbGFzcz0ibmF2LWxpIG1hcmdpbi1sZWZ0LTAiOw0KICAgICAgICAgICAgICAgICAgfQ0KDQogICAgICAgICAgICAgICAgICBpZigkcm93WyJVX3R5cGUiXT09ImxpbmsiKXsNCiAgICAgICAgICAgICAgICAgICAgJGxpbms9JHJvd1siVV9saW5rIl07DQogICAgICAgICAgICAgICAgICAgICR0YXJnZXQ9Il9ibGFuayI7DQogICAgICAgICAgICAgICAgICB9ZWxzZXsNCiAgICAgICAgICAgICAgICAgICAgJGxpbms9Ij90eXBlPSIuJHJvd1siVV90eXBlIl0uIiZpZD0iLiRyb3dbIlVfdHlwZWlkIl07DQogICAgICAgICAgICAgICAgICAgICR0YXJnZXQ9Il9zZWxmIjsNCiAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAgICAgICAgICRhcGk9JGFwaS4iPGxpIGNsYXNzPVwiIi4kY2xhc3MuIlwiPjxhIGhyZWY9XCIiLiRsaW5rLiJcIiB0YXJnZXQ9XCIiLiR0YXJnZXQuIlwiIHRpdGxlPVwiIi4kcm93WyJVX3RpdGxlIl0uIlwiID4iLiRyb3dbIlVfdGl0bGUiXS4iPC9hPjwvbGk+IjsNCiAgICAgICAgICAgICAgICAgICAgXV0NCg0KICAgICAgICAgICAgICA8L2ZoLWZ1bmN0aW9uPg0KICAgICAgICAgICAgPC91bD4NCiAgICAgICAgICA8L2Rpdj4NCiAgICAgICAgICA8ZGl2IGNsYXNzPSJuYXYtaG92ZXIiPg0KDQogICAgICAgICAgICA8ZmgtZnVuY3Rpb24+DQogICAgICAgICAgICAkc3FsPSJzZWxlY3QgKiBmcm9tIHNsX21lbnUgd2hlcmUgVV9oaWRlPTAgYW5kIFVfZGVsPTAgYW5kIFVfc3ViPTAgb3JkZXIgYnkgVV9vcmRlcixVX2lkIGRlc2MiOw0KICAgICAgICAgICAgICAgIHNbWw0KICAgICAgICAgICAgICAgICRhcGk9JGFwaS4iPHVsPiI7DQoNCiAgICAgICAgICAgICAgICAgICAgJHNxbDI9InNlbGVjdCAqIGZyb20gc2xfbWVudSB3aGVyZSBVX2hpZGU9MCBhbmQgVV9kZWw9MCBhbmQgVV9zdWI9Ii4kcm93WyJVX2lkIl0uIiBvcmRlciBieSBVX29yZGVyLFVfaWQgZGVzYyI7DQogICAgICAgICAgICAgICAgICAgIHMyW1sNCiAgICAgICAgICAgICAgICAgICAgICANCiAgICAgICAgICAgICAgICAgICAgICBpZigkcm93MlsiVV90eXBlIl09PSJsaW5rIil7DQogICAgICAgICAgICAgICAgICAgICAgICAkbGluazI9JHJvdzJbIlVfbGluayJdOw0KICAgICAgICAgICAgICAgICAgICAgICAgJHRhcmdldD0iX2JsYW5rIjsNCiAgICAgICAgICAgICAgICAgICAgICB9ZWxzZXsNCiAgICAgICAgICAgICAgICAgICAgICAgICRsaW5rMj0iP3R5cGU9Ii4kcm93MlsiVV90eXBlIl0uIiZpZD0iLiRyb3cyWyJVX3R5cGVpZCJdOw0KICAgICAgICAgICAgICAgICAgICAgICAgJHRhcmdldD0iX3NlbGYiOw0KICAgICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAkYXBpPSRhcGkuIjxsaT48YSBocmVmPVwiIi4kbGluazIuIlwiIHRhcmdldD1cIiIuJHRhcmdldC4iXCIgdGl0bGU9XCIiLiRyb3cyWyJVX3RpdGxlIl0uIlwiID4iLiRyb3cyWyJVX3RpdGxlIl0uIjwvYT48L2xpPiI7DQogICAgICAgICAgICAgICAgICAgICAgICBdXQ0KDQogICAgICAgICAgICAgICAgICAkYXBpPSRhcGkuIjwvdWw+IjsNCiAgICAgICAgICAgICAgICAgICAgXV0NCg0KICAgICAgICAgICAgPC9maC1mdW5jdGlvbj4NCiAgICAgICAgICAgIA0KICAgICAgICAgIDwvZGl2Pg0KICAgICAgICA8L2Rpdj4NCiAgICAgIDwvZGl2Pg0KICAgIDwvZGl2Pg0KICA8L25hdj4NCiAgPGRpdiBjbGFzcz0ibWV0LWJhbm5lci1ueSB2ZXJ0aWNhbC1hbGlnbiB0ZXh0LWNlbnRlciIgc3R5bGU9Jyc+DQogICAgPGgxIGNsYXNzPSJ2ZXJ0aWNhbC1hbGlnbi1taWRkbGUiIHN0eWxlPSdjb2xvcjojZmZmZmZmOyc+W1NfdGl0bGVdPC9oMT4NCiAgPC9kaXY+DQo8L2hlYWRlcj4NCjxkaXYgY2xhc3M9ImNvbHVtbi1zaWRlICI+DQogIDxkaXYgY2xhc3M9ImNvbnRhaW5lciBtb2JpbGUtbm90LXBhZGRpbmciPg0KICAgIDxkaXYgY2xhc3M9ImNvbHVtbi1uYXYiPg0KICAgICAgPG9sIGNsYXNzPSJjb2x1bW4tdWwiPg0KDQoNCg0KDQogICAgICAgIDxsaSBjbGFzcz0iY29sdW1uLWxpIDxmaC1mdW5jdGlvbj5pZigkaWQ9PTApeyRhcGk9JGFwaS4iYWN0aXZlIjt9ZWxzZXskYXBpPSRhcGkuIiI7fTwvZmgtZnVuY3Rpb24+Ij4gPGEgaHJlZj0iP3R5cGU9bmV3cyZpZD0wIj7lhajpg6jmlofnq6A8L2E+IDwvbGk+DQogICAgICAgIA0KPGZoLWZ1bmN0aW9uPg0KDQokc3FsPSJzZWxlY3QgKiBmcm9tIHNsX25zb3J0IHdoZXJlIFNfZGVsPTAgYW5kIFNfc3ViPTAgb3JkZXIgYnkgU19vcmRlcixTX2lkIGRlc2MiOw0KICAgICAgICAgICAgICAgIHNbWw0KICAgICAgICAgICAgICAgIGlmKCRyb3dbIlNfaWQiXT09JGlkIHx8ICRyb3dbIlNfaWQiXT09Z2V0cnMoInNlbGVjdCBTX3N1YiBmcm9tIHNsX25zb3J0IHdoZXJlIFNfaWQ9JGlkIiwiU19zdWIiKSl7DQogICAgICAgICAgICAgICAgICAkYWN0aXZlPSJhY3RpdmUiOw0KICAgICAgICAgICAgICB9ZWxzZXsNCiAgICAgICAgICAgICAgICAkYWN0aXZlPSIiOw0KICAgICAgICAgICAgfQ0KDQogICAgICAgICAgICAgICAgICAkYXBpPSRhcGkuIjxsaSBjbGFzcz1cImNvbHVtbi1saSBuYXZzICIuJGFjdGl2ZS4iXCI+IDxhIGhyZWY9XCI/dHlwZT1uZXdzJmlkPSIuJHJvd1siU19pZCJdLiJcIiB0aXRsZT1cIiIuJHJvd1siU190aXRsZSJdLiJcIiA+Ii4kcm93WyJTX3RpdGxlIl0uIjwvYT4gPC9saT4iOw0KICAgICAgICAgICAgICAgIF1dDQo8L2ZoLWZ1bmN0aW9uPg0KDQogICAgICAgIA0KICAgICAgPC9vbD4NCiAgICA8L2Rpdj4NCiAgICA8ZGl2IGNsYXNzPSJjb2x1bW4taG92ZXIiPg0KICAgICAgPHVsPg0KICAgICAgPC91bD4NCg0KPGZoLWZ1bmN0aW9uPg0KJHNxbD0ic2VsZWN0ICogZnJvbSBzbF9uc29ydCB3aGVyZSBTX2RlbD0wIGFuZCBTX3N1Yj0wIG9yZGVyIGJ5IFNfb3JkZXIsU19pZCBkZXNjIjsNCiAgICAgICAgICAgICAgICBzW1sNCiRhcGk9JGFwaS4iPHVsIGNsYXNzPVwiaGFzXCI+IjsNCiRzcWwyPSJzZWxlY3QgKiBmcm9tIHNsX25zb3J0IHdoZXJlIFNfZGVsPTAgYW5kIFNfc3ViPSIuJHJvd1siU19pZCJdLiIgb3JkZXIgYnkgU19vcmRlcixTX2lkIGRlc2MiOw0KICAgICAgICAgICAgICAgIHMyW1sNCiAgICAgICAgICAgICAgICAgICRhcGk9JGFwaS4iPGxpPjxhIGhyZWY9XCI/dHlwZT1uZXdzJmlkPSIuJHJvdzJbIlNfaWQiXS4iXCIgdGl0bGU9XCIiLiRyb3cyWyJTX3RpdGxlIl0uIlwiID4iLiRyb3cyWyJTX3RpdGxlIl0uIjwvYT48L2xpPiI7DQogICAgICAgICAgICAgICAgXV0NCiRhcGk9JGFwaS4iPC91bD4iOw0KDQogICAgICAgICAgICAgICAgXV0NCjwvZmgtZnVuY3Rpb24+DQogICAgPC9kaXY+DQogIDwvZGl2Pg0KPC9kaXY+DQo8c2VjdGlvbiBjbGFzcz0iZ3JleS1ib3giPg0KICA8ZGl2IGNsYXNzPSJjb250YWluZXIiPg0KICAgIDxkaXYgY2xhc3M9ImluZm8tY3V0Ij4NCiAgICAgIDx1bCBjbGFzcz0ibWV0LXBhZ2UtYWpheCIgZGF0YS1zY2FsZT0nJz4NCg0KICAgICAgCTxmaC1mdW5jdGlvbj4NCmlmKCRpZD09MCl7DQogICRzcWw9InNlbGVjdCAqIGZyb20gc2xfbmV3cyB3aGVyZSBOX2RlbD0wICIuJE1fbmluZm8uIiAgJE1faW5mbyBvcmRlciBieSBOX3RvcCBkZXNjLE5fb3JkZXIsTl9pZCBkZXNjIGxpbWl0ICIuKCgkcGFnZS0xKSoxMikuIiwxMiI7DQp9ZWxzZXsNCiAgaWYoJFNfc3ViPT0wKXsNCiAgICAkc3FsPSJzZWxlY3QgKiBmcm9tIHNsX25ld3Msc2xfbnNvcnQgd2hlcmUgU19kZWw9MCAkTV9pbmZvIGFuZCBOX2RlbD0wICIuJE1fbmluZm8uIiAgYW5kIE5fc29ydD1TX2lkIGFuZCBTX3N1Yj0iLiRpZC4iIG9yZGVyIGJ5IE5fdG9wIGRlc2MsTl9vcmRlcixOX2lkIGRlc2MgbGltaXQgIi4oKCRwYWdlLTEpKjEyKS4iLDEyIjsNCiAgfWVsc2V7DQogICAgJHNxbD0ic2VsZWN0ICogZnJvbSBzbF9uZXdzLHNsX25zb3J0IHdoZXJlIFNfZGVsPTAgJE1faW5mbyBhbmQgTl9kZWw9MCAiLiRNX25pbmZvLiIgIGFuZCBOX3NvcnQ9U19pZCBhbmQgU19pZD0iLiRpZC4iIG9yZGVyIGJ5IE5fdG9wIGRlc2MsTl9vcmRlcixOX2lkIGRlc2MgbGltaXQgIi4oKCRwYWdlLTEpKjEyKS4iLDEyIjsNCiAgfQ0KfQ0KDQoJCQlzW1sNCg0KICBpZihzdHJwb3MoJHJvd1siTl9jb250ZW50Il0sIltmaF9mcmVlXSIpIT09ZmFsc2UgfHwgcCgkcm93WyJOX3ByaWNlIl0pPT0wKXsNCiAgICAkaW50cm89bWJfc3Vic3RyKHN0cmlwX3RhZ3Moc3BsaXR4KCRyb3dbIk5fY29udGVudCJdLCJbZmhfZnJlZV0iLDApKSwwLDIwMCwidXRmLTgiKTsNCiAgfWVsc2V7DQogICAgJGludHJvPSLlhoXlrrnliqDlr4YiOw0KICB9DQoNCgkJCQkNCgkJCSAgICAkYXBpPSRhcGkuIjxsaSBjbGFzcz1cInNjbXMtcGljXCIgPjxhIGhyZWY9XCI/dHlwZT1uZXdzaW5mbyZpZD0iLiRyb3dbIk5faWQiXS4iXCIgdGl0bGU9XCIiLiRyb3dbIk5fdGl0bGUiXS4iXCI+IDxpbWcgc3JjPVwiIi5waWMoJHJvd1siTl9waWMiXSkuIlwiIGFsdD1cIiIuJHJvd1siTl90aXRsZSJdLiJcIj4gPHNwYW4+DQogICAgICAgICAgPHA+Ii4kaW50cm8uIjwvcD4NCiAgICAgICAgICA8aT7lj5HluIPml6XmnJ88ZW0+Ii5kYXRlKCJZLW0tZCIsc3RydG90aW1lKCRyb3dbIk5fZGF0ZSJdKSkuIjwvZW0+IDxiIHN0eWxlPVwiZmxvYXQ6cmlnaHQ7bWFyZ2luLXRvcDotM3B4O2NvbG9yOiNGRjAwMDBcIj7vv6UiLnAoJHJvd1siTl9wcmljZSJdKS4iPC9iPjwvaT4gPGI+Ii4kcm93WyJOX3RpdGxlIl0uIjwvYj4gPC9zcGFuPiA8L2E+IDwvbGk+IjsNCgkJCSAgICBdXQ0KICAgICAgCTwvZmgtZnVuY3Rpb24+DQoNCiAgICAgIDwvdWw+DQogICAgICA8ZGl2Pg0KIDwvZGl2Pg0KICAgICAgPC9kaXY+DQoNCjxkaXYgY2xhc3M9J21ldF9wYWdlcic+DQo8ZGl2IGlkPSJwYWdlciI+PC9kaXY+DQo8L2Rpdj4NCg0KICAgIDwvZGl2Pg0KICA8L2Rpdj4NCjwvc2VjdGlvbj4NCjxkaXYgY2xhc3M9ImNvbnRhaW5lciI+DQogIDxkaXYgY2xhc3M9ImZvb3Qtc2VydmljZSI+DQogICAgPHVsIGNsYXNzPSJmb290LXNlcnZpY2Utd3JhcGVyIj4NCiAgICAgIDxsaSBjbGFzcz0iZm9vdC1zZXJ2aWNlLXNsaWRlIj48YSAgdGl0bGU9Iuato+WTgeS/neivgSI+PGkgY2xhc3M9ImZhIGZhLWRpYW1vbmQiPjwvaT7mraPlk4Hkv53or4E8L2E+PC9saT4NCiAgICAgIDxsaSBjbGFzcz0iZm9vdC1zZXJ2aWNlLXNsaWRlIj48YSAgdGl0bGU9IuWmguWunuaPj+i/sCI+PGkgY2xhc3M9ImZhIGZhLWNhbWVyYS1yZXRybyI+PC9pPuWmguWunuaPj+i/sDwvYT48L2xpPg0KICAgICAgPGxpIGNsYXNzPSJmb290LXNlcnZpY2Utc2xpZGUiPjxhICB0aXRsZT0i5LiT5Lia6YWN6YCBIj48aSBjbGFzcz0iZmEgZmEtdHJ1Y2siPjwvaT7kuJPkuJrphY3pgIE8L2E+PC9saT4NCiAgICAgIDxsaSBjbGFzcz0iZm9vdC1zZXJ2aWNlLXNsaWRlIj48YSAgdGl0bGU9IumHkeeJjOacjeWKoSI+PGkgY2xhc3M9ImZhIGZhLWhlYXJ0LW8iPjwvaT7ph5HniYzmnI3liqE8L2E+PC9saT4NCiAgICAgIDxsaSBjbGFzcz0iZm9vdC1zZXJ2aWNlLXNsaWRlIj48YSAgdGl0bGU9IuS4h+WNg+S/oei1liI+PGkgY2xhc3M9ImZhIHdiLWdhbGxlcnkiPjwvaT7kuIfljYPkv6HotZY8L2E+PC9saT4NCiAgICA8L3VsPg0KICA8L2Rpdj4NCiAgPGRpdiBjbGFzcz0iZm9vdC1jb250ZW50Ij4NCiAgICA8ZGl2IGNsYXNzPSJmb290LW5hdiI+DQogICAgICA8dWwgY2xhc3M9ImZvb3QtbmF2LXdyYXBlciI+DQoNCiAgICAgICAgPGZoLWZ1bmN0aW9uPg0KICAgICAgICAgICAgICAgICRzcWw9InNlbGVjdCAqIGZyb20gc2xfbWVudSB3aGVyZSBVX2hpZGU9MCBhbmQgbm90IFVfdHlwZT0naW5kZXgnIGFuZCBub3QgVV90eXBlPSdsaW5rJyBhbmQgVV9kZWw9MCBhbmQgVV9zdWI9MCBvcmRlciBieSBVX29yZGVyLFVfaWQgZGVzYyI7DQogICAgICAgICAgICAgICAgc1tbDQogICAgICAgICAgICAgICAgICANCiAgICAgICAgICAgICAgICAgICRhcGk9JGFwaS4iPGxpIGNsYXNzPVwiZm9vdC1uYXYtc2xpZGVcIj4gPGI+PGEgaHJlZj1cIj90eXBlPSIuJHJvd1siVV90eXBlIl0uIiZpZD0iLiRyb3dbIlVfdHlwZWlkIl0uIlwiICB0aXRsZT1cIiIuJHJvd1siVV90aXRsZSJdLiJcIj4iLiRyb3dbIlVfdGl0bGUiXS4iPC9hPjwvYj4NCiAgICAgICAgICA8b2w+IjsNCg0KICAgICAgICAgICAgJHNxbDI9InNlbGVjdCAqIGZyb20gc2xfbWVudSB3aGVyZSBVX2hpZGU9MCBhbmQgVV9kZWw9MCBhbmQgVV9zdWI9Ii4kcm93WyJVX2lkIl0uIiBvcmRlciBieSBVX29yZGVyLFVfaWQgZGVzYyI7DQogICAgICAgICAgICAgICAgczJbWw0KICAgICAgICAgICAgICAgICAgJGFwaT0kYXBpLiI8bGk+PGEgaHJlZj1cIj90eXBlPSIuJHJvdzJbIlVfdHlwZSJdLiImaWQ9Ii4kcm93MlsiVV90eXBlaWQiXS4iXCIgIHRpdGxlPVwiIi4kcm93MlsiVV90aXRsZSJdLiJcIj4iLiRyb3cyWyJVX3RpdGxlIl0uIjwvYT48L2xpPiI7DQogICAgICAgICAgICAgICAgXV0NCg0KICAgICAgICAgICRhcGk9JGFwaS4iPC9vbD4NCiAgICAgICAgPC9saT4iOw0KICAgICAgICAgICAgICAgICAgICBdXQ0KDQogICAgICAgICAgICAgIDwvZmgtZnVuY3Rpb24+DQogICAgICAgIA0KICAgICAgPC91bD4NCiAgICA8L2Rpdj4NCiAgICA8ZGl2IGNsYXNzPSJmb290LXRleHQiPiA8Yj48YSBocmVmPSJ0ZWw6MDEwLTEwMDg2IiB0aXRsZT0iMDEwLTEwMDg2Ij4wMTAtMTAwODY8L2E+PC9iPiA8aT7mnI3liqHml7bpl7QgOTowMC0yMjowMDwvaT4NCiAgICAgIDxwPiA8YSBpZD0ibWV0LXdlaXhpbiI+PGkgY2xhc3M9ImZhIGZhLXdlaXhpbiBsaWdodC1ncmVlbi03MDAiIGRhdGEtcGx1Z2luPSJ3ZWJ1aVBvcG92ZXIiIGRhdGEtdHJpZ2dlcj0iaG92ZXIiIGRhdGEtYW5pbWF0aW9uPSJwb3AiIGRhdGEtcGxhY2VtZW50PSd0b3AnIGRhdGEtd2lkdGg9JzE2MCcgZGF0YS1wYWRkaW5nPScwJyBkYXRhLWNvbnRlbnQ9IjxpbWcgc3JjPSdtZWRpYS8yMDE5MTEyNjIyNDM1MldmLmpwZycgc3R5bGU9J3dpZHRoOiAxNTBweDtoZWlnaHQ6MTUwcHg7ZGlzcGxheTpibG9jazttYXJnaW46YXV0bzsnPiI+PC9pPjwvYT4gDQogICAgICAgIA0KICAgICAgPC9wPg0KICAgIDwvZGl2Pg0KICA8L2Rpdj4NCjwvZGl2Pg0KPGZvb3Rlcj4NCiAgPGRpdiBjbGFzcz0iY29udGFpbmVyIj4NCiAgICA8ZGl2IGNsYXNzPSJtZXQtbGlua3MiPg0KICAgICAgPG9sIGNsYXNzPSJicmVhZGNydW1iIj4NCiAgICAgICAgPGxpPuWPi+aDhemTvuaOpSA6PC9saT4NCiAgICAgICAgPGZoLWZ1bmN0aW9uPg0KICAgICAgICAkc3FsPSJzZWxlY3QgKiBmcm9tIHNsX2xpbmsgd2hlcmUgTF9kZWw9MCBvcmRlciBieSBMX2lkIGRlc2MiOw0KICAgICAgICAgICAgICAgIHNbWw0KICAgICAgICAgICAgICAgICAgICAgICAgJGFwaT0kYXBpLiI8bGk+PGEgaHJlZj1cIiIuJHJvd1siTF9saW5rIl0uIlwiIHRhcmdldD1cIl9ibGFua1wiPiIuJHJvd1siTF90aXRsZSJdLiI8L2E+ICA8L2xpPiI7DQogICAgICAgICAgICAgICAgICAgIF1dDQogICAgICAgIDwvZmgtZnVuY3Rpb24+DQogICAgICA8L29sPg0KICAgIDwvZGl2Pg0KICAgIDxwPg0KICAgIDxwPg0KQ29weXJpZ2h0IMKpIDIwMTUtMjAyMCDmgqjnmoTlhazlj7jlkI3np7Ag54mI5p2D5omA5pyJIDxhIGhyZWY9Imh0dHA6Ly9iZWlhbi5taWl0Lmdvdi5jbi8iIHRhcmdldD0iX2JsYW5rIj7kuqxJQ1DlpIcwMDAwMDAwMOWPtzwvYT4NCiAgICAgIDwvcD4NCiAgICA8L3A+DQogIDwvZGl2Pg0KPC9mb290ZXI+DQo8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImJ0biBidG4taWNvbiBidG4tcHJpbWFyeSBidG4tc3F1YXJlZCBtZXQtc2Nyb2xsLXRvcCBoaWRlIj48aSBjbGFzcz0iaWNvbiB3Yi1jaGV2cm9uLXVwIiBhcmlhLWhpZGRlbj0idHJ1ZSI+PC9pPjwvYnV0dG9uPg0KPGJ1dHRvbiB0eXBlPSJidXR0b24iIG9uY2xpY2s9IndpbmRvdy5sb2NhdGlvbi5ocmVmPSdtZW1iZXIvY2FydC5waHAnIiBjbGFzcz0iYnRuIGJ0bi1pY29uIGJ0bi1wcmltYXJ5IGJ0bi1zcXVhcmVkIG1ldC1zY3JvbGwtdG9wIGhpZGUiIHN0eWxlPSJib3R0b206IDUwcHg7Ij48aSBjbGFzcz0iaWNvbiB3Yi1zaG9wcGluZy1jYXJ0IiBhcmlhLWhpZGRlbj0idHJ1ZSI+PC9pPjwvYnV0dG9uPg0KPHNjcmlwdCBzcmM9InRlbXBsYXRlL3QxL3NraW4vanMvc2hvcF9sYW5nX2NuLmpzIj48L3NjcmlwdD4gDQo8c2NyaXB0IHNyYz0idGVtcGxhdGUvdDEvc2tpbi9qcy9pbmRleC5qcyI+PC9zY3JpcHQ+IA0KPHNjcmlwdCBzcmM9InRlbXBsYXRlL3QxL3NraW4vanMvc2hvcF92My5qcyI+PC9zY3JpcHQ+DQo8c2NyaXB0IHNyYz0ianMvanF1ZXJ5LnBhZ2VyLmpzIiB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPjwvc2NyaXB0Pg0KPHNjcmlwdD4NCiQoIi5zY21zLXBpYyIpLmF0dHIoInN0eWxlIiwiZmxvYXQ6IG5vbmU7ZGlzcGxheTppbmxpbmUtYmxvY2s7dmVydGljYWwtYWxpZ246dG9wOyIpOw0KJChkb2N1bWVudCkucmVhZHkoZnVuY3Rpb24oKSB7DQogICAgJCgiI3BhZ2VyIikucGFnZXIoeyBwYWdlbnVtYmVyOiA8ZmgtZnVuY3Rpb24+ICRhcGk9JGFwaS4kcGFnZTs8L2ZoLWZ1bmN0aW9uPiwgcGFnZWNvdW50OiA8ZmgtZnVuY3Rpb24+ICRhcGk9JGFwaS4kcGFnZV9udW07PC9maC1mdW5jdGlvbj4sIGJ1dHRvbkNsaWNrQ2FsbGJhY2s6IFBhZ2VDbGljayB9KTsNCn0pOw0KDQpQYWdlQ2xpY2sgPSBmdW5jdGlvbihwYWdlY2xpY2tlZG51bWJlcikgew0KICB3aW5kb3cubG9jYXRpb249IjxmaC1mdW5jdGlvbj4kYXBpPSRhcGkudXJsKCR1cmwsInBhZ2UiLCRfR0VUWyJwYWdlIl0pOzwvZmgtZnVuY3Rpb24+JnBhZ2U9IitwYWdlY2xpY2tlZG51bWJlcjsNCn0NCjwvc2NyaXB0Pg0KPGxpbmsgaHJlZj0nY3NzL2xhbnJlbnpoaWppYS5jc3MnIHJlbD0nc3R5bGVzaGVldCcgdHlwZT0ndGV4dC9jc3MnIC8+PHNjcmlwdCBzcmM9J2pzL2pxdWVyeS5LaW5TbGlkZXNob3ctMS4yLjEubWluLmpzJyB0eXBlPSd0ZXh0L2phdmFzY3JpcHQnPjwvc2NyaXB0PjxkaXYgaWQ9J29ubGluZV9xcV9sYXllcicgc3R5bGU9J3otaW5kZXg6MjAwMDsnPjxkaXYgaWQ9J29ubGluZV9xcV90YWInPjxkaXYgY2xhc3M9J29ubGluZV9pY29uJz48YSBpZD0nZmxvYXRTaG93JyBzdHlsZT0nZGlzcGxheTpibG9jazsnIGhyZWY9J2phdmFzY3JpcHQ6dm9pZCgwKTsnPiZuYnNwOzwvYT48YSAgaWQ9J2Zsb2F0SGlkZScgc3R5bGU9J2Rpc3BsYXk6bm9uZTsnIGhyZWY9J2phdmFzY3JpcHQ6dm9pZCgwKTsnPiZuYnNwOzwvYT48L2Rpdj48L2Rpdj48ZGl2IGlkPSdvbmxpbmVTZXJ2aWNlJyBzdHlsZT0nZGlzcGxheTpub25lJz48ZGl2IGNsYXNzPSdvbmxpbmVfd2luZG93cyBvdmVyeic+PGRpdiBjbGFzcz0nb25saW5lX3dfdG9wJz48L2Rpdj48ZGl2IGNsYXNzPSdvbmxpbmVfd19jIG92ZXJ6Jz48ZGl2IGNsYXNzPSdvbmxpbmVfYmFyIGV4cGFuZCcgaWQ9J29ubGluZVNvcnQxJz48aDI+PGEgb25jbGljaz0nY2hhbmdlT25saW5lKDEpJz7lnKjnur/lrqLmnI08L2E+PC9oMj48ZGl2IGNsYXNzPSdvbmxpbmVfY29udGVudCBvdmVyeicgaWQ9J29ubGluZVR5cGUxJz48dWwgY2xhc3M9J292ZXJ6Jz48bGk+PGEgdGl0bGU9J+eCueWHu+i/memHjOe7meaIkeWPkea2iOaBrycgaHJlZj0naHR0cDovL3dwYS5xcS5jb20vbXNncmQ/dj0zJnVpbj0xMjMxMjMxMjMmc2l0ZT1xcSZtZW51PXllcycgdGFyZ2V0PSdfYmxhbmsnIGNsYXNzPSdxcV9pY29uJz7llK7liY3lkqjor6I8L2E+PC9saT48bGk+PGEgdGl0bGU9J+eCueWHu+i/memHjOe7meaIkeWPkea2iOaBrycgaHJlZj0naHR0cDovL3d3dy50YW9iYW8uY29tL3dlYnd3L3d3LnBocD92ZXI9MyZ0b3VpZD10YW9iYW8mc2l0ZWlkPWNudGFvYmFvJnN0YXR1cz0xJmNoYXJzZXQ9dXRmLTgnIHRhcmdldD0nX2JsYW5rJyBjbGFzcz0nd3dfaWNvbic+5ZSu5ZCO5pyN5YqhPC9hPjwvbGk+PC91bD48L2Rpdj48L2Rpdj48ZGl2IGNsYXNzPSdvbmxpbmVfYmFyIGNvbGxhcHNlMicgaWQ9J29ubGluZVNvcnQyJz48aDI+PGEgb25jbGljaz0nY2hhbmdlT25saW5lKDIpJz7nlLXor53lrqLmnI08L2E+PC9oMj48ZGl2IGNsYXNzPSdvbmxpbmVfY29udGVudCBvdmVyeicgaWQ9J29ubGluZVR5cGUyJz48dWwgY2xhc3M9J292ZXJ6Jz48bGk+MDEwLTEwMDg2PC9saT48L3VsPjwvZGl2PjwvZGl2PjxkaXYgY2xhc3M9J29ubGluZV9iYXIgY29sbGFwc2UyJyBpZD0nb25saW5lU29ydDMnPjxoMj48YSBvbmNsaWNrPSdjaGFuZ2VPbmxpbmUoMyknPue9keermeS6jOe7tOeggTwvYT48L2gyPjxkaXYgY2xhc3M9J29ubGluZV9jb250ZW50IG92ZXJ6JyBpZD0nb25saW5lVHlwZTMnPjx1bCBjbGFzcz0nb3ZlcnonPjxzY3JpcHQgdHlwZT0ndGV4dC9qYXZhc2NyaXB0JyBzcmM9J2pzL3FyY29kZS5taW4uanMnPjwvc2NyaXB0PjxkaXYgaWQ9J3FyY29kZScgc3R5bGU9J21hcmdpbjowIDAgMTBweCAxMHB4Oyc+PC9kaXY+PHNjcmlwdD52YXIgcXJjb2RlID0gbmV3IFFSQ29kZSgncXJjb2RlJywge3dpZHRoOiAxMTAsaGVpZ2h0OiAxMTAsY29sb3JEYXJrOiAnIzAwMDAwMCcsY29sb3JMaWdodDogJyNmZmZmZmYnLGNvcnJlY3RMZXZlbDogUVJDb2RlLkNvcnJlY3RMZXZlbC5IfSk7cXJjb2RlLm1ha2VDb2RlKCdodHRwOi8vbG9jYWxob3N0OjUwMDEnKTs8L3NjcmlwdD48L3VsPjwvZGl2PjwvZGl2PjxkaXYgY2xhc3M9J29ubGluZV9iYXIgY29sbGFwc2UyJyBpZD0nb25saW5lU29ydDQnPjxoMj48YSBvbmNsaWNrPSdjaGFuZ2VPbmxpbmUoNCknPuW+ruS/oeWFrOS8l+WPtzwvYT48L2gyPjxkaXYgY2xhc3M9J29ubGluZV9jb250ZW50IG92ZXJ6JyBpZD0nb25saW5lVHlwZTQnPjx1bCBjbGFzcz0nb3ZlcnonPjxpbWcgc3JjPSdtZWRpYS8yMDE5MTEyNjIyNDM1MldmLmpwZycgd2lkdGg9JzEyMCcgLz48L3VsPjwvZGl2PjwvZGl2PjwvZGl2PjxkaXYgY2xhc3M9J29ubGluZV93X2JvdHRvbSc+PC9kaXY+PC9kaXY+PC9kaXY+PC9kaXY+DQoNCjxmaC1mdW5jdGlvbj4NCmlmKGlzTW9iaWxlKCkpew0KICAkYXBpPSRhcGkuJzxzdHlsZT4NCi50YWJfYmFye3Bvc2l0aW9uOiBmaXhlZDtib3R0b206IDBweDtsZWZ0OiAwcHg7ei1pbmRleDogOTk5OTtiYWNrZ3JvdW5kOiAjZmZmO2hlaWdodDogNTVweDt3aWR0aDogMTAwJTtib3JkZXItdG9wOiBzb2xpZCAxcHggI0RERDtwYWRkaW5nLXRvcDogNXB4O2ZvbnQtc2l6ZTogMTJweDt9DQoudGFiX2JhciAudGFie30NCi50YWJfYmFyIC5hY3RpdmV7Y29sb3I6ICNmZjAwMDB9DQoudGFiX2JhciBpbWd7aGVpZ2h0OiAyN3B4O30NCi50YWJfYmFyIHRhYmxle3dpZHRoOiAxMDAlO30NCi50YWJfYmFyIHRhYmxlIHRyIHRke3RleHQtYWxpZ246IGNlbnRlcjt9DQouaDUwe2hlaWdodDogNTBweDt9DQoNCjwvc3R5bGU+DQoNCjxkaXYgY2xhc3M9Img1MCI+PC9kaXY+DQo8ZGl2IGNsYXNzPSJ0YWJfYmFyIj4NCiAgPHRhYmxlPg0KICAgIDx0cj4NCiAgPHRkPjxhIGNsYXNzPSJ0YWIiIGhyZWY9Ii4vIj4NCiAgICA8aW1nIHNyYz0idGVtcGxhdGUvdDEvc2tpbi9pbWFnZXMvdGFiMS5wbmciPg0KICAgIDxkaXYgPummlumhtTwvZGl2Pg0KICA8L2E+PC90ZD4nOw0KDQogIGlmKCRjb25maWctPnByb2R1Y3QhPSJmYWxzZSIpew0KICAgICRhcGk9JGFwaS4nPHRkPjxhIGNsYXNzPSJ0YWIiIGhyZWY9Ij90eXBlPXByb2R1Y3QmaWQ9MCI+DQogICAgICA8aW1nIHNyYz0idGVtcGxhdGUvdDEvc2tpbi9pbWFnZXMvdGFiMi5wbmciPg0KICAgICAgPGRpdj7llYblk4E8L2Rpdj4NCiAgICA8L2E+PC90ZD4nOw0KICB9DQoNCiAgaWYoJGNvbmZpZy0+bmV3cyE9ImZhbHNlIil7DQogICAgJGFwaT0kYXBpLic8dGQ+PGEgY2xhc3M9InRhYiIgaHJlZj0iP3R5cGU9bmV3cyZpZD0wIj4NCiAgICAgIDxpbWcgc3JjPSJ0ZW1wbGF0ZS90MS9za2luL2ltYWdlcy90YWIzXzIucG5nIj4NCiAgICAgIDxkaXYgY2xhc3M9ImFjdGl2ZSI+5paH56ugPC9kaXY+DQogICAgPC9hPjwvdGQ+JzsNCiAgfQ0KDQogIGlmKCRjb25maWctPmNvdXJzZSE9ImZhbHNlIil7DQogICAgJGFwaT0kYXBpLic8dGQ+PGEgY2xhc3M9InRhYiIgaHJlZj0iP3R5cGU9Y291cnNlJmlkPTAiPg0KICAgICAgICA8aW1nIHNyYz0idGVtcGxhdGUvdDEvc2tpbi9pbWFnZXMvdGFiNS5wbmciPg0KICAgICAgICA8ZGl2ID7or77nqIs8L2Rpdj4NCiAgICAgIDwvYT48L3RkPic7DQogIH0NCg0KICAkYXBpPSRhcGkuJzx0ZD48YSBjbGFzcz0idGFiIiBocmVmPSJtZW1iZXIiPg0KICAgIDxpbWcgc3JjPSJ0ZW1wbGF0ZS90MS9za2luL2ltYWdlcy90YWI0LnBuZyI+DQogICAgPGRpdj7miJHnmoQ8L2Rpdj4NCiAgPC9hPjwvdGQ+DQo8L3RyPg0KPC90YWJsZT4NCjwvZGl2Pic7DQp9DQo8L2ZoLWZ1bmN0aW9uPg0KPGEgaHJlZj0namF2YXNjcmlwdDo7JyB0YXJnZXQ9J19ibGFuaycgb25jbGljaz0nYWxlcnQoIuacrOe9keermeeUseOAiuWVhuaTjk1BTEzjgIvlhY3otLnniYjmkK3lu7rvvIzor7fli7/nlKjkvZzllYbkuJrnlKjpgJQiKTt3aW5kb3cubG9jYXRpb24uaHJlZj0iaHR0cDovL3NoYW5ncWluZ21hbGwuY29tIicgdGl0bGU9J+WVhuaTjk1BTEwnPjxkaXYgc3R5bGU9InBvc2l0aW9uOiBmaXhlZDt6LWluZGV4Ojk5OTk5O2JvdHRvbTogMTBweDtsZWZ0OiBjYWxjKDUwJSAtIDEwMHB4KTtiYWNrZ3JvdW5kOnJnYmEoMjU1LDI1NSwyNTUsMC43KTt0ZXh0LWFsaWduOiBjZW50ZXI7d2lkdGg6IDIwMHB4O2hlaWdodDogMzBweDtsaW5lLWhlaWdodDogMzBweDtib3JkZXItcmFkaXVzOiAzMHB4O2ZvbnQtc2l6ZTogMThweDtjb2xvcjogIzMzMzMzMyI+PGltZyBzcmM9Imh0dHA6Ly9zaGFuZ3FpbmdtYWxsLmNvbS9tZWRpYS8yMDIxMDYyMDA4NDg0OUdoLmljbyIgc3R5bGU9ImhlaWdodDogMjBweDt3aWR0aDogMjBweDttYXJnaW4tcmlnaHQ6IDVweDt2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlOyI+5ZWG5pOOTUFMTDwvZGl2PjwvYT48L2JvZHk+DQo8L2h0bWw+