diff --git a/dist/2206bc22222226adfce3.svg b/dist/2206bc22222226adfce3.svg deleted file mode 100644 index 6778b47..0000000 --- a/dist/2206bc22222226adfce3.svg +++ /dev/null @@ -1,4 +0,0 @@ - - - - diff --git a/dist/2a6d443422ae27e8b633.svg b/dist/2a6d443422ae27e8b633.svg deleted file mode 100644 index 7319eae..0000000 --- a/dist/2a6d443422ae27e8b633.svg +++ /dev/null @@ -1,4 +0,0 @@ - - - - diff --git a/dist/2fc47fd8e9a9bcd9612f.jpg b/dist/2fc47fd8e9a9bcd9612f.jpg deleted file mode 100644 index 19e069b..0000000 Binary files a/dist/2fc47fd8e9a9bcd9612f.jpg and /dev/null differ diff --git a/dist/35d26b781dc5fda684cc.ttf b/dist/35d26b781dc5fda684cc.ttf deleted file mode 100644 index 9f0c71b..0000000 Binary files a/dist/35d26b781dc5fda684cc.ttf and /dev/null differ diff --git a/dist/49e44e5e03758262e8bf.svg b/dist/49e44e5e03758262e8bf.svg deleted file mode 100644 index 1a4e2b7..0000000 --- a/dist/49e44e5e03758262e8bf.svg +++ /dev/null @@ -1,5 +0,0 @@ - - - - - diff --git a/dist/58c61e0eac124c5e75fa.svg b/dist/58c61e0eac124c5e75fa.svg deleted file mode 100644 index 7eff453..0000000 --- a/dist/58c61e0eac124c5e75fa.svg +++ /dev/null @@ -1,6 +0,0 @@ - - - - - - diff --git a/dist/5e2464bff616faf70484.svg b/dist/5e2464bff616faf70484.svg deleted file mode 100644 index 2c171da..0000000 --- a/dist/5e2464bff616faf70484.svg +++ /dev/null @@ -1,11 +0,0 @@ - - - - - - - - - - - diff --git a/dist/673ed42382ab264e0bf5.ttf b/dist/673ed42382ab264e0bf5.ttf deleted file mode 100644 index 6bcdcc2..0000000 Binary files a/dist/673ed42382ab264e0bf5.ttf and /dev/null differ diff --git a/dist/681e9a719890c3953022.svg b/dist/681e9a719890c3953022.svg deleted file mode 100644 index 73e88dd..0000000 --- a/dist/681e9a719890c3953022.svg +++ /dev/null @@ -1,6 +0,0 @@ - - - - - - diff --git a/dist/975792ea68af0a3c209d.svg b/dist/975792ea68af0a3c209d.svg deleted file mode 100644 index 5378b36..0000000 --- a/dist/975792ea68af0a3c209d.svg +++ /dev/null @@ -1,4 +0,0 @@ - - - - diff --git a/dist/980a536735fbd2133d25.svg b/dist/980a536735fbd2133d25.svg deleted file mode 100644 index 4f3801b..0000000 --- a/dist/980a536735fbd2133d25.svg +++ /dev/null @@ -1,3 +0,0 @@ - - - diff --git a/dist/b41c688b3eba7fc023ba.svg b/dist/b41c688b3eba7fc023ba.svg deleted file mode 100644 index 740ba76..0000000 --- a/dist/b41c688b3eba7fc023ba.svg +++ /dev/null @@ -1,4 +0,0 @@ - - - - diff --git a/dist/c81b22e9874268723f8d.svg b/dist/c81b22e9874268723f8d.svg deleted file mode 100644 index 874c3b8..0000000 --- a/dist/c81b22e9874268723f8d.svg +++ /dev/null @@ -1,5 +0,0 @@ - - - - - diff --git a/dist/index.html b/dist/index.html index 4bacd84..15a3eb7 100644 --- a/dist/index.html +++ b/dist/index.html @@ -1 +1 @@ -Spots
User Avatar

Bessie Coleman

Civil Aviator

\ No newline at end of file +Spots
User Avatar

Bessie Coleman

Civil Aviator

\ No newline at end of file diff --git a/dist/main.css b/dist/main.css index 561255b..3f59348 100644 --- a/dist/main.css +++ b/dist/main.css @@ -354,13 +354,13 @@ template { font-family: "Poppins"; font-style: normal; font-weight: 400; - src: url(/se_project_spots/35d26b781dc5fda684cc.ttf) format("truetype"); + src: url(/se_project_spots/Poppins-Regular.ttf) format("truetype"); } @font-face { font-family: "Poppins"; font-style: normal; font-weight: 500; - src: url(/se_project_spots/673ed42382ab264e0bf5.ttf) format("truetype"); + src: url(/se_project_spots/Poppins-Medium.ttf) format("truetype"); } .page { @@ -687,7 +687,7 @@ template { position: absolute; /* having absolute makes sure each card has a button and in the correct spot*/ margin: 10px 371px 0; padding: 0; /* controls size of svg i guess */ - background-image: url(/se_project_spots/681e9a719890c3953022.svg); + background-image: url(/se_project_spots/delete-icon.svg); background-repeat: no-repeat; /* this and bg size is keeping the icon true to size */ background-size: contain; width: 32px; /*makes sure svg actually shows */ @@ -700,12 +700,12 @@ template { } .card__delete-button:hover { - background-image: url(/se_project_spots/58c61e0eac124c5e75fa.svg); + background-image: url(/se_project_spots/delete-icon-hover.svg); } .card__like-button { padding: 0; - background-image: url(/se_project_spots/980a536735fbd2133d25.svg); + background-image: url(/se_project_spots/likereact.svg); background-repeat: no-repeat; /* this and bg size is keeping the icon true to size */ background-size: contain; width: 23px; @@ -722,7 +722,7 @@ template { } .card__like-button_liked { - background-image: url(/se_project_spots/2206bc22222226adfce3.svg); + background-image: url(/se_project_spots/likEDreact.svg); opacity: 100%; } @@ -850,7 +850,7 @@ template { right: 50px; width: 40px; height: 40px; - background-image: url(/se_project_spots/b41c688b3eba7fc023ba.svg); + background-image: url(/se_project_spots/closebutton.svg); background-repeat: no-repeat; /* this and bg size is keeping the icon true to size */ border: none; background-color: transparent; @@ -861,7 +861,7 @@ template { /*close button for image preview*/ .modal__close-button_type_preview { - background-image: url(/se_project_spots/2a6d443422ae27e8b633.svg); + background-image: url(/se_project_spots/close-button-light.svg); top: 0; right: -52.5px; opacity: 100%; @@ -957,7 +957,7 @@ template { } .modal__close-button_type_delete { - background-image: url(/se_project_spots/2a6d443422ae27e8b633.svg); + background-image: url(/se_project_spots/close-button-light.svg); right: -50px; top: 0; } @@ -1115,4 +1115,4 @@ template { -/*# sourceMappingURL=data:application/json;charset=utf-8;base64,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ZCx5QkFBeUI7RUFDekIsMENBQTBDO0VBQzFDLHNCQUFzQjtFQUN0QixpQ0FBaUM7RUFDakMsZUFBZTtBQUNqQjs7QUFFQTtFQUNFLHlCQUF5QjtFQUN6QixXQUFXO0FBQ2I7O0FBRUE7RUFDRTtJQUNFLGVBQWU7RUFDakI7O0VBRUE7SUFDRSxhQUFhO0VBQ2Y7O0VBRUE7SUFDRSxjQUFjLEVBQUUsNkJBQTZCO0lBQzdDLFVBQVU7SUFDVixXQUFXO0lBQ1gsZ0JBQWdCO0VBQ2xCOztFQUVBO0lBQ0UsV0FBVztJQUNYLGVBQWU7SUFDZixlQUFlO0VBQ2pCOztFQUVBO0lBQ0UsZUFBZTtJQUNmLG1CQUFtQjtFQUNyQjs7RUFFQTtJQUNFLFNBQVM7SUFDVCxXQUFXO0VBQ2I7O0VBRUE7SUFDRSxVQUFVO0lBQ1YsV0FBVztFQUNiOztFQUVBO0lBQ0UsbUJBQW1CO0VBQ3JCOztFQUVBO0lBQ0UsZUFBZTtFQUNqQjs7RUFFQTtJQUNFLFdBQVc7RUFDYjs7RUFFQTtJQUNFLGVBQWU7SUFDZixnQkFBZ0I7RUFDbEI7RUFDQTtJQUNFLFdBQVc7SUFDWCxhQUFhO0lBQ2Isc0JBQXNCO0lBQ3RCLG1CQUFtQixFQUFFLG1DQUFtQztFQUMxRDs7RUFFQTtJQUNFLGdCQUFnQjtJQUNoQixlQUFlO0lBQ2YsZ0JBQWdCO0lBQ2hCLGtCQUFrQjtJQUNsQixXQUFXO0VBQ2I7O0VBRUE7SUFDRSxXQUFXO0lBQ1gsYUFBYTtJQUNiLHNCQUFzQjtJQUN0QixtQkFBbUIsRUFBRSxxQ0FBcUM7RUFDNUQ7O0VBRUE7SUFDRSxnQkFBZ0I7SUFDaEIsWUFBWTtFQUNkOztFQUVBO0lBQ0UsU0FBUztJQUNULFlBQVk7RUFDZDs7RUFFQTtJQUNFLFVBQVU7SUFDVixVQUFVO0VBQ1o7QUFDRiIsInNvdXJjZXMiOlsid2VicGFjazovL3NlX3Byb2plY3Rfc3BvdHMvLi9zcmMvdmVuZG9yL25vcm1hbGl6ZS5jc3MiLCJ3ZWJwYWNrOi8vc2VfcHJvamVjdF9zcG90cy8uL3NyYy92ZW5kb3IvZm9udHMuY3NzIiwid2VicGFjazovL3NlX3Byb2plY3Rfc3BvdHMvLi9zcmMvYmxvY2tzL3BhZ2UuY3NzIiwid2VicGFjazovL3NlX3Byb2plY3Rfc3BvdHMvLi9zcmMvYmxvY2tzL2hlYWRlci5jc3MiLCJ3ZWJwYWNrOi8vc2VfcHJvamVjdF9zcG90cy8uL3NyYy9ibG9ja3MvcHJvZmlsZS5jc3MiLCJ3ZWJwYWNrOi8vc2VfcHJvamVjdF9zcG90cy8uL3NyYy9ibG9ja3MvY29udGVudC5jc3MiLCJ3ZWJwYWNrOi8vc2VfcHJvamVjdF9zcG90cy8uL3NyYy9ibG9ja3MvY2FyZHMuY3NzIiwid2VicGFjazovL3NlX3Byb2plY3Rfc3BvdHMvLi9zcmMvYmxvY2tzL2NhcmQuY3NzIiwid2VicGFjazovL3NlX3Byb2plY3Rfc3BvdHMvLi9zcmMvYmxvY2tzL2Zvb3Rlci5jc3MiLCJ3ZWJwYWNrOi8vc2VfcHJvamVjdF9zcG90cy8uL3NyYy9ibG9ja3MvbW9kYWwuY3NzIl0sInNvdXJjZXNDb250ZW50IjpbIi8qISBub3JtYWxpemUuY3NzIHY4LjAuMSB8IE1JVCBMaWNlbnNlIHwgZ2l0aHViLmNvbS9uZWNvbGFzL25vcm1hbGl6ZS5jc3MgKi9cclxuXHJcbi8qIERvY3VtZW50XHJcbiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXHJcblxyXG4vKipcclxuICogMS4gQ29ycmVjdCB0aGUgbGluZSBoZWlnaHQgaW4gYWxsIGJyb3dzZXJzLlxyXG4gKiAyLiBQcmV2ZW50IGFkanVzdG1lbnRzIG9mIGZvbnQgc2l6ZSBhZnRlciBvcmllbnRhdGlvbiBjaGFuZ2VzIGluIGlPUy5cclxuICovXHJcblxyXG5odG1sIHtcclxuICBsaW5lLWhlaWdodDogMS4xNTsgLyogMSAqL1xyXG4gIC13ZWJraXQtdGV4dC1zaXplLWFkanVzdDogMTAwJTsgLyogMiAqL1xyXG59XHJcblxyXG4vKiBTZWN0aW9uc1xyXG4gICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xyXG5cclxuLyoqXHJcbiAqIFJlbW92ZSB0aGUgbWFyZ2luIGluIGFsbCBicm93c2Vycy5cclxuICovXHJcblxyXG5ib2R5IHtcclxuICBtYXJnaW46IDA7XHJcbn1cclxuXHJcbi8qKlxyXG4gKiBSZW5kZXIgdGhlIGBtYWluYCBlbGVtZW50IGNvbnNpc3RlbnRseSBpbiBJRS5cclxuICovXHJcblxyXG5tYWluIHtcclxuICBkaXNwbGF5OiBibG9jaztcclxufVxyXG5cclxuLyoqXHJcbiAqIENvcnJlY3QgdGhlIGZvbnQgc2l6ZSBhbmQgbWFyZ2luIG9uIGBoMWAgZWxlbWVudHMgd2l0aGluIGBzZWN0aW9uYCBhbmRcclxuICogYGFydGljbGVgIGNvbnRleHRzIGluIENocm9tZSwgRmlyZWZveCwgYW5kIFNhZmFyaS5cclxuICovXHJcblxyXG5oMSB7XHJcbiAgZm9udC1zaXplOiAyZW07XHJcbiAgbWFyZ2luOiAwLjY3ZW0gMDtcclxufVxyXG5cclxuLyogR3JvdXBpbmcgY29udGVudFxyXG4gICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xyXG5cclxuLyoqXHJcbiAqIDEuIEFkZCB0aGUgY29ycmVjdCBib3ggc2l6aW5nIGluIEZpcmVmb3guXHJcbiAqIDIuIFNob3cgdGhlIG92ZXJmbG93IGluIEVkZ2UgYW5kIElFLlxyXG4gKi9cclxuXHJcbmhyIHtcclxuICBib3gtc2l6aW5nOiBjb250ZW50LWJveDsgLyogMSAqL1xyXG4gIGhlaWdodDogMDsgLyogMSAqL1xyXG4gIG92ZXJmbG93OiB2aXNpYmxlOyAvKiAyICovXHJcbn1cclxuXHJcbi8qKlxyXG4gKiAxLiBDb3JyZWN0IHRoZSBpbmhlcml0YW5jZSBhbmQgc2NhbGluZyBvZiBmb250IHNpemUgaW4gYWxsIGJyb3dzZXJzLlxyXG4gKiAyLiBDb3JyZWN0IHRoZSBvZGQgYGVtYCBmb250IHNpemluZyBpbiBhbGwgYnJvd3NlcnMuXHJcbiAqL1xyXG5cclxucHJlIHtcclxuICBmb250LWZhbWlseTogbW9ub3NwYWNlLCBtb25vc3BhY2U7IC8qIDEgKi9cclxuICBmb250LXNpemU6IDFlbTsgLyogMiAqL1xyXG59XHJcblxyXG4vKiBUZXh0LWxldmVsIHNlbWFudGljc1xyXG4gICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xyXG5cclxuLyoqXHJcbiAqIFJlbW92ZSB0aGUgZ3JheSBiYWNrZ3JvdW5kIG9uIGFjdGl2ZSBsaW5rcyBpbiBJRSAxMC5cclxuICovXHJcblxyXG5hIHtcclxuICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcclxufVxyXG5cclxuLyoqXHJcbiAqIDEuIFJlbW92ZSB0aGUgYm90dG9tIGJvcmRlciBpbiBDaHJvbWUgNTctXHJcbiAqIDIuIEFkZCB0aGUgY29ycmVjdCB0ZXh0IGRlY29yYXRpb24gaW4gQ2hyb21lLCBFZGdlLCBJRSwgT3BlcmEsIGFuZCBTYWZhcmkuXHJcbiAqL1xyXG5cclxuYWJiclt0aXRsZV0ge1xyXG4gIGJvcmRlci1ib3R0b206IG5vbmU7IC8qIDEgKi9cclxuICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTsgLyogMiAqL1xyXG4gIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lIGRvdHRlZDsgLyogMiAqL1xyXG59XHJcblxyXG4vKipcclxuICogQWRkIHRoZSBjb3JyZWN0IGZvbnQgd2VpZ2h0IGluIENocm9tZSwgRWRnZSwgYW5kIFNhZmFyaS5cclxuICovXHJcblxyXG5iLFxyXG5zdHJvbmcge1xyXG4gIGZvbnQtd2VpZ2h0OiBib2xkZXI7XHJcbn1cclxuXHJcbi8qKlxyXG4gKiAxLiBDb3JyZWN0IHRoZSBpbmhlcml0YW5jZSBhbmQgc2NhbGluZyBvZiBmb250IHNpemUgaW4gYWxsIGJyb3dzZXJzLlxyXG4gKiAyLiBDb3JyZWN0IHRoZSBvZGQgYGVtYCBmb250IHNpemluZyBpbiBhbGwgYnJvd3NlcnMuXHJcbiAqL1xyXG5cclxuY29kZSxcclxua2JkLFxyXG5zYW1wIHtcclxuICBmb250LWZhbWlseTogbW9ub3NwYWNlLCBtb25vc3BhY2U7IC8qIDEgKi9cclxuICBmb250LXNpemU6IDFlbTsgLyogMiAqL1xyXG59XHJcblxyXG4vKipcclxuICogQWRkIHRoZSBjb3JyZWN0IGZvbnQgc2l6ZSBpbiBhbGwgYnJvd3NlcnMuXHJcbiAqL1xyXG5cclxuc21hbGwge1xyXG4gIGZvbnQtc2l6ZTogODAlO1xyXG59XHJcblxyXG4vKipcclxuICogUHJldmVudCBgc3ViYCBhbmQgYHN1cGAgZWxlbWVudHMgZnJvbSBhZmZlY3RpbmcgdGhlIGxpbmUgaGVpZ2h0IGluXHJcbiAqIGFsbCBicm93c2Vycy5cclxuICovXHJcblxyXG5zdWIsXHJcbnN1cCB7XHJcbiAgZm9udC1zaXplOiA3NSU7XHJcbiAgbGluZS1oZWlnaHQ6IDA7XHJcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xyXG4gIHZlcnRpY2FsLWFsaWduOiBiYXNlbGluZTtcclxufVxyXG5cclxuc3ViIHtcclxuICBib3R0b206IC0wLjI1ZW07XHJcbn1cclxuXHJcbnN1cCB7XHJcbiAgdG9wOiAtMC41ZW07XHJcbn1cclxuXHJcbi8qIEVtYmVkZGVkIGNvbnRlbnRcclxuICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cclxuXHJcbi8qKlxyXG4gKiBSZW1vdmUgdGhlIGJvcmRlciBvbiBpbWFnZXMgaW5zaWRlIGxpbmtzIGluIElFIDEwLlxyXG4gKi9cclxuXHJcbmltZyB7XHJcbiAgYm9yZGVyLXN0eWxlOiBub25lO1xyXG59XHJcblxyXG4vKiBGb3Jtc1xyXG4gICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xyXG5cclxuLyoqXHJcbiAqIDEuIENoYW5nZSB0aGUgZm9udCBzdHlsZXMgaW4gYWxsIGJyb3dzZXJzLlxyXG4gKiAyLiBSZW1vdmUgdGhlIG1hcmdpbiBpbiBGaXJlZm94IGFuZCBTYWZhcmkuXHJcbiAqL1xyXG5cclxuYnV0dG9uLFxyXG5pbnB1dCxcclxub3B0Z3JvdXAsXHJcbnNlbGVjdCxcclxudGV4dGFyZWEge1xyXG4gIGZvbnQtZmFtaWx5OiBpbmhlcml0OyAvKiAxICovXHJcbiAgZm9udC1zaXplOiAxMDAlOyAvKiAxICovXHJcbiAgbGluZS1oZWlnaHQ6IDEuMTU7IC8qIDEgKi9cclxuICBtYXJnaW46IDA7IC8qIDIgKi9cclxufVxyXG5cclxuLyoqXHJcbiAqIFNob3cgdGhlIG92ZXJmbG93IGluIElFLlxyXG4gKiAxLiBTaG93IHRoZSBvdmVyZmxvdyBpbiBFZGdlLlxyXG4gKi9cclxuXHJcbmJ1dHRvbixcclxuaW5wdXQge1xyXG4gIC8qIDEgKi9cclxuICBvdmVyZmxvdzogdmlzaWJsZTtcclxufVxyXG5cclxuLyoqXHJcbiAqIFJlbW92ZSB0aGUgaW5oZXJpdGFuY2Ugb2YgdGV4dCB0cmFuc2Zvcm0gaW4gRWRnZSwgRmlyZWZveCwgYW5kIElFLlxyXG4gKiAxLiBSZW1vdmUgdGhlIGluaGVyaXRhbmNlIG9mIHRleHQgdHJhbnNmb3JtIGluIEZpcmVmb3guXHJcbiAqL1xyXG5cclxuYnV0dG9uLFxyXG5zZWxlY3Qge1xyXG4gIC8qIDEgKi9cclxuICB0ZXh0LXRyYW5zZm9ybTogbm9uZTtcclxufVxyXG5cclxuLyoqXHJcbiAqIENvcnJlY3QgdGhlIGluYWJpbGl0eSB0byBzdHlsZSBjbGlja2FibGUgdHlwZXMgaW4gaU9TIGFuZCBTYWZhcmkuXHJcbiAqL1xyXG5cclxuYnV0dG9uLFxyXG5bdHlwZT1cImJ1dHRvblwiXSxcclxuW3R5cGU9XCJyZXNldFwiXSxcclxuW3R5cGU9XCJzdWJtaXRcIl0ge1xyXG4gIC13ZWJraXQtYXBwZWFyYW5jZTogYnV0dG9uO1xyXG59XHJcblxyXG4vKipcclxuICogUmVtb3ZlIHRoZSBpbm5lciBib3JkZXIgYW5kIHBhZGRpbmcgaW4gRmlyZWZveC5cclxuICovXHJcblxyXG5idXR0b246Oi1tb3otZm9jdXMtaW5uZXIsXHJcblt0eXBlPVwiYnV0dG9uXCJdOjotbW96LWZvY3VzLWlubmVyLFxyXG5bdHlwZT1cInJlc2V0XCJdOjotbW96LWZvY3VzLWlubmVyLFxyXG5bdHlwZT1cInN1Ym1pdFwiXTo6LW1vei1mb2N1cy1pbm5lciB7XHJcbiAgYm9yZGVyLXN0eWxlOiBub25lO1xyXG4gIHBhZGRpbmc6IDA7XHJcbn1cclxuXHJcbi8qKlxyXG4gKiBSZXN0b3JlIHRoZSBmb2N1cyBzdHlsZXMgdW5zZXQgYnkgdGhlIHByZXZpb3VzIHJ1bGUuXHJcbiAqL1xyXG5cclxuYnV0dG9uOi1tb3otZm9jdXNyaW5nLFxyXG5bdHlwZT1cImJ1dHRvblwiXTotbW96LWZvY3VzcmluZyxcclxuW3R5cGU9XCJyZXNldFwiXTotbW96LWZvY3VzcmluZyxcclxuW3R5cGU9XCJzdWJtaXRcIl06LW1vei1mb2N1c3Jpbmcge1xyXG4gIG91dGxpbmU6IDFweCBkb3R0ZWQgQnV0dG9uVGV4dDtcclxufVxyXG5cclxuLyoqXHJcbiAqIENvcnJlY3QgdGhlIHBhZGRpbmcgaW4gRmlyZWZveC5cclxuICovXHJcblxyXG5maWVsZHNldCB7XHJcbiAgcGFkZGluZzogMC4zNWVtIDAuNzVlbSAwLjYyNWVtO1xyXG59XHJcblxyXG4vKipcclxuICogMS4gQ29ycmVjdCB0aGUgdGV4dCB3cmFwcGluZyBpbiBFZGdlIGFuZCBJRS5cclxuICogMi4gQ29ycmVjdCB0aGUgY29sb3IgaW5oZXJpdGFuY2UgZnJvbSBgZmllbGRzZXRgIGVsZW1lbnRzIGluIElFLlxyXG4gKiAzLiBSZW1vdmUgdGhlIHBhZGRpbmcgc28gZGV2ZWxvcGVycyBhcmUgbm90IGNhdWdodCBvdXQgd2hlbiB0aGV5IHplcm8gb3V0XHJcbiAqICAgIGBmaWVsZHNldGAgZWxlbWVudHMgaW4gYWxsIGJyb3dzZXJzLlxyXG4gKi9cclxuXHJcbmxlZ2VuZCB7XHJcbiAgYm94LXNpemluZzogYm9yZGVyLWJveDsgLyogMSAqL1xyXG4gIGNvbG9yOiBpbmhlcml0OyAvKiAyICovXHJcbiAgZGlzcGxheTogdGFibGU7IC8qIDEgKi9cclxuICBtYXgtd2lkdGg6IDEwMCU7IC8qIDEgKi9cclxuICBwYWRkaW5nOiAwOyAvKiAzICovXHJcbiAgd2hpdGUtc3BhY2U6IG5vcm1hbDsgLyogMSAqL1xyXG59XHJcblxyXG4vKipcclxuICogQWRkIHRoZSBjb3JyZWN0IHZlcnRpY2FsIGFsaWdubWVudCBpbiBDaHJvbWUsIEZpcmVmb3gsIGFuZCBPcGVyYS5cclxuICovXHJcblxyXG5wcm9ncmVzcyB7XHJcbiAgdmVydGljYWwtYWxpZ246IGJhc2VsaW5lO1xyXG59XHJcblxyXG4vKipcclxuICogUmVtb3ZlIHRoZSBkZWZhdWx0IHZlcnRpY2FsIHNjcm9sbGJhciBpbiBJRSAxMCsuXHJcbiAqL1xyXG5cclxudGV4dGFyZWEge1xyXG4gIG92ZXJmbG93OiBhdXRvO1xyXG59XHJcblxyXG4vKipcclxuICogMS4gQWRkIHRoZSBjb3JyZWN0IGJveCBzaXppbmcgaW4gSUUgMTAuXHJcbiAqIDIuIFJlbW92ZSB0aGUgcGFkZGluZyBpbiBJRSAxMC5cclxuICovXHJcblxyXG5bdHlwZT1cImNoZWNrYm94XCJdLFxyXG5bdHlwZT1cInJhZGlvXCJdIHtcclxuICBib3gtc2l6aW5nOiBib3JkZXItYm94OyAvKiAxICovXHJcbiAgcGFkZGluZzogMDsgLyogMiAqL1xyXG59XHJcblxyXG4vKipcclxuICogQ29ycmVjdCB0aGUgY3Vyc29yIHN0eWxlIG9mIGluY3JlbWVudCBhbmQgZGVjcmVtZW50IGJ1dHRvbnMgaW4gQ2hyb21lLlxyXG4gKi9cclxuXHJcblt0eXBlPVwibnVtYmVyXCJdOjotd2Via2l0LWlubmVyLXNwaW4tYnV0dG9uLFxyXG5bdHlwZT1cIm51bWJlclwiXTo6LXdlYmtpdC1vdXRlci1zcGluLWJ1dHRvbiB7XHJcbiAgaGVpZ2h0OiBhdXRvO1xyXG59XHJcblxyXG4vKipcclxuICogMS4gQ29ycmVjdCB0aGUgb2RkIGFwcGVhcmFuY2UgaW4gQ2hyb21lIGFuZCBTYWZhcmkuXHJcbiAqIDIuIENvcnJlY3QgdGhlIG91dGxpbmUgc3R5bGUgaW4gU2FmYXJpLlxyXG4gKi9cclxuXHJcblt0eXBlPVwic2VhcmNoXCJdIHtcclxuICAtd2Via2l0LWFwcGVhcmFuY2U6IHRleHRmaWVsZDsgLyogMSAqL1xyXG4gIG91dGxpbmUtb2Zmc2V0OiAtMnB4OyAvKiAyICovXHJcbn1cclxuXHJcbi8qKlxyXG4gKiBSZW1vdmUgdGhlIGlubmVyIHBhZGRpbmcgaW4gQ2hyb21lIGFuZCBTYWZhcmkgb24gbWFjT1MuXHJcbiAqL1xyXG5cclxuW3R5cGU9XCJzZWFyY2hcIl06Oi13ZWJraXQtc2VhcmNoLWRlY29yYXRpb24ge1xyXG4gIC13ZWJraXQtYXBwZWFyYW5jZTogbm9uZTtcclxufVxyXG5cclxuLyoqXHJcbiAqIDEuIENvcnJlY3QgdGhlIGluYWJpbGl0eSB0byBzdHlsZSBjbGlja2FibGUgdHlwZXMgaW4gaU9TIGFuZCBTYWZhcmkuXHJcbiAqIDIuIENoYW5nZSBmb250IHByb3BlcnRpZXMgdG8gYGluaGVyaXRgIGluIFNhZmFyaS5cclxuICovXHJcblxyXG46Oi13ZWJraXQtZmlsZS11cGxvYWQtYnV0dG9uIHtcclxuICAtd2Via2l0LWFwcGVhcmFuY2U6IGJ1dHRvbjsgLyogMSAqL1xyXG4gIGZvbnQ6IGluaGVyaXQ7IC8qIDIgKi9cclxufVxyXG5cclxuLyogSW50ZXJhY3RpdmVcclxuICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cclxuXHJcbi8qXHJcbiAqIEFkZCB0aGUgY29ycmVjdCBkaXNwbGF5IGluIEVkZ2UsIElFIDEwKywgYW5kIEZpcmVmb3guXHJcbiAqL1xyXG5cclxuZGV0YWlscyB7XHJcbiAgZGlzcGxheTogYmxvY2s7XHJcbn1cclxuXHJcbi8qXHJcbiAqIEFkZCB0aGUgY29ycmVjdCBkaXNwbGF5IGluIGFsbCBicm93c2Vycy5cclxuICovXHJcblxyXG5zdW1tYXJ5IHtcclxuICBkaXNwbGF5OiBsaXN0LWl0ZW07XHJcbn1cclxuXHJcbi8qIE1pc2NcclxuICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cclxuXHJcbi8qKlxyXG4gKiBBZGQgdGhlIGNvcnJlY3QgZGlzcGxheSBpbiBJRSAxMCsuXHJcbiAqL1xyXG5cclxudGVtcGxhdGUge1xyXG4gIGRpc3BsYXk6IG5vbmU7XHJcbn1cclxuXHJcbi8qKlxyXG4gKiBBZGQgdGhlIGNvcnJlY3QgZGlzcGxheSBpbiBJRSAxMC5cclxuICovXHJcblxyXG5baGlkZGVuXSB7XHJcbiAgZGlzcGxheTogbm9uZTtcclxufVxyXG4iLCJAZm9udC1mYWNlIHtcclxuICBmb250LWZhbWlseTogXCJQb3BwaW5zXCI7XHJcbiAgZm9udC1zdHlsZTogbm9ybWFsO1xyXG4gIGZvbnQtd2VpZ2h0OiA0MDA7XHJcbiAgc3JjOiB1cmwoXCIuLi92ZW5kb3IvZm9udHMvUG9wcGlucy1SZWd1bGFyLnR0ZlwiKSBmb3JtYXQoXCJ0cnVldHlwZVwiKTtcclxufVxyXG5AZm9udC1mYWNlIHtcclxuICBmb250LWZhbWlseTogXCJQb3BwaW5zXCI7XHJcbiAgZm9udC1zdHlsZTogbm9ybWFsO1xyXG4gIGZvbnQtd2VpZ2h0OiA1MDA7XHJcbiAgc3JjOiB1cmwoXCIuLi92ZW5kb3IvZm9udHMvUG9wcGlucy1NZWRpdW0udHRmXCIpIGZvcm1hdChcInRydWV0eXBlXCIpO1xyXG59XHJcbiIsIi5wYWdlIHtcclxuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmNmNWU1OyAvKiBzbyB0aGUgb3RoZXIgY29sb3IgZG9udCBtZXNzIHdpdGggdGhlIGhlYWRlciAqL1xyXG4gIGZvbnQtZmFtaWx5OiBcIlBvcHBpbnNcIiwgQXJpYWwsIEhlbHZldGljYSwgc2Fucy1zZXJpZjtcclxufVxyXG5cclxuLyogbmV3IHJ1bGUgY3JlYXRlZCBzbyBpIGRpZG50IGhhdmUgdG8gcmVkbyB0b28gbXVjaCBjb2RlICovXHJcbi5wYWdlX19jb250ZW50IHtcclxuICBwYWRkaW5nOiAwO1xyXG4gIG1hcmdpbjogYXV0bzsgLypjZW50ZXJzIGV2ZXJ5dGhpbmcgb24gd2VicGFnZSovXHJcbiAgbWluLWhlaWdodDogMTAwdmg7XHJcbn1cclxuXHJcbi5wYWdlX19zZWN0aW9uIHtcclxuICBtYXgtd2lkdGg6IDEyODBweDsgLypiaWdnZXN0IHdlIHdhbnQgdGhlIGFjdHVhbCBjb25lbnQgdG8gc3RyZXRjaCovXHJcbiAgbWFyZ2luOiAwIGF1dG87IC8qIGtlZXBzIHRoZSBjb250ZW50IGNlbnRlcmVkIG9uIHRoZSBiYWNrZ3JvdW5kICovXHJcbn1cclxuIiwiLmhlYWRlciB7XHJcbiAgcGFkZGluZzogMTBweCAwOyAvKnBhZ2Ugc2VwZXJhdGlvbiBjdXNoaW9uICovXHJcbiAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZjtcclxuICBkaXNwbGF5OiBmbGV4O1xyXG4gIGp1c3RpZnktY29udGVudDogY2VudGVyOyAvKiBrZWVwcyBsb2dvIGNlbnRlciAqL1xyXG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7IC8qIGtlZXBzIGxvZ28gY2VudGVyICovXHJcbn1cclxuXHJcbi5oZWFkZXJfX2xvZ28ge1xyXG4gIHdpZHRoOiA5NHB4O1xyXG4gIGhlaWdodDogMjZweDtcclxufVxyXG4iLCIucHJvZmlsZSB7XHJcbiAgZGlzcGxheTogZmxleDtcclxuICBwYWRkaW5nOiAzNHB4IDAgMjBweDsgLyogcGFnZSBzZXBlcmF0aW9uIGN1c2hpb24gKi9cclxuICBib3JkZXItYm90dG9tOiAxcHggcmdiYSgzMywgMzMsIDMzLCAwLjQpIHNvbGlkO1xyXG4gIGp1c3RpZnktY29udGVudDogY2VudGVyO1xyXG59XHJcblxyXG4vKiBDb250YWluZXIgZm9yIHRoZSBhdmF0YXIgYW5kIGl0cyBlZGl0IGJ1dHRvbiAqL1xyXG4ucHJvZmlsZV9fYXZhdGFyLWNvbnRhaW5lciB7XHJcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xyXG4gIGRpc3BsYXk6IGJsb2NrO1xyXG4gIGhlaWdodDogMTkwcHg7XHJcbiAgY3Vyc29yOiBwb2ludGVyO1xyXG59XHJcblxyXG4ucHJvZmlsZV9fYXZhdGFyLW92ZXJsYXkge1xyXG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcclxuICB0b3A6IDA7XHJcbiAgbGVmdDogMDtcclxuICB3aWR0aDogMTAwJTtcclxuICBoZWlnaHQ6IDEwMCU7XHJcbiAgb3BhY2l0eTogMDsgLyogTWFrZSBpdCBpbnZpc2libGUgKi9cclxuICBiYWNrZ3JvdW5kOiByZ2JhKFxyXG4gICAgMCxcclxuICAgIDAsXHJcbiAgICAwLFxyXG4gICAgMC4zXHJcbiAgKTsgLyogT3B0aW9uYWw6IGFkZHMgc2xpZ2h0IGRhcmtlbmluZyBlZmZlY3Qgb24gaG92ZXIgKi9cclxufVxyXG5cclxuLnByb2ZpbGVfX2F2YXRhci1jb250YWluZXI6aG92ZXIgLnByb2ZpbGVfX2F2YXRhci1vdmVybGF5IHtcclxuICBvcGFjaXR5OiAxOyAvKiBTaG93IG92ZXJsYXkgb24gaG92ZXIgKi9cclxufVxyXG5cclxuLyogQXZhdGFyIGltYWdlICovXHJcbi5wcm9maWxlX19hdmF0YXIge1xyXG4gIG1hcmdpbi1yaWdodDogMjBweDtcclxuICBoZWlnaHQ6IDE5MHB4O1xyXG4gIHdpZHRoOiAxOTBweDtcclxuICBib3JkZXItcmFkaXVzOiA4cHg7XHJcbiAgei1pbmRleDogMTtcclxufVxyXG5cclxuLyogQXZhdGFyIGVkaXQgYnV0dG9uICovXHJcbi5wcm9maWxlX19hdmF0YXItYnV0dG9uIHtcclxuICBwb3NpdGlvbjogYWJzb2x1dGU7XHJcbiAgcGFkZGluZzogMTJweCAxMHB4OyAvKiBCdXR0b24gcGFkZGluZyBmb3IgYSBjb21mb3J0YWJsZSBjbGljayBhcmVhICovXHJcbiAgbGVmdDogNTAlO1xyXG4gIGJvdHRvbTogMDtcclxuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTUwJSk7XHJcbiAgZGlzcGxheTogZmxleDsgLyogQWxsb3dzIGZvciBnYXAgdXNhZ2UgKi9cclxuICBnYXA6IDhweDsgLyogU3BhY2UgYmV0d2VlbiBpY29uIGFuZCB0ZXh0ICovXHJcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcclxuICB3aGl0ZS1zcGFjZTogbm93cmFwOyAvKiBQcmV2ZW50cyB0ZXh0IHdyYXBwaW5nICovXHJcbiAgZm9udC13ZWlnaHQ6IDUwMDtcclxuICBsaW5lLWhlaWdodDogMTtcclxuICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcclxuICBib3JkZXI6IG5vbmU7XHJcbiAgY29sb3I6ICNmZmY7XHJcbiAgei1pbmRleDogMjtcclxuICBvcGFjaXR5OiAwO1xyXG4gIGN1cnNvcjogcG9pbnRlcjtcclxufVxyXG5cclxuLnByb2ZpbGVfX2F2YXRhci1jb250YWluZXI6aG92ZXIgLnByb2ZpbGVfX2F2YXRhci1idXR0b24ge1xyXG4gIG9wYWNpdHk6IDE7IC8qIFRoaXMgd2lsbCBtYWtlIHRoZSBidXR0b24gdmlzaWJsZSBvbiBob3ZlciAqL1xyXG59XHJcblxyXG4vKiBjb250YWluZXIgb2YgTmFtZSBEZXNjcmlwdGlvbiBhbmQgZWRpdCBidXR0b24qL1xyXG4ucHJvZmlsZV9fY29sdW1uIHtcclxuICBkaXNwbGF5OiBmbGV4O1xyXG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XHJcbn1cclxuXHJcbi5wcm9maWxlX19uYW1lIHtcclxuICBtYXJnaW46IDAgMCAxMnB4OyAvKmlzIGNyZWF0aW5nIHRoZSBnYXAgZnJvbSBkZXNjcmlwdGlvbiovXHJcbiAgZm9udC13ZWlnaHQ6IDUwMDtcclxuICBmb250LXNpemU6IDMycHg7XHJcbiAgbGluZS1oZWlnaHQ6IDE7XHJcbiAgY29sb3I6ICMyMTIxMjE7XHJcbiAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XHJcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcclxuICBkaXNwbGF5OiAtd2Via2l0LWJveDtcclxuICAtd2Via2l0LWxpbmUtY2xhbXA6IDM7XHJcbiAgbGluZS1jbGFtcDogMztcclxuICAtd2Via2l0LWJveC1vcmllbnQ6IHZlcnRpY2FsO1xyXG4gIG1heC13aWR0aDogNDIwcHg7XHJcbn1cclxuXHJcbi5wcm9maWxlX19kZXNjcmlwdGlvbiB7XHJcbiAgbWFyZ2luOiAwO1xyXG4gIHBhZGRpbmc6IDA7XHJcbiAgZm9udC13ZWlnaHQ6IDUwMDtcclxuICBsaW5lLWhlaWdodDogMTtcclxuICBjb2xvcjogcmdiYSgzNCwgMzQsIDM0LCAwLjcpO1xyXG4gIGRpc3BsYXk6IC13ZWJraXQtYm94O1xyXG4gIC13ZWJraXQtYm94LW9yaWVudDogdmVydGljYWw7XHJcbiAgLXdlYmtpdC1saW5lLWNsYW1wOiAzO1xyXG4gIGxpbmUtY2xhbXA6IDM7XHJcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcclxuICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcclxuICBtYXgtd2lkdGg6IDQyMHB4O1xyXG59XHJcblxyXG4ucHJvZmlsZV9fZWRpdC1idXR0b24ge1xyXG4gIG1hcmdpbi10b3A6IGF1dG87IC8qYnkgbWltaWNpbmcgdGhlIGFkZCBidXR0b24gd2l0aCB0aGUgbWFyZ2lucyBpIGhhdmUgZ290dGVuIHJpZCBvZiB0aGUgZ2hvc3QgcGFkZGluZyBhbmQgZG9udCBoYXZlIHRvIGFwcGx5IHdpZHRocyovXHJcbiAgcGFkZGluZzogMDsgLyppcyBrZWVwaW5nIGJ1dHRvbiBpbiBpdHMgY29ybmVyICovXHJcbiAgd2lkdGg6IGZpdC1jb250ZW50OyAvKiBmaW5hbGx5IGNsaWNrYWJsZSBvbmx5IHdoZXJlIGl0cyBtZW50IHRvIGJlIGNsaWNrZWQgYXQqL1xyXG4gIGRpc3BsYXk6IGZsZXg7IC8qIGlzIGFsbG93aW5nIGdhcCB0byBiZSB1c2VkIGFuZCBrZWVwaW5nIGl0IGlubGluZSB3aXRoIG5hbWUgYW5kIGRlc2NyaXB0aW9uICovXHJcbiAgZ2FwOiA4cHg7XHJcbiAgZm9udC13ZWlnaHQ6IDUwMDtcclxuICBsaW5lLWhlaWdodDogMTtcclxuICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcclxuICBib3JkZXI6IG5vbmU7XHJcbiAgY29sb3I6ICMyMTIxMjE7XHJcbiAgb3BhY2l0eTogNzAlO1xyXG4gIHRyYW5zaXRpb246IG9wYWNpdHkgMC41cztcclxuICBjdXJzb3I6IHBvaW50ZXI7XHJcbn1cclxuXHJcbi5wcm9maWxlX19lZGl0LWJ1dHRvbjpob3ZlciB7XHJcbiAgb3BhY2l0eTogMTAwJTsgLyogdmVyeSBzdWJ0bGUgY2hhbmdlIGJ1dCByZW1vdmVzIG92ZXJsYXkgZHVyaW5nIGhvdmVyICovXHJcbn1cclxuXHJcbi5wcm9maWxlX19hZGQtYnV0dG9uIHtcclxuICBtYXJnaW4tbGVmdDogYXV0bzsgLyogaXMgcHVzaGluZyBpdCBmcm9tIHRoZSByZXN0ICovXHJcbiAgbWFyZ2luLXRvcDogYXV0bzsgLyogcHVzaGluZyBpdCBkb3duIGZyb20gdG9wICovXHJcbiAgcGFkZGluZzogMDtcclxuICBkaXNwbGF5OiBmbGV4OyAvKiBpcyBhbGxvd2luZyB1c2Ugb2YgZ2FwICovXHJcbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7IC8qIGFsaWduaW5nIHRleHQgaG9yaXpvbnRhbGx5ICovXHJcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjsgLyogYWxpZ25pbmcgdGV4dCB2ZXJ0aWNhbGx5ICovXHJcbiAgZ2FwOiA4cHg7XHJcbiAgd2lkdGg6IDE0OXB4O1xyXG4gIGhlaWdodDogNTJweDtcclxuICBib3JkZXI6IG5vbmU7XHJcbiAgYm9yZGVyLXJhZGl1czogOHB4O1xyXG4gIGZvbnQtd2VpZ2h0OiA1MDA7XHJcbiAgbGluZS1oZWlnaHQ6IDE7XHJcbiAgY29sb3I6ICNmY2Y1ZTU7XHJcbiAgYmFja2dyb3VuZC1jb2xvcjogIzIxMjEyMTtcclxuICB0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kLWNvbG9yIDAuNXM7XHJcbiAgY3Vyc29yOiBwb2ludGVyO1xyXG59XHJcblxyXG4ucHJvZmlsZV9fYWRkLWJ1dHRvbjpob3ZlciB7XHJcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiYShcclxuICAgIDMzLFxyXG4gICAgMzMsXHJcbiAgICAzMyxcclxuICAgIDAuOFxyXG4gICk7IC8qY2hhbmdlcyBidXR0b24gY29sb3IgZHVyaW5nIGhvdmVyLiovXHJcbn1cclxuXHJcbkBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDYyN3B4KSB7XHJcbiAgLnByb2ZpbGUge1xyXG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcclxuICAgIG1heC13aWR0aDogMjg4cHg7XHJcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xyXG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xyXG4gICAgcGFkZGluZy10b3A6IDIwcHg7XHJcbiAgfVxyXG5cclxuICAucHJvZmlsZV9fYXZhdGFyLWNvbnRhaW5lciB7XHJcbiAgICBoZWlnaHQ6IDgwcHg7XHJcbiAgICB3aWR0aDogODBweDtcclxuICAgIGN1cnNvcjogZGVmYXVsdDtcclxuICB9XHJcblxyXG4gIC5wcm9maWxlX19hdmF0YXIge1xyXG4gICAgbWFyZ2luOiAwIDAgMTJweDtcclxuICAgIGhlaWdodDogODBweDtcclxuICAgIHdpZHRoOiA4MHB4O1xyXG4gIH1cclxuXHJcbiAgLnByb2ZpbGVfX2F2YXRhci1jb250YWluZXI6aG92ZXIgLnByb2ZpbGVfX2F2YXRhci1vdmVybGF5IHtcclxuICAgIG9wYWNpdHk6IDA7IC8qIEhpZGUgb3ZlcmxheSBvbiBob3ZlciAqL1xyXG4gIH1cclxuXHJcbiAgLnByb2ZpbGVfX2F2YXRhci1idXR0b24ge1xyXG4gICAgbWFyZ2luLWJvdHRvbTogNC42NnB4O1xyXG4gICAgcGFkZGluZzogNHB4IDRweDtcclxuICAgIGhlaWdodDogMjMuMzRweDtcclxuICAgIHdpZHRoOiAyMy4zNHB4O1xyXG4gICAgb3BhY2l0eTogMTtcclxuICAgIHRvcDogNTJweDtcclxuICAgIGxlZnQ6IDYzcHg7XHJcbiAgICBmb250LXNpemU6IDA7XHJcbiAgICBib3JkZXI6IG5vbmU7XHJcbiAgICBib3JkZXItcmFkaXVzOiA4cHg7XHJcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDMzLCAzMywgMzMsIDAuNik7XHJcbiAgICBjdXJzb3I6IGRlZmF1bHQ7XHJcbiAgfVxyXG5cclxuICAucHJvZmlsZV9fbmFtZSB7XHJcbiAgICBmb250LXNpemU6IDIwcHg7XHJcbiAgICBtYXJnaW46IDAgMCA2cHg7XHJcbiAgICBtYXgtd2lkdGg6IDI4OHB4O1xyXG4gIH1cclxuXHJcbiAgLnByb2ZpbGVfX2NvbHVtbiB7XHJcbiAgICBtYXJnaW46IDAgMCAyMHB4O1xyXG4gIH1cclxuXHJcbiAgLnByb2ZpbGVfX2Rlc2NyaXB0aW9uIHtcclxuICAgIG1hcmdpbjogMCAwIDMycHg7XHJcbiAgICBtYXgtd2lkdGg6IDI4OHB4O1xyXG4gIH1cclxuXHJcbiAgLnByb2ZpbGVfX2VkaXQtYnV0dG9uIHtcclxuICAgIG1hcmdpbjogYXV0bzsgLyoga2VlcGluZyBidXR0b24gY2VudGVyZWQvaW5saW5lICovXHJcbiAgfVxyXG5cclxuICAucHJvZmlsZV9fYWRkLWJ1dHRvbiB7XHJcbiAgICB3aWR0aDogMTAwJTsgLyogc3RyZXRjaGVzIGJ1dHRvbiBvdXQgKi9cclxuICB9XHJcbn1cclxuIiwiLmNvbnRlbnQge1xyXG4gIC8qcnVsZSBpcyB0byBhZGQgcGFkZGluZyBzbyB0aGF0IG5vdGhpbmcgdG91Y2hlcyBzaWRlcyBkdXJpbmcgc2hyaW5rYWdlKi9cclxuICBtYXJnaW46IDA7XHJcbiAgcGFkZGluZzogMCAyMHB4O1xyXG4gIGJhY2tncm91bmQtY29sb3I6ICNmY2Y1ZTU7IC8qa2VlcCBiYWNrZ3JvdW5kIGNvbG9ycyBjb3JyZWN0IGR1cmluZyBzaHJpbmthZ2UqL1xyXG59XHJcblxyXG5AbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiAzMzBweCkge1xyXG4gIC5jb250ZW50IHtcclxuICAgIHBhZGRpbmc6IDAgMTBweDtcclxuICB9XHJcbn1cclxuIiwiLmNhcmRzIHtcclxuICBwYWRkaW5nOiAyMHB4IDAgNDBweDsgLyogdG9wIGFuZCBib3R0b20gXCJwYWdlIHNlcGVyYXRpb24gY3VzaGlvblwiICovXHJcbiAgYm9yZGVyLWJvdHRvbTogMXB4IHJnYmEoMzMsIDMzLCAzMywgMC40KSBzb2xpZDtcclxufVxyXG5cclxuLmNhcmRzX19saXN0IHtcclxuICBtYXJnaW46IDA7XHJcbiAgcGFkZGluZzogMDtcclxuICBsaXN0LXN0eWxlLXR5cGU6IG5vbmU7XHJcbiAgZGlzcGxheTogZ3JpZDtcclxuICBnYXA6IDQwcHggMjBweDsgLypnYXBzIGJldHdlZW4gY2FyZHMqL1xyXG4gIGdyaWQtdGVtcGxhdGUtY29sdW1uczogcmVwZWF0KGF1dG8tZml0LCA0MTNweCk7XHJcbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XHJcbn1cclxuXHJcbkBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDYyN3B4KSB7XHJcbiAgLmNhcmRzIHtcclxuICAgIHBhZGRpbmc6IDIwcHggMCAyMHB4O1xyXG4gIH1cclxuXHJcbiAgLmNhcmRzX19saXN0IHtcclxuICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogcmVwZWF0KGF1dG8tZml0LCAyODhweCk7XHJcbiAgICBnYXA6IDIwcHggMjBweDtcclxuICB9XHJcbn1cclxuIiwiLmNhcmQge1xyXG4gIG1heC13aWR0aDogNDEzcHg7XHJcbn1cclxuXHJcbi5jYXJkX19pbWFnZSB7XHJcbiAgd2lkdGg6IDQxM3B4OyAvKiB3aWR0aCBhbmQgaGVpZ2h0IGtlZXAgaW1hZ2UgY29ycmVjdCBzaXplKi9cclxuICBoZWlnaHQ6IDQxM3B4O1xyXG4gIGJvcmRlci1yYWRpdXM6IDhweDtcclxuICBvYmplY3QtZml0OiBjb3ZlcjsgLyoga2VlcHMgaW1hZ2VzIGxvb2tpbmcgbmljZSAqL1xyXG4gIGN1cnNvcjogcG9pbnRlcjtcclxufVxyXG5cclxuLmNhcmRfX2NvbnRlbnQge1xyXG4gIG1hcmdpbjogMTJweCAwIDA7IC8qIGJ1bXBlciBiZXR3ZWVuIGltYWdlIGFuZCB0ZXh0ICovXHJcbiAgZGlzcGxheTogZmxleDtcclxuICBhbGlnbi1pdGVtczogY2VudGVyO1xyXG4gIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcclxuICBhbGlnbi1pdGVtczogY2VudGVyO1xyXG59XHJcblxyXG4uY2FyZF9fdGl0bGUge1xyXG4gIG1hcmdpbjogMDtcclxuICBmb250LXdlaWdodDogNTAwO1xyXG4gIGZvbnQtc2l6ZTogMjBweDtcclxuICBsaW5lLWhlaWdodDogMS4yO1xyXG4gIGNvbG9yOiAjMjEyMTIxO1xyXG4gIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xyXG4gIG92ZXJmbG93OiBoaWRkZW47XHJcbiAgZGlzcGxheTogLXdlYmtpdC1ib3g7XHJcbiAgLXdlYmtpdC1saW5lLWNsYW1wOiAxO1xyXG4gIC13ZWJraXQtYm94LW9yaWVudDogdmVydGljYWw7XHJcbiAgbWF4LXdpZHRoOiAzNTNweDtcclxufVxyXG5cclxuLmNhcmRfX2RlbGV0ZS1idXR0b24ge1xyXG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTsgLyogaGF2aW5nIGFic29sdXRlIG1ha2VzIHN1cmUgZWFjaCBjYXJkIGhhcyBhIGJ1dHRvbiBhbmQgaW4gdGhlIGNvcnJlY3Qgc3BvdCovXHJcbiAgbWFyZ2luOiAxMHB4IDM3MXB4IDA7XHJcbiAgcGFkZGluZzogMDsgLyogY29udHJvbHMgc2l6ZSBvZiBzdmcgaSBndWVzcyAqL1xyXG4gIGJhY2tncm91bmQtaW1hZ2U6IHVybCguLi9pbWFnZXMvZGVsZXRlLWljb24uc3ZnKTtcclxuICBiYWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0OyAvKiB0aGlzIGFuZCBiZyBzaXplIGlzIGtlZXBpbmcgdGhlIGljb24gdHJ1ZSB0byBzaXplICovXHJcbiAgYmFja2dyb3VuZC1zaXplOiBjb250YWluO1xyXG4gIHdpZHRoOiAzMnB4OyAvKm1ha2VzIHN1cmUgc3ZnIGFjdHVhbGx5IHNob3dzICovXHJcbiAgaGVpZ2h0OiAzMnB4OyAvKnNhbWUgYXMgd2lkdGgqL1xyXG4gIGJvcmRlcjogbm9uZTtcclxuICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcclxuICBvcGFjaXR5OiAxMDAlO1xyXG4gIHRyYW5zaXRpb246IG9wYWNpdHkgMC41cztcclxuICBjdXJzb3I6IHBvaW50ZXI7XHJcbn1cclxuXHJcbi5jYXJkX19kZWxldGUtYnV0dG9uOmhvdmVyIHtcclxuICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoLi4vaW1hZ2VzL2RlbGV0ZS1pY29uLWhvdmVyLnN2Zyk7XHJcbn1cclxuXHJcbi5jYXJkX19saWtlLWJ1dHRvbiB7XHJcbiAgcGFkZGluZzogMDtcclxuICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoLi4vaW1hZ2VzL2xpa2VyZWFjdC5zdmcpO1xyXG4gIGJhY2tncm91bmQtcmVwZWF0OiBuby1yZXBlYXQ7IC8qIHRoaXMgYW5kIGJnIHNpemUgaXMga2VlcGluZyB0aGUgaWNvbiB0cnVlIHRvIHNpemUgKi9cclxuICBiYWNrZ3JvdW5kLXNpemU6IGNvbnRhaW47XHJcbiAgd2lkdGg6IDIzcHg7XHJcbiAgaGVpZ2h0OiAyMHB4O1xyXG4gIGJvcmRlcjogbm9uZTtcclxuICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcclxuICBvcGFjaXR5OiA0MCU7XHJcbiAgdHJhbnNpdGlvbjogb3BhY2l0eSAwLjVzO1xyXG4gIGN1cnNvcjogcG9pbnRlcjtcclxufVxyXG5cclxuLmNhcmRfX2xpa2UtYnV0dG9uOmhvdmVyIHtcclxuICBvcGFjaXR5OiAxMDAlO1xyXG59XHJcblxyXG4uY2FyZF9fbGlrZS1idXR0b25fbGlrZWQge1xyXG4gIGJhY2tncm91bmQtaW1hZ2U6IHVybCguLi9pbWFnZXMvbGlrRURyZWFjdC5zdmcpO1xyXG4gIG9wYWNpdHk6IDEwMCU7XHJcbn1cclxuXHJcbi5jYXJkX19saWtlLWJ1dHRvbl9saWtlZDpob3ZlciB7XHJcbiAgb3BhY2l0eTogNDAlO1xyXG59XHJcblxyXG5AbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA2MjdweCkge1xyXG4gIC5jYXJkIHtcclxuICAgIG1heC13aWR0aDogMjg4cHg7XHJcbiAgfVxyXG5cclxuICAuY2FyZF9faW1hZ2Uge1xyXG4gICAgd2lkdGg6IDI4OHB4O1xyXG4gICAgaGVpZ2h0OiAyODhweDtcclxuICB9XHJcblxyXG4gIC5jYXJkX190aXRsZSB7XHJcbiAgICBmb250LXNpemU6IDE2cHg7XHJcbiAgICBsaW5lLWhlaWdodDogMTtcclxuICAgIG1heC13aWR0aDogMjMxcHg7XHJcbiAgfVxyXG5cclxuICAuY2FyZF9fbGlrZS1idXR0b24ge1xyXG4gICAgd2lkdGg6IDIwcHg7XHJcbiAgICBoZWlnaHQ6IDE4cHg7XHJcbiAgfVxyXG5cclxuICAuY2FyZF9fZGVsZXRlLWJ1dHRvbiB7XHJcbiAgICBtYXJnaW46IDEwcHggMjQ2cHggMDtcclxuICB9XHJcbn1cclxuIiwiLmZvb3RlciB7XHJcbiAgYmFja2dyb3VuZC1jb2xvcjogI2ZjZjVlNTtcclxuICBtaW4taGVpZ2h0OiAwO1xyXG4gIHdpZHRoOiAxMDAlO1xyXG59XHJcblxyXG4uZm9vdGVyX19jb3B5cmlnaHQge1xyXG4gIG1hcmdpbjogYXV0bztcclxuICBwYWRkaW5nOiA2MHB4IDA7XHJcbiAgZm9udC13ZWlnaHQ6IDQwMDtcclxuICBsaW5lLWhlaWdodDogMTtcclxuICBmb250LXNpemU6IDE2cHg7XHJcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xyXG4gIGNvbG9yOiByZ2JhKDMzLCAzMywgMzMsIDAuNyk7XHJcbn1cclxuIiwiLyptb2RhbD1wb3B1cCBib3gqL1xyXG4ubW9kYWwge1xyXG4gIHBvc2l0aW9uOiBmaXhlZDtcclxuICB0b3A6IDA7XHJcbiAgbGVmdDogMDtcclxuICBib3R0b206IDA7XHJcbiAgcmlnaHQ6IDA7XHJcbiAgcGFkZGluZzogMCAxNnB4O1xyXG4gIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMCwgMCwgMCwgMC41KTtcclxuICAvKmRhcmtlbnMgYmFja2dyb3VuZCB3aGVuIGVkaXQgYnV0dG9uIGlzIGFjdGl2YXRlZCovXHJcbiAgZGlzcGxheTogZmxleDtcclxuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xyXG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XHJcbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XHJcbiAgdmlzaWJpbGl0eTogaGlkZGVuO1xyXG4gIC8qa2VlcHMgcG9wdXAgaGlkZGVuIHVudGlsIGFjdGl2YXRlZCovXHJcbiAgb3BhY2l0eTogMDtcclxuICB0cmFuc2l0aW9uOiB2aXNpYmlsaXR5IDAuM3MsIG9wYWNpdHkgMC4zcyBlYXNlLWluO1xyXG4gIHotaW5kZXg6IDM7XHJcbn1cclxuXHJcbi8qd2hlbiBlZGl0IGJ1dHRvbiBpcyBjbGlja2VkIHBvcCB1cCBzaG91bGQgaW5pdGlhdGUqL1xyXG4ubW9kYWxfb3BlbmVkIHtcclxuICB2aXNpYmlsaXR5OiB2aXNpYmxlO1xyXG4gIG9wYWNpdHk6IDEwMCU7XHJcbn1cclxuXHJcbi8qcG9wdXAgYm94Ki9cclxuLm1vZGFsX19jb250YWluZXIge1xyXG4gIGJhY2tncm91bmQ6ICNmZmY7XHJcbiAgcGFkZGluZzogMzJweCA1MHB4O1xyXG4gIG1heC13aWR0aDogNzMwcHg7XHJcbiAgd2lkdGg6IDEwMCU7IC8qc28gcG9wdXAgYm94IGlzIGFzIHdpZGUgYXMgZGVzaWduIGNhbGxzLiB3L28gaXQgYm94IGlzIHRvbyBzbWFsbCovXHJcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xyXG4gIGJveC1zaXppbmc6IGJvcmRlci1ib3g7IC8qc28gcGFkZGluZyBkb2VzbnQgYWRkIHRvIGNvbXBsZXRlIHNpemUqL1xyXG4gIGJvcmRlci1yYWRpdXM6IDhweDtcclxufVxyXG5cclxuLypwb3B1cCBmb3IgcHJldmlld2luZyBpbWFnZXMqL1xyXG4ubW9kYWxfX2NvbnRhaW5lcl90eXBlX3ByZXZpZXcge1xyXG4gIHBhZGRpbmc6IDA7XHJcbiAgZGlzcGxheTogZmxleDtcclxuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xyXG4gIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xyXG59XHJcblxyXG4vKmZvciBpbWFnZSBwcmV2aWV3Ki9cclxuLm1vZGFsX19pbWFnZSB7XHJcbiAgb2JqZWN0LWZpdDogY292ZXI7XHJcbiAgbWF4LXdpZHRoOiA4MHZ3O1xyXG4gIG1heC1oZWlnaHQ6IDgwdmg7XHJcbiAgYm9yZGVyOiBub25lO1xyXG4gIGJvcmRlci1yYWRpdXM6IDhweDtcclxufVxyXG5cclxuLypmb3IgaW1hZ2UgcHJldmlldyovXHJcbi5tb2RhbF9fY2FwdGlvbiB7XHJcbiAgbWFyZ2luOiA4cHggMCAwOyAvKiBidW1wZXIgYmV0d2VlbiBpbWFnZSBhbmQgdGV4dCAqL1xyXG4gIHBhZGRpbmc6IDEwcHg7XHJcbiAgd2lkdGg6IGZpdC1jb250ZW50O1xyXG4gIGRpc3BsYXk6IGZsZXg7XHJcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcclxuICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XHJcbiAgYm9yZGVyLXJhZGl1czogOHB4O1xyXG4gIGZvbnQtc2l6ZTogMjBweDtcclxuICBmb250LXdlaWdodDogNTAwO1xyXG4gIGxpbmUtaGVpZ2h0OiAxLjU7XHJcbiAgY29sb3I6ICNmZmY7XHJcbiAgYmFja2dyb3VuZC1jb2xvcjogIzIxMjEyMTtcclxufVxyXG5cclxuLypjbG9zZSBidXR0b24gZm9yIGFsbCBwb3B1cHMqL1xyXG4ubW9kYWxfX2Nsb3NlLWJ1dHRvbiB7XHJcbiAgcG9zaXRpb246IGFic29sdXRlO1xyXG4gIHRvcDogMzJweDtcclxuICByaWdodDogNTBweDtcclxuICB3aWR0aDogNDBweDtcclxuICBoZWlnaHQ6IDQwcHg7XHJcbiAgYmFja2dyb3VuZC1pbWFnZTogdXJsKC4uL2ltYWdlcy9jbG9zZWJ1dHRvbi5zdmcpO1xyXG4gIGJhY2tncm91bmQtcmVwZWF0OiBuby1yZXBlYXQ7IC8qIHRoaXMgYW5kIGJnIHNpemUgaXMga2VlcGluZyB0aGUgaWNvbiB0cnVlIHRvIHNpemUgKi9cclxuICBib3JkZXI6IG5vbmU7XHJcbiAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XHJcbiAgb3BhY2l0eTogNDAlO1xyXG4gIHRyYW5zaXRpb246IG9wYWNpdHkgMC41cztcclxuICBjdXJzb3I6IHBvaW50ZXI7XHJcbn1cclxuXHJcbi8qY2xvc2UgYnV0dG9uIGZvciBpbWFnZSBwcmV2aWV3Ki9cclxuLm1vZGFsX19jbG9zZS1idXR0b25fdHlwZV9wcmV2aWV3IHtcclxuICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoLi4vaW1hZ2VzL2Nsb3NlLWJ1dHRvbi1saWdodC5zdmcpO1xyXG4gIHRvcDogMDtcclxuICByaWdodDogLTUyLjVweDtcclxuICBvcGFjaXR5OiAxMDAlO1xyXG59XHJcblxyXG4ubW9kYWxfX2Nsb3NlLWJ1dHRvbjpob3ZlciB7XHJcbiAgb3BhY2l0eTogMTAwJTtcclxufVxyXG5cclxuLm1vZGFsX190aXRsZSB7XHJcbiAgbWFyZ2luOiAwIDAgMzJweDtcclxuICBmb250LXdlaWdodDogNTAwO1xyXG4gIGZvbnQtc2l6ZTogMzJweDtcclxuICBsaW5lLWhlaWdodDogMTtcclxuICBjb2xvcjogIzIxMjEyMTtcclxufVxyXG5cclxuLm1vZGFsX19sYWJlbCB7XHJcbiAgbWFyZ2luLWJvdHRvbTogMzJweDtcclxuICBkaXNwbGF5OiBmbGV4O1xyXG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XHJcbiAgZ2FwOiA4cHg7XHJcbiAgZm9udC13ZWlnaHQ6IDUwMDtcclxuICBmb250LXNpemU6IDE2cHg7XHJcbiAgbGluZS1oZWlnaHQ6IDEuNztcclxuICBjb2xvcjogIzIxMjEyMTtcclxuICBvcGFjaXR5OiA3MCU7XHJcbn1cclxuXHJcbi5tb2RhbF9faW5wdXQge1xyXG4gIHBhZGRpbmc6IDE2cHggMTJweCAxNnB4O1xyXG4gIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xyXG4gIGJvcmRlci1jb2xvcjogcmdiYSgwLCAwLCAwLCAwLjQpO1xyXG4gIGZvbnQtd2VpZ2h0OiA1MDA7XHJcbiAgZm9udC1zaXplOiAyMHB4O1xyXG4gIGxpbmUtaGVpZ2h0OiAxO1xyXG4gIGNvbG9yOiAjMjEyMTIxO1xyXG4gIHRyYW5zaXRpb246IGJvcmRlci1jb2xvciAwLjVzO1xyXG4gIGJvcmRlci1yYWRpdXM6IDhweDtcclxuICBjdXJzb3I6IHBvaW50ZXI7XHJcbn1cclxuXHJcbi5tb2RhbF9faW5wdXQ6aG92ZXIge1xyXG4gIGJvcmRlci1jb2xvcjogIzAwMDtcclxufVxyXG5cclxuLm1vZGFsX19pbnB1dF90eXBlX2Vycm9yIHtcclxuICBib3JkZXI6IDFweCBzb2xpZCByZ2JhKDI1NSwgMCwgMCwgMC42KTtcclxufVxyXG5cclxuLm1vZGFsX19lcnJvciB7XHJcbiAgZGlzcGxheTogYmxvY2s7XHJcbiAgbGluZS1oZWlnaHQ6IDEuMTtcclxuICBjb2xvcjogcmdiYSgyNTUsIDAsIDAsIDAuNyk7XHJcbn1cclxuXHJcbi5tb2RhbF9fc3VibWl0LWJ1dHRvbiB7XHJcbiAgd2lkdGg6IDE1NnB4O1xyXG4gIHBhZGRpbmc6IDE4cHggMDtcclxuICBib3JkZXI6IG5vbmU7XHJcbiAgYm9yZGVyLXJhZGl1czogOHB4O1xyXG4gIGZvbnQtd2VpZ2h0OiA1MDA7XHJcbiAgbGluZS1oZWlnaHQ6IDE7XHJcbiAgY29sb3I6ICNmY2Y1ZTU7XHJcbiAgYmFja2dyb3VuZC1jb2xvcjogIzIxMjEyMTtcclxuICB0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kLWNvbG9yIDAuNXM7XHJcbiAgY3Vyc29yOiBwb2ludGVyO1xyXG59XHJcblxyXG4ubW9kYWxfX3N1Ym1pdC1idXR0b246aG92ZXIge1xyXG4gIGJhY2tncm91bmQtY29sb3I6IHJnYmEoXHJcbiAgICAzMyxcclxuICAgIDMzLFxyXG4gICAgMzMsXHJcbiAgICAwLjhcclxuICApOyAvKmNoYW5nZXMgYnV0dG9uIGNvbG9yIGR1cmluZyBob3Zlci4gbm8gaWRlYSB3aHkgaXQga2VlcHMgZm9ybWF0dGluZyB0byB0aGlzIG5vbnNlbnNlICovXHJcbn1cclxuXHJcbi5tb2RhbF9fc3VibWl0LWJ1dHRvbl9kaXNhYmxlZCB7XHJcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgzMywgMzMsIDMzLCAwLjMpO1xyXG4gIGN1cnNvcjogbm90LWFsbG93ZWQ7XHJcbn1cclxuXHJcbi8qLS0tLS0tLW1vZGFsIGZvciBEZWxldGluZyBpbWFnZS0tLS0tLS0tLS0qL1xyXG5cclxuLypjb250YWlucyBkZWxldGUgbW9kYWwqL1xyXG4ubW9kYWxfX2NvbnRhaW5lcl90eXBlX2RlbGV0ZSB7XHJcbiAgcGFkZGluZzogMDtcclxuICBtYXgtd2lkdGg6IDYzMHB4O1xyXG4gIGRpc3BsYXk6IGZsZXg7XHJcbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcclxuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmO1xyXG59XHJcblxyXG4ubW9kYWxfX2Nsb3NlLWJ1dHRvbl90eXBlX2RlbGV0ZSB7XHJcbiAgYmFja2dyb3VuZC1pbWFnZTogdXJsKC4uL2ltYWdlcy9jbG9zZS1idXR0b24tbGlnaHQuc3ZnKTtcclxuICByaWdodDogLTUwcHg7XHJcbiAgdG9wOiAwO1xyXG59XHJcblxyXG4ubW9kYWxfX2Nsb3NlLWJ1dHRvbl90eXBlX2RlbGV0ZTpob3ZlciB7XHJcbiAgb3BhY2l0eTogMTAwJTtcclxufVxyXG5cclxuLm1vZGFsX190aXRsZV90eXBlX2RlbGV0ZSB7XHJcbiAgbWFyZ2luLXRvcDogMzJweDtcclxuICBmb250LXNpemU6IDI0cHg7XHJcbiAgbGluZS1oZWlnaHQ6IDE7XHJcbiAgZGlzcGxheTogZmxleDtcclxuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcclxufVxyXG5cclxuLypjb250YWlucyBib3RoIGJ1dHRvbnMqL1xyXG4ubW9kYWxfX2J1dHRvbi1jb250YWluZXIge1xyXG4gIGRpc3BsYXk6IGZsZXg7XHJcbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XHJcbn1cclxuXHJcbi5tb2RhbF9fc3VibWl0LWJ1dHRvbl90eXBlX2RlbGV0ZSB7XHJcbiAgbWFyZ2luLWJvdHRvbTogMzJweDtcclxuICBtYXJnaW4tcmlnaHQ6IDEwcHg7XHJcbiAgd2lkdGg6IDE1NnB4O1xyXG4gIHBhZGRpbmc6IDE4cHggNTJweDtcclxuICBib3JkZXI6IG5vbmU7XHJcbiAgYm9yZGVyLXJhZGl1czogOHB4O1xyXG4gIGZvbnQtd2VpZ2h0OiA1MDA7XHJcbiAgbGluZS1oZWlnaHQ6IDE7XHJcbiAgY29sb3I6ICMyMTIxMjE7XHJcbiAgYmFja2dyb3VuZC1jb2xvcjogI2ZmNjU2NTtcclxuICB0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kLWNvbG9yIDAuNXM7XHJcbiAgY3Vyc29yOiBwb2ludGVyO1xyXG59XHJcblxyXG4ubW9kYWxfX3N1Ym1pdC1idXR0b25fdHlwZV9kZWxldGU6aG92ZXIge1xyXG4gIGJhY2tncm91bmQtY29sb3I6ICNmZjMzMzM7XHJcbn1cclxuXHJcbi5tb2RhbF9fY2FuY2VsLWJ1dHRvbiB7XHJcbiAgbWFyZ2luLWJvdHRvbTogMzJweDtcclxuICBtYXJnaW4tbGVmdDogMTBweDtcclxuICB3aWR0aDogMTU2cHg7XHJcbiAgcGFkZGluZzogMThweCA1MnB4O1xyXG4gIGJvcmRlcjogbm9uZTtcclxuICBib3JkZXItcmFkaXVzOiA4cHg7XHJcbiAgZm9udC13ZWlnaHQ6IDUwMDtcclxuICBsaW5lLWhlaWdodDogMTtcclxuICBjb2xvcjogIzIxMjEyMTtcclxuICBib3JkZXI6IDFweCBzb2xpZCAjMjEyMTIxO1xyXG4gIC8qIGJvcmRlcjogMXB4IHNvbGlkIHJnYmEoMCwgMCwgMCwgMC40KTsgKi9cclxuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmO1xyXG4gIHRyYW5zaXRpb246IGJhY2tncm91bmQtY29sb3IgMC41cztcclxuICBjdXJzb3I6IHBvaW50ZXI7XHJcbn1cclxuXHJcbi5tb2RhbF9fY2FuY2VsLWJ1dHRvbjpob3ZlciB7XHJcbiAgYmFja2dyb3VuZC1jb2xvcjogIzIxMjEyMTtcclxuICBjb2xvcjogI2ZmZjtcclxufVxyXG5cclxuQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogNjI3cHgpIHtcclxuICAubW9kYWwge1xyXG4gICAgcGFkZGluZzogMCAxMHB4O1xyXG4gIH1cclxuXHJcbiAgLm1vZGFsX19jb250YWluZXIge1xyXG4gICAgcGFkZGluZzogMTJweDtcclxuICB9XHJcblxyXG4gIC5tb2RhbF9fY29udGFpbmVyX3R5cGVfcHJldmlldyB7XHJcbiAgICBtYXJnaW46IDAgYXV0bzsgLyogQ2VudGVyIHRoZSBtb2RhbCBjb250ZW50ICovXHJcbiAgICBwYWRkaW5nOiAwO1xyXG4gICAgd2lkdGg6IDEwMCU7XHJcbiAgICBtYXgtd2lkdGg6IDI4OHB4O1xyXG4gIH1cclxuXHJcbiAgLm1vZGFsX19pbWFnZSB7XHJcbiAgICB3aWR0aDogMTAwJTtcclxuICAgIG1heC13aWR0aDogMTAwJTtcclxuICAgIG1pbi13aWR0aDogMTAwJTtcclxuICB9XHJcblxyXG4gIC5tb2RhbF9fdGl0bGUge1xyXG4gICAgZm9udC1zaXplOiAyMHB4O1xyXG4gICAgbWFyZ2luOiAxMHB4IDAgMzRweDtcclxuICB9XHJcblxyXG4gIC5tb2RhbF9fY2xvc2UtYnV0dG9uIHtcclxuICAgIHRvcDogMTJweDtcclxuICAgIHJpZ2h0OiAxMnB4O1xyXG4gIH1cclxuXHJcbiAgLm1vZGFsX19jbG9zZS1idXR0b25fdHlwZV9wcmV2aWV3IHtcclxuICAgIHRvcDogLTQ3cHg7XHJcbiAgICByaWdodDogMTVweDtcclxuICB9XHJcblxyXG4gIC5tb2RhbF9fbGFiZWwge1xyXG4gICAgbWFyZ2luLWJvdHRvbTogMjRweDtcclxuICB9XHJcblxyXG4gIC5tb2RhbF9faW5wdXQge1xyXG4gICAgZm9udC1zaXplOiAxNnB4O1xyXG4gIH1cclxuXHJcbiAgLm1vZGFsX19zdWJtaXQtYnV0dG9uIHtcclxuICAgIHdpZHRoOiAxMDAlO1xyXG4gIH1cclxuXHJcbiAgLm1vZGFsX19jYXB0aW9uIHtcclxuICAgIGZvbnQtc2l6ZTogMTZweDtcclxuICAgIGxpbmUtaGVpZ2h0OiAxLjI7XHJcbiAgfVxyXG4gICNkZWxldGUtZm9ybSB7XHJcbiAgICB3aWR0aDogMTAwJTtcclxuICAgIGRpc3BsYXk6IGZsZXg7XHJcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xyXG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjsgLyogQWRkIHRoaXMgdG8gY2VudGVyIHRoZSBidXR0b25zICovXHJcbiAgfVxyXG5cclxuICAubW9kYWxfX3RpdGxlX3R5cGVfZGVsZXRlIHtcclxuICAgIG1hcmdpbjogMCAwIDIwcHg7XHJcbiAgICBmb250LXNpemU6IDIwcHg7XHJcbiAgICBsaW5lLWhlaWdodDogMS4yO1xyXG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xyXG4gICAgd2lkdGg6IDEwMCU7XHJcbiAgfVxyXG5cclxuICAubW9kYWxfX2J1dHRvbi1jb250YWluZXIge1xyXG4gICAgd2lkdGg6IDEwMCU7XHJcbiAgICBkaXNwbGF5OiBmbGV4O1xyXG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcclxuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7IC8qIEFkZCB0aGlzIHRvIGNlbnRlciB0aGUgY29udGFpbmVyICovXHJcbiAgfVxyXG5cclxuICAubW9kYWxfX3N1Ym1pdC1idXR0b25fdHlwZV9kZWxldGUge1xyXG4gICAgbWFyZ2luOiAwIDAgMTJweDtcclxuICAgIHdpZHRoOiAxNTZweDtcclxuICB9XHJcblxyXG4gIC5tb2RhbF9fY2FuY2VsLWJ1dHRvbiB7XHJcbiAgICBtYXJnaW46IDA7XHJcbiAgICB3aWR0aDogMTU2cHg7XHJcbiAgfVxyXG5cclxuICAubW9kYWxfX2Nsb3NlLWJ1dHRvbl90eXBlX2RlbGV0ZSB7XHJcbiAgICB0b3A6IC01MHB4O1xyXG4gICAgcmlnaHQ6IDNweDtcclxuICB9XHJcbn1cclxuIl0sIm5hbWVzIjpbXSwic291cmNlUm9vdCI6IiJ9*/ \ No newline at end of file +/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWFpbi5jc3MiLCJtYXBwaW5ncyI6IkFBQUEsMkVBQTJFOztBQUUzRTsrRUFDK0U7O0FBRS9FOzs7RUFHRTs7QUFFRjtFQUNFLGlCQUFpQixFQUFFLE1BQU07RUFDekIsOEJBQThCLEVBQUUsTUFBTTtBQUN4Qzs7QUFFQTsrRUFDK0U7O0FBRS9FOztFQUVFOztBQUVGO0VBQ0UsU0FBUztBQUNYOztBQUVBOztFQUVFOztBQUVGO0VBQ0UsY0FBYztBQUNoQjs7QUFFQTs7O0VBR0U7O0FBRUY7RUFDRSxjQUFjO0VBQ2QsZ0JBQWdCO0FBQ2xCOztBQUVBOytFQUMrRTs7QUFFL0U7OztFQUdFOztBQUVGO0VBQ0UsdUJBQXVCLEVBQUUsTUFBTTtFQUMvQixTQUFTLEVBQUUsTUFBTTtFQUNqQixpQkFBaUIsRUFBRSxNQUFNO0FBQzNCOztBQUVBOzs7RUFHRTs7QUFFRjtFQUNFLGlDQUFpQyxFQUFFLE1BQU07RUFDekMsY0FBYyxFQUFFLE1BQU07QUFDeEI7O0FBRUE7K0VBQytFOztBQUUvRTs7RUFFRTs7QUFFRjtFQUNFLDZCQUE2QjtBQUMvQjs7QUFFQTs7O0VBR0U7O0FBRUY7RUFDRSxtQkFBbUIsRUFBRSxNQUFNO0VBQzNCLDBCQUEwQixFQUFFLE1BQU07RUFDbEMsaUNBQWlDLEVBQUUsTUFBTTtBQUMzQzs7QUFFQTs7RUFFRTs7QUFFRjs7RUFFRSxtQkFBbUI7QUFDckI7O0FBRUE7OztFQUdFOztBQUVGOzs7RUFHRSxpQ0FBaUMsRUFBRSxNQUFNO0VBQ3pDLGNBQWMsRUFBRSxNQUFNO0FBQ3hCOztBQUVBOztFQUVFOztBQUVGO0VBQ0UsY0FBYztBQUNoQjs7QUFFQTs7O0VBR0U7O0FBRUY7O0VBRUUsY0FBYztFQUNkLGNBQWM7RUFDZCxrQkFBa0I7RUFDbEIsd0JBQXdCO0FBQzFCOztBQUVBO0VBQ0UsZUFBZTtBQUNqQjs7QUFFQTtFQUNFLFdBQVc7QUFDYjs7QUFFQTsrRUFDK0U7O0FBRS9FOztFQUVFOztBQUVGO0VBQ0Usa0JBQWtCO0FBQ3BCOztBQUVBOytFQUMrRTs7QUFFL0U7OztFQUdFOztBQUVGOzs7OztFQUtFLG9CQUFvQixFQUFFLE1BQU07RUFDNUIsZUFBZSxFQUFFLE1BQU07RUFDdkIsaUJBQWlCLEVBQUUsTUFBTTtFQUN6QixTQUFTLEVBQUUsTUFBTTtBQUNuQjs7QUFFQTs7O0VBR0U7O0FBRUY7O0VBRUUsTUFBTTtFQUNOLGlCQUFpQjtBQUNuQjs7QUFFQTs7O0VBR0U7O0FBRUY7O0VBRUUsTUFBTTtFQUNOLG9CQUFvQjtBQUN0Qjs7QUFFQTs7RUFFRTs7QUFFRjs7OztFQUlFLDBCQUEwQjtBQUM1Qjs7QUFFQTs7RUFFRTs7QUFFRjs7OztFQUlFLGtCQUFrQjtFQUNsQixVQUFVO0FBQ1o7O0FBRUE7O0VBRUU7O0FBRUY7Ozs7RUFJRSw4QkFBOEI7QUFDaEM7O0FBRUE7O0VBRUU7O0FBRUY7RUFDRSw4QkFBOEI7QUFDaEM7O0FBRUE7Ozs7O0VBS0U7O0FBRUY7RUFDRSxzQkFBc0IsRUFBRSxNQUFNO0VBQzlCLGNBQWMsRUFBRSxNQUFNO0VBQ3RCLGNBQWMsRUFBRSxNQUFNO0VBQ3RCLGVBQWUsRUFBRSxNQUFNO0VBQ3ZCLFVBQVUsRUFBRSxNQUFNO0VBQ2xCLG1CQUFtQixFQUFFLE1BQU07QUFDN0I7O0FBRUE7O0VBRUU7O0FBRUY7RUFDRSx3QkFBd0I7QUFDMUI7O0FBRUE7O0VBRUU7O0FBRUY7RUFDRSxjQUFjO0FBQ2hCOztBQUVBOzs7RUFHRTs7QUFFRjs7RUFFRSxzQkFBc0IsRUFBRSxNQUFNO0VBQzlCLFVBQVUsRUFBRSxNQUFNO0FBQ3BCOztBQUVBOztFQUVFOztBQUVGOztFQUVFLFlBQVk7QUFDZDs7QUFFQTs7O0VBR0U7O0FBRUY7RUFDRSw2QkFBNkIsRUFBRSxNQUFNO0VBQ3JDLG9CQUFvQixFQUFFLE1BQU07QUFDOUI7O0FBRUE7O0VBRUU7O0FBRUY7RUFDRSx3QkFBd0I7QUFDMUI7O0FBRUE7OztFQUdFOztBQUVGO0VBQ0UsMEJBQTBCLEVBQUUsTUFBTTtFQUNsQyxhQUFhLEVBQUUsTUFBTTtBQUN2Qjs7QUFFQTsrRUFDK0U7O0FBRS9FOztFQUVFOztBQUVGO0VBQ0UsY0FBYztBQUNoQjs7QUFFQTs7RUFFRTs7QUFFRjtFQUNFLGtCQUFrQjtBQUNwQjs7QUFFQTsrRUFDK0U7O0FBRS9FOztFQUVFOztBQUVGO0VBQ0UsYUFBYTtBQUNmOztBQUVBOztFQUVFOztBQUVGO0VBQ0UsYUFBYTtBQUNmOztBQzlWQTtFQUNFLHNCQUFzQjtFQUN0QixrQkFBa0I7RUFDbEIsZ0JBQWdCO0VBQ2hCLCtEQUFrRTtBQUNwRTtBQUNBO0VBQ0Usc0JBQXNCO0VBQ3RCLGtCQUFrQjtFQUNsQixnQkFBZ0I7RUFDaEIsK0RBQWlFO0FBQ25FOztBQ1hBO0VBQ0UseUJBQXlCLEVBQUUsaURBQWlEO0VBQzVFLG9EQUFvRDtBQUN0RDs7QUFFQSwyREFBMkQ7QUFDM0Q7RUFDRSxVQUFVO0VBQ1YsWUFBWSxFQUFFLGdDQUFnQztFQUM5QyxpQkFBaUI7QUFDbkI7O0FBRUE7RUFDRSxpQkFBaUIsRUFBRSwrQ0FBK0M7RUFDbEUsY0FBYyxFQUFFLGlEQUFpRDtBQUNuRTs7QUNmQTtFQUNFLGVBQWUsRUFBRSwyQkFBMkI7RUFDNUMsc0JBQXNCO0VBQ3RCLGFBQWE7RUFDYix1QkFBdUIsRUFBRSxzQkFBc0I7RUFDL0MsbUJBQW1CLEVBQUUsc0JBQXNCO0FBQzdDOztBQUVBO0VBQ0UsV0FBVztFQUNYLFlBQVk7QUFDZDs7QUNYQTtFQUNFLGFBQWE7RUFDYixvQkFBb0IsRUFBRSw0QkFBNEI7RUFDbEQsOENBQThDO0VBQzlDLHVCQUF1QjtBQUN6Qjs7QUFFQSxpREFBaUQ7QUFDakQ7RUFDRSxrQkFBa0I7RUFDbEIsY0FBYztFQUNkLGFBQWE7RUFDYixlQUFlO0FBQ2pCOztBQUVBO0VBQ0Usa0JBQWtCO0VBQ2xCLE1BQU07RUFDTixPQUFPO0VBQ1AsV0FBVztFQUNYLFlBQVk7RUFDWixVQUFVLEVBQUUsc0JBQXNCO0VBQ2xDOzs7OztHQUtDLEVBQUUsb0RBQW9EO0FBQ3pEOztBQUVBO0VBQ0UsVUFBVSxFQUFFLDBCQUEwQjtBQUN4Qzs7QUFFQSxpQkFBaUI7QUFDakI7RUFDRSxrQkFBa0I7RUFDbEIsYUFBYTtFQUNiLFlBQVk7RUFDWixrQkFBa0I7RUFDbEIsVUFBVTtBQUNaOztBQUVBLHVCQUF1QjtBQUN2QjtFQUNFLGtCQUFrQjtFQUNsQixrQkFBa0IsRUFBRSxnREFBZ0Q7RUFDcEUsU0FBUztFQUNULFNBQVM7RUFDVCwyQkFBMkI7RUFDM0IsYUFBYSxFQUFFLHlCQUF5QjtFQUN4QyxRQUFRLEVBQUUsZ0NBQWdDO0VBQzFDLG1CQUFtQjtFQUNuQixtQkFBbUIsRUFBRSwyQkFBMkI7RUFDaEQsZ0JBQWdCO0VBQ2hCLGNBQWM7RUFDZCw2QkFBNkI7RUFDN0IsWUFBWTtFQUNaLFdBQVc7RUFDWCxVQUFVO0VBQ1YsVUFBVTtFQUNWLGVBQWU7QUFDakI7O0FBRUE7RUFDRSxVQUFVLEVBQUUsK0NBQStDO0FBQzdEOztBQUVBLGlEQUFpRDtBQUNqRDtFQUNFLGFBQWE7RUFDYixzQkFBc0I7QUFDeEI7O0FBRUE7RUFDRSxnQkFBZ0IsRUFBRSx1Q0FBdUM7RUFDekQsZ0JBQWdCO0VBQ2hCLGVBQWU7RUFDZixjQUFjO0VBQ2QsY0FBYztFQUNkLHVCQUF1QjtFQUN2QixnQkFBZ0I7RUFDaEIsb0JBQW9CO0VBQ3BCLHFCQUFxQjtFQUNyQixhQUFhO0VBQ2IsNEJBQTRCO0VBQzVCLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLFNBQVM7RUFDVCxVQUFVO0VBQ1YsZ0JBQWdCO0VBQ2hCLGNBQWM7RUFDZCw0QkFBNEI7RUFDNUIsb0JBQW9CO0VBQ3BCLDRCQUE0QjtFQUM1QixxQkFBcUI7RUFDckIsYUFBYTtFQUNiLGdCQUFnQjtFQUNoQix1QkFBdUI7RUFDdkIsZ0JBQWdCO0FBQ2xCOztBQUVBO0VBQ0UsZ0JBQWdCLEVBQUUsbUhBQW1IO0VBQ3JJLFVBQVUsRUFBRSxtQ0FBbUM7RUFDL0Msa0JBQWtCLEVBQUUsMERBQTBEO0VBQzlFLGFBQWEsRUFBRSwrRUFBK0U7RUFDOUYsUUFBUTtFQUNSLGdCQUFnQjtFQUNoQixjQUFjO0VBQ2QsNkJBQTZCO0VBQzdCLFlBQVk7RUFDWixjQUFjO0VBQ2QsWUFBWTtFQUNaLHdCQUF3QjtFQUN4QixlQUFlO0FBQ2pCOztBQUVBO0VBQ0UsYUFBYSxFQUFFLHdEQUF3RDtBQUN6RTs7QUFFQTtFQUNFLGlCQUFpQixFQUFFLGdDQUFnQztFQUNuRCxnQkFBZ0IsRUFBRSw2QkFBNkI7RUFDL0MsVUFBVTtFQUNWLGFBQWEsRUFBRSwyQkFBMkI7RUFDMUMsdUJBQXVCLEVBQUUsK0JBQStCO0VBQ3hELG1CQUFtQixFQUFFLDZCQUE2QjtFQUNsRCxRQUFRO0VBQ1IsWUFBWTtFQUNaLFlBQVk7RUFDWixZQUFZO0VBQ1osa0JBQWtCO0VBQ2xCLGdCQUFnQjtFQUNoQixjQUFjO0VBQ2QsY0FBYztFQUNkLHlCQUF5QjtFQUN6QixpQ0FBaUM7RUFDakMsZUFBZTtBQUNqQjs7QUFFQTtFQUNFOzs7OztHQUtDLEVBQUUscUNBQXFDO0FBQzFDOztBQUVBO0VBQ0U7SUFDRSxzQkFBc0I7SUFDdEIsZ0JBQWdCO0lBQ2hCLG1CQUFtQjtJQUNuQixrQkFBa0I7SUFDbEIsaUJBQWlCO0VBQ25COztFQUVBO0lBQ0UsWUFBWTtJQUNaLFdBQVc7SUFDWCxlQUFlO0VBQ2pCOztFQUVBO0lBQ0UsZ0JBQWdCO0lBQ2hCLFlBQVk7SUFDWixXQUFXO0VBQ2I7O0VBRUE7SUFDRSxVQUFVLEVBQUUsMEJBQTBCO0VBQ3hDOztFQUVBO0lBQ0UscUJBQXFCO0lBQ3JCLGdCQUFnQjtJQUNoQixlQUFlO0lBQ2YsY0FBYztJQUNkLFVBQVU7SUFDVixTQUFTO0lBQ1QsVUFBVTtJQUNWLFlBQVk7SUFDWixZQUFZO0lBQ1osa0JBQWtCO0lBQ2xCLHVDQUF1QztJQUN2QyxlQUFlO0VBQ2pCOztFQUVBO0lBQ0UsZUFBZTtJQUNmLGVBQWU7SUFDZixnQkFBZ0I7RUFDbEI7O0VBRUE7SUFDRSxnQkFBZ0I7RUFDbEI7O0VBRUE7SUFDRSxnQkFBZ0I7SUFDaEIsZ0JBQWdCO0VBQ2xCOztFQUVBO0lBQ0UsWUFBWSxFQUFFLG1DQUFtQztFQUNuRDs7RUFFQTtJQUNFLFdBQVcsRUFBRSx5QkFBeUI7RUFDeEM7QUFDRjs7QUN2TkE7RUFDRSx3RUFBd0U7RUFDeEUsU0FBUztFQUNULGVBQWU7RUFDZix5QkFBeUIsRUFBRSxrREFBa0Q7QUFDL0U7O0FBRUE7RUFDRTtJQUNFLGVBQWU7RUFDakI7QUFDRjs7QUNYQTtFQUNFLG9CQUFvQixFQUFFLDZDQUE2QztFQUNuRSw4Q0FBOEM7QUFDaEQ7O0FBRUE7RUFDRSxTQUFTO0VBQ1QsVUFBVTtFQUNWLHFCQUFxQjtFQUNyQixhQUFhO0VBQ2IsY0FBYyxFQUFFLHFCQUFxQjtFQUNyQyw4Q0FBOEM7RUFDOUMsdUJBQXVCO0FBQ3pCOztBQUVBO0VBQ0U7SUFDRSxvQkFBb0I7RUFDdEI7O0VBRUE7SUFDRSw4Q0FBOEM7SUFDOUMsY0FBYztFQUNoQjtBQUNGOztBQ3hCQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLFlBQVksRUFBRSw0Q0FBNEM7RUFDMUQsYUFBYTtFQUNiLGtCQUFrQjtFQUNsQixpQkFBaUIsRUFBRSw4QkFBOEI7RUFDakQsZUFBZTtBQUNqQjs7QUFFQTtFQUNFLGdCQUFnQixFQUFFLGtDQUFrQztFQUNwRCxhQUFhO0VBQ2IsbUJBQW1CO0VBQ25CLDhCQUE4QjtFQUM5QixtQkFBbUI7QUFDckI7O0FBRUE7RUFDRSxTQUFTO0VBQ1QsZ0JBQWdCO0VBQ2hCLGVBQWU7RUFDZixnQkFBZ0I7RUFDaEIsY0FBYztFQUNkLHVCQUF1QjtFQUN2QixnQkFBZ0I7RUFDaEIsb0JBQW9CO0VBQ3BCLHFCQUFxQjtFQUNyQiw0QkFBNEI7RUFDNUIsZ0JBQWdCO0FBQ2xCOztBQUVBO0VBQ0Usa0JBQWtCLEVBQUUsNkVBQTZFO0VBQ2pHLG9CQUFvQjtFQUNwQixVQUFVLEVBQUUsaUNBQWlDO0VBQzdDLHlEQUFnRDtFQUNoRCw0QkFBNEIsRUFBRSxzREFBc0Q7RUFDcEYsd0JBQXdCO0VBQ3hCLFdBQVcsRUFBRSxpQ0FBaUM7RUFDOUMsWUFBWSxFQUFFLGdCQUFnQjtFQUM5QixZQUFZO0VBQ1osNkJBQTZCO0VBQzdCLGFBQWE7RUFDYix3QkFBd0I7RUFDeEIsZUFBZTtBQUNqQjs7QUFFQTtFQUNFLHlEQUFzRDtBQUN4RDs7QUFFQTtFQUNFLFVBQVU7RUFDVix5REFBOEM7RUFDOUMsNEJBQTRCLEVBQUUsc0RBQXNEO0VBQ3BGLHdCQUF3QjtFQUN4QixXQUFXO0VBQ1gsWUFBWTtFQUNaLFlBQVk7RUFDWiw2QkFBNkI7RUFDN0IsWUFBWTtFQUNaLHdCQUF3QjtFQUN4QixlQUFlO0FBQ2pCOztBQUVBO0VBQ0UsYUFBYTtBQUNmOztBQUVBO0VBQ0UseURBQStDO0VBQy9DLGFBQWE7QUFDZjs7QUFFQTtFQUNFLFlBQVk7QUFDZDs7QUFFQTtFQUNFO0lBQ0UsZ0JBQWdCO0VBQ2xCOztFQUVBO0lBQ0UsWUFBWTtJQUNaLGFBQWE7RUFDZjs7RUFFQTtJQUNFLGVBQWU7SUFDZixjQUFjO0lBQ2QsZ0JBQWdCO0VBQ2xCOztFQUVBO0lBQ0UsV0FBVztJQUNYLFlBQVk7RUFDZDs7RUFFQTtJQUNFLG9CQUFvQjtFQUN0QjtBQUNGOztBQ3pHQTtFQUNFLHlCQUF5QjtFQUN6QixhQUFhO0VBQ2IsV0FBVztBQUNiOztBQUVBO0VBQ0UsWUFBWTtFQUNaLGVBQWU7RUFDZixnQkFBZ0I7RUFDaEIsY0FBYztFQUNkLGVBQWU7RUFDZixrQkFBa0I7RUFDbEIsNEJBQTRCO0FBQzlCOztBQ2RBLGtCQUFrQjtBQUNsQjtFQUNFLGVBQWU7RUFDZixNQUFNO0VBQ04sT0FBTztFQUNQLFNBQVM7RUFDVCxRQUFRO0VBQ1IsZUFBZTtFQUNmLG9DQUFvQztFQUNwQyxtREFBbUQ7RUFDbkQsYUFBYTtFQUNiLHNCQUFzQjtFQUN0QixtQkFBbUI7RUFDbkIsdUJBQXVCO0VBQ3ZCLGtCQUFrQjtFQUNsQixxQ0FBcUM7RUFDckMsVUFBVTtFQUNWLGlEQUFpRDtFQUNqRCxVQUFVO0FBQ1o7O0FBRUEscURBQXFEO0FBQ3JEO0VBQ0UsbUJBQW1CO0VBQ25CLGFBQWE7QUFDZjs7QUFFQSxZQUFZO0FBQ1o7RUFDRSxnQkFBZ0I7RUFDaEIsa0JBQWtCO0VBQ2xCLGdCQUFnQjtFQUNoQixXQUFXLEVBQUUsbUVBQW1FO0VBQ2hGLGtCQUFrQjtFQUNsQixzQkFBc0IsRUFBRSx5Q0FBeUM7RUFDakUsa0JBQWtCO0FBQ3BCOztBQUVBLDhCQUE4QjtBQUM5QjtFQUNFLFVBQVU7RUFDVixhQUFhO0VBQ2Isc0JBQXNCO0VBQ3RCLDZCQUE2QjtBQUMvQjs7QUFFQSxvQkFBb0I7QUFDcEI7RUFDRSxpQkFBaUI7RUFDakIsZUFBZTtFQUNmLGdCQUFnQjtFQUNoQixZQUFZO0VBQ1osa0JBQWtCO0FBQ3BCOztBQUVBLG9CQUFvQjtBQUNwQjtFQUNFLGVBQWUsRUFBRSxrQ0FBa0M7RUFDbkQsYUFBYTtFQUNiLGtCQUFrQjtFQUNsQixhQUFhO0VBQ2IsbUJBQW1CO0VBQ25CLDhCQUE4QjtFQUM5QixrQkFBa0I7RUFDbEIsZUFBZTtFQUNmLGdCQUFnQjtFQUNoQixnQkFBZ0I7RUFDaEIsV0FBVztFQUNYLHlCQUF5QjtBQUMzQjs7QUFFQSw4QkFBOEI7QUFDOUI7RUFDRSxrQkFBa0I7RUFDbEIsU0FBUztFQUNULFdBQVc7RUFDWCxXQUFXO0VBQ1gsWUFBWTtFQUNaLHlEQUFnRDtFQUNoRCw0QkFBNEIsRUFBRSxzREFBc0Q7RUFDcEYsWUFBWTtFQUNaLDZCQUE2QjtFQUM3QixZQUFZO0VBQ1osd0JBQXdCO0VBQ3hCLGVBQWU7QUFDakI7O0FBRUEsaUNBQWlDO0FBQ2pDO0VBQ0UseURBQXVEO0VBQ3ZELE1BQU07RUFDTixjQUFjO0VBQ2QsYUFBYTtBQUNmOztBQUVBO0VBQ0UsYUFBYTtBQUNmOztBQUVBO0VBQ0UsZ0JBQWdCO0VBQ2hCLGdCQUFnQjtFQUNoQixlQUFlO0VBQ2YsY0FBYztFQUNkLGNBQWM7QUFDaEI7O0FBRUE7RUFDRSxtQkFBbUI7RUFDbkIsYUFBYTtFQUNiLHNCQUFzQjtFQUN0QixRQUFRO0VBQ1IsZ0JBQWdCO0VBQ2hCLGVBQWU7RUFDZixnQkFBZ0I7RUFDaEIsY0FBYztFQUNkLFlBQVk7QUFDZDs7QUFFQTtFQUNFLHVCQUF1QjtFQUN2Qiw2QkFBNkI7RUFDN0IsZ0NBQWdDO0VBQ2hDLGdCQUFnQjtFQUNoQixlQUFlO0VBQ2YsY0FBYztFQUNkLGNBQWM7RUFDZCw2QkFBNkI7RUFDN0Isa0JBQWtCO0VBQ2xCLGVBQWU7QUFDakI7O0FBRUE7RUFDRSxrQkFBa0I7QUFDcEI7O0FBRUE7RUFDRSxzQ0FBc0M7QUFDeEM7O0FBRUE7RUFDRSxjQUFjO0VBQ2QsZ0JBQWdCO0VBQ2hCLDJCQUEyQjtBQUM3Qjs7QUFFQTtFQUNFLFlBQVk7RUFDWixlQUFlO0VBQ2YsWUFBWTtFQUNaLGtCQUFrQjtFQUNsQixnQkFBZ0I7RUFDaEIsY0FBYztFQUNkLGNBQWM7RUFDZCx5QkFBeUI7RUFDekIsaUNBQWlDO0VBQ2pDLGVBQWU7QUFDakI7O0FBRUE7RUFDRTs7Ozs7R0FLQyxFQUFFLHVGQUF1RjtBQUM1Rjs7QUFFQTtFQUNFLHVDQUF1QztFQUN2QyxtQkFBbUI7QUFDckI7O0FBRUEsNENBQTRDOztBQUU1Qyx3QkFBd0I7QUFDeEI7RUFDRSxVQUFVO0VBQ1YsZ0JBQWdCO0VBQ2hCLGFBQWE7RUFDYixzQkFBc0I7RUFDdEIsc0JBQXNCO0FBQ3hCOztBQUVBO0VBQ0UseURBQXVEO0VBQ3ZELFlBQVk7RUFDWixNQUFNO0FBQ1I7O0FBRUE7RUFDRSxhQUFhO0FBQ2Y7O0FBRUE7RUFDRSxnQkFBZ0I7RUFDaEIsZUFBZTtFQUNmLGNBQWM7RUFDZCxhQUFhO0VBQ2IsdUJBQXVCO0FBQ3pCOztBQUVBLHdCQUF3QjtBQUN4QjtFQUNFLGFBQWE7RUFDYix1QkFBdUI7QUFDekI7O0FBRUE7RUFDRSxtQkFBbUI7RUFDbkIsa0JBQWtCO0VBQ2xCLFlBQVk7RUFDWixrQkFBa0I7RUFDbEIsWUFBWTtFQUNaLGtCQUFrQjtFQUNsQixnQkFBZ0I7RUFDaEIsY0FBYztFQUNkLGNBQWM7RUFDZCx5QkFBeUI7RUFDekIsaUNBQWlDO0VBQ2pDLGVBQWU7QUFDakI7O0FBRUE7RUFDRSx5QkFBeUI7QUFDM0I7O0FBRUE7RUFDRSxtQkFBbUI7RUFDbkIsaUJBQWlCO0VBQ2pCLFlBQVk7RUFDWixrQkFBa0I7RUFDbEIsWUFBWTtFQUNaLGtCQUFrQjtFQUNsQixnQkFBZ0I7RUFDaEIsY0FBYztFQUNkLGNBQWM7RUFDZCx5QkFBeUI7RUFDekIsMENBQTBDO0VBQzFDLHNCQUFzQjtFQUN0QixpQ0FBaUM7RUFDakMsZUFBZTtBQUNqQjs7QUFFQTtFQUNFLHlCQUF5QjtFQUN6QixXQUFXO0FBQ2I7O0FBRUE7RUFDRTtJQUNFLGVBQWU7RUFDakI7O0VBRUE7SUFDRSxhQUFhO0VBQ2Y7O0VBRUE7SUFDRSxjQUFjLEVBQUUsNkJBQTZCO0lBQzdDLFVBQVU7SUFDVixXQUFXO0lBQ1gsZ0JBQWdCO0VBQ2xCOztFQUVBO0lBQ0UsV0FBVztJQUNYLGVBQWU7SUFDZixlQUFlO0VBQ2pCOztFQUVBO0lBQ0UsZUFBZTtJQUNmLG1CQUFtQjtFQUNyQjs7RUFFQTtJQUNFLFNBQVM7SUFDVCxXQUFXO0VBQ2I7O0VBRUE7SUFDRSxVQUFVO0lBQ1YsV0FBVztFQUNiOztFQUVBO0lBQ0UsbUJBQW1CO0VBQ3JCOztFQUVBO0lBQ0UsZUFBZTtFQUNqQjs7RUFFQTtJQUNFLFdBQVc7RUFDYjs7RUFFQTtJQUNFLGVBQWU7SUFDZixnQkFBZ0I7RUFDbEI7RUFDQTtJQUNFLFdBQVc7SUFDWCxhQUFhO0lBQ2Isc0JBQXNCO0lBQ3RCLG1CQUFtQixFQUFFLG1DQUFtQztFQUMxRDs7RUFFQTtJQUNFLGdCQUFnQjtJQUNoQixlQUFlO0lBQ2YsZ0JBQWdCO0lBQ2hCLGtCQUFrQjtJQUNsQixXQUFXO0VBQ2I7O0VBRUE7SUFDRSxXQUFXO0lBQ1gsYUFBYTtJQUNiLHNCQUFzQjtJQUN0QixtQkFBbUIsRUFBRSxxQ0FBcUM7RUFDNUQ7O0VBRUE7SUFDRSxnQkFBZ0I7SUFDaEIsWUFBWTtFQUNkOztFQUVBO0lBQ0UsU0FBUztJQUNULFlBQVk7RUFDZDs7RUFFQTtJQUNFLFVBQVU7SUFDVixVQUFVO0VBQ1o7QUFDRiIsInNvdXJjZXMiOlsid2VicGFjazovL3NlX3Byb2plY3Rfc3BvdHMvLi9zcmMvdmVuZG9yL25vcm1hbGl6ZS5jc3MiLCJ3ZWJwYWNrOi8vc2VfcHJvamVjdF9zcG90cy8uL3NyYy92ZW5kb3IvZm9udHMuY3NzIiwid2VicGFjazovL3NlX3Byb2plY3Rfc3BvdHMvLi9zcmMvYmxvY2tzL3BhZ2UuY3NzIiwid2VicGFjazovL3NlX3Byb2plY3Rfc3BvdHMvLi9zcmMvYmxvY2tzL2hlYWRlci5jc3MiLCJ3ZWJwYWNrOi8vc2VfcHJvamVjdF9zcG90cy8uL3NyYy9ibG9ja3MvcHJvZmlsZS5jc3MiLCJ3ZWJwYWNrOi8vc2VfcHJvamVjdF9zcG90cy8uL3NyYy9ibG9ja3MvY29udGVudC5jc3MiLCJ3ZWJwYWNrOi8vc2VfcHJvamVjdF9zcG90cy8uL3NyYy9ibG9ja3MvY2FyZHMuY3NzIiwid2VicGFjazovL3NlX3Byb2plY3Rfc3BvdHMvLi9zcmMvYmxvY2tzL2NhcmQuY3NzIiwid2VicGFjazovL3NlX3Byb2plY3Rfc3BvdHMvLi9zcmMvYmxvY2tzL2Zvb3Rlci5jc3MiLCJ3ZWJwYWNrOi8vc2VfcHJvamVjdF9zcG90cy8uL3NyYy9ibG9ja3MvbW9kYWwuY3NzIl0sInNvdXJjZXNDb250ZW50IjpbIi8qISBub3JtYWxpemUuY3NzIHY4LjAuMSB8IE1JVCBMaWNlbnNlIHwgZ2l0aHViLmNvbS9uZWNvbGFzL25vcm1hbGl6ZS5jc3MgKi9cblxuLyogRG9jdW1lbnRcbiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG5cbi8qKlxuICogMS4gQ29ycmVjdCB0aGUgbGluZSBoZWlnaHQgaW4gYWxsIGJyb3dzZXJzLlxuICogMi4gUHJldmVudCBhZGp1c3RtZW50cyBvZiBmb250IHNpemUgYWZ0ZXIgb3JpZW50YXRpb24gY2hhbmdlcyBpbiBpT1MuXG4gKi9cblxuaHRtbCB7XG4gIGxpbmUtaGVpZ2h0OiAxLjE1OyAvKiAxICovXG4gIC13ZWJraXQtdGV4dC1zaXplLWFkanVzdDogMTAwJTsgLyogMiAqL1xufVxuXG4vKiBTZWN0aW9uc1xuICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cblxuLyoqXG4gKiBSZW1vdmUgdGhlIG1hcmdpbiBpbiBhbGwgYnJvd3NlcnMuXG4gKi9cblxuYm9keSB7XG4gIG1hcmdpbjogMDtcbn1cblxuLyoqXG4gKiBSZW5kZXIgdGhlIGBtYWluYCBlbGVtZW50IGNvbnNpc3RlbnRseSBpbiBJRS5cbiAqL1xuXG5tYWluIHtcbiAgZGlzcGxheTogYmxvY2s7XG59XG5cbi8qKlxuICogQ29ycmVjdCB0aGUgZm9udCBzaXplIGFuZCBtYXJnaW4gb24gYGgxYCBlbGVtZW50cyB3aXRoaW4gYHNlY3Rpb25gIGFuZFxuICogYGFydGljbGVgIGNvbnRleHRzIGluIENocm9tZSwgRmlyZWZveCwgYW5kIFNhZmFyaS5cbiAqL1xuXG5oMSB7XG4gIGZvbnQtc2l6ZTogMmVtO1xuICBtYXJnaW46IDAuNjdlbSAwO1xufVxuXG4vKiBHcm91cGluZyBjb250ZW50XG4gICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuXG4vKipcbiAqIDEuIEFkZCB0aGUgY29ycmVjdCBib3ggc2l6aW5nIGluIEZpcmVmb3guXG4gKiAyLiBTaG93IHRoZSBvdmVyZmxvdyBpbiBFZGdlIGFuZCBJRS5cbiAqL1xuXG5ociB7XG4gIGJveC1zaXppbmc6IGNvbnRlbnQtYm94OyAvKiAxICovXG4gIGhlaWdodDogMDsgLyogMSAqL1xuICBvdmVyZmxvdzogdmlzaWJsZTsgLyogMiAqL1xufVxuXG4vKipcbiAqIDEuIENvcnJlY3QgdGhlIGluaGVyaXRhbmNlIGFuZCBzY2FsaW5nIG9mIGZvbnQgc2l6ZSBpbiBhbGwgYnJvd3NlcnMuXG4gKiAyLiBDb3JyZWN0IHRoZSBvZGQgYGVtYCBmb250IHNpemluZyBpbiBhbGwgYnJvd3NlcnMuXG4gKi9cblxucHJlIHtcbiAgZm9udC1mYW1pbHk6IG1vbm9zcGFjZSwgbW9ub3NwYWNlOyAvKiAxICovXG4gIGZvbnQtc2l6ZTogMWVtOyAvKiAyICovXG59XG5cbi8qIFRleHQtbGV2ZWwgc2VtYW50aWNzXG4gICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuXG4vKipcbiAqIFJlbW92ZSB0aGUgZ3JheSBiYWNrZ3JvdW5kIG9uIGFjdGl2ZSBsaW5rcyBpbiBJRSAxMC5cbiAqL1xuXG5hIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG59XG5cbi8qKlxuICogMS4gUmVtb3ZlIHRoZSBib3R0b20gYm9yZGVyIGluIENocm9tZSA1Ny1cbiAqIDIuIEFkZCB0aGUgY29ycmVjdCB0ZXh0IGRlY29yYXRpb24gaW4gQ2hyb21lLCBFZGdlLCBJRSwgT3BlcmEsIGFuZCBTYWZhcmkuXG4gKi9cblxuYWJiclt0aXRsZV0ge1xuICBib3JkZXItYm90dG9tOiBub25lOyAvKiAxICovXG4gIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lOyAvKiAyICovXG4gIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lIGRvdHRlZDsgLyogMiAqL1xufVxuXG4vKipcbiAqIEFkZCB0aGUgY29ycmVjdCBmb250IHdlaWdodCBpbiBDaHJvbWUsIEVkZ2UsIGFuZCBTYWZhcmkuXG4gKi9cblxuYixcbnN0cm9uZyB7XG4gIGZvbnQtd2VpZ2h0OiBib2xkZXI7XG59XG5cbi8qKlxuICogMS4gQ29ycmVjdCB0aGUgaW5oZXJpdGFuY2UgYW5kIHNjYWxpbmcgb2YgZm9udCBzaXplIGluIGFsbCBicm93c2Vycy5cbiAqIDIuIENvcnJlY3QgdGhlIG9kZCBgZW1gIGZvbnQgc2l6aW5nIGluIGFsbCBicm93c2Vycy5cbiAqL1xuXG5jb2RlLFxua2JkLFxuc2FtcCB7XG4gIGZvbnQtZmFtaWx5OiBtb25vc3BhY2UsIG1vbm9zcGFjZTsgLyogMSAqL1xuICBmb250LXNpemU6IDFlbTsgLyogMiAqL1xufVxuXG4vKipcbiAqIEFkZCB0aGUgY29ycmVjdCBmb250IHNpemUgaW4gYWxsIGJyb3dzZXJzLlxuICovXG5cbnNtYWxsIHtcbiAgZm9udC1zaXplOiA4MCU7XG59XG5cbi8qKlxuICogUHJldmVudCBgc3ViYCBhbmQgYHN1cGAgZWxlbWVudHMgZnJvbSBhZmZlY3RpbmcgdGhlIGxpbmUgaGVpZ2h0IGluXG4gKiBhbGwgYnJvd3NlcnMuXG4gKi9cblxuc3ViLFxuc3VwIHtcbiAgZm9udC1zaXplOiA3NSU7XG4gIGxpbmUtaGVpZ2h0OiAwO1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIHZlcnRpY2FsLWFsaWduOiBiYXNlbGluZTtcbn1cblxuc3ViIHtcbiAgYm90dG9tOiAtMC4yNWVtO1xufVxuXG5zdXAge1xuICB0b3A6IC0wLjVlbTtcbn1cblxuLyogRW1iZWRkZWQgY29udGVudFxuICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cblxuLyoqXG4gKiBSZW1vdmUgdGhlIGJvcmRlciBvbiBpbWFnZXMgaW5zaWRlIGxpbmtzIGluIElFIDEwLlxuICovXG5cbmltZyB7XG4gIGJvcmRlci1zdHlsZTogbm9uZTtcbn1cblxuLyogRm9ybXNcbiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG5cbi8qKlxuICogMS4gQ2hhbmdlIHRoZSBmb250IHN0eWxlcyBpbiBhbGwgYnJvd3NlcnMuXG4gKiAyLiBSZW1vdmUgdGhlIG1hcmdpbiBpbiBGaXJlZm94IGFuZCBTYWZhcmkuXG4gKi9cblxuYnV0dG9uLFxuaW5wdXQsXG5vcHRncm91cCxcbnNlbGVjdCxcbnRleHRhcmVhIHtcbiAgZm9udC1mYW1pbHk6IGluaGVyaXQ7IC8qIDEgKi9cbiAgZm9udC1zaXplOiAxMDAlOyAvKiAxICovXG4gIGxpbmUtaGVpZ2h0OiAxLjE1OyAvKiAxICovXG4gIG1hcmdpbjogMDsgLyogMiAqL1xufVxuXG4vKipcbiAqIFNob3cgdGhlIG92ZXJmbG93IGluIElFLlxuICogMS4gU2hvdyB0aGUgb3ZlcmZsb3cgaW4gRWRnZS5cbiAqL1xuXG5idXR0b24sXG5pbnB1dCB7XG4gIC8qIDEgKi9cbiAgb3ZlcmZsb3c6IHZpc2libGU7XG59XG5cbi8qKlxuICogUmVtb3ZlIHRoZSBpbmhlcml0YW5jZSBvZiB0ZXh0IHRyYW5zZm9ybSBpbiBFZGdlLCBGaXJlZm94LCBhbmQgSUUuXG4gKiAxLiBSZW1vdmUgdGhlIGluaGVyaXRhbmNlIG9mIHRleHQgdHJhbnNmb3JtIGluIEZpcmVmb3guXG4gKi9cblxuYnV0dG9uLFxuc2VsZWN0IHtcbiAgLyogMSAqL1xuICB0ZXh0LXRyYW5zZm9ybTogbm9uZTtcbn1cblxuLyoqXG4gKiBDb3JyZWN0IHRoZSBpbmFiaWxpdHkgdG8gc3R5bGUgY2xpY2thYmxlIHR5cGVzIGluIGlPUyBhbmQgU2FmYXJpLlxuICovXG5cbmJ1dHRvbixcblt0eXBlPVwiYnV0dG9uXCJdLFxuW3R5cGU9XCJyZXNldFwiXSxcblt0eXBlPVwic3VibWl0XCJdIHtcbiAgLXdlYmtpdC1hcHBlYXJhbmNlOiBidXR0b247XG59XG5cbi8qKlxuICogUmVtb3ZlIHRoZSBpbm5lciBib3JkZXIgYW5kIHBhZGRpbmcgaW4gRmlyZWZveC5cbiAqL1xuXG5idXR0b246Oi1tb3otZm9jdXMtaW5uZXIsXG5bdHlwZT1cImJ1dHRvblwiXTo6LW1vei1mb2N1cy1pbm5lcixcblt0eXBlPVwicmVzZXRcIl06Oi1tb3otZm9jdXMtaW5uZXIsXG5bdHlwZT1cInN1Ym1pdFwiXTo6LW1vei1mb2N1cy1pbm5lciB7XG4gIGJvcmRlci1zdHlsZTogbm9uZTtcbiAgcGFkZGluZzogMDtcbn1cblxuLyoqXG4gKiBSZXN0b3JlIHRoZSBmb2N1cyBzdHlsZXMgdW5zZXQgYnkgdGhlIHByZXZpb3VzIHJ1bGUuXG4gKi9cblxuYnV0dG9uOi1tb3otZm9jdXNyaW5nLFxuW3R5cGU9XCJidXR0b25cIl06LW1vei1mb2N1c3JpbmcsXG5bdHlwZT1cInJlc2V0XCJdOi1tb3otZm9jdXNyaW5nLFxuW3R5cGU9XCJzdWJtaXRcIl06LW1vei1mb2N1c3Jpbmcge1xuICBvdXRsaW5lOiAxcHggZG90dGVkIEJ1dHRvblRleHQ7XG59XG5cbi8qKlxuICogQ29ycmVjdCB0aGUgcGFkZGluZyBpbiBGaXJlZm94LlxuICovXG5cbmZpZWxkc2V0IHtcbiAgcGFkZGluZzogMC4zNWVtIDAuNzVlbSAwLjYyNWVtO1xufVxuXG4vKipcbiAqIDEuIENvcnJlY3QgdGhlIHRleHQgd3JhcHBpbmcgaW4gRWRnZSBhbmQgSUUuXG4gKiAyLiBDb3JyZWN0IHRoZSBjb2xvciBpbmhlcml0YW5jZSBmcm9tIGBmaWVsZHNldGAgZWxlbWVudHMgaW4gSUUuXG4gKiAzLiBSZW1vdmUgdGhlIHBhZGRpbmcgc28gZGV2ZWxvcGVycyBhcmUgbm90IGNhdWdodCBvdXQgd2hlbiB0aGV5IHplcm8gb3V0XG4gKiAgICBgZmllbGRzZXRgIGVsZW1lbnRzIGluIGFsbCBicm93c2Vycy5cbiAqL1xuXG5sZWdlbmQge1xuICBib3gtc2l6aW5nOiBib3JkZXItYm94OyAvKiAxICovXG4gIGNvbG9yOiBpbmhlcml0OyAvKiAyICovXG4gIGRpc3BsYXk6IHRhYmxlOyAvKiAxICovXG4gIG1heC13aWR0aDogMTAwJTsgLyogMSAqL1xuICBwYWRkaW5nOiAwOyAvKiAzICovXG4gIHdoaXRlLXNwYWNlOiBub3JtYWw7IC8qIDEgKi9cbn1cblxuLyoqXG4gKiBBZGQgdGhlIGNvcnJlY3QgdmVydGljYWwgYWxpZ25tZW50IGluIENocm9tZSwgRmlyZWZveCwgYW5kIE9wZXJhLlxuICovXG5cbnByb2dyZXNzIHtcbiAgdmVydGljYWwtYWxpZ246IGJhc2VsaW5lO1xufVxuXG4vKipcbiAqIFJlbW92ZSB0aGUgZGVmYXVsdCB2ZXJ0aWNhbCBzY3JvbGxiYXIgaW4gSUUgMTArLlxuICovXG5cbnRleHRhcmVhIHtcbiAgb3ZlcmZsb3c6IGF1dG87XG59XG5cbi8qKlxuICogMS4gQWRkIHRoZSBjb3JyZWN0IGJveCBzaXppbmcgaW4gSUUgMTAuXG4gKiAyLiBSZW1vdmUgdGhlIHBhZGRpbmcgaW4gSUUgMTAuXG4gKi9cblxuW3R5cGU9XCJjaGVja2JveFwiXSxcblt0eXBlPVwicmFkaW9cIl0ge1xuICBib3gtc2l6aW5nOiBib3JkZXItYm94OyAvKiAxICovXG4gIHBhZGRpbmc6IDA7IC8qIDIgKi9cbn1cblxuLyoqXG4gKiBDb3JyZWN0IHRoZSBjdXJzb3Igc3R5bGUgb2YgaW5jcmVtZW50IGFuZCBkZWNyZW1lbnQgYnV0dG9ucyBpbiBDaHJvbWUuXG4gKi9cblxuW3R5cGU9XCJudW1iZXJcIl06Oi13ZWJraXQtaW5uZXItc3Bpbi1idXR0b24sXG5bdHlwZT1cIm51bWJlclwiXTo6LXdlYmtpdC1vdXRlci1zcGluLWJ1dHRvbiB7XG4gIGhlaWdodDogYXV0bztcbn1cblxuLyoqXG4gKiAxLiBDb3JyZWN0IHRoZSBvZGQgYXBwZWFyYW5jZSBpbiBDaHJvbWUgYW5kIFNhZmFyaS5cbiAqIDIuIENvcnJlY3QgdGhlIG91dGxpbmUgc3R5bGUgaW4gU2FmYXJpLlxuICovXG5cblt0eXBlPVwic2VhcmNoXCJdIHtcbiAgLXdlYmtpdC1hcHBlYXJhbmNlOiB0ZXh0ZmllbGQ7IC8qIDEgKi9cbiAgb3V0bGluZS1vZmZzZXQ6IC0ycHg7IC8qIDIgKi9cbn1cblxuLyoqXG4gKiBSZW1vdmUgdGhlIGlubmVyIHBhZGRpbmcgaW4gQ2hyb21lIGFuZCBTYWZhcmkgb24gbWFjT1MuXG4gKi9cblxuW3R5cGU9XCJzZWFyY2hcIl06Oi13ZWJraXQtc2VhcmNoLWRlY29yYXRpb24ge1xuICAtd2Via2l0LWFwcGVhcmFuY2U6IG5vbmU7XG59XG5cbi8qKlxuICogMS4gQ29ycmVjdCB0aGUgaW5hYmlsaXR5IHRvIHN0eWxlIGNsaWNrYWJsZSB0eXBlcyBpbiBpT1MgYW5kIFNhZmFyaS5cbiAqIDIuIENoYW5nZSBmb250IHByb3BlcnRpZXMgdG8gYGluaGVyaXRgIGluIFNhZmFyaS5cbiAqL1xuXG46Oi13ZWJraXQtZmlsZS11cGxvYWQtYnV0dG9uIHtcbiAgLXdlYmtpdC1hcHBlYXJhbmNlOiBidXR0b247IC8qIDEgKi9cbiAgZm9udDogaW5oZXJpdDsgLyogMiAqL1xufVxuXG4vKiBJbnRlcmFjdGl2ZVxuICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cblxuLypcbiAqIEFkZCB0aGUgY29ycmVjdCBkaXNwbGF5IGluIEVkZ2UsIElFIDEwKywgYW5kIEZpcmVmb3guXG4gKi9cblxuZGV0YWlscyB7XG4gIGRpc3BsYXk6IGJsb2NrO1xufVxuXG4vKlxuICogQWRkIHRoZSBjb3JyZWN0IGRpc3BsYXkgaW4gYWxsIGJyb3dzZXJzLlxuICovXG5cbnN1bW1hcnkge1xuICBkaXNwbGF5OiBsaXN0LWl0ZW07XG59XG5cbi8qIE1pc2NcbiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG5cbi8qKlxuICogQWRkIHRoZSBjb3JyZWN0IGRpc3BsYXkgaW4gSUUgMTArLlxuICovXG5cbnRlbXBsYXRlIHtcbiAgZGlzcGxheTogbm9uZTtcbn1cblxuLyoqXG4gKiBBZGQgdGhlIGNvcnJlY3QgZGlzcGxheSBpbiBJRSAxMC5cbiAqL1xuXG5baGlkZGVuXSB7XG4gIGRpc3BsYXk6IG5vbmU7XG59XG4iLCJAZm9udC1mYWNlIHtcbiAgZm9udC1mYW1pbHk6IFwiUG9wcGluc1wiO1xuICBmb250LXN0eWxlOiBub3JtYWw7XG4gIGZvbnQtd2VpZ2h0OiA0MDA7XG4gIHNyYzogdXJsKFwiLi4vdmVuZG9yL2ZvbnRzL1BvcHBpbnMtUmVndWxhci50dGZcIikgZm9ybWF0KFwidHJ1ZXR5cGVcIik7XG59XG5AZm9udC1mYWNlIHtcbiAgZm9udC1mYW1pbHk6IFwiUG9wcGluc1wiO1xuICBmb250LXN0eWxlOiBub3JtYWw7XG4gIGZvbnQtd2VpZ2h0OiA1MDA7XG4gIHNyYzogdXJsKFwiLi4vdmVuZG9yL2ZvbnRzL1BvcHBpbnMtTWVkaXVtLnR0ZlwiKSBmb3JtYXQoXCJ0cnVldHlwZVwiKTtcbn1cbiIsIi5wYWdlIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2ZjZjVlNTsgLyogc28gdGhlIG90aGVyIGNvbG9yIGRvbnQgbWVzcyB3aXRoIHRoZSBoZWFkZXIgKi9cbiAgZm9udC1mYW1pbHk6IFwiUG9wcGluc1wiLCBBcmlhbCwgSGVsdmV0aWNhLCBzYW5zLXNlcmlmO1xufVxuXG4vKiBuZXcgcnVsZSBjcmVhdGVkIHNvIGkgZGlkbnQgaGF2ZSB0byByZWRvIHRvbyBtdWNoIGNvZGUgKi9cbi5wYWdlX19jb250ZW50IHtcbiAgcGFkZGluZzogMDtcbiAgbWFyZ2luOiBhdXRvOyAvKmNlbnRlcnMgZXZlcnl0aGluZyBvbiB3ZWJwYWdlKi9cbiAgbWluLWhlaWdodDogMTAwdmg7XG59XG5cbi5wYWdlX19zZWN0aW9uIHtcbiAgbWF4LXdpZHRoOiAxMjgwcHg7IC8qYmlnZ2VzdCB3ZSB3YW50IHRoZSBhY3R1YWwgY29uZW50IHRvIHN0cmV0Y2gqL1xuICBtYXJnaW46IDAgYXV0bzsgLyoga2VlcHMgdGhlIGNvbnRlbnQgY2VudGVyZWQgb24gdGhlIGJhY2tncm91bmQgKi9cbn1cbiIsIi5oZWFkZXIge1xuICBwYWRkaW5nOiAxMHB4IDA7IC8qcGFnZSBzZXBlcmF0aW9uIGN1c2hpb24gKi9cbiAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZjtcbiAgZGlzcGxheTogZmxleDtcbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7IC8qIGtlZXBzIGxvZ28gY2VudGVyICovXG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7IC8qIGtlZXBzIGxvZ28gY2VudGVyICovXG59XG5cbi5oZWFkZXJfX2xvZ28ge1xuICB3aWR0aDogOTRweDtcbiAgaGVpZ2h0OiAyNnB4O1xufVxuIiwiLnByb2ZpbGUge1xuICBkaXNwbGF5OiBmbGV4O1xuICBwYWRkaW5nOiAzNHB4IDAgMjBweDsgLyogcGFnZSBzZXBlcmF0aW9uIGN1c2hpb24gKi9cbiAgYm9yZGVyLWJvdHRvbTogMXB4IHJnYmEoMzMsIDMzLCAzMywgMC40KSBzb2xpZDtcbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG59XG5cbi8qIENvbnRhaW5lciBmb3IgdGhlIGF2YXRhciBhbmQgaXRzIGVkaXQgYnV0dG9uICovXG4ucHJvZmlsZV9fYXZhdGFyLWNvbnRhaW5lciB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgZGlzcGxheTogYmxvY2s7XG4gIGhlaWdodDogMTkwcHg7XG4gIGN1cnNvcjogcG9pbnRlcjtcbn1cblxuLnByb2ZpbGVfX2F2YXRhci1vdmVybGF5IHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IDA7XG4gIGxlZnQ6IDA7XG4gIHdpZHRoOiAxMDAlO1xuICBoZWlnaHQ6IDEwMCU7XG4gIG9wYWNpdHk6IDA7IC8qIE1ha2UgaXQgaW52aXNpYmxlICovXG4gIGJhY2tncm91bmQ6IHJnYmEoXG4gICAgMCxcbiAgICAwLFxuICAgIDAsXG4gICAgMC4zXG4gICk7IC8qIE9wdGlvbmFsOiBhZGRzIHNsaWdodCBkYXJrZW5pbmcgZWZmZWN0IG9uIGhvdmVyICovXG59XG5cbi5wcm9maWxlX19hdmF0YXItY29udGFpbmVyOmhvdmVyIC5wcm9maWxlX19hdmF0YXItb3ZlcmxheSB7XG4gIG9wYWNpdHk6IDE7IC8qIFNob3cgb3ZlcmxheSBvbiBob3ZlciAqL1xufVxuXG4vKiBBdmF0YXIgaW1hZ2UgKi9cbi5wcm9maWxlX19hdmF0YXIge1xuICBtYXJnaW4tcmlnaHQ6IDIwcHg7XG4gIGhlaWdodDogMTkwcHg7XG4gIHdpZHRoOiAxOTBweDtcbiAgYm9yZGVyLXJhZGl1czogOHB4O1xuICB6LWluZGV4OiAxO1xufVxuXG4vKiBBdmF0YXIgZWRpdCBidXR0b24gKi9cbi5wcm9maWxlX19hdmF0YXItYnV0dG9uIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICBwYWRkaW5nOiAxMnB4IDEwcHg7IC8qIEJ1dHRvbiBwYWRkaW5nIGZvciBhIGNvbWZvcnRhYmxlIGNsaWNrIGFyZWEgKi9cbiAgbGVmdDogNTAlO1xuICBib3R0b206IDA7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgtNTAlKTtcbiAgZGlzcGxheTogZmxleDsgLyogQWxsb3dzIGZvciBnYXAgdXNhZ2UgKi9cbiAgZ2FwOiA4cHg7IC8qIFNwYWNlIGJldHdlZW4gaWNvbiBhbmQgdGV4dCAqL1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICB3aGl0ZS1zcGFjZTogbm93cmFwOyAvKiBQcmV2ZW50cyB0ZXh0IHdyYXBwaW5nICovXG4gIGZvbnQtd2VpZ2h0OiA1MDA7XG4gIGxpbmUtaGVpZ2h0OiAxO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgYm9yZGVyOiBub25lO1xuICBjb2xvcjogI2ZmZjtcbiAgei1pbmRleDogMjtcbiAgb3BhY2l0eTogMDtcbiAgY3Vyc29yOiBwb2ludGVyO1xufVxuXG4ucHJvZmlsZV9fYXZhdGFyLWNvbnRhaW5lcjpob3ZlciAucHJvZmlsZV9fYXZhdGFyLWJ1dHRvbiB7XG4gIG9wYWNpdHk6IDE7IC8qIFRoaXMgd2lsbCBtYWtlIHRoZSBidXR0b24gdmlzaWJsZSBvbiBob3ZlciAqL1xufVxuXG4vKiBjb250YWluZXIgb2YgTmFtZSBEZXNjcmlwdGlvbiBhbmQgZWRpdCBidXR0b24qL1xuLnByb2ZpbGVfX2NvbHVtbiB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG59XG5cbi5wcm9maWxlX19uYW1lIHtcbiAgbWFyZ2luOiAwIDAgMTJweDsgLyppcyBjcmVhdGluZyB0aGUgZ2FwIGZyb20gZGVzY3JpcHRpb24qL1xuICBmb250LXdlaWdodDogNTAwO1xuICBmb250LXNpemU6IDMycHg7XG4gIGxpbmUtaGVpZ2h0OiAxO1xuICBjb2xvcjogIzIxMjEyMTtcbiAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIGRpc3BsYXk6IC13ZWJraXQtYm94O1xuICAtd2Via2l0LWxpbmUtY2xhbXA6IDM7XG4gIGxpbmUtY2xhbXA6IDM7XG4gIC13ZWJraXQtYm94LW9yaWVudDogdmVydGljYWw7XG4gIG1heC13aWR0aDogNDIwcHg7XG59XG5cbi5wcm9maWxlX19kZXNjcmlwdGlvbiB7XG4gIG1hcmdpbjogMDtcbiAgcGFkZGluZzogMDtcbiAgZm9udC13ZWlnaHQ6IDUwMDtcbiAgbGluZS1oZWlnaHQ6IDE7XG4gIGNvbG9yOiByZ2JhKDM0LCAzNCwgMzQsIDAuNyk7XG4gIGRpc3BsYXk6IC13ZWJraXQtYm94O1xuICAtd2Via2l0LWJveC1vcmllbnQ6IHZlcnRpY2FsO1xuICAtd2Via2l0LWxpbmUtY2xhbXA6IDM7XG4gIGxpbmUtY2xhbXA6IDM7XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICBtYXgtd2lkdGg6IDQyMHB4O1xufVxuXG4ucHJvZmlsZV9fZWRpdC1idXR0b24ge1xuICBtYXJnaW4tdG9wOiBhdXRvOyAvKmJ5IG1pbWljaW5nIHRoZSBhZGQgYnV0dG9uIHdpdGggdGhlIG1hcmdpbnMgaSBoYXZlIGdvdHRlbiByaWQgb2YgdGhlIGdob3N0IHBhZGRpbmcgYW5kIGRvbnQgaGF2ZSB0byBhcHBseSB3aWR0aHMqL1xuICBwYWRkaW5nOiAwOyAvKmlzIGtlZXBpbmcgYnV0dG9uIGluIGl0cyBjb3JuZXIgKi9cbiAgd2lkdGg6IGZpdC1jb250ZW50OyAvKiBmaW5hbGx5IGNsaWNrYWJsZSBvbmx5IHdoZXJlIGl0cyBtZW50IHRvIGJlIGNsaWNrZWQgYXQqL1xuICBkaXNwbGF5OiBmbGV4OyAvKiBpcyBhbGxvd2luZyBnYXAgdG8gYmUgdXNlZCBhbmQga2VlcGluZyBpdCBpbmxpbmUgd2l0aCBuYW1lIGFuZCBkZXNjcmlwdGlvbiAqL1xuICBnYXA6IDhweDtcbiAgZm9udC13ZWlnaHQ6IDUwMDtcbiAgbGluZS1oZWlnaHQ6IDE7XG4gIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuICBib3JkZXI6IG5vbmU7XG4gIGNvbG9yOiAjMjEyMTIxO1xuICBvcGFjaXR5OiA3MCU7XG4gIHRyYW5zaXRpb246IG9wYWNpdHkgMC41cztcbiAgY3Vyc29yOiBwb2ludGVyO1xufVxuXG4ucHJvZmlsZV9fZWRpdC1idXR0b246aG92ZXIge1xuICBvcGFjaXR5OiAxMDAlOyAvKiB2ZXJ5IHN1YnRsZSBjaGFuZ2UgYnV0IHJlbW92ZXMgb3ZlcmxheSBkdXJpbmcgaG92ZXIgKi9cbn1cblxuLnByb2ZpbGVfX2FkZC1idXR0b24ge1xuICBtYXJnaW4tbGVmdDogYXV0bzsgLyogaXMgcHVzaGluZyBpdCBmcm9tIHRoZSByZXN0ICovXG4gIG1hcmdpbi10b3A6IGF1dG87IC8qIHB1c2hpbmcgaXQgZG93biBmcm9tIHRvcCAqL1xuICBwYWRkaW5nOiAwO1xuICBkaXNwbGF5OiBmbGV4OyAvKiBpcyBhbGxvd2luZyB1c2Ugb2YgZ2FwICovXG4gIGp1c3RpZnktY29udGVudDogY2VudGVyOyAvKiBhbGlnbmluZyB0ZXh0IGhvcml6b250YWxseSAqL1xuICBhbGlnbi1pdGVtczogY2VudGVyOyAvKiBhbGlnbmluZyB0ZXh0IHZlcnRpY2FsbHkgKi9cbiAgZ2FwOiA4cHg7XG4gIHdpZHRoOiAxNDlweDtcbiAgaGVpZ2h0OiA1MnB4O1xuICBib3JkZXI6IG5vbmU7XG4gIGJvcmRlci1yYWRpdXM6IDhweDtcbiAgZm9udC13ZWlnaHQ6IDUwMDtcbiAgbGluZS1oZWlnaHQ6IDE7XG4gIGNvbG9yOiAjZmNmNWU1O1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMjEyMTIxO1xuICB0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kLWNvbG9yIDAuNXM7XG4gIGN1cnNvcjogcG9pbnRlcjtcbn1cblxuLnByb2ZpbGVfX2FkZC1idXR0b246aG92ZXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKFxuICAgIDMzLFxuICAgIDMzLFxuICAgIDMzLFxuICAgIDAuOFxuICApOyAvKmNoYW5nZXMgYnV0dG9uIGNvbG9yIGR1cmluZyBob3Zlci4qL1xufVxuXG5AbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA2MjdweCkge1xuICAucHJvZmlsZSB7XG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICBtYXgtd2lkdGg6IDI4OHB4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgIHBhZGRpbmctdG9wOiAyMHB4O1xuICB9XG5cbiAgLnByb2ZpbGVfX2F2YXRhci1jb250YWluZXIge1xuICAgIGhlaWdodDogODBweDtcbiAgICB3aWR0aDogODBweDtcbiAgICBjdXJzb3I6IGRlZmF1bHQ7XG4gIH1cblxuICAucHJvZmlsZV9fYXZhdGFyIHtcbiAgICBtYXJnaW46IDAgMCAxMnB4O1xuICAgIGhlaWdodDogODBweDtcbiAgICB3aWR0aDogODBweDtcbiAgfVxuXG4gIC5wcm9maWxlX19hdmF0YXItY29udGFpbmVyOmhvdmVyIC5wcm9maWxlX19hdmF0YXItb3ZlcmxheSB7XG4gICAgb3BhY2l0eTogMDsgLyogSGlkZSBvdmVybGF5IG9uIGhvdmVyICovXG4gIH1cblxuICAucHJvZmlsZV9fYXZhdGFyLWJ1dHRvbiB7XG4gICAgbWFyZ2luLWJvdHRvbTogNC42NnB4O1xuICAgIHBhZGRpbmc6IDRweCA0cHg7XG4gICAgaGVpZ2h0OiAyMy4zNHB4O1xuICAgIHdpZHRoOiAyMy4zNHB4O1xuICAgIG9wYWNpdHk6IDE7XG4gICAgdG9wOiA1MnB4O1xuICAgIGxlZnQ6IDYzcHg7XG4gICAgZm9udC1zaXplOiAwO1xuICAgIGJvcmRlcjogbm9uZTtcbiAgICBib3JkZXItcmFkaXVzOiA4cHg7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgzMywgMzMsIDMzLCAwLjYpO1xuICAgIGN1cnNvcjogZGVmYXVsdDtcbiAgfVxuXG4gIC5wcm9maWxlX19uYW1lIHtcbiAgICBmb250LXNpemU6IDIwcHg7XG4gICAgbWFyZ2luOiAwIDAgNnB4O1xuICAgIG1heC13aWR0aDogMjg4cHg7XG4gIH1cblxuICAucHJvZmlsZV9fY29sdW1uIHtcbiAgICBtYXJnaW46IDAgMCAyMHB4O1xuICB9XG5cbiAgLnByb2ZpbGVfX2Rlc2NyaXB0aW9uIHtcbiAgICBtYXJnaW46IDAgMCAzMnB4O1xuICAgIG1heC13aWR0aDogMjg4cHg7XG4gIH1cblxuICAucHJvZmlsZV9fZWRpdC1idXR0b24ge1xuICAgIG1hcmdpbjogYXV0bzsgLyoga2VlcGluZyBidXR0b24gY2VudGVyZWQvaW5saW5lICovXG4gIH1cblxuICAucHJvZmlsZV9fYWRkLWJ1dHRvbiB7XG4gICAgd2lkdGg6IDEwMCU7IC8qIHN0cmV0Y2hlcyBidXR0b24gb3V0ICovXG4gIH1cbn1cbiIsIi5jb250ZW50IHtcbiAgLypydWxlIGlzIHRvIGFkZCBwYWRkaW5nIHNvIHRoYXQgbm90aGluZyB0b3VjaGVzIHNpZGVzIGR1cmluZyBzaHJpbmthZ2UqL1xuICBtYXJnaW46IDA7XG4gIHBhZGRpbmc6IDAgMjBweDtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2ZjZjVlNTsgLyprZWVwIGJhY2tncm91bmQgY29sb3JzIGNvcnJlY3QgZHVyaW5nIHNocmlua2FnZSovXG59XG5cbkBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDMzMHB4KSB7XG4gIC5jb250ZW50IHtcbiAgICBwYWRkaW5nOiAwIDEwcHg7XG4gIH1cbn1cbiIsIi5jYXJkcyB7XG4gIHBhZGRpbmc6IDIwcHggMCA0MHB4OyAvKiB0b3AgYW5kIGJvdHRvbSBcInBhZ2Ugc2VwZXJhdGlvbiBjdXNoaW9uXCIgKi9cbiAgYm9yZGVyLWJvdHRvbTogMXB4IHJnYmEoMzMsIDMzLCAzMywgMC40KSBzb2xpZDtcbn1cblxuLmNhcmRzX19saXN0IHtcbiAgbWFyZ2luOiAwO1xuICBwYWRkaW5nOiAwO1xuICBsaXN0LXN0eWxlLXR5cGU6IG5vbmU7XG4gIGRpc3BsYXk6IGdyaWQ7XG4gIGdhcDogNDBweCAyMHB4OyAvKmdhcHMgYmV0d2VlbiBjYXJkcyovXG4gIGdyaWQtdGVtcGxhdGUtY29sdW1uczogcmVwZWF0KGF1dG8tZml0LCA0MTNweCk7XG4gIGp1c3RpZnktY29udGVudDogY2VudGVyO1xufVxuXG5AbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA2MjdweCkge1xuICAuY2FyZHMge1xuICAgIHBhZGRpbmc6IDIwcHggMCAyMHB4O1xuICB9XG5cbiAgLmNhcmRzX19saXN0IHtcbiAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IHJlcGVhdChhdXRvLWZpdCwgMjg4cHgpO1xuICAgIGdhcDogMjBweCAyMHB4O1xuICB9XG59XG4iLCIuY2FyZCB7XG4gIG1heC13aWR0aDogNDEzcHg7XG59XG5cbi5jYXJkX19pbWFnZSB7XG4gIHdpZHRoOiA0MTNweDsgLyogd2lkdGggYW5kIGhlaWdodCBrZWVwIGltYWdlIGNvcnJlY3Qgc2l6ZSovXG4gIGhlaWdodDogNDEzcHg7XG4gIGJvcmRlci1yYWRpdXM6IDhweDtcbiAgb2JqZWN0LWZpdDogY292ZXI7IC8qIGtlZXBzIGltYWdlcyBsb29raW5nIG5pY2UgKi9cbiAgY3Vyc29yOiBwb2ludGVyO1xufVxuXG4uY2FyZF9fY29udGVudCB7XG4gIG1hcmdpbjogMTJweCAwIDA7IC8qIGJ1bXBlciBiZXR3ZWVuIGltYWdlIGFuZCB0ZXh0ICovXG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbn1cblxuLmNhcmRfX3RpdGxlIHtcbiAgbWFyZ2luOiAwO1xuICBmb250LXdlaWdodDogNTAwO1xuICBmb250LXNpemU6IDIwcHg7XG4gIGxpbmUtaGVpZ2h0OiAxLjI7XG4gIGNvbG9yOiAjMjEyMTIxO1xuICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgZGlzcGxheTogLXdlYmtpdC1ib3g7XG4gIC13ZWJraXQtbGluZS1jbGFtcDogMTtcbiAgLXdlYmtpdC1ib3gtb3JpZW50OiB2ZXJ0aWNhbDtcbiAgbWF4LXdpZHRoOiAzNTNweDtcbn1cblxuLmNhcmRfX2RlbGV0ZS1idXR0b24ge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7IC8qIGhhdmluZyBhYnNvbHV0ZSBtYWtlcyBzdXJlIGVhY2ggY2FyZCBoYXMgYSBidXR0b24gYW5kIGluIHRoZSBjb3JyZWN0IHNwb3QqL1xuICBtYXJnaW46IDEwcHggMzcxcHggMDtcbiAgcGFkZGluZzogMDsgLyogY29udHJvbHMgc2l6ZSBvZiBzdmcgaSBndWVzcyAqL1xuICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoLi4vaW1hZ2VzL2RlbGV0ZS1pY29uLnN2Zyk7XG4gIGJhY2tncm91bmQtcmVwZWF0OiBuby1yZXBlYXQ7IC8qIHRoaXMgYW5kIGJnIHNpemUgaXMga2VlcGluZyB0aGUgaWNvbiB0cnVlIHRvIHNpemUgKi9cbiAgYmFja2dyb3VuZC1zaXplOiBjb250YWluO1xuICB3aWR0aDogMzJweDsgLyptYWtlcyBzdXJlIHN2ZyBhY3R1YWxseSBzaG93cyAqL1xuICBoZWlnaHQ6IDMycHg7IC8qc2FtZSBhcyB3aWR0aCovXG4gIGJvcmRlcjogbm9uZTtcbiAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gIG9wYWNpdHk6IDEwMCU7XG4gIHRyYW5zaXRpb246IG9wYWNpdHkgMC41cztcbiAgY3Vyc29yOiBwb2ludGVyO1xufVxuXG4uY2FyZF9fZGVsZXRlLWJ1dHRvbjpob3ZlciB7XG4gIGJhY2tncm91bmQtaW1hZ2U6IHVybCguLi9pbWFnZXMvZGVsZXRlLWljb24taG92ZXIuc3ZnKTtcbn1cblxuLmNhcmRfX2xpa2UtYnV0dG9uIHtcbiAgcGFkZGluZzogMDtcbiAgYmFja2dyb3VuZC1pbWFnZTogdXJsKC4uL2ltYWdlcy9saWtlcmVhY3Quc3ZnKTtcbiAgYmFja2dyb3VuZC1yZXBlYXQ6IG5vLXJlcGVhdDsgLyogdGhpcyBhbmQgYmcgc2l6ZSBpcyBrZWVwaW5nIHRoZSBpY29uIHRydWUgdG8gc2l6ZSAqL1xuICBiYWNrZ3JvdW5kLXNpemU6IGNvbnRhaW47XG4gIHdpZHRoOiAyM3B4O1xuICBoZWlnaHQ6IDIwcHg7XG4gIGJvcmRlcjogbm9uZTtcbiAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gIG9wYWNpdHk6IDQwJTtcbiAgdHJhbnNpdGlvbjogb3BhY2l0eSAwLjVzO1xuICBjdXJzb3I6IHBvaW50ZXI7XG59XG5cbi5jYXJkX19saWtlLWJ1dHRvbjpob3ZlciB7XG4gIG9wYWNpdHk6IDEwMCU7XG59XG5cbi5jYXJkX19saWtlLWJ1dHRvbl9saWtlZCB7XG4gIGJhY2tncm91bmQtaW1hZ2U6IHVybCguLi9pbWFnZXMvbGlrRURyZWFjdC5zdmcpO1xuICBvcGFjaXR5OiAxMDAlO1xufVxuXG4uY2FyZF9fbGlrZS1idXR0b25fbGlrZWQ6aG92ZXIge1xuICBvcGFjaXR5OiA0MCU7XG59XG5cbkBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDYyN3B4KSB7XG4gIC5jYXJkIHtcbiAgICBtYXgtd2lkdGg6IDI4OHB4O1xuICB9XG5cbiAgLmNhcmRfX2ltYWdlIHtcbiAgICB3aWR0aDogMjg4cHg7XG4gICAgaGVpZ2h0OiAyODhweDtcbiAgfVxuXG4gIC5jYXJkX190aXRsZSB7XG4gICAgZm9udC1zaXplOiAxNnB4O1xuICAgIGxpbmUtaGVpZ2h0OiAxO1xuICAgIG1heC13aWR0aDogMjMxcHg7XG4gIH1cblxuICAuY2FyZF9fbGlrZS1idXR0b24ge1xuICAgIHdpZHRoOiAyMHB4O1xuICAgIGhlaWdodDogMThweDtcbiAgfVxuXG4gIC5jYXJkX19kZWxldGUtYnV0dG9uIHtcbiAgICBtYXJnaW46IDEwcHggMjQ2cHggMDtcbiAgfVxufVxuIiwiLmZvb3RlciB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmY2Y1ZTU7XG4gIG1pbi1oZWlnaHQ6IDA7XG4gIHdpZHRoOiAxMDAlO1xufVxuXG4uZm9vdGVyX19jb3B5cmlnaHQge1xuICBtYXJnaW46IGF1dG87XG4gIHBhZGRpbmc6IDYwcHggMDtcbiAgZm9udC13ZWlnaHQ6IDQwMDtcbiAgbGluZS1oZWlnaHQ6IDE7XG4gIGZvbnQtc2l6ZTogMTZweDtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICBjb2xvcjogcmdiYSgzMywgMzMsIDMzLCAwLjcpO1xufVxuIiwiLyptb2RhbD1wb3B1cCBib3gqL1xuLm1vZGFsIHtcbiAgcG9zaXRpb246IGZpeGVkO1xuICB0b3A6IDA7XG4gIGxlZnQ6IDA7XG4gIGJvdHRvbTogMDtcbiAgcmlnaHQ6IDA7XG4gIHBhZGRpbmc6IDAgMTZweDtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgwLCAwLCAwLCAwLjUpO1xuICAvKmRhcmtlbnMgYmFja2dyb3VuZCB3aGVuIGVkaXQgYnV0dG9uIGlzIGFjdGl2YXRlZCovXG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICB2aXNpYmlsaXR5OiBoaWRkZW47XG4gIC8qa2VlcHMgcG9wdXAgaGlkZGVuIHVudGlsIGFjdGl2YXRlZCovXG4gIG9wYWNpdHk6IDA7XG4gIHRyYW5zaXRpb246IHZpc2liaWxpdHkgMC4zcywgb3BhY2l0eSAwLjNzIGVhc2UtaW47XG4gIHotaW5kZXg6IDM7XG59XG5cbi8qd2hlbiBlZGl0IGJ1dHRvbiBpcyBjbGlja2VkIHBvcCB1cCBzaG91bGQgaW5pdGlhdGUqL1xuLm1vZGFsX29wZW5lZCB7XG4gIHZpc2liaWxpdHk6IHZpc2libGU7XG4gIG9wYWNpdHk6IDEwMCU7XG59XG5cbi8qcG9wdXAgYm94Ki9cbi5tb2RhbF9fY29udGFpbmVyIHtcbiAgYmFja2dyb3VuZDogI2ZmZjtcbiAgcGFkZGluZzogMzJweCA1MHB4O1xuICBtYXgtd2lkdGg6IDczMHB4O1xuICB3aWR0aDogMTAwJTsgLypzbyBwb3B1cCBib3ggaXMgYXMgd2lkZSBhcyBkZXNpZ24gY2FsbHMuIHcvbyBpdCBib3ggaXMgdG9vIHNtYWxsKi9cbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBib3gtc2l6aW5nOiBib3JkZXItYm94OyAvKnNvIHBhZGRpbmcgZG9lc250IGFkZCB0byBjb21wbGV0ZSBzaXplKi9cbiAgYm9yZGVyLXJhZGl1czogOHB4O1xufVxuXG4vKnBvcHVwIGZvciBwcmV2aWV3aW5nIGltYWdlcyovXG4ubW9kYWxfX2NvbnRhaW5lcl90eXBlX3ByZXZpZXcge1xuICBwYWRkaW5nOiAwO1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbn1cblxuLypmb3IgaW1hZ2UgcHJldmlldyovXG4ubW9kYWxfX2ltYWdlIHtcbiAgb2JqZWN0LWZpdDogY292ZXI7XG4gIG1heC13aWR0aDogODB2dztcbiAgbWF4LWhlaWdodDogODB2aDtcbiAgYm9yZGVyOiBub25lO1xuICBib3JkZXItcmFkaXVzOiA4cHg7XG59XG5cbi8qZm9yIGltYWdlIHByZXZpZXcqL1xuLm1vZGFsX19jYXB0aW9uIHtcbiAgbWFyZ2luOiA4cHggMCAwOyAvKiBidW1wZXIgYmV0d2VlbiBpbWFnZSBhbmQgdGV4dCAqL1xuICBwYWRkaW5nOiAxMHB4O1xuICB3aWR0aDogZml0LWNvbnRlbnQ7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgYm9yZGVyLXJhZGl1czogOHB4O1xuICBmb250LXNpemU6IDIwcHg7XG4gIGZvbnQtd2VpZ2h0OiA1MDA7XG4gIGxpbmUtaGVpZ2h0OiAxLjU7XG4gIGNvbG9yOiAjZmZmO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMjEyMTIxO1xufVxuXG4vKmNsb3NlIGJ1dHRvbiBmb3IgYWxsIHBvcHVwcyovXG4ubW9kYWxfX2Nsb3NlLWJ1dHRvbiB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiAzMnB4O1xuICByaWdodDogNTBweDtcbiAgd2lkdGg6IDQwcHg7XG4gIGhlaWdodDogNDBweDtcbiAgYmFja2dyb3VuZC1pbWFnZTogdXJsKC4uL2ltYWdlcy9jbG9zZWJ1dHRvbi5zdmcpO1xuICBiYWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0OyAvKiB0aGlzIGFuZCBiZyBzaXplIGlzIGtlZXBpbmcgdGhlIGljb24gdHJ1ZSB0byBzaXplICovXG4gIGJvcmRlcjogbm9uZTtcbiAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gIG9wYWNpdHk6IDQwJTtcbiAgdHJhbnNpdGlvbjogb3BhY2l0eSAwLjVzO1xuICBjdXJzb3I6IHBvaW50ZXI7XG59XG5cbi8qY2xvc2UgYnV0dG9uIGZvciBpbWFnZSBwcmV2aWV3Ki9cbi5tb2RhbF9fY2xvc2UtYnV0dG9uX3R5cGVfcHJldmlldyB7XG4gIGJhY2tncm91bmQtaW1hZ2U6IHVybCguLi9pbWFnZXMvY2xvc2UtYnV0dG9uLWxpZ2h0LnN2Zyk7XG4gIHRvcDogMDtcbiAgcmlnaHQ6IC01Mi41cHg7XG4gIG9wYWNpdHk6IDEwMCU7XG59XG5cbi5tb2RhbF9fY2xvc2UtYnV0dG9uOmhvdmVyIHtcbiAgb3BhY2l0eTogMTAwJTtcbn1cblxuLm1vZGFsX190aXRsZSB7XG4gIG1hcmdpbjogMCAwIDMycHg7XG4gIGZvbnQtd2VpZ2h0OiA1MDA7XG4gIGZvbnQtc2l6ZTogMzJweDtcbiAgbGluZS1oZWlnaHQ6IDE7XG4gIGNvbG9yOiAjMjEyMTIxO1xufVxuXG4ubW9kYWxfX2xhYmVsIHtcbiAgbWFyZ2luLWJvdHRvbTogMzJweDtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgZ2FwOiA4cHg7XG4gIGZvbnQtd2VpZ2h0OiA1MDA7XG4gIGZvbnQtc2l6ZTogMTZweDtcbiAgbGluZS1oZWlnaHQ6IDEuNztcbiAgY29sb3I6ICMyMTIxMjE7XG4gIG9wYWNpdHk6IDcwJTtcbn1cblxuLm1vZGFsX19pbnB1dCB7XG4gIHBhZGRpbmc6IDE2cHggMTJweCAxNnB4O1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgYm9yZGVyLWNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuNCk7XG4gIGZvbnQtd2VpZ2h0OiA1MDA7XG4gIGZvbnQtc2l6ZTogMjBweDtcbiAgbGluZS1oZWlnaHQ6IDE7XG4gIGNvbG9yOiAjMjEyMTIxO1xuICB0cmFuc2l0aW9uOiBib3JkZXItY29sb3IgMC41cztcbiAgYm9yZGVyLXJhZGl1czogOHB4O1xuICBjdXJzb3I6IHBvaW50ZXI7XG59XG5cbi5tb2RhbF9faW5wdXQ6aG92ZXIge1xuICBib3JkZXItY29sb3I6ICMwMDA7XG59XG5cbi5tb2RhbF9faW5wdXRfdHlwZV9lcnJvciB7XG4gIGJvcmRlcjogMXB4IHNvbGlkIHJnYmEoMjU1LCAwLCAwLCAwLjYpO1xufVxuXG4ubW9kYWxfX2Vycm9yIHtcbiAgZGlzcGxheTogYmxvY2s7XG4gIGxpbmUtaGVpZ2h0OiAxLjE7XG4gIGNvbG9yOiByZ2JhKDI1NSwgMCwgMCwgMC43KTtcbn1cblxuLm1vZGFsX19zdWJtaXQtYnV0dG9uIHtcbiAgd2lkdGg6IDE1NnB4O1xuICBwYWRkaW5nOiAxOHB4IDA7XG4gIGJvcmRlcjogbm9uZTtcbiAgYm9yZGVyLXJhZGl1czogOHB4O1xuICBmb250LXdlaWdodDogNTAwO1xuICBsaW5lLWhlaWdodDogMTtcbiAgY29sb3I6ICNmY2Y1ZTU7XG4gIGJhY2tncm91bmQtY29sb3I6ICMyMTIxMjE7XG4gIHRyYW5zaXRpb246IGJhY2tncm91bmQtY29sb3IgMC41cztcbiAgY3Vyc29yOiBwb2ludGVyO1xufVxuXG4ubW9kYWxfX3N1Ym1pdC1idXR0b246aG92ZXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKFxuICAgIDMzLFxuICAgIDMzLFxuICAgIDMzLFxuICAgIDAuOFxuICApOyAvKmNoYW5nZXMgYnV0dG9uIGNvbG9yIGR1cmluZyBob3Zlci4gbm8gaWRlYSB3aHkgaXQga2VlcHMgZm9ybWF0dGluZyB0byB0aGlzIG5vbnNlbnNlICovXG59XG5cbi5tb2RhbF9fc3VibWl0LWJ1dHRvbl9kaXNhYmxlZCB7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMzMsIDMzLCAzMywgMC4zKTtcbiAgY3Vyc29yOiBub3QtYWxsb3dlZDtcbn1cblxuLyotLS0tLS0tbW9kYWwgZm9yIERlbGV0aW5nIGltYWdlLS0tLS0tLS0tLSovXG5cbi8qY29udGFpbnMgZGVsZXRlIG1vZGFsKi9cbi5tb2RhbF9fY29udGFpbmVyX3R5cGVfZGVsZXRlIHtcbiAgcGFkZGluZzogMDtcbiAgbWF4LXdpZHRoOiA2MzBweDtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZjtcbn1cblxuLm1vZGFsX19jbG9zZS1idXR0b25fdHlwZV9kZWxldGUge1xuICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoLi4vaW1hZ2VzL2Nsb3NlLWJ1dHRvbi1saWdodC5zdmcpO1xuICByaWdodDogLTUwcHg7XG4gIHRvcDogMDtcbn1cblxuLm1vZGFsX19jbG9zZS1idXR0b25fdHlwZV9kZWxldGU6aG92ZXIge1xuICBvcGFjaXR5OiAxMDAlO1xufVxuXG4ubW9kYWxfX3RpdGxlX3R5cGVfZGVsZXRlIHtcbiAgbWFyZ2luLXRvcDogMzJweDtcbiAgZm9udC1zaXplOiAyNHB4O1xuICBsaW5lLWhlaWdodDogMTtcbiAgZGlzcGxheTogZmxleDtcbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG59XG5cbi8qY29udGFpbnMgYm90aCBidXR0b25zKi9cbi5tb2RhbF9fYnV0dG9uLWNvbnRhaW5lciB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGp1c3RpZnktY29udGVudDogY2VudGVyO1xufVxuXG4ubW9kYWxfX3N1Ym1pdC1idXR0b25fdHlwZV9kZWxldGUge1xuICBtYXJnaW4tYm90dG9tOiAzMnB4O1xuICBtYXJnaW4tcmlnaHQ6IDEwcHg7XG4gIHdpZHRoOiAxNTZweDtcbiAgcGFkZGluZzogMThweCA1MnB4O1xuICBib3JkZXI6IG5vbmU7XG4gIGJvcmRlci1yYWRpdXM6IDhweDtcbiAgZm9udC13ZWlnaHQ6IDUwMDtcbiAgbGluZS1oZWlnaHQ6IDE7XG4gIGNvbG9yOiAjMjEyMTIxO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmY2NTY1O1xuICB0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kLWNvbG9yIDAuNXM7XG4gIGN1cnNvcjogcG9pbnRlcjtcbn1cblxuLm1vZGFsX19zdWJtaXQtYnV0dG9uX3R5cGVfZGVsZXRlOmhvdmVyIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2ZmMzMzMztcbn1cblxuLm1vZGFsX19jYW5jZWwtYnV0dG9uIHtcbiAgbWFyZ2luLWJvdHRvbTogMzJweDtcbiAgbWFyZ2luLWxlZnQ6IDEwcHg7XG4gIHdpZHRoOiAxNTZweDtcbiAgcGFkZGluZzogMThweCA1MnB4O1xuICBib3JkZXI6IG5vbmU7XG4gIGJvcmRlci1yYWRpdXM6IDhweDtcbiAgZm9udC13ZWlnaHQ6IDUwMDtcbiAgbGluZS1oZWlnaHQ6IDE7XG4gIGNvbG9yOiAjMjEyMTIxO1xuICBib3JkZXI6IDFweCBzb2xpZCAjMjEyMTIxO1xuICAvKiBib3JkZXI6IDFweCBzb2xpZCByZ2JhKDAsIDAsIDAsIDAuNCk7ICovXG4gIGJhY2tncm91bmQtY29sb3I6ICNmZmY7XG4gIHRyYW5zaXRpb246IGJhY2tncm91bmQtY29sb3IgMC41cztcbiAgY3Vyc29yOiBwb2ludGVyO1xufVxuXG4ubW9kYWxfX2NhbmNlbC1idXR0b246aG92ZXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMjEyMTIxO1xuICBjb2xvcjogI2ZmZjtcbn1cblxuQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogNjI3cHgpIHtcbiAgLm1vZGFsIHtcbiAgICBwYWRkaW5nOiAwIDEwcHg7XG4gIH1cblxuICAubW9kYWxfX2NvbnRhaW5lciB7XG4gICAgcGFkZGluZzogMTJweDtcbiAgfVxuXG4gIC5tb2RhbF9fY29udGFpbmVyX3R5cGVfcHJldmlldyB7XG4gICAgbWFyZ2luOiAwIGF1dG87IC8qIENlbnRlciB0aGUgbW9kYWwgY29udGVudCAqL1xuICAgIHBhZGRpbmc6IDA7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgbWF4LXdpZHRoOiAyODhweDtcbiAgfVxuXG4gIC5tb2RhbF9faW1hZ2Uge1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIG1heC13aWR0aDogMTAwJTtcbiAgICBtaW4td2lkdGg6IDEwMCU7XG4gIH1cblxuICAubW9kYWxfX3RpdGxlIHtcbiAgICBmb250LXNpemU6IDIwcHg7XG4gICAgbWFyZ2luOiAxMHB4IDAgMzRweDtcbiAgfVxuXG4gIC5tb2RhbF9fY2xvc2UtYnV0dG9uIHtcbiAgICB0b3A6IDEycHg7XG4gICAgcmlnaHQ6IDEycHg7XG4gIH1cblxuICAubW9kYWxfX2Nsb3NlLWJ1dHRvbl90eXBlX3ByZXZpZXcge1xuICAgIHRvcDogLTQ3cHg7XG4gICAgcmlnaHQ6IDE1cHg7XG4gIH1cblxuICAubW9kYWxfX2xhYmVsIHtcbiAgICBtYXJnaW4tYm90dG9tOiAyNHB4O1xuICB9XG5cbiAgLm1vZGFsX19pbnB1dCB7XG4gICAgZm9udC1zaXplOiAxNnB4O1xuICB9XG5cbiAgLm1vZGFsX19zdWJtaXQtYnV0dG9uIHtcbiAgICB3aWR0aDogMTAwJTtcbiAgfVxuXG4gIC5tb2RhbF9fY2FwdGlvbiB7XG4gICAgZm9udC1zaXplOiAxNnB4O1xuICAgIGxpbmUtaGVpZ2h0OiAxLjI7XG4gIH1cbiAgI2RlbGV0ZS1mb3JtIHtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjsgLyogQWRkIHRoaXMgdG8gY2VudGVyIHRoZSBidXR0b25zICovXG4gIH1cblxuICAubW9kYWxfX3RpdGxlX3R5cGVfZGVsZXRlIHtcbiAgICBtYXJnaW46IDAgMCAyMHB4O1xuICAgIGZvbnQtc2l6ZTogMjBweDtcbiAgICBsaW5lLWhlaWdodDogMS4yO1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICB3aWR0aDogMTAwJTtcbiAgfVxuXG4gIC5tb2RhbF9fYnV0dG9uLWNvbnRhaW5lciB7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7IC8qIEFkZCB0aGlzIHRvIGNlbnRlciB0aGUgY29udGFpbmVyICovXG4gIH1cblxuICAubW9kYWxfX3N1Ym1pdC1idXR0b25fdHlwZV9kZWxldGUge1xuICAgIG1hcmdpbjogMCAwIDEycHg7XG4gICAgd2lkdGg6IDE1NnB4O1xuICB9XG5cbiAgLm1vZGFsX19jYW5jZWwtYnV0dG9uIHtcbiAgICBtYXJnaW46IDA7XG4gICAgd2lkdGg6IDE1NnB4O1xuICB9XG5cbiAgLm1vZGFsX19jbG9zZS1idXR0b25fdHlwZV9kZWxldGUge1xuICAgIHRvcDogLTUwcHg7XG4gICAgcmlnaHQ6IDNweDtcbiAgfVxufVxuIl0sIm5hbWVzIjpbXSwic291cmNlUm9vdCI6IiJ9*/ \ No newline at end of file diff --git a/dist/main.js b/dist/main.js index 497bcb6..7fa2f84 100644 --- a/dist/main.js +++ b/dist/main.js @@ -1,2 +1,2 @@ -!function(){"use strict";var e="/se_project_spots/";const t={formSelector:".modal__form",inputSelector:".modal__input",submitButtonSelector:".modal__submit-button",inactiveButtonClass:"modal__submit-button_disabled",inputErrorClass:"modal__input_type_error",errorClass:"modal__error"},r=e=>{console.error(`Validation Error: ${e}`)},o=(e,t,o)=>{const n=e.querySelector(`#${t.id}-error`);n?(n.textContent="",n.removeAttribute("role"),t.classList.remove(o.inputErrorClass)):r(`Error message element for input ${t.id} not found.`)},n=(e,t,r)=>{(e=>e.some((e=>!e.validity.valid)))(e)?a(t,r):(t.disabled=!1,t.classList.remove(r.inactiveButtonClass))},a=(e,t)=>{e.disabled=!0,e.classList.add(t.inactiveButtonClass)},l=(e,t,r)=>{t.forEach((t=>{o(e,t,r)}));const n=e.querySelector(r.submitButtonSelector);a(n,r)};function c(e,t){let r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:"Save",o=arguments.length>3&&void 0!==arguments[3]?arguments[3]:"Saving...";t.textContent=e?o:r}function s(e,t){let r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:"Saving...";t.preventDefault();const o=t.submitter,n=o.textContent;return c(!0,o,n,r),e().catch(console.error).finally((()=>{c(!1,o,n)}))}var i=e+"5e2464bff616faf70484.svg",d=e+"2fc47fd8e9a9bcd9612f.jpg",u=e+"49e44e5e03758262e8bf.svg",m=e+"975792ea68af0a3c209d.svg",_=e+"c81b22e9874268723f8d.svg";document.querySelector(".header__logo").src=i,document.querySelector(".profile__avatar").src=d,document.querySelector(".profile__edit-button img").src=u,document.querySelector(".profile__add-button img").src=m,document.querySelector(".profile__pencilIcon").src=_;const v=new class{constructor(e){this._baseUrl=e.baseUrl,this._headers=e.headers}_checkResponse(e){return e.ok?e.json():Promise.reject(`Error: ${e.status}`)}_request(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};const r={headers:this._headers,...t},o=`${this._baseUrl}${e}`;return fetch(o,r).then(this._checkResponse)}getUserInfo(){return this._request("/users/me")}getInitialCards(){return this._request("/cards",{method:"GET"})}editUserInfo(e){let{name:t,about:r}=e;return this._request("/users/me",{method:"PATCH",body:JSON.stringify({name:t,about:r})})}updateAvatar(e){let{avatar:t}=e;return this._request("/users/me/avatar",{method:"PATCH",body:JSON.stringify({avatar:t})})}addCard(e){let{name:t,link:r}=e;return this._request("/cards",{method:"POST",body:JSON.stringify({name:t,link:r})})}removeCard(e){return fetch(`${this._baseUrl}/cards/${e}`,{method:"DELETE",headers:this._headers}).then(this._checkResponse)}likeCard(e){return this._request(`/cards/${e}/likes`,{method:"PUT"})}dislikeCard(e){return this._request(`/cards/${e}/likes`,{method:"DELETE"})}fetchInitialData(){return Promise.all([this.getUserInfo(),this.getInitialCards()])}}({baseUrl:"https://around-api.en.tripleten-services.com/v1",headers:{authorization:"f1f1dbab-8e17-48d3-a098-d77dfd6ea3c5","Content-Type":"application/json"}});let f;v.getUserInfo().then((e=>(f=e._id,p.textContent=e.name,S.textContent=e.about,D.src=e.avatar,v.getInitialCards()))).then((e=>{e.forEach((e=>{const t=H(e);R.append(t)}))})).catch(console.error);const y=document.querySelector(".profile__edit-button"),h=document.querySelector(".profile__add-button"),p=document.querySelector(".profile__name"),S=document.querySelector(".profile__description"),q=document.querySelectorAll(".modal__close-button"),b=document.querySelector("#delete-modal"),k=b.querySelector("#delete-form"),E=b.querySelector(".modal__cancel-button"),C=document.querySelector(".profile__avatar-button"),g=document.querySelector("#new-avatar-modal"),L=g.querySelector(".modal__form"),x=g.querySelector("#new-avatar-link-input"),D=document.querySelector(".profile__avatar"),A=document.querySelector("#edit-modal"),$=A.querySelector(".modal__form"),T=A.querySelector("#profile-name-input"),U=A.querySelector("#profile-description-input"),I=document.querySelector("#new-card-modal"),w=I.querySelector(".modal__form"),P=I.querySelector("#new-card-link-input"),B=I.querySelector("#new-card-caption-input"),O=document.querySelector("#preview-modal"),j=O.querySelector(".modal__image"),N=O.querySelector(".modal__caption"),J=document.querySelector("#card-template"),R=document.querySelector(".cards__list");function H(e){const t=J.content.querySelector(".card").cloneNode(!0);t._id=e._id;const r=t.querySelector(".card__title"),o=t.querySelector(".card__image"),n=t.querySelector(".card__like-button"),a=t.querySelector(".card__like-count"),l=t.querySelector(".card__delete-button");return r.textContent=e.name,o.src=e.link,o.alt=e.name,e.isLiked?(n.classList.add("card__like-button_liked"),a.textContent="1"):a.textContent="0",n.addEventListener("click",(()=>{(n.classList.contains("card__like-button_liked")?v.dislikeCard(e._id):v.likeCard(e._id)).then((e=>{n.classList.toggle("card__like-button_liked",e.isLiked),a.textContent=e.isLiked?"1":"0"})).catch((e=>{console.error("Error updating like status:",e)}))})),l.addEventListener("click",(()=>{K(b),k._cardToDelete=t})),o.addEventListener("click",(()=>{K(O),N.textContent=e.name,j.alt=e.name,j.src=e.link})),t}function K(e){function t(t){t.target.classList.contains("modal_opened")&&z(e)}function r(t){"Escape"===t.key&&z(e)}e.classList.add("modal_opened"),document.addEventListener("click",t),document.addEventListener("keydown",r),e._handleOverlayClick=t,e._handleEscapeKeyPress=r}function z(e){e.classList.remove("modal_opened"),document.removeEventListener("click",e._handleOverlayClick),document.removeEventListener("keydown",e._handleEscapeKeyPress)}function G(){const e=T.value,t=U.value;return v.editUserInfo({name:e,about:t}).then((e=>{p.textContent=e.name,S.textContent=e.about,z(A)}))}var M;q.forEach((e=>{const t=e.closest(".modal");e.addEventListener("click",(()=>z(t)))})),y.addEventListener("click",(()=>{T.value=p.textContent,U.value=S.textContent,l($,[T,U],t),K(A)})),C.addEventListener("click",(()=>{K(g)})),h.addEventListener("click",(()=>{K(I)})),E.addEventListener("click",(()=>{z(b)})),$.addEventListener("submit",(function(e){s(G,e,"Saving...")})),w.addEventListener("submit",(function(e){e.preventDefault();const t=w.querySelector(".modal__submit-button");c(!0,t),v.addCard({name:B.value,link:P.value}).then((t=>{const r=H(t);R.prepend(r),e.target.reset(),z(I)})).catch(console.error).finally((()=>{c(!1,t)}))})),k.addEventListener("submit",(e=>{e.preventDefault();const t=k.querySelector(".modal__submit-button");c(!0,t,"Delete","Deleting..."),v.removeCard(k._cardToDelete._id).then((()=>{s((()=>{k._cardToDelete.remove()})),z(b)})).catch(console.error).finally((()=>{c(!1,t,"Delete")}))})),L.addEventListener("submit",(e=>{e.preventDefault();const t=L.querySelector(".modal__submit-button");c(!0,t),v.updateAvatar({avatar:x.value}).then((t=>{D.src=t.avatar,e.target.reset(),z(g)})).catch(console.error).finally((()=>{c(!1,t)}))})),M=t,document.querySelectorAll(M.formSelector).forEach((e=>{const t=Array.from(e.querySelectorAll(M.inputSelector));((e,t)=>{const a=Array.from(e.querySelectorAll(t.inputSelector)),l=e.querySelector(t.submitButtonSelector);n(a,l,t),a.forEach((c=>{c.addEventListener("input",(()=>{((e,t,n)=>{t.validity.valid?o(e,t,n):((e,t,o,n)=>{const a=e.querySelector(`#${t.id}-error`);a?(a.textContent=o,a.setAttribute("role","alert"),t.classList.add(n.inputErrorClass)):r(`Error message element for input ${t.id} not found.`)})(e,t,t.validationMessage,n)})(e,c,t),n(a,l,t)}))}))})(e,M),e.addEventListener("reset",(()=>{l(e,t,M)}))}))}(); -//# sourceMappingURL=data:application/json;charset=utf-8;base64,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QUFnQnJCLEVBQWFXLEVBQVdULEVBQU8sR0FDL0MsRyIsInNvdXJjZXMiOlsid2VicGFjazovL3NlX3Byb2plY3Rfc3BvdHMvd2VicGFjay9ib290c3RyYXAiLCJ3ZWJwYWNrOi8vc2VfcHJvamVjdF9zcG90cy93ZWJwYWNrL3J1bnRpbWUvcHVibGljUGF0aCIsIndlYnBhY2s6Ly9zZV9wcm9qZWN0X3Nwb3RzLy4vc3JjL3NjcmlwdHMvdmFsaWRhdGlvbi5qcyIsIndlYnBhY2s6Ly9zZV9wcm9qZWN0X3Nwb3RzLy4vc3JjL3V0aWxzL3V0aWxzLmpzIiwid2VicGFjazovL3NlX3Byb2plY3Rfc3BvdHMvLi9zcmMvcGFnZXMvaW5kZXguanMiLCJ3ZWJwYWNrOi8vc2VfcHJvamVjdF9zcG90cy8uL3NyYy91dGlscy9BcGkuanMiXSwic291cmNlc0NvbnRlbnQiOlsiLy8gVGhlIHJlcXVpcmUgc2NvcGVcbnZhciBfX3dlYnBhY2tfcmVxdWlyZV9fID0ge307XG5cbiIsIl9fd2VicGFja19yZXF1aXJlX18ucCA9IFwiL3NlX3Byb2plY3Rfc3BvdHMvXCI7IiwiZXhwb3J0IGNvbnN0IHNldHRpbmdzID0ge1xyXG4gIGZvcm1TZWxlY3RvcjogXCIubW9kYWxfX2Zvcm1cIixcclxuICBpbnB1dFNlbGVjdG9yOiBcIi5tb2RhbF9faW5wdXRcIixcclxuICBzdWJtaXRCdXR0b25TZWxlY3RvcjogXCIubW9kYWxfX3N1Ym1pdC1idXR0b25cIixcclxuICBpbmFjdGl2ZUJ1dHRvbkNsYXNzOiBcIm1vZGFsX19zdWJtaXQtYnV0dG9uX2Rpc2FibGVkXCIsXHJcbiAgaW5wdXRFcnJvckNsYXNzOiBcIm1vZGFsX19pbnB1dF90eXBlX2Vycm9yXCIsXHJcbiAgZXJyb3JDbGFzczogXCJtb2RhbF9fZXJyb3JcIixcclxufTtcclxuXHJcbi8vIFV0aWxpdHkgZm9yIGxvZ2dpbmcgZXJyb3JzXHJcbmNvbnN0IGxvZ0Vycm9yID0gKG1lc3NhZ2UpID0+IHtcclxuICBjb25zb2xlLmVycm9yKGBWYWxpZGF0aW9uIEVycm9yOiAke21lc3NhZ2V9YCk7XHJcbn07XHJcblxyXG4vLyBTaG93IGlucHV0IGVycm9yIG1lc3NhZ2VcclxuY29uc3Qgc2hvd0lucHV0RXJyb3IgPSAoZm9ybUVsZW1lbnQsIGlucHV0RWxlbWVudCwgZXJyb3JNZXNzYWdlLCBjb25maWcpID0+IHtcclxuICBjb25zdCBlcnJvck1lc3NhZ2VFbGVtZW50ID0gZm9ybUVsZW1lbnQucXVlcnlTZWxlY3RvcihcclxuICAgIGAjJHtpbnB1dEVsZW1lbnQuaWR9LWVycm9yYFxyXG4gICk7XHJcblxyXG4gIGlmICghZXJyb3JNZXNzYWdlRWxlbWVudCkge1xyXG4gICAgbG9nRXJyb3IoYEVycm9yIG1lc3NhZ2UgZWxlbWVudCBmb3IgaW5wdXQgJHtpbnB1dEVsZW1lbnQuaWR9IG5vdCBmb3VuZC5gKTtcclxuICAgIHJldHVybjtcclxuICB9XHJcblxyXG4gIGVycm9yTWVzc2FnZUVsZW1lbnQudGV4dENvbnRlbnQgPSBlcnJvck1lc3NhZ2U7XHJcbiAgZXJyb3JNZXNzYWdlRWxlbWVudC5zZXRBdHRyaWJ1dGUoXCJyb2xlXCIsIFwiYWxlcnRcIik7IC8vIEFjY2Vzc2liaWxpdHkgZW5oYW5jZW1lbnRcclxuICBpbnB1dEVsZW1lbnQuY2xhc3NMaXN0LmFkZChjb25maWcuaW5wdXRFcnJvckNsYXNzKTtcclxufTtcclxuXHJcbi8vIEhpZGUgaW5wdXQgZXJyb3IgbWVzc2FnZVxyXG5jb25zdCBoaWRlSW5wdXRFcnJvciA9IChmb3JtRWxlbWVudCwgaW5wdXRFbGVtZW50LCBjb25maWcpID0+IHtcclxuICBjb25zdCBlcnJvck1lc3NhZ2VFbGVtZW50ID0gZm9ybUVsZW1lbnQucXVlcnlTZWxlY3RvcihcclxuICAgIGAjJHtpbnB1dEVsZW1lbnQuaWR9LWVycm9yYFxyXG4gICk7XHJcblxyXG4gIGlmICghZXJyb3JNZXNzYWdlRWxlbWVudCkge1xyXG4gICAgbG9nRXJyb3IoYEVycm9yIG1lc3NhZ2UgZWxlbWVudCBmb3IgaW5wdXQgJHtpbnB1dEVsZW1lbnQuaWR9IG5vdCBmb3VuZC5gKTtcclxuICAgIHJldHVybjtcclxuICB9XHJcblxyXG4gIGVycm9yTWVzc2FnZUVsZW1lbnQudGV4dENvbnRlbnQgPSBcIlwiO1xyXG4gIGVycm9yTWVzc2FnZUVsZW1lbnQucmVtb3ZlQXR0cmlidXRlKFwicm9sZVwiKTtcclxuICBpbnB1dEVsZW1lbnQuY2xhc3NMaXN0LnJlbW92ZShjb25maWcuaW5wdXRFcnJvckNsYXNzKTtcclxufTtcclxuXHJcbi8vIENoZWNrIGlucHV0IHZhbGlkaXR5XHJcbmNvbnN0IGNoZWNrSW5wdXRWYWxpZGl0eSA9IChmb3JtRWxlbWVudCwgaW5wdXRFbGVtZW50LCBjb25maWcpID0+IHtcclxuICBpZiAoIWlucHV0RWxlbWVudC52YWxpZGl0eS52YWxpZCkge1xyXG4gICAgc2hvd0lucHV0RXJyb3IoXHJcbiAgICAgIGZvcm1FbGVtZW50LFxyXG4gICAgICBpbnB1dEVsZW1lbnQsXHJcbiAgICAgIGlucHV0RWxlbWVudC52YWxpZGF0aW9uTWVzc2FnZSxcclxuICAgICAgY29uZmlnXHJcbiAgICApO1xyXG4gIH0gZWxzZSB7XHJcbiAgICBoaWRlSW5wdXRFcnJvcihmb3JtRWxlbWVudCwgaW5wdXRFbGVtZW50LCBjb25maWcpO1xyXG4gIH1cclxufTtcclxuXHJcbi8vIENoZWNrIGlmIGZvcm0gaGFzIGludmFsaWQgaW5wdXRcclxuY29uc3QgaGFzSW52YWxpZElucHV0ID0gKGlucHV0TGlzdCkgPT4ge1xyXG4gIHJldHVybiBpbnB1dExpc3Quc29tZSgoaW5wdXQpID0+ICFpbnB1dC52YWxpZGl0eS52YWxpZCk7XHJcbn07XHJcblxyXG4vLyBUb2dnbGUgYnV0dG9uIHN0YXRlXHJcbmNvbnN0IHRvZ2dsZUJ1dHRvblN0YXRlID0gKGlucHV0TGlzdCwgYnV0dG9uRWxlbWVudCwgY29uZmlnKSA9PiB7XHJcbiAgaWYgKGhhc0ludmFsaWRJbnB1dChpbnB1dExpc3QpKSB7XHJcbiAgICBkaXNhYmxlQnV0dG9uKGJ1dHRvbkVsZW1lbnQsIGNvbmZpZyk7XHJcbiAgfSBlbHNlIHtcclxuICAgIGJ1dHRvbkVsZW1lbnQuZGlzYWJsZWQgPSBmYWxzZTtcclxuICAgIGJ1dHRvbkVsZW1lbnQuY2xhc3NMaXN0LnJlbW92ZShjb25maWcuaW5hY3RpdmVCdXR0b25DbGFzcyk7XHJcbiAgfVxyXG59O1xyXG5cclxuLy8gRGlzYWJsZSBidXR0b25cclxuY29uc3QgZGlzYWJsZUJ1dHRvbiA9IChidXR0b25FbGVtZW50LCBjb25maWcpID0+IHtcclxuICBidXR0b25FbGVtZW50LmRpc2FibGVkID0gdHJ1ZTtcclxuICBidXR0b25FbGVtZW50LmNsYXNzTGlzdC5hZGQoY29uZmlnLmluYWN0aXZlQnV0dG9uQ2xhc3MpO1xyXG59O1xyXG5cclxuLy8gUmVzZXQgdmFsaWRhdGlvblxyXG5leHBvcnQgY29uc3QgcmVzZXRWYWxpZGF0aW9uID0gKGZvcm1FbGVtZW50LCBpbnB1dExpc3QsIGNvbmZpZykgPT4ge1xyXG4gIGlucHV0TGlzdC5mb3JFYWNoKChpbnB1dCkgPT4ge1xyXG4gICAgaGlkZUlucHV0RXJyb3IoZm9ybUVsZW1lbnQsIGlucHV0LCBjb25maWcpO1xyXG4gIH0pO1xyXG5cclxuICBjb25zdCBidXR0b25FbGVtZW50ID0gZm9ybUVsZW1lbnQucXVlcnlTZWxlY3Rvcihjb25maWcuc3VibWl0QnV0dG9uU2VsZWN0b3IpO1xyXG4gIGRpc2FibGVCdXR0b24oYnV0dG9uRWxlbWVudCwgY29uZmlnKTsgLy8gRGlzYWJsZSB0aGUgYnV0dG9uIGR1cmluZyByZXNldFxyXG59O1xyXG5cclxuLy8gQWRkIGV2ZW50IGxpc3RlbmVycyB0byB0aGUgZm9ybVxyXG5jb25zdCBzZXRFdmVudExpc3RlbmVycyA9IChmb3JtRWxlbWVudCwgY29uZmlnKSA9PiB7XHJcbiAgY29uc3QgaW5wdXRMaXN0ID0gQXJyYXkuZnJvbShcclxuICAgIGZvcm1FbGVtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoY29uZmlnLmlucHV0U2VsZWN0b3IpXHJcbiAgKTtcclxuICBjb25zdCBidXR0b25FbGVtZW50ID0gZm9ybUVsZW1lbnQucXVlcnlTZWxlY3Rvcihjb25maWcuc3VibWl0QnV0dG9uU2VsZWN0b3IpO1xyXG5cclxuICB0b2dnbGVCdXR0b25TdGF0ZShpbnB1dExpc3QsIGJ1dHRvbkVsZW1lbnQsIGNvbmZpZyk7IC8vIEluaXRpYWwgYnV0dG9uIHN0YXRlIGNoZWNrXHJcblxyXG4gIGlucHV0TGlzdC5mb3JFYWNoKChpbnB1dEVsZW1lbnQpID0+IHtcclxuICAgIGlucHV0RWxlbWVudC5hZGRFdmVudExpc3RlbmVyKFwiaW5wdXRcIiwgKCkgPT4ge1xyXG4gICAgICBjaGVja0lucHV0VmFsaWRpdHkoZm9ybUVsZW1lbnQsIGlucHV0RWxlbWVudCwgY29uZmlnKTtcclxuICAgICAgdG9nZ2xlQnV0dG9uU3RhdGUoaW5wdXRMaXN0LCBidXR0b25FbGVtZW50LCBjb25maWcpOyAvLyBVcGRhdGUgYnV0dG9uIHN0YXRlIG9uIGlucHV0XHJcbiAgICB9KTtcclxuICB9KTtcclxufTtcclxuXHJcbi8vIEVuYWJsZSB2YWxpZGF0aW9uIGZvciBhbGwgZm9ybXNcclxuZXhwb3J0IGNvbnN0IGVuYWJsZVZhbGlkYXRpb24gPSAoY29uZmlnKSA9PiB7XHJcbiAgY29uc3QgZm9ybUxpc3QgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKGNvbmZpZy5mb3JtU2VsZWN0b3IpO1xyXG5cclxuICBmb3JtTGlzdC5mb3JFYWNoKChmb3JtRWxlbWVudCkgPT4ge1xyXG4gICAgY29uc3QgaW5wdXRMaXN0ID0gQXJyYXkuZnJvbShcclxuICAgICAgZm9ybUVsZW1lbnQucXVlcnlTZWxlY3RvckFsbChjb25maWcuaW5wdXRTZWxlY3RvcilcclxuICAgICk7XHJcbiAgICBzZXRFdmVudExpc3RlbmVycyhmb3JtRWxlbWVudCwgY29uZmlnKTtcclxuXHJcbiAgICAvLyBDbGVhciB2YWxpZGF0aW9uIG9uIGZvcm0gcmVzZXRcclxuICAgIGZvcm1FbGVtZW50LmFkZEV2ZW50TGlzdGVuZXIoXCJyZXNldFwiLCAoKSA9PiB7XHJcbiAgICAgIHJlc2V0VmFsaWRhdGlvbihmb3JtRWxlbWVudCwgaW5wdXRMaXN0LCBjb25maWcpO1xyXG4gICAgfSk7XHJcbiAgfSk7XHJcbn07XHJcbiIsImV4cG9ydCBmdW5jdGlvbiByZW5kZXJMb2FkaW5nKFxuICBpc0xvYWRpbmcsXG4gIGJ1dHRvbixcbiAgYnV0dG9uVGV4dCA9IFwiU2F2ZVwiLFxuICBsb2FkaW5nVGV4dCA9IFwiU2F2aW5nLi4uXCJcbikge1xuICBpZiAoaXNMb2FkaW5nKSB7XG4gICAgYnV0dG9uLnRleHRDb250ZW50ID0gbG9hZGluZ1RleHQ7XG4gIH0gZWxzZSB7XG4gICAgYnV0dG9uLnRleHRDb250ZW50ID0gYnV0dG9uVGV4dDtcbiAgfVxufVxuXG5leHBvcnQgZnVuY3Rpb24gaGFuZGxlU3VibWl0KHJlcXVlc3QsIGV2dCwgbG9hZGluZ1RleHQgPSBcIlNhdmluZy4uLlwiKSB7XG4gIGV2dC5wcmV2ZW50RGVmYXVsdCgpO1xuICBjb25zdCBzdWJtaXRCdXR0b24gPSBldnQuc3VibWl0dGVyO1xuICBjb25zdCBpbml0aWFsVGV4dCA9IHN1Ym1pdEJ1dHRvbi50ZXh0Q29udGVudDtcblxuICByZW5kZXJMb2FkaW5nKHRydWUsIHN1Ym1pdEJ1dHRvbiwgaW5pdGlhbFRleHQsIGxvYWRpbmdUZXh0KTtcblxuICByZXR1cm4gcmVxdWVzdCgpXG4gICAgLmNhdGNoKGNvbnNvbGUuZXJyb3IpXG4gICAgLmZpbmFsbHkoKCkgPT4ge1xuICAgICAgcmVuZGVyTG9hZGluZyhmYWxzZSwgc3VibWl0QnV0dG9uLCBpbml0aWFsVGV4dCk7XG4gICAgfSk7XG59XG4iLCJpbXBvcnQgXCIuL2luZGV4LmNzc1wiOyAvLyBJbXBvcnRpbmcgdGhlIENTUyBmaWxlXHJcbmltcG9ydCB7XHJcbiAgZW5hYmxlVmFsaWRhdGlvbixcclxuICBzZXR0aW5ncyxcclxuICByZXNldFZhbGlkYXRpb24sXHJcbn0gZnJvbSBcIi4uL3NjcmlwdHMvdmFsaWRhdGlvbi5qc1wiOyAvLyBJbXBvcnRpbmcgdmFsaWRhdGlvbiBmdW5jdGlvbnNcclxuaW1wb3J0IEFwaSBmcm9tIFwiLi4vdXRpbHMvQXBpLmpzXCI7IC8vIEltcG9ydGluZyB0aGUgQVBJIGNsYXNzXHJcbmltcG9ydCB7IGhhbmRsZVN1Ym1pdCwgcmVuZGVyTG9hZGluZyB9IGZyb20gXCIuLi91dGlscy91dGlscy5qc1wiOyAvLyBJbXBvcnRpbmcgdXRpbGl0eSBmdW5jdGlvbnNcclxuXHJcbi8vIEltcG9ydGluZyBpbWFnZXMgYW5kIG90aGVyIGFzc2V0c1xyXG5pbXBvcnQgbG9nb1BhdGggZnJvbSBcIi4uL2ltYWdlcy9sb2dvLnN2Z1wiO1xyXG5pbXBvcnQgYXZhdGFyUGF0aCBmcm9tIFwiLi4vaW1hZ2VzL2F2YXRhci5qcGdcIjtcclxuaW1wb3J0IGVkaXRCdXR0b25QYXRoIGZyb20gXCIuLi9pbWFnZXMvZWRpdGJ0bi5zdmdcIjtcclxuaW1wb3J0IGFkZEJ1dHRvblBhdGggZnJvbSBcIi4uL2ltYWdlcy9hZGRidG4uc3ZnXCI7XHJcbmltcG9ydCBlZGl0TGlnaHRCdXR0b25QYXRoIGZyb20gXCIuLi9pbWFnZXMvZWRpdGJ0bi1saWdodC5zdmdcIjtcclxuXHJcbmRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoXCIuaGVhZGVyX19sb2dvXCIpLnNyYyA9IGxvZ29QYXRoO1xyXG5kb2N1bWVudC5xdWVyeVNlbGVjdG9yKFwiLnByb2ZpbGVfX2F2YXRhclwiKS5zcmMgPSBhdmF0YXJQYXRoO1xyXG5kb2N1bWVudC5xdWVyeVNlbGVjdG9yKFwiLnByb2ZpbGVfX2VkaXQtYnV0dG9uIGltZ1wiKS5zcmMgPSBlZGl0QnV0dG9uUGF0aDtcclxuZG9jdW1lbnQucXVlcnlTZWxlY3RvcihcIi5wcm9maWxlX19hZGQtYnV0dG9uIGltZ1wiKS5zcmMgPSBhZGRCdXR0b25QYXRoO1xyXG5kb2N1bWVudC5xdWVyeVNlbGVjdG9yKFwiLnByb2ZpbGVfX3BlbmNpbEljb25cIikuc3JjID0gZWRpdExpZ2h0QnV0dG9uUGF0aDtcclxuXHJcbmNvbnN0IGFwaSA9IG5ldyBBcGkoe1xyXG4gIGJhc2VVcmw6IFwiaHR0cHM6Ly9hcm91bmQtYXBpLmVuLnRyaXBsZXRlbi1zZXJ2aWNlcy5jb20vdjFcIixcclxuICBoZWFkZXJzOiB7XHJcbiAgICBhdXRob3JpemF0aW9uOiBcImYxZjFkYmFiLThlMTctNDhkMy1hMDk4LWQ3N2RmZDZlYTNjNVwiLFxyXG4gICAgXCJDb250ZW50LVR5cGVcIjogXCJhcHBsaWNhdGlvbi9qc29uXCIsXHJcbiAgfSxcclxufSk7XHJcblxyXG5sZXQgdXNlcklkO1xyXG5cclxuYXBpXHJcbiAgLmdldFVzZXJJbmZvKClcclxuICAudGhlbigodXNlckRhdGEpID0+IHtcclxuICAgIHVzZXJJZCA9IHVzZXJEYXRhLl9pZDtcclxuICAgIHByb2ZpbGVOYW1lLnRleHRDb250ZW50ID0gdXNlckRhdGEubmFtZTtcclxuICAgIHByb2ZpbGVEZXNjcmlwdGlvbi50ZXh0Q29udGVudCA9IHVzZXJEYXRhLmFib3V0O1xyXG4gICAgcHJvZmlsZUF2YXRhci5zcmMgPSB1c2VyRGF0YS5hdmF0YXI7XHJcbiAgICByZXR1cm4gYXBpLmdldEluaXRpYWxDYXJkcygpO1xyXG4gIH0pXHJcbiAgLnRoZW4oKGNhcmRzKSA9PiB7XHJcbiAgICBjYXJkcy5mb3JFYWNoKChjYXJkKSA9PiB7XHJcbiAgICAgIGNvbnN0IGNhcmRFbGVtZW50ID0gZ2V0Q2FyZEVsZW1lbnQoY2FyZCk7XHJcbiAgICAgIGNhcmRzTGlzdC5hcHBlbmQoY2FyZEVsZW1lbnQpO1xyXG4gICAgfSk7XHJcbiAgfSlcclxuICAuY2F0Y2goY29uc29sZS5lcnJvcik7XHJcblxyXG4vLyBQcm9maWxlIFNlbGVjdG9yc1xyXG5jb25zdCBlZGl0TW9kYWxCdXR0b24gPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKFwiLnByb2ZpbGVfX2VkaXQtYnV0dG9uXCIpO1xyXG5jb25zdCBjYXJkTW9kYWxCdXR0b24gPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKFwiLnByb2ZpbGVfX2FkZC1idXR0b25cIik7XHJcbmNvbnN0IHByb2ZpbGVOYW1lID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvcihcIi5wcm9maWxlX19uYW1lXCIpO1xyXG5jb25zdCBwcm9maWxlRGVzY3JpcHRpb24gPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKFwiLnByb2ZpbGVfX2Rlc2NyaXB0aW9uXCIpO1xyXG5cclxuLy8gTW9kYWwgU2VsZWN0b3JzXHJcbi8vIGNvbnN0IG1vZGFscyA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoXCIubW9kYWxcIik7XHJcbmNvbnN0IGNsb3NlQnV0dG9ucyA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoXCIubW9kYWxfX2Nsb3NlLWJ1dHRvblwiKTtcclxuY29uc3QgZGVsZXRlTW9kYWwgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKFwiI2RlbGV0ZS1tb2RhbFwiKTtcclxuY29uc3QgZGVsZXRlRm9ybSA9IGRlbGV0ZU1vZGFsLnF1ZXJ5U2VsZWN0b3IoXCIjZGVsZXRlLWZvcm1cIik7XHJcbmNvbnN0IGNhbmNlbERlbGV0ZUJ1dHRvbiA9IGRlbGV0ZU1vZGFsLnF1ZXJ5U2VsZWN0b3IoXCIubW9kYWxfX2NhbmNlbC1idXR0b25cIik7XHJcbmNvbnN0IGF2YXRhckVkaXRCdXR0b24gPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKFwiLnByb2ZpbGVfX2F2YXRhci1idXR0b25cIik7XHJcbmNvbnN0IGF2YXRhck1vZGFsID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvcihcIiNuZXctYXZhdGFyLW1vZGFsXCIpO1xyXG5jb25zdCBhdmF0YXJGb3JtID0gYXZhdGFyTW9kYWwucXVlcnlTZWxlY3RvcihcIi5tb2RhbF9fZm9ybVwiKTtcclxuY29uc3QgYXZhdGFyTGlua0lucHV0ID0gYXZhdGFyTW9kYWwucXVlcnlTZWxlY3RvcihcIiNuZXctYXZhdGFyLWxpbmstaW5wdXRcIik7XHJcbmNvbnN0IHByb2ZpbGVBdmF0YXIgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKFwiLnByb2ZpbGVfX2F2YXRhclwiKTtcclxuXHJcbi8vIE1vZGFsIC0gRWRpdCBQcm9maWxlXHJcbmNvbnN0IGVkaXRNb2RhbCA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoXCIjZWRpdC1tb2RhbFwiKTtcclxuY29uc3QgZWRpdEZvcm0gPSBlZGl0TW9kYWwucXVlcnlTZWxlY3RvcihcIi5tb2RhbF9fZm9ybVwiKTtcclxuY29uc3QgZWRpdE1vZGFsTmFtZUlucHV0ID0gZWRpdE1vZGFsLnF1ZXJ5U2VsZWN0b3IoXCIjcHJvZmlsZS1uYW1lLWlucHV0XCIpO1xyXG5jb25zdCBlZGl0TW9kYWxEZXNjcmlwdGlvbklucHV0ID0gZWRpdE1vZGFsLnF1ZXJ5U2VsZWN0b3IoXHJcbiAgXCIjcHJvZmlsZS1kZXNjcmlwdGlvbi1pbnB1dFwiXHJcbik7XHJcblxyXG4vLyBNb2RhbCAtIEFkZCBDYXJkXHJcbmNvbnN0IGNhcmRNb2RhbCA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoXCIjbmV3LWNhcmQtbW9kYWxcIik7XHJcbmNvbnN0IGNhcmRGb3JtID0gY2FyZE1vZGFsLnF1ZXJ5U2VsZWN0b3IoXCIubW9kYWxfX2Zvcm1cIik7XHJcbi8vIGNvbnN0IGNhcmRTdWJtaXRCdXR0b24gPSBjYXJkTW9kYWwucXVlcnlTZWxlY3RvcihcIi5tb2RhbF9fc3VibWl0LWJ1dHRvblwiKTtcclxuY29uc3QgY2FyZExpbmtJbnB1dCA9IGNhcmRNb2RhbC5xdWVyeVNlbGVjdG9yKFwiI25ldy1jYXJkLWxpbmstaW5wdXRcIik7XHJcbmNvbnN0IGNhcmRDYXB0aW9uSW5wdXQgPSBjYXJkTW9kYWwucXVlcnlTZWxlY3RvcihcIiNuZXctY2FyZC1jYXB0aW9uLWlucHV0XCIpO1xyXG5cclxuLy8gTW9kYWwgUHJldmlld1xyXG5jb25zdCBwcmV2aWV3TW9kYWwgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKFwiI3ByZXZpZXctbW9kYWxcIik7XHJcbmNvbnN0IHByZXZpZXdJbWFnZSA9IHByZXZpZXdNb2RhbC5xdWVyeVNlbGVjdG9yKFwiLm1vZGFsX19pbWFnZVwiKTtcclxuY29uc3QgcHJldmlld0NhcHRpb24gPSBwcmV2aWV3TW9kYWwucXVlcnlTZWxlY3RvcihcIi5tb2RhbF9fY2FwdGlvblwiKTtcclxuXHJcbi8vIENhcmRzXHJcbmNvbnN0IGNhcmRUZW1wbGF0ZSA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoXCIjY2FyZC10ZW1wbGF0ZVwiKTtcclxuY29uc3QgY2FyZHNMaXN0ID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvcihcIi5jYXJkc19fbGlzdFwiKTtcclxuXHJcbmZ1bmN0aW9uIGdldENhcmRFbGVtZW50KGRhdGEpIHtcclxuICBjb25zdCBjYXJkRWxlbWVudCA9IGNhcmRUZW1wbGF0ZS5jb250ZW50XHJcbiAgICAucXVlcnlTZWxlY3RvcihcIi5jYXJkXCIpXHJcbiAgICAuY2xvbmVOb2RlKHRydWUpO1xyXG4gIGNhcmRFbGVtZW50Ll9pZCA9IGRhdGEuX2lkO1xyXG5cclxuICBjb25zdCBjYXJkVGl0bGUgPSBjYXJkRWxlbWVudC5xdWVyeVNlbGVjdG9yKFwiLmNhcmRfX3RpdGxlXCIpO1xyXG4gIGNvbnN0IGNhcmRJbWFnZSA9IGNhcmRFbGVtZW50LnF1ZXJ5U2VsZWN0b3IoXCIuY2FyZF9faW1hZ2VcIik7XHJcbiAgY29uc3QgY2FyZExpa2VCdXR0b24gPSBjYXJkRWxlbWVudC5xdWVyeVNlbGVjdG9yKFwiLmNhcmRfX2xpa2UtYnV0dG9uXCIpO1xyXG4gIGNvbnN0IGNhcmRMaWtlQ291bnQgPSBjYXJkRWxlbWVudC5xdWVyeVNlbGVjdG9yKFwiLmNhcmRfX2xpa2UtY291bnRcIik7XHJcbiAgY29uc3QgY2FyZERlbGV0ZUJ1dHRvbiA9IGNhcmRFbGVtZW50LnF1ZXJ5U2VsZWN0b3IoXCIuY2FyZF9fZGVsZXRlLWJ1dHRvblwiKTtcclxuXHJcbiAgLy8gU2V0IGNhcmQgZGF0YVxyXG4gIGNhcmRUaXRsZS50ZXh0Q29udGVudCA9IGRhdGEubmFtZTtcclxuICBjYXJkSW1hZ2Uuc3JjID0gZGF0YS5saW5rOyAvLyBNYWtlIHN1cmUgdGhpcyBsaW5lIGlzIHByZXNlbnRcclxuICBjYXJkSW1hZ2UuYWx0ID0gZGF0YS5uYW1lO1xyXG5cclxuICAvLyBTZXQgaW5pdGlhbCBsaWtlIHN0YXRlIGFuZCBjb3VudFxyXG4gIGlmIChkYXRhLmlzTGlrZWQpIHtcclxuICAgIGNhcmRMaWtlQnV0dG9uLmNsYXNzTGlzdC5hZGQoXCJjYXJkX19saWtlLWJ1dHRvbl9saWtlZFwiKTtcclxuICAgIGNhcmRMaWtlQ291bnQudGV4dENvbnRlbnQgPSBcIjFcIjsgLy8gU2V0IHRvIDEgaWYgdGhlIGNhcmQgaXMgbGlrZWRcclxuICB9IGVsc2Uge1xyXG4gICAgY2FyZExpa2VDb3VudC50ZXh0Q29udGVudCA9IFwiMFwiOyAvLyBTZXQgdG8gMCBpZiB0aGUgY2FyZCBpcyBub3QgbGlrZWRcclxuICB9XHJcblxyXG4gIGNhcmRMaWtlQnV0dG9uLmFkZEV2ZW50TGlzdGVuZXIoXCJjbGlja1wiLCAoKSA9PiB7XHJcbiAgICBjb25zdCBpc0N1cnJlbnRseUxpa2VkID0gY2FyZExpa2VCdXR0b24uY2xhc3NMaXN0LmNvbnRhaW5zKFxyXG4gICAgICBcImNhcmRfX2xpa2UtYnV0dG9uX2xpa2VkXCJcclxuICAgICk7XHJcblxyXG4gICAgY29uc3QgbGlrZUNhcmRQcm9taXNlID0gaXNDdXJyZW50bHlMaWtlZFxyXG4gICAgICA/IGFwaS5kaXNsaWtlQ2FyZChkYXRhLl9pZClcclxuICAgICAgOiBhcGkubGlrZUNhcmQoZGF0YS5faWQpO1xyXG5cclxuICAgIGxpa2VDYXJkUHJvbWlzZVxyXG4gICAgICAudGhlbigodXBkYXRlZENhcmQpID0+IHtcclxuICAgICAgICBjYXJkTGlrZUJ1dHRvbi5jbGFzc0xpc3QudG9nZ2xlKFxyXG4gICAgICAgICAgXCJjYXJkX19saWtlLWJ1dHRvbl9saWtlZFwiLFxyXG4gICAgICAgICAgdXBkYXRlZENhcmQuaXNMaWtlZFxyXG4gICAgICAgICk7XHJcbiAgICAgICAgY2FyZExpa2VDb3VudC50ZXh0Q29udGVudCA9IHVwZGF0ZWRDYXJkLmlzTGlrZWQgPyBcIjFcIiA6IFwiMFwiO1xyXG4gICAgICB9KVxyXG4gICAgICAuY2F0Y2goKGVycm9yKSA9PiB7XHJcbiAgICAgICAgY29uc29sZS5lcnJvcihcIkVycm9yIHVwZGF0aW5nIGxpa2Ugc3RhdHVzOlwiLCBlcnJvcik7XHJcbiAgICAgIH0pO1xyXG4gIH0pO1xyXG5cclxuICAvLyBkZWxldGUgYW5kIHByZXZpZXcgZXZlbnQgbGlzdGVuZXJzXHJcbiAgY2FyZERlbGV0ZUJ1dHRvbi5hZGRFdmVudExpc3RlbmVyKFwiY2xpY2tcIiwgKCkgPT4ge1xyXG4gICAgb3Blbk1vZGFsKGRlbGV0ZU1vZGFsKTtcclxuICAgIGRlbGV0ZUZvcm0uX2NhcmRUb0RlbGV0ZSA9IGNhcmRFbGVtZW50O1xyXG4gIH0pO1xyXG5cclxuICBjYXJkSW1hZ2UuYWRkRXZlbnRMaXN0ZW5lcihcImNsaWNrXCIsICgpID0+IHtcclxuICAgIG9wZW5Nb2RhbChwcmV2aWV3TW9kYWwpO1xyXG4gICAgcHJldmlld0NhcHRpb24udGV4dENvbnRlbnQgPSBkYXRhLm5hbWU7XHJcbiAgICBwcmV2aWV3SW1hZ2UuYWx0ID0gZGF0YS5uYW1lO1xyXG4gICAgcHJldmlld0ltYWdlLnNyYyA9IGRhdGEubGluaztcclxuICB9KTtcclxuXHJcbiAgcmV0dXJuIGNhcmRFbGVtZW50O1xyXG59XHJcblxyXG5mdW5jdGlvbiBvcGVuTW9kYWwobW9kYWwpIHtcclxuICBtb2RhbC5jbGFzc0xpc3QuYWRkKFwibW9kYWxfb3BlbmVkXCIpO1xyXG5cclxuICBkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKFwiY2xpY2tcIiwgaGFuZGxlT3ZlcmxheUNsaWNrKTtcclxuICBkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKFwia2V5ZG93blwiLCBoYW5kbGVFc2NhcGVLZXlQcmVzcyk7XHJcblxyXG4gIG1vZGFsLl9oYW5kbGVPdmVybGF5Q2xpY2sgPSBoYW5kbGVPdmVybGF5Q2xpY2s7XHJcbiAgbW9kYWwuX2hhbmRsZUVzY2FwZUtleVByZXNzID0gaGFuZGxlRXNjYXBlS2V5UHJlc3M7XHJcblxyXG4gIGZ1bmN0aW9uIGhhbmRsZU92ZXJsYXlDbGljayhldmVudCkge1xyXG4gICAgaWYgKGV2ZW50LnRhcmdldC5jbGFzc0xpc3QuY29udGFpbnMoXCJtb2RhbF9vcGVuZWRcIikpIHtcclxuICAgICAgY2xvc2VNb2RhbChtb2RhbCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBmdW5jdGlvbiBoYW5kbGVFc2NhcGVLZXlQcmVzcyhldmVudCkge1xyXG4gICAgaWYgKGV2ZW50LmtleSA9PT0gXCJFc2NhcGVcIikge1xyXG4gICAgICBjbG9zZU1vZGFsKG1vZGFsKTtcclxuICAgIH1cclxuICB9XHJcbn1cclxuXHJcbmZ1bmN0aW9uIGNsb3NlTW9kYWwobW9kYWwpIHtcclxuICBtb2RhbC5jbGFzc0xpc3QucmVtb3ZlKFwibW9kYWxfb3BlbmVkXCIpO1xyXG5cclxuICBkb2N1bWVudC5yZW1vdmVFdmVudExpc3RlbmVyKFwiY2xpY2tcIiwgbW9kYWwuX2hhbmRsZU92ZXJsYXlDbGljayk7XHJcbiAgZG9jdW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcihcImtleWRvd25cIiwgbW9kYWwuX2hhbmRsZUVzY2FwZUtleVByZXNzKTtcclxufVxyXG5cclxuLy8gZnVuY3Rpb24gcmVuZGVyTG9hZGluZyhcclxuLy8gaXNMb2FkaW5nLFxyXG4vLyBidXR0b24sXHJcbi8vIGJ1dHRvblRleHQgPSBcIlNhdmVcIixcclxuLy8gbG9hZGluZ1RleHQgPSBcIlNhdmluZy4uLlwiXHJcbi8vICkge1xyXG4vLyBidXR0b24udGV4dENvbnRlbnQgPSBpc0xvYWRpbmcgPyBsb2FkaW5nVGV4dCA6IGJ1dHRvblRleHQ7XHJcbi8vIH1cclxuXHJcbi8vIFVuaXZlcnNhbCBDbG9zZSBCdXR0b24gSGFuZGxlclxyXG5jbG9zZUJ1dHRvbnMuZm9yRWFjaCgoYnV0dG9uKSA9PiB7XHJcbiAgY29uc3QgbW9kYWwgPSBidXR0b24uY2xvc2VzdChcIi5tb2RhbFwiKTtcclxuICBidXR0b24uYWRkRXZlbnRMaXN0ZW5lcihcImNsaWNrXCIsICgpID0+IGNsb3NlTW9kYWwobW9kYWwpKTtcclxufSk7XHJcblxyXG4vLyBIYW5kbGVyc1xyXG5mdW5jdGlvbiBtYWtlRWRpdFByb2ZpbGVSZXF1ZXN0KCkge1xyXG4gIC8vIEdldCBmb3JtIHZhbHVlc1xyXG4gIGNvbnN0IG5hbWUgPSBlZGl0TW9kYWxOYW1lSW5wdXQudmFsdWU7XHJcbiAgY29uc3QgYWJvdXQgPSBlZGl0TW9kYWxEZXNjcmlwdGlvbklucHV0LnZhbHVlO1xyXG5cclxuICAvLyBNYWtlIEFQSSBjYWxsIHRvIGVkaXQgdXNlciBpbmZvXHJcbiAgcmV0dXJuIGFwaS5lZGl0VXNlckluZm8oeyBuYW1lLCBhYm91dCB9KS50aGVuKCh1c2VyRGF0YSkgPT4ge1xyXG4gICAgLy8gVXBkYXRlIHRoZSBET00gd2l0aCB0aGUgbmV3IHVzZXIgZGF0YVxyXG4gICAgcHJvZmlsZU5hbWUudGV4dENvbnRlbnQgPSB1c2VyRGF0YS5uYW1lO1xyXG4gICAgcHJvZmlsZURlc2NyaXB0aW9uLnRleHRDb250ZW50ID0gdXNlckRhdGEuYWJvdXQ7XHJcbiAgICAvLyBDbG9zZSB0aGUgbW9kYWxcclxuICAgIGNsb3NlTW9kYWwoZWRpdE1vZGFsKTtcclxuICB9KTtcclxufVxyXG5cclxuZnVuY3Rpb24gaGFuZGxlRWRpdEZvcm1TdWJtaXQoZXZ0KSB7XHJcbiAgaGFuZGxlU3VibWl0KG1ha2VFZGl0UHJvZmlsZVJlcXVlc3QsIGV2dCwgXCJTYXZpbmcuLi5cIik7XHJcbn1cclxuXHJcbmZ1bmN0aW9uIGhhbmRsZUNhcmRGb3JtU3VibWl0KGV2dCkge1xyXG4gIGV2dC5wcmV2ZW50RGVmYXVsdCgpO1xyXG4gIGNvbnN0IHN1Ym1pdEJ1dHRvbiA9IGNhcmRGb3JtLnF1ZXJ5U2VsZWN0b3IoXCIubW9kYWxfX3N1Ym1pdC1idXR0b25cIik7XHJcbiAgcmVuZGVyTG9hZGluZyh0cnVlLCBzdWJtaXRCdXR0b24pO1xyXG5cclxuICBhcGlcclxuICAgIC5hZGRDYXJkKHtcclxuICAgICAgbmFtZTogY2FyZENhcHRpb25JbnB1dC52YWx1ZSxcclxuICAgICAgbGluazogY2FyZExpbmtJbnB1dC52YWx1ZSxcclxuICAgIH0pXHJcbiAgICAudGhlbigoY2FyZERhdGEpID0+IHtcclxuICAgICAgY29uc3QgY2FyZEVsZW1lbnQgPSBnZXRDYXJkRWxlbWVudChjYXJkRGF0YSk7XHJcbiAgICAgIGNhcmRzTGlzdC5wcmVwZW5kKGNhcmRFbGVtZW50KTtcclxuICAgICAgZXZ0LnRhcmdldC5yZXNldCgpO1xyXG4gICAgICBjbG9zZU1vZGFsKGNhcmRNb2RhbCk7XHJcbiAgICB9KVxyXG4gICAgLmNhdGNoKGNvbnNvbGUuZXJyb3IpXHJcbiAgICAuZmluYWxseSgoKSA9PiB7XHJcbiAgICAgIHJlbmRlckxvYWRpbmcoZmFsc2UsIHN1Ym1pdEJ1dHRvbik7XHJcbiAgICB9KTtcclxufVxyXG5cclxuLy8gRWRpdCBNb2RhbCBMaXN0ZW5lcnNcclxuZWRpdE1vZGFsQnV0dG9uLmFkZEV2ZW50TGlzdGVuZXIoXCJjbGlja1wiLCAoKSA9PiB7XHJcbiAgZWRpdE1vZGFsTmFtZUlucHV0LnZhbHVlID0gcHJvZmlsZU5hbWUudGV4dENvbnRlbnQ7XHJcbiAgZWRpdE1vZGFsRGVzY3JpcHRpb25JbnB1dC52YWx1ZSA9IHByb2ZpbGVEZXNjcmlwdGlvbi50ZXh0Q29udGVudDtcclxuICByZXNldFZhbGlkYXRpb24oXHJcbiAgICBlZGl0Rm9ybSxcclxuICAgIFtlZGl0TW9kYWxOYW1lSW5wdXQsIGVkaXRNb2RhbERlc2NyaXB0aW9uSW5wdXRdLFxyXG4gICAgc2V0dGluZ3NcclxuICApO1xyXG4gIG9wZW5Nb2RhbChlZGl0TW9kYWwpO1xyXG59KTtcclxuXHJcbi8vIEF2YXRhciBNb2RhbCBMaXN0ZW5lclxyXG5hdmF0YXJFZGl0QnV0dG9uLmFkZEV2ZW50TGlzdGVuZXIoXCJjbGlja1wiLCAoKSA9PiB7XHJcbiAgb3Blbk1vZGFsKGF2YXRhck1vZGFsKTtcclxufSk7XHJcblxyXG4vLyBDYXJkIE1vZGFsIExpc3RlbmVyc1xyXG5jYXJkTW9kYWxCdXR0b24uYWRkRXZlbnRMaXN0ZW5lcihcImNsaWNrXCIsICgpID0+IHtcclxuICBvcGVuTW9kYWwoY2FyZE1vZGFsKTtcclxufSk7XHJcblxyXG5jYW5jZWxEZWxldGVCdXR0b24uYWRkRXZlbnRMaXN0ZW5lcihcImNsaWNrXCIsICgpID0+IHtcclxuICBjbG9zZU1vZGFsKGRlbGV0ZU1vZGFsKTtcclxufSk7XHJcblxyXG4vLyBGb3JtIExpc3RlbmVyc1xyXG5lZGl0Rm9ybS5hZGRFdmVudExpc3RlbmVyKFwic3VibWl0XCIsIGhhbmRsZUVkaXRGb3JtU3VibWl0KTtcclxuY2FyZEZvcm0uYWRkRXZlbnRMaXN0ZW5lcihcInN1Ym1pdFwiLCBoYW5kbGVDYXJkRm9ybVN1Ym1pdCk7XHJcblxyXG5kZWxldGVGb3JtLmFkZEV2ZW50TGlzdGVuZXIoXCJzdWJtaXRcIiwgKGV2dCkgPT4ge1xyXG4gIGV2dC5wcmV2ZW50RGVmYXVsdCgpO1xyXG4gIGNvbnN0IHN1Ym1pdEJ1dHRvbiA9IGRlbGV0ZUZvcm0ucXVlcnlTZWxlY3RvcihcIi5tb2RhbF9fc3VibWl0LWJ1dHRvblwiKTtcclxuICByZW5kZXJMb2FkaW5nKHRydWUsIHN1Ym1pdEJ1dHRvbiwgXCJEZWxldGVcIiwgXCJEZWxldGluZy4uLlwiKTtcclxuXHJcbiAgYXBpXHJcbiAgICAucmVtb3ZlQ2FyZChkZWxldGVGb3JtLl9jYXJkVG9EZWxldGUuX2lkKSAvLyBDaGFuZ2VkIGZyb20gZGVsZXRlQ2FyZCB0byByZW1vdmVDYXJkXHJcbiAgICAudGhlbigoKSA9PiB7XHJcbiAgICAgIGhhbmRsZVN1Ym1pdCgoKSA9PiB7XHJcbiAgICAgICAgZGVsZXRlRm9ybS5fY2FyZFRvRGVsZXRlLnJlbW92ZSgpO1xyXG4gICAgICB9KTtcclxuICAgICAgY2xvc2VNb2RhbChkZWxldGVNb2RhbCk7XHJcbiAgICB9KVxyXG4gICAgLmNhdGNoKGNvbnNvbGUuZXJyb3IpXHJcbiAgICAuZmluYWxseSgoKSA9PiB7XHJcbiAgICAgIHJlbmRlckxvYWRpbmcoZmFsc2UsIHN1Ym1pdEJ1dHRvbiwgXCJEZWxldGVcIik7XHJcbiAgICB9KTtcclxufSk7XHJcblxyXG4vLyBBdmF0YXIgRm9ybSBTdWJtaXQgSGFuZGxlclxyXG5hdmF0YXJGb3JtLmFkZEV2ZW50TGlzdGVuZXIoXCJzdWJtaXRcIiwgKGV2dCkgPT4ge1xyXG4gIGV2dC5wcmV2ZW50RGVmYXVsdCgpO1xyXG4gIGNvbnN0IHN1Ym1pdEJ1dHRvbiA9IGF2YXRhckZvcm0ucXVlcnlTZWxlY3RvcihcIi5tb2RhbF9fc3VibWl0LWJ1dHRvblwiKTtcclxuICByZW5kZXJMb2FkaW5nKHRydWUsIHN1Ym1pdEJ1dHRvbik7XHJcblxyXG4gIGFwaVxyXG4gICAgLnVwZGF0ZUF2YXRhcih7XHJcbiAgICAgIGF2YXRhcjogYXZhdGFyTGlua0lucHV0LnZhbHVlLFxyXG4gICAgfSlcclxuICAgIC50aGVuKCh1c2VyRGF0YSkgPT4ge1xyXG4gICAgICBwcm9maWxlQXZhdGFyLnNyYyA9IHVzZXJEYXRhLmF2YXRhcjtcclxuICAgICAgZXZ0LnRhcmdldC5yZXNldCgpO1xyXG4gICAgICBjbG9zZU1vZGFsKGF2YXRhck1vZGFsKTtcclxuICAgIH0pXHJcbiAgICAuY2F0Y2goY29uc29sZS5lcnJvcilcclxuICAgIC5maW5hbGx5KCgpID0+IHtcclxuICAgICAgcmVuZGVyTG9hZGluZyhmYWxzZSwgc3VibWl0QnV0dG9uKTtcclxuICAgIH0pO1xyXG59KTtcclxuXHJcbmVuYWJsZVZhbGlkYXRpb24oc2V0dGluZ3MpO1xyXG4iLCJjbGFzcyBBcGkge1xyXG4gIGNvbnN0cnVjdG9yKG9wdGlvbnMpIHtcclxuICAgIHRoaXMuX2Jhc2VVcmwgPSBvcHRpb25zLmJhc2VVcmw7XHJcbiAgICB0aGlzLl9oZWFkZXJzID0gb3B0aW9ucy5oZWFkZXJzO1xyXG4gIH1cclxuXHJcbiAgX2NoZWNrUmVzcG9uc2UocmVzKSB7XHJcbiAgICBpZiAocmVzLm9rKSB7XHJcbiAgICAgIHJldHVybiByZXMuanNvbigpO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIFByb21pc2UucmVqZWN0KGBFcnJvcjogJHtyZXMuc3RhdHVzfWApO1xyXG4gIH1cclxuXHJcbiAgX3JlcXVlc3QoZW5kcG9pbnQsIG9wdGlvbnMgPSB7fSkge1xyXG4gICAgY29uc3QgZmluYWxPcHRpb25zID0ge1xyXG4gICAgICBoZWFkZXJzOiB0aGlzLl9oZWFkZXJzLFxyXG4gICAgICAuLi5vcHRpb25zLFxyXG4gICAgfTtcclxuICAgIGNvbnN0IHVybCA9IGAke3RoaXMuX2Jhc2VVcmx9JHtlbmRwb2ludH1gO1xyXG4gICAgcmV0dXJuIGZldGNoKHVybCwgZmluYWxPcHRpb25zKS50aGVuKHRoaXMuX2NoZWNrUmVzcG9uc2UpO1xyXG4gIH1cclxuXHJcbiAgZ2V0VXNlckluZm8oKSB7XHJcbiAgICByZXR1cm4gdGhpcy5fcmVxdWVzdChcIi91c2Vycy9tZVwiKTtcclxuICB9XHJcblxyXG4gIGdldEluaXRpYWxDYXJkcygpIHtcclxuICAgIHJldHVybiB0aGlzLl9yZXF1ZXN0KFwiL2NhcmRzXCIsIHtcclxuICAgICAgbWV0aG9kOiBcIkdFVFwiLFxyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICAvLyBQQVRDSCAvdXNlcnMvbWVcclxuICBlZGl0VXNlckluZm8oeyBuYW1lLCBhYm91dCB9KSB7XHJcbiAgICByZXR1cm4gdGhpcy5fcmVxdWVzdChcIi91c2Vycy9tZVwiLCB7XHJcbiAgICAgIG1ldGhvZDogXCJQQVRDSFwiLFxyXG4gICAgICBib2R5OiBKU09OLnN0cmluZ2lmeSh7IG5hbWUsIGFib3V0IH0pLFxyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICAvLyBQQVRDSCAvdXNlcnMvbWUvYXZhdGFyXHJcbiAgdXBkYXRlQXZhdGFyKHsgYXZhdGFyIH0pIHtcclxuICAgIHJldHVybiB0aGlzLl9yZXF1ZXN0KFwiL3VzZXJzL21lL2F2YXRhclwiLCB7XHJcbiAgICAgIG1ldGhvZDogXCJQQVRDSFwiLFxyXG4gICAgICBib2R5OiBKU09OLnN0cmluZ2lmeSh7IGF2YXRhciB9KSxcclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgLy8gUE9TVCAvY2FyZHNcclxuICBhZGRDYXJkKHsgbmFtZSwgbGluayB9KSB7XHJcbiAgICByZXR1cm4gdGhpcy5fcmVxdWVzdChcIi9jYXJkc1wiLCB7XHJcbiAgICAgIG1ldGhvZDogXCJQT1NUXCIsXHJcbiAgICAgIGJvZHk6IEpTT04uc3RyaW5naWZ5KHsgbmFtZSwgbGluayB9KSxcclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgLy8gREVMRVRFIC9jYXJkcy86Y2FyZElkXHJcbiAgcmVtb3ZlQ2FyZChjYXJkSWQpIHtcclxuICAgIHJldHVybiBmZXRjaChgJHt0aGlzLl9iYXNlVXJsfS9jYXJkcy8ke2NhcmRJZH1gLCB7XHJcbiAgICAgIG1ldGhvZDogXCJERUxFVEVcIixcclxuICAgICAgaGVhZGVyczogdGhpcy5faGVhZGVycyxcclxuICAgIH0pLnRoZW4odGhpcy5fY2hlY2tSZXNwb25zZSk7XHJcbiAgfVxyXG5cclxuICAvLyBQVVQgL2NhcmRzLzpjYXJkSWQvbGlrZXNcclxuICBsaWtlQ2FyZChjYXJkSWQpIHtcclxuICAgIHJldHVybiB0aGlzLl9yZXF1ZXN0KGAvY2FyZHMvJHtjYXJkSWR9L2xpa2VzYCwge1xyXG4gICAgICBtZXRob2Q6IFwiUFVUXCIsXHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIC8vIERFTEVURSAvY2FyZHMvOmNhcmRJZC9saWtlc1xyXG4gIGRpc2xpa2VDYXJkKGNhcmRJZCkge1xyXG4gICAgcmV0dXJuIHRoaXMuX3JlcXVlc3QoYC9jYXJkcy8ke2NhcmRJZH0vbGlrZXNgLCB7XHJcbiAgICAgIG1ldGhvZDogXCJERUxFVEVcIixcclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgLy8gSGVscGVyOiBGZXRjaCBpbml0aWFsIGRhdGEgc2ltdWx0YW5lb3VzbHkgKHVzZXIgaW5mbyAmIGNhcmRzKVxyXG4gIGZldGNoSW5pdGlhbERhdGEoKSB7XHJcbiAgICByZXR1cm4gUHJvbWlzZS5hbGwoW3RoaXMuZ2V0VXNlckluZm8oKSwgdGhpcy5nZXRJbml0aWFsQ2FyZHMoKV0pO1xyXG4gIH1cclxufVxyXG5cclxuZXhwb3J0IGRlZmF1bHQgQXBpO1xyXG4iXSwibmFtZXMiOlsiX193ZWJwYWNrX3JlcXVpcmVfXyIsInNldHRpbmdzIiwiZm9ybVNlbGVjdG9yIiwiaW5wdXRTZWxlY3RvciIsInN1Ym1pdEJ1dHRvblNlbGVjdG9yIiwiaW5hY3RpdmVCdXR0b25DbGFzcyIsImlucHV0RXJyb3JDbGFzcyIsImVycm9yQ2xhc3MiLCJsb2dFcnJvciIsIm1lc3NhZ2UiLCJjb25zb2xlIiwiZXJyb3IiLCJoaWRlSW5wdXRFcnJvciIsImZvcm1FbGVtZW50IiwiaW5wdXRFbGVtZW50IiwiY29uZmlnIiwiZXJyb3JNZXNzYWdlRWxlbWVudCIsInF1ZXJ5U2VsZWN0b3IiLCJpZCIsInRleHRDb250ZW50IiwicmVtb3ZlQXR0cmlidXRlIiwiY2xhc3NMaXN0IiwicmVtb3ZlIiwidG9nZ2xlQnV0dG9uU3RhdGUiLCJpbnB1dExpc3QiLCJidXR0b25FbGVtZW50Iiwic29tZSIsImlucHV0IiwidmFsaWRpdHkiLCJ2YWxpZCIsImhhc0ludmFsaWRJbnB1dCIsImRpc2FibGVCdXR0b24iLCJkaXNhYmxlZCIsImFkZCIsInJlc2V0VmFsaWRhdGlvbiIsImZvckVhY2giLCJyZW5kZXJMb2FkaW5nIiwiaXNMb2FkaW5nIiwiYnV0dG9uIiwiYnV0dG9uVGV4dCIsImFyZ3VtZW50cyIsImxlbmd0aCIsInVuZGVmaW5lZCIsImxvYWRpbmdUZXh0IiwiaGFuZGxlU3VibWl0IiwicmVxdWVzdCIsImV2dCIsInByZXZlbnREZWZhdWx0Iiwic3VibWl0QnV0dG9uIiwic3VibWl0dGVyIiwiaW5pdGlhbFRleHQiLCJjYXRjaCIsImZpbmFsbHkiLCJkb2N1bWVudCIsInNyYyIsImxvZ29QYXRoIiwiYXZhdGFyUGF0aCIsImVkaXRCdXR0b25QYXRoIiwiYWRkQnV0dG9uUGF0aCIsImVkaXRMaWdodEJ1dHRvblBhdGgiLCJhcGkiLCJjb25zdHJ1Y3RvciIsIm9wdGlvbnMiLCJ0aGlzIiwiX2Jhc2VVcmwiLCJiYXNlVXJsIiwiX2hlYWRlcnMiLCJoZWFkZXJzIiwiX2NoZWNrUmVzcG9uc2UiLCJyZXMiLCJvayIsImpzb24iLCJQcm9taXNlIiwicmVqZWN0Iiwic3RhdHVzIiwiX3JlcXVlc3QiLCJlbmRwb2ludCIsImZpbmFsT3B0aW9ucyIsInVybCIsImZldGNoIiwidGhlbiIsImdldFVzZXJJbmZvIiwiZ2V0SW5pdGlhbENhcmRzIiwibWV0aG9kIiwiZWRpdFVzZXJJbmZvIiwiX3JlZiIsIm5hbWUiLCJhYm91dCIsImJvZHkiLCJKU09OIiwic3RyaW5naWZ5IiwidXBkYXRlQXZhdGFyIiwiX3JlZjIiLCJhdmF0YXIiLCJhZGRDYXJkIiwiX3JlZjMiLCJsaW5rIiwicmVtb3ZlQ2FyZCIsImNhcmRJZCIsImxpa2VDYXJkIiwiZGlzbGlrZUNhcmQiLCJmZXRjaEluaXRpYWxEYXRhIiwiYWxsIiwiYXV0aG9yaXphdGlvbiIsInVzZXJJZCIsInVzZXJEYXRhIiwiX2lkIiwicHJvZmlsZU5hbWUiLCJwcm9maWxlRGVzY3JpcHRpb24iLCJwcm9maWxlQXZhdGFyIiwiY2FyZHMiLCJjYXJkIiwiY2FyZEVsZW1lbnQiLCJnZXRDYXJkRWxlbWVudCIsImNhcmRzTGlzdCIsImFwcGVuZCIsImVkaXRNb2RhbEJ1dHRvbiIsImNhcmRNb2RhbEJ1dHRvbiIsImNsb3NlQnV0dG9ucyIsInF1ZXJ5U2VsZWN0b3JBbGwiLCJkZWxldGVNb2RhbCIsImRlbGV0ZUZvcm0iLCJjYW5jZWxEZWxldGVCdXR0b24iLCJhdmF0YXJFZGl0QnV0dG9uIiwiYXZhdGFyTW9kYWwiLCJhdmF0YXJGb3JtIiwiYXZhdGFyTGlua0lucHV0IiwiZWRpdE1vZGFsIiwiZWRpdEZvcm0iLCJlZGl0TW9kYWxOYW1lSW5wdXQiLCJlZGl0TW9kYWxEZXNjcmlwdGlvbklucHV0IiwiY2FyZE1vZGFsIiwiY2FyZEZvcm0iLCJjYXJkTGlua0lucHV0IiwiY2FyZENhcHRpb25JbnB1dCIsInByZXZpZXdNb2RhbCIsInByZXZpZXdJbWFnZSIsInByZXZpZXdDYXB0aW9uIiwiY2FyZFRlbXBsYXRlIiwiZGF0YSIsImNvbnRlbnQiLCJjbG9uZU5vZGUiLCJjYXJkVGl0bGUiLCJjYXJkSW1hZ2UiLCJjYXJkTGlrZUJ1dHRvbiIsImNhcmRMaWtlQ291bnQiLCJjYXJkRGVsZXRlQnV0dG9uIiwiYWx0IiwiaXNMaWtlZCIsImFkZEV2ZW50TGlzdGVuZXIiLCJjb250YWlucyIsInVwZGF0ZWRDYXJkIiwidG9nZ2xlIiwib3Blbk1vZGFsIiwiX2NhcmRUb0RlbGV0ZSIsIm1vZGFsIiwiaGFuZGxlT3ZlcmxheUNsaWNrIiwiZXZlbnQiLCJ0YXJnZXQiLCJjbG9zZU1vZGFsIiwiaGFuZGxlRXNjYXBlS2V5UHJlc3MiLCJrZXkiLCJfaGFuZGxlT3ZlcmxheUNsaWNrIiwiX2hhbmRsZUVzY2FwZUtleVByZXNzIiwicmVtb3ZlRXZlbnRMaXN0ZW5lciIsIm1ha2VFZGl0UHJvZmlsZVJlcXVlc3QiLCJ2YWx1ZSIsImNsb3Nlc3QiLCJjYXJkRGF0YSIsInByZXBlbmQiLCJyZXNldCIsIkFycmF5IiwiZnJvbSIsInNldEV2ZW50TGlzdGVuZXJzIiwiY2hlY2tJbnB1dFZhbGlkaXR5Iiwic2hvd0lucHV0RXJyb3IiLCJlcnJvck1lc3NhZ2UiLCJzZXRBdHRyaWJ1dGUiLCJ2YWxpZGF0aW9uTWVzc2FnZSJdLCJzb3VyY2VSb290IjoiIn0= \ No newline at end of file +!function(){"use strict";var e="/se_project_spots/";const t={formSelector:".modal__form",inputSelector:".modal__input",submitButtonSelector:".modal__submit-button",inactiveButtonClass:"modal__submit-button_disabled",inputErrorClass:"modal__input_type_error",errorClass:"modal__error"},r=e=>{console.error(`Validation Error: ${e}`)},o=(e,t,o)=>{const n=e.querySelector(`#${t.id}-error`);n?(n.textContent="",n.removeAttribute("role"),t.classList.remove(o.inputErrorClass)):r(`Error message element for input ${t.id} not found.`)},n=(e,t,r)=>{(e=>e.some((e=>!e.validity.valid)))(e)?a(t,r):(t.disabled=!1,t.classList.remove(r.inactiveButtonClass))},a=(e,t)=>{e.disabled=!0,e.classList.add(t.inactiveButtonClass)},c=(e,t,r)=>{t.forEach((t=>{o(e,t,r)}));const n=e.querySelector(r.submitButtonSelector);a(n,r)};function l(e,t,r="Save",o="Saving..."){t.textContent=e?o:r}function s(e,t,r="Saving..."){t.preventDefault();const o=t.submitter,n=o.textContent;return l(!0,o,n,r),e().catch(console.error).finally((()=>{l(!1,o,n)}))}var i=e+"logo.svg",d=e+"avatar.jpg",u=e+"editbtn.svg",m=e+"addbtn.svg",_=e+"editbtn-light.svg";document.querySelector(".header__logo").src=i,document.querySelector(".profile__avatar").src=d,document.querySelector(".profile__edit-button img").src=u,document.querySelector(".profile__add-button img").src=m,document.querySelector(".profile__pencilIcon").src=_;const v=new class{constructor(e){this._baseUrl=e.baseUrl,this._headers=e.headers}_checkResponse(e){return e.ok?e.json():Promise.reject(`Error: ${e.status}`)}_request(e,t={}){const r={headers:this._headers,...t},o=`${this._baseUrl}${e}`;return fetch(o,r).then(this._checkResponse)}getUserInfo(){return this._request("/users/me")}getInitialCards(){return this._request("/cards",{method:"GET"})}editUserInfo({name:e,about:t}){return this._request("/users/me",{method:"PATCH",body:JSON.stringify({name:e,about:t})})}updateAvatar({avatar:e}){return this._request("/users/me/avatar",{method:"PATCH",body:JSON.stringify({avatar:e})})}addCard({name:e,link:t}){return this._request("/cards",{method:"POST",body:JSON.stringify({name:e,link:t})})}removeCard(e){return fetch(`${this._baseUrl}/cards/${e}`,{method:"DELETE",headers:this._headers}).then(this._checkResponse)}likeCard(e){return this._request(`/cards/${e}/likes`,{method:"PUT"})}dislikeCard(e){return this._request(`/cards/${e}/likes`,{method:"DELETE"})}fetchInitialData(){return Promise.all([this.getUserInfo(),this.getInitialCards()])}}({baseUrl:"https://around-api.en.tripleten-services.com/v1",headers:{authorization:"f1f1dbab-8e17-48d3-a098-d77dfd6ea3c5","Content-Type":"application/json"}});let y;v.getUserInfo().then((e=>(y=e._id,f.textContent=e.name,S.textContent=e.about,D.src=e.avatar,v.getInitialCards()))).then((e=>{e.forEach((e=>{const t=H(e);R.append(t)}))})).catch(console.error);const h=document.querySelector(".profile__edit-button"),p=document.querySelector(".profile__add-button"),f=document.querySelector(".profile__name"),S=document.querySelector(".profile__description"),q=document.querySelectorAll(".modal__close-button"),b=document.querySelector("#delete-modal"),k=b.querySelector("#delete-form"),E=b.querySelector(".modal__cancel-button"),C=document.querySelector(".profile__avatar-button"),g=document.querySelector("#new-avatar-modal"),L=g.querySelector(".modal__form"),x=g.querySelector("#new-avatar-link-input"),D=document.querySelector(".profile__avatar"),A=document.querySelector("#edit-modal"),$=A.querySelector(".modal__form"),T=A.querySelector("#profile-name-input"),U=A.querySelector("#profile-description-input"),I=document.querySelector("#new-card-modal"),w=I.querySelector(".modal__form"),P=I.querySelector("#new-card-link-input"),B=I.querySelector("#new-card-caption-input"),O=document.querySelector("#preview-modal"),j=O.querySelector(".modal__image"),N=O.querySelector(".modal__caption"),J=document.querySelector("#card-template"),R=document.querySelector(".cards__list");function H(e){const t=J.content.querySelector(".card").cloneNode(!0);t._id=e._id;const r=t.querySelector(".card__title"),o=t.querySelector(".card__image"),n=t.querySelector(".card__like-button"),a=t.querySelector(".card__like-count"),c=t.querySelector(".card__delete-button");return r.textContent=e.name,o.src=e.link,o.alt=e.name,e.isLiked?(n.classList.add("card__like-button_liked"),a.textContent="1"):a.textContent="0",n.addEventListener("click",(()=>{(n.classList.contains("card__like-button_liked")?v.dislikeCard(e._id):v.likeCard(e._id)).then((e=>{n.classList.toggle("card__like-button_liked",e.isLiked),a.textContent=e.isLiked?"1":"0"})).catch((e=>{console.error("Error updating like status:",e)}))})),c.addEventListener("click",(()=>{K(b),k._cardToDelete=t})),o.addEventListener("click",(()=>{K(O),N.textContent=e.name,j.alt=e.name,j.src=e.link})),t}function K(e){function t(t){t.target.classList.contains("modal_opened")&&z(e)}function r(t){"Escape"===t.key&&z(e)}e.classList.add("modal_opened"),document.addEventListener("click",t),document.addEventListener("keydown",r),e._handleOverlayClick=t,e._handleEscapeKeyPress=r}function z(e){e.classList.remove("modal_opened"),document.removeEventListener("click",e._handleOverlayClick),document.removeEventListener("keydown",e._handleEscapeKeyPress)}function G(){const e=T.value,t=U.value;return v.editUserInfo({name:e,about:t}).then((e=>{f.textContent=e.name,S.textContent=e.about,z(A)}))}var M;q.forEach((e=>{const t=e.closest(".modal");e.addEventListener("click",(()=>z(t)))})),h.addEventListener("click",(()=>{T.value=f.textContent,U.value=S.textContent,c($,[T,U],t),K(A)})),C.addEventListener("click",(()=>{K(g)})),p.addEventListener("click",(()=>{K(I)})),E.addEventListener("click",(()=>{z(b)})),$.addEventListener("submit",(function(e){s(G,e,"Saving...")})),w.addEventListener("submit",(function(e){e.preventDefault();const t=w.querySelector(".modal__submit-button");l(!0,t),v.addCard({name:B.value,link:P.value}).then((t=>{const r=H(t);R.prepend(r),e.target.reset(),z(I)})).catch(console.error).finally((()=>{l(!1,t)}))})),k.addEventListener("submit",(e=>{e.preventDefault();const t=k.querySelector(".modal__submit-button");l(!0,t,"Delete","Deleting..."),v.removeCard(k._cardToDelete._id).then((()=>{s((()=>{k._cardToDelete.remove()})),z(b)})).catch(console.error).finally((()=>{l(!1,t,"Delete")}))})),L.addEventListener("submit",(e=>{e.preventDefault();const t=L.querySelector(".modal__submit-button");l(!0,t),v.updateAvatar({avatar:x.value}).then((t=>{D.src=t.avatar,e.target.reset(),z(g)})).catch(console.error).finally((()=>{l(!1,t)}))})),M=t,document.querySelectorAll(M.formSelector).forEach((e=>{const t=Array.from(e.querySelectorAll(M.inputSelector));((e,t)=>{const a=Array.from(e.querySelectorAll(t.inputSelector)),c=e.querySelector(t.submitButtonSelector);n(a,c,t),a.forEach((l=>{l.addEventListener("input",(()=>{((e,t,n)=>{t.validity.valid?o(e,t,n):((e,t,o,n)=>{const a=e.querySelector(`#${t.id}-error`);a?(a.textContent=o,a.setAttribute("role","alert"),t.classList.add(n.inputErrorClass)):r(`Error message element for input ${t.id} not found.`)})(e,t,t.validationMessage,n)})(e,l,t),n(a,c,t)}))}))})(e,M),e.addEventListener("reset",(()=>{c(e,t,M)}))}))}(); +//# sourceMappingURL=data:application/json;charset=utf-8;base64,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LEVBQU9aLGdCQXRCaEJvSyxFQUFDMUosRUFBYUUsS0FDdEMsTUFBTVMsRUFBWTZJLE1BQU1DLEtBQ3RCekosRUFBWW9HLGlCQUFpQmxHLEVBQU9aLGdCQUVoQ3NCLEVBQWdCWixFQUFZSSxjQUFjRixFQUFPWCxzQkFFdkRtQixFQUFrQkMsRUFBV0MsRUFBZVYsR0FFNUNTLEVBQVVXLFNBQVNyQixJQUNqQkEsRUFBYWlJLGlCQUFpQixTQUFTLEtBdERoQnlCLEVBQUMzSixFQUFhQyxFQUFjQyxLQUNoREQsRUFBYWMsU0FBU0MsTUFRekJqQixFQUFlQyxFQUFhQyxFQUFjQyxHQXpDdkIwSixFQUFDNUosRUFBYUMsRUFBYzRKLEVBQWMzSixLQUMvRCxNQUFNQyxFQUFzQkgsRUFBWUksY0FDdEMsSUFBSUgsRUFBYUksWUFHZEYsR0FLTEEsRUFBb0JHLFlBQWN1SixFQUNsQzFKLEVBQW9CMkosYUFBYSxPQUFRLFNBQ3pDN0osRUFBYU8sVUFBVVksSUFBSWxCLEVBQU9ULGtCQU5oQ0UsRUFBUyxtQ0FBbUNNLEVBQWFJLGdCQU1ULEVBc0JoRHVKLENBQ0U1SixFQUNBQyxFQUNBQSxFQUFhOEosa0JBQ2I3SixFQUlKLEVBNkNJeUosQ0FBbUIzSixFQUFhQyxFQUFjQyxHQUM5Q1EsRUFBa0JDLEVBQVdDLEVBQWVWLEVBQU8sR0FDbkQsR0FDRixFQVdBd0osQ0FBa0IxSixFQUFhRSxHQUcvQkYsRUFBWWtJLGlCQUFpQixTQUFTLEtBQ3BDN0csRUFBZ0JyQixFQUFhVyxFQUFXVCxFQUFPLEdBQy9DLEciLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9zZV9wcm9qZWN0X3Nwb3RzL3dlYnBhY2svYm9vdHN0cmFwIiwid2VicGFjazovL3NlX3Byb2plY3Rfc3BvdHMvd2VicGFjay9ydW50aW1lL3B1YmxpY1BhdGgiLCJ3ZWJwYWNrOi8vc2VfcHJvamVjdF9zcG90cy8uL3NyYy9zY3JpcHRzL3ZhbGlkYXRpb24uanMiLCJ3ZWJwYWNrOi8vc2VfcHJvamVjdF9zcG90cy8uL3NyYy91dGlscy91dGlscy5qcyIsIndlYnBhY2s6Ly9zZV9wcm9qZWN0X3Nwb3RzLy4vc3JjL3BhZ2VzL2luZGV4LmpzIiwid2VicGFjazovL3NlX3Byb2plY3Rfc3BvdHMvLi9zcmMvdXRpbHMvQXBpLmpzIl0sInNvdXJjZXNDb250ZW50IjpbIi8vIFRoZSByZXF1aXJlIHNjb3BlXG52YXIgX193ZWJwYWNrX3JlcXVpcmVfXyA9IHt9O1xuXG4iLCJfX3dlYnBhY2tfcmVxdWlyZV9fLnAgPSBcIi9zZV9wcm9qZWN0X3Nwb3RzL1wiOyIsImV4cG9ydCBjb25zdCBzZXR0aW5ncyA9IHtcbiAgZm9ybVNlbGVjdG9yOiBcIi5tb2RhbF9fZm9ybVwiLFxuICBpbnB1dFNlbGVjdG9yOiBcIi5tb2RhbF9faW5wdXRcIixcbiAgc3VibWl0QnV0dG9uU2VsZWN0b3I6IFwiLm1vZGFsX19zdWJtaXQtYnV0dG9uXCIsXG4gIGluYWN0aXZlQnV0dG9uQ2xhc3M6IFwibW9kYWxfX3N1Ym1pdC1idXR0b25fZGlzYWJsZWRcIixcbiAgaW5wdXRFcnJvckNsYXNzOiBcIm1vZGFsX19pbnB1dF90eXBlX2Vycm9yXCIsXG4gIGVycm9yQ2xhc3M6IFwibW9kYWxfX2Vycm9yXCIsXG59O1xuXG4vLyBVdGlsaXR5IGZvciBsb2dnaW5nIGVycm9yc1xuY29uc3QgbG9nRXJyb3IgPSAobWVzc2FnZSkgPT4ge1xuICBjb25zb2xlLmVycm9yKGBWYWxpZGF0aW9uIEVycm9yOiAke21lc3NhZ2V9YCk7XG59O1xuXG4vLyBTaG93IGlucHV0IGVycm9yIG1lc3NhZ2VcbmNvbnN0IHNob3dJbnB1dEVycm9yID0gKGZvcm1FbGVtZW50LCBpbnB1dEVsZW1lbnQsIGVycm9yTWVzc2FnZSwgY29uZmlnKSA9PiB7XG4gIGNvbnN0IGVycm9yTWVzc2FnZUVsZW1lbnQgPSBmb3JtRWxlbWVudC5xdWVyeVNlbGVjdG9yKFxuICAgIGAjJHtpbnB1dEVsZW1lbnQuaWR9LWVycm9yYFxuICApO1xuXG4gIGlmICghZXJyb3JNZXNzYWdlRWxlbWVudCkge1xuICAgIGxvZ0Vycm9yKGBFcnJvciBtZXNzYWdlIGVsZW1lbnQgZm9yIGlucHV0ICR7aW5wdXRFbGVtZW50LmlkfSBub3QgZm91bmQuYCk7XG4gICAgcmV0dXJuO1xuICB9XG5cbiAgZXJyb3JNZXNzYWdlRWxlbWVudC50ZXh0Q29udGVudCA9IGVycm9yTWVzc2FnZTtcbiAgZXJyb3JNZXNzYWdlRWxlbWVudC5zZXRBdHRyaWJ1dGUoXCJyb2xlXCIsIFwiYWxlcnRcIik7IC8vIEFjY2Vzc2liaWxpdHkgZW5oYW5jZW1lbnRcbiAgaW5wdXRFbGVtZW50LmNsYXNzTGlzdC5hZGQoY29uZmlnLmlucHV0RXJyb3JDbGFzcyk7XG59O1xuXG4vLyBIaWRlIGlucHV0IGVycm9yIG1lc3NhZ2VcbmNvbnN0IGhpZGVJbnB1dEVycm9yID0gKGZvcm1FbGVtZW50LCBpbnB1dEVsZW1lbnQsIGNvbmZpZykgPT4ge1xuICBjb25zdCBlcnJvck1lc3NhZ2VFbGVtZW50ID0gZm9ybUVsZW1lbnQucXVlcnlTZWxlY3RvcihcbiAgICBgIyR7aW5wdXRFbGVtZW50LmlkfS1lcnJvcmBcbiAgKTtcblxuICBpZiAoIWVycm9yTWVzc2FnZUVsZW1lbnQpIHtcbiAgICBsb2dFcnJvcihgRXJyb3IgbWVzc2FnZSBlbGVtZW50IGZvciBpbnB1dCAke2lucHV0RWxlbWVudC5pZH0gbm90IGZvdW5kLmApO1xuICAgIHJldHVybjtcbiAgfVxuXG4gIGVycm9yTWVzc2FnZUVsZW1lbnQudGV4dENvbnRlbnQgPSBcIlwiO1xuICBlcnJvck1lc3NhZ2VFbGVtZW50LnJlbW92ZUF0dHJpYnV0ZShcInJvbGVcIik7XG4gIGlucHV0RWxlbWVudC5jbGFzc0xpc3QucmVtb3ZlKGNvbmZpZy5pbnB1dEVycm9yQ2xhc3MpO1xufTtcblxuLy8gQ2hlY2sgaW5wdXQgdmFsaWRpdHlcbmNvbnN0IGNoZWNrSW5wdXRWYWxpZGl0eSA9IChmb3JtRWxlbWVudCwgaW5wdXRFbGVtZW50LCBjb25maWcpID0+IHtcbiAgaWYgKCFpbnB1dEVsZW1lbnQudmFsaWRpdHkudmFsaWQpIHtcbiAgICBzaG93SW5wdXRFcnJvcihcbiAgICAgIGZvcm1FbGVtZW50LFxuICAgICAgaW5wdXRFbGVtZW50LFxuICAgICAgaW5wdXRFbGVtZW50LnZhbGlkYXRpb25NZXNzYWdlLFxuICAgICAgY29uZmlnXG4gICAgKTtcbiAgfSBlbHNlIHtcbiAgICBoaWRlSW5wdXRFcnJvcihmb3JtRWxlbWVudCwgaW5wdXRFbGVtZW50LCBjb25maWcpO1xuICB9XG59O1xuXG4vLyBDaGVjayBpZiBmb3JtIGhhcyBpbnZhbGlkIGlucHV0XG5jb25zdCBoYXNJbnZhbGlkSW5wdXQgPSAoaW5wdXRMaXN0KSA9PiB7XG4gIHJldHVybiBpbnB1dExpc3Quc29tZSgoaW5wdXQpID0+ICFpbnB1dC52YWxpZGl0eS52YWxpZCk7XG59O1xuXG4vLyBUb2dnbGUgYnV0dG9uIHN0YXRlXG5jb25zdCB0b2dnbGVCdXR0b25TdGF0ZSA9IChpbnB1dExpc3QsIGJ1dHRvbkVsZW1lbnQsIGNvbmZpZykgPT4ge1xuICBpZiAoaGFzSW52YWxpZElucHV0KGlucHV0TGlzdCkpIHtcbiAgICBkaXNhYmxlQnV0dG9uKGJ1dHRvbkVsZW1lbnQsIGNvbmZpZyk7XG4gIH0gZWxzZSB7XG4gICAgYnV0dG9uRWxlbWVudC5kaXNhYmxlZCA9IGZhbHNlO1xuICAgIGJ1dHRvbkVsZW1lbnQuY2xhc3NMaXN0LnJlbW92ZShjb25maWcuaW5hY3RpdmVCdXR0b25DbGFzcyk7XG4gIH1cbn07XG5cbi8vIERpc2FibGUgYnV0dG9uXG5jb25zdCBkaXNhYmxlQnV0dG9uID0gKGJ1dHRvbkVsZW1lbnQsIGNvbmZpZykgPT4ge1xuICBidXR0b25FbGVtZW50LmRpc2FibGVkID0gdHJ1ZTtcbiAgYnV0dG9uRWxlbWVudC5jbGFzc0xpc3QuYWRkKGNvbmZpZy5pbmFjdGl2ZUJ1dHRvbkNsYXNzKTtcbn07XG5cbi8vIFJlc2V0IHZhbGlkYXRpb25cbmV4cG9ydCBjb25zdCByZXNldFZhbGlkYXRpb24gPSAoZm9ybUVsZW1lbnQsIGlucHV0TGlzdCwgY29uZmlnKSA9PiB7XG4gIGlucHV0TGlzdC5mb3JFYWNoKChpbnB1dCkgPT4ge1xuICAgIGhpZGVJbnB1dEVycm9yKGZvcm1FbGVtZW50LCBpbnB1dCwgY29uZmlnKTtcbiAgfSk7XG5cbiAgY29uc3QgYnV0dG9uRWxlbWVudCA9IGZvcm1FbGVtZW50LnF1ZXJ5U2VsZWN0b3IoY29uZmlnLnN1Ym1pdEJ1dHRvblNlbGVjdG9yKTtcbiAgZGlzYWJsZUJ1dHRvbihidXR0b25FbGVtZW50LCBjb25maWcpOyAvLyBEaXNhYmxlIHRoZSBidXR0b24gZHVyaW5nIHJlc2V0XG59O1xuXG4vLyBBZGQgZXZlbnQgbGlzdGVuZXJzIHRvIHRoZSBmb3JtXG5jb25zdCBzZXRFdmVudExpc3RlbmVycyA9IChmb3JtRWxlbWVudCwgY29uZmlnKSA9PiB7XG4gIGNvbnN0IGlucHV0TGlzdCA9IEFycmF5LmZyb20oXG4gICAgZm9ybUVsZW1lbnQucXVlcnlTZWxlY3RvckFsbChjb25maWcuaW5wdXRTZWxlY3RvcilcbiAgKTtcbiAgY29uc3QgYnV0dG9uRWxlbWVudCA9IGZvcm1FbGVtZW50LnF1ZXJ5U2VsZWN0b3IoY29uZmlnLnN1Ym1pdEJ1dHRvblNlbGVjdG9yKTtcblxuICB0b2dnbGVCdXR0b25TdGF0ZShpbnB1dExpc3QsIGJ1dHRvbkVsZW1lbnQsIGNvbmZpZyk7IC8vIEluaXRpYWwgYnV0dG9uIHN0YXRlIGNoZWNrXG5cbiAgaW5wdXRMaXN0LmZvckVhY2goKGlucHV0RWxlbWVudCkgPT4ge1xuICAgIGlucHV0RWxlbWVudC5hZGRFdmVudExpc3RlbmVyKFwiaW5wdXRcIiwgKCkgPT4ge1xuICAgICAgY2hlY2tJbnB1dFZhbGlkaXR5KGZvcm1FbGVtZW50LCBpbnB1dEVsZW1lbnQsIGNvbmZpZyk7XG4gICAgICB0b2dnbGVCdXR0b25TdGF0ZShpbnB1dExpc3QsIGJ1dHRvbkVsZW1lbnQsIGNvbmZpZyk7IC8vIFVwZGF0ZSBidXR0b24gc3RhdGUgb24gaW5wdXRcbiAgICB9KTtcbiAgfSk7XG59O1xuXG4vLyBFbmFibGUgdmFsaWRhdGlvbiBmb3IgYWxsIGZvcm1zXG5leHBvcnQgY29uc3QgZW5hYmxlVmFsaWRhdGlvbiA9IChjb25maWcpID0+IHtcbiAgY29uc3QgZm9ybUxpc3QgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKGNvbmZpZy5mb3JtU2VsZWN0b3IpO1xuXG4gIGZvcm1MaXN0LmZvckVhY2goKGZvcm1FbGVtZW50KSA9PiB7XG4gICAgY29uc3QgaW5wdXRMaXN0ID0gQXJyYXkuZnJvbShcbiAgICAgIGZvcm1FbGVtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoY29uZmlnLmlucHV0U2VsZWN0b3IpXG4gICAgKTtcbiAgICBzZXRFdmVudExpc3RlbmVycyhmb3JtRWxlbWVudCwgY29uZmlnKTtcblxuICAgIC8vIENsZWFyIHZhbGlkYXRpb24gb24gZm9ybSByZXNldFxuICAgIGZvcm1FbGVtZW50LmFkZEV2ZW50TGlzdGVuZXIoXCJyZXNldFwiLCAoKSA9PiB7XG4gICAgICByZXNldFZhbGlkYXRpb24oZm9ybUVsZW1lbnQsIGlucHV0TGlzdCwgY29uZmlnKTtcbiAgICB9KTtcbiAgfSk7XG59O1xuIiwiZXhwb3J0IGZ1bmN0aW9uIHJlbmRlckxvYWRpbmcoXG4gIGlzTG9hZGluZyxcbiAgYnV0dG9uLFxuICBidXR0b25UZXh0ID0gXCJTYXZlXCIsXG4gIGxvYWRpbmdUZXh0ID0gXCJTYXZpbmcuLi5cIlxuKSB7XG4gIGlmIChpc0xvYWRpbmcpIHtcbiAgICBidXR0b24udGV4dENvbnRlbnQgPSBsb2FkaW5nVGV4dDtcbiAgfSBlbHNlIHtcbiAgICBidXR0b24udGV4dENvbnRlbnQgPSBidXR0b25UZXh0O1xuICB9XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBoYW5kbGVTdWJtaXQocmVxdWVzdCwgZXZ0LCBsb2FkaW5nVGV4dCA9IFwiU2F2aW5nLi4uXCIpIHtcbiAgZXZ0LnByZXZlbnREZWZhdWx0KCk7XG4gIGNvbnN0IHN1Ym1pdEJ1dHRvbiA9IGV2dC5zdWJtaXR0ZXI7XG4gIGNvbnN0IGluaXRpYWxUZXh0ID0gc3VibWl0QnV0dG9uLnRleHRDb250ZW50O1xuXG4gIHJlbmRlckxvYWRpbmcodHJ1ZSwgc3VibWl0QnV0dG9uLCBpbml0aWFsVGV4dCwgbG9hZGluZ1RleHQpO1xuXG4gIHJldHVybiByZXF1ZXN0KClcbiAgICAuY2F0Y2goY29uc29sZS5lcnJvcilcbiAgICAuZmluYWxseSgoKSA9PiB7XG4gICAgICByZW5kZXJMb2FkaW5nKGZhbHNlLCBzdWJtaXRCdXR0b24sIGluaXRpYWxUZXh0KTtcbiAgICB9KTtcbn1cbiIsImltcG9ydCBcIi4vaW5kZXguY3NzXCI7IC8vIEltcG9ydGluZyB0aGUgQ1NTIGZpbGVcbmltcG9ydCB7XG4gIGVuYWJsZVZhbGlkYXRpb24sXG4gIHNldHRpbmdzLFxuICByZXNldFZhbGlkYXRpb24sXG59IGZyb20gXCIuLi9zY3JpcHRzL3ZhbGlkYXRpb24uanNcIjsgLy8gSW1wb3J0aW5nIHZhbGlkYXRpb24gZnVuY3Rpb25zXG5pbXBvcnQgQXBpIGZyb20gXCIuLi91dGlscy9BcGkuanNcIjsgLy8gSW1wb3J0aW5nIHRoZSBBUEkgY2xhc3NcbmltcG9ydCB7IGhhbmRsZVN1Ym1pdCwgcmVuZGVyTG9hZGluZyB9IGZyb20gXCIuLi91dGlscy91dGlscy5qc1wiOyAvLyBJbXBvcnRpbmcgdXRpbGl0eSBmdW5jdGlvbnNcblxuLy8gSW1wb3J0aW5nIGltYWdlcyBhbmQgb3RoZXIgYXNzZXRzXG5pbXBvcnQgbG9nb1BhdGggZnJvbSBcIi4uL2ltYWdlcy9sb2dvLnN2Z1wiO1xuaW1wb3J0IGF2YXRhclBhdGggZnJvbSBcIi4uL2ltYWdlcy9hdmF0YXIuanBnXCI7XG5pbXBvcnQgZWRpdEJ1dHRvblBhdGggZnJvbSBcIi4uL2ltYWdlcy9lZGl0YnRuLnN2Z1wiO1xuaW1wb3J0IGFkZEJ1dHRvblBhdGggZnJvbSBcIi4uL2ltYWdlcy9hZGRidG4uc3ZnXCI7XG5pbXBvcnQgZWRpdExpZ2h0QnV0dG9uUGF0aCBmcm9tIFwiLi4vaW1hZ2VzL2VkaXRidG4tbGlnaHQuc3ZnXCI7XG5cbi8vIEVuc3VyZSBzbWFsbHRhYmxldHZpZXcucG5nIGlzIGNvcGllZCB0byBkaXN0XG5pbXBvcnQgXCIuL19jb3B5X3NtYWxsdGFibGV0dmlldy5qc1wiO1xuXG5kb2N1bWVudC5xdWVyeVNlbGVjdG9yKFwiLmhlYWRlcl9fbG9nb1wiKS5zcmMgPSBsb2dvUGF0aDtcbmRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoXCIucHJvZmlsZV9fYXZhdGFyXCIpLnNyYyA9IGF2YXRhclBhdGg7XG5kb2N1bWVudC5xdWVyeVNlbGVjdG9yKFwiLnByb2ZpbGVfX2VkaXQtYnV0dG9uIGltZ1wiKS5zcmMgPSBlZGl0QnV0dG9uUGF0aDtcbmRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoXCIucHJvZmlsZV9fYWRkLWJ1dHRvbiBpbWdcIikuc3JjID0gYWRkQnV0dG9uUGF0aDtcbmRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoXCIucHJvZmlsZV9fcGVuY2lsSWNvblwiKS5zcmMgPSBlZGl0TGlnaHRCdXR0b25QYXRoO1xuXG5jb25zdCBhcGkgPSBuZXcgQXBpKHtcbiAgYmFzZVVybDogXCJodHRwczovL2Fyb3VuZC1hcGkuZW4udHJpcGxldGVuLXNlcnZpY2VzLmNvbS92MVwiLFxuICBoZWFkZXJzOiB7XG4gICAgYXV0aG9yaXphdGlvbjogXCJmMWYxZGJhYi04ZTE3LTQ4ZDMtYTA5OC1kNzdkZmQ2ZWEzYzVcIixcbiAgICBcIkNvbnRlbnQtVHlwZVwiOiBcImFwcGxpY2F0aW9uL2pzb25cIixcbiAgfSxcbn0pO1xuXG5sZXQgdXNlcklkO1xuXG5hcGlcbiAgLmdldFVzZXJJbmZvKClcbiAgLnRoZW4oKHVzZXJEYXRhKSA9PiB7XG4gICAgdXNlcklkID0gdXNlckRhdGEuX2lkO1xuICAgIHByb2ZpbGVOYW1lLnRleHRDb250ZW50ID0gdXNlckRhdGEubmFtZTtcbiAgICBwcm9maWxlRGVzY3JpcHRpb24udGV4dENvbnRlbnQgPSB1c2VyRGF0YS5hYm91dDtcbiAgICBwcm9maWxlQXZhdGFyLnNyYyA9IHVzZXJEYXRhLmF2YXRhcjtcbiAgICByZXR1cm4gYXBpLmdldEluaXRpYWxDYXJkcygpO1xuICB9KVxuICAudGhlbigoY2FyZHMpID0+IHtcbiAgICBjYXJkcy5mb3JFYWNoKChjYXJkKSA9PiB7XG4gICAgICBjb25zdCBjYXJkRWxlbWVudCA9IGdldENhcmRFbGVtZW50KGNhcmQpO1xuICAgICAgY2FyZHNMaXN0LmFwcGVuZChjYXJkRWxlbWVudCk7XG4gICAgfSk7XG4gIH0pXG4gIC5jYXRjaChjb25zb2xlLmVycm9yKTtcblxuLy8gUHJvZmlsZSBTZWxlY3RvcnNcbmNvbnN0IGVkaXRNb2RhbEJ1dHRvbiA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoXCIucHJvZmlsZV9fZWRpdC1idXR0b25cIik7XG5jb25zdCBjYXJkTW9kYWxCdXR0b24gPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKFwiLnByb2ZpbGVfX2FkZC1idXR0b25cIik7XG5jb25zdCBwcm9maWxlTmFtZSA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoXCIucHJvZmlsZV9fbmFtZVwiKTtcbmNvbnN0IHByb2ZpbGVEZXNjcmlwdGlvbiA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoXCIucHJvZmlsZV9fZGVzY3JpcHRpb25cIik7XG5cbi8vIE1vZGFsIFNlbGVjdG9yc1xuLy8gY29uc3QgbW9kYWxzID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbChcIi5tb2RhbFwiKTtcbmNvbnN0IGNsb3NlQnV0dG9ucyA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoXCIubW9kYWxfX2Nsb3NlLWJ1dHRvblwiKTtcbmNvbnN0IGRlbGV0ZU1vZGFsID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvcihcIiNkZWxldGUtbW9kYWxcIik7XG5jb25zdCBkZWxldGVGb3JtID0gZGVsZXRlTW9kYWwucXVlcnlTZWxlY3RvcihcIiNkZWxldGUtZm9ybVwiKTtcbmNvbnN0IGNhbmNlbERlbGV0ZUJ1dHRvbiA9IGRlbGV0ZU1vZGFsLnF1ZXJ5U2VsZWN0b3IoXCIubW9kYWxfX2NhbmNlbC1idXR0b25cIik7XG5jb25zdCBhdmF0YXJFZGl0QnV0dG9uID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvcihcIi5wcm9maWxlX19hdmF0YXItYnV0dG9uXCIpO1xuY29uc3QgYXZhdGFyTW9kYWwgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKFwiI25ldy1hdmF0YXItbW9kYWxcIik7XG5jb25zdCBhdmF0YXJGb3JtID0gYXZhdGFyTW9kYWwucXVlcnlTZWxlY3RvcihcIi5tb2RhbF9fZm9ybVwiKTtcbmNvbnN0IGF2YXRhckxpbmtJbnB1dCA9IGF2YXRhck1vZGFsLnF1ZXJ5U2VsZWN0b3IoXCIjbmV3LWF2YXRhci1saW5rLWlucHV0XCIpO1xuY29uc3QgcHJvZmlsZUF2YXRhciA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoXCIucHJvZmlsZV9fYXZhdGFyXCIpO1xuXG4vLyBNb2RhbCAtIEVkaXQgUHJvZmlsZVxuY29uc3QgZWRpdE1vZGFsID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvcihcIiNlZGl0LW1vZGFsXCIpO1xuY29uc3QgZWRpdEZvcm0gPSBlZGl0TW9kYWwucXVlcnlTZWxlY3RvcihcIi5tb2RhbF9fZm9ybVwiKTtcbmNvbnN0IGVkaXRNb2RhbE5hbWVJbnB1dCA9IGVkaXRNb2RhbC5xdWVyeVNlbGVjdG9yKFwiI3Byb2ZpbGUtbmFtZS1pbnB1dFwiKTtcbmNvbnN0IGVkaXRNb2RhbERlc2NyaXB0aW9uSW5wdXQgPSBlZGl0TW9kYWwucXVlcnlTZWxlY3RvcihcbiAgXCIjcHJvZmlsZS1kZXNjcmlwdGlvbi1pbnB1dFwiXG4pO1xuXG4vLyBNb2RhbCAtIEFkZCBDYXJkXG5jb25zdCBjYXJkTW9kYWwgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKFwiI25ldy1jYXJkLW1vZGFsXCIpO1xuY29uc3QgY2FyZEZvcm0gPSBjYXJkTW9kYWwucXVlcnlTZWxlY3RvcihcIi5tb2RhbF9fZm9ybVwiKTtcbi8vIGNvbnN0IGNhcmRTdWJtaXRCdXR0b24gPSBjYXJkTW9kYWwucXVlcnlTZWxlY3RvcihcIi5tb2RhbF9fc3VibWl0LWJ1dHRvblwiKTtcbmNvbnN0IGNhcmRMaW5rSW5wdXQgPSBjYXJkTW9kYWwucXVlcnlTZWxlY3RvcihcIiNuZXctY2FyZC1saW5rLWlucHV0XCIpO1xuY29uc3QgY2FyZENhcHRpb25JbnB1dCA9IGNhcmRNb2RhbC5xdWVyeVNlbGVjdG9yKFwiI25ldy1jYXJkLWNhcHRpb24taW5wdXRcIik7XG5cbi8vIE1vZGFsIFByZXZpZXdcbmNvbnN0IHByZXZpZXdNb2RhbCA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoXCIjcHJldmlldy1tb2RhbFwiKTtcbmNvbnN0IHByZXZpZXdJbWFnZSA9IHByZXZpZXdNb2RhbC5xdWVyeVNlbGVjdG9yKFwiLm1vZGFsX19pbWFnZVwiKTtcbmNvbnN0IHByZXZpZXdDYXB0aW9uID0gcHJldmlld01vZGFsLnF1ZXJ5U2VsZWN0b3IoXCIubW9kYWxfX2NhcHRpb25cIik7XG5cbi8vIENhcmRzXG5jb25zdCBjYXJkVGVtcGxhdGUgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKFwiI2NhcmQtdGVtcGxhdGVcIik7XG5jb25zdCBjYXJkc0xpc3QgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKFwiLmNhcmRzX19saXN0XCIpO1xuXG5mdW5jdGlvbiBnZXRDYXJkRWxlbWVudChkYXRhKSB7XG4gIGNvbnN0IGNhcmRFbGVtZW50ID0gY2FyZFRlbXBsYXRlLmNvbnRlbnRcbiAgICAucXVlcnlTZWxlY3RvcihcIi5jYXJkXCIpXG4gICAgLmNsb25lTm9kZSh0cnVlKTtcbiAgY2FyZEVsZW1lbnQuX2lkID0gZGF0YS5faWQ7XG5cbiAgY29uc3QgY2FyZFRpdGxlID0gY2FyZEVsZW1lbnQucXVlcnlTZWxlY3RvcihcIi5jYXJkX190aXRsZVwiKTtcbiAgY29uc3QgY2FyZEltYWdlID0gY2FyZEVsZW1lbnQucXVlcnlTZWxlY3RvcihcIi5jYXJkX19pbWFnZVwiKTtcbiAgY29uc3QgY2FyZExpa2VCdXR0b24gPSBjYXJkRWxlbWVudC5xdWVyeVNlbGVjdG9yKFwiLmNhcmRfX2xpa2UtYnV0dG9uXCIpO1xuICBjb25zdCBjYXJkTGlrZUNvdW50ID0gY2FyZEVsZW1lbnQucXVlcnlTZWxlY3RvcihcIi5jYXJkX19saWtlLWNvdW50XCIpO1xuICBjb25zdCBjYXJkRGVsZXRlQnV0dG9uID0gY2FyZEVsZW1lbnQucXVlcnlTZWxlY3RvcihcIi5jYXJkX19kZWxldGUtYnV0dG9uXCIpO1xuXG4gIC8vIFNldCBjYXJkIGRhdGFcbiAgY2FyZFRpdGxlLnRleHRDb250ZW50ID0gZGF0YS5uYW1lO1xuICBjYXJkSW1hZ2Uuc3JjID0gZGF0YS5saW5rOyAvLyBNYWtlIHN1cmUgdGhpcyBsaW5lIGlzIHByZXNlbnRcbiAgY2FyZEltYWdlLmFsdCA9IGRhdGEubmFtZTtcblxuICAvLyBTZXQgaW5pdGlhbCBsaWtlIHN0YXRlIGFuZCBjb3VudFxuICBpZiAoZGF0YS5pc0xpa2VkKSB7XG4gICAgY2FyZExpa2VCdXR0b24uY2xhc3NMaXN0LmFkZChcImNhcmRfX2xpa2UtYnV0dG9uX2xpa2VkXCIpO1xuICAgIGNhcmRMaWtlQ291bnQudGV4dENvbnRlbnQgPSBcIjFcIjsgLy8gU2V0IHRvIDEgaWYgdGhlIGNhcmQgaXMgbGlrZWRcbiAgfSBlbHNlIHtcbiAgICBjYXJkTGlrZUNvdW50LnRleHRDb250ZW50ID0gXCIwXCI7IC8vIFNldCB0byAwIGlmIHRoZSBjYXJkIGlzIG5vdCBsaWtlZFxuICB9XG5cbiAgY2FyZExpa2VCdXR0b24uYWRkRXZlbnRMaXN0ZW5lcihcImNsaWNrXCIsICgpID0+IHtcbiAgICBjb25zdCBpc0N1cnJlbnRseUxpa2VkID0gY2FyZExpa2VCdXR0b24uY2xhc3NMaXN0LmNvbnRhaW5zKFxuICAgICAgXCJjYXJkX19saWtlLWJ1dHRvbl9saWtlZFwiXG4gICAgKTtcblxuICAgIGNvbnN0IGxpa2VDYXJkUHJvbWlzZSA9IGlzQ3VycmVudGx5TGlrZWRcbiAgICAgID8gYXBpLmRpc2xpa2VDYXJkKGRhdGEuX2lkKVxuICAgICAgOiBhcGkubGlrZUNhcmQoZGF0YS5faWQpO1xuXG4gICAgbGlrZUNhcmRQcm9taXNlXG4gICAgICAudGhlbigodXBkYXRlZENhcmQpID0+IHtcbiAgICAgICAgY2FyZExpa2VCdXR0b24uY2xhc3NMaXN0LnRvZ2dsZShcbiAgICAgICAgICBcImNhcmRfX2xpa2UtYnV0dG9uX2xpa2VkXCIsXG4gICAgICAgICAgdXBkYXRlZENhcmQuaXNMaWtlZFxuICAgICAgICApO1xuICAgICAgICBjYXJkTGlrZUNvdW50LnRleHRDb250ZW50ID0gdXBkYXRlZENhcmQuaXNMaWtlZCA/IFwiMVwiIDogXCIwXCI7XG4gICAgICB9KVxuICAgICAgLmNhdGNoKChlcnJvcikgPT4ge1xuICAgICAgICBjb25zb2xlLmVycm9yKFwiRXJyb3IgdXBkYXRpbmcgbGlrZSBzdGF0dXM6XCIsIGVycm9yKTtcbiAgICAgIH0pO1xuICB9KTtcblxuICAvLyBkZWxldGUgYW5kIHByZXZpZXcgZXZlbnQgbGlzdGVuZXJzXG4gIGNhcmREZWxldGVCdXR0b24uYWRkRXZlbnRMaXN0ZW5lcihcImNsaWNrXCIsICgpID0+IHtcbiAgICBvcGVuTW9kYWwoZGVsZXRlTW9kYWwpO1xuICAgIGRlbGV0ZUZvcm0uX2NhcmRUb0RlbGV0ZSA9IGNhcmRFbGVtZW50O1xuICB9KTtcblxuICBjYXJkSW1hZ2UuYWRkRXZlbnRMaXN0ZW5lcihcImNsaWNrXCIsICgpID0+IHtcbiAgICBvcGVuTW9kYWwocHJldmlld01vZGFsKTtcbiAgICBwcmV2aWV3Q2FwdGlvbi50ZXh0Q29udGVudCA9IGRhdGEubmFtZTtcbiAgICBwcmV2aWV3SW1hZ2UuYWx0ID0gZGF0YS5uYW1lO1xuICAgIHByZXZpZXdJbWFnZS5zcmMgPSBkYXRhLmxpbms7XG4gIH0pO1xuXG4gIHJldHVybiBjYXJkRWxlbWVudDtcbn1cblxuZnVuY3Rpb24gb3Blbk1vZGFsKG1vZGFsKSB7XG4gIG1vZGFsLmNsYXNzTGlzdC5hZGQoXCJtb2RhbF9vcGVuZWRcIik7XG5cbiAgZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcihcImNsaWNrXCIsIGhhbmRsZU92ZXJsYXlDbGljayk7XG4gIGRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoXCJrZXlkb3duXCIsIGhhbmRsZUVzY2FwZUtleVByZXNzKTtcblxuICBtb2RhbC5faGFuZGxlT3ZlcmxheUNsaWNrID0gaGFuZGxlT3ZlcmxheUNsaWNrO1xuICBtb2RhbC5faGFuZGxlRXNjYXBlS2V5UHJlc3MgPSBoYW5kbGVFc2NhcGVLZXlQcmVzcztcblxuICBmdW5jdGlvbiBoYW5kbGVPdmVybGF5Q2xpY2soZXZlbnQpIHtcbiAgICBpZiAoZXZlbnQudGFyZ2V0LmNsYXNzTGlzdC5jb250YWlucyhcIm1vZGFsX29wZW5lZFwiKSkge1xuICAgICAgY2xvc2VNb2RhbChtb2RhbCk7XG4gICAgfVxuICB9XG5cbiAgZnVuY3Rpb24gaGFuZGxlRXNjYXBlS2V5UHJlc3MoZXZlbnQpIHtcbiAgICBpZiAoZXZlbnQua2V5ID09PSBcIkVzY2FwZVwiKSB7XG4gICAgICBjbG9zZU1vZGFsKG1vZGFsKTtcbiAgICB9XG4gIH1cbn1cblxuZnVuY3Rpb24gY2xvc2VNb2RhbChtb2RhbCkge1xuICBtb2RhbC5jbGFzc0xpc3QucmVtb3ZlKFwibW9kYWxfb3BlbmVkXCIpO1xuXG4gIGRvY3VtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoXCJjbGlja1wiLCBtb2RhbC5faGFuZGxlT3ZlcmxheUNsaWNrKTtcbiAgZG9jdW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcihcImtleWRvd25cIiwgbW9kYWwuX2hhbmRsZUVzY2FwZUtleVByZXNzKTtcbn1cblxuLy8gZnVuY3Rpb24gcmVuZGVyTG9hZGluZyhcbi8vIGlzTG9hZGluZyxcbi8vIGJ1dHRvbixcbi8vIGJ1dHRvblRleHQgPSBcIlNhdmVcIixcbi8vIGxvYWRpbmdUZXh0ID0gXCJTYXZpbmcuLi5cIlxuLy8gKSB7XG4vLyBidXR0b24udGV4dENvbnRlbnQgPSBpc0xvYWRpbmcgPyBsb2FkaW5nVGV4dCA6IGJ1dHRvblRleHQ7XG4vLyB9XG5cbi8vIFVuaXZlcnNhbCBDbG9zZSBCdXR0b24gSGFuZGxlclxuY2xvc2VCdXR0b25zLmZvckVhY2goKGJ1dHRvbikgPT4ge1xuICBjb25zdCBtb2RhbCA9IGJ1dHRvbi5jbG9zZXN0KFwiLm1vZGFsXCIpO1xuICBidXR0b24uYWRkRXZlbnRMaXN0ZW5lcihcImNsaWNrXCIsICgpID0+IGNsb3NlTW9kYWwobW9kYWwpKTtcbn0pO1xuXG4vLyBIYW5kbGVyc1xuZnVuY3Rpb24gbWFrZUVkaXRQcm9maWxlUmVxdWVzdCgpIHtcbiAgLy8gR2V0IGZvcm0gdmFsdWVzXG4gIGNvbnN0IG5hbWUgPSBlZGl0TW9kYWxOYW1lSW5wdXQudmFsdWU7XG4gIGNvbnN0IGFib3V0ID0gZWRpdE1vZGFsRGVzY3JpcHRpb25JbnB1dC52YWx1ZTtcblxuICAvLyBNYWtlIEFQSSBjYWxsIHRvIGVkaXQgdXNlciBpbmZvXG4gIHJldHVybiBhcGkuZWRpdFVzZXJJbmZvKHsgbmFtZSwgYWJvdXQgfSkudGhlbigodXNlckRhdGEpID0+IHtcbiAgICAvLyBVcGRhdGUgdGhlIERPTSB3aXRoIHRoZSBuZXcgdXNlciBkYXRhXG4gICAgcHJvZmlsZU5hbWUudGV4dENvbnRlbnQgPSB1c2VyRGF0YS5uYW1lO1xuICAgIHByb2ZpbGVEZXNjcmlwdGlvbi50ZXh0Q29udGVudCA9IHVzZXJEYXRhLmFib3V0O1xuICAgIC8vIENsb3NlIHRoZSBtb2RhbFxuICAgIGNsb3NlTW9kYWwoZWRpdE1vZGFsKTtcbiAgfSk7XG59XG5cbmZ1bmN0aW9uIGhhbmRsZUVkaXRGb3JtU3VibWl0KGV2dCkge1xuICBoYW5kbGVTdWJtaXQobWFrZUVkaXRQcm9maWxlUmVxdWVzdCwgZXZ0LCBcIlNhdmluZy4uLlwiKTtcbn1cblxuZnVuY3Rpb24gaGFuZGxlQ2FyZEZvcm1TdWJtaXQoZXZ0KSB7XG4gIGV2dC5wcmV2ZW50RGVmYXVsdCgpO1xuICBjb25zdCBzdWJtaXRCdXR0b24gPSBjYXJkRm9ybS5xdWVyeVNlbGVjdG9yKFwiLm1vZGFsX19zdWJtaXQtYnV0dG9uXCIpO1xuICByZW5kZXJMb2FkaW5nKHRydWUsIHN1Ym1pdEJ1dHRvbik7XG5cbiAgYXBpXG4gICAgLmFkZENhcmQoe1xuICAgICAgbmFtZTogY2FyZENhcHRpb25JbnB1dC52YWx1ZSxcbiAgICAgIGxpbms6IGNhcmRMaW5rSW5wdXQudmFsdWUsXG4gICAgfSlcbiAgICAudGhlbigoY2FyZERhdGEpID0+IHtcbiAgICAgIGNvbnN0IGNhcmRFbGVtZW50ID0gZ2V0Q2FyZEVsZW1lbnQoY2FyZERhdGEpO1xuICAgICAgY2FyZHNMaXN0LnByZXBlbmQoY2FyZEVsZW1lbnQpO1xuICAgICAgZXZ0LnRhcmdldC5yZXNldCgpO1xuICAgICAgY2xvc2VNb2RhbChjYXJkTW9kYWwpO1xuICAgIH0pXG4gICAgLmNhdGNoKGNvbnNvbGUuZXJyb3IpXG4gICAgLmZpbmFsbHkoKCkgPT4ge1xuICAgICAgcmVuZGVyTG9hZGluZyhmYWxzZSwgc3VibWl0QnV0dG9uKTtcbiAgICB9KTtcbn1cblxuLy8gRWRpdCBNb2RhbCBMaXN0ZW5lcnNcbmVkaXRNb2RhbEJ1dHRvbi5hZGRFdmVudExpc3RlbmVyKFwiY2xpY2tcIiwgKCkgPT4ge1xuICBlZGl0TW9kYWxOYW1lSW5wdXQudmFsdWUgPSBwcm9maWxlTmFtZS50ZXh0Q29udGVudDtcbiAgZWRpdE1vZGFsRGVzY3JpcHRpb25JbnB1dC52YWx1ZSA9IHByb2ZpbGVEZXNjcmlwdGlvbi50ZXh0Q29udGVudDtcbiAgcmVzZXRWYWxpZGF0aW9uKFxuICAgIGVkaXRGb3JtLFxuICAgIFtlZGl0TW9kYWxOYW1lSW5wdXQsIGVkaXRNb2RhbERlc2NyaXB0aW9uSW5wdXRdLFxuICAgIHNldHRpbmdzXG4gICk7XG4gIG9wZW5Nb2RhbChlZGl0TW9kYWwpO1xufSk7XG5cbi8vIEF2YXRhciBNb2RhbCBMaXN0ZW5lclxuYXZhdGFyRWRpdEJ1dHRvbi5hZGRFdmVudExpc3RlbmVyKFwiY2xpY2tcIiwgKCkgPT4ge1xuICBvcGVuTW9kYWwoYXZhdGFyTW9kYWwpO1xufSk7XG5cbi8vIENhcmQgTW9kYWwgTGlzdGVuZXJzXG5jYXJkTW9kYWxCdXR0b24uYWRkRXZlbnRMaXN0ZW5lcihcImNsaWNrXCIsICgpID0+IHtcbiAgb3Blbk1vZGFsKGNhcmRNb2RhbCk7XG59KTtcblxuY2FuY2VsRGVsZXRlQnV0dG9uLmFkZEV2ZW50TGlzdGVuZXIoXCJjbGlja1wiLCAoKSA9PiB7XG4gIGNsb3NlTW9kYWwoZGVsZXRlTW9kYWwpO1xufSk7XG5cbi8vIEZvcm0gTGlzdGVuZXJzXG5lZGl0Rm9ybS5hZGRFdmVudExpc3RlbmVyKFwic3VibWl0XCIsIGhhbmRsZUVkaXRGb3JtU3VibWl0KTtcbmNhcmRGb3JtLmFkZEV2ZW50TGlzdGVuZXIoXCJzdWJtaXRcIiwgaGFuZGxlQ2FyZEZvcm1TdWJtaXQpO1xuXG5kZWxldGVGb3JtLmFkZEV2ZW50TGlzdGVuZXIoXCJzdWJtaXRcIiwgKGV2dCkgPT4ge1xuICBldnQucHJldmVudERlZmF1bHQoKTtcbiAgY29uc3Qgc3VibWl0QnV0dG9uID0gZGVsZXRlRm9ybS5xdWVyeVNlbGVjdG9yKFwiLm1vZGFsX19zdWJtaXQtYnV0dG9uXCIpO1xuICByZW5kZXJMb2FkaW5nKHRydWUsIHN1Ym1pdEJ1dHRvbiwgXCJEZWxldGVcIiwgXCJEZWxldGluZy4uLlwiKTtcblxuICBhcGlcbiAgICAucmVtb3ZlQ2FyZChkZWxldGVGb3JtLl9jYXJkVG9EZWxldGUuX2lkKSAvLyBDaGFuZ2VkIGZyb20gZGVsZXRlQ2FyZCB0byByZW1vdmVDYXJkXG4gICAgLnRoZW4oKCkgPT4ge1xuICAgICAgaGFuZGxlU3VibWl0KCgpID0+IHtcbiAgICAgICAgZGVsZXRlRm9ybS5fY2FyZFRvRGVsZXRlLnJlbW92ZSgpO1xuICAgICAgfSk7XG4gICAgICBjbG9zZU1vZGFsKGRlbGV0ZU1vZGFsKTtcbiAgICB9KVxuICAgIC5jYXRjaChjb25zb2xlLmVycm9yKVxuICAgIC5maW5hbGx5KCgpID0+IHtcbiAgICAgIHJlbmRlckxvYWRpbmcoZmFsc2UsIHN1Ym1pdEJ1dHRvbiwgXCJEZWxldGVcIik7XG4gICAgfSk7XG59KTtcblxuLy8gQXZhdGFyIEZvcm0gU3VibWl0IEhhbmRsZXJcbmF2YXRhckZvcm0uYWRkRXZlbnRMaXN0ZW5lcihcInN1Ym1pdFwiLCAoZXZ0KSA9PiB7XG4gIGV2dC5wcmV2ZW50RGVmYXVsdCgpO1xuICBjb25zdCBzdWJtaXRCdXR0b24gPSBhdmF0YXJGb3JtLnF1ZXJ5U2VsZWN0b3IoXCIubW9kYWxfX3N1Ym1pdC1idXR0b25cIik7XG4gIHJlbmRlckxvYWRpbmcodHJ1ZSwgc3VibWl0QnV0dG9uKTtcblxuICBhcGlcbiAgICAudXBkYXRlQXZhdGFyKHtcbiAgICAgIGF2YXRhcjogYXZhdGFyTGlua0lucHV0LnZhbHVlLFxuICAgIH0pXG4gICAgLnRoZW4oKHVzZXJEYXRhKSA9PiB7XG4gICAgICBwcm9maWxlQXZhdGFyLnNyYyA9IHVzZXJEYXRhLmF2YXRhcjtcbiAgICAgIGV2dC50YXJnZXQucmVzZXQoKTtcbiAgICAgIGNsb3NlTW9kYWwoYXZhdGFyTW9kYWwpO1xuICAgIH0pXG4gICAgLmNhdGNoKGNvbnNvbGUuZXJyb3IpXG4gICAgLmZpbmFsbHkoKCkgPT4ge1xuICAgICAgcmVuZGVyTG9hZGluZyhmYWxzZSwgc3VibWl0QnV0dG9uKTtcbiAgICB9KTtcbn0pO1xuXG5lbmFibGVWYWxpZGF0aW9uKHNldHRpbmdzKTtcbiIsImNsYXNzIEFwaSB7XG4gIGNvbnN0cnVjdG9yKG9wdGlvbnMpIHtcbiAgICB0aGlzLl9iYXNlVXJsID0gb3B0aW9ucy5iYXNlVXJsO1xuICAgIHRoaXMuX2hlYWRlcnMgPSBvcHRpb25zLmhlYWRlcnM7XG4gIH1cblxuICBfY2hlY2tSZXNwb25zZShyZXMpIHtcbiAgICBpZiAocmVzLm9rKSB7XG4gICAgICByZXR1cm4gcmVzLmpzb24oKTtcbiAgICB9XG4gICAgcmV0dXJuIFByb21pc2UucmVqZWN0KGBFcnJvcjogJHtyZXMuc3RhdHVzfWApO1xuICB9XG5cbiAgX3JlcXVlc3QoZW5kcG9pbnQsIG9wdGlvbnMgPSB7fSkge1xuICAgIGNvbnN0IGZpbmFsT3B0aW9ucyA9IHtcbiAgICAgIGhlYWRlcnM6IHRoaXMuX2hlYWRlcnMsXG4gICAgICAuLi5vcHRpb25zLFxuICAgIH07XG4gICAgY29uc3QgdXJsID0gYCR7dGhpcy5fYmFzZVVybH0ke2VuZHBvaW50fWA7XG4gICAgcmV0dXJuIGZldGNoKHVybCwgZmluYWxPcHRpb25zKS50aGVuKHRoaXMuX2NoZWNrUmVzcG9uc2UpO1xuICB9XG5cbiAgZ2V0VXNlckluZm8oKSB7XG4gICAgcmV0dXJuIHRoaXMuX3JlcXVlc3QoXCIvdXNlcnMvbWVcIik7XG4gIH1cblxuICBnZXRJbml0aWFsQ2FyZHMoKSB7XG4gICAgcmV0dXJuIHRoaXMuX3JlcXVlc3QoXCIvY2FyZHNcIiwge1xuICAgICAgbWV0aG9kOiBcIkdFVFwiLFxuICAgIH0pO1xuICB9XG5cbiAgLy8gUEFUQ0ggL3VzZXJzL21lXG4gIGVkaXRVc2VySW5mbyh7IG5hbWUsIGFib3V0IH0pIHtcbiAgICByZXR1cm4gdGhpcy5fcmVxdWVzdChcIi91c2Vycy9tZVwiLCB7XG4gICAgICBtZXRob2Q6IFwiUEFUQ0hcIixcbiAgICAgIGJvZHk6IEpTT04uc3RyaW5naWZ5KHsgbmFtZSwgYWJvdXQgfSksXG4gICAgfSk7XG4gIH1cblxuICAvLyBQQVRDSCAvdXNlcnMvbWUvYXZhdGFyXG4gIHVwZGF0ZUF2YXRhcih7IGF2YXRhciB9KSB7XG4gICAgcmV0dXJuIHRoaXMuX3JlcXVlc3QoXCIvdXNlcnMvbWUvYXZhdGFyXCIsIHtcbiAgICAgIG1ldGhvZDogXCJQQVRDSFwiLFxuICAgICAgYm9keTogSlNPTi5zdHJpbmdpZnkoeyBhdmF0YXIgfSksXG4gICAgfSk7XG4gIH1cblxuICAvLyBQT1NUIC9jYXJkc1xuICBhZGRDYXJkKHsgbmFtZSwgbGluayB9KSB7XG4gICAgcmV0dXJuIHRoaXMuX3JlcXVlc3QoXCIvY2FyZHNcIiwge1xuICAgICAgbWV0aG9kOiBcIlBPU1RcIixcbiAgICAgIGJvZHk6IEpTT04uc3RyaW5naWZ5KHsgbmFtZSwgbGluayB9KSxcbiAgICB9KTtcbiAgfVxuXG4gIC8vIERFTEVURSAvY2FyZHMvOmNhcmRJZFxuICByZW1vdmVDYXJkKGNhcmRJZCkge1xuICAgIHJldHVybiBmZXRjaChgJHt0aGlzLl9iYXNlVXJsfS9jYXJkcy8ke2NhcmRJZH1gLCB7XG4gICAgICBtZXRob2Q6IFwiREVMRVRFXCIsXG4gICAgICBoZWFkZXJzOiB0aGlzLl9oZWFkZXJzLFxuICAgIH0pLnRoZW4odGhpcy5fY2hlY2tSZXNwb25zZSk7XG4gIH1cblxuICAvLyBQVVQgL2NhcmRzLzpjYXJkSWQvbGlrZXNcbiAgbGlrZUNhcmQoY2FyZElkKSB7XG4gICAgcmV0dXJuIHRoaXMuX3JlcXVlc3QoYC9jYXJkcy8ke2NhcmRJZH0vbGlrZXNgLCB7XG4gICAgICBtZXRob2Q6IFwiUFVUXCIsXG4gICAgfSk7XG4gIH1cblxuICAvLyBERUxFVEUgL2NhcmRzLzpjYXJkSWQvbGlrZXNcbiAgZGlzbGlrZUNhcmQoY2FyZElkKSB7XG4gICAgcmV0dXJuIHRoaXMuX3JlcXVlc3QoYC9jYXJkcy8ke2NhcmRJZH0vbGlrZXNgLCB7XG4gICAgICBtZXRob2Q6IFwiREVMRVRFXCIsXG4gICAgfSk7XG4gIH1cblxuICAvLyBIZWxwZXI6IEZldGNoIGluaXRpYWwgZGF0YSBzaW11bHRhbmVvdXNseSAodXNlciBpbmZvICYgY2FyZHMpXG4gIGZldGNoSW5pdGlhbERhdGEoKSB7XG4gICAgcmV0dXJuIFByb21pc2UuYWxsKFt0aGlzLmdldFVzZXJJbmZvKCksIHRoaXMuZ2V0SW5pdGlhbENhcmRzKCldKTtcbiAgfVxufVxuXG5leHBvcnQgZGVmYXVsdCBBcGk7XG4iXSwibmFtZXMiOlsiX193ZWJwYWNrX3JlcXVpcmVfXyIsInNldHRpbmdzIiwiZm9ybVNlbGVjdG9yIiwiaW5wdXRTZWxlY3RvciIsInN1Ym1pdEJ1dHRvblNlbGVjdG9yIiwiaW5hY3RpdmVCdXR0b25DbGFzcyIsImlucHV0RXJyb3JDbGFzcyIsImVycm9yQ2xhc3MiLCJsb2dFcnJvciIsIm1lc3NhZ2UiLCJjb25zb2xlIiwiZXJyb3IiLCJoaWRlSW5wdXRFcnJvciIsImZvcm1FbGVtZW50IiwiaW5wdXRFbGVtZW50IiwiY29uZmlnIiwiZXJyb3JNZXNzYWdlRWxlbWVudCIsInF1ZXJ5U2VsZWN0b3IiLCJpZCIsInRleHRDb250ZW50IiwicmVtb3ZlQXR0cmlidXRlIiwiY2xhc3NMaXN0IiwicmVtb3ZlIiwidG9nZ2xlQnV0dG9uU3RhdGUiLCJpbnB1dExpc3QiLCJidXR0b25FbGVtZW50Iiwic29tZSIsImlucHV0IiwidmFsaWRpdHkiLCJ2YWxpZCIsImhhc0ludmFsaWRJbnB1dCIsImRpc2FibGVCdXR0b24iLCJkaXNhYmxlZCIsImFkZCIsInJlc2V0VmFsaWRhdGlvbiIsImZvckVhY2giLCJyZW5kZXJMb2FkaW5nIiwiaXNMb2FkaW5nIiwiYnV0dG9uIiwiYnV0dG9uVGV4dCIsImxvYWRpbmdUZXh0IiwiaGFuZGxlU3VibWl0IiwicmVxdWVzdCIsImV2dCIsInByZXZlbnREZWZhdWx0Iiwic3VibWl0QnV0dG9uIiwic3VibWl0dGVyIiwiaW5pdGlhbFRleHQiLCJjYXRjaCIsImZpbmFsbHkiLCJkb2N1bWVudCIsInNyYyIsImxvZ29QYXRoIiwiYXZhdGFyUGF0aCIsImVkaXRCdXR0b25QYXRoIiwiYWRkQnV0dG9uUGF0aCIsImVkaXRMaWdodEJ1dHRvblBhdGgiLCJhcGkiLCJjb25zdHJ1Y3RvciIsIm9wdGlvbnMiLCJ0aGlzIiwiX2Jhc2VVcmwiLCJiYXNlVXJsIiwiX2hlYWRlcnMiLCJoZWFkZXJzIiwiX2NoZWNrUmVzcG9uc2UiLCJyZXMiLCJvayIsImpzb24iLCJQcm9taXNlIiwicmVqZWN0Iiwic3RhdHVzIiwiX3JlcXVlc3QiLCJlbmRwb2ludCIsImZpbmFsT3B0aW9ucyIsInVybCIsImZldGNoIiwidGhlbiIsImdldFVzZXJJbmZvIiwiZ2V0SW5pdGlhbENhcmRzIiwibWV0aG9kIiwiZWRpdFVzZXJJbmZvIiwibmFtZSIsImFib3V0IiwiYm9keSIsIkpTT04iLCJzdHJpbmdpZnkiLCJ1cGRhdGVBdmF0YXIiLCJhdmF0YXIiLCJhZGRDYXJkIiwibGluayIsInJlbW92ZUNhcmQiLCJjYXJkSWQiLCJsaWtlQ2FyZCIsImRpc2xpa2VDYXJkIiwiZmV0Y2hJbml0aWFsRGF0YSIsImFsbCIsImF1dGhvcml6YXRpb24iLCJ1c2VySWQiLCJ1c2VyRGF0YSIsIl9pZCIsInByb2ZpbGVOYW1lIiwicHJvZmlsZURlc2NyaXB0aW9uIiwicHJvZmlsZUF2YXRhciIsImNhcmRzIiwiY2FyZCIsImNhcmRFbGVtZW50IiwiZ2V0Q2FyZEVsZW1lbnQiLCJjYXJkc0xpc3QiLCJhcHBlbmQiLCJlZGl0TW9kYWxCdXR0b24iLCJjYXJkTW9kYWxCdXR0b24iLCJjbG9zZUJ1dHRvbnMiLCJxdWVyeVNlbGVjdG9yQWxsIiwiZGVsZXRlTW9kYWwiLCJkZWxldGVGb3JtIiwiY2FuY2VsRGVsZXRlQnV0dG9uIiwiYXZhdGFyRWRpdEJ1dHRvbiIsImF2YXRhck1vZGFsIiwiYXZhdGFyRm9ybSIsImF2YXRhckxpbmtJbnB1dCIsImVkaXRNb2RhbCIsImVkaXRGb3JtIiwiZWRpdE1vZGFsTmFtZUlucHV0IiwiZWRpdE1vZGFsRGVzY3JpcHRpb25JbnB1dCIsImNhcmRNb2RhbCIsImNhcmRGb3JtIiwiY2FyZExpbmtJbnB1dCIsImNhcmRDYXB0aW9uSW5wdXQiLCJwcmV2aWV3TW9kYWwiLCJwcmV2aWV3SW1hZ2UiLCJwcmV2aWV3Q2FwdGlvbiIsImNhcmRUZW1wbGF0ZSIsImRhdGEiLCJjb250ZW50IiwiY2xvbmVOb2RlIiwiY2FyZFRpdGxlIiwiY2FyZEltYWdlIiwiY2FyZExpa2VCdXR0b24iLCJjYXJkTGlrZUNvdW50IiwiY2FyZERlbGV0ZUJ1dHRvbiIsImFsdCIsImlzTGlrZWQiLCJhZGRFdmVudExpc3RlbmVyIiwiY29udGFpbnMiLCJ1cGRhdGVkQ2FyZCIsInRvZ2dsZSIsIm9wZW5Nb2RhbCIsIl9jYXJkVG9EZWxldGUiLCJtb2RhbCIsImhhbmRsZU92ZXJsYXlDbGljayIsImV2ZW50IiwidGFyZ2V0IiwiY2xvc2VNb2RhbCIsImhhbmRsZUVzY2FwZUtleVByZXNzIiwia2V5IiwiX2hhbmRsZU92ZXJsYXlDbGljayIsIl9oYW5kbGVFc2NhcGVLZXlQcmVzcyIsInJlbW92ZUV2ZW50TGlzdGVuZXIiLCJtYWtlRWRpdFByb2ZpbGVSZXF1ZXN0IiwidmFsdWUiLCJjbG9zZXN0IiwiY2FyZERhdGEiLCJwcmVwZW5kIiwicmVzZXQiLCJBcnJheSIsImZyb20iLCJzZXRFdmVudExpc3RlbmVycyIsImNoZWNrSW5wdXRWYWxpZGl0eSIsInNob3dJbnB1dEVycm9yIiwiZXJyb3JNZXNzYWdlIiwic2V0QXR0cmlidXRlIiwidmFsaWRhdGlvbk1lc3NhZ2UiXSwic291cmNlUm9vdCI6IiJ9 \ No newline at end of file diff --git a/src/pages/_copy_smalltabletview.js b/src/pages/_copy_smalltabletview.js new file mode 100644 index 0000000..97dbdd5 --- /dev/null +++ b/src/pages/_copy_smalltabletview.js @@ -0,0 +1,4 @@ +// This file is used to ensure Webpack copies smalltabletview.png to the dist folder. +// It is not used in the application code. +import smallTabletView from "../images/smalltabletview.png"; +export default smallTabletView; diff --git a/src/pages/index.js b/src/pages/index.js index 07a269c..61262cb 100644 --- a/src/pages/index.js +++ b/src/pages/index.js @@ -14,6 +14,9 @@ import editButtonPath from "../images/editbtn.svg"; import addButtonPath from "../images/addbtn.svg"; import editLightButtonPath from "../images/editbtn-light.svg"; +// Ensure smalltabletview.png is copied to dist +import "./_copy_smalltabletview.js"; + document.querySelector(".header__logo").src = logoPath; document.querySelector(".profile__avatar").src = avatarPath; document.querySelector(".profile__edit-button img").src = editButtonPath; diff --git a/webpack.config.js b/webpack.config.js index b0447f3..3ee811e 100644 --- a/webpack.config.js +++ b/webpack.config.js @@ -48,6 +48,9 @@ module.exports = { { test: /\.(png|svg|jpg|jpeg|webp|gif|woff(2)?|eot|ttf|otf)$/, type: "asset/resource", + generator: { + filename: "[name][ext]", + }, }, ], },