diff --git a/css/6843.ffc6df07.css b/css/1233.ffc6df07.css
similarity index 100%
rename from css/6843.ffc6df07.css
rename to css/1233.ffc6df07.css
diff --git a/css/8580.7d91bf69.css b/css/2057.f4c8ddf8.css
similarity index 61%
rename from css/8580.7d91bf69.css
rename to css/2057.f4c8ddf8.css
index b085b829..94411611 100644
--- a/css/8580.7d91bf69.css
+++ b/css/2057.f4c8ddf8.css
@@ -1 +1 @@
-.down[data-v-23c6ba20]{width:1em;padding-right:10px}.credits[data-v-23c6ba20],.name[data-v-23c6ba20],.storage[data-v-23c6ba20]{display:block}.name[data-v-23c6ba20]{max-width:250px;text-overflow:ellipsis;overflow:hidden}.credits[data-v-23c6ba20],.storage[data-v-23c6ba20]{margin-top:3px;font-size:12px;font-weight:400}.storagePercent[data-v-23c6ba20]{background-color:green;height:1em;border-radius:.3em}.storagePercent .used[data-v-23c6ba20]{background-color:maroon;width:1px;height:1em;border-radius:.3em}.secondary-text[data-v-23c6ba20]{font-size:.9em;line-height:1.8em;color:#555}.nowrap[data-v-23c6ba20]{white-space:nowrap}h4[data-v-23c6ba20]{margin:0 0 10px 0}.navButton[data-v-23c6ba20]{display:block;text-align:left}.fa-check[data-v-b21f72c4]{color:green}.fa-times[data-v-b21f72c4]{color:maroon}#FilePanel{position:relative;height:100%;width:100%}#FilePanel .toolbar{display:flex}#FilePanel .toolbar .upload{flex-grow:1}#FilePanel .toolbar .data-sync{flex-grow:0;height:100%}#FilePanel .dropZone{width:100%;height:100%;position:absolute;top:0;left:0;z-index:2;opacity:.8;background-color:#fff;display:flex;justify-content:center;align-items:center;font-size:1.5em;font-weight:700}#FilePanel .addFile{display:flex;padding-bottom:1px}#FilePanel .addFile button{margin:0}#FilePanel .path{width:50%}#FilePanel td.path{word-break:break-all}#FilePanel td.modified,#FilePanel td.size{text-align:right}#FilePanel .uploadUserFile{padding:0;flex-grow:1;border:0}#FilePanel .percent{margin:-.5em;margin-bottom:.3em;height:.3em}#FilePanel .percent.active{background-color:#eee}#FilePanel .percent .used{background-color:green;width:0;height:.3em}#FilePanel .percent .used.errored{background-color:maroon}.JobPanel .title{width:25%}.JobPanel .title .id{color:#777}.JobPanel .consumed_credits,.JobPanel .created,.JobPanel .updated{text-align:right}.CustomProcessPanel .id,.ServicePanel .title{width:25%}.ServicePanel .enabled,.ServicePanel .type{text-align:center}#userContent .data-table>.menu{padding:.5em;background-color:#fff;border-bottom:3px solid #ccc;position:sticky;top:0;box-sizing:border-box;height:2.5em;z-index:10;margin:0;white-space:nowrap}#userContent .data-table>.menu>.toolbar{flex-grow:2}#userContent .data-table>.menu>.toolbar button{white-space:nowrap}#userContent .data-table>table>thead{position:sticky;background-color:#fff;top:calc(2.5em + 2px);box-shadow:0 2px 0 #ccc;z-index:10;box-sizing:border-box}#userContent .data-table>table>thead th{padding-top:8px;border-top:0}#userContent .data-table .title{word-break:break-all}.map-viewer,.viewerContainer{height:100%}.viewerContainer .unsupported{padding:1em}.viewerContainer .tabsEmpty{height:100%;padding:1rem;margin:auto}.vue-component.model-builder .block .connector{font-size:.9em;margin:.2em 0;white-space:nowrap}.vue-component.model-builder .block .connector.noValue{color:red}.vue-component.model-builder .block .connector.editable .label,.vue-component.model-builder .block .connector.editable .value{cursor:pointer}.vue-component.model-builder .block .connector span[title]{cursor:help}.vue-component.model-builder .block .connector .input{max-width:100%;overflow:hidden;text-overflow:ellipsis}.vue-component.model-builder .block .connector .output{text-align:right}.vue-component.model-builder .block .connector .unspecified{color:red;margin-right:.3em}.vue-component.model-builder .block .connector .circle{width:.8em;height:.8em;margin:0 .2em;border:1px solid #888;background-color:#0000;display:inline-block}.vue-component.model-builder .block .connector .circle.io_active{background-color:#ffc800}.vue-component.model-builder .block .connector .circle.io_selected{background-color:#00c800!important}.vue-component.model-builder .block .connector .circle.io_issues{background-color:red}.vue-component.model-builder.editable .circle{cursor:pointer}.vue-component.model-builder .block{position:absolute;border:2px solid #ccc;margin-left:0;margin-top:0;background-color:#fafafa;opacity:.8;font-size:14px;user-select:none;-moz-user-select:none;-khtml-user-select:none;-webkit-user-select:none;-o-user-select:none;color:#000}.vue-component.model-builder .block .description{display:none;width:200px;padding:3px;border:1px solid #083776;border-radius:5px;color:#001531;background-color:#91bcf6;margin-top:15px;position:absolute;font-weight:400}.vue-component.model-builder .block .blockTitle{display:flex;padding:.3em .1em;font-weight:700;background-color:#ddd;margin-bottom:.1em;cursor:move;font-size:.9em}.vue-component.model-builder .block .blockTitle .blockId{opacity:.4;margin-left:.25em;font-weight:400}.vue-component.model-builder .block .blockTitle .namespace{font-weight:400}.vue-component.model-builder .block .blockTitle .titleText{flex-grow:1;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.vue-component.model-builder .block .blockTitle .blockicon{white-space:nowrap;text-align:center}.vue-component.model-builder .block .blockTitle .blockicon i.fas{min-width:1.4em;cursor:pointer;opacity:.5;margin-left:.1em}.vue-component.model-builder .block .blockTitle .blockicon i.fas:hover{opacity:1}.vue-component.model-builder .block .invalid{color:red;cursor:help}.vue-component.model-builder .block .inout{display:flex}.vue-component.model-builder .block .inputs{flex-grow:1;max-width:100%;overflow:hidden;text-overflow:ellipsis}.vue-component.model-builder .block .editDescription{padding:.3em .2em;box-sizing:border-box;font-size:.9em;line-height:1em;overflow:auto;border:0;border-top:1px dotted #ccc;background-color:#0000;width:100%;max-width:100%;height:3.7em;min-height:2.5em;resize:none}.vue-component.model-builder .block .editDescription:focus{outline:0}.vue-component.model-builder .block_collection{border:2px solid #6b8daf}.vue-component.model-builder .block_collection .blockTitle{background-color:#a3b7cc}.vue-component.model-builder .block_collection .field_id{display:none}.vue-component.model-builder .block_result{border:2px solid #888}.vue-component.model-builder .block_result .field_output .circle{background-color:#888;cursor:auto}.vue-component.model-builder .block_argument{border:2px solid #b28c6b}.vue-component.model-builder .block_argument .blockTitle{background-color:#ccb7a3}.vue-component.model-builder .block_selected{border:2px solid #0a0!important}.vue-component.model-builder .block_selected .blockTitle{background-color:#0c0!important}.vue-component.model-builder .block_invalid{border:2px solid red!important}.vue-component .highlight-box{box-shadow:0 0 0 .2em #c8e1ff}.vue-component code.id{color:maroon}.vue-component abbr{-webkit-text-decoration:underline dotted 1px;text-decoration:underline dotted 1px}.vue-component .unit{opacity:.6}.vue-component .status[data-value=submitted]{color:#000}.vue-component .status[data-value=running]{color:#ff8c00}.vue-component .status[data-value=queued]{color:#00008b}.vue-component .status[data-value=finished]{color:#006400}.vue-component .status[data-value=canceled]{color:#a9a9a9}.vue-component .status[data-value=error]{color:red}.vue-component.inline.process{margin-left:1em}.vue-component.inline h1{font-size:1.17em}.vue-component.inline h2{font-size:1.1em}.vue-component.inline h3{font-size:1.05em}.vue-component.inline h4,.vue-component.inline h5,.vue-component.inline h6{font-size:1em}.vue-component .comma-separated-list{display:inline;list-style:none;padding:0}.vue-component .comma-separated-list li{display:inline;padding:0}.vue-component .comma-separated-list li:after{content:", "}.vue-component .comma-separated-list li:last-child:after{content:""}.vue-component .required{color:red;font-weight:700}.vue-component.message-block{margin:1em 0;padding:.5em}.vue-component.message-block>strong{display:block;margin-bottom:.5em}.vue-component.message-block>p{margin:0}.vue-component .param-name,.vue-component .process-name{color:#369}.vue-component .param-argument,.vue-component .return-value{color:#936}.vue-component .data-type{color:#693}.vue-component .param-optional{font-weight:700}.vue-component .badges{margin:0;padding:0;list-style-type:none;display:inline-block}.vue-component .badges .badge{display:inline-block;font-size:.8em;margin:.25em;padding:.35em .5em .25em .5em;line-height:1em;text-align:center;white-space:nowrap;text-transform:uppercase;vertical-align:initial;border-radius:.5em;color:#fff;background-color:#6c757d}.vue-component .badges:not(.inline){margin-left:-.25em;margin-right:-.25em}.vue-component .badges.small .badge{padding:.25em .35em .2em .35em;font-size:.75em}.vue-component .badges.inline{margin-left:.5em;border-radius:.25em}.vue-component .badges.inline .badge{margin-top:0;margin-bottom:0}.vue-component .badges .badge a{color:#fff;border-bottom:1px dotted #fff;text-decoration:none}.vue-component .badges .badge a.badge-fill{margin:-.35em -.5em;padding:.35em .5em;display:block;border-bottom:0}.vue-component .badges.small .badge a.badge-fill{margin:-.2em -.3em;padding:.25em .35em}.vue-component .badges .badge a:hover{color:#fff;border-bottom-style:solid}.vue-component .badges .default{background-color:#555}.vue-component .badges .green{background-color:green}.vue-component .badges .red{background-color:maroon}.vue-component .badges .option1{background-color:#369}.vue-component .badges .option2{background-color:#693}.vue-component .badges .option3{background-color:#936}.vue-component .badges .option4{background-color:#963}.vue-component .badges .deprecated{background-color:red}.vue-component .badges .experimental{background-color:#8a2be2}.vue-component .badges .action{border:1px solid #000;background-color:#fff;color:#000;margin:.33em;cursor:pointer;text-transform:none}.vue-component .badges .action:hover{background-color:#000;color:#fff}.vue-component .badges .action:hover>a{color:#fff}.vue-component .badges .action>a{color:#000}.vue-component .badges .docker{background-color:#0db7ed}.vue-component .tabular{display:flex;margin:.2em 0;padding:1px}.vue-component .tabular label{flex:1;font-weight:700}.vue-component .tabular .value{flex:3}.vue-component .tabular .value td>div,.vue-component .tabular .value>.formatted>ul,.vue-component .tabular .value>ul,.vue-component .tabular ul.value{max-height:15em;overflow:auto}.vue-component .tabular .value pre{margin:0}.vue-component.stac .map{background:#0000;height:350px}.vue-component.stac .tabular{margin:.5em 0}.vue-component.stac .tabular.wrap{display:block}.vue-component.stac .tabular.wrap .value{margin-top:.5em;margin-left:1em;margin-bottom:.5em}.vue-component.stac .tabular .value ul{padding-left:20px}.assets.empty,.vue-component.stac .links:empty{display:none}.vue-component.stac .thumbnails{overflow-x:auto;overflow-y:hidden;width:100%;white-space:nowrap}.vue-component.stac .thumbnails a{margin:5px;display:inline-block}.vue-component.stac .thumbnails a img{padding:2px;max-height:200px;vertical-align:middle;border:2px solid #0000}.vue-component.stac .thumbnails a:hover img{border:2px solid #00000080}.vue-component .federation>ul>li{margin-bottom:.5em}.vue-component .federation>ul>li>small{display:block}.vue-component .federation>ul>li>h4{margin:0}.vue-component .federation .fed-header{margin:.2em 0}.vue-component .federation .fed-header>.fed-title{display:inline-block;vertical-align:bottom}.search-results h2.heading{font-size:1em;border:0;margin:0;padding:0;margin-bottom:.5em}.search-results .vue-component.searchable-list ul.list>li>summary:before{content:"";margin-left:0;float:none}.search-results .vue-component.searchable-list ul.list>li>summary{margin:0;line-height:inherit}.search-results .vue-component.searchable-list ul.list>li{margin-bottom:0}.discovery-toolbar[data-v-1c899aff]{width:100%;height:100%;display:flex;flex-direction:column;overflow:hidden}.search-results[data-v-1c899aff]{overflow-y:auto;flex-grow:1;margin:.25rem 0 0 0}.search-box[data-v-1c899aff]{margin:1rem 1rem .25rem 1rem}.show-deprecated[data-v-1c899aff]{margin:.25rem 1rem .25rem 1rem;text-align:center;font-size:.9em}.category[data-v-1c899aff]{margin:.75rem 1rem .5rem 1rem}.category strong[data-v-1c899aff]{cursor:pointer;overflow:hidden;white-space:nowrap}.discovery-entity[data-v-1c899aff]{display:flex;margin:.25em 0;border:1px solid #ddd;border-radius:3px;cursor:pointer;-webkit-user-select:none;user-select:none;font-size:.9em}.discovery-entity strong[data-v-1c899aff]{display:block;font-weight:400;white-space:nowrap;width:100%;overflow:hidden;text-overflow:ellipsis;color:#1665b6}.discovery-entity small[data-v-1c899aff]{margin-top:.25em;display:block}.discovery-entity .discovery-info[data-v-1c899aff]{flex-grow:1;padding:5px;width:100%;overflow:hidden;position:relative}.discovery-entity .discovery-info[data-v-1c899aff]:hover{background-color:#eee}.discovery-entity .discovery-info:hover strong[data-v-1c899aff]{color:#000}.discovery-entity .discovery-button[data-v-1c899aff]{display:block;margin:0;padding:5px;background-color:#fff;color:#aaa;border:0;border-left:1px solid #ddd}.discovery-entity .discovery-button[data-v-1c899aff]:hover{background-color:#eee;color:#000}.discovery-entity .custom-process[data-v-1c899aff]{position:absolute;top:7px;right:5px}.fullscreen{position:absolute!important;top:0!important;left:0!important;width:100%!important;height:100%!important;background-color:#fff;overflow:auto}.visualEditor{background-color:#fff;height:100%;display:flex;flex-direction:column}.visualEditor .vue-component.model-builder{min-height:100px;min-width:100px}.visualEditor .model-overlay{position:absolute;width:100%;height:100%;left:0;top:0;color:#555;z-index:5;padding:1em;overflow:auto;box-sizing:border-box;line-height:1.25em}.visualEditor .model-overlay>h2{font-size:1.2em;text-align:center;border-bottom:0;margin-bottom:.5em;padding:0}.visualEditor .model-overlay>p{margin:.5em 0}.visualEditor .model-overlay>p>ul{margin:.25em 0}.visualEditor .model-overlay>p:first-of-type{margin-top:0}.visualEditor .model-overlay>p:last-of-type{margin-bottom:0}.visualEditor .discoveryToolbar{width:25%;min-width:150px;border-left:1px solid #ddd}.visualEditor .editorSplitter{display:flex;flex-direction:row-reverse;flex-grow:1;height:100%;overflow:hidden}.visualEditor.fullscreen{display:flex;flex-direction:column}.visualEditor.fullscreen .discoveryToolbar{width:15%;min-width:250px}.visualEditor.fullscreen .editorSplitter{height:100%}.graphBuilder{height:100%;flex-grow:1;position:relative}.compactMode{color:green}@keyframes glowing{0%{box-shadow:0 0 3px green}50%{box-shadow:0 0 10px green}to{box-shadow:0 0 3px green}}.highlightFormula{animation:glowing 1.5s infinite}.textEditor[data-v-0ca6b553]{height:100%;display:flex;flex-direction:column;border:1px solid #ddd}.sourceCodeEditor[data-v-0ca6b553]{flex-grow:1;height:100%;overflow:hidden}.textEditor.math .cm-operator{margin:0 .2em}.textEditor.markdown .CodeMirror-wrap pre{word-break:break-word}.CodeMirror-placeholder{opacity:.5}.editor.vue-component.tabs.boxed>.tabsBody>.tabContent{overflow:hidden}.splitpanes{display:flex;width:100%;height:100%}.splitpanes--vertical{flex-direction:row}.splitpanes--horizontal{flex-direction:column}.splitpanes--dragging *{-webkit-user-select:none;user-select:none}.splitpanes__pane{width:100%;height:100%;overflow:hidden}.splitpanes--vertical .splitpanes__pane{transition:width .2s ease-out}.splitpanes--horizontal .splitpanes__pane{transition:height .2s ease-out}.splitpanes--dragging .splitpanes__pane{transition:none}.splitpanes__splitter{touch-action:none}.splitpanes--vertical>.splitpanes__splitter{min-width:1px;cursor:col-resize}.splitpanes--horizontal>.splitpanes__splitter{min-height:1px;cursor:row-resize}.splitpanes.default-theme .splitpanes__pane{background-color:#f2f2f2}.splitpanes.default-theme .splitpanes__splitter{background-color:#fff;box-sizing:border-box;position:relative;flex-shrink:0}.splitpanes.default-theme .splitpanes__splitter:after,.splitpanes.default-theme .splitpanes__splitter:before{content:"";position:absolute;top:50%;left:50%;background-color:#00000026;transition:background-color .3s}.splitpanes.default-theme .splitpanes__splitter:hover:after,.splitpanes.default-theme .splitpanes__splitter:hover:before{background-color:#00000040}.splitpanes.default-theme .splitpanes__splitter:first-child{cursor:auto}.default-theme.splitpanes .splitpanes .splitpanes__splitter{z-index:1}.default-theme .splitpanes--vertical>.splitpanes__splitter,.default-theme.splitpanes--vertical>.splitpanes__splitter{width:7px;border-left:1px solid #eee;margin-left:-1px}.default-theme .splitpanes--vertical>.splitpanes__splitter:after,.default-theme .splitpanes--vertical>.splitpanes__splitter:before,.default-theme.splitpanes--vertical>.splitpanes__splitter:after,.default-theme.splitpanes--vertical>.splitpanes__splitter:before{transform:translateY(-50%);width:1px;height:30px}.default-theme .splitpanes--vertical>.splitpanes__splitter:before,.default-theme.splitpanes--vertical>.splitpanes__splitter:before{margin-left:-2px}.default-theme .splitpanes--vertical>.splitpanes__splitter:after,.default-theme.splitpanes--vertical>.splitpanes__splitter:after{margin-left:1px}.default-theme .splitpanes--horizontal>.splitpanes__splitter,.default-theme.splitpanes--horizontal>.splitpanes__splitter{height:7px;border-top:1px solid #eee;margin-top:-1px}.default-theme .splitpanes--horizontal>.splitpanes__splitter:after,.default-theme .splitpanes--horizontal>.splitpanes__splitter:before,.default-theme.splitpanes--horizontal>.splitpanes__splitter:after,.default-theme.splitpanes--horizontal>.splitpanes__splitter:before{transform:translate(-50%);width:30px;height:1px}.default-theme .splitpanes--horizontal>.splitpanes__splitter:before,.default-theme.splitpanes--horizontal>.splitpanes__splitter:before{margin-top:-2px}.default-theme .splitpanes--horizontal>.splitpanes__splitter:after,.default-theme.splitpanes--horizontal>.splitpanes__splitter:after{margin-top:1px}.splitpanes.default-theme .splitpanes__pane{background-color:#0000}.splitpanes.default-theme .splitpanes__splitter{border:0}.splitpanes.default-theme>*{transition:none}#ide{margin-top:80px;height:calc(100% - 80px);background-color:#fff}#wrapper{height:100%}#viewer,#workspace{height:100%;min-width:200px;padding:1rem;box-sizing:border-box}#viewer.empty,#workspace.empty{min-width:0;padding:0}#workspace{min-width:400px}.appMode #workspace{min-width:0}#discovery{height:100%;overflow:auto}#user{min-height:2.5em}#editor,.authenticated #user{min-height:150px}.appMode #user{min-height:0}#editor{padding-bottom:.5rem}#editor:last-child{padding-bottom:0}#user{padding-top:.5rem}#user .login-message{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}#ide header.navbar{width:100%;background-color:#1665b6;color:#fff;height:80px;position:fixed;top:0;display:flex;justify-content:space-between;z-index:100}#ide .logo{flex-grow:1;align-content:flex-start;white-space:nowrap;overflow:hidden;justify-content:left;padding-left:1rem}#menu{list-style-type:none;margin:0 1rem;padding:0;display:flex;align-items:center}#menu li{position:relative;display:inline-block;height:80px}#menu li:hover{background-color:#fff;color:#1665b6}#menu li:hover .dropdown{display:block;border-color:#ddd;border-style:solid;border-width:0 1px 1px 1px}#menu li .menuItem{display:flex;align-items:center;cursor:pointer;padding:10px 20px;height:60px;font-size:16px;font-weight:700}#menu li .menuItem i{margin-right:5px}#menu li .dropdown{display:none;position:absolute;background-color:#fff;color:#000;min-width:200px;box-shadow:8px 8px 8px 0 #0000004d;top:80px;right:-1px}#menu li .dropdown .item{padding:10px;display:block}#menu li .dropdown .item.separator{border-bottom:1px dotted #1665b6}#menu li .dropdown hr{margin:5px 10px}#menu li .dropdown a.item:hover{background-color:#1665b6;color:#fff}.tabContent .dataTable,.tabContent table{width:100%;border-collapse:collapse;font-size:.95em}.tabContent .dataTable td,.tabContent .dataTable th,.tabContent table td,.tabContent table th{border:1px solid #ddd;padding:3px}
\ No newline at end of file
+.down[data-v-23c6ba20]{width:1em;padding-right:10px}.credits[data-v-23c6ba20],.name[data-v-23c6ba20],.storage[data-v-23c6ba20]{display:block}.name[data-v-23c6ba20]{max-width:250px;text-overflow:ellipsis;overflow:hidden}.credits[data-v-23c6ba20],.storage[data-v-23c6ba20]{margin-top:3px;font-size:12px;font-weight:400}.storagePercent[data-v-23c6ba20]{background-color:green;height:1em;border-radius:.3em}.storagePercent .used[data-v-23c6ba20]{background-color:maroon;width:1px;height:1em;border-radius:.3em}.secondary-text[data-v-23c6ba20]{font-size:.9em;line-height:1.8em;color:#555}.nowrap[data-v-23c6ba20]{white-space:nowrap}h4[data-v-23c6ba20]{margin:0 0 10px 0}.navButton[data-v-23c6ba20]{display:block;text-align:left}.fa-check[data-v-b21f72c4]{color:green}.fa-times[data-v-b21f72c4]{color:maroon}#FilePanel{position:relative;height:100%;width:100%}#FilePanel .toolbar{display:flex}#FilePanel .toolbar .upload{flex-grow:1}#FilePanel .toolbar .data-sync{flex-grow:0;height:100%}#FilePanel .dropZone{width:100%;height:100%;position:absolute;top:0;left:0;z-index:2;opacity:.8;background-color:#fff;display:flex;justify-content:center;align-items:center;font-size:1.5em;font-weight:700}#FilePanel .addFile{display:flex;padding-bottom:1px}#FilePanel .addFile button{margin:0}#FilePanel .path{width:50%}#FilePanel td.path{word-break:break-all}#FilePanel td.modified,#FilePanel td.size{text-align:right}#FilePanel .uploadUserFile{padding:0;flex-grow:1;border:0}#FilePanel .percent{margin:-.5em;margin-bottom:.3em;height:.3em}#FilePanel .percent.active{background-color:#eee}#FilePanel .percent .used{background-color:green;width:0;height:.3em}#FilePanel .percent .used.errored{background-color:maroon}.JobPanel .title{width:25%}.JobPanel .title .id{color:#777}.JobPanel .consumed_credits,.JobPanel .created,.JobPanel .updated{text-align:right}.CustomProcessPanel .id,.ServicePanel .title{width:25%}.ServicePanel .enabled,.ServicePanel .type{text-align:center}#userContent .data-table>.menu{padding:.5em;background-color:#fff;border-bottom:3px solid #ccc;position:sticky;top:0;box-sizing:border-box;height:2.5em;z-index:10;margin:0;white-space:nowrap}#userContent .data-table>.menu>.toolbar{flex-grow:2}#userContent .data-table>.menu>.toolbar button{white-space:nowrap}#userContent .data-table>table>thead{position:sticky;background-color:#fff;top:calc(2.5em + 2px);box-shadow:0 2px 0 #ccc;z-index:10;box-sizing:border-box}#userContent .data-table>table>thead th{padding-top:8px;border-top:0}#userContent .data-table .title{word-break:break-all}.map-viewer,.viewerContainer{height:100%}.viewerContainer .unsupported{padding:1em}.viewerContainer .tabsEmpty{height:100%;padding:1rem;margin:auto}.vue-component.model-builder .block .connector{font-size:.9em;margin:.2em 0;white-space:nowrap}.vue-component.model-builder .block .connector.noValue{color:red}.vue-component.model-builder .block .connector.editable .label,.vue-component.model-builder .block .connector.editable .value{cursor:pointer}.vue-component.model-builder .block .connector span[title]{cursor:help}.vue-component.model-builder .block .connector .input{max-width:100%;overflow:hidden;text-overflow:ellipsis}.vue-component.model-builder .block .connector .output{text-align:right}.vue-component.model-builder .block .connector .unspecified{color:red;margin-right:.3em}.vue-component.model-builder .block .connector .circle{width:.8em;height:.8em;margin:0 .2em;border:1px solid #888;background-color:#0000;display:inline-block}.vue-component.model-builder .block .connector .circle.io_active{background-color:#ffc800}.vue-component.model-builder .block .connector .circle.io_selected{background-color:#00c800!important}.vue-component.model-builder .block .connector .circle.io_issues{background-color:red}.vue-component.model-builder.editable .circle{cursor:pointer}.vue-component.model-builder .block{position:absolute;border:2px solid #ccc;margin-left:0;margin-top:0;background-color:#fafafa;opacity:.8;font-size:14px;user-select:none;-moz-user-select:none;-khtml-user-select:none;-webkit-user-select:none;-o-user-select:none;color:#000}.vue-component.model-builder .block .description{display:none;width:200px;padding:3px;border:1px solid #083776;border-radius:5px;color:#001531;background-color:#91bcf6;margin-top:15px;position:absolute;font-weight:400}.vue-component.model-builder .block .blockTitle{display:flex;padding:.3em .1em;font-weight:700;background-color:#ddd;margin-bottom:.1em;cursor:move;font-size:.9em}.vue-component.model-builder .block .blockTitle .blockId{opacity:.4;margin-left:.25em;font-weight:400}.vue-component.model-builder .block .blockTitle .namespace{font-weight:400}.vue-component.model-builder .block .blockTitle .titleText{flex-grow:1;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.vue-component.model-builder .block .blockTitle .blockicon{white-space:nowrap;text-align:center}.vue-component.model-builder .block .blockTitle .blockicon i.fas{min-width:1.4em;cursor:pointer;opacity:.5;margin-left:.1em}.vue-component.model-builder .block .blockTitle .blockicon i.fas:hover{opacity:1}.vue-component.model-builder .block .invalid{color:red;cursor:help}.vue-component.model-builder .block .inout{display:flex}.vue-component.model-builder .block .inputs{flex-grow:1;max-width:100%;overflow:hidden;text-overflow:ellipsis}.vue-component.model-builder .block .editDescription{padding:.3em .2em;box-sizing:border-box;font-size:.9em;line-height:1em;overflow:auto;border:0;border-top:1px dotted #ccc;background-color:#0000;width:100%;max-width:100%;height:3.7em;min-height:2.5em;resize:none}.vue-component.model-builder .block .editDescription:focus{outline:0}.vue-component.model-builder .block_collection{border:2px solid #6b8daf}.vue-component.model-builder .block_collection .blockTitle{background-color:#a3b7cc}.vue-component.model-builder .block_collection .field_id{display:none}.vue-component.model-builder .block_result{border:2px solid #888}.vue-component.model-builder .block_result .field_output .circle{background-color:#888;cursor:auto}.vue-component.model-builder .block_argument{border:2px solid #b28c6b}.vue-component.model-builder .block_argument .blockTitle{background-color:#ccb7a3}.vue-component.model-builder .block_selected{border:2px solid #0a0!important}.vue-component.model-builder .block_selected .blockTitle{background-color:#0c0!important}.vue-component.model-builder .block_invalid{border:2px solid red!important}.vue-component.model-builder{width:100%;height:100%;position:relative}.vue-component.model-builder.editable.focus .blocks{border-color:#1666b64d}.vue-component.model-builder .blocks:focus,.vue-component.model-builder .canvas:focus,.vue-component.model-builder:focus{outline:0}.vue-component.model-builder .canvas{width:100%;height:100%;position:absolute;z-index:1}.vue-component.model-builder .blocks{box-sizing:border-box;border:1px solid #0000;overflow:hidden;position:absolute;z-index:3;width:100%;height:100%}.vue-component.model-builder.compact .blockId,.vue-component.model-builder.compact .blockicon .addDescription,.vue-component.model-builder.compact .blockicon .delete,.vue-component.model-builder.compact .blockicon .info,.vue-component.model-builder.compact .editDescription,.vue-component.model-builder.scale_s .blockicon,.vue-component.model-builder.scale_xs .blockicon,.vue-component.model-builder.scale_xs .connector .text{display:none}.vue-component.model-builder .zoomInfo{position:absolute;top:0;right:0;display:inline-block;padding:.3em;background-color:#f9f9f9;color:#000;border-radius:0 0 0 .3em;z-index:5}.vue-component.model-builder.scale_xs .editDescription{visibility:hidden}.vue-component.search-box{margin:0 1px 1em 0;display:flex;align-items:stretch}.vue-component.search-box .icon,.vue-component.search-box input{font-size:1em;margin:0}.vue-component.search-box input{flex-grow:1;padding:.3em;padding-left:1.9em;z-index:1;border:1px solid #ccc;box-sizing:initial;background-color:#fff;box-sizing:border-box;width:100%;margin-left:-1.3em}.vue-component.search-box .icon{display:flex;align-items:center;-webkit-user-select:none;user-select:none;margin-left:.3em;width:1em;z-index:2}.vue-component.search-box.compact{font-size:.9em;margin-bottom:0}.vue-component.search-box.compact input{padding-top:0;padding-bottom:0}.vue-component.search-box.compact .icon{margin-top:.1em;margin-left:.3em}.vue-component .highlight-box{box-shadow:0 0 0 .2em #c8e1ff}.vue-component code.id{color:maroon}.vue-component abbr{-webkit-text-decoration:underline dotted 1px;text-decoration:underline dotted 1px}.vue-component .unit{opacity:.6}.vue-component .status[data-value=submitted]{color:#000}.vue-component .status[data-value=running]{color:#ff8c00}.vue-component .status[data-value=queued]{color:#00008b}.vue-component .status[data-value=finished]{color:#006400}.vue-component .status[data-value=canceled]{color:#a9a9a9}.vue-component .status[data-value=error]{color:red}.vue-component.inline.process{margin-left:1em}.vue-component.inline h1{font-size:1.17em}.vue-component.inline h2{font-size:1.1em}.vue-component.inline h3{font-size:1.05em}.vue-component.inline h4,.vue-component.inline h5,.vue-component.inline h6{font-size:1em}.vue-component .comma-separated-list{display:inline;list-style:none;padding:0}.vue-component .comma-separated-list li{display:inline;padding:0}.vue-component .comma-separated-list li:after{content:", "}.vue-component .comma-separated-list li:last-child:after{content:""}.vue-component .required{color:red;font-weight:700}.vue-component.message-block{margin:1em 0;padding:.5em}.vue-component.message-block>strong{display:block;margin-bottom:.5em}.vue-component.message-block>p{margin:0}.vue-component .param-name,.vue-component .process-name{color:#369}.vue-component .param-argument,.vue-component .return-value{color:#936}.vue-component .data-type{color:#693}.vue-component .param-optional{font-weight:700}.vue-component .badges{margin:0;padding:0;list-style-type:none;display:inline-block}.vue-component .badges .badge{display:inline-block;font-size:.8em;margin:.25em;padding:.35em .5em .25em .5em;line-height:1em;text-align:center;white-space:nowrap;text-transform:uppercase;vertical-align:initial;border-radius:.5em;color:#fff;background-color:#6c757d}.vue-component .badges:not(.inline){margin-left:-.25em;margin-right:-.25em}.vue-component .badges.small .badge{padding:.25em .35em .2em .35em;font-size:.75em}.vue-component .badges.inline{margin-left:.5em;border-radius:.25em}.vue-component .badges.inline .badge{margin-top:0;margin-bottom:0}.vue-component .badges .badge a{color:#fff;border-bottom:1px dotted #fff;text-decoration:none}.vue-component .badges .badge a.badge-fill{margin:-.35em -.5em;padding:.35em .5em;display:block;border-bottom:0}.vue-component .badges.small .badge a.badge-fill{margin:-.2em -.3em;padding:.25em .35em}.vue-component .badges .badge a:hover{color:#fff;border-bottom-style:solid}.vue-component .badges .default{background-color:#555}.vue-component .badges .green{background-color:green}.vue-component .badges .red{background-color:maroon}.vue-component .badges .option1{background-color:#369}.vue-component .badges .option2{background-color:#693}.vue-component .badges .option3{background-color:#936}.vue-component .badges .option4{background-color:#963}.vue-component .badges .deprecated{background-color:red}.vue-component .badges .experimental{background-color:#8a2be2}.vue-component .badges .action{border:1px solid #000;background-color:#fff;color:#000;margin:.33em;cursor:pointer;text-transform:none}.vue-component .badges .action:hover{background-color:#000;color:#fff}.vue-component .badges .action:hover>a{color:#fff}.vue-component .badges .action>a{color:#000}.vue-component .badges .docker{background-color:#0db7ed}.vue-component .tabular{display:flex;margin:.2em 0;padding:1px}.vue-component .tabular label{flex:1;font-weight:700}.vue-component .tabular .value{flex:3}.vue-component .tabular .value td>div,.vue-component .tabular .value>.formatted>ul,.vue-component .tabular .value>ul,.vue-component .tabular ul.value{max-height:15em;overflow:auto}.vue-component .tabular .value pre{margin:0}.vue-component.stac .map{background:#0000;height:350px}.vue-component.stac .tabular{margin:.5em 0}.vue-component.stac .tabular.wrap{display:block}.vue-component.stac .tabular.wrap .value{margin-top:.5em;margin-left:1em;margin-bottom:.5em}.vue-component.stac .tabular .value ul{padding-left:20px}.assets.empty,.vue-component.stac .links:empty{display:none}.vue-component.stac .thumbnails{overflow-x:auto;overflow-y:hidden;width:100%;white-space:nowrap}.vue-component.stac .thumbnails a{margin:5px;display:inline-block}.vue-component.stac .thumbnails a img{padding:2px;max-height:200px;vertical-align:middle;border:2px solid #0000}.vue-component.stac .thumbnails a:hover img{border:2px solid #00000080}.vue-component .federation>ul>li{margin-bottom:.5em}.vue-component .federation>ul>li>small{display:block}.vue-component .federation>ul>li>h4{margin:0}.vue-component .federation .fed-header{margin:.2em 0}.vue-component .federation .fed-header>.fed-title{display:inline-block;vertical-align:bottom}.search-results h2.heading{font-size:1em;border:0;margin:0;padding:0;margin-bottom:.5em}.search-results .vue-component.searchable-list ul.list>li>summary:before{content:"";margin-left:0;float:none}.search-results .vue-component.searchable-list ul.list>li>summary{margin:0;line-height:inherit}.search-results .vue-component.searchable-list ul.list>li{margin-bottom:0}.discovery-toolbar[data-v-281f64a6]{width:100%;height:100%;display:flex;flex-direction:column;overflow:hidden}.search-results[data-v-281f64a6]{overflow-y:auto;flex-grow:1;margin:.25rem 0 0 0}.search-box[data-v-281f64a6]{margin:1rem 1rem .25rem 1rem}.filters[data-v-281f64a6]{display:flex;justify-content:center;flex-flow:row wrap}.filters .label[data-v-281f64a6],.filters .show-deprecated[data-v-281f64a6],.filters .show-experimental[data-v-281f64a6]{align-content:center;display:inline-block;white-space:nowrap;margin:.25rem;font-size:.9em;cursor:pointer}.filters .label[data-v-281f64a6]{cursor:default}.category[data-v-281f64a6]{margin:.75rem 1rem .5rem 1rem}.category strong[data-v-281f64a6]{cursor:pointer;overflow:hidden;white-space:nowrap}.discovery-entity[data-v-281f64a6]{display:flex;margin:.25em 0;border:1px solid #ddd;border-radius:3px;cursor:pointer;-webkit-user-select:none;user-select:none;font-size:.9em}.discovery-entity strong[data-v-281f64a6]{display:block;font-weight:400;white-space:nowrap;width:100%;overflow:hidden;text-overflow:ellipsis;color:#1665b6}.discovery-entity small[data-v-281f64a6]{margin-top:.25em;display:block}.discovery-entity .discovery-info[data-v-281f64a6]{flex-grow:1;padding:5px;width:100%;overflow:hidden;position:relative}.discovery-entity .discovery-info[data-v-281f64a6]:hover{background-color:#eee}.discovery-entity .discovery-info:hover strong[data-v-281f64a6]{color:#000}.discovery-entity .discovery-button[data-v-281f64a6]{display:block;margin:0;padding:5px;background-color:#fff;color:#aaa;border:0;border-left:1px solid #ddd}.discovery-entity .discovery-button[data-v-281f64a6]:hover{background-color:#eee;color:#000}.discovery-entity .custom-process[data-v-281f64a6]{position:absolute;top:7px;right:5px}.fullscreen{position:absolute!important;top:0!important;left:0!important;width:100%!important;height:100%!important;background-color:#fff;overflow:auto}.visualEditor{background-color:#fff;height:100%;display:flex;flex-direction:column}.visualEditor .vue-component.model-builder{min-height:100px;min-width:100px}.visualEditor .model-overlay{position:absolute;width:100%;height:100%;left:0;top:0;color:#555;z-index:5;padding:1em;overflow:auto;box-sizing:border-box;line-height:1.25em}.visualEditor .model-overlay>h2{font-size:1.2em;text-align:center;border-bottom:0;margin-bottom:.5em;padding:0}.visualEditor .model-overlay>p{margin:.5em 0}.visualEditor .model-overlay>p>ul{margin:.25em 0}.visualEditor .model-overlay>p:first-of-type{margin-top:0}.visualEditor .model-overlay>p:last-of-type{margin-bottom:0}.visualEditor .discoveryToolbar{width:25%;min-width:150px;border-left:1px solid #ddd}.visualEditor .editorSplitter{display:flex;flex-direction:row-reverse;flex-grow:1;height:100%;overflow:hidden}.visualEditor.fullscreen{display:flex;flex-direction:column}.visualEditor.fullscreen .discoveryToolbar{width:15%;min-width:250px}.visualEditor.fullscreen .editorSplitter{height:100%}.graphBuilder{height:100%;flex-grow:1;position:relative}.compactMode{color:green}@keyframes glowing{0%{box-shadow:0 0 3px green}50%{box-shadow:0 0 10px green}to{box-shadow:0 0 3px green}}.highlightFormula{animation:glowing 1.5s infinite}.textEditor[data-v-0ca6b553]{height:100%;display:flex;flex-direction:column;border:1px solid #ddd}.sourceCodeEditor[data-v-0ca6b553]{flex-grow:1;height:100%;overflow:hidden}.textEditor.math .cm-operator{margin:0 .2em}.textEditor.markdown .CodeMirror-wrap pre{word-break:break-word}.CodeMirror-placeholder{opacity:.5}.editor.vue-component.tabs.boxed>.tabsBody>.tabContent{overflow:hidden}.splitpanes{display:flex;width:100%;height:100%}.splitpanes--vertical{flex-direction:row}.splitpanes--horizontal{flex-direction:column}.splitpanes--dragging *{-webkit-user-select:none;user-select:none}.splitpanes__pane{width:100%;height:100%;overflow:hidden}.splitpanes--vertical .splitpanes__pane{transition:width .2s ease-out}.splitpanes--horizontal .splitpanes__pane{transition:height .2s ease-out}.splitpanes--dragging .splitpanes__pane{transition:none}.splitpanes__splitter{touch-action:none}.splitpanes--vertical>.splitpanes__splitter{min-width:1px;cursor:col-resize}.splitpanes--horizontal>.splitpanes__splitter{min-height:1px;cursor:row-resize}.splitpanes.default-theme .splitpanes__pane{background-color:#f2f2f2}.splitpanes.default-theme .splitpanes__splitter{background-color:#fff;box-sizing:border-box;position:relative;flex-shrink:0}.splitpanes.default-theme .splitpanes__splitter:after,.splitpanes.default-theme .splitpanes__splitter:before{content:"";position:absolute;top:50%;left:50%;background-color:#00000026;transition:background-color .3s}.splitpanes.default-theme .splitpanes__splitter:hover:after,.splitpanes.default-theme .splitpanes__splitter:hover:before{background-color:#00000040}.splitpanes.default-theme .splitpanes__splitter:first-child{cursor:auto}.default-theme.splitpanes .splitpanes .splitpanes__splitter{z-index:1}.default-theme .splitpanes--vertical>.splitpanes__splitter,.default-theme.splitpanes--vertical>.splitpanes__splitter{width:7px;border-left:1px solid #eee;margin-left:-1px}.default-theme .splitpanes--vertical>.splitpanes__splitter:after,.default-theme .splitpanes--vertical>.splitpanes__splitter:before,.default-theme.splitpanes--vertical>.splitpanes__splitter:after,.default-theme.splitpanes--vertical>.splitpanes__splitter:before{transform:translateY(-50%);width:1px;height:30px}.default-theme .splitpanes--vertical>.splitpanes__splitter:before,.default-theme.splitpanes--vertical>.splitpanes__splitter:before{margin-left:-2px}.default-theme .splitpanes--vertical>.splitpanes__splitter:after,.default-theme.splitpanes--vertical>.splitpanes__splitter:after{margin-left:1px}.default-theme .splitpanes--horizontal>.splitpanes__splitter,.default-theme.splitpanes--horizontal>.splitpanes__splitter{height:7px;border-top:1px solid #eee;margin-top:-1px}.default-theme .splitpanes--horizontal>.splitpanes__splitter:after,.default-theme .splitpanes--horizontal>.splitpanes__splitter:before,.default-theme.splitpanes--horizontal>.splitpanes__splitter:after,.default-theme.splitpanes--horizontal>.splitpanes__splitter:before{transform:translate(-50%);width:30px;height:1px}.default-theme .splitpanes--horizontal>.splitpanes__splitter:before,.default-theme.splitpanes--horizontal>.splitpanes__splitter:before{margin-top:-2px}.default-theme .splitpanes--horizontal>.splitpanes__splitter:after,.default-theme.splitpanes--horizontal>.splitpanes__splitter:after{margin-top:1px}.splitpanes.default-theme .splitpanes__pane{background-color:#0000}.splitpanes.default-theme .splitpanes__splitter{border:0}.splitpanes.default-theme>*{transition:none}#ide{margin-top:80px;height:calc(100% - 80px);background-color:#fff}#wrapper{height:100%}#viewer,#workspace{height:100%;min-width:200px;padding:1rem;box-sizing:border-box}#viewer.empty,#workspace.empty{min-width:0;padding:0}#workspace{min-width:400px}.appMode #workspace{min-width:0}#discovery{height:100%;overflow:auto}#user{min-height:2.5em}#editor,.authenticated #user{min-height:150px}.appMode #user{min-height:0}#editor{padding-bottom:.5rem}#editor:last-child{padding-bottom:0}#user{padding-top:.5rem}#user .login-message{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}#ide header.navbar{width:100%;background-color:#1665b6;color:#fff;height:80px;position:fixed;top:0;display:flex;justify-content:space-between;z-index:100}#ide .logo{flex-grow:1;align-content:flex-start;white-space:nowrap;overflow:hidden;justify-content:left;padding-left:1rem}#menu{list-style-type:none;margin:0 1rem;padding:0;display:flex;align-items:center}#menu li{position:relative;display:inline-block;height:80px}#menu li:hover{background-color:#fff;color:#1665b6}#menu li:hover .dropdown{display:block;border-color:#ddd;border-style:solid;border-width:0 1px 1px 1px}#menu li .menuItem{display:flex;align-items:center;cursor:pointer;padding:10px 20px;height:60px;font-size:16px;font-weight:700}#menu li .menuItem i{margin-right:5px}#menu li .dropdown{display:none;position:absolute;background-color:#fff;color:#000;min-width:200px;box-shadow:8px 8px 8px 0 #0000004d;top:80px;right:-1px}#menu li .dropdown .item{padding:10px;display:block}#menu li .dropdown .item.separator{border-bottom:1px dotted #1665b6}#menu li .dropdown hr{margin:5px 10px}#menu li .dropdown a.item:hover{background-color:#1665b6;color:#fff}.tabContent .dataTable,.tabContent table{width:100%;border-collapse:collapse;font-size:.95em}.tabContent .dataTable td,.tabContent .dataTable th,.tabContent table td,.tabContent table th{border:1px solid #ddd;padding:3px}
\ No newline at end of file
diff --git a/css/2877.ed8613ac.css b/css/2877.8955db24.css
similarity index 77%
rename from css/2877.ed8613ac.css
rename to css/2877.8955db24.css
index afa89615..e4ed6b4e 100644
--- a/css/2877.ed8613ac.css
+++ b/css/2877.8955db24.css
@@ -1 +1 @@
-.vue-component.model-builder .block .connector{font-size:.9em;margin:.2em 0;white-space:nowrap}.vue-component.model-builder .block .connector.noValue{color:red}.vue-component.model-builder .block .connector.editable .label,.vue-component.model-builder .block .connector.editable .value{cursor:pointer}.vue-component.model-builder .block .connector span[title]{cursor:help}.vue-component.model-builder .block .connector .input{max-width:100%;overflow:hidden;text-overflow:ellipsis}.vue-component.model-builder .block .connector .output{text-align:right}.vue-component.model-builder .block .connector .unspecified{color:red;margin-right:.3em}.vue-component.model-builder .block .connector .circle{width:.8em;height:.8em;margin:0 .2em;border:1px solid #888;background-color:#0000;display:inline-block}.vue-component.model-builder .block .connector .circle.io_active{background-color:#ffc800}.vue-component.model-builder .block .connector .circle.io_selected{background-color:#00c800!important}.vue-component.model-builder .block .connector .circle.io_issues{background-color:red}.vue-component.model-builder.editable .circle{cursor:pointer}.vue-component.model-builder .block{position:absolute;border:2px solid #ccc;margin-left:0;margin-top:0;background-color:#fafafa;opacity:.8;font-size:14px;user-select:none;-moz-user-select:none;-khtml-user-select:none;-webkit-user-select:none;-o-user-select:none;color:#000}.vue-component.model-builder .block .description{display:none;width:200px;padding:3px;border:1px solid #083776;border-radius:5px;color:#001531;background-color:#91bcf6;margin-top:15px;position:absolute;font-weight:400}.vue-component.model-builder .block .blockTitle{display:flex;padding:.3em .1em;font-weight:700;background-color:#ddd;margin-bottom:.1em;cursor:move;font-size:.9em}.vue-component.model-builder .block .blockTitle .blockId{opacity:.4;margin-left:.25em;font-weight:400}.vue-component.model-builder .block .blockTitle .namespace{font-weight:400}.vue-component.model-builder .block .blockTitle .titleText{flex-grow:1;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.vue-component.model-builder .block .blockTitle .blockicon{white-space:nowrap;text-align:center}.vue-component.model-builder .block .blockTitle .blockicon i.fas{min-width:1.4em;cursor:pointer;opacity:.5;margin-left:.1em}.vue-component.model-builder .block .blockTitle .blockicon i.fas:hover{opacity:1}.vue-component.model-builder .block .invalid{color:red;cursor:help}.vue-component.model-builder .block .inout{display:flex}.vue-component.model-builder .block .inputs{flex-grow:1;max-width:100%;overflow:hidden;text-overflow:ellipsis}.vue-component.model-builder .block .editDescription{padding:.3em .2em;box-sizing:border-box;font-size:.9em;line-height:1em;overflow:auto;border:0;border-top:1px dotted #ccc;background-color:#0000;width:100%;max-width:100%;height:3.7em;min-height:2.5em;resize:none}.vue-component.model-builder .block .editDescription:focus{outline:0}.vue-component.model-builder .block_collection{border:2px solid #6b8daf}.vue-component.model-builder .block_collection .blockTitle{background-color:#a3b7cc}.vue-component.model-builder .block_collection .field_id{display:none}.vue-component.model-builder .block_result{border:2px solid #888}.vue-component.model-builder .block_result .field_output .circle{background-color:#888;cursor:auto}.vue-component.model-builder .block_argument{border:2px solid #b28c6b}.vue-component.model-builder .block_argument .blockTitle{background-color:#ccb7a3}.vue-component.model-builder .block_selected{border:2px solid #0a0!important}.vue-component.model-builder .block_selected .blockTitle{background-color:#0c0!important}.vue-component.model-builder .block_invalid{border:2px solid red!important}.vue-component.model-builder{width:100%;height:100%;position:relative}.vue-component.model-builder.editable.focus .blocks{border-color:#1666b64d}.vue-component.model-builder .blocks:focus,.vue-component.model-builder .canvas:focus,.vue-component.model-builder:focus{outline:0}.vue-component.model-builder .canvas{width:100%;height:100%;position:absolute;z-index:1}.vue-component.model-builder .blocks{box-sizing:border-box;border:1px solid #0000;overflow:hidden;position:absolute;z-index:3;width:100%;height:100%}.vue-component.model-builder.compact .blockId,.vue-component.model-builder.compact .blockicon .addDescription,.vue-component.model-builder.compact .blockicon .delete,.vue-component.model-builder.compact .blockicon .info,.vue-component.model-builder.compact .editDescription,.vue-component.model-builder.scale_s .blockicon,.vue-component.model-builder.scale_xs .blockicon,.vue-component.model-builder.scale_xs .connector .text{display:none}.vue-component.model-builder .zoomInfo{position:absolute;top:0;right:0;display:inline-block;padding:.3em;background-color:#f9f9f9;color:#000;border-radius:0 0 0 .3em;z-index:5}.vue-component.model-builder.scale_xs .editDescription{visibility:hidden}.vue-component.search-box{margin:0 1px 1em 0;display:flex;align-items:stretch}.vue-component.search-box .icon,.vue-component.search-box input{font-size:1em;margin:0}.vue-component.search-box input{flex-grow:1;padding:.3em;padding-left:1.9em;z-index:1;border:1px solid #ccc;box-sizing:initial;background-color:#fff;box-sizing:border-box;width:100%;margin-left:-1.3em}.vue-component.search-box .icon{display:flex;align-items:center;-webkit-user-select:none;user-select:none;margin-left:.3em;width:1em;z-index:2}.vue-component.search-box.compact{font-size:.9em;margin-bottom:0}.vue-component.search-box.compact input{padding-top:0;padding-bottom:0}.vue-component.search-box.compact .icon{margin-top:.1em;margin-left:.3em}.vue-component .highlight-box{box-shadow:0 0 0 .2em #c8e1ff}.vue-component code.id{color:maroon}.vue-component abbr{-webkit-text-decoration:underline dotted 1px;text-decoration:underline dotted 1px}.vue-component .unit{opacity:.6}.vue-component .status[data-value=submitted]{color:#000}.vue-component .status[data-value=running]{color:#ff8c00}.vue-component .status[data-value=queued]{color:#00008b}.vue-component .status[data-value=finished]{color:#006400}.vue-component .status[data-value=canceled]{color:#a9a9a9}.vue-component .status[data-value=error]{color:red}.vue-component.inline.process{margin-left:1em}.vue-component.inline h1{font-size:1.17em}.vue-component.inline h2{font-size:1.1em}.vue-component.inline h3{font-size:1.05em}.vue-component.inline h4,.vue-component.inline h5,.vue-component.inline h6{font-size:1em}.vue-component .comma-separated-list{display:inline;list-style:none;padding:0}.vue-component .comma-separated-list li{display:inline;padding:0}.vue-component .comma-separated-list li:after{content:", "}.vue-component .comma-separated-list li:last-child:after{content:""}.vue-component .required{color:red;font-weight:700}.vue-component.message-block{margin:1em 0;padding:.5em}.vue-component.message-block>strong{display:block;margin-bottom:.5em}.vue-component.message-block>p{margin:0}.vue-component .param-name,.vue-component .process-name{color:#369}.vue-component .param-argument,.vue-component .return-value{color:#936}.vue-component .data-type{color:#693}.vue-component .param-optional{font-weight:700}.vue-component .badges{margin:0;padding:0;list-style-type:none;display:inline-block}.vue-component .badges .badge{display:inline-block;font-size:.8em;margin:.25em;padding:.35em .5em .25em .5em;line-height:1em;text-align:center;white-space:nowrap;text-transform:uppercase;vertical-align:initial;border-radius:.5em;color:#fff;background-color:#6c757d}.vue-component .badges:not(.inline){margin-left:-.25em;margin-right:-.25em}.vue-component .badges.small .badge{padding:.25em .35em .2em .35em;font-size:.75em}.vue-component .badges.inline{margin-left:.5em;border-radius:.25em}.vue-component .badges.inline .badge{margin-top:0;margin-bottom:0}.vue-component .badges .badge a{color:#fff;border-bottom:1px dotted #fff;text-decoration:none}.vue-component .badges .badge a.badge-fill{margin:-.35em -.5em;padding:.35em .5em;display:block;border-bottom:0}.vue-component .badges.small .badge a.badge-fill{margin:-.2em -.3em;padding:.25em .35em}.vue-component .badges .badge a:hover{color:#fff;border-bottom-style:solid}.vue-component .badges .default{background-color:#555}.vue-component .badges .green{background-color:green}.vue-component .badges .red{background-color:maroon}.vue-component .badges .option1{background-color:#369}.vue-component .badges .option2{background-color:#693}.vue-component .badges .option3{background-color:#936}.vue-component .badges .option4{background-color:#963}.vue-component .badges .deprecated{background-color:red}.vue-component .badges .experimental{background-color:#8a2be2}.vue-component .badges .action{border:1px solid #000;background-color:#fff;color:#000;margin:.33em;cursor:pointer;text-transform:none}.vue-component .badges .action:hover{background-color:#000;color:#fff}.vue-component .badges .action:hover>a{color:#fff}.vue-component .badges .action>a{color:#000}.vue-component .badges .docker{background-color:#0db7ed}.vue-component .tabular{display:flex;margin:.2em 0;padding:1px}.vue-component .tabular label{flex:1;font-weight:700}.vue-component .tabular .value{flex:3}.vue-component .tabular .value td>div,.vue-component .tabular .value>.formatted>ul,.vue-component .tabular .value>ul,.vue-component .tabular ul.value{max-height:15em;overflow:auto}.vue-component .tabular .value pre{margin:0}.vue-component.stac .map{background:#0000;height:350px}.vue-component.stac .tabular{margin:.5em 0}.vue-component.stac .tabular.wrap{display:block}.vue-component.stac .tabular.wrap .value{margin-top:.5em;margin-left:1em;margin-bottom:.5em}.vue-component.stac .tabular .value ul{padding-left:20px}.assets.empty,.vue-component.stac .links:empty{display:none}.vue-component.stac .thumbnails{overflow-x:auto;overflow-y:hidden;width:100%;white-space:nowrap}.vue-component.stac .thumbnails a{margin:5px;display:inline-block}.vue-component.stac .thumbnails a img{padding:2px;max-height:200px;vertical-align:middle;border:2px solid #0000}.vue-component.stac .thumbnails a:hover img{border:2px solid #00000080}.vue-component .federation>ul>li{margin-bottom:.5em}.vue-component .federation>ul>li>small{display:block}.vue-component .federation>ul>li>h4{margin:0}.vue-component .federation .fed-header{margin:.2em 0}.vue-component .federation .fed-header>.fed-title{display:inline-block;vertical-align:bottom}.search-results h2.heading{font-size:1em;border:0;margin:0;padding:0;margin-bottom:.5em}.search-results .vue-component.searchable-list ul.list>li>summary:before{content:"";margin-left:0;float:none}.search-results .vue-component.searchable-list ul.list>li>summary{margin:0;line-height:inherit}.search-results .vue-component.searchable-list ul.list>li{margin-bottom:0}.discovery-toolbar[data-v-1c899aff]{width:100%;height:100%;display:flex;flex-direction:column;overflow:hidden}.search-results[data-v-1c899aff]{overflow-y:auto;flex-grow:1;margin:.25rem 0 0 0}.search-box[data-v-1c899aff]{margin:1rem 1rem .25rem 1rem}.show-deprecated[data-v-1c899aff]{margin:.25rem 1rem .25rem 1rem;text-align:center;font-size:.9em}.category[data-v-1c899aff]{margin:.75rem 1rem .5rem 1rem}.category strong[data-v-1c899aff]{cursor:pointer;overflow:hidden;white-space:nowrap}.discovery-entity[data-v-1c899aff]{display:flex;margin:.25em 0;border:1px solid #ddd;border-radius:3px;cursor:pointer;-webkit-user-select:none;user-select:none;font-size:.9em}.discovery-entity strong[data-v-1c899aff]{display:block;font-weight:400;white-space:nowrap;width:100%;overflow:hidden;text-overflow:ellipsis;color:#1665b6}.discovery-entity small[data-v-1c899aff]{margin-top:.25em;display:block}.discovery-entity .discovery-info[data-v-1c899aff]{flex-grow:1;padding:5px;width:100%;overflow:hidden;position:relative}.discovery-entity .discovery-info[data-v-1c899aff]:hover{background-color:#eee}.discovery-entity .discovery-info:hover strong[data-v-1c899aff]{color:#000}.discovery-entity .discovery-button[data-v-1c899aff]{display:block;margin:0;padding:5px;background-color:#fff;color:#aaa;border:0;border-left:1px solid #ddd}.discovery-entity .discovery-button[data-v-1c899aff]:hover{background-color:#eee;color:#000}.discovery-entity .custom-process[data-v-1c899aff]{position:absolute;top:7px;right:5px}.visualEditor{background-color:#fff;height:100%;display:flex;flex-direction:column}.visualEditor .vue-component.model-builder{min-height:100px;min-width:100px}.visualEditor .model-overlay{position:absolute;width:100%;height:100%;left:0;top:0;color:#555;z-index:5;padding:1em;overflow:auto;box-sizing:border-box;line-height:1.25em}.visualEditor .model-overlay>h2{font-size:1.2em;text-align:center;border-bottom:0;margin-bottom:.5em;padding:0}.visualEditor .model-overlay>p{margin:.5em 0}.visualEditor .model-overlay>p>ul{margin:.25em 0}.visualEditor .model-overlay>p:first-of-type{margin-top:0}.visualEditor .model-overlay>p:last-of-type{margin-bottom:0}.visualEditor .discoveryToolbar{width:25%;min-width:150px;border-left:1px solid #ddd}.visualEditor .editorSplitter{display:flex;flex-direction:row-reverse;flex-grow:1;height:100%;overflow:hidden}.visualEditor.fullscreen{display:flex;flex-direction:column}.visualEditor.fullscreen .discoveryToolbar{width:15%;min-width:250px}.visualEditor.fullscreen .editorSplitter{height:100%}.graphBuilder{height:100%;flex-grow:1;position:relative}.compactMode{color:green}@keyframes glowing{0%{box-shadow:0 0 3px green}50%{box-shadow:0 0 10px green}to{box-shadow:0 0 3px green}}.highlightFormula{animation:glowing 1.5s infinite}.editor.vue-component.tabs.boxed>.tabsBody>.tabContent{overflow:hidden}
\ No newline at end of file
+.vue-component.model-builder .block .connector{font-size:.9em;margin:.2em 0;white-space:nowrap}.vue-component.model-builder .block .connector.noValue{color:red}.vue-component.model-builder .block .connector.editable .label,.vue-component.model-builder .block .connector.editable .value{cursor:pointer}.vue-component.model-builder .block .connector span[title]{cursor:help}.vue-component.model-builder .block .connector .input{max-width:100%;overflow:hidden;text-overflow:ellipsis}.vue-component.model-builder .block .connector .output{text-align:right}.vue-component.model-builder .block .connector .unspecified{color:red;margin-right:.3em}.vue-component.model-builder .block .connector .circle{width:.8em;height:.8em;margin:0 .2em;border:1px solid #888;background-color:#0000;display:inline-block}.vue-component.model-builder .block .connector .circle.io_active{background-color:#ffc800}.vue-component.model-builder .block .connector .circle.io_selected{background-color:#00c800!important}.vue-component.model-builder .block .connector .circle.io_issues{background-color:red}.vue-component.model-builder.editable .circle{cursor:pointer}.vue-component.model-builder .block{position:absolute;border:2px solid #ccc;margin-left:0;margin-top:0;background-color:#fafafa;opacity:.8;font-size:14px;user-select:none;-moz-user-select:none;-khtml-user-select:none;-webkit-user-select:none;-o-user-select:none;color:#000}.vue-component.model-builder .block .description{display:none;width:200px;padding:3px;border:1px solid #083776;border-radius:5px;color:#001531;background-color:#91bcf6;margin-top:15px;position:absolute;font-weight:400}.vue-component.model-builder .block .blockTitle{display:flex;padding:.3em .1em;font-weight:700;background-color:#ddd;margin-bottom:.1em;cursor:move;font-size:.9em}.vue-component.model-builder .block .blockTitle .blockId{opacity:.4;margin-left:.25em;font-weight:400}.vue-component.model-builder .block .blockTitle .namespace{font-weight:400}.vue-component.model-builder .block .blockTitle .titleText{flex-grow:1;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.vue-component.model-builder .block .blockTitle .blockicon{white-space:nowrap;text-align:center}.vue-component.model-builder .block .blockTitle .blockicon i.fas{min-width:1.4em;cursor:pointer;opacity:.5;margin-left:.1em}.vue-component.model-builder .block .blockTitle .blockicon i.fas:hover{opacity:1}.vue-component.model-builder .block .invalid{color:red;cursor:help}.vue-component.model-builder .block .inout{display:flex}.vue-component.model-builder .block .inputs{flex-grow:1;max-width:100%;overflow:hidden;text-overflow:ellipsis}.vue-component.model-builder .block .editDescription{padding:.3em .2em;box-sizing:border-box;font-size:.9em;line-height:1em;overflow:auto;border:0;border-top:1px dotted #ccc;background-color:#0000;width:100%;max-width:100%;height:3.7em;min-height:2.5em;resize:none}.vue-component.model-builder .block .editDescription:focus{outline:0}.vue-component.model-builder .block_collection{border:2px solid #6b8daf}.vue-component.model-builder .block_collection .blockTitle{background-color:#a3b7cc}.vue-component.model-builder .block_collection .field_id{display:none}.vue-component.model-builder .block_result{border:2px solid #888}.vue-component.model-builder .block_result .field_output .circle{background-color:#888;cursor:auto}.vue-component.model-builder .block_argument{border:2px solid #b28c6b}.vue-component.model-builder .block_argument .blockTitle{background-color:#ccb7a3}.vue-component.model-builder .block_selected{border:2px solid #0a0!important}.vue-component.model-builder .block_selected .blockTitle{background-color:#0c0!important}.vue-component.model-builder .block_invalid{border:2px solid red!important}.vue-component.model-builder{width:100%;height:100%;position:relative}.vue-component.model-builder.editable.focus .blocks{border-color:#1666b64d}.vue-component.model-builder .blocks:focus,.vue-component.model-builder .canvas:focus,.vue-component.model-builder:focus{outline:0}.vue-component.model-builder .canvas{width:100%;height:100%;position:absolute;z-index:1}.vue-component.model-builder .blocks{box-sizing:border-box;border:1px solid #0000;overflow:hidden;position:absolute;z-index:3;width:100%;height:100%}.vue-component.model-builder.compact .blockId,.vue-component.model-builder.compact .blockicon .addDescription,.vue-component.model-builder.compact .blockicon .delete,.vue-component.model-builder.compact .blockicon .info,.vue-component.model-builder.compact .editDescription,.vue-component.model-builder.scale_s .blockicon,.vue-component.model-builder.scale_xs .blockicon,.vue-component.model-builder.scale_xs .connector .text{display:none}.vue-component.model-builder .zoomInfo{position:absolute;top:0;right:0;display:inline-block;padding:.3em;background-color:#f9f9f9;color:#000;border-radius:0 0 0 .3em;z-index:5}.vue-component.model-builder.scale_xs .editDescription{visibility:hidden}.vue-component.search-box{margin:0 1px 1em 0;display:flex;align-items:stretch}.vue-component.search-box .icon,.vue-component.search-box input{font-size:1em;margin:0}.vue-component.search-box input{flex-grow:1;padding:.3em;padding-left:1.9em;z-index:1;border:1px solid #ccc;box-sizing:initial;background-color:#fff;box-sizing:border-box;width:100%;margin-left:-1.3em}.vue-component.search-box .icon{display:flex;align-items:center;-webkit-user-select:none;user-select:none;margin-left:.3em;width:1em;z-index:2}.vue-component.search-box.compact{font-size:.9em;margin-bottom:0}.vue-component.search-box.compact input{padding-top:0;padding-bottom:0}.vue-component.search-box.compact .icon{margin-top:.1em;margin-left:.3em}.vue-component .highlight-box{box-shadow:0 0 0 .2em #c8e1ff}.vue-component code.id{color:maroon}.vue-component abbr{-webkit-text-decoration:underline dotted 1px;text-decoration:underline dotted 1px}.vue-component .unit{opacity:.6}.vue-component .status[data-value=submitted]{color:#000}.vue-component .status[data-value=running]{color:#ff8c00}.vue-component .status[data-value=queued]{color:#00008b}.vue-component .status[data-value=finished]{color:#006400}.vue-component .status[data-value=canceled]{color:#a9a9a9}.vue-component .status[data-value=error]{color:red}.vue-component.inline.process{margin-left:1em}.vue-component.inline h1{font-size:1.17em}.vue-component.inline h2{font-size:1.1em}.vue-component.inline h3{font-size:1.05em}.vue-component.inline h4,.vue-component.inline h5,.vue-component.inline h6{font-size:1em}.vue-component .comma-separated-list{display:inline;list-style:none;padding:0}.vue-component .comma-separated-list li{display:inline;padding:0}.vue-component .comma-separated-list li:after{content:", "}.vue-component .comma-separated-list li:last-child:after{content:""}.vue-component .required{color:red;font-weight:700}.vue-component.message-block{margin:1em 0;padding:.5em}.vue-component.message-block>strong{display:block;margin-bottom:.5em}.vue-component.message-block>p{margin:0}.vue-component .param-name,.vue-component .process-name{color:#369}.vue-component .param-argument,.vue-component .return-value{color:#936}.vue-component .data-type{color:#693}.vue-component .param-optional{font-weight:700}.vue-component .badges{margin:0;padding:0;list-style-type:none;display:inline-block}.vue-component .badges .badge{display:inline-block;font-size:.8em;margin:.25em;padding:.35em .5em .25em .5em;line-height:1em;text-align:center;white-space:nowrap;text-transform:uppercase;vertical-align:initial;border-radius:.5em;color:#fff;background-color:#6c757d}.vue-component .badges:not(.inline){margin-left:-.25em;margin-right:-.25em}.vue-component .badges.small .badge{padding:.25em .35em .2em .35em;font-size:.75em}.vue-component .badges.inline{margin-left:.5em;border-radius:.25em}.vue-component .badges.inline .badge{margin-top:0;margin-bottom:0}.vue-component .badges .badge a{color:#fff;border-bottom:1px dotted #fff;text-decoration:none}.vue-component .badges .badge a.badge-fill{margin:-.35em -.5em;padding:.35em .5em;display:block;border-bottom:0}.vue-component .badges.small .badge a.badge-fill{margin:-.2em -.3em;padding:.25em .35em}.vue-component .badges .badge a:hover{color:#fff;border-bottom-style:solid}.vue-component .badges .default{background-color:#555}.vue-component .badges .green{background-color:green}.vue-component .badges .red{background-color:maroon}.vue-component .badges .option1{background-color:#369}.vue-component .badges .option2{background-color:#693}.vue-component .badges .option3{background-color:#936}.vue-component .badges .option4{background-color:#963}.vue-component .badges .deprecated{background-color:red}.vue-component .badges .experimental{background-color:#8a2be2}.vue-component .badges .action{border:1px solid #000;background-color:#fff;color:#000;margin:.33em;cursor:pointer;text-transform:none}.vue-component .badges .action:hover{background-color:#000;color:#fff}.vue-component .badges .action:hover>a{color:#fff}.vue-component .badges .action>a{color:#000}.vue-component .badges .docker{background-color:#0db7ed}.vue-component .tabular{display:flex;margin:.2em 0;padding:1px}.vue-component .tabular label{flex:1;font-weight:700}.vue-component .tabular .value{flex:3}.vue-component .tabular .value td>div,.vue-component .tabular .value>.formatted>ul,.vue-component .tabular .value>ul,.vue-component .tabular ul.value{max-height:15em;overflow:auto}.vue-component .tabular .value pre{margin:0}.vue-component.stac .map{background:#0000;height:350px}.vue-component.stac .tabular{margin:.5em 0}.vue-component.stac .tabular.wrap{display:block}.vue-component.stac .tabular.wrap .value{margin-top:.5em;margin-left:1em;margin-bottom:.5em}.vue-component.stac .tabular .value ul{padding-left:20px}.assets.empty,.vue-component.stac .links:empty{display:none}.vue-component.stac .thumbnails{overflow-x:auto;overflow-y:hidden;width:100%;white-space:nowrap}.vue-component.stac .thumbnails a{margin:5px;display:inline-block}.vue-component.stac .thumbnails a img{padding:2px;max-height:200px;vertical-align:middle;border:2px solid #0000}.vue-component.stac .thumbnails a:hover img{border:2px solid #00000080}.vue-component .federation>ul>li{margin-bottom:.5em}.vue-component .federation>ul>li>small{display:block}.vue-component .federation>ul>li>h4{margin:0}.vue-component .federation .fed-header{margin:.2em 0}.vue-component .federation .fed-header>.fed-title{display:inline-block;vertical-align:bottom}.search-results h2.heading{font-size:1em;border:0;margin:0;padding:0;margin-bottom:.5em}.search-results .vue-component.searchable-list ul.list>li>summary:before{content:"";margin-left:0;float:none}.search-results .vue-component.searchable-list ul.list>li>summary{margin:0;line-height:inherit}.search-results .vue-component.searchable-list ul.list>li{margin-bottom:0}.discovery-toolbar[data-v-281f64a6]{width:100%;height:100%;display:flex;flex-direction:column;overflow:hidden}.search-results[data-v-281f64a6]{overflow-y:auto;flex-grow:1;margin:.25rem 0 0 0}.search-box[data-v-281f64a6]{margin:1rem 1rem .25rem 1rem}.filters[data-v-281f64a6]{display:flex;justify-content:center;flex-flow:row wrap}.filters .label[data-v-281f64a6],.filters .show-deprecated[data-v-281f64a6],.filters .show-experimental[data-v-281f64a6]{align-content:center;display:inline-block;white-space:nowrap;margin:.25rem;font-size:.9em;cursor:pointer}.filters .label[data-v-281f64a6]{cursor:default}.category[data-v-281f64a6]{margin:.75rem 1rem .5rem 1rem}.category strong[data-v-281f64a6]{cursor:pointer;overflow:hidden;white-space:nowrap}.discovery-entity[data-v-281f64a6]{display:flex;margin:.25em 0;border:1px solid #ddd;border-radius:3px;cursor:pointer;-webkit-user-select:none;user-select:none;font-size:.9em}.discovery-entity strong[data-v-281f64a6]{display:block;font-weight:400;white-space:nowrap;width:100%;overflow:hidden;text-overflow:ellipsis;color:#1665b6}.discovery-entity small[data-v-281f64a6]{margin-top:.25em;display:block}.discovery-entity .discovery-info[data-v-281f64a6]{flex-grow:1;padding:5px;width:100%;overflow:hidden;position:relative}.discovery-entity .discovery-info[data-v-281f64a6]:hover{background-color:#eee}.discovery-entity .discovery-info:hover strong[data-v-281f64a6]{color:#000}.discovery-entity .discovery-button[data-v-281f64a6]{display:block;margin:0;padding:5px;background-color:#fff;color:#aaa;border:0;border-left:1px solid #ddd}.discovery-entity .discovery-button[data-v-281f64a6]:hover{background-color:#eee;color:#000}.discovery-entity .custom-process[data-v-281f64a6]{position:absolute;top:7px;right:5px}.visualEditor{background-color:#fff;height:100%;display:flex;flex-direction:column}.visualEditor .vue-component.model-builder{min-height:100px;min-width:100px}.visualEditor .model-overlay{position:absolute;width:100%;height:100%;left:0;top:0;color:#555;z-index:5;padding:1em;overflow:auto;box-sizing:border-box;line-height:1.25em}.visualEditor .model-overlay>h2{font-size:1.2em;text-align:center;border-bottom:0;margin-bottom:.5em;padding:0}.visualEditor .model-overlay>p{margin:.5em 0}.visualEditor .model-overlay>p>ul{margin:.25em 0}.visualEditor .model-overlay>p:first-of-type{margin-top:0}.visualEditor .model-overlay>p:last-of-type{margin-bottom:0}.visualEditor .discoveryToolbar{width:25%;min-width:150px;border-left:1px solid #ddd}.visualEditor .editorSplitter{display:flex;flex-direction:row-reverse;flex-grow:1;height:100%;overflow:hidden}.visualEditor.fullscreen{display:flex;flex-direction:column}.visualEditor.fullscreen .discoveryToolbar{width:15%;min-width:250px}.visualEditor.fullscreen .editorSplitter{height:100%}.graphBuilder{height:100%;flex-grow:1;position:relative}.compactMode{color:green}@keyframes glowing{0%{box-shadow:0 0 3px green}50%{box-shadow:0 0 10px green}to{box-shadow:0 0 3px green}}.highlightFormula{animation:glowing 1.5s infinite}.editor.vue-component.tabs.boxed>.tabsBody>.tabContent{overflow:hidden}
\ No newline at end of file
diff --git a/css/3324.5599a43d.css b/css/3324.c3d5bbdc.css
similarity index 50%
rename from css/3324.5599a43d.css
rename to css/3324.c3d5bbdc.css
index 1a68812d..94bf4fd5 100644
--- a/css/3324.5599a43d.css
+++ b/css/3324.c3d5bbdc.css
@@ -1 +1 @@
-.modal{position:fixed;z-index:1000;left:0;top:0;width:100%;height:100%;background-color:#0006;display:flex;justify-content:center;align-items:center}.modal .modal-container{background-color:#fff;border:1px solid #fff;min-height:50vh;min-width:300px;width:70%;max-height:96%;max-width:96%;display:flex;flex-direction:column;box-shadow:8px 8px 8px 0 #0000004d;resize:both;overflow:hidden}.modal .modal-container.smooth{transition-timing-function:linear;transition-property:width,height;transition-duration:.5s}.modal .modal-header{background-color:#1665b6;color:#fff;margin:0;height:1.5rem;padding:1rem;display:flex;align-items:center;justify-content:space-between;cursor:move}.modal .modal-header h2{display:inline-block;margin:0;margin-left:-.5rem;padding:.5rem;font-size:1.5rem;border:0;cursor:text;text-overflow:ellipsis;overflow:hidden}.modal .modal-content{padding:1rem;overflow:auto;flex-grow:1}.modal .inline .modal-content{padding:0}.modal .modal-footer:empty{display:none}.modal .modal-footer{background-color:#eee;margin:0;padding:1rem;text-align:right}.modal .close{font-size:1.5rem;height:2rem;width:2rem;color:#fff;cursor:pointer;display:flex;justify-content:center;align-items:center}.modal .close:focus,.modal .close:hover{color:red}.vue-component.job .progressBar{background-color:#eee;border:1px solid #ccc;color:#000;height:1.2em;border-radius:.3em}.vue-component.job .progressBar .number{font-size:.8em;padding:.1em .3em;display:inline-block}.vue-component.job .progressBar .completed{background-color:green;width:1px;height:1.2em;color:#fff;display:inline-block;border-radius:.3em}.vue-component.job .progressBar.error .completed{background-color:maroon}.vue-component.model-builder .block .connector{font-size:.9em;margin:.2em 0;white-space:nowrap}.vue-component.model-builder .block .connector.noValue{color:red}.vue-component.model-builder .block .connector.editable .label,.vue-component.model-builder .block .connector.editable .value{cursor:pointer}.vue-component.model-builder .block .connector span[title]{cursor:help}.vue-component.model-builder .block .connector .input{max-width:100%;overflow:hidden;text-overflow:ellipsis}.vue-component.model-builder .block .connector .output{text-align:right}.vue-component.model-builder .block .connector .unspecified{color:red;margin-right:.3em}.vue-component.model-builder .block .connector .circle{width:.8em;height:.8em;margin:0 .2em;border:1px solid #888;background-color:#0000;display:inline-block}.vue-component.model-builder .block .connector .circle.io_active{background-color:#ffc800}.vue-component.model-builder .block .connector .circle.io_selected{background-color:#00c800!important}.vue-component.model-builder .block .connector .circle.io_issues{background-color:red}.vue-component.model-builder.editable .circle{cursor:pointer}.vue-component.model-builder .block{position:absolute;border:2px solid #ccc;margin-left:0;margin-top:0;background-color:#fafafa;opacity:.8;font-size:14px;user-select:none;-moz-user-select:none;-khtml-user-select:none;-webkit-user-select:none;-o-user-select:none;color:#000}.vue-component.model-builder .block .description{display:none;width:200px;padding:3px;border:1px solid #083776;border-radius:5px;color:#001531;background-color:#91bcf6;margin-top:15px;position:absolute;font-weight:400}.vue-component.model-builder .block .blockTitle{display:flex;padding:.3em .1em;font-weight:700;background-color:#ddd;margin-bottom:.1em;cursor:move;font-size:.9em}.vue-component.model-builder .block .blockTitle .blockId{opacity:.4;margin-left:.25em;font-weight:400}.vue-component.model-builder .block .blockTitle .namespace{font-weight:400}.vue-component.model-builder .block .blockTitle .titleText{flex-grow:1;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.vue-component.model-builder .block .blockTitle .blockicon{white-space:nowrap;text-align:center}.vue-component.model-builder .block .blockTitle .blockicon i.fas{min-width:1.4em;cursor:pointer;opacity:.5;margin-left:.1em}.vue-component.model-builder .block .blockTitle .blockicon i.fas:hover{opacity:1}.vue-component.model-builder .block .invalid{color:red;cursor:help}.vue-component.model-builder .block .inout{display:flex}.vue-component.model-builder .block .inputs{flex-grow:1;max-width:100%;overflow:hidden;text-overflow:ellipsis}.vue-component.model-builder .block .editDescription{padding:.3em .2em;box-sizing:border-box;font-size:.9em;line-height:1em;overflow:auto;border:0;border-top:1px dotted #ccc;background-color:#0000;width:100%;max-width:100%;height:3.7em;min-height:2.5em;resize:none}.vue-component.model-builder .block .editDescription:focus{outline:0}.vue-component.model-builder .block_collection{border:2px solid #6b8daf}.vue-component.model-builder .block_collection .blockTitle{background-color:#a3b7cc}.vue-component.model-builder .block_collection .field_id{display:none}.vue-component.model-builder .block_result{border:2px solid #888}.vue-component.model-builder .block_result .field_output .circle{background-color:#888;cursor:auto}.vue-component.model-builder .block_argument{border:2px solid #b28c6b}.vue-component.model-builder .block_argument .blockTitle{background-color:#ccb7a3}.vue-component.model-builder .block_selected{border:2px solid #0a0!important}.vue-component.model-builder .block_selected .blockTitle{background-color:#0c0!important}.vue-component.model-builder .block_invalid{border:2px solid red!important}.vue-component.model-builder{width:100%;height:100%;position:relative}.vue-component.model-builder.editable.focus .blocks{border-color:#1666b64d}.vue-component.model-builder .blocks:focus,.vue-component.model-builder .canvas:focus,.vue-component.model-builder:focus{outline:0}.vue-component.model-builder .canvas{width:100%;height:100%;position:absolute;z-index:1}.vue-component.model-builder .blocks{box-sizing:border-box;border:1px solid #0000;overflow:hidden;position:absolute;z-index:3;width:100%;height:100%}.vue-component.model-builder.compact .blockId,.vue-component.model-builder.compact .blockicon .addDescription,.vue-component.model-builder.compact .blockicon .delete,.vue-component.model-builder.compact .blockicon .info,.vue-component.model-builder.compact .editDescription,.vue-component.model-builder.scale_s .blockicon,.vue-component.model-builder.scale_xs .blockicon,.vue-component.model-builder.scale_xs .connector .text{display:none}.vue-component.model-builder .zoomInfo{position:absolute;top:0;right:0;display:inline-block;padding:.3em;background-color:#f9f9f9;color:#000;border-radius:0 0 0 .3em;z-index:5}.vue-component.model-builder.scale_xs .editDescription{visibility:hidden}.vue-component.search-box{margin:0 1px 1em 0;display:flex;align-items:stretch}.vue-component.search-box .icon,.vue-component.search-box input{font-size:1em;margin:0}.vue-component.search-box input{flex-grow:1;padding:.3em;padding-left:1.9em;z-index:1;border:1px solid #ccc;box-sizing:initial;background-color:#fff;box-sizing:border-box;width:100%;margin-left:-1.3em}.vue-component.search-box .icon{display:flex;align-items:center;-webkit-user-select:none;user-select:none;margin-left:.3em;width:1em;z-index:2}.vue-component.search-box.compact{font-size:.9em;margin-bottom:0}.vue-component.search-box.compact input{padding-top:0;padding-bottom:0}.vue-component.search-box.compact .icon{margin-top:.1em;margin-left:.3em}.vue-component .highlight-box{box-shadow:0 0 0 .2em #c8e1ff}.vue-component code.id{color:maroon}.vue-component abbr{-webkit-text-decoration:underline dotted 1px;text-decoration:underline dotted 1px}.vue-component .unit{opacity:.6}.vue-component .status[data-value=submitted]{color:#000}.vue-component .status[data-value=running]{color:#ff8c00}.vue-component .status[data-value=queued]{color:#00008b}.vue-component .status[data-value=finished]{color:#006400}.vue-component .status[data-value=canceled]{color:#a9a9a9}.vue-component .status[data-value=error]{color:red}.vue-component.inline.process{margin-left:1em}.vue-component.inline h1{font-size:1.17em}.vue-component.inline h2{font-size:1.1em}.vue-component.inline h3{font-size:1.05em}.vue-component.inline h4,.vue-component.inline h5,.vue-component.inline h6{font-size:1em}.vue-component .comma-separated-list{display:inline;list-style:none;padding:0}.vue-component .comma-separated-list li{display:inline;padding:0}.vue-component .comma-separated-list li:after{content:", "}.vue-component .comma-separated-list li:last-child:after{content:""}.vue-component .required{color:red;font-weight:700}.vue-component.message-block{margin:1em 0;padding:.5em}.vue-component.message-block>strong{display:block;margin-bottom:.5em}.vue-component.message-block>p{margin:0}.vue-component .param-name,.vue-component .process-name{color:#369}.vue-component .param-argument,.vue-component .return-value{color:#936}.vue-component .data-type{color:#693}.vue-component .param-optional{font-weight:700}.vue-component .badges{margin:0;padding:0;list-style-type:none;display:inline-block}.vue-component .badges .badge{display:inline-block;font-size:.8em;margin:.25em;padding:.35em .5em .25em .5em;line-height:1em;text-align:center;white-space:nowrap;text-transform:uppercase;vertical-align:initial;border-radius:.5em;color:#fff;background-color:#6c757d}.vue-component .badges:not(.inline){margin-left:-.25em;margin-right:-.25em}.vue-component .badges.small .badge{padding:.25em .35em .2em .35em;font-size:.75em}.vue-component .badges.inline{margin-left:.5em;border-radius:.25em}.vue-component .badges.inline .badge{margin-top:0;margin-bottom:0}.vue-component .badges .badge a{color:#fff;border-bottom:1px dotted #fff;text-decoration:none}.vue-component .badges .badge a.badge-fill{margin:-.35em -.5em;padding:.35em .5em;display:block;border-bottom:0}.vue-component .badges.small .badge a.badge-fill{margin:-.2em -.3em;padding:.25em .35em}.vue-component .badges .badge a:hover{color:#fff;border-bottom-style:solid}.vue-component .badges .default{background-color:#555}.vue-component .badges .green{background-color:green}.vue-component .badges .red{background-color:maroon}.vue-component .badges .option1{background-color:#369}.vue-component .badges .option2{background-color:#693}.vue-component .badges .option3{background-color:#936}.vue-component .badges .option4{background-color:#963}.vue-component .badges .deprecated{background-color:red}.vue-component .badges .experimental{background-color:#8a2be2}.vue-component .badges .action{border:1px solid #000;background-color:#fff;color:#000;margin:.33em;cursor:pointer;text-transform:none}.vue-component .badges .action:hover{background-color:#000;color:#fff}.vue-component .badges .action:hover>a{color:#fff}.vue-component .badges .action>a{color:#000}.vue-component .badges .docker{background-color:#0db7ed}.vue-component .tabular{display:flex;margin:.2em 0;padding:1px}.vue-component .tabular label{flex:1;font-weight:700}.vue-component .tabular .value{flex:3}.vue-component .tabular .value td>div,.vue-component .tabular .value>.formatted>ul,.vue-component .tabular .value>ul,.vue-component .tabular ul.value{max-height:15em;overflow:auto}.vue-component .tabular .value pre{margin:0}.vue-component.stac .map{background:#0000;height:350px}.vue-component.stac .tabular{margin:.5em 0}.vue-component.stac .tabular.wrap{display:block}.vue-component.stac .tabular.wrap .value{margin-top:.5em;margin-left:1em;margin-bottom:.5em}.vue-component.stac .tabular .value ul{padding-left:20px}.assets.empty,.vue-component.stac .links:empty{display:none}.vue-component.stac .thumbnails{overflow-x:auto;overflow-y:hidden;width:100%;white-space:nowrap}.vue-component.stac .thumbnails a{margin:5px;display:inline-block}.vue-component.stac .thumbnails a img{padding:2px;max-height:200px;vertical-align:middle;border:2px solid #0000}.vue-component.stac .thumbnails a:hover img{border:2px solid #00000080}.vue-component .federation>ul>li{margin-bottom:.5em}.vue-component .federation>ul>li>small{display:block}.vue-component .federation>ul>li>h4{margin:0}.vue-component .federation .fed-header{margin:.2em 0}.vue-component .federation .fed-header>.fed-title{display:inline-block;vertical-align:bottom}.search-results h2.heading{font-size:1em;border:0;margin:0;padding:0;margin-bottom:.5em}.search-results .vue-component.searchable-list ul.list>li>summary:before{content:"";margin-left:0;float:none}.search-results .vue-component.searchable-list ul.list>li>summary{margin:0;line-height:inherit}.search-results .vue-component.searchable-list ul.list>li{margin-bottom:0}.discovery-toolbar[data-v-1c899aff]{width:100%;height:100%;display:flex;flex-direction:column;overflow:hidden}.search-results[data-v-1c899aff]{overflow-y:auto;flex-grow:1;margin:.25rem 0 0 0}.search-box[data-v-1c899aff]{margin:1rem 1rem .25rem 1rem}.show-deprecated[data-v-1c899aff]{margin:.25rem 1rem .25rem 1rem;text-align:center;font-size:.9em}.category[data-v-1c899aff]{margin:.75rem 1rem .5rem 1rem}.category strong[data-v-1c899aff]{cursor:pointer;overflow:hidden;white-space:nowrap}.discovery-entity[data-v-1c899aff]{display:flex;margin:.25em 0;border:1px solid #ddd;border-radius:3px;cursor:pointer;-webkit-user-select:none;user-select:none;font-size:.9em}.discovery-entity strong[data-v-1c899aff]{display:block;font-weight:400;white-space:nowrap;width:100%;overflow:hidden;text-overflow:ellipsis;color:#1665b6}.discovery-entity small[data-v-1c899aff]{margin-top:.25em;display:block}.discovery-entity .discovery-info[data-v-1c899aff]{flex-grow:1;padding:5px;width:100%;overflow:hidden;position:relative}.discovery-entity .discovery-info[data-v-1c899aff]:hover{background-color:#eee}.discovery-entity .discovery-info:hover strong[data-v-1c899aff]{color:#000}.discovery-entity .discovery-button[data-v-1c899aff]{display:block;margin:0;padding:5px;background-color:#fff;color:#aaa;border:0;border-left:1px solid #ddd}.discovery-entity .discovery-button[data-v-1c899aff]:hover{background-color:#eee;color:#000}.discovery-entity .custom-process[data-v-1c899aff]{position:absolute;top:7px;right:5px}.fullscreen{position:absolute!important;top:0!important;left:0!important;width:100%!important;height:100%!important;background-color:#fff;overflow:auto}.visualEditor{background-color:#fff;height:100%;display:flex;flex-direction:column}.visualEditor .vue-component.model-builder{min-height:100px;min-width:100px}.visualEditor .model-overlay{position:absolute;width:100%;height:100%;left:0;top:0;color:#555;z-index:5;padding:1em;overflow:auto;box-sizing:border-box;line-height:1.25em}.visualEditor .model-overlay>h2{font-size:1.2em;text-align:center;border-bottom:0;margin-bottom:.5em;padding:0}.visualEditor .model-overlay>p{margin:.5em 0}.visualEditor .model-overlay>p>ul{margin:.25em 0}.visualEditor .model-overlay>p:first-of-type{margin-top:0}.visualEditor .model-overlay>p:last-of-type{margin-bottom:0}.visualEditor .discoveryToolbar{width:25%;min-width:150px;border-left:1px solid #ddd}.visualEditor .editorSplitter{display:flex;flex-direction:row-reverse;flex-grow:1;height:100%;overflow:hidden}.visualEditor.fullscreen{display:flex;flex-direction:column}.visualEditor.fullscreen .discoveryToolbar{width:15%;min-width:250px}.visualEditor.fullscreen .editorSplitter{height:100%}.graphBuilder{height:100%;flex-grow:1;position:relative}.compactMode{color:green}@keyframes glowing{0%{box-shadow:0 0 3px green}50%{box-shadow:0 0 10px green}to{box-shadow:0 0 3px green}}.highlightFormula{animation:glowing 1.5s infinite}.CodeMirror{font-family:monospace;height:300px;color:#000;direction:ltr}.CodeMirror-lines{padding:4px 0}.CodeMirror pre.CodeMirror-line,.CodeMirror pre.CodeMirror-line-like{padding:0 4px}.CodeMirror-gutter-filler,.CodeMirror-scrollbar-filler{background-color:#fff}.CodeMirror-gutters{border-right:1px solid #ddd;background-color:#f7f7f7;white-space:nowrap}.CodeMirror-linenumber{padding:0 3px 0 5px;min-width:20px;text-align:right;color:#999;white-space:nowrap}.CodeMirror-guttermarker{color:#000}.CodeMirror-guttermarker-subtle{color:#999}.CodeMirror-cursor{border-left:1px solid #000;border-right:none;width:0}.CodeMirror div.CodeMirror-secondarycursor{border-left:1px solid silver}.cm-fat-cursor .CodeMirror-cursor{width:auto;border:0!important;background:#7e7}.cm-fat-cursor div.CodeMirror-cursors{z-index:1}.cm-fat-cursor .CodeMirror-line::selection,.cm-fat-cursor .CodeMirror-line>span::selection,.cm-fat-cursor .CodeMirror-line>span>span::selection{background:#0000}.cm-fat-cursor .CodeMirror-line::-moz-selection,.cm-fat-cursor .CodeMirror-line>span::-moz-selection,.cm-fat-cursor .CodeMirror-line>span>span::-moz-selection{background:#0000}.cm-fat-cursor{caret-color:#0000}@keyframes blink{50%{background-color:initial}}.cm-tab{display:inline-block;text-decoration:inherit}.CodeMirror-rulers{position:absolute;left:0;right:0;top:-50px;bottom:0;overflow:hidden}.CodeMirror-ruler{border-left:1px solid #ccc;top:0;bottom:0;position:absolute}.cm-s-default .cm-header{color:blue}.cm-s-default .cm-quote{color:#090}.cm-negative{color:#d44}.cm-positive{color:#292}.cm-header,.cm-strong{font-weight:700}.cm-em{font-style:italic}.cm-link{text-decoration:underline}.cm-strikethrough{text-decoration:line-through}.cm-s-default .cm-keyword{color:#708}.cm-s-default .cm-atom{color:#219}.cm-s-default .cm-number{color:#164}.cm-s-default .cm-def{color:#00f}.cm-s-default .cm-variable-2{color:#05a}.cm-s-default .cm-type,.cm-s-default .cm-variable-3{color:#085}.cm-s-default .cm-comment{color:#a50}.cm-s-default .cm-string{color:#a11}.cm-s-default .cm-string-2{color:#f50}.cm-s-default .cm-meta,.cm-s-default .cm-qualifier{color:#555}.cm-s-default .cm-builtin{color:#30a}.cm-s-default .cm-bracket{color:#997}.cm-s-default .cm-tag{color:#170}.cm-s-default .cm-attribute{color:#00c}.cm-s-default .cm-hr{color:#999}.cm-s-default .cm-link{color:#00c}.cm-invalidchar,.cm-s-default .cm-error{color:red}.CodeMirror-composing{border-bottom:2px solid}div.CodeMirror span.CodeMirror-matchingbracket{color:#0b0}div.CodeMirror span.CodeMirror-nonmatchingbracket{color:#a22}.CodeMirror-matchingtag{background:#ff96004d}.CodeMirror-activeline-background{background:#e8f2ff}.CodeMirror{position:relative;overflow:hidden;background:#fff}.CodeMirror-scroll{overflow:scroll!important;margin-bottom:-50px;margin-right:-50px;padding-bottom:50px;height:100%;outline:none;position:relative;z-index:0}.CodeMirror-sizer{position:relative;border-right:50px solid #0000}.CodeMirror-gutter-filler,.CodeMirror-hscrollbar,.CodeMirror-scrollbar-filler,.CodeMirror-vscrollbar{position:absolute;z-index:6;display:none;outline:none}.CodeMirror-vscrollbar{right:0;top:0;overflow-x:hidden;overflow-y:scroll}.CodeMirror-hscrollbar{bottom:0;left:0;overflow-y:hidden;overflow-x:scroll}.CodeMirror-scrollbar-filler{right:0;bottom:0}.CodeMirror-gutter-filler{left:0;bottom:0}.CodeMirror-gutters{position:absolute;left:0;top:0;min-height:100%;z-index:3}.CodeMirror-gutter{white-space:normal;height:100%;display:inline-block;vertical-align:top;margin-bottom:-50px}.CodeMirror-gutter-wrapper{position:absolute;z-index:4;background:none!important;border:none!important}.CodeMirror-gutter-background{position:absolute;top:0;bottom:0;z-index:4}.CodeMirror-gutter-elt{position:absolute;cursor:default;z-index:4}.CodeMirror-gutter-wrapper ::selection{background-color:initial}.CodeMirror-gutter-wrapper ::-moz-selection{background-color:initial}.CodeMirror-lines{cursor:text;min-height:1px}.CodeMirror pre.CodeMirror-line,.CodeMirror pre.CodeMirror-line-like{border-radius:0;border-width:0;background:#0000;font-family:inherit;font-size:inherit;margin:0;white-space:pre;word-wrap:normal;line-height:inherit;color:inherit;z-index:2;position:relative;overflow:visible;-webkit-tap-highlight-color:transparent;font-variant-ligatures:contextual}.CodeMirror-wrap pre.CodeMirror-line,.CodeMirror-wrap pre.CodeMirror-line-like{word-wrap:break-word;white-space:pre-wrap;word-break:normal}.CodeMirror-linebackground{position:absolute;left:0;right:0;top:0;bottom:0;z-index:0}.CodeMirror-linewidget{position:relative;z-index:2;padding:.1px}.CodeMirror-rtl pre{direction:rtl}.CodeMirror-code{outline:none}.CodeMirror-gutter,.CodeMirror-gutters,.CodeMirror-linenumber,.CodeMirror-scroll,.CodeMirror-sizer{box-sizing:initial}.CodeMirror-measure{position:absolute;width:100%;height:0;overflow:hidden;visibility:hidden}.CodeMirror-cursor{position:absolute;pointer-events:none}.CodeMirror-measure pre{position:static}div.CodeMirror-cursors{visibility:hidden;position:relative;z-index:3}.CodeMirror-focused div.CodeMirror-cursors,div.CodeMirror-dragcursors{visibility:visible}.CodeMirror-selected{background:#d9d9d9}.CodeMirror-focused .CodeMirror-selected{background:#d7d4f0}.CodeMirror-crosshair{cursor:crosshair}.CodeMirror-line::selection,.CodeMirror-line>span::selection,.CodeMirror-line>span>span::selection{background:#d7d4f0}.CodeMirror-line::-moz-selection,.CodeMirror-line>span::-moz-selection,.CodeMirror-line>span>span::-moz-selection{background:#d7d4f0}.cm-searching{background-color:#ffa;background-color:#ff06}.cm-force-border{padding-right:.1px}@media print{.CodeMirror div.CodeMirror-cursors{visibility:hidden}}.cm-tab-wrap-hack:after{content:""}span.CodeMirror-selectedtext{background:none}.CodeMirror-lint-markers{width:16px}.CodeMirror-lint-tooltip{background-color:#ffd;border:1px solid #000;border-radius:4px 4px 4px 4px;color:#000;font-family:monospace;font-size:10pt;overflow:hidden;padding:2px 5px;position:fixed;white-space:pre;white-space:pre-wrap;z-index:100;max-width:600px;opacity:0;transition:opacity .4s;-moz-transition:opacity .4s;-webkit-transition:opacity .4s;-o-transition:opacity .4s;-ms-transition:opacity .4s}.CodeMirror-lint-mark{background-position:0 100%;background-repeat:repeat-x}.CodeMirror-lint-mark-warning{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAQAAAADCAYAAAC09K7GAAAAAXNSR0IArs4c6QAAAAZiS0dEAP8A/wD/oL2nkwAAAAlwSFlzAAALEwAACxMBAJqcGAAAAAd0SU1FB9sJFhQXEbhTg7YAAAAZdEVYdENvbW1lbnQAQ3JlYXRlZCB3aXRoIEdJTVBXgQ4XAAAAMklEQVQI12NkgIIvJ3QXMjAwdDN+OaEbysDA4MPAwNDNwMCwiOHLCd1zX07o6kBVGQEAKBANtobskNMAAAAASUVORK5CYII=)}.CodeMirror-lint-mark-error{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAQAAAADCAYAAAC09K7GAAAAAXNSR0IArs4c6QAAAAZiS0dEAP8A/wD/oL2nkwAAAAlwSFlzAAALEwAACxMBAJqcGAAAAAd0SU1FB9sJDw4cOCW1/KIAAAAZdEVYdENvbW1lbnQAQ3JlYXRlZCB3aXRoIEdJTVBXgQ4XAAAAHElEQVQI12NggIL/DAz/GdA5/xkY/qPKMDAwAADLZwf5rvm+LQAAAABJRU5ErkJggg==)}.CodeMirror-lint-marker{background-position:50%;background-repeat:no-repeat;cursor:pointer;display:inline-block;height:16px;width:16px;vertical-align:middle;position:relative}.CodeMirror-lint-message{padding-left:18px;background-position:0 0;background-repeat:no-repeat}.CodeMirror-lint-marker-warning,.CodeMirror-lint-message-warning{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAMAAAAoLQ9TAAAANlBMVEX/uwDvrwD/uwD/uwD/uwD/uwD/uwD/uwD/uwD6twD/uwAAAADurwD2tQD7uAD+ugAAAAD/uwDhmeTRAAAADHRSTlMJ8mN1EYcbmiixgACm7WbuAAAAVklEQVR42n3PUQqAIBBFUU1LLc3u/jdbOJoW1P08DA9Gba8+YWJ6gNJoNYIBzAA2chBth5kLmG9YUoG0NHAUwFXwO9LuBQL1giCQb8gC9Oro2vp5rncCIY8L8uEx5ZkAAAAASUVORK5CYII=)}.CodeMirror-lint-marker-error,.CodeMirror-lint-message-error{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAMAAAAoLQ9TAAAAHlBMVEW7AAC7AACxAAC7AAC7AAAAAAC4AAC5AAD///+7AAAUdclpAAAABnRSTlMXnORSiwCK0ZKSAAAATUlEQVR42mWPOQ7AQAgDuQLx/z8csYRmPRIFIwRGnosRrpamvkKi0FTIiMASR3hhKW+hAN6/tIWhu9PDWiTGNEkTtIOucA5Oyr9ckPgAWm0GPBog6v4AAAAASUVORK5CYII=)}.CodeMirror-lint-marker-multiple{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAcAAAAHCAMAAADzjKfhAAAACVBMVEUAAAAAAAC/v7914kyHAAAAAXRSTlMAQObYZgAAACNJREFUeNo1ioEJAAAIwmz/H90iFFSGJgFMe3gaLZ0od+9/AQZ0ADosbYraAAAAAElFTkSuQmCC);background-repeat:no-repeat;background-position:100% 100%;width:100%;height:100%}.CodeMirror-lint-line-error{background-color:#b74c5114}.CodeMirror-lint-line-warning{background-color:#ffd3001a}.textEditor[data-v-0ca6b553]{height:100%;display:flex;flex-direction:column;border:1px solid #ddd}.sourceCodeEditor[data-v-0ca6b553]{flex-grow:1;height:100%;overflow:hidden}.textEditor.math .cm-operator{margin:0 .2em}.textEditor.markdown .CodeMirror-wrap pre{word-break:break-word}.CodeMirror-placeholder{opacity:.5}.editor.vue-component.tabs.boxed>.tabsBody>.tabContent{overflow:hidden}.vue-component.job h2{display:none}.result .vue-component h3{border-bottom:0;font-size:1.2em}.jobMap{height:300px;max-width:600px}
\ No newline at end of file
+.modal{position:fixed;z-index:1000;left:0;top:0;width:100%;height:100%;background-color:#0006;display:flex;justify-content:center;align-items:center}.modal .modal-container{background-color:#fff;border:1px solid #fff;min-height:50vh;min-width:300px;width:70%;max-height:96%;max-width:96%;display:flex;flex-direction:column;box-shadow:8px 8px 8px 0 #0000004d;resize:both;overflow:hidden}.modal .modal-container.smooth{transition-timing-function:linear;transition-property:width,height;transition-duration:.5s}.modal .modal-header{background-color:#1665b6;color:#fff;margin:0;height:1.5rem;padding:1rem;display:flex;align-items:center;justify-content:space-between;cursor:move}.modal .modal-header h2{display:inline-block;margin:0;margin-left:-.5rem;padding:.5rem;font-size:1.5rem;border:0;cursor:text;text-overflow:ellipsis;overflow:hidden}.modal .modal-content{padding:1rem;overflow:auto;flex-grow:1}.modal .inline .modal-content{padding:0}.modal .modal-footer:empty{display:none}.modal .modal-footer{background-color:#eee;margin:0;padding:1rem;text-align:right}.modal .close{font-size:1.5rem;height:2rem;width:2rem;color:#fff;cursor:pointer;display:flex;justify-content:center;align-items:center}.modal .close:focus,.modal .close:hover{color:red}.vue-component.job .progressBar{background-color:#eee;border:1px solid #ccc;color:#000;height:1.2em;border-radius:.3em}.vue-component.job .progressBar .number{font-size:.8em;padding:.1em .3em;display:inline-block}.vue-component.job .progressBar .completed{background-color:green;width:1px;height:1.2em;color:#fff;display:inline-block;border-radius:.3em}.vue-component.job .progressBar.error .completed{background-color:maroon}.vue-component.model-builder .block .connector{font-size:.9em;margin:.2em 0;white-space:nowrap}.vue-component.model-builder .block .connector.noValue{color:red}.vue-component.model-builder .block .connector.editable .label,.vue-component.model-builder .block .connector.editable .value{cursor:pointer}.vue-component.model-builder .block .connector span[title]{cursor:help}.vue-component.model-builder .block .connector .input{max-width:100%;overflow:hidden;text-overflow:ellipsis}.vue-component.model-builder .block .connector .output{text-align:right}.vue-component.model-builder .block .connector .unspecified{color:red;margin-right:.3em}.vue-component.model-builder .block .connector .circle{width:.8em;height:.8em;margin:0 .2em;border:1px solid #888;background-color:#0000;display:inline-block}.vue-component.model-builder .block .connector .circle.io_active{background-color:#ffc800}.vue-component.model-builder .block .connector .circle.io_selected{background-color:#00c800!important}.vue-component.model-builder .block .connector .circle.io_issues{background-color:red}.vue-component.model-builder.editable .circle{cursor:pointer}.vue-component.model-builder .block{position:absolute;border:2px solid #ccc;margin-left:0;margin-top:0;background-color:#fafafa;opacity:.8;font-size:14px;user-select:none;-moz-user-select:none;-khtml-user-select:none;-webkit-user-select:none;-o-user-select:none;color:#000}.vue-component.model-builder .block .description{display:none;width:200px;padding:3px;border:1px solid #083776;border-radius:5px;color:#001531;background-color:#91bcf6;margin-top:15px;position:absolute;font-weight:400}.vue-component.model-builder .block .blockTitle{display:flex;padding:.3em .1em;font-weight:700;background-color:#ddd;margin-bottom:.1em;cursor:move;font-size:.9em}.vue-component.model-builder .block .blockTitle .blockId{opacity:.4;margin-left:.25em;font-weight:400}.vue-component.model-builder .block .blockTitle .namespace{font-weight:400}.vue-component.model-builder .block .blockTitle .titleText{flex-grow:1;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.vue-component.model-builder .block .blockTitle .blockicon{white-space:nowrap;text-align:center}.vue-component.model-builder .block .blockTitle .blockicon i.fas{min-width:1.4em;cursor:pointer;opacity:.5;margin-left:.1em}.vue-component.model-builder .block .blockTitle .blockicon i.fas:hover{opacity:1}.vue-component.model-builder .block .invalid{color:red;cursor:help}.vue-component.model-builder .block .inout{display:flex}.vue-component.model-builder .block .inputs{flex-grow:1;max-width:100%;overflow:hidden;text-overflow:ellipsis}.vue-component.model-builder .block .editDescription{padding:.3em .2em;box-sizing:border-box;font-size:.9em;line-height:1em;overflow:auto;border:0;border-top:1px dotted #ccc;background-color:#0000;width:100%;max-width:100%;height:3.7em;min-height:2.5em;resize:none}.vue-component.model-builder .block .editDescription:focus{outline:0}.vue-component.model-builder .block_collection{border:2px solid #6b8daf}.vue-component.model-builder .block_collection .blockTitle{background-color:#a3b7cc}.vue-component.model-builder .block_collection .field_id{display:none}.vue-component.model-builder .block_result{border:2px solid #888}.vue-component.model-builder .block_result .field_output .circle{background-color:#888;cursor:auto}.vue-component.model-builder .block_argument{border:2px solid #b28c6b}.vue-component.model-builder .block_argument .blockTitle{background-color:#ccb7a3}.vue-component.model-builder .block_selected{border:2px solid #0a0!important}.vue-component.model-builder .block_selected .blockTitle{background-color:#0c0!important}.vue-component.model-builder .block_invalid{border:2px solid red!important}.vue-component.model-builder{width:100%;height:100%;position:relative}.vue-component.model-builder.editable.focus .blocks{border-color:#1666b64d}.vue-component.model-builder .blocks:focus,.vue-component.model-builder .canvas:focus,.vue-component.model-builder:focus{outline:0}.vue-component.model-builder .canvas{width:100%;height:100%;position:absolute;z-index:1}.vue-component.model-builder .blocks{box-sizing:border-box;border:1px solid #0000;overflow:hidden;position:absolute;z-index:3;width:100%;height:100%}.vue-component.model-builder.compact .blockId,.vue-component.model-builder.compact .blockicon .addDescription,.vue-component.model-builder.compact .blockicon .delete,.vue-component.model-builder.compact .blockicon .info,.vue-component.model-builder.compact .editDescription,.vue-component.model-builder.scale_s .blockicon,.vue-component.model-builder.scale_xs .blockicon,.vue-component.model-builder.scale_xs .connector .text{display:none}.vue-component.model-builder .zoomInfo{position:absolute;top:0;right:0;display:inline-block;padding:.3em;background-color:#f9f9f9;color:#000;border-radius:0 0 0 .3em;z-index:5}.vue-component.model-builder.scale_xs .editDescription{visibility:hidden}.vue-component.search-box{margin:0 1px 1em 0;display:flex;align-items:stretch}.vue-component.search-box .icon,.vue-component.search-box input{font-size:1em;margin:0}.vue-component.search-box input{flex-grow:1;padding:.3em;padding-left:1.9em;z-index:1;border:1px solid #ccc;box-sizing:initial;background-color:#fff;box-sizing:border-box;width:100%;margin-left:-1.3em}.vue-component.search-box .icon{display:flex;align-items:center;-webkit-user-select:none;user-select:none;margin-left:.3em;width:1em;z-index:2}.vue-component.search-box.compact{font-size:.9em;margin-bottom:0}.vue-component.search-box.compact input{padding-top:0;padding-bottom:0}.vue-component.search-box.compact .icon{margin-top:.1em;margin-left:.3em}.vue-component .highlight-box{box-shadow:0 0 0 .2em #c8e1ff}.vue-component code.id{color:maroon}.vue-component abbr{-webkit-text-decoration:underline dotted 1px;text-decoration:underline dotted 1px}.vue-component .unit{opacity:.6}.vue-component .status[data-value=submitted]{color:#000}.vue-component .status[data-value=running]{color:#ff8c00}.vue-component .status[data-value=queued]{color:#00008b}.vue-component .status[data-value=finished]{color:#006400}.vue-component .status[data-value=canceled]{color:#a9a9a9}.vue-component .status[data-value=error]{color:red}.vue-component.inline.process{margin-left:1em}.vue-component.inline h1{font-size:1.17em}.vue-component.inline h2{font-size:1.1em}.vue-component.inline h3{font-size:1.05em}.vue-component.inline h4,.vue-component.inline h5,.vue-component.inline h6{font-size:1em}.vue-component .comma-separated-list{display:inline;list-style:none;padding:0}.vue-component .comma-separated-list li{display:inline;padding:0}.vue-component .comma-separated-list li:after{content:", "}.vue-component .comma-separated-list li:last-child:after{content:""}.vue-component .required{color:red;font-weight:700}.vue-component.message-block{margin:1em 0;padding:.5em}.vue-component.message-block>strong{display:block;margin-bottom:.5em}.vue-component.message-block>p{margin:0}.vue-component .param-name,.vue-component .process-name{color:#369}.vue-component .param-argument,.vue-component .return-value{color:#936}.vue-component .data-type{color:#693}.vue-component .param-optional{font-weight:700}.vue-component .badges{margin:0;padding:0;list-style-type:none;display:inline-block}.vue-component .badges .badge{display:inline-block;font-size:.8em;margin:.25em;padding:.35em .5em .25em .5em;line-height:1em;text-align:center;white-space:nowrap;text-transform:uppercase;vertical-align:initial;border-radius:.5em;color:#fff;background-color:#6c757d}.vue-component .badges:not(.inline){margin-left:-.25em;margin-right:-.25em}.vue-component .badges.small .badge{padding:.25em .35em .2em .35em;font-size:.75em}.vue-component .badges.inline{margin-left:.5em;border-radius:.25em}.vue-component .badges.inline .badge{margin-top:0;margin-bottom:0}.vue-component .badges .badge a{color:#fff;border-bottom:1px dotted #fff;text-decoration:none}.vue-component .badges .badge a.badge-fill{margin:-.35em -.5em;padding:.35em .5em;display:block;border-bottom:0}.vue-component .badges.small .badge a.badge-fill{margin:-.2em -.3em;padding:.25em .35em}.vue-component .badges .badge a:hover{color:#fff;border-bottom-style:solid}.vue-component .badges .default{background-color:#555}.vue-component .badges .green{background-color:green}.vue-component .badges .red{background-color:maroon}.vue-component .badges .option1{background-color:#369}.vue-component .badges .option2{background-color:#693}.vue-component .badges .option3{background-color:#936}.vue-component .badges .option4{background-color:#963}.vue-component .badges .deprecated{background-color:red}.vue-component .badges .experimental{background-color:#8a2be2}.vue-component .badges .action{border:1px solid #000;background-color:#fff;color:#000;margin:.33em;cursor:pointer;text-transform:none}.vue-component .badges .action:hover{background-color:#000;color:#fff}.vue-component .badges .action:hover>a{color:#fff}.vue-component .badges .action>a{color:#000}.vue-component .badges .docker{background-color:#0db7ed}.vue-component .tabular{display:flex;margin:.2em 0;padding:1px}.vue-component .tabular label{flex:1;font-weight:700}.vue-component .tabular .value{flex:3}.vue-component .tabular .value td>div,.vue-component .tabular .value>.formatted>ul,.vue-component .tabular .value>ul,.vue-component .tabular ul.value{max-height:15em;overflow:auto}.vue-component .tabular .value pre{margin:0}.vue-component.stac .map{background:#0000;height:350px}.vue-component.stac .tabular{margin:.5em 0}.vue-component.stac .tabular.wrap{display:block}.vue-component.stac .tabular.wrap .value{margin-top:.5em;margin-left:1em;margin-bottom:.5em}.vue-component.stac .tabular .value ul{padding-left:20px}.assets.empty,.vue-component.stac .links:empty{display:none}.vue-component.stac .thumbnails{overflow-x:auto;overflow-y:hidden;width:100%;white-space:nowrap}.vue-component.stac .thumbnails a{margin:5px;display:inline-block}.vue-component.stac .thumbnails a img{padding:2px;max-height:200px;vertical-align:middle;border:2px solid #0000}.vue-component.stac .thumbnails a:hover img{border:2px solid #00000080}.vue-component .federation>ul>li{margin-bottom:.5em}.vue-component .federation>ul>li>small{display:block}.vue-component .federation>ul>li>h4{margin:0}.vue-component .federation .fed-header{margin:.2em 0}.vue-component .federation .fed-header>.fed-title{display:inline-block;vertical-align:bottom}.search-results h2.heading{font-size:1em;border:0;margin:0;padding:0;margin-bottom:.5em}.search-results .vue-component.searchable-list ul.list>li>summary:before{content:"";margin-left:0;float:none}.search-results .vue-component.searchable-list ul.list>li>summary{margin:0;line-height:inherit}.search-results .vue-component.searchable-list ul.list>li{margin-bottom:0}.discovery-toolbar[data-v-281f64a6]{width:100%;height:100%;display:flex;flex-direction:column;overflow:hidden}.search-results[data-v-281f64a6]{overflow-y:auto;flex-grow:1;margin:.25rem 0 0 0}.search-box[data-v-281f64a6]{margin:1rem 1rem .25rem 1rem}.filters[data-v-281f64a6]{display:flex;justify-content:center;flex-flow:row wrap}.filters .label[data-v-281f64a6],.filters .show-deprecated[data-v-281f64a6],.filters .show-experimental[data-v-281f64a6]{align-content:center;display:inline-block;white-space:nowrap;margin:.25rem;font-size:.9em;cursor:pointer}.filters .label[data-v-281f64a6]{cursor:default}.category[data-v-281f64a6]{margin:.75rem 1rem .5rem 1rem}.category strong[data-v-281f64a6]{cursor:pointer;overflow:hidden;white-space:nowrap}.discovery-entity[data-v-281f64a6]{display:flex;margin:.25em 0;border:1px solid #ddd;border-radius:3px;cursor:pointer;-webkit-user-select:none;user-select:none;font-size:.9em}.discovery-entity strong[data-v-281f64a6]{display:block;font-weight:400;white-space:nowrap;width:100%;overflow:hidden;text-overflow:ellipsis;color:#1665b6}.discovery-entity small[data-v-281f64a6]{margin-top:.25em;display:block}.discovery-entity .discovery-info[data-v-281f64a6]{flex-grow:1;padding:5px;width:100%;overflow:hidden;position:relative}.discovery-entity .discovery-info[data-v-281f64a6]:hover{background-color:#eee}.discovery-entity .discovery-info:hover strong[data-v-281f64a6]{color:#000}.discovery-entity .discovery-button[data-v-281f64a6]{display:block;margin:0;padding:5px;background-color:#fff;color:#aaa;border:0;border-left:1px solid #ddd}.discovery-entity .discovery-button[data-v-281f64a6]:hover{background-color:#eee;color:#000}.discovery-entity .custom-process[data-v-281f64a6]{position:absolute;top:7px;right:5px}.fullscreen{position:absolute!important;top:0!important;left:0!important;width:100%!important;height:100%!important;background-color:#fff;overflow:auto}.visualEditor{background-color:#fff;height:100%;display:flex;flex-direction:column}.visualEditor .vue-component.model-builder{min-height:100px;min-width:100px}.visualEditor .model-overlay{position:absolute;width:100%;height:100%;left:0;top:0;color:#555;z-index:5;padding:1em;overflow:auto;box-sizing:border-box;line-height:1.25em}.visualEditor .model-overlay>h2{font-size:1.2em;text-align:center;border-bottom:0;margin-bottom:.5em;padding:0}.visualEditor .model-overlay>p{margin:.5em 0}.visualEditor .model-overlay>p>ul{margin:.25em 0}.visualEditor .model-overlay>p:first-of-type{margin-top:0}.visualEditor .model-overlay>p:last-of-type{margin-bottom:0}.visualEditor .discoveryToolbar{width:25%;min-width:150px;border-left:1px solid #ddd}.visualEditor .editorSplitter{display:flex;flex-direction:row-reverse;flex-grow:1;height:100%;overflow:hidden}.visualEditor.fullscreen{display:flex;flex-direction:column}.visualEditor.fullscreen .discoveryToolbar{width:15%;min-width:250px}.visualEditor.fullscreen .editorSplitter{height:100%}.graphBuilder{height:100%;flex-grow:1;position:relative}.compactMode{color:green}@keyframes glowing{0%{box-shadow:0 0 3px green}50%{box-shadow:0 0 10px green}to{box-shadow:0 0 3px green}}.highlightFormula{animation:glowing 1.5s infinite}.CodeMirror{font-family:monospace;height:300px;color:#000;direction:ltr}.CodeMirror-lines{padding:4px 0}.CodeMirror pre.CodeMirror-line,.CodeMirror pre.CodeMirror-line-like{padding:0 4px}.CodeMirror-gutter-filler,.CodeMirror-scrollbar-filler{background-color:#fff}.CodeMirror-gutters{border-right:1px solid #ddd;background-color:#f7f7f7;white-space:nowrap}.CodeMirror-linenumber{padding:0 3px 0 5px;min-width:20px;text-align:right;color:#999;white-space:nowrap}.CodeMirror-guttermarker{color:#000}.CodeMirror-guttermarker-subtle{color:#999}.CodeMirror-cursor{border-left:1px solid #000;border-right:none;width:0}.CodeMirror div.CodeMirror-secondarycursor{border-left:1px solid silver}.cm-fat-cursor .CodeMirror-cursor{width:auto;border:0!important;background:#7e7}.cm-fat-cursor div.CodeMirror-cursors{z-index:1}.cm-fat-cursor .CodeMirror-line::selection,.cm-fat-cursor .CodeMirror-line>span::selection,.cm-fat-cursor .CodeMirror-line>span>span::selection{background:#0000}.cm-fat-cursor .CodeMirror-line::-moz-selection,.cm-fat-cursor .CodeMirror-line>span::-moz-selection,.cm-fat-cursor .CodeMirror-line>span>span::-moz-selection{background:#0000}.cm-fat-cursor{caret-color:#0000}@keyframes blink{50%{background-color:initial}}.cm-tab{display:inline-block;text-decoration:inherit}.CodeMirror-rulers{position:absolute;left:0;right:0;top:-50px;bottom:0;overflow:hidden}.CodeMirror-ruler{border-left:1px solid #ccc;top:0;bottom:0;position:absolute}.cm-s-default .cm-header{color:blue}.cm-s-default .cm-quote{color:#090}.cm-negative{color:#d44}.cm-positive{color:#292}.cm-header,.cm-strong{font-weight:700}.cm-em{font-style:italic}.cm-link{text-decoration:underline}.cm-strikethrough{text-decoration:line-through}.cm-s-default .cm-keyword{color:#708}.cm-s-default .cm-atom{color:#219}.cm-s-default .cm-number{color:#164}.cm-s-default .cm-def{color:#00f}.cm-s-default .cm-variable-2{color:#05a}.cm-s-default .cm-type,.cm-s-default .cm-variable-3{color:#085}.cm-s-default .cm-comment{color:#a50}.cm-s-default .cm-string{color:#a11}.cm-s-default .cm-string-2{color:#f50}.cm-s-default .cm-meta,.cm-s-default .cm-qualifier{color:#555}.cm-s-default .cm-builtin{color:#30a}.cm-s-default .cm-bracket{color:#997}.cm-s-default .cm-tag{color:#170}.cm-s-default .cm-attribute{color:#00c}.cm-s-default .cm-hr{color:#999}.cm-s-default .cm-link{color:#00c}.cm-invalidchar,.cm-s-default .cm-error{color:red}.CodeMirror-composing{border-bottom:2px solid}div.CodeMirror span.CodeMirror-matchingbracket{color:#0b0}div.CodeMirror span.CodeMirror-nonmatchingbracket{color:#a22}.CodeMirror-matchingtag{background:#ff96004d}.CodeMirror-activeline-background{background:#e8f2ff}.CodeMirror{position:relative;overflow:hidden;background:#fff}.CodeMirror-scroll{overflow:scroll!important;margin-bottom:-50px;margin-right:-50px;padding-bottom:50px;height:100%;outline:none;position:relative;z-index:0}.CodeMirror-sizer{position:relative;border-right:50px solid #0000}.CodeMirror-gutter-filler,.CodeMirror-hscrollbar,.CodeMirror-scrollbar-filler,.CodeMirror-vscrollbar{position:absolute;z-index:6;display:none;outline:none}.CodeMirror-vscrollbar{right:0;top:0;overflow-x:hidden;overflow-y:scroll}.CodeMirror-hscrollbar{bottom:0;left:0;overflow-y:hidden;overflow-x:scroll}.CodeMirror-scrollbar-filler{right:0;bottom:0}.CodeMirror-gutter-filler{left:0;bottom:0}.CodeMirror-gutters{position:absolute;left:0;top:0;min-height:100%;z-index:3}.CodeMirror-gutter{white-space:normal;height:100%;display:inline-block;vertical-align:top;margin-bottom:-50px}.CodeMirror-gutter-wrapper{position:absolute;z-index:4;background:none!important;border:none!important}.CodeMirror-gutter-background{position:absolute;top:0;bottom:0;z-index:4}.CodeMirror-gutter-elt{position:absolute;cursor:default;z-index:4}.CodeMirror-gutter-wrapper ::selection{background-color:initial}.CodeMirror-gutter-wrapper ::-moz-selection{background-color:initial}.CodeMirror-lines{cursor:text;min-height:1px}.CodeMirror pre.CodeMirror-line,.CodeMirror pre.CodeMirror-line-like{border-radius:0;border-width:0;background:#0000;font-family:inherit;font-size:inherit;margin:0;white-space:pre;word-wrap:normal;line-height:inherit;color:inherit;z-index:2;position:relative;overflow:visible;-webkit-tap-highlight-color:transparent;font-variant-ligatures:contextual}.CodeMirror-wrap pre.CodeMirror-line,.CodeMirror-wrap pre.CodeMirror-line-like{word-wrap:break-word;white-space:pre-wrap;word-break:normal}.CodeMirror-linebackground{position:absolute;left:0;right:0;top:0;bottom:0;z-index:0}.CodeMirror-linewidget{position:relative;z-index:2;padding:.1px}.CodeMirror-rtl pre{direction:rtl}.CodeMirror-code{outline:none}.CodeMirror-gutter,.CodeMirror-gutters,.CodeMirror-linenumber,.CodeMirror-scroll,.CodeMirror-sizer{box-sizing:initial}.CodeMirror-measure{position:absolute;width:100%;height:0;overflow:hidden;visibility:hidden}.CodeMirror-cursor{position:absolute;pointer-events:none}.CodeMirror-measure pre{position:static}div.CodeMirror-cursors{visibility:hidden;position:relative;z-index:3}.CodeMirror-focused div.CodeMirror-cursors,div.CodeMirror-dragcursors{visibility:visible}.CodeMirror-selected{background:#d9d9d9}.CodeMirror-focused .CodeMirror-selected{background:#d7d4f0}.CodeMirror-crosshair{cursor:crosshair}.CodeMirror-line::selection,.CodeMirror-line>span::selection,.CodeMirror-line>span>span::selection{background:#d7d4f0}.CodeMirror-line::-moz-selection,.CodeMirror-line>span::-moz-selection,.CodeMirror-line>span>span::-moz-selection{background:#d7d4f0}.cm-searching{background-color:#ffa;background-color:#ff06}.cm-force-border{padding-right:.1px}@media print{.CodeMirror div.CodeMirror-cursors{visibility:hidden}}.cm-tab-wrap-hack:after{content:""}span.CodeMirror-selectedtext{background:none}.CodeMirror-lint-markers{width:16px}.CodeMirror-lint-tooltip{background-color:#ffd;border:1px solid #000;border-radius:4px 4px 4px 4px;color:#000;font-family:monospace;font-size:10pt;overflow:hidden;padding:2px 5px;position:fixed;white-space:pre;white-space:pre-wrap;z-index:100;max-width:600px;opacity:0;transition:opacity .4s;-moz-transition:opacity .4s;-webkit-transition:opacity .4s;-o-transition:opacity .4s;-ms-transition:opacity .4s}.CodeMirror-lint-mark{background-position:0 100%;background-repeat:repeat-x}.CodeMirror-lint-mark-warning{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAQAAAADCAYAAAC09K7GAAAAAXNSR0IArs4c6QAAAAZiS0dEAP8A/wD/oL2nkwAAAAlwSFlzAAALEwAACxMBAJqcGAAAAAd0SU1FB9sJFhQXEbhTg7YAAAAZdEVYdENvbW1lbnQAQ3JlYXRlZCB3aXRoIEdJTVBXgQ4XAAAAMklEQVQI12NkgIIvJ3QXMjAwdDN+OaEbysDA4MPAwNDNwMCwiOHLCd1zX07o6kBVGQEAKBANtobskNMAAAAASUVORK5CYII=)}.CodeMirror-lint-mark-error{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAQAAAADCAYAAAC09K7GAAAAAXNSR0IArs4c6QAAAAZiS0dEAP8A/wD/oL2nkwAAAAlwSFlzAAALEwAACxMBAJqcGAAAAAd0SU1FB9sJDw4cOCW1/KIAAAAZdEVYdENvbW1lbnQAQ3JlYXRlZCB3aXRoIEdJTVBXgQ4XAAAAHElEQVQI12NggIL/DAz/GdA5/xkY/qPKMDAwAADLZwf5rvm+LQAAAABJRU5ErkJggg==)}.CodeMirror-lint-marker{background-position:50%;background-repeat:no-repeat;cursor:pointer;display:inline-block;height:16px;width:16px;vertical-align:middle;position:relative}.CodeMirror-lint-message{padding-left:18px;background-position:0 0;background-repeat:no-repeat}.CodeMirror-lint-marker-warning,.CodeMirror-lint-message-warning{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAMAAAAoLQ9TAAAANlBMVEX/uwDvrwD/uwD/uwD/uwD/uwD/uwD/uwD/uwD6twD/uwAAAADurwD2tQD7uAD+ugAAAAD/uwDhmeTRAAAADHRSTlMJ8mN1EYcbmiixgACm7WbuAAAAVklEQVR42n3PUQqAIBBFUU1LLc3u/jdbOJoW1P08DA9Gba8+YWJ6gNJoNYIBzAA2chBth5kLmG9YUoG0NHAUwFXwO9LuBQL1giCQb8gC9Oro2vp5rncCIY8L8uEx5ZkAAAAASUVORK5CYII=)}.CodeMirror-lint-marker-error,.CodeMirror-lint-message-error{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAMAAAAoLQ9TAAAAHlBMVEW7AAC7AACxAAC7AAC7AAAAAAC4AAC5AAD///+7AAAUdclpAAAABnRSTlMXnORSiwCK0ZKSAAAATUlEQVR42mWPOQ7AQAgDuQLx/z8csYRmPRIFIwRGnosRrpamvkKi0FTIiMASR3hhKW+hAN6/tIWhu9PDWiTGNEkTtIOucA5Oyr9ckPgAWm0GPBog6v4AAAAASUVORK5CYII=)}.CodeMirror-lint-marker-multiple{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAcAAAAHCAMAAADzjKfhAAAACVBMVEUAAAAAAAC/v7914kyHAAAAAXRSTlMAQObYZgAAACNJREFUeNo1ioEJAAAIwmz/H90iFFSGJgFMe3gaLZ0od+9/AQZ0ADosbYraAAAAAElFTkSuQmCC);background-repeat:no-repeat;background-position:100% 100%;width:100%;height:100%}.CodeMirror-lint-line-error{background-color:#b74c5114}.CodeMirror-lint-line-warning{background-color:#ffd3001a}.textEditor[data-v-0ca6b553]{height:100%;display:flex;flex-direction:column;border:1px solid #ddd}.sourceCodeEditor[data-v-0ca6b553]{flex-grow:1;height:100%;overflow:hidden}.textEditor.math .cm-operator{margin:0 .2em}.textEditor.markdown .CodeMirror-wrap pre{word-break:break-word}.CodeMirror-placeholder{opacity:.5}.editor.vue-component.tabs.boxed>.tabsBody>.tabContent{overflow:hidden}.vue-component.job h2{display:none}.result .vue-component h3{border-bottom:0;font-size:1.2em}.jobMap{height:300px;max-width:600px}
\ No newline at end of file
diff --git a/css/3529.d5c37f0f.css b/css/3529.d5c37f0f.css
new file mode 100644
index 00000000..bd9d35cc
--- /dev/null
+++ b/css/3529.d5c37f0f.css
@@ -0,0 +1 @@
+.vue-component.data-table table{width:100%;border-collapse:collapse}.vue-component.data-table table td,.vue-component.data-table table th{border:1px solid #ddd;padding:.2em}.vue-component.data-table table th{text-align:left!important}.vue-component.data-table table th.sortable{cursor:pointer}.vue-component.data-table table th.sortable:hover{background-color:#eee}.vue-component.data-table table th.sort-asc:after,.vue-component.data-table table th.sortable:after{visibility:hidden;margin-left:5px;font-weight:100;content:"⇑"}.vue-component.data-table table th.sort-asc:after,.vue-component.data-table table th.sortable:hover:after{visibility:visible}.vue-component.data-table table th.sort-desc:after{visibility:visible;margin-left:5px;font-weight:100;content:"⇓"}.vue-component.data-table table th.sort-asc:hover:after,.vue-component.data-table table th.sort-desc:hover:after{visibility:visible;margin-left:5px;font-weight:100;content:"⇕"}.vue-component.data-table .filter-icon{margin-right:3px}.vue-component.data-table .no-results td{text-align:center}.vue-component.data-table .menu{margin-bottom:5px;display:flex;justify-content:space-between}.vue-component.data-table .filter{flex-grow:1;text-align:right;padding-left:1em;min-width:4em;max-width:20em}.vue-component.data-table .filter .edit{cursor:pointer}.vue-component .highlight-box{box-shadow:0 0 0 .2em #c8e1ff}.vue-component code.id{color:maroon}.vue-component abbr{-webkit-text-decoration:underline dotted 1px;text-decoration:underline dotted 1px}.vue-component .unit{opacity:.6}.vue-component .status[data-value=submitted]{color:#000}.vue-component .status[data-value=running]{color:#ff8c00}.vue-component .status[data-value=queued]{color:#00008b}.vue-component .status[data-value=finished]{color:#006400}.vue-component .status[data-value=canceled]{color:#a9a9a9}.vue-component .status[data-value=error]{color:red}.vue-component.inline.process{margin-left:1em}.vue-component.inline h1{font-size:1.17em}.vue-component.inline h2{font-size:1.1em}.vue-component.inline h3{font-size:1.05em}.vue-component.inline h4,.vue-component.inline h5,.vue-component.inline h6{font-size:1em}.vue-component .comma-separated-list{display:inline;list-style:none;padding:0}.vue-component .comma-separated-list li{display:inline;padding:0}.vue-component .comma-separated-list li:after{content:", "}.vue-component .comma-separated-list li:last-child:after{content:""}.vue-component .required{color:red;font-weight:700}.vue-component.message-block{margin:1em 0;padding:.5em}.vue-component.message-block>strong{display:block;margin-bottom:.5em}.vue-component.message-block>p{margin:0}.vue-component .param-name,.vue-component .process-name{color:#369}.vue-component .param-argument,.vue-component .return-value{color:#936}.vue-component .data-type{color:#693}.vue-component .param-optional{font-weight:700}.vue-component .badges{margin:0;padding:0;list-style-type:none;display:inline-block}.vue-component .badges .badge{display:inline-block;font-size:.8em;margin:.25em;padding:.35em .5em .25em .5em;line-height:1em;text-align:center;white-space:nowrap;text-transform:uppercase;vertical-align:initial;border-radius:.5em;color:#fff;background-color:#6c757d}.vue-component .badges:not(.inline){margin-left:-.25em;margin-right:-.25em}.vue-component .badges.small .badge{padding:.25em .35em .2em .35em;font-size:.75em}.vue-component .badges.inline{margin-left:.5em;border-radius:.25em}.vue-component .badges.inline .badge{margin-top:0;margin-bottom:0}.vue-component .badges .badge a{color:#fff;border-bottom:1px dotted #fff;text-decoration:none}.vue-component .badges .badge a.badge-fill{margin:-.35em -.5em;padding:.35em .5em;display:block;border-bottom:0}.vue-component .badges.small .badge a.badge-fill{margin:-.2em -.3em;padding:.25em .35em}.vue-component .badges .badge a:hover{color:#fff;border-bottom-style:solid}.vue-component .badges .default{background-color:#555}.vue-component .badges .green{background-color:green}.vue-component .badges .red{background-color:maroon}.vue-component .badges .option1{background-color:#369}.vue-component .badges .option2{background-color:#693}.vue-component .badges .option3{background-color:#936}.vue-component .badges .option4{background-color:#963}.vue-component .badges .deprecated{background-color:red}.vue-component .badges .experimental{background-color:#8a2be2}.vue-component .badges .action{border:1px solid #000;background-color:#fff;color:#000;margin:.33em;cursor:pointer;text-transform:none}.vue-component .badges .action:hover{background-color:#000;color:#fff}.vue-component .badges .action:hover>a{color:#fff}.vue-component .badges .action>a{color:#000}.vue-component .badges .docker{background-color:#0db7ed}.vue-component .tabular{display:flex;margin:.2em 0;padding:1px}.vue-component .tabular label{flex:1;font-weight:700}.vue-component .tabular .value{flex:3}.vue-component .tabular .value td>div,.vue-component .tabular .value>.formatted>ul,.vue-component .tabular .value>ul,.vue-component .tabular ul.value{max-height:15em;overflow:auto}.vue-component .tabular .value pre{margin:0}.vue-component.stac .map{background:#0000;height:350px}.vue-component.stac .tabular{margin:.5em 0}.vue-component.stac .tabular.wrap{display:block}.vue-component.stac .tabular.wrap .value{margin-top:.5em;margin-left:1em;margin-bottom:.5em}.vue-component.stac .tabular .value ul{padding-left:20px}.assets.empty,.vue-component.stac .links:empty{display:none}.vue-component.stac .thumbnails{overflow-x:auto;overflow-y:hidden;width:100%;white-space:nowrap}.vue-component.stac .thumbnails a{margin:5px;display:inline-block}.vue-component.stac .thumbnails a img{padding:2px;max-height:200px;vertical-align:middle;border:2px solid #0000}.vue-component.stac .thumbnails a:hover img{border:2px solid #00000080}.vue-component .federation>ul>li{margin-bottom:.5em}.vue-component .federation>ul>li>small{display:block}.vue-component .federation>ul>li>h4{margin:0}.vue-component .federation .fed-header{margin:.2em 0}.vue-component .federation .fed-header>.fed-title{display:inline-block;vertical-align:bottom}.CodeMirror{font-family:monospace;height:300px;color:#000;direction:ltr}.CodeMirror-lines{padding:4px 0}.CodeMirror pre.CodeMirror-line,.CodeMirror pre.CodeMirror-line-like{padding:0 4px}.CodeMirror-gutter-filler,.CodeMirror-scrollbar-filler{background-color:#fff}.CodeMirror-gutters{border-right:1px solid #ddd;background-color:#f7f7f7;white-space:nowrap}.CodeMirror-linenumber{padding:0 3px 0 5px;min-width:20px;text-align:right;color:#999;white-space:nowrap}.CodeMirror-guttermarker{color:#000}.CodeMirror-guttermarker-subtle{color:#999}.CodeMirror-cursor{border-left:1px solid #000;border-right:none;width:0}.CodeMirror div.CodeMirror-secondarycursor{border-left:1px solid silver}.cm-fat-cursor .CodeMirror-cursor{width:auto;border:0!important;background:#7e7}.cm-fat-cursor div.CodeMirror-cursors{z-index:1}.cm-fat-cursor .CodeMirror-line::selection,.cm-fat-cursor .CodeMirror-line>span::selection,.cm-fat-cursor .CodeMirror-line>span>span::selection{background:#0000}.cm-fat-cursor .CodeMirror-line::-moz-selection,.cm-fat-cursor .CodeMirror-line>span::-moz-selection,.cm-fat-cursor .CodeMirror-line>span>span::-moz-selection{background:#0000}.cm-fat-cursor{caret-color:#0000}@keyframes blink{50%{background-color:initial}}.cm-tab{display:inline-block;text-decoration:inherit}.CodeMirror-rulers{position:absolute;left:0;right:0;top:-50px;bottom:0;overflow:hidden}.CodeMirror-ruler{border-left:1px solid #ccc;top:0;bottom:0;position:absolute}.cm-s-default .cm-header{color:blue}.cm-s-default .cm-quote{color:#090}.cm-negative{color:#d44}.cm-positive{color:#292}.cm-header,.cm-strong{font-weight:700}.cm-em{font-style:italic}.cm-link{text-decoration:underline}.cm-strikethrough{text-decoration:line-through}.cm-s-default .cm-keyword{color:#708}.cm-s-default .cm-atom{color:#219}.cm-s-default .cm-number{color:#164}.cm-s-default .cm-def{color:#00f}.cm-s-default .cm-variable-2{color:#05a}.cm-s-default .cm-type,.cm-s-default .cm-variable-3{color:#085}.cm-s-default .cm-comment{color:#a50}.cm-s-default .cm-string{color:#a11}.cm-s-default .cm-string-2{color:#f50}.cm-s-default .cm-meta,.cm-s-default .cm-qualifier{color:#555}.cm-s-default .cm-builtin{color:#30a}.cm-s-default .cm-bracket{color:#997}.cm-s-default .cm-tag{color:#170}.cm-s-default .cm-attribute{color:#00c}.cm-s-default .cm-hr{color:#999}.cm-s-default .cm-link{color:#00c}.cm-invalidchar,.cm-s-default .cm-error{color:red}.CodeMirror-composing{border-bottom:2px solid}div.CodeMirror span.CodeMirror-matchingbracket{color:#0b0}div.CodeMirror span.CodeMirror-nonmatchingbracket{color:#a22}.CodeMirror-matchingtag{background:#ff96004d}.CodeMirror-activeline-background{background:#e8f2ff}.CodeMirror{position:relative;overflow:hidden;background:#fff}.CodeMirror-scroll{overflow:scroll!important;margin-bottom:-50px;margin-right:-50px;padding-bottom:50px;height:100%;outline:none;position:relative;z-index:0}.CodeMirror-sizer{position:relative;border-right:50px solid #0000}.CodeMirror-gutter-filler,.CodeMirror-hscrollbar,.CodeMirror-scrollbar-filler,.CodeMirror-vscrollbar{position:absolute;z-index:6;display:none;outline:none}.CodeMirror-vscrollbar{right:0;top:0;overflow-x:hidden;overflow-y:scroll}.CodeMirror-hscrollbar{bottom:0;left:0;overflow-y:hidden;overflow-x:scroll}.CodeMirror-scrollbar-filler{right:0;bottom:0}.CodeMirror-gutter-filler{left:0;bottom:0}.CodeMirror-gutters{position:absolute;left:0;top:0;min-height:100%;z-index:3}.CodeMirror-gutter{white-space:normal;height:100%;display:inline-block;vertical-align:top;margin-bottom:-50px}.CodeMirror-gutter-wrapper{position:absolute;z-index:4;background:none!important;border:none!important}.CodeMirror-gutter-background{position:absolute;top:0;bottom:0;z-index:4}.CodeMirror-gutter-elt{position:absolute;cursor:default;z-index:4}.CodeMirror-gutter-wrapper ::selection{background-color:initial}.CodeMirror-gutter-wrapper ::-moz-selection{background-color:initial}.CodeMirror-lines{cursor:text;min-height:1px}.CodeMirror pre.CodeMirror-line,.CodeMirror pre.CodeMirror-line-like{border-radius:0;border-width:0;background:#0000;font-family:inherit;font-size:inherit;margin:0;white-space:pre;word-wrap:normal;line-height:inherit;color:inherit;z-index:2;position:relative;overflow:visible;-webkit-tap-highlight-color:transparent;font-variant-ligatures:contextual}.CodeMirror-wrap pre.CodeMirror-line,.CodeMirror-wrap pre.CodeMirror-line-like{word-wrap:break-word;white-space:pre-wrap;word-break:normal}.CodeMirror-linebackground{position:absolute;left:0;right:0;top:0;bottom:0;z-index:0}.CodeMirror-linewidget{position:relative;z-index:2;padding:.1px}.CodeMirror-rtl pre{direction:rtl}.CodeMirror-code{outline:none}.CodeMirror-gutter,.CodeMirror-gutters,.CodeMirror-linenumber,.CodeMirror-scroll,.CodeMirror-sizer{box-sizing:initial}.CodeMirror-measure{position:absolute;width:100%;height:0;overflow:hidden;visibility:hidden}.CodeMirror-cursor{position:absolute;pointer-events:none}.CodeMirror-measure pre{position:static}div.CodeMirror-cursors{visibility:hidden;position:relative;z-index:3}.CodeMirror-focused div.CodeMirror-cursors,div.CodeMirror-dragcursors{visibility:visible}.CodeMirror-selected{background:#d9d9d9}.CodeMirror-focused .CodeMirror-selected{background:#d7d4f0}.CodeMirror-crosshair{cursor:crosshair}.CodeMirror-line::selection,.CodeMirror-line>span::selection,.CodeMirror-line>span>span::selection{background:#d7d4f0}.CodeMirror-line::-moz-selection,.CodeMirror-line>span::-moz-selection,.CodeMirror-line>span>span::-moz-selection{background:#d7d4f0}.cm-searching{background-color:#ffa;background-color:#ff06}.cm-force-border{padding-right:.1px}@media print{.CodeMirror div.CodeMirror-cursors{visibility:hidden}}.cm-tab-wrap-hack:after{content:""}span.CodeMirror-selectedtext{background:none}.CodeMirror-lint-markers{width:16px}.CodeMirror-lint-tooltip{background-color:#ffd;border:1px solid #000;border-radius:4px 4px 4px 4px;color:#000;font-family:monospace;font-size:10pt;overflow:hidden;padding:2px 5px;position:fixed;white-space:pre;white-space:pre-wrap;z-index:100;max-width:600px;opacity:0;transition:opacity .4s;-moz-transition:opacity .4s;-webkit-transition:opacity .4s;-o-transition:opacity .4s;-ms-transition:opacity .4s}.CodeMirror-lint-mark{background-position:0 100%;background-repeat:repeat-x}.CodeMirror-lint-mark-warning{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAQAAAADCAYAAAC09K7GAAAAAXNSR0IArs4c6QAAAAZiS0dEAP8A/wD/oL2nkwAAAAlwSFlzAAALEwAACxMBAJqcGAAAAAd0SU1FB9sJFhQXEbhTg7YAAAAZdEVYdENvbW1lbnQAQ3JlYXRlZCB3aXRoIEdJTVBXgQ4XAAAAMklEQVQI12NkgIIvJ3QXMjAwdDN+OaEbysDA4MPAwNDNwMCwiOHLCd1zX07o6kBVGQEAKBANtobskNMAAAAASUVORK5CYII=)}.CodeMirror-lint-mark-error{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAQAAAADCAYAAAC09K7GAAAAAXNSR0IArs4c6QAAAAZiS0dEAP8A/wD/oL2nkwAAAAlwSFlzAAALEwAACxMBAJqcGAAAAAd0SU1FB9sJDw4cOCW1/KIAAAAZdEVYdENvbW1lbnQAQ3JlYXRlZCB3aXRoIEdJTVBXgQ4XAAAAHElEQVQI12NggIL/DAz/GdA5/xkY/qPKMDAwAADLZwf5rvm+LQAAAABJRU5ErkJggg==)}.CodeMirror-lint-marker{background-position:50%;background-repeat:no-repeat;cursor:pointer;display:inline-block;height:16px;width:16px;vertical-align:middle;position:relative}.CodeMirror-lint-message{padding-left:18px;background-position:0 0;background-repeat:no-repeat}.CodeMirror-lint-marker-warning,.CodeMirror-lint-message-warning{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAMAAAAoLQ9TAAAANlBMVEX/uwDvrwD/uwD/uwD/uwD/uwD/uwD/uwD/uwD6twD/uwAAAADurwD2tQD7uAD+ugAAAAD/uwDhmeTRAAAADHRSTlMJ8mN1EYcbmiixgACm7WbuAAAAVklEQVR42n3PUQqAIBBFUU1LLc3u/jdbOJoW1P08DA9Gba8+YWJ6gNJoNYIBzAA2chBth5kLmG9YUoG0NHAUwFXwO9LuBQL1giCQb8gC9Oro2vp5rncCIY8L8uEx5ZkAAAAASUVORK5CYII=)}.CodeMirror-lint-marker-error,.CodeMirror-lint-message-error{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAMAAAAoLQ9TAAAAHlBMVEW7AAC7AACxAAC7AAC7AAAAAAC4AAC5AAD///+7AAAUdclpAAAABnRSTlMXnORSiwCK0ZKSAAAATUlEQVR42mWPOQ7AQAgDuQLx/z8csYRmPRIFIwRGnosRrpamvkKi0FTIiMASR3hhKW+hAN6/tIWhu9PDWiTGNEkTtIOucA5Oyr9ckPgAWm0GPBog6v4AAAAASUVORK5CYII=)}.CodeMirror-lint-marker-multiple{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAcAAAAHCAMAAADzjKfhAAAACVBMVEUAAAAAAAC/v7914kyHAAAAAXRSTlMAQObYZgAAACNJREFUeNo1ioEJAAAIwmz/H90iFFSGJgFMe3gaLZ0od+9/AQZ0ADosbYraAAAAAElFTkSuQmCC);background-repeat:no-repeat;background-position:100% 100%;width:100%;height:100%}.CodeMirror-lint-line-error{background-color:#b74c5114}.CodeMirror-lint-line-warning{background-color:#ffd3001a}
\ No newline at end of file
diff --git a/css/9224.ffc6df07.css b/css/3614.ffc6df07.css
similarity index 100%
rename from css/9224.ffc6df07.css
rename to css/3614.ffc6df07.css
diff --git a/css/1845.3d9c7145.css b/css/4152.6d1bdf91.css
similarity index 74%
rename from css/1845.3d9c7145.css
rename to css/4152.6d1bdf91.css
index bc5f33e7..eda33898 100644
--- a/css/1845.3d9c7145.css
+++ b/css/4152.6d1bdf91.css
@@ -1 +1 @@
-.vue-component .highlight-box{box-shadow:0 0 0 .2em #c8e1ff}.vue-component code.id{color:maroon}.vue-component abbr{-webkit-text-decoration:underline dotted 1px;text-decoration:underline dotted 1px}.vue-component .unit{opacity:.6}.vue-component .status[data-value=submitted]{color:#000}.vue-component .status[data-value=running]{color:#ff8c00}.vue-component .status[data-value=queued]{color:#00008b}.vue-component .status[data-value=finished]{color:#006400}.vue-component .status[data-value=canceled]{color:#a9a9a9}.vue-component .status[data-value=error]{color:red}.vue-component.inline.process{margin-left:1em}.vue-component.inline h1{font-size:1.17em}.vue-component.inline h2{font-size:1.1em}.vue-component.inline h3{font-size:1.05em}.vue-component.inline h4,.vue-component.inline h5,.vue-component.inline h6{font-size:1em}.vue-component .comma-separated-list{display:inline;list-style:none;padding:0}.vue-component .comma-separated-list li{display:inline;padding:0}.vue-component .comma-separated-list li:after{content:", "}.vue-component .comma-separated-list li:last-child:after{content:""}.vue-component .required{color:red;font-weight:700}.vue-component.message-block{margin:1em 0;padding:.5em}.vue-component.message-block>strong{display:block;margin-bottom:.5em}.vue-component.message-block>p{margin:0}.vue-component .param-name,.vue-component .process-name{color:#369}.vue-component .param-argument,.vue-component .return-value{color:#936}.vue-component .data-type{color:#693}.vue-component .param-optional{font-weight:700}.vue-component .badges{margin:0;padding:0;list-style-type:none;display:inline-block}.vue-component .badges .badge{display:inline-block;font-size:.8em;margin:.25em;padding:.35em .5em .25em .5em;line-height:1em;text-align:center;white-space:nowrap;text-transform:uppercase;vertical-align:initial;border-radius:.5em;color:#fff;background-color:#6c757d}.vue-component .badges:not(.inline){margin-left:-.25em;margin-right:-.25em}.vue-component .badges.small .badge{padding:.25em .35em .2em .35em;font-size:.75em}.vue-component .badges.inline{margin-left:.5em;border-radius:.25em}.vue-component .badges.inline .badge{margin-top:0;margin-bottom:0}.vue-component .badges .badge a{color:#fff;border-bottom:1px dotted #fff;text-decoration:none}.vue-component .badges .badge a.badge-fill{margin:-.35em -.5em;padding:.35em .5em;display:block;border-bottom:0}.vue-component .badges.small .badge a.badge-fill{margin:-.2em -.3em;padding:.25em .35em}.vue-component .badges .badge a:hover{color:#fff;border-bottom-style:solid}.vue-component .badges .default{background-color:#555}.vue-component .badges .green{background-color:green}.vue-component .badges .red{background-color:maroon}.vue-component .badges .option1{background-color:#369}.vue-component .badges .option2{background-color:#693}.vue-component .badges .option3{background-color:#936}.vue-component .badges .option4{background-color:#963}.vue-component .badges .deprecated{background-color:red}.vue-component .badges .experimental{background-color:#8a2be2}.vue-component .badges .action{border:1px solid #000;background-color:#fff;color:#000;margin:.33em;cursor:pointer;text-transform:none}.vue-component .badges .action:hover{background-color:#000;color:#fff}.vue-component .badges .action:hover>a{color:#fff}.vue-component .badges .action>a{color:#000}.vue-component .badges .docker{background-color:#0db7ed}.vue-component .tabular{display:flex;margin:.2em 0;padding:1px}.vue-component .tabular label{flex:1;font-weight:700}.vue-component .tabular .value{flex:3}.vue-component .tabular .value td>div,.vue-component .tabular .value>.formatted>ul,.vue-component .tabular .value>ul,.vue-component .tabular ul.value{max-height:15em;overflow:auto}.vue-component .tabular .value pre{margin:0}.vue-component.stac .map{background:#0000;height:350px}.vue-component.stac .tabular{margin:.5em 0}.vue-component.stac .tabular.wrap{display:block}.vue-component.stac .tabular.wrap .value{margin-top:.5em;margin-left:1em;margin-bottom:.5em}.vue-component.stac .tabular .value ul{padding-left:20px}.assets.empty,.vue-component.stac .links:empty{display:none}.vue-component.stac .thumbnails{overflow-x:auto;overflow-y:hidden;width:100%;white-space:nowrap}.vue-component.stac .thumbnails a{margin:5px;display:inline-block}.vue-component.stac .thumbnails a img{padding:2px;max-height:200px;vertical-align:middle;border:2px solid #0000}.vue-component.stac .thumbnails a:hover img{border:2px solid #00000080}.vue-component .federation>ul>li{margin-bottom:.5em}.vue-component .federation>ul>li>small{display:block}.vue-component .federation>ul>li>h4{margin:0}.vue-component .federation .fed-header{margin:.2em 0}.vue-component .federation .fed-header>.fed-title{display:inline-block;vertical-align:bottom}.vue-component.searchable-list.expandable .heading{cursor:pointer;padding-left:1em}.vue-component.searchable-list.expandable .heading:before{content:"▸";margin-left:-1em;float:left;font-size:1em}.vue-component.searchable-list.expandable.expanded .heading:before{content:"▾"}.vue-component.searchable-list .action-bar{width:100%;display:flex;margin-bottom:1em;padding:1px;gap:.5em}.vue-component.searchable-list .action-bar:empty{display:none}.vue-component.searchable-list .action-bar>.search-box{min-width:150px;flex:1;margin:0}.vue-component.searchable-list .action-bar>.deprecated{white-space:nowrap;align-content:center}.vue-component.searchable-list .details{display:none}.vue-component.searchable-list .list .details h2,.vue-component.searchable-list .list .details h3,.vue-component.searchable-list .list .details h4,.vue-component.searchable-list .list .details h5,.vue-component.searchable-list .list .details h6{font-size:1em}.vue-component.searchable-list ul.list{margin-left:0;padding-left:0;list-style-type:none}.vue-component.searchable-list ul.list>li{margin-bottom:.5em}.vue-component.searchable-list ul.list>li>summary{margin-bottom:.5em;margin-left:1em;line-height:1.33em}.vue-component.searchable-list ul.list>li>summary strong{display:block;text-overflow:ellipsis;overflow:hidden}.vue-component.searchable-list ul.list>li>summary strong .copy{display:none}.vue-component.searchable-list ul.list>li>summary strong.inline{display:inline}.vue-component.searchable-list ul.list>li>summary.experimental strong{color:#8a2be2}.vue-component.searchable-list ul.list>li>summary.deprecated strong{text-decoration:line-through}.vue-component.searchable-list ul.list>li>summary:before{content:"▸";margin-left:-1em;float:left;font-size:1em}.vue-component.searchable-list ul.list>li>summary .badges.block{display:block}.vue-component.searchable-list ul.expandable>li>summary{cursor:pointer}.vue-component.searchable-list ul.expandable>li>summary:hover strong .copy{display:inline-block!important}.vue-component.searchable-list ul.expandable>li.expanded{margin-bottom:2em}.vue-component.searchable-list ul.expandable>li.expanded .details{display:block;margin-left:1em}.vue-component.searchable-list ul.expandable>li.expanded>summary:before{content:"▾"}.vue-component.searchable-list ul.expandable>li.expanded>summary .hideOnExpand{display:none}
\ No newline at end of file
+.vue-component .highlight-box{box-shadow:0 0 0 .2em #c8e1ff}.vue-component code.id{color:maroon}.vue-component abbr{-webkit-text-decoration:underline dotted 1px;text-decoration:underline dotted 1px}.vue-component .unit{opacity:.6}.vue-component .status[data-value=submitted]{color:#000}.vue-component .status[data-value=running]{color:#ff8c00}.vue-component .status[data-value=queued]{color:#00008b}.vue-component .status[data-value=finished]{color:#006400}.vue-component .status[data-value=canceled]{color:#a9a9a9}.vue-component .status[data-value=error]{color:red}.vue-component.inline.process{margin-left:1em}.vue-component.inline h1{font-size:1.17em}.vue-component.inline h2{font-size:1.1em}.vue-component.inline h3{font-size:1.05em}.vue-component.inline h4,.vue-component.inline h5,.vue-component.inline h6{font-size:1em}.vue-component .comma-separated-list{display:inline;list-style:none;padding:0}.vue-component .comma-separated-list li{display:inline;padding:0}.vue-component .comma-separated-list li:after{content:", "}.vue-component .comma-separated-list li:last-child:after{content:""}.vue-component .required{color:red;font-weight:700}.vue-component.message-block{margin:1em 0;padding:.5em}.vue-component.message-block>strong{display:block;margin-bottom:.5em}.vue-component.message-block>p{margin:0}.vue-component .param-name,.vue-component .process-name{color:#369}.vue-component .param-argument,.vue-component .return-value{color:#936}.vue-component .data-type{color:#693}.vue-component .param-optional{font-weight:700}.vue-component .badges{margin:0;padding:0;list-style-type:none;display:inline-block}.vue-component .badges .badge{display:inline-block;font-size:.8em;margin:.25em;padding:.35em .5em .25em .5em;line-height:1em;text-align:center;white-space:nowrap;text-transform:uppercase;vertical-align:initial;border-radius:.5em;color:#fff;background-color:#6c757d}.vue-component .badges:not(.inline){margin-left:-.25em;margin-right:-.25em}.vue-component .badges.small .badge{padding:.25em .35em .2em .35em;font-size:.75em}.vue-component .badges.inline{margin-left:.5em;border-radius:.25em}.vue-component .badges.inline .badge{margin-top:0;margin-bottom:0}.vue-component .badges .badge a{color:#fff;border-bottom:1px dotted #fff;text-decoration:none}.vue-component .badges .badge a.badge-fill{margin:-.35em -.5em;padding:.35em .5em;display:block;border-bottom:0}.vue-component .badges.small .badge a.badge-fill{margin:-.2em -.3em;padding:.25em .35em}.vue-component .badges .badge a:hover{color:#fff;border-bottom-style:solid}.vue-component .badges .default{background-color:#555}.vue-component .badges .green{background-color:green}.vue-component .badges .red{background-color:maroon}.vue-component .badges .option1{background-color:#369}.vue-component .badges .option2{background-color:#693}.vue-component .badges .option3{background-color:#936}.vue-component .badges .option4{background-color:#963}.vue-component .badges .deprecated{background-color:red}.vue-component .badges .experimental{background-color:#8a2be2}.vue-component .badges .action{border:1px solid #000;background-color:#fff;color:#000;margin:.33em;cursor:pointer;text-transform:none}.vue-component .badges .action:hover{background-color:#000;color:#fff}.vue-component .badges .action:hover>a{color:#fff}.vue-component .badges .action>a{color:#000}.vue-component .badges .docker{background-color:#0db7ed}.vue-component .tabular{display:flex;margin:.2em 0;padding:1px}.vue-component .tabular label{flex:1;font-weight:700}.vue-component .tabular .value{flex:3}.vue-component .tabular .value td>div,.vue-component .tabular .value>.formatted>ul,.vue-component .tabular .value>ul,.vue-component .tabular ul.value{max-height:15em;overflow:auto}.vue-component .tabular .value pre{margin:0}.vue-component.stac .map{background:#0000;height:350px}.vue-component.stac .tabular{margin:.5em 0}.vue-component.stac .tabular.wrap{display:block}.vue-component.stac .tabular.wrap .value{margin-top:.5em;margin-left:1em;margin-bottom:.5em}.vue-component.stac .tabular .value ul{padding-left:20px}.assets.empty,.vue-component.stac .links:empty{display:none}.vue-component.stac .thumbnails{overflow-x:auto;overflow-y:hidden;width:100%;white-space:nowrap}.vue-component.stac .thumbnails a{margin:5px;display:inline-block}.vue-component.stac .thumbnails a img{padding:2px;max-height:200px;vertical-align:middle;border:2px solid #0000}.vue-component.stac .thumbnails a:hover img{border:2px solid #00000080}.vue-component .federation>ul>li{margin-bottom:.5em}.vue-component .federation>ul>li>small{display:block}.vue-component .federation>ul>li>h4{margin:0}.vue-component .federation .fed-header{margin:.2em 0}.vue-component .federation .fed-header>.fed-title{display:inline-block;vertical-align:bottom}.vue-component.searchable-list.expandable .heading{cursor:pointer;padding-left:1em}.vue-component.searchable-list.expandable .heading:before{content:"▸";margin-left:-1em;float:left;font-size:1em}.vue-component.searchable-list.expandable.expanded .heading:before{content:"▾"}.vue-component.searchable-list .action-bar{width:100%;display:flex;margin-bottom:1em;padding:1px;gap:.5em}.vue-component.searchable-list .action-bar:empty{display:none}.vue-component.searchable-list .action-bar>.search-box{min-width:150px;flex:1;margin:0}.vue-component.searchable-list .action-bar>.deprecated,.vue-component.searchable-list .action-bar>.experimental{white-space:nowrap;align-content:center}.vue-component.searchable-list .details{display:none}.vue-component.searchable-list .list .details h2,.vue-component.searchable-list .list .details h3,.vue-component.searchable-list .list .details h4,.vue-component.searchable-list .list .details h5,.vue-component.searchable-list .list .details h6{font-size:1em}.vue-component.searchable-list ul.list{margin-left:0;padding-left:0;list-style-type:none}.vue-component.searchable-list ul.list>li{margin-bottom:.5em}.vue-component.searchable-list ul.list>li>summary{margin-bottom:.5em;margin-left:1em;line-height:1.33em}.vue-component.searchable-list ul.list>li>summary strong{display:block;text-overflow:ellipsis;overflow:hidden}.vue-component.searchable-list ul.list>li>summary strong .copy{display:none}.vue-component.searchable-list ul.list>li>summary strong.inline{display:inline}.vue-component.searchable-list ul.list>li>summary.experimental strong{color:#8a2be2}.vue-component.searchable-list ul.list>li>summary.deprecated strong{text-decoration:line-through}.vue-component.searchable-list ul.list>li>summary:before{content:"▸";margin-left:-1em;float:left;font-size:1em}.vue-component.searchable-list ul.list>li>summary .badges.block{display:block}.vue-component.searchable-list ul.expandable>li>summary{cursor:pointer}.vue-component.searchable-list ul.expandable>li>summary:hover strong .copy{display:inline-block!important}.vue-component.searchable-list ul.expandable>li.expanded{margin-bottom:2em}.vue-component.searchable-list ul.expandable>li.expanded .details{display:block;margin-left:1em}.vue-component.searchable-list ul.expandable>li.expanded>summary:before{content:"▾"}.vue-component.searchable-list ul.expandable>li.expanded>summary .hideOnExpand{display:none}
\ No newline at end of file
diff --git a/css/5457.aed6dc3f.css b/css/5457.aed6dc3f.css
new file mode 100644
index 00000000..2dda3c66
--- /dev/null
+++ b/css/5457.aed6dc3f.css
@@ -0,0 +1 @@
+.vue-component.model-builder .block .connector{font-size:.9em;margin:.2em 0;white-space:nowrap}.vue-component.model-builder .block .connector.noValue{color:red}.vue-component.model-builder .block .connector.editable .label,.vue-component.model-builder .block .connector.editable .value{cursor:pointer}.vue-component.model-builder .block .connector span[title]{cursor:help}.vue-component.model-builder .block .connector .input{max-width:100%;overflow:hidden;text-overflow:ellipsis}.vue-component.model-builder .block .connector .output{text-align:right}.vue-component.model-builder .block .connector .unspecified{color:red;margin-right:.3em}.vue-component.model-builder .block .connector .circle{width:.8em;height:.8em;margin:0 .2em;border:1px solid #888;background-color:#0000;display:inline-block}.vue-component.model-builder .block .connector .circle.io_active{background-color:#ffc800}.vue-component.model-builder .block .connector .circle.io_selected{background-color:#00c800!important}.vue-component.model-builder .block .connector .circle.io_issues{background-color:red}.vue-component.model-builder.editable .circle{cursor:pointer}.vue-component.model-builder .block{position:absolute;border:2px solid #ccc;margin-left:0;margin-top:0;background-color:#fafafa;opacity:.8;font-size:14px;user-select:none;-moz-user-select:none;-khtml-user-select:none;-webkit-user-select:none;-o-user-select:none;color:#000}.vue-component.model-builder .block .description{display:none;width:200px;padding:3px;border:1px solid #083776;border-radius:5px;color:#001531;background-color:#91bcf6;margin-top:15px;position:absolute;font-weight:400}.vue-component.model-builder .block .blockTitle{display:flex;padding:.3em .1em;font-weight:700;background-color:#ddd;margin-bottom:.1em;cursor:move;font-size:.9em}.vue-component.model-builder .block .blockTitle .blockId{opacity:.4;margin-left:.25em;font-weight:400}.vue-component.model-builder .block .blockTitle .namespace{font-weight:400}.vue-component.model-builder .block .blockTitle .titleText{flex-grow:1;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.vue-component.model-builder .block .blockTitle .blockicon{white-space:nowrap;text-align:center}.vue-component.model-builder .block .blockTitle .blockicon i.fas{min-width:1.4em;cursor:pointer;opacity:.5;margin-left:.1em}.vue-component.model-builder .block .blockTitle .blockicon i.fas:hover{opacity:1}.vue-component.model-builder .block .invalid{color:red;cursor:help}.vue-component.model-builder .block .inout{display:flex}.vue-component.model-builder .block .inputs{flex-grow:1;max-width:100%;overflow:hidden;text-overflow:ellipsis}.vue-component.model-builder .block .editDescription{padding:.3em .2em;box-sizing:border-box;font-size:.9em;line-height:1em;overflow:auto;border:0;border-top:1px dotted #ccc;background-color:#0000;width:100%;max-width:100%;height:3.7em;min-height:2.5em;resize:none}.vue-component.model-builder .block .editDescription:focus{outline:0}.vue-component.model-builder .block_collection{border:2px solid #6b8daf}.vue-component.model-builder .block_collection .blockTitle{background-color:#a3b7cc}.vue-component.model-builder .block_collection .field_id{display:none}.vue-component.model-builder .block_result{border:2px solid #888}.vue-component.model-builder .block_result .field_output .circle{background-color:#888;cursor:auto}.vue-component.model-builder .block_argument{border:2px solid #b28c6b}.vue-component.model-builder .block_argument .blockTitle{background-color:#ccb7a3}.vue-component.model-builder .block_selected{border:2px solid #0a0!important}.vue-component.model-builder .block_selected .blockTitle{background-color:#0c0!important}.vue-component.model-builder .block_invalid{border:2px solid red!important}.vue-component.model-builder{width:100%;height:100%;position:relative}.vue-component.model-builder.editable.focus .blocks{border-color:#1666b64d}.vue-component.model-builder .blocks:focus,.vue-component.model-builder .canvas:focus,.vue-component.model-builder:focus{outline:0}.vue-component.model-builder .canvas{width:100%;height:100%;position:absolute;z-index:1}.vue-component.model-builder .blocks{box-sizing:border-box;border:1px solid #0000;overflow:hidden;position:absolute;z-index:3;width:100%;height:100%}.vue-component.model-builder.compact .blockId,.vue-component.model-builder.compact .blockicon .addDescription,.vue-component.model-builder.compact .blockicon .delete,.vue-component.model-builder.compact .blockicon .info,.vue-component.model-builder.compact .editDescription,.vue-component.model-builder.scale_s .blockicon,.vue-component.model-builder.scale_xs .blockicon,.vue-component.model-builder.scale_xs .connector .text{display:none}.vue-component.model-builder .zoomInfo{position:absolute;top:0;right:0;display:inline-block;padding:.3em;background-color:#f9f9f9;color:#000;border-radius:0 0 0 .3em;z-index:5}.vue-component.model-builder.scale_xs .editDescription{visibility:hidden}.vue-component.search-box{margin:0 1px 1em 0;display:flex;align-items:stretch}.vue-component.search-box .icon,.vue-component.search-box input{font-size:1em;margin:0}.vue-component.search-box input{flex-grow:1;padding:.3em;padding-left:1.9em;z-index:1;border:1px solid #ccc;box-sizing:initial;background-color:#fff;box-sizing:border-box;width:100%;margin-left:-1.3em}.vue-component.search-box .icon{display:flex;align-items:center;-webkit-user-select:none;user-select:none;margin-left:.3em;width:1em;z-index:2}.vue-component.search-box.compact{font-size:.9em;margin-bottom:0}.vue-component.search-box.compact input{padding-top:0;padding-bottom:0}.vue-component.search-box.compact .icon{margin-top:.1em;margin-left:.3em}.search-results h2.heading{font-size:1em;border:0;margin:0;padding:0;margin-bottom:.5em}.search-results .vue-component.searchable-list ul.list>li>summary:before{content:"";margin-left:0;float:none}.search-results .vue-component.searchable-list ul.list>li>summary{margin:0;line-height:inherit}.search-results .vue-component.searchable-list ul.list>li{margin-bottom:0}.discovery-toolbar[data-v-281f64a6]{width:100%;height:100%;display:flex;flex-direction:column;overflow:hidden}.search-results[data-v-281f64a6]{overflow-y:auto;flex-grow:1;margin:.25rem 0 0 0}.search-box[data-v-281f64a6]{margin:1rem 1rem .25rem 1rem}.filters[data-v-281f64a6]{display:flex;justify-content:center;flex-flow:row wrap}.filters .label[data-v-281f64a6],.filters .show-deprecated[data-v-281f64a6],.filters .show-experimental[data-v-281f64a6]{align-content:center;display:inline-block;white-space:nowrap;margin:.25rem;font-size:.9em;cursor:pointer}.filters .label[data-v-281f64a6]{cursor:default}.category[data-v-281f64a6]{margin:.75rem 1rem .5rem 1rem}.category strong[data-v-281f64a6]{cursor:pointer;overflow:hidden;white-space:nowrap}.discovery-entity[data-v-281f64a6]{display:flex;margin:.25em 0;border:1px solid #ddd;border-radius:3px;cursor:pointer;-webkit-user-select:none;user-select:none;font-size:.9em}.discovery-entity strong[data-v-281f64a6]{display:block;font-weight:400;white-space:nowrap;width:100%;overflow:hidden;text-overflow:ellipsis;color:#1665b6}.discovery-entity small[data-v-281f64a6]{margin-top:.25em;display:block}.discovery-entity .discovery-info[data-v-281f64a6]{flex-grow:1;padding:5px;width:100%;overflow:hidden;position:relative}.discovery-entity .discovery-info[data-v-281f64a6]:hover{background-color:#eee}.discovery-entity .discovery-info:hover strong[data-v-281f64a6]{color:#000}.discovery-entity .discovery-button[data-v-281f64a6]{display:block;margin:0;padding:5px;background-color:#fff;color:#aaa;border:0;border-left:1px solid #ddd}.discovery-entity .discovery-button[data-v-281f64a6]:hover{background-color:#eee;color:#000}.discovery-entity .custom-process[data-v-281f64a6]{position:absolute;top:7px;right:5px}.fullscreen{position:absolute!important;top:0!important;left:0!important;width:100%!important;height:100%!important;background-color:#fff;overflow:auto}.visualEditor{background-color:#fff;height:100%;display:flex;flex-direction:column}.visualEditor .vue-component.model-builder{min-height:100px;min-width:100px}.visualEditor .model-overlay{position:absolute;width:100%;height:100%;left:0;top:0;color:#555;z-index:5;padding:1em;overflow:auto;box-sizing:border-box;line-height:1.25em}.visualEditor .model-overlay>h2{font-size:1.2em;text-align:center;border-bottom:0;margin-bottom:.5em;padding:0}.visualEditor .model-overlay>p{margin:.5em 0}.visualEditor .model-overlay>p>ul{margin:.25em 0}.visualEditor .model-overlay>p:first-of-type{margin-top:0}.visualEditor .model-overlay>p:last-of-type{margin-bottom:0}.visualEditor .discoveryToolbar{width:25%;min-width:150px;border-left:1px solid #ddd}.visualEditor .editorSplitter{display:flex;flex-direction:row-reverse;flex-grow:1;height:100%;overflow:hidden}.visualEditor.fullscreen{display:flex;flex-direction:column}.visualEditor.fullscreen .discoveryToolbar{width:15%;min-width:250px}.visualEditor.fullscreen .editorSplitter{height:100%}.graphBuilder{height:100%;flex-grow:1;position:relative}.compactMode{color:green}@keyframes glowing{0%{box-shadow:0 0 3px green}50%{box-shadow:0 0 10px green}to{box-shadow:0 0 3px green}}.highlightFormula{animation:glowing 1.5s infinite}.CodeMirror{font-family:monospace;height:300px;color:#000;direction:ltr}.CodeMirror-lines{padding:4px 0}.CodeMirror pre.CodeMirror-line,.CodeMirror pre.CodeMirror-line-like{padding:0 4px}.CodeMirror-gutter-filler,.CodeMirror-scrollbar-filler{background-color:#fff}.CodeMirror-gutters{border-right:1px solid #ddd;background-color:#f7f7f7;white-space:nowrap}.CodeMirror-linenumber{padding:0 3px 0 5px;min-width:20px;text-align:right;color:#999;white-space:nowrap}.CodeMirror-guttermarker{color:#000}.CodeMirror-guttermarker-subtle{color:#999}.CodeMirror-cursor{border-left:1px solid #000;border-right:none;width:0}.CodeMirror div.CodeMirror-secondarycursor{border-left:1px solid silver}.cm-fat-cursor .CodeMirror-cursor{width:auto;border:0!important;background:#7e7}.cm-fat-cursor div.CodeMirror-cursors{z-index:1}.cm-fat-cursor .CodeMirror-line::selection,.cm-fat-cursor .CodeMirror-line>span::selection,.cm-fat-cursor .CodeMirror-line>span>span::selection{background:#0000}.cm-fat-cursor .CodeMirror-line::-moz-selection,.cm-fat-cursor .CodeMirror-line>span::-moz-selection,.cm-fat-cursor .CodeMirror-line>span>span::-moz-selection{background:#0000}.cm-fat-cursor{caret-color:#0000}@keyframes blink{50%{background-color:initial}}.cm-tab{display:inline-block;text-decoration:inherit}.CodeMirror-rulers{position:absolute;left:0;right:0;top:-50px;bottom:0;overflow:hidden}.CodeMirror-ruler{border-left:1px solid #ccc;top:0;bottom:0;position:absolute}.cm-s-default .cm-header{color:blue}.cm-s-default .cm-quote{color:#090}.cm-negative{color:#d44}.cm-positive{color:#292}.cm-header,.cm-strong{font-weight:700}.cm-em{font-style:italic}.cm-link{text-decoration:underline}.cm-strikethrough{text-decoration:line-through}.cm-s-default .cm-keyword{color:#708}.cm-s-default .cm-atom{color:#219}.cm-s-default .cm-number{color:#164}.cm-s-default .cm-def{color:#00f}.cm-s-default .cm-variable-2{color:#05a}.cm-s-default .cm-type,.cm-s-default .cm-variable-3{color:#085}.cm-s-default .cm-comment{color:#a50}.cm-s-default .cm-string{color:#a11}.cm-s-default .cm-string-2{color:#f50}.cm-s-default .cm-meta,.cm-s-default .cm-qualifier{color:#555}.cm-s-default .cm-builtin{color:#30a}.cm-s-default .cm-bracket{color:#997}.cm-s-default .cm-tag{color:#170}.cm-s-default .cm-attribute{color:#00c}.cm-s-default .cm-hr{color:#999}.cm-s-default .cm-link{color:#00c}.cm-invalidchar,.cm-s-default .cm-error{color:red}.CodeMirror-composing{border-bottom:2px solid}div.CodeMirror span.CodeMirror-matchingbracket{color:#0b0}div.CodeMirror span.CodeMirror-nonmatchingbracket{color:#a22}.CodeMirror-matchingtag{background:#ff96004d}.CodeMirror-activeline-background{background:#e8f2ff}.CodeMirror{position:relative;overflow:hidden;background:#fff}.CodeMirror-scroll{overflow:scroll!important;margin-bottom:-50px;margin-right:-50px;padding-bottom:50px;height:100%;outline:none;position:relative;z-index:0}.CodeMirror-sizer{position:relative;border-right:50px solid #0000}.CodeMirror-gutter-filler,.CodeMirror-hscrollbar,.CodeMirror-scrollbar-filler,.CodeMirror-vscrollbar{position:absolute;z-index:6;display:none;outline:none}.CodeMirror-vscrollbar{right:0;top:0;overflow-x:hidden;overflow-y:scroll}.CodeMirror-hscrollbar{bottom:0;left:0;overflow-y:hidden;overflow-x:scroll}.CodeMirror-scrollbar-filler{right:0;bottom:0}.CodeMirror-gutter-filler{left:0;bottom:0}.CodeMirror-gutters{position:absolute;left:0;top:0;min-height:100%;z-index:3}.CodeMirror-gutter{white-space:normal;height:100%;display:inline-block;vertical-align:top;margin-bottom:-50px}.CodeMirror-gutter-wrapper{position:absolute;z-index:4;background:none!important;border:none!important}.CodeMirror-gutter-background{position:absolute;top:0;bottom:0;z-index:4}.CodeMirror-gutter-elt{position:absolute;cursor:default;z-index:4}.CodeMirror-gutter-wrapper ::selection{background-color:initial}.CodeMirror-gutter-wrapper ::-moz-selection{background-color:initial}.CodeMirror-lines{cursor:text;min-height:1px}.CodeMirror pre.CodeMirror-line,.CodeMirror pre.CodeMirror-line-like{border-radius:0;border-width:0;background:#0000;font-family:inherit;font-size:inherit;margin:0;white-space:pre;word-wrap:normal;line-height:inherit;color:inherit;z-index:2;position:relative;overflow:visible;-webkit-tap-highlight-color:transparent;font-variant-ligatures:contextual}.CodeMirror-wrap pre.CodeMirror-line,.CodeMirror-wrap pre.CodeMirror-line-like{word-wrap:break-word;white-space:pre-wrap;word-break:normal}.CodeMirror-linebackground{position:absolute;left:0;right:0;top:0;bottom:0;z-index:0}.CodeMirror-linewidget{position:relative;z-index:2;padding:.1px}.CodeMirror-rtl pre{direction:rtl}.CodeMirror-code{outline:none}.CodeMirror-gutter,.CodeMirror-gutters,.CodeMirror-linenumber,.CodeMirror-scroll,.CodeMirror-sizer{box-sizing:initial}.CodeMirror-measure{position:absolute;width:100%;height:0;overflow:hidden;visibility:hidden}.CodeMirror-cursor{position:absolute;pointer-events:none}.CodeMirror-measure pre{position:static}div.CodeMirror-cursors{visibility:hidden;position:relative;z-index:3}.CodeMirror-focused div.CodeMirror-cursors,div.CodeMirror-dragcursors{visibility:visible}.CodeMirror-selected{background:#d9d9d9}.CodeMirror-focused .CodeMirror-selected{background:#d7d4f0}.CodeMirror-crosshair{cursor:crosshair}.CodeMirror-line::selection,.CodeMirror-line>span::selection,.CodeMirror-line>span>span::selection{background:#d7d4f0}.CodeMirror-line::-moz-selection,.CodeMirror-line>span::-moz-selection,.CodeMirror-line>span>span::-moz-selection{background:#d7d4f0}.cm-searching{background-color:#ffa;background-color:#ff06}.cm-force-border{padding-right:.1px}@media print{.CodeMirror div.CodeMirror-cursors{visibility:hidden}}.cm-tab-wrap-hack:after{content:""}span.CodeMirror-selectedtext{background:none}.CodeMirror-lint-markers{width:16px}.CodeMirror-lint-tooltip{background-color:#ffd;border:1px solid #000;border-radius:4px 4px 4px 4px;color:#000;font-family:monospace;font-size:10pt;overflow:hidden;padding:2px 5px;position:fixed;white-space:pre;white-space:pre-wrap;z-index:100;max-width:600px;opacity:0;transition:opacity .4s;-moz-transition:opacity .4s;-webkit-transition:opacity .4s;-o-transition:opacity .4s;-ms-transition:opacity .4s}.CodeMirror-lint-mark{background-position:0 100%;background-repeat:repeat-x}.CodeMirror-lint-mark-warning{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAQAAAADCAYAAAC09K7GAAAAAXNSR0IArs4c6QAAAAZiS0dEAP8A/wD/oL2nkwAAAAlwSFlzAAALEwAACxMBAJqcGAAAAAd0SU1FB9sJFhQXEbhTg7YAAAAZdEVYdENvbW1lbnQAQ3JlYXRlZCB3aXRoIEdJTVBXgQ4XAAAAMklEQVQI12NkgIIvJ3QXMjAwdDN+OaEbysDA4MPAwNDNwMCwiOHLCd1zX07o6kBVGQEAKBANtobskNMAAAAASUVORK5CYII=)}.CodeMirror-lint-mark-error{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAQAAAADCAYAAAC09K7GAAAAAXNSR0IArs4c6QAAAAZiS0dEAP8A/wD/oL2nkwAAAAlwSFlzAAALEwAACxMBAJqcGAAAAAd0SU1FB9sJDw4cOCW1/KIAAAAZdEVYdENvbW1lbnQAQ3JlYXRlZCB3aXRoIEdJTVBXgQ4XAAAAHElEQVQI12NggIL/DAz/GdA5/xkY/qPKMDAwAADLZwf5rvm+LQAAAABJRU5ErkJggg==)}.CodeMirror-lint-marker{background-position:50%;background-repeat:no-repeat;cursor:pointer;display:inline-block;height:16px;width:16px;vertical-align:middle;position:relative}.CodeMirror-lint-message{padding-left:18px;background-position:0 0;background-repeat:no-repeat}.CodeMirror-lint-marker-warning,.CodeMirror-lint-message-warning{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAMAAAAoLQ9TAAAANlBMVEX/uwDvrwD/uwD/uwD/uwD/uwD/uwD/uwD/uwD6twD/uwAAAADurwD2tQD7uAD+ugAAAAD/uwDhmeTRAAAADHRSTlMJ8mN1EYcbmiixgACm7WbuAAAAVklEQVR42n3PUQqAIBBFUU1LLc3u/jdbOJoW1P08DA9Gba8+YWJ6gNJoNYIBzAA2chBth5kLmG9YUoG0NHAUwFXwO9LuBQL1giCQb8gC9Oro2vp5rncCIY8L8uEx5ZkAAAAASUVORK5CYII=)}.CodeMirror-lint-marker-error,.CodeMirror-lint-message-error{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAMAAAAoLQ9TAAAAHlBMVEW7AAC7AACxAAC7AAC7AAAAAAC4AAC5AAD///+7AAAUdclpAAAABnRSTlMXnORSiwCK0ZKSAAAATUlEQVR42mWPOQ7AQAgDuQLx/z8csYRmPRIFIwRGnosRrpamvkKi0FTIiMASR3hhKW+hAN6/tIWhu9PDWiTGNEkTtIOucA5Oyr9ckPgAWm0GPBog6v4AAAAASUVORK5CYII=)}.CodeMirror-lint-marker-multiple{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAcAAAAHCAMAAADzjKfhAAAACVBMVEUAAAAAAAC/v7914kyHAAAAAXRSTlMAQObYZgAAACNJREFUeNo1ioEJAAAIwmz/H90iFFSGJgFMe3gaLZ0od+9/AQZ0ADosbYraAAAAAElFTkSuQmCC);background-repeat:no-repeat;background-position:100% 100%;width:100%;height:100%}.CodeMirror-lint-line-error{background-color:#b74c5114}.CodeMirror-lint-line-warning{background-color:#ffd3001a}.textEditor[data-v-0ca6b553]{height:100%;display:flex;flex-direction:column;border:1px solid #ddd}.sourceCodeEditor[data-v-0ca6b553]{flex-grow:1;height:100%;overflow:hidden}.textEditor.math .cm-operator{margin:0 .2em}.textEditor.markdown .CodeMirror-wrap pre{word-break:break-word}.CodeMirror-placeholder{opacity:.5}.editor.vue-component.tabs.boxed>.tabsBody>.tabContent{overflow:hidden}.modal{position:fixed;z-index:1000;left:0;top:0;width:100%;height:100%;background-color:#0006;display:flex;justify-content:center;align-items:center}.modal .modal-container{background-color:#fff;border:1px solid #fff;min-height:50vh;min-width:300px;width:70%;max-height:96%;max-width:96%;display:flex;flex-direction:column;box-shadow:8px 8px 8px 0 #0000004d;resize:both;overflow:hidden}.modal .modal-container.smooth{transition-timing-function:linear;transition-property:width,height;transition-duration:.5s}.modal .modal-header{background-color:#1665b6;color:#fff;margin:0;height:1.5rem;padding:1rem;display:flex;align-items:center;justify-content:space-between;cursor:move}.modal .modal-header h2{display:inline-block;margin:0;margin-left:-.5rem;padding:.5rem;font-size:1.5rem;border:0;cursor:text;text-overflow:ellipsis;overflow:hidden}.modal .modal-content{padding:1rem;overflow:auto;flex-grow:1}.modal .inline .modal-content{padding:0}.modal .modal-footer:empty{display:none}.modal .modal-footer{background-color:#eee;margin:0;padding:1rem;text-align:right}.modal .close{font-size:1.5rem;height:2rem;width:2rem;color:#fff;cursor:pointer;display:flex;justify-content:center;align-items:center}.modal .close:focus,.modal .close:hover{color:red}.vue-component.process-example .content{border-left:5px solid #ccc;border-bottom:1px solid #ccc;padding:.5em;margin-left:3em;box-sizing:border-box}.vue-component.process-example .content .styled-description{margin-bottom:1em}.vue-component .highlight-box{box-shadow:0 0 0 .2em #c8e1ff}.vue-component code.id{color:maroon}.vue-component abbr{-webkit-text-decoration:underline dotted 1px;text-decoration:underline dotted 1px}.vue-component .unit{opacity:.6}.vue-component .status[data-value=submitted]{color:#000}.vue-component .status[data-value=running]{color:#ff8c00}.vue-component .status[data-value=queued]{color:#00008b}.vue-component .status[data-value=finished]{color:#006400}.vue-component .status[data-value=canceled]{color:#a9a9a9}.vue-component .status[data-value=error]{color:red}.vue-component.inline.process{margin-left:1em}.vue-component.inline h1{font-size:1.17em}.vue-component.inline h2{font-size:1.1em}.vue-component.inline h3{font-size:1.05em}.vue-component.inline h4,.vue-component.inline h5,.vue-component.inline h6{font-size:1em}.vue-component .comma-separated-list{display:inline;list-style:none;padding:0}.vue-component .comma-separated-list li{display:inline;padding:0}.vue-component .comma-separated-list li:after{content:", "}.vue-component .comma-separated-list li:last-child:after{content:""}.vue-component .required{color:red;font-weight:700}.vue-component.message-block{margin:1em 0;padding:.5em}.vue-component.message-block>strong{display:block;margin-bottom:.5em}.vue-component.message-block>p{margin:0}.vue-component .param-name,.vue-component .process-name{color:#369}.vue-component .param-argument,.vue-component .return-value{color:#936}.vue-component .data-type{color:#693}.vue-component .param-optional{font-weight:700}.vue-component .badges{margin:0;padding:0;list-style-type:none;display:inline-block}.vue-component .badges .badge{display:inline-block;font-size:.8em;margin:.25em;padding:.35em .5em .25em .5em;line-height:1em;text-align:center;white-space:nowrap;text-transform:uppercase;vertical-align:initial;border-radius:.5em;color:#fff;background-color:#6c757d}.vue-component .badges:not(.inline){margin-left:-.25em;margin-right:-.25em}.vue-component .badges.small .badge{padding:.25em .35em .2em .35em;font-size:.75em}.vue-component .badges.inline{margin-left:.5em;border-radius:.25em}.vue-component .badges.inline .badge{margin-top:0;margin-bottom:0}.vue-component .badges .badge a{color:#fff;border-bottom:1px dotted #fff;text-decoration:none}.vue-component .badges .badge a.badge-fill{margin:-.35em -.5em;padding:.35em .5em;display:block;border-bottom:0}.vue-component .badges.small .badge a.badge-fill{margin:-.2em -.3em;padding:.25em .35em}.vue-component .badges .badge a:hover{color:#fff;border-bottom-style:solid}.vue-component .badges .default{background-color:#555}.vue-component .badges .green{background-color:green}.vue-component .badges .red{background-color:maroon}.vue-component .badges .option1{background-color:#369}.vue-component .badges .option2{background-color:#693}.vue-component .badges .option3{background-color:#936}.vue-component .badges .option4{background-color:#963}.vue-component .badges .deprecated{background-color:red}.vue-component .badges .experimental{background-color:#8a2be2}.vue-component .badges .action{border:1px solid #000;background-color:#fff;color:#000;margin:.33em;cursor:pointer;text-transform:none}.vue-component .badges .action:hover{background-color:#000;color:#fff}.vue-component .badges .action:hover>a{color:#fff}.vue-component .badges .action>a{color:#000}.vue-component .badges .docker{background-color:#0db7ed}.vue-component .tabular{display:flex;margin:.2em 0;padding:1px}.vue-component .tabular label{flex:1;font-weight:700}.vue-component .tabular .value{flex:3}.vue-component .tabular .value td>div,.vue-component .tabular .value>.formatted>ul,.vue-component .tabular .value>ul,.vue-component .tabular ul.value{max-height:15em;overflow:auto}.vue-component .tabular .value pre{margin:0}.vue-component.stac .map{background:#0000;height:350px}.vue-component.stac .tabular{margin:.5em 0}.vue-component.stac .tabular.wrap{display:block}.vue-component.stac .tabular.wrap .value{margin-top:.5em;margin-left:1em;margin-bottom:.5em}.vue-component.stac .tabular .value ul{padding-left:20px}.assets.empty,.vue-component.stac .links:empty{display:none}.vue-component.stac .thumbnails{overflow-x:auto;overflow-y:hidden;width:100%;white-space:nowrap}.vue-component.stac .thumbnails a{margin:5px;display:inline-block}.vue-component.stac .thumbnails a img{padding:2px;max-height:200px;vertical-align:middle;border:2px solid #0000}.vue-component.stac .thumbnails a:hover img{border:2px solid #00000080}.vue-component .federation>ul>li{margin-bottom:.5em}.vue-component .federation>ul>li>small{display:block}.vue-component .federation>ul>li>h4{margin:0}.vue-component .federation .fed-header{margin:.2em 0}.vue-component .federation .fed-header>.fed-title{display:inline-block;vertical-align:bottom}.vue-component.process .namespace{font-weight:400;color:#aaa}.vue-component.process .process-bar{display:flex;align-items:baseline}.vue-component.process .process-bar .badges{margin-top:.75em}.vue-component.process .categories{flex:1}.vue-component.process .actions{text-align:right}.vue-component.process strong.deprecated{color:red}.vue-component.process strong.experimental{color:#8a2be2}.vue-component.process .exception{margin-top:.5em}.vue-component.process .exception code{font-weight:700}.vue-component.process .exception .styled-description{margin:.5em 0}.vue-component.process .exception .message{margin:.5em 0;font-size:.8em}.vue-component.process .signature{display:block;margin:1em 0}.vue-component.process .process-graph .graph{max-width:100%;height:300px;border:1px solid #ccc}.vue-component.process .process-graph .graph>.object-tree>ul{margin:0;padding:0}.docgen .process>h2,.vue-component.process .links:empty{display:none}
\ No newline at end of file
diff --git a/css/5457.b5733e32.css b/css/5457.b5733e32.css
deleted file mode 100644
index be5296dd..00000000
--- a/css/5457.b5733e32.css
+++ /dev/null
@@ -1 +0,0 @@
-.vue-component.model-builder .block .connector{font-size:.9em;margin:.2em 0;white-space:nowrap}.vue-component.model-builder .block .connector.noValue{color:red}.vue-component.model-builder .block .connector.editable .label,.vue-component.model-builder .block .connector.editable .value{cursor:pointer}.vue-component.model-builder .block .connector span[title]{cursor:help}.vue-component.model-builder .block .connector .input{max-width:100%;overflow:hidden;text-overflow:ellipsis}.vue-component.model-builder .block .connector .output{text-align:right}.vue-component.model-builder .block .connector .unspecified{color:red;margin-right:.3em}.vue-component.model-builder .block .connector .circle{width:.8em;height:.8em;margin:0 .2em;border:1px solid #888;background-color:#0000;display:inline-block}.vue-component.model-builder .block .connector .circle.io_active{background-color:#ffc800}.vue-component.model-builder .block .connector .circle.io_selected{background-color:#00c800!important}.vue-component.model-builder .block .connector .circle.io_issues{background-color:red}.vue-component.model-builder.editable .circle{cursor:pointer}.vue-component.model-builder .block{position:absolute;border:2px solid #ccc;margin-left:0;margin-top:0;background-color:#fafafa;opacity:.8;font-size:14px;user-select:none;-moz-user-select:none;-khtml-user-select:none;-webkit-user-select:none;-o-user-select:none;color:#000}.vue-component.model-builder .block .description{display:none;width:200px;padding:3px;border:1px solid #083776;border-radius:5px;color:#001531;background-color:#91bcf6;margin-top:15px;position:absolute;font-weight:400}.vue-component.model-builder .block .blockTitle{display:flex;padding:.3em .1em;font-weight:700;background-color:#ddd;margin-bottom:.1em;cursor:move;font-size:.9em}.vue-component.model-builder .block .blockTitle .blockId{opacity:.4;margin-left:.25em;font-weight:400}.vue-component.model-builder .block .blockTitle .namespace{font-weight:400}.vue-component.model-builder .block .blockTitle .titleText{flex-grow:1;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.vue-component.model-builder .block .blockTitle .blockicon{white-space:nowrap;text-align:center}.vue-component.model-builder .block .blockTitle .blockicon i.fas{min-width:1.4em;cursor:pointer;opacity:.5;margin-left:.1em}.vue-component.model-builder .block .blockTitle .blockicon i.fas:hover{opacity:1}.vue-component.model-builder .block .invalid{color:red;cursor:help}.vue-component.model-builder .block .inout{display:flex}.vue-component.model-builder .block .inputs{flex-grow:1;max-width:100%;overflow:hidden;text-overflow:ellipsis}.vue-component.model-builder .block .editDescription{padding:.3em .2em;box-sizing:border-box;font-size:.9em;line-height:1em;overflow:auto;border:0;border-top:1px dotted #ccc;background-color:#0000;width:100%;max-width:100%;height:3.7em;min-height:2.5em;resize:none}.vue-component.model-builder .block .editDescription:focus{outline:0}.vue-component.model-builder .block_collection{border:2px solid #6b8daf}.vue-component.model-builder .block_collection .blockTitle{background-color:#a3b7cc}.vue-component.model-builder .block_collection .field_id{display:none}.vue-component.model-builder .block_result{border:2px solid #888}.vue-component.model-builder .block_result .field_output .circle{background-color:#888;cursor:auto}.vue-component.model-builder .block_argument{border:2px solid #b28c6b}.vue-component.model-builder .block_argument .blockTitle{background-color:#ccb7a3}.vue-component.model-builder .block_selected{border:2px solid #0a0!important}.vue-component.model-builder .block_selected .blockTitle{background-color:#0c0!important}.vue-component.model-builder .block_invalid{border:2px solid red!important}.vue-component.model-builder{width:100%;height:100%;position:relative}.vue-component.model-builder.editable.focus .blocks{border-color:#1666b64d}.vue-component.model-builder .blocks:focus,.vue-component.model-builder .canvas:focus,.vue-component.model-builder:focus{outline:0}.vue-component.model-builder .canvas{width:100%;height:100%;position:absolute;z-index:1}.vue-component.model-builder .blocks{box-sizing:border-box;border:1px solid #0000;overflow:hidden;position:absolute;z-index:3;width:100%;height:100%}.vue-component.model-builder.compact .blockId,.vue-component.model-builder.compact .blockicon .addDescription,.vue-component.model-builder.compact .blockicon .delete,.vue-component.model-builder.compact .blockicon .info,.vue-component.model-builder.compact .editDescription,.vue-component.model-builder.scale_s .blockicon,.vue-component.model-builder.scale_xs .blockicon,.vue-component.model-builder.scale_xs .connector .text{display:none}.vue-component.model-builder .zoomInfo{position:absolute;top:0;right:0;display:inline-block;padding:.3em;background-color:#f9f9f9;color:#000;border-radius:0 0 0 .3em;z-index:5}.vue-component.model-builder.scale_xs .editDescription{visibility:hidden}.vue-component.search-box{margin:0 1px 1em 0;display:flex;align-items:stretch}.vue-component.search-box .icon,.vue-component.search-box input{font-size:1em;margin:0}.vue-component.search-box input{flex-grow:1;padding:.3em;padding-left:1.9em;z-index:1;border:1px solid #ccc;box-sizing:initial;background-color:#fff;box-sizing:border-box;width:100%;margin-left:-1.3em}.vue-component.search-box .icon{display:flex;align-items:center;-webkit-user-select:none;user-select:none;margin-left:.3em;width:1em;z-index:2}.vue-component.search-box.compact{font-size:.9em;margin-bottom:0}.vue-component.search-box.compact input{padding-top:0;padding-bottom:0}.vue-component.search-box.compact .icon{margin-top:.1em;margin-left:.3em}.search-results h2.heading{font-size:1em;border:0;margin:0;padding:0;margin-bottom:.5em}.search-results .vue-component.searchable-list ul.list>li>summary:before{content:"";margin-left:0;float:none}.search-results .vue-component.searchable-list ul.list>li>summary{margin:0;line-height:inherit}.search-results .vue-component.searchable-list ul.list>li{margin-bottom:0}.discovery-toolbar[data-v-1c899aff]{width:100%;height:100%;display:flex;flex-direction:column;overflow:hidden}.search-results[data-v-1c899aff]{overflow-y:auto;flex-grow:1;margin:.25rem 0 0 0}.search-box[data-v-1c899aff]{margin:1rem 1rem .25rem 1rem}.show-deprecated[data-v-1c899aff]{margin:.25rem 1rem .25rem 1rem;text-align:center;font-size:.9em}.category[data-v-1c899aff]{margin:.75rem 1rem .5rem 1rem}.category strong[data-v-1c899aff]{cursor:pointer;overflow:hidden;white-space:nowrap}.discovery-entity[data-v-1c899aff]{display:flex;margin:.25em 0;border:1px solid #ddd;border-radius:3px;cursor:pointer;-webkit-user-select:none;user-select:none;font-size:.9em}.discovery-entity strong[data-v-1c899aff]{display:block;font-weight:400;white-space:nowrap;width:100%;overflow:hidden;text-overflow:ellipsis;color:#1665b6}.discovery-entity small[data-v-1c899aff]{margin-top:.25em;display:block}.discovery-entity .discovery-info[data-v-1c899aff]{flex-grow:1;padding:5px;width:100%;overflow:hidden;position:relative}.discovery-entity .discovery-info[data-v-1c899aff]:hover{background-color:#eee}.discovery-entity .discovery-info:hover strong[data-v-1c899aff]{color:#000}.discovery-entity .discovery-button[data-v-1c899aff]{display:block;margin:0;padding:5px;background-color:#fff;color:#aaa;border:0;border-left:1px solid #ddd}.discovery-entity .discovery-button[data-v-1c899aff]:hover{background-color:#eee;color:#000}.discovery-entity .custom-process[data-v-1c899aff]{position:absolute;top:7px;right:5px}.fullscreen{position:absolute!important;top:0!important;left:0!important;width:100%!important;height:100%!important;background-color:#fff;overflow:auto}.visualEditor{background-color:#fff;height:100%;display:flex;flex-direction:column}.visualEditor .vue-component.model-builder{min-height:100px;min-width:100px}.visualEditor .model-overlay{position:absolute;width:100%;height:100%;left:0;top:0;color:#555;z-index:5;padding:1em;overflow:auto;box-sizing:border-box;line-height:1.25em}.visualEditor .model-overlay>h2{font-size:1.2em;text-align:center;border-bottom:0;margin-bottom:.5em;padding:0}.visualEditor .model-overlay>p{margin:.5em 0}.visualEditor .model-overlay>p>ul{margin:.25em 0}.visualEditor .model-overlay>p:first-of-type{margin-top:0}.visualEditor .model-overlay>p:last-of-type{margin-bottom:0}.visualEditor .discoveryToolbar{width:25%;min-width:150px;border-left:1px solid #ddd}.visualEditor .editorSplitter{display:flex;flex-direction:row-reverse;flex-grow:1;height:100%;overflow:hidden}.visualEditor.fullscreen{display:flex;flex-direction:column}.visualEditor.fullscreen .discoveryToolbar{width:15%;min-width:250px}.visualEditor.fullscreen .editorSplitter{height:100%}.graphBuilder{height:100%;flex-grow:1;position:relative}.compactMode{color:green}@keyframes glowing{0%{box-shadow:0 0 3px green}50%{box-shadow:0 0 10px green}to{box-shadow:0 0 3px green}}.highlightFormula{animation:glowing 1.5s infinite}.CodeMirror{font-family:monospace;height:300px;color:#000;direction:ltr}.CodeMirror-lines{padding:4px 0}.CodeMirror pre.CodeMirror-line,.CodeMirror pre.CodeMirror-line-like{padding:0 4px}.CodeMirror-gutter-filler,.CodeMirror-scrollbar-filler{background-color:#fff}.CodeMirror-gutters{border-right:1px solid #ddd;background-color:#f7f7f7;white-space:nowrap}.CodeMirror-linenumber{padding:0 3px 0 5px;min-width:20px;text-align:right;color:#999;white-space:nowrap}.CodeMirror-guttermarker{color:#000}.CodeMirror-guttermarker-subtle{color:#999}.CodeMirror-cursor{border-left:1px solid #000;border-right:none;width:0}.CodeMirror div.CodeMirror-secondarycursor{border-left:1px solid silver}.cm-fat-cursor .CodeMirror-cursor{width:auto;border:0!important;background:#7e7}.cm-fat-cursor div.CodeMirror-cursors{z-index:1}.cm-fat-cursor .CodeMirror-line::selection,.cm-fat-cursor .CodeMirror-line>span::selection,.cm-fat-cursor .CodeMirror-line>span>span::selection{background:#0000}.cm-fat-cursor .CodeMirror-line::-moz-selection,.cm-fat-cursor .CodeMirror-line>span::-moz-selection,.cm-fat-cursor .CodeMirror-line>span>span::-moz-selection{background:#0000}.cm-fat-cursor{caret-color:#0000}@keyframes blink{50%{background-color:initial}}.cm-tab{display:inline-block;text-decoration:inherit}.CodeMirror-rulers{position:absolute;left:0;right:0;top:-50px;bottom:0;overflow:hidden}.CodeMirror-ruler{border-left:1px solid #ccc;top:0;bottom:0;position:absolute}.cm-s-default .cm-header{color:blue}.cm-s-default .cm-quote{color:#090}.cm-negative{color:#d44}.cm-positive{color:#292}.cm-header,.cm-strong{font-weight:700}.cm-em{font-style:italic}.cm-link{text-decoration:underline}.cm-strikethrough{text-decoration:line-through}.cm-s-default .cm-keyword{color:#708}.cm-s-default .cm-atom{color:#219}.cm-s-default .cm-number{color:#164}.cm-s-default .cm-def{color:#00f}.cm-s-default .cm-variable-2{color:#05a}.cm-s-default .cm-type,.cm-s-default .cm-variable-3{color:#085}.cm-s-default .cm-comment{color:#a50}.cm-s-default .cm-string{color:#a11}.cm-s-default .cm-string-2{color:#f50}.cm-s-default .cm-meta,.cm-s-default .cm-qualifier{color:#555}.cm-s-default .cm-builtin{color:#30a}.cm-s-default .cm-bracket{color:#997}.cm-s-default .cm-tag{color:#170}.cm-s-default .cm-attribute{color:#00c}.cm-s-default .cm-hr{color:#999}.cm-s-default .cm-link{color:#00c}.cm-invalidchar,.cm-s-default .cm-error{color:red}.CodeMirror-composing{border-bottom:2px solid}div.CodeMirror span.CodeMirror-matchingbracket{color:#0b0}div.CodeMirror span.CodeMirror-nonmatchingbracket{color:#a22}.CodeMirror-matchingtag{background:#ff96004d}.CodeMirror-activeline-background{background:#e8f2ff}.CodeMirror{position:relative;overflow:hidden;background:#fff}.CodeMirror-scroll{overflow:scroll!important;margin-bottom:-50px;margin-right:-50px;padding-bottom:50px;height:100%;outline:none;position:relative;z-index:0}.CodeMirror-sizer{position:relative;border-right:50px solid #0000}.CodeMirror-gutter-filler,.CodeMirror-hscrollbar,.CodeMirror-scrollbar-filler,.CodeMirror-vscrollbar{position:absolute;z-index:6;display:none;outline:none}.CodeMirror-vscrollbar{right:0;top:0;overflow-x:hidden;overflow-y:scroll}.CodeMirror-hscrollbar{bottom:0;left:0;overflow-y:hidden;overflow-x:scroll}.CodeMirror-scrollbar-filler{right:0;bottom:0}.CodeMirror-gutter-filler{left:0;bottom:0}.CodeMirror-gutters{position:absolute;left:0;top:0;min-height:100%;z-index:3}.CodeMirror-gutter{white-space:normal;height:100%;display:inline-block;vertical-align:top;margin-bottom:-50px}.CodeMirror-gutter-wrapper{position:absolute;z-index:4;background:none!important;border:none!important}.CodeMirror-gutter-background{position:absolute;top:0;bottom:0;z-index:4}.CodeMirror-gutter-elt{position:absolute;cursor:default;z-index:4}.CodeMirror-gutter-wrapper ::selection{background-color:initial}.CodeMirror-gutter-wrapper ::-moz-selection{background-color:initial}.CodeMirror-lines{cursor:text;min-height:1px}.CodeMirror pre.CodeMirror-line,.CodeMirror pre.CodeMirror-line-like{border-radius:0;border-width:0;background:#0000;font-family:inherit;font-size:inherit;margin:0;white-space:pre;word-wrap:normal;line-height:inherit;color:inherit;z-index:2;position:relative;overflow:visible;-webkit-tap-highlight-color:transparent;font-variant-ligatures:contextual}.CodeMirror-wrap pre.CodeMirror-line,.CodeMirror-wrap pre.CodeMirror-line-like{word-wrap:break-word;white-space:pre-wrap;word-break:normal}.CodeMirror-linebackground{position:absolute;left:0;right:0;top:0;bottom:0;z-index:0}.CodeMirror-linewidget{position:relative;z-index:2;padding:.1px}.CodeMirror-rtl pre{direction:rtl}.CodeMirror-code{outline:none}.CodeMirror-gutter,.CodeMirror-gutters,.CodeMirror-linenumber,.CodeMirror-scroll,.CodeMirror-sizer{box-sizing:initial}.CodeMirror-measure{position:absolute;width:100%;height:0;overflow:hidden;visibility:hidden}.CodeMirror-cursor{position:absolute;pointer-events:none}.CodeMirror-measure pre{position:static}div.CodeMirror-cursors{visibility:hidden;position:relative;z-index:3}.CodeMirror-focused div.CodeMirror-cursors,div.CodeMirror-dragcursors{visibility:visible}.CodeMirror-selected{background:#d9d9d9}.CodeMirror-focused .CodeMirror-selected{background:#d7d4f0}.CodeMirror-crosshair{cursor:crosshair}.CodeMirror-line::selection,.CodeMirror-line>span::selection,.CodeMirror-line>span>span::selection{background:#d7d4f0}.CodeMirror-line::-moz-selection,.CodeMirror-line>span::-moz-selection,.CodeMirror-line>span>span::-moz-selection{background:#d7d4f0}.cm-searching{background-color:#ffa;background-color:#ff06}.cm-force-border{padding-right:.1px}@media print{.CodeMirror div.CodeMirror-cursors{visibility:hidden}}.cm-tab-wrap-hack:after{content:""}span.CodeMirror-selectedtext{background:none}.CodeMirror-lint-markers{width:16px}.CodeMirror-lint-tooltip{background-color:#ffd;border:1px solid #000;border-radius:4px 4px 4px 4px;color:#000;font-family:monospace;font-size:10pt;overflow:hidden;padding:2px 5px;position:fixed;white-space:pre;white-space:pre-wrap;z-index:100;max-width:600px;opacity:0;transition:opacity .4s;-moz-transition:opacity .4s;-webkit-transition:opacity .4s;-o-transition:opacity .4s;-ms-transition:opacity .4s}.CodeMirror-lint-mark{background-position:0 100%;background-repeat:repeat-x}.CodeMirror-lint-mark-warning{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAQAAAADCAYAAAC09K7GAAAAAXNSR0IArs4c6QAAAAZiS0dEAP8A/wD/oL2nkwAAAAlwSFlzAAALEwAACxMBAJqcGAAAAAd0SU1FB9sJFhQXEbhTg7YAAAAZdEVYdENvbW1lbnQAQ3JlYXRlZCB3aXRoIEdJTVBXgQ4XAAAAMklEQVQI12NkgIIvJ3QXMjAwdDN+OaEbysDA4MPAwNDNwMCwiOHLCd1zX07o6kBVGQEAKBANtobskNMAAAAASUVORK5CYII=)}.CodeMirror-lint-mark-error{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAQAAAADCAYAAAC09K7GAAAAAXNSR0IArs4c6QAAAAZiS0dEAP8A/wD/oL2nkwAAAAlwSFlzAAALEwAACxMBAJqcGAAAAAd0SU1FB9sJDw4cOCW1/KIAAAAZdEVYdENvbW1lbnQAQ3JlYXRlZCB3aXRoIEdJTVBXgQ4XAAAAHElEQVQI12NggIL/DAz/GdA5/xkY/qPKMDAwAADLZwf5rvm+LQAAAABJRU5ErkJggg==)}.CodeMirror-lint-marker{background-position:50%;background-repeat:no-repeat;cursor:pointer;display:inline-block;height:16px;width:16px;vertical-align:middle;position:relative}.CodeMirror-lint-message{padding-left:18px;background-position:0 0;background-repeat:no-repeat}.CodeMirror-lint-marker-warning,.CodeMirror-lint-message-warning{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAMAAAAoLQ9TAAAANlBMVEX/uwDvrwD/uwD/uwD/uwD/uwD/uwD/uwD/uwD6twD/uwAAAADurwD2tQD7uAD+ugAAAAD/uwDhmeTRAAAADHRSTlMJ8mN1EYcbmiixgACm7WbuAAAAVklEQVR42n3PUQqAIBBFUU1LLc3u/jdbOJoW1P08DA9Gba8+YWJ6gNJoNYIBzAA2chBth5kLmG9YUoG0NHAUwFXwO9LuBQL1giCQb8gC9Oro2vp5rncCIY8L8uEx5ZkAAAAASUVORK5CYII=)}.CodeMirror-lint-marker-error,.CodeMirror-lint-message-error{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAMAAAAoLQ9TAAAAHlBMVEW7AAC7AACxAAC7AAC7AAAAAAC4AAC5AAD///+7AAAUdclpAAAABnRSTlMXnORSiwCK0ZKSAAAATUlEQVR42mWPOQ7AQAgDuQLx/z8csYRmPRIFIwRGnosRrpamvkKi0FTIiMASR3hhKW+hAN6/tIWhu9PDWiTGNEkTtIOucA5Oyr9ckPgAWm0GPBog6v4AAAAASUVORK5CYII=)}.CodeMirror-lint-marker-multiple{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAcAAAAHCAMAAADzjKfhAAAACVBMVEUAAAAAAAC/v7914kyHAAAAAXRSTlMAQObYZgAAACNJREFUeNo1ioEJAAAIwmz/H90iFFSGJgFMe3gaLZ0od+9/AQZ0ADosbYraAAAAAElFTkSuQmCC);background-repeat:no-repeat;background-position:100% 100%;width:100%;height:100%}.CodeMirror-lint-line-error{background-color:#b74c5114}.CodeMirror-lint-line-warning{background-color:#ffd3001a}.textEditor[data-v-0ca6b553]{height:100%;display:flex;flex-direction:column;border:1px solid #ddd}.sourceCodeEditor[data-v-0ca6b553]{flex-grow:1;height:100%;overflow:hidden}.textEditor.math .cm-operator{margin:0 .2em}.textEditor.markdown .CodeMirror-wrap pre{word-break:break-word}.CodeMirror-placeholder{opacity:.5}.editor.vue-component.tabs.boxed>.tabsBody>.tabContent{overflow:hidden}.modal{position:fixed;z-index:1000;left:0;top:0;width:100%;height:100%;background-color:#0006;display:flex;justify-content:center;align-items:center}.modal .modal-container{background-color:#fff;border:1px solid #fff;min-height:50vh;min-width:300px;width:70%;max-height:96%;max-width:96%;display:flex;flex-direction:column;box-shadow:8px 8px 8px 0 #0000004d;resize:both;overflow:hidden}.modal .modal-container.smooth{transition-timing-function:linear;transition-property:width,height;transition-duration:.5s}.modal .modal-header{background-color:#1665b6;color:#fff;margin:0;height:1.5rem;padding:1rem;display:flex;align-items:center;justify-content:space-between;cursor:move}.modal .modal-header h2{display:inline-block;margin:0;margin-left:-.5rem;padding:.5rem;font-size:1.5rem;border:0;cursor:text;text-overflow:ellipsis;overflow:hidden}.modal .modal-content{padding:1rem;overflow:auto;flex-grow:1}.modal .inline .modal-content{padding:0}.modal .modal-footer:empty{display:none}.modal .modal-footer{background-color:#eee;margin:0;padding:1rem;text-align:right}.modal .close{font-size:1.5rem;height:2rem;width:2rem;color:#fff;cursor:pointer;display:flex;justify-content:center;align-items:center}.modal .close:focus,.modal .close:hover{color:red}.vue-component.process-example .content{border-left:5px solid #ccc;border-bottom:1px solid #ccc;padding:.5em;margin-left:3em;box-sizing:border-box}.vue-component.process-example .content .styled-description{margin-bottom:1em}.vue-component .highlight-box{box-shadow:0 0 0 .2em #c8e1ff}.vue-component code.id{color:maroon}.vue-component abbr{-webkit-text-decoration:underline dotted 1px;text-decoration:underline dotted 1px}.vue-component .unit{opacity:.6}.vue-component .status[data-value=submitted]{color:#000}.vue-component .status[data-value=running]{color:#ff8c00}.vue-component .status[data-value=queued]{color:#00008b}.vue-component .status[data-value=finished]{color:#006400}.vue-component .status[data-value=canceled]{color:#a9a9a9}.vue-component .status[data-value=error]{color:red}.vue-component.inline.process{margin-left:1em}.vue-component.inline h1{font-size:1.17em}.vue-component.inline h2{font-size:1.1em}.vue-component.inline h3{font-size:1.05em}.vue-component.inline h4,.vue-component.inline h5,.vue-component.inline h6{font-size:1em}.vue-component .comma-separated-list{display:inline;list-style:none;padding:0}.vue-component .comma-separated-list li{display:inline;padding:0}.vue-component .comma-separated-list li:after{content:", "}.vue-component .comma-separated-list li:last-child:after{content:""}.vue-component .required{color:red;font-weight:700}.vue-component.message-block{margin:1em 0;padding:.5em}.vue-component.message-block>strong{display:block;margin-bottom:.5em}.vue-component.message-block>p{margin:0}.vue-component .param-name,.vue-component .process-name{color:#369}.vue-component .param-argument,.vue-component .return-value{color:#936}.vue-component .data-type{color:#693}.vue-component .param-optional{font-weight:700}.vue-component .badges{margin:0;padding:0;list-style-type:none;display:inline-block}.vue-component .badges .badge{display:inline-block;font-size:.8em;margin:.25em;padding:.35em .5em .25em .5em;line-height:1em;text-align:center;white-space:nowrap;text-transform:uppercase;vertical-align:initial;border-radius:.5em;color:#fff;background-color:#6c757d}.vue-component .badges:not(.inline){margin-left:-.25em;margin-right:-.25em}.vue-component .badges.small .badge{padding:.25em .35em .2em .35em;font-size:.75em}.vue-component .badges.inline{margin-left:.5em;border-radius:.25em}.vue-component .badges.inline .badge{margin-top:0;margin-bottom:0}.vue-component .badges .badge a{color:#fff;border-bottom:1px dotted #fff;text-decoration:none}.vue-component .badges .badge a.badge-fill{margin:-.35em -.5em;padding:.35em .5em;display:block;border-bottom:0}.vue-component .badges.small .badge a.badge-fill{margin:-.2em -.3em;padding:.25em .35em}.vue-component .badges .badge a:hover{color:#fff;border-bottom-style:solid}.vue-component .badges .default{background-color:#555}.vue-component .badges .green{background-color:green}.vue-component .badges .red{background-color:maroon}.vue-component .badges .option1{background-color:#369}.vue-component .badges .option2{background-color:#693}.vue-component .badges .option3{background-color:#936}.vue-component .badges .option4{background-color:#963}.vue-component .badges .deprecated{background-color:red}.vue-component .badges .experimental{background-color:#8a2be2}.vue-component .badges .action{border:1px solid #000;background-color:#fff;color:#000;margin:.33em;cursor:pointer;text-transform:none}.vue-component .badges .action:hover{background-color:#000;color:#fff}.vue-component .badges .action:hover>a{color:#fff}.vue-component .badges .action>a{color:#000}.vue-component .badges .docker{background-color:#0db7ed}.vue-component .tabular{display:flex;margin:.2em 0;padding:1px}.vue-component .tabular label{flex:1;font-weight:700}.vue-component .tabular .value{flex:3}.vue-component .tabular .value td>div,.vue-component .tabular .value>.formatted>ul,.vue-component .tabular .value>ul,.vue-component .tabular ul.value{max-height:15em;overflow:auto}.vue-component .tabular .value pre{margin:0}.vue-component.stac .map{background:#0000;height:350px}.vue-component.stac .tabular{margin:.5em 0}.vue-component.stac .tabular.wrap{display:block}.vue-component.stac .tabular.wrap .value{margin-top:.5em;margin-left:1em;margin-bottom:.5em}.vue-component.stac .tabular .value ul{padding-left:20px}.assets.empty,.vue-component.stac .links:empty{display:none}.vue-component.stac .thumbnails{overflow-x:auto;overflow-y:hidden;width:100%;white-space:nowrap}.vue-component.stac .thumbnails a{margin:5px;display:inline-block}.vue-component.stac .thumbnails a img{padding:2px;max-height:200px;vertical-align:middle;border:2px solid #0000}.vue-component.stac .thumbnails a:hover img{border:2px solid #00000080}.vue-component .federation>ul>li{margin-bottom:.5em}.vue-component .federation>ul>li>small{display:block}.vue-component .federation>ul>li>h4{margin:0}.vue-component .federation .fed-header{margin:.2em 0}.vue-component .federation .fed-header>.fed-title{display:inline-block;vertical-align:bottom}.vue-component.process .namespace{font-weight:400;color:#aaa}.vue-component.process .process-bar{display:flex;align-items:baseline}.vue-component.process .process-bar .badges{margin-top:.75em}.vue-component.process .categories{flex:1}.vue-component.process .actions{text-align:right}.vue-component.process strong.deprecated{color:red}.vue-component.process strong.experimental{color:#8a2be2}.vue-component.process .exception{margin-top:.5em}.vue-component.process .exception code{font-weight:700}.vue-component.process .exception .styled-description{margin:.5em 0}.vue-component.process .exception .message{margin:.5em 0;font-size:.8em}.vue-component.process .signature{display:block;margin:1em 0}.vue-component.process .process-graph .graph{max-width:100%;height:300px;border:1px solid #ccc}.vue-component.process .process-graph .graph>.object-tree>ul{margin:0;padding:0}.docgen .process>h2,.vue-component.process .links:empty{display:none}
\ No newline at end of file
diff --git a/css/6256.35500620.css b/css/5677.35500620.css
similarity index 100%
rename from css/6256.35500620.css
rename to css/5677.35500620.css
diff --git a/css/6327.29a087af.css b/css/6327.29a087af.css
deleted file mode 100644
index 65acfd57..00000000
--- a/css/6327.29a087af.css
+++ /dev/null
@@ -1 +0,0 @@
-.vue-component.data-table table{width:100%;border-collapse:collapse}.vue-component.data-table table td,.vue-component.data-table table th{border:1px solid #ddd;padding:.2em}.vue-component.data-table table th{text-align:left!important}.vue-component.data-table table th.sortable{cursor:pointer}.vue-component.data-table table th.sortable:hover{background-color:#eee}.vue-component.data-table table th.sort-asc:after,.vue-component.data-table table th.sortable:after{visibility:hidden;margin-left:5px;font-weight:100;content:"⇑"}.vue-component.data-table table th.sort-asc:after,.vue-component.data-table table th.sortable:hover:after{visibility:visible}.vue-component.data-table table th.sort-desc:after{visibility:visible;margin-left:5px;font-weight:100;content:"⇓"}.vue-component.data-table table th.sort-asc:hover:after,.vue-component.data-table table th.sort-desc:hover:after{visibility:visible;margin-left:5px;font-weight:100;content:"⇕"}.vue-component.data-table .filter-icon{margin-right:3px}.vue-component.data-table .no-results td{text-align:center}.vue-component.data-table .menu{margin-bottom:5px;display:flex;justify-content:space-between}.vue-component.data-table .filter{flex-grow:1;text-align:right;padding-left:1em;min-width:4em;max-width:20em}.vue-component.data-table .filter .edit{cursor:pointer}.vue-component.model-builder{width:100%;height:100%;position:relative}.vue-component.model-builder.editable.focus .blocks{border-color:#1666b64d}.vue-component.model-builder .blocks:focus,.vue-component.model-builder .canvas:focus,.vue-component.model-builder:focus{outline:0}.vue-component.model-builder .canvas{width:100%;height:100%;position:absolute;z-index:1}.vue-component.model-builder .blocks{box-sizing:border-box;border:1px solid #0000;overflow:hidden;position:absolute;z-index:3;width:100%;height:100%}.vue-component.model-builder.compact .blockId,.vue-component.model-builder.compact .blockicon .addDescription,.vue-component.model-builder.compact .blockicon .delete,.vue-component.model-builder.compact .blockicon .info,.vue-component.model-builder.compact .editDescription,.vue-component.model-builder.scale_s .blockicon,.vue-component.model-builder.scale_xs .blockicon,.vue-component.model-builder.scale_xs .connector .text{display:none}.vue-component.model-builder .zoomInfo{position:absolute;top:0;right:0;display:inline-block;padding:.3em;background-color:#f9f9f9;color:#000;border-radius:0 0 0 .3em;z-index:5}.vue-component.model-builder.scale_xs .editDescription{visibility:hidden}.vue-component .highlight-box{box-shadow:0 0 0 .2em #c8e1ff}.vue-component code.id{color:maroon}.vue-component abbr{-webkit-text-decoration:underline dotted 1px;text-decoration:underline dotted 1px}.vue-component .unit{opacity:.6}.vue-component .status[data-value=submitted]{color:#000}.vue-component .status[data-value=running]{color:#ff8c00}.vue-component .status[data-value=queued]{color:#00008b}.vue-component .status[data-value=finished]{color:#006400}.vue-component .status[data-value=canceled]{color:#a9a9a9}.vue-component .status[data-value=error]{color:red}.vue-component.inline.process{margin-left:1em}.vue-component.inline h1{font-size:1.17em}.vue-component.inline h2{font-size:1.1em}.vue-component.inline h3{font-size:1.05em}.vue-component.inline h4,.vue-component.inline h5,.vue-component.inline h6{font-size:1em}.vue-component .comma-separated-list{display:inline;list-style:none;padding:0}.vue-component .comma-separated-list li{display:inline;padding:0}.vue-component .comma-separated-list li:after{content:", "}.vue-component .comma-separated-list li:last-child:after{content:""}.vue-component .required{color:red;font-weight:700}.vue-component.message-block{margin:1em 0;padding:.5em}.vue-component.message-block>strong{display:block;margin-bottom:.5em}.vue-component.message-block>p{margin:0}.vue-component .param-name,.vue-component .process-name{color:#369}.vue-component .param-argument,.vue-component .return-value{color:#936}.vue-component .data-type{color:#693}.vue-component .param-optional{font-weight:700}.vue-component .badges{margin:0;padding:0;list-style-type:none;display:inline-block}.vue-component .badges .badge{display:inline-block;font-size:.8em;margin:.25em;padding:.35em .5em .25em .5em;line-height:1em;text-align:center;white-space:nowrap;text-transform:uppercase;vertical-align:initial;border-radius:.5em;color:#fff;background-color:#6c757d}.vue-component .badges:not(.inline){margin-left:-.25em;margin-right:-.25em}.vue-component .badges.small .badge{padding:.25em .35em .2em .35em;font-size:.75em}.vue-component .badges.inline{margin-left:.5em;border-radius:.25em}.vue-component .badges.inline .badge{margin-top:0;margin-bottom:0}.vue-component .badges .badge a{color:#fff;border-bottom:1px dotted #fff;text-decoration:none}.vue-component .badges .badge a.badge-fill{margin:-.35em -.5em;padding:.35em .5em;display:block;border-bottom:0}.vue-component .badges.small .badge a.badge-fill{margin:-.2em -.3em;padding:.25em .35em}.vue-component .badges .badge a:hover{color:#fff;border-bottom-style:solid}.vue-component .badges .default{background-color:#555}.vue-component .badges .green{background-color:green}.vue-component .badges .red{background-color:maroon}.vue-component .badges .option1{background-color:#369}.vue-component .badges .option2{background-color:#693}.vue-component .badges .option3{background-color:#936}.vue-component .badges .option4{background-color:#963}.vue-component .badges .deprecated{background-color:red}.vue-component .badges .experimental{background-color:#8a2be2}.vue-component .badges .action{border:1px solid #000;background-color:#fff;color:#000;margin:.33em;cursor:pointer;text-transform:none}.vue-component .badges .action:hover{background-color:#000;color:#fff}.vue-component .badges .action:hover>a{color:#fff}.vue-component .badges .action>a{color:#000}.vue-component .badges .docker{background-color:#0db7ed}.vue-component .tabular{display:flex;margin:.2em 0;padding:1px}.vue-component .tabular label{flex:1;font-weight:700}.vue-component .tabular .value{flex:3}.vue-component .tabular .value td>div,.vue-component .tabular .value>.formatted>ul,.vue-component .tabular .value>ul,.vue-component .tabular ul.value{max-height:15em;overflow:auto}.vue-component .tabular .value pre{margin:0}.vue-component.stac .map{background:#0000;height:350px}.vue-component.stac .tabular{margin:.5em 0}.vue-component.stac .tabular.wrap{display:block}.vue-component.stac .tabular.wrap .value{margin-top:.5em;margin-left:1em;margin-bottom:.5em}.vue-component.stac .tabular .value ul{padding-left:20px}.assets.empty,.vue-component.stac .links:empty{display:none}.vue-component.stac .thumbnails{overflow-x:auto;overflow-y:hidden;width:100%;white-space:nowrap}.vue-component.stac .thumbnails a{margin:5px;display:inline-block}.vue-component.stac .thumbnails a img{padding:2px;max-height:200px;vertical-align:middle;border:2px solid #0000}.vue-component.stac .thumbnails a:hover img{border:2px solid #00000080}.vue-component .federation>ul>li{margin-bottom:.5em}.vue-component .federation>ul>li>small{display:block}.vue-component .federation>ul>li>h4{margin:0}.vue-component .federation .fed-header{margin:.2em 0}.vue-component .federation .fed-header>.fed-title{display:inline-block;vertical-align:bottom}.vue-component.search-box{margin:0 1px 1em 0;display:flex;align-items:stretch}.vue-component.search-box .icon,.vue-component.search-box input{font-size:1em;margin:0}.vue-component.search-box input{flex-grow:1;padding:.3em;padding-left:1.9em;z-index:1;border:1px solid #ccc;box-sizing:initial;background-color:#fff;box-sizing:border-box;width:100%;margin-left:-1.3em}.vue-component.search-box .icon{display:flex;align-items:center;-webkit-user-select:none;user-select:none;margin-left:.3em;width:1em;z-index:2}.vue-component.search-box.compact{font-size:.9em;margin-bottom:0}.vue-component.search-box.compact input{padding-top:0;padding-bottom:0}.vue-component.search-box.compact .icon{margin-top:.1em;margin-left:.3em}.CodeMirror{font-family:monospace;height:300px;color:#000;direction:ltr}.CodeMirror-lines{padding:4px 0}.CodeMirror pre.CodeMirror-line,.CodeMirror pre.CodeMirror-line-like{padding:0 4px}.CodeMirror-gutter-filler,.CodeMirror-scrollbar-filler{background-color:#fff}.CodeMirror-gutters{border-right:1px solid #ddd;background-color:#f7f7f7;white-space:nowrap}.CodeMirror-linenumber{padding:0 3px 0 5px;min-width:20px;text-align:right;color:#999;white-space:nowrap}.CodeMirror-guttermarker{color:#000}.CodeMirror-guttermarker-subtle{color:#999}.CodeMirror-cursor{border-left:1px solid #000;border-right:none;width:0}.CodeMirror div.CodeMirror-secondarycursor{border-left:1px solid silver}.cm-fat-cursor .CodeMirror-cursor{width:auto;border:0!important;background:#7e7}.cm-fat-cursor div.CodeMirror-cursors{z-index:1}.cm-fat-cursor .CodeMirror-line::selection,.cm-fat-cursor .CodeMirror-line>span::selection,.cm-fat-cursor .CodeMirror-line>span>span::selection{background:#0000}.cm-fat-cursor .CodeMirror-line::-moz-selection,.cm-fat-cursor .CodeMirror-line>span::-moz-selection,.cm-fat-cursor .CodeMirror-line>span>span::-moz-selection{background:#0000}.cm-fat-cursor{caret-color:#0000}@keyframes blink{50%{background-color:initial}}.cm-tab{display:inline-block;text-decoration:inherit}.CodeMirror-rulers{position:absolute;left:0;right:0;top:-50px;bottom:0;overflow:hidden}.CodeMirror-ruler{border-left:1px solid #ccc;top:0;bottom:0;position:absolute}.cm-s-default .cm-header{color:blue}.cm-s-default .cm-quote{color:#090}.cm-negative{color:#d44}.cm-positive{color:#292}.cm-header,.cm-strong{font-weight:700}.cm-em{font-style:italic}.cm-link{text-decoration:underline}.cm-strikethrough{text-decoration:line-through}.cm-s-default .cm-keyword{color:#708}.cm-s-default .cm-atom{color:#219}.cm-s-default .cm-number{color:#164}.cm-s-default .cm-def{color:#00f}.cm-s-default .cm-variable-2{color:#05a}.cm-s-default .cm-type,.cm-s-default .cm-variable-3{color:#085}.cm-s-default .cm-comment{color:#a50}.cm-s-default .cm-string{color:#a11}.cm-s-default .cm-string-2{color:#f50}.cm-s-default .cm-meta,.cm-s-default .cm-qualifier{color:#555}.cm-s-default .cm-builtin{color:#30a}.cm-s-default .cm-bracket{color:#997}.cm-s-default .cm-tag{color:#170}.cm-s-default .cm-attribute{color:#00c}.cm-s-default .cm-hr{color:#999}.cm-s-default .cm-link{color:#00c}.cm-invalidchar,.cm-s-default .cm-error{color:red}.CodeMirror-composing{border-bottom:2px solid}div.CodeMirror span.CodeMirror-matchingbracket{color:#0b0}div.CodeMirror span.CodeMirror-nonmatchingbracket{color:#a22}.CodeMirror-matchingtag{background:#ff96004d}.CodeMirror-activeline-background{background:#e8f2ff}.CodeMirror{position:relative;overflow:hidden;background:#fff}.CodeMirror-scroll{overflow:scroll!important;margin-bottom:-50px;margin-right:-50px;padding-bottom:50px;height:100%;outline:none;position:relative;z-index:0}.CodeMirror-sizer{position:relative;border-right:50px solid #0000}.CodeMirror-gutter-filler,.CodeMirror-hscrollbar,.CodeMirror-scrollbar-filler,.CodeMirror-vscrollbar{position:absolute;z-index:6;display:none;outline:none}.CodeMirror-vscrollbar{right:0;top:0;overflow-x:hidden;overflow-y:scroll}.CodeMirror-hscrollbar{bottom:0;left:0;overflow-y:hidden;overflow-x:scroll}.CodeMirror-scrollbar-filler{right:0;bottom:0}.CodeMirror-gutter-filler{left:0;bottom:0}.CodeMirror-gutters{position:absolute;left:0;top:0;min-height:100%;z-index:3}.CodeMirror-gutter{white-space:normal;height:100%;display:inline-block;vertical-align:top;margin-bottom:-50px}.CodeMirror-gutter-wrapper{position:absolute;z-index:4;background:none!important;border:none!important}.CodeMirror-gutter-background{position:absolute;top:0;bottom:0;z-index:4}.CodeMirror-gutter-elt{position:absolute;cursor:default;z-index:4}.CodeMirror-gutter-wrapper ::selection{background-color:initial}.CodeMirror-gutter-wrapper ::-moz-selection{background-color:initial}.CodeMirror-lines{cursor:text;min-height:1px}.CodeMirror pre.CodeMirror-line,.CodeMirror pre.CodeMirror-line-like{border-radius:0;border-width:0;background:#0000;font-family:inherit;font-size:inherit;margin:0;white-space:pre;word-wrap:normal;line-height:inherit;color:inherit;z-index:2;position:relative;overflow:visible;-webkit-tap-highlight-color:transparent;font-variant-ligatures:contextual}.CodeMirror-wrap pre.CodeMirror-line,.CodeMirror-wrap pre.CodeMirror-line-like{word-wrap:break-word;white-space:pre-wrap;word-break:normal}.CodeMirror-linebackground{position:absolute;left:0;right:0;top:0;bottom:0;z-index:0}.CodeMirror-linewidget{position:relative;z-index:2;padding:.1px}.CodeMirror-rtl pre{direction:rtl}.CodeMirror-code{outline:none}.CodeMirror-gutter,.CodeMirror-gutters,.CodeMirror-linenumber,.CodeMirror-scroll,.CodeMirror-sizer{box-sizing:initial}.CodeMirror-measure{position:absolute;width:100%;height:0;overflow:hidden;visibility:hidden}.CodeMirror-cursor{position:absolute;pointer-events:none}.CodeMirror-measure pre{position:static}div.CodeMirror-cursors{visibility:hidden;position:relative;z-index:3}.CodeMirror-focused div.CodeMirror-cursors,div.CodeMirror-dragcursors{visibility:visible}.CodeMirror-selected{background:#d9d9d9}.CodeMirror-focused .CodeMirror-selected{background:#d7d4f0}.CodeMirror-crosshair{cursor:crosshair}.CodeMirror-line::selection,.CodeMirror-line>span::selection,.CodeMirror-line>span>span::selection{background:#d7d4f0}.CodeMirror-line::-moz-selection,.CodeMirror-line>span::-moz-selection,.CodeMirror-line>span>span::-moz-selection{background:#d7d4f0}.cm-searching{background-color:#ffa;background-color:#ff06}.cm-force-border{padding-right:.1px}@media print{.CodeMirror div.CodeMirror-cursors{visibility:hidden}}.cm-tab-wrap-hack:after{content:""}span.CodeMirror-selectedtext{background:none}.CodeMirror-lint-markers{width:16px}.CodeMirror-lint-tooltip{background-color:#ffd;border:1px solid #000;border-radius:4px 4px 4px 4px;color:#000;font-family:monospace;font-size:10pt;overflow:hidden;padding:2px 5px;position:fixed;white-space:pre;white-space:pre-wrap;z-index:100;max-width:600px;opacity:0;transition:opacity .4s;-moz-transition:opacity .4s;-webkit-transition:opacity .4s;-o-transition:opacity .4s;-ms-transition:opacity .4s}.CodeMirror-lint-mark{background-position:0 100%;background-repeat:repeat-x}.CodeMirror-lint-mark-warning{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAQAAAADCAYAAAC09K7GAAAAAXNSR0IArs4c6QAAAAZiS0dEAP8A/wD/oL2nkwAAAAlwSFlzAAALEwAACxMBAJqcGAAAAAd0SU1FB9sJFhQXEbhTg7YAAAAZdEVYdENvbW1lbnQAQ3JlYXRlZCB3aXRoIEdJTVBXgQ4XAAAAMklEQVQI12NkgIIvJ3QXMjAwdDN+OaEbysDA4MPAwNDNwMCwiOHLCd1zX07o6kBVGQEAKBANtobskNMAAAAASUVORK5CYII=)}.CodeMirror-lint-mark-error{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAQAAAADCAYAAAC09K7GAAAAAXNSR0IArs4c6QAAAAZiS0dEAP8A/wD/oL2nkwAAAAlwSFlzAAALEwAACxMBAJqcGAAAAAd0SU1FB9sJDw4cOCW1/KIAAAAZdEVYdENvbW1lbnQAQ3JlYXRlZCB3aXRoIEdJTVBXgQ4XAAAAHElEQVQI12NggIL/DAz/GdA5/xkY/qPKMDAwAADLZwf5rvm+LQAAAABJRU5ErkJggg==)}.CodeMirror-lint-marker{background-position:50%;background-repeat:no-repeat;cursor:pointer;display:inline-block;height:16px;width:16px;vertical-align:middle;position:relative}.CodeMirror-lint-message{padding-left:18px;background-position:0 0;background-repeat:no-repeat}.CodeMirror-lint-marker-warning,.CodeMirror-lint-message-warning{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAMAAAAoLQ9TAAAANlBMVEX/uwDvrwD/uwD/uwD/uwD/uwD/uwD/uwD/uwD6twD/uwAAAADurwD2tQD7uAD+ugAAAAD/uwDhmeTRAAAADHRSTlMJ8mN1EYcbmiixgACm7WbuAAAAVklEQVR42n3PUQqAIBBFUU1LLc3u/jdbOJoW1P08DA9Gba8+YWJ6gNJoNYIBzAA2chBth5kLmG9YUoG0NHAUwFXwO9LuBQL1giCQb8gC9Oro2vp5rncCIY8L8uEx5ZkAAAAASUVORK5CYII=)}.CodeMirror-lint-marker-error,.CodeMirror-lint-message-error{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAMAAAAoLQ9TAAAAHlBMVEW7AAC7AACxAAC7AAC7AAAAAAC4AAC5AAD///+7AAAUdclpAAAABnRSTlMXnORSiwCK0ZKSAAAATUlEQVR42mWPOQ7AQAgDuQLx/z8csYRmPRIFIwRGnosRrpamvkKi0FTIiMASR3hhKW+hAN6/tIWhu9PDWiTGNEkTtIOucA5Oyr9ckPgAWm0GPBog6v4AAAAASUVORK5CYII=)}.CodeMirror-lint-marker-multiple{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAcAAAAHCAMAAADzjKfhAAAACVBMVEUAAAAAAAC/v7914kyHAAAAAXRSTlMAQObYZgAAACNJREFUeNo1ioEJAAAIwmz/H90iFFSGJgFMe3gaLZ0od+9/AQZ0ADosbYraAAAAAElFTkSuQmCC);background-repeat:no-repeat;background-position:100% 100%;width:100%;height:100%}.CodeMirror-lint-line-error{background-color:#b74c5114}.CodeMirror-lint-line-warning{background-color:#ffd3001a}
\ No newline at end of file
diff --git a/css/4489.c792bb6a.css b/css/6625.c792bb6a.css
similarity index 100%
rename from css/4489.c792bb6a.css
rename to css/6625.c792bb6a.css
diff --git a/css/7344.30d54621.css b/css/7344.db7570b9.css
similarity index 77%
rename from css/7344.30d54621.css
rename to css/7344.db7570b9.css
index cf386ba0..3f956bdb 100644
--- a/css/7344.30d54621.css
+++ b/css/7344.db7570b9.css
@@ -3,4 +3,4 @@
* A geocoder extension compatible with OpenLayers v7.
* https://github.com/kirtan-desai/ol-geocoder
* Built: Thu Nov 17 2022 14:58:36 GMT-0500 (Eastern Standard Time)
- */.ol-touch .ol-control.gcd-gl-control button{font-size:1.14em}.ol-touch .ol-geocoder.gcd-gl-container{font-size:1.1em}.ol-geocoder.gcd-gl-container{box-sizing:border-box;font-size:.9em;left:.5em;position:absolute;top:4.875em}.ol-geocoder.gcd-gl-container *,.ol-geocoder.gcd-gl-container :after,.ol-geocoder.gcd-gl-container :before{box-sizing:inherit}.ol-geocoder .gcd-gl-control{height:2.1875em;overflow:hidden;transition:width .2s,height .2s;width:2.1875em}.ol-geocoder .gcd-gl-expanded{height:2.1875em;width:15.625em}.ol-geocoder .gcd-gl-input{background-color:#fff;border:1px solid #ccc;color:#222;font-family:inherit;font-size:.875em;left:2.5em;padding:5px;position:absolute;top:.25em;width:14.84375em;z-index:99}.ol-geocoder .gcd-gl-input:focus{border:none;box-shadow:inset 0 0 0 1px #4d90fe,inset 0 0 5px #4d90fe;outline:none}.ol-geocoder .gcd-gl-reset{background-color:initial;border:none;cursor:pointer;display:inline-block;height:100%;line-height:1.4;outline:0;position:absolute;right:0;top:0;width:1.5625em;z-index:100}.ol-geocoder .gcd-gl-reset:after{color:#333;content:"\d7";cursor:pointer;display:inline-block;font-size:1.5em}.ol-geocoder .gcd-gl-btn{background-image:url(data:image/png;base64,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);background-position:50%;background-repeat:no-repeat;background-size:20px;height:1.5625em;left:.125em;position:absolute;top:.125em;width:1.5625em}.ol-geocoder ul.gcd-gl-result{background-color:#fff;border-radius:4px;border-top:none;border-top-left-radius:0;border-top-right-radius:0;box-shadow:0 1px 7px #000c;left:2em;list-style:none;margin:0;max-height:18.75em;overflow-x:hidden;overflow-y:auto;padding:0;position:absolute;top:2.1875em;transition:max-height .3s ease-in;white-space:normal;width:16.25em}.ol-geocoder ul.gcd-gl-result>li{border-bottom:1px solid #eee;line-height:.875rem;overflow:hidden;padding:0;width:100%}.ol-geocoder ul.gcd-gl-result>li>a{display:block;padding:3px 5px;text-decoration:none}.ol-geocoder ul.gcd-gl-result>li>a:hover{background-color:#d4d4d4}.ol-geocoder ul.gcd-gl-result>li:nth-child(odd){background-color:#e0ffe0}.ol-geocoder ul.gcd-gl-result:empty{display:none}.ol-geocoder.gcd-txt-container{box-sizing:border-box;height:4.375em;left:calc(50% - 12.5em);position:absolute;top:.5em;width:25em}.ol-geocoder.gcd-txt-container *,.ol-geocoder.gcd-txt-container :after,.ol-geocoder.gcd-txt-container :before{box-sizing:inherit}.ol-geocoder .gcd-txt-control{background-color:#fff;border:1px solid #ccc;height:4.375em;overflow:hidden;position:relative;width:100%}.ol-geocoder .gcd-txt-input{background-color:initial;border:none;font-family:inherit;font-size:.875em;height:100%;left:0;padding:5px 30px 5px 40px;position:absolute;text-indent:6px;top:0;width:100%;z-index:99}.ol-geocoder .gcd-txt-input:focus{box-shadow:inset 0 0 0 1px #4d90fe,inset 0 0 6px #4d90fe;outline:none}.ol-geocoder .gcd-txt-reset{background-color:initial;border:none;cursor:pointer;display:inline-block;height:100%;line-height:100%;outline:0;position:absolute;right:0;top:0;vertical-align:middle;width:2.5em;z-index:100}.ol-geocoder .gcd-txt-reset:after{color:#333;content:"\d7";cursor:pointer;display:inline-block;font-size:2em}.ol-geocoder .gcd-txt-glass{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='32' height='32'%3E%3Cpath fill='%23333' d='m29.156 29.961-.709.709a2.006 2.006 0 0 1-2.838 0l-5.676-5.674c-.656-.658-.729-1.644-.281-2.412l-3.104-3.102a9.975 9.975 0 0 1-5.965 1.979C5.043 21.461.552 16.97.552 11.43S5.043 1.398 10.583 1.398c5.541 0 10.031 4.491 10.031 10.032 0 2.579-.98 4.923-2.58 6.7l3.035 3.035c.768-.447 1.754-.375 2.41.283l5.676 5.674c.784.785.784 2.056.001 2.839zM18.088 11.389a7.524 7.524 0 0 0-7.524-7.523 7.523 7.523 0 1 0-.001 15.046 7.525 7.525 0 0 0 7.525-7.523z'/%3E%3C/svg%3E");background-position:50%;background-repeat:no-repeat;background-size:1.38889em;display:inline-block;height:100%;left:0;position:absolute;top:0;width:2.5em;z-index:100}.ol-geocoder ul.gcd-txt-result{background-color:#fff;border-radius:4px;border-top:none;border-top-left-radius:0;border-top-right-radius:0;box-shadow:0 1px 7px #000c;left:0;list-style:none;margin:0;max-height:18.75em;overflow-x:hidden;overflow-y:auto;padding:0;position:absolute;top:4.575em;transition:max-height .3s ease-in;white-space:normal;width:25em}.ol-geocoder ul.gcd-txt-result>li{border-bottom:1px solid #eee;line-height:.875rem;overflow:hidden;padding:0;width:100%}.ol-geocoder ul.gcd-txt-result>li>a{display:block;padding:3px 5px;text-decoration:none}.ol-geocoder ul.gcd-txt-result>li>a:hover{background-color:#d4d4d4}.ol-geocoder ul.gcd-txt-result>li:nth-child(odd){background-color:#e0ffe0}.ol-geocoder ul.gcd-txt-result:empty{display:none}.ol-geocoder .gcd-hidden{opacity:0;visibility:hidden}.ol-geocoder .gcd-pseudo-rotate:after{animation:spin .7s linear infinite}@keyframes spin{0%{transform:rotate(0deg)}to{transform:rotate(1turn)}}.gcd-address,.gcd-road{color:#333;font-size:.875em;font-weight:500}.gcd-city{font-weight:400}.gcd-city,.gcd-country{color:#333;font-size:.75em}.gcd-country{font-weight:lighter}.ol-geocoder.gcd-gl-container{z-index:0;left:calc(.5em - 1px)!important;top:calc(6.125em + 8px)!important}.ol-geocoder.gcd-gl-container .ol-control{background-color:#0000}.ol-geocoder.gcd-gl-container ul.gcd-gl-result>li:nth-child(odd){background-color:#f9f9f9}:host,:root{--ol-background-color:#fff;--ol-accent-background-color:#f5f5f5;--ol-subtle-background-color:#80808040;--ol-partial-background-color:#ffffffbf;--ol-foreground-color:#333;--ol-subtle-foreground-color:#666;--ol-brand-color:#0af}.ol-box{box-sizing:border-box;border-radius:2px;border:1.5px solid var(--ol-background-color);background-color:var(--ol-partial-background-color)}.ol-mouse-position{top:8px;right:8px;position:absolute}.ol-scale-line{background:var(--ol-partial-background-color);border-radius:4px;bottom:8px;left:8px;padding:2px;position:absolute}.ol-scale-line-inner{border:1px solid var(--ol-subtle-foreground-color);border-top:none;color:var(--ol-foreground-color);font-size:10px;text-align:center;margin:1px;will-change:contents,width;transition:all .25s}.ol-scale-bar{position:absolute;bottom:8px;left:8px}.ol-scale-bar-inner{display:flex}.ol-scale-step-marker{width:1px;height:15px;background-color:var(--ol-foreground-color);float:right;z-index:10}.ol-scale-step-text{bottom:-5px;font-size:10px;z-index:11}.ol-scale-step-text,.ol-scale-text{position:absolute;color:var(--ol-foreground-color);text-shadow:-1.5px 0 var(--ol-partial-background-color),0 1.5px var(--ol-partial-background-color),1.5px 0 var(--ol-partial-background-color),0 -1.5px var(--ol-partial-background-color)}.ol-scale-text{font-size:12px;text-align:center;bottom:25px}.ol-scale-singlebar{position:relative;height:10px;z-index:9;box-sizing:border-box;border:1px solid var(--ol-foreground-color)}.ol-scale-singlebar-even{background-color:var(--ol-subtle-foreground-color)}.ol-scale-singlebar-odd{background-color:var(--ol-background-color)}.ol-unsupported{display:none}.ol-unselectable,.ol-viewport{-webkit-touch-callout:none;-webkit-user-select:none;-moz-user-select:none;user-select:none;-webkit-tap-highlight-color:transparent}.ol-viewport canvas{all:unset;overflow:hidden}.ol-viewport{touch-action:pan-x pan-y}.ol-selectable{-webkit-touch-callout:default;-webkit-user-select:text;-moz-user-select:text;user-select:text}.ol-grabbing{cursor:grabbing}.ol-grab{cursor:move;cursor:grab}.ol-control{position:absolute;background-color:var(--ol-subtle-background-color);border-radius:4px}.ol-zoom{top:.5em;left:.5em}.ol-rotate{top:.5em;right:.5em;transition:opacity .25s linear,visibility 0s linear}.ol-rotate.ol-hidden{opacity:0;visibility:hidden;transition:opacity .25s linear,visibility 0s linear .25s}.ol-zoom-extent{top:4.643em;left:.5em}.ol-full-screen{right:.5em;top:.5em}.ol-control button{display:block;margin:1px;padding:0;color:var(--ol-subtle-foreground-color);font-weight:700;text-decoration:none;font-size:inherit;text-align:center;height:1.375em;width:1.375em;line-height:.4em;background-color:var(--ol-background-color);border:none;border-radius:2px}.ol-control button::-moz-focus-inner{border:none;padding:0}.ol-zoom-extent button{line-height:1.4em}.ol-compass{display:block;font-weight:400;will-change:transform}.ol-touch .ol-control button{font-size:1.5em}.ol-touch .ol-zoom-extent{top:5.5em}.ol-control button:focus,.ol-control button:hover{text-decoration:none;outline:1px solid var(--ol-subtle-foreground-color);color:var(--ol-foreground-color)}.ol-zoom .ol-zoom-in{border-radius:2px 2px 0 0}.ol-zoom .ol-zoom-out{border-radius:0 0 2px 2px}.ol-attribution{text-align:right;bottom:.5em;right:.5em;max-width:calc(100% - 1.3em);display:flex;flex-flow:row-reverse;align-items:center}.ol-attribution a{color:var(--ol-subtle-foreground-color);text-decoration:none}.ol-attribution ul{margin:0;padding:1px .5em;color:var(--ol-foreground-color);text-shadow:0 0 2px var(--ol-background-color);font-size:12px}.ol-attribution li{display:inline;list-style:none}.ol-attribution li:not(:last-child):after{content:" "}.ol-attribution img{max-height:2em;max-width:inherit;vertical-align:middle}.ol-attribution button{flex-shrink:0}.ol-attribution.ol-collapsed ul{display:none}.ol-attribution:not(.ol-collapsed){background:var(--ol-partial-background-color)}.ol-attribution.ol-uncollapsible{bottom:0;right:0;border-radius:4px 0 0}.ol-attribution.ol-uncollapsible img{margin-top:-.2em;max-height:1.6em}.ol-attribution.ol-uncollapsible button{display:none}.ol-zoomslider{top:4.5em;left:.5em;height:200px}.ol-zoomslider button{position:relative;height:10px}.ol-touch .ol-zoomslider{top:5.5em}.ol-overviewmap{left:.5em;bottom:.5em}.ol-overviewmap.ol-uncollapsible{bottom:0;left:0;border-radius:0 4px 0 0}.ol-overviewmap .ol-overviewmap-map,.ol-overviewmap button{display:block}.ol-overviewmap .ol-overviewmap-map{border:1px solid var(--ol-subtle-foreground-color);height:150px;width:150px}.ol-overviewmap:not(.ol-collapsed) button{bottom:0;left:0;position:absolute}.ol-overviewmap.ol-collapsed .ol-overviewmap-map,.ol-overviewmap.ol-uncollapsible button{display:none}.ol-overviewmap:not(.ol-collapsed){background:var(--ol-subtle-background-color)}.ol-overviewmap-box{border:1.5px dotted var(--ol-subtle-foreground-color)}.ol-overviewmap .ol-overviewmap-box:hover{cursor:move}.ol-control.ol-layerswitcher{position:absolute;right:.5em;text-align:left;top:3em;max-height:calc(100% - 6em);box-sizing:border-box;overflow:hidden}.ol-control.ol-layerswitcher .ol-switcherbottomdiv,.ol-control.ol-layerswitcher .ol-switchertopdiv{display:block}.ol-control.ol-layerswitcher.ol-collapsed .ol-switcherbottomdiv,.ol-control.ol-layerswitcher.ol-collapsed .ol-switchertopdiv{display:none}.ol-layerswitcher.ol-forceopen.ol-collapsed .ol-switcherbottomdiv,.ol-layerswitcher.ol-forceopen.ol-collapsed .ol-switchertopdiv{display:block}.ol-control.ol-layerswitcher .ol-switcherbottomdiv,.ol-control.ol-layerswitcher .ol-switchertopdiv{position:absolute;top:0;left:0;right:0;height:45px;background:#fff;z-index:2;opacity:1;cursor:pointer;border-top:2px solid #0000;border-bottom:2px solid #369;margin:0 2px;box-sizing:border-box}.ol-control.ol-layerswitcher .ol-switcherbottomdiv{top:auto;bottom:0;height:2em;border-top:2px solid #369;border-bottom:2px solid #0000}.ol-control.ol-layerswitcher .ol-switcherbottomdiv:before,.ol-control.ol-layerswitcher .ol-switchertopdiv:before{content:"";position:absolute;left:50%;top:50%;border:10px solid #0000;width:0;height:0;transform:translate(-50%,-50%);-webkit-transform:translate(-50%,-50%);opacity:.8}.ol-control.ol-layerswitcher .ol-switcherbottomdiv:hover:before,.ol-control.ol-layerswitcher .ol-switchertopdiv:hover:before{opacity:1}.ol-control.ol-layerswitcher .ol-switchertopdiv:before{border-bottom-color:#369;border-top:0}.ol-control.ol-layerswitcher .ol-switcherbottomdiv:before{border-top-color:#369;border-bottom:0}.ol-control.ol-layerswitcher .panel-container{background-color:#fff;border-radius:0 0 2px 2px;clear:both;display:block;padding:.5em .5em 0}.ol-layerswitcher .panel{list-style:none;padding:0;margin:0;overflow:hidden;font-family:Tahoma,Geneva,sans-serif;font-size:.9em;transition:top .3s;position:relative;top:0}.ol-layerswitcher .panel ul{list-style:none;padding:0 0 0 20px;overflow:hidden;clear:both}.ol-layerswitcher input[type=checkbox],.ol-layerswitcher input[type=radio]{display:none}.ol-layerswitcher .panel li{-weblit-transition:-webkit-transform .2s linear;transition:transform .2s linear;clear:both;display:block;border:1px solid #0000;box-sizing:border-box}.ol-layerswitcher .panel li.ol-layer-select{background-color:#003c8833;margin:0 -.5em;padding:0 .5em}.ol-layerswitcher .panel li.drag{opacity:.5;transform:scale(.8);-webkit-transform:scale(.8)}.ol-dragover{background:#33669980;opacity:.8}.forbidden .layerswitcher-opacity div,.forbidden .ol-layerswitcher-buttons div,.ol-layerswitcher .panel li.forbidden{background:#ff000080;color:red!important}.ol-layerswitcher.drag,.ol-layerswitcher.drag *{cursor:not-allowed!important;cursor:no-drop!important}.ol-layerswitcher.drag .panel li.dropover,.ol-layerswitcher.drag .panel li.dropover *{cursor:pointer!important;cursor:n-resize!important;cursor:ns-resize!important;cursor:grab!important;cursor:grabbing!important}.ol-layerswitcher .panel li.dropover{background:#33669980}.ol-layerswitcher .panel li label{display:inline-block;height:1.4em;max-width:12em;overflow:hidden;white-space:nowrap;text-overflow:ellipsis;padding:0 0 0 1.7em;position:relative}.ol-layerswitcher .panel li label span{display:inline-block;width:100%;height:100%;overflow:hidden;text-overflow:ellipsis;padding-right:.2em}.ol-layerswitcher [type=checkbox]+label:before,.ol-layerswitcher [type=checkbox]:checked+label:after,.ol-layerswitcher [type=radio]+label:before,.ol-layerswitcher [type=radio]:checked+label:after{content:"";position:absolute;left:.1em;top:.1em;width:1.2em;height:1.2em;border:2px solid #369;background:#fff;box-sizing:border-box}.ol-layerswitcher [type=radio]+label:after,.ol-layerswitcher [type=radio]+label:before{border-radius:50%}.ol-layerswitcher [type=radio]:checked+label:after{background:#369 none repeat scroll 0 0;margin:.3em;width:.6em;height:.6em}.ol-layerswitcher [type=checkbox]:checked+label:after{background:#0000;border-width:0 3px 3px 0;border-style:solid;border-color:#369;width:.7em;height:1em;transform:rotate(45deg);left:.55em;top:-.05em;box-shadow:1px 0 1px 1px #fff}.ol-layerswitcher .panel li.ol-layer-hidden{opacity:.6}.ol-layerswitcher.ol-collapsed .panel-container{display:none}.ol-layerswitcher.ol-forceopen .panel-container{display:block}.ol-layerswitcher-image>button,.ol-layerswitcher>button{background-color:#fff;float:right;z-index:10;position:relative;font-size:1.7em}.ol-touch .ol-layerswitcher-image>button,.ol-touch .ol-layerswitcher>button{font-size:2.5em}.ol-layerswitcher-image>button:after,.ol-layerswitcher-image>button:before,.ol-layerswitcher>button:after,.ol-layerswitcher>button:before{content:"";position:absolute;width:.75em;height:.75em;border-radius:.15em;transform:scaleY(.8) rotate(45deg)}.ol-layerswitcher-image>button:before,.ol-layerswitcher>button:before{background:#e2e4e1;top:.32em;left:.34em;box-shadow:.1em .1em #325158}.ol-layerswitcher-image>button:after,.ol-layerswitcher>button:after{top:.22em;left:.34em;background:#83bcc5;background-image:radial-gradient(circle at .85em .6em,#70b3be 0,#70b3be .65em,#83bcc5 0)}.ol-layerswitcher-buttons{display:block;float:right;text-align:right}.ol-layerswitcher-buttons>div{cursor:pointer;height:1em;width:1em;margin:2px;line-height:1em;text-align:center;background:#369;vertical-align:middle;color:#fff}.ol-layerswitcher .panel li>div,.ol-layerswitcher-buttons>div{display:inline-block;position:relative}.ol-layerswitcher .ol-separator{display:block;width:0;height:0;padding:0;margin:0}.ol-layerswitcher .layerup{float:right;height:2.5em;background-color:#369;opacity:.5;cursor:move;cursor:ns-resize}.ol-layerswitcher .layerup:after,.ol-layerswitcher .layerup:before{border-color:#fff #0000;border-style:solid;border-width:.4em .4em 0;content:"";height:0;position:absolute;bottom:3px;left:.1em;width:0}.ol-layerswitcher .layerup:after{border-width:0 .4em .4em;top:3px;bottom:auto}.ol-layerswitcher .layerInfo{background:#369;border-radius:100%}.ol-layerswitcher .layerInfo:before{color:#fff;content:"i";display:block;font-size:.8em;font-weight:700;text-align:center;width:1.25em;position:absolute;left:0;top:0}.ol-layerswitcher .layerTrash{background:#369}.ol-layerswitcher .layerTrash:before{color:#fff;content:"\00d7";font-size:1em;top:50%;left:0;right:0;text-align:center;line-height:1em;margin:-.5em 0;position:absolute}.ol-layerswitcher .layerExtent{background:#369}.ol-layerswitcher .layerExtent:before{border-right:1px solid #fff;border-bottom:1px solid #fff;content:"";display:block;position:absolute;left:6px;right:2px;top:6px;bottom:3px}.ol-layerswitcher .layerExtent:after{border-left:1px solid #fff;border-top:1px solid #fff;content:"";display:block;position:absolute;bottom:6px;left:2px;right:6px;top:3px}.ol-layerswitcher .collapse-layers,.ol-layerswitcher .expend-layers{margin:0 2px;background-color:initial}.ol-layerswitcher .collapse-layers:before,.ol-layerswitcher .expend-layers:before{content:"";position:absolute;top:50%;left:0;margin-top:-2px;height:4px;width:100%;background:#369}.ol-layerswitcher .expend-layers:after{content:"";position:absolute;left:50%;top:0;margin-left:-2px;width:4px;height:100%;background:#369}.ol-layerswitcher .layerswitcher-opacity{position:relative;border:1px solid #369;height:3px;width:120px;margin:5px 1em 10px 7px;box-sizing:border-box;border-radius:3px;background:#69c;background:linear-gradient(90deg,#003c8800,#003c8899);cursor:pointer;box-shadow:1px 1px 1px #00000080}.ol-layerswitcher .layerswitcher-opacity .layerswitcher-opacity-cursor,.ol-layerswitcher .layerswitcher-opacity .layerswitcher-opacity-cursor:before{position:absolute;width:20px;height:20px;top:50%;left:50%;background:#003c8880;border-radius:50%;transform:translate(-50%,-50%);z-index:1}.ol-layerswitcher .layerswitcher-opacity .layerswitcher-opacity-cursor:before{content:"";position:absolute;width:50%;height:50%}.ol-touch .ol-layerswitcher .layerswitcher-opacity .layerswitcher-opacity-cursor{width:26px;height:26px}.ol-layerswitcher .layerswitcher-opacity-label{display:none;position:absolute;right:-2.5em;bottom:5px;font-size:.8em}.ol-layerswitcher .layerswitcher-opacity-label:after{content:"%"}.ol-layerswitcher .layerswitcher-progress{display:block;margin:-4px 1em 2px 7px;width:120px}.ol-layerswitcher .layerswitcher-progress div{background-color:#369;height:2px;display:block;width:0}.ol-progress-control[data-v-1da4d958]{opacity:1;transition:opacity .4s;bottom:calc(22px + 1em);left:8px;position:absolute;background-color:#003c8880;border-radius:4px;padding:2px;width:150px;text-align:center}.ol-progress-control .progress-label[data-v-1da4d958]{font-size:10px;color:#fff;margin-top:2px}.ol-progress-control .progress-bar[data-v-1da4d958]{border-radius:4px;border:1px solid #fff;height:10px}.ol-progress-control .progress-bar-inner[data-v-1da4d958]{background-color:#fff;height:10px;width:0}.ol-location[data-v-71051cba]{z-index:0;left:.5em;top:calc(3.75em + 6px)}.value[data-v-6d7a0f06]{position:absolute;top:.5em;left:calc(2.375em + 6px);max-width:calc(100% - 4.75em - 12px);box-sizing:border-box;background-color:#fff9}.pointer[data-v-6d7a0f06]{cursor:pointer}.ol-layerswitcher>button{font-size:1.14em}.ol-layerswitcher>button:after,.ol-layerswitcher>button:before{background:#0000;background-image:none;box-shadow:none;position:inherit;transform:none;display:inline-block;width:auto;height:auto}.ol-layerswitcher>button:after{font-family:Font Awesome\ 5 Free;content:"";font-weight:900;left:1px;top:1px}.ol-scale-line{background-color:#003c8880}.ol-scale-line-inner{color:#fff;border-color:#fff}.ol-control,.ol-unselectable{z-index:2}.ol-control.ol-timeline,.ol-unselectable.ol-timeline{z-index:1}.ol-control.ol-timeline .ol-buttons,.ol-unselectable.ol-timeline .ol-buttons{width:auto;font-size:.8em}.ol-control.ol-timeline .ol-buttons>button,.ol-unselectable.ol-timeline .ol-buttons>button{display:inline-block}.ol-control.ol-timeline .ol-buttons .timeline-date-label,.ol-unselectable.ol-timeline .ol-buttons .timeline-date-label{width:7em;font-weight:400}.choose-bbox[data-v-61a75ac8],.map[data-v-61a75ac8]{display:flex;flex-direction:column;flex-grow:1}.choose-collection .vue-component.searchable-list ul.list>li{margin-bottom:0}.choose-collection .vue-component.searchable-list ul.list>li>summary{margin:0;line-height:inherit}.choose-collection .vue-component.searchable-list ul.list>li>summary:before{content:"";margin-left:0;float:none}fieldset[disabled] .multiselect{pointer-events:none}.multiselect__spinner{position:absolute;right:1px;top:1px;width:40px;height:38px;background:#fff;display:block}.multiselect__spinner:after,.multiselect__spinner:before{position:absolute;content:"";top:50%;left:50%;margin:-8px 0 0 -8px;width:16px;height:16px;border-radius:100%;border:2px solid #0000;border-top-color:#41b883;box-shadow:0 0 0 1px #0000}.multiselect__spinner:before{animation:spinning 2.4s cubic-bezier(.41,.26,.2,.62);animation-iteration-count:infinite}.multiselect__spinner:after{animation:spinning 2.4s cubic-bezier(.51,.09,.21,.8);animation-iteration-count:infinite}.multiselect__loading-enter-active,.multiselect__loading-leave-active{transition:opacity .4s ease-in-out;opacity:1}.multiselect__loading-enter,.multiselect__loading-leave-active{opacity:0}.multiselect,.multiselect__input,.multiselect__single{font-family:inherit;font-size:16px;touch-action:manipulation}.multiselect{box-sizing:initial;display:block;position:relative;width:100%;min-height:40px;text-align:left;color:#35495e}.multiselect *{box-sizing:border-box}.multiselect:focus{outline:none}.multiselect--disabled{background:#ededed;pointer-events:none;opacity:.6}.multiselect--active{z-index:50}.multiselect--active:not(.multiselect--above) .multiselect__current,.multiselect--active:not(.multiselect--above) .multiselect__input,.multiselect--active:not(.multiselect--above) .multiselect__tags{border-bottom-left-radius:0;border-bottom-right-radius:0}.multiselect--active .multiselect__select{transform:rotate(180deg)}.multiselect--above.multiselect--active .multiselect__current,.multiselect--above.multiselect--active .multiselect__input,.multiselect--above.multiselect--active .multiselect__tags{border-top-left-radius:0;border-top-right-radius:0}.multiselect__input,.multiselect__single{position:relative;display:inline-block;min-height:20px;line-height:20px;border:none;border-radius:5px;background:#fff;padding:0 0 0 5px;width:100%;transition:border .1s ease;box-sizing:border-box;margin-bottom:8px;vertical-align:top}.multiselect__input::placeholder{color:#35495e}.multiselect__tag~.multiselect__input,.multiselect__tag~.multiselect__single{width:auto}.multiselect__input:hover,.multiselect__single:hover{border-color:#cfcfcf}.multiselect__input:focus,.multiselect__single:focus{border-color:#a8a8a8;outline:none}.multiselect__single{padding-left:5px;margin-bottom:8px}.multiselect__tags-wrap{display:inline}.multiselect__tags{min-height:40px;display:block;padding:8px 40px 0 8px;border-radius:5px;border:1px solid #e8e8e8;background:#fff;font-size:14px}.multiselect__tag{position:relative;display:inline-block;padding:4px 26px 4px 10px;border-radius:5px;margin-right:10px;color:#fff;line-height:1;background:#41b883;margin-bottom:5px;white-space:nowrap;overflow:hidden;max-width:100%;text-overflow:ellipsis}.multiselect__tag-icon{cursor:pointer;margin-left:7px;position:absolute;right:0;top:0;bottom:0;font-weight:700;font-style:normal;width:22px;text-align:center;line-height:22px;transition:all .2s ease;border-radius:5px}.multiselect__tag-icon:after{content:"\D7";color:#266d4d;font-size:14px}.multiselect__tag-icon:focus,.multiselect__tag-icon:hover{background:#369a6e}.multiselect__tag-icon:focus:after,.multiselect__tag-icon:hover:after{color:#fff}.multiselect__current{min-height:40px;overflow:hidden;padding:8px 30px 0 12px;white-space:nowrap;border-radius:5px;border:1px solid #e8e8e8}.multiselect__current,.multiselect__select{line-height:16px;box-sizing:border-box;display:block;margin:0;text-decoration:none;cursor:pointer}.multiselect__select{position:absolute;width:40px;height:38px;right:1px;top:1px;padding:4px 8px;text-align:center;transition:transform .2s ease}.multiselect__select:before{position:relative;right:0;top:65%;color:#999;margin-top:4px;border-color:#999 #0000 #0000;border-style:solid;border-width:5px 5px 0;content:""}.multiselect__placeholder{color:#adadad;display:inline-block;margin-bottom:10px;padding-top:2px}.multiselect--active .multiselect__placeholder{display:none}.multiselect__content-wrapper{position:absolute;display:block;background:#fff;width:100%;max-height:240px;overflow:auto;border:1px solid #e8e8e8;border-top:none;border-bottom-left-radius:5px;border-bottom-right-radius:5px;z-index:50;-webkit-overflow-scrolling:touch}.multiselect__content{list-style:none;display:inline-block;padding:0;margin:0;min-width:100%;vertical-align:top}.multiselect--above .multiselect__content-wrapper{bottom:100%;border-bottom-left-radius:0;border-bottom-right-radius:0;border-top-left-radius:5px;border-top-right-radius:5px;border-bottom:none;border-top:1px solid #e8e8e8}.multiselect__content::webkit-scrollbar{display:none}.multiselect__element{display:block}.multiselect__option{display:block;padding:12px;min-height:40px;line-height:16px;text-decoration:none;text-transform:none;vertical-align:middle;position:relative;cursor:pointer;white-space:nowrap}.multiselect__option:after{top:0;right:0;position:absolute;line-height:40px;padding-right:12px;padding-left:20px;font-size:13px}.multiselect__option--highlight{background:#41b883;outline:none;color:#fff}.multiselect__option--highlight:after{content:attr(data-select);background:#41b883;color:#fff}.multiselect__option--selected{background:#f3f3f3;color:#35495e;font-weight:700}.multiselect__option--selected:after{content:attr(data-selected);color:silver;background:inherit}.multiselect__option--selected.multiselect__option--highlight{background:#ff6a6a;color:#fff}.multiselect__option--selected.multiselect__option--highlight:after{background:#ff6a6a;content:attr(data-deselect);color:#fff}.multiselect--disabled .multiselect__current,.multiselect--disabled .multiselect__select{background:#ededed;color:#a6a6a6}.multiselect__option--disabled{background:#ededed!important;color:#a6a6a6!important;cursor:text;pointer-events:none}.multiselect__option--group{background:#ededed;color:#35495e}.multiselect__option--group.multiselect__option--highlight{background:#35495e;color:#fff}.multiselect__option--group.multiselect__option--highlight:after{background:#35495e}.multiselect__option--disabled.multiselect__option--highlight{background:#dedede}.multiselect__option--group-selected.multiselect__option--highlight{background:#ff6a6a;color:#fff}.multiselect__option--group-selected.multiselect__option--highlight:after{background:#ff6a6a;content:attr(data-deselect);color:#fff}.multiselect-enter-active,.multiselect-leave-active{transition:all .15s ease}.multiselect-enter,.multiselect-leave-active{opacity:0}.multiselect__strong{margin-bottom:8px;line-height:20px;display:inline-block;vertical-align:top}[dir=rtl] .multiselect{text-align:right}[dir=rtl] .multiselect__select{right:auto;left:1px}[dir=rtl] .multiselect__tags{padding:8px 8px 0 40px}[dir=rtl] .multiselect__content{text-align:right}[dir=rtl] .multiselect__option:after{right:auto;left:0}[dir=rtl] .multiselect__clear{right:auto;left:12px}[dir=rtl] .multiselect__spinner{right:auto;left:1px}@keyframes spinning{0%{transform:rotate(0)}to{transform:rotate(2turn)}}.select-container{display:flex;flex-grow:1}.select-container>div{flex-grow:1}.select-container>button{margin-left:10px}.select-container .multiselect__option--highlight,.select-container .multiselect__option--highlight:after,.select-container .multiselect__option--selected.multiselect__option--highlight{background:#1665b6}.mode[data-v-449febe3]{padding-left:3em}.mode>li[data-v-449febe3]{list-style-type:none;margin-bottom:1em;line-height:1.5em}.mode>li>label>strong[data-v-449febe3]{display:inline-block;margin-bottom:.5em;margin-left:.5em}.mode>li>input[data-v-449febe3]{margin-left:-3em;display:inline-block}.vue-component .highlight-box{box-shadow:0 0 0 .2em #c8e1ff}.vue-component code.id{color:maroon}.vue-component abbr{-webkit-text-decoration:underline dotted 1px;text-decoration:underline dotted 1px}.vue-component .unit{opacity:.6}.vue-component .status[data-value=submitted]{color:#000}.vue-component .status[data-value=running]{color:#ff8c00}.vue-component .status[data-value=queued]{color:#00008b}.vue-component .status[data-value=finished]{color:#006400}.vue-component .status[data-value=canceled]{color:#a9a9a9}.vue-component .status[data-value=error]{color:red}.vue-component.inline.process{margin-left:1em}.vue-component.inline h1{font-size:1.17em}.vue-component.inline h2{font-size:1.1em}.vue-component.inline h3{font-size:1.05em}.vue-component.inline h4,.vue-component.inline h5,.vue-component.inline h6{font-size:1em}.vue-component .comma-separated-list{display:inline;list-style:none;padding:0}.vue-component .comma-separated-list li{display:inline;padding:0}.vue-component .comma-separated-list li:after{content:", "}.vue-component .comma-separated-list li:last-child:after{content:""}.vue-component .required{color:red;font-weight:700}.vue-component.message-block{margin:1em 0;padding:.5em}.vue-component.message-block>strong{display:block;margin-bottom:.5em}.vue-component.message-block>p{margin:0}.vue-component .param-name,.vue-component .process-name{color:#369}.vue-component .param-argument,.vue-component .return-value{color:#936}.vue-component .data-type{color:#693}.vue-component .param-optional{font-weight:700}.vue-component .badges{margin:0;padding:0;list-style-type:none;display:inline-block}.vue-component .badges .badge{display:inline-block;font-size:.8em;margin:.25em;padding:.35em .5em .25em .5em;line-height:1em;text-align:center;white-space:nowrap;text-transform:uppercase;vertical-align:initial;border-radius:.5em;color:#fff;background-color:#6c757d}.vue-component .badges:not(.inline){margin-left:-.25em;margin-right:-.25em}.vue-component .badges.small .badge{padding:.25em .35em .2em .35em;font-size:.75em}.vue-component .badges.inline{margin-left:.5em;border-radius:.25em}.vue-component .badges.inline .badge{margin-top:0;margin-bottom:0}.vue-component .badges .badge a{color:#fff;border-bottom:1px dotted #fff;text-decoration:none}.vue-component .badges .badge a.badge-fill{margin:-.35em -.5em;padding:.35em .5em;display:block;border-bottom:0}.vue-component .badges.small .badge a.badge-fill{margin:-.2em -.3em;padding:.25em .35em}.vue-component .badges .badge a:hover{color:#fff;border-bottom-style:solid}.vue-component .badges .default{background-color:#555}.vue-component .badges .green{background-color:green}.vue-component .badges .red{background-color:maroon}.vue-component .badges .option1{background-color:#369}.vue-component .badges .option2{background-color:#693}.vue-component .badges .option3{background-color:#936}.vue-component .badges .option4{background-color:#963}.vue-component .badges .deprecated{background-color:red}.vue-component .badges .experimental{background-color:#8a2be2}.vue-component .badges .action{border:1px solid #000;background-color:#fff;color:#000;margin:.33em;cursor:pointer;text-transform:none}.vue-component .badges .action:hover{background-color:#000;color:#fff}.vue-component .badges .action:hover>a{color:#fff}.vue-component .badges .action>a{color:#000}.vue-component .badges .docker{background-color:#0db7ed}.vue-component .tabular{display:flex;margin:.2em 0;padding:1px}.vue-component .tabular label{flex:1;font-weight:700}.vue-component .tabular .value{flex:3}.vue-component .tabular .value td>div,.vue-component .tabular .value>.formatted>ul,.vue-component .tabular .value>ul,.vue-component .tabular ul.value{max-height:15em;overflow:auto}.vue-component .tabular .value pre{margin:0}.vue-component.stac .map{background:#0000;height:350px}.vue-component.stac .tabular{margin:.5em 0}.vue-component.stac .tabular.wrap{display:block}.vue-component.stac .tabular.wrap .value{margin-top:.5em;margin-left:1em;margin-bottom:.5em}.vue-component.stac .tabular .value ul{padding-left:20px}.assets.empty,.vue-component.stac .links:empty{display:none}.vue-component.stac .thumbnails{overflow-x:auto;overflow-y:hidden;width:100%;white-space:nowrap}.vue-component.stac .thumbnails a{margin:5px;display:inline-block}.vue-component.stac .thumbnails a img{padding:2px;max-height:200px;vertical-align:middle;border:2px solid #0000}.vue-component.stac .thumbnails a:hover img{border:2px solid #00000080}.vue-component .federation>ul>li{margin-bottom:.5em}.vue-component .federation>ul>li>small{display:block}.vue-component .federation>ul>li>h4{margin:0}.vue-component .federation .fed-header{margin:.2em 0}.vue-component .federation .fed-header>.fed-title{display:inline-block;vertical-align:bottom}.vue-component.searchable-list.expandable .heading{cursor:pointer;padding-left:1em}.vue-component.searchable-list.expandable .heading:before{content:"▸";margin-left:-1em;float:left;font-size:1em}.vue-component.searchable-list.expandable.expanded .heading:before{content:"▾"}.vue-component.searchable-list .action-bar{width:100%;display:flex;margin-bottom:1em;padding:1px;gap:.5em}.vue-component.searchable-list .action-bar:empty{display:none}.vue-component.searchable-list .action-bar>.search-box{min-width:150px;flex:1;margin:0}.vue-component.searchable-list .action-bar>.deprecated{white-space:nowrap;align-content:center}.vue-component.searchable-list .details{display:none}.vue-component.searchable-list .list .details h2,.vue-component.searchable-list .list .details h3,.vue-component.searchable-list .list .details h4,.vue-component.searchable-list .list .details h5,.vue-component.searchable-list .list .details h6{font-size:1em}.vue-component.searchable-list ul.list{margin-left:0;padding-left:0;list-style-type:none}.vue-component.searchable-list ul.list>li{margin-bottom:.5em}.vue-component.searchable-list ul.list>li>summary{margin-bottom:.5em;margin-left:1em;line-height:1.33em}.vue-component.searchable-list ul.list>li>summary strong{display:block;text-overflow:ellipsis;overflow:hidden}.vue-component.searchable-list ul.list>li>summary strong .copy{display:none}.vue-component.searchable-list ul.list>li>summary strong.inline{display:inline}.vue-component.searchable-list ul.list>li>summary.experimental strong{color:#8a2be2}.vue-component.searchable-list ul.list>li>summary.deprecated strong{text-decoration:line-through}.vue-component.searchable-list ul.list>li>summary:before{content:"▸";margin-left:-1em;float:left;font-size:1em}.vue-component.searchable-list ul.list>li>summary .badges.block{display:block}.vue-component.searchable-list ul.expandable>li>summary{cursor:pointer}.vue-component.searchable-list ul.expandable>li>summary:hover strong .copy{display:inline-block!important}.vue-component.searchable-list ul.expandable>li.expanded{margin-bottom:2em}.vue-component.searchable-list ul.expandable>li.expanded .details{display:block;margin-left:1em}.vue-component.searchable-list ul.expandable>li.expanded>summary:before{content:"▾"}.vue-component.searchable-list ul.expandable>li.expanded>summary .hideOnExpand{display:none}.choose-index .vue-component.searchable-list ul.list>li{margin-bottom:0}.choose-index .vue-component.searchable-list ul.list>li>summary{margin:0}.choose-index .vue-component.searchable-list ul.list>li>summary:before{content:"";margin-left:0;float:none}.choose-index .vue-component.searchable-list ul.list>li>summary .summary .title{display:flex}.choose-index .vue-component.searchable-list ul.list>li>summary .summary .title strong{flex-grow:1}.choose-index .vue-component.searchable-list ul.list>li>summary .summary code{display:block}.choose-index .domain{background-color:#000}.choose-index .domain.water{background-color:#00008b}.choose-index .domain.vegetation{background-color:#006400}.choose-index .domain.burn{background-color:#b8860b}.choose-index .domain.soil{background-color:#5c4033}.choose-index .domain.urban{background-color:maroon}.choose-index .domain.radar{background-color:#9400d3}.choose-index .domain.snow{background-color:#008b8b}.mx-icon-double-left:after,.mx-icon-double-left:before,.mx-icon-double-right:after,.mx-icon-double-right:before,.mx-icon-left:before,.mx-icon-right:before{content:"";position:relative;top:-1px;display:inline-block;width:10px;height:10px;vertical-align:middle;border-style:solid;border-color:currentColor;border-width:2px 0 0 2px;border-radius:1px;-webkit-box-sizing:border-box;box-sizing:border-box;-webkit-transform-origin:center;transform-origin:center;-webkit-transform:rotate(-45deg) scale(.7);transform:rotate(-45deg) scale(.7)}.mx-icon-double-left:after{left:-4px}.mx-icon-double-right:before{left:4px}.mx-icon-double-right:after,.mx-icon-double-right:before,.mx-icon-right:before{-webkit-transform:rotate(135deg) scale(.7);transform:rotate(135deg) scale(.7)}.mx-btn{-webkit-box-sizing:border-box;box-sizing:border-box;line-height:1;font-size:14px;font-weight:500;padding:7px 15px;margin:0;cursor:pointer;background-color:initial;outline:none;border:1px solid #0000001a;border-radius:4px;color:#73879c;white-space:nowrap}.mx-btn:hover{border-color:#1284e7;color:#1284e7}.mx-btn.disabled,.mx-btn:disabled{color:#ccc;cursor:not-allowed}.mx-btn-text{border:0;padding:0 4px;text-align:left;line-height:inherit}.mx-scrollbar{height:100%}.mx-scrollbar:hover .mx-scrollbar-track{opacity:1}.mx-scrollbar-wrap{height:100%;overflow-x:hidden;overflow-y:auto}.mx-scrollbar-track{position:absolute;top:2px;right:2px;bottom:2px;width:6px;z-index:1;border-radius:4px;opacity:0;-webkit-transition:opacity .24s ease-out;transition:opacity .24s ease-out}.mx-scrollbar-track .mx-scrollbar-thumb{position:absolute;width:100%;height:0;cursor:pointer;border-radius:inherit;background-color:#9093994d;-webkit-transition:background-color .3s;transition:background-color .3s}.mx-zoom-in-down-enter-active,.mx-zoom-in-down-leave-active{opacity:1;-webkit-transform:scaleY(1);transform:scaleY(1);-webkit-transition:opacity .3s cubic-bezier(.23,1,.32,1),-webkit-transform .3s cubic-bezier(.23,1,.32,1);transition:opacity .3s cubic-bezier(.23,1,.32,1),-webkit-transform .3s cubic-bezier(.23,1,.32,1);transition:transform .3s cubic-bezier(.23,1,.32,1),opacity .3s cubic-bezier(.23,1,.32,1);transition:transform .3s cubic-bezier(.23,1,.32,1),opacity .3s cubic-bezier(.23,1,.32,1),-webkit-transform .3s cubic-bezier(.23,1,.32,1);-webkit-transform-origin:center top;transform-origin:center top}.mx-zoom-in-down-enter,.mx-zoom-in-down-enter-from,.mx-zoom-in-down-leave-to{opacity:0;-webkit-transform:scaleY(0);transform:scaleY(0)}.mx-datepicker{position:relative;display:inline-block;width:210px}.mx-datepicker svg{width:1em;height:1em;vertical-align:-.15em;fill:currentColor;overflow:hidden}.mx-datepicker-range{width:320px}.mx-datepicker-inline{width:auto}.mx-input-wrapper{position:relative}.mx-input{display:inline-block;-webkit-box-sizing:border-box;box-sizing:border-box;width:100%;height:34px;padding:6px 30px;padding-left:10px;font-size:14px;line-height:1.4;color:#555;background-color:#fff;border:1px solid #ccc;border-radius:4px;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075);box-shadow:inset 0 1px 1px rgba(0,0,0,.075)}.mx-input:focus,.mx-input:hover{border-color:#409aff}.mx-input.disabled,.mx-input:disabled{color:#ccc;background-color:#f3f3f3;border-color:#ccc;cursor:not-allowed}.mx-input:focus{outline:none}.mx-input::-ms-clear{display:none}.mx-icon-calendar,.mx-icon-clear{position:absolute;top:50%;right:8px;-webkit-transform:translateY(-50%);transform:translateY(-50%);font-size:16px;line-height:1;color:#00000080;vertical-align:middle}.mx-icon-clear{cursor:pointer}.mx-icon-clear:hover{color:#000c}.mx-datepicker-main{font:14px/1.5 Helvetica Neue,Helvetica,Arial,Microsoft Yahei,sans-serif;color:#73879c;background-color:#fff;border:1px solid #e8e8e8}.mx-datepicker-popup{position:absolute;margin-top:1px;margin-bottom:1px;-webkit-box-shadow:0 6px 12px rgba(0,0,0,.175);box-shadow:0 6px 12px rgba(0,0,0,.175);z-index:2001}.mx-datepicker-sidebar{float:left;-webkit-box-sizing:border-box;box-sizing:border-box;width:100px;padding:6px;overflow:auto}.mx-datepicker-sidebar+.mx-datepicker-content{margin-left:100px;border-left:1px solid #e8e8e8}.mx-datepicker-body{position:relative;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.mx-btn-shortcut{display:block;padding:0 6px;line-height:24px}.mx-range-wrapper{display:-webkit-box;display:-ms-flexbox;display:flex}@media(max-width:750px){.mx-range-wrapper{-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column}}.mx-datepicker-header{padding:6px 8px;border-bottom:1px solid #e8e8e8}.mx-datepicker-footer{padding:6px 8px;text-align:right;border-top:1px solid #e8e8e8}.mx-calendar{-webkit-box-sizing:border-box;box-sizing:border-box;width:248px;padding:6px 12px}.mx-calendar+.mx-calendar{border-left:1px solid #e8e8e8}.mx-calendar-header,.mx-time-header{-webkit-box-sizing:border-box;box-sizing:border-box;height:34px;line-height:34px;text-align:center;overflow:hidden}.mx-btn-icon-double-left,.mx-btn-icon-left{float:left}.mx-btn-icon-double-right,.mx-btn-icon-right{float:right}.mx-calendar-header-label{font-size:14px}.mx-calendar-decade-separator{margin:0 2px}.mx-calendar-decade-separator:after{content:"~"}.mx-calendar-content{position:relative;height:224px;-webkit-box-sizing:border-box;box-sizing:border-box}.mx-calendar-content .cell{cursor:pointer}.mx-calendar-content .cell:hover{color:#73879c;background-color:#f3f9fe}.mx-calendar-content .cell.active{color:#fff;background-color:#1284e7}.mx-calendar-content .cell.hover-in-range,.mx-calendar-content .cell.in-range{color:#73879c;background-color:#dbedfb}.mx-calendar-content .cell.disabled{cursor:not-allowed;color:#ccc;background-color:#f3f3f3}.mx-calendar-week-mode .mx-date-row{cursor:pointer}.mx-calendar-week-mode .mx-date-row:hover{background-color:#f3f9fe}.mx-calendar-week-mode .mx-date-row.mx-active-week{background-color:#dbedfb}.mx-calendar-week-mode .mx-date-row .cell.active,.mx-calendar-week-mode .mx-date-row .cell:hover{color:inherit;background-color:initial}.mx-week-number{opacity:.5}.mx-table{table-layout:fixed;border-collapse:initial;border-spacing:0;width:100%;height:100%;-webkit-box-sizing:border-box;box-sizing:border-box;text-align:center}.mx-table th{font-weight:500}.mx-table td,.mx-table th{padding:0;vertical-align:middle}.mx-table-date td,.mx-table-date th{height:32px;font-size:12px}.mx-table-date .today{color:#2a90e9}.mx-table-date .cell.not-current-month{color:#ccc;background:none}.mx-time{-webkit-box-flex:1;-ms-flex:1;flex:1;width:224px;background:#fff}.mx-time+.mx-time{border-left:1px solid #e8e8e8}.mx-calendar-time{position:absolute;top:0;left:0;width:100%;height:100%}.mx-time-header{border-bottom:1px solid #e8e8e8}.mx-time-content{height:224px;-webkit-box-sizing:border-box;box-sizing:border-box;overflow:hidden}.mx-time-columns{display:-webkit-box;display:-ms-flexbox;display:flex;width:100%;height:100%;overflow:hidden}.mx-time-column{-webkit-box-flex:1;-ms-flex:1;flex:1;position:relative;border-left:1px solid #e8e8e8;text-align:center}.mx-time-column:first-child{border-left:0}.mx-time-column .mx-time-list{margin:0;padding:0;list-style:none}.mx-time-column .mx-time-list:after{content:"";display:block;height:192px}.mx-time-column .mx-time-item{cursor:pointer;font-size:12px;height:32px;line-height:32px}.mx-time-column .mx-time-item:hover{color:#73879c;background-color:#f3f9fe}.mx-time-column .mx-time-item.active{color:#1284e7;background-color:initial;font-weight:700}.mx-time-column .mx-time-item.disabled{cursor:not-allowed;color:#ccc;background-color:#f3f3f3}.mx-time-option{cursor:pointer;padding:8px 10px;font-size:14px;line-height:20px}.mx-time-option:hover{color:#73879c;background-color:#f3f9fe}.mx-time-option.active{color:#1284e7;background-color:initial;font-weight:700}.mx-time-option.disabled{cursor:not-allowed;color:#ccc;background-color:#f3f3f3}.datepicker button{margin:0}
\ No newline at end of file
+ */.ol-touch .ol-control.gcd-gl-control button{font-size:1.14em}.ol-touch .ol-geocoder.gcd-gl-container{font-size:1.1em}.ol-geocoder.gcd-gl-container{box-sizing:border-box;font-size:.9em;left:.5em;position:absolute;top:4.875em}.ol-geocoder.gcd-gl-container *,.ol-geocoder.gcd-gl-container :after,.ol-geocoder.gcd-gl-container :before{box-sizing:inherit}.ol-geocoder .gcd-gl-control{height:2.1875em;overflow:hidden;transition:width .2s,height .2s;width:2.1875em}.ol-geocoder .gcd-gl-expanded{height:2.1875em;width:15.625em}.ol-geocoder .gcd-gl-input{background-color:#fff;border:1px solid #ccc;color:#222;font-family:inherit;font-size:.875em;left:2.5em;padding:5px;position:absolute;top:.25em;width:14.84375em;z-index:99}.ol-geocoder .gcd-gl-input:focus{border:none;box-shadow:inset 0 0 0 1px #4d90fe,inset 0 0 5px #4d90fe;outline:none}.ol-geocoder .gcd-gl-reset{background-color:initial;border:none;cursor:pointer;display:inline-block;height:100%;line-height:1.4;outline:0;position:absolute;right:0;top:0;width:1.5625em;z-index:100}.ol-geocoder .gcd-gl-reset:after{color:#333;content:"\d7";cursor:pointer;display:inline-block;font-size:1.5em}.ol-geocoder .gcd-gl-btn{background-image:url(data:image/png;base64,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);background-position:50%;background-repeat:no-repeat;background-size:20px;height:1.5625em;left:.125em;position:absolute;top:.125em;width:1.5625em}.ol-geocoder ul.gcd-gl-result{background-color:#fff;border-radius:4px;border-top:none;border-top-left-radius:0;border-top-right-radius:0;box-shadow:0 1px 7px #000c;left:2em;list-style:none;margin:0;max-height:18.75em;overflow-x:hidden;overflow-y:auto;padding:0;position:absolute;top:2.1875em;transition:max-height .3s ease-in;white-space:normal;width:16.25em}.ol-geocoder ul.gcd-gl-result>li{border-bottom:1px solid #eee;line-height:.875rem;overflow:hidden;padding:0;width:100%}.ol-geocoder ul.gcd-gl-result>li>a{display:block;padding:3px 5px;text-decoration:none}.ol-geocoder ul.gcd-gl-result>li>a:hover{background-color:#d4d4d4}.ol-geocoder ul.gcd-gl-result>li:nth-child(odd){background-color:#e0ffe0}.ol-geocoder ul.gcd-gl-result:empty{display:none}.ol-geocoder.gcd-txt-container{box-sizing:border-box;height:4.375em;left:calc(50% - 12.5em);position:absolute;top:.5em;width:25em}.ol-geocoder.gcd-txt-container *,.ol-geocoder.gcd-txt-container :after,.ol-geocoder.gcd-txt-container :before{box-sizing:inherit}.ol-geocoder .gcd-txt-control{background-color:#fff;border:1px solid #ccc;height:4.375em;overflow:hidden;position:relative;width:100%}.ol-geocoder .gcd-txt-input{background-color:initial;border:none;font-family:inherit;font-size:.875em;height:100%;left:0;padding:5px 30px 5px 40px;position:absolute;text-indent:6px;top:0;width:100%;z-index:99}.ol-geocoder .gcd-txt-input:focus{box-shadow:inset 0 0 0 1px #4d90fe,inset 0 0 6px #4d90fe;outline:none}.ol-geocoder .gcd-txt-reset{background-color:initial;border:none;cursor:pointer;display:inline-block;height:100%;line-height:100%;outline:0;position:absolute;right:0;top:0;vertical-align:middle;width:2.5em;z-index:100}.ol-geocoder .gcd-txt-reset:after{color:#333;content:"\d7";cursor:pointer;display:inline-block;font-size:2em}.ol-geocoder .gcd-txt-glass{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='32' height='32'%3E%3Cpath fill='%23333' d='m29.156 29.961-.709.709a2.006 2.006 0 0 1-2.838 0l-5.676-5.674c-.656-.658-.729-1.644-.281-2.412l-3.104-3.102a9.975 9.975 0 0 1-5.965 1.979C5.043 21.461.552 16.97.552 11.43S5.043 1.398 10.583 1.398c5.541 0 10.031 4.491 10.031 10.032 0 2.579-.98 4.923-2.58 6.7l3.035 3.035c.768-.447 1.754-.375 2.41.283l5.676 5.674c.784.785.784 2.056.001 2.839zM18.088 11.389a7.524 7.524 0 0 0-7.524-7.523 7.523 7.523 0 1 0-.001 15.046 7.525 7.525 0 0 0 7.525-7.523z'/%3E%3C/svg%3E");background-position:50%;background-repeat:no-repeat;background-size:1.38889em;display:inline-block;height:100%;left:0;position:absolute;top:0;width:2.5em;z-index:100}.ol-geocoder ul.gcd-txt-result{background-color:#fff;border-radius:4px;border-top:none;border-top-left-radius:0;border-top-right-radius:0;box-shadow:0 1px 7px #000c;left:0;list-style:none;margin:0;max-height:18.75em;overflow-x:hidden;overflow-y:auto;padding:0;position:absolute;top:4.575em;transition:max-height .3s ease-in;white-space:normal;width:25em}.ol-geocoder ul.gcd-txt-result>li{border-bottom:1px solid #eee;line-height:.875rem;overflow:hidden;padding:0;width:100%}.ol-geocoder ul.gcd-txt-result>li>a{display:block;padding:3px 5px;text-decoration:none}.ol-geocoder ul.gcd-txt-result>li>a:hover{background-color:#d4d4d4}.ol-geocoder ul.gcd-txt-result>li:nth-child(odd){background-color:#e0ffe0}.ol-geocoder ul.gcd-txt-result:empty{display:none}.ol-geocoder .gcd-hidden{opacity:0;visibility:hidden}.ol-geocoder .gcd-pseudo-rotate:after{animation:spin .7s linear infinite}@keyframes spin{0%{transform:rotate(0deg)}to{transform:rotate(1turn)}}.gcd-address,.gcd-road{color:#333;font-size:.875em;font-weight:500}.gcd-city{font-weight:400}.gcd-city,.gcd-country{color:#333;font-size:.75em}.gcd-country{font-weight:lighter}.ol-geocoder.gcd-gl-container{z-index:0;left:calc(.5em - 1px)!important;top:calc(6.125em + 8px)!important}.ol-geocoder.gcd-gl-container .ol-control{background-color:#0000}.ol-geocoder.gcd-gl-container ul.gcd-gl-result>li:nth-child(odd){background-color:#f9f9f9}:host,:root{--ol-background-color:#fff;--ol-accent-background-color:#f5f5f5;--ol-subtle-background-color:#80808040;--ol-partial-background-color:#ffffffbf;--ol-foreground-color:#333;--ol-subtle-foreground-color:#666;--ol-brand-color:#0af}.ol-box{box-sizing:border-box;border-radius:2px;border:1.5px solid var(--ol-background-color);background-color:var(--ol-partial-background-color)}.ol-mouse-position{top:8px;right:8px;position:absolute}.ol-scale-line{background:var(--ol-partial-background-color);border-radius:4px;bottom:8px;left:8px;padding:2px;position:absolute}.ol-scale-line-inner{border:1px solid var(--ol-subtle-foreground-color);border-top:none;color:var(--ol-foreground-color);font-size:10px;text-align:center;margin:1px;will-change:contents,width;transition:all .25s}.ol-scale-bar{position:absolute;bottom:8px;left:8px}.ol-scale-bar-inner{display:flex}.ol-scale-step-marker{width:1px;height:15px;background-color:var(--ol-foreground-color);float:right;z-index:10}.ol-scale-step-text{bottom:-5px;font-size:10px;z-index:11}.ol-scale-step-text,.ol-scale-text{position:absolute;color:var(--ol-foreground-color);text-shadow:-1.5px 0 var(--ol-partial-background-color),0 1.5px var(--ol-partial-background-color),1.5px 0 var(--ol-partial-background-color),0 -1.5px var(--ol-partial-background-color)}.ol-scale-text{font-size:12px;text-align:center;bottom:25px}.ol-scale-singlebar{position:relative;height:10px;z-index:9;box-sizing:border-box;border:1px solid var(--ol-foreground-color)}.ol-scale-singlebar-even{background-color:var(--ol-subtle-foreground-color)}.ol-scale-singlebar-odd{background-color:var(--ol-background-color)}.ol-unsupported{display:none}.ol-unselectable,.ol-viewport{-webkit-touch-callout:none;-webkit-user-select:none;-moz-user-select:none;user-select:none;-webkit-tap-highlight-color:transparent}.ol-viewport canvas{all:unset;overflow:hidden}.ol-viewport{touch-action:pan-x pan-y}.ol-selectable{-webkit-touch-callout:default;-webkit-user-select:text;-moz-user-select:text;user-select:text}.ol-grabbing{cursor:grabbing}.ol-grab{cursor:move;cursor:grab}.ol-control{position:absolute;background-color:var(--ol-subtle-background-color);border-radius:4px}.ol-zoom{top:.5em;left:.5em}.ol-rotate{top:.5em;right:.5em;transition:opacity .25s linear,visibility 0s linear}.ol-rotate.ol-hidden{opacity:0;visibility:hidden;transition:opacity .25s linear,visibility 0s linear .25s}.ol-zoom-extent{top:4.643em;left:.5em}.ol-full-screen{right:.5em;top:.5em}.ol-control button{display:block;margin:1px;padding:0;color:var(--ol-subtle-foreground-color);font-weight:700;text-decoration:none;font-size:inherit;text-align:center;height:1.375em;width:1.375em;line-height:.4em;background-color:var(--ol-background-color);border:none;border-radius:2px}.ol-control button::-moz-focus-inner{border:none;padding:0}.ol-zoom-extent button{line-height:1.4em}.ol-compass{display:block;font-weight:400;will-change:transform}.ol-touch .ol-control button{font-size:1.5em}.ol-touch .ol-zoom-extent{top:5.5em}.ol-control button:focus,.ol-control button:hover{text-decoration:none;outline:1px solid var(--ol-subtle-foreground-color);color:var(--ol-foreground-color)}.ol-zoom .ol-zoom-in{border-radius:2px 2px 0 0}.ol-zoom .ol-zoom-out{border-radius:0 0 2px 2px}.ol-attribution{text-align:right;bottom:.5em;right:.5em;max-width:calc(100% - 1.3em);display:flex;flex-flow:row-reverse;align-items:center}.ol-attribution a{color:var(--ol-subtle-foreground-color);text-decoration:none}.ol-attribution ul{margin:0;padding:1px .5em;color:var(--ol-foreground-color);text-shadow:0 0 2px var(--ol-background-color);font-size:12px}.ol-attribution li{display:inline;list-style:none}.ol-attribution li:not(:last-child):after{content:" "}.ol-attribution img{max-height:2em;max-width:inherit;vertical-align:middle}.ol-attribution button{flex-shrink:0}.ol-attribution.ol-collapsed ul{display:none}.ol-attribution:not(.ol-collapsed){background:var(--ol-partial-background-color)}.ol-attribution.ol-uncollapsible{bottom:0;right:0;border-radius:4px 0 0}.ol-attribution.ol-uncollapsible img{margin-top:-.2em;max-height:1.6em}.ol-attribution.ol-uncollapsible button{display:none}.ol-zoomslider{top:4.5em;left:.5em;height:200px}.ol-zoomslider button{position:relative;height:10px}.ol-touch .ol-zoomslider{top:5.5em}.ol-overviewmap{left:.5em;bottom:.5em}.ol-overviewmap.ol-uncollapsible{bottom:0;left:0;border-radius:0 4px 0 0}.ol-overviewmap .ol-overviewmap-map,.ol-overviewmap button{display:block}.ol-overviewmap .ol-overviewmap-map{border:1px solid var(--ol-subtle-foreground-color);height:150px;width:150px}.ol-overviewmap:not(.ol-collapsed) button{bottom:0;left:0;position:absolute}.ol-overviewmap.ol-collapsed .ol-overviewmap-map,.ol-overviewmap.ol-uncollapsible button{display:none}.ol-overviewmap:not(.ol-collapsed){background:var(--ol-subtle-background-color)}.ol-overviewmap-box{border:1.5px dotted var(--ol-subtle-foreground-color)}.ol-overviewmap .ol-overviewmap-box:hover{cursor:move}.ol-control.ol-layerswitcher{position:absolute;right:.5em;text-align:left;top:3em;max-height:calc(100% - 6em);box-sizing:border-box;overflow:hidden}.ol-control.ol-layerswitcher .ol-switcherbottomdiv,.ol-control.ol-layerswitcher .ol-switchertopdiv{display:block}.ol-control.ol-layerswitcher.ol-collapsed .ol-switcherbottomdiv,.ol-control.ol-layerswitcher.ol-collapsed .ol-switchertopdiv{display:none}.ol-layerswitcher.ol-forceopen.ol-collapsed .ol-switcherbottomdiv,.ol-layerswitcher.ol-forceopen.ol-collapsed .ol-switchertopdiv{display:block}.ol-control.ol-layerswitcher .ol-switcherbottomdiv,.ol-control.ol-layerswitcher .ol-switchertopdiv{position:absolute;top:0;left:0;right:0;height:45px;background:#fff;z-index:2;opacity:1;cursor:pointer;border-top:2px solid #0000;border-bottom:2px solid #369;margin:0 2px;box-sizing:border-box}.ol-control.ol-layerswitcher .ol-switcherbottomdiv{top:auto;bottom:0;height:2em;border-top:2px solid #369;border-bottom:2px solid #0000}.ol-control.ol-layerswitcher .ol-switcherbottomdiv:before,.ol-control.ol-layerswitcher .ol-switchertopdiv:before{content:"";position:absolute;left:50%;top:50%;border:10px solid #0000;width:0;height:0;transform:translate(-50%,-50%);-webkit-transform:translate(-50%,-50%);opacity:.8}.ol-control.ol-layerswitcher .ol-switcherbottomdiv:hover:before,.ol-control.ol-layerswitcher .ol-switchertopdiv:hover:before{opacity:1}.ol-control.ol-layerswitcher .ol-switchertopdiv:before{border-bottom-color:#369;border-top:0}.ol-control.ol-layerswitcher .ol-switcherbottomdiv:before{border-top-color:#369;border-bottom:0}.ol-control.ol-layerswitcher .panel-container{background-color:#fff;border-radius:0 0 2px 2px;clear:both;display:block;padding:.5em .5em 0}.ol-layerswitcher .panel{list-style:none;padding:0;margin:0;overflow:hidden;font-family:Tahoma,Geneva,sans-serif;font-size:.9em;transition:top .3s;position:relative;top:0}.ol-layerswitcher .panel ul{list-style:none;padding:0 0 0 20px;overflow:hidden;clear:both}.ol-layerswitcher input[type=checkbox],.ol-layerswitcher input[type=radio]{display:none}.ol-layerswitcher .panel li{-weblit-transition:-webkit-transform .2s linear;transition:transform .2s linear;clear:both;display:block;border:1px solid #0000;box-sizing:border-box}.ol-layerswitcher .panel li.ol-layer-select{background-color:#003c8833;margin:0 -.5em;padding:0 .5em}.ol-layerswitcher .panel li.drag{opacity:.5;transform:scale(.8);-webkit-transform:scale(.8)}.ol-dragover{background:#33669980;opacity:.8}.forbidden .layerswitcher-opacity div,.forbidden .ol-layerswitcher-buttons div,.ol-layerswitcher .panel li.forbidden{background:#ff000080;color:red!important}.ol-layerswitcher.drag,.ol-layerswitcher.drag *{cursor:not-allowed!important;cursor:no-drop!important}.ol-layerswitcher.drag .panel li.dropover,.ol-layerswitcher.drag .panel li.dropover *{cursor:pointer!important;cursor:n-resize!important;cursor:ns-resize!important;cursor:grab!important;cursor:grabbing!important}.ol-layerswitcher .panel li.dropover{background:#33669980}.ol-layerswitcher .panel li label{display:inline-block;height:1.4em;max-width:12em;overflow:hidden;white-space:nowrap;text-overflow:ellipsis;padding:0 0 0 1.7em;position:relative}.ol-layerswitcher .panel li label span{display:inline-block;width:100%;height:100%;overflow:hidden;text-overflow:ellipsis;padding-right:.2em}.ol-layerswitcher [type=checkbox]+label:before,.ol-layerswitcher [type=checkbox]:checked+label:after,.ol-layerswitcher [type=radio]+label:before,.ol-layerswitcher [type=radio]:checked+label:after{content:"";position:absolute;left:.1em;top:.1em;width:1.2em;height:1.2em;border:2px solid #369;background:#fff;box-sizing:border-box}.ol-layerswitcher [type=radio]+label:after,.ol-layerswitcher [type=radio]+label:before{border-radius:50%}.ol-layerswitcher [type=radio]:checked+label:after{background:#369 none repeat scroll 0 0;margin:.3em;width:.6em;height:.6em}.ol-layerswitcher [type=checkbox]:checked+label:after{background:#0000;border-width:0 3px 3px 0;border-style:solid;border-color:#369;width:.7em;height:1em;transform:rotate(45deg);left:.55em;top:-.05em;box-shadow:1px 0 1px 1px #fff}.ol-layerswitcher .panel li.ol-layer-hidden{opacity:.6}.ol-layerswitcher.ol-collapsed .panel-container{display:none}.ol-layerswitcher.ol-forceopen .panel-container{display:block}.ol-layerswitcher-image>button,.ol-layerswitcher>button{background-color:#fff;float:right;z-index:10;position:relative;font-size:1.7em}.ol-touch .ol-layerswitcher-image>button,.ol-touch .ol-layerswitcher>button{font-size:2.5em}.ol-layerswitcher-image>button:after,.ol-layerswitcher-image>button:before,.ol-layerswitcher>button:after,.ol-layerswitcher>button:before{content:"";position:absolute;width:.75em;height:.75em;border-radius:.15em;transform:scaleY(.8) rotate(45deg)}.ol-layerswitcher-image>button:before,.ol-layerswitcher>button:before{background:#e2e4e1;top:.32em;left:.34em;box-shadow:.1em .1em #325158}.ol-layerswitcher-image>button:after,.ol-layerswitcher>button:after{top:.22em;left:.34em;background:#83bcc5;background-image:radial-gradient(circle at .85em .6em,#70b3be 0,#70b3be .65em,#83bcc5 0)}.ol-layerswitcher-buttons{display:block;float:right;text-align:right}.ol-layerswitcher-buttons>div{cursor:pointer;height:1em;width:1em;margin:2px;line-height:1em;text-align:center;background:#369;vertical-align:middle;color:#fff}.ol-layerswitcher .panel li>div,.ol-layerswitcher-buttons>div{display:inline-block;position:relative}.ol-layerswitcher .ol-separator{display:block;width:0;height:0;padding:0;margin:0}.ol-layerswitcher .layerup{float:right;height:2.5em;background-color:#369;opacity:.5;cursor:move;cursor:ns-resize}.ol-layerswitcher .layerup:after,.ol-layerswitcher .layerup:before{border-color:#fff #0000;border-style:solid;border-width:.4em .4em 0;content:"";height:0;position:absolute;bottom:3px;left:.1em;width:0}.ol-layerswitcher .layerup:after{border-width:0 .4em .4em;top:3px;bottom:auto}.ol-layerswitcher .layerInfo{background:#369;border-radius:100%}.ol-layerswitcher .layerInfo:before{color:#fff;content:"i";display:block;font-size:.8em;font-weight:700;text-align:center;width:1.25em;position:absolute;left:0;top:0}.ol-layerswitcher .layerTrash{background:#369}.ol-layerswitcher .layerTrash:before{color:#fff;content:"\00d7";font-size:1em;top:50%;left:0;right:0;text-align:center;line-height:1em;margin:-.5em 0;position:absolute}.ol-layerswitcher .layerExtent{background:#369}.ol-layerswitcher .layerExtent:before{border-right:1px solid #fff;border-bottom:1px solid #fff;content:"";display:block;position:absolute;left:6px;right:2px;top:6px;bottom:3px}.ol-layerswitcher .layerExtent:after{border-left:1px solid #fff;border-top:1px solid #fff;content:"";display:block;position:absolute;bottom:6px;left:2px;right:6px;top:3px}.ol-layerswitcher .collapse-layers,.ol-layerswitcher .expend-layers{margin:0 2px;background-color:initial}.ol-layerswitcher .collapse-layers:before,.ol-layerswitcher .expend-layers:before{content:"";position:absolute;top:50%;left:0;margin-top:-2px;height:4px;width:100%;background:#369}.ol-layerswitcher .expend-layers:after{content:"";position:absolute;left:50%;top:0;margin-left:-2px;width:4px;height:100%;background:#369}.ol-layerswitcher .layerswitcher-opacity{position:relative;border:1px solid #369;height:3px;width:120px;margin:5px 1em 10px 7px;box-sizing:border-box;border-radius:3px;background:#69c;background:linear-gradient(90deg,#003c8800,#003c8899);cursor:pointer;box-shadow:1px 1px 1px #00000080}.ol-layerswitcher .layerswitcher-opacity .layerswitcher-opacity-cursor,.ol-layerswitcher .layerswitcher-opacity .layerswitcher-opacity-cursor:before{position:absolute;width:20px;height:20px;top:50%;left:50%;background:#003c8880;border-radius:50%;transform:translate(-50%,-50%);z-index:1}.ol-layerswitcher .layerswitcher-opacity .layerswitcher-opacity-cursor:before{content:"";position:absolute;width:50%;height:50%}.ol-touch .ol-layerswitcher .layerswitcher-opacity .layerswitcher-opacity-cursor{width:26px;height:26px}.ol-layerswitcher .layerswitcher-opacity-label{display:none;position:absolute;right:-2.5em;bottom:5px;font-size:.8em}.ol-layerswitcher .layerswitcher-opacity-label:after{content:"%"}.ol-layerswitcher .layerswitcher-progress{display:block;margin:-4px 1em 2px 7px;width:120px}.ol-layerswitcher .layerswitcher-progress div{background-color:#369;height:2px;display:block;width:0}.ol-progress-control[data-v-1da4d958]{opacity:1;transition:opacity .4s;bottom:calc(22px + 1em);left:8px;position:absolute;background-color:#003c8880;border-radius:4px;padding:2px;width:150px;text-align:center}.ol-progress-control .progress-label[data-v-1da4d958]{font-size:10px;color:#fff;margin-top:2px}.ol-progress-control .progress-bar[data-v-1da4d958]{border-radius:4px;border:1px solid #fff;height:10px}.ol-progress-control .progress-bar-inner[data-v-1da4d958]{background-color:#fff;height:10px;width:0}.ol-location[data-v-71051cba]{z-index:0;left:.5em;top:calc(3.75em + 6px)}.value[data-v-6d7a0f06]{position:absolute;top:.5em;left:calc(2.375em + 6px);max-width:calc(100% - 4.75em - 12px);box-sizing:border-box;background-color:#fff9}.pointer[data-v-6d7a0f06]{cursor:pointer}.ol-layerswitcher>button{font-size:1.14em}.ol-layerswitcher>button:after,.ol-layerswitcher>button:before{background:#0000;background-image:none;box-shadow:none;position:inherit;transform:none;display:inline-block;width:auto;height:auto}.ol-layerswitcher>button:after{font-family:Font Awesome\ 5 Free;content:"";font-weight:900;left:1px;top:1px}.ol-scale-line{background-color:#003c8880}.ol-scale-line-inner{color:#fff;border-color:#fff}.ol-control,.ol-unselectable{z-index:2}.ol-control.ol-timeline,.ol-unselectable.ol-timeline{z-index:1}.ol-control.ol-timeline .ol-buttons,.ol-unselectable.ol-timeline .ol-buttons{width:auto;font-size:.8em}.ol-control.ol-timeline .ol-buttons>button,.ol-unselectable.ol-timeline .ol-buttons>button{display:inline-block}.ol-control.ol-timeline .ol-buttons .timeline-date-label,.ol-unselectable.ol-timeline .ol-buttons .timeline-date-label{width:7em;font-weight:400}.choose-bbox[data-v-61a75ac8],.map[data-v-61a75ac8]{display:flex;flex-direction:column;flex-grow:1}.choose-collection .vue-component.searchable-list ul.list>li{margin-bottom:0}.choose-collection .vue-component.searchable-list ul.list>li>summary{margin:0;line-height:inherit}.choose-collection .vue-component.searchable-list ul.list>li>summary:before{content:"";margin-left:0;float:none}fieldset[disabled] .multiselect{pointer-events:none}.multiselect__spinner{position:absolute;right:1px;top:1px;width:40px;height:38px;background:#fff;display:block}.multiselect__spinner:after,.multiselect__spinner:before{position:absolute;content:"";top:50%;left:50%;margin:-8px 0 0 -8px;width:16px;height:16px;border-radius:100%;border:2px solid #0000;border-top-color:#41b883;box-shadow:0 0 0 1px #0000}.multiselect__spinner:before{animation:spinning 2.4s cubic-bezier(.41,.26,.2,.62);animation-iteration-count:infinite}.multiselect__spinner:after{animation:spinning 2.4s cubic-bezier(.51,.09,.21,.8);animation-iteration-count:infinite}.multiselect__loading-enter-active,.multiselect__loading-leave-active{transition:opacity .4s ease-in-out;opacity:1}.multiselect__loading-enter,.multiselect__loading-leave-active{opacity:0}.multiselect,.multiselect__input,.multiselect__single{font-family:inherit;font-size:16px;touch-action:manipulation}.multiselect{box-sizing:initial;display:block;position:relative;width:100%;min-height:40px;text-align:left;color:#35495e}.multiselect *{box-sizing:border-box}.multiselect:focus{outline:none}.multiselect--disabled{background:#ededed;pointer-events:none;opacity:.6}.multiselect--active{z-index:50}.multiselect--active:not(.multiselect--above) .multiselect__current,.multiselect--active:not(.multiselect--above) .multiselect__input,.multiselect--active:not(.multiselect--above) .multiselect__tags{border-bottom-left-radius:0;border-bottom-right-radius:0}.multiselect--active .multiselect__select{transform:rotate(180deg)}.multiselect--above.multiselect--active .multiselect__current,.multiselect--above.multiselect--active .multiselect__input,.multiselect--above.multiselect--active .multiselect__tags{border-top-left-radius:0;border-top-right-radius:0}.multiselect__input,.multiselect__single{position:relative;display:inline-block;min-height:20px;line-height:20px;border:none;border-radius:5px;background:#fff;padding:0 0 0 5px;width:100%;transition:border .1s ease;box-sizing:border-box;margin-bottom:8px;vertical-align:top}.multiselect__input::placeholder{color:#35495e}.multiselect__tag~.multiselect__input,.multiselect__tag~.multiselect__single{width:auto}.multiselect__input:hover,.multiselect__single:hover{border-color:#cfcfcf}.multiselect__input:focus,.multiselect__single:focus{border-color:#a8a8a8;outline:none}.multiselect__single{padding-left:5px;margin-bottom:8px}.multiselect__tags-wrap{display:inline}.multiselect__tags{min-height:40px;display:block;padding:8px 40px 0 8px;border-radius:5px;border:1px solid #e8e8e8;background:#fff;font-size:14px}.multiselect__tag{position:relative;display:inline-block;padding:4px 26px 4px 10px;border-radius:5px;margin-right:10px;color:#fff;line-height:1;background:#41b883;margin-bottom:5px;white-space:nowrap;overflow:hidden;max-width:100%;text-overflow:ellipsis}.multiselect__tag-icon{cursor:pointer;margin-left:7px;position:absolute;right:0;top:0;bottom:0;font-weight:700;font-style:normal;width:22px;text-align:center;line-height:22px;transition:all .2s ease;border-radius:5px}.multiselect__tag-icon:after{content:"\D7";color:#266d4d;font-size:14px}.multiselect__tag-icon:focus,.multiselect__tag-icon:hover{background:#369a6e}.multiselect__tag-icon:focus:after,.multiselect__tag-icon:hover:after{color:#fff}.multiselect__current{min-height:40px;overflow:hidden;padding:8px 30px 0 12px;white-space:nowrap;border-radius:5px;border:1px solid #e8e8e8}.multiselect__current,.multiselect__select{line-height:16px;box-sizing:border-box;display:block;margin:0;text-decoration:none;cursor:pointer}.multiselect__select{position:absolute;width:40px;height:38px;right:1px;top:1px;padding:4px 8px;text-align:center;transition:transform .2s ease}.multiselect__select:before{position:relative;right:0;top:65%;color:#999;margin-top:4px;border-color:#999 #0000 #0000;border-style:solid;border-width:5px 5px 0;content:""}.multiselect__placeholder{color:#adadad;display:inline-block;margin-bottom:10px;padding-top:2px}.multiselect--active .multiselect__placeholder{display:none}.multiselect__content-wrapper{position:absolute;display:block;background:#fff;width:100%;max-height:240px;overflow:auto;border:1px solid #e8e8e8;border-top:none;border-bottom-left-radius:5px;border-bottom-right-radius:5px;z-index:50;-webkit-overflow-scrolling:touch}.multiselect__content{list-style:none;display:inline-block;padding:0;margin:0;min-width:100%;vertical-align:top}.multiselect--above .multiselect__content-wrapper{bottom:100%;border-bottom-left-radius:0;border-bottom-right-radius:0;border-top-left-radius:5px;border-top-right-radius:5px;border-bottom:none;border-top:1px solid #e8e8e8}.multiselect__content::webkit-scrollbar{display:none}.multiselect__element{display:block}.multiselect__option{display:block;padding:12px;min-height:40px;line-height:16px;text-decoration:none;text-transform:none;vertical-align:middle;position:relative;cursor:pointer;white-space:nowrap}.multiselect__option:after{top:0;right:0;position:absolute;line-height:40px;padding-right:12px;padding-left:20px;font-size:13px}.multiselect__option--highlight{background:#41b883;outline:none;color:#fff}.multiselect__option--highlight:after{content:attr(data-select);background:#41b883;color:#fff}.multiselect__option--selected{background:#f3f3f3;color:#35495e;font-weight:700}.multiselect__option--selected:after{content:attr(data-selected);color:silver;background:inherit}.multiselect__option--selected.multiselect__option--highlight{background:#ff6a6a;color:#fff}.multiselect__option--selected.multiselect__option--highlight:after{background:#ff6a6a;content:attr(data-deselect);color:#fff}.multiselect--disabled .multiselect__current,.multiselect--disabled .multiselect__select{background:#ededed;color:#a6a6a6}.multiselect__option--disabled{background:#ededed!important;color:#a6a6a6!important;cursor:text;pointer-events:none}.multiselect__option--group{background:#ededed;color:#35495e}.multiselect__option--group.multiselect__option--highlight{background:#35495e;color:#fff}.multiselect__option--group.multiselect__option--highlight:after{background:#35495e}.multiselect__option--disabled.multiselect__option--highlight{background:#dedede}.multiselect__option--group-selected.multiselect__option--highlight{background:#ff6a6a;color:#fff}.multiselect__option--group-selected.multiselect__option--highlight:after{background:#ff6a6a;content:attr(data-deselect);color:#fff}.multiselect-enter-active,.multiselect-leave-active{transition:all .15s ease}.multiselect-enter,.multiselect-leave-active{opacity:0}.multiselect__strong{margin-bottom:8px;line-height:20px;display:inline-block;vertical-align:top}[dir=rtl] .multiselect{text-align:right}[dir=rtl] .multiselect__select{right:auto;left:1px}[dir=rtl] .multiselect__tags{padding:8px 8px 0 40px}[dir=rtl] .multiselect__content{text-align:right}[dir=rtl] .multiselect__option:after{right:auto;left:0}[dir=rtl] .multiselect__clear{right:auto;left:12px}[dir=rtl] .multiselect__spinner{right:auto;left:1px}@keyframes spinning{0%{transform:rotate(0)}to{transform:rotate(2turn)}}.select-container{display:flex;flex-grow:1}.select-container>div{flex-grow:1}.select-container>button{margin-left:10px}.select-container .multiselect__option--highlight,.select-container .multiselect__option--highlight:after,.select-container .multiselect__option--selected.multiselect__option--highlight{background:#1665b6}.mode[data-v-449febe3]{padding-left:3em}.mode>li[data-v-449febe3]{list-style-type:none;margin-bottom:1em;line-height:1.5em}.mode>li>label>strong[data-v-449febe3]{display:inline-block;margin-bottom:.5em;margin-left:.5em}.mode>li>input[data-v-449febe3]{margin-left:-3em;display:inline-block}.vue-component .highlight-box{box-shadow:0 0 0 .2em #c8e1ff}.vue-component code.id{color:maroon}.vue-component abbr{-webkit-text-decoration:underline dotted 1px;text-decoration:underline dotted 1px}.vue-component .unit{opacity:.6}.vue-component .status[data-value=submitted]{color:#000}.vue-component .status[data-value=running]{color:#ff8c00}.vue-component .status[data-value=queued]{color:#00008b}.vue-component .status[data-value=finished]{color:#006400}.vue-component .status[data-value=canceled]{color:#a9a9a9}.vue-component .status[data-value=error]{color:red}.vue-component.inline.process{margin-left:1em}.vue-component.inline h1{font-size:1.17em}.vue-component.inline h2{font-size:1.1em}.vue-component.inline h3{font-size:1.05em}.vue-component.inline h4,.vue-component.inline h5,.vue-component.inline h6{font-size:1em}.vue-component .comma-separated-list{display:inline;list-style:none;padding:0}.vue-component .comma-separated-list li{display:inline;padding:0}.vue-component .comma-separated-list li:after{content:", "}.vue-component .comma-separated-list li:last-child:after{content:""}.vue-component .required{color:red;font-weight:700}.vue-component.message-block{margin:1em 0;padding:.5em}.vue-component.message-block>strong{display:block;margin-bottom:.5em}.vue-component.message-block>p{margin:0}.vue-component .param-name,.vue-component .process-name{color:#369}.vue-component .param-argument,.vue-component .return-value{color:#936}.vue-component .data-type{color:#693}.vue-component .param-optional{font-weight:700}.vue-component .badges{margin:0;padding:0;list-style-type:none;display:inline-block}.vue-component .badges .badge{display:inline-block;font-size:.8em;margin:.25em;padding:.35em .5em .25em .5em;line-height:1em;text-align:center;white-space:nowrap;text-transform:uppercase;vertical-align:initial;border-radius:.5em;color:#fff;background-color:#6c757d}.vue-component .badges:not(.inline){margin-left:-.25em;margin-right:-.25em}.vue-component .badges.small .badge{padding:.25em .35em .2em .35em;font-size:.75em}.vue-component .badges.inline{margin-left:.5em;border-radius:.25em}.vue-component .badges.inline .badge{margin-top:0;margin-bottom:0}.vue-component .badges .badge a{color:#fff;border-bottom:1px dotted #fff;text-decoration:none}.vue-component .badges .badge a.badge-fill{margin:-.35em -.5em;padding:.35em .5em;display:block;border-bottom:0}.vue-component .badges.small .badge a.badge-fill{margin:-.2em -.3em;padding:.25em .35em}.vue-component .badges .badge a:hover{color:#fff;border-bottom-style:solid}.vue-component .badges .default{background-color:#555}.vue-component .badges .green{background-color:green}.vue-component .badges .red{background-color:maroon}.vue-component .badges .option1{background-color:#369}.vue-component .badges .option2{background-color:#693}.vue-component .badges .option3{background-color:#936}.vue-component .badges .option4{background-color:#963}.vue-component .badges .deprecated{background-color:red}.vue-component .badges .experimental{background-color:#8a2be2}.vue-component .badges .action{border:1px solid #000;background-color:#fff;color:#000;margin:.33em;cursor:pointer;text-transform:none}.vue-component .badges .action:hover{background-color:#000;color:#fff}.vue-component .badges .action:hover>a{color:#fff}.vue-component .badges .action>a{color:#000}.vue-component .badges .docker{background-color:#0db7ed}.vue-component .tabular{display:flex;margin:.2em 0;padding:1px}.vue-component .tabular label{flex:1;font-weight:700}.vue-component .tabular .value{flex:3}.vue-component .tabular .value td>div,.vue-component .tabular .value>.formatted>ul,.vue-component .tabular .value>ul,.vue-component .tabular ul.value{max-height:15em;overflow:auto}.vue-component .tabular .value pre{margin:0}.vue-component.stac .map{background:#0000;height:350px}.vue-component.stac .tabular{margin:.5em 0}.vue-component.stac .tabular.wrap{display:block}.vue-component.stac .tabular.wrap .value{margin-top:.5em;margin-left:1em;margin-bottom:.5em}.vue-component.stac .tabular .value ul{padding-left:20px}.assets.empty,.vue-component.stac .links:empty{display:none}.vue-component.stac .thumbnails{overflow-x:auto;overflow-y:hidden;width:100%;white-space:nowrap}.vue-component.stac .thumbnails a{margin:5px;display:inline-block}.vue-component.stac .thumbnails a img{padding:2px;max-height:200px;vertical-align:middle;border:2px solid #0000}.vue-component.stac .thumbnails a:hover img{border:2px solid #00000080}.vue-component .federation>ul>li{margin-bottom:.5em}.vue-component .federation>ul>li>small{display:block}.vue-component .federation>ul>li>h4{margin:0}.vue-component .federation .fed-header{margin:.2em 0}.vue-component .federation .fed-header>.fed-title{display:inline-block;vertical-align:bottom}.vue-component.searchable-list.expandable .heading{cursor:pointer;padding-left:1em}.vue-component.searchable-list.expandable .heading:before{content:"▸";margin-left:-1em;float:left;font-size:1em}.vue-component.searchable-list.expandable.expanded .heading:before{content:"▾"}.vue-component.searchable-list .action-bar{width:100%;display:flex;margin-bottom:1em;padding:1px;gap:.5em}.vue-component.searchable-list .action-bar:empty{display:none}.vue-component.searchable-list .action-bar>.search-box{min-width:150px;flex:1;margin:0}.vue-component.searchable-list .action-bar>.deprecated,.vue-component.searchable-list .action-bar>.experimental{white-space:nowrap;align-content:center}.vue-component.searchable-list .details{display:none}.vue-component.searchable-list .list .details h2,.vue-component.searchable-list .list .details h3,.vue-component.searchable-list .list .details h4,.vue-component.searchable-list .list .details h5,.vue-component.searchable-list .list .details h6{font-size:1em}.vue-component.searchable-list ul.list{margin-left:0;padding-left:0;list-style-type:none}.vue-component.searchable-list ul.list>li{margin-bottom:.5em}.vue-component.searchable-list ul.list>li>summary{margin-bottom:.5em;margin-left:1em;line-height:1.33em}.vue-component.searchable-list ul.list>li>summary strong{display:block;text-overflow:ellipsis;overflow:hidden}.vue-component.searchable-list ul.list>li>summary strong .copy{display:none}.vue-component.searchable-list ul.list>li>summary strong.inline{display:inline}.vue-component.searchable-list ul.list>li>summary.experimental strong{color:#8a2be2}.vue-component.searchable-list ul.list>li>summary.deprecated strong{text-decoration:line-through}.vue-component.searchable-list ul.list>li>summary:before{content:"▸";margin-left:-1em;float:left;font-size:1em}.vue-component.searchable-list ul.list>li>summary .badges.block{display:block}.vue-component.searchable-list ul.expandable>li>summary{cursor:pointer}.vue-component.searchable-list ul.expandable>li>summary:hover strong .copy{display:inline-block!important}.vue-component.searchable-list ul.expandable>li.expanded{margin-bottom:2em}.vue-component.searchable-list ul.expandable>li.expanded .details{display:block;margin-left:1em}.vue-component.searchable-list ul.expandable>li.expanded>summary:before{content:"▾"}.vue-component.searchable-list ul.expandable>li.expanded>summary .hideOnExpand{display:none}.choose-index .vue-component.searchable-list ul.list>li{margin-bottom:0}.choose-index .vue-component.searchable-list ul.list>li>summary{margin:0}.choose-index .vue-component.searchable-list ul.list>li>summary:before{content:"";margin-left:0;float:none}.choose-index .vue-component.searchable-list ul.list>li>summary .summary .title{display:flex}.choose-index .vue-component.searchable-list ul.list>li>summary .summary .title strong{flex-grow:1}.choose-index .vue-component.searchable-list ul.list>li>summary .summary code{display:block}.choose-index .domain{background-color:#000}.choose-index .domain.water{background-color:#00008b}.choose-index .domain.vegetation{background-color:#006400}.choose-index .domain.burn{background-color:#b8860b}.choose-index .domain.soil{background-color:#5c4033}.choose-index .domain.urban{background-color:maroon}.choose-index .domain.radar{background-color:#9400d3}.choose-index .domain.snow{background-color:#008b8b}.mx-icon-double-left:after,.mx-icon-double-left:before,.mx-icon-double-right:after,.mx-icon-double-right:before,.mx-icon-left:before,.mx-icon-right:before{content:"";position:relative;top:-1px;display:inline-block;width:10px;height:10px;vertical-align:middle;border-style:solid;border-color:currentColor;border-width:2px 0 0 2px;border-radius:1px;-webkit-box-sizing:border-box;box-sizing:border-box;-webkit-transform-origin:center;transform-origin:center;-webkit-transform:rotate(-45deg) scale(.7);transform:rotate(-45deg) scale(.7)}.mx-icon-double-left:after{left:-4px}.mx-icon-double-right:before{left:4px}.mx-icon-double-right:after,.mx-icon-double-right:before,.mx-icon-right:before{-webkit-transform:rotate(135deg) scale(.7);transform:rotate(135deg) scale(.7)}.mx-btn{-webkit-box-sizing:border-box;box-sizing:border-box;line-height:1;font-size:14px;font-weight:500;padding:7px 15px;margin:0;cursor:pointer;background-color:initial;outline:none;border:1px solid #0000001a;border-radius:4px;color:#73879c;white-space:nowrap}.mx-btn:hover{border-color:#1284e7;color:#1284e7}.mx-btn.disabled,.mx-btn:disabled{color:#ccc;cursor:not-allowed}.mx-btn-text{border:0;padding:0 4px;text-align:left;line-height:inherit}.mx-scrollbar{height:100%}.mx-scrollbar:hover .mx-scrollbar-track{opacity:1}.mx-scrollbar-wrap{height:100%;overflow-x:hidden;overflow-y:auto}.mx-scrollbar-track{position:absolute;top:2px;right:2px;bottom:2px;width:6px;z-index:1;border-radius:4px;opacity:0;-webkit-transition:opacity .24s ease-out;transition:opacity .24s ease-out}.mx-scrollbar-track .mx-scrollbar-thumb{position:absolute;width:100%;height:0;cursor:pointer;border-radius:inherit;background-color:#9093994d;-webkit-transition:background-color .3s;transition:background-color .3s}.mx-zoom-in-down-enter-active,.mx-zoom-in-down-leave-active{opacity:1;-webkit-transform:scaleY(1);transform:scaleY(1);-webkit-transition:opacity .3s cubic-bezier(.23,1,.32,1),-webkit-transform .3s cubic-bezier(.23,1,.32,1);transition:opacity .3s cubic-bezier(.23,1,.32,1),-webkit-transform .3s cubic-bezier(.23,1,.32,1);transition:transform .3s cubic-bezier(.23,1,.32,1),opacity .3s cubic-bezier(.23,1,.32,1);transition:transform .3s cubic-bezier(.23,1,.32,1),opacity .3s cubic-bezier(.23,1,.32,1),-webkit-transform .3s cubic-bezier(.23,1,.32,1);-webkit-transform-origin:center top;transform-origin:center top}.mx-zoom-in-down-enter,.mx-zoom-in-down-enter-from,.mx-zoom-in-down-leave-to{opacity:0;-webkit-transform:scaleY(0);transform:scaleY(0)}.mx-datepicker{position:relative;display:inline-block;width:210px}.mx-datepicker svg{width:1em;height:1em;vertical-align:-.15em;fill:currentColor;overflow:hidden}.mx-datepicker-range{width:320px}.mx-datepicker-inline{width:auto}.mx-input-wrapper{position:relative}.mx-input{display:inline-block;-webkit-box-sizing:border-box;box-sizing:border-box;width:100%;height:34px;padding:6px 30px;padding-left:10px;font-size:14px;line-height:1.4;color:#555;background-color:#fff;border:1px solid #ccc;border-radius:4px;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075);box-shadow:inset 0 1px 1px rgba(0,0,0,.075)}.mx-input:focus,.mx-input:hover{border-color:#409aff}.mx-input.disabled,.mx-input:disabled{color:#ccc;background-color:#f3f3f3;border-color:#ccc;cursor:not-allowed}.mx-input:focus{outline:none}.mx-input::-ms-clear{display:none}.mx-icon-calendar,.mx-icon-clear{position:absolute;top:50%;right:8px;-webkit-transform:translateY(-50%);transform:translateY(-50%);font-size:16px;line-height:1;color:#00000080;vertical-align:middle}.mx-icon-clear{cursor:pointer}.mx-icon-clear:hover{color:#000c}.mx-datepicker-main{font:14px/1.5 Helvetica Neue,Helvetica,Arial,Microsoft Yahei,sans-serif;color:#73879c;background-color:#fff;border:1px solid #e8e8e8}.mx-datepicker-popup{position:absolute;margin-top:1px;margin-bottom:1px;-webkit-box-shadow:0 6px 12px rgba(0,0,0,.175);box-shadow:0 6px 12px rgba(0,0,0,.175);z-index:2001}.mx-datepicker-sidebar{float:left;-webkit-box-sizing:border-box;box-sizing:border-box;width:100px;padding:6px;overflow:auto}.mx-datepicker-sidebar+.mx-datepicker-content{margin-left:100px;border-left:1px solid #e8e8e8}.mx-datepicker-body{position:relative;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.mx-btn-shortcut{display:block;padding:0 6px;line-height:24px}.mx-range-wrapper{display:-webkit-box;display:-ms-flexbox;display:flex}@media(max-width:750px){.mx-range-wrapper{-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column}}.mx-datepicker-header{padding:6px 8px;border-bottom:1px solid #e8e8e8}.mx-datepicker-footer{padding:6px 8px;text-align:right;border-top:1px solid #e8e8e8}.mx-calendar{-webkit-box-sizing:border-box;box-sizing:border-box;width:248px;padding:6px 12px}.mx-calendar+.mx-calendar{border-left:1px solid #e8e8e8}.mx-calendar-header,.mx-time-header{-webkit-box-sizing:border-box;box-sizing:border-box;height:34px;line-height:34px;text-align:center;overflow:hidden}.mx-btn-icon-double-left,.mx-btn-icon-left{float:left}.mx-btn-icon-double-right,.mx-btn-icon-right{float:right}.mx-calendar-header-label{font-size:14px}.mx-calendar-decade-separator{margin:0 2px}.mx-calendar-decade-separator:after{content:"~"}.mx-calendar-content{position:relative;height:224px;-webkit-box-sizing:border-box;box-sizing:border-box}.mx-calendar-content .cell{cursor:pointer}.mx-calendar-content .cell:hover{color:#73879c;background-color:#f3f9fe}.mx-calendar-content .cell.active{color:#fff;background-color:#1284e7}.mx-calendar-content .cell.hover-in-range,.mx-calendar-content .cell.in-range{color:#73879c;background-color:#dbedfb}.mx-calendar-content .cell.disabled{cursor:not-allowed;color:#ccc;background-color:#f3f3f3}.mx-calendar-week-mode .mx-date-row{cursor:pointer}.mx-calendar-week-mode .mx-date-row:hover{background-color:#f3f9fe}.mx-calendar-week-mode .mx-date-row.mx-active-week{background-color:#dbedfb}.mx-calendar-week-mode .mx-date-row .cell.active,.mx-calendar-week-mode .mx-date-row .cell:hover{color:inherit;background-color:initial}.mx-week-number{opacity:.5}.mx-table{table-layout:fixed;border-collapse:initial;border-spacing:0;width:100%;height:100%;-webkit-box-sizing:border-box;box-sizing:border-box;text-align:center}.mx-table th{font-weight:500}.mx-table td,.mx-table th{padding:0;vertical-align:middle}.mx-table-date td,.mx-table-date th{height:32px;font-size:12px}.mx-table-date .today{color:#2a90e9}.mx-table-date .cell.not-current-month{color:#ccc;background:none}.mx-time{-webkit-box-flex:1;-ms-flex:1;flex:1;width:224px;background:#fff}.mx-time+.mx-time{border-left:1px solid #e8e8e8}.mx-calendar-time{position:absolute;top:0;left:0;width:100%;height:100%}.mx-time-header{border-bottom:1px solid #e8e8e8}.mx-time-content{height:224px;-webkit-box-sizing:border-box;box-sizing:border-box;overflow:hidden}.mx-time-columns{display:-webkit-box;display:-ms-flexbox;display:flex;width:100%;height:100%;overflow:hidden}.mx-time-column{-webkit-box-flex:1;-ms-flex:1;flex:1;position:relative;border-left:1px solid #e8e8e8;text-align:center}.mx-time-column:first-child{border-left:0}.mx-time-column .mx-time-list{margin:0;padding:0;list-style:none}.mx-time-column .mx-time-list:after{content:"";display:block;height:192px}.mx-time-column .mx-time-item{cursor:pointer;font-size:12px;height:32px;line-height:32px}.mx-time-column .mx-time-item:hover{color:#73879c;background-color:#f3f9fe}.mx-time-column .mx-time-item.active{color:#1284e7;background-color:initial;font-weight:700}.mx-time-column .mx-time-item.disabled{cursor:not-allowed;color:#ccc;background-color:#f3f3f3}.mx-time-option{cursor:pointer;padding:8px 10px;font-size:14px;line-height:20px}.mx-time-option:hover{color:#73879c;background-color:#f3f9fe}.mx-time-option.active{color:#1284e7;background-color:initial;font-weight:700}.mx-time-option.disabled{cursor:not-allowed;color:#ccc;background-color:#f3f3f3}.datepicker button{margin:0}
\ No newline at end of file
diff --git a/css/8807.73ac2bdf.css b/css/8807.73ac2bdf.css
deleted file mode 100644
index 82b1351a..00000000
--- a/css/8807.73ac2bdf.css
+++ /dev/null
@@ -1 +0,0 @@
-.modal{position:fixed;z-index:1000;left:0;top:0;width:100%;height:100%;background-color:#0006;display:flex;justify-content:center;align-items:center}.modal .modal-container{background-color:#fff;border:1px solid #fff;min-height:50vh;min-width:300px;width:70%;max-height:96%;max-width:96%;display:flex;flex-direction:column;box-shadow:8px 8px 8px 0 #0000004d;resize:both;overflow:hidden}.modal .modal-container.smooth{transition-timing-function:linear;transition-property:width,height;transition-duration:.5s}.modal .modal-header{background-color:#1665b6;color:#fff;margin:0;height:1.5rem;padding:1rem;display:flex;align-items:center;justify-content:space-between;cursor:move}.modal .modal-header h2{display:inline-block;margin:0;margin-left:-.5rem;padding:.5rem;font-size:1.5rem;border:0;cursor:text;text-overflow:ellipsis;overflow:hidden}.modal .modal-content{padding:1rem;overflow:auto;flex-grow:1}.modal .inline .modal-content{padding:0}.modal .modal-footer:empty{display:none}.modal .modal-footer{background-color:#eee;margin:0;padding:1rem;text-align:right}.modal .close{font-size:1.5rem;height:2rem;width:2rem;color:#fff;cursor:pointer;display:flex;justify-content:center;align-items:center}.modal .close:focus,.modal .close:hover{color:red}.vue-component.model-builder .block .connector{font-size:.9em;margin:.2em 0;white-space:nowrap}.vue-component.model-builder .block .connector.noValue{color:red}.vue-component.model-builder .block .connector.editable .label,.vue-component.model-builder .block .connector.editable .value{cursor:pointer}.vue-component.model-builder .block .connector span[title]{cursor:help}.vue-component.model-builder .block .connector .input{max-width:100%;overflow:hidden;text-overflow:ellipsis}.vue-component.model-builder .block .connector .output{text-align:right}.vue-component.model-builder .block .connector .unspecified{color:red;margin-right:.3em}.vue-component.model-builder .block .connector .circle{width:.8em;height:.8em;margin:0 .2em;border:1px solid #888;background-color:#0000;display:inline-block}.vue-component.model-builder .block .connector .circle.io_active{background-color:#ffc800}.vue-component.model-builder .block .connector .circle.io_selected{background-color:#00c800!important}.vue-component.model-builder .block .connector .circle.io_issues{background-color:red}.vue-component.model-builder.editable .circle{cursor:pointer}.vue-component.model-builder .block{position:absolute;border:2px solid #ccc;margin-left:0;margin-top:0;background-color:#fafafa;opacity:.8;font-size:14px;user-select:none;-moz-user-select:none;-khtml-user-select:none;-webkit-user-select:none;-o-user-select:none;color:#000}.vue-component.model-builder .block .description{display:none;width:200px;padding:3px;border:1px solid #083776;border-radius:5px;color:#001531;background-color:#91bcf6;margin-top:15px;position:absolute;font-weight:400}.vue-component.model-builder .block .blockTitle{display:flex;padding:.3em .1em;font-weight:700;background-color:#ddd;margin-bottom:.1em;cursor:move;font-size:.9em}.vue-component.model-builder .block .blockTitle .blockId{opacity:.4;margin-left:.25em;font-weight:400}.vue-component.model-builder .block .blockTitle .namespace{font-weight:400}.vue-component.model-builder .block .blockTitle .titleText{flex-grow:1;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.vue-component.model-builder .block .blockTitle .blockicon{white-space:nowrap;text-align:center}.vue-component.model-builder .block .blockTitle .blockicon i.fas{min-width:1.4em;cursor:pointer;opacity:.5;margin-left:.1em}.vue-component.model-builder .block .blockTitle .blockicon i.fas:hover{opacity:1}.vue-component.model-builder .block .invalid{color:red;cursor:help}.vue-component.model-builder .block .inout{display:flex}.vue-component.model-builder .block .inputs{flex-grow:1;max-width:100%;overflow:hidden;text-overflow:ellipsis}.vue-component.model-builder .block .editDescription{padding:.3em .2em;box-sizing:border-box;font-size:.9em;line-height:1em;overflow:auto;border:0;border-top:1px dotted #ccc;background-color:#0000;width:100%;max-width:100%;height:3.7em;min-height:2.5em;resize:none}.vue-component.model-builder .block .editDescription:focus{outline:0}.vue-component.model-builder .block_collection{border:2px solid #6b8daf}.vue-component.model-builder .block_collection .blockTitle{background-color:#a3b7cc}.vue-component.model-builder .block_collection .field_id{display:none}.vue-component.model-builder .block_result{border:2px solid #888}.vue-component.model-builder .block_result .field_output .circle{background-color:#888;cursor:auto}.vue-component.model-builder .block_argument{border:2px solid #b28c6b}.vue-component.model-builder .block_argument .blockTitle{background-color:#ccb7a3}.vue-component.model-builder .block_selected{border:2px solid #0a0!important}.vue-component.model-builder .block_selected .blockTitle{background-color:#0c0!important}.vue-component.model-builder .block_invalid{border:2px solid red!important}.vue-component.model-builder{width:100%;height:100%;position:relative}.vue-component.model-builder.editable.focus .blocks{border-color:#1666b64d}.vue-component.model-builder .blocks:focus,.vue-component.model-builder .canvas:focus,.vue-component.model-builder:focus{outline:0}.vue-component.model-builder .canvas{width:100%;height:100%;position:absolute;z-index:1}.vue-component.model-builder .blocks{box-sizing:border-box;border:1px solid #0000;overflow:hidden;position:absolute;z-index:3;width:100%;height:100%}.vue-component.model-builder.compact .blockId,.vue-component.model-builder.compact .blockicon .addDescription,.vue-component.model-builder.compact .blockicon .delete,.vue-component.model-builder.compact .blockicon .info,.vue-component.model-builder.compact .editDescription,.vue-component.model-builder.scale_s .blockicon,.vue-component.model-builder.scale_xs .blockicon,.vue-component.model-builder.scale_xs .connector .text{display:none}.vue-component.model-builder .zoomInfo{position:absolute;top:0;right:0;display:inline-block;padding:.3em;background-color:#f9f9f9;color:#000;border-radius:0 0 0 .3em;z-index:5}.vue-component.model-builder.scale_xs .editDescription{visibility:hidden}.vue-component.search-box{margin:0 1px 1em 0;display:flex;align-items:stretch}.vue-component.search-box .icon,.vue-component.search-box input{font-size:1em;margin:0}.vue-component.search-box input{flex-grow:1;padding:.3em;padding-left:1.9em;z-index:1;border:1px solid #ccc;box-sizing:initial;background-color:#fff;box-sizing:border-box;width:100%;margin-left:-1.3em}.vue-component.search-box .icon{display:flex;align-items:center;-webkit-user-select:none;user-select:none;margin-left:.3em;width:1em;z-index:2}.vue-component.search-box.compact{font-size:.9em;margin-bottom:0}.vue-component.search-box.compact input{padding-top:0;padding-bottom:0}.vue-component.search-box.compact .icon{margin-top:.1em;margin-left:.3em}.search-results h2.heading{font-size:1em;border:0;margin:0;padding:0;margin-bottom:.5em}.search-results .vue-component.searchable-list ul.list>li>summary:before{content:"";margin-left:0;float:none}.search-results .vue-component.searchable-list ul.list>li>summary{margin:0;line-height:inherit}.search-results .vue-component.searchable-list ul.list>li{margin-bottom:0}.discovery-toolbar[data-v-1c899aff]{width:100%;height:100%;display:flex;flex-direction:column;overflow:hidden}.search-results[data-v-1c899aff]{overflow-y:auto;flex-grow:1;margin:.25rem 0 0 0}.search-box[data-v-1c899aff]{margin:1rem 1rem .25rem 1rem}.show-deprecated[data-v-1c899aff]{margin:.25rem 1rem .25rem 1rem;text-align:center;font-size:.9em}.category[data-v-1c899aff]{margin:.75rem 1rem .5rem 1rem}.category strong[data-v-1c899aff]{cursor:pointer;overflow:hidden;white-space:nowrap}.discovery-entity[data-v-1c899aff]{display:flex;margin:.25em 0;border:1px solid #ddd;border-radius:3px;cursor:pointer;-webkit-user-select:none;user-select:none;font-size:.9em}.discovery-entity strong[data-v-1c899aff]{display:block;font-weight:400;white-space:nowrap;width:100%;overflow:hidden;text-overflow:ellipsis;color:#1665b6}.discovery-entity small[data-v-1c899aff]{margin-top:.25em;display:block}.discovery-entity .discovery-info[data-v-1c899aff]{flex-grow:1;padding:5px;width:100%;overflow:hidden;position:relative}.discovery-entity .discovery-info[data-v-1c899aff]:hover{background-color:#eee}.discovery-entity .discovery-info:hover strong[data-v-1c899aff]{color:#000}.discovery-entity .discovery-button[data-v-1c899aff]{display:block;margin:0;padding:5px;background-color:#fff;color:#aaa;border:0;border-left:1px solid #ddd}.discovery-entity .discovery-button[data-v-1c899aff]:hover{background-color:#eee;color:#000}.discovery-entity .custom-process[data-v-1c899aff]{position:absolute;top:7px;right:5px}.fullscreen{position:absolute!important;top:0!important;left:0!important;width:100%!important;height:100%!important;background-color:#fff;overflow:auto}.visualEditor{background-color:#fff;height:100%;display:flex;flex-direction:column}.visualEditor .vue-component.model-builder{min-height:100px;min-width:100px}.visualEditor .model-overlay{position:absolute;width:100%;height:100%;left:0;top:0;color:#555;z-index:5;padding:1em;overflow:auto;box-sizing:border-box;line-height:1.25em}.visualEditor .model-overlay>h2{font-size:1.2em;text-align:center;border-bottom:0;margin-bottom:.5em;padding:0}.visualEditor .model-overlay>p{margin:.5em 0}.visualEditor .model-overlay>p>ul{margin:.25em 0}.visualEditor .model-overlay>p:first-of-type{margin-top:0}.visualEditor .model-overlay>p:last-of-type{margin-bottom:0}.visualEditor .discoveryToolbar{width:25%;min-width:150px;border-left:1px solid #ddd}.visualEditor .editorSplitter{display:flex;flex-direction:row-reverse;flex-grow:1;height:100%;overflow:hidden}.visualEditor.fullscreen{display:flex;flex-direction:column}.visualEditor.fullscreen .discoveryToolbar{width:15%;min-width:250px}.visualEditor.fullscreen .editorSplitter{height:100%}.graphBuilder{height:100%;flex-grow:1;position:relative}.compactMode{color:green}@keyframes glowing{0%{box-shadow:0 0 3px green}50%{box-shadow:0 0 10px green}to{box-shadow:0 0 3px green}}.highlightFormula{animation:glowing 1.5s infinite}.CodeMirror{font-family:monospace;height:300px;color:#000;direction:ltr}.CodeMirror-lines{padding:4px 0}.CodeMirror pre.CodeMirror-line,.CodeMirror pre.CodeMirror-line-like{padding:0 4px}.CodeMirror-gutter-filler,.CodeMirror-scrollbar-filler{background-color:#fff}.CodeMirror-gutters{border-right:1px solid #ddd;background-color:#f7f7f7;white-space:nowrap}.CodeMirror-linenumber{padding:0 3px 0 5px;min-width:20px;text-align:right;color:#999;white-space:nowrap}.CodeMirror-guttermarker{color:#000}.CodeMirror-guttermarker-subtle{color:#999}.CodeMirror-cursor{border-left:1px solid #000;border-right:none;width:0}.CodeMirror div.CodeMirror-secondarycursor{border-left:1px solid silver}.cm-fat-cursor .CodeMirror-cursor{width:auto;border:0!important;background:#7e7}.cm-fat-cursor div.CodeMirror-cursors{z-index:1}.cm-fat-cursor .CodeMirror-line::selection,.cm-fat-cursor .CodeMirror-line>span::selection,.cm-fat-cursor .CodeMirror-line>span>span::selection{background:#0000}.cm-fat-cursor .CodeMirror-line::-moz-selection,.cm-fat-cursor .CodeMirror-line>span::-moz-selection,.cm-fat-cursor .CodeMirror-line>span>span::-moz-selection{background:#0000}.cm-fat-cursor{caret-color:#0000}@keyframes blink{50%{background-color:initial}}.cm-tab{display:inline-block;text-decoration:inherit}.CodeMirror-rulers{position:absolute;left:0;right:0;top:-50px;bottom:0;overflow:hidden}.CodeMirror-ruler{border-left:1px solid #ccc;top:0;bottom:0;position:absolute}.cm-s-default .cm-header{color:blue}.cm-s-default .cm-quote{color:#090}.cm-negative{color:#d44}.cm-positive{color:#292}.cm-header,.cm-strong{font-weight:700}.cm-em{font-style:italic}.cm-link{text-decoration:underline}.cm-strikethrough{text-decoration:line-through}.cm-s-default .cm-keyword{color:#708}.cm-s-default .cm-atom{color:#219}.cm-s-default .cm-number{color:#164}.cm-s-default .cm-def{color:#00f}.cm-s-default .cm-variable-2{color:#05a}.cm-s-default .cm-type,.cm-s-default .cm-variable-3{color:#085}.cm-s-default .cm-comment{color:#a50}.cm-s-default .cm-string{color:#a11}.cm-s-default .cm-string-2{color:#f50}.cm-s-default .cm-meta,.cm-s-default .cm-qualifier{color:#555}.cm-s-default .cm-builtin{color:#30a}.cm-s-default .cm-bracket{color:#997}.cm-s-default .cm-tag{color:#170}.cm-s-default .cm-attribute{color:#00c}.cm-s-default .cm-hr{color:#999}.cm-s-default .cm-link{color:#00c}.cm-invalidchar,.cm-s-default .cm-error{color:red}.CodeMirror-composing{border-bottom:2px solid}div.CodeMirror span.CodeMirror-matchingbracket{color:#0b0}div.CodeMirror span.CodeMirror-nonmatchingbracket{color:#a22}.CodeMirror-matchingtag{background:#ff96004d}.CodeMirror-activeline-background{background:#e8f2ff}.CodeMirror{position:relative;overflow:hidden;background:#fff}.CodeMirror-scroll{overflow:scroll!important;margin-bottom:-50px;margin-right:-50px;padding-bottom:50px;height:100%;outline:none;position:relative;z-index:0}.CodeMirror-sizer{position:relative;border-right:50px solid #0000}.CodeMirror-gutter-filler,.CodeMirror-hscrollbar,.CodeMirror-scrollbar-filler,.CodeMirror-vscrollbar{position:absolute;z-index:6;display:none;outline:none}.CodeMirror-vscrollbar{right:0;top:0;overflow-x:hidden;overflow-y:scroll}.CodeMirror-hscrollbar{bottom:0;left:0;overflow-y:hidden;overflow-x:scroll}.CodeMirror-scrollbar-filler{right:0;bottom:0}.CodeMirror-gutter-filler{left:0;bottom:0}.CodeMirror-gutters{position:absolute;left:0;top:0;min-height:100%;z-index:3}.CodeMirror-gutter{white-space:normal;height:100%;display:inline-block;vertical-align:top;margin-bottom:-50px}.CodeMirror-gutter-wrapper{position:absolute;z-index:4;background:none!important;border:none!important}.CodeMirror-gutter-background{position:absolute;top:0;bottom:0;z-index:4}.CodeMirror-gutter-elt{position:absolute;cursor:default;z-index:4}.CodeMirror-gutter-wrapper ::selection{background-color:initial}.CodeMirror-gutter-wrapper ::-moz-selection{background-color:initial}.CodeMirror-lines{cursor:text;min-height:1px}.CodeMirror pre.CodeMirror-line,.CodeMirror pre.CodeMirror-line-like{border-radius:0;border-width:0;background:#0000;font-family:inherit;font-size:inherit;margin:0;white-space:pre;word-wrap:normal;line-height:inherit;color:inherit;z-index:2;position:relative;overflow:visible;-webkit-tap-highlight-color:transparent;font-variant-ligatures:contextual}.CodeMirror-wrap pre.CodeMirror-line,.CodeMirror-wrap pre.CodeMirror-line-like{word-wrap:break-word;white-space:pre-wrap;word-break:normal}.CodeMirror-linebackground{position:absolute;left:0;right:0;top:0;bottom:0;z-index:0}.CodeMirror-linewidget{position:relative;z-index:2;padding:.1px}.CodeMirror-rtl pre{direction:rtl}.CodeMirror-code{outline:none}.CodeMirror-gutter,.CodeMirror-gutters,.CodeMirror-linenumber,.CodeMirror-scroll,.CodeMirror-sizer{box-sizing:initial}.CodeMirror-measure{position:absolute;width:100%;height:0;overflow:hidden;visibility:hidden}.CodeMirror-cursor{position:absolute;pointer-events:none}.CodeMirror-measure pre{position:static}div.CodeMirror-cursors{visibility:hidden;position:relative;z-index:3}.CodeMirror-focused div.CodeMirror-cursors,div.CodeMirror-dragcursors{visibility:visible}.CodeMirror-selected{background:#d9d9d9}.CodeMirror-focused .CodeMirror-selected{background:#d7d4f0}.CodeMirror-crosshair{cursor:crosshair}.CodeMirror-line::selection,.CodeMirror-line>span::selection,.CodeMirror-line>span>span::selection{background:#d7d4f0}.CodeMirror-line::-moz-selection,.CodeMirror-line>span::-moz-selection,.CodeMirror-line>span>span::-moz-selection{background:#d7d4f0}.cm-searching{background-color:#ffa;background-color:#ff06}.cm-force-border{padding-right:.1px}@media print{.CodeMirror div.CodeMirror-cursors{visibility:hidden}}.cm-tab-wrap-hack:after{content:""}span.CodeMirror-selectedtext{background:none}.CodeMirror-lint-markers{width:16px}.CodeMirror-lint-tooltip{background-color:#ffd;border:1px solid #000;border-radius:4px 4px 4px 4px;color:#000;font-family:monospace;font-size:10pt;overflow:hidden;padding:2px 5px;position:fixed;white-space:pre;white-space:pre-wrap;z-index:100;max-width:600px;opacity:0;transition:opacity .4s;-moz-transition:opacity .4s;-webkit-transition:opacity .4s;-o-transition:opacity .4s;-ms-transition:opacity .4s}.CodeMirror-lint-mark{background-position:0 100%;background-repeat:repeat-x}.CodeMirror-lint-mark-warning{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAQAAAADCAYAAAC09K7GAAAAAXNSR0IArs4c6QAAAAZiS0dEAP8A/wD/oL2nkwAAAAlwSFlzAAALEwAACxMBAJqcGAAAAAd0SU1FB9sJFhQXEbhTg7YAAAAZdEVYdENvbW1lbnQAQ3JlYXRlZCB3aXRoIEdJTVBXgQ4XAAAAMklEQVQI12NkgIIvJ3QXMjAwdDN+OaEbysDA4MPAwNDNwMCwiOHLCd1zX07o6kBVGQEAKBANtobskNMAAAAASUVORK5CYII=)}.CodeMirror-lint-mark-error{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAQAAAADCAYAAAC09K7GAAAAAXNSR0IArs4c6QAAAAZiS0dEAP8A/wD/oL2nkwAAAAlwSFlzAAALEwAACxMBAJqcGAAAAAd0SU1FB9sJDw4cOCW1/KIAAAAZdEVYdENvbW1lbnQAQ3JlYXRlZCB3aXRoIEdJTVBXgQ4XAAAAHElEQVQI12NggIL/DAz/GdA5/xkY/qPKMDAwAADLZwf5rvm+LQAAAABJRU5ErkJggg==)}.CodeMirror-lint-marker{background-position:50%;background-repeat:no-repeat;cursor:pointer;display:inline-block;height:16px;width:16px;vertical-align:middle;position:relative}.CodeMirror-lint-message{padding-left:18px;background-position:0 0;background-repeat:no-repeat}.CodeMirror-lint-marker-warning,.CodeMirror-lint-message-warning{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAMAAAAoLQ9TAAAANlBMVEX/uwDvrwD/uwD/uwD/uwD/uwD/uwD/uwD/uwD6twD/uwAAAADurwD2tQD7uAD+ugAAAAD/uwDhmeTRAAAADHRSTlMJ8mN1EYcbmiixgACm7WbuAAAAVklEQVR42n3PUQqAIBBFUU1LLc3u/jdbOJoW1P08DA9Gba8+YWJ6gNJoNYIBzAA2chBth5kLmG9YUoG0NHAUwFXwO9LuBQL1giCQb8gC9Oro2vp5rncCIY8L8uEx5ZkAAAAASUVORK5CYII=)}.CodeMirror-lint-marker-error,.CodeMirror-lint-message-error{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAMAAAAoLQ9TAAAAHlBMVEW7AAC7AACxAAC7AAC7AAAAAAC4AAC5AAD///+7AAAUdclpAAAABnRSTlMXnORSiwCK0ZKSAAAATUlEQVR42mWPOQ7AQAgDuQLx/z8csYRmPRIFIwRGnosRrpamvkKi0FTIiMASR3hhKW+hAN6/tIWhu9PDWiTGNEkTtIOucA5Oyr9ckPgAWm0GPBog6v4AAAAASUVORK5CYII=)}.CodeMirror-lint-marker-multiple{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAcAAAAHCAMAAADzjKfhAAAACVBMVEUAAAAAAAC/v7914kyHAAAAAXRSTlMAQObYZgAAACNJREFUeNo1ioEJAAAIwmz/H90iFFSGJgFMe3gaLZ0od+9/AQZ0ADosbYraAAAAAElFTkSuQmCC);background-repeat:no-repeat;background-position:100% 100%;width:100%;height:100%}.CodeMirror-lint-line-error{background-color:#b74c5114}.CodeMirror-lint-line-warning{background-color:#ffd3001a}.textEditor[data-v-0ca6b553]{height:100%;display:flex;flex-direction:column;border:1px solid #ddd}.sourceCodeEditor[data-v-0ca6b553]{flex-grow:1;height:100%;overflow:hidden}.textEditor.math .cm-operator{margin:0 .2em}.textEditor.markdown .CodeMirror-wrap pre{word-break:break-word}.CodeMirror-placeholder{opacity:.5}.editor.vue-component.tabs.boxed>.tabsBody>.tabContent{overflow:hidden}.vue-component .highlight-box{box-shadow:0 0 0 .2em #c8e1ff}.vue-component code.id{color:maroon}.vue-component abbr{-webkit-text-decoration:underline dotted 1px;text-decoration:underline dotted 1px}.vue-component .unit{opacity:.6}.vue-component .status[data-value=submitted]{color:#000}.vue-component .status[data-value=running]{color:#ff8c00}.vue-component .status[data-value=queued]{color:#00008b}.vue-component .status[data-value=finished]{color:#006400}.vue-component .status[data-value=canceled]{color:#a9a9a9}.vue-component .status[data-value=error]{color:red}.vue-component.inline.process{margin-left:1em}.vue-component.inline h1{font-size:1.17em}.vue-component.inline h2{font-size:1.1em}.vue-component.inline h3{font-size:1.05em}.vue-component.inline h4,.vue-component.inline h5,.vue-component.inline h6{font-size:1em}.vue-component .comma-separated-list{display:inline;list-style:none;padding:0}.vue-component .comma-separated-list li{display:inline;padding:0}.vue-component .comma-separated-list li:after{content:", "}.vue-component .comma-separated-list li:last-child:after{content:""}.vue-component .required{color:red;font-weight:700}.vue-component.message-block{margin:1em 0;padding:.5em}.vue-component.message-block>strong{display:block;margin-bottom:.5em}.vue-component.message-block>p{margin:0}.vue-component .param-name,.vue-component .process-name{color:#369}.vue-component .param-argument,.vue-component .return-value{color:#936}.vue-component .data-type{color:#693}.vue-component .param-optional{font-weight:700}.vue-component .badges{margin:0;padding:0;list-style-type:none;display:inline-block}.vue-component .badges .badge{display:inline-block;font-size:.8em;margin:.25em;padding:.35em .5em .25em .5em;line-height:1em;text-align:center;white-space:nowrap;text-transform:uppercase;vertical-align:initial;border-radius:.5em;color:#fff;background-color:#6c757d}.vue-component .badges:not(.inline){margin-left:-.25em;margin-right:-.25em}.vue-component .badges.small .badge{padding:.25em .35em .2em .35em;font-size:.75em}.vue-component .badges.inline{margin-left:.5em;border-radius:.25em}.vue-component .badges.inline .badge{margin-top:0;margin-bottom:0}.vue-component .badges .badge a{color:#fff;border-bottom:1px dotted #fff;text-decoration:none}.vue-component .badges .badge a.badge-fill{margin:-.35em -.5em;padding:.35em .5em;display:block;border-bottom:0}.vue-component .badges.small .badge a.badge-fill{margin:-.2em -.3em;padding:.25em .35em}.vue-component .badges .badge a:hover{color:#fff;border-bottom-style:solid}.vue-component .badges .default{background-color:#555}.vue-component .badges .green{background-color:green}.vue-component .badges .red{background-color:maroon}.vue-component .badges .option1{background-color:#369}.vue-component .badges .option2{background-color:#693}.vue-component .badges .option3{background-color:#936}.vue-component .badges .option4{background-color:#963}.vue-component .badges .deprecated{background-color:red}.vue-component .badges .experimental{background-color:#8a2be2}.vue-component .badges .action{border:1px solid #000;background-color:#fff;color:#000;margin:.33em;cursor:pointer;text-transform:none}.vue-component .badges .action:hover{background-color:#000;color:#fff}.vue-component .badges .action:hover>a{color:#fff}.vue-component .badges .action>a{color:#000}.vue-component .badges .docker{background-color:#0db7ed}.vue-component .tabular{display:flex;margin:.2em 0;padding:1px}.vue-component .tabular label{flex:1;font-weight:700}.vue-component .tabular .value{flex:3}.vue-component .tabular .value td>div,.vue-component .tabular .value>.formatted>ul,.vue-component .tabular .value>ul,.vue-component .tabular ul.value{max-height:15em;overflow:auto}.vue-component .tabular .value pre{margin:0}.vue-component.stac .map{background:#0000;height:350px}.vue-component.stac .tabular{margin:.5em 0}.vue-component.stac .tabular.wrap{display:block}.vue-component.stac .tabular.wrap .value{margin-top:.5em;margin-left:1em;margin-bottom:.5em}.vue-component.stac .tabular .value ul{padding-left:20px}.assets.empty,.vue-component.stac .links:empty{display:none}.vue-component.stac .thumbnails{overflow-x:auto;overflow-y:hidden;width:100%;white-space:nowrap}.vue-component.stac .thumbnails a{margin:5px;display:inline-block}.vue-component.stac .thumbnails a img{padding:2px;max-height:200px;vertical-align:middle;border:2px solid #0000}.vue-component.stac .thumbnails a:hover img{border:2px solid #00000080}.vue-component .federation>ul>li{margin-bottom:.5em}.vue-component .federation>ul>li>small{display:block}.vue-component .federation>ul>li>h4{margin:0}.vue-component .federation .fed-header{margin:.2em 0}.vue-component .federation .fed-header>.fed-title{display:inline-block;vertical-align:bottom}.vue-component.service>h2{display:none}
\ No newline at end of file
diff --git a/css/8807.91a4cda1.css b/css/8807.91a4cda1.css
new file mode 100644
index 00000000..e07c6b93
--- /dev/null
+++ b/css/8807.91a4cda1.css
@@ -0,0 +1 @@
+.modal{position:fixed;z-index:1000;left:0;top:0;width:100%;height:100%;background-color:#0006;display:flex;justify-content:center;align-items:center}.modal .modal-container{background-color:#fff;border:1px solid #fff;min-height:50vh;min-width:300px;width:70%;max-height:96%;max-width:96%;display:flex;flex-direction:column;box-shadow:8px 8px 8px 0 #0000004d;resize:both;overflow:hidden}.modal .modal-container.smooth{transition-timing-function:linear;transition-property:width,height;transition-duration:.5s}.modal .modal-header{background-color:#1665b6;color:#fff;margin:0;height:1.5rem;padding:1rem;display:flex;align-items:center;justify-content:space-between;cursor:move}.modal .modal-header h2{display:inline-block;margin:0;margin-left:-.5rem;padding:.5rem;font-size:1.5rem;border:0;cursor:text;text-overflow:ellipsis;overflow:hidden}.modal .modal-content{padding:1rem;overflow:auto;flex-grow:1}.modal .inline .modal-content{padding:0}.modal .modal-footer:empty{display:none}.modal .modal-footer{background-color:#eee;margin:0;padding:1rem;text-align:right}.modal .close{font-size:1.5rem;height:2rem;width:2rem;color:#fff;cursor:pointer;display:flex;justify-content:center;align-items:center}.modal .close:focus,.modal .close:hover{color:red}.vue-component.model-builder .block .connector{font-size:.9em;margin:.2em 0;white-space:nowrap}.vue-component.model-builder .block .connector.noValue{color:red}.vue-component.model-builder .block .connector.editable .label,.vue-component.model-builder .block .connector.editable .value{cursor:pointer}.vue-component.model-builder .block .connector span[title]{cursor:help}.vue-component.model-builder .block .connector .input{max-width:100%;overflow:hidden;text-overflow:ellipsis}.vue-component.model-builder .block .connector .output{text-align:right}.vue-component.model-builder .block .connector .unspecified{color:red;margin-right:.3em}.vue-component.model-builder .block .connector .circle{width:.8em;height:.8em;margin:0 .2em;border:1px solid #888;background-color:#0000;display:inline-block}.vue-component.model-builder .block .connector .circle.io_active{background-color:#ffc800}.vue-component.model-builder .block .connector .circle.io_selected{background-color:#00c800!important}.vue-component.model-builder .block .connector .circle.io_issues{background-color:red}.vue-component.model-builder.editable .circle{cursor:pointer}.vue-component.model-builder .block{position:absolute;border:2px solid #ccc;margin-left:0;margin-top:0;background-color:#fafafa;opacity:.8;font-size:14px;user-select:none;-moz-user-select:none;-khtml-user-select:none;-webkit-user-select:none;-o-user-select:none;color:#000}.vue-component.model-builder .block .description{display:none;width:200px;padding:3px;border:1px solid #083776;border-radius:5px;color:#001531;background-color:#91bcf6;margin-top:15px;position:absolute;font-weight:400}.vue-component.model-builder .block .blockTitle{display:flex;padding:.3em .1em;font-weight:700;background-color:#ddd;margin-bottom:.1em;cursor:move;font-size:.9em}.vue-component.model-builder .block .blockTitle .blockId{opacity:.4;margin-left:.25em;font-weight:400}.vue-component.model-builder .block .blockTitle .namespace{font-weight:400}.vue-component.model-builder .block .blockTitle .titleText{flex-grow:1;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.vue-component.model-builder .block .blockTitle .blockicon{white-space:nowrap;text-align:center}.vue-component.model-builder .block .blockTitle .blockicon i.fas{min-width:1.4em;cursor:pointer;opacity:.5;margin-left:.1em}.vue-component.model-builder .block .blockTitle .blockicon i.fas:hover{opacity:1}.vue-component.model-builder .block .invalid{color:red;cursor:help}.vue-component.model-builder .block .inout{display:flex}.vue-component.model-builder .block .inputs{flex-grow:1;max-width:100%;overflow:hidden;text-overflow:ellipsis}.vue-component.model-builder .block .editDescription{padding:.3em .2em;box-sizing:border-box;font-size:.9em;line-height:1em;overflow:auto;border:0;border-top:1px dotted #ccc;background-color:#0000;width:100%;max-width:100%;height:3.7em;min-height:2.5em;resize:none}.vue-component.model-builder .block .editDescription:focus{outline:0}.vue-component.model-builder .block_collection{border:2px solid #6b8daf}.vue-component.model-builder .block_collection .blockTitle{background-color:#a3b7cc}.vue-component.model-builder .block_collection .field_id{display:none}.vue-component.model-builder .block_result{border:2px solid #888}.vue-component.model-builder .block_result .field_output .circle{background-color:#888;cursor:auto}.vue-component.model-builder .block_argument{border:2px solid #b28c6b}.vue-component.model-builder .block_argument .blockTitle{background-color:#ccb7a3}.vue-component.model-builder .block_selected{border:2px solid #0a0!important}.vue-component.model-builder .block_selected .blockTitle{background-color:#0c0!important}.vue-component.model-builder .block_invalid{border:2px solid red!important}.vue-component.model-builder{width:100%;height:100%;position:relative}.vue-component.model-builder.editable.focus .blocks{border-color:#1666b64d}.vue-component.model-builder .blocks:focus,.vue-component.model-builder .canvas:focus,.vue-component.model-builder:focus{outline:0}.vue-component.model-builder .canvas{width:100%;height:100%;position:absolute;z-index:1}.vue-component.model-builder .blocks{box-sizing:border-box;border:1px solid #0000;overflow:hidden;position:absolute;z-index:3;width:100%;height:100%}.vue-component.model-builder.compact .blockId,.vue-component.model-builder.compact .blockicon .addDescription,.vue-component.model-builder.compact .blockicon .delete,.vue-component.model-builder.compact .blockicon .info,.vue-component.model-builder.compact .editDescription,.vue-component.model-builder.scale_s .blockicon,.vue-component.model-builder.scale_xs .blockicon,.vue-component.model-builder.scale_xs .connector .text{display:none}.vue-component.model-builder .zoomInfo{position:absolute;top:0;right:0;display:inline-block;padding:.3em;background-color:#f9f9f9;color:#000;border-radius:0 0 0 .3em;z-index:5}.vue-component.model-builder.scale_xs .editDescription{visibility:hidden}.vue-component.search-box{margin:0 1px 1em 0;display:flex;align-items:stretch}.vue-component.search-box .icon,.vue-component.search-box input{font-size:1em;margin:0}.vue-component.search-box input{flex-grow:1;padding:.3em;padding-left:1.9em;z-index:1;border:1px solid #ccc;box-sizing:initial;background-color:#fff;box-sizing:border-box;width:100%;margin-left:-1.3em}.vue-component.search-box .icon{display:flex;align-items:center;-webkit-user-select:none;user-select:none;margin-left:.3em;width:1em;z-index:2}.vue-component.search-box.compact{font-size:.9em;margin-bottom:0}.vue-component.search-box.compact input{padding-top:0;padding-bottom:0}.vue-component.search-box.compact .icon{margin-top:.1em;margin-left:.3em}.search-results h2.heading{font-size:1em;border:0;margin:0;padding:0;margin-bottom:.5em}.search-results .vue-component.searchable-list ul.list>li>summary:before{content:"";margin-left:0;float:none}.search-results .vue-component.searchable-list ul.list>li>summary{margin:0;line-height:inherit}.search-results .vue-component.searchable-list ul.list>li{margin-bottom:0}.discovery-toolbar[data-v-281f64a6]{width:100%;height:100%;display:flex;flex-direction:column;overflow:hidden}.search-results[data-v-281f64a6]{overflow-y:auto;flex-grow:1;margin:.25rem 0 0 0}.search-box[data-v-281f64a6]{margin:1rem 1rem .25rem 1rem}.filters[data-v-281f64a6]{display:flex;justify-content:center;flex-flow:row wrap}.filters .label[data-v-281f64a6],.filters .show-deprecated[data-v-281f64a6],.filters .show-experimental[data-v-281f64a6]{align-content:center;display:inline-block;white-space:nowrap;margin:.25rem;font-size:.9em;cursor:pointer}.filters .label[data-v-281f64a6]{cursor:default}.category[data-v-281f64a6]{margin:.75rem 1rem .5rem 1rem}.category strong[data-v-281f64a6]{cursor:pointer;overflow:hidden;white-space:nowrap}.discovery-entity[data-v-281f64a6]{display:flex;margin:.25em 0;border:1px solid #ddd;border-radius:3px;cursor:pointer;-webkit-user-select:none;user-select:none;font-size:.9em}.discovery-entity strong[data-v-281f64a6]{display:block;font-weight:400;white-space:nowrap;width:100%;overflow:hidden;text-overflow:ellipsis;color:#1665b6}.discovery-entity small[data-v-281f64a6]{margin-top:.25em;display:block}.discovery-entity .discovery-info[data-v-281f64a6]{flex-grow:1;padding:5px;width:100%;overflow:hidden;position:relative}.discovery-entity .discovery-info[data-v-281f64a6]:hover{background-color:#eee}.discovery-entity .discovery-info:hover strong[data-v-281f64a6]{color:#000}.discovery-entity .discovery-button[data-v-281f64a6]{display:block;margin:0;padding:5px;background-color:#fff;color:#aaa;border:0;border-left:1px solid #ddd}.discovery-entity .discovery-button[data-v-281f64a6]:hover{background-color:#eee;color:#000}.discovery-entity .custom-process[data-v-281f64a6]{position:absolute;top:7px;right:5px}.fullscreen{position:absolute!important;top:0!important;left:0!important;width:100%!important;height:100%!important;background-color:#fff;overflow:auto}.visualEditor{background-color:#fff;height:100%;display:flex;flex-direction:column}.visualEditor .vue-component.model-builder{min-height:100px;min-width:100px}.visualEditor .model-overlay{position:absolute;width:100%;height:100%;left:0;top:0;color:#555;z-index:5;padding:1em;overflow:auto;box-sizing:border-box;line-height:1.25em}.visualEditor .model-overlay>h2{font-size:1.2em;text-align:center;border-bottom:0;margin-bottom:.5em;padding:0}.visualEditor .model-overlay>p{margin:.5em 0}.visualEditor .model-overlay>p>ul{margin:.25em 0}.visualEditor .model-overlay>p:first-of-type{margin-top:0}.visualEditor .model-overlay>p:last-of-type{margin-bottom:0}.visualEditor .discoveryToolbar{width:25%;min-width:150px;border-left:1px solid #ddd}.visualEditor .editorSplitter{display:flex;flex-direction:row-reverse;flex-grow:1;height:100%;overflow:hidden}.visualEditor.fullscreen{display:flex;flex-direction:column}.visualEditor.fullscreen .discoveryToolbar{width:15%;min-width:250px}.visualEditor.fullscreen .editorSplitter{height:100%}.graphBuilder{height:100%;flex-grow:1;position:relative}.compactMode{color:green}@keyframes glowing{0%{box-shadow:0 0 3px green}50%{box-shadow:0 0 10px green}to{box-shadow:0 0 3px green}}.highlightFormula{animation:glowing 1.5s infinite}.CodeMirror{font-family:monospace;height:300px;color:#000;direction:ltr}.CodeMirror-lines{padding:4px 0}.CodeMirror pre.CodeMirror-line,.CodeMirror pre.CodeMirror-line-like{padding:0 4px}.CodeMirror-gutter-filler,.CodeMirror-scrollbar-filler{background-color:#fff}.CodeMirror-gutters{border-right:1px solid #ddd;background-color:#f7f7f7;white-space:nowrap}.CodeMirror-linenumber{padding:0 3px 0 5px;min-width:20px;text-align:right;color:#999;white-space:nowrap}.CodeMirror-guttermarker{color:#000}.CodeMirror-guttermarker-subtle{color:#999}.CodeMirror-cursor{border-left:1px solid #000;border-right:none;width:0}.CodeMirror div.CodeMirror-secondarycursor{border-left:1px solid silver}.cm-fat-cursor .CodeMirror-cursor{width:auto;border:0!important;background:#7e7}.cm-fat-cursor div.CodeMirror-cursors{z-index:1}.cm-fat-cursor .CodeMirror-line::selection,.cm-fat-cursor .CodeMirror-line>span::selection,.cm-fat-cursor .CodeMirror-line>span>span::selection{background:#0000}.cm-fat-cursor .CodeMirror-line::-moz-selection,.cm-fat-cursor .CodeMirror-line>span::-moz-selection,.cm-fat-cursor .CodeMirror-line>span>span::-moz-selection{background:#0000}.cm-fat-cursor{caret-color:#0000}@keyframes blink{50%{background-color:initial}}.cm-tab{display:inline-block;text-decoration:inherit}.CodeMirror-rulers{position:absolute;left:0;right:0;top:-50px;bottom:0;overflow:hidden}.CodeMirror-ruler{border-left:1px solid #ccc;top:0;bottom:0;position:absolute}.cm-s-default .cm-header{color:blue}.cm-s-default .cm-quote{color:#090}.cm-negative{color:#d44}.cm-positive{color:#292}.cm-header,.cm-strong{font-weight:700}.cm-em{font-style:italic}.cm-link{text-decoration:underline}.cm-strikethrough{text-decoration:line-through}.cm-s-default .cm-keyword{color:#708}.cm-s-default .cm-atom{color:#219}.cm-s-default .cm-number{color:#164}.cm-s-default .cm-def{color:#00f}.cm-s-default .cm-variable-2{color:#05a}.cm-s-default .cm-type,.cm-s-default .cm-variable-3{color:#085}.cm-s-default .cm-comment{color:#a50}.cm-s-default .cm-string{color:#a11}.cm-s-default .cm-string-2{color:#f50}.cm-s-default .cm-meta,.cm-s-default .cm-qualifier{color:#555}.cm-s-default .cm-builtin{color:#30a}.cm-s-default .cm-bracket{color:#997}.cm-s-default .cm-tag{color:#170}.cm-s-default .cm-attribute{color:#00c}.cm-s-default .cm-hr{color:#999}.cm-s-default .cm-link{color:#00c}.cm-invalidchar,.cm-s-default .cm-error{color:red}.CodeMirror-composing{border-bottom:2px solid}div.CodeMirror span.CodeMirror-matchingbracket{color:#0b0}div.CodeMirror span.CodeMirror-nonmatchingbracket{color:#a22}.CodeMirror-matchingtag{background:#ff96004d}.CodeMirror-activeline-background{background:#e8f2ff}.CodeMirror{position:relative;overflow:hidden;background:#fff}.CodeMirror-scroll{overflow:scroll!important;margin-bottom:-50px;margin-right:-50px;padding-bottom:50px;height:100%;outline:none;position:relative;z-index:0}.CodeMirror-sizer{position:relative;border-right:50px solid #0000}.CodeMirror-gutter-filler,.CodeMirror-hscrollbar,.CodeMirror-scrollbar-filler,.CodeMirror-vscrollbar{position:absolute;z-index:6;display:none;outline:none}.CodeMirror-vscrollbar{right:0;top:0;overflow-x:hidden;overflow-y:scroll}.CodeMirror-hscrollbar{bottom:0;left:0;overflow-y:hidden;overflow-x:scroll}.CodeMirror-scrollbar-filler{right:0;bottom:0}.CodeMirror-gutter-filler{left:0;bottom:0}.CodeMirror-gutters{position:absolute;left:0;top:0;min-height:100%;z-index:3}.CodeMirror-gutter{white-space:normal;height:100%;display:inline-block;vertical-align:top;margin-bottom:-50px}.CodeMirror-gutter-wrapper{position:absolute;z-index:4;background:none!important;border:none!important}.CodeMirror-gutter-background{position:absolute;top:0;bottom:0;z-index:4}.CodeMirror-gutter-elt{position:absolute;cursor:default;z-index:4}.CodeMirror-gutter-wrapper ::selection{background-color:initial}.CodeMirror-gutter-wrapper ::-moz-selection{background-color:initial}.CodeMirror-lines{cursor:text;min-height:1px}.CodeMirror pre.CodeMirror-line,.CodeMirror pre.CodeMirror-line-like{border-radius:0;border-width:0;background:#0000;font-family:inherit;font-size:inherit;margin:0;white-space:pre;word-wrap:normal;line-height:inherit;color:inherit;z-index:2;position:relative;overflow:visible;-webkit-tap-highlight-color:transparent;font-variant-ligatures:contextual}.CodeMirror-wrap pre.CodeMirror-line,.CodeMirror-wrap pre.CodeMirror-line-like{word-wrap:break-word;white-space:pre-wrap;word-break:normal}.CodeMirror-linebackground{position:absolute;left:0;right:0;top:0;bottom:0;z-index:0}.CodeMirror-linewidget{position:relative;z-index:2;padding:.1px}.CodeMirror-rtl pre{direction:rtl}.CodeMirror-code{outline:none}.CodeMirror-gutter,.CodeMirror-gutters,.CodeMirror-linenumber,.CodeMirror-scroll,.CodeMirror-sizer{box-sizing:initial}.CodeMirror-measure{position:absolute;width:100%;height:0;overflow:hidden;visibility:hidden}.CodeMirror-cursor{position:absolute;pointer-events:none}.CodeMirror-measure pre{position:static}div.CodeMirror-cursors{visibility:hidden;position:relative;z-index:3}.CodeMirror-focused div.CodeMirror-cursors,div.CodeMirror-dragcursors{visibility:visible}.CodeMirror-selected{background:#d9d9d9}.CodeMirror-focused .CodeMirror-selected{background:#d7d4f0}.CodeMirror-crosshair{cursor:crosshair}.CodeMirror-line::selection,.CodeMirror-line>span::selection,.CodeMirror-line>span>span::selection{background:#d7d4f0}.CodeMirror-line::-moz-selection,.CodeMirror-line>span::-moz-selection,.CodeMirror-line>span>span::-moz-selection{background:#d7d4f0}.cm-searching{background-color:#ffa;background-color:#ff06}.cm-force-border{padding-right:.1px}@media print{.CodeMirror div.CodeMirror-cursors{visibility:hidden}}.cm-tab-wrap-hack:after{content:""}span.CodeMirror-selectedtext{background:none}.CodeMirror-lint-markers{width:16px}.CodeMirror-lint-tooltip{background-color:#ffd;border:1px solid #000;border-radius:4px 4px 4px 4px;color:#000;font-family:monospace;font-size:10pt;overflow:hidden;padding:2px 5px;position:fixed;white-space:pre;white-space:pre-wrap;z-index:100;max-width:600px;opacity:0;transition:opacity .4s;-moz-transition:opacity .4s;-webkit-transition:opacity .4s;-o-transition:opacity .4s;-ms-transition:opacity .4s}.CodeMirror-lint-mark{background-position:0 100%;background-repeat:repeat-x}.CodeMirror-lint-mark-warning{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAQAAAADCAYAAAC09K7GAAAAAXNSR0IArs4c6QAAAAZiS0dEAP8A/wD/oL2nkwAAAAlwSFlzAAALEwAACxMBAJqcGAAAAAd0SU1FB9sJFhQXEbhTg7YAAAAZdEVYdENvbW1lbnQAQ3JlYXRlZCB3aXRoIEdJTVBXgQ4XAAAAMklEQVQI12NkgIIvJ3QXMjAwdDN+OaEbysDA4MPAwNDNwMCwiOHLCd1zX07o6kBVGQEAKBANtobskNMAAAAASUVORK5CYII=)}.CodeMirror-lint-mark-error{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAQAAAADCAYAAAC09K7GAAAAAXNSR0IArs4c6QAAAAZiS0dEAP8A/wD/oL2nkwAAAAlwSFlzAAALEwAACxMBAJqcGAAAAAd0SU1FB9sJDw4cOCW1/KIAAAAZdEVYdENvbW1lbnQAQ3JlYXRlZCB3aXRoIEdJTVBXgQ4XAAAAHElEQVQI12NggIL/DAz/GdA5/xkY/qPKMDAwAADLZwf5rvm+LQAAAABJRU5ErkJggg==)}.CodeMirror-lint-marker{background-position:50%;background-repeat:no-repeat;cursor:pointer;display:inline-block;height:16px;width:16px;vertical-align:middle;position:relative}.CodeMirror-lint-message{padding-left:18px;background-position:0 0;background-repeat:no-repeat}.CodeMirror-lint-marker-warning,.CodeMirror-lint-message-warning{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAMAAAAoLQ9TAAAANlBMVEX/uwDvrwD/uwD/uwD/uwD/uwD/uwD/uwD/uwD6twD/uwAAAADurwD2tQD7uAD+ugAAAAD/uwDhmeTRAAAADHRSTlMJ8mN1EYcbmiixgACm7WbuAAAAVklEQVR42n3PUQqAIBBFUU1LLc3u/jdbOJoW1P08DA9Gba8+YWJ6gNJoNYIBzAA2chBth5kLmG9YUoG0NHAUwFXwO9LuBQL1giCQb8gC9Oro2vp5rncCIY8L8uEx5ZkAAAAASUVORK5CYII=)}.CodeMirror-lint-marker-error,.CodeMirror-lint-message-error{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAMAAAAoLQ9TAAAAHlBMVEW7AAC7AACxAAC7AAC7AAAAAAC4AAC5AAD///+7AAAUdclpAAAABnRSTlMXnORSiwCK0ZKSAAAATUlEQVR42mWPOQ7AQAgDuQLx/z8csYRmPRIFIwRGnosRrpamvkKi0FTIiMASR3hhKW+hAN6/tIWhu9PDWiTGNEkTtIOucA5Oyr9ckPgAWm0GPBog6v4AAAAASUVORK5CYII=)}.CodeMirror-lint-marker-multiple{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAcAAAAHCAMAAADzjKfhAAAACVBMVEUAAAAAAAC/v7914kyHAAAAAXRSTlMAQObYZgAAACNJREFUeNo1ioEJAAAIwmz/H90iFFSGJgFMe3gaLZ0od+9/AQZ0ADosbYraAAAAAElFTkSuQmCC);background-repeat:no-repeat;background-position:100% 100%;width:100%;height:100%}.CodeMirror-lint-line-error{background-color:#b74c5114}.CodeMirror-lint-line-warning{background-color:#ffd3001a}.textEditor[data-v-0ca6b553]{height:100%;display:flex;flex-direction:column;border:1px solid #ddd}.sourceCodeEditor[data-v-0ca6b553]{flex-grow:1;height:100%;overflow:hidden}.textEditor.math .cm-operator{margin:0 .2em}.textEditor.markdown .CodeMirror-wrap pre{word-break:break-word}.CodeMirror-placeholder{opacity:.5}.editor.vue-component.tabs.boxed>.tabsBody>.tabContent{overflow:hidden}.vue-component .highlight-box{box-shadow:0 0 0 .2em #c8e1ff}.vue-component code.id{color:maroon}.vue-component abbr{-webkit-text-decoration:underline dotted 1px;text-decoration:underline dotted 1px}.vue-component .unit{opacity:.6}.vue-component .status[data-value=submitted]{color:#000}.vue-component .status[data-value=running]{color:#ff8c00}.vue-component .status[data-value=queued]{color:#00008b}.vue-component .status[data-value=finished]{color:#006400}.vue-component .status[data-value=canceled]{color:#a9a9a9}.vue-component .status[data-value=error]{color:red}.vue-component.inline.process{margin-left:1em}.vue-component.inline h1{font-size:1.17em}.vue-component.inline h2{font-size:1.1em}.vue-component.inline h3{font-size:1.05em}.vue-component.inline h4,.vue-component.inline h5,.vue-component.inline h6{font-size:1em}.vue-component .comma-separated-list{display:inline;list-style:none;padding:0}.vue-component .comma-separated-list li{display:inline;padding:0}.vue-component .comma-separated-list li:after{content:", "}.vue-component .comma-separated-list li:last-child:after{content:""}.vue-component .required{color:red;font-weight:700}.vue-component.message-block{margin:1em 0;padding:.5em}.vue-component.message-block>strong{display:block;margin-bottom:.5em}.vue-component.message-block>p{margin:0}.vue-component .param-name,.vue-component .process-name{color:#369}.vue-component .param-argument,.vue-component .return-value{color:#936}.vue-component .data-type{color:#693}.vue-component .param-optional{font-weight:700}.vue-component .badges{margin:0;padding:0;list-style-type:none;display:inline-block}.vue-component .badges .badge{display:inline-block;font-size:.8em;margin:.25em;padding:.35em .5em .25em .5em;line-height:1em;text-align:center;white-space:nowrap;text-transform:uppercase;vertical-align:initial;border-radius:.5em;color:#fff;background-color:#6c757d}.vue-component .badges:not(.inline){margin-left:-.25em;margin-right:-.25em}.vue-component .badges.small .badge{padding:.25em .35em .2em .35em;font-size:.75em}.vue-component .badges.inline{margin-left:.5em;border-radius:.25em}.vue-component .badges.inline .badge{margin-top:0;margin-bottom:0}.vue-component .badges .badge a{color:#fff;border-bottom:1px dotted #fff;text-decoration:none}.vue-component .badges .badge a.badge-fill{margin:-.35em -.5em;padding:.35em .5em;display:block;border-bottom:0}.vue-component .badges.small .badge a.badge-fill{margin:-.2em -.3em;padding:.25em .35em}.vue-component .badges .badge a:hover{color:#fff;border-bottom-style:solid}.vue-component .badges .default{background-color:#555}.vue-component .badges .green{background-color:green}.vue-component .badges .red{background-color:maroon}.vue-component .badges .option1{background-color:#369}.vue-component .badges .option2{background-color:#693}.vue-component .badges .option3{background-color:#936}.vue-component .badges .option4{background-color:#963}.vue-component .badges .deprecated{background-color:red}.vue-component .badges .experimental{background-color:#8a2be2}.vue-component .badges .action{border:1px solid #000;background-color:#fff;color:#000;margin:.33em;cursor:pointer;text-transform:none}.vue-component .badges .action:hover{background-color:#000;color:#fff}.vue-component .badges .action:hover>a{color:#fff}.vue-component .badges .action>a{color:#000}.vue-component .badges .docker{background-color:#0db7ed}.vue-component .tabular{display:flex;margin:.2em 0;padding:1px}.vue-component .tabular label{flex:1;font-weight:700}.vue-component .tabular .value{flex:3}.vue-component .tabular .value td>div,.vue-component .tabular .value>.formatted>ul,.vue-component .tabular .value>ul,.vue-component .tabular ul.value{max-height:15em;overflow:auto}.vue-component .tabular .value pre{margin:0}.vue-component.stac .map{background:#0000;height:350px}.vue-component.stac .tabular{margin:.5em 0}.vue-component.stac .tabular.wrap{display:block}.vue-component.stac .tabular.wrap .value{margin-top:.5em;margin-left:1em;margin-bottom:.5em}.vue-component.stac .tabular .value ul{padding-left:20px}.assets.empty,.vue-component.stac .links:empty{display:none}.vue-component.stac .thumbnails{overflow-x:auto;overflow-y:hidden;width:100%;white-space:nowrap}.vue-component.stac .thumbnails a{margin:5px;display:inline-block}.vue-component.stac .thumbnails a img{padding:2px;max-height:200px;vertical-align:middle;border:2px solid #0000}.vue-component.stac .thumbnails a:hover img{border:2px solid #00000080}.vue-component .federation>ul>li{margin-bottom:.5em}.vue-component .federation>ul>li>small{display:block}.vue-component .federation>ul>li>h4{margin:0}.vue-component .federation .fed-header{margin:.2em 0}.vue-component .federation .fed-header>.fed-title{display:inline-block;vertical-align:bottom}.vue-component.service>h2{display:none}
\ No newline at end of file
diff --git a/css/9201.7335e99d.css b/css/9201.19b52578.css
similarity index 65%
rename from css/9201.7335e99d.css
rename to css/9201.19b52578.css
index 3ba7b102..4474e49b 100644
--- a/css/9201.7335e99d.css
+++ b/css/9201.19b52578.css
@@ -1 +1 @@
-.vue-component .highlight-box{box-shadow:0 0 0 .2em #c8e1ff}.vue-component code.id{color:maroon}.vue-component abbr{-webkit-text-decoration:underline dotted 1px;text-decoration:underline dotted 1px}.vue-component .unit{opacity:.6}.vue-component .status[data-value=submitted]{color:#000}.vue-component .status[data-value=running]{color:#ff8c00}.vue-component .status[data-value=queued]{color:#00008b}.vue-component .status[data-value=finished]{color:#006400}.vue-component .status[data-value=canceled]{color:#a9a9a9}.vue-component .status[data-value=error]{color:red}.vue-component.inline.process{margin-left:1em}.vue-component.inline h1{font-size:1.17em}.vue-component.inline h2{font-size:1.1em}.vue-component.inline h3{font-size:1.05em}.vue-component.inline h4,.vue-component.inline h5,.vue-component.inline h6{font-size:1em}.vue-component .comma-separated-list{display:inline;list-style:none;padding:0}.vue-component .comma-separated-list li{display:inline;padding:0}.vue-component .comma-separated-list li:after{content:", "}.vue-component .comma-separated-list li:last-child:after{content:""}.vue-component .required{color:red;font-weight:700}.vue-component.message-block{margin:1em 0;padding:.5em}.vue-component.message-block>strong{display:block;margin-bottom:.5em}.vue-component.message-block>p{margin:0}.vue-component .param-name,.vue-component .process-name{color:#369}.vue-component .param-argument,.vue-component .return-value{color:#936}.vue-component .data-type{color:#693}.vue-component .param-optional{font-weight:700}.vue-component .badges{margin:0;padding:0;list-style-type:none;display:inline-block}.vue-component .badges .badge{display:inline-block;font-size:.8em;margin:.25em;padding:.35em .5em .25em .5em;line-height:1em;text-align:center;white-space:nowrap;text-transform:uppercase;vertical-align:initial;border-radius:.5em;color:#fff;background-color:#6c757d}.vue-component .badges:not(.inline){margin-left:-.25em;margin-right:-.25em}.vue-component .badges.small .badge{padding:.25em .35em .2em .35em;font-size:.75em}.vue-component .badges.inline{margin-left:.5em;border-radius:.25em}.vue-component .badges.inline .badge{margin-top:0;margin-bottom:0}.vue-component .badges .badge a{color:#fff;border-bottom:1px dotted #fff;text-decoration:none}.vue-component .badges .badge a.badge-fill{margin:-.35em -.5em;padding:.35em .5em;display:block;border-bottom:0}.vue-component .badges.small .badge a.badge-fill{margin:-.2em -.3em;padding:.25em .35em}.vue-component .badges .badge a:hover{color:#fff;border-bottom-style:solid}.vue-component .badges .default{background-color:#555}.vue-component .badges .green{background-color:green}.vue-component .badges .red{background-color:maroon}.vue-component .badges .option1{background-color:#369}.vue-component .badges .option2{background-color:#693}.vue-component .badges .option3{background-color:#936}.vue-component .badges .option4{background-color:#963}.vue-component .badges .deprecated{background-color:red}.vue-component .badges .experimental{background-color:#8a2be2}.vue-component .badges .action{border:1px solid #000;background-color:#fff;color:#000;margin:.33em;cursor:pointer;text-transform:none}.vue-component .badges .action:hover{background-color:#000;color:#fff}.vue-component .badges .action:hover>a{color:#fff}.vue-component .badges .action>a{color:#000}.vue-component .badges .docker{background-color:#0db7ed}.vue-component .tabular{display:flex;margin:.2em 0;padding:1px}.vue-component .tabular label{flex:1;font-weight:700}.vue-component .tabular .value{flex:3}.vue-component .tabular .value td>div,.vue-component .tabular .value>.formatted>ul,.vue-component .tabular .value>ul,.vue-component .tabular ul.value{max-height:15em;overflow:auto}.vue-component .tabular .value pre{margin:0}.vue-component.stac .map{background:#0000;height:350px}.vue-component.stac .tabular{margin:.5em 0}.vue-component.stac .tabular.wrap{display:block}.vue-component.stac .tabular.wrap .value{margin-top:.5em;margin-left:1em;margin-bottom:.5em}.vue-component.stac .tabular .value ul{padding-left:20px}.assets.empty,.vue-component.stac .links:empty{display:none}.vue-component.stac .thumbnails{overflow-x:auto;overflow-y:hidden;width:100%;white-space:nowrap}.vue-component.stac .thumbnails a{margin:5px;display:inline-block}.vue-component.stac .thumbnails a img{padding:2px;max-height:200px;vertical-align:middle;border:2px solid #0000}.vue-component.stac .thumbnails a:hover img{border:2px solid #00000080}.vue-component .federation>ul>li{margin-bottom:.5em}.vue-component .federation>ul>li>small{display:block}.vue-component .federation>ul>li>h4{margin:0}.vue-component .federation .fed-header{margin:.2em 0}.vue-component .federation .fed-header>.fed-title{display:inline-block;vertical-align:bottom}.vue-component.searchable-list.expandable .heading{cursor:pointer;padding-left:1em}.vue-component.searchable-list.expandable .heading:before{content:"▸";margin-left:-1em;float:left;font-size:1em}.vue-component.searchable-list.expandable.expanded .heading:before{content:"▾"}.vue-component.searchable-list .action-bar{width:100%;display:flex;margin-bottom:1em;padding:1px;gap:.5em}.vue-component.searchable-list .action-bar:empty{display:none}.vue-component.searchable-list .action-bar>.search-box{min-width:150px;flex:1;margin:0}.vue-component.searchable-list .action-bar>.deprecated{white-space:nowrap;align-content:center}.vue-component.searchable-list .details{display:none}.vue-component.searchable-list .list .details h2,.vue-component.searchable-list .list .details h3,.vue-component.searchable-list .list .details h4,.vue-component.searchable-list .list .details h5,.vue-component.searchable-list .list .details h6{font-size:1em}.vue-component.searchable-list ul.list{margin-left:0;padding-left:0;list-style-type:none}.vue-component.searchable-list ul.list>li{margin-bottom:.5em}.vue-component.searchable-list ul.list>li>summary{margin-bottom:.5em;margin-left:1em;line-height:1.33em}.vue-component.searchable-list ul.list>li>summary strong{display:block;text-overflow:ellipsis;overflow:hidden}.vue-component.searchable-list ul.list>li>summary strong .copy{display:none}.vue-component.searchable-list ul.list>li>summary strong.inline{display:inline}.vue-component.searchable-list ul.list>li>summary.experimental strong{color:#8a2be2}.vue-component.searchable-list ul.list>li>summary.deprecated strong{text-decoration:line-through}.vue-component.searchable-list ul.list>li>summary:before{content:"▸";margin-left:-1em;float:left;font-size:1em}.vue-component.searchable-list ul.list>li>summary .badges.block{display:block}.vue-component.searchable-list ul.expandable>li>summary{cursor:pointer}.vue-component.searchable-list ul.expandable>li>summary:hover strong .copy{display:inline-block!important}.vue-component.searchable-list ul.expandable>li.expanded{margin-bottom:2em}.vue-component.searchable-list ul.expandable>li.expanded .details{display:block;margin-left:1em}.vue-component.searchable-list ul.expandable>li.expanded>summary:before{content:"▾"}.vue-component.searchable-list ul.expandable>li.expanded>summary .hideOnExpand{display:none}.choose-index .vue-component.searchable-list ul.list>li{margin-bottom:0}.choose-index .vue-component.searchable-list ul.list>li>summary{margin:0}.choose-index .vue-component.searchable-list ul.list>li>summary:before{content:"";margin-left:0;float:none}.choose-index .vue-component.searchable-list ul.list>li>summary .summary .title{display:flex}.choose-index .vue-component.searchable-list ul.list>li>summary .summary .title strong{flex-grow:1}.choose-index .vue-component.searchable-list ul.list>li>summary .summary code{display:block}.choose-index .domain{background-color:#000}.choose-index .domain.water{background-color:#00008b}.choose-index .domain.vegetation{background-color:#006400}.choose-index .domain.burn{background-color:#b8860b}.choose-index .domain.soil{background-color:#5c4033}.choose-index .domain.urban{background-color:maroon}.choose-index .domain.radar{background-color:#9400d3}.choose-index .domain.snow{background-color:#008b8b}
\ No newline at end of file
+.vue-component .highlight-box{box-shadow:0 0 0 .2em #c8e1ff}.vue-component code.id{color:maroon}.vue-component abbr{-webkit-text-decoration:underline dotted 1px;text-decoration:underline dotted 1px}.vue-component .unit{opacity:.6}.vue-component .status[data-value=submitted]{color:#000}.vue-component .status[data-value=running]{color:#ff8c00}.vue-component .status[data-value=queued]{color:#00008b}.vue-component .status[data-value=finished]{color:#006400}.vue-component .status[data-value=canceled]{color:#a9a9a9}.vue-component .status[data-value=error]{color:red}.vue-component.inline.process{margin-left:1em}.vue-component.inline h1{font-size:1.17em}.vue-component.inline h2{font-size:1.1em}.vue-component.inline h3{font-size:1.05em}.vue-component.inline h4,.vue-component.inline h5,.vue-component.inline h6{font-size:1em}.vue-component .comma-separated-list{display:inline;list-style:none;padding:0}.vue-component .comma-separated-list li{display:inline;padding:0}.vue-component .comma-separated-list li:after{content:", "}.vue-component .comma-separated-list li:last-child:after{content:""}.vue-component .required{color:red;font-weight:700}.vue-component.message-block{margin:1em 0;padding:.5em}.vue-component.message-block>strong{display:block;margin-bottom:.5em}.vue-component.message-block>p{margin:0}.vue-component .param-name,.vue-component .process-name{color:#369}.vue-component .param-argument,.vue-component .return-value{color:#936}.vue-component .data-type{color:#693}.vue-component .param-optional{font-weight:700}.vue-component .badges{margin:0;padding:0;list-style-type:none;display:inline-block}.vue-component .badges .badge{display:inline-block;font-size:.8em;margin:.25em;padding:.35em .5em .25em .5em;line-height:1em;text-align:center;white-space:nowrap;text-transform:uppercase;vertical-align:initial;border-radius:.5em;color:#fff;background-color:#6c757d}.vue-component .badges:not(.inline){margin-left:-.25em;margin-right:-.25em}.vue-component .badges.small .badge{padding:.25em .35em .2em .35em;font-size:.75em}.vue-component .badges.inline{margin-left:.5em;border-radius:.25em}.vue-component .badges.inline .badge{margin-top:0;margin-bottom:0}.vue-component .badges .badge a{color:#fff;border-bottom:1px dotted #fff;text-decoration:none}.vue-component .badges .badge a.badge-fill{margin:-.35em -.5em;padding:.35em .5em;display:block;border-bottom:0}.vue-component .badges.small .badge a.badge-fill{margin:-.2em -.3em;padding:.25em .35em}.vue-component .badges .badge a:hover{color:#fff;border-bottom-style:solid}.vue-component .badges .default{background-color:#555}.vue-component .badges .green{background-color:green}.vue-component .badges .red{background-color:maroon}.vue-component .badges .option1{background-color:#369}.vue-component .badges .option2{background-color:#693}.vue-component .badges .option3{background-color:#936}.vue-component .badges .option4{background-color:#963}.vue-component .badges .deprecated{background-color:red}.vue-component .badges .experimental{background-color:#8a2be2}.vue-component .badges .action{border:1px solid #000;background-color:#fff;color:#000;margin:.33em;cursor:pointer;text-transform:none}.vue-component .badges .action:hover{background-color:#000;color:#fff}.vue-component .badges .action:hover>a{color:#fff}.vue-component .badges .action>a{color:#000}.vue-component .badges .docker{background-color:#0db7ed}.vue-component .tabular{display:flex;margin:.2em 0;padding:1px}.vue-component .tabular label{flex:1;font-weight:700}.vue-component .tabular .value{flex:3}.vue-component .tabular .value td>div,.vue-component .tabular .value>.formatted>ul,.vue-component .tabular .value>ul,.vue-component .tabular ul.value{max-height:15em;overflow:auto}.vue-component .tabular .value pre{margin:0}.vue-component.stac .map{background:#0000;height:350px}.vue-component.stac .tabular{margin:.5em 0}.vue-component.stac .tabular.wrap{display:block}.vue-component.stac .tabular.wrap .value{margin-top:.5em;margin-left:1em;margin-bottom:.5em}.vue-component.stac .tabular .value ul{padding-left:20px}.assets.empty,.vue-component.stac .links:empty{display:none}.vue-component.stac .thumbnails{overflow-x:auto;overflow-y:hidden;width:100%;white-space:nowrap}.vue-component.stac .thumbnails a{margin:5px;display:inline-block}.vue-component.stac .thumbnails a img{padding:2px;max-height:200px;vertical-align:middle;border:2px solid #0000}.vue-component.stac .thumbnails a:hover img{border:2px solid #00000080}.vue-component .federation>ul>li{margin-bottom:.5em}.vue-component .federation>ul>li>small{display:block}.vue-component .federation>ul>li>h4{margin:0}.vue-component .federation .fed-header{margin:.2em 0}.vue-component .federation .fed-header>.fed-title{display:inline-block;vertical-align:bottom}.vue-component.searchable-list.expandable .heading{cursor:pointer;padding-left:1em}.vue-component.searchable-list.expandable .heading:before{content:"▸";margin-left:-1em;float:left;font-size:1em}.vue-component.searchable-list.expandable.expanded .heading:before{content:"▾"}.vue-component.searchable-list .action-bar{width:100%;display:flex;margin-bottom:1em;padding:1px;gap:.5em}.vue-component.searchable-list .action-bar:empty{display:none}.vue-component.searchable-list .action-bar>.search-box{min-width:150px;flex:1;margin:0}.vue-component.searchable-list .action-bar>.deprecated,.vue-component.searchable-list .action-bar>.experimental{white-space:nowrap;align-content:center}.vue-component.searchable-list .details{display:none}.vue-component.searchable-list .list .details h2,.vue-component.searchable-list .list .details h3,.vue-component.searchable-list .list .details h4,.vue-component.searchable-list .list .details h5,.vue-component.searchable-list .list .details h6{font-size:1em}.vue-component.searchable-list ul.list{margin-left:0;padding-left:0;list-style-type:none}.vue-component.searchable-list ul.list>li{margin-bottom:.5em}.vue-component.searchable-list ul.list>li>summary{margin-bottom:.5em;margin-left:1em;line-height:1.33em}.vue-component.searchable-list ul.list>li>summary strong{display:block;text-overflow:ellipsis;overflow:hidden}.vue-component.searchable-list ul.list>li>summary strong .copy{display:none}.vue-component.searchable-list ul.list>li>summary strong.inline{display:inline}.vue-component.searchable-list ul.list>li>summary.experimental strong{color:#8a2be2}.vue-component.searchable-list ul.list>li>summary.deprecated strong{text-decoration:line-through}.vue-component.searchable-list ul.list>li>summary:before{content:"▸";margin-left:-1em;float:left;font-size:1em}.vue-component.searchable-list ul.list>li>summary .badges.block{display:block}.vue-component.searchable-list ul.expandable>li>summary{cursor:pointer}.vue-component.searchable-list ul.expandable>li>summary:hover strong .copy{display:inline-block!important}.vue-component.searchable-list ul.expandable>li.expanded{margin-bottom:2em}.vue-component.searchable-list ul.expandable>li.expanded .details{display:block;margin-left:1em}.vue-component.searchable-list ul.expandable>li.expanded>summary:before{content:"▾"}.vue-component.searchable-list ul.expandable>li.expanded>summary .hideOnExpand{display:none}.choose-index .vue-component.searchable-list ul.list>li{margin-bottom:0}.choose-index .vue-component.searchable-list ul.list>li>summary{margin:0}.choose-index .vue-component.searchable-list ul.list>li>summary:before{content:"";margin-left:0;float:none}.choose-index .vue-component.searchable-list ul.list>li>summary .summary .title{display:flex}.choose-index .vue-component.searchable-list ul.list>li>summary .summary .title strong{flex-grow:1}.choose-index .vue-component.searchable-list ul.list>li>summary .summary code{display:block}.choose-index .domain{background-color:#000}.choose-index .domain.water{background-color:#00008b}.choose-index .domain.vegetation{background-color:#006400}.choose-index .domain.burn{background-color:#b8860b}.choose-index .domain.soil{background-color:#5c4033}.choose-index .domain.urban{background-color:maroon}.choose-index .domain.radar{background-color:#9400d3}.choose-index .domain.snow{background-color:#008b8b}
\ No newline at end of file
diff --git a/index.html b/index.html
index cf612025..6dd91918 100644
--- a/index.html
+++ b/index.html
@@ -1,4 +1,4 @@
-
\n\n","import mod from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./Kernel.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./Kernel.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./Kernel.vue?vue&type=template&id=f88afd2a&scoped=true\"\nimport script from \"./Kernel.vue?vue&type=script&lang=js\"\nexport * from \"./Kernel.vue?vue&type=script&lang=js\"\nimport style0 from \"./Kernel.vue?vue&type=style&index=0&id=f88afd2a&prod&lang=scss&scoped=true\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"f88afd2a\",\n null\n \n)\n\nexport default component.exports"],"names":["render","_vm","this","_c","_self","staticClass","_v","attrs","editable","domProps","rows","on","updateRows","cols","updateCols","_l","colsArray","col","key","_s","rowsArray","row","y","x","directives","name","rawName","value","data","expression","modifiers","$event","target","composing","$set","_n","$forceUpdate","staticRenderFns","props","type","String","default","Boolean","computed","reduce","max","val","Math","length","Utils","range","watch","immediate","handler","newVal","oldVal","Array","isArray","deep","$emit","methods","evt","count","Number","parseInt","error","map","arr","fitArray","newArray","component"],"sourceRoot":""}
\ No newline at end of file
+{"version":3,"file":"js/1203.2b2f6143.js","mappings":"wKAAA,IAAIA,EAAS,WAAkB,IAAIC,EAAIC,KAAKC,EAAGF,EAAIG,MAAMD,GAAG,OAAOA,EAAG,MAAM,CAACE,YAAY,iBAAiB,CAACF,EAAG,MAAM,CAACE,YAAY,QAAQ,CAACJ,EAAIK,GAAG,mCAAmCH,EAAG,QAAQ,CAACI,MAAM,CAAC,KAAO,SAAS,IAAM,IAAI,UAAYN,EAAIO,UAAUC,SAAS,CAAC,MAAQR,EAAIS,MAAMC,GAAG,CAAC,OAASV,EAAIW,cAAcX,EAAIK,GAAG,OAAOH,EAAG,QAAQ,CAACI,MAAM,CAAC,KAAO,SAAS,IAAM,IAAI,UAAYN,EAAIO,UAAyB,IAAbP,EAAIS,MAAYD,SAAS,CAAC,MAAQR,EAAIY,MAAMF,GAAG,CAAC,OAASV,EAAIa,gBAAkBb,EAAIS,MAAST,EAAIY,KAA8DV,EAAG,MAAM,CAACE,YAAY,UAAU,CAACF,EAAG,QAAQ,CAACA,EAAG,KAAK,CAACA,EAAG,MAAMF,EAAIc,GAAId,EAAIe,WAAW,SAASC,GAAK,OAAOd,EAAG,KAAK,CAACe,IAAI,UAAUD,KAAO,CAAChB,EAAIK,GAAGL,EAAIkB,GAAGF,KAAO,KAAI,GAAGhB,EAAIc,GAAId,EAAImB,WAAW,SAASC,EAAIC,GAAG,OAAOnB,EAAG,KAAK,CAACe,IAAIG,GAAK,CAAClB,EAAG,KAAK,CAACF,EAAIK,GAAGL,EAAIkB,GAAGE,MAAQpB,EAAIc,GAAId,EAAIe,WAAW,SAASC,EAAIM,GAAG,OAAOpB,EAAG,KAAK,CAACe,IAAID,GAAK,CAAEhB,EAAIO,SAAUL,EAAG,QAAQ,CAACqB,WAAW,CAAC,CAACC,KAAK,QAAQC,QAAQ,iBAAiBC,MAAO1B,EAAI2B,KAAKN,GAAGC,GAAIM,WAAW,aAAaC,UAAU,CAAC,QAAS,KAAQvB,MAAM,CAAC,KAAO,UAAUE,SAAS,CAAC,MAASR,EAAI2B,KAAKN,GAAGC,IAAKZ,GAAG,CAAC,MAAQ,SAASoB,GAAWA,EAAOC,OAAOC,WAAiBhC,EAAIiC,KAAKjC,EAAI2B,KAAKN,GAAIC,EAAGtB,EAAIkC,GAAGJ,EAAOC,OAAOL,OAAO,EAAE,KAAO,SAASI,GAAQ,OAAO9B,EAAImC,cAAc,KAAKjC,EAAG,OAAO,CAACE,YAAY,UAAU,CAACJ,EAAIK,GAAGL,EAAIkB,GAAGlB,EAAI2B,KAAKN,GAAGC,QAAQ,KAAI,EAAE,KAAI,KAA90BpB,EAAG,IAAI,CAACE,YAAY,UAAU,CAACJ,EAAIK,GAAG,mBACzhB,EACI+B,EAAkB,G,UC4BtB,SACAZ,KAAA,SACAa,MAAA,CACAX,MAAA,CACAY,KAAAC,OACAC,QAAA,MAEAjC,SAAA,CACA+B,KAAAG,QACAD,SAAA,IAGAb,IAAAA,GACA,OACAA,KAAA,GAEA,EACAe,SAAA,CACA9B,IAAAA,GACA,YAAAe,KAAAgB,QAAA,CAAAC,EAAAC,IAAAC,KAAAF,IAAAC,EAAAE,OAAAH,IAAA,EACA,EACA7B,SAAAA,GACA,OAAAiC,EAAAA,EAAAC,MAAA,OAAArC,KACA,EACAH,IAAAA,GACA,YAAAkB,KAAAoB,MACA,EACA5B,SAAAA,GACA,OAAA6B,EAAAA,EAAAC,MAAA,OAAAxC,KACA,GAEAyC,MAAA,CACAxB,MAAA,CACAyB,WAAA,EACAC,OAAAA,CAAAC,EAAAC,GACAD,IAAAC,IACA,KAAA3B,KAAA4B,MAAAC,QAAAH,GAAAA,EAAA,GAEA,GAEA1B,KAAA,CACA8B,MAAA,EACAL,OAAAA,GACA,KAAAM,MAAA,aAAA/B,KACA,IAGAgC,QAAA,CACA9C,UAAAA,CAAA+C,GACA,IAAAC,GAAA,EACA,IACAA,EAAAC,OAAAC,SAAAH,EAAA7B,OAAAL,MAAA,GACA,OAAAsC,GAAA,CAEA,KAAArC,KAAA,KAAAA,KAAAsC,KAAAC,GAAAlB,EAAAA,EAAAmB,SAAAD,EAAAL,IACA,EACAlD,UAAAA,CAAAiD,GACA,IAAAC,GAAA,EACA,IACAA,EAAAC,OAAAC,SAAAH,EAAA7B,OAAAL,MAAA,GACA,OAAAsC,GAAA,CAEA,KAAArC,KAAAqB,EAAAA,EAAAmB,SAAA,KAAAxC,KAAAkC,EAAAb,EAAAA,EAAAoB,SAAA,KAAAxD,MACA,IC7F8P,I,eCQ1PyD,GAAY,OACd,EACAtE,EACAqC,GACA,EACA,KACA,WACA,MAIF,QAAeiC,EAAiB,O","sources":["webpack://@openeo/web-editor/./src/components/datatypes/Kernel.vue","webpack://@openeo/web-editor/src/components/datatypes/Kernel.vue","webpack://@openeo/web-editor/./src/components/datatypes/Kernel.vue?5753","webpack://@openeo/web-editor/./src/components/datatypes/Kernel.vue?8c30"],"sourcesContent":["var render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',{staticClass:\"kernel-editor\"},[_c('div',{staticClass:\"size\"},[_vm._v(\" Kernel Size (rows × columns): \"),_c('input',{attrs:{\"type\":\"number\",\"min\":\"0\",\"disabled\":!_vm.editable},domProps:{\"value\":_vm.rows},on:{\"change\":_vm.updateRows}}),_vm._v(\" × \"),_c('input',{attrs:{\"type\":\"number\",\"min\":\"0\",\"disabled\":!_vm.editable || _vm.rows === 0},domProps:{\"value\":_vm.cols},on:{\"change\":_vm.updateCols}})]),(!_vm.rows || !_vm.cols)?_c('p',{staticClass:\"kernel\"},[_vm._v(\"Empty kernel\")]):_c('div',{staticClass:\"kernel\"},[_c('table',[_c('tr',[_c('th'),_vm._l((_vm.colsArray),function(col){return _c('th',{key:`header_${col}`},[_vm._v(_vm._s(col))])})],2),_vm._l((_vm.rowsArray),function(row,y){return _c('tr',{key:row},[_c('th',[_vm._v(_vm._s(row))]),_vm._l((_vm.colsArray),function(col,x){return _c('td',{key:col},[(_vm.editable)?_c('input',{directives:[{name:\"model\",rawName:\"v-model.number\",value:(_vm.data[y][x]),expression:\"data[y][x]\",modifiers:{\"number\":true}}],attrs:{\"type\":\"number\"},domProps:{\"value\":(_vm.data[y][x])},on:{\"input\":function($event){if($event.target.composing)return;_vm.$set(_vm.data[y], x, _vm._n($event.target.value))},\"blur\":function($event){return _vm.$forceUpdate()}}}):_c('span',{staticClass:\"number\"},[_vm._v(_vm._s(_vm.data[y][x]))])])})],2)})],2)])])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\t\n\t\t
\n\t\t\tKernel Size (rows × columns):\n\t\t\t\n\t\t\t×\n\t\t\t\n\t\t
\n\t\t
Empty kernel
\n\t\t
\n\t
\n\n\n\n\n","import mod from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./Kernel.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./Kernel.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./Kernel.vue?vue&type=template&id=f88afd2a&scoped=true\"\nimport script from \"./Kernel.vue?vue&type=script&lang=js\"\nexport * from \"./Kernel.vue?vue&type=script&lang=js\"\nimport style0 from \"./Kernel.vue?vue&type=style&index=0&id=f88afd2a&prod&lang=scss&scoped=true\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"f88afd2a\",\n null\n \n)\n\nexport default component.exports"],"names":["render","_vm","this","_c","_self","staticClass","_v","attrs","editable","domProps","rows","on","updateRows","cols","updateCols","_l","colsArray","col","key","_s","rowsArray","row","y","x","directives","name","rawName","value","data","expression","modifiers","$event","target","composing","$set","_n","$forceUpdate","staticRenderFns","props","type","String","default","Boolean","computed","reduce","max","val","Math","length","Utils","range","watch","immediate","handler","newVal","oldVal","Array","isArray","deep","$emit","methods","evt","count","Number","parseInt","error","map","arr","fitArray","newArray","component"],"sourceRoot":""}
\ No newline at end of file
diff --git a/js/1233.09fff9fb.js b/js/1233.09fff9fb.js
new file mode 100644
index 00000000..6954ffc3
--- /dev/null
+++ b/js/1233.09fff9fb.js
@@ -0,0 +1,2 @@
+"use strict";(globalThis["webpackChunk_openeo_web_editor"]=globalThis["webpackChunk_openeo_web_editor"]||[]).push([[1233,2327,1194,7123,3614],{84542:(t,e,s)=>{s.d(e,{A:()=>a});const a={data(){return{canCopy:!1}},mounted(){this.canCopy=navigator&&navigator.clipboard&&"function"===typeof navigator.clipboard.writeText},methods:{copyText(t,e=null,s=null){if(this.canCopy){const a=navigator.clipboard.writeText(t);e&&a.then(e),s&&a.catch(s)}},toggleIcon(t,e){if(t){let s=t.innerText;t.innerText=e,setTimeout((()=>t.innerText=s),2e3)}}}}},2327:(t,e,s)=>{s.r(e),s.d(e,{default:()=>d});var a=function(){var t=this,e=t._self._c;return e("div",{staticClass:"vue-component object-tree",class:{inline:0===t.size}},[0===t.size?e("em",[t._v(t._s(t.format(t.data)))]):Array.isArray(t.data)?[e("ol",t._l(t.indicesShown,(function(s){return e("li",{key:s},[t.isStructured(t.data[s])?e("openeo-object-tree",{attrs:{data:t.data[s]}}):t.isUrl(t.data[s])?e("a",{attrs:{href:t.data[s],target:"_blank"}},[t._v(t._s(t.data[s]))]):t.format(t.data[s])?e("em",[t._v(t._s(t.format(t.data[s])))]):[t._v(t._s(t.data[s]))]],2)})),0),t.size!==t.indicesShown.length?e("button",{attrs:{type:"button"},on:{click:t.show}},[t._v("Show all "+t._s(t.data.length)+" entries")]):t._e()]:"object"===typeof t.data?e("ul",t._l(t.data,(function(s,a){return e("li",{key:a},[e("strong",[t._v(t._s(t.prettifyKey(a)))]),t._v(": "),t.isStructured(s)?e("openeo-object-tree",{attrs:{data:s}}):t.isUrl(s)?e("a",{attrs:{href:s,target:"_blank"}},[t._v(t._s(s))]):t.format(s)?e("em",[t._v(t._s(t.format(s)))]):[t._v(t._s(s))]],2)})),0):[t._v(t._s(t.data))]],2)},r=[],n=s(86975);const i={name:"ObjectTree",components:{"openeo-object-tree":()=>Promise.resolve().then(s.bind(s,2327))},props:{data:{default:null},collapseAfter:{type:Number,default:10}},data(){return{expand:!1}},computed:{isSingleValue(){return Array.isArray(this.data)&&1===this.data.length&&0===n.A.size(this.data[0])},size(){return"object"===typeof this.data?n.A.size(this.data):1},indicesShown(){if(!Array.isArray(this.data))return[];let t=this.data;return!this.expand&&null!==this.collapseAfter&&this.size>this.collapseAfter&&(t=Array(this.collapseAfter)),[...t.keys()]}},beforeCreate(){n.A.enableHtmlProps(this)},methods:{prettifyKey(t){return n.A.prettifyString(t)},show(){this.expand=!0},isStructured(t){return n.A.size(t)>0},format(t){return null===t?"N/A":!0===t?"✔️":!1===t?"❌":"object"===typeof t&&0===n.A.size(t)?"Empty":"function"===typeof t?"JavaScript Function":"symbol"===typeof t?"JavaScript Symbol":null},isUrl(t){return n.A.isUrl(t,!1)}}},o=i;var l=s(81656),c=(0,l.A)(o,a,r,!1,null,null,null);const d=c.exports},10774:(t,e,s)=>{s.r(e),s.d(e,{default:()=>f});var a=function(){var t=this,e=t._self._c;return e("li",{staticClass:"vue-component asset"},[e("h4",[e("span",[t._v(t._s(t.asset.title||t.id))]),Array.isArray(t.asset.roles)?e("ul",{staticClass:"badges roles"},t._l(t.asset.roles,(function(s){return e("li",{key:s,staticClass:"badge",class:"data"===s?"green":"secondary"},[t._v(t._s(s))])})),0):t._e()]),e("ul",{staticClass:"badges actions primary"},[e("li",{staticClass:"badge action download"},[e("a",{staticClass:"badge-fill",attrs:{href:t.asset.href,target:"_blank",download:""}},[e("span",{staticClass:"icon"},[t._v("💾")]),t._v(" Download "),t.fileFormat?[t._v(t._s(t.fileFormat))]:t._e()],2)]),e("li",{staticClass:"badge action copy",on:{click:function(e){return e.preventDefault(),e.stopPropagation(),t.copyURL(e,t.asset.href)}}},[e("span",{staticClass:"icon"},[t._v("📋")]),t._v(" Copy URL ")]),t._l(t.actions,(function(s){return[!s.show||s.show(t.asset)?e("li",{key:s.label,staticClass:"badge action",on:{click:function(e){return e.preventDefault(),e.stopPropagation(),s.click(e,t.asset)}}},[s.icon?e("span",{staticClass:"icon"},[t._v(t._s(s.icon))]):t._e(),t._v(" "+t._s(s.label)+" ")]):t._e()]}))],2),t.asset.description?e("Description",{attrs:{description:t.asset.description,compact:!0}}):t._e(),e("StacFields",{attrs:{type:"Asset",metadata:t.asset,ignore:t.ignore,title:"",context:t.context,headingTag:"h5"}})],1)},r=[],n=s(74870),i=s(27261),o=s(67123),l=s(84542);const c={name:"Asset",components:{Description:i["default"],StacFields:o["default"]},mixins:[l.A],props:{asset:{type:Object,required:!0},id:{type:String,required:!0},context:{type:Object,default:()=>({})},actions:{type:Array,default:()=>[]}},data(){return{ignore:["href","title","description","type","roles"]}},computed:{fileFormat(){return this.asset.type?n.Formatters.formatMediaType(this.asset.type):null}},methods:{copyURL(t,e){const s=t.composedPath()[0].querySelector(".icon");this.copyText(e,(()=>this.toggleIcon(s,"✅")),(()=>this.toggleIcon(s,"❌")))}}},d=c;var u=s(81656),p=(0,u.A)(d,a,r,!1,null,null,null);const f=p.exports},67123:(t,e,s)=>{s.r(e),s.d(e,{default:()=>_});var a=function(){var t=this,e=t._self._c;return e("section",{staticClass:"vue-component stac stac-fields metadata"},[t._l(t.fields,(function(s){return[e(t.headingTag,{key:s.extension,tag:"component",domProps:{innerHTML:t._s(s.label||"General")}}),e("section",{key:`section_${s.extension}`,staticClass:"group"},t._l(s.properties,(function(a,r){return e("div",{key:s.extension+r,staticClass:"tabular",class:{wrap:Boolean(a.custom||a.items)},attrs:{id:"field_"+r}},[e("label",{attrs:{title:r},domProps:{innerHTML:t._s(a.label)}}),e("div",{staticClass:"value"},[t._t(r,(function(){return[a.items?e("table",{staticClass:"table"},[e("thead",[e("tr",[Array.isArray(a.formatted)?t._e():e("th",[t._v(" ")]),t._l(a.itemOrder,(function(s){return e("th",{key:s,domProps:{innerHTML:t._s(a.items[s].label)}})}))],2)]),e("tbody",t._l(a.formatted,(function(s,r){return e("tr",{key:r},[Array.isArray(a.formatted)?t._e():e("th",[t._v(t._s(r))]),t._l(a.itemOrder,(function(a){return e("td",{key:`${a}_${r}`},[Array.isArray(s[a])?e("ol",{staticClass:"array"},t._l(s[a],(function(s,a){return e("li",{key:a},[e("span",{domProps:{innerHTML:t._s(s)}})])})),0):s[a]&&"object"===typeof s[a]?e("ul",{staticClass:"object"},t._l(s[a],(function(s,a){return e("li",{key:a},[e("strong",[t._v(t._s(t._f("key")(a)))]),t._v(": "),e("span",{domProps:{innerHTML:t._s(s)}})])})),0):e("div",{domProps:{innerHTML:t._s(s[a])}})])}))],2)})),0)]):"card4l:processing_chain"===r?e("Process",{staticClass:"inline",attrs:{process:a.value,provideDownload:!1,showGraph:!0}}):a.formatted?e("div",{staticClass:"formatted",domProps:{innerHTML:t._s(a.formatted)}}):[t._v(t._s(a.value))]]}),{prop:a,field:r})],2)])})),0)]}))],2)},r=[],n=s(74870),i=s.n(n),o=s(86975),l=s(2327);const c=["stac_version","stac_extensions","id","type","title","description","keywords","providers","license","extent","summaries","links","assets","item_assets","conformsTo","deprecated","cube:dimensions"];i().Registry.externalRenderer=!0;const d={name:"StacFields",components:{Process:()=>s.e(4279).then(s.bind(s,34279)),ObjectTree:l["default"]},props:{metadata:{type:Object,default:()=>({})},headingTag:{type:String,default:"h3"},ignore:{type:Array,default:()=>[]},type:{type:String,required:!0},context:{type:Object,default:()=>({})}},filters:{key:o.A.prettifyString},computed:{ignoreFn(){return this.ignore.length>0?t=>!this.ignore.includes(t):null},fields(){if("Collection"===this.type){let t=o.A.deepClone(this.metadata);o.A.isObject(t.summaries)||(t.summaries={});for(let e in t)c.includes(e)||(t.summaries[e]=[t[e]]);return i().formatSummaries(t,this.ignoreFn)}if("Item"===this.type)return i().formatItemProperties(this.metadata,this.ignoreFn);if("Asset"===this.type)return i().formatAsset(this.metadata,this.context,this.ignoreFn);throw new Error("Not implemented yet")}},methods:{label(t,e={}){return i().label(t,e)}}},u=d;var p=s(81656),f=(0,p.A)(u,a,r,!1,null,null,null);const _=f.exports}}]);
+//# sourceMappingURL=1233.09fff9fb.js.map
\ No newline at end of file
diff --git a/js/1233.09fff9fb.js.map b/js/1233.09fff9fb.js.map
new file mode 100644
index 00000000..5cb3789b
--- /dev/null
+++ b/js/1233.09fff9fb.js.map
@@ -0,0 +1 @@
+{"version":3,"file":"js/1233.09fff9fb.js","mappings":"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","sources":["webpack://@openeo/web-editor/./node_modules/@openeo/vue-components/components/internal/CopyMixin.js","webpack://@openeo/web-editor/./node_modules/@openeo/vue-components/components/ObjectTree.vue?6010","webpack://@openeo/web-editor/node_modules/@openeo/vue-components/components/ObjectTree.vue","webpack://@openeo/web-editor/./node_modules/@openeo/vue-components/components/ObjectTree.vue?a80a","webpack://@openeo/web-editor/./node_modules/@openeo/vue-components/components/ObjectTree.vue","webpack://@openeo/web-editor/./node_modules/@openeo/vue-components/components/internal/StacAsset.vue?ff42","webpack://@openeo/web-editor/node_modules/@openeo/vue-components/components/internal/StacAsset.vue","webpack://@openeo/web-editor/./node_modules/@openeo/vue-components/components/internal/StacAsset.vue?a534","webpack://@openeo/web-editor/./node_modules/@openeo/vue-components/components/internal/StacAsset.vue","webpack://@openeo/web-editor/./node_modules/@openeo/vue-components/components/internal/StacFields.vue?ca55","webpack://@openeo/web-editor/node_modules/@openeo/vue-components/components/internal/StacFields.vue","webpack://@openeo/web-editor/./node_modules/@openeo/vue-components/components/internal/StacFields.vue?ab74","webpack://@openeo/web-editor/./node_modules/@openeo/vue-components/components/internal/StacFields.vue"],"sourcesContent":["export default {\r\n data() {\r\n return {\r\n canCopy: false\r\n }\r\n },\r\n\tmounted() {\r\n\t\tthis.canCopy = navigator && navigator.clipboard && typeof navigator.clipboard.writeText === 'function';\r\n\t},\r\n methods: {\r\n copyText(text, onSuccess = null, onError = null) {\r\n if (this.canCopy) {\r\n const promise = navigator.clipboard.writeText(text)\r\n if (onSuccess) {\r\n promise.then(onSuccess);\r\n }\r\n if (onError) {\r\n promise.catch(onError);\r\n }\r\n }\r\n },\r\n\t\ttoggleIcon(elem, newIcon) {\r\n\t\t\tif (elem) {\r\n\t\t\t\tlet oldIcon = elem.innerText;\r\n\t\t\t\telem.innerText = newIcon;\r\n\t\t\t\tsetTimeout(() => elem.innerText = oldIcon, 2000);\r\n\t\t\t}\r\n\t\t}\r\n }\r\n}","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',{staticClass:\"vue-component object-tree\",class:{inline: _vm.size === 0}},[(_vm.size === 0)?_c('em',[_vm._v(_vm._s(_vm.format(_vm.data)))]):(Array.isArray(_vm.data))?[_c('ol',_vm._l((_vm.indicesShown),function(i){return _c('li',{key:i},[(_vm.isStructured(_vm.data[i]))?_c('openeo-object-tree',{attrs:{\"data\":_vm.data[i]}}):(_vm.isUrl(_vm.data[i]))?_c('a',{attrs:{\"href\":_vm.data[i],\"target\":\"_blank\"}},[_vm._v(_vm._s(_vm.data[i]))]):(_vm.format(_vm.data[i]))?_c('em',[_vm._v(_vm._s(_vm.format(_vm.data[i])))]):[_vm._v(_vm._s(_vm.data[i]))]],2)}),0),(_vm.size !== _vm.indicesShown.length)?_c('button',{attrs:{\"type\":\"button\"},on:{\"click\":_vm.show}},[_vm._v(\"Show all \"+_vm._s(_vm.data.length)+\" entries\")]):_vm._e()]:(typeof _vm.data === 'object')?_c('ul',_vm._l((_vm.data),function(value,key){return _c('li',{key:key},[_c('strong',[_vm._v(_vm._s(_vm.prettifyKey(key)))]),_vm._v(\": \"),(_vm.isStructured(value))?_c('openeo-object-tree',{attrs:{\"data\":value}}):(_vm.isUrl(value))?_c('a',{attrs:{\"href\":value,\"target\":\"_blank\"}},[_vm._v(_vm._s(value))]):(_vm.format(value))?_c('em',[_vm._v(_vm._s(_vm.format(value)))]):[_vm._v(_vm._s(value))]],2)}),0):[_vm._v(_vm._s(_vm.data))]],2)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\t\n\t\t
{{ format(data) }}\n\t\t
\n\t\t\t\n\t\t\t\t- \n\t\t\t\t\t\n\t\t\t\t\t{{ data[i] }}\n\t\t\t\t\t{{ format(data[i]) }}\n\t\t\t\t\t{{ data[i] }}\n\t\t\t\t
\n\t\t\t
\n\t\t\t\n\t\t\n\t\t
\n\t\t\t- \n\t\t\t\t{{ prettifyKey(key) }}: \n\t\t\t\t\n\t\t\t\t{{ value }}\n\t\t\t\t{{ format(value) }}\n\t\t\t\t{{ value }}\n\t\t\t
\n\t\t
\n\t\t
{{ data }}\n\t
\n\n\n\n\n","import mod from \"-!../../../@vue/vue-loader-v15/lib/index.js??vue-loader-options!./ObjectTree.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../@vue/vue-loader-v15/lib/index.js??vue-loader-options!./ObjectTree.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./ObjectTree.vue?vue&type=template&id=0a88edb0\"\nimport script from \"./ObjectTree.vue?vue&type=script&lang=js\"\nexport * from \"./ObjectTree.vue?vue&type=script&lang=js\"\nimport style0 from \"./ObjectTree.vue?vue&type=style&index=0&id=0a88edb0&prod&lang=scss\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('li',{staticClass:\"vue-component asset\"},[_c('h4',[_c('span',[_vm._v(_vm._s(_vm.asset.title || _vm.id))]),(Array.isArray(_vm.asset.roles))?_c('ul',{staticClass:\"badges roles\"},_vm._l((_vm.asset.roles),function(role){return _c('li',{key:role,staticClass:\"badge\",class:role === 'data' ? 'green' : 'secondary'},[_vm._v(_vm._s(role))])}),0):_vm._e()]),_c('ul',{staticClass:\"badges actions primary\"},[_c('li',{staticClass:\"badge action download\"},[_c('a',{staticClass:\"badge-fill\",attrs:{\"href\":_vm.asset.href,\"target\":\"_blank\",\"download\":\"\"}},[_c('span',{staticClass:\"icon\"},[_vm._v(\"💾\")]),_vm._v(\" Download \"),(_vm.fileFormat)?[_vm._v(_vm._s(_vm.fileFormat))]:_vm._e()],2)]),_c('li',{staticClass:\"badge action copy\",on:{\"click\":function($event){$event.preventDefault();$event.stopPropagation();return _vm.copyURL($event, _vm.asset.href)}}},[_c('span',{staticClass:\"icon\"},[_vm._v(\"📋\")]),_vm._v(\" Copy URL \")]),_vm._l((_vm.actions),function(action){return [(!action.show || action.show(_vm.asset))?_c('li',{key:action.label,staticClass:\"badge action\",on:{\"click\":function($event){$event.preventDefault();$event.stopPropagation();return action.click($event, _vm.asset)}}},[(action.icon)?_c('span',{staticClass:\"icon\"},[_vm._v(_vm._s(action.icon))]):_vm._e(),_vm._v(\" \"+_vm._s(action.label)+\" \")]):_vm._e()]})],2),(_vm.asset.description)?_c('Description',{attrs:{\"description\":_vm.asset.description,\"compact\":true}}):_vm._e(),_c('StacFields',{attrs:{\"type\":\"Asset\",\"metadata\":_vm.asset,\"ignore\":_vm.ignore,\"title\":\"\",\"context\":_vm.context,\"headingTag\":\"h5\"}})],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n \n \n {{ asset.title || id }}\n \n
\n \n \n \n \n\n\n\n\n","import mod from \"-!../../../../@vue/vue-loader-v15/lib/index.js??vue-loader-options!./StacAsset.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../../@vue/vue-loader-v15/lib/index.js??vue-loader-options!./StacAsset.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./StacAsset.vue?vue&type=template&id=1877bc2c\"\nimport script from \"./StacAsset.vue?vue&type=script&lang=js\"\nexport * from \"./StacAsset.vue?vue&type=script&lang=js\"\nimport style0 from \"./StacAsset.vue?vue&type=style&index=0&id=1877bc2c&prod&lang=scss\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('section',{staticClass:\"vue-component stac stac-fields metadata\"},[_vm._l((_vm.fields),function(group){return [_c(_vm.headingTag,{key:group.extension,tag:\"component\",domProps:{\"innerHTML\":_vm._s(group.label || 'General')}}),_c('section',{key:`section_${group.extension}`,staticClass:\"group\"},_vm._l((group.properties),function(prop,field){return _c('div',{key:group.extension + field,staticClass:\"tabular\",class:{wrap: Boolean(prop.custom || prop.items)},attrs:{\"id\":'field_' + field}},[_c('label',{attrs:{\"title\":field},domProps:{\"innerHTML\":_vm._s(prop.label)}}),_c('div',{staticClass:\"value\"},[_vm._t(field,function(){return [(prop.items)?_c('table',{staticClass:\"table\"},[_c('thead',[_c('tr',[(!Array.isArray(prop.formatted))?_c('th',[_vm._v(\" \")]):_vm._e(),_vm._l((prop.itemOrder),function(col){return _c('th',{key:col,domProps:{\"innerHTML\":_vm._s(prop.items[col].label)}})})],2)]),_c('tbody',_vm._l((prop.formatted),function(row,r){return _c('tr',{key:r},[(!Array.isArray(prop.formatted))?_c('th',[_vm._v(_vm._s(r))]):_vm._e(),_vm._l((prop.itemOrder),function(col){return _c('td',{key:`${col}_${r}`},[(Array.isArray(row[col]))?_c('ol',{staticClass:\"array\"},_vm._l((row[col]),function(v,k){return _c('li',{key:k},[_c('span',{domProps:{\"innerHTML\":_vm._s(v)}})])}),0):(row[col] && typeof row[col] === 'object')?_c('ul',{staticClass:\"object\"},_vm._l((row[col]),function(v,k){return _c('li',{key:k},[_c('strong',[_vm._v(_vm._s(_vm._f(\"key\")(k)))]),_vm._v(\": \"),_c('span',{domProps:{\"innerHTML\":_vm._s(v)}})])}),0):_c('div',{domProps:{\"innerHTML\":_vm._s(row[col])}})])})],2)}),0)]):(field === 'card4l:processing_chain')?_c('Process',{staticClass:\"inline\",attrs:{\"process\":prop.value,\"provideDownload\":false,\"showGraph\":true}}):(prop.formatted)?_c('div',{staticClass:\"formatted\",domProps:{\"innerHTML\":_vm._s(prop.formatted)}}):[_vm._v(_vm._s(prop.value))]]},{\"prop\":prop,\"field\":field})],2)])}),0)]})],2)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\t\n\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t
\n\t\t\t\t\t
\n\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t | \n\t\t\t\t\t\t\t\t\t\t | \n\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t{{ r }} | \n\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t \n\t\t\t\t\t\t\t\t\t\t\t \n\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t- {{ k | key }}:
\n\t\t\t\t\t\t\t\t\t\t\t \n\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t | \n\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t{{ prop.value }}\n\t\t\t\t\t\t\n\t\t\t\t\t
\n\t\t\t\t
\n\t\t\t\n\t\t\n\t\n\n\n\n\n","import mod from \"-!../../../../@vue/vue-loader-v15/lib/index.js??vue-loader-options!./StacFields.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../../@vue/vue-loader-v15/lib/index.js??vue-loader-options!./StacFields.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./StacFields.vue?vue&type=template&id=6b555d15\"\nimport script from \"./StacFields.vue?vue&type=script&lang=js\"\nexport * from \"./StacFields.vue?vue&type=script&lang=js\"\nimport style0 from \"./StacFields.vue?vue&type=style&index=0&id=6b555d15&prod&lang=scss\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports"],"names":["data","canCopy","mounted","this","navigator","clipboard","writeText","methods","copyText","text","onSuccess","onError","promise","then","catch","toggleIcon","elem","newIcon","oldIcon","innerText","setTimeout","render","_vm","_c","_self","staticClass","class","inline","size","_v","_s","format","Array","isArray","_l","i","key","isStructured","attrs","isUrl","indicesShown","length","on","show","_e","value","prettifyKey","staticRenderFns","name","components","props","default","collapseAfter","type","Number","expand","computed","isSingleValue","arr","keys","beforeCreate","enableHtmlProps","prettifyString","url","component","asset","title","id","roles","role","href","fileFormat","$event","preventDefault","stopPropagation","copyURL","action","label","click","icon","description","ignore","context","Description","StacFields","mixins","CopyMixin","Object","required","String","actions","Formatters","formatMediaType","event","composedPath","querySelector","group","headingTag","extension","tag","domProps","prop","field","wrap","Boolean","custom","items","_t","formatted","col","row","r","v","k","_f","CORE_COLLECTION_FIELDS","externalRenderer","Process","ObjectTree","metadata","filters","ignoreFn","includes","fields","deepClone","isObject","summaries","Error","specs"],"sourceRoot":""}
\ No newline at end of file
diff --git a/js/1577.0d937d66.js b/js/1577.0d937d66.js
deleted file mode 100644
index 0d9a9662..00000000
--- a/js/1577.0d937d66.js
+++ /dev/null
@@ -1,2 +0,0 @@
-"use strict";(globalThis["webpackChunk_openeo_web_editor"]=globalThis["webpackChunk_openeo_web_editor"]||[]).push([[1577],{41577:(t,e,s)=>{s.r(e),s.d(e,{default:()=>d});var o=function(){var t=this,e=t._self._c;return e("Modal",{attrs:{width:"60%",title:t.title},on:{closed:function(e){return t.$emit("closed")}}},[e("ul",{staticClass:"list"},t._l(t.result.assets,(function(s,o){return e("StacAsset",{key:o,attrs:{asset:s,id:o,context:t.result}})})),1)])},i=[],n=s(94679);const a={name:"DownloadAssetsModal",components:{StacAsset:()=>Promise.all([s.e(1963),s.e(735),s.e(7261),s.e(4243),s.e(6843)]).then(s.bind(s,51255)),Modal:n.A},props:{job:{type:Object},result:{type:Object}},computed:{title(){return"Download Results for: "+(this.job.title||"#"+this.job.id)}}},l=a;var r=s(81656),u=(0,r.A)(l,o,i,!1,null,null,null);const d=u.exports},94679:(t,e,s)=>{s.d(e,{A:()=>h});var o=function(){var t=this,e=t._self._c;return e("div",{staticClass:"modal",style:{"z-index":t.zIndex},on:{mousedown:t.backgroundClose}},[e(t.containerTag,{ref:"container",tag:"component",staticClass:"modal-container",class:{smooth:t.smooth},style:t.style,on:{submit:function(e){return e.preventDefault(),e.stopPropagation(),t.submitFunction.apply(null,arguments)}}},[e("header",{staticClass:"modal-header",on:{mousedown:t.startMove}},[t._t("header",(function(){return[e("h2",[t._v(t._s(t.title))]),e("span",{staticClass:"close",on:{click:t.close}},[e("i",{staticClass:"fa fa-times",attrs:{"aria-hidden":"true"}})])]}))],2),e("main",{staticClass:"modal-content"},[t._t("default")],2),e("footer",{staticClass:"modal-footer"},[t._t("footer",(function(){return[t.submitFunction?e("button",{attrs:{type:"submit"}},[t._v(t._s(t.submitButtonText))]):t._e()]}))],2)])],1)},i=[],n=s(61663),a=s(2566);const l={name:"Modal",mixins:[n.A],props:{title:{type:String,default:null},minWidth:{type:String,default:null},width:{type:String,default:"auto"},show:{type:Boolean,default:!0},submitFunction:{type:Function,default:null},submitButtonText:{type:String,default:"Submit"}},data(){return{zIndex:1e3,position:null,dragPosition:null,smooth:!1}},computed:{...a.A.mapState("editor",["hightestModalZIndex"]),style(){let t={width:this.width};return this.minWidth&&(t["min-width"]=this.minWidth),Array.isArray(this.position)&&(t.position="absolute",t.left=this.position[0]+"px",t.top=this.position[1]+"px"),t},containerTag(){return this.submitFunction?"form":"div"}},watch:{show:{immediate:!0,handler(t){t?this.open():this.close()}},width(){this.smoothResize()},minWidth(){this.smoothResize()}},methods:{...a.A.mapMutations("editor",["openModal","closeModal"]),smoothResize(){this.smooth=!0,setTimeout((()=>this.smooth=!1),600)},submit(t){this.submitFunction(t)},open(){this.openModal(),this.zIndex=this.hightestModalZIndex,window.addEventListener("keydown",this.escCloseListener),this.$emit("shown")},close(){window.removeEventListener("keydown",this.escCloseListener),this.closeModal(),this.$emit("closed")},startMove(t){"H2"!==t.target.tagName&&(this.dragPosition=[t.clientX,t.clientY],document.addEventListener("mousemove",this.move),document.addEventListener("mouseup",this.stopMove),t.preventDefault(),t.stopPropagation())},stopMove(){document.removeEventListener("mousemove",this.move),document.removeEventListener("mouseup",this.stopMove)},move(t){t.preventDefault(),this.position=[this.$refs.container.offsetLeft-(this.dragPosition[0]-t.clientX),this.$refs.container.offsetTop-(this.dragPosition[1]-t.clientY)],this.dragPosition=[t.clientX,t.clientY]},escCloseListener(t){if("Escape"==t.key)return this.close(),t.preventDefault(),t.stopPropagation(),!1},backgroundClose(t){t.target===this.$el&&this.close()}}},r=l;var u=s(81656),d=(0,u.A)(r,o,i,!1,null,null,null);const h=d.exports}}]);
-//# sourceMappingURL=1577.0d937d66.js.map
\ No newline at end of file
diff --git a/js/1577.ca45c209.js b/js/1577.ca45c209.js
new file mode 100644
index 00000000..d0ec4c27
--- /dev/null
+++ b/js/1577.ca45c209.js
@@ -0,0 +1,2 @@
+"use strict";(globalThis["webpackChunk_openeo_web_editor"]=globalThis["webpackChunk_openeo_web_editor"]||[]).push([[1577],{41577:(t,e,s)=>{s.r(e),s.d(e,{default:()=>d});var o=function(){var t=this,e=t._self._c;return e("Modal",{attrs:{width:"60%",title:t.title},on:{closed:function(e){return t.$emit("closed")}}},[e("ul",{staticClass:"list"},t._l(t.result.assets,(function(s,o){return e("StacAsset",{key:o,attrs:{asset:s,id:o,context:t.result}})})),1)])},i=[],n=s(94679);const a={name:"DownloadAssetsModal",components:{StacAsset:()=>Promise.all([s.e(9710),s.e(4432),s.e(3627),s.e(7261),s.e(4243),s.e(3614)]).then(s.bind(s,10774)),Modal:n.A},props:{job:{type:Object},result:{type:Object}},computed:{title(){return"Download Results for: "+(this.job.title||"#"+this.job.id)}}},l=a;var r=s(81656),u=(0,r.A)(l,o,i,!1,null,null,null);const d=u.exports},94679:(t,e,s)=>{s.d(e,{A:()=>h});var o=function(){var t=this,e=t._self._c;return e("div",{staticClass:"modal",style:{"z-index":t.zIndex},on:{mousedown:t.backgroundClose}},[e(t.containerTag,{ref:"container",tag:"component",staticClass:"modal-container",class:{smooth:t.smooth},style:t.style,on:{submit:function(e){return e.preventDefault(),e.stopPropagation(),t.submitFunction.apply(null,arguments)}}},[e("header",{staticClass:"modal-header",on:{mousedown:t.startMove}},[t._t("header",(function(){return[e("h2",[t._v(t._s(t.title))]),e("span",{staticClass:"close",on:{click:t.close}},[e("i",{staticClass:"fa fa-times",attrs:{"aria-hidden":"true"}})])]}))],2),e("main",{staticClass:"modal-content"},[t._t("default")],2),e("footer",{staticClass:"modal-footer"},[t._t("footer",(function(){return[t.submitFunction?e("button",{attrs:{type:"submit"}},[t._v(t._s(t.submitButtonText))]):t._e()]}))],2)])],1)},i=[],n=s(61663),a=s(2566);const l={name:"Modal",mixins:[n.A],props:{title:{type:String,default:null},minWidth:{type:String,default:null},width:{type:String,default:"auto"},show:{type:Boolean,default:!0},submitFunction:{type:Function,default:null},submitButtonText:{type:String,default:"Submit"}},data(){return{zIndex:1e3,position:null,dragPosition:null,smooth:!1}},computed:{...a.A.mapState("editor",["hightestModalZIndex"]),style(){let t={width:this.width};return this.minWidth&&(t["min-width"]=this.minWidth),Array.isArray(this.position)&&(t.position="absolute",t.left=this.position[0]+"px",t.top=this.position[1]+"px"),t},containerTag(){return this.submitFunction?"form":"div"}},watch:{show:{immediate:!0,handler(t){t?this.open():this.close()}},width(){this.smoothResize()},minWidth(){this.smoothResize()}},methods:{...a.A.mapMutations("editor",["openModal","closeModal"]),smoothResize(){this.smooth=!0,setTimeout((()=>this.smooth=!1),600)},submit(t){this.submitFunction(t)},open(){this.openModal(),this.zIndex=this.hightestModalZIndex,window.addEventListener("keydown",this.escCloseListener),this.$emit("shown")},close(){window.removeEventListener("keydown",this.escCloseListener),this.closeModal(),this.$emit("closed")},startMove(t){"H2"!==t.target.tagName&&(this.dragPosition=[t.clientX,t.clientY],document.addEventListener("mousemove",this.move),document.addEventListener("mouseup",this.stopMove),t.preventDefault(),t.stopPropagation())},stopMove(){document.removeEventListener("mousemove",this.move),document.removeEventListener("mouseup",this.stopMove)},move(t){t.preventDefault(),this.position=[this.$refs.container.offsetLeft-(this.dragPosition[0]-t.clientX),this.$refs.container.offsetTop-(this.dragPosition[1]-t.clientY)],this.dragPosition=[t.clientX,t.clientY]},escCloseListener(t){if("Escape"==t.key)return this.close(),t.preventDefault(),t.stopPropagation(),!1},backgroundClose(t){t.target===this.$el&&this.close()}}},r=l;var u=s(81656),d=(0,u.A)(r,o,i,!1,null,null,null);const h=d.exports}}]);
+//# sourceMappingURL=1577.ca45c209.js.map
\ No newline at end of file
diff --git a/js/1577.0d937d66.js.map b/js/1577.ca45c209.js.map
similarity index 99%
rename from js/1577.0d937d66.js.map
rename to js/1577.ca45c209.js.map
index 26599f2c..4b08227e 100644
--- a/js/1577.0d937d66.js.map
+++ b/js/1577.ca45c209.js.map
@@ -1 +1 @@
-{"version":3,"file":"js/1577.0d937d66.js","mappings":"yKAAA,IAAIA,EAAS,WAAkB,IAAIC,EAAIC,KAAKC,EAAGF,EAAIG,MAAMD,GAAG,OAAOA,EAAG,QAAQ,CAACE,MAAM,CAAC,MAAQ,MAAM,MAAQJ,EAAIK,OAAOC,GAAG,CAAC,OAAS,SAASC,GAAQ,OAAOP,EAAIQ,MAAM,SAAS,IAAI,CAACN,EAAG,KAAK,CAACO,YAAY,QAAQT,EAAIU,GAAIV,EAAIW,OAAOC,QAAQ,SAASC,EAAMC,GAAI,OAAOZ,EAAG,YAAY,CAACa,IAAID,EAAGV,MAAM,CAAC,MAAQS,EAAM,GAAKC,EAAG,QAAUd,EAAIW,SAAS,IAAG,IACpV,EACIK,EAAkB,G,WCUtB,SACAC,KAAA,sBACAC,WAAA,CACAC,UAAAA,IAAA,sFACAC,MAAAA,EAAAA,GAEAC,MAAA,CACAC,IAAA,CACAC,KAAAC,QAEAb,OAAA,CACAY,KAAAC,SAGAC,SAAA,CACApB,KAAAA,GACA,qCAAAiB,IAAAjB,OAAA,SAAAiB,IAAAR,GACA,IC7B2Q,I,eCOvQY,GAAY,OACd,EACA3B,EACAiB,GACA,EACA,KACA,KACA,MAIF,QAAeU,EAAiB,O,mCClBhC,IAAI3B,EAAS,WAAkB,IAAIC,EAAIC,KAAKC,EAAGF,EAAIG,MAAMD,GAAG,OAAOA,EAAG,MAAM,CAACO,YAAY,QAAQkB,MAAO,CAAC,UAAW3B,EAAI4B,QAAStB,GAAG,CAAC,UAAYN,EAAI6B,kBAAkB,CAAC3B,EAAGF,EAAI8B,aAAa,CAACC,IAAI,YAAYC,IAAI,YAAYvB,YAAY,kBAAkBwB,MAAM,CAACC,OAAQlC,EAAIkC,QAAQP,MAAO3B,EAAI2B,MAAOrB,GAAG,CAAC,OAAS,SAASC,GAAyD,OAAjDA,EAAO4B,iBAAiB5B,EAAO6B,kBAAyBpC,EAAIqC,eAAeC,MAAM,KAAMC,UAAU,IAAI,CAACrC,EAAG,SAAS,CAACO,YAAY,eAAeH,GAAG,CAAC,UAAYN,EAAIwC,YAAY,CAACxC,EAAIyC,GAAG,UAAS,WAAW,MAAO,CAACvC,EAAG,KAAK,CAACF,EAAI0C,GAAG1C,EAAI2C,GAAG3C,EAAIK,UAAUH,EAAG,OAAO,CAACO,YAAY,QAAQH,GAAG,CAAC,MAAQN,EAAI4C,QAAQ,CAAC1C,EAAG,IAAI,CAACO,YAAY,cAAcL,MAAM,CAAC,cAAc,YAAY,KAAI,GAAGF,EAAG,OAAO,CAACO,YAAY,iBAAiB,CAACT,EAAIyC,GAAG,YAAY,GAAGvC,EAAG,SAAS,CAACO,YAAY,gBAAgB,CAACT,EAAIyC,GAAG,UAAS,WAAW,MAAO,CAAEzC,EAAIqC,eAAgBnC,EAAG,SAAS,CAACE,MAAM,CAAC,KAAO,WAAW,CAACJ,EAAI0C,GAAG1C,EAAI2C,GAAG3C,EAAI6C,qBAAqB7C,EAAI8C,KAAK,KAAI,MAAM,EACj8B,EACI9B,EAAkB,G,qBCuBtB,SACAC,KAAA,QACA8B,OAAA,CAAAC,EAAAA,GACA3B,MAAA,CACAhB,MAAA,CACAkB,KAAA0B,OACAC,QAAA,MAEAC,SAAA,CACA5B,KAAA0B,OACAC,QAAA,MAEAE,MAAA,CACA7B,KAAA0B,OACAC,QAAA,QAEAG,KAAA,CACA9B,KAAA+B,QACAJ,SAAA,GAEAb,eAAA,CACAd,KAAAgC,SACAL,QAAA,MAEAL,iBAAA,CACAtB,KAAA0B,OACAC,QAAA,WAGAM,IAAAA,GACA,OACA5B,OAAA,IACA6B,SAAA,KACAC,aAAA,KACAxB,QAAA,EAEA,EACAT,SAAA,IACAkC,EAAAA,EAAAC,SAAA,kCACAjC,KAAAA,GACA,IAAAA,EAAA,CACA,WAAAyB,OAUA,OARA,KAAAD,WACAxB,EAAA,kBAAAwB,UAEAU,MAAAC,QAAA,KAAAL,YACA9B,EAAA8B,SAAA,WACA9B,EAAAoC,KAAA,KAAAN,SAAA,QACA9B,EAAAqC,IAAA,KAAAP,SAAA,SAEA9B,CACA,EACAG,YAAAA,GACA,YAAAO,eAAA,YACA,GAEA4B,MAAA,CACAZ,KAAA,CACAa,WAAA,EACAC,OAAAA,CAAAd,GACAA,EAIA,KAAAe,OAHA,KAAAxB,OAKA,GAEAQ,KAAAA,GACA,KAAAiB,cACA,EACAlB,QAAAA,GACA,KAAAkB,cACA,GAEAC,QAAA,IACAX,EAAAA,EAAAY,aAAA,qCACAF,YAAAA,GACA,KAAAnC,QAAA,EACAsC,YAAA,SAAAtC,QAAA,OACA,EACAuC,MAAAA,CAAAC,GACA,KAAArC,eAAAqC,EACA,EACAN,IAAAA,GACA,KAAAO,YACA,KAAA/C,OAAA,KAAAgD,oBACAC,OAAAC,iBAAA,eAAAC,kBACA,KAAAvE,MAAA,QACA,EACAoC,KAAAA,GACAiC,OAAAG,oBAAA,eAAAD,kBACA,KAAAE,aACA,KAAAzE,MAAA,SACA,EACAgC,SAAAA,CAAAkC,GACA,OAAAA,EAAAQ,OAAAC,UACA,KAAAzB,aAAA,CACAgB,EAAAU,QACAV,EAAAW,SAGAC,SAAAR,iBAAA,iBAAAS,MACAD,SAAAR,iBAAA,eAAAU,UAEAd,EAAAvC,iBACAuC,EAAAtC,kBAEA,EACAoD,QAAAA,GACAF,SAAAN,oBAAA,iBAAAO,MACAD,SAAAN,oBAAA,eAAAQ,SACA,EACAD,IAAAA,CAAAb,GACAA,EAAAvC,iBAEA,KAAAsB,SAAA,CACA,KAAAgC,MAAAC,UAAAC,YAAA,KAAAjC,aAAA,GAAAgB,EAAAU,SACA,KAAAK,MAAAC,UAAAE,WAAA,KAAAlC,aAAA,GAAAgB,EAAAW,UAGA,KAAA3B,aAAA,CACAgB,EAAAU,QACAV,EAAAW,QAEA,EACAN,gBAAAA,CAAAL,GACA,aAAAA,EAAA3D,IAIA,OAHA,KAAA6B,QACA8B,EAAAvC,iBACAuC,EAAAtC,mBACA,CAEA,EACAP,eAAAA,CAAA6C,GACAA,EAAAQ,SAAA,KAAAW,KACA,KAAAjD,OAEA,ICpK6P,I,eCQzPlB,GAAY,OACd,EACA3B,EACAiB,GACA,EACA,KACA,KACA,MAIF,QAAeU,EAAiB,O","sources":["webpack://@openeo/web-editor/./src/components/modals/DownloadAssetsModal.vue","webpack://@openeo/web-editor/src/components/modals/DownloadAssetsModal.vue","webpack://@openeo/web-editor/./src/components/modals/DownloadAssetsModal.vue?9682","webpack://@openeo/web-editor/./src/components/modals/DownloadAssetsModal.vue?e050","webpack://@openeo/web-editor/./src/components/modals/Modal.vue","webpack://@openeo/web-editor/src/components/modals/Modal.vue","webpack://@openeo/web-editor/./src/components/modals/Modal.vue?e840","webpack://@openeo/web-editor/./src/components/modals/Modal.vue?5039"],"sourcesContent":["var render = function render(){var _vm=this,_c=_vm._self._c;return _c('Modal',{attrs:{\"width\":\"60%\",\"title\":_vm.title},on:{\"closed\":function($event){return _vm.$emit('closed')}}},[_c('ul',{staticClass:\"list\"},_vm._l((_vm.result.assets),function(asset,id){return _c('StacAsset',{key:id,attrs:{\"asset\":asset,\"id\":id,\"context\":_vm.result}})}),1)])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\t\n\t\t\n\t\n\n\n\n","import mod from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./DownloadAssetsModal.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./DownloadAssetsModal.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./DownloadAssetsModal.vue?vue&type=template&id=26d8edde\"\nimport script from \"./DownloadAssetsModal.vue?vue&type=script&lang=js\"\nexport * from \"./DownloadAssetsModal.vue?vue&type=script&lang=js\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',{staticClass:\"modal\",style:({'z-index': _vm.zIndex}),on:{\"mousedown\":_vm.backgroundClose}},[_c(_vm.containerTag,{ref:\"container\",tag:\"component\",staticClass:\"modal-container\",class:{smooth: _vm.smooth},style:(_vm.style),on:{\"submit\":function($event){$event.preventDefault();$event.stopPropagation();return _vm.submitFunction.apply(null, arguments)}}},[_c('header',{staticClass:\"modal-header\",on:{\"mousedown\":_vm.startMove}},[_vm._t(\"header\",function(){return [_c('h2',[_vm._v(_vm._s(_vm.title))]),_c('span',{staticClass:\"close\",on:{\"click\":_vm.close}},[_c('i',{staticClass:\"fa fa-times\",attrs:{\"aria-hidden\":\"true\"}})])]})],2),_c('main',{staticClass:\"modal-content\"},[_vm._t(\"default\")],2),_c('footer',{staticClass:\"modal-footer\"},[_vm._t(\"footer\",function(){return [(_vm.submitFunction)?_c('button',{attrs:{\"type\":\"submit\"}},[_vm._v(_vm._s(_vm.submitButtonText))]):_vm._e()]})],2)])],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\t\n\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\n\t
\n\n\n\n\n\n","import mod from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./Modal.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./Modal.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./Modal.vue?vue&type=template&id=7a094955\"\nimport script from \"./Modal.vue?vue&type=script&lang=js\"\nexport * from \"./Modal.vue?vue&type=script&lang=js\"\nimport style0 from \"./Modal.vue?vue&type=style&index=0&id=7a094955&prod&lang=scss\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports"],"names":["render","_vm","this","_c","_self","attrs","title","on","$event","$emit","staticClass","_l","result","assets","asset","id","key","staticRenderFns","name","components","StacAsset","Modal","props","job","type","Object","computed","component","style","zIndex","backgroundClose","containerTag","ref","tag","class","smooth","preventDefault","stopPropagation","submitFunction","apply","arguments","startMove","_t","_v","_s","close","submitButtonText","_e","mixins","EventBusMixin","String","default","minWidth","width","show","Boolean","Function","data","position","dragPosition","Utils","mapState","Array","isArray","left","top","watch","immediate","handler","open","smoothResize","methods","mapMutations","setTimeout","submit","event","openModal","hightestModalZIndex","window","addEventListener","escCloseListener","removeEventListener","closeModal","target","tagName","clientX","clientY","document","move","stopMove","$refs","container","offsetLeft","offsetTop","$el"],"sourceRoot":""}
\ No newline at end of file
+{"version":3,"file":"js/1577.ca45c209.js","mappings":"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","sources":["webpack://@openeo/web-editor/./src/components/modals/DownloadAssetsModal.vue","webpack://@openeo/web-editor/src/components/modals/DownloadAssetsModal.vue","webpack://@openeo/web-editor/./src/components/modals/DownloadAssetsModal.vue?9682","webpack://@openeo/web-editor/./src/components/modals/DownloadAssetsModal.vue?e050","webpack://@openeo/web-editor/./src/components/modals/Modal.vue","webpack://@openeo/web-editor/src/components/modals/Modal.vue","webpack://@openeo/web-editor/./src/components/modals/Modal.vue?e840","webpack://@openeo/web-editor/./src/components/modals/Modal.vue?5039"],"sourcesContent":["var render = function render(){var _vm=this,_c=_vm._self._c;return _c('Modal',{attrs:{\"width\":\"60%\",\"title\":_vm.title},on:{\"closed\":function($event){return _vm.$emit('closed')}}},[_c('ul',{staticClass:\"list\"},_vm._l((_vm.result.assets),function(asset,id){return _c('StacAsset',{key:id,attrs:{\"asset\":asset,\"id\":id,\"context\":_vm.result}})}),1)])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\t\n\t\t\n\t\n\n\n\n","import mod from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./DownloadAssetsModal.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./DownloadAssetsModal.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./DownloadAssetsModal.vue?vue&type=template&id=26d8edde\"\nimport script from \"./DownloadAssetsModal.vue?vue&type=script&lang=js\"\nexport * from \"./DownloadAssetsModal.vue?vue&type=script&lang=js\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',{staticClass:\"modal\",style:({'z-index': _vm.zIndex}),on:{\"mousedown\":_vm.backgroundClose}},[_c(_vm.containerTag,{ref:\"container\",tag:\"component\",staticClass:\"modal-container\",class:{smooth: _vm.smooth},style:(_vm.style),on:{\"submit\":function($event){$event.preventDefault();$event.stopPropagation();return _vm.submitFunction.apply(null, arguments)}}},[_c('header',{staticClass:\"modal-header\",on:{\"mousedown\":_vm.startMove}},[_vm._t(\"header\",function(){return [_c('h2',[_vm._v(_vm._s(_vm.title))]),_c('span',{staticClass:\"close\",on:{\"click\":_vm.close}},[_c('i',{staticClass:\"fa fa-times\",attrs:{\"aria-hidden\":\"true\"}})])]})],2),_c('main',{staticClass:\"modal-content\"},[_vm._t(\"default\")],2),_c('footer',{staticClass:\"modal-footer\"},[_vm._t(\"footer\",function(){return [(_vm.submitFunction)?_c('button',{attrs:{\"type\":\"submit\"}},[_vm._v(_vm._s(_vm.submitButtonText))]):_vm._e()]})],2)])],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\t\n\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\n\t
\n\n\n\n\n\n","import mod from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./Modal.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./Modal.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./Modal.vue?vue&type=template&id=7a094955\"\nimport script from \"./Modal.vue?vue&type=script&lang=js\"\nexport * from \"./Modal.vue?vue&type=script&lang=js\"\nimport style0 from \"./Modal.vue?vue&type=style&index=0&id=7a094955&prod&lang=scss\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports"],"names":["render","_vm","this","_c","_self","attrs","title","on","$event","$emit","staticClass","_l","result","assets","asset","id","key","staticRenderFns","name","components","StacAsset","Modal","props","job","type","Object","computed","component","style","zIndex","backgroundClose","containerTag","ref","tag","class","smooth","preventDefault","stopPropagation","submitFunction","apply","arguments","startMove","_t","_v","_s","close","submitButtonText","_e","mixins","EventBusMixin","String","default","minWidth","width","show","Boolean","Function","data","position","dragPosition","Utils","mapState","Array","isArray","left","top","watch","immediate","handler","open","smoothResize","methods","mapMutations","setTimeout","submit","event","openModal","hightestModalZIndex","window","addEventListener","escCloseListener","removeEventListener","closeModal","target","tagName","clientX","clientY","document","move","stopMove","$refs","container","offsetLeft","offsetTop","$el"],"sourceRoot":""}
\ No newline at end of file
diff --git a/js/164.7a188da8.js b/js/164.13466ff8.js
similarity index 99%
rename from js/164.7a188da8.js
rename to js/164.13466ff8.js
index 68a05105..24add74c 100644
--- a/js/164.7a188da8.js
+++ b/js/164.13466ff8.js
@@ -5,4 +5,4 @@
* https://github.com/kirtan-desai/ol-geocoder
* Built: Thu Nov 17 2022 14:58:35 GMT-0500 (Eastern Standard Time)
*/!function(t,s){e.exports=s(i(10972),i(29276),i(49700),i(82986),i(54602),i(44294),i(86717),i(89718))}(0,(function(e,t,i,n,r,o,a,l){"use strict";function c(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var u=c(e),h=c(t),d=c(i),p=c(n),m=c(r),g=c(o),f=c(a),y=c(l),v="gcd-container",_="gcd-button-control",w="gcd-input-query",S="gcd-input-reset",T={namespace:"ol-geocoder",spin:"gcd-pseudo-rotate",hidden:"gcd-hidden",address:"gcd-address",country:"gcd-country",city:"gcd-city",road:"gcd-road",olControl:"ol-control",glass:{container:"gcd-gl-container",control:"gcd-gl-control",button:"gcd-gl-btn",input:"gcd-gl-input",expanded:"gcd-gl-expanded",reset:"gcd-gl-reset",result:"gcd-gl-result"},inputText:{container:"gcd-txt-container",control:"gcd-txt-control",input:"gcd-txt-input",reset:"gcd-txt-reset",icon:"gcd-txt-glass",result:"gcd-txt-result"}},b={containerId:v,buttonControlId:_,inputQueryId:w,inputResetId:S,cssClasses:T};const x=Object.freeze({__proto__:null,containerId:v,buttonControlId:_,inputQueryId:w,inputResetId:S,cssClasses:T,default:b}),D="addresschosen",C="nominatim",A="reverse",E="glass-button",F="text-input",L="osm",M="mapquest",P="photon",R="bing",I="opencage",j={provider:L,placeholder:"Search for an address",featureStyle:null,targetType:E,lang:"en-US",limit:5,keepOpen:!1,preventDefault:!1,autoComplete:!1,autoCompleteMinLength:2,autoCompleteTimeout:200,debug:!1};function $(e,t="Assertion failed"){if(!e){if("undefined"!=typeof Error)throw new Error(t);throw t}}function N(e){const t=function(){if("performance"in window==0&&(window.performance={}),"now"in window.performance==0){let e=Date.now();performance.timing&&performance.timing.navigationStart&&(e=performance.timing.navigationStart),window.performance.now=()=>Date.now()-e}return window.performance.now()}().toString(36);return e?e+t:t}function G(e){return/^\d+$/u.test(e)}function k(e,t,i){if(Array.isArray(e))return void e.forEach((e=>k(e,t)));const s=Array.isArray(t)?t:t.split(/\s+/u);let n=s.length;for(;n--;)V(e,s[n])||B(e,s[n],i)}function O(e,t,i){if(Array.isArray(e))return void e.forEach((e=>O(e,t,i)));const s=Array.isArray(t)?t:t.split(/\s+/u);let n=s.length;for(;n--;)V(e,s[n])&&W(e,s[n],i)}function V(e,t){return e.classList?e.classList.contains(t):q(t).test(e.className)}function z(e,t){return e.replace(/\{\s*([\w-]+)\s*\}/gu,((e,i)=>{const s=void 0===t[i]?"":t[i];return String(s).replaceAll("&","&").replaceAll("<","<").replaceAll(">",">").replaceAll('"',""").replaceAll("'","'")}))}function U(e,t){let i;if(Array.isArray(e)){if(i=document.createElement(e[0]),e[1].id&&(i.id=e[1].id),e[1].classname&&(i.className=e[1].classname),e[1].attr){const{attr:t}=e[1];if(Array.isArray(t)){let e=-1;for(;++eW(e,t)),i)}function W(e,t,i){e.classList?e.classList.remove(t):e.className=e.className.replace(q(t)," ").trim(),i&&G(i)&&window.setTimeout((()=>B(e,t)),i)}const X=x.cssClasses;class H{constructor(e){this.options=e,this.els=this.createControl()}createControl(){let e,t,i;return this.options.targetType===F?(t=`${X.namespace} ${X.inputText.container}`,e=U(["div",{id:x.containerId,classname:t}],H.input),i={container:e,control:e.querySelector(`.${X.inputText.control}`),input:e.querySelector(`.${X.inputText.input}`),reset:e.querySelector(`.${X.inputText.reset}`),result:e.querySelector(`.${X.inputText.result}`)}):(t=`${X.namespace} ${X.glass.container}`,e=U(["div",{id:x.containerId,classname:t}],H.glass),i={container:e,control:e.querySelector(`.${X.glass.control}`),button:e.querySelector(`.${X.glass.button}`),input:e.querySelector(`.${X.glass.input}`),reset:e.querySelector(`.${X.glass.reset}`),result:e.querySelector(`.${X.glass.result}`)}),i.input.placeholder=this.options.placeholder,i}}H.glass=`\n \n \n`,H.input=`\n \n \n \n \n
\n \n`;class K{constructor(){this.settings={url:"https://photon.komoot.io/api/",params:{q:"",limit:10,lang:"en"},langs:["de","it","fr","en"]}}getParameters(e){return e.lang=e.lang.toLowerCase(),{url:this.settings.url,params:{q:e.query,limit:e.limit||this.settings.params.limit,lang:this.settings.langs.includes(e.lang)?e.lang:this.settings.params.lang}}}handleResponse(e){return 0===e.features.length?[]:e.features.map((e=>({lon:e.geometry.coordinates[0],lat:e.geometry.coordinates[1],address:{name:e.properties.name,postcode:e.properties.postcode,city:e.properties.city,state:e.properties.state,country:e.properties.country},original:{formatted:e.properties.name,details:e.properties}})))}}class Y{constructor(){this.settings={url:"https://nominatim.openstreetmap.org/search/",params:{q:"",format:"json",addressdetails:1,limit:10,countrycodes:"","accept-language":"en-US"}}}getParameters(e){return{url:this.settings.url,params:{q:e.query,format:this.settings.params.format,addressdetails:this.settings.params.addressdetails,limit:e.limit||this.settings.params.limit,countrycodes:e.countrycodes||this.settings.params.countrycodes,"accept-language":e.lang||this.settings.params["accept-language"]}}}handleResponse(e){return 0===e.length?[]:e.map((e=>({lon:e.lon,lat:e.lat,bbox:e.boundingbox,address:{name:e.display_name,road:e.address.road||"",houseNumber:e.address.house_number||"",postcode:e.address.postcode,city:e.address.city||e.address.town,state:e.address.state,country:e.address.country},original:{formatted:e.display_name,details:e.address}})))}}class Z{constructor(){this.settings={url:"https://open.mapquestapi.com/nominatim/v1/search.php",params:{q:"",key:"",format:"json",addressdetails:1,limit:10,countrycodes:"","accept-language":"en-US"}}}getParameters(e){return{url:this.settings.url,params:{q:e.query,key:e.key,format:"json",addressdetails:1,limit:e.limit||this.settings.params.limit,countrycodes:e.countrycodes||this.settings.params.countrycodes,"accept-language":e.lang||this.settings.params["accept-language"]}}}handleResponse(e){return 0===e.length?[]:e.map((e=>({lon:e.lon,lat:e.lat,address:{name:e.address.neighbourhood||"",road:e.address.road||"",postcode:e.address.postcode,city:e.address.city||e.address.town,state:e.address.state,country:e.address.country},original:{formatted:e.display_name,details:e.address}})))}}class Q{constructor(){this.settings={url:"https://dev.virtualearth.net/REST/v1/Locations",callbackName:"jsonp",params:{query:"",key:"",includeNeighborhood:0,maxResults:10}}}getParameters(e){return{url:this.settings.url,callbackName:this.settings.callbackName,params:{query:e.query,key:e.key,includeNeighborhood:e.includeNeighborhood||this.settings.params.includeNeighborhood,maxResults:e.maxResults||this.settings.params.maxResults}}}handleResponse(e){const{resources:t}=e.resourceSets[0];return 0===t.length?[]:t.map((e=>({lon:e.point.coordinates[1],lat:e.point.coordinates[0],address:{name:e.name},original:{formatted:e.address.formattedAddress,details:e.address}})))}}class J{constructor(){this.settings={url:"https://api.opencagedata.com/geocode/v1/json?",params:{q:"",key:"",limit:10,countrycode:"",pretty:1,no_annotations:1}}}getParameters(e){return{url:this.settings.url,params:{q:e.query,key:e.key,limit:e.limit||this.settings.params.limit,countrycode:e.countrycodes||this.settings.params.countrycodes}}}handleResponse(e){return 0===e.results.length?[]:e.results.map((e=>({lon:e.geometry.lng,lat:e.geometry.lat,address:{name:e.components.house_number||"",road:e.components.road||"",postcode:e.components.postcode,city:e.components.city||e.components.town,state:e.components.state,country:e.components.country},original:{formatted:e.formatted,details:e.components}})))}}function ee(e){return new Promise(((t,i)=>{const s=function(e,t){return t&&"object"==typeof t&&(e+=(/\?/u.test(e)?"&":"?")+te(t)),e}(e.url,e.data),n={method:"GET",mode:"cors",credentials:"same-origin"};e.jsonp?function(e,t,i){const{head:s}=document,n=document.createElement("script"),r=`f${Math.round(Math.random()*Date.now())}`;n.setAttribute("src",`${e+(e.indexOf("?")>0?"&":"?")+t}=${r}`),window[r]=e=>{window[r]=void 0,setTimeout((()=>s.removeChild(n)),0),i(e)},s.append(n)}(s,e.callbackName,t):fetch(s,n).then((e=>e.json())).then(t).catch(i)}))}function te(e){return Object.keys(e).reduce(((t,i)=>(t.push("object"==typeof e[i]?te(e[i]):`${encodeURIComponent(i)}=${encodeURIComponent(e[i])}`),t)),[]).join("&")}const ie=x.cssClasses;class se{constructor(e,t){this.Base=e,this.layerName=N("geocoder-layer-"),this.layer=new p.default({name:this.layerName,source:new m.default}),this.options=e.options,this.options.provider="string"==typeof this.options.provider?this.options.provider.toLowerCase():this.options.provider,this.provider=this.newProvider(),this.els=t,this.lastQuery="",this.container=this.els.container,this.registeredListeners={mapClick:!1},this.setListeners()}setListeners(){let e,t;const i=e=>{e.stopPropagation(),V(this.els.control,ie.glass.expanded)?this.collapse():this.expand()};this.els.input.addEventListener("keypress",(e=>{const t=e.target.value.trim();(e.key?"Enter"===e.key:e.which?13===e.which:e.keyCode&&13===e.keyCode)&&(e.preventDefault(),this.query(t))}),!1),this.els.input.addEventListener("click",(e=>e.stopPropagation()),!1),this.els.input.addEventListener("input",(i=>{const s=i.target.value.trim();0!==s.length?O(this.els.reset,ie.hidden):k(this.els.reset,ie.hidden),this.options.autoComplete&&s!==t&&(t=s,e&&clearTimeout(e),e=setTimeout((()=>{s.length>=this.options.autoCompleteMinLength&&this.query(s)}),this.options.autoCompleteTimeout))}),!1),this.els.reset.addEventListener("click",(e=>{this.els.input.focus(),this.els.input.value="",this.lastQuery="",k(this.els.reset,ie.hidden),this.clearResults()}),!1),this.options.targetType===E&&this.els.button.addEventListener("click",i,!1)}query(e){this.provider||(this.provider=this.newProvider());const t=this.provider.getParameters({query:e,key:this.options.key,lang:this.options.lang,countrycodes:this.options.countrycodes,limit:this.options.limit});if(this.lastQuery===e&&this.els.result.firstChild)return;this.lastQuery=e,this.clearResults(),k(this.els.reset,ie.spin);const i={url:t.url,data:t.params};t.callbackName&&(i.jsonp=!0,i.callbackName=t.callbackName),ee(i).then((e=>{this.options.debug&&s.info(e),O(this.els.reset,ie.spin);const t=this.provider.handleResponse(e);t&&(this.createList(t),this.listenMapClick())})).catch((e=>{O(this.els.reset,ie.spin);const t=U("li","Error! No internet connection?
");this.els.result.append(t)}))}createList(e){const t=this.els.result;e.forEach((e=>{let i;i=this.options.provider===L?`${e.address.name}`:this.addressTemplate(e.address);const s=U("li",`${i}`);s.addEventListener("click",(t=>{t.preventDefault(),this.chosen(e,i,e.address,e.original)}),!1),t.append(s)}))}chosen(e,t,i,s){const n=this.Base.getMap(),r=[Number.parseFloat(e.lon),Number.parseFloat(e.lat)],o=n.getView().getProjection(),a=y.default.transform(r,"EPSG:4326",o);let{bbox:l}=e;l&&(l=y.default.transformExtent([l[2],l[1],l[3],l[0]],"EPSG:4326",o));const c={formatted:t,details:i,original:s};if(!1===this.options.keepOpen&&this.clearResults(!0),!0===this.options.preventDefault)this.Base.dispatchEvent({type:D,address:c,coordinate:a,bbox:l,place:e});else{l?n.getView().fit(l,{duration:500}):function(e,t,i=500,s=2.388657133911758){e.getView().animate({duration:i,resolution:s},{duration:i,center:t})}(n,a);const t=this.createFeature(a,c);this.Base.dispatchEvent({type:D,address:c,feature:t,coordinate:a,bbox:l,place:e})}}createFeature(e){const t=new f.default(new g.default(e));return this.addLayer(),t.setStyle(this.options.featureStyle),t.setId(N("geocoder-ft-")),this.getSource().addFeature(t),t}addressTemplate(e){const t=[];return e.name&&t.push(['{name}'].join("")),(e.road||e.building||e.house_number)&&t.push(['{building} {road} {house_number}'].join("")),(e.city||e.town||e.village)&&t.push(['{postcode} {city} {town} {village}'].join("")),(e.state||e.country)&&t.push(['{state} {country}'].join("")),z(t.join("
"),e)}newProvider(){switch(this.options.provider){case L:return new Y;case M:return new Z;case P:return new K;case R:return new Q;case I:return new J;default:return this.options.provider}}expand(){O(this.els.input,ie.spin),k(this.els.control,ie.glass.expanded),window.setTimeout((()=>this.els.input.focus()),100),this.listenMapClick()}collapse(){this.els.input.value="",this.els.input.blur(),k(this.els.reset,ie.hidden),O(this.els.control,ie.glass.expanded),this.clearResults()}listenMapClick(){if(this.registeredListeners.mapClick)return;const e=this,t=this.Base.getMap().getTargetElement();this.registeredListeners.mapClick=!0,t.addEventListener("click",{handleEvent(i){e.clearResults(!0),t.removeEventListener(i.type,this,!1),e.registeredListeners.mapClick=!1}},!1)}clearResults(e){e&&this.options.targetType===E?this.collapse():function(e){for(;e.firstChild;)e.firstChild.remove()}(this.els.result)}getSource(){return this.layer.getSource()}addLayer(){let e=!1;const t=this.Base.getMap();t.getLayers().forEach((t=>{t===this.layer&&(e=!0)})),e||t.addLayer(this.layer)}}class ne extends u.default{constructor(e=C,t={}){let i,s;$("string"==typeof e,"@param `type` should be string!"),$(e===C||e===A,`@param 'type' should be '${C}'\n or '${A}'!`),$("object"==typeof t,"@param `options` should be object!"),j.featureStyle=[new h.default({image:new d.default({scale:.7,src:"//cdn.rawgit.com/jonataswalker/map-utils/master/images/marker.png"})})];const n=new H(t);if(e===C&&(i=n.els.container),super({element:i}),!(this instanceof ne))return new ne;this.options=function(e,t){const i={};return Object.keys(e).forEach((t=>{Object.prototype.hasOwnProperty.call(e,t)&&(i[t]=e[t])})),Object.keys(t).forEach((e=>{Object.prototype.hasOwnProperty.call(t,e)&&(i[e]=t[e])})),i}(j,t),this.container=i,e===C&&(s=new se(this,n.els),this.layer=s.layer)}getLayer(){return this.layer}getSource(){return this.getLayer().getSource()}setProvider(e){this.options.provider=e}setProviderKey(e){this.options.key=e}}return ne}))},31660:(e,t,i)=>{"use strict";i.d(t,{A:()=>d});var s=i(66684),n=i.n(s);class r{constructor(e,t=!1){this.url=e,this.geojson=t}getParameters(e){return{url:this.url,params:{q:e.query,format:"json",limit:10,"accept-language":"en",polygon_geojson:this.geojson?1:0,polygon_threshold:.001}}}handleResponse(e){return 0===e.length?[]:e.filter((e=>["boundary","geological","leisure","natural","place","water","waterway"].includes(e.class))).map((e=>({lon:e.lon,lat:e.lat,bbox:e.boundingbox,address:{name:e.display_name},original:{formatted:e.display_name,details:e.address,geojson:e.geojson}})))}}const o={methods:{addGeocoder(e,t=!1){if(!this.$config.geocoder)return;const i={provider:new r(this.$config.geocoder,t),placeholder:"Search for ...",keepOpen:!0,preventDefault:!0},s=new(n())("nominatim",i);s.on("addresschosen",(i=>{if(t)e(i.place?.original?.geojson,i);else if(i.place.bbox){let t=i.place.bbox.map((e=>parseFloat(e))),s={west:t[2],east:t[3],north:t[1],south:t[0]};e(s,i)}else e(null,i)})),this.map.addControl(s)}}},a=o;var l,c,u=i(81656),h=(0,u.A)(a,l,c,!1,null,null,null);const d=h.exports},29129:(e,t,i)=>{"use strict";i.d(t,{A:()=>u});var s=function(){var e=this,t=e._self._c;return e.texts.length>0?t("div",{staticClass:"ol-unselectable ol-control value",class:{pointer:e.texts.length>1},on:{click:e.toggle}},[e._v(" "+e._s(e.current)+" ")]):e._e()},n=[],r=i(51029);const o={name:"TextControl",mixins:[r.A],data(){return{i:0}},computed:{texts(){return Array.isArray(this.text)?this.text:"string"===typeof this.text&&this.text.length>0?[this.text]:[]},current(){return 0===this.texts.length?"":this.texts[this.i%this.text.length]}},props:{text:{text:[String,Array],default:""}},methods:{toggle(){this.i++}}},a=o;var l=i(81656),c=(0,l.A)(a,s,n,!1,null,"6d7a0f06",null);const u=c.exports},66385:(e,t,i)=>{"use strict";i.r(t),i.d(t,{default:()=>ji});var s=function(){var e=this,t=e._self._c;return t("Splitpanes",{staticClass:"default-theme",attrs:{horizontal:""}},[t("Pane",{attrs:{id:"map"}},[t("div",{staticClass:"map-viewer",attrs:{id:e.id}},[t("ProgressControl",{ref:"progress",attrs:{map:e.map}}),t("UserLocationControl",{attrs:{map:e.map}}),e.isGeoTiff?t("TextControl",{attrs:{text:e.textControlText}}):e._e(),e.isGeoTiff&&!e.colorMap?t("ChannelControl",{attrs:{bands:e.bands,defaultChannels:e.defaultChannels},on:{update:e.updateGeoTiffStyle}}):e._e(),e.loading?t("div",{staticClass:"map-loading"},[t("i",{staticClass:"fas fa-spinner fa-spin"}),t("span",[e._v("Loading map...")])]):e._e()],1)]),e.chart?t("Pane",{attrs:{id:"chart",size:33}},[t("ScatterChart",e._b({attrs:{height:220}},"ScatterChart",e.chart,!1))],1):e._e()],1)},n=[],r=i(88022),o=i(2566),a=i(76130),l=i(75024),c=i(44304),u=i(66451),h=i(31660),d=i(29129),p=function(){var e=this,t=e._self._c;return t("div",{directives:[{name:"show",rawName:"v-show",value:e.channels.length>0,expression:"channels.length > 0"}],staticClass:"ol-unselectable ol-control channels"},[t("table",[t("thead",[t("tr",[e.isGray?e._e():t("th",[e._v("Channel")]),e.multiBand?t("th",[e._v("Band")]):e._e(),t("th",[e._v("Min")]),t("th",[e._v("Max")])])]),t("tbody",e._l(e.channels,(function(i,s){return t("tr",{key:s},[e.isGray?e._e():t("th",[e._v(e._s(e.labels[s]))]),e.multiBand?t("td",[t("select",{directives:[{name:"model",rawName:"v-model.number",value:i.id,expression:"channel.id",modifiers:{number:!0}}],on:{change:function(t){var s=Array.prototype.filter.call(t.target.options,(function(e){return e.selected})).map((function(t){var i="_value"in t?t._value:t.value;return e._n(i)}));e.$set(i,"id",t.target.multiple?s:s[0])}}},e._l(e.bands,(function(i){return t("option",{key:i.id,domProps:{value:i.id}},[e._v(e._s(i.name||i.id))])})),0)]):e._e(),t("td",[t("input",{directives:[{name:"model",rawName:"v-model.number",value:i.min,expression:"channel.min",modifiers:{number:!0}}],attrs:{type:"number",required:""},domProps:{value:i.min},on:{input:function(t){t.target.composing||e.$set(i,"min",e._n(t.target.value))},blur:function(t){return e.$forceUpdate()}}})]),t("td",[t("input",{directives:[{name:"model",rawName:"v-model.number",value:i.max,expression:"channel.max",modifiers:{number:!0}}],attrs:{type:"number",required:""},domProps:{value:i.max},on:{input:function(t){t.target.composing||e.$set(i,"max",e._n(t.target.value))},blur:function(t){return e.$forceUpdate()}}})])])})),0),e.multiBand?t("tfoot",[t("tr",[t("td",{attrs:{colspan:e.cols}},[t("input",{directives:[{name:"model",rawName:"v-model",value:e.isGray,expression:"isGray"}],attrs:{type:"checkbox"},domProps:{checked:Array.isArray(e.isGray)?e._i(e.isGray,null)>-1:e.isGray},on:{change:function(t){var i=e.isGray,s=t.target,n=!!s.checked;if(Array.isArray(i)){var r=null,o=e._i(i,r);s.checked?o<0&&(e.isGray=i.concat([r])):o>-1&&(e.isGray=i.slice(0,o).concat(i.slice(o+1)))}else e.isGray=n}}}),e._v(" Grayscale ")])])]):e._e()])])},m=[],g=i(51029);const f={name:"ChannelControl",mixins:[g.A],props:{bands:{type:Array,default:()=>[]},defaultChannels:{type:Array,default:()=>[]}},computed:{multiBand(){return this.bands.length>1},cols(){return this.isGray?this.multiBand?3:2:4},labels(){return this.isGray?["Grayscale"]:["Red","Green","Blue"]}},data(){return{channels:this.defaultChannels,isGray:1===this.defaultChannels.length||1===this.bands.length}},watch:{bands:{immediate:!0,handler(){1===this.bands.length&&(this.isGray=!0),this.updateChannels()}},isGray(){this.updateChannels(),this.emit()},channels:{deep:!0,handler(){this.emit()}}},methods:{isValid(e){return"number"===typeof e},updateChannels(){this.defaultChannels.length>0?(this.channels=this.defaultChannels,1===this.defaultChannels.length&&(this.isGray=!0)):this.channels=this.bands.slice(0,this.isGray?1:3).map((e=>Object.assign({},e))),2===this.channels.length&&this.channels.push(Object.assign({},this.channels[1]))},emit(){this.channels.filter((e=>this.isValid(e.min)&&this.isValid(e.max))).length>0&&this.$emit("update","channels",this.channels)}}},y=f;var v=i(81656),_=(0,v.A)(y,p,m,!1,null,null,null);const w=_.exports;var S=i(22808),T=i(75332),b=i(566),x=i(49825),D=i(15477);function C(e,t,i){const s=(0,x.SR)();return s.style=e.style,(0,D.nR)(t,i,s,e)}function A(e,t){const i=`\n attribute vec2 ${b.eS.TEXTURE_COORD};\n uniform mat4 ${b.gF.TILE_TRANSFORM};\n uniform float ${b.gF.TEXTURE_PIXEL_WIDTH};\n uniform float ${b.gF.TEXTURE_PIXEL_HEIGHT};\n uniform float ${b.gF.TEXTURE_RESOLUTION};\n uniform float ${b.gF.TEXTURE_ORIGIN_X};\n uniform float ${b.gF.TEXTURE_ORIGIN_Y};\n uniform float ${b.gF.DEPTH};\n\n varying vec2 v_textureCoord;\n varying vec2 v_mapCoord;\n\n void main() {\n v_textureCoord = ${b.eS.TEXTURE_COORD};\n v_mapCoord = vec2(\n ${b.gF.TEXTURE_ORIGIN_X} + ${b.gF.TEXTURE_RESOLUTION} * ${b.gF.TEXTURE_PIXEL_WIDTH} * v_textureCoord[0],\n ${b.gF.TEXTURE_ORIGIN_Y} - ${b.gF.TEXTURE_RESOLUTION} * ${b.gF.TEXTURE_PIXEL_HEIGHT} * v_textureCoord[1]\n );\n gl_Position = ${b.gF.TILE_TRANSFORM} * vec4(${b.eS.TEXTURE_COORD}, ${b.gF.DEPTH}, 1.0);\n }\n `,s={...(0,D.z0)(),inFragmentShader:!0,bandCount:t,style:e},n=[];if(void 0!==e.color){const t=C(s,e.color,x.mE);n.push(`color = ${t};`)}if(void 0!==e.contrast){const t=C(s,e.contrast,x.wl);n.push(`color.rgb = clamp((${t} + 1.0) * color.rgb - (${t} / 2.0), vec3(0.0, 0.0, 0.0), vec3(1.0, 1.0, 1.0));`)}if(void 0!==e.exposure){const t=C(s,e.exposure,x.wl);n.push(`color.rgb = clamp((${t} + 1.0) * color.rgb, vec3(0.0, 0.0, 0.0), vec3(1.0, 1.0, 1.0));`)}if(void 0!==e.saturation){const t=C(s,e.saturation,x.wl);n.push(`\n float saturation = ${t} + 1.0;\n float sr = (1.0 - saturation) * 0.2126;\n float sg = (1.0 - saturation) * 0.7152;\n float sb = (1.0 - saturation) * 0.0722;\n mat3 saturationMatrix = mat3(\n sr + saturation, sr, sr,\n sg, sg + saturation, sg,\n sb, sb, sb + saturation\n );\n color.rgb = clamp(saturationMatrix * color.rgb, vec3(0.0, 0.0, 0.0), vec3(1.0, 1.0, 1.0));\n `)}if(void 0!==e.gamma){const t=C(s,e.gamma,x.wl);n.push(`color.rgb = pow(color.rgb, vec3(1.0 / ${t}));`)}if(void 0!==e.brightness){const t=C(s,e.brightness,x.wl);n.push(`color.rgb = clamp(color.rgb + ${t}, vec3(0.0, 0.0, 0.0), vec3(1.0, 1.0, 1.0));`)}const r={},o=Object.keys(s.variables).length;if(o>1&&!e.variables)throw new Error(`Missing variables in style (expected ${s.variables})`);for(let h=0;h ${b.gF.RENDER_EXTENT}[2] ||\n v_mapCoord[1] > ${b.gF.RENDER_EXTENT}[3]\n ) {\n discard;\n }\n\n vec4 color = texture2D(${b.gF.TILE_TEXTURE_ARRAY}[0], v_textureCoord);\n\n ${n.join("\n")}\n\n gl_FragColor = color;\n gl_FragColor.rgb *= gl_FragColor.a;\n gl_FragColor *= ${b.gF.TRANSITION_ALPHA};\n }`;return{vertexShader:i,fragmentShader:u,uniforms:r,paletteTextures:s.paletteTextures}}class E extends S.A{constructor(e){e=e?Object.assign({},e):{};const t=e.style||{};delete e.style;const i=e.cacheSize;delete e.cacheSize,super(e),this.sources_=e.sources,this.renderedSource_=null,this.renderedResolution_=NaN,this.style_=t,this.cacheSize_=i,this.styleVariables_=this.style_.variables||{},this.addChangeListener(T.A.SOURCE,this.handleSourceUpdate_)}getSources(e,t){const i=this.getSource();return this.sources_?"function"===typeof this.sources_?this.sources_(e,t):this.sources_:i?[i]:[]}getRenderSource(){return this.renderedSource_||this.getSource()}getSourceState(){const e=this.getRenderSource();return e?e.getState():"undefined"}handleSourceUpdate_(){this.hasRenderer()&&this.getRenderer().clearCache(),this.getSource()&&this.setStyle(this.style_)}getSourceBandCount_(){const e=Number.MAX_SAFE_INTEGER,t=this.getSources([-e,-e,e,e],e);return t&&t.length&&"bandCount"in t[0]?t[0].bandCount:4}createRenderer(){const e=A(this.style_,this.getSourceBandCount_());return new b.Ay(this,{vertexShader:e.vertexShader,fragmentShader:e.fragmentShader,uniforms:e.uniforms,cacheSize:this.cacheSize_,paletteTextures:e.paletteTextures})}renderSources(e,t){const i=this.getRenderer();let s;for(let n=0,r=t.length;n{"ready"==e.getState()&&(e.removeEventListener("change",t),this.changed())};e.addEventListener("change",t)}n=n&&"ready"==t}const r=this.renderSources(e,s);if(this.getRenderer().renderComplete&&n)return this.renderedResolution_=i.resolution,r;if(this.renderedResolution_>.5*i.resolution){const t=this.getSources(e.extent,this.renderedResolution_).filter((e=>!s.includes(e)));if(t.length>0)return this.renderSources(e,t)}return r}setStyle(e){this.styleVariables_=e.variables||{},this.style_=e;const t=A(this.style_,this.getSourceBandCount_()),i=this.getRenderer();i.reset({vertexShader:t.vertexShader,fragmentShader:t.fragmentShader,uniforms:t.uniforms,paletteTextures:t.paletteTextures}),this.changed()}updateStyleVariables(e){Object.assign(this.styleVariables_,e),this.changed()}}E.prototype.dispose;const F=E;var L=i(27607),M=i(6837),P=i(98596),R=i(70061),I=i(18469),j=i(66017),$=i(11078),N=i(4863),G=i(89718),k=i(40186),O=i(4087),V=i(74238),z=i(6782);class U extends j.A{constructor(e){const t=void 0===e.projection?"EPSG:3857":e.projection;let i=e.tileGrid;void 0===i&&t&&(i=(0,N.EN)({extent:(0,N.kZ)(t),maxResolution:e.maxResolution,maxZoom:e.maxZoom,minZoom:e.minZoom,tileSize:e.tileSize})),super({cacheSize:.1,attributions:e.attributions,attributionsCollapsible:e.attributionsCollapsible,projection:t,tileGrid:i,opaque:e.opaque,state:e.state,wrapX:e.wrapX,transition:e.transition,interpolate:e.interpolate}),this.gutter_=void 0!==e.gutter?e.gutter:0,this.tileSize_=e.tileSize?(0,z.xq)(e.tileSize):null,this.tileSizes_=null,this.tileLoadingKeys_={},this.loader_=e.loader,this.handleTileChange_=this.handleTileChange_.bind(this),this.bandCount=void 0===e.bandCount?4:e.bandCount,this.tileGridForProjection_={},this.tileCacheForProjection_={}}setTileSizes(e){this.tileSizes_=e}getTileSize(e){if(this.tileSizes_)return this.tileSizes_[e];if(this.tileSize_)return this.tileSize_;const t=this.getTileGrid();return t?(0,z.xq)(t.getTileSize(e)):[256,256]}getGutterForProjection(e){const t=this.getProjection();return!t||(0,G.equivalent)(t,e)?this.gutter_:0}setLoader(e){this.loader_=e}getReprojTile_(e,t,i,s,n){const r=this.getTileCacheForProjection(s),o=(0,k.dp)(e,t,i);if(r.containsKey(o)){const e=r.get(o);if(e&&e.key==this.getKey())return e}const a=this.getTileGrid(),l=Math.max.apply(null,a.getResolutions().map(((e,t)=>{const i=(0,z.xq)(a.getTileSize(t)),s=this.getTileSize(t);return Math.max(s[0]/i[0],s[1]/i[1])}))),c=this.getTileGridForProjection(n),u=this.getTileGridForProjection(s),h=[e,t,i],d=this.getTileCoordForTileUrlFunction(h,s),p=Object.assign({sourceProj:n,sourceTileGrid:c,targetProj:s,targetTileGrid:u,tileCoord:h,wrappedTileCoord:d,pixelRatio:l,gutter:this.getGutterForProjection(n),getTileFunction:(e,t,i,s)=>this.getTile(e,t,i,s,n)},this.tileOptions),m=new P.A(p);return m.key=this.getKey(),m}getTile(e,t,i,s,n){const r=this.getProjection();if(r&&n&&!(0,G.equivalent)(r,n))return this.getReprojTile_(e,t,i,n,r);const o=this.getTileSize(e),a=(0,k.dp)(e,t,i);if(this.tileCache.containsKey(a))return this.tileCache.get(a);const l=this.loader_;function c(){return(0,V.hq)((function(){return l(e,t,i)}))}const u=Object.assign({tileCoord:[e,t,i],loader:c,size:o},this.tileOptions),h=new L.Ay(u);return h.key=this.getKey(),h.addEventListener(M.A.CHANGE,this.handleTileChange_),this.tileCache.set(a,h),h}handleTileChange_(e){const t=e.target,i=(0,O.v6)(t),s=t.getState();let n;s==$.A.LOADING?(this.tileLoadingKeys_[i]=!0,n=I.A.TILELOADSTART):i in this.tileLoadingKeys_&&(delete this.tileLoadingKeys_[i],n=s==$.A.ERROR?I.A.TILELOADERROR:s==$.A.LOADED?I.A.TILELOADEND:void 0),n&&this.dispatchEvent(new j.c(n,t))}getTileGridForProjection(e){const t=this.getProjection();if(this.tileGrid&&(!t||(0,G.equivalent)(t,e)))return this.tileGrid;const i=(0,O.v6)(e);return i in this.tileGridForProjection_||(this.tileGridForProjection_[i]=(0,N.pr)(e)),this.tileGridForProjection_[i]}setTileGridForProjection(e,t){const i=(0,G.get)(e);if(i){const e=(0,O.v6)(i);e in this.tileGridForProjection_||(this.tileGridForProjection_[e]=t)}}getTileCacheForProjection(e){const t=this.getProjection();if(!t||(0,G.equivalent)(t,e))return this.tileCache;const i=(0,O.v6)(e);return i in this.tileCacheForProjection_||(this.tileCacheForProjection_[i]=new R.A(.1)),this.tileCacheForProjection_[i]}expireCache(e,t){const i=this.getTileCacheForProjection(e);this.tileCache.expireCache(this.tileCache==i?t:{});for(const s in this.tileCacheForProjection_){const e=this.tileCacheForProjection_[s];e.expireCache(e==i?t:{})}}clear(){super.clear();for(const e in this.tileCacheForProjection_)this.tileCacheForProjection_[e].clear()}}const q=U;var B=i(56758),W=i(98622),X=i(70851);const H="undefined"!==typeof navigator&&navigator.hardwareConcurrency||2;class K{constructor(e=H,t){this.workers=null,this._awaitingDecoder=null,this.size=e,this.messageId=0,e&&(this._awaitingDecoder=t?Promise.resolve(t):new Promise((e=>{i.e(9989).then(i.bind(i,79989)).then((t=>{e(t.create)}))})),this._awaitingDecoder.then((t=>{this._awaitingDecoder=null,this.workers=[];for(let i=0;ii.decode(e,t))):new Promise((i=>{const s=this.workers.find((e=>e.idle))||this.workers[Math.floor(Math.random()*this.size)];s.idle=!1;const n=this.messageId++,r=e=>{e.data.id===n&&(s.idle=!0,i(e.data.decoded),s.worker.removeEventListener("message",r))};s.worker.addEventListener("message",r),s.worker.postMessage({fileDirectory:e,buffer:t,id:n},[t])}))}destroy(){this.workers&&(this.workers.forEach((e=>{e.worker.terminate()})),this.workers=null)}}const Y=K;var Z=i(34099),Q=i(61597),J=i(70915),ee=i(54422),te=i(8100);function ie(e){const t=e.fileDirectory,i=t.NewSubfileType||0;return 4===(4&i)}function se(e,t){if(!e)return!1;if(!0===e)return!0;if(3!==t.getSamplesPerPixel())return!1;const i=t.fileDirectory.PhotometricInterpretation,s=W.ub;return i===s.CMYK||i===s.YCbCr||i===s.CIELab||i===s.ICCLab}const ne="STATISTICS_MAXIMUM",re="STATISTICS_MINIMUM",oe=256;let ae;function le(){return ae||(ae=new Y),ae}function ce(e){try{return e.getBoundingBox()}catch(t){return[0,0,e.getWidth(),e.getHeight()]}}function ue(e){try{return e.getOrigin().slice(0,2)}catch(t){return[0,e.getHeight()]}}function he(e,t){try{return e.getResolution(t)}catch(i){return[t.getWidth()/e.getWidth(),t.getHeight()/e.getHeight()]}}function de(e){const t=e.geoKeys;if(!t)return null;if(t.ProjectedCSTypeGeoKey&&32767!==t.ProjectedCSTypeGeoKey){const e="EPSG:"+t.ProjectedCSTypeGeoKey;let i=(0,G.get)(e);if(!i){const s=(0,te.q)(t.ProjLinearUnitsGeoKey);s&&(i=new G.Projection({code:e,units:s}))}return i}if(t.GeographicTypeGeoKey&&32767!==t.GeographicTypeGeoKey){const e="EPSG:"+t.GeographicTypeGeoKey;let i=(0,G.get)(e);if(!i){const s=(0,te.q)(t.GeogAngularUnitsGeoKey);s&&(i=new G.Projection({code:e,units:s}))}return i}return null}function pe(e){return e.getImageCount().then((function(t){const i=new Array(t);for(let s=0;si*e)throw new Error(s)}function fe(e){return e instanceof Int8Array?-128:e instanceof Int16Array?-32768:e instanceof Int32Array?-2147483648:e instanceof Float32Array?12e-39:0}function ye(e){return e instanceof Int8Array?127:e instanceof Uint8Array||e instanceof Uint8ClampedArray?255:e instanceof Int16Array?32767:e instanceof Uint16Array?65535:e instanceof Int32Array?2147483647:e instanceof Uint32Array?4294967295:e instanceof Float32Array?34e37:255}class ve extends q{constructor(e){super({state:"loading",tileGrid:null,projection:e.projection||null,opaque:e.opaque,transition:e.transition,interpolate:!1!==e.interpolate,wrapX:e.wrapX}),this.sourceInfo_=e.sources;const t=this.sourceInfo_.length;this.sourceOptions_=e.sourceOptions,this.sourceImagery_=new Array(t),this.sourceMasks_=new Array(t),this.resolutionFactors_=new Array(t),this.samplesPerPixel_,this.nodataValues_,this.metadata_,this.normalize_=!1!==e.normalize,this.addAlpha_=!1,this.error_=null,this.convertToRGB_=e.convertToRGB||!1,this.setKey(this.sourceInfo_.map((e=>e.url)).join(","));const i=this,s=new Array(t);for(let n=0;n=0;--i){const e=t[i],s=de(e);if(s){this.projection=s;break}}}configure_(e){let t,i,s,n,r;const o=new Array(e.length),a=new Array(e.length),l=new Array(e.length);let c=0;const u=e.length;for(let m=0;m{ie(e)?h.push(e):u.push(e)}));const d=u.length;if(h.length>0&&h.length!==d)throw new Error(`Expected one mask per image found ${h.length} masks and ${d} images`);let p,g;const f=new Array(d),y=new Array(d),v=new Array(d);a[m]=new Array(d),l[m]=new Array(d);for(let e=0;ev.length&&(c=r.length-v.length);const e=r[r.length-1]/v[v.length-1];this.resolutionFactors_[m]=e;const t=v.map((t=>t*e)),i=`Resolution mismatch for source ${m}, got [${t}] but expected [${r}]`;ge(r.slice(c,r.length),t,.02,i,this.viewRejector)}else r=v,this.resolutionFactors_[m]=1;s?ge(s.slice(c,s.length),y,.01,`Tile size mismatch for source ${m}`,this.viewRejector):s=y,n?ge(n.slice(c,n.length),f,0,`Tile size mismatch for source ${m}`,this.viewRejector):n=f,this.sourceImagery_[m]=u.reverse(),this.sourceMasks_[m]=h.reverse()}for(let m=0,g=this.sourceImagery_.length;m{let t=this.layer.getData(e.pixel),i=o.A.displayRGBA(t,this.noData,this.noData.length>0),s=`Pixel Value: ${i}`,n=this.formatCoords(e.coordinate);this.textControlText=[s,`${s} @ ${n}`]},click:e=>{let t=this.layer.getData(e.pixel);if(!t)return void(this.chart=null);if(t=Array.from(t).slice(0,this.bands.length),t.length<2||t.every((e=>!isFinite(e))))return void(this.chart=null);let i=this.formatCoords(e.coordinate),s=`Coordinate: ${i}`,n=[{label:s,data:t}];this.chart={labels:this.bands.map((e=>String(e.name||e.id))),datasets:n}}}),this.addLayerToMap(this.layer);let s=e.getExtent();return s&&this.map.getView().fit(s,this.getFitOptions(10)),await new Promise((e=>setTimeout(e,1250))),this.setStyle(),this.source},formatCoords(e){return e.map((e=>String(parseFloat(e.toFixed(6))))).join(", ")},updateGeoTiffStyle(e,t){switch(e){case"channels":this.channels=t,this.setOptions("channels",t);break}this.setStyle()},setStyle(){if(!this.layer)return;let e={};for(let i in this.channels){let t=this.channels[i];e[`${i}band`]=t.id,e[`${i}min`]=t.min,e[`${i}max`]=t.max}e.alphaband=this.bands.length+1;let t=[];if(this.colorMap)t.push("palette"),t.push(["band",1]),t.push(this.colorMap);else{if(0===this.channels.length)return null;if(1===this.channels.length){t.push("color");let e=this.getFormula(0);t.push(e),t.push(e),t.push(e),this.noData.length>0&&t.push(this.getNoDataFormula())}else t.push("color"),t.push(this.getFormula(0)),t.push(this.getFormula(1)),t.push(this.getFormula(2)),this.noData.length>0&&t.push(this.getNoDataFormula())}this.layer.setStyle({variables:e,color:t})}}},Se=we;var Te,be,xe=(0,v.A)(Se,Te,be,!1,null,null,null);const De=xe.exports;var Ce=i(74559),Ae=i(80494),Ee=i(50071),Fe=i(35598),Le=i(30945),Me=i(10702);function Pe(e,t){return Be().createElementNS(e,t)}function Re(e,t){return Ie(e,t,[]).join("")}function Ie(e,t,i){if(e.nodeType==Node.CDATA_SECTION_NODE||e.nodeType==Node.TEXT_NODE)t?i.push(String(e.nodeValue).replace(/(\r\n|\r|\n)/g,"")):i.push(e.nodeValue);else{let s;for(s=e.firstChild;s;s=s.nextSibling)Ie(s,t,i)}return i}function je(e){return"documentElement"in e}function $e(e){return(new DOMParser).parseFromString(e,"application/xml")}function Ne(e,t){return function(i,s){const n=e.call(void 0!==t?t:this,i,s);if(void 0!==n){const e=s[s.length-1];e.push(n)}}}function Ge(e,t,i){return function(s,n){const r=e.call(void 0!==i?i:this,s,n);if(void 0!==r){const e=n[n.length-1],i=void 0!==t?t:s.localName;let o;i in e?o=e[i]:(o=[],e[i]=o),o.push(r)}}}function ke(e,t,i){return function(s,n){const r=e.call(void 0!==i?i:this,s,n);if(void 0!==r){const e=n[n.length-1],i=void 0!==t?t:s.localName;e[i]=r}}}function Oe(e,t){return function(i,s,n){const r=s[s.length-1],o=r.node;let a=e;void 0===a&&(a=n);const l=void 0!==t?t:o.namespaceURI;return Pe(l,a)}}Oe();function Ve(e,t,i){let s,n;for(i=void 0!==i?i:{},s=0,n=e.length;s0)||i.find((function(i){return t[u]==i[c]||!t[u].includes(":")&&e[u]+":"+t[u]===i[c]})),l){n.push(t[u]);const e=28e-5*t[h]/y,i=t[p],l=t[m];v?r.push([t[d][1],t[d][0]]):r.push(t[d]),s.push(e),o.push(i==l?i:[i,l]),a.push([t["MatrixWidth"],t["MatrixHeight"]])}})),new ci({extent:t,origins:r,resolutions:s,matrixIds:n,tileSizes:o,sizes:a})}var hi=i(42654);class di extends ai.A{constructor(e){const t=void 0!==e.requestEncoding?e.requestEncoding:"KVP",i=e.tileGrid;let s=e.urls;void 0===s&&void 0!==e.url&&(s=(0,hi.Uu)(e.url)),super({attributions:e.attributions,attributionsCollapsible:e.attributionsCollapsible,cacheSize:e.cacheSize,crossOrigin:e.crossOrigin,interpolate:e.interpolate,projection:e.projection,reprojectionErrorThreshold:e.reprojectionErrorThreshold,tileClass:e.tileClass,tileGrid:i,tileLoadFunction:e.tileLoadFunction,tilePixelRatio:e.tilePixelRatio,urls:s,wrapX:void 0!==e.wrapX&&e.wrapX,transition:e.transition,zDirection:e.zDirection}),this.version_=void 0!==e.version?e.version:"1.0.0",this.format_=void 0!==e.format?e.format:"image/jpeg",this.dimensions_=void 0!==e.dimensions?e.dimensions:{},this.layer_=e.layer,this.matrixSet_=e.matrixSet,this.style_=e.style,this.requestEncoding_=t,this.setKey(this.getKeyForDimensions_()),s&&s.length>0&&(this.tileUrlFunction=(0,hi.FD)(s.map(this.createFromWMTSTemplate.bind(this))))}setUrls(e){this.urls=e;const t=e.join("\n");this.setTileUrlFunction((0,hi.FD)(e.map(this.createFromWMTSTemplate.bind(this))),t)}getDimensions(){return this.dimensions_}getFormat(){return this.format_}getLayer(){return this.layer_}getMatrixSet(){return this.matrixSet_}getRequestEncoding(){return this.requestEncoding_}getStyle(){return this.style_}getVersion(){return this.version_}getKeyForDimensions_(){const e=this.urls?this.urls.slice(0):[];for(const t in this.dimensions_)e.push(t+"-"+this.dimensions_[t]);return e.join("/")}updateDimensions(e){Object.assign(this.dimensions_,e),this.setKey(this.getKeyForDimensions_())}createFromWMTSTemplate(e){const t=this.requestEncoding_,i={layer:this.layer_,style:this.style_,tilematrixset:this.matrixSet_};"KVP"==t&&Object.assign(i,{Service:"WMTS",Request:"GetTile",Version:this.version_,Format:this.format_}),e="KVP"==t?li(e,i):e.replace(/\{(\w+?)\}/g,(function(e,t){return t.toLowerCase()in i?i[t.toLowerCase()]:e}));const s=this.tileGrid,n=this.dimensions_;return function(i,r,o){if(!i)return;const a={TileMatrix:s.getMatrixId(i[0]),TileCol:i[1],TileRow:i[2]};Object.assign(a,n);let l=e;return l="KVP"==t?li(l,a):l.replace(/\{(\w+?)\}/g,(function(e,t){return a[t]})),l}}}const pi=di;function mi(e,t){const i=e["Contents"]["Layer"],s=i?.find((function(e){return e["Identifier"]==t["layer"]}));if(!s)return null;const n=e["Contents"]["TileMatrixSet"];let r;r=s["TileMatrixSetLink"].length>1?"projection"in t?s["TileMatrixSetLink"].findIndex((function(e){const i=n.find((function(t){return t["Identifier"]==e["TileMatrixSet"]})),s=i["SupportedCRS"],r=(0,G.get)(s),o=(0,G.get)(t["projection"]);return r&&o?(0,G.equivalent)(r,o):s==t["projection"]})):s["TileMatrixSetLink"].findIndex((function(e){return e["TileMatrixSet"]==t["matrixSet"]})):0,r<0&&(r=0);const o=s["TileMatrixSetLink"][r]["TileMatrixSet"],a=s["TileMatrixSetLink"][r]["TileMatrixSetLimits"];let l=s["Format"][0];"format"in t&&(l=t["format"]),r=s["Style"].findIndex((function(e){return"style"in t?e["Title"]==t["style"]:e["isDefault"]})),r<0&&(r=0);const c=s["Style"][r]["Identifier"],u={};"Dimension"in s&&s["Dimension"].forEach((function(e,t,i){const s=e["Identifier"];let n=e["Default"];void 0===n&&(n=e["Value"][0]),u[s]=n}));const h=e["Contents"]["TileMatrixSet"],d=h.find((function(e){return e["Identifier"]==o}));let p;const m=d["SupportedCRS"];if(m&&(p=(0,G.get)(m)),"projection"in t){const e=(0,G.get)(t["projection"]);e&&(p&&!(0,G.equivalent)(e,p)||(p=e))}let g=!1;const f="ne"==p.getAxisOrientation().substr(0,2);let y=d.TileMatrix[0],v={MinTileCol:0,MinTileRow:0,MaxTileCol:y.MatrixWidth-1,MaxTileRow:y.MatrixHeight-1};if(a){v=a[a.length-1];const e=d.TileMatrix.find((e=>e.Identifier===v.TileMatrix||d.Identifier+":"+e.Identifier===v.TileMatrix));e&&(y=e)}const _=28e-5*y.ScaleDenominator/p.getMetersPerUnit(),w=f?[y.TopLeftCorner[1],y.TopLeftCorner[0]]:y.TopLeftCorner,S=y.TileWidth*_,T=y.TileHeight*_;let b=d["BoundingBox"];b&&f&&(b=[b[1],b[0],b[3],b[2]]);let x=[w[0]+S*v.MinTileCol,w[1]-T*(1+v.MaxTileRow),w[0]+S*(1+v.MaxTileCol),w[1]-T*v.MinTileRow];if(void 0!==b&&!(0,J.ms)(b,x)){const e=s["WGS84BoundingBox"],t=(0,G.get)("EPSG:4326").getExtent();if(x=b,e)g=e[0]===t[0]&&e[2]===t[2];else{const e=(0,G.transformExtent)(b,d["SupportedCRS"],"EPSG:4326");g=e[0]-1e-10<=t[0]&&e[2]+1e-10>=t[2]}}const D=ui(d,x,a),C=[];let A=t["requestEncoding"];if(A=void 0!==A?A:"","OperationsMetadata"in e&&"GetTile"in e["OperationsMetadata"]){const t=e["OperationsMetadata"]["GetTile"]["DCP"]["HTTP"]["Get"];for(let e=0,i=t.length;e=1?e++:e=Math.min(1,e+.1),e=Math.round(100*e)/100,this.refresh(e)}.bind(this)}),this.addButton({className:"ol-zoom-out",handleClick:function(){var e=this.get("zoom");e>1?e--:e-=.1,e=Math.round(100*e)/100,this.refresh(e)}.bind(this)})),this._intervalDiv=yi.A.create("DIV",{className:"ol-center-date",parent:this.element}),this.element.addEventListener("mouseover",function(){this._select&&this._select.elt.classList.remove("ol-select")}.bind(this));var i=null;this._scrollDiv.addEventListener("scroll",function(){this._setScrollLeft(),i&&(clearTimeout(i),i=null),i=setTimeout(function(){this.dispatchEvent({type:"scroll",date:this.getDate(),dateStart:this.getDate("start"),dateEnd:this.getDate("end")})}.bind(this),e.scrollTimeout||15)}.bind(this)),yi.A.scrollDiv(this._scrollDiv,{onmove:function(e){this._moving=e}.bind(this)}),this._tline=[],this._scrollLeft=0,this.set("maxWidth",e.maxWidth||2e3),this.set("minDate",e.minDate||1/0),this.set("maxDate",e.maxDate||-1/0),this.set("graduation",e.graduation),this.set("minZoom",e.minZoom||.2),this.set("maxZoom",e.maxZoom||4),this.setInterval(e.interval),e.getHTML&&(this._getHTML=e.getHTML),e.getFeatureDate&&(this._getFeatureDate=e.getFeatureDate),e.endFeatureDate&&(this._endFeatureDate=e.endFeatureDate),this.setFeatures(e.features||e.source,e.zoom)}setMap(e){super.setMap(e),this.refresh(this.get("zoom")||1,!0)}addButton(e){this.element.classList.add("ol-hasbutton"),yi.A.create("BUTTON",{className:e.className||void 0,title:e.title,html:e.html,click:e.handleClick,parent:this._buttons})}setInterval(e){"string"===typeof e&&(e=/s$/.test(e)?1e3*parseFloat(e):/mn$/.test(e)?1e3*parseFloat(e)*60:/h$/.test(e)?1e3*parseFloat(e)*3600:/d$/.test(e)?1e3*parseFloat(e)*3600*24:/y$/.test(e)?1e3*parseFloat(e)*3600*24*365:0),this.set("interval",e||0),e?this.element.classList.add("ol-interval"):this.element.classList.remove("ol-interval"),this.refresh(this.get("zoom"))}_getHTML(e){return e.get("name")||""}_getFeatureDate(e){return e&&e.get?e.get("date"):null}_endFeatureDate(){}isCollapsed(){return this.element.classList.contains("ol-collapsed")}collapse(e){e?this.element.classList.add("ol-collapsed"):this.element.classList.remove("ol-collapsed"),this.dispatchEvent({type:"collapse",collapsed:this.isCollapsed()})}toggle(){this.element.classList.toggle("ol-collapsed"),this.dispatchEvent({type:"collapse",collapsed:this.isCollapsed()})}setFeatures(e,t){this._features=this._source=null,e instanceof gi["default"]?this._source=e:this._features=e instanceof Array?e:[],this.refresh(t)}getFeatures(){return this._features||this._source.getFeatures()}refresh(e,t){if(this.getMap()){e||(e=this.get("zoom")),e=Math.min(this.get("maxZoom"),Math.max(this.get("minZoom"),e||1)),this.set("zoom",e),this._scrollDiv.innerHTML="";var i,s,n=this.getFeatures(),r=this._tline=[];n.forEach(function(e){(i=this._getFeatureDate(e))&&(i instanceof Date||(i=new Date(i)),this._endFeatureDate&&(s=this._endFeatureDate(e),s instanceof Date||(s=new Date(s))),isNaN(i)||r.push({date:i,end:isNaN(s)?null:s,feature:e}))}.bind(this)),r.sort((function(e,t){return e.dateu?u/c:1)*e;a=this._minDate=this._minDate-10/h,c=(l-a)*h,yi.A.setStyle(o,{width:c,maxWidth:"unset"}),this._drawTime(o,a,l,h),this.get("interval")?yi.A.setStyle(this._intervalDiv,{width:this.get("interval")*h}):yi.A.setStyle(this._intervalDiv,{width:""});var d=[],p=yi.A.getStyle(this._scrollDiv,"lineHeight"),m=yi.A.create("DIV",{className:"ol-features",parent:o});r.forEach(function(e){for(var t=e.date,i=e.elt=yi.A.create("DIV",{className:"ol-feature",style:{left:Math.round((t-a)*h)},html:this._getHTML(e.feature),parent:m}),s=i.querySelectorAll("img"),n=0;no)break;d[r]=l+yi.A.getStyle(i,"width"),yi.A.setStyle(i,{top:r*p})}.bind(this)),this._nbline=d.length,t&&this.setDate(this._minDate,{anim:!1,position:"start"}),this.dispatchEvent({type:"scroll",date:this.getDate(),dateStart:this.getDate("start"),dateEnd:this.getDate("end")})}}_getOffsetFromDate(e){return(e-this._minDate)*this._scale}_getDateFromOffset(e){return e/this._scale+this._minDate}_setScrollLeft(e){this._scrollLeft=e,void 0!==e&&(this._scrollDiv.scrollLeft=e)}_getScrollLeft(){return void 0===this._scrollLeft?this._scrollDiv.scrollLeft:this._scrollLeft}_drawTime(e,t,i,s){var n,r,o,a,l=yi.A.create("DIV",{className:"ol-times",parent:e}),c=yi.A.getStyle(l,"left"),u=yi.A.getStyle(l,"height"),h=new Date(this._minDate).getFullYear();r=(new Date(0).setFullYear(String(h))-new Date(0).setFullYear(String(h-1)))*s;var d=Math.round(2*u/r)+1;while(1){if(n=new Date(0).setFullYear(h),n>this._maxDate)break;yi.A.create("DIV",{className:"ol-time ol-year",style:{left:this._getOffsetFromDate(n)-c},html:h,parent:l}),h+=d}if(/day|month/.test(this.get("graduation"))&&(r=(new Date(0,0,1).setFullYear(String(h))-new Date(0,0,1).setFullYear(String(h-1)))*s,a=Math.max(1,Math.round(12/Math.round(r/u/2))),a<12)){h=new Date(this._minDate).getFullYear(),o=a+1;while(1){if(n=new Date(0,0,1),n.setFullYear(h),n.setMonth(o-1),n>this._maxDate)break;yi.A.create("DIV",{className:"ol-time ol-month",style:{left:this._getOffsetFromDate(n)-c},html:n.toLocaleDateString(void 0,{month:"short"}),parent:l}),o+=a,o>12&&(h++,o=a+1)}}if("day"===this.get("graduation")){r=(new Date(0,1,1)-new Date(0,0,1))*s;var p=Math.max(1,Math.round(31/Math.round(r/u/2)));if(p<31){h=new Date(this._minDate).getFullYear(),o=0;var m=p;while(1)if(n=new Date(0,0,1),n.setFullYear(h),n.setMonth(o),n.setDate(m),isNaN(n))o++,o>12&&(o=1,h++),m=p;else{if(n>this._maxDate)break;if(m>1){var g=this._getOffsetFromDate(n);this._getOffsetFromDate(new Date(h,o+1,1))-g>u&&yi.A.create("DIV",{className:"ol-time ol-day",style:{left:g-c},html:m,parent:l})}h=n.getFullYear(),o=n.getMonth(),m=n.getDate()+p,m>new Date(h,o+1,0).getDate()&&(o++,m=p)}}}}setDate(e,t){var i;if(t=t||{},e instanceof Date?i=e:(this.getFeatures().indexOf(e)>=0&&(i=this._getFeatureDate(e)),!i||i instanceof Date||(i=new Date(i)),i&&!isNaN(i)||(i=new Date(String(e)))),!isNaN(i)){!1===t.anim&&this._scrollDiv.classList.add("ol-move");var s=this._getOffsetFromDate(i);if("start"===t.position?s+=yi.A.outerWidth(this._scrollDiv)/2-yi.A.getStyle(this._scrollDiv,"marginLeft")/2:"end"===t.position&&(s-=yi.A.outerWidth(this._scrollDiv)/2-yi.A.getStyle(this._scrollDiv,"marginLeft")/2),this._setScrollLeft(s),!1===t.anim&&this._scrollDiv.classList.remove("ol-move"),e)for(var n,r=0;n=this._tline[r];r++)n.feature===e?(n.elt.classList.add("ol-select"),this._select=n):n.elt.classList.remove("ol-select")}}roundDate(e,t){switch(t){case"mn":return new Date(this._roundTo(e,6e4));case"hour":return new Date(this._roundTo(e,36e5));case"day":return new Date(this._roundTo(e,864e5));case"month":return e=new Date(this._roundTo(e,864e5)),e.getDate()>15&&(e=new Date(e.setMonth(e.getMonth()+1))),e=e.setDate(1),new Date(e);default:return new Date(e)}}getDate(e,t){var i;switch(t||(t=e),e){case"start":i=this.get("interval")?-yi.A.getStyle(this._intervalDiv,"width")/2+yi.A.getStyle(this._scrollDiv,"marginLeft")/2:-yi.A.outerWidth(this._scrollDiv)/2+yi.A.getStyle(this._scrollDiv,"marginLeft")/2;break;case"end":i=this.get("interval")?yi.A.getStyle(this._intervalDiv,"width")/2-yi.A.getStyle(this._scrollDiv,"marginLeft")/2:yi.A.outerWidth(this._scrollDiv)/2-yi.A.getStyle(this._scrollDiv,"marginLeft")/2;break;default:i=0;break}var s=this._getDateFromOffset(this._getScrollLeft()+i);return s=this.roundDate(s,t),new Date(s)}_roundTo(e,t){return Math.round(e/t)*t}getStartDate(){return new Date(this.get("minDate"))}getEndDate(){return new Date(this.get("maxDate"))}};const _i=vi;var wi=i(96763);const Si={mixins:[u.A],data(){return{WMTSCapabilities:{},timeline:null}},methods:{async addWebService(e){switch(e.type.toLowerCase()){case"xyz":return this.updateXYZLayer(e);case"wmts":return await this.updateWMTSLayer(e);default:return o.A.error(this,"Sorry, this web service type is not supported."),null}},getWMTSTimes(e,t){const i=e.Contents.Layer||[];let s=i.find((e=>e.Identifier==t));if(!s||!s.Dimension)return[];let n=s.Dimension.find((e=>"TIME"===e.Identifier));return n?n.Value.sort():[]},async initWMTSLayer(e){if(!this.WMTSCapabilities[e.url])try{let i=new URL(e.url);i.searchParams.set("service","wmts"),i.searchParams.set("request","GetCapabilities");let s=await axios.get(i.toString(),{responseType:"text"});var t=new oi;this.WMTSCapabilities[e.url]=t.read(s.data)}catch(error){o.A.exception(this,error,"WMTS Discovery failed")}return this.WMTSCapabilities[e.url]},async updateWMTSLayer(e,t="Service"){let i=e.attributes||{},s=await this.initWMTSLayer(e);s||o.A.exception(this,error,"WMTS Discovery failed");let n,r=null,a=null,l=null,c=null,u=o.A.getResourceTitle(e,t),h=new Ee.A;Array.isArray(i.layers)?n=i.layers:Array.isArray(s.Contents.Layer)&&(n=layers.map((e=>e.Identifier)));for(let m of n){if(!m)continue;let t=mi(s,{layer:m,matrixSet:"EPSG:3857"});l||(l=new Date(t.dimensions.TIME));let n=this.getWMTSTimes(s,m);if(n.length){let e=new Date(n[0]),t=new Date(n[n.length-1]);(!r||ea)&&(a=t)}o.A.isObject(i.dimensions)&&Object.assign(t.dimensions,e.attributes.dimensions),c=new pi(t);var d=new Le.A({title:u,source:this.trackTileProgress(c),noSwitcherDelete:!0});h.push(d)}if(r&&a){let e;this.timeline=new _i({className:"ol-pointer",graduation:"day",minDate:r,maxDate:a}),this.timeline.on("scroll",(function(t){!t.date||t.date>a||t.date{try{let e=t.date.toISOString().substr(0,10);c.updateDimensions({TIME:e});let i=document.getElementsByClassName("timeline-date-label");i[0].innerText=e,i[0].disabled=!0}catch(error){wi.log(error)}e=null}),500))})),this.map.addControl(this.timeline),this.timeline.addButton({className:"timeline-date-label",title:`The date that is shown on the map for the collection '${u}'`,html:"No date"}),this.timeline.setDate(l)}let p=new Fe.A({id:e.id,title:u,layers:h});return p.on("change:visible",(()=>{this.timeline&&this.timeline.element&&(this.timeline.element.style.display=p.getVisible()?"block":"none")})),this.addLayerToMap(p),this.timeline&&this.map.getLayers().on("remove",(e=>{e.element===p&&(this.map.removeControl(this.timeline),this.timeline=null)})),p},updateXYZLayer(e,t="Service"){let i=o.A.replaceParam(e.url,"__editorSessionId",(new Date).getTime()).replace(/%7B/g,"{").replace(/%7D/g,"}"),s=o.A.getResourceTitle(e,t),n=new Le.A({title:s,source:this.trackTileProgress(new Me.A({url:i})),noSwitcherDelete:!0}),r=new Fe.A({id:e.id,title:s,layers:[n]});if(this.addLayerToMap(r),o.A.isObject(e.process)&&o.A.isObject(e.process.process_graph)){const t="urn:ogc:def:crs:OGC:1.3:CRS84",i="EPSG:4326";Object.values(e.process.process_graph).filter((e=>"load_collection"===e.process_id&&o.A.isObject(e.arguments)&&e.arguments.spatial_extent)).forEach((e=>{let s=e.arguments.spatial_extent,n=(s.west||s.east||s.south||s.north)&&(!s.crs||4326===s.crs||s.crs===i),r=s.type&&(!s.crs||o.A.isObject(s.crs)&&"name"===s.crs.type&&(s.crs.properties?.name===i||s.properties?.name===t));(n||r)&&this.addExtent(s,!1)}))}return r}}},Ti=Si;var bi,xi,Di=(0,v.A)(Ti,bi,xi,!1,null,null,null);const Ci=Di.exports;var Ai=i(73902),Ei=i(86717),Fi=i(34142),Li=i(82986),Mi=i(96763);r.A.prototype.getSampleByteSize=function(e){if(this.fileDirectory.BitsPerSample&&0!==this.fileDirectory.BitsPerSample.length)return e>=this.fileDirectory.BitsPerSample.length&&(e=0),Math.ceil(this.fileDirectory.BitsPerSample[e]/8)},r.A.prototype.getReaderForSample=function(e){const t=this.getSampleFormat(e),i=this.getBitsPerSample(e);switch(t){case 1:if(i<=8)return DataView.prototype.getUint8;if(i<=16)return DataView.prototype.getUint16;if(i<=32)return DataView.prototype.getUint32;break;case 2:if(i<=8)return DataView.prototype.getInt8;if(i<=16)return DataView.prototype.getInt16;if(i<=32)return DataView.prototype.getInt32;break;case 3:switch(i){case 16:return function(e,t){return getFloat16(this,e,t)};case 32:return DataView.prototype.getFloat32;case 64:return DataView.prototype.getFloat64;default:break}break;default:break}throw Error("Unsupported data format/bitsPerSample")},r.A.prototype.getSampleFormat=function(e=0){return this.fileDirectory.SampleFormat&&0!==this.fileDirectory.SampleFormat.length?"undefined"!==typeof this.fileDirectory.SampleFormat[e]?this.fileDirectory.SampleFormat[e]:this.fileDirectory.SampleFormat[0]:1},r.A.prototype.getBitsPerSample=function(e=0){if(this.fileDirectory.BitsPerSample&&0!==this.fileDirectory.BitsPerSample.length)return"undefined"!==typeof this.fileDirectory.BitsPerSample[e]?this.fileDirectory.BitsPerSample[e]:this.fileDirectory.BitsPerSample[0]};const Pi={name:"MapViewer",mixins:[u.A,h.A,De,Ce.A,Ci],components:{Pane:c.Z,ScatterChart:Ae.A,Splitpanes:c.S},props:{data:{}},data(){return{loading:!0,chart:null}},computed:{...o.A.mapState(["connection"]),isWebService(){return this.data instanceof Ai.Service&&"string"===typeof this.data.type},isGeoTiff(){return this.data instanceof a.A},isGeoJson(){return this.data instanceof l.A&&this.data.isGeoJson}},mounted(){this.$emit("mounted",this)},methods:{async renderMap(){try{let e,t;if(this.isGeoJson)t=await this.data.loadData(this.connection);else if(this.isGeoTiff){t=await this.data.loadData(this.connection);let i=t.getProjection();i&&(e=i)}else{if(!this.isWebService||!o.A.isMapServiceSupported(this.data.type))throw new Error("Sorry, the given data can't be shown on a web map.");if("wmts"===this.data.type.toLowerCase()){await this.initWMTSLayer(this.data)}}if(await this.createMap(e),this.addLayerSwitcher(),this.addGeocoder((e=>{if(!e)return;let t=this.toExtent(e);t=(0,G.transformExtent)(t,"EPSG:4326",this.map.getView().getProjection()),this.map.getView().fit(t,this.getFitOptions())})),this.isGeoJson)this.addBasemaps(),this.addGeoJson(t,!0);else if(this.isGeoTiff){let e=this.map.getView().getProjection();(e.basemap||["EPSG:3857","EPSG:4326"].includes(e.getCode()))&&this.addBasemaps(),this.addGeoTiff(t);let i=this.data.getContext();i&&this.addExtent(i,!1)}else this.isWebService&&o.A.isMapServiceSupported(this.data.type)&&(this.addBasemaps(),this.addWebService(this.data));this.$listeners&&this.$listeners.drop&&(this.map.getViewport().addEventListener("dragover",(e=>e.preventDefault())),this.map.getViewport().addEventListener("drop",this.$listeners.drop))}catch(error){o.A.exception(this,error)}this.loading=!1},async addCollection(){let e=this.showWebService(this.data);try{let t=service.attributes.bbox,i=[...this.fromLonLat([t.west,t.south]),...this.fromLonLat([t.east,t.north])],s=new Li["default"]({title:"Extent",noSwitcherDelete:!0,source:new gi["default"]({features:[new Ei["default"]((0,Fi.VY)(i))],projection:"EPSG:4326",wrapX:!1})});this.removeLayerFill(s),e.getLayers().push(s),this.map.getView().fit(i,this.getFitOptions(10))}catch(error){Mi.log(error)}}}},Ri=Pi;var Ii=(0,v.A)(Ri,s,n,!1,null,null,null);const ji=Ii.exports}}]);
-//# sourceMappingURL=164.7a188da8.js.map
\ No newline at end of file
+//# sourceMappingURL=164.13466ff8.js.map
\ No newline at end of file
diff --git a/js/164.7a188da8.js.map b/js/164.13466ff8.js.map
similarity index 99%
rename from js/164.7a188da8.js.map
rename to js/164.13466ff8.js.map
index 106e05be..41700eb3 100644
--- a/js/164.7a188da8.js.map
+++ b/js/164.13466ff8.js.map
@@ -1 +1 @@
-{"version":3,"file":"js/164.7a188da8.js","mappings":";;;;;;IAMC,SAASA,EAAEC,GAAwDC,EAAOC,QAAQF,EAAE,EAAQ,OAAsB,EAAQ,OAAkB,EAAQ,OAAiB,EAAQ,OAAmB,EAAQ,OAAoB,EAAQ,OAAiB,EAAQ,OAAc,EAAQ,OAAmY,CAAtpB,CAAwpBG,GAAK,SAAUJ,EAAEC,EAAEI,EAAEC,EAAEC,EAAEC,EAAEC,EAAEC,GAAG,aAAa,SAASC,EAAEX,GAAG,OAAOA,GAAG,iBAAiBA,GAAG,YAAYA,EAAEA,EAAE,CAACY,QAAQZ,EAAE,CAAC,IAAIa,EAAEF,EAAEX,GAAGc,EAAEH,EAAEV,GAAGc,EAAEJ,EAAEN,GAAGW,EAAEL,EAAEL,GAAGW,EAAEN,EAAEJ,GAAGW,EAAEP,EAAEH,GAAGW,EAAER,EAAEF,GAAGW,EAAET,EAAED,GAAGW,EAAE,gBAAgBC,EAAE,qBAAqBC,EAAE,kBAAkBC,EAAE,kBAAkBC,EAAE,CAACC,UAAU,cAAcC,KAAK,oBAAoBC,OAAO,aAAaC,QAAQ,cAAcC,QAAQ,cAAcC,KAAK,WAAWC,KAAK,WAAWC,UAAU,aAAaC,MAAM,CAACC,UAAU,mBAAmBC,QAAQ,iBAAiBC,OAAO,aAAaC,MAAM,eAAeC,SAAS,kBAAkBC,MAAM,eAAeC,OAAO,iBAAiBC,UAAU,CAACP,UAAU,oBAAoBC,QAAQ,kBAAkBE,MAAM,gBAAgBE,MAAM,gBAAgBG,KAAK,gBAAgBF,OAAO,mBAAmBG,EAAE,CAACC,YAAYxB,EAAEyB,gBAAgBxB,EAAEyB,aAAaxB,EAAEyB,aAAaxB,EAAEyB,WAAWxB,GAAG,MAAMyB,EAAEC,OAAOC,OAAO,CAACC,UAAU,KAAKR,YAAYxB,EAAEyB,gBAAgBxB,EAAEyB,aAAaxB,EAAEyB,aAAaxB,EAAEyB,WAAWxB,EAAEb,QAAQgC,IAAIU,EAAE,gBAAgBC,EAAE,YAAYC,EAAE,UAAUC,EAAE,eAAeC,EAAE,aAAaC,EAAE,MAAMC,EAAE,WAAWC,EAAE,SAASC,EAAE,OAAOC,EAAE,WAAWC,EAAE,CAACC,SAASN,EAAEO,YAAY,wBAAwBC,aAAa,KAAKC,WAAWX,EAAEY,KAAK,QAAQC,MAAM,EAAEC,UAAS,EAAGC,gBAAe,EAAGC,cAAa,EAAGC,sBAAsB,EAAEC,oBAAoB,IAAIC,OAAM,GAAI,SAASC,EAAE7E,EAAEC,EAAE,oBAAoB,IAAID,EAAE,CAAC,GAAG,oBAAoB8E,MAAM,MAAM,IAAIA,MAAM7E,GAAG,MAAMA,CAAC,CAAC,CAAC,SAAS8E,EAAE/E,GAAG,MAAMC,EAAE,WAAW,GAAG,gBAAgB+E,QAAQ,IAAIA,OAAOC,YAAY,CAAC,GAAG,QAAQD,OAAOC,aAAa,EAAE,CAAC,IAAIjF,EAAEkF,KAAKC,MAAMF,YAAYG,QAAQH,YAAYG,OAAOC,kBAAkBrF,EAAEiF,YAAYG,OAAOC,iBAAiBL,OAAOC,YAAYE,IAAI,IAAID,KAAKC,MAAMnF,CAAC,CAAC,OAAOgF,OAAOC,YAAYE,KAAK,CAAvR,GAA2RG,SAAS,IAAI,OAAOtF,EAAEA,EAAEC,EAAEA,CAAC,CAAC,SAASsF,EAAEvF,GAAG,MAAM,SAASwF,KAAKxF,EAAE,CAAC,SAASyF,EAAEzF,EAAEC,EAAEI,GAAG,GAAGqF,MAAMC,QAAQ3F,GAAG,YAAYA,EAAE4F,SAAS5F,GAAGyF,EAAEzF,EAAEC,KAAK,MAAMK,EAAEoF,MAAMC,QAAQ1F,GAAGA,EAAEA,EAAE4F,MAAM,QAAQ,IAAItF,EAAED,EAAEwF,OAAO,KAAKvF,KAAKwF,EAAE/F,EAAEM,EAAEC,KAAKyF,EAAEhG,EAAEM,EAAEC,GAAGF,EAAE,CAAC,SAAS4F,EAAEjG,EAAEC,EAAEI,GAAG,GAAGqF,MAAMC,QAAQ3F,GAAG,YAAYA,EAAE4F,SAAS5F,GAAGiG,EAAEjG,EAAEC,EAAEI,KAAK,MAAMC,EAAEoF,MAAMC,QAAQ1F,GAAGA,EAAEA,EAAE4F,MAAM,QAAQ,IAAItF,EAAED,EAAEwF,OAAO,KAAKvF,KAAKwF,EAAE/F,EAAEM,EAAEC,KAAK2F,EAAElG,EAAEM,EAAEC,GAAGF,EAAE,CAAC,SAAS0F,EAAE/F,EAAEC,GAAG,OAAOD,EAAEmG,UAAUnG,EAAEmG,UAAUC,SAASnG,GAAGoG,EAAEpG,GAAGuF,KAAKxF,EAAEsG,UAAU,CAAC,SAASC,EAAEvG,EAAEC,GAAG,OAAOD,EAAEwG,QAAQ,wBAAuB,CAAExG,EAAEK,KAAK,MAAMC,OAAE,IAASL,EAAEI,GAAG,GAAGJ,EAAEI,GAAG,OAAOoG,OAAOnG,GAAGoG,WAAW,IAAI,SAASA,WAAW,IAAI,QAAQA,WAAW,IAAI,QAAQA,WAAW,IAAI,UAAUA,WAAW,IAAI,SAAU,GAAE,CAAC,SAASC,EAAE3G,EAAEC,GAAG,IAAII,EAAE,GAAGqF,MAAMC,QAAQ3F,IAAI,GAAGK,EAAEuG,SAASC,cAAc7G,EAAE,IAAIA,EAAE,GAAG8G,KAAKzG,EAAEyG,GAAG9G,EAAE,GAAG8G,IAAI9G,EAAE,GAAG+G,YAAY1G,EAAEiG,UAAUtG,EAAE,GAAG+G,WAAW/G,EAAE,GAAGgH,KAAK,CAAC,MAAMA,KAAK/G,GAAGD,EAAE,GAAG,GAAG0F,MAAMC,QAAQ1F,GAAG,CAAC,IAAID,GAAG,EAAE,OAAOA,EAAEC,EAAE6F,QAAQzF,EAAE4G,aAAahH,EAAED,GAAGkH,KAAKjH,EAAED,GAAGmH,MAAM,MAAM9G,EAAE4G,aAAahH,EAAEiH,KAAKjH,EAAEkH,MAAM,OAAO9G,EAAEuG,SAASC,cAAc7G,GAAGK,EAAE+G,UAAUnH,EAAE,MAAMK,EAAEsG,SAASS,yBAAyB,KAAKhH,EAAEiH,WAAW,IAAIhH,EAAEiH,OAAOlH,EAAEiH,WAAW,IAAI,OAAOjH,EAAEkH,OAAOjH,GAAGD,CAAC,CAAC,SAASgG,EAAErG,GAAG,OAAO,IAAIwH,OAAO,YAAYxH,aAAa,IAAI,CAAC,SAASgG,EAAEhG,EAAEC,EAAEI,GAAGL,EAAEmG,UAAUnG,EAAEmG,UAAUsB,IAAIxH,GAAGD,EAAEsG,UAAU,GAAGtG,EAAEsG,aAAarG,IAAIyH,OAAOrH,GAAGkF,EAAElF,IAAI2E,OAAO2C,YAAW,IAAKzB,EAAElG,EAAEC,IAAII,EAAE,CAAC,SAAS6F,EAAElG,EAAEC,EAAEI,GAAGL,EAAEmG,UAAUnG,EAAEmG,UAAUyB,OAAO3H,GAAGD,EAAEsG,UAAUtG,EAAEsG,UAAUE,QAAQH,EAAEpG,GAAG,KAAKyH,OAAOrH,GAAGkF,EAAElF,IAAI2E,OAAO2C,YAAW,IAAK3B,EAAEhG,EAAEC,IAAII,EAAE,CAAC,MAAMwH,EAAE3E,EAAED,WAAW,MAAM6E,EAAE,WAAAC,CAAY/H,GAAGI,KAAK4H,QAAQhI,EAAEI,KAAK6H,IAAI7H,KAAK8H,eAAe,CAAC,aAAAA,GAAgB,IAAIlI,EAAEC,EAAEI,EAAE,OAAOD,KAAK4H,QAAQ5D,aAAaV,GAAGzD,EAAE,GAAG4H,EAAEnG,aAAamG,EAAEnF,UAAUP,YAAYnC,EAAE2G,EAAE,CAAC,MAAM,CAACG,GAAG5D,EAAEL,YAAYkE,UAAU9G,IAAI6H,EAAExF,OAAOjC,EAAE,CAAC8B,UAAUnC,EAAEoC,QAAQpC,EAAEmI,cAAc,IAAIN,EAAEnF,UAAUN,WAAWE,MAAMtC,EAAEmI,cAAc,IAAIN,EAAEnF,UAAUJ,SAASE,MAAMxC,EAAEmI,cAAc,IAAIN,EAAEnF,UAAUF,SAASC,OAAOzC,EAAEmI,cAAc,IAAIN,EAAEnF,UAAUD,aAAaxC,EAAE,GAAG4H,EAAEnG,aAAamG,EAAE3F,MAAMC,YAAYnC,EAAE2G,EAAE,CAAC,MAAM,CAACG,GAAG5D,EAAEL,YAAYkE,UAAU9G,IAAI6H,EAAE5F,OAAO7B,EAAE,CAAC8B,UAAUnC,EAAEoC,QAAQpC,EAAEmI,cAAc,IAAIN,EAAE3F,MAAME,WAAWC,OAAOrC,EAAEmI,cAAc,IAAIN,EAAE3F,MAAMG,UAAUC,MAAMtC,EAAEmI,cAAc,IAAIN,EAAE3F,MAAMI,SAASE,MAAMxC,EAAEmI,cAAc,IAAIN,EAAE3F,MAAMM,SAASC,OAAOzC,EAAEmI,cAAc,IAAIN,EAAE3F,MAAMO,YAAYpC,EAAEiC,MAAM4B,YAAY9D,KAAK4H,QAAQ9D,YAAY7D,CAAC,EAAEyH,EAAE5F,MAAM,mBAAmB2F,EAAE3F,MAAME,WAAWyF,EAAE5F,8CAA8CiB,EAAEJ,2BAA2B+E,EAAE3F,MAAMG,iDAAiDa,EAAEH,wBAAwB8E,EAAE3F,MAAMI,mEAAmEY,EAAEF,wBAAwB6E,EAAE3F,MAAMM,SAASqF,EAAEjG,wCAAwCiG,EAAE3F,MAAMO,kBAAkBqF,EAAExF,MAAM,mBAAmBuF,EAAEnF,UAAUN,yCAAyCc,EAAEH,wBAAwB8E,EAAEnF,UAAUJ,yEAAyEuF,EAAEnF,UAAUC,gDAAgDO,EAAEF,wBAAwB6E,EAAEnF,UAAUF,SAASqF,EAAEjG,6CAA6CiG,EAAEnF,UAAUD,kBAAkB,MAAM2F,EAAE,WAAAL,GAAc3H,KAAKiI,SAAS,CAACC,IAAI,gCAAgCC,OAAO,CAACjF,EAAE,GAAGgB,MAAM,GAAGD,KAAK,MAAMmE,MAAM,CAAC,KAAK,KAAK,KAAK,MAAM,CAAC,aAAAC,CAAczI,GAAG,OAAOA,EAAEqE,KAAKrE,EAAEqE,KAAKqE,cAAc,CAACJ,IAAIlI,KAAKiI,SAASC,IAAIC,OAAO,CAACjF,EAAEtD,EAAE2I,MAAMrE,MAAMtE,EAAEsE,OAAOlE,KAAKiI,SAASE,OAAOjE,MAAMD,KAAKjE,KAAKiI,SAASG,MAAMI,SAAS5I,EAAEqE,MAAMrE,EAAEqE,KAAKjE,KAAKiI,SAASE,OAAOlE,MAAM,CAAC,cAAAwE,CAAe7I,GAAG,OAAO,IAAIA,EAAE8I,SAAShD,OAAO,GAAG9F,EAAE8I,SAASC,KAAK/I,IAAG,CAAEgJ,IAAIhJ,EAAEiJ,SAASC,YAAY,GAAGC,IAAInJ,EAAEiJ,SAASC,YAAY,GAAGrH,QAAQ,CAACqF,KAAKlH,EAAEoJ,WAAWlC,KAAKmC,SAASrJ,EAAEoJ,WAAWC,SAAStH,KAAK/B,EAAEoJ,WAAWrH,KAAKuH,MAAMtJ,EAAEoJ,WAAWE,MAAMxH,QAAQ9B,EAAEoJ,WAAWtH,SAASyH,SAAS,CAACC,UAAUxJ,EAAEoJ,WAAWlC,KAAKuC,QAAQzJ,EAAEoJ,eAAe,EAAE,MAAMM,EAAE,WAAA3B,GAAc3H,KAAKiI,SAAS,CAACC,IAAI,8CAA8CC,OAAO,CAACjF,EAAE,GAAGqG,OAAO,OAAOC,eAAe,EAAEtF,MAAM,GAAGuF,aAAa,GAAG,kBAAkB,SAAS,CAAC,aAAApB,CAAczI,GAAG,MAAM,CAACsI,IAAIlI,KAAKiI,SAASC,IAAIC,OAAO,CAACjF,EAAEtD,EAAE2I,MAAMgB,OAAOvJ,KAAKiI,SAASE,OAAOoB,OAAOC,eAAexJ,KAAKiI,SAASE,OAAOqB,eAAetF,MAAMtE,EAAEsE,OAAOlE,KAAKiI,SAASE,OAAOjE,MAAMuF,aAAa7J,EAAE6J,cAAczJ,KAAKiI,SAASE,OAAOsB,aAAa,kBAAkB7J,EAAEqE,MAAMjE,KAAKiI,SAASE,OAAO,oBAAoB,CAAC,cAAAM,CAAe7I,GAAG,OAAO,IAAIA,EAAE8F,OAAO,GAAG9F,EAAE+I,KAAK/I,IAAG,CAAEgJ,IAAIhJ,EAAEgJ,IAAIG,IAAInJ,EAAEmJ,IAAIW,KAAK9J,EAAE+J,YAAYlI,QAAQ,CAACqF,KAAKlH,EAAEgK,aAAahI,KAAKhC,EAAE6B,QAAQG,MAAM,GAAGiI,YAAYjK,EAAE6B,QAAQqI,cAAc,GAAGb,SAASrJ,EAAE6B,QAAQwH,SAAStH,KAAK/B,EAAE6B,QAAQE,MAAM/B,EAAE6B,QAAQsI,KAAKb,MAAMtJ,EAAE6B,QAAQyH,MAAMxH,QAAQ9B,EAAE6B,QAAQC,SAASyH,SAAS,CAACC,UAAUxJ,EAAEgK,aAAaP,QAAQzJ,EAAE6B,YAAY,EAAE,MAAMuI,EAAE,WAAArC,GAAc3H,KAAKiI,SAAS,CAACC,IAAI,uDAAuDC,OAAO,CAACjF,EAAE,GAAG+G,IAAI,GAAGV,OAAO,OAAOC,eAAe,EAAEtF,MAAM,GAAGuF,aAAa,GAAG,kBAAkB,SAAS,CAAC,aAAApB,CAAczI,GAAG,MAAM,CAACsI,IAAIlI,KAAKiI,SAASC,IAAIC,OAAO,CAACjF,EAAEtD,EAAE2I,MAAM0B,IAAIrK,EAAEqK,IAAIV,OAAO,OAAOC,eAAe,EAAEtF,MAAMtE,EAAEsE,OAAOlE,KAAKiI,SAASE,OAAOjE,MAAMuF,aAAa7J,EAAE6J,cAAczJ,KAAKiI,SAASE,OAAOsB,aAAa,kBAAkB7J,EAAEqE,MAAMjE,KAAKiI,SAASE,OAAO,oBAAoB,CAAC,cAAAM,CAAe7I,GAAG,OAAO,IAAIA,EAAE8F,OAAO,GAAG9F,EAAE+I,KAAK/I,IAAG,CAAEgJ,IAAIhJ,EAAEgJ,IAAIG,IAAInJ,EAAEmJ,IAAItH,QAAQ,CAACqF,KAAKlH,EAAE6B,QAAQyI,eAAe,GAAGtI,KAAKhC,EAAE6B,QAAQG,MAAM,GAAGqH,SAASrJ,EAAE6B,QAAQwH,SAAStH,KAAK/B,EAAE6B,QAAQE,MAAM/B,EAAE6B,QAAQsI,KAAKb,MAAMtJ,EAAE6B,QAAQyH,MAAMxH,QAAQ9B,EAAE6B,QAAQC,SAASyH,SAAS,CAACC,UAAUxJ,EAAEgK,aAAaP,QAAQzJ,EAAE6B,YAAY,EAAE,MAAM0I,EAAE,WAAAxC,GAAc3H,KAAKiI,SAAS,CAACC,IAAI,iDAAiDkC,aAAa,QAAQjC,OAAO,CAACI,MAAM,GAAG0B,IAAI,GAAGI,oBAAoB,EAAEC,WAAW,IAAI,CAAC,aAAAjC,CAAczI,GAAG,MAAM,CAACsI,IAAIlI,KAAKiI,SAASC,IAAIkC,aAAapK,KAAKiI,SAASmC,aAAajC,OAAO,CAACI,MAAM3I,EAAE2I,MAAM0B,IAAIrK,EAAEqK,IAAII,oBAAoBzK,EAAEyK,qBAAqBrK,KAAKiI,SAASE,OAAOkC,oBAAoBC,WAAW1K,EAAE0K,YAAYtK,KAAKiI,SAASE,OAAOmC,YAAY,CAAC,cAAA7B,CAAe7I,GAAG,MAAM2K,UAAU1K,GAAGD,EAAE4K,aAAa,GAAG,OAAO,IAAI3K,EAAE6F,OAAO,GAAG7F,EAAE8I,KAAK/I,IAAG,CAAEgJ,IAAIhJ,EAAE6K,MAAM3B,YAAY,GAAGC,IAAInJ,EAAE6K,MAAM3B,YAAY,GAAGrH,QAAQ,CAACqF,KAAKlH,EAAEkH,MAAMqC,SAAS,CAACC,UAAUxJ,EAAE6B,QAAQiJ,iBAAiBrB,QAAQzJ,EAAE6B,YAAY,EAAE,MAAMkJ,EAAE,WAAAhD,GAAc3H,KAAKiI,SAAS,CAACC,IAAI,gDAAgDC,OAAO,CAACjF,EAAE,GAAG+G,IAAI,GAAG/F,MAAM,GAAG0G,YAAY,GAAGC,OAAO,EAAEC,eAAe,GAAG,CAAC,aAAAzC,CAAczI,GAAG,MAAM,CAACsI,IAAIlI,KAAKiI,SAASC,IAAIC,OAAO,CAACjF,EAAEtD,EAAE2I,MAAM0B,IAAIrK,EAAEqK,IAAI/F,MAAMtE,EAAEsE,OAAOlE,KAAKiI,SAASE,OAAOjE,MAAM0G,YAAYhL,EAAE6J,cAAczJ,KAAKiI,SAASE,OAAOsB,cAAc,CAAC,cAAAhB,CAAe7I,GAAG,OAAO,IAAIA,EAAEmL,QAAQrF,OAAO,GAAG9F,EAAEmL,QAAQpC,KAAK/I,IAAG,CAAEgJ,IAAIhJ,EAAEiJ,SAASmC,IAAIjC,IAAInJ,EAAEiJ,SAASE,IAAItH,QAAQ,CAACqF,KAAKlH,EAAEqL,WAAWnB,cAAc,GAAGlI,KAAKhC,EAAEqL,WAAWrJ,MAAM,GAAGqH,SAASrJ,EAAEqL,WAAWhC,SAAStH,KAAK/B,EAAEqL,WAAWtJ,MAAM/B,EAAEqL,WAAWlB,KAAKb,MAAMtJ,EAAEqL,WAAW/B,MAAMxH,QAAQ9B,EAAEqL,WAAWvJ,SAASyH,SAAS,CAACC,UAAUxJ,EAAEwJ,UAAUC,QAAQzJ,EAAEqL,eAAe,EAAE,SAASC,GAAEtL,GAAG,OAAO,IAAIuL,SAAQ,CAAEtL,EAAEI,KAAK,MAAMC,EAAE,SAASN,EAAEC,GAA6D,OAA1DA,GAAG,iBAAiBA,IAAID,IAAI,MAAMwF,KAAKxF,GAAG,IAAI,KAAKwL,GAAGvL,IAAWD,CAAC,CAAhF,CAAkFA,EAAEsI,IAAItI,EAAEyL,MAAMlL,EAAE,CAACmL,OAAO,MAAMC,KAAK,OAAOC,YAAY,eAAe5L,EAAE6L,MAAM,SAAS7L,EAAEC,EAAEI,GAAG,MAAMyL,KAAKxL,GAAGsG,SAASrG,EAAEqG,SAASC,cAAc,UAAUrG,EAAE,IAAIuL,KAAKC,MAAMD,KAAKE,SAAS/G,KAAKC,SAAS5E,EAAE0G,aAAa,MAAM,GAAGjH,GAAGA,EAAEkM,QAAQ,KAAK,EAAE,IAAI,KAAKjM,KAAKO,KAAKwE,OAAOxE,GAAGR,IAAIgF,OAAOxE,QAAG,EAAOmH,YAAW,IAAKrH,EAAE6L,YAAY5L,IAAI,GAAGF,EAAEL,EAAC,EAAGM,EAAEiH,OAAOhH,EAAE,CAA3Q,CAA6QD,EAAEN,EAAEwK,aAAavK,GAAGmM,MAAM9L,EAAEC,GAAG8L,MAAMrM,GAAGA,EAAEsM,SAASD,KAAKpM,GAAGsM,MAAMlM,EAAG,GAAE,CAAC,SAASmL,GAAGxL,GAAG,OAAOmD,OAAOqJ,KAAKxM,GAAGyM,QAAO,CAAExM,EAAEI,KAAKJ,EAAEyM,KAAK,iBAAiB1M,EAAEK,GAAGmL,GAAGxL,EAAEK,IAAI,GAAGsM,mBAAmBtM,MAAMsM,mBAAmB3M,EAAEK,OAAOJ,IAAI,IAAI2M,KAAK,IAAI,CAAC,MAAMC,GAAG3J,EAAED,WAAW,MAAM6J,GAAG,WAAA/E,CAAY/H,EAAEC,GAAGG,KAAK2M,KAAK/M,EAAEI,KAAK4M,UAAUjI,EAAE,mBAAmB3E,KAAK6M,MAAM,IAAIjM,EAAEJ,QAAQ,CAACsG,KAAK9G,KAAK4M,UAAUE,OAAO,IAAIjM,EAAEL,UAAUR,KAAK4H,QAAQhI,EAAEgI,QAAQ5H,KAAK4H,QAAQ/D,SAAS,iBAAiB7D,KAAK4H,QAAQ/D,SAAS7D,KAAK4H,QAAQ/D,SAASyE,cAActI,KAAK4H,QAAQ/D,SAAS7D,KAAK6D,SAAS7D,KAAK+M,cAAc/M,KAAK6H,IAAIhI,EAAEG,KAAKgN,UAAU,GAAGhN,KAAK+B,UAAU/B,KAAK6H,IAAI9F,UAAU/B,KAAKiN,oBAAoB,CAACC,UAAS,GAAIlN,KAAKmN,cAAc,CAAC,YAAAA,GAAe,IAAIvN,EAAEC,EAAE,MAAMI,EAAEL,IAAIA,EAAEwN,kBAAkBzH,EAAE3F,KAAK6H,IAAI7F,QAAQyK,GAAG3K,MAAMK,UAAUnC,KAAKqN,WAAWrN,KAAKsN,QAAO,EAAGtN,KAAK6H,IAAI3F,MAAMqL,iBAAiB,YAAY3N,IAAI,MAAMC,EAAED,EAAE4N,OAAOzG,MAAMO,QAAQ1H,EAAEqK,IAAI,UAAUrK,EAAEqK,IAAIrK,EAAE6N,MAAM,KAAK7N,EAAE6N,MAAQ7N,EAAE8N,SAAS,KAAK9N,EAAE8N,WAAW9N,EAAEwE,iBAAiBpE,KAAKuI,MAAM1I,GAAI,IAAE,GAAIG,KAAK6H,IAAI3F,MAAMqL,iBAAiB,SAAS3N,GAAGA,EAAEwN,oBAAmB,GAAIpN,KAAK6H,IAAI3F,MAAMqL,iBAAiB,SAAStN,IAAI,MAAMC,EAAED,EAAEuN,OAAOzG,MAAMO,OAAO,IAAIpH,EAAEwF,OAAOG,EAAE7F,KAAK6H,IAAIzF,MAAMqK,GAAGjL,QAAQ6D,EAAErF,KAAK6H,IAAIzF,MAAMqK,GAAGjL,QAAQxB,KAAK4H,QAAQvD,cAAcnE,IAAIL,IAAIA,EAAEK,EAAEN,GAAG+N,aAAa/N,GAAGA,EAAE2H,YAAW,KAAMrH,EAAEwF,QAAQ1F,KAAK4H,QAAQtD,uBAAuBtE,KAAKuI,MAAMrI,EAAG,GAAEF,KAAK4H,QAAQrD,qBAAsB,IAAE,GAAIvE,KAAK6H,IAAIzF,MAAMmL,iBAAiB,SAAS3N,IAAII,KAAK6H,IAAI3F,MAAM0L,QAAQ5N,KAAK6H,IAAI3F,MAAM6E,MAAM,GAAG/G,KAAKgN,UAAU,GAAG3H,EAAErF,KAAK6H,IAAIzF,MAAMqK,GAAGjL,QAAQxB,KAAK6N,cAAe,IAAE,GAAI7N,KAAK4H,QAAQ5D,aAAaX,GAAGrD,KAAK6H,IAAI5F,OAAOsL,iBAAiB,QAAQtN,GAAE,EAAG,CAAC,KAAAsI,CAAM3I,GAAGI,KAAK6D,WAAW7D,KAAK6D,SAAS7D,KAAK+M,eAAe,MAAMlN,EAAEG,KAAK6D,SAASwE,cAAc,CAACE,MAAM3I,EAAEqK,IAAIjK,KAAK4H,QAAQqC,IAAIhG,KAAKjE,KAAK4H,QAAQ3D,KAAKwF,aAAazJ,KAAK4H,QAAQ6B,aAAavF,MAAMlE,KAAK4H,QAAQ1D,QAAQ,GAAGlE,KAAKgN,YAAYpN,GAAGI,KAAK6H,IAAIxF,OAAOyL,WAAW,OAAO9N,KAAKgN,UAAUpN,EAAEI,KAAK6N,eAAexI,EAAErF,KAAK6H,IAAIzF,MAAMqK,GAAGlL,MAAM,MAAMtB,EAAE,CAACiI,IAAIrI,EAAEqI,IAAImD,KAAKxL,EAAEsI,QAAQtI,EAAEuK,eAAenK,EAAEwL,OAAM,EAAGxL,EAAEmK,aAAavK,EAAEuK,cAAcc,GAAEjL,GAAGgM,MAAMrM,IAAII,KAAK4H,QAAQpD,OAAOuJ,EAAQC,KAAKpO,GAAGiG,EAAE7F,KAAK6H,IAAIzF,MAAMqK,GAAGlL,MAAM,MAAM1B,EAAEG,KAAK6D,SAAS4E,eAAe7I,GAAGC,IAAIG,KAAKiO,WAAWpO,GAAGG,KAAKkO,iBAAkB,IAAG/B,OAAOvM,IAAIiG,EAAE7F,KAAK6H,IAAIzF,MAAMqK,GAAGlL,MAAM,MAAM1B,EAAE0G,EAAE,KAAK,2CAA2CvG,KAAK6H,IAAIxF,OAAO8E,OAAOtH,EAAG,GAAE,CAAC,UAAAoO,CAAWrO,GAAG,MAAMC,EAAEG,KAAK6H,IAAIxF,OAAOzC,EAAE4F,SAAS5F,IAAI,IAAIK,EAA+BA,EAA1BD,KAAK4H,QAAQ/D,WAAWN,EAAI,gBAAgBkJ,GAAG7K,SAAShC,EAAE6B,QAAQqF,cAAqB9G,KAAKmO,gBAAgBvO,EAAE6B,SAAS,MAAMvB,EAAEqG,EAAE,KAAK,eAAetG,SAASC,EAAEqN,iBAAiB,SAAS1N,IAAIA,EAAEuE,iBAAiBpE,KAAKoO,OAAOxO,EAAEK,EAAEL,EAAE6B,QAAQ7B,EAAEuJ,SAAU,IAAE,GAAItJ,EAAEsH,OAAOjH,EAAG,GAAE,CAAC,MAAAkO,CAAOxO,EAAEC,EAAEI,EAAEC,GAAG,MAAMC,EAAEH,KAAK2M,KAAK0B,SAASjO,EAAE,CAACkO,OAAOC,WAAW3O,EAAEgJ,KAAK0F,OAAOC,WAAW3O,EAAEmJ,MAAM1I,EAAEF,EAAEqO,UAAUC,gBAAgBnO,EAAEU,EAAER,QAAQkO,UAAUtO,EAAE,YAAYC,GAAG,IAAIqJ,KAAKnJ,GAAGX,EAAEW,IAAIA,EAAES,EAAER,QAAQmO,gBAAgB,CAACpO,EAAE,GAAGA,EAAE,GAAGA,EAAE,GAAGA,EAAE,IAAI,YAAYF,IAAI,MAAMI,EAAE,CAAC2I,UAAUvJ,EAAEwJ,QAAQpJ,EAAEkJ,SAASjJ,GAAG,IAAG,IAAKF,KAAK4H,QAAQzD,UAAUnE,KAAK6N,cAAa,IAAI,IAAK7N,KAAK4H,QAAQxD,eAAepE,KAAK2M,KAAKiC,cAAc,CAACC,KAAK3L,EAAEzB,QAAQhB,EAAEqO,WAAWxO,EAAEoJ,KAAKnJ,EAAEwO,MAAMnP,QAAQ,CAACW,EAAEJ,EAAEqO,UAAUQ,IAAIzO,EAAE,CAAC0O,SAAS,MAAM,SAASrP,EAAEC,EAAEI,EAAE,IAAIC,EAAE,mBAAmBN,EAAE4O,UAAUU,QAAQ,CAACD,SAAShP,EAAEkP,WAAWjP,GAAG,CAAC+O,SAAShP,EAAEmP,OAAOvP,GAAG,CAA5G,CAA8GM,EAAEG,GAAG,MAAMT,EAAEG,KAAKqP,cAAc/O,EAAEG,GAAGT,KAAK2M,KAAKiC,cAAc,CAACC,KAAK3L,EAAEzB,QAAQhB,EAAE6O,QAAQzP,EAAEiP,WAAWxO,EAAEoJ,KAAKnJ,EAAEwO,MAAMnP,GAAG,CAAC,CAAC,aAAAyP,CAAczP,GAAG,MAAMC,EAAE,IAAIkB,EAAEP,QAAQ,IAAIM,EAAEN,QAAQZ,IAAI,OAAOI,KAAKuP,WAAW1P,EAAE2P,SAASxP,KAAK4H,QAAQ7D,cAAclE,EAAE4P,MAAM9K,EAAE,iBAAiB3E,KAAK0P,YAAYC,WAAW9P,GAAGA,CAAC,CAAC,eAAAsO,CAAgBvO,GAAG,MAAMC,EAAE,GAAG,OAAOD,EAAEkH,MAAMjH,EAAEyM,KAAK,CAAC,gBAAgBG,GAAG7K,KAAK,mBAAmB4K,KAAK,MAAM5M,EAAEgC,MAAMhC,EAAEgQ,UAAUhQ,EAAEkK,eAAejK,EAAEyM,KAAK,CAAC,gBAAgBG,GAAG7K,KAAK,6CAA6C4K,KAAK,MAAM5M,EAAE+B,MAAM/B,EAAEmK,MAAMnK,EAAEiQ,UAAUhQ,EAAEyM,KAAK,CAAC,gBAAgBG,GAAG9K,KAAK,+CAA+C6K,KAAK,MAAM5M,EAAEsJ,OAAOtJ,EAAE8B,UAAU7B,EAAEyM,KAAK,CAAC,gBAAgBG,GAAG/K,QAAQ,8BAA8B8K,KAAK,KAAKrG,EAAEtG,EAAE2M,KAAK,QAAQ5M,EAAE,CAAC,WAAAmN,GAAc,OAAO/M,KAAK4H,QAAQ/D,UAAU,KAAKN,EAAE,OAAO,IAAI+F,EAAE,KAAK9F,EAAE,OAAO,IAAIwG,EAAE,KAAKvG,EAAE,OAAO,IAAIuE,EAAE,KAAKtE,EAAE,OAAO,IAAIyG,EAAE,KAAKxG,EAAE,OAAO,IAAIgH,EAAE,QAAQ,OAAO3K,KAAK4H,QAAQ/D,SAAS,CAAC,MAAAyJ,GAASzH,EAAE7F,KAAK6H,IAAI3F,MAAMuK,GAAGlL,MAAM8D,EAAErF,KAAK6H,IAAI7F,QAAQyK,GAAG3K,MAAMK,UAAUyC,OAAO2C,YAAW,IAAKvH,KAAK6H,IAAI3F,MAAM0L,SAAS,KAAK5N,KAAKkO,gBAAgB,CAAC,QAAAb,GAAWrN,KAAK6H,IAAI3F,MAAM6E,MAAM,GAAG/G,KAAK6H,IAAI3F,MAAM4N,OAAOzK,EAAErF,KAAK6H,IAAIzF,MAAMqK,GAAGjL,QAAQqE,EAAE7F,KAAK6H,IAAI7F,QAAQyK,GAAG3K,MAAMK,UAAUnC,KAAK6N,cAAc,CAAC,cAAAK,GAAiB,GAAGlO,KAAKiN,oBAAoBC,SAAS,OAAO,MAAMtN,EAAEI,KAAKH,EAAEG,KAAK2M,KAAK0B,SAAS0B,mBAAmB/P,KAAKiN,oBAAoBC,UAAS,EAAGrN,EAAE0N,iBAAiB,QAAQ,CAAC,WAAAyC,CAAY/P,GAAGL,EAAEiO,cAAa,GAAIhO,EAAEoQ,oBAAoBhQ,EAAE4O,KAAK7O,MAAK,GAAIJ,EAAEqN,oBAAoBC,UAAS,CAAE,IAAG,EAAG,CAAC,YAAAW,CAAajO,GAAGA,GAAGI,KAAK4H,QAAQ5D,aAAaX,EAAErD,KAAKqN,WAAW,SAASzN,GAAG,KAAKA,EAAEkO,YAAYlO,EAAEkO,WAAWtG,QAAQ,CAApD,CAAsDxH,KAAK6H,IAAIxF,OAAO,CAAC,SAAAqN,GAAY,OAAO1P,KAAK6M,MAAM6C,WAAW,CAAC,QAAAH,GAAW,IAAI3P,GAAE,EAAG,MAAMC,EAAEG,KAAK2M,KAAK0B,SAASxO,EAAEqQ,YAAY1K,SAAS3F,IAAIA,IAAIG,KAAK6M,QAAQjN,GAAE,EAAI,IAAGA,GAAGC,EAAE0P,SAASvP,KAAK6M,MAAM,EAAE,MAAMsD,WAAW1P,EAAED,QAAQ,WAAAmH,CAAY/H,EAAEuD,EAAEtD,EAAE,CAAC,GAAG,IAAII,EAAEC,EAAEuE,EAAE,iBAAiB7E,EAAE,mCAAmC6E,EAAE7E,IAAIuD,GAAGvD,IAAIwD,EAAE,4BAA4BD,iBAAiBC,OAAOqB,EAAE,iBAAiB5E,EAAE,sCAAsC+D,EAAEG,aAAa,CAAC,IAAIrD,EAAEF,QAAQ,CAAC4P,MAAM,IAAIzP,EAAEH,QAAQ,CAAC6P,MAAM,GAAGC,IAAI,yEAAyE,MAAMnQ,EAAE,IAAIuH,EAAE7H,GAAG,GAAGD,IAAIuD,IAAIlD,EAAEE,EAAE0H,IAAI9F,WAAWwO,MAAM,CAACC,QAAQvQ,MAAMD,gBAAgBmQ,IAAI,OAAO,IAAIA,GAAGnQ,KAAK4H,QAAQ,SAAShI,EAAEC,GAAG,MAAMI,EAAE,CAAC,EAAE,OAAO8C,OAAOqJ,KAAKxM,GAAG4F,SAAS3F,IAAIkD,OAAO0N,UAAUC,eAAeC,KAAK/Q,EAAEC,KAAKI,EAAEJ,GAAGD,EAAEC,GAAI,IAAGkD,OAAOqJ,KAAKvM,GAAG2F,SAAS5F,IAAImD,OAAO0N,UAAUC,eAAeC,KAAK9Q,EAAED,KAAKK,EAAEL,GAAGC,EAAED,GAAI,IAAGK,CAAC,CAA7M,CAA+M2D,EAAE/D,GAAGG,KAAK+B,UAAU9B,EAAEL,IAAIuD,IAAIjD,EAAE,IAAIwM,GAAG1M,KAAKG,EAAE0H,KAAK7H,KAAK6M,MAAM3M,EAAE2M,MAAM,CAAC,QAAA+D,GAAW,OAAO5Q,KAAK6M,KAAK,CAAC,SAAA6C,GAAY,OAAO1P,KAAK4Q,WAAWlB,WAAW,CAAC,WAAAmB,CAAYjR,GAAGI,KAAK4H,QAAQ/D,SAASjE,CAAC,CAAC,cAAAkR,CAAelR,GAAGI,KAAK4H,QAAQqC,IAAIrK,CAAC,EAAE,OAAOuQ,EAAG,G,wECNx2e,MAAMY,EACpBpJ,WAAAA,CAAYO,EAAK8I,GAAU,GAC1BhR,KAAKkI,IAAMA,EACXlI,KAAKgR,QAAUA,CAChB,CAEA3I,aAAAA,CAAc4I,GACb,MAAO,CACN/I,IAAKlI,KAAKkI,IACVC,OAAQ,CACPjF,EAAG+N,EAAI1I,MACPgB,OAAQ,OACRrF,MAAO,GACP,kBAAmB,KACnBgN,gBAAiBlR,KAAKgR,QAAU,EAAI,EACpCG,kBAAmB,MAGtB,CAEA1I,cAAAA,CAAesC,GACd,OAAuB,IAAnBA,EAAQrF,OACJ,GAEDqF,EACLqG,QAAO/O,GAAU,CAAC,WAAY,aAAc,UAAW,UAAW,QAAS,QAAS,YAAYmG,SAASnG,EAAOgP,SAChH1I,KAAItG,IAAU,CACduG,IAAKvG,EAAOuG,IACZG,IAAK1G,EAAO0G,IACZW,KAAMrH,EAAOsH,YACblI,QAAS,CACRqF,KAAMzE,EAAOuH,cAEdT,SAAU,CACTC,UAAW/G,EAAOuH,aAClBP,QAAShH,EAAOZ,QAChBuP,QAAS3O,EAAO2O,YAGpB,ECnCD,SACAM,QAAA,CACAC,WAAAA,CAAAC,EAAAR,GAAA,GACA,SAAAS,QAAAC,SACA,OAEA,MAAA9J,EAAA,CACA/D,SAAA,IAAAkN,EAAA,KAAAU,QAAAC,SAAAV,GACAlN,YAAA,iBACAK,UAAA,EACAC,gBAAA,GAEAsN,EAAA,IAAAC,IAAA,aAAA/J,GACA8J,EAAAE,GAAA,iBAAAC,IACA,GAAAb,EACAQ,EAAAK,EAAA9C,OAAA5F,UAAA6H,QAAAa,QAEA,GAAAA,EAAA9C,MAAArF,KAAA,CACA,IAAAA,EAAAmI,EAAA9C,MAAArF,KAAAf,KAAArI,GAAAiO,WAAAjO,KACAwR,EAAA,CACAC,KAAArI,EAAA,GACAsI,KAAAtI,EAAA,GACAuI,MAAAvI,EAAA,GACAwI,MAAAxI,EAAA,IAEA8H,EAAAM,EAAAD,EACA,MAEAL,EAAA,KAAAK,EACA,IAEA,KAAAlJ,IAAAwJ,WAAAT,EACA,ICpCqQ,I,ICAjQU,EAAQC,E,WASRC,GAAY,OACd,EACAF,EACAC,GACA,EACA,KACA,KACA,MAIF,QAAeC,EAAiB,O,gDCpBhC,IAAIF,EAAS,WAAkB,IAAIG,EAAIvS,KAAKwS,EAAGD,EAAIE,MAAMD,GAAG,OAAQD,EAAIG,MAAMhN,OAAS,EAAG8M,EAAG,MAAM,CAACG,YAAY,mCAAmCtB,MAAM,CAACuB,QAASL,EAAIG,MAAMhN,OAAS,GAAGkM,GAAG,CAAC,MAAQW,EAAIM,SAAS,CAACN,EAAIO,GAAG,IAAIP,EAAIQ,GAAGR,EAAIS,SAAS,OAAOT,EAAIU,IAC7P,EACIZ,EAAkB,G,WCOtB,SACAvL,KAAA,cACAoM,OAAA,CACAC,EAAAA,GAEA9H,IAAAA,GACA,OACA/K,EAAA,EAEA,EACA8S,SAAA,CACAV,KAAAA,GACA,OAAApN,MAAAC,QAAA,KAAA8N,MACA,KAAAA,KAEA,uBAAAA,MAAA,KAAAA,KAAA3N,OAAA,EACA,MAAA2N,MAEA,EACA,EACAL,OAAAA,GACA,gBAAAN,MAAAhN,OACA,GAGA,KAAAgN,MAAA,KAAApS,EAAA,KAAA+S,KAAA3N,OAEA,GAEA4N,MAAA,CACAD,KAAA,CACAA,KAAA,CACAhN,OACAf,OAEA9E,QAAA,KAGA8Q,QAAA,CACAuB,MAAAA,GACA,KAAAvS,GACA,IClDmQ,I,eCQ/PgS,GAAY,OACd,EACAF,EACAC,GACA,EACA,KACA,WACA,MAIF,QAAeC,EAAiB,O,8DCnBhC,IAAIF,EAAS,WAAkB,IAAIG,EAAIvS,KAAKwS,EAAGD,EAAIE,MAAMD,GAAG,OAAOA,EAAG,aAAa,CAACG,YAAY,gBAAgBY,MAAM,CAAC,WAAa,KAAK,CAACf,EAAG,OAAO,CAACe,MAAM,CAAC,GAAK,QAAQ,CAACf,EAAG,MAAM,CAACG,YAAY,aAAaY,MAAM,CAAC,GAAKhB,EAAI7L,KAAK,CAAC8L,EAAG,kBAAkB,CAACgB,IAAI,WAAWD,MAAM,CAAC,IAAMhB,EAAI5J,OAAO6J,EAAG,sBAAsB,CAACe,MAAM,CAAC,IAAMhB,EAAI5J,OAAQ4J,EAAIkB,UAAWjB,EAAG,cAAc,CAACe,MAAM,CAAC,KAAOhB,EAAImB,mBAAmBnB,EAAIU,KAAMV,EAAIkB,YAAclB,EAAIoB,SAAUnB,EAAG,iBAAiB,CAACe,MAAM,CAAC,MAAQhB,EAAIqB,MAAM,gBAAkBrB,EAAIsB,iBAAiBjC,GAAG,CAAC,OAASW,EAAIuB,sBAAsBvB,EAAIU,KAAMV,EAAIwB,QAASvB,EAAG,MAAM,CAACG,YAAY,eAAe,CAACH,EAAG,IAAI,CAACG,YAAY,2BAA2BH,EAAG,OAAO,CAACD,EAAIO,GAAG,sBAAsBP,EAAIU,MAAM,KAAMV,EAAIyB,MAAOxB,EAAG,OAAO,CAACe,MAAM,CAAC,GAAK,QAAQ,KAAO,KAAK,CAACf,EAAG,eAAeD,EAAI0B,GAAG,CAACV,MAAM,CAAC,OAAS,MAAM,eAAehB,EAAIyB,OAAM,KAAS,GAAGzB,EAAIU,MAAM,EACz3B,EACIZ,EAAkB,G,uFCFlBD,EAAS,WAAkB,IAAIG,EAAIvS,KAAKwS,EAAGD,EAAIE,MAAMD,GAAG,OAAOA,EAAG,MAAM,CAAC0B,WAAW,CAAC,CAACpN,KAAK,OAAOqN,QAAQ,SAASpN,MAAOwL,EAAI6B,SAAS1O,OAAS,EAAG2O,WAAW,wBAAwB1B,YAAY,uCAAuC,CAACH,EAAG,QAAQ,CAACA,EAAG,QAAQ,CAACA,EAAG,KAAK,CAAGD,EAAI+B,OAAqC/B,EAAIU,KAAjCT,EAAG,KAAK,CAACD,EAAIO,GAAG,aAAuBP,EAAIgC,UAAW/B,EAAG,KAAK,CAACD,EAAIO,GAAG,UAAUP,EAAIU,KAAKT,EAAG,KAAK,CAACD,EAAIO,GAAG,SAASN,EAAG,KAAK,CAACD,EAAIO,GAAG,aAAaN,EAAG,QAAQD,EAAIiC,GAAIjC,EAAI6B,UAAU,SAASK,EAAQnU,GAAG,OAAOkS,EAAG,KAAK,CAACvI,IAAI3J,GAAG,CAAGiS,EAAI+B,OAAiD/B,EAAIU,KAA7CT,EAAG,KAAK,CAACD,EAAIO,GAAGP,EAAIQ,GAAGR,EAAImC,OAAOpU,OAAiBiS,EAAIgC,UAAW/B,EAAG,KAAK,CAACA,EAAG,SAAS,CAAC0B,WAAW,CAAC,CAACpN,KAAK,QAAQqN,QAAQ,iBAAiBpN,MAAO0N,EAAQ/N,GAAI2N,WAAW,aAAaM,UAAU,CAAC,QAAS,KAAQ/C,GAAG,CAAC,OAAS,SAASgD,GAAQ,IAAIC,EAAgBvP,MAAMmL,UAAUW,OAAOT,KAAKiE,EAAOpH,OAAO5F,SAAQ,SAASxH,GAAG,OAAOA,EAAE0U,QAAQ,IAAGnM,KAAI,SAASvI,GAAG,IAAI2U,EAAM,WAAY3U,EAAIA,EAAE4U,OAAS5U,EAAE2G,MAAM,OAAOwL,EAAI0C,GAAGF,EAAI,IAAIxC,EAAI2C,KAAKT,EAAS,KAAMG,EAAOpH,OAAO2H,SAAWN,EAAgBA,EAAc,GAAG,IAAItC,EAAIiC,GAAIjC,EAAIqB,OAAO,SAASwB,GAAM,OAAO5C,EAAG,SAAS,CAACvI,IAAImL,EAAK1O,GAAG2O,SAAS,CAAC,MAAQD,EAAK1O,KAAK,CAAC6L,EAAIO,GAAGP,EAAIQ,GAAGqC,EAAKtO,MAAQsO,EAAK1O,MAAM,IAAG,KAAK6L,EAAIU,KAAKT,EAAG,KAAK,CAACA,EAAG,QAAQ,CAAC0B,WAAW,CAAC,CAACpN,KAAK,QAAQqN,QAAQ,iBAAiBpN,MAAO0N,EAAQa,IAAKjB,WAAW,cAAcM,UAAU,CAAC,QAAS,KAAQpB,MAAM,CAAC,KAAO,SAAS,SAAW,IAAI8B,SAAS,CAAC,MAASZ,EAAQa,KAAM1D,GAAG,CAAC,MAAQ,SAASgD,GAAWA,EAAOpH,OAAO+H,WAAiBhD,EAAI2C,KAAKT,EAAS,MAAOlC,EAAI0C,GAAGL,EAAOpH,OAAOzG,OAAO,EAAE,KAAO,SAAS6N,GAAQ,OAAOrC,EAAIiD,cAAc,OAAOhD,EAAG,KAAK,CAACA,EAAG,QAAQ,CAAC0B,WAAW,CAAC,CAACpN,KAAK,QAAQqN,QAAQ,iBAAiBpN,MAAO0N,EAAQgB,IAAKpB,WAAW,cAAcM,UAAU,CAAC,QAAS,KAAQpB,MAAM,CAAC,KAAO,SAAS,SAAW,IAAI8B,SAAS,CAAC,MAASZ,EAAQgB,KAAM7D,GAAG,CAAC,MAAQ,SAASgD,GAAWA,EAAOpH,OAAO+H,WAAiBhD,EAAI2C,KAAKT,EAAS,MAAOlC,EAAI0C,GAAGL,EAAOpH,OAAOzG,OAAO,EAAE,KAAO,SAAS6N,GAAQ,OAAOrC,EAAIiD,cAAc,QAAQ,IAAG,GAAIjD,EAAIgC,UAAW/B,EAAG,QAAQ,CAACA,EAAG,KAAK,CAACA,EAAG,KAAK,CAACe,MAAM,CAAC,QAAUhB,EAAImD,OAAO,CAAClD,EAAG,QAAQ,CAAC0B,WAAW,CAAC,CAACpN,KAAK,QAAQqN,QAAQ,UAAUpN,MAAOwL,EAAI+B,OAAQD,WAAW,WAAWd,MAAM,CAAC,KAAO,YAAY8B,SAAS,CAAC,QAAU/P,MAAMC,QAAQgN,EAAI+B,QAAQ/B,EAAIoD,GAAGpD,EAAI+B,OAAO,OAAO,EAAG/B,EAAI+B,QAAS1C,GAAG,CAAC,OAAS,SAASgD,GAAQ,IAAIgB,EAAIrD,EAAI+B,OAAOuB,EAAKjB,EAAOpH,OAAOsI,IAAID,EAAKE,QAAuB,GAAGzQ,MAAMC,QAAQqQ,GAAK,CAAC,IAAII,EAAI,KAAKC,EAAI1D,EAAIoD,GAAGC,EAAII,GAAQH,EAAKE,QAASE,EAAI,IAAI1D,EAAI+B,OAAOsB,EAAIM,OAAO,CAACF,KAAYC,GAAK,IAAI1D,EAAI+B,OAAOsB,EAAIO,MAAM,EAAEF,GAAKC,OAAON,EAAIO,MAAMF,EAAI,IAAK,MAAM1D,EAAI+B,OAAOwB,CAAI,KAAKvD,EAAIO,GAAG,qBAAqBP,EAAIU,QAC7hF,EACIZ,EAAkB,G,WCmCtB,SACAvL,KAAA,iBACAoM,OAAA,CACAC,EAAAA,GAEAG,MAAA,CACAM,MAAA,CACA/E,KAAAvJ,MACA9E,QAAAA,IAAA,IAEAqT,gBAAA,CACAhF,KAAAvJ,MACA9E,QAAAA,IAAA,KAGA4S,SAAA,CACAmB,SAAAA,GACA,YAAAX,MAAAlO,OAAA,CACA,EACAgQ,IAAAA,GACA,YAAApB,OACA,KAAAC,UAAA,IAEA,CACA,EACAG,MAAAA,GACA,YAAAJ,OAAA,oCACA,GAEAjJ,IAAAA,GACA,OACA+I,SAAA,KAAAP,gBACAS,OAAA,SAAAT,gBAAAnO,QAAA,SAAAkO,MAAAlO,OAEA,EACA0Q,MAAA,CACAxC,MAAA,CACAyC,WAAA,EACAC,OAAAA,GACA,SAAA1C,MAAAlO,SACA,KAAA4O,QAAA,GAEA,KAAAiC,gBACA,GAEAjC,MAAAA,GACA,KAAAiC,iBACA,KAAAC,MACA,EACApC,SAAA,CACAqC,MAAA,EACAH,OAAAA,GACA,KAAAE,MACA,IAGAlF,QAAA,CACAoF,OAAAA,CAAA3P,GACA,wBAAAA,CACA,EACAwP,cAAAA,GACA,KAAA1C,gBAAAnO,OAAA,GACA,KAAA0O,SAAA,KAAAP,gBACA,SAAAA,gBAAAnO,SACA,KAAA4O,QAAA,IAIA,KAAAF,SAAA,KAAAR,MACAuC,MAAA,OAAA7B,OAAA,KACA3L,KAAAyM,GAAArS,OAAA4T,OAAA,GAAAvB,KAIA,SAAAhB,SAAA1O,QACA,KAAA0O,SAAA9H,KAAAvJ,OAAA4T,OAAA,QAAAvC,SAAA,IAEA,EACAoC,IAAAA,GACA,KAAApC,SAAAhD,QAAA3Q,GAAA,KAAAiW,QAAAjW,EAAA6U,MAAA,KAAAoB,QAAAjW,EAAAgV,OAAA/P,OAAA,GACA,KAAAkR,MAAA,yBAAAxC,SAEA,ICvHsQ,I,eCQlQ9B,GAAY,OACd,EACA,EACA,GACA,EACA,KACA,KACA,MAIF,QAAeA,EAAiB,Q,yDCYzB,SAASuE,EAAiBC,EAAoB/P,EAAOgQ,GAC1D,MAAMC,GAAiB,UAEvB,OADAA,EAAeC,MAAQH,EAAmBG,OACnC,QACLlQ,EACAgQ,EACAC,EACAF,EAEJ,CCsDA,SAASI,EAAWD,EAAOE,GACzB,MAAMC,EAAe,wBACF,KAAWC,oCACb,KAASC,sCACR,KAASC,2CACT,KAASC,4CACT,KAASC,0CACT,KAASC,wCACT,KAASC,wCACT,KAASC,yHAMJ,KAAWP,qDAE1B,KAASK,sBAAsB,KAASD,wBAAwB,KAASF,qDACzE,KAASI,sBAAsB,KAASF,wBAAwB,KAASD,2EAE7D,KAASF,yBAAyB,KAAWD,kBAAkB,KAASO,0BAOtFC,EAAU,KACX,UACHC,kBAAkB,EAClBX,UAAWA,EACXF,MAAOA,GAGHc,EAAW,GAEjB,QAAoBC,IAAhBf,EAAMgB,MAAqB,CAC7B,MAAMA,EAAQpB,EAAiBgB,EAASZ,EAAMgB,MAAO,MACrDF,EAASzL,KAAK,WAAW2L,KAC3B,CAEA,QAAuBD,IAAnBf,EAAMiB,SAAwB,CAChC,MAAMA,EAAWrB,EAAiBgB,EAASZ,EAAMiB,SAAU,MAC3DH,EAASzL,KACP,sBAAsB4L,2BAAkCA,uDAE5D,CAEA,QAAuBF,IAAnBf,EAAMkB,SAAwB,CAChC,MAAMA,EAAWtB,EAAiBgB,EAASZ,EAAMkB,SAAU,MAC3DJ,EAASzL,KACP,sBAAsB6L,mEAE1B,CAEA,QAAyBH,IAArBf,EAAMmB,WAA0B,CAClC,MAAMA,EAAavB,EAAiBgB,EAASZ,EAAMmB,WAAY,MAC/DL,EAASzL,KAAK,8BACS8L,oZAWzB,CAEA,QAAoBJ,IAAhBf,EAAMoB,MAAqB,CAC7B,MAAMA,EAAQxB,EAAiBgB,EAASZ,EAAMoB,MAAO,MACrDN,EAASzL,KAAK,yCAAyC+L,OACzD,CAEA,QAAyBL,IAArBf,EAAMqB,WAA0B,CAClC,MAAMA,EAAazB,EAAiBgB,EAASZ,EAAMqB,WAAY,MAC/DP,EAASzL,KACP,iCAAiCgM,gDAErC,CAGA,MAAMC,EAAW,CAAC,EAEZC,EAAezV,OAAOqJ,KAAKyL,EAAQY,WAAW/S,OACpD,GAAI8S,EAAe,IAAMvB,EAAMwB,UAC7B,MAAM,IAAI/T,MACR,wCAAwCmT,EAAQY,cAIpD,IAAK,IAAInY,EAAI,EAAGA,EAAIkY,IAAgBlY,EAAG,CACrC,MAAMoY,EAAWb,EAAQY,UAAU1V,OAAOqJ,KAAKyL,EAAQY,WAAWnY,IAClE,KAAMoY,EAAS5R,QAAQmQ,EAAMwB,WAC3B,MAAM,IAAI/T,MAAM,YAAYgU,EAAS5R,4BAEvC,MAAM6R,GAAc,QAAuBD,EAAS5R,MACpDyR,EAASI,GAAe,WACtB,IAAI5R,EAAQkQ,EAAMwB,UAAUC,EAAS5R,MAIrC,MAHqB,kBAAVC,IACTA,GAAQ,QAA0BA,SAEnBiR,IAAVjR,EAAsBA,GAAS,OACxC,CACF,CAEA,MAAM6R,EAAsB7V,OAAOqJ,KAAKmM,GAAU5P,KAAI,SAAU7B,GAC9D,MAAO,iBAAiBA,IAC1B,IAEM+R,EAAelN,KAAKmN,KAAK3B,EAAY,GAC3CyB,EAAoBtM,KAClB,qBAAqB,KAASyM,sBAAsBF,OAGlDhB,EAAQmB,iBACVJ,EAAoBtM,KAClB,qBAAqB,QAAyBuL,EAAQmB,gBAAgBtT,YAI1E,MAAMuT,EAAqBlW,OAAOqJ,KAAKyL,EAAQqB,WAAWvQ,KACxD,SAAU7B,GACR,OAAO+Q,EAAQqB,UAAUpS,EAC3B,IAGIqS,EAAiB,gNASN,KAASC,qCACR,KAASC,wCACT,KAAS9B,2CACT,KAASC,4CACT,KAAS8B,kCACT,KAASC,gBAEvBX,EAAoBpM,KAAK,gBAEzByM,EAAmBzM,KAAK,mEAIJ,KAAS4M,gDACT,KAASA,gDACT,KAASA,gDACT,KAASA,0FAM3B,KAASL,qDAGThB,EAASvL,KAAK,0GAIE,KAAS6M,2BAG/B,MAAO,CACLjC,aAAcA,EACd+B,eAAgBA,EAChBZ,SAAUA,EACVS,gBAAiBnB,EAAQmB,gBAE7B,CAcA,MAAMQ,UAAuBC,EAAA,EAI3B,WAAA9R,CAAYC,GACVA,EAAUA,EAAU7E,OAAO4T,OAAO,CAAC,EAAG/O,GAAW,CAAC,EAElD,MAAMqP,EAAQrP,EAAQqP,OAAS,CAAC,SACzBrP,EAAQqP,MAEf,MAAMyC,EAAY9R,EAAQ8R,iBACnB9R,EAAQ8R,UAEfnJ,MAAM3I,GAMN5H,KAAK2Z,SAAW/R,EAAQgS,QAMxB5Z,KAAK6Z,gBAAkB,KAMvB7Z,KAAK8Z,oBAAsBC,IAM3B/Z,KAAKga,OAAS/C,EAMdjX,KAAKia,WAAaP,EAMlB1Z,KAAKka,gBAAkBla,KAAKga,OAAOvB,WAAa,CAAC,EAEjDzY,KAAKma,kBAAkB,IAAcC,OAAQpa,KAAKqa,oBACpD,CAQA,UAAAC,CAAWC,EAAQpL,GACjB,MAAMrC,EAAS9M,KAAK0P,YACpB,OAAO1P,KAAK2Z,SACiB,oBAAlB3Z,KAAK2Z,SACV3Z,KAAK2Z,SAASY,EAAQpL,GACtBnP,KAAK2Z,SACP7M,EACE,CAACA,GACD,EACR,CAKA,eAAA0N,GACE,OAAOxa,KAAK6Z,iBAAmB7Z,KAAK0P,WACtC,CAKA,cAAA+K,GACE,MAAM3N,EAAS9M,KAAKwa,kBACpB,OAAO1N,EAASA,EAAO4N,WAAa,WACtC,CAKA,mBAAAL,GACMra,KAAK2a,eACP3a,KAAK4a,cAAcC,aAEjB7a,KAAK0P,aACP1P,KAAKwP,SAASxP,KAAKga,OAEvB,CAMA,mBAAAc,GACE,MAAMrF,EAAMnH,OAAOyM,iBACbnB,EAAU5Z,KAAKsa,WAAW,EAAE7E,GAAMA,EAAKA,EAAKA,GAAMA,GACxD,OAAOmE,GAAWA,EAAQlU,QAAU,cAAekU,EAAQ,GACvDA,EAAQ,GAAGzC,UACX,CACN,CAEA,cAAA6D,GACE,MAAMC,EAAc/D,EAAWlX,KAAKga,OAAQha,KAAK8a,uBAEjD,OAAO,IAAI,KAAuB9a,KAAM,CACtCoX,aAAc6D,EAAY7D,aAC1B+B,eAAgB8B,EAAY9B,eAC5BZ,SAAU0C,EAAY1C,SACtBmB,UAAW1Z,KAAKia,WAChBjB,gBAAiBiC,EAAYjC,iBAEjC,CAOA,aAAAkC,CAAcC,EAAYvB,GACxB,MAAMwB,EAAgBpb,KAAK4a,cAC3B,IAAIS,EACJ,IAAK,IAAI/a,EAAI,EAAGgb,EAAK1B,EAAQlU,OAAQpF,EAAIgb,IAAMhb,EAC7CN,KAAK6Z,gBAAkBD,EAAQtZ,GAC3B8a,EAAcG,aAAaJ,KAC7BE,EAASD,EAAcI,YAAYL,IAGvC,OAAOE,CACT,CAQA,MAAAjJ,CAAO+I,EAAY3N,GACjBxN,KAAKyb,UAAW,EAChB,MAAMC,EAAYP,EAAWO,UACvB9B,EAAU5Z,KAAKsa,WAAWa,EAAWZ,OAAQmB,EAAUvM,YAC7D,IAAIwM,GAAQ,EACZ,IAAK,IAAIrb,EAAI,EAAGgb,EAAK1B,EAAQlU,OAAQpF,EAAIgb,IAAMhb,EAAG,CAChD,MAAMwM,EAAS8M,EAAQtZ,GACjBsb,EAAc9O,EAAO4N,WAC3B,GAAmB,WAAfkB,EAA0B,CAC5B,MAAMC,EAAW,KACU,SAArB/O,EAAO4N,aACT5N,EAAOmD,oBAAoB,SAAU4L,GACrC7b,KAAK8b,UACP,EAEFhP,EAAOS,iBAAiB,SAAUsO,EACpC,CACAF,EAAQA,GAAwB,SAAfC,CACnB,CACA,MAAMP,EAASrb,KAAKkb,cAAcC,EAAYvB,GAC9C,GAAI5Z,KAAK4a,cAAcmB,gBAAkBJ,EAGvC,OADA3b,KAAK8Z,oBAAsB4B,EAAUvM,WAC9BkM,EAGT,GAAIrb,KAAK8Z,oBAAsB,GAAM4B,EAAUvM,WAAY,CACzD,MAAM6M,EAAahc,KAAKsa,WACtBa,EAAWZ,OACXva,KAAK8Z,qBACL1I,QAAQtE,IAAY8M,EAAQpR,SAASsE,KACvC,GAAIkP,EAAWtW,OAAS,EACtB,OAAO1F,KAAKkb,cAAcC,EAAYa,EAE1C,CACA,OAAOX,CACT,CAUA,QAAA7L,CAASyH,GACPjX,KAAKka,gBAAkBjD,EAAMwB,WAAa,CAAC,EAC3CzY,KAAKga,OAAS/C,EACd,MAAMgE,EAAc/D,EAAWlX,KAAKga,OAAQha,KAAK8a,uBAC3CmB,EAAWjc,KAAK4a,cACtBqB,EAAS7Z,MAAM,CACbgV,aAAc6D,EAAY7D,aAC1B+B,eAAgB8B,EAAY9B,eAC5BZ,SAAU0C,EAAY1C,SACtBS,gBAAiBiC,EAAYjC,kBAE/BhZ,KAAK8b,SACP,CAOA,oBAAAI,CAAqBzD,GACnB1V,OAAO4T,OAAO3W,KAAKka,gBAAiBzB,GACpCzY,KAAK8b,SACP,EAQFtC,EAAe/I,UAAU0L,QAEzB,U,+IC/bA,MAAMC,UAAuBC,EAAA,EAI3B,WAAA1U,CAAYC,GACV,MAAM0U,OACmBtE,IAAvBpQ,EAAQ0U,WAA2B,YAAc1U,EAAQ0U,WAE3D,IAAIC,EAAW3U,EAAQ2U,cACNvE,IAAbuE,GAA0BD,IAC5BC,GAAW,QAAU,CACnBhC,QAAQ,QAAqB+B,GAC7BE,cAAe5U,EAAQ4U,cACvBC,QAAS7U,EAAQ6U,QACjBC,QAAS9U,EAAQ8U,QACjBC,SAAU/U,EAAQ+U,YAItBpM,MAAM,CACJmJ,UAAW,GACXkD,aAAchV,EAAQgV,aACtBC,wBAAyBjV,EAAQiV,wBACjCP,WAAYA,EACZC,SAAUA,EACVO,OAAQlV,EAAQkV,OAChB5T,MAAOtB,EAAQsB,MACf6T,MAAOnV,EAAQmV,MACfC,WAAYpV,EAAQoV,WACpBC,YAAarV,EAAQqV,cAOvBjd,KAAKkd,aAA6BlF,IAAnBpQ,EAAQuV,OAAuBvV,EAAQuV,OAAS,EAM/Dnd,KAAKod,UAAYxV,EAAQ+U,UAAW,QAAO/U,EAAQ+U,UAAY,KAM/D3c,KAAKqd,WAAa,KAMlBrd,KAAKsd,iBAAmB,CAAC,EAKzBtd,KAAKud,QAAU3V,EAAQ4V,OAEvBxd,KAAKyd,kBAAoBzd,KAAKyd,kBAAkBC,KAAK1d,MAKrDA,KAAKmX,eAAkCa,IAAtBpQ,EAAQuP,UAA0B,EAAIvP,EAAQuP,UAM/DnX,KAAK2d,uBAAyB,CAAC,EAM/B3d,KAAK4d,wBAA0B,CAAC,CAClC,CAQA,YAAAC,CAAaC,GACX9d,KAAKqd,WAAaS,CACpB,CASA,WAAAC,CAAYtW,GACV,GAAIzH,KAAKqd,WACP,OAAOrd,KAAKqd,WAAW5V,GAEzB,GAAIzH,KAAKod,UACP,OAAOpd,KAAKod,UAEd,MAAMb,EAAWvc,KAAKge,cACtB,OAAOzB,GAAW,QAAOA,EAASwB,YAAYtW,IAAM,CAAC,IAAK,IAC5D,CAMA,sBAAAwW,CAAuB3B,GACrB,MAAM4B,EAAWle,KAAKyO,gBACtB,OAAKyP,IAAY,IAAAC,YAAWD,EAAU5B,GAC7Btc,KAAKkd,QAGP,CACT,CAMA,SAAAkB,CAAUZ,GACRxd,KAAKud,QAAUC,CACjB,CAUA,cAAAa,CAAe5W,EAAG3E,EAAG9B,EAAGsd,EAAYC,GAClC,MAAMC,EAAQxe,KAAKye,0BAA0BH,GACvCI,GAAe,QAAUjX,EAAG3E,EAAG9B,GACrC,GAAIwd,EAAMG,YAAYD,GAAe,CACnC,MAAME,EAAOJ,EAAMK,IAAIH,GACvB,GAAIE,GAAQA,EAAK3U,KAAOjK,KAAK8e,SAC3B,OAAOF,CAEX,CAEA,MAAMrC,EAAWvc,KAAKge,cAChBe,EAAuBpT,KAAK8J,IAAIuJ,MACpC,KACAzC,EAAS0C,iBAAiBtW,KAAI,CAACzI,EAAGuH,KAChC,MAAMkV,GAAW,QAAOJ,EAASwB,YAAYtW,IACvCyX,EAAclf,KAAK+d,YAAYtW,GACrC,OAAOkE,KAAK8J,IACVyJ,EAAY,GAAKvC,EAAS,GAC1BuC,EAAY,GAAKvC,EAAS,GAC3B,KAICwC,EAAiBnf,KAAKof,yBAAyBb,GAC/Cc,EAAiBrf,KAAKof,yBAAyBd,GAC/CgB,EAAY,CAAC7X,EAAG3E,EAAG9B,GACnBue,EAAmBvf,KAAKwf,+BAC5BF,EACAhB,GAGI1W,EAAU7E,OAAO4T,OACrB,CACE4H,aACAY,iBACAb,aACAe,iBACAC,YACAC,mBACAE,WAAYV,EACZ5B,OAAQnd,KAAKie,uBAAuBM,GACpCmB,gBAAiB,CAACjY,EAAG3E,EAAG9B,EAAGye,IACzBzf,KAAK2f,QAAQlY,EAAG3E,EAAG9B,EAAGye,EAAYlB,IAEtCve,KAAK4f,aAEDC,EAAU,IAAI,IAAejY,GAEnC,OADAiY,EAAQ5V,IAAMjK,KAAK8e,SACZe,CACT,CAUA,OAAAF,CAAQlY,EAAG3E,EAAG9B,EAAGye,EAAYnD,GAC3B,MAAMwD,EAAmB9f,KAAKyO,gBAC9B,GACEqR,GACAxD,KACC,IAAA6B,YAAW2B,EAAkBxD,GAE9B,OAAOtc,KAAKqe,eAAe5W,EAAG3E,EAAG9B,EAAGsb,EAAYwD,GAGlD,MAAMC,EAAO/f,KAAK+d,YAAYtW,GACxBiX,GAAe,QAAUjX,EAAG3E,EAAG9B,GACrC,GAAIhB,KAAKggB,UAAUrB,YAAYD,GAC7B,OAAO1e,KAAKggB,UAAUnB,IAAIH,GAG5B,MAAMuB,EAAejgB,KAAKud,QAE1B,SAASC,IACP,OAAO,SAAU,WACf,OAAOyC,EAAaxY,EAAG3E,EAAG9B,EAC5B,GACF,CAEA,MAAM4G,EAAU7E,OAAO4T,OACrB,CACE2I,UAAW,CAAC7X,EAAG3E,EAAG9B,GAClBwc,OAAQA,EACRuC,KAAMA,GAER/f,KAAK4f,aAGDhB,EAAO,IAAIsB,EAAA,GAAStY,GAK1B,OAJAgX,EAAK3U,IAAMjK,KAAK8e,SAChBF,EAAKrR,iBAAiB4S,EAAA,EAAUC,OAAQpgB,KAAKyd,mBAE7Czd,KAAKggB,UAAUK,IAAI3B,EAAcE,GAC1BA,CACT,CAMA,iBAAAnB,CAAkB5L,GAChB,MAAM+M,EAAoD/M,EAAY,OAChEyO,GAAM,QAAO1B,GACb2B,EAAY3B,EAAKlE,WACvB,IAAI7L,EACA0R,GAAaC,EAAA,EAAUC,SACzBzgB,KAAKsd,iBAAiBgD,IAAO,EAC7BzR,EAAO6R,EAAA,EAAcC,eACZL,KAAOtgB,KAAKsd,0BACdtd,KAAKsd,iBAAiBgD,GAC7BzR,EACE0R,GAAaC,EAAA,EAAUI,MACnBF,EAAA,EAAcG,cACdN,GAAaC,EAAA,EAAUM,OACrBJ,EAAA,EAAcK,iBACd/I,GAENnJ,GACF7O,KAAK4O,cAAc,IAAIyN,EAAA,EAAgBxN,EAAM+P,GAEjD,CAMA,wBAAAQ,CAAyB9C,GACvB,MAAM4B,EAAWle,KAAKyO,gBACtB,GAAIzO,KAAKuc,YAAc2B,IAAY,IAAAC,YAAWD,EAAU5B,IACtD,OAAOtc,KAAKuc,SAGd,MAAMyE,GAAU,QAAO1E,GAKvB,OAJM0E,KAAWhhB,KAAK2d,yBACpB3d,KAAK2d,uBAAuBqD,IAC1B,QAAyB1E,IAEtBtc,KAAK2d,uBAAuBqD,EACrC,CAcA,wBAAAC,CAAyB3E,EAAY4E,GACnC,MAAMC,GAAO,IAAAtC,KAAcvC,GAC3B,GAAI6E,EAAM,CACR,MAAMH,GAAU,QAAOG,GACjBH,KAAWhhB,KAAK2d,yBACpB3d,KAAK2d,uBAAuBqD,GAAWE,EAE3C,CACF,CAMA,yBAAAzC,CAA0BnC,GACxB,MAAM4B,EAAWle,KAAKyO,gBACtB,IAAKyP,IAAY,IAAAC,YAAWD,EAAU5B,GACpC,OAAOtc,KAAKggB,UAGd,MAAMgB,GAAU,QAAO1E,GAIvB,OAHM0E,KAAWhhB,KAAK4d,0BACpB5d,KAAK4d,wBAAwBoD,GAAW,IAAII,EAAA,EAAU,KAEjDphB,KAAK4d,wBAAwBoD,EACtC,CAMA,WAAAK,CAAY/E,EAAYgF,GACtB,MAAMC,EAAgBvhB,KAAKye,0BAA0BnC,GAErDtc,KAAKggB,UAAUqB,YACbrhB,KAAKggB,WAAauB,EAAgBD,EAAY,CAAC,GAEjD,IAAK,MAAM5a,KAAM1G,KAAK4d,wBAAyB,CAC7C,MAAMoC,EAAYhgB,KAAK4d,wBAAwBlX,GAC/CsZ,EAAUqB,YAAYrB,GAAauB,EAAgBD,EAAY,CAAC,EAClE,CACF,CAEA,KAAAE,GACEjR,MAAMiR,QACN,IAAK,MAAM9a,KAAM1G,KAAK4d,wBACpB5d,KAAK4d,wBAAwBlX,GAAI8a,OAErC,EAGF,U,qCCnZA,MAAMC,EAAuC,qBAAdC,WAA6BA,UAAUC,qBAA4B,EASlG,MAAMC,EA8BJ,WAAAja,CAAYoY,EAAO0B,EAAiBI,GAClC7hB,KAAK8hB,QAAU,KACf9hB,KAAK+hB,iBAAmB,KACxB/hB,KAAK+f,KAAOA,EACZ/f,KAAKgiB,UAAY,EACbjC,IACF/f,KAAK+hB,iBAAmBF,EAAe1W,QAAQ8W,QAAQJ,GAAgB,IAAI1W,SAAS8W,IAClF,gCAA8BhW,MAAMnM,IAClCmiB,EAAQniB,EAAOoiB,OAAO,GACtB,IAEJliB,KAAK+hB,iBAAiB9V,MAAMiW,IAC1BliB,KAAK+hB,iBAAmB,KACxB/hB,KAAK8hB,QAAU,GACf,IAAK,IAAIxhB,EAAI,EAAGA,EAAIyf,EAAMzf,IACxBN,KAAK8hB,QAAQxV,KAAK,CAAE6V,OAAQD,IAAUE,MAAM,GAC9C,IAGN,CAOA,YAAMC,CAAOC,EAAeC,GAI1B,OAHIviB,KAAK+hB,wBACD/hB,KAAK+hB,iBAEQ,IAAd/hB,KAAK+f,MACR,OAAWuC,GAAerW,MAAMuW,GAAYA,EAAQH,OAAOC,EAAeC,KAC1E,IAAIpX,SAAS8W,IACb,MAAME,EAASniB,KAAK8hB,QAAQW,MAAMC,GAAcA,EAAUN,QACrDpiB,KAAK8hB,QAAQnW,KAAKgX,MAAMhX,KAAKE,SAAW7L,KAAK+f,OAClDoC,EAAOC,MAAO,EACd,MAAM1b,EAAK1G,KAAKgiB,YACVY,EAAahjB,IACbA,EAAEyL,KAAK3E,KAAOA,IAChByb,EAAOC,MAAO,EACdH,EAAQriB,EAAEyL,KAAKwX,SACfV,EAAOA,OAAOlS,oBAAoB,UAAW2S,GAC/C,EAEFT,EAAOA,OAAO5U,iBAAiB,UAAWqV,GAC1CT,EAAOA,OAAOW,YAAY,CAAER,gBAAeC,SAAQ7b,MAAM,CAAC6b,GAAQ,GAExE,CAEA,OAAAQ,GACM/iB,KAAK8hB,UACP9hB,KAAK8hB,QAAQtc,SAAS2c,IACpBA,EAAOA,OAAOa,WAAW,IAE3BhjB,KAAK8hB,QAAU,KAEnB,EAGF,U,4DCvEA,SAASmB,GAAO7S,GACd,MAAMkS,EAAgBlS,EAAMkS,cACtBzT,EAAOyT,EAAcY,gBAAkB,EAC7C,OAAsB,KAAP,EAAPrU,EACV,CAOA,SAASsU,GAAQC,EAAYhT,GAC3B,IAAKgT,EACH,OAAO,EAET,IAAmB,IAAfA,EACF,OAAO,EAET,GAAmC,IAA/BhT,EAAMiT,qBACR,OAAO,EAET,MAAMC,EAAiBlT,EAAMkS,cAAciB,0BACrCC,EAAkB,KACxB,OACEF,IAAmBE,EAAgBC,MACnCH,IAAmBE,EAAgBE,OACnCJ,IAAmBE,EAAgBG,QACnCL,IAAmBE,EAAgBI,MAEvC,CAkDA,MAAMC,GAAqB,qBACrBC,GAAqB,qBAErBC,GAAkB,IAMxB,IAAIC,GACJ,SAASC,KAIP,OAHKD,KACHA,GAAa,IAAI,GAEZA,EACT,CAQA,SAASE,GAAe9T,GACtB,IACE,OAAOA,EAAM8T,gBACf,CAAE,MAAOvf,GACP,MAAO,CAAC,EAAG,EAAGyL,EAAM+T,WAAY/T,EAAMgU,YACxC,CACF,CAQA,SAASC,GAAUjU,GACjB,IACE,OAAOA,EAAMiU,YAAYlO,MAAM,EAAG,EACpC,CAAE,MAAOxR,GACP,MAAO,CAAC,EAAGyL,EAAMgU,YACnB,CACF,CASA,SAASnF,GAAe7O,EAAOkU,GAC7B,IACE,OAAOlU,EAAMmU,cAAcD,EAC7B,CAAE,MAAO3f,GACP,MAAO,CACL2f,EAAeH,WAAa/T,EAAM+T,WAClCG,EAAeF,YAAchU,EAAMgU,YAEvC,CACF,CAMA,SAAS3V,GAAc2B,GACrB,MAAMoU,EAAUpU,EAAMoU,QACtB,IAAKA,EACH,OAAO,KAGT,GACEA,EAAQC,uBAC0B,QAAlCD,EAAQC,sBACR,CACA,MAAMC,EAAO,QAAUF,EAAQC,sBAC/B,IAAInI,GAAa,IAAAuC,KAAoB6F,GACrC,IAAKpI,EAAY,CACf,MAAMqI,GAAQ,QAAcH,EAAQI,uBAChCD,IACFrI,EAAa,IAAI,EAAAuI,WAAW,CAC1BH,KAAMA,EACNC,MAAOA,IAGb,CACA,OAAOrI,CACT,CAEA,GAAIkI,EAAQM,sBAAyD,QAAjCN,EAAQM,qBAAgC,CAC1E,MAAMJ,EAAO,QAAUF,EAAQM,qBAC/B,IAAIxI,GAAa,IAAAuC,KAAoB6F,GACrC,IAAKpI,EAAY,CACf,MAAMqI,GAAQ,QAAcH,EAAQO,wBAChCJ,IACFrI,EAAa,IAAI,EAAAuI,WAAW,CAC1BH,KAAMA,EACNC,MAAOA,IAGb,CACA,OAAOrI,CACT,CAEA,OAAO,IACT,CAMA,SAAS0I,GAAiBC,GACxB,OAAOA,EAAKC,gBAAgBjZ,MAAK,SAAUkZ,GACzC,MAAMC,EAAW,IAAI9f,MAAM6f,GAC3B,IAAK,IAAI7kB,EAAI,EAAGA,EAAI6kB,IAAS7kB,EAC3B8kB,EAAS9kB,GAAK2kB,EAAKI,SAAS/kB,GAE9B,OAAO6K,QAAQma,IAAIF,EACrB,GACF,CAOA,SAASG,GAAmBzY,EAAQlF,GAClC,IAAI4d,EAQJ,OANEA,EADE1Y,EAAO2Y,MACC,QAAa3Y,EAAO2Y,MACrB3Y,EAAO4Y,WACN,QAAa5Y,EAAO5E,IAAK4E,EAAO4Y,UAAW9d,IAE3C,QAAYkF,EAAO5E,IAAKN,GAE7B4d,EAAQvZ,KAAK+Y,GACtB,CASA,SAASW,GAAYC,EAAUC,EAAKC,EAAWC,EAASC,GACtD,GAAI1gB,MAAMC,QAAQqgB,GAAlB,CACE,MAAMlgB,EAASkgB,EAASlgB,OACxB,IAAKJ,MAAMC,QAAQsgB,IAAQngB,GAAUmgB,EAAIngB,OAAQ,CAC/C,MAAMugB,EAAQ,IAAIvhB,MAAMqhB,GAExB,MADAC,EAASC,GACHA,CACR,CACA,IAAK,IAAI3lB,EAAI,EAAGA,EAAIoF,IAAUpF,EAC5BqlB,GAAYC,EAAStlB,GAAIulB,EAAIvlB,GAAIwlB,EAAWC,EAASC,EAGzD,MAGA,GAAIra,KAAKua,IAAIN,EAAWC,GAAOC,EAAYF,EACzC,MAAM,IAAIlhB,MAAMqhB,EAEpB,CAMA,SAASI,GAAkBC,GACzB,OAAIA,aAAiBC,WACX,IAEND,aAAiBE,YACX,MAENF,aAAiBG,YACX,WAENH,aAAiBI,aACZ,OAEF,CACT,CAMA,SAASC,GAAkBL,GACzB,OAAIA,aAAiBC,UACZ,IAELD,aAAiBM,YAGjBN,aAAiBO,kBAFZ,IAKLP,aAAiBE,WACZ,MAELF,aAAiBQ,YACZ,MAELR,aAAiBG,WACZ,WAELH,aAAiBS,YACZ,WAELT,aAAiBI,aACZ,MAEF,GACT,CAqDA,MAAMM,WAAsB,EAI1B,WAAAnf,CAAYC,GACV2I,MAAM,CACJrH,MAAO,UACPqT,SAAU,KACVD,WAAY1U,EAAQ0U,YAAc,KAClCQ,OAAQlV,EAAQkV,OAChBE,WAAYpV,EAAQoV,WACpBC,aAAqC,IAAxBrV,EAAQqV,YACrBF,MAAOnV,EAAQmV,QAOjB/c,KAAK+mB,YAAcnf,EAAQgS,QAE3B,MAAMoN,EAAahnB,KAAK+mB,YAAYrhB,OAMpC1F,KAAKinB,eAAiBrf,EAAQsf,cAM9BlnB,KAAKmnB,eAAiB,IAAI7hB,MAAM0hB,GAMhChnB,KAAKonB,aAAe,IAAI9hB,MAAM0hB,GAM9BhnB,KAAKqnB,mBAAqB,IAAI/hB,MAAM0hB,GAMpChnB,KAAKsnB,iBAMLtnB,KAAKunB,cAMLvnB,KAAKwnB,UAMLxnB,KAAKynB,YAAmC,IAAtB7f,EAAQ8f,UAM1B1nB,KAAK2nB,WAAY,EAMjB3nB,KAAK4nB,OAAS,KAKd5nB,KAAK6nB,cAAgBjgB,EAAQkgB,eAAgB,EAE7C9nB,KAAK+nB,OAAO/nB,KAAK+mB,YAAYpe,KAAKmE,GAAWA,EAAO5E,MAAKsE,KAAK,MAE9D,MAAMwb,EAAOhoB,KACPolB,EAAW,IAAI9f,MAAM0hB,GAC3B,IAAK,IAAI1mB,EAAI,EAAGA,EAAI0mB,IAAc1mB,EAChC8kB,EAAS9kB,GAAKilB,GACZvlB,KAAK+mB,YAAYzmB,GACjBN,KAAKinB,gBAGT9b,QAAQma,IAAIF,GACTnZ,MAAK,SAAU2N,GACdoO,EAAKC,WAAWrO,EAClB,IACCzN,OAAM,SAAU8Z,IACf,SAASA,GACT+B,EAAKJ,OAAS3B,EACd+B,EAAKE,SAAS,QAChB,GACJ,CAcA,QAAAC,GACE,OAAOnoB,KAAK4nB,MACd,CAWA,mBAAAQ,CAAoBxO,GAClB,MAAMyO,EAAczO,EAAQ,GAC5B,IAAK,IAAItZ,EAAI+nB,EAAY3iB,OAAS,EAAGpF,GAAK,IAAKA,EAAG,CAChD,MAAM8P,EAAQiY,EAAY/nB,GACpBgc,EAAa7N,GAAc2B,GACjC,GAAIkM,EAAY,CACdtc,KAAKsc,WAAaA,EAClB,KACF,CACF,CACF,CASA,UAAA2L,CAAWrO,GACT,IAAIW,EACA+N,EACAC,EACAC,EACAC,EACJ,MAAMC,EAAkB,IAAIpjB,MAAMsU,EAAQlU,QACpCijB,EAAe,IAAIrjB,MAAMsU,EAAQlU,QACjCkjB,EAAW,IAAItjB,MAAMsU,EAAQlU,QACnC,IAAIgX,EAAU,EAEd,MAAMmM,EAAcjP,EAAQlU,OAC5B,IAAK,IAAIojB,EAAc,EAAGA,EAAcD,IAAeC,EAAa,CAClE,MAAMC,EAAS,GACTC,EAAQ,GACdpP,EAAQkP,GAAatjB,SAASyjB,IACxBhG,GAAOgG,GACTD,EAAM1c,KAAK2c,GAEXF,EAAOzc,KAAK2c,EACd,IAGF,MAAMC,EAAaH,EAAOrjB,OAC1B,GAAIsjB,EAAMtjB,OAAS,GAAKsjB,EAAMtjB,SAAWwjB,EACvC,MAAM,IAAIxkB,MACR,qCAAqCskB,EAAMtjB,oBAAoBwjB,YAInE,IAAIC,EACAC,EACJ,MAAMC,EAAkB,IAAI/jB,MAAM4jB,GAC5BI,EAAkB,IAAIhkB,MAAM4jB,GAC5BK,EAAoB,IAAIjkB,MAAM4jB,GAEpCP,EAAaG,GAAe,IAAIxjB,MAAM4jB,GACtCN,EAASE,GAAe,IAAIxjB,MAAM4jB,GAElC,IAAK,IAAIM,EAAa,EAAGA,EAAaN,IAAcM,EAAY,CAC9D,MAAMpZ,EAAQ2Y,EAAOS,GACfC,EAAcrZ,EAAMsZ,gBAC1Bd,EAASE,GAAaU,GAAcpZ,EAAMuZ,gBAAgB,GAC1DhB,EAAaG,GAAaU,GAAcC,EAExC,MAAMG,EAAgB5pB,KAAK+mB,YAAY+B,GAAalV,MACpD8U,EAAgBI,GAAec,EAC3BA,EAAclkB,OACd0K,EAAMiT,qBACV,MAAMwG,EAAQX,GAAcM,EAAa,GAEpCL,IACHA,EAAejF,GAAe9T,IAG3BgZ,IACHA,EAAe/E,GAAUjU,IAG3B,MAAM0Z,EAAmB7K,GAAe7O,EAAO2Y,EAAO,IACtDQ,EAAkBM,GAASC,EAAiB,GAE5C,MAAMC,EAAiB,CAAC3Z,EAAM4Z,eAAgB5Z,EAAM6Z,iBAIlDF,EAAe,KAAOA,EAAe,IACrCA,EAAe,GAAKhG,KAEpBgG,EAAe,GAAKhG,GACpBgG,EAAe,GAAKhG,IAGtBsF,EAAgBQ,GAASE,EAEzB,MAAMG,EAAcJ,EAAiB,GAAKne,KAAKua,IAAI4D,EAAiB,IACpER,EAAgBO,GAAS,CACvBE,EAAe,GACfA,EAAe,GAAKG,EAExB,CAQA,GANK3P,GAGH,QAAgBA,EAAQ4O,EAAc5O,GAFtCA,EAAS4O,EAKNb,EAEE,CACL,MAAMvC,EAAU,8BAA8B+C,WAAqBM,oBAA+Bd,KAClG3C,GAAY2C,EAAQc,EAAc,EAAGrD,EAAS/lB,KAAKmqB,aACrD,MAJE7B,EAASc,EAMX,GAAKX,EAGE,CACDA,EAAY/iB,OAASgX,EAAU6M,EAAkB7jB,SACnDgX,EAAU+L,EAAY/iB,OAAS6jB,EAAkB7jB,QAEnD,MAAM0kB,EACJ3B,EAAYA,EAAY/iB,OAAS,GACjC6jB,EAAkBA,EAAkB7jB,OAAS,GAC/C1F,KAAKqnB,mBAAmByB,GAAesB,EACvC,MAAMC,EAA0Bd,EAAkB5gB,KAC/CwG,GAAgBA,EAAcib,IAE3BrE,EAAU,kCAAkC+C,WAAqBuB,oBAA0C5B,KACjH9C,GACE8C,EAAYtS,MAAMuG,EAAS+L,EAAY/iB,QACvC2kB,EACA,IACAtE,EACA/lB,KAAKmqB,aAET,MArBE1B,EAAcc,EACdvpB,KAAKqnB,mBAAmByB,GAAe,EAsBpCP,EAGH5C,GACE4C,EAAsBpS,MAAMuG,EAAS6L,EAAsB7iB,QAC3D4jB,EACA,IACA,iCAAiCR,IACjC9oB,KAAKmqB,cAPP5B,EAAwBe,EAWrBd,EAGH7C,GACE6C,EAAsBrS,MAAMuG,EAAS8L,EAAsB9iB,QAC3D2jB,EACA,EACA,iCAAiCP,IACjC9oB,KAAKmqB,cAPP3B,EAAwBa,EAW1BrpB,KAAKmnB,eAAe2B,GAAeC,EAAOuB,UAC1CtqB,KAAKonB,aAAa0B,GAAeE,EAAMsB,SACzC,CAEA,IAAK,IAAIhqB,EAAI,EAAGgb,EAAKtb,KAAKmnB,eAAezhB,OAAQpF,EAAIgb,IAAMhb,EAAG,CAC5D,MAAMiqB,EAAgBvqB,KAAKmnB,eAAe7mB,GAC1C,MAAOiqB,EAAc7kB,OAAS+iB,EAAY/iB,OACxC6kB,EAAcC,aAAQxS,EAE1B,CAEKhY,KAAKyO,iBACRzO,KAAKooB,oBAAoBxO,GAG3B5Z,KAAKsnB,iBAAmBoB,EACxB1oB,KAAKunB,cAAgBoB,EACrB3oB,KAAKwnB,UAAYoB,EAGjB6B,EAAO,IAAK,IAAI3B,EAAc,EAAGA,EAAcD,IAAeC,EAAa,CAEzE,QAA6C9Q,IAAzChY,KAAK+mB,YAAY+B,GAAa4B,OAAsB,CACtD1qB,KAAK2nB,WAAY,EACjB,KACF,CACA,GAAI3nB,KAAKonB,aAAa0B,GAAapjB,OAAQ,CACzC1F,KAAK2nB,WAAY,EACjB,KACF,CAEA,MAAMgD,EAAShC,EAAaG,GAGtBlV,EAAQ5T,KAAK+mB,YAAY+B,GAAalV,MAC5C,GAAIA,GACF,IAAK,IAAItT,EAAI,EAAGA,EAAIsT,EAAMlO,SAAUpF,EAClC,GAA6B,OAAzBqqB,EAAO/W,EAAMtT,GAAK,GAAa,CACjCN,KAAK2nB,WAAY,EACjB,MAAM8C,CACR,OAMJ,IAAK,IAAIjB,EAAa,EAAGA,EAAamB,EAAOjlB,SAAU8jB,EACrD,GAA2B,OAAvBmB,EAAOnB,GAAsB,CAC/BxpB,KAAK2nB,WAAY,EACjB,MAAM8C,CACR,CAEJ,CAEA,IAAItT,EAAYnX,KAAK2nB,UAAY,EAAI,EACrC,IAAK,IAAImB,EAAc,EAAGA,EAAcD,IAAeC,EACrD3R,GAAauR,EAAgBI,GAE/B9oB,KAAKmX,UAAYA,EAEjB,MAAMoF,EAAW,IAAIqO,EAAA,EAAS,CAC5BrQ,OAAQA,EACRmC,QAASA,EACT4L,OAAQA,EACRG,YAAaA,EACb3K,UAAWyK,IAGbvoB,KAAKuc,SAAWA,EAChBvc,KAAK6d,aAAa2K,GAElBxoB,KAAKoe,UAAUpe,KAAK6qB,UAAUnN,KAAK1d,OACnCA,KAAKkoB,SAAS,SAEd,MAAM4C,EAAO,EACc,IAAvBrC,EAAY/iB,OACd+iB,EAAc,CAACA,EAAY,GAAIA,EAAY,GAAIA,EAAY,GAAK,GAChC,IAAvBA,EAAY/iB,SACrB+iB,EAAc,CAAkB,EAAjBA,EAAY,GAAQA,EAAY,GAAIA,EAAY,GAAK,IAGtEzoB,KAAK+qB,aAAa,CAChBC,gBAAgB,EAChB1O,WAAYtc,KAAKsc,WACjBmM,YAAaA,EACbrZ,QAAQ,IAAA6b,mBAAiB,QAAU1Q,GAASva,KAAKsc,YACjD/B,QAAQ,IAAA2Q,cAAa3Q,EAAQva,KAAKsc,YAClCwO,KAAMA,GAEV,CASA,SAAAD,CAAUpjB,EAAG3E,EAAG9B,GACd,MAAM+oB,EAAiB/pB,KAAK+d,YAAYtW,GAClCohB,EAAc7oB,KAAKmnB,eAAezhB,OAClC0f,EAAW,IAAI9f,MAAoB,EAAdujB,GACrBF,EAAe3oB,KAAKunB,cACpB4D,EAAanrB,KAAK+mB,YAClBqE,EAAOnH,KACb,IAAK,IAAI6E,EAAc,EAAGA,EAAcD,IAAeC,EAAa,CAClE,MAAMhc,EAASqe,EAAWrC,GACpBsB,EAAmBpqB,KAAKqnB,mBAAmByB,GAC3CuC,EAAc,CAClB1f,KAAKC,MAAM9I,GAAKinB,EAAe,GAAKK,IACpCze,KAAKC,MAAM5K,GAAK+oB,EAAe,GAAKK,IACpCze,KAAKC,OAAO9I,EAAI,IAAMinB,EAAe,GAAKK,IAC1Cze,KAAKC,OAAO5K,EAAI,IAAM+oB,EAAe,GAAKK,KAEtCha,EAAQpQ,KAAKmnB,eAAe2B,GAAarhB,GAC/C,IAAI6jB,EAQAC,EAPAze,EAAO8G,QACT0X,EAAUxe,EAAO8G,MAAMjL,KAAI,SAAU6iB,GACnC,OAAOA,EAAa,CACtB,KAMAD,EADE,WAAYze,GAA4B,OAAlBA,EAAO4d,OACnB5d,EAAO4d,OAEdY,EAGSA,EAAQ3iB,KAAI,SAAU8iB,GAChC,OAAO9C,EAAaG,GAAa2C,EACnC,IAJY9C,EAAaG,GAQ7B,MAAM4C,EAAc,CAClB9mB,OAAQymB,EACRM,MAAO5B,EAAe,GACtB6B,OAAQ7B,EAAe,GACvBuB,QAASA,EACTC,UAAWA,EACXH,KAAMA,EACNS,YAAY,GAEV1I,GAAQnjB,KAAK6nB,cAAezX,GAC9BgV,EAAS0D,GAAe1Y,EAAM+S,QAAQuI,GAEtCtG,EAAS0D,GAAe1Y,EAAM0b,YAAYJ,GAI5C,MAAMK,EAAYlD,EAAcC,EAC1BkD,EAAOhsB,KAAKonB,aAAa0B,GAAarhB,GACvCukB,EAKL5G,EAAS2G,GAAaC,EAAKF,YAAY,CACrClnB,OAAQymB,EACRM,MAAO5B,EAAe,GACtB6B,OAAQ7B,EAAe,GACvBuB,QAAS,CAAC,GACVF,KAAMA,EACNS,YAAY,IAVZzG,EAAS2G,GAAa5gB,QAAQ8W,QAAQ,KAY1C,CAEA,OAAO9W,QAAQma,IAAIF,GAChBnZ,KAAKjM,KAAKisB,aAAavO,KAAK1d,KAAM+pB,IAClC5d,OAAM,SAAU8Z,GAEf,MADA,SAASA,GACHA,CACR,GACJ,CAQA,YAAAgG,CAAalC,EAAgBmC,GAC3B,MAAMtD,EAAW5oB,KAAKwnB,UAChB2D,EAAanrB,KAAK+mB,YAClB8B,EAAc7oB,KAAKmnB,eAAezhB,OAClCyR,EAAYnX,KAAKmX,UACjBuR,EAAkB1oB,KAAKsnB,iBACvBqB,EAAe3oB,KAAKunB,cACpBG,EAAY1nB,KAAKynB,WACjB0E,EAAWnsB,KAAK2nB,UAEhByE,EAAarC,EAAe,GAAKA,EAAe,GAChDsC,EAAaD,EAAajV,EAGhC,IAAI9L,EAEFA,EADEqc,EACK,IAAIhB,WAAW2F,GAEf,IAAI7F,aAAa6F,GAG1B,IAAIC,EAAY,EAChB,IAAK,IAAIC,EAAa,EAAGA,EAAaH,IAAcG,EAAY,CAC9D,IAAIC,EAAcL,EAClB,IAAK,IAAIrD,EAAc,EAAGA,EAAcD,IAAeC,EAAa,CAClE,MAAMhc,EAASqe,EAAWrC,GAE1B,IAEI2D,EAAMC,EAFNpX,EAAMxI,EAAOwI,IACbG,EAAM3I,EAAO2I,IAEjB,GAAIiS,EAAW,CACb,MAAMiF,EAAQ/D,EAASE,GAAa,QACxB9Q,IAAR1C,IAEAA,EADEqX,GAAS7I,MAAsB6I,EAC3Bpe,WAAWoe,EAAM7I,KAEjBqC,GAAkB+F,EAAcpD,GAAa,UAG3C9Q,IAARvC,IAEAA,EADEkX,GAAS9I,MAAsB8I,EAC3Bpe,WAAWoe,EAAM9I,KAEjB4C,GAAkByF,EAAcpD,GAAa,KAIvD2D,EAAO,KAAOhX,EAAMH,GACpBoX,GAAQpX,EAAMmX,CAChB,CAEA,IACE,IAAIhB,EAAc,EAClBA,EAAc/C,EAAgBI,KAC5B2C,EACF,CACA,MAAMmB,EACJV,EAAcpD,GAAa2C,GAAac,GAE1C,IAAIxlB,EAOJ,GALEA,EADE2gB,GACM,QAAM+E,EAAOG,EAAcF,EAAM,EAAG,KAEpCE,EAGLT,EAEE,CACL,IAAIzB,EAAS5d,EAAO4d,OACpB,QAAe1S,IAAX0S,EAAsB,CACxB,IAAImC,EAEFA,EADE/f,EAAO8G,MACG9G,EAAO8G,MAAM6X,GAAe,EAE5BA,EAEdf,EAAS/B,EAAaG,GAAa+D,EACrC,CAEA,MAAMC,EAAcC,MAAMrC,KAEtBoC,GAAeF,IAAgBlC,GAChCoC,IAAgBC,MAAMH,MAEvBJ,GAAc,EACdnhB,EAAKihB,GAAavlB,EAEtB,MArBEsE,EAAKihB,GAAavlB,EAsBpBulB,GACF,CACA,IAAKE,EAAa,CAChB,MAAMT,EAAYlD,EAAcC,EAC1BkD,EAAOE,EAAcH,GACvBC,IAASA,EAAK,GAAGO,KACnBC,GAAc,EAElB,CACF,CACIL,IACGK,IACHnhB,EAAKihB,GAAa,KAEpBA,IAEJ,CAEA,OAAOjhB,CACT,EAwBFyb,GAAcrW,UAAUjC,QAExB,YCt9BA,IACAvD,WAAA,CACA+hB,eAAA,EACAC,YAAAA,EAAAA,GAEA5hB,IAAAA,GACA,OACAqI,gBAAA,iBACA7G,MAAA,KACAC,OAAA,KACA6G,SAAA,KACAuZ,OAAA,GACArZ,gBAAA,GACAO,SAAA,GACAR,MAAA,GAEA,EACAR,SAAA,IACA+Z,EAAAA,EAAAC,SAAA,uBAEA9b,QAAA,CACA+b,UAAAA,CAAA/sB,GACA,wBAAAA,SACA,EACAgtB,UAAAA,CAAAhtB,GACA,IAAAgV,EAAA,UAAAhV,QACAmV,EAAA,UAAAnV,QACAwC,EAAA,KAAAuqB,WAAA/sB,GACA+P,EAAA,eAAAvN,EAAAwS,GAAA,KAAAG,EAAAH,IAAA,KACA,eAAAjF,EAAA,MACA,EACAkd,gBAAAA,GACA,IAAAnY,EAAA,KAAAiY,WAAA,SAIA,oBAAAjY,EAAA,OACA,EACA,gBAAAoY,CAAAC,EAAAC,EAAA,WACA,KAAA9Z,MAAA6Z,EAAAE,WACA,KAAAC,SAAA,KAAAA,QAAAxZ,WACA,KAAAP,gBAAA,KAAA+Z,QAAAxZ,UAEA,KAAAT,SAAA8Z,EAAAI,cACA,KAAAX,OAAAO,EAAAK,YAEA,IAAAhhB,EAAA,CACA4d,OAAA,KAAAwC,OAAA,IAEAO,EAAAM,UACAjhB,EAAA2Y,KAAAgI,EAAAM,UAGAjhB,EAAA5E,IAAAulB,EAAAO,SAGA,KAAAlhB,OAAA,IAAAmhB,GAAA,CACAhR,aAAA,EACAyK,WAAA,EACAI,aAAA2F,EAAA3F,aACAlO,QAAA,CAAA9M,KAGA,KAAAD,MAAA,IAAAqhB,EAAA,CACAxnB,GAAA+mB,EAAAO,SACAN,QACA5gB,OAAA,KAAAA,OACA4M,UAAA,OAEA,KAAA7M,MAAAwT,IAAA,UACA8N,YAAAC,IACA,IAAAC,EAAA,KAAAxhB,MAAAyhB,QAAAF,EAAAG,OACAxnB,EAAAomB,EAAAA,EAAAqB,YAAAH,EAAA,KAAAnB,OAAA,KAAAA,OAAAxnB,OAAA,GACA+oB,EAAA,gBAAA1nB,IACA2nB,EAAA,KAAAC,aAAAP,EAAAtf,YACA,KAAA4E,gBAAA,CAAA+a,EAAA,GAAAA,OAAAC,IAAA,EAEAE,MAAAR,IACA,IAAA/iB,EAAA,KAAAwB,MAAAyhB,QAAAF,EAAAG,OACA,IAAAljB,EAEA,YADA,KAAA2I,MAAA,MAKA,GADA3I,EAAA/F,MAAAupB,KAAAxjB,GAAA8K,MAAA,OAAAvC,MAAAlO,QACA2F,EAAA3F,OAAA,GAAA2F,EAAAyjB,OAAAhsB,IAAAisB,SAAAjsB,KAEA,YADA,KAAAkR,MAAA,MAIA,IAAA0a,EAAA,KAAAC,aAAAP,EAAAtf,YACAkgB,EAAA,eAAAN,IAEAO,EAAA,EAAAD,QAAA3jB,SAEA,KAAA2I,MAAA,CACAU,OAAA,KAAAd,MAAAjL,KAAAyM,GAAA/O,OAAA+O,EAAAtO,MAAAsO,EAAA1O,MACAuoB,WACA,IAGA,KAAAC,cAAA,KAAAriB,OAEA,IAAA0N,EAAAkT,EAAA0B,YAUA,OATA5U,GACA,KAAA5R,IAAA6F,UAAAQ,IAAAuL,EAAA,KAAA6U,cAAA,WAKA,IAAAjkB,SAAAjL,GAAAqH,WAAArH,EAAA,QACA,KAAAsP,WAEA,KAAA1C,MACA,EACA6hB,YAAAA,CAAAD,GACA,OAAAA,EAAA/lB,KAAA7F,GAAAuD,OAAAkI,WAAAzL,EAAAusB,QAAA,OAAA7iB,KAAA,KACA,EACAsH,kBAAAA,CAAAjF,EAAAxD,GACA,OAAAwD,GACA,eACA,KAAAuF,SAAA/I,EACA,KAAAikB,WAAA,WAAAjkB,GACA,MAEA,KAAAmE,UACA,EACAA,QAAAA,GACA,SAAA3C,MACA,OAIA,IAAA4L,EAAA,GACA,QAAAnY,KAAA,KAAA8T,SAAA,CACA,IAAAK,EAAA,KAAAL,SAAA9T,GACAmY,EAAA,GAAAnY,SAAAmU,EAAA/N,GACA+R,EAAA,GAAAnY,QAAAmU,EAAAa,IACAmD,EAAA,GAAAnY,QAAAmU,EAAAgB,GACA,CACAgD,EAAA8W,UAAA,KAAA3b,MAAAlO,OAAA,EAGA,IAAAuS,EAAA,GACA,QAAAtE,SACAsE,EAAA3L,KAAA,WACA2L,EAAA3L,KAAA,YACA2L,EAAA3L,KAAA,KAAAqH,cAEA,aAAAS,SAAA1O,OACA,YAEA,YAAA0O,SAAA1O,OAAA,CACAuS,EAAA3L,KAAA,SACA,IAAAkjB,EAAA,KAAAlC,WAAA,GACArV,EAAA3L,KAAAkjB,GACAvX,EAAA3L,KAAAkjB,GACAvX,EAAA3L,KAAAkjB,GACA,KAAAtC,OAAAxnB,OAAA,GACAuS,EAAA3L,KAAA,KAAAihB,mBAEA,MAEAtV,EAAA3L,KAAA,SACA2L,EAAA3L,KAAA,KAAAghB,WAAA,IACArV,EAAA3L,KAAA,KAAAghB,WAAA,IACArV,EAAA3L,KAAA,KAAAghB,WAAA,IACA,KAAAJ,OAAAxnB,OAAA,GACAuS,EAAA3L,KAAA,KAAAihB,mBAEA,CAGA,KAAA1gB,MAAA2C,SAAA,CAAAiJ,YAAAR,SACA,ICvLoQ,MCApQ,IAAI,GAAQ,GAOR,IAAY,OACd,GACA,GACA,IACA,EACA,KACA,KACA,MAIF,SAAe,GAAiB,Q,4ECczB,SAASwX,GAAgBC,EAAcC,GAC5C,OAAO,KAAcF,gBAAgBC,EAAcC,EACrD,CAUO,SAAS,GAAkBC,EAAMC,GACtC,OAAOC,GAAmBF,EAAMC,EAAqB,IAAIrjB,KAAK,GAChE,CAWO,SAASsjB,GAAmBF,EAAMC,EAAqBE,GAC5D,GACEH,EAAKI,UAAYC,KAAKC,oBACtBN,EAAKI,UAAYC,KAAKE,UAElBN,EACFE,EAAYzjB,KAAKjG,OAAOupB,EAAKQ,WAAWhqB,QAAQ,gBAAiB,KAEjE2pB,EAAYzjB,KAAKsjB,EAAKQ,eAEnB,CACL,IAAIjwB,EACJ,IAAKA,EAAIyvB,EAAK9hB,WAAY3N,EAAGA,EAAIA,EAAEkwB,YACjCP,GAAmB3vB,EAAG0vB,EAAqBE,EAE/C,CACA,OAAOA,CACT,CAMO,SAASO,GAAWC,GACzB,MAAO,oBAAqBA,CAC9B,CAkBO,SAASC,GAAMC,GACpB,OAAO,IAAIC,WAAYC,gBAAgBF,EAAK,kBAC9C,CAwCO,SAASG,GAAgBC,EAAaC,GAC3C,OAAO,SAKKlB,EAAMmB,GACd,MAAMhqB,EAAQ8pB,EAAYlgB,UACZqH,IAAZ8Y,EAAwBA,EAAU9wB,KAClC4vB,EACAmB,GAEF,QAAc/Y,IAAVjR,EAAqB,CACvB,MAAMqf,EACJ2K,EAAYA,EAAYrrB,OAAS,GAEnC0gB,EAAM9Z,KAAKvF,EACb,CAEJ,CACF,CAsCO,SAASiqB,GAAyBH,EAAaI,EAAUH,GAC9D,OAAO,SAKKlB,EAAMmB,GACd,MAAMhqB,EAAQ8pB,EAAYlgB,UACZqH,IAAZ8Y,EAAwBA,EAAU9wB,KAClC4vB,EACAmB,GAEF,QAAc/Y,IAAVjR,EAAqB,CACvB,MAAMwpB,EACJQ,EAAYA,EAAYrrB,OAAS,GAE7BoB,OAAoBkR,IAAbiZ,EAAyBA,EAAWrB,EAAKsB,UACtD,IAAI9K,EACAtf,KAAQypB,EACVnK,EAAQmK,EAAOzpB,IAEfsf,EAAQ,GACRmK,EAAOzpB,GAAQsf,GAEjBA,EAAM9Z,KAAKvF,EACb,CAEJ,CACF,CAUO,SAASoqB,GAAyBN,EAAaI,EAAUH,GAC9D,OAAO,SAKKlB,EAAMmB,GACd,MAAMhqB,EAAQ8pB,EAAYlgB,UACZqH,IAAZ8Y,EAAwBA,EAAU9wB,KAClC4vB,EACAmB,GAEF,QAAc/Y,IAAVjR,EAAqB,CACvB,MAAMwpB,EACJQ,EAAYA,EAAYrrB,OAAS,GAE7BoB,OAAoBkR,IAAbiZ,EAAyBA,EAAWrB,EAAKsB,UACtDX,EAAOzpB,GAAQC,CACjB,CAEJ,CACF,CAkEO,SAASqqB,GAAsBC,EAAeC,GACnD,OAAO,SAOKvqB,EAAOgqB,EAAaQ,GAC5B,MAAM1Z,EACJkZ,EAAYA,EAAYrrB,OAAS,GAE7BkqB,EAAO/X,EAAQ+X,KACrB,IAAI4B,EAAWH,OACErZ,IAAbwZ,IACFA,EAAWD,GAGb,MAAM7B,OACkB1X,IAAtBsZ,EAAkCA,EAAoB1B,EAAKF,aAC7D,OAAOD,GAAgBC,EAAoC,EAE/D,CACF,CAS4C0B,KAgCrC,SAASK,GAAgBC,EAAeC,EAAWC,GAExD,IAAItxB,EAAGgb,EACP,IAFAsW,OAA8B5Z,IAAhB4Z,EAA4BA,EAAc,CAAC,EAEpDtxB,EAAI,EAAGgb,EAAKoW,EAAchsB,OAAQpF,EAAIgb,IAAMhb,EAC/CsxB,EAAYF,EAAcpxB,IAAMqxB,EAElC,OAAOC,CACT,CAUO,SAASC,GAAUC,EAAWlC,EAAMmB,EAAaD,GACtD,IAAI3wB,EACJ,IAAKA,EAAIyvB,EAAKmC,kBAAmB5xB,EAAGA,EAAIA,EAAE6xB,mBAAoB,CAC5D,MAAMC,EAAUH,EAAU3xB,EAAEuvB,cAC5B,QAAgB1X,IAAZia,EAAuB,CACzB,MAAMC,EAASD,EAAQ9xB,EAAE+wB,gBACVlZ,IAAXka,GACFA,EAAOvhB,KAAKmgB,EAAS3wB,EAAG4wB,EAE5B,CACF,CACF,CAaO,SAASoB,GAAgB5B,EAAQuB,EAAWlC,EAAMmB,EAAaD,GAGpE,OAFAC,EAAYzkB,KAAKikB,GACjBsB,GAAUC,EAAWlC,EAAMmB,EAAaD,GACfC,EAAYqB,KACvC,CA4FA,IAuBIC,GAiBG,SAAS,KAId,YAHkBra,IAAdqa,IAA+C,qBAAb7rB,WACpC6rB,GAAY7rB,SAAS8rB,eAAeC,eAAe,GAAI,GAAI,OAEtDF,EACT,CC/iBA,MAAMG,GAQJ,IAAAC,CAAK3lB,GACH,IAAKA,EACH,OAAO,KAET,GAAsB,kBAAXA,EAAqB,CAC9B,MAAM4lB,EAAMlC,GAAM1jB,GAClB,OAAO9M,KAAK2yB,iBAAiBD,EAC/B,CACA,OAAIpC,GAAWxjB,GACN9M,KAAK2yB,iBAAyC,GAEhD3yB,KAAK4yB,aAAoC,EAClD,CAMA,gBAAAD,CAAiBD,GACf,IAAK,IAAIvyB,EAAIuyB,EAAI5kB,WAAY3N,EAAGA,EAAIA,EAAEkwB,YACpC,GAAIlwB,EAAE6vB,UAAYC,KAAK4C,aACrB,OAAO7yB,KAAK4yB,aAAoC,GAGpD,OAAO,IACT,CAOA,YAAAA,CAAahD,IACX,SACF,EAGF,YCjDMkD,GAAgB,+BAMf,SAASC,GAASnD,GACvB,OAAOA,EAAKoD,eAAeF,GAAe,OAC5C,CCyBO,SAASG,GAAYrD,GAC1B,MAAM3vB,EAAI,GAAkB2vB,GAAM,GAClC,OAAOsD,GAAkBjzB,EAC3B,CAMO,SAASizB,GAAkBC,GAEhC,MAAMryB,EAAI,4CAA4CsyB,KAAKD,GAC3D,GAAIryB,EACF,OAAOyN,WAAWzN,EAAE,GAGxB,CAMO,SAASuyB,GAAoBzD,GAClC,MAAM3vB,EAAI,GAAkB2vB,GAAM,GAClC,OAAO0D,GAA6BrzB,EACtC,CAMO,SAASqzB,GAA6BH,GAC3C,MAAMryB,EAAI,gBAAgBsyB,KAAKD,GAC/B,GAAIryB,EACF,OAAOyyB,SAASzyB,EAAE,GAAI,GAG1B,CAMO,SAAS0yB,GAAW5D,GACzB,OAAO,GAAkBA,GAAM,GAAOtoB,MACxC,CCrEA,MAAMmsB,GAAiB,CAAC,KAAM,kCAOxBC,GAAUjC,GAAgBgC,GAAgB,CAC9C,sBAAyBtC,GAAyBwC,IAClD,gBAAmBxC,GAAyByC,IAC5C,mBAAsBzC,GAAyB0C,MAGjD,MAAMC,WAAY,GAChB,WAAAnsB,GACE4I,OACF,CAMA,YAAAqiB,CAAahD,GACX,MAAMmE,EAAY5B,GAAgB,CAAC,EAAGuB,GAAS9D,EAAM,IACrD,OAAOmE,GAAwB,IACjC,EAQF,MAAMC,GAAkBvC,GAAgBgC,GAAgB,CACtD,cAAiBtC,GAAyBqC,IAC1C,KAAQrC,GAAyBqC,IACjC,mBAAsBrC,GAAyBqC,IAC/C,WAAcrC,GAAyBqC,IACvC,QAAWrC,GAAyBqC,IACpC,sBAAyBrC,GAAyBqC,MAQ9CS,GAAyBxC,GAAgBgC,GAAgB,CAC7D,MAASzC,GAAyBkD,MAQ9BC,GAAqB1C,GAAgBgC,GAAgB,CACzD,cAAiBtC,GAAyBiD,MAQtCC,GAAuB5C,GAAgBgC,GAAgB,CAC3D,MAAStC,GAAyBmD,IAClC,QAAWnD,GAAyBoD,MAQhCC,GAAc/C,GAAgBgC,GAAgB,CAClD,KAAQtC,GAAyBsD,MAQ7BC,GAAejD,GAAgBgC,GAAgB,CACnD,IAAOzC,GAAyB2D,IAChC,UAAQ3c,IAQJ4c,GAAoBnD,GAAgBgC,GAAgB,CACxD,IAAOtC,GAAyB0D,MAQ5BC,GAA8BrD,GAAgBgC,GAAgB,CAClE,UAAasB,KAQTC,GAAgBvD,GAAgBgC,GAAgB,CACpD,MAAStC,GAAyBqC,IAClC,UAAarC,GAAyBqC,MAQlCyB,GAAyBxD,GAAgBgC,GAAgB,CAC7D,WAAczC,GAAyBkE,MAQnCC,GAA0B1D,GAAgBgC,GAAgB,CAC9D,eAAkBtC,GAAyBqC,IAC3C,aAAgBrC,GAAyBqC,IACzC,YAAerC,GAAyBiE,MAQpCC,GAAiC5D,GAAgBgC,GAAgB,CACrE,SAAYtC,GAAyBqC,IACrC,kBAAqBrC,GAAyBqC,IAC9C,KAAQrC,GAAyBqC,IACjC,MAASrC,GAAyBqC,IAClC,mBAAsBrC,GAAyBqC,IAC/C,YAAerC,GAAyBqC,MAQpC8B,GAA2B7D,GAAgBgC,GAAgB,CAC/D,aAAgBtC,GAAyBqC,IACzC,aAAgBrC,GAAyB4B,IACzC,eAAkB5B,GAAyBoE,MAQ7C,SAAShB,GAAY3E,EAAMmB,GACzB,OAAOoB,GAAgB,CAAC,EAAG6B,GAAiBpE,EAAMmB,EACpD,CAOA,SAASqD,GAAkBxE,EAAMmB,GAC/B,OAAOoB,GAAgB,CAAC,EAAG8B,GAAwBrE,EAAMmB,EAC3D,CAOA,SAASmE,GAAetF,EAAMmB,GAC5B,MAAMjqB,EAAO8oB,EAAK4F,aAAa,QAC/B,GAAK1uB,EAGL,OAAOqrB,GAAgB,CAAC,KAAQrrB,GAAOqtB,GAAoBvE,EAAMmB,EACnE,CAOA,SAASqE,GAAgBxF,EAAMmB,GAC7B,OAAOoB,GAAgB,CAAC,EAAGkC,GAAsBzE,EAAMmB,EACzD,CAOA,SAAS8D,GAAQjF,EAAMmB,GACrB,OAAOoB,GAAgB,CAAC,EAAGqC,GAAa5E,EAAMmB,EAChD,CAOA,SAAS4D,GAAQ/E,EAAMmB,GACrB,MAAM0E,EAAO1C,GAASnD,GACtB,GAAK6F,EAGL,OAAOtD,GACL,CAAC,KAAQsD,GACTR,GACArF,EACAmB,EAEJ,CAOA,SAAS0D,GAAS7E,EAAMmB,GACtB,OAAOoB,GAAgB,CAAC,EAAGuC,GAAc9E,EAAMmB,EACjD,CAOA,SAASgE,GAAcnF,EAAMmB,GAC3B,MAAMjqB,EAAO8oB,EAAK4F,aAAa,QACzBzuB,EAAQorB,GAAgB,CAAC,EAAGyC,GAAmBhF,EAAMmB,GAC3D,IAAKhqB,EACH,OAEF,MAAMwpB,EAAgCQ,EAAYA,EAAYrrB,OAAS,GACvE6qB,EAAOzpB,GAAQC,CACjB,CAOA,SAAS8sB,GAAuBjE,EAAMmB,GACpC,OAAOoB,GAAgB,CAAC,EAAG2C,GAA6BlF,EAAMmB,EAChE,CAOA,SAASuD,GAAU1E,EAAMmB,GACvB,OAAOoB,GAAgB,CAAC,EAAG6C,GAAepF,EAAMmB,EAClD,CAOA,SAAS4C,GAA0B/D,EAAMmB,GACvC,OAAOoB,GAAgB,CAAC,EAAGkD,GAAgCzF,EAAMmB,EACnE,CAOA,SAASwE,GAAmB3F,EAAMmB,GAChC,OAAOoB,GAAgB,CAAC,EAAGgD,GAAyBvF,EAAMmB,EAC5D,CAOA,SAAS6C,GAAoBhE,EAAMmB,GACjC,OAAOoB,GAAgB,CAAC,EAAGmD,GAA0B1F,EAAMmB,EAC7D,CAOA,SAASmD,GAAUtE,EAAMmB,GACvB,OAAOyC,GAAW5D,EACpB,CAEA,YChTM,GAAiB,CAAC,KAAM,mCAMxB8F,GAAqB,CAAC,KAAM,kCAO5B,GAAUjE,GAAgB,GAAgB,CAC9C,SAAYN,GAAyBwE,MASvC,MAAMC,WAAyB,GAC7B,WAAAjuB,GACE4I,QAMAvQ,KAAK61B,WAAa,IAAI,EACxB,CAMA,YAAAjD,CAAahD,GACX,IAAIkG,EAAUlG,EAAK4F,aAAa,WAC5BM,IACFA,EAAUA,EAAQxuB,QAEpB,IAAIyuB,EAAuB/1B,KAAK61B,WAAWjD,aAAahD,GACxD,OAAKmG,GAGLA,EAAqB,WAAaD,EAClCC,EAAuB5D,GACrB4D,EACA,GACAnG,EACA,IAEKmG,GAA8C,MAT5C,IAUX,EAQF,MAAMC,GAAmBvE,GAAgB,GAAgB,CACvD,MAAST,GAAyBiF,IAClC,cAAiBjF,GAAyBkF,MAQtCC,GAAgB1E,GACpB,GACA,CACE,MAAST,GAAyBoF,IAClC,OAAUpF,GAAyBwC,IACnC,kBAAqBxC,GAAyBqF,IAC9C,UAAarF,GAAyBsF,IACtC,YAAetF,GAAyBuF,KAE1C9E,GAAgBiE,GAAoB,CAClC,MAASvE,GAAyBqC,IAClC,SAAYrC,GAAyBqC,IACrC,iBAAoBrC,GAAyBqF,IAC7C,YAAexF,GAAyByF,IACxC,WAActF,GAAyBqC,OASrCkD,GAAgBjF,GACpB,GACA,CACE,UAAaT,GAAyB2F,KAExClF,GAAgBiE,GAAoB,CAClC,MAASvE,GAAyBqC,IAClC,WAAcrC,GAAyBqC,OASrCoD,GAAoBnF,GAAgB,GAAgB,CACxD,cAAiBN,GAAyBqC,IAC1C,oBAAuBrC,GAAyB0F,MAQ5CC,GAA0BrF,GAAgB,GAAgB,CAC9D,iBAAoBb,GAAgBmG,MAQhCC,GAAqBvF,GAAgB,GAAgB,CACzD,WAAcN,GAAyBqC,IACvC,WAAcrC,GAAyBkC,IACvC,WAAclC,GAAyBkC,IACvC,WAAclC,GAAyBkC,IACvC,WAAclC,GAAyBkC,MAQnC4D,GAAoBxF,GACxB,GACA,CACE,QAAWN,GAAyBqC,IACpC,MAASxC,GAAyBwC,KAEpC/B,GAAgBiE,GAAoB,CAClC,WAAcvE,GAAyBqC,OASrC0D,GAAqBzF,GAAgBiE,GAAoB,CAC7D,YAAe9E,GAAgBuG,IAC/B,YAAevG,GAAgBuG,MAQ3BC,GAAc3F,GAClB,GACA,CACE,kBAAqBN,GAAyBqC,IAC9C,WAAcxC,GAAyBqG,KAEzC5F,GAAgBiE,GAAoB,CAClC,aAAgBvE,GAAyBqC,IACzC,WAAcrC,GAAyBqC,IACvC,YAAerC,GAAyBqF,OAStCc,GAAa7F,GACjB,GACA,CACE,cAAiBN,GAAyBgG,IAC1C,iBAAoBhG,GAAyB8B,IAC7C,UAAa9B,GAAyBkC,IACtC,WAAclC,GAAyBkC,IACvC,YAAelC,GAAyBkC,IACxC,aAAgBlC,GAAyBkC,KAE3C5B,GAAgBiE,GAAoB,CAClC,WAAcvE,GAAyBqC,OAS3C,SAASmC,GAAa/F,EAAMmB,GAC1B,OAAOoB,GAAgB,CAAC,EAAG6D,GAAkBpG,EAAMmB,EACrD,CAOA,SAASkF,GAAUrG,EAAMmB,GACvB,OAAOoB,GAAgB,CAAC,EAAGgE,GAAevG,EAAMmB,EAClD,CAOA,SAASmF,GAAkBtG,EAAMmB,GAC/B,OAAOoB,GAAgB,CAAC,EAAGiF,GAAaxH,EAAMmB,EAChD,CAOA,SAASqF,GAAUxG,EAAMmB,GACvB,MAAM9Z,EAAQkb,GAAgB,CAAC,EAAGuE,GAAe9G,EAAMmB,GACvD,IAAK9Z,EACH,OAEF,MAAMsgB,EAA+C,SAAnC3H,EAAK4F,aAAa,aAEpC,OADAve,EAAM,aAAesgB,EACdtgB,CACT,CAOA,SAASof,GAAsBzG,EAAMmB,GACnC,OAAOoB,GAAgB,CAAC,EAAGyE,GAAmBhH,EAAMmB,EACtD,CAOA,SAASuF,GAAe1G,EAAMmB,GAC5B,OAAOoB,GAAgB,CAAC,EAAG8E,GAAmBrH,EAAMmB,EACtD,CAOA,SAASwF,GAAgB3G,EAAMmB,GAC7B,MAAMxnB,EAASqmB,EAAK4F,aAAa,UAC3BgC,EAAW5H,EAAK4F,aAAa,YAC7BiC,EAAe7H,EAAK4F,aAAa,gBACjCkC,EAAW,CAAC,EAUlB,OATInuB,IACFmuB,EAAS,UAAYnuB,GAEnBiuB,IACFE,EAAS,YAAcF,GAErBC,IACFC,EAAS,gBAAkBD,GAEtBC,CACT,CAOA,SAASlB,GAAgB5G,EAAMmB,GAC7B,MAAMjoB,EAAcqpB,GAClB,GACA+E,GACAtH,EACAmB,GAEF,GAA0B,GAAtBjoB,EAAYpD,OAGhB,OAAO,QAAeoD,EACxB,CAOA,SAAS2tB,GAAuB7G,EAAMmB,GACpC,MAAM4G,EAAM/H,EAAK4F,aAAa,OACxB1sB,EAAcqpB,GAClB,GACA+E,GACAtH,EACAmB,GAEF,GAA0B,GAAtBjoB,EAAYpD,OAGhB,MAAO,CAAC6U,QAAQ,QAAezR,GAAc6uB,IAAKA,EACpD,CAOA,SAAShB,GAAc/G,EAAMmB,GAC3B,MAAM6G,EAAS,CAAC,EAGhB,OAFAA,EAAO,UAAYhI,EAAK4F,aAAa,UACrCoC,EAAO,QAAU7E,GAASnD,GACnBgI,CACT,CAOA,SAAST,GAAgBvH,EAAMmB,GAC7B,MAAMjoB,EAAc0qB,GAAW5D,GAAMnqB,MAAM,OAC3C,IAAKqD,GAAqC,GAAtBA,EAAYpD,OAC9B,OAEF,MAAM5C,GAAKgG,EAAY,GACjB9H,GAAK8H,EAAY,GACvB,OAAIikB,MAAMjqB,IAAMiqB,MAAM/rB,QAAtB,EAGO,CAAC8B,EAAG9B,EACb,CAOA,SAASq2B,GAAezH,EAAMmB,GAC5B,OAAOoB,GAAgB,CAAC,EAAGmF,GAAY1H,EAAMmB,EAC/C,CAOA,SAAS8F,GAAyBjH,EAAMmB,GACtC,OAAOoB,GAAgB,GAAI2E,GAAyBlH,EAAMmB,EAC5D,CAOA,SAASgG,GAAqBnH,EAAMmB,GAClC,OAAOoB,GAAgB,CAAC,EAAG6E,GAAoBpH,EAAMmB,EACvD,CAEA,Y,gBCnYO,SAAS8G,GAAaC,EAAK3vB,GAEhC,MAAM4vB,EAAY,GAElBh1B,OAAOqJ,KAAKjE,GAAQ3C,SAAQ,SAAUhD,GAClB,OAAd2F,EAAO3F,SAA6BwV,IAAd7P,EAAO3F,IAC/Bu1B,EAAUzrB,KAAK9J,EAAI,IAAM+J,mBAAmBpE,EAAO3F,IAEvD,IACA,MAAMw1B,EAAKD,EAAUvrB,KAAK,KAK1B,OAHAsrB,EAAMA,EAAI1xB,QAAQ,QAAS,IAE3B0xB,GAAOA,EAAItvB,SAAS,KAAO,IAAM,IAC1BsvB,EAAME,CACf,CCiBA,MAAMC,WAAqBrN,EAAA,EAIzB,WAAAjjB,CAAYC,GACV2I,MAAM,CACJgK,OAAQ3S,EAAQ2S,OAChB+N,OAAQ1gB,EAAQ0gB,OAChB4P,QAAStwB,EAAQswB,QACjBzP,YAAa7gB,EAAQ6gB,YACrB9L,SAAU/U,EAAQ+U,SAClBmB,UAAWlW,EAAQkW,UACnBqa,MAAOvwB,EAAQuwB,QAOjBn4B,KAAKo4B,WAAaxwB,EAAQywB,SAC5B,CAMA,WAAAC,CAAY7wB,GACV,OAAOzH,KAAKo4B,WAAW3wB,EACzB,CAOA,YAAA8wB,GACE,OAAOv4B,KAAKo4B,UACd,EAiBK,SAASI,GACdC,EACAle,EACAme,GAGA,MAAMjQ,EAAc,GAEd4P,EAAY,GAEZH,EAAU,GAEVpa,EAAY,GAEZqa,EAAQ,GAEdO,OAAgC1gB,IAAjB0gB,EAA6BA,EAAe,GAE3D,MAAMC,EAAuB,eACvBC,EAAoB,aACpBC,EAAqB,aACrBC,EAA2B,mBAC3BC,EAAwB,gBACxBC,EAAoB,YACpBC,EAAqB,aAErBvU,EAAO+T,EAAUE,GACjBrc,GAAa,IAAAuC,KAAc6F,GAC3BwU,EAAgB5c,EAAW6c,mBAE3BC,EAAiE,MAAhD9c,EAAW+c,qBAAqBC,OAAO,EAAG,GAmDjE,OAjDAb,EAAUG,GAAmBW,MAAK,SAAUl5B,EAAGa,GAC7C,OAAOA,EAAE43B,GAA4Bz4B,EAAEy4B,EACzC,IAEAL,EAAUG,GAAmBpzB,SAAQ,SAAUg0B,GAC7C,IAAIC,EAsBJ,GAlBEA,IADEf,EAAahzB,OAAS,IACNgzB,EAAajW,MAAK,SAAUiX,GAC5C,OAAIF,EAAIX,IAAuBa,EAAOd,KAKjCY,EAAIX,GAAoBrwB,SAAS,MAElCiwB,EAAUI,GAAsB,IAAMW,EAAIX,KAC1Ca,EAAOd,EAIb,IAKEa,EAAiB,CACnBpB,EAAU/rB,KAAKktB,EAAIX,IACnB,MAAM1pB,EAC6B,MAAhCqqB,EAAIV,GAAuCI,EACxCS,EAAYH,EAAIR,GAChBY,EAAaJ,EAAIP,GACnBG,EACFlB,EAAQ5rB,KAAK,CACXktB,EAAIT,GAAuB,GAC3BS,EAAIT,GAAuB,KAG7Bb,EAAQ5rB,KAAKktB,EAAIT,IAEnBtQ,EAAYnc,KAAK6C,GACjB2O,EAAUxR,KACRqtB,GAAaC,EAAaD,EAAY,CAACA,EAAWC,IAEpDzB,EAAM7rB,KAAK,CAACktB,EAAI,eAAgBA,EAAI,iBACtC,CACF,IAEO,IAAIvB,GAAa,CACtB1d,OAAQA,EACR2d,QAASA,EACTzP,YAAaA,EACb4P,UAAWA,EACXva,UAAWA,EACXqa,MAAOA,GAEX,C,gBCtHA,MAAM,WAAa0B,GAAA,EAIjB,WAAAlyB,CAAYC,GAGV,MAAMkyB,OACwB9hB,IAA5BpQ,EAAQkyB,gBAAgClyB,EAAQkyB,gBAAkB,MAI9Dvd,EAAW3U,EAAQ2U,SAEzB,IAAIwd,EAAOnyB,EAAQmyB,UACN/hB,IAAT+hB,QAAsC/hB,IAAhBpQ,EAAQM,MAChC6xB,GAAO,SAAUnyB,EAAQM,MAG3BqI,MAAM,CACJqM,aAAchV,EAAQgV,aACtBC,wBAAyBjV,EAAQiV,wBACjCnD,UAAW9R,EAAQ8R,UACnBsgB,YAAapyB,EAAQoyB,YACrB/c,YAAarV,EAAQqV,YACrBX,WAAY1U,EAAQ0U,WACpB2d,2BAA4BryB,EAAQqyB,2BACpCC,UAAWtyB,EAAQsyB,UACnB3d,SAAUA,EACV4d,iBAAkBvyB,EAAQuyB,iBAC1BC,eAAgBxyB,EAAQwyB,eACxBL,KAAMA,EACNhd,WAAyB/E,IAAlBpQ,EAAQmV,OAAsBnV,EAAQmV,MAC7CC,WAAYpV,EAAQoV,WACpBqd,WAAYzyB,EAAQyyB,aAOtBr6B,KAAKs6B,cAA+BtiB,IAApBpQ,EAAQkuB,QAAwBluB,EAAQkuB,QAAU,QAMlE91B,KAAKu6B,aAA6BviB,IAAnBpQ,EAAQ2B,OAAuB3B,EAAQ2B,OAAS,aAM/DvJ,KAAKw6B,iBACoBxiB,IAAvBpQ,EAAQ6yB,WAA2B7yB,EAAQ6yB,WAAa,CAAC,EAM3Dz6B,KAAK06B,OAAS9yB,EAAQiF,MAMtB7M,KAAK26B,WAAa/yB,EAAQ6wB,UAM1Bz4B,KAAKga,OAASpS,EAAQqP,MAStBjX,KAAK46B,iBAAmBd,EAExB95B,KAAK+nB,OAAO/nB,KAAK66B,wBAEbd,GAAQA,EAAKr0B,OAAS,IACxB1F,KAAK86B,iBAAkB,SACrBf,EAAKpxB,IAAI3I,KAAK+6B,uBAAuBrd,KAAK1d,QAGhD,CAOA,OAAAg7B,CAAQjB,GACN/5B,KAAK+5B,KAAOA,EACZ,MAAM9vB,EAAM8vB,EAAKvtB,KAAK,MACtBxM,KAAKi7B,oBACH,SACElB,EAAKpxB,IAAI3I,KAAK+6B,uBAAuBrd,KAAK1d,QAE5CiK,EAEJ,CASA,aAAAixB,GACE,OAAOl7B,KAAKw6B,WACd,CAOA,SAAAW,GACE,OAAOn7B,KAAKu6B,OACd,CAOA,QAAA3pB,GACE,OAAO5Q,KAAK06B,MACd,CAOA,YAAAU,GACE,OAAOp7B,KAAK26B,UACd,CAOA,kBAAAU,GACE,OAAOr7B,KAAK46B,gBACd,CAOA,QAAAU,GACE,OAAOt7B,KAAKga,MACd,CAOA,UAAAuhB,GACE,OAAOv7B,KAAKs6B,QACd,CAMA,oBAAAO,GACE,MAAMW,EAAMx7B,KAAK+5B,KAAO/5B,KAAK+5B,KAAK5jB,MAAM,GAAK,GAC7C,IAAK,MAAMlM,KAAOjK,KAAKw6B,YACrBgB,EAAIlvB,KAAKrC,EAAM,IAAMjK,KAAKw6B,YAAYvwB,IAExC,OAAOuxB,EAAIhvB,KAAK,IAClB,CAOA,gBAAAivB,CAAiBhB,GACf13B,OAAO4T,OAAO3W,KAAKw6B,YAAaC,GAChCz6B,KAAK+nB,OAAO/nB,KAAK66B,uBACnB,CAMA,sBAAAE,CAAuBvD,GACrB,MAAMsC,EAAkB95B,KAAK46B,iBAIvB/iB,EAAU,CACd,MAAS7X,KAAK06B,OACd,MAAS16B,KAAKga,OACd,cAAiBha,KAAK26B,YAGD,OAAnBb,GACF/2B,OAAO4T,OAAOkB,EAAS,CACrB,QAAW,OACX,QAAW,UACX,QAAW7X,KAAKs6B,SAChB,OAAUt6B,KAAKu6B,UAQnB/C,EACqB,OAAnBsC,EACIjC,GAAaL,EAAU3f,GACvB2f,EAASpxB,QAAQ,eAAe,SAAUtF,EAAGF,GAC3C,OAAOA,EAAE0H,gBAAiBuP,EAAUA,EAAQjX,EAAE0H,eAAiBxH,CACjE,IAEN,MAAMyb,EACJvc,KACF,SACMy6B,EAAaz6B,KAAKw6B,YAExB,OAAO,SAOKlb,EAAWG,EAAYnD,GAC/B,IAAKgD,EACH,OAEF,MAAMoc,EAAe,CACnB,WAAcnf,EAAS+b,YAAYhZ,EAAU,IAC7C,QAAWA,EAAU,GACrB,QAAWA,EAAU,IAEvBvc,OAAO4T,OAAO+kB,EAAcjB,GAC5B,IAAIvyB,EAAMsvB,EAQV,OANEtvB,EADqB,OAAnB4xB,EACIjC,GAAa3vB,EAAKwzB,GAElBxzB,EAAI9B,QAAQ,eAAe,SAAUtF,EAAGF,GAC5C,OAAO86B,EAAa96B,EACtB,IAEKsH,CAEX,CACF,EAGF,YA0BO,SAASyzB,GAAwBC,EAASC,GAC/C,MAAMC,EAASF,EAAQ,YAAY,SAC7Br7B,EAAIu7B,GAAQrZ,MAAK,SAAU+W,GAC/B,OAAOA,EAAI,eAAiBqC,EAAO,QACrC,IACA,IAAKt7B,EACH,OAAO,KAET,MAAMw7B,EAAiBH,EAAQ,YAAY,iBAC3C,IAAII,EAGAA,EAFAz7B,EAAE,qBAAqBmF,OAAS,EAC9B,eAAgBm2B,EACZt7B,EAAE,qBAAqB07B,WAAU,SAAUzC,GAC/C,MAAM0C,EAAgBH,EAAetZ,MAAK,SAAU0Z,GAClD,OAAOA,EAAG,eAAiB3C,EAAI,gBACjC,IACM4C,EAAeF,EAAc,gBAC7BG,GAAQ,IAAAxd,KAAcud,GACtBE,GAAQ,IAAAzd,KAAcgd,EAAO,eACnC,OAAIQ,GAASC,GACJ,IAAAne,YAAWke,EAAOC,GAEpBF,GAAgBP,EAAO,aAChC,IAEMt7B,EAAE,qBAAqB07B,WAAU,SAAUzC,GAC/C,OAAOA,EAAI,kBAAoBqC,EAAO,YACxC,IAGI,EAEJG,EAAM,IACRA,EAAM,GAER,MAAMvD,EAEHl4B,EAAE,qBAAqBy7B,GAAK,iBACzBtD,EAEHn4B,EAAE,qBAAqBy7B,GAAK,uBAE/B,IAAIzyB,EAAgChJ,EAAE,UAAU,GAC5C,WAAYs7B,IACdtyB,EAASsyB,EAAO,WAElBG,EAAMz7B,EAAE,SAAS07B,WAAU,SAAUzC,GACnC,MAAI,UAAWqC,EACNrC,EAAI,UAAYqC,EAAO,SAEzBrC,EAAI,YACb,IACIwC,EAAM,IACRA,EAAM,GAER,MAAM/kB,EAA+B1W,EAAE,SAASy7B,GAAK,cAE/CvB,EAAa,CAAC,EAChB,cAAel6B,GACjBA,EAAE,aAAaiF,SAAQ,SAAUg0B,EAAK+C,EAAOnW,GAC3C,MAAMnc,EAAMuvB,EAAI,cAChB,IAAIzyB,EAAQyyB,EAAI,gBACFxhB,IAAVjR,IACFA,EAAQyyB,EAAI,SAAS,IAEvBiB,EAAWxwB,GAAOlD,CACpB,IAGF,MAAMy1B,EAAaZ,EAAQ,YAAY,iBACjCa,EAAeD,EAAW/Z,MAAK,SAAU+W,GAC7C,OAAOA,EAAI,eAAiBf,CAC9B,IAEA,IAAInc,EACJ,MAAMoI,EAAO+X,EAAa,gBAI1B,GAHI/X,IACFpI,GAAa,IAAAuC,KAAc6F,IAEzB,eAAgBmX,EAAQ,CAC1B,MAAMa,GAAa,IAAA7d,KAAcgd,EAAO,eACpCa,IACGpgB,KAAc,IAAA6B,YAAWue,EAAYpgB,KACxCA,EAAaogB,GAGnB,CAEA,IAAI3f,GAAQ,EACZ,MAAM4f,EAA2D,MAAhDrgB,EAAW+c,qBAAqBC,OAAO,EAAG,GAE3D,IAAIsD,EAASH,EAAaI,WAAW,GAGjCC,EAAsB,CACxBC,WAAY,EACZC,WAAY,EAEZC,WAAYL,EAAOM,YAAc,EACjCC,WAAYP,EAAOQ,aAAe,GAIpC,GAAI1E,EAAc,CAChBoE,EAAsBpE,EAAaA,EAAahzB,OAAS,GACzD,MAAM5E,EAAI27B,EAAaI,WAAWpa,MAC/B4a,GACCA,EAAgBC,aAAeR,EAAoBD,YACnDJ,EAAaa,WAAa,IAAMD,EAAgBC,aAC9CR,EAAoBD,aAEtB/7B,IACF87B,EAAS97B,EAEb,CAEA,MAAMqO,EACuB,MAA1BytB,EAAOW,iBAA8BjhB,EAAW6c,mBAC7C7Q,EAASqU,EACX,CAACC,EAAOY,cAAc,GAAIZ,EAAOY,cAAc,IAC/CZ,EAAOY,cACLC,EAAYb,EAAOc,UAAYvuB,EAC/BwuB,EAAYf,EAAOgB,WAAazuB,EACtC,IAAI0uB,EAAkBpB,EAAa,eAC/BoB,GAAmBlB,IACrBkB,EAAkB,CAChBA,EAAgB,GAChBA,EAAgB,GAChBA,EAAgB,GAChBA,EAAgB,KAGpB,IAAItjB,EAAS,CACX+N,EAAO,GAAKmV,EAAYX,EAAoBC,WAE5CzU,EAAO,GAAKqV,GAAa,EAAIb,EAAoBK,YACjD7U,EAAO,GAAKmV,GAAa,EAAIX,EAAoBG,YACjD3U,EAAO,GAAKqV,EAAYb,EAAoBE,YAG9C,QACsBhlB,IAApB6lB,KACC,QAAeA,EAAiBtjB,GACjC,CACA,MAAMujB,EAAmBv9B,EAAE,oBACrBw9B,GAAwB,IAAAlf,KAAc,aAAasQ,YAEzD,GADA5U,EAASsjB,EACLC,EACF/gB,EACE+gB,EAAiB,KAAOC,EAAsB,IAC9CD,EAAiB,KAAOC,EAAsB,OAC3C,CACL,MAAMC,GAAuB,IAAArvB,iBAC3BkvB,EACApB,EAAa,gBACb,aAGF1f,EACEihB,EAAqB,GAAK,OAASD,EAAsB,IACzDC,EAAqB,GAAK,OAASD,EAAsB,EAC7D,CACF,CAEA,MAAMxhB,EAAWic,GACfiE,EACAliB,EACAme,GAIIqB,EAAO,GACb,IAAID,EAAkB+B,EAAO,mBAG7B,GAFA/B,OAAsC9hB,IAApB8hB,EAAgCA,EAAkB,GAGlE,uBAAwB8B,GACxB,YAAaA,EAAQ,sBACrB,CACA,MAAMqC,EAAOrC,EAAQ,sBAAsB,WAAW,OAAO,QAAQ,OAErE,IAAK,IAAIt7B,EAAI,EAAGgb,EAAK2iB,EAAKv4B,OAAQpF,EAAIgb,IAAMhb,EAC1C,GAAI29B,EAAK39B,GAAG,cAAe,CACzB,MAAM49B,EAAaD,EAAK39B,GAAG,cAAcmiB,MAAK,SAAUjS,GACtD,MAA0B,eAAnBA,EAAQ,OACjB,IACM2tB,EAAYD,EAAW,iBAAiB,SAM9C,GAJwB,KAApBpE,IAEFA,EAAkBqE,EAAU,IAEN,QAApBrE,EAKF,MAJIqE,EAAU31B,SAAS,QACrBuxB,EAAKztB,KAA4B2xB,EAAK39B,GAAG,QAK/C,MAAW29B,EAAK39B,GAAG,UACjBw5B,EAAkB,MAClBC,EAAKztB,KAA4B2xB,EAAK39B,GAAG,SAG/C,CAWA,OAVoB,IAAhBy5B,EAAKr0B,SACPo0B,EAAkB,OAClBv5B,EAAE,eAAeiF,SAAQ,SAAUgL,GACD,SAA5BA,EAAQ,kBACVjH,EAASiH,EAAQ,UACjBupB,EAAKztB,KAA4BkE,EAAQ,aAE7C,KAGK,CACLupB,KAAMA,EACNltB,MAAOgvB,EAAO,SACdpD,UAAWA,EACXlvB,OAAQA,EACR+S,WAAYA,EACZwd,gBAAiBA,EACjBvd,SAAUA,EACVtF,MAAOA,EACPwjB,WAAYA,EACZ1d,MAAOA,EACPid,YAAa6B,EAAO,eAExB,C,wCChjBIuC,GAAsB,cAAgC,cACxD,WAAAz2B,CAAYC,GAEV,IAAI4I,EAAU,KAAe0R,OAAO,MAAO,CACzChc,WAAY0B,EAAQ1B,WAAa,IAAM,gBAClC0B,EAAQ4F,OAAS,GAAK,gCACtB5F,EAAQy2B,WAAa,gBAAkB,MAI9C9tB,MAAM,CACJC,QAASA,EACThD,OAAQ5F,EAAQ4F,SAIlBxN,KAAKs+B,WAAa,KAAepc,OAAO,MAAO,CAC7Chc,UAAW,YACXq4B,OAAQv+B,KAAKwQ,UAIfxQ,KAAKw+B,SAAW,KAAetc,OAAO,MAAO,CAC3Chc,UAAW,aACXq4B,OAAQv+B,KAAKwQ,UAGX5I,EAAQy2B,aAEVr+B,KAAKy+B,UAAU,CACbv4B,UAAW,aACXw4B,YAAa,WACX,IAAI5T,EAAO9qB,KAAK6e,IAAI,QAChBiM,GAAQ,EACVA,IAEAA,EAAOnf,KAAK2J,IAAI,EAAGwV,EAAO,IAE5BA,EAAOnf,KAAKC,MAAa,IAAPkf,GAAc,IAChC9qB,KAAK2+B,QAAQ7T,EACf,EAAEpN,KAAK1d,QAGTA,KAAKy+B,UAAU,CACbv4B,UAAW,cACXw4B,YAAa,WACX,IAAI5T,EAAO9qB,KAAK6e,IAAI,QAChBiM,EAAO,EACTA,IAEAA,GAAQ,GAEVA,EAAOnf,KAAKC,MAAa,IAAPkf,GAAc,IAChC9qB,KAAK2+B,QAAQ7T,EACf,EAAEpN,KAAK1d,SAKXA,KAAK4+B,aAAe,KAAe1c,OAAO,MAAO,CAC/Chc,UAAW,iBACXq4B,OAAQv+B,KAAKwQ,UAIfxQ,KAAKwQ,QAAQjD,iBAAiB,YAAa,WACrCvN,KAAK6+B,SACP7+B,KAAK6+B,QAAQrF,IAAIzzB,UAAUyB,OAAO,YACtC,EAAEkW,KAAK1d,OAGP,IAAI8+B,EAAiB,KACrB9+B,KAAKs+B,WAAW/wB,iBAAiB,SAAU,WACzCvN,KAAK++B,iBACDD,IACFnxB,aAAamxB,GACbA,EAAiB,MAEnBA,EAAiBv3B,WAAW,WAC1BvH,KAAK4O,cAAc,CACjBC,KAAM,SACNmwB,KAAMh/B,KAAKi/B,UACXC,UAAWl/B,KAAKi/B,QAAQ,SACxBE,QAASn/B,KAAKi/B,QAAQ,QAE1B,EAAEvhB,KAAK1d,MAAO4H,EAAQw3B,eAAiB,GACzC,EAAE1hB,KAAK1d,OAIP,KAAeq/B,UAAUr/B,KAAKs+B,WAAY,CACxCgB,OAAQ,SAAUp+B,GAEhBlB,KAAKu/B,QAAUr+B,CACjB,EAAEwc,KAAK1d,QAGTA,KAAKw/B,OAAS,GAGdx/B,KAAKy/B,YAAc,EACnBz/B,KAAKqgB,IAAI,WAAYzY,EAAQ83B,UAAY,KACzC1/B,KAAKqgB,IAAI,UAAWzY,EAAQ+3B,SAAWC,KACvC5/B,KAAKqgB,IAAI,UAAWzY,EAAQi4B,UAAYD,KACxC5/B,KAAKqgB,IAAI,aAAczY,EAAQk4B,YAC/B9/B,KAAKqgB,IAAI,UAAWzY,EAAQ8U,SAAW,IACvC1c,KAAKqgB,IAAI,UAAWzY,EAAQ6U,SAAW,GACvCzc,KAAK+/B,YAAYn4B,EAAQo4B,UACrBp4B,EAAQq4B,UACVjgC,KAAKkgC,SAAWt4B,EAAQq4B,SACtBr4B,EAAQu4B,iBACVngC,KAAKogC,gBAAkBx4B,EAAQu4B,gBAC7Bv4B,EAAQy4B,iBACVrgC,KAAKsgC,gBAAkB14B,EAAQy4B,gBAGjCrgC,KAAKugC,YAAY34B,EAAQc,UAAYd,EAAQkF,OAAQlF,EAAQkjB,KAC/D,CAMA,MAAA0V,CAAO73B,GACL4H,MAAMiwB,OAAO73B,GACb3I,KAAK2+B,QAAQ3+B,KAAK6e,IAAI,SAAW,GAAG,EACtC,CAQA,SAAA4f,CAAUx8B,GACRjC,KAAKwQ,QAAQzK,UAAUsB,IAAI,gBAC3B,KAAe6a,OAAO,SAAU,CAC9Bhc,UAAWjE,EAAOiE,gBAAa8R,EAC/B0V,MAAOzrB,EAAOyrB,MACd+S,KAAMx+B,EAAOw+B,KACb7R,MAAO3sB,EAAOy8B,YACdH,OAAQv+B,KAAKw+B,UAEjB,CAIA,WAAAuB,CAAYr6B,GACc,kBAAb,IAEPA,EADE,KAAKN,KAAKM,GACkB,IAArB6I,WAAW7I,GACX,MAAMN,KAAKM,GACU,IAArB6I,WAAW7I,GAAiB,GAC5B,KAAKN,KAAKM,GACW,IAArB6I,WAAW7I,GAAiB,KAC5B,KAAKN,KAAKM,GACW,IAArB6I,WAAW7I,GAAiB,KAAO,GACnC,KAAKN,KAAKM,GACW,IAArB6I,WAAW7I,GAAiB,KAAO,GAAK,IAExC,GAGb1F,KAAKqgB,IAAI,WAAY3a,GAAU,GAC3BA,EACF1F,KAAKwQ,QAAQzK,UAAUsB,IAAI,eAE3BrH,KAAKwQ,QAAQzK,UAAUyB,OAAO,eAChCxH,KAAK2+B,QAAQ3+B,KAAK6e,IAAI,QACxB,CAMA,QAAAqhB,CAAS5wB,GACP,OAAOA,EAAQuP,IAAI,SAAW,EAChC,CAMA,eAAAuhB,CAAgB9wB,GACd,OAAQA,GAAWA,EAAQuP,IAAOvP,EAAQuP,IAAI,QAAU,IAC1D,CAMA,eAAAyhB,GAEA,CAIA,WAAAI,GACE,OAAO1gC,KAAKwQ,QAAQzK,UAAUC,SAAS,eACzC,CAIA,QAAAqH,CAASnM,GACHA,EACFlB,KAAKwQ,QAAQzK,UAAUsB,IAAI,gBAE3BrH,KAAKwQ,QAAQzK,UAAUyB,OAAO,gBAChCxH,KAAK4O,cAAc,CAAEC,KAAM,WAAY8xB,UAAW3gC,KAAK0gC,eACzD,CAGA,MAAA7tB,GACE7S,KAAKwQ,QAAQzK,UAAU8M,OAAO,gBAC9B7S,KAAK4O,cAAc,CAAEC,KAAM,WAAY8xB,UAAW3gC,KAAK0gC,eACzD,CAKA,WAAAH,CAAY73B,EAAUoiB,GACpB9qB,KAAK4gC,UAAY5gC,KAAK6gC,QAAU,KAC5Bn4B,aAAoB,cACtB1I,KAAK6gC,QAAUn4B,EAEf1I,KAAK4gC,UADEl4B,aAAoBpD,MACVoD,EAEA,GACnB1I,KAAK2+B,QAAQ7T,EACf,CAKA,WAAAgW,GACE,OAAO9gC,KAAK4gC,WAAa5gC,KAAK6gC,QAAQC,aACxC,CAKA,OAAAnC,CAAQ7T,EAAMiW,GACZ,GAAK/gC,KAAKqO,SAAV,CAEKyc,IACHA,EAAO9qB,KAAK6e,IAAI,SAClBiM,EAAOnf,KAAK2J,IAAItV,KAAK6e,IAAI,WAAYlT,KAAK8J,IAAIzV,KAAK6e,IAAI,WAAYiM,GAAQ,IAC3E9qB,KAAKqgB,IAAI,OAAQyK,GACjB9qB,KAAKs+B,WAAWt3B,UAAY,GAC5B,IACItG,EAAGsgC,EADHt4B,EAAW1I,KAAK8gC,cAIhBG,EAAQjhC,KAAKw/B,OAAS,GAC1B92B,EAASlD,QAAQ,SAAUvE,IACrBP,EAAIV,KAAKogC,gBAAgBn/B,MACrBP,aAAaoE,OACjBpE,EAAI,IAAIoE,KAAKpE,IAEXV,KAAKsgC,kBACPU,EAAKhhC,KAAKsgC,gBAAgBr/B,GACpB+/B,aAAcl8B,OAClBk8B,EAAK,IAAIl8B,KAAKk8B,KAGbjU,MAAMrsB,IACTugC,EAAM30B,KAAK,CACT0yB,KAAMt+B,EACNwgC,IAAKnU,MAAMiU,GAAM,KAAOA,EACxB1xB,QAASrO,IAIjB,EAAEyc,KAAK1d,OAEPihC,EAAM1H,MAAK,SAAUl5B,EAAGa,GACtB,OAAQb,EAAE2+B,KAAO99B,EAAE89B,MAAQ,EAAK3+B,EAAE2+B,OAAS99B,EAAE89B,KAAO,EAAI,CAC1D,IAGA,IAAImC,EAAM,KAAejf,OAAO,MAAO,CACrCqc,OAAQv+B,KAAKs+B,aAIXhpB,EAAMtV,KAAKohC,SAAWz1B,KAAK2J,IAAItV,KAAK6e,IAAI,WAAYoiB,EAAMv7B,OAASu7B,EAAM,GAAGjC,KAAOY,KACnFnqB,EAAMzV,KAAKqhC,SAAW11B,KAAK8J,IAAIzV,KAAK6e,IAAI,WAAYoiB,EAAMv7B,OAASu7B,EAAMA,EAAMv7B,OAAS,GAAGs5B,MAAQY,KAClG7Q,SAASzZ,KACZtV,KAAKohC,SAAW9rB,EAAM,IAAIxQ,MACvBiqB,SAAStZ,KACZzV,KAAKqhC,SAAW5rB,EAAM,IAAI3Q,MAC5B,IAAIw8B,EAAS7rB,EAAMH,EACfoqB,EAAW1/B,KAAK6e,IAAI,YACpBxO,EAAQrQ,KAAKuhC,QAAUD,EAAQ5B,EAAWA,EAAW4B,EAAQ,GAAKxW,EAEtExV,EAAMtV,KAAKohC,SAAWphC,KAAKohC,SAAW,GAAK/wB,EAC3CixB,GAAS7rB,EAAMH,GAAOjF,EACtB,KAAeb,SAAS2xB,EAAK,CAC3BxV,MAAO2V,EACP5B,SAAU,UAIZ1/B,KAAKwhC,UAAUL,EAAK7rB,EAAKG,EAAKpF,GAG1BrQ,KAAK6e,IAAI,YACX,KAAerP,SAASxP,KAAK4+B,aAAc,CAAEjT,MAAO3rB,KAAK6e,IAAI,YAAcxO,IAE3E,KAAeb,SAASxP,KAAK4+B,aAAc,CAAEjT,MAAO,KAItD,IAAI8V,EAAO,GACPC,EAAa,KAAepG,SAASt7B,KAAKs+B,WAAY,cAGtDqD,EAAO,KAAezf,OAAO,MAAO,CACtChc,UAAW,cACXq4B,OAAQ4C,IAIVF,EAAMz7B,QAAQ,SAAUvE,GAYtB,IAXA,IAAIP,EAAIO,EAAE+9B,KACNn/B,EAAIoB,EAAEu4B,IAAM,KAAetX,OAAO,MAAO,CAC3Chc,UAAW,aACX+Q,MAAO,CACL2qB,KAAMj2B,KAAKC,OAAOlL,EAAI4U,GAAOjF,IAE/BowB,KAAMzgC,KAAKkgC,SAASj/B,EAAEqO,SACtBivB,OAAQoD,IAGNE,EAAMhiC,EAAEiiC,iBAAiB,OACpBxhC,EAAI,EAAGA,EAAIuhC,EAAIn8B,OAAQpF,IAC9BuhC,EAAIvhC,GAAGyhC,YAAc,WAAc,OAAO,CAAO,EAI/C9gC,EAAEigC,KACJ,KAAe1xB,SAAS3P,EAAG,CACzBmiC,UAAW/gC,EAAEigC,IAAMxgC,GAAK2P,EACxBsb,OAAQ1qB,EAAEigC,IAAMxgC,GAAK2P,EACrBqvB,SAAU,UAGd,IASIuC,EAAK1hC,EATLqhC,EAAO,KAAetG,SAASz7B,EAAG,QAUtC,IARAA,EAAE0N,iBAAiB,QAAS,WACrBvN,KAAKu/B,SACRv/B,KAAK4O,cAAc,CAAEC,KAAM,SAAUS,QAASrO,EAAEqO,SAEpD,EAAEoO,KAAK1d,OAIFiiC,EAAM,EAAG1hC,EAAIkhC,EAAKQ,GAAMA,IAC3B,GAAIL,EAAOrhC,EACT,MAGJkhC,EAAKQ,GAAOL,EAAO,KAAetG,SAASz7B,EAAG,SAC9C,KAAe2P,SAAS3P,EAAG,CAAEqiC,IAAKD,EAAMP,GAC1C,EAAEhkB,KAAK1d,OACPA,KAAKmiC,QAAUV,EAAK/7B,OAEhBq7B,GACF/gC,KAAKoiC,QAAQpiC,KAAKohC,SAAU,CAAEiB,MAAM,EAAOC,SAAU,UAEvDtiC,KAAK4O,cAAc,CACjBC,KAAM,SACNmwB,KAAMh/B,KAAKi/B,UACXC,UAAWl/B,KAAKi/B,QAAQ,SACxBE,QAASn/B,KAAKi/B,QAAQ,QAnIhB,CAqIV,CAMA,kBAAAsD,CAAmBvD,GACjB,OAAQA,EAAOh/B,KAAKohC,UAAYphC,KAAKuhC,MACvC,CAMA,kBAAAiB,CAAmBC,GACjB,OAAOA,EAASziC,KAAKuhC,OAASvhC,KAAKohC,QACrC,CAMA,cAAArC,CAAe2D,GACb1iC,KAAKy/B,YAAciD,OACA1qB,IAAf0qB,IACF1iC,KAAKs+B,WAAWoE,WAAaA,EAEjC,CAKA,cAAAC,GAEE,YAAyB3qB,IAArBhY,KAAKy/B,YACAz/B,KAAKs+B,WAAWoE,WAGhB1iC,KAAKy/B,WAEhB,CAKA,SAAA+B,CAAUL,EAAK7rB,EAAKG,EAAKpF,GAEvB,IAII3P,EAAGkiC,EAAIC,EAAOC,EAJdC,EAAO,KAAe7gB,OAAO,MAAO,CACtChc,UAAW,WACXq4B,OAAQ4C,IAGN6B,EAAK,KAAe1H,SAASyH,EAAM,QACnCE,EAAS,KAAe3H,SAASyH,EAAM,UAEvCG,EAAO,IAAKp+B,KAAK9E,KAAKohC,UAAW+B,cACrCP,GAAM,IAAK99B,KAAK,GAAIs+B,YAAY/8B,OAAO68B,IAAS,IAAIp+B,KAAK,GAAGs+B,YAAY/8B,OAAO68B,EAAO,KAAO7yB,EAC7F,IAAIgzB,EAAQ13B,KAAKC,MAAM,EAAIq3B,EAASL,GAAM,EAC1C,MAAO,EAAM,CAEX,GADAliC,EAAI,IAAIoE,KAAK,GAAGs+B,YAAYF,GACxBxiC,EAAIV,KAAKqhC,SACX,MACF,KAAenf,OAAO,MAAO,CAC3Bhc,UAAW,kBACX+Q,MAAO,CACL2qB,KAAM5hC,KAAKuiC,mBAAmB7hC,GAAKsiC,GAErCvC,KAAMyC,EACN3E,OAAQwE,IAEVG,GAAQG,CACV,CAEA,GAAI,YAAYj+B,KAAKpF,KAAK6e,IAAI,iBAC5B+jB,GAAM,IAAK99B,KAAK,EAAG,EAAG,GAAIs+B,YAAY/8B,OAAO68B,IAAS,IAAIp+B,KAAK,EAAG,EAAG,GAAGs+B,YAAY/8B,OAAO68B,EAAO,KAAO7yB,EACzGyyB,EAASn3B,KAAK8J,IAAI,EAAG9J,KAAKC,MAAM,GAAKD,KAAKC,MAAMg3B,EAAKK,EAAS,KAC1DH,EAAS,IAAI,CACfI,EAAO,IAAKp+B,KAAK9E,KAAKohC,UAAW+B,cACjCN,EAAQC,EAAS,EACjB,MAAO,EAAM,CAIX,GAHApiC,EAAI,IAAIoE,KAAK,EAAG,EAAG,GACnBpE,EAAE0iC,YAAYF,GACdxiC,EAAE4iC,SAAST,EAAQ,GACfniC,EAAIV,KAAKqhC,SACX,MACF,KAAenf,OAAO,MAAO,CAC3Bhc,UAAW,mBACX+Q,MAAO,CACL2qB,KAAM5hC,KAAKuiC,mBAAmB7hC,GAAKsiC,GAErCvC,KAAM//B,EAAE6iC,wBAAmBvrB,EAAW,CAAE6qB,MAAO,UAC/CtE,OAAQwE,IAEVF,GAASC,EACLD,EAAQ,KACVK,IACAL,EAAQC,EAAS,EAErB,CACF,CAGF,GAA+B,QAA3B9iC,KAAK6e,IAAI,cAAyB,CACpC+jB,GAAM,IAAI99B,KAAK,EAAG,EAAG,GAAK,IAAIA,KAAK,EAAG,EAAG,IAAMuL,EAC/C,IAAImzB,EAAO73B,KAAK8J,IAAI,EAAG9J,KAAKC,MAAM,GAAKD,KAAKC,MAAMg3B,EAAKK,EAAS,KAChE,GAAIO,EAAO,GAAI,CACbN,EAAO,IAAKp+B,KAAK9E,KAAKohC,UAAW+B,cACjCN,EAAQ,EACR,IAAIY,EAAMD,EACV,MAAO,EAKL,GAJA9iC,EAAI,IAAIoE,KAAK,EAAG,EAAG,GACnBpE,EAAE0iC,YAAYF,GACdxiC,EAAE4iC,SAAST,GACXniC,EAAE0hC,QAAQqB,GACN1W,MAAMrsB,GACRmiC,IACIA,EAAQ,KACVA,EAAQ,EACRK,KAEFO,EAAMD,MACD,CACL,GAAI9iC,EAAIV,KAAKqhC,SACX,MACF,GAAIoC,EAAM,EAAG,CACX,IAAIC,EAAU1jC,KAAKuiC,mBAAmB7hC,GAClCV,KAAKuiC,mBAAmB,IAAIz9B,KAAKo+B,EAAML,EAAQ,EAAG,IAAMa,EAAUT,GACpE,KAAe/gB,OAAO,MAAO,CAC3Bhc,UAAW,iBACX+Q,MAAO,CACL2qB,KAAM8B,EAAUV,GAElBvC,KAAMgD,EACNlF,OAAQwE,GAGd,CACAG,EAAOxiC,EAAEyiC,cACTN,EAAQniC,EAAEijC,WACVF,EAAM/iC,EAAEu+B,UAAYuE,EAChBC,EAAM,IAAI3+B,KAAKo+B,EAAML,EAAQ,EAAG,GAAG5D,YACrC4D,IACAY,EAAMD,EAEV,CAEJ,CACF,CACF,CAOA,OAAApB,CAAQ9yB,EAAS1H,GACf,IAAIo3B,EAiBJ,GAhBAp3B,EAAUA,GAAW,CAAC,EAElB0H,aAAmBxK,KACrBk6B,EAAO1vB,GAGHtP,KAAK8gC,cAAch1B,QAAQwD,IAAY,IACzC0vB,EAAOh/B,KAAKogC,gBAAgB9wB,KAE1B0vB,GAAUA,aAAgBl6B,OAC5Bk6B,EAAO,IAAIl6B,KAAKk6B,IAEbA,IAAQjS,MAAMiS,KACjBA,EAAO,IAAIl6B,KAAKuB,OAAOiJ,OAGtByd,MAAMiS,GAAO,EACK,IAAjBp3B,EAAQy6B,MACVriC,KAAKs+B,WAAWv4B,UAAUsB,IAAI,WAChC,IAAIq7B,EAAa1iC,KAAKuiC,mBAAmBvD,GASzC,GARyB,UAArBp3B,EAAQ06B,SACVI,GAAc,KAAekB,WAAW5jC,KAAKs+B,YAAc,EAAI,KAAehD,SAASt7B,KAAKs+B,WAAY,cAAgB,EAC1F,QAArB12B,EAAQ06B,WACjBI,GAAc,KAAekB,WAAW5jC,KAAKs+B,YAAc,EAAI,KAAehD,SAASt7B,KAAKs+B,WAAY,cAAgB,GAE1Ht+B,KAAK++B,eAAe2D,IACC,IAAjB96B,EAAQy6B,MACVriC,KAAKs+B,WAAWv4B,UAAUyB,OAAO,WAC/B8H,EACF,IAAK,IAAWrO,EAAPX,EAAI,EAAMW,EAAIjB,KAAKw/B,OAAOl/B,GAAIA,IACjCW,EAAEqO,UAAYA,GAChBrO,EAAEu4B,IAAIzzB,UAAUsB,IAAI,aACpBrH,KAAK6+B,QAAU59B,GAEfA,EAAEu4B,IAAIzzB,UAAUyB,OAAO,YAI/B,CACF,CAMA,SAAAq8B,CAAUnjC,EAAGojC,GACX,OAAQA,GACN,IAAK,KACH,OAAO,IAAIh/B,KAAK9E,KAAK+jC,SAASrjC,EAAG,MAEnC,IAAK,OACH,OAAO,IAAIoE,KAAK9E,KAAK+jC,SAASrjC,EAAG,OAEnC,IAAK,MACH,OAAO,IAAIoE,KAAK9E,KAAK+jC,SAASrjC,EAAG,QAEnC,IAAK,QAMH,OALAA,EAAI,IAAIoE,KAAK9E,KAAK+jC,SAASrjC,EAAG,QAC1BA,EAAEu+B,UAAY,KAChBv+B,EAAI,IAAIoE,KAAKpE,EAAE4iC,SAAS5iC,EAAEijC,WAAa,KAEzCjjC,EAAIA,EAAE0hC,QAAQ,GACP,IAAIt9B,KAAKpE,GAElB,QAAS,OAAO,IAAIoE,KAAKpE,GAE7B,CAMA,OAAAu+B,CAAQqD,EAAUwB,GAChB,IAAI7B,EAGJ,OAFK6B,IACHA,EAAQxB,GACFA,GACN,IAAK,QAEDL,EADEjiC,KAAK6e,IAAI,aACJ,KAAeyc,SAASt7B,KAAK4+B,aAAc,SAAW,EAAI,KAAetD,SAASt7B,KAAKs+B,WAAY,cAAgB,GAEnH,KAAesF,WAAW5jC,KAAKs+B,YAAc,EAAI,KAAehD,SAASt7B,KAAKs+B,WAAY,cAAgB,EAEnH,MAEF,IAAK,MAED2D,EADEjiC,KAAK6e,IAAI,YACL,KAAeyc,SAASt7B,KAAK4+B,aAAc,SAAW,EAAI,KAAetD,SAASt7B,KAAKs+B,WAAY,cAAgB,EAEnH,KAAesF,WAAW5jC,KAAKs+B,YAAc,EAAI,KAAehD,SAASt7B,KAAKs+B,WAAY,cAAgB,EAElH,MAEF,QACE2D,EAAM,EACN,MAGJ,IAAIvhC,EAAIV,KAAKwiC,mBAAmBxiC,KAAK2iC,iBAAmBV,GAExD,OADAvhC,EAAIV,KAAK6jC,UAAUnjC,EAAGojC,GACf,IAAIh/B,KAAKpE,EAClB,CAOA,QAAAqjC,CAASrjC,EAAGR,GACV,OAAOyL,KAAKC,MAAMlL,EAAIR,GAAKA,CAC7B,CAIA,YAAA8jC,GACE,OAAO,IAAIl/B,KAAK9E,KAAK6e,IAAI,WAC3B,CAIA,UAAAolB,GACE,OAAO,IAAIn/B,KAAK9E,KAAK6e,IAAI,WAC3B,GAGF,Y,gBChqBA,UACA3L,OAAA,CAAAgxB,EAAAA,GACA74B,IAAAA,GACA,OACAuqB,iBAAA,GACAuO,SAAA,KAEA,EACA7yB,QAAA,CACA,mBAAA8yB,CAAAC,GACA,OAAAA,EAAAx1B,KAAAvG,eACA,UACA,YAAAg8B,eAAAD,GACA,WACA,kBAAAE,gBAAAF,GACA,QAEA,OADAlX,EAAAA,EAAAlH,MAAA,uDACA,KAEA,EAEAue,YAAAA,CAAAC,EAAAC,GACA,MAAA5I,EAAA2I,EAAAE,SAAAC,OAAA,GACA,IAAA/3B,EAAAivB,EAAArZ,MAAAliB,GAAAA,EAAA+8B,YAAAoH,IACA,IAAA73B,IAAAA,EAAAg4B,UACA,SAEA,IAAAC,EAAAj4B,EAAAg4B,UAAApiB,MAAA/hB,GAAA,SAAAA,EAAA48B,aACA,OAAAwH,EAGAA,EAAAC,MAAAxL,OAFA,EAGA,EAEA,mBAAAyL,CAAAX,GACA,SAAAzO,iBAAAyO,EAAAn8B,KACA,IACA,IAAAA,EAAA,IAAA+8B,IAAAZ,EAAAn8B,KACAA,EAAAg9B,aAAA7kB,IAAA,kBACAnY,EAAAg9B,aAAA7kB,IAAA,6BACA,IAAA8kB,QAAAC,MAAAvmB,IAAA3W,EAAAhD,WAAA,CAAAmgC,aAAA,SACA,IAAAnT,EAAA,IAAA0D,GACA,KAAAA,iBAAAyO,EAAAn8B,KAAAgqB,EAAAO,KAAA0S,EAAA95B,KACA,OAAA4a,OACAkH,EAAAA,EAAAmY,UAAA,KAAArf,MAAA,wBACA,CAEA,YAAA2P,iBAAAyO,EAAAn8B,IACA,EAEA,qBAAAq8B,CAAAF,EAAAkB,EAAA,WACA,IAAAhyB,EAAA8wB,EAAAmB,YAAA,GAEAf,QAAA,KAAAO,cAAAX,GACAI,GACAtX,EAAAA,EAAAmY,UAAA,KAAArf,MAAA,yBAGA,IAMAwf,EANA9F,EAAA,KACAE,EAAA,KACA6F,EAAA,KACA54B,EAAA,KACA4gB,EAAAP,EAAAA,EAAAwY,iBAAAtB,EAAAkB,GACAK,EAAA,IAAAC,GAAAA,EAEAvgC,MAAAC,QAAAgO,EAAAuoB,QACA2J,EAAAlyB,EAAAuoB,OAEAx2B,MAAAC,QAAAk/B,EAAAE,SAAAC,SACAa,EAAA3J,OAAAnzB,KAAApI,GAAAA,EAAA+8B,cAEA,QAAAzwB,KAAA44B,EAAA,CACA,IAAA54B,EACA,SAEA,IAAAjF,EAAA+zB,GAAA8I,EAAA,CACA53B,QACA4rB,UAAA,cAEAiN,IACAA,EAAA,IAAA5gC,KAAA8C,EAAA6yB,WAAAqL,OAGA,IAAAC,EAAA,KAAAvB,aAAAC,EAAA53B,GACA,GAAAk5B,EAAArgC,OAAA,CACA,IAAA4P,EAAA,IAAAxQ,KAAAihC,EAAA,IACAtwB,EAAA,IAAA3Q,KAAAihC,EAAAA,EAAArgC,OAAA,MACAi6B,GAAArqB,EAAAqqB,KACAA,EAAArqB,KAEAuqB,GAAApqB,EAAAoqB,KACAA,EAAApqB,EAEA,CACA0X,EAAAA,EAAA6Y,SAAAzyB,EAAAknB,aACA13B,OAAA4T,OAAA/O,EAAA6yB,WAAA4J,EAAAmB,WAAA/K,YAEA3tB,EAAA,IAAAm5B,GAAAr+B,GACA,IAAAs+B,EAAA,IAAAhY,GAAAA,EAAA,CACAR,QACA5gB,OAAA,KAAAq5B,kBAAAr5B,GACAs5B,kBAAA,IAEAR,EAAAt5B,KAAA45B,EACA,CAEA,GAAAvG,GAAAE,EAAA,CAOA,IAAAwG,EANA,KAAAlC,SAAA,IAAAmC,GAAA,CACApgC,UAAA,aACA45B,WAAA,MACAH,QAAAA,EACAE,QAAAA,IAGA,KAAAsE,SAAAvyB,GAAA,mBAAAhS,IACAA,EAAAo/B,MAAAp/B,EAAAo/B,KAAAa,GAAAjgC,EAAAo/B,KAAAW,IAGA0G,GACAzhC,OAAA+I,aAAA04B,GAEAA,EAAAzhC,OAAA2C,YAAA,KACA,IACA,IAAAy3B,EAAAp/B,EAAAo/B,KAAAuH,cAAAjN,OAAA,MACAxsB,EAAA2uB,iBAAA,CACAqK,KAAA9G,IAEA,IAAAwH,EAAAhgC,SAAAigC,uBAAA,uBACAD,EAAA,GAAAE,UAAA1H,EACAwH,EAAA,GAAAG,UAAA,CACA,OAAA1gB,OACAlY,GAAA64B,IAAA3gB,MACA,CACAogB,EAAA,OACA,KACA,IACA,KAAA19B,IAAAwJ,WAAA,KAAAgyB,UAEA,KAAAA,SAAA1F,UAAA,CACAv4B,UAAA,sBACAwnB,MAAA,yDAAAA,KACA+S,KAAA,YAEA,KAAA0D,SAAA/B,QAAAsD,EACA,CAEA,IAAAmB,EAAA,IAAAC,GAAAA,EAAA,CACApgC,GAAA29B,EAAA39B,GACAgnB,QACAoO,OAAA8J,IAmBA,OAjBAiB,EAAAj1B,GAAA,uBACA,KAAAuyB,UAAA,KAAAA,SAAA3zB,UAEA,KAAA2zB,SAAA3zB,QAAAyG,MAAA8vB,QAAAF,EAAAG,aAAA,eACA,IAEA,KAAA9X,cAAA2X,GAEA,KAAA1C,UACA,KAAAx7B,IAAAuH,YAAA0B,GAAA,UAAAC,IACAA,EAAArB,UAAAq2B,IACA,KAAAl+B,IAAAs+B,cAAA,KAAA9C,UACA,KAAAA,SAAA,KACA,IAIA0C,CACA,EAEAvC,cAAAA,CAAAD,EAAAkB,EAAA,WAEA,IAAAr9B,EAAAilB,EAAAA,EAAA+Z,aAAA7C,EAAAn8B,IAAA,yBAAApD,MAAAqiC,WAAA/gC,QAAA,YAAAA,QAAA,YACAsnB,EAAAP,EAAAA,EAAAwY,iBAAAtB,EAAAkB,GACA14B,EAAA,IAAAqhB,GAAAA,EAAA,CACAR,QACA5gB,OAAA,KAAAq5B,kBAAA,IAAAiB,GAAAA,EAAA,CACAl/B,SAEAk+B,kBAAA,IAEAS,EAAA,IAAAC,GAAAA,EAAA,CACApgC,GAAA29B,EAAA39B,GACAgnB,QACAoO,OAAA,CACAjvB,KAMA,GAHA,KAAAqiB,cAAA2X,GAGA1Z,EAAAA,EAAA6Y,SAAA3B,EAAAgD,UAAAla,EAAAA,EAAA6Y,SAAA3B,EAAAgD,QAAAC,eAAA,CACA,MAAAC,EAAA,gCACAC,EAAA,YACAzkC,OAAA4nB,OAAA0Z,EAAAgD,QAAAC,eACAl2B,QAAAwe,GAAA,oBAAAA,EAAA6X,YAAAta,EAAAA,EAAA6Y,SAAApW,EAAA8X,YAAA9X,EAAA8X,UAAAC,iBACAniC,SAAAoqB,IACA,IAAAhwB,EAAAgwB,EAAA8X,UAAAC,eACAC,GAAAhoC,EAAAmS,MAAAnS,EAAAoS,MAAApS,EAAAsS,OAAAtS,EAAAqS,UAAArS,EAAA+3B,KAAA,OAAA/3B,EAAA+3B,KAAA/3B,EAAA+3B,MAAA6P,GACAK,EAAAjoC,EAAAiP,QAAAjP,EAAA+3B,KAAAxK,EAAAA,EAAA6Y,SAAApmC,EAAA+3B,MAAA,SAAA/3B,EAAA+3B,IAAA9oB,OAAAjP,EAAA+3B,IAAA3uB,YAAAlC,OAAA0gC,GAAA5nC,EAAAoJ,YAAAlC,OAAAygC,KACAK,GAAAC,IACA,KAAAC,UAAAloC,GAAA,EAEA,GAEA,CAEA,OAAAinC,CACA,IChOuQ,MCAvQ,IAAI,GAAQ,GAOR,IAAY,OACd,GACA,GACA,IACA,EACA,KACA,KACA,MAIF,SAAe,GAAiB,Q,gEC2BhCkB,EAAAA,EAAAt3B,UAAAu3B,kBAAA,SAAA1nC,GACA,QAAAgiB,cAAA2lB,eAAA,SAAA3lB,cAAA2lB,cAAAviC,OAMA,OAHApF,GAAA,KAAAgiB,cAAA2lB,cAAAviC,SACApF,EAAA,GAEAqL,KAAAmN,KAAA,KAAAwJ,cAAA2lB,cAAA3nC,GAAA,EACA,EAEAynC,EAAAA,EAAAt3B,UAAAy3B,mBAAA,SAAAzc,GACA,MAAAliB,EAAA,KAAA4+B,gBAAA1c,GACA2c,EAAA,KAAAC,iBAAA5c,GACA,OAAAliB,GACA,OACA,GAAA6+B,GAAA,EACA,OAAAE,SAAA73B,UAAA83B,SACA,GAAAH,GAAA,GACA,OAAAE,SAAA73B,UAAA+3B,UACA,GAAAJ,GAAA,GACA,OAAAE,SAAA73B,UAAAg4B,UAEA,MACA,OACA,GAAAL,GAAA,EACA,OAAAE,SAAA73B,UAAAi4B,QACA,GAAAN,GAAA,GACA,OAAAE,SAAA73B,UAAAk4B,SACA,GAAAP,GAAA,GACA,OAAAE,SAAA73B,UAAAm4B,SAEA,MACA,OACA,OAAAR,GACA,QACA,gBAAA3F,EAAAoG,GACA,OAAAC,WAAA,KAAArG,EAAAoG,EACA,EACA,QACA,OAAAP,SAAA73B,UAAAs4B,WACA,QACA,OAAAT,SAAA73B,UAAAu4B,WACA,QACA,MAEA,MACA,QACA,MAEA,MAAAtkC,MAAA,wCACA,EAEAqjC,EAAAA,EAAAt3B,UAAA03B,gBAAA,SAAA1c,EAAA,GACA,YAAAnJ,cAAA2mB,cAAA,SAAA3mB,cAAA2mB,aAAAvjC,OAGA,0BAAA4c,cAAA2mB,aAAAxd,GACA,KAAAnJ,cAAA2mB,aAAAxd,GAAA,KAAAnJ,cAAA2mB,aAAA,GAHA,CAIA,EAEAlB,EAAAA,EAAAt3B,UAAA43B,iBAAA,SAAA5c,EAAA,GACA,QAAAnJ,cAAA2lB,eAAA,SAAA3lB,cAAA2lB,cAAAviC,OAGA,gCAAA4c,cAAA2lB,cAAAxc,GACA,KAAAnJ,cAAA2lB,cAAAxc,GAAA,KAAAnJ,cAAA2lB,cAAA,EACA,EAGA,UACAnhC,KAAA,YACAoM,OAAA,CACAgxB,EAAAA,EACAgF,EAAAA,EACAC,GACAC,GAAAA,EACAC,IAEAp+B,WAAA,CACAq+B,KAAA,IACAC,aAAA,KACAC,WAAAA,EAAAA,GAEAl2B,MAAA,CACAjI,KAAA,IAEAA,IAAAA,GACA,OACA0I,SAAA,EACAC,MAAA,KAEA,EACAZ,SAAA,IACA+Z,EAAAA,EAAAC,SAAA,gBACAqc,YAAAA,GACA,YAAAp+B,gBAAAq+B,GAAAA,SAAA,uBAAAr+B,KAAAwD,IACA,EACA4E,SAAAA,GACA,YAAApI,gBAAA4iB,EAAAA,CACA,EACA0b,SAAAA,GACA,YAAAt+B,gBAAAu+B,EAAAA,GAAA,KAAAv+B,KAAAs+B,SACA,GAEAE,OAAAA,GACA,KAAAjzB,MAAA,eACA,EACAtF,QAAA,CACA,eAAAw4B,GACA,IACA,IAAAC,EACA1+B,EACA,QAAAs+B,UACAt+B,QAAA,KAAAA,KAAA2+B,SAAA,KAAAC,iBAEA,QAAAx2B,UAAA,CACApI,QAAA,KAAAA,KAAA2+B,SAAA,KAAAC,YACA,IAAA3tB,EAAAjR,EAAAoD,gBACA6N,IACAytB,EAAAztB,EAEA,KACA,UAAAmtB,eAAAtc,EAAAA,EAAA+c,sBAAA,KAAA7+B,KAAAwD,MAOA,UAAAnK,MAAA,sDANA,iBAAA2G,KAAAwD,KAAAvG,cAAA,OACA,KAAA08B,cAAA,KAAA35B,KAEA,CAIA,CAaA,SAXA,KAAA8+B,UAAAJ,GACA,KAAAK,mBACA,KAAA74B,aAAAlG,IACA,IAAAA,EACA,OAEA,IAAAkP,EAAA,KAAA8vB,SAAAh/B,GACAkP,GAAA5L,EAAAA,EAAAA,iBAAA4L,EAAA,iBAAA5R,IAAA6F,UAAAC,iBACA,KAAA9F,IAAA6F,UAAAQ,IAAAuL,EAAA,KAAA6U,gBAAA,IAGA,KAAAua,UACA,KAAAW,cACA,KAAAC,WAAAl/B,GAAA,QAEA,QAAAoI,UAAA,CACA,IAAA0N,EAAA,KAAAxY,IAAA6F,UAAAC,iBACA0S,EAAAqpB,SAAA,0BAAAhiC,SAAA2Y,EAAAspB,aACA,KAAAH,cAEA,KAAA9c,WAAAniB,GACA,IAAAq/B,EAAA,KAAAr/B,KAAAs/B,aACAD,GACA,KAAA5C,UAAA4C,GAAA,EAEA,MACA,KAAAjB,cAAAtc,EAAAA,EAAA+c,sBAAA,KAAA7+B,KAAAwD,QACA,KAAAy7B,cACA,KAAAlG,cAAA,KAAA/4B,OAGA,KAAAu/B,YAAA,KAAAA,WAAAC,OACA,KAAAliC,IAAAmiC,cAAAv9B,iBAAA,YAAAsE,GAAAA,EAAAzN,mBACA,KAAAuE,IAAAmiC,cAAAv9B,iBAAA,YAAAq9B,WAAAC,MAEA,OAAA5kB,OACAkH,EAAAA,EAAAmY,UAAA,KAAArf,MACA,CAEA,KAAAlS,SAAA,CACA,EAEA,mBAAAg3B,GACA,IAAAl+B,EAAA,KAAAm+B,eAAA,KAAA3/B,MAEA,IACA,IAAA3B,EAAA26B,QAAAmB,WAAA97B,KACA6Q,EAAA,SAAA0wB,WAAA,CAAAvhC,EAAAqI,KAAArI,EAAAwI,WAAA,KAAA+4B,WAAA,CAAAvhC,EAAAsI,KAAAtI,EAAAuI,SACAi5B,EAAA,IAAAC,GAAAA,WAAA,CACAzd,MAAA,SACA0Y,kBAAA,EACAt5B,OAAA,IAAAs+B,GAAAA,WAAA,CACA1iC,SAAA,CACA,IAAA2iC,GAAAA,YAAAC,EAAAA,GAAAA,IAAA/wB,KAEA+B,WAAA,YACAS,OAAA,MAIA,KAAAwuB,gBAAAL,GACAr+B,EAAAqD,YAAA5D,KAAA4+B,GAEA,KAAAviC,IAAA6F,UAAAQ,IAAAuL,EAAA,KAAA6U,cAAA,IACA,OAAAnJ,OACAlY,GAAA64B,IAAA3gB,MACA,CACA,ICpPiQ,MCSjQ,IAAI,IAAY,OACd,GACA7T,EACAC,GACA,EACA,KACA,KACA,MAIF,SAAe,GAAiB,O","sources":["webpack://@openeo/web-editor/./node_modules/@kirtandesai/ol-geocoder/dist/ol-geocoder.js","webpack://@openeo/web-editor/./src/components/maps/osmgeocoder.js","webpack://@openeo/web-editor/src/components/maps/GeocoderMixin.vue","webpack://@openeo/web-editor/./src/components/maps/GeocoderMixin.vue?9845","webpack://@openeo/web-editor/./src/components/maps/GeocoderMixin.vue","webpack://@openeo/web-editor/./src/components/maps/TextControl.vue","webpack://@openeo/web-editor/src/components/maps/TextControl.vue","webpack://@openeo/web-editor/./src/components/maps/TextControl.vue?1df8","webpack://@openeo/web-editor/./src/components/maps/TextControl.vue?c848","webpack://@openeo/web-editor/./src/components/viewer/MapViewer.vue","webpack://@openeo/web-editor/./src/components/maps/ChannelControl.vue","webpack://@openeo/web-editor/src/components/maps/ChannelControl.vue","webpack://@openeo/web-editor/./src/components/maps/ChannelControl.vue?bc38","webpack://@openeo/web-editor/./src/components/maps/ChannelControl.vue?9e5e","webpack://@openeo/web-editor/./node_modules/ol/webgl/styleparser.js","webpack://@openeo/web-editor/./node_modules/ol/layer/WebGLTile.js","webpack://@openeo/web-editor/./node_modules/ol/source/DataTile.js","webpack://@openeo/web-editor/./node_modules/geotiff/dist-module/pool.js","webpack://@openeo/web-editor/./node_modules/ol/source/GeoTIFF.js","webpack://@openeo/web-editor/src/components/maps/GeoTiffMixin.vue","webpack://@openeo/web-editor/./src/components/maps/GeoTiffMixin.vue?cc05","webpack://@openeo/web-editor/./src/components/maps/GeoTiffMixin.vue","webpack://@openeo/web-editor/./node_modules/ol/xml.js","webpack://@openeo/web-editor/./node_modules/ol/format/XML.js","webpack://@openeo/web-editor/./node_modules/ol/format/xlink.js","webpack://@openeo/web-editor/./node_modules/ol/format/xsd.js","webpack://@openeo/web-editor/./node_modules/ol/format/OWS.js","webpack://@openeo/web-editor/./node_modules/ol/format/WMTSCapabilities.js","webpack://@openeo/web-editor/./node_modules/ol/uri.js","webpack://@openeo/web-editor/./node_modules/ol/tilegrid/WMTS.js","webpack://@openeo/web-editor/./node_modules/ol/source/WMTS.js","webpack://@openeo/web-editor/./node_modules/ol-ext/control/Timeline.js","webpack://@openeo/web-editor/src/components/maps/WebServiceMixin.vue","webpack://@openeo/web-editor/./src/components/maps/WebServiceMixin.vue?c34d","webpack://@openeo/web-editor/./src/components/maps/WebServiceMixin.vue","webpack://@openeo/web-editor/src/components/viewer/MapViewer.vue","webpack://@openeo/web-editor/./src/components/viewer/MapViewer.vue?dbd2","webpack://@openeo/web-editor/./src/components/viewer/MapViewer.vue?e73e"],"sourcesContent":["/*!\n * @kirtandesai/ol-geocoder - v5.0.3\n * A geocoder extension compatible with OpenLayers v7.\n * https://github.com/kirtan-desai/ol-geocoder\n * Built: Thu Nov 17 2022 14:58:35 GMT-0500 (Eastern Standard Time)\n */\n!function(e,t){\"object\"==typeof exports&&\"undefined\"!=typeof module?module.exports=t(require(\"ol/control/Control\"),require(\"ol/style/Style\"),require(\"ol/style/Icon\"),require(\"ol/layer/Vector\"),require(\"ol/source/Vector\"),require(\"ol/geom/Point\"),require(\"ol/Feature\"),require(\"ol/proj\")):\"function\"==typeof define&&define.amd?define([\"ol/control/Control\",\"ol/style/Style\",\"ol/style/Icon\",\"ol/layer/Vector\",\"ol/source/Vector\",\"ol/geom/Point\",\"ol/Feature\",\"ol/proj\"],t):(e=\"undefined\"!=typeof globalThis?globalThis:e||self).Geocoder=t(e.ol.control.Control,e.ol.style.Style,e.ol.style.Icon,e.ol.layer.Vector,e.ol.source.Vector,e.ol.geom.Point,e.ol.Feature,e.ol.proj)}(this,(function(e,t,s,r,n,o,a,i){\"use strict\";function l(e){return e&&\"object\"==typeof e&&\"default\"in e?e:{default:e}}var c=l(e),d=l(t),u=l(s),p=l(r),h=l(n),m=l(o),g=l(a),y=l(i),f=\"gcd-container\",b=\"gcd-button-control\",w=\"gcd-input-query\",v=\"gcd-input-reset\",$={namespace:\"ol-geocoder\",spin:\"gcd-pseudo-rotate\",hidden:\"gcd-hidden\",address:\"gcd-address\",country:\"gcd-country\",city:\"gcd-city\",road:\"gcd-road\",olControl:\"ol-control\",glass:{container:\"gcd-gl-container\",control:\"gcd-gl-control\",button:\"gcd-gl-btn\",input:\"gcd-gl-input\",expanded:\"gcd-gl-expanded\",reset:\"gcd-gl-reset\",result:\"gcd-gl-result\"},inputText:{container:\"gcd-txt-container\",control:\"gcd-txt-control\",input:\"gcd-txt-input\",reset:\"gcd-txt-reset\",icon:\"gcd-txt-glass\",result:\"gcd-txt-result\"}},k={containerId:f,buttonControlId:b,inputQueryId:w,inputResetId:v,cssClasses:$};const x=Object.freeze({__proto__:null,containerId:f,buttonControlId:b,inputQueryId:w,inputResetId:v,cssClasses:$,default:k}),q=\"addresschosen\",C=\"nominatim\",S=\"reverse\",L=\"glass-button\",j=\"text-input\",E=\"osm\",T=\"mapquest\",N=\"photon\",R=\"bing\",A=\"opencage\",P={provider:E,placeholder:\"Search for an address\",featureStyle:null,targetType:L,lang:\"en-US\",limit:5,keepOpen:!1,preventDefault:!1,autoComplete:!1,autoCompleteMinLength:2,autoCompleteTimeout:200,debug:!1};function I(e,t=\"Assertion failed\"){if(!e){if(\"undefined\"!=typeof Error)throw new Error(t);throw t}}function _(e){const t=function(){if(\"performance\"in window==0&&(window.performance={}),\"now\"in window.performance==0){let e=Date.now();performance.timing&&performance.timing.navigationStart&&(e=performance.timing.navigationStart),window.performance.now=()=>Date.now()-e}return window.performance.now()}().toString(36);return e?e+t:t}function M(e){return/^\\d+$/u.test(e)}function O(e,t,s){if(Array.isArray(e))return void e.forEach((e=>O(e,t)));const r=Array.isArray(t)?t:t.split(/\\s+/u);let n=r.length;for(;n--;)V(e,r[n])||U(e,r[n],s)}function F(e,t,s){if(Array.isArray(e))return void e.forEach((e=>F(e,t,s)));const r=Array.isArray(t)?t:t.split(/\\s+/u);let n=r.length;for(;n--;)V(e,r[n])&&G(e,r[n],s)}function V(e,t){return e.classList?e.classList.contains(t):B(t).test(e.className)}function D(e,t){return e.replace(/\\{\\s*([\\w-]+)\\s*\\}/gu,((e,s)=>{const r=void 0===t[s]?\"\":t[s];return String(r).replaceAll(\"&\",\"&\").replaceAll(\"<\",\"<\").replaceAll(\">\",\">\").replaceAll('\"',\""\").replaceAll(\"'\",\"'\")}))}function Q(e,t){let s;if(Array.isArray(e)){if(s=document.createElement(e[0]),e[1].id&&(s.id=e[1].id),e[1].classname&&(s.className=e[1].classname),e[1].attr){const{attr:t}=e[1];if(Array.isArray(t)){let e=-1;for(;++eG(e,t)),s)}function G(e,t,s){e.classList?e.classList.remove(t):e.className=e.className.replace(B(t),\" \").trim(),s&&M(s)&&window.setTimeout((()=>U(e,t)),s)}const z=x.cssClasses;class H{constructor(e){this.options=e,this.els=this.createControl()}createControl(){let e,t,s;return this.options.targetType===j?(t=`${z.namespace} ${z.inputText.container}`,e=Q([\"div\",{id:x.containerId,classname:t}],H.input),s={container:e,control:e.querySelector(`.${z.inputText.control}`),input:e.querySelector(`.${z.inputText.input}`),reset:e.querySelector(`.${z.inputText.reset}`),result:e.querySelector(`.${z.inputText.result}`)}):(t=`${z.namespace} ${z.glass.container}`,e=Q([\"div\",{id:x.containerId,classname:t}],H.glass),s={container:e,control:e.querySelector(`.${z.glass.control}`),button:e.querySelector(`.${z.glass.button}`),input:e.querySelector(`.${z.glass.input}`),reset:e.querySelector(`.${z.glass.reset}`),result:e.querySelector(`.${z.glass.result}`)}),s.input.placeholder=this.options.placeholder,s}}H.glass=`\\n \\n \\n`,H.input=`\\n \\n \\n \\n \\n
\\n \\n`;class K{constructor(){this.settings={url:\"https://photon.komoot.io/api/\",params:{q:\"\",limit:10,lang:\"en\"},langs:[\"de\",\"it\",\"fr\",\"en\"]}}getParameters(e){return e.lang=e.lang.toLowerCase(),{url:this.settings.url,params:{q:e.query,limit:e.limit||this.settings.params.limit,lang:this.settings.langs.includes(e.lang)?e.lang:this.settings.params.lang}}}handleResponse(e){return 0===e.features.length?[]:e.features.map((e=>({lon:e.geometry.coordinates[0],lat:e.geometry.coordinates[1],address:{name:e.properties.name,postcode:e.properties.postcode,city:e.properties.city,state:e.properties.state,country:e.properties.country},original:{formatted:e.properties.name,details:e.properties}})))}}class J{constructor(){this.settings={url:\"https://nominatim.openstreetmap.org/search/\",params:{q:\"\",format:\"json\",addressdetails:1,limit:10,countrycodes:\"\",\"accept-language\":\"en-US\"}}}getParameters(e){return{url:this.settings.url,params:{q:e.query,format:this.settings.params.format,addressdetails:this.settings.params.addressdetails,limit:e.limit||this.settings.params.limit,countrycodes:e.countrycodes||this.settings.params.countrycodes,\"accept-language\":e.lang||this.settings.params[\"accept-language\"]}}}handleResponse(e){return 0===e.length?[]:e.map((e=>({lon:e.lon,lat:e.lat,bbox:e.boundingbox,address:{name:e.display_name,road:e.address.road||\"\",houseNumber:e.address.house_number||\"\",postcode:e.address.postcode,city:e.address.city||e.address.town,state:e.address.state,country:e.address.country},original:{formatted:e.display_name,details:e.address}})))}}class W{constructor(){this.settings={url:\"https://open.mapquestapi.com/nominatim/v1/search.php\",params:{q:\"\",key:\"\",format:\"json\",addressdetails:1,limit:10,countrycodes:\"\",\"accept-language\":\"en-US\"}}}getParameters(e){return{url:this.settings.url,params:{q:e.query,key:e.key,format:\"json\",addressdetails:1,limit:e.limit||this.settings.params.limit,countrycodes:e.countrycodes||this.settings.params.countrycodes,\"accept-language\":e.lang||this.settings.params[\"accept-language\"]}}}handleResponse(e){return 0===e.length?[]:e.map((e=>({lon:e.lon,lat:e.lat,address:{name:e.address.neighbourhood||\"\",road:e.address.road||\"\",postcode:e.address.postcode,city:e.address.city||e.address.town,state:e.address.state,country:e.address.country},original:{formatted:e.display_name,details:e.address}})))}}class X{constructor(){this.settings={url:\"https://dev.virtualearth.net/REST/v1/Locations\",callbackName:\"jsonp\",params:{query:\"\",key:\"\",includeNeighborhood:0,maxResults:10}}}getParameters(e){return{url:this.settings.url,callbackName:this.settings.callbackName,params:{query:e.query,key:e.key,includeNeighborhood:e.includeNeighborhood||this.settings.params.includeNeighborhood,maxResults:e.maxResults||this.settings.params.maxResults}}}handleResponse(e){const{resources:t}=e.resourceSets[0];return 0===t.length?[]:t.map((e=>({lon:e.point.coordinates[1],lat:e.point.coordinates[0],address:{name:e.name},original:{formatted:e.address.formattedAddress,details:e.address}})))}}class Y{constructor(){this.settings={url:\"https://api.opencagedata.com/geocode/v1/json?\",params:{q:\"\",key:\"\",limit:10,countrycode:\"\",pretty:1,no_annotations:1}}}getParameters(e){return{url:this.settings.url,params:{q:e.query,key:e.key,limit:e.limit||this.settings.params.limit,countrycode:e.countrycodes||this.settings.params.countrycodes}}}handleResponse(e){return 0===e.results.length?[]:e.results.map((e=>({lon:e.geometry.lng,lat:e.geometry.lat,address:{name:e.components.house_number||\"\",road:e.components.road||\"\",postcode:e.components.postcode,city:e.components.city||e.components.town,state:e.components.state,country:e.components.country},original:{formatted:e.formatted,details:e.components}})))}}function Z(e){return new Promise(((t,s)=>{const r=function(e,t){t&&\"object\"==typeof t&&(e+=(/\\?/u.test(e)?\"&\":\"?\")+ee(t));return e}(e.url,e.data),n={method:\"GET\",mode:\"cors\",credentials:\"same-origin\"};e.jsonp?function(e,t,s){const{head:r}=document,n=document.createElement(\"script\"),o=`f${Math.round(Math.random()*Date.now())}`;n.setAttribute(\"src\",`${e+(e.indexOf(\"?\")>0?\"&\":\"?\")+t}=${o}`),window[o]=e=>{window[o]=void 0,setTimeout((()=>r.removeChild(n)),0),s(e)},r.append(n)}(r,e.callbackName,t):fetch(r,n).then((e=>e.json())).then(t).catch(s)}))}function ee(e){return Object.keys(e).reduce(((t,s)=>(t.push(\"object\"==typeof e[s]?ee(e[s]):`${encodeURIComponent(s)}=${encodeURIComponent(e[s])}`),t)),[]).join(\"&\")}const te=x.cssClasses;class se{constructor(e,t){this.Base=e,this.layerName=_(\"geocoder-layer-\"),this.layer=new p.default({name:this.layerName,source:new h.default}),this.options=e.options,this.options.provider=\"string\"==typeof this.options.provider?this.options.provider.toLowerCase():this.options.provider,this.provider=this.newProvider(),this.els=t,this.lastQuery=\"\",this.container=this.els.container,this.registeredListeners={mapClick:!1},this.setListeners()}setListeners(){let e,t;const s=e=>{e.stopPropagation(),V(this.els.control,te.glass.expanded)?this.collapse():this.expand()};this.els.input.addEventListener(\"keypress\",(e=>{const t=e.target.value.trim();(e.key?\"Enter\"===e.key:e.which?13===e.which:!!e.keyCode&&13===e.keyCode)&&(e.preventDefault(),this.query(t))}),!1),this.els.input.addEventListener(\"click\",(e=>e.stopPropagation()),!1),this.els.input.addEventListener(\"input\",(s=>{const r=s.target.value.trim();0!==r.length?F(this.els.reset,te.hidden):O(this.els.reset,te.hidden),this.options.autoComplete&&r!==t&&(t=r,e&&clearTimeout(e),e=setTimeout((()=>{r.length>=this.options.autoCompleteMinLength&&this.query(r)}),this.options.autoCompleteTimeout))}),!1),this.els.reset.addEventListener(\"click\",(e=>{this.els.input.focus(),this.els.input.value=\"\",this.lastQuery=\"\",O(this.els.reset,te.hidden),this.clearResults()}),!1),this.options.targetType===L&&this.els.button.addEventListener(\"click\",s,!1)}query(e){this.provider||(this.provider=this.newProvider());const t=this.provider.getParameters({query:e,key:this.options.key,lang:this.options.lang,countrycodes:this.options.countrycodes,limit:this.options.limit});if(this.lastQuery===e&&this.els.result.firstChild)return;this.lastQuery=e,this.clearResults(),O(this.els.reset,te.spin);const s={url:t.url,data:t.params};t.callbackName&&(s.jsonp=!0,s.callbackName=t.callbackName),Z(s).then((e=>{this.options.debug&&console.info(e),F(this.els.reset,te.spin);const t=this.provider.handleResponse(e);t&&(this.createList(t),this.listenMapClick())})).catch((e=>{F(this.els.reset,te.spin);const t=Q(\"li\",\"Error! No internet connection?
\");this.els.result.append(t)}))}createList(e){const t=this.els.result;e.forEach((e=>{let s;if(this.options.provider===E)s=`${e.address.name}`;else s=this.addressTemplate(e.address);const r=Q(\"li\",`${s}`);r.addEventListener(\"click\",(t=>{t.preventDefault(),this.chosen(e,s,e.address,e.original)}),!1),t.append(r)}))}chosen(e,t,s,r){const n=this.Base.getMap(),o=[Number.parseFloat(e.lon),Number.parseFloat(e.lat)],a=n.getView().getProjection(),i=y.default.transform(o,\"EPSG:4326\",a);let{bbox:l}=e;l&&(l=y.default.transformExtent([l[2],l[1],l[3],l[0]],\"EPSG:4326\",a));const c={formatted:t,details:s,original:r};if(!1===this.options.keepOpen&&this.clearResults(!0),!0===this.options.preventDefault)this.Base.dispatchEvent({type:q,address:c,coordinate:i,bbox:l,place:e});else{l?n.getView().fit(l,{duration:500}):function(e,t,s=500,r=2.388657133911758){e.getView().animate({duration:s,resolution:r},{duration:s,center:t})}(n,i);const t=this.createFeature(i,c);this.Base.dispatchEvent({type:q,address:c,feature:t,coordinate:i,bbox:l,place:e})}}createFeature(e){const t=new g.default(new m.default(e));return this.addLayer(),t.setStyle(this.options.featureStyle),t.setId(_(\"geocoder-ft-\")),this.getSource().addFeature(t),t}addressTemplate(e){const t=[];return e.name&&t.push(['{name}'].join(\"\")),(e.road||e.building||e.house_number)&&t.push(['{building} {road} {house_number}'].join(\"\")),(e.city||e.town||e.village)&&t.push(['{postcode} {city} {town} {village}'].join(\"\")),(e.state||e.country)&&t.push(['{state} {country}'].join(\"\")),D(t.join(\"
\"),e)}newProvider(){switch(this.options.provider){case E:return new J;case T:return new W;case N:return new K;case R:return new X;case A:return new Y;default:return this.options.provider}}expand(){F(this.els.input,te.spin),O(this.els.control,te.glass.expanded),window.setTimeout((()=>this.els.input.focus()),100),this.listenMapClick()}collapse(){this.els.input.value=\"\",this.els.input.blur(),O(this.els.reset,te.hidden),F(this.els.control,te.glass.expanded),this.clearResults()}listenMapClick(){if(this.registeredListeners.mapClick)return;const e=this,t=this.Base.getMap().getTargetElement();this.registeredListeners.mapClick=!0,t.addEventListener(\"click\",{handleEvent(s){e.clearResults(!0),t.removeEventListener(s.type,this,!1),e.registeredListeners.mapClick=!1}},!1)}clearResults(e){e&&this.options.targetType===L?this.collapse():function(e){for(;e.firstChild;)e.firstChild.remove()}(this.els.result)}getSource(){return this.layer.getSource()}addLayer(){let e=!1;const t=this.Base.getMap();t.getLayers().forEach((t=>{t===this.layer&&(e=!0)})),e||t.addLayer(this.layer)}}class re extends c.default{constructor(e=C,t={}){let s,r;I(\"string\"==typeof e,\"@param `type` should be string!\"),I(e===C||e===S,`@param 'type' should be '${C}'\\n or '${S}'!`),I(\"object\"==typeof t,\"@param `options` should be object!\"),P.featureStyle=[new d.default({image:new u.default({scale:.7,src:\"//cdn.rawgit.com/jonataswalker/map-utils/master/images/marker.png\"})})];const n=new H(t);if(e===C&&(s=n.els.container),super({element:s}),!(this instanceof re))return new re;this.options=function(e,t){const s={};return Object.keys(e).forEach((t=>{Object.prototype.hasOwnProperty.call(e,t)&&(s[t]=e[t])})),Object.keys(t).forEach((e=>{Object.prototype.hasOwnProperty.call(t,e)&&(s[e]=t[e])})),s}(P,t),this.container=s,e===C&&(r=new se(this,n.els),this.layer=r.layer)}getLayer(){return this.layer}getSource(){return this.getLayer().getSource()}setProvider(e){this.options.provider=e}setProviderKey(e){this.options.key=e}}return re}));\n//# sourceMappingURL=ol-geocoder.js.map\n","export default class OSMGeocoder {\n\tconstructor(url, geojson = false) {\n\t\tthis.url = url;\n\t\tthis.geojson = geojson;\n\t}\n\n\tgetParameters(opt) {\n\t\treturn {\n\t\t\turl: this.url,\n\t\t\tparams: {\n\t\t\t\tq: opt.query,\n\t\t\t\tformat: 'json',\n\t\t\t\tlimit: 10,\n\t\t\t\t'accept-language': 'en',\n\t\t\t\tpolygon_geojson: this.geojson ? 1 : 0,\n\t\t\t\tpolygon_threshold: 0.001,\n\t\t\t},\n\t\t};\n\t}\n\n\thandleResponse(results) {\n\t\tif (results.length === 0) {\n\t\t\treturn [];\n\t\t}\n\t\treturn results\n\t\t\t.filter(result => [\"boundary\", \"geological\", \"leisure\", \"natural\", \"place\", \"water\", \"waterway\"].includes(result.class))\n\t\t\t.map(result => ({\n\t\t\t\tlon: result.lon,\n\t\t\t\tlat: result.lat,\n\t\t\t\tbbox: result.boundingbox,\n\t\t\t\taddress: {\n\t\t\t\t\tname: result.display_name\n\t\t\t\t},\n\t\t\t\toriginal: {\n\t\t\t\t\tformatted: result.display_name,\n\t\t\t\t\tdetails: result.address,\n\t\t\t\t\tgeojson: result.geojson\n\t\t\t\t}\n\t\t\t}));\n\t}\n}","\n\n\n\n","import mod from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./GeocoderMixin.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./GeocoderMixin.vue?vue&type=script&lang=js\"","var render, staticRenderFns\nimport script from \"./GeocoderMixin.vue?vue&type=script&lang=js\"\nexport * from \"./GeocoderMixin.vue?vue&type=script&lang=js\"\nimport style0 from \"@kirtandesai/ol-geocoder/dist/ol-geocoder.min.css?vue&type=style&index=0&prod&lang=css&external\"\nimport style1 from \"./GeocoderMixin.vue?vue&type=style&index=1&id=643f6883&prod&lang=scss\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return (_vm.texts.length > 0)?_c('div',{staticClass:\"ol-unselectable ol-control value\",class:{pointer: _vm.texts.length > 1},on:{\"click\":_vm.toggle}},[_vm._v(\" \"+_vm._s(_vm.current)+\" \")]):_vm._e()\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\t 0\" class=\"ol-unselectable ol-control value\" @click=\"toggle\" :class=\"{pointer: texts.length > 1}\">\n\t\t{{ current }}\n\t
\n\n\n\n\n","import mod from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./TextControl.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./TextControl.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./TextControl.vue?vue&type=template&id=6d7a0f06&scoped=true\"\nimport script from \"./TextControl.vue?vue&type=script&lang=js\"\nexport * from \"./TextControl.vue?vue&type=script&lang=js\"\nimport style0 from \"./TextControl.vue?vue&type=style&index=0&id=6d7a0f06&prod&lang=scss&scoped=true\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"6d7a0f06\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('Splitpanes',{staticClass:\"default-theme\",attrs:{\"horizontal\":\"\"}},[_c('Pane',{attrs:{\"id\":\"map\"}},[_c('div',{staticClass:\"map-viewer\",attrs:{\"id\":_vm.id}},[_c('ProgressControl',{ref:\"progress\",attrs:{\"map\":_vm.map}}),_c('UserLocationControl',{attrs:{\"map\":_vm.map}}),(_vm.isGeoTiff)?_c('TextControl',{attrs:{\"text\":_vm.textControlText}}):_vm._e(),(_vm.isGeoTiff && !_vm.colorMap)?_c('ChannelControl',{attrs:{\"bands\":_vm.bands,\"defaultChannels\":_vm.defaultChannels},on:{\"update\":_vm.updateGeoTiffStyle}}):_vm._e(),(_vm.loading)?_c('div',{staticClass:\"map-loading\"},[_c('i',{staticClass:\"fas fa-spinner fa-spin\"}),_c('span',[_vm._v(\"Loading map...\")])]):_vm._e()],1)]),(_vm.chart)?_c('Pane',{attrs:{\"id\":\"chart\",\"size\":33}},[_c('ScatterChart',_vm._b({attrs:{\"height\":220}},'ScatterChart',_vm.chart,false))],1):_vm._e()],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.channels.length > 0),expression:\"channels.length > 0\"}],staticClass:\"ol-unselectable ol-control channels\"},[_c('table',[_c('thead',[_c('tr',[(!_vm.isGray)?_c('th',[_vm._v(\"Channel\")]):_vm._e(),(_vm.multiBand)?_c('th',[_vm._v(\"Band\")]):_vm._e(),_c('th',[_vm._v(\"Min\")]),_c('th',[_vm._v(\"Max\")])])]),_c('tbody',_vm._l((_vm.channels),function(channel,i){return _c('tr',{key:i},[(!_vm.isGray)?_c('th',[_vm._v(_vm._s(_vm.labels[i]))]):_vm._e(),(_vm.multiBand)?_c('td',[_c('select',{directives:[{name:\"model\",rawName:\"v-model.number\",value:(channel.id),expression:\"channel.id\",modifiers:{\"number\":true}}],on:{\"change\":function($event){var $$selectedVal = Array.prototype.filter.call($event.target.options,function(o){return o.selected}).map(function(o){var val = \"_value\" in o ? o._value : o.value;return _vm._n(val)}); _vm.$set(channel, \"id\", $event.target.multiple ? $$selectedVal : $$selectedVal[0])}}},_vm._l((_vm.bands),function(band){return _c('option',{key:band.id,domProps:{\"value\":band.id}},[_vm._v(_vm._s(band.name || band.id))])}),0)]):_vm._e(),_c('td',[_c('input',{directives:[{name:\"model\",rawName:\"v-model.number\",value:(channel.min),expression:\"channel.min\",modifiers:{\"number\":true}}],attrs:{\"type\":\"number\",\"required\":\"\"},domProps:{\"value\":(channel.min)},on:{\"input\":function($event){if($event.target.composing)return;_vm.$set(channel, \"min\", _vm._n($event.target.value))},\"blur\":function($event){return _vm.$forceUpdate()}}})]),_c('td',[_c('input',{directives:[{name:\"model\",rawName:\"v-model.number\",value:(channel.max),expression:\"channel.max\",modifiers:{\"number\":true}}],attrs:{\"type\":\"number\",\"required\":\"\"},domProps:{\"value\":(channel.max)},on:{\"input\":function($event){if($event.target.composing)return;_vm.$set(channel, \"max\", _vm._n($event.target.value))},\"blur\":function($event){return _vm.$forceUpdate()}}})])])}),0),(_vm.multiBand)?_c('tfoot',[_c('tr',[_c('td',{attrs:{\"colspan\":_vm.cols}},[_c('input',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.isGray),expression:\"isGray\"}],attrs:{\"type\":\"checkbox\"},domProps:{\"checked\":Array.isArray(_vm.isGray)?_vm._i(_vm.isGray,null)>-1:(_vm.isGray)},on:{\"change\":function($event){var $$a=_vm.isGray,$$el=$event.target,$$c=$$el.checked?(true):(false);if(Array.isArray($$a)){var $$v=null,$$i=_vm._i($$a,$$v);if($$el.checked){$$i<0&&(_vm.isGray=$$a.concat([$$v]))}else{$$i>-1&&(_vm.isGray=$$a.slice(0,$$i).concat($$a.slice($$i+1)))}}else{_vm.isGray=$$c}}}}),_vm._v(\" Grayscale \")])])]):_vm._e()])])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\t 0\" class=\"ol-unselectable ol-control channels\">\n\t\t
\n\t
\n\n\n\n\n","import mod from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./ChannelControl.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./ChannelControl.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./ChannelControl.vue?vue&type=template&id=0b57c6f1\"\nimport script from \"./ChannelControl.vue?vue&type=script&lang=js\"\nexport * from \"./ChannelControl.vue?vue&type=script&lang=js\"\nimport style0 from \"./ChannelControl.vue?vue&type=style&index=0&id=0b57c6f1&prod&lang=scss\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","/**\n * Utilities for parsing literal style objects\n * @module ol/webgl/styleparser\n */\nimport {\n BooleanType,\n ColorType,\n NumberArrayType,\n NumberType,\n SizeType,\n StringType,\n newParsingContext,\n} from '../expr/expression.js';\nimport {ShaderBuilder} from './ShaderBuilder.js';\nimport {\n arrayToGlsl,\n buildExpression,\n getStringNumberEquivalent,\n stringToGlsl,\n uniformNameForVariable,\n} from '../expr/gpu.js';\nimport {asArray} from '../color.js';\n\n/**\n * Recursively parses a style expression and outputs a GLSL-compatible string. Takes in a compilation context that\n * will be read and modified during the parsing operation.\n * @param {import(\"../expr/gpu.js\").CompilationContext} compilationContext Compilation context\n * @param {import(\"../expr/expression.js\").EncodedExpression} value Value\n * @param {number} [expectedType] Expected final type (can be several types combined)\n * @return {string} GLSL-compatible output\n */\nexport function expressionToGlsl(compilationContext, value, expectedType) {\n const parsingContext = newParsingContext();\n parsingContext.style = compilationContext.style;\n return buildExpression(\n value,\n expectedType,\n parsingContext,\n compilationContext,\n );\n}\n\n/**\n * Packs all components of a color into a two-floats array\n * @param {import(\"../color.js\").Color|string} color Color as array of numbers or string\n * @return {Array} Vec2 array containing the color in compressed form\n */\nexport function packColor(color) {\n const array = asArray(color);\n const r = array[0] * 256;\n const g = array[1];\n const b = array[2] * 256;\n const a = Math.round(array[3] * 255);\n return [r + g, b + a];\n}\n\nconst UNPACK_COLOR_FN = `vec4 unpackColor(vec2 packedColor) {\n return fract(packedColor[1] / 256.0) * vec4(\n fract(floor(packedColor[0] / 256.0) / 256.0),\n fract(packedColor[0] / 256.0),\n fract(floor(packedColor[1] / 256.0) / 256.0),\n 1.0\n );\n}`;\n\n/**\n * @param {number} type Value type\n * @return {1|2|3|4} The amount of components for this value\n */\nfunction getGlslSizeFromType(type) {\n if (type === ColorType || type === SizeType) {\n return 2;\n }\n if (type === NumberArrayType) {\n return 4;\n }\n return 1;\n}\n\n/**\n * @param {number} type Value type\n * @return {'float'|'vec2'|'vec3'|'vec4'} The corresponding GLSL type for this value\n */\nfunction getGlslTypeFromType(type) {\n const size = getGlslSizeFromType(type);\n if (size > 1) {\n return /** @type {'vec2'|'vec3'|'vec4'} */ (`vec${size}`);\n }\n return 'float';\n}\n\n/**\n * see https://stackoverflow.com/questions/7616461/generate-a-hash-from-string-in-javascript\n * @param {Object|string} input The hash input, either an object or string\n * @return {string} Hash (if the object cannot be serialized, it is based on `getUid`)\n */\nexport function computeHash(input) {\n const hash = JSON.stringify(input)\n .split('')\n .reduce((prev, curr) => (prev << 5) - prev + curr.charCodeAt(0), 0);\n return (hash >>> 0).toString();\n}\n\n/**\n * @param {import(\"../style/webgl.js\").WebGLStyle} style Style\n * @param {ShaderBuilder} builder Shader builder\n * @param {import(\"../expr/gpu.js\").CompilationContext} vertContext Vertex shader compilation context\n * @param {'shape-'|'circle-'|'icon-'} prefix Properties prefix\n */\nfunction parseCommonSymbolProperties(style, builder, vertContext, prefix) {\n if (`${prefix}radius` in style && prefix !== 'icon-') {\n let radius = expressionToGlsl(\n vertContext,\n style[`${prefix}radius`],\n NumberType,\n );\n if (`${prefix}radius2` in style) {\n const radius2 = expressionToGlsl(\n vertContext,\n style[`${prefix}radius2`],\n NumberType,\n );\n radius = `max(${radius}, ${radius2})`;\n }\n if (`${prefix}stroke-width` in style) {\n radius = `(${radius} + ${expressionToGlsl(\n vertContext,\n style[`${prefix}stroke-width`],\n NumberType,\n )} * 0.5)`;\n }\n builder.setSymbolSizeExpression(`vec2(${radius} * 2. + 0.5)`); // adding some padding for antialiasing\n }\n if (`${prefix}scale` in style) {\n const scale = expressionToGlsl(\n vertContext,\n style[`${prefix}scale`],\n SizeType,\n );\n builder.setSymbolSizeExpression(\n `${builder.getSymbolSizeExpression()} * ${scale}`,\n );\n }\n if (`${prefix}displacement` in style) {\n builder.setSymbolOffsetExpression(\n expressionToGlsl(\n vertContext,\n style[`${prefix}displacement`],\n NumberArrayType,\n ),\n );\n }\n if (`${prefix}rotation` in style) {\n builder.setSymbolRotationExpression(\n expressionToGlsl(vertContext, style[`${prefix}rotation`], NumberType),\n );\n }\n if (`${prefix}rotate-with-view` in style) {\n builder.setSymbolRotateWithView(!!style[`${prefix}rotate-with-view`]);\n }\n}\n\n/**\n * @param {string} distanceField The distance field expression\n * @param {string|null} fillColor The fill color expression; null if no fill\n * @param {string|null} strokeColor The stroke color expression; null if no stroke\n * @param {string|null} strokeWidth The stroke width expression; null if no stroke\n * @param {string|null} opacity The opacity expression; null if no stroke\n * @return {string} The final color expression, based on the distance field and given params\n */\nfunction getColorFromDistanceField(\n distanceField,\n fillColor,\n strokeColor,\n strokeWidth,\n opacity,\n) {\n let color = 'vec4(0.)';\n if (fillColor !== null) {\n color = fillColor;\n }\n if (strokeColor !== null && strokeWidth !== null) {\n const strokeFillRatio = `smoothstep(-${strokeWidth} + 0.63, -${strokeWidth} - 0.58, ${distanceField})`;\n color = `mix(${strokeColor}, ${color}, ${strokeFillRatio})`;\n }\n const shapeOpacity = `(1.0 - smoothstep(-0.63, 0.58, ${distanceField}))`;\n let result = `${color} * ${shapeOpacity}`;\n if (opacity !== null) {\n result = `${result} * ${opacity}`;\n }\n return result;\n}\n\n/**\n * This will parse an image property provided by `-src`\n * The image size expression in GLSL will be returned\n * @param {import(\"../style/webgl.js\").WebGLStyle} style Style\n * @param {ShaderBuilder} builder Shader builder\n * @param {Object} uniforms Uniforms\n * @param {'icon-'|'fill-pattern-'|'stroke-pattern-'} prefix Property prefix\n * @param {string} textureId A identifier that will be used in the generated uniforms: `sample2d u_texture` and `vec2 u_texture_size`\n * @return {string} The image size expression\n */\nfunction parseImageProperties(style, builder, uniforms, prefix, textureId) {\n const image = new Image();\n let size;\n image.crossOrigin =\n style[`${prefix}cross-origin`] === undefined\n ? 'anonymous'\n : style[`${prefix}cross-origin`];\n image.src = style[`${prefix}src`];\n\n if (image.complete && image.width && image.height) {\n size = arrayToGlsl([image.width, image.height]);\n } else {\n // the size is provided asynchronously using a uniform\n uniforms[`u_texture${textureId}_size`] = () => {\n return image.complete ? [image.width, image.height] : [0, 0];\n };\n builder.addUniform(`vec2 u_texture${textureId}_size`);\n size = `u_texture${textureId}_size`;\n }\n uniforms[`u_texture${textureId}`] = image;\n builder.addUniform(`sampler2D u_texture${textureId}`);\n return size;\n}\n\n/**\n * This will parse an image's offset properties provided by `-offset`, `-offset-origin` and `-size`\n * @param {import(\"../style/webgl.js\").WebGLStyle} style Style\n * @param {'icon-'|'fill-pattern-'|'stroke-pattern-'} prefix Property prefix\n * @param {import(\"../expr/gpu.js\").CompilationContext} context Shader compilation context (vertex or fragment)\n * @param {string} imageSize Pixel size of the full image as a GLSL expression\n * @param {string} sampleSize Pixel size of the sample in the image as a GLSL expression\n * @return {string} The offset expression\n */\nfunction parseImageOffsetProperties(\n style,\n prefix,\n context,\n imageSize,\n sampleSize,\n) {\n let offsetExpression = expressionToGlsl(\n context,\n style[`${prefix}offset`],\n NumberArrayType,\n );\n if (`${prefix}offset-origin` in style) {\n switch (style[`${prefix}offset-origin`]) {\n case 'top-right':\n offsetExpression = `vec2(${imageSize}.x, 0.) + ${sampleSize} * vec2(-1., 0.) + ${offsetExpression} * vec2(-1., 1.)`;\n break;\n case 'bottom-left':\n offsetExpression = `vec2(0., ${imageSize}.y) + ${sampleSize} * vec2(0., -1.) + ${offsetExpression} * vec2(1., -1.)`;\n break;\n case 'bottom-right':\n offsetExpression = `${imageSize} - ${sampleSize} - ${offsetExpression}`;\n break;\n default: // pass\n }\n }\n return offsetExpression;\n}\n\n/**\n * @param {import(\"../style/webgl.js\").WebGLStyle} style Style\n * @param {ShaderBuilder} builder Shader builder\n * @param {Object} uniforms Uniforms\n * @param {import(\"../expr/gpu.js\").CompilationContext} vertContext Vertex shader compilation context\n * @param {import(\"../expr/gpu.js\").CompilationContext} fragContext Fragment shader compilation context\n */\nfunction parseCircleProperties(\n style,\n builder,\n uniforms,\n vertContext,\n fragContext,\n) {\n // this function takes in screen coordinates in pixels and returns the signed distance field\n // (0 on the boundary, negative inside the circle, positive outside, values in pixels)\n fragContext.functions['circleDistanceField'] =\n `float circleDistanceField(vec2 point, float radius) {\n return length(point) - radius;\n}`;\n\n parseCommonSymbolProperties(style, builder, vertContext, 'circle-');\n\n // OPACITY\n let opacity = null;\n if ('circle-opacity' in style) {\n opacity = expressionToGlsl(\n fragContext,\n style['circle-opacity'],\n NumberType,\n );\n }\n\n // SCALE\n let currentPoint = 'coordsPx';\n if ('circle-scale' in style) {\n const scale = expressionToGlsl(\n fragContext,\n style['circle-scale'],\n SizeType,\n );\n currentPoint = `coordsPx / ${scale}`;\n }\n\n // FILL COLOR\n let fillColor = null;\n if ('circle-fill-color' in style) {\n fillColor = expressionToGlsl(\n fragContext,\n style['circle-fill-color'],\n ColorType,\n );\n }\n\n // STROKE COLOR\n let strokeColor = null;\n if ('circle-stroke-color' in style) {\n strokeColor = expressionToGlsl(\n fragContext,\n style['circle-stroke-color'],\n ColorType,\n );\n }\n\n // RADIUS\n let radius = expressionToGlsl(\n fragContext,\n style['circle-radius'],\n NumberType,\n );\n\n // STROKE WIDTH\n let strokeWidth = null;\n if ('circle-stroke-width' in style) {\n strokeWidth = expressionToGlsl(\n fragContext,\n style['circle-stroke-width'],\n NumberType,\n );\n radius = `(${radius} + ${strokeWidth} * 0.5)`;\n }\n\n // FINAL COLOR\n const distanceField = `circleDistanceField(${currentPoint}, ${radius})`;\n const colorExpression = getColorFromDistanceField(\n distanceField,\n fillColor,\n strokeColor,\n strokeWidth,\n opacity,\n );\n builder.setSymbolColorExpression(colorExpression);\n}\n\n/**\n * @param {import(\"../style/webgl.js\").WebGLStyle} style Style\n * @param {ShaderBuilder} builder Shader builder\n * @param {Object} uniforms Uniforms\n * @param {import(\"../expr/gpu.js\").CompilationContext} vertContext Vertex shader compilation context\n * @param {import(\"../expr/gpu.js\").CompilationContext} fragContext Fragment shader compilation context\n */\nfunction parseShapeProperties(\n style,\n builder,\n uniforms,\n vertContext,\n fragContext,\n) {\n fragContext.functions['round'] = `float round(float v) {\n return sign(v) * floor(abs(v) + 0.5);\n}`;\n\n // these functions take in screen coordinates in pixels and returns the signed distance field\n // (0 on the boundary, negative inside the polygon, positive outside, values in pixels)\n // inspired by https://github.com/zranger1/PixelblazePatterns/blob/master/Toolkit/sdf2d.md#n-sided-regular-polygon\n fragContext.functions['starDistanceField'] =\n `float starDistanceField(vec2 point, float numPoints, float radius, float radius2, float angle) {\n float startAngle = -PI * 0.5 + angle; // tip starts upwards and rotates clockwise with angle\n float c = cos(startAngle);\n float s = sin(startAngle);\n vec2 pointRotated = vec2(c * point.x - s * point.y, s * point.x + c * point.y);\n float alpha = TWO_PI / numPoints; // the angle of one sector\n float beta = atan(pointRotated.y, pointRotated.x);\n float gamma = round(beta / alpha) * alpha; // angle in sector\n c = cos(-gamma);\n s = sin(-gamma);\n vec2 inSector = vec2(c * pointRotated.x - s * pointRotated.y, abs(s * pointRotated.x + c * pointRotated.y));\n vec2 tipToPoint = inSector + vec2(-radius, 0.);\n vec2 edgeNormal = vec2(radius2 * sin(alpha * 0.5), -radius2 * cos(alpha * 0.5) + radius);\n return dot(normalize(edgeNormal), tipToPoint);\n}`;\n fragContext.functions['regularDistanceField'] =\n `float regularDistanceField(vec2 point, float numPoints, float radius, float angle) {\n float startAngle = -PI * 0.5 + angle; // tip starts upwards and rotates clockwise with angle\n float c = cos(startAngle);\n float s = sin(startAngle);\n vec2 pointRotated = vec2(c * point.x - s * point.y, s * point.x + c * point.y);\n float alpha = TWO_PI / numPoints; // the angle of one sector\n float radiusIn = radius * cos(PI / numPoints);\n float beta = atan(pointRotated.y, pointRotated.x);\n float gamma = round((beta - alpha * 0.5) / alpha) * alpha + alpha * 0.5; // angle in sector from mid\n c = cos(-gamma);\n s = sin(-gamma);\n vec2 inSector = vec2(c * pointRotated.x - s * pointRotated.y, abs(s * pointRotated.x + c * pointRotated.y));\n return inSector.x - radiusIn;\n}`;\n\n parseCommonSymbolProperties(style, builder, vertContext, 'shape-');\n\n // OPACITY\n let opacity = null;\n if ('shape-opacity' in style) {\n opacity = expressionToGlsl(fragContext, style['shape-opacity'], NumberType);\n }\n\n // SCALE\n let currentPoint = 'coordsPx';\n if ('shape-scale' in style) {\n const scale = expressionToGlsl(fragContext, style['shape-scale'], SizeType);\n currentPoint = `coordsPx / ${scale}`;\n }\n\n // FILL COLOR\n let fillColor = null;\n if ('shape-fill-color' in style) {\n fillColor = expressionToGlsl(\n fragContext,\n style['shape-fill-color'],\n ColorType,\n );\n }\n\n // STROKE COLOR\n let strokeColor = null;\n if ('shape-stroke-color' in style) {\n strokeColor = expressionToGlsl(\n fragContext,\n style['shape-stroke-color'],\n ColorType,\n );\n }\n\n // STROKE WIDTH\n let strokeWidth = null;\n if ('shape-stroke-width' in style) {\n strokeWidth = expressionToGlsl(\n fragContext,\n style['shape-stroke-width'],\n NumberType,\n );\n }\n\n // SHAPE TYPE\n const numPoints = expressionToGlsl(\n fragContext,\n style['shape-points'],\n NumberType,\n );\n let angle = '0.';\n if ('shape-angle' in style) {\n angle = expressionToGlsl(fragContext, style['shape-angle'], NumberType);\n }\n let shapeField;\n let radius = expressionToGlsl(fragContext, style['shape-radius'], NumberType);\n if (strokeWidth !== null) {\n radius = `${radius} + ${strokeWidth} * 0.5`;\n }\n if ('shape-radius2' in style) {\n let radius2 = expressionToGlsl(\n fragContext,\n style['shape-radius2'],\n NumberType,\n );\n if (strokeWidth !== null) {\n radius2 = `${radius2} + ${strokeWidth} * 0.5`;\n }\n shapeField = `starDistanceField(${currentPoint}, ${numPoints}, ${radius}, ${radius2}, ${angle})`;\n } else {\n shapeField = `regularDistanceField(${currentPoint}, ${numPoints}, ${radius}, ${angle})`;\n }\n\n // FINAL COLOR\n const colorExpression = getColorFromDistanceField(\n shapeField,\n fillColor,\n strokeColor,\n strokeWidth,\n opacity,\n );\n builder.setSymbolColorExpression(colorExpression);\n}\n\n/**\n * @param {import(\"../style/webgl.js\").WebGLStyle} style Style\n * @param {ShaderBuilder} builder Shader builder\n * @param {Object} uniforms Uniforms\n * @param {import(\"../expr/gpu.js\").CompilationContext} vertContext Vertex shader compilation context\n * @param {import(\"../expr/gpu.js\").CompilationContext} fragContext Fragment shader compilation context\n */\nfunction parseIconProperties(\n style,\n builder,\n uniforms,\n vertContext,\n fragContext,\n) {\n // COLOR\n let color = 'vec4(1.0)';\n if ('icon-color' in style) {\n color = expressionToGlsl(fragContext, style['icon-color'], ColorType);\n }\n\n // OPACITY\n if ('icon-opacity' in style) {\n color = `${color} * ${expressionToGlsl(\n fragContext,\n style['icon-opacity'],\n NumberType,\n )}`;\n }\n\n // IMAGE & SIZE\n const textureId = computeHash(style['icon-src']);\n const sizeExpression = parseImageProperties(\n style,\n builder,\n uniforms,\n 'icon-',\n textureId,\n );\n builder\n .setSymbolColorExpression(\n `${color} * samplePremultiplied(u_texture${textureId}, v_texCoord)`,\n )\n .setSymbolSizeExpression(sizeExpression);\n\n // override size if width/height were specified\n if ('icon-width' in style && 'icon-height' in style) {\n builder.setSymbolSizeExpression(\n `vec2(${expressionToGlsl(\n vertContext,\n style['icon-width'],\n NumberType,\n )}, ${expressionToGlsl(vertContext, style['icon-height'], NumberType)})`,\n );\n }\n\n // tex coord\n if ('icon-offset' in style && 'icon-size' in style) {\n const sampleSize = expressionToGlsl(\n vertContext,\n style['icon-size'],\n NumberArrayType,\n );\n const fullsize = builder.getSymbolSizeExpression();\n builder.setSymbolSizeExpression(sampleSize);\n const offset = parseImageOffsetProperties(\n style,\n 'icon-',\n vertContext,\n 'v_quadSizePx',\n sampleSize,\n );\n builder.setTextureCoordinateExpression(\n `(vec4((${offset}).xyxy) + vec4(0., 0., ${sampleSize})) / (${fullsize}).xyxy`,\n );\n }\n\n parseCommonSymbolProperties(style, builder, vertContext, 'icon-');\n\n if ('icon-anchor' in style) {\n const anchor = expressionToGlsl(\n vertContext,\n style['icon-anchor'],\n NumberArrayType,\n );\n let scale = `1.0`;\n if (`icon-scale` in style) {\n scale = expressionToGlsl(vertContext, style[`icon-scale`], SizeType);\n }\n let shiftPx;\n if (\n style['icon-anchor-x-units'] === 'pixels' &&\n style['icon-anchor-y-units'] === 'pixels'\n ) {\n shiftPx = `${anchor} * ${scale}`;\n } else if (style['icon-anchor-x-units'] === 'pixels') {\n shiftPx = `${anchor} * vec2(vec2(${scale}).x, v_quadSizePx.y)`;\n } else if (style['icon-anchor-y-units'] === 'pixels') {\n shiftPx = `${anchor} * vec2(v_quadSizePx.x, vec2(${scale}).x)`;\n } else {\n shiftPx = `${anchor} * v_quadSizePx`;\n }\n // default origin is top-left\n let offsetPx = `v_quadSizePx * vec2(0.5, -0.5) + ${shiftPx} * vec2(-1., 1.)`;\n if ('icon-anchor-origin' in style) {\n switch (style['icon-anchor-origin']) {\n case 'top-right':\n offsetPx = `v_quadSizePx * -0.5 + ${shiftPx}`;\n break;\n case 'bottom-left':\n offsetPx = `v_quadSizePx * 0.5 - ${shiftPx}`;\n break;\n case 'bottom-right':\n offsetPx = `v_quadSizePx * vec2(-0.5, 0.5) + ${shiftPx} * vec2(1., -1.)`;\n break;\n default: // pass\n }\n }\n builder.setSymbolOffsetExpression(\n `${builder.getSymbolOffsetExpression()} + ${offsetPx}`,\n );\n }\n}\n\n/**\n * @param {import(\"../style/webgl.js\").WebGLStyle} style Style\n * @param {ShaderBuilder} builder Shader Builder\n * @param {Object} uniforms Uniforms\n * @param {import(\"../expr/gpu.js\").CompilationContext} vertContext Vertex shader compilation context\n * @param {import(\"../expr/gpu.js\").CompilationContext} fragContext Fragment shader compilation context\n */\nfunction parseStrokeProperties(\n style,\n builder,\n uniforms,\n vertContext,\n fragContext,\n) {\n if ('stroke-color' in style) {\n builder.setStrokeColorExpression(\n expressionToGlsl(fragContext, style['stroke-color'], ColorType),\n );\n }\n if ('stroke-pattern-src' in style) {\n const textureId = computeHash(style['stroke-pattern-src']);\n const sizeExpression = parseImageProperties(\n style,\n builder,\n uniforms,\n 'stroke-pattern-',\n textureId,\n );\n let sampleSizeExpression = sizeExpression;\n let offsetExpression = 'vec2(0.)';\n if ('stroke-pattern-offset' in style && 'stroke-pattern-size' in style) {\n sampleSizeExpression = expressionToGlsl(\n fragContext,\n style[`stroke-pattern-size`],\n NumberArrayType,\n );\n offsetExpression = parseImageOffsetProperties(\n style,\n 'stroke-pattern-',\n fragContext,\n sizeExpression,\n sampleSizeExpression,\n );\n }\n let spacingExpression = '0.';\n if ('stroke-pattern-spacing' in style) {\n spacingExpression = expressionToGlsl(\n fragContext,\n style['stroke-pattern-spacing'],\n NumberType,\n );\n }\n fragContext.functions['sampleStrokePattern'] =\n `vec4 sampleStrokePattern(sampler2D texture, vec2 textureSize, vec2 textureOffset, vec2 sampleSize, float spacingPx, float currentLengthPx, float currentRadiusRatio, float lineWidth) {\n float currentLengthScaled = currentLengthPx * sampleSize.y / lineWidth;\n float spacingScaled = spacingPx * sampleSize.y / lineWidth;\n float uCoordPx = mod(currentLengthScaled, (sampleSize.x + spacingScaled));\n // make sure that we're not sampling too close to the borders to avoid interpolation with outside pixels\n uCoordPx = clamp(uCoordPx, 0.5, sampleSize.x - 0.5);\n float vCoordPx = (-currentRadiusRatio * 0.5 + 0.5) * sampleSize.y;\n vec2 texCoord = (vec2(uCoordPx, vCoordPx) + textureOffset) / textureSize;\n return samplePremultiplied(texture, texCoord);\n}`;\n const textureName = `u_texture${textureId}`;\n let tintExpression = '1.';\n if ('stroke-color' in style) {\n tintExpression = builder.getStrokeColorExpression();\n }\n builder.setStrokeColorExpression(\n `${tintExpression} * sampleStrokePattern(${textureName}, ${sizeExpression}, ${offsetExpression}, ${sampleSizeExpression}, ${spacingExpression}, currentLengthPx, currentRadiusRatio, v_width)`,\n );\n }\n\n if ('stroke-width' in style) {\n builder.setStrokeWidthExpression(\n expressionToGlsl(vertContext, style['stroke-width'], NumberType),\n );\n }\n\n if ('stroke-offset' in style) {\n builder.setStrokeOffsetExpression(\n expressionToGlsl(vertContext, style['stroke-offset'], NumberType),\n );\n }\n\n if ('stroke-line-cap' in style) {\n builder.setStrokeCapExpression(\n expressionToGlsl(vertContext, style['stroke-line-cap'], StringType),\n );\n }\n\n if ('stroke-line-join' in style) {\n builder.setStrokeJoinExpression(\n expressionToGlsl(vertContext, style['stroke-line-join'], StringType),\n );\n }\n\n if ('stroke-miter-limit' in style) {\n builder.setStrokeMiterLimitExpression(\n expressionToGlsl(vertContext, style['stroke-miter-limit'], NumberType),\n );\n }\n\n if ('stroke-line-dash' in style) {\n fragContext.functions['getSingleDashDistance'] =\n `float getSingleDashDistance(float distance, float radius, float dashOffset, float dashLength, float dashLengthTotal, float capType) {\n float localDistance = mod(distance, dashLengthTotal);\n float distanceSegment = abs(localDistance - dashOffset - dashLength * 0.5) - dashLength * 0.5;\n distanceSegment = min(distanceSegment, dashLengthTotal - localDistance);\n if (capType == ${stringToGlsl('square')}) {\n distanceSegment -= v_width * 0.5;\n } else if (capType == ${stringToGlsl('round')}) {\n distanceSegment = min(distanceSegment, sqrt(distanceSegment * distanceSegment + radius * radius) - v_width * 0.5);\n }\n return distanceSegment;\n}`;\n\n let dashPattern = style['stroke-line-dash'].map((v) =>\n expressionToGlsl(fragContext, v, NumberType),\n );\n // if pattern has odd length, concatenate it with itself to be even\n if (dashPattern.length % 2 === 1) {\n dashPattern = [...dashPattern, ...dashPattern];\n }\n\n let offsetExpression = '0.';\n if ('stroke-line-dash-offset' in style) {\n offsetExpression = expressionToGlsl(\n vertContext,\n style['stroke-line-dash-offset'],\n NumberType,\n );\n }\n\n // define a function for this dash specifically\n const uniqueDashKey = computeHash(style['stroke-line-dash']);\n const dashFunctionName = `dashDistanceField_${uniqueDashKey}`;\n\n const dashLengthsDef = dashPattern.map(\n (v, i) => `float dashLength${i} = ${v};`,\n );\n const totalLengthDef = dashPattern\n .map((v, i) => `dashLength${i}`)\n .join(' + ');\n let currentDashOffset = '0.';\n let distanceExpression = `getSingleDashDistance(distance, radius, ${currentDashOffset}, dashLength0, totalDashLength, capType)`;\n for (let i = 2; i < dashPattern.length; i += 2) {\n currentDashOffset = `${currentDashOffset} + dashLength${\n i - 2\n } + dashLength${i - 1}`;\n distanceExpression = `min(${distanceExpression}, getSingleDashDistance(distance, radius, ${currentDashOffset}, dashLength${i}, totalDashLength, capType))`;\n }\n\n fragContext.functions[dashFunctionName] =\n `float ${dashFunctionName}(float distance, float radius, float capType) {\n ${dashLengthsDef.join('\\n ')}\n float totalDashLength = ${totalLengthDef};\n return ${distanceExpression};\n}`;\n builder.setStrokeDistanceFieldExpression(\n `${dashFunctionName}(currentLengthPx + ${offsetExpression}, currentRadiusPx, capType)`,\n );\n }\n}\n\n/**\n * @param {import(\"../style/webgl.js\").WebGLStyle} style Style\n * @param {ShaderBuilder} builder Shader Builder\n * @param {Object} uniforms Uniforms\n * @param {import(\"../expr/gpu.js\").CompilationContext} vertContext Vertex shader compilation context\n * @param {import(\"../expr/gpu.js\").CompilationContext} fragContext Fragment shader compilation context\n */\nfunction parseFillProperties(\n style,\n builder,\n uniforms,\n vertContext,\n fragContext,\n) {\n if ('fill-color' in style) {\n builder.setFillColorExpression(\n expressionToGlsl(fragContext, style['fill-color'], ColorType),\n );\n }\n if ('fill-pattern-src' in style) {\n const textureId = computeHash(style['fill-pattern-src']);\n const sizeExpression = parseImageProperties(\n style,\n builder,\n uniforms,\n 'fill-pattern-',\n textureId,\n );\n let sampleSizeExpression = sizeExpression;\n let offsetExpression = 'vec2(0.)';\n if ('fill-pattern-offset' in style && 'fill-pattern-size' in style) {\n sampleSizeExpression = expressionToGlsl(\n fragContext,\n style[`fill-pattern-size`],\n NumberArrayType,\n );\n offsetExpression = parseImageOffsetProperties(\n style,\n 'fill-pattern-',\n fragContext,\n sizeExpression,\n sampleSizeExpression,\n );\n }\n fragContext.functions['sampleFillPattern'] =\n `vec4 sampleFillPattern(sampler2D texture, vec2 textureSize, vec2 textureOffset, vec2 sampleSize, vec2 pxOrigin, vec2 pxPosition) {\n float scaleRatio = pow(2., mod(u_zoom + 0.5, 1.) - 0.5);\n vec2 pxRelativePos = pxPosition - pxOrigin;\n // rotate the relative position from origin by the current view rotation\n pxRelativePos = vec2(pxRelativePos.x * cos(u_rotation) - pxRelativePos.y * sin(u_rotation), pxRelativePos.x * sin(u_rotation) + pxRelativePos.y * cos(u_rotation));\n // sample position is computed according to the sample offset & size\n vec2 samplePos = mod(pxRelativePos / scaleRatio, sampleSize);\n // also make sure that we're not sampling too close to the borders to avoid interpolation with outside pixels\n samplePos = clamp(samplePos, vec2(0.5), sampleSize - vec2(0.5));\n samplePos.y = sampleSize.y - samplePos.y; // invert y axis so that images appear upright\n return samplePremultiplied(texture, (samplePos + textureOffset) / textureSize);\n}`;\n const textureName = `u_texture${textureId}`;\n let tintExpression = '1.';\n if ('fill-color' in style) {\n tintExpression = builder.getFillColorExpression();\n }\n builder.setFillColorExpression(\n `${tintExpression} * sampleFillPattern(${textureName}, ${sizeExpression}, ${offsetExpression}, ${sampleSizeExpression}, pxOrigin, pxPos)`,\n );\n }\n}\n\n/**\n * @typedef {Object} StyleParseResult\n * @property {ShaderBuilder} builder Shader builder pre-configured according to a given style\n * @property {import(\"../render/webgl/VectorStyleRenderer.js\").UniformDefinitions} uniforms Uniform definitions\n * @property {import(\"../render/webgl/VectorStyleRenderer.js\").AttributeDefinitions} attributes Attribute definitions\n */\n\n/**\n * Parses a {@link import(\"../style/webgl.js\").WebGLStyle} object and returns a {@link ShaderBuilder}\n * object that has been configured according to the given style, as well as `attributes` and `uniforms`\n * arrays to be fed to the `WebGLPointsRenderer` class.\n *\n * Also returns `uniforms` and `attributes` properties as expected by the\n * {@link module:ol/renderer/webgl/PointsLayer~WebGLPointsLayerRenderer}.\n *\n * @param {import(\"../style/webgl.js\").WebGLStyle} style Literal style.\n * @return {StyleParseResult} Result containing shader params, attributes and uniforms.\n */\nexport function parseLiteralStyle(style) {\n /**\n * @type {import(\"../expr/gpu.js\").CompilationContext}\n */\n const vertContext = {\n inFragmentShader: false,\n properties: {},\n variables: {},\n functions: {},\n style,\n };\n\n /**\n * @type {import(\"../expr/gpu.js\").CompilationContext}\n */\n const fragContext = {\n inFragmentShader: true,\n variables: vertContext.variables,\n properties: {},\n functions: {},\n style,\n };\n\n const builder = new ShaderBuilder();\n\n /** @type {Object} */\n const uniforms = {};\n\n if ('icon-src' in style) {\n parseIconProperties(style, builder, uniforms, vertContext, fragContext);\n } else if ('shape-points' in style) {\n parseShapeProperties(style, builder, uniforms, vertContext, fragContext);\n } else if ('circle-radius' in style) {\n parseCircleProperties(style, builder, uniforms, vertContext, fragContext);\n }\n parseStrokeProperties(style, builder, uniforms, vertContext, fragContext);\n parseFillProperties(style, builder, uniforms, vertContext, fragContext);\n\n if (style.filter) {\n const parsedFilter = expressionToGlsl(\n fragContext,\n style.filter,\n BooleanType,\n );\n builder.setFragmentDiscardExpression(`!${parsedFilter}`);\n }\n\n // define one uniform per variable\n Object.keys(fragContext.variables).forEach(function (varName) {\n const variable = fragContext.variables[varName];\n const uniformName = uniformNameForVariable(variable.name);\n builder.addUniform(`${getGlslTypeFromType(variable.type)} ${uniformName}`);\n\n let callback;\n if (variable.type === StringType) {\n callback = () =>\n getStringNumberEquivalent(\n /** @type {string} */ (style.variables[variable.name]),\n );\n } else if (variable.type === ColorType) {\n callback = () =>\n packColor([\n ...asArray(\n /** @type {string|Array} */ (\n style.variables[variable.name]\n ) || '#eee',\n ),\n ]);\n } else if (variable.type === BooleanType) {\n callback = () =>\n /** @type {boolean} */ (style.variables[variable.name]) ? 1.0 : 0.0;\n } else {\n callback = () => /** @type {number} */ (style.variables[variable.name]);\n }\n uniforms[uniformName] = callback;\n });\n\n // for each feature attribute used in the fragment shader, define a varying that will be used to pass data\n // from the vertex to the fragment shader, as well as an attribute in the vertex shader (if not already present)\n Object.keys(fragContext.properties).forEach(function (propName) {\n const property = fragContext.properties[propName];\n if (!vertContext.properties[propName]) {\n vertContext.properties[propName] = property;\n }\n let type = getGlslTypeFromType(property.type);\n let expression = `a_prop_${property.name}`;\n if (property.type === ColorType) {\n type = 'vec4';\n expression = `unpackColor(${expression})`;\n builder.addVertexShaderFunction(UNPACK_COLOR_FN);\n }\n builder.addVarying(`v_prop_${property.name}`, type, expression);\n });\n\n // for each feature attribute used in the vertex shader, define an attribute in the vertex shader.\n Object.keys(vertContext.properties).forEach(function (propName) {\n const property = vertContext.properties[propName];\n builder.addAttribute(\n `${getGlslTypeFromType(property.type)} a_prop_${property.name}`,\n );\n });\n\n const attributes = Object.keys(vertContext.properties).map(\n function (propName) {\n const property = vertContext.properties[propName];\n let callback;\n if (property.evaluator) {\n callback = property.evaluator;\n } else if (property.type === StringType) {\n callback = (feature) =>\n getStringNumberEquivalent(feature.get(property.name));\n } else if (property.type === ColorType) {\n callback = (feature) =>\n packColor([...asArray(feature.get(property.name) || '#eee')]);\n } else if (property.type === BooleanType) {\n callback = (feature) => (feature.get(property.name) ? 1.0 : 0.0);\n } else {\n callback = (feature) => feature.get(property.name);\n }\n\n return {\n name: property.name,\n size: getGlslSizeFromType(property.type),\n callback,\n };\n },\n );\n\n // add functions that were collected in the compilation contexts\n for (const functionName in vertContext.functions) {\n builder.addVertexShaderFunction(vertContext.functions[functionName]);\n }\n for (const functionName in fragContext.functions) {\n builder.addFragmentShaderFunction(fragContext.functions[functionName]);\n }\n\n return {\n builder: builder,\n attributes: attributes.reduce(\n (prev, curr) => ({\n ...prev,\n [curr.name]: {callback: curr.callback, size: curr.size},\n }),\n {},\n ),\n uniforms: uniforms,\n };\n}\n","/**\n * @module ol/layer/WebGLTile\n */\nimport BaseTileLayer from './BaseTile.js';\nimport LayerProperty from '../layer/Property.js';\nimport WebGLTileLayerRenderer, {\n Attributes,\n Uniforms,\n} from '../renderer/webgl/TileLayer.js';\nimport {ColorType, NumberType} from '../expr/expression.js';\nimport {\n PALETTE_TEXTURE_ARRAY,\n getStringNumberEquivalent,\n newCompilationContext,\n uniformNameForVariable,\n} from '../expr/gpu.js';\nimport {expressionToGlsl} from '../webgl/styleparser.js';\n\n/**\n * @typedef {import(\"../source/DataTile.js\").default|import(\"../source/TileImage.js\").default} SourceType\n */\n\n/**\n * @typedef {Object} Style\n * Translates tile data to rendered pixels.\n *\n * @property {Object} [variables] Style variables. Each variable must hold a number or string. These\n * variables can be used in the `color`, `brightness`, `contrast`, `exposure`, `saturation` and `gamma`\n * {@link import(\"../expr/expression.js\").ExpressionValue expressions}, using the `['var', 'varName']` operator.\n * To update style variables, use the {@link import(\"./WebGLTile.js\").default#updateStyleVariables} method.\n * @property {import(\"../expr/expression.js\").ExpressionValue} [color] An expression applied to color values.\n * @property {import(\"../expr/expression.js\").ExpressionValue} [brightness=0] Value used to decrease or increase\n * the layer brightness. Values range from -1 to 1.\n * @property {import(\"../expr/expression.js\").ExpressionValue} [contrast=0] Value used to decrease or increase\n * the layer contrast. Values range from -1 to 1.\n * @property {import(\"../expr/expression.js\").ExpressionValue} [exposure=0] Value used to decrease or increase\n * the layer exposure. Values range from -1 to 1.\n * @property {import(\"../expr/expression.js\").ExpressionValue} [saturation=0] Value used to decrease or increase\n * the layer saturation. Values range from -1 to 1.\n * @property {import(\"../expr/expression.js\").ExpressionValue} [gamma=1] Apply a gamma correction to the layer.\n * Values range from 0 to infinity.\n */\n\n/**\n * @typedef {Object} Options\n * @property {Style} [style] Style to apply to the layer.\n * @property {string} [className='ol-layer'] A CSS class name to set to the layer element.\n * @property {number} [opacity=1] Opacity (0, 1).\n * @property {boolean} [visible=true] Visibility.\n * @property {import(\"../extent.js\").Extent} [extent] The bounding extent for layer rendering. The layer will not be\n * rendered outside of this extent.\n * @property {number} [zIndex] The z-index for layer rendering. At rendering time, the layers\n * will be ordered, first by Z-index and then by position. When `undefined`, a `zIndex` of 0 is assumed\n * for layers that are added to the map's `layers` collection, or `Infinity` when the layer's `setMap()`\n * method was used.\n * @property {number} [minResolution] The minimum resolution (inclusive) at which this layer will be\n * visible.\n * @property {number} [maxResolution] The maximum resolution (exclusive) below which this layer will\n * be visible.\n * @property {number} [minZoom] The minimum view zoom level (exclusive) above which this layer will be\n * visible.\n * @property {number} [maxZoom] The maximum view zoom level (inclusive) at which this layer will\n * be visible.\n * @property {number} [preload=0] Preload. Load low-resolution tiles up to `preload` levels. `0`\n * means no preloading.\n * @property {SourceType} [source] Source for this layer.\n * @property {Array|function(import(\"../extent.js\").Extent, number):Array} [sources] Array\n * of sources for this layer. Takes precedence over `source`. Can either be an array of sources, or a function that\n * expects an extent and a resolution (in view projection units per pixel) and returns an array of sources. See\n * {@link module:ol/source.sourcesFromTileGrid} for a helper function to generate sources that are organized in a\n * pyramid following the same pattern as a tile grid. **Note:** All sources must have the same band count and content.\n * @property {import(\"../Map.js\").default} [map] Sets the layer as overlay on a map. The map will not manage\n * this layer in its layers collection, and the layer will be rendered on top. This is useful for\n * temporary layers. The standard way to add a layer to a map and have it managed by the map is to\n * use {@link module:ol/Map~Map#addLayer}.\n * @property {boolean} [useInterimTilesOnError=true] Use interim tiles on error.\n * @property {number} [cacheSize=512] The internal texture cache size. This needs to be large enough to render\n * two zoom levels worth of tiles.\n * @property {Object} [properties] Arbitrary observable properties. Can be accessed with `#get()` and `#set()`.\n */\n\n/**\n * @typedef {Object} ParsedStyle\n * @property {string} vertexShader The vertex shader.\n * @property {string} fragmentShader The fragment shader.\n * @property {Object} uniforms Uniform definitions.\n * @property {Array} paletteTextures Palette textures.\n */\n\n/**\n * @param {Style} style The layer style.\n * @param {number} [bandCount] The number of bands.\n * @return {ParsedStyle} Shaders and uniforms generated from the style.\n */\nfunction parseStyle(style, bandCount) {\n const vertexShader = `\n attribute vec2 ${Attributes.TEXTURE_COORD};\n uniform mat4 ${Uniforms.TILE_TRANSFORM};\n uniform float ${Uniforms.TEXTURE_PIXEL_WIDTH};\n uniform float ${Uniforms.TEXTURE_PIXEL_HEIGHT};\n uniform float ${Uniforms.TEXTURE_RESOLUTION};\n uniform float ${Uniforms.TEXTURE_ORIGIN_X};\n uniform float ${Uniforms.TEXTURE_ORIGIN_Y};\n uniform float ${Uniforms.DEPTH};\n\n varying vec2 v_textureCoord;\n varying vec2 v_mapCoord;\n\n void main() {\n v_textureCoord = ${Attributes.TEXTURE_COORD};\n v_mapCoord = vec2(\n ${Uniforms.TEXTURE_ORIGIN_X} + ${Uniforms.TEXTURE_RESOLUTION} * ${Uniforms.TEXTURE_PIXEL_WIDTH} * v_textureCoord[0],\n ${Uniforms.TEXTURE_ORIGIN_Y} - ${Uniforms.TEXTURE_RESOLUTION} * ${Uniforms.TEXTURE_PIXEL_HEIGHT} * v_textureCoord[1]\n );\n gl_Position = ${Uniforms.TILE_TRANSFORM} * vec4(${Attributes.TEXTURE_COORD}, ${Uniforms.DEPTH}, 1.0);\n }\n `;\n\n /**\n * @type {import(\"../expr/gpu.js\").CompilationContext}\n */\n const context = {\n ...newCompilationContext(),\n inFragmentShader: true,\n bandCount: bandCount,\n style: style,\n };\n\n const pipeline = [];\n\n if (style.color !== undefined) {\n const color = expressionToGlsl(context, style.color, ColorType);\n pipeline.push(`color = ${color};`);\n }\n\n if (style.contrast !== undefined) {\n const contrast = expressionToGlsl(context, style.contrast, NumberType);\n pipeline.push(\n `color.rgb = clamp((${contrast} + 1.0) * color.rgb - (${contrast} / 2.0), vec3(0.0, 0.0, 0.0), vec3(1.0, 1.0, 1.0));`,\n );\n }\n\n if (style.exposure !== undefined) {\n const exposure = expressionToGlsl(context, style.exposure, NumberType);\n pipeline.push(\n `color.rgb = clamp((${exposure} + 1.0) * color.rgb, vec3(0.0, 0.0, 0.0), vec3(1.0, 1.0, 1.0));`,\n );\n }\n\n if (style.saturation !== undefined) {\n const saturation = expressionToGlsl(context, style.saturation, NumberType);\n pipeline.push(`\n float saturation = ${saturation} + 1.0;\n float sr = (1.0 - saturation) * 0.2126;\n float sg = (1.0 - saturation) * 0.7152;\n float sb = (1.0 - saturation) * 0.0722;\n mat3 saturationMatrix = mat3(\n sr + saturation, sr, sr,\n sg, sg + saturation, sg,\n sb, sb, sb + saturation\n );\n color.rgb = clamp(saturationMatrix * color.rgb, vec3(0.0, 0.0, 0.0), vec3(1.0, 1.0, 1.0));\n `);\n }\n\n if (style.gamma !== undefined) {\n const gamma = expressionToGlsl(context, style.gamma, NumberType);\n pipeline.push(`color.rgb = pow(color.rgb, vec3(1.0 / ${gamma}));`);\n }\n\n if (style.brightness !== undefined) {\n const brightness = expressionToGlsl(context, style.brightness, NumberType);\n pipeline.push(\n `color.rgb = clamp(color.rgb + ${brightness}, vec3(0.0, 0.0, 0.0), vec3(1.0, 1.0, 1.0));`,\n );\n }\n\n /** @type {Object} */\n const uniforms = {};\n\n const numVariables = Object.keys(context.variables).length;\n if (numVariables > 1 && !style.variables) {\n throw new Error(\n `Missing variables in style (expected ${context.variables})`,\n );\n }\n\n for (let i = 0; i < numVariables; ++i) {\n const variable = context.variables[Object.keys(context.variables)[i]];\n if (!(variable.name in style.variables)) {\n throw new Error(`Missing '${variable.name}' in style variables`);\n }\n const uniformName = uniformNameForVariable(variable.name);\n uniforms[uniformName] = function () {\n let value = style.variables[variable.name];\n if (typeof value === 'string') {\n value = getStringNumberEquivalent(value);\n }\n return value !== undefined ? value : -9999999; // to avoid matching with the first string literal\n };\n }\n\n const uniformDeclarations = Object.keys(uniforms).map(function (name) {\n return `uniform float ${name};`;\n });\n\n const textureCount = Math.ceil(bandCount / 4);\n uniformDeclarations.push(\n `uniform sampler2D ${Uniforms.TILE_TEXTURE_ARRAY}[${textureCount}];`,\n );\n\n if (context.paletteTextures) {\n uniformDeclarations.push(\n `uniform sampler2D ${PALETTE_TEXTURE_ARRAY}[${context.paletteTextures.length}];`,\n );\n }\n\n const functionDefintions = Object.keys(context.functions).map(\n function (name) {\n return context.functions[name];\n },\n );\n\n const fragmentShader = `\n #ifdef GL_FRAGMENT_PRECISION_HIGH\n precision highp float;\n #else\n precision mediump float;\n #endif\n\n varying vec2 v_textureCoord;\n varying vec2 v_mapCoord;\n uniform vec4 ${Uniforms.RENDER_EXTENT};\n uniform float ${Uniforms.TRANSITION_ALPHA};\n uniform float ${Uniforms.TEXTURE_PIXEL_WIDTH};\n uniform float ${Uniforms.TEXTURE_PIXEL_HEIGHT};\n uniform float ${Uniforms.RESOLUTION};\n uniform float ${Uniforms.ZOOM};\n\n ${uniformDeclarations.join('\\n')}\n\n ${functionDefintions.join('\\n')}\n\n void main() {\n if (\n v_mapCoord[0] < ${Uniforms.RENDER_EXTENT}[0] ||\n v_mapCoord[1] < ${Uniforms.RENDER_EXTENT}[1] ||\n v_mapCoord[0] > ${Uniforms.RENDER_EXTENT}[2] ||\n v_mapCoord[1] > ${Uniforms.RENDER_EXTENT}[3]\n ) {\n discard;\n }\n\n vec4 color = texture2D(${\n Uniforms.TILE_TEXTURE_ARRAY\n }[0], v_textureCoord);\n\n ${pipeline.join('\\n')}\n\n gl_FragColor = color;\n gl_FragColor.rgb *= gl_FragColor.a;\n gl_FragColor *= ${Uniforms.TRANSITION_ALPHA};\n }`;\n\n return {\n vertexShader: vertexShader,\n fragmentShader: fragmentShader,\n uniforms: uniforms,\n paletteTextures: context.paletteTextures,\n };\n}\n\n/**\n * @classdesc\n * For layer sources that provide pre-rendered, tiled images in grids that are\n * organized by zoom levels for specific resolutions.\n * Note that any property set in the options is set as a {@link module:ol/Object~BaseObject}\n * property on the layer object; for example, setting `title: 'My Title'` in the\n * options means that `title` is observable, and has get/set accessors.\n *\n * @extends BaseTileLayer\n * @fires import(\"../render/Event.js\").RenderEvent\n * @api\n */\nclass WebGLTileLayer extends BaseTileLayer {\n /**\n * @param {Options} options Tile layer options.\n */\n constructor(options) {\n options = options ? Object.assign({}, options) : {};\n\n const style = options.style || {};\n delete options.style;\n\n const cacheSize = options.cacheSize;\n delete options.cacheSize;\n\n super(options);\n\n /**\n * @type {Array|function(import(\"../extent.js\").Extent, number):Array}\n * @private\n */\n this.sources_ = options.sources;\n\n /**\n * @type {SourceType|null}\n * @private\n */\n this.renderedSource_ = null;\n\n /**\n * @type {number}\n * @private\n */\n this.renderedResolution_ = NaN;\n\n /**\n * @type {Style}\n * @private\n */\n this.style_ = style;\n\n /**\n * @type {number}\n * @private\n */\n this.cacheSize_ = cacheSize;\n\n /**\n * @type {Object}\n * @private\n */\n this.styleVariables_ = this.style_.variables || {};\n\n this.addChangeListener(LayerProperty.SOURCE, this.handleSourceUpdate_);\n }\n\n /**\n * Gets the sources for this layer, for a given extent and resolution.\n * @param {import(\"../extent.js\").Extent} extent Extent.\n * @param {number} resolution Resolution.\n * @return {Array} Sources.\n */\n getSources(extent, resolution) {\n const source = this.getSource();\n return this.sources_\n ? typeof this.sources_ === 'function'\n ? this.sources_(extent, resolution)\n : this.sources_\n : source\n ? [source]\n : [];\n }\n\n /**\n * @return {SourceType} The source being rendered.\n */\n getRenderSource() {\n return this.renderedSource_ || this.getSource();\n }\n\n /**\n * @return {import(\"../source/Source.js\").State} Source state.\n */\n getSourceState() {\n const source = this.getRenderSource();\n return source ? source.getState() : 'undefined';\n }\n\n /**\n * @private\n */\n handleSourceUpdate_() {\n if (this.hasRenderer()) {\n this.getRenderer().clearCache();\n }\n if (this.getSource()) {\n this.setStyle(this.style_);\n }\n }\n\n /**\n * @private\n * @return {number} The number of source bands.\n */\n getSourceBandCount_() {\n const max = Number.MAX_SAFE_INTEGER;\n const sources = this.getSources([-max, -max, max, max], max);\n return sources && sources.length && 'bandCount' in sources[0]\n ? sources[0].bandCount\n : 4;\n }\n\n createRenderer() {\n const parsedStyle = parseStyle(this.style_, this.getSourceBandCount_());\n\n return new WebGLTileLayerRenderer(this, {\n vertexShader: parsedStyle.vertexShader,\n fragmentShader: parsedStyle.fragmentShader,\n uniforms: parsedStyle.uniforms,\n cacheSize: this.cacheSize_,\n paletteTextures: parsedStyle.paletteTextures,\n });\n }\n\n /**\n * @param {import(\"../Map\").FrameState} frameState Frame state.\n * @param {Array} sources Sources.\n * @return {HTMLElement} Canvas.\n */\n renderSources(frameState, sources) {\n const layerRenderer = this.getRenderer();\n let canvas;\n for (let i = 0, ii = sources.length; i < ii; ++i) {\n this.renderedSource_ = sources[i];\n if (layerRenderer.prepareFrame(frameState)) {\n canvas = layerRenderer.renderFrame(frameState);\n }\n }\n return canvas;\n }\n\n /**\n * @param {?import(\"../Map.js\").FrameState} frameState Frame state.\n * @param {HTMLElement} target Target which the renderer may (but need not) use\n * for rendering its content.\n * @return {HTMLElement} The rendered element.\n */\n render(frameState, target) {\n this.rendered = true;\n const viewState = frameState.viewState;\n const sources = this.getSources(frameState.extent, viewState.resolution);\n let ready = true;\n for (let i = 0, ii = sources.length; i < ii; ++i) {\n const source = sources[i];\n const sourceState = source.getState();\n if (sourceState == 'loading') {\n const onChange = () => {\n if (source.getState() == 'ready') {\n source.removeEventListener('change', onChange);\n this.changed();\n }\n };\n source.addEventListener('change', onChange);\n }\n ready = ready && sourceState == 'ready';\n }\n const canvas = this.renderSources(frameState, sources);\n if (this.getRenderer().renderComplete && ready) {\n // Fully rendered, done.\n this.renderedResolution_ = viewState.resolution;\n return canvas;\n }\n // Render sources from previously fully rendered frames\n if (this.renderedResolution_ > 0.5 * viewState.resolution) {\n const altSources = this.getSources(\n frameState.extent,\n this.renderedResolution_,\n ).filter((source) => !sources.includes(source));\n if (altSources.length > 0) {\n return this.renderSources(frameState, altSources);\n }\n }\n return canvas;\n }\n\n /**\n * Update the layer style. The `updateStyleVariables` function is a more efficient\n * way to update layer rendering. In cases where the whole style needs to be updated,\n * this method may be called instead. Note that calling this method will also replace\n * any previously set variables, so the new style also needs to include new variables,\n * if needed.\n * @param {Style} style The new style.\n */\n setStyle(style) {\n this.styleVariables_ = style.variables || {};\n this.style_ = style;\n const parsedStyle = parseStyle(this.style_, this.getSourceBandCount_());\n const renderer = this.getRenderer();\n renderer.reset({\n vertexShader: parsedStyle.vertexShader,\n fragmentShader: parsedStyle.fragmentShader,\n uniforms: parsedStyle.uniforms,\n paletteTextures: parsedStyle.paletteTextures,\n });\n this.changed();\n }\n\n /**\n * Update any variables used by the layer style and trigger a re-render.\n * @param {Object} variables Variables to update.\n * @api\n */\n updateStyleVariables(variables) {\n Object.assign(this.styleVariables_, variables);\n this.changed();\n }\n}\n\n/**\n * Clean up underlying WebGL resources.\n * @function\n * @api\n */\nWebGLTileLayer.prototype.dispose;\n\nexport default WebGLTileLayer;\n","/**\n * @module ol/source/DataTile\n */\nimport DataTile from '../DataTile.js';\nimport EventType from '../events/EventType.js';\nimport ReprojDataTile from '../reproj/DataTile.js';\nimport TileCache from '../TileCache.js';\nimport TileEventType from './TileEventType.js';\nimport TileSource, {TileSourceEvent} from './Tile.js';\nimport TileState from '../TileState.js';\nimport {\n createXYZ,\n extentFromProjection,\n getForProjection as getTileGridForProjection,\n} from '../tilegrid.js';\nimport {equivalent, get as getProjection} from '../proj.js';\nimport {getKeyZXY} from '../tilecoord.js';\nimport {getUid} from '../util.js';\nimport {toPromise} from '../functions.js';\nimport {toSize} from '../size.js';\n\n/**\n * Data tile loading function. The function is called with z, x, and y tile coordinates and\n * returns {@link import(\"../DataTile.js\").Data data} for a tile or a promise for the same.\n * @typedef {function(number, number, number) : (import(\"../DataTile.js\").Data|Promise)} Loader\n */\n\n/**\n * @typedef {Object} Options\n * @property {Loader} [loader] Data loader. Called with z, x, and y tile coordinates.\n * Returns {@link import(\"../DataTile.js\").Data data} for a tile or a promise for the same.\n * For loaders that generate images, the promise should not resolve until the image is loaded.\n * @property {import(\"./Source.js\").AttributionLike} [attributions] Attributions.\n * @property {boolean} [attributionsCollapsible=true] Attributions are collapsible.\n * @property {number} [maxZoom=42] Optional max zoom level. Not used if `tileGrid` is provided.\n * @property {number} [minZoom=0] Optional min zoom level. Not used if `tileGrid` is provided.\n * @property {number|import(\"../size.js\").Size} [tileSize=[256, 256]] The pixel width and height of the source tiles.\n * This may be different than the rendered pixel size if a `tileGrid` is provided.\n * @property {number} [gutter=0] The size in pixels of the gutter around data tiles to ignore.\n * This allows artifacts of rendering at tile edges to be ignored.\n * Supported data should be wider and taller than the tile size by a value of `2 x gutter`.\n * @property {number} [maxResolution] Optional tile grid resolution at level zero. Not used if `tileGrid` is provided.\n * @property {import(\"../proj.js\").ProjectionLike} [projection='EPSG:3857'] Tile projection.\n * @property {import(\"../tilegrid/TileGrid.js\").default} [tileGrid] Tile grid.\n * @property {boolean} [opaque=false] Whether the layer is opaque.\n * @property {import(\"./Source.js\").State} [state] The source state.\n * @property {boolean} [wrapX=false] Render tiles beyond the antimeridian.\n * @property {number} [transition] Transition time when fading in new tiles (in milliseconds).\n * @property {number} [bandCount=4] Number of bands represented in the data.\n * @property {boolean} [interpolate=false] Use interpolated values when resampling. By default,\n * the nearest neighbor is used when resampling.\n */\n\n/**\n * @classdesc\n * A source for typed array data tiles.\n *\n * @fires import(\"./Tile.js\").TileSourceEvent\n * @api\n */\nclass DataTileSource extends TileSource {\n /**\n * @param {Options} options DataTile source options.\n */\n constructor(options) {\n const projection =\n options.projection === undefined ? 'EPSG:3857' : options.projection;\n\n let tileGrid = options.tileGrid;\n if (tileGrid === undefined && projection) {\n tileGrid = createXYZ({\n extent: extentFromProjection(projection),\n maxResolution: options.maxResolution,\n maxZoom: options.maxZoom,\n minZoom: options.minZoom,\n tileSize: options.tileSize,\n });\n }\n\n super({\n cacheSize: 0.1, // don't cache on the source\n attributions: options.attributions,\n attributionsCollapsible: options.attributionsCollapsible,\n projection: projection,\n tileGrid: tileGrid,\n opaque: options.opaque,\n state: options.state,\n wrapX: options.wrapX,\n transition: options.transition,\n interpolate: options.interpolate,\n });\n\n /**\n * @private\n * @type {number}\n */\n this.gutter_ = options.gutter !== undefined ? options.gutter : 0;\n\n /**\n * @private\n * @type {import('../size.js').Size|null}\n */\n this.tileSize_ = options.tileSize ? toSize(options.tileSize) : null;\n\n /**\n * @private\n * @type {Array|null}\n */\n this.tileSizes_ = null;\n\n /**\n * @private\n * @type {!Object}\n */\n this.tileLoadingKeys_ = {};\n\n /**\n * @private\n */\n this.loader_ = options.loader;\n\n this.handleTileChange_ = this.handleTileChange_.bind(this);\n\n /**\n * @type {number}\n */\n this.bandCount = options.bandCount === undefined ? 4 : options.bandCount; // assume RGBA if undefined\n\n /**\n * @private\n * @type {!Object}\n */\n this.tileGridForProjection_ = {};\n\n /**\n * @private\n * @type {!Object}\n */\n this.tileCacheForProjection_ = {};\n }\n\n /**\n * Set the source tile sizes. The length of the array is expected to match the number of\n * levels in the tile grid.\n * @protected\n * @param {Array} tileSizes An array of tile sizes.\n */\n setTileSizes(tileSizes) {\n this.tileSizes_ = tileSizes;\n }\n\n /**\n * Get the source tile size at the given zoom level. This may be different than the rendered tile\n * size.\n * @protected\n * @param {number} z Tile zoom level.\n * @return {import('../size.js').Size} The source tile size.\n */\n getTileSize(z) {\n if (this.tileSizes_) {\n return this.tileSizes_[z];\n }\n if (this.tileSize_) {\n return this.tileSize_;\n }\n const tileGrid = this.getTileGrid();\n return tileGrid ? toSize(tileGrid.getTileSize(z)) : [256, 256];\n }\n\n /**\n * @param {import(\"../proj/Projection.js\").default} projection Projection.\n * @return {number} Gutter.\n */\n getGutterForProjection(projection) {\n const thisProj = this.getProjection();\n if (!thisProj || equivalent(thisProj, projection)) {\n return this.gutter_;\n }\n\n return 0;\n }\n\n /**\n * @param {Loader} loader The data loader.\n * @protected\n */\n setLoader(loader) {\n this.loader_ = loader;\n }\n\n /**\n * @param {number} z Tile coordinate z.\n * @param {number} x Tile coordinate x.\n * @param {number} y Tile coordinate y.\n * @param {import(\"../proj/Projection.js\").default} targetProj The output projection.\n * @param {import(\"../proj/Projection.js\").default} sourceProj The input projection.\n * @return {!DataTile} Tile.\n */\n getReprojTile_(z, x, y, targetProj, sourceProj) {\n const cache = this.getTileCacheForProjection(targetProj);\n const tileCoordKey = getKeyZXY(z, x, y);\n if (cache.containsKey(tileCoordKey)) {\n const tile = cache.get(tileCoordKey);\n if (tile && tile.key == this.getKey()) {\n return tile;\n }\n }\n\n const tileGrid = this.getTileGrid();\n const reprojTilePixelRatio = Math.max.apply(\n null,\n tileGrid.getResolutions().map((r, z) => {\n const tileSize = toSize(tileGrid.getTileSize(z));\n const textureSize = this.getTileSize(z);\n return Math.max(\n textureSize[0] / tileSize[0],\n textureSize[1] / tileSize[1],\n );\n }),\n );\n\n const sourceTileGrid = this.getTileGridForProjection(sourceProj);\n const targetTileGrid = this.getTileGridForProjection(targetProj);\n const tileCoord = [z, x, y];\n const wrappedTileCoord = this.getTileCoordForTileUrlFunction(\n tileCoord,\n targetProj,\n );\n\n const options = Object.assign(\n {\n sourceProj,\n sourceTileGrid,\n targetProj,\n targetTileGrid,\n tileCoord,\n wrappedTileCoord,\n pixelRatio: reprojTilePixelRatio,\n gutter: this.getGutterForProjection(sourceProj),\n getTileFunction: (z, x, y, pixelRatio) =>\n this.getTile(z, x, y, pixelRatio, sourceProj),\n },\n this.tileOptions,\n );\n const newTile = new ReprojDataTile(options);\n newTile.key = this.getKey();\n return newTile;\n }\n\n /**\n * @param {number} z Tile coordinate z.\n * @param {number} x Tile coordinate x.\n * @param {number} y Tile coordinate y.\n * @param {number} pixelRatio Pixel ratio.\n * @param {import(\"../proj/Projection.js\").default} projection Projection.\n * @return {!DataTile} Tile.\n */\n getTile(z, x, y, pixelRatio, projection) {\n const sourceProjection = this.getProjection();\n if (\n sourceProjection &&\n projection &&\n !equivalent(sourceProjection, projection)\n ) {\n return this.getReprojTile_(z, x, y, projection, sourceProjection);\n }\n\n const size = this.getTileSize(z);\n const tileCoordKey = getKeyZXY(z, x, y);\n if (this.tileCache.containsKey(tileCoordKey)) {\n return this.tileCache.get(tileCoordKey);\n }\n\n const sourceLoader = this.loader_;\n\n function loader() {\n return toPromise(function () {\n return sourceLoader(z, x, y);\n });\n }\n\n const options = Object.assign(\n {\n tileCoord: [z, x, y],\n loader: loader,\n size: size,\n },\n this.tileOptions,\n );\n\n const tile = new DataTile(options);\n tile.key = this.getKey();\n tile.addEventListener(EventType.CHANGE, this.handleTileChange_);\n\n this.tileCache.set(tileCoordKey, tile);\n return tile;\n }\n\n /**\n * Handle tile change events.\n * @param {import(\"../events/Event.js\").default} event Event.\n */\n handleTileChange_(event) {\n const tile = /** @type {import(\"../Tile.js\").default} */ (event.target);\n const uid = getUid(tile);\n const tileState = tile.getState();\n let type;\n if (tileState == TileState.LOADING) {\n this.tileLoadingKeys_[uid] = true;\n type = TileEventType.TILELOADSTART;\n } else if (uid in this.tileLoadingKeys_) {\n delete this.tileLoadingKeys_[uid];\n type =\n tileState == TileState.ERROR\n ? TileEventType.TILELOADERROR\n : tileState == TileState.LOADED\n ? TileEventType.TILELOADEND\n : undefined;\n }\n if (type) {\n this.dispatchEvent(new TileSourceEvent(type, tile));\n }\n }\n\n /**\n * @param {import(\"../proj/Projection.js\").default} projection Projection.\n * @return {!import(\"../tilegrid/TileGrid.js\").default} Tile grid.\n */\n getTileGridForProjection(projection) {\n const thisProj = this.getProjection();\n if (this.tileGrid && (!thisProj || equivalent(thisProj, projection))) {\n return this.tileGrid;\n }\n\n const projKey = getUid(projection);\n if (!(projKey in this.tileGridForProjection_)) {\n this.tileGridForProjection_[projKey] =\n getTileGridForProjection(projection);\n }\n return this.tileGridForProjection_[projKey];\n }\n\n /**\n * Sets the tile grid to use when reprojecting the tiles to the given\n * projection instead of the default tile grid for the projection.\n *\n * This can be useful when the default tile grid cannot be created\n * (e.g. projection has no extent defined) or\n * for optimization reasons (custom tile size, resolutions, ...).\n *\n * @param {import(\"../proj.js\").ProjectionLike} projection Projection.\n * @param {import(\"../tilegrid/TileGrid.js\").default} tilegrid Tile grid to use for the projection.\n * @api\n */\n setTileGridForProjection(projection, tilegrid) {\n const proj = getProjection(projection);\n if (proj) {\n const projKey = getUid(proj);\n if (!(projKey in this.tileGridForProjection_)) {\n this.tileGridForProjection_[projKey] = tilegrid;\n }\n }\n }\n\n /**\n * @param {import(\"../proj/Projection.js\").default} projection Projection.\n * @return {import(\"../TileCache.js\").default} Tile cache.\n */\n getTileCacheForProjection(projection) {\n const thisProj = this.getProjection();\n if (!thisProj || equivalent(thisProj, projection)) {\n return this.tileCache;\n }\n\n const projKey = getUid(projection);\n if (!(projKey in this.tileCacheForProjection_)) {\n this.tileCacheForProjection_[projKey] = new TileCache(0.1); // don't cache\n }\n return this.tileCacheForProjection_[projKey];\n }\n\n /**\n * @param {import(\"../proj/Projection.js\").default} projection Projection.\n * @param {!Object} usedTiles Used tiles.\n */\n expireCache(projection, usedTiles) {\n const usedTileCache = this.getTileCacheForProjection(projection);\n\n this.tileCache.expireCache(\n this.tileCache == usedTileCache ? usedTiles : {},\n );\n for (const id in this.tileCacheForProjection_) {\n const tileCache = this.tileCacheForProjection_[id];\n tileCache.expireCache(tileCache == usedTileCache ? usedTiles : {});\n }\n }\n\n clear() {\n super.clear();\n for (const id in this.tileCacheForProjection_) {\n this.tileCacheForProjection_[id].clear();\n }\n }\n}\n\nexport default DataTileSource;\n","import { getDecoder } from './compression/index.js';\n\nconst defaultPoolSize = typeof navigator !== 'undefined' ? (navigator.hardwareConcurrency || 2) : 2;\n\n/**\n * @module pool\n */\n\n/**\n * Pool for workers to decode chunks of the images.\n */\nclass Pool {\n /**\n * @constructor\n * @param {Number} [size] The size of the pool. Defaults to the number of CPUs\n * available. When this parameter is `null` or 0, then the\n * decoding will be done in the main thread.\n * @param {function(): Worker} [createWorker] A function that creates the decoder worker.\n * Defaults to a worker with all decoders that ship with geotiff.js. The `createWorker()`\n * function is expected to return a `Worker` compatible with Web Workers. For code that\n * runs in Node, [web-worker](https://www.npmjs.com/package/web-worker) is a good choice.\n *\n * A worker that uses a custom lzw decoder would look like this `my-custom-worker.js` file:\n * ```js\n * import { addDecoder, getDecoder } from 'geotiff';\n * addDecoder(5, () => import ('./my-custom-lzw').then((m) => m.default));\n * self.addEventListener('message', async (e) => {\n * const { id, fileDirectory, buffer } = e.data;\n * const decoder = await getDecoder(fileDirectory);\n * const decoded = await decoder.decode(fileDirectory, buffer);\n * self.postMessage({ decoded, id }, [decoded]);\n * });\n * ```\n * The way the above code is built into a worker by the `createWorker()` function\n * depends on the used bundler. For most bundlers, something like this will work:\n * ```js\n * function createWorker() {\n * return new Worker(new URL('./my-custom-worker.js', import.meta.url));\n * }\n * ```\n */\n constructor(size = defaultPoolSize, createWorker) {\n this.workers = null;\n this._awaitingDecoder = null;\n this.size = size;\n this.messageId = 0;\n if (size) {\n this._awaitingDecoder = createWorker ? Promise.resolve(createWorker) : new Promise((resolve) => {\n import('./worker/decoder.js').then((module) => {\n resolve(module.create);\n });\n });\n this._awaitingDecoder.then((create) => {\n this._awaitingDecoder = null;\n this.workers = [];\n for (let i = 0; i < size; i++) {\n this.workers.push({ worker: create(), idle: true });\n }\n });\n }\n }\n\n /**\n * Decode the given block of bytes with the set compression method.\n * @param {ArrayBuffer} buffer the array buffer of bytes to decode.\n * @returns {Promise} the decoded result as a `Promise`\n */\n async decode(fileDirectory, buffer) {\n if (this._awaitingDecoder) {\n await this._awaitingDecoder;\n }\n return this.size === 0\n ? getDecoder(fileDirectory).then((decoder) => decoder.decode(fileDirectory, buffer))\n : new Promise((resolve) => {\n const worker = this.workers.find((candidate) => candidate.idle)\n || this.workers[Math.floor(Math.random() * this.size)];\n worker.idle = false;\n const id = this.messageId++;\n const onMessage = (e) => {\n if (e.data.id === id) {\n worker.idle = true;\n resolve(e.data.decoded);\n worker.worker.removeEventListener('message', onMessage);\n }\n };\n worker.worker.addEventListener('message', onMessage);\n worker.worker.postMessage({ fileDirectory, buffer, id }, [buffer]);\n });\n }\n\n destroy() {\n if (this.workers) {\n this.workers.forEach((worker) => {\n worker.worker.terminate();\n });\n this.workers = null;\n }\n }\n}\n\nexport default Pool;\n","/**\n * @module ol/source/GeoTIFF\n */\nimport DataTile from './DataTile.js';\nimport TileGrid from '../tilegrid/TileGrid.js';\nimport {\n Pool,\n globals as geotiffGlobals,\n fromBlob as tiffFromBlob,\n fromUrl as tiffFromUrl,\n fromUrls as tiffFromUrls,\n} from 'geotiff';\nimport {\n Projection,\n get as getCachedProjection,\n toUserCoordinate,\n toUserExtent,\n} from '../proj.js';\nimport {clamp} from '../math.js';\nimport {getCenter, getIntersection} from '../extent.js';\nimport {error as logError} from '../console.js';\nimport {fromCode as unitsFromCode} from '../proj/Units.js';\n\n/**\n * Determine if an image type is a mask.\n * See https://www.awaresystems.be/imaging/tiff/tifftags/newsubfiletype.html\n * @param {GeoTIFFImage} image The image.\n * @return {boolean} The image is a mask.\n */\nfunction isMask(image) {\n const fileDirectory = image.fileDirectory;\n const type = fileDirectory.NewSubfileType || 0;\n return (type & 4) === 4;\n}\n\n/**\n * @param {true|false|'auto'} preference The convertToRGB option.\n * @param {GeoTIFFImage} image The image.\n * @return {boolean} Use the `image.readRGB()` method.\n */\nfunction readRGB(preference, image) {\n if (!preference) {\n return false;\n }\n if (preference === true) {\n return true;\n }\n if (image.getSamplesPerPixel() !== 3) {\n return false;\n }\n const interpretation = image.fileDirectory.PhotometricInterpretation;\n const interpretations = geotiffGlobals.photometricInterpretations;\n return (\n interpretation === interpretations.CMYK ||\n interpretation === interpretations.YCbCr ||\n interpretation === interpretations.CIELab ||\n interpretation === interpretations.ICCLab\n );\n}\n\n/**\n * @typedef {Object} SourceInfo\n * @property {string} [url] URL for the source GeoTIFF.\n * @property {Array} [overviews] List of any overview URLs, only applies if the url parameter is given.\n * @property {Blob} [blob] Blob containing the source GeoTIFF. `blob` and `url` are mutually exclusive.\n * @property {number} [min=0] The minimum source data value. Rendered values are scaled from 0 to 1 based on\n * the configured min and max. If not provided and raster statistics are available, those will be used instead.\n * If neither are available, the minimum for the data type will be used. To disable this behavior, set\n * the `normalize` option to `false` in the constructor.\n * @property {number} [max] The maximum source data value. Rendered values are scaled from 0 to 1 based on\n * the configured min and max. If not provided and raster statistics are available, those will be used instead.\n * If neither are available, the maximum for the data type will be used. To disable this behavior, set\n * the `normalize` option to `false` in the constructor.\n * @property {number} [nodata] Values to discard (overriding any nodata values in the metadata).\n * When provided, an additional alpha band will be added to the data. Often the GeoTIFF metadata\n * will include information about nodata values, so you should only need to set this property if\n * you find that it is not already extracted from the metadata.\n * @property {Array} [bands] Band numbers to be read from (where the first band is `1`). If not provided, all bands will\n * be read. For example, if a GeoTIFF has blue (1), green (2), red (3), and near-infrared (4) bands, and you only need the\n * near-infrared band, configure `bands: [4]`.\n */\n\n/**\n * @typedef {Object} GeoKeys\n * @property {number} GTModelTypeGeoKey Model type.\n * @property {number} GTRasterTypeGeoKey Raster type.\n * @property {number} GeogAngularUnitsGeoKey Angular units.\n * @property {number} GeogInvFlatteningGeoKey Inverse flattening.\n * @property {number} GeogSemiMajorAxisGeoKey Semi-major axis.\n * @property {number} GeographicTypeGeoKey Geographic coordinate system code.\n * @property {number} ProjLinearUnitsGeoKey Projected linear unit code.\n * @property {number} ProjectedCSTypeGeoKey Projected coordinate system code.\n */\n\n/**\n * @typedef {import(\"geotiff\").GeoTIFF} GeoTIFF\n */\n\n/**\n * @typedef {import(\"geotiff\").MultiGeoTIFF} MultiGeoTIFF\n */\n\n/**\n * @typedef {Object} GDALMetadata\n * @property {string} STATISTICS_MINIMUM The minimum value (as a string).\n * @property {string} STATISTICS_MAXIMUM The maximum value (as a string).\n */\n\nconst STATISTICS_MAXIMUM = 'STATISTICS_MAXIMUM';\nconst STATISTICS_MINIMUM = 'STATISTICS_MINIMUM';\n\nconst defaultTileSize = 256;\n\n/**\n * @typedef {import(\"geotiff\").GeoTIFFImage} GeoTIFFImage\n */\n\nlet workerPool;\nfunction getWorkerPool() {\n if (!workerPool) {\n workerPool = new Pool();\n }\n return workerPool;\n}\n\n/**\n * Get the bounding box of an image. If the image does not have an affine transform,\n * the pixel bounds are returned.\n * @param {GeoTIFFImage} image The image.\n * @return {Array} The image bounding box.\n */\nfunction getBoundingBox(image) {\n try {\n return image.getBoundingBox();\n } catch (_) {\n return [0, 0, image.getWidth(), image.getHeight()];\n }\n}\n\n/**\n * Get the origin of an image. If the image does not have an affine transform,\n * the top-left corner of the pixel bounds is returned.\n * @param {GeoTIFFImage} image The image.\n * @return {Array} The image origin.\n */\nfunction getOrigin(image) {\n try {\n return image.getOrigin().slice(0, 2);\n } catch (_) {\n return [0, image.getHeight()];\n }\n}\n\n/**\n * Get the resolution of an image. If the image does not have an affine transform,\n * the width of the image is compared with the reference image.\n * @param {GeoTIFFImage} image The image.\n * @param {GeoTIFFImage} referenceImage The reference image.\n * @return {Array} The map x and y units per pixel.\n */\nfunction getResolutions(image, referenceImage) {\n try {\n return image.getResolution(referenceImage);\n } catch (_) {\n return [\n referenceImage.getWidth() / image.getWidth(),\n referenceImage.getHeight() / image.getHeight(),\n ];\n }\n}\n\n/**\n * @param {GeoTIFFImage} image A GeoTIFF.\n * @return {import(\"../proj/Projection.js\").default} The image projection.\n */\nfunction getProjection(image) {\n const geoKeys = image.geoKeys;\n if (!geoKeys) {\n return null;\n }\n\n if (\n geoKeys.ProjectedCSTypeGeoKey &&\n geoKeys.ProjectedCSTypeGeoKey !== 32767\n ) {\n const code = 'EPSG:' + geoKeys.ProjectedCSTypeGeoKey;\n let projection = getCachedProjection(code);\n if (!projection) {\n const units = unitsFromCode(geoKeys.ProjLinearUnitsGeoKey);\n if (units) {\n projection = new Projection({\n code: code,\n units: units,\n });\n }\n }\n return projection;\n }\n\n if (geoKeys.GeographicTypeGeoKey && geoKeys.GeographicTypeGeoKey !== 32767) {\n const code = 'EPSG:' + geoKeys.GeographicTypeGeoKey;\n let projection = getCachedProjection(code);\n if (!projection) {\n const units = unitsFromCode(geoKeys.GeogAngularUnitsGeoKey);\n if (units) {\n projection = new Projection({\n code: code,\n units: units,\n });\n }\n }\n return projection;\n }\n\n return null;\n}\n\n/**\n * @param {GeoTIFF|MultiGeoTIFF} tiff A GeoTIFF.\n * @return {Promise>} Resolves to a list of images.\n */\nfunction getImagesForTIFF(tiff) {\n return tiff.getImageCount().then(function (count) {\n const requests = new Array(count);\n for (let i = 0; i < count; ++i) {\n requests[i] = tiff.getImage(i);\n }\n return Promise.all(requests);\n });\n}\n\n/**\n * @param {SourceInfo} source The GeoTIFF source.\n * @param {Object} options Options for the GeoTIFF source.\n * @return {Promise>} Resolves to a list of images.\n */\nfunction getImagesForSource(source, options) {\n let request;\n if (source.blob) {\n request = tiffFromBlob(source.blob);\n } else if (source.overviews) {\n request = tiffFromUrls(source.url, source.overviews, options);\n } else {\n request = tiffFromUrl(source.url, options);\n }\n return request.then(getImagesForTIFF);\n}\n\n/**\n * @param {number|Array|Array>} expected Expected value.\n * @param {number|Array|Array>} got Actual value.\n * @param {number} tolerance Accepted tolerance in fraction of expected between expected and got.\n * @param {string} message The error message.\n * @param {function(Error):void} rejector A function to be called with any error.\n */\nfunction assertEqual(expected, got, tolerance, message, rejector) {\n if (Array.isArray(expected)) {\n const length = expected.length;\n if (!Array.isArray(got) || length != got.length) {\n const error = new Error(message);\n rejector(error);\n throw error;\n }\n for (let i = 0; i < length; ++i) {\n assertEqual(expected[i], got[i], tolerance, message, rejector);\n }\n return;\n }\n\n got = /** @type {number} */ (got);\n if (Math.abs(expected - got) > tolerance * expected) {\n throw new Error(message);\n }\n}\n\n/**\n * @param {Array} array The data array.\n * @return {number} The minimum value.\n */\nfunction getMinForDataType(array) {\n if (array instanceof Int8Array) {\n return -128;\n }\n if (array instanceof Int16Array) {\n return -32768;\n }\n if (array instanceof Int32Array) {\n return -2147483648;\n }\n if (array instanceof Float32Array) {\n return 1.2e-38;\n }\n return 0;\n}\n\n/**\n * @param {Array} array The data array.\n * @return {number} The maximum value.\n */\nfunction getMaxForDataType(array) {\n if (array instanceof Int8Array) {\n return 127;\n }\n if (array instanceof Uint8Array) {\n return 255;\n }\n if (array instanceof Uint8ClampedArray) {\n return 255;\n }\n if (array instanceof Int16Array) {\n return 32767;\n }\n if (array instanceof Uint16Array) {\n return 65535;\n }\n if (array instanceof Int32Array) {\n return 2147483647;\n }\n if (array instanceof Uint32Array) {\n return 4294967295;\n }\n if (array instanceof Float32Array) {\n return 3.4e38;\n }\n return 255;\n}\n\n/**\n * @typedef {Object} GeoTIFFSourceOptions\n * @property {boolean} [forceXHR=false] Whether to force the usage of the browsers XMLHttpRequest API.\n * @property {Object} [headers] additional key-value pairs of headers to be passed with each request. Key is the header name, value the header value.\n * @property {string} [credentials] How credentials shall be handled. See\n * https://developer.mozilla.org/en-US/docs/Web/API/fetch for reference and possible values\n * @property {number} [maxRanges] The maximum amount of ranges to request in a single multi-range request.\n * By default only a single range is used.\n * @property {boolean} [allowFullFile=false] Whether or not a full file is accepted when only a portion is\n * requested. Only use this when you know the source image to be small enough to fit in memory.\n * @property {number} [blockSize=65536] The block size to use.\n * @property {number} [cacheSize=100] The number of blocks that shall be held in a LRU cache.\n */\n\n/**\n * @typedef {Object} Options\n * @property {Array} sources List of information about GeoTIFF sources.\n * Multiple sources can be combined when their resolution sets are equal after applying a scale.\n * The list of sources defines a mapping between input bands as they are read from each GeoTIFF and\n * the output bands that are provided by data tiles. To control which bands to read from each GeoTIFF,\n * use the {@link import(\"./GeoTIFF.js\").SourceInfo bands} property. If, for example, you specify two\n * sources, one with 3 bands and {@link import(\"./GeoTIFF.js\").SourceInfo nodata} configured, and\n * another with 1 band, the resulting data tiles will have 5 bands: 3 from the first source, 1 alpha\n * band from the first source, and 1 band from the second source.\n * @property {GeoTIFFSourceOptions} [sourceOptions] Additional options to be passed to [geotiff.js](https://geotiffjs.github.io/geotiff.js/module-geotiff.html)'s `fromUrl` or `fromUrls` methods.\n * @property {true|false|'auto'} [convertToRGB=false] By default, bands from the sources are read as-is. When\n * reading GeoTIFFs with the purpose of displaying them as RGB images, setting this to `true` will\n * convert other color spaces (YCbCr, CMYK) to RGB. Setting the option to `'auto'` will make it so CMYK, YCbCr,\n * CIELab, and ICCLab images will automatically be converted to RGB.\n * @property {boolean} [normalize=true] By default, the source data is normalized to values between\n * 0 and 1 with scaling factors based on the raster statistics or `min` and `max` properties of each source.\n * If instead you want to work with the raw values in a style expression, set this to `false`. Setting this option\n * to `false` will make it so any `min` and `max` properties on sources are ignored.\n * @property {boolean} [opaque=false] Whether the layer is opaque.\n * @property {import(\"../proj.js\").ProjectionLike} [projection] Source projection. If not provided, the GeoTIFF metadata\n * will be read for projection information.\n * @property {number} [transition=250] Duration of the opacity transition for rendering.\n * To disable the opacity transition, pass `transition: 0`.\n * @property {boolean} [wrapX=false] Render tiles beyond the tile grid extent.\n * @property {boolean} [interpolate=true] Use interpolated values when resampling. By default,\n * the linear interpolation is used to resample the data. If false, nearest neighbor is used.\n */\n\n/**\n * @classdesc\n * A source for working with GeoTIFF data.\n * **Note for users of the full build**: The `GeoTIFF` source requires the\n * [geotiff.js](https://github.com/geotiffjs/geotiff.js) library to be loaded as well.\n *\n * @api\n */\nclass GeoTIFFSource extends DataTile {\n /**\n * @param {Options} options Data tile options.\n */\n constructor(options) {\n super({\n state: 'loading',\n tileGrid: null,\n projection: options.projection || null,\n opaque: options.opaque,\n transition: options.transition,\n interpolate: options.interpolate !== false,\n wrapX: options.wrapX,\n });\n\n /**\n * @type {Array}\n * @private\n */\n this.sourceInfo_ = options.sources;\n\n const numSources = this.sourceInfo_.length;\n\n /**\n * @type {Object}\n * @private\n */\n this.sourceOptions_ = options.sourceOptions;\n\n /**\n * @type {Array>}\n * @private\n */\n this.sourceImagery_ = new Array(numSources);\n\n /**\n * @type {Array>}\n * @private\n */\n this.sourceMasks_ = new Array(numSources);\n\n /**\n * @type {Array}\n * @private\n */\n this.resolutionFactors_ = new Array(numSources);\n\n /**\n * @type {Array}\n * @private\n */\n this.samplesPerPixel_;\n\n /**\n * @type {Array>}\n * @private\n */\n this.nodataValues_;\n\n /**\n * @type {Array>}\n * @private\n */\n this.metadata_;\n\n /**\n * @type {boolean}\n * @private\n */\n this.normalize_ = options.normalize !== false;\n\n /**\n * @type {boolean}\n * @private\n */\n this.addAlpha_ = false;\n\n /**\n * @type {Error}\n * @private\n */\n this.error_ = null;\n\n /**\n * @type {true|false|'auto'}\n */\n this.convertToRGB_ = options.convertToRGB || false;\n\n this.setKey(this.sourceInfo_.map((source) => source.url).join(','));\n\n const self = this;\n const requests = new Array(numSources);\n for (let i = 0; i < numSources; ++i) {\n requests[i] = getImagesForSource(\n this.sourceInfo_[i],\n this.sourceOptions_,\n );\n }\n Promise.all(requests)\n .then(function (sources) {\n self.configure_(sources);\n })\n .catch(function (error) {\n logError(error);\n self.error_ = error;\n self.setState('error');\n });\n }\n\n /**\n * @return {Error} A source loading error. When the source state is `error`, use this function\n * to get more information about the error. To debug a faulty configuration, you may want to use\n * a listener like\n * ```js\n * geotiffSource.on('change', () => {\n * if (geotiffSource.getState() === 'error') {\n * console.error(geotiffSource.getError());\n * }\n * });\n * ```\n */\n getError() {\n return this.error_;\n }\n\n /**\n * Determine the projection of the images in this GeoTIFF.\n * The default implementation looks at the ProjectedCSTypeGeoKey and the GeographicTypeGeoKey\n * of each image in turn.\n * You can override this method in a subclass to support more projections.\n *\n * @param {Array>} sources Each source is a list of images\n * from a single GeoTIFF.\n */\n determineProjection(sources) {\n const firstSource = sources[0];\n for (let i = firstSource.length - 1; i >= 0; --i) {\n const image = firstSource[i];\n const projection = getProjection(image);\n if (projection) {\n this.projection = projection;\n break;\n }\n }\n }\n\n /**\n * Configure the tile grid based on images within the source GeoTIFFs. Each GeoTIFF\n * must have the same internal tiled structure.\n * @param {Array>} sources Each source is a list of images\n * from a single GeoTIFF.\n * @private\n */\n configure_(sources) {\n let extent;\n let origin;\n let commonRenderTileSizes;\n let commonSourceTileSizes;\n let resolutions;\n const samplesPerPixel = new Array(sources.length);\n const nodataValues = new Array(sources.length);\n const metadata = new Array(sources.length);\n let minZoom = 0;\n\n const sourceCount = sources.length;\n for (let sourceIndex = 0; sourceIndex < sourceCount; ++sourceIndex) {\n const images = [];\n const masks = [];\n sources[sourceIndex].forEach((item) => {\n if (isMask(item)) {\n masks.push(item);\n } else {\n images.push(item);\n }\n });\n\n const imageCount = images.length;\n if (masks.length > 0 && masks.length !== imageCount) {\n throw new Error(\n `Expected one mask per image found ${masks.length} masks and ${imageCount} images`,\n );\n }\n\n let sourceExtent;\n let sourceOrigin;\n const sourceTileSizes = new Array(imageCount);\n const renderTileSizes = new Array(imageCount);\n const sourceResolutions = new Array(imageCount);\n\n nodataValues[sourceIndex] = new Array(imageCount);\n metadata[sourceIndex] = new Array(imageCount);\n\n for (let imageIndex = 0; imageIndex < imageCount; ++imageIndex) {\n const image = images[imageIndex];\n const nodataValue = image.getGDALNoData();\n metadata[sourceIndex][imageIndex] = image.getGDALMetadata(0);\n nodataValues[sourceIndex][imageIndex] = nodataValue;\n\n const wantedSamples = this.sourceInfo_[sourceIndex].bands;\n samplesPerPixel[sourceIndex] = wantedSamples\n ? wantedSamples.length\n : image.getSamplesPerPixel();\n const level = imageCount - (imageIndex + 1);\n\n if (!sourceExtent) {\n sourceExtent = getBoundingBox(image);\n }\n\n if (!sourceOrigin) {\n sourceOrigin = getOrigin(image);\n }\n\n const imageResolutions = getResolutions(image, images[0]);\n sourceResolutions[level] = imageResolutions[0];\n\n const sourceTileSize = [image.getTileWidth(), image.getTileHeight()];\n\n // request larger blocks for untiled layouts\n if (\n sourceTileSize[0] !== sourceTileSize[1] &&\n sourceTileSize[1] < defaultTileSize\n ) {\n sourceTileSize[0] = defaultTileSize;\n sourceTileSize[1] = defaultTileSize;\n }\n\n sourceTileSizes[level] = sourceTileSize;\n\n const aspectRatio = imageResolutions[0] / Math.abs(imageResolutions[1]);\n renderTileSizes[level] = [\n sourceTileSize[0],\n sourceTileSize[1] / aspectRatio,\n ];\n }\n\n if (!extent) {\n extent = sourceExtent;\n } else {\n getIntersection(extent, sourceExtent, extent);\n }\n\n if (!origin) {\n origin = sourceOrigin;\n } else {\n const message = `Origin mismatch for source ${sourceIndex}, got [${sourceOrigin}] but expected [${origin}]`;\n assertEqual(origin, sourceOrigin, 0, message, this.viewRejector);\n }\n\n if (!resolutions) {\n resolutions = sourceResolutions;\n this.resolutionFactors_[sourceIndex] = 1;\n } else {\n if (resolutions.length - minZoom > sourceResolutions.length) {\n minZoom = resolutions.length - sourceResolutions.length;\n }\n const resolutionFactor =\n resolutions[resolutions.length - 1] /\n sourceResolutions[sourceResolutions.length - 1];\n this.resolutionFactors_[sourceIndex] = resolutionFactor;\n const scaledSourceResolutions = sourceResolutions.map(\n (resolution) => (resolution *= resolutionFactor),\n );\n const message = `Resolution mismatch for source ${sourceIndex}, got [${scaledSourceResolutions}] but expected [${resolutions}]`;\n assertEqual(\n resolutions.slice(minZoom, resolutions.length),\n scaledSourceResolutions,\n 0.02,\n message,\n this.viewRejector,\n );\n }\n\n if (!commonRenderTileSizes) {\n commonRenderTileSizes = renderTileSizes;\n } else {\n assertEqual(\n commonRenderTileSizes.slice(minZoom, commonRenderTileSizes.length),\n renderTileSizes,\n 0.01,\n `Tile size mismatch for source ${sourceIndex}`,\n this.viewRejector,\n );\n }\n\n if (!commonSourceTileSizes) {\n commonSourceTileSizes = sourceTileSizes;\n } else {\n assertEqual(\n commonSourceTileSizes.slice(minZoom, commonSourceTileSizes.length),\n sourceTileSizes,\n 0,\n `Tile size mismatch for source ${sourceIndex}`,\n this.viewRejector,\n );\n }\n\n this.sourceImagery_[sourceIndex] = images.reverse();\n this.sourceMasks_[sourceIndex] = masks.reverse();\n }\n\n for (let i = 0, ii = this.sourceImagery_.length; i < ii; ++i) {\n const sourceImagery = this.sourceImagery_[i];\n while (sourceImagery.length < resolutions.length) {\n sourceImagery.unshift(undefined);\n }\n }\n\n if (!this.getProjection()) {\n this.determineProjection(sources);\n }\n\n this.samplesPerPixel_ = samplesPerPixel;\n this.nodataValues_ = nodataValues;\n this.metadata_ = metadata;\n\n // decide if we need to add an alpha band to handle nodata\n outer: for (let sourceIndex = 0; sourceIndex < sourceCount; ++sourceIndex) {\n // option 1: source is configured with a nodata value\n if (this.sourceInfo_[sourceIndex].nodata !== undefined) {\n this.addAlpha_ = true;\n break;\n }\n if (this.sourceMasks_[sourceIndex].length) {\n this.addAlpha_ = true;\n break;\n }\n\n const values = nodataValues[sourceIndex];\n\n // option 2: check image metadata for limited bands\n const bands = this.sourceInfo_[sourceIndex].bands;\n if (bands) {\n for (let i = 0; i < bands.length; ++i) {\n if (values[bands[i] - 1] !== null) {\n this.addAlpha_ = true;\n break outer;\n }\n }\n continue;\n }\n\n // option 3: check image metadata for all bands\n for (let imageIndex = 0; imageIndex < values.length; ++imageIndex) {\n if (values[imageIndex] !== null) {\n this.addAlpha_ = true;\n break outer;\n }\n }\n }\n\n let bandCount = this.addAlpha_ ? 1 : 0;\n for (let sourceIndex = 0; sourceIndex < sourceCount; ++sourceIndex) {\n bandCount += samplesPerPixel[sourceIndex];\n }\n this.bandCount = bandCount;\n\n const tileGrid = new TileGrid({\n extent: extent,\n minZoom: minZoom,\n origin: origin,\n resolutions: resolutions,\n tileSizes: commonRenderTileSizes,\n });\n\n this.tileGrid = tileGrid;\n this.setTileSizes(commonSourceTileSizes);\n\n this.setLoader(this.loadTile_.bind(this));\n this.setState('ready');\n\n const zoom = 1;\n if (resolutions.length === 2) {\n resolutions = [resolutions[0], resolutions[1], resolutions[1] / 2];\n } else if (resolutions.length === 1) {\n resolutions = [resolutions[0] * 2, resolutions[0], resolutions[0] / 2];\n }\n\n this.viewResolver({\n showFullExtent: true,\n projection: this.projection,\n resolutions: resolutions,\n center: toUserCoordinate(getCenter(extent), this.projection),\n extent: toUserExtent(extent, this.projection),\n zoom: zoom,\n });\n }\n\n /**\n * @param {number} z The z tile index.\n * @param {number} x The x tile index.\n * @param {number} y The y tile index.\n * @return {Promise} The composed tile data.\n * @private\n */\n loadTile_(z, x, y) {\n const sourceTileSize = this.getTileSize(z);\n const sourceCount = this.sourceImagery_.length;\n const requests = new Array(sourceCount * 2);\n const nodataValues = this.nodataValues_;\n const sourceInfo = this.sourceInfo_;\n const pool = getWorkerPool();\n for (let sourceIndex = 0; sourceIndex < sourceCount; ++sourceIndex) {\n const source = sourceInfo[sourceIndex];\n const resolutionFactor = this.resolutionFactors_[sourceIndex];\n const pixelBounds = [\n Math.round(x * (sourceTileSize[0] * resolutionFactor)),\n Math.round(y * (sourceTileSize[1] * resolutionFactor)),\n Math.round((x + 1) * (sourceTileSize[0] * resolutionFactor)),\n Math.round((y + 1) * (sourceTileSize[1] * resolutionFactor)),\n ];\n const image = this.sourceImagery_[sourceIndex][z];\n let samples;\n if (source.bands) {\n samples = source.bands.map(function (bandNumber) {\n return bandNumber - 1;\n });\n }\n\n /** @type {number|Array} */\n let fillValue;\n if ('nodata' in source && source.nodata !== null) {\n fillValue = source.nodata;\n } else {\n if (!samples) {\n fillValue = nodataValues[sourceIndex];\n } else {\n fillValue = samples.map(function (sampleIndex) {\n return nodataValues[sourceIndex][sampleIndex];\n });\n }\n }\n\n const readOptions = {\n window: pixelBounds,\n width: sourceTileSize[0],\n height: sourceTileSize[1],\n samples: samples,\n fillValue: fillValue,\n pool: pool,\n interleave: false,\n };\n if (readRGB(this.convertToRGB_, image)) {\n requests[sourceIndex] = image.readRGB(readOptions);\n } else {\n requests[sourceIndex] = image.readRasters(readOptions);\n }\n\n // requests after `sourceCount` are for mask data (if any)\n const maskIndex = sourceCount + sourceIndex;\n const mask = this.sourceMasks_[sourceIndex][z];\n if (!mask) {\n requests[maskIndex] = Promise.resolve(null);\n continue;\n }\n\n requests[maskIndex] = mask.readRasters({\n window: pixelBounds,\n width: sourceTileSize[0],\n height: sourceTileSize[1],\n samples: [0],\n pool: pool,\n interleave: false,\n });\n }\n\n return Promise.all(requests)\n .then(this.composeTile_.bind(this, sourceTileSize))\n .catch(function (error) {\n logError(error);\n throw error;\n });\n }\n\n /**\n * @param {import(\"../size.js\").Size} sourceTileSize The source tile size.\n * @param {Array} sourceSamples The source samples.\n * @return {import(\"../DataTile.js\").Data} The composed tile data.\n * @private\n */\n composeTile_(sourceTileSize, sourceSamples) {\n const metadata = this.metadata_;\n const sourceInfo = this.sourceInfo_;\n const sourceCount = this.sourceImagery_.length;\n const bandCount = this.bandCount;\n const samplesPerPixel = this.samplesPerPixel_;\n const nodataValues = this.nodataValues_;\n const normalize = this.normalize_;\n const addAlpha = this.addAlpha_;\n\n const pixelCount = sourceTileSize[0] * sourceTileSize[1];\n const dataLength = pixelCount * bandCount;\n\n /** @type {Uint8Array|Float32Array} */\n let data;\n if (normalize) {\n data = new Uint8Array(dataLength);\n } else {\n data = new Float32Array(dataLength);\n }\n\n let dataIndex = 0;\n for (let pixelIndex = 0; pixelIndex < pixelCount; ++pixelIndex) {\n let transparent = addAlpha;\n for (let sourceIndex = 0; sourceIndex < sourceCount; ++sourceIndex) {\n const source = sourceInfo[sourceIndex];\n\n let min = source.min;\n let max = source.max;\n let gain, bias;\n if (normalize) {\n const stats = metadata[sourceIndex][0];\n if (min === undefined) {\n if (stats && STATISTICS_MINIMUM in stats) {\n min = parseFloat(stats[STATISTICS_MINIMUM]);\n } else {\n min = getMinForDataType(sourceSamples[sourceIndex][0]);\n }\n }\n if (max === undefined) {\n if (stats && STATISTICS_MAXIMUM in stats) {\n max = parseFloat(stats[STATISTICS_MAXIMUM]);\n } else {\n max = getMaxForDataType(sourceSamples[sourceIndex][0]);\n }\n }\n\n gain = 255 / (max - min);\n bias = -min * gain;\n }\n\n for (\n let sampleIndex = 0;\n sampleIndex < samplesPerPixel[sourceIndex];\n ++sampleIndex\n ) {\n const sourceValue =\n sourceSamples[sourceIndex][sampleIndex][pixelIndex];\n\n let value;\n if (normalize) {\n value = clamp(gain * sourceValue + bias, 0, 255);\n } else {\n value = sourceValue;\n }\n\n if (!addAlpha) {\n data[dataIndex] = value;\n } else {\n let nodata = source.nodata;\n if (nodata === undefined) {\n let bandIndex;\n if (source.bands) {\n bandIndex = source.bands[sampleIndex] - 1;\n } else {\n bandIndex = sampleIndex;\n }\n nodata = nodataValues[sourceIndex][bandIndex];\n }\n\n const nodataIsNaN = isNaN(nodata);\n if (\n (!nodataIsNaN && sourceValue !== nodata) ||\n (nodataIsNaN && !isNaN(sourceValue))\n ) {\n transparent = false;\n data[dataIndex] = value;\n }\n }\n dataIndex++;\n }\n if (!transparent) {\n const maskIndex = sourceCount + sourceIndex;\n const mask = sourceSamples[maskIndex];\n if (mask && !mask[0][pixelIndex]) {\n transparent = true;\n }\n }\n }\n if (addAlpha) {\n if (!transparent) {\n data[dataIndex] = 255;\n }\n dataIndex++;\n }\n }\n\n return data;\n }\n}\n\n/**\n * Get a promise for view properties based on the source. Use the result of this function\n * as the `view` option in a map constructor.\n *\n * const source = new GeoTIFF(options);\n *\n * const map = new Map({\n * target: 'map',\n * layers: [\n * new TileLayer({\n * source: source,\n * }),\n * ],\n * view: source.getView(),\n * });\n *\n * @function\n * @return {Promise} A promise for view-related properties.\n * @api\n *\n */\nGeoTIFFSource.prototype.getView;\n\nexport default GeoTIFFSource;\n","","import mod from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./GeoTiffMixin.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./GeoTiffMixin.vue?vue&type=script&lang=js\"","var render, staticRenderFns\nimport script from \"./GeoTiffMixin.vue?vue&type=script&lang=js\"\nexport * from \"./GeoTiffMixin.vue?vue&type=script&lang=js\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","/**\n * @module ol/xml\n */\nimport {extend} from './array.js';\n\n/**\n * When using {@link module:ol/xml.makeChildAppender} or\n * {@link module:ol/xml.makeSimpleNodeFactory}, the top `objectStack` item needs\n * to have this structure.\n * @typedef {Object} NodeStackItem\n * @property {Element} node Node.\n */\n\n/**\n * @typedef {function(Element, Array<*>): void} Parser\n */\n\n/**\n * @typedef {function(Element, *, Array<*>): void} Serializer\n */\n\n/**\n * @type {string}\n */\nexport const XML_SCHEMA_INSTANCE_URI =\n 'http://www.w3.org/2001/XMLSchema-instance';\n\n/**\n * @param {string} namespaceURI Namespace URI.\n * @param {string} qualifiedName Qualified name.\n * @return {Element} Node.\n */\nexport function createElementNS(namespaceURI, qualifiedName) {\n return getDocument().createElementNS(namespaceURI, qualifiedName);\n}\n\n/**\n * Recursively grab all text content of child nodes into a single string.\n * @param {Node} node Node.\n * @param {boolean} normalizeWhitespace Normalize whitespace: remove all line\n * breaks.\n * @return {string} All text content.\n * @api\n */\nexport function getAllTextContent(node, normalizeWhitespace) {\n return getAllTextContent_(node, normalizeWhitespace, []).join('');\n}\n\n/**\n * Recursively grab all text content of child nodes into a single string.\n * @param {Node} node Node.\n * @param {boolean} normalizeWhitespace Normalize whitespace: remove all line\n * breaks.\n * @param {Array} accumulator Accumulator.\n * @private\n * @return {Array} Accumulator.\n */\nexport function getAllTextContent_(node, normalizeWhitespace, accumulator) {\n if (\n node.nodeType == Node.CDATA_SECTION_NODE ||\n node.nodeType == Node.TEXT_NODE\n ) {\n if (normalizeWhitespace) {\n accumulator.push(String(node.nodeValue).replace(/(\\r\\n|\\r|\\n)/g, ''));\n } else {\n accumulator.push(node.nodeValue);\n }\n } else {\n let n;\n for (n = node.firstChild; n; n = n.nextSibling) {\n getAllTextContent_(n, normalizeWhitespace, accumulator);\n }\n }\n return accumulator;\n}\n\n/**\n * @param {Object} object Object.\n * @return {boolean} Is a document.\n */\nexport function isDocument(object) {\n return 'documentElement' in object;\n}\n\n/**\n * @param {Element} node Node.\n * @param {?string} namespaceURI Namespace URI.\n * @param {string} name Attribute name.\n * @return {string} Value\n */\nexport function getAttributeNS(node, namespaceURI, name) {\n return node.getAttributeNS(namespaceURI, name) || '';\n}\n\n/**\n * Parse an XML string to an XML Document.\n * @param {string} xml XML.\n * @return {Document} Document.\n * @api\n */\nexport function parse(xml) {\n return new DOMParser().parseFromString(xml, 'application/xml');\n}\n\n/**\n * Make an array extender function for extending the array at the top of the\n * object stack.\n * @param {function(this: T, Node, Array<*>): (Array<*>|undefined)} valueReader Value reader.\n * @param {T} [thisArg] The object to use as `this` in `valueReader`.\n * @return {Parser} Parser.\n * @template T\n */\nexport function makeArrayExtender(valueReader, thisArg) {\n return (\n /**\n * @param {Node} node Node.\n * @param {Array<*>} objectStack Object stack.\n */\n function (node, objectStack) {\n const value = valueReader.call(\n thisArg !== undefined ? thisArg : this,\n node,\n objectStack,\n );\n if (value !== undefined) {\n const array = /** @type {Array<*>} */ (\n objectStack[objectStack.length - 1]\n );\n extend(array, value);\n }\n }\n );\n}\n\n/**\n * Make an array pusher function for pushing to the array at the top of the\n * object stack.\n * @param {function(this: T, Element, Array<*>): *} valueReader Value reader.\n * @param {T} [thisArg] The object to use as `this` in `valueReader`.\n * @return {Parser} Parser.\n * @template T\n */\nexport function makeArrayPusher(valueReader, thisArg) {\n return (\n /**\n * @param {Element} node Node.\n * @param {Array<*>} objectStack Object stack.\n */\n function (node, objectStack) {\n const value = valueReader.call(\n thisArg !== undefined ? thisArg : this,\n node,\n objectStack,\n );\n if (value !== undefined) {\n const array = /** @type {Array<*>} */ (\n objectStack[objectStack.length - 1]\n );\n array.push(value);\n }\n }\n );\n}\n\n/**\n * Make an object stack replacer function for replacing the object at the\n * top of the stack.\n * @param {function(this: T, Node, Array<*>): *} valueReader Value reader.\n * @param {T} [thisArg] The object to use as `this` in `valueReader`.\n * @return {Parser} Parser.\n * @template T\n */\nexport function makeReplacer(valueReader, thisArg) {\n return (\n /**\n * @param {Node} node Node.\n * @param {Array<*>} objectStack Object stack.\n */\n function (node, objectStack) {\n const value = valueReader.call(\n thisArg !== undefined ? thisArg : this,\n node,\n objectStack,\n );\n if (value !== undefined) {\n objectStack[objectStack.length - 1] = value;\n }\n }\n );\n}\n\n/**\n * Make an object property pusher function for adding a property to the\n * object at the top of the stack.\n * @param {function(this: T, Element, Array<*>): *} valueReader Value reader.\n * @param {string} [property] Property.\n * @param {T} [thisArg] The object to use as `this` in `valueReader`.\n * @return {Parser} Parser.\n * @template T\n */\nexport function makeObjectPropertyPusher(valueReader, property, thisArg) {\n return (\n /**\n * @param {Element} node Node.\n * @param {Array<*>} objectStack Object stack.\n */\n function (node, objectStack) {\n const value = valueReader.call(\n thisArg !== undefined ? thisArg : this,\n node,\n objectStack,\n );\n if (value !== undefined) {\n const object = /** @type {!Object} */ (\n objectStack[objectStack.length - 1]\n );\n const name = property !== undefined ? property : node.localName;\n let array;\n if (name in object) {\n array = object[name];\n } else {\n array = [];\n object[name] = array;\n }\n array.push(value);\n }\n }\n );\n}\n\n/**\n * Make an object property setter function.\n * @param {function(this: T, Element, Array<*>): *} valueReader Value reader.\n * @param {string} [property] Property.\n * @param {T} [thisArg] The object to use as `this` in `valueReader`.\n * @return {Parser} Parser.\n * @template T\n */\nexport function makeObjectPropertySetter(valueReader, property, thisArg) {\n return (\n /**\n * @param {Element} node Node.\n * @param {Array<*>} objectStack Object stack.\n */\n function (node, objectStack) {\n const value = valueReader.call(\n thisArg !== undefined ? thisArg : this,\n node,\n objectStack,\n );\n if (value !== undefined) {\n const object = /** @type {!Object} */ (\n objectStack[objectStack.length - 1]\n );\n const name = property !== undefined ? property : node.localName;\n object[name] = value;\n }\n }\n );\n}\n\n/**\n * Create a serializer that appends nodes written by its `nodeWriter` to its\n * designated parent. The parent is the `node` of the\n * {@link module:ol/xml~NodeStackItem} at the top of the `objectStack`.\n * @param {function(this: T, Node, V, Array<*>): void} nodeWriter Node writer.\n * @param {T} [thisArg] The object to use as `this` in `nodeWriter`.\n * @return {Serializer} Serializer.\n * @template T, V\n */\nexport function makeChildAppender(nodeWriter, thisArg) {\n return function (node, value, objectStack) {\n nodeWriter.call(\n thisArg !== undefined ? thisArg : this,\n node,\n value,\n objectStack,\n );\n const parent = /** @type {NodeStackItem} */ (\n objectStack[objectStack.length - 1]\n );\n const parentNode = parent.node;\n parentNode.appendChild(node);\n };\n}\n\n/**\n * Create a serializer that calls the provided `nodeWriter` from\n * {@link module:ol/xml.serialize}. This can be used by the parent writer to have the\n * `nodeWriter` called with an array of values when the `nodeWriter` was\n * designed to serialize a single item. An example would be a LineString\n * geometry writer, which could be reused for writing MultiLineString\n * geometries.\n * @param {function(this: T, Element, V, Array<*>): void} nodeWriter Node writer.\n * @param {T} [thisArg] The object to use as `this` in `nodeWriter`.\n * @return {Serializer} Serializer.\n * @template T, V\n */\nexport function makeArraySerializer(nodeWriter, thisArg) {\n let serializersNS, nodeFactory;\n return function (node, value, objectStack) {\n if (serializersNS === undefined) {\n serializersNS = {};\n const serializers = {};\n serializers[node.localName] = nodeWriter;\n serializersNS[node.namespaceURI] = serializers;\n nodeFactory = makeSimpleNodeFactory(node.localName);\n }\n serialize(serializersNS, nodeFactory, value, objectStack);\n };\n}\n\n/**\n * Create a node factory which can use the `keys` passed to\n * {@link module:ol/xml.serialize} or {@link module:ol/xml.pushSerializeAndPop} as node names,\n * or a fixed node name. The namespace of the created nodes can either be fixed,\n * or the parent namespace will be used.\n * @param {string} [fixedNodeName] Fixed node name which will be used for all\n * created nodes. If not provided, the 3rd argument to the resulting node\n * factory needs to be provided and will be the nodeName.\n * @param {string} [fixedNamespaceURI] Fixed namespace URI which will be used for\n * all created nodes. If not provided, the namespace of the parent node will\n * be used.\n * @return {function(*, Array<*>, string=): (Node|undefined)} Node factory.\n */\nexport function makeSimpleNodeFactory(fixedNodeName, fixedNamespaceURI) {\n return (\n /**\n * @param {*} value Value.\n * @param {Array<*>} objectStack Object stack.\n * @param {string} [newNodeName] Node name.\n * @return {Node} Node.\n */\n function (value, objectStack, newNodeName) {\n const context = /** @type {NodeStackItem} */ (\n objectStack[objectStack.length - 1]\n );\n const node = context.node;\n let nodeName = fixedNodeName;\n if (nodeName === undefined) {\n nodeName = newNodeName;\n }\n\n const namespaceURI =\n fixedNamespaceURI !== undefined ? fixedNamespaceURI : node.namespaceURI;\n return createElementNS(namespaceURI, /** @type {string} */ (nodeName));\n }\n );\n}\n\n/**\n * A node factory that creates a node using the parent's `namespaceURI` and the\n * `nodeName` passed by {@link module:ol/xml.serialize} or\n * {@link module:ol/xml.pushSerializeAndPop} to the node factory.\n * @const\n * @type {function(*, Array<*>, string=): (Node|undefined)}\n */\nexport const OBJECT_PROPERTY_NODE_FACTORY = makeSimpleNodeFactory();\n\n/**\n * Create an array of `values` to be used with {@link module:ol/xml.serialize} or\n * {@link module:ol/xml.pushSerializeAndPop}, where `orderedKeys` has to be provided as\n * `key` argument.\n * @param {Object} object Key-value pairs for the sequence. Keys can\n * be a subset of the `orderedKeys`.\n * @param {Array} orderedKeys Keys in the order of the sequence.\n * @return {Array<*>} Values in the order of the sequence. The resulting array\n * has the same length as the `orderedKeys` array. Values that are not\n * present in `object` will be `undefined` in the resulting array.\n */\nexport function makeSequence(object, orderedKeys) {\n const length = orderedKeys.length;\n const sequence = new Array(length);\n for (let i = 0; i < length; ++i) {\n sequence[i] = object[orderedKeys[i]];\n }\n return sequence;\n}\n\n/**\n * Create a namespaced structure, using the same values for each namespace.\n * This can be used as a starting point for versioned parsers, when only a few\n * values are version specific.\n * @param {Array} namespaceURIs Namespace URIs.\n * @param {T} structure Structure.\n * @param {Object} [structureNS] Namespaced structure to add to.\n * @return {Object} Namespaced structure.\n * @template T\n */\nexport function makeStructureNS(namespaceURIs, structure, structureNS) {\n structureNS = structureNS !== undefined ? structureNS : {};\n let i, ii;\n for (i = 0, ii = namespaceURIs.length; i < ii; ++i) {\n structureNS[namespaceURIs[i]] = structure;\n }\n return structureNS;\n}\n\n/**\n * Parse a node using the parsers and object stack.\n * @param {Object>} parsersNS\n * Parsers by namespace.\n * @param {Element} node Node.\n * @param {Array<*>} objectStack Object stack.\n * @param {*} [thisArg] The object to use as `this`.\n */\nexport function parseNode(parsersNS, node, objectStack, thisArg) {\n let n;\n for (n = node.firstElementChild; n; n = n.nextElementSibling) {\n const parsers = parsersNS[n.namespaceURI];\n if (parsers !== undefined) {\n const parser = parsers[n.localName];\n if (parser !== undefined) {\n parser.call(thisArg, n, objectStack);\n }\n }\n }\n}\n\n/**\n * Push an object on top of the stack, parse and return the popped object.\n * @param {T} object Object.\n * @param {Object>} parsersNS\n * Parsers by namespace.\n * @param {Element} node Node.\n * @param {Array<*>} objectStack Object stack.\n * @param {*} [thisArg] The object to use as `this`.\n * @return {T} Object.\n * @template T\n */\nexport function pushParseAndPop(object, parsersNS, node, objectStack, thisArg) {\n objectStack.push(object);\n parseNode(parsersNS, node, objectStack, thisArg);\n return /** @type {T} */ (objectStack.pop());\n}\n\n/**\n * Walk through an array of `values` and call a serializer for each value.\n * @param {Object>} serializersNS\n * Namespaced serializers.\n * @param {function(this: T, *, Array<*>, (string|undefined)): (Node|undefined)} nodeFactory\n * Node factory. The `nodeFactory` creates the node whose namespace and name\n * will be used to choose a node writer from `serializersNS`. This\n * separation allows us to decide what kind of node to create, depending on\n * the value we want to serialize. An example for this would be different\n * geometry writers based on the geometry type.\n * @param {Array<*>} values Values to serialize. An example would be an array\n * of {@link module:ol/Feature~Feature} instances.\n * @param {Array<*>} objectStack Node stack.\n * @param {Array} [keys] Keys of the `values`. Will be passed to the\n * `nodeFactory`. This is used for serializing object literals where the\n * node name relates to the property key. The array length of `keys` has\n * to match the length of `values`. For serializing a sequence, `keys`\n * determines the order of the sequence.\n * @param {T} [thisArg] The object to use as `this` for the node factory and\n * serializers.\n * @template T\n */\nexport function serialize(\n serializersNS,\n nodeFactory,\n values,\n objectStack,\n keys,\n thisArg,\n) {\n const length = (keys !== undefined ? keys : values).length;\n let value, node;\n for (let i = 0; i < length; ++i) {\n value = values[i];\n if (value !== undefined) {\n node = nodeFactory.call(\n thisArg !== undefined ? thisArg : this,\n value,\n objectStack,\n keys !== undefined ? keys[i] : undefined,\n );\n if (node !== undefined) {\n serializersNS[node.namespaceURI][node.localName].call(\n thisArg,\n node,\n value,\n objectStack,\n );\n }\n }\n }\n}\n\n/**\n * @param {O} object Object.\n * @param {Object>} serializersNS\n * Namespaced serializers.\n * @param {function(this: T, *, Array<*>, (string|undefined)): (Node|undefined)} nodeFactory\n * Node factory. The `nodeFactory` creates the node whose namespace and name\n * will be used to choose a node writer from `serializersNS`. This\n * separation allows us to decide what kind of node to create, depending on\n * the value we want to serialize. An example for this would be different\n * geometry writers based on the geometry type.\n * @param {Array<*>} values Values to serialize. An example would be an array\n * of {@link module:ol/Feature~Feature} instances.\n * @param {Array<*>} objectStack Node stack.\n * @param {Array} [keys] Keys of the `values`. Will be passed to the\n * `nodeFactory`. This is used for serializing object literals where the\n * node name relates to the property key. The array length of `keys` has\n * to match the length of `values`. For serializing a sequence, `keys`\n * determines the order of the sequence.\n * @param {T} [thisArg] The object to use as `this` for the node factory and\n * serializers.\n * @return {O|undefined} Object.\n * @template O, T\n */\nexport function pushSerializeAndPop(\n object,\n serializersNS,\n nodeFactory,\n values,\n objectStack,\n keys,\n thisArg,\n) {\n objectStack.push(object);\n serialize(serializersNS, nodeFactory, values, objectStack, keys, thisArg);\n return /** @type {O|undefined} */ (objectStack.pop());\n}\n\nlet xmlSerializer_ = undefined;\n\n/**\n * Register a XMLSerializer. Can be used to inject a XMLSerializer\n * where there is no globally available implementation.\n *\n * @param {XMLSerializer} xmlSerializer A XMLSerializer.\n * @api\n */\nexport function registerXMLSerializer(xmlSerializer) {\n xmlSerializer_ = xmlSerializer;\n}\n\n/**\n * @return {XMLSerializer} The XMLSerializer.\n */\nexport function getXMLSerializer() {\n if (xmlSerializer_ === undefined && typeof XMLSerializer !== 'undefined') {\n xmlSerializer_ = new XMLSerializer();\n }\n return xmlSerializer_;\n}\n\nlet document_ = undefined;\n\n/**\n * Register a Document to use when creating nodes for XML serializations. Can be used\n * to inject a Document where there is no globally available implementation.\n *\n * @param {Document} document A Document.\n * @api\n */\nexport function registerDocument(document) {\n document_ = document;\n}\n\n/**\n * Get a document that should be used when creating nodes for XML serializations.\n * @return {Document} The document.\n */\nexport function getDocument() {\n if (document_ === undefined && typeof document !== 'undefined') {\n document_ = document.implementation.createDocument('', '', null);\n }\n return document_;\n}\n","/**\n * @module ol/format/XML\n */\nimport {abstract} from '../util.js';\nimport {isDocument, parse} from '../xml.js';\n\n/**\n * @classdesc\n * Generic format for reading non-feature XML data\n *\n * @abstract\n */\nclass XML {\n /**\n * Read the source document.\n *\n * @param {Document|Element|string} source The XML source.\n * @return {Object|null} An object representing the source.\n * @api\n */\n read(source) {\n if (!source) {\n return null;\n }\n if (typeof source === 'string') {\n const doc = parse(source);\n return this.readFromDocument(doc);\n }\n if (isDocument(source)) {\n return this.readFromDocument(/** @type {Document} */ (source));\n }\n return this.readFromNode(/** @type {Element} */ (source));\n }\n\n /**\n * @param {Document} doc Document.\n * @return {Object|null} Object\n */\n readFromDocument(doc) {\n for (let n = doc.firstChild; n; n = n.nextSibling) {\n if (n.nodeType == Node.ELEMENT_NODE) {\n return this.readFromNode(/** @type {Element} */ (n));\n }\n }\n return null;\n }\n\n /**\n * @abstract\n * @param {Element} node Node.\n * @return {Object|null} Object\n */\n readFromNode(node) {\n abstract();\n }\n}\n\nexport default XML;\n","/**\n * @module ol/format/xlink\n */\n\n/**\n * @const\n * @type {string}\n */\nconst NAMESPACE_URI = 'http://www.w3.org/1999/xlink';\n\n/**\n * @param {Element} node Node.\n * @return {string|null} href.\n */\nexport function readHref(node) {\n return node.getAttributeNS(NAMESPACE_URI, 'href');\n}\n","/**\n * @module ol/format/xsd\n */\nimport {getAllTextContent, getDocument} from '../xml.js';\nimport {padNumber} from '../string.js';\n\n/**\n * @param {Node} node Node.\n * @return {boolean|undefined} Boolean.\n */\nexport function readBoolean(node) {\n const s = getAllTextContent(node, false);\n return readBooleanString(s);\n}\n\n/**\n * @param {string} string String.\n * @return {boolean|undefined} Boolean.\n */\nexport function readBooleanString(string) {\n const m = /^\\s*(true|1)|(false|0)\\s*$/.exec(string);\n if (m) {\n return m[1] !== undefined || false;\n }\n return undefined;\n}\n\n/**\n * @param {Node} node Node.\n * @return {number|undefined} DateTime in seconds.\n */\nexport function readDateTime(node) {\n const s = getAllTextContent(node, false);\n const dateTime = Date.parse(s);\n return isNaN(dateTime) ? undefined : dateTime / 1000;\n}\n\n/**\n * @param {Node} node Node.\n * @return {number|undefined} Decimal.\n */\nexport function readDecimal(node) {\n const s = getAllTextContent(node, false);\n return readDecimalString(s);\n}\n\n/**\n * @param {string} string String.\n * @return {number|undefined} Decimal.\n */\nexport function readDecimalString(string) {\n // FIXME check spec\n const m = /^\\s*([+\\-]?\\d*\\.?\\d+(?:e[+\\-]?\\d+)?)\\s*$/i.exec(string);\n if (m) {\n return parseFloat(m[1]);\n }\n return undefined;\n}\n\n/**\n * @param {Node} node Node.\n * @return {number|undefined} Non negative integer.\n */\nexport function readPositiveInteger(node) {\n const s = getAllTextContent(node, false);\n return readNonNegativeIntegerString(s);\n}\n\n/**\n * @param {string} string String.\n * @return {number|undefined} Non negative integer.\n */\nexport function readNonNegativeIntegerString(string) {\n const m = /^\\s*(\\d+)\\s*$/.exec(string);\n if (m) {\n return parseInt(m[1], 10);\n }\n return undefined;\n}\n\n/**\n * @param {Node} node Node.\n * @return {string|undefined} String.\n */\nexport function readString(node) {\n return getAllTextContent(node, false).trim();\n}\n\n/**\n * @param {Node} node Node to append a TextNode with the boolean to.\n * @param {boolean} bool Boolean.\n */\nexport function writeBooleanTextNode(node, bool) {\n writeStringTextNode(node, bool ? '1' : '0');\n}\n\n/**\n * @param {Node} node Node to append a CDATA Section with the string to.\n * @param {string} string String.\n */\nexport function writeCDATASection(node, string) {\n node.appendChild(getDocument().createCDATASection(string));\n}\n\n/**\n * @param {Node} node Node to append a TextNode with the dateTime to.\n * @param {number} dateTime DateTime in seconds.\n */\nexport function writeDateTimeTextNode(node, dateTime) {\n const date = new Date(dateTime * 1000);\n const string =\n date.getUTCFullYear() +\n '-' +\n padNumber(date.getUTCMonth() + 1, 2) +\n '-' +\n padNumber(date.getUTCDate(), 2) +\n 'T' +\n padNumber(date.getUTCHours(), 2) +\n ':' +\n padNumber(date.getUTCMinutes(), 2) +\n ':' +\n padNumber(date.getUTCSeconds(), 2) +\n 'Z';\n node.appendChild(getDocument().createTextNode(string));\n}\n\n/**\n * @param {Node} node Node to append a TextNode with the decimal to.\n * @param {number} decimal Decimal.\n */\nexport function writeDecimalTextNode(node, decimal) {\n const string = decimal.toPrecision();\n node.appendChild(getDocument().createTextNode(string));\n}\n\n/**\n * @param {Node} node Node to append a TextNode with the decimal to.\n * @param {number} nonNegativeInteger Non negative integer.\n */\nexport function writeNonNegativeIntegerTextNode(node, nonNegativeInteger) {\n const string = nonNegativeInteger.toString();\n node.appendChild(getDocument().createTextNode(string));\n}\n\n/**\n * @param {Node} node Node to append a TextNode with the string to.\n * @param {string} string String.\n */\nexport function writeStringTextNode(node, string) {\n node.appendChild(getDocument().createTextNode(string));\n}\n","/**\n * @module ol/format/OWS\n */\nimport XML from './XML.js';\nimport {\n makeObjectPropertyPusher,\n makeObjectPropertySetter,\n makeStructureNS,\n pushParseAndPop,\n} from '../xml.js';\nimport {readHref} from './xlink.js';\nimport {readString} from './xsd.js';\n\n/**\n * @const\n * @type {Array}\n */\nconst NAMESPACE_URIS = [null, 'http://www.opengis.net/ows/1.1'];\n\n/**\n * @const\n * @type {Object>}\n */\n// @ts-ignore\nconst PARSERS = makeStructureNS(NAMESPACE_URIS, {\n 'ServiceIdentification': makeObjectPropertySetter(readServiceIdentification),\n 'ServiceProvider': makeObjectPropertySetter(readServiceProvider),\n 'OperationsMetadata': makeObjectPropertySetter(readOperationsMetadata),\n});\n\nclass OWS extends XML {\n constructor() {\n super();\n }\n\n /**\n * @param {Element} node Node.\n * @return {Object|null} Object\n */\n readFromNode(node) {\n const owsObject = pushParseAndPop({}, PARSERS, node, []);\n return owsObject ? owsObject : null;\n }\n}\n\n/**\n * @const\n * @type {Object>}\n */\n// @ts-ignore\nconst ADDRESS_PARSERS = makeStructureNS(NAMESPACE_URIS, {\n 'DeliveryPoint': makeObjectPropertySetter(readString),\n 'City': makeObjectPropertySetter(readString),\n 'AdministrativeArea': makeObjectPropertySetter(readString),\n 'PostalCode': makeObjectPropertySetter(readString),\n 'Country': makeObjectPropertySetter(readString),\n 'ElectronicMailAddress': makeObjectPropertySetter(readString),\n});\n\n/**\n * @const\n * @type {Object>}\n */\n// @ts-ignore\nconst ALLOWED_VALUES_PARSERS = makeStructureNS(NAMESPACE_URIS, {\n 'Value': makeObjectPropertyPusher(readValue),\n});\n\n/**\n * @const\n * @type {Object>}\n */\n// @ts-ignore\nconst CONSTRAINT_PARSERS = makeStructureNS(NAMESPACE_URIS, {\n 'AllowedValues': makeObjectPropertySetter(readAllowedValues),\n});\n\n/**\n * @const\n * @type {Object>}\n */\n// @ts-ignore\nconst CONTACT_INFO_PARSERS = makeStructureNS(NAMESPACE_URIS, {\n 'Phone': makeObjectPropertySetter(readPhone),\n 'Address': makeObjectPropertySetter(readAddress),\n});\n\n/**\n * @const\n * @type {Object>}\n */\n// @ts-ignore\nconst DCP_PARSERS = makeStructureNS(NAMESPACE_URIS, {\n 'HTTP': makeObjectPropertySetter(readHttp),\n});\n\n/**\n * @const\n * @type {Object>}\n */\n// @ts-ignore\nconst HTTP_PARSERS = makeStructureNS(NAMESPACE_URIS, {\n 'Get': makeObjectPropertyPusher(readGet),\n 'Post': undefined, // TODO\n});\n\n/**\n * @const\n * @type {Object>}\n */\n// @ts-ignore\nconst OPERATION_PARSERS = makeStructureNS(NAMESPACE_URIS, {\n 'DCP': makeObjectPropertySetter(readDcp),\n});\n\n/**\n * @const\n * @type {Object>}\n */\n// @ts-ignore\nconst OPERATIONS_METADATA_PARSERS = makeStructureNS(NAMESPACE_URIS, {\n 'Operation': readOperation,\n});\n\n/**\n * @const\n * @type {Object>}\n */\n// @ts-ignore\nconst PHONE_PARSERS = makeStructureNS(NAMESPACE_URIS, {\n 'Voice': makeObjectPropertySetter(readString),\n 'Facsimile': makeObjectPropertySetter(readString),\n});\n\n/**\n * @const\n * @type {Object>}\n */\n// @ts-ignore\nconst REQUEST_METHOD_PARSERS = makeStructureNS(NAMESPACE_URIS, {\n 'Constraint': makeObjectPropertyPusher(readConstraint),\n});\n\n/**\n * @const\n * @type {Object>}\n */\n// @ts-ignore\nconst SERVICE_CONTACT_PARSERS = makeStructureNS(NAMESPACE_URIS, {\n 'IndividualName': makeObjectPropertySetter(readString),\n 'PositionName': makeObjectPropertySetter(readString),\n 'ContactInfo': makeObjectPropertySetter(readContactInfo),\n});\n\n/**\n * @const\n * @type {Object>}\n */\n// @ts-ignore\nconst SERVICE_IDENTIFICATION_PARSERS = makeStructureNS(NAMESPACE_URIS, {\n 'Abstract': makeObjectPropertySetter(readString),\n 'AccessConstraints': makeObjectPropertySetter(readString),\n 'Fees': makeObjectPropertySetter(readString),\n 'Title': makeObjectPropertySetter(readString),\n 'ServiceTypeVersion': makeObjectPropertySetter(readString),\n 'ServiceType': makeObjectPropertySetter(readString),\n});\n\n/**\n * @const\n * @type {Object>}\n */\n// @ts-ignore\nconst SERVICE_PROVIDER_PARSERS = makeStructureNS(NAMESPACE_URIS, {\n 'ProviderName': makeObjectPropertySetter(readString),\n 'ProviderSite': makeObjectPropertySetter(readHref),\n 'ServiceContact': makeObjectPropertySetter(readServiceContact),\n});\n\n/**\n * @param {Element} node Node.\n * @param {Array<*>} objectStack Object stack.\n * @return {Object|undefined} The address.\n */\nfunction readAddress(node, objectStack) {\n return pushParseAndPop({}, ADDRESS_PARSERS, node, objectStack);\n}\n\n/**\n * @param {Element} node Node.\n * @param {Array<*>} objectStack Object stack.\n * @return {Object|undefined} The values.\n */\nfunction readAllowedValues(node, objectStack) {\n return pushParseAndPop({}, ALLOWED_VALUES_PARSERS, node, objectStack);\n}\n\n/**\n * @param {Element} node Node.\n * @param {Array<*>} objectStack Object stack.\n * @return {Object|undefined} The constraint.\n */\nfunction readConstraint(node, objectStack) {\n const name = node.getAttribute('name');\n if (!name) {\n return undefined;\n }\n return pushParseAndPop({'name': name}, CONSTRAINT_PARSERS, node, objectStack);\n}\n\n/**\n * @param {Element} node Node.\n * @param {Array<*>} objectStack Object stack.\n * @return {Object|undefined} The contact info.\n */\nfunction readContactInfo(node, objectStack) {\n return pushParseAndPop({}, CONTACT_INFO_PARSERS, node, objectStack);\n}\n\n/**\n * @param {Element} node Node.\n * @param {Array<*>} objectStack Object stack.\n * @return {Object|undefined} The DCP.\n */\nfunction readDcp(node, objectStack) {\n return pushParseAndPop({}, DCP_PARSERS, node, objectStack);\n}\n\n/**\n * @param {Element} node Node.\n * @param {Array<*>} objectStack Object stack.\n * @return {Object|undefined} The GET object.\n */\nfunction readGet(node, objectStack) {\n const href = readHref(node);\n if (!href) {\n return undefined;\n }\n return pushParseAndPop(\n {'href': href},\n REQUEST_METHOD_PARSERS,\n node,\n objectStack,\n );\n}\n\n/**\n * @param {Element} node Node.\n * @param {Array<*>} objectStack Object stack.\n * @return {Object|undefined} The HTTP object.\n */\nfunction readHttp(node, objectStack) {\n return pushParseAndPop({}, HTTP_PARSERS, node, objectStack);\n}\n\n/**\n * @param {Element} node Node.\n * @param {Array<*>} objectStack Object stack.\n * @return {Object|undefined} The operation.\n */\nfunction readOperation(node, objectStack) {\n const name = node.getAttribute('name');\n const value = pushParseAndPop({}, OPERATION_PARSERS, node, objectStack);\n if (!value) {\n return undefined;\n }\n const object = /** @type {Object} */ (objectStack[objectStack.length - 1]);\n object[name] = value;\n}\n\n/**\n * @param {Element} node Node.\n * @param {Array<*>} objectStack Object stack.\n * @return {Object|undefined} The operations metadata.\n */\nfunction readOperationsMetadata(node, objectStack) {\n return pushParseAndPop({}, OPERATIONS_METADATA_PARSERS, node, objectStack);\n}\n\n/**\n * @param {Element} node Node.\n * @param {Array<*>} objectStack Object stack.\n * @return {Object|undefined} The phone.\n */\nfunction readPhone(node, objectStack) {\n return pushParseAndPop({}, PHONE_PARSERS, node, objectStack);\n}\n\n/**\n * @param {Element} node Node.\n * @param {Array<*>} objectStack Object stack.\n * @return {Object|undefined} The service identification.\n */\nfunction readServiceIdentification(node, objectStack) {\n return pushParseAndPop({}, SERVICE_IDENTIFICATION_PARSERS, node, objectStack);\n}\n\n/**\n * @param {Element} node Node.\n * @param {Array<*>} objectStack Object stack.\n * @return {Object|undefined} The service contact.\n */\nfunction readServiceContact(node, objectStack) {\n return pushParseAndPop({}, SERVICE_CONTACT_PARSERS, node, objectStack);\n}\n\n/**\n * @param {Element} node Node.\n * @param {Array<*>} objectStack Object stack.\n * @return {Object|undefined} The service provider.\n */\nfunction readServiceProvider(node, objectStack) {\n return pushParseAndPop({}, SERVICE_PROVIDER_PARSERS, node, objectStack);\n}\n\n/**\n * @param {Node} node Node.\n * @param {Array<*>} objectStack Object stack.\n * @return {string|undefined} The value.\n */\nfunction readValue(node, objectStack) {\n return readString(node);\n}\n\nexport default OWS;\n","/**\n * @module ol/format/WMTSCapabilities\n */\nimport OWS from './OWS.js';\nimport XML from './XML.js';\nimport {boundingExtent} from '../extent.js';\nimport {\n makeArrayPusher,\n makeObjectPropertyPusher,\n makeObjectPropertySetter,\n makeStructureNS,\n pushParseAndPop,\n} from '../xml.js';\nimport {readDecimal, readPositiveInteger, readString} from './xsd.js';\nimport {readHref} from './xlink.js';\n\n/**\n * @const\n * @type {Array}\n */\nconst NAMESPACE_URIS = [null, 'http://www.opengis.net/wmts/1.0'];\n\n/**\n * @const\n * @type {Array}\n */\nconst OWS_NAMESPACE_URIS = [null, 'http://www.opengis.net/ows/1.1'];\n\n/**\n * @const\n * @type {Object>}\n */\n// @ts-ignore\nconst PARSERS = makeStructureNS(NAMESPACE_URIS, {\n 'Contents': makeObjectPropertySetter(readContents),\n});\n\n/**\n * @classdesc\n * Format for reading WMTS capabilities data.\n *\n * @api\n */\nclass WMTSCapabilities extends XML {\n constructor() {\n super();\n\n /**\n * @type {OWS}\n * @private\n */\n this.owsParser_ = new OWS();\n }\n\n /**\n * @param {Element} node Node.\n * @return {Object|null} Object\n */\n readFromNode(node) {\n let version = node.getAttribute('version');\n if (version) {\n version = version.trim();\n }\n let WMTSCapabilityObject = this.owsParser_.readFromNode(node);\n if (!WMTSCapabilityObject) {\n return null;\n }\n WMTSCapabilityObject['version'] = version;\n WMTSCapabilityObject = pushParseAndPop(\n WMTSCapabilityObject,\n PARSERS,\n node,\n [],\n );\n return WMTSCapabilityObject ? WMTSCapabilityObject : null;\n }\n}\n\n/**\n * @const\n * @type {Object>}\n */\n// @ts-ignore\nconst CONTENTS_PARSERS = makeStructureNS(NAMESPACE_URIS, {\n 'Layer': makeObjectPropertyPusher(readLayer),\n 'TileMatrixSet': makeObjectPropertyPusher(readTileMatrixSet),\n});\n\n/**\n * @const\n * @type {Object>}\n */\n// @ts-ignore\nconst LAYER_PARSERS = makeStructureNS(\n NAMESPACE_URIS,\n {\n 'Style': makeObjectPropertyPusher(readStyle),\n 'Format': makeObjectPropertyPusher(readString),\n 'TileMatrixSetLink': makeObjectPropertyPusher(readTileMatrixSetLink),\n 'Dimension': makeObjectPropertyPusher(readDimensions),\n 'ResourceURL': makeObjectPropertyPusher(readResourceUrl),\n },\n makeStructureNS(OWS_NAMESPACE_URIS, {\n 'Title': makeObjectPropertySetter(readString),\n 'Abstract': makeObjectPropertySetter(readString),\n 'WGS84BoundingBox': makeObjectPropertySetter(readBoundingBox),\n 'BoundingBox': makeObjectPropertyPusher(readBoundingBoxWithCrs),\n 'Identifier': makeObjectPropertySetter(readString),\n }),\n);\n\n/**\n * @const\n * @type {Object>}\n */\n// @ts-ignore\nconst STYLE_PARSERS = makeStructureNS(\n NAMESPACE_URIS,\n {\n 'LegendURL': makeObjectPropertyPusher(readLegendUrl),\n },\n makeStructureNS(OWS_NAMESPACE_URIS, {\n 'Title': makeObjectPropertySetter(readString),\n 'Identifier': makeObjectPropertySetter(readString),\n }),\n);\n\n/**\n * @const\n * @type {Object>}\n */\n// @ts-ignore\nconst TMS_LINKS_PARSERS = makeStructureNS(NAMESPACE_URIS, {\n 'TileMatrixSet': makeObjectPropertySetter(readString),\n 'TileMatrixSetLimits': makeObjectPropertySetter(readTileMatrixLimitsList),\n});\n\n/**\n * @const\n * @type {Object>}\n */\n// @ts-ignore\nconst TMS_LIMITS_LIST_PARSERS = makeStructureNS(NAMESPACE_URIS, {\n 'TileMatrixLimits': makeArrayPusher(readTileMatrixLimits),\n});\n\n/**\n * @const\n * @type {Object>}\n */\n// @ts-ignore\nconst TMS_LIMITS_PARSERS = makeStructureNS(NAMESPACE_URIS, {\n 'TileMatrix': makeObjectPropertySetter(readString),\n 'MinTileRow': makeObjectPropertySetter(readPositiveInteger),\n 'MaxTileRow': makeObjectPropertySetter(readPositiveInteger),\n 'MinTileCol': makeObjectPropertySetter(readPositiveInteger),\n 'MaxTileCol': makeObjectPropertySetter(readPositiveInteger),\n});\n\n/**\n * @const\n * @type {Object>}\n */\n// @ts-ignore\nconst DIMENSION_PARSERS = makeStructureNS(\n NAMESPACE_URIS,\n {\n 'Default': makeObjectPropertySetter(readString),\n 'Value': makeObjectPropertyPusher(readString),\n },\n makeStructureNS(OWS_NAMESPACE_URIS, {\n 'Identifier': makeObjectPropertySetter(readString),\n }),\n);\n\n/**\n * @const\n * @type {Object>}\n */\n// @ts-ignore\nconst WGS84_BBOX_READERS = makeStructureNS(OWS_NAMESPACE_URIS, {\n 'LowerCorner': makeArrayPusher(readCoordinates),\n 'UpperCorner': makeArrayPusher(readCoordinates),\n});\n\n/**\n * @const\n * @type {Object>}\n */\n// @ts-ignore\nconst TMS_PARSERS = makeStructureNS(\n NAMESPACE_URIS,\n {\n 'WellKnownScaleSet': makeObjectPropertySetter(readString),\n 'TileMatrix': makeObjectPropertyPusher(readTileMatrix),\n },\n makeStructureNS(OWS_NAMESPACE_URIS, {\n 'SupportedCRS': makeObjectPropertySetter(readString),\n 'Identifier': makeObjectPropertySetter(readString),\n 'BoundingBox': makeObjectPropertySetter(readBoundingBox),\n }),\n);\n\n/**\n * @const\n * @type {Object>}\n */\n// @ts-ignore\nconst TM_PARSERS = makeStructureNS(\n NAMESPACE_URIS,\n {\n 'TopLeftCorner': makeObjectPropertySetter(readCoordinates),\n 'ScaleDenominator': makeObjectPropertySetter(readDecimal),\n 'TileWidth': makeObjectPropertySetter(readPositiveInteger),\n 'TileHeight': makeObjectPropertySetter(readPositiveInteger),\n 'MatrixWidth': makeObjectPropertySetter(readPositiveInteger),\n 'MatrixHeight': makeObjectPropertySetter(readPositiveInteger),\n },\n makeStructureNS(OWS_NAMESPACE_URIS, {\n 'Identifier': makeObjectPropertySetter(readString),\n }),\n);\n\n/**\n * @param {Element} node Node.\n * @param {Array<*>} objectStack Object stack.\n * @return {Object|undefined} Attribution object.\n */\nfunction readContents(node, objectStack) {\n return pushParseAndPop({}, CONTENTS_PARSERS, node, objectStack);\n}\n\n/**\n * @param {Element} node Node.\n * @param {Array<*>} objectStack Object stack.\n * @return {Object|undefined} Layers object.\n */\nfunction readLayer(node, objectStack) {\n return pushParseAndPop({}, LAYER_PARSERS, node, objectStack);\n}\n\n/**\n * @param {Element} node Node.\n * @param {Array<*>} objectStack Object stack.\n * @return {Object|undefined} Tile Matrix Set object.\n */\nfunction readTileMatrixSet(node, objectStack) {\n return pushParseAndPop({}, TMS_PARSERS, node, objectStack);\n}\n\n/**\n * @param {Element} node Node.\n * @param {Array<*>} objectStack Object stack.\n * @return {Object|undefined} Style object.\n */\nfunction readStyle(node, objectStack) {\n const style = pushParseAndPop({}, STYLE_PARSERS, node, objectStack);\n if (!style) {\n return undefined;\n }\n const isDefault = node.getAttribute('isDefault') === 'true';\n style['isDefault'] = isDefault;\n return style;\n}\n\n/**\n * @param {Element} node Node.\n * @param {Array<*>} objectStack Object stack.\n * @return {Object|undefined} Tile Matrix Set Link object.\n */\nfunction readTileMatrixSetLink(node, objectStack) {\n return pushParseAndPop({}, TMS_LINKS_PARSERS, node, objectStack);\n}\n\n/**\n * @param {Element} node Node.\n * @param {Array<*>} objectStack Object stack.\n * @return {Object|undefined} Dimension object.\n */\nfunction readDimensions(node, objectStack) {\n return pushParseAndPop({}, DIMENSION_PARSERS, node, objectStack);\n}\n\n/**\n * @param {Element} node Node.\n * @param {Array<*>} objectStack Object stack.\n * @return {Object|undefined} Resource URL object.\n */\nfunction readResourceUrl(node, objectStack) {\n const format = node.getAttribute('format');\n const template = node.getAttribute('template');\n const resourceType = node.getAttribute('resourceType');\n const resource = {};\n if (format) {\n resource['format'] = format;\n }\n if (template) {\n resource['template'] = template;\n }\n if (resourceType) {\n resource['resourceType'] = resourceType;\n }\n return resource;\n}\n\n/**\n * @param {Element} node Node.\n * @param {Array<*>} objectStack Object stack.\n * @return {Object|undefined} BBox object.\n */\nfunction readBoundingBox(node, objectStack) {\n const coordinates = pushParseAndPop(\n [],\n WGS84_BBOX_READERS,\n node,\n objectStack,\n );\n if (coordinates.length != 2) {\n return undefined;\n }\n return boundingExtent(coordinates);\n}\n\n/**\n * @param {Element} node Node.\n * @param {Array<*>} objectStack Object stack.\n * @return {Object|undefined} BBox object.\n */\nfunction readBoundingBoxWithCrs(node, objectStack) {\n const crs = node.getAttribute('crs');\n const coordinates = pushParseAndPop(\n [],\n WGS84_BBOX_READERS,\n node,\n objectStack,\n );\n if (coordinates.length != 2) {\n return undefined;\n }\n return {extent: boundingExtent(coordinates), crs: crs};\n}\n\n/**\n * @param {Element} node Node.\n * @param {Array<*>} objectStack Object stack.\n * @return {Object|undefined} Legend object.\n */\nfunction readLegendUrl(node, objectStack) {\n const legend = {};\n legend['format'] = node.getAttribute('format');\n legend['href'] = readHref(node);\n return legend;\n}\n\n/**\n * @param {Node} node Node.\n * @param {Array<*>} objectStack Object stack.\n * @return {Object|undefined} Coordinates object.\n */\nfunction readCoordinates(node, objectStack) {\n const coordinates = readString(node).split(/\\s+/);\n if (!coordinates || coordinates.length != 2) {\n return undefined;\n }\n const x = +coordinates[0];\n const y = +coordinates[1];\n if (isNaN(x) || isNaN(y)) {\n return undefined;\n }\n return [x, y];\n}\n\n/**\n * @param {Element} node Node.\n * @param {Array<*>} objectStack Object stack.\n * @return {Object|undefined} TileMatrix object.\n */\nfunction readTileMatrix(node, objectStack) {\n return pushParseAndPop({}, TM_PARSERS, node, objectStack);\n}\n\n/**\n * @param {Element} node Node.\n * @param {Array<*>} objectStack Object stack.\n * @return {Object|undefined} TileMatrixSetLimits Object.\n */\nfunction readTileMatrixLimitsList(node, objectStack) {\n return pushParseAndPop([], TMS_LIMITS_LIST_PARSERS, node, objectStack);\n}\n\n/**\n * @param {Element} node Node.\n * @param {Array<*>} objectStack Object stack.\n * @return {Object|undefined} TileMatrixLimits Array.\n */\nfunction readTileMatrixLimits(node, objectStack) {\n return pushParseAndPop({}, TMS_LIMITS_PARSERS, node, objectStack);\n}\n\nexport default WMTSCapabilities;\n","/**\n * @module ol/uri\n */\n\n/**\n * Appends query parameters to a URI.\n *\n * @param {string} uri The original URI, which may already have query data.\n * @param {!Object} params An object where keys are URI-encoded parameter keys,\n * and the values are arbitrary types or arrays.\n * @return {string} The new URI.\n */\nexport function appendParams(uri, params) {\n /** @type {Array} */\n const keyParams = [];\n // Skip any null or undefined parameter values\n Object.keys(params).forEach(function (k) {\n if (params[k] !== null && params[k] !== undefined) {\n keyParams.push(k + '=' + encodeURIComponent(params[k]));\n }\n });\n const qs = keyParams.join('&');\n // remove any trailing ? or &\n uri = uri.replace(/[?&]$/, '');\n // append ? or & depending on whether uri has existing parameters\n uri += uri.includes('?') ? '&' : '?';\n return uri + qs;\n}\n","/**\n * @module ol/tilegrid/WMTS\n */\n\nimport TileGrid from './TileGrid.js';\nimport {get as getProjection} from '../proj.js';\n\n/**\n * @typedef {Object} Options\n * @property {import(\"../extent.js\").Extent} [extent] Extent for the tile grid. No tiles\n * outside this extent will be requested by {@link module:ol/source/Tile~TileSource} sources.\n * When no `origin` or `origins` are configured, the `origin` will be set to the\n * top-left corner of the extent.\n * @property {import(\"../coordinate.js\").Coordinate} [origin] The tile grid origin, i.e.\n * where the `x` and `y` axes meet (`[z, 0, 0]`). Tile coordinates increase left\n * to right and downwards. If not specified, `extent` or `origins` must be provided.\n * @property {Array} [origins] Tile grid origins,\n * i.e. where the `x` and `y` axes meet (`[z, 0, 0]`), for each zoom level. If\n * given, the array length should match the length of the `resolutions` array, i.e.\n * each resolution can have a different origin. Tile coordinates increase left to\n * right and downwards. If not specified, `extent` or `origin` must be provided.\n * @property {!Array} resolutions Resolutions. The array index of each\n * resolution needs to match the zoom level. This means that even if a `minZoom`\n * is configured, the resolutions array will have a length of `maxZoom + 1`\n * @property {!Array} matrixIds matrix IDs. The length of this array needs\n * to match the length of the `resolutions` array.\n * @property {Array} [sizes] Number of tile rows and columns\n * of the grid for each zoom level. The values here are the `TileMatrixWidth` and\n * `TileMatrixHeight` advertised in the GetCapabilities response of the WMTS, and\n * define each zoom level's extent together with the `origin` or `origins`.\n * A grid `extent` can be configured in addition, and will further limit the extent for\n * which tile requests are made by sources. If the bottom-left corner of\n * an extent is used as `origin` or `origins`, then the `y` value must be\n * negative because OpenLayers tile coordinates use the top left as the origin.\n * @property {number|import(\"../size.js\").Size} [tileSize] Tile size.\n * @property {Array} [tileSizes] Tile sizes. The length of\n * this array needs to match the length of the `resolutions` array.\n */\n\n/**\n * @classdesc\n * Set the grid pattern for sources accessing WMTS tiled-image servers.\n * @api\n */\nclass WMTSTileGrid extends TileGrid {\n /**\n * @param {Options} options WMTS options.\n */\n constructor(options) {\n super({\n extent: options.extent,\n origin: options.origin,\n origins: options.origins,\n resolutions: options.resolutions,\n tileSize: options.tileSize,\n tileSizes: options.tileSizes,\n sizes: options.sizes,\n });\n\n /**\n * @private\n * @type {!Array}\n */\n this.matrixIds_ = options.matrixIds;\n }\n\n /**\n * @param {number} z Z.\n * @return {string} MatrixId..\n */\n getMatrixId(z) {\n return this.matrixIds_[z];\n }\n\n /**\n * Get the list of matrix identifiers.\n * @return {Array} MatrixIds.\n * @api\n */\n getMatrixIds() {\n return this.matrixIds_;\n }\n}\n\nexport default WMTSTileGrid;\n\n/**\n * Create a tile grid from a WMTS capabilities matrix set and an\n * optional TileMatrixSetLimits.\n * @param {Object} matrixSet An object representing a matrixSet in the\n * capabilities document.\n * @param {import(\"../extent.js\").Extent} [extent] An optional extent to restrict the tile\n * ranges the server provides.\n * @param {Array