.pagination-container{width:100%;margin:auto;height:auto;min-height:50px;clear:both;margin-top:0px;display:flex;flex-direction:row;justify-content:flex-start;align-items:flex-start;flex-wrap:wrap}.pagination-container:last-child{margin-top:20px}.pagination-container-item:not(:last-child){margin-right:15px}.pagination-container-item:has(ul.pagination):not(:has(li)){display:none}.pagination-container p{font-size:.75rem;display:block;float:left;margin-top:0px}.pagination-container label{font-size:.75rem;display:block;clear:both;font-weight:normal}.pagination-container span{float:left;display:block}.pagination-container span:first-child{margin-right:10px}.pagination-container select{width:100px;display:none;clear:both}.pagination-container select#sort{width:140px}.pagination-container .pp{width:100px;display:none;clear:both}.pagination-container .sb{width:100px;display:none;clear:both;padding:5px 5px}.pagination-container .pp-cont{margin-right:10px;float:none;width:auto}.pagination-container .d-cont{float:none;width:auto;display:block;margin-right:10px}.pagination-container .custom-select{position:relative;display:inline-block;vertical-align:top}.pagination-container .select-selected{position:relative;display:block;color:#363636;background-color:#fff;border:1px solid #dbdbdb;border-radius:4px;padding:7px 34px 7px 12px;cursor:pointer;white-space:nowrap;-webkit-user-select:none;user-select:none;overflow:hidden;text-overflow:ellipsis}.pagination-container .select-selected:after{content:"";position:absolute;top:50%;right:14px;width:.5em;height:.5em;margin-top:-0.35em;border:1px solid #3273dc;border-top:0;border-right:0;transform:rotate(-45deg);pointer-events:none}.pagination-container .select-selected.select-arrow-active:after{margin-top:-0.1em;transform:rotate(135deg)}.pagination-container .select-items{position:absolute;top:calc(100% + 2px);left:0;min-width:100%;width:max-content;max-width:calc(100vw - 40px);z-index:102;background-color:#fff;border:1px solid #dbdbdb;border-radius:4px;max-height:300px;overflow-y:auto;overflow-x:hidden;box-shadow:0 2px 6px rgba(0,0,0,.12)}.pagination-container .select-items div{color:#363636;padding:7px 12px;cursor:pointer;white-space:nowrap}.pagination-container .select-items div:hover,.pagination-container .same-as-selected{background-color:rgba(0,0,0,.07)}.pagination-container .select-hide{display:none}.pagination-container ul.pagination{display:flex;flex-wrap:wrap;list-style-type:none;padding:0;margin:0;gap:14px;margin-top:27px}@media(max-width: 767.98px){.pagination-container ul.pagination{margin-bottom:12px}}.pagination-container ul.pagination li{cursor:pointer}.pagination-container ul.results{padding-left:0;list-style-type:none}.pagination-container ul.results li{float:left;margin-left:10px;text-decoration:underline;cursor:pointer}.pagination-container ul.results li.selected{background-color:#efefef;color:#fff}.pagination-container ul.results li:first-child{text-decoration:none;cursor:default;border:none}.pagination-container .pagination>li>a,.pagination-container .pagination>li>span{color:#585e66}.pagination-container .pagination-item{display:inline}.pagination-container .pagination-item.active a{border:.0625rem solid var(--ps-color-primary-dark, #4b84c0);background-color:var(--ps-color-primary-dark, #4b84c0)}.pagination-container .pagination-item.active a:hover{border:.0625rem solid var(--ps-color-primary, #001877);background-color:var(--ps-color-primary, #001877)}.pagination-container .pagination-item a{padding:.3125rem .9375rem;border:.0625rem solid var(--ps-color-neutral, #ffffff)}@media(max-width: 767.98px){.pagination-container .pagination-item a{padding:.3125rem .4375rem}}.pagination-container .pagination-item a:hover{border:.0625rem solid var(--ps-color-primary, #001877);background-color:var(--ps-color-primary, #001877);color:var(--ps-color-neutral, #ffffff)}.pagination-container .show-side-nav .show-filter{color:var(--ps-color-primary-dark, #4b84c0);text-decoration:none;font-weight:500}.pagination>li>a:hover{border:1px solid var(--ps-color-primary, #305CDE);background-color:#fff;border-radius:3px}.pagination>li.active>a{background:var(--ps-color-primary, #305CDE);color:#fff;border-radius:3px}.pagination>li.active>a:hover{background:var(--ps-color-primary, #305CDE);color:#fff;border-radius:3px;border:0}.pagination>li>a,.pagination>li>span{border:0px;font-size:16px}.pagination>li:last-child>a,.pagination>li:last-child>span{border:1px solid #ddd;border-radius:3px}.pagination>li:first-child>a,.pagination>li:first-child>span{border:1px solid #ddd;border-radius:3px;z-index:1;margin-right:3px}.pagination-item .next::after{border-style:solid;border-width:.15em .15em 0 0;content:"";display:inline-block;height:.65em;width:.65em;position:relative;transform:rotate(45deg);vertical-align:top;top:.65em;left:5px;font-size:12px}.pagination-item .previous::after{border-style:solid;border-width:.15em .15em 0 0;content:"";display:inline-block;height:.65em;width:.65em;position:relative;transform:rotate(-135deg);vertical-align:top;top:.65em;left:-77px;font-size:12px}.pagination-bottom .-showing{display:none}@media screen and (max-width: 776px){.pagination-container{display:grid;grid-template-columns:1fr 1fr;column-gap:12px;row-gap:8px;align-items:end}.pagination-container:last-child{margin-top:0px}.pagination-container-item:not(:last-child){margin-right:0}.pagination-container .-showing{grid-area:1/1/2/-1;justify-self:start;align-self:center;max-width:calc(100% - 8rem);min-width:0}.pagination-container .show-side-nav{grid-area:1/1/2/-1;justify-self:end;align-self:center;width:auto;margin:0}.pagination-container.pagination-bottom .show-side-nav{justify-self:start}.pagination-container p{margin-bottom:0}.pagination-container .pagination-container-item:has(.pp-cont){grid-area:2/1/3/2;min-width:0}.pagination-container .pagination-container-item:has(.d-cont){grid-area:2/2/3/3;min-width:0}.pagination-container .pagination-container-item:has(ul.pagination){grid-column:1/-1}.pagination-container ul.pagination{margin-top:4px;margin-bottom:0;justify-content:center;gap:10px}.pagination-container .pp-cont,.pagination-container .d-cont{float:none;width:100%;margin-right:0}.pagination-container .pp-cont label,.pagination-container .d-cont label{display:block;margin-bottom:4px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.pagination-container .pp-cont .form-group,.pagination-container .pp-cont .custom-select,.pagination-container .d-cont .form-group,.pagination-container .d-cont .custom-select{display:block;width:100%}.pagination-container .pp-cont select,.pagination-container .d-cont select{width:100%}.pagination-container .select-items div{padding:10px 14px}.pagination-container .select-selected{padding:7px 26px 7px 10px}.pagination-container .select-selected:after{right:10px}.pagination-container .d-cont .select-items{left:auto;right:0}}@media screen and (max-width: 359.98px){.pagination-container{grid-template-columns:1fr}.pagination-container .pagination-container-item:has(.pp-cont){grid-area:2/1/3/2}.pagination-container .pagination-container-item:has(.d-cont){grid-area:3/1/4/2}.pagination-container .pagination-container-item:has(ul.pagination){grid-column:1/-1}}.ps-univ-note{--ps-univ-note-ink: var(--ps-pc-univ, #4a5568);display:flex;align-items:flex-start;gap:9px;padding:9px 12px;margin:10px 0 14px;border:1px solid rgba(74,85,104,.22);border-left:3px solid var(--ps-univ-note-ink);border-radius:8px;background:#eef1f5;font-size:12.5px;line-height:1.45;color:#3a3d44;text-align:left}.ps-univ-note strong{color:var(--ps-univ-note-ink)}.ps-univ-note.ps-univ-note--verify{--ps-univ-note-ink: var(--ps-pc-verify, #b45309);border-color:rgba(180,83,9,.28);background:#fdf3e7}.ps-univ-note__icon{flex:0 0 auto;width:18px;height:18px;border-radius:4px;margin-top:1px;display:inline-flex;align-items:center;justify-content:center;background:var(--ps-univ-note-ink);color:#fff}.ps-univ-note__icon svg{display:block}.ps-univ-note__link{-webkit-appearance:none;appearance:none;background:none;border:0;padding:0;margin:0;cursor:pointer;color:var(--ps-univ-note-ink);font:inherit;font-weight:600;text-decoration:underline;text-underline-offset:2px}.ps-univ-note__link:focus-visible{outline:2px solid var(--ps-univ-note-ink);outline-offset:2px}

/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXNzZXRzL2Nzcy9jb21wb25lbnQtcHJvZHVjdC10b29sYmFyLWRlZmF1bHQuYzQzOGFjZDAxNmI5MjkwOWJiYzAuY3NzIiwibWFwcGluZ3MiOiJBQWtCQSxzQkFDRSxXQUNBLFlBQ0EsWUFDQSxnQkFDQSxXQUNBLGVBVUEsYUFDQSxtQkFDQSwyQkFDQSx1QkFDQSxlQUVBLGlEQUVBLDhEQVdBLHlFQUVBLGlGQUNBLDRCQUNFLGlCQUNBLDRDQUVGLG9EQUNBLHlEQU9BLGlFQUNBLDhDQUVBLDhEQUNBLDhFQUVBLHVFQUNBLG9GQWFBLCtGQUVBLHVDQUNFLGtCQUNBLGNBQ0EsY0FDQSxzQkFDQSx5QkFDQSxrQkFDQSwwQkFDQSxlQUNBLG1CQUNBLHlCQUNBLGlCQU9BLGdCQUNBLHVCQUdGLDZDQUNFLFdBQ0Esa0JBQ0EsUUFDQSxXQUNBLFdBQ0EsWUFDQSxtQkFDQSx5QkFDQSxhQUNBLGVBQ0EseUJBQ0Esb0JBR0YsaUVBQ0Usa0JBQ0EseUJBR0Ysb0NBQ0Usa0JBQ0EscUJBQ0EsT0FVQSxlQUNBLGtCQUNBLDZCQUVBLFlBQ0Esc0JBQ0EseUJBQ0Esa0JBQ0EsaUJBQ0EsZ0JBQ0Esa0JBQ0EscUNBRUYsd0NBQ0UsY0FDQSxpQkFDQSxlQUNBLG1CQUVGLHNGQUNvQixpQ0FJcEIsZ0RBRUEsb0NBQ0UsYUFDQSxlQUNBLHFCQUNBLFVBQ0EsU0FDQSxTQUNBLGdCQUVBLDRCQVRGLG9DQVNpQyxvQkFFL0Isc0RBR0YsaUNBQ0UsZUFDQSxxQkFFQSxvQ0FDRSxXQUNBLGlCQUNBLDBCQUNBLGVBRUEsaUZBQ0EsZ0dBSUosaUZBQzBCLGNBSXhCLHVDQUNFLGVBRUEsZ0RBQ0UsNERBQ0Esc0RDdkxnQixDRHlMaEIsc0RBQ0UsdURBQ0EsaURDN0xjLENEaU1sQix5Q0FDRSwwQkFDQSx1REFFQSw0QkFKRix5Q0FJaUMsMkJBRS9CLCtDQUNFLHVEQUNBLGlEQ3pNYyxDRDBNZCxzQ0M3TFEsQ0RtTWhCLGtEQUNFLDJDQy9Nb0IsQ0RnTnBCLHFCQUNBLGdCQUtKLHVCQUNFLGtEQUNBLHNCQUNBLGtCQUVGLHdCQUNFLDJDRTdOd0IsQ0Y4TnhCLFdBQ0Esa0JBRUEsOEJBQ0UsMkNFbE9zQixDRm1PdEIsV0FDQSxrQkFDQSxTQUdKLHFDQUMwQiwwQkFDMUIsMkRBQ3FDLHdDQUNyQyw2REFFRSxzQkFDQSxrQkFDQSxVQUNBLGlCQWFBLDhCQUNFLG1CQUNBLDZCQUNBLFdBQ0EscUJBQ0EsYUFDQSxZQUNBLGtCQUNBLHdCQUNBLG1CQUNBLFVBQ0EsU0FDQSxlQUVGLGtDQUNFLG1CQUNBLDZCQUNBLFdBQ0EscUJBQ0EsYUFDQSxZQUNBLGtCQUNBLDBCQUNBLG1CQUNBLFVBQ0EsV0FDQSxlQU1GLDBDQWtDRixxQ0FDRSxzQkFjRSxhQUNBLDhCQUNBLGdCQUNBLFlBS0EsZ0JBckJBLGdEQXdCQSwyREFVQSxnQ0FDRSxtQkFDQSxtQkFDQSxrQkFDQSw0QkFDQSxZQVFGLHFDQUNFLG1CQUNBLGlCQUNBLGtCQUNBLFdBQ0EsU0FNRiwwRUFJQSx3Q0FJQSw2RkFDQSw0RkFNQSxxRkFFQSxvQ0FHRSxlQUNBLGdCQUNBLHVCQUNBLFNBR0YsNkRBRUUsV0FDQSxXQUNBLGVBY0EseUVBQ0UsY0FDQSxrQkFDQSxtQkFDQSxnQkFDQSx1QkFNRixnTEFDaUIseUJBQ2pCLHNGQUtGLDBEQU1BLHVDQUNFLDBCQUVBLHdEQU9GLCtEQVVKLHdDQUNFLHNCQUNFLDBCQUVBLGlGQUNBLGdGQUNBLHNGR3RlSixjQUNFLCtDQUNBLDRDQUNBLG9DQUNBLG1GQUNBLHFDQUNBLGdFQUNBLG1EQUdGLG1DQUNFLGlEQUNBLGdDQUNBLG1CQUVGLG9CQUNFLHNFQUNBLDhEQUNBLDhDQUNBLHNDQUVGLG9CQUNFLHdDQUNBLDJEQUNBLDJEQUNBLG9EQUNBLCtGIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vYmVhY2hzaWRlYXV0b3BhcnRzLy4uLy4uLy4uL2F1dG8tcHJlc3MvcmVzb3VyY2VzL2NvbXBvbmVudHMvcHJvZHVjdC10b29sYmFyL2RlZmF1bHQvaW5kZXguc2NzcyIsIndlYnBhY2s6Ly9iZWFjaHNpZGVhdXRvcGFydHMvLi4vLi4vLi4vYXV0by1wcmVzcy9yZXNvdXJjZXMvc3R5bGVzL3ZhcmlhbnRzL19jb2xvcnMuc2NzcyIsIndlYnBhY2s6Ly9iZWFjaHNpZGVhdXRvcGFydHMvLi4vLi4vLi4vYXV0by1wcmVzcy9yZXNvdXJjZXMvY29tcG9uZW50cy9fY2F0YWxvZy9fZ2xvYmFscy5zY3NzIiwid2VicGFjazovL2JlYWNoc2lkZWF1dG9wYXJ0cy8uLi8uLi8uLi9hdXRvLXByZXNzL3Jlc291cmNlcy9jb21wb25lbnRzL3Byb2R1Y3QtY2FyZC9fc2hhcmVkL191bml2ZXJzYWwtbm90ZS5zY3NzIl0sInNvdXJjZXNDb250ZW50IjpbIi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbi8vIFBST0RVQ1QgVE9PTEJBUiDigJQgdmFyaWFudCBcImRlZmF1bHRcIiDigJQgbGF5b3V0IHN0eWxlc1xuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuLy8gVGhlIHJlc3VsdHMgYmFyICsgcm93cy1wZXItcGFnZSArIHNvcnQgKyBzaG93LWZpbHRlcnMgKyBwYWdpbmF0aW9uIG5hdixcbi8vIHJlbG9jYXRlZCBvdXQgb2YgdGhlIGdsb2JhbCBwcm9kdWN0cy5zY3NzLiBDb21waWxlcyB0b1xuLy8gY29tcG9uZW50LXByb2R1Y3QtdG9vbGJhci1kZWZhdWx0LmNzcy5cbi8vXG4vLyBTY29wZTogVE9PTEJBUiBsYXlvdXQgb25seS4gVGhlIGRyb3Bkb3duIGludGVybmFscyAoLmN1c3RvbS1zZWxlY3QgYm94LFxuLy8gLnNlbGVjdC1zZWxlY3RlZCAvIC5zZWxlY3QtaXRlbXMgLyAuc2VsZWN0LWhpZGUpIGxpdmUgaW4gdGhlIGBjdXN0b20tc2VsZWN0YFxuLy8gYnVuZGxlIOKAlCBsb2FkIHRoYXQgb25jZSBwZXIgcGFnZSBhbG9uZ3NpZGUgdGhpcy4gVGhpcyBmaWxlIHN0eWxlcyB0aGVcbi8vIGNvbnRhaW5lcnMgKC5wcC1jb250IC8gLmQtY29udCkgYW5kIHRoZSBwYWdpbmF0aW9uIGxpc3QsIG5vdCB0aGUgZHJvcGRvd24uXG4vL1xuLy8gRnJhbWV3b3JrIHV0aWxpdGllcyAocmVtYygpLCBtZWRpYS1icmVha3BvaW50LWRvd24pIGFyZSBpbmxpbmVkIHRvIHBsYWluIENTU1xuLy8gc28gdGhpcyBpcyByZWxpYWJsZSB0byBjb21waWxlOyBvbmx5IHRoZW1lIENPTE9SUyBjb21lIGZyb20gX2dsb2JhbHMuXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cbkBpbXBvcnQgJ2NvbXBvbmVudHMvX2NhdGFsb2cvZ2xvYmFscyc7XG5cbi5wYWdpbmF0aW9uLWNvbnRhaW5lciB7XG4gIHdpZHRoOiAxMDAlO1xuICBtYXJnaW46IGF1dG87XG4gIGhlaWdodDogYXV0bztcbiAgbWluLWhlaWdodDogNTBweDtcbiAgY2xlYXI6IGJvdGg7XG4gIG1hcmdpbi10b3A6IDBweDtcblxuICAvLyBTZWNvbmQgZGVjbGFyYXRpb24gZnJvbSB0aGUgb3JpZ2luYWw6IGZsZXggbGF5b3V0IGZvciB0aGUgYmFyLlxuICAvLyBmbGV4LXN0YXJ0LCBub3QgdGhlIG9yaWdpbmFsIHNwYWNlLWJldHdlZW4gKDIwMjYtMDgtMTcpOiBvbiBwYWdlcyB3aXRoXG4gIC8vIGh1Z2UgcmVzdWx0IHNldHMgKHVuZmlsdGVyZWQgYnJhbmQgcGFnZXM6IHRob3VzYW5kcyBvZiBwYWdlcykgdGhlXG4gIC8vIHBhZ2luYXRpb24gbGlzdCB3cmFwcyB0byBpdHMgb3duIHJvdywgYW5kIHNwYWNlLWJldHdlZW4gdGhlbiBzbWVhcmVkIHRoZVxuICAvLyB0aHJlZSByZW1haW5pbmcgaXRlbXMgKFNob3dpbmcgLyBSb3dzIC8gU29ydCkgYWNyb3NzIHRoZSBmdWxsIHdpZHRoIOKAlFxuICAvLyBcImxvb2tzIGJyb2tlblwiLiBmbGV4LXN0YXJ0IGtlZXBzIHRoZW0gcGFja2VkIGxlZnQgZXhhY3RseSBsaWtlIHRoZVxuICAvLyBwcm9kdWN0LWxpc3QgcGFnZSBsb29rICh0aGVyZSB0aGUgd2lkZSBpbmxpbmUgcGFnaW5hdGlvbiBhYnNvcmJlZCB0aGVcbiAgLy8gbGVmdG92ZXIgc3BhY2UsIHNvIHRoaXMgY2hhbmdlIGlzIHZpc3VhbGx5IG5ldXRyYWwgb24gc2hvcnQgcmVzdWx0IHNldHMpLlxuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LWRpcmVjdGlvbjogcm93O1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtc3RhcnQ7XG4gIGFsaWduLWl0ZW1zOiBmbGV4LXN0YXJ0O1xuICBmbGV4LXdyYXA6IHdyYXA7XG5cbiAgJjpsYXN0LWNoaWxkIHsgbWFyZ2luLXRvcDogMjBweDsgfVxuXG4gICYtaXRlbTpub3QoOmxhc3QtY2hpbGQpIHsgbWFyZ2luLXJpZ2h0OiAxNXB4OyB9XG5cbiAgLy8gQSBzaW5nbGUtcGFnZSByZXN1bHQgc2V0IHN0aWxsIHJlbmRlcnMgPHVsIGNsYXNzPVwicGFnaW5hdGlvblwiPiDigJQgdGhlXG4gIC8vIHBhZ2luYXRvciBqdXN0IGhhbmRzIGl0IG5vIHBhZ2VzLCBzbyB0aGUgbGlzdCBpcyBFTVBUWSAod2hpdGVzcGFjZSBvbmx5LFxuICAvLyB3aGljaCBpcyB3aHkgYDplbXB0eWAgZG9lcyBub3QgY2F0Y2ggaXQpLiBMZWZ0IGluIHRoZSBmbG93IHRoYXQgZW1wdHkgbGlzdFxuICAvLyBzdGlsbCBjbGFpbXMgdGhlIHVsJ3MgMjdweCB0b3AgbWFyZ2luLCBhbmQgb24gbW9iaWxlIOKAlCB3aGVyZSBpdCBvd25zIGFcbiAgLy8gZnVsbC13aWR0aCByb3cgb2YgaXRzIG93biDigJQgaXQgYmVjYW1lIGEgZmF0IGJsYW5rIHN0cmlwIGJldHdlZW4gdGhlIHRvb2xiYXJcbiAgLy8gYW5kIHRoZSBmaXJzdCBwcm9kdWN0IGNhcmQuIENvbGxhcHNlIHRoZSBpdGVtIHdoZW4gdGhlcmUgaXMgbm90aGluZyB0b1xuICAvLyBwYWdpbmF0ZS4gVXNlcyBgOmhhcygpYCwgdGhlIHNhbWUgYmFzZWxpbmUgdGhlIG1vYmlsZSBsYXlvdXQgYXQgdGhlIGJvdHRvbVxuICAvLyBvZiB0aGlzIGZpbGUgYWxyZWFkeSByZWxpZXMgb247IGEgYnJvd3NlciB3aXRob3V0IGl0IGp1c3Qga2VlcHMgdGhlIG9sZFxuICAvLyAoYmxhbmstc3RyaXApIGJlaGF2aW91ciByYXRoZXIgdGhhbiBicmVha2luZy5cbiAgJi1pdGVtOmhhcyh1bC5wYWdpbmF0aW9uKTpub3QoOmhhcyhsaSkpIHsgZGlzcGxheTogbm9uZTsgfVxuXG4gIHAgIHsgZm9udC1zaXplOiAwLjc1cmVtOyBkaXNwbGF5OiBibG9jazsgZmxvYXQ6IGxlZnQ7IG1hcmdpbi10b3A6IDBweDsgfSAgIC8vIHJlbWMoMTIpXG4gIGxhYmVsIHtcbiAgICBmb250LXNpemU6IDAuNzVyZW07ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIHJlbWMoMTIpXG4gICAgZGlzcGxheTogYmxvY2s7IGNsZWFyOiBib3RoOyBmb250LXdlaWdodDogbm9ybWFsO1xuICB9XG4gIHNwYW4geyBmbG9hdDogbGVmdDsgZGlzcGxheTogYmxvY2s7IH1cbiAgc3BhbjpmaXJzdC1jaGlsZCB7IG1hcmdpbi1yaWdodDogMTBweDsgfVxuXG4gIC8vIFRoZSBuYXRpdmUgPHNlbGVjdD4gc3RheXMgSElEREVOIOKAlCB0aGUgY3VzdG9tLXNlbGVjdCBzY3JpcHQgcmVuZGVycyB0aGVcbiAgLy8gdmlzaWJsZSBkcm9wZG93biBib3ggKC5zZWxlY3Qtc2VsZWN0ZWQpLiBUaGVzZSBydWxlcyBwcmV2aW91c2x5IHVzZWRcbiAgLy8gYGRpc3BsYXk6IGJsb2NrYCwgd2hpY2ggdW4taGlkIHRoZSBuYXRpdmUgY29udHJvbCBzbyBpdCBhcHBlYXJlZCAoY3V0IG9mZilcbiAgLy8gYmVuZWF0aCB0aGUgY3VzdG9tIGRyb3Bkb3duIG9uY2UgdGhlIGdsb2JhbCBjdXN0b20tc2VsZWN0IGhpZGUgcnVsZSB3YXMgbm9cbiAgLy8gbG9uZ2VyIHJlaW5mb3JjaW5nIGl0LiBXaWR0aCBpcyBrZXB0IGJ1dCBpcyBpbmVydCBvbiBhIGhpZGRlbiBlbGVtZW50LlxuICBzZWxlY3QgeyB3aWR0aDogMTAwcHg7IGRpc3BsYXk6IG5vbmU7IGNsZWFyOiBib3RoOyB9XG4gIHNlbGVjdCNzb3J0IHsgd2lkdGg6IDE0MHB4OyB9XG5cbiAgLnBwICB7IHdpZHRoOiAxMDBweDsgZGlzcGxheTogbm9uZTsgY2xlYXI6IGJvdGg7IH1cbiAgLnNiICB7IHdpZHRoOiAxMDBweDsgZGlzcGxheTogbm9uZTsgY2xlYXI6IGJvdGg7IHBhZGRpbmc6IDVweCA1cHg7IH1cblxuICAucHAtY29udCB7IG1hcmdpbi1yaWdodDogMTBweDsgZmxvYXQ6IG5vbmU7IHdpZHRoOiBhdXRvOyB9XG4gIC5kLWNvbnQgIHsgZmxvYXQ6IG5vbmU7IHdpZHRoOiBhdXRvOyBkaXNwbGF5OiBibG9jazsgbWFyZ2luLXJpZ2h0OiAxMHB4OyB9XG5cbiAgLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAvLyBDVVNUT00tU0VMRUNUIGRyb3Bkb3duIGludGVybmFscyDigJQgYnVuZGxlZCBXSVRIIHRoZSB0b29sYmFyIHNvIHRoZVxuICAvLyByb3dzLXBlci1wYWdlIC8gc29ydCBkcm9wZG93bnMgYXJlIHN0eWxlZCBBTkQgZnVuY3Rpb25hbCBvbiB0aGVpciBvd24uXG4gIC8vXG4gIC8vIFRoZSB0b29sYmFyIHdhcyBvcmlnaW5hbGx5IHdyaXR0ZW4gdG8gcmVseSBvbiBhIHNlcGFyYXRlbHktbG9hZGVkXG4gIC8vIGN1c3RvbS1zZWxlY3QgYnVuZGxlIChvciB0aGUgZ2xvYmFsIGxheW91dC5zY3NzKSBmb3IgdGhlc2UgcnVsZXMuIE9uIGFcbiAgLy8gY29tcG9uZW50IHBhZ2UgdGhhdCBkb2Vzbid0IGxvYWQgZWl0aGVyLCB0aGUgYm94IGxvc3QgaXRzIGJvcmRlciBhbmQgdGhlXG4gIC8vIG9wZW4vY2xvc2UgdG9nZ2xlIGRpZCBub3RoaW5nIOKAlCBiZWNhdXNlIGAuc2VsZWN0LWhpZGUgeyBkaXNwbGF5Om5vbmUgfWBcbiAgLy8gKHRoZSBydWxlIHRoYXQgYWN0dWFsbHkgaGlkZXMgdGhlIG9wdGlvbnMgbGlzdCkgd2FzIG5ldmVyIG9uIHRoZSBwYWdlLlxuICAvLyBTaGlwcGluZyB0aGVtIGhlcmUgbWFrZXMgdGhlIHRvb2xiYXIgc2VsZi1zdWZmaWNpZW50LlxuICAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gIC5jdXN0b20tc2VsZWN0IHsgcG9zaXRpb246IHJlbGF0aXZlOyBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7IHZlcnRpY2FsLWFsaWduOiB0b3A7IH1cblxuICAuc2VsZWN0LXNlbGVjdGVkIHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgY29sb3I6ICMzNjM2MzY7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZjtcbiAgICBib3JkZXI6IDFweCBzb2xpZCAjZGJkYmRiO1xuICAgIGJvcmRlci1yYWRpdXM6IDRweDtcbiAgICBwYWRkaW5nOiA3cHggMzRweCA3cHggMTJweDtcbiAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgICAtd2Via2l0LXVzZXItc2VsZWN0OiBub25lO1xuICAgIHVzZXItc2VsZWN0OiBub25lO1xuXG4gICAgLy8gVGhlIGxhYmVsIG11c3QgbmV2ZXIgc3BpbGwgT1VUIG9mIHRoZSBib3guIGB3aGl0ZS1zcGFjZTogbm93cmFwYCB3aXRoIG5vXG4gICAgLy8gb3ZlcmZsb3cgcnVsZSBsZXQgXCJNb3N0IFBvcHVsYXJcIiBydW4gcGFzdCB0aGUgcmlnaHQgYm9yZGVyIG9uIG1vYmlsZSxcbiAgICAvLyBzdHJhaWdodCB0aHJvdWdoIHRoZSBhcnJvdyAoXCJtb3N0IHBvcHVsYXIga2luZCBvZiBnb2VzIG91dHNpZGUgb2YgdGhlXG4gICAgLy8gYm94XCIg4oCUIG93bmVyLCAyMDI2LTA5LTAzKS4gRWxsaXBzaXNlIGluc3RlYWQ7IHRoZSBwYWRkaW5nLXJpZ2h0IGtlZXBzIHRoZVxuICAgIC8vIGVsbGlwc2lzIGNsZWFyIG9mIHRoZSBhcnJvdy5cbiAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICB9XG4gIC8vIERyb3Bkb3duIGFycm93XG4gIC5zZWxlY3Qtc2VsZWN0ZWQ6YWZ0ZXIge1xuICAgIGNvbnRlbnQ6IFwiXCI7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHRvcDogNTAlO1xuICAgIHJpZ2h0OiAxNHB4O1xuICAgIHdpZHRoOiAwLjVlbTtcbiAgICBoZWlnaHQ6IDAuNWVtO1xuICAgIG1hcmdpbi10b3A6IC0wLjM1ZW07XG4gICAgYm9yZGVyOiAxcHggc29saWQgIzMyNzNkYztcbiAgICBib3JkZXItdG9wOiAwO1xuICAgIGJvcmRlci1yaWdodDogMDtcbiAgICB0cmFuc2Zvcm06IHJvdGF0ZSgtNDVkZWcpO1xuICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICB9XG4gIC8vIEFycm93IHBvaW50cyB1cCB3aGlsZSBvcGVuXG4gIC5zZWxlY3Qtc2VsZWN0ZWQuc2VsZWN0LWFycm93LWFjdGl2ZTphZnRlciB7XG4gICAgbWFyZ2luLXRvcDogLTAuMWVtO1xuICAgIHRyYW5zZm9ybTogcm90YXRlKDEzNWRlZyk7XG4gIH1cblxuICAuc2VsZWN0LWl0ZW1zIHtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgdG9wOiBjYWxjKDEwMCUgKyAycHgpO1xuICAgIGxlZnQ6IDA7XG5cbiAgICAvLyBBIGRyb3Bkb3duIHBhbmVsIGhhcyB0byBiZSBhdCBsZWFzdCBhcyB3aWRlIGFzIGl0cyBib3ggQU5EIGFzIHdpZGUgYXMgaXRzXG4gICAgLy8gd2lkZXN0IG9wdGlvbi4gYG1pbi13aWR0aDogMTAwJWAgYWxvbmUgZG9lcyBOT1QgZG8gdGhhdDogYW4gYWJzb2x1dGVseVxuICAgIC8vIHBvc2l0aW9uZWQgYm94IHNocmluay10by1maXRzIGFnYWluc3QgaXRzIENPTlRBSU5JTkcgQkxPQ0ssIHdoaWNoIGhlcmUgaXNcbiAgICAvLyB0aGUgfjg1cHggaGFsZi1jb2x1bW4gLmN1c3RvbS1zZWxlY3Qgb24gYSBwaG9uZS4gRXZlcnkgb3B0aW9uIHdhcyB0aGVuXG4gICAgLy8gY2xpcHBlZCB0byA4NXB4IGFuZCBgb3ZlcmZsb3c6IGF1dG9gIHR1cm5lZCB0aGUgbWVudSBpbnRvIGEgc2lkZXdheXNcbiAgICAvLyBzY3JvbGxlciDigJQgXCJ5b3UgY2FuIHN3aXBlIGxlZnQgdG8gcmlnaHQgdG8gc2VlIGFsbCB0aGUgb3B0aW9ucywgYnV0IGl0J3NcbiAgICAvLyBzdXBwb3NlZCB0byBiZSBhIGRyb3AgZG93blwiIChvd25lciwgMjAyNi0wOS0wMykuIGB3aWR0aDogbWF4LWNvbnRlbnRgXG4gICAgLy8gb3B0cyBvdXQgb2YgdGhlIHNocmluay10by1maXQgY2xhbXA7IG1heC13aWR0aCBrZWVwcyBpdCBvbiBzY3JlZW4uXG4gICAgbWluLXdpZHRoOiAxMDAlO1xuICAgIHdpZHRoOiBtYXgtY29udGVudDtcbiAgICBtYXgtd2lkdGg6IGNhbGMoMTAwdncgLSA0MHB4KTtcblxuICAgIHotaW5kZXg6IDEwMjtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmO1xuICAgIGJvcmRlcjogMXB4IHNvbGlkICNkYmRiZGI7XG4gICAgYm9yZGVyLXJhZGl1czogNHB4O1xuICAgIG1heC1oZWlnaHQ6IDMwMHB4O1xuICAgIG92ZXJmbG93LXk6IGF1dG87XG4gICAgb3ZlcmZsb3cteDogaGlkZGVuOyAgIC8vIGxvbmcgb3B0aW9ucyBhcmUgc2l6ZWQgZm9yLCBuZXZlciBzY3JvbGxlZCB0b1xuICAgIGJveC1zaGFkb3c6IDAgMnB4IDZweCByZ2JhKDAsIDAsIDAsIDAuMTIpO1xuICB9XG4gIC5zZWxlY3QtaXRlbXMgZGl2IHtcbiAgICBjb2xvcjogIzM2MzYzNjtcbiAgICBwYWRkaW5nOiA3cHggMTJweDtcbiAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgfVxuICAuc2VsZWN0LWl0ZW1zIGRpdjpob3ZlcixcbiAgLnNhbWUtYXMtc2VsZWN0ZWQgeyBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuMDcpOyB9XG5cbiAgLy8gQ1JJVElDQUw6IGhpZGVzIHRoZSBvcHRpb25zIGxpc3Qgd2hlbiBjbG9zZWQuIFdpdGhvdXQgdGhpcyBydWxlIHRoZSBib3hcbiAgLy8ganVzdCB0b2dnbGVzIGEgY2xhc3MgYW5kIG5vdGhpbmcgdmlzaWJseSBvcGVucyBvciBjbG9zZXMuXG4gIC5zZWxlY3QtaGlkZSB7IGRpc3BsYXk6IG5vbmU7IH1cblxuICB1bC5wYWdpbmF0aW9uIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtd3JhcDogd3JhcDtcbiAgICBsaXN0LXN0eWxlLXR5cGU6IG5vbmU7XG4gICAgcGFkZGluZzogMDtcbiAgICBtYXJnaW46IDA7XG4gICAgZ2FwOiAxNHB4O1xuICAgIG1hcmdpbi10b3A6IDI3cHg7XG5cbiAgICBAbWVkaWEgKG1heC13aWR0aDogNzY3Ljk4cHgpIHsgbWFyZ2luLWJvdHRvbTogMTJweDsgfSAgIC8vIG1lZGlhLWJyZWFrcG9pbnQtZG93bihzbSlcblxuICAgIGxpIHsgY3Vyc29yOiBwb2ludGVyOyB9XG4gIH1cblxuICB1bC5yZXN1bHRzIHtcbiAgICBwYWRkaW5nLWxlZnQ6IDA7XG4gICAgbGlzdC1zdHlsZS10eXBlOiBub25lO1xuXG4gICAgbGkge1xuICAgICAgZmxvYXQ6IGxlZnQ7XG4gICAgICBtYXJnaW4tbGVmdDogMTBweDtcbiAgICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuICAgICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgICAmLnNlbGVjdGVkIHsgYmFja2dyb3VuZC1jb2xvcjogI2VmZWZlZjsgY29sb3I6ICNmZmY7IH1cbiAgICAgICY6Zmlyc3QtY2hpbGQgeyB0ZXh0LWRlY29yYXRpb246IG5vbmU7IGN1cnNvcjogZGVmYXVsdDsgYm9yZGVyOiBub25lOyB9XG4gICAgfVxuICB9XG5cbiAgLnBhZ2luYXRpb24gPiBsaSA+IGEsXG4gIC5wYWdpbmF0aW9uID4gbGkgPiBzcGFuIHsgY29sb3I6ICM1ODVlNjY7IH1cblxuICAvLyBOZXN0ZWQgcGFnaW5hdGlvbi1pdGVtIHRyZWF0bWVudCAoc2Vjb25kIGJsb2NrIGluIHRoZSBvcmlnaW5hbClcbiAgLnBhZ2luYXRpb24ge1xuICAgICYtaXRlbSB7XG4gICAgICBkaXNwbGF5OiBpbmxpbmU7XG5cbiAgICAgICYuYWN0aXZlIGEge1xuICAgICAgICBib3JkZXI6IDAuMDYyNXJlbSBzb2xpZCAkY29sb3JfcHJpbWFyeV9kYXJrOyAgICAgLy8gcmVtYygxKVxuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkY29sb3JfcHJpbWFyeV9kYXJrO1xuXG4gICAgICAgICY6aG92ZXIge1xuICAgICAgICAgIGJvcmRlcjogMC4wNjI1cmVtIHNvbGlkICRjb2xvcl9wcmltYXJ5O1xuICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRjb2xvcl9wcmltYXJ5O1xuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIGEge1xuICAgICAgICBwYWRkaW5nOiAwLjMxMjVyZW0gMC45Mzc1cmVtOyAgICAgICAgICAgICAgICAgICAgLy8gcmVtYyg1LCAxNSlcbiAgICAgICAgYm9yZGVyOiAwLjA2MjVyZW0gc29saWQgJGNvbG9yX25ldXRyYWw7ICAgICAgICAgIC8vIHJlbWMoMSlcblxuICAgICAgICBAbWVkaWEgKG1heC13aWR0aDogNzY3Ljk4cHgpIHsgcGFkZGluZzogMC4zMTI1cmVtIDAuNDM3NXJlbTsgfSAgIC8vIHJlbWMoNSwgNylcblxuICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICBib3JkZXI6IDAuMDYyNXJlbSBzb2xpZCAkY29sb3JfcHJpbWFyeTtcbiAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkY29sb3JfcHJpbWFyeTtcbiAgICAgICAgICBjb2xvcjogJGNvbG9yX25ldXRyYWw7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAuc2hvdy1zaWRlLW5hdiAuc2hvdy1maWx0ZXIge1xuICAgIGNvbG9yOiAkY29sb3JfcHJpbWFyeV9kYXJrO1xuICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICBmb250LXdlaWdodDogNTAwO1xuICB9XG59XG5cbi8vIFBhZ2luYXRpb24gbmF2IGxpbmtzIChnbG9iYWwgLnBhZ2luYXRpb24g4oCUIGtlcHQgYXMgaW4gdGhlIG9yaWdpbmFsKVxuLnBhZ2luYXRpb24gPiBsaSA+IGE6aG92ZXIge1xuICBib3JkZXI6IDFweCBzb2xpZCAkaGVhZGVyLW1haW4tdGV4dC1jb2xvcjtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZjtcbiAgYm9yZGVyLXJhZGl1czogM3B4O1xufVxuLnBhZ2luYXRpb24gPiBsaS5hY3RpdmUgPiBhIHtcbiAgYmFja2dyb3VuZDogJGhlYWRlci1tYWluLXRleHQtY29sb3I7XG4gIGNvbG9yOiAjZmZmO1xuICBib3JkZXItcmFkaXVzOiAzcHg7XG5cbiAgJjpob3ZlciB7XG4gICAgYmFja2dyb3VuZDogJGhlYWRlci1tYWluLXRleHQtY29sb3I7XG4gICAgY29sb3I6ICNmZmY7XG4gICAgYm9yZGVyLXJhZGl1czogM3B4O1xuICAgIGJvcmRlcjogMDtcbiAgfVxufVxuLnBhZ2luYXRpb24gPiBsaSA+IGEsXG4ucGFnaW5hdGlvbiA+IGxpID4gc3BhbiB7IGJvcmRlcjogMHB4OyBmb250LXNpemU6IDE2cHg7IH1cbi5wYWdpbmF0aW9uID4gbGk6bGFzdC1jaGlsZCA+IGEsXG4ucGFnaW5hdGlvbiA+IGxpOmxhc3QtY2hpbGQgPiBzcGFuIHsgYm9yZGVyOiAxcHggc29saWQgI2RkZDsgYm9yZGVyLXJhZGl1czogM3B4OyB9XG4ucGFnaW5hdGlvbiA+IGxpOmZpcnN0LWNoaWxkID4gYSxcbi5wYWdpbmF0aW9uID4gbGk6Zmlyc3QtY2hpbGQgPiBzcGFuIHtcbiAgYm9yZGVyOiAxcHggc29saWQgI2RkZDtcbiAgYm9yZGVyLXJhZGl1czogM3B4O1xuICB6LWluZGV4OiAxO1xuICBtYXJnaW4tcmlnaHQ6IDNweDtcbn1cblxuLy8gUHJldi9uZXh0IGNoZXZyb25zIChib3JkZXItZHJhd247IHRoZSBvcmlnaW5hbCdzIEBleHRlbmQgJWNoZXZyb24tcmlnaHQgaXNcbi8vIGRyb3BwZWQgc2luY2UgdGhlIGV4cGxpY2l0IGJvcmRlciBhcnJvdyBhbHJlYWR5IHJlbmRlcnMpLlxuLy9cbi8vIFRoZSBib3JkZXIgcGFpciAodG9wICsgcmlnaHQpIGRyYXdzIGFuIFwi4oyQXCIgd2hvc2UgcG9pbnQgZm9sbG93cyB0aGUgcm90YXRpb246XG4vLyAgIDQ1ZGVnID0gcmlnaHQsIDEzNWRlZyA9IGRvd24sIC00NWRlZyA9IFVQLCAtMTM1ZGVnID0gbGVmdFxuLy8g4oCUIHRoZSBzYW1lIGFuZ2xlcyAlY2hldnJvbi1yaWdodCAvIC1ib3R0b20gLyAtbGVmdCBlbmNvZGUgaW5cbi8vIF9jYXRhbG9nL19nbG9iYWxzLnNjc3MuIElubGluaW5nIHRoZXNlIGRyb3BwZWQgdGhlIEBleHRlbmQgYW5kIGNvcGllZCB0aGVcbi8vIEJBU0UgYW5nbGUgKC00NWRlZyA9IHVwKSwgc28gXCJOZXh0XCIgc2hpcHBlZCB3aXRoIGFuIHVwIGFycm93IHdoaWxlXG4vLyBcIlByZXZpb3VzXCIgKC0xMzVkZWcpIHdhcyByaWdodCBhbGwgYWxvbmcuIEZpeGVkIDIwMjYtMDgtMjcuXG4ucGFnaW5hdGlvbi1pdGVtIHtcbiAgLm5leHQ6OmFmdGVyIHtcbiAgICBib3JkZXItc3R5bGU6IHNvbGlkO1xuICAgIGJvcmRlci13aWR0aDogMC4xNWVtIDAuMTVlbSAwIDA7XG4gICAgY29udGVudDogJyc7XG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgIGhlaWdodDogMC42NWVtO1xuICAgIHdpZHRoOiAwLjY1ZW07XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIHRyYW5zZm9ybTogcm90YXRlKDQ1ZGVnKTtcbiAgICB2ZXJ0aWNhbC1hbGlnbjogdG9wO1xuICAgIHRvcDogMC42NWVtO1xuICAgIGxlZnQ6IDVweDtcbiAgICBmb250LXNpemU6IDEycHg7XG4gIH1cbiAgLnByZXZpb3VzOjphZnRlciB7XG4gICAgYm9yZGVyLXN0eWxlOiBzb2xpZDtcbiAgICBib3JkZXItd2lkdGg6IDAuMTVlbSAwLjE1ZW0gMCAwO1xuICAgIGNvbnRlbnQ6ICcnO1xuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICBoZWlnaHQ6IDAuNjVlbTtcbiAgICB3aWR0aDogMC42NWVtO1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICB0cmFuc2Zvcm06IHJvdGF0ZSgtMTM1ZGVnKTtcbiAgICB2ZXJ0aWNhbC1hbGlnbjogdG9wO1xuICAgIHRvcDogMC42NWVtO1xuICAgIGxlZnQ6IC03N3B4O1xuICAgIGZvbnQtc2l6ZTogMTJweDtcbiAgfVxufVxuXG4vLyBCb3R0b20gdG9vbGJhciBoaWRlcyB0aGUgXCJTaG93aW5nIFjigJNZXCIgY291bnRcbi5wYWdpbmF0aW9uLWJvdHRvbSB7XG4gIC4tc2hvd2luZyB7IGRpc3BsYXk6IG5vbmU7IH1cbn1cblxuLy8g4pSA4pSAIFJlc3BvbnNpdmUgdG9vbGJhciBsYXlvdXQgKOKJpDc3NnB4KSDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIBcbi8vIFJFQlVJTFQgMjAyNi0wOC0yOC4gVGhlIG9sZCBydWxlcyBmbG9hdGVkIFJvd3MtUGVyLVBhZ2UgcmlnaHQgYW5kIFNvcnQgbGVmdFxuLy8gYXQgNDAlIGVhY2ggYW5kIGhpZCBCT1RIIGxhYmVscywgd2hpY2ggcHJvZHVjZWQgdHdvIHVubGFiZWxsZWQgZHJvcGRvd25cbi8vIGJveGVzIHNoYXJpbmcgYW4gZWRnZSBpbiB0aGUgbWlkZGxlIG9mIHRoZSByb3cg4oCUIFwidGhlIHR3byBkcm9wLWRvd25zIGFyZVxuLy8gbGluZWQgdXAgYWdhaW5zdCBlYWNoIG90aGVyIHdpdGggbm8gbGFiZWxzLCBhbmQgaXQganVzdCBsb29rcyBiYWRcIiAob3duZXIpLlxuLy8gTm90aGluZyBzYWlkIHdoaWNoIGJveCBkaWQgd2hhdCwgYW5kIHRoZSBwYWlyIGxpbmVkIHVwIHdpdGggbm90aGluZyBhYm92ZSBpdC5cbi8vXG4vLyBSRVZJU0VEIDIwMjYtMDktMDMgKG93bmVyLCBvbiBhbiBpUGhvbmUsIG9uIGEgdmVoaWNsZSBwcm9kdWN0LWxpc3QgcGFnZSkuXG4vLyBUaGUgMjAyNi0wOC0yOCBsYXlvdXQgZ2F2ZSB0aGUgY291bnQgYW5kIHRoZSBmaWx0ZXJzIHRyaWdnZXIgYSBmdWxsLXdpZHRoIHJvd1xuLy8gRUFDSCBidXQgbGVmdCB0aGUgUEFHSU5BVElPTiBsaXN0IGluIHRoZSBzYW1lIGZsZXggbGluZSBhcyB0aGUgdHdvIGRyb3Bkb3duXG4vLyBjb2x1bW5zLiBPbiBhIDItcGFnZSByZXN1bHQgc2V0IHRoYXQgbGlzdCBpcyB+MTM2cHggd2lkZSwgc28gdGhlIHR3b1xuLy8gYGZsZXg6IDEgMSAwYCBjb2x1bW5zIGNvbGxhcHNlZCB0byB+ODVweCBlYWNoIGFuZCB0aHJlZSB0aGluZ3MgYnJva2UgYXQgb25jZTpcbi8vXG4vLyAgIDEuIFwiUm93cyBQZXIgUGFnZVwiIG5vIGxvbmdlciBmaXR0ZWQgb24gb25lIGxpbmUsIHNvIGl0IHdyYXBwZWQgYW5kIHB1c2hlZFxuLy8gICAgICBpdHMgYm94IDE4cHggQkVMT1cgdGhlIFNvcnQgQnkgYm94IOKAlCBcInRoYXQgYm94IGlzIGxvd2VyIHRoYW4gdGhlIHNvcnRcbi8vICAgICAgYnksIHdoaWNoIHJpZGVzIGhpZ2hlclwiLlxuLy8gICAyLiBcIk1vc3QgUG9wdWxhclwiICh+MTE2cHggb2YgdGV4dCBpbiBhbiA4M3B4IGJveCkgcmFuIG91dHNpZGUgdGhlIGJvcmRlci5cbi8vICAgMy4gVGhlIG9wdGlvbnMgbWVudSwgY2xhbXBlZCB0byB0aGUgc2FtZSA4M3B4LCBiZWNhbWUgYSBob3Jpem9udGFsXG4vLyAgICAgIHNjcm9sbGVyIGluc3RlYWQgb2YgYSBkcm9wZG93bi5cbi8vXG4vLyBOb3cgdGhlIGJhciBpcyB0aHJlZSBkZWxpYmVyYXRlIHJvd3MsIHBhY2tlZCB0aWdodDpcbi8vXG4vLyAgICAgU2hvd2luZyAxIC0gMTAgb2YgMTggcHJvZHVjdHMgICAgICAgICAgICAgIFNob3cgRmlsdGVycyDigLpcbi8vICAgICBSb3dzIFBlciBQYWdlICAgICAgICAgICAgU29ydCBCeVxuLy8gICAgIFsgMTAgICAgICAgICAgICAg4pa+IF0gICAgIFsgTW9zdCBQb3B1bGFyICDilr4gXVxuLy8gICAgICAgICAgICAgICAg4oC5IFByZXZpb3VzICAxICAyICBOZXh0IOKAulxuLy9cbi8vIFRoZSBjb3VudCBhbmQgdGhlIHRyaWdnZXIgc2hhcmUgcm93IDEgKHRoZXkgdXNlZCBhIHJvdyBlYWNoLCBmb3IgfjQ0cHggb2Zcbi8vIG5vdGhpbmcpOyB0aGUgZHJvcGRvd25zIGdldCBhIHJlYWwgaGFsZi13aWR0aCBjb2x1bW4gZWFjaDsgcGFnaW5hdGlvbiBnZXRzXG4vLyBpdHMgb3duIGZ1bGwtd2lkdGggcm93IGFuZCBpcyBjZW50cmVkLCBhbmQgZGlzYXBwZWFycyBlbnRpcmVseSB3aGVuIHRoZXJlIGlzXG4vLyBvbmx5IG9uZSBwYWdlIChzZWUgdGhlIGA6aGFzKHVsLnBhZ2luYXRpb24pYCBjb2xsYXBzZSBydWxlIGFib3ZlKS5cbkBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDc3NnB4KSB7XG4gIC5wYWdpbmF0aW9uLWNvbnRhaW5lciB7XG4gICAgJjpsYXN0LWNoaWxkIHsgbWFyZ2luLXRvcDogMHB4OyB9XG5cbiAgICAvLyBHUklELCBub3QgdGhlIGRlc2t0b3AgZmxleC13cmFwLCBhbmQgdGhhdCBjaG9pY2UgaXMgbG9hZC1iZWFyaW5nLlxuICAgIC8vXG4gICAgLy8gV2l0aCBmbGV4LXdyYXAgdGhlIHJvd3MgYXJlIGRlY2lkZWQgYnkgd2hldGhlciB0aGUgbmV4dCBpdGVtJ3NcbiAgICAvLyBIWVBPVEhFVElDQUwgbWFpbiBzaXplIHN0aWxsIGZpdHMgdGhlIGxpbmUg4oCUIHdoaWNoIGRlcGVuZHMgb24gdGhlIHRleHRcbiAgICAvLyBpbiBpdC4gYGZsZXg6IDEgMSAwYCBjb2x1bW5zIGhhdmUgYSBoeXBvdGhldGljYWwgc2l6ZSBvZiBaRVJPLCBzbyB0aGV5XG4gICAgLy8gYWx3YXlzIFwiZml0XCIgYW5kIGdvdCBkcmFnZ2VkIHVwIG9udG8gdGhlIGNvdW50J3MgbGluZSAoM3B4IHdpZGUsIGJveGVzXG4gICAgLy8gaGFuZ2luZyBvZmYgdGhlIHJpZ2h0IGVkZ2UpOyBnaXZpbmcgdGhlbSBhIHJlYWwgNTAlIGJhc2lzIGluc3RlYWQganVzdFxuICAgIC8vIG1vdmVkIHRoZSBjb2luLWZsaXAgdG8gaG93IGxvbmcgdGhlIGNvdW50IHN0cmluZyBoYXBwZW5zIHRvIGJlLCBhbmQgdGhlXG4gICAgLy8gYm90dG9tIGJhciDigJQgd2hlcmUgdGhlIGNvdW50IGlzIGRpc3BsYXk6bm9uZSDigJQgYnJva2UgZGlmZmVyZW50bHkgYWdhaW4uXG4gICAgLy8gQSAyLWNvbHVtbiBncmlkIHN0YXRlcyB0aGUgbGF5b3V0IG91dHJpZ2h0IGFuZCBjYW5ub3QgYmUgdGFsa2VkIG91dCBvZlxuICAgIC8vIGl0IGJ5IGNvbnRlbnQgd2lkdGguXG4gICAgZGlzcGxheTogZ3JpZDtcbiAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IDFmciAxZnI7XG4gICAgY29sdW1uLWdhcDogMTJweDtcbiAgICByb3ctZ2FwOiA4cHg7XG4gICAgLy8gQm90dG9tLWFsaWduIGVhY2ggcm93OiB3aGF0ZXZlciBoYXBwZW5zIHRvIGEgbGFiZWwgKGEgbG9uZ2VyIG9uZSwgYVxuICAgIC8vIGJpZ2dlciBmb250LCBhIDMyMHB4IHBob25lKSwgdGhlIHR3byBkcm9wZG93biBCT1hFUyBzdGF5IG9uIHRoZSBzYW1lXG4gICAgLy8gYmFzZWxpbmUuIFRoYXQgaXMgdGhlIGFjdHVhbCBmaXggZm9yIFwib25lIGJveCByaWRlcyBsb3dlciB0aGFuIHRoZVxuICAgIC8vIG90aGVyXCIg4oCUIGEgd3JhcHBlZCBcIlJvd3MgUGVyIFBhZ2VcIiBsYWJlbCB1c2VkIHRvIHB1c2ggaXRzIGJveCAxOHB4IGRvd24uXG4gICAgYWxpZ24taXRlbXM6IGVuZDtcblxuICAgIC8vIFRoZSBnYXAgb3ducyB0aGUgc3BhY2luZyBub3c7IHRoZSBkZXNrdG9wIG1hcmdpbiB3b3VsZCBhZGQgdG8gaXQuXG4gICAgJi1pdGVtOm5vdCg6bGFzdC1jaGlsZCkgeyBtYXJnaW4tcmlnaHQ6IDA7IH1cblxuICAgIC8vIFJPVyAxIOKAlCBjb3VudCBvbiB0aGUgbGVmdCwgZmlsdGVycyB0cmlnZ2VyIG9uIHRoZSByaWdodC5cbiAgICAvL1xuICAgIC8vIEJvdGggYXJlIHBsYWNlZCBhY3Jvc3MgdGhlIFdIT0xFIHJvdyBhbmQgcGlubmVkIHRvIG9wcG9zaXRlIGVuZHNcbiAgICAvLyAob3ZlcmxhcHBpbmcgZ3JpZCBhcmVhcywgZGVsaWJlcmF0ZWx5KS4gR2l2aW5nIGVhY2ggYW4gZXZlbiBoYWxmIGluc3RlYWRcbiAgICAvLyBzcXVlZXplZCBcIlNob3dpbmcgMSAtIDEwIG9mIDE4IHByb2R1Y3RzXCIgaW50byAxNTlweCBhbmQgd3JhcHBlZCBpdCBvbnRvXG4gICAgLy8gdHdvIGxpbmVzIHdpdGggb2J2aW91cyBlbXB0eSBzcGFjZSBiZXNpZGUgaXQuIFRoZSBtYXgtd2lkdGggcmVzZXJ2ZXMgdGhlXG4gICAgLy8gdHJpZ2dlcidzIGxhbmUsIHNvIGEgbG9uZyBjb3VudCAoXCIxIC0gMTAwIG9mIDEyLDM0NSBwcm9kdWN0c1wiKSB3cmFwc1xuICAgIC8vIGluc2lkZSBpdHMgb3duIHNwYWNlIHJhdGhlciB0aGFuIHJ1bm5pbmcgdW5kZXIgXCJTaG93IEZpbHRlcnNcIi5cbiAgICAuLXNob3dpbmcge1xuICAgICAgZ3JpZC1hcmVhOiAxIC8gMSAvIDIgLyAtMTtcbiAgICAgIGp1c3RpZnktc2VsZjogc3RhcnQ7XG4gICAgICBhbGlnbi1zZWxmOiBjZW50ZXI7XG4gICAgICBtYXgtd2lkdGg6IGNhbGMoMTAwJSAtIDhyZW0pOyAgIC8vIH4xMjhweCBsYW5lIGZvciBcIlNob3cgRmlsdGVycyDigLpcIlxuICAgICAgbWluLXdpZHRoOiAwO1xuICAgIH1cblxuICAgIC8vIGAuc2hvdy1zaWRlLW5hdmAgY2FycmllcyBgd2lkdGg6IDEwMCU7IG1hcmdpbi1ib3R0b206IDE1cHg7IGZsb2F0OiByaWdodGBcbiAgICAvLyBmcm9tIHRoZSBnbG9iYWwgbGVnYWN5IHNoZWV0IChtYWluLmNzcykuIFRoZSBmbG9hdCBpcyBpbmVydCBvbiBhIGdyaWRcbiAgICAvLyBpdGVtLCBidXQgdGhlIDEwMCUgd2lkdGggc3RyZXRjaGVkIHRoZSBjZWxsIGFuZCB0aGUgMTVweCBtYXJnaW4gYWRkZWQgYVxuICAgIC8vIGJsYW5rIHN0cmlwIHVuZGVyIGl0IOKAlCBib3RoIGhhdmUgdG8gYmUgdW5kb25lIEhFUkUsIGF0XG4gICAgLy8gYC5wYWdpbmF0aW9uLWNvbnRhaW5lciAuc2hvdy1zaWRlLW5hdmAgc3BlY2lmaWNpdHkuXG4gICAgLnNob3ctc2lkZS1uYXYge1xuICAgICAgZ3JpZC1hcmVhOiAxIC8gMSAvIDIgLyAtMTtcbiAgICAgIGp1c3RpZnktc2VsZjogZW5kO1xuICAgICAgYWxpZ24tc2VsZjogY2VudGVyO1xuICAgICAgd2lkdGg6IGF1dG87XG4gICAgICBtYXJnaW46IDA7XG4gICAgfVxuXG4gICAgLy8gQm90dG9tIGJhcjogdGhlIGNvdW50IGlzIGBkaXNwbGF5OiBub25lYCB0aGVyZSAoc2VlIC5wYWdpbmF0aW9uLWJvdHRvbSksXG4gICAgLy8gc28gYSByaWdodC1waW5uZWQgdHJpZ2dlciB3b3VsZCBiZSBzdHJhbmRlZCBhZ2FpbnN0IHRoZSBlZGdlIHdpdGggbm90aGluZ1xuICAgIC8vIGJlc2lkZSBpdC4gU2VuZCBpdCBiYWNrIHRvIHRoZSBsZWZ0IGd1dHRlci5cbiAgICAmLnBhZ2luYXRpb24tYm90dG9tIC5zaG93LXNpZGUtbmF2IHsganVzdGlmeS1zZWxmOiBzdGFydDsgfVxuXG4gICAgLy8gVGhlIGNvdW50IGlzIGEgPHA+OyBpdHMgaW5oZXJpdGVkIDFyZW0gYm90dG9tIG1hcmdpbiB3YXMgMTZweCBvZiB0aGVcbiAgICAvLyB0b29sYmFyJ3MgaGVpZ2h0IGZvciBubyByZWFzb24gb25jZSBlYWNoIHBhcnQgb3ducyBhIHJvdy5cbiAgICBwIHsgbWFyZ2luLWJvdHRvbTogMDsgfVxuXG4gICAgLy8gUk9XIDIg4oCUIHRoZSB0d28gZHJvcGRvd25zLCBvbmUgcGVyIGNvbHVtbi4gQm90dG9tLWFsaWduZWQgYnkgdGhlIGdyaWQnc1xuICAgIC8vIGBhbGlnbi1pdGVtczogZW5kYCBhYm92ZSwgc28gdGhlIGJveGVzIGxpbmUgdXAgZXZlbiBpZiBhIGxhYmVsIHdyYXBzLlxuICAgIC5wYWdpbmF0aW9uLWNvbnRhaW5lci1pdGVtOmhhcygucHAtY29udCkgeyBncmlkLWFyZWE6IDIgLyAxIC8gMyAvIDI7IG1pbi13aWR0aDogMDsgfVxuICAgIC5wYWdpbmF0aW9uLWNvbnRhaW5lci1pdGVtOmhhcyguZC1jb250KSAgeyBncmlkLWFyZWE6IDIgLyAyIC8gMyAvIDM7IG1pbi13aWR0aDogMDsgfVxuXG4gICAgLy8gUk9XIDMg4oCUIHBhZ2luYXRpb24gYWxvbmUsIGZ1bGwgd2lkdGgsIGNlbnRyZWQuIFNoYXJpbmcgdGhlIGRyb3Bkb3duIHJvd1xuICAgIC8vIGlzIHdoYXQgc3F1ZWV6ZWQgdGhvc2UgY29sdW1ucyB0byA4NXB4IGluIHRoZSBmaXJzdCBwbGFjZS4gV2hlbiB0aGVyZSBpc1xuICAgIC8vIG9ubHkgb25lIHBhZ2UgdGhlIGl0ZW0gaXMgYGRpc3BsYXk6IG5vbmVgIChjb2xsYXBzZSBydWxlIG5lYXIgdGhlIHRvcCBvZlxuICAgIC8vIHRoaXMgZmlsZSksIHNvIGl0IGlzIG5vdCBhIGdyaWQgaXRlbSBhbmQgcm93IDMgbmV2ZXIgZXhpc3RzLlxuICAgIC5wYWdpbmF0aW9uLWNvbnRhaW5lci1pdGVtOmhhcyh1bC5wYWdpbmF0aW9uKSB7IGdyaWQtY29sdW1uOiAxIC8gLTE7IH1cblxuICAgIHVsLnBhZ2luYXRpb24ge1xuICAgICAgLy8gMjdweCBvbiBkZXNrdG9wIG9wdGljYWxseSBjZW50cmVzIHRoZSBsaXN0IGFnYWluc3QgdGhlIGxhYmVsK2JveCBwYWlyXG4gICAgICAvLyBpdCBzaXRzIGJlc2lkZS4gT24gaXRzIG93biByb3cgdGhlcmUgaXMgbm90aGluZyB0byBjZW50cmUgYWdhaW5zdC5cbiAgICAgIG1hcmdpbi10b3A6IDRweDtcbiAgICAgIG1hcmdpbi1ib3R0b206IDA7XG4gICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgIGdhcDogMTBweDtcbiAgICB9XG5cbiAgICAucHAtY29udCxcbiAgICAuZC1jb250IHtcbiAgICAgIGZsb2F0OiBub25lO1xuICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICBtYXJnaW4tcmlnaHQ6IDA7XG5cbiAgICAgIC8vIExhYmVscyBhcmUgYmFjay4gVGhleSBhcmUgdGhlIG9ubHkgdGhpbmcgdGhhdCBzYXlzIHdoaWNoIGJveCBpcyB3aGljaCxcbiAgICAgIC8vIGFuZCBhdCAxMnB4IHRoZXkgY29zdCBvbmUgc2hvcnQgbGluZSBmb3IgdGhlIHBhaXIuXG4gICAgICAvL1xuICAgICAgLy8gTk8gY29sb3VyIGRlY2xhcmF0aW9uIG9uIHB1cnBvc2UuIFRoZSBkZXNrdG9wIGxhYmVsIGluaGVyaXRzIHRoZSBwYWdlJ3NcbiAgICAgIC8vIGluaywgd2hpY2ggaXMgd2hhdCBtYWtlcyBpdCByZWFkYWJsZTsgc2V0dGluZyBgJGNvbG9yX25ldXRyYWxgIGhlcmVcbiAgICAgIC8vIHJlbmRlcmVkIHRoZW0gV0hJVEUgT04gV0hJVEUgKHRoYXQgdG9rZW4gY29tcGlsZXMgdG9cbiAgICAgIC8vIGB2YXIoLS1wcy1jb2xvci1uZXV0cmFsLCAjZmZmZmZmKWAg4oCUIGl0cyBmYWxsYmFjayBpcyB3aGl0ZSBiZWNhdXNlIGl0XG4gICAgICAvLyBpcyBtZWFudCBmb3IgdGV4dCBvbiB0aGUgZGFyayBoZWFkZXIpLiBJbnZpc2libGUgbGFiZWxzIGxvb2sgZXhhY3RseVxuICAgICAgLy8gbGlrZSB0aGUgbWlzc2luZyBvbmVzIHRoaXMgYmxvY2sgc2V0IG91dCB0byBmaXguXG4gICAgICAvL1xuICAgICAgLy8gbm93cmFwICsgZWxsaXBzaXM6IGEgd3JhcHBlZCBsYWJlbCBpcyB3aGF0IGRyb3BwZWQgdGhlIFJvd3MgUGVyIFBhZ2VcbiAgICAgIC8vIGJveCBiZWxvdyB0aGUgU29ydCBCeSBib3guIE9uZSBsaW5lIGVhY2gsIGFsd2F5cy5cbiAgICAgIGxhYmVsIHtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDRweDtcbiAgICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG4gICAgICB9XG5cbiAgICAgIC8vIEZpbGwgdGhlIGNvbHVtbjogdGhlIGN1c3RvbS1zZWxlY3QgYm94IGlzIGlubGluZS1ibG9jayBhbmQgd2FzIHNpemluZ1xuICAgICAgLy8gaXRzZWxmIHRvIGl0cyB3aWRlc3Qgb3B0aW9uLCB3aGljaCBpcyB3aGF0IG1hZGUgXCIxMFwiIGFuZFxuICAgICAgLy8gXCJNb3N0IFBvcHVsYXJcIiBkaWZmZXJlbnQgd2lkdGhzIGFuZCBsZWZ0IHRoZW0gdG91Y2hpbmcuXG4gICAgICAuZm9ybS1ncm91cCxcbiAgICAgIC5jdXN0b20tc2VsZWN0IHsgZGlzcGxheTogYmxvY2s7IHdpZHRoOiAxMDAlOyB9XG4gICAgICBzZWxlY3QgeyB3aWR0aDogMTAwJTsgfVxuICAgIH1cblxuICAgIC8vIEZpbmdlci1zaXplZCBvcHRpb24gcm93cyAofjQwcHgpLiBUaGUgZGVza3RvcCA3cHggcGFkZGluZyBpcyBhIG1vdXNlXG4gICAgLy8gdGFyZ2V0OyBvbiBhIHBob25lIHRoZSBtZW51IGlzIHRoZSB0aGluZyBiZWluZyB0YXBwZWQuXG4gICAgLnNlbGVjdC1pdGVtcyBkaXYgeyBwYWRkaW5nOiAxMHB4IDE0cHg7IH1cblxuICAgIC8vIEJ1eSB0aGUgYm94IGJhY2sgfjEwcHggb2YgdGV4dCB3aWR0aCBieSB0aWdodGVuaW5nIHRoZSBjaHJvbWUuIE9uIGFcbiAgICAvLyAzMjBweCBwaG9uZSBlYWNoIGNvbHVtbiBpcyBvbmx5IH4xMzRweCwgYW5kIHRoZSBkZXNrdG9wIDM0cHggYXJyb3cgbGFuZVxuICAgIC8vICsgMTJweCBpbmRlbnQgbGVmdCB0b28gbGl0dGxlIGZvciBcIk1vc3QgUG9wdWxhclwiIOKAlCBpdCBlbGxpcHNpc2VkLiBUaGVcbiAgICAvLyBhcnJvdyBtb3ZlcyBpbiB0byBtYXRjaCBpdHMgc21hbGxlciBsYW5lLlxuICAgIC5zZWxlY3Qtc2VsZWN0ZWQge1xuICAgICAgcGFkZGluZzogN3B4IDI2cHggN3B4IDEwcHg7XG5cbiAgICAgICY6YWZ0ZXIgeyByaWdodDogMTBweDsgfVxuICAgIH1cblxuICAgIC8vIFNvcnQgQnkgaXMgdGhlIFJJR0hUIGNvbHVtbiwgYW5kIGl0cyBtZW51IGlzIGB3aWR0aDogbWF4LWNvbnRlbnRgLCBzbyBhXG4gICAgLy8gbG9uZyBvcHRpb24gKFwiUHJpY2UsIExvdyB0byBIaWdoXCIpIG1ha2VzIHRoZSBwYW5lbCB3aWRlciB0aGFuIHRoZSBib3guXG4gICAgLy8gQW5jaG9yZWQgbGVmdCBpdCB3b3VsZCBncm93IG9mZiB0aGUgZWRnZSBvZiB0aGUgc2NyZWVuOyBhbmNob3IgaXQgdG8gdGhlXG4gICAgLy8gcmlnaHQgc28gaXQgZ3Jvd3MgYmFjayBJTlRPIHRoZSBwYWdlIGluc3RlYWQuXG4gICAgLmQtY29udCAuc2VsZWN0LWl0ZW1zIHsgbGVmdDogYXV0bzsgcmlnaHQ6IDA7IH1cbiAgfVxufVxuXG4vLyDilIDilIAgVmVyeSBuYXJyb3cgcGhvbmVzICjiiaQzNTlweCkg4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSAXG4vLyBUd28gbGFiZWxsZWQgZHJvcGRvd25zIHNpZGUgYnkgc2lkZSBuZWVkIGFib3V0IDE1MHB4IG9mIGNvbHVtbiBlYWNoLiBBdFxuLy8gMzIwcHggKGlQaG9uZSBTRSAxc3QgZ2VuIGFuZCBmcmllbmRzKSB0aGV5IGdldCB+MTM0cHgsIHdoaWNoIGlzIG5vdCBlbm91Z2hcbi8vIGZvciBcIk1vc3QgUG9wdWxhclwiIGFuZCB0aGUgYXJyb3cg4oCUIHRoZSBsYWJlbCBlbGxpcHNpc2VkLiBSYXRoZXIgdGhhbiBzaGlwIGFcbi8vIHRydW5jYXRlZCB3b3JkLCBnaXZlIGVhY2ggY29udHJvbCB0aGUgd2hvbGUgcm93LiBDb3N0cyBvbmUgZXh0cmEgcm93IG9uIHRoZVxuLy8gc21hbGxlc3Qgc2NyZWVucyBvbmx5OyBldmVyeXRoaW5nIGZyb20gMzYwcHggdXAga2VlcHMgdGhlIHR3by11cCBsYXlvdXQuXG5AbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiAzNTkuOThweCkge1xuICAucGFnaW5hdGlvbi1jb250YWluZXIge1xuICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogMWZyO1xuXG4gICAgLnBhZ2luYXRpb24tY29udGFpbmVyLWl0ZW06aGFzKC5wcC1jb250KSB7IGdyaWQtYXJlYTogMiAvIDEgLyAzIC8gMjsgfVxuICAgIC5wYWdpbmF0aW9uLWNvbnRhaW5lci1pdGVtOmhhcyguZC1jb250KSAgeyBncmlkLWFyZWE6IDMgLyAxIC8gNCAvIDI7IH1cbiAgICAucGFnaW5hdGlvbi1jb250YWluZXItaXRlbTpoYXModWwucGFnaW5hdGlvbikgeyBncmlkLWNvbHVtbjogMSAvIC0xOyB9XG4gIH1cbn1cblxuLy8gVW5pdmVyc2FsIEZpdG1lbnQgQmFkZ2luZyAoMjAyNi0wOS0yOCk6IHRoZSBhbGwtdW5pdmVyc2FsIHJlc3VsdHMgbm90ZSB0aGVcbi8vIHRvcCB0b29sYmFyIHByaW50cyBhYm92ZSB0aGUgZ3JpZCAocHJvZHVjdC10b29sYmFyL19wYXJ0aWFscy91bml2ZXJzYWwtbm90ZSkuXG5AaW1wb3J0ICcuLi8uLi9wcm9kdWN0LWNhcmQvX3NoYXJlZC91bml2ZXJzYWwtbm90ZSc7XG4iLCIvLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuLy8gVGhlbWUgcGFsZXR0ZSDigJQgVE9LRU4tQkFDS0VEIChSb3VuZCAxNCwgQ09MT1JTX1RPS0VOU19SRUNPTkNJTElBVElPTi5tZCkuXG4vL1xuLy8gRXZlcnkgJGNvbG9yXyogdmFyIHJlc29sdmVzIHRvIGEgVGhlbWUgQnVpbGRlciBnbG9iYWwgZGVzaWduIHRva2VuXG4vLyAodmFyKC0tcHMtY29sb3ItKiwgPGJyYW5kIGhleCBmYWxsYmFjaz4pKS4gUmVuZGVyaW5nIGlzIElERU5USUNBTCB0byB0aGUgb2xkXG4vLyBzdGF0aWMgcGFsZXR0ZSB1bnRpbCB0aGUgYmFja2VuZCB0aGVtZSBlZGl0b3IgcHVibGlzaGVzIGEgdG9rZW4gdmFsdWUg4oCUIHRoZW5cbi8vIHRoYXQgdmFsdWUgd2lucyBhY3Jvc3MgdGhlIGVudGlyZSBjb21waWxlZCBzdHlsZXNoZWV0IChnbG9iYWwgc2hlZXQgQU5EIGV2ZXJ5XG4vLyBjb21wb25lbnQgYnVuZGxlLCBzaW5jZSB0aGV5IGFsbCBpbXBvcnQgdGhpcyBmaWxlIHZpYSBfY2F0YWxvZy9nbG9iYWxzKS5cbi8vXG4vLyBSVUxFUzpcbi8vICAtIFNhc3MgY29sb3IgZnVuY3Rpb25zIChsaWdodGVuL2Rhcmtlbi9yZ2JhL21peCkgQ0FOTk9UIG9wZXJhdGUgb24gdmFyKCkuXG4vLyAgICBVc2UgdGhlICpfaGV4IGxpdGVyYWxzIGZvciB0aG9zZSDigJQgQm9vdHN0cmFwJ3MgJHRoZW1lLWNvbG9ycyBtYXRoIGRvZXNcbi8vICAgIChvdmVycmlkZXMvX3ZhcmlhYmxlcy5zY3NzKSwgYW5kIHNvIGRvZXMgdGhlIHNpdGUtc2VhcmNoIG1vZGFsIGdyYWRpZW50LlxuLy8gIC0gRGVyaXZlZCBzaGFkZXMgYXJlIE5PVCBjb21wdXRlZCBmcm9tIHRoZSBiYXNlOiBlYWNoIGlzIGl0cyBvd24gdG9rZW4gd2l0aFxuLy8gICAgaXRzIG93biBmYWxsYmFjayAodGhlIGxlZ2FjeSB2YWx1ZXMgd2VyZSBuZXZlciBhbGdvcml0aG1pYyB0aW50cykuXG4vLyAgLSBUaGUgSklTLWZvc3NpbCB2YXJzICgkY29sb3JfamlzKikgYW5kIHRoZSAkY29sb3JfcHJpbWFyeV9saWdodGVzdCBhbGlhc1xuLy8gICAgd2VyZSByZXRpcmVkIGhlcmUgKHplcm8gY2FsbGVycyBhZnRlciB0aGUgUm91bmQgMTMgc3dlZXApLlxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuLy8g4pSA4pSAIFJhdyBicmFuZCBsaXRlcmFscyDigJQgT05MWSBmb3IgU2FzcyBjb2xvciBtYXRoIChCb290c3RyYXAgdGhlbWUgY29sb3JzLFxuLy8gICAgbGlnaHRlbigpL3JnYmEoKSBjYWxsIHNpdGVzKS4gRXZlcnl0aGluZyBlbHNlIHVzZXMgdGhlIHRva2VuLWJhY2tlZCB2YXJzLlxuJGNvbG9yX3ByaW1hcnlfaGV4OiAgICMwMDE4Nzc7XG4kY29sb3Jfc2Vjb25kYXJ5X2hleDogIzA5MDkxNztcblxuLy8g4pSA4pSAIFByaW1hcnkgKGJyYW5kKSDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIBcbiRjb2xvcl9wcmltYXJ5OiAgICAgICAgIHZhcigtLXBzLWNvbG9yLXByaW1hcnksICN7JGNvbG9yX3ByaW1hcnlfaGV4fSk7XG4kY29sb3JfcHJpbWFyeV9saWdodDogICB2YXIoLS1wcy1jb2xvci1wcmltYXJ5LWxpZ2h0LCAjZjk5ZDFhKTsgICAvLyBvcmFuZ2UgYWNjZW50IChub3QgYSB0aW50KVxuJGNvbG9yX3ByaW1hcnlfZGFyazogICAgdmFyKC0tcHMtY29sb3ItcHJpbWFyeS1kYXJrLCAjNGI4NGMwKTsgICAgLy8gbGlnaHRlciBibHVlIChsZWdhY3kgbmFtaW5nKVxuJGNvbG9yX3ByaW1hcnlfZGFya2VyOiAgdmFyKC0tcHMtY29sb3ItcHJpbWFyeS1ob3ZlciwgI3skY29sb3JfcHJpbWFyeV9oZXh9KTsgLy8gbGVnYWN5IHNlbGYtYWxpYXMg4oaSIGhvdmVyIHRva2VuXG5cbi8vIOKUgOKUgCBTZWNvbmRhcnkgKGRhcmsgYmFuZHMgLyBiYWNrZ3JvdW5kcykg4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSAXG4kY29sb3Jfc2Vjb25kYXJ5OiAgICAgICAgIHZhcigtLXBzLWNvbG9yLXNlY29uZGFyeSwgI3skY29sb3Jfc2Vjb25kYXJ5X2hleH0pO1xuJGNvbG9yX3NlY29uZGFyeV9kYXJrZXI6ICB2YXIoLS1wcy1jb2xvci1zZWNvbmRhcnktZGFya2VyLCAjMDAwMDAwKTtcbiRjb2xvcl9zZWNvbmRhcnlfZGFyazogICAgdmFyKC0tcHMtY29sb3Itc2Vjb25kYXJ5LWRhcmssICMxNDE2MTgpO1xuJGNvbG9yX3NlY29uZGFyeV9saWdodDogICB2YXIoLS1wcy1jb2xvci10ZXh0LTIsICM1NzU3NTcpO1xuJGNvbG9yX3NlY29uZGFyeV9saWdodGVyOiB2YXIoLS1wcy1jb2xvci10ZXh0LTMsICM3YzdjN2MpO1xuXG4vLyDilIDilIAgTmV1dHJhbHMgLyBzdXJmYWNlcyAvIGJvcmRlcnMg4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSAXG4kY29sb3JfbmV1dHJhbDogICB2YXIoLS1wcy1jb2xvci1uZXV0cmFsLCAjZmZmZmZmKTtcbiRjb2xvcl9uZXV0cmFsXzE6IHZhcigtLXBzLWNvbG9yLXN1cmZhY2UtYWx0LCAjZjBmMGYwKTtcbiRjb2xvcl9uZXV0cmFsXzI6IHZhcigtLXBzLWNvbG9yLWJvcmRlci0yLCAjYTdhN2E3KTtcbiRjb2xvcl9uZXV0cmFsXzM6IHZhcigtLXBzLWNvbG9yLWJvcmRlciwgI2RiZGJkYik7XG4kY29sb3ItbmV1dHJhbF80OiB2YXIoLS1wcy1jb2xvci1zdXJmYWNlLWFsdCwgI2VmZWZlZik7XG5cbi8vIOKUgOKUgCBTZW1hbnRpYyDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIBcbiRjb2xvcl9yZWQ6ICAgICAgICB2YXIoLS1wcy1jb2xvci1kYW5nZXIsICNmZjFlMDApO1xuJGNvbG9yX3RleHRfbGlnaHQ6IHZhcigtLXBzLWNvbG9yLXRleHQtaW52ZXJzZSwgI2ZmZmZmZik7XG5cbi8vIFByZWNvbXB1dGVkIHRyYW5zbHVjZW50IG92ZXJsYXkg4oCUIGEgZmlyc3QtY2xhc3MgdG9rZW4gKFNhc3MgY2FuJ3QgcmdiYSgpIGFcbi8vIHZhcigpOyB0aGUgbGVnYWN5IHZhbHVlIHdhcyByZ2JhKCRjb2xvcl9zZWNvbmRhcnlfZGFya2VyLCAuOCkgPSByZ2JhIGJsYWNrKS5cbiRvdmVybGF5LWRhcms6IHZhcigtLXBzLWNvbG9yLW92ZXJsYXktZGFyaywgcmdiYSgwLCAwLCAwLCAwLjgpKTtcbiIsIi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbi8vIENBVEFMT0cg4oCUIGdsb2JhbHMgYnJpZGdlIGZvciByZWxvY2F0ZWQgbGVnYWN5IHN0eWxlc1xuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuLy8gVGhlIHJlbG9jYXRlZCBsZWdhY3kgc3R5bGVzIChwcm9kdWN0LXRvb2xiYXIsIGxlZ2FjeSBwcm9kdWN0IGNhcmQsIGFuZCBsYXRlclxuLy8gZmFjZXRzL2RldGFpbCkgcmVmZXJlbmNlIHlvdXIgZnJhbWV3b3JrJ3MgdGhlbWUgQ09MT1IgdmFyaWFibGVzIHBsdXMgYSBmZXdcbi8vIHV0aWxpdGllcyAocmVtYygpLCBtZWRpYS1icmVha3BvaW50LWRvd24vdXAsICVjaGV2cm9uIHBsYWNlaG9sZGVycykuIEJlY2F1c2Vcbi8vIGVhY2ggY29tcG9uZW50IGNvbXBpbGVzIGFzIGl0cyBvd24gV2VicGFjayBidW5kbGUsIGVhY2ggbXVzdCBzZWUgdGhlc2UuXG4vL1xuLy8gVGhlc2UgZGVmaW5pdGlvbnMgYXJlIHNlbGYtY29udGFpbmVkIHNvIHRoZSBjb21wb25lbnRzIGNvbXBpbGUgb24gdGhlaXIgb3duLlxuLy8gVGhleSBsaXZlIE9OTFkgaW5zaWRlIHRoZXNlIGNvbXBvbmVudCBidW5kbGVzIGFuZCBkbyBub3QgYWZmZWN0IHlvdXIgZ2xvYmFsXG4vLyBidWlsZCAoc2VwYXJhdGUgY29tcGlsYXRpb24gdW5pdHMpLiBJZiB5b3UnZCByYXRoZXIgdXNlIHlvdXIgZnJhbWV3b3JrJ3Ncbi8vIHZlcnNpb25zLCBpbXBvcnQgdGhlbSBoZXJlIOKAlCB5b3VyIHZhbHVlcyB0aGVuIHRha2UgcHJlY2VkZW5jZSBmb3IgdGhlIGNvbG9yc1xuLy8gKHdoaWNoIHVzZSAhZGVmYXVsdCksIGFuZCB5b3UgY2FuIGRlbGV0ZSB0aGUgbWF0Y2hpbmcgdXRpbGl0eSBkZWZpbml0aW9ucy5cbi8vXG4vLyAgID4+PiBPUFRJT05BTDogQGltcG9ydCAnLi4vLi4vc3R5bGVzL3ZhcmlhYmxlcyc7ICAgLy8geW91ciByZWFsIHRoZW1lIHZhcnNcbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuQGltcG9ydCBcInN0eWxlcy92YXJpYW50cy9jb2xvcnNcIjtcblxuLy8g4pSA4pSAIFRoZW1lIGNvbG9yczogc2luZ2xlIHNvdXJjZSBvZiB0cnV0aCBpcyBzdHlsZXMvdmFyaWFudHMvX2NvbG9ycy5zY3NzXG4vLyAgICAoaW1wb3J0ZWQgYWJvdmU7IHRva2VuLWJhY2tlZCBzaW5jZSBSb3VuZCAxNCDigJQgZXZlcnkgJGNvbG9yXyogcmVzb2x2ZXMgdG9cbi8vICAgIHZhcigtLXBzLWNvbG9yLSosIDxicmFuZCBoZXg+KSkuIFRoZSBvbGQgZHVwbGljYXRlICMzMDVDREUgcGFsZXR0ZSB0aGF0XG4vLyAgICBsaXZlZCBoZXJlIHdhcyBkZWFkIHdlaWdodCAodGhlIGltcG9ydCdzIG5vbi0hZGVmYXVsdCBkZWZpbml0aW9ucyBhbHdheXNcbi8vICAgIHdvbikgYW5kIHdhcyByZW1vdmVkIHBlciBDT0xPUlNfVE9LRU5TX1JFQ09OQ0lMSUFUSU9OLm1kIFBoYXNlIDIuXG4vLyAgICBPbmx5IHRoZSB2YXJzIHZhcmlhbnRzL2NvbG9ycyBkb2VzIE5PVCBkZWZpbmUgcmVtYWluLCB0b2tlbi1tYXBwZWQgb250b1xuLy8gICAgdGhlIHByaW1hcnkgYWNjZW50IHBlciB0aGUgcmVjb25jaWxpYXRpb24gdGFibGU6XG4kaGVhZGVyLW1haW4tdGV4dC1jb2xvcjogIHZhcigtLXBzLWNvbG9yLXByaW1hcnksICMzMDVDREUpICFkZWZhdWx0O1xuJHppbmRleC1tb2RhbDogICAgICAgICAgICAxMDUwICFkZWZhdWx0O1xuJGhlYWRlci1iYXNlLWNvbG9yOiAgICAgICB2YXIoLS1wcy1jb2xvci1wcmltYXJ5LCAjMzA1Q0RFKSAhZGVmYXVsdDsgICAvLyBjaGVja2VkLWNoZWNrYm94IGZpbGwgKGJyYW5kKVxuJGJ1dHRvbi1kZWZhdWx0LWNvbG9yOiAgICB2YXIoLS1wcy1jb2xvci1wcmltYXJ5LCAjMzA1Q0RFKSAhZGVmYXVsdDsgICAvLyBkZWZhdWx0IGNvbnRyb2wgYWNjZW50XG5cbi8vIOKUgOKUgCByZW1jKCk6IHB4IOKGkiByZW0gKGUuZy4gcmVtYygxMikgLT4gLjc1cmVtOyByZW1jKDUsMTUpIC0+IC4zMTI1cmVtIC45Mzc1cmVtKVxuQGZ1bmN0aW9uIHJlbWMoJHZhbHVlcy4uLikge1xuICAkcmVzdWx0OiAoKTtcbiAgQGVhY2ggJHYgaW4gJHZhbHVlcyB7XG4gICAgQGlmICR2ID09IDAge1xuICAgICAgJHJlc3VsdDogYXBwZW5kKCRyZXN1bHQsIDApO1xuICAgIH0gQGVsc2UgaWYgdW5pdGxlc3MoJHYpIHtcbiAgICAgICRyZXN1bHQ6IGFwcGVuZCgkcmVzdWx0LCAoJHYgLyAxNikgKiAxcmVtKTtcbiAgICB9IEBlbHNlIHtcbiAgICAgICRyZXN1bHQ6IGFwcGVuZCgkcmVzdWx0LCAkdik7IC8vIGFscmVhZHkgaGFzIGEgdW5pdCDigJQgcGFzcyB0aHJvdWdoXG4gICAgfVxuICB9XG4gIEBpZiBsZW5ndGgoJHJlc3VsdCkgPT0gMSB7IEByZXR1cm4gbnRoKCRyZXN1bHQsIDEpOyB9XG4gIEByZXR1cm4gJHJlc3VsdDtcbn1cblxuLy8g4pSA4pSAIEJvb3RzdHJhcC00LXN0eWxlIGJyZWFrcG9pbnQgbWl4aW5zIOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgFxuJGdyaWQtYnJlYWtwb2ludHM6ICh4czogMCwgc206IDU3NnB4LCBtZDogNzY4cHgsIGxnOiA5OTJweCwgeGw6IDEyMDBweCwgeHhsOiAxNDAwcHgpICFkZWZhdWx0O1xuXG5AZnVuY3Rpb24gX2JwLW1pbigkbmFtZSkgeyBAcmV0dXJuIG1hcC1nZXQoJGdyaWQtYnJlYWtwb2ludHMsICRuYW1lKTsgfVxuQGZ1bmN0aW9uIF9icC1uZXh0KCRuYW1lKSB7XG4gICRuYW1lczogbWFwLWtleXMoJGdyaWQtYnJlYWtwb2ludHMpO1xuICAkaTogaW5kZXgoJG5hbWVzLCAkbmFtZSk7XG4gIEBpZiAkaSBhbmQgJGkgPCBsZW5ndGgoJG5hbWVzKSB7IEByZXR1cm4gbnRoKCRuYW1lcywgJGkgKyAxKTsgfVxuICBAcmV0dXJuIG51bGw7XG59XG5AbWl4aW4gbWVkaWEtYnJlYWtwb2ludC11cCgkbmFtZSkge1xuICAkbWluOiBfYnAtbWluKCRuYW1lKTtcbiAgQGlmICRtaW4gYW5kICRtaW4gIT0gMCB7IEBtZWRpYSAobWluLXdpZHRoOiAkbWluKSB7IEBjb250ZW50OyB9IH1cbiAgQGVsc2UgeyBAY29udGVudDsgfVxufVxuQG1peGluIG1lZGlhLWJyZWFrcG9pbnQtZG93bigkbmFtZSkge1xuICAkbmV4dDogX2JwLW5leHQoJG5hbWUpO1xuICBAaWYgJG5leHQge1xuICAgICRtYXg6IF9icC1taW4oJG5leHQpIC0gMC4wMnB4O1xuICAgIEBtZWRpYSAobWF4LXdpZHRoOiAkbWF4KSB7IEBjb250ZW50OyB9XG4gIH0gQGVsc2UgeyBAY29udGVudDsgfVxufVxuQG1peGluIG1lZGlhLWJyZWFrcG9pbnQtb25seSgkbmFtZSkge1xuICAkbWluOiBfYnAtbWluKCRuYW1lKTtcbiAgJG5leHQ6IF9icC1uZXh0KCRuYW1lKTtcbiAgQGlmICRuZXh0IHtcbiAgICAkbWF4OiBfYnAtbWluKCRuZXh0KSAtIDAuMDJweDtcbiAgICBAaWYgJG1pbiBhbmQgJG1pbiAhPSAwIHsgQG1lZGlhIChtaW4td2lkdGg6ICRtaW4pIGFuZCAobWF4LXdpZHRoOiAkbWF4KSB7IEBjb250ZW50OyB9IH1cbiAgICBAZWxzZSB7IEBtZWRpYSAobWF4LXdpZHRoOiAkbWF4KSB7IEBjb250ZW50OyB9IH1cbiAgfSBAZWxzZSBpZiAkbWluIGFuZCAkbWluICE9IDAge1xuICAgIEBtZWRpYSAobWluLXdpZHRoOiAkbWluKSB7IEBjb250ZW50OyB9XG4gIH0gQGVsc2UgeyBAY29udGVudDsgfVxufVxuQG1peGluIG1lZGlhLWJyZWFrcG9pbnQtYmV0d2VlbigkbG93ZXIsICR1cHBlcikge1xuICAkbWluOiBfYnAtbWluKCRsb3dlcik7XG4gICRuZXh0OiBfYnAtbmV4dCgkdXBwZXIpO1xuICAkbWF4OiBpZigkbmV4dCwgX2JwLW1pbigkbmV4dCkgLSAwLjAycHgsIG51bGwpO1xuICBAaWYgJG1pbiBhbmQgJG1pbiAhPSAwIGFuZCAkbWF4IHsgQG1lZGlhIChtaW4td2lkdGg6ICRtaW4pIGFuZCAobWF4LXdpZHRoOiAkbWF4KSB7IEBjb250ZW50OyB9IH1cbiAgQGVsc2UgaWYgJG1heCB7IEBtZWRpYSAobWF4LXdpZHRoOiAkbWF4KSB7IEBjb250ZW50OyB9IH1cbiAgQGVsc2UgaWYgJG1pbiBhbmQgJG1pbiAhPSAwIHsgQG1lZGlhIChtaW4td2lkdGg6ICRtaW4pIHsgQGNvbnRlbnQ7IH0gfVxuICBAZWxzZSB7IEBjb250ZW50OyB9XG59XG5cbi8vIOKUgOKUgCBDaGV2cm9uIHBsYWNlaG9sZGVycyAodXNlZCBieSBsYXRlciBwaGFzZXM7IGhhcm1sZXNzIHRvIGtlZXApIOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgFxuJWNoZXZyb24ge1xuICBib3JkZXItc3R5bGU6IHNvbGlkO1xuICBib3JkZXItd2lkdGg6IDAuMTVlbSAwLjE1ZW0gMCAwO1xuICBjb250ZW50OiAnJztcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICBoZWlnaHQ6IDAuNjVlbTtcbiAgbGVmdDogMC4xNWVtO1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIHRvcDogMC4xNWVtO1xuICB0cmFuc2Zvcm06IHJvdGF0ZSgtNDVkZWcpO1xuICB2ZXJ0aWNhbC1hbGlnbjogdG9wO1xuICB3aWR0aDogMC42NWVtO1xufVxuJWNoZXZyb24tcmlnaHQgIHsgbGVmdDogMDsgdHJhbnNmb3JtOiByb3RhdGUoNDVkZWcpOyB9XG4lY2hldnJvbi1ib3R0b20geyBsZWZ0OiAwOyB0cmFuc2Zvcm06IHJvdGF0ZSgxMzVkZWcpOyB9XG4lY2hldnJvbi1sZWZ0ICAgeyBsZWZ0OiAwOyB0cmFuc2Zvcm06IHJvdGF0ZSgtMTM1ZGVnKTsgfVxuIiwiLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuLy8gVW5pdmVyc2FsIEZpdG1lbnQgQmFkZ2luZyDigJQgdGhlIHByb2R1Y3QgdG9vbGJhcidzIGFsbC11bml2ZXJzYWwgbm90ZVxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuLy8gUmVuZGVyZWQgYnkgYXV0by1wcmVzcyB2aWV3cy9jb21wb25lbnRzL3Byb2R1Y3QtdG9vbGJhci9fcGFydGlhbHMvXG4vLyB1bml2ZXJzYWwtbm90ZS5ibGFkZS5waHAgKHRvcCBiYXIgb25seSkgd2hlbiBFVkVSWSBwcm9kdWN0IG9uIHRoZSBwYWdlIGlzXG4vLyB1bml2ZXJzYWwgKHBzX2xpc3RfZml0bWVudF9taXggPSAnYWxsJykgYW5kIHRoZSB0b29sYmFyJ3Ncbi8vIHVuaXZlcnNhbFJlc3VsdHNOb3RlIHNldHRpbmcgaXMgb24uIFNheSBpdCBvbmNlIGFib3ZlIHRoZSBncmlkIGluc3RlYWQgb2Zcbi8vIGZvcnR5IGlkZW50aWNhbCBjaGlwcy4gSXRzIFwiV2hhdCBkb2VzIHVuaXZlcnNhbCBtZWFuP1wiIGxpbmsgb3BlbnMgdGhlIGNhcmRcbi8vIGxpc3QncyBzaGFyZWQgZXhwbGFpbmVyIChkYXRhLXVuaXYtb3BlbiDihpIgcHJvZHVjdC1jYXJkL19zaGFyZWQvdW5pdmVyc2FsLmpzKS5cbi8vXG4vLyBJbXBvcnRlZCBieSBwcm9kdWN0LXRvb2xiYXIvZGVmYXVsdC9pbmRleC5zY3NzIGFuZCBzdW1taXQvaW5kZXguc2Nzcy4gVGhlXG4vLyBjYXJkJ3MgU3R5bGUtdGFiIGNvbG91ciBjYW5ub3QgcmVhY2ggdGhlIHRvb2xiYXIgYmxvY2ssIHNvIHRoaXMgY2FycmllcyB0aGVcbi8vIHNsYXRlIGRlZmF1bHQ7IGEgc2l0ZS13aWRlIC0tcHMtcGMtdW5pdiAodGhlbWUgc2NvcGUpIHN0aWxsIHJlY29sb3VycyBpdC5cbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbi5wcy11bml2LW5vdGUge1xuICAtLXBzLXVuaXYtbm90ZS1pbms6ICB2YXIoLS1wcy1wYy11bml2LCAjNGE1NTY4KTtcbiAgZGlzcGxheTogZmxleDsgYWxpZ24taXRlbXM6IGZsZXgtc3RhcnQ7IGdhcDogOXB4O1xuICBwYWRkaW5nOiA5cHggMTJweDsgbWFyZ2luOiAxMHB4IDAgMTRweDtcbiAgYm9yZGVyOiAxcHggc29saWQgcmdiYSg3NCwgODUsIDEwNCwgMC4yMik7IGJvcmRlci1sZWZ0OiAzcHggc29saWQgdmFyKC0tcHMtdW5pdi1ub3RlLWluayk7XG4gIGJvcmRlci1yYWRpdXM6IDhweDsgYmFja2dyb3VuZDogI2VlZjFmNTtcbiAgZm9udC1zaXplOiAxMi41cHg7IGxpbmUtaGVpZ2h0OiAxLjQ1OyBjb2xvcjogIzNhM2Q0NDsgdGV4dC1hbGlnbjogbGVmdDtcbiAgc3Ryb25nIHsgY29sb3I6IHZhcigtLXBzLXVuaXYtbm90ZS1pbmspOyB9XG59XG4vLyBUaGUgYWxsLW5vLWZpdG1lbnQtZGF0YSBwYWdlICh1bml2ZXJzYWwgPSAyLCAyMDI2LTA5LTI5KTogYW1iZXIsIHNhbWUgc2hhcGUuXG4ucHMtdW5pdi1ub3RlLnBzLXVuaXYtbm90ZS0tdmVyaWZ5IHtcbiAgLS1wcy11bml2LW5vdGUtaW5rOiB2YXIoLS1wcy1wYy12ZXJpZnksICNiNDUzMDkpO1xuICBib3JkZXItY29sb3I6IHJnYmEoMTgwLCA4MywgOSwgMC4yOCk7XG4gIGJhY2tncm91bmQ6ICNmZGYzZTc7XG59XG4ucHMtdW5pdi1ub3RlX19pY29uIHtcbiAgZmxleDogMCAwIGF1dG87IHdpZHRoOiAxOHB4OyBoZWlnaHQ6IDE4cHg7IGJvcmRlci1yYWRpdXM6IDRweDsgbWFyZ2luLXRvcDogMXB4O1xuICBkaXNwbGF5OiBpbmxpbmUtZmxleDsgYWxpZ24taXRlbXM6IGNlbnRlcjsganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gIGJhY2tncm91bmQ6IHZhcigtLXBzLXVuaXYtbm90ZS1pbmspOyBjb2xvcjogI2ZmZjtcbiAgc3ZnIHsgZGlzcGxheTogYmxvY2s7IH1cbn1cbi5wcy11bml2LW5vdGVfX2xpbmsge1xuICAtd2Via2l0LWFwcGVhcmFuY2U6IG5vbmU7IGFwcGVhcmFuY2U6IG5vbmU7XG4gIGJhY2tncm91bmQ6IG5vbmU7IGJvcmRlcjogMDsgcGFkZGluZzogMDsgbWFyZ2luOiAwOyBjdXJzb3I6IHBvaW50ZXI7XG4gIGNvbG9yOiB2YXIoLS1wcy11bml2LW5vdGUtaW5rKTsgZm9udDogaW5oZXJpdDsgZm9udC13ZWlnaHQ6IDYwMDtcbiAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7IHRleHQtdW5kZXJsaW5lLW9mZnNldDogMnB4O1xuICAmOmZvY3VzLXZpc2libGUgeyBvdXRsaW5lOiAycHggc29saWQgdmFyKC0tcHMtdW5pdi1ub3RlLWluayk7IG91dGxpbmUtb2Zmc2V0OiAycHg7IH1cbn1cbiJdLCJuYW1lcyI6W10sInNvdXJjZVJvb3QiOiIifQ==*/