{"id":59683,"date":"2021-10-07T12:12:12","date_gmt":"2021-10-07T10:12:12","guid":{"rendered":"https:\/\/ab-marineservice.com\/calculation-correct-python-drive-model\/"},"modified":"2021-10-07T12:12:58","modified_gmt":"2021-10-07T10:12:58","slug":"calculation-correct-python-drive-model","status":"publish","type":"page","link":"https:\/\/ab-marineservice.com\/de\/calculation-correct-python-drive-model\/","title":{"rendered":"Calculation correct Python-Drive model"},"content":{"rendered":"<div class=\"wpb-content-wrapper\"><p>[vc_row][vc_column][vc_raw_html]PHN0eWxlPg0KCWJvZHkgew0KCQlmb250LWZhbWlseTogc2Fucy1zZXJpZjsNCgkJZm9udC1zaXplOiAxNnB4Ow0KCX0NCg0KCS5jYWxjdWxhdG9yIGlucHV0LA0KCS5jYWxjdWxhdG9yIHNlbGVjdCB7DQoJCWZvbnQtc2l6ZTogMTZweDsNCgkJcGFkZGluZzogNXB4Ow0KCX0NCg0KCS5jYWxjdWxhdG9yIGlucHV0IHsNCgkJbWF4LXdpZHRoOiA2cmVtOw0KCQl0ZXh0LWFsaWduOiBjZW50ZXI7DQoJfQ0KDQoJLmNhbGN1bGF0b3IgdGQgew0KCQliYWNrZ3JvdW5kLWNvbG9yOiAjZmZmICFpbXBvcnRhbnQ7DQoJCXBhZGRpbmc6IDVweDsNCgl9DQoNCgkuY2FsY3VsYXRvciB0ZDpmaXJzdC1jaGlsZCwNCgkuY2FsY3VsYXRvciB0ZFtjb2xzcGFuXSB7DQoJCXdoaXRlLXNwYWNlOiBub3JtYWw7DQoJfQ0KDQoJLmNhbGN1bGF0b3IgLmZpbGxpbiB7DQoJCWJhY2tncm91bmQtY29sb3I6ICNkZDhlMTg7DQoJCWNvbG9yOiAjMDAwOw0KCX0NCg0KCS5jYWxjdWxhdG9yIC5maWxsaW5bcmVhZG9ubHldIHsNCgkJY3Vyc29yOiBkZWZhdWx0Ow0KCX0NCg0KCS5jYWxjdWxhdG9yIGxhYmVsLmZpbGxpbiB7DQoJCWRpc3BsYXk6IGlubGluZS1ibG9jazsNCgkJbWFyZ2luOiAwIDFlbTsNCgkJcGFkZGluZzogMWVtOw0KCX0NCg0KCS5jYWxjdWxhdG9yIGxhYmVsLmZpbGxpbi5kLWJsb2NrIHsNCgkJZGlzcGxheTogYmxvY2s7DQoJCW1hcmdpbjogLjVlbSAwOw0KCQlwYWRkaW5nOiAuNWVtOw0KCX0NCg0KCS5jYWxjdWxhdG9yIC5vdXRjb21lIHsNCgkJYmFja2dyb3VuZC1jb2xvcjogY2FkZXRibHVlOw0KCQljb2xvcjogIzAwMDsNCgkJY3Vyc29yOiBkZWZhdWx0Ow0KCX0NCg0KCS5jYWxjdWxhdG9yIC50aCB7DQoJCW1pbi13aWR0aDogMTAwcHg7DQoJfQ0KDQoJLmNhbGN1bGF0b3IgdHIuZGl2aWRlciB0ZCB7DQoJCWZvbnQtc2l6ZTogMXB4Ow0KCX0NCg0KCS5jYWxjdWxhdG9yIC50ZXh0LXJpZ2h0IHsNCgkJdGV4dC1hbGlnbjogcmlnaHQ7DQoJfQ0KDQoJLmNhbGN1bGF0b3IgI2h1bGwgew0KCQlkaXNwbGF5OiBub25lOw0KCX0NCg0KCS5jYWxjdWxhdG9yICNodWxsLm9wZW4gew0KCQlkaXNwbGF5OiB0YWJsZS1yb3ctZ3JvdXA7DQoJfQ0KDQoJLmNhbGN1bGF0b3IgdHIuZC1ub25lIHsNCgkJZGlzcGxheTogbm9uZTsNCgl9DQoNCgkuY2FsY3VsYXRvcltkYXRhLWFwcGxpY2F0aW9uPSJwbGVhc3VyZSJdIHRyLmFwcGxpY2F0aW9uLXBsZWFzdXJlIHsNCgkJZGlzcGxheTogdGFibGUtcm93Ow0KCX0NCg0KCS5jYWxjdWxhdG9yW2RhdGEtYXBwbGljYXRpb249ImxpZ2h0Il0gdHIuYXBwbGljYXRpb24tbGlnaHQgew0KCQlkaXNwbGF5OiB0YWJsZS1yb3c7DQoJfQ0KDQoJLmNhbGN1bGF0b3JbZGF0YS1hcHBsaWNhdGlvbj0iaGVhdnkiXSB0ci5hcHBsaWNhdGlvbi1oZWF2eSB7DQoJCWRpc3BsYXk6IHRhYmxlLXJvdzsNCgl9DQoNCgkuY2FsY3VsYXRvciAuaW1hZ2Ugew0KCQltaW4taGVpZ2h0OiAxNTBweDsNCgl9DQoNCglAbWVkaWEgKG1heC13aWR0aDogNTc1cHgpIHsNCgkJLmNhbGN1bGF0b3IgdGQgew0KCQkJZGlzcGxheTogaW5saW5lLWJsb2NrOw0KCQl9DQoNCgkJLmNhbGN1bGF0b3IgdGQ6Zmlyc3QtY2hpbGQ6bm90KFtjb2xzcGFuXSkgew0KCQkJZGlzcGxheTogYmxvY2s7DQoJCQl3aWR0aDogMTAwJTsNCgkJfQ0KDQoJCS5jYWxjdWxhdG9yIHRkLnRleHQtcmlnaHQgew0KCQkJdGV4dC1hbGlnbjogbGVmdDsNCgkJfQ0KDQoJCS5jYWxjdWxhdG9yIC50aCB7DQoJCQlmb250LXdlaWdodDogYm9sZDsNCgkJCXRleHQtYWxpZ246IGNlbnRlcjsNCgkJfQ0KCX0NCjwvc3R5bGU+DQoNCjxkaXYgY2xhc3M9ImNhbGN1bGF0b3IiIGRhdGEtaHVsbD0iIiBkYXRhLWFwcGxpY2F0aW9uPSJwbGVhc3VyZSIgaWQ9ImNhbGN1bGF0b3IiPg0KICAgIDx0YWJsZSBjbGFzcz0idGFibGUiPg0KICAgICAgICA8dGJvZHk+DQogICAgICAgIDx0cj4NCiAgICAgICAgICAgIDx0ZCBjb2xzcGFuPSIzIj4NCiAgICAgICAgICAgICAgICBQbGVhc2UgZmlsbCBpbiB0aGUgcmVxdWlyZWQgZGF0YSB3aGVyZTogPGlucHV0IGNsYXNzPSJmaWxsaW4iIHJlYWRvbmx5IHR5cGU9InRleHQiPiBoYXMgdG8gYmUNCiAgICAgICAgICAgICAgICBmaWxsZWQgaW4gYW5kIDxpbnB1dCBjbGFzcz0ib3V0Y29tZSIgcmVhZG9ubHkgdHlwZT0idGV4dCI+IGlzIG91dGNvbWUNCiAgICAgICAgICAgIDwvdGQ+DQogICAgICAgIDwvdHI+DQogICAgICAgIDx0cj4NCiAgICAgICAgICAgIDx0ZCBjb2xzcGFuPSIzIj7CoDwvdGQ+DQogICAgICAgIDwvdHI+DQogICAgICAgIDx0cj4NCiAgICAgICAgICAgIDx0ZCBjb2xzcGFuPSIzIj4NCiAgICAgICAgICAgICAgICBQbGVhc2UgbWFrZSB5b3VyIGh1bGwgY2hvaWNlOg0KICAgICAgICAgICAgICAgIDxwPg0KICAgICAgICAgICAgICAgICAgICA8bGFiZWwgY2xhc3M9ImZpbGxpbiI+DQogICAgICAgICAgICAgICAgICAgICAgICA8aW5wdXQgdHlwZT0icmFkaW8iIG5hbWU9Imh1bGwiIHZhbHVlPSJwbGFuaW5nIj4gUGxhbmluZyBodWxsDQogICAgICAgICAgICAgICAgICAgIDwvbGFiZWw+DQogICAgICAgICAgICAgICAgICAgIDxsYWJlbCBjbGFzcz0iZmlsbGluIj4NCiAgICAgICAgICAgICAgICAgICAgICAgIDxpbnB1dCB0eXBlPSJyYWRpbyIgbmFtZT0iaHVsbCIgdmFsdWU9InNlbWkiPiBTZW1pIHBsYW5pbmcgLyBzZW1pIGRpc3BsYWNlbWVudCBodWxsDQogICAgICAgICAgICAgICAgICAgIDwvbGFiZWw+DQogICAgICAgICAgICAgICAgICAgIDxsYWJlbCBjbGFzcz0iZmlsbGluIj4NCiAgICAgICAgICAgICAgICAgICAgICAgIDxpbnB1dCB0eXBlPSJyYWRpbyIgbmFtZT0iaHVsbCIgdmFsdWU9ImRpc3BsYWNlbWVudCI+IERpc3BsYWNlbWVudCBodWxsDQogICAgICAgICAgICAgICAgICAgIDwvbGFiZWw+DQogICAgICAgICAgICAgICAgPC9wPg0KICAgICAgICAgICAgPC90ZD4NCiAgICAgICAgPC90cj4NCiAgICAgICAgPC90Ym9keT4NCiAgICAgICAgPHRib2R5IGlkPSJodWxsIj4NCiAgICAgICAgPHRyPg0KICAgICAgICAgICAgPHRkPg0KICAgICAgICAgICAgICAgIE1heC4gSFAgcmF0aW5nIG9mIHlvdXIgZW5naW5lDQogICAgICAgICAgICA8L3RkPg0KICAgICAgICAgICAgPHRkPg0KICAgICAgICAgICAgICAgIDxpbnB1dCBjbGFzcz0iZmlsbGluIiBpZD0ibWF4X2hwIiBtaW49IjAiIHN0ZXA9IjEiIHR5cGU9Im51bWJlciIgdmFsdWU9IjAiPiBIUA0KICAgICAgICAgICAgPC90ZD4NCiAgICAgICAgICAgIDx0ZD4NCiAgICAgICAgICAgICAgICAoZXF1YWxzIDxpbnB1dCBjbGFzcz0ib3V0Y29tZSIgaWQ9Im1heF9ocF9rdyIgcmVhZG9ubHkgdHlwZT0idGV4dCIgdmFsdWU9IiI+IGtXKQ0KICAgICAgICAgICAgPC90ZD4NCiAgICAgICAgPC90cj4NCiAgICAgICAgPHRyPg0KICAgICAgICAgICAgPHRkPg0KICAgICAgICAgICAgICAgIE1heC4gcnBtLiBvZiB5b3VyIGVuZ2luZQ0KICAgICAgICAgICAgPC90ZD4NCiAgICAgICAgICAgIDx0ZD4NCiAgICAgICAgICAgICAgICA8aW5wdXQgY2xhc3M9ImZpbGxpbiIgaWQ9Im1heF9ycG0iIG1pbj0iMCIgc3RlcD0iMSIgdHlwZT0ibnVtYmVyIiB2YWx1ZT0iMCI+IHJwbQ0KICAgICAgICAgICAgPC90ZD4NCiAgICAgICAgPC90cj4NCiAgICAgICAgPHRyIGNsYXNzPSJkaXZpZGVyIj4NCiAgICAgICAgICAgIDx0ZCBjb2xzcGFuPSIzIj7CoDwvdGQ+DQogICAgICAgIDwvdHI+DQogICAgICAgIDx0cj4NCiAgICAgICAgICAgIDx0ZD4NCiAgICAgICAgICAgICAgICBObSBtYXhpbXVtIGVuZ2luZSB0b3JxdWUNCiAgICAgICAgICAgIDwvdGQ+DQogICAgICAgICAgICA8dGQ+DQogICAgICAgICAgICAgICAgPGlucHV0IGNsYXNzPSJvdXRjb21lIiBpZD0ibWF4X3RvcnF1ZV9ubSIgcmVhZG9ubHkgdHlwZT0idGV4dCIgdmFsdWU9IiI+IE5tLg0KICAgICAgICAgICAgPC90ZD4NCiAgICAgICAgPC90cj4NCiAgICAgICAgPHRyIGNsYXNzPSJkaXZpZGVyIj4NCiAgICAgICAgICAgIDx0ZCBjb2xzcGFuPSIzIj7CoDwvdGQ+DQogICAgICAgIDwvdHI+DQogICAgICAgIDx0cj4NCiAgICAgICAgICAgIDx0ZD4NCiAgICAgICAgICAgICAgICBSZWR1Y3Rpb24gcmF0aW8gb2YgZ2VhcmJveA0KICAgICAgICAgICAgPC90ZD4NCiAgICAgICAgICAgIDx0ZCBjb2xzcGFuPSIyIj4NCiAgICAgICAgICAgICAgICA8aW5wdXQgY2xhc3M9ImZpbGxpbiIgaWQ9InJlZHVjdGlvbl9yYXRpbyIgbWluPSIwIiBzdGVwPSIwLjEiIHR5cGU9Im51bWJlciIgdmFsdWU9IjAiPjoxDQogICAgICAgICAgICA8L3RkPg0KICAgICAgICA8L3RyPg0KICAgICAgICA8dHIgY2xhc3M9ImRpdmlkZXIiPg0KICAgICAgICAgICAgPHRkIGNvbHNwYW49IjMiPsKgPC90ZD4NCiAgICAgICAgPC90cj4NCiAgICAgICAgPHRyPg0KICAgICAgICAgICAgPHRkPg0KICAgICAgICAgICAgICAgIE5tIE1heGltdW0gcHJvcCBzaGFmdCB0b3JxdWUNCiAgICAgICAgICAgIDwvdGQ+DQogICAgICAgICAgICA8dGQ+DQogICAgICAgICAgICAgICAgPGlucHV0IGNsYXNzPSJvdXRjb21lIiBpZD0ibWF4X3Byb3Bfc2hhZnRfdG9ycXVlX25tIiByZWFkb25seSB0eXBlPSJ0ZXh0IiB2YWx1ZT0iIj4NCiAgICAgICAgICAgIDwvdGQ+DQogICAgICAgIDwvdHI+DQogICAgICAgIDx0ciBjbGFzcz0iZGl2aWRlciI+DQogICAgICAgICAgICA8dGQgY29sc3Bhbj0iMyI+wqA8L3RkPg0KICAgICAgICA8L3RyPg0KICAgICAgICA8dHI+DQogICAgICAgICAgICA8dGQ+DQogICAgICAgICAgICAgICAgQXBwcm94aW1hdGUgbWF4aW11bSB0aHJ1c3Qgb2YgdGhlIGluc3RhbGxhdGlvbioNCiAgICAgICAgICAgIDwvdGQ+DQogICAgICAgICAgICA8dGQgY2xhc3M9InRoIj4NCiAgICAgICAgICAgICAgICA8aW5wdXQgY2xhc3M9Im91dGNvbWUiIGlkPSJtYXhfdGhydXN0X2tubSIgcmVhZG9ubHkgdHlwZT0idGV4dCIgdmFsdWU9IiI+IGtObQ0KICAgICAgICAgICAgPC90ZD4NCiAgICAgICAgPC90cj4NCiAgICAgICAgPHRyIGNsYXNzPSJkaXZpZGVyIj4NCiAgICAgICAgICAgIDx0ZCBjb2xzcGFuPSIzIj7CoDwvdGQ+DQogICAgICAgIDwvdHI+DQogICAgICAgIDx0cj4NCiAgICAgICAgICAgIDx0ZCBjb2xzcGFuPSIzIj4NCiAgICAgICAgICAgICAgICBQbGVhc2UgbWFrZSB5b3VyIGFwcGxpY2F0aW9uIGNob2ljZToNCiAgICAgICAgICAgICAgICA8cD4NCiAgICAgICAgICAgICAgICAgICAgPGxhYmVsIGNsYXNzPSJmaWxsaW4iPg0KICAgICAgICAgICAgICAgICAgICAgICAgPGlucHV0IHR5cGU9InJhZGlvIiBjaGVja2VkPSJjaGVja2VkIiBuYW1lPSJhcHBsaWNhdGlvbiIgdmFsdWU9InBsZWFzdXJlIj4NCiAgICAgICAgICAgICAgICAgICAgICAgIFBsZWFzdXJlIGJvYXQNCiAgICAgICAgICAgICAgICAgICAgPC9sYWJlbD4NCiAgICAgICAgICAgICAgICAgICAgPGxhYmVsIGNsYXNzPSJmaWxsaW4iPg0KICAgICAgICAgICAgICAgICAgICAgICAgPGlucHV0IHR5cGU9InJhZGlvIiBuYW1lPSJhcHBsaWNhdGlvbiIgdmFsdWU9ImxpZ2h0Ij4NCiAgICAgICAgICAgICAgICAgICAgICAgIExpZ2h0IGNvbW1lcmNpYWwNCiAgICAgICAgICAgICAgICAgICAgPC9sYWJlbD4NCiAgICAgICAgICAgICAgICAgICAgPGxhYmVsIGNsYXNzPSJmaWxsaW4iPg0KICAgICAgICAgICAgICAgICAgICAgICAgPGlucHV0IHR5cGU9InJhZGlvIiBuYW1lPSJhcHBsaWNhdGlvbiIgdmFsdWU9ImhlYXZ5Ij4NCiAgICAgICAgICAgICAgICAgICAgICAgIEhlYXZ5IGNvbW1lcmNpYWwNCiAgICAgICAgICAgICAgICAgICAgPC9sYWJlbD4NCiAgICAgICAgICAgICAgICA8L3A+DQogICAgICAgICAgICA8L3RkPg0KICAgICAgICA8L3RyPg0KICAgICAgICA8dHI+DQogICAgICAgICAgICA8dGQgY29sc3Bhbj0iMyI+DQogICAgICAgICAgICAgICAgRGVwZW5kaW5nIG9uIGFwcGxpY2F0aW9uLCBjaG9vc2UgYSBQeXRob24tRHJpdmUgbW9kZWwgd2l0aCBhIHN0YXRlZCBtYXhpbXVtIHRvcnF1ZSBvZiBhdCBsZWFzdA0KICAgICAgICAgICAgPC90ZD4NCiAgICAgICAgPC90cj4NCiAgICAgICAgPHRyIGNsYXNzPSJkLW5vbmUgYXBwbGljYXRpb24tcGxlYXN1cmUiPg0KICAgICAgICAgICAgPHRkIGNsYXNzPSJ0ZXh0LXJpZ2h0Ij4NCiAgICAgICAgICAgICAgICA8aW5wdXQgY2xhc3M9Im91dGNvbWUiIGlkPSJwbGVhc3VyZV9ib2F0IiByZWFkb25seSB0eXBlPSJ0ZXh0IiB2YWx1ZT0iIj4NCiAgICAgICAgICAgIDwvdGQ+DQogICAgICAgICAgICA8dGQgY29sc3Bhbj0iMiI+DQogICAgICAgICAgICAgICAgTm0uIGluIGNhc2Ugb2YgUGxlYXN1cmUgYm9hdCBhcHBsaWNhdGlvbjxicj4NCiAgICAgICAgICAgICAgICAobWF4LiA1MDAgaHJzLi95ci4gTm8gdXNlIGFzIHJlbnRhbCBib2F0KQ0KICAgICAgICAgICAgPC90ZD4NCiAgICAgICAgPC90cj4NCiAgICAgICAgPHRyIGNsYXNzPSJkLW5vbmUgYXBwbGljYXRpb24tbGlnaHQiPg0KICAgICAgICAgICAgPHRkIGNsYXNzPSJ0ZXh0LXJpZ2h0Ij4NCiAgICAgICAgICAgICAgICA8aW5wdXQgY2xhc3M9Im91dGNvbWUiIGlkPSJsaWdodF9jb21tZXJjaWFsIiByZWFkb25seSB0eXBlPSJ0ZXh0IiB2YWx1ZT0iIj4NCiAgICAgICAgICAgIDwvdGQ+DQogICAgICAgICAgICA8dGQgY29sc3Bhbj0iMiI+DQogICAgICAgICAgICAgICAgTm0uIGluIGNhc2Ugb2YgTGlnaHQgY29tbWVyY2lhbCBhcHBsaWNhdGlvbjxicj4NCiAgICAgICAgICAgICAgICAobWF4LiAxNTAwIGhycy4veXIpDQogICAgICAgICAgICA8L3RkPg0KICAgICAgICA8L3RyPg0KICAgICAgICA8dHIgY2xhc3M9ImQtbm9uZSBhcHBsaWNhdGlvbi1oZWF2eSI+DQogICAgICAgICAgICA8dGQgY2xhc3M9InRleHQtcmlnaHQiPg0KICAgICAgICAgICAgICAgIDxpbnB1dCBjbGFzcz0ib3V0Y29tZSIgaWQ9ImhlYXZ5X2NvbW1lcmNpYWwiIHJlYWRvbmx5IHR5cGU9InRleHQiIHZhbHVlPSIiIHN0eWxlPSJ2aXNpYmlsaXR5OiBoaWRkZW4iPg0KICAgICAgICAgICAgPC90ZD4NCiAgICAgICAgICAgIDx0ZCBjb2xzcGFuPSIyIj4NCiAgICAgICAgICAgICAgICBIZWF2eSBjb21tZXJjaWFsOiBzZWVrIGFkdmlzZSBmcm9tIHlvdXIgZGVhbGVyDQogICAgICAgICAgICA8L3RkPg0KICAgICAgICA8L3RyPg0KICAgICAgICA8dHIgY2xhc3M9ImRpdmlkZXIiPg0KICAgICAgICAgICAgPHRkIGNvbHNwYW49IjMiPsKgPC90ZD4NCiAgICAgICAgPC90cj4NCiAgICAgICAgPHRyPg0KICAgICAgICAgICAgPHRkPg0KICAgICAgICAgICAgICAgIFByb3BlbGxlciBzaGFmdCBkaWFtZXRlcg0KICAgICAgICAgICAgPC90ZD4NCiAgICAgICAgICAgIDx0ZCBjb2xzcGFuPSIyIj4NCiAgICAgICAgICAgICAgICA8c2VsZWN0IGNsYXNzPSJmaWxsaW4iIG5hbWU9InByb3BlbGxlcl9zaGFmdF9kaWFtZXRlciI+DQogICAgICAgICAgICAgICAgICAgIDxvcHRpb24gc2VsZWN0ZWQ9InNlbGVjdGVkIiB2YWx1ZT0iIj5wbGVhc2UgY2hvb3NlIGEgZGlhbWV0ZXI8L29wdGlvbj4NCiAgICAgICAgICAgICAgICAgICAgPG9wdGlvbiB2YWx1ZT0iMTkgLSAzMCBtbSI+MTkgLSAzMCBtbTwvb3B0aW9uPg0KICAgICAgICAgICAgICAgICAgICA8b3B0aW9uIHZhbHVlPSIzMCAtIDQwIG1tIj4zMCAtIDQwIG1tPC9vcHRpb24+DQogICAgICAgICAgICAgICAgICAgIDxvcHRpb24gdmFsdWU9IjMwIC0gNDUgbW0iPjMwIC0gNDUgbW08L29wdGlvbj4NCiAgICAgICAgICAgICAgICAgICAgPG9wdGlvbiB2YWx1ZT0iMzUgLSA0NSBtbSI+MzUgLSA0NSBtbTwvb3B0aW9uPg0KICAgICAgICAgICAgICAgICAgICA8b3B0aW9uIHZhbHVlPSIzNSAtIDUwIG1tIj4zNSAtIDUwIG1tPC9vcHRpb24+DQogICAgICAgICAgICAgICAgICAgIDxvcHRpb24gdmFsdWU9IjQwIC0gNTUgbW0iPjQwIC0gNTUgbW08L29wdGlvbj4NCiAgICAgICAgICAgICAgICAgICAgPG9wdGlvbiB2YWx1ZT0iNDAgLSA2MCBtbSI+NDAgLSA2MCBtbTwvb3B0aW9uPg0KICAgICAgICAgICAgICAgICAgICA8b3B0aW9uIHZhbHVlPSI0NSAtIDYwIG1tIj40NSAtIDYwIG1tPC9vcHRpb24+DQogICAgICAgICAgICAgICAgICAgIDxvcHRpb24gdmFsdWU9IjUwIC0gNjAgbW0iPjUwIC0gNjAgbW08L29wdGlvbj4NCiAgICAgICAgICAgICAgICAgICAgPG9wdGlvbiB2YWx1ZT0iNTAgLSA4MCBtbSI+NTAgLSA4MCBtbTwvb3B0aW9uPg0KICAgICAgICAgICAgICAgICAgICA8b3B0aW9uIHZhbHVlPSI3MCAtIDgwIG1tIj43MCAtIDgwIG1tPC9vcHRpb24+DQogICAgICAgICAgICAgICAgICAgIDxvcHRpb24gdmFsdWU9IjcwIC0gMTAwIG1tIj43MCAtIDEwMCBtbTwvb3B0aW9uPg0KICAgICAgICAgICAgICAgICAgICA8b3B0aW9uIHZhbHVlPSI4MCAtIDEwMCBtbSI+ODAgLSAxMDAgbW08L29wdGlvbj4NCiAgICAgICAgICAgICAgICA8L3NlbGVjdD4NCiAgICAgICAgICAgIDwvdGQ+DQogICAgICAgIDwvdHI+DQogICAgICAgIDx0ciBjbGFzcz0iZGl2aWRlciI+DQogICAgICAgICAgICA8dGQgY29sc3Bhbj0iMyI+wqA8L3RkPg0KICAgICAgICA8L3RyPg0KICAgICAgICA8dHI+DQogICAgICAgICAgICA8dGQgY29sc3Bhbj0iMyI+DQogICAgICAgICAgICAgICAgPGgzIGlkPSJwZC10eXBlIj48L2gzPg0KICAgICAgICAgICAgICAgIDxwIGlkPSJwZC1ub25lLWF2YWlsYWJsZSI+PC9wPg0KICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImltYWdlIj4NCiAgICAgICAgICAgICAgICAgICAgPGltZyBzcmM9IiIgaWQ9InBkLWltYWdlIiBhbHQ9IiI+DQogICAgICAgICAgICAgICAgPC9kaXY+DQogICAgICAgICAgICAgICAgPHA+DQogICAgICAgICAgICAgICAgICAgIDxhIGhyZWY9IiIgaWQ9InBkLXVybCIgdGFyZ2V0PSJfYmxhbmsiPjwvYT4NCiAgICAgICAgICAgICAgICA8L3A+DQogICAgICAgICAgICA8L3RkPg0KICAgICAgICA8L3RyPg0KICAgICAgICA8dHIgY2xhc3M9ImRpdmlkZXIiPg0KICAgICAgICAgICAgPHRkIGNvbHNwYW49IjMiPsKgPC90ZD4NCiAgICAgICAgPC90cj4NCiAgICAgICAgPHRyPg0KICAgICAgICAgICAgPHRkIGNvbHNwYW49IjMiPg0KICAgICAgICAgICAgICAgICogUGxlYXNlIG5vdGUgdGhhdCB0aGlzIGlzIGp1c3QgYW4gaW5kaWNhdGlvbiwgdGhlIHN1cHBsaWVyIG9mIHlvdXIgcHJvcGVsbGVyIHdpbGwgYmUgYWJsZSB0bw0KICAgICAgICAgICAgICAgIGdpdmUgeW91IGEgbW9yZSBhY2N1cmF0ZSBpZGVhIG9mIHRoZSByZWFsIHRocnVzdC4NCiAgICAgICAgICAgIDwvdGQ+DQogICAgICAgIDwvdHI+DQogICAgICAgIDwvdGJvZHk+DQogICAgPC90YWJsZT4NCjwvZGl2Pg0KDQo8c2NyaXB0Pg0KICAgIGZ1bmN0aW9uIGUoaWQpIHsNCiAgICAgICAgcmV0dXJuIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGlkKTsNCiAgICB9DQoNCiAgICBmdW5jdGlvbiBmbG9hdCh2YWx1ZSkgew0KICAgICAgICBpZiAodmFsdWUgPT09ICcnKSB7DQogICAgICAgICAgICByZXR1cm4gMDsNCiAgICAgICAgfQ0KDQogICAgICAgIHJldHVybiBwYXJzZUZsb2F0KHZhbHVlLnJlcGxhY2UoJywnLCAnLicpKTsNCiAgICB9DQoNCiAgICBmdW5jdGlvbiBmb3JtYXQobnVtYmVyKSB7DQogICAgICAgIHJldHVybiBuZXcgSW50bC5OdW1iZXJGb3JtYXQoJ2VuLVVTJywgew0KICAgICAgICAgICAgbWF4aW11bUZyYWN0aW9uRGlnaXRzOiAxLA0KICAgICAgICAgICAgbWluaW11bUZyYWN0aW9uRGlnaXRzOiAxDQogICAgICAgIH0pLmZvcm1hdChudW1iZXIpOw0KICAgIH0NCg0KICAgIGZ1bmN0aW9uIHBkX2F2YWlsYWJsZShwZCwgbWF4X3NoYWZ0X3RvcnF1ZSwgcHJvcGVsbGVyX3NoYWZ0X2RpYW1ldGVyLCBtYXhfdGhydXN0X2tubSkgew0KICAgICAgICByZXR1cm4gKA0KICAgICAgICAgICAgbWF4X3NoYWZ0X3RvcnF1ZSA8PSBwZC5tYXhfc2hhZnRfdG9ycXVlDQogICAgICAgICAgICAmJiBwcm9wZWxsZXJfc2hhZnRfZGlhbWV0ZXIgPT09IHBkLnByb3BlbGxlcl9zaGFmdF9kaWFtZXRlcg0KICAgICAgICAgICAgJiYgbWF4X3RocnVzdF9rbm0gPD0gcGQubWF4X3Byb3BfdGhydXN0DQogICAgICAgICk7DQogICAgfQ0KDQogICAgZnVuY3Rpb24gY2FsY3VsYXRlKCkgew0KICAgICAgICB2YXIgbWF4X2hwX2t3ID0gZmxvYXQoZSgnbWF4X2hwJykudmFsdWUpIC8gMS4zNjsNCiAgICAgICAgZSgnbWF4X2hwX2t3JykudmFsdWUgPSBmb3JtYXQobWF4X2hwX2t3KTsNCg0KICAgICAgICAvLw0KDQogICAgICAgIHZhciBtYXhfaHAgPSBmbG9hdChlKCdtYXhfaHAnKS52YWx1ZSk7DQogICAgICAgIHZhciBtYXhfcnBtID0gZmxvYXQoZSgnbWF4X3JwbScpLnZhbHVlKTsNCg0KICAgICAgICB2YXIgbWF4X3RvcnF1ZV9rZ20gPSAobWF4X3JwbSA9PT0gMCkgPyAwIDogKG1heF9ocCAvIG1heF9ycG0pICogNzI2Ow0KICAgICAgICB2YXIgbWF4X3RvcnF1ZV9ubSA9IG1heF90b3JxdWVfa2dtICogOS42ODsNCg0KICAgICAgICBlKCdtYXhfdG9ycXVlX25tJykudmFsdWUgPSBmb3JtYXQobWF4X3RvcnF1ZV9ubSk7DQoNCiAgICAgICAgLy8NCg0KICAgICAgICB2YXIgcmVkdWN0aW9uX3JhdGlvID0gZmxvYXQoZSgncmVkdWN0aW9uX3JhdGlvJykudmFsdWUpOw0KICAgICAgICB2YXIgbWF4X3Byb3Bfc2hhZnRfdG9ycXVlX25tID0gbWF4X3RvcnF1ZV9ubSAqIHJlZHVjdGlvbl9yYXRpbzsNCg0KICAgICAgICBlKCdtYXhfcHJvcF9zaGFmdF90b3JxdWVfbm0nKS52YWx1ZSA9IGZvcm1hdChtYXhfcHJvcF9zaGFmdF90b3JxdWVfbm0pOw0KDQogICAgICAgIC8vDQoNCiAgICAgICAgdmFyIG1heF90aHJ1c3Rfa25tID0gbWF4X2hwICogMC4wNTU7DQogICAgICAgIGlmIChlKCdjYWxjdWxhdG9yJykuZGF0YXNldC5odWxsID09PSAnc2VtaScpIHsNCiAgICAgICAgICAgIG1heF90aHJ1c3Rfa25tID0gbWF4X2hwICogMC4wNzU7DQogICAgICAgIH0gZWxzZSBpZiAoZSgnY2FsY3VsYXRvcicpLmRhdGFzZXQuaHVsbCA9PT0gJ2Rpc3BsYWNlbWVudCcpIHsNCiAgICAgICAgICAgIG1heF90aHJ1c3Rfa25tID0gbWF4X2hwICogMC4wOTsNCiAgICAgICAgfQ0KICAgICAgICBlKCdtYXhfdGhydXN0X2tubScpLnZhbHVlID0gZm9ybWF0KG1heF90aHJ1c3Rfa25tKTsNCg0KICAgICAgICAvLw0KDQogICAgICAgIHZhciBtYXhfc2hhZnRfdG9ycXVlID0gbWF4X3Byb3Bfc2hhZnRfdG9ycXVlX25tOw0KICAgICAgICBpZiAoZSgnY2FsY3VsYXRvcicpLmRhdGFzZXQuYXBwbGljYXRpb24gPT09ICdsaWdodCcpIHsNCiAgICAgICAgICAgIG1heF9zaGFmdF90b3JxdWUgKj0gMS40Ow0KICAgICAgICB9DQoNCiAgICAgICAgZSgncGxlYXN1cmVfYm9hdCcpLnZhbHVlID0gZm9ybWF0KG1heF9wcm9wX3NoYWZ0X3RvcnF1ZV9ubSk7DQogICAgICAgIGUoJ2xpZ2h0X2NvbW1lcmNpYWwnKS52YWx1ZSA9IGZvcm1hdChtYXhfcHJvcF9zaGFmdF90b3JxdWVfbm0gKiAxLjQpOw0KDQogICAgICAgIC8vDQoNCiAgICAgICAgdmFyIHByb3BlbGxlcl9zaGFmdF9kaWFtZXRlciA9IGUoJ2NhbGN1bGF0b3InKS5xdWVyeVNlbGVjdG9yKCdzZWxlY3RbbmFtZT0icHJvcGVsbGVyX3NoYWZ0X2RpYW1ldGVyIl0nKS52YWx1ZTsNCg0KICAgICAgICB2YXIgdHlwZSA9IGUoJ3BkLXR5cGUnKTsNCiAgICAgICAgdmFyIGF2YWlsID0gZSgncGQtbm9uZS1hdmFpbGFibGUnKTsNCiAgICAgICAgdmFyIGltYWdlID0gZSgncGQtaW1hZ2UnKTsNCiAgICAgICAgdmFyIHVybCA9IGUoJ3BkLXVybCcpOw0KDQogICAgICAgIC8vIHJlc2V0DQogICAgICAgIHR5cGUuaW5uZXJUZXh0ID0gJ1B5dGhvbi1Ecml2ZSc7DQogICAgICAgIGltYWdlLnNyYyA9ICcnOw0KICAgICAgICB1cmwuaHJlZiA9ICcnOw0KICAgICAgICB1cmwuaW5uZXJUZXh0ID0gJyc7DQoNCiAgICAgICAgaWYgKGUoJ2NhbGN1bGF0b3InKS5kYXRhc2V0LmFwcGxpY2F0aW9uID09PSAnaGVhdnknKSB7DQogICAgICAgICAgICByZXR1cm47DQogICAgICAgIH0NCg0KICAgICAgICBpZiAoIW1heF9ocCB8fCAhbWF4X3JwbSB8fCAhcmVkdWN0aW9uX3JhdGlvKSB7DQogICAgICAgICAgICByZXR1cm47DQogICAgICAgIH0NCg0KICAgICAgICB2YXIgcGRzID0gWw0KICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgIGNvZGU6ICdQMzAtUicsDQogICAgICAgICAgICAgICAgbWF4X3NoYWZ0X3RvcnF1ZTogMjk0LA0KICAgICAgICAgICAgICAgIHByb3BlbGxlcl9zaGFmdF9kaWFtZXRlcjogJzE5IC0gMzAgbW0nLA0KICAgICAgICAgICAgICAgIG1heF9wcm9wX3RocnVzdDogNC4zLA0KICAgICAgICAgICAgICAgIHVybF9ubDogJy9wcm9kdWN0LWNhdGVnb3JpZS9tb3RvcmRlbGVuL2FhbmRyaWp2aW5nZW4vcHl0aG9uLWRyaXZlLWhvbW9raW5lZXQvcHl0aG9uLWRyaXZlLXAzMC1yLTUwcGstMjk0bm0vJywNCiAgICAgICAgICAgICAgICB1cmxfZW46ICcnLA0KICAgICAgICAgICAgICAgIHVybF9kZTogJycsDQogICAgICAgICAgICB9LCB7DQogICAgICAgICAgICAgICAgY29kZTogJ1A2MC1CJywNCiAgICAgICAgICAgICAgICBtYXhfc2hhZnRfdG9ycXVlOiA1ODgsDQogICAgICAgICAgICAgICAgcHJvcGVsbGVyX3NoYWZ0X2RpYW1ldGVyOiAnMzAgLSA0MCBtbScsDQogICAgICAgICAgICAgICAgbWF4X3Byb3BfdGhydXN0OiA1LjcsDQogICAgICAgICAgICAgICAgdXJsX25sOiAnL3Byb2R1Y3QtY2F0ZWdvcmllL21vdG9yZGVsZW4vYWFuZHJpanZpbmdlbi9weXRob24tZHJpdmUtaG9tb2tpbmVldC9weXRob24tZHJpdmUtcDYwLWItNzBway01ODhubS8nLA0KICAgICAgICAgICAgICAgIHVybF9lbjogJycsDQogICAgICAgICAgICAgICAgdXJsX2RlOiAnJywNCiAgICAgICAgICAgIH0sIHsNCiAgICAgICAgICAgICAgICBjb2RlOiAnUDYwLUsnLA0KICAgICAgICAgICAgICAgIG1heF9zaGFmdF90b3JxdWU6IDU4OCwNCiAgICAgICAgICAgICAgICBwcm9wZWxsZXJfc2hhZnRfZGlhbWV0ZXI6ICczMCAtIDQwIG1tJywNCiAgICAgICAgICAgICAgICBtYXhfcHJvcF90aHJ1c3Q6IDUuNywNCiAgICAgICAgICAgICAgICB1cmxfbmw6ICcvcHJvZHVjdC1jYXRlZ29yaWUvbW90b3JkZWxlbi9hYW5kcmlqdmluZ2VuL3B5dGhvbi1kcml2ZS1ob21va2luZWV0L3B5dGhvbi1kcml2ZS1wNjAtay03MHBrLTU4OG5tLycsDQogICAgICAgICAgICAgICAgdXJsX2VuOiAnJywNCiAgICAgICAgICAgICAgICB1cmxfZGU6ICcnLA0KICAgICAgICAgICAgfSwgew0KICAgICAgICAgICAgICAgIGNvZGU6ICdQODAtTScsDQogICAgICAgICAgICAgICAgbWF4X3NoYWZ0X3RvcnF1ZTogNzg1LA0KICAgICAgICAgICAgICAgIHByb3BlbGxlcl9zaGFmdF9kaWFtZXRlcjogJzMwIC0gNDUgbW0nLA0KICAgICAgICAgICAgICAgIG1heF9wcm9wX3RocnVzdDogOCwNCiAgICAgICAgICAgICAgICB1cmxfbmw6ICcvcHJvZHVjdC1jYXRlZ29yaWUvbW90b3JkZWxlbi9hYW5kcmlqdmluZ2VuL3B5dGhvbi1kcml2ZS1ob21va2luZWV0L3B5dGhvbi1kcml2ZS1wODAtbS0xMDVway03ODVubS8nLA0KICAgICAgICAgICAgICAgIHVybF9lbjogJycsDQogICAgICAgICAgICAgICAgdXJsX2RlOiAnJywNCiAgICAgICAgICAgIH0sIHsNCiAgICAgICAgICAgICAgICBjb2RlOiAnUDgwLVMnLA0KICAgICAgICAgICAgICAgIG1heF9zaGFmdF90b3JxdWU6IDc4NSwNCiAgICAgICAgICAgICAgICBwcm9wZWxsZXJfc2hhZnRfZGlhbWV0ZXI6ICczMCAtIDQ1IG1tJywNCiAgICAgICAgICAgICAgICBtYXhfcHJvcF90aHJ1c3Q6IDEyLA0KICAgICAgICAgICAgICAgIHVybF9ubDogJy9wcm9kdWN0LWNhdGVnb3JpZS9tb3RvcmRlbGVuL2FhbmRyaWp2aW5nZW4vcHl0aG9uLWRyaXZlLWhvbW9raW5lZXQvcHl0aG9uLWRyaXZlLXA4MC1zLTEzMHBrLTc4NW5tLycsDQogICAgICAgICAgICAgICAgdXJsX2VuOiAnJywNCiAgICAgICAgICAgICAgICB1cmxfZGU6ICcnLA0KICAgICAgICAgICAgfSwgew0KICAgICAgICAgICAgICAgIGNvZGU6ICdQMTEwLVMnLA0KICAgICAgICAgICAgICAgIG1heF9zaGFmdF90b3JxdWU6IDEwODAsDQogICAgICAgICAgICAgICAgcHJvcGVsbGVyX3NoYWZ0X2RpYW1ldGVyOiAnMzUgLSA0NSBtbScsDQogICAgICAgICAgICAgICAgbWF4X3Byb3BfdGhydXN0OiAxMiwNCiAgICAgICAgICAgICAgICB1cmxfbmw6ICcvcHJvZHVjdC1jYXRlZ29yaWUvbW90b3JkZWxlbi9hYW5kcmlqdmluZ2VuL3B5dGhvbi1kcml2ZS1ob21va2luZWV0L3B5dGhvbi1kcml2ZS1wMTEwLXMtMTM1cGstMTA4MG5tLycsDQogICAgICAgICAgICAgICAgdXJsX2VuOiAnJywNCiAgICAgICAgICAgICAgICB1cmxfZGU6ICcnLA0KICAgICAgICAgICAgfSwgew0KICAgICAgICAgICAgICAgIGNvZGU6ICdQMTEwLVQnLA0KICAgICAgICAgICAgICAgIG1heF9zaGFmdF90b3JxdWU6IDEwODAsDQogICAgICAgICAgICAgICAgcHJvcGVsbGVyX3NoYWZ0X2RpYW1ldGVyOiAnMzUgLSA1MCBtbScsDQogICAgICAgICAgICAgICAgbWF4X3Byb3BfdGhydXN0OiAxOCwNCiAgICAgICAgICAgICAgICB1cmxfbmw6ICcvcHJvZHVjdC1jYXRlZ29yaWUvbW90b3JkZWxlbi9hYW5kcmlqdmluZ2VuL3B5dGhvbi1kcml2ZS1ob21va2luZWV0L3B5dGhvbi1kcml2ZS1wMTEwLXQtMTkwcGstMTM3MG5tLycsDQogICAgICAgICAgICAgICAgdXJsX2VuOiAnJywNCiAgICAgICAgICAgICAgICB1cmxfZGU6ICcnLA0KICAgICAgICAgICAgfSwgew0KICAgICAgICAgICAgICAgIGNvZGU6ICdQMTQwLVQnLA0KICAgICAgICAgICAgICAgIG1heF9zaGFmdF90b3JxdWU6IDEzNzAsDQogICAgICAgICAgICAgICAgcHJvcGVsbGVyX3NoYWZ0X2RpYW1ldGVyOiAnNDAgLSA1NSBtbScsDQogICAgICAgICAgICAgICAgbWF4X3Byb3BfdGhydXN0OiAxOCwNCiAgICAgICAgICAgICAgICB1cmxfbmw6ICcvcHJvZHVjdC1jYXRlZ29yaWUvbW90b3JkZWxlbi9hYW5kcmlqdmluZ2VuL3B5dGhvbi1kcml2ZS1ob21va2luZWV0L3B5dGhvbi1kcml2ZS1wMTQwLXQtMTkwcGstMTM3MG5tLycsDQogICAgICAgICAgICAgICAgdXJsX2VuOiAnJywNCiAgICAgICAgICAgICAgICB1cmxfZGU6ICcnLA0KICAgICAgICAgICAgfSwgew0KICAgICAgICAgICAgICAgIGNvZGU6ICdQMjAwLVQnLA0KICAgICAgICAgICAgICAgIG1heF9zaGFmdF90b3JxdWU6IDE5NjAsDQogICAgICAgICAgICAgICAgcHJvcGVsbGVyX3NoYWZ0X2RpYW1ldGVyOiAnNDAgLSA2MCBtbScsDQogICAgICAgICAgICAgICAgbWF4X3Byb3BfdGhydXN0OiAxOCwNCiAgICAgICAgICAgICAgICB1cmxfbmw6ICcvcHJvZHVjdC1jYXRlZ29yaWUvbW90b3JkZWxlbi9hYW5kcmlqdmluZ2VuL3B5dGhvbi1kcml2ZS1ob21va2luZWV0L3B5dGhvbi1kcml2ZS1wMjAwLXQtMjQwcGstMTk2MG5tLycsDQogICAgICAgICAgICAgICAgdXJsX2VuOiAnJywNCiAgICAgICAgICAgICAgICB1cmxfZGU6ICcnLA0KICAgICAgICAgICAgfSwgew0KICAgICAgICAgICAgICAgIGNvZGU6ICdQMjAwLVEnLA0KICAgICAgICAgICAgICAgIG1heF9zaGFmdF90b3JxdWU6IDE5NjAsDQogICAgICAgICAgICAgICAgcHJvcGVsbGVyX3NoYWZ0X2RpYW1ldGVyOiAnNDUgLSA2MCBtbScsDQogICAgICAgICAgICAgICAgbWF4X3Byb3BfdGhydXN0OiAyMiwNCiAgICAgICAgICAgICAgICB1cmxfbmw6ICcvcHJvZHVjdC1jYXRlZ29yaWUvbW90b3JkZWxlbi9hYW5kcmlqdmluZ2VuL3B5dGhvbi1kcml2ZS1ob21va2luZWV0L3B5dGhvbi1kcml2ZS1wMjAwLXEtMjUwcGstMTk2MG5tLycsDQogICAgICAgICAgICAgICAgdXJsX2VuOiAnJywNCiAgICAgICAgICAgICAgICB1cmxfZGU6ICcnLA0KICAgICAgICAgICAgfSwgew0KICAgICAgICAgICAgICAgIGNvZGU6ICdQMjAwLVcnLA0KICAgICAgICAgICAgICAgIG1heF9zaGFmdF90b3JxdWU6IDE5NjAsDQogICAgICAgICAgICAgICAgcHJvcGVsbGVyX3NoYWZ0X2RpYW1ldGVyOiAnNTAgLSA2MCBtbScsDQogICAgICAgICAgICAgICAgbWF4X3Byb3BfdGhydXN0OiAzMCwNCiAgICAgICAgICAgICAgICB1cmxfbmw6ICcvcHJvZHVjdC1jYXRlZ29yaWUvbW90b3JkZWxlbi9hYW5kcmlqdmluZ2VuL3B5dGhvbi1kcml2ZS1ob21va2luZWV0L3B5dGhvbi1kcml2ZS1wMjAwLXctMjc1cGstMTk2MG5tLycsDQogICAgICAgICAgICAgICAgdXJsX2VuOiAnJywNCiAgICAgICAgICAgICAgICB1cmxfZGU6ICcnLA0KICAgICAgICAgICAgfSwgew0KICAgICAgICAgICAgICAgIGNvZGU6ICdQNTAxLVEnLA0KICAgICAgICAgICAgICAgIG1heF9zaGFmdF90b3JxdWU6IDQ5MDAsDQogICAgICAgICAgICAgICAgcHJvcGVsbGVyX3NoYWZ0X2RpYW1ldGVyOiAnNTAgLSA2MCBtbScsDQogICAgICAgICAgICAgICAgbWF4X3Byb3BfdGhydXN0OiAyMiwNCiAgICAgICAgICAgICAgICB1cmxfbmw6ICcvcHJvZHVjdC1jYXRlZ29yaWUvbW90b3JkZWxlbi9hYW5kcmlqdmluZ2VuL3B5dGhvbi1kcml2ZS1ob21va2luZWV0L3B5dGhvbi1kcml2ZS1wNTAxLXEtMzAwLXBrLTQ5MDAtbm0vJywNCiAgICAgICAgICAgICAgICB1cmxfZW46ICcnLA0KICAgICAgICAgICAgICAgIHVybF9kZTogJycsDQogICAgICAgICAgICB9LCB7DQogICAgICAgICAgICAgICAgY29kZTogJ1A1MDEtVycsDQogICAgICAgICAgICAgICAgbWF4X3NoYWZ0X3RvcnF1ZTogNDkwMCwNCiAgICAgICAgICAgICAgICBwcm9wZWxsZXJfc2hhZnRfZGlhbWV0ZXI6ICc1MCAtIDgwIG1tJywNCiAgICAgICAgICAgICAgICBtYXhfcHJvcF90aHJ1c3Q6IDMwLA0KICAgICAgICAgICAgICAgIHVybF9ubDogJy9wcm9kdWN0LWNhdGVnb3JpZS9tb3RvcmRlbGVuL2FhbmRyaWp2aW5nZW4vcHl0aG9uLWRyaXZlLWhvbW9raW5lZXQvcHl0aG9uLWRyaXZlLXA1MDEtdy00MDBway00OTAwbm0vJywNCiAgICAgICAgICAgICAgICB1cmxfZW46ICcnLA0KICAgICAgICAgICAgICAgIHVybF9kZTogJycsDQogICAgICAgICAgICB9LCB7DQogICAgICAgICAgICAgICAgY29kZTogJ1A1MDEtTCcsDQogICAgICAgICAgICAgICAgbWF4X3NoYWZ0X3RvcnF1ZTogNDkwMCwNCiAgICAgICAgICAgICAgICBwcm9wZWxsZXJfc2hhZnRfZGlhbWV0ZXI6ICc1MCAtIDgwIG1tJywNCiAgICAgICAgICAgICAgICBtYXhfcHJvcF90aHJ1c3Q6IDQ1LA0KICAgICAgICAgICAgICAgIHVybF9ubDogJy9wcm9kdWN0LWNhdGVnb3JpZS9tb3RvcmRlbGVuL2FhbmRyaWp2aW5nZW4vcHl0aG9uLWRyaXZlLWhvbW9raW5lZXQvcHl0aG9uLWRyaXZlLXA1MDEtbC01MDBway00OTAwbm0vJywNCiAgICAgICAgICAgICAgICB1cmxfZW46ICcnLA0KICAgICAgICAgICAgICAgIHVybF9kZTogJycsDQogICAgICAgICAgICB9LCB7DQogICAgICAgICAgICAgICAgY29kZTogJ1A3NTUtTCcsDQogICAgICAgICAgICAgICAgbWF4X3NoYWZ0X3RvcnF1ZTogNzM1NSwNCiAgICAgICAgICAgICAgICBwcm9wZWxsZXJfc2hhZnRfZGlhbWV0ZXI6ICc3MCAtIDgwIG1tJywNCiAgICAgICAgICAgICAgICBtYXhfcHJvcF90aHJ1c3Q6IDQ1LA0KICAgICAgICAgICAgICAgIHVybF9ubDogJy9wcm9kdWN0LWNhdGVnb3JpZS9tb3RvcmRlbGVuL2FhbmRyaWp2aW5nZW4vcHl0aG9uLWRyaXZlLWhvbW9raW5lZXQvcHl0aG9uLWRyaXZlLXA3NTUtbC02MDBwcy03MzU1bm0vJywNCiAgICAgICAgICAgICAgICB1cmxfZW46ICcnLA0KICAgICAgICAgICAgICAgIHVybF9kZTogJycsDQogICAgICAgICAgICB9LCB7DQogICAgICAgICAgICAgICAgY29kZTogJ1AxMDI1LUwnLA0KICAgICAgICAgICAgICAgIG1heF9zaGFmdF90b3JxdWU6IDk4MTAsDQogICAgICAgICAgICAgICAgcHJvcGVsbGVyX3NoYWZ0X2RpYW1ldGVyOiAnNzAgLSA4MCBtbScsDQogICAgICAgICAgICAgICAgbWF4X3Byb3BfdGhydXN0OiA0NSwNCiAgICAgICAgICAgICAgICB1cmxfbmw6ICcvcHJvZHVjdC1jYXRlZ29yaWUvbW90b3JkZWxlbi9hYW5kcmlqdmluZ2VuL3B5dGhvbi1kcml2ZS1ob21va2luZWV0L3B5dGhvbi1kcml2ZS1wMTAyNS1sLTc1MC1way05ODA3bm0vJywNCiAgICAgICAgICAgICAgICB1cmxfZW46ICcnLA0KICAgICAgICAgICAgICAgIHVybF9kZTogJycsDQogICAgICAgICAgICB9LCB7DQogICAgICAgICAgICAgICAgY29kZTogJ1AxMDI1LUcnLA0KICAgICAgICAgICAgICAgIG1heF9zaGFmdF90b3JxdWU6IDk4MTAsDQogICAgICAgICAgICAgICAgcHJvcGVsbGVyX3NoYWZ0X2RpYW1ldGVyOiAnNzAgLSAxMDAgbW0nLA0KICAgICAgICAgICAgICAgIG1heF9wcm9wX3RocnVzdDogNjAsDQogICAgICAgICAgICAgICAgdXJsX25sOiAnL3Byb2R1Y3QtY2F0ZWdvcmllL21vdG9yZGVsZW4vYWFuZHJpanZpbmdlbi9weXRob24tZHJpdmUtaG9tb2tpbmVldC9weXRob24tZHJpdmUtcDEwMjUtZy04MDBway05ODEwbm0vJywNCiAgICAgICAgICAgICAgICB1cmxfZW46ICcnLA0KICAgICAgICAgICAgICAgIHVybF9kZTogJycsDQogICAgICAgICAgICB9LCB7DQogICAgICAgICAgICAgICAgY29kZTogJ1AxNTAwLUcnLA0KICAgICAgICAgICAgICAgIG1heF9zaGFmdF90b3JxdWU6IDE0NzE1LA0KICAgICAgICAgICAgICAgIHByb3BlbGxlcl9zaGFmdF9kaWFtZXRlcjogJzgwIC0gMTAwIG1tJywNCiAgICAgICAgICAgICAgICBtYXhfcHJvcF90aHJ1c3Q6IDYwLA0KICAgICAgICAgICAgICAgIHVybF9ubDogJy9wcm9kdWN0LWNhdGVnb3JpZS9tb3RvcmRlbGVuL2FhbmRyaWp2aW5nZW4vcHl0aG9uLWRyaXZlLWhvbW9raW5lZXQvcHl0aG9uLWRyaXZlLXAxMDI1LWctODAwcGstOTgxMG5tLycsDQogICAgICAgICAgICAgICAgdXJsX2VuOiAnJywNCiAgICAgICAgICAgICAgICB1cmxfZGU6ICcnLA0KICAgICAgICAgICAgfSwNCiAgICAgICAgXTsNCg0KICAgICAgICB2YXIgaHRtbCA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoJ2h0bWwnKTsNCiAgICAgICAgdmFyIGxhbmcgPSBodG1sLmF0dHJpYnV0ZXMuZ2V0TmFtZWRJdGVtKCdsYW5nJykudmFsdWUuc3Vic3RyKDAsIDIpLnRvTG93ZXJDYXNlKCk7DQoNCiAgICAgICAgQXJyYXkucHJvdG90eXBlLmZvckVhY2guY2FsbChwZHMsIGZ1bmN0aW9uIChwZCkgew0KICAgICAgICAgICAgaWYgKA0KICAgICAgICAgICAgICAgIHR5cGUuaW5uZXJUZXh0ID09PSAnUHl0aG9uLURyaXZlJw0KICAgICAgICAgICAgICAgICYmIHBkX2F2YWlsYWJsZShwZCwgbWF4X3NoYWZ0X3RvcnF1ZSwgcHJvcGVsbGVyX3NoYWZ0X2RpYW1ldGVyLCBtYXhfdGhydXN0X2tubSkNCiAgICAgICAgICAgICkgew0KICAgICAgICAgICAgICAgIHR5cGUuaW5uZXJUZXh0ID0gcGQuY29kZTsNCiAgICAgICAgICAgICAgICBpZiAobGFuZyA9PT0gJ2VuJyAmJiBwZC51cmxfZW4pIHsNCiAgICAgICAgICAgICAgICAgICAgdXJsLmhyZWYgPSBwZC51cmxfZW47DQogICAgICAgICAgICAgICAgfSBlbHNlIGlmIChsYW5nID09PSAnZGUnICYmIHBkLnVybF9kZSkgew0KICAgICAgICAgICAgICAgICAgICB1cmwuaHJlZiA9IHBkLnVybF9kZTsNCiAgICAgICAgICAgICAgICB9IGVsc2Ugew0KICAgICAgICAgICAgICAgICAgICB1cmwuaHJlZiA9IHBkLnVybF9ubDsNCiAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgdXJsLmlubmVyVGV4dCA9ICdWaXNpdCBvdXIgc2hvcCBmb3IgdGhpcyBwcm9kdWN0ID4+JzsNCiAgICAgICAgICAgIH0NCiAgICAgICAgfSk7DQoNCiAgICAgICAgYXZhaWwuaW5uZXJUZXh0ID0gJyc7DQogICAgICAgIGlmICh0eXBlLmlubmVyVGV4dCAhPT0gJ1B5dGhvbi1Ecml2ZScpIHsNCiAgICAgICAgICAgIGltYWdlLnNyYyA9IGltYWdlLnNyYyA9ICdodHRwczovL2FiLW1hcmluZXNlcnZpY2UuY29tL2NhbGN1bGF0b3IvaW1hZ2VzLycgKyB0eXBlLmlubmVyVGV4dCArICcuanBnJzsNCiAgICAgICAgfSBlbHNlIGlmIChwcm9wZWxsZXJfc2hhZnRfZGlhbWV0ZXIgIT09ICcnKSB7DQogICAgICAgICAgICBpZiAobGFuZyA9PT0gJ2VuJykgew0KICAgICAgICAgICAgICAgIGF2YWlsLmlubmVyVGV4dCA9ICdUaGlzIGNvbmZpZ3VyYXRpb24gaXMgbm90IHBvc3NpYmxlLiBQbGVhc2UgY29udGFjdCB1cy4nOw0KICAgICAgICAgICAgfSBlbHNlIGlmIChsYW5nID09PSAnZGUnKSB7DQogICAgICAgICAgICAgICAgLy8gdG9kbyB0cmFuc2xhdGUNCiAgICAgICAgICAgICAgICBhdmFpbC5pbm5lclRleHQgPSAnVGhpcyBjb25maWd1cmF0aW9uIGlzIG5vdCBwb3NzaWJsZS4gUGxlYXNlIGNvbnRhY3QgdXMuJzsNCiAgICAgICAgICAgIH0gZWxzZSB7DQogICAgICAgICAgICAgICAgYXZhaWwuaW5uZXJUZXh0ID0gJ0RlemUgY29uZmlndXJhdGllIGlzIG5pZXQgbW9nZWxpamsuIE5lZW0gY29udGFjdCBtZXQgb25zIG9wLic7DQogICAgICAgICAgICB9DQogICAgICAgIH0NCg0KICAgICAgICB2YXIgc2VsZWN0ID0gZSgnY2FsY3VsYXRvcicpLnF1ZXJ5U2VsZWN0b3IoJ3NlbGVjdFtuYW1lPSJwcm9wZWxsZXJfc2hhZnRfZGlhbWV0ZXIiXScpOw0KICAgICAgICBBcnJheS5wcm90b3R5cGUuZm9yRWFjaC5jYWxsKHNlbGVjdC5jaGlsZHJlbiwgZnVuY3Rpb24gKG9wdGlvbikgew0KICAgICAgICAgICAgaWYgKCFvcHRpb24udmFsdWUpIHsNCiAgICAgICAgICAgICAgICByZXR1cm47DQogICAgICAgICAgICB9DQoNCiAgICAgICAgICAgIG9wdGlvbi5zdHlsZS5jb2xvciA9ICdncmV5JzsNCg0KICAgICAgICAgICAgQXJyYXkucHJvdG90eXBlLmZvckVhY2guY2FsbChwZHMsIGZ1bmN0aW9uIChwZCkgew0KICAgICAgICAgICAgICAgIGlmIChwZF9hdmFpbGFibGUocGQsIG1heF9zaGFmdF90b3JxdWUsIG9wdGlvbi52YWx1ZSwgbWF4X3RocnVzdF9rbm0pKSB7DQogICAgICAgICAgICAgICAgICAgIG9wdGlvbi5zdHlsZS5jb2xvciA9ICcnOw0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgIH0pOw0KICAgICAgICB9KTsNCiAgICB9DQoNCiAgICBkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCdET01Db250ZW50TG9hZGVkJywgZnVuY3Rpb24gKCkgew0KICAgICAgICB2YXIgYyA9IGUoJ2NhbGN1bGF0b3InKTsNCg0KICAgICAgICBBcnJheS5wcm90b3R5cGUuZm9yRWFjaC5jYWxsKGMuZ2V0RWxlbWVudHNCeVRhZ05hbWUoJ2lucHV0JyksIGZ1bmN0aW9uIChlbGVtZW50KSB7DQogICAgICAgICAgICBlbGVtZW50LmFkZEV2ZW50TGlzdGVuZXIoJ2NoYW5nZScsIGNhbGN1bGF0ZSk7DQogICAgICAgICAgICBlbGVtZW50LmFkZEV2ZW50TGlzdGVuZXIoJ2tleXVwJywgY2FsY3VsYXRlKTsNCiAgICAgICAgfSk7DQogICAgICAgIEFycmF5LnByb3RvdHlwZS5mb3JFYWNoLmNhbGwoYy5nZXRFbGVtZW50c0J5VGFnTmFtZSgnc2VsZWN0JyksIGZ1bmN0aW9uIChlbGVtZW50KSB7DQogICAgICAgICAgICBlbGVtZW50LmFkZEV2ZW50TGlzdGVuZXIoJ2NoYW5nZScsIGNhbGN1bGF0ZSk7DQogICAgICAgIH0pOw0KDQogICAgICAgIEFycmF5LnByb3RvdHlwZS5mb3JFYWNoLmNhbGwoYy5xdWVyeVNlbGVjdG9yQWxsKCdpbnB1dFtuYW1lPSJodWxsIl0nKSwgZnVuY3Rpb24gKGVsZW1lbnQpIHsNCiAgICAgICAgICAgIGVsZW1lbnQuYWRkRXZlbnRMaXN0ZW5lcignY2xpY2snLCBmdW5jdGlvbiAoKSB7DQogICAgICAgICAgICAgICAgZSgnaHVsbCcpLmNsYXNzTGlzdC5hZGQoJ29wZW4nKTsNCiAgICAgICAgICAgICAgICBjLmRhdGFzZXQuaHVsbCA9IGVsZW1lbnQudmFsdWU7DQogICAgICAgICAgICB9KTsNCg0KICAgICAgICAgICAgaWYgKGVsZW1lbnQuY2hlY2tlZCkgew0KICAgICAgICAgICAgICAgIGUoJ2h1bGwnKS5jbGFzc0xpc3QuYWRkKCdvcGVuJyk7DQogICAgICAgICAgICAgICAgYy5kYXRhc2V0Lmh1bGwgPSBlbGVtZW50LnZhbHVlOw0KICAgICAgICAgICAgfQ0KICAgICAgICB9KTsNCg0KICAgICAgICBBcnJheS5wcm90b3R5cGUuZm9yRWFjaC5jYWxsKGMucXVlcnlTZWxlY3RvckFsbCgnaW5wdXRbbmFtZT0iYXBwbGljYXRpb24iXScpLCBmdW5jdGlvbiAoZWxlbWVudCkgew0KICAgICAgICAgICAgZWxlbWVudC5hZGRFdmVudExpc3RlbmVyKCdjbGljaycsIGZ1bmN0aW9uICgpIHsNCiAgICAgICAgICAgICAgICBjLmRhdGFzZXQuYXBwbGljYXRpb24gPSBlbGVtZW50LnZhbHVlOw0KICAgICAgICAgICAgfSk7DQoNCiAgICAgICAgICAgIGlmIChlbGVtZW50LmNoZWNrZWQpIHsNCiAgICAgICAgICAgICAgICBjLmRhdGFzZXQuYXBwbGljYXRpb24gPSBlbGVtZW50LnZhbHVlOw0KICAgICAgICAgICAgfQ0KICAgICAgICB9KTsNCg0KICAgICAgICBjYWxjdWxhdGUoKTsNCiAgICB9KTsNCjwvc2NyaXB0Pg0K[\/vc_raw_html][\/vc_column][\/vc_row]<\/p>\n<\/div>","protected":false},"excerpt":{"rendered":"<p>[vc_row][vc_column][vc_raw_html]PHN0eWxlPg0KCWJvZHkgew0KCQlmb250LWZhbWlseTogc2Fucy1zZXJpZjsNCgkJZm9udC1zaXplOiAxNnB4Ow0KCX0NCg0KCS5jYWxjdWxhdG9yIGlucHV0LA0KCS5jYWxjdWxhdG9yIHNlbGVjdCB7DQoJCWZvbnQtc2l6ZTogMTZweDsNCgkJcGFkZGluZzogNXB4Ow0KCX0NCg0KCS5jYWxjdWxhdG9yIGlucHV0IHsNCgkJbWF4LXdpZHRoOiA2cmVtOw0KCQl0ZXh0LWFsaWduOiBjZW50ZXI7DQoJfQ0KDQoJLmNhbGN1bGF0b3IgdGQgew0KCQliYWNrZ3JvdW5kLWNvbG9yOiAjZmZmICFpbXBvcnRhbnQ7DQoJCXBhZGRpbmc6IDVweDsNCgl9DQoNCgkuY2FsY3VsYXRvciB0ZDpmaXJzdC1jaGlsZCwNCgkuY2FsY3VsYXRvciB0ZFtjb2xzcGFuXSB7DQoJCXdoaXRlLXNwYWNlOiBub3JtYWw7DQoJfQ0KDQoJLmNhbGN1bGF0b3IgLmZpbGxpbiB7DQoJCWJhY2tncm91bmQtY29sb3I6ICNkZDhlMTg7DQoJCWNvbG9yOiAjMDAwOw0KCX0NCg0KCS5jYWxjdWxhdG9yIC5maWxsaW5bcmVhZG9ubHldIHsNCgkJY3Vyc29yOiBkZWZhdWx0Ow0KCX0NCg0KCS5jYWxjdWxhdG9yIGxhYmVsLmZpbGxpbiB7DQoJCWRpc3BsYXk6IGlubGluZS1ibG9jazsNCgkJbWFyZ2luOiAwIDFlbTsNCgkJcGFkZGluZzogMWVtOw0KCX0NCg0KCS5jYWxjdWxhdG9yIGxhYmVsLmZpbGxpbi5kLWJsb2NrIHsNCgkJZGlzcGxheTogYmxvY2s7DQoJCW1hcmdpbjogLjVlbSAwOw0KCQlwYWRkaW5nOiAuNWVtOw0KCX0NCg0KCS5jYWxjdWxhdG9yIC5vdXRjb21lIHsNCgkJYmFja2dyb3VuZC1jb2xvcjogY2FkZXRibHVlOw0KCQljb2xvcjogIzAwMDsNCgkJY3Vyc29yOiBkZWZhdWx0Ow0KCX0NCg0KCS5jYWxjdWxhdG9yIC50aCB7DQoJCW1pbi13aWR0aDogMTAwcHg7DQoJfQ0KDQoJLmNhbGN1bGF0b3IgdHIuZGl2aWRlciB0ZCB7DQoJCWZvbnQtc2l6ZTogMXB4Ow0KCX0NCg0KCS5jYWxjdWxhdG9yIC50ZXh0LXJpZ2h0IHsNCgkJdGV4dC1hbGlnbjogcmlnaHQ7DQoJfQ0KDQoJLmNhbGN1bGF0b3IgI2h1bGwgew0KCQlkaXNwbGF5OiBub25lOw0KCX0NCg0KCS5jYWxjdWxhdG9yICNodWxsLm9wZW4gew0KCQlkaXNwbGF5OiB0YWJsZS1yb3ctZ3JvdXA7DQoJfQ0KDQoJLmNhbGN1bGF0b3IgdHIuZC1ub25lIHsNCgkJZGlzcGxheTogbm9uZTsNCgl9DQoNCgkuY2FsY3VsYXRvcltkYXRhLWFwcGxpY2F0aW9uPSJwbGVhc3VyZSJdIHRyLmFwcGxpY2F0aW9uLXBsZWFzdXJlIHsNCgkJZGlzcGxheTogdGFibGUtcm93Ow0KCX0NCg0KCS5jYWxjdWxhdG9yW2RhdGEtYXBwbGljYXRpb249ImxpZ2h0Il0gdHIuYXBwbGljYXRpb24tbGlnaHQgew0KCQlkaXNwbGF5OiB0YWJsZS1yb3c7DQoJfQ0KDQoJLmNhbGN1bGF0b3JbZGF0YS1hcHBsaWNhdGlvbj0iaGVhdnkiXSB0ci5hcHBsaWNhdGlvbi1oZWF2eSB7DQoJCWRpc3BsYXk6IHRhYmxlLXJvdzsNCgl9DQoNCgkuY2FsY3VsYXRvciAuaW1hZ2Ugew0KCQltaW4taGVpZ2h0OiAxNTBweDsNCgl9DQoNCglAbWVkaWEgKG1heC13aWR0aDogNTc1cHgpIHsNCgkJLmNhbGN1bGF0b3IgdGQgew0KCQkJZGlzcGxheTogaW5saW5lLWJsb2NrOw0KCQl9DQoNCgkJLmNhbGN1bGF0b3IgdGQ6Zmlyc3QtY2hpbGQ6bm90KFtjb2xzcGFuXSkgew0KCQkJZGlzcGxheTogYmxvY2s7DQoJCQl3aWR0aDogMTAwJTsNCgkJfQ0KDQoJCS5jYWxjdWxhdG9yIHRkLnRleHQtcmlnaHQgew0KCQkJdGV4dC1hbGlnbjogbGVmdDsNCgkJfQ0KDQoJCS5jYWxjdWxhdG9yIC50aCB7DQoJCQlmb250LXdlaWdodDogYm9sZDsNCgkJCXRleHQtYWxpZ246IGNlbnRlcjsNCgkJfQ0KCX0NCjwvc3R5bGU+DQoNCjxkaXYgY2xhc3M9ImNhbGN1bGF0b3IiIGRhdGEtaHVsbD0iIiBkYXRhLWFwcGxpY2F0aW9uPSJwbGVhc3VyZSIgaWQ9ImNhbGN1bGF0b3IiPg0KICAgIDx0YWJsZSBjbGFzcz0idGFibGUiPg0KICAgICAgICA8dGJvZHk+DQogICAgICAgIDx0cj4NCiAgICAgICAgICAgIDx0ZCBjb2xzcGFuPSIzIj4NCiAgICAgICAgICAgICAgICBQbGVhc2UgZmlsbCBpbiB0aGUgcmVxdWlyZWQgZGF0YSB3aGVyZTogPGlucHV0IGNsYXNzPSJmaWxsaW4iIHJlYWRvbmx5IHR5cGU9InRleHQiPiBoYXMgdG8gYmUNCiAgICAgICAgICAgICAgICBmaWxsZWQgaW4gYW5kIDxpbnB1dCBjbGFzcz0ib3V0Y29tZSIgcmVhZG9ubHkgdHlwZT0idGV4dCI+IGlzIG91dGNvbWUNCiAgICAgICAgICAgIDwvdGQ+DQogICAgICAgIDwvdHI+DQogICAgICAgIDx0cj4NCiAgICAgICAgICAgIDx0ZCBjb2xzcGFuPSIzIj7CoDwvdGQ+DQogICAgICAgIDwvdHI+DQogICAgICAgIDx0cj4NCiAgICAgICAgICAgIDx0ZCBjb2xzcGFuPSIzIj4NCiAgICAgICAgICAgICAgICBQbGVhc2UgbWFrZSB5b3VyIGh1bGwgY2hvaWNlOg0KICAgICAgICAgICAgICAgIDxwPg0KICAgICAgICAgICAgICAgICAgICA8bGFiZWwgY2xhc3M9ImZpbGxpbiI+DQogICAgICAgICAgICAgICAgICAgICAgICA8aW5wdXQgdHlwZT0icmFkaW8iIG5hbWU9Imh1bGwiIHZhbHVlPSJwbGFuaW5nIj4gUGxhbmluZyBodWxsDQogICAgICAgICAgICAgICAgICAgIDwvbGFiZWw+DQogICAgICAgICAgICAgICAgICAgIDxsYWJlbCBjbGFzcz0iZmlsbGluIj4NCiAgICAgICAgICAgICAgICAgICAgICAgIDxpbnB1dCB0eXBlPSJyYWRpbyIgbmFtZT0iaHVsbCIgdmFsdWU9InNlbWkiPiBTZW1pIHBsYW5pbmcgLyBzZW1pIGRpc3BsYWNlbWVudCBodWxsDQogICAgICAgICAgICAgICAgICAgIDwvbGFiZWw+DQogICAgICAgICAgICAgICAgICAgIDxsYWJlbCBjbGFzcz0iZmlsbGluIj4NCiAgICAgICAgICAgICAgICAgICAgICAgIDxpbnB1dCB0eXBlPSJyYWRpbyIgbmFtZT0iaHVsbCIgdmFsdWU9ImRpc3BsYWNlbWVudCI+IERpc3BsYWNlbWVudCBodWxsDQogICAgICAgICAgICAgICAgICAgIDwvbGFiZWw+DQogICAgICAgICAgICAgICAgPC9wPg0KICAgICAgICAgICAgPC90ZD4NCiAgICAgICAgPC90cj4NCiAgICAgICAgPC90Ym9keT4NCiAgICAgICAgPHRib2R5IGlkPSJodWxsIj4NCiAgICAgICAgPHRyPg0KICAgICAgICAgICAgPHRkPg0KICAgICAgICAgICAgICAgIE1heC4gSFAgcmF0aW5nIG9mIHlvdXIgZW5naW5lDQogICAgICAgICAgICA8L3RkPg0KICAgICAgICAgICAgPHRkPg0KICAgICAgICAgICAgICAgIDxpbnB1dCBjbGFzcz0iZmlsbGluIiBpZD0ibWF4X2hwIiBtaW49IjAiIHN0ZXA9IjEiIHR5cGU9Im51bWJlciIgdmFsdWU9IjAiPiBIUA0KICAgICAgICAgICAgPC90ZD4NCiAgICAgICAgICAgIDx0ZD4NCiAgICAgICAgICAgICAgICAoZXF1YWxzIDxpbnB1dCBjbGFzcz0ib3V0Y29tZSIgaWQ9Im1heF9ocF9rdyIgcmVhZG9ubHkgdHlwZT0idGV4dCIgdmFsdWU9IiI+IGtXKQ0KICAgICAgICAgICAgPC90ZD4NCiAgICAgICAgPC90cj4NCiAgICAgICAgPHRyPg0KICAgICAgICAgICAgPHRkPg0KICAgICAgICAgICAgICAgIE1heC4gcnBtLiBvZiB5b3VyIGVuZ2luZQ0KICAgICAgICAgICAgPC90ZD4NCiAgICAgICAgICAgIDx0ZD4NCiAgICAgICAgICAgICAgICA8aW5wdXQgY2xhc3M9ImZpbGxpbiIgaWQ9Im1heF9ycG0iIG1pbj0iMCIgc3RlcD0iMSIgdHlwZT0ibnVtYmVyIiB2YWx1ZT0iMCI+IHJwbQ0KICAgICAgICAgICAgPC90ZD4NCiAgICAgICAgPC90cj4NCiAgICAgICAgPHRyIGNsYXNzPSJkaXZpZGVyIj4NCiAgICAgICAgICAgIDx0ZCBjb2xzcGFuPSIzIj7CoDwvdGQ+DQogICAgICAgIDwvdHI+DQogICAgICAgIDx0cj4NCiAgICAgICAgICAgIDx0ZD4NCiAgICAgICAgICAgICAgICBObSBtYXhpbXVtIGVuZ2luZSB0b3JxdWUNCiAgICAgICAgICAgIDwvdGQ+DQogICAgICAgICAgICA8dGQ+DQogICAgICAgICAgICAgICAgPGlucHV0IGNsYXNzPSJvdXRjb21lIiBpZD0ibWF4X3RvcnF1ZV9ubSIgcmVhZG9ubHkgdHlwZT0idGV4dCIgdmFsdWU9IiI+IE5tLg0KICAgICAgICAgICAgPC90ZD4NCiAgICAgICAgPC90cj4NCiAgICAgICAgPHRyIGNsYXNzPSJkaXZpZGVyIj4NCiAgICAgICAgICAgIDx0ZCBjb2xzcGFuPSIzIj7CoDwvdGQ+DQogICAgICAgIDwvdHI+DQogICAgICAgIDx0cj4NCiAgICAgICAgICAgIDx0ZD4NCiAgICAgICAgICAgICAgICBSZWR1Y3Rpb24gcmF0aW8gb2YgZ2VhcmJveA0KICAgICAgICAgICAgPC90ZD4NCiAgICAgICAgICAgIDx0ZCBjb2xzcGFuPSIyIj4NCiAgICAgICAgICAgICAgICA8aW5wdXQgY2xhc3M9ImZpbGxpbiIgaWQ9InJlZHVjdGlvbl9yYXRpbyIgbWluPSIwIiBzdGVwPSIwLjEiIHR5cGU9Im51bWJlciIgdmFsdWU9IjAiPjoxDQogICAgICAgICAgICA8L3RkPg0KICAgICAgICA8L3RyPg0KICAgICAgICA8dHIgY2xhc3M9ImRpdmlkZXIiPg0KICAgICAgICAgICAgPHRkIGNvbHNwYW49IjMiPsKgPC90ZD4NCiAgICAgICAgPC90cj4NCiAgICAgICAgPHRyPg0KICAgICAgICAgICAgPHRkPg0KICAgICAgICAgICAgICAgIE5tIE1heGltdW0gcHJvcCBzaGFmdCB0b3JxdWUNCiAgICAgICAgICAgIDwvdGQ+DQogICAgICAgICAgICA8dGQ+DQogICAgICAgICAgICAgICAgPGlucHV0IGNsYXNzPSJvdXRjb21lIiBpZD0ibWF4X3Byb3Bfc2hhZnRfdG9ycXVlX25tIiByZWFkb25seSB0eXBlPSJ0ZXh0IiB2YWx1ZT0iIj4NCiAgICAgICAgICAgIDwvdGQ+DQogICAgICAgIDwvdHI+DQogICAgICAgIDx0ciBjbGFzcz0iZGl2aWRlciI+DQogICAgICAgICAgICA8dGQgY29sc3Bhbj0iMyI+wqA8L3RkPg0KICAgICAgICA8L3RyPg0KICAgICAgICA8dHI+DQogICAgICAgICAgICA8dGQ+DQogICAgICAgICAgICAgICAgQXBwcm94aW1hdGUgbWF4aW11bSB0aHJ1c3Qgb2YgdGhlIGluc3RhbGxhdGlvbioNCiAgICAgICAgICAgIDwvdGQ+DQogICAgICAgICAgICA8dGQgY2xhc3M9InRoIj4NCiAgICAgICAgICAgICAgICA8aW5wdXQgY2xhc3M9Im91dGNvbWUiIGlkPSJtYXhfdGhydXN0X2tubSIgcmVhZG9ubHkgdHlwZT0idGV4dCIgdmFsdWU9IiI+IGtObQ0KICAgICAgICAgICAgPC90ZD4NCiAgICAgICAgPC90cj4NCiAgICAgICAgPHRyIGNsYXNzPSJkaXZpZGVyIj4NCiAgICAgICAgICAgIDx0ZCBjb2xzcGFuPSIzIj7CoDwvdGQ+DQogICAgICAgIDwvdHI+DQogICAgICAgIDx0cj4NCiAgICAgICAgICAgIDx0ZCBjb2xzcGFuPSIzIj4NCiAgICAgICAgICAgICAgICBQbGVhc2UgbWFrZSB5b3VyIGFwcGxpY2F0aW9uIGNob2ljZToNCiAgICAgICAgICAgICAgICA8cD4NCiAgICAgICAgICAgICAgICAgICAgPGxhYmVsIGNsYXNzPSJmaWxsaW4iPg0KICAgICAgICAgICAgICAgICAgICAgICAgPGlucHV0IHR5cGU9InJhZGlvIiBjaGVja2VkPSJjaGVja2VkIiBuYW1lPSJhcHBsaWNhdGlvbiIgdmFsdWU9InBsZWFzdXJlIj4NCiAgICAgICAgICAgICAgICAgICAgICAgIFBsZWFzdXJlIGJvYXQNCiAgICAgICAgICAgICAgICAgICAgPC9sYWJlbD4NCiAgICAgICAgICAgICAgICAgICAgPGxhYmVsIGNsYXNzPSJmaWxsaW4iPg0KICAgICAgICAgICAgICAgICAgICAgICAgPGlucHV0IHR5cGU9InJhZGlvIiBuYW1lPSJhcHBsaWNhdGlvbiIgdmFsdWU9ImxpZ2h0Ij4NCiAgICAgICAgICAgICAgICAgICAgICAgIExpZ2h0IGNvbW1lcmNpYWwNCiAgICAgICAgICAgICAgICAgICAgPC9sYWJlbD4NCiAgICAgICAgICAgICAgICAgICAgPGxhYmVsIGNsYXNzPSJmaWxsaW4iPg0KICAgICAgICAgICAgICAgICAgICAgICAgPGlucHV0IHR5cGU9InJhZGlvIiBuYW1lPSJhcHBsaWNhdGlvbiIgdmFsdWU9ImhlYXZ5Ij4NCiAgICAgICAgICAgICAgICAgICAgICAgIEhlYXZ5IGNvbW1lcmNpYWwNCiAgICAgICAgICAgICAgICAgICAgPC9sYWJlbD4NCiAgICAgICAgICAgICAgICA8L3A+DQogICAgICAgICAgICA8L3RkPg0KICAgICAgICA8L3RyPg0KICAgICAgICA8dHI+DQogICAgICAgICAgICA8dGQgY29sc3Bhbj0iMyI+DQogICAgICAgICAgICAgICAgRGVwZW5kaW5nIG9uIGFwcGxpY2F0aW9uLCBjaG9vc2UgYSBQeXRob24tRHJpdmUgbW9kZWwgd2l0aCBhIHN0YXRlZCBtYXhpbXVtIHRvcnF1ZSBvZiBhdCBsZWFzdA0KICAgICAgICAgICAgPC90ZD4NCiAgICAgICAgPC90cj4NCiAgICAgICAgPHRyIGNsYXNzPSJkLW5vbmUgYXBwbGljYXRpb24tcGxlYXN1cmUiPg0KICAgICAgICAgICAgPHRkIGNsYXNzPSJ0ZXh0LXJpZ2h0Ij4NCiAgICAgICAgICAgICAgICA8aW5wdXQgY2xhc3M9Im91dGNvbWUiIGlkPSJwbGVhc3VyZV9ib2F0IiByZWFkb25seSB0eXBlPSJ0ZXh0IiB2YWx1ZT0iIj4NCiAgICAgICAgICAgIDwvdGQ+DQogICAgICAgICAgICA8dGQgY29sc3Bhbj0iMiI+DQogICAgICAgICAgICAgICAgTm0uIGluIGNhc2Ugb2YgUGxlYXN1cmUgYm9hdCBhcHBsaWNhdGlvbjxicj4NCiAgICAgICAgICAgICAgICAobWF4LiA1MDAgaHJzLi95ci4gTm8gdXNlIGFzIHJlbnRhbCBib2F0KQ0KICAgICAgICAgICAgPC90ZD4NCiAgICAgICAgPC90cj4NCiAgICAgICAgPHRyIGNsYXNzPSJkLW5vbmUgYXBwbGljYXRpb24tbGlnaHQiPg0KICAgICAgICAgICAgPHRkIGNsYXNzPSJ0ZXh0LXJpZ2h0Ij4NCiAgICAgICAgICAgICAgICA8aW5wdXQgY2xhc3M9Im91dGNvbWUiIGlkPSJsaWdodF9jb21tZXJjaWFsIiByZWFkb25seSB0eXBlPSJ0ZXh0IiB2YWx1ZT0iIj4NCiAgICAgICAgICAgIDwvdGQ+DQogICAgICAgICAgICA8dGQgY29sc3Bhbj0iMiI+DQogICAgICAgICAgICAgICAgTm0uIGluIGNhc2Ugb2YgTGlnaHQgY29tbWVyY2lhbCBhcHBsaWNhdGlvbjxicj4NCiAgICAgICAgICAgICAgICAobWF4LiAxNTAwIGhycy4veXIpDQogICAgICAgICAgICA8L3RkPg0KICAgICAgICA8L3RyPg0KICAgICAgICA8dHIgY2xhc3M9ImQtbm9uZSBhcHBsaWNhdGlvbi1oZWF2eSI+DQogICAgICAgICAgICA8dGQgY2xhc3M9InRleHQtcmlnaHQiPg0KICAgICAgICAgICAgICAgIDxpbnB1dCBjbGFzcz0ib3V0Y29tZSIgaWQ9ImhlYXZ5X2NvbW1lcmNpYWwiIHJlYWRvbmx5IHR5cGU9InRleHQiIHZhbHVlPSIiIHN0eWxlPSJ2aXNpYmlsaXR5OiBoaWRkZW4iPg0KICAgICAgICAgICAgPC90ZD4NCiAgICAgICAgICAgIDx0ZCBjb2xzcGFuPSIyIj4NCiAgICAgICAgICAgICAgICBIZWF2eSBjb21tZXJjaWFsOiBzZWVrIGFkdmlzZSBmcm9tIHlvdXIgZGVhbGVyDQogICAgICAgICAgICA8L3RkPg0KICAgICAgICA8L3RyPg0KICAgICAgICA8dHIgY2xhc3M9ImRpdmlkZXIiPg0KICAgICAgICAgICAgPHRkIGNvbHNwYW49IjMiPsKgPC90ZD4NCiAgICAgICAgPC90cj4NCiAgICAgICAgPHRyPg0KICAgICAgICAgICAgPHRkPg0KICAgICAgICAgICAgICAgIFByb3BlbGxlciBzaGFmdCBkaWFtZXRlcg0KICAgICAgICAgICAgPC90ZD4NCiAgICAgICAgICAgIDx0ZCBjb2xzcGFuPSIyIj4NCiAgICAgICAgICAgICAgICA8c2VsZWN0IGNsYXNzPSJmaWxsaW4iIG5hbWU9InByb3BlbGxlcl9zaGFmdF9kaWFtZXRlciI+DQogICAgICAgICAgICAgICAgICAgIDxvcHRpb24gc2VsZWN0ZWQ9InNlbGVjdGVkIiB2YWx1ZT0iIj5wbGVhc2UgY2hvb3NlIGEgZGlhbWV0ZXI8L29wdGlvbj4NCiAgICAgICAgICAgICAgICAgICAgPG9wdGlvbiB2YWx1ZT0iMTkgLSAzMCBtbSI+MTkgLSAzMCBtbTwvb3B0aW9uPg0KICAgICAgICAgICAgICAgICAgICA8b3B0aW9uIHZhbHVlPSIzMCAtIDQwIG1tIj4zMCAtIDQwIG1tPC9vcHRpb24+DQogICAgICAgICAgICAgICAgICAgIDxvcHRpb24gdmFsdWU9IjMwIC0gNDUgbW0iPjMwIC0gNDUgbW08L29wdGlvbj4NCiAgICAgICAgICAgICAgICAgICAgPG9wdGlvbiB2YWx1ZT0iMzUgLSA0NSBtbSI+MzUgLSA0NSBtbTwvb3B0aW9uPg0KICAgICAgICAgICAgICAgICAgICA8b3B0aW9uIHZhbHVlPSIzNSAtIDUwIG1tIj4zNSAtIDUwIG1tPC9vcHRpb24+DQogICAgICAgICAgICAgICAgICAgIDxvcHRpb24gdmFsdWU9IjQwIC0gNTUgbW0iPjQwIC0gNTUgbW08L29wdGlvbj4NCiAgICAgICAgICAgICAgICAgICAgPG9wdGlvbiB2YWx1ZT0iNDAgLSA2MCBtbSI+NDAgLSA2MCBtbTwvb3B0aW9uPg0KICAgICAgICAgICAgICAgICAgICA8b3B0aW9uIHZhbHVlPSI0NSAtIDYwIG1tIj40NSAtIDYwIG1tPC9vcHRpb24+DQogICAgICAgICAgICAgICAgICAgIDxvcHRpb24gdmFsdWU9IjUwIC0gNjAgbW0iPjUwIC0gNjAgbW08L29wdGlvbj4NCiAgICAgICAgICAgICAgICAgICAgPG9wdGlvbiB2YWx1ZT0iNTAgLSA4MCBtbSI+NTAgLSA4MCBtbTwvb3B0aW9uPg0KICAgICAgICAgICAgICAgICAgICA8b3B0aW9uIHZhbHVlPSI3MCAtIDgwIG1tIj43MCAtIDgwIG1tPC9vcHRpb24+DQogICAgICAgICAgICAgICAgICAgIDxvcHRpb24gdmFsdWU9IjcwIC0gMTAwIG1tIj43MCAtIDEwMCBtbTwvb3B0aW9uPg0KICAgICAgICAgICAgICAgICAgICA8b3B0aW9uIHZhbHVlPSI4MCAtIDEwMCBtbSI+ODAgLSAxMDAgbW08L29wdGlvbj4NCiAgICAgICAgICAgICAgICA8L3NlbGVjdD4NCiAgICAgICAgICAgIDwvdGQ+DQogICAgICAgIDwvdHI+DQogICAgICAgIDx0ciBjbGFzcz0iZGl2aWRlciI+DQogICAgICAgICAgICA8dGQgY29sc3Bhbj0iMyI+wqA8L3RkPg0KICAgICAgICA8L3RyPg0KICAgICAgICA8dHI+DQogICAgICAgICAgICA8dGQgY29sc3Bhbj0iMyI+DQogICAgICAgICAgICAgICAgPGgzIGlkPSJwZC10eXBlIj48L2gzPg0KICAgICAgICAgICAgICAgIDxwIGlkPSJwZC1ub25lLWF2YWlsYWJsZSI+PC9wPg0KICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImltYWdlIj4NCiAgICAgICAgICAgICAgICAgICAgPGltZyBzcmM9IiIgaWQ9InBkLWltYWdlIiBhbHQ9IiI+DQogICAgICAgICAgICAgICAgPC9kaXY+DQogICAgICAgICAgICAgICAgPHA+DQogICAgICAgICAgICAgICAgICAgIDxhIGhyZWY9IiIgaWQ9InBkLXVybCIgdGFyZ2V0PSJfYmxhbmsiPjwvYT4NCiAgICAgICAgICAgICAgICA8L3A+DQogICAgICAgICAgICA8L3RkPg0KICAgICAgICA8L3RyPg0KICAgICAgICA8dHIgY2xhc3M9ImRpdmlkZXIiPg0KICAgICAgICAgICAgPHRkIGNvbHNwYW49IjMiPsKgPC90ZD4NCiAgICAgICAgPC90cj4NCiAgICAgICAgPHRyPg0KICAgICAgICAgICAgPHRkIGNvbHNwYW49IjMiPg0KICAgICAgICAgICAgICAgICogUGxlYXNlIG5vdGUgdGhhdCB0aGlzIGlzIGp1c3QgYW4gaW5kaWNhdGlvbiwgdGhlIHN1cHBsaWVyIG9mIHlvdXIgcHJvcGVsbGVyIHdpbGwgYmUgYWJsZSB0bw0KICAgICAgICAgICAgICAgIGdpdmUgeW91IGEgbW9yZSBhY2N1cmF0ZSBpZGVhIG9mIHRoZSByZWFsIHRocnVzdC4NCiAgICAgICAgICAgIDwvdGQ+DQogICAgICAgIDwvdHI+DQogICAgICAgIDwvdGJvZHk+DQogICAgPC90YWJsZT4NCjwvZGl2Pg0KDQo8c2NyaXB0Pg0KICAgIGZ1bmN0aW9uIGUoaWQpIHsNCiAgICAgICAgcmV0dXJuIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGlkKTsNCiAgICB9DQoNCiAgICBmdW5jdGlvbiBmbG9hdCh2YWx1ZSkgew0KICAgICAgICBpZiAodmFsdWUgPT09ICcnKSB7DQogICAgICAgICAgICByZXR1cm4gMDsNCiAgICAgICAgfQ0KDQogICAgICAgIHJldHVybiBwYXJzZUZsb2F0KHZhbHVlLnJlcGxhY2UoJywnLCAnLicpKTsNCiAgICB9DQoNCiAgICBmdW5jdGlvbiBmb3JtYXQobnVtYmVyKSB7DQogICAgICAgIHJldHVybiBuZXcgSW50bC5OdW1iZXJGb3JtYXQoJ2VuLVVTJywgew0KICAgICAgICAgICAgbWF4aW11bUZyYWN0aW9uRGlnaXRzOiAxLA0KICAgICAgICAgICAgbWluaW11bUZyYWN0aW9uRGlnaXRzOiAxDQogICAgICAgIH0pLmZvcm1hdChudW1iZXIpOw0KICAgIH0NCg0KICAgIGZ1bmN0aW9uIHBkX2F2YWlsYWJsZShwZCwgbWF4X3NoYWZ0X3RvcnF1ZSwgcHJvcGVsbGVyX3NoYWZ0X2RpYW1ldGVyLCBtYXhfdGhydXN0X2tubSkgew0KICAgICAgICByZXR1cm4gKA0KICAgICAgICAgICAgbWF4X3NoYWZ0X3RvcnF1ZSA8PSBwZC5tYXhfc2hhZnRfdG9ycXVlDQogICAgICAgICAgICAmJiBwcm9wZWxsZXJfc2hhZnRfZGlhbWV0ZXIgPT09IHBkLnByb3BlbGxlcl9zaGFmdF9kaWFtZXRlcg0KICAgICAgICAgICAgJiYgbWF4X3RocnVzdF9rbm0gPD0gcGQubWF4X3Byb3BfdGhydXN0DQogICAgICAgICk7DQogICAgfQ0KDQogICAgZnVuY3Rpb24gY2FsY3VsYXRlKCkgew0KICAgICAgICB2YXIgbWF4X2hwX2t3ID0gZmxvYXQoZSgnbWF4X2hwJykudmFsdWUpIC8gMS4zNjsNCiAgICAgICAgZSgnbWF4X2hwX2t3JykudmFsdWUgPSBmb3JtYXQobWF4X2hwX2t3KTsNCg0KICAgICAgICAvLw0KDQogICAgICAgIHZhciBtYXhfaHAgPSBmbG9hdChlKCdtYXhfaHAnKS52YWx1ZSk7DQogICAgICAgIHZhciBtYXhfcnBtID0gZmxvYXQoZSgnbWF4X3JwbScpLnZhbHVlKTsNCg0KICAgICAgICB2YXIgbWF4X3RvcnF1ZV9rZ20gPSAobWF4X3JwbSA9PT0gMCkgPyAwIDogKG1heF9ocCAvIG1heF9ycG0pICogNzI2Ow0KICAgICAgICB2YXIgbWF4X3RvcnF1ZV9ubSA9IG1heF90b3JxdWVfa2dtICogOS42ODsNCg0KICAgICAgICBlKCdtYXhfdG9ycXVlX25tJykudmFsdWUgPSBmb3JtYXQobWF4X3RvcnF1ZV9ubSk7DQoNCiAgICAgICAgLy8NCg0KICAgICAgICB2YXIgcmVkdWN0aW9uX3JhdGlvID0gZmxvYXQoZSgncmVkdWN0aW9uX3JhdGlvJykudmFsdWUpOw0KICAgICAgICB2YXIgbWF4X3Byb3Bfc2hhZnRfdG9ycXVlX25tID0gbWF4X3RvcnF1ZV9ubSAqIHJlZHVjdGlvbl9yYXRpbzsNCg0KICAgICAgICBlKCdtYXhfcHJvcF9zaGFmdF90b3JxdWVfbm0nKS52YWx1ZSA9IGZvcm1hdChtYXhfcHJvcF9zaGFmdF90b3JxdWVfbm0pOw0KDQogICAgICAgIC8vDQoNCiAgICAgICAgdmFyIG1heF90aHJ1c3Rfa25tID0gbWF4X2hwICogMC4wNTU7DQogICAgICAgIGlmIChlKCdjYWxjdWxhdG9yJykuZGF0YXNldC5odWxsID09PSAnc2VtaScpIHsNCiAgICAgICAgICAgIG1heF90aHJ1c3Rfa25tID0gbWF4X2hwICogMC4wNzU7DQogICAgICAgIH0gZWxzZSBpZiAoZSgnY2FsY3VsYXRvcicpLmRhdGFzZXQuaHVsbCA9PT0gJ2Rpc3BsYWNlbWVudCcpIHsNCiAgICAgICAgICAgIG1heF90aHJ1c3Rfa25tID0gbWF4X2hwICogMC4wOTsNCiAgICAgICAgfQ0KICAgICAgICBlKCdtYXhfdGhydXN0X2tubScpLnZhbHVlID0gZm9ybWF0KG1heF90aHJ1c3Rfa25tKTsNCg0KICAgICAgICAvLw0KDQogICAgICAgIHZhciBtYXhfc2hhZnRfdG9ycXVlID0gbWF4X3Byb3Bfc2hhZnRfdG9ycXVlX25tOw0KICAgICAgICBpZiAoZSgnY2FsY3VsYXRvcicpLmRhdGFzZXQuYXBwbGljYXRpb24gPT09ICdsaWdodCcpIHsNCiAgICAgICAgICAgIG1heF9zaGFmdF90b3JxdWUgKj0gMS40Ow0KICAgICAgICB9DQoNCiAgICAgICAgZSgncGxlYXN1cmVfYm9hdCcpLnZhbHVlID0gZm9ybWF0KG1heF9wcm9wX3NoYWZ0X3RvcnF1ZV9ubSk7DQogICAgICAgIGUoJ2xpZ2h0X2NvbW1lcmNpYWwnKS52YWx1ZSA9IGZvcm1hdChtYXhfcHJvcF9zaGFmdF90b3JxdWVfbm0gKiAxLjQpOw0KDQogICAgICAgIC8vDQoNCiAgICAgICAgdmFyIHByb3BlbGxlcl9zaGFmdF9kaWFtZXRlciA9IGUoJ2NhbGN1bGF0b3InKS5xdWVyeVNlbGVjdG9yKCdzZWxlY3RbbmFtZT0icHJvcGVsbGVyX3NoYWZ0X2RpYW1ldGVyIl0nKS52YWx1ZTsNCg0KICAgICAgICB2YXIgdHlwZSA9IGUoJ3BkLXR5cGUnKTsNCiAgICAgICAgdmFyIGF2YWlsID0gZSgncGQtbm9uZS1hdmFpbGFibGUnKTsNCiAgICAgICAgdmFyIGltYWdlID0gZSgncGQtaW1hZ2UnKTsNCiAgICAgICAgdmFyIHVybCA9IGUoJ3BkLXVybCcpOw0KDQogICAgICAgIC8vIHJlc2V0DQogICAgICAgIHR5cGUuaW5uZXJUZXh0ID0gJ1B5dGhvbi1Ecml2ZSc7DQogICAgICAgIGltYWdlLnNyYyA9ICcnOw0KICAgICAgICB1cmwuaHJlZiA9ICcnOw0KICAgICAgICB1cmwuaW5uZXJUZXh0ID0gJyc7DQoNCiAgICAgICAgaWYgKGUoJ2NhbGN1bGF0b3InKS5kYXRhc2V0LmFwcGxpY2F0aW9uID09PSAnaGVhdnknKSB7DQogICAgICAgICAgICByZXR1cm47DQogICAgICAgIH0NCg0KICAgICAgICBpZiAoIW1heF9ocCB8fCAhbWF4X3JwbSB8fCAhcmVkdWN0aW9uX3JhdGlvKSB7DQogICAgICAgICAgICByZXR1cm47DQogICAgICAgIH0NCg0KICAgICAgICB2YXIgcGRzID0gWw0KICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgIGNvZGU6ICdQMzAtUicsDQogICAgICAgICAgICAgICAgbWF4X3NoYWZ0X3RvcnF1ZTogMjk0LA0KICAgICAgICAgICAgICAgIHByb3BlbGxlcl9zaGFmdF9kaWFtZXRlcjogJzE5IC0gMzAgbW0nLA0KICAgICAgICAgICAgICAgIG1heF9wcm9wX3RocnVzdDogNC4zLA0KICAgICAgICAgICAgICAgIHVybF9ubDogJy9wcm9kdWN0LWNhdGVnb3JpZS9tb3RvcmRlbGVuL2FhbmRyaWp2aW5nZW4vcHl0aG9uLWRyaXZlLWhvbW9raW5lZXQvcHl0aG9uLWRyaXZlLXAzMC1yLTUwcGstMjk0bm0vJywNCiAgICAgICAgICAgICAgICB1cmxfZW46ICcnLA0KICAgICAgICAgICAgICAgIHVybF9kZTogJycsDQogICAgICAgICAgICB9LCB7DQogICAgICAgICAgICAgICAgY29kZTogJ1A2MC1CJywNCiAgICAgICAgICAgICAgICBtYXhfc2hhZnRfdG9ycXVlOiA1ODgsDQogICAgICAgICAgICAgICAgcHJvcGVsbGVyX3NoYWZ0X2RpYW1ldGVyOiAnMzAgLSA0MCBtbScsDQogICAgICAgICAgICAgICAgbWF4X3Byb3BfdGhydXN0OiA1LjcsDQogICAgICAgICAgICAgICAgdXJsX25sOiAnL3Byb2R1Y3QtY2F0ZWdvcmllL21vdG9yZGVsZW4vYWFuZHJpanZpbmdlbi9weXRob24tZHJpdmUtaG9tb2tpbmVldC9weXRob24tZHJpdmUtcDYwLWItNzBway01ODhubS8nLA0KICAgICAgICAgICAgICAgIHVybF9lbjogJycsDQogICAgICAgICAgICAgICAgdXJsX2RlOiAnJywNCiAgICAgICAgICAgIH0sIHsNCiAgICAgICAgICAgICAgICBjb2RlOiAnUDYwLUsnLA0KICAgICAgICAgICAgICAgIG1heF9zaGFmdF90b3JxdWU6IDU4OCwNCiAgICAgICAgICAgICAgICBwcm9wZWxsZXJfc2hhZnRfZGlhbWV0ZXI6ICczMCAtIDQwIG1tJywNCiAgICAgICAgICAgICAgICBtYXhfcHJvcF90aHJ1c3Q6IDUuNywNCiAgICAgICAgICAgICAgICB1cmxfbmw6ICcvcHJvZHVjdC1jYXRlZ29yaWUvbW90b3JkZWxlbi9hYW5kcmlqdmluZ2VuL3B5dGhvbi1kcml2ZS1ob21va2luZWV0L3B5dGhvbi1kcml2ZS1wNjAtay03MHBrLTU4OG5tLycsDQogICAgICAgICAgICAgICAgdXJsX2VuOiAnJywNCiAgICAgICAgICAgICAgICB1cmxfZGU6ICcnLA0KICAgICAgICAgICAgfSwgew0KICAgICAgICAgICAgICAgIGNvZGU6ICdQODAtTScsDQogICAgICAgICAgICAgICAgbWF4X3NoYWZ0X3RvcnF1ZTogNzg1LA0KICAgICAgICAgICAgICAgIHByb3BlbGxlcl9zaGFmdF9kaWFtZXRlcjogJzMwIC0gNDUgbW0nLA0KICAgICAgICAgICAgICAgIG1heF9wcm9wX3RocnVzdDogOCwNCiAgICAgICAgICAgICAgICB1cmxfbmw6ICcvcHJvZHVjdC1jYXRlZ29yaWUvbW90b3JkZWxlbi9hYW5kcmlqdmluZ2VuL3B5dGhvbi1kcml2ZS1ob21va2luZWV0L3B5dGhvbi1kcml2ZS1wODAtbS0xMDVway03ODVubS8nLA0KICAgICAgICAgICAgICAgIHVybF9lbjogJycsDQogICAgICAgICAgICAgICAgdXJsX2RlOiAnJywNCiAgICAgICAgICAgIH0sIHsNCiAgICAgICAgICAgICAgICBjb2RlOiAnUDgwLVMnLA0KICAgICAgICAgICAgICAgIG1heF9zaGFmdF90b3JxdWU6IDc4NSwNCiAgICAgICAgICAgICAgICBwcm9wZWxsZXJfc2hhZnRfZGlhbWV0ZXI6ICczMCAtIDQ1IG1tJywNCiAgICAgICAgICAgICAgICBtYXhfcHJvcF90aHJ1c3Q6IDEyLA0KICAgICAgICAgICAgICAgIHVybF9ubDogJy9wcm9kdWN0LWNhdGVnb3JpZS9tb3RvcmRlbGVuL2FhbmRyaWp2aW5nZW4vcHl0aG9uLWRyaXZlLWhvbW9raW5lZXQvcHl0aG9uLWRyaXZlLXA4MC1zLTEzMHBrLTc4NW5tLycsDQogICAgICAgICAgICAgICAgdXJsX2VuOiAnJywNCiAgICAgICAgICAgICAgICB1cmxfZGU6ICcnLA0KICAgICAgICAgICAgfSwgew0KICAgICAgICAgICAgICAgIGNvZGU6ICdQMTEwLVMnLA0KICAgICAgICAgICAgICAgIG1heF9zaGFmdF90b3JxdWU6IDEwODAsDQogICAgICAgICAgICAgICAgcHJvcGVsbGVyX3NoYWZ0X2RpYW1ldGVyOiAnMzUgLSA0NSBtbScsDQogICAgICAgICAgICAgICAgbWF4X3Byb3BfdGhydXN0OiAxMiwNCiAgICAgICAgICAgICAgICB1cmxfbmw6ICcvcHJvZHVjdC1jYXRlZ29yaWUvbW90b3JkZWxlbi9hYW5kcmlqdmluZ2VuL3B5dGhvbi1kcml2ZS1ob21va2luZWV0L3B5dGhvbi1kcml2ZS1wMTEwLXMtMTM1cGstMTA4MG5tLycsDQogICAgICAgICAgICAgICAgdXJsX2VuOiAnJywNCiAgICAgICAgICAgICAgICB1cmxfZGU6ICcnLA0KICAgICAgICAgICAgfSwgew0KICAgICAgICAgICAgICAgIGNvZGU6ICdQMTEwLVQnLA0KICAgICAgICAgICAgICAgIG1heF9zaGFmdF90b3JxdWU6IDEwODAsDQogICAgICAgICAgICAgICAgcHJvcGVsbGVyX3NoYWZ0X2RpYW1ldGVyOiAnMzUgLSA1MCBtbScsDQogICAgICAgICAgICAgICAgbWF4X3Byb3BfdGhydXN0OiAxOCwNCiAgICAgICAgICAgICAgICB1cmxfbmw6ICcvcHJvZHVjdC1jYXRlZ29yaWUvbW90b3JkZWxlbi9hYW5kcmlqdmluZ2VuL3B5dGhvbi1kcml2ZS1ob21va2luZWV0L3B5dGhvbi1kcml2ZS1wMTEwLXQtMTkwcGstMTM3MG5tLycsDQogICAgICAgICAgICAgICAgdXJsX2VuOiAnJywNCiAgICAgICAgICAgICAgICB1cmxfZGU6ICcnLA0KICAgICAgICAgICAgfSwgew0KICAgICAgICAgICAgICAgIGNvZGU6ICdQMTQwLVQnLA0KICAgICAgICAgICAgICAgIG1heF9zaGFmdF90b3JxdWU6IDEzNzAsDQogICAgICAgICAgICAgICAgcHJvcGVsbGVyX3NoYWZ0X2RpYW1ldGVyOiAnNDAgLSA1NSBtbScsDQogICAgICAgICAgICAgICAgbWF4X3Byb3BfdGhydXN0OiAxOCwNCiAgICAgICAgICAgICAgICB1cmxfbmw6ICcvcHJvZHVjdC1jYXRlZ29yaWUvbW90b3JkZWxlbi9hYW5kcmlqdmluZ2VuL3B5dGhvbi1kcml2ZS1ob21va2luZWV0L3B5dGhvbi1kcml2ZS1wMTQwLXQtMTkwcGstMTM3MG5tLycsDQogICAgICAgICAgICAgICAgdXJsX2VuOiAnJywNCiAgICAgICAgICAgICAgICB1cmxfZGU6ICcnLA0KICAgICAgICAgICAgfSwgew0KICAgICAgICAgICAgICAgIGNvZGU6ICdQMjAwLVQnLA0KICAgICAgICAgICAgICAgIG1heF9zaGFmdF90b3JxdWU6IDE5NjAsDQogICAgICAgICAgICAgICAgcHJvcGVsbGVyX3NoYWZ0X2RpYW1ldGVyOiAnNDAgLSA2MCBtbScsDQogICAgICAgICAgICAgICAgbWF4X3Byb3BfdGhydXN0OiAxOCwNCiAgICAgICAgICAgICAgICB1cmxfbmw6ICcvcHJvZHVjdC1jYXRlZ29yaWUvbW90b3JkZWxlbi9hYW5kcmlqdmluZ2VuL3B5dGhvbi1kcml2ZS1ob21va2luZWV0L3B5dGhvbi1kcml2ZS1wMjAwLXQtMjQwcGstMTk2MG5tLycsDQogICAgICAgICAgICAgICAgdXJsX2VuOiAnJywNCiAgICAgICAgICAgICAgICB1cmxfZGU6ICcnLA0KICAgICAgICAgICAgfSwgew0KICAgICAgICAgICAgICAgIGNvZGU6ICdQMjAwLVEnLA0KICAgICAgICAgICAgICAgIG1heF9zaGFmdF90b3JxdWU6IDE5NjAsDQogICAgICAgICAgICAgICAgcHJvcGVsbGVyX3NoYWZ0X2RpYW1ldGVyOiAnNDUgLSA2MCBtbScsDQogICAgICAgICAgICAgICAgbWF4X3Byb3BfdGhydXN0OiAyMiwNCiAgICAgICAgICAgICAgICB1cmxfbmw6ICcvcHJvZHVjdC1jYXRlZ29yaWUvbW90b3JkZWxlbi9hYW5kcmlqdmluZ2VuL3B5dGhvbi1kcml2ZS1ob21va2luZWV0L3B5dGhvbi1kcml2ZS1wMjAwLXEtMjUwcGstMTk2MG5tLycsDQogICAgICAgICAgICAgICAgdXJsX2VuOiAnJywNCiAgICAgICAgICAgICAgICB1cmxfZGU6ICcnLA0KICAgICAgICAgICAgfSwgew0KICAgICAgICAgICAgICAgIGNvZGU6ICdQMjAwLVcnLA0KICAgICAgICAgICAgICAgIG1heF9zaGFmdF90b3JxdWU6IDE5NjAsDQogICAgICAgICAgICAgICAgcHJvcGVsbGVyX3NoYWZ0X2RpYW1ldGVyOiAnNTAgLSA2MCBtbScsDQogICAgICAgICAgICAgICAgbWF4X3Byb3BfdGhydXN0OiAzMCwNCiAgICAgICAgICAgICAgICB1cmxfbmw6ICcvcHJvZHVjdC1jYXRlZ29yaWUvbW90b3JkZWxlbi9hYW5kcmlqdmluZ2VuL3B5dGhvbi1kcml2ZS1ob21va2luZWV0L3B5dGhvbi1kcml2ZS1wMjAwLXctMjc1cGstMTk2MG5tLycsDQogICAgICAgICAgICAgICAgdXJsX2VuOiAnJywNCiAgICAgICAgICAgICAgICB1cmxfZGU6ICcnLA0KICAgICAgICAgICAgfSwgew0KICAgICAgICAgICAgICAgIGNvZGU6ICdQNTAxLVEnLA0KICAgICAgICAgICAgICAgIG1heF9zaGFmdF90b3JxdWU6IDQ5MDAsDQogICAgICAgICAgICAgICAgcHJvcGVsbGVyX3NoYWZ0X2RpYW1ldGVyOiAnNTAgLSA2MCBtbScsDQogICAgICAgICAgICAgICAgbWF4X3Byb3BfdGhydXN0OiAyMiwNCiAgICAgICAgICAgICAgICB1cmxfbmw6ICcvcHJvZHVjdC1jYXRlZ29yaWUvbW90b3JkZWxlbi9hYW5kcmlqdmluZ2VuL3B5dGhvbi1kcml2ZS1ob21va2luZWV0L3B5dGhvbi1kcml2ZS1wNTAxLXEtMzAwLXBrLTQ5MDAtbm0vJywNCiAgICAgICAgICAgICAgICB1cmxfZW46ICcnLA0KICAgICAgICAgICAgICAgIHVybF9kZTogJycsDQogICAgICAgICAgICB9LCB7DQogICAgICAgICAgICAgICAgY29kZTogJ1A1MDEtVycsDQogICAgICAgICAgICAgICAgbWF4X3NoYWZ0X3RvcnF1ZTogNDkwMCwNCiAgICAgICAgICAgICAgICBwcm9wZWxsZXJfc2hhZnRfZGlhbWV0ZXI6ICc1MCAtIDgwIG1tJywNCiAgICAgICAgICAgICAgICBtYXhfcHJvcF90aHJ1c3Q6IDMwLA0KICAgICAgICAgICAgICAgIHVybF9ubDogJy9wcm9kdWN0LWNhdGVnb3JpZS9tb3RvcmRlbGVuL2FhbmRyaWp2aW5nZW4vcHl0aG9uLWRyaXZlLWhvbW9raW5lZXQvcHl0aG9uLWRyaXZlLXA1MDEtdy00MDBway00OTAwbm0vJywNCiAgICAgICAgICAgICAgICB1cmxfZW46ICcnLA0KICAgICAgICAgICAgICAgIHVybF9kZTogJycsDQogICAgICAgICAgICB9LCB7DQogICAgICAgICAgICAgICAgY29kZTogJ1A1MDEtTCcsDQogICAgICAgICAgICAgICAgbWF4X3NoYWZ0X3RvcnF1ZTogNDkwMCwNCiAgICAgICAgICAgICAgICBwcm9wZWxsZXJfc2hhZnRfZGlhbWV0ZXI6ICc1MCAtIDgwIG1tJywNCiAgICAgICAgICAgICAgICBtYXhfcHJvcF90aHJ1c3Q6IDQ1LA0KICAgICAgICAgICAgICAgIHVybF9ubDogJy9wcm9kdWN0LWNhdGVnb3JpZS9tb3RvcmRlbGVuL2FhbmRyaWp2aW5nZW4vcHl0aG9uLWRyaXZlLWhvbW9raW5lZXQvcHl0aG9uLWRyaXZlLXA1MDEtbC01MDBway00OTAwbm0vJywNCiAgICAgICAgICAgICAgICB1cmxfZW46ICcnLA0KICAgICAgICAgICAgICAgIHVybF9kZTogJycsDQogICAgICAgICAgICB9LCB7DQogICAgICAgICAgICAgICAgY29kZTogJ1A3NTUtTCcsDQogICAgICAgICAgICAgICAgbWF4X3NoYWZ0X3RvcnF1ZTogNzM1NSwNCiAgICAgICAgICAgICAgICBwcm9wZWxsZXJfc2hhZnRfZGlhbWV0ZXI6ICc3MCAtIDgwIG1tJywNCiAgICAgICAgICAgICAgICBtYXhfcHJvcF90aHJ1c3Q6IDQ1LA0KICAgICAgICAgICAgICAgIHVybF9ubDogJy9wcm9kdWN0LWNhdGVnb3JpZS9tb3RvcmRlbGVuL2FhbmRyaWp2aW5nZW4vcHl0aG9uLWRyaXZlLWhvbW9raW5lZXQvcHl0aG9uLWRyaXZlLXA3NTUtbC02MDBwcy03MzU1bm0vJywNCiAgICAgICAgICAgICAgICB1cmxfZW46ICcnLA0KICAgICAgICAgICAgICAgIHVybF9kZTogJycsDQogICAgICAgICAgICB9LCB7DQogICAgICAgICAgICAgICAgY29kZTogJ1AxMDI1LUwnLA0KICAgICAgICAgICAgICAgIG1heF9zaGFmdF90b3JxdWU6IDk4MTAsDQogICAgICAgICAgICAgICAgcHJvcGVsbGVyX3NoYWZ0X2RpYW1ldGVyOiAnNzAgLSA4MCBtbScsDQogICAgICAgICAgICAgICAgbWF4X3Byb3BfdGhydXN0OiA0NSwNCiAgICAgICAgICAgICAgICB1cmxfbmw6ICcvcHJvZHVjdC1jYXRlZ29yaWUvbW90b3JkZWxlbi9hYW5kcmlqdmluZ2VuL3B5dGhvbi1kcml2ZS1ob21va2luZWV0L3B5dGhvbi1kcml2ZS1wMTAyNS1sLTc1MC1way05ODA3bm0vJywNCiAgICAgICAgICAgICAgICB1cmxfZW46ICcnLA0KICAgICAgICAgICAgICAgIHVybF9kZTogJycsDQogICAgICAgICAgICB9LCB7DQogICAgICAgICAgICAgICAgY29kZTogJ1AxMDI1LUcnLA0KICAgICAgICAgICAgICAgIG1heF9zaGFmdF90b3JxdWU6IDk4MTAsDQogICAgICAgICAgICAgICAgcHJvcGVsbGVyX3NoYWZ0X2RpYW1ldGVyOiAnNzAgLSAxMDAgbW0nLA0KICAgICAgICAgICAgICAgIG1heF9wcm9wX3RocnVzdDogNjAsDQogICAgICAgICAgICAgICAgdXJsX25sOiAnL3Byb2R1Y3QtY2F0ZWdvcmllL21vdG9yZGVsZW4vYWFuZHJpanZpbmdlbi9weXRob24tZHJpdmUtaG9tb2tpbmVldC9weXRob24tZHJpdmUtcDEwMjUtZy04MDBway05ODEwbm0vJywNCiAgICAgICAgICAgICAgICB1cmxfZW46ICcnLA0KICAgICAgICAgICAgICAgIHVybF9kZTogJycsDQogICAgICAgICAgICB9LCB7DQogICAgICAgICAgICAgICAgY29kZTogJ1AxNTAwLUcnLA0KICAgICAgICAgICAgICAgIG1heF9zaGFmdF90b3JxdWU6IDE0NzE1LA0KICAgICAgICAgICAgICAgIHByb3BlbGxlcl9zaGFmdF9kaWFtZXRlcjogJzgwIC0gMTAwIG1tJywNCiAgICAgICAgICAgICAgICBtYXhfcHJvcF90aHJ1c3Q6IDYwLA0KICAgICAgICAgICAgICAgIHVybF9ubDogJy9wcm9kdWN0LWNhdGVnb3JpZS9tb3RvcmRlbGVuL2FhbmRyaWp2aW5nZW4vcHl0aG9uLWRyaXZlLWhvbW9raW5lZXQvcHl0aG9uLWRyaXZlLXAxMDI1LWctODAwcGstOTgxMG5tLycsDQogICAgICAgICAgICAgICAgdXJsX2VuOiAnJywNCiAgICAgICAgICAgICAgICB1cmxfZGU6ICcnLA0KICAgICAgICAgICAgfSwNCiAgICAgICAgXTsNCg0KICAgICAgICB2YXIgaHRtbCA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoJ2h0bWwnKTsNCiAgICAgICAgdmFyIGxhbmcgPSBodG1sLmF0dHJpYnV0ZXMuZ2V0TmFtZWRJdGVtKCdsYW5nJykudmFsdWUuc3Vic3RyKDAsIDIpLnRvTG93ZXJDYXNlKCk7DQoNCiAgICAgICAgQXJyYXkucHJvdG90eXBlLmZvckVhY2guY2FsbChwZHMsIGZ1bmN0aW9uIChwZCkgew0KICAgICAgICAgICAgaWYgKA0KICAgICAgICAgICAgICAgIHR5cGUuaW5uZXJUZXh0ID09PSAnUHl0aG9uLURyaXZlJw0KICAgICAgICAgICAgICAgICYmIHBkX2F2YWlsYWJsZShwZCwgbWF4X3NoYWZ0X3RvcnF1ZSwgcHJvcGVsbGVyX3NoYWZ0X2RpYW1ldGVyLCBtYXhfdGhydXN0X2tubSkNCiAgICAgICAgICAgICkgew0KICAgICAgICAgICAgICAgIHR5cGUuaW5uZXJUZXh0ID0gcGQuY29kZTsNCiAgICAgICAgICAgICAgICBpZiAobGFuZyA9PT0gJ2VuJyAmJiBwZC51cmxfZW4pIHsNCiAgICAgICAgICAgICAgICAgICAgdXJsLmhyZWYgPSBwZC51cmxfZW47DQogICAgICAgICAgICAgICAgfSBlbHNlIGlmIChsYW5nID09PSAnZGUnICYmIHBkLnVybF9kZSkgew0KICAgICAgICAgICAgICAgICAgICB1cmwuaHJlZiA9IHBkLnVybF9kZTsNCiAgICAgICAgICAgICAgICB9IGVsc2Ugew0KICAgICAgICAgICAgICAgICAgICB1cmwuaHJlZiA9IHBkLnVybF9ubDsNCiAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgdXJsLmlubmVyVGV4dCA9ICdWaXNpdCBvdXIgc2hvcCBmb3IgdGhpcyBwcm9kdWN0ID4+JzsNCiAgICAgICAgICAgIH0NCiAgICAgICAgfSk7DQoNCiAgICAgICAgYXZhaWwuaW5uZXJUZXh0ID0gJyc7DQogICAgICAgIGlmICh0eXBlLmlubmVyVGV4dCAhPT0gJ1B5dGhvbi1Ecml2ZScpIHsNCiAgICAgICAgICAgIGltYWdlLnNyYyA9IGltYWdlLnNyYyA9ICdodHRwczovL2FiLW1hcmluZXNlcnZpY2UuY29tL2NhbGN1bGF0b3IvaW1hZ2VzLycgKyB0eXBlLmlubmVyVGV4dCArICcuanBnJzsNCiAgICAgICAgfSBlbHNlIGlmIChwcm9wZWxsZXJfc2hhZnRfZGlhbWV0ZXIgIT09ICcnKSB7DQogICAgICAgICAgICBpZiAobGFuZyA9PT0gJ2VuJykgew0KICAgICAgICAgICAgICAgIGF2YWlsLmlubmVyVGV4dCA9ICdUaGlzIGNvbmZpZ3VyYXRpb24gaXMgbm90IHBvc3NpYmxlLiBQbGVhc2UgY29udGFjdCB1cy4nOw0KICAgICAgICAgICAgfSBlbHNlIGlmIChsYW5nID09PSAnZGUnKSB7DQogICAgICAgICAgICAgICAgLy8gdG9kbyB0cmFuc2xhdGUNCiAgICAgICAgICAgICAgICBhdmFpbC5pbm5lclRleHQgPSAnVGhpcyBjb25maWd1cmF0aW9uIGlzIG5vdCBwb3NzaWJsZS4gUGxlYXNlIGNvbnRhY3QgdXMuJzsNCiAgICAgICAgICAgIH0gZWxzZSB7DQogICAgICAgICAgICAgICAgYXZhaWwuaW5uZXJUZXh0ID0gJ0RlemUgY29uZmlndXJhdGllIGlzIG5pZXQgbW9nZWxpamsuIE5lZW0gY29udGFjdCBtZXQgb25zIG9wLic7DQogICAgICAgICAgICB9DQogICAgICAgIH0NCg0KICAgICAgICB2YXIgc2VsZWN0ID0gZSgnY2FsY3VsYXRvcicpLnF1ZXJ5U2VsZWN0b3IoJ3NlbGVjdFtuYW1lPSJwcm9wZWxsZXJfc2hhZnRfZGlhbWV0ZXIiXScpOw0KICAgICAgICBBcnJheS5wcm90b3R5cGUuZm9yRWFjaC5jYWxsKHNlbGVjdC5jaGlsZHJlbiwgZnVuY3Rpb24gKG9wdGlvbikgew0KICAgICAgICAgICAgaWYgKCFvcHRpb24udmFsdWUpIHsNCiAgICAgICAgICAgICAgICByZXR1cm47DQogICAgICAgICAgICB9DQoNCiAgICAgICAgICAgIG9wdGlvbi5zdHlsZS5jb2xvciA9ICdncmV5JzsNCg0KICAgICAgICAgICAgQXJyYXkucHJvdG90eXBlLmZvckVhY2guY2FsbChwZHMsIGZ1bmN0aW9uIChwZCkgew0KICAgICAgICAgICAgICAgIGlmIChwZF9hdmFpbGFibGUocGQsIG1heF9zaGFmdF90b3JxdWUsIG9wdGlvbi52YWx1ZSwgbWF4X3RocnVzdF9rbm0pKSB7DQogICAgICAgICAgICAgICAgICAgIG9wdGlvbi5zdHlsZS5jb2xvciA9ICcnOw0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgIH0pOw0KICAgICAgICB9KTsNCiAgICB9DQoNCiAgICBkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCdET01Db250ZW50TG9hZGVkJywgZnVuY3Rpb24gKCkgew0KICAgICAgICB2YXIgYyA9IGUoJ2NhbGN1bGF0b3InKTsNCg0KICAgICAgICBBcnJheS5wcm90b3R5cGUuZm9yRWFjaC5jYWxsKGMuZ2V0RWxlbWVudHNCeVRhZ05hbWUoJ2lucHV0JyksIGZ1bmN0aW9uIChlbGVtZW50KSB7DQogICAgICAgICAgICBlbGVtZW50LmFkZEV2ZW50TGlzdGVuZXIoJ2NoYW5nZScsIGNhbGN1bGF0ZSk7DQogICAgICAgICAgICBlbGVtZW50LmFkZEV2ZW50TGlzdGVuZXIoJ2tleXVwJywgY2FsY3VsYXRlKTsNCiAgICAgICAgfSk7DQogICAgICAgIEFycmF5LnByb3RvdHlwZS5mb3JFYWNoLmNhbGwoYy5nZXRFbGVtZW50c0J5VGFnTmFtZSgnc2VsZWN0JyksIGZ1bmN0aW9uIChlbGVtZW50KSB7DQogICAgICAgICAgICBlbGVtZW50LmFkZEV2ZW50TGlzdGVuZXIoJ2NoYW5nZScsIGNhbGN1bGF0ZSk7DQogICAgICAgIH0pOw0KDQogICAgICAgIEFycmF5LnByb3RvdHlwZS5mb3JFYWNoLmNhbGwoYy5xdWVyeVNlbGVjdG9yQWxsKCdpbnB1dFtuYW1lPSJodWxsIl0nKSwgZnVuY3Rpb24gKGVsZW1lbnQpIHsNCiAgICAgICAgICAgIGVsZW1lbnQuYWRkRXZlbnRMaXN0ZW5lcignY2xpY2snLCBmdW5jdGlvbiAoKSB7DQogICAgICAgICAgICAgICAgZSgnaHVsbCcpLmNsYXNzTGlzdC5hZGQoJ29wZW4nKTsNCiAgICAgICAgICAgICAgICBjLmRhdGFzZXQuaHVsbCA9IGVsZW1lbnQudmFsdWU7DQogICAgICAgICAgICB9KTsNCg0KICAgICAgICAgICAgaWYgKGVsZW1lbnQuY2hlY2tlZCkgew0KICAgICAgICAgICAgICAgIGUoJ2h1bGwnKS5jbGFzc0xpc3QuYWRkKCdvcGVuJyk7DQogICAgICAgICAgICAgICAgYy5kYXRhc2V0Lmh1bGwgPSBlbGVtZW50LnZhbHVlOw0KICAgICAgICAgICAgfQ0KICAgICAgICB9KTsNCg0KICAgICAgICBBcnJheS5wcm90b3R5cGUuZm9yRWFjaC5jYWxsKGMucXVlcnlTZWxlY3RvckFsbCgnaW5wdXRbbmFtZT0iYXBwbGljYXRpb24iXScpLCBmdW5jdGlvbiAoZWxlbWVudCkgew0KICAgICAgICAgICAgZWxlbWVudC5hZGRFdmVudExpc3RlbmVyKCdjbGljaycsIGZ1bmN0aW9uICgpIHsNCiAgICAgICAgICAgICAgICBjLmRhdGFzZXQuYXBwbGljYXRpb24gPSBlbGVtZW50LnZhbHVlOw0KICAgICAgICAgICAgfSk7DQoNCiAgICAgICAgICAgIGlmIChlbGVtZW50LmNoZWNrZWQpIHsNCiAgICAgICAgICAgICAgICBjLmRhdGFzZXQuYXBwbGljYXRpb24gPSBlbGVtZW50LnZhbHVlOw0KICAgICAgICAgICAgfQ0KICAgICAgICB9KTsNCg0KICAgICAgICBjYWxjdWxhdGUoKTsNCiAgICB9KTsNCjwvc2NyaXB0Pg0K[\/vc_raw_html][\/vc_column][\/vc_row]<\/p>\n","protected":false},"author":7,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"template-fullwidth.php","meta":{"footnotes":""},"class_list":["post-59683","page","type-page","status-publish","hentry"],"_links":{"self":[{"href":"https:\/\/ab-marineservice.com\/de\/wp-json\/wp\/v2\/pages\/59683","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/ab-marineservice.com\/de\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/ab-marineservice.com\/de\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/ab-marineservice.com\/de\/wp-json\/wp\/v2\/users\/7"}],"replies":[{"embeddable":true,"href":"https:\/\/ab-marineservice.com\/de\/wp-json\/wp\/v2\/comments?post=59683"}],"version-history":[{"count":0,"href":"https:\/\/ab-marineservice.com\/de\/wp-json\/wp\/v2\/pages\/59683\/revisions"}],"wp:attachment":[{"href":"https:\/\/ab-marineservice.com\/de\/wp-json\/wp\/v2\/media?parent=59683"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}