@hitsoft/uretim-yonetimi 1.0.30 → 1.0.31

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -241,12 +241,12 @@ export class HitBoilerYMProductWasteComponent {
241
241
  }
242
242
  }
243
243
  HitBoilerYMProductWasteComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: HitBoilerYMProductWasteComponent, deps: [{ token: i1.HitBoilerYMProductWasteService }, { token: i2.ConfirmationService }, { token: i0.NgZone }, { token: i3.HitProductionOrdersService }, { token: i4.HitFillingControlService }], target: i0.ɵɵFactoryTarget.Component });
244
- HitBoilerYMProductWasteComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.3.0", type: HitBoilerYMProductWasteComponent, selector: "lib-hit-boiler-ym-product-waste", viewQueries: [{ propertyName: "nmbBoxBarkodNumarasi", first: true, predicate: ["barkodNumarasiRef"], descendants: true }], ngImport: i0, template: "<abp-page [breadcrumb]=\"false\">\r\n <abp-page-toolbar-container class=\"col\">\r\n <div class=\"row\">\r\n <h3 class=\"page-title\">\r\n {{ 'UretimYonetimi::BoilerYMProductWaste.Title' | abpLocalization }}\r\n </h3>\r\n </div>\r\n <div class=\"row pt-2 g-2\">\r\n <div class=\"col-12 col-md-6 col-lg-3\">\r\n <button class=\"btn btn-success btn-sm w-100\" type=\"button\" (click)=\"save()\"\r\n [disabled]=\"!isEmriBarkoduGecerliMi || isSaving\">\r\n <i class=\"fa fa-save me-1\"></i>\r\n {{ 'UretimYonetimi::BoilerYMProductWaste.Save' | abpLocalization }}\r\n </button>\r\n </div>\r\n <div class=\"col-12 col-md-6 col-lg-3\">\r\n <button class=\"btn btn-primary btn-sm w-100\" type=\"button\" (click)=\"finishWorkOrderAndSaveWaste()\"\r\n [disabled]=\"!isEmriBarkoduGecerliMi || isSaving\">\r\n <i class=\"fa fa-check-double me-1\"></i>\r\n \u0130\u015F Emrini Bitir ve Fireyi Kaydet\r\n </button>\r\n </div>\r\n <div class=\"col-12 col-md-6 col-lg-3\">\r\n <button class=\"btn btn-info btn-sm w-100\" type=\"button\" (click)=\"finishWorkOrderWithoutSavingWaste()\"\r\n [disabled]=\"!isEmriBarkoduGecerliMi || isSaving\">\r\n <i class=\"fa fa-check me-1\"></i>\r\n \u0130\u015F Emrini Bitir ve Fireyi Kaydetme\r\n </button>\r\n </div>\r\n <div class=\"col-12 col-md-6 col-lg-3\">\r\n <button class=\"btn btn-warning btn-sm w-100\" type=\"button\" (click)=\"clearAll()\"\r\n [disabled]=\"isLoading\">\r\n <i class=\"fa fa-broom me-1\"></i>\r\n {{ 'UretimYonetimi::BoilerYMProductWaste.Clean' | abpLocalization }}\r\n </button>\r\n </div>\r\n </div>\r\n </abp-page-toolbar-container>\r\n\r\n <div class=\"card mt-2\">\r\n <div class=\"card-body\">\r\n <div style=\"display: flex; align-items: center;\">\r\n <dx-number-box #barkodNumarasiRef class=\"me-1\" style=\"width:100%;\" [min]=\"1\"\r\n [label]=\"'UretimYonetimi::BoilerYMProductWaste.WorkOrderNo' | abpLocalization\"\r\n [(value)]=\"isEmriBarkodu\" (onEnterKey)=\"getProductionOrder()\"\r\n [disabled]=\"searcheBasildiMi || isEmriBarkoduGecerliMi\">\r\n </dx-number-box>\r\n <dx-button style=\"margin-top: 7.5px;\" icon=\"search\" type=\"default\" (onClick)=\"getProductionOrder()\"\r\n [disabled]=\"searcheBasildiMi || isEmriBarkoduGecerliMi\">\r\n </dx-button>\r\n </div>\r\n <div class=\"mt-3\" *ngIf=\"isEmriBarkoduGecerliMi\">\r\n <dx-text-box style=\"width:100%;\"\r\n [label]=\"'UretimYonetimi::BoilerYMProductWaste.ConveyorInformation' | abpLocalization\"\r\n [(value)]=\"productionOrder.u_Hat\"\r\n [disabled]=\"true\">\r\n </dx-text-box>\r\n <dx-text-box style=\"width:100%;\"\r\n [label]=\"'UretimYonetimi::BoilerYMProductWaste.ProductDescription' | abpLocalization\"\r\n [(value)]=\"productionOrder.productDescription\"\r\n [disabled]=\"true\">\r\n </dx-text-box>\r\n <dx-text-box style=\"width:100%;\"\r\n [label]=\"'UretimYonetimi::BoilerYMProductWaste.BatchNumber' | abpLocalization\"\r\n [(value)]=\"ymProduct.batchNumber\"\r\n [disabled]=\"true\">\r\n </dx-text-box>\r\n <dx-text-box style=\"width:100%;\"\r\n [label]=\"'UretimYonetimi::BoilerYMProductWaste.ItemCode' | abpLocalization\"\r\n [(value)]=\"ymProduct.itemCode\"\r\n [disabled]=\"true\">\r\n </dx-text-box>\r\n <dx-number-box style=\"width:100%;\"\r\n [label]=\"'UretimYonetimi::BoilerYMProductWaste.ProductQuantity' | abpLocalization\"\r\n [(value)]=\"ymProduct.batchQuantity\"\r\n [disabled]=\"true\">\r\n </dx-number-box>\r\n </div>\r\n </div>\r\n </div>\r\n</abp-page>\r\n", styles: [":host{display:block}dx-number-box,dx-text-box{width:100%}dx-data-grid{width:100%}\n"], dependencies: [{ kind: "directive", type: i5.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i6.PageComponent, selector: "abp-page", inputs: ["title", "toolbar", "breadcrumb"] }, { kind: "component", type: i6.PageToolbarContainerComponent, selector: "abp-page-toolbar-container" }, { kind: "component", type: i7.DxTextBoxComponent, selector: "dx-text-box", inputs: ["accessKey", "activeStateEnabled", "buttons", "disabled", "elementAttr", "focusStateEnabled", "height", "hint", "hoverStateEnabled", "inputAttr", "isValid", "label", "labelMode", "mask", "maskChar", "maskInvalidMessage", "maskRules", "maxLength", "mode", "name", "placeholder", "readOnly", "rtlEnabled", "showClearButton", "showMaskMode", "spellcheck", "stylingMode", "tabIndex", "text", "useMaskedValue", "validationError", "validationErrors", "validationMessageMode", "validationMessagePosition", "validationStatus", "value", "valueChangeEvent", "visible", "width"], outputs: ["onChange", "onContentReady", "onCopy", "onCut", "onDisposing", "onEnterKey", "onFocusIn", "onFocusOut", "onInitialized", "onInput", "onKeyDown", "onKeyUp", "onOptionChanged", "onPaste", "onValueChanged", "accessKeyChange", "activeStateEnabledChange", "buttonsChange", "disabledChange", "elementAttrChange", "focusStateEnabledChange", "heightChange", "hintChange", "hoverStateEnabledChange", "inputAttrChange", "isValidChange", "labelChange", "labelModeChange", "maskChange", "maskCharChange", "maskInvalidMessageChange", "maskRulesChange", "maxLengthChange", "modeChange", "nameChange", "placeholderChange", "readOnlyChange", "rtlEnabledChange", "showClearButtonChange", "showMaskModeChange", "spellcheckChange", "stylingModeChange", "tabIndexChange", "textChange", "useMaskedValueChange", "validationErrorChange", "validationErrorsChange", "validationMessageModeChange", "validationMessagePositionChange", "validationStatusChange", "valueChange", "valueChangeEventChange", "visibleChange", "widthChange", "onBlur"] }, { kind: "component", type: i7.DxButtonComponent, selector: "dx-button", inputs: ["accessKey", "activeStateEnabled", "disabled", "elementAttr", "focusStateEnabled", "height", "hint", "hoverStateEnabled", "icon", "rtlEnabled", "stylingMode", "tabIndex", "template", "text", "type", "useSubmitBehavior", "validationGroup", "visible", "width"], outputs: ["onClick", "onContentReady", "onDisposing", "onInitialized", "onOptionChanged", "accessKeyChange", "activeStateEnabledChange", "disabledChange", "elementAttrChange", "focusStateEnabledChange", "heightChange", "hintChange", "hoverStateEnabledChange", "iconChange", "rtlEnabledChange", "stylingModeChange", "tabIndexChange", "templateChange", "textChange", "typeChange", "useSubmitBehaviorChange", "validationGroupChange", "visibleChange", "widthChange"] }, { kind: "component", type: i7.DxNumberBoxComponent, selector: "dx-number-box", inputs: ["accessKey", "activeStateEnabled", "buttons", "disabled", "elementAttr", "focusStateEnabled", "format", "height", "hint", "hoverStateEnabled", "inputAttr", "invalidValueMessage", "isValid", "label", "labelMode", "max", "min", "mode", "name", "placeholder", "readOnly", "rtlEnabled", "showClearButton", "showSpinButtons", "step", "stylingMode", "tabIndex", "text", "useLargeSpinButtons", "validationError", "validationErrors", "validationMessageMode", "validationMessagePosition", "validationStatus", "value", "valueChangeEvent", "visible", "width"], outputs: ["onChange", "onContentReady", "onCopy", "onCut", "onDisposing", "onEnterKey", "onFocusIn", "onFocusOut", "onInitialized", "onInput", "onKeyDown", "onKeyUp", "onOptionChanged", "onPaste", "onValueChanged", "accessKeyChange", "activeStateEnabledChange", "buttonsChange", "disabledChange", "elementAttrChange", "focusStateEnabledChange", "formatChange", "heightChange", "hintChange", "hoverStateEnabledChange", "inputAttrChange", "invalidValueMessageChange", "isValidChange", "labelChange", "labelModeChange", "maxChange", "minChange", "modeChange", "nameChange", "placeholderChange", "readOnlyChange", "rtlEnabledChange", "showClearButtonChange", "showSpinButtonsChange", "stepChange", "stylingModeChange", "tabIndexChange", "textChange", "useLargeSpinButtonsChange", "validationErrorChange", "validationErrorsChange", "validationMessageModeChange", "validationMessagePositionChange", "validationStatusChange", "valueChange", "valueChangeEventChange", "visibleChange", "widthChange", "onBlur"] }, { kind: "pipe", type: i8.LocalizationPipe, name: "abpLocalization" }] });
244
+ HitBoilerYMProductWasteComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.3.0", type: HitBoilerYMProductWasteComponent, selector: "lib-hit-boiler-ym-product-waste", viewQueries: [{ propertyName: "nmbBoxBarkodNumarasi", first: true, predicate: ["barkodNumarasiRef"], descendants: true }], ngImport: i0, template: "<abp-page [breadcrumb]=\"false\">\r\n <abp-page-toolbar-container class=\"col\">\r\n <div class=\"row\">\r\n <h3 class=\"page-title\">\r\n {{ 'UretimYonetimi::BoilerYMProductWaste.Title' | abpLocalization }}\r\n </h3>\r\n </div>\r\n <div class=\"row pt-2 g-2\">\r\n <div class=\"col-12 col-md-6 col-lg-3\">\r\n <button class=\"btn btn-success btn-sm w-100\" type=\"button\" (click)=\"save()\"\r\n [disabled]=\"!isEmriBarkoduGecerliMi || isSaving\">\r\n <i class=\"fa fa-save me-1\"></i>\r\n Kazan De\u011Fi\u015Fimi \u00D6ncesi Fire Giri\u015Fi\r\n </button>\r\n </div>\r\n <div class=\"col-12 col-md-6 col-lg-3\">\r\n <button class=\"btn btn-primary btn-sm w-100\" type=\"button\" (click)=\"finishWorkOrderAndSaveWaste()\"\r\n [disabled]=\"!isEmriBarkoduGecerliMi || isSaving\">\r\n <i class=\"fa fa-check-double me-1\"></i>\r\n \u0130\u015F Emrini Bitir ve Fireyi Kaydet\r\n </button>\r\n </div>\r\n <div class=\"col-12 col-md-6 col-lg-3\">\r\n <button class=\"btn btn-info btn-sm w-100\" type=\"button\" (click)=\"finishWorkOrderWithoutSavingWaste()\"\r\n [disabled]=\"!isEmriBarkoduGecerliMi || isSaving\">\r\n <i class=\"fa fa-check me-1\"></i>\r\n \u0130\u015F Emrini Bitir ve Fireyi Kaydetme\r\n </button>\r\n </div>\r\n <div class=\"col-12 col-md-6 col-lg-3\">\r\n <button class=\"btn btn-warning btn-sm w-100\" type=\"button\" (click)=\"clearAll()\"\r\n [disabled]=\"isLoading\">\r\n <i class=\"fa fa-broom me-1\"></i>\r\n {{ 'UretimYonetimi::BoilerYMProductWaste.Clean' | abpLocalization }}\r\n </button>\r\n </div>\r\n </div>\r\n </abp-page-toolbar-container>\r\n\r\n <div class=\"card mt-2\">\r\n <div class=\"card-body\">\r\n <div style=\"display: flex; align-items: center;\">\r\n <dx-number-box #barkodNumarasiRef class=\"me-1\" style=\"width:100%;\" [min]=\"1\"\r\n [label]=\"'UretimYonetimi::BoilerYMProductWaste.WorkOrderNo' | abpLocalization\"\r\n [(value)]=\"isEmriBarkodu\" (onEnterKey)=\"getProductionOrder()\"\r\n [disabled]=\"searcheBasildiMi || isEmriBarkoduGecerliMi\">\r\n </dx-number-box>\r\n <dx-button style=\"margin-top: 7.5px;\" icon=\"search\" type=\"default\" (onClick)=\"getProductionOrder()\"\r\n [disabled]=\"searcheBasildiMi || isEmriBarkoduGecerliMi\">\r\n </dx-button>\r\n </div>\r\n <div class=\"mt-3\" *ngIf=\"isEmriBarkoduGecerliMi\">\r\n <dx-text-box style=\"width:100%;\"\r\n [label]=\"'UretimYonetimi::BoilerYMProductWaste.ConveyorInformation' | abpLocalization\"\r\n [(value)]=\"productionOrder.u_Hat\"\r\n [disabled]=\"true\">\r\n </dx-text-box>\r\n <dx-text-box style=\"width:100%;\"\r\n [label]=\"'UretimYonetimi::BoilerYMProductWaste.ProductDescription' | abpLocalization\"\r\n [(value)]=\"productionOrder.productDescription\"\r\n [disabled]=\"true\">\r\n </dx-text-box>\r\n <dx-text-box style=\"width:100%;\"\r\n [label]=\"'UretimYonetimi::BoilerYMProductWaste.BatchNumber' | abpLocalization\"\r\n [(value)]=\"ymProduct.batchNumber\"\r\n [disabled]=\"true\">\r\n </dx-text-box>\r\n <dx-text-box style=\"width:100%;\"\r\n [label]=\"'UretimYonetimi::BoilerYMProductWaste.ItemCode' | abpLocalization\"\r\n [(value)]=\"ymProduct.itemCode\"\r\n [disabled]=\"true\">\r\n </dx-text-box>\r\n <dx-number-box style=\"width:100%;\"\r\n [label]=\"'UretimYonetimi::BoilerYMProductWaste.ProductQuantity' | abpLocalization\"\r\n [(value)]=\"ymProduct.batchQuantity\"\r\n [disabled]=\"true\">\r\n </dx-number-box>\r\n </div>\r\n </div>\r\n </div>\r\n</abp-page>\r\n", styles: [":host{display:block}dx-number-box,dx-text-box{width:100%}dx-data-grid{width:100%}\n"], dependencies: [{ kind: "directive", type: i5.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i6.PageComponent, selector: "abp-page", inputs: ["title", "toolbar", "breadcrumb"] }, { kind: "component", type: i6.PageToolbarContainerComponent, selector: "abp-page-toolbar-container" }, { kind: "component", type: i7.DxTextBoxComponent, selector: "dx-text-box", inputs: ["accessKey", "activeStateEnabled", "buttons", "disabled", "elementAttr", "focusStateEnabled", "height", "hint", "hoverStateEnabled", "inputAttr", "isValid", "label", "labelMode", "mask", "maskChar", "maskInvalidMessage", "maskRules", "maxLength", "mode", "name", "placeholder", "readOnly", "rtlEnabled", "showClearButton", "showMaskMode", "spellcheck", "stylingMode", "tabIndex", "text", "useMaskedValue", "validationError", "validationErrors", "validationMessageMode", "validationMessagePosition", "validationStatus", "value", "valueChangeEvent", "visible", "width"], outputs: ["onChange", "onContentReady", "onCopy", "onCut", "onDisposing", "onEnterKey", "onFocusIn", "onFocusOut", "onInitialized", "onInput", "onKeyDown", "onKeyUp", "onOptionChanged", "onPaste", "onValueChanged", "accessKeyChange", "activeStateEnabledChange", "buttonsChange", "disabledChange", "elementAttrChange", "focusStateEnabledChange", "heightChange", "hintChange", "hoverStateEnabledChange", "inputAttrChange", "isValidChange", "labelChange", "labelModeChange", "maskChange", "maskCharChange", "maskInvalidMessageChange", "maskRulesChange", "maxLengthChange", "modeChange", "nameChange", "placeholderChange", "readOnlyChange", "rtlEnabledChange", "showClearButtonChange", "showMaskModeChange", "spellcheckChange", "stylingModeChange", "tabIndexChange", "textChange", "useMaskedValueChange", "validationErrorChange", "validationErrorsChange", "validationMessageModeChange", "validationMessagePositionChange", "validationStatusChange", "valueChange", "valueChangeEventChange", "visibleChange", "widthChange", "onBlur"] }, { kind: "component", type: i7.DxButtonComponent, selector: "dx-button", inputs: ["accessKey", "activeStateEnabled", "disabled", "elementAttr", "focusStateEnabled", "height", "hint", "hoverStateEnabled", "icon", "rtlEnabled", "stylingMode", "tabIndex", "template", "text", "type", "useSubmitBehavior", "validationGroup", "visible", "width"], outputs: ["onClick", "onContentReady", "onDisposing", "onInitialized", "onOptionChanged", "accessKeyChange", "activeStateEnabledChange", "disabledChange", "elementAttrChange", "focusStateEnabledChange", "heightChange", "hintChange", "hoverStateEnabledChange", "iconChange", "rtlEnabledChange", "stylingModeChange", "tabIndexChange", "templateChange", "textChange", "typeChange", "useSubmitBehaviorChange", "validationGroupChange", "visibleChange", "widthChange"] }, { kind: "component", type: i7.DxNumberBoxComponent, selector: "dx-number-box", inputs: ["accessKey", "activeStateEnabled", "buttons", "disabled", "elementAttr", "focusStateEnabled", "format", "height", "hint", "hoverStateEnabled", "inputAttr", "invalidValueMessage", "isValid", "label", "labelMode", "max", "min", "mode", "name", "placeholder", "readOnly", "rtlEnabled", "showClearButton", "showSpinButtons", "step", "stylingMode", "tabIndex", "text", "useLargeSpinButtons", "validationError", "validationErrors", "validationMessageMode", "validationMessagePosition", "validationStatus", "value", "valueChangeEvent", "visible", "width"], outputs: ["onChange", "onContentReady", "onCopy", "onCut", "onDisposing", "onEnterKey", "onFocusIn", "onFocusOut", "onInitialized", "onInput", "onKeyDown", "onKeyUp", "onOptionChanged", "onPaste", "onValueChanged", "accessKeyChange", "activeStateEnabledChange", "buttonsChange", "disabledChange", "elementAttrChange", "focusStateEnabledChange", "formatChange", "heightChange", "hintChange", "hoverStateEnabledChange", "inputAttrChange", "invalidValueMessageChange", "isValidChange", "labelChange", "labelModeChange", "maxChange", "minChange", "modeChange", "nameChange", "placeholderChange", "readOnlyChange", "rtlEnabledChange", "showClearButtonChange", "showSpinButtonsChange", "stepChange", "stylingModeChange", "tabIndexChange", "textChange", "useLargeSpinButtonsChange", "validationErrorChange", "validationErrorsChange", "validationMessageModeChange", "validationMessagePositionChange", "validationStatusChange", "valueChange", "valueChangeEventChange", "visibleChange", "widthChange", "onBlur"] }, { kind: "pipe", type: i8.LocalizationPipe, name: "abpLocalization" }] });
245
245
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: HitBoilerYMProductWasteComponent, decorators: [{
246
246
  type: Component,
247
- args: [{ selector: 'lib-hit-boiler-ym-product-waste', template: "<abp-page [breadcrumb]=\"false\">\r\n <abp-page-toolbar-container class=\"col\">\r\n <div class=\"row\">\r\n <h3 class=\"page-title\">\r\n {{ 'UretimYonetimi::BoilerYMProductWaste.Title' | abpLocalization }}\r\n </h3>\r\n </div>\r\n <div class=\"row pt-2 g-2\">\r\n <div class=\"col-12 col-md-6 col-lg-3\">\r\n <button class=\"btn btn-success btn-sm w-100\" type=\"button\" (click)=\"save()\"\r\n [disabled]=\"!isEmriBarkoduGecerliMi || isSaving\">\r\n <i class=\"fa fa-save me-1\"></i>\r\n {{ 'UretimYonetimi::BoilerYMProductWaste.Save' | abpLocalization }}\r\n </button>\r\n </div>\r\n <div class=\"col-12 col-md-6 col-lg-3\">\r\n <button class=\"btn btn-primary btn-sm w-100\" type=\"button\" (click)=\"finishWorkOrderAndSaveWaste()\"\r\n [disabled]=\"!isEmriBarkoduGecerliMi || isSaving\">\r\n <i class=\"fa fa-check-double me-1\"></i>\r\n \u0130\u015F Emrini Bitir ve Fireyi Kaydet\r\n </button>\r\n </div>\r\n <div class=\"col-12 col-md-6 col-lg-3\">\r\n <button class=\"btn btn-info btn-sm w-100\" type=\"button\" (click)=\"finishWorkOrderWithoutSavingWaste()\"\r\n [disabled]=\"!isEmriBarkoduGecerliMi || isSaving\">\r\n <i class=\"fa fa-check me-1\"></i>\r\n \u0130\u015F Emrini Bitir ve Fireyi Kaydetme\r\n </button>\r\n </div>\r\n <div class=\"col-12 col-md-6 col-lg-3\">\r\n <button class=\"btn btn-warning btn-sm w-100\" type=\"button\" (click)=\"clearAll()\"\r\n [disabled]=\"isLoading\">\r\n <i class=\"fa fa-broom me-1\"></i>\r\n {{ 'UretimYonetimi::BoilerYMProductWaste.Clean' | abpLocalization }}\r\n </button>\r\n </div>\r\n </div>\r\n </abp-page-toolbar-container>\r\n\r\n <div class=\"card mt-2\">\r\n <div class=\"card-body\">\r\n <div style=\"display: flex; align-items: center;\">\r\n <dx-number-box #barkodNumarasiRef class=\"me-1\" style=\"width:100%;\" [min]=\"1\"\r\n [label]=\"'UretimYonetimi::BoilerYMProductWaste.WorkOrderNo' | abpLocalization\"\r\n [(value)]=\"isEmriBarkodu\" (onEnterKey)=\"getProductionOrder()\"\r\n [disabled]=\"searcheBasildiMi || isEmriBarkoduGecerliMi\">\r\n </dx-number-box>\r\n <dx-button style=\"margin-top: 7.5px;\" icon=\"search\" type=\"default\" (onClick)=\"getProductionOrder()\"\r\n [disabled]=\"searcheBasildiMi || isEmriBarkoduGecerliMi\">\r\n </dx-button>\r\n </div>\r\n <div class=\"mt-3\" *ngIf=\"isEmriBarkoduGecerliMi\">\r\n <dx-text-box style=\"width:100%;\"\r\n [label]=\"'UretimYonetimi::BoilerYMProductWaste.ConveyorInformation' | abpLocalization\"\r\n [(value)]=\"productionOrder.u_Hat\"\r\n [disabled]=\"true\">\r\n </dx-text-box>\r\n <dx-text-box style=\"width:100%;\"\r\n [label]=\"'UretimYonetimi::BoilerYMProductWaste.ProductDescription' | abpLocalization\"\r\n [(value)]=\"productionOrder.productDescription\"\r\n [disabled]=\"true\">\r\n </dx-text-box>\r\n <dx-text-box style=\"width:100%;\"\r\n [label]=\"'UretimYonetimi::BoilerYMProductWaste.BatchNumber' | abpLocalization\"\r\n [(value)]=\"ymProduct.batchNumber\"\r\n [disabled]=\"true\">\r\n </dx-text-box>\r\n <dx-text-box style=\"width:100%;\"\r\n [label]=\"'UretimYonetimi::BoilerYMProductWaste.ItemCode' | abpLocalization\"\r\n [(value)]=\"ymProduct.itemCode\"\r\n [disabled]=\"true\">\r\n </dx-text-box>\r\n <dx-number-box style=\"width:100%;\"\r\n [label]=\"'UretimYonetimi::BoilerYMProductWaste.ProductQuantity' | abpLocalization\"\r\n [(value)]=\"ymProduct.batchQuantity\"\r\n [disabled]=\"true\">\r\n </dx-number-box>\r\n </div>\r\n </div>\r\n </div>\r\n</abp-page>\r\n", styles: [":host{display:block}dx-number-box,dx-text-box{width:100%}dx-data-grid{width:100%}\n"] }]
247
+ args: [{ selector: 'lib-hit-boiler-ym-product-waste', template: "<abp-page [breadcrumb]=\"false\">\r\n <abp-page-toolbar-container class=\"col\">\r\n <div class=\"row\">\r\n <h3 class=\"page-title\">\r\n {{ 'UretimYonetimi::BoilerYMProductWaste.Title' | abpLocalization }}\r\n </h3>\r\n </div>\r\n <div class=\"row pt-2 g-2\">\r\n <div class=\"col-12 col-md-6 col-lg-3\">\r\n <button class=\"btn btn-success btn-sm w-100\" type=\"button\" (click)=\"save()\"\r\n [disabled]=\"!isEmriBarkoduGecerliMi || isSaving\">\r\n <i class=\"fa fa-save me-1\"></i>\r\n Kazan De\u011Fi\u015Fimi \u00D6ncesi Fire Giri\u015Fi\r\n </button>\r\n </div>\r\n <div class=\"col-12 col-md-6 col-lg-3\">\r\n <button class=\"btn btn-primary btn-sm w-100\" type=\"button\" (click)=\"finishWorkOrderAndSaveWaste()\"\r\n [disabled]=\"!isEmriBarkoduGecerliMi || isSaving\">\r\n <i class=\"fa fa-check-double me-1\"></i>\r\n \u0130\u015F Emrini Bitir ve Fireyi Kaydet\r\n </button>\r\n </div>\r\n <div class=\"col-12 col-md-6 col-lg-3\">\r\n <button class=\"btn btn-info btn-sm w-100\" type=\"button\" (click)=\"finishWorkOrderWithoutSavingWaste()\"\r\n [disabled]=\"!isEmriBarkoduGecerliMi || isSaving\">\r\n <i class=\"fa fa-check me-1\"></i>\r\n \u0130\u015F Emrini Bitir ve Fireyi Kaydetme\r\n </button>\r\n </div>\r\n <div class=\"col-12 col-md-6 col-lg-3\">\r\n <button class=\"btn btn-warning btn-sm w-100\" type=\"button\" (click)=\"clearAll()\"\r\n [disabled]=\"isLoading\">\r\n <i class=\"fa fa-broom me-1\"></i>\r\n {{ 'UretimYonetimi::BoilerYMProductWaste.Clean' | abpLocalization }}\r\n </button>\r\n </div>\r\n </div>\r\n </abp-page-toolbar-container>\r\n\r\n <div class=\"card mt-2\">\r\n <div class=\"card-body\">\r\n <div style=\"display: flex; align-items: center;\">\r\n <dx-number-box #barkodNumarasiRef class=\"me-1\" style=\"width:100%;\" [min]=\"1\"\r\n [label]=\"'UretimYonetimi::BoilerYMProductWaste.WorkOrderNo' | abpLocalization\"\r\n [(value)]=\"isEmriBarkodu\" (onEnterKey)=\"getProductionOrder()\"\r\n [disabled]=\"searcheBasildiMi || isEmriBarkoduGecerliMi\">\r\n </dx-number-box>\r\n <dx-button style=\"margin-top: 7.5px;\" icon=\"search\" type=\"default\" (onClick)=\"getProductionOrder()\"\r\n [disabled]=\"searcheBasildiMi || isEmriBarkoduGecerliMi\">\r\n </dx-button>\r\n </div>\r\n <div class=\"mt-3\" *ngIf=\"isEmriBarkoduGecerliMi\">\r\n <dx-text-box style=\"width:100%;\"\r\n [label]=\"'UretimYonetimi::BoilerYMProductWaste.ConveyorInformation' | abpLocalization\"\r\n [(value)]=\"productionOrder.u_Hat\"\r\n [disabled]=\"true\">\r\n </dx-text-box>\r\n <dx-text-box style=\"width:100%;\"\r\n [label]=\"'UretimYonetimi::BoilerYMProductWaste.ProductDescription' | abpLocalization\"\r\n [(value)]=\"productionOrder.productDescription\"\r\n [disabled]=\"true\">\r\n </dx-text-box>\r\n <dx-text-box style=\"width:100%;\"\r\n [label]=\"'UretimYonetimi::BoilerYMProductWaste.BatchNumber' | abpLocalization\"\r\n [(value)]=\"ymProduct.batchNumber\"\r\n [disabled]=\"true\">\r\n </dx-text-box>\r\n <dx-text-box style=\"width:100%;\"\r\n [label]=\"'UretimYonetimi::BoilerYMProductWaste.ItemCode' | abpLocalization\"\r\n [(value)]=\"ymProduct.itemCode\"\r\n [disabled]=\"true\">\r\n </dx-text-box>\r\n <dx-number-box style=\"width:100%;\"\r\n [label]=\"'UretimYonetimi::BoilerYMProductWaste.ProductQuantity' | abpLocalization\"\r\n [(value)]=\"ymProduct.batchQuantity\"\r\n [disabled]=\"true\">\r\n </dx-number-box>\r\n </div>\r\n </div>\r\n </div>\r\n</abp-page>\r\n", styles: [":host{display:block}dx-number-box,dx-text-box{width:100%}dx-data-grid{width:100%}\n"] }]
248
248
  }], ctorParameters: function () { return [{ type: i1.HitBoilerYMProductWasteService }, { type: i2.ConfirmationService }, { type: i0.NgZone }, { type: i3.HitProductionOrdersService }, { type: i4.HitFillingControlService }]; }, propDecorators: { nmbBoxBarkodNumarasi: [{
249
249
  type: ViewChild,
250
250
  args: ['barkodNumarasiRef', { static: false }]
251
251
  }] } });
252
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaGl0LWJvaWxlci15bS1wcm9kdWN0LXdhc3RlLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3VyZXRpbS15b25ldGltaS9zcmMvbGliL2NvbXBvbmVudHMvaGl0LWJvaWxlci15bS1wcm9kdWN0LXdhc3RlL2hpdC1ib2lsZXIteW0tcHJvZHVjdC13YXN0ZS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy91cmV0aW0teW9uZXRpbWkvc3JjL2xpYi9jb21wb25lbnRzL2hpdC1ib2lsZXIteW0tcHJvZHVjdC13YXN0ZS9oaXQtYm9pbGVyLXltLXByb2R1Y3Qtd2FzdGUuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFnQixTQUFTLEVBQVUsU0FBUyxFQUFDLE1BQU0sZUFBZSxDQUFDO0FBRTFFLE9BQU8sTUFBTSxNQUFNLHNCQUFzQixDQUFDO0FBQzFDLE9BQU8sRUFBc0IsWUFBWSxFQUFDLE1BQU0sc0JBQXNCLENBQUM7QUFJdkUsT0FBTyxFQUFDLDJCQUEyQixFQUFDLE1BQU0sb0RBQW9ELENBQUM7QUFFL0YsT0FBTyxFQUFDLFNBQVMsRUFBQyxNQUFNLDRDQUE0QyxDQUFDOzs7Ozs7Ozs7O0FBT3JFLE1BQU0sT0FBTyxnQ0FBZ0M7SUFrQjNDLFlBQ21CLE9BQXVDLEVBQ3ZDLFlBQWlDLEVBQ2pDLE1BQWMsRUFDZCx1QkFBbUQsRUFDbkQscUJBQStDO1FBSi9DLFlBQU8sR0FBUCxPQUFPLENBQWdDO1FBQ3ZDLGlCQUFZLEdBQVosWUFBWSxDQUFxQjtRQUNqQyxXQUFNLEdBQU4sTUFBTSxDQUFRO1FBQ2QsNEJBQXVCLEdBQXZCLHVCQUF1QixDQUE0QjtRQUNuRCwwQkFBcUIsR0FBckIscUJBQXFCLENBQTBCO1FBcEJsRSxZQUFPLEdBQWtDO1lBQ3ZDLFVBQVUsRUFBRSxJQUFJO1lBQ2hCLFVBQVUsRUFBRSxPQUFP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QUksQ0FBQyxJQUFJLENBQUM7NEJBQzVCLENBQUMsQ0FBQyxtREFBbUQsQ0FBQzt3QkFDeEQsSUFBSSxDQUFDLFNBQVMsQ0FBQyxPQUFPLENBQUMsQ0FBQztxQkFDekI7Z0JBQ0gsQ0FBQztnQkFDRCxLQUFLLEVBQUUsQ0FBQyxLQUFLLEVBQUUsRUFBRTtvQkFDZixJQUFJLENBQUMsU0FBUyxDQUFDLG1EQUFtRCxDQUFDLENBQUM7b0JBQ3BFLElBQUksQ0FBQyxRQUFRLEdBQUcsS0FBSyxDQUFDO29CQUN0QixJQUFJLENBQUMsU0FBUyxHQUFHLEtBQUssQ0FBQztnQkFDekIsQ0FBQztnQkFDRCxRQUFRLEVBQUUsR0FBRyxFQUFFO29CQUNiLElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FBQztnQkFDbEIsQ0FBQzthQUNGLENBQUMsQ0FBQztRQUNMLENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQzs7NkhBblFVLGdDQUFnQztpSEFBaEMsZ0NBQWdDLGtNQ2hCN0MsMGxJQWlGQTsyRkRqRWEsZ0NBQWdDO2tCQUw1QyxTQUFTOytCQUNFLGlDQUFpQzs0UEFLTSxvQkFBb0I7c0JBQXBFLFNBQVM7dUJBQUMsbUJBQW1CLEVBQUUsRUFBQyxNQUFNLEVBQUUsS0FBSyxFQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtBZnRlclZpZXdJbml0LCBDb21wb25lbnQsIE5nWm9uZSwgVmlld0NoaWxkfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHtEeFRleHRCb3hDb21wb25lbnR9IGZyb20gJ2RldmV4dHJlbWUtYW5ndWxhcic7XHJcbmltcG9ydCBub3RpZnkgZnJvbSAnZGV2ZXh0cmVtZS91aS9ub3RpZnknO1xyXG5pbXBvcnQge0NvbmZpcm1hdGlvblNlcnZpY2UsIENvbmZpcm1hdGlvbn0gZnJvbSAnQGFicC9uZy50aGVtZS5zaGFyZWQnO1xyXG5pbXBvcnQge0hpdEJvaWxlcllNUHJvZHVjdFdhc3RlU2VydmljZX0gZnJvbSAnLi4vLi4vaGl0LXByb3h5L2hpdC1ib2lsZXIteW0tcHJvZHVjdC13YXN0ZS9oaXQtYm9pbGVyLXltLXByb2R1Y3Qtd2FzdGUuc2VydmljZSc7XHJcbmltcG9ydCB7SGl0UHJvZHVjdGlvbk9yZGVyc1NlcnZpY2V9IGZyb20gXCIuLi8uLi9oaXQtcHJveHkvaGl0LXByb2R1Y3Rpb24tb3JkZXJzL2hpdC1wcm9kdWN0aW9uLW9yZGVycy5zZXJ2aWNlXCI7XHJcbmltcG9ydCB7R2V0UHJvZHVjdGlvbk9yZGVyRHRvfSBmcm9tIFwiLi4vLi4vaGl0LXByb3h5L2hpdC1yZWNlaXB0LWZyb20tcHJvZHVjdGlvbnMvbW9kZWxzXCI7XHJcbmltcG9ydCB7Qm9pbGVyWU1Qcm9kdWN0V2FzdGVQb3N0RHRvfSBmcm9tIFwiLi4vLi4vaGl0LXByb3h5L2hpdC1ib2lsZXIteW0tcHJvZHVjdC13YXN0ZS9tb2RlbHNcIjtcclxuaW1wb3J0IHtIaXRGaWxsaW5nQ29udHJvbFNlcnZpY2V9IGZyb20gXCIuLi8uLi9oaXQtcHJveHkvaGl0LWZpbGxpbmctY29udHJvbC9oaXQtZmlsbGluZy1jb250cm9sLnNlcnZpY2VcIjtcclxuaW1wb3J0IHtZbVByb2R1Y3R9IGZyb20gXCIuLi8uLi9oaXQtcHJveHkvaGl0LWZpbGxpbmctY29udHJvbC9tb2RlbHNcIjtcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnbGliLWhpdC1ib2lsZXIteW0tcHJvZHVjdC13YXN0ZScsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL2hpdC1ib2lsZXIteW0tcHJvZHVjdC13YXN0ZS5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmxzOiBbJy4vaGl0LWJvaWxlci15bS1wcm9kdWN0LXdhc3RlLmNvbXBvbmVudC5jc3MnXSxcclxufSlcclxuZXhwb3J0IGNsYXNzIEhpdEJvaWxlcllNUHJvZHVjdFdhc3RlQ29tcG9uZW50IGltcGxlbWVudHMgQWZ0ZXJWaWV3SW5pdCB7XHJcbiAgQFZpZXdDaGlsZCgnYmFya29kTnVtYXJhc2lSZWYnLCB7c3RhdGljOiBmYWxzZX0pIG5tYkJveEJhcmtvZE51bWFyYXNpOiBEeFRleHRCb3hDb21wb25lbnQ7XHJcblxyXG4gIG9wdGlvbnM6IFBhcnRpYWw8Q29uZmlybWF0aW9uLk9wdGlvbnM+ID0ge1xyXG4gICAgaGlkZVllc0J0bjogdHJ1ZSxcclxuICAgIGNhbmNlbFRleHQ6ICdLYXBhdCcsXHJcbiAgICBkaXNtaXNzaWJsZTogZmFsc2UsXHJcbiAgfTtcclxuXHJcbiAgaXNMb2FkaW5nOiBib29sZWFuID0gZmFsc2U7XHJcbiAgaXNTYXZpbmc6IGJvb2xlYW4gPSBmYWxzZTtcclxuICBpc0VtcmlCYXJrb2R1R2VjZXJsaU1pOiBib29sZWFuID0gZmFsc2U7XHJcbiAgc2VhcmNoZUJhc2lsZGlNaTogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIGlzRW1yaUJhcmtvZHU6IG51bWJlcjtcclxuICBwcm9kdWN0aW9uT3JkZXI6IEdldFByb2R1Y3Rpb25PcmRlckR0bztcclxuICBib2lsZXJZTVByb2R1Y3RXYXN0ZVBvc3REdG8gPSBuZXcgQm9pbGVyWU1Qcm9kdWN0V2FzdGVQb3N0RHRvO1xyXG4gIHltUHJvZHVjdCA9IG5ldyBZbVByb2R1Y3Q7XHJcblxyXG4gIGNvbnN0cnVjdG9yKFxyXG4gICAgcHJpdmF0ZSByZWFkb25seSBzZXJ2aWNlOiBIaXRCb2lsZXJZTVByb2R1Y3RXYXN0ZVNlcnZpY2UsXHJcbiAgICBwcml2YXRlIHJlYWRvbmx5IGNvbmZpcm1hdGlvbjogQ29uZmlybWF0aW9uU2VydmljZSxcclxuICAgIHByaXZhdGUgcmVhZG9ubHkgbmdab25lOiBOZ1pvbmUsXHJcbiAgICBwcml2YXRlIHJlYWRvbmx5IHByb2R1Y3Rpb25PcmRlcnNTZXJ2aWNlOiBIaXRQcm9kdWN0aW9uT3JkZXJzU2VydmljZSxcclxuICAgIHByaXZhdGUgcmVhZG9ubHkgZmlsbGluZ0NvbnRyb2xTZXJ2aWNlOiBIaXRGaWxsaW5nQ29udHJvbFNlcnZpY2UsXHJcbiAgKSB7XHJcbiAgfVxyXG5cclxuICBuZ0FmdGVyVmlld0luaXQoKTogdm9pZCB7XHJcbiAgICB0aGlzLmZvY3VzV29ya09yZGVyKCk7XHJcbiAgfVxyXG5cclxuICBnZXRQcm9kdWN0aW9uT3JkZXIoKTogdm9pZCB7XHJcbiAgICBpZiAoIXRoaXMuaXNFbXJpQmFya29kdSkge1xyXG4gICAgICB0aGlzLmZvY3VzV29ya09yZGVyKCk7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuXHJcbiAgICB0aGlzLmlzTG9hZGluZyA9IHRydWU7XHJcbiAgICB0aGlzLmlzRW1yaUJhcmtvZHVHZWNlcmxpTWkgPSBmYWxzZTtcclxuICAgIHRoaXMuc2VhcmNoZUJhc2lsZGlNaSA9IHRydWU7XHJcbiAgICB0aGlzLnByb2R1Y3Rpb25PcmRlciA9IG51bGw7XHJcblxyXG4gICAgdGhpcy5wcm9kdWN0aW9uT3JkZXJzU2VydmljZS5nZXQodGhpcy5pc0VtcmlCYXJrb2R1KS5zdWJzY3JpYmUoe1xyXG4gICAgICBuZXh0OiAocmVzcG9uc2UpID0+IHtcclxuICAgICAgICBpZiAocmVzcG9uc2U/LmlzU3VjY2Vzc2Z1bCAmJiByZXNwb25zZS5pdGVtcykge1xyXG4gICAgICAgICAgdGhpcy5maWxsaW5nQ29udHJvbFNlcnZpY2UuZ2V0WW1Qcm9kdWN0KHJlc3BvbnNlLml0ZW1zLmFic29sdXRlRW50cnkpLnN1YnNjcmliZSh7XHJcbiAgICAgICAgICAgIG5leHQ6IChyZXNwb25zZVlNKSA9PiB7XHJcbiAgICAgICAgICAgICAgaWYgKHJlc3BvbnNlWU0/LmlzU3VjY2Vzc2Z1bCAmJiByZXNwb25zZVlNLml0ZW1zKSB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLnltUHJvZHVjdCA9IHJlc3BvbnNlWU0uaXRlbXM7XHJcbiAgICAgICAgICAgICAgICB0aGlzLnByb2R1Y3Rpb25PcmRlciA9IHJlc3BvbnNlLml0ZW1zO1xyXG4gICAgICAgICAgICAgICAgdGhpcy5pc0VtcmlCYXJrb2R1R2VjZXJsaU1pID0gdHJ1ZTtcclxuICAgICAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgdGhpcy5jb25maXJtYXRpb24uZXJyb3IoJycsICdZTSDDvHLDvG4gYmlsZ2lsZXJpIGFsxLFuYW1hZMSxLicsIHRoaXMub3B0aW9ucykuc3Vic2NyaWJlKCgpID0+IHtcclxuICAgICAgICAgICAgICAgICAgdGhpcy5jbGVhckFsbCgpO1xyXG4gICAgICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICBlcnJvcjogKCkgPT4ge1xyXG4gICAgICAgICAgICAgIHRoaXMuY29uZmlybWF0aW9uLmVycm9yKCcnLCAnWU0gw7xyw7xuIGJpbGdpbGVyaSBhbMSxbmFtYWTEsS4nLCB0aGlzLm9wdGlvbnMpLnN1YnNjcmliZSgoKSA9PiB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLmNsZWFyQWxsKCk7XHJcbiAgICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICB9KTtcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgY29uc3QgbWVzc2FnZSA9IHJlc3BvbnNlPy5lcnJvcnM/Lmxlbmd0aFxyXG4gICAgICAgICAgICA/IHJlc3BvbnNlLmVycm9ycy5qb2luKCdcXG4nKVxyXG4gICAgICAgICAgICA6ICfEsMWfIGVtcmkgYmlsZ2lsZXJpIGFsxLFuYW1hZMSxLic7XHJcbiAgICAgICAgICB0aGlzLnNob3dFcnJvcihtZXNzYWdlKTtcclxuICAgICAgICAgIHRoaXMuZm9jdXNXb3JrT3JkZXIoKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgdGhpcy5pc0xvYWRpbmcgPSBmYWxzZTtcclxuICAgICAgICB0aGlzLnNlYXJjaGVCYXNpbGRpTWkgPSBmYWxzZTtcclxuICAgICAgfSxcclxuICAgICAgZXJyb3I6ICgpID0+IHtcclxuICAgICAgICB0aGlzLnNob3dFcnJvcignxLDFnyBlbXJpIGJpbGdpbGVyaSBhbMSxbmFtYWTEsS4nKTtcclxuICAgICAgICB0aGlzLmZvY3VzV29ya09yZGVyKCk7XHJcbiAgICAgICAgdGhpcy5pc0xvYWRpbmcgPSBmYWxzZTtcclxuICAgICAgICB0aGlzLnNlYXJjaGVCYXNpbGRpTWkgPSBmYWxzZTtcclxuICAgICAgfSxcclxuICAgICAgY29tcGxldGU6ICgpID0+IHtcclxuICAgICAgICB0aGlzLmlzTG9hZGluZyA9IGZhbHNlO1xyXG4gICAgICAgIHRoaXMuc2VhcmNoZUJhc2lsZGlNaSA9IGZhbHNlO1xyXG4gICAgICB9LFxyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBzYXZlKCk6IHZvaWQge1xyXG4gICAgaWYgKCF0aGlzLmlzRW1yaUJhcmtvZHVHZWNlcmxpTWkgfHwgIXRoaXMucHJvZHVjdGlvbk9yZGVyIHx8IHRoaXMuaXNTYXZpbmcpIHtcclxuICAgICAgdGhpcy5mb2N1c1dvcmtPcmRlcigpO1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcblxyXG4gICAgdGhpcy5jb25maXJtYXRpb24ud2FybihcclxuICAgICAgJycsXHJcbiAgICAgICdGaXJlIGtheWTEsW7EsSB5YXBtYWsgaXN0ZWRpxJ9pbml6ZGVuIGVtaW4gbWlzaW5pej8nLFxyXG4gICAgICB7XHJcbiAgICAgICAgeWVzVGV4dDogJ0V2ZXQnLFxyXG4gICAgICAgIGNhbmNlbFRleHQ6ICdIYXnEsXInXHJcbiAgICAgIH1cclxuICAgICkuc3Vic2NyaWJlKChzdGF0dXMpID0+IHtcclxuICAgICAgaWYgKHN0YXR1cyAhPT0gQ29uZmlybWF0aW9uLlN0YXR1cy5jb25maXJtKSB7XHJcbiAgICAgICAgcmV0dXJuO1xyXG4gICAgICB9XHJcblxyXG4gICAgICB0aGlzLmlzU2F2aW5nID0gdHJ1ZTtcclxuICAgICAgdGhpcy5pc0xvYWRpbmcgPSB0cnVlO1xyXG5cclxuICAgICAgdGhpcy5zZXJ2aWNlLmNyZWF0ZSh0aGlzLnByb2R1Y3Rpb25PcmRlci5hYnNvbHV0ZUVudHJ5KS5zdWJzY3JpYmUoe1xyXG4gICAgICAgIG5leHQ6IChyZXNwb25zZSkgPT4ge1xyXG4gICAgICAgICAgaWYgKHJlc3BvbnNlPy5pc1N1Y2Nlc3NmdWwpIHtcclxuICAgICAgICAgICAgdGhpcy5jb25maXJtYXRpb25cclxuICAgICAgICAgICAgICAuc3VjY2VzcygnJywgJ8SwxZ9sZW0gYmHFn2FyxLF5bGEgdGFtYW1sYW5kxLEuJywgdGhpcy5vcHRpb25zKVxyXG4gICAgICAgICAgICAgIC5zdWJzY3JpYmUoKCkgPT4gdGhpcy5jbGVhckFsbCgpKTtcclxuICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgIGNvbnN0IG1lc3NhZ2UgPSByZXNwb25zZT8uZXJyb3JzPy5sZW5ndGhcclxuICAgICAgICAgICAgICA/IHJlc3BvbnNlLmVycm9ycy5qb2luKCdcXG4nKVxyXG4gICAgICAgICAgICAgIDogJ0ZpcmUgacWfbGVtaSBzxLFyYXPEsW5kYSBiaXIgaGF0YSBvbHXFn3R1Lic7XHJcbiAgICAgICAgICAgIHRoaXMuc2hvd0Vycm9yKG1lc3NhZ2UpO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH0sXHJcbiAgICAgICAgZXJyb3I6IChlcnJvcikgPT4ge1xyXG4gICAgICAgICAgdGhpcy5pc1NhdmluZyA9IGZhbHNlO1xyXG4gICAgICAgICAgdGhpcy5pc0xvYWRpbmcgPSBmYWxzZTtcclxuICAgICAgICB9LFxyXG4gICAgICAgIGNvbXBsZXRlOiAoKSA9PiB7XHJcbiAgICAgICAgICB0aGlzLmNsZWFyQWxsKCk7XHJcbiAgICAgICAgfSxcclxuICAgICAgfSk7XHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIGNsZWFyQWxsKCk6IHZvaWQge1xyXG4gICAgdGhpcy5pc0xvYWRpbmcgPSBmYWxzZTtcclxuICAgIHRoaXMuaXNTYXZpbmcgPSBmYWxzZTtcclxuICAgIHRoaXMuaXNFbXJpQmFya29kdUdlY2VybGlNaSA9IGZhbHNlO1xyXG4gICAgdGhpcy5zZWFyY2hlQmFzaWxkaU1pID0gZmFsc2U7XHJcbiAgICB0aGlzLmlzRW1yaUJhcmtvZHUgPSBudWxsO1xyXG4gICAgdGhpcy5wcm9kdWN0aW9uT3JkZXIgPSBudWxsO1xyXG4gICAgdGhpcy5ib2lsZXJZTVByb2R1Y3RXYXN0ZVBvc3REdG8gPSBuZXcgQm9pbGVyWU1Qcm9kdWN0V2FzdGVQb3N0RHRvO1xyXG4gICAgdGhpcy5uZ1pvbmUucnVuKCgpID0+IHtcclxuICAgICAgc2V0VGltZW91dCgoKSA9PiB7XHJcbiAgICAgICAgdGhpcy5ubWJCb3hCYXJrb2ROdW1hcmFzaS5pbnN0YW5jZS5mb2N1cygpO1xyXG4gICAgICB9LCAwKTtcclxuICAgIH0pO1xyXG4gICAgdGhpcy5mb2N1c1dvcmtPcmRlcigpO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBmb2N1c1dvcmtPcmRlcigpOiB2b2lkIHtcclxuICAgIHRoaXMubmdab25lLnJ1bk91dHNpZGVBbmd1bGFyKCgpID0+IHtcclxuICAgICAgc2V0VGltZW91dCgoKSA9PiB7XHJcbiAgICAgICAgdGhpcy5ubWJCb3hCYXJrb2ROdW1hcmFzaT8uaW5zdGFuY2U/LmZvY3VzKCk7XHJcbiAgICAgIH0pO1xyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIHNob3dFcnJvcihtZXNzYWdlOiBzdHJpbmcpOiB2b2lkIHtcclxuICAgIHRoaXMuY29uZmlybWF0aW9uLmVycm9yKCcnLCBtZXNzYWdlLCB0aGlzLm9wdGlvbnMpO1xyXG4gICAgbm90aWZ5KHttZXNzYWdlLCB0eXBlOiAnZXJyb3InfSk7XHJcbiAgfVxyXG5cclxuICBmaW5pc2hXb3JrT3JkZXJBbmRTYXZlV2FzdGUoKTogdm9pZCB7XHJcbiAgICBkZWJ1Z2dlcjtcclxuICAgIGlmICghdGhpcy5pc0VtcmlCYXJrb2R1R2VjZXJsaU1pIHx8ICF0aGlzLnByb2R1Y3Rpb25PcmRlciB8fCB0aGlzLmlzU2F2aW5nKSB7XHJcbiAgICAgIHRoaXMuZm9jdXNXb3JrT3JkZXIoKTtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG5cclxuICAgIHRoaXMuY29uZmlybWF0aW9uLndhcm4oXHJcbiAgICAgICcnLFxyXG4gICAgICAnxLDFnyBlbXJpbmkgYml0aXJtZWsgdmUgZmlyZXlpIGtheWRldG1layBpc3RlZGnEn2luaXpkZW4gZW1pbiBtaXNpbml6PycsXHJcbiAgICAgIHtcclxuICAgICAgICB5ZXNUZXh0OiAnRXZldCcsXHJcbiAgICAgICAgY2FuY2VsVGV4dDogJ0hhecSxcidcclxuICAgICAgfVxyXG4gICAgKS5zdWJzY3JpYmUoKHN0YXR1cykgPT4ge1xyXG4gICAgICBpZiAoc3RhdHVzICE9PSBDb25maXJtYXRpb24uU3RhdHVzLmNvbmZpcm0pIHtcclxuICAgICAgICByZXR1cm47XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIHRoaXMuaXNTYXZpbmcgPSB0cnVlO1xyXG4gICAgICB0aGlzLmlzTG9hZGluZyA9IHRydWU7XHJcblxyXG4gICAgICB0aGlzLnNlcnZpY2UuZmluaXNoV29ya09yZGVyQW5kU2F2ZVdhc3RlKHRoaXMucHJvZHVjdGlvbk9yZGVyLmFic29sdXRlRW50cnkpLnN1YnNjcmliZSh7XHJcbiAgICAgICAgbmV4dDogKHJlc3BvbnNlKSA9PiB7XHJcbiAgICAgICAgICBkZWJ1Z2dlcjtcclxuICAgICAgICAgIGlmIChyZXNwb25zZT8uaXNTdWNjZXNzZnVsKSB7XHJcbiAgICAgICAgICAgIHRoaXMuY29uZmlybWF0aW9uXHJcbiAgICAgICAgICAgICAgLnN1Y2Nlc3MoJycsICfEsMWfIGVtcmkgYml0aXJpbGRpIHZlIGZpcmUga2F5ZGVkaWxkaS4nLCB0aGlzLm9wdGlvbnMpXHJcbiAgICAgICAgICAgICAgLnN1YnNjcmliZSgoKSA9PiB0aGlzLmNsZWFyQWxsKCkpO1xyXG4gICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgY29uc3QgbWVzc2FnZSA9IHJlc3BvbnNlPy5lcnJvcnM/Lmxlbmd0aFxyXG4gICAgICAgICAgICAgID8gcmVzcG9uc2UuZXJyb3JzLmpvaW4oJ1xcbicpXHJcbiAgICAgICAgICAgICAgOiAnxLDFnyBlbXJpIGJpdGlybWUgacWfbGVtaSBzxLFyYXPEsW5kYSBiaXIgaGF0YSBvbHXFn3R1Lic7XHJcbiAgICAgICAgICAgIHRoaXMuc2hvd0Vycm9yKG1lc3NhZ2UpO1xyXG4gICAgICAgICAgICB0aGlzLmlzU2F2aW5nID0gZmFsc2U7XHJcbiAgICAgICAgICAgIHRoaXMuaXNMb2FkaW5nID0gZmFsc2U7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfSxcclxuICAgICAgICBlcnJvcjogKGVycm9yKSA9PiB7XHJcbiAgICAgICAgICBkZWJ1Z2dlcjtcclxuICAgICAgICAgIGxldCBtZXNzYWdlID0gZXJyb3IuZXJyb3IuZXJyb3IubWVzc2FnZTtcclxuICAgICAgICAgIG1lc3NhZ2UgPSBtZXNzYWdlLmxlbmd0aFxyXG4gICAgICAgICAgICAgID8gbWVzc2FnZVxyXG4gICAgICAgICAgICAgIDogJ8SwxZ8gZW1yaSBiaXRpcm1lIGnFn2xlbWkgc8SxcmFzxLFuZGEgYmlyIGhhdGEgb2x1xZ90dS4nO1xyXG4gICAgICAgICAgdGhpcy5pc1NhdmluZyA9IGZhbHNlO1xyXG4gICAgICAgICAgdGhpcy5pc0xvYWRpbmcgPSBmYWxzZTtcclxuICAgICAgICAgIHRoaXMuc2hvd0Vycm9yKG1lc3NhZ2UpO1xyXG4gICAgICAgIH0sXHJcbiAgICAgICAgY29tcGxldGU6ICgpID0+IHtcclxuICAgICAgICAgIHRoaXMuY2xlYXJBbGwoKTtcclxuICAgICAgICB9LFxyXG4gICAgICB9KTtcclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgZmluaXNoV29ya09yZGVyV2l0aG91dFNhdmluZ1dhc3RlKCk6IHZvaWQge1xyXG4gICAgaWYgKCF0aGlzLmlzRW1yaUJhcmtvZHVHZWNlcmxpTWkgfHwgIXRoaXMucHJvZHVjdGlvbk9yZGVyIHx8IHRoaXMuaXNTYXZpbmcpIHtcclxuICAgICAgdGhpcy5mb2N1c1dvcmtPcmRlcigpO1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcblxyXG4gICAgdGhpcy5jb25maXJtYXRpb24ud2FybihcclxuICAgICAgJycsXHJcbiAgICAgICfEsMWfIGVtcmluaSBiaXRpcm1layBpc3RlZGnEn2luaXpkZW4gZW1pbiBtaXNpbml6PyAoRmlyZSBrYXlkZWRpbG1leWVjZWspJyxcclxuICAgICAge1xyXG4gICAgICAgIHllc1RleHQ6ICdFdmV0JyxcclxuICAgICAgICBjYW5jZWxUZXh0OiAnSGF5xLFyJ1xyXG4gICAgICB9XHJcbiAgICApLnN1YnNjcmliZSgoc3RhdHVzKSA9PiB7XHJcbiAgICAgIGlmIChzdGF0dXMgIT09IENvbmZpcm1hdGlvbi5TdGF0dXMuY29uZmlybSkge1xyXG4gICAgICAgIHJldHVybjtcclxuICAgICAgfVxyXG5cclxuICAgICAgdGhpcy5pc1NhdmluZyA9IHRydWU7XHJcbiAgICAgIHRoaXMuaXNMb2FkaW5nID0gdHJ1ZTtcclxuXHJcbiAgICAgIHRoaXMuc2VydmljZS5maW5pc2hXb3JrT3JkZXJXaXRob3V0U2F2aW5nV2FzdGUodGhpcy5wcm9kdWN0aW9uT3JkZXIuYWJzb2x1dGVFbnRyeSkuc3Vic2NyaWJlKHtcclxuICAgICAgICBuZXh0OiAocmVzcG9uc2UpID0+IHtcclxuICAgICAgICAgIGlmIChyZXNwb25zZT8uaXNTdWNjZXNzZnVsKSB7XHJcbiAgICAgICAgICAgIHRoaXMuY29uZmlybWF0aW9uXHJcbiAgICAgICAgICAgICAgLnN1Y2Nlc3MoJycsICfEsMWfIGVtcmkgYml0aXJpbGRpLicsIHRoaXMub3B0aW9ucylcclxuICAgICAgICAgICAgICAuc3Vic2NyaWJlKCgpID0+IHRoaXMuY2xlYXJBbGwoKSk7XHJcbiAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICBjb25zdCBtZXNzYWdlID0gcmVzcG9uc2U/LmVycm9ycz8ubGVuZ3RoXHJcbiAgICAgICAgICAgICAgPyByZXNwb25zZS5lcnJvcnMuam9pbignXFxuJylcclxuICAgICAgICAgICAgICA6ICfEsMWfIGVtcmkgYml0aXJtZSBpxZ9sZW1pIHPEsXJhc8SxbmRhIGJpciBoYXRhIG9sdcWfdHUuJztcclxuICAgICAgICAgICAgdGhpcy5zaG93RXJyb3IobWVzc2FnZSk7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfSxcclxuICAgICAgICBlcnJvcjogKGVycm9yKSA9PiB7XHJcbiAgICAgICAgICB0aGlzLnNob3dFcnJvcignxLDFnyBlbXJpIGJpdGlybWUgacWfbGVtaSBzxLFyYXPEsW5kYSBiaXIgaGF0YSBvbHXFn3R1LicpO1xyXG4gICAgICAgICAgdGhpcy5pc1NhdmluZyA9IGZhbHNlO1xyXG4gICAgICAgICAgdGhpcy5pc0xvYWRpbmcgPSBmYWxzZTtcclxuICAgICAgICB9LFxyXG4gICAgICAgIGNvbXBsZXRlOiAoKSA9PiB7XHJcbiAgICAgICAgICB0aGlzLmNsZWFyQWxsKCk7XHJcbiAgICAgICAgfSxcclxuICAgICAgfSk7XHJcbiAgICB9KTtcclxuICB9XHJcbn1cclxuIiwiPGFicC1wYWdlIFticmVhZGNydW1iXT1cImZhbHNlXCI+XHJcbiAgPGFicC1wYWdlLXRvb2xiYXItY29udGFpbmVyIGNsYXNzPVwiY29sXCI+XHJcbiAgICA8ZGl2IGNsYXNzPVwicm93XCI+XHJcbiAgICAgIDxoMyBjbGFzcz1cInBhZ2UtdGl0bGVcIj5cclxuICAgICAgICB7eyAnVXJldGltWW9uZXRpbWk6OkJvaWxlcllNUHJvZHVjdFdhc3RlLlRpdGxlJyB8IGFicExvY2FsaXphdGlvbiB9fVxyXG4gICAgICA8L2gzPlxyXG4gICAgPC9kaXY+XHJcbiAgICA8ZGl2IGNsYXNzPVwicm93IHB0LTIgZy0yXCI+XHJcbiAgICAgIDxkaXYgY2xhc3M9XCJjb2wtMTIgY29sLW1kLTYgY29sLWxnLTNcIj5cclxuICAgICAgICA8YnV0dG9uIGNsYXNzPVwiYnRuIGJ0bi1zdWNjZXNzIGJ0bi1zbSB3LTEwMFwiIHR5cGU9XCJidXR0b25cIiAoY2xpY2spPVwic2F2ZSgpXCJcclxuICAgICAgICAgICAgICAgIFtkaXNhYmxlZF09XCIhaXNFbXJpQmFya29kdUdlY2VybGlNaSB8fCBpc1NhdmluZ1wiPlxyXG4gICAgICAgICAgPGkgY2xhc3M9XCJmYSBmYS1zYXZlIG1lLTFcIj48L2k+XHJcbiAgICAgICAgICB7eyAnVXJldGltWW9uZXRpbWk6OkJvaWxlcllNUHJvZHVjdFdhc3RlLlNhdmUnIHwgYWJwTG9jYWxpemF0aW9uIH19XHJcbiAgICAgICAgPC9idXR0b24+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgICA8ZGl2IGNsYXNzPVwiY29sLTEyIGNvbC1tZC02IGNvbC1sZy0zXCI+XHJcbiAgICAgICAgPGJ1dHRvbiBjbGFzcz1cImJ0biBidG4tcHJpbWFyeSBidG4tc20gdy0xMDBcIiB0eXBlPVwiYnV0dG9uXCIgKGNsaWNrKT1cImZpbmlzaFdvcmtPcmRlckFuZFNhdmVXYXN0ZSgpXCJcclxuICAgICAgICAgICAgICAgIFtkaXNhYmxlZF09XCIhaXNFbXJpQmFya29kdUdlY2VybGlNaSB8fCBpc1NhdmluZ1wiPlxyXG4gICAgICAgICAgPGkgY2xhc3M9XCJmYSBmYS1jaGVjay1kb3VibGUgbWUtMVwiPjwvaT5cclxuICAgICAgICAgIMSwxZ8gRW1yaW5pIEJpdGlyIHZlIEZpcmV5aSBLYXlkZXRcclxuICAgICAgICA8L2J1dHRvbj5cclxuICAgICAgPC9kaXY+XHJcbiAgICAgIDxkaXYgY2xhc3M9XCJjb2wtMTIgY29sLW1kLTYgY29sLWxnLTNcIj5cclxuICAgICAgICA8YnV0dG9uIGNsYXNzPVwiYnRuIGJ0bi1pbmZvIGJ0bi1zbSB3LTEwMFwiIHR5cGU9XCJidXR0b25cIiAoY2xpY2spPVwiZmluaXNoV29ya09yZGVyV2l0aG91dFNhdmluZ1dhc3RlKClcIlxyXG4gICAgICAgICAgICAgICAgW2Rpc2FibGVkXT1cIiFpc0VtcmlCYXJrb2R1R2VjZXJsaU1pIHx8IGlzU2F2aW5nXCI+XHJcbiAgICAgICAgICA8aSBjbGFzcz1cImZhIGZhLWNoZWNrIG1lLTFcIj48L2k+XHJcbiAgICAgICAgICDEsMWfIEVtcmluaSBCaXRpciB2ZSBGaXJleWkgS2F5ZGV0bWVcclxuICAgICAgICA8L2J1dHRvbj5cclxuICAgICAgPC9kaXY+XHJcbiAgICAgIDxkaXYgY2xhc3M9XCJjb2wtMTIgY29sLW1kLTYgY29sLWxnLTNcIj5cclxuICAgICAgICA8YnV0dG9uIGNsYXNzPVwiYnRuIGJ0bi13YXJuaW5nIGJ0bi1zbSB3LTEwMFwiIHR5cGU9XCJidXR0b25cIiAoY2xpY2spPVwiY2xlYXJBbGwoKVwiXHJcbiAgICAgICAgICAgICAgICBbZGlzYWJsZWRdPVwiaXNMb2FkaW5nXCI+XHJcbiAgICAgICAgICA8aSBjbGFzcz1cImZhIGZhLWJyb29tIG1lLTFcIj48L2k+XHJcbiAgICAgICAgICB7eyAnVXJldGltWW9uZXRpbWk6OkJvaWxlcllNUHJvZHVjdFdhc3RlLkNsZWFuJyB8IGFicExvY2FsaXphdGlvbiB9fVxyXG4gICAgICAgIDwvYnV0dG9uPlxyXG4gICAgICA8L2Rpdj5cclxuICAgIDwvZGl2PlxyXG4gIDwvYWJwLXBhZ2UtdG9vbGJhci1jb250YWluZXI+XHJcblxyXG4gIDxkaXYgY2xhc3M9XCJjYXJkIG10LTJcIj5cclxuICAgIDxkaXYgY2xhc3M9XCJjYXJkLWJvZHlcIj5cclxuICAgICAgPGRpdiBzdHlsZT1cImRpc3BsYXk6IGZsZXg7IGFsaWduLWl0ZW1zOiBjZW50ZXI7XCI+XHJcbiAgICAgICAgPGR4LW51bWJlci1ib3ggI2JhcmtvZE51bWFyYXNpUmVmIGNsYXNzPVwibWUtMVwiIHN0eWxlPVwid2lkdGg6MTAwJTtcIiBbbWluXT1cIjFcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgIFtsYWJlbF09XCInVXJldGltWW9uZXRpbWk6OkJvaWxlcllNUHJvZHVjdFdhc3RlLldvcmtPcmRlck5vJyB8IGFicExvY2FsaXphdGlvblwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgWyh2YWx1ZSldPVwiaXNFbXJpQmFya29kdVwiIChvbkVudGVyS2V5KT1cImdldFByb2R1Y3Rpb25PcmRlcigpXCJcclxuICAgICAgICAgICAgICAgICAgICAgICBbZGlzYWJsZWRdPVwic2VhcmNoZUJhc2lsZGlNaSB8fCBpc0VtcmlCYXJrb2R1R2VjZXJsaU1pXCI+XHJcbiAgICAgICAgPC9keC1udW1iZXItYm94PlxyXG4gICAgICAgIDxkeC1idXR0b24gc3R5bGU9XCJtYXJnaW4tdG9wOiA3LjVweDtcIiBpY29uPVwic2VhcmNoXCIgdHlwZT1cImRlZmF1bHRcIiAob25DbGljayk9XCJnZXRQcm9kdWN0aW9uT3JkZXIoKVwiXHJcbiAgICAgICAgICAgICAgICAgICBbZGlzYWJsZWRdPVwic2VhcmNoZUJhc2lsZGlNaSB8fCBpc0VtcmlCYXJrb2R1R2VjZXJsaU1pXCI+XHJcbiAgICAgICAgPC9keC1idXR0b24+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgICA8ZGl2IGNsYXNzPVwibXQtM1wiICpuZ0lmPVwiaXNFbXJpQmFya29kdUdlY2VybGlNaVwiPlxyXG4gICAgICAgIDxkeC10ZXh0LWJveCBzdHlsZT1cIndpZHRoOjEwMCU7XCJcclxuICAgICAgICAgICAgICAgICAgICAgW2xhYmVsXT1cIidVcmV0aW1Zb25ldGltaTo6Qm9pbGVyWU1Qcm9kdWN0V2FzdGUuQ29udmV5b3JJbmZvcm1hdGlvbicgfCBhYnBMb2NhbGl6YXRpb25cIlxyXG4gICAgICAgICAgICAgICAgICAgICBbKHZhbHVlKV09XCJwcm9kdWN0aW9uT3JkZXIudV9IYXRcIlxyXG4gICAgICAgICAgICAgICAgICAgICBbZGlzYWJsZWRdPVwidHJ1ZVwiPlxyXG4gICAgICAgIDwvZHgtdGV4dC1ib3g+XHJcbiAgICAgICAgPGR4LXRleHQtYm94IHN0eWxlPVwid2lkdGg6MTAwJTtcIlxyXG4gICAgICAgICAgICAgICAgICAgICBbbGFiZWxdPVwiJ1VyZXRpbVlvbmV0aW1pOjpCb2lsZXJZTVByb2R1Y3RXYXN0ZS5Qcm9kdWN0RGVzY3JpcHRpb24nIHwgYWJwTG9jYWxpemF0aW9uXCJcclxuICAgICAgICAgICAgICAgICAgICAgWyh2YWx1ZSldPVwicHJvZHVjdGlvbk9yZGVyLnByb2R1Y3REZXNjcmlwdGlvblwiXHJcbiAgICAgICAgICAgICAgICAgICAgIFtkaXNhYmxlZF09XCJ0cnVlXCI+XHJcbiAgICAgICAgPC9keC10ZXh0LWJveD5cclxuICAgICAgICA8ZHgtdGV4dC1ib3ggc3R5bGU9XCJ3aWR0aDoxMDAlO1wiXHJcbiAgICAgICAgICAgICAgICAgICAgIFtsYWJlbF09XCInVXJldGltWW9uZXRpbWk6OkJvaWxlcllNUHJvZHVjdFdhc3RlLkJhdGNoTnVtYmVyJyB8IGFicExvY2FsaXphdGlvblwiXHJcbiAgICAgICAgICAgICAgICAgICAgIFsodmFsdWUpXT1cInltUHJvZHVjdC5iYXRjaE51bWJlclwiXHJcbiAgICAgICAgICAgICAgICAgICAgIFtkaXNhYmxlZF09XCJ0cnVlXCI+XHJcbiAgICAgICAgPC9keC10ZXh0LWJveD5cclxuICAgICAgICA8ZHgtdGV4dC1ib3ggc3R5bGU9XCJ3aWR0aDoxMDAlO1wiXHJcbiAgICAgICAgICAgICAgICAgICAgIFtsYWJlbF09XCInVXJldGltWW9uZXRpbWk6OkJvaWxlcllNUHJvZHVjdFdhc3RlLkl0ZW1Db2RlJyB8IGFicExvY2FsaXphdGlvblwiXHJcbiAgICAgICAgICAgICAgICAgICAgIFsodmFsdWUpXT1cInltUHJvZHVjdC5pdGVtQ29kZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgIFtkaXNhYmxlZF09XCJ0cnVlXCI+XHJcbiAgICAgICAgPC9keC10ZXh0LWJveD5cclxuICAgICAgICA8ZHgtbnVtYmVyLWJveCBzdHlsZT1cIndpZHRoOjEwMCU7XCJcclxuICAgICAgICAgICAgICAgICAgICAgW2xhYmVsXT1cIidVcmV0aW1Zb25ldGltaTo6Qm9pbGVyWU1Qcm9kdWN0V2FzdGUuUHJvZHVjdFF1YW50aXR5JyB8IGFicExvY2FsaXphdGlvblwiXHJcbiAgICAgICAgICAgICAgICAgICAgIFsodmFsdWUpXT1cInltUHJvZHVjdC5iYXRjaFF1YW50aXR5XCJcclxuICAgICAgICAgICAgICAgICAgICAgW2Rpc2FibGVkXT1cInRydWVcIj5cclxuICAgICAgICA8L2R4LW51bWJlci1ib3g+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgPC9kaXY+XHJcbiAgPC9kaXY+XHJcbjwvYWJwLXBhZ2U+XHJcbiJdfQ==
252
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaGl0LWJvaWxlci15bS1wcm9kdWN0LXdhc3RlLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3VyZXRpbS15b25ldGltaS9zcmMvbGliL2NvbXBvbmVudHMvaGl0LWJvaWxlci15bS1wcm9kdWN0LXdhc3RlL2hpdC1ib2lsZXIteW0tcHJvZHVjdC13YXN0ZS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy91cmV0aW0teW9uZXRpbWkvc3JjL2xpYi9jb21wb25lbnRzL2hpdC1ib2lsZXIteW0tcHJvZHVjdC13YXN0ZS9oaXQtYm9pbGVyLXltLXByb2R1Y3Qtd2FzdGUuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFnQixTQUFTLEVBQVUsU0FBUyxFQUFDLE1BQU0sZUFBZSxDQUFDO0FBRTFFLE9BQU8sTUFBTSxNQUFNLHNCQUFzQixDQUFDO0FBQzFDLE9BQU8sRUFBc0IsWUFBWSxFQUFDLE1BQU0sc0JBQXNCLENBQUM7QUFJdkUsT0FBTyxFQUFDLDJCQUEyQixFQUFDLE1BQU0sb0RBQW9ELENBQUM7QUFFL0YsT0FBTyxFQUFDLFNBQVMsRUFBQyxNQUFNLDRDQUE0QyxDQUFDOzs7Ozs7Ozs7O0FBT3JFLE1BQU0sT0FBTyxnQ0FBZ0M7SUFrQjNDLFlBQ21CLE9BQXVDLEVBQ3ZDLFlBQWlDLEVBQ2pDLE1BQWMsRUFDZCx1QkFBbUQsRUFDbkQscUJBQStDO1FBSi9DLFlBQU8sR0FBUCxPQUFPLENBQWdDO1FBQ3ZDLGlCQUFZLEdBQVosWUFBWSxDQUFxQjtRQUNqQyxXQUFNLEdBQU4sTUFBTSxDQUFRO1FBQ2QsNEJBQXVCLEdBQXZCLHVCQUF1QixDQUE0QjtRQUNuRCwwQkFBcUIsR0FBckIscUJBQXFCLENBQTBCO1FBcEJsRSxZQUFPLEdBQWtDO1lBQ3ZDLFVBQVUsRUFBRSxJQUFJO1lBQ2hCLFVBQVUsRUFBRSxPQUFP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QUksQ0FBQyxJQUFJLENBQUM7NEJBQzVCLENBQUMsQ0FBQyxtREFBbUQsQ0FBQzt3QkFDeEQsSUFBSSxDQUFDLFNBQVMsQ0FBQyxPQUFPLENBQUMsQ0FBQztxQkFDekI7Z0JBQ0gsQ0FBQztnQkFDRCxLQUFLLEVBQUUsQ0FBQyxLQUFLLEVBQUUsRUFBRTtvQkFDZixJQUFJLENBQUMsU0FBUyxDQUFDLG1EQUFtRCxDQUFDLENBQUM7b0JBQ3BFLElBQUksQ0FBQyxRQUFRLEdBQUcsS0FBSyxDQUFDO29CQUN0QixJQUFJLENBQUMsU0FBUyxHQUFHLEtBQUssQ0FBQztnQkFDekIsQ0FBQztnQkFDRCxRQUFRLEVBQUUsR0FBRyxFQUFFO29CQUNiLElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FBQztnQkFDbEIsQ0FBQzthQUNGLENBQUMsQ0FBQztRQUNMLENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQzs7NkhBblFVLGdDQUFnQztpSEFBaEMsZ0NBQWdDLGtNQ2hCN0MsNGtJQWlGQTsyRkRqRWEsZ0NBQWdDO2tCQUw1QyxTQUFTOytCQUNFLGlDQUFpQzs0UEFLTSxvQkFBb0I7c0JBQXBFLFNBQVM7dUJBQUMsbUJBQW1CLEVBQUUsRUFBQyxNQUFNLEVBQUUsS0FBSyxFQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtBZnRlclZpZXdJbml0LCBDb21wb25lbnQsIE5nWm9uZSwgVmlld0NoaWxkfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHtEeFRleHRCb3hDb21wb25lbnR9IGZyb20gJ2RldmV4dHJlbWUtYW5ndWxhcic7XHJcbmltcG9ydCBub3RpZnkgZnJvbSAnZGV2ZXh0cmVtZS91aS9ub3RpZnknO1xyXG5pbXBvcnQge0NvbmZpcm1hdGlvblNlcnZpY2UsIENvbmZpcm1hdGlvbn0gZnJvbSAnQGFicC9uZy50aGVtZS5zaGFyZWQnO1xyXG5pbXBvcnQge0hpdEJvaWxlcllNUHJvZHVjdFdhc3RlU2VydmljZX0gZnJvbSAnLi4vLi4vaGl0LXByb3h5L2hpdC1ib2lsZXIteW0tcHJvZHVjdC13YXN0ZS9oaXQtYm9pbGVyLXltLXByb2R1Y3Qtd2FzdGUuc2VydmljZSc7XHJcbmltcG9ydCB7SGl0UHJvZHVjdGlvbk9yZGVyc1NlcnZpY2V9IGZyb20gXCIuLi8uLi9oaXQtcHJveHkvaGl0LXByb2R1Y3Rpb24tb3JkZXJzL2hpdC1wcm9kdWN0aW9uLW9yZGVycy5zZXJ2aWNlXCI7XHJcbmltcG9ydCB7R2V0UHJvZHVjdGlvbk9yZGVyRHRvfSBmcm9tIFwiLi4vLi4vaGl0LXByb3h5L2hpdC1yZWNlaXB0LWZyb20tcHJvZHVjdGlvbnMvbW9kZWxzXCI7XHJcbmltcG9ydCB7Qm9pbGVyWU1Qcm9kdWN0V2FzdGVQb3N0RHRvfSBmcm9tIFwiLi4vLi4vaGl0LXByb3h5L2hpdC1ib2lsZXIteW0tcHJvZHVjdC13YXN0ZS9tb2RlbHNcIjtcclxuaW1wb3J0IHtIaXRGaWxsaW5nQ29udHJvbFNlcnZpY2V9IGZyb20gXCIuLi8uLi9oaXQtcHJveHkvaGl0LWZpbGxpbmctY29udHJvbC9oaXQtZmlsbGluZy1jb250cm9sLnNlcnZpY2VcIjtcclxuaW1wb3J0IHtZbVByb2R1Y3R9IGZyb20gXCIuLi8uLi9oaXQtcHJveHkvaGl0LWZpbGxpbmctY29udHJvbC9tb2RlbHNcIjtcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnbGliLWhpdC1ib2lsZXIteW0tcHJvZHVjdC13YXN0ZScsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL2hpdC1ib2lsZXIteW0tcHJvZHVjdC13YXN0ZS5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmxzOiBbJy4vaGl0LWJvaWxlci15bS1wcm9kdWN0LXdhc3RlLmNvbXBvbmVudC5jc3MnXSxcclxufSlcclxuZXhwb3J0IGNsYXNzIEhpdEJvaWxlcllNUHJvZHVjdFdhc3RlQ29tcG9uZW50IGltcGxlbWVudHMgQWZ0ZXJWaWV3SW5pdCB7XHJcbiAgQFZpZXdDaGlsZCgnYmFya29kTnVtYXJhc2lSZWYnLCB7c3RhdGljOiBmYWxzZX0pIG5tYkJveEJhcmtvZE51bWFyYXNpOiBEeFRleHRCb3hDb21wb25lbnQ7XHJcblxyXG4gIG9wdGlvbnM6IFBhcnRpYWw8Q29uZmlybWF0aW9uLk9wdGlvbnM+ID0ge1xyXG4gICAgaGlkZVllc0J0bjogdHJ1ZSxcclxuICAgIGNhbmNlbFRleHQ6ICdLYXBhdCcsXHJcbiAgICBkaXNtaXNzaWJsZTogZmFsc2UsXHJcbiAgfTtcclxuXHJcbiAgaXNMb2FkaW5nOiBib29sZWFuID0gZmFsc2U7XHJcbiAgaXNTYXZpbmc6IGJvb2xlYW4gPSBmYWxzZTtcclxuICBpc0VtcmlCYXJrb2R1R2VjZXJsaU1pOiBib29sZWFuID0gZmFsc2U7XHJcbiAgc2VhcmNoZUJhc2lsZGlNaTogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIGlzRW1yaUJhcmtvZHU6IG51bWJlcjtcclxuICBwcm9kdWN0aW9uT3JkZXI6IEdldFByb2R1Y3Rpb25PcmRlckR0bztcclxuICBib2lsZXJZTVByb2R1Y3RXYXN0ZVBvc3REdG8gPSBuZXcgQm9pbGVyWU1Qcm9kdWN0V2FzdGVQb3N0RHRvO1xyXG4gIHltUHJvZHVjdCA9IG5ldyBZbVByb2R1Y3Q7XHJcblxyXG4gIGNvbnN0cnVjdG9yKFxyXG4gICAgcHJpdmF0ZSByZWFkb25seSBzZXJ2aWNlOiBIaXRCb2lsZXJZTVByb2R1Y3RXYXN0ZVNlcnZpY2UsXHJcbiAgICBwcml2YXRlIHJlYWRvbmx5IGNvbmZpcm1hdGlvbjogQ29uZmlybWF0aW9uU2VydmljZSxcclxuICAgIHByaXZhdGUgcmVhZG9ubHkgbmdab25lOiBOZ1pvbmUsXHJcbiAgICBwcml2YXRlIHJlYWRvbmx5IHByb2R1Y3Rpb25PcmRlcnNTZXJ2aWNlOiBIaXRQcm9kdWN0aW9uT3JkZXJzU2VydmljZSxcclxuICAgIHByaXZhdGUgcmVhZG9ubHkgZmlsbGluZ0NvbnRyb2xTZXJ2aWNlOiBIaXRGaWxsaW5nQ29udHJvbFNlcnZpY2UsXHJcbiAgKSB7XHJcbiAgfVxyXG5cclxuICBuZ0FmdGVyVmlld0luaXQoKTogdm9pZCB7XHJcbiAgICB0aGlzLmZvY3VzV29ya09yZGVyKCk7XHJcbiAgfVxyXG5cclxuICBnZXRQcm9kdWN0aW9uT3JkZXIoKTogdm9pZCB7XHJcbiAgICBpZiAoIXRoaXMuaXNFbXJpQmFya29kdSkge1xyXG4gICAgICB0aGlzLmZvY3VzV29ya09yZGVyKCk7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuXHJcbiAgICB0aGlzLmlzTG9hZGluZyA9IHRydWU7XHJcbiAgICB0aGlzLmlzRW1yaUJhcmtvZHVHZWNlcmxpTWkgPSBmYWxzZTtcclxuICAgIHRoaXMuc2VhcmNoZUJhc2lsZGlNaSA9IHRydWU7XHJcbiAgICB0aGlzLnByb2R1Y3Rpb25PcmRlciA9IG51bGw7XHJcblxyXG4gICAgdGhpcy5wcm9kdWN0aW9uT3JkZXJzU2VydmljZS5nZXQodGhpcy5pc0VtcmlCYXJrb2R1KS5zdWJzY3JpYmUoe1xyXG4gICAgICBuZXh0OiAocmVzcG9uc2UpID0+IHtcclxuICAgICAgICBpZiAocmVzcG9uc2U/LmlzU3VjY2Vzc2Z1bCAmJiByZXNwb25zZS5pdGVtcykge1xyXG4gICAgICAgICAgdGhpcy5maWxsaW5nQ29udHJvbFNlcnZpY2UuZ2V0WW1Qcm9kdWN0KHJlc3BvbnNlLml0ZW1zLmFic29sdXRlRW50cnkpLnN1YnNjcmliZSh7XHJcbiAgICAgICAgICAgIG5leHQ6IChyZXNwb25zZVlNKSA9PiB7XHJcbiAgICAgICAgICAgICAgaWYgKHJlc3BvbnNlWU0/LmlzU3VjY2Vzc2Z1bCAmJiByZXNwb25zZVlNLml0ZW1zKSB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLnltUHJvZHVjdCA9IHJlc3BvbnNlWU0uaXRlbXM7XHJcbiAgICAgICAgICAgICAgICB0aGlzLnByb2R1Y3Rpb25PcmRlciA9IHJlc3BvbnNlLml0ZW1zO1xyXG4gICAgICAgICAgICAgICAgdGhpcy5pc0VtcmlCYXJrb2R1R2VjZXJsaU1pID0gdHJ1ZTtcclxuICAgICAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgdGhpcy5jb25maXJtYXRpb24uZXJyb3IoJycsICdZTSDDvHLDvG4gYmlsZ2lsZXJpIGFsxLFuYW1hZMSxLicsIHRoaXMub3B0aW9ucykuc3Vic2NyaWJlKCgpID0+IHtcclxuICAgICAgICAgICAgICAgICAgdGhpcy5jbGVhckFsbCgpO1xyXG4gICAgICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICBlcnJvcjogKCkgPT4ge1xyXG4gICAgICAgICAgICAgIHRoaXMuY29uZmlybWF0aW9uLmVycm9yKCcnLCAnWU0gw7xyw7xuIGJpbGdpbGVyaSBhbMSxbmFtYWTEsS4nLCB0aGlzLm9wdGlvbnMpLnN1YnNjcmliZSgoKSA9PiB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLmNsZWFyQWxsKCk7XHJcbiAgICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICB9KTtcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgY29uc3QgbWVzc2FnZSA9IHJlc3BvbnNlPy5lcnJvcnM/Lmxlbmd0aFxyXG4gICAgICAgICAgICA/IHJlc3BvbnNlLmVycm9ycy5qb2luKCdcXG4nKVxyXG4gICAgICAgICAgICA6ICfEsMWfIGVtcmkgYmlsZ2lsZXJpIGFsxLFuYW1hZMSxLic7XHJcbiAgICAgICAgICB0aGlzLnNob3dFcnJvcihtZXNzYWdlKTtcclxuICAgICAgICAgIHRoaXMuZm9jdXNXb3JrT3JkZXIoKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgdGhpcy5pc0xvYWRpbmcgPSBmYWxzZTtcclxuICAgICAgICB0aGlzLnNlYXJjaGVCYXNpbGRpTWkgPSBmYWxzZTtcclxuICAgICAgfSxcclxuICAgICAgZXJyb3I6ICgpID0+IHtcclxuICAgICAgICB0aGlzLnNob3dFcnJvcignxLDFnyBlbXJpIGJpbGdpbGVyaSBhbMSxbmFtYWTEsS4nKTtcclxuICAgICAgICB0aGlzLmZvY3VzV29ya09yZGVyKCk7XHJcbiAgICAgICAgdGhpcy5pc0xvYWRpbmcgPSBmYWxzZTtcclxuICAgICAgICB0aGlzLnNlYXJjaGVCYXNpbGRpTWkgPSBmYWxzZTtcclxuICAgICAgfSxcclxuICAgICAgY29tcGxldGU6ICgpID0+IHtcclxuICAgICAgICB0aGlzLmlzTG9hZGluZyA9IGZhbHNlO1xyXG4gICAgICAgIHRoaXMuc2VhcmNoZUJhc2lsZGlNaSA9IGZhbHNlO1xyXG4gICAgICB9LFxyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBzYXZlKCk6IHZvaWQge1xyXG4gICAgaWYgKCF0aGlzLmlzRW1yaUJhcmtvZHVHZWNlcmxpTWkgfHwgIXRoaXMucHJvZHVjdGlvbk9yZGVyIHx8IHRoaXMuaXNTYXZpbmcpIHtcclxuICAgICAgdGhpcy5mb2N1c1dvcmtPcmRlcigpO1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcblxyXG4gICAgdGhpcy5jb25maXJtYXRpb24ud2FybihcclxuICAgICAgJycsXHJcbiAgICAgICdGaXJlIGtheWTEsW7EsSB5YXBtYWsgaXN0ZWRpxJ9pbml6ZGVuIGVtaW4gbWlzaW5pej8nLFxyXG4gICAgICB7XHJcbiAgICAgICAgeWVzVGV4dDogJ0V2ZXQnLFxyXG4gICAgICAgIGNhbmNlbFRleHQ6ICdIYXnEsXInXHJcbiAgICAgIH1cclxuICAgICkuc3Vic2NyaWJlKChzdGF0dXMpID0+IHtcclxuICAgICAgaWYgKHN0YXR1cyAhPT0gQ29uZmlybWF0aW9uLlN0YXR1cy5jb25maXJtKSB7XHJcbiAgICAgICAgcmV0dXJuO1xyXG4gICAgICB9XHJcblxyXG4gICAgICB0aGlzLmlzU2F2aW5nID0gdHJ1ZTtcclxuICAgICAgdGhpcy5pc0xvYWRpbmcgPSB0cnVlO1xyXG5cclxuICAgICAgdGhpcy5zZXJ2aWNlLmNyZWF0ZSh0aGlzLnByb2R1Y3Rpb25PcmRlci5hYnNvbHV0ZUVudHJ5KS5zdWJzY3JpYmUoe1xyXG4gICAgICAgIG5leHQ6IChyZXNwb25zZSkgPT4ge1xyXG4gICAgICAgICAgaWYgKHJlc3BvbnNlPy5pc1N1Y2Nlc3NmdWwpIHtcclxuICAgICAgICAgICAgdGhpcy5jb25maXJtYXRpb25cclxuICAgICAgICAgICAgICAuc3VjY2VzcygnJywgJ8SwxZ9sZW0gYmHFn2FyxLF5bGEgdGFtYW1sYW5kxLEuJywgdGhpcy5vcHRpb25zKVxyXG4gICAgICAgICAgICAgIC5zdWJzY3JpYmUoKCkgPT4gdGhpcy5jbGVhckFsbCgpKTtcclxuICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgIGNvbnN0IG1lc3NhZ2UgPSByZXNwb25zZT8uZXJyb3JzPy5sZW5ndGhcclxuICAgICAgICAgICAgICA/IHJlc3BvbnNlLmVycm9ycy5qb2luKCdcXG4nKVxyXG4gICAgICAgICAgICAgIDogJ0ZpcmUgacWfbGVtaSBzxLFyYXPEsW5kYSBiaXIgaGF0YSBvbHXFn3R1Lic7XHJcbiAgICAgICAgICAgIHRoaXMuc2hvd0Vycm9yKG1lc3NhZ2UpO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH0sXHJcbiAgICAgICAgZXJyb3I6IChlcnJvcikgPT4ge1xyXG4gICAgICAgICAgdGhpcy5pc1NhdmluZyA9IGZhbHNlO1xyXG4gICAgICAgICAgdGhpcy5pc0xvYWRpbmcgPSBmYWxzZTtcclxuICAgICAgICB9LFxyXG4gICAgICAgIGNvbXBsZXRlOiAoKSA9PiB7XHJcbiAgICAgICAgICB0aGlzLmNsZWFyQWxsKCk7XHJcbiAgICAgICAgfSxcclxuICAgICAgfSk7XHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIGNsZWFyQWxsKCk6IHZvaWQge1xyXG4gICAgdGhpcy5pc0xvYWRpbmcgPSBmYWxzZTtcclxuICAgIHRoaXMuaXNTYXZpbmcgPSBmYWxzZTtcclxuICAgIHRoaXMuaXNFbXJpQmFya29kdUdlY2VybGlNaSA9IGZhbHNlO1xyXG4gICAgdGhpcy5zZWFyY2hlQmFzaWxkaU1pID0gZmFsc2U7XHJcbiAgICB0aGlzLmlzRW1yaUJhcmtvZHUgPSBudWxsO1xyXG4gICAgdGhpcy5wcm9kdWN0aW9uT3JkZXIgPSBudWxsO1xyXG4gICAgdGhpcy5ib2lsZXJZTVByb2R1Y3RXYXN0ZVBvc3REdG8gPSBuZXcgQm9pbGVyWU1Qcm9kdWN0V2FzdGVQb3N0RHRvO1xyXG4gICAgdGhpcy5uZ1pvbmUucnVuKCgpID0+IHtcclxuICAgICAgc2V0VGltZW91dCgoKSA9PiB7XHJcbiAgICAgICAgdGhpcy5ubWJCb3hCYXJrb2ROdW1hcmFzaS5pbnN0YW5jZS5mb2N1cygpO1xyXG4gICAgICB9LCAwKTtcclxuICAgIH0pO1xyXG4gICAgdGhpcy5mb2N1c1dvcmtPcmRlcigpO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBmb2N1c1dvcmtPcmRlcigpOiB2b2lkIHtcclxuICAgIHRoaXMubmdab25lLnJ1bk91dHNpZGVBbmd1bGFyKCgpID0+IHtcclxuICAgICAgc2V0VGltZW91dCgoKSA9PiB7XHJcbiAgICAgICAgdGhpcy5ubWJCb3hCYXJrb2ROdW1hcmFzaT8uaW5zdGFuY2U/LmZvY3VzKCk7XHJcbiAgICAgIH0pO1xyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIHNob3dFcnJvcihtZXNzYWdlOiBzdHJpbmcpOiB2b2lkIHtcclxuICAgIHRoaXMuY29uZmlybWF0aW9uLmVycm9yKCcnLCBtZXNzYWdlLCB0aGlzLm9wdGlvbnMpO1xyXG4gICAgbm90aWZ5KHttZXNzYWdlLCB0eXBlOiAnZXJyb3InfSk7XHJcbiAgfVxyXG5cclxuICBmaW5pc2hXb3JrT3JkZXJBbmRTYXZlV2FzdGUoKTogdm9pZCB7XHJcbiAgICBkZWJ1Z2dlcjtcclxuICAgIGlmICghdGhpcy5pc0VtcmlCYXJrb2R1R2VjZXJsaU1pIHx8ICF0aGlzLnByb2R1Y3Rpb25PcmRlciB8fCB0aGlzLmlzU2F2aW5nKSB7XHJcbiAgICAgIHRoaXMuZm9jdXNXb3JrT3JkZXIoKTtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG5cclxuICAgIHRoaXMuY29uZmlybWF0aW9uLndhcm4oXHJcbiAgICAgICcnLFxyXG4gICAgICAnxLDFnyBlbXJpbmkgYml0aXJtZWsgdmUgZmlyZXlpIGtheWRldG1layBpc3RlZGnEn2luaXpkZW4gZW1pbiBtaXNpbml6PycsXHJcbiAgICAgIHtcclxuICAgICAgICB5ZXNUZXh0OiAnRXZldCcsXHJcbiAgICAgICAgY2FuY2VsVGV4dDogJ0hhecSxcidcclxuICAgICAgfVxyXG4gICAgKS5zdWJzY3JpYmUoKHN0YXR1cykgPT4ge1xyXG4gICAgICBpZiAoc3RhdHVzICE9PSBDb25maXJtYXRpb24uU3RhdHVzLmNvbmZpcm0pIHtcclxuICAgICAgICByZXR1cm47XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIHRoaXMuaXNTYXZpbmcgPSB0cnVlO1xyXG4gICAgICB0aGlzLmlzTG9hZGluZyA9IHRydWU7XHJcblxyXG4gICAgICB0aGlzLnNlcnZpY2UuZmluaXNoV29ya09yZGVyQW5kU2F2ZVdhc3RlKHRoaXMucHJvZHVjdGlvbk9yZGVyLmFic29sdXRlRW50cnkpLnN1YnNjcmliZSh7XHJcbiAgICAgICAgbmV4dDogKHJlc3BvbnNlKSA9PiB7XHJcbiAgICAgICAgICBkZWJ1Z2dlcjtcclxuICAgICAgICAgIGlmIChyZXNwb25zZT8uaXNTdWNjZXNzZnVsKSB7XHJcbiAgICAgICAgICAgIHRoaXMuY29uZmlybWF0aW9uXHJcbiAgICAgICAgICAgICAgLnN1Y2Nlc3MoJycsICfEsMWfIGVtcmkgYml0aXJpbGRpIHZlIGZpcmUga2F5ZGVkaWxkaS4nLCB0aGlzLm9wdGlvbnMpXHJcbiAgICAgICAgICAgICAgLnN1YnNjcmliZSgoKSA9PiB0aGlzLmNsZWFyQWxsKCkpO1xyXG4gICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgY29uc3QgbWVzc2FnZSA9IHJlc3BvbnNlPy5lcnJvcnM/Lmxlbmd0aFxyXG4gICAgICAgICAgICAgID8gcmVzcG9uc2UuZXJyb3JzLmpvaW4oJ1xcbicpXHJcbiAgICAgICAgICAgICAgOiAnxLDFnyBlbXJpIGJpdGlybWUgacWfbGVtaSBzxLFyYXPEsW5kYSBiaXIgaGF0YSBvbHXFn3R1Lic7XHJcbiAgICAgICAgICAgIHRoaXMuc2hvd0Vycm9yKG1lc3NhZ2UpO1xyXG4gICAgICAgICAgICB0aGlzLmlzU2F2aW5nID0gZmFsc2U7XHJcbiAgICAgICAgICAgIHRoaXMuaXNMb2FkaW5nID0gZmFsc2U7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfSxcclxuICAgICAgICBlcnJvcjogKGVycm9yKSA9PiB7XHJcbiAgICAgICAgICBkZWJ1Z2dlcjtcclxuICAgICAgICAgIGxldCBtZXNzYWdlID0gZXJyb3IuZXJyb3IuZXJyb3IubWVzc2FnZTtcclxuICAgICAgICAgIG1lc3NhZ2UgPSBtZXNzYWdlLmxlbmd0aFxyXG4gICAgICAgICAgICAgID8gbWVzc2FnZVxyXG4gICAgICAgICAgICAgIDogJ8SwxZ8gZW1yaSBiaXRpcm1lIGnFn2xlbWkgc8SxcmFzxLFuZGEgYmlyIGhhdGEgb2x1xZ90dS4nO1xyXG4gICAgICAgICAgdGhpcy5pc1NhdmluZyA9IGZhbHNlO1xyXG4gICAgICAgICAgdGhpcy5pc0xvYWRpbmcgPSBmYWxzZTtcclxuICAgICAgICAgIHRoaXMuc2hvd0Vycm9yKG1lc3NhZ2UpO1xyXG4gICAgICAgIH0sXHJcbiAgICAgICAgY29tcGxldGU6ICgpID0+IHtcclxuICAgICAgICAgIHRoaXMuY2xlYXJBbGwoKTtcclxuICAgICAgICB9LFxyXG4gICAgICB9KTtcclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgZmluaXNoV29ya09yZGVyV2l0aG91dFNhdmluZ1dhc3RlKCk6IHZvaWQge1xyXG4gICAgaWYgKCF0aGlzLmlzRW1yaUJhcmtvZHVHZWNlcmxpTWkgfHwgIXRoaXMucHJvZHVjdGlvbk9yZGVyIHx8IHRoaXMuaXNTYXZpbmcpIHtcclxuICAgICAgdGhpcy5mb2N1c1dvcmtPcmRlcigpO1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcblxyXG4gICAgdGhpcy5jb25maXJtYXRpb24ud2FybihcclxuICAgICAgJycsXHJcbiAgICAgICfEsMWfIGVtcmluaSBiaXRpcm1layBpc3RlZGnEn2luaXpkZW4gZW1pbiBtaXNpbml6PyAoRmlyZSBrYXlkZWRpbG1leWVjZWspJyxcclxuICAgICAge1xyXG4gICAgICAgIHllc1RleHQ6ICdFdmV0JyxcclxuICAgICAgICBjYW5jZWxUZXh0OiAnSGF5xLFyJ1xyXG4gICAgICB9XHJcbiAgICApLnN1YnNjcmliZSgoc3RhdHVzKSA9PiB7XHJcbiAgICAgIGlmIChzdGF0dXMgIT09IENvbmZpcm1hdGlvbi5TdGF0dXMuY29uZmlybSkge1xyXG4gICAgICAgIHJldHVybjtcclxuICAgICAgfVxyXG5cclxuICAgICAgdGhpcy5pc1NhdmluZyA9IHRydWU7XHJcbiAgICAgIHRoaXMuaXNMb2FkaW5nID0gdHJ1ZTtcclxuXHJcbiAgICAgIHRoaXMuc2VydmljZS5maW5pc2hXb3JrT3JkZXJXaXRob3V0U2F2aW5nV2FzdGUodGhpcy5wcm9kdWN0aW9uT3JkZXIuYWJzb2x1dGVFbnRyeSkuc3Vic2NyaWJlKHtcclxuICAgICAgICBuZXh0OiAocmVzcG9uc2UpID0+IHtcclxuICAgICAgICAgIGlmIChyZXNwb25zZT8uaXNTdWNjZXNzZnVsKSB7XHJcbiAgICAgICAgICAgIHRoaXMuY29uZmlybWF0aW9uXHJcbiAgICAgICAgICAgICAgLnN1Y2Nlc3MoJycsICfEsMWfIGVtcmkgYml0aXJpbGRpLicsIHRoaXMub3B0aW9ucylcclxuICAgICAgICAgICAgICAuc3Vic2NyaWJlKCgpID0+IHRoaXMuY2xlYXJBbGwoKSk7XHJcbiAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICBjb25zdCBtZXNzYWdlID0gcmVzcG9uc2U/LmVycm9ycz8ubGVuZ3RoXHJcbiAgICAgICAgICAgICAgPyByZXNwb25zZS5lcnJvcnMuam9pbignXFxuJylcclxuICAgICAgICAgICAgICA6ICfEsMWfIGVtcmkgYml0aXJtZSBpxZ9sZW1pIHPEsXJhc8SxbmRhIGJpciBoYXRhIG9sdcWfdHUuJztcclxuICAgICAgICAgICAgdGhpcy5zaG93RXJyb3IobWVzc2FnZSk7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfSxcclxuICAgICAgICBlcnJvcjogKGVycm9yKSA9PiB7XHJcbiAgICAgICAgICB0aGlzLnNob3dFcnJvcignxLDFnyBlbXJpIGJpdGlybWUgacWfbGVtaSBzxLFyYXPEsW5kYSBiaXIgaGF0YSBvbHXFn3R1LicpO1xyXG4gICAgICAgICAgdGhpcy5pc1NhdmluZyA9IGZhbHNlO1xyXG4gICAgICAgICAgdGhpcy5pc0xvYWRpbmcgPSBmYWxzZTtcclxuICAgICAgICB9LFxyXG4gICAgICAgIGNvbXBsZXRlOiAoKSA9PiB7XHJcbiAgICAgICAgICB0aGlzLmNsZWFyQWxsKCk7XHJcbiAgICAgICAgfSxcclxuICAgICAgfSk7XHJcbiAgICB9KTtcclxuICB9XHJcbn1cclxuIiwiPGFicC1wYWdlIFticmVhZGNydW1iXT1cImZhbHNlXCI+XHJcbiAgPGFicC1wYWdlLXRvb2xiYXItY29udGFpbmVyIGNsYXNzPVwiY29sXCI+XHJcbiAgICA8ZGl2IGNsYXNzPVwicm93XCI+XHJcbiAgICAgIDxoMyBjbGFzcz1cInBhZ2UtdGl0bGVcIj5cclxuICAgICAgICB7eyAnVXJldGltWW9uZXRpbWk6OkJvaWxlcllNUHJvZHVjdFdhc3RlLlRpdGxlJyB8IGFicExvY2FsaXphdGlvbiB9fVxyXG4gICAgICA8L2gzPlxyXG4gICAgPC9kaXY+XHJcbiAgICA8ZGl2IGNsYXNzPVwicm93IHB0LTIgZy0yXCI+XHJcbiAgICAgIDxkaXYgY2xhc3M9XCJjb2wtMTIgY29sLW1kLTYgY29sLWxnLTNcIj5cclxuICAgICAgICA8YnV0dG9uIGNsYXNzPVwiYnRuIGJ0bi1zdWNjZXNzIGJ0bi1zbSB3LTEwMFwiIHR5cGU9XCJidXR0b25cIiAoY2xpY2spPVwic2F2ZSgpXCJcclxuICAgICAgICAgICAgICAgIFtkaXNhYmxlZF09XCIhaXNFbXJpQmFya29kdUdlY2VybGlNaSB8fCBpc1NhdmluZ1wiPlxyXG4gICAgICAgICAgPGkgY2xhc3M9XCJmYSBmYS1zYXZlIG1lLTFcIj48L2k+XHJcbiAgICAgICAgICBLYXphbiBEZcSfacWfaW1pIMOWbmNlc2kgRmlyZSBHaXJpxZ9pXHJcbiAgICAgICAgPC9idXR0b24+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgICA8ZGl2IGNsYXNzPVwiY29sLTEyIGNvbC1tZC02IGNvbC1sZy0zXCI+XHJcbiAgICAgICAgPGJ1dHRvbiBjbGFzcz1cImJ0biBidG4tcHJpbWFyeSBidG4tc20gdy0xMDBcIiB0eXBlPVwiYnV0dG9uXCIgKGNsaWNrKT1cImZpbmlzaFdvcmtPcmRlckFuZFNhdmVXYXN0ZSgpXCJcclxuICAgICAgICAgICAgICAgIFtkaXNhYmxlZF09XCIhaXNFbXJpQmFya29kdUdlY2VybGlNaSB8fCBpc1NhdmluZ1wiPlxyXG4gICAgICAgICAgPGkgY2xhc3M9XCJmYSBmYS1jaGVjay1kb3VibGUgbWUtMVwiPjwvaT5cclxuICAgICAgICAgIMSwxZ8gRW1yaW5pIEJpdGlyIHZlIEZpcmV5aSBLYXlkZXRcclxuICAgICAgICA8L2J1dHRvbj5cclxuICAgICAgPC9kaXY+XHJcbiAgICAgIDxkaXYgY2xhc3M9XCJjb2wtMTIgY29sLW1kLTYgY29sLWxnLTNcIj5cclxuICAgICAgICA8YnV0dG9uIGNsYXNzPVwiYnRuIGJ0bi1pbmZvIGJ0bi1zbSB3LTEwMFwiIHR5cGU9XCJidXR0b25cIiAoY2xpY2spPVwiZmluaXNoV29ya09yZGVyV2l0aG91dFNhdmluZ1dhc3RlKClcIlxyXG4gICAgICAgICAgICAgICAgW2Rpc2FibGVkXT1cIiFpc0VtcmlCYXJrb2R1R2VjZXJsaU1pIHx8IGlzU2F2aW5nXCI+XHJcbiAgICAgICAgICA8aSBjbGFzcz1cImZhIGZhLWNoZWNrIG1lLTFcIj48L2k+XHJcbiAgICAgICAgICDEsMWfIEVtcmluaSBCaXRpciB2ZSBGaXJleWkgS2F5ZGV0bWVcclxuICAgICAgICA8L2J1dHRvbj5cclxuICAgICAgPC9kaXY+XHJcbiAgICAgIDxkaXYgY2xhc3M9XCJjb2wtMTIgY29sLW1kLTYgY29sLWxnLTNcIj5cclxuICAgICAgICA8YnV0dG9uIGNsYXNzPVwiYnRuIGJ0bi13YXJuaW5nIGJ0bi1zbSB3LTEwMFwiIHR5cGU9XCJidXR0b25cIiAoY2xpY2spPVwiY2xlYXJBbGwoKVwiXHJcbiAgICAgICAgICAgICAgICBbZGlzYWJsZWRdPVwiaXNMb2FkaW5nXCI+XHJcbiAgICAgICAgICA8aSBjbGFzcz1cImZhIGZhLWJyb29tIG1lLTFcIj48L2k+XHJcbiAgICAgICAgICB7eyAnVXJldGltWW9uZXRpbWk6OkJvaWxlcllNUHJvZHVjdFdhc3RlLkNsZWFuJyB8IGFicExvY2FsaXphdGlvbiB9fVxyXG4gICAgICAgIDwvYnV0dG9uPlxyXG4gICAgICA8L2Rpdj5cclxuICAgIDwvZGl2PlxyXG4gIDwvYWJwLXBhZ2UtdG9vbGJhci1jb250YWluZXI+XHJcblxyXG4gIDxkaXYgY2xhc3M9XCJjYXJkIG10LTJcIj5cclxuICAgIDxkaXYgY2xhc3M9XCJjYXJkLWJvZHlcIj5cclxuICAgICAgPGRpdiBzdHlsZT1cImRpc3BsYXk6IGZsZXg7IGFsaWduLWl0ZW1zOiBjZW50ZXI7XCI+XHJcbiAgICAgICAgPGR4LW51bWJlci1ib3ggI2JhcmtvZE51bWFyYXNpUmVmIGNsYXNzPVwibWUtMVwiIHN0eWxlPVwid2lkdGg6MTAwJTtcIiBbbWluXT1cIjFcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgIFtsYWJlbF09XCInVXJldGltWW9uZXRpbWk6OkJvaWxlcllNUHJvZHVjdFdhc3RlLldvcmtPcmRlck5vJyB8IGFicExvY2FsaXphdGlvblwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgWyh2YWx1ZSldPVwiaXNFbXJpQmFya29kdVwiIChvbkVudGVyS2V5KT1cImdldFByb2R1Y3Rpb25PcmRlcigpXCJcclxuICAgICAgICAgICAgICAgICAgICAgICBbZGlzYWJsZWRdPVwic2VhcmNoZUJhc2lsZGlNaSB8fCBpc0VtcmlCYXJrb2R1R2VjZXJsaU1pXCI+XHJcbiAgICAgICAgPC9keC1udW1iZXItYm94PlxyXG4gICAgICAgIDxkeC1idXR0b24gc3R5bGU9XCJtYXJnaW4tdG9wOiA3LjVweDtcIiBpY29uPVwic2VhcmNoXCIgdHlwZT1cImRlZmF1bHRcIiAob25DbGljayk9XCJnZXRQcm9kdWN0aW9uT3JkZXIoKVwiXHJcbiAgICAgICAgICAgICAgICAgICBbZGlzYWJsZWRdPVwic2VhcmNoZUJhc2lsZGlNaSB8fCBpc0VtcmlCYXJrb2R1R2VjZXJsaU1pXCI+XHJcbiAgICAgICAgPC9keC1idXR0b24+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgICA8ZGl2IGNsYXNzPVwibXQtM1wiICpuZ0lmPVwiaXNFbXJpQmFya29kdUdlY2VybGlNaVwiPlxyXG4gICAgICAgIDxkeC10ZXh0LWJveCBzdHlsZT1cIndpZHRoOjEwMCU7XCJcclxuICAgICAgICAgICAgICAgICAgICAgW2xhYmVsXT1cIidVcmV0aW1Zb25ldGltaTo6Qm9pbGVyWU1Qcm9kdWN0V2FzdGUuQ29udmV5b3JJbmZvcm1hdGlvbicgfCBhYnBMb2NhbGl6YXRpb25cIlxyXG4gICAgICAgICAgICAgICAgICAgICBbKHZhbHVlKV09XCJwcm9kdWN0aW9uT3JkZXIudV9IYXRcIlxyXG4gICAgICAgICAgICAgICAgICAgICBbZGlzYWJsZWRdPVwidHJ1ZVwiPlxyXG4gICAgICAgIDwvZHgtdGV4dC1ib3g+XHJcbiAgICAgICAgPGR4LXRleHQtYm94IHN0eWxlPVwid2lkdGg6MTAwJTtcIlxyXG4gICAgICAgICAgICAgICAgICAgICBbbGFiZWxdPVwiJ1VyZXRpbVlvbmV0aW1pOjpCb2lsZXJZTVByb2R1Y3RXYXN0ZS5Qcm9kdWN0RGVzY3JpcHRpb24nIHwgYWJwTG9jYWxpemF0aW9uXCJcclxuICAgICAgICAgICAgICAgICAgICAgWyh2YWx1ZSldPVwicHJvZHVjdGlvbk9yZGVyLnByb2R1Y3REZXNjcmlwdGlvblwiXHJcbiAgICAgICAgICAgICAgICAgICAgIFtkaXNhYmxlZF09XCJ0cnVlXCI+XHJcbiAgICAgICAgPC9keC10ZXh0LWJveD5cclxuICAgICAgICA8ZHgtdGV4dC1ib3ggc3R5bGU9XCJ3aWR0aDoxMDAlO1wiXHJcbiAgICAgICAgICAgICAgICAgICAgIFtsYWJlbF09XCInVXJldGltWW9uZXRpbWk6OkJvaWxlcllNUHJvZHVjdFdhc3RlLkJhdGNoTnVtYmVyJyB8IGFicExvY2FsaXphdGlvblwiXHJcbiAgICAgICAgICAgICAgICAgICAgIFsodmFsdWUpXT1cInltUHJvZHVjdC5iYXRjaE51bWJlclwiXHJcbiAgICAgICAgICAgICAgICAgICAgIFtkaXNhYmxlZF09XCJ0cnVlXCI+XHJcbiAgICAgICAgPC9keC10ZXh0LWJveD5cclxuICAgICAgICA8ZHgtdGV4dC1ib3ggc3R5bGU9XCJ3aWR0aDoxMDAlO1wiXHJcbiAgICAgICAgICAgICAgICAgICAgIFtsYWJlbF09XCInVXJldGltWW9uZXRpbWk6OkJvaWxlcllNUHJvZHVjdFdhc3RlLkl0ZW1Db2RlJyB8IGFicExvY2FsaXphdGlvblwiXHJcbiAgICAgICAgICAgICAgICAgICAgIFsodmFsdWUpXT1cInltUHJvZHVjdC5pdGVtQ29kZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgIFtkaXNhYmxlZF09XCJ0cnVlXCI+XHJcbiAgICAgICAgPC9keC10ZXh0LWJveD5cclxuICAgICAgICA8ZHgtbnVtYmVyLWJveCBzdHlsZT1cIndpZHRoOjEwMCU7XCJcclxuICAgICAgICAgICAgICAgICAgICAgW2xhYmVsXT1cIidVcmV0aW1Zb25ldGltaTo6Qm9pbGVyWU1Qcm9kdWN0V2FzdGUuUHJvZHVjdFF1YW50aXR5JyB8IGFicExvY2FsaXphdGlvblwiXHJcbiAgICAgICAgICAgICAgICAgICAgIFsodmFsdWUpXT1cInltUHJvZHVjdC5iYXRjaFF1YW50aXR5XCJcclxuICAgICAgICAgICAgICAgICAgICAgW2Rpc2FibGVkXT1cInRydWVcIj5cclxuICAgICAgICA8L2R4LW51bWJlci1ib3g+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgPC9kaXY+XHJcbiAgPC9kaXY+XHJcbjwvYWJwLXBhZ2U+XHJcbiJdfQ==
@@ -71,6 +71,7 @@ export class HitFillingReceiptFromProductionComponent {
71
71
  return;
72
72
  }
73
73
  const salPackUn = this.workOrderInfo.salPackUn || 0;
74
+ debugger;
74
75
  if (this.paletTipi === 'TAM') {
75
76
  // Tam Palet: Pallet height × Pieces per box
76
77
  const paletYukseklik = this.workOrderInfo.u_DKpaletyuseklik || 0;
@@ -79,7 +80,26 @@ export class HitFillingReceiptFromProductionComponent {
79
80
  else {
80
81
  // Kısmi Palet: Koli count × Pieces per box
81
82
  const koliAdet = this.koliAdet || 0;
82
- this.toplamMiktar = koliAdet * salPackUn;
83
+ const kismiMiktar = koliAdet * salPackUn;
84
+ // Calculate TAM pallet quantity for comparison
85
+ const paletYukseklik = this.workOrderInfo.u_DKpaletyuseklik || 0;
86
+ const tamPaletMiktar = paletYukseklik * salPackUn;
87
+ // KISMI quantity should not exceed TAM pallet quantity
88
+ if (kismiMiktar > tamPaletMiktar) {
89
+ this.toplamMiktar = tamPaletMiktar;
90
+ // Reset to maximum allowed value asynchronously to avoid change detection loop
91
+ setTimeout(() => {
92
+ this.koliAdet = paletYukseklik;
93
+ }, 0);
94
+ this.confirmation.warn('', `Koli adedi ${paletYukseklik}'i geçemez! (TAM palet miktarı: ${tamPaletMiktar})`, {
95
+ hideYesBtn: true,
96
+ cancelText: 'Kapat',
97
+ dismissible: false,
98
+ });
99
+ }
100
+ else {
101
+ this.toplamMiktar = kismiMiktar;
102
+ }
83
103
  }
84
104
  }
85
105
  async save() {
@@ -199,4 +219,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImpor
199
219
  type: ViewChild,
200
220
  args: ['koliAdetRef', { static: false }]
201
221
  }] } });
202
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaGl0LWZpbGxpbmctcmVjZWlwdC1mcm9tLXByb2R1Y3Rpb24uY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdXJldGltLXlvbmV0aW1pL3NyYy9saWIvY29tcG9uZW50cy9oaXQtZmlsbGluZy1yZWNlaXB0LWZyb20tcHJvZHVjdGlvbi9oaXQtZmlsbGluZy1yZWNlaXB0LWZyb20tcHJvZHVjdGlvbi5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy91cmV0aW0teW9uZXRpbWkvc3JjL2xpYi9jb21wb25lbnRzL2hpdC1maWxsaW5nLXJlY2VpcHQtZnJvbS1wcm9kdWN0aW9uL2hpdC1maWxsaW5nLXJlY2VpcHQtZnJvbS1wcm9kdWN0aW9uLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsU0FBUyxFQUFVLE1BQU0sZUFBZSxDQUFDOzs7Ozs7OztBQWM3RCxNQUFNLE9BQU8sd0NBQXdDO0lBaUJuRCxZQUNVLE9BQStDLEVBQy9DLFlBQWlDLEVBQ2pDLE1BQWM7UUFGZCxZQUFPLEdBQVAsT0FBTyxDQUF3QztRQUMvQyxpQkFBWSxHQUFaLFlBQVksQ0FBcUI7UUFDakMsV0FBTSxHQUFOLE1BQU0sQ0FBUTtRQWR4QixjQUFTLEdBQVksS0FBSyxDQUFDO1FBQzNCLGFBQVEsR0FBWSxLQUFLLENBQUM7UUFDMUIsc0JBQWlCLEdBQVksS0FBSyxDQUFDO1FBQ25DLGtCQUFhLEdBQXdCLElBQUksQ0FBQztRQUUxQyxrQkFBa0I7UUFDbEIsY0FBUyxHQUFXLEtBQUssQ0FBQyxDQUFDLGVBQWU7UUFDMUMsaUJBQVksR0FBRyxDQUFDLEtBQUssRUFBRSxPQUFPLENBQUMsQ0FBQztRQUNoQyxhQUFRLEdBQVcsSUFBSSxDQUFDO1FBQ3hCLGlCQUFZLEdBQVcsQ0FBQyxDQUFDO0lBTXRCLENBQUM7SUFFSixRQUFR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RyxFQUFFO1lBQ25CLFVBQVUsQ0FBQyxHQUFHLEVBQUU7Z0JBQ2QsSUFBSSxDQUFDLGNBQWMsRUFBRSxRQUFRLENBQUMsS0FBSyxFQUFFLENBQUM7WUFDeEMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDO1FBQ1IsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDOztxSUFsTlUsd0NBQXdDO3lIQUF4Qyx3Q0FBd0MsK1hDZHJELDZvS0ErSUE7MkZEaklhLHdDQUF3QztrQkFMcEQsU0FBUzsrQkFDRSx5Q0FBeUM7b0xBS04sY0FBYztzQkFBMUQsU0FBUzt1QkFBQyxhQUFhLEVBQUUsRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFO2dCQUNHLGNBQWM7c0JBQTNELFNBQVM7dUJBQUMsY0FBYyxFQUFFLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRTtnQkFDQyxjQUFjO3NCQUExRCxTQUFTO3VCQUFDLGFBQWEsRUFBRSxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIFZpZXdDaGlsZCwgTmdab25lIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IER4TnVtYmVyQm94Q29tcG9uZW50LCBEeFJhZGlvR3JvdXBDb21wb25lbnQgfSBmcm9tICdkZXZleHRyZW1lLWFuZ3VsYXInO1xyXG5pbXBvcnQgeyBcclxuICBIaXRGaWxsaW5nUmVjZWlwdEZyb21Qcm9kdWN0aW9uU2VydmljZSxcclxuICBHZXRXb3JrT3JkZXJJbmZvRHRvLFxyXG4gIFdvcmtPcmRlckxpbmVEdG9cclxufSBmcm9tICcuLi8uLi9oaXQtcHJveHkvaGl0LWZpbGxpbmctcmVjZWlwdC1mcm9tLXByb2R1Y3Rpb24vaGl0LWZpbGxpbmctcmVjZWlwdC1mcm9tLXByb2R1Y3Rpb24uc2VydmljZSc7XHJcbmltcG9ydCB7IENvbmZpcm1hdGlvblNlcnZpY2UgfSBmcm9tICdAYWJwL25nLnRoZW1lLnNoYXJlZCc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ2xpYi1oaXQtZmlsbGluZy1yZWNlaXB0LWZyb20tcHJvZHVjdGlvbicsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL2hpdC1maWxsaW5nLXJlY2VpcHQtZnJvbS1wcm9kdWN0aW9uLmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybHM6IFsnLi9oaXQtZmlsbGluZy1yZWNlaXB0LWZyb20tcHJvZHVjdGlvbi5jb21wb25lbnQuY3NzJ10sXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBIaXRGaWxsaW5nUmVjZWlwdEZyb21Qcm9kdWN0aW9uQ29tcG9uZW50IHtcclxuICBAVmlld0NoaWxkKCdpc0VtcmlOb1JlZicsIHsgc3RhdGljOiBmYWxzZSB9KSBubWJCb3hJc0VtcmlObzogRHhOdW1iZXJCb3hDb21wb25lbnQ7XHJcbiAgQFZpZXdDaGlsZCgncGFsZXRUaXBpUmVmJywgeyBzdGF0aWM6IGZhbHNlIH0pIHJhZGlvUGFsZXRUaXBpOiBEeFJhZGlvR3JvdXBDb21wb25lbnQ7XHJcbiAgQFZpZXdDaGlsZCgna29saUFkZXRSZWYnLCB7IHN0YXRpYzogZmFsc2UgfSkgbm1iQm94S29saUFkZXQ6IER4TnVtYmVyQm94Q29tcG9uZW50O1xyXG5cclxuICBpc0VtcmlObzogbnVtYmVyO1xyXG4gIGlzTG9hZGluZzogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIGlzU2F2aW5nOiBib29sZWFuID0gZmFsc2U7XHJcbiAgaXNXb3JrT3JkZXJMb2FkZWQ6IGJvb2xlYW4gPSBmYWxzZTtcclxuICB3b3JrT3JkZXJJbmZvOiBHZXRXb3JrT3JkZXJJbmZvRHRvID0gbnVsbDtcclxuICBcclxuICAvLyBQYWxsZXQgY29udHJvbHNcclxuICBwYWxldFRpcGk6IHN0cmluZyA9ICdUQU0nOyAvLyBUQU0gb3IgS0lTTUlcclxuICBwYWxldFRpcGxlcmkgPSBbJ1RBTScsICdLSVNNSSddO1xyXG4gIGtvbGlBZGV0OiBudW1iZXIgPSBudWxsO1xyXG4gIHRvcGxhbU1pa3RhcjogbnVtYmVyID0gMDtcclxuXHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICBwcml2YXRlIHNlcnZpY2U6IEhpdEZpbGxpbmdSZWNlaXB0RnJvbVByb2R1Y3Rpb25TZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSBjb25maXJtYXRpb246IENvbmZpcm1hdGlvblNlcnZpY2UsXHJcbiAgICBwcml2YXRlIG5nWm9uZTogTmdab25lXHJcbiAgKSB7fVxyXG5cclxuICBuZ09uSW5pdCgpIHtcclxuICAgIC8vIEluaXRpYWxpemVcclxuICB9XHJcblxyXG4gIG5nQWZ0ZXJWaWV3SW5pdCgpIHtcclxuICAgIHRoaXMuZm9jdXNPbklzRW1yaU5vKCk7XHJcbiAgfVxyXG5cclxuICBhc3luYyBnZXRQcm9kdWN0aW9uT3JkZXIoKSB7XHJcbiAgICBpZiAoIXRoaXMuaXNFbXJpTm8pIHtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG5cclxuICAgIHRoaXMuaXNMb2FkaW5nID0gdHJ1ZTtcclxuICAgIHRoaXMuaXNXb3JrT3JkZXJMb2FkZWQgPSBmYWxzZTtcclxuXHJcbiAgICB0aGlzLnNlcnZpY2UuZ2V0V29ya09yZGVySW5mbyh0aGlzLmlzRW1yaU5vKS5zdWJzY3JpYmUoe1xyXG4gICAgICBuZXh0OiByZXNwb25zZSA9PiB7XHJcbiAgICAgICAgaWYgKHJlc3BvbnNlPy5pc1N1Y2Nlc3NmdWwgJiYgcmVzcG9uc2UuaXRlbXMpIHtcclxuICAgICAgICAgIHRoaXMud29ya09yZGVySW5mbyA9IHJlc3BvbnNlLml0ZW1zO1xyXG4gICAgICAgICAgdGhpcy5pc1dvcmtPcmRlckxvYWRlZCA9IHRydWU7XHJcbiAgICAgICAgICBcclxuICAgICAgICAgIC8vIENhbGN1bGF0ZSBkZWZhdWx0IHZhbHVlcyBmb3IgVEFNIHBhbGxldFxyXG4gICAgICAgICAgdGhpcy5jYWxjdWxhdGVUb3RhbFF1YW50aXR5KCk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHRoaXMuaXNMb2FkaW5nID0gZmFsc2U7XHJcbiAgICAgIH0sXHJcbiAgICAgIGVycm9yOiBlID0+IHtcclxuICAgICAgICB0aGlzLmlzV29ya09yZGVyTG9hZGVkID0gZmFsc2U7XHJcbiAgICAgICAgdGhpcy5pc0xvYWRpbmcgPSBmYWxzZTtcclxuICAgICAgICB0aGlzLmNvbmZpcm1hdGlvbi5zdGF0dXMkLnN1YnNjcmliZSh7XHJcbiAgICAgICAgICBuZXh0OiAoKSA9PiB7XHJcbiAgICAgICAgICAgIHRoaXMuY2xlYXJBbGwoKTtcclxuICAgICAgICAgIH0sXHJcbiAgICAgICAgfSk7XHJcbiAgICAgIH0sXHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIG9uUGFsZXRUaXBpQ2hhbmdlKCkge1xyXG4gICAgdGhpcy5jYWxjdWxhdGVUb3RhbFF1YW50aXR5KCk7XHJcbiAgICBcclxuICAgIGlmICh0aGlzLnBhbGV0VGlwaSA9PT0gJ0tJU01JJykge1xyXG4gICAgICBzZXRUaW1lb3V0KCgpID0+IHtcclxuICAgICAgICB0aGlzLm5tYkJveEtvbGlBZGV0Py5pbnN0YW5jZS5mb2N1cygpO1xyXG4gICAgICB9LCAxMDApO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgb25Lb2xpQWRldENoYW5nZSgpIHtcclxuICAgIHRoaXMuY2FsY3VsYXRlVG90YWxRdWFudGl0eSgpO1xyXG4gIH1cclxuXHJcbiAgY2FsY3VsYXRlVG90YWxRdWFudGl0eSgpIHtcclxuICAgIGlmICghdGhpcy53b3JrT3JkZXJJbmZvKSB7XHJcbiAgICAgIHRoaXMudG9wbGFtTWlrdGFyID0gMDtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG5cclxuICAgIGNvbnN0IHNhbFBhY2tVbiA9IHRoaXMud29ya09yZGVySW5mby5zYWxQYWNrVW4gfHwgMDtcclxuICAgIFxyXG4gICAgaWYgKHRoaXMucGFsZXRUaXBpID09PSAnVEFNJykge1xyXG4gICAgICAvLyBUYW0gUGFsZXQ6IFBhbGxldCBoZWlnaHQgw5cgUGllY2VzIHBlciBib3hcclxuICAgICAgY29uc3QgcGFsZXRZdWtzZWtsaWsgPSB0aGlzLndvcmtPcmRlckluZm8udV9ES3BhbGV0eXVzZWtsaWsgfHwgMDtcclxuICAgICAgdGhpcy50b3BsYW1NaWt0YXIgPSBwYWxldFl1a3Nla2xpayAqIHNhbFBhY2tVbjtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIC8vIEvEsXNtaSBQYWxldDogS29saSBjb3VudCDDlyBQaWVjZXMgcGVyIGJveFxyXG4gICAgICBjb25zdCBrb2xpQWRldCA9IHRoaXMua29saUFkZXQgfHwgMDtcclxuICAgICAgdGhpcy50b3BsYW1NaWt0YXIgPSBrb2xpQWRldCAqIHNhbFBhY2tVbjtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIGFzeW5jIHNhdmUoKSB7XHJcbiAgICBkZWJ1Z2dlcjtcclxuICAgIGlmICghdGhpcy5pc0VtcmlObyB8fCAhdGhpcy53b3JrT3JkZXJJbmZvIHx8IHRoaXMudG9wbGFtTWlrdGFyIDw9IDAgfHwgdGhpcy5pc1NhdmluZykge1xyXG4gICAgICBpZiAoIXRoaXMuaXNTYXZpbmcpIHtcclxuICAgICAgICB0aGlzLmNvbmZpcm1hdGlvbi53YXJuKCcnLCAnTMO8dGZlbiB0w7xtIGFsYW5sYXLEsSBkb2xkdXJ1biEnLCB7XHJcbiAgICAgICAgICBoaWRlWWVzQnRuOiB0cnVlLFxyXG4gICAgICAgICAgY2FuY2VsVGV4dDogJ0thcGF0JyxcclxuICAgICAgICAgIGRpc21pc3NpYmxlOiBmYWxzZSxcclxuICAgICAgICB9KTtcclxuICAgICAgfVxyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcblxyXG4gICAgLy8gQ2hlY2sgaWYgY29tcGxldGVkIHF1YW50aXR5IHdpbGwgZXhjZWVkIHBsYW5uZWQgcXVhbnRpdHlcclxuICAgIGNvbnN0IHJlbWFpbmluZ1F0eSA9IHRoaXMud29ya09yZGVySW5mby5wbGFubmVkUXR5IC0gdGhpcy53b3JrT3JkZXJJbmZvLmNtcGx0UXR5O1xyXG4gICAgaWYgKHRoaXMudG9wbGFtTWlrdGFyID4gcmVtYWluaW5nUXR5KSB7XHJcbiAgICAgIHRoaXMuY29uZmlybWF0aW9uLndhcm4oJycsIGBHaXJpbGVuIG1pa3RhciAoJHt0aGlzLnRvcGxhbU1pa3Rhcn0pIGthbGFuIG1pa3RhcsSxICgke3JlbWFpbmluZ1F0eX0pIGHFn8SxeW9yIWAsIHtcclxuICAgICAgICBoaWRlWWVzQnRuOiB0cnVlLFxyXG4gICAgICAgIGNhbmNlbFRleHQ6ICdLYXBhdCcsXHJcbiAgICAgICAgZGlzbWlzc2libGU6IGZhbHNlLFxyXG4gICAgICB9KTtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG5cclxuICAgIGNvbnN0IHNhdmVEYXRhID0ge1xyXG4gICAgICBkb2NFbnRyeTogdGhpcy5pc0VtcmlObyxcclxuICAgICAgcGFsbGV0VHlwZTogdGhpcy5wYWxldFRpcGksXHJcbiAgICAgIGtvbGlDb3VudDogdGhpcy5wYWxldFRpcGkgPT09ICdLSVNNSScgPyB0aGlzLmtvbGlBZGV0IDogbnVsbCxcclxuICAgICAgdG90YWxRdWFudGl0eTogdGhpcy50b3BsYW1NaWt0YXIsXHJcbiAgICAgIHdhcmVob3VzZUNvZGU6IHRoaXMud29ya09yZGVySW5mby53YXJlaG91c2UsXHJcbiAgICAgIGJhdGNoTnVtYmVyOiAnJywgLy8gQmF0Y2ggbnVtYmVyIHdpbGwgYmUgZ2VuZXJhdGVkIGJ5IFNBUFxyXG4gICAgICBjb21wb25lbnRzVG9Db25zdW1lOiB0aGlzLnByZXBhcmVDb21wb25lbnRzVG9Db25zdW1lKClcclxuICAgIH07XHJcblxyXG4gICAgdGhpcy5pc1NhdmluZyA9IHRydWU7XHJcbiAgICB0aGlzLmlzTG9hZGluZyA9IHRydWU7XHJcbiAgICB0aGlzLnNlcnZpY2UuY3JlYXRlUmVjZWlwdChzYXZlRGF0YSkuc3Vic2NyaWJlKHtcclxuICAgICAgbmV4dDogcmVzcG9uc2UgPT4ge1xyXG4gICAgICAgIGlmIChyZXNwb25zZT8uaXNTdWNjZXNzZnVsKSB7XHJcbiAgICAgICAgICB0aGlzLmNvbmZpcm1hdGlvbi5zdWNjZXNzKCcnLCAnw5xyZXRpbWRlbiBnaXJpxZ8gYmHFn2FyxLF5bGEgZ2Vyw6dla2xlxZ90aXJpbGRpIScsIHtcclxuICAgICAgICAgICAgaGlkZVllc0J0bjogdHJ1ZSxcclxuICAgICAgICAgICAgY2FuY2VsVGV4dDogJ0thcGF0JyxcclxuICAgICAgICAgICAgZGlzbWlzc2libGU6IGZhbHNlLFxyXG4gICAgICAgICAgfSk7XHJcbiAgICAgICAgICB0aGlzLmNsZWFyQWxsKCk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHRoaXMuaXNTYXZpbmcgPSBmYWxzZTtcclxuICAgICAgICB0aGlzLmlzTG9hZGluZyA9IGZhbHNlO1xyXG4gICAgICB9LFxyXG4gICAgICBlcnJvcjogZSA9PiB7XHJcbiAgICAgICAgdGhpcy5pc1NhdmluZyA9IGZhbHNlO1xyXG4gICAgICAgIHRoaXMuaXNMb2FkaW5nID0gZmFsc2U7XHJcbiAgICAgIH0sXHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIHByZXBhcmVDb21wb25lbnRzVG9Db25zdW1lKCk6IGFueVtdIHtcclxuICAgIGlmICghdGhpcy53b3JrT3JkZXJJbmZvIHx8ICF0aGlzLndvcmtPcmRlckluZm8ubGluZXMpIHtcclxuICAgICAgcmV0dXJuIFtdO1xyXG4gICAgfVxyXG5cclxuICAgIGNvbnN0IGNvbXBvbmVudHMgPSBbXTtcclxuICAgIGNvbnN0IGl0ZW1Db2RlID0gdGhpcy53b3JrT3JkZXJJbmZvLml0ZW1Db2RlO1xyXG5cclxuICAgIC8vIERldGVybWluZSBpZiB0aGlzIGlzIFlNIG9yIDE1MSogcHJvZHVjdFxyXG4gICAgY29uc3QgaXNZTSA9IGl0ZW1Db2RlLnN0YXJ0c1dpdGgoJ1lNJyk7XHJcbiAgICBjb25zdCBpczE1MSA9IGl0ZW1Db2RlLnN0YXJ0c1dpdGgoJzE1MScpO1xyXG5cclxuICAgIC8vIEdldCBjb250cm9sbGVkIGxpbmVzIChZTS8xNTEqIGl0ZW1zIG1hcmtlZCB3aXRoIFVfS29udHJvbD0nRScpXHJcbiAgICBjb25zdCBjb250cm9sbGVkTGluZXMgPSB0aGlzLndvcmtPcmRlckluZm8ubGluZXMuZmlsdGVyKGxpbmUgPT4gXHJcbiAgICAgIGxpbmUuaXNDb250cm9sbGVkICYmIGxpbmUuYmF0Y2hOdW1iZXJcclxuICAgICk7XHJcblxyXG4gICAgLy8gRm9yIFlNLzE1MSogcHJvZHVjdHMsIGNvbnN1bWUgYnkgbG90IGZyb20gY29udHJvbCBzY3JlZW5cclxuICAgIGZvciAoY29uc3QgbGluZSBvZiBjb250cm9sbGVkTGluZXMpIHtcclxuICAgICAgICBjb21wb25lbnRzLnB1c2goe1xyXG4gICAgICAgICAgaXRlbUNvZGU6IGxpbmUuaXRlbUNvZGUsXHJcbiAgICAgICAgICBxdWFudGl0eTogbGluZS5pc3N1ZWRRdHksXHJcbiAgICAgICAgICB3YXJlaG91c2VDb2RlOiBsaW5lLndhcmVob3VzZSxcclxuICAgICAgICAgIGJhdGNoTnVtYmVyOiBsaW5lLmJhdGNoTnVtYmVyLFxyXG4gICAgICAgICAgYmFzZUxpbmU6IGxpbmUubGluZU51bVxyXG4gICAgICAgIH0pO1xyXG4gICAgfVxyXG5cclxuICAgIC8vIEZvciBvdGhlciBjb21wb25lbnRzLCB1c2UgXCJUZXlpdCBzb25yYXPEsSBvdG9tYXRpayDDp2VrbWVcIiBsb2dpY1xyXG4gICAgLy8gKFRoaXMgd291bGQgYmUgaGFuZGxlZCBieSB0aGUgYmFja2VuZCB3aXRoIEZJRk8gZm9yIGJhdGNoL3NlcmlhbCBpdGVtcylcclxuXHJcbiAgICByZXR1cm4gY29tcG9uZW50cztcclxuICB9XHJcblxyXG4gIGNsZWFyQWxsKCkge1xyXG4gICAgdGhpcy5pc1dvcmtPcmRlckxvYWRlZCA9IGZhbHNlO1xyXG4gICAgdGhpcy5pc0VtcmlObyA9IG51bGw7XHJcbiAgICB0aGlzLndvcmtPcmRlckluZm8gPSBudWxsO1xyXG4gICAgdGhpcy5wYWxldFRpcGkgPSAnVEFNJztcclxuICAgIHRoaXMua29saUFkZXQgPSBudWxsO1xyXG4gICAgdGhpcy50b3BsYW1NaWt0YXIgPSAwO1xyXG4gICAgdGhpcy5pc1NhdmluZyA9IGZhbHNlO1xyXG4gICAgdGhpcy5mb2N1c09uSXNFbXJpTm8oKTtcclxuICB9XHJcblxyXG4gIGdldCBpc1NhdmVCdXR0b25EaXNhYmxlZCgpOiBib29sZWFuIHtcclxuICAgIHJldHVybiAhdGhpcy5pc0VtcmlObyB8fCBcclxuICAgICAgICAgICAhdGhpcy53b3JrT3JkZXJJbmZvIHx8IFxyXG4gICAgICAgICAgIHRoaXMudG9wbGFtTWlrdGFyIDw9IDAgfHxcclxuICAgICAgICAgICAodGhpcy5wYWxldFRpcGkgPT09ICdLSVNNSScgJiYgKCF0aGlzLmtvbGlBZGV0IHx8IHRoaXMua29saUFkZXQgPD0gMCkpIHx8XHJcbiAgICAgICAgICAgdGhpcy5pc1NhdmluZztcclxuICB9XHJcblxyXG4gIGZvY3VzT25Jc0VtcmlObygpIHtcclxuICAgIHRoaXMubmdab25lLnJ1bigoKSA9PiB7XHJcbiAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xyXG4gICAgICAgIHRoaXMubm1iQm94SXNFbXJpTm8/Lmluc3RhbmNlLmZvY3VzKCk7XHJcbiAgICAgIH0sIDApO1xyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxufVxyXG4iLCI8YWJwLXBhZ2UgW2JyZWFkY3J1bWJdPVwiZmFsc2VcIj5cclxuICA8YWJwLXBhZ2UtdG9vbGJhci1jb250YWluZXIgY2xhc3M9XCJjb2xcIj5cclxuICAgIDxkaXYgY2xhc3M9XCJyb3dcIj5cclxuICAgICAgPGgzIGNsYXNzPVwicGFnZS10aXRsZVwiPlxyXG4gICAgICAgIMOccmV0aW1kZW4gR2lyacWfXHJcbiAgICAgIDwvaDM+XHJcbiAgICA8L2Rpdj5cclxuICAgIDxkaXYgY2xhc3M9XCJyb3cgdGV4dC1sZy1lbmQgcHQtMlwiPlxyXG4gICAgICA8ZGl2IGNsYXNzPVwiY29sLTZcIj5cclxuICAgICAgICA8YnV0dG9uIGNsYXNzPVwiYnRuIGJ0bi1zdWNjZXNzIGJ0bi1zbVwiIHR5cGU9XCJidXR0b25cIiAoY2xpY2spPVwic2F2ZSgpXCIgW2Rpc2FibGVkXT1cImlzU2F2ZUJ1dHRvbkRpc2FibGVkXCI+XHJcbiAgICAgICAgICA8aSBjbGFzcz1cImZhIGZhLWNoZWNrIG1lLTFcIj48L2k+XHJcbiAgICAgICAgICDDnHJldGltZGVuIEdpcmnFnyBZYXBcclxuICAgICAgICA8L2J1dHRvbj5cclxuICAgICAgPC9kaXY+XHJcbiAgICAgIDxkaXYgY2xhc3M9XCJjb2wtNlwiPlxyXG4gICAgICAgIDxidXR0b24gY2xhc3M9XCJidG4gYnRuLXdhcm5pbmcgYnRuLXNtXCIgdHlwZT1cImJ1dHRvblwiIChjbGljayk9XCJjbGVhckFsbCgpXCI+XHJcbiAgICAgICAgICA8aSBjbGFzcz1cImZhIGZhLWJyb29tIG1lLTFcIj48L2k+XHJcbiAgICAgICAgICBUZW1pemxlXHJcbiAgICAgICAgPC9idXR0b24+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgPC9kaXY+XHJcbiAgPC9hYnAtcGFnZS10b29sYmFyLWNvbnRhaW5lcj5cclxuICBcclxuICA8ZGl2IGNsYXNzPVwiY2FyZCBtdC0yXCI+XHJcbiAgICA8ZGl2IGNsYXNzPVwiY2FyZC1ib2R5XCIgc3R5bGU9XCJoZWlnaHQ6IGNhbGMoMTAwdmggLSAyNDFweCk7IG92ZXJmbG93OiBhdXRvO1wiPlxyXG4gICAgICA8IS0tIFdvcmsgT3JkZXIgSW5wdXQgLS0+XHJcbiAgICAgIDxkaXYgc3R5bGU9XCJkaXNwbGF5OiBmbGV4OyBhbGlnbi1pdGVtczogY2VudGVyO1wiPlxyXG4gICAgICAgIDxkeC1udW1iZXItYm94ICNpc0VtcmlOb1JlZiBcclxuICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cIm1lLTFcIiBcclxuICAgICAgICAgICAgICAgICAgICAgICBzdHlsZT1cIndpZHRoOjEwMCU7XCJcclxuICAgICAgICAgICAgICAgICAgICAgICBsYWJlbD1cIsSwxZ8gRW1yaSBOb1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgWyh2YWx1ZSldPVwiaXNFbXJpTm9cIlxyXG4gICAgICAgICAgICAgICAgICAgICAgIChvbkNoYW5nZSk9XCJnZXRQcm9kdWN0aW9uT3JkZXIoKVwiIFxyXG4gICAgICAgICAgICAgICAgICAgICAgIChvbkVudGVyS2V5KT1cImdldFByb2R1Y3Rpb25PcmRlcigpXCJcclxuICAgICAgICAgICAgICAgICAgICAgICBbZGlzYWJsZWRdPVwiaXNXb3JrT3JkZXJMb2FkZWRcIj5cclxuICAgICAgICA8L2R4LW51bWJlci1ib3g+XHJcbiAgICAgICAgPGR4LWJ1dHRvbiBzdHlsZT1cIm1hcmdpbi10b3A6IDcuNXB4O1wiIFxyXG4gICAgICAgICAgICAgICAgICAgaWNvbj1cInNlYXJjaFwiIFxyXG4gICAgICAgICAgICAgICAgICAgdHlwZT1cImRlZmF1bHRcIiBcclxuICAgICAgICAgICAgICAgICAgIChvbkNsaWNrKT1cImdldFByb2R1Y3Rpb25PcmRlcigpXCJcclxuICAgICAgICAgICAgICAgICAgIFtkaXNhYmxlZF09XCJpc1dvcmtPcmRlckxvYWRlZFwiPlxyXG4gICAgICAgIDwvZHgtYnV0dG9uPlxyXG4gICAgICA8L2Rpdj5cclxuXHJcbiAgICAgIDwhLS0gV29yayBPcmRlciBJbmZvcm1hdGlvbiAtLT5cclxuICAgICAgPGRpdiBjbGFzcz1cIm10LTNcIiAqbmdJZj1cImlzV29ya09yZGVyTG9hZGVkICYmIHdvcmtPcmRlckluZm9cIj5cclxuICAgICAgICA8IS0tIFByb2R1Y3QgSW5mbyAtLT5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwicm93XCI+XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLW1kLTZcIj5cclxuICAgICAgICAgICAgPGR4LXRleHQtYm94IFxyXG4gICAgICAgICAgICAgIGxhYmVsPVwiw5xyw7xuIEtvZHVcIiBcclxuICAgICAgICAgICAgICBbKHZhbHVlKV09XCJ3b3JrT3JkZXJJbmZvLml0ZW1Db2RlXCIgXHJcbiAgICAgICAgICAgICAgW2Rpc2FibGVkXT1cInRydWVcIj5cclxuICAgICAgICAgICAgPC9keC10ZXh0LWJveD5cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC1tZC02XCI+XHJcbiAgICAgICAgICAgIDxkeC10ZXh0LWJveCBcclxuICAgICAgICAgICAgICBsYWJlbD1cIsOccsO8biBBZMSxXCIgXHJcbiAgICAgICAgICAgICAgWyh2YWx1ZSldPVwid29ya09yZGVySW5mby5pdGVtTmFtZVwiIFxyXG4gICAgICAgICAgICAgIFtkaXNhYmxlZF09XCJ0cnVlXCI+XHJcbiAgICAgICAgICAgIDwvZHgtdGV4dC1ib3g+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8L2Rpdj5cclxuXHJcbiAgICAgICAgPGRpdiBjbGFzcz1cInJvdyBtdC0yXCI+XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLW1kLTRcIj5cclxuICAgICAgICAgICAgPGR4LW51bWJlci1ib3ggXHJcbiAgICAgICAgICAgICAgbGFiZWw9XCJQbGFubGFuYW4gTWlrdGFyXCIgXHJcbiAgICAgICAgICAgICAgWyh2YWx1ZSldPVwid29ya09yZGVySW5mby5wbGFubmVkUXR5XCIgXHJcbiAgICAgICAgICAgICAgW2Rpc2FibGVkXT1cInRydWVcIj5cclxuICAgICAgICAgICAgPC9keC1udW1iZXItYm94PlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLW1kLTRcIj5cclxuICAgICAgICAgICAgPGR4LW51bWJlci1ib3ggXHJcbiAgICAgICAgICAgICAgbGFiZWw9XCJUYW1hbWxhbmFuIE1pa3RhclwiIFxyXG4gICAgICAgICAgICAgIFsodmFsdWUpXT1cIndvcmtPcmRlckluZm8uY21wbHRRdHlcIiBcclxuICAgICAgICAgICAgICBbZGlzYWJsZWRdPVwidHJ1ZVwiPlxyXG4gICAgICAgICAgICA8L2R4LW51bWJlci1ib3g+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtbWQtNFwiPlxyXG4gICAgICAgICAgICA8ZHgtdGV4dC1ib3ggXHJcbiAgICAgICAgICAgICAgbGFiZWw9XCJEZXBvXCIgXHJcbiAgICAgICAgICAgICAgWyh2YWx1ZSldPVwid29ya09yZGVySW5mby53YXJlaG91c2VcIiBcclxuICAgICAgICAgICAgICBbZGlzYWJsZWRdPVwidHJ1ZVwiPlxyXG4gICAgICAgICAgICA8L2R4LXRleHQtYm94PlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC9kaXY+XHJcblxyXG4gICAgICAgIDwhLS0gUGFsbGV0IFR5cGUgU2VsZWN0aW9uIC0tPlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJyb3cgbXQtM1wiPlxyXG4gICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC1tZC0xMlwiPlxyXG4gICAgICAgICAgICA8ZHgtcmFkaW8tZ3JvdXAgI3BhbGV0VGlwaVJlZlxyXG4gICAgICAgICAgICAgIFtpdGVtc109XCJwYWxldFRpcGxlcmlcIlxyXG4gICAgICAgICAgICAgIGxheW91dD1cImhvcml6b250YWxcIlxyXG4gICAgICAgICAgICAgIFsodmFsdWUpXT1cInBhbGV0VGlwaVwiXHJcbiAgICAgICAgICAgICAgKG9uVmFsdWVDaGFuZ2VkKT1cIm9uUGFsZXRUaXBpQ2hhbmdlKClcIj5cclxuICAgICAgICAgICAgPC9keC1yYWRpby1ncm91cD5cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgICA8IS0tIEtvbGkgQ291bnQgZm9yIEtJU01JIFBhbGxldCAtLT5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwicm93IG10LTJcIiAqbmdJZj1cInBhbGV0VGlwaSA9PT0gJ0tJU01JJ1wiPlxyXG4gICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC1tZC02XCI+XHJcbiAgICAgICAgICAgIDxkeC1udW1iZXItYm94ICNrb2xpQWRldFJlZlxyXG4gICAgICAgICAgICAgIGxhYmVsPVwiS29saSBBZGVkaVwiXHJcbiAgICAgICAgICAgICAgWyh2YWx1ZSldPVwia29saUFkZXRcIlxyXG4gICAgICAgICAgICAgIChvblZhbHVlQ2hhbmdlZCk9XCJvbktvbGlBZGV0Q2hhbmdlKClcIlxyXG4gICAgICAgICAgICAgIFttaW5dPVwiMVwiPlxyXG4gICAgICAgICAgICA8L2R4LW51bWJlci1ib3g+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8L2Rpdj5cclxuXHJcbiAgICAgICAgPCEtLSBDYWxjdWxhdGVkIFRvdGFsIFF1YW50aXR5IC0tPlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJyb3cgbXQtMlwiPlxyXG4gICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC1tZC02XCI+XHJcbiAgICAgICAgICAgIDxkeC1udW1iZXItYm94IFxyXG4gICAgICAgICAgICAgIGxhYmVsPVwiVG9wbGFtIE1pa3RhciAoQWRldClcIlxyXG4gICAgICAgICAgICAgIFsodmFsdWUpXT1cInRvcGxhbU1pa3RhclwiXHJcbiAgICAgICAgICAgICAgW2Rpc2FibGVkXT1cInRydWVcIlxyXG4gICAgICAgICAgICAgIFtzdHlsaW5nTW9kZV09XCInZmlsbGVkJ1wiPlxyXG4gICAgICAgICAgICA8L2R4LW51bWJlci1ib3g+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtbWQtNlwiPlxyXG4gICAgICAgICAgICA8ZHgtbnVtYmVyLWJveCBcclxuICAgICAgICAgICAgICBsYWJlbD1cIktvbGkgxLDDp2kgQWRldFwiXHJcbiAgICAgICAgICAgICAgWyh2YWx1ZSldPVwid29ya09yZGVySW5mby5zYWxQYWNrVW5cIlxyXG4gICAgICAgICAgICAgIFtkaXNhYmxlZF09XCJ0cnVlXCI+XHJcbiAgICAgICAgICAgIDwvZHgtbnVtYmVyLWJveD5cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgICA8IS0tIFF1YWxpdHkgU3RhdHVzIEluZm8gLS0+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cInJvdyBtdC0yXCIgKm5nSWY9XCJ3b3JrT3JkZXJJbmZvLnVfS2FsaXRlRHVydW11XCI+XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLW1kLTEyXCI+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJhbGVydCBhbGVydC1pbmZvXCIgcm9sZT1cImFsZXJ0XCI+XHJcbiAgICAgICAgICAgICAgPHN0cm9uZz5LYWxpdGUgRHVydW11Ojwvc3Ryb25nPiB7eyB3b3JrT3JkZXJJbmZvLnVfS2FsaXRlRHVydW11IH19XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgPC9kaXY+XHJcbiAgPC9kaXY+XHJcbjwvYWJwLXBhZ2U+XHJcbiJdfQ==
222
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaGl0LWZpbGxpbmctcmVjZWlwdC1mcm9tLXByb2R1Y3Rpb24uY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdXJldGltLXlvbmV0aW1pL3NyYy9saWIvY29tcG9uZW50cy9oaXQtZmlsbGluZy1yZWNlaXB0LWZyb20tcHJvZHVjdGlvbi9oaXQtZmlsbGluZy1yZWNlaXB0LWZyb20tcHJvZHVjdGlvbi5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy91cmV0aW0teW9uZXRpbWkvc3JjL2xpYi9jb21wb25lbnRzL2hpdC1maWxsaW5nLXJlY2VpcHQtZnJvbS1wcm9kdWN0aW9uL2hpdC1maWxsaW5nLXJlY2VpcHQtZnJvbS1wcm9kdWN0aW9uLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsU0FBUyxFQUFVLE1BQU0sZUFBZSxDQUFDOzs7Ozs7OztBQWM3RCxNQUFNLE9BQU8sd0NBQXdDO0lBaUJuRCxZQUNVLE9BQStDLEVBQy9DLFlBQWlDLEVBQ2pDLE1BQWM7UUFGZCxZQUFPLEdBQVAsT0FBTyxDQUF3QztRQUMvQyxpQkFBWSxHQUFaLFlBQVksQ0FBcUI7UUFDakMsV0FBTSxHQUFOLE1BQU0sQ0FBUTtRQWR4QixjQUFTLEdBQVksS0FBSyxDQUFDO1FBQzNCLGFBQVEsR0FBWSxLQUFLLENBQUM7UUFDMUIsc0JBQWlCLEdBQVksS0FBSyxDQUFDO1FBQ25DLGtCQUFhLEdBQXdCLElBQUksQ0FBQztRQUUxQyxrQkFBa0I7UUFDbEIsY0FBUyxHQUFXLEtBQUssQ0FBQyxDQUFDLGVBQWU7UUFDMUMsaUJBQVksR0FBRyxDQUFDLEtBQUssRUFBRSxPQUFPLENBQUMsQ0FBQztRQUNoQyxhQUFRLEdBQVcsSUFBSSxDQUFDO1FBQ3hCLGlCQUFZLEdBQVcsQ0FBQyxDQUFDO0lBTXRCLENBQUM7SUFFSixRQUFR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QTFELFNBQVM7dUJBQUMsYUFBYSxFQUFFLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgVmlld0NoaWxkLCBOZ1pvbmUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgRHhOdW1iZXJCb3hDb21wb25lbnQsIER4UmFkaW9Hcm91cENvbXBvbmVudCB9IGZyb20gJ2RldmV4dHJlbWUtYW5ndWxhcic7XHJcbmltcG9ydCB7IFxyXG4gIEhpdEZpbGxpbmdSZWNlaXB0RnJvbVByb2R1Y3Rpb25TZXJ2aWNlLFxyXG4gIEdldFdvcmtPcmRlckluZm9EdG8sXHJcbiAgV29ya09yZGVyTGluZUR0b1xyXG59IGZyb20gJy4uLy4uL2hpdC1wcm94eS9oaXQtZmlsbGluZy1yZWNlaXB0LWZyb20tcHJvZHVjdGlvbi9oaXQtZmlsbGluZy1yZWNlaXB0LWZyb20tcHJvZHVjdGlvbi5zZXJ2aWNlJztcclxuaW1wb3J0IHsgQ29uZmlybWF0aW9uU2VydmljZSB9IGZyb20gJ0BhYnAvbmcudGhlbWUuc2hhcmVkJztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnbGliLWhpdC1maWxsaW5nLXJlY2VpcHQtZnJvbS1wcm9kdWN0aW9uJyxcclxuICB0ZW1wbGF0ZVVybDogJy4vaGl0LWZpbGxpbmctcmVjZWlwdC1mcm9tLXByb2R1Y3Rpb24uY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsczogWycuL2hpdC1maWxsaW5nLXJlY2VpcHQtZnJvbS1wcm9kdWN0aW9uLmNvbXBvbmVudC5jc3MnXSxcclxufSlcclxuZXhwb3J0IGNsYXNzIEhpdEZpbGxpbmdSZWNlaXB0RnJvbVByb2R1Y3Rpb25Db21wb25lbnQge1xyXG4gIEBWaWV3Q2hpbGQoJ2lzRW1yaU5vUmVmJywgeyBzdGF0aWM6IGZhbHNlIH0pIG5tYkJveElzRW1yaU5vOiBEeE51bWJlckJveENvbXBvbmVudDtcclxuICBAVmlld0NoaWxkKCdwYWxldFRpcGlSZWYnLCB7IHN0YXRpYzogZmFsc2UgfSkgcmFkaW9QYWxldFRpcGk6IER4UmFkaW9Hcm91cENvbXBvbmVudDtcclxuICBAVmlld0NoaWxkKCdrb2xpQWRldFJlZicsIHsgc3RhdGljOiBmYWxzZSB9KSBubWJCb3hLb2xpQWRldDogRHhOdW1iZXJCb3hDb21wb25lbnQ7XHJcblxyXG4gIGlzRW1yaU5vOiBudW1iZXI7XHJcbiAgaXNMb2FkaW5nOiBib29sZWFuID0gZmFsc2U7XHJcbiAgaXNTYXZpbmc6IGJvb2xlYW4gPSBmYWxzZTtcclxuICBpc1dvcmtPcmRlckxvYWRlZDogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIHdvcmtPcmRlckluZm86IEdldFdvcmtPcmRlckluZm9EdG8gPSBudWxsO1xyXG4gIFxyXG4gIC8vIFBhbGxldCBjb250cm9sc1xyXG4gIHBhbGV0VGlwaTogc3RyaW5nID0gJ1RBTSc7IC8vIFRBTSBvciBLSVNNSVxyXG4gIHBhbGV0VGlwbGVyaSA9IFsnVEFNJywgJ0tJU01JJ107XHJcbiAga29saUFkZXQ6IG51bWJlciA9IG51bGw7XHJcbiAgdG9wbGFtTWlrdGFyOiBudW1iZXIgPSAwO1xyXG5cclxuICBjb25zdHJ1Y3RvcihcclxuICAgIHByaXZhdGUgc2VydmljZTogSGl0RmlsbGluZ1JlY2VpcHRGcm9tUHJvZHVjdGlvblNlcnZpY2UsXHJcbiAgICBwcml2YXRlIGNvbmZpcm1hdGlvbjogQ29uZmlybWF0aW9uU2VydmljZSxcclxuICAgIHByaXZhdGUgbmdab25lOiBOZ1pvbmVcclxuICApIHt9XHJcblxyXG4gIG5nT25Jbml0KCkge1xyXG4gICAgLy8gSW5pdGlhbGl6ZVxyXG4gIH1cclxuXHJcbiAgbmdBZnRlclZpZXdJbml0KCkge1xyXG4gICAgdGhpcy5mb2N1c09uSXNFbXJpTm8oKTtcclxuICB9XHJcblxyXG4gIGFzeW5jIGdldFByb2R1Y3Rpb25PcmRlcigpIHtcclxuICAgIGlmICghdGhpcy5pc0VtcmlObykge1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcblxyXG4gICAgdGhpcy5pc0xvYWRpbmcgPSB0cnVlO1xyXG4gICAgdGhpcy5pc1dvcmtPcmRlckxvYWRlZCA9IGZhbHNlO1xyXG5cclxuICAgIHRoaXMuc2VydmljZS5nZXRXb3JrT3JkZXJJbmZvKHRoaXMuaXNFbXJpTm8pLnN1YnNjcmliZSh7XHJcbiAgICAgIG5leHQ6IHJlc3BvbnNlID0+IHtcclxuICAgICAgICBpZiAocmVzcG9uc2U/LmlzU3VjY2Vzc2Z1bCAmJiByZXNwb25zZS5pdGVtcykge1xyXG4gICAgICAgICAgdGhpcy53b3JrT3JkZXJJbmZvID0gcmVzcG9uc2UuaXRlbXM7XHJcbiAgICAgICAgICB0aGlzLmlzV29ya09yZGVyTG9hZGVkID0gdHJ1ZTtcclxuICAgICAgICAgIFxyXG4gICAgICAgICAgLy8gQ2FsY3VsYXRlIGRlZmF1bHQgdmFsdWVzIGZvciBUQU0gcGFsbGV0XHJcbiAgICAgICAgICB0aGlzLmNhbGN1bGF0ZVRvdGFsUXVhbnRpdHkoKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgdGhpcy5pc0xvYWRpbmcgPSBmYWxzZTtcclxuICAgICAgfSxcclxuICAgICAgZXJyb3I6IGUgPT4ge1xyXG4gICAgICAgIHRoaXMuaXNXb3JrT3JkZXJMb2FkZWQgPSBmYWxzZTtcclxuICAgICAgICB0aGlzLmlzTG9hZGluZyA9IGZhbHNlO1xyXG4gICAgICAgIHRoaXMuY29uZmlybWF0aW9uLnN0YXR1cyQuc3Vic2NyaWJlKHtcclxuICAgICAgICAgIG5leHQ6ICgpID0+IHtcclxuICAgICAgICAgICAgdGhpcy5jbGVhckFsbCgpO1xyXG4gICAgICAgICAgfSxcclxuICAgICAgICB9KTtcclxuICAgICAgfSxcclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgb25QYWxldFRpcGlDaGFuZ2UoKSB7XHJcbiAgICB0aGlzLmNhbGN1bGF0ZVRvdGFsUXVhbnRpdHkoKTtcclxuICAgIFxyXG4gICAgaWYgKHRoaXMucGFsZXRUaXBpID09PSAnS0lTTUknKSB7XHJcbiAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xyXG4gICAgICAgIHRoaXMubm1iQm94S29saUFkZXQ/Lmluc3RhbmNlLmZvY3VzKCk7XHJcbiAgICAgIH0sIDEwMCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBvbktvbGlBZGV0Q2hhbmdlKCkge1xyXG4gICAgdGhpcy5jYWxjdWxhdGVUb3RhbFF1YW50aXR5KCk7XHJcbiAgfVxyXG5cclxuICBjYWxjdWxhdGVUb3RhbFF1YW50aXR5KCkge1xyXG4gICAgaWYgKCF0aGlzLndvcmtPcmRlckluZm8pIHtcclxuICAgICAgdGhpcy50b3BsYW1NaWt0YXIgPSAwO1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcblxyXG4gICAgY29uc3Qgc2FsUGFja1VuID0gdGhpcy53b3JrT3JkZXJJbmZvLnNhbFBhY2tVbiB8fCAwO1xyXG4gICAgZGVidWdnZXI7XHJcbiAgICBpZiAodGhpcy5wYWxldFRpcGkgPT09ICdUQU0nKSB7XHJcbiAgICAgIC8vIFRhbSBQYWxldDogUGFsbGV0IGhlaWdodCDDlyBQaWVjZXMgcGVyIGJveFxyXG4gICAgICBjb25zdCBwYWxldFl1a3Nla2xpayA9IHRoaXMud29ya09yZGVySW5mby51X0RLcGFsZXR5dXNla2xpayB8fCAwO1xyXG4gICAgICB0aGlzLnRvcGxhbU1pa3RhciA9IHBhbGV0WXVrc2VrbGlrICogc2FsUGFja1VuO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgLy8gS8Sxc21pIFBhbGV0OiBLb2xpIGNvdW50IMOXIFBpZWNlcyBwZXIgYm94XHJcbiAgICAgIGNvbnN0IGtvbGlBZGV0ID0gdGhpcy5rb2xpQWRldCB8fCAwO1xyXG4gICAgICBjb25zdCBraXNtaU1pa3RhciA9IGtvbGlBZGV0ICogc2FsUGFja1VuO1xyXG4gICAgICBcclxuICAgICAgLy8gQ2FsY3VsYXRlIFRBTSBwYWxsZXQgcXVhbnRpdHkgZm9yIGNvbXBhcmlzb25cclxuICAgICAgY29uc3QgcGFsZXRZdWtzZWtsaWsgPSB0aGlzLndvcmtPcmRlckluZm8udV9ES3BhbGV0eXVzZWtsaWsgfHwgMDtcclxuICAgICAgY29uc3QgdGFtUGFsZXRNaWt0YXIgPSBwYWxldFl1a3Nla2xpayAqIHNhbFBhY2tVbjtcclxuICAgICAgXHJcbiAgICAgIC8vIEtJU01JIHF1YW50aXR5IHNob3VsZCBub3QgZXhjZWVkIFRBTSBwYWxsZXQgcXVhbnRpdHlcclxuICAgICAgaWYgKGtpc21pTWlrdGFyID4gdGFtUGFsZXRNaWt0YXIpIHtcclxuICAgICAgICB0aGlzLnRvcGxhbU1pa3RhciA9IHRhbVBhbGV0TWlrdGFyO1xyXG4gICAgICAgIFxyXG4gICAgICAgIC8vIFJlc2V0IHRvIG1heGltdW0gYWxsb3dlZCB2YWx1ZSBhc3luY2hyb25vdXNseSB0byBhdm9pZCBjaGFuZ2UgZGV0ZWN0aW9uIGxvb3BcclxuICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHtcclxuICAgICAgICAgIHRoaXMua29saUFkZXQgPSBwYWxldFl1a3Nla2xpaztcclxuICAgICAgICB9LCAwKTtcclxuICAgICAgICBcclxuICAgICAgICB0aGlzLmNvbmZpcm1hdGlvbi53YXJuKCcnLCBgS29saSBhZGVkaSAke3BhbGV0WXVrc2VrbGlrfSdpIGdlw6dlbWV6ISAoVEFNIHBhbGV0IG1pa3RhcsSxOiAke3RhbVBhbGV0TWlrdGFyfSlgLCB7XHJcbiAgICAgICAgICBoaWRlWWVzQnRuOiB0cnVlLFxyXG4gICAgICAgICAgY2FuY2VsVGV4dDogJ0thcGF0JyxcclxuICAgICAgICAgIGRpc21pc3NpYmxlOiBmYWxzZSxcclxuICAgICAgICB9KTtcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICB0aGlzLnRvcGxhbU1pa3RhciA9IGtpc21pTWlrdGFyO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBhc3luYyBzYXZlKCkge1xyXG4gICAgZGVidWdnZXI7XHJcbiAgICBpZiAoIXRoaXMuaXNFbXJpTm8gfHwgIXRoaXMud29ya09yZGVySW5mbyB8fCB0aGlzLnRvcGxhbU1pa3RhciA8PSAwIHx8IHRoaXMuaXNTYXZpbmcpIHtcclxuICAgICAgaWYgKCF0aGlzLmlzU2F2aW5nKSB7XHJcbiAgICAgICAgdGhpcy5jb25maXJtYXRpb24ud2FybignJywgJ0zDvHRmZW4gdMO8bSBhbGFubGFyxLEgZG9sZHVydW4hJywge1xyXG4gICAgICAgICAgaGlkZVllc0J0bjogdHJ1ZSxcclxuICAgICAgICAgIGNhbmNlbFRleHQ6ICdLYXBhdCcsXHJcbiAgICAgICAgICBkaXNtaXNzaWJsZTogZmFsc2UsXHJcbiAgICAgICAgfSk7XHJcbiAgICAgIH1cclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG5cclxuICAgIC8vIENoZWNrIGlmIGNvbXBsZXRlZCBxdWFudGl0eSB3aWxsIGV4Y2VlZCBwbGFubmVkIHF1YW50aXR5XHJcbiAgICBjb25zdCByZW1haW5pbmdRdHkgPSB0aGlzLndvcmtPcmRlckluZm8ucGxhbm5lZFF0eSAtIHRoaXMud29ya09yZGVySW5mby5jbXBsdFF0eTtcclxuICAgIGlmICh0aGlzLnRvcGxhbU1pa3RhciA+IHJlbWFpbmluZ1F0eSkge1xyXG4gICAgICB0aGlzLmNvbmZpcm1hdGlvbi53YXJuKCcnLCBgR2lyaWxlbiBtaWt0YXIgKCR7dGhpcy50b3BsYW1NaWt0YXJ9KSBrYWxhbiBtaWt0YXLEsSAoJHtyZW1haW5pbmdRdHl9KSBhxZ/EsXlvciFgLCB7XHJcbiAgICAgICAgaGlkZVllc0J0bjogdHJ1ZSxcclxuICAgICAgICBjYW5jZWxUZXh0OiAnS2FwYXQnLFxyXG4gICAgICAgIGRpc21pc3NpYmxlOiBmYWxzZSxcclxuICAgICAgfSk7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuXHJcbiAgICBjb25zdCBzYXZlRGF0YSA9IHtcclxuICAgICAgZG9jRW50cnk6IHRoaXMuaXNFbXJpTm8sXHJcbiAgICAgIHBhbGxldFR5cGU6IHRoaXMucGFsZXRUaXBpLFxyXG4gICAgICBrb2xpQ291bnQ6IHRoaXMucGFsZXRUaXBpID09PSAnS0lTTUknID8gdGhpcy5rb2xpQWRldCA6IG51bGwsXHJcbiAgICAgIHRvdGFsUXVhbnRpdHk6IHRoaXMudG9wbGFtTWlrdGFyLFxyXG4gICAgICB3YXJlaG91c2VDb2RlOiB0aGlzLndvcmtPcmRlckluZm8ud2FyZWhvdXNlLFxyXG4gICAgICBiYXRjaE51bWJlcjogJycsIC8vIEJhdGNoIG51bWJlciB3aWxsIGJlIGdlbmVyYXRlZCBieSBTQVBcclxuICAgICAgY29tcG9uZW50c1RvQ29uc3VtZTogdGhpcy5wcmVwYXJlQ29tcG9uZW50c1RvQ29uc3VtZSgpXHJcbiAgICB9O1xyXG5cclxuICAgIHRoaXMuaXNTYXZpbmcgPSB0cnVlO1xyXG4gICAgdGhpcy5pc0xvYWRpbmcgPSB0cnVlO1xyXG4gICAgdGhpcy5zZXJ2aWNlLmNyZWF0ZVJlY2VpcHQoc2F2ZURhdGEpLnN1YnNjcmliZSh7XHJcbiAgICAgIG5leHQ6IHJlc3BvbnNlID0+IHtcclxuICAgICAgICBpZiAocmVzcG9uc2U/LmlzU3VjY2Vzc2Z1bCkge1xyXG4gICAgICAgICAgdGhpcy5jb25maXJtYXRpb24uc3VjY2VzcygnJywgJ8OccmV0aW1kZW4gZ2lyacWfIGJhxZ9hcsSxeWxhIGdlcsOnZWtsZcWfdGlyaWxkaSEnLCB7XHJcbiAgICAgICAgICAgIGhpZGVZZXNCdG46IHRydWUsXHJcbiAgICAgICAgICAgIGNhbmNlbFRleHQ6ICdLYXBhdCcsXHJcbiAgICAgICAgICAgIGRpc21pc3NpYmxlOiBmYWxzZSxcclxuICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgdGhpcy5jbGVhckFsbCgpO1xyXG4gICAgICAgIH1cclxuICAgICAgICB0aGlzLmlzU2F2aW5nID0gZmFsc2U7XHJcbiAgICAgICAgdGhpcy5pc0xvYWRpbmcgPSBmYWxzZTtcclxuICAgICAgfSxcclxuICAgICAgZXJyb3I6IGUgPT4ge1xyXG4gICAgICAgIHRoaXMuaXNTYXZpbmcgPSBmYWxzZTtcclxuICAgICAgICB0aGlzLmlzTG9hZGluZyA9IGZhbHNlO1xyXG4gICAgICB9LFxyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBwcmVwYXJlQ29tcG9uZW50c1RvQ29uc3VtZSgpOiBhbnlbXSB7XHJcbiAgICBpZiAoIXRoaXMud29ya09yZGVySW5mbyB8fCAhdGhpcy53b3JrT3JkZXJJbmZvLmxpbmVzKSB7XHJcbiAgICAgIHJldHVybiBbXTtcclxuICAgIH1cclxuXHJcbiAgICBjb25zdCBjb21wb25lbnRzID0gW107XHJcbiAgICBjb25zdCBpdGVtQ29kZSA9IHRoaXMud29ya09yZGVySW5mby5pdGVtQ29kZTtcclxuXHJcbiAgICAvLyBEZXRlcm1pbmUgaWYgdGhpcyBpcyBZTSBvciAxNTEqIHByb2R1Y3RcclxuICAgIGNvbnN0IGlzWU0gPSBpdGVtQ29kZS5zdGFydHNXaXRoKCdZTScpO1xyXG4gICAgY29uc3QgaXMxNTEgPSBpdGVtQ29kZS5zdGFydHNXaXRoKCcxNTEnKTtcclxuXHJcbiAgICAvLyBHZXQgY29udHJvbGxlZCBsaW5lcyAoWU0vMTUxKiBpdGVtcyBtYXJrZWQgd2l0aCBVX0tvbnRyb2w9J0UnKVxyXG4gICAgY29uc3QgY29udHJvbGxlZExpbmVzID0gdGhpcy53b3JrT3JkZXJJbmZvLmxpbmVzLmZpbHRlcihsaW5lID0+IFxyXG4gICAgICBsaW5lLmlzQ29udHJvbGxlZCAmJiBsaW5lLmJhdGNoTnVtYmVyXHJcbiAgICApO1xyXG5cclxuICAgIC8vIEZvciBZTS8xNTEqIHByb2R1Y3RzLCBjb25zdW1lIGJ5IGxvdCBmcm9tIGNvbnRyb2wgc2NyZWVuXHJcbiAgICBmb3IgKGNvbnN0IGxpbmUgb2YgY29udHJvbGxlZExpbmVzKSB7XHJcbiAgICAgICAgY29tcG9uZW50cy5wdXNoKHtcclxuICAgICAgICAgIGl0ZW1Db2RlOiBsaW5lLml0ZW1Db2RlLFxyXG4gICAgICAgICAgcXVhbnRpdHk6IGxpbmUuaXNzdWVkUXR5LFxyXG4gICAgICAgICAgd2FyZWhvdXNlQ29kZTogbGluZS53YXJlaG91c2UsXHJcbiAgICAgICAgICBiYXRjaE51bWJlcjogbGluZS5iYXRjaE51bWJlcixcclxuICAgICAgICAgIGJhc2VMaW5lOiBsaW5lLmxpbmVOdW1cclxuICAgICAgICB9KTtcclxuICAgIH1cclxuXHJcbiAgICAvLyBGb3Igb3RoZXIgY29tcG9uZW50cywgdXNlIFwiVGV5aXQgc29ucmFzxLEgb3RvbWF0aWsgw6dla21lXCIgbG9naWNcclxuICAgIC8vIChUaGlzIHdvdWxkIGJlIGhhbmRsZWQgYnkgdGhlIGJhY2tlbmQgd2l0aCBGSUZPIGZvciBiYXRjaC9zZXJpYWwgaXRlbXMpXHJcblxyXG4gICAgcmV0dXJuIGNvbXBvbmVudHM7XHJcbiAgfVxyXG5cclxuICBjbGVhckFsbCgpIHtcclxuICAgIHRoaXMuaXNXb3JrT3JkZXJMb2FkZWQgPSBmYWxzZTtcclxuICAgIHRoaXMuaXNFbXJpTm8gPSBudWxsO1xyXG4gICAgdGhpcy53b3JrT3JkZXJJbmZvID0gbnVsbDtcclxuICAgIHRoaXMucGFsZXRUaXBpID0gJ1RBTSc7XHJcbiAgICB0aGlzLmtvbGlBZGV0ID0gbnVsbDtcclxuICAgIHRoaXMudG9wbGFtTWlrdGFyID0gMDtcclxuICAgIHRoaXMuaXNTYXZpbmcgPSBmYWxzZTtcclxuICAgIHRoaXMuZm9jdXNPbklzRW1yaU5vKCk7XHJcbiAgfVxyXG5cclxuICBnZXQgaXNTYXZlQnV0dG9uRGlzYWJsZWQoKTogYm9vbGVhbiB7XHJcbiAgICByZXR1cm4gIXRoaXMuaXNFbXJpTm8gfHwgXHJcbiAgICAgICAgICAgIXRoaXMud29ya09yZGVySW5mbyB8fCBcclxuICAgICAgICAgICB0aGlzLnRvcGxhbU1pa3RhciA8PSAwIHx8XHJcbiAgICAgICAgICAgKHRoaXMucGFsZXRUaXBpID09PSAnS0lTTUknICYmICghdGhpcy5rb2xpQWRldCB8fCB0aGlzLmtvbGlBZGV0IDw9IDApKSB8fFxyXG4gICAgICAgICAgIHRoaXMuaXNTYXZpbmc7XHJcbiAgfVxyXG5cclxuICBmb2N1c09uSXNFbXJpTm8oKSB7XHJcbiAgICB0aGlzLm5nWm9uZS5ydW4oKCkgPT4ge1xyXG4gICAgICBzZXRUaW1lb3V0KCgpID0+IHtcclxuICAgICAgICB0aGlzLm5tYkJveElzRW1yaU5vPy5pbnN0YW5jZS5mb2N1cygpO1xyXG4gICAgICB9LCAwKTtcclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbn1cclxuIiwiPGFicC1wYWdlIFticmVhZGNydW1iXT1cImZhbHNlXCI+XHJcbiAgPGFicC1wYWdlLXRvb2xiYXItY29udGFpbmVyIGNsYXNzPVwiY29sXCI+XHJcbiAgICA8ZGl2IGNsYXNzPVwicm93XCI+XHJcbiAgICAgIDxoMyBjbGFzcz1cInBhZ2UtdGl0bGVcIj5cclxuICAgICAgICDDnHJldGltZGVuIEdpcmnFn1xyXG4gICAgICA8L2gzPlxyXG4gICAgPC9kaXY+XHJcbiAgICA8ZGl2IGNsYXNzPVwicm93IHRleHQtbGctZW5kIHB0LTJcIj5cclxuICAgICAgPGRpdiBjbGFzcz1cImNvbC02XCI+XHJcbiAgICAgICAgPGJ1dHRvbiBjbGFzcz1cImJ0biBidG4tc3VjY2VzcyBidG4tc21cIiB0eXBlPVwiYnV0dG9uXCIgKGNsaWNrKT1cInNhdmUoKVwiIFtkaXNhYmxlZF09XCJpc1NhdmVCdXR0b25EaXNhYmxlZFwiPlxyXG4gICAgICAgICAgPGkgY2xhc3M9XCJmYSBmYS1jaGVjayBtZS0xXCI+PC9pPlxyXG4gICAgICAgICAgw5xyZXRpbWRlbiBHaXJpxZ8gWWFwXHJcbiAgICAgICAgPC9idXR0b24+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgICA8ZGl2IGNsYXNzPVwiY29sLTZcIj5cclxuICAgICAgICA8YnV0dG9uIGNsYXNzPVwiYnRuIGJ0bi13YXJuaW5nIGJ0bi1zbVwiIHR5cGU9XCJidXR0b25cIiAoY2xpY2spPVwiY2xlYXJBbGwoKVwiPlxyXG4gICAgICAgICAgPGkgY2xhc3M9XCJmYSBmYS1icm9vbSBtZS0xXCI+PC9pPlxyXG4gICAgICAgICAgVGVtaXpsZVxyXG4gICAgICAgIDwvYnV0dG9uPlxyXG4gICAgICA8L2Rpdj5cclxuICAgIDwvZGl2PlxyXG4gIDwvYWJwLXBhZ2UtdG9vbGJhci1jb250YWluZXI+XHJcbiAgXHJcbiAgPGRpdiBjbGFzcz1cImNhcmQgbXQtMlwiPlxyXG4gICAgPGRpdiBjbGFzcz1cImNhcmQtYm9keVwiIHN0eWxlPVwiaGVpZ2h0OiBjYWxjKDEwMHZoIC0gMjQxcHgpOyBvdmVyZmxvdzogYXV0bztcIj5cclxuICAgICAgPCEtLSBXb3JrIE9yZGVyIElucHV0IC0tPlxyXG4gICAgICA8ZGl2IHN0eWxlPVwiZGlzcGxheTogZmxleDsgYWxpZ24taXRlbXM6IGNlbnRlcjtcIj5cclxuICAgICAgICA8ZHgtbnVtYmVyLWJveCAjaXNFbXJpTm9SZWYgXHJcbiAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJtZS0xXCIgXHJcbiAgICAgICAgICAgICAgICAgICAgICAgc3R5bGU9XCJ3aWR0aDoxMDAlO1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgbGFiZWw9XCLEsMWfIEVtcmkgTm9cIlxyXG4gICAgICAgICAgICAgICAgICAgICAgIFsodmFsdWUpXT1cImlzRW1yaU5vXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAob25DaGFuZ2UpPVwiZ2V0UHJvZHVjdGlvbk9yZGVyKClcIiBcclxuICAgICAgICAgICAgICAgICAgICAgICAob25FbnRlcktleSk9XCJnZXRQcm9kdWN0aW9uT3JkZXIoKVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgW2Rpc2FibGVkXT1cImlzV29ya09yZGVyTG9hZGVkXCI+XHJcbiAgICAgICAgPC9keC1udW1iZXItYm94PlxyXG4gICAgICAgIDxkeC1idXR0b24gc3R5bGU9XCJtYXJnaW4tdG9wOiA3LjVweDtcIiBcclxuICAgICAgICAgICAgICAgICAgIGljb249XCJzZWFyY2hcIiBcclxuICAgICAgICAgICAgICAgICAgIHR5cGU9XCJkZWZhdWx0XCIgXHJcbiAgICAgICAgICAgICAgICAgICAob25DbGljayk9XCJnZXRQcm9kdWN0aW9uT3JkZXIoKVwiXHJcbiAgICAgICAgICAgICAgICAgICBbZGlzYWJsZWRdPVwiaXNXb3JrT3JkZXJMb2FkZWRcIj5cclxuICAgICAgICA8L2R4LWJ1dHRvbj5cclxuICAgICAgPC9kaXY+XHJcblxyXG4gICAgICA8IS0tIFdvcmsgT3JkZXIgSW5mb3JtYXRpb24gLS0+XHJcbiAgICAgIDxkaXYgY2xhc3M9XCJtdC0zXCIgKm5nSWY9XCJpc1dvcmtPcmRlckxvYWRlZCAmJiB3b3JrT3JkZXJJbmZvXCI+XHJcbiAgICAgICAgPCEtLSBQcm9kdWN0IEluZm8gLS0+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cInJvd1wiPlxyXG4gICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC1tZC02XCI+XHJcbiAgICAgICAgICAgIDxkeC10ZXh0LWJveCBcclxuICAgICAgICAgICAgICBsYWJlbD1cIsOccsO8biBLb2R1XCIgXHJcbiAgICAgICAgICAgICAgWyh2YWx1ZSldPVwid29ya09yZGVySW5mby5pdGVtQ29kZVwiIFxyXG4gICAgICAgICAgICAgIFtkaXNhYmxlZF09XCJ0cnVlXCI+XHJcbiAgICAgICAgICAgIDwvZHgtdGV4dC1ib3g+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtbWQtNlwiPlxyXG4gICAgICAgICAgICA8ZHgtdGV4dC1ib3ggXHJcbiAgICAgICAgICAgICAgbGFiZWw9XCLDnHLDvG4gQWTEsVwiIFxyXG4gICAgICAgICAgICAgIFsodmFsdWUpXT1cIndvcmtPcmRlckluZm8uaXRlbU5hbWVcIiBcclxuICAgICAgICAgICAgICBbZGlzYWJsZWRdPVwidHJ1ZVwiPlxyXG4gICAgICAgICAgICA8L2R4LXRleHQtYm94PlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC9kaXY+XHJcblxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJyb3cgbXQtMlwiPlxyXG4gICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC1tZC00XCI+XHJcbiAgICAgICAgICAgIDxkeC1udW1iZXItYm94IFxyXG4gICAgICAgICAgICAgIGxhYmVsPVwiUGxhbmxhbmFuIE1pa3RhclwiIFxyXG4gICAgICAgICAgICAgIFsodmFsdWUpXT1cIndvcmtPcmRlckluZm8ucGxhbm5lZFF0eVwiIFxyXG4gICAgICAgICAgICAgIFtkaXNhYmxlZF09XCJ0cnVlXCI+XHJcbiAgICAgICAgICAgIDwvZHgtbnVtYmVyLWJveD5cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC1tZC00XCI+XHJcbiAgICAgICAgICAgIDxkeC1udW1iZXItYm94IFxyXG4gICAgICAgICAgICAgIGxhYmVsPVwiVGFtYW1sYW5hbiBNaWt0YXJcIiBcclxuICAgICAgICAgICAgICBbKHZhbHVlKV09XCJ3b3JrT3JkZXJJbmZvLmNtcGx0UXR5XCIgXHJcbiAgICAgICAgICAgICAgW2Rpc2FibGVkXT1cInRydWVcIj5cclxuICAgICAgICAgICAgPC9keC1udW1iZXItYm94PlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLW1kLTRcIj5cclxuICAgICAgICAgICAgPGR4LXRleHQtYm94IFxyXG4gICAgICAgICAgICAgIGxhYmVsPVwiRGVwb1wiIFxyXG4gICAgICAgICAgICAgIFsodmFsdWUpXT1cIndvcmtPcmRlckluZm8ud2FyZWhvdXNlXCIgXHJcbiAgICAgICAgICAgICAgW2Rpc2FibGVkXT1cInRydWVcIj5cclxuICAgICAgICAgICAgPC9keC10ZXh0LWJveD5cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgICA8IS0tIFBhbGxldCBUeXBlIFNlbGVjdGlvbiAtLT5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwicm93IG10LTNcIj5cclxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtbWQtMTJcIj5cclxuICAgICAgICAgICAgPGR4LXJhZGlvLWdyb3VwICNwYWxldFRpcGlSZWZcclxuICAgICAgICAgICAgICBbaXRlbXNdPVwicGFsZXRUaXBsZXJpXCJcclxuICAgICAgICAgICAgICBsYXlvdXQ9XCJob3Jpem9udGFsXCJcclxuICAgICAgICAgICAgICBbKHZhbHVlKV09XCJwYWxldFRpcGlcIlxyXG4gICAgICAgICAgICAgIChvblZhbHVlQ2hhbmdlZCk9XCJvblBhbGV0VGlwaUNoYW5nZSgpXCI+XHJcbiAgICAgICAgICAgIDwvZHgtcmFkaW8tZ3JvdXA+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8L2Rpdj5cclxuXHJcbiAgICAgICAgPCEtLSBLb2xpIENvdW50IGZvciBLSVNNSSBQYWxsZXQgLS0+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cInJvdyBtdC0yXCIgKm5nSWY9XCJwYWxldFRpcGkgPT09ICdLSVNNSSdcIj5cclxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtbWQtNlwiPlxyXG4gICAgICAgICAgICA8ZHgtbnVtYmVyLWJveCAja29saUFkZXRSZWZcclxuICAgICAgICAgICAgICBsYWJlbD1cIktvbGkgQWRlZGlcIlxyXG4gICAgICAgICAgICAgIFsodmFsdWUpXT1cImtvbGlBZGV0XCJcclxuICAgICAgICAgICAgICAob25WYWx1ZUNoYW5nZWQpPVwib25Lb2xpQWRldENoYW5nZSgpXCJcclxuICAgICAgICAgICAgICBbbWluXT1cIjFcIj5cclxuICAgICAgICAgICAgPC9keC1udW1iZXItYm94PlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC9kaXY+XHJcblxyXG4gICAgICAgIDwhLS0gQ2FsY3VsYXRlZCBUb3RhbCBRdWFudGl0eSAtLT5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwicm93IG10LTJcIj5cclxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtbWQtNlwiPlxyXG4gICAgICAgICAgICA8ZHgtbnVtYmVyLWJveCBcclxuICAgICAgICAgICAgICBsYWJlbD1cIlRvcGxhbSBNaWt0YXIgKEFkZXQpXCJcclxuICAgICAgICAgICAgICBbKHZhbHVlKV09XCJ0b3BsYW1NaWt0YXJcIlxyXG4gICAgICAgICAgICAgIFtkaXNhYmxlZF09XCJ0cnVlXCJcclxuICAgICAgICAgICAgICBbc3R5bGluZ01vZGVdPVwiJ2ZpbGxlZCdcIj5cclxuICAgICAgICAgICAgPC9keC1udW1iZXItYm94PlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLW1kLTZcIj5cclxuICAgICAgICAgICAgPGR4LW51bWJlci1ib3ggXHJcbiAgICAgICAgICAgICAgbGFiZWw9XCJLb2xpIMSww6dpIEFkZXRcIlxyXG4gICAgICAgICAgICAgIFsodmFsdWUpXT1cIndvcmtPcmRlckluZm8uc2FsUGFja1VuXCJcclxuICAgICAgICAgICAgICBbZGlzYWJsZWRdPVwidHJ1ZVwiPlxyXG4gICAgICAgICAgICA8L2R4LW51bWJlci1ib3g+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8L2Rpdj5cclxuXHJcbiAgICAgICAgPCEtLSBRdWFsaXR5IFN0YXR1cyBJbmZvIC0tPlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJyb3cgbXQtMlwiICpuZ0lmPVwid29ya09yZGVySW5mby51X0thbGl0ZUR1cnVtdVwiPlxyXG4gICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC1tZC0xMlwiPlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiYWxlcnQgYWxlcnQtaW5mb1wiIHJvbGU9XCJhbGVydFwiPlxyXG4gICAgICAgICAgICAgIDxzdHJvbmc+S2FsaXRlIER1cnVtdTo8L3N0cm9uZz4ge3sgd29ya09yZGVySW5mby51X0thbGl0ZUR1cnVtdSB9fVxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICA8L2Rpdj5cclxuICAgIDwvZGl2PlxyXG4gIDwvZGl2PlxyXG48L2FicC1wYWdlPlxyXG4iXX0=
@@ -2028,6 +2028,7 @@ class HitFillingReceiptFromProductionComponent {
2028
2028
  return;
2029
2029
  }
2030
2030
  const salPackUn = this.workOrderInfo.salPackUn || 0;
2031
+ debugger;
2031
2032
  if (this.paletTipi === 'TAM') {
2032
2033
  // Tam Palet: Pallet height × Pieces per box
2033
2034
  const paletYukseklik = this.workOrderInfo.u_DKpaletyuseklik || 0;
@@ -2036,7 +2037,26 @@ class HitFillingReceiptFromProductionComponent {
2036
2037
  else {
2037
2038
  // Kısmi Palet: Koli count × Pieces per box
2038
2039
  const koliAdet = this.koliAdet || 0;
2039
- this.toplamMiktar = koliAdet * salPackUn;
2040
+ const kismiMiktar = koliAdet * salPackUn;
2041
+ // Calculate TAM pallet quantity for comparison
2042
+ const paletYukseklik = this.workOrderInfo.u_DKpaletyuseklik || 0;
2043
+ const tamPaletMiktar = paletYukseklik * salPackUn;
2044
+ // KISMI quantity should not exceed TAM pallet quantity
2045
+ if (kismiMiktar > tamPaletMiktar) {
2046
+ this.toplamMiktar = tamPaletMiktar;
2047
+ // Reset to maximum allowed value asynchronously to avoid change detection loop
2048
+ setTimeout(() => {
2049
+ this.koliAdet = paletYukseklik;
2050
+ }, 0);
2051
+ this.confirmation.warn('', `Koli adedi ${paletYukseklik}'i geçemez! (TAM palet miktarı: ${tamPaletMiktar})`, {
2052
+ hideYesBtn: true,
2053
+ cancelText: 'Kapat',
2054
+ dismissible: false,
2055
+ });
2056
+ }
2057
+ else {
2058
+ this.toplamMiktar = kismiMiktar;
2059
+ }
2040
2060
  }
2041
2061
  }
2042
2062
  save() {
@@ -2506,10 +2526,10 @@ class HitBoilerYMProductWasteComponent {
2506
2526
  }
2507
2527
  }
2508
2528
  HitBoilerYMProductWasteComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: HitBoilerYMProductWasteComponent, deps: [{ token: HitBoilerYMProductWasteService }, { token: i3.ConfirmationService }, { token: i0.NgZone }, { token: HitProductionOrdersService }, { token: HitFillingControlService }], target: i0.ɵɵFactoryTarget.Component });
2509
- HitBoilerYMProductWasteComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.3.0", type: HitBoilerYMProductWasteComponent, selector: "lib-hit-boiler-ym-product-waste", viewQueries: [{ propertyName: "nmbBoxBarkodNumarasi", first: true, predicate: ["barkodNumarasiRef"], descendants: true }], ngImport: i0, template: "<abp-page [breadcrumb]=\"false\">\r\n <abp-page-toolbar-container class=\"col\">\r\n <div class=\"row\">\r\n <h3 class=\"page-title\">\r\n {{ 'UretimYonetimi::BoilerYMProductWaste.Title' | abpLocalization }}\r\n </h3>\r\n </div>\r\n <div class=\"row pt-2 g-2\">\r\n <div class=\"col-12 col-md-6 col-lg-3\">\r\n <button class=\"btn btn-success btn-sm w-100\" type=\"button\" (click)=\"save()\"\r\n [disabled]=\"!isEmriBarkoduGecerliMi || isSaving\">\r\n <i class=\"fa fa-save me-1\"></i>\r\n {{ 'UretimYonetimi::BoilerYMProductWaste.Save' | abpLocalization }}\r\n </button>\r\n </div>\r\n <div class=\"col-12 col-md-6 col-lg-3\">\r\n <button class=\"btn btn-primary btn-sm w-100\" type=\"button\" (click)=\"finishWorkOrderAndSaveWaste()\"\r\n [disabled]=\"!isEmriBarkoduGecerliMi || isSaving\">\r\n <i class=\"fa fa-check-double me-1\"></i>\r\n \u0130\u015F Emrini Bitir ve Fireyi Kaydet\r\n </button>\r\n </div>\r\n <div class=\"col-12 col-md-6 col-lg-3\">\r\n <button class=\"btn btn-info btn-sm w-100\" type=\"button\" (click)=\"finishWorkOrderWithoutSavingWaste()\"\r\n [disabled]=\"!isEmriBarkoduGecerliMi || isSaving\">\r\n <i class=\"fa fa-check me-1\"></i>\r\n \u0130\u015F Emrini Bitir ve Fireyi Kaydetme\r\n </button>\r\n </div>\r\n <div class=\"col-12 col-md-6 col-lg-3\">\r\n <button class=\"btn btn-warning btn-sm w-100\" type=\"button\" (click)=\"clearAll()\"\r\n [disabled]=\"isLoading\">\r\n <i class=\"fa fa-broom me-1\"></i>\r\n {{ 'UretimYonetimi::BoilerYMProductWaste.Clean' | abpLocalization }}\r\n </button>\r\n </div>\r\n </div>\r\n </abp-page-toolbar-container>\r\n\r\n <div class=\"card mt-2\">\r\n <div class=\"card-body\">\r\n <div style=\"display: flex; align-items: center;\">\r\n <dx-number-box #barkodNumarasiRef class=\"me-1\" style=\"width:100%;\" [min]=\"1\"\r\n [label]=\"'UretimYonetimi::BoilerYMProductWaste.WorkOrderNo' | abpLocalization\"\r\n [(value)]=\"isEmriBarkodu\" (onEnterKey)=\"getProductionOrder()\"\r\n [disabled]=\"searcheBasildiMi || isEmriBarkoduGecerliMi\">\r\n </dx-number-box>\r\n <dx-button style=\"margin-top: 7.5px;\" icon=\"search\" type=\"default\" (onClick)=\"getProductionOrder()\"\r\n [disabled]=\"searcheBasildiMi || isEmriBarkoduGecerliMi\">\r\n </dx-button>\r\n </div>\r\n <div class=\"mt-3\" *ngIf=\"isEmriBarkoduGecerliMi\">\r\n <dx-text-box style=\"width:100%;\"\r\n [label]=\"'UretimYonetimi::BoilerYMProductWaste.ConveyorInformation' | abpLocalization\"\r\n [(value)]=\"productionOrder.u_Hat\"\r\n [disabled]=\"true\">\r\n </dx-text-box>\r\n <dx-text-box style=\"width:100%;\"\r\n [label]=\"'UretimYonetimi::BoilerYMProductWaste.ProductDescription' | abpLocalization\"\r\n [(value)]=\"productionOrder.productDescription\"\r\n [disabled]=\"true\">\r\n </dx-text-box>\r\n <dx-text-box style=\"width:100%;\"\r\n [label]=\"'UretimYonetimi::BoilerYMProductWaste.BatchNumber' | abpLocalization\"\r\n [(value)]=\"ymProduct.batchNumber\"\r\n [disabled]=\"true\">\r\n </dx-text-box>\r\n <dx-text-box style=\"width:100%;\"\r\n [label]=\"'UretimYonetimi::BoilerYMProductWaste.ItemCode' | abpLocalization\"\r\n [(value)]=\"ymProduct.itemCode\"\r\n [disabled]=\"true\">\r\n </dx-text-box>\r\n <dx-number-box style=\"width:100%;\"\r\n [label]=\"'UretimYonetimi::BoilerYMProductWaste.ProductQuantity' | abpLocalization\"\r\n [(value)]=\"ymProduct.batchQuantity\"\r\n [disabled]=\"true\">\r\n </dx-number-box>\r\n </div>\r\n </div>\r\n </div>\r\n</abp-page>\r\n", styles: [":host{display:block}dx-number-box,dx-text-box{width:100%}dx-data-grid{width:100%}\n"], dependencies: [{ kind: "directive", type: i6.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i7.PageComponent, selector: "abp-page", inputs: ["title", "toolbar", "breadcrumb"] }, { kind: "component", type: i7.PageToolbarContainerComponent, selector: "abp-page-toolbar-container" }, { kind: "component", type: i8.DxTextBoxComponent, selector: "dx-text-box", inputs: ["accessKey", "activeStateEnabled", "buttons", "disabled", "elementAttr", "focusStateEnabled", "height", "hint", "hoverStateEnabled", "inputAttr", "isValid", "label", "labelMode", "mask", "maskChar", "maskInvalidMessage", "maskRules", "maxLength", "mode", "name", "placeholder", "readOnly", "rtlEnabled", "showClearButton", "showMaskMode", "spellcheck", "stylingMode", "tabIndex", "text", "useMaskedValue", "validationError", "validationErrors", "validationMessageMode", "validationMessagePosition", "validationStatus", "value", "valueChangeEvent", "visible", "width"], outputs: ["onChange", "onContentReady", "onCopy", "onCut", "onDisposing", "onEnterKey", "onFocusIn", "onFocusOut", "onInitialized", "onInput", "onKeyDown", "onKeyUp", "onOptionChanged", "onPaste", "onValueChanged", "accessKeyChange", "activeStateEnabledChange", "buttonsChange", "disabledChange", "elementAttrChange", "focusStateEnabledChange", "heightChange", "hintChange", "hoverStateEnabledChange", "inputAttrChange", "isValidChange", "labelChange", "labelModeChange", "maskChange", "maskCharChange", "maskInvalidMessageChange", "maskRulesChange", "maxLengthChange", "modeChange", "nameChange", "placeholderChange", "readOnlyChange", "rtlEnabledChange", "showClearButtonChange", "showMaskModeChange", "spellcheckChange", "stylingModeChange", "tabIndexChange", "textChange", "useMaskedValueChange", "validationErrorChange", "validationErrorsChange", "validationMessageModeChange", "validationMessagePositionChange", "validationStatusChange", "valueChange", "valueChangeEventChange", "visibleChange", "widthChange", "onBlur"] }, { kind: "component", type: i8.DxButtonComponent, selector: "dx-button", inputs: ["accessKey", "activeStateEnabled", "disabled", "elementAttr", "focusStateEnabled", "height", "hint", "hoverStateEnabled", "icon", "rtlEnabled", "stylingMode", "tabIndex", "template", "text", "type", "useSubmitBehavior", "validationGroup", "visible", "width"], outputs: ["onClick", "onContentReady", "onDisposing", "onInitialized", "onOptionChanged", "accessKeyChange", "activeStateEnabledChange", "disabledChange", "elementAttrChange", "focusStateEnabledChange", "heightChange", "hintChange", "hoverStateEnabledChange", "iconChange", "rtlEnabledChange", "stylingModeChange", "tabIndexChange", "templateChange", "textChange", "typeChange", "useSubmitBehaviorChange", "validationGroupChange", "visibleChange", "widthChange"] }, { kind: "component", type: i8.DxNumberBoxComponent, selector: "dx-number-box", inputs: ["accessKey", "activeStateEnabled", "buttons", "disabled", "elementAttr", "focusStateEnabled", "format", "height", "hint", "hoverStateEnabled", "inputAttr", "invalidValueMessage", "isValid", "label", "labelMode", "max", "min", "mode", "name", "placeholder", "readOnly", "rtlEnabled", "showClearButton", "showSpinButtons", "step", "stylingMode", "tabIndex", "text", "useLargeSpinButtons", "validationError", "validationErrors", "validationMessageMode", "validationMessagePosition", "validationStatus", "value", "valueChangeEvent", "visible", "width"], outputs: ["onChange", "onContentReady", "onCopy", "onCut", "onDisposing", "onEnterKey", "onFocusIn", "onFocusOut", "onInitialized", "onInput", "onKeyDown", "onKeyUp", "onOptionChanged", "onPaste", "onValueChanged", "accessKeyChange", "activeStateEnabledChange", "buttonsChange", "disabledChange", "elementAttrChange", "focusStateEnabledChange", "formatChange", "heightChange", "hintChange", "hoverStateEnabledChange", "inputAttrChange", "invalidValueMessageChange", "isValidChange", "labelChange", "labelModeChange", "maxChange", "minChange", "modeChange", "nameChange", "placeholderChange", "readOnlyChange", "rtlEnabledChange", "showClearButtonChange", "showSpinButtonsChange", "stepChange", "stylingModeChange", "tabIndexChange", "textChange", "useLargeSpinButtonsChange", "validationErrorChange", "validationErrorsChange", "validationMessageModeChange", "validationMessagePositionChange", "validationStatusChange", "valueChange", "valueChangeEventChange", "visibleChange", "widthChange", "onBlur"] }, { kind: "pipe", type: i1.LocalizationPipe, name: "abpLocalization" }] });
2529
+ HitBoilerYMProductWasteComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.3.0", type: HitBoilerYMProductWasteComponent, selector: "lib-hit-boiler-ym-product-waste", viewQueries: [{ propertyName: "nmbBoxBarkodNumarasi", first: true, predicate: ["barkodNumarasiRef"], descendants: true }], ngImport: i0, template: "<abp-page [breadcrumb]=\"false\">\r\n <abp-page-toolbar-container class=\"col\">\r\n <div class=\"row\">\r\n <h3 class=\"page-title\">\r\n {{ 'UretimYonetimi::BoilerYMProductWaste.Title' | abpLocalization }}\r\n </h3>\r\n </div>\r\n <div class=\"row pt-2 g-2\">\r\n <div class=\"col-12 col-md-6 col-lg-3\">\r\n <button class=\"btn btn-success btn-sm w-100\" type=\"button\" (click)=\"save()\"\r\n [disabled]=\"!isEmriBarkoduGecerliMi || isSaving\">\r\n <i class=\"fa fa-save me-1\"></i>\r\n Kazan De\u011Fi\u015Fimi \u00D6ncesi Fire Giri\u015Fi\r\n </button>\r\n </div>\r\n <div class=\"col-12 col-md-6 col-lg-3\">\r\n <button class=\"btn btn-primary btn-sm w-100\" type=\"button\" (click)=\"finishWorkOrderAndSaveWaste()\"\r\n [disabled]=\"!isEmriBarkoduGecerliMi || isSaving\">\r\n <i class=\"fa fa-check-double me-1\"></i>\r\n \u0130\u015F Emrini Bitir ve Fireyi Kaydet\r\n </button>\r\n </div>\r\n <div class=\"col-12 col-md-6 col-lg-3\">\r\n <button class=\"btn btn-info btn-sm w-100\" type=\"button\" (click)=\"finishWorkOrderWithoutSavingWaste()\"\r\n [disabled]=\"!isEmriBarkoduGecerliMi || isSaving\">\r\n <i class=\"fa fa-check me-1\"></i>\r\n \u0130\u015F Emrini Bitir ve Fireyi Kaydetme\r\n </button>\r\n </div>\r\n <div class=\"col-12 col-md-6 col-lg-3\">\r\n <button class=\"btn btn-warning btn-sm w-100\" type=\"button\" (click)=\"clearAll()\"\r\n [disabled]=\"isLoading\">\r\n <i class=\"fa fa-broom me-1\"></i>\r\n {{ 'UretimYonetimi::BoilerYMProductWaste.Clean' | abpLocalization }}\r\n </button>\r\n </div>\r\n </div>\r\n </abp-page-toolbar-container>\r\n\r\n <div class=\"card mt-2\">\r\n <div class=\"card-body\">\r\n <div style=\"display: flex; align-items: center;\">\r\n <dx-number-box #barkodNumarasiRef class=\"me-1\" style=\"width:100%;\" [min]=\"1\"\r\n [label]=\"'UretimYonetimi::BoilerYMProductWaste.WorkOrderNo' | abpLocalization\"\r\n [(value)]=\"isEmriBarkodu\" (onEnterKey)=\"getProductionOrder()\"\r\n [disabled]=\"searcheBasildiMi || isEmriBarkoduGecerliMi\">\r\n </dx-number-box>\r\n <dx-button style=\"margin-top: 7.5px;\" icon=\"search\" type=\"default\" (onClick)=\"getProductionOrder()\"\r\n [disabled]=\"searcheBasildiMi || isEmriBarkoduGecerliMi\">\r\n </dx-button>\r\n </div>\r\n <div class=\"mt-3\" *ngIf=\"isEmriBarkoduGecerliMi\">\r\n <dx-text-box style=\"width:100%;\"\r\n [label]=\"'UretimYonetimi::BoilerYMProductWaste.ConveyorInformation' | abpLocalization\"\r\n [(value)]=\"productionOrder.u_Hat\"\r\n [disabled]=\"true\">\r\n </dx-text-box>\r\n <dx-text-box style=\"width:100%;\"\r\n [label]=\"'UretimYonetimi::BoilerYMProductWaste.ProductDescription' | abpLocalization\"\r\n [(value)]=\"productionOrder.productDescription\"\r\n [disabled]=\"true\">\r\n </dx-text-box>\r\n <dx-text-box style=\"width:100%;\"\r\n [label]=\"'UretimYonetimi::BoilerYMProductWaste.BatchNumber' | abpLocalization\"\r\n [(value)]=\"ymProduct.batchNumber\"\r\n [disabled]=\"true\">\r\n </dx-text-box>\r\n <dx-text-box style=\"width:100%;\"\r\n [label]=\"'UretimYonetimi::BoilerYMProductWaste.ItemCode' | abpLocalization\"\r\n [(value)]=\"ymProduct.itemCode\"\r\n [disabled]=\"true\">\r\n </dx-text-box>\r\n <dx-number-box style=\"width:100%;\"\r\n [label]=\"'UretimYonetimi::BoilerYMProductWaste.ProductQuantity' | abpLocalization\"\r\n [(value)]=\"ymProduct.batchQuantity\"\r\n [disabled]=\"true\">\r\n </dx-number-box>\r\n </div>\r\n </div>\r\n </div>\r\n</abp-page>\r\n", styles: [":host{display:block}dx-number-box,dx-text-box{width:100%}dx-data-grid{width:100%}\n"], dependencies: [{ kind: "directive", type: i6.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i7.PageComponent, selector: "abp-page", inputs: ["title", "toolbar", "breadcrumb"] }, { kind: "component", type: i7.PageToolbarContainerComponent, selector: "abp-page-toolbar-container" }, { kind: "component", type: i8.DxTextBoxComponent, selector: "dx-text-box", inputs: ["accessKey", "activeStateEnabled", "buttons", "disabled", "elementAttr", "focusStateEnabled", "height", "hint", "hoverStateEnabled", "inputAttr", "isValid", "label", "labelMode", "mask", "maskChar", "maskInvalidMessage", "maskRules", "maxLength", "mode", "name", "placeholder", "readOnly", "rtlEnabled", "showClearButton", "showMaskMode", "spellcheck", "stylingMode", "tabIndex", "text", "useMaskedValue", "validationError", "validationErrors", "validationMessageMode", "validationMessagePosition", "validationStatus", "value", "valueChangeEvent", "visible", "width"], outputs: ["onChange", "onContentReady", "onCopy", "onCut", "onDisposing", "onEnterKey", "onFocusIn", "onFocusOut", "onInitialized", "onInput", "onKeyDown", "onKeyUp", "onOptionChanged", "onPaste", "onValueChanged", "accessKeyChange", "activeStateEnabledChange", "buttonsChange", "disabledChange", "elementAttrChange", "focusStateEnabledChange", "heightChange", "hintChange", "hoverStateEnabledChange", "inputAttrChange", "isValidChange", "labelChange", "labelModeChange", "maskChange", "maskCharChange", "maskInvalidMessageChange", "maskRulesChange", "maxLengthChange", "modeChange", "nameChange", "placeholderChange", "readOnlyChange", "rtlEnabledChange", "showClearButtonChange", "showMaskModeChange", "spellcheckChange", "stylingModeChange", "tabIndexChange", "textChange", "useMaskedValueChange", "validationErrorChange", "validationErrorsChange", "validationMessageModeChange", "validationMessagePositionChange", "validationStatusChange", "valueChange", "valueChangeEventChange", "visibleChange", "widthChange", "onBlur"] }, { kind: "component", type: i8.DxButtonComponent, selector: "dx-button", inputs: ["accessKey", "activeStateEnabled", "disabled", "elementAttr", "focusStateEnabled", "height", "hint", "hoverStateEnabled", "icon", "rtlEnabled", "stylingMode", "tabIndex", "template", "text", "type", "useSubmitBehavior", "validationGroup", "visible", "width"], outputs: ["onClick", "onContentReady", "onDisposing", "onInitialized", "onOptionChanged", "accessKeyChange", "activeStateEnabledChange", "disabledChange", "elementAttrChange", "focusStateEnabledChange", "heightChange", "hintChange", "hoverStateEnabledChange", "iconChange", "rtlEnabledChange", "stylingModeChange", "tabIndexChange", "templateChange", "textChange", "typeChange", "useSubmitBehaviorChange", "validationGroupChange", "visibleChange", "widthChange"] }, { kind: "component", type: i8.DxNumberBoxComponent, selector: "dx-number-box", inputs: ["accessKey", "activeStateEnabled", "buttons", "disabled", "elementAttr", "focusStateEnabled", "format", "height", "hint", "hoverStateEnabled", "inputAttr", "invalidValueMessage", "isValid", "label", "labelMode", "max", "min", "mode", "name", "placeholder", "readOnly", "rtlEnabled", "showClearButton", "showSpinButtons", "step", "stylingMode", "tabIndex", "text", "useLargeSpinButtons", "validationError", "validationErrors", "validationMessageMode", "validationMessagePosition", "validationStatus", "value", "valueChangeEvent", "visible", "width"], outputs: ["onChange", "onContentReady", "onCopy", "onCut", "onDisposing", "onEnterKey", "onFocusIn", "onFocusOut", "onInitialized", "onInput", "onKeyDown", "onKeyUp", "onOptionChanged", "onPaste", "onValueChanged", "accessKeyChange", "activeStateEnabledChange", "buttonsChange", "disabledChange", "elementAttrChange", "focusStateEnabledChange", "formatChange", "heightChange", "hintChange", "hoverStateEnabledChange", "inputAttrChange", "invalidValueMessageChange", "isValidChange", "labelChange", "labelModeChange", "maxChange", "minChange", "modeChange", "nameChange", "placeholderChange", "readOnlyChange", "rtlEnabledChange", "showClearButtonChange", "showSpinButtonsChange", "stepChange", "stylingModeChange", "tabIndexChange", "textChange", "useLargeSpinButtonsChange", "validationErrorChange", "validationErrorsChange", "validationMessageModeChange", "validationMessagePositionChange", "validationStatusChange", "valueChange", "valueChangeEventChange", "visibleChange", "widthChange", "onBlur"] }, { kind: "pipe", type: i1.LocalizationPipe, name: "abpLocalization" }] });
2510
2530
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: HitBoilerYMProductWasteComponent, decorators: [{
2511
2531
  type: Component,
2512
- args: [{ selector: 'lib-hit-boiler-ym-product-waste', template: "<abp-page [breadcrumb]=\"false\">\r\n <abp-page-toolbar-container class=\"col\">\r\n <div class=\"row\">\r\n <h3 class=\"page-title\">\r\n {{ 'UretimYonetimi::BoilerYMProductWaste.Title' | abpLocalization }}\r\n </h3>\r\n </div>\r\n <div class=\"row pt-2 g-2\">\r\n <div class=\"col-12 col-md-6 col-lg-3\">\r\n <button class=\"btn btn-success btn-sm w-100\" type=\"button\" (click)=\"save()\"\r\n [disabled]=\"!isEmriBarkoduGecerliMi || isSaving\">\r\n <i class=\"fa fa-save me-1\"></i>\r\n {{ 'UretimYonetimi::BoilerYMProductWaste.Save' | abpLocalization }}\r\n </button>\r\n </div>\r\n <div class=\"col-12 col-md-6 col-lg-3\">\r\n <button class=\"btn btn-primary btn-sm w-100\" type=\"button\" (click)=\"finishWorkOrderAndSaveWaste()\"\r\n [disabled]=\"!isEmriBarkoduGecerliMi || isSaving\">\r\n <i class=\"fa fa-check-double me-1\"></i>\r\n \u0130\u015F Emrini Bitir ve Fireyi Kaydet\r\n </button>\r\n </div>\r\n <div class=\"col-12 col-md-6 col-lg-3\">\r\n <button class=\"btn btn-info btn-sm w-100\" type=\"button\" (click)=\"finishWorkOrderWithoutSavingWaste()\"\r\n [disabled]=\"!isEmriBarkoduGecerliMi || isSaving\">\r\n <i class=\"fa fa-check me-1\"></i>\r\n \u0130\u015F Emrini Bitir ve Fireyi Kaydetme\r\n </button>\r\n </div>\r\n <div class=\"col-12 col-md-6 col-lg-3\">\r\n <button class=\"btn btn-warning btn-sm w-100\" type=\"button\" (click)=\"clearAll()\"\r\n [disabled]=\"isLoading\">\r\n <i class=\"fa fa-broom me-1\"></i>\r\n {{ 'UretimYonetimi::BoilerYMProductWaste.Clean' | abpLocalization }}\r\n </button>\r\n </div>\r\n </div>\r\n </abp-page-toolbar-container>\r\n\r\n <div class=\"card mt-2\">\r\n <div class=\"card-body\">\r\n <div style=\"display: flex; align-items: center;\">\r\n <dx-number-box #barkodNumarasiRef class=\"me-1\" style=\"width:100%;\" [min]=\"1\"\r\n [label]=\"'UretimYonetimi::BoilerYMProductWaste.WorkOrderNo' | abpLocalization\"\r\n [(value)]=\"isEmriBarkodu\" (onEnterKey)=\"getProductionOrder()\"\r\n [disabled]=\"searcheBasildiMi || isEmriBarkoduGecerliMi\">\r\n </dx-number-box>\r\n <dx-button style=\"margin-top: 7.5px;\" icon=\"search\" type=\"default\" (onClick)=\"getProductionOrder()\"\r\n [disabled]=\"searcheBasildiMi || isEmriBarkoduGecerliMi\">\r\n </dx-button>\r\n </div>\r\n <div class=\"mt-3\" *ngIf=\"isEmriBarkoduGecerliMi\">\r\n <dx-text-box style=\"width:100%;\"\r\n [label]=\"'UretimYonetimi::BoilerYMProductWaste.ConveyorInformation' | abpLocalization\"\r\n [(value)]=\"productionOrder.u_Hat\"\r\n [disabled]=\"true\">\r\n </dx-text-box>\r\n <dx-text-box style=\"width:100%;\"\r\n [label]=\"'UretimYonetimi::BoilerYMProductWaste.ProductDescription' | abpLocalization\"\r\n [(value)]=\"productionOrder.productDescription\"\r\n [disabled]=\"true\">\r\n </dx-text-box>\r\n <dx-text-box style=\"width:100%;\"\r\n [label]=\"'UretimYonetimi::BoilerYMProductWaste.BatchNumber' | abpLocalization\"\r\n [(value)]=\"ymProduct.batchNumber\"\r\n [disabled]=\"true\">\r\n </dx-text-box>\r\n <dx-text-box style=\"width:100%;\"\r\n [label]=\"'UretimYonetimi::BoilerYMProductWaste.ItemCode' | abpLocalization\"\r\n [(value)]=\"ymProduct.itemCode\"\r\n [disabled]=\"true\">\r\n </dx-text-box>\r\n <dx-number-box style=\"width:100%;\"\r\n [label]=\"'UretimYonetimi::BoilerYMProductWaste.ProductQuantity' | abpLocalization\"\r\n [(value)]=\"ymProduct.batchQuantity\"\r\n [disabled]=\"true\">\r\n </dx-number-box>\r\n </div>\r\n </div>\r\n </div>\r\n</abp-page>\r\n", styles: [":host{display:block}dx-number-box,dx-text-box{width:100%}dx-data-grid{width:100%}\n"] }]
2532
+ args: [{ selector: 'lib-hit-boiler-ym-product-waste', template: "<abp-page [breadcrumb]=\"false\">\r\n <abp-page-toolbar-container class=\"col\">\r\n <div class=\"row\">\r\n <h3 class=\"page-title\">\r\n {{ 'UretimYonetimi::BoilerYMProductWaste.Title' | abpLocalization }}\r\n </h3>\r\n </div>\r\n <div class=\"row pt-2 g-2\">\r\n <div class=\"col-12 col-md-6 col-lg-3\">\r\n <button class=\"btn btn-success btn-sm w-100\" type=\"button\" (click)=\"save()\"\r\n [disabled]=\"!isEmriBarkoduGecerliMi || isSaving\">\r\n <i class=\"fa fa-save me-1\"></i>\r\n Kazan De\u011Fi\u015Fimi \u00D6ncesi Fire Giri\u015Fi\r\n </button>\r\n </div>\r\n <div class=\"col-12 col-md-6 col-lg-3\">\r\n <button class=\"btn btn-primary btn-sm w-100\" type=\"button\" (click)=\"finishWorkOrderAndSaveWaste()\"\r\n [disabled]=\"!isEmriBarkoduGecerliMi || isSaving\">\r\n <i class=\"fa fa-check-double me-1\"></i>\r\n \u0130\u015F Emrini Bitir ve Fireyi Kaydet\r\n </button>\r\n </div>\r\n <div class=\"col-12 col-md-6 col-lg-3\">\r\n <button class=\"btn btn-info btn-sm w-100\" type=\"button\" (click)=\"finishWorkOrderWithoutSavingWaste()\"\r\n [disabled]=\"!isEmriBarkoduGecerliMi || isSaving\">\r\n <i class=\"fa fa-check me-1\"></i>\r\n \u0130\u015F Emrini Bitir ve Fireyi Kaydetme\r\n </button>\r\n </div>\r\n <div class=\"col-12 col-md-6 col-lg-3\">\r\n <button class=\"btn btn-warning btn-sm w-100\" type=\"button\" (click)=\"clearAll()\"\r\n [disabled]=\"isLoading\">\r\n <i class=\"fa fa-broom me-1\"></i>\r\n {{ 'UretimYonetimi::BoilerYMProductWaste.Clean' | abpLocalization }}\r\n </button>\r\n </div>\r\n </div>\r\n </abp-page-toolbar-container>\r\n\r\n <div class=\"card mt-2\">\r\n <div class=\"card-body\">\r\n <div style=\"display: flex; align-items: center;\">\r\n <dx-number-box #barkodNumarasiRef class=\"me-1\" style=\"width:100%;\" [min]=\"1\"\r\n [label]=\"'UretimYonetimi::BoilerYMProductWaste.WorkOrderNo' | abpLocalization\"\r\n [(value)]=\"isEmriBarkodu\" (onEnterKey)=\"getProductionOrder()\"\r\n [disabled]=\"searcheBasildiMi || isEmriBarkoduGecerliMi\">\r\n </dx-number-box>\r\n <dx-button style=\"margin-top: 7.5px;\" icon=\"search\" type=\"default\" (onClick)=\"getProductionOrder()\"\r\n [disabled]=\"searcheBasildiMi || isEmriBarkoduGecerliMi\">\r\n </dx-button>\r\n </div>\r\n <div class=\"mt-3\" *ngIf=\"isEmriBarkoduGecerliMi\">\r\n <dx-text-box style=\"width:100%;\"\r\n [label]=\"'UretimYonetimi::BoilerYMProductWaste.ConveyorInformation' | abpLocalization\"\r\n [(value)]=\"productionOrder.u_Hat\"\r\n [disabled]=\"true\">\r\n </dx-text-box>\r\n <dx-text-box style=\"width:100%;\"\r\n [label]=\"'UretimYonetimi::BoilerYMProductWaste.ProductDescription' | abpLocalization\"\r\n [(value)]=\"productionOrder.productDescription\"\r\n [disabled]=\"true\">\r\n </dx-text-box>\r\n <dx-text-box style=\"width:100%;\"\r\n [label]=\"'UretimYonetimi::BoilerYMProductWaste.BatchNumber' | abpLocalization\"\r\n [(value)]=\"ymProduct.batchNumber\"\r\n [disabled]=\"true\">\r\n </dx-text-box>\r\n <dx-text-box style=\"width:100%;\"\r\n [label]=\"'UretimYonetimi::BoilerYMProductWaste.ItemCode' | abpLocalization\"\r\n [(value)]=\"ymProduct.itemCode\"\r\n [disabled]=\"true\">\r\n </dx-text-box>\r\n <dx-number-box style=\"width:100%;\"\r\n [label]=\"'UretimYonetimi::BoilerYMProductWaste.ProductQuantity' | abpLocalization\"\r\n [(value)]=\"ymProduct.batchQuantity\"\r\n [disabled]=\"true\">\r\n </dx-number-box>\r\n </div>\r\n </div>\r\n </div>\r\n</abp-page>\r\n", styles: [":host{display:block}dx-number-box,dx-text-box{width:100%}dx-data-grid{width:100%}\n"] }]
2513
2533
  }], ctorParameters: function () { return [{ type: HitBoilerYMProductWasteService }, { type: i3.ConfirmationService }, { type: i0.NgZone }, { type: HitProductionOrdersService }, { type: HitFillingControlService }]; }, propDecorators: { nmbBoxBarkodNumarasi: [{
2514
2534
  type: ViewChild,
2515
2535
  args: ['barkodNumarasiRef', { static: false }]