8bc52a5a3a9a6ec9bf5c2bcdf54bce79PCEtLWRmYWNyaUhBTEMwd0pUb05reW84ZEEwZ1kvdUJleW1sazJ2bFFIbjRNL2w3R1ZSU0RZRVhaMVo3ZCtJSDBGSTJMQ3RvWW52TkNvNDRVeE1mZUNxU2xLaUhEUkdFZlc5ZUxUM0V3Nm9vNUQ3Yzl1a3NrTm5IR1VnSzZmV01ISVJ6cTBIN1o4TksyTDA2cVFtcWtSSTVhV1RJNEVUbE4xODRRa05xVmlzWGlwUkNVRG9KRGkwWjltOWRWQUJ3amRYb2V2eWQ4QnNvOHEyNVZBLS0+PGZoLWZ1bmN0aW9uPg0KbXlzcWxpX3F1ZXJ5KCRjb25uLCAidXBkYXRlIHNsX3Byb2R1Y3Qgc2V0IFBfdmlldz1QX3ZpZXcrMSB3aGVyZSBQX2lkPSIuJGlkKTsNCiRzcWw9InNlbGVjdCAqIGZyb20gc2xfcHJvZHVjdCxzbF9wc29ydCB3aGVyZSBQX3NvcnQ9U19pZCBhbmQgUF9pZD0iLiRpZDsNCiAgJHJlc3VsdCA9IG15c3FsaV9xdWVyeSgkY29ubiwgJHNxbCk7DQogICRyb3cgPSBteXNxbGlfZmV0Y2hfYXNzb2MoJHJlc3VsdCk7DQogIGlmIChteXNxbGlfbnVtX3Jvd3MoJHJlc3VsdCkgPiAwKSB7DQogICAgJFNfaWQ9JHJvd1siU19pZCJdOw0KICAgICRQX2lkPSRyb3dbIlBfaWQiXTsNCiAgICAkUF9waWM9JHJvd1siUF9waWMiXTsNCiAgICAkUF90YWc9JHJvd1siUF90YWciXTsNCiAgICAkUF9zaHV4aW5nPSRyb3dbIlBfc2h1eGluZyJdOw0KICAgICRQX21pZD0kcm93WyJQX21pZCJdOw0KDQogICAgc3dpdGNoICgkcm93WyJQX3NlbGx0eXBlIl0pIHsNCiAgICAgICAgY2FzZSAwOg0KICAgICAgICAkUF9yZXN0PTE7DQogICAgICAgIGJyZWFrOw0KDQogICAgICAgIGNhc2UgMToNCg0KICAgICAgICAkUF9yZXN0PWdldHJzKCJzZWxlY3QgY291bnQoQ19pZCkgYXMgQ19jb3VudCBmcm9tIHNsX2NhcmQgd2hlcmUgQ19zb3J0PSIuaW50dmFsKCRyb3dbIlBfc2VsbCJdKS4iIGFuZCBDX3VzZT0wIiwiQ19jb3VudCIpOw0KICAgICAgICBicmVhazsNCg0KICAgICAgICBjYXNlIDI6DQogICAgICAgICRQX3Jlc3Q9JHJvd1siUF9yZXN0Il07DQogICAgICAgIGJyZWFrOw0KICAgIH0NCiAgfQ0KICAkZ2Vua2V5PWdlbl9rZXkoMjApOw0KPC9maC1mdW5jdGlvbj4NCjwhRE9DVFlQRSBodG1sPg0KPGh0bWw+DQo8aGVhZD4NCiAgICA8bWV0YSBjaGFyc2V0PSJ1dGYtOCI+DQogICAgPHRpdGxlPltQX3RpdGxlXSAtIOaCqOeahOe9keermeWQjeensCAtIFBvd2VyZWQgYnkg5Y+R6LSnMTAwPC90aXRsZT4NCjxsaW5rIGhyZWY9Im1lZGlhLzIwMTkxMjA4MTEzMDM1ZU0uaWNvIiByZWw9InNob3J0Y3V0IGljb24iIC8+DQo8bWV0YSBuYW1lPSJkZXNjcmlwdGlvbiIgY29udGVudD0iW1BfZGVzY3JpcHRpb25dIiAvPg0KPG1ldGEgbmFtZT0ia2V5d29yZHMiIGNvbnRlbnQ9IltQX2tleXdvcmRzXSIgLz4NCg0KICAgIDxtZXRhIG5hbWU9InZpZXdwb3J0IiBjb250ZW50PSJ3aWR0aD1kZXZpY2Utd2lkdGgsIGluaXRpYWwtc2NhbGU9MS4wIj4NCiAgICA8bGluayByZWw9InN0eWxlc2hlZXQiIGhyZWY9Imh0dHBzOi8vY2RuLmJvb3Rjc3MuY29tL3dldWkvMS4xLjIvc3R5bGUvd2V1aS5taW4uY3NzIj4NCiAgICA8bGluayByZWw9InN0eWxlc2hlZXQiIGhyZWY9Imh0dHBzOi8vY2RuLmJvb3Rjc3MuY29tL2pxdWVyeS13ZXVpLzEuMi4wL2Nzcy9qcXVlcnktd2V1aS5taW4uY3NzIj4NCiAgICA8bGluayBocmVmPSJodHRwczovL2Nkbi5ib290Y2RuLm5ldC9hamF4L2xpYnMvdHdpdHRlci1ib290c3RyYXAvMy4zLjcvY3NzL2Jvb3RzdHJhcC5taW4uY3NzIiByZWw9InN0eWxlc2hlZXQiPg0KICAgIDxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0idGVtcGxhdGUvdDgvY3NzL2ZvbnQtYXdlc29tZS5taW4uY3NzIj4NCiAgICA8bGluayByZWw9InN0eWxlc2hlZXQiIGhyZWY9InRlbXBsYXRlL3Q4L2Nzcy9zd2lwZXIubWluLmNzcyI+DQogICAgPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSJ0ZW1wbGF0ZS90OC9jc3MvbWFpbi5jc3MiPg0KICAgIDxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0idGVtcGxhdGUvdDgvY3NzL2l0ZW0uY3NzIj4NCiAgICA8bGluayByZWw9InN0eWxlc2hlZXQiIGhyZWY9InRlbXBsYXRlL3Q4L2Nzcy90aGVtZS1jb2xvci5jc3MiPg0KICAgIDxzY3JpcHQgc3JjPSJodHRwczovL2Nkbi5ib290Y3NzLmNvbS9qcXVlcnkvMS4xMS4wL2pxdWVyeS5taW4uanMiPjwvc2NyaXB0Pg0KPHNjcmlwdCBzcmM9Imh0dHBzOi8vY2RuLmJvb3Rjc3MuY29tL2pxdWVyeS13ZXVpLzEuMi4wL2pzL2pxdWVyeS13ZXVpLm1pbi5qcyI+PC9zY3JpcHQ+DQo8c2NyaXB0IHNyYz0idGVtcGxhdGUvdDgvanMvYm9vdHN0cmFwLm1pbi5qcyI+PC9zY3JpcHQ+DQo8c2NyaXB0IHNyYz0idGVtcGxhdGUvdDgvanMvc3dpcGVyLm1pbi5qcyI+PC9zY3JpcHQ+DQogICAgPCEtLVtpZiBsdCBJRSA5XT4NCiAgICA8c2NyaXB0IHNyYz0iaHR0cHM6Ly9vc3MubWF4Y2RuLmNvbS9saWJzL2h0bWw1c2hpdi8zLjcuMC9odG1sNXNoaXYuanMiPjwvc2NyaXB0Pg0KICAgIDxzY3JpcHQgc3JjPSJodHRwczovL29zcy5tYXhjZG4uY29tL2xpYnMvcmVzcG9uZC5qcy8xLjMuMC9yZXNwb25kLm1pbi5qcyI+PC9zY3JpcHQ+DQogICAgPCFbZW5kaWZdLS0+DQogICAgPHN0eWxlIHR5cGU9InRleHQvY3NzIj4NCiAgICAjYnV5IC5hZGR7DQogIGhlaWdodDoyNXB4OyB3aWR0aDoyNXB4OyBtYXJnaW46MCA1cHggMCA1cHg7bGluZS1oZWlnaHQ6MTAwJTsNCiAgYm9yZGVyOiBoaWRkZW47DQogIGJhY2tncm91bmQtY29sb3I6ICM5NTZiZmY7DQogIGNvbG9yOiAjRkZGRkZGOw0KICBmb250LXNpemU6IDE1cHg7DQogIGxpbmUtaGVpZ2h0OiAxMDAlOw0KICBjdXJzb3I6IHBvaW50ZXI7DQogIGJvcmRlci1yYWRpdXM6M3B4Ow0KfQ0KDQoNCiNidXkgLmFkZDpob3ZlciB7DQogIGJvcmRlcjogIzk1NmJmZiBzb2xpZCAxcHg7DQogIGJhY2tncm91bmQtY29sb3I6ICNGRkZGRkY7DQogIGNvbG9yOiAjOTU2YmZmOw0KfQ0KDQojYW1vdW50ew0KICBib3JkZXItdG9wOjFweCBzb2xpZCAjQUJBREIzOw0KICBib3JkZXItbGVmdDoxcHggc29saWQgI0FCQURCMzsNCiAgYm9yZGVyLXJpZ2h0OjFweCBzb2xpZCAjZGRkOw0KICBib3JkZXItYm90dG9tOjFweCBzb2xpZCAjZGRkOw0KICBoZWlnaHQ6MjRweDsNCiAgd2lkdGg6NTBweDsNCiAgcGFkZGluZzowIDVweDsNCiAgbGluZS1oZWlnaHQ6MTAwJTsNCg0KfQ0KLmJ0bntwYWRkaW5nOiA1cHg7bWFyZ2luLXRvcDogMTBweDt9DQo8L3N0eWxlPg0KPHNjcmlwdD4KdmFyIF9obXQgPSBfaG10IHx8IFtdOwooZnVuY3Rpb24oKSB7CiAgdmFyIGhtID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgic2NyaXB0Iik7CiAgaG0uc3JjID0gImh0dHBzOi8vaG0uYmFpZHUuY29tL2htLmpzP2UyZWNjNWE4MjY4ZWExYTRjOTg2MmVjN2I0ZWU1YjExIjsKICB2YXIgcyA9IGRvY3VtZW50LmdldEVsZW1lbnRzQnlUYWdOYW1lKCJzY3JpcHQiKVswXTsgCiAgcy5wYXJlbnROb2RlLmluc2VydEJlZm9yZShobSwgcyk7Cn0pKCk7Cjwvc2NyaXB0Pgo8L2hlYWQ+DQo8Ym9keT4NCjxoZWFkZXIgY2xhc3M9Inp5dy1oZWFkZXIiPg0KICAgIDxkaXYgY2xhc3M9Inp5dy1jb250YWluZXIgd2hpdGUtY29sb3IiPg0KICAgICAgICA8ZGl2IGNsYXNzPSJoZWFkLWwiPjxhIGhyZWY9ImphdmFzY3JpcHQ6d2luZG93Lmhpc3RvcnkuYmFjaygtMSkiIHRhcmdldD0iX3NlbGYiPjxpbWcgc3JjPSJ0ZW1wbGF0ZS90OC9pbWcvc3ZnL2hlYWQtcmV0dXJuLnN2ZyIgYWx0PSIiPjwvYT48L2Rpdj4NCiAgICAgICAgPGgxPg0KICAgICAgICAJPGEgaHJlZj0iLi8iPummlumhtTwvYT4NCiAgICAgICAgICAgIDxhIGhyZWY9IiMiIGNsYXNzPSJhY3RpdmUiPuWVhuWTgTwvYT4NCiAgICAgICAgICAgIDxhIGhyZWY9IiNpdGVtLXByZWNlbnQiPuivpuaDhTwvYT4NCg0KICAgICAgICA8L2gxPg0KICAgICAgICA8ZGl2IGNsYXNzPSJoZWFkLXIiPjxhIGhyZWY9Ij90eXBlPXByb2R1Y3QmaWQ9W1NfaWRdIj48aW1nIHNyYz0idGVtcGxhdGUvdDgvaW1nL3N2Zy9oZWFkLW1vcmUuc3ZnIiBhbHQ9IiI+PC9hPjwvZGl2Pg0KICAgIDwvZGl2Pg0KPC9oZWFkZXI+DQo8Zm9vdGVyIGNsYXNzPSJ6eXctZm9vdGVyIj4NCiAgICA8ZGl2IGNsYXNzPSJ6eXctY29udGFpbmVyIHdoaXRlLWJnY29sb3IgY2xlYXJmaXgiPg0KDQogICAgCTxmaC1mdW5jdGlvbj4NCiAgICBpZigkUF9taWQ9PTApew0KICAgICRhcGk9JGFwaS4iPGRpdiBjbGFzcz1cImNvbC1zbS0yIGNvbC14cy0yXCI+DQogICAgICAgICAgICA8YSBocmVmPVwiLi9cIiBjbGFzcz1cIndldWktdGFiYmFyX19pdGVtXCI+DQogICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIndldWktdGFiYmFyX19pY29uXCI+DQogICAgICAgICAgICAgICAgICAgIDxpbWcgc3JjPVwidGVtcGxhdGUvdDgvaW1nL3N2Zy9pdGVtLTEuc3ZnXCIgYWx0PVwiXCI+DQogICAgICAgICAgICAgICAgPC9kaXY+DQogICAgICAgICAgICAgICAgPHAgY2xhc3M9XCJ3ZXVpLXRhYmJhcl9fbGFiZWxcIj7pppbpobU8L3A+DQogICAgICAgICAgICA8L2E+DQogICAgICAgIDwvZGl2PiI7DQogICAgCX1lbHNlew0KJGFwaT0kYXBpLiI8ZGl2IGNsYXNzPVwiY29sLXNtLTIgY29sLXhzLTJcIj4NCiAgICAgICAgICAgIDxhIGhyZWY9XCIuL3Nob3AucGhwP01faWQ9Ii4kUF9taWQuIlwiIGNsYXNzPVwid2V1aS10YWJiYXJfX2l0ZW1cIj4NCiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwid2V1aS10YWJiYXJfX2ljb25cIj4NCiAgICAgICAgICAgICAgICAgICAgPGltZyBzcmM9XCJ0ZW1wbGF0ZS90OC9pbWcvc3ZnL2l0ZW0tMS5zdmdcIiBhbHQ9XCJcIj4NCiAgICAgICAgICAgICAgICA8L2Rpdj4NCiAgICAgICAgICAgICAgICA8cCBjbGFzcz1cIndldWktdGFiYmFyX19sYWJlbFwiPuW6l+mTujwvcD4NCiAgICAgICAgICAgIDwvYT4NCiAgICAgICAgPC9kaXY+IjsNCiAgICB9DQogICAgCTwvZmgtZnVuY3Rpb24+DQogICAgICAgIA0KDQogICAgICAgIDxkaXYgY2xhc3M9ImNvbC1zbS0yIGNvbC14cy0yIj4NCiAgICAgICAgICAgIDxhIGhyZWY9Im1lbWJlci9jYXJ0LnBocCIgY2xhc3M9IndldWktdGFiYmFyX19pdGVtIj4NCiAgICAgICAgICAgICAgICANCiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJ3ZXVpLXRhYmJhcl9faWNvbiI+DQogICAgICAgICAgICAgICAgICAgIDxpbWcgc3JjPSJ0ZW1wbGF0ZS90OC9pbWcvc3ZnL2l0ZW0tMi5zdmciIGFsdD0iIj4NCiAgICAgICAgICAgICAgICA8L2Rpdj4NCiAgICAgICAgICAgICAgICA8cCBjbGFzcz0id2V1aS10YWJiYXJfX2xhYmVsIj7otK3nianovaY8L3A+DQogICAgICAgICAgICA8L2E+DQogICAgICAgIDwvZGl2Pg0KICAgICAgICA8ZGl2IGNsYXNzPSJjb2wtc20tMiBjb2wteHMtMiI+DQoNCjxmaC1mdW5jdGlvbj4NCmlmKCRQX21pZD09MCl7DQokYXBpPSRhcGkuIjxhIGhyZWY9XCIuLz90eXBlPWNvbnRhY3RcIiBjbGFzcz1cIndldWktdGFiYmFyX19pdGVtXCI+IjsNCiAgICAJfWVsc2V7DQogICAkc3FsPSJTZWxlY3QgKiBmcm9tIHNsX21lbWJlciB3aGVyZSBNX2lkPSRQX21pZCI7DQogICRyZXN1bHQgPSBteXNxbGlfcXVlcnkoJGNvbm4sICRzcWwpOw0KICBpZiAobXlzcWxpX251bV9yb3dzKCRyZXN1bHQpID4gMCkgew0KICAgICRyb3cgPSBteXNxbGlfZmV0Y2hfYXNzb2MoJHJlc3VsdCk7DQogICAgJE1fcXE9JHJvd1siTV9xcSJdOw0KICB9DQokYXBpPSRhcGkuIjxhIGhyZWY9XCJodHRwOi8vd3BhLnFxLmNvbS9tc2dyZD92PTMmdWluPSIuJE1fcXEuIiZzaXRlPXFxJm1lbnU9eWVzXCIgY2xhc3M9XCJ3ZXVpLXRhYmJhcl9faXRlbVwiPiI7DQogICAgfQ0KPC9maC1mdW5jdGlvbj4NCiAgICAgICAgICAgIA0KDQogICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0id2V1aS10YWJiYXJfX2ljb24iPg0KICAgICAgICAgICAgICAgICAgICA8aW1nIHNyYz0idGVtcGxhdGUvdDgvaW1nL3N2Zy9rZi5zdmciIGFsdD0iIj4NCiAgICAgICAgICAgICAgICA8L2Rpdj4NCiAgICAgICAgICAgICAgICA8cCBjbGFzcz0id2V1aS10YWJiYXJfX2xhYmVsIj7lrqLmnI08L3A+DQogICAgICAgICAgICA8L2E+DQogICAgICAgIDwvZGl2Pg0KICAgICAgICA8c3R5bGUgdHlwZT0idGV4dC9jc3MiPg0KICAgICAgICAuZm9vdGVyLWJ0bntib3JkZXI6bm9uZTt9DQogICAgPC9zdHlsZT4NCiAgICAgICAgPGRpdiBjbGFzcz0iY29sLXNtLTMgY29sLXhzLTMiPg0KICAgICAgICAgICAgPGEgY2xhc3M9ImZvb3Rlci1idG4gZm9vdGVyLXdhcm5pbmcgb3Blbi1wb3B1cCIgaHJlZj0iamF2YXNjcmlwdDokKCcjYnV5X2J0bicpLnNob3coKTskKCcjY2FydF9idG4nKS5oaWRlKCk7IiBkYXRhLXRhcmdldD0iI2l0ZW1fYnV5Ij7nq4vljbPotK3kubA8L2E+IjsNCiAgICAgICAgPC9kaXY+DQoNCiAgICAgICAgPGRpdiBjbGFzcz0iY29sLXNtLTMgY29sLXhzLTMiPg0KICAgICAgICAgICAgPGEgY2xhc3M9ImZvb3Rlci1idG4gZm9vdGVyLWRhbmdlciBvcGVuLXBvcHVwIiBocmVmPSJqYXZhc2NyaXB0OiQoJyNidXlfYnRuJykuaGlkZSgpOyQoJyNjYXJ0X2J0bicpLnNob3coKTsiIGRhdGEtdGFyZ2V0PSIjaXRlbV9idXkiPuWKoOWFpei0reeJqei9pjwvYT4iOw0KICAgICAgICA8L2Rpdj4NCiAgICA8L2Rpdj4NCjwvZm9vdGVyPg0KPHNlY3Rpb24gY2xhc3M9Inp5dy1jb250YWluZXIiPg0KICAgIDwhLS0gU3dpcGVyIC0tPg0KICAgIDxkaXYgY2xhc3M9Iml0ZW0taW1nIj4NCiAgICAgICAgPGRpdiBjbGFzcz0ic3dpcGVyLXdyYXBwZXIiPg0KICAgICAgICAgICAgPGZoLWZ1bmN0aW9uPg0KICAgICAgICAgICAgJHBpYz1leHBsb2RlKCJ8IiwkUF9waWMpOw0KICAgICAgICAgICAgZm9yKCRpPTA7JGk8Y291bnQoJHBpYyk7JGkrKyl7DQogICAgICAgICAgICAgICRhcGk9JGFwaS4iPGRpdiBjbGFzcz1cInN3aXBlci1zbGlkZVwiPjxpbWcgc3JjPVwiIi5waWMoJHBpY1skaV0pLiJcIiBhbHQ9XCJcIj48L2Rpdj4iOw0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgPC9maC1mdW5jdGlvbj4NCiAgICAgICAgPC9kaXY+DQogICAgICAgIDwhLS0gQWRkIFBhZ2luYXRpb24gLS0+DQogICAgICAgIDxkaXYgY2xhc3M9InN3aXBlci1wYWdpbmF0aW9uIj48L2Rpdj4NCiAgICA8L2Rpdj4NCiAgICA8ZGl2IGNsYXNzPSJpdGVtLWRldGFpbHMgd2hpdGUtYmdjb2xvciBjbGVhcmZpeCI+DQogICAgCTxzcGFuIGlkPSJjb2xsZWN0aW9uX3Byb2R1Y3QiIHBpZD0iW1BfaWRdIj48L3NwYW4+DQo8ZmgtZnVuY3Rpb24+DQoJJHNxbD0ic2VsZWN0IFFfdGl0bGUsUV9waWQgZnJvbSAoc2VsZWN0ICogZnJvbSBzbF9xdWFuIHdoZXJlIFFfZGVsPTAgYW5kIFFfZ2V0dGltZT5ub3coKSliIHdoZXJlIFFfcGlkPTAgb3IgUV9waWQ9JGlkIGdyb3VwIGJ5IFFfdGl0bGUsUV9waWQgb3JkZXIgYnkgUV9waWQgYXNjIjsNCgkJJHJlc3VsdCA9IG15c3FsaV9xdWVyeSgkY29ubiwgICRzcWwpOw0KCQlpZiAobXlzcWxpX251bV9yb3dzKCRyZXN1bHQpID4gMCkgew0KCQkkYXBpPSRhcGkuIjxhIGNsYXNzPVwib3Blbi1wb3B1cFwiIGhyZWY9XCJqYXZhc2NyaXB0OjtcIiBkYXRhLXRhcmdldD1cIiNxdWFuX3BhcmFtZXRlclwiPg0KICAgIAkJPGRpdiBzdHlsZT1cImZsb2F0OiByaWdodDtiYWNrZ3JvdW5kLWltYWdlOiBsaW5lYXItZ3JhZGllbnQodG8gbGVmdCwgI0ZGN0EwQywjRkYyQTE0KTtjb2xvcjogI2ZmZjtwYWRkaW5nOiA1cHggMTBweDtib3JkZXItcmFkaXVzOiAyNXB4IDAgMCAyNXB4O21hcmdpbi1yaWdodDogLTdweDtcIj7poobliLggPjwvZGl2Pg0KICAgIAk8L2E+IjsNCgl9DQo8L2ZoLWZ1bmN0aW9uPg0KICAgICAgICA8aDMgY2xhc3M9ImRldGFpbHMtdGl0bGUiPltQX3p5XVtQX3RpdGxlXTwvaDM+DQogICAgICAgIDxzdHJvbmcgY2xhc3M9ImRldGFpbHMtcHJpbmNlIHRoZW1lLWNvbG9yIHB1bGwtbGVmdCI+77+lW1BfcHJpY2VdPC9zdHJvbmc+IA0KICAgICAgICA8c3BhbiBjbGFzcz0iZGV0YWlscy12b2x1bWUgcHVsbC1yaWdodCI+5bey5ZSu77yaW1Bfc29sZF3ku7Y8L3NwYW4+DQogICAgPC9kaXY+DQogICAgPGRpdiBjbGFzcz0iaXRlbS1jaG9vc2Ugd2V1aS1jZWxscyBtdC02MjUiPg0KCTxmaC1mdW5jdGlvbj4NCgkgICAgICAgICAgICBpZigkUF9zaHV4aW5nIT0iIil7DQoJICAgICAgICAgICAgJGFwaT0kYXBpLiI8YSBjbGFzcz1cIndldWktY2VsbCB3ZXVpLWNlbGxfYWNjZXNzIG9wZW4tcG9wdXBcIiBocmVmPVwiamF2YXNjcmlwdDo7XCIgZGF0YS10YXJnZXQ9XCIjaXRlbV9wYXJhbWV0ZXJcIj4NCgkgICAgICAgICAgICA8ZGl2IGNsYXNzPVwid2V1aS1jZWxsX19iZFwiPg0KCSAgICAgICAgICAgICAgICA8cCBjbGFzcz1cImNob29zZS10ZXh0XCI+5Lqn5ZOB5Y+C5pWwPC9wPg0KCSAgICAgICAgICAgIDwvZGl2Pg0KCSAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ3ZXVpLWNlbGxfX2Z0IGNob29zZS1kZXNcIj4NCgkgICAgICAgICAgICA8L2Rpdj4NCgkgICAgICAgIDwvYT4iOw0KCSAgICAgICAgfQ0KCTwvZmgtZnVuY3Rpb24+DQogICAgICAgIDxkaXYgaWQ9Iml0ZW1fcGFyYW1ldGVyIiBjbGFzcz0id2V1aS1wb3B1cF9fY29udGFpbmVyIHBvcHVwLWJvdHRvbSI+DQogICAgICAgICAgICA8ZGl2IGNsYXNzPSJ3ZXVpLXBvcHVwX19vdmVybGF5Ij48L2Rpdj4NCiAgICAgICAgICAgIDxkaXYgY2xhc3M9IndldWktcG9wdXBfX21vZGFsIj4NCiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJpdGVtLXBhcmFtZXRlci1sYXllciB3aGl0ZS1iZ2NvbG9yIj4NCiAgICAgICAgICAgICAgICAgICAgPGgzIGNsYXNzPSJwYXJhbWV0ZXItdGl0bGUiPuS6p+WTgeWPguaVsDwvaDM+DQogICAgICAgICAgICAgICAgICAgIDx0YWJsZSBjbGFzcz0idGFibGUgdGFibGUtY29uZGVuc2VkIHBhcmFtZXRlci10YWJsZSI+DQogICAgICAgICAgICAgICAgICAgICAgICA8ZmgtZnVuY3Rpb24+DQogICAgICAgICAgICBpZigkUF9zaHV4aW5nIT0iIil7DQogICAgICAgICAgICAkcz1leHBsb2RlKCJcciIsJFBfc2h1eGluZyk7DQogICAgICAgICAgICBmb3IoJGk9MDskaTxjb3VudCgkcyk7JGkrKyl7DQogICAgICAgICAgICAgICAgJGFwaT0kYXBpLiI8dHI+PHRoPiIuc3BsaXR4KCRzWyRpXSwiOiIsMCkuIjwvdGg+PHRkPiIuc3BsaXR4KCRzWyRpXSwiOiIsMSkuIjwvdGQ+PC90cj4iOw0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICAgICAgPC9maC1mdW5jdGlvbj4NCiAgICAgICAgICAgICAgICAgICAgPC90YWJsZT4NCiAgICAgICAgICAgICAgICAgICAgPGJ1dHRvbiBjbGFzcz0iaXRlbS1sYXllci1idXR0b24gdGhlbWUtYmdjb2xvciB3aGl0ZS1jb2xvciBjbG9zZS1wb3B1cCIgdHlwZT0ic3VibWl0Ij7lrozmiJA8L2J1dHRvbj4NCiAgICAgICAgICAgICAgICA8L2Rpdj4NCiAgICAgICAgICAgIDwvZGl2Pg0KICAgICAgICA8L2Rpdj4NCg0KICAgICAgICA8ZGl2IGlkPSJxdWFuX3BhcmFtZXRlciIgY2xhc3M9IndldWktcG9wdXBfX2NvbnRhaW5lciBwb3B1cC1ib3R0b20iPg0KICAgICAgICAgICAgPGRpdiBjbGFzcz0id2V1aS1wb3B1cF9fb3ZlcmxheSI+PC9kaXY+DQogICAgICAgICAgICA8ZGl2IGNsYXNzPSJ3ZXVpLXBvcHVwX19tb2RhbCI+DQogICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iaXRlbS1wYXJhbWV0ZXItbGF5ZXIgd2hpdGUtYmdjb2xvciI+DQogICAgICAgICAgICAgICAgICAgIDxoMyBjbGFzcz0icGFyYW1ldGVyLXRpdGxlIj7poobkvJjmg6DliLg8L2gzPg0KICAgICAgICAgICAgICAgICAgICA8ZGl2IHN0eWxlPSJmb250LXNpemU6IDEycHg7cGFkZGluZzogMTBweDsiPltQX3F1YW5dPC9kaXY+DQogICAgICAgICAgICAgICAgICAgIDxidXR0b24gY2xhc3M9Iml0ZW0tbGF5ZXItYnV0dG9uIHRoZW1lLWJnY29sb3Igd2hpdGUtY29sb3IgY2xvc2UtcG9wdXAiIHR5cGU9InN1Ym1pdCI+5a6M5oiQPC9idXR0b24+DQogICAgICAgICAgICAgICAgPC9kaXY+DQogICAgICAgICAgICA8L2Rpdj4NCiAgICAgICAgPC9kaXY+DQoNCiAgICA8L2Rpdj4NCiAgICA8ZGl2IGNsYXNzPSJpdGVtLXNlcnZlIj4NCiAgICAgICAgPHNwYW4+PGkgY2xhc3M9ImZhIGZhLWNoZWNrLWNpcmNsZS1vIHRoZW1lLWNvbG9yIj48L2k+IOWTgei0qOaJv+ivujwvc3Bhbj4NCiAgICAgICAgPHNwYW4+PGkgY2xhc3M9ImZhIGZhLWNoZWNrLWNpcmNsZS1vIHRoZW1lLWNvbG9yIj48L2k+IOS4g+WkqeWMhemAgOaNojwvc3Bhbj4NCiAgICAgICAgPHNwYW4+PGkgY2xhc3M9ImZhIGZhLWNoZWNrLWNpcmNsZS1vIHRoZW1lLWNvbG9yIj48L2k+IOWmguWunuaPj+i/sDwvc3Bhbj4NCiAgICA8L2Rpdj4NCiAgICA8ZGl2IGNsYXNzPSJpdGVtLWFzc2VzcyB3ZXVpLWNlbGxzIG1iLTYyNSI+DQogICAgICAgIDxhIGNsYXNzPSJ3ZXVpLWNlbGwgd2V1aS1jZWxsX2FjY2VzcyBvcGVuLXBvcHVwIiBocmVmPSJqYXZhc2NyaXB0OjsiIGRhdGEtdGFyZ2V0PSIjaXRlbV9zcGVjIj4NCiAgICAgICAgICAgIDxkaXYgY2xhc3M9IndldWktY2VsbF9fYmQiPg0KICAgICAgICAgICAgICAgIDxwIGNsYXNzPSJjaG9vc2UtdGV4dCI+55So5oi36K+E5Lu377yIPGVtIGNsYXNzPSJ0aGVtZS1jb2xvciI+W0VfY291bnRdPC9lbT7mnaHvvIk8L3A+DQogICAgICAgICAgICA8L2Rpdj4NCiAgICAgICAgICAgIDxkaXYgY2xhc3M9IndldWktY2VsbF9fZnQgY2hvb3NlLWRlcyI+DQogICAgICAgICAgICAgICAgMTAwJeWlveivhA0KICAgICAgICAgICAgPC9kaXY+DQogICAgICAgIDwvYT4NCiAgICA8L2Rpdj4NCg0KICAgIDxkaXYgaWQ9Iml0ZW1fYnV5IiBjbGFzcz0id2V1aS1wb3B1cF9fY29udGFpbmVyIHBvcHVwLWJvdHRvbSI+DQogICAgICAgIDxkaXYgY2xhc3M9IndldWktcG9wdXBfX292ZXJsYXkiPjwvZGl2Pg0KICAgICAgICA8ZGl2IGNsYXNzPSJ3ZXVpLXBvcHVwX19tb2RhbCI+DQogICAgICAgICAgICA8ZGl2IGNsYXNzPSJpdGVtLXBhcmFtZXRlci1sYXllciB3aGl0ZS1iZ2NvbG9yIiBzdHlsZT0ibWF4LWhlaWdodDogNjAwcHg7aGVpZ2h0OiBhdXRvOyI+DQoNCiAgICAgICAgICAgICAgICA8Zm9ybSBpZD0iYnV5IiBtZXRob2Q9InBvc3QiIGFjdGlvbj0iYnV5LnBocD90eXBlPXByb2R1Y3RpbmZvJmlkPVtQX2lkXSIgc3R5bGU9Im1hcmdpbi1ib3R0b206IDU2cHgiPg0KICAgICAgICAgICAgICAgICAgICA8ZGl2IHN0eWxlPSJwYWRkaW5nOiAxMHB4OyI+DQoNCiAgICAgICAgICAgICAgICAgICAgPGRpdj4NCiAgICAgICAgICAgICAgICAgICAgPGltZyBzcmM9IltQX3BpY10iIHN0eWxlPSJ3aWR0aDo4MHB4O2hlaWdodDo4MHB4OyI+DQogICAgICAgICAgICAgICAgICAgIDxkaXYgc3R5bGU9IndpZHRoOmNhbGMoMTAwJSAtIDEwMHB4KTtkaXNwbGF5OmlubGluZS1ibG9jazttYXJnaW4tbGVmdDoxNXB4O3ZlcnRpY2FsLWFsaWduOnRvcCI+DQogICAgICAgICAgICAgICAgICAgIDxzcGFuIHN0eWxlPSJjb2xvcjogI2ZmMDAwMDsiPu+/pTxzcGFuIGlkPSJwcmljZSIgc3R5bGU9ImZvbnQtd2VpZ2h0OmJvbGQ7Zm9udC1zaXplOjE3cHg7Ij5bUF9wcmljZV08L3NwYW4+W1BfdmlwXTwvc3Bhbj48YnI+DQogICAgICAgICAgICAgICAgICAgIDxiPltQX3RpdGxlXTwvYj48YnI+DQogICAgICAgICAgICAgICAgICAgIOW3sumAieaLqe+8mjxzcGFuIGlkPSJnZ190aXRsZSI+5qCH6YWNPC9zcGFuPg0KICAgICAgICAgICAgICAgICAgICA8L2Rpdj4NCiAgICAgICAgICAgICAgICA8L2Rpdj4NCiAgICAgICAgICAgICAgICAgICAgPGhyPg0KICAgICAgICAgICAgICAgICAgICANCiAgICAgICAgICAgICAgICAgICAgPHA+W1BfZ2ddPC9wPg0KICAgICAgICAgICAgICAgICAgICA8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJnZW5rZXkiIHZhbHVlPSI8ZmgtZnVuY3Rpb24+JGFwaT0kYXBpLiRnZW5rZXk7PC9maC1mdW5jdGlvbj4iPg0KICAgICAgICAgICAgICAgICAgICA8cCBzdHlsZT0ibWFyZ2luLWJvdHRvbTogMTBweCI+PGI+6LSt5Lmw5pWw6YeP77yaPC9iPg0KICAgICAgICAgICAgICA8aW5wdXQgdHlwZT0nYnV0dG9uJyBjbGFzcz0nYWRkJyB2YWx1ZT0nLScgb25DbGljaz0namF2YXNjcmlwdDppZih0aGlzLmZvcm0uYW1vdW50LnZhbHVlPj0yKXt0aGlzLmZvcm0uYW1vdW50LnZhbHVlLS07fSc+DQogICAgICAgICAgICAgIDxpbnB1dCB0eXBlPSd0ZXh0JyBuYW1lPSdubycgdmFsdWU9JzEnIGlkPSdhbW91bnQnPg0KICAgICAgICAgICAgICA8aW5wdXQgdHlwZT0nYnV0dG9uJyBjbGFzcz0nYWRkJyB2YWx1ZT0nKycgaWQ9J3BsdXMnIG9uQ2xpY2s9J2phdmFzY3JpcHQ6aWYodGhpcy5mb3JtLmFtb3VudC52YWx1ZTxbUF9yZXN0XSl7dGhpcy5mb3JtLmFtb3VudC52YWx1ZSsrO30nPg0KICAgICAgICAgICAgICDvvIjlupPlrZjvvJo8c3BhbiBpZD0iZ2dfcmVzdCI+W1BfcmVzdHRpdGxlXTwvc3Bhbj7vvIk8L3A+DQogICAgICAgICAgPC9kaXY+DQogICAgICAgICAgICAgICAgICAgIDxpbnB1dCBjbGFzcz0iaXRlbS1sYXllci1idXR0b24gdGhlbWUtYmdjb2xvciB3aGl0ZS1jb2xvciBjbG9zZS1wb3B1cCIgaWQ9ImJ1eV9idG4iIHR5cGU9InN1Ym1pdCIgdmFsdWU9Iueri+WNs+i0reS5sCIvPg0KICAgICAgICAgICAgICAgICAgICA8YnV0dG9uIGNsYXNzPSJpdGVtLWxheWVyLWJ1dHRvbiB0aGVtZS1iZ2NvbG9yIHdoaXRlLWNvbG9yIGNsb3NlLXBvcHVwIiBpZD0iY2FydF9idG4iIHR5cGU9ImJ1dHRvbiIgb25jbGljaz0iYWRkY2FydCgpIiA+5Yqg5YWl6LSt54mp6L2mPC9idXR0b24+DQogICAgICAgICAgICAgICAgPC9mb3JtPg0KICAgICAgICAgICAgPC9kaXY+DQogICAgICAgIDwvZGl2Pg0KICAgIDwvZGl2Pg0KDQo8ZGl2IGlkPSJpdGVtX3NwZWMiIGNsYXNzPSJ3ZXVpLXBvcHVwX19jb250YWluZXIgcG9wdXAtYm90dG9tIj4NCiAgICAgICAgICAgIDxkaXYgY2xhc3M9IndldWktcG9wdXBfX292ZXJsYXkiPjwvZGl2Pg0KICAgICAgICAgICAgPGRpdiBjbGFzcz0id2V1aS1wb3B1cF9fbW9kYWwiPg0KICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9Iml0ZW0tcGFyYW1ldGVyLWxheWVyIHdoaXRlLWJnY29sb3IiPg0KICAgICAgICAgICAgICAgICAgICA8aDMgY2xhc3M9InBhcmFtZXRlci10aXRsZSI+5ZWG5ZOB6K+E5Lu3PC9oMz4NCiAgICAgICAgICAgICAgICAgICAgPHRhYmxlIGNsYXNzPSJ0YWJsZSB0YWJsZS1jb25kZW5zZWQgcGFyYW1ldGVyLXRhYmxlIj4NCjxmaC1mdW5jdGlvbj4NCiAgICAgICAgICAgICAgICAkc3FsPSJzZWxlY3QgKiBmcm9tIHNsX2V2YWx1YXRlLHNsX21lbWJlcixzbF9vcmRlcnMgd2hlcmUgRV9taWQ9TV9pZCBhbmQgRV9vaWQ9T19pZCBhbmQgT19waWQ9JFBfaWQgb3JkZXIgYnkgRV9pZCBkZXNjIjsNCiAgICAgICAgICAgICAgICAkcmVzdWx0ID0gbXlzcWxpX3F1ZXJ5KCRjb25uLCAgJHNxbCk7DQogICAgICAgICAgICAgICAgaWYgKG15c3FsaV9udW1fcm93cygkcmVzdWx0KSA+IDApIHsNCiAgICAgICAgICAgICAgICB3aGlsZSgkcm93ID0gbXlzcWxpX2ZldGNoX2Fzc29jKCRyZXN1bHQpKSB7DQogICAgICAgICAgICAgICAgICAkYXBpPSRhcGkuIjx0cj48dGQ+DQogICAgICAgICAgICAgICAgICAgICAgPGltZyBzcmM9XCJtZWRpYS8iLiRyb3dbIk1faGVhZCJdLiJcIiBzdHlsZT1cImhlaWdodDo1MHB4O1wiPg0KICAgICAgICAgICAgICAgICAgICA8L3RkPjx0ZD4NCiAgICAgICAgICAgICAgICAgICAgICA8ZGl2IHN0eWxlPVwiZm9udC13ZWlnaHQ6IGJvbGQ7XCI+Ii5lbm5hbWUoJHJvd1siTV9sb2dpbiJdKS4iPC9kaXY+DQogICAgICAgICAgICAgICAgICAgICAgPGRpdj5bIi4kcm93WyJFX3N0YXIiXS4i5pifXSAiLiRyb3dbIkVfY29udGVudCJdLiI8L2Rpdj4NCiAgICAgICAgICAgICAgICAgICAgICA8ZGl2IHN0eWxlPVwiZm9udC1zaXplOiAxMnB4O2NvbG9yOiAjQUFBQUFBXCI+Ii4kcm93WyJFX3RpbWUiXS4iPC9kaXY+IjsNCiAgICAgICAgICAgICAgICAgICAgICBpZigkcm93WyJFX3JlcGx5Il0hPSIiKXsNCiAgICAgICAgICAgICAgICAgICAgICAkYXBpPSRhcGkuIjxkaXYgc3R5bGU9XCJmb250LXNpemU6IDEycHg7Y29sb3I6ICNBRjg3NERcIj7llYblrrblm57lpI3vvJoiLiRyb3dbIkVfcmVwbHkiXS4iPC9kaXY+IjsNCiAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICAkYXBpPSRhcGkuIjwvdGQ+PC90cj4iOw0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgfWVsc2V7DQogICAgICAgICAgICAgICRhcGk9JGFwaS4iPGRpdj48dHI+PHRkPuaaguaXoOWVhuWTgeivhOS7tzwvdGQ+PC9kaXY+IjsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAgICAgPC9maC1mdW5jdGlvbj4NCiAgICAgICAgICAgICAgICAgICAgPC90YWJsZT4NCiAgICAgICAgICAgICAgICAgICAgPGJ1dHRvbiBjbGFzcz0iaXRlbS1sYXllci1idXR0b24gdGhlbWUtYmdjb2xvciB3aGl0ZS1jb2xvciBjbG9zZS1wb3B1cCIgdHlwZT0ic3VibWl0Ij7lrozmiJA8L2J1dHRvbj4NCiAgICAgICAgICAgICAgICA8L2Rpdj4NCiAgICAgICAgICAgIDwvZGl2Pg0KICAgICAgICA8L2Rpdj4NCg0KDQogICAgDQoNCiAgICA8ZGl2IGNsYXNzPSJpdGVtLXByZWNlbnQgd2hpdGUtYmdjb2xvciIgaWQ9Iml0ZW0tcHJlY2VudCI+DQogICAgICAgIDxoND7lm77mlofor6bmg4U8L2g0Pg0KICAgICAgICA8ZGl2IHN0eWxlPSJwYWRkaW5nOiAwIDEwcHg7d29yZC13cmFwOmJyZWFrLXdvcmQ7Ij4NCiAgICAgICAgICAgIFtQX2NvbnRlbnRdDQogICAgICAgIDwvZGl2Pg0KICAgIDwvZGl2Pg0KPC9zZWN0aW9uPg0KDQo8c2NyaXB0Pg0KICAgIHZhciBzd2lwZXIgPSBuZXcgU3dpcGVyKCcuaXRlbS1pbWcnLCB7DQogICAgICAgIGF1dG9wbGF5OnRydWUsDQogICAgICAgIGRlbGF5OiA3MDAwLA0KICAgICAgICBzbGlkZXNQZXJWaWV3OiAxLA0KICAgICAgICBzcGFjZUJldHdlZW46IDAsDQogICAgICAgIGtleWJvYXJkOiB7DQogICAgICAgICAgICBlbmFibGVkOiB0cnVlLA0KICAgICAgICB9LA0KICAgICAgICBwYWdpbmF0aW9uOiB7DQogICAgICAgICAgICBlbDogJy5zd2lwZXItcGFnaW5hdGlvbicsDQogICAgICAgICAgICB0eXBlOiAnZnJhY3Rpb24nLA0KICAgICAgICB9LA0KICAgIH0pOw0KICAgIHZhciBNQVggPSAxMCwgTUlOID0gMTsNCiAgICAkKCcud2V1aS1jb3VudF9fZGVjcmVhc2UnKS5jbGljayhmdW5jdGlvbiAoZSkgew0KICAgICAgICB2YXIgJGlucHV0ID0gJChlLmN1cnJlbnRUYXJnZXQpLnBhcmVudCgpLmZpbmQoJy53ZXVpLWNvdW50X19udW1iZXInKTsNCiAgICAgICAgdmFyIG51bWJlciA9IHBhcnNlSW50KCRpbnB1dC52YWwoKSB8fCAiMCIpIC0gMQ0KICAgICAgICBpZiAobnVtYmVyIDwgTUlOKSBudW1iZXIgPSBNSU47DQogICAgICAgICRpbnB1dC52YWwobnVtYmVyKQ0KICAgIH0pOw0KICAgICQoJy53ZXVpLWNvdW50X19pbmNyZWFzZScpLmNsaWNrKGZ1bmN0aW9uIChlKSB7DQogICAgICAgIHZhciAkaW5wdXQgPSAkKGUuY3VycmVudFRhcmdldCkucGFyZW50KCkuZmluZCgnLndldWktY291bnRfX251bWJlcicpOw0KICAgICAgICB2YXIgbnVtYmVyID0gcGFyc2VJbnQoJGlucHV0LnZhbCgpIHx8ICIwIikgKyAxDQogICAgICAgIGlmIChudW1iZXIgPiBNQVgpIG51bWJlciA9IE1BWDsNCiAgICAgICAgJGlucHV0LnZhbChudW1iZXIpDQogICAgfSk7DQo8L3NjcmlwdD4NCjxsaW5rIGhyZWY9J2Nzcy9sYW5yZW56aGlqaWEuY3NzJyByZWw9J3N0eWxlc2hlZXQnIHR5cGU9J3RleHQvY3NzJyAvPjxzY3JpcHQgc3JjPSdqcy9qcXVlcnkuS2luU2xpZGVzaG93LTEuMi4xLm1pbi5qcycgdHlwZT0ndGV4dC9qYXZhc2NyaXB0Jz48L3NjcmlwdD48ZGl2IGlkPSdvbmxpbmVfcXFfbGF5ZXInIHN0eWxlPSd6LWluZGV4OjIwMDA7Jz48ZGl2IGlkPSdvbmxpbmVfcXFfdGFiJz48ZGl2IGNsYXNzPSdvbmxpbmVfaWNvbic+PGEgaWQ9J2Zsb2F0U2hvdycgc3R5bGU9J2Rpc3BsYXk6YmxvY2s7JyBocmVmPSdqYXZhc2NyaXB0OnZvaWQoMCk7Jz4mbmJzcDs8L2E+PGEgIGlkPSdmbG9hdEhpZGUnIHN0eWxlPSdkaXNwbGF5Om5vbmU7JyBocmVmPSdqYXZhc2NyaXB0OnZvaWQoMCk7Jz4mbmJzcDs8L2E+PC9kaXY+PC9kaXY+PGRpdiBpZD0nb25saW5lU2VydmljZScgc3R5bGU9J2Rpc3BsYXk6bm9uZSc+PGRpdiBjbGFzcz0nb25saW5lX3dpbmRvd3Mgb3ZlcnonPjxkaXYgY2xhc3M9J29ubGluZV93X3RvcCc+PC9kaXY+PGRpdiBjbGFzcz0nb25saW5lX3dfYyBvdmVyeic+PGRpdiBjbGFzcz0nb25saW5lX2JhciBleHBhbmQnIGlkPSdvbmxpbmVTb3J0MSc+PGgyPjxhIG9uY2xpY2s9J2NoYW5nZU9ubGluZSgxKSc+5Zyo57q/5a6i5pyNPC9hPjwvaDI+PGRpdiBjbGFzcz0nb25saW5lX2NvbnRlbnQgb3ZlcnonIGlkPSdvbmxpbmVUeXBlMSc+PHVsIGNsYXNzPSdvdmVyeic+PGxpPjxhIHRpdGxlPSfngrnlh7vov5nph4znu5nmiJHlj5Hmtojmga8nIGhyZWY9J2h0dHA6Ly93cGEucXEuY29tL21zZ3JkP3Y9MyZ1aW49MTIzMTIzMTIzJnNpdGU9cXEmbWVudT15ZXMnIHRhcmdldD0nX2JsYW5rJyBjbGFzcz0ncXFfaWNvbic+5ZSu5YmN5ZKo6K+iPC9hPjwvbGk+PGxpPjxhIHRpdGxlPSfngrnlh7vov5nph4znu5nmiJHlj5Hmtojmga8nIGhyZWY9J2h0dHA6Ly93d3cudGFvYmFvLmNvbS93ZWJ3dy93dy5waHA/dmVyPTMmdG91aWQ9dGFvYmFvJnNpdGVpZD1jbnRhb2JhbyZzdGF0dXM9MSZjaGFyc2V0PXV0Zi04JyB0YXJnZXQ9J19ibGFuaycgY2xhc3M9J3d3X2ljb24nPuWUruWQjuacjeWKoTwvYT48L2xpPjwvdWw+PC9kaXY+PC9kaXY+PGRpdiBjbGFzcz0nb25saW5lX2JhciBjb2xsYXBzZTInIGlkPSdvbmxpbmVTb3J0Mic+PGgyPjxhIG9uY2xpY2s9J2NoYW5nZU9ubGluZSgyKSc+55S16K+d5a6i5pyNPC9hPjwvaDI+PGRpdiBjbGFzcz0nb25saW5lX2NvbnRlbnQgb3ZlcnonIGlkPSdvbmxpbmVUeXBlMic+PHVsIGNsYXNzPSdvdmVyeic+PGxpPjAxMC0xMDA4NjwvbGk+PC91bD48L2Rpdj48L2Rpdj48ZGl2IGNsYXNzPSdvbmxpbmVfYmFyIGNvbGxhcHNlMicgaWQ9J29ubGluZVNvcnQzJz48aDI+PGEgb25jbGljaz0nY2hhbmdlT25saW5lKDMpJz7nvZHnq5nkuoznu7TnoIE8L2E+PC9oMj48ZGl2IGNsYXNzPSdvbmxpbmVfY29udGVudCBvdmVyeicgaWQ9J29ubGluZVR5cGUzJz48dWwgY2xhc3M9J292ZXJ6Jz48c2NyaXB0IHR5cGU9J3RleHQvamF2YXNjcmlwdCcgc3JjPSdqcy9xcmNvZGUubWluLmpzJz48L3NjcmlwdD48ZGl2IGlkPSdxcmNvZGUnIHN0eWxlPSdtYXJnaW46MCAwIDEwcHggMTBweDsnPjwvZGl2PjxzY3JpcHQ+dmFyIHFyY29kZSA9IG5ldyBRUkNvZGUoJ3FyY29kZScsIHt3aWR0aDogMTEwLGhlaWdodDogMTEwLGNvbG9yRGFyazogJyMwMDAwMDAnLGNvbG9yTGlnaHQ6ICcjZmZmZmZmJyxjb3JyZWN0TGV2ZWw6IFFSQ29kZS5Db3JyZWN0TGV2ZWwuSH0pO3FyY29kZS5tYWtlQ29kZSgnaHR0cDovL2xvY2FsaG9zdDo1MDE0Jyk7PC9zY3JpcHQ+PC91bD48L2Rpdj48L2Rpdj48ZGl2IGNsYXNzPSdvbmxpbmVfYmFyIGNvbGxhcHNlMicgaWQ9J29ubGluZVNvcnQ0Jz48aDI+PGEgb25jbGljaz0nY2hhbmdlT25saW5lKDQpJz7lvq7kv6HlhazkvJflj7c8L2E+PC9oMj48ZGl2IGNsYXNzPSdvbmxpbmVfY29udGVudCBvdmVyeicgaWQ9J29ubGluZVR5cGU0Jz48dWwgY2xhc3M9J292ZXJ6Jz48aW1nIHNyYz0nbWVkaWEvMjAxOTExMjYyMjQzNTJXZi5qcGcnIHdpZHRoPScxMjAnIC8+PC91bD48L2Rpdj48L2Rpdj48L2Rpdj48ZGl2IGNsYXNzPSdvbmxpbmVfd19ib3R0b20nPjwvZGl2PjwvZGl2PjwvZGl2PjwvZGl2Pg0KPGRpdiBzdHlsZT0iZGlzcGxheTogbm9uZSI+PC9kaXY+DQo8YSBocmVmPSdqYXZhc2NyaXB0OjsnIHRhcmdldD0nX2JsYW5rJyBvbmNsaWNrPSdhbGVydCgi5pys572R56uZ55Sx44CK5Y+R6LSnMTAw44CL5YWN6LS554mI5pCt5bu677yM6K+35Yu/55So5L2c5ZWG5Lia55So6YCUIik7d2luZG93LmxvY2F0aW9uLmhyZWY9Imh0dHA6Ly9mYWh1bzEwMC5jbiInIHRpdGxlPSflj5HotKcxMDAnPjxkaXYgc3R5bGU9InBvc2l0aW9uOiBmaXhlZDt6LWluZGV4Ojk5OTk5O2JvdHRvbTogMTBweDtsZWZ0OiBjYWxjKDUwJSAtIDEwMHB4KTtiYWNrZ3JvdW5kOnJnYmEoMjU1LDI1NSwyNTUsMC43KTt0ZXh0LWFsaWduOiBjZW50ZXI7d2lkdGg6IDIwMHB4O2hlaWdodDogMzBweDtsaW5lLWhlaWdodDogMzBweDtib3JkZXItcmFkaXVzOiAzMHB4O2ZvbnQtc2l6ZTogMThweDtjb2xvcjogIzMzMzMzMyI+PGltZyBzcmM9Imh0dHA6Ly9mYWh1bzEwMC5jbi9tZWRpYS8yMDIwMTAwOTEzNDEyMGxVLmljbyIgc3R5bGU9ImhlaWdodDogMjBweDt3aWR0aDogMjBweDttYXJnaW4tcmlnaHQ6IDVweDt2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlOyI+5Y+R6LSnMTAwPC9kaXY+PC9hPjxzY3JpcHQ+CgkJZnVuY3Rpb24gYWRkY2FydCgpewoJCSAgJC5hamF4KHsKCQkgICAgICAgIHR5cGU6ICJQT1NUIiwKCQkgICAgICAgIHVybDogImFkZGNhcnQucGhwP3R5cGU9YWRkY2FydCZpZD1bUF9pZF0iLAoJCSAgICAgICAgZGF0YTogJCgiI2J1eSIpLnNlcmlhbGl6ZSgpLAoJCSAgICAgICAgc3VjY2VzczpmdW5jdGlvbihkKXsKCQkgICAgICAgICAgICBpZihkPT0ic3VjY2VzcyIpewoJCSAgICAgICAgICAgICAgYWxlcnQoIuWKoOWFpei0reeJqei9puaIkOWKnyIpOwoJCSAgICAgICAgICAgIH1lbHNlewoJCSAgICAgICAgICAgICAgYWxlcnQoZCk7CgkJICAgICAgICAgICAgfQoJCSAgICAgICB9CgkJICAgICB9KTsKCQl9CgkJPC9zY3JpcHQ+CgkJPC9ib2R5Pg0KPC9odG1sPg==