Huge News!Announcing our $40M Series B led by Abstract Ventures.Learn More
Socket
Sign inDemoInstall
Socket

@angular-material-components/color-picker

Package Overview
Dependencies
Maintainers
1
Versions
25
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

@angular-material-components/color-picker - npm Package Compare versions

Comparing version 4.0.2 to 5.0.0-beta.1

4

bundles/angular-material-components-color-picker.umd.min.js

@@ -1,2 +0,2 @@

!function(t,e){"object"==typeof exports&&"undefined"!=typeof module?e(exports,require("@angular/cdk/portal"),require("@angular/common"),require("@angular/core"),require("@angular/forms"),require("@angular/material/button"),require("@angular/material/card"),require("@angular/material/dialog"),require("@angular/material/icon"),require("@angular/material/input"),require("@angular/material/radio"),require("rxjs"),require("rxjs/operators"),require("@angular/cdk/bidi"),require("@angular/cdk/coercion"),require("@angular/cdk/keycodes"),require("@angular/cdk/overlay"),require("@angular/material/core"),require("@angular/material/datepicker"),require("@angular/material/form-field")):"function"==typeof define&&define.amd?define("@angular-material-components/color-picker",["exports","@angular/cdk/portal","@angular/common","@angular/core","@angular/forms","@angular/material/button","@angular/material/card","@angular/material/dialog","@angular/material/icon","@angular/material/input","@angular/material/radio","rxjs","rxjs/operators","@angular/cdk/bidi","@angular/cdk/coercion","@angular/cdk/keycodes","@angular/cdk/overlay","@angular/material/core","@angular/material/datepicker","@angular/material/form-field"],e):e(((t=t||self)["angular-material-components"]=t["angular-material-components"]||{},t["angular-material-components"]["color-picker"]={}),t.ng.cdk.portal,t.ng.common,t.ng.core,t.ng.forms,t.ng.material.button,t.ng.material.card,t.ng.material.dialog,t.ng.material.icon,t.ng.material.input,t.ng.material.radio,t.rxjs,t.rxjs.operators,t.ng.cdk.bidi,t.ng.cdk.coercion,t.ng.cdk.keycodes,t.ng.cdk.overlay,t.ng.material.core,t.ng.material.datepicker,t.ng.material.formField)}(this,(function(t,e,o,r,n,i,a,s,l,c,p,u,h,d,g,f,m,b,y,_){"use strict";var x=function(){function t(){this.colorChanged=new r.EventEmitter}return t.prototype.ngOnInit=function(){},t.prototype.handleColorChanged=function(t){this.colorChanged.emit(t)},t}();x.decorators=[{type:r.Component,args:[{selector:"ngx-mat-color-palette",template:'<ngx-mat-color-canvas (colorChanged)="handleColorChanged($event)" [color]="color"></ngx-mat-color-canvas>\r\n<ngx-mat-color-collection (colorChanged)="handleColorChanged($event)" [color]="color"></ngx-mat-color-collection>',encapsulation:r.ViewEncapsulation.None,host:{class:"ngx-mat-color-palette"},styles:[".ngx-mat-color-palette .actions{display:flex;margin-top:10px}.ngx-mat-color-palette .actions .left{display:flex;flex-direction:column;margin-right:15px}.ngx-mat-color-palette .actions .left .preview{flex:2 1 auto;margin-bottom:10px}.ngx-mat-color-palette .actions .right{display:flex;flex-direction:column;width:40px}"]}]}],x.ctorParameters=function(){return[]},x.propDecorators={colorChanged:[{type:r.Output}],color:[{type:r.Input}]};
!function(t,e){"object"==typeof exports&&"undefined"!=typeof module?e(exports,require("@angular/cdk/portal"),require("@angular/common"),require("@angular/core"),require("@angular/forms"),require("@angular/material/button"),require("@angular/material/card"),require("@angular/material/dialog"),require("@angular/material/icon"),require("@angular/material/input"),require("@angular/material/radio"),require("rxjs"),require("rxjs/operators"),require("@angular/cdk/bidi"),require("@angular/cdk/coercion"),require("@angular/cdk/keycodes"),require("@angular/cdk/overlay"),require("@angular/material/core"),require("@angular/material/datepicker"),require("@angular/material/form-field")):"function"==typeof define&&define.amd?define("@angular-material-components/color-picker",["exports","@angular/cdk/portal","@angular/common","@angular/core","@angular/forms","@angular/material/button","@angular/material/card","@angular/material/dialog","@angular/material/icon","@angular/material/input","@angular/material/radio","rxjs","rxjs/operators","@angular/cdk/bidi","@angular/cdk/coercion","@angular/cdk/keycodes","@angular/cdk/overlay","@angular/material/core","@angular/material/datepicker","@angular/material/form-field"],e):e(((t="undefined"!=typeof globalThis?globalThis:t||self)["angular-material-components"]=t["angular-material-components"]||{},t["angular-material-components"]["color-picker"]={}),t.ng.cdk.portal,t.ng.common,t.ng.core,t.ng.forms,t.ng.material.button,t.ng.material.card,t.ng.material.dialog,t.ng.material.icon,t.ng.material.input,t.ng.material.radio,t.rxjs,t.rxjs.operators,t.ng.cdk.bidi,t.ng.cdk.coercion,t.ng.cdk.keycodes,t.ng.cdk.overlay,t.ng.material.core,t.ng.material.datepicker,t.ng.material.formField)}(this,(function(t,e,o,r,n,i,a,s,l,c,p,u,h,d,g,f,m,b,y,_){"use strict";var x=function(){function t(){this.colorChanged=new r.EventEmitter}return t.prototype.ngOnInit=function(){},t.prototype.handleColorChanged=function(t){this.colorChanged.emit(t)},t}();x.decorators=[{type:r.Component,args:[{selector:"ngx-mat-color-palette",template:'<ngx-mat-color-canvas (colorChanged)="handleColorChanged($event)" [color]="color"></ngx-mat-color-canvas>\r\n<ngx-mat-color-collection (colorChanged)="handleColorChanged($event)" [color]="color"></ngx-mat-color-collection>',encapsulation:r.ViewEncapsulation.None,host:{class:"ngx-mat-color-palette"},styles:[".ngx-mat-color-palette .actions{display:flex;margin-top:10px}.ngx-mat-color-palette .actions .left{display:flex;flex-direction:column;margin-right:15px}.ngx-mat-color-palette .actions .left .preview{flex:2 1 auto;margin-bottom:10px}.ngx-mat-color-palette .actions .right{display:flex;flex-direction:column;width:40px}"]}]}],x.ctorParameters=function(){return[]},x.propDecorators={colorChanged:[{type:r.Output}],color:[{type:r.Input}]};
/*! *****************************************************************************

@@ -16,3 +16,3 @@ Copyright (c) Microsoft Corporation.

***************************************************************************** */
var C=function(t,e){return(C=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(var o in e)e.hasOwnProperty(o)&&(t[o]=e[o])})(t,e)};function v(t,e){function o(){this.constructor=t}C(t,e),t.prototype=null===e?Object.create(e):(o.prototype=e.prototype,new o)}Object.create;Object.create;var w=/^\s+/,k=/\s+$/,O=Math.round,R=(Math.min,Math.max,Math.random,/[^0-9]/g),I=["#ffffff","#ffff00","#ff00ff","#ff0000","#c0c0c0","#808080","#808000","#800080","#800000","#00ffff","#00ff00","#008080","#008000","#0000ff","#000080","#000000"];function S(t,e,o){var r=t.getImageData(e,o,1,1).data;return{r:r[0],g:r[1],b:r[2]}}function A(t,e,o,r,n){var i=[P(O(t).toString(16)),P(O(e).toString(16)),P(O(o).toString(16)),P(M(r))];return n&&i[0].charAt(0)==i[0].charAt(1)&&i[1].charAt(0)==i[1].charAt(1)&&i[2].charAt(0)==i[2].charAt(1)&&i[3].charAt(0)==i[3].charAt(1)?i[0].charAt(0)+i[1].charAt(0)+i[2].charAt(0)+i[3].charAt(0):i.join("")}function P(t){return 1==t.length?"0"+t:""+t}function M(t){return Math.round(255*parseFloat(t)).toString(16)}function E(t){return N(t)/255}function N(t){return parseInt(t,16)}function T(t,e,o,r){var n=[P(O(t).toString(16)),P(O(e).toString(16)),P(O(o).toString(16))];return r&&n[0].charAt(0)==n[0].charAt(1)&&n[1].charAt(0)==n[1].charAt(1)&&n[2].charAt(0)==n[2].charAt(1)?n[0].charAt(0)+n[1].charAt(0)+n[2].charAt(0):n.join("")}var F="(?:[-\\+]?\\d*\\.\\d+%?)|(?:[-\\+]?\\d+%?)",V="[\\s|\\(]+("+F+")[,|\\s]+("+F+")[,|\\s]+("+F+")\\s*\\)?",j="[\\s|\\(]+("+F+")[,|\\s]+("+F+")[,|\\s]+("+F+")[,|\\s]+("+F+")\\s*\\)?",D={CSS_UNIT:new RegExp(F),rgb:new RegExp("rgb"+V),rgba:new RegExp("rgba"+j),hsl:new RegExp("hsl"+V),hsla:new RegExp("hsla"+j),hsv:new RegExp("hsv"+V),hsva:new RegExp("hsva"+j),hex3:/^#?([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})$/,hex6:/^#?([0-9a-fA-F]{2})([0-9a-fA-F]{2})([0-9a-fA-F]{2})$/,hex4:/^#?([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})$/,hex8:/^#?([0-9a-fA-F]{2})([0-9a-fA-F]{2})([0-9a-fA-F]{2})([0-9a-fA-F]{2})$/};function G(t){var e;return t=t.replace(w,"").replace(k,"").toLowerCase(),(e=D.rgb.exec(t))?{r:e[1],g:e[2],b:e[3],a:1}:(e=D.rgba.exec(t))?{r:e[1],g:e[2],b:e[3],a:e[4]}:(e=D.hex8.exec(t))?{r:N(e[1]),g:N(e[2]),b:N(e[3]),a:E(e[4])}:(e=D.hex6.exec(t))?{r:N(e[1]),g:N(e[2]),b:N(e[3]),a:1}:(e=D.hex4.exec(t))?{r:N(e[1]+""+e[1]),g:N(e[2]+""+e[2]),b:N(e[3]+""+e[3]),a:E(e[4]+""+e[4])}:(e=D.hex3.exec(t))?{r:N(e[1]+""+e[1]),g:N(e[2]+""+e[2]),b:N(e[3]+""+e[3]),a:1}:null}function L(t){return Error("NgxMatColorPicker: No provider found for "+t+". You must define MAT_COLOR_FORMATS in your module")}var q=function(){function t(t,e,o,r){this.r=t>255?255:t,this.g=e>255?255:e,this.b=o>255?255:o,this.a=null!=r?r>1?1:r:1,this.roundA=Math.round(this.a),this.hex=T(this.r,this.g,this.b),this.rgba=this.toRgba()}return t.prototype.toHex=function(t){return T(this.r,this.g,this.b,t)},t.prototype.toRgba=function(){return"rgba("+this.r+","+this.g+","+this.b+","+this.a+")"},t.prototype.toHexString=function(t){return"#"+this.toHex(t)},t.prototype.toRgbString=function(){return 1===this.a?"rgb("+Math.round(this.r)+", "+Math.round(this.g)+", "+Math.round(this.b)+")":"rgba("+Math.round(this.r)+", "+Math.round(this.g)+", "+Math.round(this.b)+", "+this.roundA+")"},t.prototype.toHex8=function(t){return A(this.r,this.g,this.b,this.a,t)},t.prototype.toHex8String=function(t){return"#"+this.toHex8(t)},t.prototype.toString=function(t){var e,o=!!t,r=this.a<1&&this.a>=0;return o||!r||"hex"!==t&&"hex6"!==t&&"hex3"!==t&&"hex4"!==t&&"hex8"!==t?("rgb"===t&&(e=this.toRgbString()),"hex"!==t&&"hex6"!==t||(e=this.toHexString()),"hex3"===t&&(e=this.toHexString(!0)),"hex4"===t&&(e=this.toHex8String(!0)),"hex8"===t&&(e=this.toHex8String()),e||this.toHexString()):this.toRgbString()},t}();var B=function(){function t(t,e){this.zone=t,this.colorChanged=new r.EventEmitter,this.x=0,this.y=0,this.drag=!1,this._destroyed=new u.Subject,this.elementId=e}return t.prototype.ngOnDestroy=function(){this._destroyed.next(),this._destroyed.complete()},t.prototype.ngAfterViewInit=function(){this.canvas=document.getElementById(this.elementId),this.ctx=this.canvas.getContext("2d"),this.width=this.canvas.width,this.height=this.canvas.height,this.draw()},t.prototype.draw=function(){this.ctx.clearRect(0,0,this.width,this.height),this.ctx.rect(0,0,this.width,this.height),this.fillGradient(),0!=this.y&&this.redrawIndicator(this.x,this.y)},t.prototype.onMousedown=function(t){var e=this;this.drag=!0,this.changeColor(t),this.zone.runOutsideAngular((function(){e.canvas.addEventListener("mousemove",e.onMousemove.bind(e))}))},t.prototype.onMousemove=function(t){var e=this;this.drag&&this.zone.run((function(){e.changeColor(t)}))},t.prototype.onMouseup=function(t){this.drag=!1,this.canvas.removeEventListener("mousemove",this.onMousemove)},t.prototype.emitChange=function(t){this.colorChanged.emit(t)},t}();B.decorators=[{type:r.Directive,args:[{}]}],B.ctorParameters=function(){return[{type:r.NgZone},{type:String}]},B.propDecorators={colorChanged:[{type:r.Output}],color:[{type:r.Input}]};var Y=function(t){function e(e){var o=t.call(this,e,"color-block")||this;return o.zone=e,o._resetBaseColor=!0,o.formGroup=new n.FormGroup({r:new n.FormControl(null,[n.Validators.required]),g:new n.FormControl(null,[n.Validators.required]),b:new n.FormControl(null,[n.Validators.required]),a:new n.FormControl(null,[n.Validators.required]),hex:new n.FormControl(null,[n.Validators.required,n.Validators.pattern(D.hex6)])}),o}return v(e,t),Object.defineProperty(e.prototype,"rCtrl",{get:function(){return this.formGroup.get("r")},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,"gCtrl",{get:function(){return this.formGroup.get("g")},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,"bCtrl",{get:function(){return this.formGroup.get("b")},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,"aCtrl",{get:function(){return this.formGroup.get("a")},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,"hexCtrl",{get:function(){return this.formGroup.get("hex")},enumerable:!1,configurable:!0}),e.prototype.ngOnInit=function(){var t=this;u.merge(this.rCtrl.valueChanges,this.gCtrl.valueChanges,this.bCtrl.valueChanges,this.aCtrl.valueChanges).pipe(h.takeUntil(this._destroyed),h.debounceTime(400),h.distinctUntilChanged()).subscribe((function(e){var o=new q(Number(t.rCtrl.value),Number(t.gCtrl.value),Number(t.bCtrl.value),Number(t.aCtrl.value));t.emitChange(o)})),this.hexCtrl.valueChanges.pipe(h.takeUntil(this._destroyed),h.debounceTime(400),h.distinctUntilChanged()).subscribe((function(e){var o=G(e);if(null!=o){var r=new q(o.r,o.g,o.b,o.a);t.emitChange(r)}}))},e.prototype.ngOnChanges=function(t){t.color&&t.color.currentValue&&(this.updateForm(t.color.currentValue),this._resetBaseColor&&(this._baseColor=t.color.currentValue),this._resetBaseColor=!0,t.color.firstChange||this.draw())},e.prototype.updateForm=function(t){var e={emitEvent:!1};this.rCtrl.setValue(t.r,e),this.gCtrl.setValue(t.g,e),this.bCtrl.setValue(t.b,e),this.aCtrl.setValue(t.a,e),this.hexCtrl.setValue(t.hex,e)},e.prototype.redrawIndicator=function(t,e){this.ctx.beginPath(),this.ctx.strokeStyle="white",this.ctx.arc(t,e,5,0,2*Math.PI,!1),this.ctx.stroke(),this.ctx.closePath()},e.prototype.fillGradient=function(){this.ctx.fillStyle=this._baseColor?this._baseColor.rgba:"rgba(255,255,255,1)",this.ctx.fillRect(0,0,this.width,this.height);var t=this.ctx.createLinearGradient(0,0,this.width,0);t.addColorStop(0,"rgba(255,255,255,1)"),t.addColorStop(1,"rgba(255,255,255,0)"),this.ctx.fillStyle=t,this.ctx.fillRect(0,0,this.width,this.height);var e=this.ctx.createLinearGradient(0,0,0,this.height);e.addColorStop(0,"rgba(0,0,0,0)"),e.addColorStop(1,"rgba(0,0,0,1)"),this.ctx.fillStyle=e,this.ctx.fillRect(0,0,this.width,this.height)},e.prototype.onSliderColorChanged=function(t){this._baseColor=t,this.color=t,this.fillGradient(),this.emitChange(t)},e.prototype.changeColor=function(t){this.x=t.offsetX,this.y=t.offsetY,this._resetBaseColor=!1,this.draw();var e=S(this.ctx,t.offsetX,t.offsetY),o=e.r,r=e.g,n=e.b;this.emitChange(new q(o,r,n))},e}(B);Y.decorators=[{type:r.Component,args:[{selector:"ngx-mat-color-canvas",template:'<form [formGroup]="formGroup">\r\n <div class="row">\r\n <div class="zone-canvas">\r\n <canvas id="color-block" class="zone-block" (mousedown)="onMousedown($event)" (mouseup)="onMouseup($event)"\r\n width="200" height="200"></canvas>\r\n <ngx-mat-color-slider (colorChanged)="onSliderColorChanged($event)"></ngx-mat-color-slider>\r\n </div>\r\n\r\n <div class="zone-inputs">\r\n <mat-form-field>\r\n <mat-label>R</mat-label>\r\n <input matInput formControlName="r" ngxMatNumericColorInput autocomplete="off">\r\n </mat-form-field>\r\n\r\n <mat-form-field>\r\n <mat-label>G</mat-label>\r\n <input matInput formControlName="g" ngxMatNumericColorInput autocomplete="off">\r\n </mat-form-field>\r\n\r\n <mat-form-field>\r\n <mat-label>B</mat-label>\r\n <input matInput formControlName="b" ngxMatNumericColorInput autocomplete="off">\r\n </mat-form-field>\r\n </div>\r\n </div>\r\n\r\n <div class="row">\r\n <button mat-mini-fab [style.background-color]="color?.rgba || \'transparent\'" class="preview"></button>\r\n <mat-form-field>\r\n <mat-label>HEX6</mat-label>\r\n <mat-label matPrefix class="symbol">#&nbsp;</mat-label>\r\n <input matInput formControlName="hex" autocomplete="off">\r\n </mat-form-field>\r\n <mat-form-field>\r\n <mat-label>A</mat-label>\r\n <input matInput formControlName="a" type="number" min="0" max="1" step="0.1" autocomplete="off">\r\n </mat-form-field>\r\n </div>\r\n</form>',encapsulation:r.ViewEncapsulation.None,host:{class:"ngx-mat-color-canvas"},styles:[".ngx-mat-color-canvas .row{display:flex}.ngx-mat-color-canvas .row:first-of-type{height:200px;margin-bottom:12px}.ngx-mat-color-canvas .row:first-of-type .card{height:180px}.ngx-mat-color-canvas .row canvas:hover{cursor:crosshair}.ngx-mat-color-canvas .row .zone{display:flex}.ngx-mat-color-canvas .row .zone-canvas{height:200px}.ngx-mat-color-canvas .row .zone-canvas .zone-block{border:1px solid rgba(0,0,0,.12)}.ngx-mat-color-canvas .row .zone-strip{flex-basis:auto;margin-left:10px}.ngx-mat-color-canvas .row .zone-inputs{display:flex;flex-direction:column;height:200px;margin-left:16px;margin-top:12px;width:40px}.ngx-mat-color-canvas .row:nth-of-type(2){display:flex}.ngx-mat-color-canvas .row:nth-of-type(2) .preview{height:40px;min-height:40px;min-width:40px;width:40px}.ngx-mat-color-canvas .row:nth-of-type(2) .mat-form-field{margin-left:16px}.ngx-mat-color-canvas .row:nth-of-type(2) .mat-form-field:first-of-type{width:170px}.ngx-mat-color-canvas .row:nth-of-type(2) .mat-form-field:first-of-type .symbol{color:rgba(0,0,0,.54);font-weight:700}.ngx-mat-color-canvas .row:nth-of-type(2) .mat-form-field:last-of-type{width:40px}.ngx-mat-color-canvas .mat-form-field-label{font-weight:700}"]}]}],Y.ctorParameters=function(){return[{type:r.NgZone}]};var U=function(){function t(){this.colorChanged=new r.EventEmitter,this.colors1=I.slice(0,8),this.colors2=I.slice(8,16)}return Object.defineProperty(t.prototype,"color",{set:function(t){t&&(this.selectedColor=t.toHexString())},enumerable:!1,configurable:!0}),t.prototype.ngOnInit=function(){},t.prototype.select=function(t){this.selectedColor=t;var e=G(t),o=e.r,r=e.g,n=e.b,i=e.a;this.colorChanged.emit(new q(o,r,n,i))},t}();U.decorators=[{type:r.Component,args:[{selector:"ngx-mat-color-collection",template:'<div class="row">\r\n <button *ngFor="let c of colors1" mat-mini-fab [style.background-color]="c" class="btn-color"\r\n (click)="select(c)" [ngClass]="{\'active\': selectedColor === c}">\r\n </button>\r\n</div>\r\n<div class="row">\r\n <button *ngFor="let c of colors2" mat-mini-fab [style.background-color]="c" class="btn-color"\r\n (click)="select(c)" [ngClass]="{\'active\': selectedColor === c}">\r\n </button>\r\n</div>',encapsulation:r.ViewEncapsulation.None,host:{class:"ngx-mat-color-collection"},styles:[".ngx-mat-color-collection .btn-color{box-shadow:none;height:20px;margin-right:11px;opacity:.3;width:20px}.ngx-mat-color-collection .btn-color.active{box-shadow:0 3px 5px -1px rgba(0,0,0,.2),0 6px 10px 0 rgba(0,0,0,.14),0 1px 18px 0 rgba(0,0,0,.12);opacity:1}"]}]}],U.ctorParameters=function(){return[]},U.propDecorators={colorChanged:[{type:r.Output}],color:[{type:r.Input}]};var X=function(t){function e(e){var o=t.call(this,e,"color-strip")||this;return o.zone=e,o}return v(e,t),e.prototype.ngOnInit=function(){},e.prototype.ngAfterViewInit=function(){t.prototype.ngAfterViewInit.call(this)},e.prototype.fillGradient=function(){var t=this.ctx.createLinearGradient(0,0,0,this.height);t.addColorStop(0,"rgba(255, 0, 0, 1)"),t.addColorStop(.17,"rgba(255, 255, 0, 1)"),t.addColorStop(.34,"rgba(0, 255, 0, 1)"),t.addColorStop(.51,"rgba(0, 255, 255, 1)"),t.addColorStop(.68,"rgba(0, 0, 255, 1)"),t.addColorStop(.85,"rgba(255, 0, 255, 1)"),t.addColorStop(1,"rgba(255, 0, 0, 1)"),this.ctx.fillStyle=t,this.ctx.fill()},e.prototype.redrawIndicator=function(t,e){this.ctx.beginPath(),this.ctx.strokeStyle="white",this.ctx.lineWidth=2,this.ctx.arc(7.5,e,7.5,0,2*Math.PI,!1),this.ctx.stroke(),this.ctx.closePath()},e.prototype.changeColor=function(t){this.x=t.offsetX,this.y=t.offsetY,this.draw();var e=S(this.ctx,t.offsetX,t.offsetY),o=e.r,r=e.g,n=e.b;this.emitChange(new q(o,r,n))},e}(B);X.decorators=[{type:r.Component,args:[{selector:"ngx-mat-color-slider",template:'<canvas id="color-strip" class="zone-strip" (mousedown)="onMousedown($event)" (mouseup)="onMouseup($event)"\r\n width="15" height="200"></canvas>',styles:[""]}]}],X.ctorParameters=function(){return[{type:r.NgZone}]};var z=function(){function t(){}return t.prototype.sameColor=function(t,e){return null==t&&null==e||null!=t&&null!=e&&t.rgba===e.rgba},t.prototype.format=function(t,e){return t.toString(e)},t.prototype.parse=function(t){var e=G(t);return e?new q(e.r,e.g,e.b,e.a):null},t}();z.decorators=[{type:r.Injectable}],z.ctorParameters=function(){return[]};var H=new r.InjectionToken("mat-color-formats"),$=new r.InjectionToken("ngx-mat-colorpicker-scroll-strategy");function K(t){return function(){return t.scrollStrategies.reposition()}}var W={provide:$,deps:[m.Overlay],useFactory:K},Z=function(t){this._elementRef=t};var J=function(t){function e(e){return t.call(this,e)||this}return v(e,t),e}(b.mixinColor(Z));J.decorators=[{type:r.Component,args:[{selector:"ngx-mat-color-picker-content",template:'<ngx-mat-color-palette (colorChanged)="picker.select($event)" [color]="picker._selected"></ngx-mat-color-palette>',host:{class:"ngx-mat-colorpicker-content","[@transformPanel]":'"enter"',"[class.ngx-mat-colorpicker-content-touch]":"picker.touchUi"},animations:[y.matDatepickerAnimations.transformPanel,y.matDatepickerAnimations.fadeInCalendar],exportAs:"ngxMatColorPickerContent",encapsulation:r.ViewEncapsulation.None,changeDetection:r.ChangeDetectionStrategy.OnPush,inputs:["color"],styles:[".ngx-mat-colorpicker-content{background-color:#fff;border-radius:4px;box-shadow:0 2px 4px -1px rgba(0,0,0,.2),0 4px 5px 0 rgba(0,0,0,.14),0 1px 10px 0 rgba(0,0,0,.12);color:rgba(0,0,0,.87);display:block;padding:16px}.ngx-mat-colorpicker-content .ngx-mat-color-palette{height:354px;width:296px}.ngx-mat-colorpicker-content-touch{display:block;max-height:80vh;overflow:auto}.ngx-mat-colorpicker-content-touch .ngx-mat-color-palette{max-height:788px;max-width:750px;min-height:312px;min-width:250px}@media (orientation:landscape){.mat-colorpicker-content-touch .ngx-mat-color-palette{height:80vh;width:64vh}}@media (orientation:portrait){.mat-colorpicker-content-touch .ngx-mat-color-palette{height:100vw;width:80vw}}"]}]}],J.ctorParameters=function(){return[{type:r.ElementRef}]},J.propDecorators={_palette:[{type:r.ViewChild,args:[x]}]};var Q=function(){function t(t,e,o,n,i,a,s,l){this._dialog=t,this._overlay=e,this._zone=o,this._adapter=n,this._dir=i,this._document=s,this._viewContainerRef=l,this.openedStream=new r.EventEmitter,this.closedStream=new r.EventEmitter,this._touchUi=!1,this._opened=!1,this._defaultColor="primary",this._validSelected=null,this._disabledChange=new u.Subject,this._focusedElementBeforeOpen=null,this._inputSubscription=u.Subscription.EMPTY,this._selectedChanged=new u.Subject,this._scrollStrategy=a}return Object.defineProperty(t.prototype,"disabled",{get:function(){return void 0===this._disabled&&this._pickerInput?this._pickerInput.disabled:!!this._disabled},set:function(t){var e=g.coerceBooleanProperty(t);e!==this._disabled&&(this._disabled=e,this._disabledChange.next(e))},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,"touchUi",{get:function(){return this._touchUi},set:function(t){this._touchUi=g.coerceBooleanProperty(t)},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,"opened",{get:function(){return this._opened},set:function(t){t?this.open():this.close()},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,"defaultColor",{get:function(){return this._defaultColor},set:function(t){this._defaultColor=t},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,"color",{get:function(){return this._color||(this._pickerInput?this._pickerInput.getThemePalette():void 0)},set:function(t){this._color=t},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,"_selected",{get:function(){return this._validSelected},set:function(t){this._validSelected=t},enumerable:!1,configurable:!0}),t.prototype.ngOnInit=function(){},t.prototype.ngOnDestroy=function(){this.close(),this._inputSubscription.unsubscribe(),this._disabledChange.complete(),this._popupRef&&(this._popupRef.dispose(),this._popupComponentRef=null)},t.prototype.select=function(t){var e=this._selected;this._selected=t,this._adapter.sameColor(e,this._selected)||this._selectedChanged.next(t)},t.prototype.registerInput=function(t){var e=this;if(this._pickerInput)throw Error("A ColorPicker can only be associated with a single input.");this._pickerInput=t,this._inputSubscription=this._pickerInput._valueChange.subscribe((function(t){return e._selected=t}))},t.prototype.open=function(){if(!this._opened&&!this.disabled){if(!this._pickerInput)throw Error("Attempted to open an ColorPicker with no associated input.");this._document&&(this._focusedElementBeforeOpen=this._document.activeElement),this.touchUi?this._openAsDialog():this._openAsPopup(),this._opened=!0,this.openedStream.emit()}},t.prototype._openAsDialog=function(){var t=this;this._dialogRef&&this._dialogRef.close(),this._dialogRef=this._dialog.open(J,{direction:this._dir?this._dir.value:"ltr",viewContainerRef:this._viewContainerRef,panelClass:"ngx-mat-colorpicker-dialog"}),this._dialogRef.afterClosed().subscribe((function(){return t.close()})),this._dialogRef.componentInstance.picker=this,this._setColor()},t.prototype._openAsPopup=function(){var t=this;this._portal||(this._portal=new e.ComponentPortal(J,this._viewContainerRef)),this._popupRef||this._createPopup(),this._popupRef.hasAttached()||(this._popupComponentRef=this._popupRef.attach(this._portal),this._popupComponentRef.instance.picker=this,this._setColor(),this._zone.onStable.asObservable().pipe(h.take(1)).subscribe((function(){t._popupRef.updatePosition()})))},t.prototype._createPopup=function(){var t=this,e=new m.OverlayConfig({positionStrategy:this._createPopupPositionStrategy(),hasBackdrop:!0,backdropClass:"mat-overlay-transparent-backdrop",direction:this._dir,scrollStrategy:this._scrollStrategy(),panelClass:"mat-colorpicker-popup"});this._popupRef=this._overlay.create(e),this._popupRef.overlayElement.setAttribute("role","dialog"),u.merge(this._popupRef.backdropClick(),this._popupRef.detachments(),this._popupRef.keydownEvents().pipe(h.filter((function(e){return e.keyCode===f.ESCAPE||t._pickerInput&&e.altKey&&e.keyCode===f.UP_ARROW})))).subscribe((function(e){e&&e.preventDefault(),t.close()}))},t.prototype.close=function(){var t=this;if(this._opened){this._popupRef&&this._popupRef.hasAttached()&&this._popupRef.detach(),this._dialogRef&&(this._dialogRef.close(),this._dialogRef=null),this._portal&&this._portal.isAttached&&this._portal.detach();var e=function(){t._opened&&(t._opened=!1,t.closedStream.emit(),t._focusedElementBeforeOpen=null)};this._focusedElementBeforeOpen&&"function"==typeof this._focusedElementBeforeOpen.focus?(this._focusedElementBeforeOpen.focus(),setTimeout(e)):e()}},t.prototype._setColor=function(){var t=this.color;this._popupComponentRef&&(this._popupComponentRef.instance.color=t),this._dialogRef&&(this._dialogRef.componentInstance.color=t)},t.prototype._createPopupPositionStrategy=function(){return this._overlay.position().flexibleConnectedTo(this._pickerInput.getConnectedOverlayOrigin()).withTransformOriginOn(".ngx-mat-colorpicker-content").withFlexibleDimensions(!1).withViewportMargin(8).withLockedPosition().withPositions([{originX:"start",originY:"bottom",overlayX:"start",overlayY:"top"},{originX:"start",originY:"top",overlayX:"start",overlayY:"bottom"},{originX:"end",originY:"bottom",overlayX:"end",overlayY:"top"},{originX:"end",originY:"top",overlayX:"end",overlayY:"bottom"}])},t}();Q.decorators=[{type:r.Component,args:[{selector:"ngx-mat-color-picker",template:"",exportAs:"ngxMatColorPicker",changeDetection:r.ChangeDetectionStrategy.OnPush,encapsulation:r.ViewEncapsulation.None}]}],Q.ctorParameters=function(){return[{type:s.MatDialog},{type:m.Overlay},{type:r.NgZone},{type:z},{type:d.Directionality,decorators:[{type:r.Optional}]},{type:void 0,decorators:[{type:r.Inject,args:[$]}]},{type:void 0,decorators:[{type:r.Optional},{type:r.Inject,args:[o.DOCUMENT]}]},{type:r.ViewContainerRef}]},Q.propDecorators={openedStream:[{type:r.Output,args:["opened"]}],closedStream:[{type:r.Output,args:["closed"]}],disabled:[{type:r.Input}],touchUi:[{type:r.Input}],opened:[{type:r.Input}],defaultColor:[{type:r.Input}],color:[{type:r.Input}]};var tt=function(t,e){this.target=t,this.targetElement=e,this.value=this.target.value};var et={provide:n.NG_VALUE_ACCESSOR,useExisting:r.forwardRef((function(){return rt})),multi:!0},ot={provide:n.NG_VALIDATORS,useExisting:r.forwardRef((function(){return rt})),multi:!0},rt=function(){function t(t,e,o,i){if(this._elementRef=t,this._formField=e,this._colorFormats=o,this._adapter=i,this.colorChange=new r.EventEmitter,this.colorInput=new r.EventEmitter,this._disabledChange=new r.EventEmitter,this._valueChange=new r.EventEmitter,this._onTouched=function(){},this._cvaOnChange=function(){},this._validatorOnChange=function(){},this._pickerSubscription=u.Subscription.EMPTY,this._validator=n.Validators.compose([]),this._lastValueValid=!1,!this._colorFormats)throw L("MAT_COLOR_FORMATS")}return Object.defineProperty(t.prototype,"ngxMatColorPicker",{set:function(t){var e=this;t&&(this._picker=t,this._picker.registerInput(this),this._pickerSubscription.unsubscribe(),this._pickerSubscription=this._picker._selectedChanged.subscribe((function(t){e.value=t,e._cvaOnChange(t),e._onTouched(),e.colorInput.emit(new tt(e,e._elementRef.nativeElement)),e.colorChange.emit(new tt(e,e._elementRef.nativeElement))})))},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,"disabled",{get:function(){return!!this._disabled},set:function(t){var e=g.coerceBooleanProperty(t),o=this._elementRef.nativeElement;this._disabled!==e&&(this._disabled=e,this._disabledChange.emit(e)),e&&o.blur&&o.blur()},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,"value",{get:function(){return this._value},set:function(t){var e=this.value;this._value=t,this._formatValue(t),this._adapter.sameColor(e,t)||this._valueChange.emit(t)},enumerable:!1,configurable:!0}),t.prototype.getThemePalette=function(){return this._formField?this._formField.color:void 0},t.prototype.registerOnValidatorChange=function(t){this._validatorOnChange=t},t.prototype.validate=function(t){return this._validator?this._validator(t):null},t.prototype.getPopupConnectionElementRef=function(){return this.getConnectedOverlayOrigin()},t.prototype.getConnectedOverlayOrigin=function(){return this._formField?this._formField.getConnectedOverlayOrigin():this._elementRef},t.prototype.ngOnInit=function(){},t.prototype.ngOnDestroy=function(){this._pickerSubscription.unsubscribe(),this._valueChange.complete(),this._disabledChange.complete()},t.prototype.writeValue=function(t){this.value=t},t.prototype.registerOnChange=function(t){this._cvaOnChange=t},t.prototype.registerOnTouched=function(t){this._onTouched=t},t.prototype.setDisabledState=function(t){this.disabled=t},t.prototype._onChange=function(){this.colorChange.emit(new tt(this,this._elementRef.nativeElement))},t.prototype._onKeydown=function(t){var e=t.altKey&&t.keyCode===f.DOWN_ARROW;this._picker&&e&&!this._elementRef.nativeElement.readOnly&&(this._picker.open(),t.preventDefault())},t.prototype._onBlur=function(){this.value&&this._formatValue(this.value),this._onTouched()},t.prototype._formatValue=function(t){this._elementRef.nativeElement.value=t?this._adapter.format(t,this._colorFormats.display.colorInput):""},t.prototype._onInput=function(t){var e=this._lastValueValid,o=this._adapter.parse(t);this._adapter.sameColor(o,this._value)?e!==this._lastValueValid&&this._validatorOnChange():(this._value=o,this._cvaOnChange(o),this._valueChange.emit(o),this.colorInput.emit(new tt(this,this._elementRef.nativeElement)))},t}();rt.decorators=[{type:r.Directive,args:[{selector:"input[ngxMatColorPicker]",providers:[et,ot,{provide:c.MAT_INPUT_VALUE_ACCESSOR,useExisting:rt}],host:{"[attr.aria-haspopup]":'_picker ? "dialog" : null',"[attr.aria-owns]":"(_picker?.opened && _picker.id) || null","[disabled]":"disabled","(input)":"_onInput($event.target.value)","(change)":"_onChange()","(blur)":"_onBlur()","(keydown)":"_onKeydown($event)"},exportAs:"ngxMatColorPickerInput"}]}],rt.ctorParameters=function(){return[{type:r.ElementRef},{type:_.MatFormField,decorators:[{type:r.Optional}]},{type:void 0,decorators:[{type:r.Optional},{type:r.Inject,args:[H]}]},{type:z}]},rt.propDecorators={ngxMatColorPicker:[{type:r.Input}],disabled:[{type:r.Input}],value:[{type:r.Input}],colorChange:[{type:r.Output}],colorInput:[{type:r.Output}]};var nt=function(){function t(t){this._cd=t,this._stateChanges=u.Subscription.EMPTY}return Object.defineProperty(t.prototype,"disabled",{get:function(){if(null==this._disabled&&this.picker)return this.picker.disabled},set:function(t){this._disabled=t},enumerable:!1,configurable:!0}),t.prototype.ngOnInit=function(){},t.prototype.ngOnChanges=function(t){t.picker&&this._watchStateChanges()},t.prototype.ngOnDestroy=function(){this._stateChanges.unsubscribe()},t.prototype.ngAfterContentInit=function(){this._watchStateChanges()},t.prototype.open=function(t){this.picker&&!this.disabled&&(this.picker.open(),t.stopPropagation())},t.prototype._watchStateChanges=function(){var t=this,e=this.picker?this.picker._disabledChange:u.of(),o=this.picker&&this.picker._pickerInput?this.picker._pickerInput._disabledChange:u.of(),r=this.picker?u.merge(this.picker.openedStream,this.picker.closedStream):u.of();this._stateChanges.unsubscribe(),this._stateChanges=u.merge(e,o,r).subscribe((function(){return t._cd.markForCheck()}))},t}();nt.decorators=[{type:r.Component,args:[{selector:"ngx-mat-color-toggle",template:'<button #button mat-icon-button type="button" [attr.aria-haspopup]="picker ? \'dialog\' : null"\r\n [attr.tabindex]="disabled ? -1 : tabIndex" [disabled]="disabled" (click)="open($event)">\r\n <mat-icon [style.color]="picker?._selected?.rgba">palette</mat-icon>\r\n</button>',host:{class:"ngx-mat-color-toggle","[attr.tabindex]":"-1","[class.ngx-mat-color-toggle-active]":"picker && picker.opened","[class.mat-accent]":'picker && picker.color === "accent"',"[class.mat-warn]":'picker && picker.color === "warn"',"(focus)":"_button.focus()"},exportAs:"ngxMatColorPickerToggle",encapsulation:r.ViewEncapsulation.None,styles:[".mat-form-field-appearance-legacy .mat-form-field-prefix .ngx-mat-color-toggle-default-icon,.mat-form-field-appearance-legacy .mat-form-field-suffix .ngx-mat-color-toggle-default-icon{width:1em}.mat-form-field:not(.mat-form-field-appearance-legacy) .mat-form-field-prefix .ngx-mat-color-toggle-default-icon,.mat-form-field:not(.mat-form-field-appearance-legacy) .mat-form-field-suffix .ngx-mat-color-toggle-default-icon{display:block;height:1.5em;width:1.5em}.mat-form-field:not(.mat-form-field-appearance-legacy) .mat-form-field-prefix .mat-icon-button .ngx-mat-color-toggle-default-icon,.mat-form-field:not(.mat-form-field-appearance-legacy) .mat-form-field-suffix .mat-icon-button .ngx-mat-color-toggle-default-icon{margin:auto}"]}]}],nt.ctorParameters=function(){return[{type:r.ChangeDetectorRef}]},nt.propDecorators={picker:[{type:r.Input,args:["for"]}],tabIndex:[{type:r.Input}],disabled:[{type:r.Input}],_button:[{type:r.ViewChild,args:["button"]}]};var it=function(){function t(){}return t.prototype.onInput=function(t){this._formatInput(t.target)},t.prototype._formatInput=function(t){var e=Number(t.value.replace(R,""));e=isNaN(e)?0:e,t.value=e},t}();it.decorators=[{type:r.Directive,args:[{selector:"[ngxMatNumericColorInput]"}]}],it.ctorParameters=function(){return[]},it.propDecorators={onInput:[{type:r.HostListener,args:["input",["$event"]]}]};var at=function(){};at.decorators=[{type:r.NgModule,args:[{declarations:[x,Y,U,X,it,J,Q,nt,rt],imports:[o.CommonModule,c.MatInputModule,i.MatButtonModule,a.MatCardModule,p.MatRadioModule,n.FormsModule,n.ReactiveFormsModule,s.MatDialogModule,e.PortalModule,l.MatIconModule],exports:[nt,rt,Q],entryComponents:[J],providers:[z,W]}]}],t.BASIC_COLORS=I,t.Color=q,t.ColorAdapter=z,t.MAT_COLORPICKER_VALIDATORS=ot,t.MAT_COLORPICKER_VALUE_ACCESSOR=et,t.MAT_COLOR_FORMATS=H,t.MAX_RGB=255,t.MIN_RGB=0,t.NGX_MAT_COLOR_FORMATS={display:{colorInput:"hex"}},t.NGX_MAT_COLOR_PICKER_SCROLL_STRATEGY=$,t.NGX_MAT_COLOR_PICKER_SCROLL_STRATEGY_FACTORY=K,t.NGX_MAT_COLOR_PICKER_SCROLL_STRATEGY_FACTORY_PROVIDER=W,t.NUMERIC_REGEX=R,t.NgxMatColorCanvasComponent=Y,t.NgxMatColorCollectionComponent=U,t.NgxMatColorPaletteComponent=x,t.NgxMatColorPickerComponent=Q,t.NgxMatColorPickerContentComponent=J,t.NgxMatColorPickerInput=rt,t.NgxMatColorPickerInputEvent=tt,t.NgxMatColorPickerModule=at,t.NgxMatColorSliderComponent=X,t.NgxMatColorToggleComponent=nt,t.NumericColorInputDirective=it,t.convertDecimalToHex=M,t.createMissingDateImplError=L,t.getColorAtPosition=S,t.matchers=D,t.pad2=P,t.rgbToHex=T,t.rgbaToHex=A,t.stringInputToObject=G,t.ɵa=x,t.ɵb=Y,t.ɵc=U,t.ɵd=X,t.ɵe=it,t.ɵf=J,t.ɵg=Q,t.ɵh=nt,t.ɵi=rt,t.ɵj=z,t.ɵk=W,Object.defineProperty(t,"__esModule",{value:!0})}));
var C=function(t,e){return(C=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(var o in e)e.hasOwnProperty(o)&&(t[o]=e[o])})(t,e)};function v(t,e){function o(){this.constructor=t}C(t,e),t.prototype=null===e?Object.create(e):(o.prototype=e.prototype,new o)}Object.create;Object.create;var w=/^\s+/,k=/\s+$/,O=Math.round,R=(Math.min,Math.max,Math.random,/[^0-9]/g),I=255,S=["#ffffff","#ffff00","#ff00ff","#ff0000","#c0c0c0","#808080","#808000","#800080","#800000","#00ffff","#00ff00","#008080","#008000","#0000ff","#000080","#000000"];function A(t,e,o){var r=t.getImageData(e,o,1,1).data;return{r:r[0],g:r[1],b:r[2]}}function P(t,e,o,r,n){var i=[M(O(t).toString(16)),M(O(e).toString(16)),M(O(o).toString(16)),M(E(r))];return n&&i[0].charAt(0)==i[0].charAt(1)&&i[1].charAt(0)==i[1].charAt(1)&&i[2].charAt(0)==i[2].charAt(1)&&i[3].charAt(0)==i[3].charAt(1)?i[0].charAt(0)+i[1].charAt(0)+i[2].charAt(0)+i[3].charAt(0):i.join("")}function M(t){return 1==t.length?"0"+t:""+t}function E(t){return Math.round(255*parseFloat(t)).toString(16)}function N(t){return T(t)/255}function T(t){return parseInt(t,16)}function F(t,e,o,r){var n=[M(O(t).toString(16)),M(O(e).toString(16)),M(O(o).toString(16))];return r&&n[0].charAt(0)==n[0].charAt(1)&&n[1].charAt(0)==n[1].charAt(1)&&n[2].charAt(0)==n[2].charAt(1)?n[0].charAt(0)+n[1].charAt(0)+n[2].charAt(0):n.join("")}var V="(?:[-\\+]?\\d*\\.\\d+%?)|(?:[-\\+]?\\d+%?)",j="[\\s|\\(]+("+V+")[,|\\s]+("+V+")[,|\\s]+("+V+")\\s*\\)?",D="[\\s|\\(]+("+V+")[,|\\s]+("+V+")[,|\\s]+("+V+")[,|\\s]+("+V+")\\s*\\)?",G={CSS_UNIT:new RegExp(V),rgb:new RegExp("rgb"+j),rgba:new RegExp("rgba"+D),hsl:new RegExp("hsl"+j),hsla:new RegExp("hsla"+D),hsv:new RegExp("hsv"+j),hsva:new RegExp("hsva"+D),hex3:/^#?([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})$/,hex6:/^#?([0-9a-fA-F]{2})([0-9a-fA-F]{2})([0-9a-fA-F]{2})$/,hex4:/^#?([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})$/,hex8:/^#?([0-9a-fA-F]{2})([0-9a-fA-F]{2})([0-9a-fA-F]{2})([0-9a-fA-F]{2})$/};function L(t){var e;return t=t.replace(w,"").replace(k,"").toLowerCase(),(e=G.rgb.exec(t))?{r:e[1],g:e[2],b:e[3],a:1}:(e=G.rgba.exec(t))?{r:e[1],g:e[2],b:e[3],a:e[4]}:(e=G.hex8.exec(t))?{r:T(e[1]),g:T(e[2]),b:T(e[3]),a:N(e[4])}:(e=G.hex6.exec(t))?{r:T(e[1]),g:T(e[2]),b:T(e[3]),a:1}:(e=G.hex4.exec(t))?{r:T(e[1]+""+e[1]),g:T(e[2]+""+e[2]),b:T(e[3]+""+e[3]),a:N(e[4]+""+e[4])}:(e=G.hex3.exec(t))?{r:T(e[1]+""+e[1]),g:T(e[2]+""+e[2]),b:T(e[3]+""+e[3]),a:1}:null}function q(t){return Error("NgxMatColorPicker: No provider found for "+t+". You must define MAT_COLOR_FORMATS in your module")}var B=function(){function t(t,e,o,r){this.r=t>I?I:t,this.g=e>I?I:e,this.b=o>I?I:o,this.a=null!=r?r>1?1:r:1,this.roundA=Math.round(this.a),this.hex=F(this.r,this.g,this.b),this.rgba=this.toRgba()}return t.prototype.toHex=function(t){return F(this.r,this.g,this.b,t)},t.prototype.toRgba=function(){return"rgba("+this.r+","+this.g+","+this.b+","+this.a+")"},t.prototype.toHexString=function(t){return"#"+this.toHex(t)},t.prototype.toRgbString=function(){return 1===this.a?"rgb("+Math.round(this.r)+", "+Math.round(this.g)+", "+Math.round(this.b)+")":"rgba("+Math.round(this.r)+", "+Math.round(this.g)+", "+Math.round(this.b)+", "+this.roundA+")"},t.prototype.toHex8=function(t){return P(this.r,this.g,this.b,this.a,t)},t.prototype.toHex8String=function(t){return"#"+this.toHex8(t)},t.prototype.toString=function(t){var e,o=!!t,r=this.a<1&&this.a>=0;return o||!r||"hex"!==t&&"hex6"!==t&&"hex3"!==t&&"hex4"!==t&&"hex8"!==t?("rgb"===t&&(e=this.toRgbString()),"hex"!==t&&"hex6"!==t||(e=this.toHexString()),"hex3"===t&&(e=this.toHexString(!0)),"hex4"===t&&(e=this.toHex8String(!0)),"hex8"===t&&(e=this.toHex8String()),e||this.toHexString()):this.toRgbString()},t}();var Y=function(){function t(t,e){this.zone=t,this.colorChanged=new r.EventEmitter,this.x=0,this.y=0,this.drag=!1,this._destroyed=new u.Subject,this.elementId=e}return t.prototype.ngOnDestroy=function(){this._destroyed.next(),this._destroyed.complete()},t.prototype.ngAfterViewInit=function(){this.canvas=document.getElementById(this.elementId),this.ctx=this.canvas.getContext("2d"),this.width=this.canvas.width,this.height=this.canvas.height,this.draw()},t.prototype.draw=function(){this.ctx.clearRect(0,0,this.width,this.height),this.ctx.rect(0,0,this.width,this.height),this.fillGradient(),0!=this.y&&this.redrawIndicator(this.x,this.y)},t.prototype.onMousedown=function(t){var e=this;this.drag=!0,this.changeColor(t),this.zone.runOutsideAngular((function(){e.canvas.addEventListener("mousemove",e.onMousemove.bind(e))}))},t.prototype.onMousemove=function(t){var e=this;this.drag&&this.zone.run((function(){e.changeColor(t)}))},t.prototype.onMouseup=function(t){this.drag=!1,this.canvas.removeEventListener("mousemove",this.onMousemove)},t.prototype.emitChange=function(t){this.colorChanged.emit(t)},t}();Y.decorators=[{type:r.Directive,args:[{}]}],Y.ctorParameters=function(){return[{type:r.NgZone},{type:String}]},Y.propDecorators={colorChanged:[{type:r.Output}],color:[{type:r.Input}]};var U=function(t){function e(e){var o=t.call(this,e,"color-block")||this;return o.zone=e,o._resetBaseColor=!0,o.formGroup=new n.FormGroup({r:new n.FormControl(null,[n.Validators.required]),g:new n.FormControl(null,[n.Validators.required]),b:new n.FormControl(null,[n.Validators.required]),a:new n.FormControl(null,[n.Validators.required]),hex:new n.FormControl(null,[n.Validators.required,n.Validators.pattern(G.hex6)])}),o}return v(e,t),Object.defineProperty(e.prototype,"rCtrl",{get:function(){return this.formGroup.get("r")},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,"gCtrl",{get:function(){return this.formGroup.get("g")},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,"bCtrl",{get:function(){return this.formGroup.get("b")},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,"aCtrl",{get:function(){return this.formGroup.get("a")},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,"hexCtrl",{get:function(){return this.formGroup.get("hex")},enumerable:!1,configurable:!0}),e.prototype.ngOnInit=function(){var t=this;u.merge(this.rCtrl.valueChanges,this.gCtrl.valueChanges,this.bCtrl.valueChanges,this.aCtrl.valueChanges).pipe(h.takeUntil(this._destroyed),h.debounceTime(400),h.distinctUntilChanged()).subscribe((function(e){var o=new B(Number(t.rCtrl.value),Number(t.gCtrl.value),Number(t.bCtrl.value),Number(t.aCtrl.value));t.emitChange(o)})),this.hexCtrl.valueChanges.pipe(h.takeUntil(this._destroyed),h.debounceTime(400),h.distinctUntilChanged()).subscribe((function(e){var o=L(e);if(null!=o){var r=new B(o.r,o.g,o.b,o.a);t.emitChange(r)}}))},e.prototype.ngOnChanges=function(t){t.color&&t.color.currentValue&&(this.updateForm(t.color.currentValue),this._resetBaseColor&&(this._baseColor=t.color.currentValue),this._resetBaseColor=!0,t.color.firstChange||this.draw())},e.prototype.updateForm=function(t){var e={emitEvent:!1};this.rCtrl.setValue(t.r,e),this.gCtrl.setValue(t.g,e),this.bCtrl.setValue(t.b,e),this.aCtrl.setValue(t.a,e),this.hexCtrl.setValue(t.hex,e)},e.prototype.redrawIndicator=function(t,e){this.ctx.beginPath(),this.ctx.strokeStyle="white",this.ctx.arc(t,e,5,0,2*Math.PI,!1),this.ctx.stroke(),this.ctx.closePath()},e.prototype.fillGradient=function(){this.ctx.fillStyle=this._baseColor?this._baseColor.rgba:"rgba(255,255,255,1)",this.ctx.fillRect(0,0,this.width,this.height);var t=this.ctx.createLinearGradient(0,0,this.width,0);t.addColorStop(0,"rgba(255,255,255,1)"),t.addColorStop(1,"rgba(255,255,255,0)"),this.ctx.fillStyle=t,this.ctx.fillRect(0,0,this.width,this.height);var e=this.ctx.createLinearGradient(0,0,0,this.height);e.addColorStop(0,"rgba(0,0,0,0)"),e.addColorStop(1,"rgba(0,0,0,1)"),this.ctx.fillStyle=e,this.ctx.fillRect(0,0,this.width,this.height)},e.prototype.onSliderColorChanged=function(t){this._baseColor=t,this.color=t,this.fillGradient(),this.emitChange(t)},e.prototype.changeColor=function(t){this.x=t.offsetX,this.y=t.offsetY,this._resetBaseColor=!1,this.draw();var e=A(this.ctx,t.offsetX,t.offsetY),o=e.r,r=e.g,n=e.b;this.emitChange(new B(o,r,n))},e}(Y);U.decorators=[{type:r.Component,args:[{selector:"ngx-mat-color-canvas",template:'<form [formGroup]="formGroup">\r\n <div class="row">\r\n <div class="zone-canvas">\r\n <canvas id="color-block" class="zone-block" (mousedown)="onMousedown($event)" (mouseup)="onMouseup($event)"\r\n width="200" height="200"></canvas>\r\n <ngx-mat-color-slider (colorChanged)="onSliderColorChanged($event)"></ngx-mat-color-slider>\r\n </div>\r\n\r\n <div class="zone-inputs">\r\n <mat-form-field>\r\n <mat-label>R</mat-label>\r\n <input matInput formControlName="r" ngxMatNumericColorInput autocomplete="off">\r\n </mat-form-field>\r\n\r\n <mat-form-field>\r\n <mat-label>G</mat-label>\r\n <input matInput formControlName="g" ngxMatNumericColorInput autocomplete="off">\r\n </mat-form-field>\r\n\r\n <mat-form-field>\r\n <mat-label>B</mat-label>\r\n <input matInput formControlName="b" ngxMatNumericColorInput autocomplete="off">\r\n </mat-form-field>\r\n </div>\r\n </div>\r\n\r\n <div class="row">\r\n <button mat-mini-fab [style.background-color]="color?.rgba || \'transparent\'" class="preview"></button>\r\n <mat-form-field>\r\n <mat-label>HEX6</mat-label>\r\n <mat-label matPrefix class="symbol">#&nbsp;</mat-label>\r\n <input matInput formControlName="hex" autocomplete="off">\r\n </mat-form-field>\r\n <mat-form-field>\r\n <mat-label>A</mat-label>\r\n <input matInput formControlName="a" type="number" min="0" max="1" step="0.1" autocomplete="off">\r\n </mat-form-field>\r\n </div>\r\n</form>',encapsulation:r.ViewEncapsulation.None,host:{class:"ngx-mat-color-canvas"},styles:[".ngx-mat-color-canvas .row{display:flex}.ngx-mat-color-canvas .row:first-of-type{height:200px;margin-bottom:12px}.ngx-mat-color-canvas .row:first-of-type .card{height:180px}.ngx-mat-color-canvas .row canvas:hover{cursor:crosshair}.ngx-mat-color-canvas .row .zone{display:flex}.ngx-mat-color-canvas .row .zone-canvas{height:200px}.ngx-mat-color-canvas .row .zone-canvas .zone-block{border:1px solid rgba(0,0,0,.12)}.ngx-mat-color-canvas .row .zone-strip{flex-basis:auto;margin-left:10px}.ngx-mat-color-canvas .row .zone-inputs{display:flex;flex-direction:column;height:200px;margin-left:16px;margin-top:12px;width:40px}.ngx-mat-color-canvas .row:nth-of-type(2){display:flex}.ngx-mat-color-canvas .row:nth-of-type(2) .preview{height:40px;min-height:40px;min-width:40px;width:40px}.ngx-mat-color-canvas .row:nth-of-type(2) .mat-form-field{margin-left:16px}.ngx-mat-color-canvas .row:nth-of-type(2) .mat-form-field:first-of-type{width:170px}.ngx-mat-color-canvas .row:nth-of-type(2) .mat-form-field:first-of-type .symbol{color:rgba(0,0,0,.54);font-weight:700}.ngx-mat-color-canvas .row:nth-of-type(2) .mat-form-field:last-of-type{width:40px}.ngx-mat-color-canvas .mat-form-field-label{font-weight:700}"]}]}],U.ctorParameters=function(){return[{type:r.NgZone}]};var X=function(){function t(){this.colorChanged=new r.EventEmitter,this.colors1=S.slice(0,8),this.colors2=S.slice(8,16)}return Object.defineProperty(t.prototype,"color",{set:function(t){t&&(this.selectedColor=t.toHexString())},enumerable:!1,configurable:!0}),t.prototype.ngOnInit=function(){},t.prototype.select=function(t){this.selectedColor=t;var e=L(t),o=e.r,r=e.g,n=e.b,i=e.a;this.colorChanged.emit(new B(o,r,n,i))},t}();X.decorators=[{type:r.Component,args:[{selector:"ngx-mat-color-collection",template:'<div class="row">\r\n <button *ngFor="let c of colors1" mat-mini-fab [style.background-color]="c" class="btn-color"\r\n (click)="select(c)" [ngClass]="{\'active\': selectedColor === c}">\r\n </button>\r\n</div>\r\n<div class="row">\r\n <button *ngFor="let c of colors2" mat-mini-fab [style.background-color]="c" class="btn-color"\r\n (click)="select(c)" [ngClass]="{\'active\': selectedColor === c}">\r\n </button>\r\n</div>',encapsulation:r.ViewEncapsulation.None,host:{class:"ngx-mat-color-collection"},styles:[".ngx-mat-color-collection .btn-color{box-shadow:none;height:20px;margin-right:11px;opacity:.3;width:20px}.ngx-mat-color-collection .btn-color.active{box-shadow:0 3px 5px -1px rgba(0,0,0,.2),0 6px 10px 0 rgba(0,0,0,.14),0 1px 18px 0 rgba(0,0,0,.12);opacity:1}"]}]}],X.ctorParameters=function(){return[]},X.propDecorators={colorChanged:[{type:r.Output}],color:[{type:r.Input}]};var z=function(t){function e(e){var o=t.call(this,e,"color-strip")||this;return o.zone=e,o}return v(e,t),e.prototype.ngOnInit=function(){},e.prototype.ngAfterViewInit=function(){t.prototype.ngAfterViewInit.call(this)},e.prototype.fillGradient=function(){var t=this.ctx.createLinearGradient(0,0,0,this.height);t.addColorStop(0,"rgba(255, 0, 0, 1)"),t.addColorStop(.17,"rgba(255, 255, 0, 1)"),t.addColorStop(.34,"rgba(0, 255, 0, 1)"),t.addColorStop(.51,"rgba(0, 255, 255, 1)"),t.addColorStop(.68,"rgba(0, 0, 255, 1)"),t.addColorStop(.85,"rgba(255, 0, 255, 1)"),t.addColorStop(1,"rgba(255, 0, 0, 1)"),this.ctx.fillStyle=t,this.ctx.fill()},e.prototype.redrawIndicator=function(t,e){this.ctx.beginPath(),this.ctx.strokeStyle="white",this.ctx.lineWidth=2,this.ctx.arc(7.5,e,7.5,0,2*Math.PI,!1),this.ctx.stroke(),this.ctx.closePath()},e.prototype.changeColor=function(t){this.x=t.offsetX,this.y=t.offsetY,this.draw();var e=A(this.ctx,t.offsetX,t.offsetY),o=e.r,r=e.g,n=e.b;this.emitChange(new B(o,r,n))},e}(Y);z.decorators=[{type:r.Component,args:[{selector:"ngx-mat-color-slider",template:'<canvas id="color-strip" class="zone-strip" (mousedown)="onMousedown($event)" (mouseup)="onMouseup($event)"\r\n width="15" height="200"></canvas>',styles:[""]}]}],z.ctorParameters=function(){return[{type:r.NgZone}]};var H=function(){function t(){}return t.prototype.sameColor=function(t,e){return null==t&&null==e||null!=t&&null!=e&&t.rgba===e.rgba},t.prototype.format=function(t,e){return t.toString(e)},t.prototype.parse=function(t){var e=L(t);return e?new B(e.r,e.g,e.b,e.a):null},t}();H.decorators=[{type:r.Injectable}],H.ctorParameters=function(){return[]};var $=new r.InjectionToken("mat-color-formats"),K=new r.InjectionToken("ngx-mat-colorpicker-scroll-strategy");function W(t){return function(){return t.scrollStrategies.reposition()}}var Z={provide:K,deps:[m.Overlay],useFactory:W},J=function(t){this._elementRef=t};var Q=function(t){function e(e){return t.call(this,e)||this}return v(e,t),e}(b.mixinColor(J));Q.decorators=[{type:r.Component,args:[{selector:"ngx-mat-color-picker-content",template:'<ngx-mat-color-palette (colorChanged)="picker.select($event)" [color]="picker._selected"></ngx-mat-color-palette>',host:{class:"ngx-mat-colorpicker-content","[@transformPanel]":'"enter"',"[class.ngx-mat-colorpicker-content-touch]":"picker.touchUi"},animations:[y.matDatepickerAnimations.transformPanel,y.matDatepickerAnimations.fadeInCalendar],exportAs:"ngxMatColorPickerContent",encapsulation:r.ViewEncapsulation.None,changeDetection:r.ChangeDetectionStrategy.OnPush,inputs:["color"],styles:[".ngx-mat-colorpicker-content{background-color:#fff;border-radius:4px;box-shadow:0 2px 4px -1px rgba(0,0,0,.2),0 4px 5px 0 rgba(0,0,0,.14),0 1px 10px 0 rgba(0,0,0,.12);color:rgba(0,0,0,.87);display:block;padding:16px}.ngx-mat-colorpicker-content .ngx-mat-color-palette{height:354px;width:296px}.ngx-mat-colorpicker-content-touch{display:block;max-height:80vh;overflow:auto}.ngx-mat-colorpicker-content-touch .ngx-mat-color-palette{max-height:788px;max-width:750px;min-height:312px;min-width:250px}@media (orientation:landscape){.mat-colorpicker-content-touch .ngx-mat-color-palette{height:80vh;width:64vh}}@media (orientation:portrait){.mat-colorpicker-content-touch .ngx-mat-color-palette{height:100vw;width:80vw}}"]}]}],Q.ctorParameters=function(){return[{type:r.ElementRef}]},Q.propDecorators={_palette:[{type:r.ViewChild,args:[x]}]};var tt=function(){function t(t,e,o,n,i,a,s,l){this._dialog=t,this._overlay=e,this._zone=o,this._adapter=n,this._dir=i,this._document=s,this._viewContainerRef=l,this.openedStream=new r.EventEmitter,this.closedStream=new r.EventEmitter,this._touchUi=!1,this._opened=!1,this._defaultColor="primary",this._validSelected=null,this._disabledChange=new u.Subject,this._focusedElementBeforeOpen=null,this._inputSubscription=u.Subscription.EMPTY,this._selectedChanged=new u.Subject,this._scrollStrategy=a}return Object.defineProperty(t.prototype,"disabled",{get:function(){return void 0===this._disabled&&this._pickerInput?this._pickerInput.disabled:!!this._disabled},set:function(t){var e=g.coerceBooleanProperty(t);e!==this._disabled&&(this._disabled=e,this._disabledChange.next(e))},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,"touchUi",{get:function(){return this._touchUi},set:function(t){this._touchUi=g.coerceBooleanProperty(t)},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,"opened",{get:function(){return this._opened},set:function(t){t?this.open():this.close()},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,"defaultColor",{get:function(){return this._defaultColor},set:function(t){this._defaultColor=t},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,"color",{get:function(){return this._color||(this._pickerInput?this._pickerInput.getThemePalette():void 0)},set:function(t){this._color=t},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,"_selected",{get:function(){return this._validSelected},set:function(t){this._validSelected=t},enumerable:!1,configurable:!0}),t.prototype.ngOnInit=function(){},t.prototype.ngOnDestroy=function(){this.close(),this._inputSubscription.unsubscribe(),this._disabledChange.complete(),this._popupRef&&(this._popupRef.dispose(),this._popupComponentRef=null)},t.prototype.select=function(t){var e=this._selected;this._selected=t,this._adapter.sameColor(e,this._selected)||this._selectedChanged.next(t)},t.prototype.registerInput=function(t){var e=this;if(this._pickerInput)throw Error("A ColorPicker can only be associated with a single input.");this._pickerInput=t,this._inputSubscription=this._pickerInput._valueChange.subscribe((function(t){return e._selected=t}))},t.prototype.open=function(){if(!this._opened&&!this.disabled){if(!this._pickerInput)throw Error("Attempted to open an ColorPicker with no associated input.");this._document&&(this._focusedElementBeforeOpen=this._document.activeElement),this.touchUi?this._openAsDialog():this._openAsPopup(),this._opened=!0,this.openedStream.emit()}},t.prototype._openAsDialog=function(){var t=this;this._dialogRef&&this._dialogRef.close(),this._dialogRef=this._dialog.open(Q,{direction:this._dir?this._dir.value:"ltr",viewContainerRef:this._viewContainerRef,panelClass:"ngx-mat-colorpicker-dialog"}),this._dialogRef.afterClosed().subscribe((function(){return t.close()})),this._dialogRef.componentInstance.picker=this,this._setColor()},t.prototype._openAsPopup=function(){var t=this;this._portal||(this._portal=new e.ComponentPortal(Q,this._viewContainerRef)),this._popupRef||this._createPopup(),this._popupRef.hasAttached()||(this._popupComponentRef=this._popupRef.attach(this._portal),this._popupComponentRef.instance.picker=this,this._setColor(),this._zone.onStable.asObservable().pipe(h.take(1)).subscribe((function(){t._popupRef.updatePosition()})))},t.prototype._createPopup=function(){var t=this,e=new m.OverlayConfig({positionStrategy:this._createPopupPositionStrategy(),hasBackdrop:!0,backdropClass:"mat-overlay-transparent-backdrop",direction:this._dir,scrollStrategy:this._scrollStrategy(),panelClass:"mat-colorpicker-popup"});this._popupRef=this._overlay.create(e),this._popupRef.overlayElement.setAttribute("role","dialog"),u.merge(this._popupRef.backdropClick(),this._popupRef.detachments(),this._popupRef.keydownEvents().pipe(h.filter((function(e){return e.keyCode===f.ESCAPE||t._pickerInput&&e.altKey&&e.keyCode===f.UP_ARROW})))).subscribe((function(e){e&&e.preventDefault(),t.close()}))},t.prototype.close=function(){var t=this;if(this._opened){this._popupRef&&this._popupRef.hasAttached()&&this._popupRef.detach(),this._dialogRef&&(this._dialogRef.close(),this._dialogRef=null),this._portal&&this._portal.isAttached&&this._portal.detach();var e=function(){t._opened&&(t._opened=!1,t.closedStream.emit(),t._focusedElementBeforeOpen=null)};this._focusedElementBeforeOpen&&"function"==typeof this._focusedElementBeforeOpen.focus?(this._focusedElementBeforeOpen.focus(),setTimeout(e)):e()}},t.prototype._setColor=function(){var t=this.color;this._popupComponentRef&&(this._popupComponentRef.instance.color=t),this._dialogRef&&(this._dialogRef.componentInstance.color=t)},t.prototype._createPopupPositionStrategy=function(){return this._overlay.position().flexibleConnectedTo(this._pickerInput.getConnectedOverlayOrigin()).withTransformOriginOn(".ngx-mat-colorpicker-content").withFlexibleDimensions(!1).withViewportMargin(8).withLockedPosition().withPositions([{originX:"start",originY:"bottom",overlayX:"start",overlayY:"top"},{originX:"start",originY:"top",overlayX:"start",overlayY:"bottom"},{originX:"end",originY:"bottom",overlayX:"end",overlayY:"top"},{originX:"end",originY:"top",overlayX:"end",overlayY:"bottom"}])},t}();tt.decorators=[{type:r.Component,args:[{selector:"ngx-mat-color-picker",template:"",exportAs:"ngxMatColorPicker",changeDetection:r.ChangeDetectionStrategy.OnPush,encapsulation:r.ViewEncapsulation.None}]}],tt.ctorParameters=function(){return[{type:s.MatDialog},{type:m.Overlay},{type:r.NgZone},{type:H},{type:d.Directionality,decorators:[{type:r.Optional}]},{type:void 0,decorators:[{type:r.Inject,args:[K]}]},{type:void 0,decorators:[{type:r.Optional},{type:r.Inject,args:[o.DOCUMENT]}]},{type:r.ViewContainerRef}]},tt.propDecorators={openedStream:[{type:r.Output,args:["opened"]}],closedStream:[{type:r.Output,args:["closed"]}],disabled:[{type:r.Input}],touchUi:[{type:r.Input}],opened:[{type:r.Input}],defaultColor:[{type:r.Input}],color:[{type:r.Input}]};var et=function(t,e){this.target=t,this.targetElement=e,this.value=this.target.value};var ot={provide:n.NG_VALUE_ACCESSOR,useExisting:r.forwardRef((function(){return nt})),multi:!0},rt={provide:n.NG_VALIDATORS,useExisting:r.forwardRef((function(){return nt})),multi:!0},nt=function(){function t(t,e,o,i){if(this._elementRef=t,this._formField=e,this._colorFormats=o,this._adapter=i,this.colorChange=new r.EventEmitter,this.colorInput=new r.EventEmitter,this._disabledChange=new r.EventEmitter,this._valueChange=new r.EventEmitter,this._onTouched=function(){},this._cvaOnChange=function(){},this._validatorOnChange=function(){},this._pickerSubscription=u.Subscription.EMPTY,this._validator=n.Validators.compose([]),this._lastValueValid=!1,!this._colorFormats)throw q("MAT_COLOR_FORMATS")}return Object.defineProperty(t.prototype,"ngxMatColorPicker",{set:function(t){var e=this;t&&(this._picker=t,this._picker.registerInput(this),this._pickerSubscription.unsubscribe(),this._pickerSubscription=this._picker._selectedChanged.subscribe((function(t){e.value=t,e._cvaOnChange(t),e._onTouched(),e.colorInput.emit(new et(e,e._elementRef.nativeElement)),e.colorChange.emit(new et(e,e._elementRef.nativeElement))})))},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,"disabled",{get:function(){return!!this._disabled},set:function(t){var e=g.coerceBooleanProperty(t),o=this._elementRef.nativeElement;this._disabled!==e&&(this._disabled=e,this._disabledChange.emit(e)),e&&o.blur&&o.blur()},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,"value",{get:function(){return this._value},set:function(t){var e=this.value;this._value=t,this._formatValue(t),this._adapter.sameColor(e,t)||this._valueChange.emit(t)},enumerable:!1,configurable:!0}),t.prototype.getThemePalette=function(){return this._formField?this._formField.color:void 0},t.prototype.registerOnValidatorChange=function(t){this._validatorOnChange=t},t.prototype.validate=function(t){return this._validator?this._validator(t):null},t.prototype.getPopupConnectionElementRef=function(){return this.getConnectedOverlayOrigin()},t.prototype.getConnectedOverlayOrigin=function(){return this._formField?this._formField.getConnectedOverlayOrigin():this._elementRef},t.prototype.ngOnInit=function(){},t.prototype.ngOnDestroy=function(){this._pickerSubscription.unsubscribe(),this._valueChange.complete(),this._disabledChange.complete()},t.prototype.writeValue=function(t){this.value=t},t.prototype.registerOnChange=function(t){this._cvaOnChange=t},t.prototype.registerOnTouched=function(t){this._onTouched=t},t.prototype.setDisabledState=function(t){this.disabled=t},t.prototype._onChange=function(){this.colorChange.emit(new et(this,this._elementRef.nativeElement))},t.prototype._onKeydown=function(t){var e=t.altKey&&t.keyCode===f.DOWN_ARROW;this._picker&&e&&!this._elementRef.nativeElement.readOnly&&(this._picker.open(),t.preventDefault())},t.prototype._onBlur=function(){this.value&&this._formatValue(this.value),this._onTouched()},t.prototype._formatValue=function(t){this._elementRef.nativeElement.value=t?this._adapter.format(t,this._colorFormats.display.colorInput):""},t.prototype._onInput=function(t){var e=this._lastValueValid,o=this._adapter.parse(t);this._adapter.sameColor(o,this._value)?e!==this._lastValueValid&&this._validatorOnChange():(this._value=o,this._cvaOnChange(o),this._valueChange.emit(o),this.colorInput.emit(new et(this,this._elementRef.nativeElement)))},t}();nt.decorators=[{type:r.Directive,args:[{selector:"input[ngxMatColorPicker]",providers:[ot,rt,{provide:c.MAT_INPUT_VALUE_ACCESSOR,useExisting:nt}],host:{"[attr.aria-haspopup]":'_picker ? "dialog" : null',"[attr.aria-owns]":"(_picker?.opened && _picker.id) || null","[disabled]":"disabled","(input)":"_onInput($event.target.value)","(change)":"_onChange()","(blur)":"_onBlur()","(keydown)":"_onKeydown($event)"},exportAs:"ngxMatColorPickerInput"}]}],nt.ctorParameters=function(){return[{type:r.ElementRef},{type:_.MatFormField,decorators:[{type:r.Optional}]},{type:void 0,decorators:[{type:r.Optional},{type:r.Inject,args:[$]}]},{type:H}]},nt.propDecorators={ngxMatColorPicker:[{type:r.Input}],disabled:[{type:r.Input}],value:[{type:r.Input}],colorChange:[{type:r.Output}],colorInput:[{type:r.Output}]};var it=function(){function t(t){this._cd=t,this._stateChanges=u.Subscription.EMPTY}return Object.defineProperty(t.prototype,"disabled",{get:function(){if(null==this._disabled&&this.picker)return this.picker.disabled},set:function(t){this._disabled=t},enumerable:!1,configurable:!0}),t.prototype.ngOnInit=function(){},t.prototype.ngOnChanges=function(t){t.picker&&this._watchStateChanges()},t.prototype.ngOnDestroy=function(){this._stateChanges.unsubscribe()},t.prototype.ngAfterContentInit=function(){this._watchStateChanges()},t.prototype.open=function(t){this.picker&&!this.disabled&&(this.picker.open(),t.stopPropagation())},t.prototype._watchStateChanges=function(){var t=this,e=this.picker?this.picker._disabledChange:u.of(),o=this.picker&&this.picker._pickerInput?this.picker._pickerInput._disabledChange:u.of(),r=this.picker?u.merge(this.picker.openedStream,this.picker.closedStream):u.of();this._stateChanges.unsubscribe(),this._stateChanges=u.merge(e,o,r).subscribe((function(){return t._cd.markForCheck()}))},t}();it.decorators=[{type:r.Component,args:[{selector:"ngx-mat-color-toggle",template:'<button #button mat-icon-button type="button" [attr.aria-haspopup]="picker ? \'dialog\' : null"\r\n [attr.tabindex]="disabled ? -1 : tabIndex" [disabled]="disabled" (click)="open($event)">\r\n <mat-icon [style.color]="picker?._selected?.rgba">palette</mat-icon>\r\n</button>',host:{class:"ngx-mat-color-toggle","[attr.tabindex]":"-1","[class.ngx-mat-color-toggle-active]":"picker && picker.opened","[class.mat-accent]":'picker && picker.color === "accent"',"[class.mat-warn]":'picker && picker.color === "warn"',"(focus)":"_button.focus()"},exportAs:"ngxMatColorPickerToggle",encapsulation:r.ViewEncapsulation.None,styles:[".mat-form-field-appearance-legacy .mat-form-field-prefix .ngx-mat-color-toggle-default-icon,.mat-form-field-appearance-legacy .mat-form-field-suffix .ngx-mat-color-toggle-default-icon{width:1em}.mat-form-field:not(.mat-form-field-appearance-legacy) .mat-form-field-prefix .ngx-mat-color-toggle-default-icon,.mat-form-field:not(.mat-form-field-appearance-legacy) .mat-form-field-suffix .ngx-mat-color-toggle-default-icon{display:block;height:1.5em;width:1.5em}.mat-form-field:not(.mat-form-field-appearance-legacy) .mat-form-field-prefix .mat-icon-button .ngx-mat-color-toggle-default-icon,.mat-form-field:not(.mat-form-field-appearance-legacy) .mat-form-field-suffix .mat-icon-button .ngx-mat-color-toggle-default-icon{margin:auto}"]}]}],it.ctorParameters=function(){return[{type:r.ChangeDetectorRef}]},it.propDecorators={picker:[{type:r.Input,args:["for"]}],tabIndex:[{type:r.Input}],disabled:[{type:r.Input}],_button:[{type:r.ViewChild,args:["button"]}]};var at=function(){function t(){}return t.prototype.onInput=function(t){this._formatInput(t.target)},t.prototype._formatInput=function(t){var e=Number(t.value.replace(R,""));e=isNaN(e)?0:e,t.value=e},t}();at.decorators=[{type:r.Directive,args:[{selector:"[ngxMatNumericColorInput]"}]}],at.ctorParameters=function(){return[]},at.propDecorators={onInput:[{type:r.HostListener,args:["input",["$event"]]}]};var st=function(){};st.decorators=[{type:r.NgModule,args:[{declarations:[x,U,X,z,at,Q,tt,it,nt],imports:[o.CommonModule,c.MatInputModule,i.MatButtonModule,a.MatCardModule,p.MatRadioModule,n.FormsModule,n.ReactiveFormsModule,s.MatDialogModule,e.PortalModule,l.MatIconModule],exports:[it,nt,tt],entryComponents:[Q],providers:[H,Z]}]}],t.BASIC_COLORS=S,t.Color=B,t.ColorAdapter=H,t.MAT_COLORPICKER_VALIDATORS=rt,t.MAT_COLORPICKER_VALUE_ACCESSOR=ot,t.MAT_COLOR_FORMATS=$,t.MAX_RGB=I,t.MIN_RGB=0,t.NGX_MAT_COLOR_FORMATS={display:{colorInput:"hex"}},t.NGX_MAT_COLOR_PICKER_SCROLL_STRATEGY=K,t.NGX_MAT_COLOR_PICKER_SCROLL_STRATEGY_FACTORY=W,t.NGX_MAT_COLOR_PICKER_SCROLL_STRATEGY_FACTORY_PROVIDER=Z,t.NUMERIC_REGEX=R,t.NgxMatColorCanvasComponent=U,t.NgxMatColorCollectionComponent=X,t.NgxMatColorPaletteComponent=x,t.NgxMatColorPickerComponent=tt,t.NgxMatColorPickerContentComponent=Q,t.NgxMatColorPickerInput=nt,t.NgxMatColorPickerInputEvent=et,t.NgxMatColorPickerModule=st,t.NgxMatColorSliderComponent=z,t.NgxMatColorToggleComponent=it,t.NumericColorInputDirective=at,t.convertDecimalToHex=E,t.createMissingDateImplError=q,t.getColorAtPosition=A,t.matchers=G,t.pad2=M,t.rgbToHex=F,t.rgbaToHex=P,t.stringInputToObject=L,t.ɵa=x,t.ɵb=U,t.ɵc=X,t.ɵd=z,t.ɵe=at,t.ɵf=Q,t.ɵg=tt,t.ɵh=it,t.ɵi=nt,t.ɵj=H,t.ɵk=Z,Object.defineProperty(t,"__esModule",{value:!0})}));
//# sourceMappingURL=angular-material-components-color-picker.umd.min.js.map

@@ -13,2 +13,2 @@ /**

export { ColorAdapter as ɵj } from './lib/services';
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYW5ndWxhci1tYXRlcmlhbC1jb21wb25lbnRzLWNvbG9yLXBpY2tlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL2NvbG9yLXBpY2tlci9zcmMvYW5ndWxhci1tYXRlcmlhbC1jb21wb25lbnRzLWNvbG9yLXBpY2tlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7OztBQUlBLDZ2QkFBYyxjQUFjLENBQUM7QUFFN0IsT0FBTyxFQUFDLHFEQUFxRCxJQUFJLEVBQUUsRUFBQywwQkFBMEIsSUFBSSxFQUFFLEVBQUMsOEJBQThCLElBQUksRUFBRSxFQUFDLDJCQUEyQixJQUFJLEVBQUUsRUFBQywwQkFBMEIsSUFBSSxFQUFFLEVBQUMsaUNBQWlDLElBQUksRUFBRSxFQUFDLHNCQUFzQixJQUFJLEVBQUUsRUFBQywwQkFBMEIsSUFBSSxFQUFFLEVBQUMsMEJBQTBCLElBQUksRUFBRSxFQUFDLE1BQU0sa0JBQWtCLENBQUM7QUFDN1csT0FBTyxFQUFDLDBCQUEwQixJQUFJLEVBQUUsRUFBQyxNQUFNLGtCQUFrQixDQUFDO0FBQ2xFLE9BQU8sRUFBQyxZQUFZLElBQUksRUFBRSxFQUFDLE1BQU0sZ0JBQWdCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEdlbmVyYXRlZCBidW5kbGUgaW5kZXguIERvIG5vdCBlZGl0LlxuICovXG5cbmV4cG9ydCAqIGZyb20gJy4vcHVibGljLWFwaSc7XG5cbmV4cG9ydCB7TkdYX01BVF9DT0xPUl9QSUNLRVJfU0NST0xMX1NUUkFURUdZX0ZBQ1RPUllfUFJPVklERVIgYXMgybVrLE5neE1hdENvbG9yQ2FudmFzQ29tcG9uZW50IGFzIMm1YixOZ3hNYXRDb2xvckNvbGxlY3Rpb25Db21wb25lbnQgYXMgybVjLE5neE1hdENvbG9yUGFsZXR0ZUNvbXBvbmVudCBhcyDJtWEsTmd4TWF0Q29sb3JQaWNrZXJDb21wb25lbnQgYXMgybVnLE5neE1hdENvbG9yUGlja2VyQ29udGVudENvbXBvbmVudCBhcyDJtWYsTmd4TWF0Q29sb3JQaWNrZXJJbnB1dCBhcyDJtWksTmd4TWF0Q29sb3JTbGlkZXJDb21wb25lbnQgYXMgybVkLE5neE1hdENvbG9yVG9nZ2xlQ29tcG9uZW50IGFzIMm1aH0gZnJvbSAnLi9saWIvY29tcG9uZW50cyc7XG5leHBvcnQge051bWVyaWNDb2xvcklucHV0RGlyZWN0aXZlIGFzIMm1ZX0gZnJvbSAnLi9saWIvZGlyZWN0aXZlcyc7XG5leHBvcnQge0NvbG9yQWRhcHRlciBhcyDJtWp9IGZyb20gJy4vbGliL3NlcnZpY2VzJzsiXX0=
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYW5ndWxhci1tYXRlcmlhbC1jb21wb25lbnRzLWNvbG9yLXBpY2tlci5qcyIsInNvdXJjZVJvb3QiOiIuLi8uLi8uLi8uLi9wcm9qZWN0cy9jb2xvci1waWNrZXIvc3JjLyIsInNvdXJjZXMiOlsiYW5ndWxhci1tYXRlcmlhbC1jb21wb25lbnRzLWNvbG9yLXBpY2tlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7OztBQUlBLDZ2QkFBYyxjQUFjLENBQUM7QUFFN0IsT0FBTyxFQUFDLHFEQUFxRCxJQUFJLEVBQUUsRUFBQywwQkFBMEIsSUFBSSxFQUFFLEVBQUMsOEJBQThCLElBQUksRUFBRSxFQUFDLDJCQUEyQixJQUFJLEVBQUUsRUFBQywwQkFBMEIsSUFBSSxFQUFFLEVBQUMsaUNBQWlDLElBQUksRUFBRSxFQUFDLHNCQUFzQixJQUFJLEVBQUUsRUFBQywwQkFBMEIsSUFBSSxFQUFFLEVBQUMsMEJBQTBCLElBQUksRUFBRSxFQUFDLE1BQU0sa0JBQWtCLENBQUM7QUFDN1csT0FBTyxFQUFDLDBCQUEwQixJQUFJLEVBQUUsRUFBQyxNQUFNLGtCQUFrQixDQUFDO0FBQ2xFLE9BQU8sRUFBQyxZQUFZLElBQUksRUFBRSxFQUFDLE1BQU0sZ0JBQWdCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEdlbmVyYXRlZCBidW5kbGUgaW5kZXguIERvIG5vdCBlZGl0LlxuICovXG5cbmV4cG9ydCAqIGZyb20gJy4vcHVibGljLWFwaSc7XG5cbmV4cG9ydCB7TkdYX01BVF9DT0xPUl9QSUNLRVJfU0NST0xMX1NUUkFURUdZX0ZBQ1RPUllfUFJPVklERVIgYXMgybVrLE5neE1hdENvbG9yQ2FudmFzQ29tcG9uZW50IGFzIMm1YixOZ3hNYXRDb2xvckNvbGxlY3Rpb25Db21wb25lbnQgYXMgybVjLE5neE1hdENvbG9yUGFsZXR0ZUNvbXBvbmVudCBhcyDJtWEsTmd4TWF0Q29sb3JQaWNrZXJDb21wb25lbnQgYXMgybVnLE5neE1hdENvbG9yUGlja2VyQ29udGVudENvbXBvbmVudCBhcyDJtWYsTmd4TWF0Q29sb3JQaWNrZXJJbnB1dCBhcyDJtWksTmd4TWF0Q29sb3JTbGlkZXJDb21wb25lbnQgYXMgybVkLE5neE1hdENvbG9yVG9nZ2xlQ29tcG9uZW50IGFzIMm1aH0gZnJvbSAnLi9saWIvY29tcG9uZW50cyc7XG5leHBvcnQge051bWVyaWNDb2xvcklucHV0RGlyZWN0aXZlIGFzIMm1ZX0gZnJvbSAnLi9saWIvZGlyZWN0aXZlcyc7XG5leHBvcnQge0NvbG9yQWRhcHRlciBhcyDJtWp9IGZyb20gJy4vbGliL3NlcnZpY2VzJzsiXX0=

@@ -60,2 +60,2 @@ /**

];
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29sb3ItcGlja2VyLm1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NvbG9yLXBpY2tlci9zcmMvbGliL2NvbG9yLXBpY2tlci5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBQSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDbkQsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDekMsT0FBTyxFQUFFLFdBQVcsRUFBRSxtQkFBbUIsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ2xFLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUMzRCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDdkQsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQzNELE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUN2RCxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDekQsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQ3pELE9BQU8sRUFDTCwwQkFBMEIsRUFDMUIsOEJBQThCLEVBQzlCLDJCQUEyQixFQUMzQiwwQkFBMEIsRUFDMUIsc0JBQXNCLEVBQUUsMEJBQTBCLEVBQ2xELDBCQUEwQixFQUMxQixxREFBcUQsRUFDckQsaUNBQWlDLEVBQ2xDLE1BQU0sY0FBYyxDQUFDO0FBQ3RCLE9BQU8sRUFBRSwwQkFBMEIsRUFBRSxNQUFNLGNBQWMsQ0FBQztBQUMxRCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sWUFBWSxDQUFDO0FBdUMxQyxNQUFNLE9BQU8sdUJBQXVCOzs7WUFyQ25DLFFBQVEsU0FBQztnQkFDUixZQUFZLEVBQUU7b0JBQ1osMkJBQTJCO29CQUMzQiwwQkFBMEI7b0JBQzFCLDhCQUE4QjtvQkFDOUIsMEJBQTBCO29CQUMxQiwwQkFBMEI7b0JBQzFCLGlDQUFpQztvQkFDakMsMEJBQTBCO29CQUMxQiwwQkFBMEI7b0JBQzFCLHNCQUFzQjtpQkFDdkI7Z0JBQ0QsT0FBTyxFQUFFO29CQUNQLFlBQVk7b0JBQ1osY0FBYztvQkFDZCxlQUFlO29CQUNmLGFBQWE7b0JBQ2IsY0FBYztvQkFDZCxXQUFXO29CQUNYLG1CQUFtQjtvQkFDbkIsZUFBZTtvQkFDZixZQUFZO29CQUNaLGFBQWE7aUJBQ2Q7Z0JBQ0QsT0FBTyxFQUFFO29CQUNQLDBCQUEwQjtvQkFDMUIsc0JBQXNCO29CQUN0QiwwQkFBMEI7aUJBQzNCO2dCQUNELGVBQWUsRUFBRTtvQkFDZixpQ0FBaUM7aUJBQ2xDO2dCQUNELFNBQVMsRUFBRTtvQkFDVCxZQUFZO29CQUNaLHFEQUFxRDtpQkFDdEQ7YUFDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFBvcnRhbE1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9wb3J0YWwnO1xyXG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xyXG5pbXBvcnQgeyBOZ01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBGb3Jtc01vZHVsZSwgUmVhY3RpdmVGb3Jtc01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcclxuaW1wb3J0IHsgTWF0QnV0dG9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvYnV0dG9uJztcclxuaW1wb3J0IHsgTWF0Q2FyZE1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2NhcmQnO1xyXG5pbXBvcnQgeyBNYXREaWFsb2dNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9kaWFsb2cnO1xyXG5pbXBvcnQgeyBNYXRJY29uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvaWNvbic7XHJcbmltcG9ydCB7IE1hdElucHV0TW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvaW5wdXQnO1xyXG5pbXBvcnQgeyBNYXRSYWRpb01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL3JhZGlvJztcclxuaW1wb3J0IHtcclxuICBOZ3hNYXRDb2xvckNhbnZhc0NvbXBvbmVudCxcclxuICBOZ3hNYXRDb2xvckNvbGxlY3Rpb25Db21wb25lbnQsXHJcbiAgTmd4TWF0Q29sb3JQYWxldHRlQ29tcG9uZW50LFxyXG4gIE5neE1hdENvbG9yUGlja2VyQ29tcG9uZW50LFxyXG4gIE5neE1hdENvbG9yUGlja2VySW5wdXQsIE5neE1hdENvbG9yU2xpZGVyQ29tcG9uZW50LFxyXG4gIE5neE1hdENvbG9yVG9nZ2xlQ29tcG9uZW50LFxyXG4gIE5HWF9NQVRfQ09MT1JfUElDS0VSX1NDUk9MTF9TVFJBVEVHWV9GQUNUT1JZX1BST1ZJREVSLFxyXG4gIE5neE1hdENvbG9yUGlja2VyQ29udGVudENvbXBvbmVudFxyXG59IGZyb20gJy4vY29tcG9uZW50cyc7XHJcbmltcG9ydCB7IE51bWVyaWNDb2xvcklucHV0RGlyZWN0aXZlIH0gZnJvbSAnLi9kaXJlY3RpdmVzJztcclxuaW1wb3J0IHsgQ29sb3JBZGFwdGVyIH0gZnJvbSAnLi9zZXJ2aWNlcyc7XHJcblxyXG5ATmdNb2R1bGUoe1xyXG4gIGRlY2xhcmF0aW9uczogW1xyXG4gICAgTmd4TWF0Q29sb3JQYWxldHRlQ29tcG9uZW50LFxyXG4gICAgTmd4TWF0Q29sb3JDYW52YXNDb21wb25lbnQsXHJcbiAgICBOZ3hNYXRDb2xvckNvbGxlY3Rpb25Db21wb25lbnQsXHJcbiAgICBOZ3hNYXRDb2xvclNsaWRlckNvbXBvbmVudCxcclxuICAgIE51bWVyaWNDb2xvcklucHV0RGlyZWN0aXZlLFxyXG4gICAgTmd4TWF0Q29sb3JQaWNrZXJDb250ZW50Q29tcG9uZW50LFxyXG4gICAgTmd4TWF0Q29sb3JQaWNrZXJDb21wb25lbnQsXHJcbiAgICBOZ3hNYXRDb2xvclRvZ2dsZUNvbXBvbmVudCxcclxuICAgIE5neE1hdENvbG9yUGlja2VySW5wdXRcclxuICBdLFxyXG4gIGltcG9ydHM6IFtcclxuICAgIENvbW1vbk1vZHVsZSxcclxuICAgIE1hdElucHV0TW9kdWxlLFxyXG4gICAgTWF0QnV0dG9uTW9kdWxlLFxyXG4gICAgTWF0Q2FyZE1vZHVsZSxcclxuICAgIE1hdFJhZGlvTW9kdWxlLFxyXG4gICAgRm9ybXNNb2R1bGUsXHJcbiAgICBSZWFjdGl2ZUZvcm1zTW9kdWxlLFxyXG4gICAgTWF0RGlhbG9nTW9kdWxlLFxyXG4gICAgUG9ydGFsTW9kdWxlLFxyXG4gICAgTWF0SWNvbk1vZHVsZVxyXG4gIF0sXHJcbiAgZXhwb3J0czogW1xyXG4gICAgTmd4TWF0Q29sb3JUb2dnbGVDb21wb25lbnQsXHJcbiAgICBOZ3hNYXRDb2xvclBpY2tlcklucHV0LFxyXG4gICAgTmd4TWF0Q29sb3JQaWNrZXJDb21wb25lbnRcclxuICBdLFxyXG4gIGVudHJ5Q29tcG9uZW50czogW1xyXG4gICAgTmd4TWF0Q29sb3JQaWNrZXJDb250ZW50Q29tcG9uZW50XHJcbiAgXSxcclxuICBwcm92aWRlcnM6IFtcclxuICAgIENvbG9yQWRhcHRlcixcclxuICAgIE5HWF9NQVRfQ09MT1JfUElDS0VSX1NDUk9MTF9TVFJBVEVHWV9GQUNUT1JZX1BST1ZJREVSXHJcbiAgXVxyXG59KVxyXG5leHBvcnQgY2xhc3MgTmd4TWF0Q29sb3JQaWNrZXJNb2R1bGUgeyB9XHJcbiJdfQ==
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29sb3ItcGlja2VyLm1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiIuLi8uLi8uLi8uLi9wcm9qZWN0cy9jb2xvci1waWNrZXIvc3JjLyIsInNvdXJjZXMiOlsibGliL2NvbG9yLXBpY2tlci5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBQSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDbkQsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDekMsT0FBTyxFQUFFLFdBQVcsRUFBRSxtQkFBbUIsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ2xFLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUMzRCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDdkQsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQzNELE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUN2RCxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDekQsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQ3pELE9BQU8sRUFDTCwwQkFBMEIsRUFDMUIsOEJBQThCLEVBQzlCLDJCQUEyQixFQUMzQiwwQkFBMEIsRUFDMUIsc0JBQXNCLEVBQUUsMEJBQTBCLEVBQ2xELDBCQUEwQixFQUMxQixxREFBcUQsRUFDckQsaUNBQWlDLEVBQ2xDLE1BQU0sY0FBYyxDQUFDO0FBQ3RCLE9BQU8sRUFBRSwwQkFBMEIsRUFBRSxNQUFNLGNBQWMsQ0FBQztBQUMxRCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sWUFBWSxDQUFDO0FBdUMxQyxNQUFNLE9BQU8sdUJBQXVCOzs7WUFyQ25DLFFBQVEsU0FBQztnQkFDUixZQUFZLEVBQUU7b0JBQ1osMkJBQTJCO29CQUMzQiwwQkFBMEI7b0JBQzFCLDhCQUE4QjtvQkFDOUIsMEJBQTBCO29CQUMxQiwwQkFBMEI7b0JBQzFCLGlDQUFpQztvQkFDakMsMEJBQTBCO29CQUMxQiwwQkFBMEI7b0JBQzFCLHNCQUFzQjtpQkFDdkI7Z0JBQ0QsT0FBTyxFQUFFO29CQUNQLFlBQVk7b0JBQ1osY0FBYztvQkFDZCxlQUFlO29CQUNmLGFBQWE7b0JBQ2IsY0FBYztvQkFDZCxXQUFXO29CQUNYLG1CQUFtQjtvQkFDbkIsZUFBZTtvQkFDZixZQUFZO29CQUNaLGFBQWE7aUJBQ2Q7Z0JBQ0QsT0FBTyxFQUFFO29CQUNQLDBCQUEwQjtvQkFDMUIsc0JBQXNCO29CQUN0QiwwQkFBMEI7aUJBQzNCO2dCQUNELGVBQWUsRUFBRTtvQkFDZixpQ0FBaUM7aUJBQ2xDO2dCQUNELFNBQVMsRUFBRTtvQkFDVCxZQUFZO29CQUNaLHFEQUFxRDtpQkFDdEQ7YUFDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFBvcnRhbE1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9wb3J0YWwnO1xyXG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xyXG5pbXBvcnQgeyBOZ01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBGb3Jtc01vZHVsZSwgUmVhY3RpdmVGb3Jtc01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcclxuaW1wb3J0IHsgTWF0QnV0dG9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvYnV0dG9uJztcclxuaW1wb3J0IHsgTWF0Q2FyZE1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2NhcmQnO1xyXG5pbXBvcnQgeyBNYXREaWFsb2dNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9kaWFsb2cnO1xyXG5pbXBvcnQgeyBNYXRJY29uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvaWNvbic7XHJcbmltcG9ydCB7IE1hdElucHV0TW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvaW5wdXQnO1xyXG5pbXBvcnQgeyBNYXRSYWRpb01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL3JhZGlvJztcclxuaW1wb3J0IHtcclxuICBOZ3hNYXRDb2xvckNhbnZhc0NvbXBvbmVudCxcclxuICBOZ3hNYXRDb2xvckNvbGxlY3Rpb25Db21wb25lbnQsXHJcbiAgTmd4TWF0Q29sb3JQYWxldHRlQ29tcG9uZW50LFxyXG4gIE5neE1hdENvbG9yUGlja2VyQ29tcG9uZW50LFxyXG4gIE5neE1hdENvbG9yUGlja2VySW5wdXQsIE5neE1hdENvbG9yU2xpZGVyQ29tcG9uZW50LFxyXG4gIE5neE1hdENvbG9yVG9nZ2xlQ29tcG9uZW50LFxyXG4gIE5HWF9NQVRfQ09MT1JfUElDS0VSX1NDUk9MTF9TVFJBVEVHWV9GQUNUT1JZX1BST1ZJREVSLFxyXG4gIE5neE1hdENvbG9yUGlja2VyQ29udGVudENvbXBvbmVudFxyXG59IGZyb20gJy4vY29tcG9uZW50cyc7XHJcbmltcG9ydCB7IE51bWVyaWNDb2xvcklucHV0RGlyZWN0aXZlIH0gZnJvbSAnLi9kaXJlY3RpdmVzJztcclxuaW1wb3J0IHsgQ29sb3JBZGFwdGVyIH0gZnJvbSAnLi9zZXJ2aWNlcyc7XHJcblxyXG5ATmdNb2R1bGUoe1xyXG4gIGRlY2xhcmF0aW9uczogW1xyXG4gICAgTmd4TWF0Q29sb3JQYWxldHRlQ29tcG9uZW50LFxyXG4gICAgTmd4TWF0Q29sb3JDYW52YXNDb21wb25lbnQsXHJcbiAgICBOZ3hNYXRDb2xvckNvbGxlY3Rpb25Db21wb25lbnQsXHJcbiAgICBOZ3hNYXRDb2xvclNsaWRlckNvbXBvbmVudCxcclxuICAgIE51bWVyaWNDb2xvcklucHV0RGlyZWN0aXZlLFxyXG4gICAgTmd4TWF0Q29sb3JQaWNrZXJDb250ZW50Q29tcG9uZW50LFxyXG4gICAgTmd4TWF0Q29sb3JQaWNrZXJDb21wb25lbnQsXHJcbiAgICBOZ3hNYXRDb2xvclRvZ2dsZUNvbXBvbmVudCxcclxuICAgIE5neE1hdENvbG9yUGlja2VySW5wdXRcclxuICBdLFxyXG4gIGltcG9ydHM6IFtcclxuICAgIENvbW1vbk1vZHVsZSxcclxuICAgIE1hdElucHV0TW9kdWxlLFxyXG4gICAgTWF0QnV0dG9uTW9kdWxlLFxyXG4gICAgTWF0Q2FyZE1vZHVsZSxcclxuICAgIE1hdFJhZGlvTW9kdWxlLFxyXG4gICAgRm9ybXNNb2R1bGUsXHJcbiAgICBSZWFjdGl2ZUZvcm1zTW9kdWxlLFxyXG4gICAgTWF0RGlhbG9nTW9kdWxlLFxyXG4gICAgUG9ydGFsTW9kdWxlLFxyXG4gICAgTWF0SWNvbk1vZHVsZVxyXG4gIF0sXHJcbiAgZXhwb3J0czogW1xyXG4gICAgTmd4TWF0Q29sb3JUb2dnbGVDb21wb25lbnQsXHJcbiAgICBOZ3hNYXRDb2xvclBpY2tlcklucHV0LFxyXG4gICAgTmd4TWF0Q29sb3JQaWNrZXJDb21wb25lbnRcclxuICBdLFxyXG4gIGVudHJ5Q29tcG9uZW50czogW1xyXG4gICAgTmd4TWF0Q29sb3JQaWNrZXJDb250ZW50Q29tcG9uZW50XHJcbiAgXSxcclxuICBwcm92aWRlcnM6IFtcclxuICAgIENvbG9yQWRhcHRlcixcclxuICAgIE5HWF9NQVRfQ09MT1JfUElDS0VSX1NDUk9MTF9TVFJBVEVHWV9GQUNUT1JZX1BST1ZJREVSXHJcbiAgXVxyXG59KVxyXG5leHBvcnQgY2xhc3MgTmd4TWF0Q29sb3JQaWNrZXJNb2R1bGUgeyB9XHJcbiJdfQ==

@@ -161,2 +161,2 @@ /**

}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFzZS1jb2xvci1jYW52YXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb2xvci1waWNrZXIvc3JjL2xpYi9jb21wb25lbnRzL2NvbG9yLWNhbnZhcy9iYXNlLWNvbG9yLWNhbnZhcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQUFBLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBNEIsTUFBTSxFQUFFLFNBQVMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN6RyxPQUFPLEVBQUUsS0FBSyxFQUFFLE1BQU0sY0FBYyxDQUFDO0FBQ3JDLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxNQUFNLENBQUM7Ozs7QUFLL0IsTUFBTSxPQUFnQixxQkFBcUI7Ozs7O0lBb0IxQyxZQUFzQixJQUFZLEVBQUUsU0FBaUI7UUFBL0IsU0FBSSxHQUFKLElBQUksQ0FBUTtRQWxCeEIsaUJBQVksR0FBd0IsSUFBSSxZQUFZLEVBQVMsQ0FBQztRQVd4RSxNQUFDLEdBQVcsQ0FBQyxDQUFDO1FBQ2QsTUFBQyxHQUFXLENBQUMsQ0FBQztRQUVkLFNBQUksR0FBRyxLQUFLLENBQUM7UUFFSCxlQUFVLEdBQWtCLElBQUksT0FBTyxFQUFRLENBQUM7UUFHekQsSUFBSSxDQUFDLFNBQVMsR0FBRyxTQUFTLENBQUM7SUFDNUIsQ0FBQzs7OztJQUVELFdBQVc7UUFDVixJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksRUFBRSxDQUFDO1FBQ3ZCLElBQUksQ0FBQyxVQUFVLENBQUMsUUFBUSxFQUFFLENBQUM7SUFDNUIsQ0FBQzs7OztJQUVELGVBQWU7UUFDZCxJQUFJLENBQUMsTUFBTSxHQUFHLG1CQUFtQixRQUFRLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsRUFBQSxDQUFDO1FBQ3pFLElBQUksQ0FBQyxHQUFHLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDeEMsSUFBSSxDQUFDLEtBQUssR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQztRQUMvQixJQUFJLENBQUMsTUFBTSxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDO1FBQ2pDLElBQUksQ0FBQyxJQUFJLEVBQUUsQ0FBQztJQUNiLENBQUM7Ozs7O0lBRVMsSUFBSTtRQUNiLElBQUksQ0FBQyxHQUFHLENBQUMsU0FBUyxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsSUFBSSxDQUFDLEtBQUssRUFBRSxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUM7UUFDbEQsSUFBSSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxJQUFJLENBQUMsS0FBSyxFQUFFLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUM3QyxJQUFJLENBQUMsWUFBWSxFQUFFLENBQUM7UUFDcEIsSUFBSSxJQUFJLENBQUMsQ0FBQyxJQUFJLENBQUMsRUFBRTtZQUNoQixJQUFJLENBQUMsZUFBZSxDQUFDLElBQUksQ0FBQyxDQUFDLEVBQUUsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDO1NBQ3JDO0lBQ0YsQ0FBQzs7Ozs7SUFHTSxXQUFXLENBQUMsQ0FBYTtRQUMvQixJQUFJLENBQUMsSUFBSSxHQUFHLElBQUksQ0FBQztRQUNqQixJQUFJLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBRXBCLElBQUksQ0FBQyxJQUFJLENBQUMsaUJBQWlCOzs7UUFBQyxHQUFHLEVBQUU7WUFDaEMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxnQkFBZ0IsQ0FBQyxXQUFXLEVBQUUsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQztRQUN4RSxDQUFDLEVBQUMsQ0FBQTtJQUNILENBQUM7Ozs7O0lBRU0sV0FBVyxDQUFDLENBQWE7UUFDL0IsSUFBSSxJQUFJLENBQUMsSUFBSSxFQUFFO1lBQ2QsSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHOzs7WUFBQyxHQUFHLEVBQUU7Z0JBQ2xCLElBQUksQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFDckIsQ0FBQyxFQUFDLENBQUE7U0FDRjtJQUNGLENBQUM7Ozs7O0lBRU0sU0FBUyxDQUFDLENBQWE7UUFDN0IsSUFBSSxDQUFDLElBQUksR0FBRyxLQUFLLENBQUM7UUFDbEIsSUFBSSxDQUFDLE1BQU0sQ0FBQyxtQkFBbUIsQ0FBQyxXQUFXLEVBQUUsSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUFDO0lBQ2hFLENBQUM7Ozs7O0lBRU0sVUFBVSxDQUFDLEtBQVk7UUFDN0IsSUFBSSxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDL0IsQ0FBQzs7O1lBMUVELFNBQVMsU0FBQyxFQUVWOzs7O1lBTitELE1BQU07Ozs7MkJBU3BFLE1BQU07b0JBQ04sS0FBSzs7OztJQUROLDZDQUF3RTs7SUFDeEUsc0NBQXNCOztJQUV0Qix1Q0FBMEI7O0lBRTFCLDBDQUFrQjs7SUFFbEIsb0NBQThCOztJQUM5QixzQ0FBYzs7SUFDZCx1Q0FBZTs7SUFFZixrQ0FBYzs7SUFDZCxrQ0FBYzs7SUFFZCxxQ0FBYTs7Ozs7SUFFYiwyQ0FBMEQ7Ozs7O0lBRTlDLHFDQUFzQjs7Ozs7O0lBcURsQywrREFBMEM7Ozs7O0lBQzFDLCtEQUE4Qjs7Ozs7OztJQUM5QixzRUFBcUQiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBFdmVudEVtaXR0ZXIsIE91dHB1dCwgSW5wdXQsIE9uRGVzdHJveSwgQWZ0ZXJWaWV3SW5pdCwgTmdab25lLCBEaXJlY3RpdmUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgQ29sb3IgfSBmcm9tICcuLi8uLi9tb2RlbHMnO1xyXG5pbXBvcnQgeyBTdWJqZWN0IH0gZnJvbSAncnhqcyc7XHJcblxyXG5ARGlyZWN0aXZlKHtcclxuXHJcbn0pXHJcbmV4cG9ydCBhYnN0cmFjdCBjbGFzcyBOZ3hNYXRCYXNlQ29sb3JDYW52YXMgaW1wbGVtZW50cyBPbkRlc3Ryb3ksIEFmdGVyVmlld0luaXQge1xyXG5cclxuXHRAT3V0cHV0KCkgY29sb3JDaGFuZ2VkOiBFdmVudEVtaXR0ZXI8Q29sb3I+ID0gbmV3IEV2ZW50RW1pdHRlcjxDb2xvcj4oKTtcclxuXHRASW5wdXQoKSBjb2xvcjogQ29sb3I7XHJcblxyXG5cdGNhbnZhczogSFRNTENhbnZhc0VsZW1lbnQ7XHJcblxyXG5cdGVsZW1lbnRJZDogc3RyaW5nO1xyXG5cclxuXHRjdHg6IENhbnZhc1JlbmRlcmluZ0NvbnRleHQyRDtcclxuXHR3aWR0aDogbnVtYmVyO1xyXG5cdGhlaWdodDogbnVtYmVyO1xyXG5cclxuXHR4OiBudW1iZXIgPSAwO1xyXG5cdHk6IG51bWJlciA9IDA7XHJcblxyXG5cdGRyYWcgPSBmYWxzZTtcclxuXHJcblx0cHJvdGVjdGVkIF9kZXN0cm95ZWQ6IFN1YmplY3Q8dm9pZD4gPSBuZXcgU3ViamVjdDx2b2lkPigpO1xyXG5cclxuXHRjb25zdHJ1Y3Rvcihwcm90ZWN0ZWQgem9uZTogTmdab25lLCBlbGVtZW50SWQ6IHN0cmluZykge1xyXG5cdFx0dGhpcy5lbGVtZW50SWQgPSBlbGVtZW50SWQ7XHJcblx0fVxyXG5cclxuXHRuZ09uRGVzdHJveSgpOiB2b2lkIHtcclxuXHRcdHRoaXMuX2Rlc3Ryb3llZC5uZXh0KCk7XHJcblx0XHR0aGlzLl9kZXN0cm95ZWQuY29tcGxldGUoKTtcclxuXHR9XHJcblxyXG5cdG5nQWZ0ZXJWaWV3SW5pdCgpOiB2b2lkIHtcclxuXHRcdHRoaXMuY2FudmFzID0gPEhUTUxDYW52YXNFbGVtZW50PmRvY3VtZW50LmdldEVsZW1lbnRCeUlkKHRoaXMuZWxlbWVudElkKTtcclxuXHRcdHRoaXMuY3R4ID0gdGhpcy5jYW52YXMuZ2V0Q29udGV4dCgnMmQnKTtcclxuXHRcdHRoaXMud2lkdGggPSB0aGlzLmNhbnZhcy53aWR0aDtcclxuXHRcdHRoaXMuaGVpZ2h0ID0gdGhpcy5jYW52YXMuaGVpZ2h0O1xyXG5cdFx0dGhpcy5kcmF3KCk7XHJcblx0fVxyXG5cclxuXHRwcm90ZWN0ZWQgZHJhdygpIHtcclxuXHRcdHRoaXMuY3R4LmNsZWFyUmVjdCgwLCAwLCB0aGlzLndpZHRoLCB0aGlzLmhlaWdodCk7XHJcblx0XHR0aGlzLmN0eC5yZWN0KDAsIDAsIHRoaXMud2lkdGgsIHRoaXMuaGVpZ2h0KTtcclxuXHRcdHRoaXMuZmlsbEdyYWRpZW50KCk7XHJcblx0XHRpZiAodGhpcy55ICE9IDApIHtcclxuXHRcdFx0dGhpcy5yZWRyYXdJbmRpY2F0b3IodGhpcy54LCB0aGlzLnkpO1xyXG5cdFx0fVxyXG5cdH1cclxuXHJcblxyXG5cdHB1YmxpYyBvbk1vdXNlZG93bihlOiBNb3VzZUV2ZW50KSB7XHJcblx0XHR0aGlzLmRyYWcgPSB0cnVlO1xyXG5cdFx0dGhpcy5jaGFuZ2VDb2xvcihlKTtcclxuXHJcblx0XHR0aGlzLnpvbmUucnVuT3V0c2lkZUFuZ3VsYXIoKCkgPT4ge1xyXG5cdFx0XHR0aGlzLmNhbnZhcy5hZGRFdmVudExpc3RlbmVyKCdtb3VzZW1vdmUnLCB0aGlzLm9uTW91c2Vtb3ZlLmJpbmQodGhpcykpO1xyXG5cdFx0fSlcclxuXHR9XHJcblxyXG5cdHB1YmxpYyBvbk1vdXNlbW92ZShlOiBNb3VzZUV2ZW50KSB7XHJcblx0XHRpZiAodGhpcy5kcmFnKSB7XHJcblx0XHRcdHRoaXMuem9uZS5ydW4oKCkgPT4ge1xyXG5cdFx0XHRcdHRoaXMuY2hhbmdlQ29sb3IoZSk7XHJcblx0XHRcdH0pXHJcblx0XHR9XHJcblx0fVxyXG5cclxuXHRwdWJsaWMgb25Nb3VzZXVwKGU6IE1vdXNlRXZlbnQpIHtcclxuXHRcdHRoaXMuZHJhZyA9IGZhbHNlO1xyXG5cdFx0dGhpcy5jYW52YXMucmVtb3ZlRXZlbnRMaXN0ZW5lcignbW91c2Vtb3ZlJywgdGhpcy5vbk1vdXNlbW92ZSk7XHJcblx0fVxyXG5cclxuXHRwdWJsaWMgZW1pdENoYW5nZShjb2xvcjogQ29sb3IpIHtcclxuXHRcdHRoaXMuY29sb3JDaGFuZ2VkLmVtaXQoY29sb3IpO1xyXG5cdH1cclxuXHJcblx0YWJzdHJhY3QgY2hhbmdlQ29sb3IoZTogTW91c2VFdmVudCk6IHZvaWQ7XHJcblx0YWJzdHJhY3QgZmlsbEdyYWRpZW50KCk6IHZvaWQ7XHJcblx0YWJzdHJhY3QgcmVkcmF3SW5kaWNhdG9yKHg6IG51bWJlciwgeTogbnVtYmVyKTogdm9pZDtcclxuXHJcbn1cclxuIl19
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFzZS1jb2xvci1jYW52YXMuanMiLCJzb3VyY2VSb290IjoiLi4vLi4vLi4vLi4vcHJvamVjdHMvY29sb3ItcGlja2VyL3NyYy8iLCJzb3VyY2VzIjpbImxpYi9jb21wb25lbnRzL2NvbG9yLWNhbnZhcy9iYXNlLWNvbG9yLWNhbnZhcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQUFBLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBNEIsTUFBTSxFQUFFLFNBQVMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN6RyxPQUFPLEVBQUUsS0FBSyxFQUFFLE1BQU0sY0FBYyxDQUFDO0FBQ3JDLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxNQUFNLENBQUM7Ozs7QUFLL0IsTUFBTSxPQUFnQixxQkFBcUI7Ozs7O0lBb0IxQyxZQUFzQixJQUFZLEVBQUUsU0FBaUI7UUFBL0IsU0FBSSxHQUFKLElBQUksQ0FBUTtRQWxCeEIsaUJBQVksR0FBd0IsSUFBSSxZQUFZLEVBQVMsQ0FBQztRQVd4RSxNQUFDLEdBQVcsQ0FBQyxDQUFDO1FBQ2QsTUFBQyxHQUFXLENBQUMsQ0FBQztRQUVkLFNBQUksR0FBRyxLQUFLLENBQUM7UUFFSCxlQUFVLEdBQWtCLElBQUksT0FBTyxFQUFRLENBQUM7UUFHekQsSUFBSSxDQUFDLFNBQVMsR0FBRyxTQUFTLENBQUM7SUFDNUIsQ0FBQzs7OztJQUVELFdBQVc7UUFDVixJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksRUFBRSxDQUFDO1FBQ3ZCLElBQUksQ0FBQyxVQUFVLENBQUMsUUFBUSxFQUFFLENBQUM7SUFDNUIsQ0FBQzs7OztJQUVELGVBQWU7UUFDZCxJQUFJLENBQUMsTUFBTSxHQUFHLG1CQUFtQixRQUFRLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsRUFBQSxDQUFDO1FBQ3pFLElBQUksQ0FBQyxHQUFHLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDeEMsSUFBSSxDQUFDLEtBQUssR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQztRQUMvQixJQUFJLENBQUMsTUFBTSxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDO1FBQ2pDLElBQUksQ0FBQyxJQUFJLEVBQUUsQ0FBQztJQUNiLENBQUM7Ozs7O0lBRVMsSUFBSTtRQUNiLElBQUksQ0FBQyxHQUFHLENBQUMsU0FBUyxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsSUFBSSxDQUFDLEtBQUssRUFBRSxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUM7UUFDbEQsSUFBSSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxJQUFJLENBQUMsS0FBSyxFQUFFLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUM3QyxJQUFJLENBQUMsWUFBWSxFQUFFLENBQUM7UUFDcEIsSUFBSSxJQUFJLENBQUMsQ0FBQyxJQUFJLENBQUMsRUFBRTtZQUNoQixJQUFJLENBQUMsZUFBZSxDQUFDLElBQUksQ0FBQyxDQUFDLEVBQUUsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDO1NBQ3JDO0lBQ0YsQ0FBQzs7Ozs7SUFHTSxXQUFXLENBQUMsQ0FBYTtRQUMvQixJQUFJLENBQUMsSUFBSSxHQUFHLElBQUksQ0FBQztRQUNqQixJQUFJLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBRXBCLElBQUksQ0FBQyxJQUFJLENBQUMsaUJBQWlCOzs7UUFBQyxHQUFHLEVBQUU7WUFDaEMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxnQkFBZ0IsQ0FBQyxXQUFXLEVBQUUsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQztRQUN4RSxDQUFDLEVBQUMsQ0FBQTtJQUNILENBQUM7Ozs7O0lBRU0sV0FBVyxDQUFDLENBQWE7UUFDL0IsSUFBSSxJQUFJLENBQUMsSUFBSSxFQUFFO1lBQ2QsSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHOzs7WUFBQyxHQUFHLEVBQUU7Z0JBQ2xCLElBQUksQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFDckIsQ0FBQyxFQUFDLENBQUE7U0FDRjtJQUNGLENBQUM7Ozs7O0lBRU0sU0FBUyxDQUFDLENBQWE7UUFDN0IsSUFBSSxDQUFDLElBQUksR0FBRyxLQUFLLENBQUM7UUFDbEIsSUFBSSxDQUFDLE1BQU0sQ0FBQyxtQkFBbUIsQ0FBQyxXQUFXLEVBQUUsSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUFDO0lBQ2hFLENBQUM7Ozs7O0lBRU0sVUFBVSxDQUFDLEtBQVk7UUFDN0IsSUFBSSxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDL0IsQ0FBQzs7O1lBMUVELFNBQVMsU0FBQyxFQUVWOzs7O1lBTitELE1BQU07Ozs7MkJBU3BFLE1BQU07b0JBQ04sS0FBSzs7OztJQUROLDZDQUF3RTs7SUFDeEUsc0NBQXNCOztJQUV0Qix1Q0FBMEI7O0lBRTFCLDBDQUFrQjs7SUFFbEIsb0NBQThCOztJQUM5QixzQ0FBYzs7SUFDZCx1Q0FBZTs7SUFFZixrQ0FBYzs7SUFDZCxrQ0FBYzs7SUFFZCxxQ0FBYTs7Ozs7SUFFYiwyQ0FBMEQ7Ozs7O0lBRTlDLHFDQUFzQjs7Ozs7O0lBcURsQywrREFBMEM7Ozs7O0lBQzFDLCtEQUE4Qjs7Ozs7OztJQUM5QixzRUFBcUQiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBFdmVudEVtaXR0ZXIsIE91dHB1dCwgSW5wdXQsIE9uRGVzdHJveSwgQWZ0ZXJWaWV3SW5pdCwgTmdab25lLCBEaXJlY3RpdmUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgQ29sb3IgfSBmcm9tICcuLi8uLi9tb2RlbHMnO1xyXG5pbXBvcnQgeyBTdWJqZWN0IH0gZnJvbSAncnhqcyc7XHJcblxyXG5ARGlyZWN0aXZlKHtcclxuXHJcbn0pXHJcbmV4cG9ydCBhYnN0cmFjdCBjbGFzcyBOZ3hNYXRCYXNlQ29sb3JDYW52YXMgaW1wbGVtZW50cyBPbkRlc3Ryb3ksIEFmdGVyVmlld0luaXQge1xyXG5cclxuXHRAT3V0cHV0KCkgY29sb3JDaGFuZ2VkOiBFdmVudEVtaXR0ZXI8Q29sb3I+ID0gbmV3IEV2ZW50RW1pdHRlcjxDb2xvcj4oKTtcclxuXHRASW5wdXQoKSBjb2xvcjogQ29sb3I7XHJcblxyXG5cdGNhbnZhczogSFRNTENhbnZhc0VsZW1lbnQ7XHJcblxyXG5cdGVsZW1lbnRJZDogc3RyaW5nO1xyXG5cclxuXHRjdHg6IENhbnZhc1JlbmRlcmluZ0NvbnRleHQyRDtcclxuXHR3aWR0aDogbnVtYmVyO1xyXG5cdGhlaWdodDogbnVtYmVyO1xyXG5cclxuXHR4OiBudW1iZXIgPSAwO1xyXG5cdHk6IG51bWJlciA9IDA7XHJcblxyXG5cdGRyYWcgPSBmYWxzZTtcclxuXHJcblx0cHJvdGVjdGVkIF9kZXN0cm95ZWQ6IFN1YmplY3Q8dm9pZD4gPSBuZXcgU3ViamVjdDx2b2lkPigpO1xyXG5cclxuXHRjb25zdHJ1Y3Rvcihwcm90ZWN0ZWQgem9uZTogTmdab25lLCBlbGVtZW50SWQ6IHN0cmluZykge1xyXG5cdFx0dGhpcy5lbGVtZW50SWQgPSBlbGVtZW50SWQ7XHJcblx0fVxyXG5cclxuXHRuZ09uRGVzdHJveSgpOiB2b2lkIHtcclxuXHRcdHRoaXMuX2Rlc3Ryb3llZC5uZXh0KCk7XHJcblx0XHR0aGlzLl9kZXN0cm95ZWQuY29tcGxldGUoKTtcclxuXHR9XHJcblxyXG5cdG5nQWZ0ZXJWaWV3SW5pdCgpOiB2b2lkIHtcclxuXHRcdHRoaXMuY2FudmFzID0gPEhUTUxDYW52YXNFbGVtZW50PmRvY3VtZW50LmdldEVsZW1lbnRCeUlkKHRoaXMuZWxlbWVudElkKTtcclxuXHRcdHRoaXMuY3R4ID0gdGhpcy5jYW52YXMuZ2V0Q29udGV4dCgnMmQnKTtcclxuXHRcdHRoaXMud2lkdGggPSB0aGlzLmNhbnZhcy53aWR0aDtcclxuXHRcdHRoaXMuaGVpZ2h0ID0gdGhpcy5jYW52YXMuaGVpZ2h0O1xyXG5cdFx0dGhpcy5kcmF3KCk7XHJcblx0fVxyXG5cclxuXHRwcm90ZWN0ZWQgZHJhdygpIHtcclxuXHRcdHRoaXMuY3R4LmNsZWFyUmVjdCgwLCAwLCB0aGlzLndpZHRoLCB0aGlzLmhlaWdodCk7XHJcblx0XHR0aGlzLmN0eC5yZWN0KDAsIDAsIHRoaXMud2lkdGgsIHRoaXMuaGVpZ2h0KTtcclxuXHRcdHRoaXMuZmlsbEdyYWRpZW50KCk7XHJcblx0XHRpZiAodGhpcy55ICE9IDApIHtcclxuXHRcdFx0dGhpcy5yZWRyYXdJbmRpY2F0b3IodGhpcy54LCB0aGlzLnkpO1xyXG5cdFx0fVxyXG5cdH1cclxuXHJcblxyXG5cdHB1YmxpYyBvbk1vdXNlZG93bihlOiBNb3VzZUV2ZW50KSB7XHJcblx0XHR0aGlzLmRyYWcgPSB0cnVlO1xyXG5cdFx0dGhpcy5jaGFuZ2VDb2xvcihlKTtcclxuXHJcblx0XHR0aGlzLnpvbmUucnVuT3V0c2lkZUFuZ3VsYXIoKCkgPT4ge1xyXG5cdFx0XHR0aGlzLmNhbnZhcy5hZGRFdmVudExpc3RlbmVyKCdtb3VzZW1vdmUnLCB0aGlzLm9uTW91c2Vtb3ZlLmJpbmQodGhpcykpO1xyXG5cdFx0fSlcclxuXHR9XHJcblxyXG5cdHB1YmxpYyBvbk1vdXNlbW92ZShlOiBNb3VzZUV2ZW50KSB7XHJcblx0XHRpZiAodGhpcy5kcmFnKSB7XHJcblx0XHRcdHRoaXMuem9uZS5ydW4oKCkgPT4ge1xyXG5cdFx0XHRcdHRoaXMuY2hhbmdlQ29sb3IoZSk7XHJcblx0XHRcdH0pXHJcblx0XHR9XHJcblx0fVxyXG5cclxuXHRwdWJsaWMgb25Nb3VzZXVwKGU6IE1vdXNlRXZlbnQpIHtcclxuXHRcdHRoaXMuZHJhZyA9IGZhbHNlO1xyXG5cdFx0dGhpcy5jYW52YXMucmVtb3ZlRXZlbnRMaXN0ZW5lcignbW91c2Vtb3ZlJywgdGhpcy5vbk1vdXNlbW92ZSk7XHJcblx0fVxyXG5cclxuXHRwdWJsaWMgZW1pdENoYW5nZShjb2xvcjogQ29sb3IpIHtcclxuXHRcdHRoaXMuY29sb3JDaGFuZ2VkLmVtaXQoY29sb3IpO1xyXG5cdH1cclxuXHJcblx0YWJzdHJhY3QgY2hhbmdlQ29sb3IoZTogTW91c2VFdmVudCk6IHZvaWQ7XHJcblx0YWJzdHJhY3QgZmlsbEdyYWRpZW50KCk6IHZvaWQ7XHJcblx0YWJzdHJhY3QgcmVkcmF3SW5kaWNhdG9yKHg6IG51bWJlciwgeTogbnVtYmVyKTogdm9pZDtcclxuXHJcbn1cclxuIl19

@@ -211,2 +211,2 @@ /**

}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29sb3ItY2FudmFzLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NvbG9yLXBpY2tlci9zcmMvbGliL2NvbXBvbmVudHMvY29sb3ItY2FudmFzL2NvbG9yLWNhbnZhcy5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBQSxPQUFPLEVBQWlCLFNBQVMsRUFBRSxNQUFNLEVBQStDLGlCQUFpQixFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ2pJLE9BQU8sRUFBbUIsV0FBVyxFQUFFLFNBQVMsRUFBRSxVQUFVLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNyRixPQUFPLEVBQUUsS0FBSyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQzdCLE9BQU8sRUFBRSxZQUFZLEVBQUUsb0JBQW9CLEVBQUUsU0FBUyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDL0UsT0FBTyxFQUFFLGtCQUFrQixFQUFFLFFBQVEsRUFBRSxtQkFBbUIsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNsRixPQUFPLEVBQUUsS0FBSyxFQUFFLE1BQU0sY0FBYyxDQUFDO0FBQ3JDLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLHFCQUFxQixDQUFDOztNQUV0RCxVQUFVLEdBQUcsQ0FBQztBQVdwQixNQUFNLE9BQU8sMEJBQTJCLFNBQVEscUJBQXFCOzs7O0lBK0JuRSxZQUFzQixJQUFZO1FBQ2hDLEtBQUssQ0FBQyxJQUFJLEVBQUUsYUFBYSxDQUFDLENBQUM7UUFEUCxTQUFJLEdBQUosSUFBSSxDQUFRO1FBTmxDLG9CQUFlLEdBQUcsSUFBSSxDQUFDO1FBUXJCLElBQUksQ0FBQyxTQUFTLEdBQUcsSUFBSSxTQUFTLENBQUM7WUFDN0IsQ0FBQyxFQUFFLElBQUksV0FBVyxDQUFDLElBQUksRUFBRSxDQUFDLFVBQVUsQ0FBQyxRQUFRLENBQUMsQ0FBQztZQUMvQyxDQUFDLEVBQUUsSUFBSSxXQUFX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Q0FBQyxJQUFJO2dCQUNyQyxJQUFJLEVBQUU7b0JBQ0osT0FBTyxFQUFFLHNCQUFzQjtpQkFDaEM7O2FBQ0Y7Ozs7WUFsQmtDLE1BQU07Ozs7Ozs7SUFzQnZDLGdEQUEwQjs7SUFzQjFCLHFEQUF1Qjs7SUFFdkIsK0NBQXFCOztJQUVyQiwwQ0FBYTs7Ozs7SUFFRCwwQ0FBc0IiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBZnRlclZpZXdJbml0LCBDb21wb25lbnQsIE5nWm9uZSwgT25DaGFuZ2VzLCBPbkRlc3Ryb3ksIE9uSW5pdCwgU2ltcGxlQ2hhbmdlcywgVmlld0VuY2Fwc3VsYXRpb24gfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgQWJzdHJhY3RDb250cm9sLCBGb3JtQ29udHJvbCwgRm9ybUdyb3VwLCBWYWxpZGF0b3JzIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xyXG5pbXBvcnQgeyBtZXJnZSB9IGZyb20gJ3J4anMnO1xyXG5pbXBvcnQgeyBkZWJvdW5jZVRpbWUsIGRpc3RpbmN0VW50aWxDaGFuZ2VkLCB0YWtlVW50aWwgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XHJcbmltcG9ydCB7IGdldENvbG9yQXRQb3NpdGlvbiwgbWF0Y2hlcnMsIHN0cmluZ0lucHV0VG9PYmplY3QgfSBmcm9tICcuLi8uLi9oZWxwZXJzJztcclxuaW1wb3J0IHsgQ29sb3IgfSBmcm9tICcuLi8uLi9tb2RlbHMnO1xyXG5pbXBvcnQgeyBOZ3hNYXRCYXNlQ29sb3JDYW52YXMgfSBmcm9tICcuL2Jhc2UtY29sb3ItY2FudmFzJztcclxuXHJcbmNvbnN0IFJBRElVU19OT0IgPSA1O1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICduZ3gtbWF0LWNvbG9yLWNhbnZhcycsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL2NvbG9yLWNhbnZhcy5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmxzOiBbJy4vY29sb3ItY2FudmFzLmNvbXBvbmVudC5zY3NzJ10sXHJcbiAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZSxcclxuICBob3N0OiB7XHJcbiAgICAnY2xhc3MnOiAnbmd4LW1hdC1jb2xvci1jYW52YXMnXHJcbiAgfVxyXG59KVxyXG5leHBvcnQgY2xhc3MgTmd4TWF0Q29sb3JDYW52YXNDb21wb25lbnQgZXh0ZW5kcyBOZ3hNYXRCYXNlQ29sb3JDYW52YXNcclxuICBpbXBsZW1lbnRzIE9uSW5pdCwgQWZ0ZXJWaWV3SW5pdCwgT25DaGFuZ2VzLCBPbkRlc3Ryb3kge1xyXG5cclxuICBwcml2YXRlIF9iYXNlQ29sb3I6IENvbG9yO1xyXG5cclxuICBnZXQgckN0cmwoKTogQWJzdHJhY3RDb250cm9sIHtcclxuICAgIHJldHVybiB0aGlzLmZvcm1Hcm91cC5nZXQoJ3InKTtcclxuICB9XHJcblxyXG4gIGdldCBnQ3RybCgpOiBBYnN0cmFjdENvbnRyb2wge1xyXG4gICAgcmV0dXJuIHRoaXMuZm9ybUdyb3VwLmdldCgnZycpO1xyXG4gIH1cclxuXHJcbiAgZ2V0IGJDdHJsKCk6IEFic3RyYWN0Q29udHJvbCB7XHJcbiAgICByZXR1cm4gdGhpcy5mb3JtR3JvdXAuZ2V0KCdiJyk7XHJcbiAgfVxyXG5cclxuICBnZXQgYUN0cmwoKTogQWJzdHJhY3RDb250cm9sIHtcclxuICAgIHJldHVybiB0aGlzLmZvcm1Hcm91cC5nZXQoJ2EnKTtcclxuICB9XHJcblxyXG4gIGdldCBoZXhDdHJsKCk6IEFic3RyYWN0Q29udHJvbCB7XHJcbiAgICByZXR1cm4gdGhpcy5mb3JtR3JvdXAuZ2V0KCdoZXgnKTtcclxuICB9XHJcblxyXG4gIF9yZXNldEJhc2VDb2xvciA9IHRydWU7XHJcblxyXG4gIGZvcm1Hcm91cDogRm9ybUdyb3VwO1xyXG5cclxuICByZ2JhOiBzdHJpbmc7XHJcblxyXG4gIGNvbnN0cnVjdG9yKHByb3RlY3RlZCB6b25lOiBOZ1pvbmUpIHtcclxuICAgIHN1cGVyKHpvbmUsICdjb2xvci1ibG9jaycpO1xyXG4gICAgdGhpcy5mb3JtR3JvdXAgPSBuZXcgRm9ybUdyb3VwKHtcclxuICAgICAgcjogbmV3IEZvcm1Db250cm9sKG51bGwsIFtWYWxpZGF0b3JzLnJlcXVpcmVkXSksXHJcbiAgICAgIGc6IG5ldyBGb3JtQ29udHJvbChudWxsLCBbVmFsaWRhdG9ycy5yZXF1aXJlZF0pLFxyXG4gICAgICBiOiBuZXcgRm9ybUNvbnRyb2wobnVsbCwgW1ZhbGlkYXRvcnMucmVxdWlyZWRdKSxcclxuICAgICAgYTogbmV3IEZvcm1Db250cm9sKG51bGwsIFtWYWxpZGF0b3JzLnJlcXVpcmVkXSksXHJcbiAgICAgIGhleDogbmV3IEZvcm1Db250cm9sKG51bGwsIFtWYWxpZGF0b3JzLnJlcXVpcmVkLCBWYWxpZGF0b3JzLnBhdHRlcm4obWF0Y2hlcnMuaGV4NildKSxcclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgbmdPbkluaXQoKSB7XHJcblxyXG4gICAgY29uc3QgcmdiYUN0cmwkID0gbWVyZ2UodGhpcy5yQ3RybC52YWx1ZUNoYW5nZXMsIHRoaXMuZ0N0cmwudmFsdWVDaGFuZ2VzLFxyXG4gICAgICB0aGlzLmJDdHJsLnZhbHVlQ2hhbmdlcywgdGhpcy5hQ3RybC52YWx1ZUNoYW5nZXMpO1xyXG4gICAgcmdiYUN0cmwkLnBpcGUodGFrZVVudGlsKHRoaXMuX2Rlc3Ryb3llZCksIGRlYm91bmNlVGltZSg0MDApLCBkaXN0aW5jdFVudGlsQ2hhbmdlZCgpKVxyXG4gICAgICAuc3Vic2NyaWJlKF8gPT4ge1xyXG4gICAgICAgIGNvbnN0IGNvbG9yID0gbmV3IENvbG9yKE51bWJlcih0aGlzLnJDdHJsLnZhbHVlKSxcclxuICAgICAgICAgIE51bWJlcih0aGlzLmdDdHJsLnZhbHVlKSwgTnVtYmVyKHRoaXMuYkN0cmwudmFsdWUpLCBOdW1iZXIodGhpcy5hQ3RybC52YWx1ZSkpO1xyXG4gICAgICAgIHRoaXMuZW1pdENoYW5nZShjb2xvcik7XHJcbiAgICAgIH0pO1xyXG5cclxuICAgIGNvbnN0IGhleEN0cmwkID0gdGhpcy5oZXhDdHJsLnZhbHVlQ2hhbmdlcztcclxuICAgIGhleEN0cmwkLnBpcGUodGFrZVVudGlsKHRoaXMuX2Rlc3Ryb3llZCksIGRlYm91bmNlVGltZSg0MDApLCBkaXN0aW5jdFVudGlsQ2hhbmdlZCgpKVxyXG4gICAgICAuc3Vic2NyaWJlKGhleCA9PiB7XHJcbiAgICAgICAgY29uc3Qgb2JqID0gc3RyaW5nSW5wdXRUb09iamVjdChoZXgpO1xyXG4gICAgICAgIGlmIChvYmogIT0gbnVsbCkge1xyXG4gICAgICAgICAgY29uc3QgY29sb3IgPSBuZXcgQ29sb3Iob2JqLnIsIG9iai5nLCBvYmouYiwgb2JqLmEpO1xyXG4gICAgICAgICAgdGhpcy5lbWl0Q2hhbmdlKGNvbG9yKTtcclxuICAgICAgICB9XHJcbiAgICAgIH0pXHJcbiAgfVxyXG5cclxuICBuZ09uQ2hhbmdlcyhjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKTogdm9pZCB7XHJcbiAgICBpZiAoY2hhbmdlcy5jb2xvciAmJiBjaGFuZ2VzLmNvbG9yLmN1cnJlbnRWYWx1ZSkge1xyXG4gICAgICB0aGlzLnVwZGF0ZUZvcm0oY2hhbmdlcy5jb2xvci5jdXJyZW50VmFsdWUpO1xyXG4gICAgICBpZiAodGhpcy5fcmVzZXRCYXNlQ29sb3IpIHtcclxuICAgICAgICB0aGlzLl9iYXNlQ29sb3IgPSBjaGFuZ2VzLmNvbG9yLmN1cnJlbnRWYWx1ZTtcclxuICAgICAgfVxyXG5cclxuICAgICAgdGhpcy5fcmVzZXRCYXNlQ29sb3IgPSB0cnVlO1xyXG5cclxuICAgICAgaWYgKCFjaGFuZ2VzLmNvbG9yLmZpcnN0Q2hhbmdlKSB7XHJcbiAgICAgICAgdGhpcy5kcmF3KCk7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcblxyXG4gIHByaXZhdGUgdXBkYXRlRm9ybSh2YWw6IENvbG9yKTogdm9pZCB7XHJcbiAgICBjb25zdCBjb25maWcgPSB7IGVtaXRFdmVudDogZmFsc2UgfTtcclxuICAgIHRoaXMuckN0cmwuc2V0VmFsdWUodmFsLnIsIGNvbmZpZyk7XHJcbiAgICB0aGlzLmdDdHJsLnNldFZhbHVlKHZhbC5nLCBjb25maWcpO1xyXG4gICAgdGhpcy5iQ3RybC5zZXRWYWx1ZSh2YWwuYiwgY29uZmlnKTtcclxuICAgIHRoaXMuYUN0cmwuc2V0VmFsdWUodmFsLmEsIGNvbmZpZyk7XHJcbiAgICB0aGlzLmhleEN0cmwuc2V0VmFsdWUodmFsLmhleCwgY29uZmlnKTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyByZWRyYXdJbmRpY2F0b3IoeDogbnVtYmVyLCB5OiBudW1iZXIpIHtcclxuICAgIHRoaXMuY3R4LmJlZ2luUGF0aCgpO1xyXG4gICAgdGhpcy5jdHguc3Ryb2tlU3R5bGUgPSAnd2hpdGUnO1xyXG4gICAgdGhpcy5jdHguYXJjKHgsIHksIFJBRElVU19OT0IsIDAsIDIgKiBNYXRoLlBJLCBmYWxzZSk7XHJcbiAgICB0aGlzLmN0eC5zdHJva2UoKTtcclxuICAgIHRoaXMuY3R4LmNsb3NlUGF0aCgpO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGZpbGxHcmFkaWVudCgpIHtcclxuICAgIHRoaXMuY3R4LmZpbGxTdHlsZSA9IHRoaXMuX2Jhc2VDb2xvciA/IHRoaXMuX2Jhc2VDb2xvci5yZ2JhIDogJ3JnYmEoMjU1LDI1NSwyNTUsMSknO1xyXG4gICAgdGhpcy5jdHguZmlsbFJlY3QoMCwgMCwgdGhpcy53aWR0aCwgdGhpcy5oZWlnaHQpO1xyXG5cclxuICAgIGNvbnN0IGdyZFdoaXRlID0gdGhpcy5jdHguY3JlYXRlTGluZWFyR3JhZGllbnQoMCwgMCwgdGhpcy53aWR0aCwgMCk7XHJcbiAgICBncmRXaGl0ZS5hZGRDb2xvclN0b3AoMCwgJ3JnYmEoMjU1LDI1NSwyNTUsMSknKTtcclxuICAgIGdyZFdoaXRlLmFkZENvbG9yU3RvcCgxLCAncmdiYSgyNTUsMjU1LDI1NSwwKScpO1xyXG4gICAgdGhpcy5jdHguZmlsbFN0eWxlID0gZ3JkV2hpdGU7XHJcbiAgICB0aGlzLmN0eC5maWxsUmVjdCgwLCAwLCB0aGlzLndpZHRoLCB0aGlzLmhlaWdodCk7XHJcblxyXG4gICAgY29uc3QgZ3JkQmxhY2sgPSB0aGlzLmN0eC5jcmVhdGVMaW5lYXJHcmFkaWVudCgwLCAwLCAwLCB0aGlzLmhlaWdodCk7XHJcbiAgICBncmRCbGFjay5hZGRDb2xvclN0b3AoMCwgJ3JnYmEoMCwwLDAsMCknKTtcclxuICAgIGdyZEJsYWNrLmFkZENvbG9yU3RvcCgxLCAncmdiYSgwLDAsMCwxKScpO1xyXG4gICAgdGhpcy5jdHguZmlsbFN0eWxlID0gZ3JkQmxhY2s7XHJcbiAgICB0aGlzLmN0eC5maWxsUmVjdCgwLCAwLCB0aGlzLndpZHRoLCB0aGlzLmhlaWdodCk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgb25TbGlkZXJDb2xvckNoYW5nZWQoYzogQ29sb3IpIHtcclxuICAgIHRoaXMuX2Jhc2VDb2xvciA9IGM7XHJcbiAgICB0aGlzLmNvbG9yID0gYztcclxuICAgIHRoaXMuZmlsbEdyYWRpZW50KCk7XHJcbiAgICB0aGlzLmVtaXRDaGFuZ2UoYyk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgY2hhbmdlQ29sb3IoZTogTW91c2VFdmVudCk6IHZvaWQge1xyXG4gICAgdGhpcy54ID0gZS5vZmZzZXRYO1xyXG4gICAgdGhpcy55ID0gZS5vZmZzZXRZO1xyXG4gICAgdGhpcy5fcmVzZXRCYXNlQ29sb3IgPSBmYWxzZTtcclxuICAgIHRoaXMuZHJhdygpO1xyXG4gICAgY29uc3QgeyByLCBnLCBiIH0gPSBnZXRDb2xvckF0UG9zaXRpb24odGhpcy5jdHgsIGUub2Zmc2V0WCwgZS5vZmZzZXRZKTtcclxuICAgIHRoaXMuZW1pdENoYW5nZShuZXcgQ29sb3IociwgZywgYikpO1xyXG4gIH1cclxuXHJcbn1cclxuIl19
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29sb3ItY2FudmFzLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIuLi8uLi8uLi8uLi9wcm9qZWN0cy9jb2xvci1waWNrZXIvc3JjLyIsInNvdXJjZXMiOlsibGliL2NvbXBvbmVudHMvY29sb3ItY2FudmFzL2NvbG9yLWNhbnZhcy5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBQSxPQUFPLEVBQWlCLFNBQVMsRUFBRSxNQUFNLEVBQStDLGlCQUFpQixFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ2pJLE9BQU8sRUFBbUIsV0FBVyxFQUFFLFNBQVMsRUFBRSxVQUFVLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNyRixPQUFPLEVBQUUsS0FBSyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQzdCLE9BQU8sRUFBRSxZQUFZLEVBQUUsb0JBQW9CLEVBQUUsU0FBUyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDL0UsT0FBTyxFQUFFLGtCQUFrQixFQUFFLFFBQVEsRUFBRSxtQkFBbUIsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNsRixPQUFPLEVBQUUsS0FBSyxFQUFFLE1BQU0sY0FBYyxDQUFDO0FBQ3JDLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLHFCQUFxQixDQUFDOztNQUV0RCxVQUFVLEdBQUcsQ0FBQztBQVdwQixNQUFNLE9BQU8sMEJBQTJCLFNBQVEscUJBQXFCOzs7O0lBK0JuRSxZQUFzQixJQUFZO1FBQ2hDLEtBQUssQ0FBQyxJQUFJLEVBQUUsYUFBYSxDQUFDLENBQUM7UUFEUCxTQUFJLEdBQUosSUFBSSxDQUFRO1FBTmxDLG9CQUFlLEdBQUcsSUFBSSxDQUFDO1FBUXJCLElBQUksQ0FBQyxTQUFTLEdBQUcsSUFBSSxTQUFTLENBQUM7WUFDN0IsQ0FBQyxFQUFFLElBQUksV0FBVyxDQUFDLElBQUksRUFBRSxDQUFDLFVBQVUsQ0FBQyxRQUFRLENBQUMsQ0FBQztZQUMvQyxDQUFDLEVBQUUsSUFBSSxXQUFXLENBQUMsSUFB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O2dCQUNyQyxJQUFJLEVBQUU7b0JBQ0osT0FBTyxFQUFFLHNCQUFzQjtpQkFDaEM7O2FBQ0Y7Ozs7WUFsQmtDLE1BQU07Ozs7Ozs7SUFzQnZDLGdEQUEwQjs7SUFzQjFCLHFEQUF1Qjs7SUFFdkIsK0NBQXFCOztJQUVyQiwwQ0FBYTs7Ozs7SUFFRCwwQ0FBc0IiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBZnRlclZpZXdJbml0LCBDb21wb25lbnQsIE5nWm9uZSwgT25DaGFuZ2VzLCBPbkRlc3Ryb3ksIE9uSW5pdCwgU2ltcGxlQ2hhbmdlcywgVmlld0VuY2Fwc3VsYXRpb24gfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgQWJzdHJhY3RDb250cm9sLCBGb3JtQ29udHJvbCwgRm9ybUdyb3VwLCBWYWxpZGF0b3JzIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xyXG5pbXBvcnQgeyBtZXJnZSB9IGZyb20gJ3J4anMnO1xyXG5pbXBvcnQgeyBkZWJvdW5jZVRpbWUsIGRpc3RpbmN0VW50aWxDaGFuZ2VkLCB0YWtlVW50aWwgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XHJcbmltcG9ydCB7IGdldENvbG9yQXRQb3NpdGlvbiwgbWF0Y2hlcnMsIHN0cmluZ0lucHV0VG9PYmplY3QgfSBmcm9tICcuLi8uLi9oZWxwZXJzJztcclxuaW1wb3J0IHsgQ29sb3IgfSBmcm9tICcuLi8uLi9tb2RlbHMnO1xyXG5pbXBvcnQgeyBOZ3hNYXRCYXNlQ29sb3JDYW52YXMgfSBmcm9tICcuL2Jhc2UtY29sb3ItY2FudmFzJztcclxuXHJcbmNvbnN0IFJBRElVU19OT0IgPSA1O1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICduZ3gtbWF0LWNvbG9yLWNhbnZhcycsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL2NvbG9yLWNhbnZhcy5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmxzOiBbJy4vY29sb3ItY2FudmFzLmNvbXBvbmVudC5zY3NzJ10sXHJcbiAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZSxcclxuICBob3N0OiB7XHJcbiAgICAnY2xhc3MnOiAnbmd4LW1hdC1jb2xvci1jYW52YXMnXHJcbiAgfVxyXG59KVxyXG5leHBvcnQgY2xhc3MgTmd4TWF0Q29sb3JDYW52YXNDb21wb25lbnQgZXh0ZW5kcyBOZ3hNYXRCYXNlQ29sb3JDYW52YXNcclxuICBpbXBsZW1lbnRzIE9uSW5pdCwgQWZ0ZXJWaWV3SW5pdCwgT25DaGFuZ2VzLCBPbkRlc3Ryb3kge1xyXG5cclxuICBwcml2YXRlIF9iYXNlQ29sb3I6IENvbG9yO1xyXG5cclxuICBnZXQgckN0cmwoKTogQWJzdHJhY3RDb250cm9sIHtcclxuICAgIHJldHVybiB0aGlzLmZvcm1Hcm91cC5nZXQoJ3InKTtcclxuICB9XHJcblxyXG4gIGdldCBnQ3RybCgpOiBBYnN0cmFjdENvbnRyb2wge1xyXG4gICAgcmV0dXJuIHRoaXMuZm9ybUdyb3VwLmdldCgnZycpO1xyXG4gIH1cclxuXHJcbiAgZ2V0IGJDdHJsKCk6IEFic3RyYWN0Q29udHJvbCB7XHJcbiAgICByZXR1cm4gdGhpcy5mb3JtR3JvdXAuZ2V0KCdiJyk7XHJcbiAgfVxyXG5cclxuICBnZXQgYUN0cmwoKTogQWJzdHJhY3RDb250cm9sIHtcclxuICAgIHJldHVybiB0aGlzLmZvcm1Hcm91cC5nZXQoJ2EnKTtcclxuICB9XHJcblxyXG4gIGdldCBoZXhDdHJsKCk6IEFic3RyYWN0Q29udHJvbCB7XHJcbiAgICByZXR1cm4gdGhpcy5mb3JtR3JvdXAuZ2V0KCdoZXgnKTtcclxuICB9XHJcblxyXG4gIF9yZXNldEJhc2VDb2xvciA9IHRydWU7XHJcblxyXG4gIGZvcm1Hcm91cDogRm9ybUdyb3VwO1xyXG5cclxuICByZ2JhOiBzdHJpbmc7XHJcblxyXG4gIGNvbnN0cnVjdG9yKHByb3RlY3RlZCB6b25lOiBOZ1pvbmUpIHtcclxuICAgIHN1cGVyKHpvbmUsICdjb2xvci1ibG9jaycpO1xyXG4gICAgdGhpcy5mb3JtR3JvdXAgPSBuZXcgRm9ybUdyb3VwKHtcclxuICAgICAgcjogbmV3IEZvcm1Db250cm9sKG51bGwsIFtWYWxpZGF0b3JzLnJlcXVpcmVkXSksXHJcbiAgICAgIGc6IG5ldyBGb3JtQ29udHJvbChudWxsLCBbVmFsaWRhdG9ycy5yZXF1aXJlZF0pLFxyXG4gICAgICBiOiBuZXcgRm9ybUNvbnRyb2wobnVsbCwgW1ZhbGlkYXRvcnMucmVxdWlyZWRdKSxcclxuICAgICAgYTogbmV3IEZvcm1Db250cm9sKG51bGwsIFtWYWxpZGF0b3JzLnJlcXVpcmVkXSksXHJcbiAgICAgIGhleDogbmV3IEZvcm1Db250cm9sKG51bGwsIFtWYWxpZGF0b3JzLnJlcXVpcmVkLCBWYWxpZGF0b3JzLnBhdHRlcm4obWF0Y2hlcnMuaGV4NildKSxcclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgbmdPbkluaXQoKSB7XHJcblxyXG4gICAgY29uc3QgcmdiYUN0cmwkID0gbWVyZ2UodGhpcy5yQ3RybC52YWx1ZUNoYW5nZXMsIHRoaXMuZ0N0cmwudmFsdWVDaGFuZ2VzLFxyXG4gICAgICB0aGlzLmJDdHJsLnZhbHVlQ2hhbmdlcywgdGhpcy5hQ3RybC52YWx1ZUNoYW5nZXMpO1xyXG4gICAgcmdiYUN0cmwkLnBpcGUodGFrZVVudGlsKHRoaXMuX2Rlc3Ryb3llZCksIGRlYm91bmNlVGltZSg0MDApLCBkaXN0aW5jdFVudGlsQ2hhbmdlZCgpKVxyXG4gICAgICAuc3Vic2NyaWJlKF8gPT4ge1xyXG4gICAgICAgIGNvbnN0IGNvbG9yID0gbmV3IENvbG9yKE51bWJlcih0aGlzLnJDdHJsLnZhbHVlKSxcclxuICAgICAgICAgIE51bWJlcih0aGlzLmdDdHJsLnZhbHVlKSwgTnVtYmVyKHRoaXMuYkN0cmwudmFsdWUpLCBOdW1iZXIodGhpcy5hQ3RybC52YWx1ZSkpO1xyXG4gICAgICAgIHRoaXMuZW1pdENoYW5nZShjb2xvcik7XHJcbiAgICAgIH0pO1xyXG5cclxuICAgIGNvbnN0IGhleEN0cmwkID0gdGhpcy5oZXhDdHJsLnZhbHVlQ2hhbmdlcztcclxuICAgIGhleEN0cmwkLnBpcGUodGFrZVVudGlsKHRoaXMuX2Rlc3Ryb3llZCksIGRlYm91bmNlVGltZSg0MDApLCBkaXN0aW5jdFVudGlsQ2hhbmdlZCgpKVxyXG4gICAgICAuc3Vic2NyaWJlKGhleCA9PiB7XHJcbiAgICAgICAgY29uc3Qgb2JqID0gc3RyaW5nSW5wdXRUb09iamVjdChoZXgpO1xyXG4gICAgICAgIGlmIChvYmogIT0gbnVsbCkge1xyXG4gICAgICAgICAgY29uc3QgY29sb3IgPSBuZXcgQ29sb3Iob2JqLnIsIG9iai5nLCBvYmouYiwgb2JqLmEpO1xyXG4gICAgICAgICAgdGhpcy5lbWl0Q2hhbmdlKGNvbG9yKTtcclxuICAgICAgICB9XHJcbiAgICAgIH0pXHJcbiAgfVxyXG5cclxuICBuZ09uQ2hhbmdlcyhjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKTogdm9pZCB7XHJcbiAgICBpZiAoY2hhbmdlcy5jb2xvciAmJiBjaGFuZ2VzLmNvbG9yLmN1cnJlbnRWYWx1ZSkge1xyXG4gICAgICB0aGlzLnVwZGF0ZUZvcm0oY2hhbmdlcy5jb2xvci5jdXJyZW50VmFsdWUpO1xyXG4gICAgICBpZiAodGhpcy5fcmVzZXRCYXNlQ29sb3IpIHtcclxuICAgICAgICB0aGlzLl9iYXNlQ29sb3IgPSBjaGFuZ2VzLmNvbG9yLmN1cnJlbnRWYWx1ZTtcclxuICAgICAgfVxyXG5cclxuICAgICAgdGhpcy5fcmVzZXRCYXNlQ29sb3IgPSB0cnVlO1xyXG5cclxuICAgICAgaWYgKCFjaGFuZ2VzLmNvbG9yLmZpcnN0Q2hhbmdlKSB7XHJcbiAgICAgICAgdGhpcy5kcmF3KCk7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcblxyXG4gIHByaXZhdGUgdXBkYXRlRm9ybSh2YWw6IENvbG9yKTogdm9pZCB7XHJcbiAgICBjb25zdCBjb25maWcgPSB7IGVtaXRFdmVudDogZmFsc2UgfTtcclxuICAgIHRoaXMuckN0cmwuc2V0VmFsdWUodmFsLnIsIGNvbmZpZyk7XHJcbiAgICB0aGlzLmdDdHJsLnNldFZhbHVlKHZhbC5nLCBjb25maWcpO1xyXG4gICAgdGhpcy5iQ3RybC5zZXRWYWx1ZSh2YWwuYiwgY29uZmlnKTtcclxuICAgIHRoaXMuYUN0cmwuc2V0VmFsdWUodmFsLmEsIGNvbmZpZyk7XHJcbiAgICB0aGlzLmhleEN0cmwuc2V0VmFsdWUodmFsLmhleCwgY29uZmlnKTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyByZWRyYXdJbmRpY2F0b3IoeDogbnVtYmVyLCB5OiBudW1iZXIpIHtcclxuICAgIHRoaXMuY3R4LmJlZ2luUGF0aCgpO1xyXG4gICAgdGhpcy5jdHguc3Ryb2tlU3R5bGUgPSAnd2hpdGUnO1xyXG4gICAgdGhpcy5jdHguYXJjKHgsIHksIFJBRElVU19OT0IsIDAsIDIgKiBNYXRoLlBJLCBmYWxzZSk7XHJcbiAgICB0aGlzLmN0eC5zdHJva2UoKTtcclxuICAgIHRoaXMuY3R4LmNsb3NlUGF0aCgpO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGZpbGxHcmFkaWVudCgpIHtcclxuICAgIHRoaXMuY3R4LmZpbGxTdHlsZSA9IHRoaXMuX2Jhc2VDb2xvciA/IHRoaXMuX2Jhc2VDb2xvci5yZ2JhIDogJ3JnYmEoMjU1LDI1NSwyNTUsMSknO1xyXG4gICAgdGhpcy5jdHguZmlsbFJlY3QoMCwgMCwgdGhpcy53aWR0aCwgdGhpcy5oZWlnaHQpO1xyXG5cclxuICAgIGNvbnN0IGdyZFdoaXRlID0gdGhpcy5jdHguY3JlYXRlTGluZWFyR3JhZGllbnQoMCwgMCwgdGhpcy53aWR0aCwgMCk7XHJcbiAgICBncmRXaGl0ZS5hZGRDb2xvclN0b3AoMCwgJ3JnYmEoMjU1LDI1NSwyNTUsMSknKTtcclxuICAgIGdyZFdoaXRlLmFkZENvbG9yU3RvcCgxLCAncmdiYSgyNTUsMjU1LDI1NSwwKScpO1xyXG4gICAgdGhpcy5jdHguZmlsbFN0eWxlID0gZ3JkV2hpdGU7XHJcbiAgICB0aGlzLmN0eC5maWxsUmVjdCgwLCAwLCB0aGlzLndpZHRoLCB0aGlzLmhlaWdodCk7XHJcblxyXG4gICAgY29uc3QgZ3JkQmxhY2sgPSB0aGlzLmN0eC5jcmVhdGVMaW5lYXJHcmFkaWVudCgwLCAwLCAwLCB0aGlzLmhlaWdodCk7XHJcbiAgICBncmRCbGFjay5hZGRDb2xvclN0b3AoMCwgJ3JnYmEoMCwwLDAsMCknKTtcclxuICAgIGdyZEJsYWNrLmFkZENvbG9yU3RvcCgxLCAncmdiYSgwLDAsMCwxKScpO1xyXG4gICAgdGhpcy5jdHguZmlsbFN0eWxlID0gZ3JkQmxhY2s7XHJcbiAgICB0aGlzLmN0eC5maWxsUmVjdCgwLCAwLCB0aGlzLndpZHRoLCB0aGlzLmhlaWdodCk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgb25TbGlkZXJDb2xvckNoYW5nZWQoYzogQ29sb3IpIHtcclxuICAgIHRoaXMuX2Jhc2VDb2xvciA9IGM7XHJcbiAgICB0aGlzLmNvbG9yID0gYztcclxuICAgIHRoaXMuZmlsbEdyYWRpZW50KCk7XHJcbiAgICB0aGlzLmVtaXRDaGFuZ2UoYyk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgY2hhbmdlQ29sb3IoZTogTW91c2VFdmVudCk6IHZvaWQge1xyXG4gICAgdGhpcy54ID0gZS5vZmZzZXRYO1xyXG4gICAgdGhpcy55ID0gZS5vZmZzZXRZO1xyXG4gICAgdGhpcy5fcmVzZXRCYXNlQ29sb3IgPSBmYWxzZTtcclxuICAgIHRoaXMuZHJhdygpO1xyXG4gICAgY29uc3QgeyByLCBnLCBiIH0gPSBnZXRDb2xvckF0UG9zaXRpb24odGhpcy5jdHgsIGUub2Zmc2V0WCwgZS5vZmZzZXRZKTtcclxuICAgIHRoaXMuZW1pdENoYW5nZShuZXcgQ29sb3IociwgZywgYikpO1xyXG4gIH1cclxuXHJcbn1cclxuIl19

@@ -88,2 +88,2 @@ /**

}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29sb3Itc2xpZGVyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NvbG9yLXBpY2tlci9zcmMvbGliL2NvbXBvbmVudHMvY29sb3ItY2FudmFzL2NvbG9yLXNsaWRlci9jb2xvci1zbGlkZXIuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBQUEsT0FBTyxFQUFFLFNBQVMsRUFBZ0MsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ2hGLE9BQU8sRUFBRSxLQUFLLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUN4QyxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUN0RCxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQU83RCxNQUFNLE9BQU8sMEJBQTJCLFNBQVEscUJBQXFCOzs7O0lBRW5FLFlBQXNCLElBQVk7UUFDaEMsS0FBSyxDQUFDLElBQUksRUFBQyxhQUFhLENBQUMsQ0FBQztRQUROLFNBQUksR0FBSixJQUFJLENBQVE7SUFFbEMsQ0FBQzs7OztJQUVELFFBQVE7SUFFUixDQUFDOzs7O0lBRUQsZUFBZTtRQUNiLEtBQUssQ0FBQyxlQUFlLEVBQUUsQ0FBQztJQUMxQixDQUFDOzs7O0lBRU0sWUFBWTs7Y0FDWCxHQUFHLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxvQkFBb0IsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxJQUFJLENBQUMsTUFBTSxDQUFDO1FBQy9ELEdBQUcsQ0FBQyxZQUFZLENBQUMsQ0FBQyxFQUFFLG9CQUFvQixDQUFDLENBQUM7UUFDMUMsR0FBRyxDQUFDLFlBQVksQ0FBQyxJQUFJLEVBQUUsc0JBQXNCLENBQUMsQ0FBQztRQUMvQyxHQUFHLENBQUMsWUFBWSxDQUFDLElBQUksRUFBRSxvQkFBb0IsQ0FBQyxDQUFDO1FBQzdDLEdBQUcsQ0FBQyxZQUFZLENBQUMsSUFBSSxFQUFFLHNCQUFzQixDQUFDLENBQUM7UUFDL0MsR0FBRyxDQUFDLFlBQVksQ0FBQyxJQUFJLEVBQUUsb0JBQW9CLENBQUMsQ0FBQztRQUM3QyxHQUFHLENBQUMsWUFBWSxDQUFDLElBQUksRUFBRSxzQkFBc0IsQ0FBQyxDQUFDO1FBQy9DLEdBQUcsQ0FBQyxZQUFZLENBQUMsQ0FBQyxFQUFFLG9CQUFvQixDQUFDLENBQUM7UUFFMUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxTQUFTLEdBQUcsR0FBRyxDQUFDO1FBQ3pCLElBQUksQ0FBQyxHQUFHLENBQUMsSUFBSSxFQUFFLENBQUM7SUFDbEIsQ0FBQzs7Ozs7O0lBRU0sZUFBZSxDQUFDLENBQVMsRUFBRSxDQUFTO1FBQ3pDLElBQUksQ0FBQyxHQUFHLENBQUMsU0FBUyxFQUFFLENBQUM7UUFDckIsSUFBSSxDQUFDLEdBQUcsQ0FBQyxXQUFXLEdBQUcsT0FBTyxDQUFDO1FBQy9CLElBQUksQ0FBQyxHQUFHLENBQUMsU0FBUyxHQUFHLENBQUMsQ0FBQztRQUN2QixJQUFJLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxFQUFFLEdBQUcsRUFBRSxDQUFDLEVBQUUsQ0FBQyxHQUFHLElBQUksQ0FBQyxFQUFFLEVBQUUsS0FBSyxDQUFDLENBQUM7UUFDakQsSUFBSSxDQUFDLEdBQUcsQ0FBQyxNQUFNLEVBQUUsQ0FBQztRQUNsQixJQUFJLENBQUMsR0FBRyxDQUFDLFNBQVMsRUFBRSxDQUFDO0lBQ3ZCLENBQUM7Ozs7O0lBRU0sV0FBVyxDQUFDLENBQWE7UUFDOUIsSUFBSSxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsT0FBTyxDQUFDO1FBQ25CLElBQUksQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLE9BQU8sQ0FBQztRQUNuQixJQUFJLENBQUMsSUFBSSxFQUFFLENBQUM7Y0FDTixFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLEdBQUcsa0JBQWtCLENBQUMsSUFBSSxDQUFDLEdBQUcsRUFBRSxDQUFDLENBQUMsT0FBTyxFQUFFLENBQUMsQ0FBQyxPQUFPLENBQUM7UUFDdEUsSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLEtBQUssQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDdEMsQ0FBQzs7O1lBaERGLFNBQVMsU0FBQztnQkFDVCxRQUFRLEVBQUUsc0JBQXNCO2dCQUNoQyx5S0FBNEM7O2FBRTdDOzs7O1lBVGlELE1BQU07Ozs7Ozs7SUFZMUMsMENBQXNCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBPbkluaXQsIE91dHB1dCwgRXZlbnRFbWl0dGVyLCBOZ1pvbmUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgQ29sb3IgfSBmcm9tICcuLi8uLi8uLi9tb2RlbHMnO1xyXG5pbXBvcnQgeyBnZXRDb2xvckF0UG9zaXRpb24gfSBmcm9tICcuLi8uLi8uLi9oZWxwZXJzJztcclxuaW1wb3J0IHsgTmd4TWF0QmFzZUNvbG9yQ2FudmFzIH0gZnJvbSAnLi4vYmFzZS1jb2xvci1jYW52YXMnO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICduZ3gtbWF0LWNvbG9yLXNsaWRlcicsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL2NvbG9yLXNsaWRlci5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmxzOiBbJy4vY29sb3Itc2xpZGVyLmNvbXBvbmVudC5zY3NzJ11cclxufSlcclxuZXhwb3J0IGNsYXNzIE5neE1hdENvbG9yU2xpZGVyQ29tcG9uZW50IGV4dGVuZHMgTmd4TWF0QmFzZUNvbG9yQ2FudmFzIGltcGxlbWVudHMgT25Jbml0IHtcclxuXHJcbiAgY29uc3RydWN0b3IocHJvdGVjdGVkIHpvbmU6IE5nWm9uZSkge1xyXG4gICAgc3VwZXIoem9uZSwnY29sb3Itc3RyaXAnKTtcclxuICB9XHJcblxyXG4gIG5nT25Jbml0KCkge1xyXG5cclxuICB9XHJcblxyXG4gIG5nQWZ0ZXJWaWV3SW5pdCgpOiB2b2lkIHtcclxuICAgIHN1cGVyLm5nQWZ0ZXJWaWV3SW5pdCgpO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGZpbGxHcmFkaWVudCgpIHtcclxuICAgIGNvbnN0IGdyZCA9IHRoaXMuY3R4LmNyZWF0ZUxpbmVhckdyYWRpZW50KDAsIDAsIDAsIHRoaXMuaGVpZ2h0KTtcclxuICAgIGdyZC5hZGRDb2xvclN0b3AoMCwgJ3JnYmEoMjU1LCAwLCAwLCAxKScpO1xyXG4gICAgZ3JkLmFkZENvbG9yU3RvcCgwLjE3LCAncmdiYSgyNTUsIDI1NSwgMCwgMSknKTtcclxuICAgIGdyZC5hZGRDb2xvclN0b3AoMC4zNCwgJ3JnYmEoMCwgMjU1LCAwLCAxKScpO1xyXG4gICAgZ3JkLmFkZENvbG9yU3RvcCgwLjUxLCAncmdiYSgwLCAyNTUsIDI1NSwgMSknKTtcclxuICAgIGdyZC5hZGRDb2xvclN0b3AoMC42OCwgJ3JnYmEoMCwgMCwgMjU1LCAxKScpO1xyXG4gICAgZ3JkLmFkZENvbG9yU3RvcCgwLjg1LCAncmdiYSgyNTUsIDAsIDI1NSwgMSknKTtcclxuICAgIGdyZC5hZGRDb2xvclN0b3AoMSwgJ3JnYmEoMjU1LCAwLCAwLCAxKScpO1xyXG5cclxuICAgIHRoaXMuY3R4LmZpbGxTdHlsZSA9IGdyZDtcclxuICAgIHRoaXMuY3R4LmZpbGwoKTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyByZWRyYXdJbmRpY2F0b3IoeDogbnVtYmVyLCB5OiBudW1iZXIpIHtcclxuICAgIHRoaXMuY3R4LmJlZ2luUGF0aCgpO1xyXG4gICAgdGhpcy5jdHguc3Ryb2tlU3R5bGUgPSAnd2hpdGUnO1xyXG4gICAgdGhpcy5jdHgubGluZVdpZHRoID0gMjtcclxuICAgIHRoaXMuY3R4LmFyYyg3LjUsIHksIDcuNSwgMCwgMiAqIE1hdGguUEksIGZhbHNlKTtcclxuICAgIHRoaXMuY3R4LnN0cm9rZSgpO1xyXG4gICAgdGhpcy5jdHguY2xvc2VQYXRoKCk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgY2hhbmdlQ29sb3IoZTogTW91c2VFdmVudCkge1xyXG4gICAgdGhpcy54ID0gZS5vZmZzZXRYO1xyXG4gICAgdGhpcy55ID0gZS5vZmZzZXRZO1xyXG4gICAgdGhpcy5kcmF3KCk7XHJcbiAgICBjb25zdCB7IHIsIGcsIGIgfSA9IGdldENvbG9yQXRQb3NpdGlvbih0aGlzLmN0eCwgZS5vZmZzZXRYLCBlLm9mZnNldFkpO1xyXG4gICAgdGhpcy5lbWl0Q2hhbmdlKG5ldyBDb2xvcihyLCBnLCBiKSk7XHJcbiAgfVxyXG5cclxuXHJcbn1cclxuIl19
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29sb3Itc2xpZGVyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIuLi8uLi8uLi8uLi9wcm9qZWN0cy9jb2xvci1waWNrZXIvc3JjLyIsInNvdXJjZXMiOlsibGliL2NvbXBvbmVudHMvY29sb3ItY2FudmFzL2NvbG9yLXNsaWRlci9jb2xvci1zbGlkZXIuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBQUEsT0FBTyxFQUFFLFNBQVMsRUFBZ0MsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ2hGLE9BQU8sRUFBRSxLQUFLLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUN4QyxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUN0RCxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQU83RCxNQUFNLE9BQU8sMEJBQTJCLFNBQVEscUJBQXFCOzs7O0lBRW5FLFlBQXNCLElBQVk7UUFDaEMsS0FBSyxDQUFDLElBQUksRUFBQyxhQUFhLENBQUMsQ0FBQztRQUROLFNBQUksR0FBSixJQUFJLENBQVE7SUFFbEMsQ0FBQzs7OztJQUVELFFBQVE7SUFFUixDQUFDOzs7O0lBRUQsZUFBZTtRQUNiLEtBQUssQ0FBQyxlQUFlLEVBQUUsQ0FBQztJQUMxQixDQUFDOzs7O0lBRU0sWUFBWTs7Y0FDWCxHQUFHLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxvQkFBb0IsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxJQUFJLENBQUMsTUFBTSxDQUFDO1FBQy9ELEdBQUcsQ0FBQyxZQUFZLENBQUMsQ0FBQyxFQUFFLG9CQUFvQixDQUFDLENBQUM7UUFDMUMsR0FBRyxDQUFDLFlBQVksQ0FBQyxJQUFJLEVBQUUsc0JBQXNCLENBQUMsQ0FBQztRQUMvQyxHQUFHLENBQUMsWUFBWSxDQUFDLElBQUksRUFBRSxvQkFBb0IsQ0FBQyxDQUFDO1FBQzdDLEdBQUcsQ0FBQyxZQUFZLENBQUMsSUFBSSxFQUFFLHNCQUFzQixDQUFDLENBQUM7UUFDL0MsR0FBRyxDQUFDLFlBQVksQ0FBQyxJQUFJLEVBQUUsb0JBQW9CLENBQUMsQ0FBQztRQUM3QyxHQUFHLENBQUMsWUFBWSxDQUFDLElBQUksRUFBRSxzQkFBc0IsQ0FBQyxDQUFDO1FBQy9DLEdBQUcsQ0FBQyxZQUFZLENBQUMsQ0FBQyxFQUFFLG9CQUFvQixDQUFDLENBQUM7UUFFMUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxTQUFTLEdBQUcsR0FBRyxDQUFDO1FBQ3pCLElBQUksQ0FBQyxHQUFHLENBQUMsSUFBSSxFQUFFLENBQUM7SUFDbEIsQ0FBQzs7Ozs7O0lBRU0sZUFBZSxDQUFDLENBQVMsRUFBRSxDQUFTO1FBQ3pDLElBQUksQ0FBQyxHQUFHLENBQUMsU0FBUyxFQUFFLENBQUM7UUFDckIsSUFBSSxDQUFDLEdBQUcsQ0FBQyxXQUFXLEdBQUcsT0FBTyxDQUFDO1FBQy9CLElBQUksQ0FBQyxHQUFHLENBQUMsU0FBUyxHQUFHLENBQUMsQ0FBQztRQUN2QixJQUFJLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxFQUFFLEdBQUcsRUFBRSxDQUFDLEVBQUUsQ0FBQyxHQUFHLElBQUksQ0FBQyxFQUFFLEVBQUUsS0FBSyxDQUFDLENBQUM7UUFDakQsSUFBSSxDQUFDLEdBQUcsQ0FBQyxNQUFNLEVBQUUsQ0FBQztRQUNsQixJQUFJLENBQUMsR0FBRyxDQUFDLFNBQVMsRUFBRSxDQUFDO0lBQ3ZCLENBQUM7Ozs7O0lBRU0sV0FBVyxDQUFDLENBQWE7UUFDOUIsSUFBSSxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsT0FBTyxDQUFDO1FBQ25CLElBQUksQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLE9BQU8sQ0FBQztRQUNuQixJQUFJLENBQUMsSUFBSSxFQUFFLENBQUM7Y0FDTixFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLEdBQUcsa0JBQWtCLENBQUMsSUFBSSxDQUFDLEdBQUcsRUFBRSxDQUFDLENBQUMsT0FBTyxFQUFFLENBQUMsQ0FBQyxPQUFPLENBQUM7UUFDdEUsSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLEtBQUssQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDdEMsQ0FBQzs7O1lBaERGLFNBQVMsU0FBQztnQkFDVCxRQUFRLEVBQUUsc0JBQXNCO2dCQUNoQyx5S0FBNEM7O2FBRTdDOzs7O1lBVGlELE1BQU07Ozs7Ozs7SUFZMUMsMENBQXNCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBPbkluaXQsIE91dHB1dCwgRXZlbnRFbWl0dGVyLCBOZ1pvbmUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgQ29sb3IgfSBmcm9tICcuLi8uLi8uLi9tb2RlbHMnO1xyXG5pbXBvcnQgeyBnZXRDb2xvckF0UG9zaXRpb24gfSBmcm9tICcuLi8uLi8uLi9oZWxwZXJzJztcclxuaW1wb3J0IHsgTmd4TWF0QmFzZUNvbG9yQ2FudmFzIH0gZnJvbSAnLi4vYmFzZS1jb2xvci1jYW52YXMnO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICduZ3gtbWF0LWNvbG9yLXNsaWRlcicsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL2NvbG9yLXNsaWRlci5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmxzOiBbJy4vY29sb3Itc2xpZGVyLmNvbXBvbmVudC5zY3NzJ11cclxufSlcclxuZXhwb3J0IGNsYXNzIE5neE1hdENvbG9yU2xpZGVyQ29tcG9uZW50IGV4dGVuZHMgTmd4TWF0QmFzZUNvbG9yQ2FudmFzIGltcGxlbWVudHMgT25Jbml0IHtcclxuXHJcbiAgY29uc3RydWN0b3IocHJvdGVjdGVkIHpvbmU6IE5nWm9uZSkge1xyXG4gICAgc3VwZXIoem9uZSwnY29sb3Itc3RyaXAnKTtcclxuICB9XHJcblxyXG4gIG5nT25Jbml0KCkge1xyXG5cclxuICB9XHJcblxyXG4gIG5nQWZ0ZXJWaWV3SW5pdCgpOiB2b2lkIHtcclxuICAgIHN1cGVyLm5nQWZ0ZXJWaWV3SW5pdCgpO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGZpbGxHcmFkaWVudCgpIHtcclxuICAgIGNvbnN0IGdyZCA9IHRoaXMuY3R4LmNyZWF0ZUxpbmVhckdyYWRpZW50KDAsIDAsIDAsIHRoaXMuaGVpZ2h0KTtcclxuICAgIGdyZC5hZGRDb2xvclN0b3AoMCwgJ3JnYmEoMjU1LCAwLCAwLCAxKScpO1xyXG4gICAgZ3JkLmFkZENvbG9yU3RvcCgwLjE3LCAncmdiYSgyNTUsIDI1NSwgMCwgMSknKTtcclxuICAgIGdyZC5hZGRDb2xvclN0b3AoMC4zNCwgJ3JnYmEoMCwgMjU1LCAwLCAxKScpO1xyXG4gICAgZ3JkLmFkZENvbG9yU3RvcCgwLjUxLCAncmdiYSgwLCAyNTUsIDI1NSwgMSknKTtcclxuICAgIGdyZC5hZGRDb2xvclN0b3AoMC42OCwgJ3JnYmEoMCwgMCwgMjU1LCAxKScpO1xyXG4gICAgZ3JkLmFkZENvbG9yU3RvcCgwLjg1LCAncmdiYSgyNTUsIDAsIDI1NSwgMSknKTtcclxuICAgIGdyZC5hZGRDb2xvclN0b3AoMSwgJ3JnYmEoMjU1LCAwLCAwLCAxKScpO1xyXG5cclxuICAgIHRoaXMuY3R4LmZpbGxTdHlsZSA9IGdyZDtcclxuICAgIHRoaXMuY3R4LmZpbGwoKTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyByZWRyYXdJbmRpY2F0b3IoeDogbnVtYmVyLCB5OiBudW1iZXIpIHtcclxuICAgIHRoaXMuY3R4LmJlZ2luUGF0aCgpO1xyXG4gICAgdGhpcy5jdHguc3Ryb2tlU3R5bGUgPSAnd2hpdGUnO1xyXG4gICAgdGhpcy5jdHgubGluZVdpZHRoID0gMjtcclxuICAgIHRoaXMuY3R4LmFyYyg3LjUsIHksIDcuNSwgMCwgMiAqIE1hdGguUEksIGZhbHNlKTtcclxuICAgIHRoaXMuY3R4LnN0cm9rZSgpO1xyXG4gICAgdGhpcy5jdHguY2xvc2VQYXRoKCk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgY2hhbmdlQ29sb3IoZTogTW91c2VFdmVudCkge1xyXG4gICAgdGhpcy54ID0gZS5vZmZzZXRYO1xyXG4gICAgdGhpcy55ID0gZS5vZmZzZXRZO1xyXG4gICAgdGhpcy5kcmF3KCk7XHJcbiAgICBjb25zdCB7IHIsIGcsIGIgfSA9IGdldENvbG9yQXRQb3NpdGlvbih0aGlzLmN0eCwgZS5vZmZzZXRYLCBlLm9mZnNldFkpO1xyXG4gICAgdGhpcy5lbWl0Q2hhbmdlKG5ldyBDb2xvcihyLCBnLCBiKSk7XHJcbiAgfVxyXG5cclxuXHJcbn1cclxuIl19

@@ -66,2 +66,2 @@ /**

}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29sb3ItY29sbGVjdGlvbi5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb2xvci1waWNrZXIvc3JjL2xpYi9jb21wb25lbnRzL2NvbG9yLWNvbGxlY3Rpb24vY29sb3ItY29sbGVjdGlvbi5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBVSxNQUFNLEVBQUUsaUJBQWlCLEVBQUUsS0FBSyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ2xHLE9BQU8sRUFBRSxLQUFLLEVBQUUsTUFBTSxjQUFjLENBQUM7QUFDckMsT0FBTyxFQUFFLFlBQVksRUFBRSxtQkFBbUIsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQVdsRSxNQUFNLE9BQU8sOEJBQThCO0lBZ0J6QztRQWRVLGlCQUFZLEdBQXdCLElBQUksWUFBWSxFQUFTLENBQUM7UUFXeEUsWUFBTyxHQUFhLFlBQVksQ0FBQyxLQUFLLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDO1FBQzdDLFlBQU8sR0FBYSxZQUFZLENBQUMsS0FBSyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQztJQUU5QixDQUFDOzs7OztJQVpqQixJQUNJLEtBQUssQ0FBQyxDQUFRO1FBQ2hCLElBQUksQ0FBQyxFQUFFO1lBQ0wsSUFBSSxDQUFDLGFBQWEsR0FBRyxDQUFDLENBQUMsV0FBVyxFQUFFLENBQUM7U0FDdEM7SUFDSCxDQUFDOzs7O0lBU0QsUUFBUTtJQUNSLENBQUM7Ozs7O0lBRUQsTUFBTSxDQUFDLEdBQVc7UUFDaEIsSUFBSSxDQUFDLGFBQWEsR0FBRyxHQUFHLENBQUM7Y0FDbkIsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsR0FBRyxtQkFBbUIsQ0FBQyxHQUFHLENBQUM7UUFDL0MsSUFBSSxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsSUFBSSxLQUFLLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUNoRCxDQUFDOzs7WUFsQ0YsU0FBUyxTQUFDO2dCQUNULFFBQVEsRUFBRSwwQkFBMEI7Z0JBQ3BDLGtkQUFnRDtnQkFFaEQsYUFBYSxFQUFFLGlCQUFpQixDQUFDLElBQUk7Z0JBQ3JDLElBQUksRUFBRTtvQkFDSixPQUFPLEVBQUUsMEJBQTBCO2lCQUNwQzs7YUFDRjs7Ozs7MkJBR0UsTUFBTTtvQkFFTixLQUFLOzs7O0lBRk4sc0RBQXdFOztJQVN4RSx1REFBc0I7O0lBRXRCLGlEQUE2Qzs7SUFDN0MsaURBQThDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBFdmVudEVtaXR0ZXIsIE9uSW5pdCwgT3V0cHV0LCBWaWV3RW5jYXBzdWxhdGlvbiwgSW5wdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgQ29sb3IgfSBmcm9tICcuLi8uLi9tb2RlbHMnO1xyXG5pbXBvcnQgeyBCQVNJQ19DT0xPUlMsIHN0cmluZ0lucHV0VG9PYmplY3QgfSBmcm9tICcuLi8uLi9oZWxwZXJzJztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnbmd4LW1hdC1jb2xvci1jb2xsZWN0aW9uJyxcclxuICB0ZW1wbGF0ZVVybDogJy4vY29sb3ItY29sbGVjdGlvbi5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmxzOiBbJy4vY29sb3ItY29sbGVjdGlvbi5jb21wb25lbnQuc2NzcyddLFxyXG4gIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXHJcbiAgaG9zdDoge1xyXG4gICAgJ2NsYXNzJzogJ25neC1tYXQtY29sb3ItY29sbGVjdGlvbidcclxuICB9XHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBOZ3hNYXRDb2xvckNvbGxlY3Rpb25Db21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xyXG5cclxuICBAT3V0cHV0KCkgY29sb3JDaGFuZ2VkOiBFdmVudEVtaXR0ZXI8Q29sb3I+ID0gbmV3IEV2ZW50RW1pdHRlcjxDb2xvcj4oKTtcclxuXHJcbiAgQElucHV0KClcclxuICBzZXQgY29sb3IoYzogQ29sb3IpIHtcclxuICAgIGlmIChjKSB7XHJcbiAgICAgIHRoaXMuc2VsZWN0ZWRDb2xvciA9IGMudG9IZXhTdHJpbmcoKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHNlbGVjdGVkQ29sb3I6IHN0cmluZztcclxuXHJcbiAgY29sb3JzMTogc3RyaW5nW10gPSBCQVNJQ19DT0xPUlMuc2xpY2UoMCwgOCk7XHJcbiAgY29sb3JzMjogc3RyaW5nW10gPSBCQVNJQ19DT0xPUlMuc2xpY2UoOCwgMTYpO1xyXG5cclxuICBjb25zdHJ1Y3RvcigpIHsgfVxyXG5cclxuICBuZ09uSW5pdCgpIHtcclxuICB9XHJcblxyXG4gIHNlbGVjdChoZXg6IHN0cmluZykge1xyXG4gICAgdGhpcy5zZWxlY3RlZENvbG9yID0gaGV4O1xyXG4gICAgY29uc3QgeyByLCBnLCBiLCBhIH0gPSBzdHJpbmdJbnB1dFRvT2JqZWN0KGhleCk7XHJcbiAgICB0aGlzLmNvbG9yQ2hhbmdlZC5lbWl0KG5ldyBDb2xvcihyLCBnLCBiLCBhKSk7XHJcbiAgfVxyXG5cclxufVxyXG4iXX0=
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29sb3ItY29sbGVjdGlvbi5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiLi4vLi4vLi4vLi4vcHJvamVjdHMvY29sb3ItcGlja2VyL3NyYy8iLCJzb3VyY2VzIjpbImxpYi9jb21wb25lbnRzL2NvbG9yLWNvbGxlY3Rpb24vY29sb3ItY29sbGVjdGlvbi5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBVSxNQUFNLEVBQUUsaUJBQWlCLEVBQUUsS0FBSyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ2xHLE9BQU8sRUFBRSxLQUFLLEVBQUUsTUFBTSxjQUFjLENBQUM7QUFDckMsT0FBTyxFQUFFLFlBQVksRUFBRSxtQkFBbUIsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQVdsRSxNQUFNLE9BQU8sOEJBQThCO0lBZ0J6QztRQWRVLGlCQUFZLEdBQXdCLElBQUksWUFBWSxFQUFTLENBQUM7UUFXeEUsWUFBTyxHQUFhLFlBQVksQ0FBQyxLQUFLLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDO1FBQzdDLFlBQU8sR0FBYSxZQUFZLENBQUMsS0FBSyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQztJQUU5QixDQUFDOzs7OztJQVpqQixJQUNJLEtBQUssQ0FBQyxDQUFRO1FBQ2hCLElBQUksQ0FBQyxFQUFFO1lBQ0wsSUFBSSxDQUFDLGFBQWEsR0FBRyxDQUFDLENBQUMsV0FBVyxFQUFFLENBQUM7U0FDdEM7SUFDSCxDQUFDOzs7O0lBU0QsUUFBUTtJQUNSLENBQUM7Ozs7O0lBRUQsTUFBTSxDQUFDLEdBQVc7UUFDaEIsSUFBSSxDQUFDLGFBQWEsR0FBRyxHQUFHLENBQUM7Y0FDbkIsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsR0FBRyxtQkFBbUIsQ0FBQyxHQUFHLENBQUM7UUFDL0MsSUFBSSxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsSUFBSSxLQUFLLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUNoRCxDQUFDOzs7WUFsQ0YsU0FBUyxTQUFDO2dCQUNULFFBQVEsRUFBRSwwQkFBMEI7Z0JBQ3BDLGtkQUFnRDtnQkFFaEQsYUFBYSxFQUFFLGlCQUFpQixDQUFDLElBQUk7Z0JBQ3JDLElBQUksRUFBRTtvQkFDSixPQUFPLEVBQUUsMEJBQTBCO2lCQUNwQzs7YUFDRjs7Ozs7MkJBR0UsTUFBTTtvQkFFTixLQUFLOzs7O0lBRk4sc0RBQXdFOztJQVN4RSx1REFBc0I7O0lBRXRCLGlEQUE2Qzs7SUFDN0MsaURBQThDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBFdmVudEVtaXR0ZXIsIE9uSW5pdCwgT3V0cHV0LCBWaWV3RW5jYXBzdWxhdGlvbiwgSW5wdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgQ29sb3IgfSBmcm9tICcuLi8uLi9tb2RlbHMnO1xyXG5pbXBvcnQgeyBCQVNJQ19DT0xPUlMsIHN0cmluZ0lucHV0VG9PYmplY3QgfSBmcm9tICcuLi8uLi9oZWxwZXJzJztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnbmd4LW1hdC1jb2xvci1jb2xsZWN0aW9uJyxcclxuICB0ZW1wbGF0ZVVybDogJy4vY29sb3ItY29sbGVjdGlvbi5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmxzOiBbJy4vY29sb3ItY29sbGVjdGlvbi5jb21wb25lbnQuc2NzcyddLFxyXG4gIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXHJcbiAgaG9zdDoge1xyXG4gICAgJ2NsYXNzJzogJ25neC1tYXQtY29sb3ItY29sbGVjdGlvbidcclxuICB9XHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBOZ3hNYXRDb2xvckNvbGxlY3Rpb25Db21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xyXG5cclxuICBAT3V0cHV0KCkgY29sb3JDaGFuZ2VkOiBFdmVudEVtaXR0ZXI8Q29sb3I+ID0gbmV3IEV2ZW50RW1pdHRlcjxDb2xvcj4oKTtcclxuXHJcbiAgQElucHV0KClcclxuICBzZXQgY29sb3IoYzogQ29sb3IpIHtcclxuICAgIGlmIChjKSB7XHJcbiAgICAgIHRoaXMuc2VsZWN0ZWRDb2xvciA9IGMudG9IZXhTdHJpbmcoKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHNlbGVjdGVkQ29sb3I6IHN0cmluZztcclxuXHJcbiAgY29sb3JzMTogc3RyaW5nW10gPSBCQVNJQ19DT0xPUlMuc2xpY2UoMCwgOCk7XHJcbiAgY29sb3JzMjogc3RyaW5nW10gPSBCQVNJQ19DT0xPUlMuc2xpY2UoOCwgMTYpO1xyXG5cclxuICBjb25zdHJ1Y3RvcigpIHsgfVxyXG5cclxuICBuZ09uSW5pdCgpIHtcclxuICB9XHJcblxyXG4gIHNlbGVjdChoZXg6IHN0cmluZykge1xyXG4gICAgdGhpcy5zZWxlY3RlZENvbG9yID0gaGV4O1xyXG4gICAgY29uc3QgeyByLCBnLCBiLCBhIH0gPSBzdHJpbmdJbnB1dFRvT2JqZWN0KGhleCk7XHJcbiAgICB0aGlzLmNvbG9yQ2hhbmdlZC5lbWl0KG5ldyBDb2xvcihyLCBnLCBiLCBhKSk7XHJcbiAgfVxyXG5cclxufVxyXG4iXX0=

@@ -48,2 +48,2 @@ /**

}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29sb3ItcGFsZXR0ZS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb2xvci1waWNrZXIvc3JjL2xpYi9jb21wb25lbnRzL2NvbG9yLXBhbGV0dGUvY29sb3ItcGFsZXR0ZS5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFVLGlCQUFpQixFQUFFLE1BQU0sRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ2xHLE9BQU8sRUFBRSxLQUFLLEVBQUUsTUFBTSxjQUFjLENBQUM7QUFXckMsTUFBTSxPQUFPLDJCQUEyQjtJQU10QztRQUpVLGlCQUFZLEdBQXdCLElBQUksWUFBWSxFQUFTLENBQUM7SUFJeEQsQ0FBQzs7OztJQUVqQixRQUFRO0lBQ1IsQ0FBQzs7Ozs7SUFFTSxrQkFBa0IsQ0FBQyxLQUFZO1FBQ3BDLElBQUksQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQ2hDLENBQUM7OztZQXRCRixTQUFTLFNBQUM7Z0JBQ1QsUUFBUSxFQUFFLHVCQUF1QjtnQkFDakMsa1BBQTJDO2dCQUUzQyxhQUFhLEVBQUUsaUJBQWlCLENBQUMsSUFBSTtnQkFDckMsSUFBSSxFQUFFO29CQUNKLE9BQU8sRUFBRSx1QkFBdUI7aUJBQ2pDOzthQUNGOzs7OzsyQkFHRSxNQUFNO29CQUVOLEtBQUs7Ozs7SUFGTixtREFBd0U7O0lBRXhFLDRDQUFzQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgT25Jbml0LCBWaWV3RW5jYXBzdWxhdGlvbiwgT3V0cHV0LCBFdmVudEVtaXR0ZXIsIElucHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IENvbG9yIH0gZnJvbSAnLi4vLi4vbW9kZWxzJztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnbmd4LW1hdC1jb2xvci1wYWxldHRlJyxcclxuICB0ZW1wbGF0ZVVybDogJ2NvbG9yLXBhbGV0dGUuY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsczogWydjb2xvci1wYWxldHRlLmNvbXBvbmVudC5zY3NzJ10sXHJcbiAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZSxcclxuICBob3N0OiB7XHJcbiAgICAnY2xhc3MnOiAnbmd4LW1hdC1jb2xvci1wYWxldHRlJ1xyXG4gIH1cclxufSlcclxuZXhwb3J0IGNsYXNzIE5neE1hdENvbG9yUGFsZXR0ZUNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XHJcblxyXG4gIEBPdXRwdXQoKSBjb2xvckNoYW5nZWQ6IEV2ZW50RW1pdHRlcjxDb2xvcj4gPSBuZXcgRXZlbnRFbWl0dGVyPENvbG9yPigpO1xyXG5cclxuICBASW5wdXQoKSBjb2xvcjogQ29sb3I7XHJcblxyXG4gIGNvbnN0cnVjdG9yKCkgeyB9XHJcblxyXG4gIG5nT25Jbml0KCkge1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGhhbmRsZUNvbG9yQ2hhbmdlZChjb2xvcjogQ29sb3IpIHtcclxuICAgIHRoaXMuY29sb3JDaGFuZ2VkLmVtaXQoY29sb3IpO1xyXG4gIH1cclxuXHJcbn1cclxuIl19
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29sb3ItcGFsZXR0ZS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiLi4vLi4vLi4vLi4vcHJvamVjdHMvY29sb3ItcGlja2VyL3NyYy8iLCJzb3VyY2VzIjpbImxpYi9jb21wb25lbnRzL2NvbG9yLXBhbGV0dGUvY29sb3ItcGFsZXR0ZS5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFVLGlCQUFpQixFQUFFLE1BQU0sRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ2xHLE9BQU8sRUFBRSxLQUFLLEVBQUUsTUFBTSxjQUFjLENBQUM7QUFXckMsTUFBTSxPQUFPLDJCQUEyQjtJQU10QztRQUpVLGlCQUFZLEdBQXdCLElBQUksWUFBWSxFQUFTLENBQUM7SUFJeEQsQ0FBQzs7OztJQUVqQixRQUFRO0lBQ1IsQ0FBQzs7Ozs7SUFFTSxrQkFBa0IsQ0FBQyxLQUFZO1FBQ3BDLElBQUksQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQ2hDLENBQUM7OztZQXRCRixTQUFTLFNBQUM7Z0JBQ1QsUUFBUSxFQUFFLHVCQUF1QjtnQkFDakMsa1BBQTJDO2dCQUUzQyxhQUFhLEVBQUUsaUJBQWlCLENBQUMsSUFBSTtnQkFDckMsSUFBSSxFQUFFO29CQUNKLE9BQU8sRUFBRSx1QkFBdUI7aUJBQ2pDOzthQUNGOzs7OzsyQkFHRSxNQUFNO29CQUVOLEtBQUs7Ozs7SUFGTixtREFBd0U7O0lBRXhFLDRDQUFzQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgT25Jbml0LCBWaWV3RW5jYXBzdWxhdGlvbiwgT3V0cHV0LCBFdmVudEVtaXR0ZXIsIElucHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IENvbG9yIH0gZnJvbSAnLi4vLi4vbW9kZWxzJztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnbmd4LW1hdC1jb2xvci1wYWxldHRlJyxcclxuICB0ZW1wbGF0ZVVybDogJ2NvbG9yLXBhbGV0dGUuY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsczogWydjb2xvci1wYWxldHRlLmNvbXBvbmVudC5zY3NzJ10sXHJcbiAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZSxcclxuICBob3N0OiB7XHJcbiAgICAnY2xhc3MnOiAnbmd4LW1hdC1jb2xvci1wYWxldHRlJ1xyXG4gIH1cclxufSlcclxuZXhwb3J0IGNsYXNzIE5neE1hdENvbG9yUGFsZXR0ZUNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XHJcblxyXG4gIEBPdXRwdXQoKSBjb2xvckNoYW5nZWQ6IEV2ZW50RW1pdHRlcjxDb2xvcj4gPSBuZXcgRXZlbnRFbWl0dGVyPENvbG9yPigpO1xyXG5cclxuICBASW5wdXQoKSBjb2xvcjogQ29sb3I7XHJcblxyXG4gIGNvbnN0cnVjdG9yKCkgeyB9XHJcblxyXG4gIG5nT25Jbml0KCkge1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGhhbmRsZUNvbG9yQ2hhbmdlZChjb2xvcjogQ29sb3IpIHtcclxuICAgIHRoaXMuY29sb3JDaGFuZ2VkLmVtaXQoY29sb3IpO1xyXG4gIH1cclxuXHJcbn1cclxuIl19

@@ -439,2 +439,2 @@ /**

}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29sb3ItaW5wdXQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY29sb3ItcGlja2VyL3NyYy9saWIvY29tcG9uZW50cy9jb2xvci1waWNrZXIvY29sb3ItaW5wdXQuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBQUEsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDOUQsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBQ25ELE9BQU8sRUFBRSxTQUFTLEVBQUUsVUFBVSxFQUFFLFlBQVksRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBcUIsUUFBUSxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNwSSxPQUFPLEVBQXlDLGFBQWEsRUFBRSxpQkFBaUIsRUFBNEMsVUFBVSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFFL0osT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FBQzVELE9BQU8sRUFBRSx3QkFBd0IsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQ25FLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDcEMsT0FBTyxFQUFFLDBCQUEwQixFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzNELE9BQU8sRUFBRSxLQUFLLEVBQUUsTUFBTSxjQUFjLENBQUM7QUFDckMsT0FBTyxFQUFFLFlBQVksRUFBbUIsaUJBQWlCLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNsRixPQUFPLEVBQUUsMEJBQTBCLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUV0RSxNQUFNLE9BQU8sMkJBQTJCOzs7OztJQUl0QyxZQUVTLE1BQThCLEVBRTlCLGFBQTBCO1FBRjFCLFdBQU0sR0FBTixNQUFNLENBQXdCO1FBRTlCLGtCQUFhLEdBQWIsYUFBYSxDQUFhO1FBQ2pD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OENBQXlDOztJQUV6Qyw0Q0FBdUI7Ozs7O0lBRXZCLDhDQUF1RDs7Ozs7SUFFdkQsb0RBQXVDOzs7OztJQUV2QyxxREFBaUQ7Ozs7OztJQUdqRCw0Q0FDeUI7Ozs7OztJQUd6QixpREFBZ0M7Ozs7O0lBRXBCLDZDQUFpRDs7Ozs7SUFDM0QsNENBQTRDOzs7OztJQUM1QywrQ0FBNkU7Ozs7O0lBQzdFLDBDQUE4QiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGNvZXJjZUJvb2xlYW5Qcm9wZXJ0eSB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9jb2VyY2lvbic7XHJcbmltcG9ydCB7IERPV05fQVJST1cgfSBmcm9tICdAYW5ndWxhci9jZGsva2V5Y29kZXMnO1xyXG5pbXBvcnQgeyBEaXJlY3RpdmUsIEVsZW1lbnRSZWYsIEV2ZW50RW1pdHRlciwgZm9yd2FyZFJlZiwgSW5qZWN0LCBJbnB1dCwgT25EZXN0cm95LCBPbkluaXQsIE9wdGlvbmFsLCBPdXRwdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgQWJzdHJhY3RDb250cm9sLCBDb250cm9sVmFsdWVBY2Nlc3NvciwgTkdfVkFMSURBVE9SUywgTkdfVkFMVUVfQUNDRVNTT1IsIFZhbGlkYXRpb25FcnJvcnMsIFZhbGlkYXRvciwgVmFsaWRhdG9yRm4sIFZhbGlkYXRvcnMgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XHJcbmltcG9ydCB7IFRoZW1lUGFsZXR0ZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2NvcmUnO1xyXG5pbXBvcnQgeyBNYXRGb3JtRmllbGQgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9mb3JtLWZpZWxkJztcclxuaW1wb3J0IHsgTUFUX0lOUFVUX1ZBTFVFX0FDQ0VTU09SIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvaW5wdXQnO1xyXG5pbXBvcnQgeyBTdWJzY3JpcHRpb24gfSBmcm9tICdyeGpzJztcclxuaW1wb3J0IHsgY3JlYXRlTWlzc2luZ0RhdGVJbXBsRXJyb3IgfSBmcm9tICcuLi8uLi9oZWxwZXJzJztcclxuaW1wb3J0IHsgQ29sb3IgfSBmcm9tICcuLi8uLi9tb2RlbHMnO1xyXG5pbXBvcnQgeyBDb2xvckFkYXB0ZXIsIE1hdENvbG9yRm9ybWF0cywgTUFUX0NPTE9SX0ZPUk1BVFMgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcyc7XHJcbmltcG9ydCB7IE5neE1hdENvbG9yUGlja2VyQ29tcG9uZW50IH0gZnJvbSAnLi9jb2xvci1waWNrZXIuY29tcG9uZW50JztcclxuXHJcbmV4cG9ydCBjbGFzcyBOZ3hNYXRDb2xvclBpY2tlcklucHV0RXZlbnQge1xyXG4gIC8qKiBUaGUgbmV3IHZhbHVlIGZvciB0aGUgdGFyZ2V0IGNvbG9ycGlja2VyIGlucHV0LiAqL1xyXG4gIHZhbHVlOiBDb2xvciB8IG51bGw7XHJcblxyXG4gIGNvbnN0cnVjdG9yKFxyXG4gICAgLyoqIFJlZmVyZW5jZSB0byB0aGUgY29sb3JwaWNrZXIgaW5wdXQgY29tcG9uZW50IHRoYXQgZW1pdHRlZCB0aGUgZXZlbnQuICovXHJcbiAgICBwdWJsaWMgdGFyZ2V0OiBOZ3hNYXRDb2xvclBpY2tlcklucHV0LFxyXG4gICAgLyoqIFJlZmVyZW5jZSB0byB0aGUgbmF0aXZlIGlucHV0IGVsZW1lbnQgYXNzb2NpYXRlZCB3aXRoIHRoZSBjb2xvcnBpY2tlciBpbnB1dC4gKi9cclxuICAgIHB1YmxpYyB0YXJnZXRFbGVtZW50OiBIVE1MRWxlbWVudCkge1xyXG4gICAgdGhpcy52YWx1ZSA9IHRoaXMudGFyZ2V0LnZhbHVlO1xyXG4gIH1cclxufVxyXG5cclxuXHJcbmV4cG9ydCBjb25zdCBNQVRfQ09MT1JQSUNLRVJfVkFMVUVfQUNDRVNTT1I6IGFueSA9IHtcclxuICBwcm92aWRlOiBOR19WQUxVRV9BQ0NFU1NPUixcclxuICB1c2VFeGlzdGluZzogZm9yd2FyZFJlZigoKSA9PiBOZ3hNYXRDb2xvclBpY2tlcklucHV0KSxcclxuICBtdWx0aTogdHJ1ZVxyXG59O1xyXG5cclxuXHJcbmV4cG9ydCBjb25zdCBNQVRfQ09MT1JQSUNLRVJfVkFMSURBVE9SUzogYW55ID0ge1xyXG4gIHByb3ZpZGU6IE5HX1ZBTElEQVRPUlMsXHJcbiAgdXNlRXhpc3Rpbmc6IGZvcndhcmRSZWYoKCkgPT4gTmd4TWF0Q29sb3JQaWNrZXJJbnB1dCksXHJcbiAgbXVsdGk6IHRydWVcclxufTtcclxuXHJcbkBEaXJlY3RpdmUoe1xyXG4gIHNlbGVjdG9yOiAnaW5wdXRbbmd4TWF0Q29sb3JQaWNrZXJdJyxcclxuICBwcm92aWRlcnM6IFtcclxuICAgIE1BVF9DT0xPUlBJQ0tFUl9WQUxVRV9BQ0NFU1NPUixcclxuICAgIE1BVF9DT0xPUlBJQ0tFUl9WQUxJREFUT1JTLFxyXG4gICAgeyBwcm92aWRlOiBNQVRfSU5QVVRfVkFMVUVfQUNDRVNTT1IsIHVzZUV4aXN0aW5nOiBOZ3hNYXRDb2xvclBpY2tlcklucHV0IH0sXHJcbiAgXSxcclxuICBob3N0OiB7XHJcbiAgICAnW2F0dHIuYXJpYS1oYXNwb3B1cF0nOiAnX3BpY2tlciA/IFwiZGlhbG9nXCIgOiBudWxsJyxcclxuICAgICdbYXR0ci5hcmlhLW93bnNdJzogJyhfcGlja2VyPy5vcGVuZWQgJiYgX3BpY2tlci5pZCkgfHwgbnVsbCcsXHJcbiAgICAnW2Rpc2FibGVkXSc6ICdkaXNhYmxlZCcsXHJcbiAgICAnKGlucHV0KSc6ICdfb25JbnB1dCgkZXZlbnQudGFyZ2V0LnZhbHVlKScsXHJcbiAgICAnKGNoYW5nZSknOiAnX29uQ2hhbmdlKCknLFxyXG4gICAgJyhibHVyKSc6ICdfb25CbHVyKCknLFxyXG4gICAgJyhrZXlkb3duKSc6ICdfb25LZXlkb3duKCRldmVudCknLFxyXG4gIH0sXHJcbiAgZXhwb3J0QXM6ICduZ3hNYXRDb2xvclBpY2tlcklucHV0JyxcclxufSlcclxuZXhwb3J0IGNsYXNzIE5neE1hdENvbG9yUGlja2VySW5wdXQgaW1wbGVtZW50cyBDb250cm9sVmFsdWVBY2Nlc3NvciwgT25Jbml0LCBPbkRlc3Ryb3ksIFZhbGlkYXRvciB7XHJcblxyXG4gIEBJbnB1dCgpXHJcbiAgc2V0IG5neE1hdENvbG9yUGlja2VyKHZhbHVlOiBOZ3hNYXRDb2xvclBpY2tlckNvbXBvbmVudCkge1xyXG4gICAgaWYgKCF2YWx1ZSkge1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcblxyXG4gICAgdGhpcy5fcGlja2VyID0gdmFsdWU7XHJcbiAgICB0aGlzLl9waWNrZXIucmVnaXN0ZXJJbnB1dCh0aGlzKTtcclxuICAgIHRoaXMuX3BpY2tlclN1YnNjcmlwdGlvbi51bnN1YnNjcmliZSgpO1xyXG5cclxuICAgIHRoaXMuX3BpY2tlclN1YnNjcmlwdGlvbiA9IHRoaXMuX3BpY2tlci5fc2VsZWN0ZWRDaGFuZ2VkLnN1YnNjcmliZSgoc2VsZWN0ZWQ6IENvbG9yKSA9PiB7XHJcbiAgICAgIHRoaXMudmFsdWUgPSBzZWxlY3RlZDtcclxuICAgICAgdGhpcy5fY3ZhT25DaGFuZ2Uoc2VsZWN0ZWQpO1xyXG4gICAgICB0aGlzLl9vblRvdWNoZWQoKTtcclxuICAgICAgdGhpcy5jb2xvcklucHV0LmVtaXQobmV3IE5neE1hdENvbG9yUGlja2VySW5wdXRFdmVudCh0aGlzLCB0aGlzLl9lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQpKTtcclxuICAgICAgdGhpcy5jb2xvckNoYW5nZS5lbWl0KG5ldyBOZ3hNYXRDb2xvclBpY2tlcklucHV0RXZlbnQodGhpcywgdGhpcy5fZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50KSk7XHJcbiAgICB9KTtcclxuICB9XHJcbiAgX3BpY2tlcjogTmd4TWF0Q29sb3JQaWNrZXJDb21wb25lbnQ7XHJcblxyXG4gIC8qKiBXaGV0aGVyIHRoZSBjb2xvcnBpY2tlci1pbnB1dCBpcyBkaXNhYmxlZC4gKi9cclxuICBASW5wdXQoKVxyXG4gIGdldCBkaXNhYmxlZCgpOiBib29sZWFuIHsgcmV0dXJuICEhdGhpcy5fZGlzYWJsZWQ7IH1cclxuICBzZXQgZGlzYWJsZWQodmFsdWU6IGJvb2xlYW4pIHtcclxuICAgIGNvbnN0IG5ld1ZhbHVlID0gY29lcmNlQm9vbGVhblByb3BlcnR5KHZhbHVlKTtcclxuICAgIGNvbnN0IGVsZW1lbnQgPSB0aGlzLl9lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQ7XHJcblxyXG4gICAgaWYgKHRoaXMuX2Rpc2FibGVkICE9PSBuZXdWYWx1ZSkge1xyXG4gICAgICB0aGlzLl9kaXNhYmxlZCA9IG5ld1ZhbHVlO1xyXG4gICAgICB0aGlzLl9kaXNhYmxlZENoYW5nZS5lbWl0KG5ld1ZhbHVlKTtcclxuICAgIH1cclxuXHJcbiAgICAvLyBXZSBuZWVkIHRvIG51bGwgY2hlY2sgdGhlIGBibHVyYCBtZXRob2QsIGJlY2F1c2UgaXQncyB1bmRlZmluZWQgZHVyaW5nIFNTUi5cclxuICAgIGlmIChuZXdWYWx1ZSAmJiBlbGVtZW50LmJsdXIpIHtcclxuICAgICAgLy8gTm9ybWFsbHksIG5hdGl2ZSBpbnB1dCBlbGVtZW50cyBhdXRvbWF0aWNhbGx5IGJsdXIgaWYgdGhleSB0dXJuIGRpc2FibGVkLiBUaGlzIGJlaGF2aW9yXHJcbiAgICAgIC8vIGlzIHByb2JsZW1hdGljLCBiZWNhdXNlIGl0IHdvdWxkIG1lYW4gdGhhdCBpdCB0cmlnZ2VycyBhbm90aGVyIGNoYW5nZSBkZXRlY3Rpb24gY3ljbGUsXHJcbiAgICAgIC8vIHdoaWNoIHRoZW4gY2F1c2VzIGEgY2hhbmdlZCBhZnRlciBjaGVja2VkIGVycm9yIGlmIHRoZSBpbnB1dCBlbGVtZW50IHdhcyBmb2N1c2VkIGJlZm9yZS5cclxuICAgICAgZWxlbWVudC5ibHVyKCk7XHJcbiAgICB9XHJcbiAgfVxyXG4gIHByaXZhdGUgX2Rpc2FibGVkOiBib29sZWFuO1xyXG5cclxuICAvKiogVGhlIHZhbHVlIG9mIHRoZSBpbnB1dC4gKi9cclxuICBASW5wdXQoKVxyXG4gIGdldCB2YWx1ZSgpOiBDb2xvciB8IG51bGwgeyByZXR1cm4gdGhpcy5fdmFsdWU7IH1cclxuICBzZXQgdmFsdWUodmFsdWU6IENvbG9yIHwgbnVsbCkge1xyXG4gICAgY29uc3Qgb2xkVmFsdWUgPSB0aGlzLnZhbHVlO1xyXG4gICAgdGhpcy5fdmFsdWUgPSB2YWx1ZTtcclxuICAgIHRoaXMuX2Zvcm1hdFZhbHVlKHZhbHVlKTtcclxuXHJcbiAgICBpZiAoIXRoaXMuX2FkYXB0ZXIuc2FtZUNvbG9yKG9sZFZhbHVlLCB2YWx1ZSkpIHtcclxuICAgICAgdGhpcy5fdmFsdWVDaGFuZ2UuZW1pdCh2YWx1ZSk7XHJcbiAgICB9XHJcblxyXG4gIH1cclxuICBwcml2YXRlIF92YWx1ZTogQ29sb3IgfCBudWxsO1xyXG5cclxuICAvKiogRW1pdHMgd2hlbiBhIGBjaGFuZ2VgIGV2ZW50IGlzIGZpcmVkIG9uIHRoaXMgYDxpbnB1dD5gLiAqL1xyXG4gIEBPdXRwdXQoKSByZWFkb25seSBjb2xvckNoYW5nZTogRXZlbnRFbWl0dGVyPE5neE1hdENvbG9yUGlja2VySW5wdXRFdmVudD4gPVxyXG4gICAgbmV3IEV2ZW50RW1pdHRlcjxOZ3hNYXRDb2xvclBpY2tlcklucHV0RXZlbnQ+KCk7XHJcblxyXG4gIC8qKiBFbWl0cyB3aGVuIGFuIGBpbnB1dGAgZXZlbnQgaXMgZmlyZWQgb24gdGhpcyBgPGlucHV0PmAuICovXHJcbiAgQE91dHB1dCgpIHJlYWRvbmx5IGNvbG9ySW5wdXQ6IEV2ZW50RW1pdHRlcjxOZ3hNYXRDb2xvclBpY2tlcklucHV0RXZlbnQ+ID1cclxuICAgIG5ldyBFdmVudEVtaXR0ZXI8Tmd4TWF0Q29sb3JQaWNrZXJJbnB1dEV2ZW50PigpO1xyXG5cclxuICAvKiogRW1pdHMgd2hlbiB0aGUgZGlzYWJsZWQgc3RhdGUgaGFzIGNoYW5nZWQgKi9cclxuICBfZGlzYWJsZWRDaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyPGJvb2xlYW4+KCk7XHJcblxyXG4gIC8qKiBFbWl0cyB3aGVuIHRoZSB2YWx1ZSBjaGFuZ2VzIChlaXRoZXIgZHVlIHRvIHVzZXIgaW5wdXQgb3IgcHJvZ3JhbW1hdGljIGNoYW5nZSkuICovXHJcbiAgX3ZhbHVlQ2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjxDb2xvcj4oKTtcclxuXHJcbiAgX29uVG91Y2hlZCA9ICgpID0+IHsgfTtcclxuXHJcbiAgcHJpdmF0ZSBfY3ZhT25DaGFuZ2U6ICh2YWx1ZTogYW55KSA9PiB2b2lkID0gKCkgPT4geyB9O1xyXG5cclxuICBwcml2YXRlIF92YWxpZGF0b3JPbkNoYW5nZSA9ICgpID0+IHsgfTtcclxuXHJcbiAgcHJpdmF0ZSBfcGlja2VyU3Vic2NyaXB0aW9uID0gU3Vic2NyaXB0aW9uLkVNUFRZO1xyXG5cclxuICAvKiogVGhlIGNvbWJpbmVkIGZvcm0gY29udHJvbCB2YWxpZGF0b3IgZm9yIHRoaXMgaW5wdXQuICovXHJcbiAgcHJpdmF0ZSBfdmFsaWRhdG9yOiBWYWxpZGF0b3JGbiB8IG51bGwgPVxyXG4gICAgVmFsaWRhdG9ycy5jb21wb3NlKFtdKTtcclxuXHJcbiAgLyoqIFdoZXRoZXIgdGhlIGxhc3QgdmFsdWUgc2V0IG9uIHRoZSBpbnB1dCB3YXMgdmFsaWQuICovXHJcbiAgcHJpdmF0ZSBfbGFzdFZhbHVlVmFsaWQgPSBmYWxzZTtcclxuXHJcbiAgY29uc3RydWN0b3IocHJpdmF0ZSBfZWxlbWVudFJlZjogRWxlbWVudFJlZjxIVE1MSW5wdXRFbGVtZW50PixcclxuICAgIEBPcHRpb25hbCgpIHByaXZhdGUgX2Zvcm1GaWVsZDogTWF0Rm9ybUZpZWxkLFxyXG4gICAgQE9wdGlvbmFsKCkgQEluamVjdChNQVRfQ09MT1JfRk9STUFUUykgcHJpdmF0ZSBfY29sb3JGb3JtYXRzOiBNYXRDb2xvckZvcm1hdHMsXHJcbiAgICBwcml2YXRlIF9hZGFwdGVyOiBDb2xvckFkYXB0ZXIpIHtcclxuICAgIGlmICghdGhpcy5fY29sb3JGb3JtYXRzKSB7XHJcbiAgICAgIHRocm93IGNyZWF0ZU1pc3NpbmdEYXRlSW1wbEVycm9yKCdNQVRfQ09MT1JfRk9STUFUUycpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgLyoqIFJldHVybnMgdGhlIHBhbGV0dGUgdXNlZCBieSB0aGUgaW5wdXQncyBmb3JtIGZpZWxkLCBpZiBhbnkuICovXHJcbiAgcHVibGljIGdldFRoZW1lUGFsZXR0ZSgpOiBUaGVtZVBhbGV0dGUge1xyXG4gICAgcmV0dXJuIHRoaXMuX2Zvcm1GaWVsZCA/IHRoaXMuX2Zvcm1GaWVsZC5jb2xvciA6IHVuZGVmaW5lZDtcclxuICB9XHJcblxyXG5cclxuICByZWdpc3Rlck9uVmFsaWRhdG9yQ2hhbmdlKGZuOiAoKSA9PiB2b2lkKTogdm9pZCB7XHJcbiAgICB0aGlzLl92YWxpZGF0b3JPbkNoYW5nZSA9IGZuO1xyXG4gIH1cclxuXHJcblxyXG4gIHZhbGlkYXRlKGM6IEFic3RyYWN0Q29udHJvbCk6IFZhbGlkYXRpb25FcnJvcnMgfCBudWxsIHtcclxuICAgIHJldHVybiB0aGlzLl92YWxpZGF0b3IgPyB0aGlzLl92YWxpZGF0b3IoYykgOiBudWxsO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogQGRlcHJlY2F0ZWRcclxuICAgKiBAYnJlYWtpbmctY2hhbmdlIDguMC4wIFVzZSBgZ2V0Q29ubmVjdGVkT3ZlcmxheU9yaWdpbmAgaW5zdGVhZFxyXG4gICAqL1xyXG4gIGdldFBvcHVwQ29ubmVjdGlvbkVsZW1lbnRSZWYoKTogRWxlbWVudFJlZiB7XHJcbiAgICByZXR1cm4gdGhpcy5nZXRDb25uZWN0ZWRPdmVybGF5T3JpZ2luKCk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAqIEdldHMgdGhlIGVsZW1lbnQgdGhhdCB0aGUgY29sb3JwaWNrZXIgcG9wdXAgc2hvdWxkIGJlIGNvbm5lY3RlZCB0by5cclxuICAqIEByZXR1cm4gVGhlIGVsZW1lbnQgdG8gY29ubmVjdCB0aGUgcG9wdXAgdG8uXHJcbiAgKi9cclxuICBnZXRDb25uZWN0ZWRPdmVybGF5T3JpZ2luKCk6IEVsZW1lbnRSZWYge1xyXG4gICAgcmV0dXJuIHRoaXMuX2Zvcm1GaWVsZCA/IHRoaXMuX2Zvcm1GaWVsZC5nZXRDb25uZWN0ZWRPdmVybGF5T3JpZ2luKCkgOiB0aGlzLl9lbGVtZW50UmVmO1xyXG4gIH1cclxuXHJcblxyXG4gIG5nT25Jbml0KCkge1xyXG4gIH1cclxuXHJcbiAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XHJcbiAgICB0aGlzLl9waWNrZXJTdWJzY3JpcHRpb24udW5zdWJzY3JpYmUoKTtcclxuICAgIHRoaXMuX3ZhbHVlQ2hhbmdlLmNvbXBsZXRlKCk7XHJcbiAgICB0aGlzLl9kaXNhYmxlZENoYW5nZS5jb21wbGV0ZSgpO1xyXG4gIH1cclxuXHJcbiAgLy8gSW1wbGVtZW50ZWQgYXMgcGFydCBvZiBDb250cm9sVmFsdWVBY2Nlc3Nvci5cclxuICB3cml0ZVZhbHVlKHZhbHVlOiBDb2xvcik6IHZvaWQge1xyXG4gICAgdGhpcy52YWx1ZSA9IHZhbHVlO1xyXG4gIH1cclxuXHJcbiAgLy8gSW1wbGVtZW50ZWQgYXMgcGFydCBvZiBDb250cm9sVmFsdWVBY2Nlc3Nvci5cclxuICByZWdpc3Rlck9uQ2hhbmdlKGZuOiAodmFsdWU6IGFueSkgPT4gdm9pZCk6IHZvaWQge1xyXG4gICAgdGhpcy5fY3ZhT25DaGFuZ2UgPSBmbjtcclxuICB9XHJcblxyXG4gIC8vIEltcGxlbWVudGVkIGFzIHBhcnQgb2YgQ29udHJvbFZhbHVlQWNjZXNzb3IuXHJcbiAgcmVnaXN0ZXJPblRvdWNoZWQoZm46ICgpID0+IHZvaWQpOiB2b2lkIHtcclxuICAgIHRoaXMuX29uVG91Y2hlZCA9IGZuO1xyXG4gIH1cclxuXHJcbiAgLy8gSW1wbGVtZW50ZWQgYXMgcGFydCBvZiBDb250cm9sVmFsdWVBY2Nlc3Nvci5cclxuICBzZXREaXNhYmxlZFN0YXRlKGlzRGlzYWJsZWQ6IGJvb2xlYW4pOiB2b2lkIHtcclxuICAgIHRoaXMuZGlzYWJsZWQgPSBpc0Rpc2FibGVkO1xyXG4gIH1cclxuXHJcbiAgX29uQ2hhbmdlKCkge1xyXG4gICAgdGhpcy5jb2xvckNoYW5nZS5lbWl0KG5ldyBOZ3hNYXRDb2xvclBpY2tlcklucHV0RXZlbnQodGhpcywgdGhpcy5fZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50KSk7XHJcbiAgfVxyXG5cclxuICBfb25LZXlkb3duKGV2ZW50OiBLZXlib2FyZEV2ZW50KSB7XHJcbiAgICBjb25zdCBpc0FsdERvd25BcnJvdyA9IGV2ZW50LmFsdEtleSAmJiBldmVudC5rZXlDb2RlID09PSBET1dOX0FSUk9XO1xyXG5cclxuICAgIGlmICh0aGlzLl9waWNrZXIgJiYgaXNBbHREb3duQXJyb3cgJiYgIXRoaXMuX2VsZW1lbnRSZWYubmF0aXZlRWxlbWVudC5yZWFkT25seSkge1xyXG4gICAgICB0aGlzLl9waWNrZXIub3BlbigpO1xyXG4gICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgLyoqIEhhbmRsZXMgYmx1ciBldmVudHMgb24gdGhlIGlucHV0LiAqL1xyXG4gIF9vbkJsdXIoKSB7XHJcbiAgICAvLyBSZWZvcm1hdCB0aGUgaW5wdXQgb25seSBpZiB3ZSBoYXZlIGEgdmFsaWQgdmFsdWUuXHJcbiAgICBpZiAodGhpcy52YWx1ZSkge1xyXG4gICAgICB0aGlzLl9mb3JtYXRWYWx1ZSh0aGlzLnZhbHVlKTtcclxuICAgIH1cclxuXHJcbiAgICB0aGlzLl9vblRvdWNoZWQoKTtcclxuICB9XHJcblxyXG4gIC8qKiBGb3JtYXRzIGEgdmFsdWUgYW5kIHNldHMgaXQgb24gdGhlIGlucHV0IGVsZW1lbnQuICovXHJcbiAgcHJpdmF0ZSBfZm9ybWF0VmFsdWUodmFsdWU6IENvbG9yIHwgbnVsbCkge1xyXG4gICAgdGhpcy5fZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LnZhbHVlID0gdmFsdWUgPyB0aGlzLl9hZGFwdGVyLmZvcm1hdCh2YWx1ZSwgdGhpcy5fY29sb3JGb3JtYXRzLmRpc3BsYXkuY29sb3JJbnB1dCkgOiAnJztcclxuICB9XHJcblxyXG4gIF9vbklucHV0KHZhbHVlOiBzdHJpbmcpIHtcclxuICAgIGNvbnN0IGxhc3RWYWx1ZVdhc1ZhbGlkID0gdGhpcy5fbGFzdFZhbHVlVmFsaWQ7XHJcbiAgICBjb25zdCBuZXh0VmFsdWUgPSB0aGlzLl9hZGFwdGVyLnBhcnNlKHZhbHVlKTtcclxuXHJcbiAgICBpZiAoIXRoaXMuX2FkYXB0ZXIuc2FtZUNvbG9yKG5leHRWYWx1ZSwgdGhpcy5fdmFsdWUpKSB7XHJcbiAgICAgIHRoaXMuX3ZhbHVlID0gbmV4dFZhbHVlO1xyXG4gICAgICB0aGlzLl9jdmFPbkNoYW5nZShuZXh0VmFsdWUpO1xyXG4gICAgICB0aGlzLl92YWx1ZUNoYW5nZS5lbWl0KG5leHRWYWx1ZSk7XHJcbiAgICAgIHRoaXMuY29sb3JJbnB1dC5lbWl0KG5ldyBOZ3hNYXRDb2xvclBpY2tlcklucHV0RXZlbnQodGhpcywgdGhpcy5fZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50KSk7XHJcbiAgICB9IGVsc2UgaWYgKGxhc3RWYWx1ZVdhc1ZhbGlkICE9PSB0aGlzLl9sYXN0VmFsdWVWYWxpZCkge1xyXG4gICAgICB0aGlzLl92YWxpZGF0b3JPbkNoYW5nZSgpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbn1cclxuXHJcblxyXG4iXX0=
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29sb3ItaW5wdXQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6Ii4uLy4uLy4uLy4uL3Byb2plY3RzL2NvbG9yLXBpY2tlci9zcmMvIiwic291cmNlcyI6WyJsaWIvY29tcG9uZW50cy9jb2xvci1waWNrZXIvY29sb3ItaW5wdXQuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBQUEsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDOUQsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBQ25ELE9BQU8sRUFBRSxTQUFTLEVBQUUsVUFBVSxFQUFFLFlBQVksRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBcUIsUUFBUSxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNwSSxPQUFPLEVBQXlDLGFBQWEsRUFBRSxpQkFBaUIsRUFBNEMsVUFBVSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFFL0osT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FBQzVELE9BQU8sRUFBRSx3QkFBd0IsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQ25FLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDcEMsT0FBTyxFQUFFLDBCQUEwQixFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzNELE9BQU8sRUFBRSxLQUFLLEVBQUUsTUFBTSxjQUFjLENBQUM7QUFDckMsT0FBTyxFQUFFLFlBQVksRUFBbUIsaUJBQWlCLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNsRixPQUFPLEVBQUUsMEJBQTBCLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUV0RSxNQUFNLE9BQU8sMkJBQTJCOzs7OztJQUl0QyxZQUVTLE1BQThCLEVBRTlCLGFBQTBCO1FBRjFCLFdBQU0sR0FBTixNQUFNLENBQXdCO1FBRTlCLGtCQUFhLEdBQWIsYUFBYSxDQUFhO1FBQ2pDLElBQUksQ0FB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QUV6Qyw0Q0FBdUI7Ozs7O0lBRXZCLDhDQUF1RDs7Ozs7SUFFdkQsb0RBQXVDOzs7OztJQUV2QyxxREFBaUQ7Ozs7OztJQUdqRCw0Q0FDeUI7Ozs7OztJQUd6QixpREFBZ0M7Ozs7O0lBRXBCLDZDQUFpRDs7Ozs7SUFDM0QsNENBQTRDOzs7OztJQUM1QywrQ0FBNkU7Ozs7O0lBQzdFLDBDQUE4QiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGNvZXJjZUJvb2xlYW5Qcm9wZXJ0eSB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9jb2VyY2lvbic7XHJcbmltcG9ydCB7IERPV05fQVJST1cgfSBmcm9tICdAYW5ndWxhci9jZGsva2V5Y29kZXMnO1xyXG5pbXBvcnQgeyBEaXJlY3RpdmUsIEVsZW1lbnRSZWYsIEV2ZW50RW1pdHRlciwgZm9yd2FyZFJlZiwgSW5qZWN0LCBJbnB1dCwgT25EZXN0cm95LCBPbkluaXQsIE9wdGlvbmFsLCBPdXRwdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgQWJzdHJhY3RDb250cm9sLCBDb250cm9sVmFsdWVBY2Nlc3NvciwgTkdfVkFMSURBVE9SUywgTkdfVkFMVUVfQUNDRVNTT1IsIFZhbGlkYXRpb25FcnJvcnMsIFZhbGlkYXRvciwgVmFsaWRhdG9yRm4sIFZhbGlkYXRvcnMgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XHJcbmltcG9ydCB7IFRoZW1lUGFsZXR0ZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2NvcmUnO1xyXG5pbXBvcnQgeyBNYXRGb3JtRmllbGQgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9mb3JtLWZpZWxkJztcclxuaW1wb3J0IHsgTUFUX0lOUFVUX1ZBTFVFX0FDQ0VTU09SIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvaW5wdXQnO1xyXG5pbXBvcnQgeyBTdWJzY3JpcHRpb24gfSBmcm9tICdyeGpzJztcclxuaW1wb3J0IHsgY3JlYXRlTWlzc2luZ0RhdGVJbXBsRXJyb3IgfSBmcm9tICcuLi8uLi9oZWxwZXJzJztcclxuaW1wb3J0IHsgQ29sb3IgfSBmcm9tICcuLi8uLi9tb2RlbHMnO1xyXG5pbXBvcnQgeyBDb2xvckFkYXB0ZXIsIE1hdENvbG9yRm9ybWF0cywgTUFUX0NPTE9SX0ZPUk1BVFMgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcyc7XHJcbmltcG9ydCB7IE5neE1hdENvbG9yUGlja2VyQ29tcG9uZW50IH0gZnJvbSAnLi9jb2xvci1waWNrZXIuY29tcG9uZW50JztcclxuXHJcbmV4cG9ydCBjbGFzcyBOZ3hNYXRDb2xvclBpY2tlcklucHV0RXZlbnQge1xyXG4gIC8qKiBUaGUgbmV3IHZhbHVlIGZvciB0aGUgdGFyZ2V0IGNvbG9ycGlja2VyIGlucHV0LiAqL1xyXG4gIHZhbHVlOiBDb2xvciB8IG51bGw7XHJcblxyXG4gIGNvbnN0cnVjdG9yKFxyXG4gICAgLyoqIFJlZmVyZW5jZSB0byB0aGUgY29sb3JwaWNrZXIgaW5wdXQgY29tcG9uZW50IHRoYXQgZW1pdHRlZCB0aGUgZXZlbnQuICovXHJcbiAgICBwdWJsaWMgdGFyZ2V0OiBOZ3hNYXRDb2xvclBpY2tlcklucHV0LFxyXG4gICAgLyoqIFJlZmVyZW5jZSB0byB0aGUgbmF0aXZlIGlucHV0IGVsZW1lbnQgYXNzb2NpYXRlZCB3aXRoIHRoZSBjb2xvcnBpY2tlciBpbnB1dC4gKi9cclxuICAgIHB1YmxpYyB0YXJnZXRFbGVtZW50OiBIVE1MRWxlbWVudCkge1xyXG4gICAgdGhpcy52YWx1ZSA9IHRoaXMudGFyZ2V0LnZhbHVlO1xyXG4gIH1cclxufVxyXG5cclxuXHJcbmV4cG9ydCBjb25zdCBNQVRfQ09MT1JQSUNLRVJfVkFMVUVfQUNDRVNTT1I6IGFueSA9IHtcclxuICBwcm92aWRlOiBOR19WQUxVRV9BQ0NFU1NPUixcclxuICB1c2VFeGlzdGluZzogZm9yd2FyZFJlZigoKSA9PiBOZ3hNYXRDb2xvclBpY2tlcklucHV0KSxcclxuICBtdWx0aTogdHJ1ZVxyXG59O1xyXG5cclxuXHJcbmV4cG9ydCBjb25zdCBNQVRfQ09MT1JQSUNLRVJfVkFMSURBVE9SUzogYW55ID0ge1xyXG4gIHByb3ZpZGU6IE5HX1ZBTElEQVRPUlMsXHJcbiAgdXNlRXhpc3Rpbmc6IGZvcndhcmRSZWYoKCkgPT4gTmd4TWF0Q29sb3JQaWNrZXJJbnB1dCksXHJcbiAgbXVsdGk6IHRydWVcclxufTtcclxuXHJcbkBEaXJlY3RpdmUoe1xyXG4gIHNlbGVjdG9yOiAnaW5wdXRbbmd4TWF0Q29sb3JQaWNrZXJdJyxcclxuICBwcm92aWRlcnM6IFtcclxuICAgIE1BVF9DT0xPUlBJQ0tFUl9WQUxVRV9BQ0NFU1NPUixcclxuICAgIE1BVF9DT0xPUlBJQ0tFUl9WQUxJREFUT1JTLFxyXG4gICAgeyBwcm92aWRlOiBNQVRfSU5QVVRfVkFMVUVfQUNDRVNTT1IsIHVzZUV4aXN0aW5nOiBOZ3hNYXRDb2xvclBpY2tlcklucHV0IH0sXHJcbiAgXSxcclxuICBob3N0OiB7XHJcbiAgICAnW2F0dHIuYXJpYS1oYXNwb3B1cF0nOiAnX3BpY2tlciA/IFwiZGlhbG9nXCIgOiBudWxsJyxcclxuICAgICdbYXR0ci5hcmlhLW93bnNdJzogJyhfcGlja2VyPy5vcGVuZWQgJiYgX3BpY2tlci5pZCkgfHwgbnVsbCcsXHJcbiAgICAnW2Rpc2FibGVkXSc6ICdkaXNhYmxlZCcsXHJcbiAgICAnKGlucHV0KSc6ICdfb25JbnB1dCgkZXZlbnQudGFyZ2V0LnZhbHVlKScsXHJcbiAgICAnKGNoYW5nZSknOiAnX29uQ2hhbmdlKCknLFxyXG4gICAgJyhibHVyKSc6ICdfb25CbHVyKCknLFxyXG4gICAgJyhrZXlkb3duKSc6ICdfb25LZXlkb3duKCRldmVudCknLFxyXG4gIH0sXHJcbiAgZXhwb3J0QXM6ICduZ3hNYXRDb2xvclBpY2tlcklucHV0JyxcclxufSlcclxuZXhwb3J0IGNsYXNzIE5neE1hdENvbG9yUGlja2VySW5wdXQgaW1wbGVtZW50cyBDb250cm9sVmFsdWVBY2Nlc3NvciwgT25Jbml0LCBPbkRlc3Ryb3ksIFZhbGlkYXRvciB7XHJcblxyXG4gIEBJbnB1dCgpXHJcbiAgc2V0IG5neE1hdENvbG9yUGlja2VyKHZhbHVlOiBOZ3hNYXRDb2xvclBpY2tlckNvbXBvbmVudCkge1xyXG4gICAgaWYgKCF2YWx1ZSkge1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcblxyXG4gICAgdGhpcy5fcGlja2VyID0gdmFsdWU7XHJcbiAgICB0aGlzLl9waWNrZXIucmVnaXN0ZXJJbnB1dCh0aGlzKTtcclxuICAgIHRoaXMuX3BpY2tlclN1YnNjcmlwdGlvbi51bnN1YnNjcmliZSgpO1xyXG5cclxuICAgIHRoaXMuX3BpY2tlclN1YnNjcmlwdGlvbiA9IHRoaXMuX3BpY2tlci5fc2VsZWN0ZWRDaGFuZ2VkLnN1YnNjcmliZSgoc2VsZWN0ZWQ6IENvbG9yKSA9PiB7XHJcbiAgICAgIHRoaXMudmFsdWUgPSBzZWxlY3RlZDtcclxuICAgICAgdGhpcy5fY3ZhT25DaGFuZ2Uoc2VsZWN0ZWQpO1xyXG4gICAgICB0aGlzLl9vblRvdWNoZWQoKTtcclxuICAgICAgdGhpcy5jb2xvcklucHV0LmVtaXQobmV3IE5neE1hdENvbG9yUGlja2VySW5wdXRFdmVudCh0aGlzLCB0aGlzLl9lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQpKTtcclxuICAgICAgdGhpcy5jb2xvckNoYW5nZS5lbWl0KG5ldyBOZ3hNYXRDb2xvclBpY2tlcklucHV0RXZlbnQodGhpcywgdGhpcy5fZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50KSk7XHJcbiAgICB9KTtcclxuICB9XHJcbiAgX3BpY2tlcjogTmd4TWF0Q29sb3JQaWNrZXJDb21wb25lbnQ7XHJcblxyXG4gIC8qKiBXaGV0aGVyIHRoZSBjb2xvcnBpY2tlci1pbnB1dCBpcyBkaXNhYmxlZC4gKi9cclxuICBASW5wdXQoKVxyXG4gIGdldCBkaXNhYmxlZCgpOiBib29sZWFuIHsgcmV0dXJuICEhdGhpcy5fZGlzYWJsZWQ7IH1cclxuICBzZXQgZGlzYWJsZWQodmFsdWU6IGJvb2xlYW4pIHtcclxuICAgIGNvbnN0IG5ld1ZhbHVlID0gY29lcmNlQm9vbGVhblByb3BlcnR5KHZhbHVlKTtcclxuICAgIGNvbnN0IGVsZW1lbnQgPSB0aGlzLl9lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQ7XHJcblxyXG4gICAgaWYgKHRoaXMuX2Rpc2FibGVkICE9PSBuZXdWYWx1ZSkge1xyXG4gICAgICB0aGlzLl9kaXNhYmxlZCA9IG5ld1ZhbHVlO1xyXG4gICAgICB0aGlzLl9kaXNhYmxlZENoYW5nZS5lbWl0KG5ld1ZhbHVlKTtcclxuICAgIH1cclxuXHJcbiAgICAvLyBXZSBuZWVkIHRvIG51bGwgY2hlY2sgdGhlIGBibHVyYCBtZXRob2QsIGJlY2F1c2UgaXQncyB1bmRlZmluZWQgZHVyaW5nIFNTUi5cclxuICAgIGlmIChuZXdWYWx1ZSAmJiBlbGVtZW50LmJsdXIpIHtcclxuICAgICAgLy8gTm9ybWFsbHksIG5hdGl2ZSBpbnB1dCBlbGVtZW50cyBhdXRvbWF0aWNhbGx5IGJsdXIgaWYgdGhleSB0dXJuIGRpc2FibGVkLiBUaGlzIGJlaGF2aW9yXHJcbiAgICAgIC8vIGlzIHByb2JsZW1hdGljLCBiZWNhdXNlIGl0IHdvdWxkIG1lYW4gdGhhdCBpdCB0cmlnZ2VycyBhbm90aGVyIGNoYW5nZSBkZXRlY3Rpb24gY3ljbGUsXHJcbiAgICAgIC8vIHdoaWNoIHRoZW4gY2F1c2VzIGEgY2hhbmdlZCBhZnRlciBjaGVja2VkIGVycm9yIGlmIHRoZSBpbnB1dCBlbGVtZW50IHdhcyBmb2N1c2VkIGJlZm9yZS5cclxuICAgICAgZWxlbWVudC5ibHVyKCk7XHJcbiAgICB9XHJcbiAgfVxyXG4gIHByaXZhdGUgX2Rpc2FibGVkOiBib29sZWFuO1xyXG5cclxuICAvKiogVGhlIHZhbHVlIG9mIHRoZSBpbnB1dC4gKi9cclxuICBASW5wdXQoKVxyXG4gIGdldCB2YWx1ZSgpOiBDb2xvciB8IG51bGwgeyByZXR1cm4gdGhpcy5fdmFsdWU7IH1cclxuICBzZXQgdmFsdWUodmFsdWU6IENvbG9yIHwgbnVsbCkge1xyXG4gICAgY29uc3Qgb2xkVmFsdWUgPSB0aGlzLnZhbHVlO1xyXG4gICAgdGhpcy5fdmFsdWUgPSB2YWx1ZTtcclxuICAgIHRoaXMuX2Zvcm1hdFZhbHVlKHZhbHVlKTtcclxuXHJcbiAgICBpZiAoIXRoaXMuX2FkYXB0ZXIuc2FtZUNvbG9yKG9sZFZhbHVlLCB2YWx1ZSkpIHtcclxuICAgICAgdGhpcy5fdmFsdWVDaGFuZ2UuZW1pdCh2YWx1ZSk7XHJcbiAgICB9XHJcblxyXG4gIH1cclxuICBwcml2YXRlIF92YWx1ZTogQ29sb3IgfCBudWxsO1xyXG5cclxuICAvKiogRW1pdHMgd2hlbiBhIGBjaGFuZ2VgIGV2ZW50IGlzIGZpcmVkIG9uIHRoaXMgYDxpbnB1dD5gLiAqL1xyXG4gIEBPdXRwdXQoKSByZWFkb25seSBjb2xvckNoYW5nZTogRXZlbnRFbWl0dGVyPE5neE1hdENvbG9yUGlja2VySW5wdXRFdmVudD4gPVxyXG4gICAgbmV3IEV2ZW50RW1pdHRlcjxOZ3hNYXRDb2xvclBpY2tlcklucHV0RXZlbnQ+KCk7XHJcblxyXG4gIC8qKiBFbWl0cyB3aGVuIGFuIGBpbnB1dGAgZXZlbnQgaXMgZmlyZWQgb24gdGhpcyBgPGlucHV0PmAuICovXHJcbiAgQE91dHB1dCgpIHJlYWRvbmx5IGNvbG9ySW5wdXQ6IEV2ZW50RW1pdHRlcjxOZ3hNYXRDb2xvclBpY2tlcklucHV0RXZlbnQ+ID1cclxuICAgIG5ldyBFdmVudEVtaXR0ZXI8Tmd4TWF0Q29sb3JQaWNrZXJJbnB1dEV2ZW50PigpO1xyXG5cclxuICAvKiogRW1pdHMgd2hlbiB0aGUgZGlzYWJsZWQgc3RhdGUgaGFzIGNoYW5nZWQgKi9cclxuICBfZGlzYWJsZWRDaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyPGJvb2xlYW4+KCk7XHJcblxyXG4gIC8qKiBFbWl0cyB3aGVuIHRoZSB2YWx1ZSBjaGFuZ2VzIChlaXRoZXIgZHVlIHRvIHVzZXIgaW5wdXQgb3IgcHJvZ3JhbW1hdGljIGNoYW5nZSkuICovXHJcbiAgX3ZhbHVlQ2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjxDb2xvcj4oKTtcclxuXHJcbiAgX29uVG91Y2hlZCA9ICgpID0+IHsgfTtcclxuXHJcbiAgcHJpdmF0ZSBfY3ZhT25DaGFuZ2U6ICh2YWx1ZTogYW55KSA9PiB2b2lkID0gKCkgPT4geyB9O1xyXG5cclxuICBwcml2YXRlIF92YWxpZGF0b3JPbkNoYW5nZSA9ICgpID0+IHsgfTtcclxuXHJcbiAgcHJpdmF0ZSBfcGlja2VyU3Vic2NyaXB0aW9uID0gU3Vic2NyaXB0aW9uLkVNUFRZO1xyXG5cclxuICAvKiogVGhlIGNvbWJpbmVkIGZvcm0gY29udHJvbCB2YWxpZGF0b3IgZm9yIHRoaXMgaW5wdXQuICovXHJcbiAgcHJpdmF0ZSBfdmFsaWRhdG9yOiBWYWxpZGF0b3JGbiB8IG51bGwgPVxyXG4gICAgVmFsaWRhdG9ycy5jb21wb3NlKFtdKTtcclxuXHJcbiAgLyoqIFdoZXRoZXIgdGhlIGxhc3QgdmFsdWUgc2V0IG9uIHRoZSBpbnB1dCB3YXMgdmFsaWQuICovXHJcbiAgcHJpdmF0ZSBfbGFzdFZhbHVlVmFsaWQgPSBmYWxzZTtcclxuXHJcbiAgY29uc3RydWN0b3IocHJpdmF0ZSBfZWxlbWVudFJlZjogRWxlbWVudFJlZjxIVE1MSW5wdXRFbGVtZW50PixcclxuICAgIEBPcHRpb25hbCgpIHByaXZhdGUgX2Zvcm1GaWVsZDogTWF0Rm9ybUZpZWxkLFxyXG4gICAgQE9wdGlvbmFsKCkgQEluamVjdChNQVRfQ09MT1JfRk9STUFUUykgcHJpdmF0ZSBfY29sb3JGb3JtYXRzOiBNYXRDb2xvckZvcm1hdHMsXHJcbiAgICBwcml2YXRlIF9hZGFwdGVyOiBDb2xvckFkYXB0ZXIpIHtcclxuICAgIGlmICghdGhpcy5fY29sb3JGb3JtYXRzKSB7XHJcbiAgICAgIHRocm93IGNyZWF0ZU1pc3NpbmdEYXRlSW1wbEVycm9yKCdNQVRfQ09MT1JfRk9STUFUUycpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgLyoqIFJldHVybnMgdGhlIHBhbGV0dGUgdXNlZCBieSB0aGUgaW5wdXQncyBmb3JtIGZpZWxkLCBpZiBhbnkuICovXHJcbiAgcHVibGljIGdldFRoZW1lUGFsZXR0ZSgpOiBUaGVtZVBhbGV0dGUge1xyXG4gICAgcmV0dXJuIHRoaXMuX2Zvcm1GaWVsZCA/IHRoaXMuX2Zvcm1GaWVsZC5jb2xvciA6IHVuZGVmaW5lZDtcclxuICB9XHJcblxyXG5cclxuICByZWdpc3Rlck9uVmFsaWRhdG9yQ2hhbmdlKGZuOiAoKSA9PiB2b2lkKTogdm9pZCB7XHJcbiAgICB0aGlzLl92YWxpZGF0b3JPbkNoYW5nZSA9IGZuO1xyXG4gIH1cclxuXHJcblxyXG4gIHZhbGlkYXRlKGM6IEFic3RyYWN0Q29udHJvbCk6IFZhbGlkYXRpb25FcnJvcnMgfCBudWxsIHtcclxuICAgIHJldHVybiB0aGlzLl92YWxpZGF0b3IgPyB0aGlzLl92YWxpZGF0b3IoYykgOiBudWxsO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogQGRlcHJlY2F0ZWRcclxuICAgKiBAYnJlYWtpbmctY2hhbmdlIDguMC4wIFVzZSBgZ2V0Q29ubmVjdGVkT3ZlcmxheU9yaWdpbmAgaW5zdGVhZFxyXG4gICAqL1xyXG4gIGdldFBvcHVwQ29ubmVjdGlvbkVsZW1lbnRSZWYoKTogRWxlbWVudFJlZiB7XHJcbiAgICByZXR1cm4gdGhpcy5nZXRDb25uZWN0ZWRPdmVybGF5T3JpZ2luKCk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAqIEdldHMgdGhlIGVsZW1lbnQgdGhhdCB0aGUgY29sb3JwaWNrZXIgcG9wdXAgc2hvdWxkIGJlIGNvbm5lY3RlZCB0by5cclxuICAqIEByZXR1cm4gVGhlIGVsZW1lbnQgdG8gY29ubmVjdCB0aGUgcG9wdXAgdG8uXHJcbiAgKi9cclxuICBnZXRDb25uZWN0ZWRPdmVybGF5T3JpZ2luKCk6IEVsZW1lbnRSZWYge1xyXG4gICAgcmV0dXJuIHRoaXMuX2Zvcm1GaWVsZCA/IHRoaXMuX2Zvcm1GaWVsZC5nZXRDb25uZWN0ZWRPdmVybGF5T3JpZ2luKCkgOiB0aGlzLl9lbGVtZW50UmVmO1xyXG4gIH1cclxuXHJcblxyXG4gIG5nT25Jbml0KCkge1xyXG4gIH1cclxuXHJcbiAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XHJcbiAgICB0aGlzLl9waWNrZXJTdWJzY3JpcHRpb24udW5zdWJzY3JpYmUoKTtcclxuICAgIHRoaXMuX3ZhbHVlQ2hhbmdlLmNvbXBsZXRlKCk7XHJcbiAgICB0aGlzLl9kaXNhYmxlZENoYW5nZS5jb21wbGV0ZSgpO1xyXG4gIH1cclxuXHJcbiAgLy8gSW1wbGVtZW50ZWQgYXMgcGFydCBvZiBDb250cm9sVmFsdWVBY2Nlc3Nvci5cclxuICB3cml0ZVZhbHVlKHZhbHVlOiBDb2xvcik6IHZvaWQge1xyXG4gICAgdGhpcy52YWx1ZSA9IHZhbHVlO1xyXG4gIH1cclxuXHJcbiAgLy8gSW1wbGVtZW50ZWQgYXMgcGFydCBvZiBDb250cm9sVmFsdWVBY2Nlc3Nvci5cclxuICByZWdpc3Rlck9uQ2hhbmdlKGZuOiAodmFsdWU6IGFueSkgPT4gdm9pZCk6IHZvaWQge1xyXG4gICAgdGhpcy5fY3ZhT25DaGFuZ2UgPSBmbjtcclxuICB9XHJcblxyXG4gIC8vIEltcGxlbWVudGVkIGFzIHBhcnQgb2YgQ29udHJvbFZhbHVlQWNjZXNzb3IuXHJcbiAgcmVnaXN0ZXJPblRvdWNoZWQoZm46ICgpID0+IHZvaWQpOiB2b2lkIHtcclxuICAgIHRoaXMuX29uVG91Y2hlZCA9IGZuO1xyXG4gIH1cclxuXHJcbiAgLy8gSW1wbGVtZW50ZWQgYXMgcGFydCBvZiBDb250cm9sVmFsdWVBY2Nlc3Nvci5cclxuICBzZXREaXNhYmxlZFN0YXRlKGlzRGlzYWJsZWQ6IGJvb2xlYW4pOiB2b2lkIHtcclxuICAgIHRoaXMuZGlzYWJsZWQgPSBpc0Rpc2FibGVkO1xyXG4gIH1cclxuXHJcbiAgX29uQ2hhbmdlKCkge1xyXG4gICAgdGhpcy5jb2xvckNoYW5nZS5lbWl0KG5ldyBOZ3hNYXRDb2xvclBpY2tlcklucHV0RXZlbnQodGhpcywgdGhpcy5fZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50KSk7XHJcbiAgfVxyXG5cclxuICBfb25LZXlkb3duKGV2ZW50OiBLZXlib2FyZEV2ZW50KSB7XHJcbiAgICBjb25zdCBpc0FsdERvd25BcnJvdyA9IGV2ZW50LmFsdEtleSAmJiBldmVudC5rZXlDb2RlID09PSBET1dOX0FSUk9XO1xyXG5cclxuICAgIGlmICh0aGlzLl9waWNrZXIgJiYgaXNBbHREb3duQXJyb3cgJiYgIXRoaXMuX2VsZW1lbnRSZWYubmF0aXZlRWxlbWVudC5yZWFkT25seSkge1xyXG4gICAgICB0aGlzLl9waWNrZXIub3BlbigpO1xyXG4gICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgLyoqIEhhbmRsZXMgYmx1ciBldmVudHMgb24gdGhlIGlucHV0LiAqL1xyXG4gIF9vbkJsdXIoKSB7XHJcbiAgICAvLyBSZWZvcm1hdCB0aGUgaW5wdXQgb25seSBpZiB3ZSBoYXZlIGEgdmFsaWQgdmFsdWUuXHJcbiAgICBpZiAodGhpcy52YWx1ZSkge1xyXG4gICAgICB0aGlzLl9mb3JtYXRWYWx1ZSh0aGlzLnZhbHVlKTtcclxuICAgIH1cclxuXHJcbiAgICB0aGlzLl9vblRvdWNoZWQoKTtcclxuICB9XHJcblxyXG4gIC8qKiBGb3JtYXRzIGEgdmFsdWUgYW5kIHNldHMgaXQgb24gdGhlIGlucHV0IGVsZW1lbnQuICovXHJcbiAgcHJpdmF0ZSBfZm9ybWF0VmFsdWUodmFsdWU6IENvbG9yIHwgbnVsbCkge1xyXG4gICAgdGhpcy5fZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LnZhbHVlID0gdmFsdWUgPyB0aGlzLl9hZGFwdGVyLmZvcm1hdCh2YWx1ZSwgdGhpcy5fY29sb3JGb3JtYXRzLmRpc3BsYXkuY29sb3JJbnB1dCkgOiAnJztcclxuICB9XHJcblxyXG4gIF9vbklucHV0KHZhbHVlOiBzdHJpbmcpIHtcclxuICAgIGNvbnN0IGxhc3RWYWx1ZVdhc1ZhbGlkID0gdGhpcy5fbGFzdFZhbHVlVmFsaWQ7XHJcbiAgICBjb25zdCBuZXh0VmFsdWUgPSB0aGlzLl9hZGFwdGVyLnBhcnNlKHZhbHVlKTtcclxuXHJcbiAgICBpZiAoIXRoaXMuX2FkYXB0ZXIuc2FtZUNvbG9yKG5leHRWYWx1ZSwgdGhpcy5fdmFsdWUpKSB7XHJcbiAgICAgIHRoaXMuX3ZhbHVlID0gbmV4dFZhbHVlO1xyXG4gICAgICB0aGlzLl9jdmFPbkNoYW5nZShuZXh0VmFsdWUpO1xyXG4gICAgICB0aGlzLl92YWx1ZUNoYW5nZS5lbWl0KG5leHRWYWx1ZSk7XHJcbiAgICAgIHRoaXMuY29sb3JJbnB1dC5lbWl0KG5ldyBOZ3hNYXRDb2xvclBpY2tlcklucHV0RXZlbnQodGhpcywgdGhpcy5fZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50KSk7XHJcbiAgICB9IGVsc2UgaWYgKGxhc3RWYWx1ZVdhc1ZhbGlkICE9PSB0aGlzLl9sYXN0VmFsdWVWYWxpZCkge1xyXG4gICAgICB0aGlzLl92YWxpZGF0b3JPbkNoYW5nZSgpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbn1cclxuXHJcblxyXG4iXX0=

@@ -626,2 +626,2 @@ /**

}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29sb3ItcGlja2VyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NvbG9yLXBpY2tlci9zcmMvbGliL2NvbXBvbmVudHMvY29sb3ItcGlja2VyL2NvbG9yLXBpY2tlci5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBQSxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFDbkQsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDOUQsT0FBTyxFQUFFLE1BQU0sRUFBRSxRQUFRLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUN6RCxPQUFPLEVBQUUsT0FBTyxFQUFFLGFBQWEsRUFBZ0QsTUFBTSxzQkFBc0IsQ0FBQztBQUM1RyxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDdEQsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQzNDLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxTQUFTLEVBQWdCLFVBQVUsRUFBRSxZQUFZLEVBQUUsTUFBTSxFQUFFLGNBQWMsRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFxQixRQUFRLEVBQUUsTUFBTSxFQUFFLFNBQVMsRUFBRSxnQkFBZ0IsRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN2TyxPQUFPLEVBQTBCLFVBQVUsRUFBZ0IsTUFBTSx3QkFBd0IsQ0FBQztBQUMxRixPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUN2RSxPQUFPLEVBQUUsU0FBUyxFQUFnQixNQUFNLDBCQUEwQixDQUFDO0FBQ25FLE9BQU8sRUFBRSxLQUFLLEVBQUUsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUNwRCxPQUFPLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRSxNQUFNLGdCQUFnQixD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ZUFBZSxFQUFFLHVCQUF1QixDQUFDLE1BQU07Z0JBQy9DLGFBQWEsRUFBRSxpQkFBaUIsQ0FBQyxJQUFJO2FBQ3RDOzs7O1lBckVRLFNBQVM7WUFOVCxPQUFPO1lBR29HLE1BQU07WUFPakgsWUFBWTtZQWJaLGNBQWMsdUJBMktsQixRQUFROzRDQUNSLE1BQU0sU0FBQyxvQ0FBb0M7NENBQzNDLFFBQVEsWUFBSSxNQUFNLFNBQUMsUUFBUTtZQXZLNEksZ0JBQWdCOzs7MkJBOEV6TCxNQUFNLFNBQUMsUUFBUTsyQkFHZixNQUFNLFNBQUMsUUFBUTt1QkFFZixLQUFLO3NCQWNMLEtBQUs7cUJBUUwsS0FBSzsyQkFNTCxLQUFLO29CQVVMLEtBQUs7Ozs7Ozs7SUE5Q04scURBQThDOzs7OztJQUc5QyxrREFBOEU7Ozs7O0lBRzlFLGtEQUE4RTs7Ozs7SUFjOUUsK0NBQTJCOzs7OztJQU8zQiw4Q0FBeUI7Ozs7O0lBTXpCLDZDQUF3Qjs7SUFVeEIsbURBQXdDOztJQVd4Qyw0Q0FBcUI7Ozs7O0lBTXJCLG9EQUFxQzs7SUFHckMsa0RBQXFDOzs7OztJQUVyQywrQ0FBc0I7Ozs7OztJQUd0QixnREFBMkU7Ozs7OztJQUUzRSx3REFBbUY7Ozs7OztJQUVuRiw2Q0FBb0U7Ozs7O0lBR3BFLHFEQUFrRDs7Ozs7O0lBR2xELCtEQUE2RDs7Ozs7O0lBRzdELHdEQUFnRDs7Ozs7SUFHaEQsc0RBQWlEOzs7OztJQUVyQyw2Q0FBMEI7Ozs7O0lBQ3BDLDhDQUF5Qjs7Ozs7SUFDekIsMkNBQXFCOzs7OztJQUNyQiw4Q0FBOEI7Ozs7O0lBQzlCLDBDQUF3Qzs7Ozs7SUFFeEMsK0NBQW9EOzs7OztJQUNwRCx1REFBMkMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBEaXJlY3Rpb25hbGl0eSB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9iaWRpJztcclxuaW1wb3J0IHsgY29lcmNlQm9vbGVhblByb3BlcnR5IH0gZnJvbSAnQGFuZ3VsYXIvY2RrL2NvZXJjaW9uJztcclxuaW1wb3J0IHsgRVNDQVBFLCBVUF9BUlJPVyB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9rZXljb2Rlcyc7XHJcbmltcG9ydCB7IE92ZXJsYXksIE92ZXJsYXlDb25maWcsIE92ZXJsYXlSZWYsIFBvc2l0aW9uU3RyYXRlZ3ksIFNjcm9sbFN0cmF0ZWd5IH0gZnJvbSAnQGFuZ3VsYXIvY2RrL292ZXJsYXknO1xyXG5pbXBvcnQgeyBDb21wb25lbnRQb3J0YWwgfSBmcm9tICdAYW5ndWxhci9jZGsvcG9ydGFsJztcclxuaW1wb3J0IHsgRE9DVU1FTlQgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xyXG5pbXBvcnQgeyBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSwgQ29tcG9uZW50LCBDb21wb25lbnRSZWYsIEVsZW1lbnRSZWYsIEV2ZW50RW1pdHRlciwgSW5qZWN0LCBJbmplY3Rpb25Ub2tlbiwgSW5wdXQsIE5nWm9uZSwgT25EZXN0cm95LCBPbkluaXQsIE9wdGlvbmFsLCBPdXRwdXQsIFZpZXdDaGlsZCwgVmlld0NvbnRhaW5lclJlZiwgVmlld0VuY2Fwc3VsYXRpb24gfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgQ2FuQ29sb3IsIENhbkNvbG9yQ3RvciwgbWl4aW5Db2xvciwgVGhlbWVQYWxldHRlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvY29yZSc7XHJcbmltcG9ydCB7IG1hdERhdGVwaWNrZXJBbmltYXRpb25zIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvZGF0ZXBpY2tlcic7XHJcbmltcG9ydCB7IE1hdERpYWxvZywgTWF0RGlhbG9nUmVmIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvZGlhbG9nJztcclxuaW1wb3J0IHsgbWVyZ2UsIFN1YmplY3QsIFN1YnNjcmlwdGlvbiB9IGZyb20gJ3J4anMnO1xyXG5pbXBvcnQgeyBmaWx0ZXIsIHRha2UgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XHJcbmltcG9ydCB7IENvbG9yIH0gZnJvbSAnLi4vLi4vbW9kZWxzJztcclxuaW1wb3J0IHsgQ29sb3JBZGFwdGVyIH0gZnJvbSAnLi4vLi4vc2VydmljZXMnO1xyXG5pbXBvcnQgeyBOZ3hNYXRDb2xvclBhbGV0dGVDb21wb25lbnQgfSBmcm9tICcuLi9jb2xvci1wYWxldHRlL2NvbG9yLXBhbGV0dGUuY29tcG9uZW50JztcclxuaW1wb3J0IHsgTmd4TWF0Q29sb3JQaWNrZXJJbnB1dCB9IGZyb20gJy4vY29sb3ItaW5wdXQuY29tcG9uZW50JztcclxuXHJcbi8qKiBJbmplY3Rpb24gdG9rZW4gdGhhdCBkZXRlcm1pbmVzIHRoZSBzY3JvbGwgaGFuZGxpbmcgd2hpbGUgdGhlIGNhbGVuZGFyIGlzIG9wZW4uICovXHJcbmV4cG9ydCBjb25zdCBOR1hfTUFUX0NPTE9SX1BJQ0tFUl9TQ1JPTExfU1RSQVRFR1kgPVxyXG4gIG5ldyBJbmplY3Rpb25Ub2tlbjwoKSA9PiBTY3JvbGxTdHJhdGVneT4oJ25neC1tYXQtY29sb3JwaWNrZXItc2Nyb2xsLXN0cmF0ZWd5Jyk7XHJcblxyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIE5HWF9NQVRfQ09MT1JfUElDS0VSX1NDUk9MTF9TVFJBVEVHWV9GQUNUT1JZKG92ZXJsYXk6IE92ZXJsYXkpOiAoKSA9PiBTY3JvbGxTdHJhdGVneSB7XHJcbiAgcmV0dXJuICgpID0+IG92ZXJsYXkuc2Nyb2xsU3RyYXRlZ2llcy5yZXBvc2l0aW9uKCk7XHJcbn1cclxuXHJcblxyXG5leHBvcnQgY29uc3QgTkdYX01BVF9DT0xPUl9QSUNLRVJfU0NST0xMX1NUUkFURUdZX0ZBQ1RPUllfUFJPVklERVIgPSB7XHJcbiAgcHJvdmlkZTogTkdYX01BVF9DT0xPUl9QSUNLRVJfU0NST0xMX1NUUkFURUdZLFxyXG4gIGRlcHM6IFtPdmVybGF5XSxcclxuICB1c2VGYWN0b3J5OiBOR1hfTUFUX0NPTE9SX1BJQ0tFUl9TQ1JPTExfU1RSQVRFR1lfRkFDVE9SWSxcclxufTtcclxuXHJcbmNsYXNzIE5neE1hdENvbG9yUGlja2VyQ29udGVudEJhc2Uge1xyXG4gIGNvbnN0cnVjdG9yKHB1YmxpYyBfZWxlbWVudFJlZjogRWxlbWVudFJlZikgeyB9XHJcbn1cclxuY29uc3QgX01hdERhdGVwaWNrZXJDb250ZW50TWl4aW5CYXNlOiBDYW5Db2xvckN0b3IgJiB0eXBlb2YgTmd4TWF0Q29sb3JQaWNrZXJDb250ZW50QmFzZSA9XHJcbiAgbWl4aW5Db2xvcihOZ3hNYXRDb2xvclBpY2tlckNvbnRlbnRCYXNlKTtcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnbmd4LW1hdC1jb2xvci1waWNrZXItY29udGVudCcsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL2NvbG9yLXBpY2tlci1jb250ZW50LmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybHM6IFsnY29sb3ItcGlja2VyLWNvbnRlbnQuY29tcG9uZW50LnNjc3MnXSxcclxuICBob3N0OiB7XHJcbiAgICAnY2xhc3MnOiAnbmd4LW1hdC1jb2xvcnBpY2tlci1jb250ZW50JyxcclxuICAgICdbQHRyYW5zZm9ybVBhbmVsXSc6ICdcImVudGVyXCInLFxyXG4gICAgJ1tjbGFzcy5uZ3gtbWF0LWNvbG9ycGlja2VyLWNvbnRlbnQtdG91Y2hdJzogJ3BpY2tlci50b3VjaFVpJyxcclxuICB9LFxyXG4gIGFuaW1hdGlvbnM6IFtcclxuICAgIG1hdERhdGVwaWNrZXJBbmltYXRpb25zLnRyYW5zZm9ybVBhbmVsLFxyXG4gICAgbWF0RGF0ZXBpY2tlckFuaW1hdGlvbnMuZmFkZUluQ2FsZW5kYXIsXHJcbiAgXSxcclxuICBleHBvcnRBczogJ25neE1hdENvbG9yUGlja2VyQ29udGVudCcsXHJcbiAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZSxcclxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcclxuICBpbnB1dHM6IFsnY29sb3InXVxyXG59KVxyXG5leHBvcnQgY2xhc3MgTmd4TWF0Q29sb3JQaWNrZXJDb250ZW50Q29tcG9uZW50IGV4dGVuZHMgX01hdERhdGVwaWNrZXJDb250ZW50TWl4aW5CYXNlXHJcbiAgaW1wbGVtZW50cyBDYW5Db2xvciB7XHJcblxyXG4gIC8qKiBSZWZlcmVuY2UgdG8gdGhlIGludGVybmFsIGNhbGVuZGFyIGNvbXBvbmVudC4gKi9cclxuICBAVmlld0NoaWxkKE5neE1hdENvbG9yUGFsZXR0ZUNvbXBvbmVudCkgX3BhbGV0dGU6IE5neE1hdENvbG9yUGFsZXR0ZUNvbXBvbmVudDtcclxuXHJcbiAgcGlja2VyOiBOZ3hNYXRDb2xvclBpY2tlckNvbXBvbmVudDtcclxuICBfaXNBYm92ZTogYm9vbGVhbjtcclxuXHJcbiAgY29uc3RydWN0b3IoZWxlbWVudFJlZjogRWxlbWVudFJlZikge1xyXG4gICAgc3VwZXIoZWxlbWVudFJlZik7XHJcbiAgfVxyXG5cclxufVxyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICduZ3gtbWF0LWNvbG9yLXBpY2tlcicsXHJcbiAgdGVtcGxhdGU6ICcnLFxyXG4gIGV4cG9ydEFzOiAnbmd4TWF0Q29sb3JQaWNrZXInLFxyXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxyXG4gIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBOZ3hNYXRDb2xvclBpY2tlckNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgT25EZXN0cm95LCBDYW5Db2xvciB7XHJcblxyXG4gIHByaXZhdGUgX3Njcm9sbFN0cmF0ZWd5OiAoKSA9PiBTY3JvbGxTdHJhdGVneTtcclxuXHJcbiAgLyoqIEVtaXRzIHdoZW4gdGhlIGRhdGVwaWNrZXIgaGFzIGJlZW4gb3BlbmVkLiAqL1xyXG4gIEBPdXRwdXQoJ29wZW5lZCcpIG9wZW5lZFN0cmVhbTogRXZlbnRFbWl0dGVyPHZvaWQ+ID0gbmV3IEV2ZW50RW1pdHRlcjx2b2lkPigpO1xyXG5cclxuICAvKiogRW1pdHMgd2hlbiB0aGUgZGF0ZXBpY2tlciBoYXMgYmVlbiBjbG9zZWQuICovXHJcbiAgQE91dHB1dCgnY2xvc2VkJykgY2xvc2VkU3RyZWFtOiBFdmVudEVtaXR0ZXI8dm9pZD4gPSBuZXcgRXZlbnRFbWl0dGVyPHZvaWQ+KCk7XHJcblxyXG4gIEBJbnB1dCgpIGdldCBkaXNhYmxlZCgpIHtcclxuICAgIHJldHVybiB0aGlzLl9kaXNhYmxlZCA9PT0gdW5kZWZpbmVkICYmIHRoaXMuX3BpY2tlcklucHV0ID9cclxuICAgICAgdGhpcy5fcGlja2VySW5wdXQuZGlzYWJsZWQgOiAhIXRoaXMuX2Rpc2FibGVkO1xyXG4gIH1cclxuICBzZXQgZGlzYWJsZWQodmFsdWU6IGJvb2xlYW4pIHtcclxuICAgIGNvbnN0IG5ld1ZhbHVlID0gY29lcmNlQm9vbGVhblByb3BlcnR5KHZhbHVlKTtcclxuXHJcbiAgICBpZiAobmV3VmFsdWUgIT09IHRoaXMuX2Rpc2FibGVkKSB7XHJcbiAgICAgIHRoaXMuX2Rpc2FibGVkID0gbmV3VmFsdWU7XHJcbiAgICAgIHRoaXMuX2Rpc2FibGVkQ2hhbmdlLm5leHQobmV3VmFsdWUpO1xyXG4gICAgfVxyXG4gIH1cclxuICBwcml2YXRlIF9kaXNhYmxlZDogYm9vbGVhbjtcclxuXHJcbiAgQElucHV0KClcclxuICBnZXQgdG91Y2hVaSgpOiBib29sZWFuIHsgcmV0dXJuIHRoaXMuX3RvdWNoVWk7IH1cclxuICBzZXQgdG91Y2hVaSh2YWx1ZTogYm9vbGVhbikge1xyXG4gICAgdGhpcy5fdG91Y2hVaSA9IGNvZXJjZUJvb2xlYW5Qcm9wZXJ0eSh2YWx1ZSk7XHJcbiAgfVxyXG4gIHByaXZhdGUgX3RvdWNoVWkgPSBmYWxzZTtcclxuXHJcbiAgLyoqIFdoZXRoZXIgdGhlIGNhbGVuZGFyIGlzIG9wZW4uICovXHJcbiAgQElucHV0KClcclxuICBnZXQgb3BlbmVkKCk6IGJvb2xlYW4geyByZXR1cm4gdGhpcy5fb3BlbmVkOyB9XHJcbiAgc2V0IG9wZW5lZCh2YWx1ZTogYm9vbGVhbikgeyB2YWx1ZSA/IHRoaXMub3BlbigpIDogdGhpcy5jbG9zZSgpOyB9XHJcbiAgcHJpdmF0ZSBfb3BlbmVkID0gZmFsc2U7XHJcbiAgXHJcbiAgLyoqIERlZmF1bHQgQ29sb3IgcGFsZXR0ZSB0byB1c2Ugb24gdGhlIGRhdGVwaWNrZXIncyBjYWxlbmRhci4gKi9cclxuICBASW5wdXQoKVxyXG4gIGdldCBkZWZhdWx0Q29sb3IoKTogVGhlbWVQYWxldHRlIHtcclxuICAgIHJldHVybiB0aGlzLl9kZWZhdWx0Q29sb3I7XHJcbiAgfVxyXG4gIHNldCBkZWZhdWx0Q29sb3IodmFsdWU6IFRoZW1lUGFsZXR0ZSkge1xyXG4gICAgdGhpcy5fZGVmYXVsdENvbG9yID0gdmFsdWU7XHJcbiAgfVxyXG4gIF9kZWZhdWx0Q29sb3I6IFRoZW1lUGFsZXR0ZSA9ICdwcmltYXJ5JztcclxuXHJcbiAgLyoqIENvbG9yIHBhbGV0dGUgdG8gdXNlIG9uIHRoZSBkYXRlcGlja2VyJ3MgY2FsZW5kYXIuICovXHJcbiAgQElucHV0KClcclxuICBnZXQgY29sb3IoKTogVGhlbWVQYWxldHRlIHtcclxuICAgIHJldHVybiB0aGlzLl9jb2xvciB8fFxyXG4gICAgICAodGhpcy5fcGlja2VySW5wdXQgPyB0aGlzLl9waWNrZXJJbnB1dC5nZXRUaGVtZVBhbGV0dGUoKSA6IHVuZGVmaW5lZCk7XHJcbiAgfVxyXG4gIHNldCBjb2xvcih2YWx1ZTogVGhlbWVQYWxldHRlKSB7XHJcbiAgICB0aGlzLl9jb2xvciA9IHZhbHVlO1xyXG4gIH1cclxuICBfY29sb3I6IFRoZW1lUGFsZXR0ZTtcclxuXHJcblxyXG4gIC8qKiBUaGUgY3VycmVudGx5IHNlbGVjdGVkIGRhdGUuICovXHJcbiAgZ2V0IF9zZWxlY3RlZCgpOiBDb2xvciB7IHJldHVybiB0aGlzLl92YWxpZFNlbGVjdGVkOyB9XHJcbiAgc2V0IF9zZWxlY3RlZCh2YWx1ZTogQ29sb3IpIHsgdGhpcy5fdmFsaWRTZWxlY3RlZCA9IHZhbHVlOyB9XHJcbiAgcHJpdmF0ZSBfdmFsaWRTZWxlY3RlZDogQ29sb3IgPSBudWxsO1xyXG5cclxuXHJcbiAgX3BpY2tlcklucHV0OiBOZ3hNYXRDb2xvclBpY2tlcklucHV0O1xyXG4gIC8qKiBBIHJlZmVyZW5jZSB0byB0aGUgb3ZlcmxheSB3aGVuIHRoZSBwaWNrZXIgaXMgb3BlbmVkIGFzIGEgcG9wdXAuICovXHJcbiAgX3BvcHVwUmVmOiBPdmVybGF5UmVmO1xyXG5cclxuICAvKiogQSByZWZlcmVuY2UgdG8gdGhlIGRpYWxvZyB3aGVuIHRoZSBwaWNrZXIgaXMgb3BlbmVkIGFzIGEgZGlhbG9nLiAqL1xyXG4gIHByaXZhdGUgX2RpYWxvZ1JlZjogTWF0RGlhbG9nUmVmPE5neE1hdENvbG9yUGlja2VyQ29udGVudENvbXBvbmVudD4gfCBudWxsO1xyXG4gIC8qKiBSZWZlcmVuY2UgdG8gdGhlIGNvbXBvbmVudCBpbnN0YW50aWF0ZWQgaW4gcG9wdXAgbW9kZS4gKi9cclxuICBwcml2YXRlIF9wb3B1cENvbXBvbmVudFJlZjogQ29tcG9uZW50UmVmPE5neE1hdENvbG9yUGlja2VyQ29udGVudENvbXBvbmVudD4gfCBudWxsO1xyXG4gIC8qKiBBIHBvcnRhbCBjb250YWluaW5nIHRoZSBjb250ZW50IGZvciB0aGlzIHBpY2tlci4gKi9cclxuICBwcml2YXRlIF9wb3J0YWw6IENvbXBvbmVudFBvcnRhbDxOZ3hNYXRDb2xvclBpY2tlckNvbnRlbnRDb21wb25lbnQ+O1xyXG5cclxuICAvKiogRW1pdHMgd2hlbiB0aGUgZGF0ZXBpY2tlciBpcyBkaXNhYmxlZC4gKi9cclxuICByZWFkb25seSBfZGlzYWJsZWRDaGFuZ2UgPSBuZXcgU3ViamVjdDxib29sZWFuPigpO1xyXG5cclxuICAvKiogVGhlIGVsZW1lbnQgdGhhdCB3YXMgZm9jdXNlZCBiZWZvcmUgdGhlIGRhdGVwaWNrZXIgd2FzIG9wZW5lZC4gKi9cclxuICBwcml2YXRlIF9mb2N1c2VkRWxlbWVudEJlZm9yZU9wZW46IEhUTUxFbGVtZW50IHwgbnVsbCA9IG51bGw7XHJcblxyXG4gIC8qKiBTdWJzY3JpcHRpb24gdG8gdmFsdWUgY2hhbmdlcyBpbiB0aGUgYXNzb2NpYXRlZCBpbnB1dCBlbGVtZW50LiAqL1xyXG4gIHByaXZhdGUgX2lucHV0U3Vic2NyaXB0aW9uID0gU3Vic2NyaXB0aW9uLkVNUFRZO1xyXG5cclxuICAvKiogRW1pdHMgbmV3IHNlbGVjdGVkIGRhdGUgd2hlbiBzZWxlY3RlZCBkYXRlIGNoYW5nZXMuICovXHJcbiAgcmVhZG9ubHkgX3NlbGVjdGVkQ2hhbmdlZCA9IG5ldyBTdWJqZWN0PENvbG9yPigpO1xyXG5cclxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIF9kaWFsb2c6IE1hdERpYWxvZyxcclxuICAgIHByaXZhdGUgX292ZXJsYXk6IE92ZXJsYXksXHJcbiAgICBwcml2YXRlIF96b25lOiBOZ1pvbmUsXHJcbiAgICBwcml2YXRlIF9hZGFwdGVyOiBDb2xvckFkYXB0ZXIsXHJcbiAgICBAT3B0aW9uYWwoKSBwcml2YXRlIF9kaXI6IERpcmVjdGlvbmFsaXR5LFxyXG4gICAgQEluamVjdChOR1hfTUFUX0NPTE9SX1BJQ0tFUl9TQ1JPTExfU1RSQVRFR1kpIHNjcm9sbFN0cmF0ZWd5OiBhbnksXHJcbiAgICBAT3B0aW9uYWwoKSBASW5qZWN0KERPQ1VNRU5UKSBwcml2YXRlIF9kb2N1bWVudDogYW55LFxyXG4gICAgcHJpdmF0ZSBfdmlld0NvbnRhaW5lclJlZjogVmlld0NvbnRhaW5lclJlZikge1xyXG4gICAgdGhpcy5fc2Nyb2xsU3RyYXRlZ3kgPSBzY3JvbGxTdHJhdGVneTtcclxuICB9XHJcblxyXG4gIG5nT25Jbml0KCkge1xyXG4gIH1cclxuXHJcbiAgbmdPbkRlc3Ryb3koKSB7XHJcbiAgICB0aGlzLmNsb3NlKCk7XHJcbiAgICB0aGlzLl9pbnB1dFN1YnNjcmlwdGlvbi51bnN1YnNjcmliZSgpO1xyXG4gICAgdGhpcy5fZGlzYWJsZWRDaGFuZ2UuY29tcGxldGUoKTtcclxuXHJcbiAgICBpZiAodGhpcy5fcG9wdXBSZWYpIHtcclxuICAgICAgdGhpcy5fcG9wdXBSZWYuZGlzcG9zZSgpO1xyXG4gICAgICB0aGlzLl9wb3B1cENvbXBvbmVudFJlZiA9IG51bGw7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuXHJcbiAgLyoqIFNlbGVjdHMgdGhlIGdpdmVuIGRhdGUgKi9cclxuICBzZWxlY3QobmV4dFZhbDogQ29sb3IpOiB2b2lkIHtcclxuICAgIGxldCBvbGRWYWx1ZSA9IHRoaXMuX3NlbGVjdGVkO1xyXG4gICAgdGhpcy5fc2VsZWN0ZWQgPSBuZXh0VmFsO1xyXG4gICAgaWYgKCF0aGlzLl9hZGFwdGVyLnNhbWVDb2xvcihvbGRWYWx1ZSwgdGhpcy5fc2VsZWN0ZWQpKSB7XHJcbiAgICAgIHRoaXMuX3NlbGVjdGVkQ2hhbmdlZC5uZXh0KG5leHRWYWwpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcblxyXG4gIC8qKlxyXG4gKiBSZWdpc3RlciBhbiBpbnB1dCB3aXRoIHRoaXMgZGF0ZXBpY2tlci5cclxuICogQHBhcmFtIGlucHV0IFRoZSBkYXRlcGlja2VyIGlucHV0IHRvIHJlZ2lzdGVyIHdpdGggdGhpcyBkYXRlcGlja2VyLlxyXG4gKi9cclxuICByZWdpc3RlcklucHV0KGlucHV0OiBOZ3hNYXRDb2xvclBpY2tlcklucHV0KTogdm9pZCB7XHJcbiAgICBpZiAodGhpcy5fcGlja2VySW5wdXQpIHtcclxuICAgICAgdGhyb3cgRXJyb3IoJ0EgQ29sb3JQaWNrZXIgY2FuIG9ubHkgYmUgYXNzb2NpYXRlZCB3aXRoIGEgc2luZ2xlIGlucHV0LicpO1xyXG4gICAgfVxyXG4gICAgdGhpcy5fcGlja2VySW5wdXQgPSBpbnB1dDtcclxuICAgIHRoaXMuX2lucHV0U3Vic2NyaXB0aW9uID1cclxuICAgICAgdGhpcy5fcGlja2VySW5wdXQuX3ZhbHVlQ2hhbmdlLnN1YnNjcmliZSgodmFsdWU6IENvbG9yKSA9PiB0aGlzLl9zZWxlY3RlZCA9IHZhbHVlKTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBvcGVuKCk6IHZvaWQge1xyXG4gICAgaWYgKHRoaXMuX29wZW5lZCB8fCB0aGlzLmRpc2FibGVkKSB7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuICAgIGlmICghdGhpcy5fcGlja2VySW5wdXQpIHtcclxuICAgICAgdGhyb3cgRXJyb3IoJ0F0dGVtcHRlZCB0byBvcGVuIGFuIENvbG9yUGlja2VyIHdpdGggbm8gYXNzb2NpYXRlZCBpbnB1dC4nKTtcclxuICAgIH1cclxuXHJcbiAgICBpZiAodGhpcy5fZG9jdW1lbnQpIHtcclxuICAgICAgdGhpcy5fZm9jdXNlZEVsZW1lbnRCZWZvcmVPcGVuID0gdGhpcy5fZG9jdW1lbnQuYWN0aXZlRWxlbWVudDtcclxuICAgIH1cclxuXHJcbiAgICB0aGlzLnRvdWNoVWkgPyB0aGlzLl9vcGVuQXNEaWFsb2coKSA6IHRoaXMuX29wZW5Bc1BvcHVwKCk7XHJcbiAgICB0aGlzLl9vcGVuZWQgPSB0cnVlO1xyXG4gICAgdGhpcy5vcGVuZWRTdHJlYW0uZW1pdCgpO1xyXG4gIH1cclxuXHJcbiAgLyoqIE9wZW4gdGhlIGNhbGVuZGFyIGFzIGEgZGlhbG9nLiAqL1xyXG4gIHByaXZhdGUgX29wZW5Bc0RpYWxvZygpOiB2b2lkIHtcclxuXHJcbiAgICBpZiAodGhpcy5fZGlhbG9nUmVmKSB7XHJcbiAgICAgIHRoaXMuX2RpYWxvZ1JlZi5jbG9zZSgpO1xyXG4gICAgfVxyXG5cclxuICAgIHRoaXMuX2RpYWxvZ1JlZiA9IHRoaXMuX2RpYWxvZy5vcGVuPE5neE1hdENvbG9yUGlja2VyQ29udGVudENvbXBvbmVudD4oTmd4TWF0Q29sb3JQaWNrZXJDb250ZW50Q29tcG9uZW50LCB7XHJcbiAgICAgIGRpcmVjdGlvbjogdGhpcy5fZGlyID8gdGhpcy5fZGlyLnZhbHVlIDogJ2x0cicsXHJcbiAgICAgIHZpZXdDb250YWluZXJSZWY6IHRoaXMuX3ZpZXdDb250YWluZXJSZWYsXHJcbiAgICAgIHBhbmVsQ2xhc3M6ICduZ3gtbWF0LWNvbG9ycGlja2VyLWRpYWxvZycsXHJcbiAgICB9KTtcclxuXHJcbiAgICB0aGlzLl9kaWFsb2dSZWYuYWZ0ZXJDbG9zZWQoKS5zdWJzY3JpYmUoKCkgPT4gdGhpcy5jbG9zZSgpKTtcclxuICAgIHRoaXMuX2RpYWxvZ1JlZi5jb21wb25lbnRJbnN0YW5jZS5waWNrZXIgPSB0aGlzO1xyXG4gICAgdGhpcy5fc2V0Q29sb3IoKTtcclxuICB9XHJcblxyXG4gIC8qKiBPcGVuIHRoZSBjYWxlbmRhciBhcyBhIHBvcHVwLiAqL1xyXG4gIHByaXZhdGUgX29wZW5Bc1BvcHVwKCk6IHZvaWQge1xyXG5cclxuICAgIGlmICghdGhpcy5fcG9ydGFsKSB7XHJcbiAgICAgIHRoaXMuX3BvcnRhbCA9IG5ldyBDb21wb25lbnRQb3J0YWw8Tmd4TWF0Q29sb3JQaWNrZXJDb250ZW50Q29tcG9uZW50PihOZ3hNYXRDb2xvclBpY2tlckNvbnRlbnRDb21wb25lbnQsXHJcbiAgICAgICAgdGhpcy5fdmlld0NvbnRhaW5lclJlZik7XHJcbiAgICB9XHJcblxyXG4gICAgaWYgKCF0aGlzLl9wb3B1cFJlZikge1xyXG4gICAgICB0aGlzLl9jcmVhdGVQb3B1cCgpO1xyXG4gICAgfVxyXG5cclxuICAgIGlmICghdGhpcy5fcG9wdXBSZWYuaGFzQXR0YWNoZWQoKSkge1xyXG4gICAgICB0aGlzLl9wb3B1cENvbXBvbmVudFJlZiA9IHRoaXMuX3BvcHVwUmVmLmF0dGFjaCh0aGlzLl9wb3J0YWwpO1xyXG4gICAgICB0aGlzLl9wb3B1cENvbXBvbmVudFJlZi5pbnN0YW5jZS5waWNrZXIgPSB0aGlzO1xyXG4gICAgICB0aGlzLl9zZXRDb2xvcigpO1xyXG5cclxuICAgICAgLy8gVXBkYXRlIHRoZSBwb3NpdGlvbiBvbmNlIHRoZSBjYWxlbmRhciBoYXMgcmVuZGVyZWQuXHJcbiAgICAgIHRoaXMuX3pvbmUub25TdGFibGUuYXNPYnNlcnZhYmxlKCkucGlwZSh0YWtlKDEpKS5zdWJzY3JpYmUoKCkgPT4ge1xyXG4gICAgICAgIHRoaXMuX3BvcHVwUmVmLnVwZGF0ZVBvc2l0aW9uKCk7XHJcbiAgICAgIH0pO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgLyoqIENyZWF0ZSB0aGUgcG9wdXAuICovXHJcbiAgcHJpdmF0ZSBfY3JlYXRlUG9wdXAoKTogdm9pZCB7XHJcbiAgICBjb25zdCBvdmVybGF5Q29uZmlnID0gbmV3IE92ZXJsYXlDb25maWcoe1xyXG4gICAgICBwb3NpdGlvblN0cmF0ZWd5OiB0aGlzLl9jcmVhdGVQb3B1cFBvc2l0aW9uU3RyYXRlZ3koKSxcclxuICAgICAgaGFzQmFja2Ryb3A6IHRydWUsXHJcbiAgICAgIGJhY2tkcm9wQ2xhc3M6ICdtYXQtb3ZlcmxheS10cmFuc3BhcmVudC1iYWNrZHJvcCcsXHJcbiAgICAgIGRpcmVjdGlvbjogdGhpcy5fZGlyLFxyXG4gICAgICBzY3JvbGxTdHJhdGVneTogdGhpcy5fc2Nyb2xsU3RyYXRlZ3koKSxcclxuICAgICAgcGFuZWxDbGFzczogJ21hdC1jb2xvcnBpY2tlci1wb3B1cCcsXHJcbiAgICB9KTtcclxuXHJcbiAgICB0aGlzLl9wb3B1cFJlZiA9IHRoaXMuX292ZXJsYXkuY3JlYXRlKG92ZXJsYXlDb25maWcpO1xyXG4gICAgdGhpcy5fcG9wdXBSZWYub3ZlcmxheUVsZW1lbnQuc2V0QXR0cmlidXRlKCdyb2xlJywgJ2RpYWxvZycpO1xyXG5cclxuICAgIG1lcmdlKFxyXG4gICAgICB0aGlzLl9wb3B1cFJlZi5iYWNrZHJvcENsaWNrKCksXHJcbiAgICAgIHRoaXMuX3BvcHVwUmVmLmRldGFjaG1lbnRzKCksXHJcbiAgICAgIHRoaXMuX3BvcHVwUmVmLmtleWRvd25FdmVudHMoKS5waXBlKGZpbHRlcihldmVudCA9PiB7XHJcbiAgICAgICAgLy8gQ2xvc2luZyBvbiBhbHQgKyB1cCBpcyBvbmx5IHZhbGlkIHdoZW4gdGhlcmUncyBhbiBpbnB1dCBhc3NvY2lhdGVkIHdpdGggdGhlIGRhdGVwaWNrZXIuXHJcbiAgICAgICAgcmV0dXJuIGV2ZW50LmtleUNvZGUgPT09IEVTQ0FQRSB8fFxyXG4gICAgICAgICAgKHRoaXMuX3BpY2tlcklucHV0ICYmIGV2ZW50LmFsdEtleSAmJiBldmVudC5rZXlDb2RlID09PSBVUF9BUlJPVyk7XHJcbiAgICAgIH0pKVxyXG4gICAgKS5zdWJzY3JpYmUoZXZlbnQgPT4ge1xyXG4gICAgICBpZiAoZXZlbnQpIHtcclxuICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xyXG4gICAgICB9XHJcblxyXG4gICAgICB0aGlzLmNsb3NlKCk7XHJcbiAgICB9KTtcclxuICB9XHJcblxyXG5cclxuICBjbG9zZSgpOiB2b2lkIHtcclxuICAgIGlmICghdGhpcy5fb3BlbmVkKSB7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuICAgIGlmICh0aGlzLl9wb3B1cFJlZiAmJiB0aGlzLl9wb3B1cFJlZi5oYXNBdHRhY2hlZCgpKSB7XHJcbiAgICAgIHRoaXMuX3BvcHVwUmVmLmRldGFjaCgpO1xyXG4gICAgfVxyXG4gICAgaWYgKHRoaXMuX2RpYWxvZ1JlZikge1xyXG4gICAgICB0aGlzLl9kaWFsb2dSZWYuY2xvc2UoKTtcclxuICAgICAgdGhpcy5fZGlhbG9nUmVmID0gbnVsbDtcclxuICAgIH1cclxuICAgIGlmICh0aGlzLl9wb3J0YWwgJiYgdGhpcy5fcG9ydGFsLmlzQXR0YWNoZWQpIHtcclxuICAgICAgdGhpcy5fcG9ydGFsLmRldGFjaCgpO1xyXG4gICAgfVxyXG5cclxuICAgIGNvbnN0IGNvbXBsZXRlQ2xvc2UgPSAoKSA9PiB7XHJcbiAgICAgIC8vIFRoZSBgX29wZW5lZGAgY291bGQndmUgYmVlbiByZXNldCBhbHJlYWR5IGlmXHJcbiAgICAgIC8vIHdlIGdvdCB0d28gZXZlbnRzIGluIHF1aWNrIHN1Y2Nlc3Npb24uXHJcbiAgICAgIGlmICh0aGlzLl9vcGVuZWQpIHtcclxuICAgICAgICB0aGlzLl9vcGVuZWQgPSBmYWxzZTtcclxuICAgICAgICB0aGlzLmNsb3NlZFN0cmVhbS5lbWl0KCk7XHJcbiAgICAgICAgdGhpcy5fZm9jdXNlZEVsZW1lbnRCZWZvcmVPcGVuID0gbnVsbDtcclxuICAgICAgfVxyXG4gICAgfTtcclxuXHJcbiAgICBpZiAodGhpcy5fZm9jdXNlZEVsZW1lbnRCZWZvcmVPcGVuICYmXHJcbiAgICAgIHR5cGVvZiB0aGlzLl9mb2N1c2VkRWxlbWVudEJlZm9yZU9wZW4uZm9jdXMgPT09ICdmdW5jdGlvbicpIHtcclxuICAgICAgLy8gQmVjYXVzZSBJRSBtb3ZlcyBmb2N1cyBhc3luY2hyb25vdXNseSwgd2UgY2FuJ3QgY291bnQgb24gaXQgYmVpbmcgcmVzdG9yZWQgYmVmb3JlIHdlJ3ZlXHJcbiAgICAgIC8vIG1hcmtlZCB0aGUgZGF0ZXBpY2tlciBhcyBjbG9zZWQuIElmIHRoZSBldmVudCBmaXJlcyBvdXQgb2Ygc2VxdWVuY2UgYW5kIHRoZSBlbGVtZW50IHRoYXRcclxuICAgICAgLy8gd2UncmUgcmVmb2N1c2luZyBvcGVucyB0aGUgZGF0ZXBpY2tlciBvbiBmb2N1cywgdGhlIHVzZXIgY291bGQgYmUgc3R1Y2sgd2l0aCBub3QgYmVpbmdcclxuICAgICAgLy8gYWJsZSB0byBjbG9zZSB0aGUgY2FsZW5kYXIgYXQgYWxsLiBXZSB3b3JrIGFyb3VuZCBpdCBieSBtYWtpbmcgdGhlIGxvZ2ljLCB0aGF0IG1hcmtzXHJcbiAgICAgIC8vIHRoZSBkYXRlcGlja2VyIGFzIGNsb3NlZCwgYXN5bmMgYXMgd2VsbC5cclxuICAgICAgdGhpcy5fZm9jdXNlZEVsZW1lbnRCZWZvcmVPcGVuLmZvY3VzKCk7XHJcbiAgICAgIHNldFRpbWVvdXQoY29tcGxldGVDbG9zZSk7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICBjb21wbGV0ZUNsb3NlKCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAvKiogUGFzc2VzIHRoZSBjdXJyZW50IHRoZW1lIGNvbG9yIGFsb25nIHRvIHRoZSBjYWxlbmRhciBvdmVybGF5LiAqL1xyXG4gIHByaXZhdGUgX3NldENvbG9yKCk6IHZvaWQge1xyXG4gICAgY29uc3QgY29sb3IgPSB0aGlzLmNvbG9yO1xyXG4gICAgaWYgKHRoaXMuX3BvcHVwQ29tcG9uZW50UmVmKSB7XHJcbiAgICAgIHRoaXMuX3BvcHVwQ29tcG9uZW50UmVmLmluc3RhbmNlLmNvbG9yID0gY29sb3I7XHJcbiAgICB9XHJcbiAgICBpZiAodGhpcy5fZGlhbG9nUmVmKSB7XHJcbiAgICAgIHRoaXMuX2RpYWxvZ1JlZi5jb21wb25lbnRJbnN0YW5jZS5jb2xvciA9IGNvbG9yO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgLyoqIENyZWF0ZSB0aGUgcG9wdXAgUG9zaXRpb25TdHJhdGVneS4gKi9cclxuICBwcml2YXRlIF9jcmVhdGVQb3B1cFBvc2l0aW9uU3RyYXRlZ3koKTogUG9zaXRpb25TdHJhdGVneSB7XHJcbiAgICByZXR1cm4gdGhpcy5fb3ZlcmxheS5wb3NpdGlvbigpXHJcbiAgICAgIC5mbGV4aWJsZUNvbm5lY3RlZFRvKHRoaXMuX3BpY2tlcklucHV0LmdldENvbm5lY3RlZE92ZXJsYXlPcmlnaW4oKSlcclxuICAgICAgLndpdGhUcmFuc2Zvcm1PcmlnaW5PbignLm5neC1tYXQtY29sb3JwaWNrZXItY29udGVudCcpXHJcbiAgICAgIC53aXRoRmxleGlibGVEaW1lbnNpb25zKGZhbHNlKVxyXG4gICAgICAud2l0aFZpZXdwb3J0TWFyZ2luKDgpXHJcbiAgICAgIC53aXRoTG9ja2VkUG9zaXRpb24oKVxyXG4gICAgICAud2l0aFBvc2l0aW9ucyhbXHJcbiAgICAgICAge1xyXG4gICAgICAgICAgb3JpZ2luWDogJ3N0YXJ0JyxcclxuICAgICAgICAgIG9yaWdpblk6ICdib3R0b20nLFxyXG4gICAgICAgICAgb3ZlcmxheVg6ICdzdGFydCcsXHJcbiAgICAgICAgICBvdmVybGF5WTogJ3RvcCdcclxuICAgICAgICB9LFxyXG4gICAgICAgIHtcclxuICAgICAgICAgIG9yaWdpblg6ICdzdGFydCcsXHJcbiAgICAgICAgICBvcmlnaW5ZOiAndG9wJyxcclxuICAgICAgICAgIG92ZXJsYXlYOiAnc3RhcnQnLFxyXG4gICAgICAgICAgb3ZlcmxheVk6ICdib3R0b20nXHJcbiAgICAgICAgfSxcclxuICAgICAgICB7XHJcbiAgICAgICAgICBvcmlnaW5YOiAnZW5kJyxcclxuICAgICAgICAgIG9yaWdpblk6ICdib3R0b20nLFxyXG4gICAgICAgICAgb3ZlcmxheVg6ICdlbmQnLFxyXG4gICAgICAgICAgb3ZlcmxheVk6ICd0b3AnXHJcbiAgICAgICAgfSxcclxuICAgICAgICB7XHJcbiAgICAgICAgICBvcmlnaW5YOiAnZW5kJyxcclxuICAgICAgICAgIG9yaWdpblk6ICd0b3AnLFxyXG4gICAgICAgICAgb3ZlcmxheVg6ICdlbmQnLFxyXG4gICAgICAgICAgb3ZlcmxheVk6ICdib3R0b20nXHJcbiAgICAgICAgfVxyXG4gICAgICBdKTtcclxuICB9XHJcblxyXG5cclxufVxyXG4iXX0=
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29sb3ItcGlja2VyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIuLi8uLi8uLi8uLi9wcm9qZWN0cy9jb2xvci1waWNrZXIvc3JjLyIsInNvdXJjZXMiOlsibGliL2NvbXBvbmVudHMvY29sb3ItcGlja2VyL2NvbG9yLXBpY2tlci5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBQSxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFDbkQsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDOUQsT0FBTyxFQUFFLE1BQU0sRUFBRSxRQUFRLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUN6RCxPQUFPLEVBQUUsT0FBTyxFQUFFLGFBQWEsRUFBZ0QsTUFBTSxzQkFBc0IsQ0FBQztBQUM1RyxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDdEQsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQzNDLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxTQUFTLEVBQWdCLFVBQVUsRUFBRSxZQUFZLEVBQUUsTUFBTSxFQUFFLGNBQWMsRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFxQixRQUFRLEVBQUUsTUFBTSxFQUFFLFNBQVMsRUFBRSxnQkFBZ0IsRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN2TyxPQUFPLEVBQTBCLFVBQVUsRUFBZ0IsTUFBTSx3QkFBd0IsQ0FBQztBQUMxRixPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUN2RSxPQUFPLEVBQUUsU0FBUyxFQUFnQixNQUFNLDBCQUEwQixDQUFDO0FBQ25FLE9BQU8sRUFBRSxLQUFLLEVBQUUsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUNwRCxPQUFPLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRTlD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LHVCQUF1QixDQUFDLE1BQU07Z0JBQy9DLGFBQWEsRUFBRSxpQkFBaUIsQ0FBQyxJQUFJO2FBQ3RDOzs7O1lBckVRLFNBQVM7WUFOVCxPQUFPO1lBR29HLE1BQU07WUFPakgsWUFBWTtZQWJaLGNBQWMsdUJBMktsQixRQUFROzRDQUNSLE1BQU0sU0FBQyxvQ0FBb0M7NENBQzNDLFFBQVEsWUFBSSxNQUFNLFNBQUMsUUFBUTtZQXZLNEksZ0JBQWdCOzs7MkJBOEV6TCxNQUFNLFNBQUMsUUFBUTsyQkFHZixNQUFNLFNBQUMsUUFBUTt1QkFFZixLQUFLO3NCQWNMLEtBQUs7cUJBUUwsS0FBSzsyQkFNTCxLQUFLO29CQVVMLEtBQUs7Ozs7Ozs7SUE5Q04scURBQThDOzs7OztJQUc5QyxrREFBOEU7Ozs7O0lBRzlFLGtEQUE4RTs7Ozs7SUFjOUUsK0NBQTJCOzs7OztJQU8zQiw4Q0FBeUI7Ozs7O0lBTXpCLDZDQUF3Qjs7SUFVeEIsbURBQXdDOztJQVd4Qyw0Q0FBcUI7Ozs7O0lBTXJCLG9EQUFxQzs7SUFHckMsa0RBQXFDOzs7OztJQUVyQywrQ0FBc0I7Ozs7OztJQUd0QixnREFBMkU7Ozs7OztJQUUzRSx3REFBbUY7Ozs7OztJQUVuRiw2Q0FBb0U7Ozs7O0lBR3BFLHFEQUFrRDs7Ozs7O0lBR2xELCtEQUE2RDs7Ozs7O0lBRzdELHdEQUFnRDs7Ozs7SUFHaEQsc0RBQWlEOzs7OztJQUVyQyw2Q0FBMEI7Ozs7O0lBQ3BDLDhDQUF5Qjs7Ozs7SUFDekIsMkNBQXFCOzs7OztJQUNyQiw4Q0FBOEI7Ozs7O0lBQzlCLDBDQUF3Qzs7Ozs7SUFFeEMsK0NBQW9EOzs7OztJQUNwRCx1REFBMkMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBEaXJlY3Rpb25hbGl0eSB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9iaWRpJztcclxuaW1wb3J0IHsgY29lcmNlQm9vbGVhblByb3BlcnR5IH0gZnJvbSAnQGFuZ3VsYXIvY2RrL2NvZXJjaW9uJztcclxuaW1wb3J0IHsgRVNDQVBFLCBVUF9BUlJPVyB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9rZXljb2Rlcyc7XHJcbmltcG9ydCB7IE92ZXJsYXksIE92ZXJsYXlDb25maWcsIE92ZXJsYXlSZWYsIFBvc2l0aW9uU3RyYXRlZ3ksIFNjcm9sbFN0cmF0ZWd5IH0gZnJvbSAnQGFuZ3VsYXIvY2RrL292ZXJsYXknO1xyXG5pbXBvcnQgeyBDb21wb25lbnRQb3J0YWwgfSBmcm9tICdAYW5ndWxhci9jZGsvcG9ydGFsJztcclxuaW1wb3J0IHsgRE9DVU1FTlQgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xyXG5pbXBvcnQgeyBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSwgQ29tcG9uZW50LCBDb21wb25lbnRSZWYsIEVsZW1lbnRSZWYsIEV2ZW50RW1pdHRlciwgSW5qZWN0LCBJbmplY3Rpb25Ub2tlbiwgSW5wdXQsIE5nWm9uZSwgT25EZXN0cm95LCBPbkluaXQsIE9wdGlvbmFsLCBPdXRwdXQsIFZpZXdDaGlsZCwgVmlld0NvbnRhaW5lclJlZiwgVmlld0VuY2Fwc3VsYXRpb24gfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgQ2FuQ29sb3IsIENhbkNvbG9yQ3RvciwgbWl4aW5Db2xvciwgVGhlbWVQYWxldHRlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvY29yZSc7XHJcbmltcG9ydCB7IG1hdERhdGVwaWNrZXJBbmltYXRpb25zIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvZGF0ZXBpY2tlcic7XHJcbmltcG9ydCB7IE1hdERpYWxvZywgTWF0RGlhbG9nUmVmIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvZGlhbG9nJztcclxuaW1wb3J0IHsgbWVyZ2UsIFN1YmplY3QsIFN1YnNjcmlwdGlvbiB9IGZyb20gJ3J4anMnO1xyXG5pbXBvcnQgeyBmaWx0ZXIsIHRha2UgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XHJcbmltcG9ydCB7IENvbG9yIH0gZnJvbSAnLi4vLi4vbW9kZWxzJztcclxuaW1wb3J0IHsgQ29sb3JBZGFwdGVyIH0gZnJvbSAnLi4vLi4vc2VydmljZXMnO1xyXG5pbXBvcnQgeyBOZ3hNYXRDb2xvclBhbGV0dGVDb21wb25lbnQgfSBmcm9tICcuLi9jb2xvci1wYWxldHRlL2NvbG9yLXBhbGV0dGUuY29tcG9uZW50JztcclxuaW1wb3J0IHsgTmd4TWF0Q29sb3JQaWNrZXJJbnB1dCB9IGZyb20gJy4vY29sb3ItaW5wdXQuY29tcG9uZW50JztcclxuXHJcbi8qKiBJbmplY3Rpb24gdG9rZW4gdGhhdCBkZXRlcm1pbmVzIHRoZSBzY3JvbGwgaGFuZGxpbmcgd2hpbGUgdGhlIGNhbGVuZGFyIGlzIG9wZW4uICovXHJcbmV4cG9ydCBjb25zdCBOR1hfTUFUX0NPTE9SX1BJQ0tFUl9TQ1JPTExfU1RSQVRFR1kgPVxyXG4gIG5ldyBJbmplY3Rpb25Ub2tlbjwoKSA9PiBTY3JvbGxTdHJhdGVneT4oJ25neC1tYXQtY29sb3JwaWNrZXItc2Nyb2xsLXN0cmF0ZWd5Jyk7XHJcblxyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIE5HWF9NQVRfQ09MT1JfUElDS0VSX1NDUk9MTF9TVFJBVEVHWV9GQUNUT1JZKG92ZXJsYXk6IE92ZXJsYXkpOiAoKSA9PiBTY3JvbGxTdHJhdGVneSB7XHJcbiAgcmV0dXJuICgpID0+IG92ZXJsYXkuc2Nyb2xsU3RyYXRlZ2llcy5yZXBvc2l0aW9uKCk7XHJcbn1cclxuXHJcblxyXG5leHBvcnQgY29uc3QgTkdYX01BVF9DT0xPUl9QSUNLRVJfU0NST0xMX1NUUkFURUdZX0ZBQ1RPUllfUFJPVklERVIgPSB7XHJcbiAgcHJvdmlkZTogTkdYX01BVF9DT0xPUl9QSUNLRVJfU0NST0xMX1NUUkFURUdZLFxyXG4gIGRlcHM6IFtPdmVybGF5XSxcclxuICB1c2VGYWN0b3J5OiBOR1hfTUFUX0NPTE9SX1BJQ0tFUl9TQ1JPTExfU1RSQVRFR1lfRkFDVE9SWSxcclxufTtcclxuXHJcbmNsYXNzIE5neE1hdENvbG9yUGlja2VyQ29udGVudEJhc2Uge1xyXG4gIGNvbnN0cnVjdG9yKHB1YmxpYyBfZWxlbWVudFJlZjogRWxlbWVudFJlZikgeyB9XHJcbn1cclxuY29uc3QgX01hdERhdGVwaWNrZXJDb250ZW50TWl4aW5CYXNlOiBDYW5Db2xvckN0b3IgJiB0eXBlb2YgTmd4TWF0Q29sb3JQaWNrZXJDb250ZW50QmFzZSA9XHJcbiAgbWl4aW5Db2xvcihOZ3hNYXRDb2xvclBpY2tlckNvbnRlbnRCYXNlKTtcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnbmd4LW1hdC1jb2xvci1waWNrZXItY29udGVudCcsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL2NvbG9yLXBpY2tlci1jb250ZW50LmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybHM6IFsnY29sb3ItcGlja2VyLWNvbnRlbnQuY29tcG9uZW50LnNjc3MnXSxcclxuICBob3N0OiB7XHJcbiAgICAnY2xhc3MnOiAnbmd4LW1hdC1jb2xvcnBpY2tlci1jb250ZW50JyxcclxuICAgICdbQHRyYW5zZm9ybVBhbmVsXSc6ICdcImVudGVyXCInLFxyXG4gICAgJ1tjbGFzcy5uZ3gtbWF0LWNvbG9ycGlja2VyLWNvbnRlbnQtdG91Y2hdJzogJ3BpY2tlci50b3VjaFVpJyxcclxuICB9LFxyXG4gIGFuaW1hdGlvbnM6IFtcclxuICAgIG1hdERhdGVwaWNrZXJBbmltYXRpb25zLnRyYW5zZm9ybVBhbmVsLFxyXG4gICAgbWF0RGF0ZXBpY2tlckFuaW1hdGlvbnMuZmFkZUluQ2FsZW5kYXIsXHJcbiAgXSxcclxuICBleHBvcnRBczogJ25neE1hdENvbG9yUGlja2VyQ29udGVudCcsXHJcbiAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZSxcclxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcclxuICBpbnB1dHM6IFsnY29sb3InXVxyXG59KVxyXG5leHBvcnQgY2xhc3MgTmd4TWF0Q29sb3JQaWNrZXJDb250ZW50Q29tcG9uZW50IGV4dGVuZHMgX01hdERhdGVwaWNrZXJDb250ZW50TWl4aW5CYXNlXHJcbiAgaW1wbGVtZW50cyBDYW5Db2xvciB7XHJcblxyXG4gIC8qKiBSZWZlcmVuY2UgdG8gdGhlIGludGVybmFsIGNhbGVuZGFyIGNvbXBvbmVudC4gKi9cclxuICBAVmlld0NoaWxkKE5neE1hdENvbG9yUGFsZXR0ZUNvbXBvbmVudCkgX3BhbGV0dGU6IE5neE1hdENvbG9yUGFsZXR0ZUNvbXBvbmVudDtcclxuXHJcbiAgcGlja2VyOiBOZ3hNYXRDb2xvclBpY2tlckNvbXBvbmVudDtcclxuICBfaXNBYm92ZTogYm9vbGVhbjtcclxuXHJcbiAgY29uc3RydWN0b3IoZWxlbWVudFJlZjogRWxlbWVudFJlZikge1xyXG4gICAgc3VwZXIoZWxlbWVudFJlZik7XHJcbiAgfVxyXG5cclxufVxyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICduZ3gtbWF0LWNvbG9yLXBpY2tlcicsXHJcbiAgdGVtcGxhdGU6ICcnLFxyXG4gIGV4cG9ydEFzOiAnbmd4TWF0Q29sb3JQaWNrZXInLFxyXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxyXG4gIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBOZ3hNYXRDb2xvclBpY2tlckNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgT25EZXN0cm95LCBDYW5Db2xvciB7XHJcblxyXG4gIHByaXZhdGUgX3Njcm9sbFN0cmF0ZWd5OiAoKSA9PiBTY3JvbGxTdHJhdGVneTtcclxuXHJcbiAgLyoqIEVtaXRzIHdoZW4gdGhlIGRhdGVwaWNrZXIgaGFzIGJlZW4gb3BlbmVkLiAqL1xyXG4gIEBPdXRwdXQoJ29wZW5lZCcpIG9wZW5lZFN0cmVhbTogRXZlbnRFbWl0dGVyPHZvaWQ+ID0gbmV3IEV2ZW50RW1pdHRlcjx2b2lkPigpO1xyXG5cclxuICAvKiogRW1pdHMgd2hlbiB0aGUgZGF0ZXBpY2tlciBoYXMgYmVlbiBjbG9zZWQuICovXHJcbiAgQE91dHB1dCgnY2xvc2VkJykgY2xvc2VkU3RyZWFtOiBFdmVudEVtaXR0ZXI8dm9pZD4gPSBuZXcgRXZlbnRFbWl0dGVyPHZvaWQ+KCk7XHJcblxyXG4gIEBJbnB1dCgpIGdldCBkaXNhYmxlZCgpIHtcclxuICAgIHJldHVybiB0aGlzLl9kaXNhYmxlZCA9PT0gdW5kZWZpbmVkICYmIHRoaXMuX3BpY2tlcklucHV0ID9cclxuICAgICAgdGhpcy5fcGlja2VySW5wdXQuZGlzYWJsZWQgOiAhIXRoaXMuX2Rpc2FibGVkO1xyXG4gIH1cclxuICBzZXQgZGlzYWJsZWQodmFsdWU6IGJvb2xlYW4pIHtcclxuICAgIGNvbnN0IG5ld1ZhbHVlID0gY29lcmNlQm9vbGVhblByb3BlcnR5KHZhbHVlKTtcclxuXHJcbiAgICBpZiAobmV3VmFsdWUgIT09IHRoaXMuX2Rpc2FibGVkKSB7XHJcbiAgICAgIHRoaXMuX2Rpc2FibGVkID0gbmV3VmFsdWU7XHJcbiAgICAgIHRoaXMuX2Rpc2FibGVkQ2hhbmdlLm5leHQobmV3VmFsdWUpO1xyXG4gICAgfVxyXG4gIH1cclxuICBwcml2YXRlIF9kaXNhYmxlZDogYm9vbGVhbjtcclxuXHJcbiAgQElucHV0KClcclxuICBnZXQgdG91Y2hVaSgpOiBib29sZWFuIHsgcmV0dXJuIHRoaXMuX3RvdWNoVWk7IH1cclxuICBzZXQgdG91Y2hVaSh2YWx1ZTogYm9vbGVhbikge1xyXG4gICAgdGhpcy5fdG91Y2hVaSA9IGNvZXJjZUJvb2xlYW5Qcm9wZXJ0eSh2YWx1ZSk7XHJcbiAgfVxyXG4gIHByaXZhdGUgX3RvdWNoVWkgPSBmYWxzZTtcclxuXHJcbiAgLyoqIFdoZXRoZXIgdGhlIGNhbGVuZGFyIGlzIG9wZW4uICovXHJcbiAgQElucHV0KClcclxuICBnZXQgb3BlbmVkKCk6IGJvb2xlYW4geyByZXR1cm4gdGhpcy5fb3BlbmVkOyB9XHJcbiAgc2V0IG9wZW5lZCh2YWx1ZTogYm9vbGVhbikgeyB2YWx1ZSA/IHRoaXMub3BlbigpIDogdGhpcy5jbG9zZSgpOyB9XHJcbiAgcHJpdmF0ZSBfb3BlbmVkID0gZmFsc2U7XHJcbiAgXHJcbiAgLyoqIERlZmF1bHQgQ29sb3IgcGFsZXR0ZSB0byB1c2Ugb24gdGhlIGRhdGVwaWNrZXIncyBjYWxlbmRhci4gKi9cclxuICBASW5wdXQoKVxyXG4gIGdldCBkZWZhdWx0Q29sb3IoKTogVGhlbWVQYWxldHRlIHtcclxuICAgIHJldHVybiB0aGlzLl9kZWZhdWx0Q29sb3I7XHJcbiAgfVxyXG4gIHNldCBkZWZhdWx0Q29sb3IodmFsdWU6IFRoZW1lUGFsZXR0ZSkge1xyXG4gICAgdGhpcy5fZGVmYXVsdENvbG9yID0gdmFsdWU7XHJcbiAgfVxyXG4gIF9kZWZhdWx0Q29sb3I6IFRoZW1lUGFsZXR0ZSA9ICdwcmltYXJ5JztcclxuXHJcbiAgLyoqIENvbG9yIHBhbGV0dGUgdG8gdXNlIG9uIHRoZSBkYXRlcGlja2VyJ3MgY2FsZW5kYXIuICovXHJcbiAgQElucHV0KClcclxuICBnZXQgY29sb3IoKTogVGhlbWVQYWxldHRlIHtcclxuICAgIHJldHVybiB0aGlzLl9jb2xvciB8fFxyXG4gICAgICAodGhpcy5fcGlja2VySW5wdXQgPyB0aGlzLl9waWNrZXJJbnB1dC5nZXRUaGVtZVBhbGV0dGUoKSA6IHVuZGVmaW5lZCk7XHJcbiAgfVxyXG4gIHNldCBjb2xvcih2YWx1ZTogVGhlbWVQYWxldHRlKSB7XHJcbiAgICB0aGlzLl9jb2xvciA9IHZhbHVlO1xyXG4gIH1cclxuICBfY29sb3I6IFRoZW1lUGFsZXR0ZTtcclxuXHJcblxyXG4gIC8qKiBUaGUgY3VycmVudGx5IHNlbGVjdGVkIGRhdGUuICovXHJcbiAgZ2V0IF9zZWxlY3RlZCgpOiBDb2xvciB7IHJldHVybiB0aGlzLl92YWxpZFNlbGVjdGVkOyB9XHJcbiAgc2V0IF9zZWxlY3RlZCh2YWx1ZTogQ29sb3IpIHsgdGhpcy5fdmFsaWRTZWxlY3RlZCA9IHZhbHVlOyB9XHJcbiAgcHJpdmF0ZSBfdmFsaWRTZWxlY3RlZDogQ29sb3IgPSBudWxsO1xyXG5cclxuXHJcbiAgX3BpY2tlcklucHV0OiBOZ3hNYXRDb2xvclBpY2tlcklucHV0O1xyXG4gIC8qKiBBIHJlZmVyZW5jZSB0byB0aGUgb3ZlcmxheSB3aGVuIHRoZSBwaWNrZXIgaXMgb3BlbmVkIGFzIGEgcG9wdXAuICovXHJcbiAgX3BvcHVwUmVmOiBPdmVybGF5UmVmO1xyXG5cclxuICAvKiogQSByZWZlcmVuY2UgdG8gdGhlIGRpYWxvZyB3aGVuIHRoZSBwaWNrZXIgaXMgb3BlbmVkIGFzIGEgZGlhbG9nLiAqL1xyXG4gIHByaXZhdGUgX2RpYWxvZ1JlZjogTWF0RGlhbG9nUmVmPE5neE1hdENvbG9yUGlja2VyQ29udGVudENvbXBvbmVudD4gfCBudWxsO1xyXG4gIC8qKiBSZWZlcmVuY2UgdG8gdGhlIGNvbXBvbmVudCBpbnN0YW50aWF0ZWQgaW4gcG9wdXAgbW9kZS4gKi9cclxuICBwcml2YXRlIF9wb3B1cENvbXBvbmVudFJlZjogQ29tcG9uZW50UmVmPE5neE1hdENvbG9yUGlja2VyQ29udGVudENvbXBvbmVudD4gfCBudWxsO1xyXG4gIC8qKiBBIHBvcnRhbCBjb250YWluaW5nIHRoZSBjb250ZW50IGZvciB0aGlzIHBpY2tlci4gKi9cclxuICBwcml2YXRlIF9wb3J0YWw6IENvbXBvbmVudFBvcnRhbDxOZ3hNYXRDb2xvclBpY2tlckNvbnRlbnRDb21wb25lbnQ+O1xyXG5cclxuICAvKiogRW1pdHMgd2hlbiB0aGUgZGF0ZXBpY2tlciBpcyBkaXNhYmxlZC4gKi9cclxuICByZWFkb25seSBfZGlzYWJsZWRDaGFuZ2UgPSBuZXcgU3ViamVjdDxib29sZWFuPigpO1xyXG5cclxuICAvKiogVGhlIGVsZW1lbnQgdGhhdCB3YXMgZm9jdXNlZCBiZWZvcmUgdGhlIGRhdGVwaWNrZXIgd2FzIG9wZW5lZC4gKi9cclxuICBwcml2YXRlIF9mb2N1c2VkRWxlbWVudEJlZm9yZU9wZW46IEhUTUxFbGVtZW50IHwgbnVsbCA9IG51bGw7XHJcblxyXG4gIC8qKiBTdWJzY3JpcHRpb24gdG8gdmFsdWUgY2hhbmdlcyBpbiB0aGUgYXNzb2NpYXRlZCBpbnB1dCBlbGVtZW50LiAqL1xyXG4gIHByaXZhdGUgX2lucHV0U3Vic2NyaXB0aW9uID0gU3Vic2NyaXB0aW9uLkVNUFRZO1xyXG5cclxuICAvKiogRW1pdHMgbmV3IHNlbGVjdGVkIGRhdGUgd2hlbiBzZWxlY3RlZCBkYXRlIGNoYW5nZXMuICovXHJcbiAgcmVhZG9ubHkgX3NlbGVjdGVkQ2hhbmdlZCA9IG5ldyBTdWJqZWN0PENvbG9yPigpO1xyXG5cclxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIF9kaWFsb2c6IE1hdERpYWxvZyxcclxuICAgIHByaXZhdGUgX292ZXJsYXk6IE92ZXJsYXksXHJcbiAgICBwcml2YXRlIF96b25lOiBOZ1pvbmUsXHJcbiAgICBwcml2YXRlIF9hZGFwdGVyOiBDb2xvckFkYXB0ZXIsXHJcbiAgICBAT3B0aW9uYWwoKSBwcml2YXRlIF9kaXI6IERpcmVjdGlvbmFsaXR5LFxyXG4gICAgQEluamVjdChOR1hfTUFUX0NPTE9SX1BJQ0tFUl9TQ1JPTExfU1RSQVRFR1kpIHNjcm9sbFN0cmF0ZWd5OiBhbnksXHJcbiAgICBAT3B0aW9uYWwoKSBASW5qZWN0KERPQ1VNRU5UKSBwcml2YXRlIF9kb2N1bWVudDogYW55LFxyXG4gICAgcHJpdmF0ZSBfdmlld0NvbnRhaW5lclJlZjogVmlld0NvbnRhaW5lclJlZikge1xyXG4gICAgdGhpcy5fc2Nyb2xsU3RyYXRlZ3kgPSBzY3JvbGxTdHJhdGVneTtcclxuICB9XHJcblxyXG4gIG5nT25Jbml0KCkge1xyXG4gIH1cclxuXHJcbiAgbmdPbkRlc3Ryb3koKSB7XHJcbiAgICB0aGlzLmNsb3NlKCk7XHJcbiAgICB0aGlzLl9pbnB1dFN1YnNjcmlwdGlvbi51bnN1YnNjcmliZSgpO1xyXG4gICAgdGhpcy5fZGlzYWJsZWRDaGFuZ2UuY29tcGxldGUoKTtcclxuXHJcbiAgICBpZiAodGhpcy5fcG9wdXBSZWYpIHtcclxuICAgICAgdGhpcy5fcG9wdXBSZWYuZGlzcG9zZSgpO1xyXG4gICAgICB0aGlzLl9wb3B1cENvbXBvbmVudFJlZiA9IG51bGw7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuXHJcbiAgLyoqIFNlbGVjdHMgdGhlIGdpdmVuIGRhdGUgKi9cclxuICBzZWxlY3QobmV4dFZhbDogQ29sb3IpOiB2b2lkIHtcclxuICAgIGxldCBvbGRWYWx1ZSA9IHRoaXMuX3NlbGVjdGVkO1xyXG4gICAgdGhpcy5fc2VsZWN0ZWQgPSBuZXh0VmFsO1xyXG4gICAgaWYgKCF0aGlzLl9hZGFwdGVyLnNhbWVDb2xvcihvbGRWYWx1ZSwgdGhpcy5fc2VsZWN0ZWQpKSB7XHJcbiAgICAgIHRoaXMuX3NlbGVjdGVkQ2hhbmdlZC5uZXh0KG5leHRWYWwpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcblxyXG4gIC8qKlxyXG4gKiBSZWdpc3RlciBhbiBpbnB1dCB3aXRoIHRoaXMgZGF0ZXBpY2tlci5cclxuICogQHBhcmFtIGlucHV0IFRoZSBkYXRlcGlja2VyIGlucHV0IHRvIHJlZ2lzdGVyIHdpdGggdGhpcyBkYXRlcGlja2VyLlxyXG4gKi9cclxuICByZWdpc3RlcklucHV0KGlucHV0OiBOZ3hNYXRDb2xvclBpY2tlcklucHV0KTogdm9pZCB7XHJcbiAgICBpZiAodGhpcy5fcGlja2VySW5wdXQpIHtcclxuICAgICAgdGhyb3cgRXJyb3IoJ0EgQ29sb3JQaWNrZXIgY2FuIG9ubHkgYmUgYXNzb2NpYXRlZCB3aXRoIGEgc2luZ2xlIGlucHV0LicpO1xyXG4gICAgfVxyXG4gICAgdGhpcy5fcGlja2VySW5wdXQgPSBpbnB1dDtcclxuICAgIHRoaXMuX2lucHV0U3Vic2NyaXB0aW9uID1cclxuICAgICAgdGhpcy5fcGlja2VySW5wdXQuX3ZhbHVlQ2hhbmdlLnN1YnNjcmliZSgodmFsdWU6IENvbG9yKSA9PiB0aGlzLl9zZWxlY3RlZCA9IHZhbHVlKTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBvcGVuKCk6IHZvaWQge1xyXG4gICAgaWYgKHRoaXMuX29wZW5lZCB8fCB0aGlzLmRpc2FibGVkKSB7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuICAgIGlmICghdGhpcy5fcGlja2VySW5wdXQpIHtcclxuICAgICAgdGhyb3cgRXJyb3IoJ0F0dGVtcHRlZCB0byBvcGVuIGFuIENvbG9yUGlja2VyIHdpdGggbm8gYXNzb2NpYXRlZCBpbnB1dC4nKTtcclxuICAgIH1cclxuXHJcbiAgICBpZiAodGhpcy5fZG9jdW1lbnQpIHtcclxuICAgICAgdGhpcy5fZm9jdXNlZEVsZW1lbnRCZWZvcmVPcGVuID0gdGhpcy5fZG9jdW1lbnQuYWN0aXZlRWxlbWVudDtcclxuICAgIH1cclxuXHJcbiAgICB0aGlzLnRvdWNoVWkgPyB0aGlzLl9vcGVuQXNEaWFsb2coKSA6IHRoaXMuX29wZW5Bc1BvcHVwKCk7XHJcbiAgICB0aGlzLl9vcGVuZWQgPSB0cnVlO1xyXG4gICAgdGhpcy5vcGVuZWRTdHJlYW0uZW1pdCgpO1xyXG4gIH1cclxuXHJcbiAgLyoqIE9wZW4gdGhlIGNhbGVuZGFyIGFzIGEgZGlhbG9nLiAqL1xyXG4gIHByaXZhdGUgX29wZW5Bc0RpYWxvZygpOiB2b2lkIHtcclxuXHJcbiAgICBpZiAodGhpcy5fZGlhbG9nUmVmKSB7XHJcbiAgICAgIHRoaXMuX2RpYWxvZ1JlZi5jbG9zZSgpO1xyXG4gICAgfVxyXG5cclxuICAgIHRoaXMuX2RpYWxvZ1JlZiA9IHRoaXMuX2RpYWxvZy5vcGVuPE5neE1hdENvbG9yUGlja2VyQ29udGVudENvbXBvbmVudD4oTmd4TWF0Q29sb3JQaWNrZXJDb250ZW50Q29tcG9uZW50LCB7XHJcbiAgICAgIGRpcmVjdGlvbjogdGhpcy5fZGlyID8gdGhpcy5fZGlyLnZhbHVlIDogJ2x0cicsXHJcbiAgICAgIHZpZXdDb250YWluZXJSZWY6IHRoaXMuX3ZpZXdDb250YWluZXJSZWYsXHJcbiAgICAgIHBhbmVsQ2xhc3M6ICduZ3gtbWF0LWNvbG9ycGlja2VyLWRpYWxvZycsXHJcbiAgICB9KTtcclxuXHJcbiAgICB0aGlzLl9kaWFsb2dSZWYuYWZ0ZXJDbG9zZWQoKS5zdWJzY3JpYmUoKCkgPT4gdGhpcy5jbG9zZSgpKTtcclxuICAgIHRoaXMuX2RpYWxvZ1JlZi5jb21wb25lbnRJbnN0YW5jZS5waWNrZXIgPSB0aGlzO1xyXG4gICAgdGhpcy5fc2V0Q29sb3IoKTtcclxuICB9XHJcblxyXG4gIC8qKiBPcGVuIHRoZSBjYWxlbmRhciBhcyBhIHBvcHVwLiAqL1xyXG4gIHByaXZhdGUgX29wZW5Bc1BvcHVwKCk6IHZvaWQge1xyXG5cclxuICAgIGlmICghdGhpcy5fcG9ydGFsKSB7XHJcbiAgICAgIHRoaXMuX3BvcnRhbCA9IG5ldyBDb21wb25lbnRQb3J0YWw8Tmd4TWF0Q29sb3JQaWNrZXJDb250ZW50Q29tcG9uZW50PihOZ3hNYXRDb2xvclBpY2tlckNvbnRlbnRDb21wb25lbnQsXHJcbiAgICAgICAgdGhpcy5fdmlld0NvbnRhaW5lclJlZik7XHJcbiAgICB9XHJcblxyXG4gICAgaWYgKCF0aGlzLl9wb3B1cFJlZikge1xyXG4gICAgICB0aGlzLl9jcmVhdGVQb3B1cCgpO1xyXG4gICAgfVxyXG5cclxuICAgIGlmICghdGhpcy5fcG9wdXBSZWYuaGFzQXR0YWNoZWQoKSkge1xyXG4gICAgICB0aGlzLl9wb3B1cENvbXBvbmVudFJlZiA9IHRoaXMuX3BvcHVwUmVmLmF0dGFjaCh0aGlzLl9wb3J0YWwpO1xyXG4gICAgICB0aGlzLl9wb3B1cENvbXBvbmVudFJlZi5pbnN0YW5jZS5waWNrZXIgPSB0aGlzO1xyXG4gICAgICB0aGlzLl9zZXRDb2xvcigpO1xyXG5cclxuICAgICAgLy8gVXBkYXRlIHRoZSBwb3NpdGlvbiBvbmNlIHRoZSBjYWxlbmRhciBoYXMgcmVuZGVyZWQuXHJcbiAgICAgIHRoaXMuX3pvbmUub25TdGFibGUuYXNPYnNlcnZhYmxlKCkucGlwZSh0YWtlKDEpKS5zdWJzY3JpYmUoKCkgPT4ge1xyXG4gICAgICAgIHRoaXMuX3BvcHVwUmVmLnVwZGF0ZVBvc2l0aW9uKCk7XHJcbiAgICAgIH0pO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgLyoqIENyZWF0ZSB0aGUgcG9wdXAuICovXHJcbiAgcHJpdmF0ZSBfY3JlYXRlUG9wdXAoKTogdm9pZCB7XHJcbiAgICBjb25zdCBvdmVybGF5Q29uZmlnID0gbmV3IE92ZXJsYXlDb25maWcoe1xyXG4gICAgICBwb3NpdGlvblN0cmF0ZWd5OiB0aGlzLl9jcmVhdGVQb3B1cFBvc2l0aW9uU3RyYXRlZ3koKSxcclxuICAgICAgaGFzQmFja2Ryb3A6IHRydWUsXHJcbiAgICAgIGJhY2tkcm9wQ2xhc3M6ICdtYXQtb3ZlcmxheS10cmFuc3BhcmVudC1iYWNrZHJvcCcsXHJcbiAgICAgIGRpcmVjdGlvbjogdGhpcy5fZGlyLFxyXG4gICAgICBzY3JvbGxTdHJhdGVneTogdGhpcy5fc2Nyb2xsU3RyYXRlZ3koKSxcclxuICAgICAgcGFuZWxDbGFzczogJ21hdC1jb2xvcnBpY2tlci1wb3B1cCcsXHJcbiAgICB9KTtcclxuXHJcbiAgICB0aGlzLl9wb3B1cFJlZiA9IHRoaXMuX292ZXJsYXkuY3JlYXRlKG92ZXJsYXlDb25maWcpO1xyXG4gICAgdGhpcy5fcG9wdXBSZWYub3ZlcmxheUVsZW1lbnQuc2V0QXR0cmlidXRlKCdyb2xlJywgJ2RpYWxvZycpO1xyXG5cclxuICAgIG1lcmdlKFxyXG4gICAgICB0aGlzLl9wb3B1cFJlZi5iYWNrZHJvcENsaWNrKCksXHJcbiAgICAgIHRoaXMuX3BvcHVwUmVmLmRldGFjaG1lbnRzKCksXHJcbiAgICAgIHRoaXMuX3BvcHVwUmVmLmtleWRvd25FdmVudHMoKS5waXBlKGZpbHRlcihldmVudCA9PiB7XHJcbiAgICAgICAgLy8gQ2xvc2luZyBvbiBhbHQgKyB1cCBpcyBvbmx5IHZhbGlkIHdoZW4gdGhlcmUncyBhbiBpbnB1dCBhc3NvY2lhdGVkIHdpdGggdGhlIGRhdGVwaWNrZXIuXHJcbiAgICAgICAgcmV0dXJuIGV2ZW50LmtleUNvZGUgPT09IEVTQ0FQRSB8fFxyXG4gICAgICAgICAgKHRoaXMuX3BpY2tlcklucHV0ICYmIGV2ZW50LmFsdEtleSAmJiBldmVudC5rZXlDb2RlID09PSBVUF9BUlJPVyk7XHJcbiAgICAgIH0pKVxyXG4gICAgKS5zdWJzY3JpYmUoZXZlbnQgPT4ge1xyXG4gICAgICBpZiAoZXZlbnQpIHtcclxuICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xyXG4gICAgICB9XHJcblxyXG4gICAgICB0aGlzLmNsb3NlKCk7XHJcbiAgICB9KTtcclxuICB9XHJcblxyXG5cclxuICBjbG9zZSgpOiB2b2lkIHtcclxuICAgIGlmICghdGhpcy5fb3BlbmVkKSB7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuICAgIGlmICh0aGlzLl9wb3B1cFJlZiAmJiB0aGlzLl9wb3B1cFJlZi5oYXNBdHRhY2hlZCgpKSB7XHJcbiAgICAgIHRoaXMuX3BvcHVwUmVmLmRldGFjaCgpO1xyXG4gICAgfVxyXG4gICAgaWYgKHRoaXMuX2RpYWxvZ1JlZikge1xyXG4gICAgICB0aGlzLl9kaWFsb2dSZWYuY2xvc2UoKTtcclxuICAgICAgdGhpcy5fZGlhbG9nUmVmID0gbnVsbDtcclxuICAgIH1cclxuICAgIGlmICh0aGlzLl9wb3J0YWwgJiYgdGhpcy5fcG9ydGFsLmlzQXR0YWNoZWQpIHtcclxuICAgICAgdGhpcy5fcG9ydGFsLmRldGFjaCgpO1xyXG4gICAgfVxyXG5cclxuICAgIGNvbnN0IGNvbXBsZXRlQ2xvc2UgPSAoKSA9PiB7XHJcbiAgICAgIC8vIFRoZSBgX29wZW5lZGAgY291bGQndmUgYmVlbiByZXNldCBhbHJlYWR5IGlmXHJcbiAgICAgIC8vIHdlIGdvdCB0d28gZXZlbnRzIGluIHF1aWNrIHN1Y2Nlc3Npb24uXHJcbiAgICAgIGlmICh0aGlzLl9vcGVuZWQpIHtcclxuICAgICAgICB0aGlzLl9vcGVuZWQgPSBmYWxzZTtcclxuICAgICAgICB0aGlzLmNsb3NlZFN0cmVhbS5lbWl0KCk7XHJcbiAgICAgICAgdGhpcy5fZm9jdXNlZEVsZW1lbnRCZWZvcmVPcGVuID0gbnVsbDtcclxuICAgICAgfVxyXG4gICAgfTtcclxuXHJcbiAgICBpZiAodGhpcy5fZm9jdXNlZEVsZW1lbnRCZWZvcmVPcGVuICYmXHJcbiAgICAgIHR5cGVvZiB0aGlzLl9mb2N1c2VkRWxlbWVudEJlZm9yZU9wZW4uZm9jdXMgPT09ICdmdW5jdGlvbicpIHtcclxuICAgICAgLy8gQmVjYXVzZSBJRSBtb3ZlcyBmb2N1cyBhc3luY2hyb25vdXNseSwgd2UgY2FuJ3QgY291bnQgb24gaXQgYmVpbmcgcmVzdG9yZWQgYmVmb3JlIHdlJ3ZlXHJcbiAgICAgIC8vIG1hcmtlZCB0aGUgZGF0ZXBpY2tlciBhcyBjbG9zZWQuIElmIHRoZSBldmVudCBmaXJlcyBvdXQgb2Ygc2VxdWVuY2UgYW5kIHRoZSBlbGVtZW50IHRoYXRcclxuICAgICAgLy8gd2UncmUgcmVmb2N1c2luZyBvcGVucyB0aGUgZGF0ZXBpY2tlciBvbiBmb2N1cywgdGhlIHVzZXIgY291bGQgYmUgc3R1Y2sgd2l0aCBub3QgYmVpbmdcclxuICAgICAgLy8gYWJsZSB0byBjbG9zZSB0aGUgY2FsZW5kYXIgYXQgYWxsLiBXZSB3b3JrIGFyb3VuZCBpdCBieSBtYWtpbmcgdGhlIGxvZ2ljLCB0aGF0IG1hcmtzXHJcbiAgICAgIC8vIHRoZSBkYXRlcGlja2VyIGFzIGNsb3NlZCwgYXN5bmMgYXMgd2VsbC5cclxuICAgICAgdGhpcy5fZm9jdXNlZEVsZW1lbnRCZWZvcmVPcGVuLmZvY3VzKCk7XHJcbiAgICAgIHNldFRpbWVvdXQoY29tcGxldGVDbG9zZSk7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICBjb21wbGV0ZUNsb3NlKCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAvKiogUGFzc2VzIHRoZSBjdXJyZW50IHRoZW1lIGNvbG9yIGFsb25nIHRvIHRoZSBjYWxlbmRhciBvdmVybGF5LiAqL1xyXG4gIHByaXZhdGUgX3NldENvbG9yKCk6IHZvaWQge1xyXG4gICAgY29uc3QgY29sb3IgPSB0aGlzLmNvbG9yO1xyXG4gICAgaWYgKHRoaXMuX3BvcHVwQ29tcG9uZW50UmVmKSB7XHJcbiAgICAgIHRoaXMuX3BvcHVwQ29tcG9uZW50UmVmLmluc3RhbmNlLmNvbG9yID0gY29sb3I7XHJcbiAgICB9XHJcbiAgICBpZiAodGhpcy5fZGlhbG9nUmVmKSB7XHJcbiAgICAgIHRoaXMuX2RpYWxvZ1JlZi5jb21wb25lbnRJbnN0YW5jZS5jb2xvciA9IGNvbG9yO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgLyoqIENyZWF0ZSB0aGUgcG9wdXAgUG9zaXRpb25TdHJhdGVneS4gKi9cclxuICBwcml2YXRlIF9jcmVhdGVQb3B1cFBvc2l0aW9uU3RyYXRlZ3koKTogUG9zaXRpb25TdHJhdGVneSB7XHJcbiAgICByZXR1cm4gdGhpcy5fb3ZlcmxheS5wb3NpdGlvbigpXHJcbiAgICAgIC5mbGV4aWJsZUNvbm5lY3RlZFRvKHRoaXMuX3BpY2tlcklucHV0LmdldENvbm5lY3RlZE92ZXJsYXlPcmlnaW4oKSlcclxuICAgICAgLndpdGhUcmFuc2Zvcm1PcmlnaW5PbignLm5neC1tYXQtY29sb3JwaWNrZXItY29udGVudCcpXHJcbiAgICAgIC53aXRoRmxleGlibGVEaW1lbnNpb25zKGZhbHNlKVxyXG4gICAgICAud2l0aFZpZXdwb3J0TWFyZ2luKDgpXHJcbiAgICAgIC53aXRoTG9ja2VkUG9zaXRpb24oKVxyXG4gICAgICAud2l0aFBvc2l0aW9ucyhbXHJcbiAgICAgICAge1xyXG4gICAgICAgICAgb3JpZ2luWDogJ3N0YXJ0JyxcclxuICAgICAgICAgIG9yaWdpblk6ICdib3R0b20nLFxyXG4gICAgICAgICAgb3ZlcmxheVg6ICdzdGFydCcsXHJcbiAgICAgICAgICBvdmVybGF5WTogJ3RvcCdcclxuICAgICAgICB9LFxyXG4gICAgICAgIHtcclxuICAgICAgICAgIG9yaWdpblg6ICdzdGFydCcsXHJcbiAgICAgICAgICBvcmlnaW5ZOiAndG9wJyxcclxuICAgICAgICAgIG92ZXJsYXlYOiAnc3RhcnQnLFxyXG4gICAgICAgICAgb3ZlcmxheVk6ICdib3R0b20nXHJcbiAgICAgICAgfSxcclxuICAgICAgICB7XHJcbiAgICAgICAgICBvcmlnaW5YOiAnZW5kJyxcclxuICAgICAgICAgIG9yaWdpblk6ICdib3R0b20nLFxyXG4gICAgICAgICAgb3ZlcmxheVg6ICdlbmQnLFxyXG4gICAgICAgICAgb3ZlcmxheVk6ICd0b3AnXHJcbiAgICAgICAgfSxcclxuICAgICAgICB7XHJcbiAgICAgICAgICBvcmlnaW5YOiAnZW5kJyxcclxuICAgICAgICAgIG9yaWdpblk6ICd0b3AnLFxyXG4gICAgICAgICAgb3ZlcmxheVg6ICdlbmQnLFxyXG4gICAgICAgICAgb3ZlcmxheVk6ICdib3R0b20nXHJcbiAgICAgICAgfVxyXG4gICAgICBdKTtcclxuICB9XHJcblxyXG5cclxufVxyXG4iXX0=

@@ -141,2 +141,2 @@ /**

}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29sb3ItdG9nZ2xlLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NvbG9yLXBpY2tlci9zcmMvbGliL2NvbXBvbmVudHMvY29sb3ItdG9nZ2xlL2NvbG9yLXRvZ2dsZS5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBQSxPQUFPLEVBQW9CLGlCQUFpQixFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQStDLFNBQVMsRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNqSyxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDckQsT0FBTyxFQUFFLEtBQUssRUFBRSxFQUFFLEVBQUUsWUFBWSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQy9DLE9BQU8sRUFBRSwwQkFBMEIsRUFBRSxNQUFNLHdDQUF3QyxDQUFDO0FBbUJwRixNQUFNLE9BQU8sMEJBQTBCOzs7O0lBbUJyQyxZQUFvQixHQUFzQjtRQUF0QixRQUFHLEdBQUgsR0FBRyxDQUFtQjtRQWpCbEMsa0JBQWEsR0FBRyxZQUFZLENBQUMsS0FBSyxDQUFDO0lBaUJHLENBQUM7Ozs7SUFaL0MsSUFBYSxRQUFRO1FBQ25CLElBQUksSUFBSSxDQUFDLFNBQVMsSUFBSSxJQUFJLElBQUksSUFBSSxDQUFDLE1BQU0sRUFBRTtZQUN6QyxPQUFPLElBQUksQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDO1NBQzdCO0lBQ0gsQ0FBQzs7Ozs7SUFDRCxJQUFJLFFBQVEsQ0FBQyxLQUFjO1FBQ3pCLElBQUksQ0FBQyxTQUFTLEdBQUcsS0FBSyxDQUFDO0lBQ3pCLENBQUM7Ozs7SUFPRCxRQUFRO0lBQ1IsQ0FBQzs7Ozs7SUFFRCxXQUFXLENBQUMsT0FBc0I7UUFDaEMsSUFBSSxPQUFPLENBQUMsUUFBUSxDQUFDLEVBQUU7WUFDckIsSUFBSSxDQUFDLGtCQUFrQixFQUFFLENBQUM7U0FDM0I7SUFDSCxDQUFDOzs7O0lBRUQsV0FBVztRQUNULElBQUksQ0FBQyxhQUFhLENBQUMsV0FBVyxFQUFFLENBQUM7SUFDbkMsQ0FBQzs7OztJQUVELGtCQUFrQjtRQUNoQixJQUFJLENBQUMsa0JBQWtCLEVBQUUsQ0FBQztJQUM1QixDQUFDOzs7OztJQUVNLElBQUksQ0FBQyxLQUFZO1FBQ3RCLElBQUksSUFBSSxDQUFDLE1BQU0sSUFBSSxDQUFDLElBQUksQ0FBQyxRQUFRLEVBQUU7WUFDakMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLEVBQUUsQ0FBQztZQUNuQixLQUFLLENBQUMsZUFBZSxFQUFFLENBQUM7U0FDekI7SUFDSCxDQUFDOzs7OztJQUVPLGtCQUFrQjs7Y0FDbEIsU0FBUyxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsZUFBZSxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUU7O2NBQzVELGNBQWMsR0FBRyxJQUFJLENBQUMsTUFBTSxJQUFJLElBQUksQ0FBQyxNQUFNLENBQUMsWUFBWSxDQUFDLENBQUM7WUFDOUQsSUFBSSxDQUFDLE1BQU0sQ0FBQyxZQUFZLENBQUMsZUFBZSxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUU7O2NBRTNDLGNBQWMsR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUM7WUFDbEMsS0FBSyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsWUFBWSxFQUFFLElBQUksQ0FBQyxNQUFNLENBQUMsWUFBWSxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRTtRQUNsRSxJQUFJLENBQUMsYUFBYSxDQUFDLFdBQVcsRUFBRSxDQUFDO1FBRWpDLElBQUksQ0FBQyxhQUFhLEdBQUcsS0FBSyxDQUFDLFNBQVMsRUFBRSxjQUFjLEVBQUUsY0FBYyxDQUFDLENBQUMsU0FBUzs7O1FBQUMsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxZQUFZLEVBQUUsRUFBQyxDQUFDO0lBQ2pILENBQUM7OztZQXhFRixTQUFTLFNBQUM7Z0JBQ1QsUUFBUSxFQUFFLHNCQUFzQjtnQkFDaEMsMFNBQTRDO2dCQUU1QyxJQUFJLEVBQUU7b0JBQ0osT0FBTyxFQUFFLHNCQUFzQjs7O29CQUcvQixpQkFBaUIsRUFBRSxJQUFJO29CQUN2QixxQ0FBcUMsRUFBRSx5QkFBeUI7b0JBQ2hFLG9CQUFvQixFQUFFLHFDQUFxQztvQkFDM0Qsa0JBQWtCLEVBQUUsbUNBQW1DO29CQUN2RCxTQUFTLEVBQUUsaUJBQWlCO2lCQUM3QjtnQkFDRCxRQUFRLEVBQUUseUJBQXlCO2dCQUNuQyxhQUFhLEVBQUUsaUJBQWlCLENBQUMsSUFBSTs7YUFDdEM7Ozs7WUFyQjBCLGlCQUFpQjs7O3FCQTBCekMsS0FBSyxTQUFDLEtBQUs7dUJBQ1gsS0FBSzt1QkFFTCxLQUFLO3NCQVVMLFNBQVMsU0FBQyxRQUFROzs7Ozs7O0lBZm5CLG1EQUEyQzs7SUFFM0MsNENBQWlEOztJQUNqRCw4Q0FBMEI7Ozs7O0lBVTFCLCtDQUEyQjs7SUFFM0IsNkNBQXdDOzs7OztJQUU1Qix5Q0FBOEIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBZnRlckNvbnRlbnRJbml0LCBDaGFuZ2VEZXRlY3RvclJlZiwgQ29tcG9uZW50LCBJbnB1dCwgT25DaGFuZ2VzLCBPbkRlc3Ryb3ksIE9uSW5pdCwgU2ltcGxlQ2hhbmdlcywgVmlld0NoaWxkLCBWaWV3RW5jYXBzdWxhdGlvbiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBNYXRCdXR0b24gfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9idXR0b24nO1xyXG5pbXBvcnQgeyBtZXJnZSwgb2YsIFN1YnNjcmlwdGlvbiB9IGZyb20gJ3J4anMnO1xyXG5pbXBvcnQgeyBOZ3hNYXRDb2xvclBpY2tlckNvbXBvbmVudCB9IGZyb20gJy4uL2NvbG9yLXBpY2tlci9jb2xvci1waWNrZXIuY29tcG9uZW50JztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnbmd4LW1hdC1jb2xvci10b2dnbGUnLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi9jb2xvci10b2dnbGUuY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsczogWycuL2NvbG9yLXRvZ2dsZS5jb21wb25lbnQuc2NzcyddLFxyXG4gIGhvc3Q6IHtcclxuICAgICdjbGFzcyc6ICduZ3gtbWF0LWNvbG9yLXRvZ2dsZScsXHJcbiAgICAvLyBBbHdheXMgc2V0IHRoZSB0YWJpbmRleCB0byAtMSBzbyB0aGF0IGl0IGRvZXNuJ3Qgb3ZlcmxhcCB3aXRoIGFueSBjdXN0b20gdGFiaW5kZXggdGhlXHJcbiAgICAvLyBjb25zdW1lciBtYXkgaGF2ZSBwcm92aWRlZCwgd2hpbGUgc3RpbGwgYmVpbmcgYWJsZSB0byByZWNlaXZlIGZvY3VzLlxyXG4gICAgJ1thdHRyLnRhYmluZGV4XSc6ICctMScsXHJcbiAgICAnW2NsYXNzLm5neC1tYXQtY29sb3ItdG9nZ2xlLWFjdGl2ZV0nOiAncGlja2VyICYmIHBpY2tlci5vcGVuZWQnLFxyXG4gICAgJ1tjbGFzcy5tYXQtYWNjZW50XSc6ICdwaWNrZXIgJiYgcGlja2VyLmNvbG9yID09PSBcImFjY2VudFwiJyxcclxuICAgICdbY2xhc3MubWF0LXdhcm5dJzogJ3BpY2tlciAmJiBwaWNrZXIuY29sb3IgPT09IFwid2FyblwiJyxcclxuICAgICcoZm9jdXMpJzogJ19idXR0b24uZm9jdXMoKScsXHJcbiAgfSxcclxuICBleHBvcnRBczogJ25neE1hdENvbG9yUGlja2VyVG9nZ2xlJyxcclxuICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBOZ3hNYXRDb2xvclRvZ2dsZUNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgQWZ0ZXJDb250ZW50SW5pdCwgT25DaGFuZ2VzLCBPbkRlc3Ryb3kge1xyXG5cclxuICBwcml2YXRlIF9zdGF0ZUNoYW5nZXMgPSBTdWJzY3JpcHRpb24uRU1QVFk7XHJcblxyXG4gIEBJbnB1dCgnZm9yJykgcGlja2VyOiBOZ3hNYXRDb2xvclBpY2tlckNvbXBvbmVudDtcclxuICBASW5wdXQoKSB0YWJJbmRleDogbnVtYmVyO1xyXG5cclxuICBASW5wdXQoKSBnZXQgZGlzYWJsZWQoKTogYm9vbGVhbiB7XHJcbiAgICBpZiAodGhpcy5fZGlzYWJsZWQgPT0gbnVsbCAmJiB0aGlzLnBpY2tlcikge1xyXG4gICAgICByZXR1cm4gdGhpcy5waWNrZXIuZGlzYWJsZWQ7XHJcbiAgICB9XHJcbiAgfVxyXG4gIHNldCBkaXNhYmxlZCh2YWx1ZTogYm9vbGVhbikge1xyXG4gICAgdGhpcy5fZGlzYWJsZWQgPSB2YWx1ZTtcclxuICB9XHJcbiAgcHJpdmF0ZSBfZGlzYWJsZWQ6IGJvb2xlYW47XHJcblxyXG4gIEBWaWV3Q2hpbGQoJ2J1dHRvbicpIF9idXR0b246IE1hdEJ1dHRvbjtcclxuXHJcbiAgY29uc3RydWN0b3IocHJpdmF0ZSBfY2Q6IENoYW5nZURldGVjdG9yUmVmKSB7IH1cclxuXHJcbiAgbmdPbkluaXQoKSB7XHJcbiAgfVxyXG5cclxuICBuZ09uQ2hhbmdlcyhjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKTogdm9pZCB7XHJcbiAgICBpZiAoY2hhbmdlc1sncGlja2VyJ10pIHtcclxuICAgICAgdGhpcy5fd2F0Y2hTdGF0ZUNoYW5nZXMoKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIG5nT25EZXN0cm95KCkge1xyXG4gICAgdGhpcy5fc3RhdGVDaGFuZ2VzLnVuc3Vic2NyaWJlKCk7XHJcbiAgfVxyXG5cclxuICBuZ0FmdGVyQ29udGVudEluaXQoKSB7XHJcbiAgICB0aGlzLl93YXRjaFN0YXRlQ2hhbmdlcygpO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIG9wZW4oZXZlbnQ6IEV2ZW50KTogdm9pZCB7XHJcbiAgICBpZiAodGhpcy5waWNrZXIgJiYgIXRoaXMuZGlzYWJsZWQpIHtcclxuICAgICAgdGhpcy5waWNrZXIub3BlbigpO1xyXG4gICAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHByaXZhdGUgX3dhdGNoU3RhdGVDaGFuZ2VzKCkge1xyXG4gICAgY29uc3QgZGlzYWJsZWQkID0gdGhpcy5waWNrZXIgPyB0aGlzLnBpY2tlci5fZGlzYWJsZWRDaGFuZ2UgOiBvZigpO1xyXG4gICAgY29uc3QgaW5wdXREaXNhYmxlZCQgPSB0aGlzLnBpY2tlciAmJiB0aGlzLnBpY2tlci5fcGlja2VySW5wdXQgP1xyXG4gICAgICB0aGlzLnBpY2tlci5fcGlja2VySW5wdXQuX2Rpc2FibGVkQ2hhbmdlIDogb2YoKTtcclxuXHJcbiAgICBjb25zdCBwaWNrZXJUb2dnbGVkJCA9IHRoaXMucGlja2VyID9cclxuICAgICAgbWVyZ2UodGhpcy5waWNrZXIub3BlbmVkU3RyZWFtLCB0aGlzLnBpY2tlci5jbG9zZWRTdHJlYW0pIDogb2YoKTtcclxuICAgIHRoaXMuX3N0YXRlQ2hhbmdlcy51bnN1YnNjcmliZSgpO1xyXG5cclxuICAgIHRoaXMuX3N0YXRlQ2hhbmdlcyA9IG1lcmdlKGRpc2FibGVkJCwgaW5wdXREaXNhYmxlZCQsIHBpY2tlclRvZ2dsZWQkKS5zdWJzY3JpYmUoKCkgPT4gdGhpcy5fY2QubWFya0ZvckNoZWNrKCkpO1xyXG4gIH1cclxuXHJcbn1cclxuIl19
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29sb3ItdG9nZ2xlLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIuLi8uLi8uLi8uLi9wcm9qZWN0cy9jb2xvci1waWNrZXIvc3JjLyIsInNvdXJjZXMiOlsibGliL2NvbXBvbmVudHMvY29sb3ItdG9nZ2xlL2NvbG9yLXRvZ2dsZS5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBQSxPQUFPLEVBQW9CLGlCQUFpQixFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQStDLFNBQVMsRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNqSyxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDckQsT0FBTyxFQUFFLEtBQUssRUFBRSxFQUFFLEVBQUUsWUFBWSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQy9DLE9BQU8sRUFBRSwwQkFBMEIsRUFBRSxNQUFNLHdDQUF3QyxDQUFDO0FBbUJwRixNQUFNLE9BQU8sMEJBQTBCOzs7O0lBbUJyQyxZQUFvQixHQUFzQjtRQUF0QixRQUFHLEdBQUgsR0FBRyxDQUFtQjtRQWpCbEMsa0JBQWEsR0FBRyxZQUFZLENBQUMsS0FBSyxDQUFDO0lBaUJHLENBQUM7Ozs7SUFaL0MsSUFBYSxRQUFRO1FBQ25CLElBQUksSUFBSSxDQUFDLFNBQVMsSUFBSSxJQUFJLElBQUksSUFBSSxDQUFDLE1BQU0sRUFBRTtZQUN6QyxPQUFPLElBQUksQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDO1NBQzdCO0lBQ0gsQ0FBQzs7Ozs7SUFDRCxJQUFJLFFBQVEsQ0FBQyxLQUFjO1FBQ3pCLElBQUksQ0FBQyxTQUFTLEdBQUcsS0FBSyxDQUFDO0lBQ3pCLENBQUM7Ozs7SUFPRCxRQUFRO0lBQ1IsQ0FBQzs7Ozs7SUFFRCxXQUFXLENBQUMsT0FBc0I7UUFDaEMsSUFBSSxPQUFPLENBQUMsUUFBUSxDQUFDLEVBQUU7WUFDckIsSUFBSSxDQUFDLGtCQUFrQixFQUFFLENBQUM7U0FDM0I7SUFDSCxDQUFDOzs7O0lBRUQsV0FBVztRQUNULElBQUksQ0FBQyxhQUFhLENBQUMsV0FBVyxFQUFFLENBQUM7SUFDbkMsQ0FBQzs7OztJQUVELGtCQUFrQjtRQUNoQixJQUFJLENBQUMsa0JBQWtCLEVBQUUsQ0FBQztJQUM1QixDQUFDOzs7OztJQUVNLElBQUksQ0FBQyxLQUFZO1FBQ3RCLElBQUksSUFBSSxDQUFDLE1BQU0sSUFBSSxDQUFDLElBQUksQ0FBQyxRQUFRLEVBQUU7WUFDakMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLEVBQUUsQ0FBQztZQUNuQixLQUFLLENBQUMsZUFBZSxFQUFFLENBQUM7U0FDekI7SUFDSCxDQUFDOzs7OztJQUVPLGtCQUFrQjs7Y0FDbEIsU0FBUyxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsZUFBZSxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUU7O2NBQzVELGNBQWMsR0FBRyxJQUFJLENBQUMsTUFBTSxJQUFJLElBQUksQ0FBQyxNQUFNLENBQUMsWUFBWSxDQUFDLENBQUM7WUFDOUQsSUFBSSxDQUFDLE1BQU0sQ0FBQyxZQUFZLENBQUMsZUFBZSxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUU7O2NBRTNDLGNBQWMsR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUM7WUFDbEMsS0FBSyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsWUFBWSxFQUFFLElBQUksQ0FBQyxNQUFNLENBQUMsWUFBWSxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRTtRQUNsRSxJQUFJLENBQUMsYUFBYSxDQUFDLFdBQVcsRUFBRSxDQUFDO1FBRWpDLElBQUksQ0FBQyxhQUFhLEdBQUcsS0FBSyxDQUFDLFNBQVMsRUFBRSxjQUFjLEVBQUUsY0FBYyxDQUFDLENBQUMsU0FBUzs7O1FBQUMsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxZQUFZLEVBQUUsRUFBQyxDQUFDO0lBQ2pILENBQUM7OztZQXhFRixTQUFTLFNBQUM7Z0JBQ1QsUUFBUSxFQUFFLHNCQUFzQjtnQkFDaEMsMFNBQTRDO2dCQUU1QyxJQUFJLEVBQUU7b0JBQ0osT0FBTyxFQUFFLHNCQUFzQjs7O29CQUcvQixpQkFBaUIsRUFBRSxJQUFJO29CQUN2QixxQ0FBcUMsRUFBRSx5QkFBeUI7b0JBQ2hFLG9CQUFvQixFQUFFLHFDQUFxQztvQkFDM0Qsa0JBQWtCLEVBQUUsbUNBQW1DO29CQUN2RCxTQUFTLEVBQUUsaUJBQWlCO2lCQUM3QjtnQkFDRCxRQUFRLEVBQUUseUJBQXlCO2dCQUNuQyxhQUFhLEVBQUUsaUJBQWlCLENBQUMsSUFBSTs7YUFDdEM7Ozs7WUFyQjBCLGlCQUFpQjs7O3FCQTBCekMsS0FBSyxTQUFDLEtBQUs7dUJBQ1gsS0FBSzt1QkFFTCxLQUFLO3NCQVVMLFNBQVMsU0FBQyxRQUFROzs7Ozs7O0lBZm5CLG1EQUEyQzs7SUFFM0MsNENBQWlEOztJQUNqRCw4Q0FBMEI7Ozs7O0lBVTFCLCtDQUEyQjs7SUFFM0IsNkNBQXdDOzs7OztJQUU1Qix5Q0FBOEIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBZnRlckNvbnRlbnRJbml0LCBDaGFuZ2VEZXRlY3RvclJlZiwgQ29tcG9uZW50LCBJbnB1dCwgT25DaGFuZ2VzLCBPbkRlc3Ryb3ksIE9uSW5pdCwgU2ltcGxlQ2hhbmdlcywgVmlld0NoaWxkLCBWaWV3RW5jYXBzdWxhdGlvbiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBNYXRCdXR0b24gfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9idXR0b24nO1xyXG5pbXBvcnQgeyBtZXJnZSwgb2YsIFN1YnNjcmlwdGlvbiB9IGZyb20gJ3J4anMnO1xyXG5pbXBvcnQgeyBOZ3hNYXRDb2xvclBpY2tlckNvbXBvbmVudCB9IGZyb20gJy4uL2NvbG9yLXBpY2tlci9jb2xvci1waWNrZXIuY29tcG9uZW50JztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnbmd4LW1hdC1jb2xvci10b2dnbGUnLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi9jb2xvci10b2dnbGUuY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsczogWycuL2NvbG9yLXRvZ2dsZS5jb21wb25lbnQuc2NzcyddLFxyXG4gIGhvc3Q6IHtcclxuICAgICdjbGFzcyc6ICduZ3gtbWF0LWNvbG9yLXRvZ2dsZScsXHJcbiAgICAvLyBBbHdheXMgc2V0IHRoZSB0YWJpbmRleCB0byAtMSBzbyB0aGF0IGl0IGRvZXNuJ3Qgb3ZlcmxhcCB3aXRoIGFueSBjdXN0b20gdGFiaW5kZXggdGhlXHJcbiAgICAvLyBjb25zdW1lciBtYXkgaGF2ZSBwcm92aWRlZCwgd2hpbGUgc3RpbGwgYmVpbmcgYWJsZSB0byByZWNlaXZlIGZvY3VzLlxyXG4gICAgJ1thdHRyLnRhYmluZGV4XSc6ICctMScsXHJcbiAgICAnW2NsYXNzLm5neC1tYXQtY29sb3ItdG9nZ2xlLWFjdGl2ZV0nOiAncGlja2VyICYmIHBpY2tlci5vcGVuZWQnLFxyXG4gICAgJ1tjbGFzcy5tYXQtYWNjZW50XSc6ICdwaWNrZXIgJiYgcGlja2VyLmNvbG9yID09PSBcImFjY2VudFwiJyxcclxuICAgICdbY2xhc3MubWF0LXdhcm5dJzogJ3BpY2tlciAmJiBwaWNrZXIuY29sb3IgPT09IFwid2FyblwiJyxcclxuICAgICcoZm9jdXMpJzogJ19idXR0b24uZm9jdXMoKScsXHJcbiAgfSxcclxuICBleHBvcnRBczogJ25neE1hdENvbG9yUGlja2VyVG9nZ2xlJyxcclxuICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBOZ3hNYXRDb2xvclRvZ2dsZUNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgQWZ0ZXJDb250ZW50SW5pdCwgT25DaGFuZ2VzLCBPbkRlc3Ryb3kge1xyXG5cclxuICBwcml2YXRlIF9zdGF0ZUNoYW5nZXMgPSBTdWJzY3JpcHRpb24uRU1QVFk7XHJcblxyXG4gIEBJbnB1dCgnZm9yJykgcGlja2VyOiBOZ3hNYXRDb2xvclBpY2tlckNvbXBvbmVudDtcclxuICBASW5wdXQoKSB0YWJJbmRleDogbnVtYmVyO1xyXG5cclxuICBASW5wdXQoKSBnZXQgZGlzYWJsZWQoKTogYm9vbGVhbiB7XHJcbiAgICBpZiAodGhpcy5fZGlzYWJsZWQgPT0gbnVsbCAmJiB0aGlzLnBpY2tlcikge1xyXG4gICAgICByZXR1cm4gdGhpcy5waWNrZXIuZGlzYWJsZWQ7XHJcbiAgICB9XHJcbiAgfVxyXG4gIHNldCBkaXNhYmxlZCh2YWx1ZTogYm9vbGVhbikge1xyXG4gICAgdGhpcy5fZGlzYWJsZWQgPSB2YWx1ZTtcclxuICB9XHJcbiAgcHJpdmF0ZSBfZGlzYWJsZWQ6IGJvb2xlYW47XHJcblxyXG4gIEBWaWV3Q2hpbGQoJ2J1dHRvbicpIF9idXR0b246IE1hdEJ1dHRvbjtcclxuXHJcbiAgY29uc3RydWN0b3IocHJpdmF0ZSBfY2Q6IENoYW5nZURldGVjdG9yUmVmKSB7IH1cclxuXHJcbiAgbmdPbkluaXQoKSB7XHJcbiAgfVxyXG5cclxuICBuZ09uQ2hhbmdlcyhjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKTogdm9pZCB7XHJcbiAgICBpZiAoY2hhbmdlc1sncGlja2VyJ10pIHtcclxuICAgICAgdGhpcy5fd2F0Y2hTdGF0ZUNoYW5nZXMoKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIG5nT25EZXN0cm95KCkge1xyXG4gICAgdGhpcy5fc3RhdGVDaGFuZ2VzLnVuc3Vic2NyaWJlKCk7XHJcbiAgfVxyXG5cclxuICBuZ0FmdGVyQ29udGVudEluaXQoKSB7XHJcbiAgICB0aGlzLl93YXRjaFN0YXRlQ2hhbmdlcygpO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIG9wZW4oZXZlbnQ6IEV2ZW50KTogdm9pZCB7XHJcbiAgICBpZiAodGhpcy5waWNrZXIgJiYgIXRoaXMuZGlzYWJsZWQpIHtcclxuICAgICAgdGhpcy5waWNrZXIub3BlbigpO1xyXG4gICAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHByaXZhdGUgX3dhdGNoU3RhdGVDaGFuZ2VzKCkge1xyXG4gICAgY29uc3QgZGlzYWJsZWQkID0gdGhpcy5waWNrZXIgPyB0aGlzLnBpY2tlci5fZGlzYWJsZWRDaGFuZ2UgOiBvZigpO1xyXG4gICAgY29uc3QgaW5wdXREaXNhYmxlZCQgPSB0aGlzLnBpY2tlciAmJiB0aGlzLnBpY2tlci5fcGlja2VySW5wdXQgP1xyXG4gICAgICB0aGlzLnBpY2tlci5fcGlja2VySW5wdXQuX2Rpc2FibGVkQ2hhbmdlIDogb2YoKTtcclxuXHJcbiAgICBjb25zdCBwaWNrZXJUb2dnbGVkJCA9IHRoaXMucGlja2VyID9cclxuICAgICAgbWVyZ2UodGhpcy5waWNrZXIub3BlbmVkU3RyZWFtLCB0aGlzLnBpY2tlci5jbG9zZWRTdHJlYW0pIDogb2YoKTtcclxuICAgIHRoaXMuX3N0YXRlQ2hhbmdlcy51bnN1YnNjcmliZSgpO1xyXG5cclxuICAgIHRoaXMuX3N0YXRlQ2hhbmdlcyA9IG1lcmdlKGRpc2FibGVkJCwgaW5wdXREaXNhYmxlZCQsIHBpY2tlclRvZ2dsZWQkKS5zdWJzY3JpYmUoKCkgPT4gdGhpcy5fY2QubWFya0ZvckNoZWNrKCkpO1xyXG4gIH1cclxuXHJcbn1cclxuIl19

@@ -13,2 +13,2 @@ /**

export { NgxMatColorToggleComponent } from './color-toggle/color-toggle.component';
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb2xvci1waWNrZXIvc3JjL2xpYi9jb21wb25lbnRzL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBQUEsNENBQWMseUNBQXlDLENBQUM7QUFDeEQsMkNBQWMsdUNBQXVDLENBQUM7QUFDdEQsK0NBQWMsK0NBQStDLENBQUM7QUFDOUQsMkNBQWMsb0RBQW9ELENBQUM7QUFDbkUseU5BQWMsdUNBQXVDLENBQUM7QUFDdEQsZ0lBQWMsc0NBQXNDLENBQUM7QUFDckQsMkNBQWMsdUNBQXVDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tICcuL2NvbG9yLXBhbGV0dGUvY29sb3ItcGFsZXR0ZS5jb21wb25lbnQnO1xyXG5leHBvcnQgKiBmcm9tICcuL2NvbG9yLWNhbnZhcy9jb2xvci1jYW52YXMuY29tcG9uZW50JztcclxuZXhwb3J0ICogZnJvbSAnLi9jb2xvci1jb2xsZWN0aW9uL2NvbG9yLWNvbGxlY3Rpb24uY29tcG9uZW50JztcclxuZXhwb3J0ICogZnJvbSAnLi9jb2xvci1jYW52YXMvY29sb3Itc2xpZGVyL2NvbG9yLXNsaWRlci5jb21wb25lbnQnO1xyXG5leHBvcnQgKiBmcm9tICcuL2NvbG9yLXBpY2tlci9jb2xvci1waWNrZXIuY29tcG9uZW50JztcclxuZXhwb3J0ICogZnJvbSAnLi9jb2xvci1waWNrZXIvY29sb3ItaW5wdXQuY29tcG9uZW50JztcclxuZXhwb3J0ICogZnJvbSAnLi9jb2xvci10b2dnbGUvY29sb3ItdG9nZ2xlLmNvbXBvbmVudCc7XHJcbiJdfQ==
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiLi4vLi4vLi4vLi4vcHJvamVjdHMvY29sb3ItcGlja2VyL3NyYy8iLCJzb3VyY2VzIjpbImxpYi9jb21wb25lbnRzL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBQUEsNENBQWMseUNBQXlDLENBQUM7QUFDeEQsMkNBQWMsdUNBQXVDLENBQUM7QUFDdEQsK0NBQWMsK0NBQStDLENBQUM7QUFDOUQsMkNBQWMsb0RBQW9ELENBQUM7QUFDbkUseU5BQWMsdUNBQXVDLENBQUM7QUFDdEQsZ0lBQWMsc0NBQXNDLENBQUM7QUFDckQsMkNBQWMsdUNBQXVDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tICcuL2NvbG9yLXBhbGV0dGUvY29sb3ItcGFsZXR0ZS5jb21wb25lbnQnO1xyXG5leHBvcnQgKiBmcm9tICcuL2NvbG9yLWNhbnZhcy9jb2xvci1jYW52YXMuY29tcG9uZW50JztcclxuZXhwb3J0ICogZnJvbSAnLi9jb2xvci1jb2xsZWN0aW9uL2NvbG9yLWNvbGxlY3Rpb24uY29tcG9uZW50JztcclxuZXhwb3J0ICogZnJvbSAnLi9jb2xvci1jYW52YXMvY29sb3Itc2xpZGVyL2NvbG9yLXNsaWRlci5jb21wb25lbnQnO1xyXG5leHBvcnQgKiBmcm9tICcuL2NvbG9yLXBpY2tlci9jb2xvci1waWNrZXIuY29tcG9uZW50JztcclxuZXhwb3J0ICogZnJvbSAnLi9jb2xvci1waWNrZXIvY29sb3ItaW5wdXQuY29tcG9uZW50JztcclxuZXhwb3J0ICogZnJvbSAnLi9jb2xvci10b2dnbGUvY29sb3ItdG9nZ2xlLmNvbXBvbmVudCc7XHJcbiJdfQ==

@@ -7,2 +7,2 @@ /**

export { NumericColorInputDirective } from './numeric-color-input.directive';
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb2xvci1waWNrZXIvc3JjL2xpYi9kaXJlY3RpdmVzL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBQUEsMkNBQWMsaUNBQWlDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tICcuL251bWVyaWMtY29sb3ItaW5wdXQuZGlyZWN0aXZlJztcclxuIl19
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiLi4vLi4vLi4vLi4vcHJvamVjdHMvY29sb3ItcGlja2VyL3NyYy8iLCJzb3VyY2VzIjpbImxpYi9kaXJlY3RpdmVzL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBQUEsMkNBQWMsaUNBQWlDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tICcuL251bWVyaWMtY29sb3ItaW5wdXQuZGlyZWN0aXZlJztcclxuIl19

@@ -40,2 +40,2 @@ /**

};
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibnVtZXJpYy1jb2xvci1pbnB1dC5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb2xvci1waWNrZXIvc3JjL2xpYi9kaXJlY3RpdmVzL251bWVyaWMtY29sb3ItaW5wdXQuZGlyZWN0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDeEQsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLFlBQVksQ0FBQztBQUszQyxNQUFNLE9BQU8sMEJBQTBCO0lBRXJDLGdCQUFnQixDQUFDOzs7OztJQUdqQixPQUFPLENBQUMsTUFBVztRQUNqQixJQUFJLENBQUMsWUFBWSxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUNuQyxDQUFDOzs7Ozs7O0lBTU8sWUFBWSxDQUFDLEtBQVU7O1lBQ3pCLEdBQUcsR0FBRyxNQUFNLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsYUFBYSxFQUFFLEVBQUUsQ0FBQyxDQUFDO1FBQ3hELEdBQUcsR0FBRyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDO1FBQzNCLEtBQUssQ0FBQyxLQUFLLEdBQUcsR0FBRyxDQUFDO0lBQ3BCLENBQUM7OztZQXBCRixTQUFTLFNBQUM7Z0JBQ1QsUUFBUSxFQUFFLDJCQUEyQjthQUN0Qzs7Ozs7c0JBS0UsWUFBWSxTQUFDLE9BQU8sRUFBRSxDQUFDLFFBQVEsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IERpcmVjdGl2ZSwgSG9zdExpc3RlbmVyIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IE5VTUVSSUNfUkVHRVggfSBmcm9tICcuLi9oZWxwZXJzJztcclxuXHJcbkBEaXJlY3RpdmUoe1xyXG4gIHNlbGVjdG9yOiAnW25neE1hdE51bWVyaWNDb2xvcklucHV0XSdcclxufSlcclxuZXhwb3J0IGNsYXNzIE51bWVyaWNDb2xvcklucHV0RGlyZWN0aXZlIHtcclxuXHJcbiAgY29uc3RydWN0b3IoKSB7IH1cclxuXHJcbiAgQEhvc3RMaXN0ZW5lcignaW5wdXQnLCBbJyRldmVudCddKVxyXG4gIG9uSW5wdXQoJGV2ZW50OiBhbnkpIHtcclxuICAgIHRoaXMuX2Zvcm1hdElucHV0KCRldmVudC50YXJnZXQpO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiogRm9ybWF0IGlucHV0XHJcbiogQHBhcmFtIGlucHV0IFxyXG4qL1xyXG4gIHByaXZhdGUgX2Zvcm1hdElucHV0KGlucHV0OiBhbnkpIHtcclxuICAgIGxldCB2YWwgPSBOdW1iZXIoaW5wdXQudmFsdWUucmVwbGFjZShOVU1FUklDX1JFR0VYLCAnJykpO1xyXG4gICAgdmFsID0gaXNOYU4odmFsKSA/IDAgOiB2YWw7XHJcbiAgICBpbnB1dC52YWx1ZSA9IHZhbDtcclxuICB9XHJcblxyXG59XHJcbiJdfQ==
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibnVtZXJpYy1jb2xvci1pbnB1dC5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290IjoiLi4vLi4vLi4vLi4vcHJvamVjdHMvY29sb3ItcGlja2VyL3NyYy8iLCJzb3VyY2VzIjpbImxpYi9kaXJlY3RpdmVzL251bWVyaWMtY29sb3ItaW5wdXQuZGlyZWN0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDeEQsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLFlBQVksQ0FBQztBQUszQyxNQUFNLE9BQU8sMEJBQTBCO0lBRXJDLGdCQUFnQixDQUFDOzs7OztJQUdqQixPQUFPLENBQUMsTUFBVztRQUNqQixJQUFJLENBQUMsWUFBWSxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUNuQyxDQUFDOzs7Ozs7O0lBTU8sWUFBWSxDQUFDLEtBQVU7O1lBQ3pCLEdBQUcsR0FBRyxNQUFNLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsYUFBYSxFQUFFLEVBQUUsQ0FBQyxDQUFDO1FBQ3hELEdBQUcsR0FBRyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDO1FBQzNCLEtBQUssQ0FBQyxLQUFLLEdBQUcsR0FBRyxDQUFDO0lBQ3BCLENBQUM7OztZQXBCRixTQUFTLFNBQUM7Z0JBQ1QsUUFBUSxFQUFFLDJCQUEyQjthQUN0Qzs7Ozs7c0JBS0UsWUFBWSxTQUFDLE9BQU8sRUFBRSxDQUFDLFFBQVEsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IERpcmVjdGl2ZSwgSG9zdExpc3RlbmVyIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IE5VTUVSSUNfUkVHRVggfSBmcm9tICcuLi9oZWxwZXJzJztcclxuXHJcbkBEaXJlY3RpdmUoe1xyXG4gIHNlbGVjdG9yOiAnW25neE1hdE51bWVyaWNDb2xvcklucHV0XSdcclxufSlcclxuZXhwb3J0IGNsYXNzIE51bWVyaWNDb2xvcklucHV0RGlyZWN0aXZlIHtcclxuXHJcbiAgY29uc3RydWN0b3IoKSB7IH1cclxuXHJcbiAgQEhvc3RMaXN0ZW5lcignaW5wdXQnLCBbJyRldmVudCddKVxyXG4gIG9uSW5wdXQoJGV2ZW50OiBhbnkpIHtcclxuICAgIHRoaXMuX2Zvcm1hdElucHV0KCRldmVudC50YXJnZXQpO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiogRm9ybWF0IGlucHV0XHJcbiogQHBhcmFtIGlucHV0IFxyXG4qL1xyXG4gIHByaXZhdGUgX2Zvcm1hdElucHV0KGlucHV0OiBhbnkpIHtcclxuICAgIGxldCB2YWwgPSBOdW1iZXIoaW5wdXQudmFsdWUucmVwbGFjZShOVU1FUklDX1JFR0VYLCAnJykpO1xyXG4gICAgdmFsID0gaXNOYU4odmFsKSA/IDAgOiB2YWw7XHJcbiAgICBpbnB1dC52YWx1ZSA9IHZhbDtcclxuICB9XHJcblxyXG59XHJcbiJdfQ==

@@ -220,2 +220,2 @@ /**

}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29sb3ItaGVscGVycy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NvbG9yLXBpY2tlci9zcmMvbGliL2hlbHBlcnMvY29sb3ItaGVscGVycy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7TUFDTSxRQUFRLEdBQUcsTUFBTTs7TUFDakIsU0FBUyxHQUFHLE1BQU07O01BQ2xCLFdBQVcsR0FBRyxDQUFDOztNQUNmLFNBQVMsR0FBRyxJQUFJLENBQUMsS0FBSzs7TUFDdEIsT0FBTyxHQUFHLElBQUksQ0FBQyxHQUFHOztNQUNsQixPQUFPLEdBQUcsSUFBSSxDQUFDLEdBQUc7O01BQ2xCLFVBQVUsR0FBRyxJQUFJLENBQUMsTUFBTTs7QUFFOUIsTUFBTSxPQUFPLGFBQWEsR0FBRyxTQUFTOztBQUN0QyxNQUFNLE9BQU8sT0FBTyxHQUFHLEdBQUc7O0FBQzFCLE1BQU0sT0FBTyxPQUFPLEdBQUcsQ0FBQzs7Ozs7QUFJeEIsTUFBTSxPQUFPLFlBQVksR0FBRyxDQUFDLFNBQVMsRUFBRSxTQUFTLEVBQUUsU0FBUyxFQUFFLFNBQVM7SUFDbkUsU0FBUyxFQUFFLFNBQVMsRUFBRSxTQUFTLEVBQUUsU0FBUztJQUMxQyxTQUFTLEVBQUUsU0FBUyxFQUFFLFNBQVMsRUFBRSxTQUFTO0lBQzFDLFNBQVMsRUFBRSxTQUFTLEVBQUUsU0FBUyxFQUFFLFNBQVM7Q0FDN0M7Ozs7Ozs7O0FBUUQsTUFBTSxVQUFVLGtCQUFrQixDQUFDLEdBQTZCLEVBQUUsQ0FBUyxFQUFFLENBQVM7O1VBQzVFLFNBQVMsR0FBc0IsR0FBRyxDQUFDLFlBQVksQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxJQUFJO0lBQ3RFLE9BQU8sRUFBRSxDQUFDLEVBQUUsU0FBUyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxTQUFTLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLFNBQVMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDO0FBQ2pFLENBQUM7Ozs7Ozs7Ozs7Ozs7QUFNRCxNQUFNLFVBQVUsU0FBUyxDQUFDLENBQVMsRUFBRSxDQUFTLEVBQUUsQ0FBUyxFQUFFLENBQVMsRUFBRSxVQUFvQjs7UUFDbEYsR0FBRyxHQUFHO1FBQ04sSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsRUFBRSxDQUFDLENBQUM7UUFDL0IsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsRUFBRSxDQUFDLENBQUM7UUFDL0IsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsRUFBRSxDQUFDLENBQUM7UUFDL0IsSUFBSSxDQUFDLG1CQUFtQixDQUFDLENBQUMsQ0FBQyxDQUFDO0tBQy9CO0lBRUQsdUNBQXVDO0lBQ3ZDLElBQUksVUFBVSxJQUFJLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLElBQUksR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsSUFBSSxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxJQUFJLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLElBQUksR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsSUFBSSxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxJQUFJLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLElBQUksR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBRTtRQUM1SyxPQUFPLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEdBQUcsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsR0FBRyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxHQUFHLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUM7S0FDcEY7SUFFRCxPQUFPLEdBQUcsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLENBQUM7QUFDeEIsQ0FBQzs7Ozs7O0FBR0QsTUFBTSxVQUFVLElBQUksQ0FBQyxDQUFDO0lBQ2xCLE9BQU8sQ0FBQyxDQUFDLE1BQU0sSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsR0FBRyxDQUFDLENBQUM7QUFDNUMsQ0FBQzs7Ozs7O0FBR0QsTUFBTSxVQUFVLG1CQUFtQixDQUFDLENBQUM7SUFDakMsT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsR0FBRyxHQUFHLENBQUMsQ0FBQyxRQUFRLENBQUMsRUFBRSxDQUFDLENBQUM7QUFDeEQsQ0FBQzs7Ozs7O0FBR0QsU0FBUyxtQkFBbUIsQ0FBQyxDQUFDO0lBQzFCLE9BQU8sQ0FBQyxlQUFlLENBQUMsQ0FBQyxDQUFDLEdBQUcsR0FBRyxDQUFDLENBQUM7QUFDdEMsQ0FBQzs7Ozs7O0FBR0QsU0FBUyxlQUFlLENBQUMsR0FBRztJQUN4QixPQUFPLFFBQVEsQ0FBQyxHQUFHLEVBQUUsRUFBRSxDQUFDLENBQUM7QUFDN0IsQ0FBQzs7Ozs7Ozs7Ozs7O0FBTUQsTUFBTSxVQUFVLFFBQVEsQ0FBQyxDQUFTLEVBQUUsQ0FBUyxFQUFFLENBQVMsRUFBRSxVQUFvQjs7UUFFdEUsR0FBRyxHQUFHO1FBQ04sSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsRUFBRSxDQUFDLENBQUM7UUFDL0IsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsRUFBRSxDQUFDLENBQUM7UUFDL0IsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsRUFBRSxDQUFDLENBQUM7S0FDbEM7SUFFRCx1Q0FBdUM7SUFDdkMsSUFBSSxVQUFVLElBQUksR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsSUFBSSxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxJQUFJLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLElBQUksR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsSUFBSSxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxJQUFJLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUU7UUFDcEksT0FBTyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxHQUFHLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEdBQUcsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQztLQUNqRTtJQUVELE9BQU8sR0FBRyxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsQ0FBQztBQUN4QixDQUFDOzs7OztNQUtLLFdBQVcsR0FBRyxlQUFlOztNQUM3QixVQUFVLEdBQUcsc0JBQXNCOztNQUNuQyxRQUFRLEdBQUcsS0FBSyxHQUFHLFVBQVUsR0FBRyxPQUFPLEdBQUcsV0FBVyxHQUFHLEdBQUc7O01BQzNELGlCQUFpQixHQUFHLGFBQWEsR0FBRyxRQUFRLEdBQUcsWUFBWSxHQUFHLFFBQVEsR0FBRyxZQUFZLEdBQUcsUUFBUSxHQUFHLFdBQVc7O01BQzlHLGlCQUFpQixHQUFHLGFBQWEsR0FBRyxRQUFRLEdBQUcsWUFBWSxHQUFHLFFBQVEsR0FBRyxZQUFZLEdBQUcsUUFBUSxHQUFHLFlBQVksR0FBRyxRQUFRLEdBQUcsV0FBVzs7QUFFOUksTUFBTSxPQUFPLFFBQVEsR0FBRztJQUNwQixRQUFRLEVBQUUsSUFBSSxNQUFNLENBQUMsUUFBUSxDQUFDO0lBQzlCLEdBQUcsRUFBRSxJQUFJLE1BQU0sQ0FBQyxLQUFLLEdBQUcsaUJBQWlCLENBQUM7SUFDMUMsSUFBSSxFQUFFLElBQUksTUFBTSxDQUFDLE1BQU0sR0FBRyxpQkFBaUIsQ0FBQztJQUM1QyxHQUFHLEVBQUUsSUFBSSxNQUFNLENBQUMsS0FBSyxHQUFHLGlCQUFpQixDQUFDO0lBQzFDLElBQUksRUFBRSxJQUFJLE1BQU0sQ0FBQyxNQUFNLEdBQUcsaUJBQWlCLENBQUM7SUFDNUMsR0FBRyxFQUFFLElBQUksTUFBTSxDQUFDLEtBQUssR0FBRyxpQkFBaUIsQ0FBQztJQUMxQyxJQUFJLEVBQUUsSUFBSSxNQUFNLENBQUMsTUFBTSxHQUFHLGlCQUFpQixDQUFDO0lBQzVDLElBQUksRUFBRSxzREFBc0Q7SUFDNUQsSUFBSSxFQUFFLHNEQUFzRDtJQUM1RCxJQUFJLEVBQUUsc0VBQXNFO0lBQzVFLElBQUksRUFBRSxzRUFBc0U7Q0FDL0U7Ozs7Ozs7O0FBS0QsTUFBTSxVQUFVLG1CQUFtQixDQUFDLEtBQWE7SUFFN0MsS0FBSyxHQUFHLEtBQUssQ0FBQyxPQUFPLENBQUMsUUFBUSxFQUFFLEVBQUUsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxTQUFTLEVBQUUsRUFBRSxDQUFDLENBQUMsV0FBVyxFQUFFLENBQUM7Ozs7OztRQU1yRSxLQUFLOztRQUNMLEdBQUc7SUFDUCxJQUFJLENBQUMsS0FBSyxHQUFHLFFBQVEsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLEVBQUU7UUFDcEMsT0FBTyxFQUFFLENBQUMsRUFBRSxLQUFLLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLEtBQUssQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsS0FBSyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQztLQUMxRDtJQUNELElBQUksQ0FBQyxLQUFLLEdBQUcsUUFBUSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsRUFBRTtRQUNyQyxPQUFPLEVBQUUsQ0FBQyxFQUFFLEtBQUssQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsS0FBSyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxLQUFLLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLEtBQUssQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDO0tBQ2pFO0lBRUQsSUFBSSxDQUFDLEtBQUssR0FBRyxRQUFRLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxFQUFFO1FBQ3JDLE9BQU87WUFDSCxDQUFDLEVBQUUsZUFBZSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQztZQUM1QixDQUFDLEVBQUUsZUFBZSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQztZQUM1QixDQUFDLEVBQUUsZUFBZSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQztZQUM1QixDQUFDLEVBQUUsbUJBQW1CLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDO1NBQ25DLENBQUM7S0FDTDtJQUNELElBQUksQ0FBQyxLQUFLLEdBQUcsUUFBUSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsRUFBRTtRQUNyQyxPQUFPO1lBQ0gsQ0FBQyxFQUFFLGVBQWUsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFDNUIsQ0FBQyxFQUFFLGVBQWUsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFDNUIsQ0FBQyxFQUFFLGVBQWUsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFDNUIsQ0FBQyxFQUFFLENBQUM7U0FDUCxDQUFDO0tBQ0w7SUFDRCxJQUFJLENBQUMsS0FBSyxHQUFHLFFBQVEsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLEVBQUU7UUFDckMsT0FBTztZQUNILENBQUMsRUFBRSxlQUFlLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxHQUFHLEVBQUUsR0FBRyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFDNUMsQ0FBQyxFQUFFLGVBQWUsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLEdBQUcsRUFBRSxHQUFHLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQztZQUM1QyxDQUFDLEVBQUUsZUFBZSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsR0FBRyxFQUFFLEdBQUcsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDO1lBQzVDLENBQUMsRUFBRSxtQkFBbUIsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLEdBQUcsRUFBRSxHQUFHLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQztTQUNuRCxDQUFDO0tBQ0w7SUFDRCxJQUFJLENBQUMsS0FBSyxHQUFHLFFBQVEsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLEVBQUU7UUFDckMsT0FBTztZQUNILENBQUMsRUFBRSxlQUFlLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxHQUFHLEVBQUUsR0FBRyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFDNUMsQ0FBQyxFQUFFLGVBQWUsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLEdBQUcsRUFBRSxHQUFHLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQztZQUM1QyxDQUFDLEVBQUUsZUFBZSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsR0FBRyxFQUFFLEdBQUcsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDO1lBQzVDLENBQUMsRUFBRSxDQUFDO1NBQ1AsQ0FBQztLQUNMO0lBRUQsT0FBTyxJQUFJLENBQUM7QUFDaEIsQ0FBQzs7Ozs7QUFFRCxNQUFNLFVBQVUsMEJBQTBCLENBQUMsUUFBZ0I7SUFDdkQsT0FBTyxLQUFLLENBQ1IsNENBQTRDLFFBQVEsb0RBQW9ELENBQUMsQ0FBQztBQUNsSCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiXHJcbmNvbnN0IHRyaW1MZWZ0ID0gL15cXHMrLztcclxuY29uc3QgdHJpbVJpZ2h0ID0gL1xccyskLztcclxuY29uc3QgdGlueUNvdW50ZXIgPSAwO1xyXG5jb25zdCBtYXRoUm91bmQgPSBNYXRoLnJvdW5kO1xyXG5jb25zdCBtYXRoTWluID0gTWF0aC5taW47XHJcbmNvbnN0IG1hdGhNYXggPSBNYXRoLm1heDtcclxuY29uc3QgbWF0aFJhbmRvbSA9IE1hdGgucmFuZG9tO1xyXG5cclxuZXhwb3J0IGNvbnN0IE5VTUVSSUNfUkVHRVggPSAvW14wLTldL2c7XHJcbmV4cG9ydCBjb25zdCBNQVhfUkdCID0gMjU1O1xyXG5leHBvcnQgY29uc3QgTUlOX1JHQiA9IDA7XHJcblxyXG5cclxuLyoqIExpc3QgYmFzaWMgY29sb3JzICovXHJcbmV4cG9ydCBjb25zdCBCQVNJQ19DT0xPUlMgPSBbXCIjZmZmZmZmXCIsIFwiI2ZmZmYwMFwiLCBcIiNmZjAwZmZcIiwgXCIjZmYwMDAwXCIsXHJcbiAgICBcIiNjMGMwYzBcIiwgXCIjODA4MDgwXCIsIFwiIzgwODAwMFwiLCBcIiM4MDAwODBcIixcclxuICAgIFwiIzgwMDAwMFwiLCBcIiMwMGZmZmZcIiwgXCIjMDBmZjAwXCIsIFwiIzAwODA4MFwiLFxyXG4gICAgXCIjMDA4MDAwXCIsIFwiIzAwMDBmZlwiLCBcIiMwMDAwODBcIiwgXCIjMDAwMDAwXCJcclxuXTtcclxuXHJcbi8qKlxyXG4gKiBHZXQgY29sb3IgYXQgcG9zaXRpb25cclxuICogQHBhcmFtIGN0eCBcclxuICogQHBhcmFtIHggXHJcbiAqIEBwYXJhbSB5IFxyXG4gKi9cclxuZXhwb3J0IGZ1bmN0aW9uIGdldENvbG9yQXRQb3NpdGlvbihjdHg6IENhbnZhc1JlbmRlcmluZ0NvbnRleHQyRCwgeDogbnVtYmVyLCB5OiBudW1iZXIpOiB7IHI6IG51bWJlciwgZzogbnVtYmVyLCBiOiBudW1iZXIgfSB7XHJcbiAgICBjb25zdCBpbWFnZURhdGE6IFVpbnQ4Q2xhbXBlZEFycmF5ID0gY3R4LmdldEltYWdlRGF0YSh4LCB5LCAxLCAxKS5kYXRhO1xyXG4gICAgcmV0dXJuIHsgcjogaW1hZ2VEYXRhWzBdLCBnOiBpbWFnZURhdGFbMV0sIGI6IGltYWdlRGF0YVsyXSB9O1xyXG59XHJcblxyXG4vLyBgcmdiYVRvSGV4YFxyXG4vLyBDb252ZXJ0cyBhbiBSR0JBIGNvbG9yIHBsdXMgYWxwaGEgdHJhbnNwYXJlbmN5IHRvIGhleFxyXG4vLyBBc3N1bWVzIHIsIGcsIGIgYXJlIGNvbnRhaW5lZCBpbiB0aGUgc2V0IFswLCAyNTVdIGFuZFxyXG4vLyBhIGluIFswLCAxXS4gUmV0dXJucyBhIDQgb3IgOCBjaGFyYWN0ZXIgcmdiYSBoZXhcclxuZXhwb3J0IGZ1bmN0aW9uIHJnYmFUb0hleChyOiBudW1iZXIsIGc6IG51bWJlciwgYjogbnVtYmVyLCBhOiBudW1iZXIsIGFsbG93NENoYXI/OiBib29sZWFuKTogc3RyaW5nIHtcclxuICAgIHZhciBoZXggPSBbXHJcbiAgICAgICAgcGFkMihtYXRoUm91bmQocikudG9TdHJpbmcoMTYpKSxcclxuICAgICAgICBwYWQyKG1hdGhSb3VuZChnKS50b1N0cmluZygxNikpLFxyXG4gICAgICAgIHBhZDIobWF0aFJvdW5kKGIpLnRvU3RyaW5nKDE2KSksXHJcbiAgICAgICAgcGFkMihjb252ZXJ0RGVjaW1hbFRvSGV4KGEpKVxyXG4gICAgXTtcclxuXHJcbiAgICAvLyBSZXR1cm4gYSA0IGNoYXJhY3RlciBoZXggaWYgcG9zc2libGVcclxuICAgIGlmIChhbGxvdzRDaGFyICYmIGhleFswXS5jaGFyQXQoMCkgPT0gaGV4WzBdLmNoYXJBdCgxKSAmJiBoZXhbMV0uY2hhckF0KDApID09IGhleFsxXS5jaGFyQXQoMSkgJiYgaGV4WzJdLmNoYXJBdCgwKSA9PSBoZXhbMl0uY2hhckF0KDEpICYmIGhleFszXS5jaGFyQXQoMCkgPT0gaGV4WzNdLmNoYXJBdCgxKSkge1xyXG4gICAgICAgIHJldHVybiBoZXhbMF0uY2hhckF0KDApICsgaGV4WzFdLmNoYXJBdCgwKSArIGhleFsyXS5jaGFyQXQoMCkgKyBoZXhbM10uY2hhckF0KDApO1xyXG4gICAgfVxyXG5cclxuICAgIHJldHVybiBoZXguam9pbihcIlwiKTtcclxufVxyXG5cclxuLy8gRm9yY2UgYSBoZXggdmFsdWUgdG8gaGF2ZSAyIGNoYXJhY3RlcnNcclxuZXhwb3J0IGZ1bmN0aW9uIHBhZDIoYyk6IHN0cmluZyB7XHJcbiAgICByZXR1cm4gYy5sZW5ndGggPT0gMSA/ICcwJyArIGMgOiAnJyArIGM7XHJcbn1cclxuXHJcbi8vIENvbnZlcnRzIGEgZGVjaW1hbCB0byBhIGhleCB2YWx1ZVxyXG5leHBvcnQgZnVuY3Rpb24gY29udmVydERlY2ltYWxUb0hleChkKSB7XHJcbiAgICByZXR1cm4gTWF0aC5yb3VuZChwYXJzZUZsb2F0KGQpICogMjU1KS50b1N0cmluZygxNik7XHJcbn1cclxuXHJcbi8vIENvbnZlcnRzIGEgaGV4IHZhbHVlIHRvIGEgZGVjaW1hbFxyXG5mdW5jdGlvbiBjb252ZXJ0SGV4VG9EZWNpbWFsKGgpIHtcclxuICAgIHJldHVybiAocGFyc2VJbnRGcm9tSGV4KGgpIC8gMjU1KTtcclxufVxyXG5cclxuLy8gUGFyc2UgYSBiYXNlLTE2IGhleCB2YWx1ZSBpbnRvIGEgYmFzZS0xMCBpbnRlZ2VyXHJcbmZ1bmN0aW9uIHBhcnNlSW50RnJvbUhleCh2YWwpIHtcclxuICAgIHJldHVybiBwYXJzZUludCh2YWwsIDE2KTtcclxufVxyXG5cclxuLy8gYHJnYlRvSGV4YFxyXG4vLyBDb252ZXJ0cyBhbiBSR0IgY29sb3IgdG8gaGV4XHJcbi8vIEFzc3VtZXMgciwgZywgYW5kIGIgYXJlIGNvbnRhaW5lZCBpbiB0aGUgc2V0IFswLCAyNTVdXHJcbi8vIFJldHVybnMgYSAzIG9yIDYgY2hhcmFjdGVyIGhleFxyXG5leHBvcnQgZnVuY3Rpb24gcmdiVG9IZXgocjogbnVtYmVyLCBnOiBudW1iZXIsIGI6IG51bWJlciwgYWxsb3czQ2hhcj86IGJvb2xlYW4pIHtcclxuXHJcbiAgICB2YXIgaGV4ID0gW1xyXG4gICAgICAgIHBhZDIobWF0aFJvdW5kKHIpLnRvU3RyaW5nKDE2KSksXHJcbiAgICAgICAgcGFkMihtYXRoUm91bmQoZykudG9TdHJpbmcoMTYpKSxcclxuICAgICAgICBwYWQyKG1hdGhSb3VuZChiKS50b1N0cmluZygxNikpXHJcbiAgICBdO1xyXG5cclxuICAgIC8vIFJldHVybiBhIDMgY2hhcmFjdGVyIGhleCBpZiBwb3NzaWJsZVxyXG4gICAgaWYgKGFsbG93M0NoYXIgJiYgaGV4WzBdLmNoYXJBdCgwKSA9PSBoZXhbMF0uY2hhckF0KDEpICYmIGhleFsxXS5jaGFyQXQoMCkgPT0gaGV4WzFdLmNoYXJBdCgxKSAmJiBoZXhbMl0uY2hhckF0KDApID09IGhleFsyXS5jaGFyQXQoMSkpIHtcclxuICAgICAgICByZXR1cm4gaGV4WzBdLmNoYXJBdCgwKSArIGhleFsxXS5jaGFyQXQoMCkgKyBoZXhbMl0uY2hhckF0KDApO1xyXG4gICAgfVxyXG5cclxuICAgIHJldHVybiBoZXguam9pbihcIlwiKTtcclxufVxyXG5cclxuLy8gQWN0dWFsIG1hdGNoaW5nLlxyXG4vLyBQYXJlbnRoZXNlcyBhbmQgY29tbWFzIGFyZSBvcHRpb25hbCwgYnV0IG5vdCByZXF1aXJlZC5cclxuLy8gV2hpdGVzcGFjZSBjYW4gdGFrZSB0aGUgcGxhY2Ugb2YgY29tbWFzIG9yIG9wZW5pbmcgcGFyZW50XHJcbmNvbnN0IENTU19JTlRFR0VSID0gXCJbLVxcXFwrXT9cXFxcZCslP1wiO1xyXG5jb25zdCBDU1NfTlVNQkVSID0gXCJbLVxcXFwrXT9cXFxcZCpcXFxcLlxcXFxkKyU/XCI7XHJcbmNvbnN0IENTU19VTklUID0gXCIoPzpcIiArIENTU19OVU1CRVIgKyBcIil8KD86XCIgKyBDU1NfSU5URUdFUiArIFwiKVwiO1xyXG5jb25zdCBQRVJNSVNTSVZFX01BVENIMyA9IFwiW1xcXFxzfFxcXFwoXSsoXCIgKyBDU1NfVU5JVCArIFwiKVssfFxcXFxzXSsoXCIgKyBDU1NfVU5JVCArIFwiKVssfFxcXFxzXSsoXCIgKyBDU1NfVU5JVCArIFwiKVxcXFxzKlxcXFwpP1wiO1xyXG5jb25zdCBQRVJNSVNTSVZFX01BVENINCA9IFwiW1xcXFxzfFxcXFwoXSsoXCIgKyBDU1NfVU5JVCArIFwiKVssfFxcXFxzXSsoXCIgKyBDU1NfVU5JVCArIFwiKVssfFxcXFxzXSsoXCIgKyBDU1NfVU5JVCArIFwiKVssfFxcXFxzXSsoXCIgKyBDU1NfVU5JVCArIFwiKVxcXFxzKlxcXFwpP1wiO1xyXG5cclxuZXhwb3J0IGNvbnN0IG1hdGNoZXJzID0ge1xyXG4gICAgQ1NTX1VOSVQ6IG5ldyBSZWdFeHAoQ1NTX1VOSVQpLFxyXG4gICAgcmdiOiBuZXcgUmVnRXhwKFwicmdiXCIgKyBQRVJNSVNTSVZFX01BVENIMyksXHJcbiAgICByZ2JhOiBuZXcgUmVnRXhwKFwicmdiYVwiICsgUEVSTUlTU0lWRV9NQVRDSDQpLFxyXG4gICAgaHNsOiBuZXcgUmVnRXhwKFwiaHNsXCIgKyBQRVJNSVNTSVZFX01BVENIMyksXHJcbiAgICBoc2xhOiBuZXcgUmVnRXhwKFwiaHNsYVwiICsgUEVSTUlTU0lWRV9NQVRDSDQpLFxyXG4gICAgaHN2OiBuZXcgUmVnRXhwKFwiaHN2XCIgKyBQRVJNSVNTSVZFX01BVENIMyksXHJcbiAgICBoc3ZhOiBuZXcgUmVnRXhwKFwiaHN2YVwiICsgUEVSTUlTU0lWRV9NQVRDSDQpLFxyXG4gICAgaGV4MzogL14jPyhbMC05YS1mQS1GXXsxfSkoWzAtOWEtZkEtRl17MX0pKFswLTlhLWZBLUZdezF9KSQvLFxyXG4gICAgaGV4NjogL14jPyhbMC05YS1mQS1GXXsyfSkoWzAtOWEtZkEtRl17Mn0pKFswLTlhLWZBLUZdezJ9KSQvLFxyXG4gICAgaGV4NDogL14jPyhbMC05YS1mQS1GXXsxfSkoWzAtOWEtZkEtRl17MX0pKFswLTlhLWZBLUZdezF9KShbMC05YS1mQS1GXXsxfSkkLyxcclxuICAgIGhleDg6IC9eIz8oWzAtOWEtZkEtRl17Mn0pKFswLTlhLWZBLUZdezJ9KShbMC05YS1mQS1GXXsyfSkoWzAtOWEtZkEtRl17Mn0pJC9cclxufTtcclxuXHJcbi8vIGBzdHJpbmdJbnB1dFRvT2JqZWN0YFxyXG4vLyBQZXJtaXNzaXZlIHN0cmluZyBwYXJzaW5nLiAgVGFrZSBpbiBhIG51bWJlciBvZiBmb3JtYXRzLCBhbmQgb3V0cHV0IGFuIG9iamVjdFxyXG4vLyBiYXNlZCBvbiBkZXRlY3RlZCBmb3JtYXQuICBSZXR1cm5zIGB7IHIsIGcsIGIgfWAgb3IgYHsgaCwgcywgbCB9YCBvciBgeyBoLCBzLCB2fWBcclxuZXhwb3J0IGZ1bmN0aW9uIHN0cmluZ0lucHV0VG9PYmplY3QoY29sb3I6IHN0cmluZyk6IHsgcjogbnVtYmVyLCBnOiBudW1iZXIsIGI6IG51bWJlciwgYTogbnVtYmVyIH0ge1xyXG5cclxuICAgIGNvbG9yID0gY29sb3IucmVwbGFjZSh0cmltTGVmdCwgJycpLnJlcGxhY2UodHJpbVJpZ2h0LCAnJykudG9Mb3dlckNhc2UoKTtcclxuXHJcbiAgICAvLyBUcnkgdG8gbWF0Y2ggc3RyaW5nIGlucHV0IHVzaW5nIHJlZ3VsYXIgZXhwcmVzc2lvbnMuXHJcbiAgICAvLyBLZWVwIG1vc3Qgb2YgdGhlIG51bWJlciBib3VuZGluZyBvdXQgb2YgdGhpcyBmdW5jdGlvbiAtIGRvbid0IHdvcnJ5IGFib3V0IFswLDFdIG9yIFswLDEwMF0gb3IgWzAsMzYwXVxyXG4gICAgLy8gSnVzdCByZXR1cm4gYW4gb2JqZWN0IGFuZCBsZXQgdGhlIGNvbnZlcnNpb24gZnVuY3Rpb25zIGhhbmRsZSB0aGF0LlxyXG4gICAgLy8gVGhpcyB3YXkgdGhlIHJlc3VsdCB3aWxsIGJlIHRoZSBzYW1lIHdoZXRoZXIgdGhlIHRpbnljb2xvciBpcyBpbml0aWFsaXplZCB3aXRoIHN0cmluZyBvciBvYmplY3QuXHJcbiAgICBsZXQgbWF0Y2g7XHJcbiAgICBsZXQgb2JqO1xyXG4gICAgaWYgKChtYXRjaCA9IG1hdGNoZXJzLnJnYi5leGVjKGNvbG9yKSkpIHtcclxuICAgICAgICByZXR1cm4geyByOiBtYXRjaFsxXSwgZzogbWF0Y2hbMl0sIGI6IG1hdGNoWzNdLCBhOiAxIH07XHJcbiAgICB9XHJcbiAgICBpZiAoKG1hdGNoID0gbWF0Y2hlcnMucmdiYS5leGVjKGNvbG9yKSkpIHtcclxuICAgICAgICByZXR1cm4geyByOiBtYXRjaFsxXSwgZzogbWF0Y2hbMl0sIGI6IG1hdGNoWzNdLCBhOiBtYXRjaFs0XSB9O1xyXG4gICAgfVxyXG5cclxuICAgIGlmICgobWF0Y2ggPSBtYXRjaGVycy5oZXg4LmV4ZWMoY29sb3IpKSkge1xyXG4gICAgICAgIHJldHVybiB7XHJcbiAgICAgICAgICAgIHI6IHBhcnNlSW50RnJvbUhleChtYXRjaFsxXSksXHJcbiAgICAgICAgICAgIGc6IHBhcnNlSW50RnJvbUhleChtYXRjaFsyXSksXHJcbiAgICAgICAgICAgIGI6IHBhcnNlSW50RnJvbUhleChtYXRjaFszXSksXHJcbiAgICAgICAgICAgIGE6IGNvbnZlcnRIZXhUb0RlY2ltYWwobWF0Y2hbNF0pLFxyXG4gICAgICAgIH07XHJcbiAgICB9XHJcbiAgICBpZiAoKG1hdGNoID0gbWF0Y2hlcnMuaGV4Ni5leGVjKGNvbG9yKSkpIHtcclxuICAgICAgICByZXR1cm4ge1xyXG4gICAgICAgICAgICByOiBwYXJzZUludEZyb21IZXgobWF0Y2hbMV0pLFxyXG4gICAgICAgICAgICBnOiBwYXJzZUludEZyb21IZXgobWF0Y2hbMl0pLFxyXG4gICAgICAgICAgICBiOiBwYXJzZUludEZyb21IZXgobWF0Y2hbM10pLFxyXG4gICAgICAgICAgICBhOiAxXHJcbiAgICAgICAgfTtcclxuICAgIH1cclxuICAgIGlmICgobWF0Y2ggPSBtYXRjaGVycy5oZXg0LmV4ZWMoY29sb3IpKSkge1xyXG4gICAgICAgIHJldHVybiB7XHJcbiAgICAgICAgICAgIHI6IHBhcnNlSW50RnJvbUhleChtYXRjaFsxXSArICcnICsgbWF0Y2hbMV0pLFxyXG4gICAgICAgICAgICBnOiBwYXJzZUludEZyb21IZXgobWF0Y2hbMl0gKyAnJyArIG1hdGNoWzJdKSxcclxuICAgICAgICAgICAgYjogcGFyc2VJbnRGcm9tSGV4KG1hdGNoWzNdICsgJycgKyBtYXRjaFszXSksXHJcbiAgICAgICAgICAgIGE6IGNvbnZlcnRIZXhUb0RlY2ltYWwobWF0Y2hbNF0gKyAnJyArIG1hdGNoWzRdKSxcclxuICAgICAgICB9O1xyXG4gICAgfVxyXG4gICAgaWYgKChtYXRjaCA9IG1hdGNoZXJzLmhleDMuZXhlYyhjb2xvcikpKSB7XHJcbiAgICAgICAgcmV0dXJuIHtcclxuICAgICAgICAgICAgcjogcGFyc2VJbnRGcm9tSGV4KG1hdGNoWzFdICsgJycgKyBtYXRjaFsxXSksXHJcbiAgICAgICAgICAgIGc6IHBhcnNlSW50RnJvbUhleChtYXRjaFsyXSArICcnICsgbWF0Y2hbMl0pLFxyXG4gICAgICAgICAgICBiOiBwYXJzZUludEZyb21IZXgobWF0Y2hbM10gKyAnJyArIG1hdGNoWzNdKSxcclxuICAgICAgICAgICAgYTogMVxyXG4gICAgICAgIH07XHJcbiAgICB9XHJcblxyXG4gICAgcmV0dXJuIG51bGw7XHJcbn1cclxuXHJcbmV4cG9ydCBmdW5jdGlvbiBjcmVhdGVNaXNzaW5nRGF0ZUltcGxFcnJvcihwcm92aWRlcjogc3RyaW5nKSB7XHJcbiAgICByZXR1cm4gRXJyb3IoXHJcbiAgICAgICAgYE5neE1hdENvbG9yUGlja2VyOiBObyBwcm92aWRlciBmb3VuZCBmb3IgJHtwcm92aWRlcn0uIFlvdSBtdXN0IGRlZmluZSBNQVRfQ09MT1JfRk9STUFUUyBpbiB5b3VyIG1vZHVsZWApO1xyXG59Il19
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29sb3ItaGVscGVycy5qcyIsInNvdXJjZVJvb3QiOiIuLi8uLi8uLi8uLi9wcm9qZWN0cy9jb2xvci1waWNrZXIvc3JjLyIsInNvdXJjZXMiOlsibGliL2hlbHBlcnMvY29sb3ItaGVscGVycy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7TUFDTSxRQUFRLEdBQUcsTUFBTTs7TUFDakIsU0FBUyxHQUFHLE1BQU07O01BQ2xCLFdBQVcsR0FBRyxDQUFDOztNQUNmLFNBQVMsR0FBRyxJQUFJLENBQUMsS0FBSzs7TUFDdEIsT0FBTyxHQUFHLElBQUksQ0FBQyxHQUFHOztNQUNsQixPQUFPLEdBQUcsSUFBSSxDQUFDLEdBQUc7O01BQ2xCLFVBQVUsR0FBRyxJQUFJLENBQUMsTUFBTTs7QUFFOUIsTUFBTSxPQUFPLGFBQWEsR0FBRyxTQUFTOztBQUN0QyxNQUFNLE9BQU8sT0FBTyxHQUFHLEdBQUc7O0FBQzFCLE1BQU0sT0FBTyxPQUFPLEdBQUcsQ0FBQzs7Ozs7QUFJeEIsTUFBTSxPQUFPLFlBQVksR0FBRyxDQUFDLFNBQVMsRUFBRSxTQUFTLEVBQUUsU0FBUyxFQUFFLFNBQVM7SUFDbkUsU0FBUyxFQUFFLFNBQVMsRUFBRSxTQUFTLEVBQUUsU0FBUztJQUMxQyxTQUFTLEVBQUUsU0FBUyxFQUFFLFNBQVMsRUFBRSxTQUFTO0lBQzFDLFNBQVMsRUFBRSxTQUFTLEVBQUUsU0FBUyxFQUFFLFNBQVM7Q0FDN0M7Ozs7Ozs7O0FBUUQsTUFBTSxVQUFVLGtCQUFrQixDQUFDLEdBQTZCLEVBQUUsQ0FBUyxFQUFFLENBQVM7O1VBQzVFLFNBQVMsR0FBc0IsR0FBRyxDQUFDLFlBQVksQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxJQUFJO0lBQ3RFLE9BQU8sRUFBRSxDQUFDLEVBQUUsU0FBUyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxTQUFTLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLFNBQVMs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bmNvbnN0IHRyaW1MZWZ0ID0gL15cXHMrLztcclxuY29uc3QgdHJpbVJpZ2h0ID0gL1xccyskLztcclxuY29uc3QgdGlueUNvdW50ZXIgPSAwO1xyXG5jb25zdCBtYXRoUm91bmQgPSBNYXRoLnJvdW5kO1xyXG5jb25zdCBtYXRoTWluID0gTWF0aC5taW47XHJcbmNvbnN0IG1hdGhNYXggPSBNYXRoLm1heDtcclxuY29uc3QgbWF0aFJhbmRvbSA9IE1hdGgucmFuZG9tO1xyXG5cclxuZXhwb3J0IGNvbnN0IE5VTUVSSUNfUkVHRVggPSAvW14wLTldL2c7XHJcbmV4cG9ydCBjb25zdCBNQVhfUkdCID0gMjU1O1xyXG5leHBvcnQgY29uc3QgTUlOX1JHQiA9IDA7XHJcblxyXG5cclxuLyoqIExpc3QgYmFzaWMgY29sb3JzICovXHJcbmV4cG9ydCBjb25zdCBCQVNJQ19DT0xPUlMgPSBbXCIjZmZmZmZmXCIsIFwiI2ZmZmYwMFwiLCBcIiNmZjAwZmZcIiwgXCIjZmYwMDAwXCIsXHJcbiAgICBcIiNjMGMwYzBcIiwgXCIjODA4MDgwXCIsIFwiIzgwODAwMFwiLCBcIiM4MDAwODBcIixcclxuICAgIFwiIzgwMDAwMFwiLCBcIiMwMGZmZmZcIiwgXCIjMDBmZjAwXCIsIFwiIzAwODA4MFwiLFxyXG4gICAgXCIjMDA4MDAwXCIsIFwiIzAwMDBmZlwiLCBcIiMwMDAwODBcIiwgXCIjMDAwMDAwXCJcclxuXTtcclxuXHJcbi8qKlxyXG4gKiBHZXQgY29sb3IgYXQgcG9zaXRpb25cclxuICogQHBhcmFtIGN0eCBcclxuICogQHBhcmFtIHggXHJcbiAqIEBwYXJhbSB5IFxyXG4gKi9cclxuZXhwb3J0IGZ1bmN0aW9uIGdldENvbG9yQXRQb3NpdGlvbihjdHg6IENhbnZhc1JlbmRlcmluZ0NvbnRleHQyRCwgeDogbnVtYmVyLCB5OiBudW1iZXIpOiB7IHI6IG51bWJlciwgZzogbnVtYmVyLCBiOiBudW1iZXIgfSB7XHJcbiAgICBjb25zdCBpbWFnZURhdGE6IFVpbnQ4Q2xhbXBlZEFycmF5ID0gY3R4LmdldEltYWdlRGF0YSh4LCB5LCAxLCAxKS5kYXRhO1xyXG4gICAgcmV0dXJuIHsgcjogaW1hZ2VEYXRhWzBdLCBnOiBpbWFnZURhdGFbMV0sIGI6IGltYWdlRGF0YVsyXSB9O1xyXG59XHJcblxyXG4vLyBgcmdiYVRvSGV4YFxyXG4vLyBDb252ZXJ0cyBhbiBSR0JBIGNvbG9yIHBsdXMgYWxwaGEgdHJhbnNwYXJlbmN5IHRvIGhleFxyXG4vLyBBc3N1bWVzIHIsIGcsIGIgYXJlIGNvbnRhaW5lZCBpbiB0aGUgc2V0IFswLCAyNTVdIGFuZFxyXG4vLyBhIGluIFswLCAxXS4gUmV0dXJucyBhIDQgb3IgOCBjaGFyYWN0ZXIgcmdiYSBoZXhcclxuZXhwb3J0IGZ1bmN0aW9uIHJnYmFUb0hleChyOiBudW1iZXIsIGc6IG51bWJlciwgYjogbnVtYmVyLCBhOiBudW1iZXIsIGFsbG93NENoYXI/OiBib29sZWFuKTogc3RyaW5nIHtcclxuICAgIHZhciBoZXggPSBbXHJcbiAgICAgICAgcGFkMihtYXRoUm91bmQocikudG9TdHJpbmcoMTYpKSxcclxuICAgICAgICBwYWQyKG1hdGhSb3VuZChnKS50b1N0cmluZygxNikpLFxyXG4gICAgICAgIHBhZDIobWF0aFJvdW5kKGIpLnRvU3RyaW5nKDE2KSksXHJcbiAgICAgICAgcGFkMihjb252ZXJ0RGVjaW1hbFRvSGV4KGEpKVxyXG4gICAgXTtcclxuXHJcbiAgICAvLyBSZXR1cm4gYSA0IGNoYXJhY3RlciBoZXggaWYgcG9zc2libGVcclxuICAgIGlmIChhbGxvdzRDaGFyICYmIGhleFswXS5jaGFyQXQoMCkgPT0gaGV4WzBdLmNoYXJBdCgxKSAmJiBoZXhbMV0uY2hhckF0KDApID09IGhleFsxXS5jaGFyQXQoMSkgJiYgaGV4WzJdLmNoYXJBdCgwKSA9PSBoZXhbMl0uY2hhckF0KDEpICYmIGhleFszXS5jaGFyQXQoMCkgPT0gaGV4WzNdLmNoYXJBdCgxKSkge1xyXG4gICAgICAgIHJldHVybiBoZXhbMF0uY2hhckF0KDApICsgaGV4WzFdLmNoYXJBdCgwKSArIGhleFsyXS5jaGFyQXQoMCkgKyBoZXhbM10uY2hhckF0KDApO1xyXG4gICAgfVxyXG5cclxuICAgIHJldHVybiBoZXguam9pbihcIlwiKTtcclxufVxyXG5cclxuLy8gRm9yY2UgYSBoZXggdmFsdWUgdG8gaGF2ZSAyIGNoYXJhY3RlcnNcclxuZXhwb3J0IGZ1bmN0aW9uIHBhZDIoYyk6IHN0cmluZyB7XHJcbiAgICByZXR1cm4gYy5sZW5ndGggPT0gMSA/ICcwJyArIGMgOiAnJyArIGM7XHJcbn1cclxuXHJcbi8vIENvbnZlcnRzIGEgZGVjaW1hbCB0byBhIGhleCB2YWx1ZVxyXG5leHBvcnQgZnVuY3Rpb24gY29udmVydERlY2ltYWxUb0hleChkKSB7XHJcbiAgICByZXR1cm4gTWF0aC5yb3VuZChwYXJzZUZsb2F0KGQpICogMjU1KS50b1N0cmluZygxNik7XHJcbn1cclxuXHJcbi8vIENvbnZlcnRzIGEgaGV4IHZhbHVlIHRvIGEgZGVjaW1hbFxyXG5mdW5jdGlvbiBjb252ZXJ0SGV4VG9EZWNpbWFsKGgpIHtcclxuICAgIHJldHVybiAocGFyc2VJbnRGcm9tSGV4KGgpIC8gMjU1KTtcclxufVxyXG5cclxuLy8gUGFyc2UgYSBiYXNlLTE2IGhleCB2YWx1ZSBpbnRvIGEgYmFzZS0xMCBpbnRlZ2VyXHJcbmZ1bmN0aW9uIHBhcnNlSW50RnJvbUhleCh2YWwpIHtcclxuICAgIHJldHVybiBwYXJzZUludCh2YWwsIDE2KTtcclxufVxyXG5cclxuLy8gYHJnYlRvSGV4YFxyXG4vLyBDb252ZXJ0cyBhbiBSR0IgY29sb3IgdG8gaGV4XHJcbi8vIEFzc3VtZXMgciwgZywgYW5kIGIgYXJlIGNvbnRhaW5lZCBpbiB0aGUgc2V0IFswLCAyNTVdXHJcbi8vIFJldHVybnMgYSAzIG9yIDYgY2hhcmFjdGVyIGhleFxyXG5leHBvcnQgZnVuY3Rpb24gcmdiVG9IZXgocjogbnVtYmVyLCBnOiBudW1iZXIsIGI6IG51bWJlciwgYWxsb3czQ2hhcj86IGJvb2xlYW4pIHtcclxuXHJcbiAgICB2YXIgaGV4ID0gW1xyXG4gICAgICAgIHBhZDIobWF0aFJvdW5kKHIpLnRvU3RyaW5nKDE2KSksXHJcbiAgICAgICAgcGFkMihtYXRoUm91bmQoZykudG9TdHJpbmcoMTYpKSxcclxuICAgICAgICBwYWQyKG1hdGhSb3VuZChiKS50b1N0cmluZygxNikpXHJcbiAgICBdO1xyXG5cclxuICAgIC8vIFJldHVybiBhIDMgY2hhcmFjdGVyIGhleCBpZiBwb3NzaWJsZVxyXG4gICAgaWYgKGFsbG93M0NoYXIgJiYgaGV4WzBdLmNoYXJBdCgwKSA9PSBoZXhbMF0uY2hhckF0KDEpICYmIGhleFsxXS5jaGFyQXQoMCkgPT0gaGV4WzFdLmNoYXJBdCgxKSAmJiBoZXhbMl0uY2hhckF0KDApID09IGhleFsyXS5jaGFyQXQoMSkpIHtcclxuICAgICAgICByZXR1cm4gaGV4WzBdLmNoYXJBdCgwKSArIGhleFsxXS5jaGFyQXQoMCkgKyBoZXhbMl0uY2hhckF0KDApO1xyXG4gICAgfVxyXG5cclxuICAgIHJldHVybiBoZXguam9pbihcIlwiKTtcclxufVxyXG5cclxuLy8gQWN0dWFsIG1hdGNoaW5nLlxyXG4vLyBQYXJlbnRoZXNlcyBhbmQgY29tbWFzIGFyZSBvcHRpb25hbCwgYnV0IG5vdCByZXF1aXJlZC5cclxuLy8gV2hpdGVzcGFjZSBjYW4gdGFrZSB0aGUgcGxhY2Ugb2YgY29tbWFzIG9yIG9wZW5pbmcgcGFyZW50XHJcbmNvbnN0IENTU19JTlRFR0VSID0gXCJbLVxcXFwrXT9cXFxcZCslP1wiO1xyXG5jb25zdCBDU1NfTlVNQkVSID0gXCJbLVxcXFwrXT9cXFxcZCpcXFxcLlxcXFxkKyU/XCI7XHJcbmNvbnN0IENTU19VTklUID0gXCIoPzpcIiArIENTU19OVU1CRVIgKyBcIil8KD86XCIgKyBDU1NfSU5URUdFUiArIFwiKVwiO1xyXG5jb25zdCBQRVJNSVNTSVZFX01BVENIMyA9IFwiW1xcXFxzfFxcXFwoXSsoXCIgKyBDU1NfVU5JVCArIFwiKVssfFxcXFxzXSsoXCIgKyBDU1NfVU5JVCArIFwiKVssfFxcXFxzXSsoXCIgKyBDU1NfVU5JVCArIFwiKVxcXFxzKlxcXFwpP1wiO1xyXG5jb25zdCBQRVJNSVNTSVZFX01BVENINCA9IFwiW1xcXFxzfFxcXFwoXSsoXCIgKyBDU1NfVU5JVCArIFwiKVssfFxcXFxzXSsoXCIgKyBDU1NfVU5JVCArIFwiKVssfFxcXFxzXSsoXCIgKyBDU1NfVU5JVCArIFwiKVssfFxcXFxzXSsoXCIgKyBDU1NfVU5JVCArIFwiKVxcXFxzKlxcXFwpP1wiO1xyXG5cclxuZXhwb3J0IGNvbnN0IG1hdGNoZXJzID0ge1xyXG4gICAgQ1NTX1VOSVQ6IG5ldyBSZWdFeHAoQ1NTX1VOSVQpLFxyXG4gICAgcmdiOiBuZXcgUmVnRXhwKFwicmdiXCIgKyBQRVJNSVNTSVZFX01BVENIMyksXHJcbiAgICByZ2JhOiBuZXcgUmVnRXhwKFwicmdiYVwiICsgUEVSTUlTU0lWRV9NQVRDSDQpLFxyXG4gICAgaHNsOiBuZXcgUmVnRXhwKFwiaHNsXCIgKyBQRVJNSVNTSVZFX01BVENIMyksXHJcbiAgICBoc2xhOiBuZXcgUmVnRXhwKFwiaHNsYVwiICsgUEVSTUlTU0lWRV9NQVRDSDQpLFxyXG4gICAgaHN2OiBuZXcgUmVnRXhwKFwiaHN2XCIgKyBQRVJNSVNTSVZFX01BVENIMyksXHJcbiAgICBoc3ZhOiBuZXcgUmVnRXhwKFwiaHN2YVwiICsgUEVSTUlTU0lWRV9NQVRDSDQpLFxyXG4gICAgaGV4MzogL14jPyhbMC05YS1mQS1GXXsxfSkoWzAtOWEtZkEtRl17MX0pKFswLTlhLWZBLUZdezF9KSQvLFxyXG4gICAgaGV4NjogL14jPyhbMC05YS1mQS1GXXsyfSkoWzAtOWEtZkEtRl17Mn0pKFswLTlhLWZBLUZdezJ9KSQvLFxyXG4gICAgaGV4NDogL14jPyhbMC05YS1mQS1GXXsxfSkoWzAtOWEtZkEtRl17MX0pKFswLTlhLWZBLUZdezF9KShbMC05YS1mQS1GXXsxfSkkLyxcclxuICAgIGhleDg6IC9eIz8oWzAtOWEtZkEtRl17Mn0pKFswLTlhLWZBLUZdezJ9KShbMC05YS1mQS1GXXsyfSkoWzAtOWEtZkEtRl17Mn0pJC9cclxufTtcclxuXHJcbi8vIGBzdHJpbmdJbnB1dFRvT2JqZWN0YFxyXG4vLyBQZXJtaXNzaXZlIHN0cmluZyBwYXJzaW5nLiAgVGFrZSBpbiBhIG51bWJlciBvZiBmb3JtYXRzLCBhbmQgb3V0cHV0IGFuIG9iamVjdFxyXG4vLyBiYXNlZCBvbiBkZXRlY3RlZCBmb3JtYXQuICBSZXR1cm5zIGB7IHIsIGcsIGIgfWAgb3IgYHsgaCwgcywgbCB9YCBvciBgeyBoLCBzLCB2fWBcclxuZXhwb3J0IGZ1bmN0aW9uIHN0cmluZ0lucHV0VG9PYmplY3QoY29sb3I6IHN0cmluZyk6IHsgcjogbnVtYmVyLCBnOiBudW1iZXIsIGI6IG51bWJlciwgYTogbnVtYmVyIH0ge1xyXG5cclxuICAgIGNvbG9yID0gY29sb3IucmVwbGFjZSh0cmltTGVmdCwgJycpLnJlcGxhY2UodHJpbVJpZ2h0LCAnJykudG9Mb3dlckNhc2UoKTtcclxuXHJcbiAgICAvLyBUcnkgdG8gbWF0Y2ggc3RyaW5nIGlucHV0IHVzaW5nIHJlZ3VsYXIgZXhwcmVzc2lvbnMuXHJcbiAgICAvLyBLZWVwIG1vc3Qgb2YgdGhlIG51bWJlciBib3VuZGluZyBvdXQgb2YgdGhpcyBmdW5jdGlvbiAtIGRvbid0IHdvcnJ5IGFib3V0IFswLDFdIG9yIFswLDEwMF0gb3IgWzAsMzYwXVxyXG4gICAgLy8gSnVzdCByZXR1cm4gYW4gb2JqZWN0IGFuZCBsZXQgdGhlIGNvbnZlcnNpb24gZnVuY3Rpb25zIGhhbmRsZSB0aGF0LlxyXG4gICAgLy8gVGhpcyB3YXkgdGhlIHJlc3VsdCB3aWxsIGJlIHRoZSBzYW1lIHdoZXRoZXIgdGhlIHRpbnljb2xvciBpcyBpbml0aWFsaXplZCB3aXRoIHN0cmluZyBvciBvYmplY3QuXHJcbiAgICBsZXQgbWF0Y2g7XHJcbiAgICBsZXQgb2JqO1xyXG4gICAgaWYgKChtYXRjaCA9IG1hdGNoZXJzLnJnYi5leGVjKGNvbG9yKSkpIHtcclxuICAgICAgICByZXR1cm4geyByOiBtYXRjaFsxXSwgZzogbWF0Y2hbMl0sIGI6IG1hdGNoWzNdLCBhOiAxIH07XHJcbiAgICB9XHJcbiAgICBpZiAoKG1hdGNoID0gbWF0Y2hlcnMucmdiYS5leGVjKGNvbG9yKSkpIHtcclxuICAgICAgICByZXR1cm4geyByOiBtYXRjaFsxXSwgZzogbWF0Y2hbMl0sIGI6IG1hdGNoWzNdLCBhOiBtYXRjaFs0XSB9O1xyXG4gICAgfVxyXG5cclxuICAgIGlmICgobWF0Y2ggPSBtYXRjaGVycy5oZXg4LmV4ZWMoY29sb3IpKSkge1xyXG4gICAgICAgIHJldHVybiB7XHJcbiAgICAgICAgICAgIHI6IHBhcnNlSW50RnJvbUhleChtYXRjaFsxXSksXHJcbiAgICAgICAgICAgIGc6IHBhcnNlSW50RnJvbUhleChtYXRjaFsyXSksXHJcbiAgICAgICAgICAgIGI6IHBhcnNlSW50RnJvbUhleChtYXRjaFszXSksXHJcbiAgICAgICAgICAgIGE6IGNvbnZlcnRIZXhUb0RlY2ltYWwobWF0Y2hbNF0pLFxyXG4gICAgICAgIH07XHJcbiAgICB9XHJcbiAgICBpZiAoKG1hdGNoID0gbWF0Y2hlcnMuaGV4Ni5leGVjKGNvbG9yKSkpIHtcclxuICAgICAgICByZXR1cm4ge1xyXG4gICAgICAgICAgICByOiBwYXJzZUludEZyb21IZXgobWF0Y2hbMV0pLFxyXG4gICAgICAgICAgICBnOiBwYXJzZUludEZyb21IZXgobWF0Y2hbMl0pLFxyXG4gICAgICAgICAgICBiOiBwYXJzZUludEZyb21IZXgobWF0Y2hbM10pLFxyXG4gICAgICAgICAgICBhOiAxXHJcbiAgICAgICAgfTtcclxuICAgIH1cclxuICAgIGlmICgobWF0Y2ggPSBtYXRjaGVycy5oZXg0LmV4ZWMoY29sb3IpKSkge1xyXG4gICAgICAgIHJldHVybiB7XHJcbiAgICAgICAgICAgIHI6IHBhcnNlSW50RnJvbUhleChtYXRjaFsxXSArICcnICsgbWF0Y2hbMV0pLFxyXG4gICAgICAgICAgICBnOiBwYXJzZUludEZyb21IZXgobWF0Y2hbMl0gKyAnJyArIG1hdGNoWzJdKSxcclxuICAgICAgICAgICAgYjogcGFyc2VJbnRGcm9tSGV4KG1hdGNoWzNdICsgJycgKyBtYXRjaFszXSksXHJcbiAgICAgICAgICAgIGE6IGNvbnZlcnRIZXhUb0RlY2ltYWwobWF0Y2hbNF0gKyAnJyArIG1hdGNoWzRdKSxcclxuICAgICAgICB9O1xyXG4gICAgfVxyXG4gICAgaWYgKChtYXRjaCA9IG1hdGNoZXJzLmhleDMuZXhlYyhjb2xvcikpKSB7XHJcbiAgICAgICAgcmV0dXJuIHtcclxuICAgICAgICAgICAgcjogcGFyc2VJbnRGcm9tSGV4KG1hdGNoWzFdICsgJycgKyBtYXRjaFsxXSksXHJcbiAgICAgICAgICAgIGc6IHBhcnNlSW50RnJvbUhleChtYXRjaFsyXSArICcnICsgbWF0Y2hbMl0pLFxyXG4gICAgICAgICAgICBiOiBwYXJzZUludEZyb21IZXgobWF0Y2hbM10gKyAnJyArIG1hdGNoWzNdKSxcclxuICAgICAgICAgICAgYTogMVxyXG4gICAgICAgIH07XHJcbiAgICB9XHJcblxyXG4gICAgcmV0dXJuIG51bGw7XHJcbn1cclxuXHJcbmV4cG9ydCBmdW5jdGlvbiBjcmVhdGVNaXNzaW5nRGF0ZUltcGxFcnJvcihwcm92aWRlcjogc3RyaW5nKSB7XHJcbiAgICByZXR1cm4gRXJyb3IoXHJcbiAgICAgICAgYE5neE1hdENvbG9yUGlja2VyOiBObyBwcm92aWRlciBmb3VuZCBmb3IgJHtwcm92aWRlcn0uIFlvdSBtdXN0IGRlZmluZSBNQVRfQ09MT1JfRk9STUFUUyBpbiB5b3VyIG1vZHVsZWApO1xyXG59Il19

@@ -7,2 +7,2 @@ /**

export { getColorAtPosition, rgbaToHex, pad2, convertDecimalToHex, rgbToHex, stringInputToObject, createMissingDateImplError, NUMERIC_REGEX, MAX_RGB, MIN_RGB, BASIC_COLORS, matchers } from './color-helpers';
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb2xvci1waWNrZXIvc3JjL2xpYi9oZWxwZXJzL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBQUEsNkxBQWMsaUJBQWlCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tICcuL2NvbG9yLWhlbHBlcnMnOyJdfQ==
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiLi4vLi4vLi4vLi4vcHJvamVjdHMvY29sb3ItcGlja2VyL3NyYy8iLCJzb3VyY2VzIjpbImxpYi9oZWxwZXJzL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBQUEsNkxBQWMsaUJBQWlCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tICcuL2NvbG9yLWhlbHBlcnMnOyJdfQ==

@@ -6,2 +6,3 @@ /**

*/
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29sb3ItaW5wdXQtZm9ybWF0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY29sb3ItcGlja2VyL3NyYy9saWIvbW9kZWxzL2NvbG9yLWlucHV0LWZvcm1hdC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IHR5cGUgQ29sb3JJbnB1dEZvcm1hdCA9ICdyZ2InIHwgJ2hleCcgfCAnaGV4NicgfCAnaGV4MycgfCAnaGV4NCcgfCAnaGV4OCc7XHJcbiJdfQ==
export {};
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29sb3ItaW5wdXQtZm9ybWF0LmpzIiwic291cmNlUm9vdCI6Ii4uLy4uLy4uLy4uL3Byb2plY3RzL2NvbG9yLXBpY2tlci9zcmMvIiwic291cmNlcyI6WyJsaWIvbW9kZWxzL2NvbG9yLWlucHV0LWZvcm1hdC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IHR5cGUgQ29sb3JJbnB1dEZvcm1hdCA9ICdyZ2InIHwgJ2hleCcgfCAnaGV4NicgfCAnaGV4MycgfCAnaGV4NCcgfCAnaGV4OCc7XHJcbiJdfQ==

@@ -121,2 +121,2 @@ /**

}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29sb3IubW9kZWwuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb2xvci1waWNrZXIvc3JjL2xpYi9tb2RlbHMvY29sb3IubW9kZWwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBQSxPQUFPLEVBQUUsT0FBTyxFQUFFLFNBQVMsRUFBRSxRQUFRLEVBQUUsTUFBTSxZQUFZLENBQUM7QUFHMUQsTUFBTSxPQUFPLEtBQUs7Ozs7Ozs7SUFXZCxZQUFZLEVBQVUsRUFBRSxFQUFVLEVBQUUsRUFBVSxFQUFFLEVBQVc7UUFDdkQsSUFBSSxDQUFDLENBQUMsR0FBRyxFQUFFLEdBQUcsT0FBTyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQztRQUNyQyxJQUFJLENBQUMsQ0FBQyxHQUFHLEVBQUUsR0FBRyxPQUFPLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDO1FBQ3JDLElBQUksQ0FBQyxDQUFDLEdBQUcsRUFBRSxHQUFHLE9BQU8sQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUM7UUFDckMsSUFBSSxFQUFFLElBQUksSUFBSSxFQUFFO1lBQ1osSUFBSSxDQUFDLENBQUMsR0FBRyxFQUFFLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQztTQUM1QjthQUFNO1lBQ0gsSUFBSSxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUM7U0FDZDtRQUNELElBQUksQ0FBQyxNQUFNLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDakMsSUFBSSxDQUFDLEdBQUcsR0FBRyxRQUFRLENBQUMsSUFBSSxDQUFDLENBQUMsRUFBRSxJQUFJLENBQUMsQ0FBQyxFQUFFLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUM1QyxJ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QUFDLElBQUksQ0FBQyxDQUFDO1NBQzdDO1FBQ0QsSUFBSSxNQUFNLEtBQUssTUFBTSxFQUFFO1lBQ25CLGVBQWUsR0FBRyxJQUFJLENBQUMsWUFBWSxFQUFFLENBQUM7U0FDekM7UUFFRCxPQUFPLGVBQWUsSUFBSSxJQUFJLENBQUMsV0FBVyxFQUFFLENBQUM7SUFDakQsQ0FBQztDQUVKOzs7SUEvRUcsa0JBQWlCOztJQUNqQixrQkFBaUI7O0lBQ2pCLGtCQUFpQjs7SUFDakIsa0JBQWlCOztJQUNqQix1QkFBc0I7O0lBRXRCLG9CQUFtQjs7SUFDbkIscUJBQW9CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTUFYX1JHQiwgcmdiYVRvSGV4LCByZ2JUb0hleCB9IGZyb20gJy4uL2hlbHBlcnMnO1xyXG5pbXBvcnQgeyBDb2xvcklucHV0Rm9ybWF0IH0gZnJvbSAnLi9jb2xvci1pbnB1dC1mb3JtYXQnO1xyXG5cclxuZXhwb3J0IGNsYXNzIENvbG9yIHtcclxuXHJcbiAgICBwdWJsaWMgcjogbnVtYmVyO1xyXG4gICAgcHVibGljIGc6IG51bWJlcjtcclxuICAgIHB1YmxpYyBiOiBudW1iZXI7XHJcbiAgICBwdWJsaWMgYTogbnVtYmVyO1xyXG4gICAgcHVibGljIHJvdW5kQTogbnVtYmVyO1xyXG5cclxuICAgIHB1YmxpYyBoZXg6IHN0cmluZztcclxuICAgIHB1YmxpYyByZ2JhOiBzdHJpbmc7XHJcblxyXG4gICAgY29uc3RydWN0b3IoX3I6IG51bWJlciwgX2c6IG51bWJlciwgX2I6IG51bWJlciwgX2E/OiBudW1iZXIpIHtcclxuICAgICAgICB0aGlzLnIgPSBfciA+IE1BWF9SR0IgPyBNQVhfUkdCIDogX3I7XHJcbiAgICAgICAgdGhpcy5nID0gX2cgPiBNQVhfUkdCID8gTUFYX1JHQiA6IF9nO1xyXG4gICAgICAgIHRoaXMuYiA9IF9iID4gTUFYX1JHQiA/IE1BWF9SR0IgOiBfYjtcclxuICAgICAgICBpZiAoX2EgIT0gbnVsbCkge1xyXG4gICAgICAgICAgICB0aGlzLmEgPSBfYSA+IDEgPyAxIDogX2E7XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgdGhpcy5hID0gMTtcclxuICAgICAgICB9XHJcbiAgICAgICAgdGhpcy5yb3VuZEEgPSBNYXRoLnJvdW5kKHRoaXMuYSk7XHJcbiAgICAgICAgdGhpcy5oZXggPSByZ2JUb0hleCh0aGlzLnIsIHRoaXMuZywgdGhpcy5iKTtcclxuICAgICAgICB0aGlzLnJnYmEgPSB0aGlzLnRvUmdiYSgpO1xyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyB0b0hleChhbGxvdzNDaGFyPzogYm9vbGVhbiwgKTogc3RyaW5nIHtcclxuICAgICAgICByZXR1cm4gcmdiVG9IZXgodGhpcy5yLCB0aGlzLmcsIHRoaXMuYiwgYWxsb3czQ2hhcik7XHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIHRvUmdiYSgpOiBzdHJpbmcge1xyXG4gICAgICAgIHJldHVybiBgcmdiYSgke3RoaXMucn0sJHt0aGlzLmd9LCR7dGhpcy5ifSwke3RoaXMuYX0pYDtcclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgdG9IZXhTdHJpbmcoYWxsb3czQ2hhcj86IGJvb2xlYW4pOiBzdHJpbmcge1xyXG4gICAgICAgIHJldHVybiAnIycgKyB0aGlzLnRvSGV4KGFsbG93M0NoYXIpO1xyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyB0b1JnYlN0cmluZygpOiBzdHJpbmcge1xyXG4gICAgICAgIHJldHVybiAodGhpcy5hID09PSAxKSA/XHJcbiAgICAgICAgICAgIFwicmdiKFwiICsgTWF0aC5yb3VuZCh0aGlzLnIpICsgXCIsIFwiICsgTWF0aC5yb3VuZCh0aGlzLmcpICsgXCIsIFwiICsgTWF0aC5yb3VuZCh0aGlzLmIpICsgXCIpXCIgOlxyXG4gICAgICAgICAgICBcInJnYmEoXCIgKyBNYXRoLnJvdW5kKHRoaXMucikgKyBcIiwgXCIgKyBNYXRoLnJvdW5kKHRoaXMuZykgKyBcIiwgXCIgKyBNYXRoLnJvdW5kKHRoaXMuYikgKyBcIiwgXCIgKyB0aGlzLnJvdW5kQSArIFwiKVwiO1xyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyB0b0hleDgoYWxsb3c0Q2hhcik6IHN0cmluZyB7XHJcbiAgICAgICAgcmV0dXJuIHJnYmFUb0hleCh0aGlzLnIsIHRoaXMuZywgdGhpcy5iLCB0aGlzLmEsIGFsbG93NENoYXIpO1xyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyB0b0hleDhTdHJpbmcoYWxsb3c0Q2hhcj86IGJvb2xlYW4pOiBzdHJpbmcge1xyXG4gICAgICAgIHJldHVybiAnIycgKyB0aGlzLnRvSGV4OChhbGxvdzRDaGFyKTtcclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgdG9TdHJpbmcoZm9ybWF0OiBDb2xvcklucHV0Rm9ybWF0KTogc3RyaW5nIHtcclxuICAgICAgICBsZXQgZm9ybWF0U2V0ID0gISFmb3JtYXQ7XHJcblxyXG4gICAgICAgIGxldCBmb3JtYXR0ZWRTdHJpbmc7XHJcbiAgICAgICAgbGV0IGhhc0FscGhhID0gdGhpcy5hIDwgMSAmJiB0aGlzLmEgPj0gMDtcclxuICAgICAgICBsZXQgbmVlZHNBbHBoYUZvcm1hdCA9ICFmb3JtYXRTZXQgJiYgaGFzQWxwaGEgJiYgKGZvcm1hdCA9PT0gXCJoZXhcIiB8fCBmb3JtYXQgPT09IFwiaGV4NlwiXHJcbiAgICAgICAgICAgIHx8IGZvcm1hdCA9PT0gXCJoZXgzXCIgfHwgZm9ybWF0ID09PSBcImhleDRcIiB8fCBmb3JtYXQgPT09IFwiaGV4OFwiKTtcclxuXHJcbiAgICAgICAgaWYgKG5lZWRzQWxwaGFGb3JtYXQpIHtcclxuICAgICAgICAgICAgcmV0dXJuIHRoaXMudG9SZ2JTdHJpbmcoKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgaWYgKGZvcm1hdCA9PT0gXCJyZ2JcIikge1xyXG4gICAgICAgICAgICBmb3JtYXR0ZWRTdHJpbmcgPSB0aGlzLnRvUmdiU3RyaW5nKCk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGlmIChmb3JtYXQgPT09IFwiaGV4XCIgfHwgZm9ybWF0ID09PSBcImhleDZcIikge1xyXG4gICAgICAgICAgICBmb3JtYXR0ZWRTdHJpbmcgPSB0aGlzLnRvSGV4U3RyaW5nKCk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGlmIChmb3JtYXQgPT09IFwiaGV4M1wiKSB7XHJcbiAgICAgICAgICAgIGZvcm1hdHRlZFN0cmluZyA9IHRoaXMudG9IZXhTdHJpbmcodHJ1ZSk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGlmIChmb3JtYXQgPT09IFwiaGV4NFwiKSB7XHJcbiAgICAgICAgICAgIGZvcm1hdHRlZFN0cmluZyA9IHRoaXMudG9IZXg4U3RyaW5nKHRydWUpO1xyXG4gICAgICAgIH1cclxuICAgICAgICBpZiAoZm9ybWF0ID09PSBcImhleDhcIikge1xyXG4gICAgICAgICAgICBmb3JtYXR0ZWRTdHJpbmcgPSB0aGlzLnRvSGV4OFN0cmluZygpO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgcmV0dXJuIGZvcm1hdHRlZFN0cmluZyB8fCB0aGlzLnRvSGV4U3RyaW5nKCk7XHJcbiAgICB9XHJcblxyXG59Il19
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29sb3IubW9kZWwuanMiLCJzb3VyY2VSb290IjoiLi4vLi4vLi4vLi4vcHJvamVjdHMvY29sb3ItcGlja2VyL3NyYy8iLCJzb3VyY2VzIjpbImxpYi9tb2RlbHMvY29sb3IubW9kZWwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBQSxPQUFPLEVBQUUsT0FBTyxFQUFFLFNBQVMsRUFBRSxRQUFRLEVBQUUsTUFBTSxZQUFZLENBQUM7QUFHMUQsTUFBTSxPQUFPLEtBQUs7Ozs7Ozs7SUFXZCxZQUFZLEVBQVUsRUFBRSxFQUFVLEVBQUUsRUFBVSxFQUFFLEVBQVc7UUFDdkQsSUFBSSxDQUFDLENBQUMsR0FBRyxFQUFFLEdBQUcsT0FBTyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQztRQUNyQyxJQUFJLENBQUMsQ0FBQyxHQUFHLEVBQUUsR0FBRyxPQUFPLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDO1FBQ3JDLElBQUksQ0FBQyxDQUFDLEdBQUcsRUFBRSxHQUFHLE9BQU8sQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUM7UUFDckMsSUFBSSxFQUFFLElBQUksSUFBSSxFQUFFO1lBQ1osSUFBSSxDQUFDLENBQUMsR0FBRyxFQUFFLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQztTQUM1QjthQUFNO1lBQ0gsSUFBSSxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUM7U0FDZDtRQUNELElBQUksQ0FBQyxNQUFNLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDakMsSUFBSSxDQUFDLEdBQUcsR0FBRyxRQUFRLENBQUMsSUFBSSxDQUFDLENBQUMsRUFBRSxJQUFJLENBQUMsQ0FBQyxFQUFFLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUM1QyxJQUFJLENB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QUksQ0FBQyxDQUFDO1NBQzdDO1FBQ0QsSUFBSSxNQUFNLEtBQUssTUFBTSxFQUFFO1lBQ25CLGVBQWUsR0FBRyxJQUFJLENBQUMsWUFBWSxFQUFFLENBQUM7U0FDekM7UUFFRCxPQUFPLGVBQWUsSUFBSSxJQUFJLENBQUMsV0FBVyxFQUFFLENBQUM7SUFDakQsQ0FBQztDQUVKOzs7SUEvRUcsa0JBQWlCOztJQUNqQixrQkFBaUI7O0lBQ2pCLGtCQUFpQjs7SUFDakIsa0JBQWlCOztJQUNqQix1QkFBc0I7O0lBRXRCLG9CQUFtQjs7SUFDbkIscUJBQW9CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTUFYX1JHQiwgcmdiYVRvSGV4LCByZ2JUb0hleCB9IGZyb20gJy4uL2hlbHBlcnMnO1xyXG5pbXBvcnQgeyBDb2xvcklucHV0Rm9ybWF0IH0gZnJvbSAnLi9jb2xvci1pbnB1dC1mb3JtYXQnO1xyXG5cclxuZXhwb3J0IGNsYXNzIENvbG9yIHtcclxuXHJcbiAgICBwdWJsaWMgcjogbnVtYmVyO1xyXG4gICAgcHVibGljIGc6IG51bWJlcjtcclxuICAgIHB1YmxpYyBiOiBudW1iZXI7XHJcbiAgICBwdWJsaWMgYTogbnVtYmVyO1xyXG4gICAgcHVibGljIHJvdW5kQTogbnVtYmVyO1xyXG5cclxuICAgIHB1YmxpYyBoZXg6IHN0cmluZztcclxuICAgIHB1YmxpYyByZ2JhOiBzdHJpbmc7XHJcblxyXG4gICAgY29uc3RydWN0b3IoX3I6IG51bWJlciwgX2c6IG51bWJlciwgX2I6IG51bWJlciwgX2E/OiBudW1iZXIpIHtcclxuICAgICAgICB0aGlzLnIgPSBfciA+IE1BWF9SR0IgPyBNQVhfUkdCIDogX3I7XHJcbiAgICAgICAgdGhpcy5nID0gX2cgPiBNQVhfUkdCID8gTUFYX1JHQiA6IF9nO1xyXG4gICAgICAgIHRoaXMuYiA9IF9iID4gTUFYX1JHQiA/IE1BWF9SR0IgOiBfYjtcclxuICAgICAgICBpZiAoX2EgIT0gbnVsbCkge1xyXG4gICAgICAgICAgICB0aGlzLmEgPSBfYSA+IDEgPyAxIDogX2E7XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgdGhpcy5hID0gMTtcclxuICAgICAgICB9XHJcbiAgICAgICAgdGhpcy5yb3VuZEEgPSBNYXRoLnJvdW5kKHRoaXMuYSk7XHJcbiAgICAgICAgdGhpcy5oZXggPSByZ2JUb0hleCh0aGlzLnIsIHRoaXMuZywgdGhpcy5iKTtcclxuICAgICAgICB0aGlzLnJnYmEgPSB0aGlzLnRvUmdiYSgpO1xyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyB0b0hleChhbGxvdzNDaGFyPzogYm9vbGVhbiwgKTogc3RyaW5nIHtcclxuICAgICAgICByZXR1cm4gcmdiVG9IZXgodGhpcy5yLCB0aGlzLmcsIHRoaXMuYiwgYWxsb3czQ2hhcik7XHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIHRvUmdiYSgpOiBzdHJpbmcge1xyXG4gICAgICAgIHJldHVybiBgcmdiYSgke3RoaXMucn0sJHt0aGlzLmd9LCR7dGhpcy5ifSwke3RoaXMuYX0pYDtcclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgdG9IZXhTdHJpbmcoYWxsb3czQ2hhcj86IGJvb2xlYW4pOiBzdHJpbmcge1xyXG4gICAgICAgIHJldHVybiAnIycgKyB0aGlzLnRvSGV4KGFsbG93M0NoYXIpO1xyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyB0b1JnYlN0cmluZygpOiBzdHJpbmcge1xyXG4gICAgICAgIHJldHVybiAodGhpcy5hID09PSAxKSA/XHJcbiAgICAgICAgICAgIFwicmdiKFwiICsgTWF0aC5yb3VuZCh0aGlzLnIpICsgXCIsIFwiICsgTWF0aC5yb3VuZCh0aGlzLmcpICsgXCIsIFwiICsgTWF0aC5yb3VuZCh0aGlzLmIpICsgXCIpXCIgOlxyXG4gICAgICAgICAgICBcInJnYmEoXCIgKyBNYXRoLnJvdW5kKHRoaXMucikgKyBcIiwgXCIgKyBNYXRoLnJvdW5kKHRoaXMuZykgKyBcIiwgXCIgKyBNYXRoLnJvdW5kKHRoaXMuYikgKyBcIiwgXCIgKyB0aGlzLnJvdW5kQSArIFwiKVwiO1xyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyB0b0hleDgoYWxsb3c0Q2hhcik6IHN0cmluZyB7XHJcbiAgICAgICAgcmV0dXJuIHJnYmFUb0hleCh0aGlzLnIsIHRoaXMuZywgdGhpcy5iLCB0aGlzLmEsIGFsbG93NENoYXIpO1xyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyB0b0hleDhTdHJpbmcoYWxsb3c0Q2hhcj86IGJvb2xlYW4pOiBzdHJpbmcge1xyXG4gICAgICAgIHJldHVybiAnIycgKyB0aGlzLnRvSGV4OChhbGxvdzRDaGFyKTtcclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgdG9TdHJpbmcoZm9ybWF0OiBDb2xvcklucHV0Rm9ybWF0KTogc3RyaW5nIHtcclxuICAgICAgICBsZXQgZm9ybWF0U2V0ID0gISFmb3JtYXQ7XHJcblxyXG4gICAgICAgIGxldCBmb3JtYXR0ZWRTdHJpbmc7XHJcbiAgICAgICAgbGV0IGhhc0FscGhhID0gdGhpcy5hIDwgMSAmJiB0aGlzLmEgPj0gMDtcclxuICAgICAgICBsZXQgbmVlZHNBbHBoYUZvcm1hdCA9ICFmb3JtYXRTZXQgJiYgaGFzQWxwaGEgJiYgKGZvcm1hdCA9PT0gXCJoZXhcIiB8fCBmb3JtYXQgPT09IFwiaGV4NlwiXHJcbiAgICAgICAgICAgIHx8IGZvcm1hdCA9PT0gXCJoZXgzXCIgfHwgZm9ybWF0ID09PSBcImhleDRcIiB8fCBmb3JtYXQgPT09IFwiaGV4OFwiKTtcclxuXHJcbiAgICAgICAgaWYgKG5lZWRzQWxwaGFGb3JtYXQpIHtcclxuICAgICAgICAgICAgcmV0dXJuIHRoaXMudG9SZ2JTdHJpbmcoKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgaWYgKGZvcm1hdCA9PT0gXCJyZ2JcIikge1xyXG4gICAgICAgICAgICBmb3JtYXR0ZWRTdHJpbmcgPSB0aGlzLnRvUmdiU3RyaW5nKCk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGlmIChmb3JtYXQgPT09IFwiaGV4XCIgfHwgZm9ybWF0ID09PSBcImhleDZcIikge1xyXG4gICAgICAgICAgICBmb3JtYXR0ZWRTdHJpbmcgPSB0aGlzLnRvSGV4U3RyaW5nKCk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGlmIChmb3JtYXQgPT09IFwiaGV4M1wiKSB7XHJcbiAgICAgICAgICAgIGZvcm1hdHRlZFN0cmluZyA9IHRoaXMudG9IZXhTdHJpbmcodHJ1ZSk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGlmIChmb3JtYXQgPT09IFwiaGV4NFwiKSB7XHJcbiAgICAgICAgICAgIGZvcm1hdHRlZFN0cmluZyA9IHRoaXMudG9IZXg4U3RyaW5nKHRydWUpO1xyXG4gICAgICAgIH1cclxuICAgICAgICBpZiAoZm9ybWF0ID09PSBcImhleDhcIikge1xyXG4gICAgICAgICAgICBmb3JtYXR0ZWRTdHJpbmcgPSB0aGlzLnRvSGV4OFN0cmluZygpO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgcmV0dXJuIGZvcm1hdHRlZFN0cmluZyB8fCB0aGlzLnRvSGV4U3RyaW5nKCk7XHJcbiAgICB9XHJcblxyXG59Il19

@@ -8,2 +8,2 @@ /**

export {} from './color-input-format';
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb2xvci1waWNrZXIvc3JjL2xpYi9tb2RlbHMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBQSxzQkFBYyxlQUFlLENBQUM7QUFDOUIsZUFBYyxzQkFBc0IsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gJy4vY29sb3IubW9kZWwnO1xyXG5leHBvcnQgKiBmcm9tICcuL2NvbG9yLWlucHV0LWZvcm1hdCc7Il19
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiLi4vLi4vLi4vLi4vcHJvamVjdHMvY29sb3ItcGlja2VyL3NyYy8iLCJzb3VyY2VzIjpbImxpYi9tb2RlbHMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBQSxzQkFBYyxlQUFlLENBQUM7QUFDOUIsZUFBYyxzQkFBc0IsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gJy4vY29sb3IubW9kZWwnO1xyXG5leHBvcnQgKiBmcm9tICcuL2NvbG9yLWlucHV0LWZvcm1hdCc7Il19

@@ -49,2 +49,2 @@ /**

ColorAdapter.ctorParameters = () => [];
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29sb3ItYWRhcHRlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NvbG9yLXBpY2tlci9zcmMvbGliL3NlcnZpY2VzL2NvbG9yLWFkYXB0ZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzNDLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLFlBQVksQ0FBQztBQUNqRCxPQUFPLEVBQUUsS0FBSyxFQUFvQixNQUFNLFdBQVcsQ0FBQztBQUdwRCxNQUFNLE9BQU8sWUFBWTtJQUV2QixnQkFBZ0IsQ0FBQzs7Ozs7O0lBRWpCLFNBQVMsQ0FBQyxDQUFRLEVBQUUsQ0FBUTtRQUMxQixJQUFJLENBQUMsSUFBSSxJQUFJLElBQUksQ0FBQyxJQUFJLElBQUk7WUFBRSxPQUFPLElBQUksQ0FBQztRQUN4QyxJQUFJLENBQUMsSUFBSSxJQUFJLElBQUksQ0FBQyxJQUFJLElBQUk7WUFBRSxPQUFPLENBQUMsQ0FBQyxJQUFJLEtBQUssQ0FBQyxDQUFDLElBQUksQ0FBQztRQUNyRCxPQUFPLEtBQUssQ0FBQztJQUNmLENBQUM7Ozs7OztJQUVELE1BQU0sQ0FBQyxDQUFRLEVBQUUsTUFBd0I7UUFDdkMsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBQzVCLENBQUM7Ozs7O0lBRUQsS0FBSyxDQUFDLEtBQWE7O2NBQ1gsR0FBRyxHQUFHLG1CQUFtQixDQUFDLEtBQUssQ0FBQztRQUN0QyxJQUFJLEdBQUcsRUFBRTtZQUNQLE9BQU8sSUFBSSxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUMsRUFBRSxHQUFHLENBQUMsQ0FBQyxFQUFFLEdBQUcsQ0FBQyxDQUFDLEVBQUUsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDO1NBQzlDO1FBQ0QsT0FBTyxJQUFJLENBQUM7SUFDZCxDQUFDOzs7WUFyQkYsVUFBVSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgc3RyaW5nSW5wdXRUb09iamVjdCB9IGZyb20gJy4uL2hlbHBlcnMnO1xyXG5pbXBvcnQgeyBDb2xvciwgQ29sb3JJbnB1dEZvcm1hdCB9IGZyb20gJy4uL21vZGVscyc7XHJcblxyXG5ASW5qZWN0YWJsZSgpXHJcbmV4cG9ydCBjbGFzcyBDb2xvckFkYXB0ZXIge1xyXG5cclxuICBjb25zdHJ1Y3RvcigpIHsgfVxyXG5cclxuICBzYW1lQ29sb3IoYTogQ29sb3IsIGI6IENvbG9yKSB7XHJcbiAgICBpZiAoYSA9PSBudWxsICYmIGIgPT0gbnVsbCkgcmV0dXJuIHRydWU7XHJcbiAgICBpZiAoYSAhPSBudWxsICYmIGIgIT0gbnVsbCkgcmV0dXJuIGEucmdiYSA9PT0gYi5yZ2JhO1xyXG4gICAgcmV0dXJuIGZhbHNlO1xyXG4gIH1cclxuXHJcbiAgZm9ybWF0KGM6IENvbG9yLCBmb3JtYXQ6IENvbG9ySW5wdXRGb3JtYXQpOiBzdHJpbmcge1xyXG4gICAgcmV0dXJuIGMudG9TdHJpbmcoZm9ybWF0KTtcclxuICB9XHJcblxyXG4gIHBhcnNlKHZhbHVlOiBzdHJpbmcpOiBDb2xvciB8IG51bGwge1xyXG4gICAgY29uc3Qgb2JqID0gc3RyaW5nSW5wdXRUb09iamVjdCh2YWx1ZSk7XHJcbiAgICBpZiAob2JqKSB7XHJcbiAgICAgIHJldHVybiBuZXcgQ29sb3Iob2JqLnIsIG9iai5nLCBvYmouYiwgb2JqLmEpO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIG51bGw7XHJcbiAgfVxyXG5cclxufVxyXG4iXX0=
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29sb3ItYWRhcHRlci5qcyIsInNvdXJjZVJvb3QiOiIuLi8uLi8uLi8uLi9wcm9qZWN0cy9jb2xvci1waWNrZXIvc3JjLyIsInNvdXJjZXMiOlsibGliL3NlcnZpY2VzL2NvbG9yLWFkYXB0ZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzNDLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLFlBQVksQ0FBQztBQUNqRCxPQUFPLEVBQUUsS0FBSyxFQUFvQixNQUFNLFdBQVcsQ0FBQztBQUdwRCxNQUFNLE9BQU8sWUFBWTtJQUV2QixnQkFBZ0IsQ0FBQzs7Ozs7O0lBRWpCLFNBQVMsQ0FBQyxDQUFRLEVBQUUsQ0FBUTtRQUMxQixJQUFJLENBQUMsSUFBSSxJQUFJLElBQUksQ0FBQyxJQUFJLElBQUk7WUFBRSxPQUFPLElBQUksQ0FBQztRQUN4QyxJQUFJLENBQUMsSUFBSSxJQUFJLElBQUksQ0FBQyxJQUFJLElBQUk7WUFBRSxPQUFPLENBQUMsQ0FBQyxJQUFJLEtBQUssQ0FBQyxDQUFDLElBQUksQ0FBQztRQUNyRCxPQUFPLEtBQUssQ0FBQztJQUNmLENBQUM7Ozs7OztJQUVELE1BQU0sQ0FBQyxDQUFRLEVBQUUsTUFBd0I7UUFDdkMsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBQzVCLENBQUM7Ozs7O0lBRUQsS0FBSyxDQUFDLEtBQWE7O2NBQ1gsR0FBRyxHQUFHLG1CQUFtQixDQUFDLEtBQUssQ0FBQztRQUN0QyxJQUFJLEdBQUcsRUFBRTtZQUNQLE9BQU8sSUFBSSxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUMsRUFBRSxHQUFHLENBQUMsQ0FBQyxFQUFFLEdBQUcsQ0FBQyxDQUFDLEVBQUUsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDO1NBQzlDO1FBQ0QsT0FBTyxJQUFJLENBQUM7SUFDZCxDQUFDOzs7WUFyQkYsVUFBVSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgc3RyaW5nSW5wdXRUb09iamVjdCB9IGZyb20gJy4uL2hlbHBlcnMnO1xyXG5pbXBvcnQgeyBDb2xvciwgQ29sb3JJbnB1dEZvcm1hdCB9IGZyb20gJy4uL21vZGVscyc7XHJcblxyXG5ASW5qZWN0YWJsZSgpXHJcbmV4cG9ydCBjbGFzcyBDb2xvckFkYXB0ZXIge1xyXG5cclxuICBjb25zdHJ1Y3RvcigpIHsgfVxyXG5cclxuICBzYW1lQ29sb3IoYTogQ29sb3IsIGI6IENvbG9yKSB7XHJcbiAgICBpZiAoYSA9PSBudWxsICYmIGIgPT0gbnVsbCkgcmV0dXJuIHRydWU7XHJcbiAgICBpZiAoYSAhPSBudWxsICYmIGIgIT0gbnVsbCkgcmV0dXJuIGEucmdiYSA9PT0gYi5yZ2JhO1xyXG4gICAgcmV0dXJuIGZhbHNlO1xyXG4gIH1cclxuXHJcbiAgZm9ybWF0KGM6IENvbG9yLCBmb3JtYXQ6IENvbG9ySW5wdXRGb3JtYXQpOiBzdHJpbmcge1xyXG4gICAgcmV0dXJuIGMudG9TdHJpbmcoZm9ybWF0KTtcclxuICB9XHJcblxyXG4gIHBhcnNlKHZhbHVlOiBzdHJpbmcpOiBDb2xvciB8IG51bGwge1xyXG4gICAgY29uc3Qgb2JqID0gc3RyaW5nSW5wdXRUb09iamVjdCh2YWx1ZSk7XHJcbiAgICBpZiAob2JqKSB7XHJcbiAgICAgIHJldHVybiBuZXcgQ29sb3Iob2JqLnIsIG9iai5nLCBvYmouYiwgb2JqLmEpO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIG51bGw7XHJcbiAgfVxyXG5cclxufVxyXG4iXX0=

@@ -15,2 +15,2 @@ /**

export const MAT_COLOR_FORMATS = new InjectionToken('mat-color-formats');
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29sb3ItZm9ybWF0cy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NvbG9yLXBpY2tlci9zcmMvbGliL3NlcnZpY2VzL2NvbG9yLWZvcm1hdHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBQSxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sZUFBZSxDQUFDOztBQVMvQyxNQUFNLE9BQU8scUJBQXFCLEdBQW9CO0lBQ2xELE9BQU8sRUFBRTtRQUNMLFVBQVUsRUFBRSxLQUFLO0tBQ3BCO0NBQ0o7O0FBRUQsTUFBTSxPQUFPLGlCQUFpQixHQUFHLElBQUksY0FBYyxDQUFrQixtQkFBbUIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGlvblRva2VuIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IENvbG9ySW5wdXRGb3JtYXQgfSBmcm9tICcuLi9tb2RlbHMnO1xyXG5cclxuZXhwb3J0IHR5cGUgTWF0Q29sb3JGb3JtYXRzID0ge1xyXG4gICAgZGlzcGxheToge1xyXG4gICAgICAgIGNvbG9ySW5wdXQ6IENvbG9ySW5wdXRGb3JtYXQ7XHJcbiAgICB9XHJcbn1cclxuXHJcbmV4cG9ydCBjb25zdCBOR1hfTUFUX0NPTE9SX0ZPUk1BVFM6IE1hdENvbG9yRm9ybWF0cyA9IHtcclxuICAgIGRpc3BsYXk6IHtcclxuICAgICAgICBjb2xvcklucHV0OiAnaGV4J1xyXG4gICAgfVxyXG59XHJcblxyXG5leHBvcnQgY29uc3QgTUFUX0NPTE9SX0ZPUk1BVFMgPSBuZXcgSW5qZWN0aW9uVG9rZW48TWF0Q29sb3JGb3JtYXRzPignbWF0LWNvbG9yLWZvcm1hdHMnKTtcclxuIl19
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29sb3ItZm9ybWF0cy5qcyIsInNvdXJjZVJvb3QiOiIuLi8uLi8uLi8uLi9wcm9qZWN0cy9jb2xvci1waWNrZXIvc3JjLyIsInNvdXJjZXMiOlsibGliL3NlcnZpY2VzL2NvbG9yLWZvcm1hdHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBQSxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sZUFBZSxDQUFDOztBQVMvQyxNQUFNLE9BQU8scUJBQXFCLEdBQW9CO0lBQ2xELE9BQU8sRUFBRTtRQUNMLFVBQVUsRUFBRSxLQUFLO0tBQ3BCO0NBQ0o7O0FBRUQsTUFBTSxPQUFPLGlCQUFpQixHQUFHLElBQUksY0FBYyxDQUFrQixtQkFBbUIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGlvblRva2VuIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IENvbG9ySW5wdXRGb3JtYXQgfSBmcm9tICcuLi9tb2RlbHMnO1xyXG5cclxuZXhwb3J0IHR5cGUgTWF0Q29sb3JGb3JtYXRzID0ge1xyXG4gICAgZGlzcGxheToge1xyXG4gICAgICAgIGNvbG9ySW5wdXQ6IENvbG9ySW5wdXRGb3JtYXQ7XHJcbiAgICB9XHJcbn1cclxuXHJcbmV4cG9ydCBjb25zdCBOR1hfTUFUX0NPTE9SX0ZPUk1BVFM6IE1hdENvbG9yRm9ybWF0cyA9IHtcclxuICAgIGRpc3BsYXk6IHtcclxuICAgICAgICBjb2xvcklucHV0OiAnaGV4J1xyXG4gICAgfVxyXG59XHJcblxyXG5leHBvcnQgY29uc3QgTUFUX0NPTE9SX0ZPUk1BVFMgPSBuZXcgSW5qZWN0aW9uVG9rZW48TWF0Q29sb3JGb3JtYXRzPignbWF0LWNvbG9yLWZvcm1hdHMnKTtcclxuIl19

@@ -8,2 +8,2 @@ /**

export { NGX_MAT_COLOR_FORMATS, MAT_COLOR_FORMATS } from './color-formats';
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb2xvci1waWNrZXIvc3JjL2xpYi9zZXJ2aWNlcy9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQUFBLDZCQUFjLGlCQUFpQixDQUFDO0FBQ2hDLHlEQUFjLGlCQUFpQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSAnLi9jb2xvci1hZGFwdGVyJztcclxuZXhwb3J0ICogZnJvbSAnLi9jb2xvci1mb3JtYXRzJzsiXX0=
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiLi4vLi4vLi4vLi4vcHJvamVjdHMvY29sb3ItcGlja2VyL3NyYy8iLCJzb3VyY2VzIjpbImxpYi9zZXJ2aWNlcy9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQUFBLDZCQUFjLGlCQUFpQixDQUFDO0FBQ2hDLHlEQUFjLGlCQUFpQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSAnLi9jb2xvci1hZGFwdGVyJztcclxuZXhwb3J0ICogZnJvbSAnLi9jb2xvci1mb3JtYXRzJzsiXX0=

@@ -15,2 +15,2 @@ /**

export { ColorAdapter, NGX_MAT_COLOR_FORMATS, MAT_COLOR_FORMATS } from './lib/services';
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljLWFwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL2NvbG9yLXBpY2tlci9zcmMvcHVibGljLWFwaS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7OztBQUlBLHdDQUFjLDJCQUEyQixDQUFDO0FBQzFDLDJkQUFjLGtCQUFrQixDQUFDO0FBQ2pDLDJDQUFjLGtCQUFrQixDQUFDO0FBQ2pDLDZMQUFjLGVBQWUsQ0FBQztBQUM5QixzQkFBYyxjQUFjLENBQUM7QUFDN0IsdUVBQWMsZ0JBQWdCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKlxyXG4gKiBQdWJsaWMgQVBJIFN1cmZhY2Ugb2YgY29sb3ItcGlja2VyXHJcbiAqL1xyXG5cclxuZXhwb3J0ICogZnJvbSAnLi9saWIvY29sb3ItcGlja2VyLm1vZHVsZSc7XHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbXBvbmVudHMnO1xyXG5leHBvcnQgKiBmcm9tICcuL2xpYi9kaXJlY3RpdmVzJztcclxuZXhwb3J0ICogZnJvbSAnLi9saWIvaGVscGVycyc7XHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL21vZGVscyc7XHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL3NlcnZpY2VzJztcclxuXHJcbiJdfQ==
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljLWFwaS5qcyIsInNvdXJjZVJvb3QiOiIuLi8uLi8uLi8uLi9wcm9qZWN0cy9jb2xvci1waWNrZXIvc3JjLyIsInNvdXJjZXMiOlsicHVibGljLWFwaS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7OztBQUlBLHdDQUFjLDJCQUEyQixDQUFDO0FBQzFDLDJkQUFjLGtCQUFrQixDQUFDO0FBQ2pDLDJDQUFjLGtCQUFrQixDQUFDO0FBQ2pDLDZMQUFjLGVBQWUsQ0FBQztBQUM5QixzQkFBYyxjQUFjLENBQUM7QUFDN0IsdUVBQWMsZ0JBQWdCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKlxyXG4gKiBQdWJsaWMgQVBJIFN1cmZhY2Ugb2YgY29sb3ItcGlja2VyXHJcbiAqL1xyXG5cclxuZXhwb3J0ICogZnJvbSAnLi9saWIvY29sb3ItcGlja2VyLm1vZHVsZSc7XHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbXBvbmVudHMnO1xyXG5leHBvcnQgKiBmcm9tICcuL2xpYi9kaXJlY3RpdmVzJztcclxuZXhwb3J0ICogZnJvbSAnLi9saWIvaGVscGVycyc7XHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL21vZGVscyc7XHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL3NlcnZpY2VzJztcclxuXHJcbiJdfQ==
{
"name": "@angular-material-components/color-picker",
"version": "4.0.2",
"version": "5.0.0-beta.1",
"description": "Angular Material Color Picker",

@@ -27,8 +27,8 @@ "author": "HO Hong Quan",

"peerDependencies": {
"@angular/platform-browser": "^10.0.2",
"@angular/common": "^10.0.2",
"@angular/core": "^10.0.2",
"@angular/forms": "^10.0.2",
"@angular/material": "~10.0.1",
"@angular/cdk": "~10.0.1"
"@angular/platform-browser": "^11.0.0",
"@angular/common": "^11.0.0",
"@angular/core": "^11.0.0",
"@angular/forms": "^11.0.0",
"@angular/material": "~11.0.1",
"@angular/cdk": "~11.0.1"
},

@@ -35,0 +35,0 @@ "main": "bundles/angular-material-components-color-picker.umd.js",

Sorry, the diff of this file is too big to display

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc