@junte/ui
Version:
Quality Angular UI components kit
54 lines • 58.3 kB
JavaScript
/**
* @fileoverview This file was generated by the Angular template compiler. Do not edit.
*
* @suppress {suspiciousCode,uselessCode,missingProperties,missingOverride,checkTypes,extraRequire}
* tslint:disable
*/
import * as i0 from "@angular/core";
import * as i1 from "./table.module";
import * as i2 from "../../elements/icon/icon.component.ngfactory";
import * as i3 from "../../layout/spinner/spinner.component.ngfactory";
import * as i4 from "../../layout/stack/stack.component.ngfactory";
import * as i5 from "../../forms/input/input.component.ngfactory";
import * as i6 from "../../layout/skeleton/skeleton.component.ngfactory";
import * as i7 from "../../elements/badge/badge.component.ngfactory";
import * as i8 from "../../forms/button/button.component.ngfactory";
import * as i9 from "../../forms/button/group/button-group.component.ngfactory";
import * as i10 from "../../forms/select/select.component.ngfactory";
import * as i11 from "../../navigation/pager/pager.component.ngfactory";
import * as i12 from "../../overlays/popover/popover.component.ngfactory";
import * as i13 from "../../layout/card/card.component.ngfactory";
import * as i14 from "../../../../node_modules/@angular/router/router.ngfactory";
import * as i15 from "../../navigation/link/link.component.ngfactory";
import * as i16 from "../../navigation/menu/menu.component.ngfactory";
import * as i17 from "../../navigation/menu/menu-item.component.ngfactory";
import * as i18 from "./table.component.ngfactory";
import * as i19 from "./table-column.ngfactory";
import * as i20 from "@angular/common";
import * as i21 from "@angular/forms";
import * as i22 from "@angular/common/http";
import * as i23 from "ngx-logger";
import * as i24 from "../../layout/responsive/breakpoint.service";
import * as i25 from "../../layout/responsive/device.service";
import * as i26 from "../../elements/icon/icon.module";
import * as i27 from "../../layout/spinner/spinner.module";
import * as i28 from "../../layout/stack/stack.module";
import * as i29 from "../../core/pipes/array-pipes.module";
import * as i30 from "../../forms/input/input.module";
import * as i31 from "../../layout/skeleton/skeleton.module";
import * as i32 from "../../core/pipes/color-pipes.module";
import * as i33 from "../../elements/badge/badge.module";
import * as i34 from "../../forms/button/button.module";
import * as i35 from "../../layout/responsive/responsive.module";
import * as i36 from "../../forms/select/select.module";
import * as i37 from "../../navigation/pager/pager.module";
import * as i38 from "@ngx-translate/core";
import * as i39 from "../../overlays/popover/popover.module";
import * as i40 from "../../layout/card/card.module";
import * as i41 from "@angular/router";
import * as i42 from "../../core/pipes/text-pipes.module";
import * as i43 from "../../navigation/link/link.module";
import * as i44 from "../../navigation/menu/menu.module";
var TableModuleNgFactory = i0.ɵcmf(i1.TableModule, [], function (_l) { return i0.ɵmod([i0.ɵmpd(512, i0.ComponentFactoryResolver, i0.ɵCodegenComponentFactoryResolver, [[8, [i2.IconComponentNgFactory, i3.SpinnerComponentNgFactory, i4.StackComponentNgFactory, i5.InputComponentNgFactory, i6.SkeletonComponentNgFactory, i7.BadgeComponentNgFactory, i8.ButtonComponentNgFactory, i9.ButtonGroupComponentNgFactory, i10.SelectComponentNgFactory, i10.SelectOptionComponentNgFactory, i11.PagerComponentNgFactory, i12.PopoverComponentNgFactory, i13.CardComponentNgFactory, i14.ɵangular_packages_router_router_lNgFactory, i15.LinkComponentNgFactory, i16.MenuComponentNgFactory, i17.MenuItemComponentNgFactory, i18.TableComponentNgFactory, i19.TableColumnComponentNgFactory]], [3, i0.ComponentFactoryResolver], i0.NgModuleRef]), i0.ɵmpd(4608, i20.NgLocalization, i20.NgLocaleLocalization, [i0.LOCALE_ID]), i0.ɵmpd(4608, i21.ɵangular_packages_forms_forms_n, i21.ɵangular_packages_forms_forms_n, []), i0.ɵmpd(4608, i21.FormBuilder, i21.FormBuilder, []), i0.ɵmpd(4608, i22.HttpXsrfTokenExtractor, i22.ɵangular_packages_common_http_http_g, [i20.DOCUMENT, i0.PLATFORM_ID, i22.ɵangular_packages_common_http_http_e]), i0.ɵmpd(4608, i22.ɵangular_packages_common_http_http_h, i22.ɵangular_packages_common_http_http_h, [i22.HttpXsrfTokenExtractor, i22.ɵangular_packages_common_http_http_f]), i0.ɵmpd(5120, i22.HTTP_INTERCEPTORS, function (p0_0) { return [p0_0]; }, [i22.ɵangular_packages_common_http_http_h]), i0.ɵmpd(4608, i22.ɵangular_packages_common_http_http_d, i22.ɵangular_packages_common_http_http_d, []), i0.ɵmpd(6144, i22.XhrFactory, null, [i22.ɵangular_packages_common_http_http_d]), i0.ɵmpd(4608, i22.HttpXhrBackend, i22.HttpXhrBackend, [i22.XhrFactory]), i0.ɵmpd(6144, i22.HttpBackend, null, [i22.HttpXhrBackend]), i0.ɵmpd(4608, i22.HttpHandler, i22.ɵHttpInterceptingHandler, [i22.HttpBackend, i0.Injector]), i0.ɵmpd(4608, i22.HttpClient, i22.HttpClient, [i22.HttpHandler]), i0.ɵmpd(4608, i23.NGXMapperService, i23.NGXMapperService, [i22.HttpBackend]), i0.ɵmpd(4608, i23.NGXLoggerHttpService, i23.NGXLoggerHttpService, [i22.HttpBackend]), i0.ɵmpd(4608, i20.DatePipe, i20.DatePipe, [i0.LOCALE_ID]), i0.ɵmpd(4608, i23.NGXLogger, i23.NGXLogger, [i23.NGXMapperService, i23.NGXLoggerHttpService, i23.LoggerConfig, i0.PLATFORM_ID, i20.DatePipe]), i0.ɵmpd(4608, i23.CustomNGXLoggerService, i23.CustomNGXLoggerService, [i23.NGXMapperService, i23.NGXLoggerHttpService, i0.PLATFORM_ID, i20.DatePipe]), i0.ɵmpd(4608, i24.BreakpointService, i24.BreakpointService, [i0.NgZone]), i0.ɵmpd(4608, i25.DeviceService, i25.DeviceService, []), i0.ɵmpd(1073742336, i20.CommonModule, i20.CommonModule, []), i0.ɵmpd(1073742336, i21.ɵangular_packages_forms_forms_d, i21.ɵangular_packages_forms_forms_d, []), i0.ɵmpd(1073742336, i21.FormsModule, i21.FormsModule, []), i0.ɵmpd(1073742336, i21.ReactiveFormsModule, i21.ReactiveFormsModule, []), i0.ɵmpd(1073742336, i22.HttpClientXsrfModule, i22.HttpClientXsrfModule, []), i0.ɵmpd(1073742336, i22.HttpClientModule, i22.HttpClientModule, []), i0.ɵmpd(1073742336, i26.IconModule, i26.IconModule, []), i0.ɵmpd(1073742336, i27.SpinnerModule, i27.SpinnerModule, []), i0.ɵmpd(1073742336, i28.StackModule, i28.StackModule, []), i0.ɵmpd(1073742336, i29.ArrayPipesModule, i29.ArrayPipesModule, []), i0.ɵmpd(1073742336, i30.InputModule, i30.InputModule, []), i0.ɵmpd(1073742336, i31.SkeletonModule, i31.SkeletonModule, []), i0.ɵmpd(1073742336, i32.ColorPipesModule, i32.ColorPipesModule, []), i0.ɵmpd(1073742336, i33.BadgeModule, i33.BadgeModule, []), i0.ɵmpd(1073742336, i34.ButtonModule, i34.ButtonModule, []), i0.ɵmpd(1073742336, i23.LoggerModule, i23.LoggerModule, []), i0.ɵmpd(1073742336, i35.ResponsiveModule, i35.ResponsiveModule, []), i0.ɵmpd(1073742336, i36.SelectModule, i36.SelectModule, []), i0.ɵmpd(1073742336, i37.PagerModule, i37.PagerModule, []), i0.ɵmpd(1073742336, i38.TranslateModule, i38.TranslateModule, []), i0.ɵmpd(1073742336, i39.PopoverModule, i39.PopoverModule, []), i0.ɵmpd(1073742336, i40.CardModule, i40.CardModule, []), i0.ɵmpd(1073742336, i41.RouterModule, i41.RouterModule, [[2, i41.ɵangular_packages_router_router_a], [2, i41.Router]]), i0.ɵmpd(1073742336, i42.TextPipesModule, i42.TextPipesModule, []), i0.ɵmpd(1073742336, i43.LinkModule, i43.LinkModule, []), i0.ɵmpd(1073742336, i44.MenuModule, i44.MenuModule, []), i0.ɵmpd(1073742336, i1.TableModule, i1.TableModule, []), i0.ɵmpd(256, i22.ɵangular_packages_common_http_http_e, "XSRF-TOKEN", []), i0.ɵmpd(256, i22.ɵangular_packages_common_http_http_f, "X-XSRF-TOKEN", [])]); });
export { TableModuleNgFactory as TableModuleNgFactory };
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFibGUubW9kdWxlLm5nZmFjdG9yeS5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0BqdW50ZS91aS8iLCJzb3VyY2VzIjpbImxpYi9jb2xsZWN0aW9ucy90YWJsZS90YWJsZS5tb2R1bGUubmdmYWN0b3J5LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgKiBhcyBpMCBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCAqIGFzIGkxIGZyb20gJy4vdGFibGUubW9kdWxlJztcbmltcG9ydCAqIGFzIGkyIGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgKiBhcyBpMyBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgKiBhcyBpNCBmcm9tICcuLi8uLi9lbGVtZW50cy9pY29uL2ljb24uY29tcG9uZW50JztcbmltcG9ydCAqIGFzIGk1IGZyb20gJy4uLy4uL2Zvcm1zL2lucHV0L2lucHV0LmNvbXBvbmVudCc7XG5pbXBvcnQgKiBhcyBpNiBmcm9tICcuLi8uLi9uYXZpZ2F0aW9uL3BhZ2VyL3BhZ2VyLmNvbXBvbmVudCc7XG5pbXBvcnQgKiBhcyBpNyBmcm9tICcuLi8uLi9mb3Jtcy9idXR0b24vYnV0dG9uLmNvbXBvbmVudCc7XG5pbXBvcnQgKiBhcyBpOCBmcm9tICcuLi8uLi9mb3Jtcy9idXR0b24vZ3JvdXAvYnV0dG9uLWdyb3VwLmNvbXBvbmVudCc7XG5pbXBvcnQgKiBhcyBpOSBmcm9tICcuLi8uLi9sYXlvdXQvc3Bpbm5lci9zcGlubmVyLmNvbXBvbmVudCc7XG5pbXBvcnQgKiBhcyBpMTAgZnJvbSAnLi4vLi4vbGF5b3V0L3N0YWNrL3N0YWNrLmNvbXBvbmVudCc7XG5pbXBvcnQgKiBhcyBpMTEgZnJvbSAnLi4vLi4vbGF5b3V0L3NrZWxldG9uL3NrZWxldG9uLmNvbXBvbmVudCc7XG5pbXBvcnQgKiBhcyBpMTIgZnJvbSAnLi4vLi4vZm9ybXMvc2VsZWN0L3NlbGVjdC5jb21wb25lbnQnO1xuaW1wb3J0ICogYXMgaTEzIGZyb20gJ0BuZ3gtdHJhbnNsYXRlL2NvcmUnO1xuaW1wb3J0ICogYXMgaTE0IGZyb20gJy4uLy4uL292ZXJsYXlzL3BvcG92ZXIvcG9wb3Zlci5jb21wb25lbnQnO1xuaW1wb3J0ICogYXMgaTE1IGZyb20gJy4uLy4uL292ZXJsYXlzL3BvcG92ZXIvcG9wb3Zlci5kaXJlY3RpdmUnO1xuaW1wb3J0ICogYXMgaTE2IGZyb20gJy4uLy4uL2xheW91dC9jYXJkL2NhcmQuY29tcG9uZW50JztcbmltcG9ydCAqIGFzIGkxNyBmcm9tICcuLi8uLi9sYXlvdXQvcmVzcG9uc2l2ZS9yZXNwb25zaXZlLmRpcmVjdGl2ZXMnO1xuaW1wb3J0ICogYXMgaTE4IGZyb20gJy4uLy4uL2xheW91dC9yZXNwb25zaXZlL2RldmljZS5kaXJlY3RpdmVzJztcbmltcG9ydCAqIGFzIGkxOSBmcm9tICcuLi8uLi9uYXZpZ2F0aW9uL21lbnUvbWVudS5jb21wb25lbnQnO1xuaW1wb3J0ICogYXMgaTIwIGZyb20gJy4uLy4uL25hdmlnYXRpb24vbWVudS9tZW51LWl0ZW0uY29tcG9uZW50JztcbmltcG9ydCAqIGFzIGkyMSBmcm9tICcuLi8uLi9uYXZpZ2F0aW9uL21lbnUvc3ViLW1lbnUvc3ViLW1lbnUuY29tcG9uZW50JztcbmltcG9ydCAqIGFzIGkyMiBmcm9tICcuLi8uLi9uYXZpZ2F0aW9uL21lbnUvc3ViLW1lbnUvc3ViLW1lbnUtaXRlbS5jb21wb25lbnQnO1xuaW1wb3J0ICogYXMgaTIzIGZyb20gJy4vdGFibGUuY29tcG9uZW50JztcbmltcG9ydCAqIGFzIGkyNCBmcm9tICcuL3RhYmxlLWNvbHVtbic7XG5pbXBvcnQgKiBhcyBpMjUgZnJvbSAnLi4vLi4vY29yZS9waXBlcy9hcnJheS9tb2NrLWFycmF5LnBpcGUnO1xuaW1wb3J0ICogYXMgaTI2IGZyb20gJy4uLy4uL2NvcmUvcGlwZXMvYXJyYXkvam9pbi5waXBlJztcbmltcG9ydCAqIGFzIGkyNyBmcm9tICcuLi8uLi9jb3JlL3BpcGVzL2FycmF5L2luY2x1ZGVzLnBpcGUnO1xuaW1wb3J0ICogYXMgaTI4IGZyb20gJy4uLy4uL2NvcmUvcGlwZXMvYXJyYXkvcG9wLnBpcGUnO1xuaW1wb3J0ICogYXMgaTI5IGZyb20gJy4uLy4uL2NvcmUvcGlwZXMvYXJyYXkvZmlsdGVyLWVtcHR5LnBpcGUnO1xuaW1wb3J0ICogYXMgaTMwIGZyb20gJy4uLy4uL2VsZW1lbnRzL2ljb24vaWNvbi5tb2R1bGUnO1xuaW1wb3J0ICogYXMgaTMxIGZyb20gJy4uLy4uL2Zvcm1zL2lucHV0L2lucHV0Lm1vZHVsZSc7XG5pbXBvcnQgKiBhcyBpMzIgZnJvbSAnLi4vLi4vbmF2aWdhdGlvbi9wYWdlci9wYWdlci5tb2R1bGUnO1xuaW1wb3J0ICogYXMgaTMzIGZyb20gJy4uLy4uL2Zvcm1zL2J1dHRvbi9idXR0b24ubW9kdWxlJztcbmltcG9ydCAqIGFzIGkzNCBmcm9tICcuLi8uLi9sYXlvdXQvc3Bpbm5lci9zcGlubmVyLm1vZHVsZSc7XG5pbXBvcnQgKiBhcyBpMzUgZnJvbSAnLi4vLi4vbGF5b3V0L3N0YWNrL3N0YWNrLm1vZHVsZSc7XG5pbXBvcnQgKiBhcyBpMzYgZnJvbSAnLi4vLi4vbGF5b3V0L3NrZWxldG9uL3NrZWxldG9uLm1vZHVsZSc7XG5pbXBvcnQgKiBhcyBpMzcgZnJvbSAnLi4vLi4vY29yZS9waXBlcy9hcnJheS1waXBlcy5tb2R1bGUnO1xuaW1wb3J0ICogYXMgaTM4IGZyb20gJy4uLy4uL2Zvcm1zL3NlbGVjdC9zZWxlY3QubW9kdWxlJztcbmltcG9ydCAqIGFzIGkzOSBmcm9tICcuLi8uLi9vdmVybGF5cy9wb3BvdmVyL3BvcG92ZXIubW9kdWxlJztcbmltcG9ydCAqIGFzIGk0MCBmcm9tICcuLi8uLi9sYXlvdXQvY2FyZC9jYXJkLm1vZHVsZSc7XG5pbXBvcnQgKiBhcyBpNDEgZnJvbSAnLi4vLi4vbGF5b3V0L3Jlc3BvbnNpdmUvcmVzcG9uc2l2ZS5tb2R1bGUnO1xuaW1wb3J0ICogYXMgaTQyIGZyb20gJy4uLy4uL25hdmlnYXRpb24vbWVudS9tZW51Lm1vZHVsZSc7XG5leHBvcnQgY29uc3QgVGFibGVNb2R1bGVOZ0ZhY3Rvcnk6aTAuTmdNb2R1bGVGYWN0b3J5PGkxLlRhYmxlTW9kdWxlPiA9IChudWxsIGFzIGFueSk7XG52YXIgX2RlY2wwXzA6aTIuTmdDbGFzcyA9ICg8YW55PihudWxsIGFzIGFueSkpO1xudmFyIF9kZWNsMF8xOmkyLk5nQ29tcG9uZW50T3V0bGV0ID0gKDxhbnk+KG51bGwgYXMgYW55KSk7XG52YXIgX2RlY2wwXzI6aTIuTmdGb3JPZjxhbnksYW55PiA9ICg8YW55PihudWxsIGFzIGFueSkpO1xudmFyIF9kZWNsMF8zOmkyLk5nSWY8YW55PiA9ICg8YW55PihudWxsIGFzIGFueSkpO1xudmFyIF9kZWNsMF80OmkyLk5nVGVtcGxhdGVPdXRsZXQgPSAoPGFueT4obnVsbCBhcyBhbnkpKTtcbnZhciBfZGVjbDBfNTppMi5OZ1N0eWxlID0gKDxhbnk+KG51bGwgYXMgYW55KSk7XG52YXIgX2RlY2wwXzY6aTIuTmdTd2l0Y2ggPSAoPGFueT4obnVsbCBhcyBhbnkpKTtcbnZhciBfZGVjbDBfNzppMi5OZ1N3aXRjaENhc2UgPSAoPGFueT4obnVsbCBhcyBhbnkpKTtcbnZhciBfZGVjbDBfODppMi5OZ1N3aXRjaERlZmF1bHQgPSAoPGFueT4obnVsbCBhcyBhbnkpKTtcbnZhciBfZGVjbDBfOTppMi5OZ1BsdXJhbCA9ICg8YW55PihudWxsIGFzIGFueSkpO1xudmFyIF9kZWNsMF8xMDppMi5OZ1BsdXJhbENhc2UgPSAoPGFueT4obnVsbCBhcyBhbnkpKTtcbnZhciBfZGVjbDBfMTE6aTMuybVhbmd1bGFyX3BhY2thZ2VzX2Zvcm1zX2Zvcm1zX3kgPSAoPGFueT4obnVsbCBhcyBhbnkpKTtcbnZhciBfZGVjbDBfMTI6aTMuTmdTZWxlY3RPcHRpb24gPSAoPGFueT4obnVsbCBhcyBhbnkpKTtcbnZhciBfZGVjbDBfMTM6aTMuybVhbmd1bGFyX3BhY2thZ2VzX2Zvcm1zX2Zvcm1zX3ggPSAoPGFueT4obnVsbCBhcyBhbnkpKTtcbnZhciBfZGVjbDBfMTQ6aTMuRGVmYXVsdFZhbHVlQWNjZXNzb3IgPSAoPGFueT4obnVsbCBhcyBhbnkpKTtcbnZhciBfZGVjbDBfMTU6aTMuTnVtYmVyVmFsdWVBY2Nlc3NvciA9ICg8YW55PihudWxsIGFzIGFueSkpO1xudmFyIF9kZWNsMF8xNjppMy5SYW5nZVZhbHVlQWNjZXNzb3IgPSAoPGFueT4obnVsbCBhcyBhbnkpKTtcbnZhciBfZGVjbDBfMTc6aTMuQ2hlY2tib3hDb250cm9sVmFsdWVBY2Nlc3NvciA9ICg8YW55PihudWxsIGFzIGFueSkpO1xudmFyIF9kZWNsMF8xODppMy5TZWxlY3RDb250cm9sVmFsdWVBY2Nlc3NvciA9ICg8YW55PihudWxsIGFzIGFueSkpO1xudmFyIF9kZWNsMF8xOTppMy5TZWxlY3RNdWx0aXBsZUNvbnRyb2xWYWx1ZUFjY2Vzc29yID0gKDxhbnk+KG51bGwgYXMgYW55KSk7XG52YXIgX2RlY2wwXzIwOmkzLlJhZGlvQ29udHJvbFZhbHVlQWNjZXNzb3IgPSAoPGFueT4obnVsbCBhcyBhbnkpKTtcbnZhciBfZGVjbDBfMjE6aTMuTmdDb250cm9sU3RhdHVzID0gKDxhbnk+KG51bGwgYXMgYW55KSk7XG52YXIgX2RlY2wwXzIyOmkzLk5nQ29udHJvbFN0YXR1c0dyb3VwID0gKDxhbnk+KG51bGwgYXMgYW55KSk7XG52YXIgX2RlY2wwXzIzOmkzLlJlcXVpcmVkVmFsaWRhdG9yID0gKDxhbnk+KG51bGwgYXMgYW55KSk7XG52YXIgX2RlY2wwXzI0OmkzLk1pbkxlbmd0aFZhbGlkYXRvciA9ICg8YW55PihudWxsIGFzIGFueSkpO1xudmFyIF9kZWNsMF8yNTppMy5NYXhMZW5ndGhWYWxpZGF0b3IgPSAoPGFueT4obnVsbCBhcyBhbnkpKTtcbnZhciBfZGVjbDBfMjY6aTMuUGF0dGVyblZhbGlkYXRvciA9ICg8YW55PihudWxsIGFzIGFueSkpO1xudmFyIF9kZWNsMF8yNzppMy5DaGVja2JveFJlcXVpcmVkVmFsaWRhdG9yID0gKDxhbnk+KG51bGwgYXMgYW55KSk7XG52YXIgX2RlY2wwXzI4OmkzLkVtYWlsVmFsaWRhdG9yID0gKDxhbnk+KG51bGwgYXMgYW55KSk7XG52YXIgX2RlY2wwXzI5OmkzLk5nTW9kZWwgPSAoPGFueT4obnVsbCBhcyBhbnkpKTtcbnZhciBfZGVjbDBfMzA6aTMuTmdNb2RlbEdyb3VwID0gKDxhbnk+KG51bGwgYXMgYW55KSk7XG52YXIgX2RlY2wwXzMxOmkzLk5nRm9ybSA9ICg8YW55PihudWxsIGFzIGFueSkpO1xudmFyIF9kZWNsMF8zMjppMy5Gb3JtQ29udHJvbERpcmVjdGl2ZSA9ICg8YW55PihudWxsIGFzIGFueSkpO1xudmFyIF9kZWNsMF8zMzppMy5Gb3JtR3JvdXBEaXJlY3RpdmUgPSAoPGFueT4obnVsbCBhcyBhbnkpKTtcbnZhciBfZGVjbDBfMzQ6aTMuRm9ybUNvbnRyb2xOYW1lID0gKDxhbnk+KG51bGwgYXMgYW55KSk7XG52YXIgX2RlY2wwXzM1OmkzLkZvcm1Hcm91cE5hbWUgPSAoPGFueT4obnVsbCBhcyBhbnkpKTtcbnZhciBfZGVjbDBfMzY6aTMuRm9ybUFycmF5TmFtZSA9ICg8YW55PihudWxsIGFzIGFueSkpO1xudmFyIF9kZWNsMF8zNzppNC5JY29uQ29tcG9uZW50ID0gKDxhbnk+KG51bGwgYXMgYW55KSk7XG52YXIgX2RlY2wwXzM4Omk1LklucHV0Q29tcG9uZW50ID0gKDxhbnk+KG51bGwgYXMgYW55KSk7XG52YXIgX2RlY2wwXzM5Omk2LlBhZ2VyQ29tcG9uZW50ID0gKDxhbnk+KG51bGwgYXMgYW55KSk7XG52YXIgX2RlY2wwXzQwOmk3LkJ1dHRvbkNvbXBvbmVudCA9ICg8YW55PihudWxsIGFzIGFueSkpO1xudmFyIF9kZWNsMF80MTppOC5CdXR0b25Hcm91cENvbXBvbmVudCA9ICg8YW55PihudWxsIGFzIGFueSkpO1xudmFyIF9kZWNsMF80MjppOS5TcGlubmVyQ29tcG9uZW50ID0gKDxhbnk+KG51bGwgYXMgYW55KSk7XG52YXIgX2RlY2wwXzQzOmkxMC5TdGFja0NvbXBvbmVudCA9ICg8YW55PihudWxsIGFzIGFueSkpO1xudmFyIF9kZWNsMF80NDppMTEuU2tlbGV0b25Db21wb25lbnQgPSAoPGFueT4obnVsbCBhcyBhbnkpKTtcbnZhciBfZGVjbDBfNDU6aTEyLlNlbGVjdENvbXBvbmVudCA9ICg8YW55PihudWxsIGFzIGFueSkpO1xudmFyIF9kZWNsMF80NjppMTIuU2VsZWN0T3B0aW9uQ29tcG9uZW50ID0gKDxhbnk+KG51bGwgYXMgYW55KSk7XG52YXIgX2RlY2wwXzQ3OmkxMy5UcmFuc2xhdGVEaXJlY3RpdmUgPSAoPGFueT4obnVsbCBhcyBhbnkpKTtcbnZhciBfZGVjbDBfNDg6aTE0LlBvcG92ZXJDb21wb25lbnQgPSAoPGFueT4obnVsbCBhcyBhbnkpKTtcbnZhciBfZGVjbDBfNDk6aTE1LlBvcG92ZXJEaXJlY3RpdmUgPSAoPGFueT4obnVsbCBhcyBhbnkpKTtcbnZhciBfZGVjbDBfNTA6aTE2LkNhcmRDb21wb25lbnQgPSAoPGFueT4obnVsbCBhcyBhbnkpKTtcbnZhciBfZGVjbDBfNTE6aTE3LkZvckRpcmVjdGl2ZSA9ICg8YW55PihudWxsIGFzIGFueSkpO1xudmFyIF9kZWNsMF81MjppMTcuRm9yTWluRGlyZWN0aXZlID0gKDxhbnk+KG51bGwgYXMgYW55KSk7XG52YXIgX2RlY2wwXzUzOmkxNy5Gb3JNYXhEaXJlY3RpdmUgPSAoPGFueT4obnVsbCBhcyBhbnkpKTtcbnZhciBfZGVjbDBfNTQ6aTE4LkZvck1vYmlsZURpcmVjdGl2ZSA9ICg8YW55PihudWxsIGFzIGFueSkpO1xudmFyIF9kZWNsMF81NTppMTguRm9ySU9TUGxhdGZvcm1EaXJlY3RpdmUgPSAoPGFueT4obnVsbCBhcyBhbnkpKTtcbnZhciBfZGVjbDBfNTY6aTE4LkZvckFuZHJvaWRQbGF0Zm9ybURpcmVjdGl2ZSA9ICg8YW55PihudWxsIGFzIGFueSkpO1xudmFyIF9kZWNsMF81NzppMTguRm9yRGVza3RvcERpcmVjdGl2ZSA9ICg8YW55PihudWxsIGFzIGFueSkpO1xudmFyIF9kZWNsMF81ODppMTkuTWVudUNvbXBvbmVudCA9ICg8YW55PihudWxsIGFzIGFueSkpO1xudmFyIF9kZWNsMF81OTppMjAuTWVudUl0ZW1Db21wb25lbnQgPSAoPGFueT4obnVsbCBhcyBhbnkpKTtcbnZhciBfZGVjbDBfNjA6aTIxLlN1Yk1lbnVDb21wb25lbnQgPSAoPGFueT4obnVsbCBhcyBhbnkpKTtcbnZhciBfZGVjbDBfNjE6aTIyLlN1Yk1lbnVJdGVtQ29tcG9uZW50ID0gKDxhbnk+KG51bGwgYXMgYW55KSk7XG52YXIgX2RlY2wwXzYyOmkyMy5UYWJsZUNvbXBvbmVudCA9ICg8YW55PihudWxsIGFzIGFueSkpO1xudmFyIF9kZWNsMF82MzppMjQuVGFibGVDb2x1bW5Db21wb25lbnQgPSAoPGFueT4obnVsbCBhcyBhbnkpKTtcbnZhciBfZGVjbDBfNjQ6aTIuQXN5bmNQaXBlID0gKDxhbnk+KG51bGwgYXMgYW55KSk7XG52YXIgX2RlY2wwXzY1OmkyLlVwcGVyQ2FzZVBpcGUgPSAoPGFueT4obnVsbCBhcyBhbnkpKTtcbnZhciBfZGVjbDBfNjY6aTIuTG93ZXJDYXNlUGlwZSA9ICg8YW55PihudWxsIGFzIGFueSkpO1xudmFyIF9kZWNsMF82NzppMi5Kc29uUGlwZSA9ICg8YW55PihudWxsIGFzIGFueSkpO1xudmFyIF9kZWNsMF82ODppMi5TbGljZVBpcGUgPSAoPGFueT4obnVsbCBhcyBhbnkpKTtcbnZhciBfZGVjbDBfNjk6aTIuRGVjaW1hbFBpcGUgPSAoPGFueT4obnVsbCBhcyBhbnkpKTtcbnZhciBfZGVjbDBfNzA6aTIuUGVyY2VudFBpcGUgPSAoPGFueT4obnVsbCBhcyBhbnkpKTtcbnZhciBfZGVjbDBfNzE6aTIuVGl0bGVDYXNlUGlwZSA9ICg8YW55PihudWxsIGFzIGFueSkpO1xudmFyIF9kZWNsMF83MjppMi5DdXJyZW5jeVBpcGUgPSAoPGFueT4obnVsbCBhcyBhbnkpKTtcbnZhciBfZGVjbDBfNzM6aTIuRGF0ZVBpcGUgPSAoPGFueT4obnVsbCBhcyBhbnkpKTtcbnZhciBfZGVjbDBfNzQ6aTIuSTE4blBsdXJhbFBpcGUgPSAoPGFueT4obnVsbCBhcyBhbnkpKTtcbnZhciBfZGVjbDBfNzU6aTIuSTE4blNlbGVjdFBpcGUgPSAoPGFueT4obnVsbCBhcyBhbnkpKTtcbnZhciBfZGVjbDBfNzY6aTIuS2V5VmFsdWVQaXBlID0gKDxhbnk+KG51bGwgYXMgYW55KSk7XG52YXIgX2RlY2wwXzc3OmkyNS5Nb2NrQXJyYXlQaXBlID0gKDxhbnk+KG51bGwgYXMgYW55KSk7XG52YXIgX2RlY2wwXzc4OmkyNi5Kb2luUGlwZSA9ICg8YW55PihudWxsIGFzIGFueSkpO1xudmFyIF9kZWNsMF83OTppMjcuSW5jbHVkZXNQaXBlID0gKDxhbnk+KG51bGwgYXMgYW55KSk7XG52YXIgX2RlY2wwXzgwOmkyOC5Qb3BQaXBlID0gKDxhbnk+KG51bGwgYXMgYW55KSk7XG52YXIgX2RlY2wwXzgxOmkyOS5GaWx0ZXJFbXB0eVBpcGUgPSAoPGFueT4obnVsbCBhcyBhbnkpKTtcbnZhciBfZGVjbDBfODI6aTEzLlRyYW5zbGF0ZVBpcGUgPSAoPGFueT4obnVsbCBhcyBhbnkpKTtcbnZhciBfZGVjbDBfODM6aTIuQ29tbW9uTW9kdWxlID0gKDxhbnk+KG51bGwgYXMgYW55KSk7XG52YXIgX2RlY2wwXzg0OmkzLkZvcm1zTW9kdWxlID0gKDxhbnk+KG51bGwgYXMgYW55KSk7XG52YXIgX2RlY2wwXzg1OmkzLlJlYWN0aXZlRm9ybXNNb2R1bGUgPSAoPGFueT4obnVsbCBhcyBhbnkpKTtcbnZhciBfZGVjbDBfODY6aTMwLkljb25Nb2R1bGUgPSAoPGFueT4obnVsbCBhcyBhbnkpKTtcbnZhciBfZGVjbDBfODc6aTMxLklucHV0TW9kdWxlID0gKDxhbnk+KG51bGwgYXMgYW55KSk7XG52YXIgX2RlY2wwXzg4OmkzMi5QYWdlck1vZHVsZSA9ICg8YW55PihudWxsIGFzIGFueSkpO1xudmFyIF9kZWNsMF84OTppMzMuQnV0dG9uTW9kdWxlID0gKDxhbnk+KG51bGwgYXMgYW55KSk7XG52YXIgX2RlY2wwXzkwOmkzNC5TcGlubmVyTW9kdWxlID0gKDxhbnk+KG51bGwgYXMgYW55KSk7XG52YXIgX2RlY2wwXzkxOmkzNS5TdGFja01vZHVsZSA9ICg8YW55PihudWxsIGFzIGFueSkpO1xudmFyIF9kZWNsMF85MjppMzYuU2tlbGV0b25Nb2R1bGUgPSAoPGFueT4obnVsbCBhcyBhbnkpKTtcbnZhciBfZGVjbDBfOTM6aTM3LkFycmF5UGlwZXNNb2R1bGUgPSAoPGFueT4obnVsbCBhcyBhbnkpKTtcbnZhciBfZGVjbDBfOTQ6aTM4LlNlbGVjdE1vZHVsZSA9ICg8YW55PihudWxsIGFzIGFueSkpO1xudmFyIF9kZWNsMF85NTppMTMuVHJhbnNsYXRlTW9kdWxlID0gKDxhbnk+KG51bGwgYXMgYW55KSk7XG52YXIgX2RlY2wwXzk2OmkzOS5Qb3BvdmVyTW9kdWxlID0gKDxhbnk+KG51bGwgYXMgYW55KSk7XG52YXIgX2RlY2wwXzk3Omk0MC5DYXJkTW9kdWxlID0gKDxhbnk+KG51bGwgYXMgYW55KSk7XG52YXIgX2RlY2wwXzk4Omk0MS5SZXNwb25zaXZlTW9kdWxlID0gKDxhbnk+KG51bGwgYXMgYW55KSk7XG52YXIgX2RlY2wwXzk5Omk0Mi5NZW51TW9kdWxlID0gKDxhbnk+KG51bGwgYXMgYW55KSk7XG52YXIgX2RlY2wwXzEwMDppMC5UZW1wbGF0ZVJlZjxhbnk+ID0gKDxhbnk+KG51bGwgYXMgYW55KSk7XG52YXIgX2RlY2wwXzEwMTppMC5FbGVtZW50UmVmPGFueT4gPSAoPGFueT4obnVsbCBhcyBhbnkpKTtcbmZ1bmN0aW9uIF9WaWV3X1RhYmxlQ29tcG9uZW50X0hvc3RfMV8wKCk6dm9pZCB7XG4gIHZhciBfYW55OmFueSA9IChudWxsIGFzIGFueSk7XG4gIGNvbnN0IGN1cnJWYWxfMDphbnkgPSBfZGVjbDBfNjIuaG9zdDtcbiAgY3VyclZhbF8wO1xuICBjb25zdCBwZF8xOmFueSA9ICgoPGFueT5fZGVjbDBfNjIub25CbHVyKCkpICE9PSBmYWxzZSk7XG59XG5mdW5jdGlvbiBfVmlld19UYWJsZUNvbXBvbmVudF8xXzQoKTp2b2lkIHtcbiAgaWYgKCgoKF9kZWNsMF83OS50cmFuc2Zvcm0oX2RlY2wwXzYyLmZlYXR1cmVzLFtfZGVjbDBfNjIudWkuZmVhdHVyZS5yZWxvYWQsX2RlY2wwXzYyLnVpLmZlYXR1cmUuc2VhcmNoXSkgfHwgISFfZGVjbDBfNjIuYWN0aW9uc1RlbXBsYXRlKSAmJiAoX2RlY2wwXzc5LnRyYW5zZm9ybShfZGVjbDBfNjIuZmVhdHVyZXMsXG4gICAgICBfZGVjbDBfNjIudWkuZmVhdHVyZS5yZWxvYWQpIHx8ICEhX2RlY2wwXzYyLmFjdGlvbnNUZW1wbGF0ZSkpICYmIF9kZWNsMF83OS50cmFuc2Zvcm0oX2RlY2wwXzYyLmZlYXR1cmVzLFxuICAgICAgX2RlY2wwXzYyLnVpLmZlYXR1cmUucmVsb2FkKSkpIHtcbiAgICB2YXIgX2FueTphbnkgPSAobnVsbCBhcyBhbnkpO1xuICAgIGNvbnN0IGN1cnJWYWxfMDphbnkgPSAoX2RlY2wwXzYyLnByb2dyZXNzLmxvYWRpbmc/IF9kZWNsMF82Mi51aS5pY29ucy5hbmltYXRlZC5yZWxvYWQ6IF9kZWNsMF82Mi51aS5pY29ucy5yZWxvYWQpO1xuICAgIGN1cnJWYWxfMDtcbiAgICBjb25zdCBjdXJyVmFsXzE6YW55ID0gX2RlY2wwXzYyLnVpLm91dGxpbmUudHJhbnNwYXJlbnQ7XG4gICAgY3VyclZhbF8xO1xuICAgIGNvbnN0IGN1cnJWYWxfMjphbnkgPSBfZGVjbDBfNjIucHJvZ3Jlc3MubG9hZGluZztcbiAgICBjdXJyVmFsXzI7XG4gICAgY29uc3QgY3VyclZhbF8zOmFueSA9IF9kZWNsMF84Mi50cmFuc2Zvcm0oJ2FjdGlvbi5yZWxvYWQnKTtcbiAgICBjdXJyVmFsXzM7XG4gICAgY29uc3QgY3VyclZhbF80OmFueSA9IF9kZWNsMF80MC5ob3N0O1xuICAgIGN1cnJWYWxfNDtcbiAgICBjb25zdCBjdXJyVmFsXzU6YW55ID0gX2RlY2wwXzQwLl9zY2hlbWU7XG4gICAgY3VyclZhbF81O1xuICAgIGNvbnN0IGN1cnJWYWxfNjphbnkgPSBfZGVjbDBfNDAuX3NpemU7XG4gICAgY3VyclZhbF82O1xuICAgIGNvbnN0IGN1cnJWYWxfNzphbnkgPSBfZGVjbDBfNDAuX291dGxpbmU7XG4gICAgY3VyclZhbF83O1xuICAgIGNvbnN0IGN1cnJWYWxfODphbnkgPSBfZGVjbDBfNDAuX3dpZHRoO1xuICAgIGN1cnJWYWxfODtcbiAgICBjb25zdCBjdXJyVmFsXzk6YW55ID0gX2RlY2wwXzQwLl9zaGFwZTtcbiAgICBjdXJyVmFsXzk7XG4gICAgY29uc3QgY3VyclZhbF8xMDphbnkgPSBfZGVjbDBfNDAubG9hZGluZztcbiAgICBjdXJyVmFsXzEwO1xuICAgIGNvbnN0IGN1cnJWYWxfMTE6YW55ID0gX2RlY2wwXzQwLndpdGhUZXh0O1xuICAgIGN1cnJWYWxfMTE7XG4gICAgY29uc3QgY3VyclZhbF8xMjphbnkgPSBfZGVjbDBfNDAuZGlzYWJsZTtcbiAgICBjdXJyVmFsXzEyO1xuICAgIF9kZWNsMF82Mi5sb2FkKCk7XG4gICAgY29uc3QgcGRfMTM6YW55ID0gKCg8YW55Pl9kZWNsMF82Mi5yZWxvYWRlZC5lbWl0KCkpICE9PSBmYWxzZSk7XG4gIH1cbn1cbmZ1bmN0aW9uIF9WaWV3X1RhYmxlQ29tcG9uZW50XzFfNSgpOnZvaWQge1xuICBpZiAoKChfZGVjbDBfNzkudHJhbnNmb3JtKF9kZWNsMF82Mi5mZWF0dXJlcyxbX2RlY2wwXzYyLnVpLmZlYXR1cmUucmVsb2FkLF9kZWNsMF82Mi51aS5mZWF0dXJlLnNlYXJjaF0pIHx8ICEhX2RlY2wwXzYyLmFjdGlvbnNUZW1wbGF0ZSkgJiYgKF9kZWNsMF83OS50cmFuc2Zvcm0oX2RlY2wwXzYyLmZlYXR1cmVzLFxuICAgICAgX2RlY2wwXzYyLnVpLmZlYXR1cmUucmVsb2FkKSB8fCAhIV9kZWNsMF82Mi5hY3Rpb25zVGVtcGxhdGUpKSkgeyB2YXIgX2FueTphbnkgPSAobnVsbCBhcyBhbnkpOyB9XG59XG5mdW5jdGlvbiBfVmlld19UYWJsZUNvbXBvbmVudF8xXzMoKTp2b2lkIHtcbiAgaWYgKCgoX2RlY2wwXzc5LnRyYW5zZm9ybShfZGVjbDBfNjIuZmVhdHVyZXMsW19kZWNsMF82Mi51aS5mZWF0dXJlLnJlbG9hZCxfZGVjbDBfNjIudWkuZmVhdHVyZS5zZWFyY2hdKSB8fCAhIV9kZWNsMF82Mi5hY3Rpb25zVGVtcGxhdGUpICYmIChfZGVjbDBfNzkudHJhbnNmb3JtKF9kZWNsMF82Mi5mZWF0dXJlcyxcbiAgICAgIF9kZWNsMF82Mi51aS5mZWF0dXJlLnJlbG9hZCkgfHwgISFfZGVjbDBfNjIuYWN0aW9uc1RlbXBsYXRlKSkpIHtcbiAgICB2YXIgX2FueTphbnkgPSAobnVsbCBhcyBhbnkpO1xuICAgIGNvbnN0IGN1cnJWYWxfMDphbnkgPSBfZGVjbDBfNjIudWkub3JpZW50YXRpb24uaG9yaXpvbnRhbDtcbiAgICBjdXJyVmFsXzA7XG4gICAgY29uc3QgY3VyclZhbF8xOmFueSA9IF9kZWNsMF82Mi51aS5hbGlnbi5jZW50ZXI7XG4gICAgY3VyclZhbF8xO1xuICAgIGNvbnN0IGN1cnJWYWxfMjphbnkgPSBfZGVjbDBfNDMuaG9zdDtcbiAgICBjdXJyVmFsXzI7XG4gICAgY29uc3QgY3VyclZhbF8zOmFueSA9IF9kZWNsMF80My5fb3JpZW50YXRpb247XG4gICAgY3VyclZhbF8zO1xuICAgIGNvbnN0IGN1cnJWYWxfNDphbnkgPSBfZGVjbDBfNDMuX2d1dHRlcjtcbiAgICBjdXJyVmFsXzQ7XG4gICAgY29uc3QgY3VyclZhbF81OmFueSA9IF9kZWNsMF80My5fc3BhY2luZztcbiAgICBjdXJyVmFsXzU7XG4gICAgY29uc3QgY3VyclZhbF82OmFueSA9IF9kZWNsMF80My5fcGFkZGluZztcbiAgICBjdXJyVmFsXzY7XG4gICAgY29uc3QgY3VyclZhbF83OmFueSA9IF9kZWNsMF80My5fYWxpZ247XG4gICAgY3VyclZhbF83O1xuICAgIGNvbnN0IGN1cnJWYWxfODphbnkgPSBfZGVjbDBfNDMuX2p1c3RpZnk7XG4gICAgY3VyclZhbF84O1xuICAgIGNvbnN0IGN1cnJWYWxfOTphbnkgPSBfZGVjbDBfNDMuX3dyYXA7XG4gICAgY3VyclZhbF85O1xuICAgIGNvbnN0IGN1cnJWYWxfMTA6YW55ID0gX2RlY2wwXzc5LnRyYW5zZm9ybShfZGVjbDBfNjIuZmVhdHVyZXMsX2RlY2wwXzYyLnVpLmZlYXR1cmUucmVsb2FkKTtcbiAgICBjdXJyVmFsXzEwO1xuICAgIGNvbnN0IGN1cnJWYWxfMTE6YW55ID0gX2RlY2wwXzYyLmFjdGlvbnNUZW1wbGF0ZTtcbiAgICBjdXJyVmFsXzExO1xuICB9XG59XG5mdW5jdGlvbiBfVmlld19UYWJsZUNvbXBvbmVudF8xXzYoKTp2b2lkIHtcbiAgaWYgKCgoX2RlY2wwXzc5LnRyYW5zZm9ybShfZGVjbDBfNjIuZmVhdHVyZXMsW19kZWNsMF82Mi51aS5mZWF0dXJlLnJlbG9hZCxfZGVjbDBfNjIudWkuZmVhdHVyZS5zZWFyY2hdKSB8fCAhIV9kZWNsMF82Mi5hY3Rpb25zVGVtcGxhdGUpICYmIF9kZWNsMF83OS50cmFuc2Zvcm0oX2RlY2wwXzYyLmZlYXR1cmVzLFxuICAgICAgX2RlY2wwXzYyLnVpLmZlYXR1cmUuc2VhcmNoKSkpIHtcbiAgICB2YXIgX2FueTphbnkgPSAobnVsbCBhcyBhbnkpO1xuICAgIGNvbnN0IGN1cnJWYWxfMDphbnkgPSBfZGVjbDBfNjIudWkuaWNvbnMuc2VhcmNoO1xuICAgIGN1cnJWYWxfMDtcbiAgICBjb25zdCBjdXJyVmFsXzE6YW55ID0gX2RlY2wwXzgyLnRyYW5zZm9ybSgnbGFiZWwuc2VhcmNoJyk7XG4gICAgY3VyclZhbF8xO1xuICAgIGNvbnN0IGN1cnJWYWxfMjphbnkgPSBbX2RlY2wwXzYyLnVpLmZlYXR1cmUuYWxsb3dFbXB0eV07XG4gICAgY3VyclZhbF8yO1xuICAgIGNvbnN0IGN1cnJWYWxfMzphbnkgPSBfZGVjbDBfMzguaG9zdDtcbiAgICBjdXJyVmFsXzM7XG4gICAgY29uc3QgY3VyclZhbF80OmFueSA9IF9kZWNsMF8zOC5mb2N1c2VkO1xuICAgIGN1cnJWYWxfNDtcbiAgICBjb25zdCBjdXJyVmFsXzU6YW55ID0gX2RlY2wwXzM4LmRpc2FibGVkO1xuICAgIGN1cnJWYWxfNTtcbiAgICBjb25zdCBjdXJyVmFsXzY6YW55ID0gX2RlY2wwXzM4Ll9zY2hlbWU7XG4gICAgY3VyclZhbF82O1xuICAgIGNvbnN0IGN1cnJWYWxfNzphbnkgPSBfZGVjbDBfMzguX3NpemU7XG4gICAgY3VyclZhbF83O1xuICAgIGNvbnN0IGN1cnJWYWxfODphbnkgPSBfZGVjbDBfMzguX3dpZHRoO1xuICAgIGN1cnJWYWxfODtcbiAgICBjb25zdCBjdXJyVmFsXzk6YW55ID0gX2RlY2wwXzM4LndpdGhJY29uO1xuICAgIGN1cnJWYWxfOTtcbiAgICBjb25zdCBjdXJyVmFsXzEwOmFueSA9IF9kZWNsMF8zOC50ZXh0QWxpZ247XG4gICAgY3VyclZhbF8xMDtcbiAgICBjb25zdCBjdXJyVmFsXzExOmFueSA9IF9kZWNsMF8zOC5zdGF0ZTtcbiAgICBjdXJyVmFsXzExO1xuICAgIGNvbnN0IGN1cnJWYWxfMTI6YW55ID0gX2RlY2wwXzM4LmZlYXR1cmVzO1xuICAgIGN1cnJWYWxfMTI7XG4gICAgY29uc3QgY3VyclZhbF8xMzphbnkgPSBfZGVjbDBfMzgudGFiaW5kZXg7XG4gICAgY3VyclZhbF8xMztcbiAgICBjb25zdCBjdXJyVmFsXzE0OmFueSA9ICdxJztcbiAgICBjdXJyVmFsXzE0O1xuICAgIGNvbnN0IGN1cnJWYWxfMTU6YW55ID0gX2RlY2wwXzIxLm5nQ2xhc3NVbnRvdWNoZWQ7XG4gICAgY3VyclZhbF8xNTtcbiAgICBjb25zdCBjdXJyVmFsXzE2OmFueSA9IF9kZWNsMF8yMS5uZ0NsYXNzVG91Y2hlZDtcbiAgICBjdXJyVmFsXzE2O1xuICAgIGNvbnN0IGN1cnJWYWxfMTc6YW55ID0gX2RlY2wwXzIxLm5nQ2xhc3NQcmlzdGluZTtcbiAgICBjdXJyVmFsXzE3O1xuICAgIGNvbnN0IGN1cnJWYWxfMTg6YW55ID0gX2RlY2wwXzIxLm5nQ2xhc3NEaXJ0eTtcbiAgICBjdXJyVmFsXzE4O1xuICAgIGNvbnN0IGN1cnJWYWxfMTk6YW55ID0gX2RlY2wwXzIxLm5nQ2xhc3NWYWxpZDtcbiAgICBjdXJyVmFsXzE5O1xuICAgIGNvbnN0IGN1cnJWYWxfMjA6YW55ID0gX2RlY2wwXzIxLm5nQ2xhc3NJbnZhbGlkO1xuICAgIGN1cnJWYWxfMjA7XG4gICAgY29uc3QgY3VyclZhbF8yMTphbnkgPSBfZGVjbDBfMjEubmdDbGFzc1BlbmRpbmc7XG4gICAgY3VyclZhbF8yMTtcbiAgICBjb25zdCBwZF8yMjphbnkgPSAoKDxhbnk+X2RlY2wwXzM4Lm9uQmx1cigpKSAhPT0gZmFsc2UpO1xuICB9XG59XG5mdW5jdGlvbiBfVmlld19UYWJsZUNvbXBvbmVudF8xXzIoKTp2b2lkIHtcbiAgaWYgKChfZGVjbDBfNzkudHJhbnNmb3JtKF9kZWNsMF82Mi5mZWF0dXJlcyxbX2RlY2wwXzYyLnVpLmZlYXR1cmUucmVsb2FkLF9kZWNsMF82Mi51aS5mZWF0dXJlLnNlYXJjaF0pIHx8ICEhX2RlY2wwXzYyLmFjdGlvbnNUZW1wbGF0ZSkpIHtcbiAgICB2YXIgX2FueTphbnkgPSAobnVsbCBhcyBhbnkpO1xuICAgIGNvbnN0IGN1cnJWYWxfMDphbnkgPSBfZGVjbDBfNjIudWkub3JpZW50YXRpb24uaG9yaXpvbnRhbDtcbiAgICBjdXJyVmFsXzA7XG4gICAgY29uc3QgY3VyclZhbF8xOmFueSA9IF9kZWNsMF82Mi51aS5hbGlnbi5jZW50ZXI7XG4gICAgY3VyclZhbF8xO1xuICAgIGNvbnN0IGN1cnJWYWxfMjphbnkgPSBfZGVjbDBfNjIudWkuanVzdGlmeS5iZXR3ZWVuO1xuICAgIGN1cnJWYWxfMjtcbiAgICBjb25zdCBjdXJyVmFsXzM6YW55ID0gX2RlY2wwXzQzLmhvc3Q7XG4gICAgY3VyclZhbF8zO1xuICAgIGNvbnN0IGN1cnJWYWxfNDphbnkgPSBfZGVjbDBfNDMuX29yaWVudGF0aW9uO1xuICAgIGN1cnJWYWxfNDtcbiAgICBjb25zdCBjdXJyVmFsXzU6YW55ID0gX2RlY2wwXzQzLl9ndXR0ZXI7XG4gICAgY3VyclZhbF81O1xuICAgIGNvbnN0IGN1cnJWYWxfNjphbnkgPSBfZGVjbDBfNDMuX3NwYWNpbmc7XG4gICAgY3VyclZhbF82O1xuICAgIGNvbnN0IGN1cnJWYWxfNzphbnkgPSBfZGVjbDBfNDMuX3BhZGRpbmc7XG4gICAgY3VyclZhbF83O1xuICAgIGNvbnN0IGN1cnJWYWxfODphbnkgPSBfZGVjbDBfNDMuX2FsaWduO1xuICAgIGN1cnJWYWxfODtcbiAgICBjb25zdCBjdXJyVmFsXzk6YW55ID0gX2RlY2wwXzQzLl9qdXN0aWZ5O1xuICAgIGN1cnJWYWxfOTtcbiAgICBjb25zdCBjdXJyVmFsXzEwOmFueSA9IF9kZWNsMF80My5fd3JhcDtcbiAgICBjdXJyVmFsXzEwO1xuICAgIGNvbnN0IGN1cnJWYWxfMTE6YW55ID0gKF9kZWNsMF83OS50cmFuc2Zvcm0oX2RlY2wwXzYyLmZlYXR1cmVzLF9kZWNsMF82Mi51aS5mZWF0dXJlLnJlbG9hZCkgfHwgISFfZGVjbDBfNjIuYWN0aW9uc1RlbXBsYXRlKTtcbiAgICBjdXJyVmFsXzExO1xuICAgIGNvbnN0IGN1cnJWYWxfMTI6YW55ID0gX2RlY2wwXzc5LnRyYW5zZm9ybShfZGVjbDBfNjIuZmVhdHVyZXMsX2RlY2wwXzYyLnVpLmZlYXR1cmUuc2VhcmNoKTtcbiAgICBjdXJyVmFsXzEyO1xuICB9XG59XG5mdW5jdGlvbiBfVmlld19UYWJsZUNvbXBvbmVudF8xXzgoKTp2b2lkIHtcbiAgaWYgKCEhX2RlY2wwXzYyLmZpbHRlcnNUZW1wbGF0ZSkgeyB2YXIgX2FueTphbnkgPSAobnVsbCBhcyBhbnkpOyB9XG59XG5mdW5jdGlvbiBfVmlld19UYWJsZUNvbXBvbmVudF8xXzcoKTp2b2lkIHtcbiAgaWYgKCEhX2RlY2wwXzYyLmZpbHRlcnNUZW1wbGF0ZSkge1xuICAgIHZhciBfYW55OmFueSA9IChudWxsIGFzIGFueSk7XG4gICAgY29uc3QgY3VyclZhbF8wOmFueSA9IF9kZWNsMF82Mi5maWx0ZXJzVGVtcGxhdGU7XG4gICAgY3VyclZhbF8wO1xuICB9XG59XG5mdW5jdGlvbiBfVmlld19UYWJsZUNvbXBvbmVudF8xXzEoKTp2b2lkIHtcbiAgdmFyIF9hbnk6YW55ID0gKG51bGwgYXMgYW55KTtcbiAgY29uc3QgY3VyclZhbF8wOmFueSA9IChfZGVjbDBfNzkudHJhbnNmb3JtKF9kZWNsMF82Mi5mZWF0dXJlcyxbX2RlY2wwXzYyLnVpLmZlYXR1cmUucmVsb2FkLFxuICAgICAgX2RlY2wwXzYyLnVpLmZlYXR1cmUuc2VhcmNoXSkgfHwgISFfZGVjbDBfNjIuYWN0aW9uc1RlbXBsYXRlKTtcbiAgY3VyclZhbF8wO1xuICBjb25zdCBjdXJyVmFsXzE6YW55ID0gISFfZGVjbDBfNjIuZmlsdGVyc1RlbXBsYXRlO1xuICBjdXJyVmFsXzE7XG59XG5mdW5jdGlvbiBfVmlld19UYWJsZUNvbXBvbmVudF8xXzEwKCk6dm9pZCB7XG4gIGlmICgoX2RlY2wwXzYyLnNvdXJjZS5sZW5ndGggJiYgX2RlY2wwXzYyLnByb2dyZXNzLmxvYWRpbmcpKSB7XG4gICAgdmFyIF9hbnk6YW55ID0gKG51bGwgYXMgYW55KTtcbiAgICBjb25zdCBjdXJyVmFsXzA6YW55ID0gX2RlY2wwXzYyLnVpLnNpemUubGFyZ2U7XG4gICAgY3VyclZhbF8wO1xuICAgIGNvbnN0IGN1cnJWYWxfMTphbnkgPSBfZGVjbDBfNDIuaG9zdDtcbiAgICBjdXJyVmFsXzE7XG4gICAgY29uc3QgY3VyclZhbF8yOmFueSA9IF9kZWNsMF80Mi5fc2l6ZTtcbiAgICBjdXJyVmFsXzI7XG4gIH1cbn1cbmZ1bmN0aW9uIF9WaWV3X1RhYmxlQ29tcG9uZW50XzFfMTEoKTp2b2lkIHtcbiAgaWYgKCEhX2RlY2wwXzYyLnJvd0FjdGlvbnNUZW1wbGF0ZSkgeyB2YXIgX2FueTphbnkgPSAobnVsbCBhcyBhbnkpOyB9XG59XG5mdW5jdGlvbiBfVmlld19UYWJsZUNvbXBvbmVudF8xXzEzKCk6dm9pZCB7XG4gIGlmICgoISFfZGVjbDBfNjIub3JkZXJCeUNvbnRyb2wudmFsdWUgJiYgKChfZGVjbDBfNjIub3JkZXJCeUNvbnRyb2wudmFsdWUgPT09ICgnLScgKyBfYW55Lm9yZGVyQnkpKSB8fCAoX2RlY2wwXzYyLm9yZGVyQnlDb250cm9sLnZhbHVlID09PSBfYW55Lm9yZGVyQnkpKSkpIHtcbiAgICB2YXIgX2FueTphbnkgPSAobnVsbCBhcyBhbnkpO1xuICAgIGNvbnN0IGN1cnJWYWxfMDphbnkgPSAoKF9kZWNsMF82Mi5vcmRlckJ5Q29udHJvbC52YWx1ZSA9PT0gX2FueS5vcmRlckJ5KT8gJ+KGkSc6ICfihpMnKTtcbiAgICBjdXJyVmFsXzA7XG4gIH1cbn1cbmZ1bmN0aW9uIF9WaWV3X1RhYmxlQ29tcG9uZW50XzFfMTIoKTp2b2lkIHtcbiAgdmFyIF9hbnk6YW55ID0gKG51bGwgYXMgYW55KTtcbiAgY29uc3QgY3VyclZhbF8wOmFueSA9ICEhX2FueS5vcmRlckJ5O1xuICBjdXJyVmFsXzA7XG4gIGNvbnN0IGN1cnJWYWxfMTphbnkgPSBfYW55LmFsaWduO1xuICBjdXJyVmFsXzE7XG4gIGNvbnN0IGN1cnJWYWxfMjphbnkgPSBfYW55LndpZHRoO1xuICBjdXJyVmFsXzI7XG4gIGNvbnN0IGN1cnJWYWxfMzphbnkgPSBfYW55LnRpdGxlO1xuICBjdXJyVmFsXzM7XG4gIGNvbnN0IGN1cnJWYWxfNDphbnkgPSAoISFfZGVjbDBfNjIub3JkZXJCeUNvbnRyb2wudmFsdWUgJiYgKChfZGVjbDBfNjIub3JkZXJCeUNvbnRyb2wudmFsdWUgPT09ICgnLScgKyBfYW55Lm9yZGVyQnkpKSB8fCAoX2RlY2wwXzYyLm9yZGVyQnlDb250cm9sLnZhbHVlID09PSBfYW55Lm9yZGVyQnkpKSk7XG4gIGN1cnJWYWxfNDtcbiAgY29uc3QgcGRfNTphbnkgPSAoKDxhbnk+KF9hbnkub3JkZXJCeT8gX2RlY2wwXzYyLnNvcnRpbmcoX2FueS5vcmRlckJ5KTogbnVsbCkpICE9PSBmYWxzZSk7XG59XG5mdW5jdGlvbiBfVmlld19UYWJsZUNvbXBvbmVudF8xXzE4KCk6dm9pZCB7XG4gIGlmICgoX2RlY2wwXzYyLnNvdXJjZS5sZW5ndGggJiYgISFfZGVjbDBfNjIucm93QWN0aW9uc1RlbXBsYXRlKSkgeyB2YXIgX2FueTphbnkgPSAobnVsbCBhcyBhbnkpOyB9XG59XG5mdW5jdGlvbiBfVmlld19UYWJsZUNvbXBvbmVudF8xXzE3KCk6dm9pZCB7XG4gIGlmICgoX2RlY2wwXzYyLnNvdXJjZS5sZW5ndGggJiYgISFfZGVjbDBfNjIucm93QWN0aW9uc1RlbXBsYXRlKSkge1xuICAgIHZhciBfYW55OmFueSA9IChudWxsIGFzIGFueSk7XG4gICAgY29uc3QgY3VyclZhbF8wOmFueSA9IHtyb3c6X2FueSxoaWRlOl9kZWNsMF82Mi5oaWRlQWN0aW9ucy5iaW5kKF9kZWNsMF82Mil9O1xuICAgIGN1cnJWYWxfMDtcbiAgICBjb25zdCBjdXJyVmFsXzE6YW55ID0gX2RlY2wwXzYyLnJvd0FjdGlvbnNUZW1wbGF0ZTtcbiAgICBjdXJyVmFsXzE7XG4gIH1cbn1cbmZ1bmN0aW9uIF9WaWV3X1RhYmxlQ29tcG9uZW50XzFfMTYoKTp2b2lkIHtcbiAgaWYgKChfZGVjbDBfNjIuc291cmNlLmxlbmd0aCAmJiAhIV9kZWNsMF82Mi5yb3dBY3Rpb25zVGVtcGxhdGUpKSB7XG4gICAgdmFyIF9hbnk6YW55ID0gKG51bGwgYXMgYW55KTtcbiAgICBjb25zdCBjdXJyVmFsXzA6YW55ID0gX2RlY2wwXzYyLnVpLmljb25zLmFjdGlvbnM7XG4gICAgY3VyclZhbF8wO1xuICAgIGNvbnN0IGN1cnJWYWxfMTphbnkgPSBfZGVjbDBfNjIudWkub3V0bGluZS50cmFuc3BhcmVudDtcbiAgICBjdXJyVmFsXzE7XG4gICAgY29uc3QgY3VyclZhbF8yOmFueSA9IF9kZWNsMF80MC5ob3N0O1xuICAgIGN1cnJWYWxfMjtcbiAgICBjb25zdCBjdXJyVmFsXzM6YW55ID0gX2RlY2wwXzQwLl9zY2hlbWU7XG4gICAgY3VyclZhbF8zO1xuICAgIGNvbnN0IGN1cnJWYWxfNDphbnkgPSBfZGVjbDBfNDAuX3NpemU7XG4gICAgY3VyclZhbF80O1xuICAgIGNvbnN0IGN1cnJWYWxfNTphbnkgPSBfZGVjbDBfNDAuX291dGxpbmU7XG4gICAgY3VyclZhbF81O1xuICAgIGNvbnN0IGN1cnJWYWxfNjphbnkgPSBfZGVjbDBfNDAuX3dpZHRoO1xuICAgIGN1cnJWYWxfNjtcbiAgICBjb25zdCBjdXJyVmFsXzc6YW55ID0gX2RlY2wwXzQwLl9zaGFwZTtcbiAgICBjdXJyVmFsXzc7XG4gICAgY29uc3QgY3VyclZhbF84OmFueSA9IF9kZWNsMF80MC5sb2FkaW5nO1xuICAgIGN1cnJWYWxfODtcbiAgICBjb25zdCBjdXJyVmFsXzk6YW55ID0gX2RlY2wwXzQwLndpdGhUZXh0O1xuICAgIGN1cnJWYWxfOTtcbiAgICBjb25zdCBjdXJyVmFsXzEwOmFueSA9IF9kZWNsMF80MC5kaXNhYmxlO1xuICAgIGN1cnJWYWxfMTA7XG4gICAgY29uc3QgY3VyclZhbF8xMTphbnkgPSB7Y29udGV4dDondGFibGUtcm93LWFjdGlvbicsY29udGVudFRlbXBsYXRlOl9kZWNsMF8xMDAsXG4gICAgICAgIGJlaGF2aW91cjpfZGVjbDBfNjIudWkuYmVoYXZpb3VyLmRyb3Bkb3duLHRyaWdnZXI6X2RlY2wwXzYyLnVpLnRyaWdnZXIuY2xpY2ssXG4gICAgICAgIHBhZGRpbmc6X2RlY2wwXzYyLnVpLmd1dHRlci5zbWFsbCxtaW5XaWR0aDonMTUwcHgnfTtcbiAgICBjdXJyVmFsXzExO1xuICAgIGNvbnN0IHBkXzEyOmFueSA9ICgoPGFueT5fZGVjbDBfNDkubW91c2VFbnRlcigpKSAhPT0gZmFsc2UpO1xuICAgIGNvbnN0IHBkXzEzOmFueSA9ICgoPGFueT5fZGVjbDBfNDkuY2xpY2soKSkgIT09IGZhbHNlKTtcbiAgICBjb25zdCBwZF8xNDphbnkgPSAoKDxhbnk+KF9kZWNsMF82Mi5wb3BvdmVyID0gX2FueSkpICE9PSBmYWxzZSk7XG4gIH1cbn1cbmZ1bmN0aW9uIF9WaWV3X1RhYmxlQ29tcG9uZW50XzFfMjAoKTp2b2lkIHtcbiAgaWYgKF9kZWNsMF82Mi5zb3VyY2UubGVuZ3RoKSB7IHZhciBfYW55OmFueSA9IChudWxsIGFzIGFueSk7IH1cbn1cbmZ1bmN0aW9uIF9WaWV3X1RhYmxlQ29tcG9uZW50XzFfMTkoKTp2b2lkIHtcbiAgaWYgKF9kZWNsMF82Mi5zb3VyY2UubGVuZ3RoKSB7XG4gICAgdmFyIF9hbnk6YW55ID0gKG51bGwgYXMgYW55KTtcbiAgICBjb25zdCBjdXJyVmFsXzA6YW55ID0gX2FueTtcbiAgICBjdXJyVmFsXzA7XG4gICAgY29uc3QgY3VyclZhbF8xOmFueSA9IF9hbnkudGFibGVDZWxsVGVtcGxhdGU7XG4gICAgY3VyclZhbF8xO1xuICB9XG59XG5mdW5jdGlvbiBfVmlld19UYWJsZUNvbXBvbmVudF8xXzE1KCk6dm9pZCB7XG4gIGlmIChfZGVjbDBfNjIuc291cmNlLmxlbmd0aCkge1xuICAgIHZhciBfYW55OmFueSA9IChudWxsIGFzIGFueSk7XG4gICAgY29uc3QgY3VyclZhbF8wOmFueSA9ICEoX2FueSAlIDIpO1xuICAgIGN1cnJWYWxfMDtcbiAgICBjb25zdCBjdXJyVmFsXzE6YW55ID0gISFfZGVjbDBfNjIucm93QWN0aW9uc1RlbXBsYXRlO1xuICAgIGN1cnJWYWxfMTtcbiAgICBjb25zdCBjdXJyVmFsXzI6YW55ID0gX2RlY2wwXzYyLmNvbHVtbnM7XG4gICAgY3VyclZhbF8yO1xuICB9XG59XG5mdW5jdGlvbiBfVmlld19UYWJsZUNvbXBvbmVudF8xXzE0KCk6dm9pZCB7XG4gIGlmIChfZGVjbDBfNjIuc291cmNlLmxlbmd0aCkge1xuICAgIHZhciBfYW55OmFueSA9IChudWxsIGFzIGFueSk7XG4gICAgY29uc3QgY3VyclZhbF8wOmFueSA9IF9kZWNsMF82Mi5zb3VyY2U7XG4gICAgY3VyclZhbF8wO1xuICB9XG59XG5mdW5jdGlvbiBfVmlld19UYWJsZUNvbXBvbmVudF8xXzIyKCk6dm9pZCB7XG4gIGlmICghX2RlY2wwXzYyLnByb2dyZXNzLmxvYWRpbmcpIHtcbiAgICB2YXIgX2FueTphbnkgPSAobnVsbCBhcyBhbnkpO1xuICAgIGNvbnN0IGN1cnJWYWxfMDphbnkgPSAoISFfZGVjbDBfNjIucm93QWN0aW9uc1RlbXBsYXRlPyAoX2RlY2wwXzYyLmNvbHVtbnMubGVuZ3RoICsgMSk6IF9kZWNsMF82Mi5jb2x1bW5zLmxlbmd0aCk7XG4gICAgY3VyclZhbF8wO1xuICAgIGNvbnN0IGN1cnJWYWxfMTphbnkgPSBfZGVjbDBfNjIudWkuaWNvbnMubmV1dHJhbDtcbiAgICBjdXJyVmFsXzE7XG4gICAgY29uc3QgY3VyclZhbF8yOmFueSA9IF9kZWNsMF8zNy5ob3N0O1xuICAgIGN1cnJWYWxfMjtcbiAgICBjb25zdCBjdXJyVmFsXzM6YW55ID0gX2RlY2wwXzM3Ll9zaXplO1xuICAgIGN1cnJWYWxfMztcbiAgICBjb25zdCBjdXJyVmFsXzQ6YW55ID0gX2RlY2wwXzM3Ll9pY29uO1xuICAgIGN1cnJWYWxfNDtcbiAgICBjb25zdCBjdXJyVmFsXzU6YW55ID0gX2RlY2wwXzM3LnR5cGU7XG4gICAgY3VyclZhbF81O1xuICAgIGNvbnN0IGN1cnJWYWxfNjphbnkgPSBfZGVjbDBfMzcudGFncztcbiAgICBjdXJyVmFsXzY7XG4gIH1cbn1cbmZ1bmN0aW9uIF9WaWV3X1RhYmxlQ29tcG9uZW50XzFfMjMoKTp2b2lkIHtcbiAgdmFyIF9hbnk6YW55ID0gKG51bGwgYXMgYW55KTtcbiAgY29uc3QgY3VyclZhbF8wOmFueSA9ICghIV9kZWNsMF82Mi5yb3dBY3Rpb25zVGVtcGxhdGU/IChfZGVjbDBfNjIuY29sdW1ucy5sZW5ndGggKyAxKTogX2RlY2wwXzYyLmNvbHVtbnMubGVuZ3RoKTtcbiAgY3VyclZhbF8wO1xuICBjb25zdCBjdXJyVmFsXzE6YW55ID0gNDtcbiAgY3VyclZhbF8xO1xuICBjb25zdCBjdXJyVmFsXzI6YW55ID0gX2RlY2wwXzQ0Lmhvc3Q7XG4gIGN1cnJWYWxfMjtcbiAgY29uc3QgY3VyclZhbF8zOmFueSA9IF9kZWNsMF80NC5fc2l6ZTtcbiAgY3VyclZhbF8zO1xuICBjb25zdCBjdXJyVmFsXzQ6YW55ID0gX2RlY2wwXzQ0LnR5cGU7XG4gIGN1cnJWYWxfNDtcbiAgY29uc3QgY3VyclZhbF81OmFueSA9IF9kZWNsMF80NC5hbmltYXRlZDtcbiAgY3VyclZhbF81O1xufVxuZnVuY3Rpb24gX1ZpZXdfVGFibGVDb21wb25lbnRfMV8yMSgpOnZvaWQge1xuICB2YXIgX2FueTphbnkgPSAobnVsbCBhcyBhbnkpO1xuICBjb25zdCBjdXJyVmFsXzA6YW55ID0gIV9kZWNsMF82Mi5wcm9ncmVzcy5sb2FkaW5nO1xuICBjdXJyVmFsXzA7XG4gIGNvbnN0IGN1cnJWYWxfMTphbnkgPSBfZGVjbDBfMTAwO1xuICBjdXJyVmFsXzE7XG59XG5mdW5jdGlvbiBfVmlld19UYWJsZUNvbXBvbmVudF8xXzkoKTp2b2lkIHtcbiAgdmFyIF9hbnk6YW55ID0gKG51bGwgYXMgYW55KTtcbiAgY29uc3QgY3VyclZhbF8wOmFueSA9IChfZGVjbDBfNjIuc291cmNlLmxlbmd0aCAmJiBfZGVjbDBfNjIucHJvZ3Jlc3MubG9hZGluZyk7XG4gIGN1cnJWYWxfMDtcbiAgY29uc3QgY3VyclZhbF8xOmFueSA9ICEhX2RlY2wwXzYyLnJvd0FjdGlvbnNUZW1wbGF0ZTtcbiAgY3VyclZhbF8xO1xuICBjb25zdCBjdXJyVmFsXzI6YW55ID0gX2RlY2wwXzYyLmNvbHVtbnM7XG4gIGN1cnJWYWxfMjtcbiAgY29uc3QgY3VyclZhbF8zOmFueSA9IF9kZWNsMF82Mi5zb3VyY2UubGVuZ3RoO1xuICBjdXJyVmFsXzM7XG4gIGNvbnN0IGN1cnJWYWxfNDphbnkgPSBfZGVjbDBfMTAwO1xuICBjdXJyVmFsXzQ7XG59XG5mdW5jdGlvbiBfVmlld19UYWJsZUNvbXBvbmVudF8xXzI2KCk6dm9pZCB7XG4gIGlmICgoKF9kZWNsMF83OS50cmFuc2Zvcm0oX2RlY2wwXzYyLmZlYXR1cmVzLF9kZWNsMF82Mi51aS5mZWF0dXJlLnJlbG9hZCkgfHwgISFfZGVjbDBfNjIuYWN0aW9uc1RlbXBsYXRlKSAmJiBfZGVjbDBfNzkudHJhbnNmb3JtKF9kZWNsMF82Mi5mZWF0dXJlcyxcbiAgICAgIF9kZWNsMF82Mi51aS5mZWF0dXJlLnJlbG9hZCkpKSB7XG4gICAgdmFyIF9hbnk6YW55ID0gKG51bGwgYXMgYW55KTtcbiAgICBjb25zdCBjdXJyVmFsXzA6YW55ID0gKF9kZWNsMF82Mi5wcm9ncmVzcy5sb2FkaW5nPyBfZGVjbDBfNjIudWkuaWNvbnMuYW5pbWF0ZWQucmVsb2FkOiBfZGVjbDBfNjIudWkuaWNvbnMucmVsb2FkKTtcbiAgICBjdXJyVmFsXzA7XG4gICAgY29uc3QgY3VyclZhbF8xOmFueSA9IF9kZWNsMF82Mi51aS5vdXRsaW5lLnRyYW5zcGFyZW50O1xuICAgIGN1cnJWYWxfMTtcbiAgICBjb25zdCBjdXJyVmFsXzI6YW55ID0gX2RlY2wwXzYyLnByb2dyZXNzLmxvYWRpbmc7XG4gICAgY3VyclZhbF8yO1xuICAgIGNvbnN0IGN1cnJWYWxfMzphbnkgPSBfZGVjbDBfODIudHJhbnNmb3JtKCdhY3Rpb24ucmVsb2FkJyk7XG4gICAgY3VyclZhbF8zO1xuICAgIGNvbnN0IGN1cnJWYWxfNDphbnkgPSBfZGVjbDBfNDAuaG9zdDtcbiAgICBjdXJyVmFsXzQ7XG4gICAgY29uc3QgY3VyclZhbF81OmFueSA9IF9kZWNsMF80MC5fc2NoZW1lO1xuICAgIGN1cnJWYWxfNTtcbiAgICBjb25zdCBjdXJyVmFsXzY6YW55ID0gX2RlY2wwXzQwLl9zaXplO1xuICAgIGN1cnJWYWxfNjtcbiAgICBjb25zdCBjdXJyVmFsXzc6YW55ID0gX2RlY2wwXzQwLl9vdXRsaW5lO1xuICAgIGN1cnJWYWxfNztcbiAgICBjb25zdCBjdXJyVmFsXzg6YW55ID0gX2RlY2wwXzQwLl93aWR0aDtcbiAgICBjdXJyVmFsXzg7XG4gICAgY29uc3QgY3VyclZhbF85OmFueSA9IF9kZWNsMF80MC5fc2hhcGU7XG4gICAgY3VyclZhbF85O1xuICAgIGNvbnN0IGN1cnJWYWxfMTA6YW55ID0gX2RlY2wwXzQwLmxvYWRpbmc7XG4gICAgY3VyclZhbF8xMDtcbiAgICBjb25zdCBjdXJyVmFsXzExOmFueSA9IF9kZWNsMF80MC53aXRoVGV4dDtcbiAgICBjdXJyVmFsXzExO1xuICAgIGNvbnN0IGN1cnJWYWxfMTI6YW55ID0gX2RlY2wwXzQwLmRpc2FibGU7XG4gICAgY3VyclZhbF8xMjtcbiAgICBfZGVjbDBfNjIubG9hZCgpO1xuICAgIGNvbnN0IHBkXzEzOmFueSA9ICgoPGFueT5fZGVjbDBfNjIucmVsb2FkZWQuZW1pdCgpKSAhPT0gZmFsc2UpO1xuICB9XG59XG5mdW5jdGlvbiBfVmlld19UYWJsZUNvbXBvbmVudF8xXzI4KCk6dm9pZCB7XG4gIGlmICgoKF9kZWNsMF83OS50cmFuc2Zvcm0oX2RlY2wwXzYyLmZlYXR1cmVzLF9kZWNsMF82Mi51aS5mZWF0dXJlLnJlbG9hZCkgfHwgISFfZGVjbDBfNjIuYWN0aW9uc1RlbXBsYXRlKSAmJiAhIV9kZWNsMF82Mi5hY3Rpb25zVGVtcGxhdGUpKSB7IHZhciBfYW55OmFueSA9IChudWxsIGFzIGFueSk7IH1cbn1cbmZ1bmN0aW9uIF9WaWV3X1RhYmxlQ29tcG9uZW50XzFfMjcoKTp2b2lkIHtcbiAgaWYgKCgoX2RlY2wwXzc5LnRyYW5zZm9ybShfZGVjbDBfNjIuZmVhdHVyZXMsX2RlY2wwXzYyLnVpLmZlYXR1cmUucmVsb2FkKSB8fCAhIV9kZWNsMF82Mi5hY3Rpb25zVGVtcGxhdGUpICYmICEhX2RlY2wwXzYyLmFjdGlvbnNUZW1wbGF0ZSkpIHtcbiAgICB2YXIgX2FueTphbnkgPSAobnVsbCBhcyBhbnkpO1xuICAgIGNvbnN0IGN1cnJWYWxfMDphbnkgPSBfZGVjbDBfNjIudWkub3JpZW50YXRpb24uaG9yaXpvbnRhbDtcbiAgICBjdXJyVmFsXzA7XG4gICAgY29uc3QgY3VyclZhbF8xOmFueSA9IF9kZWNsMF82Mi51aS53cmFwLndyYXA7XG4gICAgY3VyclZhbF8xO1xuICAgIGNvbnN0IGN1cnJWYWxfMjphbnkgPSBfZGVjbDBfNDMuaG9zdDtcbiAgICBjdXJyVmFsXzI7XG4gICAgY29uc3QgY3VyclZhbF8zOmFueSA9IF9kZWNsMF80My5fb3JpZW50YXRpb247XG4gICAgY3VyclZhbF8zO1xuICAgIGNvbnN0IGN1cnJWYWxfNDphbnkgPSBfZGVjbDBfNDMuX2d1dHRlcjtcbiAgICBjdXJyVmFsXzQ7XG4gICAgY29uc3QgY3VyclZhbF81OmFueSA9IF9kZWNsMF80My5fc3BhY2luZztcbiAgICBjdXJyVmFsXzU7XG4gICAgY29uc3QgY3VyclZhbF82OmFueSA9IF9kZWNsMF80My5fcGFkZGluZztcbiAgICBjdXJyVmFsXzY7XG4gICAgY29uc3QgY3VyclZhbF83OmFueSA9IF9kZWNsMF80My5fYWxpZ247XG4gICAgY3VyclZhbF83O1xuICAgIGNvbnN0IGN1cnJWYWxfODphbnkgPSBfZGVjbDBfNDMuX2p1c3RpZnk7XG4gICAgY3VyclZhbF84O1xuICAgIGNvbnN0IGN1cnJWYWxfOTphbnkgPSBfZGVjbDBfNDMuX3dyYXA7XG4gICAgY3VyclZhbF85O1xuICAgIGNvbnN0IGN1cnJWYWxfMTA6YW55ID0gX2RlY2wwXzYyLmFjdGlvbnNUZW1wbGF0ZTtcbiAgICBjdXJyVmFsXzEwO1xuICB9XG59XG5mdW5jdGlvbiBfVmlld19UYWJsZUNvbXBvbmVudF8xXzI1KCk6dm9pZCB7XG4gIGlmICgoX2RlY2wwXzc5LnRyYW5zZm9ybShfZGVjbDBfNjIuZmVhdHVyZXMsX2RlY2wwXzYyLnVpLmZlYXR1cmUucmVsb2FkKSB8fCAhIV9kZWNsMF82Mi5hY3Rpb25zVGVtcGxhdGUpKSB7XG4gICAgdmFyIF9hbnk6YW55ID0gKG51bGwgYXMgYW55KTtcbiAgICBjb25zdCBjdXJyVmFsXzA6YW55ID0gX2RlY2wwXzYyLnVpLm9yaWVudGF0aW9uLmhvcml6b250YWw7XG4gICAgY3VyclZhbF8wO1xuICAgIGNvbnN0IGN1cnJWYWxfMTphbnkgPSBfZGVjbDBfNjIudWkud3JhcC53cmFwO1xuICAgIGN1cnJWYWxfMTtcbiAgICBjb25zdCBjdXJyVmFsXzI6YW55ID0gX2RlY2wwXzQzLmhvc3Q7XG4gICAgY3VyclZhbF8yO1xuICAgIGNvbnN0IGN1cnJWYWxfMzphbnkgPSBfZGVjbDBfNDMuX29yaWVudGF0aW9uO1xuICAgIGN1cnJWYWxfMztcbiAgICBjb25zdCBjdXJyVmFsXzQ6YW55ID0gX2RlY2wwXzQzLl9ndXR0ZXI7XG4gICAgY3VyclZhbF80O1xuICAgIGNvbnN0IGN1cnJWYWxfNTphbnkgPSBfZGVjbDBfNDMuX3NwYWNpbmc7XG4gICAgY3VyclZhbF81O1xuICAgIGNvbnN0IGN1cnJWYWxfNjphbnkgPSBfZGVjbDBfNDMuX3BhZGRpbmc7XG4gICAgY3VyclZhbF82O1xuICAgIGNvbnN0IGN1cnJWYWxfNzphbnkgPSBfZGVjbDBfNDMuX2FsaWduO1xuICAgIGN1cnJWYWxfNztcbiAgICBjb25zdCBjdXJyVmFsXzg6YW55ID0gX2RlY2wwXzQzLl9qdXN0aWZ5O1xuICAgIGN1cnJWYWxfODtcbiAgICBjb25zdCBjdXJyVmFsXzk6YW55ID0gX2RlY2wwXzQzLl93cmFwO1xuICAgIGN1cnJWYWxfOTtcbiAgICBjb25zdCBjdXJyVmFsXzEwOmFueSA9IF9kZWNsMF83OS50cmFuc2Zvcm0oX2RlY2wwXzYyLmZlYXR1cmVzLF9kZWNsMF82Mi51aS5mZWF0dXJlLnJlbG9hZCk7XG4gICAgY3VyclZhbF8xMDtcbiAgICBjb25zdCBjdXJyVmFsXzExOmFueSA9ICEhX2RlY2wwXzYyLmFjdGlvbnNUZW1wbGF0ZTtcbiAgICBjdXJyVmFsXzExO1xuICB9XG59XG5mdW5jdGlvbiBfVmlld19UYWJsZUNvbXBvbmVudF8xXzI5KCk6dm9pZCB7XG4gIGlmIChfZGVjbDBfNzkudHJhbnNmb3JtKF9kZWNsMF82Mi5mZWF0dXJlcyxfZGVjbDBfNjIudWkuZmVhdHVyZS5zZWFyY2gpKSB7XG4gICAgdmFyIF9hbnk6YW55ID0gKG51bGwgYXMgYW55KTtcbiAgICBjb25zdCBjdXJyVmFsXzA6YW55ID0gX2RlY2wwXzYyLnVpLmljb25zLnNlYXJjaDtcbiAgICBjdXJyVmFsXzA7XG4gICAgY29uc3QgY3VyclZhbF8xOmFueSA9IF9kZWNsMF84Mi50cmFuc2Zvcm0oJ2xhYmVsLnNlYXJjaCcpO1xuICAgIGN1cnJWYWxfMTtcbiAgICBjb25zdCBjdXJyVmFsXzI6YW55ID0gW19kZWNsMF82Mi51aS5mZWF0dXJlLmFsbG93RW1wdHldO1xuICAgIGN1cnJWYWxfMjtcbiAgICBjb25zdCBjdXJyVmFsXzM6YW55ID0gX2RlY2wwXzM4Lmhvc3Q7XG4gICAgY3VyclZhbF8zO1xuICAgIGNvbnN0IGN1cnJWYWxfNDphbnkgPSBfZGVjbDBfMzguZm9jdXNlZDtcbiAgICBjdXJyVmFsXzQ7XG4gICAgY29uc3QgY3VyclZhbF81OmFueSA9IF9kZWNsMF8zOC5kaXNhYmxlZDtcbiAgICBjdXJyVmFsXzU7XG4gICAgY29uc3QgY3VyclZhbF82OmFueSA9IF9kZWNsMF8zOC5fc2NoZW1lO1xuICAgIGN1cnJWYWxfNjtcbiAgICBjb25zdCBjdXJyVmFsXzc6YW55ID0gX2RlY2wwXzM4Ll9zaXplO1xuICAgIGN1cnJWYWxfNztcbiAgICBjb25zdCBjdXJyVmFsXzg6YW55ID0gX2RlY2wwXzM4Ll93aWR0aDtcbiAgICBjdXJyVmFsXzg7XG4gICAgY29uc3QgY3VyclZhbF85OmFueSA9IF9kZWNsMF8zOC53aXRoSWNvbjtcbiAgICBjdXJyVmFsXzk7XG4gICAgY29uc3QgY3VyclZhbF8xMDphbnkgPSBfZGVjbDBfMzgudGV4dEFsaWduO1xuICAgIGN1cnJWYWxfMTA7XG4gICAgY29uc3QgY3VyclZhbF8xMTphbnkgPSBfZGVjbDBfMzguc3RhdGU7XG4gICAgY3VyclZhbF8xMTtcbiAgICBjb25zdCBjdXJyVmFsXzEyOmFueSA9IF9kZWNsMF8zOC5mZWF0dXJlcztcbiAgICBjdXJyVmFsXzEyO1xuICAgIGNvbnN0IGN1cnJWYWxfMTM6YW55ID0gX2RlY2wwXzM4LnRhYmluZGV4O1xuICAgIGN1cnJWYWxfMTM7XG4gICAgY29uc3QgY3VyclZhbF8xNDphbnkgPSAncSc7XG4gICAgY3VyclZhbF8xNDtcbiAgICBjb25zdCBjdXJyVmFsXzE1OmFueSA9IF9kZWNsMF8yMS5uZ0NsYXNzVW50b3VjaGVkO1xuICAgIGN1cnJWYWxfMTU7XG4gICAgY29uc3QgY3VyclZhbF8xNjphbnkgPSBfZGVjbDBfMjEubmdDbGFzc1RvdWNoZWQ7XG4gICAgY3VyclZhbF8xNjtcbiAgICBjb25zdCBjdXJyVmFsXzE3OmFueSA9IF9kZWNsMF8yMS5uZ0NsYXNzUHJpc3RpbmU7XG4gICAgY3VyclZhbF8xNztcbiAgICBjb25zdCBjdXJyVmFsXzE4OmFueSA9IF9kZWNsMF8yMS5uZ0NsYXNzRGlydHk7XG4gICAgY3VyclZhbF8xODtcbiAgICBjb25zdCBjdXJyVmFsXzE5OmFueSA9IF9kZWNsMF8yMS5uZ0NsYXNzVmFsaWQ7XG4gICAgY3VyclZhbF8xOTtcbiAgICBjb25zdCBjdXJyVmFsXzIwOmFueSA9IF9kZWNsMF8yMS5uZ0NsYXNzSW52YWxpZDtcbiAgICBjdXJyVmFsXzIwO1xuICAgIGNvbnN0IGN1cnJWYWxfMjE6YW55ID0gX2RlY2wwXzIxLm5nQ2xhc3NQZW5kaW5nO1xuICAgIGN1cnJWYWxfMjE7XG4gICAgY29uc3QgcGRfMjI6YW55ID0gKCg8YW55Pl9kZWNsMF8zOC5vbkJsdXIoKSkgIT09IGZhbHNlKTtcbiAgfVxufVxuZnVuY3Rpb24gX1ZpZXdfVGFibGVDb21wb25lbnRfMV8zMSgpOnZvaWQge1xuICBpZiAoISFfZGVjbDBfNjIuZmlsdGVyc1RlbXBsYXRlKSB7IHZhciBfYW55OmFueSA9IChudWxsIGFzIGFueSk7IH1cbn1cbmZ1bmN0aW9uIF9WaWV3X1RhYmxlQ29tcG9uZW50XzFfMzAoKTp2b2lkIHtcbiAgaWYgKCEhX2RlY2wwXzYyLmZpbHRlcnNUZW1wbGF0ZSkge1xuICAgIHZhciBfYW55OmFueSA9IChudWxsIGFzIGFueSk7XG4gICAgY29uc3QgY3VyclZhbF8wOmFueSA9IF9kZWNsMF82Mi5maWx0ZXJzVGVtcGxhdGU7XG4gICAgY3VyclZhbF8wO1xuICB9XG59XG5mdW5jdGlvbiBfVmlld19UYWJsZUNvbXBvbmVudF8xXzMzKCk6dm9pZCB7XG4gIGlmICghX2RlY2wwXzYyLnByb2dyZXNzLmxvYWRpbmcpIHtcbiAgICB2YXIgX2FueTphbnkgPSAobnVsbCBhcyBhbnkpO1xuICAgIGNvbnN0IGN1cnJWYWxfMDphbnkgPSBfZGVjbDBfNjIudWkuYWxpZ24uY2VudGVyO1xuICAgIGN1cnJWYWxfMDtcbiAgICBjb25zdCBjdXJyVmFsXzE6YW55ID0gX2RlY2wwXzQzLmhvc3Q7XG4gICAgY3VyclZhbF8xO1xuICAgIGNvbnN0IGN1cnJWYWxfMjphbnkgPSBfZGVjbDBfNDMuX29yaWVudGF0aW9uO1xuICAgIGN1cnJWYWxfMjtcbiAgICBjb25zdCBjdXJyVmFsXzM6YW55ID0gX2RlY2wwXzQzLl9ndXR0ZXI7XG4gICAgY3VyclZhbF8zO1xuICAgIGNvbnN0IGN1cnJWYWxfNDphbnkgPSBfZGVjbDBfNDMuX3NwYWNpbmc7XG4gICAgY3VyclZhbF80O1xuICAgIGNvbnN0IGN1cnJWYWxfNTphbnkgPSBfZGVjbDBfNDMuX3BhZGRpbmc7XG4gICAgY3VyclZhbF81O1xuICAgIGNvbnN0IGN1cnJWYWxfNjphbnkgPSBfZGVjbDBfNDMuX2FsaWduO1xuICAgIGN1cnJWYWxfNjtcbiAgICBjb25zdCBjdXJyVmFsXzc6YW55ID0gX2RlY2wwXzQzLl9qdXN0aWZ5O1xuICAgIGN1cnJWYWxfNztcbiAgICBjb25zdCBjdXJyVmFsXzg6YW55ID0gX2RlY2wwXzQzLl93cmFwO1xuICAgIGN1cnJWYWxfODtcbiAgICBjb25zdCBjdXJyVmFsXzk6YW55ID0gX2RlY2wwXzYyLnVpLmljb25zLm5ldXRyYWw7XG4gICAgY3VyclZhbF85O1xuICAgIGNvbnN0IGN1cnJWYWxfMTA6YW55ID0gX2RlY2wwXzM3Lmhvc3Q7XG4gICAgY3VyclZhbF8xMDtcbiAgICBjb25zdCBjdXJyVmFsXzExOmFueSA9IF9kZWNsMF8zNy5fc2l6ZTtcbiAgICBjdXJyVmFsXzExO1xuICAgIGNvbnN0IGN1cnJWYWxfMTI6YW55ID0gX2RlY2wwXzM3Ll9pY29uO1xuICAgIGN1cnJWYWxfMTI7XG4gICAgY29uc3QgY3VyclZhbF8xMzphbnkgPSBfZGVjbDBfMzcudHlwZTtcbiAgICBjdXJyVmFsXzEzO1xuICAgIGNvbnN0IGN1cnJWYWxfMTQ6YW55ID0gX2RlY2wwXzM3LnRhZ3M7XG4gICAgY3VyclZhbF8xNDtcbiAgfVxufVxuZnVuY3Rpb24gX1ZpZXdfVGFibGVDb21wb25lbnRfMV8zNSgpOnZvaWQge1xuICB2YXIgX2FueTphbnkgPSAobnVsbCBhcyBhbnkpO1xuICBjb25zdCBjdXJyVmFsXzA6YW55ID0gX2RlY2wwXzYyLnVpLnNrZWxldG9uLnR5cGUuY2FyZDtcbiAgY3VyclZhbF8wO1xuICBjb25zdCBjdXJyVmFsXzE6YW55ID0gX2RlY2wwXzQ0Lmhvc3Q7XG4gIGN1cnJWYWxfMTtcbiAgY29uc3QgY3VyclZhbF8yOmFueSA9IF9kZWNsMF80NC5fc2l6ZTtcbiAgY3VyclZhbF8yO1xuICBjb25zdCBjdXJyVmFsXzM6YW55ID0gX2RlY2wwXzQ0LnR5cGU7XG4gIGN1cnJWYWxfMztcbiAgY29uc3QgY3VyclZhbF80OmFueSA9IF9kZWNsMF80NC5hbmltYXRlZDtcbiAgY3VyclZhbF80O1xufVxuZnVuY3Rpb24gX1ZpZXdfVGFibGVDb21wb25lbnRfMV8zNCgpOnZvaWQge1xuICB2YXIgX2FueTphbnkgPSAobnVsbCBhcyBhbnkpO1xuICBjb25zdCBjdXJyVmFsXzA6YW55ID0gX2RlY2wwXzc3LnRyYW5zZm9ybSg1KTtcbiAgY3VyclZhbF8wO1xufVxuZnVuY3Rpb24gX1ZpZXdfVGFibGVDb21wb25lbnRfMV8zMigpOnZvaWQge1xuICB2YXIgX2FueTphbnkgPSAobnVsbCBhcyBhbnkpO1xuICBjb25zdCBjdXJyVmFsXzA6YW55ID0gIV9kZWNsMF82Mi5wcm9ncmVzcy5sb2FkaW5nO1xuICBjdXJyVmFsXzA7XG4gIGNvbnN0IGN1cnJWYWxfMTphbnkgPSBfZGVjbDBfMTAwO1xuICBjdXJyVmFsXzE7XG59XG5mdW5jdGlvbiBfVmlld19UYWJsZUNvbXBvbmVudF8xXzM2KCk6dm9pZCB7XG4gIGlmICgoX2RlY2wwXzYyLnNvdXJjZS5sZW5ndGggJiYgX2RlY2wwXzYyLnByb2dyZXNzLmxvYWRpbmcpKSB7XG4gICAgdmFyIF9hbnk6YW55ID0gKG51bGwgYXMgYW55KTtcbiAgICBjb25zdCBjdXJyVmFsXzA6YW55ID0gX2RlY2wwXzYyLnVpLnNpemUubGFyZ2U7XG4gICAgY3VyclZhbF8wO1xuICAgIGNvbnN0IGN1cnJWYWxfMTphbnkgPSBfZGVjbDBfNDIuaG9zdDtcbiAgICBjdXJyVmFsXzE7XG4gICAgY29uc3QgY3VyclZhbF8yOmFueSA9IF9kZWNsMF80Mi5fc2l6ZTtcbiAgICBjdXJyVmFsXzI7XG4gIH1cbn1cbmZ1bmN0aW9uIF9WaWV3X1RhYmxlQ29tcG9uZW50XzFfNDAoKTp2b2lkIHtcbiAgaWYgKChfZGVjbDBfNjIuc291cmNlLmxlbmd0aCAmJiAhIV9hbnkudGl0bGUpKSB7XG4gICAgdmFyIF9hbnk6YW55ID0gKG51bGwgYXMgYW55KTtcbiAgICBjb25zdCBjdXJyVmFsXzA6YW55ID0gX2FueS50aXRsZTtcbiAgICBjdXJyVmFsXzA7XG4gIH1cbn1cbmZ1bmN0aW9uIF9WaWV3X1RhYmxlQ29tcG9uZW50XzFfNDEoKTp2b2lkIHtcbiAgaWYgKF9kZWNsMF82Mi5zb3VyY2UubGVuZ3RoKSB7IHZhciBfYW55OmFueSA9IChudWxsIGFzIGFueSk7IH1cbn1cbmZ1bmN0aW9uIF9WaWV3X1RhYmxlQ29tcG9uZW50XzFfMzkoKTp2b2lkIHtcbiAgaWYgKF9kZWNsMF82Mi5zb3VyY2UubGVuZ3RoKSB7XG4gICAgdmFyIF9hbnk6YW55ID0gKG51bGwgYXMgYW55KTtcbiAgICBjb25zdCBjdXJyVmFsXzA6YW55ID0gISFfYW55LnRpdGxlO1xuICAgIGN1cnJWYWxfMDtcbiAgICBjb25zdCBjdXJyVmFsXzE6YW55ID0gX2FueTtcbiAgICBjdXJyVmFsXzE7XG4gICAgY29uc3QgY3VyclZhbF8yOmFueSA9IF9hbnkudGFibGVDZWxsVGVtcGxhdGU7XG4gICAgY3VyclZhbF8yO1xuICB9XG59XG5mdW5jdGlvbiBfVmlld19UYWJsZUNvbXBvbmVudF8xXzQ0KCk6dm9pZCB7XG4gIGlmICgoX2RlY2wwXzYyLnNvdXJjZS5sZW5ndGggJiYgISFfZGVjbDBfNjIucm93QWN0aW9uc1RlbXBsYXRlKSkgeyB2YXIgX2FueTphbnkgPSAobnVsbCBhcyBhbnkpOyB9XG59XG5mdW5jdGlvbiBfVmlld19UYWJsZUNvbXBvbmVudF8xXzQzKCk6dm9pZCB7XG4gIGlmICgoX2RlY2wwXzYyLnNvdXJjZS5sZW5ndGggJiYgISFfZGVjbDBfNjIucm93QWN0aW9uc1RlbXBsYXRlKSkge1xuICAgIHZhciBfYW55OmFueSA9IChudWxsIGFzIGFueSk7XG4gICAgY29uc3QgY3VyclZhbF8wOmFueSA9IHtyb3c6X2FueSxoaWRlOl9kZWNsMF82Mi5oaWRlQWN0aW9ucy5iaW5kKF9kZWNsMF82Mil9O1xuICAgIGN1cnJWYWxfMDtcbiAgICBjb25zdCBjdXJyVmFsXzE6YW55ID0gX2RlY2wwXzYyLnJvd0FjdGlvbnNUZW1wbGF0ZTtcbiAgICBjdXJyVmFsXzE7XG4gIH1cbn1cbmZ1bmN0aW9uIF9WaWV3X1RhYmxlQ29tcG9uZW50XzFfNDIoKTp2b2lkIHtcbiAgaWYgKChfZGVjbDBfNjIuc291cmNlLmxlbmd0aCAmJiAhIV9kZWNsMF82Mi5yb3dBY3Rpb25zVGVtcGxhdGUpKSB7IHZhciBfYW55OmFueSA9IChudWxsIGFzIGFueSk7IH1cbn1cbmZ1bmN0aW9uIF9WaWV3X1RhYmxlQ29tcG9uZW50XzFfMzgoKTp2b2lkIHtcbiAgaWYgKF9kZWNsMF82Mi5zb3VyY2UubGVuZ3RoKSB7XG4gICAgdmFyIF9hbnk6YW55ID0gKG51bGwgYXMgYW55KTtcbiAgICBjb25zdCBjdXJyVmFsXzA6YW55ID0gX2RlY2wwXzUwLmhvc3Q7XG4gICAgY3VyclZhbF8wO1xuICAgIGNvbnN0IGN1cnJWYWxfMTphbnkgPSBfZGVjbDBfNTAuX2hlaWdodDtcbiAgICBjdXJyVmFsXzE7XG4gICAgY29uc3QgY3VyclZhbF8yOmFueSA9IF9kZWNsMF81MC5oYXNDb2xvcjtcbiAgICBjdXJyVmFsXzI7XG4gICAgY29uc3QgY3VyclZhbF8zOmFueSA9IF9kZWNsMF81MC5oYXNBY3Rpb247XG4gICAgY3VyclZhbF8zO1xuICAgIGNvbnN0IGN1cnJWYWxfNDphbnkgPSBfZGVjbDBfNTAuX3BhZGRpbmc7XG4gICAgY3VyclZhbF80O1xuICAgIGNvbnN0IGN1cnJWYWxfNTphbnkgPSBfZGVjbDBfNTAud2lkdGg7XG4gICAgY3VyclZhbF81O1xuICAgIGNvbnN0IGN1cnJWYWxfNjphbnkgPSBfZGVjbDBfNTAuZmVhdHVyZXM7XG4gICAgY3VyclZhbF82O1xuICAgIGNvbnN0IGN1cnJWYWxfNzphbnkgPSBfZGVjbDBfNjIuY29sdW1ucztcbiAgICBjdXJyVmFsXzc7XG4gICAgY29uc3QgY3VyclZhbF84OmFueSA9ICEhX2RlY2wwXzYyLnJvd0FjdGlvbnNUZW1wbGF0ZTtcbiAgICBjdXJyVmFsXzg7XG4gIH1cbn1cbmZ1bmN0aW9uIF9WaWV3X1RhYmxlQ29tcG9uZW50XzFfMzcoKTp2b2lkIHtcbiAgaWYgKF9kZWNsMF82Mi5zb3VyY2UubGVuZ3RoKSB7XG4gICAgdmFyIF9hbnk6YW55ID0gKG51bGwgYXMgYW55KTtcbiAgICBjb25zdCBjdXJyVmFsXzA6YW55ID0gX2RlY2wwXzYyLnNvdXJjZTtcbiAgICBjdXJyVmFsXzA7XG4gIH1cbn1cbmZ1bmN0aW9uIF9WaWV3X1RhYmxlQ29tcG9uZW50XzFfMjQoKTp2b2lkIHtcbiAgdmFyIF9hbnk6YW55ID0gKG51bGwgYXMgYW55KTtcbiAgY29uc3QgY3VyclZhbF8wOmFueSA9IF9kZWNsMF82Mi51aS5hbGlnbi5zdHJldGNoO1xuICBjdXJyVmFsXzA7XG4gIGNvbnN0IGN1cnJWYWxfMTphbnkgPSBfZGVjbDBfNDMuaG9zdDtcbiAgY3VyclZhbF8xO1xuICBjb25zdCBjdXJyVmFsXzI6YW55ID0gX2RlY2wwXzQzLl9vcmllbnRhdGlvbjtcbiAgY3VyclZhbF8yO1xuICBjb25zdCBjdXJyVmFsXzM6YW55ID0gX2RlY2wwXzQzLl9ndXR0ZXI7XG4gIGN1cnJWYWxfMztcbiAgY29uc3QgY3VyclZhbF80OmFueSA9IF9kZWNsMF80My5fc3BhY2luZztcbiAgY3VyclZhbF80O1xuICBjb25zdCBjdXJyVmFsXzU6YW55ID0gX2RlY2wwXzQzLl9wYWRkaW5nO1xuICBjdXJyVmFsXzU7XG4gIGNvbnN0IGN1cnJWYWxfNjphbnkgPSBfZGVjbDBfNDMuX2FsaWduO1xuICBjdXJyVmFsXzY7XG4gIGNvbnN0IGN1cnJWYWxfNzphbnkgPSBfZGVjbDBfNDMuX2p1c3RpZnk7XG4gIGN1cnJWYWxfNztcbiAgY29uc3QgY3VyclZhbF84OmFueSA9IF9kZWNsMF80My5fd3JhcDtcbiAgY3VyclZhbF84O1xuICBjb25zdCBjdXJyVmFsXzk6YW55ID0gX2RlY2wwXzYyLnVpLmFsaWduLnN0cmV0Y2g7XG4gIGN1cnJWYWxfOTtcbiAgY29uc3QgY3VyclZhbF8xMDphbnk