UNPKG

@senx/warpview-editor

Version:

WarpView Editor Elements

64 lines 17.3 kB
/* * Copyright 2020 SenX S.A.S. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ import { GTSLib } from '../../model/gts.lib'; import { Component, Input, ViewEncapsulation } from '@angular/core'; import { JsonLib } from '../../model/jsonLib'; import * as i0 from "@angular/core"; import * as i1 from "../../model/gts.lib"; import * as i2 from "@angular/common"; export class WarpViewResult { constructor(gtsLib) { this.gtsLib = gtsLib; this.theme = 'light'; this.config = {}; this.loading = false; } get result() { return this._res; } ; set result(res) { this._res = res; this._result = new JsonLib().parse(res || '[]', undefined); this._resultStr = (this._result || []).map(l => { const lstr = JSON.stringify(l); if (lstr.startsWith('[') || lstr.startsWith('{')) { return lstr; } else { return l; } }); } isArray(arr) { return this.gtsLib.isArray(arr); } } WarpViewResult.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: WarpViewResult, deps: [{ token: i1.GTSLib }], target: i0.ɵɵFactoryTarget.Component }); WarpViewResult.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.12", type: WarpViewResult, selector: "warpview-result", inputs: { theme: "theme", config: "config", loading: "loading", result: "result" }, ngImport: i0, template: "<!--\n ~ Copyright 2020 SenX S.A.S.\n ~\n ~ Licensed under the Apache License, Version 2.0 (the \"License\");\n ~ you may not use this file except in compliance with the License.\n ~ You may obtain a copy of the License at\n ~\n ~ http://www.apache.org/licenses/LICENSE-2.0\n ~\n ~ Unless required by applicable law or agreed to in writing, software\n ~ distributed under the License is distributed on an \"AS IS\" BASIS,\n ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n ~ See the License for the specific language governing permissions and\n ~ limitations under the License.\n -->\n\n<div [class]=\"'wrapper-result ' + theme\">\n <div *ngIf=\"_result && isArray(_result)\" [class]=\"theme + ' raw'\">\n <span *ngFor=\"let line of _resultStr; let index= index; let isFirst = first;\" class=\"line\">\n <pre class=\"line-num\">{{isFirst? '[TOP]' : index + 1}}</pre>\n <pre class=\"line-content\" [innerText]=\"line\"></pre>\n </span>\n </div>\n</div>\n", styles: ["/*!\n * Copyright 2020 SenX S.A.S.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */:host,warpview-result{position:relative;overflow-y:auto}:host .wrapper-result,warpview-result .wrapper-result{width:100%}:host .loader .spinner,warpview-result .loader .spinner{border:5px solid #f3f3f3;animation:spin 1s linear infinite;border-top:5px solid #555;border-radius:50%;width:50px;height:50px;position:fixed;overflow:visible;z-index:999;margin:auto;inset:0}:host .loader:after,warpview-result .loader:after{content:\"\";display:block;position:absolute;top:0;left:0;width:100%;height:100%;background-color:#0000004d}:host .wrapper.dark,warpview-result .wrapper.dark{background-color:#1e1e1e!important;color:#fff;--warp-view-spinner-color: #f3f3f3}:host .wrapper.light,warpview-result .wrapper.light{background-color:#fff!important;color:#000}:host .wrapper .loader,warpview-result .wrapper .loader{background-color:#0000004d;position:absolute;z-index:1;inset:0}:host .wrapper .loader .spinner,warpview-result .wrapper .loader .spinner{animation:spin 1s linear infinite;border-color:var(--warp-view-spinner-color, #5899DA) transparent transparent transparent;border-style:solid;border-radius:50%;width:50px;height:50px;position:absolute;overflow:visible;z-index:999;margin:auto;top:calc(50% - 25px);left:calc(50% - 25px)}:host .raw,warpview-result .raw{font-family:Droid Sans Mono,Courier New,monospace,Droid Sans Fallback;font-weight:400;font-size:14px;line-height:19px;letter-spacing:0;display:flex;flex-flow:column}:host .raw.light,warpview-result .raw.light{background-color:#fff!important;color:#343a40}:host .raw.light pre,warpview-result .raw.light pre{color:#343a40;font-family:Droid Sans Mono,Courier New,monospace,Droid Sans Fallback;font-weight:400;font-size:14px;line-height:19px;min-height:19px;height:auto;white-space:pre-wrap;white-space:-moz-pre-wrap;white-space:-pre-wrap;white-space:-o-pre-wrap;word-wrap:break-word}:host .raw.light .line-num,warpview-result .raw.light .line-num{color:#2b91af}:host .raw.dark,warpview-result .raw.dark{background-color:#1e1e1e!important;color:#fff}:host .raw.dark pre,warpview-result .raw.dark pre{color:#fff;font-size:14px;line-height:19px;min-height:19px;height:auto;white-space:pre-wrap;white-space:-moz-pre-wrap;white-space:-pre-wrap;white-space:-o-pre-wrap;word-wrap:break-word}:host .raw.dark .line-num,warpview-result .raw.dark .line-num{color:#5a5a5a}:host .raw .line,warpview-result .raw .line{display:block;max-width:calc(100% - 4em)}:host .raw .line-num,warpview-result .raw .line-num{width:4em;float:left;text-align:right;padding:.3em .5em .3em .3em;margin:0}:host .raw .line-content,warpview-result .raw .line-content{display:block;border-left:#5a5a5a solid 1px;padding:.3em .3em .3em 1em;max-width:calc(100% - 4em);margin:0 0 0 5em}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}\n"], directives: [{ type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }] }); i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: WarpViewResult, decorators: [{ type: Component, args: [{ selector: 'warpview-result', encapsulation: ViewEncapsulation.Emulated, template: "<!--\n ~ Copyright 2020 SenX S.A.S.\n ~\n ~ Licensed under the Apache License, Version 2.0 (the \"License\");\n ~ you may not use this file except in compliance with the License.\n ~ You may obtain a copy of the License at\n ~\n ~ http://www.apache.org/licenses/LICENSE-2.0\n ~\n ~ Unless required by applicable law or agreed to in writing, software\n ~ distributed under the License is distributed on an \"AS IS\" BASIS,\n ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n ~ See the License for the specific language governing permissions and\n ~ limitations under the License.\n -->\n\n<div [class]=\"'wrapper-result ' + theme\">\n <div *ngIf=\"_result && isArray(_result)\" [class]=\"theme + ' raw'\">\n <span *ngFor=\"let line of _resultStr; let index= index; let isFirst = first;\" class=\"line\">\n <pre class=\"line-num\">{{isFirst? '[TOP]' : index + 1}}</pre>\n <pre class=\"line-content\" [innerText]=\"line\"></pre>\n </span>\n </div>\n</div>\n", styles: ["/*!\n * Copyright 2020 SenX S.A.S.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */:host,warpview-result{position:relative;overflow-y:auto}:host .wrapper-result,warpview-result .wrapper-result{width:100%}:host .loader .spinner,warpview-result .loader .spinner{border:5px solid #f3f3f3;animation:spin 1s linear infinite;border-top:5px solid #555;border-radius:50%;width:50px;height:50px;position:fixed;overflow:visible;z-index:999;margin:auto;inset:0}:host .loader:after,warpview-result .loader:after{content:\"\";display:block;position:absolute;top:0;left:0;width:100%;height:100%;background-color:#0000004d}:host .wrapper.dark,warpview-result .wrapper.dark{background-color:#1e1e1e!important;color:#fff;--warp-view-spinner-color: #f3f3f3}:host .wrapper.light,warpview-result .wrapper.light{background-color:#fff!important;color:#000}:host .wrapper .loader,warpview-result .wrapper .loader{background-color:#0000004d;position:absolute;z-index:1;inset:0}:host .wrapper .loader .spinner,warpview-result .wrapper .loader .spinner{animation:spin 1s linear infinite;border-color:var(--warp-view-spinner-color, #5899DA) transparent transparent transparent;border-style:solid;border-radius:50%;width:50px;height:50px;position:absolute;overflow:visible;z-index:999;margin:auto;top:calc(50% - 25px);left:calc(50% - 25px)}:host .raw,warpview-result .raw{font-family:Droid Sans Mono,Courier New,monospace,Droid Sans Fallback;font-weight:400;font-size:14px;line-height:19px;letter-spacing:0;display:flex;flex-flow:column}:host .raw.light,warpview-result .raw.light{background-color:#fff!important;color:#343a40}:host .raw.light pre,warpview-result .raw.light pre{color:#343a40;font-family:Droid Sans Mono,Courier New,monospace,Droid Sans Fallback;font-weight:400;font-size:14px;line-height:19px;min-height:19px;height:auto;white-space:pre-wrap;white-space:-moz-pre-wrap;white-space:-pre-wrap;white-space:-o-pre-wrap;word-wrap:break-word}:host .raw.light .line-num,warpview-result .raw.light .line-num{color:#2b91af}:host .raw.dark,warpview-result .raw.dark{background-color:#1e1e1e!important;color:#fff}:host .raw.dark pre,warpview-result .raw.dark pre{color:#fff;font-size:14px;line-height:19px;min-height:19px;height:auto;white-space:pre-wrap;white-space:-moz-pre-wrap;white-space:-pre-wrap;white-space:-o-pre-wrap;word-wrap:break-word}:host .raw.dark .line-num,warpview-result .raw.dark .line-num{color:#5a5a5a}:host .raw .line,warpview-result .raw .line{display:block;max-width:calc(100% - 4em)}:host .raw .line-num,warpview-result .raw .line-num{width:4em;float:left;text-align:right;padding:.3em .5em .3em .3em;margin:0}:host .raw .line-content,warpview-result .raw .line-content{display:block;border-left:#5a5a5a solid 1px;padding:.3em .3em .3em 1em;max-width:calc(100% - 4em);margin:0 0 0 5em}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}\n"] }] }], ctorParameters: function () { return [{ type: i1.GTSLib }]; }, propDecorators: { theme: [{ type: Input }], config: [{ type: Input }], loading: [{ type: Input }], result: [{ type: Input }] } }); //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2FycC12aWV3LXJlc3VsdC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3dhcnB2aWV3LWVkaXRvci1uZy9zcmMvbGliL2VsZW1lbnRzL3dhcnAtdmlldy1yZXN1bHQvd2FycC12aWV3LXJlc3VsdC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3dhcnB2aWV3LWVkaXRvci1uZy9zcmMvbGliL2VsZW1lbnRzL3dhcnAtdmlldy1yZXN1bHQvd2FycC12aWV3LXJlc3VsdC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7Ozs7Ozs7OztHQWNHO0FBRUgsT0FBTyxFQUFDLE1BQU0sRUFBQyxNQUFNLHFCQUFxQixDQUFDO0FBQzNDLE9BQU8sRUFBQyxTQUFTLEVBQUUsS0FBSyxFQUFFLGlCQUFpQixFQUFDLE1BQU0sZUFBZSxDQUFDO0FBQ2xFLE9BQU8sRUFBQyxPQUFPLEVBQUMsTUFBTSxxQkFBcUIsQ0FBQzs7OztBQVE1QyxNQUFNLE9BQU8sY0FBYztJQTJCekIsWUFBb0IsTUFBYztRQUFkLFdBQU0sR0FBTixNQUFNLENBQVE7UUF6QnpCLFVBQUssR0FBRyxPQUFPLENBQUM7UUFDaEIsV0FBTSxHQUFXLEVBQUUsQ0FBQztRQUNwQixZQUFPLEdBQUcsS0FBSyxDQUFDO0lBd0J6QixDQUFDO0lBbkJELElBQ0ksTUFBTTtRQUNSLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQztJQUNuQixDQUFDO0lBQUEsQ0FBQztJQUVGLElBQUksTUFBTSxDQUFDLEdBQVc7UUFDcEIsSUFBSSxDQUFDLElBQUksR0FBRyxHQUFHLENBQUM7UUFDaEIsSUFBSSxDQUFDLE9BQU8sR0FBRyxJQUFJLE9BQU8sRUFBRSxDQUFDLEtBQUssQ0FBQyxHQUFHLElBQUksSUFBSSxFQUFFLFNBQVMsQ0FBQyxDQUFDO1FBQzNELElBQUksQ0FBQyxVQUFVLEdBQUcsQ0FBQyxJQUFJLENBQUMsT0FBTyxJQUFJLEVBQUUsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRTtZQUM3QyxNQUFNLElBQUksR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDO1lBQy9CLElBQUksSUFBSSxDQUFDLFVBQVUsQ0FBQyxHQUFHLENBQUMsSUFBSSxJQUFJLENBQUMsVUFBVSxDQUFDLEdBQUcsQ0FBQyxFQUFFO2dCQUNoRCxPQUFPLElBQUksQ0FBQzthQUNiO2lCQUFNO2dCQUNMLE9BQU8sQ0FBQyxDQUFDO2FBQ1Y7UUFDSCxDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7SUFLRCxPQUFPLENBQUMsR0FBUTtRQUNkLE9BQU8sSUFBSSxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLENBQUM7SUFDbEMsQ0FBQzs7NEdBaENVLGNBQWM7Z0dBQWQsY0FBYywySUMxQjNCLG1nQ0F3QkE7NEZERWEsY0FBYztrQkFOMUIsU0FBUzsrQkFDRSxpQkFBaUIsaUJBR1osaUJBQWlCLENBQUMsUUFBUTs2RkFJaEMsS0FBSztzQkFBYixLQUFLO2dCQUNHLE1BQU07c0JBQWQsS0FBSztnQkFDRyxPQUFPO3NCQUFmLEtBQUs7Z0JBTUYsTUFBTTtzQkFEVCxLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiLypcbiAqICBDb3B5cmlnaHQgMjAyMCBTZW5YIFMuQS5TLlxuICpcbiAqICBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgXCJMaWNlbnNlXCIpO1xuICogIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS5cbiAqICBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXRcbiAqXG4gKiAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjBcbiAqXG4gKiAgVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZVxuICogIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuIFwiQVMgSVNcIiBCQVNJUyxcbiAqICBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC5cbiAqICBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kXG4gKiAgbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuXG4gKi9cblxuaW1wb3J0IHtHVFNMaWJ9IGZyb20gJy4uLy4uL21vZGVsL2d0cy5saWInO1xuaW1wb3J0IHtDb21wb25lbnQsIElucHV0LCBWaWV3RW5jYXBzdWxhdGlvbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge0pzb25MaWJ9IGZyb20gJy4uLy4uL21vZGVsL2pzb25MaWInO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICd3YXJwdmlldy1yZXN1bHQnLFxuICB0ZW1wbGF0ZVVybDogJy4vd2FycC12aWV3LXJlc3VsdC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vd2FycC12aWV3LXJlc3VsdC5zY3NzJ10sXG4gIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLkVtdWxhdGVkXG59KVxuZXhwb3J0IGNsYXNzIFdhcnBWaWV3UmVzdWx0IHtcblxuICBASW5wdXQoKSB0aGVtZSA9ICdsaWdodCc7XG4gIEBJbnB1dCgpIGNvbmZpZzogb2JqZWN0ID0ge307XG4gIEBJbnB1dCgpIGxvYWRpbmcgPSBmYWxzZTtcbiAgX3Jlczogc3RyaW5nO1xuICBfcmVzdWx0OiBhbnlbXTtcbiAgX3Jlc3VsdFN0cjogYW55W107XG5cbiAgQElucHV0KClcbiAgZ2V0IHJlc3VsdCgpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLl9yZXM7XG4gIH07XG5cbiAgc2V0IHJlc3VsdChyZXM6IHN0cmluZykge1xuICAgIHRoaXMuX3JlcyA9IHJlcztcbiAgICB0aGlzLl9yZXN1bHQgPSBuZXcgSnNvbkxpYigpLnBhcnNlKHJlcyB8fCAnW10nLCB1bmRlZmluZWQpO1xuICAgIHRoaXMuX3Jlc3VsdFN0ciA9ICh0aGlzLl9yZXN1bHQgfHwgW10pLm1hcChsID0+IHtcbiAgICAgIGNvbnN0IGxzdHIgPSBKU09OLnN0cmluZ2lmeShsKTtcbiAgICAgIGlmIChsc3RyLnN0YXJ0c1dpdGgoJ1snKSB8fCBsc3RyLnN0YXJ0c1dpdGgoJ3snKSkge1xuICAgICAgICByZXR1cm4gbHN0cjtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHJldHVybiBsO1xuICAgICAgfVxuICAgIH0pO1xuICB9XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSBndHNMaWI6IEdUU0xpYikge1xuICB9XG5cbiAgaXNBcnJheShhcnI6IGFueSkge1xuICAgIHJldHVybiB0aGlzLmd0c0xpYi5pc0FycmF5KGFycik7XG4gIH1cbn1cbiIsIjwhLS1cbiAgfiAgQ29weXJpZ2h0IDIwMjAgU2VuWCBTLkEuUy5cbiAgflxuICB+ICBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgXCJMaWNlbnNlXCIpO1xuICB+ICB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuXG4gIH4gIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdFxuICB+XG4gIH4gICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wXG4gIH5cbiAgfiAgVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZVxuICB+ICBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiBcIkFTIElTXCIgQkFTSVMsXG4gIH4gIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLlxuICB+ICBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kXG4gIH4gIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLlxuICAtLT5cblxuPGRpdiBbY2xhc3NdPVwiJ3dyYXBwZXItcmVzdWx0ICcgKyB0aGVtZVwiPlxuICA8ZGl2ICpuZ0lmPVwiX3Jlc3VsdCAmJiBpc0FycmF5KF9yZXN1bHQpXCIgW2NsYXNzXT1cInRoZW1lICsgJyByYXcnXCI+XG4gICAgPHNwYW4gKm5nRm9yPVwibGV0IGxpbmUgb2YgX3Jlc3VsdFN0cjsgbGV0IGluZGV4PSBpbmRleDsgbGV0IGlzRmlyc3QgPSBmaXJzdDtcIiBjbGFzcz1cImxpbmVcIj5cbiAgICAgIDxwcmUgY2xhc3M9XCJsaW5lLW51bVwiPnt7aXNGaXJzdD8gJ1tUT1BdJyA6IGluZGV4ICsgMX19PC9wcmU+XG4gICAgICA8cHJlIGNsYXNzPVwibGluZS1jb250ZW50XCIgW2lubmVyVGV4dF09XCJsaW5lXCI+PC9wcmU+XG4gICAgPC9zcGFuPlxuICA8L2Rpdj5cbjwvZGl2PlxuIl19