diff --git a/CHANGELOG_OLD.md b/CHANGELOG_OLD.md index 6eae3688c..6e4ee5c49 100644 --- a/CHANGELOG_OLD.md +++ b/CHANGELOG_OLD.md @@ -1,4 +1,8 @@ The newest change log is in README.md +## 6.1.4 (2022-11-14) +* (bluefox) Corrected small error in rules +* (bluefox) Tried to fix debug mode + ## 6.1.3 (2022-11-03) * (Apollon77) Prevent the adapter crash when some script could not be compiled diff --git a/README.md b/README.md index abbb7de18..c69045a87 100644 --- a/README.md +++ b/README.md @@ -46,7 +46,7 @@ Since v5.5.0 of the JavaScript adapter the following locations (relative to the -### **WORK IN PROGRESS** +### 7.0.5 (2023-06-06) * (klein0r) reset timeouts in blockly * (klein0r) added additional blockly blocks @@ -77,10 +77,6 @@ Since v5.5.0 of the JavaScript adapter the following locations (relative to the * (Apollon77) Deprecated usage of own states in javascript.X.scriptEnabled/Problem and log a message on usage. Use own states in 0_userdata.0 instead! * (bluefox) added axios to pre-installed modules. `request` will be removed in the future -### 6.1.4 (2022-11-14) -* (bluefox) Corrected small error in rules -* (bluefox) Tried to fix debug mode - ## License The MIT License (MIT) diff --git a/admin/asset-manifest.json b/admin/asset-manifest.json index e9d1cba60..fc63672b2 100644 --- a/admin/asset-manifest.json +++ b/admin/asset-manifest.json @@ -1,8 +1,8 @@ { "files": { - "main.js": "/static/js/main.f469697b.js", + "main.js": "/static/js/main.ff344759.js", "static/css/98.cacc94fa.chunk.css": "/static/css/98.cacc94fa.chunk.css", - "static/js/98.7b6d008e.chunk.js": "/static/js/98.7b6d008e.chunk.js", + "static/js/98.adf71e94.chunk.js": "/static/js/98.adf71e94.chunk.js", "static/js/90.30165444.chunk.js": "/static/js/90.30165444.chunk.js", "static/js/305.6132eb16.chunk.js": "/static/js/305.6132eb16.chunk.js", "static/js/281.6af18b40.chunk.js": "/static/js/281.6af18b40.chunk.js", @@ -25,8 +25,8 @@ "static/media/hysteresis.png": "/static/media/hysteresis.04ebd02c6062432f891d.png", "static/media/Ground Floor.svg": "/static/media/Ground Floor.2b7c5c91db7f070935a2.svg", "static/media/Second Floor.svg": "/static/media/Second Floor.a2d5ed32df336591c06b.svg", - "static/media/Cellar.svg": "/static/media/Cellar.7ec1b1803a2437c8b78c.svg", "index.html": "/index.html", + "static/media/Cellar.svg": "/static/media/Cellar.7ec1b1803a2437c8b78c.svg", "static/media/Anteroom.svg": "/static/media/Anteroom.93a742135f2c060ad619.svg", "static/media/Corridor.svg": "/static/media/Corridor.93a742135f2c060ad619.svg", "static/media/names.txt": "/static/media/names.3a7dae0bd6b8b03b280f.txt", @@ -143,9 +143,9 @@ "static/media/Garage Doors.svg": "/static/media/Garage Doors.0c2a1cfca7ad1ea59625.svg", "static/media/Outdoor Blinds.svg": "/static/media/Outdoor Blinds.37b85a9c060a4af48da9.svg", "static/media/Upstairs.svg": "/static/media/Upstairs.441813e54e0daca0882d.svg", - "main.f469697b.js.map": "/static/js/main.f469697b.js.map", + "main.ff344759.js.map": "/static/js/main.ff344759.js.map", "98.cacc94fa.chunk.css.map": "/static/css/98.cacc94fa.chunk.css.map", - "98.7b6d008e.chunk.js.map": "/static/js/98.7b6d008e.chunk.js.map", + "98.adf71e94.chunk.js.map": "/static/js/98.adf71e94.chunk.js.map", "90.30165444.chunk.js.map": "/static/js/90.30165444.chunk.js.map", "305.6132eb16.chunk.js.map": "/static/js/305.6132eb16.chunk.js.map", "281.6af18b40.chunk.js.map": "/static/js/281.6af18b40.chunk.js.map", @@ -166,6 +166,6 @@ "277.01962033.chunk.js.map": "/static/js/277.01962033.chunk.js.map" }, "entrypoints": [ - "static/js/main.f469697b.js" + "static/js/main.ff344759.js" ] } \ No newline at end of file diff --git a/admin/google-blockly/blockly_compressed.js b/admin/google-blockly/blockly_compressed.js index 4df4ba72a..60adbc0d0 100644 --- a/admin/google-blockly/blockly_compressed.js +++ b/admin/google-blockly/blockly_compressed.js @@ -1,1473 +1,1708 @@ -// Do not edit this file; automatically generated by gulp. -'use strict';var Blockly={constants:{},LINE_MODE_MULTIPLIER:40,PAGE_MODE_MULTIPLIER:125,DRAG_RADIUS:5,FLYOUT_DRAG_RADIUS:10,SNAP_RADIUS:28};Blockly.CONNECTING_SNAP_RADIUS=Blockly.SNAP_RADIUS;Blockly.CURRENT_CONNECTION_PREFERENCE=8;Blockly.BUMP_DELAY=250;Blockly.BUMP_RANDOMNESS=10;Blockly.COLLAPSE_CHARS=30;Blockly.LONGPRESS=750;Blockly.SOUND_LIMIT=100;Blockly.DRAG_STACK=!0;Blockly.HSV_SATURATION=.45;Blockly.HSV_VALUE=.65;Blockly.SPRITE={width:96,height:124,url:"sprites.png"};Blockly.INPUT_VALUE=1; -Blockly.OUTPUT_VALUE=2;Blockly.NEXT_STATEMENT=3;Blockly.PREVIOUS_STATEMENT=4;Blockly.DUMMY_INPUT=5;Blockly.ALIGN_LEFT=-1;Blockly.ALIGN_CENTRE=0;Blockly.ALIGN_RIGHT=1;Blockly.DRAG_NONE=0;Blockly.DRAG_STICKY=1;Blockly.DRAG_BEGIN=1;Blockly.DRAG_FREE=2;Blockly.OPPOSITE_TYPE=[];Blockly.OPPOSITE_TYPE[Blockly.INPUT_VALUE]=Blockly.OUTPUT_VALUE;Blockly.OPPOSITE_TYPE[Blockly.OUTPUT_VALUE]=Blockly.INPUT_VALUE;Blockly.OPPOSITE_TYPE[Blockly.NEXT_STATEMENT]=Blockly.PREVIOUS_STATEMENT; -Blockly.OPPOSITE_TYPE[Blockly.PREVIOUS_STATEMENT]=Blockly.NEXT_STATEMENT;Blockly.TOOLBOX_AT_TOP=0;Blockly.TOOLBOX_AT_BOTTOM=1;Blockly.TOOLBOX_AT_LEFT=2;Blockly.TOOLBOX_AT_RIGHT=3;Blockly.DELETE_AREA_NONE=null;Blockly.DELETE_AREA_TRASH=1;Blockly.DELETE_AREA_TOOLBOX=2;Blockly.VARIABLE_CATEGORY_NAME="VARIABLE";Blockly.VARIABLE_DYNAMIC_CATEGORY_NAME="VARIABLE_DYNAMIC";Blockly.PROCEDURE_CATEGORY_NAME="PROCEDURE";Blockly.RENAME_VARIABLE_ID="RENAME_VARIABLE_ID";Blockly.DELETE_VARIABLE_ID="DELETE_VARIABLE_ID";Blockly.utils={};Blockly.utils.global=function(){return"object"===typeof self?self:"object"===typeof window?window:"object"===typeof global?global:this}();Blockly.Msg={};Blockly.utils.global.Blockly||(Blockly.utils.global.Blockly={});Blockly.utils.global.Blockly.Msg||(Blockly.utils.global.Blockly.Msg=Blockly.Msg);Blockly.utils.colour={}; -Blockly.utils.colour.parse=function(a){a=String(a).toLowerCase().trim();var b=Blockly.utils.colour.names[a];if(b)return b;b="0x"==a.substring(0,2)?"#"+a.substring(2):a;b="#"==b[0]?b:"#"+b;if(/^#[0-9a-f]{6}$/.test(b))return b;if(/^#[0-9a-f]{3}$/.test(b))return["#",b[1],b[1],b[2],b[2],b[3],b[3]].join("");var c=a.match(/^(?:rgb)?\s*\(\s*(\d+)\s*,\s*(\d+)\s*,\s*(\d+)\s*\)$/);return c&&(a=Number(c[1]),b=Number(c[2]),c=Number(c[3]),0<=a&&256>a&&0<=b&&256>b&&0<=c&&256>c)?Blockly.utils.colour.rgbToHex(a,b, -c):null};Blockly.utils.colour.rgbToHex=function(a,b,c){b=a<<16|b<<8|c;return 16>a?"#"+(16777216|b).toString(16).substr(1):"#"+b.toString(16)};Blockly.utils.colour.hexToRgb=function(a){a=Blockly.utils.colour.parse(a);if(!a)return[0,0,0];a=parseInt(a.substr(1),16);return[a>>16,a>>8&255,a&255]}; -Blockly.utils.colour.hsvToHex=function(a,b,c){var d=0,e=0,f=0;if(0==b)f=e=d=c;else{var g=Math.floor(a/60),h=a/60-g;a=c*(1-b);var k=c*(1-b*h);b=c*(1-b*(1-h));switch(g){case 1:d=k;e=c;f=a;break;case 2:d=a;e=c;f=b;break;case 3:d=a;e=k;f=c;break;case 4:d=b;e=a;f=c;break;case 5:d=c;e=a;f=k;break;case 6:case 0:d=c,e=b,f=a}}return Blockly.utils.colour.rgbToHex(Math.floor(d),Math.floor(e),Math.floor(f))}; -Blockly.utils.colour.blend=function(a,b,c){a=Blockly.utils.colour.parse(a);if(!a)return null;b=Blockly.utils.colour.parse(b);if(!b)return null;a=Blockly.utils.colour.hexToRgb(a);b=Blockly.utils.colour.hexToRgb(b);return Blockly.utils.colour.rgbToHex(Math.round(b[0]+c*(a[0]-b[0])),Math.round(b[1]+c*(a[1]-b[1])),Math.round(b[2]+c*(a[2]-b[2])))}; -Blockly.utils.colour.names={aqua:"#00ffff",black:"#000000",blue:"#0000ff",fuchsia:"#ff00ff",gray:"#808080",green:"#008000",lime:"#00ff00",maroon:"#800000",navy:"#000080",olive:"#808000",purple:"#800080",red:"#ff0000",silver:"#c0c0c0",teal:"#008080",white:"#ffffff",yellow:"#ffff00"};Blockly.utils.Coordinate=function(a,b){this.x=a;this.y=b};Blockly.utils.Coordinate.equals=function(a,b){return a==b?!0:a&&b?a.x==b.x&&a.y==b.y:!1};Blockly.utils.Coordinate.distance=function(a,b){var c=a.x-b.x;a=a.y-b.y;return Math.sqrt(c*c+a*a)};Blockly.utils.Coordinate.magnitude=function(a){return Math.sqrt(a.x*a.x+a.y*a.y)};Blockly.utils.Coordinate.difference=function(a,b){return new Blockly.utils.Coordinate(a.x-b.x,a.y-b.y)}; -Blockly.utils.Coordinate.sum=function(a,b){return new Blockly.utils.Coordinate(a.x+b.x,a.y+b.y)};Blockly.utils.Coordinate.prototype.scale=function(a){this.x*=a;this.y*=a;return this};Blockly.utils.Coordinate.prototype.translate=function(a,b){this.x+=a;this.y+=b;return this};Blockly.utils.string={};Blockly.utils.string.startsWith=function(a,b){return 0==a.lastIndexOf(b,0)};Blockly.utils.string.shortestStringLength=function(a){return a.length?a.reduce(function(a,c){return a.lengthb&&(b=c[d].length);d=-Infinity;var e=1;do{var f=d;var g=a;a=[];var h=c.length/e,k=1;for(d=0;df);return g}; -Blockly.utils.string.wrapScore_=function(a,b,c){for(var d=[0],e=[],f=0;fd&&(d=h,e=g)}return e?Blockly.utils.string.wrapMutate_(a,e,c):b};Blockly.utils.string.wrapToText_=function(a,b){for(var c=[],d=0;d=h?(e=2,f=h,(h=a.join(""))&&c.push(h),a.length=0):"{"==h?e=3:(a.push("%",h),e=0):2==e?"0"<=h&&"9">=h?f+=h:(c.push(parseInt(f,10)),g--,e=0):3==e&&(""==h?(a.splice(0,0,"%{"),g--,e=0):"}"!=h?a.push(h):(e=a.join(""),/[A-Z]\w*/i.test(e)?(h=e.toUpperCase(), -(h=Blockly.utils.string.startsWith(h,"BKY_")?h.substring(4):null)&&h in Blockly.Msg?(e=Blockly.Msg[h],"string"==typeof e?Array.prototype.push.apply(c,Blockly.utils.tokenizeInterpolation_(e,b)):b?c.push(String(e)):c.push(e)):c.push("%{"+e+"}")):c.push("%{"+e+"}"),e=a.length=0))}(h=a.join(""))&&c.push(h);b=[];for(g=a.length=0;gc;c++)b[c]=Blockly.utils.genUid.soup_.charAt(Math.random()*a);return b.join("")};Blockly.utils.genUid.soup_="!#$%()*+,-./:;=?@[]^_`{|}~ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789"; -Blockly.utils.is3dSupported=function(){if(void 0!==Blockly.utils.is3dSupported.cached_)return Blockly.utils.is3dSupported.cached_;if(!Blockly.utils.global.getComputedStyle)return!1;var a=document.createElement("p"),b="none",c={webkitTransform:"-webkit-transform",OTransform:"-o-transform",msTransform:"-ms-transform",MozTransform:"-moz-transform",transform:"transform"};document.body.insertBefore(a,null);for(var d in c)if(void 0!==a.style[d]){a.style[d]="translate3d(1px,1px,1px)";b=Blockly.utils.global.getComputedStyle(a); -if(!b)return document.body.removeChild(a),!1;b=b.getPropertyValue(c[d])}document.body.removeChild(a);Blockly.utils.is3dSupported.cached_="none"!==b;return Blockly.utils.is3dSupported.cached_};Blockly.utils.runAfterPageLoad=function(a){if("object"!=typeof document)throw Error("Blockly.utils.runAfterPageLoad() requires browser document.");if("complete"==document.readyState)a();else var b=setInterval(function(){"complete"==document.readyState&&(clearInterval(b),a())},10)}; -Blockly.utils.getViewportBBox=function(){var a=Blockly.utils.style.getViewportPageOffset();return{right:document.documentElement.clientWidth+a.x,bottom:document.documentElement.clientHeight+a.y,top:a.y,left:a.x}};Blockly.utils.arrayRemove=function(a,b){b=a.indexOf(b);if(-1==b)return!1;a.splice(b,1);return!0}; -Blockly.utils.getDocumentScroll=function(){var a=document.documentElement,b=window;return Blockly.utils.userAgent.IE&&b.pageYOffset!=a.scrollTop?new Blockly.utils.Coordinate(a.scrollLeft,a.scrollTop):new Blockly.utils.Coordinate(b.pageXOffset||a.scrollLeft,b.pageYOffset||a.scrollTop)};Blockly.utils.getBlockTypeCounts=function(a,b){var c=Object.create(null),d=a.getDescendants(!0);b&&(a=a.getNextBlock())&&(a=d.indexOf(a),d.splice(a,d.length-a));for(a=0;b=d[a];a++)c[b.type]?c[b.type]++:c[b.type]=1;return c}; -Blockly.utils.screenToWsCoordinates=function(a,b){var c=b.x;b=b.y;var d=a.getInjectionDiv().getBoundingClientRect();c=new Blockly.utils.Coordinate(c-d.left,b-d.top);b=a.getOriginOffsetInPixels();return Blockly.utils.Coordinate.difference(c,b).scale(1/a.scale)}; -Blockly.utils.parseBlockColour=function(a){var b="string"==typeof a?Blockly.utils.replaceMessageReferences(a):a,c=Number(b);if(!isNaN(c)&&0<=c&&360>=c)return{hue:c,hex:Blockly.utils.colour.hsvToHex(c,Blockly.HSV_SATURATION,255*Blockly.HSV_VALUE)};if(c=Blockly.utils.colour.parse(b))return{hue:null,hex:c};c='Invalid colour: "'+b+'"';a!=b&&(c+=' (from "'+a+'")');throw Error(c);};Blockly.Events={};Blockly.Events.group_="";Blockly.Events.recordUndo=!0;Blockly.Events.disabled_=0;Blockly.Events.CREATE="create";Blockly.Events.BLOCK_CREATE=Blockly.Events.CREATE;Blockly.Events.DELETE="delete";Blockly.Events.BLOCK_DELETE=Blockly.Events.DELETE;Blockly.Events.CHANGE="change";Blockly.Events.BLOCK_CHANGE=Blockly.Events.CHANGE;Blockly.Events.MOVE="move";Blockly.Events.BLOCK_MOVE=Blockly.Events.MOVE;Blockly.Events.VAR_CREATE="var_create";Blockly.Events.VAR_DELETE="var_delete"; -Blockly.Events.VAR_RENAME="var_rename";Blockly.Events.UI="ui";Blockly.Events.COMMENT_CREATE="comment_create";Blockly.Events.COMMENT_DELETE="comment_delete";Blockly.Events.COMMENT_CHANGE="comment_change";Blockly.Events.COMMENT_MOVE="comment_move";Blockly.Events.FINISHED_LOADING="finished_loading";Blockly.Events.BUMP_EVENTS=[Blockly.Events.BLOCK_CREATE,Blockly.Events.BLOCK_MOVE,Blockly.Events.COMMENT_CREATE,Blockly.Events.COMMENT_MOVE];Blockly.Events.FIRE_QUEUE_=[]; -Blockly.Events.fire=function(a){Blockly.Events.isEnabled()&&(Blockly.Events.FIRE_QUEUE_.length||setTimeout(Blockly.Events.fireNow_,0),Blockly.Events.FIRE_QUEUE_.push(a))};Blockly.Events.fireNow_=function(){for(var a=Blockly.Events.filter(Blockly.Events.FIRE_QUEUE_,!0),b=Blockly.Events.FIRE_QUEUE_.length=0,c;c=a[b];b++)if(c.workspaceId){var d=Blockly.Workspace.getById(c.workspaceId);d&&d.fireChangeListener(c)}}; -Blockly.Events.filter=function(a,b){a=a.slice();b||a.reverse();for(var c=[],d=Object.create(null),e=0,f;f=a[e];e++)if(!f.isNull()){var g=[f.type,f.blockId,f.workspaceId].join(" "),h=d[g],k=h?h.event:null;if(!h)d[g]={event:f,index:e},c.push(f);else if(f.type==Blockly.Events.MOVE&&h.index==e-1)k.newParentId=f.newParentId,k.newInputName=f.newInputName,k.newCoordinate=f.newCoordinate,h.index=e;else if(f.type==Blockly.Events.CHANGE&&f.element==k.element&&f.name==k.name)k.newValue=f.newValue;else if(f.type!= -Blockly.Events.UI||"click"!=f.element||"commentOpen"!=k.element&&"mutatorOpen"!=k.element&&"warningOpen"!=k.element)d[g]={event:f,index:1},c.push(f)}a=c.filter(function(a){return!a.isNull()});b||a.reverse();for(e=1;f=a[e];e++)f.type==Blockly.Events.CHANGE&&"mutation"==f.element&&a.unshift(a.splice(e,1)[0]);return a};Blockly.Events.clearPendingUndo=function(){for(var a=0,b;b=Blockly.Events.FIRE_QUEUE_[a];a++)b.recordUndo=!1};Blockly.Events.disable=function(){Blockly.Events.disabled_++}; -Blockly.Events.enable=function(){Blockly.Events.disabled_--};Blockly.Events.isEnabled=function(){return 0==Blockly.Events.disabled_};Blockly.Events.getGroup=function(){return Blockly.Events.group_};Blockly.Events.setGroup=function(a){Blockly.Events.group_="boolean"==typeof a?a?Blockly.utils.genUid():"":a};Blockly.Events.getDescendantIds=function(a){var b=[];a=a.getDescendants(!1);for(var c=0,d;d=a[c];c++)b[c]=d.id;return b}; -Blockly.Events.fromJson=function(a,b){switch(a.type){case Blockly.Events.CREATE:var c=new Blockly.Events.Create(null);break;case Blockly.Events.DELETE:c=new Blockly.Events.Delete(null);break;case Blockly.Events.CHANGE:c=new Blockly.Events.Change(null,"","","","");break;case Blockly.Events.MOVE:c=new Blockly.Events.Move(null);break;case Blockly.Events.VAR_CREATE:c=new Blockly.Events.VarCreate(null);break;case Blockly.Events.VAR_DELETE:c=new Blockly.Events.VarDelete(null);break;case Blockly.Events.VAR_RENAME:c= -new Blockly.Events.VarRename(null,"");break;case Blockly.Events.UI:c=new Blockly.Events.Ui(null,"","","");break;case Blockly.Events.COMMENT_CREATE:c=new Blockly.Events.CommentCreate(null);break;case Blockly.Events.COMMENT_CHANGE:c=new Blockly.Events.CommentChange(null,"","");break;case Blockly.Events.COMMENT_MOVE:c=new Blockly.Events.CommentMove(null);break;case Blockly.Events.COMMENT_DELETE:c=new Blockly.Events.CommentDelete(null);break;case Blockly.Events.FINISHED_LOADING:c=new Blockly.Events.FinishedLoading(b); -break;default:throw Error("Unknown event type.");}c.fromJson(a);c.workspaceId=b.id;return c}; -Blockly.Events.disableOrphans=function(a){if((a.type==Blockly.Events.MOVE||a.type==Blockly.Events.CREATE)&&a.workspaceId){var b=Blockly.Workspace.getById(a.workspaceId);if(a=b.getBlockById(a.blockId)){var c=a.getParent();if(c&&c.isEnabled())for(b=a.getDescendants(!1),a=0;c=b[a];a++)c.setEnabled(!0);else if((a.outputConnection||a.previousConnection)&&!b.isDragging()){do a.setEnabled(!1),a=a.getNextBlock();while(a)}}}};Blockly.Events.Abstract=function(){this.workspaceId=void 0;this.group=Blockly.Events.getGroup();this.recordUndo=Blockly.Events.recordUndo};Blockly.Events.Abstract.prototype.toJson=function(){var a={type:this.type};this.group&&(a.group=this.group);return a};Blockly.Events.Abstract.prototype.fromJson=function(a){this.group=a.group};Blockly.Events.Abstract.prototype.isNull=function(){return!1};Blockly.Events.Abstract.prototype.run=function(a){}; -Blockly.Events.Abstract.prototype.getEventWorkspace_=function(){if(this.workspaceId)var a=Blockly.Workspace.getById(this.workspaceId);if(!a)throw Error("Workspace is null. Event must have been generated from real Blockly events.");return a};Blockly.utils.object={};Blockly.utils.object.inherits=function(a,b){a.superClass_=b.prototype;a.prototype=Object.create(b.prototype);a.prototype.constructor=a};Blockly.utils.object.mixin=function(a,b){for(var c in b)a[c]=b[c]};Blockly.utils.object.deepMerge=function(a,b){for(var c in b)a[c]="object"===typeof b[c]?Blockly.utils.object.deepMerge(a[c]||Object.create(null),b[c]):b[c];return a};Blockly.utils.object.values=function(a){return Object.values?Object.values(a):Object.keys(a).map(function(b){return a[b]})};Blockly.Events.Ui=function(a,b,c,d){Blockly.Events.Ui.superClass_.constructor.call(this);this.blockId=a?a.id:null;this.workspaceId=a?a.workspace.id:void 0;this.element=b;this.oldValue=c;this.newValue=d;this.recordUndo=!1};Blockly.utils.object.inherits(Blockly.Events.Ui,Blockly.Events.Abstract);Blockly.Events.Ui.prototype.type=Blockly.Events.UI; -Blockly.Events.Ui.prototype.toJson=function(){var a=Blockly.Events.Ui.superClass_.toJson.call(this);a.element=this.element;void 0!==this.newValue&&(a.newValue=this.newValue);this.blockId&&(a.blockId=this.blockId);return a};Blockly.Events.Ui.prototype.fromJson=function(a){Blockly.Events.Ui.superClass_.fromJson.call(this,a);this.element=a.element;this.newValue=a.newValue;this.blockId=a.blockId};Blockly.utils.dom={};Blockly.utils.dom.SVG_NS="http://www.w3.org/2000/svg";Blockly.utils.dom.HTML_NS="http://www.w3.org/1999/xhtml";Blockly.utils.dom.XLINK_NS="http://www.w3.org/1999/xlink";Blockly.utils.dom.Node={ELEMENT_NODE:1,TEXT_NODE:3,COMMENT_NODE:8,DOCUMENT_POSITION_CONTAINED_BY:16};Blockly.utils.dom.cacheWidths_=null;Blockly.utils.dom.cacheReference_=0;Blockly.utils.dom.canvasContext_=null; -Blockly.utils.dom.createSvgElement=function(a,b,c){a=document.createElementNS(Blockly.utils.dom.SVG_NS,a);for(var d in b)a.setAttribute(d,b[d]);document.body.runtimeStyle&&(a.runtimeStyle=a.currentStyle=a.style);c&&c.appendChild(a);return a};Blockly.utils.dom.addClass=function(a,b){var c=a.getAttribute("class")||"";if(-1!=(" "+c+" ").indexOf(" "+b+" "))return!1;c&&(c+=" ");a.setAttribute("class",c+b);return!0}; -Blockly.utils.dom.removeClass=function(a,b){var c=a.getAttribute("class");if(-1==(" "+c+" ").indexOf(" "+b+" "))return!1;c=c.split(/\s+/);for(var d=0;db||b>this.getChildCount())throw Error(Blockly.Component.Error.CHILD_INDEX_OUT_OF_BOUNDS);this.childIndex_[a.getId()]=a;if(a.getParent()==this){var d=this.children_.indexOf(a);-1>>/g,a),a=document.createElement("style"),a.id="blockly-common-style",c=document.createTextNode(c),a.appendChild(c),document.head.insertBefore(a,document.head.firstChild))}};Blockly.Css.setCursor=function(a){console.warn("Deprecated call to Blockly.Css.setCursor. See https://github.com/google/blockly/issues/981 for context")}; -Blockly.Css.CONTENT=[".blocklySvg {","background-color: #fff;","outline: none;","overflow: hidden;","position: absolute;","display: block;","}",".blocklyWidgetDiv {","display: none;","position: absolute;","z-index: 99999;","}",".injectionDiv {","height: 100%;","position: relative;","overflow: hidden;","touch-action: none;","}",".blocklyNonSelectable {","user-select: none;","-ms-user-select: none;","-webkit-user-select: none;","}",".blocklyWsDragSurface {","display: none;","position: absolute;","top: 0;", -"left: 0;","}",".blocklyWsDragSurface.blocklyOverflowVisible {","overflow: visible;","}",".blocklyBlockDragSurface {","display: none;","position: absolute;","top: 0;","left: 0;","right: 0;","bottom: 0;","overflow: visible !important;","z-index: 50;","}",".blocklyBlockCanvas.blocklyCanvasTransitioning,",".blocklyBubbleCanvas.blocklyCanvasTransitioning {","transition: transform .5s;","}",".blocklyTooltipDiv {","background-color: #ffffc7;","border: 1px solid #ddc;","box-shadow: 4px 4px 20px 1px rgba(0,0,0,.15);", -"color: #000;","display: none;","font-family: sans-serif;","font-size: 9pt;","opacity: .9;","padding: 2px;","position: absolute;","z-index: 100000;","}",".blocklyDropDownDiv {","position: absolute;","left: 0;","top: 0;","z-index: 1000;","display: none;","border: 1px solid;","border-color: #dadce0;","background-color: #fff;","border-radius: 2px;","padding: 4px;","box-shadow: 0px 0px 3px 1px rgba(0,0,0,.3);","}",".blocklyDropDownDiv.focused {","box-shadow: 0px 0px 6px 1px rgba(0,0,0,.3);","}",".blocklyDropDownContent {", -"max-height: 300px;","overflow: auto;","overflow-x: hidden;","}",".blocklyDropDownArrow {","position: absolute;","left: 0;","top: 0;","width: 16px;","height: 16px;","z-index: -1;","background-color: inherit;","border-color: inherit;","}",".blocklyDropDownButton {","display: inline-block;","float: left;","padding: 0;","margin: 4px;","border-radius: 4px;","outline: none;","border: 1px solid;","transition: box-shadow .1s;","cursor: pointer;","}",".blocklyArrowTop {","border-top: 1px solid;","border-left: 1px solid;", -"border-top-left-radius: 4px;","border-color: inherit;","}",".blocklyArrowBottom {","border-bottom: 1px solid;","border-right: 1px solid;","border-bottom-right-radius: 4px;","border-color: inherit;","}",".blocklyResizeSE {","cursor: se-resize;","fill: #aaa;","}",".blocklyResizeSW {","cursor: sw-resize;","fill: #aaa;","}",".blocklyResizeLine {","stroke: #515A5A;","stroke-width: 1;","}",".blocklyHighlightedConnectionPath {","fill: none;","stroke: #fc3;","stroke-width: 4px;","}",".blocklyPathLight {", -"fill: none;","stroke-linecap: round;","stroke-width: 1;","}",".blocklySelected>.blocklyPathLight {","display: none;","}",".blocklyDraggable {",'cursor: url("<<>>/handopen.cur"), auto;',"cursor: grab;","cursor: -webkit-grab;","}",".blocklyDragging {",'cursor: url("<<>>/handclosed.cur"), auto;',"cursor: grabbing;","cursor: -webkit-grabbing;","}",".blocklyDraggable:active {",'cursor: url("<<>>/handclosed.cur"), auto;',"cursor: grabbing;","cursor: -webkit-grabbing;","}",".blocklyBlockDragSurface .blocklyDraggable {", -'cursor: url("<<>>/handclosed.cur"), auto;',"cursor: grabbing;","cursor: -webkit-grabbing;","}",".blocklyDragging.blocklyDraggingDelete {",'cursor: url("<<>>/handdelete.cur"), auto;',"}",".blocklyDragging>.blocklyPath,",".blocklyDragging>.blocklyPathLight {","fill-opacity: .8;","stroke-opacity: .8;","}",".blocklyDragging>.blocklyPathDark {","display: none;","}",".blocklyDisabled>.blocklyPath {","fill-opacity: .5;","stroke-opacity: .5;","}",".blocklyDisabled>.blocklyPathLight,",".blocklyDisabled>.blocklyPathDark {", -"display: none;","}",".blocklyInsertionMarker>.blocklyPath,",".blocklyInsertionMarker>.blocklyPathLight,",".blocklyInsertionMarker>.blocklyPathDark {","fill-opacity: .2;","stroke: none","}",".blocklyMultilineText {","font-family: monospace;","}",".blocklyNonEditableText>text {","pointer-events: none;","}",".blocklyFlyout {","position: absolute;","z-index: 20;","}",".blocklyText text {","cursor: default;","}",".blocklySvg text, .blocklyBlockDragSurface text {","user-select: none;","-ms-user-select: none;", -"-webkit-user-select: none;","cursor: inherit;","}",".blocklyHidden {","display: none;","}",".blocklyFieldDropdown:not(.blocklyHidden) {","display: block;","}",".blocklyIconGroup {","cursor: default;","}",".blocklyIconGroup:not(:hover),",".blocklyIconGroupReadonly {","opacity: .6;","}",".blocklyIconShape {","fill: #00f;","stroke: #fff;","stroke-width: 1px;","}",".blocklyIconSymbol {","fill: #fff;","}",".blocklyMinimalBody {","margin: 0;","padding: 0;","}",".blocklyHtmlInput {","border: none;","border-radius: 4px;", -"height: 100%;","margin: 0;","outline: none;","padding: 0;","width: 100%;","text-align: center;","display: block;","box-sizing: border-box;","}",".blocklyHtmlInput::-ms-clear {","display: none;","}",".blocklyMainBackground {","stroke-width: 1;","stroke: #c6c6c6;","}",".blocklyMutatorBackground {","fill: #fff;","stroke: #ddd;","stroke-width: 1;","}",".blocklyFlyoutBackground {","fill: #ddd;","fill-opacity: .8;","}",".blocklyMainWorkspaceScrollbar {","z-index: 20;","}",".blocklyFlyoutScrollbar {","z-index: 30;", -"}",".blocklyScrollbarHorizontal, .blocklyScrollbarVertical {","position: absolute;","outline: none;","}",".blocklyScrollbarBackground {","opacity: 0;","}",".blocklyScrollbarHandle {","fill: #ccc;","}",".blocklyScrollbarBackground:hover+.blocklyScrollbarHandle,",".blocklyScrollbarHandle:hover {","fill: #bbb;","}",".blocklyFlyout .blocklyScrollbarHandle {","fill: #bbb;","}",".blocklyFlyout .blocklyScrollbarBackground:hover+.blocklyScrollbarHandle,",".blocklyFlyout .blocklyScrollbarHandle:hover {", -"fill: #aaa;","}",".blocklyInvalidInput {","background: #faa;","}",".blocklyContextMenu {","border-radius: 4px;","max-height: 100%;","}",".blocklyDropdownMenu {","border-radius: 2px;","padding: 0 !important;","}",".blocklyWidgetDiv .blocklyDropdownMenu .goog-menuitem,",".blocklyDropDownDiv .blocklyDropdownMenu .goog-menuitem {","padding-left: 28px;","}",".blocklyWidgetDiv .blocklyDropdownMenu .goog-menuitem.goog-menuitem-rtl,",".blocklyDropDownDiv .blocklyDropdownMenu .goog-menuitem.goog-menuitem-rtl {", -"padding-left: 5px;","padding-right: 28px;","}",".blocklyVerticalMarker {","stroke-width: 3px;","fill: rgba(255,255,255,.5);","pointer-events: none","}",".blocklyWidgetDiv .goog-option-selected .goog-menuitem-checkbox,",".blocklyWidgetDiv .goog-option-selected .goog-menuitem-icon,",".blocklyDropDownDiv .goog-option-selected .goog-menuitem-checkbox,",".blocklyDropDownDiv .goog-option-selected .goog-menuitem-icon {","background: url(<<>>/sprites.png) no-repeat -48px -16px;","}",".blocklyWidgetDiv .goog-menu {", -"background: #fff;","border-color: transparent;","border-style: solid;","border-width: 1px;","cursor: default;","font: normal 13px Arial, sans-serif;","margin: 0;","outline: none;","padding: 4px 0;","position: absolute;","overflow-y: auto;","overflow-x: hidden;","max-height: 100%;","z-index: 20000;","box-shadow: 0px 0px 3px 1px rgba(0,0,0,.3);","}",".blocklyWidgetDiv .goog-menu.focused {","box-shadow: 0px 0px 6px 1px rgba(0,0,0,.3);","}",".blocklyDropDownDiv .goog-menu {","cursor: default;",'font: normal 13px "Helvetica Neue", Helvetica, sans-serif;', -"outline: none;","z-index: 20000;","}",".blocklyWidgetDiv .goog-menuitem,",".blocklyDropDownDiv .goog-menuitem {","color: #000;","font: normal 13px Arial, sans-serif;","list-style: none;","margin: 0;","min-width: 7em;","border: none;","padding: 6px 15px;","white-space: nowrap;","cursor: pointer;","}",".blocklyWidgetDiv .goog-menu-nocheckbox .goog-menuitem,",".blocklyWidgetDiv .goog-menu-noicon .goog-menuitem,",".blocklyDropDownDiv .goog-menu-nocheckbox .goog-menuitem,",".blocklyDropDownDiv .goog-menu-noicon .goog-menuitem {", -"padding-left: 12px;","}",".blocklyWidgetDiv .goog-menuitem-content,",".blocklyDropDownDiv .goog-menuitem-content {","font-family: Arial, sans-serif;","font-size: 13px;","}",".blocklyWidgetDiv .goog-menuitem-content {","color: #000;","}",".blocklyDropDownDiv .goog-menuitem-content {","color: #000;","}",".blocklyWidgetDiv .goog-menuitem-disabled,",".blocklyDropDownDiv .goog-menuitem-disabled {","cursor: inherit;","}",".blocklyWidgetDiv .goog-menuitem-disabled .goog-menuitem-content,",".blocklyDropDownDiv .goog-menuitem-disabled .goog-menuitem-content {", -"color: #ccc !important;","}",".blocklyWidgetDiv .goog-menuitem-disabled .goog-menuitem-icon,",".blocklyDropDownDiv .goog-menuitem-disabled .goog-menuitem-icon {","opacity: .3;","filter: alpha(opacity=30);","}",".blocklyWidgetDiv .goog-menuitem-highlight ,",".blocklyDropDownDiv .goog-menuitem-highlight {","background-color: rgba(0,0,0,.1);","}",".blocklyWidgetDiv .goog-menuitem-checkbox,",".blocklyWidgetDiv .goog-menuitem-icon,",".blocklyDropDownDiv .goog-menuitem-checkbox,",".blocklyDropDownDiv .goog-menuitem-icon {", -"background-repeat: no-repeat;","height: 16px;","left: 6px;","position: absolute;","right: auto;","vertical-align: middle;","width: 16px;","}",".blocklyWidgetDiv .goog-menuitem-rtl .goog-menuitem-checkbox,",".blocklyWidgetDiv .goog-menuitem-rtl .goog-menuitem-icon,",".blocklyDropDownDiv .goog-menuitem-rtl .goog-menuitem-checkbox,",".blocklyDropDownDiv .goog-menuitem-rtl .goog-menuitem-icon {","left: auto;","right: 6px;","}",".blocklyWidgetDiv .goog-option-selected .goog-menuitem-checkbox,",".blocklyWidgetDiv .goog-option-selected .goog-menuitem-icon,", -".blocklyDropDownDiv .goog-option-selected .goog-menuitem-checkbox,",".blocklyDropDownDiv .goog-option-selected .goog-menuitem-icon {","position: static;","float: left;","margin-left: -24px;","}",".blocklyWidgetDiv .goog-menuitem-rtl .goog-menuitem-checkbox,",".blocklyWidgetDiv .goog-menuitem-rtl .goog-menuitem-icon,",".blocklyDropDownDiv .goog-menuitem-rtl .goog-menuitem-checkbox,",".blocklyDropDownDiv .goog-menuitem-rtl .goog-menuitem-icon {","float: right;","margin-right: -24px;","}",".blocklyComputeCanvas {", -"position: absolute;","width: 0;","height: 0;","}",".blocklyNoPointerEvents {","pointer-events: none;","}"];Blockly.utils.math={};Blockly.utils.math.toRadians=function(a){return a*Math.PI/180};Blockly.utils.math.toDegrees=function(a){return 180*a/Math.PI};Blockly.utils.math.clamp=function(a,b,c){if(ce.top?Blockly.DropDownDiv.getPositionAboveMetrics_(c,d,e,f):b+f.heightdocument.documentElement.clientTop?Blockly.DropDownDiv.getPositionAboveMetrics_(c, -d,e,f):Blockly.DropDownDiv.getPositionTopOfPageMetrics_(a,e,f)};Blockly.DropDownDiv.getPositionBelowMetrics_=function(a,b,c,d){a=Blockly.DropDownDiv.getPositionX(a,c.left,c.right,d.width);return{initialX:a.divX,initialY:b,finalX:a.divX,finalY:b+Blockly.DropDownDiv.PADDING_Y,arrowX:a.arrowX,arrowY:-(Blockly.DropDownDiv.ARROW_SIZE/2+Blockly.DropDownDiv.BORDER_SIZE),arrowAtTop:!0,arrowVisible:!0}}; -Blockly.DropDownDiv.getPositionAboveMetrics_=function(a,b,c,d){a=Blockly.DropDownDiv.getPositionX(a,c.left,c.right,d.width);return{initialX:a.divX,initialY:b-d.height,finalX:a.divX,finalY:b-d.height-Blockly.DropDownDiv.PADDING_Y,arrowX:a.arrowX,arrowY:d.height-2*Blockly.DropDownDiv.BORDER_SIZE-Blockly.DropDownDiv.ARROW_SIZE/2,arrowAtTop:!1,arrowVisible:!0}}; -Blockly.DropDownDiv.getPositionTopOfPageMetrics_=function(a,b,c){a=Blockly.DropDownDiv.getPositionX(a,b.left,b.right,c.width);return{initialX:a.divX,initialY:0,finalX:a.divX,finalY:0,arrowVisible:!1}};Blockly.DropDownDiv.getPositionX=function(a,b,c,d){var e=a;a=Blockly.utils.math.clamp(b,a-d/2,c-d);e-=Blockly.DropDownDiv.ARROW_SIZE/2;b=Blockly.DropDownDiv.ARROW_HORIZONTAL_PADDING;d=Blockly.utils.math.clamp(b,e-a,d-b-Blockly.DropDownDiv.ARROW_SIZE);return{arrowX:d,divX:a}}; -Blockly.DropDownDiv.isVisible=function(){return!!Blockly.DropDownDiv.owner_};Blockly.DropDownDiv.hideIfOwner=function(a,b){return Blockly.DropDownDiv.owner_===a?(b?Blockly.DropDownDiv.hideWithoutAnimation():Blockly.DropDownDiv.hide(),!0):!1}; -Blockly.DropDownDiv.hide=function(){var a=Blockly.DropDownDiv.DIV_;a.style.transform="translate(0, 0)";a.style.opacity=0;Blockly.DropDownDiv.animateOutTimer_=setTimeout(function(){Blockly.DropDownDiv.hideWithoutAnimation()},1E3*Blockly.DropDownDiv.ANIMATION_TIME);Blockly.DropDownDiv.onHide_&&(Blockly.DropDownDiv.onHide_(),Blockly.DropDownDiv.onHide_=null)}; -Blockly.DropDownDiv.hideWithoutAnimation=function(){if(Blockly.DropDownDiv.isVisible()){Blockly.DropDownDiv.animateOutTimer_&&clearTimeout(Blockly.DropDownDiv.animateOutTimer_);var a=Blockly.DropDownDiv.DIV_;a.style.transform="";a.style.left="";a.style.top="";a.style.opacity=0;a.style.display="none";a.style.backgroundColor="";a.style.borderColor="";Blockly.DropDownDiv.onHide_&&(Blockly.DropDownDiv.onHide_(),Blockly.DropDownDiv.onHide_=null);Blockly.DropDownDiv.clearContent();Blockly.DropDownDiv.owner_= -null;Blockly.DropDownDiv.rendererClassName_&&(Blockly.utils.dom.removeClass(a,Blockly.DropDownDiv.rendererClassName_),Blockly.DropDownDiv.rendererClassName_="");Blockly.DropDownDiv.themeClassName_&&(Blockly.utils.dom.removeClass(a,Blockly.DropDownDiv.themeClassName_),Blockly.DropDownDiv.themeClassName_="");Blockly.getMainWorkspace().markFocused()}}; -Blockly.DropDownDiv.positionInternal_=function(a,b,c,d){a=Blockly.DropDownDiv.getPositionMetrics_(a,b,c,d);a.arrowVisible?(Blockly.DropDownDiv.arrow_.style.display="",Blockly.DropDownDiv.arrow_.style.transform="translate("+a.arrowX+"px,"+a.arrowY+"px) rotate(45deg)",Blockly.DropDownDiv.arrow_.setAttribute("class",a.arrowAtTop?"blocklyDropDownArrow blocklyArrowTop":"blocklyDropDownArrow blocklyArrowBottom")):Blockly.DropDownDiv.arrow_.style.display="none";b=Math.floor(a.initialX);c=Math.floor(a.initialY); -d=Math.floor(a.finalX);var e=Math.floor(a.finalY),f=Blockly.DropDownDiv.DIV_;f.style.left=b+"px";f.style.top=c+"px";f.style.display="block";f.style.opacity=1;f.style.transform="translate("+(d-b)+"px,"+(e-c)+"px)";return a.arrowAtTop}; -Blockly.DropDownDiv.repositionForWindowResize=function(){if(Blockly.DropDownDiv.owner_){var a=Blockly.DropDownDiv.owner_,b=Blockly.DropDownDiv.owner_.getSourceBlock();a=Blockly.DropDownDiv.positionToField_?Blockly.DropDownDiv.getScaledBboxOfField_(a):Blockly.DropDownDiv.getScaledBboxOfBlock_(b);b=a.left+(a.right-a.left)/2;Blockly.DropDownDiv.positionInternal_(b,a.bottom,b,a.top)}else Blockly.DropDownDiv.hide()};Blockly.Grid=function(a,b){this.gridPattern_=a;this.spacing_=b.spacing;this.length_=b.length;this.line2_=(this.line1_=a.firstChild)&&this.line1_.nextSibling;this.snapToGrid_=b.snap};Blockly.Grid.prototype.scale_=1;Blockly.Grid.prototype.dispose=function(){this.gridPattern_=null};Blockly.Grid.prototype.shouldSnap=function(){return this.snapToGrid_};Blockly.Grid.prototype.getSpacing=function(){return this.spacing_};Blockly.Grid.prototype.getPatternId=function(){return this.gridPattern_.id}; -Blockly.Grid.prototype.update=function(a){this.scale_=a;var b=this.spacing_*a||100;this.gridPattern_.setAttribute("width",b);this.gridPattern_.setAttribute("height",b);b=Math.floor(this.spacing_/2)+.5;var c=b-this.length_/2,d=b+this.length_/2;b*=a;c*=a;d*=a;this.setLineAttributes_(this.line1_,a,c,d,b,b);this.setLineAttributes_(this.line2_,a,b,b,c,d)}; -Blockly.Grid.prototype.setLineAttributes_=function(a,b,c,d,e,f){a&&(a.setAttribute("stroke-width",b),a.setAttribute("x1",c),a.setAttribute("y1",e),a.setAttribute("x2",d),a.setAttribute("y2",f))};Blockly.Grid.prototype.moveTo=function(a,b){this.gridPattern_.setAttribute("x",a);this.gridPattern_.setAttribute("y",b);(Blockly.utils.userAgent.IE||Blockly.utils.userAgent.EDGE)&&this.update(this.scale_)}; -Blockly.Grid.createDom=function(a,b,c){a=Blockly.utils.dom.createSvgElement("pattern",{id:"blocklyGridPattern"+a,patternUnits:"userSpaceOnUse"},c);0b.indexOf(d))throw Error(d+" is not a valid modifier key.");};Blockly.user.keyMap.createSerializedKey=function(a,b){var c="",d=Blockly.utils.object.values(Blockly.user.keyMap.modifierKeys);Blockly.user.keyMap.checkModifiers_(b,d);for(var e=0,f;f=d[e];e++)-1");b.domToMutation(d)}Blockly.Events.fire(new Blockly.Events.Change(b,"mutation",null,c,a));break;default:console.warn("Unknown change type: "+this.element)}else console.warn("Can't change non-existent block: "+this.blockId)}; -Blockly.Events.Create=function(a){a&&(Blockly.Events.Create.superClass_.constructor.call(this,a),this.xml=a.workspace.rendered?Blockly.Xml.blockToDomWithXY(a):Blockly.Xml.blockToDom(a),this.ids=Blockly.Events.getDescendantIds(a))};Blockly.utils.object.inherits(Blockly.Events.Create,Blockly.Events.BlockBase);Blockly.Events.BlockCreate=Blockly.Events.Create;Blockly.Events.Create.prototype.type=Blockly.Events.CREATE; -Blockly.Events.Create.prototype.toJson=function(){var a=Blockly.Events.Create.superClass_.toJson.call(this);a.xml=Blockly.Xml.domToText(this.xml);a.ids=this.ids;return a};Blockly.Events.Create.prototype.fromJson=function(a){Blockly.Events.Create.superClass_.fromJson.call(this,a);this.xml=Blockly.Xml.textToDom(a.xml);this.ids=a.ids}; -Blockly.Events.Create.prototype.run=function(a){var b=this.getEventWorkspace_();if(a)a=Blockly.utils.xml.createElement("xml"),a.appendChild(this.xml),Blockly.Xml.domToWorkspace(a,b);else{a=0;for(var c;c=this.ids[a];a++){var d=b.getBlockById(c);d?d.dispose(!1):c==this.blockId&&console.warn("Can't uncreate non-existent block: "+c)}}}; -Blockly.Events.Delete=function(a){if(a){if(a.getParent())throw Error("Connected blocks cannot be deleted.");Blockly.Events.Delete.superClass_.constructor.call(this,a);this.oldXml=a.workspace.rendered?Blockly.Xml.blockToDomWithXY(a):Blockly.Xml.blockToDom(a);this.ids=Blockly.Events.getDescendantIds(a)}};Blockly.utils.object.inherits(Blockly.Events.Delete,Blockly.Events.BlockBase);Blockly.Events.BlockDelete=Blockly.Events.Delete;Blockly.Events.Delete.prototype.type=Blockly.Events.DELETE; -Blockly.Events.Delete.prototype.toJson=function(){var a=Blockly.Events.Delete.superClass_.toJson.call(this);a.ids=this.ids;return a};Blockly.Events.Delete.prototype.fromJson=function(a){Blockly.Events.Delete.superClass_.fromJson.call(this,a);this.ids=a.ids}; -Blockly.Events.Delete.prototype.run=function(a){var b=this.getEventWorkspace_();if(a){a=0;for(var c;c=this.ids[a];a++){var d=b.getBlockById(c);d?d.dispose(!1):c==this.blockId&&console.warn("Can't delete non-existent block: "+c)}}else a=Blockly.utils.xml.createElement("xml"),a.appendChild(this.oldXml),Blockly.Xml.domToWorkspace(a,b)}; -Blockly.Events.Move=function(a){a&&(Blockly.Events.Move.superClass_.constructor.call(this,a),a=this.currentLocation_(),this.oldParentId=a.parentId,this.oldInputName=a.inputName,this.oldCoordinate=a.coordinate)};Blockly.utils.object.inherits(Blockly.Events.Move,Blockly.Events.BlockBase);Blockly.Events.BlockMove=Blockly.Events.Move;Blockly.Events.Move.prototype.type=Blockly.Events.MOVE; -Blockly.Events.Move.prototype.toJson=function(){var a=Blockly.Events.Move.superClass_.toJson.call(this);this.newParentId&&(a.newParentId=this.newParentId);this.newInputName&&(a.newInputName=this.newInputName);this.newCoordinate&&(a.newCoordinate=Math.round(this.newCoordinate.x)+","+Math.round(this.newCoordinate.y));return a}; -Blockly.Events.Move.prototype.fromJson=function(a){Blockly.Events.Move.superClass_.fromJson.call(this,a);this.newParentId=a.newParentId;this.newInputName=a.newInputName;a.newCoordinate&&(a=a.newCoordinate.split(","),this.newCoordinate=new Blockly.utils.Coordinate(Number(a[0]),Number(a[1])))};Blockly.Events.Move.prototype.recordNew=function(){var a=this.currentLocation_();this.newParentId=a.parentId;this.newInputName=a.inputName;this.newCoordinate=a.coordinate}; -Blockly.Events.Move.prototype.currentLocation_=function(){var a=this.getEventWorkspace_().getBlockById(this.blockId),b={},c=a.getParent();if(c){if(b.parentId=c.id,a=c.getInputWithBlock(a))b.inputName=a.name}else b.coordinate=a.getRelativeToSurfaceXY();return b};Blockly.Events.Move.prototype.isNull=function(){return this.oldParentId==this.newParentId&&this.oldInputName==this.newInputName&&Blockly.utils.Coordinate.equals(this.oldCoordinate,this.newCoordinate)}; -Blockly.Events.Move.prototype.run=function(a){var b=this.getEventWorkspace_(),c=b.getBlockById(this.blockId);if(c){var d=a?this.newParentId:this.oldParentId,e=a?this.newInputName:this.oldInputName;a=a?this.newCoordinate:this.oldCoordinate;var f=null;if(d&&(f=b.getBlockById(d),!f)){console.warn("Can't connect to non-existent block: "+d);return}c.getParent()&&c.unplug();if(a)e=c.getRelativeToSurfaceXY(),c.moveBy(a.x-e.x,a.y-e.y);else{c=c.outputConnection||c.previousConnection;if(e){if(b=f.getInput(e))var g= -b.connection}else c.type==Blockly.PREVIOUS_STATEMENT&&(g=f.nextConnection);g?c.connect(g):console.warn("Can't connect to non-existent input: "+e)}}else console.warn("Can't move non-existent block: "+this.blockId)};Blockly.Events.FinishedLoading=function(a){this.workspaceId=a.id;this.group=Blockly.Events.getGroup();this.recordUndo=!1};Blockly.utils.object.inherits(Blockly.Events.FinishedLoading,Blockly.Events.Ui);Blockly.Events.FinishedLoading.prototype.type=Blockly.Events.FINISHED_LOADING;Blockly.Events.FinishedLoading.prototype.toJson=function(){var a={type:this.type};this.group&&(a.group=this.group);this.workspaceId&&(a.workspaceId=this.workspaceId);return a}; -Blockly.Events.FinishedLoading.prototype.fromJson=function(a){this.workspaceId=a.workspaceId;this.group=a.group};Blockly.Events.VarBase=function(a){Blockly.Events.VarBase.superClass_.constructor.call(this);this.varId=a.getId();this.workspaceId=a.workspace.id};Blockly.utils.object.inherits(Blockly.Events.VarBase,Blockly.Events.Abstract);Blockly.Events.VarBase.prototype.toJson=function(){var a=Blockly.Events.VarBase.superClass_.toJson.call(this);a.varId=this.varId;return a};Blockly.Events.VarBase.prototype.fromJson=function(a){Blockly.Events.VarBase.superClass_.toJson.call(this);this.varId=a.varId}; -Blockly.Events.VarCreate=function(a){a&&(Blockly.Events.VarCreate.superClass_.constructor.call(this,a),this.varType=a.type,this.varName=a.name)};Blockly.utils.object.inherits(Blockly.Events.VarCreate,Blockly.Events.VarBase);Blockly.Events.VarCreate.prototype.type=Blockly.Events.VAR_CREATE;Blockly.Events.VarCreate.prototype.toJson=function(){var a=Blockly.Events.VarCreate.superClass_.toJson.call(this);a.varType=this.varType;a.varName=this.varName;return a}; -Blockly.Events.VarCreate.prototype.fromJson=function(a){Blockly.Events.VarCreate.superClass_.fromJson.call(this,a);this.varType=a.varType;this.varName=a.varName};Blockly.Events.VarCreate.prototype.run=function(a){var b=this.getEventWorkspace_();a?b.createVariable(this.varName,this.varType,this.varId):b.deleteVariableById(this.varId)};Blockly.Events.VarDelete=function(a){a&&(Blockly.Events.VarDelete.superClass_.constructor.call(this,a),this.varType=a.type,this.varName=a.name)}; -Blockly.utils.object.inherits(Blockly.Events.VarDelete,Blockly.Events.VarBase);Blockly.Events.VarDelete.prototype.type=Blockly.Events.VAR_DELETE;Blockly.Events.VarDelete.prototype.toJson=function(){var a=Blockly.Events.VarDelete.superClass_.toJson.call(this);a.varType=this.varType;a.varName=this.varName;return a};Blockly.Events.VarDelete.prototype.fromJson=function(a){Blockly.Events.VarDelete.superClass_.fromJson.call(this,a);this.varType=a.varType;this.varName=a.varName}; -Blockly.Events.VarDelete.prototype.run=function(a){var b=this.getEventWorkspace_();a?b.deleteVariableById(this.varId):b.createVariable(this.varName,this.varType,this.varId)};Blockly.Events.VarRename=function(a,b){a&&(Blockly.Events.VarRename.superClass_.constructor.call(this,a),this.oldName=a.name,this.newName=b)};Blockly.utils.object.inherits(Blockly.Events.VarRename,Blockly.Events.VarBase);Blockly.Events.VarRename.prototype.type=Blockly.Events.VAR_RENAME; -Blockly.Events.VarRename.prototype.toJson=function(){var a=Blockly.Events.VarRename.superClass_.toJson.call(this);a.oldName=this.oldName;a.newName=this.newName;return a};Blockly.Events.VarRename.prototype.fromJson=function(a){Blockly.Events.VarRename.superClass_.fromJson.call(this,a);this.oldName=a.oldName;this.newName=a.newName};Blockly.Events.VarRename.prototype.run=function(a){var b=this.getEventWorkspace_();a?b.renameVariableById(this.varId,this.newName):b.renameVariableById(this.varId,this.oldName)};Blockly.Xml={};Blockly.Xml.workspaceToDom=function(a,b){var c=Blockly.utils.xml.createElement("xml"),d=Blockly.Xml.variablesToDom(Blockly.Variables.allUsedVarModels(a));d.hasChildNodes()&&c.appendChild(d);var e=a.getTopComments(!0);d=0;for(var f;f=e[d];d++)c.appendChild(f.toXmlWithXY(b));a=a.getTopBlocks(!0);for(d=0;e=a[d];d++)c.appendChild(Blockly.Xml.blockToDomWithXY(e,b));return c}; -Blockly.Xml.variablesToDom=function(a){for(var b=Blockly.utils.xml.createElement("variables"),c=0,d;d=a[c];c++){var e=Blockly.utils.xml.createElement("variable");e.appendChild(Blockly.utils.xml.createTextNode(d.name));d.type&&e.setAttribute("type",d.type);e.id=d.getId();b.appendChild(e)}return b}; -Blockly.Xml.blockToDomWithXY=function(a,b){var c;a.workspace.RTL&&(c=a.workspace.getWidth());b=Blockly.Xml.blockToDom(a,b);var d=a.getRelativeToSurfaceXY();b.setAttribute("x",Math.round(a.workspace.RTL?c-d.x:d.x));b.setAttribute("y",Math.round(d.y));return b};Blockly.Xml.fieldToDom_=function(a){if(a.isSerializable()){var b=Blockly.utils.xml.createElement("field");b.setAttribute("name",a.name||"");return a.toXml(b)}return null}; -Blockly.Xml.allFieldsToDom_=function(a,b){for(var c=0,d;d=a.inputList[c];c++)for(var e=0,f;f=d.fieldRow[e];e++)(f=Blockly.Xml.fieldToDom_(f))&&b.appendChild(f)}; -Blockly.Xml.blockToDom=function(a,b){var c=Blockly.utils.xml.createElement(a.isShadow()?"shadow":"block");c.setAttribute("type",a.type);b||c.setAttribute("id",a.id);if(a.mutationToDom){var d=a.mutationToDom();d&&(d.hasChildNodes()||d.hasAttributes())&&c.appendChild(d)}Blockly.Xml.allFieldsToDom_(a,c);if(d=a.getCommentText()){var e=a.commentModel.size,f=a.commentModel.pinned,g=Blockly.utils.xml.createElement("comment");g.appendChild(Blockly.utils.xml.createTextNode(d));g.setAttribute("pinned",f);g.setAttribute("h", -e.height);g.setAttribute("w",e.width);c.appendChild(g)}a.data&&(d=Blockly.utils.xml.createElement("data"),d.appendChild(Blockly.utils.xml.createTextNode(a.data)),c.appendChild(d));for(e=0;f=a.inputList[e];e++){var h;g=!0;if(f.type!=Blockly.DUMMY_INPUT){var k=f.connection.targetBlock();f.type==Blockly.INPUT_VALUE?h=Blockly.utils.xml.createElement("value"):f.type==Blockly.NEXT_STATEMENT&&(h=Blockly.utils.xml.createElement("statement"));d=f.connection.getShadowDom();!d||k&&k.isShadow()||h.appendChild(Blockly.Xml.cloneShadow_(d, -b));k&&(h.appendChild(Blockly.Xml.blockToDom(k,b)),g=!1);h.setAttribute("name",f.name);g||c.appendChild(h)}}void 0!=a.inputsInline&&a.inputsInline!=a.inputsInlineDefault&&c.setAttribute("inline",a.inputsInline);a.isCollapsed()&&c.setAttribute("collapsed",!0);a.isEnabled()||c.setAttribute("disabled",!0);a.isDeletable()||a.isShadow()||c.setAttribute("deletable",!1);a.isMovable()||a.isShadow()||c.setAttribute("movable",!1);a.isEditable()||c.setAttribute("editable",!1);if(e=a.getNextBlock())h=Blockly.utils.xml.createElement("next"), -h.appendChild(Blockly.Xml.blockToDom(e,b)),c.appendChild(h);d=a.nextConnection&&a.nextConnection.getShadowDom();!d||e&&e.isShadow()||h.appendChild(Blockly.Xml.cloneShadow_(d,b));return c}; -Blockly.Xml.cloneShadow_=function(a,b){for(var c=a=a.cloneNode(!0),d;c;)if(b&&"shadow"==c.nodeName&&c.removeAttribute("id"),c.firstChild)c=c.firstChild;else{for(;c&&!c.nextSibling;)d=c,c=c.parentNode,d.nodeType==Blockly.utils.dom.Node.TEXT_NODE&&""==d.data.trim()&&c.firstChild!=d&&Blockly.utils.dom.removeNode(d);c&&(d=c,c=c.nextSibling,d.nodeType==Blockly.utils.dom.Node.TEXT_NODE&&""==d.data.trim()&&Blockly.utils.dom.removeNode(d))}return a}; -Blockly.Xml.domToText=function(a){a=Blockly.utils.xml.domToText(a);var b=/(<[^/](?:[^>]*[^/])?>[^<]*)\n([^<]*<\/)/;do{var c=a;a=a.replace(b,"$1 $2")}while(a!=c);return a.replace(/<(\w+)([^<]*)\/>/g,"<$1$2>")}; -Blockly.Xml.domToPrettyText=function(a){a=Blockly.Xml.domToText(a).split("<");for(var b="",c=1;c"!=d.slice(-2)&&(b+=" ")}a=a.join("\n");a=a.replace(/(<(\w+)\b[^>]*>[^\n]*)\n *<\/\2>/g,"$1");return a.replace(/^\n/,"")}; -Blockly.Xml.textToDom=function(a){var b=Blockly.utils.xml.textToDomDocument(a);if(!b||!b.documentElement||b.getElementsByTagName("parsererror").length)throw Error("textToDom was unable to parse: "+a);return b.documentElement};Blockly.Xml.clearWorkspaceAndLoadFromXml=function(a,b){b.setResizesEnabled(!1);b.clear();a=Blockly.Xml.domToWorkspace(a,b);b.setResizesEnabled(!0);return a}; -Blockly.Xml.domToWorkspace=function(a,b){if(a instanceof Blockly.Workspace){var c=a;a=b;b=c;console.warn("Deprecated call to Blockly.Xml.domToWorkspace, swap the arguments.")}var d;b.RTL&&(d=b.getWidth());c=[];Blockly.utils.dom.startTextWidthCache();var e=Blockly.Events.getGroup();e||Blockly.Events.setGroup(!0);b.setResizesEnabled&&b.setResizesEnabled(!1);var f=!0;try{for(var g=0,h;h=a.childNodes[g];g++){var k=h.nodeName.toLowerCase(),l=h;if("block"==k||"shadow"==k&&!Blockly.Events.recordUndo){var m= -Blockly.Xml.domToBlock(l,b);c.push(m.id);var n=l.hasAttribute("x")?parseInt(l.getAttribute("x"),10):10,p=l.hasAttribute("y")?parseInt(l.getAttribute("y"),10):10;isNaN(n)||isNaN(p)||m.moveBy(b.RTL?d-n:n,p);f=!1}else{if("shadow"==k)throw TypeError("Shadow block cannot be a top-level block.");if("comment"==k)b.rendered?Blockly.WorkspaceCommentSvg?Blockly.WorkspaceCommentSvg.fromXml(l,b,d):console.warn("Missing require for Blockly.WorkspaceCommentSvg, ignoring workspace comment."):Blockly.WorkspaceComment? -Blockly.WorkspaceComment.fromXml(l,b):console.warn("Missing require for Blockly.WorkspaceComment, ignoring workspace comment.");else if("variables"==k){if(f)Blockly.Xml.domToVariables(l,b);else throw Error("'variables' tag must exist once before block and shadow tag elements in the workspace XML, but it was found in another location.");f=!1}}}}finally{e||Blockly.Events.setGroup(!1),Blockly.utils.dom.stopTextWidthCache()}b.setResizesEnabled&&b.setResizesEnabled(!0);Blockly.Events.fire(new Blockly.Events.FinishedLoading(b)); -return c};Blockly.Xml.appendDomToWorkspace=function(a,b){var c;b.hasOwnProperty("scale")&&(c=b.getBlocksBoundingBox());a=Blockly.Xml.domToWorkspace(a,b);if(c&&c.top!=c.bottom){var d=c.bottom;var e=b.RTL?c.right:c.left;var f=Infinity,g=-Infinity,h=Infinity;for(c=0;cg&&(g=k.x)}d=d-h+10;e=b.RTL?e-g:e-f;for(c=0;c document.");}else a=null;return a};Blockly.Touch={};Blockly.Touch.TOUCH_ENABLED="ontouchstart"in Blockly.utils.global||!!(Blockly.utils.global.document&&document.documentElement&&"ontouchstart"in document.documentElement)||!(!Blockly.utils.global.navigator||!Blockly.utils.global.navigator.maxTouchPoints&&!Blockly.utils.global.navigator.msMaxTouchPoints);Blockly.Touch.touchIdentifier_=null;Blockly.Touch.TOUCH_MAP={}; -Blockly.utils.global.PointerEvent?Blockly.Touch.TOUCH_MAP={mousedown:["pointerdown"],mouseenter:["pointerenter"],mouseleave:["pointerleave"],mousemove:["pointermove"],mouseout:["pointerout"],mouseover:["pointerover"],mouseup:["pointerup","pointercancel"],touchend:["pointerup"],touchcancel:["pointercancel"]}:Blockly.Touch.TOUCH_ENABLED&&(Blockly.Touch.TOUCH_MAP={mousedown:["touchstart"],mousemove:["touchmove"],mouseup:["touchend","touchcancel"]});Blockly.longPid_=0; -Blockly.longStart=function(a,b){Blockly.longStop_();a.changedTouches&&1!=a.changedTouches.length||(Blockly.longPid_=setTimeout(function(){a.changedTouches&&(a.button=2,a.clientX=a.changedTouches[0].clientX,a.clientY=a.changedTouches[0].clientY);b&&b.handleRightClick(a)},Blockly.LONGPRESS))};Blockly.longStop_=function(){Blockly.longPid_&&(clearTimeout(Blockly.longPid_),Blockly.longPid_=0)};Blockly.Touch.clearTouchIdentifier=function(){Blockly.Touch.touchIdentifier_=null}; -Blockly.Touch.shouldHandleEvent=function(a){return!Blockly.Touch.isMouseOrTouchEvent(a)||Blockly.Touch.checkTouchIdentifier(a)};Blockly.Touch.getTouchIdentifierFromEvent=function(a){return void 0!=a.pointerId?a.pointerId:a.changedTouches&&a.changedTouches[0]&&void 0!==a.changedTouches[0].identifier&&null!==a.changedTouches[0].identifier?a.changedTouches[0].identifier:"mouse"}; -Blockly.Touch.checkTouchIdentifier=function(a){var b=Blockly.Touch.getTouchIdentifierFromEvent(a);return void 0!==Blockly.Touch.touchIdentifier_&&null!==Blockly.Touch.touchIdentifier_?Blockly.Touch.touchIdentifier_==b:"mousedown"==a.type||"touchstart"==a.type||"pointerdown"==a.type?(Blockly.Touch.touchIdentifier_=b,!0):!1};Blockly.Touch.setClientFromTouch=function(a){if(Blockly.utils.string.startsWith(a.type,"touch")){var b=a.changedTouches[0];a.clientX=b.clientX;a.clientY=b.clientY}}; -Blockly.Touch.isMouseOrTouchEvent=function(a){return Blockly.utils.string.startsWith(a.type,"touch")||Blockly.utils.string.startsWith(a.type,"mouse")||Blockly.utils.string.startsWith(a.type,"pointer")};Blockly.Touch.isTouchEvent=function(a){return Blockly.utils.string.startsWith(a.type,"touch")||Blockly.utils.string.startsWith(a.type,"pointer")}; -Blockly.Touch.splitEventByTouches=function(a){var b=[];if(a.changedTouches)for(var c=0;c=c+this.handleLength_&&(d+= -e);this.setHandlePosition(this.constrainHandle_(d));this.onScroll_();a.stopPropagation();a.preventDefault()}}; -Blockly.Scrollbar.prototype.onMouseDownHandle_=function(a){this.workspace_.markFocused();this.cleanUp_();Blockly.utils.isRightButton(a)?a.stopPropagation():(this.startDragHandle=this.handlePosition_,this.workspace_.setupDragSurface(),this.startDragMouse_=this.horizontal_?a.clientX:a.clientY,Blockly.Scrollbar.onMouseUpWrapper_=Blockly.bindEventWithChecks_(document,"mouseup",this,this.onMouseUpHandle_),Blockly.Scrollbar.onMouseMoveWrapper_=Blockly.bindEventWithChecks_(document,"mousemove",this,this.onMouseMoveHandle_), -a.stopPropagation(),a.preventDefault())};Blockly.Scrollbar.prototype.onMouseMoveHandle_=function(a){this.setHandlePosition(this.constrainHandle_(this.startDragHandle+((this.horizontal_?a.clientX:a.clientY)-this.startDragMouse_)));this.onScroll_()};Blockly.Scrollbar.prototype.onMouseUpHandle_=function(){this.workspace_.resetDragSurface();Blockly.Touch.clearTouchIdentifier();this.cleanUp_()}; -Blockly.Scrollbar.prototype.cleanUp_=function(){Blockly.hideChaff(!0);Blockly.Scrollbar.onMouseUpWrapper_&&(Blockly.unbindEvent_(Blockly.Scrollbar.onMouseUpWrapper_),Blockly.Scrollbar.onMouseUpWrapper_=null);Blockly.Scrollbar.onMouseMoveWrapper_&&(Blockly.unbindEvent_(Blockly.Scrollbar.onMouseMoveWrapper_),Blockly.Scrollbar.onMouseMoveWrapper_=null)}; -Blockly.Scrollbar.prototype.constrainHandle_=function(a){return a=0>=a||isNaN(a)||this.scrollViewSize_Blockly.Tooltip.RADIUS_OK&&Blockly.Tooltip.hide()}else Blockly.Tooltip.poisonedElement_!=Blockly.Tooltip.element_&&(clearTimeout(Blockly.Tooltip.showPid_),Blockly.Tooltip.lastX_=a.pageX,Blockly.Tooltip.lastY_=a.pageY,Blockly.Tooltip.showPid_=setTimeout(Blockly.Tooltip.show_, -Blockly.Tooltip.HOVER_MS))};Blockly.Tooltip.dispose=function(){Blockly.Tooltip.element_=null;Blockly.Tooltip.poisonedElement_=null;Blockly.Tooltip.hide()};Blockly.Tooltip.hide=function(){Blockly.Tooltip.visible&&(Blockly.Tooltip.visible=!1,Blockly.Tooltip.DIV&&(Blockly.Tooltip.DIV.style.display="none"));Blockly.Tooltip.showPid_&&clearTimeout(Blockly.Tooltip.showPid_)};Blockly.Tooltip.block=function(){Blockly.Tooltip.hide();Blockly.Tooltip.blocked_=!0}; -Blockly.Tooltip.unblock=function(){Blockly.Tooltip.blocked_=!1}; -Blockly.Tooltip.show_=function(){if(!Blockly.Tooltip.blocked_&&(Blockly.Tooltip.poisonedElement_=Blockly.Tooltip.element_,Blockly.Tooltip.DIV)){Blockly.Tooltip.DIV.textContent="";for(var a=Blockly.Tooltip.element_.tooltip;"function"==typeof a;)a=a();a=Blockly.utils.string.wrap(a,Blockly.Tooltip.LIMIT);a=a.split("\n");for(var b=0;bc+window.scrollY&&(e-=Blockly.Tooltip.DIV.offsetHeight+2*Blockly.Tooltip.OFFSET_Y);a?d=Math.max(Blockly.Tooltip.MARGINS-window.scrollX, -d):d+Blockly.Tooltip.DIV.offsetWidth>b+window.scrollX-2*Blockly.Tooltip.MARGINS&&(d=b-Blockly.Tooltip.DIV.offsetWidth-2*Blockly.Tooltip.MARGINS);Blockly.Tooltip.DIV.style.top=e+"px";Blockly.Tooltip.DIV.style.left=d+"px"}};Blockly.WorkspaceDragSurfaceSvg=function(a){this.container_=a;this.createDom()};Blockly.WorkspaceDragSurfaceSvg.prototype.SVG_=null;Blockly.WorkspaceDragSurfaceSvg.prototype.dragGroup_=null;Blockly.WorkspaceDragSurfaceSvg.prototype.container_=null; -Blockly.WorkspaceDragSurfaceSvg.prototype.createDom=function(){this.SVG_||(this.SVG_=Blockly.utils.dom.createSvgElement("svg",{xmlns:Blockly.utils.dom.SVG_NS,"xmlns:html":Blockly.utils.dom.HTML_NS,"xmlns:xlink":Blockly.utils.dom.XLINK_NS,version:"1.1","class":"blocklyWsDragSurface blocklyOverflowVisible"},null),this.container_.appendChild(this.SVG_))}; -Blockly.WorkspaceDragSurfaceSvg.prototype.translateSurface=function(a,b){a=a.toFixed(0);b=b.toFixed(0);this.SVG_.style.display="block";Blockly.utils.dom.setCssTransform(this.SVG_,"translate3d("+a+"px, "+b+"px, 0px)")};Blockly.WorkspaceDragSurfaceSvg.prototype.getSurfaceTranslation=function(){return Blockly.utils.getRelativeXY(this.SVG_)}; -Blockly.WorkspaceDragSurfaceSvg.prototype.clearAndHide=function(a){if(!a)throw Error("Couldn't clear and hide the drag surface: missing new surface.");var b=this.SVG_.childNodes[0],c=this.SVG_.childNodes[1];if(!(b&&c&&Blockly.utils.dom.hasClass(b,"blocklyBlockCanvas")&&Blockly.utils.dom.hasClass(c,"blocklyBubbleCanvas")))throw Error("Couldn't clear and hide the drag surface. A node was missing.");null!=this.previousSibling_?Blockly.utils.dom.insertAfter(b,this.previousSibling_):a.insertBefore(b,a.firstChild); -Blockly.utils.dom.insertAfter(c,b);this.SVG_.style.display="none";if(this.SVG_.childNodes.length)throw Error("Drag surface was not cleared.");Blockly.utils.dom.setCssTransform(this.SVG_,"");this.previousSibling_=null}; -Blockly.WorkspaceDragSurfaceSvg.prototype.setContentsAndShow=function(a,b,c,d,e,f){if(this.SVG_.childNodes.length)throw Error("Already dragging a block.");this.previousSibling_=c;a.setAttribute("transform","translate(0, 0) scale("+f+")");b.setAttribute("transform","translate(0, 0) scale("+f+")");this.SVG_.setAttribute("width",d);this.SVG_.setAttribute("height",e);this.SVG_.appendChild(a);this.SVG_.appendChild(b);this.SVG_.style.display="block"};Blockly.ASTNode=function(a,b,c){if(!b)throw Error("Cannot create a node without a location.");this.type_=a;this.isConnection_=Blockly.ASTNode.isConnectionType_(a);this.location_=b;this.processParams_(c||null)};Blockly.ASTNode.types={FIELD:"field",BLOCK:"block",INPUT:"input",OUTPUT:"output",NEXT:"next",PREVIOUS:"previous",STACK:"stack",WORKSPACE:"workspace"};Blockly.ASTNode.NAVIGATE_ALL_FIELDS=!1;Blockly.ASTNode.DEFAULT_OFFSET_Y=-20;Blockly.ASTNode.isConnectionType_=function(a){switch(a){case Blockly.ASTNode.types.PREVIOUS:case Blockly.ASTNode.types.NEXT:case Blockly.ASTNode.types.INPUT:case Blockly.ASTNode.types.OUTPUT:return!0}return!1}; -Blockly.ASTNode.createFieldNode=function(a){return a?new Blockly.ASTNode(Blockly.ASTNode.types.FIELD,a):null}; -Blockly.ASTNode.createConnectionNode=function(a){return a?a.type==Blockly.INPUT_VALUE||a.type==Blockly.NEXT_STATEMENT&&a.getParentInput()?Blockly.ASTNode.createInputNode(a.getParentInput()):a.type==Blockly.NEXT_STATEMENT?new Blockly.ASTNode(Blockly.ASTNode.types.NEXT,a):a.type==Blockly.OUTPUT_VALUE?new Blockly.ASTNode(Blockly.ASTNode.types.OUTPUT,a):a.type==Blockly.PREVIOUS_STATEMENT?new Blockly.ASTNode(Blockly.ASTNode.types.PREVIOUS,a):null:null}; -Blockly.ASTNode.createInputNode=function(a){return a&&a.connection?new Blockly.ASTNode(Blockly.ASTNode.types.INPUT,a.connection):null};Blockly.ASTNode.createBlockNode=function(a){return a?new Blockly.ASTNode(Blockly.ASTNode.types.BLOCK,a):null};Blockly.ASTNode.createStackNode=function(a){return a?new Blockly.ASTNode(Blockly.ASTNode.types.STACK,a):null};Blockly.ASTNode.createWorkspaceNode=function(a,b){return b&&a?new Blockly.ASTNode(Blockly.ASTNode.types.WORKSPACE,a,{wsCoordinate:b}):null}; -Blockly.ASTNode.prototype.processParams_=function(a){a&&a.wsCoordinate&&(this.wsCoordinate_=a.wsCoordinate)};Blockly.ASTNode.prototype.getLocation=function(){return this.location_};Blockly.ASTNode.prototype.getType=function(){return this.type_};Blockly.ASTNode.prototype.getWsCoordinate=function(){return this.wsCoordinate_};Blockly.ASTNode.prototype.isConnection=function(){return this.isConnection_}; -Blockly.ASTNode.prototype.findNextForInput_=function(){var a=this.location_.getParentInput(),b=a.getSourceBlock();a=b.inputList.indexOf(a)+1;for(var c;c=b.inputList[a];a++){for(var d=c.fieldRow,e=0,f;f=d[e];e++)if(f.isClickable()||Blockly.ASTNode.NAVIGATE_ALL_FIELDS)return Blockly.ASTNode.createFieldNode(f);if(c.connection)return Blockly.ASTNode.createInputNode(c)}return null}; -Blockly.ASTNode.prototype.findNextForField_=function(){var a=this.location_,b=a.getParentInput(),c=a.getSourceBlock(),d=c.inputList.indexOf(b);for(a=b.fieldRow.indexOf(a)+1;b=c.inputList[d];d++){for(var e=b.fieldRow;ac)){var d=b.getSvgXY(a.getSvgRoot());a.outputConnection?(d.x+=(a.RTL?3:-3)*c,d.y+=13*c):a.previousConnection&&(d.x+=(a.RTL?-23:23)*c,d.y+=3*c);a=Blockly.utils.dom.createSvgElement("circle",{cx:d.x,cy:d.y,r:0,fill:"none",stroke:"#888","stroke-width":10},b.getParentSvg());Blockly.blockAnimations.connectionUiStep_(a,new Date,c)}}; -Blockly.blockAnimations.connectionUiStep_=function(a,b,c){var d=(new Date-b)/150;1a.workspace.scale)){var b=a.getHeightWidth().height;b=Math.atan(10/b)/Math.PI*180;a.RTL||(b*=-1);Blockly.blockAnimations.disconnectUiStep_(a.getSvgRoot(),b,new Date)}}; -Blockly.blockAnimations.disconnectUiStep_=function(a,b,c){var d=(new Date-c)/200;1b-Blockly.CURRENT_CONNECTION_PREFERENCE)}if(this.localConnection_||this.closestConnection_)console.error("Only one of localConnection_ and closestConnection_ was set."); -else return!0}else return!(!this.localConnection_||!this.closestConnection_);console.error("Returning true from shouldUpdatePreviews, but it's not clear why.");return!0};Blockly.InsertionMarkerManager.prototype.getCandidate_=function(a){for(var b=this.getStartRadius_(),c=null,d=null,e=0;ethis.remainingCapacityOfType(c))return!1;b+=a[c]}return b>this.remainingCapacity()?!1:!0};Blockly.Workspace.prototype.hasBlockLimits=function(){return Infinity!=this.options.maxBlocks||!!this.options.maxInstances}; -Blockly.Workspace.prototype.undo=function(a){var b=a?this.redoStack_:this.undoStack_,c=a?this.undoStack_:this.redoStack_,d=b.pop();if(d){for(var e=[d];b.length&&d.group&&d.group==b[b.length-1].group;)e.push(b.pop());for(b=0;d=e[b];b++)c.push(d);e=Blockly.Events.filter(e,a);Blockly.Events.recordUndo=!1;try{for(b=0;d=e[b];b++)d.run(a)}finally{Blockly.Events.recordUndo=!0}}};Blockly.Workspace.prototype.clearUndo=function(){this.undoStack_.length=0;this.redoStack_.length=0;Blockly.Events.clearPendingUndo()}; -Blockly.Workspace.prototype.addChangeListener=function(a){this.listeners_.push(a);return a};Blockly.Workspace.prototype.removeChangeListener=function(a){Blockly.utils.arrayRemove(this.listeners_,a)};Blockly.Workspace.prototype.fireChangeListener=function(a){if(a.recordUndo)for(this.undoStack_.push(a),this.redoStack_.length=0;this.undoStack_.length>this.MAX_UNDO&&0<=this.MAX_UNDO;)this.undoStack_.shift();for(var b=0,c;c=this.listeners_[b];b++)c(a)}; -Blockly.Workspace.prototype.getBlockById=function(a){return this.blockDB_[a]||null};Blockly.Workspace.prototype.setBlockById=function(a,b){this.blockDB_[a]=b};Blockly.Workspace.prototype.removeBlockById=function(a){delete this.blockDB_[a]};Blockly.Workspace.prototype.getCommentById=function(a){return this.commentDB_[a]||null};Blockly.Workspace.prototype.allInputsFilled=function(a){for(var b=this.getTopBlocks(!1),c=0,d;d=b[c];c++)if(!d.allInputsFilled(a))return!1;return!0}; -Blockly.Workspace.prototype.getPotentialVariableMap=function(){return this.potentialVariableMap_};Blockly.Workspace.prototype.createPotentialVariableMap=function(){this.potentialVariableMap_=new Blockly.VariableMap(this)};Blockly.Workspace.prototype.getVariableMap=function(){return this.variableMap_};Blockly.Workspace.prototype.setVariableMap=function(a){this.variableMap_=a};Blockly.Workspace.WorkspaceDB_=Object.create(null); -Blockly.Workspace.getById=function(a){return Blockly.Workspace.WorkspaceDB_[a]||null};Blockly.Workspace.getAll=function(){var a=[],b;for(b in Blockly.Workspace.WorkspaceDB_)a.push(Blockly.Workspace.WorkspaceDB_[b]);return a};Blockly.Bubble=function(a,b,c,d,e,f){this.workspace_=a;this.content_=b;this.shape_=c;this.onMouseDownResizeWrapper_=this.onMouseDownBubbleWrapper_=this.moveCallback_=this.resizeCallback_=null;this.disposed=!1;c=Blockly.Bubble.ARROW_ANGLE;this.workspace_.RTL&&(c=-c);this.arrow_radians_=Blockly.utils.math.toRadians(c);a.getBubbleCanvas().appendChild(this.createDom_(b,!(!e||!f)));this.setAnchorLocation(d);e&&f||(a=this.content_.getBBox(),e=a.width+2*Blockly.Bubble.BORDER_WIDTH,f=a.height+2*Blockly.Bubble.BORDER_WIDTH); -this.setBubbleSize(e,f);this.positionBubble_();this.renderArrow_();this.rendered_=!0};Blockly.Bubble.BORDER_WIDTH=6;Blockly.Bubble.ARROW_THICKNESS=5;Blockly.Bubble.ARROW_ANGLE=20;Blockly.Bubble.ARROW_BEND=4;Blockly.Bubble.ANCHOR_RADIUS=8;Blockly.Bubble.onMouseUpWrapper_=null;Blockly.Bubble.onMouseMoveWrapper_=null; -Blockly.Bubble.unbindDragEvents_=function(){Blockly.Bubble.onMouseUpWrapper_&&(Blockly.unbindEvent_(Blockly.Bubble.onMouseUpWrapper_),Blockly.Bubble.onMouseUpWrapper_=null);Blockly.Bubble.onMouseMoveWrapper_&&(Blockly.unbindEvent_(Blockly.Bubble.onMouseMoveWrapper_),Blockly.Bubble.onMouseMoveWrapper_=null)};Blockly.Bubble.bubbleMouseUp_=function(a){Blockly.Touch.clearTouchIdentifier();Blockly.Bubble.unbindDragEvents_()};Blockly.Bubble.prototype.rendered_=!1;Blockly.Bubble.prototype.anchorXY_=null; -Blockly.Bubble.prototype.relativeLeft_=0;Blockly.Bubble.prototype.relativeTop_=0;Blockly.Bubble.prototype.width_=0;Blockly.Bubble.prototype.height_=0;Blockly.Bubble.prototype.autoLayout_=!0; -Blockly.Bubble.prototype.createDom_=function(a,b){this.bubbleGroup_=Blockly.utils.dom.createSvgElement("g",{},null);var c={filter:"url(#"+this.workspace_.getRenderer().getConstants().embossFilterId+")"};Blockly.utils.userAgent.JAVA_FX&&(c={});c=Blockly.utils.dom.createSvgElement("g",c,this.bubbleGroup_);this.bubbleArrow_=Blockly.utils.dom.createSvgElement("path",{},c);this.bubbleBack_=Blockly.utils.dom.createSvgElement("rect",{"class":"blocklyDraggable",x:0,y:0,rx:Blockly.Bubble.BORDER_WIDTH,ry:Blockly.Bubble.BORDER_WIDTH}, -c);b?(this.resizeGroup_=Blockly.utils.dom.createSvgElement("g",{"class":this.workspace_.RTL?"blocklyResizeSW":"blocklyResizeSE"},this.bubbleGroup_),b=2*Blockly.Bubble.BORDER_WIDTH,Blockly.utils.dom.createSvgElement("polygon",{points:"0,x x,x x,0".replace(/x/g,b.toString())},this.resizeGroup_),Blockly.utils.dom.createSvgElement("line",{"class":"blocklyResizeLine",x1:b/3,y1:b-1,x2:b-1,y2:b/3},this.resizeGroup_),Blockly.utils.dom.createSvgElement("line",{"class":"blocklyResizeLine",x1:2*b/3,y1:b-1,x2:b- -1,y2:2*b/3},this.resizeGroup_)):this.resizeGroup_=null;this.workspace_.options.readOnly||(this.onMouseDownBubbleWrapper_=Blockly.bindEventWithChecks_(this.bubbleBack_,"mousedown",this,this.bubbleMouseDown_),this.resizeGroup_&&(this.onMouseDownResizeWrapper_=Blockly.bindEventWithChecks_(this.resizeGroup_,"mousedown",this,this.resizeMouseDown_)));this.bubbleGroup_.appendChild(a);return this.bubbleGroup_};Blockly.Bubble.prototype.getSvgRoot=function(){return this.bubbleGroup_}; -Blockly.Bubble.prototype.setSvgId=function(a){this.bubbleGroup_.dataset&&(this.bubbleGroup_.dataset.blockId=a)};Blockly.Bubble.prototype.bubbleMouseDown_=function(a){var b=this.workspace_.getGesture(a);b&&b.handleBubbleStart(a,this)};Blockly.Bubble.prototype.showContextMenu=function(a){};Blockly.Bubble.prototype.isDeletable=function(){return!1}; -Blockly.Bubble.prototype.resizeMouseDown_=function(a){this.promote();Blockly.Bubble.unbindDragEvents_();Blockly.utils.isRightButton(a)||(this.workspace_.startDrag(a,new Blockly.utils.Coordinate(this.workspace_.RTL?-this.width_:this.width_,this.height_)),Blockly.Bubble.onMouseUpWrapper_=Blockly.bindEventWithChecks_(document,"mouseup",this,Blockly.Bubble.bubbleMouseUp_),Blockly.Bubble.onMouseMoveWrapper_=Blockly.bindEventWithChecks_(document,"mousemove",this,this.resizeMouseMove_),Blockly.hideChaff()); -a.stopPropagation()};Blockly.Bubble.prototype.resizeMouseMove_=function(a){this.autoLayout_=!1;a=this.workspace_.moveDrag(a);this.setBubbleSize(this.workspace_.RTL?-a.x:a.x,a.y);this.workspace_.RTL&&this.positionBubble_()};Blockly.Bubble.prototype.registerResizeEvent=function(a){this.resizeCallback_=a};Blockly.Bubble.prototype.registerMoveEvent=function(a){this.moveCallback_=a}; -Blockly.Bubble.prototype.promote=function(){var a=this.bubbleGroup_.parentNode;return a.lastChild!==this.bubbleGroup_?(a.appendChild(this.bubbleGroup_),!0):!1};Blockly.Bubble.prototype.setAnchorLocation=function(a){this.anchorXY_=a;this.rendered_&&this.positionBubble_()}; -Blockly.Bubble.prototype.layoutBubble_=function(){var a=this.workspace_.getMetrics();a.viewLeft/=this.workspace_.scale;a.viewWidth/=this.workspace_.scale;a.viewTop/=this.workspace_.scale;a.viewHeight/=this.workspace_.scale;var b=this.getOptimalRelativeLeft_(a),c=this.getOptimalRelativeTop_(a),d=this.shape_.getBBox(),e={x:b,y:-this.height_-this.workspace_.getRenderer().getConstants().MIN_BLOCK_HEIGHT},f={x:-this.width_-30,y:c};c={x:d.width,y:c};var g={x:b,y:d.height};b=d.widtha.viewWidth)return b;if(this.workspace_.RTL)var c=this.anchorXY_.x-b,d=c-this.width_,e=a.viewLeft+a.viewWidth,f=a.viewLeft+Blockly.Scrollbar.scrollbarThickness/this.workspace_.scale;else d=b+this.anchorXY_.x,c=d+this.width_,f=a.viewLeft,e=a.viewLeft+a.viewWidth-Blockly.Scrollbar.scrollbarThickness/this.workspace_.scale;this.workspace_.RTL?de&&(b=-(e-this.anchorXY_.x)): -de&&(b=e-this.anchorXY_.x-this.width_);return b};Blockly.Bubble.prototype.getOptimalRelativeTop_=function(a){var b=-this.height_/4;if(this.height_>a.viewHeight)return b;var c=this.anchorXY_.y+b,d=c+this.height_,e=a.viewTop;a=a.viewTop+a.viewHeight-Blockly.Scrollbar.scrollbarThickness/this.workspace_.scale;var f=this.anchorXY_.y;ca&&(b=a-f-this.height_);return b}; -Blockly.Bubble.prototype.positionBubble_=function(){var a=this.anchorXY_.x;a=this.workspace_.RTL?a-(this.relativeLeft_+this.width_):a+this.relativeLeft_;this.moveTo(a,this.relativeTop_+this.anchorXY_.y)};Blockly.Bubble.prototype.moveTo=function(a,b){this.bubbleGroup_.setAttribute("transform","translate("+a+","+b+")")};Blockly.Bubble.prototype.setDragging=function(a){!a&&this.moveCallback_&&this.moveCallback_()}; -Blockly.Bubble.prototype.getBubbleSize=function(){return new Blockly.utils.Size(this.width_,this.height_)}; -Blockly.Bubble.prototype.setBubbleSize=function(a,b){var c=2*Blockly.Bubble.BORDER_WIDTH;a=Math.max(a,c+45);b=Math.max(b,c+20);this.width_=a;this.height_=b;this.bubbleBack_.setAttribute("width",a);this.bubbleBack_.setAttribute("height",b);this.resizeGroup_&&(this.workspace_.RTL?this.resizeGroup_.setAttribute("transform","translate("+2*Blockly.Bubble.BORDER_WIDTH+","+(b-c)+") scale(-1 1)"):this.resizeGroup_.setAttribute("transform","translate("+(a-c)+","+(b-c)+")"));this.autoLayout_&&this.layoutBubble_(); -this.positionBubble_();this.renderArrow_();this.resizeCallback_&&this.resizeCallback_()}; -Blockly.Bubble.prototype.renderArrow_=function(){var a=[],b=this.width_/2,c=this.height_/2,d=-this.relativeLeft_,e=-this.relativeTop_;if(b==d&&c==e)a.push("M "+b+","+c);else{e-=c;d-=b;this.workspace_.RTL&&(d*=-1);var f=Math.sqrt(e*e+d*d),g=Math.acos(d/f);0>e&&(g=2*Math.PI-g);var h=g+Math.PI/2;h>2*Math.PI&&(h-=2*Math.PI);var k=Math.sin(h),l=Math.cos(h),m=this.getBubbleSize();h=(m.width+m.height)/Blockly.Bubble.ARROW_THICKNESS;h=Math.min(h,m.width,m.height)/4;m=1-Blockly.Bubble.ANCHOR_RADIUS/f;d=b+ -m*d;e=c+m*e;m=b+h*l;var n=c+h*k;b-=h*l;c-=h*k;k=g+this.arrow_radians_;k>2*Math.PI&&(k-=2*Math.PI);g=Math.sin(k)*f/Blockly.Bubble.ARROW_BEND;f=Math.cos(k)*f/Blockly.Bubble.ARROW_BEND;a.push("M"+m+","+n);a.push("C"+(m+f)+","+(n+g)+" "+d+","+e+" "+d+","+e);a.push("C"+d+","+e+" "+(b+f)+","+(c+g)+" "+b+","+c)}a.push("z");this.bubbleArrow_.setAttribute("d",a.join(" "))};Blockly.Bubble.prototype.setColour=function(a){this.bubbleBack_.setAttribute("fill",a);this.bubbleArrow_.setAttribute("fill",a)}; -Blockly.Bubble.prototype.dispose=function(){this.onMouseDownBubbleWrapper_&&Blockly.unbindEvent_(this.onMouseDownBubbleWrapper_);this.onMouseDownResizeWrapper_&&Blockly.unbindEvent_(this.onMouseDownResizeWrapper_);Blockly.Bubble.unbindDragEvents_();Blockly.utils.dom.removeNode(this.bubbleGroup_);this.disposed=!0}; -Blockly.Bubble.prototype.moveDuringDrag=function(a,b){a?a.translateSurface(b.x,b.y):this.moveTo(b.x,b.y);this.relativeLeft_=this.workspace_.RTL?this.anchorXY_.x-b.x-this.width_:b.x-this.anchorXY_.x;this.relativeTop_=b.y-this.anchorXY_.y;this.renderArrow_()};Blockly.Bubble.prototype.getRelativeToSurfaceXY=function(){return new Blockly.utils.Coordinate(this.workspace_.RTL?-this.relativeLeft_+this.anchorXY_.x-this.width_:this.anchorXY_.x+this.relativeLeft_,this.anchorXY_.y+this.relativeTop_)}; -Blockly.Bubble.prototype.setAutoLayout=function(a){this.autoLayout_=a};Blockly.Events.CommentBase=function(a){this.commentId=a.id;this.workspaceId=a.workspace.id;this.group=Blockly.Events.getGroup();this.recordUndo=Blockly.Events.recordUndo};Blockly.utils.object.inherits(Blockly.Events.CommentBase,Blockly.Events.Abstract);Blockly.Events.CommentBase.prototype.toJson=function(){var a=Blockly.Events.CommentBase.superClass_.toJson.call(this);this.commentId&&(a.commentId=this.commentId);return a}; -Blockly.Events.CommentBase.prototype.fromJson=function(a){Blockly.Events.CommentBase.superClass_.fromJson.call(this,a);this.commentId=a.commentId};Blockly.Events.CommentChange=function(a,b,c){a&&(Blockly.Events.CommentChange.superClass_.constructor.call(this,a),this.oldContents_=b,this.newContents_=c)};Blockly.utils.object.inherits(Blockly.Events.CommentChange,Blockly.Events.CommentBase);Blockly.Events.CommentChange.prototype.type=Blockly.Events.COMMENT_CHANGE; -Blockly.Events.CommentChange.prototype.toJson=function(){var a=Blockly.Events.CommentChange.superClass_.toJson.call(this);a.newContents=this.newContents_;return a};Blockly.Events.CommentChange.prototype.fromJson=function(a){Blockly.Events.CommentChange.superClass_.fromJson.call(this,a);this.newContents_=a.newValue};Blockly.Events.CommentChange.prototype.isNull=function(){return this.oldContents_==this.newContents_}; -Blockly.Events.CommentChange.prototype.run=function(a){var b=this.getEventWorkspace_().getCommentById(this.commentId);b?b.setContent(a?this.newContents_:this.oldContents_):console.warn("Can't change non-existent comment: "+this.commentId)};Blockly.Events.CommentCreate=function(a){a&&(Blockly.Events.CommentCreate.superClass_.constructor.call(this,a),this.xml=a.toXmlWithXY())};Blockly.utils.object.inherits(Blockly.Events.CommentCreate,Blockly.Events.CommentBase); -Blockly.Events.CommentCreate.prototype.type=Blockly.Events.COMMENT_CREATE;Blockly.Events.CommentCreate.prototype.toJson=function(){var a=Blockly.Events.CommentCreate.superClass_.toJson.call(this);a.xml=Blockly.Xml.domToText(this.xml);return a};Blockly.Events.CommentCreate.prototype.fromJson=function(a){Blockly.Events.CommentCreate.superClass_.fromJson.call(this,a);this.xml=Blockly.Xml.textToDom(a.xml)}; -Blockly.Events.CommentCreate.prototype.run=function(a){Blockly.Events.CommentCreateDeleteHelper(this,a)};Blockly.Events.CommentCreateDeleteHelper=function(a,b){var c=a.getEventWorkspace_();b?(b=Blockly.utils.xml.createElement("xml"),b.appendChild(a.xml),Blockly.Xml.domToWorkspace(b,c)):(c=c.getCommentById(a.commentId))?c.dispose(!1,!1):console.warn("Can't uncreate non-existent comment: "+a.commentId)}; -Blockly.Events.CommentDelete=function(a){a&&(Blockly.Events.CommentDelete.superClass_.constructor.call(this,a),this.xml=a.toXmlWithXY())};Blockly.utils.object.inherits(Blockly.Events.CommentDelete,Blockly.Events.CommentBase);Blockly.Events.CommentDelete.prototype.type=Blockly.Events.COMMENT_DELETE;Blockly.Events.CommentDelete.prototype.toJson=function(){return Blockly.Events.CommentDelete.superClass_.toJson.call(this)}; -Blockly.Events.CommentDelete.prototype.fromJson=function(a){Blockly.Events.CommentDelete.superClass_.fromJson.call(this,a)};Blockly.Events.CommentDelete.prototype.run=function(a){Blockly.Events.CommentCreateDeleteHelper(this,!a)};Blockly.Events.CommentMove=function(a){a&&(Blockly.Events.CommentMove.superClass_.constructor.call(this,a),this.comment_=a,this.oldCoordinate_=a.getXY(),this.newCoordinate_=null)};Blockly.utils.object.inherits(Blockly.Events.CommentMove,Blockly.Events.CommentBase); -Blockly.Events.CommentMove.prototype.recordNew=function(){if(!this.comment_)throw Error("Tried to record the new position of a comment on the same event twice.");this.newCoordinate_=this.comment_.getXY();this.comment_=null};Blockly.Events.CommentMove.prototype.type=Blockly.Events.COMMENT_MOVE;Blockly.Events.CommentMove.prototype.setOldCoordinate=function(a){this.oldCoordinate_=a}; -Blockly.Events.CommentMove.prototype.toJson=function(){var a=Blockly.Events.CommentMove.superClass_.toJson.call(this);this.newCoordinate_&&(a.newCoordinate=Math.round(this.newCoordinate_.x)+","+Math.round(this.newCoordinate_.y));return a};Blockly.Events.CommentMove.prototype.fromJson=function(a){Blockly.Events.CommentMove.superClass_.fromJson.call(this,a);a.newCoordinate&&(a=a.newCoordinate.split(","),this.newCoordinate_=new Blockly.utils.Coordinate(Number(a[0]),Number(a[1])))}; -Blockly.Events.CommentMove.prototype.isNull=function(){return Blockly.utils.Coordinate.equals(this.oldCoordinate_,this.newCoordinate_)};Blockly.Events.CommentMove.prototype.run=function(a){var b=this.getEventWorkspace_().getCommentById(this.commentId);if(b){a=a?this.newCoordinate_:this.oldCoordinate_;var c=b.getXY();b.moveBy(a.x-c.x,a.y-c.y)}else console.warn("Can't move non-existent comment: "+this.commentId)};Blockly.BubbleDragger=function(a,b){this.draggingBubble_=a;this.workspace_=b;this.deleteArea_=null;this.wouldDeleteBubble_=!1;this.startXY_=this.draggingBubble_.getRelativeToSurfaceXY();this.dragSurface_=Blockly.utils.is3dSupported()&&b.getBlockDragSurface()?b.getBlockDragSurface():null};Blockly.BubbleDragger.prototype.dispose=function(){this.dragSurface_=this.workspace_=this.draggingBubble_=null}; -Blockly.BubbleDragger.prototype.startBubbleDrag=function(){Blockly.Events.getGroup()||Blockly.Events.setGroup(!0);this.workspace_.setResizesEnabled(!1);this.draggingBubble_.setAutoLayout(!1);this.dragSurface_&&this.moveToDragSurface_();this.draggingBubble_.setDragging&&this.draggingBubble_.setDragging(!0);var a=this.workspace_.getToolbox();if(a){var b=this.draggingBubble_.isDeletable()?"blocklyToolboxDelete":"blocklyToolboxGrab";a.addStyle(b)}}; -Blockly.BubbleDragger.prototype.dragBubble=function(a,b){b=this.pixelsToWorkspaceUnits_(b);b=Blockly.utils.Coordinate.sum(this.startXY_,b);this.draggingBubble_.moveDuringDrag(this.dragSurface_,b);this.draggingBubble_.isDeletable()&&(this.deleteArea_=this.workspace_.isDeleteArea(a),this.updateCursorDuringBubbleDrag_())}; -Blockly.BubbleDragger.prototype.maybeDeleteBubble_=function(){var a=this.workspace_.trashcan;this.wouldDeleteBubble_?(a&&setTimeout(a.close.bind(a),100),this.fireMoveEvent_(),this.draggingBubble_.dispose(!1,!0)):a&&a.close();return this.wouldDeleteBubble_}; -Blockly.BubbleDragger.prototype.updateCursorDuringBubbleDrag_=function(){this.wouldDeleteBubble_=this.deleteArea_!=Blockly.DELETE_AREA_NONE;var a=this.workspace_.trashcan;this.wouldDeleteBubble_?(this.draggingBubble_.setDeleteStyle(!0),this.deleteArea_==Blockly.DELETE_AREA_TRASH&&a&&a.setOpen(!0)):(this.draggingBubble_.setDeleteStyle(!1),a&&a.setOpen(!1))}; -Blockly.BubbleDragger.prototype.endBubbleDrag=function(a,b){this.dragBubble(a,b);a=this.pixelsToWorkspaceUnits_(b);a=Blockly.utils.Coordinate.sum(this.startXY_,a);this.draggingBubble_.moveTo(a.x,a.y);this.maybeDeleteBubble_()||(this.dragSurface_&&this.dragSurface_.clearAndHide(this.workspace_.getBubbleCanvas()),this.draggingBubble_.setDragging&&this.draggingBubble_.setDragging(!1),this.fireMoveEvent_());this.workspace_.setResizesEnabled(!0);this.workspace_.getToolbox()&&(a=this.draggingBubble_.isDeletable()? -"blocklyToolboxDelete":"blocklyToolboxGrab",this.workspace_.getToolbox().removeStyle(a));Blockly.Events.setGroup(!1)};Blockly.BubbleDragger.prototype.fireMoveEvent_=function(){if(this.draggingBubble_.isComment){var a=new Blockly.Events.CommentMove(this.draggingBubble_);a.setOldCoordinate(this.startXY_);a.recordNew();Blockly.Events.fire(a)}}; -Blockly.BubbleDragger.prototype.pixelsToWorkspaceUnits_=function(a){a=new Blockly.utils.Coordinate(a.x/this.workspace_.scale,a.y/this.workspace_.scale);this.workspace_.isMutator&&a.scale(1/this.workspace_.options.parentWorkspace.scale);return a};Blockly.BubbleDragger.prototype.moveToDragSurface_=function(){this.draggingBubble_.moveTo(0,0);this.dragSurface_.translateSurface(this.startXY_.x,this.startXY_.y);this.dragSurface_.setBlocksAndShow(this.draggingBubble_.getSvgRoot())};Blockly.WorkspaceDragger=function(a){this.workspace_=a;this.startScrollXY_=new Blockly.utils.Coordinate(a.scrollX,a.scrollY)};Blockly.WorkspaceDragger.prototype.dispose=function(){this.workspace_=null};Blockly.WorkspaceDragger.prototype.startDrag=function(){Blockly.selected&&Blockly.selected.unselect();this.workspace_.setupDragSurface()};Blockly.WorkspaceDragger.prototype.endDrag=function(a){this.drag(a);this.workspace_.resetDragSurface()}; -Blockly.WorkspaceDragger.prototype.drag=function(a){a=Blockly.utils.Coordinate.sum(this.startScrollXY_,a);this.workspace_.scroll(a.x,a.y)};Blockly.FlyoutDragger=function(a){Blockly.FlyoutDragger.superClass_.constructor.call(this,a.getWorkspace());this.scrollbar_=a.scrollbar_;this.horizontalLayout_=a.horizontalLayout_};Blockly.utils.object.inherits(Blockly.FlyoutDragger,Blockly.WorkspaceDragger);Blockly.FlyoutDragger.prototype.drag=function(a){a=Blockly.utils.Coordinate.sum(this.startScrollXY_,a);this.horizontalLayout_?this.scrollbar_.set(-a.x):this.scrollbar_.set(-a.y)};Blockly.Action=function(a,b){this.name=a;this.desc=b};Blockly.navigation={};Blockly.navigation.loggingCallback=null;Blockly.navigation.STATE_FLYOUT=1;Blockly.navigation.STATE_WS=2;Blockly.navigation.STATE_TOOLBOX=3;Blockly.navigation.WS_MOVE_DISTANCE=40;Blockly.navigation.currentState_=Blockly.navigation.STATE_WS; -Blockly.navigation.actionNames={PREVIOUS:"previous",NEXT:"next",IN:"in",OUT:"out",INSERT:"insert",MARK:"mark",DISCONNECT:"disconnect",TOOLBOX:"toolbox",EXIT:"exit",TOGGLE_KEYBOARD_NAV:"toggle_keyboard_nav",MOVE_WS_CURSOR_UP:"move workspace cursor up",MOVE_WS_CURSOR_DOWN:"move workspace cursor down",MOVE_WS_CURSOR_LEFT:"move workspace cursor left",MOVE_WS_CURSOR_RIGHT:"move workspace cursor right"};Blockly.navigation.MARKER_NAME="local_marker_1";Blockly.navigation.getMarker=function(){return Blockly.getMainWorkspace().getMarker(Blockly.navigation.MARKER_NAME)}; -Blockly.navigation.focusToolbox_=function(){var a=Blockly.getMainWorkspace().getToolbox();a&&(Blockly.navigation.currentState_=Blockly.navigation.STATE_TOOLBOX,Blockly.navigation.resetFlyout_(!1),Blockly.navigation.getMarker().getCurNode()||Blockly.navigation.markAtCursor_(),a.selectFirstCategory())}; -Blockly.navigation.focusFlyout_=function(){Blockly.navigation.currentState_=Blockly.navigation.STATE_FLYOUT;var a=Blockly.getMainWorkspace();var b=a.getToolbox();a=b?b.flyout_:a.getFlyout();Blockly.navigation.getMarker().getCurNode()||Blockly.navigation.markAtCursor_();a&&a.getWorkspace()&&(a=a.getWorkspace().getTopBlocks(!0),0(this.flyout_?Blockly.FLYOUT_DRAG_RADIUS:Blockly.DRAG_RADIUS)}; -Blockly.Gesture.prototype.updateIsDraggingFromFlyout_=function(){return this.targetBlock_&&this.flyout_.isBlockCreatable_(this.targetBlock_)?!this.flyout_.isScrollable()||this.flyout_.isDragTowardWorkspace(this.currentDragDeltaXY_)?(this.startWorkspace_=this.flyout_.targetWorkspace_,this.startWorkspace_.updateScreenCalculationsIfScrolled(),Blockly.Events.getGroup()||Blockly.Events.setGroup(!0),this.startBlock_=null,this.targetBlock_=this.flyout_.createBlock(this.targetBlock_),this.targetBlock_.select(), -!0):!1:!1};Blockly.Gesture.prototype.updateIsDraggingBubble_=function(){if(!this.startBubble_)return!1;this.isDraggingBubble_=!0;this.startDraggingBubble_();return!0};Blockly.Gesture.prototype.updateIsDraggingBlock_=function(){if(!this.targetBlock_)return!1;this.flyout_?this.isDraggingBlock_=this.updateIsDraggingFromFlyout_():this.targetBlock_.isMovable()&&(this.isDraggingBlock_=!0);return this.isDraggingBlock_?(this.startDraggingBlock_(),!0):!1}; -Blockly.Gesture.prototype.updateIsDraggingWorkspace_=function(){if(this.flyout_?this.flyout_.isScrollable():this.startWorkspace_&&this.startWorkspace_.isDraggable())this.workspaceDragger_=this.flyout_?new Blockly.FlyoutDragger(this.flyout_):new Blockly.WorkspaceDragger(this.startWorkspace_),this.isDraggingWorkspace_=!0,this.workspaceDragger_.startDrag()}; -Blockly.Gesture.prototype.updateIsDragging_=function(){if(this.calledUpdateIsDragging_)throw Error("updateIsDragging_ should only be called once per gesture.");this.calledUpdateIsDragging_=!0;this.updateIsDraggingBubble_()||this.updateIsDraggingBlock_()||this.updateIsDraggingWorkspace_()}; -Blockly.Gesture.prototype.startDraggingBlock_=function(){this.blockDragger_=new Blockly.BlockDragger(this.targetBlock_,this.startWorkspace_);this.blockDragger_.startBlockDrag(this.currentDragDeltaXY_,this.healStack_);this.blockDragger_.dragBlock(this.mostRecentEvent_,this.currentDragDeltaXY_)}; -Blockly.Gesture.prototype.startDraggingBubble_=function(){this.bubbleDragger_=new Blockly.BubbleDragger(this.startBubble_,this.startWorkspace_);this.bubbleDragger_.startBubbleDrag();this.bubbleDragger_.dragBubble(this.mostRecentEvent_,this.currentDragDeltaXY_)}; -Blockly.Gesture.prototype.doStart=function(a){Blockly.utils.isTargetInput(a)?this.cancel():(this.hasStarted_=!0,Blockly.blockAnimations.disconnectUiStop(),this.startWorkspace_.updateScreenCalculationsIfScrolled(),this.startWorkspace_.isMutator&&this.startWorkspace_.resize(),Blockly.hideChaff(!!this.flyout_),this.startWorkspace_.markFocused(),this.mostRecentEvent_=a,Blockly.Tooltip.block(),this.targetBlock_&&(!this.targetBlock_.isInFlyout&&a.shiftKey&&this.targetBlock_.workspace.keyboardAccessibilityMode? -this.creatorWorkspace_.getCursor().setCurNode(Blockly.navigation.getTopNode(this.targetBlock_)):this.targetBlock_.select()),Blockly.utils.isRightButton(a)?this.handleRightClick(a):("touchstart"!=a.type.toLowerCase()&&"pointerdown"!=a.type.toLowerCase()||"mouse"==a.pointerType||Blockly.longStart(a,this),this.mouseDownXY_=new Blockly.utils.Coordinate(a.clientX,a.clientY),this.healStack_=a.altKey||a.ctrlKey||a.metaKey,this.bindMouseEvents(a)))}; -Blockly.Gesture.prototype.bindMouseEvents=function(a){this.onMoveWrapper_=Blockly.bindEventWithChecks_(document,"mousemove",null,this.handleMove.bind(this));this.onUpWrapper_=Blockly.bindEventWithChecks_(document,"mouseup",null,this.handleUp.bind(this));a.preventDefault();a.stopPropagation()}; -Blockly.Gesture.prototype.handleMove=function(a){this.updateFromEvent_(a);this.isDraggingWorkspace_?this.workspaceDragger_.drag(this.currentDragDeltaXY_):this.isDraggingBlock_?this.blockDragger_.dragBlock(this.mostRecentEvent_,this.currentDragDeltaXY_):this.isDraggingBubble_&&this.bubbleDragger_.dragBubble(this.mostRecentEvent_,this.currentDragDeltaXY_);a.preventDefault();a.stopPropagation()}; -Blockly.Gesture.prototype.handleUp=function(a){this.updateFromEvent_(a);Blockly.longStop_();this.isEnding_?console.log("Trying to end a gesture recursively."):(this.isEnding_=!0,this.isDraggingBubble_?this.bubbleDragger_.endBubbleDrag(a,this.currentDragDeltaXY_):this.isDraggingBlock_?this.blockDragger_.endBlockDrag(a,this.currentDragDeltaXY_):this.isDraggingWorkspace_?this.workspaceDragger_.endDrag(this.currentDragDeltaXY_):this.isBubbleClick_()?this.doBubbleClick_():this.isFieldClick_()?this.doFieldClick_(): -this.isBlockClick_()?this.doBlockClick_():this.isWorkspaceClick_()&&this.doWorkspaceClick_(a),a.preventDefault(),a.stopPropagation(),this.dispose())}; -Blockly.Gesture.prototype.cancel=function(){this.isEnding_||(Blockly.longStop_(),this.isDraggingBubble_?this.bubbleDragger_.endBubbleDrag(this.mostRecentEvent_,this.currentDragDeltaXY_):this.isDraggingBlock_?this.blockDragger_.endBlockDrag(this.mostRecentEvent_,this.currentDragDeltaXY_):this.isDraggingWorkspace_&&this.workspaceDragger_.endDrag(this.currentDragDeltaXY_),this.dispose())}; -Blockly.Gesture.prototype.handleRightClick=function(a){this.targetBlock_?(this.bringBlockToFront_(),Blockly.hideChaff(!!this.flyout_),this.targetBlock_.showContextMenu(a)):this.startBubble_?this.startBubble_.showContextMenu(a):this.startWorkspace_&&!this.flyout_&&(Blockly.hideChaff(),this.startWorkspace_.showContextMenu(a));a.preventDefault();a.stopPropagation();this.dispose()}; -Blockly.Gesture.prototype.handleWsStart=function(a,b){if(this.hasStarted_)throw Error("Tried to call gesture.handleWsStart, but the gesture had already been started.");this.setStartWorkspace_(b);this.mostRecentEvent_=a;this.doStart(a);this.startWorkspace_.keyboardAccessibilityMode&&Blockly.navigation.setState(Blockly.navigation.STATE_WS)}; -Blockly.Gesture.prototype.handleFlyoutStart=function(a,b){if(this.hasStarted_)throw Error("Tried to call gesture.handleFlyoutStart, but the gesture had already been started.");this.setStartFlyout_(b);this.handleWsStart(a,b.getWorkspace())};Blockly.Gesture.prototype.handleBlockStart=function(a,b){if(this.hasStarted_)throw Error("Tried to call gesture.handleBlockStart, but the gesture had already been started.");this.setStartBlock(b);this.mostRecentEvent_=a}; -Blockly.Gesture.prototype.handleBubbleStart=function(a,b){if(this.hasStarted_)throw Error("Tried to call gesture.handleBubbleStart, but the gesture had already been started.");this.setStartBubble(b);this.mostRecentEvent_=a};Blockly.Gesture.prototype.doBubbleClick_=function(){this.startBubble_.setFocus&&this.startBubble_.setFocus();this.startBubble_.select&&this.startBubble_.select()};Blockly.Gesture.prototype.doFieldClick_=function(){this.startField_.showEditor(this.mostRecentEvent_);this.bringBlockToFront_()}; -Blockly.Gesture.prototype.doBlockClick_=function(){this.flyout_&&this.flyout_.autoClose?this.targetBlock_.isEnabled()&&(Blockly.Events.getGroup()||Blockly.Events.setGroup(!0),this.flyout_.createBlock(this.targetBlock_).scheduleSnapAndBump()):Blockly.Events.fire(new Blockly.Events.Ui(this.startBlock_,"click",void 0,void 0));this.bringBlockToFront_();Blockly.Events.setGroup(!1)}; -Blockly.Gesture.prototype.doWorkspaceClick_=function(a){var b=this.creatorWorkspace_;a.shiftKey&&b.keyboardAccessibilityMode?(a=new Blockly.utils.Coordinate(a.clientX,a.clientY),a=Blockly.utils.screenToWsCoordinates(b,a),a=Blockly.ASTNode.createWorkspaceNode(b,a),b.getCursor().setCurNode(a)):Blockly.selected&&Blockly.selected.unselect()};Blockly.Gesture.prototype.bringBlockToFront_=function(){this.targetBlock_&&!this.flyout_&&this.targetBlock_.bringToFront()}; -Blockly.Gesture.prototype.setStartField=function(a){if(this.hasStarted_)throw Error("Tried to call gesture.setStartField, but the gesture had already been started.");this.startField_||(this.startField_=a)};Blockly.Gesture.prototype.setStartBubble=function(a){this.startBubble_||(this.startBubble_=a)};Blockly.Gesture.prototype.setStartBlock=function(a){this.startBlock_||this.startBubble_||(this.startBlock_=a,a.isInFlyout&&a!=a.getRootBlock()?this.setTargetBlock_(a.getRootBlock()):this.setTargetBlock_(a))}; -Blockly.Gesture.prototype.setTargetBlock_=function(a){a.isShadow()?this.setTargetBlock_(a.getParent()):this.targetBlock_=a};Blockly.Gesture.prototype.setStartWorkspace_=function(a){this.startWorkspace_||(this.startWorkspace_=a)};Blockly.Gesture.prototype.setStartFlyout_=function(a){this.flyout_||(this.flyout_=a)};Blockly.Gesture.prototype.isBubbleClick_=function(){return!!this.startBubble_&&!this.hasExceededDragRadius_}; -Blockly.Gesture.prototype.isBlockClick_=function(){return!!this.startBlock_&&!this.hasExceededDragRadius_&&!this.isFieldClick_()};Blockly.Gesture.prototype.isFieldClick_=function(){return(this.startField_?this.startField_.isClickable():!1)&&!this.hasExceededDragRadius_&&(!this.flyout_||!this.flyout_.autoClose)};Blockly.Gesture.prototype.isWorkspaceClick_=function(){return!this.startBlock_&&!this.startBubble_&&!this.startField_&&!this.hasExceededDragRadius_}; -Blockly.Gesture.prototype.isDragging=function(){return this.isDraggingWorkspace_||this.isDraggingBlock_||this.isDraggingBubble_};Blockly.Gesture.prototype.hasStarted=function(){return this.hasStarted_};Blockly.Gesture.prototype.getInsertionMarkers=function(){return this.blockDragger_?this.blockDragger_.getInsertionMarkers():[]};Blockly.Gesture.inProgress=function(){for(var a=Blockly.Workspace.getAll(),b=0,c;c=a[b];b++)if(c.currentGesture_)return!0;return!1};Blockly.Field=function(a,b,c){this.tooltip_=this.validator_=this.value_=null;this.size_=new Blockly.utils.Size(0,0);this.constants_=this.mouseDownWrapper_=this.textContent_=this.textElement_=this.borderRect_=this.fieldGroup_=this.markerSvg_=this.cursorSvg_=null;c&&this.configure_(c);this.setValue(a);b&&this.setValidator(b)};Blockly.Field.prototype.name=void 0;Blockly.Field.prototype.disposed=!1;Blockly.Field.prototype.maxDisplayLength=50;Blockly.Field.prototype.sourceBlock_=null; -Blockly.Field.prototype.isDirty_=!0;Blockly.Field.prototype.visible_=!0;Blockly.Field.prototype.clickTarget_=null;Blockly.Field.NBSP="\u00a0";Blockly.Field.prototype.EDITABLE=!0;Blockly.Field.prototype.SERIALIZABLE=!1;Blockly.Field.prototype.configure_=function(a){var b=a.tooltip;"string"==typeof b&&(b=Blockly.utils.replaceMessageReferences(a.tooltip));b&&this.setTooltip(b)}; -Blockly.Field.prototype.setSourceBlock=function(a){if(this.sourceBlock_)throw Error("Field already bound to a block.");this.sourceBlock_=a};Blockly.Field.prototype.getConstants=function(){!this.constants_&&this.sourceBlock_&&this.sourceBlock_.workspace&&this.sourceBlock_.workspace.rendered&&(this.constants_=this.sourceBlock_.workspace.getRenderer().getConstants());return this.constants_};Blockly.Field.prototype.getSourceBlock=function(){return this.sourceBlock_}; -Blockly.Field.prototype.init=function(){this.fieldGroup_||(this.fieldGroup_=Blockly.utils.dom.createSvgElement("g",{},null),this.isVisible()||(this.fieldGroup_.style.display="none"),this.sourceBlock_.getSvgRoot().appendChild(this.fieldGroup_),this.initView(),this.updateEditable(),this.setTooltip(this.tooltip_),this.bindEvents_(),this.initModel())};Blockly.Field.prototype.initView=function(){this.createBorderRect_();this.createTextElement_()};Blockly.Field.prototype.initModel=function(){}; -Blockly.Field.prototype.createBorderRect_=function(){this.borderRect_=Blockly.utils.dom.createSvgElement("rect",{rx:this.getConstants().FIELD_BORDER_RECT_RADIUS,ry:this.getConstants().FIELD_BORDER_RECT_RADIUS,x:0,y:0,height:this.size_.height,width:this.size_.width,"class":"blocklyFieldRect"},this.fieldGroup_)}; -Blockly.Field.prototype.createTextElement_=function(){this.textElement_=Blockly.utils.dom.createSvgElement("text",{"class":"blocklyText"},this.fieldGroup_);this.getConstants().FIELD_TEXT_BASELINE_CENTER&&this.textElement_.setAttribute("dominant-baseline","central");this.textContent_=document.createTextNode("");this.textElement_.appendChild(this.textContent_)}; -Blockly.Field.prototype.bindEvents_=function(){Blockly.Tooltip.bindMouseEvents(this.getClickTarget_());this.mouseDownWrapper_=Blockly.bindEventWithChecks_(this.getClickTarget_(),"mousedown",this,this.onMouseDown_)};Blockly.Field.prototype.fromXml=function(a){this.setValue(a.textContent)};Blockly.Field.prototype.toXml=function(a){a.textContent=this.getValue();return a}; -Blockly.Field.prototype.dispose=function(){Blockly.DropDownDiv.hideIfOwner(this);Blockly.WidgetDiv.hideIfOwner(this);Blockly.Tooltip.unbindMouseEvents(this.getClickTarget_());this.mouseDownWrapper_&&Blockly.unbindEvent_(this.mouseDownWrapper_);Blockly.utils.dom.removeNode(this.fieldGroup_);this.disposed=!0}; -Blockly.Field.prototype.updateEditable=function(){var a=this.fieldGroup_;this.EDITABLE&&a&&(this.sourceBlock_.isEditable()?(Blockly.utils.dom.addClass(a,"blocklyEditableText"),Blockly.utils.dom.removeClass(a,"blocklyNonEditableText"),a.style.cursor=this.CURSOR):(Blockly.utils.dom.addClass(a,"blocklyNonEditableText"),Blockly.utils.dom.removeClass(a,"blocklyEditableText"),a.style.cursor=""))}; -Blockly.Field.prototype.isClickable=function(){return!!this.sourceBlock_&&this.sourceBlock_.isEditable()&&!!this.showEditor_&&"function"===typeof this.showEditor_};Blockly.Field.prototype.isCurrentlyEditable=function(){return this.EDITABLE&&!!this.sourceBlock_&&this.sourceBlock_.isEditable()}; -Blockly.Field.prototype.isSerializable=function(){var a=!1;this.name&&(this.SERIALIZABLE?a=!0:this.EDITABLE&&(console.warn("Detected an editable field that was not serializable. Please define SERIALIZABLE property as true on all editable custom fields. Proceeding with serialization."),a=!0));return a};Blockly.Field.prototype.isVisible=function(){return this.visible_}; -Blockly.Field.prototype.setVisible=function(a){if(this.visible_!=a){this.visible_=a;var b=this.getSvgRoot();b&&(b.style.display=a?"block":"none")}};Blockly.Field.prototype.setValidator=function(a){this.validator_=a};Blockly.Field.prototype.getValidator=function(){return this.validator_};Blockly.Field.prototype.classValidator=function(a){return a}; -Blockly.Field.prototype.callValidator=function(a){var b=this.classValidator(a);if(null===b)return null;void 0!==b&&(a=b);if(b=this.getValidator()){b=b.call(this,a);if(null===b)return null;void 0!==b&&(a=b)}return a};Blockly.Field.prototype.getSvgRoot=function(){return this.fieldGroup_};Blockly.Field.prototype.applyColour=function(){};Blockly.Field.prototype.render_=function(){this.textContent_&&(this.textContent_.nodeValue=this.getDisplayText_());this.updateSize_()}; -Blockly.Field.prototype.showEditor=function(a){this.isClickable()&&this.showEditor_(a)};Blockly.Field.prototype.updateWidth=function(){console.warn("Deprecated call to updateWidth, call Blockly.Field.updateSize_ to force an update to the size of the field, or Blockly.utils.dom.getTextWidth() to check the size of the field.");this.updateSize_()}; -Blockly.Field.prototype.updateSize_=function(a){var b=this.getConstants();a=void 0!=a?a:this.borderRect_?this.getConstants().FIELD_BORDER_RECT_X_PADDING:0;var c=2*a,d=b.FIELD_TEXT_HEIGHT,e=0;this.textElement_&&(e=Blockly.utils.dom.getFastTextWidth(this.textElement_,b.FIELD_TEXT_FONTSIZE,b.FIELD_TEXT_FONTWEIGHT,b.FIELD_TEXT_FONTFAMILY),c+=e);this.borderRect_&&(d=Math.max(d,b.FIELD_BORDER_RECT_HEIGHT));this.size_.height=d;this.size_.width=c;this.positionTextElement_(a,e);this.positionBorderRect_()}; -Blockly.Field.prototype.positionTextElement_=function(a,b){if(this.textElement_){var c=this.getConstants(),d=this.size_.height/2;this.textElement_.setAttribute("x",this.sourceBlock_.RTL?this.size_.width-b-a:a);this.textElement_.setAttribute("y",c.FIELD_TEXT_BASELINE_CENTER?d:d-c.FIELD_TEXT_HEIGHT/2+c.FIELD_TEXT_BASELINE)}}; -Blockly.Field.prototype.positionBorderRect_=function(){this.borderRect_&&(this.borderRect_.setAttribute("width",this.size_.width),this.borderRect_.setAttribute("height",this.size_.height),this.borderRect_.setAttribute("rx",this.getConstants().FIELD_BORDER_RECT_RADIUS),this.borderRect_.setAttribute("ry",this.getConstants().FIELD_BORDER_RECT_RADIUS))}; -Blockly.Field.prototype.getSize=function(){if(!this.isVisible())return new Blockly.utils.Size(0,0);this.isDirty_?(this.render_(),this.isDirty_=!1):this.visible_&&0==this.size_.width&&(console.warn("Deprecated use of setting size_.width to 0 to rerender a field. Set field.isDirty_ to true instead."),this.render_());return this.size_}; -Blockly.Field.prototype.getScaledBBox=function(){if(this.borderRect_)a=this.borderRect_.getBoundingClientRect(),c=Blockly.utils.style.getPageOffset(this.borderRect_),d=a.width,a=a.height;else{var a=this.sourceBlock_.getHeightWidth(),b=this.sourceBlock_.workspace.scale,c=this.getAbsoluteXY_(),d=a.width*b;a=a.height*b;Blockly.utils.userAgent.GECKO?(c.x+=1.5*b,c.y+=1.5*b):Blockly.utils.userAgent.EDGE||Blockly.utils.userAgent.IE||(c.x-=.5*b,c.y-=.5*b);d+=1*b;a+=1*b}return{top:c.y,bottom:c.y+a,left:c.x, -right:c.x+d}};Blockly.Field.prototype.getDisplayText_=function(){var a=this.getText();if(!a)return Blockly.Field.NBSP;a.length>this.maxDisplayLength&&(a=a.substring(0,this.maxDisplayLength-2)+"\u2026");a=a.replace(/\s/g,Blockly.Field.NBSP);this.sourceBlock_&&this.sourceBlock_.RTL&&(a+="\u200f");return a};Blockly.Field.prototype.getText=function(){if(this.getText_){var a=this.getText_.call(this);if(null!==a)return String(a)}return String(this.getValue())}; -Blockly.Field.prototype.setText=function(a){throw Error("setText method is deprecated");};Blockly.Field.prototype.markDirty=function(){this.isDirty_=!0;this.constants_=null};Blockly.Field.prototype.forceRerender=function(){this.isDirty_=!0;this.sourceBlock_&&this.sourceBlock_.rendered&&(this.sourceBlock_.render(),this.sourceBlock_.bumpNeighbours(),this.updateMarkers_())}; -Blockly.Field.prototype.setValue=function(a){if(null!==a){var b=this.doClassValidation_(a);a=this.processValidation_(a,b);if(!(a instanceof Error)){if(b=this.getValidator())if(b=b.call(this,a),a=this.processValidation_(a,b),a instanceof Error)return;b=this.getValue();b!==a&&(this.sourceBlock_&&Blockly.Events.isEnabled()&&Blockly.Events.fire(new Blockly.Events.BlockChange(this.sourceBlock_,"field",this.name||null,b,a)),this.doValueUpdate_(a),this.isDirty_&&this.forceRerender())}}}; -Blockly.Field.prototype.processValidation_=function(a,b){if(null===b)return this.doValueInvalid_(a),this.isDirty_&&this.forceRerender(),Error();void 0!==b&&(a=b);return a};Blockly.Field.prototype.getValue=function(){return this.value_};Blockly.Field.prototype.doClassValidation_=function(a){return null===a||void 0===a?null:a=this.classValidator(a)};Blockly.Field.prototype.doValueUpdate_=function(a){this.value_=a;this.isDirty_=!0};Blockly.Field.prototype.doValueInvalid_=function(a){}; -Blockly.Field.prototype.onMouseDown_=function(a){this.sourceBlock_&&this.sourceBlock_.workspace&&(a=this.sourceBlock_.workspace.getGesture(a))&&a.setStartField(this)};Blockly.Field.prototype.setTooltip=function(a){var b=this.getClickTarget_();b?b.tooltip=a||""===a?a:this.sourceBlock_:this.tooltip_=a};Blockly.Field.prototype.getClickTarget_=function(){return this.clickTarget_||this.getSvgRoot()};Blockly.Field.prototype.getAbsoluteXY_=function(){return Blockly.utils.style.getPageOffset(this.getClickTarget_())}; -Blockly.Field.prototype.referencesVariables=function(){return!1};Blockly.Field.prototype.getParentInput=function(){for(var a=null,b=this.sourceBlock_,c=b.inputList,d=0;da||a>this.fieldRow.length)throw Error("index "+a+" out of bounds.");if(!(b||""==b&&c))return a;"string"==typeof b&&(b=new Blockly.FieldLabel(b));b.setSourceBlock(this.sourceBlock_);this.sourceBlock_.rendered&&b.init();b.name=c;b.prefixField&&(a=this.insertFieldAt(a,b.prefixField));this.fieldRow.splice(a,0,b);++a;b.suffixField&&(a=this.insertFieldAt(a,b.suffixField));this.sourceBlock_.rendered&&(this.sourceBlock_.render(),this.sourceBlock_.bumpNeighbours()); -return a};Blockly.Input.prototype.removeField=function(a){for(var b=0,c;c=this.fieldRow[b];b++)if(c.name===a){c.dispose();this.fieldRow.splice(b,1);this.sourceBlock_.rendered&&(this.sourceBlock_.render(),this.sourceBlock_.bumpNeighbours());return}throw Error('Field "%s" not found.',a);};Blockly.Input.prototype.isVisible=function(){return this.visible_}; -Blockly.Input.prototype.setVisible=function(a){var b=[];if(this.visible_==a)return b;for(var c=(this.visible_=a)?"block":"none",d=0,e;e=this.fieldRow[d];d++)e.setVisible(a);this.connection&&(a?b=this.connection.startTrackingAll():this.connection.stopTrackingAll(),d=this.connection.targetBlock())&&(d.getSvgRoot().style.display=c,a||(d.rendered=!1));return b};Blockly.Input.prototype.markDirty=function(){for(var a=0,b;b=this.fieldRow[a];a++)b.markDirty()}; -Blockly.Input.prototype.setCheck=function(a){if(!this.connection)throw Error("This input does not have a connection.");this.connection.setCheck(a);return this};Blockly.Input.prototype.setAlign=function(a){this.align=a;this.sourceBlock_.rendered&&this.sourceBlock_.render();return this};Blockly.Input.prototype.init=function(){if(this.sourceBlock_.workspace.rendered)for(var a=0;aa&&(c=c.substring(0,a-3)+"...");return c}; -Blockly.Block.prototype.appendValueInput=function(a){return this.appendInput_(Blockly.INPUT_VALUE,a)};Blockly.Block.prototype.appendStatementInput=function(a){return this.appendInput_(Blockly.NEXT_STATEMENT,a)};Blockly.Block.prototype.appendDummyInput=function(a){return this.appendInput_(Blockly.DUMMY_INPUT,a||"")}; -Blockly.Block.prototype.jsonInit=function(a){var b=a.type?'Block "'+a.type+'": ':"";if(a.output&&a.previousStatement)throw Error(b+"Must not have both an output and a previousStatement.");a.style&&a.style.hat&&(this.hat=a.style.hat,a.style=null);if(a.style&&a.colour)throw Error(b+"Must not have both a colour and a style.");a.style?this.jsonInitStyle_(a,b):this.jsonInitColour_(a,b);for(var c=0;void 0!==a["message"+c];)this.interpolate_(a["message"+c],a["args"+c]||[],a["lastDummyAlign"+c],b),c++;void 0!== -a.inputsInline&&this.setInputsInline(a.inputsInline);void 0!==a.output&&this.setOutput(!0,a.output);void 0!==a.outputShape&&this.setOutputShape(a.outputShape);void 0!==a.previousStatement&&this.setPreviousStatement(!0,a.previousStatement);void 0!==a.nextStatement&&this.setNextStatement(!0,a.nextStatement);void 0!==a.tooltip&&(c=a.tooltip,c=Blockly.utils.replaceMessageReferences(c),this.setTooltip(c));void 0!==a.enableContextMenu&&(c=a.enableContextMenu,this.contextMenu=!!c);void 0!==a.helpUrl&&(c= -a.helpUrl,c=Blockly.utils.replaceMessageReferences(c),this.setHelpUrl(c));"string"==typeof a.extensions&&(console.warn(b+"JSON attribute 'extensions' should be an array of strings. Found raw string in JSON for '"+a.type+"' block."),a.extensions=[a.extensions]);void 0!==a.mutator&&Blockly.Extensions.apply(a.mutator,this,!0);if(Array.isArray(a.extensions))for(a=a.extensions,b=0;b=k||k>b.length)throw Error('Block "'+this.type+'": Message index %'+k+" out of range.");if(f[k])throw Error('Block "'+this.type+'": Message index %'+k+" duplicated.");f[k]=!0;g++;a.push(b[k-1])}else(k=k.trim())&&a.push(k)}if(g!=b.length)throw Error('Block "'+this.type+'": Message does not reference all '+b.length+" arg(s)."); -a.length&&("string"==typeof a[a.length-1]||Blockly.utils.string.startsWith(a[a.length-1].type,"field_"))&&(h={type:"input_dummy"},c&&(h.align=c),a.push(h));c={LEFT:Blockly.ALIGN_LEFT,RIGHT:Blockly.ALIGN_RIGHT,CENTRE:Blockly.ALIGN_CENTRE,CENTER:Blockly.ALIGN_CENTRE};b=[];for(h=0;h=this.inputList.length)throw RangeError("Input index "+a+" out of bounds.");if(b>this.inputList.length)throw RangeError("Reference input "+b+" out of bounds.");var c=this.inputList[a];this.inputList.splice(a,1);aa?b-1:a},this.highlightedIndex_)}; -Blockly.Menu.prototype.highlightHelper=function(a,b){b=0>b?-1:b;var c=this.getChildCount();b=a.call(this,b,c);for(var d=0;d<=c;){var e=this.getChildAt(b);if(e&&this.canHighlightItem(e))return this.setHighlightedIndex(b),!0;d++;b=a.call(this,b,c)}return!1};Blockly.Menu.prototype.canHighlightItem=function(a){return a.isEnabled()}; -Blockly.Menu.prototype.handleMouseOver_=function(a){if(a=this.getMenuItem(a.target))a.isEnabled()?this.getHighlighted()!==a&&(this.unhighlightCurrent(),this.setHighlighted(a)):this.unhighlightCurrent()};Blockly.Menu.prototype.handleClick_=function(a){var b=this.openingCoords;this.openingCoords=null;if(b&&"number"===typeof a.clientX){var c=new Blockly.utils.Coordinate(a.clientX,a.clientY);if(1>Blockly.utils.Coordinate.distance(b,c))return}(b=this.getMenuItem(a.target))&&b.handleClick(a)&&a.preventDefault()}; -Blockly.Menu.prototype.handleMouseEnter_=function(a){this.focus()};Blockly.Menu.prototype.handleMouseLeave_=function(a){this.getElement()&&(this.blur(),this.clearHighlighted())};Blockly.Menu.prototype.handleKeyEvent=function(a){return 0!=this.getChildCount()&&this.handleKeyEventInternal(a)?(a.preventDefault(),a.stopPropagation(),!0):!1}; -Blockly.Menu.prototype.handleKeyEventInternal=function(a){var b=this.getHighlighted();if(b&&"function"==typeof b.handleKeyEvent&&b.handleKeyEvent(a))return!0;if(a.shiftKey||a.ctrlKey||a.metaKey||a.altKey)return!1;switch(a.keyCode){case Blockly.utils.KeyCodes.ENTER:b&&b.performActionInternal(a);break;case Blockly.utils.KeyCodes.UP:this.highlightPrevious();break;case Blockly.utils.KeyCodes.DOWN:this.highlightNext();break;default:return!1}return!0};Blockly.MenuItem=function(a,b){Blockly.Component.call(this);this.setContentInternal(a);this.setValue(b);this.enabled_=!0};Blockly.utils.object.inherits(Blockly.MenuItem,Blockly.Component); -Blockly.MenuItem.prototype.createDom=function(){var a=document.createElement("div");a.id=this.getId();this.setElementInternal(a);a.className="goog-menuitem goog-option "+(this.enabled_?"":"goog-menuitem-disabled ")+(this.checked_?"goog-option-selected ":"")+(this.rightToLeft_?"goog-menuitem-rtl ":"");var b=this.getContentWrapperDom();a.appendChild(b);var c=this.getCheckboxDom();c&&b.appendChild(c);b.appendChild(this.getContentDom());Blockly.utils.aria.setRole(a,this.roleName_||(this.checkable_?Blockly.utils.aria.Role.MENUITEMCHECKBOX: -Blockly.utils.aria.Role.MENUITEM));Blockly.utils.aria.setState(a,Blockly.utils.aria.State.SELECTED,this.checkable_&&this.checked_||!1)};Blockly.MenuItem.prototype.getCheckboxDom=function(){if(!this.checkable_)return null;var a=document.createElement("div");a.className="goog-menuitem-checkbox";return a};Blockly.MenuItem.prototype.getContentDom=function(){var a=this.content_;"string"===typeof a&&(a=document.createTextNode(a));return a}; -Blockly.MenuItem.prototype.getContentWrapperDom=function(){var a=document.createElement("div");a.className="goog-menuitem-content";return a};Blockly.MenuItem.prototype.setContentInternal=function(a){this.content_=a};Blockly.MenuItem.prototype.setValue=function(a){this.value_=a};Blockly.MenuItem.prototype.getValue=function(){return this.value_};Blockly.MenuItem.prototype.setRole=function(a){this.roleName_=a};Blockly.MenuItem.prototype.setCheckable=function(a){this.checkable_=a}; -Blockly.MenuItem.prototype.setChecked=function(a){if(this.checkable_){this.checked_=a;var b=this.getElement();b&&this.isEnabled()&&(a?(Blockly.utils.dom.addClass(b,"goog-option-selected"),Blockly.utils.aria.setState(b,Blockly.utils.aria.State.SELECTED,!0)):(Blockly.utils.dom.removeClass(b,"goog-option-selected"),Blockly.utils.aria.setState(b,Blockly.utils.aria.State.SELECTED,!1)))}}; -Blockly.MenuItem.prototype.setHighlighted=function(a){this.highlight_=a;var b=this.getElement();b&&this.isEnabled()&&(a?Blockly.utils.dom.addClass(b,"goog-menuitem-highlight"):Blockly.utils.dom.removeClass(b,"goog-menuitem-highlight"))};Blockly.MenuItem.prototype.isEnabled=function(){return this.enabled_};Blockly.MenuItem.prototype.setEnabled=function(a){this.enabled_=a;(a=this.getElement())&&(this.enabled_?Blockly.utils.dom.removeClass(a,"goog-menuitem-disabled"):Blockly.utils.dom.addClass(a,"goog-menuitem-disabled"))}; -Blockly.MenuItem.prototype.handleClick=function(a){this.isEnabled()&&(this.setHighlighted(!0),this.performActionInternal())};Blockly.MenuItem.prototype.performActionInternal=function(){this.checkable_&&this.setChecked(!this.checked_);this.actionHandler_&&this.actionHandler_.call(this.actionHandlerObj_,this)};Blockly.MenuItem.prototype.onAction=function(a,b){this.actionHandler_=a;this.actionHandlerObj_=b};Blockly.utils.uiMenu={};Blockly.utils.uiMenu.getSize=function(a){a=a.getElement();var b=Blockly.utils.style.getSize(a);b.height=a.scrollHeight;return b};Blockly.utils.uiMenu.adjustBBoxesForRTL=function(a,b,c){b.left+=c.width;b.right+=c.width;a.left+=c.width;a.right+=c.width};Blockly.ContextMenu={};Blockly.ContextMenu.currentBlock=null;Blockly.ContextMenu.eventWrapper_=null;Blockly.ContextMenu.show=function(a,b,c){Blockly.WidgetDiv.show(Blockly.ContextMenu,c,null);if(b.length){var d=Blockly.ContextMenu.populate_(b,c);Blockly.ContextMenu.position_(d,a,c);setTimeout(function(){d.getElement().focus()},1);Blockly.ContextMenu.currentBlock=null}else Blockly.ContextMenu.hide()}; -Blockly.ContextMenu.populate_=function(a,b){var c=new Blockly.Menu;c.setRightToLeft(b);for(var d=0,e;e=a[d];d++){var f=new Blockly.MenuItem(e.text);f.setRightToLeft(b);c.addChild(f,!0);f.setEnabled(e.enabled);if(e.enabled)f.onAction(function(){Blockly.ContextMenu.hide();this.callback()},e)}return c}; -Blockly.ContextMenu.position_=function(a,b,c){var d=Blockly.utils.getViewportBBox();b={top:b.clientY+d.top,bottom:b.clientY+d.top,left:b.clientX+d.left,right:b.clientX+d.left};Blockly.ContextMenu.createWidget_(a);var e=Blockly.utils.uiMenu.getSize(a);c&&Blockly.utils.uiMenu.adjustBBoxesForRTL(d,b,e);Blockly.WidgetDiv.positionWithAnchor(d,b,e,c);a.getElement().focus()}; -Blockly.ContextMenu.createWidget_=function(a){a.render(Blockly.WidgetDiv.DIV);var b=a.getElement();Blockly.utils.dom.addClass(b,"blocklyContextMenu");Blockly.bindEventWithChecks_(b,"contextmenu",null,Blockly.utils.noEvent);a.focus()};Blockly.ContextMenu.hide=function(){Blockly.WidgetDiv.hideIfOwner(Blockly.ContextMenu);Blockly.ContextMenu.currentBlock=null;Blockly.ContextMenu.eventWrapper_&&(Blockly.unbindEvent_(Blockly.ContextMenu.eventWrapper_),Blockly.ContextMenu.eventWrapper_=null)}; -Blockly.ContextMenu.callbackFactory=function(a,b){return function(){Blockly.Events.disable();try{var c=Blockly.Xml.domToBlock(b,a.workspace),d=a.getRelativeToSurfaceXY();d.x=a.RTL?d.x-Blockly.SNAP_RADIUS:d.x+Blockly.SNAP_RADIUS;d.y+=2*Blockly.SNAP_RADIUS;c.moveBy(d.x,d.y)}finally{Blockly.Events.enable()}Blockly.Events.isEnabled()&&!c.isShadow()&&Blockly.Events.fire(new Blockly.Events.BlockCreate(c));c.select()}}; -Blockly.ContextMenu.blockDeleteOption=function(a){var b=a.getDescendants(!1).length,c=a.getNextBlock();c&&(b-=c.getDescendants(!1).length);return{text:1==b?Blockly.Msg.DELETE_BLOCK:Blockly.Msg.DELETE_X_BLOCKS.replace("%1",String(b)),enabled:!0,callback:function(){Blockly.Events.setGroup(!0);a.dispose(!0,!0);Blockly.Events.setGroup(!1)}}};Blockly.ContextMenu.blockHelpOption=function(a){return{enabled:!("function"==typeof a.helpUrl?!a.helpUrl():!a.helpUrl),text:Blockly.Msg.HELP,callback:function(){a.showHelp()}}}; -Blockly.ContextMenu.blockDuplicateOption=function(a){var b=a.isDuplicatable();return{text:Blockly.Msg.DUPLICATE_BLOCK,enabled:b,callback:function(){Blockly.duplicate(a)}}};Blockly.ContextMenu.blockCommentOption=function(a){var b={enabled:!Blockly.utils.userAgent.IE};a.getCommentIcon()?(b.text=Blockly.Msg.REMOVE_COMMENT,b.callback=function(){a.setCommentText(null)}):(b.text=Blockly.Msg.ADD_COMMENT,b.callback=function(){a.setCommentText("")});return b}; -Blockly.ContextMenu.commentDeleteOption=function(a){return{text:Blockly.Msg.REMOVE_COMMENT,enabled:!0,callback:function(){Blockly.Events.setGroup(!0);a.dispose(!0,!0);Blockly.Events.setGroup(!1)}}};Blockly.ContextMenu.commentDuplicateOption=function(a){return{text:Blockly.Msg.DUPLICATE_COMMENT,enabled:!0,callback:function(){Blockly.duplicate(a)}}}; -Blockly.ContextMenu.workspaceCommentOption=function(a,b){if(!Blockly.WorkspaceCommentSvg)throw Error("Missing require for Blockly.WorkspaceCommentSvg");var c={enabled:!Blockly.utils.userAgent.IE};c.text=Blockly.Msg.ADD_COMMENT;c.callback=function(){var c=new Blockly.WorkspaceCommentSvg(a,Blockly.Msg.WORKSPACE_COMMENT_DEFAULT_TEXT,Blockly.WorkspaceCommentSvg.DEFAULT_SIZE,Blockly.WorkspaceCommentSvg.DEFAULT_SIZE),e=a.getInjectionDiv().getBoundingClientRect();e=new Blockly.utils.Coordinate(b.clientX- -e.left,b.clientY-e.top);var f=a.getOriginOffsetInPixels();e=Blockly.utils.Coordinate.difference(e,f);e.scale(1/a.scale);c.moveBy(e.x,e.y);a.rendered&&(c.initSvg(),c.render(),c.select())};return c};Blockly.RenderedConnection=function(a,b){Blockly.RenderedConnection.superClass_.constructor.call(this,a,b);this.db_=a.workspace.connectionDBList[b];this.dbOpposite_=a.workspace.connectionDBList[Blockly.OPPOSITE_TYPE[b]];this.offsetInBlock_=new Blockly.utils.Coordinate(0,0);this.trackedState_=Blockly.RenderedConnection.TrackedState.WILL_TRACK};Blockly.utils.object.inherits(Blockly.RenderedConnection,Blockly.Connection);Blockly.RenderedConnection.TrackedState={WILL_TRACK:-1,UNTRACKED:0,TRACKED:1}; -Blockly.RenderedConnection.prototype.dispose=function(){Blockly.RenderedConnection.superClass_.dispose.call(this);this.trackedState_==Blockly.RenderedConnection.TrackedState.TRACKED&&this.db_.removeConnection(this,this.y)};Blockly.RenderedConnection.prototype.getSourceBlock=function(){return Blockly.RenderedConnection.superClass_.getSourceBlock.call(this)};Blockly.RenderedConnection.prototype.targetBlock=function(){return Blockly.RenderedConnection.superClass_.targetBlock.call(this)}; -Blockly.RenderedConnection.prototype.distanceFrom=function(a){var b=this.x-a.x;a=this.y-a.y;return Math.sqrt(b*b+a*a)}; -Blockly.RenderedConnection.prototype.bumpAwayFrom=function(a){if(!this.sourceBlock_.workspace.isDragging()){var b=this.sourceBlock_.getRootBlock();if(!b.isInFlyout){var c=!1;if(!b.isMovable()){b=a.getSourceBlock().getRootBlock();if(!b.isMovable())return;a=this;c=!0}var d=Blockly.selected==b;d||b.addSelect();var e=a.x+Blockly.SNAP_RADIUS+Math.floor(Math.random()*Blockly.BUMP_RANDOMNESS)-this.x,f=a.y+Blockly.SNAP_RADIUS+Math.floor(Math.random()*Blockly.BUMP_RANDOMNESS)-this.y;c&&(f=-f);b.RTL&&(e=a.x- -Blockly.SNAP_RADIUS-Math.floor(Math.random()*Blockly.BUMP_RANDOMNESS)-this.x);b.moveBy(e,f);d||b.removeSelect()}}}; -Blockly.RenderedConnection.prototype.moveTo=function(a,b){this.trackedState_==Blockly.RenderedConnection.TrackedState.WILL_TRACK?(this.db_.addConnection(this,b),this.trackedState_=Blockly.RenderedConnection.TrackedState.TRACKED):this.trackedState_==Blockly.RenderedConnection.TrackedState.TRACKED&&(this.db_.removeConnection(this,this.y),this.db_.addConnection(this,b));this.x=a;this.y=b};Blockly.RenderedConnection.prototype.moveBy=function(a,b){this.moveTo(this.x+a,this.y+b)}; -Blockly.RenderedConnection.prototype.moveToOffset=function(a){this.moveTo(a.x+this.offsetInBlock_.x,a.y+this.offsetInBlock_.y)};Blockly.RenderedConnection.prototype.setOffsetInBlock=function(a,b){this.offsetInBlock_.x=a;this.offsetInBlock_.y=b};Blockly.RenderedConnection.prototype.getOffsetInBlock=function(){return this.offsetInBlock_}; -Blockly.RenderedConnection.prototype.tighten=function(){var a=this.targetConnection.x-this.x,b=this.targetConnection.y-this.y;if(0!=a||0!=b){var c=this.targetBlock(),d=c.getSvgRoot();if(!d)throw Error("block is not rendered.");d=Blockly.utils.getRelativeXY(d);c.getSvgRoot().setAttribute("transform","translate("+(d.x-a)+","+(d.y-b)+")");c.moveConnections(-a,-b)}};Blockly.RenderedConnection.prototype.closest=function(a,b){return this.dbOpposite_.searchForClosest(this,a,b)}; -Blockly.RenderedConnection.prototype.highlight=function(){var a=this.sourceBlock_.workspace.getRenderer().getConstants();var b=a.shapeFor(this);this.type==Blockly.INPUT_VALUE||this.type==Blockly.OUTPUT_VALUE?(a=a.TAB_OFFSET_FROM_TOP,b=Blockly.utils.svgPaths.moveBy(0,-a)+Blockly.utils.svgPaths.lineOnAxis("v",a)+b.pathDown+Blockly.utils.svgPaths.lineOnAxis("v",a)):(a=a.NOTCH_OFFSET_LEFT-a.CORNER_RADIUS,b=Blockly.utils.svgPaths.moveBy(-a,0)+Blockly.utils.svgPaths.lineOnAxis("h",a)+b.pathLeft+Blockly.utils.svgPaths.lineOnAxis("h", -a));a=this.sourceBlock_.getRelativeToSurfaceXY();Blockly.Connection.highlightedPath_=Blockly.utils.dom.createSvgElement("path",{"class":"blocklyHighlightedConnectionPath",d:b,transform:"translate("+(this.x-a.x)+","+(this.y-a.y)+")"+(this.sourceBlock_.RTL?" scale(-1 1)":"")},this.sourceBlock_.getSvgRoot())};Blockly.RenderedConnection.prototype.unhighlight=function(){Blockly.utils.dom.removeNode(Blockly.Connection.highlightedPath_);delete Blockly.Connection.highlightedPath_}; -Blockly.RenderedConnection.prototype.setTracking=function(a){a&&this.trackedState_==Blockly.RenderedConnection.TrackedState.TRACKED||!a&&this.trackedState_==Blockly.RenderedConnection.TrackedState.UNTRACKED||this.sourceBlock_.isInFlyout||(a?(this.db_.addConnection(this,this.y),this.trackedState_=Blockly.RenderedConnection.TrackedState.TRACKED):(this.trackedState_==Blockly.RenderedConnection.TrackedState.TRACKED&&this.db_.removeConnection(this,this.y),this.trackedState_=Blockly.RenderedConnection.TrackedState.UNTRACKED))}; -Blockly.RenderedConnection.prototype.stopTrackingAll=function(){this.setTracking(!1);if(this.targetConnection)for(var a=this.targetBlock().getDescendants(!1),b=0;bb?!1:Blockly.RenderedConnection.superClass_.isConnectionAllowed.call(this,a)};Blockly.RenderedConnection.prototype.onFailedConnect=function(a){this.bumpAwayFrom(a)};Blockly.RenderedConnection.prototype.disconnectInternal_=function(a,b){Blockly.RenderedConnection.superClass_.disconnectInternal_.call(this,a,b);a.rendered&&a.render();b.rendered&&(b.updateDisabled(),b.render())}; -Blockly.RenderedConnection.prototype.respawnShadow_=function(){var a=this.getSourceBlock(),b=this.getShadowDom();if(a.workspace&&b&&Blockly.Events.recordUndo){Blockly.RenderedConnection.superClass_.respawnShadow_.call(this);b=this.targetBlock();if(!b)throw Error("Couldn't respawn the shadow block that should exist here.");b.initSvg();b.render(!1);a.rendered&&a.render()}};Blockly.RenderedConnection.prototype.neighbours=function(a){return this.dbOpposite_.getNeighbours(this,a)}; -Blockly.RenderedConnection.prototype.connect_=function(a){Blockly.RenderedConnection.superClass_.connect_.call(this,a);var b=this.getSourceBlock();a=a.getSourceBlock();b.rendered&&b.updateDisabled();a.rendered&&a.updateDisabled();b.rendered&&a.rendered&&(this.type==Blockly.NEXT_STATEMENT||this.type==Blockly.PREVIOUS_STATEMENT?a.render():b.render())}; -Blockly.RenderedConnection.prototype.onCheckChanged_=function(){!this.isConnected()||this.targetConnection&&this.checkType(this.targetConnection)||((this.isSuperior()?this.targetBlock():this.sourceBlock_).unplug(),this.sourceBlock_.bumpNeighbours())};Blockly.Marker=function(){this.drawer_=this.curNode_=this.colour=null;this.type="marker"};Blockly.Marker.prototype.setDrawer=function(a){this.drawer_=a};Blockly.Marker.prototype.getDrawer=function(){return this.drawer_};Blockly.Marker.prototype.getCurNode=function(){return this.curNode_};Blockly.Marker.prototype.setCurNode=function(a){var b=this.curNode_;this.curNode_=a;this.drawer_&&this.drawer_.draw(b,this.curNode_)}; -Blockly.Marker.prototype.draw=function(){this.drawer_&&this.drawer_.draw(this.curNode_,this.curNode_)};Blockly.Marker.prototype.hide=function(){this.drawer_&&this.drawer_.hide()};Blockly.Marker.prototype.dispose=function(){this.getDrawer()&&this.getDrawer().dispose()};Blockly.Cursor=function(){Blockly.Cursor.superClass_.constructor.call(this);this.type="cursor"};Blockly.utils.object.inherits(Blockly.Cursor,Blockly.Marker);Blockly.Cursor.prototype.next=function(){var a=this.getCurNode();if(!a)return null;for(a=a.next();a&&a.next()&&(a.getType()==Blockly.ASTNode.types.NEXT||a.getType()==Blockly.ASTNode.types.BLOCK);)a=a.next();a&&this.setCurNode(a);return a}; -Blockly.Cursor.prototype.in=function(){var a=this.getCurNode();if(!a)return null;if(a.getType()==Blockly.ASTNode.types.PREVIOUS||a.getType()==Blockly.ASTNode.types.OUTPUT)a=a.next();(a=a.in())&&this.setCurNode(a);return a};Blockly.Cursor.prototype.prev=function(){var a=this.getCurNode();if(!a)return null;for(a=a.prev();a&&a.prev()&&(a.getType()==Blockly.ASTNode.types.NEXT||a.getType()==Blockly.ASTNode.types.BLOCK);)a=a.prev();a&&this.setCurNode(a);return a}; -Blockly.Cursor.prototype.out=function(){var a=this.getCurNode();if(!a)return null;(a=a.out())&&a.getType()==Blockly.ASTNode.types.BLOCK&&(a=a.prev()||a);a&&this.setCurNode(a);return a}; -Blockly.Cursor.prototype.onBlocklyAction=function(a){if(this.getCurNode()&&this.getCurNode().getType()===Blockly.ASTNode.types.FIELD&&this.getCurNode().getLocation().onBlocklyAction(a))return!0;switch(a.name){case Blockly.navigation.actionNames.PREVIOUS:return this.prev(),!0;case Blockly.navigation.actionNames.OUT:return this.out(),!0;case Blockly.navigation.actionNames.NEXT:return this.next(),!0;case Blockly.navigation.actionNames.IN:return this.in(),!0;default:return!1}};Blockly.BasicCursor=function(){Blockly.BasicCursor.superClass_.constructor.call(this)};Blockly.utils.object.inherits(Blockly.BasicCursor,Blockly.Cursor);Blockly.BasicCursor.prototype.next=function(){var a=this.getCurNode();if(!a)return null;(a=this.getNextNode_(a,this.validNode_))&&this.setCurNode(a);return a};Blockly.BasicCursor.prototype.in=function(){return this.next()}; -Blockly.BasicCursor.prototype.prev=function(){var a=this.getCurNode();if(!a)return null;(a=this.getPreviousNode_(a,this.validNode_))&&this.setCurNode(a);return a};Blockly.BasicCursor.prototype.out=function(){return this.prev()};Blockly.BasicCursor.prototype.getNextNode_=function(a,b){if(!a)return null;var c=a.in()||a.next();if(b(c))return c;if(c)return this.getNextNode_(c,b);a=this.findSiblingOrParent_(a.out());return b(a)?a:a?this.getNextNode_(a,b):null}; -Blockly.BasicCursor.prototype.getPreviousNode_=function(a,b){if(!a)return null;var c=a.prev();c=c?this.getRightMostChild_(c):a.out();return b(c)?c:c?this.getPreviousNode_(c,b):null};Blockly.BasicCursor.prototype.validNode_=function(a){var b=!1;a=a&&a.getType();if(a==Blockly.ASTNode.types.OUTPUT||a==Blockly.ASTNode.types.INPUT||a==Blockly.ASTNode.types.FIELD||a==Blockly.ASTNode.types.NEXT||a==Blockly.ASTNode.types.PREVIOUS||a==Blockly.ASTNode.types.WORKSPACE)b=!0;return b}; -Blockly.BasicCursor.prototype.findSiblingOrParent_=function(a){if(!a)return null;var b=a.next();return b?b:this.findSiblingOrParent_(a.out())};Blockly.BasicCursor.prototype.getRightMostChild_=function(a){if(!a.in())return a;for(a=a.in();a.next();)a=a.next();return this.getRightMostChild_(a)};Blockly.TabNavigateCursor=function(){Blockly.TabNavigateCursor.superClass_.constructor.call(this)};Blockly.utils.object.inherits(Blockly.TabNavigateCursor,Blockly.BasicCursor);Blockly.TabNavigateCursor.prototype.validNode_=function(a){var b=!1,c=a&&a.getType();a&&(a=a.getLocation(),c==Blockly.ASTNode.types.FIELD&&a&&a.isTabNavigable()&&a.isClickable()&&(b=!0));return b};Blockly.utils.Rect=function(a,b,c,d){this.top=a;this.bottom=b;this.left=c;this.right=d};Blockly.utils.Rect.prototype.contains=function(a,b){return a>=this.left&&a<=this.right&&b>=this.top&&b<=this.bottom};Blockly.BlockSvg=function(a,b,c){this.svgGroup_=Blockly.utils.dom.createSvgElement("g",{},null);this.svgGroup_.translate_="";this.style=a.getRenderer().getConstants().getBlockStyle(null);this.pathObject=a.getRenderer().makePathObject(this.svgGroup_,this.style);this.rendered=!1;this.workspace=a;this.previousConnection=this.nextConnection=this.outputConnection=null;this.useDragSurface_=Blockly.utils.is3dSupported()&&!!a.getBlockDragSurface();var d=this.pathObject.svgPath;d.tooltip=this;Blockly.Tooltip.bindMouseEvents(d); -Blockly.BlockSvg.superClass_.constructor.call(this,a,b,c);this.svgGroup_.dataset&&(this.svgGroup_.dataset.id=this.id)};Blockly.utils.object.inherits(Blockly.BlockSvg,Blockly.Block);Blockly.BlockSvg.prototype.height=0;Blockly.BlockSvg.prototype.width=0;Blockly.BlockSvg.prototype.dragStartXY_=null;Blockly.BlockSvg.prototype.warningTextDb_=null;Blockly.BlockSvg.INLINE=-1;Blockly.BlockSvg.COLLAPSED_WARNING_ID="TEMP_COLLAPSED_WARNING_"; -Blockly.BlockSvg.prototype.initSvg=function(){if(!this.workspace.rendered)throw TypeError("Workspace is headless.");for(var a=0,b;b=this.inputList[a];a++)b.init();b=this.getIcons();for(a=0;a{setTimeout(fireNow$$module$build$src$core$events$utils,0)})}catch(b){setTimeout(fireNow$$module$build$src$core$events$utils,0)}FIRE_QUEUE$$module$build$src$core$events$utils.push(a)}}; +fireNow$$module$build$src$core$events$utils=function(){const a=filter$$module$build$src$core$events$utils(FIRE_QUEUE$$module$build$src$core$events$utils,!0);FIRE_QUEUE$$module$build$src$core$events$utils.length=0;for(let b=0,c;c=a[b];b++){if(!c.workspaceId)continue;const d=getWorkspaceById$$module$build$src$core$common(c.workspaceId);d&&d.fireChangeListener(c)}}; +filter$$module$build$src$core$events$utils=function(a,b){a=a.slice();b||a.reverse();const c=[],d=Object.create(null);for(let g=0,h;h=a[g];g++)if(!h.isNull()){var e=[h.isUiEvent?UI$$module$build$src$core$events$utils:h.type,h.blockId,h.workspaceId].join(" "),f=d[e];const k=f?f.event:null;if(!f)d[e]={event:h,index:g},c.push(h);else if(h.type===MOVE$$module$build$src$core$events$utils&&f.index===g-1)e=h,k.newParentId=e.newParentId,k.newInputName=e.newInputName,k.newCoordinate=e.newCoordinate,f.index= +g;else if(h.type===CHANGE$$module$build$src$core$events$utils&&h.element===k.element&&h.name===k.name)k.newValue=h.newValue;else if(h.type===VIEWPORT_CHANGE$$module$build$src$core$events$utils)f=h,k.viewTop=f.viewTop,k.viewLeft=f.viewLeft,k.scale=f.scale,k.oldScale=f.oldScale;else if(h.type!==CLICK$$module$build$src$core$events$utils||k.type!==BUBBLE_OPEN$$module$build$src$core$events$utils)d[e]={event:h,index:g},c.push(h)}a=c.filter(function(g){return!g.isNull()});b||a.reverse();for(let g=1,h;h= +a[g];g++)h.type===CHANGE$$module$build$src$core$events$utils&&"mutation"===h.element&&a.unshift(a.splice(g,1)[0]);return a};clearPendingUndo$$module$build$src$core$events$utils=function(){for(let a=0,b;b=FIRE_QUEUE$$module$build$src$core$events$utils[a];a++)b.recordUndo=!1};disable$$module$build$src$core$events$utils=function(){disabled$$module$build$src$core$events$utils++};enable$$module$build$src$core$events$utils=function(){disabled$$module$build$src$core$events$utils--}; +isEnabled$$module$build$src$core$events$utils=function(){return 0===disabled$$module$build$src$core$events$utils};getGroup$$module$build$src$core$events$utils=function(){return group$$module$build$src$core$events$utils};setGroup$$module$build$src$core$events$utils=function(a){TEST_ONLY$$module$build$src$core$events$utils.setGroupInternal(a)}; +setGroupInternal$$module$build$src$core$events$utils=function(a){group$$module$build$src$core$events$utils="boolean"===typeof a?a?genUid$$module$build$src$core$utils$idgenerator():"":a};getDescendantIds$$module$build$src$core$events$utils=function(a){const b=[];a=a.getDescendants(!1);for(let c=0,d;d=a[c];c++)b[c]=d.id;return b}; +fromJson$$module$build$src$core$events$utils=function(a,b){var c=get$$module$build$src$core$events$utils(a.type);if(!c)throw Error("Unknown event type.");if(eventClassHasStaticFromJson$$module$build$src$core$events$utils(c))return c.fromJson(a,b);c=new c;c.fromJson(a);c.workspaceId=b.id;return c};eventClassHasStaticFromJson$$module$build$src$core$events$utils=function(a){return Object.getOwnPropertyDescriptors(a).fromJson&&"function"===typeof a.fromJson}; +get$$module$build$src$core$events$utils=function(a){const b=getClass$$module$build$src$core$registry(Type$$module$build$src$core$registry.EVENT,a);if(!b)throw Error(`Event type ${a} not found in registry.`);return b}; +disableOrphans$$module$build$src$core$events$utils=function(a){if((a.type===MOVE$$module$build$src$core$events$utils||a.type===CREATE$$module$build$src$core$events$utils)&&a.workspaceId){var b=getWorkspaceById$$module$build$src$core$common(a.workspaceId);if(!a.blockId)throw Error("Encountered a blockEvent without a proper blockId");if(a=b.getBlockById(a.blockId)){const c=recordUndo$$module$build$src$core$events$utils;try{recordUndo$$module$build$src$core$events$utils=!1;const d=a.getParent();if(d&& +d.isEnabled()){const e=a.getDescendants(!1);for(let f=0,g;g=e[f];f++)g.setEnabled(!0)}else if((a.outputConnection||a.previousConnection)&&!b.isDragging()){do a.setEnabled(!1),a=a.getNextBlock();while(a)}}finally{recordUndo$$module$build$src$core$events$utils=c}}}}; +injectDependencies$$module$build$src$core$utils$xml=function(a){({document:document$$module$build$src$core$utils$xml=document$$module$build$src$core$utils$xml,DOMParser:DOMParser$$module$build$src$core$utils$xml=DOMParser$$module$build$src$core$utils$xml,XMLSerializer:XMLSerializer$$module$build$src$core$utils$xml=XMLSerializer$$module$build$src$core$utils$xml}=a)}; +getDocument$$module$build$src$core$utils$xml=function(){warn$$module$build$src$core$utils$deprecation("Blockly.utils.xml.getDocument","version 9","version 10");return document$$module$build$src$core$utils$xml};setDocument$$module$build$src$core$utils$xml=function(a){warn$$module$build$src$core$utils$deprecation("Blockly.utils.xml.setDocument","version 9","version 10");document$$module$build$src$core$utils$xml=a}; +$.createElement$$module$build$src$core$utils$xml=function(a){return document$$module$build$src$core$utils$xml.createElementNS(NAME_SPACE$$module$build$src$core$utils$xml,a)};createTextNode$$module$build$src$core$utils$xml=function(a){return document$$module$build$src$core$utils$xml.createTextNode(a)}; +textToDom$$module$build$src$core$utils$xml=function(a){const b=textToDomDocument$$module$build$src$core$utils$xml(a);if(!b||!b.documentElement||b.getElementsByTagName("parsererror").length)throw Error("textToDom was unable to parse: "+a);return b.documentElement};textToDomDocument$$module$build$src$core$utils$xml=function(a){return(new DOMParser$$module$build$src$core$utils$xml).parseFromString(a,"text/xml")};domToText$$module$build$src$core$utils$xml=function(a){return(new XMLSerializer$$module$build$src$core$utils$xml).serializeToString(a)}; +createSvgElement$$module$build$src$core$utils$dom=function(a,b,c){a=document.createElementNS(SVG_NS$$module$build$src$core$utils$dom,`${a}`);for(const d in b)a.setAttribute(d,`${b[d]}`);c&&c.appendChild(a);return a};addClass$$module$build$src$core$utils$dom=function(a,b){b=b.split(" ");if(b.every(c=>a.classList.contains(c)))return!1;a.classList.add(...b);return!0};removeClasses$$module$build$src$core$utils$dom=function(a,b){a.classList.remove(...b.split(" "))}; +removeClass$$module$build$src$core$utils$dom=function(a,b){b=b.split(" ");if(b.every(c=>!a.classList.contains(c)))return!1;a.classList.remove(...b);return!0};hasClass$$module$build$src$core$utils$dom=function(a,b){return a.classList.contains(b)};removeNode$$module$build$src$core$utils$dom=function(a){return a&&a.parentNode?a.parentNode.removeChild(a):null}; +insertAfter$$module$build$src$core$utils$dom=function(a,b){const c=b.nextSibling;b=b.parentNode;if(!b)throw Error("Reference node has no parent.");c?b.insertBefore(a,c):b.appendChild(a)};containsNode$$module$build$src$core$utils$dom=function(a,b){return!!(a.compareDocumentPosition(b)&NodeType$$module$build$src$core$utils$dom.DOCUMENT_POSITION_CONTAINED_BY)};setCssTransform$$module$build$src$core$utils$dom=function(a,b){a.style.transform=b;a.style["-webkit-transform"]=b}; +startTextWidthCache$$module$build$src$core$utils$dom=function(){cacheReference$$module$build$src$core$utils$dom++;cacheWidths$$module$build$src$core$utils$dom||(cacheWidths$$module$build$src$core$utils$dom=Object.create(null))};stopTextWidthCache$$module$build$src$core$utils$dom=function(){cacheReference$$module$build$src$core$utils$dom--;cacheReference$$module$build$src$core$utils$dom||(cacheWidths$$module$build$src$core$utils$dom=null)}; +getTextWidth$$module$build$src$core$utils$dom=function(a){const b=a.textContent+"\n"+a.className.baseVal;let c;if(cacheWidths$$module$build$src$core$utils$dom&&(c=cacheWidths$$module$build$src$core$utils$dom[b]))return c;try{c=a.getComputedTextLength()}catch(d){return 8*a.textContent.length}cacheWidths$$module$build$src$core$utils$dom&&(cacheWidths$$module$build$src$core$utils$dom[b]=c);return c}; +getFastTextWidth$$module$build$src$core$utils$dom=function(a,b,c,d){return getFastTextWidthWithSizeString$$module$build$src$core$utils$dom(a,b+"pt",c,d)}; +getFastTextWidthWithSizeString$$module$build$src$core$utils$dom=function(a,b,c,d){const e=a.textContent;a=e+"\n"+a.className.baseVal;var f;if(cacheWidths$$module$build$src$core$utils$dom&&(f=cacheWidths$$module$build$src$core$utils$dom[a]))return f;canvasContext$$module$build$src$core$utils$dom||(f=document.createElement("canvas"),f.className="blocklyComputeCanvas",document.body.appendChild(f),canvasContext$$module$build$src$core$utils$dom=f.getContext("2d"));canvasContext$$module$build$src$core$utils$dom.font= +c+" "+b+" "+d;f=e?canvasContext$$module$build$src$core$utils$dom.measureText(e).width:0;cacheWidths$$module$build$src$core$utils$dom&&(cacheWidths$$module$build$src$core$utils$dom[a]=f);return f}; +measureFontMetrics$$module$build$src$core$utils$dom=function(a,b,c,d){const e=document.createElement("span");e.style.font=c+" "+b+" "+d;e.textContent=a;a=document.createElement("div");a.style.width="1px";a.style.height="0";b=document.createElement("div");b.setAttribute("style","position: fixed; top: 0; left: 0; display: flex;");b.appendChild(e);b.appendChild(a);document.body.appendChild(b);c={height:0,baseline:0};try{b.style.alignItems="baseline",c.baseline=a.offsetTop-e.offsetTop,b.style.alignItems= +"flex-end",c.height=a.offsetTop-e.offsetTop}finally{document.body.removeChild(b)}return c};alert$$module$build$src$core$dialog=function(a,b){alertImplementation$$module$build$src$core$dialog(a,b)};setAlert$$module$build$src$core$dialog=function(a){alertImplementation$$module$build$src$core$dialog=a};confirm$$module$build$src$core$dialog=function(a,b){TEST_ONLY$$module$build$src$core$dialog.confirmInternal(a,b)}; +confirmInternal$$module$build$src$core$dialog=function(a,b){confirmImplementation$$module$build$src$core$dialog(a,b)};setConfirm$$module$build$src$core$dialog=function(a){confirmImplementation$$module$build$src$core$dialog=a};prompt$$module$build$src$core$dialog=function(a,b,c){promptImplementation$$module$build$src$core$dialog(a,b,c)};setPrompt$$module$build$src$core$dialog=function(a){promptImplementation$$module$build$src$core$dialog=a}; +isVariableBackedParameterModel$$module$build$src$core$interfaces$i_variable_backed_parameter_model=function(a){return void 0!==a.getVariableModel};isLegacyProcedureDefBlock$$module$build$src$core$interfaces$i_legacy_procedure_blocks=function(a){return void 0!==a.getProcedureDef};isLegacyProcedureCallBlock$$module$build$src$core$interfaces$i_legacy_procedure_blocks=function(a){return void 0!==a.getProcedureCall&&void 0!==a.renameProcedure}; +allUsedVarModels$$module$build$src$core$variables=function(a){a=a.getAllBlocks(!1);const b=new Set;for(let c=0;c1'),d.appendChild(c),b.push(d));if(Blocks$$module$build$src$core$blocks.variables_get){a.sort(VariableModel$$module$build$src$core$variable_model.compareByName); +for(let e=0,f;f=a[e];e++)c=$.createElement$$module$build$src$core$utils$xml("block"),c.setAttribute("type","variables_get"),c.setAttribute("gap","8"),c.appendChild(generateVariableFieldDom$$module$build$src$core$variables(f)),b.push(c)}}return b};generateUniqueName$$module$build$src$core$variables=function(a){return TEST_ONLY$$module$build$src$core$variables.generateUniqueNameInternal(a)}; +generateUniqueNameInternal$$module$build$src$core$variables=function(a){return generateUniqueNameFromOptions$$module$build$src$core$variables(VAR_LETTER_OPTIONS$$module$build$src$core$variables.charAt(0),a.getAllVariableNames())}; +generateUniqueNameFromOptions$$module$build$src$core$variables=function(a,b){if(!b.length)return a;const c=VAR_LETTER_OPTIONS$$module$build$src$core$variables;let d="",e=c.indexOf(a);for(;;){let f=!1;for(let g=0;gf.getVariableModel().name);if(d&&(c=d.some(f=>f.toLowerCase()===a),d=d.some(f=>f.toLowerCase()===b),c&&d))return e.getName()}return null}; +checkForConflictingParamWithLegacyProcedures$$module$build$src$core$variables=function(a,b,c){a=a.toLowerCase();b=b.toLowerCase();c=c.getAllBlocks(!1);for(const e of c){if(!isLegacyProcedureDefBlock$$module$build$src$core$interfaces$i_legacy_procedure_blocks(e))continue;c=e.getProcedureDef();var d=c[1];const f=d.some(g=>g.toLowerCase()===a);d=d.some(g=>g.toLowerCase()===b);if(f&&d)return c[0]}return null}; +generateVariableFieldDom$$module$build$src$core$variables=function(a){const b=$.createElement$$module$build$src$core$utils$xml("field");b.setAttribute("name","VAR");b.setAttribute("id",a.getId());b.setAttribute("variabletype",a.type);a=createTextNode$$module$build$src$core$utils$xml(a.name);b.appendChild(a);return b}; +getOrCreateVariablePackage$$module$build$src$core$variables=function(a,b,c,d){let e=getVariable$$module$build$src$core$variables(a,b,c,d);e||(e=createVariable$$module$build$src$core$variables(a,b,c,d));return e}; +getVariable$$module$build$src$core$variables=function(a,b,c,d){const e=a.getPotentialVariableMap();let f=null;if(b&&(f=a.getVariableById(b),!f&&e&&(f=e.getVariableById(b)),f))return f;if(c){if(void 0===d)throw Error("Tried to look up a variable by name without a type");f=a.getVariable(c,d);!f&&e&&(f=e.getVariable(c,d))}return f}; +createVariable$$module$build$src$core$variables=function(a,b,c,d){const e=a.getPotentialVariableMap();c||(c=generateUniqueName$$module$build$src$core$variables(a.isFlyout?a.targetWorkspace:a));return e?e.createVariable(c,d,b):a.createVariable(c,d,b)};getAddedVariables$$module$build$src$core$variables=function(a,b){a=a.getAllVariables();const c=[];if(b.length!==a.length)for(let d=0;d>>/g,a),content$$module$build$src$core$css="",a=document.createElement("style"),a.id="blockly-common-style",b=document.createTextNode(b),a.appendChild(b),document.head.insertBefore(a,document.head.firstChild)))};getSize$$module$build$src$core$utils$style=function(a){return TEST_ONLY$$module$build$src$core$utils$style.getSizeInternal(a)}; +getSizeInternal$$module$build$src$core$utils$style=function(a){if("none"!==getComputedStyle$$module$build$src$core$utils$style(a,"display"))return getSizeWithDisplay$$module$build$src$core$utils$style(a);const b=a.style,c=b.display,d=b.visibility,e=b.position;b.visibility="hidden";b.position="absolute";b.display="inline";const f=a.offsetWidth;a=a.offsetHeight;b.display=c;b.position=e;b.visibility=d;return new Size$$module$build$src$core$utils$size(f,a)}; +getSizeWithDisplay$$module$build$src$core$utils$style=function(a){return new Size$$module$build$src$core$utils$size(a.offsetWidth,a.offsetHeight)};getComputedStyle$$module$build$src$core$utils$style=function(a,b){a=window.getComputedStyle(a);return a[b]||a.getPropertyValue(b)};getCascadedStyle$$module$build$src$core$utils$style=function(a,b){warn$$module$build$src$core$utils$deprecation("Blockly.utils.style.getCascadedStyle","version 9","version 10");return a.currentStyle?a.currentStyle[b]:""}; +getPageOffset$$module$build$src$core$utils$style=function(a){const b=new Coordinate$$module$build$src$core$utils$coordinate(0,0);a=a.getBoundingClientRect();var c=document.documentElement;c=new Coordinate$$module$build$src$core$utils$coordinate(window.pageXOffset||c.scrollLeft,window.pageYOffset||c.scrollTop);b.x=a.left+c.x;b.y=a.top+c.y;return b}; +getViewportPageOffset$$module$build$src$core$utils$style=function(){const a=document.body,b=document.documentElement;return new Coordinate$$module$build$src$core$utils$coordinate(a.scrollLeft||b.scrollLeft,a.scrollTop||b.scrollTop)}; +getBorderBox$$module$build$src$core$utils$style=function(a){const b=parseFloat(getComputedStyle$$module$build$src$core$utils$style(a,"borderLeftWidth")),c=parseFloat(getComputedStyle$$module$build$src$core$utils$style(a,"borderRightWidth")),d=parseFloat(getComputedStyle$$module$build$src$core$utils$style(a,"borderTopWidth"));a=parseFloat(getComputedStyle$$module$build$src$core$utils$style(a,"borderBottomWidth"));return new Rect$$module$build$src$core$utils$rect(d,a,b,c)}; +scrollIntoContainerView$$module$build$src$core$utils$style=function(a,b,c){a=getContainerOffsetToScrollInto$$module$build$src$core$utils$style(a,b,c);b.scrollLeft=a.x;b.scrollTop=a.y}; +getContainerOffsetToScrollInto$$module$build$src$core$utils$style=function(a,b,c){var d=getPageOffset$$module$build$src$core$utils$style(a),e=getPageOffset$$module$build$src$core$utils$style(b),f=getBorderBox$$module$build$src$core$utils$style(b);const g=d.x-e.x-f.left;d=d.y-e.y-f.top;e=getSizeWithDisplay$$module$build$src$core$utils$style(a);a=b.clientWidth-e.width;e=b.clientHeight-e.height;f=b.scrollLeft;b=b.scrollTop;c?(f+=g-a/2,b+=d-e/2):(f+=Math.min(g,Math.max(g-a,0)),b+=Math.min(d,Math.max(d- +e,0)));return new Coordinate$$module$build$src$core$utils$coordinate(f,b)}; +getRelativeXY$$module$build$src$core$utils$svg_math=function(a){const b=new Coordinate$$module$build$src$core$utils$coordinate(0,0);var c=a.x&&a.getAttribute("x");const d=a.y&&a.getAttribute("y");c&&(b.x=parseInt(c));d&&(b.y=parseInt(d));if(c=(c=a.getAttribute("transform"))&&c.match(XY_REGEX$$module$build$src$core$utils$svg_math))b.x+=Number(c[1]),c[3]&&(b.y+=Number(c[3]));(a=a.getAttribute("style"))&&-1/g,"<$1$2>")}; +domToPrettyText$$module$build$src$core$xml=function(a){a=domToText$$module$build$src$core$xml(a).split("<");let b="";for(let c=1;c"!==d.slice(-2)&&(b+=" ")}a=a.join("\n");a=a.replace(/(<(\w+)\b[^>]*>[^\n]*)\n *<\/\2>/g,"$1");return a.replace(/^\n/,"")}; +textToDom$$module$build$src$core$xml=function(a){warn$$module$build$src$core$utils$deprecation("Blockly.Xml.textToDom","version 9","version 10","Use Blockly.utils.xml.textToDom instead");return textToDom$$module$build$src$core$utils$xml(a)};clearWorkspaceAndLoadFromXml$$module$build$src$core$xml=function(a,b){b.setResizesEnabled(!1);b.clear();a=domToWorkspace$$module$build$src$core$xml(a,b);b.setResizesEnabled(!0);return a}; +domToWorkspace$$module$build$src$core$xml=function(a,b){let c=0;b.RTL&&(c=b.getWidth());const d=[];startTextWidthCache$$module$build$src$core$utils$dom();const e=getGroup$$module$build$src$core$events$utils();e||setGroup$$module$build$src$core$events$utils(!0);b.setResizesEnabled&&b.setResizesEnabled(!1);let f=!0;try{for(let g=0,h;h=a.childNodes[g];g++){const k=h.nodeName.toLowerCase(),l=h;if("block"===k||"shadow"===k&&!getRecordUndo$$module$build$src$core$events$utils()){const m=domToBlock$$module$build$src$core$xml(l, +b);d.push(m.id);let n;const p=parseInt(null!=(n=l.getAttribute("x"))?n:"10",10);let q;const r=parseInt(null!=(q=l.getAttribute("y"))?q:"10",10);isNaN(p)||isNaN(r)||m.moveBy(b.RTL?c-p:p,r);f=!1}else{if("shadow"===k)throw TypeError("Shadow block cannot be a top-level block.");if("comment"===k)b.rendered?WorkspaceCommentSvg$$module$build$src$core$workspace_comment_svg.fromXmlRendered(l,b,c):WorkspaceComment$$module$build$src$core$workspace_comment.fromXml(l,b);else if("variables"===k){if(f)domToVariables$$module$build$src$core$xml(l, +b);else throw Error("'variables' tag must exist once before block and shadow tag elements in the workspace XML, but it was found in another location.");f=!1}}}}finally{setGroup$$module$build$src$core$events$utils(e),stopTextWidthCache$$module$build$src$core$utils$dom()}b.setResizesEnabled&&b.setResizesEnabled(!0);fire$$module$build$src$core$events$utils(new (get$$module$build$src$core$events$utils(FINISHED_LOADING$$module$build$src$core$events$utils))(b));return d}; +appendDomToWorkspace$$module$build$src$core$xml=function(a,b){if(!b.getBlocksBoundingBox)return domToWorkspace$$module$build$src$core$xml(a,b);var c=b.getBlocksBoundingBox();a=domToWorkspace$$module$build$src$core$xml(a,b);if(c&&c.top!==c.bottom){var d=c.bottom;c=b.RTL?c.right:c.left;var e=Infinity;let f=-Infinity,g=Infinity;for(let h=0;hf&&(f=k.x)}d=d-g+10;c=b.RTL?c-f:c-e;for(e=0;e{g.disposed||g.setConnectionTracking(!0)},1);return g}; +appendPrivate$$module$build$src$core$serialization$blocks=function(a,b,{parentConnection:c,isShadow:d=!1}={}){if(!a.type)throw new MissingBlockType$$module$build$src$core$serialization$exceptions(a);const e=b.newBlock(a.type,a.id);e.setShadow(d);loadCoords$$module$build$src$core$serialization$blocks(e,a);loadAttributes$$module$build$src$core$serialization$blocks(e,a);loadExtraState$$module$build$src$core$serialization$blocks(e,a);tryToConnectParent$$module$build$src$core$serialization$blocks(c,e, +a);loadIcons$$module$build$src$core$serialization$blocks(e,a);loadFields$$module$build$src$core$serialization$blocks(e,a);loadInputBlocks$$module$build$src$core$serialization$blocks(e,a);loadNextBlocks$$module$build$src$core$serialization$blocks(e,a);initBlock$$module$build$src$core$serialization$blocks(e,b.rendered);return e};loadCoords$$module$build$src$core$serialization$blocks=function(a,b){let c=void 0===b.x?0:b.x;b=void 0===b.y?0:b.y;const d=a.workspace;c=d.RTL?d.getWidth()-c:c;a.moveBy(c,b)}; +loadAttributes$$module$build$src$core$serialization$blocks=function(a,b){b.collapsed&&a.setCollapsed(!0);!1===b.deletable&&a.setDeletable(!1);!1===b.movable&&a.setMovable(!1);!1===b.editable&&a.setEditable(!1);!1===b.enabled&&a.setEnabled(!1);void 0!==b.inline&&a.setInputsInline(b.inline);void 0!==b.data&&(a.data=b.data)};loadExtraState$$module$build$src$core$serialization$blocks=function(a,b){b.extraState&&(a.loadExtraState?a.loadExtraState(b.extraState):a.domToMutation&&a.domToMutation(textToDom$$module$build$src$core$utils$xml(b.extraState)))}; +tryToConnectParent$$module$build$src$core$serialization$blocks=function(a,b,c){if(a){if(a.getSourceBlock().isShadow()&&!b.isShadow())throw new RealChildOfShadow$$module$build$src$core$serialization$exceptions(c);if(a.type===inputTypes$$module$build$src$core$input_types.VALUE){var d=b.outputConnection;if(!d)throw new MissingConnection$$module$build$src$core$serialization$exceptions("output",b,c);}else if(d=b.previousConnection,!d)throw new MissingConnection$$module$build$src$core$serialization$exceptions("previous", +b,c);if(!a.connect(d)){const e=b.workspace.connectionChecker;throw new BadConnectionCheck$$module$build$src$core$serialization$exceptions(e.getErrorMessage(e.canConnectWithReason(d,a,!1),d,a),a.type===inputTypes$$module$build$src$core$input_types.VALUE?"output connection":"previous connection",b,c);}}}; +loadIcons$$module$build$src$core$serialization$blocks=function(a,b){b.icons&&(b=b.icons.comment)&&(a.setCommentText(b.text),"pinned"in b&&(a.commentModel.pinned=b.pinned),"width"in b&&"height"in b&&(a.commentModel.size=new Size$$module$build$src$core$utils$size(b.width,b.height)),b.pinned&&a.rendered&&!a.isInFlyout&&setTimeout(()=>a.getCommentIcon().setVisible(!0),1))}; +loadFields$$module$build$src$core$serialization$blocks=function(a,b){if(b.fields){var c=Object.keys(b.fields);for(let d=0;db&&(b=c[d].length);var e=-Infinity;let f,g=1;do{d=e;f=a;a=[];e=c.length/g;let h=1;for(let k=0;kd);return f}; +wrapScore$$module$build$src$core$utils$string=function(a,b,c){const d=[0],e=[];for(var f=0;fd&&(d=h,e=g)}return e?wrapMutate$$module$build$src$core$utils$string(a,e,c):b}; +wrapToText$$module$build$src$core$utils$string=function(a,b){const c=[];for(let d=0;dRADIUS_OK$$module$build$src$core$tooltip&&hide$$module$build$src$core$tooltip()}else poisonedElement$$module$build$src$core$tooltip!==element$$module$build$src$core$tooltip&& +(clearTimeout(showPid$$module$build$src$core$tooltip),lastX$$module$build$src$core$tooltip=a.pageX,lastY$$module$build$src$core$tooltip=a.pageY,showPid$$module$build$src$core$tooltip=setTimeout(show$$module$build$src$core$tooltip,HOVER_MS$$module$build$src$core$tooltip))};dispose$$module$build$src$core$tooltip=function(){poisonedElement$$module$build$src$core$tooltip=element$$module$build$src$core$tooltip=null;hide$$module$build$src$core$tooltip()}; +hide$$module$build$src$core$tooltip=function(){visible$$module$build$src$core$tooltip&&(visible$$module$build$src$core$tooltip=!1,containerDiv$$module$build$src$core$tooltip&&(containerDiv$$module$build$src$core$tooltip.style.display="none"));showPid$$module$build$src$core$tooltip&&(clearTimeout(showPid$$module$build$src$core$tooltip),showPid$$module$build$src$core$tooltip=0)}; +block$$module$build$src$core$tooltip=function(){hide$$module$build$src$core$tooltip();blocked$$module$build$src$core$tooltip=!0};unblock$$module$build$src$core$tooltip=function(){blocked$$module$build$src$core$tooltip=!1}; +renderContent$$module$build$src$core$tooltip=function(){containerDiv$$module$build$src$core$tooltip&&element$$module$build$src$core$tooltip&&("function"===typeof customTooltip$$module$build$src$core$tooltip?customTooltip$$module$build$src$core$tooltip(containerDiv$$module$build$src$core$tooltip,element$$module$build$src$core$tooltip):renderDefaultContent$$module$build$src$core$tooltip())}; +renderDefaultContent$$module$build$src$core$tooltip=function(){var a=getTooltipOfObject$$module$build$src$core$tooltip(element$$module$build$src$core$tooltip);a=wrap$$module$build$src$core$utils$string(a,LIMIT$$module$build$src$core$tooltip);a=a.split("\n");for(let b=0;bc+window.scrollY&&(e-=containerDiv$$module$build$src$core$tooltip.offsetHeight+ +2*OFFSET_Y$$module$build$src$core$tooltip);a?d=Math.max(MARGINS$$module$build$src$core$tooltip-window.scrollX,d):d+containerDiv$$module$build$src$core$tooltip.offsetWidth>b+window.scrollX-2*MARGINS$$module$build$src$core$tooltip&&(d=b-containerDiv$$module$build$src$core$tooltip.offsetWidth-2*MARGINS$$module$build$src$core$tooltip);return{x:d,y:e}}; +show$$module$build$src$core$tooltip=function(){if(!blocked$$module$build$src$core$tooltip&&(poisonedElement$$module$build$src$core$tooltip=element$$module$build$src$core$tooltip,containerDiv$$module$build$src$core$tooltip)){containerDiv$$module$build$src$core$tooltip.textContent="";renderContent$$module$build$src$core$tooltip();var a=element$$module$build$src$core$tooltip.RTL;containerDiv$$module$build$src$core$tooltip.style.direction=a?"rtl":"ltr";containerDiv$$module$build$src$core$tooltip.style.display= +"block";visible$$module$build$src$core$tooltip=!0;var {x:b,y:c}=getPosition$$module$build$src$core$tooltip(a);containerDiv$$module$build$src$core$tooltip.style.left=b+"px";containerDiv$$module$build$src$core$tooltip.style.top=c+"px"}};getHsvSaturation$$module$build$src$core$utils$colour=function(){return hsvSaturation$$module$build$src$core$utils$colour};setHsvSaturation$$module$build$src$core$utils$colour=function(a){hsvSaturation$$module$build$src$core$utils$colour=a}; +getHsvValue$$module$build$src$core$utils$colour=function(){return hsvValue$$module$build$src$core$utils$colour};setHsvValue$$module$build$src$core$utils$colour=function(a){hsvValue$$module$build$src$core$utils$colour=a}; +parse$$module$build$src$core$utils$colour=function(a){a=`${a}`.toLowerCase().trim();var b=names$$module$build$src$core$utils$colour[a];if(b)return b;b="0x"===a.substring(0,2)?"#"+a.substring(2):a;b="#"===b[0]?b:"#"+b;if(/^#[0-9a-f]{6}$/.test(b))return b;if(/^#[0-9a-f]{3}$/.test(b))return["#",b[1],b[1],b[2],b[2],b[3],b[3]].join("");var c=a.match(/^(?:rgb)?\s*\(\s*(\d+)\s*,\s*(\d+)\s*,\s*(\d+)\s*\)$/);return c&&(a=Number(c[1]),b=Number(c[2]),c=Number(c[3]),0<=a&&256>a&&0<=b&&256>b&&0<=c&&256>c)?rgbToHex$$module$build$src$core$utils$colour(a, +b,c):null};rgbToHex$$module$build$src$core$utils$colour=function(a,b,c){b=a<<16|b<<8|c;return 16>a?"#"+(16777216|b).toString(16).substr(1):"#"+b.toString(16)};hexToRgb$$module$build$src$core$utils$colour=function(a){a=parse$$module$build$src$core$utils$colour(a);if(!a)return[0,0,0];a=parseInt(a.substr(1),16);return[a>>16,a>>8&255,a&255]}; +hsvToHex$$module$build$src$core$utils$colour=function(a,b,c){let d=0,e=0,f=0;if(0===b)f=e=d=c;else{const g=Math.floor(a/60),h=a/60-g;a=c*(1-b);const k=c*(1-b*h);b=c*(1-b*(1-h));switch(g){case 1:d=k;e=c;f=a;break;case 2:d=a;e=c;f=b;break;case 3:d=a;e=k;f=c;break;case 4:d=b;e=a;f=c;break;case 5:d=c;e=a;f=k;break;case 6:case 0:d=c,e=b,f=a}}return rgbToHex$$module$build$src$core$utils$colour(Math.floor(d),Math.floor(e),Math.floor(f))}; +blend$$module$build$src$core$utils$colour=function(a,b,c){a=parse$$module$build$src$core$utils$colour(a);if(!a)return null;b=parse$$module$build$src$core$utils$colour(b);if(!b)return null;a=hexToRgb$$module$build$src$core$utils$colour(a);b=hexToRgb$$module$build$src$core$utils$colour(b);return rgbToHex$$module$build$src$core$utils$colour(Math.round(b[0]+c*(a[0]-b[0])),Math.round(b[1]+c*(a[1]-b[1])),Math.round(b[2]+c*(a[2]-b[2])))}; +hueToHex$$module$build$src$core$utils$colour=function(a){return hsvToHex$$module$build$src$core$utils$colour(a,hsvSaturation$$module$build$src$core$utils$colour,255*hsvValue$$module$build$src$core$utils$colour)}; +tokenizeInterpolationInternal$$module$build$src$core$utils$parsing=function(a,b){const c=[];var d=a.split("");d.push("");var e=0;a=[];let f=null;for(let k=0;k=g?(e=2,f=g,(g=a.join(""))&&c.push(g),a.length=0):"{"===g?e=3:(a.push("%",g),e=0);else if(2===e)if("0"<=g&&"9">=g)f+=g;else{var h=void 0;c.push(parseInt(null!=(h=f)?h:"",10));k--;e=0}else 3===e&& +(""===g?(a.splice(0,0,"%{"),k--,e=0):"}"!==g?a.push(g):(e=a.join(""),/[A-Z]\w*/i.test(e)?(g=e.toUpperCase(),(g=g.startsWith("BKY_")?g.substring(4):null)&&g in Msg$$module$build$src$core$msg?(e=Msg$$module$build$src$core$msg[g],"string"===typeof e?Array.prototype.push.apply(c,tokenizeInterpolationInternal$$module$build$src$core$utils$parsing(e,b)):b?c.push(`${e}`):c.push(e)):c.push("%{"+e+"}")):c.push("%{"+e+"}"),e=a.length=0))}(b=a.join(""))&&c.push(b);h=[];a.length=0;for(d=0;d=c)return{hue:c,hex:hsvToHex$$module$build$src$core$utils$colour(c,getHsvSaturation$$module$build$src$core$utils$colour(),255*getHsvValue$$module$build$src$core$utils$colour())};if(c=parse$$module$build$src$core$utils$colour(b))return{hue:null,hex:c};c='Invalid colour: "'+b+'"';a!==b&&(c+=' (from "'+ +a+'")');throw Error(c);};getDiv$$module$build$src$core$widgetdiv=function(){return containerDiv$$module$build$src$core$widgetdiv};testOnly_setDiv$$module$build$src$core$widgetdiv=function(a){containerDiv$$module$build$src$core$widgetdiv=a}; +createDom$$module$build$src$core$widgetdiv=function(){containerDiv$$module$build$src$core$widgetdiv||(containerDiv$$module$build$src$core$widgetdiv=document.createElement("div"),containerDiv$$module$build$src$core$widgetdiv.className="blocklyWidgetDiv",(getParentContainer$$module$build$src$core$common()||document.body).appendChild(containerDiv$$module$build$src$core$widgetdiv))}; +show$$module$build$src$core$widgetdiv=function(a,b,c){hide$$module$build$src$core$widgetdiv();owner$$module$build$src$core$widgetdiv=a;dispose$$module$build$src$core$widgetdiv=c;if(a=containerDiv$$module$build$src$core$widgetdiv)a.style.direction=b?"rtl":"ltr",a.style.display="block",b=getMainWorkspace$$module$build$src$core$common(),rendererClassName$$module$build$src$core$widgetdiv=b.getRenderer().getClassName(),themeClassName$$module$build$src$core$widgetdiv=b.getTheme().getClassName(),rendererClassName$$module$build$src$core$widgetdiv&& +addClass$$module$build$src$core$utils$dom(a,rendererClassName$$module$build$src$core$widgetdiv),themeClassName$$module$build$src$core$widgetdiv&&addClass$$module$build$src$core$utils$dom(a,themeClassName$$module$build$src$core$widgetdiv)}; +hide$$module$build$src$core$widgetdiv=function(){if(isVisible$$module$build$src$core$widgetdiv()){owner$$module$build$src$core$widgetdiv=null;var a=containerDiv$$module$build$src$core$widgetdiv;a&&(a.style.display="none",a.style.left="",a.style.top="",dispose$$module$build$src$core$widgetdiv&&dispose$$module$build$src$core$widgetdiv(),dispose$$module$build$src$core$widgetdiv=null,a.textContent="",rendererClassName$$module$build$src$core$widgetdiv&&(removeClass$$module$build$src$core$utils$dom(a,rendererClassName$$module$build$src$core$widgetdiv), +rendererClassName$$module$build$src$core$widgetdiv=""),themeClassName$$module$build$src$core$widgetdiv&&(removeClass$$module$build$src$core$utils$dom(a,themeClassName$$module$build$src$core$widgetdiv),themeClassName$$module$build$src$core$widgetdiv=""),getMainWorkspace$$module$build$src$core$common().markFocused())}};isVisible$$module$build$src$core$widgetdiv=function(){return!!owner$$module$build$src$core$widgetdiv}; +hideIfOwner$$module$build$src$core$widgetdiv=function(a){owner$$module$build$src$core$widgetdiv===a&&hide$$module$build$src$core$widgetdiv()};positionInternal$$module$build$src$core$widgetdiv=function(a,b,c){containerDiv$$module$build$src$core$widgetdiv.style.left=a+"px";containerDiv$$module$build$src$core$widgetdiv.style.top=b+"px";containerDiv$$module$build$src$core$widgetdiv.style.height=c+"px"}; +positionWithAnchor$$module$build$src$core$widgetdiv=function(a,b,c,d){const e=calculateY$$module$build$src$core$widgetdiv(a,b,c);a=calculateX$$module$build$src$core$widgetdiv(a,b,c,d);0>e?positionInternal$$module$build$src$core$widgetdiv(a,0,c.height+e):positionInternal$$module$build$src$core$widgetdiv(a,e,c.height)};calculateX$$module$build$src$core$widgetdiv=function(a,b,c,d){return d?Math.min(Math.max(b.right-c.width,a.left),a.right-c.width):Math.max(Math.min(b.left,a.right-c.width),a.left)}; +calculateY$$module$build$src$core$widgetdiv=function(a,b,c){return b.bottom+c.height>=a.bottom?b.top-c.height:b.bottom};register$$module$build$src$core$field_registry=function(a,b){register$$module$build$src$core$registry(Type$$module$build$src$core$registry.FIELD,a,b)};unregister$$module$build$src$core$field_registry=function(a){unregister$$module$build$src$core$registry(Type$$module$build$src$core$registry.FIELD,a)};fromJson$$module$build$src$core$field_registry=function(a){return TEST_ONLY$$module$build$src$core$field_registry.fromJsonInternal(a)}; +fromJsonInternal$$module$build$src$core$field_registry=function(a){const b=getObject$$module$build$src$core$registry(Type$$module$build$src$core$registry.FIELD,a.type);if(b){if("function"!==typeof b.fromJson)throw new TypeError("returned Field was not a IRegistrableField");return b.fromJson(a)}console.warn("Blockly could not create a field of type "+a.type+". The field is probably not being registered. This could be because the file is not loaded, the field does not register itself (Issue #1584), or the registration is not being reached."); +return null};setRole$$module$build$src$core$utils$aria=function(a,b){a.setAttribute(ROLE_ATTRIBUTE$$module$build$src$core$utils$aria,b)};setState$$module$build$src$core$utils$aria=function(a,b,c){Array.isArray(c)&&(c=c.join(" "));a.setAttribute(ARIA_PREFIX$$module$build$src$core$utils$aria+b,`${c}`)}; +trimOptions$$module$build$src$core$field_dropdown=function(a){let b=!1;const c=a.map(([g,h])=>{if("string"===typeof g)return[replaceMessageReferences$$module$build$src$core$utils$parsing(g),h];b=!0;return[null!==g.alt?Object.assign({},g,{alt:replaceMessageReferences$$module$build$src$core$utils$parsing(g.alt)}):Object.assign({},g),h]});if(b||2>a.length)return{options:c};var d=c.map(([g])=>g),e=shortestStringLength$$module$build$src$core$utils$string(d);a=commonWordPrefix$$module$build$src$core$utils$string(d, +e);const f=commonWordSuffix$$module$build$src$core$utils$string(d,e);if(!a&&!f||e<=a+f)return{options:c};e=a?d[0].substring(0,a-1):void 0;d=f?d[0].substr(1-f):void 0;return{options:applyTrim$$module$build$src$core$field_dropdown(c,a,f),prefix:e,suffix:d}};applyTrim$$module$build$src$core$field_dropdown=function(a,b,c){return a.map(([d,e])=>[d.substring(b,d.length-c),e])}; +validateOptions$$module$build$src$core$field_dropdown=function(a){if(!Array.isArray(a))throw TypeError("FieldDropdown options must be an array.");if(!a.length)throw TypeError("FieldDropdown options must not be an empty array.");let b=!1;for(let c=0;c document.");}else a instanceof Element&&(b=a);return b}; +$.register$$module$build$src$core$extensions=function(a,b){if("string"!==typeof a||""===a.trim())throw Error('Error: Invalid extension name "'+a+'"');if(allExtensions$$module$build$src$core$extensions[a])throw Error('Error: Extension "'+a+'" is already registered.');if("function"!==typeof b)throw Error('Error: Extension "'+a+'" must be a function');allExtensions$$module$build$src$core$extensions[a]=b}; +registerMixin$$module$build$src$core$extensions=function(a,b){if(!b||"object"!==typeof b)throw Error('Error: Mixin "'+a+'" must be a object');$.register$$module$build$src$core$extensions(a,function(){this.mixin(b)})}; +$.registerMutator$$module$build$src$core$extensions=function(a,b,c,d){const e='Error when registering mutator "'+a+'": ';checkHasMutatorProperties$$module$build$src$core$extensions(e,b);const f=checkMutatorDialog$$module$build$src$core$extensions(b,e);if(c&&"function"!==typeof c)throw Error(e+'Extension "'+a+'" is not a function');$.register$$module$build$src$core$extensions(a,function(){f&&this.setMutator(new $.Mutator$$module$build$src$core$mutator(d||[],this));this.mixin(b);c&&c.apply(this)})}; +unregister$$module$build$src$core$extensions=function(a){isRegistered$$module$build$src$core$extensions(a)?delete allExtensions$$module$build$src$core$extensions[a]:console.warn('No extension mapping for name "'+a+'" found to unregister')};isRegistered$$module$build$src$core$extensions=function(a){return!!allExtensions$$module$build$src$core$extensions[a]}; +apply$$module$build$src$core$extensions=function(a,b,c){const d=allExtensions$$module$build$src$core$extensions[a];if("function"!==typeof d)throw Error('Error: Extension "'+a+'" not found.');let e;c?checkNoMutatorProperties$$module$build$src$core$extensions(a,b):e=getMutatorProperties$$module$build$src$core$extensions(b);d.apply(b);if(c)checkHasMutatorProperties$$module$build$src$core$extensions('Error after applying mutator "'+a+'": ',b);else if(!mutatorPropertiesMatch$$module$build$src$core$extensions(e, +b))throw Error('Error when applying extension "'+a+'": mutation properties changed when applying a non-mutator extension.');};checkNoMutatorProperties$$module$build$src$core$extensions=function(a,b){if(getMutatorProperties$$module$build$src$core$extensions(b).length)throw Error('Error: tried to apply mutation "'+a+'" to a block that already has mutator functions. Block id: '+b.id);}; +checkXmlHooks$$module$build$src$core$extensions=function(a,b){return checkHasFunctionPair$$module$build$src$core$extensions(a.mutationToDom,a.domToMutation,b+" mutationToDom/domToMutation")};checkJsonHooks$$module$build$src$core$extensions=function(a,b){return checkHasFunctionPair$$module$build$src$core$extensions(a.saveExtraState,a.loadExtraState,b+" saveExtraState/loadExtraState")}; +checkMutatorDialog$$module$build$src$core$extensions=function(a,b){return checkHasFunctionPair$$module$build$src$core$extensions(a.compose,a.decompose,b+" compose/decompose")};checkHasFunctionPair$$module$build$src$core$extensions=function(a,b,c){if(a&&b){if("function"!==typeof a||"function"!==typeof b)throw Error(c+" must be a function");return!0}if(!a&&!b)return!1;throw Error(c+"Must have both or neither functions");}; +checkHasMutatorProperties$$module$build$src$core$extensions=function(a,b){const c=checkXmlHooks$$module$build$src$core$extensions(b,a),d=checkJsonHooks$$module$build$src$core$extensions(b,a);if(!c&&!d)throw Error(a+"Mutations must contain either XML hooks, or JSON hooks, or both");checkMutatorDialog$$module$build$src$core$extensions(b,a)}; +getMutatorProperties$$module$build$src$core$extensions=function(a){const b=[];void 0!==a.domToMutation&&b.push(a.domToMutation);void 0!==a.mutationToDom&&b.push(a.mutationToDom);void 0!==a.saveExtraState&&b.push(a.saveExtraState);void 0!==a.loadExtraState&&b.push(a.loadExtraState);void 0!==a.compose&&b.push(a.compose);void 0!==a.decompose&&b.push(a.decompose);return b}; +mutatorPropertiesMatch$$module$build$src$core$extensions=function(a,b){b=getMutatorProperties$$module$build$src$core$extensions(b);if(b.length!==a.length)return!1;for(let c=0;cc)){var d=b.getSvgXY(a.getSvgRoot());a.outputConnection?(d.x+=(a.RTL?3:-3)*c,d.y+=13*c):a.previousConnection&&(d.x+=(a.RTL?-23:23)*c,d.y+=3*c);a=createSvgElement$$module$build$src$core$utils$dom(Svg$$module$build$src$core$utils$svg.CIRCLE,{cx:d.x,cy:d.y,r:0,fill:"none",stroke:"#888","stroke-width":10},b.getParentSvg());connectionUiStep$$module$build$src$core$block_animations(a, +new Date,c)}};connectionUiStep$$module$build$src$core$block_animations=function(a,b,c){const d=((new Date).getTime()-b.getTime())/150;1a.workspace.scale)){var b=a.getHeightWidth().height;b=Math.atan(10/b)/Math.PI*180;a.RTL||(b*=-1);wobblingBlock$$module$build$src$core$block_animations=a;disconnectUiStep$$module$build$src$core$block_animations(a,b,new Date)}}; +disconnectUiStep$$module$build$src$core$block_animations=function(a,b,c){const d=((new Date).getTime()-c.getTime())/200;let e="";1>=d&&(e=`skewX(${Math.round(Math.sin(d*Math.PI*3)*(1-d)*b)})`,disconnectPid$$module$build$src$core$block_animations=setTimeout(disconnectUiStep$$module$build$src$core$block_animations,10,a,b,c));a.getSvgRoot().setAttribute("transform",`${a.getTranslation()} ${e}`)}; +disconnectUiStop$$module$build$src$core$block_animations=function(){wobblingBlock$$module$build$src$core$block_animations&&(disconnectPid$$module$build$src$core$block_animations&&(clearTimeout(disconnectPid$$module$build$src$core$block_animations),disconnectPid$$module$build$src$core$block_animations=null),wobblingBlock$$module$build$src$core$block_animations.getSvgRoot().setAttribute("transform",wobblingBlock$$module$build$src$core$block_animations.getTranslation()),wobblingBlock$$module$build$src$core$block_animations= +null)};bumpObjectIntoBounds$$module$build$src$core$bump_objects=function(a,b,c){const d=c.getBoundingRectangle(),e=d.right-d.left,f=clamp$$module$build$src$core$utils$math(b.top,d.top,b.top+b.height-(d.bottom-d.top))-d.top;let g=b.left;b=b.left+b.width-e;a.RTL?g=Math.min(b,g):b=Math.max(g,b);return(a=clamp$$module$build$src$core$utils$math(g,d.left,b)-d.left)||f?(c.moveBy(a,f),!0):!1}; +bumpIntoBoundsHandler$$module$build$src$core$bump_objects=function(a){return b=>{var c=a.getMetricsManager();if(c.hasFixedEdges()&&!a.isDragging()){var d;if(-1!==BUMP_EVENTS$$module$build$src$core$events$utils.indexOf(null!=(d=b.type)?d:"")){d=c.getScrollMetrics(!0);const e=extractObjectFromEvent$$module$build$src$core$bump_objects(a,b);e&&(c=getGroup$$module$build$src$core$events$utils()||!1,setGroup$$module$build$src$core$events$utils(b.group),bumpObjectIntoBounds$$module$build$src$core$bump_objects(a, +d,e)&&!b.group&&console.warn("Moved object in bounds but there was no event group. This may break undo."),setGroup$$module$build$src$core$events$utils(c))}else b.type===VIEWPORT_CHANGE$$module$build$src$core$events$utils&&b.scale&&b.oldScale&&b.scale>b.oldScale&&bumpTopObjectsIntoBounds$$module$build$src$core$bump_objects(a)}}}; +extractObjectFromEvent$$module$build$src$core$bump_objects=function(a,b){let c=null;switch(b.type){case CREATE$$module$build$src$core$events$utils:case MOVE$$module$build$src$core$events$utils:(c=a.getBlockById(b.blockId))&&(c=c.getRootBlock());break;case COMMENT_CREATE$$module$build$src$core$events$utils:case COMMENT_MOVE$$module$build$src$core$events$utils:c=a.getCommentById(b.commentId)}return c}; +bumpTopObjectsIntoBounds$$module$build$src$core$bump_objects=function(a){var b=a.getMetricsManager();if(b.hasFixedEdges()&&!a.isDragging()){b=b.getScrollMetrics(!0);var c=a.getTopBoundedElements();for(let d=0,e;e=c[d];d++)bumpObjectIntoBounds$$module$build$src$core$bump_objects(a,b,e)}}; +initIconData$$module$build$src$core$block_dragger=function(a){const b=[];a=a.getDescendants(!1);for(let c=0,d;d=a[c];c++){const e=d.getIcons();for(let f=0;f{setTimeout(()=>{e.callback(e.scope)}, +0)})},{})}return c};position_$$module$build$src$core$contextmenu=function(a,b,c){const d=getViewportBBox$$module$build$src$core$utils$svg_math();b=new Rect$$module$build$src$core$utils$rect(b.clientY+d.top,b.clientY+d.top,b.clientX+d.left,b.clientX+d.left);createWidget_$$module$build$src$core$contextmenu(a);const e=a.getSize();c&&(b.left+=e.width,b.right+=e.width,d.left+=e.width,d.right+=e.width);positionWithAnchor$$module$build$src$core$widgetdiv(d,b,e,c);a.focus()}; +createWidget_$$module$build$src$core$contextmenu=function(a){var b=getDiv$$module$build$src$core$widgetdiv();if(!b)throw Error("Attempting to create a context menu when widget div is null");b=a.render(b);addClass$$module$build$src$core$utils$dom(b,"blocklyContextMenu");conditionalBind$$module$build$src$core$browser_events(b,"contextmenu",null,haltPropagation$$module$build$src$core$contextmenu);a.focus()};haltPropagation$$module$build$src$core$contextmenu=function(a){a.preventDefault();a.stopPropagation()}; +hide$$module$build$src$core$contextmenu=function(){hideIfOwner$$module$build$src$core$widgetdiv(dummyOwner$$module$build$src$core$contextmenu);currentBlock$$module$build$src$core$contextmenu=null};dispose$$module$build$src$core$contextmenu=function(){menu_$$module$build$src$core$contextmenu&&(menu_$$module$build$src$core$contextmenu.dispose(),menu_$$module$build$src$core$contextmenu=null)}; +callbackFactory$$module$build$src$core$contextmenu=function(a,b){return()=>{disable$$module$build$src$core$events$utils();let c;try{c=domToBlock$$module$build$src$core$xml(b,a.workspace);const d=a.getRelativeToSurfaceXY();d.x=a.RTL?d.x-$.config$$module$build$src$core$config.snapRadius:d.x+$.config$$module$build$src$core$config.snapRadius;d.y+=2*$.config$$module$build$src$core$config.snapRadius;c.moveBy(d.x,d.y)}finally{enable$$module$build$src$core$events$utils()}isEnabled$$module$build$src$core$events$utils()&& +!c.isShadow()&&fire$$module$build$src$core$events$utils(new (get$$module$build$src$core$events$utils(CREATE$$module$build$src$core$events$utils))(c));c.select()}};commentDeleteOption$$module$build$src$core$contextmenu=function(a){return{text:Msg$$module$build$src$core$msg.REMOVE_COMMENT,enabled:!0,callback:function(){setGroup$$module$build$src$core$events$utils(!0);a.dispose();setGroup$$module$build$src$core$events$utils(!1)}}}; +commentDuplicateOption$$module$build$src$core$contextmenu=function(a){return{text:Msg$$module$build$src$core$msg.DUPLICATE_COMMENT,enabled:!0,callback:function(){duplicate$$module$build$src$core$clipboard(a)}}}; +workspaceCommentOption$$module$build$src$core$contextmenu=function(a,b){const c={enabled:!0};c.text=Msg$$module$build$src$core$msg.ADD_COMMENT;c.callback=function(){const d=new WorkspaceCommentSvg$$module$build$src$core$workspace_comment_svg(a,Msg$$module$build$src$core$msg.WORKSPACE_COMMENT_DEFAULT_TEXT,WorkspaceCommentSvg$$module$build$src$core$workspace_comment_svg.DEFAULT_SIZE,WorkspaceCommentSvg$$module$build$src$core$workspace_comment_svg.DEFAULT_SIZE);var e=a.getInjectionDiv().getBoundingClientRect(); +e=new Coordinate$$module$build$src$core$utils$coordinate(b.clientX-e.left,b.clientY-e.top);const f=a.getOriginOffsetInPixels();e=Coordinate$$module$build$src$core$utils$coordinate.difference(e,f);e.scale(1/a.scale);d.moveBy(e.x,e.y);a.rendered&&(d.initSvg(),d.render(),d.select())};return c};getParentConnection$$module$build$src$core$keyboard_nav$ast_node=function(a){let b=a.outputConnection;if(!b||a.previousConnection&&a.previousConnection.isConnected())b=a.previousConnection;return b}; +point$$module$build$src$core$utils$svg_paths=function(a,b){return" "+a+","+b+" "};curve$$module$build$src$core$utils$svg_paths=function(a,b){return" "+a+b.join("")};moveTo$$module$build$src$core$utils$svg_paths=function(a,b){return" M "+a+","+b+" "};moveBy$$module$build$src$core$utils$svg_paths=function(a,b){return" m "+a+","+b+" "};lineTo$$module$build$src$core$utils$svg_paths=function(a,b){return" l "+a+","+b+" "};line$$module$build$src$core$utils$svg_paths=function(a){return" l"+a.join("")}; +lineOnAxis$$module$build$src$core$utils$svg_paths=function(a,b){return" "+a+" "+b+" "};arc$$module$build$src$core$utils$svg_paths=function(a,b,c,d){return a+" "+c+" "+c+" "+b+d};queueRender$$module$build$src$core$render_management=function(a){queueBlock$$module$build$src$core$render_management(a);pid$$module$build$src$core$render_management||(pid$$module$build$src$core$render_management=window.requestAnimationFrame(doRenders$$module$build$src$core$render_management))}; +queueBlock$$module$build$src$core$render_management=function(a){dirtyBlocks$$module$build$src$core$render_management.add(a);const b=a.getParent();b?queueBlock$$module$build$src$core$render_management(b):rootBlocks$$module$build$src$core$render_management.add(a)}; +doRenders$$module$build$src$core$render_management=function(){const a=new Set([...rootBlocks$$module$build$src$core$render_management].map(b=>b.workspace));for(const b of rootBlocks$$module$build$src$core$render_management)b.isDisposed()||b.getParent()||(renderBlock$$module$build$src$core$render_management(b),updateConnectionLocations$$module$build$src$core$render_management(b,b.getRelativeToSurfaceXY()),updateIconLocations$$module$build$src$core$render_management(b));for(const b of a)b.resizeContents(); +rootBlocks$$module$build$src$core$render_management.clear();dirtyBlocks$$module$build$src$core$render_management=new Set;pid$$module$build$src$core$render_management=0};renderBlock$$module$build$src$core$render_management=function(a){if(dirtyBlocks$$module$build$src$core$render_management.has(a)){for(const b of a.getChildren(!1))renderBlock$$module$build$src$core$render_management(b);a.renderEfficiently()}}; +updateConnectionLocations$$module$build$src$core$render_management=function(a,b){for(const c of a.getConnections_(!1)){a=c.moveToOffset(b);const d=c.targetBlock();c.isSuperior()&&d&&(a||dirtyBlocks$$module$build$src$core$render_management.has(d))&&updateConnectionLocations$$module$build$src$core$render_management(d,Coordinate$$module$build$src$core$utils$coordinate.sum(b,d.relativeCoords))}}; +updateIconLocations$$module$build$src$core$render_management=function(a){if(a.getIcons){for(const b of a.getIcons())b.computeIconLocation();for(const b of a.getChildren(!1))updateIconLocations$$module$build$src$core$render_management(b)}}; +registerUndo$$module$build$src$core$contextmenu_items=function(){ContextMenuRegistry$$module$build$src$core$contextmenu_registry.registry.register({displayText(){return Msg$$module$build$src$core$msg.UNDO},preconditionFn(a){return 0b.length?deleteNext_$$module$build$src$core$contextmenu_items(b):confirm$$module$build$src$core$dialog(Msg$$module$build$src$core$msg.DELETE_ALL_BLOCKS.replace("%1",String(b.length)),function(c){c&&deleteNext_$$module$build$src$core$contextmenu_items(b)})}},scopeType:ContextMenuRegistry$$module$build$src$core$contextmenu_registry.ScopeType.WORKSPACE, +id:"workspaceDelete",weight:6})};registerWorkspaceOptions_$$module$build$src$core$contextmenu_items=function(){registerUndo$$module$build$src$core$contextmenu_items();registerRedo$$module$build$src$core$contextmenu_items();registerCleanup$$module$build$src$core$contextmenu_items();registerCollapse$$module$build$src$core$contextmenu_items();registerExpand$$module$build$src$core$contextmenu_items();registerDeleteAll$$module$build$src$core$contextmenu_items()}; +registerDuplicate$$module$build$src$core$contextmenu_items=function(){ContextMenuRegistry$$module$build$src$core$contextmenu_registry.registry.register({displayText(){return Msg$$module$build$src$core$msg.DUPLICATE_BLOCK},preconditionFn(a){a=a.block;return!a.isInFlyout&&a.isDeletable()&&a.isMovable()?a.isDuplicatable()?"enabled":"disabled":"hidden"},callback(a){a.block&&duplicate$$module$build$src$core$clipboard(a.block)},scopeType:ContextMenuRegistry$$module$build$src$core$contextmenu_registry.ScopeType.BLOCK, +id:"blockDuplicate",weight:1})}; +registerComment$$module$build$src$core$contextmenu_items=function(){ContextMenuRegistry$$module$build$src$core$contextmenu_registry.registry.register({displayText(a){return a.block.getCommentIcon()?Msg$$module$build$src$core$msg.REMOVE_COMMENT:Msg$$module$build$src$core$msg.ADD_COMMENT},preconditionFn(a){a=a.block;return!a.isInFlyout&&a.workspace.options.comments&&!a.isCollapsed()&&a.isEditable()?"enabled":"hidden"},callback(a){a=a.block;a.getCommentIcon()?a.setCommentText(null):a.setCommentText("")}, +scopeType:ContextMenuRegistry$$module$build$src$core$contextmenu_registry.ScopeType.BLOCK,id:"blockComment",weight:2})}; +registerInline$$module$build$src$core$contextmenu_items=function(){ContextMenuRegistry$$module$build$src$core$contextmenu_registry.registry.register({displayText(a){return a.block.getInputsInline()?Msg$$module$build$src$core$msg.EXTERNAL_INPUTS:Msg$$module$build$src$core$msg.INLINE_INPUTS},preconditionFn(a){a=a.block;if(!a.isInFlyout&&a.isMovable()&&!a.isCollapsed())for(let b=1;b!d.getReturnTypes()).map(d=>[d.getName(),d.getParameters().map(e=>e.getName()),!1]);a.getBlocksByType("procedures_defnoreturn",!1).forEach(d=>{!isProcedureBlock$$module$build$src$core$interfaces$i_procedure_block(d)&&isLegacyProcedureDefBlock$$module$build$src$core$interfaces$i_legacy_procedure_blocks(d)&&b.push(d.getProcedureDef())});const c=a.getProcedureMap().getProcedures().filter(d=> +!!d.getReturnTypes()).map(d=>[d.getName(),d.getParameters().map(e=>e.getName()),!0]);a.getBlocksByType("procedures_defreturn",!1).forEach(d=>{!isProcedureBlock$$module$build$src$core$interfaces$i_procedure_block(d)&&isLegacyProcedureDefBlock$$module$build$src$core$interfaces$i_legacy_procedure_blocks(d)&&c.push(d.getProcedureDef())});b.sort(procTupleComparator$$module$build$src$core$procedures);c.sort(procTupleComparator$$module$build$src$core$procedures);return[b,c]}; +procTupleComparator$$module$build$src$core$procedures=function(a,b){return a[0].localeCompare(b[0],void 0,{sensitivity:"base"})};findLegalName$$module$build$src$core$procedures=function(a,b){if(b.isInFlyout)return a;for(a=a||Msg$$module$build$src$core$msg.UNNAMED_KEY||"unnamed";!isLegalName$$module$build$src$core$procedures(a,b.workspace,b);){const c=a.match(/^(.*?)(\d+)$/);a=c?c[1]+(parseInt(c[2])+1):a+"2"}return a}; +isLegalName$$module$build$src$core$procedures=function(a,b,c){return!isNameUsed$$module$build$src$core$procedures(a,b,c)}; +isNameUsed$$module$build$src$core$procedures=function(a,b,c){for(const d of b.getAllBlocks(!1))if(d!==c&&isLegacyProcedureDefBlock$$module$build$src$core$interfaces$i_legacy_procedure_blocks(d)&&Names$$module$build$src$core$names.equals(d.getProcedureDef()[0],a))return!0;c=c&&isProcedureBlock$$module$build$src$core$interfaces$i_procedure_block(c)?null==c?void 0:c.getProcedureModel():void 0;for(const d of b.getProcedureMap().getProcedures())if(d!==c&&Names$$module$build$src$core$names.equals(d.getName(), +a))return!0;return!1}; +rename$$module$build$src$core$procedures=function(a){var b=this.getSourceBlock();if(!b)throw new UnattachedFieldError$$module$build$src$core$field;a=a.trim();const c=findLegalName$$module$build$src$core$procedures(a,b);isProcedureBlock$$module$build$src$core$interfaces$i_procedure_block(b)&&!b.isInsertionMarker()&&b.getProcedureModel().setName(c);const d=this.getValue();if(d!==a&&d!==c)for(a=b.workspace.getAllBlocks(!1),b=0;bblockIsModernCallerFor$$module$build$src$core$procedures(c,a)||isLegacyProcedureCallBlock$$module$build$src$core$interfaces$i_legacy_procedure_blocks(c)&&Names$$module$build$src$core$names.equals(c.getProcedureCall(),a))}; +blockIsModernCallerFor$$module$build$src$core$procedures=function(a,b){return isProcedureBlock$$module$build$src$core$interfaces$i_procedure_block(a)&&!a.isProcedureDef()&&a.getProcedureModel()&&Names$$module$build$src$core$names.equals(a.getProcedureModel().getName(),b)}; +mutateCallers$$module$build$src$core$procedures=function(a){const b=getRecordUndo$$module$build$src$core$events$utils();var c=a.getProcedureDef()[0];const d=a.mutationToDom(!0);a=getCallers$$module$build$src$core$procedures(c,a.workspace);for(let f=0,g;g=a[f];f++){c=(c=g.mutationToDom())&&domToText$$module$build$src$core$utils$xml(c);g.domToMutation&&g.domToMutation(d);var e=g.mutationToDom();e=e&&domToText$$module$build$src$core$utils$xml(e);c!==e&&(setRecordUndo$$module$build$src$core$events$utils(!1), +fire$$module$build$src$core$events$utils(new (get$$module$build$src$core$events$utils(CHANGE$$module$build$src$core$events$utils))(g,"mutation",null,c,e)),setRecordUndo$$module$build$src$core$events$utils(b))}}; +getDefinition$$module$build$src$core$procedures=function(a,b){for(const c of b.getAllBlocks(!1))if(isProcedureBlock$$module$build$src$core$interfaces$i_procedure_block(c)&&c.isProcedureDef()&&Names$$module$build$src$core$names.equals(c.getProcedureModel().getName(),a)||isLegacyProcedureDefBlock$$module$build$src$core$interfaces$i_legacy_procedure_blocks(c)&&Names$$module$build$src$core$names.equals(c.getProcedureDef()[0],a))return c;return null}; +isDynamicShape$$module$build$src$core$renderers$common$constants=function(a){return a.isDynamic};isDebuggerEnabled$$module$build$src$core$renderers$common$debug=function(){return useDebugger$$module$build$src$core$renderers$common$debug}; +startDebugger$$module$build$src$core$renderers$common$debug=function(){warn$$module$build$src$core$utils$deprecation("Blockly.blockRendering.debug.startDebugger()","version 8","version 10","the debug renderer in @blockly/dev-tools (See https://www.npmjs.com/package/@blockly/dev-tools.)");useDebugger$$module$build$src$core$renderers$common$debug=!0}; +stopDebugger$$module$build$src$core$renderers$common$debug=function(){warn$$module$build$src$core$utils$deprecation("Blockly.blockRendering.debug.stopDebugger()","version 8","version 10","the debug renderer in @blockly/dev-tools (See https://www.npmjs.com/package/@blockly/dev-tools.)");useDebugger$$module$build$src$core$renderers$common$debug=!1}; +register$$module$build$src$core$renderers$common$block_rendering=function(a,b){register$$module$build$src$core$registry(Type$$module$build$src$core$registry.RENDERER,a,b)};unregister$$module$build$src$core$renderers$common$block_rendering=function(a){unregister$$module$build$src$core$registry(Type$$module$build$src$core$registry.RENDERER,a)}; +stopDebugger$$module$build$src$core$renderers$common$block_rendering=function(){warn$$module$build$src$core$utils$deprecation("Blockly.blockRendering.stopDebugger()","September 2021","September 2022","the debug renderer in @blockly/dev-tools (See https://www.npmjs.com/package/@blockly/dev-tools.)");stopDebugger$$module$build$src$core$renderers$common$debug()}; +init$$module$build$src$core$renderers$common$block_rendering=function(a,b,c){a=new (getClass$$module$build$src$core$registry(Type$$module$build$src$core$registry.RENDERER,a))(a);a.init(b,c);return a};stringButtonClickHandler$$module$build$src$core$variables_dynamic=function(a){createVariableButtonHandler$$module$build$src$core$variables(a.getTargetWorkspace(),void 0,"String")}; +numberButtonClickHandler$$module$build$src$core$variables_dynamic=function(a){createVariableButtonHandler$$module$build$src$core$variables(a.getTargetWorkspace(),void 0,"Number")};colourButtonClickHandler$$module$build$src$core$variables_dynamic=function(a){createVariableButtonHandler$$module$build$src$core$variables(a.getTargetWorkspace(),void 0,"Colour")}; +flyoutCategory$$module$build$src$core$variables_dynamic=function(a){let b=[],c=document.createElement("button");c.setAttribute("text",Msg$$module$build$src$core$msg.NEW_STRING_VARIABLE);c.setAttribute("callbackKey","CREATE_VARIABLE_STRING");b.push(c);c=document.createElement("button");c.setAttribute("text",Msg$$module$build$src$core$msg.NEW_NUMBER_VARIABLE);c.setAttribute("callbackKey","CREATE_VARIABLE_NUMBER");b.push(c);c=document.createElement("button");c.setAttribute("text",Msg$$module$build$src$core$msg.NEW_COLOUR_VARIABLE); +c.setAttribute("callbackKey","CREATE_VARIABLE_COLOUR");b.push(c);a.registerButtonCallback("CREATE_VARIABLE_STRING",stringButtonClickHandler$$module$build$src$core$variables_dynamic);a.registerButtonCallback("CREATE_VARIABLE_NUMBER",numberButtonClickHandler$$module$build$src$core$variables_dynamic);a.registerButtonCallback("CREATE_VARIABLE_COLOUR",colourButtonClickHandler$$module$build$src$core$variables_dynamic);a=flyoutCategoryBlocks$$module$build$src$core$variables_dynamic(a);return b=b.concat(a)}; +flyoutCategoryBlocks$$module$build$src$core$variables_dynamic=function(a){a=a.getAllVariables();const b=[];if(0saveParameter$$module$build$src$core$serialization$procedures(c));return b};saveParameter$$module$build$src$core$serialization$procedures=function(a){const b={id:a.getId(),name:a.getName()};if(!a.getTypes().length)return b;b.types=a.getTypes();return b}; +loadProcedure$$module$build$src$core$serialization$procedures=function(a,b,c,d){a=(new a(d,c.name,c.id)).setReturnTypes(c.returnTypes);if(!c.parameters)return a;for(const [e,f]of c.parameters.entries())a.insertParameter(loadParameter$$module$build$src$core$serialization$procedures(b,f,d),e);return a};loadParameter$$module$build$src$core$serialization$procedures=function(a,b,c){a=new a(c,b.name,b.id);b.types&&a.setTypes(b.types);return a}; +save$$module$build$src$core$serialization$workspaces=function(a){const b=Object.create(null),c=getAllItems$$module$build$src$core$registry(Type$$module$build$src$core$registry.SERIALIZER,!0);for(const d in c){let e;const f=null==(e=c[d])?void 0:e.save(a);f&&(b[d]=f)}return b}; +load$$module$build$src$core$serialization$workspaces=function(a,b,{recordUndo:c=!1}={}){var d=getAllItems$$module$build$src$core$registry(Type$$module$build$src$core$registry.SERIALIZER,!0);if(d){d=Object.entries(d).sort((f,g)=>g[1].priority-f[1].priority);var e=getRecordUndo$$module$build$src$core$events$utils();setRecordUndo$$module$build$src$core$events$utils(c);(c=getGroup$$module$build$src$core$events$utils())||setGroup$$module$build$src$core$events$utils(!0);startTextWidthCache$$module$build$src$core$utils$dom(); +b instanceof WorkspaceSvg$$module$build$src$core$workspace_svg&&b.setResizesEnabled(!1);for(const [,f]of d.reverse()){let g;null==(g=f)||g.clear(b)}for(let [f,g]of d.reverse())if(a[f]){let h;null==(h=g)||h.load(a[f],b)}b instanceof WorkspaceSvg$$module$build$src$core$workspace_svg&&b.setResizesEnabled(!0);stopTextWidthCache$$module$build$src$core$utils$dom();fire$$module$build$src$core$events$utils(new (get$$module$build$src$core$events$utils(FINISHED_LOADING$$module$build$src$core$events$utils))(b)); +setGroup$$module$build$src$core$events$utils(c);setRecordUndo$$module$build$src$core$events$utils(e)}};registerEscape$$module$build$src$core$shortcut_items=function(){ShortcutRegistry$$module$build$src$core$shortcut_registry.registry.register({name:names$$module$build$src$core$shortcut_items.ESCAPE,preconditionFn(a){return!a.options.readOnly},callback(a){a.hideChaff();return!0},keyCodes:[KeyCodes$$module$build$src$core$utils$keycodes.ESC]})}; +registerDelete$$module$build$src$core$shortcut_items=function(){ShortcutRegistry$$module$build$src$core$shortcut_registry.registry.register({name:names$$module$build$src$core$shortcut_items.DELETE,preconditionFn(a){const b=getSelected$$module$build$src$core$common();return!a.options.readOnly&&null!=b&&b.isDeletable()},callback(a,b){b.preventDefault();if(Gesture$$module$build$src$core$gesture.inProgress())return!1;getSelected$$module$build$src$core$common().checkAndDelete();return!0},keyCodes:[KeyCodes$$module$build$src$core$utils$keycodes.DELETE, +KeyCodes$$module$build$src$core$utils$keycodes.BACKSPACE]})}; +registerCopy$$module$build$src$core$shortcut_items=function(){const a=ShortcutRegistry$$module$build$src$core$shortcut_registry.registry.createSerializedKey(KeyCodes$$module$build$src$core$utils$keycodes.C,[KeyCodes$$module$build$src$core$utils$keycodes.CTRL]),b=ShortcutRegistry$$module$build$src$core$shortcut_registry.registry.createSerializedKey(KeyCodes$$module$build$src$core$utils$keycodes.C,[KeyCodes$$module$build$src$core$utils$keycodes.ALT]),c=ShortcutRegistry$$module$build$src$core$shortcut_registry.registry.createSerializedKey(KeyCodes$$module$build$src$core$utils$keycodes.C, +[KeyCodes$$module$build$src$core$utils$keycodes.META]);ShortcutRegistry$$module$build$src$core$shortcut_registry.registry.register({name:names$$module$build$src$core$shortcut_items.COPY,preconditionFn(d){const e=getSelected$$module$build$src$core$common();return!d.options.readOnly&&!Gesture$$module$build$src$core$gesture.inProgress()&&null!=e&&e.isDeletable()&&e.isMovable()},callback(d,e){e.preventDefault();d.hideChaff();copy$$module$build$src$core$clipboard(getSelected$$module$build$src$core$common()); +return!0},keyCodes:[a,b,c]})}; +registerCut$$module$build$src$core$shortcut_items=function(){const a=ShortcutRegistry$$module$build$src$core$shortcut_registry.registry.createSerializedKey(KeyCodes$$module$build$src$core$utils$keycodes.X,[KeyCodes$$module$build$src$core$utils$keycodes.CTRL]),b=ShortcutRegistry$$module$build$src$core$shortcut_registry.registry.createSerializedKey(KeyCodes$$module$build$src$core$utils$keycodes.X,[KeyCodes$$module$build$src$core$utils$keycodes.ALT]),c=ShortcutRegistry$$module$build$src$core$shortcut_registry.registry.createSerializedKey(KeyCodes$$module$build$src$core$utils$keycodes.X,[KeyCodes$$module$build$src$core$utils$keycodes.META]); +ShortcutRegistry$$module$build$src$core$shortcut_registry.registry.register({name:names$$module$build$src$core$shortcut_items.CUT,preconditionFn(d){const e=getSelected$$module$build$src$core$common();return!d.options.readOnly&&!Gesture$$module$build$src$core$gesture.inProgress()&&null!=e&&e instanceof BlockSvg$$module$build$src$core$block_svg&&e.isDeletable()&&e.isMovable()&&!e.workspace.isFlyout},callback(){const d=getSelected$$module$build$src$core$common();if(!d)return!1;copy$$module$build$src$core$clipboard(d); +d.checkAndDelete();return!0},keyCodes:[a,b,c]})}; +registerPaste$$module$build$src$core$shortcut_items=function(){const a=ShortcutRegistry$$module$build$src$core$shortcut_registry.registry.createSerializedKey(KeyCodes$$module$build$src$core$utils$keycodes.V,[KeyCodes$$module$build$src$core$utils$keycodes.CTRL]),b=ShortcutRegistry$$module$build$src$core$shortcut_registry.registry.createSerializedKey(KeyCodes$$module$build$src$core$utils$keycodes.V,[KeyCodes$$module$build$src$core$utils$keycodes.ALT]),c=ShortcutRegistry$$module$build$src$core$shortcut_registry.registry.createSerializedKey(KeyCodes$$module$build$src$core$utils$keycodes.V, +[KeyCodes$$module$build$src$core$utils$keycodes.META]);ShortcutRegistry$$module$build$src$core$shortcut_registry.registry.register({name:names$$module$build$src$core$shortcut_items.PASTE,preconditionFn(d){return!d.options.readOnly&&!Gesture$$module$build$src$core$gesture.inProgress()},callback(){return!!paste$$module$build$src$core$clipboard()},keyCodes:[a,b,c]})}; +registerUndo$$module$build$src$core$shortcut_items=function(){const a=ShortcutRegistry$$module$build$src$core$shortcut_registry.registry.createSerializedKey(KeyCodes$$module$build$src$core$utils$keycodes.Z,[KeyCodes$$module$build$src$core$utils$keycodes.CTRL]),b=ShortcutRegistry$$module$build$src$core$shortcut_registry.registry.createSerializedKey(KeyCodes$$module$build$src$core$utils$keycodes.Z,[KeyCodes$$module$build$src$core$utils$keycodes.ALT]),c=ShortcutRegistry$$module$build$src$core$shortcut_registry.registry.createSerializedKey(KeyCodes$$module$build$src$core$utils$keycodes.Z, +[KeyCodes$$module$build$src$core$utils$keycodes.META]);ShortcutRegistry$$module$build$src$core$shortcut_registry.registry.register({name:names$$module$build$src$core$shortcut_items.UNDO,preconditionFn(d){return!d.options.readOnly&&!Gesture$$module$build$src$core$gesture.inProgress()},callback(d){d.hideChaff();d.undo(!1);return!0},keyCodes:[a,b,c]})}; +registerRedo$$module$build$src$core$shortcut_items=function(){const a=ShortcutRegistry$$module$build$src$core$shortcut_registry.registry.createSerializedKey(KeyCodes$$module$build$src$core$utils$keycodes.Z,[KeyCodes$$module$build$src$core$utils$keycodes.SHIFT,KeyCodes$$module$build$src$core$utils$keycodes.CTRL]),b=ShortcutRegistry$$module$build$src$core$shortcut_registry.registry.createSerializedKey(KeyCodes$$module$build$src$core$utils$keycodes.Z,[KeyCodes$$module$build$src$core$utils$keycodes.SHIFT, +KeyCodes$$module$build$src$core$utils$keycodes.ALT]),c=ShortcutRegistry$$module$build$src$core$shortcut_registry.registry.createSerializedKey(KeyCodes$$module$build$src$core$utils$keycodes.Z,[KeyCodes$$module$build$src$core$utils$keycodes.SHIFT,KeyCodes$$module$build$src$core$utils$keycodes.META]),d=ShortcutRegistry$$module$build$src$core$shortcut_registry.registry.createSerializedKey(KeyCodes$$module$build$src$core$utils$keycodes.Y,[KeyCodes$$module$build$src$core$utils$keycodes.CTRL]);ShortcutRegistry$$module$build$src$core$shortcut_registry.registry.register({name:names$$module$build$src$core$shortcut_items.REDO, +preconditionFn(e){return!Gesture$$module$build$src$core$gesture.inProgress()&&!e.options.readOnly},callback(e){e.hideChaff();e.undo(!0);return!0},keyCodes:[a,b,c,d]})}; +registerDefaultShortcuts$$module$build$src$core$shortcut_items=function(){registerEscape$$module$build$src$core$shortcut_items();registerDelete$$module$build$src$core$shortcut_items();registerCopy$$module$build$src$core$shortcut_items();registerCut$$module$build$src$core$shortcut_items();registerPaste$$module$build$src$core$shortcut_items();registerUndo$$module$build$src$core$shortcut_items();registerRedo$$module$build$src$core$shortcut_items()}; +isSelectableToolboxItem$$module$build$src$core$interfaces$i_selectable_toolbox_item=function(a){return a.isSelectable()};getRelativeXY$$module$build$src$core$utils=function(a){warn$$module$build$src$core$utils$deprecation("Blockly.utils.getRelativeXY","December 2021","December 2022","Blockly.utils.svgMath.getRelativeXY");return getRelativeXY$$module$build$src$core$utils$svg_math(a)}; +getInjectionDivXY$$module$build$src$core$utils=function(a){warn$$module$build$src$core$utils$deprecation("Blockly.utils.getInjectionDivXY_","December 2021","December 2022","Blockly.utils.svgMath.getInjectionDivXY");return getInjectionDivXY$$module$build$src$core$utils$svg_math(a)}; +tokenizeInterpolation$$module$build$src$core$utils=function(a){warn$$module$build$src$core$utils$deprecation("Blockly.utils.tokenizeInterpolation","December 2021","December 2022","Blockly.utils.parsing.tokenizeInterpolation");return tokenizeInterpolation$$module$build$src$core$utils$parsing(a)}; +replaceMessageReferences$$module$build$src$core$utils=function(a){warn$$module$build$src$core$utils$deprecation("Blockly.utils.replaceMessageReferences","December 2021","December 2022","Blockly.utils.parsing.replaceMessageReferences");return replaceMessageReferences$$module$build$src$core$utils$parsing(a)}; +checkMessageReferences$$module$build$src$core$utils=function(a){warn$$module$build$src$core$utils$deprecation("Blockly.utils.checkMessageReferences","December 2021","December 2022","Blockly.utils.parsing.checkMessageReferences");return checkMessageReferences$$module$build$src$core$utils$parsing(a)}; +is3dSupported$$module$build$src$core$utils=function(){warn$$module$build$src$core$utils$deprecation("Blockly.utils.is3dSupported","December 2021","December 2022","Blockly.utils.svgMath.is3dSupported");return is3dSupported$$module$build$src$core$utils$svg_math()};getViewportBBox$$module$build$src$core$utils=function(){warn$$module$build$src$core$utils$deprecation("Blockly.utils.getViewportBBox","December 2021","December 2022","Blockly.utils.svgMath.getViewportBBox");return getViewportBBox$$module$build$src$core$utils$svg_math()}; +arrayRemove$$module$build$src$core$utils=function(a,b){warn$$module$build$src$core$utils$deprecation("Blockly.utils.arrayRemove","December 2021","December 2022","Blockly.array.removeElem");return removeElem$$module$build$src$core$utils$array(a,b)};getDocumentScroll$$module$build$src$core$utils=function(){warn$$module$build$src$core$utils$deprecation("Blockly.utils.getDocumentScroll","December 2021","December 2022","Blockly.utils.svgMath.getDocumentScroll");return getDocumentScroll$$module$build$src$core$utils$svg_math()}; +getBlockTypeCounts$$module$build$src$core$utils=function(a,b){warn$$module$build$src$core$utils$deprecation("Blockly.utils.getBlockTypeCounts","December 2021","December 2022","Blockly.common.getBlockTypeCounts");return getBlockTypeCounts$$module$build$src$core$common(a,b)}; +screenToWsCoordinates$$module$build$src$core$utils=function(a,b){warn$$module$build$src$core$utils$deprecation("Blockly.utils.screenToWsCoordinates","December 2021","December 2022","Blockly.utils.svgMath.screenToWsCoordinates");return screenToWsCoordinates$$module$build$src$core$utils$svg_math(a,b)}; +parseBlockColour$$module$build$src$core$utils=function(a){warn$$module$build$src$core$utils$deprecation("Blockly.utils.parseBlockColour","December 2021","December 2022","Blockly.utils.parsing.parseBlockColour");return parseBlockColour$$module$build$src$core$utils$parsing(a)};runAfterPageLoad$$module$build$src$core$utils=function(a){warn$$module$build$src$core$utils$deprecation("Blockly.utils.runAfterPageLoad","December 2021","December 2022");runAfterPageLoad$$module$build$src$core$extensions(a)}; +hideChaff$$module$build$src$core$blockly=function(a){getMainWorkspace$$module$build$src$core$common().hideChaff(a)};resizeSvgContentsLocal$$module$build$src$core$blockly=function(a){warn$$module$build$src$core$utils$deprecation("Blockly.resizeSvgContents","December 2021","December 2022","Blockly.WorkspaceSvg.resizeSvgContents");resizeSvgContents$$module$build$src$core$workspace_svg(a)}; +copy$$module$build$src$core$blockly=function(a){warn$$module$build$src$core$utils$deprecation("Blockly.copy","December 2021","December 2022","Blockly.clipboard.copy");copy$$module$build$src$core$clipboard(a)};paste$$module$build$src$core$blockly=function(){warn$$module$build$src$core$utils$deprecation("Blockly.paste","December 2021","December 2022","Blockly.clipboard.paste");return!!paste$$module$build$src$core$clipboard()}; +duplicate$$module$build$src$core$blockly=function(a){warn$$module$build$src$core$utils$deprecation("Blockly.duplicate","December 2021","December 2022","Blockly.clipboard.duplicate");duplicate$$module$build$src$core$clipboard(a)};isNumber$$module$build$src$core$blockly=function(a){warn$$module$build$src$core$utils$deprecation("Blockly.isNumber","December 2021","December 2022","Blockly.utils.string.isNumber");return isNumber$$module$build$src$core$utils$string(a)}; +hueToHex$$module$build$src$core$blockly=function(a){warn$$module$build$src$core$utils$deprecation("Blockly.hueToHex","December 2021","December 2022","Blockly.utils.colour.hueToHex");return hueToHex$$module$build$src$core$utils$colour(a)};bindEvent_$$module$build$src$core$blockly=function(a,b,c,d){warn$$module$build$src$core$utils$deprecation("Blockly.bindEvent_","December 2021","December 2022","Blockly.browserEvents.bind");return bind$$module$build$src$core$browser_events(a,b,c,d)}; +unbindEvent_$$module$build$src$core$blockly=function(a){warn$$module$build$src$core$utils$deprecation("Blockly.unbindEvent_","December 2021","December 2022","Blockly.browserEvents.unbind");return unbind$$module$build$src$core$browser_events(a)}; +bindEventWithChecks_$$module$build$src$core$blockly=function(a,b,c,d,e,f){warn$$module$build$src$core$utils$deprecation("Blockly.bindEventWithChecks_","December 2021","December 2022","Blockly.browserEvents.conditionalBind");return conditionalBind$$module$build$src$core$browser_events(a,b,c,d,e)};$jscomp=$jscomp||{};$jscomp.scope={};$jscomp.ASSUME_ES5=!1;$jscomp.ASSUME_NO_NATIVE_MAP=!1;$jscomp.ASSUME_NO_NATIVE_SET=!1;$jscomp.SIMPLE_FROUND_POLYFILL=!1;$jscomp.ISOLATE_POLYFILLS=!1; +$jscomp.FORCE_POLYFILL_PROMISE=!1;$jscomp.FORCE_POLYFILL_PROMISE_WHEN_NO_UNHANDLED_REJECTION=!1;$jscomp.defineProperty=$jscomp.ASSUME_ES5||"function"==typeof Object.defineProperties?Object.defineProperty:function(a,b,c){if(a==Array.prototype||a==Object.prototype)return a;a[b]=c.value;return a}; +$jscomp.getGlobal=function(a){a=["object"==typeof globalThis&&globalThis,a,"object"==typeof window&&window,"object"==typeof self&&self,"object"==typeof global&&global];for(var b=0;b>>0,$jscomp.propertyToPolyfillSymbol[e]=$jscomp.IS_SYMBOL_NATIVE? +$jscomp.global.Symbol(e):$jscomp.POLYFILL_PREFIX+c+"$"+e),$jscomp.defineProperty(d,$jscomp.propertyToPolyfillSymbol[e],{configurable:!0,writable:!0,value:b})))};$jscomp.polyfill("globalThis",function(a){return a||$jscomp.global},"es_2020","es3");$jscomp.polyfill("Object.getOwnPropertyDescriptors",function(a){return a?a:function(b){for(var c={},d=Reflect.ownKeys(b),e=0;e{const a=soup$$module$build$src$core$utils$idgenerator.length,b=[];for(let c=0;20>c;c++)b[c]=soup$$module$build$src$core$utils$idgenerator.charAt(Math.random()*a);return b.join("")}},TEST_ONLY$$module$build$src$core$utils$idgenerator=internal$$module$build$src$core$utils$idgenerator,nextId$$module$build$src$core$utils$idgenerator= +0,module$build$src$core$utils$idgenerator={};module$build$src$core$utils$idgenerator.TEST_ONLY=internal$$module$build$src$core$utils$idgenerator;module$build$src$core$utils$idgenerator.genUid=genUid$$module$build$src$core$utils$idgenerator;module$build$src$core$utils$idgenerator.getNextUniqueId=getNextUniqueId$$module$build$src$core$utils$idgenerator;var group$$module$build$src$core$events$utils="",recordUndo$$module$build$src$core$events$utils=!0,disabled$$module$build$src$core$events$utils=0,CREATE$$module$build$src$core$events$utils="create",BLOCK_CREATE$$module$build$src$core$events$utils=CREATE$$module$build$src$core$events$utils,DELETE$$module$build$src$core$events$utils="delete",BLOCK_DELETE$$module$build$src$core$events$utils=DELETE$$module$build$src$core$events$utils,CHANGE$$module$build$src$core$events$utils="change",BLOCK_CHANGE$$module$build$src$core$events$utils= +CHANGE$$module$build$src$core$events$utils,MOVE$$module$build$src$core$events$utils="move",BLOCK_MOVE$$module$build$src$core$events$utils=MOVE$$module$build$src$core$events$utils,VAR_CREATE$$module$build$src$core$events$utils="var_create",VAR_DELETE$$module$build$src$core$events$utils="var_delete",VAR_RENAME$$module$build$src$core$events$utils="var_rename",UI$$module$build$src$core$events$utils="ui",BLOCK_DRAG$$module$build$src$core$events$utils="drag",SELECTED$$module$build$src$core$events$utils= +"selected",CLICK$$module$build$src$core$events$utils="click",MARKER_MOVE$$module$build$src$core$events$utils="marker_move",BUBBLE_OPEN$$module$build$src$core$events$utils="bubble_open",TRASHCAN_OPEN$$module$build$src$core$events$utils="trashcan_open",TOOLBOX_ITEM_SELECT$$module$build$src$core$events$utils="toolbox_item_select",THEME_CHANGE$$module$build$src$core$events$utils="theme_change",VIEWPORT_CHANGE$$module$build$src$core$events$utils="viewport_change",COMMENT_CREATE$$module$build$src$core$events$utils= +"comment_create",COMMENT_DELETE$$module$build$src$core$events$utils="comment_delete",COMMENT_CHANGE$$module$build$src$core$events$utils="comment_change",COMMENT_MOVE$$module$build$src$core$events$utils="comment_move",FINISHED_LOADING$$module$build$src$core$events$utils="finished_loading",BUMP_EVENTS$$module$build$src$core$events$utils=[CREATE$$module$build$src$core$events$utils,MOVE$$module$build$src$core$events$utils,COMMENT_CREATE$$module$build$src$core$events$utils,COMMENT_MOVE$$module$build$src$core$events$utils], +FIRE_QUEUE$$module$build$src$core$events$utils=[],TEST_ONLY$$module$build$src$core$events$utils={FIRE_QUEUE:FIRE_QUEUE$$module$build$src$core$events$utils,fireNow:fireNow$$module$build$src$core$events$utils,fireInternal:fireInternal$$module$build$src$core$events$utils,setGroupInternal:setGroupInternal$$module$build$src$core$events$utils},module$build$src$core$events$utils={};module$build$src$core$events$utils.BLOCK_CHANGE=CHANGE$$module$build$src$core$events$utils; +module$build$src$core$events$utils.BLOCK_CREATE=CREATE$$module$build$src$core$events$utils;module$build$src$core$events$utils.BLOCK_DELETE=DELETE$$module$build$src$core$events$utils;module$build$src$core$events$utils.BLOCK_DRAG=BLOCK_DRAG$$module$build$src$core$events$utils;module$build$src$core$events$utils.BLOCK_MOVE=MOVE$$module$build$src$core$events$utils;module$build$src$core$events$utils.BUBBLE_OPEN=BUBBLE_OPEN$$module$build$src$core$events$utils; +module$build$src$core$events$utils.BUMP_EVENTS=BUMP_EVENTS$$module$build$src$core$events$utils;module$build$src$core$events$utils.CHANGE=CHANGE$$module$build$src$core$events$utils;module$build$src$core$events$utils.CLICK=CLICK$$module$build$src$core$events$utils;module$build$src$core$events$utils.COMMENT_CHANGE=COMMENT_CHANGE$$module$build$src$core$events$utils;module$build$src$core$events$utils.COMMENT_CREATE=COMMENT_CREATE$$module$build$src$core$events$utils; +module$build$src$core$events$utils.COMMENT_DELETE=COMMENT_DELETE$$module$build$src$core$events$utils;module$build$src$core$events$utils.COMMENT_MOVE=COMMENT_MOVE$$module$build$src$core$events$utils;module$build$src$core$events$utils.CREATE=CREATE$$module$build$src$core$events$utils;module$build$src$core$events$utils.DELETE=DELETE$$module$build$src$core$events$utils;module$build$src$core$events$utils.FINISHED_LOADING=FINISHED_LOADING$$module$build$src$core$events$utils; +module$build$src$core$events$utils.MARKER_MOVE=MARKER_MOVE$$module$build$src$core$events$utils;module$build$src$core$events$utils.MOVE=MOVE$$module$build$src$core$events$utils;module$build$src$core$events$utils.SELECTED=SELECTED$$module$build$src$core$events$utils;module$build$src$core$events$utils.TEST_ONLY=TEST_ONLY$$module$build$src$core$events$utils;module$build$src$core$events$utils.THEME_CHANGE=THEME_CHANGE$$module$build$src$core$events$utils; +module$build$src$core$events$utils.TOOLBOX_ITEM_SELECT=TOOLBOX_ITEM_SELECT$$module$build$src$core$events$utils;module$build$src$core$events$utils.TRASHCAN_OPEN=TRASHCAN_OPEN$$module$build$src$core$events$utils;module$build$src$core$events$utils.UI=UI$$module$build$src$core$events$utils;module$build$src$core$events$utils.VAR_CREATE=VAR_CREATE$$module$build$src$core$events$utils;module$build$src$core$events$utils.VAR_DELETE=VAR_DELETE$$module$build$src$core$events$utils; +module$build$src$core$events$utils.VAR_RENAME=VAR_RENAME$$module$build$src$core$events$utils;module$build$src$core$events$utils.VIEWPORT_CHANGE=VIEWPORT_CHANGE$$module$build$src$core$events$utils;module$build$src$core$events$utils.clearPendingUndo=clearPendingUndo$$module$build$src$core$events$utils;module$build$src$core$events$utils.disable=disable$$module$build$src$core$events$utils;module$build$src$core$events$utils.disableOrphans=disableOrphans$$module$build$src$core$events$utils; +module$build$src$core$events$utils.enable=enable$$module$build$src$core$events$utils;module$build$src$core$events$utils.filter=filter$$module$build$src$core$events$utils;module$build$src$core$events$utils.fire=fire$$module$build$src$core$events$utils;module$build$src$core$events$utils.fromJson=fromJson$$module$build$src$core$events$utils;module$build$src$core$events$utils.get=get$$module$build$src$core$events$utils;module$build$src$core$events$utils.getDescendantIds=getDescendantIds$$module$build$src$core$events$utils; +module$build$src$core$events$utils.getGroup=getGroup$$module$build$src$core$events$utils;module$build$src$core$events$utils.getRecordUndo=getRecordUndo$$module$build$src$core$events$utils;module$build$src$core$events$utils.isEnabled=isEnabled$$module$build$src$core$events$utils;module$build$src$core$events$utils.setGroup=setGroup$$module$build$src$core$events$utils;module$build$src$core$events$utils.setRecordUndo=setRecordUndo$$module$build$src$core$events$utils;var inputTypes$$module$build$src$core$input_types;(function(a){a[a.VALUE=1]="VALUE";a[a.STATEMENT=3]="STATEMENT";a[a.DUMMY=5]="DUMMY"})(inputTypes$$module$build$src$core$input_types||(inputTypes$$module$build$src$core$input_types={}));$.module$build$src$core$input_types={};$.module$build$src$core$input_types.inputTypes=inputTypes$$module$build$src$core$input_types;var Size$$module$build$src$core$utils$size=class{constructor(a,b){this.width=a;this.height=b}static equals(a,b){return a===b?!0:a&&b?a.width===b.width&&a.height===b.height:!1}},module$build$src$core$utils$size={};module$build$src$core$utils$size.Size=Size$$module$build$src$core$utils$size;var document$$module$build$src$core$utils$xml,DOMParser$$module$build$src$core$utils$xml,XMLSerializer$$module$build$src$core$utils$xml,NAME_SPACE$$module$build$src$core$utils$xml;({document:document$$module$build$src$core$utils$xml,DOMParser:DOMParser$$module$build$src$core$utils$xml,XMLSerializer:XMLSerializer$$module$build$src$core$utils$xml}=globalThis);NAME_SPACE$$module$build$src$core$utils$xml="https://developers.google.com/blockly/xml";$.module$build$src$core$utils$xml={}; +$.module$build$src$core$utils$xml.NAME_SPACE=NAME_SPACE$$module$build$src$core$utils$xml;$.module$build$src$core$utils$xml.createElement=$.createElement$$module$build$src$core$utils$xml;$.module$build$src$core$utils$xml.createTextNode=createTextNode$$module$build$src$core$utils$xml;$.module$build$src$core$utils$xml.domToText=domToText$$module$build$src$core$utils$xml;$.module$build$src$core$utils$xml.getDocument=getDocument$$module$build$src$core$utils$xml; +$.module$build$src$core$utils$xml.injectDependencies=injectDependencies$$module$build$src$core$utils$xml;$.module$build$src$core$utils$xml.setDocument=setDocument$$module$build$src$core$utils$xml;$.module$build$src$core$utils$xml.textToDom=textToDom$$module$build$src$core$utils$xml;$.module$build$src$core$utils$xml.textToDomDocument=textToDomDocument$$module$build$src$core$utils$xml;var SVG_NS$$module$build$src$core$utils$dom="http://www.w3.org/2000/svg",HTML_NS$$module$build$src$core$utils$dom="http://www.w3.org/1999/xhtml",XLINK_NS$$module$build$src$core$utils$dom="http://www.w3.org/1999/xlink",NodeType$$module$build$src$core$utils$dom; +(function(a){a[a.ELEMENT_NODE=1]="ELEMENT_NODE";a[a.TEXT_NODE=3]="TEXT_NODE";a[a.COMMENT_NODE=8]="COMMENT_NODE";a[a.DOCUMENT_POSITION_CONTAINED_BY=16]="DOCUMENT_POSITION_CONTAINED_BY"})(NodeType$$module$build$src$core$utils$dom||(NodeType$$module$build$src$core$utils$dom={}));var cacheWidths$$module$build$src$core$utils$dom=null,cacheReference$$module$build$src$core$utils$dom=0,canvasContext$$module$build$src$core$utils$dom=null,module$build$src$core$utils$dom={}; +module$build$src$core$utils$dom.HTML_NS=HTML_NS$$module$build$src$core$utils$dom;module$build$src$core$utils$dom.NodeType=NodeType$$module$build$src$core$utils$dom;module$build$src$core$utils$dom.SVG_NS=SVG_NS$$module$build$src$core$utils$dom;module$build$src$core$utils$dom.XLINK_NS=XLINK_NS$$module$build$src$core$utils$dom;module$build$src$core$utils$dom.addClass=addClass$$module$build$src$core$utils$dom;module$build$src$core$utils$dom.containsNode=containsNode$$module$build$src$core$utils$dom; +module$build$src$core$utils$dom.createSvgElement=createSvgElement$$module$build$src$core$utils$dom;module$build$src$core$utils$dom.getFastTextWidth=getFastTextWidth$$module$build$src$core$utils$dom;module$build$src$core$utils$dom.getFastTextWidthWithSizeString=getFastTextWidthWithSizeString$$module$build$src$core$utils$dom;module$build$src$core$utils$dom.getTextWidth=getTextWidth$$module$build$src$core$utils$dom;module$build$src$core$utils$dom.hasClass=hasClass$$module$build$src$core$utils$dom; +module$build$src$core$utils$dom.insertAfter=insertAfter$$module$build$src$core$utils$dom;module$build$src$core$utils$dom.measureFontMetrics=measureFontMetrics$$module$build$src$core$utils$dom;module$build$src$core$utils$dom.removeClass=removeClass$$module$build$src$core$utils$dom;module$build$src$core$utils$dom.removeClasses=removeClasses$$module$build$src$core$utils$dom;module$build$src$core$utils$dom.removeNode=removeNode$$module$build$src$core$utils$dom; +module$build$src$core$utils$dom.setCssTransform=setCssTransform$$module$build$src$core$utils$dom;module$build$src$core$utils$dom.startTextWidthCache=startTextWidthCache$$module$build$src$core$utils$dom;module$build$src$core$utils$dom.stopTextWidthCache=stopTextWidthCache$$module$build$src$core$utils$dom;var alertImplementation$$module$build$src$core$dialog=function(a,b){window.alert(a);b&&b()},confirmImplementation$$module$build$src$core$dialog=function(a,b){b(window.confirm(a))},promptImplementation$$module$build$src$core$dialog=function(a,b,c){c(window.prompt(a,b))},TEST_ONLY$$module$build$src$core$dialog={confirmInternal:confirmInternal$$module$build$src$core$dialog},module$build$src$core$dialog={};module$build$src$core$dialog.TEST_ONLY=TEST_ONLY$$module$build$src$core$dialog; +module$build$src$core$dialog.alert=alert$$module$build$src$core$dialog;module$build$src$core$dialog.confirm=confirm$$module$build$src$core$dialog;module$build$src$core$dialog.prompt=prompt$$module$build$src$core$dialog;module$build$src$core$dialog.setAlert=setAlert$$module$build$src$core$dialog;module$build$src$core$dialog.setConfirm=setConfirm$$module$build$src$core$dialog;module$build$src$core$dialog.setPrompt=setPrompt$$module$build$src$core$dialog;var module$build$src$core$interfaces$i_variable_backed_parameter_model={};module$build$src$core$interfaces$i_variable_backed_parameter_model.isVariableBackedParameterModel=isVariableBackedParameterModel$$module$build$src$core$interfaces$i_variable_backed_parameter_model;var Msg$$module$build$src$core$msg,setLocale$$module$build$src$core$msg;Msg$$module$build$src$core$msg=Object.create(null);setLocale$$module$build$src$core$msg=function(a){Object.keys(a).forEach(function(b){Msg$$module$build$src$core$msg[b]=a[b]})};$.module$build$src$core$msg={};$.module$build$src$core$msg.Msg=Msg$$module$build$src$core$msg;$.module$build$src$core$msg.setLocale=setLocale$$module$build$src$core$msg;var module$build$src$core$interfaces$i_legacy_procedure_blocks={};module$build$src$core$interfaces$i_legacy_procedure_blocks.isLegacyProcedureCallBlock=isLegacyProcedureCallBlock$$module$build$src$core$interfaces$i_legacy_procedure_blocks;module$build$src$core$interfaces$i_legacy_procedure_blocks.isLegacyProcedureDefBlock=isLegacyProcedureDefBlock$$module$build$src$core$interfaces$i_legacy_procedure_blocks;var Abstract$$module$build$src$core$events$events_abstract=class{constructor(){this.workspaceId=void 0;this.isUiEvent=!1;this.type="";this.group=getGroup$$module$build$src$core$events$utils();this.recordUndo=getRecordUndo$$module$build$src$core$events$utils()}toJson(){return{type:this.type,group:this.group}}fromJson(a){warn$$module$build$src$core$utils$deprecation("Blockly.Events.Abstract.prototype.fromJson","version 9","version 10","Blockly.Events.fromJson");this.isBlank=!1;this.group=a.group||""}static fromJson(a, +b,c){c.isBlank=!1;c.group=a.group||"";c.workspaceId=b.id;return c}isNull(){return!1}run(a){}getEventWorkspace_(){let a;this.workspaceId&&(a=getWorkspaceById$$module$build$src$core$common(this.workspaceId));if(!a)throw Error("Workspace is null. Event must have been generated from real Blockly events.");return a}},module$build$src$core$events$events_abstract={};module$build$src$core$events$events_abstract.Abstract=Abstract$$module$build$src$core$events$events_abstract;var VarBase$$module$build$src$core$events$events_var_base=class extends Abstract$$module$build$src$core$events$events_abstract{constructor(a){super();this.isBlank="undefined"===typeof a;a&&(this.varId=a.getId(),this.workspaceId=a.workspace.id)}toJson(){const a=super.toJson();if(!this.varId)throw Error("The var ID is undefined. Either pass a variable to the constructor, or call fromJson");a.varId=this.varId;return a}fromJson(a){warn$$module$build$src$core$utils$deprecation("Blockly.Events.VarBase.prototype.fromJson", +"version 9","version 10","Blockly.Events.fromJson");super.fromJson(a);this.varId=a.varId}static fromJson(a,b,c){b=super.fromJson(a,b,null!=c?c:new VarBase$$module$build$src$core$events$events_var_base);b.varId=a.varId;return b}},module$build$src$core$events$events_var_base={};module$build$src$core$events$events_var_base.VarBase=VarBase$$module$build$src$core$events$events_var_base;var VarCreate$$module$build$src$core$events$events_var_create=class extends VarBase$$module$build$src$core$events$events_var_base{constructor(a){super(a);this.type=VAR_CREATE$$module$build$src$core$events$utils;a&&(this.varType=a.type,this.varName=a.name)}toJson(){const a=super.toJson();if(void 0===this.varType)throw Error("The var type is undefined. Either pass a variable to the constructor, or call fromJson");if(!this.varName)throw Error("The var name is undefined. Either pass a variable to the constructor, or call fromJson"); +a.varType=this.varType;a.varName=this.varName;return a}fromJson(a){warn$$module$build$src$core$utils$deprecation("Blockly.Events.VarCreate.prototype.fromJson","version 9","version 10","Blockly.Events.fromJson");super.fromJson(a);this.varType=a.varType;this.varName=a.varName}static fromJson(a,b,c){b=super.fromJson(a,b,null!=c?c:new VarCreate$$module$build$src$core$events$events_var_create);b.varType=a.varType;b.varName=a.varName;return b}run(a){const b=this.getEventWorkspace_();if(!this.varId)throw Error("The var ID is undefined. Either pass a variable to the constructor, or call fromJson"); +if(!this.varName)throw Error("The var name is undefined. Either pass a variable to the constructor, or call fromJson");a?b.createVariable(this.varName,this.varType,this.varId):b.deleteVariableById(this.varId)}};register$$module$build$src$core$registry(Type$$module$build$src$core$registry.EVENT,VAR_CREATE$$module$build$src$core$events$utils,VarCreate$$module$build$src$core$events$events_var_create);var module$build$src$core$events$events_var_create={}; +module$build$src$core$events$events_var_create.VarCreate=VarCreate$$module$build$src$core$events$events_var_create;var VariableModel$$module$build$src$core$variable_model=class{constructor(a,b,c,d){this.workspace=a;this.name=b;this.type=c||"";this.id_=d||genUid$$module$build$src$core$utils$idgenerator()}getId(){return this.id_}static compareByName(a,b){return a.name.localeCompare(b.name,void 0,{sensitivity:"base"})}},module$build$src$core$variable_model={};module$build$src$core$variable_model.VariableModel=VariableModel$$module$build$src$core$variable_model;var CATEGORY_NAME$$module$build$src$core$variables,VAR_LETTER_OPTIONS$$module$build$src$core$variables,TEST_ONLY$$module$build$src$core$variables;CATEGORY_NAME$$module$build$src$core$variables="VARIABLE";VAR_LETTER_OPTIONS$$module$build$src$core$variables="ijkmnopqrstuvwxyzabcdefgh";TEST_ONLY$$module$build$src$core$variables={generateUniqueNameInternal:generateUniqueNameInternal$$module$build$src$core$variables};$.module$build$src$core$variables={}; +$.module$build$src$core$variables.CATEGORY_NAME=CATEGORY_NAME$$module$build$src$core$variables;$.module$build$src$core$variables.TEST_ONLY=TEST_ONLY$$module$build$src$core$variables;$.module$build$src$core$variables.VAR_LETTER_OPTIONS=VAR_LETTER_OPTIONS$$module$build$src$core$variables;$.module$build$src$core$variables.allDeveloperVariables=allDeveloperVariables$$module$build$src$core$variables;$.module$build$src$core$variables.allUsedVarModels=allUsedVarModels$$module$build$src$core$variables; +$.module$build$src$core$variables.createVariableButtonHandler=createVariableButtonHandler$$module$build$src$core$variables;$.module$build$src$core$variables.flyoutCategory=flyoutCategory$$module$build$src$core$variables;$.module$build$src$core$variables.flyoutCategoryBlocks=flyoutCategoryBlocks$$module$build$src$core$variables;$.module$build$src$core$variables.generateUniqueName=generateUniqueName$$module$build$src$core$variables;$.module$build$src$core$variables.generateUniqueNameFromOptions=generateUniqueNameFromOptions$$module$build$src$core$variables; +$.module$build$src$core$variables.generateVariableFieldDom=generateVariableFieldDom$$module$build$src$core$variables;$.module$build$src$core$variables.getAddedVariables=getAddedVariables$$module$build$src$core$variables;$.module$build$src$core$variables.getOrCreateVariablePackage=getOrCreateVariablePackage$$module$build$src$core$variables;$.module$build$src$core$variables.getVariable=getVariable$$module$build$src$core$variables;$.module$build$src$core$variables.nameUsedWithAnyType=nameUsedWithAnyType$$module$build$src$core$variables; +$.module$build$src$core$variables.nameUsedWithConflictingParam=nameUsedWithConflictingParam$$module$build$src$core$variables;$.module$build$src$core$variables.promptName=promptName$$module$build$src$core$variables;$.module$build$src$core$variables.renameVariable=renameVariable$$module$build$src$core$variables;var Coordinate$$module$build$src$core$utils$coordinate=class{constructor(a,b){this.x=a;this.y=b}clone(){return new Coordinate$$module$build$src$core$utils$coordinate(this.x,this.y)}scale(a){this.x*=a;this.y*=a;return this}translate(a,b){this.x+=a;this.y+=b;return this}static equals(a,b){return a===b?!0:a&&b?a.x===b.x&&a.y===b.y:!1}static distance(a,b){const c=a.x-b.x;a=a.y-b.y;return Math.sqrt(c*c+a*a)}static magnitude(a){return Math.sqrt(a.x*a.x+a.y*a.y)}static difference(a,b){return new Coordinate$$module$build$src$core$utils$coordinate(a.x- +b.x,a.y-b.y)}static sum(a,b){return new Coordinate$$module$build$src$core$utils$coordinate(a.x+b.x,a.y+b.y)}},module$build$src$core$utils$coordinate={};module$build$src$core$utils$coordinate.Coordinate=Coordinate$$module$build$src$core$utils$coordinate;var WorkspaceComment$$module$build$src$core$workspace_comment=class{constructor(a,b,c,d,e){this.workspace=a;this.editable_=this.movable_=this.deletable_=!0;this.disposed_=!1;this.isComment=!0;this.id=e&&!a.getCommentById(e)?e:genUid$$module$build$src$core$utils$idgenerator();a.addTopComment(this);this.xy_=new Coordinate$$module$build$src$core$utils$coordinate(0,0);this.height_=c;this.width_=d;this.RTL=a.RTL;this.content_=b;WorkspaceComment$$module$build$src$core$workspace_comment.fireCreateEvent(this)}dispose(){this.disposed_|| +(isEnabled$$module$build$src$core$events$utils()&&fire$$module$build$src$core$events$utils(new (get$$module$build$src$core$events$utils(COMMENT_DELETE$$module$build$src$core$events$utils))(this)),this.workspace.removeTopComment(this),this.disposed_=!0)}getHeight(){return this.height_}setHeight(a){this.height_=a}getWidth(){return this.width_}setWidth(a){this.width_=a}getRelativeToSurfaceXY(){return new Coordinate$$module$build$src$core$utils$coordinate(this.xy_.x,this.xy_.y)}moveBy(a,b){const c=new (get$$module$build$src$core$events$utils(COMMENT_MOVE$$module$build$src$core$events$utils))(this); +this.xy_.translate(a,b);c.recordNew();fire$$module$build$src$core$events$utils(c)}isDeletable(){return this.deletable_&&!(this.workspace&&this.workspace.options.readOnly)}setDeletable(a){this.deletable_=a}isMovable(){return this.movable_&&!(this.workspace&&this.workspace.options.readOnly)}setMovable(a){this.movable_=a}isEditable(){return this.editable_&&!(this.workspace&&this.workspace.options.readOnly)}setEditable(a){this.editable_=a}getContent(){return this.content_}setContent(a){this.content_!== +a&&(fire$$module$build$src$core$events$utils(new (get$$module$build$src$core$events$utils(COMMENT_CHANGE$$module$build$src$core$events$utils))(this,this.content_,a)),this.content_=a)}toXmlWithXY(a){a=this.toXml(a);a.setAttribute("x",String(Math.round(this.xy_.x)));a.setAttribute("y",String(Math.round(this.xy_.y)));a.setAttribute("h",String(this.height_));a.setAttribute("w",String(this.width_));return a}toXml(a){const b=$.createElement$$module$build$src$core$utils$xml("comment");a||(b.id=this.id); +b.textContent=this.getContent();return b}static fireCreateEvent(a){if(isEnabled$$module$build$src$core$events$utils()){const b=getGroup$$module$build$src$core$events$utils();b||setGroup$$module$build$src$core$events$utils(!0);try{fire$$module$build$src$core$events$utils(new (get$$module$build$src$core$events$utils(COMMENT_CREATE$$module$build$src$core$events$utils))(a))}finally{setGroup$$module$build$src$core$events$utils(b)}}}static fromXml(a,b){var c=WorkspaceComment$$module$build$src$core$workspace_comment.parseAttributes(a); +b=new WorkspaceComment$$module$build$src$core$workspace_comment(b,c.content,c.h,c.w,c.id);c=a.getAttribute("x");a=a.getAttribute("y");c=c?parseInt(c,10):NaN;a=a?parseInt(a,10):NaN;isNaN(c)||isNaN(a)||b.moveBy(c,a);WorkspaceComment$$module$build$src$core$workspace_comment.fireCreateEvent(b);return b}static parseAttributes(a){const b=a.getAttribute("h"),c=a.getAttribute("w"),d=a.getAttribute("x"),e=a.getAttribute("y"),f=a.getAttribute("id");if(!f)throw Error("No ID present in XML comment definition."); +let g;return{id:f,h:b?parseInt(b):100,w:c?parseInt(c):100,x:d?parseInt(d):NaN,y:e?parseInt(e):NaN,content:null!=(g=a.textContent)?g:""}}},module$build$src$core$workspace_comment={};module$build$src$core$workspace_comment.WorkspaceComment=WorkspaceComment$$module$build$src$core$workspace_comment;var UiBase$$module$build$src$core$events$events_ui_base=class extends Abstract$$module$build$src$core$events$events_abstract{constructor(a){super();this.isBlank=!0;this.recordUndo=!1;this.isUiEvent=!0;this.isBlank="undefined"===typeof a;this.workspaceId=a?a:""}},module$build$src$core$events$events_ui_base={};module$build$src$core$events$events_ui_base.UiBase=UiBase$$module$build$src$core$events$events_ui_base;var Selected$$module$build$src$core$events$events_selected=class extends UiBase$$module$build$src$core$events$events_ui_base{constructor(a,b,c){super(c);this.type=SELECTED$$module$build$src$core$events$utils;this.oldElementId=null!=a?a:void 0;this.newElementId=null!=b?b:void 0}toJson(){const a=super.toJson();a.oldElementId=this.oldElementId;a.newElementId=this.newElementId;return a}fromJson(a){warn$$module$build$src$core$utils$deprecation("Blockly.Events.Selected.prototype.fromJson","version 9","version 10", +"Blockly.Events.fromJson");super.fromJson(a);this.oldElementId=a.oldElementId;this.newElementId=a.newElementId}static fromJson(a,b,c){b=super.fromJson(a,b,null!=c?c:new Selected$$module$build$src$core$events$events_selected);b.oldElementId=a.oldElementId;b.newElementId=a.newElementId;return b}};register$$module$build$src$core$registry(Type$$module$build$src$core$registry.EVENT,SELECTED$$module$build$src$core$events$utils,Selected$$module$build$src$core$events$events_selected); +var module$build$src$core$events$events_selected={};module$build$src$core$events$events_selected.Selected=Selected$$module$build$src$core$events$events_selected;var LONGPRESS$$module$build$src$core$touch=750,TOUCH_ENABLED$$module$build$src$core$touch="ontouchstart"in globalThis||!!(globalThis.document&&document.documentElement&&"ontouchstart"in document.documentElement)||!(!globalThis.navigator||!globalThis.navigator.maxTouchPoints&&!globalThis.navigator.msMaxTouchPoints),touchIdentifier_$$module$build$src$core$touch=null,TOUCH_MAP$$module$build$src$core$touch={mousedown:["pointerdown"],mouseenter:["pointerenter"],mouseleave:["pointerleave"],mousemove:["pointermove"], +mouseout:["pointerout"],mouseover:["pointerover"],mouseup:["pointerup","pointercancel"],touchend:["pointerup"],touchcancel:["pointercancel"]},longPid_$$module$build$src$core$touch=0,module$build$src$core$touch={};module$build$src$core$touch.TOUCH_ENABLED=TOUCH_ENABLED$$module$build$src$core$touch;module$build$src$core$touch.TOUCH_MAP=TOUCH_MAP$$module$build$src$core$touch;module$build$src$core$touch.checkTouchIdentifier=checkTouchIdentifier$$module$build$src$core$touch; +module$build$src$core$touch.clearTouchIdentifier=clearTouchIdentifier$$module$build$src$core$touch;module$build$src$core$touch.getTouchIdentifierFromEvent=getTouchIdentifierFromEvent$$module$build$src$core$touch;module$build$src$core$touch.isMouseOrTouchEvent=isMouseOrTouchEvent$$module$build$src$core$touch;module$build$src$core$touch.isTouchEvent=isTouchEvent$$module$build$src$core$touch;module$build$src$core$touch.longStart=longStart$$module$build$src$core$touch; +module$build$src$core$touch.longStop=longStop$$module$build$src$core$touch;module$build$src$core$touch.setClientFromTouch=setClientFromTouch$$module$build$src$core$touch;module$build$src$core$touch.shouldHandleEvent=shouldHandleEvent$$module$build$src$core$touch;module$build$src$core$touch.splitEventByTouches=splitEventByTouches$$module$build$src$core$touch;var rawUserAgent$$module$build$src$core$utils$useragent,isJavaFx$$module$build$src$core$utils$useragent,isWebKit$$module$build$src$core$utils$useragent,isGecko$$module$build$src$core$utils$useragent,isAndroid$$module$build$src$core$utils$useragent,isIPad$$module$build$src$core$utils$useragent,isIPhone$$module$build$src$core$utils$useragent,isMac$$module$build$src$core$utils$useragent,isTablet$$module$build$src$core$utils$useragent,isMobile$$module$build$src$core$utils$useragent; +(function(a){function b(d){return-1!==c.indexOf(d.toUpperCase())}rawUserAgent$$module$build$src$core$utils$useragent=a;const c=rawUserAgent$$module$build$src$core$utils$useragent.toUpperCase();isJavaFx$$module$build$src$core$utils$useragent=b("JavaFX");isWebKit$$module$build$src$core$utils$useragent=b("WebKit");isGecko$$module$build$src$core$utils$useragent=b("Gecko")&&!isWebKit$$module$build$src$core$utils$useragent;isAndroid$$module$build$src$core$utils$useragent=b("Android");a=globalThis.navigator&& +globalThis.navigator.maxTouchPoints;isIPad$$module$build$src$core$utils$useragent=b("iPad")||b("Macintosh")&&0.blocklyPathLight {\n display: none;\n}\n\n.blocklyDraggable {\n cursor: grab;\n cursor: -webkit-grab;\n}\n\n.blocklyDragging {\n cursor: grabbing;\n cursor: -webkit-grabbing;\n}\n\n /* Changes cursor on mouse down. Not effective in Firefox because of\n https://bugzilla.mozilla.org/show_bug.cgi?id=771241 */\n.blocklyDraggable:active {\n cursor: grabbing;\n cursor: -webkit-grabbing;\n}\n\n/* Change the cursor on the whole drag surface in case the mouse gets\n ahead of block during a drag. This way the cursor is still a closed hand.\n */\n.blocklyBlockDragSurface .blocklyDraggable {\n cursor: grabbing;\n cursor: -webkit-grabbing;\n}\n\n.blocklyDragging.blocklyDraggingDelete {\n cursor: url("<<>>/handdelete.cur"), auto;\n}\n\n.blocklyDragging>.blocklyPath,\n.blocklyDragging>.blocklyPathLight {\n fill-opacity: .8;\n stroke-opacity: .8;\n}\n\n.blocklyDragging>.blocklyPathDark {\n display: none;\n}\n\n.blocklyDisabled>.blocklyPath {\n fill-opacity: .5;\n stroke-opacity: .5;\n}\n\n.blocklyDisabled>.blocklyPathLight,\n.blocklyDisabled>.blocklyPathDark {\n display: none;\n}\n\n.blocklyInsertionMarker>.blocklyPath,\n.blocklyInsertionMarker>.blocklyPathLight,\n.blocklyInsertionMarker>.blocklyPathDark {\n fill-opacity: .2;\n stroke: none;\n}\n\n.blocklyMultilineText {\n font-family: monospace;\n}\n\n.blocklyNonEditableText>text {\n pointer-events: none;\n}\n\n.blocklyFlyout {\n position: absolute;\n z-index: 20;\n}\n\n.blocklyText text {\n cursor: default;\n}\n\n/*\n Don\'t allow users to select text. It gets annoying when trying to\n drag a block and selected text moves instead.\n*/\n.blocklySvg text,\n.blocklyBlockDragSurface text {\n user-select: none;\n -ms-user-select: none;\n -webkit-user-select: none;\n cursor: inherit;\n}\n\n.blocklyHidden {\n display: none;\n}\n\n.blocklyFieldDropdown:not(.blocklyHidden) {\n display: block;\n}\n\n.blocklyIconGroup {\n cursor: default;\n}\n\n.blocklyIconGroup:not(:hover),\n.blocklyIconGroupReadonly {\n opacity: .6;\n}\n\n.blocklyIconShape {\n fill: #00f;\n stroke: #fff;\n stroke-width: 1px;\n}\n\n.blocklyIconSymbol {\n fill: #fff;\n}\n\n.blocklyMinimalBody {\n margin: 0;\n padding: 0;\n}\n\n.blocklyHtmlInput {\n border: none;\n border-radius: 4px;\n height: 100%;\n margin: 0;\n outline: none;\n padding: 0;\n width: 100%;\n text-align: center;\n display: block;\n box-sizing: border-box;\n}\n\n/* Remove the increase and decrease arrows on the field number editor */\ninput.blocklyHtmlInput[type=number]::-webkit-inner-spin-button,\ninput.blocklyHtmlInput[type=number]::-webkit-outer-spin-button {\n -webkit-appearance: none;\n margin: 0;\n}\n\ninput[type=number] {\n -moz-appearance: textfield;\n}\n\n.blocklyMainBackground {\n stroke-width: 1;\n stroke: #c6c6c6; /* Equates to #ddd due to border being off-pixel. */\n}\n\n.blocklyMutatorBackground {\n fill: #fff;\n stroke: #ddd;\n stroke-width: 1;\n}\n\n.blocklyFlyoutBackground {\n fill: #ddd;\n fill-opacity: .8;\n}\n\n.blocklyMainWorkspaceScrollbar {\n z-index: 20;\n}\n\n.blocklyFlyoutScrollbar {\n z-index: 30;\n}\n\n.blocklyScrollbarHorizontal,\n.blocklyScrollbarVertical {\n position: absolute;\n outline: none;\n}\n\n.blocklyScrollbarBackground {\n opacity: 0;\n}\n\n.blocklyScrollbarHandle {\n fill: #ccc;\n}\n\n.blocklyScrollbarBackground:hover+.blocklyScrollbarHandle,\n.blocklyScrollbarHandle:hover {\n fill: #bbb;\n}\n\n/* Darken flyout scrollbars due to being on a grey background. */\n/* By contrast, workspace scrollbars are on a white background. */\n.blocklyFlyout .blocklyScrollbarHandle {\n fill: #bbb;\n}\n\n.blocklyFlyout .blocklyScrollbarBackground:hover+.blocklyScrollbarHandle,\n.blocklyFlyout .blocklyScrollbarHandle:hover {\n fill: #aaa;\n}\n\n.blocklyInvalidInput {\n background: #faa;\n}\n\n.blocklyVerticalMarker {\n stroke-width: 3px;\n fill: rgba(255,255,255,.5);\n pointer-events: none;\n}\n\n.blocklyComputeCanvas {\n position: absolute;\n width: 0;\n height: 0;\n}\n\n.blocklyNoPointerEvents {\n pointer-events: none;\n}\n\n.blocklyContextMenu {\n border-radius: 4px;\n max-height: 100%;\n}\n\n.blocklyDropdownMenu {\n border-radius: 2px;\n padding: 0 !important;\n}\n\n.blocklyDropdownMenu .blocklyMenuItem {\n /* 28px on the left for icon or checkbox. */\n padding-left: 28px;\n}\n\n/* BiDi override for the resting state. */\n.blocklyDropdownMenu .blocklyMenuItemRtl {\n /* Flip left/right padding for BiDi. */\n padding-left: 5px;\n padding-right: 28px;\n}\n\n.blocklyWidgetDiv .blocklyMenu {\n background: #fff;\n border: 1px solid transparent;\n box-shadow: 0 0 3px 1px rgba(0,0,0,.3);\n font: normal 13px Arial, sans-serif;\n margin: 0;\n outline: none;\n padding: 4px 0;\n position: absolute;\n overflow-y: auto;\n overflow-x: hidden;\n max-height: 100%;\n z-index: 20000; /* Arbitrary, but some apps depend on it... */\n}\n\n.blocklyWidgetDiv .blocklyMenu.blocklyFocused {\n box-shadow: 0 0 6px 1px rgba(0,0,0,.3);\n}\n\n.blocklyDropDownDiv .blocklyMenu {\n background: inherit; /* Compatibility with gapi, reset from goog-menu */\n border: inherit; /* Compatibility with gapi, reset from goog-menu */\n font: normal 13px "Helvetica Neue", Helvetica, sans-serif;\n outline: none;\n position: relative; /* Compatibility with gapi, reset from goog-menu */\n z-index: 20000; /* Arbitrary, but some apps depend on it... */\n}\n\n/* State: resting. */\n.blocklyMenuItem {\n border: none;\n color: #000;\n cursor: pointer;\n list-style: none;\n margin: 0;\n /* 7em on the right for shortcut. */\n min-width: 7em;\n padding: 6px 15px;\n white-space: nowrap;\n}\n\n/* State: disabled. */\n.blocklyMenuItemDisabled {\n color: #ccc;\n cursor: inherit;\n}\n\n/* State: hover. */\n.blocklyMenuItemHighlight {\n background-color: rgba(0,0,0,.1);\n}\n\n/* State: selected/checked. */\n.blocklyMenuItemCheckbox {\n height: 16px;\n position: absolute;\n width: 16px;\n}\n\n.blocklyMenuItemSelected .blocklyMenuItemCheckbox {\n background: url(<<>>/sprites.png) no-repeat -48px -16px;\n float: left;\n margin-left: -24px;\n position: static; /* Scroll with the menu. */\n}\n\n.blocklyMenuItemRtl .blocklyMenuItemCheckbox {\n float: right;\n margin-right: -24px;\n}\n', +module$build$src$core$css={};module$build$src$core$css.inject=inject$$module$build$src$core$css;module$build$src$core$css.register=register$$module$build$src$core$css;var Rect$$module$build$src$core$utils$rect=class{constructor(a,b,c,d){this.top=a;this.bottom=b;this.left=c;this.right=d}contains(a,b){return a>=this.left&&a<=this.right&&b>=this.top&&b<=this.bottom}intersects(a){return!(this.left>a.right||this.righta.bottom||this.bottom{this.disposed_||(this.textarea_.focus(),this.addFocus(), +this.svgRectTarget_&&addClass$$module$build$src$core$utils$dom(this.svgRectTarget_,"blocklyCommentTargetFocused"),this.svgHandleTarget_&&addClass$$module$build$src$core$utils$dom(this.svgHandleTarget_,"blocklyCommentHandleTargetFocused"))},0)}blurFocus(){this.focused_=!1;setTimeout(()=>{this.disposed_||(this.textarea_.blur(),this.removeFocus(),this.svgRectTarget_&&removeClass$$module$build$src$core$utils$dom(this.svgRectTarget_,"blocklyCommentTargetFocused"),this.svgHandleTarget_&&removeClass$$module$build$src$core$utils$dom(this.svgHandleTarget_, +"blocklyCommentHandleTargetFocused"))},0)}static fromXmlRendered(a,b,c){disable$$module$build$src$core$events$utils();let d;try{const e=WorkspaceComment$$module$build$src$core$workspace_comment.parseAttributes(a);d=new WorkspaceCommentSvg$$module$build$src$core$workspace_comment_svg(b,e.content,e.h,e.w,e.id);b.rendered&&(d.initSvg(!0),d.render());if(!isNaN(e.x)&&!isNaN(e.y))if(b.RTL){const f=c||b.getWidth();d.moveBy(f-e.x,e.y)}else d.moveBy(e.x,e.y)}finally{enable$$module$build$src$core$events$utils()}WorkspaceComment$$module$build$src$core$workspace_comment.fireCreateEvent(d); +return d}};WorkspaceCommentSvg$$module$build$src$core$workspace_comment_svg.DEFAULT_SIZE=100;WorkspaceCommentSvg$$module$build$src$core$workspace_comment_svg.TOP_OFFSET=10;register$$module$build$src$core$css("\n.blocklyCommentForeignObject {\n position: relative;\n z-index: 0;\n}\n\n.blocklyCommentRect {\n fill: #E7DE8E;\n stroke: #bcA903;\n stroke-width: 1px;\n}\n\n.blocklyCommentTarget {\n fill: transparent;\n stroke: #bcA903;\n}\n\n.blocklyCommentTargetFocused {\n fill: none;\n}\n\n.blocklyCommentHandleTarget {\n fill: none;\n}\n\n.blocklyCommentHandleTargetFocused {\n fill: transparent;\n}\n\n.blocklyFocused>.blocklyCommentRect {\n fill: #B9B272;\n stroke: #B9B272;\n}\n\n.blocklySelected>.blocklyCommentTarget {\n stroke: #fc3;\n stroke-width: 3px;\n}\n\n.blocklyCommentDeleteIcon {\n cursor: pointer;\n fill: #000;\n display: none;\n}\n\n.blocklySelected > .blocklyCommentDeleteIcon {\n display: block;\n}\n\n.blocklyDeleteIconShape {\n fill: #000;\n stroke: #000;\n stroke-width: 1px;\n}\n\n.blocklyDeleteIconShape.blocklyDeleteIconHighlighted {\n stroke: #fc3;\n}\n"); +var module$build$src$core$workspace_comment_svg={};module$build$src$core$workspace_comment_svg.WorkspaceCommentSvg=WorkspaceCommentSvg$$module$build$src$core$workspace_comment_svg;$.module$build$src$core$xml={};$.module$build$src$core$xml.appendDomToWorkspace=appendDomToWorkspace$$module$build$src$core$xml;$.module$build$src$core$xml.blockToDom=blockToDom$$module$build$src$core$xml;$.module$build$src$core$xml.blockToDomWithXY=blockToDomWithXY$$module$build$src$core$xml;$.module$build$src$core$xml.clearWorkspaceAndLoadFromXml=clearWorkspaceAndLoadFromXml$$module$build$src$core$xml;$.module$build$src$core$xml.deleteNext=deleteNext$$module$build$src$core$xml; +$.module$build$src$core$xml.domToBlock=domToBlock$$module$build$src$core$xml;$.module$build$src$core$xml.domToPrettyText=domToPrettyText$$module$build$src$core$xml;$.module$build$src$core$xml.domToText=domToText$$module$build$src$core$xml;$.module$build$src$core$xml.domToVariables=domToVariables$$module$build$src$core$xml;$.module$build$src$core$xml.domToWorkspace=domToWorkspace$$module$build$src$core$xml;$.module$build$src$core$xml.textToDom=textToDom$$module$build$src$core$xml; +$.module$build$src$core$xml.variablesToDom=variablesToDom$$module$build$src$core$xml;$.module$build$src$core$xml.workspaceToDom=workspaceToDom$$module$build$src$core$xml;var DeserializationError$$module$build$src$core$serialization$exceptions=class extends Error{},MissingBlockType$$module$build$src$core$serialization$exceptions=class extends DeserializationError$$module$build$src$core$serialization$exceptions{constructor(a){super("Expected to find a 'type' property, defining the block type");this.state=a}},MissingConnection$$module$build$src$core$serialization$exceptions=class extends DeserializationError$$module$build$src$core$serialization$exceptions{constructor(a, +b,c){super(`The block ${b.toDevString()} is missing a(n) ${a} +connection`);this.block=b;this.state=c}},BadConnectionCheck$$module$build$src$core$serialization$exceptions=class extends DeserializationError$$module$build$src$core$serialization$exceptions{constructor(a,b,c,d){super(`The block ${c.toDevString()} could not connect its +${b} to its parent, because: ${a}`);this.childBlock=c;this.childState=d}},RealChildOfShadow$$module$build$src$core$serialization$exceptions=class extends DeserializationError$$module$build$src$core$serialization$exceptions{constructor(a){super("Encountered a real block which is defined as a child of a shadow\nblock. It is an invariant of Blockly that shadow blocks only have shadow\nchildren");this.state=a}},module$build$src$core$serialization$exceptions={}; +module$build$src$core$serialization$exceptions.BadConnectionCheck=BadConnectionCheck$$module$build$src$core$serialization$exceptions;module$build$src$core$serialization$exceptions.DeserializationError=DeserializationError$$module$build$src$core$serialization$exceptions;module$build$src$core$serialization$exceptions.MissingBlockType=MissingBlockType$$module$build$src$core$serialization$exceptions;module$build$src$core$serialization$exceptions.MissingConnection=MissingConnection$$module$build$src$core$serialization$exceptions; +module$build$src$core$serialization$exceptions.RealChildOfShadow=RealChildOfShadow$$module$build$src$core$serialization$exceptions;var VARIABLES$$module$build$src$core$serialization$priorities=100,PROCEDURES$$module$build$src$core$serialization$priorities=75,BLOCKS$$module$build$src$core$serialization$priorities=50,module$build$src$core$serialization$priorities={};module$build$src$core$serialization$priorities.BLOCKS=BLOCKS$$module$build$src$core$serialization$priorities;module$build$src$core$serialization$priorities.PROCEDURES=PROCEDURES$$module$build$src$core$serialization$priorities; +module$build$src$core$serialization$priorities.VARIABLES=VARIABLES$$module$build$src$core$serialization$priorities;var module$build$src$core$serialization$registry={};module$build$src$core$serialization$registry.register=register$$module$build$src$core$serialization$registry;module$build$src$core$serialization$registry.unregister=unregister$$module$build$src$core$serialization$registry;var saveBlock$$module$build$src$core$serialization$blocks=save$$module$build$src$core$serialization$blocks,BlockSerializer$$module$build$src$core$serialization$blocks=class{constructor(){this.priority=BLOCKS$$module$build$src$core$serialization$priorities}save(a){const b=[];for(const c of a.getTopBlocks(!1))(a=save$$module$build$src$core$serialization$blocks(c,{addCoordinates:!0,doFullSerialization:!1}))&&b.push(a);return b.length?{languageVersion:0,blocks:b}:null}load(a,b){a=a.blocks;for(const c of a)append$$module$build$src$core$serialization$blocks(c, +b,{recordUndo:getRecordUndo$$module$build$src$core$events$utils()})}clear(a){for(const b of a.getTopBlocks(!1))b.dispose(!1)}};register$$module$build$src$core$serialization$registry("blocks",new BlockSerializer$$module$build$src$core$serialization$blocks);var module$build$src$core$serialization$blocks={};module$build$src$core$serialization$blocks.BlockSerializer=BlockSerializer$$module$build$src$core$serialization$blocks;module$build$src$core$serialization$blocks.append=append$$module$build$src$core$serialization$blocks; +module$build$src$core$serialization$blocks.appendInternal=appendInternal$$module$build$src$core$serialization$blocks;module$build$src$core$serialization$blocks.save=save$$module$build$src$core$serialization$blocks;var BlockBase$$module$build$src$core$events$events_block_base=class extends Abstract$$module$build$src$core$events$events_abstract{constructor(a){super();this.isBlank=!a;a&&(this.blockId=a.id,this.workspaceId=a.workspace.id)}toJson(){const a=super.toJson();if(!this.blockId)throw Error("The block ID is undefined. Either pass a block to the constructor, or call fromJson");a.blockId=this.blockId;return a}fromJson(a){warn$$module$build$src$core$utils$deprecation("Blockly.Events.BlockBase.prototype.fromJson", +"version 9","version 10","Blockly.Events.fromJson");super.fromJson(a);this.blockId=a.blockId}static fromJson(a,b,c){b=super.fromJson(a,b,null!=c?c:new BlockBase$$module$build$src$core$events$events_block_base);b.blockId=a.blockId;return b}},module$build$src$core$events$events_block_base={};module$build$src$core$events$events_block_base.BlockBase=BlockBase$$module$build$src$core$events$events_block_base;var BlockCreate$$module$build$src$core$events$events_block_create=class extends BlockBase$$module$build$src$core$events$events_block_base{constructor(a){super(a);this.type=CREATE$$module$build$src$core$events$utils;a&&(a.isShadow()&&(this.recordUndo=!1),this.xml=blockToDomWithXY$$module$build$src$core$xml(a),this.ids=getDescendantIds$$module$build$src$core$events$utils(a),this.json=save$$module$build$src$core$serialization$blocks(a,{addCoordinates:!0}))}toJson(){const a=super.toJson();if(!this.xml)throw Error("The block XML is undefined. Either pass a block to the constructor, or call fromJson"); +if(!this.ids)throw Error("The block IDs are undefined. Either pass a block to the constructor, or call fromJson");if(!this.json)throw Error("The block JSON is undefined. Either pass a block to the constructor, or call fromJson");a.xml=domToText$$module$build$src$core$xml(this.xml);a.ids=this.ids;a.json=this.json;this.recordUndo||(a.recordUndo=this.recordUndo);return a}fromJson(a){warn$$module$build$src$core$utils$deprecation("Blockly.Events.BlockCreate.prototype.fromJson","version 9","version 10", +"Blockly.Events.fromJson");super.fromJson(a);this.xml=textToDom$$module$build$src$core$utils$xml(a.xml);this.ids=a.ids;this.json=a.json;void 0!==a.recordUndo&&(this.recordUndo=a.recordUndo)}static fromJson(a,b,c){b=super.fromJson(a,b,null!=c?c:new BlockCreate$$module$build$src$core$events$events_block_create);b.xml=textToDom$$module$build$src$core$utils$xml(a.xml);b.ids=a.ids;b.json=a.json;void 0!==a.recordUndo&&(b.recordUndo=a.recordUndo);return b}run(a){const b=this.getEventWorkspace_();if(!this.json)throw Error("The block JSON is undefined. Either pass a block to the constructor, or call fromJson"); +if(!this.ids)throw Error("The block IDs are undefined. Either pass a block to the constructor, or call fromJson");if(a)append$$module$build$src$core$serialization$blocks(this.json,b);else for(a=0;a"));fire$$module$build$src$core$events$utils(new BlockChange$$module$build$src$core$events$events_block_change(b, +"mutation",null,c,a));break;default:console.warn("Unknown change type: "+this.element)}}static getExtraBlockState_(a){return a.saveExtraState?(a=a.saveExtraState())?JSON.stringify(a):"":a.mutationToDom?(a=a.mutationToDom())?domToText$$module$build$src$core$xml(a):"":""}};register$$module$build$src$core$registry(Type$$module$build$src$core$registry.EVENT,CHANGE$$module$build$src$core$events$utils,BlockChange$$module$build$src$core$events$events_block_change); +var module$build$src$core$events$events_block_change={};module$build$src$core$events$events_block_change.BlockChange=BlockChange$$module$build$src$core$events$events_block_change;var BlockDelete$$module$build$src$core$events$events_block_delete=class extends BlockBase$$module$build$src$core$events$events_block_base{constructor(a){super(a);this.type=DELETE$$module$build$src$core$events$utils;if(a){if(a.getParent())throw Error("Connected blocks cannot be deleted.");a.isShadow()&&(this.recordUndo=!1);this.oldXml=blockToDomWithXY$$module$build$src$core$xml(a);this.ids=getDescendantIds$$module$build$src$core$events$utils(a);this.wasShadow=a.isShadow();this.oldJson=save$$module$build$src$core$serialization$blocks(a, +{addCoordinates:!0})}}toJson(){const a=super.toJson();if(!this.oldXml)throw Error("The old block XML is undefined. Either pass a block to the constructor, or call fromJson");if(!this.ids)throw Error("The block IDs are undefined. Either pass a block to the constructor, or call fromJson");if(void 0===this.wasShadow)throw Error("Whether the block was a shadow is undefined. Either pass a block to the constructor, or call fromJson");if(!this.oldJson)throw Error("The old block JSON is undefined. Either pass a block to the constructor, or call fromJson"); +a.oldXml=domToText$$module$build$src$core$xml(this.oldXml);a.ids=this.ids;a.wasShadow=this.wasShadow;a.oldJson=this.oldJson;this.recordUndo||(a.recordUndo=this.recordUndo);return a}fromJson(a){warn$$module$build$src$core$utils$deprecation("Blockly.Events.BlockDelete.prototype.fromJson","version 9","version 10","Blockly.Events.fromJson");super.fromJson(a);this.oldXml=textToDom$$module$build$src$core$utils$xml(a.oldXml);this.ids=a.ids;this.wasShadow=a.wasShadow||"shadow"===this.oldXml.tagName.toLowerCase(); +this.oldJson=a.oldJson;void 0!==a.recordUndo&&(this.recordUndo=a.recordUndo)}static fromJson(a,b,c){b=super.fromJson(a,b,null!=c?c:new BlockDelete$$module$build$src$core$events$events_block_delete);b.oldXml=textToDom$$module$build$src$core$utils$xml(a.oldXml);b.ids=a.ids;b.wasShadow=a.wasShadow||"shadow"===b.oldXml.tagName.toLowerCase();b.oldJson=a.oldJson;void 0!==a.recordUndo&&(b.recordUndo=a.recordUndo);return b}run(a){const b=this.getEventWorkspace_();if(!this.ids)throw Error("The block IDs are undefined. Either pass a block to the constructor, or call fromJson"); +if(!this.oldJson)throw Error("The old block JSON is undefined. Either pass a block to the constructor, or call fromJson");if(a)for(a=0;ae.top?getPositionAboveMetrics$$module$build$src$core$dropdowndiv(c,d,e,f):b+f.heightdocument.documentElement.clientTop?getPositionAboveMetrics$$module$build$src$core$dropdowndiv(c,d,e,f):getPositionTopOfPageMetrics$$module$build$src$core$dropdowndiv(a,e,f)}},TEST_ONLY$$module$build$src$core$dropdowndiv=internal$$module$build$src$core$dropdowndiv,module$build$src$core$dropdowndiv={};module$build$src$core$dropdowndiv.ANIMATION_TIME=ANIMATION_TIME$$module$build$src$core$dropdowndiv; +module$build$src$core$dropdowndiv.ARROW_HORIZONTAL_PADDING=ARROW_HORIZONTAL_PADDING$$module$build$src$core$dropdowndiv;module$build$src$core$dropdowndiv.ARROW_SIZE=ARROW_SIZE$$module$build$src$core$dropdowndiv;module$build$src$core$dropdowndiv.BORDER_SIZE=BORDER_SIZE$$module$build$src$core$dropdowndiv;module$build$src$core$dropdowndiv.PADDING_Y=PADDING_Y$$module$build$src$core$dropdowndiv;module$build$src$core$dropdowndiv.TEST_ONLY=internal$$module$build$src$core$dropdowndiv; +module$build$src$core$dropdowndiv.clearContent=clearContent$$module$build$src$core$dropdowndiv;module$build$src$core$dropdowndiv.createDom=createDom$$module$build$src$core$dropdowndiv;module$build$src$core$dropdowndiv.getContentDiv=getContentDiv$$module$build$src$core$dropdowndiv;module$build$src$core$dropdowndiv.getOwner=getOwner$$module$build$src$core$dropdowndiv;module$build$src$core$dropdowndiv.getPositionX=getPositionX$$module$build$src$core$dropdowndiv; +module$build$src$core$dropdowndiv.hide=hide$$module$build$src$core$dropdowndiv;module$build$src$core$dropdowndiv.hideIfOwner=hideIfOwner$$module$build$src$core$dropdowndiv;module$build$src$core$dropdowndiv.hideWithoutAnimation=hideWithoutAnimation$$module$build$src$core$dropdowndiv;module$build$src$core$dropdowndiv.isVisible=isVisible$$module$build$src$core$dropdowndiv;module$build$src$core$dropdowndiv.repositionForWindowResize=repositionForWindowResize$$module$build$src$core$dropdowndiv; +module$build$src$core$dropdowndiv.setBoundsElement=setBoundsElement$$module$build$src$core$dropdowndiv;module$build$src$core$dropdowndiv.setColour=setColour$$module$build$src$core$dropdowndiv;module$build$src$core$dropdowndiv.show=show$$module$build$src$core$dropdowndiv;module$build$src$core$dropdowndiv.showPositionedByBlock=showPositionedByBlock$$module$build$src$core$dropdowndiv;module$build$src$core$dropdowndiv.showPositionedByField=showPositionedByField$$module$build$src$core$dropdowndiv;var MarkerManager$$module$build$src$core$marker_manager=class{constructor(a){this.workspace=a;this.cursorSvg_=this.cursor_=null;this.markers=new Map;this.markerSvg_=null}registerMarker(a,b){this.markers.has(a)&&this.unregisterMarker(a);b.setDrawer(this.workspace.getRenderer().makeMarkerDrawer(this.workspace,b));this.setMarkerSvg(b.getDrawer().createDom());this.markers.set(a,b)}unregisterMarker(a){const b=this.markers.get(a);if(b)b.dispose(),this.markers.delete(a);else throw Error("Marker with ID "+ +a+" does not exist. Can only unregister markers that exist.");}getCursor(){return this.cursor_}getMarker(a){return this.markers.get(a)||null}setCursor(a){this.cursor_&&this.cursor_.getDrawer()&&this.cursor_.getDrawer().dispose();if(this.cursor_=a)a=this.workspace.getRenderer().makeMarkerDrawer(this.workspace,this.cursor_),this.cursor_.setDrawer(a),this.setCursorSvg(this.cursor_.getDrawer().createDom())}setCursorSvg(a){a?(this.workspace.getBlockCanvas().appendChild(a),this.cursorSvg_=a):this.cursorSvg_= +null}setMarkerSvg(a){a?this.workspace.getBlockCanvas()&&(this.cursorSvg_?this.workspace.getBlockCanvas().insertBefore(a,this.cursorSvg_):this.workspace.getBlockCanvas().appendChild(a)):this.markerSvg_=null}updateMarkers(){this.workspace.keyboardAccessibilityMode&&this.cursorSvg_&&this.workspace.getCursor().draw()}dispose(){const a=Object.keys(this.markers);for(let b=0,c;c=a[b];b++)this.unregisterMarker(c);this.markers.clear();this.cursor_&&(this.cursor_.dispose(),this.cursor_=null)}}; +MarkerManager$$module$build$src$core$marker_manager.LOCAL_MARKER="local_marker_1";var module$build$src$core$marker_manager={};module$build$src$core$marker_manager.MarkerManager=MarkerManager$$module$build$src$core$marker_manager;$.module$build$src$core$utils$string={};$.module$build$src$core$utils$string.commonWordPrefix=commonWordPrefix$$module$build$src$core$utils$string;$.module$build$src$core$utils$string.commonWordSuffix=commonWordSuffix$$module$build$src$core$utils$string;$.module$build$src$core$utils$string.isNumber=isNumber$$module$build$src$core$utils$string;$.module$build$src$core$utils$string.shortestStringLength=shortestStringLength$$module$build$src$core$utils$string; +$.module$build$src$core$utils$string.startsWith=startsWith$$module$build$src$core$utils$string;$.module$build$src$core$utils$string.wrap=wrap$$module$build$src$core$utils$string;var customTooltip$$module$build$src$core$tooltip=void 0,visible$$module$build$src$core$tooltip=!1,blocked$$module$build$src$core$tooltip=!1,LIMIT$$module$build$src$core$tooltip=50,mouseOutPid$$module$build$src$core$tooltip=0,showPid$$module$build$src$core$tooltip=0,lastX$$module$build$src$core$tooltip=0,lastY$$module$build$src$core$tooltip=0,element$$module$build$src$core$tooltip=null,poisonedElement$$module$build$src$core$tooltip=null,OFFSET_X$$module$build$src$core$tooltip=0,OFFSET_Y$$module$build$src$core$tooltip= +10,RADIUS_OK$$module$build$src$core$tooltip=10,HOVER_MS$$module$build$src$core$tooltip=750,MARGINS$$module$build$src$core$tooltip=5,containerDiv$$module$build$src$core$tooltip=null,module$build$src$core$tooltip={};module$build$src$core$tooltip.HOVER_MS=HOVER_MS$$module$build$src$core$tooltip;module$build$src$core$tooltip.LIMIT=LIMIT$$module$build$src$core$tooltip;module$build$src$core$tooltip.MARGINS=MARGINS$$module$build$src$core$tooltip;module$build$src$core$tooltip.OFFSET_X=OFFSET_X$$module$build$src$core$tooltip; +module$build$src$core$tooltip.OFFSET_Y=OFFSET_Y$$module$build$src$core$tooltip;module$build$src$core$tooltip.RADIUS_OK=RADIUS_OK$$module$build$src$core$tooltip;module$build$src$core$tooltip.bindMouseEvents=bindMouseEvents$$module$build$src$core$tooltip;module$build$src$core$tooltip.block=block$$module$build$src$core$tooltip;module$build$src$core$tooltip.createDom=createDom$$module$build$src$core$tooltip;module$build$src$core$tooltip.dispose=dispose$$module$build$src$core$tooltip; +module$build$src$core$tooltip.getCustomTooltip=getCustomTooltip$$module$build$src$core$tooltip;module$build$src$core$tooltip.getDiv=getDiv$$module$build$src$core$tooltip;module$build$src$core$tooltip.getTooltipOfObject=getTooltipOfObject$$module$build$src$core$tooltip;module$build$src$core$tooltip.hide=hide$$module$build$src$core$tooltip;module$build$src$core$tooltip.isVisible=isVisible$$module$build$src$core$tooltip;module$build$src$core$tooltip.setCustomTooltip=setCustomTooltip$$module$build$src$core$tooltip; +module$build$src$core$tooltip.unbindMouseEvents=unbindMouseEvents$$module$build$src$core$tooltip;module$build$src$core$tooltip.unblock=unblock$$module$build$src$core$tooltip;var hsvSaturation$$module$build$src$core$utils$colour=.45,hsvValue$$module$build$src$core$utils$colour=.65,names$$module$build$src$core$utils$colour={aqua:"#00ffff",black:"#000000",blue:"#0000ff",fuchsia:"#ff00ff",gray:"#808080",green:"#008000",lime:"#00ff00",maroon:"#800000",navy:"#000080",olive:"#808000",purple:"#800080",red:"#ff0000",silver:"#c0c0c0",teal:"#008080",white:"#ffffff",yellow:"#ffff00"},module$build$src$core$utils$colour={};module$build$src$core$utils$colour.blend=blend$$module$build$src$core$utils$colour; +module$build$src$core$utils$colour.getHsvSaturation=getHsvSaturation$$module$build$src$core$utils$colour;module$build$src$core$utils$colour.getHsvValue=getHsvValue$$module$build$src$core$utils$colour;module$build$src$core$utils$colour.hexToRgb=hexToRgb$$module$build$src$core$utils$colour;module$build$src$core$utils$colour.hsvToHex=hsvToHex$$module$build$src$core$utils$colour;module$build$src$core$utils$colour.hueToHex=hueToHex$$module$build$src$core$utils$colour; +module$build$src$core$utils$colour.names=names$$module$build$src$core$utils$colour;module$build$src$core$utils$colour.parse=parse$$module$build$src$core$utils$colour;module$build$src$core$utils$colour.rgbToHex=rgbToHex$$module$build$src$core$utils$colour;module$build$src$core$utils$colour.setHsvSaturation=setHsvSaturation$$module$build$src$core$utils$colour;module$build$src$core$utils$colour.setHsvValue=setHsvValue$$module$build$src$core$utils$colour;var module$build$src$core$utils$parsing={};module$build$src$core$utils$parsing.checkMessageReferences=checkMessageReferences$$module$build$src$core$utils$parsing;module$build$src$core$utils$parsing.parseBlockColour=parseBlockColour$$module$build$src$core$utils$parsing;module$build$src$core$utils$parsing.replaceMessageReferences=replaceMessageReferences$$module$build$src$core$utils$parsing;module$build$src$core$utils$parsing.tokenizeInterpolation=tokenizeInterpolation$$module$build$src$core$utils$parsing;var owner$$module$build$src$core$widgetdiv=null,dispose$$module$build$src$core$widgetdiv=null,rendererClassName$$module$build$src$core$widgetdiv="",themeClassName$$module$build$src$core$widgetdiv="",containerDiv$$module$build$src$core$widgetdiv,module$build$src$core$widgetdiv={};module$build$src$core$widgetdiv.createDom=createDom$$module$build$src$core$widgetdiv;module$build$src$core$widgetdiv.getDiv=getDiv$$module$build$src$core$widgetdiv;module$build$src$core$widgetdiv.hide=hide$$module$build$src$core$widgetdiv; +module$build$src$core$widgetdiv.hideIfOwner=hideIfOwner$$module$build$src$core$widgetdiv;module$build$src$core$widgetdiv.isVisible=isVisible$$module$build$src$core$widgetdiv;module$build$src$core$widgetdiv.positionWithAnchor=positionWithAnchor$$module$build$src$core$widgetdiv;module$build$src$core$widgetdiv.show=show$$module$build$src$core$widgetdiv;module$build$src$core$widgetdiv.testOnly_setDiv=testOnly_setDiv$$module$build$src$core$widgetdiv;var Field$$module$build$src$core$field=class{constructor(a,b,c){this.DEFAULT_VALUE=null;this.name=void 0;this.constants_=this.mouseDownWrapper_=this.textContent_=this.textElement_=this.borderRect_=this.fieldGroup_=this.markerSvg_=this.cursorSvg_=this.tooltip_=this.validator_=null;this.disposed=!1;this.maxDisplayLength=50;this.sourceBlock_=null;this.enabled_=this.visible_=this.isDirty_=!0;this.suffixField=this.prefixField=this.clickTarget_=null;this.EDITABLE=!0;this.SERIALIZABLE=!1;this.CURSOR=""; +this.value_="DEFAULT_VALUE"in new.target.prototype?new.target.prototype.DEFAULT_VALUE:this.DEFAULT_VALUE;this.size_=new Size$$module$build$src$core$utils$size(0,0);a!==Field$$module$build$src$core$field.SKIP_SETUP&&(c&&this.configure_(c),this.setValue(a),b&&this.setValidator(b))}configure_(a){a.tooltip&&this.setTooltip(replaceMessageReferences$$module$build$src$core$utils$parsing(a.tooltip))}setSourceBlock(a){if(this.sourceBlock_)throw Error("Field already bound to a block");this.sourceBlock_=a}getConstants(){!this.constants_&& +this.sourceBlock_&&!this.sourceBlock_.isDeadOrDying()&&this.sourceBlock_.workspace.rendered&&(this.constants_=this.sourceBlock_.workspace.getRenderer().getConstants());return this.constants_}getSourceBlock(){return this.sourceBlock_}init(){this.fieldGroup_||(this.fieldGroup_=createSvgElement$$module$build$src$core$utils$dom(Svg$$module$build$src$core$utils$svg.G,{}),this.isVisible()||(this.fieldGroup_.style.display="none"),this.sourceBlock_.getSvgRoot().appendChild(this.fieldGroup_),this.initView(), +this.updateEditable(),this.setTooltip(this.tooltip_),this.bindEvents_(),this.initModel())}initView(){this.createBorderRect_();this.createTextElement_()}initModel(){}createBorderRect_(){this.borderRect_=createSvgElement$$module$build$src$core$utils$dom(Svg$$module$build$src$core$utils$svg.RECT,{rx:this.getConstants().FIELD_BORDER_RECT_RADIUS,ry:this.getConstants().FIELD_BORDER_RECT_RADIUS,x:0,y:0,height:this.size_.height,width:this.size_.width,"class":"blocklyFieldRect"},this.fieldGroup_)}createTextElement_(){this.textElement_= +createSvgElement$$module$build$src$core$utils$dom(Svg$$module$build$src$core$utils$svg.TEXT,{"class":"blocklyText"},this.fieldGroup_);this.getConstants().FIELD_TEXT_BASELINE_CENTER&&this.textElement_.setAttribute("dominant-baseline","central");this.textContent_=document.createTextNode("");this.textElement_.appendChild(this.textContent_)}bindEvents_(){const a=this.getClickTarget_();if(!a)throw Error("A click target has not been set.");bindMouseEvents$$module$build$src$core$tooltip(a);this.mouseDownWrapper_= +conditionalBind$$module$build$src$core$browser_events(a,"pointerdown",this,this.onMouseDown_)}fromXml(a){this.setValue(a.textContent)}toXml(a){a.textContent=this.getValue();return a}saveState(a){a=this.saveLegacyState(Field$$module$build$src$core$field);return null!==a?a:this.getValue()}loadState(a){this.loadLegacyState(Field$$module$build$src$core$field,a)||this.setValue(a)}saveLegacyState(a){return a.prototype.saveState===this.saveState&&a.prototype.toXml!==this.toXml?(a=$.createElement$$module$build$src$core$utils$xml("field"), +a.setAttribute("name",this.name||""),domToText$$module$build$src$core$utils$xml(this.toXml(a)).replace(' xmlns="https://developers.google.com/blockly/xml"',"")):null}loadLegacyState(a,b){return a.prototype.loadState===this.loadState&&a.prototype.fromXml!==this.fromXml?(this.fromXml(textToDom$$module$build$src$core$utils$xml(b)),!0):!1}dispose(){hideIfOwner$$module$build$src$core$dropdowndiv(this);hideIfOwner$$module$build$src$core$widgetdiv(this);let a;(null==(a=this.getSourceBlock())?0:a.isDeadOrDying())|| +removeNode$$module$build$src$core$utils$dom(this.fieldGroup_);this.disposed=!0}updateEditable(){const a=this.fieldGroup_,b=this.getSourceBlock();this.EDITABLE&&a&&b&&(this.enabled_&&b.isEditable()?(addClass$$module$build$src$core$utils$dom(a,"blocklyEditableText"),removeClass$$module$build$src$core$utils$dom(a,"blocklyNonEditableText"),a.style.cursor=this.CURSOR):(addClass$$module$build$src$core$utils$dom(a,"blocklyNonEditableText"),removeClass$$module$build$src$core$utils$dom(a,"blocklyEditableText"), +a.style.cursor=""))}setEnabled(a){this.enabled_=a;this.updateEditable()}isEnabled(){return this.enabled_}isClickable(){return this.enabled_&&!!this.sourceBlock_&&this.sourceBlock_.isEditable()&&this.showEditor_!==Field$$module$build$src$core$field.prototype.showEditor_}isCurrentlyEditable(){return this.enabled_&&this.EDITABLE&&!!this.sourceBlock_&&this.sourceBlock_.isEditable()}isSerializable(){let a=!1;this.name&&(this.SERIALIZABLE?a=!0:this.EDITABLE&&(console.warn("Detected an editable field that was not serializable. Please define SERIALIZABLE property as true on all editable custom fields. Proceeding with serialization."), +a=!0));return a}isVisible(){return this.visible_}setVisible(a){if(this.visible_!==a){this.visible_=a;var b=this.fieldGroup_;b&&(b.style.display=a?"block":"none")}}setValidator(a){this.validator_=a}getValidator(){return this.validator_}getSvgRoot(){return this.fieldGroup_}getBorderRect(){if(!this.borderRect_)throw Error(`The border rectangle is ${this.borderRect_}.`);return this.borderRect_}getTextElement(){if(!this.textElement_)throw Error(`The text element is ${this.textElement_}.`);return this.textElement_}getTextContent(){if(!this.textContent_)throw Error(`The text content is ${this.textContent_}.`); +return this.textContent_}applyColour(){}render_(){this.textContent_&&(this.textContent_.nodeValue=this.getDisplayText_());this.updateSize_()}showEditor(a){this.isClickable()&&this.showEditor_(a)}showEditor_(a){}updateSize_(a){const b=this.getConstants();a=void 0!==a?a:this.borderRect_?this.getConstants().FIELD_BORDER_RECT_X_PADDING:0;let c=2*a,d=b.FIELD_TEXT_HEIGHT,e=0;this.textElement_&&(e=getFastTextWidth$$module$build$src$core$utils$dom(this.textElement_,b.FIELD_TEXT_FONTSIZE,b.FIELD_TEXT_FONTWEIGHT, +b.FIELD_TEXT_FONTFAMILY),c+=e);this.borderRect_&&(d=Math.max(d,b.FIELD_BORDER_RECT_HEIGHT));this.size_.height=d;this.size_.width=c;this.positionTextElement_(a,e);this.positionBorderRect_()}positionTextElement_(a,b){if(this.textElement_){var c=this.getConstants(),d=this.size_.height/2,e;this.textElement_.setAttribute("x",String((null==(e=this.getSourceBlock())?0:e.RTL)?this.size_.width-b-a:a));this.textElement_.setAttribute("y",String(c.FIELD_TEXT_BASELINE_CENTER?d:d-c.FIELD_TEXT_HEIGHT/2+c.FIELD_TEXT_BASELINE))}}positionBorderRect_(){this.borderRect_&& +(this.borderRect_.setAttribute("width",String(this.size_.width)),this.borderRect_.setAttribute("height",String(this.size_.height)),this.borderRect_.setAttribute("rx",String(this.getConstants().FIELD_BORDER_RECT_RADIUS)),this.borderRect_.setAttribute("ry",String(this.getConstants().FIELD_BORDER_RECT_RADIUS)))}getSize(){if(!this.isVisible())return new Size$$module$build$src$core$utils$size(0,0);this.isDirty_?(this.render_(),this.isDirty_=!1):this.visible_&&0===this.size_.width&&(this.render_(),0!== +this.size_.width&&console.warn("Deprecated use of setting size_.width to 0 to rerender a field. Set field.isDirty_ to true instead."));return this.size_}getScaledBBox(){let a;var b=this.getSourceBlock();if(!b)throw new UnattachedFieldError$$module$build$src$core$field;if(this.borderRect_){var c=this.borderRect_.getBoundingClientRect();a=getPageOffset$$module$build$src$core$utils$style(this.borderRect_);b=c.width;c=c.height}else{c=this.sourceBlock_.getHeightWidth();const d=b.workspace.scale;a=this.getAbsoluteXY_(); +b=(c.width+1)*d;c=(c.height+1)*d;GECKO$$module$build$src$core$utils$useragent?(a.x+=1.5*d,a.y+=1.5*d):(a.x-=.5*d,a.y-=.5*d)}return new Rect$$module$build$src$core$utils$rect(a.y,a.y+c,a.x,a.x+b)}getDisplayText_(){let a=this.getText();if(!a)return Field$$module$build$src$core$field.NBSP;a.length>this.maxDisplayLength&&(a=a.substring(0,this.maxDisplayLength-2)+"\u2026");a=a.replace(/\s/g,Field$$module$build$src$core$field.NBSP);this.sourceBlock_&&this.sourceBlock_.RTL&&(a+="\u200f");return a}getText(){const a= +this.getText_();return null!==a?String(a):String(this.getValue())}getText_(){return null}markDirty(){this.isDirty_=!0;this.constants_=null}forceRerender(){this.isDirty_=!0;this.sourceBlock_&&this.sourceBlock_.rendered&&(this.sourceBlock_.queueRender(),this.sourceBlock_.bumpNeighbours())}setValue(a){if(null!==a){var b=this.doClassValidation_(a);a=this.processValidation_(a,b);if(!(a instanceof Error)){var c;b=null==(c=this.getValidator())?void 0:c.call(this,a);c=this.processValidation_(a,b);c instanceof +Error||(a=this.sourceBlock_,a&&a.disposed||(b=this.getValue(),b===c?this.doValueUpdate_(c):(this.doValueUpdate_(c),a&&isEnabled$$module$build$src$core$events$utils()&&fire$$module$build$src$core$events$utils(new (get$$module$build$src$core$events$utils(CHANGE$$module$build$src$core$events$utils))(a,"field",this.name||null,b,c)),this.isDirty_&&this.forceRerender())))}}}processValidation_(a,b){return null===b?(this.doValueInvalid_(a),this.isDirty_&&this.forceRerender(),Error()):void 0===b?a:b}getValue(){return this.value_}doClassValidation_(a){return null=== +a||void 0===a?null:a}doValueUpdate_(a){this.value_=a;this.isDirty_=!0}doValueInvalid_(a){}onMouseDown_(a){this.sourceBlock_&&!this.sourceBlock_.isDeadOrDying()&&(a=this.sourceBlock_.workspace.getGesture(a))&&a.setStartField(this)}setTooltip(a){a||""===a||(a=this.sourceBlock_);const b=this.getClickTarget_();b?b.tooltip=a:this.tooltip_=a}getTooltip(){const a=this.getClickTarget_();return a?getTooltipOfObject$$module$build$src$core$tooltip(a):getTooltipOfObject$$module$build$src$core$tooltip({tooltip:this.tooltip_})}getClickTarget_(){return this.clickTarget_|| +this.getSvgRoot()}getAbsoluteXY_(){return getPageOffset$$module$build$src$core$utils$style(this.getClickTarget_())}referencesVariables(){return!1}refreshVariableName(){}getParentInput(){let a=null;const b=this.getSourceBlock();if(!b)throw new UnattachedFieldError$$module$build$src$core$field;const c=b.inputList;for(let d=0;da?this.menuItems.length:a,-1)}highlightFirst(){this.highlightHelper(-1,1)}highlightLast(){this.highlightHelper(this.menuItems.length,-1)}highlightHelper(a, +b){a+=b;let c;for(;c=this.menuItems[a];){if(c.isEnabled()){this.setHighlighted(c);break}a+=b}}handleMouseOver(a){(a=this.getMenuItem(a.target))&&(a.isEnabled()?this.highlightedItem!==a&&this.setHighlighted(a):this.setHighlighted(null))}handleClick(a){const b=this.openingCoords;this.openingCoords=null;if(b&&"number"===typeof a.clientX){const c=new Coordinate$$module$build$src$core$utils$coordinate(a.clientX,a.clientY);if(1>Coordinate$$module$build$src$core$utils$coordinate.distance(b,c))return}(a= +this.getMenuItem(a.target))&&a.performAction()}handleMouseEnter(a){this.focus()}handleMouseLeave(a){this.getElement()&&(this.blur(),this.setHighlighted(null))}handleKeyEvent(a){if(this.menuItems.length&&!(a.shiftKey||a.ctrlKey||a.metaKey||a.altKey)){var b=this.highlightedItem;switch(a.key){case "Enter":case " ":b&&b.performAction();break;case "ArrowUp":this.highlightPrevious();break;case "ArrowDown":this.highlightNext();break;case "PageUp":case "Home":this.highlightFirst();break;case "PageDown":case "End":this.highlightLast(); +break;default:return}a.preventDefault();a.stopPropagation()}}getSize(){const a=this.getElement(),b=getSize$$module$build$src$core$utils$style(a);b.height=a.scrollHeight;return b}},module$build$src$core$menu={};module$build$src$core$menu.Menu=Menu$$module$build$src$core$menu;var MenuItem$$module$build$src$core$menuitem=class{constructor(a,b){this.content=a;this.opt_value=b;this.enabled=!0;this.element=null;this.rightToLeft=!1;this.roleName=null;this.highlight=this.checked=this.checkable=!1;this.actionHandler=null}createDom(){const a=document.createElement("div");a.id=getNextUniqueId$$module$build$src$core$utils$idgenerator();this.element=a;a.className="blocklyMenuItem goog-menuitem "+(this.enabled?"":"blocklyMenuItemDisabled goog-menuitem-disabled ")+(this.checked?"blocklyMenuItemSelected goog-option-selected ": +"")+(this.highlight?"blocklyMenuItemHighlight goog-menuitem-highlight ":"")+(this.rightToLeft?"blocklyMenuItemRtl goog-menuitem-rtl ":"");const b=document.createElement("div");b.className="blocklyMenuItemContent goog-menuitem-content";if(this.checkable){var c=document.createElement("div");c.className="blocklyMenuItemCheckbox goog-menuitem-checkbox";b.appendChild(c)}c=this.content;"string"===typeof this.content&&(c=document.createTextNode(this.content));b.appendChild(c);a.appendChild(b);this.roleName&& +setRole$$module$build$src$core$utils$aria(a,this.roleName);setState$$module$build$src$core$utils$aria(a,State$$module$build$src$core$utils$aria.SELECTED,this.checkable&&this.checked||!1);setState$$module$build$src$core$utils$aria(a,State$$module$build$src$core$utils$aria.DISABLED,!this.enabled);return a}dispose(){this.element=null}getElement(){return this.element}getId(){return this.element.id}getValue(){let a;return null!=(a=this.opt_value)?a:null}setRightToLeft(a){this.rightToLeft=a}setRole(a){this.roleName= +a}setCheckable(a){this.checkable=a}setChecked(a){this.checked=a}setHighlighted(a){this.highlight=a;const b=this.getElement();b&&this.isEnabled()&&(a?(addClass$$module$build$src$core$utils$dom(b,"blocklyMenuItemHighlight"),addClass$$module$build$src$core$utils$dom(b,"goog-menuitem-highlight")):(removeClass$$module$build$src$core$utils$dom(b,"blocklyMenuItemHighlight"),removeClass$$module$build$src$core$utils$dom(b,"goog-menuitem-highlight")))}isEnabled(){return this.enabled}setEnabled(a){this.enabled= +a}performAction(){this.isEnabled()&&this.actionHandler&&this.actionHandler(this)}onAction(a,b){this.actionHandler=a.bind(b)}},module$build$src$core$menuitem={};module$build$src$core$menuitem.MenuItem=MenuItem$$module$build$src$core$menuitem;var FieldDropdown$$module$build$src$core$field_dropdown=class extends Field$$module$build$src$core$field{constructor(a,b,c){super(Field$$module$build$src$core$field.SKIP_SETUP);this.svgArrow_=this.arrow_=this.imageElement_=this.menu_=this.selectedMenuItem_=null;this.SERIALIZABLE=!0;this.CURSOR="default";this.clickTarget_=this.suffixField=this.prefixField=this.generatedOptions_=null;a!==Field$$module$build$src$core$field.SKIP_SETUP&&(Array.isArray(a)?(validateOptions$$module$build$src$core$field_dropdown(a), +a=trimOptions$$module$build$src$core$field_dropdown(a),this.menuGenerator_=a.options,this.prefixField=a.prefix||null,this.suffixField=a.suffix||null):this.menuGenerator_=a,this.selectedOption_=this.getOptions(!1)[0],c&&this.configure_(c),this.setValue(this.selectedOption_[1]),b&&this.setValidator(b))}fromXml(a){this.isOptionListDynamic()&&this.getOptions(!1);this.setValue(a.textContent)}loadState(a){this.loadLegacyState(FieldDropdown$$module$build$src$core$field_dropdown,a)||(this.isOptionListDynamic()&& +this.getOptions(!1),this.setValue(a))}initView(){this.shouldAddBorderRect_()?this.createBorderRect_():this.clickTarget_=this.sourceBlock_.getSvgRoot();this.createTextElement_();this.imageElement_=createSvgElement$$module$build$src$core$utils$dom(Svg$$module$build$src$core$utils$svg.IMAGE,{},this.fieldGroup_);this.getConstants().FIELD_DROPDOWN_SVG_ARROW?this.createSVGArrow_():this.createTextArrow_();this.borderRect_&&addClass$$module$build$src$core$utils$dom(this.borderRect_,"blocklyDropdownRect")}shouldAddBorderRect_(){let a; +return!this.getConstants().FIELD_DROPDOWN_NO_BORDER_RECT_SHADOW||this.getConstants().FIELD_DROPDOWN_NO_BORDER_RECT_SHADOW&&!(null==(a=this.getSourceBlock())?0:a.isShadow())}createTextArrow_(){this.arrow_=createSvgElement$$module$build$src$core$utils$dom(Svg$$module$build$src$core$utils$svg.TSPAN,{},this.textElement_);let a;this.arrow_.appendChild(document.createTextNode((null==(a=this.getSourceBlock())?0:a.RTL)?FieldDropdown$$module$build$src$core$field_dropdown.ARROW_CHAR+" ":" "+FieldDropdown$$module$build$src$core$field_dropdown.ARROW_CHAR)); +let b;(null==(b=this.getSourceBlock())?0:b.RTL)?this.getTextElement().insertBefore(this.arrow_,this.textContent_):this.getTextElement().appendChild(this.arrow_)}createSVGArrow_(){this.svgArrow_=createSvgElement$$module$build$src$core$utils$dom(Svg$$module$build$src$core$utils$svg.IMAGE,{height:this.getConstants().FIELD_DROPDOWN_SVG_ARROW_SIZE+"px",width:this.getConstants().FIELD_DROPDOWN_SVG_ARROW_SIZE+"px"},this.fieldGroup_);this.svgArrow_.setAttributeNS(XLINK_NS$$module$build$src$core$utils$dom, +"xlink:href",this.getConstants().FIELD_DROPDOWN_SVG_ARROW_DATAURI)}showEditor_(a){var b=this.getSourceBlock();if(!b)throw new UnattachedFieldError$$module$build$src$core$field;this.dropdownCreate_();this.menu_.openingCoords=a&&"number"===typeof a.clientX?new Coordinate$$module$build$src$core$utils$coordinate(a.clientX,a.clientY):null;clearContent$$module$build$src$core$dropdowndiv();a=this.menu_.render(getContentDiv$$module$build$src$core$dropdowndiv());addClass$$module$build$src$core$utils$dom(a, +"blocklyDropdownMenu");this.getConstants().FIELD_DROPDOWN_COLOURED_DIV&&(a=b.isShadow()?b.getParent().getColour():b.getColour(),b=b.isShadow()?b.getParent().style.colourTertiary:this.sourceBlock_.style.colourTertiary,setColour$$module$build$src$core$dropdowndiv(a,b));showPositionedByField$$module$build$src$core$dropdowndiv(this,this.dropdownDispose_.bind(this));this.menu_.focus();this.selectedMenuItem_&&(this.menu_.setHighlighted(this.selectedMenuItem_),scrollIntoContainerView$$module$build$src$core$utils$style(this.selectedMenuItem_.getElement(), +getContentDiv$$module$build$src$core$dropdowndiv(),!0));this.applyColour()}dropdownCreate_(){const a=this.getSourceBlock();if(!a)throw new UnattachedFieldError$$module$build$src$core$field;const b=new Menu$$module$build$src$core$menu;b.setRole(Role$$module$build$src$core$utils$aria.LISTBOX);this.menu_=b;const c=this.getOptions(!1);this.selectedMenuItem_=null;for(let e=0;e +b[1]===a)?a:(this.sourceBlock_&&console.warn("Cannot set the dropdown's value to an unavailable option. Block type: "+this.sourceBlock_.type+", Field name: "+this.name+", Value: "+a),null)}doValueUpdate_(a){super.doValueUpdate_(a);a=this.getOptions(!0);for(let b=0,c;c=a[b];b++)c[1]===this.value_&&(this.selectedOption_=c)}applyColour(){const a=this.sourceBlock_.style;this.borderRect_&&(this.borderRect_.setAttribute("stroke",a.colourTertiary),this.menu_?this.borderRect_.setAttribute("fill",a.colourTertiary): +this.borderRect_.setAttribute("fill","transparent"));this.sourceBlock_&&this.arrow_&&(this.sourceBlock_.isShadow()?this.arrow_.style.fill=a.colourSecondary:this.arrow_.style.fill=a.colourPrimary)}render_(){this.getTextContent().nodeValue="";this.imageElement_.style.display="none";const a=this.selectedOption_&&this.selectedOption_[0];a&&"object"===typeof a?this.renderSelectedImage_(a):this.renderSelectedText_();this.positionBorderRect_()}renderSelectedImage_(a){const b=this.getSourceBlock();if(!b)throw new UnattachedFieldError$$module$build$src$core$field; +this.imageElement_.style.display="";this.imageElement_.setAttributeNS(XLINK_NS$$module$build$src$core$utils$dom,"xlink:href",a.src);this.imageElement_.setAttribute("height",String(a.height));this.imageElement_.setAttribute("width",String(a.width));const c=Number(a.height);a=Number(a.width);var d=!!this.borderRect_;const e=Math.max(d?this.getConstants().FIELD_DROPDOWN_BORDER_RECT_HEIGHT:0,c+IMAGE_Y_PADDING$$module$build$src$core$field_dropdown);d=d?this.getConstants().FIELD_BORDER_RECT_X_PADDING:0; +let f;f=this.svgArrow_?this.positionSVGArrow_(a+d,e/2-this.getConstants().FIELD_DROPDOWN_SVG_ARROW_SIZE/2):getFastTextWidth$$module$build$src$core$utils$dom(this.arrow_,this.getConstants().FIELD_TEXT_FONTSIZE,this.getConstants().FIELD_TEXT_FONTWEIGHT,this.getConstants().FIELD_TEXT_FONTFAMILY);this.size_.width=a+f+2*d;this.size_.height=e;let g=0;b.RTL?this.imageElement_.setAttribute("x",`${d+f}`):(g=a+f,this.getTextElement().setAttribute("text-anchor","end"),this.imageElement_.setAttribute("x",`${d}`)); +this.imageElement_.setAttribute("y",String(e/2-c/2));this.positionTextElement_(g+d,a+f)}renderSelectedText_(){this.getTextContent().nodeValue=this.getDisplayText_();var a=this.getTextElement();addClass$$module$build$src$core$utils$dom(a,"blocklyDropdownText");a.setAttribute("text-anchor","start");var b=!!this.borderRect_;a=Math.max(b?this.getConstants().FIELD_DROPDOWN_BORDER_RECT_HEIGHT:0,this.getConstants().FIELD_TEXT_HEIGHT);const c=getFastTextWidth$$module$build$src$core$utils$dom(this.getTextElement(), +this.getConstants().FIELD_TEXT_FONTSIZE,this.getConstants().FIELD_TEXT_FONTWEIGHT,this.getConstants().FIELD_TEXT_FONTFAMILY);b=b?this.getConstants().FIELD_BORDER_RECT_X_PADDING:0;let d=0;this.svgArrow_&&(d=this.positionSVGArrow_(c+b,a/2-this.getConstants().FIELD_DROPDOWN_SVG_ARROW_SIZE/2));this.size_.width=c+d+2*b;this.size_.height=a;this.positionTextElement_(b,c)}positionSVGArrow_(a,b){if(!this.svgArrow_)return 0;const c=this.getSourceBlock();if(!c)throw new UnattachedFieldError$$module$build$src$core$field; +const d=this.borderRect_?this.getConstants().FIELD_BORDER_RECT_X_PADDING:0,e=this.getConstants().FIELD_DROPDOWN_SVG_ARROW_PADDING,f=this.getConstants().FIELD_DROPDOWN_SVG_ARROW_SIZE;this.svgArrow_.setAttribute("transform","translate("+(c.RTL?d:a+e)+","+b+")");return f+e}getText_(){if(!this.selectedOption_)return null;const a=this.selectedOption_[0];return"object"===typeof a?a.alt:a}static fromJson(a){if(!a.options)throw Error("options are required for the dropdown field. The options property must be assigned an array of [humanReadableValue, languageNeutralValue] tuples."); +return new this(a.options,void 0,a)}};FieldDropdown$$module$build$src$core$field_dropdown.CHECKMARK_OVERHANG=25;FieldDropdown$$module$build$src$core$field_dropdown.MAX_MENU_HEIGHT_VH=.45;FieldDropdown$$module$build$src$core$field_dropdown.ARROW_CHAR="\u25be";var IMAGE_Y_OFFSET$$module$build$src$core$field_dropdown=5,IMAGE_Y_PADDING$$module$build$src$core$field_dropdown=2*IMAGE_Y_OFFSET$$module$build$src$core$field_dropdown;register$$module$build$src$core$field_registry("field_dropdown",FieldDropdown$$module$build$src$core$field_dropdown); +var module$build$src$core$field_dropdown={};module$build$src$core$field_dropdown.FieldDropdown=FieldDropdown$$module$build$src$core$field_dropdown;var BubbleOpen$$module$build$src$core$events$events_bubble_open=class extends UiBase$$module$build$src$core$events$events_ui_base{constructor(a,b,c){super(a?a.workspace.id:void 0);this.type=BUBBLE_OPEN$$module$build$src$core$events$utils;a&&(this.blockId=a.id,this.isOpen=b,this.bubbleType=c)}toJson(){const a=super.toJson();if(void 0===this.isOpen)throw Error("Whether this event is for opening the bubble is undefined. Either pass the value to the constructor, or call fromJson");if(!this.bubbleType)throw Error("The type of bubble is undefined. Either pass the value to the constructor, or call fromJson"); +a.isOpen=this.isOpen;a.bubbleType=this.bubbleType;a.blockId=this.blockId||"";return a}fromJson(a){warn$$module$build$src$core$utils$deprecation("Blockly.Events.BubbleOpen.prototype.fromJson","version 9","version 10","Blockly.Events.fromJson");super.fromJson(a);this.isOpen=a.isOpen;this.bubbleType=a.bubbleType;this.blockId=a.blockId}static fromJson(a,b,c){b=super.fromJson(a,b,null!=c?c:new BubbleOpen$$module$build$src$core$events$events_bubble_open);b.isOpen=a.isOpen;b.bubbleType=a.bubbleType;b.blockId= +a.blockId;return b}},BubbleType$$module$build$src$core$events$events_bubble_open;(function(a){a.MUTATOR="mutator";a.COMMENT="comment";a.WARNING="warning"})(BubbleType$$module$build$src$core$events$events_bubble_open||(BubbleType$$module$build$src$core$events$events_bubble_open={}));register$$module$build$src$core$registry(Type$$module$build$src$core$registry.EVENT,BUBBLE_OPEN$$module$build$src$core$events$utils,BubbleOpen$$module$build$src$core$events$events_bubble_open); +var module$build$src$core$events$events_bubble_open={};module$build$src$core$events$events_bubble_open.BubbleOpen=BubbleOpen$$module$build$src$core$events$events_bubble_open;module$build$src$core$events$events_bubble_open.BubbleType=BubbleType$$module$build$src$core$events$events_bubble_open;var Scrollbar$$module$build$src$core$scrollbar=class{constructor(a,b,c,d,e){this.workspace=a;this.horizontal=b;this.oldHostMetrics=null;this.ratio=1;this.origin=new Coordinate$$module$build$src$core$utils$coordinate(0,0);this.startDragHandle=this.handlePosition=this.handleLength=this.scrollbarLength=this.startDragMouse=0;this.containerVisible=this.isHandleVisible=!0;this.position=new Coordinate$$module$build$src$core$utils$coordinate(0,0);this.onMouseMoveWrapper_=this.onMouseUpWrapper_=null;this.pair= +c||!1;this.margin=void 0!==e?e:Scrollbar$$module$build$src$core$scrollbar.DEFAULT_SCROLLBAR_MARGIN;a="blocklyScrollbar"+(this.horizontal?"Horizontal":"Vertical");d&&(a+=" "+d);this.outerSvg=createSvgElement$$module$build$src$core$utils$dom(Svg$$module$build$src$core$utils$svg.SVG,{"class":a});d=createSvgElement$$module$build$src$core$utils$dom(Svg$$module$build$src$core$utils$svg.G,{},this.outerSvg);this.svgBackground=createSvgElement$$module$build$src$core$utils$dom(Svg$$module$build$src$core$utils$svg.RECT, +{"class":"blocklyScrollbarBackground"},d);a=Math.floor((Scrollbar$$module$build$src$core$scrollbar.scrollbarThickness-5)/2);this.svgHandle=createSvgElement$$module$build$src$core$utils$dom(Svg$$module$build$src$core$utils$svg.RECT,{"class":"blocklyScrollbarHandle",rx:a,ry:a},d);this.workspace.getThemeManager().subscribe(this.svgHandle,"scrollbarColour","fill");this.workspace.getThemeManager().subscribe(this.svgHandle,"scrollbarOpacity","fill-opacity");insertAfter$$module$build$src$core$utils$dom(this.outerSvg, +this.workspace.getParentSvg());this.setInitialThickness();b?(this.lengthAttribute_="width",this.positionAttribute_="x"):(this.lengthAttribute_="height",this.positionAttribute_="y");this.onMouseDownBarWrapper_=conditionalBind$$module$build$src$core$browser_events(this.svgBackground,"pointerdown",this,this.onMouseDownBar);this.onMouseDownHandleWrapper_=conditionalBind$$module$build$src$core$browser_events(this.svgHandle,"pointerdown",this,this.onMouseDownHandle)}setInitialThickness(){const a=Scrollbar$$module$build$src$core$scrollbar.scrollbarThickness; +this.horizontal?(this.svgBackground.setAttribute("height",String(a)),this.outerSvg.setAttribute("height",String(a)),this.svgHandle.setAttribute("height",String(a-5)),this.svgHandle.setAttribute("y","2.5")):(this.svgBackground.setAttribute("width",String(a)),this.outerSvg.setAttribute("width",String(a)),this.svgHandle.setAttribute("width",String(a-5)),this.svgHandle.setAttribute("x","2.5"))}dispose(){this.cleanUp();unbind$$module$build$src$core$browser_events(this.onMouseDownBarWrapper_);unbind$$module$build$src$core$browser_events(this.onMouseDownHandleWrapper_); +removeNode$$module$build$src$core$utils$dom(this.outerSvg);this.workspace.getThemeManager().unsubscribe(this.svgHandle)}constrainHandleLength(a){return a=0>=a||isNaN(a)?0:Math.min(a,this.scrollbarLength)}setHandleLength(a){this.handleLength=a;this.svgHandle.setAttribute(this.lengthAttribute_,String(this.handleLength))}constrainHandlePosition(a){return a=0>=a||isNaN(a)?0:Math.min(a,this.scrollbarLength-this.handleLength)}setHandlePosition(a){this.handlePosition=a;this.svgHandle.setAttribute(this.positionAttribute_, +String(this.handlePosition))}setScrollbarLength(a){this.scrollbarLength=a;this.outerSvg.setAttribute(this.lengthAttribute_,String(this.scrollbarLength));this.svgBackground.setAttribute(this.lengthAttribute_,String(this.scrollbarLength))}setPosition(a,b){this.position.x=a;this.position.y=b;setCssTransform$$module$build$src$core$utils$dom(this.outerSvg,"translate("+(this.position.x+this.origin.x)+"px,"+(this.position.y+this.origin.y)+"px)")}resize(a){if(!a&&(a=this.workspace.getMetrics(),!a))return; +this.oldHostMetrics&&Scrollbar$$module$build$src$core$scrollbar.metricsAreEquivalent(a,this.oldHostMetrics)||(this.horizontal?this.resizeHorizontal(a):this.resizeVertical(a),this.oldHostMetrics=a,this.updateMetrics())}requiresViewResize(a){return this.oldHostMetrics?this.oldHostMetrics.viewWidth!==a.viewWidth||this.oldHostMetrics.viewHeight!==a.viewHeight||this.oldHostMetrics.absoluteLeft!==a.absoluteLeft||this.oldHostMetrics.absoluteTop!==a.absoluteTop:!0}resizeHorizontal(a){this.requiresViewResize(a)? +this.resizeViewHorizontal(a):this.resizeContentHorizontal(a)}resizeViewHorizontal(a){var b=a.viewWidth-2*this.margin;this.pair&&(b-=Scrollbar$$module$build$src$core$scrollbar.scrollbarThickness);this.setScrollbarLength(Math.max(0,b));b=a.absoluteLeft+this.margin;this.pair&&this.workspace.RTL&&(b+=Scrollbar$$module$build$src$core$scrollbar.scrollbarThickness);this.setPosition(b,a.absoluteTop+a.viewHeight-Scrollbar$$module$build$src$core$scrollbar.scrollbarThickness-this.margin);this.resizeContentHorizontal(a)}resizeContentHorizontal(a){if(a.viewWidth>= +a.scrollWidth)this.setHandleLength(this.scrollbarLength),this.setHandlePosition(0),this.pair||this.setVisible(!1);else{this.pair||this.setVisible(!0);var b=this.scrollbarLength*a.viewWidth/a.scrollWidth;b=this.constrainHandleLength(b);this.setHandleLength(b);b=a.scrollWidth-a.viewWidth;var c=this.scrollbarLength-this.handleLength;a=(a.viewLeft-a.scrollLeft)/b*c;a=this.constrainHandlePosition(a);this.setHandlePosition(a);this.ratio=c/b}}resizeVertical(a){this.requiresViewResize(a)?this.resizeViewVertical(a): +this.resizeContentVertical(a)}resizeViewVertical(a){let b=a.viewHeight-2*this.margin;this.pair&&(b-=Scrollbar$$module$build$src$core$scrollbar.scrollbarThickness);this.setScrollbarLength(Math.max(0,b));this.setPosition(this.workspace.RTL?a.absoluteLeft+this.margin:a.absoluteLeft+a.viewWidth-Scrollbar$$module$build$src$core$scrollbar.scrollbarThickness-this.margin,a.absoluteTop+this.margin);this.resizeContentVertical(a)}resizeContentVertical(a){if(a.viewHeight>=a.scrollHeight)this.setHandleLength(this.scrollbarLength), +this.setHandlePosition(0),this.pair||this.setVisible(!1);else{this.pair||this.setVisible(!0);var b=this.scrollbarLength*a.viewHeight/a.scrollHeight;b=this.constrainHandleLength(b);this.setHandleLength(b);b=a.scrollHeight-a.viewHeight;var c=this.scrollbarLength-this.handleLength;a=(a.viewTop-a.scrollTop)/b*c;a=this.constrainHandlePosition(a);this.setHandlePosition(a);this.ratio=c/b}}isVisible(){return this.isHandleVisible}setContainerVisible(a){const b=a!==this.containerVisible;this.containerVisible= +a;b&&this.updateDisplay_()}setVisible(a){const b=a!==this.isVisible();if(this.pair)throw Error("Unable to toggle visibility of paired scrollbars.");this.isHandleVisible=a;b&&this.updateDisplay_()}updateDisplay_(){this.containerVisible&&this.isVisible()?this.outerSvg.setAttribute("display","block"):this.outerSvg.setAttribute("display","none")}onMouseDownBar(a){this.workspace.markFocused();clearTouchIdentifier$$module$build$src$core$touch();this.cleanUp();if(isRightButton$$module$build$src$core$browser_events(a))a.stopPropagation(); +else{var b=mouseToSvg$$module$build$src$core$browser_events(a,this.workspace.getParentSvg(),this.workspace.getInverseScreenCTM());b=this.horizontal?b.x:b.y;var c=getInjectionDivXY$$module$build$src$core$utils$svg_math(this.svgHandle);c=this.horizontal?c.x:c.y;var d=this.handlePosition,e=.95*this.handleLength;b<=c?d-=e:b>=c+this.handleLength&&(d+=e);this.setHandlePosition(this.constrainHandlePosition(d));this.updateMetrics();a.stopPropagation();a.preventDefault()}}onMouseDownHandle(a){this.workspace.markFocused(); +this.cleanUp();isRightButton$$module$build$src$core$browser_events(a)?a.stopPropagation():(this.startDragHandle=this.handlePosition,this.workspace.setupDragSurface(),this.startDragMouse=this.horizontal?a.clientX:a.clientY,this.onMouseUpWrapper_=conditionalBind$$module$build$src$core$browser_events(document,"pointerup",this,this.onMouseUpHandle),this.onMouseMoveWrapper_=conditionalBind$$module$build$src$core$browser_events(document,"pointermove",this,this.onMouseMoveHandle),a.stopPropagation(),a.preventDefault())}onMouseMoveHandle(a){this.setHandlePosition(this.constrainHandlePosition(this.startDragHandle+ +((this.horizontal?a.clientX:a.clientY)-this.startDragMouse)));this.updateMetrics()}onMouseUpHandle(){this.workspace.resetDragSurface();clearTouchIdentifier$$module$build$src$core$touch();this.cleanUp()}cleanUp(){this.workspace.hideChaff(!0);this.onMouseUpWrapper_&&(unbind$$module$build$src$core$browser_events(this.onMouseUpWrapper_),this.onMouseUpWrapper_=null);this.onMouseMoveWrapper_&&(unbind$$module$build$src$core$browser_events(this.onMouseMoveWrapper_),this.onMouseMoveWrapper_=null)}getRatio_(){let a= +this.handlePosition/(this.scrollbarLength-this.handleLength);isNaN(a)&&(a=0);return a}updateMetrics(){const a=this.getRatio_();this.horizontal?this.workspace.setMetrics({x:a}):this.workspace.setMetrics({y:a})}set(a,b){this.setHandlePosition(this.constrainHandlePosition(a*this.ratio));(b||void 0===b)&&this.updateMetrics()}setOrigin(a,b){this.origin=new Coordinate$$module$build$src$core$utils$coordinate(a,b)}static metricsAreEquivalent(a,b){return a.viewWidth===b.viewWidth&&a.viewHeight===b.viewHeight&& +a.viewLeft===b.viewLeft&&a.viewTop===b.viewTop&&a.absoluteTop===b.absoluteTop&&a.absoluteLeft===b.absoluteLeft&&a.scrollWidth===b.scrollWidth&&a.scrollHeight===b.scrollHeight&&a.scrollLeft===b.scrollLeft&&a.scrollTop===b.scrollTop}};Scrollbar$$module$build$src$core$scrollbar.scrollbarThickness=TOUCH_ENABLED$$module$build$src$core$touch?25:15;Scrollbar$$module$build$src$core$scrollbar.DEFAULT_SCROLLBAR_MARGIN=.5;var module$build$src$core$scrollbar={};module$build$src$core$scrollbar.Scrollbar=Scrollbar$$module$build$src$core$scrollbar;var Bubble$$module$build$src$core$bubble=class{constructor(a,b,c,d,e,f){this.resizeGroup=this.bubbleBack=this.bubbleArrow=this.bubbleGroup=null;this.height=this.width=this.relativeTop=this.relativeLeft=0;this.autoLayout=!0;this.onMouseDownResizeWrapper=this.onMouseDownBubbleWrapper=this.moveCallback=this.resizeCallback=null;this.rendered=this.disposed=!1;this.workspace_=a;this.content_=b;this.shape_=c;c=Bubble$$module$build$src$core$bubble.ARROW_ANGLE;this.workspace_.RTL&&(c=-c);this.arrowRadians= +toRadians$$module$build$src$core$utils$math(c);a.getBubbleCanvas().appendChild(this.createDom(b,!(!e||!f)));this.setAnchorLocation(d);e&&f||(a=this.content_.getBBox(),e=a.width+2*Bubble$$module$build$src$core$bubble.BORDER_WIDTH,f=a.height+2*Bubble$$module$build$src$core$bubble.BORDER_WIDTH);this.setBubbleSize(e,f);this.positionBubble();this.renderArrow();this.rendered=!0}createDom(a,b){this.bubbleGroup=createSvgElement$$module$build$src$core$utils$dom(Svg$$module$build$src$core$utils$svg.G,{});var c= +{filter:"url(#"+this.workspace_.getRenderer().getConstants().embossFilterId+")"};JavaFx$$module$build$src$core$utils$useragent&&(c={});c=createSvgElement$$module$build$src$core$utils$dom(Svg$$module$build$src$core$utils$svg.G,c,this.bubbleGroup);this.bubbleArrow=createSvgElement$$module$build$src$core$utils$dom(Svg$$module$build$src$core$utils$svg.PATH,{},c);this.bubbleBack=createSvgElement$$module$build$src$core$utils$dom(Svg$$module$build$src$core$utils$svg.RECT,{"class":"blocklyDraggable",x:0, +y:0,rx:Bubble$$module$build$src$core$bubble.BORDER_WIDTH,ry:Bubble$$module$build$src$core$bubble.BORDER_WIDTH},c);b?(this.resizeGroup=createSvgElement$$module$build$src$core$utils$dom(Svg$$module$build$src$core$utils$svg.G,{"class":this.workspace_.RTL?"blocklyResizeSW":"blocklyResizeSE"},this.bubbleGroup),b=2*Bubble$$module$build$src$core$bubble.BORDER_WIDTH,createSvgElement$$module$build$src$core$utils$dom(Svg$$module$build$src$core$utils$svg.POLYGON,{points:`0,${b} ${b},${b} ${b},0`},this.resizeGroup), +createSvgElement$$module$build$src$core$utils$dom(Svg$$module$build$src$core$utils$svg.LINE,{"class":"blocklyResizeLine",x1:b/3,y1:b-1,x2:b-1,y2:b/3},this.resizeGroup),createSvgElement$$module$build$src$core$utils$dom(Svg$$module$build$src$core$utils$svg.LINE,{"class":"blocklyResizeLine",x1:2*b/3,y1:b-1,x2:b-1,y2:2*b/3},this.resizeGroup)):this.resizeGroup=null;this.workspace_.options.readOnly||(this.onMouseDownBubbleWrapper=conditionalBind$$module$build$src$core$browser_events(this.bubbleBack,"pointerdown", +this,this.bubbleMouseDown),this.resizeGroup&&(this.onMouseDownResizeWrapper=conditionalBind$$module$build$src$core$browser_events(this.resizeGroup,"pointerdown",this,this.resizeMouseDown)));this.bubbleGroup.appendChild(a);return this.bubbleGroup}getSvgRoot(){return this.bubbleGroup}setSvgId(a){let b;null==(b=this.bubbleGroup)||b.setAttribute("data-block-id",a)}bubbleMouseDown(a){const b=this.workspace_.getGesture(a);b&&b.handleBubbleStart(a,this)}showContextMenu(a){}isDeletable(){return!1}setDeleteStyle(a){}resizeMouseDown(a){this.promote(); +Bubble$$module$build$src$core$bubble.unbindDragEvents();isRightButton$$module$build$src$core$browser_events(a)||(this.workspace_.startDrag(a,new Coordinate$$module$build$src$core$utils$coordinate(this.workspace_.RTL?-this.width:this.width,this.height)),Bubble$$module$build$src$core$bubble.onMouseUpWrapper=conditionalBind$$module$build$src$core$browser_events(document,"pointerup",this,Bubble$$module$build$src$core$bubble.bubbleMouseUp),Bubble$$module$build$src$core$bubble.onMouseMoveWrapper=conditionalBind$$module$build$src$core$browser_events(document, +"pointermove",this,this.resizeMouseMove),this.workspace_.hideChaff());a.stopPropagation()}resizeMouseMove(a){this.autoLayout=!1;a=this.workspace_.moveDrag(a);this.setBubbleSize(this.workspace_.RTL?-a.x:a.x,a.y);this.workspace_.RTL&&this.positionBubble()}registerResizeEvent(a){this.resizeCallback=a}registerMoveEvent(a){this.moveCallback=a}promote(){let a;const b=null==(a=this.bubbleGroup)?void 0:a.parentNode;return(null==b?void 0:b.lastChild)!==this.bubbleGroup&&this.bubbleGroup?(null==b||b.appendChild(this.bubbleGroup), +!0):!1}setAnchorLocation(a){this.anchorXY=a;this.rendered&&this.positionBubble()}layoutBubble(){var a=this.workspace_.getMetricsManager().getViewMetrics(!0),b=this.getOptimalRelativeLeft(a),c=this.getOptimalRelativeTop(a),d=this.shape_.getBBox();const e={x:b,y:-this.height-this.workspace_.getRenderer().getConstants().MIN_BLOCK_HEIGHT},f={x:-this.width-30,y:c};c={x:d.width,y:c};var g={x:b,y:d.height};b=d.widtha.width)return b;if(this.workspace_.RTL){var c=this.anchorXY.x-b,d=a.left+a.width;a=a.left+Scrollbar$$module$build$src$core$scrollbar.scrollbarThickness/this.workspace_.scale;c-this.widthd&&(b=-(d-this.anchorXY.x))}else{c=b+this.anchorXY.x;d=c+this.width;const e=a.left;a=a.left+a.width-Scrollbar$$module$build$src$core$scrollbar.scrollbarThickness/this.workspace_.scale; +ca&&(b=a-this.anchorXY.x-this.width)}return b}getOptimalRelativeTop(a){let b=-this.height/4;if(this.height>a.height)return b;const c=this.anchorXY.y+b,d=c+this.height,e=a.top;a=a.top+a.height-Scrollbar$$module$build$src$core$scrollbar.scrollbarThickness/this.workspace_.scale;const f=this.anchorXY.y;ca&&(b=a-f-this.height);return b}positionBubble(){let a=this.anchorXY.x;a=this.workspace_.RTL?a-(this.relativeLeft+this.width):a+this.relativeLeft;this.moveTo(a,this.relativeTop+ +this.anchorXY.y)}moveTo(a,b){let c;null==(c=this.bubbleGroup)||c.setAttribute("transform","translate("+a+","+b+")")}setDragging(a){!a&&this.moveCallback&&this.moveCallback()}getBubbleSize(){return new Size$$module$build$src$core$utils$size(this.width,this.height)}setBubbleSize(a,b){const c=2*Bubble$$module$build$src$core$bubble.BORDER_WIDTH;a=Math.max(a,c+45);b=Math.max(b,c+20);this.width=a;this.height=b;let d;null==(d=this.bubbleBack)||d.setAttribute("width",`${a}`);let e;null==(e=this.bubbleBack)|| +e.setAttribute("height",`${b}`);this.resizeGroup&&(this.workspace_.RTL?this.resizeGroup.setAttribute("transform","translate("+2*Bubble$$module$build$src$core$bubble.BORDER_WIDTH+","+(b-c)+") scale(-1 1)"):this.resizeGroup.setAttribute("transform","translate("+(a-c)+","+(b-c)+")"));this.autoLayout&&this.layoutBubble();this.positionBubble();this.renderArrow();this.resizeCallback&&this.resizeCallback()}renderArrow(){const a=[];var b=this.width/2,c=this.height/2,d=-this.relativeLeft,e=-this.relativeTop; +if(b===d&&c===e)a.push("M "+b+","+c);else{e-=c;d-=b;this.workspace_.RTL&&(d*=-1);var f=Math.sqrt(e*e+d*d),g=Math.acos(d/f);0>e&&(g=2*Math.PI-g);var h=g+Math.PI/2;h>2*Math.PI&&(h-=2*Math.PI);var k=Math.sin(h);const n=Math.cos(h);var l=this.getBubbleSize();h=(l.width+l.height)/Bubble$$module$build$src$core$bubble.ARROW_THICKNESS;h=Math.min(h,l.width,l.height)/4;l=1-Bubble$$module$build$src$core$bubble.ANCHOR_RADIUS/f;d=b+l*d;e=c+l*e;l=b+h*n;const p=c+h*k;b-=h*n;c-=h*k;k=g+this.arrowRadians;k>2*Math.PI&& +(k-=2*Math.PI);g=Math.sin(k)*f/Bubble$$module$build$src$core$bubble.ARROW_BEND;f=Math.cos(k)*f/Bubble$$module$build$src$core$bubble.ARROW_BEND;a.push("M"+l+","+p);a.push("C"+(l+f)+","+(p+g)+" "+d+","+e+" "+d+","+e);a.push("C"+d+","+e+" "+(b+f)+","+(c+g)+" "+b+","+c)}a.push("z");let m;null==(m=this.bubbleArrow)||m.setAttribute("d",a.join(" "))}setColour(a){let b;null==(b=this.bubbleBack)||b.setAttribute("fill",a);let c;null==(c=this.bubbleArrow)||c.setAttribute("fill",a)}dispose(){this.onMouseDownBubbleWrapper&& +unbind$$module$build$src$core$browser_events(this.onMouseDownBubbleWrapper);this.onMouseDownResizeWrapper&&unbind$$module$build$src$core$browser_events(this.onMouseDownResizeWrapper);Bubble$$module$build$src$core$bubble.unbindDragEvents();removeNode$$module$build$src$core$utils$dom(this.bubbleGroup);this.disposed=!0}moveDuringDrag(a,b){a?a.translateSurface(b.x,b.y):this.moveTo(b.x,b.y);this.relativeLeft=this.workspace_.RTL?this.anchorXY.x-b.x-this.width:b.x-this.anchorXY.x;this.relativeTop=b.y-this.anchorXY.y; +this.renderArrow()}getRelativeToSurfaceXY(){return new Coordinate$$module$build$src$core$utils$coordinate(this.workspace_.RTL?-this.relativeLeft+this.anchorXY.x-this.width:this.anchorXY.x+this.relativeLeft,this.anchorXY.y+this.relativeTop)}setAutoLayout(a){this.autoLayout=a}static unbindDragEvents(){Bubble$$module$build$src$core$bubble.onMouseUpWrapper&&(unbind$$module$build$src$core$browser_events(Bubble$$module$build$src$core$bubble.onMouseUpWrapper),Bubble$$module$build$src$core$bubble.onMouseUpWrapper= +null);Bubble$$module$build$src$core$bubble.onMouseMoveWrapper&&(unbind$$module$build$src$core$browser_events(Bubble$$module$build$src$core$bubble.onMouseMoveWrapper),Bubble$$module$build$src$core$bubble.onMouseMoveWrapper=null)}static bubbleMouseUp(a){clearTouchIdentifier$$module$build$src$core$touch();Bubble$$module$build$src$core$bubble.unbindDragEvents()}static textToDom(a){const b=createSvgElement$$module$build$src$core$utils$dom(Svg$$module$build$src$core$utils$svg.TEXT,{"class":"blocklyText blocklyBubbleText blocklyNoPointerEvents", +y:Bubble$$module$build$src$core$bubble.BORDER_WIDTH});a=a.split("\n");for(let c=0;ca||Math.abs(this.workspaceHeight-e)>a)this.workspaceWidth=d,this.workspaceHeight=e,this.bubble_.setBubbleSize(d+a,e+a),this.svgDialog.setAttribute("width",`${d}`), +this.svgDialog.setAttribute("height",`${e}`),this.workspace_.setCachedParentSvgSize(d,e);f&&b.setAttribute("transform",`translate(${this.workspaceWidth}, 0)`);this.workspace_.resize()}}onBubbleMove(){this.workspace_&&this.workspace_.recordDragTargets()}setVisible(a){if(a!==this.isVisible()){var b=this.getBlock();if(a){this.bubble_=new Bubble$$module$build$src$core$bubble(b.workspace,this.createEditor(),b.pathObject.svgPath,this.iconXY_,null,null);var c=this.workspace_;this.bubble_.setSvgId(b.id); +this.bubble_.registerMoveEvent(this.onBubbleMove.bind(this));var d=c.options.languageTree;const e=c.getFlyout();d&&(e.init(c),e.show(d));this.rootBlock=b.decompose(c);d=this.rootBlock.getDescendants(!1);for(let g=0,h;h=d[g];g++)h.render();this.rootBlock.setMovable(!1);this.rootBlock.setDeletable(!1);let f;e?(d=2*e.CORNER_RADIUS,f=this.rootBlock.RTL?e.getWidth()+d:d):f=d=16;b.RTL&&(f=-f);this.rootBlock.moveBy(f,d);if(b.saveConnections){const g=this.rootBlock;b.saveConnections(g);this.sourceListener= +()=>{const h=this.getBlock();h.saveConnections&&h.saveConnections(g)};b.workspace.addChangeListener(this.sourceListener)}this.resizeBubble();d=this.workspaceChanged.bind(this);c.addChangeListener(d);e&&e.getWorkspace().addChangeListener(d);this.updateWorkspace();this.applyColour()}else this.svgDialog=null,this.workspace_.dispose(),this.rootBlock=this.workspace_=null,null==(c=this.bubble_)||c.dispose(),this.bubble_=null,this.workspaceHeight=this.workspaceWidth=0,this.sourceListener&&(b.workspace.removeChangeListener(this.sourceListener), +this.sourceListener=null);fire$$module$build$src$core$events$utils(new (get$$module$build$src$core$events$utils(BUBBLE_OPEN$$module$build$src$core$events$utils))(b,a,"mutator"))}}workspaceChanged(a){this.shouldIgnoreMutatorEvent_(a)||this.updateWorkspacePid||(this.updateWorkspacePid=setTimeout(()=>{this.updateWorkspacePid=null;this.updateWorkspace()},0))}shouldIgnoreMutatorEvent_(a){return a.isUiEvent||a.type===CREATE$$module$build$src$core$events$utils||a.type===CHANGE$$module$build$src$core$events$utils&& +"disabled"===a.element}updateWorkspace(){if(!this.workspace_.isDragging()){var a=this.workspace_.getTopBlocks(!1);for(let d=0,e;e=a[d];d++){var b=e.getRelativeToSurfaceXY();20>b.y&&e.moveBy(0,20-b.y);if(e.RTL){var c=-20;const f=this.workspace_.getFlyout();f&&(c-=f.getWidth());b.x>c&&e.moveBy(c-b.x,0)}else 20>b.x&&e.moveBy(20-b.x,0)}}if(this.rootBlock&&this.rootBlock.workspace===this.workspace_){(a=getGroup$$module$build$src$core$events$utils())||setGroup$$module$build$src$core$events$utils(!0);const d= +this.getBlock();b=BlockChange$$module$build$src$core$events$events_block_change.getExtraBlockState_(d);d.compose(this.rootBlock);c=BlockChange$$module$build$src$core$events$events_block_change.getExtraBlockState_(d);if(b!==c){fire$$module$build$src$core$events$utils(new (get$$module$build$src$core$events$utils(CHANGE$$module$build$src$core$events$utils))(d,"mutation",null,b,c));const e=getGroup$$module$build$src$core$events$utils();setTimeout(function(){const f=getGroup$$module$build$src$core$events$utils(); +setGroup$$module$build$src$core$events$utils(e);d.bumpNeighbours();setGroup$$module$build$src$core$events$utils(f)},$.config$$module$build$src$core$config.bumpDelay)}this.workspace_.isDragging()||setTimeout(()=>this.resizeBubble(),0);setGroup$$module$build$src$core$events$utils(a)}}dispose(){this.getBlock().mutator=null;super.dispose()}updateBlockStyle(){var a=this.workspace_;if(a&&a.getAllBlocks(!1)){const b=a.getAllBlocks(!1);for(let c=0,d;d=b[c];c++)d.setStyle(d.getStyleName());if(a=a.getFlyout()){a= +a.getWorkspace().getAllBlocks(!1);for(let c=0,d;d=a[c];c++)d.setStyle(d.getStyleName())}}}static reconnect(a,b,c){if(!a||!a.getSourceBlock().workspace)return!1;c=b.getInput(c).connection;const d=a.targetBlock();return d&&d!==b||!c||c.targetConnection===a?!1:(c.isConnected()&&c.disconnect(),c.connect(a),!0)}static findParentWs(a){let b=null;if(a&&a.options){const c=a.options.parentWorkspace;a.isFlyout?c&&c.options&&(b=c.options.parentWorkspace):c&&(b=c)}return b}};module$build$src$core$mutator={}; +module$build$src$core$mutator.Mutator=$.Mutator$$module$build$src$core$mutator;var allExtensions$$module$build$src$core$extensions=Object.create(null),TEST_ONLY$$module$build$src$core$extensions={allExtensions:allExtensions$$module$build$src$core$extensions};$.register$$module$build$src$core$extensions("parent_tooltip_when_inline",extensionParentTooltip$$module$build$src$core$extensions);$.module$build$src$core$extensions={};$.module$build$src$core$extensions.TEST_ONLY=TEST_ONLY$$module$build$src$core$extensions;$.module$build$src$core$extensions.apply=apply$$module$build$src$core$extensions; +$.module$build$src$core$extensions.buildTooltipForDropdown=$.buildTooltipForDropdown$$module$build$src$core$extensions;$.module$build$src$core$extensions.buildTooltipWithFieldText=$.buildTooltipWithFieldText$$module$build$src$core$extensions;$.module$build$src$core$extensions.isRegistered=isRegistered$$module$build$src$core$extensions;$.module$build$src$core$extensions.register=$.register$$module$build$src$core$extensions;$.module$build$src$core$extensions.registerMixin=registerMixin$$module$build$src$core$extensions; +$.module$build$src$core$extensions.registerMutator=$.registerMutator$$module$build$src$core$extensions;$.module$build$src$core$extensions.runAfterPageLoad=runAfterPageLoad$$module$build$src$core$extensions;$.module$build$src$core$extensions.unregister=unregister$$module$build$src$core$extensions;var FieldLabel$$module$build$src$core$field_label=class extends Field$$module$build$src$core$field{constructor(a,b,c){super(Field$$module$build$src$core$field.SKIP_SETUP);this.class_=null;this.EDITABLE=!1;a!==Field$$module$build$src$core$field.SKIP_SETUP&&(c?this.configure_(c):this.class_=b||null,this.setValue(a))}configure_(a){super.configure_(a);a.class&&(this.class_=a.class)}initView(){this.createTextElement_();this.class_&&addClass$$module$build$src$core$utils$dom(this.getTextElement(),this.class_)}doClassValidation_(a){return null=== +a||void 0===a?null:`${a}`}setClass(a){this.textElement_&&(this.class_&&removeClass$$module$build$src$core$utils$dom(this.textElement_,this.class_),a&&addClass$$module$build$src$core$utils$dom(this.textElement_,a));this.class_=a}static fromJson(a){return new this(replaceMessageReferences$$module$build$src$core$utils$parsing(a.text),void 0,a)}};register$$module$build$src$core$field_registry("field_label",FieldLabel$$module$build$src$core$field_label); +FieldLabel$$module$build$src$core$field_label.prototype.DEFAULT_VALUE="";var module$build$src$core$field_label={};module$build$src$core$field_label.FieldLabel=FieldLabel$$module$build$src$core$field_label;var Input$$module$build$src$core$input=class{constructor(a,b,c,d){this.type=a;this.name=b;this.connection=d;this.fieldRow=[];this.align=$.Align$$module$build$src$core$input.LEFT;this.visible=!0;if(a!==inputTypes$$module$build$src$core$input_types.DUMMY&&!b)throw Error("Value inputs and statement inputs must have non-empty name.");this.sourceBlock=c}getSourceBlock(){return this.sourceBlock}appendField(a,b){this.insertFieldAt(this.fieldRow.length,a,b);return this}insertFieldAt(a,b,c){if(0>a||a>this.fieldRow.length)throw Error("index "+ +a+" out of bounds.");if(!(b||""===b&&c))return a;"string"===typeof b&&(b=fromJson$$module$build$src$core$field_registry({type:"field_label",text:b}));b.setSourceBlock(this.sourceBlock);this.sourceBlock.rendered&&(b.init(),b.applyColour());b.name=c;b.setVisible(this.isVisible());b.prefixField&&(a=this.insertFieldAt(a,b.prefixField));this.fieldRow.splice(a,0,b);a++;b.suffixField&&(a=this.insertFieldAt(a,b.suffixField));this.sourceBlock.rendered&&(this.sourceBlock.queueRender(),this.sourceBlock.bumpNeighbours()); +return a}removeField(a,b){for(let c=0,d;d=this.fieldRow[c];c++)if(d.name===a)return d.dispose(),this.fieldRow.splice(c,1),this.sourceBlock.rendered&&(this.sourceBlock.queueRender(),this.sourceBlock.bumpNeighbours()),!0;if(b)return!1;throw Error('Field "'+a+'" not found.');}isVisible(){return this.visible}setVisible(a){let b=[];if(this.visible===a)return b;this.visible=a;for(let d=0,e;e=this.fieldRow[d];d++)e.setVisible(a);if(this.connection){var c=this.connection;a?b=c.startTrackingAll():c.stopTrackingAll(); +if(c=c.targetBlock())c.getSvgRoot().style.display=a?"block":"none"}return b}markDirty(){for(let a=0,b;b=this.fieldRow[a];a++)b.markDirty()}setCheck(a){if(!this.connection)throw Error("This input does not have a connection.");this.connection.setCheck(a);return this}setAlign(a){this.align=a;this.sourceBlock.rendered&&this.sourceBlock.queueRender();return this}setShadowDom(a){if(!this.connection)throw Error("This input does not have a connection.");this.connection.setShadowDom(a);return this}getShadowDom(){if(!this.connection)throw Error("This input does not have a connection."); +return this.connection.getShadowDom()}init(){if(this.sourceBlock.workspace.rendered)for(let a=0;aa.disposeInternal()),this.inputList.forEach(a=>a.dispose()),this.inputList.length=0,this.getConnections_(!0).forEach(a=>a.dispose())}finally{enable$$module$build$src$core$events$utils(),"function"===typeof this.destroy&&this.destroy(),this.disposed=!0}}}isDeadOrDying(){return this.disposing||this.disposed}initModel(){for(let a=0,b;b=this.inputList[a];a++)for(let c=0,d;d=b.fieldRow[c];c++)d.initModel&&d.initModel()}unplug(a){this.outputConnection&&this.unplugFromRow_(a); +this.previousConnection&&this.unplugFromStack_(a)}unplugFromRow_(a){let b=null,c;if(null==(c=this.outputConnection)?0:c.isConnected())b=this.outputConnection.targetConnection,this.outputConnection.disconnect();b&&a&&(a=this.getOnlyValueConnection_())&&a.isConnected()&&!a.targetBlock().isShadow()&&(a=a.targetConnection,null==a||a.disconnect(),this.workspace.connectionChecker.canConnect(a,b,!1)?b.connect(a):null==a||a.onFailedConnect(b))}getOnlyValueConnection_(){let a=null;for(let b=0;b{d=d+("("===c||")"===e?"":" ")+e;c=e[e.length-1];return d},"");b=b.trim()||"???";a&&b.length>a&&(b=b.substring(0,a-3)+"...");return b}toTokens(a="?"){const b=[];for(const d of this.inputList)if(d.name!=COLLAPSED_INPUT_NAME$$module$build$src$core$constants){for(const e of d.fieldRow)b.push(e.getText());if(d.connection){const e=d.connection.targetBlock();if(e){var c=d.connection;let f=c.getCheck();!f&&c.targetConnection&&(f=c.targetConnection.getCheck()); +(c=!!f&&(-1!==f.indexOf("Boolean")||-1!==f.indexOf("Number")))&&b.push("(");b.push(...e.toTokens(a));c&&b.push(")")}else b.push(a)}}return b}appendValueInput(a){return this.appendInput_(inputTypes$$module$build$src$core$input_types.VALUE,a)}appendStatementInput(a){return this.appendInput_(inputTypes$$module$build$src$core$input_types.STATEMENT,a)}appendDummyInput(a){return this.appendInput_(inputTypes$$module$build$src$core$input_types.DUMMY,a||"")}jsonInit(a){var b=a.type?'Block "'+a.type+'": ': +"";if(a.output&&a.previousStatement)throw Error(b+"Must not have both an output and a previousStatement.");a.style&&a.style.hat&&(this.hat=a.style.hat,a.style=null);if(a.style&&a.colour)throw Error(b+"Must not have both a colour and a style.");a.style?this.jsonInitStyle_(a,b):this.jsonInitColour_(a,b);for(var c=0;void 0!==a["message"+c];)this.interpolate_(a["message"+c],a["args"+c]||[],a["lastDummyAlign"+c],b),c++;void 0!==a.inputsInline&&this.setInputsInline(a.inputsInline);void 0!==a.output&&this.setOutput(!0, +a.output);void 0!==a.outputShape&&this.setOutputShape(a.outputShape);void 0!==a.previousStatement&&this.setPreviousStatement(!0,a.previousStatement);void 0!==a.nextStatement&&this.setNextStatement(!0,a.nextStatement);void 0!==a.tooltip&&(c=replaceMessageReferences$$module$build$src$core$utils$parsing(a.tooltip),this.setTooltip(c));void 0!==a.enableContextMenu&&(this.contextMenu=!!a.enableContextMenu);void 0!==a.suppressPrefixSuffix&&(this.suppressPrefixSuffix=!!a.suppressPrefixSuffix);void 0!==a.helpUrl&& +(c=replaceMessageReferences$$module$build$src$core$utils$parsing(a.helpUrl),this.setHelpUrl(c));"string"===typeof a.extensions&&(console.warn(b+"JSON attribute 'extensions' should be an array of strings. Found raw string in JSON for '"+a.type+"' block."),a.extensions=[a.extensions]);void 0!==a.mutator&&apply$$module$build$src$core$extensions(a.mutator,this,!0);a=a.extensions;if(Array.isArray(a))for(b=0;bf||f>b)throw Error('Block "'+ +this.type+'": Message index %'+f+" out of range.");if(c[f])throw Error('Block "'+this.type+'": Message index %'+f+" duplicated.");c[f]=!0;d++}}if(d!==b)throw Error('Block "'+this.type+'": Message does not reference all '+b+" arg(s).");}interpolateArguments_(a,b,c){const d=[];for(let e=0;e=this.inputList.length)throw RangeError("Input index "+a+" out of bounds.");if(b>this.inputList.length)throw RangeError("Reference input "+b+" out of bounds.");const c=this.inputList[a];this.inputList.splice(a,1);a{d.push(this.componentData.get(e))});d.sort(function(e,f){return e.weight-f.weight});d.forEach(function(e){c.push(e.component)})}else a.forEach(d=>{c.push(this.componentData.get(d).component)});return c}};ComponentManager$$module$build$src$core$component_manager.Capability=Capability$$module$build$src$core$component_manager;var module$build$src$core$component_manager={};module$build$src$core$component_manager.ComponentManager=ComponentManager$$module$build$src$core$component_manager;var DUPLICATE_BLOCK_ERROR$$module$build$src$core$insertion_marker_manager="The insertion marker manager tried to create a marker but the result is missing %1. If you are using a mutator, make sure your domToMutation method is properly defined.",InsertionMarkerManager$$module$build$src$core$insertion_marker_manager=class{constructor(a){this.activeCandidate=this.lastMarker=this.lastOnStack=null;this.wouldDeleteBlock=!1;this.fadedBlock=this.highlightedBlock=this.markerConnection=null;setSelected$$module$build$src$core$common(a); +this.topBlock=a;this.workspace=a.workspace;this.firstMarker=this.createMarkerBlock(this.topBlock);this.availableConnections=this.initAvailableConnections();this.lastOnStack&&(this.lastMarker=this.createMarkerBlock(this.lastOnStack.getSourceBlock()))}dispose(){this.availableConnections.length=0;this.disposeInsertionMarker(this.firstMarker);this.disposeInsertionMarker(this.lastMarker)}updateAvailableConnections(){this.availableConnections=this.initAvailableConnections()}wouldConnectBlock(){return!!this.activeCandidate}applyConnections(){if(this.activeCandidate){disable$$module$build$src$core$events$utils(); +this.hidePreview();enable$$module$build$src$core$events$utils();var {local:a,closest:b}=this.activeCandidate;a.connect(b);if(this.topBlock.rendered){const c=a.isSuperior()?b:a,d=this.topBlock.getRootBlock();requestAnimationFrame(()=>{connectionUiEffect$$module$build$src$core$block_animations(c.getSourceBlock());setTimeout(()=>{d.bringToFront()},0)})}}}update(a,b){const c=this.getCandidate(a);if((this.wouldDeleteBlock=this.shouldDelete(!!c,b))||this.shouldUpdatePreviews(c,a))disable$$module$build$src$core$events$utils(), +this.maybeHidePreview(c),this.maybeShowPreview(c),enable$$module$build$src$core$events$utils()}createMarkerBlock(a){var b=a.type;disable$$module$build$src$core$events$utils();let c;try{c=this.workspace.newBlock(b);c.setInsertionMarker(!0);if(a.saveExtraState){var d=a.saveExtraState();d&&c.loadExtraState&&c.loadExtraState(d)}else if(a.mutationToDom){const e=a.mutationToDom();e&&c.domToMutation&&c.domToMutation(e)}for(b=0;b +clearTimeout(a)),this.warningTextDb.clear(),this.getIcons().forEach(a=>a.dispose()))}checkAndDelete(){this.workspace.isFlyout||(setGroup$$module$build$src$core$events$utils(!0),this.workspace.hideChaff(),this.outputConnection?this.dispose(!1,!0):this.dispose(!0,!0),setGroup$$module$build$src$core$events$utils(!1))}toCopyData(){return this.isInsertionMarker_?null:{saveInfo:save$$module$build$src$core$serialization$blocks(this,{addCoordinates:!0,addNextBlocks:!1}),source:this.workspace,typeCounts:getBlockTypeCounts$$module$build$src$core$common(this, +!0)}}applyColour(){this.pathObject.applyColour(this);const a=this.getIcons();for(let b=0;b{this.isDeadOrDying()||(this.warningTextDb.delete(c),this.setWarningText(a,c))},100));else{this.isInFlyout&&(a=null);b=!1;if("string"===typeof a){d=this.getSurroundParent();let e=null;for(;d;)d.isCollapsed()&&(e=d),d=d.getSurroundParent();e&&e.setWarningText(Msg$$module$build$src$core$msg.COLLAPSED_WARNINGS_WARNING,BlockSvg$$module$build$src$core$block_svg.COLLAPSED_WARNING_ID);this.warning||(this.warning=new Warning$$module$build$src$core$warning(this),b=!0);this.warning.setText(a, +c)}else this.warning&&!c?(this.warning.dispose(),b=!0):this.warning&&(b=this.warning.getText(),this.warning.setText("",c),(d=this.warning.getText())||this.warning.dispose(),b=b!==d);b&&this.rendered&&(this.render(),this.bumpNeighbours())}}setMutator(a){this.mutator&&this.mutator!==a&&this.mutator.dispose();a&&(a.setBlock(this),this.mutator=a,a.createIcon());this.rendered&&(this.render(),this.bumpNeighbours())}setEnabled(a){this.isEnabled()!==a&&(super.setEnabled(a),this.rendered&&!this.getInheritedDisabled()&& +this.updateDisabled())}setHighlighted(a){this.rendered&&this.pathObject.updateHighlighted(a)}addSelect(){this.pathObject.updateSelected(!0)}removeSelect(){this.pathObject.updateSelected(!1)}setDeleteStyle(a){this.pathObject.updateDraggingDelete(a)}getColour(){return this.style.colourPrimary}setColour(a){super.setColour(a);a=this.workspace.getRenderer().getConstants().getBlockStyleForColour(this.colour_);this.pathObject.setStyle(a.style);this.style=a.style;this.styleName_=a.name;this.applyColour()}setStyle(a){const b= +this.workspace.getRenderer().getConstants().getBlockStyle(a);this.styleName_=a;if(b)this.hat=b.hat,this.pathObject.setStyle(b),this.colour_=b.colourPrimary,this.style=b,this.applyColour();else throw Error("Invalid style name: "+a);}bringToFront(){let a=this;do{const b=a.getSvgRoot(),c=b.parentNode,d=c.childNodes;d[d.length-1]!==b&&c.appendChild(b);a=a.getParent()}while(a)}setPreviousStatement(a,b){super.setPreviousStatement(a,b);this.rendered&&(this.queueRender(),this.bumpNeighbours())}setNextStatement(a, +b){super.setNextStatement(a,b);this.rendered&&(this.queueRender(),this.bumpNeighbours())}setOutput(a,b){super.setOutput(a,b);this.rendered&&(this.queueRender(),this.bumpNeighbours())}setInputsInline(a){super.setInputsInline(a);this.rendered&&(this.queueRender(),this.bumpNeighbours())}removeInput(a,b){a=super.removeInput(a,b);this.rendered&&(this.queueRender(),this.bumpNeighbours());return a}moveNumberedInputBefore(a,b){super.moveNumberedInputBefore(a,b);this.rendered&&(this.queueRender(),this.bumpNeighbours())}appendInput_(a, +b){a=super.appendInput_(a,b);this.rendered&&(this.queueRender(),this.bumpNeighbours());return a}setConnectionTracking(a){this.previousConnection&&this.previousConnection.setTracking(a);this.outputConnection&&this.outputConnection.setTracking(a);if(this.nextConnection){this.nextConnection.setTracking(a);var b=this.nextConnection.targetBlock();b&&b.setConnectionTracking(a)}if(!this.collapsed_)for(b=0;b{const b=getGroup$$module$build$src$core$events$utils();setGroup$$module$build$src$core$events$utils(a);this.getRootBlock().bumpNeighboursInternal();setGroup$$module$build$src$core$events$utils(b);this.bumpNeighboursPid=0},$.config$$module$build$src$core$config.bumpDelay)}}bumpNeighboursInternal(){const a= +this.getRootBlock();if(!(this.isDeadOrDying()||this.workspace.isDragging()||a.isInFlyout))for(const b of this.getConnections_(!1)){if(b.isSuperior()){let c;null==(c=b.targetBlock())||c.bumpNeighboursInternal()}for(const c of b.neighbours($.config$$module$build$src$core$config.snapRadius))c.getSourceBlock().getRootBlock()!==a&&(b.isConnected()&&c.isConnected()||(b.isSuperior()?c.bumpAwayFrom(b):b.bumpAwayFrom(c)))}}scheduleSnapAndBump(){const a=getGroup$$module$build$src$core$events$utils();setTimeout(()=> +{setGroup$$module$build$src$core$events$utils(a);this.snapToGrid();setGroup$$module$build$src$core$events$utils(!1)},$.config$$module$build$src$core$config.bumpDelay/2);this.bumpNeighbours()}positionNearConnection(a,b){a.type!==ConnectionType$$module$build$src$core$connection_type.NEXT_STATEMENT&&a.type!==ConnectionType$$module$build$src$core$connection_type.INPUT_VALUE||this.moveBy(b.x-a.x,b.y-a.y)}getFirstStatementConnection(){return super.getFirstStatementConnection()}getChildren(a){return super.getChildren(a)}queueRender(){queueRender$$module$build$src$core$render_management(this)}render(a){if(!this.renderIsInProgress_){this.renderIsInProgress_= +!0;try{this.rendered=!0;startTextWidthCache$$module$build$src$core$utils$dom();this.isCollapsed()&&this.updateCollapsed_();this.workspace.getRenderer().render(this);this.updateConnectionLocations();if(!1!==a){const b=this.getParent();b?b.render(!0):this.workspace.resizeContents()}stopTextWidthCache$$module$build$src$core$utils$dom();this.updateMarkers_()}finally{this.renderIsInProgress_=!1}}}renderEfficiently(){this.rendered=!0;startTextWidthCache$$module$build$src$core$utils$dom();this.isCollapsed()&& +this.updateCollapsed_();this.workspace.getRenderer().render(this);this.tightenChildrenEfficiently();stopTextWidthCache$$module$build$src$core$utils$dom();this.updateMarkers_()}tightenChildrenEfficiently(){for(const a of this.inputList){const b=a.connection;b&&b.tightenEfficiently()}this.nextConnection&&this.nextConnection.tightenEfficiently()}updateMarkers_(){this.workspace.keyboardAccessibilityMode&&this.pathObject.cursorSvg&&this.workspace.getCursor().draw();this.workspace.keyboardAccessibilityMode&& +this.pathObject.markerSvg&&this.workspace.getMarker(MarkerManager$$module$build$src$core$marker_manager.LOCAL_MARKER).draw();for(const a of this.inputList)for(const b of a.fieldRow)b.updateMarkers_()}updateConnectionLocations(){const a=this.getRelativeToSurfaceXY();this.previousConnection&&this.previousConnection.moveToOffset(a);this.outputConnection&&this.outputConnection.moveToOffset(a);for(let b=0;bc||b.getSourceBlock().isInsertionMarker())return!1;switch(b.type){case ConnectionType$$module$build$src$core$connection_type.PREVIOUS_STATEMENT:return this.canConnectToPrevious_(a,b);case ConnectionType$$module$build$src$core$connection_type.OUTPUT_VALUE:if(b.isConnected()&& +!b.targetBlock().isInsertionMarker()||a.isConnected())return!1;break;case ConnectionType$$module$build$src$core$connection_type.INPUT_VALUE:if(b.isConnected()&&!b.targetBlock().isMovable()&&!b.targetBlock().isShadow())return!1;break;case ConnectionType$$module$build$src$core$connection_type.NEXT_STATEMENT:if(b.isConnected()&&!a.getSourceBlock().nextConnection&&!b.targetBlock().isShadow()&&b.targetBlock().nextConnection||b.targetBlock()&&!b.targetBlock().isMovable()&&!b.targetBlock().isShadow())return!1; +break;default:return!1}return-1!==draggingConnections$$module$build$src$core$common.indexOf(b)?!1:!0}canConnectToPrevious_(a,b){if(a.targetConnection||-1!==draggingConnections$$module$build$src$core$common.indexOf(b))return!1;if(!b.targetConnection)return!0;a=b.targetBlock();return a.isInsertionMarker()?!a.getPreviousBlock():!1}};register$$module$build$src$core$registry(Type$$module$build$src$core$registry.CONNECTION_CHECKER,DEFAULT$$module$build$src$core$registry,ConnectionChecker$$module$build$src$core$connection_checker); +var module$build$src$core$connection_checker={};module$build$src$core$connection_checker.ConnectionChecker=ConnectionChecker$$module$build$src$core$connection_checker;var ConnectionDB$$module$build$src$core$connection_db=class{constructor(a){this.connectionChecker=a;this.connections_=[]}addConnection(a,b){b=this.calculateIndexForYPos_(b);this.connections_.splice(b,0,a)}findIndexOfConnection_(a,b){if(!this.connections_.length)return-1;const c=this.calculateIndexForYPos_(b);if(c>=this.connections_.length)return-1;b=a.y;let d=c;for(;0<=d&&this.connections_[d].y===b;){if(this.connections_[d]===a)return d;d--}for(d=c;da)c=d;else{b=d;break}}return b}removeConnection(a,b){a=this.findIndexOfConnection_(a,b);if(-1===a)throw Error("Unable to find connection in connectionDB.");this.connections_.splice(a,1)}getNeighbours(a,b){function c(l){const m=e-d[l].x,n=f-d[l].y; +Math.sqrt(m*m+n*n)<=b&&k.push(d[l]);return n=b&&a.outputConnection&&!c}else this.fullBlockClickTarget_=!1;this.fullBlockClickTarget_?this.clickTarget_=this.sourceBlock_.getSvgRoot():this.createBorderRect_();this.createTextElement_()}doValueInvalid_(a){this.isBeingEdited_&& +(this.isDirty_=!0,this.isTextValid_=!1,a=this.value_,this.value_=this.htmlInput_.getAttribute("data-untyped-default-value"),this.sourceBlock_&&isEnabled$$module$build$src$core$events$utils()&&fire$$module$build$src$core$events$utils(new (get$$module$build$src$core$events$utils(CHANGE$$module$build$src$core$events$utils))(this.sourceBlock_,"field",this.name||null,a,this.value_)))}doValueUpdate_(a){this.isTextValid_=this.isDirty_=!0;this.value_=a}applyColour(){if(this.sourceBlock_&&this.getConstants().FULL_BLOCK_FIELDS){var a= +this.sourceBlock_;this.borderRect_?this.borderRect_.setAttribute("stroke",a.style.colourTertiary):a.pathObject.svgPath.setAttribute("fill",this.getConstants().FIELD_BORDER_RECT_COLOUR)}}render_(){super.render_();if(this.isBeingEdited_){this.resizeEditor_();const a=this.htmlInput_;this.isTextValid_?(removeClass$$module$build$src$core$utils$dom(a,"blocklyInvalidInput"),setState$$module$build$src$core$utils$aria(a,State$$module$build$src$core$utils$aria.INVALID,!1)):(addClass$$module$build$src$core$utils$dom(a, +"blocklyInvalidInput"),setState$$module$build$src$core$utils$aria(a,State$$module$build$src$core$utils$aria.INVALID,!0))}}setSpellcheck(a){a!==this.spellcheck_&&(this.spellcheck_=a,this.htmlInput_&&this.htmlInput_.setAttribute("spellcheck",this.spellcheck_))}showEditor_(a,b=!1){this.workspace_=this.sourceBlock_.workspace;!b&&this.workspace_.options.modalInputs&&(MOBILE$$module$build$src$core$utils$useragent||ANDROID$$module$build$src$core$utils$useragent||IPAD$$module$build$src$core$utils$useragent)? +this.showPromptEditor_():this.showInlineEditor_(b)}showPromptEditor_(){prompt$$module$build$src$core$dialog(Msg$$module$build$src$core$msg.CHANGE_VALUE_TITLE,this.getText(),a=>{null!==a&&this.setValue(this.getValueFromEditorText_(a))})}showInlineEditor_(a){const b=this.getSourceBlock();if(!b)throw new UnattachedFieldError$$module$build$src$core$field;show$$module$build$src$core$widgetdiv(this,b.RTL,this.widgetDispose_.bind(this));this.htmlInput_=this.widgetCreate_();this.isBeingEdited_=!0;a||(this.htmlInput_.focus({preventScroll:!0}), +this.htmlInput_.select())}widgetCreate_(){var a=this.getSourceBlock();if(!a)throw new UnattachedFieldError$$module$build$src$core$field;setGroup$$module$build$src$core$events$utils(!0);const b=getDiv$$module$build$src$core$widgetdiv();var c=this.getClickTarget_();if(!c)throw Error("A click target has not been set.");addClass$$module$build$src$core$utils$dom(c,"editing");c=document.createElement("input");c.className="blocklyHtmlInput";c.setAttribute("spellcheck",this.spellcheck_);const d=this.workspace_.getScale(); +var e=this.getConstants().FIELD_TEXT_FONTSIZE*d+"pt";b.style.fontSize=e;c.style.fontSize=e;e=FieldInput$$module$build$src$core$field_input.BORDERRADIUS*d+"px";this.fullBlockClickTarget_&&(e=this.getScaledBBox(),e=(e.bottom-e.top)/2+"px",a=a.getParent()?a.getParent().style.colourTertiary:this.sourceBlock_.style.colourTertiary,c.style.border=1*d+"px solid "+a,b.style.borderRadius=e,b.style.transition="box-shadow 0.25s ease 0s",this.getConstants().FIELD_TEXTINPUT_BOX_SHADOW&&(b.style.boxShadow="rgba(255, 255, 255, 0.3) 0 0 0 "+ +4*d+"px"));c.style.borderRadius=e;b.appendChild(c);c.value=c.defaultValue=this.getEditorText_(this.value_);c.setAttribute("data-untyped-default-value",String(this.value_));this.resizeEditor_();this.bindInputEvents_(c);return c}widgetDispose_(){this.isBeingEdited_=!1;this.isTextValid_=!0;this.forceRerender();this.onFinishEditing_(this.value_);setGroup$$module$build$src$core$events$utils(!1);this.unbindInputEvents_();var a=getDiv$$module$build$src$core$widgetdiv().style;a.width="auto";a.height="auto"; +a.fontSize="";a.transition="";a.boxShadow="";this.htmlInput_=null;a=this.getClickTarget_();if(!a)throw Error("A click target has not been set.");removeClass$$module$build$src$core$utils$dom(a,"editing")}onFinishEditing_(a){}bindInputEvents_(a){this.onKeyDownWrapper_=conditionalBind$$module$build$src$core$browser_events(a,"keydown",this,this.onHtmlInputKeyDown_);this.onKeyInputWrapper_=conditionalBind$$module$build$src$core$browser_events(a,"input",this,this.onHtmlInputChange_)}unbindInputEvents_(){this.onKeyDownWrapper_&& +(unbind$$module$build$src$core$browser_events(this.onKeyDownWrapper_),this.onKeyDownWrapper_=null);this.onKeyInputWrapper_&&(unbind$$module$build$src$core$browser_events(this.onKeyInputWrapper_),this.onKeyInputWrapper_=null)}onHtmlInputKeyDown_(a){"Enter"===a.key?(hide$$module$build$src$core$widgetdiv(),hideWithoutAnimation$$module$build$src$core$dropdowndiv()):"Escape"===a.key?(this.setValue(this.htmlInput_.getAttribute("data-untyped-default-value")),hide$$module$build$src$core$widgetdiv(),hideWithoutAnimation$$module$build$src$core$dropdowndiv()): +"Tab"===a.key&&(hide$$module$build$src$core$widgetdiv(),hideWithoutAnimation$$module$build$src$core$dropdowndiv(),this.sourceBlock_.tab(this,!a.shiftKey),a.preventDefault())}onHtmlInputChange_(a){this.setValue(this.getValueFromEditorText_(this.htmlInput_.value))}setEditorValue_(a){this.isDirty_=!0;this.isBeingEdited_&&(this.htmlInput_.value=this.getEditorText_(a));this.setValue(a)}resizeEditor_(){var a=this.getSourceBlock();if(!a)throw new UnattachedFieldError$$module$build$src$core$field;const b= +getDiv$$module$build$src$core$widgetdiv(),c=this.getScaledBBox();b.style.width=c.right-c.left+"px";b.style.height=c.bottom-c.top+"px";a=new Coordinate$$module$build$src$core$utils$coordinate(a.RTL?c.right-b.offsetWidth:c.left,c.top);b.style.left=a.x+"px";b.style.top=a.y+"px"}isTabNavigable(){return!0}getText_(){return this.isBeingEdited_&&this.htmlInput_?this.htmlInput_.value:null}getEditorText_(a){return`${a}`}getValueFromEditorText_(a){return a}}; +FieldInput$$module$build$src$core$field_input.BORDERRADIUS=4;var module$build$src$core$field_input={};module$build$src$core$field_input.FieldInput=FieldInput$$module$build$src$core$field_input;var FieldAngle$$module$build$src$core$field_angle=class extends FieldInput$$module$build$src$core$field_input{constructor(a,b,c){super(Field$$module$build$src$core$field.SKIP_SETUP);this.clockwise=FieldAngle$$module$build$src$core$field_angle.CLOCKWISE;this.offset=FieldAngle$$module$build$src$core$field_angle.OFFSET;this.wrap=FieldAngle$$module$build$src$core$field_angle.WRAP;this.round=FieldAngle$$module$build$src$core$field_angle.ROUND;this.boundEvents=[];this.symbol_=this.gauge=this.line=null; +a!==Field$$module$build$src$core$field.SKIP_SETUP&&(c&&this.configure_(c),this.setValue(a),b&&this.setValidator(b))}configure_(a){super.configure_(a);switch(a.mode){case Mode$$module$build$src$core$field_angle.COMPASS:this.clockwise=!0;this.offset=90;break;case Mode$$module$build$src$core$field_angle.PROTRACTOR:this.clockwise=!1,this.offset=0}a.clockwise&&(this.clockwise=a.clockwise);a.offset&&(this.offset=a.offset);a.wrap&&(this.wrap=a.wrap);a.round&&(this.round=a.round)}initView(){super.initView(); +this.symbol_=createSvgElement$$module$build$src$core$utils$dom(Svg$$module$build$src$core$utils$svg.TSPAN,{});this.symbol_.appendChild(document.createTextNode("\u00b0"));this.getTextElement().appendChild(this.symbol_)}render_(){super.render_();this.updateGraph()}showEditor_(a){super.showEditor_(a,MOBILE$$module$build$src$core$utils$useragent||ANDROID$$module$build$src$core$utils$useragent||IPAD$$module$build$src$core$utils$useragent);a=this.dropdownCreate();getContentDiv$$module$build$src$core$dropdowndiv().appendChild(a); +this.sourceBlock_ instanceof BlockSvg$$module$build$src$core$block_svg&&setColour$$module$build$src$core$dropdowndiv(this.sourceBlock_.style.colourPrimary,this.sourceBlock_.style.colourTertiary);showPositionedByField$$module$build$src$core$dropdowndiv(this,this.dropdownDispose.bind(this));this.updateGraph()}dropdownCreate(){const a=createSvgElement$$module$build$src$core$utils$dom(Svg$$module$build$src$core$utils$svg.SVG,{xmlns:SVG_NS$$module$build$src$core$utils$dom,"xmlns:html":HTML_NS$$module$build$src$core$utils$dom, +"xmlns:xlink":XLINK_NS$$module$build$src$core$utils$dom,version:"1.1",height:2*FieldAngle$$module$build$src$core$field_angle.HALF+"px",width:2*FieldAngle$$module$build$src$core$field_angle.HALF+"px",style:"touch-action: none"}),b=createSvgElement$$module$build$src$core$utils$dom(Svg$$module$build$src$core$utils$svg.CIRCLE,{cx:FieldAngle$$module$build$src$core$field_angle.HALF,cy:FieldAngle$$module$build$src$core$field_angle.HALF,r:FieldAngle$$module$build$src$core$field_angle.RADIUS,"class":"blocklyAngleCircle"}, +a);this.gauge=createSvgElement$$module$build$src$core$utils$dom(Svg$$module$build$src$core$utils$svg.PATH,{"class":"blocklyAngleGauge"},a);this.line=createSvgElement$$module$build$src$core$utils$dom(Svg$$module$build$src$core$utils$svg.LINE,{x1:FieldAngle$$module$build$src$core$field_angle.HALF,y1:FieldAngle$$module$build$src$core$field_angle.HALF,"class":"blocklyAngleLine"},a);for(let c=0;360>c;c+=15)createSvgElement$$module$build$src$core$utils$dom(Svg$$module$build$src$core$utils$svg.LINE,{x1:FieldAngle$$module$build$src$core$field_angle.HALF+ +FieldAngle$$module$build$src$core$field_angle.RADIUS,y1:FieldAngle$$module$build$src$core$field_angle.HALF,x2:FieldAngle$$module$build$src$core$field_angle.HALF+FieldAngle$$module$build$src$core$field_angle.RADIUS-(0===c%45?10:5),y2:FieldAngle$$module$build$src$core$field_angle.HALF,"class":"blocklyAngleMarks",transform:"rotate("+c+","+FieldAngle$$module$build$src$core$field_angle.HALF+","+FieldAngle$$module$build$src$core$field_angle.HALF+")"},a);this.boundEvents.push(conditionalBind$$module$build$src$core$browser_events(a, +"click",this,this.hide));this.boundEvents.push(conditionalBind$$module$build$src$core$browser_events(b,"pointerdown",this,this.onMouseMove_,!0));this.boundEvents.push(conditionalBind$$module$build$src$core$browser_events(b,"pointermove",this,this.onMouseMove_,!0));return a}dropdownDispose(){for(const a of this.boundEvents)unbind$$module$build$src$core$browser_events(a);this.boundEvents.length=0;this.line=this.gauge=null}hide(){hideIfOwner$$module$build$src$core$dropdowndiv(this);hide$$module$build$src$core$widgetdiv()}onMouseMove_(a){var b= +this.gauge.ownerSVGElement.getBoundingClientRect();const c=a.clientX-b.left-FieldAngle$$module$build$src$core$field_angle.HALF;a=a.clientY-b.top-FieldAngle$$module$build$src$core$field_angle.HALF;b=Math.atan(-a/c);isNaN(b)||(b=toDegrees$$module$build$src$core$utils$math(b),0>c?b+=180:0a&&(a+=360);a>this.wrap&&(a-=360);return a}static fromJson(a){return new this(a.angle,void 0,a)}};FieldAngle$$module$build$src$core$field_angle.HALF=50;FieldAngle$$module$build$src$core$field_angle.RADIUS=FieldAngle$$module$build$src$core$field_angle.HALF-1;FieldAngle$$module$build$src$core$field_angle.CLOCKWISE=!1;FieldAngle$$module$build$src$core$field_angle.OFFSET=0; +FieldAngle$$module$build$src$core$field_angle.WRAP=360;FieldAngle$$module$build$src$core$field_angle.ROUND=15;register$$module$build$src$core$field_registry("field_angle",FieldAngle$$module$build$src$core$field_angle);FieldAngle$$module$build$src$core$field_angle.prototype.DEFAULT_VALUE=0;register$$module$build$src$core$css("\n.blocklyAngleCircle {\n stroke: #444;\n stroke-width: 1;\n fill: #ddd;\n fill-opacity: 0.8;\n}\n\n.blocklyAngleMarks {\n stroke: #444;\n stroke-width: 1;\n}\n\n.blocklyAngleGauge {\n fill: #f88;\n fill-opacity: 0.8;\n pointer-events: none;\n}\n\n.blocklyAngleLine {\n stroke: #f00;\n stroke-width: 2;\n stroke-linecap: round;\n pointer-events: none;\n}\n"); +var Mode$$module$build$src$core$field_angle;(function(a){a.COMPASS="compass";a.PROTRACTOR="protractor"})(Mode$$module$build$src$core$field_angle||(Mode$$module$build$src$core$field_angle={}));var module$build$src$core$field_angle={};module$build$src$core$field_angle.FieldAngle=FieldAngle$$module$build$src$core$field_angle;module$build$src$core$field_angle.Mode=Mode$$module$build$src$core$field_angle;var FieldCheckbox$$module$build$src$core$field_checkbox=class extends Field$$module$build$src$core$field{constructor(a,b,c){super(Field$$module$build$src$core$field.SKIP_SETUP);this.SERIALIZABLE=!0;this.CURSOR="default";this.value_=this.value_;this.checkChar_=FieldCheckbox$$module$build$src$core$field_checkbox.CHECK_CHAR;a!==Field$$module$build$src$core$field.SKIP_SETUP&&(c&&this.configure_(c),this.setValue(a),b&&this.setValidator(b))}configure_(a){super.configure_(a);a.checkCharacter&&(this.checkChar_= +a.checkCharacter)}saveState(){const a=this.saveLegacyState(FieldCheckbox$$module$build$src$core$field_checkbox);return null!==a?a:this.getValueBoolean()}initView(){super.initView();const a=this.getTextElement();addClass$$module$build$src$core$utils$dom(a,"blocklyCheckbox");a.style.display=this.value_?"block":"none"}render_(){this.textContent_&&(this.textContent_.nodeValue=this.getDisplayText_());this.updateSize_(this.getConstants().FIELD_CHECKBOX_X_OFFSET)}getDisplayText_(){return this.checkChar_}setCheckCharacter(a){this.checkChar_= +a||FieldCheckbox$$module$build$src$core$field_checkbox.CHECK_CHAR;this.forceRerender()}showEditor_(){this.setValue(!this.value_)}doClassValidation_(a){return!0===a||"TRUE"===a?"TRUE":!1===a||"FALSE"===a?"FALSE":null}doValueUpdate_(a){this.value_=this.convertValueToBool_(a);this.textElement_&&(this.textElement_.style.display=this.value_?"block":"none")}getValue(){return this.value_?"TRUE":"FALSE"}getValueBoolean(){return this.value_}getText(){return String(this.convertValueToBool_(this.value_))}convertValueToBool_(a){return"string"=== +typeof a?"TRUE"===a:!!a}static fromJson(a){return new this(a.checked,void 0,a)}};FieldCheckbox$$module$build$src$core$field_checkbox.CHECK_CHAR="\u2713";register$$module$build$src$core$field_registry("field_checkbox",FieldCheckbox$$module$build$src$core$field_checkbox);FieldCheckbox$$module$build$src$core$field_checkbox.prototype.DEFAULT_VALUE=!1;var module$build$src$core$field_checkbox={};module$build$src$core$field_checkbox.FieldCheckbox=FieldCheckbox$$module$build$src$core$field_checkbox;var FieldColour$$module$build$src$core$field_colour=class extends Field$$module$build$src$core$field{constructor(a,b,c){super(Field$$module$build$src$core$field.SKIP_SETUP);this.highlightedIndex=this.picker=null;this.boundEvents=[];this.SERIALIZABLE=!0;this.CURSOR="default";this.isDirty_=!1;this.titles=this.colours=null;this.columns=0;a!==Field$$module$build$src$core$field.SKIP_SETUP&&(c&&this.configure_(c),this.setValue(a),b&&this.setValidator(b))}configure_(a){super.configure_(a);a.colourOptions&& +(this.colours=a.colourOptions);a.colourTitles&&(this.titles=a.colourTitles);a.columns&&(this.columns=a.columns)}initView(){this.size_=new Size$$module$build$src$core$utils$size(this.getConstants().FIELD_COLOUR_DEFAULT_WIDTH,this.getConstants().FIELD_COLOUR_DEFAULT_HEIGHT);this.getConstants().FIELD_COLOUR_FULL_BLOCK?this.sourceBlock_ instanceof BlockSvg$$module$build$src$core$block_svg&&(this.clickTarget_=this.sourceBlock_.getSvgRoot()):(this.createBorderRect_(),this.getBorderRect().style.fillOpacity= +"1")}applyColour(){this.getConstants().FIELD_COLOUR_FULL_BLOCK?this.sourceBlock_ instanceof BlockSvg$$module$build$src$core$block_svg&&(this.sourceBlock_.pathObject.svgPath.setAttribute("fill",this.getValue()),this.sourceBlock_.pathObject.svgPath.setAttribute("stroke","#fff")):this.borderRect_&&(this.borderRect_.style.fill=this.getValue())}doClassValidation_(a){return"string"!==typeof a?null:parse$$module$build$src$core$utils$colour(a)}doValueUpdate_(a){this.value_=a;this.borderRect_?this.borderRect_.style.fill= +a:this.sourceBlock_&&this.sourceBlock_.rendered&&this.sourceBlock_ instanceof BlockSvg$$module$build$src$core$block_svg&&(this.sourceBlock_.pathObject.svgPath.setAttribute("fill",a),this.sourceBlock_.pathObject.svgPath.setAttribute("stroke","#fff"))}getText(){let a=this.value_;/^#(.)\1(.)\2(.)\3$/.test(a)&&(a="#"+a[1]+a[3]+a[5]);return a}setColours(a,b){this.colours=a;b&&(this.titles=b);return this}setColumns(a){this.columns=a;return this}showEditor_(){this.dropdownCreate();getContentDiv$$module$build$src$core$dropdowndiv().appendChild(this.picker); +showPositionedByField$$module$build$src$core$dropdowndiv(this,this.dropdownDispose.bind(this));this.picker.focus({preventScroll:!0})}onClick(a){a=(a=a.target)&&a.getAttribute("data-colour");null!==a&&(this.setValue(a),hideIfOwner$$module$build$src$core$dropdowndiv(this))}onKeyDown(a){let b=!0;var c;switch(a.key){case "ArrowUp":this.moveHighlightBy(0,-1);break;case "ArrowDown":this.moveHighlightBy(0,1);break;case "ArrowLeft":this.moveHighlightBy(-1,0);break;case "ArrowRight":this.moveHighlightBy(1, +0);break;case "Enter":if(c=this.getHighlighted())c=c.getAttribute("data-colour"),null!==c&&this.setValue(c);hideWithoutAnimation$$module$build$src$core$dropdowndiv();break;default:b=!1}b&&a.stopPropagation()}moveHighlightBy(a,b){if(this.highlightedIndex){var c=this.colours||FieldColour$$module$build$src$core$field_colour.COLOURS,d=this.columns||FieldColour$$module$build$src$core$field_colour.COLUMNS,e=this.highlightedIndex%d,f=Math.floor(this.highlightedIndex/d);e+=a;f+=b;0>a?0>e&&0e&&(e=0):0d-1&&fd-1&&e--:0>b?0>f&&(f=0):0Math.floor(c.length/d)-1&&(f=Math.floor(c.length/d)-1);this.setHighlightedCell(this.picker.childNodes[f].childNodes[e],f*d+e)}}onMouseMove(a){const b=(a=a.target)&&Number(a.getAttribute("data-index"));null!==b&&b!==this.highlightedIndex&&this.setHighlightedCell(a,b)}onMouseEnter(){let a;null==(a=this.picker)||a.focus({preventScroll:!0})}onMouseLeave(){var a;null==(a=this.picker)||a.blur();(a=this.getHighlighted())&& +removeClass$$module$build$src$core$utils$dom(a,"blocklyColourHighlighted")}getHighlighted(){if(!this.highlightedIndex)return null;const a=this.columns||FieldColour$$module$build$src$core$field_colour.COLUMNS,b=this.picker.childNodes[Math.floor(this.highlightedIndex/a)];return b?b.childNodes[this.highlightedIndex%a]:null}setHighlightedCell(a,b){const c=this.getHighlighted();c&&removeClass$$module$build$src$core$utils$dom(c,"blocklyColourHighlighted");addClass$$module$build$src$core$utils$dom(a,"blocklyColourHighlighted"); +this.highlightedIndex=b;(a=a.getAttribute("id"))&&this.picker&&setState$$module$build$src$core$utils$aria(this.picker,State$$module$build$src$core$utils$aria.ACTIVEDESCENDANT,a)}dropdownCreate(){const a=this.columns||FieldColour$$module$build$src$core$field_colour.COLUMNS,b=this.colours||FieldColour$$module$build$src$core$field_colour.COLOURS,c=this.titles||FieldColour$$module$build$src$core$field_colour.TITLES,d=this.getValue(),e=document.createElement("table");e.className="blocklyColourTable";e.tabIndex= +0;e.dir="ltr";setRole$$module$build$src$core$utils$aria(e,Role$$module$build$src$core$utils$aria.GRID);setState$$module$build$src$core$utils$aria(e,State$$module$build$src$core$utils$aria.EXPANDED,!0);setState$$module$build$src$core$utils$aria(e,State$$module$build$src$core$utils$aria.ROWCOUNT,Math.floor(b.length/a));setState$$module$build$src$core$utils$aria(e,State$$module$build$src$core$utils$aria.COLCOUNT,a);let f;for(let g=0;gtr>td {\n border: 0.5px solid #888;\n box-sizing: border-box;\n cursor: pointer;\n display: inline-block;\n height: 20px;\n padding: 0;\n width: 20px;\n}\n\n.blocklyColourTable>tr>td.blocklyColourHighlighted {\n border-color: #eee;\n box-shadow: 2px 2px 7px 2px rgba(0, 0, 0, 0.3);\n position: relative;\n}\n\n.blocklyColourSelected, .blocklyColourSelected:hover {\n border-color: #eee !important;\n outline: 1px solid #333;\n position: relative;\n}\n"); +var module$build$src$core$field_colour={};module$build$src$core$field_colour.FieldColour=FieldColour$$module$build$src$core$field_colour;var FieldImage$$module$build$src$core$field_image=class extends Field$$module$build$src$core$field{constructor(a,b,c,d,e,f,g){super(Field$$module$build$src$core$field.SKIP_SETUP);this.imageElement_=this.clickHandler_=null;this.flipRtl_=this.isDirty_=this.EDITABLE=!1;this.altText_="";c=Number(replaceMessageReferences$$module$build$src$core$utils$parsing(c));b=Number(replaceMessageReferences$$module$build$src$core$utils$parsing(b));if(isNaN(c)||isNaN(b))throw Error("Height and width values of an image field must cast to numbers."); +if(0>=c||0>=b)throw Error("Height and width values of an image field must be greater than 0.");this.size_=new Size$$module$build$src$core$utils$size(b,c+FieldImage$$module$build$src$core$field_image.Y_PADDING);this.imageHeight_=c;"function"===typeof e&&(this.clickHandler_=e);a!==Field$$module$build$src$core$field.SKIP_SETUP&&(g?this.configure_(g):(this.flipRtl_=!!f,this.altText_=replaceMessageReferences$$module$build$src$core$utils$parsing(d)||""),this.setValue(replaceMessageReferences$$module$build$src$core$utils$parsing(a)))}configure_(a){super.configure_(a); +a.flipRtl&&(this.flipRtl_=a.flipRtl);a.alt&&(this.altText_=replaceMessageReferences$$module$build$src$core$utils$parsing(a.alt))}initView(){this.imageElement_=createSvgElement$$module$build$src$core$utils$dom(Svg$$module$build$src$core$utils$svg.IMAGE,{height:this.imageHeight_+"px",width:this.size_.width+"px",alt:this.altText_},this.fieldGroup_);this.imageElement_.setAttributeNS(XLINK_NS$$module$build$src$core$utils$dom,"xlink:href",this.value_);this.clickHandler_&&(this.imageElement_.style.cursor= +"pointer")}updateSize_(){}doClassValidation_(a){return"string"!==typeof a?null:a}doValueUpdate_(a){this.value_=a;this.imageElement_&&this.imageElement_.setAttributeNS(XLINK_NS$$module$build$src$core$utils$dom,"xlink:href",this.value_)}getFlipRtl(){return this.flipRtl_}setAlt(a){a!==this.altText_&&(this.altText_=a||"",this.imageElement_&&this.imageElement_.setAttribute("alt",this.altText_))}showEditor_(){this.clickHandler_&&this.clickHandler_(this)}setOnClickHandler(a){this.clickHandler_=a}getText_(){return this.altText_}static fromJson(a){if(!a.src|| +!a.width||!a.height)throw Error("src, width, and height values for an image field arerequired. The width and height must be non-zero.");return new this(a.src,a.width,a.height,void 0,void 0,void 0,a)}};FieldImage$$module$build$src$core$field_image.Y_PADDING=1;register$$module$build$src$core$field_registry("field_image",FieldImage$$module$build$src$core$field_image);FieldImage$$module$build$src$core$field_image.prototype.DEFAULT_VALUE="";var module$build$src$core$field_image={}; +module$build$src$core$field_image.FieldImage=FieldImage$$module$build$src$core$field_image;var FieldLabelSerializable$$module$build$src$core$field_label_serializable=class extends FieldLabel$$module$build$src$core$field_label{constructor(a,b,c){super(String(null!=a?a:""),b,c);this.EDITABLE=!1;this.SERIALIZABLE=!0}static fromJson(a){return new this(replaceMessageReferences$$module$build$src$core$utils$parsing(a.text),void 0,a)}};register$$module$build$src$core$field_registry("field_label_serializable",FieldLabelSerializable$$module$build$src$core$field_label_serializable); +var module$build$src$core$field_label_serializable={};module$build$src$core$field_label_serializable.FieldLabelSerializable=FieldLabelSerializable$$module$build$src$core$field_label_serializable;var FieldTextInput$$module$build$src$core$field_textinput=class extends FieldInput$$module$build$src$core$field_input{constructor(a,b,c){super(a,b,c)}doClassValidation_(a){return void 0===a?null:`${a}`}static fromJson(a){return new this(replaceMessageReferences$$module$build$src$core$utils$parsing(a.text),void 0,a)}};register$$module$build$src$core$field_registry("field_input",FieldTextInput$$module$build$src$core$field_textinput); +FieldTextInput$$module$build$src$core$field_textinput.prototype.DEFAULT_VALUE="";var module$build$src$core$field_textinput={};module$build$src$core$field_textinput.FieldTextInput=FieldTextInput$$module$build$src$core$field_textinput;var FieldMultilineInput$$module$build$src$core$field_multilineinput=class extends FieldTextInput$$module$build$src$core$field_textinput{constructor(a,b,c){super(Field$$module$build$src$core$field.SKIP_SETUP);this.textGroup=null;this.maxLines_=Infinity;this.isOverflowedY_=!1;a!==Field$$module$build$src$core$field.SKIP_SETUP&&(c&&this.configure_(c),this.setValue(a),b&&this.setValidator(b))}configure_(a){super.configure_(a);a.maxLines&&this.setMaxLines(a.maxLines)}toXml(a){a.textContent=this.getValue().replace(/\n/g, +" ");return a}fromXml(a){this.setValue(a.textContent.replace(/ /g,"\n"))}saveState(){const a=this.saveLegacyState(FieldMultilineInput$$module$build$src$core$field_multilineinput);return null!==a?a:this.getValue()}loadState(a){this.loadLegacyState(Field$$module$build$src$core$field,a)||this.setValue(a)}initView(){this.createBorderRect_();this.textGroup=createSvgElement$$module$build$src$core$utils$dom(Svg$$module$build$src$core$utils$svg.G,{"class":"blocklyEditableText"},this.fieldGroup_)}getDisplayText_(){const a= +this.getSourceBlock();if(!a)throw new UnattachedFieldError$$module$build$src$core$field;let b=this.getText();if(!b)return Field$$module$build$src$core$field.NBSP;const c=b.split("\n");b="";const d=this.isOverflowedY_?this.maxLines_:c.length;for(let e=0;ethis.maxDisplayLength?f=f.substring(0,this.maxDisplayLength-4)+"...":this.isOverflowedY_&&e===d-1&&(f=f.substring(0,f.length-3)+"...");f=f.replace(/\s/g,Field$$module$build$src$core$field.NBSP);b+=f;e!==d-1&&(b+="\n")}a.RTL&& +(b+="\u200f");return b}doValueUpdate_(a){super.doValueUpdate_(a);null!==this.value_&&(this.isOverflowedY_=this.value_.split("\n").length>this.maxLines_)}render_(){var a=this.getSourceBlock();if(!a)throw new UnattachedFieldError$$module$build$src$core$field;for(var b,c=this.textGroup;b=c.firstChild;)c.removeChild(b);b=this.getDisplayText_().split("\n");let d=0;for(let e=0;ee&&(e=h);f+=this.getConstants().FIELD_TEXT_HEIGHT+(0this.maxDisplayLength&&(a[h]=a[h].substring(0,this.maxDisplayLength));g.textContent=a[h];const k=getFastTextWidth$$module$build$src$core$utils$dom(g,b,c,d);k>e&&(e=k)}e+=this.htmlInput_.offsetWidth-this.htmlInput_.clientWidth}this.borderRect_&&(f+=2*this.getConstants().FIELD_BORDER_RECT_Y_PADDING,e+=2*this.getConstants().FIELD_BORDER_RECT_X_PADDING,this.borderRect_.setAttribute("width",`${e}`),this.borderRect_.setAttribute("height",`${f}`));this.size_.width=e;this.size_.height= +f;this.positionBorderRect_()}showEditor_(a,b){super.showEditor_(a,b);this.forceRerender()}widgetCreate_(){const a=getDiv$$module$build$src$core$widgetdiv(),b=this.workspace_.getScale(),c=document.createElement("textarea");c.className="blocklyHtmlInput blocklyHtmlTextAreaInput";c.setAttribute("spellcheck",String(this.spellcheck_));var d=this.getConstants().FIELD_TEXT_FONTSIZE*b+"pt";a.style.fontSize=d;c.style.fontSize=d;c.style.borderRadius=FieldTextInput$$module$build$src$core$field_textinput.BORDERRADIUS* +b+"px";d=this.getConstants().FIELD_BORDER_RECT_X_PADDING*b;const e=this.getConstants().FIELD_BORDER_RECT_Y_PADDING*b/2;c.style.padding=e+"px "+d+"px "+e+"px "+d+"px";d=this.getConstants().FIELD_TEXT_HEIGHT+this.getConstants().FIELD_BORDER_RECT_Y_PADDING;c.style.lineHeight=d*b+"px";a.appendChild(c);c.value=c.defaultValue=this.getEditorText_(this.value_);c.setAttribute("data-untyped-default-value",String(this.value_));c.setAttribute("data-old-value","");GECKO$$module$build$src$core$utils$useragent? +setTimeout(this.resizeEditor_.bind(this),0):this.resizeEditor_();this.bindInputEvents_(c);return c}setMaxLines(a){"number"===typeof a&&0this.max_&&(a.max=`${this.max_}`,setState$$module$build$src$core$utils$aria(a,State$$module$build$src$core$utils$aria.VALUEMAX, +this.max_));return a}static fromJson(a){return new this(a.value,void 0,void 0,void 0,void 0,a)}};register$$module$build$src$core$field_registry("field_number",FieldNumber$$module$build$src$core$field_number);FieldNumber$$module$build$src$core$field_number.prototype.DEFAULT_VALUE=0;var module$build$src$core$field_number={};module$build$src$core$field_number.FieldNumber=FieldNumber$$module$build$src$core$field_number;var FieldVariable$$module$build$src$core$field_variable=class extends FieldDropdown$$module$build$src$core$field_dropdown{constructor(a,b,c,d,e){super(Field$$module$build$src$core$field.SKIP_SETUP);this.defaultType_="";this.variableTypes=[];this.variable_=null;this.SERIALIZABLE=!0;this.menuGenerator_=FieldVariable$$module$build$src$core$field_variable.dropdownCreate;this.defaultVariableName="string"===typeof a?a:"";this.size_=new Size$$module$build$src$core$utils$size(0,0);a!==Field$$module$build$src$core$field.SKIP_SETUP&& +(e?this.configure_(e):this.setTypes_(c,d),b&&this.setValidator(b))}configure_(a){super.configure_(a);this.setTypes_(a.variableTypes,a.defaultType)}initModel(){var a=this.getSourceBlock();if(!a)throw new UnattachedFieldError$$module$build$src$core$field;this.variable_||(a=getOrCreateVariablePackage$$module$build$src$core$variables(a.workspace,null,this.defaultVariableName,this.defaultType_),this.doValueUpdate_(a.getId()))}shouldAddBorderRect_(){const a=this.getSourceBlock();if(!a)throw new UnattachedFieldError$$module$build$src$core$field; +return super.shouldAddBorderRect_()&&(!this.getConstants().FIELD_DROPDOWN_NO_BORDER_RECT_SHADOW||"variables_get"!==a.type)}fromXml(a){var b=this.getSourceBlock();if(!b)throw new UnattachedFieldError$$module$build$src$core$field;const c=a.getAttribute("id"),d=a.textContent,e=a.getAttribute("variabletype")||a.getAttribute("variableType")||"";b=getOrCreateVariablePackage$$module$build$src$core$variables(b.workspace,c,d,e);if(null!==e&&e!==b.type)throw Error("Serialized variable type with id '"+b.getId()+ +"' had type "+b.type+", and does not match variable field that references it: "+domToText$$module$build$src$core$xml(a)+".");this.setValue(b.getId())}toXml(a){this.initModel();a.id=this.variable_.getId();a.textContent=this.variable_.name;this.variable_.type&&a.setAttribute("variabletype",this.variable_.type);return a}saveState(a){var b=this.saveLegacyState(FieldVariable$$module$build$src$core$field_variable);if(null!==b)return b;this.initModel();b={id:this.variable_.getId()};a&&(b.name=this.variable_.name, +b.type=this.variable_.type);return b}loadState(a){const b=this.getSourceBlock();if(!b)throw new UnattachedFieldError$$module$build$src$core$field;this.loadLegacyState(FieldVariable$$module$build$src$core$field_variable,a)||(a=getOrCreateVariablePackage$$module$build$src$core$variables(b.workspace,a.id||null,a.name,a.type||""),this.setValue(a.getId()))}setSourceBlock(a){if(a.isShadow())throw Error("Variable fields are not allowed to exist on shadow blocks.");super.setSourceBlock(a)}getValue(){return this.variable_? +this.variable_.getId():null}getText(){return this.variable_?this.variable_.name:""}getVariable(){return this.variable_}getValidator(){return this.variable_?this.validator_:null}doClassValidation_(a){if(null===a)return null;var b=this.getSourceBlock();if(!b)throw new UnattachedFieldError$$module$build$src$core$field;b=getVariable$$module$build$src$core$variables(b.workspace,a);if(!b)return console.warn("Variable id doesn't point to a real variable! ID was "+a),null;b=b.type;return this.typeIsAllowed_(b)? +a:(console.warn("Variable type doesn't match this field! Type was "+b),null)}doValueUpdate_(a){const b=this.getSourceBlock();if(!b)throw new UnattachedFieldError$$module$build$src$core$field;this.variable_=getVariable$$module$build$src$core$variables(b.workspace,a);super.doValueUpdate_(a)}typeIsAllowed_(a){const b=this.getVariableTypes_();if(!b)return!0;for(let c=0;c(this.flyout_?$.config$$module$build$src$core$config.flyoutDragRadius:$.config$$module$build$src$core$config.dragRadius)}updateIsDraggingFromFlyout_(){let a;if(!this.targetBlock_||null==(a=this.flyout_)||!a.isBlockCreatable(this.targetBlock_))return!1;if(!this.flyout_.targetWorkspace)throw Error("Cannot update dragging from the flyout because the ' +\n 'flyout's target workspace is undefined"); +return!this.flyout_.isScrollable()||this.flyout_.isDragTowardWorkspace(this.currentDragDeltaXY_)?(this.startWorkspace_=this.flyout_.targetWorkspace,this.startWorkspace_.updateScreenCalculationsIfScrolled(),getGroup$$module$build$src$core$events$utils()||setGroup$$module$build$src$core$events$utils(!0),this.startBlock_=null,this.targetBlock_=this.flyout_.createBlock(this.targetBlock_),this.targetBlock_.select(),!0):!1}updateIsDraggingBubble_(){if(!this.startBubble_)return!1;this.startDraggingBubble_(); +return!0}updateIsDraggingBlock_(){if(!this.targetBlock_)return!1;if(this.flyout_){if(this.updateIsDraggingFromFlyout_())return this.startDraggingBlock_(),!0}else if(this.targetBlock_.isMovable())return this.startDraggingBlock_(),!0;return!1}updateIsDraggingWorkspace_(){if(!this.startWorkspace_)throw Error("Cannot update dragging the workspace because the start workspace is undefined");if(this.flyout_?this.flyout_.isScrollable():this.startWorkspace_&&this.startWorkspace_.isDraggable())this.workspaceDragger_= +new WorkspaceDragger$$module$build$src$core$workspace_dragger(this.startWorkspace_),this.workspaceDragger_.startDrag()}updateIsDragging_(){if(this.calledUpdateIsDragging_)throw Error("updateIsDragging_ should only be called once per gesture.");this.calledUpdateIsDragging_=!0;this.updateIsDraggingBubble_()||this.updateIsDraggingBlock_()||this.updateIsDraggingWorkspace_()}startDraggingBlock_(){this.blockDragger_=new (getClassFromOptions$$module$build$src$core$registry(Type$$module$build$src$core$registry.BLOCK_DRAGGER, +this.creatorWorkspace.options,!0))(this.targetBlock_,this.startWorkspace_);this.blockDragger_.startDrag(this.currentDragDeltaXY_,this.healStack_);this.blockDragger_.drag(this.mostRecentEvent_,this.currentDragDeltaXY_)}startDraggingBubble_(){if(!this.startBubble_)throw Error("Cannot update dragging the bubble because the start bubble is undefined");if(!this.startWorkspace_)throw Error("Cannot update dragging the bubble because the start workspace is undefined");this.bubbleDragger_=new BubbleDragger$$module$build$src$core$bubble_dragger(this.startBubble_, +this.startWorkspace_);this.bubbleDragger_.startBubbleDrag();this.bubbleDragger_.dragBubble(this.mostRecentEvent_,this.currentDragDeltaXY_)}doStart(a){if(!this.startWorkspace_)throw Error("Cannot start the touch gesture becauase the start workspace is undefined");this.isPinchZoomEnabled_=this.startWorkspace_.options.zoomOptions&&this.startWorkspace_.options.zoomOptions.pinch;isTargetInput$$module$build$src$core$browser_events(a)?this.cancel():(this.hasStarted_=!0,disconnectUiStop$$module$build$src$core$block_animations(), +this.startWorkspace_.updateScreenCalculationsIfScrolled(),this.startWorkspace_.isMutator&&this.startWorkspace_.resize(),this.currentDropdownOwner=getOwner$$module$build$src$core$dropdowndiv(),this.startWorkspace_.hideChaff(!!this.flyout_),this.startWorkspace_.markFocused(),this.mostRecentEvent_=a,block$$module$build$src$core$tooltip(),this.targetBlock_&&this.targetBlock_.select(),isRightButton$$module$build$src$core$browser_events(a)?this.handleRightClick(a):("pointerdown"===a.type.toLowerCase()&& +"mouse"!==a.pointerType&&longStart$$module$build$src$core$touch(a,this),this.mouseDownXY_=new Coordinate$$module$build$src$core$utils$coordinate(a.clientX,a.clientY),this.healStack_=a.altKey||a.ctrlKey||a.metaKey,this.bindMouseEvents(a),this.isEnding_||this.handleTouchStart(a)))}bindMouseEvents(a){this.boundEvents.push(conditionalBind$$module$build$src$core$browser_events(document,"pointerdown",null,this.handleStart.bind(this),!0));this.boundEvents.push(conditionalBind$$module$build$src$core$browser_events(document, +"pointermove",null,this.handleMove.bind(this),!0));this.boundEvents.push(conditionalBind$$module$build$src$core$browser_events(document,"pointerup",null,this.handleUp.bind(this),!0));a.preventDefault();a.stopPropagation()}handleStart(a){this.isDragging()||(this.handleTouchStart(a),this.isMultiTouch()&&longStop$$module$build$src$core$touch())}handleMove(a){this.isDragging()&&shouldHandleEvent$$module$build$src$core$touch(a)||!this.isMultiTouch()?(this.updateFromEvent_(a),this.workspaceDragger_?this.workspaceDragger_.drag(this.currentDragDeltaXY_): +this.blockDragger_?this.blockDragger_.drag(this.mostRecentEvent_,this.currentDragDeltaXY_):this.bubbleDragger_&&this.bubbleDragger_.dragBubble(this.mostRecentEvent_,this.currentDragDeltaXY_),a.preventDefault(),a.stopPropagation()):this.isMultiTouch()&&(this.handleTouchMove(a),longStop$$module$build$src$core$touch())}handleUp(a){this.isDragging()||this.handleTouchEnd(a);if(!this.isMultiTouch()||this.isDragging()){if(!shouldHandleEvent$$module$build$src$core$touch(a))return;this.updateFromEvent_(a); +longStop$$module$build$src$core$touch();if(this.isEnding_){console.log("Trying to end a gesture recursively.");return}this.isEnding_=!0;this.bubbleDragger_?this.bubbleDragger_.endBubbleDrag(a,this.currentDragDeltaXY_):this.blockDragger_?this.blockDragger_.endDrag(a,this.currentDragDeltaXY_):this.workspaceDragger_?this.workspaceDragger_.endDrag(this.currentDragDeltaXY_):this.isBubbleClick_()?this.doBubbleClick_():this.isFieldClick_()?this.doFieldClick_():this.isBlockClick_()?this.doBlockClick_():this.isWorkspaceClick_()&& +this.doWorkspaceClick_(a)}a.preventDefault();a.stopPropagation();this.dispose()}handleTouchStart(a){var b=getTouchIdentifierFromEvent$$module$build$src$core$touch(a);this.cachedPoints.set(b,this.getTouchPoint(a));var c=Array.from(this.cachedPoints.keys());2===c.length&&(b=this.cachedPoints.get(c[0]),c=this.cachedPoints.get(c[1]),this.startDistance_=Coordinate$$module$build$src$core$utils$coordinate.distance(b,c),this.isMultiTouch_=!0,a.preventDefault())}handleTouchMove(a){const b=getTouchIdentifierFromEvent$$module$build$src$core$touch(a); +this.cachedPoints.set(b,this.getTouchPoint(a));this.isPinchZoomEnabled_&&2===this.cachedPoints.size?this.handlePinch_(a):this.handleMove(a)}handlePinch_(a){var b=Array.from(this.cachedPoints.keys()),c=this.cachedPoints.get(b[0]);b=this.cachedPoints.get(b[1]);c=Coordinate$$module$build$src$core$utils$coordinate.distance(c,b)/this.startDistance_;if(0this.previousScale_){b=c-this.previousScale_;b=0this.cachedPoints.size&&(this.cachedPoints.clear(),this.previousScale_=0)}getTouchPoint(a){return this.startWorkspace_? +new Coordinate$$module$build$src$core$utils$coordinate(a.pageX,a.pageY):null}isMultiTouch(){return this.isMultiTouch_}cancel(){this.isEnding_||(longStop$$module$build$src$core$touch(),this.bubbleDragger_?this.bubbleDragger_.endBubbleDrag(this.mostRecentEvent_,this.currentDragDeltaXY_):this.blockDragger_?this.blockDragger_.endDrag(this.mostRecentEvent_,this.currentDragDeltaXY_):this.workspaceDragger_&&this.workspaceDragger_.endDrag(this.currentDragDeltaXY_),this.dispose())}handleRightClick(a){this.targetBlock_? +(this.bringBlockToFront_(),this.targetBlock_.workspace.hideChaff(!!this.flyout_),this.targetBlock_.showContextMenu(a)):this.startBubble_?this.startBubble_.showContextMenu(a):this.startWorkspace_&&!this.flyout_&&(this.startWorkspace_.hideChaff(),this.startWorkspace_.showContextMenu(a));a.preventDefault();a.stopPropagation();this.dispose()}handleWsStart(a,b){if(this.hasStarted_)throw Error("Tried to call gesture.handleWsStart, but the gesture had already been started.");this.setStartWorkspace_(b);this.mostRecentEvent_= +a;this.doStart(a)}fireWorkspaceClick_(a){fire$$module$build$src$core$events$utils(new (get$$module$build$src$core$events$utils(CLICK$$module$build$src$core$events$utils))(null,a.id,"workspace"))}handleFlyoutStart(a,b){if(this.hasStarted_)throw Error("Tried to call gesture.handleFlyoutStart, but the gesture had already been started.");this.setStartFlyout_(b);this.handleWsStart(a,b.getWorkspace())}handleBlockStart(a,b){if(this.hasStarted_)throw Error("Tried to call gesture.handleBlockStart, but the gesture had already been started."); +this.setStartBlock(b);this.mostRecentEvent_=a}handleBubbleStart(a,b){if(this.hasStarted_)throw Error("Tried to call gesture.handleBubbleStart, but the gesture had already been started.");this.setStartBubble(b);this.mostRecentEvent_=a}doBubbleClick_(){this.startBubble_ instanceof WorkspaceCommentSvg$$module$build$src$core$workspace_comment_svg&&(this.startBubble_.setFocus(),this.startBubble_.select())}doFieldClick_(){if(!this.startField_)throw Error("Cannot do a field click because the start field is undefined"); +this.currentDropdownOwner!==this.startField_&&this.startField_.showEditor(this.mostRecentEvent_);this.bringBlockToFront_()}doBlockClick_(){if(this.flyout_&&this.flyout_.autoClose){if(!this.targetBlock_)throw Error("Cannot do a block click because the target block is undefined");this.targetBlock_.isEnabled()&&(getGroup$$module$build$src$core$events$utils()||setGroup$$module$build$src$core$events$utils(!0),this.flyout_.createBlock(this.targetBlock_).scheduleSnapAndBump())}else{if(!this.startWorkspace_)throw Error("Cannot do a block click because the start workspace is undefined"); +const a=new (get$$module$build$src$core$events$utils(CLICK$$module$build$src$core$events$utils))(this.startBlock_,this.startWorkspace_.id,"block");fire$$module$build$src$core$events$utils(a)}this.bringBlockToFront_();setGroup$$module$build$src$core$events$utils(!1)}doWorkspaceClick_(a){a=this.creatorWorkspace;getSelected$$module$build$src$core$common()&&getSelected$$module$build$src$core$common().unselect();this.fireWorkspaceClick_(this.startWorkspace_||a)}bringBlockToFront_(){this.targetBlock_&& +!this.flyout_&&this.targetBlock_.bringToFront()}setStartField(a){if(this.hasStarted_)throw Error("Tried to call gesture.setStartField, but the gesture had already been started.");this.startField_||(this.startField_=a)}setStartBubble(a){this.startBubble_||(this.startBubble_=a)}setStartBlock(a){this.startBlock_||this.startBubble_||(this.startBlock_=a,a.isInFlyout&&a!==a.getRootBlock()?this.setTargetBlock_(a.getRootBlock()):this.setTargetBlock_(a))}setTargetBlock_(a){a.isShadow()?this.setTargetBlock_(a.getParent()): +this.targetBlock_=a}setStartWorkspace_(a){this.startWorkspace_||(this.startWorkspace_=a)}setStartFlyout_(a){this.flyout_||(this.flyout_=a)}isBubbleClick_(){return!!this.startBubble_&&!this.hasExceededDragRadius_}isBlockClick_(){return!!this.startBlock_&&!this.hasExceededDragRadius_&&!this.isFieldClick_()}isFieldClick_(){return(this.startField_?this.startField_.isClickable():!1)&&!this.hasExceededDragRadius_&&(!this.flyout_||!this.flyout_.autoClose)}isWorkspaceClick_(){return!this.startBlock_&&!this.startBubble_&& +!this.startField_&&!this.hasExceededDragRadius_}isDragging(){return!!this.workspaceDragger_||!!this.blockDragger_||!!this.bubbleDragger_}hasStarted(){return this.hasStarted_}getInsertionMarkers(){return this.blockDragger_?this.blockDragger_.getInsertionMarkers():[]}getCurrentDragger(){let a,b;return null!=(b=null!=(a=this.blockDragger_)?a:this.workspaceDragger_)?b:this.bubbleDragger_}static inProgress(){const a=getAllWorkspaces$$module$build$src$core$common();for(let b=0,c;c=a[b];b++)if(c.currentGesture_)return!0; +return!1}},module$build$src$core$gesture={};module$build$src$core$gesture.Gesture=Gesture$$module$build$src$core$gesture;var Grid$$module$build$src$core$grid=class{constructor(a,b){this.pattern=a;let c;this.spacing=null!=(c=b.spacing)?c:0;let d;this.length=null!=(d=b.length)?d:1;this.line2=(this.line1=a.firstChild)&&this.line1.nextSibling;let e;this.snapToGrid=null!=(e=b.snap)?e:!1}shouldSnap(){return this.snapToGrid}getSpacing(){return this.spacing}getPatternId(){return this.pattern.id}update(a){var b=this.spacing*a;this.pattern.setAttribute("width",`${b}`);this.pattern.setAttribute("height",`${b}`);b=Math.floor(this.spacing/ +2)+.5;let c=b-this.length/2,d=b+this.length/2;b*=a;c*=a;d*=a;this.setLineAttributes(this.line1,a,c,d,b,b);this.setLineAttributes(this.line2,a,b,b,c,d)}setLineAttributes(a,b,c,d,e,f){a&&(a.setAttribute("stroke-width",`${b}`),a.setAttribute("x1",`${c}`),a.setAttribute("y1",`${e}`),a.setAttribute("x2",`${d}`),a.setAttribute("y2",`${f}`))}moveTo(a,b){this.pattern.setAttribute("x",`${a}`);this.pattern.setAttribute("y",`${b}`)}static createDom(a,b,c){a=createSvgElement$$module$build$src$core$utils$dom(Svg$$module$build$src$core$utils$svg.PATTERN, +{id:"blocklyGridPattern"+a,patternUnits:"userSpaceOnUse"},c);let d,e;if(0<(null!=(d=b.length)?d:1)&&0<(null!=(e=b.spacing)?e:0)){createSvgElement$$module$build$src$core$utils$dom(Svg$$module$build$src$core$utils$svg.LINE,{stroke:b.colour},a);let f;null!=(f=b.length)&&f&&createSvgElement$$module$build$src$core$utils$dom(Svg$$module$build$src$core$utils$svg.LINE,{stroke:b.colour},a)}else createSvgElement$$module$build$src$core$utils$dom(Svg$$module$build$src$core$utils$svg.LINE,{},a);return a}},module$build$src$core$grid= +{};module$build$src$core$grid.Grid=Grid$$module$build$src$core$grid;var Names$$module$build$src$core$names=class{constructor(a,b){this.db=new Map;this.dbReverse=new Set;this.variableMap_=null;this.variablePrefix_=b||"";this.reservedWords=new Set(a?a.split(","):[])}reset(){this.db.clear();this.dbReverse.clear();this.variableMap_=null}setVariableMap(a){this.variableMap_=a}getNameForUserVariable_(a){return this.variableMap_?(a=this.variableMap_.getVariableById(a))?a.name:null:(console.warn("Deprecated call to Names.prototype.getName without defining a variable map. To fix, add the following code in your generator's init() function:\nBlockly.YourGeneratorName.nameDB_.setVariableMap(workspace.getVariableMap());"), +null)}populateVariables(a){a=allUsedVarModels$$module$build$src$core$variables(a);for(let b=0;brect,`,`${a} .blocklyEditableText>rect {`,`fill: ${this.FIELD_BORDER_RECT_COLOUR};`,"fill-opacity: .6;","stroke: none;","}",`${a} .blocklyNonEditableText>text,`,`${a} .blocklyEditableText>text {`,"fill: #000;","}",`${a} .blocklyFlyoutLabelText {`,"fill: #000;","}",`${a} .blocklyText.blocklyBubbleText {`,"fill: #000;","}",`${a} .blocklyEditableText:not(.editing):hover>rect {`,"stroke: #fff;","stroke-width: 2;","}",`${a} .blocklyHtmlInput {`, +`font-family: ${this.FIELD_TEXT_FONTFAMILY};`,`font-weight: ${this.FIELD_TEXT_FONTWEIGHT};`,"}",`${a} .blocklySelected>.blocklyPath {`,"stroke: #fc3;","stroke-width: 3px;","}",`${a} .blocklyHighlightedConnectionPath {`,"stroke: #fc3;","}",`${a} .blocklyReplaceable .blocklyPath {`,"fill-opacity: .5;","}",`${a} .blocklyReplaceable .blocklyPathLight,`,`${a} .blocklyReplaceable .blocklyPathDark {`,"display: none;","}",`${a} .blocklyInsertionMarker>.blocklyPath {`,`fill-opacity: ${this.INSERTION_MARKER_OPACITY};`, +"stroke: none;","}"]}},module$build$src$core$renderers$common$constants={};module$build$src$core$renderers$common$constants.ConstantProvider=ConstantProvider$$module$build$src$core$renderers$common$constants;module$build$src$core$renderers$common$constants.isDynamicShape=isDynamicShape$$module$build$src$core$renderers$common$constants;var useDebugger$$module$build$src$core$renderers$common$debug=!1,module$build$src$core$renderers$common$debug={};module$build$src$core$renderers$common$debug.isDebuggerEnabled=isDebuggerEnabled$$module$build$src$core$renderers$common$debug;module$build$src$core$renderers$common$debug.startDebugger=startDebugger$$module$build$src$core$renderers$common$debug;module$build$src$core$renderers$common$debug.stopDebugger=stopDebugger$$module$build$src$core$renderers$common$debug;var Debug$$module$build$src$core$renderers$common$debugger=class{constructor(a){this.constants=a;this.debugElements_=[];this.svgRoot_=null;this.randomColour_=""}clearElems(){for(let a=0;aa.height;e&&(b-=d);this.debugElements_.push(createSvgElement$$module$build$src$core$utils$dom(Svg$$module$build$src$core$utils$svg.RECT, +{"class":"rowSpacerRect blockRenderDebug",x:c?-(a.xPos+a.width):a.xPos,y:b,width:a.width,height:d,stroke:e?"black":"blue",fill:"blue","fill-opacity":"0.5","stroke-width":"1px"},this.svgRoot_))}}drawSpacerElem(a,b,c){if(Debug$$module$build$src$core$renderers$common$debugger.config.elemSpacers){b=Math.abs(a.width);var d=0>a.width,e=d?a.xPos-b:a.xPos;c&&(e=-(e+b));this.debugElements_.push(createSvgElement$$module$build$src$core$utils$dom(Svg$$module$build$src$core$utils$svg.RECT,{"class":"elemSpacerRect blockRenderDebug", +x:e,y:a.centerline-a.height/2,width:b,height:a.height,stroke:"pink",fill:d?"black":"pink","fill-opacity":"0.5","stroke-width":"1px"},this.svgRoot_))}}drawRenderedElem(a,b){if(Debug$$module$build$src$core$renderers$common$debugger.config.elems){let c=a.xPos;b&&(c=-(c+a.width));b=a.centerline-a.height/2;this.debugElements_.push(createSvgElement$$module$build$src$core$utils$dom(Svg$$module$build$src$core$utils$svg.RECT,{"class":"rowRenderingRect blockRenderDebug",x:c,y:b,width:a.width,height:a.height, +stroke:"black",fill:"none","stroke-width":"1px"},this.svgRoot_));Types$$module$build$src$core$renderers$measurables$types.isField(a)&&a instanceof Field$$module$build$src$core$renderers$measurables$field&&a.field instanceof FieldLabel$$module$build$src$core$field_label&&this.debugElements_.push(createSvgElement$$module$build$src$core$utils$dom(Svg$$module$build$src$core$utils$svg.RECT,{"class":"rowRenderingRect blockRenderDebug",x:c,y:b+this.constants.FIELD_TEXT_BASELINE,width:a.width,height:"0.1px", +stroke:"red",fill:"none","stroke-width":"0.5px"},this.svgRoot_))}Types$$module$build$src$core$renderers$measurables$types.isInput(a)&&a instanceof InputConnection$$module$build$src$core$renderers$measurables$input_connection&&Debug$$module$build$src$core$renderers$common$debugger.config.connections&&this.drawConnection(a.connectionModel)}drawConnection(a){if(Debug$$module$build$src$core$renderers$common$debugger.config.connections){var b="",c=0,d="";a.type===ConnectionType$$module$build$src$core$connection_type.INPUT_VALUE? +(c=4,b="magenta",d="none"):a.type===ConnectionType$$module$build$src$core$connection_type.OUTPUT_VALUE?(c=2,d=b="magenta"):a.type===ConnectionType$$module$build$src$core$connection_type.NEXT_STATEMENT?(c=4,b="goldenrod",d="none"):a.type===ConnectionType$$module$build$src$core$connection_type.PREVIOUS_STATEMENT&&(c=2,d=b="goldenrod");this.debugElements_.push(createSvgElement$$module$build$src$core$utils$dom(Svg$$module$build$src$core$utils$svg.CIRCLE,{"class":"blockRenderDebug",cx:a.getOffsetInBlock().x, +cy:a.getOffsetInBlock().y,r:c,fill:d,stroke:b},this.svgRoot_))}}drawRenderedRow(a,b,c){Debug$$module$build$src$core$renderers$common$debugger.config.rows&&(this.debugElements_.push(createSvgElement$$module$build$src$core$utils$dom(Svg$$module$build$src$core$utils$svg.RECT,{"class":"elemRenderingRect blockRenderDebug",x:c?-(a.xPos+a.width):a.xPos,y:a.yPos,width:a.width,height:a.height,stroke:"red",fill:"none","stroke-width":"1px"},this.svgRoot_)),Types$$module$build$src$core$renderers$measurables$types.isTopOrBottomRow(a)|| +Debug$$module$build$src$core$renderers$common$debugger.config.connectedBlockBounds&&this.debugElements_.push(createSvgElement$$module$build$src$core$utils$dom(Svg$$module$build$src$core$utils$svg.RECT,{"class":"connectedBlockWidth blockRenderDebug",x:c?-(a.xPos+a.widthWithConnectedBlocks):a.xPos,y:a.yPos,width:a.widthWithConnectedBlocks,height:a.height,stroke:this.randomColour_,fill:"none","stroke-width":"1px","stroke-dasharray":"3,3"},this.svgRoot_)))}drawRowWithElements(a,b,c){for(let d=0;d{e&&b&&this.deleteVariableInternal(b,d)})):this.deleteVariableInternal(b,d)}else console.warn("Can't delete non-existent variable: "+a)}deleteVariableInternal(a, +b){const c=getGroup$$module$build$src$core$events$utils();c||setGroup$$module$build$src$core$events$utils(!0);try{for(let d=0;da.name)}getVariableUsesById(a){const b=[],c=this.workspace.getAllBlocks(!1); +for(let d=0;dthis.remainingCapacityOfType(c))return!1;b+=a[c]}return b>this.remainingCapacity()?!1:!0}hasBlockLimits(){return Infinity!==this.options.maxBlocks||!!this.options.maxInstances}getUndoStack(){return this.undoStack_}getRedoStack(){return this.redoStack_}undo(a){var b= +a?this.redoStack_:this.undoStack_,c=a?this.undoStack_:this.redoStack_;const d=b.pop();if(d){for(var e=[d];b.length&&d.group&&d.group===b[b.length-1].group;){const f=b.pop();f&&e.push(f)}for(b=0;bthis.MAX_UNDO&&0<=this.MAX_UNDO;)this.undoStack_.shift();for(let b=0;bimage, .blocklyZoom>svg>image {\n opacity: .4;\n}\n\n.blocklyZoom>image:hover, .blocklyZoom>svg>image:hover {\n opacity: .6;\n}\n\n.blocklyZoom>image:active, .blocklyZoom>svg>image:active {\n opacity: .8;\n}\n");var module$build$src$core$zoom_controls={}; +module$build$src$core$zoom_controls.ZoomControls=ZoomControls$$module$build$src$core$zoom_controls;var ZOOM_TO_FIT_MARGIN$$module$build$src$core$workspace_svg=20,WorkspaceSvg$$module$build$src$core$workspace_svg=class extends Workspace$$module$build$src$core$workspace{constructor(a,b,c){super(a);this.resizeHandlerWrapper=null;this.resizesEnabled=this.isVisible_=this.rendered=!0;this.startScrollY=this.startScrollX=this.scrollY=this.scrollX=0;this.dragDeltaXY=null;this.oldScale=this.scale=1;this.oldLeft=this.oldTop=0;this.workspaceDragSurface=this.blockDragSurface=this.currentGesture_=this.toolbox_= +this.flyout=this.scrollbar=this.trashcan=null;this.isDragSurfaceActive=!1;this.inverseScreenCTM=this.targetWorkspace=this.configureContextMenu=this.lastRecordedPageScroll=this.injectionDiv=null;this.inverseScreenCTMDirty=!0;this.highlightedBlocks=[];this.toolboxCategoryCallbacks=new Map;this.flyoutButtonCallbacks=new Map;this.cachedParentSvg=null;this.keyboardAccessibilityMode=!1;this.topBoundedElements=[];this.dragTargetAreas=[];this.zoomControls_=null;this.metricsManager=new (getClassFromOptions$$module$build$src$core$registry(Type$$module$build$src$core$registry.METRICS_MANAGER, +a,!0))(this);this.getMetrics=a.getMetrics||this.metricsManager.getMetrics.bind(this.metricsManager);this.setMetrics=a.setMetrics||WorkspaceSvg$$module$build$src$core$workspace_svg.setTopLevelWorkspaceMetrics_;this.componentManager=new ComponentManager$$module$build$src$core$component_manager;this.connectionDBList=ConnectionDB$$module$build$src$core$connection_db.init(this.connectionChecker);b&&(this.blockDragSurface=b);c&&(this.workspaceDragSurface=c);this.useWorkspaceDragSurface=!!this.workspaceDragSurface; +this.audioManager=new WorkspaceAudio$$module$build$src$core$workspace_audio(a.parentWorkspace);this.grid=this.options.gridPattern?new Grid$$module$build$src$core$grid(this.options.gridPattern,a.gridOptions):null;this.markerManager=new MarkerManager$$module$build$src$core$marker_manager(this);$.module$build$src$core$variables&&flyoutCategory$$module$build$src$core$variables&&this.registerToolboxCategoryCallback(CATEGORY_NAME$$module$build$src$core$variables,flyoutCategory$$module$build$src$core$variables); +module$build$src$core$variables_dynamic&&flyoutCategory$$module$build$src$core$variables_dynamic&&this.registerToolboxCategoryCallback(CATEGORY_NAME$$module$build$src$core$variables_dynamic,flyoutCategory$$module$build$src$core$variables_dynamic);$.module$build$src$core$procedures&&flyoutCategory$$module$build$src$core$procedures&&(this.registerToolboxCategoryCallback(CATEGORY_NAME$$module$build$src$core$procedures,flyoutCategory$$module$build$src$core$procedures),this.addChangeListener(mutatorOpenListener$$module$build$src$core$procedures)); +this.themeManager_=this.options.parentWorkspace?this.options.parentWorkspace.getThemeManager():new ThemeManager$$module$build$src$core$theme_manager(this,this.options.theme||Classic$$module$build$src$core$theme$classic);this.themeManager_.subscribeWorkspace(this);let d;this.renderer=init$$module$build$src$core$renderers$common$block_rendering(this.options.renderer||"geras",this.getTheme(),null!=(d=this.options.rendererOverrides)?d:void 0);this.cachedParentSvgSize=new Size$$module$build$src$core$utils$size(0, +0)}getMarkerManager(){return this.markerManager}getMetricsManager(){return this.metricsManager}setMetricsManager(a){this.metricsManager=a;this.getMetrics=this.metricsManager.getMetrics.bind(this.metricsManager)}getComponentManager(){return this.componentManager}setCursorSvg(a){this.markerManager.setCursorSvg(a)}setMarkerSvg(a){this.markerManager.setMarkerSvg(a)}getMarker(a){return this.markerManager?this.markerManager.getMarker(a):null}getCursor(){return this.markerManager?this.markerManager.getCursor(): +null}getRenderer(){return this.renderer}getThemeManager(){return this.themeManager_}getTheme(){return this.themeManager_.getTheme()}setTheme(a){a||(a=Classic$$module$build$src$core$theme$classic);this.themeManager_.setTheme(a)}refreshTheme(){this.svgGroup_&&this.renderer.refreshDom(this.svgGroup_,this.getTheme());this.updateBlockStyles_(this.getAllBlocks(!1).filter(function(b){return!!b.getStyleName()}));this.refreshToolboxSelection();this.toolbox_&&this.toolbox_.refreshTheme();this.isVisible()&& +this.setVisible(!0);const a=new (get$$module$build$src$core$events$utils(THEME_CHANGE$$module$build$src$core$events$utils))(this.getTheme().name,this.id);fire$$module$build$src$core$events$utils(a)}updateBlockStyles_(a){for(let b=0,c;c=a[b];b++){const d=c.getStyleName();if(d){const e=c;e.setStyle(d);e.mutator&&e.mutator.updateBlockStyle()}}}getInverseScreenCTM(){if(this.inverseScreenCTMDirty){const a=this.getParentSvg().getScreenCTM();a&&(this.inverseScreenCTM=a.inverse(),this.inverseScreenCTMDirty= +!1)}return this.inverseScreenCTM}updateInverseScreenCTM(){this.inverseScreenCTMDirty=!0}isVisible(){return this.isVisible_}getSvgXY(a){let b=0,c=0,d=1;if(containsNode$$module$build$src$core$utils$dom(this.getCanvas(),a)||containsNode$$module$build$src$core$utils$dom(this.getBubbleCanvas(),a))d=this.scale;do{const e=getRelativeXY$$module$build$src$core$utils$svg_math(a);if(a===this.getCanvas()||a===this.getBubbleCanvas())d=1;b+=e.x*d;c+=e.y*d;a=a.parentNode}while(a&&a!==this.getParentSvg());return new Coordinate$$module$build$src$core$utils$coordinate(b, +c)}getCachedParentSvgSize(){const a=this.cachedParentSvgSize;return new Size$$module$build$src$core$utils$size(a.width,a.height)}getOriginOffsetInPixels(){return getInjectionDivXY$$module$build$src$core$utils$svg_math(this.getCanvas())}getInjectionDiv(){if(!this.injectionDiv){let a=this.svgGroup_;for(;a;){if(-1!==(" "+(a.getAttribute("class")||"")+" ").indexOf(" injectionDiv ")){this.injectionDiv=a;break}a=a.parentNode}}return this.injectionDiv}getBlockCanvas(){return this.svgBlockCanvas_}setResizeHandlerWrapper(a){this.resizeHandlerWrapper= +a}createDom(a){this.svgGroup_=createSvgElement$$module$build$src$core$utils$dom(Svg$$module$build$src$core$utils$svg.G,{"class":"blocklyWorkspace"});a&&(this.svgBackground_=createSvgElement$$module$build$src$core$utils$dom(Svg$$module$build$src$core$utils$svg.RECT,{height:"100%",width:"100%","class":a},this.svgGroup_),"blocklyMainBackground"===a&&this.grid?this.svgBackground_.style.fill="url(#"+this.grid.getPatternId()+")":this.themeManager_.subscribe(this.svgBackground_,"workspaceBackgroundColour", +"fill"));this.svgBlockCanvas_=createSvgElement$$module$build$src$core$utils$dom(Svg$$module$build$src$core$utils$svg.G,{"class":"blocklyBlockCanvas"},this.svgGroup_);this.svgBubbleCanvas_=createSvgElement$$module$build$src$core$utils$dom(Svg$$module$build$src$core$utils$svg.G,{"class":"blocklyBubbleCanvas"},this.svgGroup_);this.isFlyout||(conditionalBind$$module$build$src$core$browser_events(this.svgGroup_,"pointerdown",this,this.onMouseDown_,!1),document.body.addEventListener("wheel",function(){}), +conditionalBind$$module$build$src$core$browser_events(this.svgGroup_,"wheel",this,this.onMouseWheel_));this.options.hasCategories&&(this.toolbox_=new (getClassFromOptions$$module$build$src$core$registry(Type$$module$build$src$core$registry.TOOLBOX,this.options,!0))(this));this.grid&&this.grid.update(this.scale);this.recordDragTargets();(a=getClassFromOptions$$module$build$src$core$registry(Type$$module$build$src$core$registry.CURSOR,this.options))&&this.markerManager.setCursor(new a);this.renderer.createDom(this.svgGroup_, +this.getTheme());return this.svgGroup_}dispose(){this.rendered=!1;this.currentGesture_&&this.currentGesture_.cancel();this.svgGroup_&&removeNode$$module$build$src$core$utils$dom(this.svgGroup_);this.toolbox_&&(this.toolbox_.dispose(),this.toolbox_=null);this.flyout&&(this.flyout.dispose(),this.flyout=null);this.trashcan&&(this.trashcan.dispose(),this.trashcan=null);this.scrollbar&&(this.scrollbar.dispose(),this.scrollbar=null);this.zoomControls_&&this.zoomControls_.dispose();this.audioManager&&this.audioManager.dispose(); +this.grid&&(this.grid=null);this.renderer.dispose();this.markerManager&&this.markerManager.dispose();super.dispose();this.themeManager_&&(this.themeManager_.unsubscribeWorkspace(this),this.themeManager_.unsubscribe(this.svgBackground_),this.options.parentWorkspace||this.themeManager_.dispose());this.connectionDBList.length=0;this.toolboxCategoryCallbacks.clear();this.flyoutButtonCallbacks.clear();if(!this.options.parentWorkspace){const a=this.getParentSvg();a&&a.parentNode&&removeNode$$module$build$src$core$utils$dom(a.parentNode)}this.resizeHandlerWrapper&& +(unbind$$module$build$src$core$browser_events(this.resizeHandlerWrapper),this.resizeHandlerWrapper=null)}addTrashcan(){this.trashcan=WorkspaceSvg$$module$build$src$core$workspace_svg.newTrashcan(this);const a=this.trashcan.createDom();this.svgGroup_.insertBefore(a,this.svgBlockCanvas_)}static newTrashcan(a){throw Error("The implementation of newTrashcan should be monkey-patched in by blockly.ts");}addZoomControls(){this.zoomControls_=new ZoomControls$$module$build$src$core$zoom_controls(this);const a= +this.zoomControls_.createDom();this.svgGroup_.appendChild(a)}addFlyout(a){const b=new Options$$module$build$src$core$options({parentWorkspace:this,rtl:this.RTL,oneBasedIndex:this.options.oneBasedIndex,horizontalLayout:this.horizontalLayout,renderer:this.options.renderer,rendererOverrides:this.options.rendererOverrides,move:{scrollbars:!0}});b.toolboxPosition=this.options.toolboxPosition;this.flyout=this.horizontalLayout?new (getClassFromOptions$$module$build$src$core$registry(Type$$module$build$src$core$registry.FLYOUTS_HORIZONTAL_TOOLBOX, +this.options,!0))(b):new (getClassFromOptions$$module$build$src$core$registry(Type$$module$build$src$core$registry.FLYOUTS_VERTICAL_TOOLBOX,this.options,!0))(b);this.flyout.autoClose=!1;this.flyout.getWorkspace().setVisible(!0);return this.flyout.createDom(a)}getFlyout(a){return this.flyout||a?this.flyout:this.toolbox_?this.toolbox_.getFlyout():null}getToolbox(){return this.toolbox_}updateScreenCalculations_(){this.updateInverseScreenCTM();this.recordDragTargets()}resizeContents(){this.resizesEnabled&& +this.rendered&&(this.scrollbar&&this.scrollbar.resize(),this.updateInverseScreenCTM())}resize(){this.toolbox_&&this.toolbox_.position();this.flyout&&this.flyout.position();const a=this.componentManager.getComponents(ComponentManager$$module$build$src$core$component_manager.Capability.POSITIONABLE,!0),b=this.getMetricsManager().getUiMetrics(),c=[];for(let d=0,e;e=a[d];d++){e.position(b,c);const f=e.getBoundingRectangle();f&&c.push(f)}this.scrollbar&&this.scrollbar.resize();this.updateScreenCalculations_()}updateScreenCalculationsIfScrolled(){const a= +getDocumentScroll$$module$build$src$core$utils$svg_math();Coordinate$$module$build$src$core$utils$coordinate.equals(this.lastRecordedPageScroll,a)||(this.lastRecordedPageScroll=a,this.updateScreenCalculations_())}getCanvas(){return this.svgBlockCanvas_}setCachedParentSvgSize(a,b){const c=this.getParentSvg();null!=a&&(this.cachedParentSvgSize.width=a,c.setAttribute("data-cached-width",`${a}`));null!=b&&(this.cachedParentSvgSize.height=b,c.setAttribute("data-cached-height",`${b}`))}getBubbleCanvas(){return this.svgBubbleCanvas_}getParentSvg(){if(!this.cachedParentSvg){let a= +this.svgGroup_;for(;a;){if("svg"===a.tagName){this.cachedParentSvg=a;break}a=a.parentNode}}return this.cachedParentSvg}maybeFireViewportChangeEvent(){if(isEnabled$$module$build$src$core$events$utils()){var a=this.scale,b=-this.scrollY,c=-this.scrollX;if(!(a===this.oldScale&&1>Math.abs(b-this.oldTop)&&1>Math.abs(c-this.oldLeft))){var d=new (get$$module$build$src$core$events$utils(VIEWPORT_CHANGE$$module$build$src$core$events$utils))(b,c,a,this.id,this.oldScale);this.oldScale=a;this.oldTop=b;this.oldLeft= +c;fire$$module$build$src$core$events$utils(d)}}}translate(a,b){if(this.useWorkspaceDragSurface&&this.isDragSurfaceActive){var c;null==(c=this.workspaceDragSurface)||c.translateSurface(a,b)}else c="translate("+a+","+b+") scale("+this.scale+")",this.svgBlockCanvas_.setAttribute("transform",c),this.svgBubbleCanvas_.setAttribute("transform",c);this.blockDragSurface&&this.blockDragSurface.translateAndScaleGroup(a,b,this.scale);this.grid&&this.grid.moveTo(a,b);this.maybeFireViewportChangeEvent()}resetDragSurface(){if(this.useWorkspaceDragSurface){this.isDragSurfaceActive= +!1;var a=this.workspaceDragSurface.getSurfaceTranslation();this.workspaceDragSurface.clearAndHide(this.svgGroup_);a="translate("+a.x+","+a.y+") scale("+this.scale+")";this.svgBlockCanvas_.setAttribute("transform",a);this.svgBubbleCanvas_.setAttribute("transform",a)}}setupDragSurface(){if(this.useWorkspaceDragSurface&&!this.isDragSurfaceActive){this.isDragSurfaceActive=!0;var a=this.svgBlockCanvas_.previousSibling,b,c=parseInt(null!=(b=this.getParentSvg().getAttribute("width"))?b:"0"),d;b=parseInt(null!= +(d=this.getParentSvg().getAttribute("height"))?d:"0");d=getRelativeXY$$module$build$src$core$utils$svg_math(this.getCanvas());this.workspaceDragSurface.setContentsAndShow(this.getCanvas(),this.getBubbleCanvas(),a,c,b,this.scale);this.workspaceDragSurface.translateSurface(d.x,d.y)}}getBlockDragSurface(){return this.blockDragSurface}getWidth(){const a=this.getMetrics();return a?a.viewWidth/this.scale:0}setVisible(a){this.isVisible_=a;if(this.svgGroup_)if(this.scrollbar&&this.scrollbar.setContainerVisible(a), +this.getFlyout()&&this.getFlyout().setContainerVisible(a),this.getParentSvg().style.display=a?"block":"none",this.toolbox_&&this.toolbox_.setVisible(a),a){a=this.getAllBlocks(!1);for(let b=a.length-1;0<=b;b--)a[b].markDirty();this.render();this.toolbox_&&this.toolbox_.position()}else this.hideChaff(!0)}render(){var a=this.getAllBlocks(!1);for(var b=a.length-1;0<=b;b--)a[b].render(!1);if(this.currentGesture_)for(a=this.currentGesture_.getInsertionMarkers(),b=0;b=Math.abs(d-l.x)&&1>=Math.abs(e-l.y)){f=!0;break}}if(!f){const h=c.getConnections_(!1);for(let k=0,l;l=h[k];k++)if(l.closest($.config$$module$build$src$core$config.snapRadius,new Coordinate$$module$build$src$core$utils$coordinate(d,e)).connection){f= +!0;break}}f&&(d=this.RTL?d-$.config$$module$build$src$core$config.snapRadius:d+$.config$$module$build$src$core$config.snapRadius,e+=2*$.config$$module$build$src$core$config.snapRadius)}while(f);c.moveTo(new Coordinate$$module$build$src$core$utils$coordinate(d,e))}}finally{enable$$module$build$src$core$events$utils()}isEnabled$$module$build$src$core$events$utils()&&!c.isShadow()&&fire$$module$build$src$core$events$utils(new (get$$module$build$src$core$events$utils(CREATE$$module$build$src$core$events$utils))(c)); +c.select();return c}pasteWorkspaceComment_(a){disable$$module$build$src$core$events$utils();let b;try{b=WorkspaceCommentSvg$$module$build$src$core$workspace_comment_svg.fromXmlRendered(a,this);let c,d=parseInt(null!=(c=a.getAttribute("x"))?c:"0"),e,f=parseInt(null!=(e=a.getAttribute("y"))?e:"0");isNaN(d)||isNaN(f)||(this.RTL&&(d=-d),b.moveBy(d+50,f+50))}finally{enable$$module$build$src$core$events$utils()}isEnabled$$module$build$src$core$events$utils()&&WorkspaceComment$$module$build$src$core$workspace_comment.fireCreateEvent(b); +b.select();return b}refreshToolboxSelection(){const a=this.isFlyout?this.targetWorkspace:this;a&&!a.currentGesture_&&a.toolbox_&&a.toolbox_.getFlyout()&&a.toolbox_.refreshSelection()}renameVariableById(a,b){super.renameVariableById(a,b);this.refreshToolboxSelection()}deleteVariableById(a){super.deleteVariableById(a);this.refreshToolboxSelection()}createVariable(a,b,c){a=super.createVariable(a,b,c);this.refreshToolboxSelection();return a}recordDragTargets(){const a=this.componentManager.getComponents(ComponentManager$$module$build$src$core$component_manager.Capability.DRAG_TARGET, +!0);this.dragTargetAreas=[];for(let b=0,c;c=a[b];b++){const d=c.getClientRect();d&&this.dragTargetAreas.push({component:c,clientRect:d})}}newBlock(a,b){throw Error("The implementation of newBlock should be monkey-patched in by blockly.ts");}getDragTarget(a){for(let b=0,c;c=this.dragTargetAreas[b];b++)if(c.clientRect.contains(a.clientX,a.clientY))return c.component;return null}onMouseDown_(a){const b=this.getGesture(a);b&&b.handleWsStart(a,this)}startDrag(a,b){a=mouseToSvg$$module$build$src$core$browser_events(a, +this.getParentSvg(),this.getInverseScreenCTM());a.x/=this.scale;a.y/=this.scale;this.dragDeltaXY=Coordinate$$module$build$src$core$utils$coordinate.difference(b,a)}moveDrag(a){a=mouseToSvg$$module$build$src$core$browser_events(a,this.getParentSvg(),this.getInverseScreenCTM());a.x/=this.scale;a.y/=this.scale;return Coordinate$$module$build$src$core$utils$coordinate.sum(this.dragDeltaXY,a)}isDragging(){return null!==this.currentGesture_&&this.currentGesture_.isDragging()}isDraggable(){return this.options.moveOptions&& +this.options.moveOptions.drag}isMovable(){return this.options.moveOptions&&!!this.options.moveOptions.scrollbars||this.options.moveOptions&&this.options.moveOptions.wheel||this.options.moveOptions&&this.options.moveOptions.drag||this.options.zoomOptions&&this.options.zoomOptions.wheel||this.options.zoomOptions&&this.options.zoomOptions.pinch}isMovableHorizontally(){const a=!!this.scrollbar;return this.isMovable()&&(!a||a&&this.scrollbar.canScrollHorizontally())}isMovableVertically(){const a=!!this.scrollbar; +return this.isMovable()&&(!a||a&&this.scrollbar.canScrollVertically())}onMouseWheel_(a){if(Gesture$$module$build$src$core$gesture.inProgress())a.preventDefault(),a.stopPropagation();else{var b=this.options.zoomOptions&&this.options.zoomOptions.wheel,c=this.options.moveOptions&&this.options.moveOptions.wheel;if(b||c){var d=getScrollDeltaPixels$$module$build$src$core$browser_events(a);if(MAC$$module$build$src$core$utils$useragent)var e=a.metaKey;b&&(a.ctrlKey||e||!c)?(d=-d.y/50,b=mouseToSvg$$module$build$src$core$browser_events(a, +this.getParentSvg(),this.getInverseScreenCTM()),this.zoom(b.x,b.y,d)):(b=this.scrollX-d.x,c=this.scrollY-d.y,a.shiftKey&&!d.x&&(b=this.scrollX-d.y,c=this.scrollY),this.scroll(b,c));a.preventDefault()}}}getBlocksBoundingBox(){const a=this.getTopBoundedElements();if(!a.length)return new Rect$$module$build$src$core$utils$rect(0,0,0,0);const b=a[0].getBoundingRectangle();for(let d=1;db.bottom&&(b.bottom=c.bottom),c.leftb.right&&(b.right=c.right))}return b}cleanUp(){this.setResizesEnabled(!1);setGroup$$module$build$src$core$events$utils(!0);const a=this.getTopBlocks(!0);let b=0;for(let c=0,d;d=a[c];c++){if(!d.isMovable())continue;const e=d.getRelativeToSurfaceXY();d.moveBy(-e.x,b-e.y);d.snapToGrid();b=d.getRelativeToSurfaceXY().y+d.getHeightWidth().height+this.renderer.getConstants().MIN_BLOCK_HEIGHT}setGroup$$module$build$src$core$events$utils(!1); +this.setResizesEnabled(!0)}showContextMenu(a){if(!this.options.readOnly&&!this.isFlyout){var b=ContextMenuRegistry$$module$build$src$core$contextmenu_registry.registry.getContextMenuOptions(ContextMenuRegistry$$module$build$src$core$contextmenu_registry.ScopeType.WORKSPACE,{workspace:this});this.configureContextMenu&&this.configureContextMenu(b,a);show$$module$build$src$core$contextmenu(a,b,this.RTL)}}updateToolbox(a){if(a=convertToolboxDefToJson$$module$build$src$core$utils$toolbox(a)){if(!this.options.languageTree)throw Error("Existing toolbox is null. Can't create new toolbox."); +if(hasCategories$$module$build$src$core$utils$toolbox(a)){if(!this.toolbox_)throw Error("Existing toolbox has no categories. Can't change mode.");this.options.languageTree=a;this.toolbox_.render(a)}else{if(!this.flyout)throw Error("Existing toolbox has categories. Can't change mode.");this.options.languageTree=a;this.flyout.show(a)}}else if(this.options.languageTree)throw Error("Can't nullify an existing toolbox.");}markFocused(){this.options.parentWorkspace?this.options.parentWorkspace.markFocused(): +(setMainWorkspace$$module$build$src$core$common(this),this.getParentSvg().focus({preventScroll:!0}))}zoom(a,b,c){c=Math.pow(this.options.zoomOptions.scaleSpeed,c);const d=this.scale*c;if(this.scale!==d){d>this.options.zoomOptions.maxScale?c=this.options.zoomOptions.maxScale/this.scale:dthis.options.zoomOptions.maxScale?a=this.options.zoomOptions.maxScale:this.options.zoomOptions.minScale&&ac.autoHide(b))}static setTopLevelWorkspaceMetrics_(a){const b= +this.getMetrics();"number"===typeof a.x&&(this.scrollX=-(b.scrollLeft+(b.scrollWidth-b.viewWidth)*a.x));"number"===typeof a.y&&(this.scrollY=-(b.scrollTop+(b.scrollHeight-b.viewHeight)*a.y));this.translate(this.scrollX+b.absoluteLeft,this.scrollY+b.absoluteTop)}},module$build$src$core$workspace_svg={};module$build$src$core$workspace_svg.WorkspaceSvg=WorkspaceSvg$$module$build$src$core$workspace_svg;module$build$src$core$workspace_svg.resizeSvgContents=resizeSvgContents$$module$build$src$core$workspace_svg;var FlyoutItemType$$module$build$src$core$flyout_base;(function(a){a.BLOCK="block";a.BUTTON="button"})(FlyoutItemType$$module$build$src$core$flyout_base||(FlyoutItemType$$module$build$src$core$flyout_base={})); +var Flyout$$module$build$src$core$flyout_base=class extends DeleteArea$$module$build$src$core$delete_area{constructor(a){super();this.horizontalLayout=!1;this.boundEvents=[];this.filterWrapper_=this.reflowWrapper_=null;this.mats_=[];this.buttons_=[];this.listeners_=[];this.permanentlyDisabled_=[];this.recycledBlocks_=[];this.autoClose=!0;this.isVisible_=!1;this.containerVisible_=!0;this.CORNER_RADIUS=8;this.SCROLLBAR_MARGIN=2.5;this.height_=this.width_=0;this.dragAngleRange_=70;this.svgGroup_=this.svgBackground_= +null;a.setMetrics=this.setMetrics_.bind(this);this.workspace_=new WorkspaceSvg$$module$build$src$core$workspace_svg(a);this.workspace_.setMetricsManager(new FlyoutMetricsManager$$module$build$src$core$flyout_metrics_manager(this.workspace_,this));this.workspace_.internalIsFlyout=!0;this.workspace_.setVisible(this.isVisible_);this.id=genUid$$module$build$src$core$utils$idgenerator();this.RTL=!!a.RTL;this.toolboxPosition_=a.toolboxPosition;this.tabWidth_=this.workspace_.getRenderer().getConstants().TAB_WIDTH; +this.rectMap_=new WeakMap;this.MARGIN=this.CORNER_RADIUS;this.GAP_X=3*this.MARGIN;this.GAP_Y=3*this.MARGIN}createDom(a){this.svgGroup_=createSvgElement$$module$build$src$core$utils$dom(a,{"class":"blocklyFlyout",style:"display: none"});this.svgBackground_=createSvgElement$$module$build$src$core$utils$dom(Svg$$module$build$src$core$utils$svg.PATH,{"class":"blocklyFlyoutBackground"},this.svgGroup_);this.svgGroup_.appendChild(this.workspace_.createDom());this.workspace_.getThemeManager().subscribe(this.svgBackground_, +"flyoutBackgroundColour","fill");this.workspace_.getThemeManager().subscribe(this.svgBackground_,"flyoutOpacity","fill-opacity");return this.svgGroup_}init(a){this.targetWorkspace=a;this.workspace_.targetWorkspace=a;this.workspace_.scrollbar=new ScrollbarPair$$module$build$src$core$scrollbar_pair(this.workspace_,this.horizontalLayout,!this.horizontalLayout,"blocklyFlyoutScrollbar",this.SCROLLBAR_MARGIN);this.hide();this.boundEvents.push(conditionalBind$$module$build$src$core$browser_events(this.svgGroup_, +"wheel",this,this.wheel_));this.autoClose||(this.filterWrapper_=this.filterForCapacity_.bind(this),this.targetWorkspace.addChangeListener(this.filterWrapper_));this.boundEvents.push(conditionalBind$$module$build$src$core$browser_events(this.svgBackground_,"pointerdown",this,this.onMouseDown_));this.workspace_.getGesture=this.targetWorkspace.getGesture.bind(this.targetWorkspace);this.workspace_.setVariableMap(this.targetWorkspace.getVariableMap());this.workspace_.createPotentialVariableMap();a.getComponentManager().addComponent({component:this, +weight:1,capabilities:[ComponentManager$$module$build$src$core$component_manager.Capability.DELETE_AREA,ComponentManager$$module$build$src$core$component_manager.Capability.DRAG_TARGET]})}dispose(){this.hide();this.workspace_.getComponentManager().removeComponent(this.id);for(const a of this.boundEvents)unbind$$module$build$src$core$browser_events(a);this.boundEvents.length=0;this.filterWrapper_&&(this.targetWorkspace.removeChangeListener(this.filterWrapper_),this.filterWrapper_=null);this.workspace_&& +(this.workspace_.getThemeManager().unsubscribe(this.svgBackground_),this.workspace_.dispose());this.svgGroup_&&(removeNode$$module$build$src$core$utils$dom(this.svgGroup_),this.svgGroup_=null);this.svgBackground_=null}getWidth(){return this.width_}getHeight(){return this.height_}getFlyoutScale(){return this.targetWorkspace.scale}getWorkspace(){return this.workspace_}isVisible(){return this.isVisible_}setVisible(a){const b=a!==this.isVisible();this.isVisible_=a;b&&(this.autoClose||this.workspace_.recordDragTargets(), +this.updateDisplay_())}setContainerVisible(a){const b=a!==this.containerVisible_;this.containerVisible_=a;b&&this.updateDisplay_()}updateDisplay_(){let a;a=this.containerVisible_?this.isVisible():!1;this.svgGroup_&&(this.svgGroup_.style.display=a?"block":"none");let b;null==(b=this.workspace_.scrollbar)||b.setContainerVisible(a)}positionAt_(a,b,c,d){let e;null==(e=this.svgGroup_)||e.setAttribute("width",`${a}`);let f;null==(f=this.svgGroup_)||f.setAttribute("height",`${b}`);this.workspace_.setCachedParentSvgSize(a, +b);this.svgGroup_&&setCssTransform$$module$build$src$core$utils$dom(this.svgGroup_,"translate("+c+"px,"+d+"px)");if(a=this.workspace_.scrollbar)a.setOrigin(c,d),a.resize(),a.hScroll&&a.hScroll.setPosition(a.hScroll.position.x,a.hScroll.position.y),a.vScroll&&a.vScroll.setPosition(a.vScroll.position.x,a.vScroll.position.y)}hide(){if(this.isVisible()){this.setVisible(!1);for(const a of this.listeners_)unbind$$module$build$src$core$browser_events(a);this.listeners_.length=0;this.reflowWrapper_&&(this.workspace_.removeChangeListener(this.reflowWrapper_), +this.reflowWrapper_=null)}}show(a){this.workspace_.setResizesEnabled(!1);this.hide();this.clearOldBlocks_();"string"===typeof a&&(a=this.getDynamicCategoryContents_(a));this.setVisible(!0);a=convertFlyoutDefToJsonArray$$module$build$src$core$utils$toolbox(a);a=this.createFlyoutInfo_(a);this.layout_(a.contents,a.gaps);this.horizontalLayout?this.height_=0:this.width_=0;this.workspace_.setResizesEnabled(!0);this.reflow();this.filterForCapacity_();this.position();this.reflowWrapper_=this.reflow.bind(this); +this.workspace_.addChangeListener(this.reflowWrapper_);this.emptyRecycledBlocks_()}createFlyoutInfo_(a){const b=[],c=[];this.permanentlyDisabled_.length=0;const d=this.horizontalLayout?this.GAP_X:this.GAP_Y;for(const e of a){if("custom"in e){a=this.getDynamicCategoryContents_(e.custom);a=convertFlyoutDefToJsonArray$$module$build$src$core$utils$toolbox(a);const {contents:f,gaps:g}=this.createFlyoutInfo_(a);b.push(...f);c.push(...g)}switch(e.kind.toUpperCase()){case "BLOCK":a=e;const f=this.createFlyoutBlock_(a); +b.push({type:FlyoutItemType$$module$build$src$core$flyout_base.BLOCK,block:f});this.addBlockGap_(a,c,d);break;case "SEP":this.addSeparatorGap_(e,c,d);break;case "LABEL":a=this.createButton_(e,!0);b.push({type:FlyoutItemType$$module$build$src$core$flyout_base.BUTTON,button:a});c.push(d);break;case "BUTTON":a=this.createButton_(e,!1),b.push({type:FlyoutItemType$$module$build$src$core$flyout_base.BUTTON,button:a}),c.push(d)}}return{contents:b,gaps:c}}getDynamicCategoryContents_(a){a=this.workspace_.targetWorkspace.getToolboxCategoryCallback(a); +if("function"!==typeof a)throw TypeError("Couldn't find a callback function when opening a toolbox category.");return a(this.workspace_.targetWorkspace)}createButton_(a,b){return new FlyoutButton$$module$build$src$core$flyout_button(this.workspace_,this.targetWorkspace,a,b)}createFlyoutBlock_(a){let b;a.blockxml?(a="string"===typeof a.blockxml?textToDom$$module$build$src$core$utils$xml(a.blockxml):a.blockxml,(b=this.getRecycledBlock_(a.getAttribute("type")))||(b=domToBlock$$module$build$src$core$xml(a, +this.workspace_))):(b=this.getRecycledBlock_(a.type),b||(void 0===a.enabled&&(a.enabled="true"!==a.disabled&&!0!==a.disabled),b=append$$module$build$src$core$serialization$blocks(a,this.workspace_)));b.isEnabled()||this.permanentlyDisabled_.push(b);return b}getRecycledBlock_(a){let b=-1;for(let c=0;c{const c=this.targetWorkspace.getGesture(b);c&&(c.setStartBlock(a),c.handleFlyoutStart(b,this))}}onMouseDown_(a){const b=this.targetWorkspace.getGesture(a);b&&b.handleFlyoutStart(a,this)}isBlockCreatable(a){return a.isEnabled()}createBlock(a){let b=null;disable$$module$build$src$core$events$utils();var c=this.targetWorkspace.getAllVariables();this.targetWorkspace.setResizesEnabled(!1);try{b=this.placeNewBlock_(a)}finally{enable$$module$build$src$core$events$utils()}this.targetWorkspace.hideChaff(); +a=getAddedVariables$$module$build$src$core$variables(this.targetWorkspace,c);if(isEnabled$$module$build$src$core$events$utils()){setGroup$$module$build$src$core$events$utils(!0);for(c=0;c90-b||a>-90-b&&a<-90+b?!0:!1}getClientRect(){if(!this.svgGroup_||this.autoClose||!this.isVisible())return null;const a=this.svgGroup_.getBoundingClientRect(),b=a.top;return this.toolboxPosition_===Position$$module$build$src$core$utils$toolbox.TOP?new Rect$$module$build$src$core$utils$rect(-1E9,b+a.height,-1E9,1E9):new Rect$$module$build$src$core$utils$rect(b,1E9,-1E9,1E9)}reflowInternal_(){this.workspace_.scale=this.getFlyoutScale();let a=0;const b=this.workspace_.getTopBlocks(!1);for(let d= +0,e;e=b[d];d++)a=Math.max(a,e.getHeightWidth().height);const c=this.buttons_;for(let d=0,e;e=c[d];d++)a=Math.max(a,e.height);a+=1.5*this.MARGIN;a*=this.workspace_.scale;a+=Scrollbar$$module$build$src$core$scrollbar.scrollbarThickness;if(this.height_!==a){for(let d=0,e;e=b[d];d++)this.rectMap_.has(e)&&this.moveRectToBlock_(this.rectMap_.get(e),e);this.targetWorkspace.toolboxPosition!==this.toolboxPosition_||this.toolboxPosition_!==Position$$module$build$src$core$utils$toolbox.TOP||this.targetWorkspace.getToolbox()|| +this.targetWorkspace.translate(this.targetWorkspace.scrollX,this.targetWorkspace.scrollY+a);this.height_=a;this.position();this.targetWorkspace.recordDragTargets()}}};register$$module$build$src$core$registry(Type$$module$build$src$core$registry.FLYOUTS_HORIZONTAL_TOOLBOX,DEFAULT$$module$build$src$core$registry,HorizontalFlyout$$module$build$src$core$flyout_horizontal);var module$build$src$core$flyout_horizontal={};module$build$src$core$flyout_horizontal.HorizontalFlyout=HorizontalFlyout$$module$build$src$core$flyout_horizontal;var VerticalFlyout$$module$build$src$core$flyout_vertical=class extends Flyout$$module$build$src$core$flyout_base{constructor(a){super(a)}setMetrics_(a){if(this.isVisible()){var b=this.workspace_.getMetricsManager(),c=b.getScrollMetrics(),d=b.getViewMetrics();b=b.getAbsoluteMetrics();"number"===typeof a.y&&(this.workspace_.scrollY=-(c.top+(c.height-d.height)*a.y));this.workspace_.translate(this.workspace_.scrollX+b.left,this.workspace_.scrollY+b.top)}}getX(){if(!this.isVisible())return 0;var a=this.targetWorkspace.getMetricsManager(); +const b=a.getAbsoluteMetrics(),c=a.getViewMetrics();a=a.getToolboxMetrics();return this.targetWorkspace.toolboxPosition===this.toolboxPosition_?this.targetWorkspace.getToolbox()?this.toolboxPosition_===Position$$module$build$src$core$utils$toolbox.LEFT?a.width:c.width-this.width_:this.toolboxPosition_===Position$$module$build$src$core$utils$toolbox.LEFT?0:c.width:this.toolboxPosition_===Position$$module$build$src$core$utils$toolbox.LEFT?0:c.width+b.left-this.width_}getY(){return 0}position(){if(this.isVisible()&& +this.targetWorkspace.isVisible()){var a=this.targetWorkspace.getMetricsManager().getViewMetrics();this.height_=a.height;this.setBackgroundPath_(this.width_-this.CORNER_RADIUS,a.height-2*this.CORNER_RADIUS);a=this.getX();var b=this.getY();this.positionAt_(this.width_,this.height_,a,b)}}setBackgroundPath_(a,b){const c=this.toolboxPosition_===Position$$module$build$src$core$utils$toolbox.RIGHT;var d=a+this.CORNER_RADIUS;d=["M "+(c?d:0)+",0"];d.push("h",c?-a:a);d.push("a",this.CORNER_RADIUS,this.CORNER_RADIUS, +0,0,c?0:1,c?-this.CORNER_RADIUS:this.CORNER_RADIUS,this.CORNER_RADIUS);d.push("v",Math.max(0,b));d.push("a",this.CORNER_RADIUS,this.CORNER_RADIUS,0,0,c?0:1,c?this.CORNER_RADIUS:-this.CORNER_RADIUS,this.CORNER_RADIUS);d.push("h",c?a:-a);d.push("z");this.svgBackground_.setAttribute("d",d.join(" "))}scrollToStart(){let a;null==(a=this.workspace_.scrollbar)||a.setY(0)}wheel_(a){var b=getScrollDeltaPixels$$module$build$src$core$browser_events(a);if(b.y){const c=this.workspace_.getMetricsManager(),d=c.getScrollMetrics(); +b=c.getViewMetrics().top-d.top+b.y;let e;null==(e=this.workspace_.scrollbar)||e.setY(b);hide$$module$build$src$core$widgetdiv();hideWithoutAnimation$$module$build$src$core$dropdowndiv()}a.preventDefault();a.stopPropagation()}layout_(a,b){this.workspace_.scale=this.targetWorkspace.scale;var c=this.MARGIN;const d=this.RTL?c:c+this.tabWidth_;for(let h=0,k;k=a[h];h++)if("block"===k.type){var e=k.block,f=e.getDescendants(!1);for(let m=0,n;n=f[m];m++)n.isInFlyout=!0;e.render();f=e.getSvgRoot();const l= +e.getHeightWidth();var g=e.outputConnection?d-this.tabWidth_:d;e.moveBy(g,c);g=this.createRect_(e,this.RTL?g-l.width:g,c,l,h);this.addBlockListeners_(f,e,g);c+=l.height+b[h]}else"button"===k.type&&(e=k.button,this.initFlyoutButton_(e,d,c),c+=e.height+b[h])}isDragTowardWorkspace(a){a=Math.atan2(a.y,a.x)/Math.PI*180;const b=this.dragAngleRange_;return a-b||a<-180+b||a>180-b?!0:!1}getClientRect(){if(!this.svgGroup_||this.autoClose||!this.isVisible())return null;const a=this.svgGroup_.getBoundingClientRect(), +b=a.left;return this.toolboxPosition_===Position$$module$build$src$core$utils$toolbox.LEFT?new Rect$$module$build$src$core$utils$rect(-1E9,1E9,-1E9,b+a.width):new Rect$$module$build$src$core$utils$rect(-1E9,1E9,b,1E9)}reflowInternal_(){this.workspace_.scale=this.getFlyoutScale();let a=0;var b=this.workspace_.getTopBlocks(!1);for(let d=0,e;e=b[d];d++){var c=e.getHeightWidth().width;e.outputConnection&&(c-=this.tabWidth_);a=Math.max(a,c)}for(let d=0,e;e=this.buttons_[d];d++)a=Math.max(a,e.width);a+= +1.5*this.MARGIN+this.tabWidth_;a*=this.workspace_.scale;a+=Scrollbar$$module$build$src$core$scrollbar.scrollbarThickness;if(this.width_!==a){for(let d=0,e;e=b[d];d++){if(this.RTL){c=e.getRelativeToSurfaceXY().x;let f=a/this.workspace_.scale-this.MARGIN;e.outputConnection||(f-=this.tabWidth_);e.moveBy(f-c,0)}this.rectMap_.has(e)&&this.moveRectToBlock_(this.rectMap_.get(e),e)}if(this.RTL)for(let d=0,e;e=this.buttons_[d];d++)b=e.getPosition().y,e.moveTo(a/this.workspace_.scale-e.width-this.MARGIN-this.tabWidth_, +b);this.targetWorkspace.toolboxPosition!==this.toolboxPosition_||this.toolboxPosition_!==Position$$module$build$src$core$utils$toolbox.LEFT||this.targetWorkspace.getToolbox()||this.targetWorkspace.translate(this.targetWorkspace.scrollX+a,this.targetWorkspace.scrollY);this.width_=a;this.position();this.targetWorkspace.recordDragTargets()}}};VerticalFlyout$$module$build$src$core$flyout_vertical.registryName="verticalFlyout"; +register$$module$build$src$core$registry(Type$$module$build$src$core$registry.FLYOUTS_VERTICAL_TOOLBOX,DEFAULT$$module$build$src$core$registry,VerticalFlyout$$module$build$src$core$flyout_vertical);var module$build$src$core$flyout_vertical={};module$build$src$core$flyout_vertical.VerticalFlyout=VerticalFlyout$$module$build$src$core$flyout_vertical;$.CodeGenerator$$module$build$src$core$generator=class{constructor(a){this.FUNCTION_NAME_PLACEHOLDER_="{leCUI8hutHZI4480Dc}";this.STATEMENT_SUFFIX=this.STATEMENT_PREFIX=this.INFINITE_LOOP_TRAP=null;this.INDENT=" ";this.COMMENT_WRAP=60;this.ORDER_OVERRIDES=[];this.isInitialized=null;this.RESERVED_WORDS_="";this.definitions_=Object.create(null);this.functionNames_=Object.create(null);this.nameDB_=void 0;this.name_=a;this.FUNCTION_NAME_PLACEHOLDER_REGEXP_=new RegExp(this.FUNCTION_NAME_PLACEHOLDER_, +"g")}workspaceToCode(a){a||(console.warn("No workspace specified in workspaceToCode call. Guessing."),a=getMainWorkspace$$module$build$src$core$common());var b=[];this.init(a);a=a.getTopBlocks(!0);for(let c=0,d;d=a[c];c++){let e=this.blockToCode(d);Array.isArray(e)&&(e=e[0]);e&&(d.outputConnection&&(e=this.scrubNakedValue(e),this.STATEMENT_PREFIX&&!d.suppressPrefixSuffix&&(e=this.injectId(this.STATEMENT_PREFIX,d)+e),this.STATEMENT_SUFFIX&&!d.suppressPrefixSuffix&&(e+=this.injectId(this.STATEMENT_SUFFIX, +d))),b.push(e))}b=b.join("\n");b=this.finish(b);b=b.replace(/^\s+\n/,"");b=b.replace(/\n\s+$/,"\n");return b=b.replace(/[ \t]+\n/g,"\n")}prefixLines(a,b){return b+a.replace(/(?!\n$)\n/g,"\n"+b)}allNestedComments(a){const b=[];a=a.getDescendants(!0);for(let c=0;c.blocklyPathLight,`,`${a} .blocklyInsertionMarker>.blocklyPathDark {`,`fill-opacity: ${this.INSERTION_MARKER_OPACITY};`,"stroke: none;", +"}"])}},module$build$src$core$renderers$geras$constants={};module$build$src$core$renderers$geras$constants.ConstantProvider=ConstantProvider$$module$build$src$core$renderers$geras$constants;var Highlighter$$module$build$src$core$renderers$geras$highlighter=class{constructor(a){this.inlineSteps_=this.steps_="";this.info_=a;this.RTL_=this.info_.RTL;a=a.getRenderer();this.constants_=a.getConstants();this.highlightConstants_=a.getHighlightConstants();this.highlightOffset_=this.highlightConstants_.OFFSET;this.outsideCornerPaths_=this.highlightConstants_.OUTSIDE_CORNER;this.insideCornerPaths_=this.highlightConstants_.INSIDE_CORNER;this.puzzleTabPaths_=this.highlightConstants_.PUZZLE_TAB;this.notchPaths_= +this.highlightConstants_.NOTCH;this.startPaths_=this.highlightConstants_.START_HAT;this.jaggedTeethPaths_=this.highlightConstants_.JAGGED_TEETH}getPath(){return this.steps_+"\n"+this.inlineSteps_}drawTopCorner(a){this.steps_+=moveBy$$module$build$src$core$utils$svg_paths(a.xPos,this.info_.startY);for(let b=0,c;c=a.elements[b];b++)Types$$module$build$src$core$renderers$measurables$types.isLeftSquareCorner(c)?this.steps_+=this.highlightConstants_.START_POINT:Types$$module$build$src$core$renderers$measurables$types.isLeftRoundedCorner(c)? +this.steps_+=this.outsideCornerPaths_.topLeft(this.RTL_):Types$$module$build$src$core$renderers$measurables$types.isPreviousConnection(c)?this.steps_+=this.notchPaths_.pathLeft:Types$$module$build$src$core$renderers$measurables$types.isHat(c)?this.steps_+=this.startPaths_.path(this.RTL_):Types$$module$build$src$core$renderers$measurables$types.isSpacer(c)&&0!==c.width&&(this.steps_+=lineOnAxis$$module$build$src$core$utils$svg_paths("H",c.xPos+c.width-this.highlightOffset_));this.steps_+=lineOnAxis$$module$build$src$core$utils$svg_paths("H", +a.xPos+a.width-this.highlightOffset_)}drawJaggedEdge_(a){this.info_.RTL&&(this.steps_+=this.jaggedTeethPaths_.pathLeft+lineOnAxis$$module$build$src$core$utils$svg_paths("v",a.height-this.jaggedTeethPaths_.height-this.highlightOffset_))}drawValueInput(a){const b=a.getLastInput();if(this.RTL_){const c=a.height-b.connectionHeight;this.steps_+=moveTo$$module$build$src$core$utils$svg_paths(b.xPos+b.width-this.highlightOffset_,a.yPos)+this.puzzleTabPaths_.pathDown(this.RTL_)+lineOnAxis$$module$build$src$core$utils$svg_paths("v", +c)}else this.steps_+=moveTo$$module$build$src$core$utils$svg_paths(b.xPos+b.width,a.yPos)+this.puzzleTabPaths_.pathDown(this.RTL_)}drawStatementInput(a){const b=a.getLastInput();if(b)if(this.RTL_){const c=a.height-2*this.insideCornerPaths_.height;this.steps_+=moveTo$$module$build$src$core$utils$svg_paths(b.xPos,a.yPos)+this.insideCornerPaths_.pathTop(this.RTL_)+lineOnAxis$$module$build$src$core$utils$svg_paths("v",c)+this.insideCornerPaths_.pathBottom(this.RTL_)+lineTo$$module$build$src$core$utils$svg_paths(a.width- +b.xPos-this.insideCornerPaths_.width,0)}else this.steps_+=moveTo$$module$build$src$core$utils$svg_paths(b.xPos,a.yPos+a.height)+this.insideCornerPaths_.pathBottom(this.RTL_)+lineTo$$module$build$src$core$utils$svg_paths(a.width-b.xPos-this.insideCornerPaths_.width,0)}drawRightSideRow(a){const b=a.xPos+a.width-this.highlightOffset_;a instanceof SpacerRow$$module$build$src$core$renderers$measurables$spacer_row&&a.followsStatement&&(this.steps_+=lineOnAxis$$module$build$src$core$utils$svg_paths("H", +b));this.RTL_&&(this.steps_+=lineOnAxis$$module$build$src$core$utils$svg_paths("H",b),a.height>this.highlightOffset_&&(this.steps_+=lineOnAxis$$module$build$src$core$utils$svg_paths("V",a.yPos+a.height-this.highlightOffset_)))}drawBottomRow(a){if(this.RTL_)this.steps_+=lineOnAxis$$module$build$src$core$utils$svg_paths("V",a.baseline-this.highlightOffset_);else{const b=this.info_.bottomRow.elements[0];Types$$module$build$src$core$renderers$measurables$types.isLeftSquareCorner(b)?this.steps_+=moveTo$$module$build$src$core$utils$svg_paths(a.xPos+ +this.highlightOffset_,a.baseline-this.highlightOffset_):Types$$module$build$src$core$renderers$measurables$types.isLeftRoundedCorner(b)&&(this.steps_+=moveTo$$module$build$src$core$utils$svg_paths(a.xPos,a.baseline),this.steps_+=this.outsideCornerPaths_.bottomLeft())}}drawLeft(){var a=this.info_.outputConnection;a&&(a=a.connectionOffsetY+a.height,this.RTL_?this.steps_+=moveTo$$module$build$src$core$utils$svg_paths(this.info_.startX,a):(this.steps_+=moveTo$$module$build$src$core$utils$svg_paths(this.info_.startX+ +this.highlightOffset_,this.info_.bottomRow.baseline-this.highlightOffset_),this.steps_+=lineOnAxis$$module$build$src$core$utils$svg_paths("V",a)),this.steps_+=this.puzzleTabPaths_.pathUp(this.RTL_));this.RTL_||(a=this.info_.topRow,Types$$module$build$src$core$renderers$measurables$types.isLeftRoundedCorner(a.elements[0])?this.steps_+=lineOnAxis$$module$build$src$core$utils$svg_paths("V",this.outsideCornerPaths_.height):this.steps_+=lineOnAxis$$module$build$src$core$utils$svg_paths("V",a.capline+this.highlightOffset_))}drawInlineInput(a){const b= +this.highlightOffset_,c=a.xPos+a.connectionWidth;var d=a.centerline-a.height/2;const e=a.width-a.connectionWidth,f=d+b;this.RTL_?(d=a.connectionOffsetY-b,a=a.height-(a.connectionOffsetY+a.connectionHeight)+b,this.inlineSteps_+=moveTo$$module$build$src$core$utils$svg_paths(c-b,f)+lineOnAxis$$module$build$src$core$utils$svg_paths("v",d)+this.puzzleTabPaths_.pathDown(this.RTL_)+lineOnAxis$$module$build$src$core$utils$svg_paths("v",a)+lineOnAxis$$module$build$src$core$utils$svg_paths("h",e)):this.inlineSteps_+= +moveTo$$module$build$src$core$utils$svg_paths(a.xPos+a.width+b,f)+lineOnAxis$$module$build$src$core$utils$svg_paths("v",a.height)+lineOnAxis$$module$build$src$core$utils$svg_paths("h",-e)+moveTo$$module$build$src$core$utils$svg_paths(c,d+a.connectionOffsetY)+this.puzzleTabPaths_.pathDown(this.RTL_)}},module$build$src$core$renderers$geras$highlighter={};module$build$src$core$renderers$geras$highlighter.Highlighter=Highlighter$$module$build$src$core$renderers$geras$highlighter;var Drawer$$module$build$src$core$renderers$geras$drawer=class extends Drawer$$module$build$src$core$renderers$common$drawer{constructor(a,b){super(a,b);this.highlighter_=new Highlighter$$module$build$src$core$renderers$geras$highlighter(b)}draw(){this.hideHiddenIcons_();this.drawOutline_();this.drawInternals_();const a=this.block_.pathObject;a.setPath(this.outlinePath_+"\n"+this.inlinePath_);a.setHighlightPath(this.highlighter_.getPath());this.info_.RTL&&a.flipRTL();if(isDebuggerEnabled$$module$build$src$core$renderers$common$debug()){let b, +c;null==(b=this.block_)||null==(c=b.renderingDebugger)||c.drawDebug(this.block_,this.info_)}this.recordSizeOnBlock_()}drawTop_(){this.highlighter_.drawTopCorner(this.info_.topRow);this.highlighter_.drawRightSideRow(this.info_.topRow);super.drawTop_()}drawJaggedEdge_(a){this.highlighter_.drawJaggedEdge_(a);super.drawJaggedEdge_(a)}drawValueInput_(a){this.highlighter_.drawValueInput(a);super.drawValueInput_(a)}drawStatementInput_(a){this.highlighter_.drawStatementInput(a);super.drawStatementInput_(a)}drawRightSideRow_(a){this.highlighter_.drawRightSideRow(a); +this.outlinePath_+=lineOnAxis$$module$build$src$core$utils$svg_paths("H",a.xPos+a.width)+lineOnAxis$$module$build$src$core$utils$svg_paths("V",a.yPos+a.height)}drawBottom_(){this.highlighter_.drawBottomRow(this.info_.bottomRow);super.drawBottom_()}drawLeft_(){this.highlighter_.drawLeft();super.drawLeft_()}drawInlineInput_(a){this.highlighter_.drawInlineInput(a);super.drawInlineInput_(a)}positionInlineInputConnection_(a){const b=a.centerline-a.height/2;if(a.connectionModel){let c=a.xPos+a.connectionWidth+ +this.constants_.DARK_PATH_OFFSET;this.info_.RTL&&(c*=-1);a.connectionModel.setOffsetInBlock(c,b+a.connectionOffsetY+this.constants_.DARK_PATH_OFFSET)}}positionStatementInputConnection_(a){const b=a.getLastInput();if(null==b?0:b.connectionModel){let c=a.xPos+a.statementEdge+b.notchOffset;c=this.info_.RTL?-1*c:c+this.constants_.DARK_PATH_OFFSET;b.connectionModel.setOffsetInBlock(c,a.yPos+this.constants_.DARK_PATH_OFFSET)}}positionExternalValueConnection_(a){const b=a.getLastInput();if(b&&b.connectionModel){let c= +a.xPos+a.width+this.constants_.DARK_PATH_OFFSET;this.info_.RTL&&(c*=-1);b.connectionModel.setOffsetInBlock(c,a.yPos)}}positionNextConnection_(){const a=this.info_.bottomRow;if(a.connection){const b=a.connection,c=b.xPos;b.connectionModel.setOffsetInBlock((this.info_.RTL?-c:c)+this.constants_.DARK_PATH_OFFSET/2,a.baseline+this.constants_.DARK_PATH_OFFSET)}}},module$build$src$core$renderers$geras$drawer={};module$build$src$core$renderers$geras$drawer.Drawer=Drawer$$module$build$src$core$renderers$geras$drawer;var HighlightConstantProvider$$module$build$src$core$renderers$geras$highlight_constants=class{constructor(a){this.OFFSET=.5;this.constantProvider=a;this.START_POINT=moveBy$$module$build$src$core$utils$svg_paths(this.OFFSET,this.OFFSET)}init(){this.INSIDE_CORNER=this.makeInsideCorner();this.OUTSIDE_CORNER=this.makeOutsideCorner();this.PUZZLE_TAB=this.makePuzzleTab();this.NOTCH=this.makeNotch();this.JAGGED_TEETH=this.makeJaggedTeeth();this.START_HAT=this.makeStartHat()}makeInsideCorner(){const a=this.constantProvider.CORNER_RADIUS, +b=this.OFFSET,c=(1-Math.SQRT1_2)*(a+b)-b,d=moveBy$$module$build$src$core$utils$svg_paths(c,c)+arc$$module$build$src$core$utils$svg_paths("a","0 0,0",a,point$$module$build$src$core$utils$svg_paths(-c-b,a-c)),e=arc$$module$build$src$core$utils$svg_paths("a","0 0,0",a+b,point$$module$build$src$core$utils$svg_paths(a+b,a+b)),f=moveBy$$module$build$src$core$utils$svg_paths(c,-c)+arc$$module$build$src$core$utils$svg_paths("a","0 0,0",a+b,point$$module$build$src$core$utils$svg_paths(a-c,c+b));return{width:a+ +b,height:a,pathTop(g){return g?d:""},pathBottom(g){return g?e:f}}}makeOutsideCorner(){const a=this.constantProvider.CORNER_RADIUS,b=this.OFFSET,c=(1-Math.SQRT1_2)*(a-b)+b,d=moveBy$$module$build$src$core$utils$svg_paths(c,c)+arc$$module$build$src$core$utils$svg_paths("a","0 0,1",a-b,point$$module$build$src$core$utils$svg_paths(a-c,-c+b)),e=moveBy$$module$build$src$core$utils$svg_paths(b,a)+arc$$module$build$src$core$utils$svg_paths("a","0 0,1",a-b,point$$module$build$src$core$utils$svg_paths(a,-a+ +b)),f=-c,g=moveBy$$module$build$src$core$utils$svg_paths(c,f)+arc$$module$build$src$core$utils$svg_paths("a","0 0,1",a-b,point$$module$build$src$core$utils$svg_paths(-c+b,-f-a));return{height:a,topLeft(h){return h?d:e},bottomLeft(){return g}}}makePuzzleTab(){const a=this.constantProvider.TAB_WIDTH,b=this.constantProvider.TAB_HEIGHT,c=moveBy$$module$build$src$core$utils$svg_paths(-2,-b+3.4)+lineTo$$module$build$src$core$utils$svg_paths(-.45*a,-2.1),d=lineOnAxis$$module$build$src$core$utils$svg_paths("v", +2.5)+moveBy$$module$build$src$core$utils$svg_paths(.97*-a,2.5)+curve$$module$build$src$core$utils$svg_paths("q",[point$$module$build$src$core$utils$svg_paths(.05*-a,10),point$$module$build$src$core$utils$svg_paths(.3*a,9.5)])+moveBy$$module$build$src$core$utils$svg_paths(.67*a,-1.9)+lineOnAxis$$module$build$src$core$utils$svg_paths("v",2.5),e=lineOnAxis$$module$build$src$core$utils$svg_paths("v",-1.5)+moveBy$$module$build$src$core$utils$svg_paths(-.92*a,-.5)+curve$$module$build$src$core$utils$svg_paths("q", +[point$$module$build$src$core$utils$svg_paths(-.19*a,-5.5),point$$module$build$src$core$utils$svg_paths(0,-11)])+moveBy$$module$build$src$core$utils$svg_paths(.92*a,1),f=moveBy$$module$build$src$core$utils$svg_paths(-5,b-.7)+lineTo$$module$build$src$core$utils$svg_paths(.46*a,-2.1);return{width:a,height:b,pathUp(g){return g?c:e},pathDown(g){return g?d:f}}}makeNotch(){return{pathLeft:lineOnAxis$$module$build$src$core$utils$svg_paths("h",this.OFFSET)+this.constantProvider.NOTCH.pathLeft}}makeJaggedTeeth(){return{pathLeft:lineTo$$module$build$src$core$utils$svg_paths(5.1, +2.6)+moveBy$$module$build$src$core$utils$svg_paths(-10.2,6.8)+lineTo$$module$build$src$core$utils$svg_paths(5.1,2.6),height:12,width:10.2}}makeStartHat(){const a=this.constantProvider.START_HAT.height,b=moveBy$$module$build$src$core$utils$svg_paths(25,-8.7)+curve$$module$build$src$core$utils$svg_paths("c",[point$$module$build$src$core$utils$svg_paths(29.7,-6.2),point$$module$build$src$core$utils$svg_paths(57.2,-.5),point$$module$build$src$core$utils$svg_paths(75,8.7)]),c=curve$$module$build$src$core$utils$svg_paths("c", +[point$$module$build$src$core$utils$svg_paths(17.8,-9.2),point$$module$build$src$core$utils$svg_paths(45.3,-14.9),point$$module$build$src$core$utils$svg_paths(75,-8.7)])+moveTo$$module$build$src$core$utils$svg_paths(100.5,a+.5);return{path(d){return d?b:c}}}},module$build$src$core$renderers$geras$highlight_constants={};module$build$src$core$renderers$geras$highlight_constants.HighlightConstantProvider=HighlightConstantProvider$$module$build$src$core$renderers$geras$highlight_constants;var InlineInput$$module$build$src$core$renderers$geras$measurables$inline_input=class extends InlineInput$$module$build$src$core$renderers$measurables$inline_input{constructor(a,b){super(a,b);this.constants_=a;this.connectedBlock&&(this.width+=this.constants_.DARK_PATH_OFFSET,this.height+=this.constants_.DARK_PATH_OFFSET)}},module$build$src$core$renderers$geras$measurables$inline_input={};module$build$src$core$renderers$geras$measurables$inline_input.InlineInput=InlineInput$$module$build$src$core$renderers$geras$measurables$inline_input;var StatementInput$$module$build$src$core$renderers$geras$measurables$statement_input=class extends StatementInput$$module$build$src$core$renderers$measurables$statement_input{constructor(a,b){super(a,b);this.constants_=a;this.connectedBlock&&(this.height+=this.constants_.DARK_PATH_OFFSET)}},module$build$src$core$renderers$geras$measurables$statement_input={};module$build$src$core$renderers$geras$measurables$statement_input.StatementInput=StatementInput$$module$build$src$core$renderers$geras$measurables$statement_input;var RenderInfo$$module$build$src$core$renderers$geras$info=class extends RenderInfo$$module$build$src$core$renderers$common$info{constructor(a,b){super(a,b);this.renderer_=a}getRenderer(){return this.renderer_}populateBottomRow_(){super.populateBottomRow_();this.block_.inputList.length&&this.block_.inputList[this.block_.inputList.length-1].type===inputTypes$$module$build$src$core$input_types.STATEMENT||(this.bottomRow.minHeight=this.constants_.MEDIUM_PADDING-this.constants_.DARK_PATH_OFFSET)}addInput_(a, +b){this.isInline&&a.type===inputTypes$$module$build$src$core$input_types.VALUE?(b.elements.push(new InlineInput$$module$build$src$core$renderers$geras$measurables$inline_input(this.constants_,a)),b.hasInlineInput=!0):a.type===inputTypes$$module$build$src$core$input_types.STATEMENT?(b.elements.push(new StatementInput$$module$build$src$core$renderers$geras$measurables$statement_input(this.constants_,a)),b.hasStatement=!0):a.type===inputTypes$$module$build$src$core$input_types.VALUE?(b.elements.push(new ExternalValueInput$$module$build$src$core$renderers$measurables$external_value_input(this.constants_, +a)),b.hasExternalInput=!0):a.type===inputTypes$$module$build$src$core$input_types.DUMMY&&(b.minHeight=Math.max(b.minHeight,this.constants_.DUMMY_INPUT_MIN_HEIGHT),b.hasDummyInput=!0);this.isInline||null!==b.align||(b.align=a.align)}addElemSpacing_(){let a=!1;for(let c=0,d;d=this.rows[c];c++)d.hasExternalInput&&(a=!0);for(let c=0,d;d=this.rows[c];c++){var b=d.elements;d.elements=[];d.startsWithElemSpacer()&&d.elements.push(new InRowSpacer$$module$build$src$core$renderers$measurables$in_row_spacer(this.constants_, +this.getInRowSpacing_(null,b[0])));if(b.length){for(let e=0;eb?b:f;e=e?-1:1;c=(d?-1:1)*c/2;return lineTo$$module$build$src$core$utils$svg_paths(-e*f,c)+lineTo$$module$build$src$core$utils$svg_paths(e*f,c)}const b=this.MAX_DYNAMIC_CONNECTION_SHAPE_WIDTH;return{type:this.SHAPES.HEXAGONAL,isDynamic:!0,width(c){c/=2;return c>b?b:c},height(c){return c},connectionOffsetY(c){return c/ +2},connectionOffsetX(c){return-c},pathDown(c){return a(c,!1,!1)},pathUp(c){return a(c,!0,!1)},pathRightDown(c){return a(c,!1,!0)},pathRightUp(c){return a(c,!1,!0)}}}makeRounded(){function a(d,e,f){const g=d>c?d-c:0;d=(d>c?c:d)/2;return arc$$module$build$src$core$utils$svg_paths("a","0 0,1",d,point$$module$build$src$core$utils$svg_paths((e?-1:1)*d,(e?-1:1)*d))+lineOnAxis$$module$build$src$core$utils$svg_paths("v",(f?1:-1)*g)+arc$$module$build$src$core$utils$svg_paths("a","0 0,1",d,point$$module$build$src$core$utils$svg_paths((e? +1:-1)*d,(e?-1:1)*d))}const b=this.MAX_DYNAMIC_CONNECTION_SHAPE_WIDTH,c=2*b;return{type:this.SHAPES.ROUND,isDynamic:!0,width(d){d/=2;return d>b?b:d},height(d){return d},connectionOffsetY(d){return d/2},connectionOffsetX(d){return-d},pathDown(d){return a(d,!1,!1)},pathUp(d){return a(d,!0,!1)},pathRightDown(d){return a(d,!1,!0)},pathRightUp(d){return a(d,!1,!0)}}}makeSquared(){function a(c,d,e){c-=2*b;return arc$$module$build$src$core$utils$svg_paths("a","0 0,1",b,point$$module$build$src$core$utils$svg_paths((d? +-1:1)*b,(d?-1:1)*b))+lineOnAxis$$module$build$src$core$utils$svg_paths("v",(e?1:-1)*c)+arc$$module$build$src$core$utils$svg_paths("a","0 0,1",b,point$$module$build$src$core$utils$svg_paths((d?1:-1)*b,(d?-1:1)*b))}const b=this.CORNER_RADIUS;return{type:this.SHAPES.SQUARE,isDynamic:!0,width(c){return b},height(c){return c},connectionOffsetY(c){return c/2},connectionOffsetX(c){return-c},pathDown(c){return a(c,!1,!1)},pathUp(c){return a(c,!0,!1)},pathRightDown(c){return a(c,!1,!0)},pathRightUp(c){return a(c, +!1,!0)}}}shapeFor(a){let b=a.getCheck();!b&&a.targetConnection&&(b=a.targetConnection.getCheck());switch(a.type){case ConnectionType$$module$build$src$core$connection_type.INPUT_VALUE:case ConnectionType$$module$build$src$core$connection_type.OUTPUT_VALUE:a=a.getSourceBlock().getOutputShape();if(null!==a)switch(a){case this.SHAPES.HEXAGONAL:return this.HEXAGONAL;case this.SHAPES.ROUND:return this.ROUNDED;case this.SHAPES.SQUARE:return this.SQUARED}if(b&&-1!==b.indexOf("Boolean"))return this.HEXAGONAL; +if(b&&-1!==b.indexOf("Number"))return this.ROUNDED;b&&b.indexOf("String");return this.ROUNDED;case ConnectionType$$module$build$src$core$connection_type.PREVIOUS_STATEMENT:case ConnectionType$$module$build$src$core$connection_type.NEXT_STATEMENT:return this.NOTCH;default:throw Error("Unknown type");}}makeNotch(){function a(l){return curve$$module$build$src$core$utils$svg_paths("c",[point$$module$build$src$core$utils$svg_paths(l*e/2,0),point$$module$build$src$core$utils$svg_paths(l*e*3/4,g/2),point$$module$build$src$core$utils$svg_paths(l* +e,g)])+line$$module$build$src$core$utils$svg_paths([point$$module$build$src$core$utils$svg_paths(l*e,f)])+curve$$module$build$src$core$utils$svg_paths("c",[point$$module$build$src$core$utils$svg_paths(l*e/4,g/2),point$$module$build$src$core$utils$svg_paths(l*e/2,g),point$$module$build$src$core$utils$svg_paths(l*e,g)])+lineOnAxis$$module$build$src$core$utils$svg_paths("h",l*d)+curve$$module$build$src$core$utils$svg_paths("c",[point$$module$build$src$core$utils$svg_paths(l*e/2,0),point$$module$build$src$core$utils$svg_paths(l* +e*3/4,-(g/2)),point$$module$build$src$core$utils$svg_paths(l*e,-g)])+line$$module$build$src$core$utils$svg_paths([point$$module$build$src$core$utils$svg_paths(l*e,-f)])+curve$$module$build$src$core$utils$svg_paths("c",[point$$module$build$src$core$utils$svg_paths(l*e/4,-(g/2)),point$$module$build$src$core$utils$svg_paths(l*e/2,-g),point$$module$build$src$core$utils$svg_paths(l*e,-g)])}const b=this.NOTCH_WIDTH,c=this.NOTCH_HEIGHT,d=b/3,e=d/3,f=c/2,g=f/2,h=a(1),k=a(-1);return{type:this.SHAPES.NOTCH, +width:b,height:c,pathLeft:h,pathRight:k}}makeInsideCorners(){const a=this.CORNER_RADIUS,b=arc$$module$build$src$core$utils$svg_paths("a","0 0,0",a,point$$module$build$src$core$utils$svg_paths(-a,a)),c=arc$$module$build$src$core$utils$svg_paths("a","0 0,1",a,point$$module$build$src$core$utils$svg_paths(-a,a)),d=arc$$module$build$src$core$utils$svg_paths("a","0 0,0",a,point$$module$build$src$core$utils$svg_paths(a,a)),e=arc$$module$build$src$core$utils$svg_paths("a","0 0,1",a,point$$module$build$src$core$utils$svg_paths(a, +a));return{width:a,height:a,pathTop:b,pathBottom:d,rightWidth:a,rightHeight:a,pathTopRight:c,pathBottomRight:e}}generateSecondaryColour_(a){return blend$$module$build$src$core$utils$colour("#000",a,.15)||a}generateTertiaryColour_(a){return blend$$module$build$src$core$utils$colour("#000",a,.25)||a}createDom(a,b,c){super.createDom(a,b,c);a=createSvgElement$$module$build$src$core$utils$dom(Svg$$module$build$src$core$utils$svg.DEFS,{},a);b=createSvgElement$$module$build$src$core$utils$dom(Svg$$module$build$src$core$utils$svg.FILTER, +{id:"blocklySelectedGlowFilter"+this.randomIdentifier,height:"160%",width:"180%",y:"-30%",x:"-40%"},a);createSvgElement$$module$build$src$core$utils$dom(Svg$$module$build$src$core$utils$svg.FEGAUSSIANBLUR,{"in":"SourceGraphic",stdDeviation:this.SELECTED_GLOW_SIZE},b);c=createSvgElement$$module$build$src$core$utils$dom(Svg$$module$build$src$core$utils$svg.FECOMPONENTTRANSFER,{result:"outBlur"},b);createSvgElement$$module$build$src$core$utils$dom(Svg$$module$build$src$core$utils$svg.FEFUNCA,{type:"table", +tableValues:"0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1"},c);createSvgElement$$module$build$src$core$utils$dom(Svg$$module$build$src$core$utils$svg.FEFLOOD,{"flood-color":this.SELECTED_GLOW_COLOUR,"flood-opacity":1,result:"outColor"},b);createSvgElement$$module$build$src$core$utils$dom(Svg$$module$build$src$core$utils$svg.FECOMPOSITE,{"in":"outColor",in2:"outBlur",operator:"in",result:"outGlow"},b);this.selectedGlowFilterId=b.id;this.selectedGlowFilter_=b;a=createSvgElement$$module$build$src$core$utils$dom(Svg$$module$build$src$core$utils$svg.FILTER, +{id:"blocklyReplacementGlowFilter"+this.randomIdentifier,height:"160%",width:"180%",y:"-30%",x:"-40%"},a);createSvgElement$$module$build$src$core$utils$dom(Svg$$module$build$src$core$utils$svg.FEGAUSSIANBLUR,{"in":"SourceGraphic",stdDeviation:this.REPLACEMENT_GLOW_SIZE},a);b=createSvgElement$$module$build$src$core$utils$dom(Svg$$module$build$src$core$utils$svg.FECOMPONENTTRANSFER,{result:"outBlur"},a);createSvgElement$$module$build$src$core$utils$dom(Svg$$module$build$src$core$utils$svg.FEFUNCA,{type:"table", +tableValues:"0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1"},b);createSvgElement$$module$build$src$core$utils$dom(Svg$$module$build$src$core$utils$svg.FEFLOOD,{"flood-color":this.REPLACEMENT_GLOW_COLOUR,"flood-opacity":1,result:"outColor"},a);createSvgElement$$module$build$src$core$utils$dom(Svg$$module$build$src$core$utils$svg.FECOMPOSITE,{"in":"outColor",in2:"outBlur",operator:"in",result:"outGlow"},a);createSvgElement$$module$build$src$core$utils$dom(Svg$$module$build$src$core$utils$svg.FECOMPOSITE,{"in":"SourceGraphic", +in2:"outGlow",operator:"over"},a);this.replacementGlowFilterId=a.id;this.replacementGlowFilter_=a}getCSS_(a){return[`${a} .blocklyText,`,`${a} .blocklyFlyoutLabelText {`,`font: ${this.FIELD_TEXT_FONTWEIGHT} ${this.FIELD_TEXT_FONTSIZE}`+`pt ${this.FIELD_TEXT_FONTFAMILY};`,"}",`${a} .blocklyText {`,"fill: #fff;","}",`${a} .blocklyNonEditableText>rect:not(.blocklyDropdownRect),`,`${a} .blocklyEditableText>rect:not(.blocklyDropdownRect) {`,`fill: ${this.FIELD_BORDER_RECT_COLOUR};`,"}",`${a} .blocklyNonEditableText>text,`, +`${a} .blocklyEditableText>text,`,`${a} .blocklyNonEditableText>g>text,`,`${a} .blocklyEditableText>g>text {`,"fill: #575E75;","}",`${a} .blocklyFlyoutLabelText {`,"fill: #575E75;","}",`${a} .blocklyText.blocklyBubbleText {`,"fill: #575E75;","}",`${a} .blocklyDraggable:not(.blocklyDisabled)`," .blocklyEditableText:not(.editing):hover>rect,",`${a} .blocklyDraggable:not(.blocklyDisabled)`," .blocklyEditableText:not(.editing):hover>.blocklyPath {","stroke: #fff;","stroke-width: 2;","}",`${a} .blocklyHtmlInput {`, +`font-family: ${this.FIELD_TEXT_FONTFAMILY};`,`font-weight: ${this.FIELD_TEXT_FONTWEIGHT};`,"color: #575E75;","}",`${a} .blocklyDropdownText {`,"fill: #fff !important;","}",`${a}.blocklyWidgetDiv .goog-menuitem,`,`${a}.blocklyDropDownDiv .goog-menuitem {`,`font-family: ${this.FIELD_TEXT_FONTFAMILY};`,"}",`${a}.blocklyDropDownDiv .goog-menuitem-content {`,"color: #fff;","}",`${a} .blocklyHighlightedConnectionPath {`,`stroke: ${this.SELECTED_GLOW_COLOUR};`,"}",`${a} .blocklyDisabled > .blocklyOutlinePath {`, +`fill: url(#blocklyDisabledPattern${this.randomIdentifier})`,"}",`${a} .blocklyInsertionMarker>.blocklyPath {`,`fill-opacity: ${this.INSERTION_MARKER_OPACITY};`,"stroke: none;","}"]}},module$build$src$core$renderers$zelos$constants={};module$build$src$core$renderers$zelos$constants.ConstantProvider=ConstantProvider$$module$build$src$core$renderers$zelos$constants;var Drawer$$module$build$src$core$renderers$zelos$drawer=class extends Drawer$$module$build$src$core$renderers$common$drawer{constructor(a,b){super(a,b)}draw(){const a=this.block_.pathObject;a.beginDrawing();this.hideHiddenIcons_();this.drawOutline_();this.drawInternals_();a.setPath(this.outlinePath_+"\n"+this.inlinePath_);this.info_.RTL&&a.flipRTL();if(isDebuggerEnabled$$module$build$src$core$renderers$common$debug()){let b,c;null==(b=this.block_)||null==(c=b.renderingDebugger)||c.drawDebug(this.block_, +this.info_)}this.recordSizeOnBlock_();this.info_.outputConnection&&(a.outputShapeType=this.info_.outputConnection.shape.type);a.endDrawing()}drawOutline_(){this.info_.outputConnection&&this.info_.outputConnection.isDynamicShape&&!this.info_.hasStatementInput&&!this.info_.bottomRow.hasNextConnection?(this.drawFlatTop_(),this.drawRightDynamicConnection_(),this.drawFlatBottom_(),this.drawLeftDynamicConnection_()):super.drawOutline_()}drawLeft_(){this.info_.outputConnection&&this.info_.outputConnection.isDynamicShape? +this.drawLeftDynamicConnection_():super.drawLeft_()}drawRightSideRow_(a){if(!(0>=a.height))if(Types$$module$build$src$core$renderers$measurables$types.isSpacer(a)&&(a.precedesStatement||a.followsStatement)){var b=this.constants_.INSIDE_CORNERS.rightHeight;b=a.height-(a.precedesStatement?b:0);this.outlinePath_+=(a.followsStatement?this.constants_.INSIDE_CORNERS.pathBottomRight:"")+(0=this.rows.length-1?!!this.bottomRow.hasNextConnection:!!d.precedesStatement;if(Types$$module$build$src$core$renderers$measurables$types.isInputRow(f)&&f.hasStatement){f.measure(); +let g,h;b=f.width-(null!=(h=null==(g=f.getLastInput())?void 0:g.width)?h:0)+a}else if(c&&(2===e||d)&&Types$$module$build$src$core$renderers$measurables$types.isInputRow(f)&&!f.hasStatement){d=f.xPos;c=null;for(let g=0;gc?c:this.height/2,b-c*(1-Math.sin(Math.acos((c-this.constants_.SMALL_PADDING)/c)));default:return 0}if(Types$$module$build$src$core$renderers$measurables$types.isInlineInput(a)&&a instanceof +InputConnection$$module$build$src$core$renderers$measurables$input_connection){const e=a.connectedBlock;a=e?e.pathObject.outputShapeType:a.shape.type;return null==a||e&&e.outputConnection&&(e.statementInputCount||e.nextConnection)||c===d.SHAPES.HEXAGONAL&&c!==a?0:b-this.constants_.SHAPE_IN_SHAPE_PADDING[c][a]}return Types$$module$build$src$core$renderers$measurables$types.isField(a)&&a instanceof Field$$module$build$src$core$renderers$measurables$field?c===d.SHAPES.ROUND&&a.field instanceof FieldTextInput$$module$build$src$core$field_textinput? +b-2.75*d.GRID_UNIT:b-this.constants_.SHAPE_IN_SHAPE_PADDING[c][0]:Types$$module$build$src$core$renderers$measurables$types.isIcon(a)?this.constants_.SMALL_PADDING:0}finalizeVerticalAlignment_(){if(!this.outputConnection)for(let d=2;d=this.rows.length-1?!!this.bottomRow.hasNextConnection:!!g.precedesStatement;if(a?this.topRow.hasPreviousConnection:e.followsStatement){var c=f.elements[1];c=3===f.elements.length&& +c instanceof Field$$module$build$src$core$renderers$measurables$field&&(c.field instanceof FieldLabel$$module$build$src$core$field_label||c.field instanceof FieldImage$$module$build$src$core$field_image);if(!a&&c)e.height-=this.constants_.SMALL_PADDING,g.height-=this.constants_.SMALL_PADDING,f.height-=this.constants_.MEDIUM_PADDING;else if(!a&&!b)e.height+=this.constants_.SMALL_PADDING;else if(b){a=!1;for(b=0;bsaveProcedure$$module$build$src$core$serialization$procedures(b));return a.length?a:null}load(a,b){const c=b.getProcedureMap();for(const d of a)c.add(loadProcedure$$module$build$src$core$serialization$procedures(this.procedureModelClass, +this.parameterModelClass,d,b))}clear(a){a.getProcedureMap().clear()}},module$build$src$core$serialization$procedures={};module$build$src$core$serialization$procedures.ProcedureSerializer=ProcedureSerializer$$module$build$src$core$serialization$procedures;module$build$src$core$serialization$procedures.loadParameter=loadParameter$$module$build$src$core$serialization$procedures;module$build$src$core$serialization$procedures.loadProcedure=loadProcedure$$module$build$src$core$serialization$procedures; +module$build$src$core$serialization$procedures.saveParameter=saveParameter$$module$build$src$core$serialization$procedures;module$build$src$core$serialization$procedures.saveProcedure=saveProcedure$$module$build$src$core$serialization$procedures;var VariableSerializer$$module$build$src$core$serialization$variables=class{constructor(){this.priority=VARIABLES$$module$build$src$core$serialization$priorities}save(a){const b=[];for(const c of a.getAllVariables())a={name:c.name,id:c.getId()},c.type&&(a.type=c.type),b.push(a);return b.length?b:null}load(a,b){for(const c of a)b.createVariable(c.name,c.type,c.id)}clear(a){a.getVariableMap().clear()}};register$$module$build$src$core$serialization$registry("variables",new VariableSerializer$$module$build$src$core$serialization$variables); +var module$build$src$core$serialization$variables={};module$build$src$core$serialization$variables.VariableSerializer=VariableSerializer$$module$build$src$core$serialization$variables;var module$build$src$core$serialization$workspaces={};module$build$src$core$serialization$workspaces.load=load$$module$build$src$core$serialization$workspaces;module$build$src$core$serialization$workspaces.save=save$$module$build$src$core$serialization$workspaces;var module$build$src$core$serialization={blocks:module$build$src$core$serialization$blocks,exceptions:module$build$src$core$serialization$exceptions,priorities:module$build$src$core$serialization$priorities,procedures:module$build$src$core$serialization$procedures,registry:module$build$src$core$serialization$registry,variables:module$build$src$core$serialization$variables,workspaces:module$build$src$core$serialization$workspaces};var KeyCodes$$module$build$src$core$utils$keycodes; +(function(a){a[a.WIN_KEY_FF_LINUX=0]="WIN_KEY_FF_LINUX";a[a.MAC_ENTER=3]="MAC_ENTER";a[a.BACKSPACE=8]="BACKSPACE";a[a.TAB=9]="TAB";a[a.NUM_CENTER=12]="NUM_CENTER";a[a.ENTER=13]="ENTER";a[a.SHIFT=16]="SHIFT";a[a.CTRL=17]="CTRL";a[a.ALT=18]="ALT";a[a.PAUSE=19]="PAUSE";a[a.CAPS_LOCK=20]="CAPS_LOCK";a[a.ESC=27]="ESC";a[a.SPACE=32]="SPACE";a[a.PAGE_UP=33]="PAGE_UP";a[a.PAGE_DOWN=34]="PAGE_DOWN";a[a.END=35]="END";a[a.HOME=36]="HOME";a[a.LEFT=37]="LEFT";a[a.UP=38]="UP";a[a.RIGHT=39]="RIGHT";a[a.DOWN=40]= +"DOWN";a[a.PLUS_SIGN=43]="PLUS_SIGN";a[a.PRINT_SCREEN=44]="PRINT_SCREEN";a[a.INSERT=45]="INSERT";a[a.DELETE=46]="DELETE";a[a.ZERO=48]="ZERO";a[a.ONE=49]="ONE";a[a.TWO=50]="TWO";a[a.THREE=51]="THREE";a[a.FOUR=52]="FOUR";a[a.FIVE=53]="FIVE";a[a.SIX=54]="SIX";a[a.SEVEN=55]="SEVEN";a[a.EIGHT=56]="EIGHT";a[a.NINE=57]="NINE";a[a.FF_SEMICOLON=59]="FF_SEMICOLON";a[a.FF_EQUALS=61]="FF_EQUALS";a[a.FF_DASH=173]="FF_DASH";a[a.FF_HASH=163]="FF_HASH";a[a.QUESTION_MARK=63]="QUESTION_MARK";a[a.AT_SIGN=64]="AT_SIGN"; +a[a.A=65]="A";a[a.B=66]="B";a[a.C=67]="C";a[a.D=68]="D";a[a.E=69]="E";a[a.F=70]="F";a[a.G=71]="G";a[a.H=72]="H";a[a.I=73]="I";a[a.J=74]="J";a[a.K=75]="K";a[a.L=76]="L";a[a.M=77]="M";a[a.N=78]="N";a[a.O=79]="O";a[a.P=80]="P";a[a.Q=81]="Q";a[a.R=82]="R";a[a.S=83]="S";a[a.T=84]="T";a[a.U=85]="U";a[a.V=86]="V";a[a.W=87]="W";a[a.X=88]="X";a[a.Y=89]="Y";a[a.Z=90]="Z";a[a.META=91]="META";a[a.WIN_KEY_RIGHT=92]="WIN_KEY_RIGHT";a[a.CONTEXT_MENU=93]="CONTEXT_MENU";a[a.NUM_ZERO=96]="NUM_ZERO";a[a.NUM_ONE=97]= +"NUM_ONE";a[a.NUM_TWO=98]="NUM_TWO";a[a.NUM_THREE=99]="NUM_THREE";a[a.NUM_FOUR=100]="NUM_FOUR";a[a.NUM_FIVE=101]="NUM_FIVE";a[a.NUM_SIX=102]="NUM_SIX";a[a.NUM_SEVEN=103]="NUM_SEVEN";a[a.NUM_EIGHT=104]="NUM_EIGHT";a[a.NUM_NINE=105]="NUM_NINE";a[a.NUM_MULTIPLY=106]="NUM_MULTIPLY";a[a.NUM_PLUS=107]="NUM_PLUS";a[a.NUM_MINUS=109]="NUM_MINUS";a[a.NUM_PERIOD=110]="NUM_PERIOD";a[a.NUM_DIVISION=111]="NUM_DIVISION";a[a.F1=112]="F1";a[a.F2=113]="F2";a[a.F3=114]="F3";a[a.F4=115]="F4";a[a.F5=116]="F5";a[a.F6= +117]="F6";a[a.F7=118]="F7";a[a.F8=119]="F8";a[a.F9=120]="F9";a[a.F10=121]="F10";a[a.F11=122]="F11";a[a.F12=123]="F12";a[a.NUMLOCK=144]="NUMLOCK";a[a.SCROLL_LOCK=145]="SCROLL_LOCK";a[a.FIRST_MEDIA_KEY=166]="FIRST_MEDIA_KEY";a[a.LAST_MEDIA_KEY=183]="LAST_MEDIA_KEY";a[a.SEMICOLON=186]="SEMICOLON";a[a.DASH=189]="DASH";a[a.EQUALS=187]="EQUALS";a[a.COMMA=188]="COMMA";a[a.PERIOD=190]="PERIOD";a[a.SLASH=191]="SLASH";a[a.APOSTROPHE=192]="APOSTROPHE";a[a.TILDE=192]="TILDE";a[a.SINGLE_QUOTE=222]="SINGLE_QUOTE"; +a[a.OPEN_SQUARE_BRACKET=219]="OPEN_SQUARE_BRACKET";a[a.BACKSLASH=220]="BACKSLASH";a[a.CLOSE_SQUARE_BRACKET=221]="CLOSE_SQUARE_BRACKET";a[a.WIN_KEY=224]="WIN_KEY";a[a.MAC_FF_META=224]="MAC_FF_META";a[a.MAC_WK_CMD_LEFT=91]="MAC_WK_CMD_LEFT";a[a.MAC_WK_CMD_RIGHT=93]="MAC_WK_CMD_RIGHT";a[a.WIN_IME=229]="WIN_IME";a[a.VK_NONAME=252]="VK_NONAME";a[a.PHANTOM=255]="PHANTOM"})(KeyCodes$$module$build$src$core$utils$keycodes||(KeyCodes$$module$build$src$core$utils$keycodes={})); +var module$build$src$core$utils$keycodes={};module$build$src$core$utils$keycodes.KeyCodes=KeyCodes$$module$build$src$core$utils$keycodes;var names$$module$build$src$core$shortcut_items;(function(a){a.ESCAPE="escape";a.DELETE="delete";a.COPY="copy";a.CUT="cut";a.PASTE="paste";a.UNDO="undo";a.REDO="redo"})(names$$module$build$src$core$shortcut_items||(names$$module$build$src$core$shortcut_items={}));registerDefaultShortcuts$$module$build$src$core$shortcut_items();var module$build$src$core$shortcut_items={};module$build$src$core$shortcut_items.names=names$$module$build$src$core$shortcut_items; +module$build$src$core$shortcut_items.registerCopy=registerCopy$$module$build$src$core$shortcut_items;module$build$src$core$shortcut_items.registerCut=registerCut$$module$build$src$core$shortcut_items;module$build$src$core$shortcut_items.registerDefaultShortcuts=registerDefaultShortcuts$$module$build$src$core$shortcut_items;module$build$src$core$shortcut_items.registerDelete=registerDelete$$module$build$src$core$shortcut_items;module$build$src$core$shortcut_items.registerEscape=registerEscape$$module$build$src$core$shortcut_items; +module$build$src$core$shortcut_items.registerPaste=registerPaste$$module$build$src$core$shortcut_items;module$build$src$core$shortcut_items.registerRedo=registerRedo$$module$build$src$core$shortcut_items;module$build$src$core$shortcut_items.registerUndo=registerUndo$$module$build$src$core$shortcut_items;var defaultBlockStyles$$module$build$src$core$theme$zelos={colour_blocks:{colourPrimary:"#CF63CF",colourSecondary:"#C94FC9",colourTertiary:"#BD42BD"},list_blocks:{colourPrimary:"#9966FF",colourSecondary:"#855CD6",colourTertiary:"#774DCB"},logic_blocks:{colourPrimary:"#4C97FF",colourSecondary:"#4280D7",colourTertiary:"#3373CC"},loop_blocks:{colourPrimary:"#0fBD8C",colourSecondary:"#0DA57A",colourTertiary:"#0B8E69"},math_blocks:{colourPrimary:"#59C059",colourSecondary:"#46B946",colourTertiary:"#389438"}, +procedure_blocks:{colourPrimary:"#FF6680",colourSecondary:"#FF4D6A",colourTertiary:"#FF3355"},text_blocks:{colourPrimary:"#FFBF00",colourSecondary:"#E6AC00",colourTertiary:"#CC9900"},variable_blocks:{colourPrimary:"#FF8C1A",colourSecondary:"#FF8000",colourTertiary:"#DB6E00"},variable_dynamic_blocks:{colourPrimary:"#FF8C1A",colourSecondary:"#FF8000",colourTertiary:"#DB6E00"},hat_blocks:{colourPrimary:"#4C97FF",colourSecondary:"#4280D7",colourTertiary:"#3373CC",hat:"cap"}},categoryStyles$$module$build$src$core$theme$zelos= +{colour_category:{colour:"#CF63CF"},list_category:{colour:"#9966FF"},logic_category:{colour:"#4C97FF"},loop_category:{colour:"#0fBD8C"},math_category:{colour:"#59C059"},procedure_category:{colour:"#FF6680"},text_category:{colour:"#FFBF00"},variable_category:{colour:"#FF8C1A"},variable_dynamic_category:{colour:"#FF8C1A"}},Zelos$$module$build$src$core$theme$zelos=new Theme$$module$build$src$core$theme("zelos",defaultBlockStyles$$module$build$src$core$theme$zelos,categoryStyles$$module$build$src$core$theme$zelos), +module$build$src$core$theme$zelos={};module$build$src$core$theme$zelos.Zelos=Zelos$$module$build$src$core$theme$zelos;var module$build$src$core$theme$themes={};module$build$src$core$theme$themes.Classic=Classic$$module$build$src$core$theme$classic;module$build$src$core$theme$themes.Zelos=Zelos$$module$build$src$core$theme$zelos;var ToolboxItem$$module$build$src$core$toolbox$toolbox_item=class{constructor(a,b,c){this.id_=a.toolboxitemid||getNextUniqueId$$module$build$src$core$utils$idgenerator();this.level_=(this.parent_=c||null)?this.parent_.getLevel()+1:0;this.toolboxItemDef_=a;this.parentToolbox_=b;this.workspace_=this.parentToolbox_.getWorkspace()}init(){}getDiv(){return null}getClickTarget(){return null}getId(){return this.id_}getParent(){return null}getLevel(){return this.level_}isSelectable(){return!1}isCollapsible(){return!1}dispose(){}setVisible_(a){}}, +module$build$src$core$toolbox$toolbox_item={};module$build$src$core$toolbox$toolbox_item.ToolboxItem=ToolboxItem$$module$build$src$core$toolbox$toolbox_item;var ToolboxCategory$$module$build$src$core$toolbox$category=class extends ToolboxItem$$module$build$src$core$toolbox$toolbox_item{constructor(a,b,c){super(a,b,c);this.colour_=this.name_="";this.labelDom_=this.iconDom_=this.rowContents_=this.rowDiv_=this.htmlDiv_=null;this.isDisabled_=this.isHidden_=!1;this.flyoutItems_=[];this.cssConfig_=this.makeDefaultCssConfig_()}init(){this.parseCategoryDef_(this.toolboxItemDef_);this.parseContents_(this.toolboxItemDef_);this.createDom_();"true"===this.toolboxItemDef_.hidden&& +this.hide()}makeDefaultCssConfig_(){return{container:"blocklyToolboxCategory",row:"blocklyTreeRow",rowcontentcontainer:"blocklyTreeRowContentContainer",icon:"blocklyTreeIcon",label:"blocklyTreeLabel",contents:"blocklyToolboxContents",selected:"blocklyTreeSelected",openicon:"blocklyTreeIconOpen",closedicon:"blocklyTreeIconClosed"}}parseContents_(a){if("custom"in a)this.flyoutItems_=a.custom;else if(a=a.contents)for(let b=0;b>>/sprites.png);\n height: 16px;\n vertical-align: middle;\n visibility: hidden;\n width: 16px;\n}\n\n.blocklyTreeIconClosed {\n background-position: -32px -1px;\n}\n\n.blocklyToolboxDiv[dir="RTL"] .blocklyTreeIconClosed {\n background-position: 0 -1px;\n}\n\n.blocklyTreeSelected>.blocklyTreeIconClosed {\n background-position: -32px -17px;\n}\n\n.blocklyToolboxDiv[dir="RTL"] .blocklyTreeSelected>.blocklyTreeIconClosed {\n background-position: 0 -17px;\n}\n\n.blocklyTreeIconOpen {\n background-position: -16px -1px;\n}\n\n.blocklyTreeSelected>.blocklyTreeIconOpen {\n background-position: -16px -17px;\n}\n\n.blocklyTreeLabel {\n cursor: default;\n font: 16px sans-serif;\n padding: 0 3px;\n vertical-align: middle;\n}\n\n.blocklyToolboxDelete .blocklyTreeLabel {\n cursor: url("<<>>/handdelete.cur"), auto;\n}\n\n.blocklyTreeSelected .blocklyTreeLabel {\n color: #fff;\n}\n'); +register$$module$build$src$core$registry(Type$$module$build$src$core$registry.TOOLBOX_ITEM,ToolboxCategory$$module$build$src$core$toolbox$category.registrationName,ToolboxCategory$$module$build$src$core$toolbox$category);var module$build$src$core$toolbox$category={};module$build$src$core$toolbox$category.ToolboxCategory=ToolboxCategory$$module$build$src$core$toolbox$category;var ToolboxSeparator$$module$build$src$core$toolbox$separator=class extends ToolboxItem$$module$build$src$core$toolbox$toolbox_item{constructor(a,b){super(a,b);this.cssConfig_={container:"blocklyTreeSeparator"};this.htmlDiv_=null;Object.assign(this.cssConfig_,a.cssconfig||a.cssConfig)}init(){this.createDom_()}createDom_(){const a=document.createElement("div"),b=this.cssConfig_.container;b&&addClass$$module$build$src$core$utils$dom(a,b);return this.htmlDiv_=a}getDiv(){return this.htmlDiv_}dispose(){removeNode$$module$build$src$core$utils$dom(this.htmlDiv_)}}; +ToolboxSeparator$$module$build$src$core$toolbox$separator.registrationName="sep";register$$module$build$src$core$css('\n.blocklyTreeSeparator {\n border-bottom: solid #e5e5e5 1px;\n height: 0;\n margin: 5px 0;\n}\n\n.blocklyToolboxDiv[layout="h"] .blocklyTreeSeparator {\n border-right: solid #e5e5e5 1px;\n border-bottom: none;\n height: auto;\n margin: 0 5px 0 5px;\n padding: 5px 0;\n width: 0;\n}\n'); +register$$module$build$src$core$registry(Type$$module$build$src$core$registry.TOOLBOX_ITEM,ToolboxSeparator$$module$build$src$core$toolbox$separator.registrationName,ToolboxSeparator$$module$build$src$core$toolbox$separator);var module$build$src$core$toolbox$separator={};module$build$src$core$toolbox$separator.ToolboxSeparator=ToolboxSeparator$$module$build$src$core$toolbox$separator;var CollapsibleToolboxCategory$$module$build$src$core$toolbox$collapsible_category=class extends ToolboxCategory$$module$build$src$core$toolbox$category{constructor(a,b,c){super(a,b,c);this.subcategoriesDiv_=null;this.expanded_=!1;this.toolboxItems_=[]}makeDefaultCssConfig_(){const a=super.makeDefaultCssConfig_();a.contents="blocklyToolboxContents";return a}parseContents_(a){if("custom"in a)this.flyoutItems_=a.custom;else{const b=a.contents;if(b){this.flyoutItems_=[];a=!0;for(let c=0;c>>/handdelete.cur"), auto;\n}\n\n.blocklyToolboxGrab {\n cursor: url("<<>>/handclosed.cur"), auto;\n cursor: grabbing;\n cursor: -webkit-grabbing;\n}\n\n/* Category tree in Toolbox. */\n.blocklyToolboxDiv {\n background-color: #ddd;\n overflow-x: visible;\n overflow-y: auto;\n padding: 4px 0 4px 0;\n position: absolute;\n z-index: 70; /* so blocks go under toolbox when dragging */\n -webkit-tap-highlight-color: transparent; /* issue #1345 */\n}\n\n.blocklyToolboxContents {\n display: flex;\n flex-wrap: wrap;\n flex-direction: column;\n}\n\n.blocklyToolboxContents:focus {\n outline: none;\n}\n'); +register$$module$build$src$core$registry(Type$$module$build$src$core$registry.TOOLBOX,DEFAULT$$module$build$src$core$registry,Toolbox$$module$build$src$core$toolbox$toolbox);var module$build$src$core$toolbox$toolbox={};module$build$src$core$toolbox$toolbox.Toolbox=Toolbox$$module$build$src$core$toolbox$toolbox;var Trashcan$$module$build$src$core$trashcan=class extends DeleteArea$$module$build$src$core$delete_area{constructor(a){super();this.workspace=a;this.id="trashcan";this.contents_=[];this.flyout=null;this.isLidOpen=!1;this.minOpenness_=0;this.lidTask_=this.svgLid_=this.svgGroup_=null;this.top_=this.left_=this.lidOpen_=0;this.initialized_=!1;0>=this.workspace.options.maxTrashcanContents||(a=new Options$$module$build$src$core$options({scrollbars:!0,parentWorkspace:this.workspace,rtl:this.workspace.RTL, +oneBasedIndex:this.workspace.options.oneBasedIndex,renderer:this.workspace.options.renderer,rendererOverrides:this.workspace.options.rendererOverrides,move:{scrollbars:!0}}),this.workspace.horizontalLayout?(a.toolboxPosition=this.workspace.toolboxPosition===Position$$module$build$src$core$utils$toolbox.TOP?Position$$module$build$src$core$utils$toolbox.BOTTOM:Position$$module$build$src$core$utils$toolbox.TOP,this.flyout=new (getClassFromOptions$$module$build$src$core$registry(Type$$module$build$src$core$registry.FLYOUTS_HORIZONTAL_TOOLBOX, +this.workspace.options,!0))(a)):(a.toolboxPosition=this.workspace.toolboxPosition===Position$$module$build$src$core$utils$toolbox.RIGHT?Position$$module$build$src$core$utils$toolbox.LEFT:Position$$module$build$src$core$utils$toolbox.RIGHT,this.flyout=new (getClassFromOptions$$module$build$src$core$registry(Type$$module$build$src$core$registry.FLYOUTS_VERTICAL_TOOLBOX,this.workspace.options,!0))(a)),this.workspace.addChangeListener(this.onDelete_.bind(this)))}createDom(){this.svgGroup_=createSvgElement$$module$build$src$core$utils$dom(Svg$$module$build$src$core$utils$svg.G, +{"class":"blocklyTrash"});let a;const b=String(Math.random()).substring(2);a=createSvgElement$$module$build$src$core$utils$dom(Svg$$module$build$src$core$utils$svg.CLIPPATH,{id:"blocklyTrashBodyClipPath"+b},this.svgGroup_);createSvgElement$$module$build$src$core$utils$dom(Svg$$module$build$src$core$utils$svg.RECT,{width:WIDTH$$module$build$src$core$trashcan,height:BODY_HEIGHT$$module$build$src$core$trashcan,y:LID_HEIGHT$$module$build$src$core$trashcan},a);const c=createSvgElement$$module$build$src$core$utils$dom(Svg$$module$build$src$core$utils$svg.IMAGE, +{width:SPRITE$$module$build$src$core$sprites.width,x:-SPRITE_LEFT$$module$build$src$core$trashcan,height:SPRITE$$module$build$src$core$sprites.height,y:-SPRITE_TOP$$module$build$src$core$trashcan,"clip-path":"url(#blocklyTrashBodyClipPath"+b+")"},this.svgGroup_);c.setAttributeNS(XLINK_NS$$module$build$src$core$utils$dom,"xlink:href",this.workspace.options.pathToMedia+SPRITE$$module$build$src$core$sprites.url);a=createSvgElement$$module$build$src$core$utils$dom(Svg$$module$build$src$core$utils$svg.CLIPPATH, +{id:"blocklyTrashLidClipPath"+b},this.svgGroup_);createSvgElement$$module$build$src$core$utils$dom(Svg$$module$build$src$core$utils$svg.RECT,{width:WIDTH$$module$build$src$core$trashcan,height:LID_HEIGHT$$module$build$src$core$trashcan},a);this.svgLid_=createSvgElement$$module$build$src$core$utils$dom(Svg$$module$build$src$core$utils$svg.IMAGE,{width:SPRITE$$module$build$src$core$sprites.width,x:-SPRITE_LEFT$$module$build$src$core$trashcan,height:SPRITE$$module$build$src$core$sprites.height,y:-SPRITE_TOP$$module$build$src$core$trashcan, +"clip-path":"url(#blocklyTrashLidClipPath"+b+")"},this.svgGroup_);this.svgLid_.setAttributeNS(XLINK_NS$$module$build$src$core$utils$dom,"xlink:href",this.workspace.options.pathToMedia+SPRITE$$module$build$src$core$sprites.url);bind$$module$build$src$core$browser_events(this.svgGroup_,"pointerdown",this,this.blockMouseDownWhenOpenable_);bind$$module$build$src$core$browser_events(this.svgGroup_,"pointerup",this,this.click);bind$$module$build$src$core$browser_events(c,"pointerover",this,this.mouseOver_); +bind$$module$build$src$core$browser_events(c,"pointerout",this,this.mouseOut_);this.animateLid_();return this.svgGroup_}init(){0{let c;null==(c=this.flyout)||c.show(a);b.cursor=""},10);this.fireUiEvent_(!0)}}closeFlyout(){if(this.contentsIsOpen()){var a;null==(a=this.flyout)||a.hide();this.fireUiEvent_(!1);this.workspace.recordDragTargets()}}autoHide(a){!a&&this.flyout&&this.closeFlyout()}emptyContents(){this.hasContents_()&&(this.contents_.length= +0,this.setMinOpenness_(0),this.closeFlyout())}position(a,b){if(this.initialized_){var c=getCornerOppositeToolbox$$module$build$src$core$positionable_helpers(this.workspace,a);a=getStartPositionRect$$module$build$src$core$positionable_helpers(c,new Size$$module$build$src$core$utils$size(WIDTH$$module$build$src$core$trashcan,BODY_HEIGHT$$module$build$src$core$trashcan+LID_HEIGHT$$module$build$src$core$trashcan),MARGIN_HORIZONTAL$$module$build$src$core$trashcan,MARGIN_VERTICAL$$module$build$src$core$trashcan, +a,this.workspace);b=bumpPositionRect$$module$build$src$core$positionable_helpers(a,MARGIN_VERTICAL$$module$build$src$core$trashcan,c.vertical===verticalPosition$$module$build$src$core$positionable_helpers.TOP?bumpDirection$$module$build$src$core$positionable_helpers.DOWN:bumpDirection$$module$build$src$core$positionable_helpers.UP,b);this.top_=b.top;this.left_=b.left;var d;null==(d=this.svgGroup_)||d.setAttribute("transform","translate("+this.left_+","+this.top_+")")}}getBoundingRectangle(){return new Rect$$module$build$src$core$utils$rect(this.top_, +this.top_+BODY_HEIGHT$$module$build$src$core$trashcan+LID_HEIGHT$$module$build$src$core$trashcan,this.left_,this.left_+WIDTH$$module$build$src$core$trashcan)}getClientRect(){if(!this.svgGroup_)return null;var a=this.svgGroup_.getBoundingClientRect();const b=a.top+SPRITE_TOP$$module$build$src$core$trashcan-MARGIN_HOTSPOT$$module$build$src$core$trashcan;a=a.left+SPRITE_LEFT$$module$build$src$core$trashcan-MARGIN_HOTSPOT$$module$build$src$core$trashcan;return new Rect$$module$build$src$core$utils$rect(b, +b+LID_HEIGHT$$module$build$src$core$trashcan+BODY_HEIGHT$$module$build$src$core$trashcan+2*MARGIN_HOTSPOT$$module$build$src$core$trashcan,a,a+WIDTH$$module$build$src$core$trashcan+2*MARGIN_HOTSPOT$$module$build$src$core$trashcan)}onDragOver(a){this.setLidOpen(this.wouldDelete_)}onDragExit(a){this.setLidOpen(!1)}onDrop(a){setTimeout(this.setLidOpen.bind(this,!1),100)}setLidOpen(a){this.isLidOpen!==a&&(this.lidTask_&&clearTimeout(this.lidTask_),this.isLidOpen=a,this.animateLid_())}animateLid_(){const a= +ANIMATION_FRAMES$$module$build$src$core$trashcan;var b=1/(a+1);this.lidOpen_+=this.isLidOpen?b:-b;this.lidOpen_=Math.min(Math.max(this.lidOpen_,this.minOpenness_),1);this.setLidAngle_(this.lidOpen_*MAX_LID_ANGLE$$module$build$src$core$trashcan);b=OPACITY_MIN$$module$build$src$core$trashcan+this.lidOpen_*(OPACITY_MAX$$module$build$src$core$trashcan-OPACITY_MIN$$module$build$src$core$trashcan);this.svgGroup_&&(this.svgGroup_.style.opacity=`${b}`);this.lidOpen_>this.minOpenness_&&1>this.lidOpen_&&(this.lidTask_= +setTimeout(this.animateLid_.bind(this),ANIMATION_LENGTH$$module$build$src$core$trashcan/a))}setLidAngle_(a){const b=this.workspace.toolboxPosition===Position$$module$build$src$core$utils$toolbox.RIGHT||this.workspace.horizontalLayout&&this.workspace.RTL;let c;null==(c=this.svgLid_)||c.setAttribute("transform","rotate("+(b?-a:a)+","+(b?4:WIDTH$$module$build$src$core$trashcan-4)+","+(LID_HEIGHT$$module$build$src$core$trashcan-2)+")")}setMinOpenness_(a){this.minOpenness_=a;this.isLidOpen||this.setLidAngle_(a* +MAX_LID_ANGLE$$module$build$src$core$trashcan)}closeLid(){this.setLidOpen(!1)}click(){this.hasContents_()&&this.openFlyout()}fireUiEvent_(a){a=new (get$$module$build$src$core$events$utils(TRASHCAN_OPEN$$module$build$src$core$events$utils))(a,this.workspace.id);fire$$module$build$src$core$events$utils(a)}blockMouseDownWhenOpenable_(a){!this.contentsIsOpen()&&this.hasContents_()&&a.stopPropagation()}mouseOver_(){this.hasContents_()&&this.setLidOpen(!0)}mouseOut_(){this.setLidOpen(!1)}onDelete_(a){if(!(0>= +this.workspace.options.maxTrashcanContents||a.type!==DELETE$$module$build$src$core$events$utils||a.type!==DELETE$$module$build$src$core$events$utils||a.wasShadow)){if(!a.oldJson)throw Error("Encountered a delete event without proper oldJson");a=JSON.stringify(this.cleanBlockJson_(a.oldJson));if(-1===this.contents_.indexOf(a)){for(this.contents_.unshift(a);this.contents_.length>this.workspace.options.maxTrashcanContents;)this.contents_.pop();this.setMinOpenness_(HAS_BLOCKS_LID_ANGLE$$module$build$src$core$trashcan)}}}cleanBlockJson_(a){function b(c){if(c){delete c.id; +delete c.x;delete c.y;delete c.enabled;if(c.icons&&c.icons.comment){var d=c.icons.comment;delete d.height;delete d.width;delete d.pinned}d=c.inputs;for(var e in d){var f=d[e];const g=f.block;f=f.shadow;g&&b(g);f&&b(f)}c.next&&(e=c.next,c=e.block,e=e.shadow,c&&b(c),e&&b(e))}}a=JSON.parse(JSON.stringify(a));b(a);return Object.assign({},{kind:"BLOCK"},a)}},WIDTH$$module$build$src$core$trashcan=47,BODY_HEIGHT$$module$build$src$core$trashcan=44,LID_HEIGHT$$module$build$src$core$trashcan=16,MARGIN_VERTICAL$$module$build$src$core$trashcan= +20,MARGIN_HORIZONTAL$$module$build$src$core$trashcan=20,MARGIN_HOTSPOT$$module$build$src$core$trashcan=10,SPRITE_LEFT$$module$build$src$core$trashcan=0,SPRITE_TOP$$module$build$src$core$trashcan=32,HAS_BLOCKS_LID_ANGLE$$module$build$src$core$trashcan=.1,ANIMATION_LENGTH$$module$build$src$core$trashcan=80,ANIMATION_FRAMES$$module$build$src$core$trashcan=4,OPACITY_MIN$$module$build$src$core$trashcan=.4,OPACITY_MAX$$module$build$src$core$trashcan=.8,MAX_LID_ANGLE$$module$build$src$core$trashcan=45,module$build$src$core$trashcan= +{};module$build$src$core$trashcan.Trashcan=Trashcan$$module$build$src$core$trashcan;var getInjectionDivXY_$$module$build$src$core$utils=getInjectionDivXY$$module$build$src$core$utils,module$build$src$core$utils={};module$build$src$core$utils.Coordinate=Coordinate$$module$build$src$core$utils$coordinate;module$build$src$core$utils.KeyCodes=KeyCodes$$module$build$src$core$utils$keycodes;module$build$src$core$utils.Rect=Rect$$module$build$src$core$utils$rect;module$build$src$core$utils.Size=Size$$module$build$src$core$utils$size;module$build$src$core$utils.Svg=Svg$$module$build$src$core$utils$svg; +module$build$src$core$utils.aria=module$build$src$core$utils$aria;module$build$src$core$utils.array=module$build$src$core$utils$array;module$build$src$core$utils.arrayRemove=arrayRemove$$module$build$src$core$utils;module$build$src$core$utils.browserEvents=module$build$src$core$browser_events;module$build$src$core$utils.checkMessageReferences=checkMessageReferences$$module$build$src$core$utils;module$build$src$core$utils.colour=module$build$src$core$utils$colour; +module$build$src$core$utils.deprecation=module$build$src$core$utils$deprecation;module$build$src$core$utils.dom=module$build$src$core$utils$dom;module$build$src$core$utils.extensions=$.module$build$src$core$extensions;module$build$src$core$utils.getBlockTypeCounts=getBlockTypeCounts$$module$build$src$core$utils;module$build$src$core$utils.getDocumentScroll=getDocumentScroll$$module$build$src$core$utils;module$build$src$core$utils.getInjectionDivXY_=getInjectionDivXY$$module$build$src$core$utils; +module$build$src$core$utils.getRelativeXY=getRelativeXY$$module$build$src$core$utils;module$build$src$core$utils.getViewportBBox=getViewportBBox$$module$build$src$core$utils;module$build$src$core$utils.idGenerator=module$build$src$core$utils$idgenerator;module$build$src$core$utils.is3dSupported=is3dSupported$$module$build$src$core$utils;module$build$src$core$utils.math=module$build$src$core$utils$math;module$build$src$core$utils.object=module$build$src$core$utils$object; +module$build$src$core$utils.parseBlockColour=parseBlockColour$$module$build$src$core$utils;module$build$src$core$utils.parsing=module$build$src$core$utils$parsing;module$build$src$core$utils.replaceMessageReferences=replaceMessageReferences$$module$build$src$core$utils;module$build$src$core$utils.runAfterPageLoad=runAfterPageLoad$$module$build$src$core$utils;module$build$src$core$utils.screenToWsCoordinates=screenToWsCoordinates$$module$build$src$core$utils;module$build$src$core$utils.string=$.module$build$src$core$utils$string; +module$build$src$core$utils.style=module$build$src$core$utils$style;module$build$src$core$utils.svgMath=module$build$src$core$utils$svg_math;module$build$src$core$utils.svgPaths=module$build$src$core$utils$svg_paths;module$build$src$core$utils.tokenizeInterpolation=tokenizeInterpolation$$module$build$src$core$utils;module$build$src$core$utils.toolbox=module$build$src$core$utils$toolbox;module$build$src$core$utils.userAgent=module$build$src$core$utils$useragent;module$build$src$core$utils.xml=$.module$build$src$core$utils$xml;var VERSION$$module$build$src$core$blockly="9.3.3",ALIGN_LEFT$$module$build$src$core$blockly=$.Align$$module$build$src$core$input.LEFT,ALIGN_CENTRE$$module$build$src$core$blockly=$.Align$$module$build$src$core$input.CENTRE,ALIGN_RIGHT$$module$build$src$core$blockly=$.Align$$module$build$src$core$input.RIGHT,INPUT_VALUE$$module$build$src$core$blockly=ConnectionType$$module$build$src$core$connection_type.INPUT_VALUE,OUTPUT_VALUE$$module$build$src$core$blockly=ConnectionType$$module$build$src$core$connection_type.OUTPUT_VALUE, +NEXT_STATEMENT$$module$build$src$core$blockly=ConnectionType$$module$build$src$core$connection_type.NEXT_STATEMENT,PREVIOUS_STATEMENT$$module$build$src$core$blockly=ConnectionType$$module$build$src$core$connection_type.PREVIOUS_STATEMENT,DUMMY_INPUT$$module$build$src$core$blockly=inputTypes$$module$build$src$core$input_types.DUMMY,TOOLBOX_AT_TOP$$module$build$src$core$blockly=Position$$module$build$src$core$utils$toolbox.TOP,TOOLBOX_AT_BOTTOM$$module$build$src$core$blockly=Position$$module$build$src$core$utils$toolbox.BOTTOM, +TOOLBOX_AT_LEFT$$module$build$src$core$blockly=Position$$module$build$src$core$utils$toolbox.LEFT,TOOLBOX_AT_RIGHT$$module$build$src$core$blockly=Position$$module$build$src$core$utils$toolbox.RIGHT,svgResize$$module$build$src$core$blockly=svgResize$$module$build$src$core$common,getMainWorkspace$$module$build$src$core$blockly=getMainWorkspace$$module$build$src$core$common,getSelected$$module$build$src$core$blockly=getSelected$$module$build$src$core$common,defineBlocksWithJsonArray$$module$build$src$core$blockly= +defineBlocksWithJsonArray$$module$build$src$core$common,setParentContainer$$module$build$src$core$blockly=setParentContainer$$module$build$src$core$common,resizeSvgContents$$module$build$src$core$blockly=resizeSvgContentsLocal$$module$build$src$core$blockly,COLLAPSE_CHARS$$module$build$src$core$blockly=COLLAPSE_CHARS$$module$build$src$core$internal_constants,DRAG_STACK$$module$build$src$core$blockly=DRAG_STACK$$module$build$src$core$internal_constants,OPPOSITE_TYPE$$module$build$src$core$blockly= +OPPOSITE_TYPE$$module$build$src$core$internal_constants,RENAME_VARIABLE_ID$$module$build$src$core$blockly=RENAME_VARIABLE_ID$$module$build$src$core$internal_constants,DELETE_VARIABLE_ID$$module$build$src$core$blockly=DELETE_VARIABLE_ID$$module$build$src$core$internal_constants,COLLAPSED_INPUT_NAME$$module$build$src$core$blockly=COLLAPSED_INPUT_NAME$$module$build$src$core$constants,COLLAPSED_FIELD_NAME$$module$build$src$core$blockly=COLLAPSED_FIELD_NAME$$module$build$src$core$constants,VARIABLE_CATEGORY_NAME$$module$build$src$core$blockly= +CATEGORY_NAME$$module$build$src$core$variables,VARIABLE_DYNAMIC_CATEGORY_NAME$$module$build$src$core$blockly=CATEGORY_NAME$$module$build$src$core$variables_dynamic,PROCEDURE_CATEGORY_NAME$$module$build$src$core$blockly=CATEGORY_NAME$$module$build$src$core$procedures;Workspace$$module$build$src$core$workspace.prototype.newBlock=function(a,b){return new Block$$module$build$src$core$block(this,a,b)}; +WorkspaceSvg$$module$build$src$core$workspace_svg.prototype.newBlock=function(a,b){return new BlockSvg$$module$build$src$core$block_svg(this,a,b)};WorkspaceSvg$$module$build$src$core$workspace_svg.newTrashcan=function(a){return new Trashcan$$module$build$src$core$trashcan(a)}; +WorkspaceCommentSvg$$module$build$src$core$workspace_comment_svg.prototype.showContextMenu=function(a){if(!this.workspace.options.readOnly){var b=[];this.isDeletable()&&this.isMovable()&&(b.push(commentDuplicateOption$$module$build$src$core$contextmenu(this)),b.push(commentDeleteOption$$module$build$src$core$contextmenu(this)));show$$module$build$src$core$contextmenu(a,b,this.RTL)}};$.Mutator$$module$build$src$core$mutator.prototype.newWorkspaceSvg=function(a){return new WorkspaceSvg$$module$build$src$core$workspace_svg(a)}; +Names$$module$build$src$core$names.prototype.populateProcedures=function(a){a=allProcedures$$module$build$src$core$procedures(a);a=a[0].concat(a[1]);for(let b=0;b=this.connections_.length)return-1;b=a.y;for(var d=c;0<=d&&this.connections_[d].y==b;){if(this.connections_[d]==a)return d;d--}for(;ca)c=d;else{b=d;break}}return b};Blockly.ConnectionDB.prototype.removeConnection=function(a,b){a=this.findIndexOfConnection_(a,b);if(-1==a)throw Error("Unable to find connection in connectionDB.");this.connections_.splice(a,1)}; -Blockly.ConnectionDB.prototype.getNeighbours=function(a,b){function c(a){var c=e-d[a].x,g=f-d[a].y;Math.sqrt(c*c+g*g)<=b&&k.push(d[a]);return ga)throw Error("Cannot unsubscribe a workspace that hasn't been subscribed.");this.subscribedWorkspaces_.splice(a,1)}; -Blockly.ThemeManager.prototype.subscribe=function(a,b,c){this.componentDB_[b]||(this.componentDB_[b]=[]);this.componentDB_[b].push({element:a,propertyName:c});b=this.theme_&&this.theme_.getComponentStyle(b);a.style[c]=b||""};Blockly.ThemeManager.prototype.unsubscribe=function(a){if(a)for(var b=Object.keys(this.componentDB_),c=0,d;d=b[c];c++){for(var e=this.componentDB_[d],f=e.length-1;0<=f;f--)e[f].element===a&&e.splice(f,1);this.componentDB_[d].length||delete this.componentDB_[d]}}; -Blockly.ThemeManager.prototype.dispose=function(){this.componentDB_=this.subscribedWorkspaces_=this.theme_=this.owner_=null};Blockly.TouchGesture=function(a,b){Blockly.TouchGesture.superClass_.constructor.call(this,a,b);this.isMultiTouch_=!1;this.cachedPoints_=Object.create(null);this.startDistance_=this.previousScale_=0;this.isPinchZoomEnabled_=this.onStartWrapper_=null};Blockly.utils.object.inherits(Blockly.TouchGesture,Blockly.Gesture);Blockly.TouchGesture.ZOOM_IN_MULTIPLIER=5;Blockly.TouchGesture.ZOOM_OUT_MULTIPLIER=6; -Blockly.TouchGesture.prototype.doStart=function(a){this.isPinchZoomEnabled_=this.startWorkspace_.options.zoomOptions&&this.startWorkspace_.options.zoomOptions.pinch;Blockly.TouchGesture.superClass_.doStart.call(this,a);!this.isEnding_&&Blockly.Touch.isTouchEvent(a)&&this.handleTouchStart(a)}; -Blockly.TouchGesture.prototype.bindMouseEvents=function(a){this.onStartWrapper_=Blockly.bindEventWithChecks_(document,"mousedown",null,this.handleStart.bind(this),!0);this.onMoveWrapper_=Blockly.bindEventWithChecks_(document,"mousemove",null,this.handleMove.bind(this),!0);this.onUpWrapper_=Blockly.bindEventWithChecks_(document,"mouseup",null,this.handleUp.bind(this),!0);a.preventDefault();a.stopPropagation()}; -Blockly.TouchGesture.prototype.handleStart=function(a){!this.isDragging()&&Blockly.Touch.isTouchEvent(a)&&(this.handleTouchStart(a),this.isMultiTouch()&&Blockly.longStop_())};Blockly.TouchGesture.prototype.handleMove=function(a){this.isDragging()?Blockly.Touch.shouldHandleEvent(a)&&Blockly.TouchGesture.superClass_.handleMove.call(this,a):this.isMultiTouch()?(Blockly.Touch.isTouchEvent(a)&&this.handleTouchMove(a),Blockly.longStop_()):Blockly.TouchGesture.superClass_.handleMove.call(this,a)}; -Blockly.TouchGesture.prototype.handleUp=function(a){Blockly.Touch.isTouchEvent(a)&&!this.isDragging()&&this.handleTouchEnd(a);!this.isMultiTouch()||this.isDragging()?Blockly.Touch.shouldHandleEvent(a)&&Blockly.TouchGesture.superClass_.handleUp.call(this,a):(a.preventDefault(),a.stopPropagation(),this.dispose())};Blockly.TouchGesture.prototype.isMultiTouch=function(){return this.isMultiTouch_}; -Blockly.TouchGesture.prototype.dispose=function(){Blockly.TouchGesture.superClass_.dispose.call(this);this.onStartWrapper_&&Blockly.unbindEvent_(this.onStartWrapper_)};Blockly.TouchGesture.prototype.handleTouchStart=function(a){var b=Blockly.Touch.getTouchIdentifierFromEvent(a);this.cachedPoints_[b]=this.getTouchPoint(a);b=Object.keys(this.cachedPoints_);2==b.length&&(this.startDistance_=Blockly.utils.Coordinate.distance(this.cachedPoints_[b[0]],this.cachedPoints_[b[1]]),this.isMultiTouch_=!0,a.preventDefault())}; -Blockly.TouchGesture.prototype.handleTouchMove=function(a){var b=Blockly.Touch.getTouchIdentifierFromEvent(a);this.cachedPoints_[b]=this.getTouchPoint(a);b=Object.keys(this.cachedPoints_);this.isPinchZoomEnabled_&&2===b.length?this.handlePinch_(a):Blockly.TouchGesture.superClass_.handleMove.call(this,a)}; -Blockly.TouchGesture.prototype.handlePinch_=function(a){var b=Object.keys(this.cachedPoints_);b=Blockly.utils.Coordinate.distance(this.cachedPoints_[b[0]],this.cachedPoints_[b[1]])/this.startDistance_;if(0this.previousScale_){var c=b-this.previousScale_;c=0Object.keys(this.cachedPoints_).length&&(this.cachedPoints_=Object.create(null),this.previousScale_=0)};Blockly.TouchGesture.prototype.getTouchPoint=function(a){return this.startWorkspace_?new Blockly.utils.Coordinate(a.pageX?a.pageX:a.changedTouches[0].pageX,a.pageY?a.pageY:a.changedTouches[0].pageY):null};Blockly.WorkspaceAudio=function(a){this.parentWorkspace_=a;this.SOUNDS_=Object.create(null)};Blockly.WorkspaceAudio.prototype.lastSound_=null;Blockly.WorkspaceAudio.prototype.dispose=function(){this.SOUNDS_=this.parentWorkspace_=null}; -Blockly.WorkspaceAudio.prototype.load=function(a,b){if(a.length){try{var c=new Blockly.utils.global.Audio}catch(h){return}for(var d,e=0;e=this.remainingCapacity()||(this.currentGesture_&&this.currentGesture_.cancel(),"comment"==a.tagName.toLowerCase()?this.pasteWorkspaceComment_(a):this.pasteBlock_(a))}; -Blockly.WorkspaceSvg.prototype.pasteBlock_=function(a){Blockly.Events.disable();try{var b=Blockly.Xml.domToBlock(a,this),c=this.getMarker(Blockly.navigation.MARKER_NAME).getCurNode();if(this.keyboardAccessibilityMode&&c&&c.isConnection()){var d=c.getLocation();Blockly.navigation.insertBlock(b,d);return}var e=parseInt(a.getAttribute("x"),10),f=parseInt(a.getAttribute("y"),10);if(!isNaN(e)&&!isNaN(f)){this.RTL&&(e=-e);do{a=!1;var g=this.getAllBlocks(!1);c=0;for(var h;h=g[c];c++){var k=h.getRelativeToSurfaceXY(); -if(1>=Math.abs(e-k.x)&&1>=Math.abs(f-k.y)){a=!0;break}}if(!a){var l=b.getConnections_(!1);c=0;for(var m;m=l[c];c++)if(m.closest(Blockly.SNAP_RADIUS,new Blockly.utils.Coordinate(e,f)).connection){a=!0;break}}a&&(e=this.RTL?e-Blockly.SNAP_RADIUS:e+Blockly.SNAP_RADIUS,f+=2*Blockly.SNAP_RADIUS)}while(a);b.moveBy(e,f)}}finally{Blockly.Events.enable()}Blockly.Events.isEnabled()&&!b.isShadow()&&Blockly.Events.fire(new Blockly.Events.BlockCreate(b));b.select()}; -Blockly.WorkspaceSvg.prototype.pasteWorkspaceComment_=function(a){Blockly.Events.disable();try{var b=Blockly.WorkspaceCommentSvg.fromXml(a,this),c=parseInt(a.getAttribute("x"),10),d=parseInt(a.getAttribute("y"),10);isNaN(c)||isNaN(d)||(this.RTL&&(c=-c),b.moveBy(c+50,d+50))}finally{Blockly.Events.enable()}Blockly.Events.isEnabled();b.select()}; -Blockly.WorkspaceSvg.prototype.refreshToolboxSelection=function(){var a=this.isFlyout?this.targetWorkspace:this;a&&!a.currentGesture_&&a.toolbox_&&a.toolbox_.getFlyout()&&a.toolbox_.refreshSelection()};Blockly.WorkspaceSvg.prototype.renameVariableById=function(a,b){Blockly.WorkspaceSvg.superClass_.renameVariableById.call(this,a,b);this.refreshToolboxSelection()};Blockly.WorkspaceSvg.prototype.deleteVariableById=function(a){Blockly.WorkspaceSvg.superClass_.deleteVariableById.call(this,a);this.refreshToolboxSelection()}; -Blockly.WorkspaceSvg.prototype.createVariable=function(a,b,c){a=Blockly.WorkspaceSvg.superClass_.createVariable.call(this,a,b,c);this.refreshToolboxSelection();return a};Blockly.WorkspaceSvg.prototype.recordDeleteAreas=function(){this.deleteAreaTrash_=this.trashcan&&this.svgGroup_.parentNode?this.trashcan.getClientRect():null;this.deleteAreaToolbox_=this.flyout_?this.flyout_.getClientRect():this.toolbox_?this.toolbox_.getClientRect():null}; -Blockly.WorkspaceSvg.prototype.isDeleteArea=function(a){return this.deleteAreaTrash_&&this.deleteAreaTrash_.contains(a.clientX,a.clientY)?Blockly.DELETE_AREA_TRASH:this.deleteAreaToolbox_&&this.deleteAreaToolbox_.contains(a.clientX,a.clientY)?Blockly.DELETE_AREA_TOOLBOX:Blockly.DELETE_AREA_NONE};Blockly.WorkspaceSvg.prototype.onMouseDown_=function(a){var b=this.getGesture(a);b&&b.handleWsStart(a,this)}; -Blockly.WorkspaceSvg.prototype.startDrag=function(a,b){a=Blockly.utils.mouseToSvg(a,this.getParentSvg(),this.getInverseScreenCTM());a.x/=this.scale;a.y/=this.scale;this.dragDeltaXY_=Blockly.utils.Coordinate.difference(b,a)};Blockly.WorkspaceSvg.prototype.moveDrag=function(a){a=Blockly.utils.mouseToSvg(a,this.getParentSvg(),this.getInverseScreenCTM());a.x/=this.scale;a.y/=this.scale;return Blockly.utils.Coordinate.sum(this.dragDeltaXY_,a)}; -Blockly.WorkspaceSvg.prototype.isDragging=function(){return null!=this.currentGesture_&&this.currentGesture_.isDragging()};Blockly.WorkspaceSvg.prototype.isDraggable=function(){return this.options.moveOptions&&this.options.moveOptions.drag}; -Blockly.WorkspaceSvg.prototype.isContentBounded=function(){return this.options.moveOptions&&this.options.moveOptions.scrollbars||this.options.moveOptions&&this.options.moveOptions.wheel||this.options.moveOptions&&this.options.moveOptions.drag||this.options.zoomOptions&&this.options.zoomOptions.controls||this.options.zoomOptions&&this.options.zoomOptions.wheel||this.options.zoomOptions&&this.options.zoomOptions.pinch}; -Blockly.WorkspaceSvg.prototype.isMovable=function(){return this.options.moveOptions&&this.options.moveOptions.scrollbars||this.options.moveOptions&&this.options.moveOptions.wheel||this.options.moveOptions&&this.options.moveOptions.drag||this.options.zoomOptions&&this.options.zoomOptions.wheel||this.options.zoomOptions&&this.options.zoomOptions.pinch}; -Blockly.WorkspaceSvg.prototype.onMouseWheel_=function(a){if(Blockly.Gesture.inProgress())a.preventDefault(),a.stopPropagation();else{var b=this.options.zoomOptions&&this.options.zoomOptions.wheel,c=this.options.moveOptions&&this.options.moveOptions.wheel;if(b||c){var d=Blockly.utils.getScrollDeltaPixels(a);!b||!a.ctrlKey&&c?(b=this.scrollX-d.x,c=this.scrollY-d.y,a.shiftKey&&!d.x&&(b=this.scrollX-d.y,c=this.scrollY),this.scroll(b,c)):(d=-d.y/50,b=Blockly.utils.mouseToSvg(a,this.getParentSvg(),this.getInverseScreenCTM()), -this.zoom(b.x,b.y,d));a.preventDefault()}}};Blockly.WorkspaceSvg.prototype.getBlocksBoundingBox=function(){var a=this.getTopBlocks(!1),b=this.getTopComments(!1);a=a.concat(b);if(!a.length)return new Blockly.utils.Rect(0,0,0,0);b=a[0].getBoundingRectangle();for(var c=1;cb.bottom&&(b.bottom=d.bottom);d.leftb.right&&(b.right=d.right)}return b}; -Blockly.WorkspaceSvg.prototype.cleanUp=function(){this.setResizesEnabled(!1);Blockly.Events.setGroup(!0);for(var a=this.getTopBlocks(!0),b=0,c=0,d;d=a[c];c++)if(d.isMovable()){var e=d.getRelativeToSurfaceXY();d.moveBy(-e.x,b-e.y);d.snapToGrid();b=d.getRelativeToSurfaceXY().y+d.getHeightWidth().height+this.renderer_.getConstants().MIN_BLOCK_HEIGHT}Blockly.Events.setGroup(!1);this.setResizesEnabled(!0)}; -Blockly.WorkspaceSvg.prototype.showContextMenu=function(a){function b(a){if(a.isDeletable())p=p.concat(a.getDescendants(!1));else{a=a.getChildren(!1);for(var c=0;cp.length?c():Blockly.confirm(Blockly.Msg.DELETE_ALL_BLOCKS.replace("%1",p.length),function(a){a&& -c()})}};d.push(h);this.configureContextMenu&&this.configureContextMenu(d,a);Blockly.ContextMenu.show(a,d,this.RTL)}}; -Blockly.WorkspaceSvg.prototype.updateToolbox=function(a){if(a=Blockly.Options.parseToolboxTree(a)){if(!this.options.languageTree)throw Error("Existing toolbox is null. Can't create new toolbox.");if(a.getElementsByTagName("category").length){if(!this.toolbox_)throw Error("Existing toolbox has no categories. Can't change mode.");this.options.languageTree=a;this.toolbox_.renderTree(a)}else{if(!this.flyout_)throw Error("Existing toolbox has categories. Can't change mode.");this.options.languageTree= -a;this.flyout_.show(a.childNodes)}}else if(this.options.languageTree)throw Error("Can't nullify an existing toolbox.");};Blockly.WorkspaceSvg.prototype.markFocused=function(){this.options.parentWorkspace?this.options.parentWorkspace.markFocused():(Blockly.mainWorkspace=this,this.setBrowserFocus())};Blockly.WorkspaceSvg.prototype.setBrowserFocus=function(){document.activeElement&&document.activeElement.blur();try{this.getParentSvg().focus({preventScroll:!0})}catch(a){try{this.getParentSvg().parentNode.setActive()}catch(b){this.getParentSvg().parentNode.focus({preventScroll:!0})}}}; -Blockly.WorkspaceSvg.prototype.zoom=function(a,b,c){c=Math.pow(this.options.zoomOptions.scaleSpeed,c);var d=this.scale*c;if(this.scale!=d){d>this.options.zoomOptions.maxScale?c=this.options.zoomOptions.maxScale/this.scale:dthis.options.zoomOptions.maxScale?a=this.options.zoomOptions.maxScale:this.options.zoomOptions.minScale&&ab.viewBottom||b.contentLeftb.viewRight){c=null;a&&(c=Blockly.Events.getGroup(),Blockly.Events.setGroup(a.group));switch(a.type){case Blockly.Events.BLOCK_CREATE:case Blockly.Events.BLOCK_MOVE:var f= -e.getBlockById(a.blockId);f&&(f=f.getRootBlock());break;case Blockly.Events.COMMENT_CREATE:case Blockly.Events.COMMENT_MOVE:f=e.getCommentById(a.commentId)}if(f){d=f.getBoundingRectangle();d.height=d.bottom-d.top;d.width=d.right-d.left;var m=b.viewTop,n=b.viewBottom-d.height;n=Math.max(m,n);m=Blockly.utils.math.clamp(m,d.top,n)-d.top;n=b.viewLeft;var p=b.viewRight-d.width;b.RTL?n=Math.min(p,n):p=Math.max(n,p);b=Blockly.utils.math.clamp(n,d.left,p)-d.left;f.moveBy(b,m)}a&&(!a.group&&f&&console.log("WARNING: Moved object in bounds but there was no event group. This may break undo."), -null!==c&&Blockly.Events.setGroup(c))}}});Blockly.svgResize(e);Blockly.WidgetDiv.createDom();Blockly.DropDownDiv.createDom();Blockly.Tooltip.createDom();return e}; -Blockly.init_=function(a){var b=a.options,c=a.getParentSvg();Blockly.bindEventWithChecks_(c.parentNode,"contextmenu",null,function(a){Blockly.utils.isTargetInput(a)||a.preventDefault()});c=Blockly.bindEventWithChecks_(window,"resize",null,function(){Blockly.hideChaff(!0);Blockly.svgResize(a)});a.setResizeHandlerWrapper(c);Blockly.inject.bindDocumentEvents_();if(b.languageTree){c=a.getToolbox();var d=a.getFlyout(!0);c?c.init():d&&(d.init(a),d.show(b.languageTree.childNodes),d.scrollToStart())}c=Blockly.Scrollbar.scrollbarThickness; -b.hasTrashcan&&(c=a.trashcan.init(c));b.zoomOptions&&b.zoomOptions.controls&&a.zoomControls_.init(c);b.moveOptions&&b.moveOptions.scrollbars?(a.scrollbar=new Blockly.ScrollbarPair(a),a.scrollbar.resize()):a.setMetrics({x:.5,y:.5});b.hasSounds&&Blockly.inject.loadSounds_(b.pathToMedia,a)}; -Blockly.inject.bindDocumentEvents_=function(){Blockly.documentEventsBound_||(Blockly.bindEventWithChecks_(document,"scroll",null,function(){for(var a=Blockly.Workspace.getAll(),b=0,c;c=a[b];b++)c.updateInverseScreenCTM&&c.updateInverseScreenCTM()}),Blockly.bindEventWithChecks_(document,"keydown",null,Blockly.onKeyDown),Blockly.bindEvent_(document,"touchend",null,Blockly.longStop_),Blockly.bindEvent_(document,"touchcancel",null,Blockly.longStop_),Blockly.utils.userAgent.IPAD&&Blockly.bindEventWithChecks_(window, -"orientationchange",document,function(){Blockly.svgResize(Blockly.getMainWorkspace())}));Blockly.documentEventsBound_=!0}; -Blockly.inject.loadSounds_=function(a,b){var c=b.getAudioManager();c.load([a+"click.mp3",a+"click.wav",a+"click.ogg"],"click");c.load([a+"disconnect.wav",a+"disconnect.mp3",a+"disconnect.ogg"],"disconnect");c.load([a+"delete.mp3",a+"delete.ogg",a+"delete.wav"],"delete");var d=[];a=function(){for(;d.length;)Blockly.unbindEvent_(d.pop());c.preload()};d.push(Blockly.bindEventWithChecks_(document,"mousemove",null,a,!0));d.push(Blockly.bindEventWithChecks_(document,"touchstart",null,a,!0))};Blockly.Names=function(a,b){this.variablePrefix_=b||"";this.reservedDict_=Object.create(null);if(a)for(a=a.split(","),b=0;b1'),d.appendChild(c),b.push(d));if(Blockly.Blocks.variables_get){a.sort(Blockly.VariableModel.compareByName);c=0;for(var e;e=a[c];c++)d=Blockly.utils.xml.createElement("block"),d.setAttribute("type","variables_get"),d.setAttribute("gap",8),d.appendChild(Blockly.Variables.generateVariableFieldDom(e)),b.push(d)}}return b}; -Blockly.Variables.VAR_LETTER_OPTIONS="ijkmnopqrstuvwxyzabcdefgh";Blockly.Variables.generateUniqueName=function(a){return Blockly.Variables.generateUniqueNameFromOptions(Blockly.Variables.VAR_LETTER_OPTIONS.charAt(0),a.getAllVariableNames())}; -Blockly.Variables.generateUniqueNameFromOptions=function(a,b){if(!b.length)return a;for(var c=Blockly.Variables.VAR_LETTER_OPTIONS,d="",e=c.indexOf(a);;){for(var f=!1,g=0;ge?Blockly.WidgetDiv.positionInternal_(a,0,c.height+e):Blockly.WidgetDiv.positionInternal_(a,e,c.height)};Blockly.WidgetDiv.calculateX_=function(a,b,c,d){if(d)return b=Math.max(b.right-c.width,a.left),Math.min(b,a.right-c.width);b=Math.min(b.left,a.right-c.width);return Math.max(b,a.left)}; -Blockly.WidgetDiv.calculateY_=function(a,b,c){return b.bottom+c.height>=a.bottom?b.top-c.height:b.bottom};Blockly.VERSION="3.20200402.1";Blockly.mainWorkspace=null;Blockly.selected=null;Blockly.draggingConnections=[];Blockly.clipboardXml_=null;Blockly.clipboardSource_=null;Blockly.clipboardTypeCounts_=null;Blockly.cache3dSupported_=null;Blockly.parentContainer=null;Blockly.svgSize=function(a){return{width:a.cachedWidth_,height:a.cachedHeight_}};Blockly.resizeSvgContents=function(a){a.resizeContents()}; -Blockly.svgResize=function(a){for(;a.options.parentWorkspace;)a=a.options.parentWorkspace;var b=a.getParentSvg(),c=b.parentNode;if(c){var d=c.offsetWidth;c=c.offsetHeight;b.cachedWidth_!=d&&(b.setAttribute("width",d+"px"),b.cachedWidth_=d);b.cachedHeight_!=c&&(b.setAttribute("height",c+"px"),b.cachedHeight_=c);a.resize()}}; -Blockly.onKeyDown=function(a){var b=Blockly.mainWorkspace;if(b&&!(Blockly.utils.isTargetInput(a)||b.rendered&&!b.isVisible()))if(b.options.readOnly)Blockly.navigation.onKeyPress(a);else{var c=!1;if(a.keyCode==Blockly.utils.KeyCodes.ESC)Blockly.hideChaff(),Blockly.navigation.onBlocklyAction(Blockly.navigation.ACTION_EXIT);else{if(Blockly.navigation.onKeyPress(a))return;if(a.keyCode==Blockly.utils.KeyCodes.BACKSPACE||a.keyCode==Blockly.utils.KeyCodes.DELETE){a.preventDefault();if(Blockly.Gesture.inProgress())return; -Blockly.selected&&Blockly.selected.isDeletable()&&(c=!0)}else if(a.altKey||a.ctrlKey||a.metaKey){if(Blockly.Gesture.inProgress())return;Blockly.selected&&Blockly.selected.isDeletable()&&Blockly.selected.isMovable()&&(a.keyCode==Blockly.utils.KeyCodes.C?(Blockly.hideChaff(),Blockly.copy_(Blockly.selected)):a.keyCode!=Blockly.utils.KeyCodes.X||Blockly.selected.workspace.isFlyout||(Blockly.copy_(Blockly.selected),c=!0));a.keyCode==Blockly.utils.KeyCodes.V?Blockly.clipboardXml_&&(a=Blockly.clipboardSource_, -a.isFlyout&&(a=a.targetWorkspace),Blockly.clipboardTypeCounts_&&a.isCapacityAvailable(Blockly.clipboardTypeCounts_)&&(Blockly.Events.setGroup(!0),a.paste(Blockly.clipboardXml_),Blockly.Events.setGroup(!1))):a.keyCode==Blockly.utils.KeyCodes.Z&&(Blockly.hideChaff(),b.undo(a.shiftKey))}}c&&!Blockly.selected.workspace.isFlyout&&(Blockly.Events.setGroup(!0),Blockly.hideChaff(),Blockly.selected.dispose(!0,!0),Blockly.Events.setGroup(!1))}}; -Blockly.copy_=function(a){if(a.isComment)var b=a.toXmlWithXY();else{b=Blockly.Xml.blockToDom(a,!0);Blockly.Xml.deleteNext(b);var c=a.getRelativeToSurfaceXY();b.setAttribute("x",a.RTL?-c.x:c.x);b.setAttribute("y",c.y)}Blockly.clipboardXml_=b;Blockly.clipboardSource_=a.workspace;Blockly.clipboardTypeCounts_=a.isComment?null:Blockly.utils.getBlockTypeCounts(a,!0)}; -Blockly.duplicate=function(a){var b=Blockly.clipboardXml_,c=Blockly.clipboardSource_;Blockly.copy_(a);a.workspace.paste(Blockly.clipboardXml_);Blockly.clipboardXml_=b;Blockly.clipboardSource_=c};Blockly.onContextMenu_=function(a){Blockly.utils.isTargetInput(a)||a.preventDefault()}; -Blockly.hideChaff=function(a){Blockly.Tooltip.hide();Blockly.WidgetDiv.hide();Blockly.DropDownDiv.hideWithoutAnimation();a||(a=Blockly.getMainWorkspace(),a.trashcan&&a.trashcan.flyout&&a.trashcan.flyout.hide(),(a=a.getToolbox())&&a.getFlyout()&&a.getFlyout().autoClose&&a.clearSelection())};Blockly.getMainWorkspace=function(){return Blockly.mainWorkspace};Blockly.alert=function(a,b){alert(a);b&&b()};Blockly.confirm=function(a,b){b(confirm(a))};Blockly.prompt=function(a,b,c){c(prompt(a,b))}; -Blockly.jsonInitFactory_=function(a){return function(){this.jsonInit(a)}}; -Blockly.defineBlocksWithJsonArray=function(a){for(var b=0;b90-b||a>-90-b&&a<-90+b?!0:!1}; -Blockly.HorizontalFlyout.prototype.getClientRect=function(){if(!this.svgGroup_)return null;var a=this.svgGroup_.getBoundingClientRect(),b=a.top;return this.toolboxPosition_==Blockly.TOOLBOX_AT_TOP?new Blockly.utils.Rect(-1E9,b+a.height,-1E9,1E9):new Blockly.utils.Rect(b,1E9,-1E9,1E9)}; -Blockly.HorizontalFlyout.prototype.reflowInternal_=function(){this.workspace_.scale=this.targetWorkspace_.scale;for(var a=0,b=this.workspace_.getTopBlocks(!1),c=0,d;d=b[c];c++)a=Math.max(a,d.getHeightWidth().height);a+=1.5*this.MARGIN;a*=this.workspace_.scale;a+=Blockly.Scrollbar.scrollbarThickness;if(this.height_!=a){for(c=0;d=b[c];c++)d.flyoutRect_&&this.moveRectToBlock_(d.flyoutRect_,d);this.height_=a;this.position()}};Blockly.VerticalFlyout=function(a){a.getMetrics=this.getMetrics_.bind(this);a.setMetrics=this.setMetrics_.bind(this);Blockly.VerticalFlyout.superClass_.constructor.call(this,a);this.horizontalLayout_=!1};Blockly.utils.object.inherits(Blockly.VerticalFlyout,Blockly.Flyout); -Blockly.VerticalFlyout.prototype.getMetrics_=function(){if(!this.isVisible())return null;try{var a=this.workspace_.getCanvas().getBBox()}catch(e){a={height:0,y:0,width:0,x:0}}var b=this.SCROLLBAR_PADDING,c=this.height_-2*this.SCROLLBAR_PADDING,d=this.width_;this.RTL||(d-=this.SCROLLBAR_PADDING);return{viewHeight:c,viewWidth:d,contentHeight:a.height*this.workspace_.scale+2*this.MARGIN,contentWidth:a.width*this.workspace_.scale+2*this.MARGIN,viewTop:-this.workspace_.scrollY+a.y,viewLeft:-this.workspace_.scrollX, -contentTop:a.y,contentLeft:a.x,absoluteTop:b,absoluteLeft:0}};Blockly.VerticalFlyout.prototype.setMetrics_=function(a){var b=this.getMetrics_();b&&("number"==typeof a.y&&(this.workspace_.scrollY=-b.contentHeight*a.y),this.workspace_.translate(this.workspace_.scrollX+b.absoluteLeft,this.workspace_.scrollY+b.absoluteTop))}; -Blockly.VerticalFlyout.prototype.position=function(){if(this.isVisible()){var a=this.targetWorkspace_.getMetrics();a&&(this.height_=a.viewHeight,this.setBackgroundPath_(this.width_-this.CORNER_RADIUS,a.viewHeight-2*this.CORNER_RADIUS),this.positionAt_(this.width_,this.height_,this.targetWorkspace_.toolboxPosition==this.toolboxPosition_?a.toolboxWidth?this.toolboxPosition_==Blockly.TOOLBOX_AT_LEFT?a.toolboxWidth:a.viewWidth-this.width_:this.toolboxPosition_==Blockly.TOOLBOX_AT_LEFT?0:a.viewWidth:this.toolboxPosition_== -Blockly.TOOLBOX_AT_LEFT?0:a.viewWidth+a.absoluteLeft-this.width_,0))}}; -Blockly.VerticalFlyout.prototype.setBackgroundPath_=function(a,b){var c=this.toolboxPosition_==Blockly.TOOLBOX_AT_RIGHT,d=a+this.CORNER_RADIUS;d=["M "+(c?d:0)+",0"];d.push("h",c?-a:a);d.push("a",this.CORNER_RADIUS,this.CORNER_RADIUS,0,0,c?0:1,c?-this.CORNER_RADIUS:this.CORNER_RADIUS,this.CORNER_RADIUS);d.push("v",Math.max(0,b));d.push("a",this.CORNER_RADIUS,this.CORNER_RADIUS,0,0,c?0:1,c?this.CORNER_RADIUS:-this.CORNER_RADIUS,this.CORNER_RADIUS);d.push("h",c?a:-a);d.push("z");this.svgBackground_.setAttribute("d", -d.join(" "))};Blockly.VerticalFlyout.prototype.scrollToStart=function(){this.scrollbar_.set(0)};Blockly.VerticalFlyout.prototype.wheel_=function(a){var b=Blockly.utils.getScrollDeltaPixels(a);if(b.y){var c=this.getMetrics_();b=c.viewTop-c.contentTop+b.y;b=Math.min(b,c.contentHeight-c.viewHeight);b=Math.max(b,0);this.scrollbar_.set(b);Blockly.WidgetDiv.hide()}a.preventDefault();a.stopPropagation()}; -Blockly.VerticalFlyout.prototype.layout_=function(a,b){this.workspace_.scale=this.targetWorkspace_.scale;for(var c=this.MARGIN,d=this.RTL?c:c+this.tabWidth_,e=0,f;f=a[e];e++)if("block"==f.type){f=f.block;for(var g=f.getDescendants(!1),h=0,k;k=g[h];h++)k.isInFlyout=!0;f.render();g=f.getSvgRoot();h=f.getHeightWidth();k=f.outputConnection?d-this.tabWidth_:d;f.moveBy(k,c);k=this.createRect_(f,this.RTL?k-h.width:k,c,h,e);this.addBlockListeners_(g,f,k);c+=h.height+b[e]}else"button"==f.type&&(this.initFlyoutButton_(f.button, -d,c),c+=f.button.height+b[e])};Blockly.VerticalFlyout.prototype.isDragTowardWorkspace=function(a){a=Math.atan2(a.y,a.x)/Math.PI*180;var b=this.dragAngleRange_;return a-b||a<-180+b||a>180-b?!0:!1};Blockly.VerticalFlyout.prototype.getClientRect=function(){if(!this.svgGroup_)return null;var a=this.svgGroup_.getBoundingClientRect(),b=a.left;return this.toolboxPosition_==Blockly.TOOLBOX_AT_LEFT?new Blockly.utils.Rect(-1E9,1E9,-1E9,b+a.width):new Blockly.utils.Rect(-1E9,1E9,b,1E9)}; -Blockly.VerticalFlyout.prototype.reflowInternal_=function(){this.workspace_.scale=this.targetWorkspace_.scale;for(var a=0,b=this.workspace_.getTopBlocks(!1),c=0,d;d=b[c];c++){var e=d.getHeightWidth().width;d.outputConnection&&(e-=this.tabWidth_);a=Math.max(a,e)}for(c=0;d=this.buttons_[c];c++)a=Math.max(a,d.width);a+=1.5*this.MARGIN+this.tabWidth_;a*=this.workspace_.scale;a+=Blockly.Scrollbar.scrollbarThickness;if(this.width_!=a){for(c=0;d=b[c];c++){if(this.RTL){e=d.getRelativeToSurfaceXY().x;var f= -a/this.workspace_.scale-this.MARGIN;d.outputConnection||(f-=this.tabWidth_);d.moveBy(f-e,0)}d.flyoutRect_&&this.moveRectToBlock_(d.flyoutRect_,d)}if(this.RTL)for(c=0;d=this.buttons_[c];c++)b=d.getPosition().y,d.moveTo(a/this.workspace_.scale-d.width-this.MARGIN-this.tabWidth_,b);this.width_=a;this.position()}};Blockly.FlyoutButton=function(a,b,c,d){this.workspace_=a;this.targetWorkspace_=b;this.text_=c.getAttribute("text");this.position_=new Blockly.utils.Coordinate(0,0);this.isLabel_=d;this.callbackKey_=c.getAttribute("callbackKey")||c.getAttribute("callbackkey");this.cssClass_=c.getAttribute("web-class")||null;this.onMouseUpWrapper_=null};Blockly.FlyoutButton.MARGIN_X=5;Blockly.FlyoutButton.MARGIN_Y=2;Blockly.FlyoutButton.prototype.width=0;Blockly.FlyoutButton.prototype.height=0; -Blockly.FlyoutButton.prototype.createDom=function(){var a=this.isLabel_?"blocklyFlyoutLabel":"blocklyFlyoutButton";this.cssClass_&&(a+=" "+this.cssClass_);this.svgGroup_=Blockly.utils.dom.createSvgElement("g",{"class":a},this.workspace_.getCanvas());if(!this.isLabel_)var b=Blockly.utils.dom.createSvgElement("rect",{"class":"blocklyFlyoutButtonShadow",rx:4,ry:4,x:1,y:1},this.svgGroup_);a=Blockly.utils.dom.createSvgElement("rect",{"class":this.isLabel_?"blocklyFlyoutLabelBackground":"blocklyFlyoutButtonBackground", -rx:4,ry:4},this.svgGroup_);var c=Blockly.utils.dom.createSvgElement("text",{"class":this.isLabel_?"blocklyFlyoutLabelText":"blocklyText",x:0,y:0,"text-anchor":"middle"},this.svgGroup_),d=Blockly.utils.replaceMessageReferences(this.text_);this.workspace_.RTL&&(d+="\u200f");c.textContent=d;this.isLabel_&&(this.svgText_=c,this.workspace_.getThemeManager().subscribe(this.svgText_,"flyoutForegroundColour","fill"));var e=Blockly.utils.style.getComputedStyle(c,"fontSize"),f=Blockly.utils.style.getComputedStyle(c, -"fontWeight"),g=Blockly.utils.style.getComputedStyle(c,"fontFamily");this.width=Blockly.utils.dom.getFastTextWidthWithSizeString(c,e,f,g);d=Blockly.utils.dom.measureFontMetrics(d,e,f,g);this.height=d.height;this.isLabel_||(this.width+=2*Blockly.FlyoutButton.MARGIN_X,this.height+=2*Blockly.FlyoutButton.MARGIN_Y,b.setAttribute("width",this.width),b.setAttribute("height",this.height));a.setAttribute("width",this.width);a.setAttribute("height",this.height);c.setAttribute("x",this.width/2);c.setAttribute("y", -this.height/2-d.height/2+d.baseline);this.updateTransform_();this.onMouseUpWrapper_=Blockly.bindEventWithChecks_(this.svgGroup_,"mouseup",this,this.onMouseUp_);return this.svgGroup_};Blockly.FlyoutButton.prototype.show=function(){this.updateTransform_();this.svgGroup_.setAttribute("display","block")};Blockly.FlyoutButton.prototype.updateTransform_=function(){this.svgGroup_.setAttribute("transform","translate("+this.position_.x+","+this.position_.y+")")}; -Blockly.FlyoutButton.prototype.moveTo=function(a,b){this.position_.x=a;this.position_.y=b;this.updateTransform_()};Blockly.FlyoutButton.prototype.getPosition=function(){return this.position_};Blockly.FlyoutButton.prototype.getTargetWorkspace=function(){return this.targetWorkspace_};Blockly.FlyoutButton.prototype.dispose=function(){this.onMouseUpWrapper_&&Blockly.unbindEvent_(this.onMouseUpWrapper_);this.svgGroup_&&Blockly.utils.dom.removeNode(this.svgGroup_);this.svgText_&&this.workspace_.getThemeManager().unsubscribe(this.svgText_)}; -Blockly.FlyoutButton.prototype.onMouseUp_=function(a){(a=this.targetWorkspace_.getGesture(a))&&a.cancel();this.isLabel_&&this.callbackKey_?console.warn("Labels should not have callbacks. Label text: "+this.text_):this.isLabel_||this.callbackKey_&&this.targetWorkspace_.getButtonCallback(this.callbackKey_)?this.isLabel_||this.targetWorkspace_.getButtonCallback(this.callbackKey_)(this):console.warn("Buttons should have callbacks. Button text: "+this.text_)};Blockly.Css.register(".blocklyFlyoutButton {,fill: #888;,cursor: default;,},.blocklyFlyoutButtonShadow {,fill: #666;,},.blocklyFlyoutButton:hover {,fill: #aaa;,},.blocklyFlyoutLabel {,cursor: default;,},.blocklyFlyoutLabelBackground {,opacity: 0;,}".split(","));Blockly.Generator=function(a){this.name_=a;this.FUNCTION_NAME_PLACEHOLDER_REGEXP_=new RegExp(this.FUNCTION_NAME_PLACEHOLDER_,"g")};Blockly.Generator.NAME_TYPE="generated_function";Blockly.Generator.prototype.INFINITE_LOOP_TRAP=null;Blockly.Generator.prototype.STATEMENT_PREFIX=null;Blockly.Generator.prototype.STATEMENT_SUFFIX=null;Blockly.Generator.prototype.INDENT=" ";Blockly.Generator.prototype.COMMENT_WRAP=60;Blockly.Generator.prototype.ORDER_OVERRIDES=[]; -Blockly.Generator.prototype.workspaceToCode=function(a){a||(console.warn("No workspace specified in workspaceToCode call. Guessing."),a=Blockly.getMainWorkspace());var b=[];this.init(a);a=a.getTopBlocks(!0);for(var c=0,d;d=a[c];c++){var e=this.blockToCode(d);Array.isArray(e)&&(e=e[0]);e&&(d.outputConnection&&(e=this.scrubNakedValue(e),this.STATEMENT_PREFIX&&!d.suppressPrefixSuffix&&(e=this.injectId(this.STATEMENT_PREFIX,d)+e),this.STATEMENT_SUFFIX&&!d.suppressPrefixSuffix&&(e+=this.injectId(this.STATEMENT_SUFFIX, -d))),b.push(e))}b=b.join("\n");b=this.finish(b);b=b.replace(/^\s+\n/,"");b=b.replace(/\n\s+$/,"\n");return b=b.replace(/[ \t]+\n/g,"\n")};Blockly.Generator.prototype.prefixLines=function(a,b){return b+a.replace(/(?!\n$)\n/g,"\n"+b)};Blockly.Generator.prototype.allNestedComments=function(a){var b=[];a=a.getDescendants(!0);for(var c=0;ca&&(a=(a=this.getParent())?a.getDepth()+1:0,this.setDepth_(a));return a};Blockly.tree.BaseNode.prototype.setDepth_=function(a){if(a!=this.depth_){this.depth_=a;var b=this.getRowElement();if(b){var c=this.getPixelIndent_()+"px";this.rightToLeft_?b.style.paddingRight=c:b.style.paddingLeft=c}this.forEachChild(function(b){b.setDepth_(a+1)})}};Blockly.tree.BaseNode.prototype.contains=function(a){for(;a;){if(a==this)return!0;a=a.getParent()}return!1}; -Blockly.tree.BaseNode.prototype.getChildren=function(){var a=[];this.forEachChild(function(b){a.push(b)});return a};Blockly.tree.BaseNode.prototype.getPreviousSibling=function(){return this.previousSibling_};Blockly.tree.BaseNode.prototype.getNextSibling=function(){return this.nextSibling_};Blockly.tree.BaseNode.prototype.isLastSibling=function(){return!this.nextSibling_};Blockly.tree.BaseNode.prototype.isSelected=function(){return this.selected_}; -Blockly.tree.BaseNode.prototype.select=function(){var a=this.getTree();a&&a.setSelectedItem(this)};Blockly.tree.BaseNode.prototype.setSelected=function(a){if(this.selected_!=a){this.selected_=a;this.updateRow();var b=this.getElement();b&&(Blockly.utils.aria.setState(b,Blockly.utils.aria.State.SELECTED,a),a&&(a=this.getTree().getElement(),Blockly.utils.aria.setState(a,Blockly.utils.aria.State.ACTIVEDESCENDANT,this.getId())))}}; -Blockly.tree.BaseNode.prototype.setExpanded=function(a){var b=a!=this.expanded_,c;this.expanded_=a;var d=this.getTree(),e=this.getElement();if(this.hasChildren()){if(!a&&d&&this.contains(d.getSelectedItem())&&this.select(),e){if(c=this.getChildrenElement())Blockly.utils.style.setElementShown(c,a),Blockly.utils.aria.setState(e,Blockly.utils.aria.State.EXPANDED,a),a&&this.isInDocument()&&!c.hasChildNodes()&&(this.forEachChild(function(a){c.appendChild(a.toDom())}),this.forEachChild(function(a){a.enterDocument()})); -this.updateExpandIcon()}}else(c=this.getChildrenElement())&&Blockly.utils.style.setElementShown(c,!1);e&&this.updateIcon_();b&&(a?this.doNodeExpanded():this.doNodeCollapsed())};Blockly.tree.BaseNode.prototype.doNodeExpanded=function(){};Blockly.tree.BaseNode.prototype.doNodeCollapsed=function(){};Blockly.tree.BaseNode.prototype.toggle=function(){this.setExpanded(!this.expanded_)}; -Blockly.tree.BaseNode.prototype.toDom=function(){var a=this.expanded_&&this.hasChildren(),b=document.createElement("div");b.style.backgroundPosition=this.getBackgroundPosition();a||(b.style.display="none");a&&this.forEachChild(function(a){b.appendChild(a.toDom())});a=document.createElement("div");a.id=this.getId();a.appendChild(this.getRowDom());a.appendChild(b);return a};Blockly.tree.BaseNode.prototype.getPixelIndent_=function(){return Math.max(0,(this.getDepth()-1)*this.config_.indentWidth)}; -Blockly.tree.BaseNode.prototype.getRowDom=function(){var a=document.createElement("div");a.className=this.getRowClassName();a.style["padding-"+(this.rightToLeft_?"right":"left")]=this.getPixelIndent_()+"px";a.appendChild(this.getIconDom());a.appendChild(this.getLabelDom());return a};Blockly.tree.BaseNode.prototype.getRowClassName=function(){var a="";this.isSelected()&&(a=" "+(this.config_.cssSelectedRow||""));return this.config_.cssTreeRow+a}; -Blockly.tree.BaseNode.prototype.getLabelDom=function(){var a=document.createElement("span");a.className=this.config_.cssItemLabel||"";a.textContent=this.content;return a};Blockly.tree.BaseNode.prototype.getIconDom=function(){var a=document.createElement("span");a.style.display="inline-block";a.className=this.getCalculatedIconClass();return a};Blockly.tree.BaseNode.prototype.getCalculatedIconClass=function(){throw Error("unimplemented abstract method");}; -Blockly.tree.BaseNode.prototype.getBackgroundPosition=function(){return(this.isLastSibling()?"-100":(this.getDepth()-1)*this.config_.indentWidth)+"px 0"};Blockly.tree.BaseNode.prototype.getElement=function(){var a=Blockly.tree.BaseNode.superClass_.getElement.call(this);a||(a=document.getElementById(this.getId()),this.setElementInternal(a));return a};Blockly.tree.BaseNode.prototype.getRowElement=function(){var a=this.getElement();return a?a.firstChild:null}; -Blockly.tree.BaseNode.prototype.getIconElement=function(){var a=this.getRowElement();return a?a.firstChild:null};Blockly.tree.BaseNode.prototype.getLabelElement=function(){var a=this.getRowElement();return a&&a.lastChild?a.lastChild.previousSibling:null};Blockly.tree.BaseNode.prototype.getChildrenElement=function(){var a=this.getElement();return a?a.lastChild:null};Blockly.tree.BaseNode.prototype.updateRow=function(){var a=this.getRowElement();a&&(a.className=this.getRowClassName())}; -Blockly.tree.BaseNode.prototype.updateExpandIcon=function(){var a=this.getChildrenElement();a&&(a.style.backgroundPosition=this.getBackgroundPosition())};Blockly.tree.BaseNode.prototype.updateIcon_=function(){this.getIconElement().className=this.getCalculatedIconClass()};Blockly.tree.BaseNode.prototype.onMouseDown=function(a){"expand"==a.target.getAttribute("type")&&this.hasChildren()?this.isUserCollapsible_&&this.toggle():(this.select(),this.updateRow())}; -Blockly.tree.BaseNode.prototype.onClick_=function(a){a.preventDefault()};Blockly.tree.BaseNode.prototype.onKeyDown=function(a){var b=!0;switch(a.keyCode){case Blockly.utils.KeyCodes.RIGHT:if(a.altKey)break;b=this.selectChild();break;case Blockly.utils.KeyCodes.LEFT:if(a.altKey)break;b=this.selectParent();break;case Blockly.utils.KeyCodes.DOWN:b=this.selectNext();break;case Blockly.utils.KeyCodes.UP:b=this.selectPrevious();break;default:b=!1}b&&a.preventDefault();return b}; -Blockly.tree.BaseNode.prototype.selectNext=function(){var a=this.getNextShownNode();a&&a.select();return!0};Blockly.tree.BaseNode.prototype.selectPrevious=function(){var a=this.getPreviousShownNode();a&&a.select();return!0};Blockly.tree.BaseNode.prototype.selectParent=function(){if(this.hasChildren()&&this.expanded_&&this.isUserCollapsible_)this.setExpanded(!1);else{var a=this.getParent(),b=this.getTree();a&&a!=b&&a.select()}return!0}; -Blockly.tree.BaseNode.prototype.selectChild=function(){return this.hasChildren()?(this.expanded_?this.getChildAt(0).select():this.setExpanded(!0),!0):!1};Blockly.tree.BaseNode.prototype.getLastShownDescendant=function(){return this.expanded_&&this.hasChildren()?this.getChildAt(this.getChildCount()-1).getLastShownDescendant():this}; -Blockly.tree.BaseNode.prototype.getNextShownNode=function(){if(this.hasChildren()&&this.expanded_)return this.getChildAt(0);for(var a=this,b;a!=this.getTree();){b=a.getNextSibling();if(null!=b)return b;a=a.getParent()}return null};Blockly.tree.BaseNode.prototype.getPreviousShownNode=function(){var a=this.getPreviousSibling();if(null!=a)return a.getLastShownDescendant();a=this.getParent();var b=this.getTree();return a==b||this==b?null:a}; -Blockly.tree.BaseNode.prototype.setTreeInternal=function(a){this.tree!=a&&(this.tree=a,this.forEachChild(function(b){b.setTreeInternal(a)}))};Blockly.tree.TreeNode=function(a,b,c){this.toolbox_=a;Blockly.tree.BaseNode.call(this,b,c)};Blockly.utils.object.inherits(Blockly.tree.TreeNode,Blockly.tree.BaseNode);Blockly.tree.TreeNode.prototype.getTree=function(){if(this.tree)return this.tree;var a=this.getParent();return a&&(a=a.getTree())?(this.setTreeInternal(a),a):null}; -Blockly.tree.TreeNode.prototype.getCalculatedIconClass=function(){var a=this.expanded_;if(a&&this.expandedIconClass)return this.expandedIconClass;var b=this.iconClass;if(!a&&b)return b;b=this.config_;if(this.hasChildren()){if(a&&b.cssExpandedFolderIcon)return b.cssTreeIcon+" "+b.cssExpandedFolderIcon;if(!a&&b.cssCollapsedFolderIcon)return b.cssTreeIcon+" "+b.cssCollapsedFolderIcon}else if(b.cssFileIcon)return b.cssTreeIcon+" "+b.cssFileIcon;return""}; -Blockly.tree.TreeNode.prototype.onClick_=function(a){this.hasChildren()&&this.isUserCollapsible_?(this.toggle(),this.select()):this.isSelected()?this.getTree().setSelectedItem(null):this.select();this.updateRow()};Blockly.tree.TreeNode.prototype.onMouseDown=function(a){}; -Blockly.tree.TreeNode.prototype.onKeyDown=function(a){if(this.tree.toolbox_.horizontalLayout_){var b={},c=Blockly.utils.KeyCodes.DOWN,d=Blockly.utils.KeyCodes.UP;b[Blockly.utils.KeyCodes.RIGHT]=this.rightToLeft_?d:c;b[Blockly.utils.KeyCodes.LEFT]=this.rightToLeft_?c:d;b[Blockly.utils.KeyCodes.UP]=Blockly.utils.KeyCodes.LEFT;b[Blockly.utils.KeyCodes.DOWN]=Blockly.utils.KeyCodes.RIGHT;Object.defineProperties(a,{keyCode:{value:b[a.keyCode]||a.keyCode}})}return Blockly.tree.TreeNode.superClass_.onKeyDown.call(this, -a)};Blockly.tree.TreeNode.prototype.onSizeChanged=function(a){this.onSizeChanged_=a};Blockly.tree.TreeNode.prototype.resizeToolbox_=function(){this.onSizeChanged_&&this.onSizeChanged_.call(this.toolbox_)};Blockly.tree.TreeNode.prototype.doNodeExpanded=Blockly.tree.TreeNode.prototype.resizeToolbox_;Blockly.tree.TreeNode.prototype.doNodeCollapsed=Blockly.tree.TreeNode.prototype.resizeToolbox_;Blockly.tree.TreeControl=function(a,b){this.toolbox_=a;this.onKeydownWrapper_=this.onClickWrapper_=this.onBlurWrapper_=this.onFocusWrapper_=null;Blockly.tree.BaseNode.call(this,"",b);this.selected_=this.expanded_=!0;this.selectedItem_=this};Blockly.utils.object.inherits(Blockly.tree.TreeControl,Blockly.tree.BaseNode);Blockly.tree.TreeControl.prototype.getTree=function(){return this};Blockly.tree.TreeControl.prototype.getToolbox=function(){return this.toolbox_}; -Blockly.tree.TreeControl.prototype.getDepth=function(){return 0};Blockly.tree.TreeControl.prototype.handleFocus_=function(a){this.focused_=!0;a=this.getElement();Blockly.utils.dom.addClass(a,"focused");this.selectedItem_&&this.selectedItem_.select()};Blockly.tree.TreeControl.prototype.handleBlur_=function(a){this.focused_=!1;a=this.getElement();Blockly.utils.dom.removeClass(a,"focused")};Blockly.tree.TreeControl.prototype.hasFocus=function(){return this.focused_}; -Blockly.tree.TreeControl.prototype.setExpanded=function(a){this.expanded_=a};Blockly.tree.TreeControl.prototype.getIconElement=function(){var a=this.getRowElement();return a?a.firstChild:null};Blockly.tree.TreeControl.prototype.updateExpandIcon=function(){};Blockly.tree.TreeControl.prototype.getRowClassName=function(){return Blockly.tree.TreeControl.superClass_.getRowClassName.call(this)+" "+this.config_.cssHideRoot}; -Blockly.tree.TreeControl.prototype.getCalculatedIconClass=function(){var a=this.expanded_;if(a&&this.expandedIconClass)return this.expandedIconClass;var b=this.iconClass;return!a&&b?b:a&&this.config_.cssExpandedRootIcon?this.config_.cssTreeIcon+" "+this.config_.cssExpandedRootIcon:""}; -Blockly.tree.TreeControl.prototype.setSelectedItem=function(a){if(a!=this.selectedItem_&&(!this.onBeforeSelected_||this.onBeforeSelected_.call(this.toolbox_,a))){var b=this.getSelectedItem();this.selectedItem_&&this.selectedItem_.setSelected(!1);(this.selectedItem_=a)&&a.setSelected(!0);this.onAfterSelected_&&this.onAfterSelected_.call(this.toolbox_,b,a)}};Blockly.tree.TreeControl.prototype.onBeforeSelected=function(a){this.onBeforeSelected_=a}; -Blockly.tree.TreeControl.prototype.onAfterSelected=function(a){this.onAfterSelected_=a};Blockly.tree.TreeControl.prototype.getSelectedItem=function(){return this.selectedItem_};Blockly.tree.TreeControl.prototype.initAccessibility=function(){Blockly.tree.TreeControl.superClass_.initAccessibility.call(this);var a=this.getElement();Blockly.utils.aria.setRole(a,Blockly.utils.aria.Role.TREE);Blockly.utils.aria.setState(a,Blockly.utils.aria.State.LABELLEDBY,this.getLabelElement().id)}; -Blockly.tree.TreeControl.prototype.enterDocument=function(){Blockly.tree.TreeControl.superClass_.enterDocument.call(this);var a=this.getElement();a.className=this.config_.cssRoot;a.setAttribute("hideFocus","true");this.attachEvents_();this.initAccessibility()};Blockly.tree.TreeControl.prototype.exitDocument=function(){Blockly.tree.TreeControl.superClass_.exitDocument.call(this);this.detachEvents_()}; -Blockly.tree.TreeControl.prototype.attachEvents_=function(){var a=this.getElement();a.tabIndex=0;this.onFocusWrapper_=Blockly.bindEvent_(a,"focus",this,this.handleFocus_);this.onBlurWrapper_=Blockly.bindEvent_(a,"blur",this,this.handleBlur_);this.onClickWrapper_=Blockly.bindEventWithChecks_(a,"click",this,this.handleMouseEvent_);this.onKeydownWrapper_=Blockly.bindEvent_(a,"keydown",this,this.handleKeyEvent_)}; -Blockly.tree.TreeControl.prototype.detachEvents_=function(){this.onFocusWrapper_&&(Blockly.unbindEvent_(this.onFocusWrapper_),this.onFocusWrapper_=null);this.onBlurWrapper_&&(Blockly.unbindEvent_(this.onBlurWrapper_),this.onBlurWrapper_=null);this.onClickWrapper_&&(Blockly.unbindEvent_(this.onClickWrapper_),this.onClickWrapper_=null);this.onKeydownWrapper_&&(Blockly.unbindEvent_(this.onKeydownWrapper_),this.onKeydownWrapper_=null)}; -Blockly.tree.TreeControl.prototype.handleMouseEvent_=function(a){var b=this.getNodeFromEvent_(a);if(b)switch(a.type){case "mousedown":b.onMouseDown(a);break;case "click":b.onClick_(a)}};Blockly.tree.TreeControl.prototype.handleKeyEvent_=function(a){var b=!1;if(b=this.selectedItem_&&this.selectedItem_.onKeyDown(a)||b)Blockly.utils.style.scrollIntoContainerView(this.selectedItem_.getElement(),this.getElement().parentNode),a.preventDefault();return b}; -Blockly.tree.TreeControl.prototype.getNodeFromEvent_=function(a){for(var b=a.target;null!=b;){if(a=Blockly.tree.BaseNode.allNodes[b.id])return a;if(b==this.getElement())break;if(b.getAttribute("role")==Blockly.utils.aria.Role.GROUP)break;b=b.parentNode}return null};Blockly.tree.TreeControl.prototype.createNode=function(a){return new Blockly.tree.TreeNode(this.toolbox_,a||"",this.config_)};Blockly.Toolbox=function(a){this.workspace_=a;this.RTL=a.options.RTL;this.horizontalLayout_=a.options.horizontalLayout;this.toolboxPosition=a.options.toolboxPosition;this.config_={indentWidth:19,cssRoot:"blocklyTreeRoot",cssHideRoot:"blocklyHidden",cssTreeRow:"blocklyTreeRow",cssItemLabel:"blocklyTreeLabel",cssTreeIcon:"blocklyTreeIcon",cssExpandedFolderIcon:"blocklyTreeIconOpen",cssFileIcon:"blocklyTreeIconNone",cssSelectedRow:"blocklyTreeSelected"};this.treeSeparatorConfig_={cssTreeRow:"blocklyTreeSeparator"}; -this.horizontalLayout_&&(this.config_.cssTreeRow+=a.RTL?" blocklyHorizontalTreeRtl":" blocklyHorizontalTree",this.treeSeparatorConfig_.cssTreeRow="blocklyTreeSeparatorHorizontal "+(a.RTL?"blocklyHorizontalTreeRtl":"blocklyHorizontalTree"),this.config_.cssTreeIcon="");this.flyout_=null};Blockly.Toolbox.prototype.width=0;Blockly.Toolbox.prototype.height=0;Blockly.Toolbox.prototype.selectedOption_=null;Blockly.Toolbox.prototype.lastCategory_=null; -Blockly.Toolbox.prototype.init=function(){var a=this.workspace_,b=this.workspace_.getParentSvg();this.HtmlDiv=document.createElement("div");this.HtmlDiv.className="blocklyToolboxDiv blocklyNonSelectable";this.HtmlDiv.setAttribute("dir",a.RTL?"RTL":"LTR");b.parentNode.insertBefore(this.HtmlDiv,b);var c=a.getThemeManager();c.subscribe(this.HtmlDiv,"toolboxBackgroundColour","background-color");c.subscribe(this.HtmlDiv,"toolboxForegroundColour","color");Blockly.bindEventWithChecks_(this.HtmlDiv,"mousedown", -this,function(a){Blockly.utils.isRightButton(a)||a.target==this.HtmlDiv?Blockly.hideChaff(!1):Blockly.hideChaff(!0);Blockly.Touch.clearTouchIdentifier()},!1,!0);c=new Blockly.Options({parentWorkspace:a,rtl:a.RTL,oneBasedIndex:a.options.oneBasedIndex,horizontalLayout:a.horizontalLayout,renderer:a.options.renderer,rendererOverrides:a.options.rendererOverrides});c.toolboxPosition=a.options.toolboxPosition;if(a.horizontalLayout){if(!Blockly.HorizontalFlyout)throw Error("Missing require for Blockly.HorizontalFlyout"); -this.flyout_=new Blockly.HorizontalFlyout(c)}else{if(!Blockly.VerticalFlyout)throw Error("Missing require for Blockly.VerticalFlyout");this.flyout_=new Blockly.VerticalFlyout(c)}if(!this.flyout_)throw Error("One of Blockly.VerticalFlyout or Blockly.Horizontal must berequired.");Blockly.utils.dom.insertAfter(this.flyout_.createDom("svg"),b);this.flyout_.init(a);this.config_.cleardotPath=a.options.pathToMedia+"1x1.gif";this.config_.cssCollapsedFolderIcon="blocklyTreeIconClosed"+(a.RTL?"Rtl":"Ltr"); -this.renderTree(a.options.languageTree)}; -Blockly.Toolbox.prototype.renderTree=function(a){this.tree_&&(this.tree_.dispose(),this.lastCategory_=null);var b=new Blockly.tree.TreeControl(this,this.config_);this.tree_=b;b.setSelectedItem(null);b.onBeforeSelected(this.handleBeforeTreeSelected_);b.onAfterSelected(this.handleAfterTreeSelected_);var c=null;if(a){this.tree_.blocks=[];this.hasColours_=!1;c=this.syncTrees_(a,this.tree_,this.workspace_.options.pathToMedia);if(this.tree_.blocks.length)throw Error("Toolbox cannot have both blocks and categories in the root level.");this.workspace_.resizeContents()}b.render(this.HtmlDiv); -c&&b.setSelectedItem(c);this.addColour_();this.position();this.horizontalLayout_&&Blockly.utils.aria.setState(this.tree_.getElement(),Blockly.utils.aria.State.ORIENTATION,"horizontal")};Blockly.Toolbox.prototype.handleBeforeTreeSelected_=function(a){if(a==this.tree_)return!1;this.lastCategory_&&(this.lastCategory_.getRowElement().style.backgroundColor="");if(a){var b=a.hexColour||"#57e";a.getRowElement().style.backgroundColor=b;this.addColour_(a)}return!0}; -Blockly.Toolbox.prototype.handleAfterTreeSelected_=function(a,b){b&&b.blocks&&b.blocks.length?(this.flyout_.show(b.blocks),this.lastCategory_!=b&&this.flyout_.scrollToStart(),this.workspace_.keyboardAccessibilityMode&&Blockly.navigation.setState(Blockly.navigation.STATE_TOOLBOX)):(this.flyout_.hide(),!this.workspace_.keyboardAccessibilityMode||b instanceof Blockly.Toolbox.TreeSeparator||Blockly.navigation.setState(Blockly.navigation.STATE_WS));a!=b&&a!=this&&(a=new Blockly.Events.Ui(null,"category", -a&&a.content,b&&b.content),a.workspaceId=this.workspace_.id,Blockly.Events.fire(a));b&&(this.lastCategory_=b)};Blockly.Toolbox.prototype.handleNodeSizeChanged_=function(){Blockly.svgResize(this.workspace_)}; -Blockly.Toolbox.prototype.onBlocklyAction=function(a){var b=this.tree_.getSelectedItem();if(!b)return!1;switch(a.name){case Blockly.navigation.actionNames.PREVIOUS:return b.selectPrevious();case Blockly.navigation.actionNames.OUT:return b.selectParent();case Blockly.navigation.actionNames.NEXT:return b.selectNext();case Blockly.navigation.actionNames.IN:return b.selectChild();default:return!1}}; -Blockly.Toolbox.prototype.dispose=function(){this.flyout_.dispose();this.tree_.dispose();this.workspace_.getThemeManager().unsubscribe(this.HtmlDiv);Blockly.utils.dom.removeNode(this.HtmlDiv);this.lastCategory_=null};Blockly.Toolbox.prototype.getWidth=function(){return this.width};Blockly.Toolbox.prototype.getHeight=function(){return this.height};Blockly.Toolbox.prototype.getFlyout=function(){return this.flyout_}; -Blockly.Toolbox.prototype.position=function(){var a=this.HtmlDiv;if(a){var b=Blockly.svgSize(this.workspace_.getParentSvg());this.horizontalLayout_?(a.style.left="0",a.style.height="auto",a.style.width=b.width+"px",this.height=a.offsetHeight,this.toolboxPosition==Blockly.TOOLBOX_AT_TOP?a.style.top="0":a.style.bottom="0"):(this.toolboxPosition==Blockly.TOOLBOX_AT_RIGHT?a.style.right="0":a.style.left="0",a.style.height=b.height+"px",this.width=a.offsetWidth);this.flyout_.position()}}; -Blockly.Toolbox.prototype.syncTrees_=function(a,b,c){for(var d=null,e=null,f=0,g;g=a.childNodes[f];f++)if(g.tagName)switch(g.tagName.toUpperCase()){case "CATEGORY":e=Blockly.utils.replaceMessageReferences(g.getAttribute("name"));var h=this.tree_.createNode(e);h.onSizeChanged(this.handleNodeSizeChanged_);h.blocks=[];b.add(h);var k=g.getAttribute("custom");k?h.blocks=k:(k=this.syncTrees_(g,h,c))&&(d=k);k=g.getAttribute("categorystyle");var l=g.getAttribute("colour");l&&k?(h.hexColour="",console.warn('Toolbox category "'+ -e+'" can not have both a style and a colour')):k?this.setColourFromStyle_(k,h,e):this.setColour_(l,h,e);"true"==g.getAttribute("expanded")?(h.blocks.length&&(d=h),h.setExpanded(!0)):h.setExpanded(!1);e=g;break;case "SEP":if(e&&"CATEGORY"==e.tagName.toUpperCase()){b.add(new Blockly.Toolbox.TreeSeparator(this.treeSeparatorConfig_));break}case "BLOCK":case "SHADOW":case "LABEL":case "BUTTON":b.blocks.push(g),e=g}return d}; -Blockly.Toolbox.prototype.setColour_=function(a,b,c){a=Blockly.utils.replaceMessageReferences(a);if(null===a||""===a)b.hexColour="";else{var d=Number(a);isNaN(d)?(d=Blockly.utils.colour.parse(a))?(b.hexColour=d,this.hasColours_=!0):(b.hexColour="",console.warn('Toolbox category "'+c+'" has unrecognized colour attribute: '+a)):(b.hexColour=Blockly.hueToHex(d),this.hasColours_=!0)}}; -Blockly.Toolbox.prototype.setColourFromStyle_=function(a,b,c){b.styleName=a;var d=this.workspace_.getTheme();a&&d&&((d=d.categoryStyles[a])&&d.colour?this.setColour_(d.colour,b,c):console.warn('Style "'+a+'" must exist and contain a colour value'))};Blockly.Toolbox.prototype.updateColourFromTheme_=function(a){if(a=a||this.tree_){a=a.getChildren(!1);for(var b=0,c;c=a[b];b++)c.styleName&&(this.setColourFromStyle_(c.styleName,c,""),this.addColour_()),this.updateColourFromTheme_(c)}}; -Blockly.Toolbox.prototype.updateColourFromTheme=function(){var a=this.tree_;a&&(this.updateColourFromTheme_(a),this.updateSelectedItemColour_(a))};Blockly.Toolbox.prototype.updateSelectedItemColour_=function(a){if(a=a.getSelectedItem()){var b=a.hexColour||"#57e";a.getRowElement().style.backgroundColor=b;this.addColour_(a)}}; -Blockly.Toolbox.prototype.addColour_=function(a){a=(a||this.tree_).getChildren(!1);for(var b=0,c;c=a[b];b++){var d=c.getRowElement();if(d){var e=this.hasColours_?"8px solid "+(c.hexColour||"#ddd"):"none";this.workspace_.RTL?d.style.borderRight=e:d.style.borderLeft=e}this.addColour_(c)}};Blockly.Toolbox.prototype.clearSelection=function(){this.tree_.setSelectedItem(null)};Blockly.Toolbox.prototype.addStyle=function(a){Blockly.utils.dom.addClass(this.HtmlDiv,a)}; -Blockly.Toolbox.prototype.removeStyle=function(a){Blockly.utils.dom.removeClass(this.HtmlDiv,a)}; -Blockly.Toolbox.prototype.getClientRect=function(){if(!this.HtmlDiv)return null;var a=this.HtmlDiv.getBoundingClientRect(),b=a.top,c=b+a.height,d=a.left;a=d+a.width;return this.toolboxPosition==Blockly.TOOLBOX_AT_TOP?new Blockly.utils.Rect(-1E7,c,-1E7,1E7):this.toolboxPosition==Blockly.TOOLBOX_AT_BOTTOM?new Blockly.utils.Rect(b,1E7,-1E7,1E7):this.toolboxPosition==Blockly.TOOLBOX_AT_LEFT?new Blockly.utils.Rect(-1E7,1E7,-1E7,a):new Blockly.utils.Rect(-1E7,1E7,d,1E7)}; -Blockly.Toolbox.prototype.refreshSelection=function(){var a=this.tree_.getSelectedItem();a&&a.blocks&&this.flyout_.show(a.blocks)};Blockly.Toolbox.prototype.selectFirstCategory=function(){this.tree_.getSelectedItem()||this.tree_.selectChild()};Blockly.Toolbox.TreeSeparator=function(a){Blockly.tree.TreeNode.call(this,null,"",a)};Blockly.utils.object.inherits(Blockly.Toolbox.TreeSeparator,Blockly.tree.TreeNode); -Blockly.Css.register([".blocklyToolboxDelete {",'cursor: url("<<>>/handdelete.cur"), auto;',"}",".blocklyToolboxGrab {",'cursor: url("<<>>/handclosed.cur"), auto;',"cursor: grabbing;","cursor: -webkit-grabbing;","}",".blocklyToolboxDiv {","background-color: #ddd;","overflow-x: visible;","overflow-y: auto;","position: absolute;","z-index: 70;","-webkit-tap-highlight-color: transparent;","}",".blocklyTreeRoot {","padding: 4px 0;","}",".blocklyTreeRoot:focus {","outline: none;","}",".blocklyTreeRow {", -"height: 22px;","line-height: 22px;","margin-bottom: 3px;","padding-right: 8px;","white-space: nowrap;","}",".blocklyHorizontalTree {","float: left;","margin: 1px 5px 8px 0;","}",".blocklyHorizontalTreeRtl {","float: right;","margin: 1px 0 8px 5px;","}",'.blocklyToolboxDiv[dir="RTL"] .blocklyTreeRow {',"margin-left: 8px;","}",".blocklyTreeRow:not(.blocklyTreeSelected):hover {","background-color: rgba(255, 255, 255, 0.2);","}",".blocklyTreeSeparator {","border-bottom: solid #e5e5e5 1px;","height: 0;", -"margin: 5px 0;","}",".blocklyTreeSeparatorHorizontal {","border-right: solid #e5e5e5 1px;","width: 0;","padding: 5px 0;","margin: 0 5px;","}",".blocklyTreeIcon {","background-image: url(<<>>/sprites.png);","height: 16px;","vertical-align: middle;","width: 16px;","}",".blocklyTreeIconClosedLtr {","background-position: -32px -1px;","}",".blocklyTreeIconClosedRtl {","background-position: 0 -1px;","}",".blocklyTreeIconOpen {","background-position: -16px -1px;","}",".blocklyTreeSelected>.blocklyTreeIconClosedLtr {", -"background-position: -32px -17px;","}",".blocklyTreeSelected>.blocklyTreeIconClosedRtl {","background-position: 0 -17px;","}",".blocklyTreeSelected>.blocklyTreeIconOpen {","background-position: -16px -17px;","}",".blocklyTreeIconNone,",".blocklyTreeSelected>.blocklyTreeIconNone {","background-position: -48px -1px;","}",".blocklyTreeLabel {","cursor: default;","font-family: sans-serif;","font-size: 16px;","padding: 0 3px;","vertical-align: middle;","}",".blocklyToolboxDelete .blocklyTreeLabel {", -'cursor: url("<<>>/handdelete.cur"), auto;',"}",".blocklyTreeSelected .blocklyTreeLabel {","color: #fff;","}"]);Blockly.Trashcan=function(a){this.workspace_=a;this.contents_=[];this.flyout=null;if(!(0>=this.workspace_.options.maxTrashcanContents)){a=new Blockly.Options({scrollbars:!0,parentWorkspace:this.workspace_,rtl:this.workspace_.RTL,oneBasedIndex:this.workspace_.options.oneBasedIndex,renderer:this.workspace_.options.renderer,rendererOverrides:this.workspace_.options.rendererOverrides});if(this.workspace_.horizontalLayout){a.toolboxPosition=this.workspace_.toolboxPosition==Blockly.TOOLBOX_AT_TOP?Blockly.TOOLBOX_AT_BOTTOM: -Blockly.TOOLBOX_AT_TOP;if(!Blockly.HorizontalFlyout)throw Error("Missing require for Blockly.HorizontalFlyout");this.flyout=new Blockly.HorizontalFlyout(a)}else{a.toolboxPosition=this.workspace_.toolboxPosition==Blockly.TOOLBOX_AT_RIGHT?Blockly.TOOLBOX_AT_LEFT:Blockly.TOOLBOX_AT_RIGHT;if(!Blockly.VerticalFlyout)throw Error("Missing require for Blockly.VerticalFlyout");this.flyout=new Blockly.VerticalFlyout(a)}this.workspace_.addChangeListener(this.onDelete_.bind(this))}}; -Blockly.Trashcan.prototype.WIDTH_=47;Blockly.Trashcan.prototype.BODY_HEIGHT_=44;Blockly.Trashcan.prototype.LID_HEIGHT_=16;Blockly.Trashcan.prototype.MARGIN_BOTTOM_=20;Blockly.Trashcan.prototype.MARGIN_SIDE_=20;Blockly.Trashcan.prototype.MARGIN_HOTSPOT_=10;Blockly.Trashcan.prototype.SPRITE_LEFT_=0;Blockly.Trashcan.prototype.SPRITE_TOP_=32;Blockly.Trashcan.prototype.HAS_BLOCKS_LID_ANGLE_=.1;Blockly.Trashcan.ANIMATION_LENGTH_=80;Blockly.Trashcan.ANIMATION_FRAMES_=4;Blockly.Trashcan.OPACITY_MIN_=.4; -Blockly.Trashcan.OPACITY_MAX_=.8;Blockly.Trashcan.MAX_LID_ANGLE_=45;Blockly.Trashcan.prototype.isOpen=!1;Blockly.Trashcan.prototype.minOpenness_=0;Blockly.Trashcan.prototype.svgGroup_=null;Blockly.Trashcan.prototype.svgLid_=null;Blockly.Trashcan.prototype.lidTask_=0;Blockly.Trashcan.prototype.lidOpen_=0;Blockly.Trashcan.prototype.left_=0;Blockly.Trashcan.prototype.top_=0; -Blockly.Trashcan.prototype.createDom=function(){this.svgGroup_=Blockly.utils.dom.createSvgElement("g",{"class":"blocklyTrash"},null);var a=String(Math.random()).substring(2);var b=Blockly.utils.dom.createSvgElement("clipPath",{id:"blocklyTrashBodyClipPath"+a},this.svgGroup_);Blockly.utils.dom.createSvgElement("rect",{width:this.WIDTH_,height:this.BODY_HEIGHT_,y:this.LID_HEIGHT_},b);var c=Blockly.utils.dom.createSvgElement("image",{width:Blockly.SPRITE.width,x:-this.SPRITE_LEFT_,height:Blockly.SPRITE.height, -y:-this.SPRITE_TOP_,"clip-path":"url(#blocklyTrashBodyClipPath"+a+")"},this.svgGroup_);c.setAttributeNS(Blockly.utils.dom.XLINK_NS,"xlink:href",this.workspace_.options.pathToMedia+Blockly.SPRITE.url);b=Blockly.utils.dom.createSvgElement("clipPath",{id:"blocklyTrashLidClipPath"+a},this.svgGroup_);Blockly.utils.dom.createSvgElement("rect",{width:this.WIDTH_,height:this.LID_HEIGHT_},b);this.svgLid_=Blockly.utils.dom.createSvgElement("image",{width:Blockly.SPRITE.width,x:-this.SPRITE_LEFT_,height:Blockly.SPRITE.height, -y:-this.SPRITE_TOP_,"clip-path":"url(#blocklyTrashLidClipPath"+a+")"},this.svgGroup_);this.svgLid_.setAttributeNS(Blockly.utils.dom.XLINK_NS,"xlink:href",this.workspace_.options.pathToMedia+Blockly.SPRITE.url);Blockly.bindEventWithChecks_(this.svgGroup_,"mouseup",this,this.click);Blockly.bindEvent_(c,"mouseover",this,this.mouseOver_);Blockly.bindEvent_(c,"mouseout",this,this.mouseOut_);this.animateLid_();return this.svgGroup_}; -Blockly.Trashcan.prototype.init=function(a){0this.minOpenness_&&1>this.lidOpen_&&(this.lidTask_=setTimeout(this.animateLid_.bind(this),Blockly.Trashcan.ANIMATION_LENGTH_/ -a))};Blockly.Trashcan.prototype.setLidAngle_=function(a){var b=this.workspace_.toolboxPosition==Blockly.TOOLBOX_AT_RIGHT||this.workspace_.horizontalLayout&&this.workspace_.RTL;this.svgLid_.setAttribute("transform","rotate("+(b?-a:a)+","+(b?4:this.WIDTH_-4)+","+(this.LID_HEIGHT_-2)+")")};Blockly.Trashcan.prototype.setMinOpenness_=function(a){this.minOpenness_=a;this.isOpen||this.setLidAngle_(a*Blockly.Trashcan.MAX_LID_ANGLE_)};Blockly.Trashcan.prototype.close=function(){this.setOpen(!1)}; -Blockly.Trashcan.prototype.click=function(){if(this.contents_.length){for(var a=[],b=0,c;c=this.contents_[b];b++)a[b]=Blockly.Xml.textToDom(c);this.flyout.show(a)}};Blockly.Trashcan.prototype.mouseOver_=function(){this.contents_.length&&this.setOpen(!0)};Blockly.Trashcan.prototype.mouseOut_=function(){this.setOpen(!1)}; -Blockly.Trashcan.prototype.onDelete_=function(a){if(!(0>=this.workspace_.options.maxTrashcanContents)&&a.type==Blockly.Events.BLOCK_DELETE&&"shadow"!=a.oldXml.tagName.toLowerCase()&&(a=this.cleanBlockXML_(a.oldXml),-1==this.contents_.indexOf(a))){for(this.contents_.unshift(a);this.contents_.length>this.workspace_.options.maxTrashcanContents;)this.contents_.pop();this.setMinOpenness_(this.HAS_BLOCKS_LID_ANGLE_)}}; -Blockly.Trashcan.prototype.cleanBlockXML_=function(a){for(var b=a=a.cloneNode(!0);b;){b.removeAttribute&&(b.removeAttribute("x"),b.removeAttribute("y"),b.removeAttribute("id"),b.removeAttribute("disabled"),"comment"==b.nodeName&&(b.removeAttribute("h"),b.removeAttribute("w"),b.removeAttribute("pinned")));var c=b.firstChild||b.nextSibling;if(!c)for(c=b.parentNode;c;){if(c.nextSibling){c=c.nextSibling;break}c=c.parentNode}b=c}return Blockly.Xml.domToText(a)};Blockly.VariablesDynamic={};Blockly.VariablesDynamic.onCreateVariableButtonClick_String=function(a){Blockly.Variables.createVariableButtonHandler(a.getTargetWorkspace(),void 0,"String")};Blockly.VariablesDynamic.onCreateVariableButtonClick_Number=function(a){Blockly.Variables.createVariableButtonHandler(a.getTargetWorkspace(),void 0,"Number")};Blockly.VariablesDynamic.onCreateVariableButtonClick_Colour=function(a){Blockly.Variables.createVariableButtonHandler(a.getTargetWorkspace(),void 0,"Colour")}; -Blockly.VariablesDynamic.flyoutCategory=function(a){var b=[],c=document.createElement("button");c.setAttribute("text",Blockly.Msg.NEW_STRING_VARIABLE);c.setAttribute("callbackKey","CREATE_VARIABLE_STRING");b.push(c);c=document.createElement("button");c.setAttribute("text",Blockly.Msg.NEW_NUMBER_VARIABLE);c.setAttribute("callbackKey","CREATE_VARIABLE_NUMBER");b.push(c);c=document.createElement("button");c.setAttribute("text",Blockly.Msg.NEW_COLOUR_VARIABLE);c.setAttribute("callbackKey","CREATE_VARIABLE_COLOUR"); -b.push(c);a.registerButtonCallback("CREATE_VARIABLE_STRING",Blockly.VariablesDynamic.onCreateVariableButtonClick_String);a.registerButtonCallback("CREATE_VARIABLE_NUMBER",Blockly.VariablesDynamic.onCreateVariableButtonClick_Number);a.registerButtonCallback("CREATE_VARIABLE_COLOUR",Blockly.VariablesDynamic.onCreateVariableButtonClick_Colour);a=Blockly.VariablesDynamic.flyoutCategoryBlocks(a);return b=b.concat(a)}; -Blockly.VariablesDynamic.flyoutCategoryBlocks=function(a){a=a.getAllVariables();var b=[];if(0image, .blocklyZoom>svg>image {","opacity: .4;","}",".blocklyZoom>image:hover, .blocklyZoom>svg>image:hover {","opacity: .6;","}",".blocklyZoom>image:active, .blocklyZoom>svg>image:active {","opacity: .8;","}"]);Blockly.Mutator=function(a){Blockly.Mutator.superClass_.constructor.call(this,null);this.quarkNames_=a};Blockly.utils.object.inherits(Blockly.Mutator,Blockly.Icon);Blockly.Mutator.prototype.workspaceWidth_=0;Blockly.Mutator.prototype.workspaceHeight_=0;Blockly.Mutator.prototype.setBlock=function(a){this.block_=a};Blockly.Mutator.prototype.getWorkspace=function(){return this.workspace_}; -Blockly.Mutator.prototype.drawIcon_=function(a){Blockly.utils.dom.createSvgElement("rect",{"class":"blocklyIconShape",rx:"4",ry:"4",height:"16",width:"16"},a);Blockly.utils.dom.createSvgElement("path",{"class":"blocklyIconSymbol",d:"m4.203,7.296 0,1.368 -0.92,0.677 -0.11,0.41 0.9,1.559 0.41,0.11 1.043,-0.457 1.187,0.683 0.127,1.134 0.3,0.3 1.8,0 0.3,-0.299 0.127,-1.138 1.185,-0.682 1.046,0.458 0.409,-0.11 0.9,-1.559 -0.11,-0.41 -0.92,-0.677 0,-1.366 0.92,-0.677 0.11,-0.41 -0.9,-1.559 -0.409,-0.109 -1.046,0.458 -1.185,-0.682 -0.127,-1.138 -0.3,-0.299 -1.8,0 -0.3,0.3 -0.126,1.135 -1.187,0.682 -1.043,-0.457 -0.41,0.11 -0.899,1.559 0.108,0.409z"}, -a);Blockly.utils.dom.createSvgElement("circle",{"class":"blocklyIconShape",r:"2.7",cx:"8",cy:"8"},a)};Blockly.Mutator.prototype.iconClick_=function(a){this.block_.isEditable()&&Blockly.Icon.prototype.iconClick_.call(this,a)}; -Blockly.Mutator.prototype.createEditor_=function(){this.svgDialog_=Blockly.utils.dom.createSvgElement("svg",{x:Blockly.Bubble.BORDER_WIDTH,y:Blockly.Bubble.BORDER_WIDTH},null);if(this.quarkNames_.length)for(var a=Blockly.utils.xml.createElement("xml"),b=0,c;c=this.quarkNames_[b];b++){var d=Blockly.utils.xml.createElement("block");d.setAttribute("type",c);a.appendChild(d)}else a=null;b=new Blockly.Options({disable:!1,parentWorkspace:this.block_.workspace,media:this.block_.workspace.options.pathToMedia, -rtl:this.block_.RTL,horizontalLayout:!1,renderer:this.block_.workspace.options.renderer,rendererOverrides:this.block_.workspace.options.rendererOverrides});b.toolboxPosition=this.block_.RTL?Blockly.TOOLBOX_AT_RIGHT:Blockly.TOOLBOX_AT_LEFT;b.languageTree=a;b.getMetrics=this.getFlyoutMetrics_.bind(this);this.workspace_=new Blockly.WorkspaceSvg(b);this.workspace_.isMutator=!0;this.workspace_.addChangeListener(Blockly.Events.disableOrphans);a=this.workspace_.addFlyout("g");b=this.workspace_.createDom("blocklyMutatorBackground"); -b.insertBefore(a,this.workspace_.svgBlockCanvas_);this.svgDialog_.appendChild(b);return this.svgDialog_};Blockly.Mutator.prototype.updateEditable=function(){Blockly.Mutator.superClass_.updateEditable.call(this);this.block_.isInFlyout||(this.block_.isEditable()?this.iconGroup_&&Blockly.utils.dom.removeClass(this.iconGroup_,"blocklyIconGroupReadonly"):(this.setVisible(!1),this.iconGroup_&&Blockly.utils.dom.addClass(this.iconGroup_,"blocklyIconGroupReadonly")))}; -Blockly.Mutator.prototype.resizeBubble_=function(){var a=2*Blockly.Bubble.BORDER_WIDTH,b=this.workspace_.getCanvas().getBBox();var c=this.block_.RTL?-b.x:b.width+b.x;b=b.height+3*a;var d=this.workspace_.getFlyout();d&&(d=d.getMetrics_(),b=Math.max(b,d.contentHeight+20));c+=3*a;if(Math.abs(this.workspaceWidth_-c)>a||Math.abs(this.workspaceHeight_-b)>a)this.workspaceWidth_=c,this.workspaceHeight_=b,this.bubble_.setBubbleSize(c+a,b+a),this.svgDialog_.setAttribute("width",this.workspaceWidth_),this.svgDialog_.setAttribute("height", -this.workspaceHeight_);this.block_.RTL&&(a="translate("+this.workspaceWidth_+",0)",this.workspace_.getCanvas().setAttribute("transform",a));this.workspace_.resize()};Blockly.Mutator.prototype.onBubbleMove_=function(){this.workspace_&&this.workspace_.recordDeleteAreas()}; -Blockly.Mutator.prototype.setVisible=function(a){if(a!=this.isVisible())if(Blockly.Events.fire(new Blockly.Events.Ui(this.block_,"mutatorOpen",!a,a)),a){this.bubble_=new Blockly.Bubble(this.block_.workspace,this.createEditor_(),this.block_.pathObject.svgPath,this.iconXY_,null,null);this.bubble_.setSvgId(this.block_.id);this.bubble_.registerMoveEvent(this.onBubbleMove_.bind(this));var b=this.workspace_.options.languageTree;a=this.workspace_.getFlyout();b&&(a.init(this.workspace_),a.show(b.childNodes)); -this.rootBlock_=this.block_.decompose(this.workspace_);b=this.rootBlock_.getDescendants(!1);for(var c=0,d;d=b[c];c++)d.render();this.rootBlock_.setMovable(!1);this.rootBlock_.setDeletable(!1);a?(b=2*a.CORNER_RADIUS,a=a.getWidth()+b):a=b=16;this.block_.RTL&&(a=-a);this.rootBlock_.moveBy(a,b);if(this.block_.saveConnections){var e=this,f=this.block_;f.saveConnections(this.rootBlock_);this.sourceListener_=function(){f.saveConnections(e.rootBlock_)};this.block_.workspace.addChangeListener(this.sourceListener_)}this.resizeBubble_(); -this.workspace_.addChangeListener(this.workspaceChanged_.bind(this));this.applyColour()}else this.svgDialog_=null,this.workspace_.dispose(),this.rootBlock_=this.workspace_=null,this.bubble_.dispose(),this.bubble_=null,this.workspaceHeight_=this.workspaceWidth_=0,this.sourceListener_&&(this.block_.workspace.removeChangeListener(this.sourceListener_),this.sourceListener_=null)}; -Blockly.Mutator.prototype.workspaceChanged_=function(a){if(a.type!=Blockly.Events.UI&&(a.type!=Blockly.Events.CHANGE||"disabled"!=a.element)){if(!this.workspace_.isDragging()){a=this.workspace_.getTopBlocks(!1);for(var b=0,c;c=a[b];b++){var d=c.getRelativeToSurfaceXY(),e=c.getHeightWidth();20>d.y+e.height&&c.moveBy(0,20-e.height-d.y)}}if(this.rootBlock_.workspace==this.workspace_){Blockly.Events.setGroup(!0);c=this.block_;a=(a=c.mutationToDom())&&Blockly.Xml.domToText(a);c.compose(this.rootBlock_); -c.initSvg();c.render();Blockly.getMainWorkspace().keyboardAccessibilityMode&&Blockly.navigation.moveCursorOnBlockMutation(c);b=(b=c.mutationToDom())&&Blockly.Xml.domToText(b);if(a!=b){Blockly.Events.fire(new Blockly.Events.BlockChange(c,"mutation",null,a,b));var f=Blockly.Events.getGroup();setTimeout(function(){Blockly.Events.setGroup(f);c.bumpNeighbours();Blockly.Events.setGroup(!1)},Blockly.BUMP_DELAY)}this.workspace_.isDragging()||this.resizeBubble_();Blockly.Events.setGroup(!1)}}}; -Blockly.Mutator.prototype.getFlyoutMetrics_=function(){return{viewHeight:this.workspaceHeight_,viewWidth:this.workspaceWidth_-this.workspace_.getFlyout().getWidth(),absoluteTop:0,absoluteLeft:this.workspace_.RTL?0:this.workspace_.getFlyout().getWidth()}};Blockly.Mutator.prototype.dispose=function(){this.block_.mutator=null;Blockly.Icon.prototype.dispose.call(this)}; -Blockly.Mutator.prototype.updateBlockStyle=function(){var a=this.workspace_;if(a&&a.getAllBlocks(!1)){for(var b=a.getAllBlocks(!1),c=0;c=a&&this.sourceBlock_.outputConnection&&!b}else this.fullBlockClickTarget_=!1;this.fullBlockClickTarget_?this.clickTarget_=this.sourceBlock_.getSvgRoot():this.createBorderRect_();this.createTextElement_()}; -Blockly.FieldTextInput.prototype.doClassValidation_=function(a){return null===a||void 0===a?null:String(a)};Blockly.FieldTextInput.prototype.doValueInvalid_=function(a){this.isBeingEdited_&&(this.isTextValid_=!1,a=this.value_,this.value_=this.htmlInput_.untypedDefaultValue_,this.sourceBlock_&&Blockly.Events.isEnabled()&&Blockly.Events.fire(new Blockly.Events.BlockChange(this.sourceBlock_,"field",this.name||null,a,this.value_)))}; -Blockly.FieldTextInput.prototype.doValueUpdate_=function(a){this.isTextValid_=!0;this.value_=a;this.isBeingEdited_||(this.isDirty_=!0)};Blockly.FieldTextInput.prototype.applyColour=function(){this.sourceBlock_&&this.getConstants().FULL_BLOCK_FIELDS&&(this.borderRect_?this.borderRect_.setAttribute("stroke",this.sourceBlock_.style.colourTertiary):this.sourceBlock_.pathObject.svgPath.setAttribute("fill",this.getConstants().FIELD_BORDER_RECT_COLOUR))}; -Blockly.FieldTextInput.prototype.render_=function(){Blockly.FieldTextInput.superClass_.render_.call(this);if(this.isBeingEdited_){this.resizeEditor_();var a=this.htmlInput_;this.isTextValid_?(Blockly.utils.dom.removeClass(a,"blocklyInvalidInput"),Blockly.utils.aria.setState(a,Blockly.utils.aria.State.INVALID,!1)):(Blockly.utils.dom.addClass(a,"blocklyInvalidInput"),Blockly.utils.aria.setState(a,Blockly.utils.aria.State.INVALID,!0))}}; -Blockly.FieldTextInput.prototype.setSpellcheck=function(a){a!=this.spellcheck_&&(this.spellcheck_=a,this.htmlInput_&&this.htmlInput_.setAttribute("spellcheck",this.spellcheck_))};Blockly.FieldTextInput.prototype.showEditor_=function(a,b){this.workspace_=this.sourceBlock_.workspace;a=b||!1;!a&&(Blockly.utils.userAgent.MOBILE||Blockly.utils.userAgent.ANDROID||Blockly.utils.userAgent.IPAD)?this.showPromptEditor_():this.showInlineEditor_(a)}; -Blockly.FieldTextInput.prototype.showPromptEditor_=function(){var a=this;Blockly.prompt(Blockly.Msg.CHANGE_VALUE_TITLE,this.getText(),function(b){a.setValue(b)})};Blockly.FieldTextInput.prototype.showInlineEditor_=function(a){Blockly.WidgetDiv.show(this,this.sourceBlock_.RTL,this.widgetDispose_.bind(this));this.htmlInput_=this.widgetCreate_();this.isBeingEdited_=!0;a||(this.htmlInput_.focus({preventScroll:!0}),this.htmlInput_.select())}; -Blockly.FieldTextInput.prototype.widgetCreate_=function(){var a=Blockly.WidgetDiv.DIV;Blockly.utils.dom.addClass(this.getClickTarget_(),"editing");var b=document.createElement("input");b.className="blocklyHtmlInput";b.setAttribute("spellcheck",this.spellcheck_);var c=this.workspace_.getScale(),d=this.getConstants().FIELD_TEXT_FONTSIZE*c+"pt";a.style.fontSize=d;b.style.fontSize=d;d=Blockly.FieldTextInput.BORDERRADIUS*c+"px";if(this.fullBlockClickTarget_){d=this.getScaledBBox();d=(d.bottom-d.top)/2+ -"px";var e=this.sourceBlock_.getParent()?this.sourceBlock_.getParent().style.colourTertiary:this.sourceBlock_.style.colourTertiary;b.style.border=1*c+"px solid "+e;a.style.borderRadius=d;a.style.transition="box-shadow 0.25s ease 0s";this.getConstants().FIELD_TEXTINPUT_BOX_SHADOW&&(a.style.boxShadow="rgba(255, 255, 255, 0.3) 0px 0px 0px "+4*c+"px")}b.style.borderRadius=d;a.appendChild(b);b.value=b.defaultValue=this.getEditorText_(this.value_);b.untypedDefaultValue_=this.value_;b.oldValue_=null;this.resizeEditor_(); -this.bindInputEvents_(b);return b};Blockly.FieldTextInput.prototype.widgetDispose_=function(){this.isBeingEdited_=!1;this.isTextValid_=!0;this.forceRerender();if(this.onFinishEditing_)this.onFinishEditing_(this.value_);this.unbindInputEvents_();var a=Blockly.WidgetDiv.DIV.style;a.width="auto";a.height="auto";a.fontSize="";a.transition="";a.boxShadow="";this.htmlInput_=null;Blockly.utils.dom.removeClass(this.getClickTarget_(),"editing")}; -Blockly.FieldTextInput.prototype.bindInputEvents_=function(a){this.onKeyDownWrapper_=Blockly.bindEventWithChecks_(a,"keydown",this,this.onHtmlInputKeyDown_);this.onKeyInputWrapper_=Blockly.bindEventWithChecks_(a,"input",this,this.onHtmlInputChange_)}; -Blockly.FieldTextInput.prototype.unbindInputEvents_=function(){this.onKeyDownWrapper_&&(Blockly.unbindEvent_(this.onKeyDownWrapper_),this.onKeyDownWrapper_=null);this.onKeyInputWrapper_&&(Blockly.unbindEvent_(this.onKeyInputWrapper_),this.onKeyInputWrapper_=null)}; -Blockly.FieldTextInput.prototype.onHtmlInputKeyDown_=function(a){a.keyCode==Blockly.utils.KeyCodes.ENTER?(Blockly.WidgetDiv.hide(),Blockly.DropDownDiv.hideWithoutAnimation()):a.keyCode==Blockly.utils.KeyCodes.ESC?(this.htmlInput_.value=this.htmlInput_.defaultValue,Blockly.WidgetDiv.hide(),Blockly.DropDownDiv.hideWithoutAnimation()):a.keyCode==Blockly.utils.KeyCodes.TAB&&(Blockly.WidgetDiv.hide(),Blockly.DropDownDiv.hideWithoutAnimation(),this.sourceBlock_.tab(this,!a.shiftKey),a.preventDefault())}; -Blockly.FieldTextInput.prototype.onHtmlInputChange_=function(a){a=this.htmlInput_.value;a!==this.htmlInput_.oldValue_&&(this.htmlInput_.oldValue_=a,Blockly.Events.setGroup(!0),a=this.getValueFromEditorText_(a),this.setValue(a),this.forceRerender(),this.resizeEditor_(),Blockly.Events.setGroup(!1))};Blockly.FieldTextInput.prototype.setEditorValue_=function(a){this.isDirty_=!0;this.isBeingEdited_&&(this.htmlInput_.value=this.getEditorText_(a));this.setValue(a)}; -Blockly.FieldTextInput.prototype.resizeEditor_=function(){var a=Blockly.WidgetDiv.DIV,b=this.getScaledBBox();a.style.width=b.right-b.left+"px";a.style.height=b.bottom-b.top+"px";b=new Blockly.utils.Coordinate(this.sourceBlock_.RTL?b.right-a.offsetWidth:b.left,b.top);a.style.left=b.x+"px";a.style.top=b.y+"px"}; -Blockly.FieldTextInput.numberValidator=function(a){console.warn("Blockly.FieldTextInput.numberValidator is deprecated. Use Blockly.FieldNumber instead.");if(null===a)return null;a=String(a);a=a.replace(/O/ig,"0");a=a.replace(/,/g,"");a=Number(a||0);return isNaN(a)?null:String(a)};Blockly.FieldTextInput.nonnegativeIntegerValidator=function(a){(a=Blockly.FieldTextInput.numberValidator(a))&&(a=String(Math.max(0,Math.floor(a))));return a};Blockly.FieldTextInput.prototype.isTabNavigable=function(){return!0}; -Blockly.FieldTextInput.prototype.getText_=function(){return this.isBeingEdited_&&this.htmlInput_?this.htmlInput_.value:null};Blockly.FieldTextInput.prototype.getEditorText_=function(a){return String(a)};Blockly.FieldTextInput.prototype.getValueFromEditorText_=function(a){return a};Blockly.fieldRegistry.register("field_input",Blockly.FieldTextInput);Blockly.FieldAngle=function(a,b,c){this.clockwise_=Blockly.FieldAngle.CLOCKWISE;this.offset_=Blockly.FieldAngle.OFFSET;this.wrap_=Blockly.FieldAngle.WRAP;this.round_=Blockly.FieldAngle.ROUND;Blockly.FieldAngle.superClass_.constructor.call(this,a||0,b,c);this.moveSurfaceWrapper_=this.clickSurfaceWrapper_=this.clickWrapper_=this.line_=this.gauge_=null};Blockly.utils.object.inherits(Blockly.FieldAngle,Blockly.FieldTextInput); -Blockly.FieldAngle.fromJson=function(a){return new Blockly.FieldAngle(a.angle,void 0,a)};Blockly.FieldAngle.prototype.SERIALIZABLE=!0;Blockly.FieldAngle.ROUND=15;Blockly.FieldAngle.HALF=50;Blockly.FieldAngle.CLOCKWISE=!1;Blockly.FieldAngle.OFFSET=0;Blockly.FieldAngle.WRAP=360;Blockly.FieldAngle.RADIUS=Blockly.FieldAngle.HALF-1; -Blockly.FieldAngle.prototype.configure_=function(a){Blockly.FieldAngle.superClass_.configure_.call(this,a);switch(a.mode){case "compass":this.clockwise_=!0;this.offset_=90;break;case "protractor":this.clockwise_=!1,this.offset_=0}var b=a.clockwise;"boolean"==typeof b&&(this.clockwise_=b);b=a.offset;null!=b&&(b=Number(b),isNaN(b)||(this.offset_=b));b=a.wrap;null!=b&&(b=Number(b),isNaN(b)||(this.wrap_=b));a=a.round;null!=a&&(a=Number(a),isNaN(a)||(this.round_=a))}; -Blockly.FieldAngle.prototype.initView=function(){Blockly.FieldAngle.superClass_.initView.call(this);this.symbol_=Blockly.utils.dom.createSvgElement("tspan",{},null);this.symbol_.appendChild(document.createTextNode("\u00b0"));this.textElement_.appendChild(this.symbol_)};Blockly.FieldAngle.prototype.render_=function(){Blockly.FieldAngle.superClass_.render_.call(this);this.updateGraph_()}; -Blockly.FieldAngle.prototype.showEditor_=function(a){Blockly.FieldAngle.superClass_.showEditor_.call(this,a,Blockly.utils.userAgent.MOBILE||Blockly.utils.userAgent.ANDROID||Blockly.utils.userAgent.IPAD);a=this.dropdownCreate_();Blockly.DropDownDiv.getContentDiv().appendChild(a);Blockly.DropDownDiv.setColour(this.sourceBlock_.style.colourPrimary,this.sourceBlock_.style.colourTertiary);Blockly.DropDownDiv.showPositionedByField(this,this.dropdownDispose_.bind(this));this.updateGraph_()}; -Blockly.FieldAngle.prototype.dropdownCreate_=function(){var a=Blockly.utils.dom.createSvgElement("svg",{xmlns:Blockly.utils.dom.SVG_NS,"xmlns:html":Blockly.utils.dom.HTML_NS,"xmlns:xlink":Blockly.utils.dom.XLINK_NS,version:"1.1",height:2*Blockly.FieldAngle.HALF+"px",width:2*Blockly.FieldAngle.HALF+"px",style:"touch-action: none"},null),b=Blockly.utils.dom.createSvgElement("circle",{cx:Blockly.FieldAngle.HALF,cy:Blockly.FieldAngle.HALF,r:Blockly.FieldAngle.RADIUS,"class":"blocklyAngleCircle"},a);this.gauge_= -Blockly.utils.dom.createSvgElement("path",{"class":"blocklyAngleGauge"},a);this.line_=Blockly.utils.dom.createSvgElement("line",{x1:Blockly.FieldAngle.HALF,y1:Blockly.FieldAngle.HALF,"class":"blocklyAngleLine"},a);for(var c=0;360>c;c+=15)Blockly.utils.dom.createSvgElement("line",{x1:Blockly.FieldAngle.HALF+Blockly.FieldAngle.RADIUS,y1:Blockly.FieldAngle.HALF,x2:Blockly.FieldAngle.HALF+Blockly.FieldAngle.RADIUS-(0==c%45?10:5),y2:Blockly.FieldAngle.HALF,"class":"blocklyAngleMarks",transform:"rotate("+ -c+","+Blockly.FieldAngle.HALF+","+Blockly.FieldAngle.HALF+")"},a);this.clickWrapper_=Blockly.bindEventWithChecks_(a,"click",this,this.hide_);this.clickSurfaceWrapper_=Blockly.bindEventWithChecks_(b,"click",this,this.onMouseMove_,!0,!0);this.moveSurfaceWrapper_=Blockly.bindEventWithChecks_(b,"mousemove",this,this.onMouseMove_,!0,!0);return a}; -Blockly.FieldAngle.prototype.dropdownDispose_=function(){this.clickWrapper_&&(Blockly.unbindEvent_(this.clickWrapper_),this.clickWrapper_=null);this.clickSurfaceWrapper_&&(Blockly.unbindEvent_(this.clickSurfaceWrapper_),this.clickSurfaceWrapper_=null);this.moveSurfaceWrapper_&&(Blockly.unbindEvent_(this.moveSurfaceWrapper_),this.moveSurfaceWrapper_=null);this.line_=this.gauge_=null};Blockly.FieldAngle.prototype.hide_=function(){Blockly.DropDownDiv.hideIfOwner(this);Blockly.WidgetDiv.hide()}; -Blockly.FieldAngle.prototype.onMouseMove_=function(a){var b=this.gauge_.ownerSVGElement.getBoundingClientRect(),c=a.clientX-b.left-Blockly.FieldAngle.HALF;a=a.clientY-b.top-Blockly.FieldAngle.HALF;b=Math.atan(-a/c);isNaN(b)||(b=Blockly.utils.math.toDegrees(b),0>c?b+=180:0a&&(a+=360);a>this.wrap_&&(a-=360);return a};Blockly.Css.register(".blocklyAngleCircle {,stroke: #444;,stroke-width: 1;,fill: #ddd;,fill-opacity: .8;,},.blocklyAngleMarks {,stroke: #444;,stroke-width: 1;,},.blocklyAngleGauge {,fill: #f88;,fill-opacity: .8;,pointer-events: none;,},.blocklyAngleLine {,stroke: #f00;,stroke-width: 2;,stroke-linecap: round;,pointer-events: none;,}".split(",")); -Blockly.fieldRegistry.register("field_angle",Blockly.FieldAngle);Blockly.FieldCheckbox=function(a,b,c){this.checkChar_=null;null==a&&(a="FALSE");Blockly.FieldCheckbox.superClass_.constructor.call(this,a,b,c)};Blockly.utils.object.inherits(Blockly.FieldCheckbox,Blockly.Field);Blockly.FieldCheckbox.fromJson=function(a){return new Blockly.FieldCheckbox(a.checked,void 0,a)};Blockly.FieldCheckbox.CHECK_CHAR="\u2713";Blockly.FieldCheckbox.prototype.SERIALIZABLE=!0;Blockly.FieldCheckbox.prototype.CURSOR="default"; -Blockly.FieldCheckbox.prototype.configure_=function(a){Blockly.FieldCheckbox.superClass_.configure_.call(this,a);a.checkCharacter&&(this.checkChar_=a.checkCharacter)};Blockly.FieldCheckbox.prototype.initView=function(){Blockly.FieldCheckbox.superClass_.initView.call(this);Blockly.utils.dom.addClass(this.textElement_,"blocklyCheckbox");this.textElement_.style.display=this.value_?"block":"none"}; -Blockly.FieldCheckbox.prototype.render_=function(){this.textContent_&&(this.textContent_.nodeValue=this.getDisplayText_());this.updateSize_(this.getConstants().FIELD_CHECKBOX_X_OFFSET)};Blockly.FieldCheckbox.prototype.getDisplayText_=function(){return this.checkChar_||Blockly.FieldCheckbox.CHECK_CHAR};Blockly.FieldCheckbox.prototype.setCheckCharacter=function(a){this.checkChar_=a;this.forceRerender()};Blockly.FieldCheckbox.prototype.showEditor_=function(){this.setValue(!this.value_)}; -Blockly.FieldCheckbox.prototype.doClassValidation_=function(a){return!0===a||"TRUE"===a?"TRUE":!1===a||"FALSE"===a?"FALSE":null};Blockly.FieldCheckbox.prototype.doValueUpdate_=function(a){this.value_=this.convertValueToBool_(a);this.textElement_&&(this.textElement_.style.display=this.value_?"block":"none")};Blockly.FieldCheckbox.prototype.getValue=function(){return this.value_?"TRUE":"FALSE"};Blockly.FieldCheckbox.prototype.getValueBoolean=function(){return this.value_}; -Blockly.FieldCheckbox.prototype.getText=function(){return String(this.convertValueToBool_(this.value_))};Blockly.FieldCheckbox.prototype.convertValueToBool_=function(a){return"string"==typeof a?"TRUE"==a:!!a};Blockly.fieldRegistry.register("field_checkbox",Blockly.FieldCheckbox);Blockly.FieldColour=function(a,b,c){Blockly.FieldColour.superClass_.constructor.call(this,a||Blockly.FieldColour.COLOURS[0],b,c);this.onKeyDownWrapper_=this.onMouseLeaveWrapper_=this.onMouseEnterWrapper_=this.onMouseMoveWrapper_=this.onClickWrapper_=this.highlightedIndex_=this.picker_=null};Blockly.utils.object.inherits(Blockly.FieldColour,Blockly.Field);Blockly.FieldColour.fromJson=function(a){return new Blockly.FieldColour(a.colour,void 0,a)};Blockly.FieldColour.prototype.SERIALIZABLE=!0; -Blockly.FieldColour.prototype.CURSOR="default";Blockly.FieldColour.prototype.isDirty_=!1;Blockly.FieldColour.prototype.colours_=null;Blockly.FieldColour.prototype.titles_=null;Blockly.FieldColour.prototype.columns_=0;Blockly.FieldColour.prototype.configure_=function(a){Blockly.FieldColour.superClass_.configure_.call(this,a);a.colourOptions&&(this.colours_=a.colourOptions,this.titles_=a.colourTitles);a.columns&&(this.columns_=a.columns)}; -Blockly.FieldColour.prototype.initView=function(){this.size_=new Blockly.utils.Size(this.getConstants().FIELD_COLOUR_DEFAULT_WIDTH,this.getConstants().FIELD_COLOUR_DEFAULT_HEIGHT);this.getConstants().FIELD_COLOUR_FULL_BLOCK?this.clickTarget_=this.sourceBlock_.getSvgRoot():(this.createBorderRect_(),this.borderRect_.style.fillOpacity="1")}; -Blockly.FieldColour.prototype.applyColour=function(){this.getConstants().FIELD_COLOUR_FULL_BLOCK?(this.sourceBlock_.pathObject.svgPath.setAttribute("fill",this.getValue()),this.sourceBlock_.pathObject.svgPath.setAttribute("stroke","#fff")):this.borderRect_&&(this.borderRect_.style.fill=this.getValue())};Blockly.FieldColour.prototype.doClassValidation_=function(a){return"string"!=typeof a?null:Blockly.utils.colour.parse(a)}; -Blockly.FieldColour.prototype.doValueUpdate_=function(a){this.value_=a;this.borderRect_?this.borderRect_.style.fill=a:this.sourceBlock_&&this.sourceBlock_.rendered&&(this.sourceBlock_.pathObject.svgPath.setAttribute("fill",a),this.sourceBlock_.pathObject.svgPath.setAttribute("stroke","#fff"))};Blockly.FieldColour.prototype.getText=function(){var a=this.value_;/^#(.)\1(.)\2(.)\3$/.test(a)&&(a="#"+a[1]+a[3]+a[5]);return a};Blockly.FieldColour.COLOURS="#ffffff #cccccc #c0c0c0 #999999 #666666 #333333 #000000 #ffcccc #ff6666 #ff0000 #cc0000 #990000 #660000 #330000 #ffcc99 #ff9966 #ff9900 #ff6600 #cc6600 #993300 #663300 #ffff99 #ffff66 #ffcc66 #ffcc33 #cc9933 #996633 #663333 #ffffcc #ffff33 #ffff00 #ffcc00 #999900 #666600 #333300 #99ff99 #66ff99 #33ff33 #33cc00 #009900 #006600 #003300 #99ffff #33ffff #66cccc #00cccc #339999 #336666 #003333 #ccffff #66ffff #33ccff #3366ff #3333ff #000099 #000066 #ccccff #9999ff #6666cc #6633ff #6600cc #333399 #330099 #ffccff #ff99ff #cc66cc #cc33cc #993399 #663366 #330033".split(" "); -Blockly.FieldColour.TITLES=[];Blockly.FieldColour.COLUMNS=7;Blockly.FieldColour.prototype.setColours=function(a,b){this.colours_=a;b&&(this.titles_=b);return this};Blockly.FieldColour.prototype.setColumns=function(a){this.columns_=a;return this};Blockly.FieldColour.prototype.showEditor_=function(){this.picker_=this.dropdownCreate_();Blockly.DropDownDiv.getContentDiv().appendChild(this.picker_);Blockly.DropDownDiv.showPositionedByField(this,this.dropdownDispose_.bind(this));this.picker_.focus({preventScroll:!0})}; -Blockly.FieldColour.prototype.onClick_=function(a){a=(a=a.target)&&a.label;null!==a&&(this.setValue(a),Blockly.DropDownDiv.hideIfOwner(this))}; -Blockly.FieldColour.prototype.onKeyDown_=function(a){var b=!1;if(a.keyCode===Blockly.utils.KeyCodes.UP)this.moveHighlightBy_(0,-1),b=!0;else if(a.keyCode===Blockly.utils.KeyCodes.DOWN)this.moveHighlightBy_(0,1),b=!0;else if(a.keyCode===Blockly.utils.KeyCodes.LEFT)this.moveHighlightBy_(-1,0),b=!0;else if(a.keyCode===Blockly.utils.KeyCodes.RIGHT)this.moveHighlightBy_(1,0),b=!0;else if(a.keyCode===Blockly.utils.KeyCodes.ENTER){if(b=this.getHighlighted_())b=b&&b.label,null!==b&&this.setValue(b);Blockly.DropDownDiv.hideWithoutAnimation(); -b=!0}b&&a.stopPropagation()};Blockly.FieldColour.prototype.onBlocklyAction=function(a){if(this.picker_){if(a===Blockly.navigation.ACTION_PREVIOUS)return this.moveHighlightBy_(0,-1),!0;if(a===Blockly.navigation.ACTION_NEXT)return this.moveHighlightBy_(0,1),!0;if(a===Blockly.navigation.ACTION_OUT)return this.moveHighlightBy_(-1,0),!0;if(a===Blockly.navigation.ACTION_IN)return this.moveHighlightBy_(1,0),!0}return Blockly.FieldColour.superClass_.onBlocklyAction.call(this,a)}; -Blockly.FieldColour.prototype.moveHighlightBy_=function(a,b){var c=this.colours_||Blockly.FieldColour.COLOURS,d=this.columns_||Blockly.FieldColour.COLUMNS,e=this.highlightedIndex_%d,f=Math.floor(this.highlightedIndex_/d);e+=a;f+=b;0>a?0>e&&0e&&(e=0):0d-1&&fd-1&&e--:0>b?0>f&&(f=0):0Math.floor(c.length/d)-1&&(f=Math.floor(c.length/d)-1);this.setHighlightedCell_(this.picker_.childNodes[f].childNodes[e],f*d+e)}; -Blockly.FieldColour.prototype.onMouseMove_=function(a){var b=(a=a.target)&&Number(a.getAttribute("data-index"));null!==b&&b!==this.highlightedIndex_&&this.setHighlightedCell_(a,b)};Blockly.FieldColour.prototype.onMouseEnter_=function(){this.picker_.focus({preventScroll:!0})};Blockly.FieldColour.prototype.onMouseLeave_=function(){this.picker_.blur();var a=this.getHighlighted_();a&&Blockly.utils.dom.removeClass(a,"blocklyColourHighlighted")}; -Blockly.FieldColour.prototype.getHighlighted_=function(){var a=this.columns_||Blockly.FieldColour.COLUMNS,b=this.picker_.childNodes[Math.floor(this.highlightedIndex_/a)];return b?b.childNodes[this.highlightedIndex_%a]:null}; -Blockly.FieldColour.prototype.setHighlightedCell_=function(a,b){var c=this.getHighlighted_();c&&Blockly.utils.dom.removeClass(c,"blocklyColourHighlighted");Blockly.utils.dom.addClass(a,"blocklyColourHighlighted");this.highlightedIndex_=b;Blockly.utils.aria.setState(this.picker_,Blockly.utils.aria.State.ACTIVEDESCENDANT,a.getAttribute("id"))}; -Blockly.FieldColour.prototype.dropdownCreate_=function(){var a=this.columns_||Blockly.FieldColour.COLUMNS,b=this.colours_||Blockly.FieldColour.COLOURS,c=this.titles_||Blockly.FieldColour.TITLES,d=this.getValue(),e=document.createElement("table");e.className="blocklyColourTable";e.tabIndex=0;e.dir="ltr";Blockly.utils.aria.setRole(e,Blockly.utils.aria.Role.GRID);Blockly.utils.aria.setState(e,Blockly.utils.aria.State.EXPANDED,!0);Blockly.utils.aria.setState(e,Blockly.utils.aria.State.ROWCOUNT,Math.floor(b.length/ -a));Blockly.utils.aria.setState(e,Blockly.utils.aria.State.COLCOUNT,a);for(var f,g=0;gtr>td {","border: .5px solid #888;","box-sizing: border-box;","cursor: pointer;","display: inline-block;","height: 20px;","padding: 0;","width: 20px;","}",".blocklyColourTable>tr>td.blocklyColourHighlighted {","border-color: #eee;","box-shadow: 2px 2px 7px 2px rgba(0,0,0,.3);","position: relative;","}",".blocklyColourSelected, .blocklyColourSelected:hover {", -"border-color: #eee !important;","outline: 1px solid #333;","position: relative;","}"]);Blockly.fieldRegistry.register("field_colour",Blockly.FieldColour);Blockly.FieldDropdown=function(a,b,c){"function"!=typeof a&&Blockly.FieldDropdown.validateOptions_(a);this.menuGenerator_=a;this.generatedOptions_=null;this.trimOptions_();this.selectedOption_=this.getOptions(!1)[0];Blockly.FieldDropdown.superClass_.constructor.call(this,this.selectedOption_[1],b,c);this.svgArrow_=this.arrow_=this.imageElement_=this.menu_=this.selectedMenuItem_=null};Blockly.utils.object.inherits(Blockly.FieldDropdown,Blockly.Field); -Blockly.FieldDropdown.fromJson=function(a){return new Blockly.FieldDropdown(a.options,void 0,a)};Blockly.FieldDropdown.prototype.SERIALIZABLE=!0;Blockly.FieldDropdown.CHECKMARK_OVERHANG=25;Blockly.FieldDropdown.MAX_MENU_HEIGHT_VH=.45;Blockly.FieldDropdown.IMAGE_Y_OFFSET=5;Blockly.FieldDropdown.IMAGE_Y_PADDING=2*Blockly.FieldDropdown.IMAGE_Y_OFFSET;Blockly.FieldDropdown.ARROW_CHAR=Blockly.utils.userAgent.ANDROID?"\u25bc":"\u25be";Blockly.FieldDropdown.prototype.CURSOR="default"; -Blockly.FieldDropdown.prototype.initView=function(){this.shouldAddBorderRect_()?this.createBorderRect_():this.clickTarget_=this.sourceBlock_.getSvgRoot();this.createTextElement_();this.imageElement_=Blockly.utils.dom.createSvgElement("image",{},this.fieldGroup_);this.getConstants().FIELD_DROPDOWN_SVG_ARROW?this.createSVGArrow_():this.createTextArrow_();this.borderRect_&&Blockly.utils.dom.addClass(this.borderRect_,"blocklyDropdownRect")}; -Blockly.FieldDropdown.prototype.shouldAddBorderRect_=function(){return!this.getConstants().FIELD_DROPDOWN_NO_BORDER_RECT_SHADOW||this.getConstants().FIELD_DROPDOWN_NO_BORDER_RECT_SHADOW&&!this.sourceBlock_.isShadow()}; -Blockly.FieldDropdown.prototype.createTextArrow_=function(){this.arrow_=Blockly.utils.dom.createSvgElement("tspan",{},this.textElement_);this.arrow_.appendChild(document.createTextNode(this.sourceBlock_.RTL?Blockly.FieldDropdown.ARROW_CHAR+" ":" "+Blockly.FieldDropdown.ARROW_CHAR));this.sourceBlock_.RTL?this.textElement_.insertBefore(this.arrow_,this.textContent_):this.textElement_.appendChild(this.arrow_)}; -Blockly.FieldDropdown.prototype.createSVGArrow_=function(){this.svgArrow_=Blockly.utils.dom.createSvgElement("image",{height:this.getConstants().FIELD_DROPDOWN_SVG_ARROW_SIZE+"px",width:this.getConstants().FIELD_DROPDOWN_SVG_ARROW_SIZE+"px"},this.fieldGroup_);this.svgArrow_.setAttributeNS(Blockly.utils.dom.XLINK_NS,"xlink:href",this.getConstants().FIELD_DROPDOWN_SVG_ARROW_DATAURI)}; -Blockly.FieldDropdown.prototype.showEditor_=function(a){this.menu_=this.dropdownCreate_();this.menu_.openingCoords=a&&"number"===typeof a.clientX?new Blockly.utils.Coordinate(a.clientX,a.clientY):null;this.menu_.render(Blockly.DropDownDiv.getContentDiv());Blockly.utils.dom.addClass(this.menu_.getElement(),"blocklyDropdownMenu");if(this.getConstants().FIELD_DROPDOWN_COLOURED_DIV){a=this.sourceBlock_.isShadow()?this.sourceBlock_.getParent().getColour():this.sourceBlock_.getColour();var b=this.sourceBlock_.isShadow()? -this.sourceBlock_.getParent().style.colourTertiary:this.sourceBlock_.style.colourTertiary;Blockly.DropDownDiv.setColour(a,b)}Blockly.DropDownDiv.showPositionedByField(this,this.dropdownDispose_.bind(this));this.menu_.focus();this.selectedMenuItem_&&Blockly.utils.style.scrollIntoContainerView(this.selectedMenuItem_.getElement(),this.menu_.getElement());this.applyColour()}; -Blockly.FieldDropdown.prototype.dropdownCreate_=function(){var a=new Blockly.Menu;a.setRightToLeft(this.sourceBlock_.RTL);a.setRole(Blockly.utils.aria.Role.LISTBOX);var b=this.getOptions(!1);this.selectedMenuItem_=null;for(var c=0;ca.length)){b=[];for(c=0;c=c||0>=b)throw Error("Height and width values of an image field must be greater than 0.");this.flipRtl_=!1;this.altText_="";Blockly.FieldImage.superClass_.constructor.call(this, -a||"",null,g);g||(this.flipRtl_=!!f,this.altText_=Blockly.utils.replaceMessageReferences(d)||"");this.size_=new Blockly.utils.Size(b,c+Blockly.FieldImage.Y_PADDING);this.imageHeight_=c;this.clickHandler_=null;"function"==typeof e&&(this.clickHandler_=e);this.imageElement_=null};Blockly.utils.object.inherits(Blockly.FieldImage,Blockly.Field);Blockly.FieldImage.fromJson=function(a){return new Blockly.FieldImage(a.src,a.width,a.height,void 0,void 0,void 0,a)};Blockly.FieldImage.Y_PADDING=1; -Blockly.FieldImage.prototype.EDITABLE=!1;Blockly.FieldImage.prototype.isDirty_=!1;Blockly.FieldImage.prototype.configure_=function(a){Blockly.FieldImage.superClass_.configure_.call(this,a);this.flipRtl_=!!a.flipRtl;this.altText_=Blockly.utils.replaceMessageReferences(a.alt)||""}; -Blockly.FieldImage.prototype.initView=function(){this.imageElement_=Blockly.utils.dom.createSvgElement("image",{height:this.imageHeight_+"px",width:this.size_.width+"px",alt:this.altText_},this.fieldGroup_);this.imageElement_.setAttributeNS(Blockly.utils.dom.XLINK_NS,"xlink:href",this.value_);this.clickHandler_&&(this.imageElement_.style.cursor="pointer")};Blockly.FieldImage.prototype.updateSize_=function(){}; -Blockly.FieldImage.prototype.doClassValidation_=function(a){return"string"!=typeof a?null:a};Blockly.FieldImage.prototype.doValueUpdate_=function(a){this.value_=a;this.imageElement_&&this.imageElement_.setAttributeNS(Blockly.utils.dom.XLINK_NS,"xlink:href",String(this.value_))};Blockly.FieldImage.prototype.getFlipRtl=function(){return this.flipRtl_};Blockly.FieldImage.prototype.setAlt=function(a){a!=this.altText_&&(this.altText_=a||"",this.imageElement_&&this.imageElement_.setAttribute("alt",this.altText_))}; -Blockly.FieldImage.prototype.showEditor_=function(){this.clickHandler_&&this.clickHandler_(this)};Blockly.FieldImage.prototype.setOnClickHandler=function(a){this.clickHandler_=a};Blockly.FieldImage.prototype.getText_=function(){return this.altText_};Blockly.fieldRegistry.register("field_image",Blockly.FieldImage);Blockly.FieldMultilineInput=function(a,b,c){null==a&&(a="");Blockly.FieldMultilineInput.superClass_.constructor.call(this,a,b,c);this.textGroup_=null};Blockly.utils.object.inherits(Blockly.FieldMultilineInput,Blockly.FieldTextInput);Blockly.FieldMultilineInput.fromJson=function(a){var b=Blockly.utils.replaceMessageReferences(a.text);return new Blockly.FieldMultilineInput(b,void 0,a)}; -Blockly.FieldMultilineInput.prototype.initView=function(){this.createBorderRect_();this.textGroup_=Blockly.utils.dom.createSvgElement("g",{"class":"blocklyEditableText"},this.fieldGroup_)}; -Blockly.FieldMultilineInput.prototype.getDisplayText_=function(){var a=this.value_;if(!a)return Blockly.Field.NBSP;var b=a.split("\n");a="";for(var c=0;cthis.maxDisplayLength&&(d=d.substring(0,this.maxDisplayLength-4)+"...");d=d.replace(/\s/g,Blockly.Field.NBSP);a+=d;c!==b.length-1&&(a+="\n")}this.sourceBlock_.RTL&&(a+="\u200f");return a}; -Blockly.FieldMultilineInput.prototype.render_=function(){for(var a;a=this.textGroup_.firstChild;)this.textGroup_.removeChild(a);a=this.getDisplayText_().split("\n");for(var b=0,c=0;cb&&(b=e);c+=this.getConstants().FIELD_TEXT_HEIGHT+(0this.max_&&Blockly.utils.aria.setState(a,Blockly.utils.aria.State.VALUEMAX,this.max_);return a};Blockly.fieldRegistry.register("field_number",Blockly.FieldNumber);Blockly.FieldVariable=function(a,b,c,d,e){this.menuGenerator_=Blockly.FieldVariable.dropdownCreate;this.defaultVariableName=a||"";this.size_=new Blockly.utils.Size(0,0);e&&this.configure_(e);b&&this.setValidator(b);e||this.setTypes_(c,d)};Blockly.utils.object.inherits(Blockly.FieldVariable,Blockly.FieldDropdown);Blockly.FieldVariable.fromJson=function(a){var b=Blockly.utils.replaceMessageReferences(a.variable);return new Blockly.FieldVariable(b,void 0,void 0,void 0,a)}; -Blockly.FieldVariable.prototype.workspace_=null;Blockly.FieldVariable.prototype.SERIALIZABLE=!0;Blockly.FieldVariable.prototype.configure_=function(a){Blockly.FieldVariable.superClass_.configure_.call(this,a);this.setTypes_(a.variableTypes,a.defaultType)};Blockly.FieldVariable.prototype.initModel=function(){if(!this.variable_){var a=Blockly.Variables.getOrCreateVariablePackage(this.sourceBlock_.workspace,null,this.defaultVariableName,this.defaultType_);this.doValueUpdate_(a.getId())}}; -Blockly.FieldVariable.prototype.shouldAddBorderRect_=function(){return Blockly.FieldVariable.superClass_.shouldAddBorderRect_.call(this)&&(!this.getConstants().FIELD_DROPDOWN_NO_BORDER_RECT_SHADOW||"variables_get"!=this.sourceBlock_.type)}; -Blockly.FieldVariable.prototype.fromXml=function(a){var b=a.getAttribute("id"),c=a.textContent,d=a.getAttribute("variabletype")||a.getAttribute("variableType")||"";b=Blockly.Variables.getOrCreateVariablePackage(this.sourceBlock_.workspace,b,c,d);if(null!=d&&d!==b.type)throw Error("Serialized variable type with id '"+b.getId()+"' had type "+b.type+", and does not match variable field that references it: "+Blockly.Xml.domToText(a)+".");this.setValue(b.getId())}; -Blockly.FieldVariable.prototype.toXml=function(a){this.initModel();a.id=this.variable_.getId();a.textContent=this.variable_.name;this.variable_.type&&a.setAttribute("variabletype",this.variable_.type);return a};Blockly.FieldVariable.prototype.setSourceBlock=function(a){if(a.isShadow())throw Error("Variable fields are not allowed to exist on shadow blocks.");Blockly.FieldVariable.superClass_.setSourceBlock.call(this,a)}; -Blockly.FieldVariable.prototype.getValue=function(){return this.variable_?this.variable_.getId():null};Blockly.FieldVariable.prototype.getText=function(){return this.variable_?this.variable_.name:""};Blockly.FieldVariable.prototype.getVariable=function(){return this.variable_};Blockly.FieldVariable.prototype.getValidator=function(){return this.variable_?this.validator_:null}; -Blockly.FieldVariable.prototype.doClassValidation_=function(a){if(null===a)return null;var b=Blockly.Variables.getVariable(this.sourceBlock_.workspace,a);if(!b)return console.warn("Variable id doesn't point to a real variable! ID was "+a),null;b=b.type;return this.typeIsAllowed_(b)?a:(console.warn("Variable type doesn't match this field! Type was "+b),null)}; -Blockly.FieldVariable.prototype.doValueUpdate_=function(a){this.variable_=Blockly.Variables.getVariable(this.sourceBlock_.workspace,a);Blockly.FieldVariable.superClass_.doValueUpdate_.call(this,a)};Blockly.FieldVariable.prototype.typeIsAllowed_=function(a){var b=this.getVariableTypes_();if(!b)return!0;for(var c=0;crect,",a+" .blocklyEditableText>rect {","fill: "+this.FIELD_BORDER_RECT_COLOUR+";","fill-opacity: .6;","stroke: none;","}",a+" .blocklyNonEditableText>text,",a+" .blocklyEditableText>text {", -"fill: #000;","}",a+" .blocklyFlyoutLabelText {","fill: #000;","}",a+" .blocklyText.blocklyBubbleText {","fill: #000;","}",a+" .blocklyEditableText:not(.editing):hover>rect {","stroke: #fff;","stroke-width: 2;","}",a+" .blocklyHtmlInput {","font-family: "+this.FIELD_TEXT_FONTFAMILY+";","font-weight: "+this.FIELD_TEXT_FONTWEIGHT+";","}",a+" .blocklySelected>.blocklyPath {","stroke: #fc3;","stroke-width: 3px;","}",a+" .blocklyHighlightedConnectionPath {","stroke: #fc3;","}",a+" .blocklyReplaceable .blocklyPath {", -"fill-opacity: .5;","}",a+" .blocklyReplaceable .blocklyPathLight,",a+" .blocklyReplaceable .blocklyPathDark {","display: none;","}",a+" .blocklyInsertionMarker>.blocklyPath {","fill-opacity: "+this.INSERTION_MARKER_OPACITY+";","stroke: none","}"]};Blockly.blockRendering.MarkerSvg=function(a,b,c){this.workspace_=a;this.marker_=c;this.parent_=null;this.constants_=b;this.currentMarkerSvg=null;a=this.isCursor()?this.constants_.CURSOR_COLOUR:this.constants_.MARKER_COLOUR;this.colour_=c.colour||a};Blockly.blockRendering.MarkerSvg.CURSOR_CLASS="blocklyCursor";Blockly.blockRendering.MarkerSvg.MARKER_CLASS="blocklyMarker";Blockly.blockRendering.MarkerSvg.HEIGHT_MULTIPLIER=.75;Blockly.blockRendering.MarkerSvg.prototype.getSvgRoot=function(){return this.svgGroup_}; -Blockly.blockRendering.MarkerSvg.prototype.isCursor=function(){return"cursor"==this.marker_.type};Blockly.blockRendering.MarkerSvg.prototype.createDom=function(){var a=this.isCursor()?Blockly.blockRendering.MarkerSvg.CURSOR_CLASS:Blockly.blockRendering.MarkerSvg.MARKER_CLASS;this.svgGroup_=Blockly.utils.dom.createSvgElement("g",{"class":a},null);this.createDomInternal_();this.applyColour_();return this.svgGroup_}; -Blockly.blockRendering.MarkerSvg.prototype.setParent_=function(a){this.isCursor()?(this.parent_&&this.parent_.setCursorSvg(null),a.setCursorSvg(this.getSvgRoot())):(this.parent_&&this.parent_.setMarkerSvg(null),a.setMarkerSvg(this.getSvgRoot()));this.parent_=a}; -Blockly.blockRendering.MarkerSvg.prototype.showWithBlockPrevOutput_=function(a){if(a){var b=a.width,c=a.height,d=c*Blockly.blockRendering.MarkerSvg.HEIGHT_MULTIPLIER,e=this.constants_.CURSOR_BLOCK_PADDING;if(a.previousConnection){var f=this.constants_.shapeFor(a.previousConnection);this.positionPrevious_(b,e,d,f)}else a.outputConnection?(f=this.constants_.shapeFor(a.outputConnection),this.positionOutput_(b,c,f)):this.positionBlock_(b,e,d);this.setParent_(a);this.showCurrent_()}}; -Blockly.blockRendering.MarkerSvg.prototype.showWithCoordinates_=function(a){var b=a.getWsCoordinate();a=b.x;b=b.y;this.workspace_.RTL&&(a-=this.constants_.CURSOR_WS_WIDTH);this.positionLine_(a,b,this.constants_.CURSOR_WS_WIDTH);this.setParent_(this.workspace_);this.showCurrent_()};Blockly.blockRendering.MarkerSvg.prototype.showWithField_=function(a){a=a.getLocation();var b=a.getSize().width,c=a.getSize().height;this.positionRect_(0,0,b,c);this.setParent_(a);this.showCurrent_()}; -Blockly.blockRendering.MarkerSvg.prototype.showWithInput_=function(a){a=a.getLocation();var b=a.getSourceBlock();this.positionInput_(a);this.setParent_(b);this.showCurrent_()};Blockly.blockRendering.MarkerSvg.prototype.showWithNext_=function(a){var b=a.getLocation();a=b.getSourceBlock();var c=0;b=b.getOffsetInBlock().y;var d=a.getHeightWidth().width;this.workspace_.RTL&&(c=-d);this.positionLine_(c,b,d);this.setParent_(a);this.showCurrent_()}; -Blockly.blockRendering.MarkerSvg.prototype.showWithStack_=function(a){a=a.getLocation();var b=a.getHeightWidth(),c=b.width+this.constants_.CURSOR_STACK_PADDING;b=b.height+this.constants_.CURSOR_STACK_PADDING;var d=-this.constants_.CURSOR_STACK_PADDING/2,e=-this.constants_.CURSOR_STACK_PADDING/2,f=d;this.workspace_.RTL&&(f=-(c+d));this.positionRect_(f,e,c,b);this.setParent_(a);this.showCurrent_()}; -Blockly.blockRendering.MarkerSvg.prototype.showCurrent_=function(){this.hide();this.currentMarkerSvg.style.display=""};Blockly.blockRendering.MarkerSvg.prototype.positionBlock_=function(a,b,c){a=Blockly.utils.svgPaths.moveBy(-b,c)+Blockly.utils.svgPaths.lineOnAxis("V",-b)+Blockly.utils.svgPaths.lineOnAxis("H",a+2*b)+Blockly.utils.svgPaths.lineOnAxis("V",c);this.markerBlock_.setAttribute("d",a);this.workspace_.RTL&&this.flipRtl_(this.markerBlock_);this.currentMarkerSvg=this.markerBlock_}; -Blockly.blockRendering.MarkerSvg.prototype.positionInput_=function(a){var b=a.getOffsetInBlock().x,c=a.getOffsetInBlock().y;a=Blockly.utils.svgPaths.moveTo(0,0)+this.constants_.shapeFor(a).pathDown;this.markerInput_.setAttribute("d",a);this.markerInput_.setAttribute("transform","translate("+b+","+c+")"+(this.workspace_.RTL?" scale(-1 1)":""));this.currentMarkerSvg=this.markerInput_}; -Blockly.blockRendering.MarkerSvg.prototype.positionLine_=function(a,b,c){this.markerSvgLine_.setAttribute("x",a);this.markerSvgLine_.setAttribute("y",b);this.markerSvgLine_.setAttribute("width",c);this.currentMarkerSvg=this.markerSvgLine_}; -Blockly.blockRendering.MarkerSvg.prototype.positionOutput_=function(a,b,c){a=Blockly.utils.svgPaths.moveBy(a,0)+Blockly.utils.svgPaths.lineOnAxis("h",-(a-c.width))+Blockly.utils.svgPaths.lineOnAxis("v",this.constants_.TAB_OFFSET_FROM_TOP)+c.pathDown+Blockly.utils.svgPaths.lineOnAxis("V",b)+Blockly.utils.svgPaths.lineOnAxis("H",a);this.markerBlock_.setAttribute("d",a);this.workspace_.RTL&&this.flipRtl_(this.markerBlock_);this.currentMarkerSvg=this.markerBlock_}; -Blockly.blockRendering.MarkerSvg.prototype.positionPrevious_=function(a,b,c,d){a=Blockly.utils.svgPaths.moveBy(-b,c)+Blockly.utils.svgPaths.lineOnAxis("V",-b)+Blockly.utils.svgPaths.lineOnAxis("H",this.constants_.NOTCH_OFFSET_LEFT)+d.pathLeft+Blockly.utils.svgPaths.lineOnAxis("H",a+2*b)+Blockly.utils.svgPaths.lineOnAxis("V",c);this.markerBlock_.setAttribute("d",a);this.workspace_.RTL&&this.flipRtl_(this.markerBlock_);this.currentMarkerSvg=this.markerBlock_}; -Blockly.blockRendering.MarkerSvg.prototype.positionRect_=function(a,b,c,d){this.markerSvgRect_.setAttribute("x",a);this.markerSvgRect_.setAttribute("y",b);this.markerSvgRect_.setAttribute("width",c);this.markerSvgRect_.setAttribute("height",d);this.currentMarkerSvg=this.markerSvgRect_};Blockly.blockRendering.MarkerSvg.prototype.flipRtl_=function(a){a.setAttribute("transform","scale(-1 1)")}; -Blockly.blockRendering.MarkerSvg.prototype.hide=function(){this.markerSvgLine_.style.display="none";this.markerSvgRect_.style.display="none";this.markerInput_.style.display="none";this.markerBlock_.style.display="none"}; -Blockly.blockRendering.MarkerSvg.prototype.draw=function(a,b){if(b){this.constants_=this.workspace_.getRenderer().getConstants();var c=this.isCursor()?this.constants_.CURSOR_COLOUR:this.constants_.MARKER_COLOUR;this.colour_=this.marker_.colour||c;this.applyColour_();this.showAtLocation_(b);this.firemarkerEvent_(a,b);a=this.currentMarkerSvg.childNodes[0];void 0!==a&&a.beginElement&&a.beginElement()}else this.hide()}; -Blockly.blockRendering.MarkerSvg.prototype.showAtLocation_=function(a){a.getType()==Blockly.ASTNode.types.BLOCK?(a=a.getLocation(),this.showWithBlockPrevOutput_(a)):a.getType()==Blockly.ASTNode.types.OUTPUT?(a=a.getLocation().getSourceBlock(),this.showWithBlockPrevOutput_(a)):a.getLocation().type==Blockly.INPUT_VALUE?this.showWithInput_(a):a.getLocation().type==Blockly.NEXT_STATEMENT?this.showWithNext_(a):a.getType()==Blockly.ASTNode.types.PREVIOUS?(a=a.getLocation().getSourceBlock(),this.showWithBlockPrevOutput_(a)): -a.getType()==Blockly.ASTNode.types.FIELD?this.showWithField_(a):a.getType()==Blockly.ASTNode.types.WORKSPACE?this.showWithCoordinates_(a):a.getType()==Blockly.ASTNode.types.STACK&&this.showWithStack_(a)};Blockly.blockRendering.MarkerSvg.prototype.firemarkerEvent_=function(a,b){var c=b.getSourceBlock(),d=this.isCursor()?"cursorMove":"markerMove";a=new Blockly.Events.Ui(c,d,a,b);b.getType()==Blockly.ASTNode.types.WORKSPACE&&(a.workspaceId=b.getLocation().id);Blockly.Events.fire(a)}; -Blockly.blockRendering.MarkerSvg.prototype.getBlinkProperties_=function(){return{attributeType:"XML",attributeName:"fill",dur:"1s",values:this.colour_+";transparent;transparent;",repeatCount:"indefinite"}}; -Blockly.blockRendering.MarkerSvg.prototype.createDomInternal_=function(){this.markerSvg_=Blockly.utils.dom.createSvgElement("g",{width:this.constants_.CURSOR_WS_WIDTH,height:this.constants_.WS_CURSOR_HEIGHT},this.svgGroup_);this.markerSvgLine_=Blockly.utils.dom.createSvgElement("rect",{width:this.constants_.CURSOR_WS_WIDTH,height:this.constants_.WS_CURSOR_HEIGHT,style:"display: none"},this.markerSvg_);this.markerSvgRect_=Blockly.utils.dom.createSvgElement("rect",{"class":"blocklyVerticalMarker",rx:10, -ry:10,style:"display: none"},this.markerSvg_);this.markerInput_=Blockly.utils.dom.createSvgElement("path",{transform:"",style:"display: none"},this.markerSvg_);this.markerBlock_=Blockly.utils.dom.createSvgElement("path",{transform:"",style:"display: none",fill:"none","stroke-width":this.constants_.CURSOR_STROKE_WIDTH},this.markerSvg_);if(this.isCursor()){var a=this.getBlinkProperties_();Blockly.utils.dom.createSvgElement("animate",a,this.markerSvgLine_);Blockly.utils.dom.createSvgElement("animate", -a,this.markerInput_);a.attributeName="stroke";Blockly.utils.dom.createSvgElement("animate",a,this.markerBlock_)}return this.markerSvg_}; -Blockly.blockRendering.MarkerSvg.prototype.applyColour_=function(){this.markerSvgLine_.setAttribute("fill",this.colour_);this.markerSvgRect_.setAttribute("stroke",this.colour_);this.markerInput_.setAttribute("fill",this.colour_);this.markerBlock_.setAttribute("stroke",this.colour_);if(this.isCursor()){var a=this.colour_+";transparent;transparent;";this.markerSvgLine_.firstChild.setAttribute("values",a);this.markerInput_.firstChild.setAttribute("values",a);this.markerBlock_.firstChild.setAttribute("values", -a)}};Blockly.blockRendering.MarkerSvg.prototype.dispose=function(){this.svgGroup_&&Blockly.utils.dom.removeNode(this.svgGroup_)};Blockly.blockRendering.Types={NONE:0,FIELD:1,HAT:2,ICON:4,SPACER:8,BETWEEN_ROW_SPACER:16,IN_ROW_SPACER:32,EXTERNAL_VALUE_INPUT:64,INPUT:128,INLINE_INPUT:256,STATEMENT_INPUT:512,CONNECTION:1024,PREVIOUS_CONNECTION:2048,NEXT_CONNECTION:4096,OUTPUT_CONNECTION:8192,CORNER:16384,LEFT_SQUARE_CORNER:32768,LEFT_ROUND_CORNER:65536,RIGHT_SQUARE_CORNER:131072,RIGHT_ROUND_CORNER:262144,JAGGED_EDGE:524288,ROW:1048576,TOP_ROW:2097152,BOTTOM_ROW:4194304,INPUT_ROW:8388608}; -Blockly.blockRendering.Types.LEFT_CORNER=Blockly.blockRendering.Types.LEFT_SQUARE_CORNER|Blockly.blockRendering.Types.LEFT_ROUND_CORNER;Blockly.blockRendering.Types.RIGHT_CORNER=Blockly.blockRendering.Types.RIGHT_SQUARE_CORNER|Blockly.blockRendering.Types.RIGHT_ROUND_CORNER;Blockly.blockRendering.Types.nextTypeValue_=16777216; -Blockly.blockRendering.Types.getType=function(a){Blockly.blockRendering.Types.hasOwnProperty(a)||(Blockly.blockRendering.Types[a]=Blockly.blockRendering.Types.nextTypeValue_,Blockly.blockRendering.Types.nextTypeValue_<<=1);return Blockly.blockRendering.Types[a]};Blockly.blockRendering.Types.isField=function(a){return a.type&Blockly.blockRendering.Types.FIELD};Blockly.blockRendering.Types.isHat=function(a){return a.type&Blockly.blockRendering.Types.HAT}; -Blockly.blockRendering.Types.isIcon=function(a){return a.type&Blockly.blockRendering.Types.ICON};Blockly.blockRendering.Types.isSpacer=function(a){return a.type&Blockly.blockRendering.Types.SPACER};Blockly.blockRendering.Types.isInRowSpacer=function(a){return a.type&Blockly.blockRendering.Types.IN_ROW_SPACER};Blockly.blockRendering.Types.isInput=function(a){return a.type&Blockly.blockRendering.Types.INPUT};Blockly.blockRendering.Types.isExternalInput=function(a){return a.type&Blockly.blockRendering.Types.EXTERNAL_VALUE_INPUT}; -Blockly.blockRendering.Types.isInlineInput=function(a){return a.type&Blockly.blockRendering.Types.INLINE_INPUT};Blockly.blockRendering.Types.isStatementInput=function(a){return a.type&Blockly.blockRendering.Types.STATEMENT_INPUT};Blockly.blockRendering.Types.isPreviousConnection=function(a){return a.type&Blockly.blockRendering.Types.PREVIOUS_CONNECTION};Blockly.blockRendering.Types.isNextConnection=function(a){return a.type&Blockly.blockRendering.Types.NEXT_CONNECTION}; -Blockly.blockRendering.Types.isPreviousOrNextConnection=function(a){return a.type&(Blockly.blockRendering.Types.PREVIOUS_CONNECTION|Blockly.blockRendering.Types.NEXT_CONNECTION)};Blockly.blockRendering.Types.isLeftRoundedCorner=function(a){return a.type&Blockly.blockRendering.Types.LEFT_ROUND_CORNER};Blockly.blockRendering.Types.isRightRoundedCorner=function(a){return a.type&Blockly.blockRendering.Types.RIGHT_ROUND_CORNER}; -Blockly.blockRendering.Types.isLeftSquareCorner=function(a){return a.type&Blockly.blockRendering.Types.LEFT_SQUARE_CORNER};Blockly.blockRendering.Types.isRightSquareCorner=function(a){return a.type&Blockly.blockRendering.Types.RIGHT_SQUARE_CORNER};Blockly.blockRendering.Types.isCorner=function(a){return a.type&Blockly.blockRendering.Types.CORNER};Blockly.blockRendering.Types.isJaggedEdge=function(a){return a.type&Blockly.blockRendering.Types.JAGGED_EDGE}; -Blockly.blockRendering.Types.isRow=function(a){return a.type&Blockly.blockRendering.Types.ROW};Blockly.blockRendering.Types.isBetweenRowSpacer=function(a){return a.type&Blockly.blockRendering.Types.BETWEEN_ROW_SPACER};Blockly.blockRendering.Types.isTopRow=function(a){return a.type&Blockly.blockRendering.Types.TOP_ROW};Blockly.blockRendering.Types.isBottomRow=function(a){return a.type&Blockly.blockRendering.Types.BOTTOM_ROW}; -Blockly.blockRendering.Types.isTopOrBottomRow=function(a){return a.type&(Blockly.blockRendering.Types.TOP_ROW|Blockly.blockRendering.Types.BOTTOM_ROW)};Blockly.blockRendering.Types.isInputRow=function(a){return a.type&Blockly.blockRendering.Types.INPUT_ROW};Blockly.blockRendering.Measurable=function(a){this.height=this.width=0;this.type=Blockly.blockRendering.Types.NONE;this.centerline=this.xPos=0;this.constants_=a;this.notchOffset=this.constants_.NOTCH_OFFSET_LEFT};Blockly.blockRendering.Connection=function(a,b){Blockly.blockRendering.Connection.superClass_.constructor.call(this,a);this.connectionModel=b;this.shape=this.constants_.shapeFor(b);this.isDynamicShape=!!this.shape.isDynamic;this.type|=Blockly.blockRendering.Types.CONNECTION};Blockly.utils.object.inherits(Blockly.blockRendering.Connection,Blockly.blockRendering.Measurable); -Blockly.blockRendering.OutputConnection=function(a,b){Blockly.blockRendering.OutputConnection.superClass_.constructor.call(this,a,b);this.type|=Blockly.blockRendering.Types.OUTPUT_CONNECTION;this.height=this.isDynamicShape?0:this.shape.height;this.startX=this.width=this.isDynamicShape?0:this.shape.width;this.connectionOffsetY=this.constants_.TAB_OFFSET_FROM_TOP;this.connectionOffsetX=0};Blockly.utils.object.inherits(Blockly.blockRendering.OutputConnection,Blockly.blockRendering.Connection); -Blockly.blockRendering.PreviousConnection=function(a,b){Blockly.blockRendering.PreviousConnection.superClass_.constructor.call(this,a,b);this.type|=Blockly.blockRendering.Types.PREVIOUS_CONNECTION;this.height=this.shape.height;this.width=this.shape.width};Blockly.utils.object.inherits(Blockly.blockRendering.PreviousConnection,Blockly.blockRendering.Connection); -Blockly.blockRendering.NextConnection=function(a,b){Blockly.blockRendering.NextConnection.superClass_.constructor.call(this,a,b);this.type|=Blockly.blockRendering.Types.NEXT_CONNECTION;this.height=this.shape.height;this.width=this.shape.width};Blockly.utils.object.inherits(Blockly.blockRendering.NextConnection,Blockly.blockRendering.Connection);Blockly.blockRendering.InputConnection=function(a,b){Blockly.blockRendering.InputConnection.superClass_.constructor.call(this,a,b.connection);this.type|=Blockly.blockRendering.Types.INPUT;this.input=b;this.align=b.align;(this.connectedBlock=b.connection&&b.connection.targetBlock()?b.connection.targetBlock():null)?(a=this.connectedBlock.getHeightWidth(),this.connectedBlockWidth=a.width,this.connectedBlockHeight=a.height):this.connectedBlockHeight=this.connectedBlockWidth=0;this.connectionOffsetY=this.connectionOffsetX= -0};Blockly.utils.object.inherits(Blockly.blockRendering.InputConnection,Blockly.blockRendering.Connection); -Blockly.blockRendering.InlineInput=function(a,b){Blockly.blockRendering.InlineInput.superClass_.constructor.call(this,a,b);this.type|=Blockly.blockRendering.Types.INLINE_INPUT;this.connectedBlock?(this.width=this.connectedBlockWidth,this.height=this.connectedBlockHeight):(this.height=this.constants_.EMPTY_INLINE_INPUT_HEIGHT,this.width=this.constants_.EMPTY_INLINE_INPUT_PADDING);this.connectionHeight=this.isDynamicShape?this.shape.height(this.height):this.shape.height;this.connectionWidth=this.isDynamicShape? -this.shape.width(this.height):this.shape.width;this.connectedBlock||(this.width+=this.connectionWidth*(this.isDynamicShape?2:1));this.connectionOffsetY=this.isDynamicShape?this.shape.connectionOffsetY(this.connectionHeight):this.constants_.TAB_OFFSET_FROM_TOP;this.connectionOffsetX=this.isDynamicShape?this.shape.connectionOffsetX(this.connectionWidth):0};Blockly.utils.object.inherits(Blockly.blockRendering.InlineInput,Blockly.blockRendering.InputConnection); -Blockly.blockRendering.StatementInput=function(a,b){Blockly.blockRendering.StatementInput.superClass_.constructor.call(this,a,b);this.type|=Blockly.blockRendering.Types.STATEMENT_INPUT;this.height=this.connectedBlock?this.connectedBlockHeight+this.constants_.STATEMENT_BOTTOM_SPACER:this.constants_.EMPTY_STATEMENT_INPUT_HEIGHT;this.width=this.constants_.STATEMENT_INPUT_NOTCH_OFFSET+this.shape.width};Blockly.utils.object.inherits(Blockly.blockRendering.StatementInput,Blockly.blockRendering.InputConnection); -Blockly.blockRendering.ExternalValueInput=function(a,b){Blockly.blockRendering.ExternalValueInput.superClass_.constructor.call(this,a,b);this.type|=Blockly.blockRendering.Types.EXTERNAL_VALUE_INPUT;this.height=this.connectedBlock?this.connectedBlockHeight-this.constants_.TAB_OFFSET_FROM_TOP-this.constants_.MEDIUM_PADDING:this.shape.height;this.width=this.shape.width+this.constants_.EXTERNAL_VALUE_INPUT_PADDING;this.connectionOffsetY=this.constants_.TAB_OFFSET_FROM_TOP;this.connectionHeight=this.shape.height; -this.connectionWidth=this.shape.width};Blockly.utils.object.inherits(Blockly.blockRendering.ExternalValueInput,Blockly.blockRendering.InputConnection);Blockly.blockRendering.Icon=function(a,b){Blockly.blockRendering.Icon.superClass_.constructor.call(this,a);this.icon=b;this.isVisible=b.isVisible();this.type|=Blockly.blockRendering.Types.ICON;a=b.getCorrectedSize();this.height=a.height;this.width=a.width};Blockly.utils.object.inherits(Blockly.blockRendering.Icon,Blockly.blockRendering.Measurable); -Blockly.blockRendering.JaggedEdge=function(a){Blockly.blockRendering.JaggedEdge.superClass_.constructor.call(this,a);this.type|=Blockly.blockRendering.Types.JAGGED_EDGE;this.height=this.constants_.JAGGED_TEETH.height;this.width=this.constants_.JAGGED_TEETH.width};Blockly.utils.object.inherits(Blockly.blockRendering.JaggedEdge,Blockly.blockRendering.Measurable); -Blockly.blockRendering.Field=function(a,b,c){Blockly.blockRendering.Field.superClass_.constructor.call(this,a);this.field=b;this.isEditable=b.EDITABLE;this.flipRtl=b.getFlipRtl();this.type|=Blockly.blockRendering.Types.FIELD;a=this.field.getSize();this.height=a.height;this.width=a.width;this.parentInput=c};Blockly.utils.object.inherits(Blockly.blockRendering.Field,Blockly.blockRendering.Measurable); -Blockly.blockRendering.Hat=function(a){Blockly.blockRendering.Hat.superClass_.constructor.call(this,a);this.type|=Blockly.blockRendering.Types.HAT;this.height=this.constants_.START_HAT.height;this.width=this.constants_.START_HAT.width;this.ascenderHeight=this.height};Blockly.utils.object.inherits(Blockly.blockRendering.Hat,Blockly.blockRendering.Measurable); -Blockly.blockRendering.SquareCorner=function(a,b){Blockly.blockRendering.SquareCorner.superClass_.constructor.call(this,a);this.type=(b&&"left"!=b?Blockly.blockRendering.Types.RIGHT_SQUARE_CORNER:Blockly.blockRendering.Types.LEFT_SQUARE_CORNER)|Blockly.blockRendering.Types.CORNER;this.width=this.height=this.constants_.NO_PADDING};Blockly.utils.object.inherits(Blockly.blockRendering.SquareCorner,Blockly.blockRendering.Measurable); -Blockly.blockRendering.RoundCorner=function(a,b){Blockly.blockRendering.RoundCorner.superClass_.constructor.call(this,a);this.type=(b&&"left"!=b?Blockly.blockRendering.Types.RIGHT_ROUND_CORNER:Blockly.blockRendering.Types.LEFT_ROUND_CORNER)|Blockly.blockRendering.Types.CORNER;this.width=this.constants_.CORNER_RADIUS;this.height=this.constants_.CORNER_RADIUS/2};Blockly.utils.object.inherits(Blockly.blockRendering.RoundCorner,Blockly.blockRendering.Measurable); -Blockly.blockRendering.InRowSpacer=function(a,b){Blockly.blockRendering.InRowSpacer.superClass_.constructor.call(this,a);this.type=this.type|Blockly.blockRendering.Types.SPACER|Blockly.blockRendering.Types.IN_ROW_SPACER;this.width=b;this.height=this.constants_.SPACER_DEFAULT_HEIGHT};Blockly.utils.object.inherits(Blockly.blockRendering.InRowSpacer,Blockly.blockRendering.Measurable);Blockly.blockRendering.Row=function(a){this.type=Blockly.blockRendering.Types.ROW;this.elements=[];this.xPos=this.yPos=this.widthWithConnectedBlocks=this.minWidth=this.minHeight=this.width=this.height=0;this.hasJaggedEdge=this.hasDummyInput=this.hasInlineInput=this.hasStatement=this.hasExternalInput=!1;this.constants_=a;this.notchOffset=this.constants_.NOTCH_OFFSET_LEFT;this.align=null}; -Blockly.blockRendering.Row.prototype.measure=function(){throw Error("Unexpected attempt to measure a base Row.");};Blockly.blockRendering.Row.prototype.getLastInput=function(){for(var a=this.elements.length-1,b;b=this.elements[a];a--)if(Blockly.blockRendering.Types.isInput(b))return b;return null};Blockly.blockRendering.Row.prototype.startsWithElemSpacer=function(){return!0};Blockly.blockRendering.Row.prototype.endsWithElemSpacer=function(){return!0}; -Blockly.blockRendering.Row.prototype.getFirstSpacer=function(){for(var a=0,b;b=this.elements[a];a++)if(Blockly.blockRendering.Types.isSpacer(b))return b;return null};Blockly.blockRendering.Row.prototype.getLastSpacer=function(){for(var a=this.elements.length-1,b;b=this.elements[a];a--)if(Blockly.blockRendering.Types.isSpacer(b))return b;return null}; -Blockly.blockRendering.TopRow=function(a){Blockly.blockRendering.TopRow.superClass_.constructor.call(this,a);this.type|=Blockly.blockRendering.Types.TOP_ROW;this.ascenderHeight=this.capline=0;this.hasPreviousConnection=!1;this.connection=null};Blockly.utils.object.inherits(Blockly.blockRendering.TopRow,Blockly.blockRendering.Row); -Blockly.blockRendering.TopRow.prototype.hasLeftSquareCorner=function(a){var b=(a.hat?"cap"===a.hat:this.constants_.ADD_START_HATS)&&!a.outputConnection&&!a.previousConnection,c=a.getPreviousBlock();return!!a.outputConnection||b||(c?c.getNextBlock()==a:!1)};Blockly.blockRendering.TopRow.prototype.hasRightSquareCorner=function(a){return!0}; -Blockly.blockRendering.TopRow.prototype.measure=function(){for(var a=0,b=0,c=0,d=0,e;e=this.elements[d];d++)b+=e.width,Blockly.blockRendering.Types.isSpacer(e)||(Blockly.blockRendering.Types.isHat(e)?c=Math.max(c,e.ascenderHeight):a=Math.max(a,e.height));this.width=Math.max(this.minWidth,b);this.height=Math.max(this.minHeight,a)+c;this.capline=this.ascenderHeight=c;this.widthWithConnectedBlocks=this.width};Blockly.blockRendering.TopRow.prototype.startsWithElemSpacer=function(){return!1}; -Blockly.blockRendering.TopRow.prototype.endsWithElemSpacer=function(){return!1};Blockly.blockRendering.BottomRow=function(a){Blockly.blockRendering.BottomRow.superClass_.constructor.call(this,a);this.type|=Blockly.blockRendering.Types.BOTTOM_ROW;this.hasNextConnection=!1;this.connection=null;this.baseline=this.descenderHeight=0};Blockly.utils.object.inherits(Blockly.blockRendering.BottomRow,Blockly.blockRendering.Row); -Blockly.blockRendering.BottomRow.prototype.hasLeftSquareCorner=function(a){return!!a.outputConnection||!!a.getNextBlock()};Blockly.blockRendering.BottomRow.prototype.hasRightSquareCorner=function(a){return!0}; -Blockly.blockRendering.BottomRow.prototype.measure=function(){for(var a=0,b=0,c=0,d=0,e;e=this.elements[d];d++)b+=e.width,Blockly.blockRendering.Types.isSpacer(e)||(Blockly.blockRendering.Types.isNextConnection(e)?c=Math.max(c,e.height):a=Math.max(a,e.height));this.width=Math.max(this.minWidth,b);this.height=Math.max(this.minHeight,a)+c;this.descenderHeight=c;this.widthWithConnectedBlocks=this.width};Blockly.blockRendering.BottomRow.prototype.startsWithElemSpacer=function(){return!1}; -Blockly.blockRendering.BottomRow.prototype.endsWithElemSpacer=function(){return!1};Blockly.blockRendering.SpacerRow=function(a,b,c){Blockly.blockRendering.SpacerRow.superClass_.constructor.call(this,a);this.type=this.type|Blockly.blockRendering.Types.SPACER|Blockly.blockRendering.Types.BETWEEN_ROW_SPACER;this.width=c;this.height=b;this.followsStatement=!1;this.widthWithConnectedBlocks=0;this.elements=[new Blockly.blockRendering.InRowSpacer(this.constants_,c)]}; -Blockly.utils.object.inherits(Blockly.blockRendering.SpacerRow,Blockly.blockRendering.Row);Blockly.blockRendering.SpacerRow.prototype.measure=function(){};Blockly.blockRendering.InputRow=function(a){Blockly.blockRendering.InputRow.superClass_.constructor.call(this,a);this.type|=Blockly.blockRendering.Types.INPUT_ROW;this.connectedBlockWidths=0};Blockly.utils.object.inherits(Blockly.blockRendering.InputRow,Blockly.blockRendering.Row); -Blockly.blockRendering.InputRow.prototype.measure=function(){this.width=this.minWidth;this.height=this.minHeight;for(var a=0,b=0,c;c=this.elements[b];b++)this.width+=c.width,Blockly.blockRendering.Types.isInput(c)&&(Blockly.blockRendering.Types.isStatementInput(c)?a+=c.connectedBlockWidth:Blockly.blockRendering.Types.isExternalInput(c)&&0!=c.connectedBlockWidth&&(a+=c.connectedBlockWidth-c.connectionWidth)),Blockly.blockRendering.Types.isSpacer(c)||(this.height=Math.max(this.height,c.height));this.connectedBlockWidths= -a;this.widthWithConnectedBlocks=this.width+a};Blockly.blockRendering.InputRow.prototype.endsWithElemSpacer=function(){return!this.hasExternalInput&&!this.hasStatement};Blockly.blockRendering.RenderInfo=function(a,b){this.block_=b;this.renderer_=a;this.constants_=this.renderer_.getConstants();this.outputConnection=b.outputConnection?new Blockly.blockRendering.OutputConnection(this.constants_,b.outputConnection):null;this.isInline=b.getInputsInline()&&!b.isCollapsed();this.isCollapsed=b.isCollapsed();this.isInsertionMarker=b.isInsertionMarker();this.RTL=b.RTL;this.statementEdge=this.width=this.widthWithChildren=this.height=0;this.rows=[];this.inputRows=[];this.hiddenIcons= -[];this.topRow=new Blockly.blockRendering.TopRow(this.constants_);this.bottomRow=new Blockly.blockRendering.BottomRow(this.constants_);this.startY=this.startX=0};Blockly.blockRendering.RenderInfo.prototype.getRenderer=function(){return this.renderer_};Blockly.blockRendering.RenderInfo.prototype.measure=function(){this.createRows_();this.addElemSpacing_();this.addRowSpacing_();this.computeBounds_();this.alignRowElements_();this.finalize_()}; -Blockly.blockRendering.RenderInfo.prototype.createRows_=function(){this.populateTopRow_();this.rows.push(this.topRow);var a=new Blockly.blockRendering.InputRow(this.constants_);this.inputRows.push(a);var b=this.block_.getIcons();if(b.length)for(var c=0,d;d=b[c];c++){var e=new Blockly.blockRendering.Icon(this.constants_,d);this.isCollapsed&&d.collapseHidden?this.hiddenIcons.push(e):a.elements.push(e)}d=null;for(c=0;b=this.block_.inputList[c];c++)if(b.isVisible()){this.shouldStartNewRow_(b,d)&&(this.rows.push(a), -a=new Blockly.blockRendering.InputRow(this.constants_),this.inputRows.push(a));for(d=0;e=b.fieldRow[d];d++)a.elements.push(new Blockly.blockRendering.Field(this.constants_,e,b));this.addInput_(b,a);d=b}this.isCollapsed&&(a.hasJaggedEdge=!0,a.elements.push(new Blockly.blockRendering.JaggedEdge(this.constants_)));(a.elements.length||a.hasDummyInput)&&this.rows.push(a);this.populateBottomRow_();this.rows.push(this.bottomRow)}; -Blockly.blockRendering.RenderInfo.prototype.populateTopRow_=function(){var a=!!this.block_.previousConnection,b=(this.block_.hat?"cap"===this.block_.hat:this.constants_.ADD_START_HATS)&&!this.outputConnection&&!a;this.topRow.hasLeftSquareCorner(this.block_)?this.topRow.elements.push(new Blockly.blockRendering.SquareCorner(this.constants_)):this.topRow.elements.push(new Blockly.blockRendering.RoundCorner(this.constants_));b?(a=new Blockly.blockRendering.Hat(this.constants_),this.topRow.elements.push(a), -this.topRow.capline=a.ascenderHeight):a&&(this.topRow.hasPreviousConnection=!0,this.topRow.connection=new Blockly.blockRendering.PreviousConnection(this.constants_,this.block_.previousConnection),this.topRow.elements.push(this.topRow.connection));this.block_.inputList.length&&this.block_.inputList[0].type==Blockly.NEXT_STATEMENT&&!this.block_.isCollapsed()?this.topRow.minHeight=this.constants_.TOP_ROW_PRECEDES_STATEMENT_MIN_HEIGHT:this.topRow.minHeight=this.constants_.TOP_ROW_MIN_HEIGHT;this.topRow.hasRightSquareCorner(this.block_)? -this.topRow.elements.push(new Blockly.blockRendering.SquareCorner(this.constants_,"right")):this.topRow.elements.push(new Blockly.blockRendering.RoundCorner(this.constants_,"right"))}; -Blockly.blockRendering.RenderInfo.prototype.populateBottomRow_=function(){this.bottomRow.hasNextConnection=!!this.block_.nextConnection;this.bottomRow.minHeight=this.block_.inputList.length&&this.block_.inputList[this.block_.inputList.length-1].type==Blockly.NEXT_STATEMENT?this.constants_.BOTTOM_ROW_AFTER_STATEMENT_MIN_HEIGHT:this.constants_.BOTTOM_ROW_MIN_HEIGHT;this.bottomRow.hasLeftSquareCorner(this.block_)?this.bottomRow.elements.push(new Blockly.blockRendering.SquareCorner(this.constants_)): -this.bottomRow.elements.push(new Blockly.blockRendering.RoundCorner(this.constants_));this.bottomRow.hasNextConnection&&(this.bottomRow.connection=new Blockly.blockRendering.NextConnection(this.constants_,this.block_.nextConnection),this.bottomRow.elements.push(this.bottomRow.connection));this.bottomRow.hasRightSquareCorner(this.block_)?this.bottomRow.elements.push(new Blockly.blockRendering.SquareCorner(this.constants_,"right")):this.bottomRow.elements.push(new Blockly.blockRendering.RoundCorner(this.constants_, -"right"))}; -Blockly.blockRendering.RenderInfo.prototype.addInput_=function(a,b){this.isInline&&a.type==Blockly.INPUT_VALUE?(b.elements.push(new Blockly.blockRendering.InlineInput(this.constants_,a)),b.hasInlineInput=!0):a.type==Blockly.NEXT_STATEMENT?(b.elements.push(new Blockly.blockRendering.StatementInput(this.constants_,a)),b.hasStatement=!0):a.type==Blockly.INPUT_VALUE?(b.elements.push(new Blockly.blockRendering.ExternalValueInput(this.constants_,a)),b.hasExternalInput=!0):a.type==Blockly.DUMMY_INPUT&&(b.minHeight= -Math.max(b.minHeight,a.getSourceBlock()&&a.getSourceBlock().isShadow()?this.constants_.DUMMY_INPUT_SHADOW_MIN_HEIGHT:this.constants_.DUMMY_INPUT_MIN_HEIGHT),b.hasDummyInput=!0);null==b.align&&(b.align=a.align)};Blockly.blockRendering.RenderInfo.prototype.shouldStartNewRow_=function(a,b){return b?a.type==Blockly.NEXT_STATEMENT||b.type==Blockly.NEXT_STATEMENT?!0:a.type==Blockly.INPUT_VALUE||a.type==Blockly.DUMMY_INPUT?!this.isInline:!1:!1}; -Blockly.blockRendering.RenderInfo.prototype.addElemSpacing_=function(){for(var a=0,b;b=this.rows[a];a++){var c=b.elements;b.elements=[];b.startsWithElemSpacer()&&b.elements.push(new Blockly.blockRendering.InRowSpacer(this.constants_,this.getInRowSpacing_(null,c[0])));if(c.length){for(var d=0;d.blocklyPathLight,",a+" .blocklyInsertionMarker>.blocklyPathDark {","fill-opacity: "+this.INSERTION_MARKER_OPACITY+";","stroke: none","}"])};Blockly.geras.Highlighter=function(a){this.info_=a;this.inlineSteps_=this.steps_="";this.RTL_=this.info_.RTL;a=a.getRenderer();this.constants_=a.getConstants();this.highlightConstants_=a.getHighlightConstants();this.highlightOffset_=this.highlightConstants_.OFFSET;this.outsideCornerPaths_=this.highlightConstants_.OUTSIDE_CORNER;this.insideCornerPaths_=this.highlightConstants_.INSIDE_CORNER;this.puzzleTabPaths_=this.highlightConstants_.PUZZLE_TAB;this.notchPaths_=this.highlightConstants_.NOTCH;this.startPaths_= -this.highlightConstants_.START_HAT;this.jaggedTeethPaths_=this.highlightConstants_.JAGGED_TEETH};Blockly.geras.Highlighter.prototype.getPath=function(){return this.steps_+"\n"+this.inlineSteps_}; -Blockly.geras.Highlighter.prototype.drawTopCorner=function(a){this.steps_+=Blockly.utils.svgPaths.moveBy(a.xPos,this.info_.startY);for(var b=0,c;c=a.elements[b];b++)Blockly.blockRendering.Types.isLeftSquareCorner(c)?this.steps_+=this.highlightConstants_.START_POINT:Blockly.blockRendering.Types.isLeftRoundedCorner(c)?this.steps_+=this.outsideCornerPaths_.topLeft(this.RTL_):Blockly.blockRendering.Types.isPreviousConnection(c)?this.steps_+=this.notchPaths_.pathLeft:Blockly.blockRendering.Types.isHat(c)? -this.steps_+=this.startPaths_.path(this.RTL_):Blockly.blockRendering.Types.isSpacer(c)&&0!=c.width&&(this.steps_+=Blockly.utils.svgPaths.lineOnAxis("H",c.xPos+c.width-this.highlightOffset_));this.steps_+=Blockly.utils.svgPaths.lineOnAxis("H",a.xPos+a.width-this.highlightOffset_)};Blockly.geras.Highlighter.prototype.drawJaggedEdge_=function(a){this.info_.RTL&&(this.steps_+=this.jaggedTeethPaths_.pathLeft+Blockly.utils.svgPaths.lineOnAxis("v",a.height-this.jaggedTeethPaths_.height-this.highlightOffset_))}; -Blockly.geras.Highlighter.prototype.drawValueInput=function(a){var b=a.getLastInput();if(this.RTL_){var c=a.height-b.connectionHeight;this.steps_+=Blockly.utils.svgPaths.moveTo(b.xPos+b.width-this.highlightOffset_,a.yPos)+this.puzzleTabPaths_.pathDown(this.RTL_)+Blockly.utils.svgPaths.lineOnAxis("v",c)}else this.steps_+=Blockly.utils.svgPaths.moveTo(b.xPos+b.width,a.yPos)+this.puzzleTabPaths_.pathDown(this.RTL_)}; -Blockly.geras.Highlighter.prototype.drawStatementInput=function(a){var b=a.getLastInput();if(this.RTL_){var c=a.height-2*this.insideCornerPaths_.height;this.steps_+=Blockly.utils.svgPaths.moveTo(b.xPos,a.yPos)+this.insideCornerPaths_.pathTop(this.RTL_)+Blockly.utils.svgPaths.lineOnAxis("v",c)+this.insideCornerPaths_.pathBottom(this.RTL_)+Blockly.utils.svgPaths.lineTo(a.width-b.xPos-this.insideCornerPaths_.width,0)}else this.steps_+=Blockly.utils.svgPaths.moveTo(b.xPos,a.yPos+a.height)+this.insideCornerPaths_.pathBottom(this.RTL_)+ -Blockly.utils.svgPaths.lineTo(a.width-b.xPos-this.insideCornerPaths_.width,0)};Blockly.geras.Highlighter.prototype.drawRightSideRow=function(a){var b=a.xPos+a.width-this.highlightOffset_;a.followsStatement&&(this.steps_+=Blockly.utils.svgPaths.lineOnAxis("H",b));this.RTL_&&(this.steps_+=Blockly.utils.svgPaths.lineOnAxis("H",b),a.height>this.highlightOffset_&&(this.steps_+=Blockly.utils.svgPaths.lineOnAxis("V",a.yPos+a.height-this.highlightOffset_)))}; -Blockly.geras.Highlighter.prototype.drawBottomRow=function(a){if(this.RTL_)this.steps_+=Blockly.utils.svgPaths.lineOnAxis("V",a.baseline-this.highlightOffset_);else{var b=this.info_.bottomRow.elements[0];Blockly.blockRendering.Types.isLeftSquareCorner(b)?this.steps_+=Blockly.utils.svgPaths.moveTo(a.xPos+this.highlightOffset_,a.baseline-this.highlightOffset_):Blockly.blockRendering.Types.isLeftRoundedCorner(b)&&(this.steps_+=Blockly.utils.svgPaths.moveTo(a.xPos,a.baseline),this.steps_+=this.outsideCornerPaths_.bottomLeft())}}; -Blockly.geras.Highlighter.prototype.drawLeft=function(){var a=this.info_.outputConnection;a&&(a=a.connectionOffsetY+a.height,this.RTL_?this.steps_+=Blockly.utils.svgPaths.moveTo(this.info_.startX,a):(this.steps_+=Blockly.utils.svgPaths.moveTo(this.info_.startX+this.highlightOffset_,this.info_.bottomRow.baseline-this.highlightOffset_),this.steps_+=Blockly.utils.svgPaths.lineOnAxis("V",a)),this.steps_+=this.puzzleTabPaths_.pathUp(this.RTL_));this.RTL_||(a=this.info_.topRow,Blockly.blockRendering.Types.isLeftRoundedCorner(a.elements[0])? -this.steps_+=Blockly.utils.svgPaths.lineOnAxis("V",this.outsideCornerPaths_.height):this.steps_+=Blockly.utils.svgPaths.lineOnAxis("V",a.capline+this.highlightOffset_))}; -Blockly.geras.Highlighter.prototype.drawInlineInput=function(a){var b=this.highlightOffset_,c=a.xPos+a.connectionWidth,d=a.centerline-a.height/2,e=a.width-a.connectionWidth,f=d+b;this.RTL_?(d=a.connectionOffsetY-b,a=a.height-(a.connectionOffsetY+a.connectionHeight)+b,this.inlineSteps_+=Blockly.utils.svgPaths.moveTo(c-b,f)+Blockly.utils.svgPaths.lineOnAxis("v",d)+this.puzzleTabPaths_.pathDown(this.RTL_)+Blockly.utils.svgPaths.lineOnAxis("v",a)+Blockly.utils.svgPaths.lineOnAxis("h",e)):this.inlineSteps_+= -Blockly.utils.svgPaths.moveTo(a.xPos+a.width+b,f)+Blockly.utils.svgPaths.lineOnAxis("v",a.height)+Blockly.utils.svgPaths.lineOnAxis("h",-e)+Blockly.utils.svgPaths.moveTo(c,d+a.connectionOffsetY)+this.puzzleTabPaths_.pathDown(this.RTL_)};Blockly.geras.InlineInput=function(a,b){Blockly.geras.InlineInput.superClass_.constructor.call(this,a,b);this.connectedBlock&&(this.width+=this.constants_.DARK_PATH_OFFSET,this.height+=this.constants_.DARK_PATH_OFFSET)};Blockly.utils.object.inherits(Blockly.geras.InlineInput,Blockly.blockRendering.InlineInput);Blockly.geras.StatementInput=function(a,b){Blockly.geras.StatementInput.superClass_.constructor.call(this,a,b);this.connectedBlock&&(this.height+=this.constants_.DARK_PATH_OFFSET)}; -Blockly.utils.object.inherits(Blockly.geras.StatementInput,Blockly.blockRendering.StatementInput);Blockly.geras.RenderInfo=function(a,b){Blockly.geras.RenderInfo.superClass_.constructor.call(this,a,b)};Blockly.utils.object.inherits(Blockly.geras.RenderInfo,Blockly.blockRendering.RenderInfo);Blockly.geras.RenderInfo.prototype.getRenderer=function(){return this.renderer_}; -Blockly.geras.RenderInfo.prototype.populateBottomRow_=function(){Blockly.geras.RenderInfo.superClass_.populateBottomRow_.call(this);this.block_.inputList.length&&this.block_.inputList[this.block_.inputList.length-1].type==Blockly.NEXT_STATEMENT||(this.bottomRow.minHeight=this.constants_.MEDIUM_PADDING-this.constants_.DARK_PATH_OFFSET)}; -Blockly.geras.RenderInfo.prototype.addInput_=function(a,b){this.isInline&&a.type==Blockly.INPUT_VALUE?(b.elements.push(new Blockly.geras.InlineInput(this.constants_,a)),b.hasInlineInput=!0):a.type==Blockly.NEXT_STATEMENT?(b.elements.push(new Blockly.geras.StatementInput(this.constants_,a)),b.hasStatement=!0):a.type==Blockly.INPUT_VALUE?(b.elements.push(new Blockly.blockRendering.ExternalValueInput(this.constants_,a)),b.hasExternalInput=!0):a.type==Blockly.DUMMY_INPUT&&(b.minHeight=Math.max(b.minHeight, -this.constants_.DUMMY_INPUT_MIN_HEIGHT),b.hasDummyInput=!0);this.isInline||null!=b.align||(b.align=a.align)}; -Blockly.geras.RenderInfo.prototype.addElemSpacing_=function(){for(var a=!1,b=0,c;c=this.rows[b];b++)c.hasExternalInput&&(a=!0);for(b=0;c=this.rows[b];b++){var d=c.elements;c.elements=[];c.startsWithElemSpacer()&&c.elements.push(new Blockly.blockRendering.InRowSpacer(this.constants_,this.getInRowSpacing_(null,d[0])));if(d.length){for(var e=0;eb?b:c;e=e?-1:1;a=(d?-1:1)*a/2;return Blockly.utils.svgPaths.lineTo(-e*c,a)+Blockly.utils.svgPaths.lineTo(e*c,a)}var b=this.MAX_DYNAMIC_CONNECTION_SHAPE_WIDTH;return{type:this.SHAPES.HEXAGONAL,isDynamic:!0,width:function(a){a/=2;return a>b?b:a},height:function(a){return a},connectionOffsetY:function(a){return a/2},connectionOffsetX:function(a){return-a},pathDown:function(b){return a(b,!1,!1)},pathUp:function(b){return a(b, -!0,!1)},pathRightDown:function(b){return a(b,!1,!0)},pathRightUp:function(b){return a(b,!1,!0)}}}; -Blockly.zelos.ConstantProvider.prototype.makeRounded=function(){function a(a,b,f){var d=a>c?a-c:0;a=(a>c?c:a)/2;return Blockly.utils.svgPaths.arc("a","0 0,1",a,Blockly.utils.svgPaths.point((b?-1:1)*a,(b?-1:1)*a))+Blockly.utils.svgPaths.lineOnAxis("v",(f?1:-1)*d)+Blockly.utils.svgPaths.arc("a","0 0,1",a,Blockly.utils.svgPaths.point((b?1:-1)*a,(b?-1:1)*a))}var b=this.MAX_DYNAMIC_CONNECTION_SHAPE_WIDTH,c=2*b;return{type:this.SHAPES.ROUND,isDynamic:!0,width:function(a){a/=2;return a>b?b:a},height:function(a){return a}, -connectionOffsetY:function(a){return a/2},connectionOffsetX:function(a){return-a},pathDown:function(b){return a(b,!1,!1)},pathUp:function(b){return a(b,!0,!1)},pathRightDown:function(b){return a(b,!1,!0)},pathRightUp:function(b){return a(b,!1,!0)}}}; -Blockly.zelos.ConstantProvider.prototype.makeSquared=function(){function a(a,d,e){a-=2*b;return Blockly.utils.svgPaths.arc("a","0 0,1",b,Blockly.utils.svgPaths.point((d?-1:1)*b,(d?-1:1)*b))+Blockly.utils.svgPaths.lineOnAxis("v",(e?1:-1)*a)+Blockly.utils.svgPaths.arc("a","0 0,1",b,Blockly.utils.svgPaths.point((d?1:-1)*b,(d?-1:1)*b))}var b=this.CORNER_RADIUS;return{type:this.SHAPES.SQUARE,isDynamic:!0,width:function(a){return b},height:function(a){return a},connectionOffsetY:function(a){return a/2}, -connectionOffsetX:function(a){return-a},pathDown:function(b){return a(b,!1,!1)},pathUp:function(b){return a(b,!0,!1)},pathRightDown:function(b){return a(b,!1,!0)},pathRightUp:function(b){return a(b,!1,!0)}}}; -Blockly.zelos.ConstantProvider.prototype.shapeFor=function(a){var b=a.getCheck();!b&&a.targetConnection&&(b=a.targetConnection.getCheck());switch(a.type){case Blockly.INPUT_VALUE:case Blockly.OUTPUT_VALUE:a=a.getSourceBlock().getOutputShape();if(null!=a)switch(a){case this.SHAPES.HEXAGONAL:return this.HEXAGONAL;case this.SHAPES.ROUND:return this.ROUNDED;case this.SHAPES.SQUARE:return this.SQUARED}if(b&&-1!=b.indexOf("Boolean"))return this.HEXAGONAL;if(b&&-1!=b.indexOf("Number"))return this.ROUNDED; -b&&b.indexOf("String");return this.ROUNDED;case Blockly.PREVIOUS_STATEMENT:case Blockly.NEXT_STATEMENT:return this.NOTCH;default:throw Error("Unknown type");}}; -Blockly.zelos.ConstantProvider.prototype.makeNotch=function(){function a(a){return Blockly.utils.svgPaths.curve("c",[Blockly.utils.svgPaths.point(a*e/2,0),Blockly.utils.svgPaths.point(a*e*3/4,g/2),Blockly.utils.svgPaths.point(a*e,g)])+Blockly.utils.svgPaths.line([Blockly.utils.svgPaths.point(a*e,f)])+Blockly.utils.svgPaths.curve("c",[Blockly.utils.svgPaths.point(a*e/4,g/2),Blockly.utils.svgPaths.point(a*e/2,g),Blockly.utils.svgPaths.point(a*e,g)])+Blockly.utils.svgPaths.lineOnAxis("h",a*d)+Blockly.utils.svgPaths.curve("c", -[Blockly.utils.svgPaths.point(a*e/2,0),Blockly.utils.svgPaths.point(a*e*3/4,-(g/2)),Blockly.utils.svgPaths.point(a*e,-g)])+Blockly.utils.svgPaths.line([Blockly.utils.svgPaths.point(a*e,-f)])+Blockly.utils.svgPaths.curve("c",[Blockly.utils.svgPaths.point(a*e/4,-(g/2)),Blockly.utils.svgPaths.point(a*e/2,-g),Blockly.utils.svgPaths.point(a*e,-g)])}var b=this.NOTCH_WIDTH,c=this.NOTCH_HEIGHT,d=b/3,e=d/3,f=c/2,g=f/2,h=a(1),k=a(-1);return{type:this.SHAPES.NOTCH,width:b,height:c,pathLeft:h,pathRight:k}}; -Blockly.zelos.ConstantProvider.prototype.makeInsideCorners=function(){var a=this.CORNER_RADIUS,b=Blockly.utils.svgPaths.arc("a","0 0,0",a,Blockly.utils.svgPaths.point(-a,a)),c=Blockly.utils.svgPaths.arc("a","0 0,1",a,Blockly.utils.svgPaths.point(-a,a)),d=Blockly.utils.svgPaths.arc("a","0 0,0",a,Blockly.utils.svgPaths.point(a,a)),e=Blockly.utils.svgPaths.arc("a","0 0,1",a,Blockly.utils.svgPaths.point(a,a));return{width:a,height:a,pathTop:b,pathBottom:d,rightWidth:a,rightHeight:a,pathTopRight:c,pathBottomRight:e}}; -Blockly.zelos.ConstantProvider.prototype.generateSecondaryColour_=function(a){return Blockly.utils.colour.blend("#000",a,.15)||a};Blockly.zelos.ConstantProvider.prototype.generateTertiaryColour_=function(a){return Blockly.utils.colour.blend("#000",a,.25)||a}; -Blockly.zelos.ConstantProvider.prototype.createDom=function(a,b,c){Blockly.zelos.ConstantProvider.superClass_.createDom.call(this,a,b,c);a=Blockly.utils.dom.createSvgElement("defs",{},a);b=Blockly.utils.dom.createSvgElement("filter",{id:"blocklySelectedGlowFilter"+this.randomIdentifier,height:"160%",width:"180%",y:"-30%",x:"-40%"},a);Blockly.utils.dom.createSvgElement("feGaussianBlur",{"in":"SourceGraphic",stdDeviation:this.SELECTED_GLOW_SIZE},b);c=Blockly.utils.dom.createSvgElement("feComponentTransfer", -{result:"outBlur"},b);Blockly.utils.dom.createSvgElement("feFuncA",{type:"table",tableValues:"0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1"},c);Blockly.utils.dom.createSvgElement("feFlood",{"flood-color":this.SELECTED_GLOW_COLOUR,"flood-opacity":1,result:"outColor"},b);Blockly.utils.dom.createSvgElement("feComposite",{"in":"outColor",in2:"outBlur",operator:"in",result:"outGlow"},b);this.selectedGlowFilterId=b.id;this.selectedGlowFilter_=b;a=Blockly.utils.dom.createSvgElement("filter",{id:"blocklyReplacementGlowFilter"+ -this.randomIdentifier,height:"160%",width:"180%",y:"-30%",x:"-40%"},a);Blockly.utils.dom.createSvgElement("feGaussianBlur",{"in":"SourceGraphic",stdDeviation:this.REPLACEMENT_GLOW_SIZE},a);b=Blockly.utils.dom.createSvgElement("feComponentTransfer",{result:"outBlur"},a);Blockly.utils.dom.createSvgElement("feFuncA",{type:"table",tableValues:"0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1"},b);Blockly.utils.dom.createSvgElement("feFlood",{"flood-color":this.REPLACEMENT_GLOW_COLOUR,"flood-opacity":1,result:"outColor"}, -a);Blockly.utils.dom.createSvgElement("feComposite",{"in":"outColor",in2:"outBlur",operator:"in",result:"outGlow"},a);Blockly.utils.dom.createSvgElement("feComposite",{"in":"SourceGraphic",in2:"outGlow",operator:"over"},a);this.replacementGlowFilterId=a.id;this.replacementGlowFilter_=a}; -Blockly.zelos.ConstantProvider.prototype.getCSS_=function(a){return[a+" .blocklyText, ",a+" .blocklyFlyoutLabelText {","font-family: "+this.FIELD_TEXT_FONTFAMILY+";","font-size: "+this.FIELD_TEXT_FONTSIZE+"pt;","font-weight: "+this.FIELD_TEXT_FONTWEIGHT+";","}",a+" .blocklyText {","fill: #fff;","}",a+" .blocklyNonEditableText>rect:not(.blocklyDropdownRect),",a+" .blocklyEditableText>rect:not(.blocklyDropdownRect) {","fill: "+this.FIELD_BORDER_RECT_COLOUR+";","}",a+" .blocklyNonEditableText>text,", -a+" .blocklyEditableText>text,",a+" .blocklyNonEditableText>g>text,",a+" .blocklyEditableText>g>text {","fill: #575E75;","}",a+" .blocklyFlyoutLabelText {","fill: #575E75;","}",a+" .blocklyText.blocklyBubbleText {","fill: #575E75;","}",a+" .blocklyDraggable:not(.blocklyDisabled)"," .blocklyEditableText:not(.editing):hover>rect ,",a+" .blocklyDraggable:not(.blocklyDisabled)"," .blocklyEditableText:not(.editing):hover>.blocklyPath {","stroke: #fff;","stroke-width: 2;","}",a+" .blocklyHtmlInput {","font-family: "+ -this.FIELD_TEXT_FONTFAMILY+";","font-weight: "+this.FIELD_TEXT_FONTWEIGHT+";","color: #575E75;","}",a+" .blocklyDropdownText {","fill: #fff !important;","}",a+".blocklyWidgetDiv .goog-menuitem,",a+".blocklyDropDownDiv .goog-menuitem {","font-family: "+this.FIELD_TEXT_FONTFAMILY+";","}",a+".blocklyDropDownDiv .goog-menuitem-content {","color: #fff;","}",a+" .blocklyHighlightedConnectionPath {","stroke: "+this.SELECTED_GLOW_COLOUR+";","}",a+" .blocklyDisabled > .blocklyOutlinePath {","fill: url(#blocklyDisabledPattern"+ -this.randomIdentifier+")","}",a+" .blocklyInsertionMarker>.blocklyPath {","fill-opacity: "+this.INSERTION_MARKER_OPACITY+";","stroke: none","}"]};Blockly.zelos.TopRow=function(a){Blockly.zelos.TopRow.superClass_.constructor.call(this,a)};Blockly.utils.object.inherits(Blockly.zelos.TopRow,Blockly.blockRendering.TopRow);Blockly.zelos.TopRow.prototype.endsWithElemSpacer=function(){return!1};Blockly.zelos.TopRow.prototype.hasLeftSquareCorner=function(a){var b=(a.hat?"cap"===a.hat:this.constants_.ADD_START_HATS)&&!a.outputConnection&&!a.previousConnection;return!!a.outputConnection||b}; -Blockly.zelos.TopRow.prototype.hasRightSquareCorner=function(a){return!!a.outputConnection&&!a.statementInputCount&&!a.nextConnection};Blockly.zelos.BottomRow=function(a){Blockly.zelos.BottomRow.superClass_.constructor.call(this,a)};Blockly.utils.object.inherits(Blockly.zelos.BottomRow,Blockly.blockRendering.BottomRow);Blockly.zelos.BottomRow.prototype.endsWithElemSpacer=function(){return!1};Blockly.zelos.BottomRow.prototype.hasLeftSquareCorner=function(a){return!!a.outputConnection}; -Blockly.zelos.BottomRow.prototype.hasRightSquareCorner=function(a){return!!a.outputConnection&&!a.statementInputCount&&!a.nextConnection};Blockly.zelos.RightConnectionShape=function(a){Blockly.zelos.RightConnectionShape.superClass_.constructor.call(this,a);this.type|=Blockly.blockRendering.Types.getType("RIGHT_CONNECTION");this.width=this.height=0};Blockly.utils.object.inherits(Blockly.zelos.RightConnectionShape,Blockly.blockRendering.Measurable);Blockly.zelos.StatementInput=function(a,b){Blockly.zelos.StatementInput.superClass_.constructor.call(this,a,b);if(this.connectedBlock){for(a=this.connectedBlock;a.getNextBlock();)a=a.getNextBlock();a.nextConnection||(this.height=this.connectedBlockHeight,this.connectedBottomNextConnection=!0)}};Blockly.utils.object.inherits(Blockly.zelos.StatementInput,Blockly.blockRendering.StatementInput);Blockly.zelos.RenderInfo=function(a,b){Blockly.zelos.RenderInfo.superClass_.constructor.call(this,a,b);this.topRow=new Blockly.zelos.TopRow(this.constants_);this.bottomRow=new Blockly.zelos.BottomRow(this.constants_);this.isInline=!0;this.isMultiRow=!b.getInputsInline()||b.isCollapsed();this.hasStatementInput=0=this.rows.length-1?!!this.bottomRow.hasNextConnection:!!f.precedesStatement;if(Blockly.blockRendering.Types.isInputRow(e)&&e.hasStatement)e.measure(),b=e.width-e.getLastInput().width+a;else if(d&&(2==c||f)&& -Blockly.blockRendering.Types.isInputRow(e)&&!e.hasStatement){f=e.xPos;d=null;for(var g=0,h;h=e.elements[g];g++)Blockly.blockRendering.Types.isSpacer(h)&&(d=h),!(d&&(Blockly.blockRendering.Types.isField(h)||Blockly.blockRendering.Types.isInput(h))&&fc?c:this.height/2,b-c*(1-Math.sin(Math.acos((c-this.constants_.SMALL_PADDING)/c)));default:return 0}if(Blockly.blockRendering.Types.isInlineInput(a)){var e=a.connectedBlock;a=e?e.pathObject.outputShapeType: -a.shape.type;return e&&e.outputConnection&&(e.statementInputCount||e.nextConnection)||c==d.SHAPES.HEXAGONAL&&c!=a?0:b-this.constants_.SHAPE_IN_SHAPE_PADDING[c][a]}return Blockly.blockRendering.Types.isField(a)?c==d.SHAPES.ROUND&&a.field instanceof Blockly.FieldTextInput?b-2.75*d.GRID_UNIT:b-this.constants_.SHAPE_IN_SHAPE_PADDING[c][0]:Blockly.blockRendering.Types.isIcon(a)?this.constants_.SMALL_PADDING:0}; -Blockly.zelos.RenderInfo.prototype.finalizeVerticalAlignment_=function(){if(!this.outputConnection)for(var a=2;a=this.rows.length-1?!!this.bottomRow.hasNextConnection:!!d.precedesStatement;if(e?this.topRow.hasPreviousConnection:b.followsStatement){var g=3==c.elements.length&&(c.elements[1].field instanceof Blockly.FieldLabel||c.elements[1].field instanceof Blockly.FieldImage);if(!e&&g)b.height-=this.constants_.SMALL_PADDING, -d.height-=this.constants_.SMALL_PADDING,c.height-=this.constants_.MEDIUM_PADDING;else if(!e&&!f)b.height+=this.constants_.SMALL_PADDING;else if(f){e=!1;for(f=0;g=c.elements[f];f++)if(Blockly.blockRendering.Types.isInlineInput(g)&&g.connectedBlock&&!g.connectedBlock.isShadow()&&40<=g.connectedBlock.getHeightWidth().height){e=!0;break}e&&(b.height-=this.constants_.SMALL_PADDING,d.height-=this.constants_.SMALL_PADDING)}}}}; -Blockly.zelos.RenderInfo.prototype.finalize_=function(){this.finalizeOutputConnection_();this.finalizeHorizontalAlignment_();this.finalizeVerticalAlignment_();Blockly.zelos.RenderInfo.superClass_.finalize_.call(this);this.rightSide&&(this.widthWithChildren+=this.rightSide.width)};Blockly.zelos.Drawer=function(a,b){Blockly.zelos.Drawer.superClass_.constructor.call(this,a,b)};Blockly.utils.object.inherits(Blockly.zelos.Drawer,Blockly.blockRendering.Drawer); -Blockly.zelos.Drawer.prototype.draw=function(){var a=this.block_.pathObject;a.beginDrawing();this.hideHiddenIcons_();this.drawOutline_();this.drawInternals_();a.setPath(this.outlinePath_+"\n"+this.inlinePath_);this.info_.RTL&&a.flipRTL();Blockly.blockRendering.useDebugger&&this.block_.renderingDebugger.drawDebug(this.block_,this.info_);this.recordSizeOnBlock_();this.info_.outputConnection&&(a.outputShapeType=this.info_.outputConnection.shape.type);a.endDrawing()}; -Blockly.zelos.Drawer.prototype.drawOutline_=function(){this.info_.outputConnection&&this.info_.outputConnection.isDynamicShape&&!this.info_.hasStatementInput&&!this.info_.bottomRow.hasNextConnection?(this.drawFlatTop_(),this.drawRightDynamicConnection_(),this.drawFlatBottom_(),this.drawLeftDynamicConnection_()):Blockly.zelos.Drawer.superClass_.drawOutline_.call(this)}; -Blockly.zelos.Drawer.prototype.drawLeft_=function(){this.info_.outputConnection&&this.info_.outputConnection.isDynamicShape?this.drawLeftDynamicConnection_():Blockly.zelos.Drawer.superClass_.drawLeft_.call(this)}; -Blockly.zelos.Drawer.prototype.drawRightSideRow_=function(a){if(!(0>=a.height))if(a.precedesStatement||a.followsStatement){var b=this.constants_.INSIDE_CORNERS.rightHeight;b=a.height-(a.precedesStatement?b:0);this.outlinePath_+=(a.followsStatement?this.constants_.INSIDE_CORNERS.pathBottomRight:"")+(0","GT"],["\u200f\u2265","GTE"]]},{type:"input_value",name:"B"}],inputsInline:!0,output:"Boolean",style:"logic_blocks",helpUrl:"%{BKY_LOGIC_COMPARE_HELPURL}",extensions:["logic_compare", -"logic_op_tooltip"]},{type:"logic_operation",message0:"%1 %2 %3",args0:[{type:"input_value",name:"A",check:"Boolean"},{type:"field_dropdown",name:"OP",options:[["%{BKY_LOGIC_OPERATION_AND}","AND"],["%{BKY_LOGIC_OPERATION_OR}","OR"]]},{type:"input_value",name:"B",check:"Boolean"}],inputsInline:!0,output:"Boolean",style:"logic_blocks",helpUrl:"%{BKY_LOGIC_OPERATION_HELPURL}",extensions:["logic_op_tooltip"]},{type:"logic_negate",message0:"%{BKY_LOGIC_NEGATE_TITLE}",args0:[{type:"input_value",name:"BOOL", -check:"Boolean"}],output:"Boolean",style:"logic_blocks",tooltip:"%{BKY_LOGIC_NEGATE_TOOLTIP}",helpUrl:"%{BKY_LOGIC_NEGATE_HELPURL}"},{type:"logic_null",message0:"%{BKY_LOGIC_NULL}",output:null,style:"logic_blocks",tooltip:"%{BKY_LOGIC_NULL_TOOLTIP}",helpUrl:"%{BKY_LOGIC_NULL_HELPURL}"},{type:"logic_ternary",message0:"%{BKY_LOGIC_TERNARY_CONDITION} %1",args0:[{type:"input_value",name:"IF",check:"Boolean"}],message1:"%{BKY_LOGIC_TERNARY_IF_TRUE} %1",args1:[{type:"input_value",name:"THEN"}],message2:"%{BKY_LOGIC_TERNARY_IF_FALSE} %1", -args2:[{type:"input_value",name:"ELSE"}],output:null,style:"logic_blocks",tooltip:"%{BKY_LOGIC_TERNARY_TOOLTIP}",helpUrl:"%{BKY_LOGIC_TERNARY_HELPURL}",extensions:["logic_ternary"]}]); -Blockly.defineBlocksWithJsonArray([{type:"controls_if_if",message0:"%{BKY_CONTROLS_IF_IF_TITLE_IF}",nextStatement:null,enableContextMenu:!1,style:"logic_blocks",tooltip:"%{BKY_CONTROLS_IF_IF_TOOLTIP}"},{type:"controls_if_elseif",message0:"%{BKY_CONTROLS_IF_ELSEIF_TITLE_ELSEIF}",previousStatement:null,nextStatement:null,enableContextMenu:!1,style:"logic_blocks",tooltip:"%{BKY_CONTROLS_IF_ELSEIF_TOOLTIP}"},{type:"controls_if_else",message0:"%{BKY_CONTROLS_IF_ELSE_TITLE_ELSE}",previousStatement:null, -enableContextMenu:!1,style:"logic_blocks",tooltip:"%{BKY_CONTROLS_IF_ELSE_TOOLTIP}"}]);Blockly.Constants.Logic.TOOLTIPS_BY_OP={EQ:"%{BKY_LOGIC_COMPARE_TOOLTIP_EQ}",NEQ:"%{BKY_LOGIC_COMPARE_TOOLTIP_NEQ}",LT:"%{BKY_LOGIC_COMPARE_TOOLTIP_LT}",LTE:"%{BKY_LOGIC_COMPARE_TOOLTIP_LTE}",GT:"%{BKY_LOGIC_COMPARE_TOOLTIP_GT}",GTE:"%{BKY_LOGIC_COMPARE_TOOLTIP_GTE}",AND:"%{BKY_LOGIC_OPERATION_TOOLTIP_AND}",OR:"%{BKY_LOGIC_OPERATION_TOOLTIP_OR}"}; -Blockly.Extensions.register("logic_op_tooltip",Blockly.Extensions.buildTooltipForDropdown("OP",Blockly.Constants.Logic.TOOLTIPS_BY_OP)); -Blockly.Constants.Logic.CONTROLS_IF_MUTATOR_MIXIN={elseifCount_:0,elseCount_:0,suppressPrefixSuffix:!0,mutationToDom:function(){if(!this.elseifCount_&&!this.elseCount_)return null;var a=Blockly.utils.xml.createElement("mutation");this.elseifCount_&&a.setAttribute("elseif",this.elseifCount_);this.elseCount_&&a.setAttribute("else",1);return a},domToMutation:function(a){this.elseifCount_=parseInt(a.getAttribute("elseif"),10)||0;this.elseCount_=parseInt(a.getAttribute("else"),10)||0;this.rebuildShape_()}, -decompose:function(a){var b=a.newBlock("controls_if_if");b.initSvg();for(var c=b.nextConnection,d=1;d<=this.elseifCount_;d++){var e=a.newBlock("controls_if_elseif");e.initSvg();c.connect(e.previousConnection);c=e.nextConnection}this.elseCount_&&(a=a.newBlock("controls_if_else"),a.initSvg(),c.connect(a.previousConnection));return b},compose:function(a){a=a.nextConnection.targetBlock();this.elseCount_=this.elseifCount_=0;for(var b=[null],c=[null],d=null;a;){switch(a.type){case "controls_if_elseif":this.elseifCount_++; -b.push(a.valueConnection_);c.push(a.statementConnection_);break;case "controls_if_else":this.elseCount_++;d=a.statementConnection_;break;default:throw TypeError("Unknown block type: "+a.type);}a=a.nextConnection&&a.nextConnection.targetBlock()}this.updateShape_();this.reconnectChildBlocks_(b,c,d)},saveConnections:function(a){a=a.nextConnection.targetBlock();for(var b=1;a;){switch(a.type){case "controls_if_elseif":var c=this.getInput("IF"+b),d=this.getInput("DO"+b);a.valueConnection_=c&&c.connection.targetConnection; -a.statementConnection_=d&&d.connection.targetConnection;b++;break;case "controls_if_else":d=this.getInput("ELSE");a.statementConnection_=d&&d.connection.targetConnection;break;default:throw TypeError("Unknown block type: "+a.type);}a=a.nextConnection&&a.nextConnection.targetBlock()}},rebuildShape_:function(){var a=[null],b=[null],c=null;this.getInput("ELSE")&&(c=this.getInput("ELSE").connection.targetConnection);for(var d=1;this.getInput("IF"+d);){var e=this.getInput("IF"+d),f=this.getInput("DO"+ -d);a.push(e.connection.targetConnection);b.push(f.connection.targetConnection);d++}this.updateShape_();this.reconnectChildBlocks_(a,b,c)},updateShape_:function(){this.getInput("ELSE")&&this.removeInput("ELSE");for(var a=1;this.getInput("IF"+a);)this.removeInput("IF"+a),this.removeInput("DO"+a),a++;for(a=1;a<=this.elseifCount_;a++)this.appendValueInput("IF"+a).setCheck("Boolean").appendField(Blockly.Msg.CONTROLS_IF_MSG_ELSEIF),this.appendStatementInput("DO"+a).appendField(Blockly.Msg.CONTROLS_IF_MSG_THEN); -this.elseCount_&&this.appendStatementInput("ELSE").appendField(Blockly.Msg.CONTROLS_IF_MSG_ELSE)},reconnectChildBlocks_:function(a,b,c){for(var d=1;d<=this.elseifCount_;d++)Blockly.Mutator.reconnect(a[d],this,"IF"+d),Blockly.Mutator.reconnect(b[d],this,"DO"+d);Blockly.Mutator.reconnect(c,this,"ELSE")}};Blockly.Extensions.registerMutator("controls_if_mutator",Blockly.Constants.Logic.CONTROLS_IF_MUTATOR_MIXIN,null,["controls_if_elseif","controls_if_else"]); -Blockly.Constants.Logic.CONTROLS_IF_TOOLTIP_EXTENSION=function(){this.setTooltip(function(){if(this.elseifCount_||this.elseCount_){if(!this.elseifCount_&&this.elseCount_)return Blockly.Msg.CONTROLS_IF_TOOLTIP_2;if(this.elseifCount_&&!this.elseCount_)return Blockly.Msg.CONTROLS_IF_TOOLTIP_3;if(this.elseifCount_&&this.elseCount_)return Blockly.Msg.CONTROLS_IF_TOOLTIP_4}else return Blockly.Msg.CONTROLS_IF_TOOLTIP_1;return""}.bind(this))};Blockly.Extensions.register("controls_if_tooltip",Blockly.Constants.Logic.CONTROLS_IF_TOOLTIP_EXTENSION); -Blockly.Constants.Logic.LOGIC_COMPARE_ONCHANGE_MIXIN={onchange:function(a){this.prevBlocks_||(this.prevBlocks_=[null,null]);var b=this.getInputTargetBlock("A"),c=this.getInputTargetBlock("B");b&&c&&!b.outputConnection.checkType(c.outputConnection)&&(Blockly.Events.setGroup(a.group),a=this.prevBlocks_[0],a!==b&&(b.unplug(),!a||a.isDisposed()||a.isShadow()||this.getInput("A").connection.connect(a.outputConnection)),b=this.prevBlocks_[1],b!==c&&(c.unplug(),!b||b.isDisposed()||b.isShadow()||this.getInput("B").connection.connect(b.outputConnection)), -this.bumpNeighbours(),Blockly.Events.setGroup(!1));this.prevBlocks_[0]=this.getInputTargetBlock("A");this.prevBlocks_[1]=this.getInputTargetBlock("B")}};Blockly.Constants.Logic.LOGIC_COMPARE_EXTENSION=function(){this.mixin(Blockly.Constants.Logic.LOGIC_COMPARE_ONCHANGE_MIXIN)};Blockly.Extensions.register("logic_compare",Blockly.Constants.Logic.LOGIC_COMPARE_EXTENSION); -Blockly.Constants.Logic.LOGIC_TERNARY_ONCHANGE_MIXIN={prevParentConnection_:null,onchange:function(a){var b=this.getInputTargetBlock("THEN"),c=this.getInputTargetBlock("ELSE"),d=this.outputConnection.targetConnection;if((b||c)&&d)for(var e=0;2>e;e++){var f=1==e?b:c;f&&!f.outputConnection.checkType(d)&&(Blockly.Events.setGroup(a.group),d===this.prevParentConnection_?(this.unplug(),d.getSourceBlock().bumpNeighbours()):(f.unplug(),f.bumpNeighbours()),Blockly.Events.setGroup(!1))}this.prevParentConnection_= -d}};Blockly.Extensions.registerMixin("logic_ternary",Blockly.Constants.Logic.LOGIC_TERNARY_ONCHANGE_MIXIN);Blockly.Blocks.loops={};Blockly.Constants.Loops={};Blockly.Constants.Loops.HUE=120; -Blockly.defineBlocksWithJsonArray([{type:"controls_repeat_ext",message0:"%{BKY_CONTROLS_REPEAT_TITLE}",args0:[{type:"input_value",name:"TIMES",check:"Number"}],message1:"%{BKY_CONTROLS_REPEAT_INPUT_DO} %1",args1:[{type:"input_statement",name:"DO"}],previousStatement:null,nextStatement:null,style:"loop_blocks",tooltip:"%{BKY_CONTROLS_REPEAT_TOOLTIP}",helpUrl:"%{BKY_CONTROLS_REPEAT_HELPURL}"},{type:"controls_repeat",message0:"%{BKY_CONTROLS_REPEAT_TITLE}",args0:[{type:"field_number",name:"TIMES",value:10, -min:0,precision:1}],message1:"%{BKY_CONTROLS_REPEAT_INPUT_DO} %1",args1:[{type:"input_statement",name:"DO"}],previousStatement:null,nextStatement:null,style:"loop_blocks",tooltip:"%{BKY_CONTROLS_REPEAT_TOOLTIP}",helpUrl:"%{BKY_CONTROLS_REPEAT_HELPURL}"},{type:"controls_whileUntil",message0:"%1 %2",args0:[{type:"field_dropdown",name:"MODE",options:[["%{BKY_CONTROLS_WHILEUNTIL_OPERATOR_WHILE}","WHILE"],["%{BKY_CONTROLS_WHILEUNTIL_OPERATOR_UNTIL}","UNTIL"]]},{type:"input_value",name:"BOOL",check:"Boolean"}], -message1:"%{BKY_CONTROLS_REPEAT_INPUT_DO} %1",args1:[{type:"input_statement",name:"DO"}],previousStatement:null,nextStatement:null,style:"loop_blocks",helpUrl:"%{BKY_CONTROLS_WHILEUNTIL_HELPURL}",extensions:["controls_whileUntil_tooltip"]},{type:"controls_for",message0:"%{BKY_CONTROLS_FOR_TITLE}",args0:[{type:"field_variable",name:"VAR",variable:null},{type:"input_value",name:"FROM",check:"Number",align:"RIGHT"},{type:"input_value",name:"TO",check:"Number",align:"RIGHT"},{type:"input_value",name:"BY", -check:"Number",align:"RIGHT"}],message1:"%{BKY_CONTROLS_REPEAT_INPUT_DO} %1",args1:[{type:"input_statement",name:"DO"}],inputsInline:!0,previousStatement:null,nextStatement:null,style:"loop_blocks",helpUrl:"%{BKY_CONTROLS_FOR_HELPURL}",extensions:["contextMenu_newGetVariableBlock","controls_for_tooltip"]},{type:"controls_forEach",message0:"%{BKY_CONTROLS_FOREACH_TITLE}",args0:[{type:"field_variable",name:"VAR",variable:null},{type:"input_value",name:"LIST",check:"Array"}],message1:"%{BKY_CONTROLS_REPEAT_INPUT_DO} %1", -args1:[{type:"input_statement",name:"DO"}],previousStatement:null,nextStatement:null,style:"loop_blocks",helpUrl:"%{BKY_CONTROLS_FOREACH_HELPURL}",extensions:["contextMenu_newGetVariableBlock","controls_forEach_tooltip"]},{type:"controls_flow_statements",message0:"%1",args0:[{type:"field_dropdown",name:"FLOW",options:[["%{BKY_CONTROLS_FLOW_STATEMENTS_OPERATOR_BREAK}","BREAK"],["%{BKY_CONTROLS_FLOW_STATEMENTS_OPERATOR_CONTINUE}","CONTINUE"]]}],previousStatement:null,style:"loop_blocks",helpUrl:"%{BKY_CONTROLS_FLOW_STATEMENTS_HELPURL}", -extensions:["controls_flow_tooltip","controls_flow_in_loop_check"]}]);Blockly.Constants.Loops.WHILE_UNTIL_TOOLTIPS={WHILE:"%{BKY_CONTROLS_WHILEUNTIL_TOOLTIP_WHILE}",UNTIL:"%{BKY_CONTROLS_WHILEUNTIL_TOOLTIP_UNTIL}"};Blockly.Extensions.register("controls_whileUntil_tooltip",Blockly.Extensions.buildTooltipForDropdown("MODE",Blockly.Constants.Loops.WHILE_UNTIL_TOOLTIPS));Blockly.Constants.Loops.BREAK_CONTINUE_TOOLTIPS={BREAK:"%{BKY_CONTROLS_FLOW_STATEMENTS_TOOLTIP_BREAK}",CONTINUE:"%{BKY_CONTROLS_FLOW_STATEMENTS_TOOLTIP_CONTINUE}"}; -Blockly.Extensions.register("controls_flow_tooltip",Blockly.Extensions.buildTooltipForDropdown("FLOW",Blockly.Constants.Loops.BREAK_CONTINUE_TOOLTIPS)); -Blockly.Constants.Loops.CUSTOM_CONTEXT_MENU_CREATE_VARIABLES_GET_MIXIN={customContextMenu:function(a){if(!this.isInFlyout){var b=this.getField("VAR").getVariable(),c=b.name;if(!this.isCollapsed()&&null!=c){var d={enabled:!0};d.text=Blockly.Msg.VARIABLES_SET_CREATE_GET.replace("%1",c);b=Blockly.Variables.generateVariableFieldDom(b);c=Blockly.utils.xml.createElement("block");c.setAttribute("type","variables_get");c.appendChild(b);d.callback=Blockly.ContextMenu.callbackFactory(this,c);a.push(d)}}}}; -Blockly.Extensions.registerMixin("contextMenu_newGetVariableBlock",Blockly.Constants.Loops.CUSTOM_CONTEXT_MENU_CREATE_VARIABLES_GET_MIXIN);Blockly.Extensions.register("controls_for_tooltip",Blockly.Extensions.buildTooltipWithFieldText("%{BKY_CONTROLS_FOR_TOOLTIP}","VAR"));Blockly.Extensions.register("controls_forEach_tooltip",Blockly.Extensions.buildTooltipWithFieldText("%{BKY_CONTROLS_FOREACH_TOOLTIP}","VAR")); -Blockly.Constants.Loops.CONTROL_FLOW_IN_LOOP_CHECK_MIXIN={LOOP_TYPES:["controls_repeat","controls_repeat_ext","controls_forEach","controls_for","controls_whileUntil"],suppressPrefixSuffix:!0,getSurroundLoop:function(a){do{if(-1!=Blockly.Constants.Loops.CONTROL_FLOW_IN_LOOP_CHECK_MIXIN.LOOP_TYPES.indexOf(a.type))return a;a=a.getSurroundParent()}while(a);return null},onchange:function(a){if(this.workspace.isDragging&&!this.workspace.isDragging()&&a.type==Blockly.Events.BLOCK_MOVE&&a.blockId==this.id){var b= -Blockly.Constants.Loops.CONTROL_FLOW_IN_LOOP_CHECK_MIXIN.getSurroundLoop(this);this.setWarningText(b?null:Blockly.Msg.CONTROLS_FLOW_STATEMENTS_WARNING);if(!this.isInFlyout){var c=Blockly.Events.getGroup();Blockly.Events.setGroup(a.group);this.setEnabled(b);Blockly.Events.setGroup(c)}}}};Blockly.Extensions.registerMixin("controls_flow_in_loop_check",Blockly.Constants.Loops.CONTROL_FLOW_IN_LOOP_CHECK_MIXIN);Blockly.Blocks.math={};Blockly.Constants.Math={};Blockly.Constants.Math.HUE=230; -Blockly.defineBlocksWithJsonArray([{type:"math_number",message0:"%1",args0:[{type:"field_number",name:"NUM",value:0}],output:"Number",helpUrl:"%{BKY_MATH_NUMBER_HELPURL}",style:"math_blocks",tooltip:"%{BKY_MATH_NUMBER_TOOLTIP}",extensions:["parent_tooltip_when_inline"]},{type:"math_arithmetic",message0:"%1 %2 %3",args0:[{type:"input_value",name:"A",check:"Number"},{type:"field_dropdown",name:"OP",options:[["%{BKY_MATH_ADDITION_SYMBOL}","ADD"],["%{BKY_MATH_SUBTRACTION_SYMBOL}","MINUS"],["%{BKY_MATH_MULTIPLICATION_SYMBOL}", -"MULTIPLY"],["%{BKY_MATH_DIVISION_SYMBOL}","DIVIDE"],["%{BKY_MATH_POWER_SYMBOL}","POWER"]]},{type:"input_value",name:"B",check:"Number"}],inputsInline:!0,output:"Number",style:"math_blocks",helpUrl:"%{BKY_MATH_ARITHMETIC_HELPURL}",extensions:["math_op_tooltip"]},{type:"math_single",message0:"%1 %2",args0:[{type:"field_dropdown",name:"OP",options:[["%{BKY_MATH_SINGLE_OP_ROOT}","ROOT"],["%{BKY_MATH_SINGLE_OP_ABSOLUTE}","ABS"],["-","NEG"],["ln","LN"],["log10","LOG10"],["e^","EXP"],["10^","POW10"]]}, -{type:"input_value",name:"NUM",check:"Number"}],output:"Number",style:"math_blocks",helpUrl:"%{BKY_MATH_SINGLE_HELPURL}",extensions:["math_op_tooltip"]},{type:"math_trig",message0:"%1 %2",args0:[{type:"field_dropdown",name:"OP",options:[["%{BKY_MATH_TRIG_SIN}","SIN"],["%{BKY_MATH_TRIG_COS}","COS"],["%{BKY_MATH_TRIG_TAN}","TAN"],["%{BKY_MATH_TRIG_ASIN}","ASIN"],["%{BKY_MATH_TRIG_ACOS}","ACOS"],["%{BKY_MATH_TRIG_ATAN}","ATAN"]]},{type:"input_value",name:"NUM",check:"Number"}],output:"Number",style:"math_blocks", -helpUrl:"%{BKY_MATH_TRIG_HELPURL}",extensions:["math_op_tooltip"]},{type:"math_constant",message0:"%1",args0:[{type:"field_dropdown",name:"CONSTANT",options:[["\u03c0","PI"],["e","E"],["\u03c6","GOLDEN_RATIO"],["sqrt(2)","SQRT2"],["sqrt(\u00bd)","SQRT1_2"],["\u221e","INFINITY"]]}],output:"Number",style:"math_blocks",tooltip:"%{BKY_MATH_CONSTANT_TOOLTIP}",helpUrl:"%{BKY_MATH_CONSTANT_HELPURL}"},{type:"math_number_property",message0:"%1 %2",args0:[{type:"input_value",name:"NUMBER_TO_CHECK",check:"Number"}, -{type:"field_dropdown",name:"PROPERTY",options:[["%{BKY_MATH_IS_EVEN}","EVEN"],["%{BKY_MATH_IS_ODD}","ODD"],["%{BKY_MATH_IS_PRIME}","PRIME"],["%{BKY_MATH_IS_WHOLE}","WHOLE"],["%{BKY_MATH_IS_POSITIVE}","POSITIVE"],["%{BKY_MATH_IS_NEGATIVE}","NEGATIVE"],["%{BKY_MATH_IS_DIVISIBLE_BY}","DIVISIBLE_BY"]]}],inputsInline:!0,output:"Boolean",style:"math_blocks",tooltip:"%{BKY_MATH_IS_TOOLTIP}",mutator:"math_is_divisibleby_mutator"},{type:"math_change",message0:"%{BKY_MATH_CHANGE_TITLE}",args0:[{type:"field_variable", -name:"VAR",variable:"%{BKY_MATH_CHANGE_TITLE_ITEM}"},{type:"input_value",name:"DELTA",check:"Number"}],previousStatement:null,nextStatement:null,style:"variable_blocks",helpUrl:"%{BKY_MATH_CHANGE_HELPURL}",extensions:["math_change_tooltip"]},{type:"math_round",message0:"%1 %2",args0:[{type:"field_dropdown",name:"OP",options:[["%{BKY_MATH_ROUND_OPERATOR_ROUND}","ROUND"],["%{BKY_MATH_ROUND_OPERATOR_ROUNDUP}","ROUNDUP"],["%{BKY_MATH_ROUND_OPERATOR_ROUNDDOWN}","ROUNDDOWN"]]},{type:"input_value",name:"NUM", -check:"Number"}],output:"Number",style:"math_blocks",helpUrl:"%{BKY_MATH_ROUND_HELPURL}",tooltip:"%{BKY_MATH_ROUND_TOOLTIP}"},{type:"math_on_list",message0:"%1 %2",args0:[{type:"field_dropdown",name:"OP",options:[["%{BKY_MATH_ONLIST_OPERATOR_SUM}","SUM"],["%{BKY_MATH_ONLIST_OPERATOR_MIN}","MIN"],["%{BKY_MATH_ONLIST_OPERATOR_MAX}","MAX"],["%{BKY_MATH_ONLIST_OPERATOR_AVERAGE}","AVERAGE"],["%{BKY_MATH_ONLIST_OPERATOR_MEDIAN}","MEDIAN"],["%{BKY_MATH_ONLIST_OPERATOR_MODE}","MODE"],["%{BKY_MATH_ONLIST_OPERATOR_STD_DEV}", -"STD_DEV"],["%{BKY_MATH_ONLIST_OPERATOR_RANDOM}","RANDOM"]]},{type:"input_value",name:"LIST",check:"Array"}],output:"Number",style:"math_blocks",helpUrl:"%{BKY_MATH_ONLIST_HELPURL}",mutator:"math_modes_of_list_mutator",extensions:["math_op_tooltip"]},{type:"math_modulo",message0:"%{BKY_MATH_MODULO_TITLE}",args0:[{type:"input_value",name:"DIVIDEND",check:"Number"},{type:"input_value",name:"DIVISOR",check:"Number"}],inputsInline:!0,output:"Number",style:"math_blocks",tooltip:"%{BKY_MATH_MODULO_TOOLTIP}", -helpUrl:"%{BKY_MATH_MODULO_HELPURL}"},{type:"math_constrain",message0:"%{BKY_MATH_CONSTRAIN_TITLE}",args0:[{type:"input_value",name:"VALUE",check:"Number"},{type:"input_value",name:"LOW",check:"Number"},{type:"input_value",name:"HIGH",check:"Number"}],inputsInline:!0,output:"Number",style:"math_blocks",tooltip:"%{BKY_MATH_CONSTRAIN_TOOLTIP}",helpUrl:"%{BKY_MATH_CONSTRAIN_HELPURL}"},{type:"math_random_int",message0:"%{BKY_MATH_RANDOM_INT_TITLE}",args0:[{type:"input_value",name:"FROM",check:"Number"}, -{type:"input_value",name:"TO",check:"Number"}],inputsInline:!0,output:"Number",style:"math_blocks",tooltip:"%{BKY_MATH_RANDOM_INT_TOOLTIP}",helpUrl:"%{BKY_MATH_RANDOM_INT_HELPURL}"},{type:"math_random_float",message0:"%{BKY_MATH_RANDOM_FLOAT_TITLE_RANDOM}",output:"Number",style:"math_blocks",tooltip:"%{BKY_MATH_RANDOM_FLOAT_TOOLTIP}",helpUrl:"%{BKY_MATH_RANDOM_FLOAT_HELPURL}"},{type:"math_atan2",message0:"%{BKY_MATH_ATAN2_TITLE}",args0:[{type:"input_value",name:"X",check:"Number"},{type:"input_value", -name:"Y",check:"Number"}],inputsInline:!0,output:"Number",style:"math_blocks",tooltip:"%{BKY_MATH_ATAN2_TOOLTIP}",helpUrl:"%{BKY_MATH_ATAN2_HELPURL}"}]); -Blockly.Constants.Math.TOOLTIPS_BY_OP={ADD:"%{BKY_MATH_ARITHMETIC_TOOLTIP_ADD}",MINUS:"%{BKY_MATH_ARITHMETIC_TOOLTIP_MINUS}",MULTIPLY:"%{BKY_MATH_ARITHMETIC_TOOLTIP_MULTIPLY}",DIVIDE:"%{BKY_MATH_ARITHMETIC_TOOLTIP_DIVIDE}",POWER:"%{BKY_MATH_ARITHMETIC_TOOLTIP_POWER}",ROOT:"%{BKY_MATH_SINGLE_TOOLTIP_ROOT}",ABS:"%{BKY_MATH_SINGLE_TOOLTIP_ABS}",NEG:"%{BKY_MATH_SINGLE_TOOLTIP_NEG}",LN:"%{BKY_MATH_SINGLE_TOOLTIP_LN}",LOG10:"%{BKY_MATH_SINGLE_TOOLTIP_LOG10}",EXP:"%{BKY_MATH_SINGLE_TOOLTIP_EXP}",POW10:"%{BKY_MATH_SINGLE_TOOLTIP_POW10}", -SIN:"%{BKY_MATH_TRIG_TOOLTIP_SIN}",COS:"%{BKY_MATH_TRIG_TOOLTIP_COS}",TAN:"%{BKY_MATH_TRIG_TOOLTIP_TAN}",ASIN:"%{BKY_MATH_TRIG_TOOLTIP_ASIN}",ACOS:"%{BKY_MATH_TRIG_TOOLTIP_ACOS}",ATAN:"%{BKY_MATH_TRIG_TOOLTIP_ATAN}",SUM:"%{BKY_MATH_ONLIST_TOOLTIP_SUM}",MIN:"%{BKY_MATH_ONLIST_TOOLTIP_MIN}",MAX:"%{BKY_MATH_ONLIST_TOOLTIP_MAX}",AVERAGE:"%{BKY_MATH_ONLIST_TOOLTIP_AVERAGE}",MEDIAN:"%{BKY_MATH_ONLIST_TOOLTIP_MEDIAN}",MODE:"%{BKY_MATH_ONLIST_TOOLTIP_MODE}",STD_DEV:"%{BKY_MATH_ONLIST_TOOLTIP_STD_DEV}",RANDOM:"%{BKY_MATH_ONLIST_TOOLTIP_RANDOM}"}; -Blockly.Extensions.register("math_op_tooltip",Blockly.Extensions.buildTooltipForDropdown("OP",Blockly.Constants.Math.TOOLTIPS_BY_OP)); -Blockly.Constants.Math.IS_DIVISIBLEBY_MUTATOR_MIXIN={mutationToDom:function(){var a=Blockly.utils.xml.createElement("mutation"),b="DIVISIBLE_BY"==this.getFieldValue("PROPERTY");a.setAttribute("divisor_input",b);return a},domToMutation:function(a){a="true"==a.getAttribute("divisor_input");this.updateShape_(a)},updateShape_:function(a){var b=this.getInput("DIVISOR");a?b||this.appendValueInput("DIVISOR").setCheck("Number"):b&&this.removeInput("DIVISOR")}}; -Blockly.Constants.Math.IS_DIVISIBLE_MUTATOR_EXTENSION=function(){this.getField("PROPERTY").setValidator(function(a){a="DIVISIBLE_BY"==a;this.getSourceBlock().updateShape_(a)})};Blockly.Extensions.registerMutator("math_is_divisibleby_mutator",Blockly.Constants.Math.IS_DIVISIBLEBY_MUTATOR_MIXIN,Blockly.Constants.Math.IS_DIVISIBLE_MUTATOR_EXTENSION);Blockly.Extensions.register("math_change_tooltip",Blockly.Extensions.buildTooltipWithFieldText("%{BKY_MATH_CHANGE_TOOLTIP}","VAR")); -Blockly.Constants.Math.LIST_MODES_MUTATOR_MIXIN={updateType_:function(a){"MODE"==a?this.outputConnection.setCheck("Array"):this.outputConnection.setCheck("Number")},mutationToDom:function(){var a=Blockly.utils.xml.createElement("mutation");a.setAttribute("op",this.getFieldValue("OP"));return a},domToMutation:function(a){this.updateType_(a.getAttribute("op"))}};Blockly.Constants.Math.LIST_MODES_MUTATOR_EXTENSION=function(){this.getField("OP").setValidator(function(a){this.updateType_(a)}.bind(this))}; -Blockly.Extensions.registerMutator("math_modes_of_list_mutator",Blockly.Constants.Math.LIST_MODES_MUTATOR_MIXIN,Blockly.Constants.Math.LIST_MODES_MUTATOR_EXTENSION);Blockly.Blocks.procedures={}; -Blockly.Blocks.procedures_defnoreturn={init:function(){var a=new Blockly.FieldTextInput("",Blockly.Procedures.rename);a.setSpellcheck(!1);this.appendDummyInput().appendField(Blockly.Msg.PROCEDURES_DEFNORETURN_TITLE).appendField(a,"NAME").appendField("","PARAMS");this.setMutator(new Blockly.Mutator(["procedures_mutatorarg"]));(this.workspace.options.comments||this.workspace.options.parentWorkspace&&this.workspace.options.parentWorkspace.options.comments)&&Blockly.Msg.PROCEDURES_DEFNORETURN_COMMENT&&this.setCommentText(Blockly.Msg.PROCEDURES_DEFNORETURN_COMMENT); -this.setStyle("procedure_blocks");this.setTooltip(Blockly.Msg.PROCEDURES_DEFNORETURN_TOOLTIP);this.setHelpUrl(Blockly.Msg.PROCEDURES_DEFNORETURN_HELPURL);this.arguments_=[];this.argumentVarModels_=[];this.setStatements_(!0);this.statementConnection_=null},setStatements_:function(a){this.hasStatements_!==a&&(a?(this.appendStatementInput("STACK").appendField(Blockly.Msg.PROCEDURES_DEFNORETURN_DO),this.getInput("RETURN")&&this.moveInputBefore("STACK","RETURN")):this.removeInput("STACK",!0),this.hasStatements_= -a)},updateParams_:function(){var a="";this.arguments_.length&&(a=Blockly.Msg.PROCEDURES_BEFORE_PARAMS+" "+this.arguments_.join(", "));Blockly.Events.disable();try{this.setFieldValue(a,"PARAMS")}finally{Blockly.Events.enable()}},mutationToDom:function(a){var b=Blockly.utils.xml.createElement("mutation");a&&b.setAttribute("name",this.getFieldValue("NAME"));for(var c=0;c","GT"],["\u200f\u2265", +"GTE"]]},{type:"input_value",name:"B"}],inputsInline:!0,output:"Boolean",style:"logic_blocks",helpUrl:"%{BKY_LOGIC_COMPARE_HELPURL}",extensions:["logic_compare","logic_op_tooltip"]},{type:"logic_operation",message0:"%1 %2 %3",args0:[{type:"input_value",name:"A",check:"Boolean"},{type:"field_dropdown",name:"OP",options:[["%{BKY_LOGIC_OPERATION_AND}","AND"],["%{BKY_LOGIC_OPERATION_OR}","OR"]]},{type:"input_value",name:"B",check:"Boolean"}],inputsInline:!0,output:"Boolean",style:"logic_blocks",helpUrl:"%{BKY_LOGIC_OPERATION_HELPURL}", +extensions:["logic_op_tooltip"]},{type:"logic_negate",message0:"%{BKY_LOGIC_NEGATE_TITLE}",args0:[{type:"input_value",name:"BOOL",check:"Boolean"}],output:"Boolean",style:"logic_blocks",tooltip:"%{BKY_LOGIC_NEGATE_TOOLTIP}",helpUrl:"%{BKY_LOGIC_NEGATE_HELPURL}"},{type:"logic_null",message0:"%{BKY_LOGIC_NULL}",output:null,style:"logic_blocks",tooltip:"%{BKY_LOGIC_NULL_TOOLTIP}",helpUrl:"%{BKY_LOGIC_NULL_HELPURL}"},{type:"logic_ternary",message0:"%{BKY_LOGIC_TERNARY_CONDITION} %1",args0:[{type:"input_value", +name:"IF",check:"Boolean"}],message1:"%{BKY_LOGIC_TERNARY_IF_TRUE} %1",args1:[{type:"input_value",name:"THEN"}],message2:"%{BKY_LOGIC_TERNARY_IF_FALSE} %1",args2:[{type:"input_value",name:"ELSE"}],output:null,style:"logic_blocks",tooltip:"%{BKY_LOGIC_TERNARY_TOOLTIP}",helpUrl:"%{BKY_LOGIC_TERNARY_HELPURL}",extensions:["logic_ternary"]},{type:"controls_if_if",message0:"%{BKY_CONTROLS_IF_IF_TITLE_IF}",nextStatement:null,enableContextMenu:!1,style:"logic_blocks",tooltip:"%{BKY_CONTROLS_IF_IF_TOOLTIP}"}, +{type:"controls_if_elseif",message0:"%{BKY_CONTROLS_IF_ELSEIF_TITLE_ELSEIF}",previousStatement:null,nextStatement:null,enableContextMenu:!1,style:"logic_blocks",tooltip:"%{BKY_CONTROLS_IF_ELSEIF_TOOLTIP}"},{type:"controls_if_else",message0:"%{BKY_CONTROLS_IF_ELSE_TITLE_ELSE}",previousStatement:null,enableContextMenu:!1,style:"logic_blocks",tooltip:"%{BKY_CONTROLS_IF_ELSE_TOOLTIP}"}]); +var module$contents$Blockly$libraryBlocks$logic_TOOLTIPS_BY_OP={EQ:"%{BKY_LOGIC_COMPARE_TOOLTIP_EQ}",NEQ:"%{BKY_LOGIC_COMPARE_TOOLTIP_NEQ}",LT:"%{BKY_LOGIC_COMPARE_TOOLTIP_LT}",LTE:"%{BKY_LOGIC_COMPARE_TOOLTIP_LTE}",GT:"%{BKY_LOGIC_COMPARE_TOOLTIP_GT}",GTE:"%{BKY_LOGIC_COMPARE_TOOLTIP_GTE}",AND:"%{BKY_LOGIC_OPERATION_TOOLTIP_AND}",OR:"%{BKY_LOGIC_OPERATION_TOOLTIP_OR}"};$.module$build$src$core$extensions.register("logic_op_tooltip",$.module$build$src$core$extensions.buildTooltipForDropdown("OP",module$contents$Blockly$libraryBlocks$logic_TOOLTIPS_BY_OP)); +var module$contents$Blockly$libraryBlocks$logic_CONTROLS_IF_MUTATOR_MIXIN={elseifCount_:0,elseCount_:0,mutationToDom:function(){if(!this.elseifCount_&&!this.elseCount_)return null;const a=$.module$build$src$core$utils$xml.createElement("mutation");this.elseifCount_&&a.setAttribute("elseif",this.elseifCount_);this.elseCount_&&a.setAttribute("else",1);return a},domToMutation:function(a){this.elseifCount_=parseInt(a.getAttribute("elseif"),10)||0;this.elseCount_=parseInt(a.getAttribute("else"),10)||0; +this.rebuildShape_()},saveExtraState:function(){if(!this.elseifCount_&&!this.elseCount_)return null;const a=Object.create(null);this.elseifCount_&&(a.elseIfCount=this.elseifCount_);this.elseCount_&&(a.hasElse=!0);return a},loadExtraState:function(a){this.elseifCount_=a.elseIfCount||0;this.elseCount_=a.hasElse?1:0;this.updateShape_()},decompose:function(a){const b=a.newBlock("controls_if_if");b.initSvg();let c=b.nextConnection;for(let d=1;d<=this.elseifCount_;d++){const e=a.newBlock("controls_if_elseif"); +e.initSvg();c.connect(e.previousConnection);c=e.nextConnection}this.elseCount_&&(a=a.newBlock("controls_if_else"),a.initSvg(),c.connect(a.previousConnection));return b},compose:function(a){a=a.nextConnection.targetBlock();this.elseCount_=this.elseifCount_=0;const b=[null],c=[null];let d=null;for(;a;){if(!a.isInsertionMarker())switch(a.type){case "controls_if_elseif":this.elseifCount_++;b.push(a.valueConnection_);c.push(a.statementConnection_);break;case "controls_if_else":this.elseCount_++;d=a.statementConnection_; +break;default:throw TypeError("Unknown block type: "+a.type);}a=a.getNextBlock()}this.updateShape_();this.reconnectChildBlocks_(b,c,d)},saveConnections:function(a){a=a.nextConnection.targetBlock();let b=1;for(;a;){if(!a.isInsertionMarker())switch(a.type){case "controls_if_elseif":var c=this.getInput("IF"+b);const d=this.getInput("DO"+b);a.valueConnection_=c&&c.connection.targetConnection;a.statementConnection_=d&&d.connection.targetConnection;b++;break;case "controls_if_else":c=this.getInput("ELSE"); +a.statementConnection_=c&&c.connection.targetConnection;break;default:throw TypeError("Unknown block type: "+a.type);}a=a.getNextBlock()}},rebuildShape_:function(){const a=[null],b=[null];let c=null;this.getInput("ELSE")&&(c=this.getInput("ELSE").connection.targetConnection);for(let d=1;this.getInput("IF"+d);d++){const e=this.getInput("IF"+d),f=this.getInput("DO"+d);a.push(e.connection.targetConnection);b.push(f.connection.targetConnection)}this.updateShape_();this.reconnectChildBlocks_(a,b,c)},updateShape_:function(){this.getInput("ELSE")&& +this.removeInput("ELSE");for(var a=1;this.getInput("IF"+a);a++)this.removeInput("IF"+a),this.removeInput("DO"+a);for(a=1;a<=this.elseifCount_;a++)this.appendValueInput("IF"+a).setCheck("Boolean").appendField(module$contents$Blockly$libraryBlocks$logic_Msg.CONTROLS_IF_MSG_ELSEIF),this.appendStatementInput("DO"+a).appendField(module$contents$Blockly$libraryBlocks$logic_Msg.CONTROLS_IF_MSG_THEN);this.elseCount_&&this.appendStatementInput("ELSE").appendField(module$contents$Blockly$libraryBlocks$logic_Msg.CONTROLS_IF_MSG_ELSE)}, +reconnectChildBlocks_:function(a,b,c){for(let d=1;d<=this.elseifCount_;d++)$.Mutator$$module$build$src$core$mutator.reconnect(a[d],this,"IF"+d),$.Mutator$$module$build$src$core$mutator.reconnect(b[d],this,"DO"+d);$.Mutator$$module$build$src$core$mutator.reconnect(c,this,"ELSE")}};$.module$build$src$core$extensions.registerMutator("controls_if_mutator",module$contents$Blockly$libraryBlocks$logic_CONTROLS_IF_MUTATOR_MIXIN,null,["controls_if_elseif","controls_if_else"]); +var module$contents$Blockly$libraryBlocks$logic_CONTROLS_IF_TOOLTIP_EXTENSION=function(){this.setTooltip(function(){if(this.elseifCount_||this.elseCount_){if(!this.elseifCount_&&this.elseCount_)return module$contents$Blockly$libraryBlocks$logic_Msg.CONTROLS_IF_TOOLTIP_2;if(this.elseifCount_&&!this.elseCount_)return module$contents$Blockly$libraryBlocks$logic_Msg.CONTROLS_IF_TOOLTIP_3;if(this.elseifCount_&&this.elseCount_)return module$contents$Blockly$libraryBlocks$logic_Msg.CONTROLS_IF_TOOLTIP_4}else return module$contents$Blockly$libraryBlocks$logic_Msg.CONTROLS_IF_TOOLTIP_1; +return""}.bind(this))};$.module$build$src$core$extensions.register("controls_if_tooltip",module$contents$Blockly$libraryBlocks$logic_CONTROLS_IF_TOOLTIP_EXTENSION); +var module$contents$Blockly$libraryBlocks$logic_LOGIC_COMPARE_ONCHANGE_MIXIN={onchange:function(a){this.prevBlocks_||(this.prevBlocks_=[null,null]);var b=this.getInputTargetBlock("A");const c=this.getInputTargetBlock("B");b&&c&&!this.workspace.connectionChecker.doTypeChecks(b.outputConnection,c.outputConnection)&&($.module$build$src$core$events$events.setGroup(a.group),a=this.prevBlocks_[0],a!==b&&(b.unplug(),!a||a.isDisposed()||a.isShadow()||this.getInput("A").connection.connect(a.outputConnection)), +b=this.prevBlocks_[1],b!==c&&(c.unplug(),!b||b.isDisposed()||b.isShadow()||this.getInput("B").connection.connect(b.outputConnection)),this.bumpNeighbours(),$.module$build$src$core$events$events.setGroup(!1));this.prevBlocks_[0]=this.getInputTargetBlock("A");this.prevBlocks_[1]=this.getInputTargetBlock("B")}},module$contents$Blockly$libraryBlocks$logic_LOGIC_COMPARE_EXTENSION=function(){this.mixin(module$contents$Blockly$libraryBlocks$logic_LOGIC_COMPARE_ONCHANGE_MIXIN)}; +$.module$build$src$core$extensions.register("logic_compare",module$contents$Blockly$libraryBlocks$logic_LOGIC_COMPARE_EXTENSION); +var module$contents$Blockly$libraryBlocks$logic_LOGIC_TERNARY_ONCHANGE_MIXIN={prevParentConnection_:null,onchange:function(a){const b=this.getInputTargetBlock("THEN"),c=this.getInputTargetBlock("ELSE"),d=this.outputConnection.targetConnection;if((b||c)&&d)for(let e=0;2>e;e++){const f=1===e?b:c;f&&!f.workspace.connectionChecker.doTypeChecks(f.outputConnection,d)&&($.module$build$src$core$events$events.setGroup(a.group),d===this.prevParentConnection_?(this.unplug(),d.getSourceBlock().bumpNeighbours()): +(f.unplug(),f.bumpNeighbours()),$.module$build$src$core$events$events.setGroup(!1))}this.prevParentConnection_=d}};$.module$build$src$core$extensions.registerMixin("logic_ternary",module$contents$Blockly$libraryBlocks$logic_LOGIC_TERNARY_ONCHANGE_MIXIN);module$contents$Blockly$libraryBlocks$logic_defineBlocks(module$exports$Blockly$libraryBlocks$logic.blocks);var module$exports$Blockly$libraryBlocks$loops={},module$contents$Blockly$libraryBlocks$loops_ContextMenu=$.module$build$src$core$contextmenu,module$contents$Blockly$libraryBlocks$loops_Events=$.module$build$src$core$events$events,module$contents$Blockly$libraryBlocks$loops_Extensions=$.module$build$src$core$extensions,module$contents$Blockly$libraryBlocks$loops_Variables=$.module$build$src$core$variables,module$contents$Blockly$libraryBlocks$loops_xmlUtils=$.module$build$src$core$utils$xml,module$contents$Blockly$libraryBlocks$loops_BlockDefinition= +Object,module$contents$Blockly$libraryBlocks$loops_Msg=$.module$build$src$core$msg.Msg,module$contents$Blockly$libraryBlocks$loops_createBlockDefinitionsFromJsonArray=$.module$build$src$core$common.createBlockDefinitionsFromJsonArray,module$contents$Blockly$libraryBlocks$loops_defineBlocks=$.module$build$src$core$common.defineBlocks; +module$exports$Blockly$libraryBlocks$loops.blocks=module$contents$Blockly$libraryBlocks$loops_createBlockDefinitionsFromJsonArray([{type:"controls_repeat_ext",message0:"%{BKY_CONTROLS_REPEAT_TITLE}",args0:[{type:"input_value",name:"TIMES",check:"Number"}],message1:"%{BKY_CONTROLS_REPEAT_INPUT_DO} %1",args1:[{type:"input_statement",name:"DO"}],previousStatement:null,nextStatement:null,style:"loop_blocks",tooltip:"%{BKY_CONTROLS_REPEAT_TOOLTIP}",helpUrl:"%{BKY_CONTROLS_REPEAT_HELPURL}"},{type:"controls_repeat", +message0:"%{BKY_CONTROLS_REPEAT_TITLE}",args0:[{type:"field_number",name:"TIMES",value:10,min:0,precision:1}],message1:"%{BKY_CONTROLS_REPEAT_INPUT_DO} %1",args1:[{type:"input_statement",name:"DO"}],previousStatement:null,nextStatement:null,style:"loop_blocks",tooltip:"%{BKY_CONTROLS_REPEAT_TOOLTIP}",helpUrl:"%{BKY_CONTROLS_REPEAT_HELPURL}"},{type:"controls_whileUntil",message0:"%1 %2",args0:[{type:"field_dropdown",name:"MODE",options:[["%{BKY_CONTROLS_WHILEUNTIL_OPERATOR_WHILE}","WHILE"],["%{BKY_CONTROLS_WHILEUNTIL_OPERATOR_UNTIL}", +"UNTIL"]]},{type:"input_value",name:"BOOL",check:"Boolean"}],message1:"%{BKY_CONTROLS_REPEAT_INPUT_DO} %1",args1:[{type:"input_statement",name:"DO"}],previousStatement:null,nextStatement:null,style:"loop_blocks",helpUrl:"%{BKY_CONTROLS_WHILEUNTIL_HELPURL}",extensions:["controls_whileUntil_tooltip"]},{type:"controls_for",message0:"%{BKY_CONTROLS_FOR_TITLE}",args0:[{type:"field_variable",name:"VAR",variable:null},{type:"input_value",name:"FROM",check:"Number",align:"RIGHT"},{type:"input_value",name:"TO", +check:"Number",align:"RIGHT"},{type:"input_value",name:"BY",check:"Number",align:"RIGHT"}],message1:"%{BKY_CONTROLS_REPEAT_INPUT_DO} %1",args1:[{type:"input_statement",name:"DO"}],inputsInline:!0,previousStatement:null,nextStatement:null,style:"loop_blocks",helpUrl:"%{BKY_CONTROLS_FOR_HELPURL}",extensions:["contextMenu_newGetVariableBlock","controls_for_tooltip"]},{type:"controls_forEach",message0:"%{BKY_CONTROLS_FOREACH_TITLE}",args0:[{type:"field_variable",name:"VAR",variable:null},{type:"input_value", +name:"LIST",check:"Array"}],message1:"%{BKY_CONTROLS_REPEAT_INPUT_DO} %1",args1:[{type:"input_statement",name:"DO"}],previousStatement:null,nextStatement:null,style:"loop_blocks",helpUrl:"%{BKY_CONTROLS_FOREACH_HELPURL}",extensions:["contextMenu_newGetVariableBlock","controls_forEach_tooltip"]},{type:"controls_flow_statements",message0:"%1",args0:[{type:"field_dropdown",name:"FLOW",options:[["%{BKY_CONTROLS_FLOW_STATEMENTS_OPERATOR_BREAK}","BREAK"],["%{BKY_CONTROLS_FLOW_STATEMENTS_OPERATOR_CONTINUE}", +"CONTINUE"]]}],previousStatement:null,style:"loop_blocks",helpUrl:"%{BKY_CONTROLS_FLOW_STATEMENTS_HELPURL}",suppressPrefixSuffix:!0,extensions:["controls_flow_tooltip","controls_flow_in_loop_check"]}]);var module$contents$Blockly$libraryBlocks$loops_WHILE_UNTIL_TOOLTIPS={WHILE:"%{BKY_CONTROLS_WHILEUNTIL_TOOLTIP_WHILE}",UNTIL:"%{BKY_CONTROLS_WHILEUNTIL_TOOLTIP_UNTIL}"}; +$.module$build$src$core$extensions.register("controls_whileUntil_tooltip",$.module$build$src$core$extensions.buildTooltipForDropdown("MODE",module$contents$Blockly$libraryBlocks$loops_WHILE_UNTIL_TOOLTIPS));var module$contents$Blockly$libraryBlocks$loops_BREAK_CONTINUE_TOOLTIPS={BREAK:"%{BKY_CONTROLS_FLOW_STATEMENTS_TOOLTIP_BREAK}",CONTINUE:"%{BKY_CONTROLS_FLOW_STATEMENTS_TOOLTIP_CONTINUE}"}; +$.module$build$src$core$extensions.register("controls_flow_tooltip",$.module$build$src$core$extensions.buildTooltipForDropdown("FLOW",module$contents$Blockly$libraryBlocks$loops_BREAK_CONTINUE_TOOLTIPS)); +var module$contents$Blockly$libraryBlocks$loops_CUSTOM_CONTEXT_MENU_CREATE_VARIABLES_GET_MIXIN={customContextMenu:function(a){if(!this.isInFlyout){var b=this.getField("VAR").getVariable(),c=b.name;if(!this.isCollapsed()&&null!==c){const d={enabled:!0};d.text=module$contents$Blockly$libraryBlocks$loops_Msg.VARIABLES_SET_CREATE_GET.replace("%1",c);b=$.module$build$src$core$variables.generateVariableFieldDom(b);c=$.module$build$src$core$utils$xml.createElement("block");c.setAttribute("type","variables_get"); +c.appendChild(b);d.callback=$.module$build$src$core$contextmenu.callbackFactory(this,c);a.push(d)}}}};$.module$build$src$core$extensions.registerMixin("contextMenu_newGetVariableBlock",module$contents$Blockly$libraryBlocks$loops_CUSTOM_CONTEXT_MENU_CREATE_VARIABLES_GET_MIXIN);$.module$build$src$core$extensions.register("controls_for_tooltip",$.module$build$src$core$extensions.buildTooltipWithFieldText("%{BKY_CONTROLS_FOR_TOOLTIP}","VAR")); +$.module$build$src$core$extensions.register("controls_forEach_tooltip",$.module$build$src$core$extensions.buildTooltipWithFieldText("%{BKY_CONTROLS_FOREACH_TOOLTIP}","VAR"));module$exports$Blockly$libraryBlocks$loops.loopTypes=new Set(["controls_repeat","controls_repeat_ext","controls_forEach","controls_for","controls_whileUntil"]); +var module$contents$Blockly$libraryBlocks$loops_CONTROL_FLOW_IN_LOOP_CHECK_MIXIN={getSurroundLoop:function(){let a=this;do{if(module$exports$Blockly$libraryBlocks$loops.loopTypes.has(a.type))return a;a=a.getSurroundParent()}while(a);return null},onchange:function(a){if(this.workspace.isDragging&&!this.workspace.isDragging()&&a.type===$.module$build$src$core$events$events.BLOCK_MOVE){var b=this.getSurroundLoop(this);this.setWarningText(b?null:module$contents$Blockly$libraryBlocks$loops_Msg.CONTROLS_FLOW_STATEMENTS_WARNING); +if(!this.isInFlyout){const c=$.module$build$src$core$events$events.getGroup();$.module$build$src$core$events$events.setGroup(a.group);this.setEnabled(b);$.module$build$src$core$events$events.setGroup(c)}}}};$.module$build$src$core$extensions.registerMixin("controls_flow_in_loop_check",module$contents$Blockly$libraryBlocks$loops_CONTROL_FLOW_IN_LOOP_CHECK_MIXIN);module$contents$Blockly$libraryBlocks$loops_defineBlocks(module$exports$Blockly$libraryBlocks$loops.blocks);var blocks$$module$build$src$blocks$math=$.createBlockDefinitionsFromJsonArray$$module$build$src$core$common([{type:"math_number",message0:"%1",args0:[{type:"field_number",name:"NUM",value:0}],output:"Number",helpUrl:"%{BKY_MATH_NUMBER_HELPURL}",style:"math_blocks",tooltip:"%{BKY_MATH_NUMBER_TOOLTIP}",extensions:["parent_tooltip_when_inline"]},{type:"math_arithmetic",message0:"%1 %2 %3",args0:[{type:"input_value",name:"A",check:"Number"},{type:"field_dropdown",name:"OP",options:[["%{BKY_MATH_ADDITION_SYMBOL}", +"ADD"],["%{BKY_MATH_SUBTRACTION_SYMBOL}","MINUS"],["%{BKY_MATH_MULTIPLICATION_SYMBOL}","MULTIPLY"],["%{BKY_MATH_DIVISION_SYMBOL}","DIVIDE"],["%{BKY_MATH_POWER_SYMBOL}","POWER"]]},{type:"input_value",name:"B",check:"Number"}],inputsInline:!0,output:"Number",style:"math_blocks",helpUrl:"%{BKY_MATH_ARITHMETIC_HELPURL}",extensions:["math_op_tooltip"]},{type:"math_single",message0:"%1 %2",args0:[{type:"field_dropdown",name:"OP",options:[["%{BKY_MATH_SINGLE_OP_ROOT}","ROOT"],["%{BKY_MATH_SINGLE_OP_ABSOLUTE}", +"ABS"],["-","NEG"],["ln","LN"],["log10","LOG10"],["e^","EXP"],["10^","POW10"]]},{type:"input_value",name:"NUM",check:"Number"}],output:"Number",style:"math_blocks",helpUrl:"%{BKY_MATH_SINGLE_HELPURL}",extensions:["math_op_tooltip"]},{type:"math_trig",message0:"%1 %2",args0:[{type:"field_dropdown",name:"OP",options:[["%{BKY_MATH_TRIG_SIN}","SIN"],["%{BKY_MATH_TRIG_COS}","COS"],["%{BKY_MATH_TRIG_TAN}","TAN"],["%{BKY_MATH_TRIG_ASIN}","ASIN"],["%{BKY_MATH_TRIG_ACOS}","ACOS"],["%{BKY_MATH_TRIG_ATAN}", +"ATAN"]]},{type:"input_value",name:"NUM",check:"Number"}],output:"Number",style:"math_blocks",helpUrl:"%{BKY_MATH_TRIG_HELPURL}",extensions:["math_op_tooltip"]},{type:"math_constant",message0:"%1",args0:[{type:"field_dropdown",name:"CONSTANT",options:[["\u03c0","PI"],["e","E"],["\u03c6","GOLDEN_RATIO"],["sqrt(2)","SQRT2"],["sqrt(\u00bd)","SQRT1_2"],["\u221e","INFINITY"]]}],output:"Number",style:"math_blocks",tooltip:"%{BKY_MATH_CONSTANT_TOOLTIP}",helpUrl:"%{BKY_MATH_CONSTANT_HELPURL}"},{type:"math_number_property", +message0:"%1 %2",args0:[{type:"input_value",name:"NUMBER_TO_CHECK",check:"Number"},{type:"field_dropdown",name:"PROPERTY",options:[["%{BKY_MATH_IS_EVEN}","EVEN"],["%{BKY_MATH_IS_ODD}","ODD"],["%{BKY_MATH_IS_PRIME}","PRIME"],["%{BKY_MATH_IS_WHOLE}","WHOLE"],["%{BKY_MATH_IS_POSITIVE}","POSITIVE"],["%{BKY_MATH_IS_NEGATIVE}","NEGATIVE"],["%{BKY_MATH_IS_DIVISIBLE_BY}","DIVISIBLE_BY"]]}],inputsInline:!0,output:"Boolean",style:"math_blocks",tooltip:"%{BKY_MATH_IS_TOOLTIP}",mutator:"math_is_divisibleby_mutator"}, +{type:"math_change",message0:"%{BKY_MATH_CHANGE_TITLE}",args0:[{type:"field_variable",name:"VAR",variable:"%{BKY_MATH_CHANGE_TITLE_ITEM}"},{type:"input_value",name:"DELTA",check:"Number"}],previousStatement:null,nextStatement:null,style:"variable_blocks",helpUrl:"%{BKY_MATH_CHANGE_HELPURL}",extensions:["math_change_tooltip"]},{type:"math_round",message0:"%1 %2",args0:[{type:"field_dropdown",name:"OP",options:[["%{BKY_MATH_ROUND_OPERATOR_ROUND}","ROUND"],["%{BKY_MATH_ROUND_OPERATOR_ROUNDUP}","ROUNDUP"], +["%{BKY_MATH_ROUND_OPERATOR_ROUNDDOWN}","ROUNDDOWN"]]},{type:"input_value",name:"NUM",check:"Number"}],output:"Number",style:"math_blocks",helpUrl:"%{BKY_MATH_ROUND_HELPURL}",tooltip:"%{BKY_MATH_ROUND_TOOLTIP}"},{type:"math_on_list",message0:"%1 %2",args0:[{type:"field_dropdown",name:"OP",options:[["%{BKY_MATH_ONLIST_OPERATOR_SUM}","SUM"],["%{BKY_MATH_ONLIST_OPERATOR_MIN}","MIN"],["%{BKY_MATH_ONLIST_OPERATOR_MAX}","MAX"],["%{BKY_MATH_ONLIST_OPERATOR_AVERAGE}","AVERAGE"],["%{BKY_MATH_ONLIST_OPERATOR_MEDIAN}", +"MEDIAN"],["%{BKY_MATH_ONLIST_OPERATOR_MODE}","MODE"],["%{BKY_MATH_ONLIST_OPERATOR_STD_DEV}","STD_DEV"],["%{BKY_MATH_ONLIST_OPERATOR_RANDOM}","RANDOM"]]},{type:"input_value",name:"LIST",check:"Array"}],output:"Number",style:"math_blocks",helpUrl:"%{BKY_MATH_ONLIST_HELPURL}",mutator:"math_modes_of_list_mutator",extensions:["math_op_tooltip"]},{type:"math_modulo",message0:"%{BKY_MATH_MODULO_TITLE}",args0:[{type:"input_value",name:"DIVIDEND",check:"Number"},{type:"input_value",name:"DIVISOR",check:"Number"}], +inputsInline:!0,output:"Number",style:"math_blocks",tooltip:"%{BKY_MATH_MODULO_TOOLTIP}",helpUrl:"%{BKY_MATH_MODULO_HELPURL}"},{type:"math_constrain",message0:"%{BKY_MATH_CONSTRAIN_TITLE}",args0:[{type:"input_value",name:"VALUE",check:"Number"},{type:"input_value",name:"LOW",check:"Number"},{type:"input_value",name:"HIGH",check:"Number"}],inputsInline:!0,output:"Number",style:"math_blocks",tooltip:"%{BKY_MATH_CONSTRAIN_TOOLTIP}",helpUrl:"%{BKY_MATH_CONSTRAIN_HELPURL}"},{type:"math_random_int",message0:"%{BKY_MATH_RANDOM_INT_TITLE}", +args0:[{type:"input_value",name:"FROM",check:"Number"},{type:"input_value",name:"TO",check:"Number"}],inputsInline:!0,output:"Number",style:"math_blocks",tooltip:"%{BKY_MATH_RANDOM_INT_TOOLTIP}",helpUrl:"%{BKY_MATH_RANDOM_INT_HELPURL}"},{type:"math_random_float",message0:"%{BKY_MATH_RANDOM_FLOAT_TITLE_RANDOM}",output:"Number",style:"math_blocks",tooltip:"%{BKY_MATH_RANDOM_FLOAT_TOOLTIP}",helpUrl:"%{BKY_MATH_RANDOM_FLOAT_HELPURL}"},{type:"math_atan2",message0:"%{BKY_MATH_ATAN2_TITLE}",args0:[{type:"input_value", +name:"X",check:"Number"},{type:"input_value",name:"Y",check:"Number"}],inputsInline:!0,output:"Number",style:"math_blocks",tooltip:"%{BKY_MATH_ATAN2_TOOLTIP}",helpUrl:"%{BKY_MATH_ATAN2_HELPURL}"}]),TOOLTIPS_BY_OP$$module$build$src$blocks$math={ADD:"%{BKY_MATH_ARITHMETIC_TOOLTIP_ADD}",MINUS:"%{BKY_MATH_ARITHMETIC_TOOLTIP_MINUS}",MULTIPLY:"%{BKY_MATH_ARITHMETIC_TOOLTIP_MULTIPLY}",DIVIDE:"%{BKY_MATH_ARITHMETIC_TOOLTIP_DIVIDE}",POWER:"%{BKY_MATH_ARITHMETIC_TOOLTIP_POWER}",ROOT:"%{BKY_MATH_SINGLE_TOOLTIP_ROOT}", +ABS:"%{BKY_MATH_SINGLE_TOOLTIP_ABS}",NEG:"%{BKY_MATH_SINGLE_TOOLTIP_NEG}",LN:"%{BKY_MATH_SINGLE_TOOLTIP_LN}",LOG10:"%{BKY_MATH_SINGLE_TOOLTIP_LOG10}",EXP:"%{BKY_MATH_SINGLE_TOOLTIP_EXP}",POW10:"%{BKY_MATH_SINGLE_TOOLTIP_POW10}",SIN:"%{BKY_MATH_TRIG_TOOLTIP_SIN}",COS:"%{BKY_MATH_TRIG_TOOLTIP_COS}",TAN:"%{BKY_MATH_TRIG_TOOLTIP_TAN}",ASIN:"%{BKY_MATH_TRIG_TOOLTIP_ASIN}",ACOS:"%{BKY_MATH_TRIG_TOOLTIP_ACOS}",ATAN:"%{BKY_MATH_TRIG_TOOLTIP_ATAN}",SUM:"%{BKY_MATH_ONLIST_TOOLTIP_SUM}",MIN:"%{BKY_MATH_ONLIST_TOOLTIP_MIN}", +MAX:"%{BKY_MATH_ONLIST_TOOLTIP_MAX}",AVERAGE:"%{BKY_MATH_ONLIST_TOOLTIP_AVERAGE}",MEDIAN:"%{BKY_MATH_ONLIST_TOOLTIP_MEDIAN}",MODE:"%{BKY_MATH_ONLIST_TOOLTIP_MODE}",STD_DEV:"%{BKY_MATH_ONLIST_TOOLTIP_STD_DEV}",RANDOM:"%{BKY_MATH_ONLIST_TOOLTIP_RANDOM}"};$.register$$module$build$src$core$extensions("math_op_tooltip",$.buildTooltipForDropdown$$module$build$src$core$extensions("OP",TOOLTIPS_BY_OP$$module$build$src$blocks$math)); +var IS_DIVISIBLEBY_MUTATOR_MIXIN$$module$build$src$blocks$math={mutationToDom:function(){const a=$.createElement$$module$build$src$core$utils$xml("mutation"),b="DIVISIBLE_BY"===this.getFieldValue("PROPERTY");a.setAttribute("divisor_input",String(b));return a},domToMutation:function(a){a="true"===a.getAttribute("divisor_input");this.updateShape_(a)},updateShape_:function(a){const b=this.getInput("DIVISOR");a?b||this.appendValueInput("DIVISOR").setCheck("Number"):b&&this.removeInput("DIVISOR")}},IS_DIVISIBLE_MUTATOR_EXTENSION$$module$build$src$blocks$math= +function(){this.getField("PROPERTY").setValidator(function(a){a="DIVISIBLE_BY"===a;this.getSourceBlock().updateShape_(a)})};$.registerMutator$$module$build$src$core$extensions("math_is_divisibleby_mutator",IS_DIVISIBLEBY_MUTATOR_MIXIN$$module$build$src$blocks$math,IS_DIVISIBLE_MUTATOR_EXTENSION$$module$build$src$blocks$math);$.register$$module$build$src$core$extensions("math_change_tooltip",$.buildTooltipWithFieldText$$module$build$src$core$extensions("%{BKY_MATH_CHANGE_TOOLTIP}","VAR")); +var LIST_MODES_MUTATOR_MIXIN$$module$build$src$blocks$math={updateType_:function(a){"MODE"===a?this.outputConnection.setCheck("Array"):this.outputConnection.setCheck("Number")},mutationToDom:function(){const a=$.createElement$$module$build$src$core$utils$xml("mutation");a.setAttribute("op",this.getFieldValue("OP"));return a},domToMutation:function(a){a=a.getAttribute("op");if(null===a)throw new TypeError("xmlElement had no op attribute");this.updateType_(a)}},LIST_MODES_MUTATOR_EXTENSION$$module$build$src$blocks$math= +function(){this.getField("OP").setValidator(function(a){this.updateType_(a)}.bind(this))};$.registerMutator$$module$build$src$core$extensions("math_modes_of_list_mutator",LIST_MODES_MUTATOR_MIXIN$$module$build$src$blocks$math,LIST_MODES_MUTATOR_EXTENSION$$module$build$src$blocks$math);$.defineBlocks$$module$build$src$core$common(blocks$$module$build$src$blocks$math);var module$build$src$blocks$math={};module$build$src$blocks$math.blocks=blocks$$module$build$src$blocks$math;var module$exports$Blockly$libraryBlocks$procedures={},module$contents$Blockly$libraryBlocks$procedures_ContextMenu=$.module$build$src$core$contextmenu,module$contents$Blockly$libraryBlocks$procedures_Events=$.module$build$src$core$events$events,module$contents$Blockly$libraryBlocks$procedures_Procedures=$.module$build$src$core$procedures,module$contents$Blockly$libraryBlocks$procedures_Variables=$.module$build$src$core$variables,module$contents$Blockly$libraryBlocks$procedures_Xml=$.module$build$src$core$xml, +module$contents$Blockly$libraryBlocks$procedures_fieldRegistry=$.module$build$src$core$field_registry,module$contents$Blockly$libraryBlocks$procedures_xmlUtils=$.module$build$src$core$utils$xml,module$contents$Blockly$libraryBlocks$procedures_Align=$.Align$$module$build$src$core$input,module$contents$Blockly$libraryBlocks$procedures_BlockDefinition=Object,module$contents$Blockly$libraryBlocks$procedures_config=$.config$$module$build$src$core$config,module$contents$Blockly$libraryBlocks$procedures_Msg= +$.module$build$src$core$msg.Msg,module$contents$Blockly$libraryBlocks$procedures_Mutator=$.Mutator$$module$build$src$core$mutator,module$contents$Blockly$libraryBlocks$procedures_Names=$.module$build$src$core$names.Names,module$contents$Blockly$libraryBlocks$procedures_defineBlocks=$.module$build$src$core$common.defineBlocks;module$exports$Blockly$libraryBlocks$procedures.blocks={}; +var module$contents$Blockly$libraryBlocks$procedures_PROCEDURE_DEF_COMMON={setStatements_:function(a){this.hasStatements_!==a&&(a?(this.appendStatementInput("STACK").appendField(module$contents$Blockly$libraryBlocks$procedures_Msg.PROCEDURES_DEFNORETURN_DO),this.getInput("RETURN")&&this.moveInputBefore("STACK","RETURN")):this.removeInput("STACK",!0),this.hasStatements_=a)},updateParams_:function(){let a="";this.arguments_.length&&(a=module$contents$Blockly$libraryBlocks$procedures_Msg.PROCEDURES_BEFORE_PARAMS+ +" "+this.arguments_.join(", "));$.module$build$src$core$events$events.disable();try{this.setFieldValue(a,"PARAMS")}finally{$.module$build$src$core$events$events.enable()}},mutationToDom:function(a){const b=$.module$build$src$core$utils$xml.createElement("mutation");a&&b.setAttribute("name",this.getFieldValue("NAME"));for(let c=0;cc?g=h=this.ORDER_SUBTRACTION:d&&(g=h=this.ORDER_UNARY_NEGATION);a=this.valueToCode(a,b,h)||f;$.module$build$src$core$utils$string.isNumber(a)?(a=Number(a)+c,d&&(a=-a)):(0c&&(a=a+" - "+-c),d&&(a=c?"-("+a+")":"-"+a),g=Math.floor(g),e=Math.floor(e), +g&&e>=g&&(a="("+a+")"));return a};var module$exports$Blockly$JavaScript$colour={};module$exports$Blockly$JavaScript.javascriptGenerator.colour_picker=function(a){return[module$exports$Blockly$JavaScript.javascriptGenerator.quote_(a.getFieldValue("COLOUR")),module$exports$Blockly$JavaScript.javascriptGenerator.ORDER_ATOMIC]};module$exports$Blockly$JavaScript.javascriptGenerator.colour_random=function(a){return[module$exports$Blockly$JavaScript.javascriptGenerator.provideFunction_("colourRandom",` +function ${module$exports$Blockly$JavaScript.javascriptGenerator.FUNCTION_NAME_PLACEHOLDER_}() { + var num = Math.floor(Math.random() * Math.pow(2, 24)); + return '#' + ('00000' + num.toString(16)).substr(-6); +} +`)+"()",module$exports$Blockly$JavaScript.javascriptGenerator.ORDER_FUNCTION_CALL]}; +module$exports$Blockly$JavaScript.javascriptGenerator.colour_rgb=function(a){const b=module$exports$Blockly$JavaScript.javascriptGenerator.valueToCode(a,"RED",module$exports$Blockly$JavaScript.javascriptGenerator.ORDER_NONE)||0,c=module$exports$Blockly$JavaScript.javascriptGenerator.valueToCode(a,"GREEN",module$exports$Blockly$JavaScript.javascriptGenerator.ORDER_NONE)||0;a=module$exports$Blockly$JavaScript.javascriptGenerator.valueToCode(a,"BLUE",module$exports$Blockly$JavaScript.javascriptGenerator.ORDER_NONE)|| +0;return[module$exports$Blockly$JavaScript.javascriptGenerator.provideFunction_("colourRgb",` +function ${module$exports$Blockly$JavaScript.javascriptGenerator.FUNCTION_NAME_PLACEHOLDER_}(r, g, b) { + r = Math.max(Math.min(Number(r), 100), 0) * 2.55; + g = Math.max(Math.min(Number(g), 100), 0) * 2.55; + b = Math.max(Math.min(Number(b), 100), 0) * 2.55; + r = ('0' + (Math.round(r) || 0).toString(16)).slice(-2); + g = ('0' + (Math.round(g) || 0).toString(16)).slice(-2); + b = ('0' + (Math.round(b) || 0).toString(16)).slice(-2); + return '#' + r + g + b; +} +`)+"("+b+", "+c+", "+a+")",module$exports$Blockly$JavaScript.javascriptGenerator.ORDER_FUNCTION_CALL]}; +module$exports$Blockly$JavaScript.javascriptGenerator.colour_blend=function(a){const b=module$exports$Blockly$JavaScript.javascriptGenerator.valueToCode(a,"COLOUR1",module$exports$Blockly$JavaScript.javascriptGenerator.ORDER_NONE)||"'#000000'",c=module$exports$Blockly$JavaScript.javascriptGenerator.valueToCode(a,"COLOUR2",module$exports$Blockly$JavaScript.javascriptGenerator.ORDER_NONE)||"'#000000'";a=module$exports$Blockly$JavaScript.javascriptGenerator.valueToCode(a,"RATIO",module$exports$Blockly$JavaScript.javascriptGenerator.ORDER_NONE)|| +.5;return[module$exports$Blockly$JavaScript.javascriptGenerator.provideFunction_("colourBlend",` +function ${module$exports$Blockly$JavaScript.javascriptGenerator.FUNCTION_NAME_PLACEHOLDER_}(c1, c2, ratio) { + ratio = Math.max(Math.min(Number(ratio), 1), 0); + var r1 = parseInt(c1.substring(1, 3), 16); + var g1 = parseInt(c1.substring(3, 5), 16); + var b1 = parseInt(c1.substring(5, 7), 16); + var r2 = parseInt(c2.substring(1, 3), 16); + var g2 = parseInt(c2.substring(3, 5), 16); + var b2 = parseInt(c2.substring(5, 7), 16); + var r = Math.round(r1 * (1 - ratio) + r2 * ratio); + var g = Math.round(g1 * (1 - ratio) + g2 * ratio); + var b = Math.round(b1 * (1 - ratio) + b2 * ratio); + r = ('0' + (r || 0).toString(16)).slice(-2); + g = ('0' + (g || 0).toString(16)).slice(-2); + b = ('0' + (b || 0).toString(16)).slice(-2); + return '#' + r + g + b; +} +`)+"("+b+", "+c+", "+a+")",module$exports$Blockly$JavaScript.javascriptGenerator.ORDER_FUNCTION_CALL]};var module$exports$Blockly$JavaScript$lists={},module$contents$Blockly$JavaScript$lists_NameType=$.NameType$$module$build$src$core$names;module$exports$Blockly$JavaScript.javascriptGenerator.lists_create_empty=function(a){return["[]",module$exports$Blockly$JavaScript.javascriptGenerator.ORDER_ATOMIC]}; +module$exports$Blockly$JavaScript.javascriptGenerator.lists_create_with=function(a){const b=Array(a.itemCount_);for(let c=0;c String(b) ? 1 : -1; }, + 'IGNORE_CASE': function(a, b) { + return String(a).toLowerCase() > String(b).toLowerCase() ? 1 : -1; }, + }; + var compare = compareFuncs[type]; + return function(a, b) { return compare(a, b) * direction; }; +} + `);return[b+".slice().sort("+d+'("'+a+'", '+c+"))",module$exports$Blockly$JavaScript.javascriptGenerator.ORDER_FUNCTION_CALL]}; +module$exports$Blockly$JavaScript.javascriptGenerator.lists_split=function(a){let b=module$exports$Blockly$JavaScript.javascriptGenerator.valueToCode(a,"INPUT",module$exports$Blockly$JavaScript.javascriptGenerator.ORDER_MEMBER);const c=module$exports$Blockly$JavaScript.javascriptGenerator.valueToCode(a,"DELIM",module$exports$Blockly$JavaScript.javascriptGenerator.ORDER_NONE)||"''";a=a.getFieldValue("MODE");if("SPLIT"===a)b||(b="''"),a="split";else if("JOIN"===a)b||(b="[]"),a="join";else throw Error("Unknown mode: "+ +a);return[b+"."+a+"("+c+")",module$exports$Blockly$JavaScript.javascriptGenerator.ORDER_FUNCTION_CALL]};module$exports$Blockly$JavaScript.javascriptGenerator.lists_reverse=function(a){return[(module$exports$Blockly$JavaScript.javascriptGenerator.valueToCode(a,"LIST",module$exports$Blockly$JavaScript.javascriptGenerator.ORDER_FUNCTION_CALL)||"[]")+".slice().reverse()",module$exports$Blockly$JavaScript.javascriptGenerator.ORDER_FUNCTION_CALL]};var module$exports$Blockly$JavaScript$logic={}; +module$exports$Blockly$JavaScript.javascriptGenerator.controls_if=function(a){var b=0;let c="";module$exports$Blockly$JavaScript.javascriptGenerator.STATEMENT_PREFIX&&(c+=module$exports$Blockly$JavaScript.javascriptGenerator.injectId(module$exports$Blockly$JavaScript.javascriptGenerator.STATEMENT_PREFIX,a));do{const d=module$exports$Blockly$JavaScript.javascriptGenerator.valueToCode(a,"IF"+b,module$exports$Blockly$JavaScript.javascriptGenerator.ORDER_NONE)||"false";let e=module$exports$Blockly$JavaScript.javascriptGenerator.statementToCode(a, +"DO"+b);module$exports$Blockly$JavaScript.javascriptGenerator.STATEMENT_SUFFIX&&(e=module$exports$Blockly$JavaScript.javascriptGenerator.prefixLines(module$exports$Blockly$JavaScript.javascriptGenerator.injectId(module$exports$Blockly$JavaScript.javascriptGenerator.STATEMENT_SUFFIX,a),module$exports$Blockly$JavaScript.javascriptGenerator.INDENT)+e);c+=(0",GTE:">="}[a.getFieldValue("OP")],c="=="===b||"!="===b?module$exports$Blockly$JavaScript.javascriptGenerator.ORDER_EQUALITY:module$exports$Blockly$JavaScript.javascriptGenerator.ORDER_RELATIONAL,d=module$exports$Blockly$JavaScript.javascriptGenerator.valueToCode(a,"A",c)||"0";a=module$exports$Blockly$JavaScript.javascriptGenerator.valueToCode(a,"B",c)||"0";return[d+" "+b+ +" "+a,c]}; +module$exports$Blockly$JavaScript.javascriptGenerator.logic_operation=function(a){const b="AND"===a.getFieldValue("OP")?"&&":"||",c="&&"===b?module$exports$Blockly$JavaScript.javascriptGenerator.ORDER_LOGICAL_AND:module$exports$Blockly$JavaScript.javascriptGenerator.ORDER_LOGICAL_OR;let d=module$exports$Blockly$JavaScript.javascriptGenerator.valueToCode(a,"A",c);a=module$exports$Blockly$JavaScript.javascriptGenerator.valueToCode(a,"B",c);if(d||a){const e="&&"===b?"true":"false";d||(d=e);a||(a=e)}else a= +d="false";return[d+" "+b+" "+a,c]};module$exports$Blockly$JavaScript.javascriptGenerator.logic_negate=function(a){const b=module$exports$Blockly$JavaScript.javascriptGenerator.ORDER_LOGICAL_NOT;return["!"+(module$exports$Blockly$JavaScript.javascriptGenerator.valueToCode(a,"BOOL",b)||"true"),b]};module$exports$Blockly$JavaScript.javascriptGenerator.logic_boolean=function(a){return["TRUE"===a.getFieldValue("BOOL")?"true":"false",module$exports$Blockly$JavaScript.javascriptGenerator.ORDER_ATOMIC]}; +module$exports$Blockly$JavaScript.javascriptGenerator.logic_null=function(a){return["null",module$exports$Blockly$JavaScript.javascriptGenerator.ORDER_ATOMIC]}; +module$exports$Blockly$JavaScript.javascriptGenerator.logic_ternary=function(a){const b=module$exports$Blockly$JavaScript.javascriptGenerator.valueToCode(a,"IF",module$exports$Blockly$JavaScript.javascriptGenerator.ORDER_CONDITIONAL)||"false",c=module$exports$Blockly$JavaScript.javascriptGenerator.valueToCode(a,"THEN",module$exports$Blockly$JavaScript.javascriptGenerator.ORDER_CONDITIONAL)||"null";a=module$exports$Blockly$JavaScript.javascriptGenerator.valueToCode(a,"ELSE",module$exports$Blockly$JavaScript.javascriptGenerator.ORDER_CONDITIONAL)|| +"null";return[b+" ? "+c+" : "+a,module$exports$Blockly$JavaScript.javascriptGenerator.ORDER_CONDITIONAL]};var module$exports$Blockly$JavaScript$loops={},module$contents$Blockly$JavaScript$loops_stringUtils=$.module$build$src$core$utils$string,module$contents$Blockly$JavaScript$loops_NameType=$.NameType$$module$build$src$core$names; +module$exports$Blockly$JavaScript.javascriptGenerator.controls_repeat_ext=function(a){let b;b=a.getField("TIMES")?String(Number(a.getFieldValue("TIMES"))):module$exports$Blockly$JavaScript.javascriptGenerator.valueToCode(a,"TIMES",module$exports$Blockly$JavaScript.javascriptGenerator.ORDER_ASSIGNMENT)||"0";let c=module$exports$Blockly$JavaScript.javascriptGenerator.statementToCode(a,"DO");c=module$exports$Blockly$JavaScript.javascriptGenerator.addLoopTrap(c,a);a="";const d=module$exports$Blockly$JavaScript.javascriptGenerator.nameDB_.getDistinctName("count", +$.NameType$$module$build$src$core$names.VARIABLE);let e=b;b.match(/^\w+$/)||$.module$build$src$core$utils$string.isNumber(b)||(e=module$exports$Blockly$JavaScript.javascriptGenerator.nameDB_.getDistinctName("repeat_end",$.NameType$$module$build$src$core$names.VARIABLE),a+="var "+e+" = "+b+";\n");return a+("for (var "+d+" = 0; "+d+" < "+e+"; "+d+"++) {\n"+c+"}\n")};module$exports$Blockly$JavaScript.javascriptGenerator.controls_repeat=module$exports$Blockly$JavaScript.javascriptGenerator.controls_repeat_ext; +module$exports$Blockly$JavaScript.javascriptGenerator.controls_whileUntil=function(a){const b="UNTIL"===a.getFieldValue("MODE");let c=module$exports$Blockly$JavaScript.javascriptGenerator.valueToCode(a,"BOOL",b?module$exports$Blockly$JavaScript.javascriptGenerator.ORDER_LOGICAL_NOT:module$exports$Blockly$JavaScript.javascriptGenerator.ORDER_NONE)||"false",d=module$exports$Blockly$JavaScript.javascriptGenerator.statementToCode(a,"DO");d=module$exports$Blockly$JavaScript.javascriptGenerator.addLoopTrap(d, +a);b&&(c="!"+c);return"while ("+c+") {\n"+d+"}\n"}; +module$exports$Blockly$JavaScript.javascriptGenerator.controls_for=function(a){var b=module$exports$Blockly$JavaScript.javascriptGenerator.nameDB_.getName(a.getFieldValue("VAR"),$.NameType$$module$build$src$core$names.VARIABLE),c=module$exports$Blockly$JavaScript.javascriptGenerator.valueToCode(a,"FROM",module$exports$Blockly$JavaScript.javascriptGenerator.ORDER_ASSIGNMENT)||"0",d=module$exports$Blockly$JavaScript.javascriptGenerator.valueToCode(a,"TO",module$exports$Blockly$JavaScript.javascriptGenerator.ORDER_ASSIGNMENT)|| +"0";const e=module$exports$Blockly$JavaScript.javascriptGenerator.valueToCode(a,"BY",module$exports$Blockly$JavaScript.javascriptGenerator.ORDER_ASSIGNMENT)||"1";let f=module$exports$Blockly$JavaScript.javascriptGenerator.statementToCode(a,"DO");f=module$exports$Blockly$JavaScript.javascriptGenerator.addLoopTrap(f,a);if($.module$build$src$core$utils$string.isNumber(c)&&$.module$build$src$core$utils$string.isNumber(d)&&$.module$build$src$core$utils$string.isNumber(e)){var g=Number(c)<=Number(d);a= +"for ("+b+" = "+c+"; "+b+(g?" <= ":" >= ")+d+"; "+b;b=Math.abs(Number(e));a=1===b?a+(g?"++":"--"):a+((g?" += ":" -= ")+b);a+=") {\n"+f+"}\n"}else a="",g=c,c.match(/^\w+$/)||$.module$build$src$core$utils$string.isNumber(c)||(g=module$exports$Blockly$JavaScript.javascriptGenerator.nameDB_.getDistinctName(b+"_start",$.NameType$$module$build$src$core$names.VARIABLE),a+="var "+g+" = "+c+";\n"),c=d,d.match(/^\w+$/)||$.module$build$src$core$utils$string.isNumber(d)||(c=module$exports$Blockly$JavaScript.javascriptGenerator.nameDB_.getDistinctName(b+ +"_end",$.NameType$$module$build$src$core$names.VARIABLE),a+="var "+c+" = "+d+";\n"),d=module$exports$Blockly$JavaScript.javascriptGenerator.nameDB_.getDistinctName(b+"_inc",$.NameType$$module$build$src$core$names.VARIABLE),a+="var "+d+" = ",a=$.module$build$src$core$utils$string.isNumber(e)?a+(Math.abs(e)+";\n"):a+("Math.abs("+e+");\n"),a+="if ("+g+" > "+c+") {\n",a+=module$exports$Blockly$JavaScript.javascriptGenerator.INDENT+d+" = -"+d+";\n",a=a+"}\nfor ("+(b+" = "+g+"; "+d+" >= 0 ? "+b+" <= "+ +c+" : "+b+" >= "+c+"; "+b+" += "+d+") {\n"+f+"}\n");return a}; +module$exports$Blockly$JavaScript.javascriptGenerator.controls_forEach=function(a){const b=module$exports$Blockly$JavaScript.javascriptGenerator.nameDB_.getName(a.getFieldValue("VAR"),$.NameType$$module$build$src$core$names.VARIABLE);var c=module$exports$Blockly$JavaScript.javascriptGenerator.valueToCode(a,"LIST",module$exports$Blockly$JavaScript.javascriptGenerator.ORDER_ASSIGNMENT)||"[]";let d=module$exports$Blockly$JavaScript.javascriptGenerator.statementToCode(a,"DO");d=module$exports$Blockly$JavaScript.javascriptGenerator.addLoopTrap(d, +a);a="";let e=c;c.match(/^\w+$/)||(e=module$exports$Blockly$JavaScript.javascriptGenerator.nameDB_.getDistinctName(b+"_list",$.NameType$$module$build$src$core$names.VARIABLE),a+="var "+e+" = "+c+";\n");c=module$exports$Blockly$JavaScript.javascriptGenerator.nameDB_.getDistinctName(b+"_index",$.NameType$$module$build$src$core$names.VARIABLE);d=module$exports$Blockly$JavaScript.javascriptGenerator.INDENT+b+" = "+e+"["+c+"];\n"+d;return a+("for (var "+c+" in "+e+") {\n"+d+"}\n")}; +module$exports$Blockly$JavaScript.javascriptGenerator.controls_flow_statements=function(a){let b="";module$exports$Blockly$JavaScript.javascriptGenerator.STATEMENT_PREFIX&&(b+=module$exports$Blockly$JavaScript.javascriptGenerator.injectId(module$exports$Blockly$JavaScript.javascriptGenerator.STATEMENT_PREFIX,a));module$exports$Blockly$JavaScript.javascriptGenerator.STATEMENT_SUFFIX&&(b+=module$exports$Blockly$JavaScript.javascriptGenerator.injectId(module$exports$Blockly$JavaScript.javascriptGenerator.STATEMENT_SUFFIX, +a));if(module$exports$Blockly$JavaScript.javascriptGenerator.STATEMENT_PREFIX){const c=a.getSurroundLoop();c&&!c.suppressPrefixSuffix&&(b+=module$exports$Blockly$JavaScript.javascriptGenerator.injectId(module$exports$Blockly$JavaScript.javascriptGenerator.STATEMENT_PREFIX,c))}switch(a.getFieldValue("FLOW")){case "BREAK":return b+"break;\n";case "CONTINUE":return b+"continue;\n"}throw Error("Unknown flow statement.");};var module$exports$Blockly$JavaScript$math={},module$contents$Blockly$JavaScript$math_NameType=$.NameType$$module$build$src$core$names;module$exports$Blockly$JavaScript.javascriptGenerator.math_number=function(a){a=Number(a.getFieldValue("NUM"));return[a,0<=a?module$exports$Blockly$JavaScript.javascriptGenerator.ORDER_ATOMIC:module$exports$Blockly$JavaScript.javascriptGenerator.ORDER_UNARY_NEGATION]}; +module$exports$Blockly$JavaScript.javascriptGenerator.math_arithmetic=function(a){var b={ADD:[" + ",module$exports$Blockly$JavaScript.javascriptGenerator.ORDER_ADDITION],MINUS:[" - ",module$exports$Blockly$JavaScript.javascriptGenerator.ORDER_SUBTRACTION],MULTIPLY:[" * ",module$exports$Blockly$JavaScript.javascriptGenerator.ORDER_MULTIPLICATION],DIVIDE:[" / ",module$exports$Blockly$JavaScript.javascriptGenerator.ORDER_DIVISION],POWER:[null,module$exports$Blockly$JavaScript.javascriptGenerator.ORDER_NONE]}[a.getFieldValue("OP")]; +const c=b[0];b=b[1];const d=module$exports$Blockly$JavaScript.javascriptGenerator.valueToCode(a,"A",b)||"0";a=module$exports$Blockly$JavaScript.javascriptGenerator.valueToCode(a,"B",b)||"0";return c?[d+c+a,b]:["Math.pow("+d+", "+a+")",module$exports$Blockly$JavaScript.javascriptGenerator.ORDER_FUNCTION_CALL]}; +module$exports$Blockly$JavaScript.javascriptGenerator.math_single=function(a){const b=a.getFieldValue("OP");let c;if("NEG"===b)return a=module$exports$Blockly$JavaScript.javascriptGenerator.valueToCode(a,"NUM",module$exports$Blockly$JavaScript.javascriptGenerator.ORDER_UNARY_NEGATION)||"0","-"===a[0]&&(a=" "+a),["-"+a,module$exports$Blockly$JavaScript.javascriptGenerator.ORDER_UNARY_NEGATION];a="SIN"===b||"COS"===b||"TAN"===b?module$exports$Blockly$JavaScript.javascriptGenerator.valueToCode(a,"NUM", +module$exports$Blockly$JavaScript.javascriptGenerator.ORDER_DIVISION)||"0":module$exports$Blockly$JavaScript.javascriptGenerator.valueToCode(a,"NUM",module$exports$Blockly$JavaScript.javascriptGenerator.ORDER_NONE)||"0";switch(b){case "ABS":c="Math.abs("+a+")";break;case "ROOT":c="Math.sqrt("+a+")";break;case "LN":c="Math.log("+a+")";break;case "EXP":c="Math.exp("+a+")";break;case "POW10":c="Math.pow(10,"+a+")";break;case "ROUND":c="Math.round("+a+")";break;case "ROUNDUP":c="Math.ceil("+a+")";break; +case "ROUNDDOWN":c="Math.floor("+a+")";break;case "SIN":c="Math.sin("+a+" / 180 * Math.PI)";break;case "COS":c="Math.cos("+a+" / 180 * Math.PI)";break;case "TAN":c="Math.tan("+a+" / 180 * Math.PI)"}if(c)return[c,module$exports$Blockly$JavaScript.javascriptGenerator.ORDER_FUNCTION_CALL];switch(b){case "LOG10":c="Math.log("+a+") / Math.log(10)";break;case "ASIN":c="Math.asin("+a+") / Math.PI * 180";break;case "ACOS":c="Math.acos("+a+") / Math.PI * 180";break;case "ATAN":c="Math.atan("+a+") / Math.PI * 180"; +break;default:throw Error("Unknown math operator: "+b);}return[c,module$exports$Blockly$JavaScript.javascriptGenerator.ORDER_DIVISION]}; +module$exports$Blockly$JavaScript.javascriptGenerator.math_constant=function(a){return{PI:["Math.PI",module$exports$Blockly$JavaScript.javascriptGenerator.ORDER_MEMBER],E:["Math.E",module$exports$Blockly$JavaScript.javascriptGenerator.ORDER_MEMBER],GOLDEN_RATIO:["(1 + Math.sqrt(5)) / 2",module$exports$Blockly$JavaScript.javascriptGenerator.ORDER_DIVISION],SQRT2:["Math.SQRT2",module$exports$Blockly$JavaScript.javascriptGenerator.ORDER_MEMBER],SQRT1_2:["Math.SQRT1_2",module$exports$Blockly$JavaScript.javascriptGenerator.ORDER_MEMBER], +INFINITY:["Infinity",module$exports$Blockly$JavaScript.javascriptGenerator.ORDER_ATOMIC]}[a.getFieldValue("CONSTANT")]}; +module$exports$Blockly$JavaScript.javascriptGenerator.math_number_property=function(a){var b={EVEN:[" % 2 === 0",module$exports$Blockly$JavaScript.javascriptGenerator.ORDER_MODULUS,module$exports$Blockly$JavaScript.javascriptGenerator.ORDER_EQUALITY],ODD:[" % 2 === 1",module$exports$Blockly$JavaScript.javascriptGenerator.ORDER_MODULUS,module$exports$Blockly$JavaScript.javascriptGenerator.ORDER_EQUALITY],WHOLE:[" % 1 === 0",module$exports$Blockly$JavaScript.javascriptGenerator.ORDER_MODULUS,module$exports$Blockly$JavaScript.javascriptGenerator.ORDER_EQUALITY], +POSITIVE:[" > 0",module$exports$Blockly$JavaScript.javascriptGenerator.ORDER_RELATIONAL,module$exports$Blockly$JavaScript.javascriptGenerator.ORDER_RELATIONAL],NEGATIVE:[" < 0",module$exports$Blockly$JavaScript.javascriptGenerator.ORDER_RELATIONAL,module$exports$Blockly$JavaScript.javascriptGenerator.ORDER_RELATIONAL],DIVISIBLE_BY:[null,module$exports$Blockly$JavaScript.javascriptGenerator.ORDER_MODULUS,module$exports$Blockly$JavaScript.javascriptGenerator.ORDER_EQUALITY],PRIME:[null,module$exports$Blockly$JavaScript.javascriptGenerator.ORDER_NONE, +module$exports$Blockly$JavaScript.javascriptGenerator.ORDER_FUNCTION_CALL]};const c=a.getFieldValue("PROPERTY"),[d,e,f]=b[c];b=module$exports$Blockly$JavaScript.javascriptGenerator.valueToCode(a,"NUMBER_TO_CHECK",e)||"0";"PRIME"===c?a=module$exports$Blockly$JavaScript.javascriptGenerator.provideFunction_("mathIsPrime",` +function ${module$exports$Blockly$JavaScript.javascriptGenerator.FUNCTION_NAME_PLACEHOLDER_}(n) { + // https://en.wikipedia.org/wiki/Primality_test#Naive_methods + if (n == 2 || n == 3) { + return true; + } + // False if n is NaN, negative, is 1, or not whole. + // And false if n is divisible by 2 or 3. + if (isNaN(n) || n <= 1 || n % 1 !== 0 || n % 2 === 0 || n % 3 === 0) { + return false; + } + // Check all the numbers of form 6k +/- 1, up to sqrt(n). + for (var x = 6; x <= Math.sqrt(n) + 1; x += 6) { + if (n % (x - 1) === 0 || n % (x + 1) === 0) { + return false; + } + } + return true; +} +`)+"("+b+")":"DIVISIBLE_BY"===c?(a=module$exports$Blockly$JavaScript.javascriptGenerator.valueToCode(a,"DIVISOR",module$exports$Blockly$JavaScript.javascriptGenerator.ORDER_MODULUS)||"0",a=b+" % "+a+" === 0"):a=b+d;return[a,f]}; +module$exports$Blockly$JavaScript.javascriptGenerator.math_change=function(a){const b=module$exports$Blockly$JavaScript.javascriptGenerator.valueToCode(a,"DELTA",module$exports$Blockly$JavaScript.javascriptGenerator.ORDER_ADDITION)||"0";a=module$exports$Blockly$JavaScript.javascriptGenerator.nameDB_.getName(a.getFieldValue("VAR"),$.NameType$$module$build$src$core$names.VARIABLE);return a+" = (typeof "+a+" === 'number' ? "+a+" : 0) + "+b+";\n"}; +module$exports$Blockly$JavaScript.javascriptGenerator.math_round=module$exports$Blockly$JavaScript.javascriptGenerator.math_single;module$exports$Blockly$JavaScript.javascriptGenerator.math_trig=module$exports$Blockly$JavaScript.javascriptGenerator.math_single; +module$exports$Blockly$JavaScript.javascriptGenerator.math_on_list=function(a){var b=a.getFieldValue("OP");switch(b){case "SUM":a=module$exports$Blockly$JavaScript.javascriptGenerator.valueToCode(a,"LIST",module$exports$Blockly$JavaScript.javascriptGenerator.ORDER_MEMBER)||"[]";a+=".reduce(function(x, y) {return x + y;}, 0)";break;case "MIN":a=module$exports$Blockly$JavaScript.javascriptGenerator.valueToCode(a,"LIST",module$exports$Blockly$JavaScript.javascriptGenerator.ORDER_NONE)||"[]";a="Math.min.apply(null, "+ +a+")";break;case "MAX":a=module$exports$Blockly$JavaScript.javascriptGenerator.valueToCode(a,"LIST",module$exports$Blockly$JavaScript.javascriptGenerator.ORDER_NONE)||"[]";a="Math.max.apply(null, "+a+")";break;case "AVERAGE":b=module$exports$Blockly$JavaScript.javascriptGenerator.provideFunction_("mathMean",` +function ${module$exports$Blockly$JavaScript.javascriptGenerator.FUNCTION_NAME_PLACEHOLDER_}(myList) { + return myList.reduce(function(x, y) {return x + y;}, 0) / myList.length; +} +`);a=module$exports$Blockly$JavaScript.javascriptGenerator.valueToCode(a,"LIST",module$exports$Blockly$JavaScript.javascriptGenerator.ORDER_NONE)||"[]";a=b+"("+a+")";break;case "MEDIAN":b=module$exports$Blockly$JavaScript.javascriptGenerator.provideFunction_("mathMedian",` +function ${module$exports$Blockly$JavaScript.javascriptGenerator.FUNCTION_NAME_PLACEHOLDER_}(myList) { + var localList = myList.filter(function (x) {return typeof x === 'number';}); + if (!localList.length) return null; + localList.sort(function(a, b) {return b - a;}); + if (localList.length % 2 === 0) { + return (localList[localList.length / 2 - 1] + localList[localList.length / 2]) / 2; + } else { + return localList[(localList.length - 1) / 2]; + } +} +`);a=module$exports$Blockly$JavaScript.javascriptGenerator.valueToCode(a,"LIST",module$exports$Blockly$JavaScript.javascriptGenerator.ORDER_NONE)||"[]";a=b+"("+a+")";break;case "MODE":b=module$exports$Blockly$JavaScript.javascriptGenerator.provideFunction_("mathModes",` +function ${module$exports$Blockly$JavaScript.javascriptGenerator.FUNCTION_NAME_PLACEHOLDER_}(values) { + var modes = []; + var counts = []; + var maxCount = 0; + for (var i = 0; i < values.length; i++) { + var value = values[i]; + var found = false; + var thisCount; + for (var j = 0; j < counts.length; j++) { + if (counts[j][0] === value) { + thisCount = ++counts[j][1]; + found = true; + break; + } + } + if (!found) { + counts.push([value, 1]); + thisCount = 1; + } + maxCount = Math.max(thisCount, maxCount); + } + for (var j = 0; j < counts.length; j++) { + if (counts[j][1] === maxCount) { + modes.push(counts[j][0]); + } + } + return modes; +} +`);a=module$exports$Blockly$JavaScript.javascriptGenerator.valueToCode(a,"LIST",module$exports$Blockly$JavaScript.javascriptGenerator.ORDER_NONE)||"[]";a=b+"("+a+")";break;case "STD_DEV":b=module$exports$Blockly$JavaScript.javascriptGenerator.provideFunction_("mathStandardDeviation",` +function ${module$exports$Blockly$JavaScript.javascriptGenerator.FUNCTION_NAME_PLACEHOLDER_}(numbers) { + var n = numbers.length; + if (!n) return null; + var mean = numbers.reduce(function(x, y) {return x + y;}) / n; + var variance = 0; + for (var j = 0; j < n; j++) { + variance += Math.pow(numbers[j] - mean, 2); + } + variance = variance / n; + return Math.sqrt(variance); +} +`);a=module$exports$Blockly$JavaScript.javascriptGenerator.valueToCode(a,"LIST",module$exports$Blockly$JavaScript.javascriptGenerator.ORDER_NONE)||"[]";a=b+"("+a+")";break;case "RANDOM":b=module$exports$Blockly$JavaScript.javascriptGenerator.provideFunction_("mathRandomList",` +function ${module$exports$Blockly$JavaScript.javascriptGenerator.FUNCTION_NAME_PLACEHOLDER_}(list) { + var x = Math.floor(Math.random() * list.length); + return list[x]; +} +`);a=module$exports$Blockly$JavaScript.javascriptGenerator.valueToCode(a,"LIST",module$exports$Blockly$JavaScript.javascriptGenerator.ORDER_NONE)||"[]";a=b+"("+a+")";break;default:throw Error("Unknown operator: "+b);}return[a,module$exports$Blockly$JavaScript.javascriptGenerator.ORDER_FUNCTION_CALL]}; +module$exports$Blockly$JavaScript.javascriptGenerator.math_modulo=function(a){const b=module$exports$Blockly$JavaScript.javascriptGenerator.valueToCode(a,"DIVIDEND",module$exports$Blockly$JavaScript.javascriptGenerator.ORDER_MODULUS)||"0";a=module$exports$Blockly$JavaScript.javascriptGenerator.valueToCode(a,"DIVISOR",module$exports$Blockly$JavaScript.javascriptGenerator.ORDER_MODULUS)||"0";return[b+" % "+a,module$exports$Blockly$JavaScript.javascriptGenerator.ORDER_MODULUS]}; +module$exports$Blockly$JavaScript.javascriptGenerator.math_constrain=function(a){const b=module$exports$Blockly$JavaScript.javascriptGenerator.valueToCode(a,"VALUE",module$exports$Blockly$JavaScript.javascriptGenerator.ORDER_NONE)||"0",c=module$exports$Blockly$JavaScript.javascriptGenerator.valueToCode(a,"LOW",module$exports$Blockly$JavaScript.javascriptGenerator.ORDER_NONE)||"0";a=module$exports$Blockly$JavaScript.javascriptGenerator.valueToCode(a,"HIGH",module$exports$Blockly$JavaScript.javascriptGenerator.ORDER_NONE)|| +"Infinity";return["Math.min(Math.max("+b+", "+c+"), "+a+")",module$exports$Blockly$JavaScript.javascriptGenerator.ORDER_FUNCTION_CALL]}; +module$exports$Blockly$JavaScript.javascriptGenerator.math_random_int=function(a){const b=module$exports$Blockly$JavaScript.javascriptGenerator.valueToCode(a,"FROM",module$exports$Blockly$JavaScript.javascriptGenerator.ORDER_NONE)||"0";a=module$exports$Blockly$JavaScript.javascriptGenerator.valueToCode(a,"TO",module$exports$Blockly$JavaScript.javascriptGenerator.ORDER_NONE)||"0";return[module$exports$Blockly$JavaScript.javascriptGenerator.provideFunction_("mathRandomInt",` +function ${module$exports$Blockly$JavaScript.javascriptGenerator.FUNCTION_NAME_PLACEHOLDER_}(a, b) { + if (a > b) { + // Swap a and b to ensure a is smaller. + var c = a; + a = b; + b = c; + } + return Math.floor(Math.random() * (b - a + 1) + a); +} +`)+"("+b+", "+a+")",module$exports$Blockly$JavaScript.javascriptGenerator.ORDER_FUNCTION_CALL]};module$exports$Blockly$JavaScript.javascriptGenerator.math_random_float=function(a){return["Math.random()",module$exports$Blockly$JavaScript.javascriptGenerator.ORDER_FUNCTION_CALL]}; +module$exports$Blockly$JavaScript.javascriptGenerator.math_atan2=function(a){const b=module$exports$Blockly$JavaScript.javascriptGenerator.valueToCode(a,"X",module$exports$Blockly$JavaScript.javascriptGenerator.ORDER_NONE)||"0";return["Math.atan2("+(module$exports$Blockly$JavaScript.javascriptGenerator.valueToCode(a,"Y",module$exports$Blockly$JavaScript.javascriptGenerator.ORDER_NONE)||"0")+", "+b+") / Math.PI * 180",module$exports$Blockly$JavaScript.javascriptGenerator.ORDER_DIVISION]};var module$exports$Blockly$JavaScript$procedures={},module$contents$Blockly$JavaScript$procedures_NameType=$.NameType$$module$build$src$core$names; +module$exports$Blockly$JavaScript.javascriptGenerator.procedures_defreturn=function(a){const b=module$exports$Blockly$JavaScript.javascriptGenerator.nameDB_.getName(a.getFieldValue("NAME"),$.NameType$$module$build$src$core$names.PROCEDURE);var c="";module$exports$Blockly$JavaScript.javascriptGenerator.STATEMENT_PREFIX&&(c+=module$exports$Blockly$JavaScript.javascriptGenerator.injectId(module$exports$Blockly$JavaScript.javascriptGenerator.STATEMENT_PREFIX,a));module$exports$Blockly$JavaScript.javascriptGenerator.STATEMENT_SUFFIX&& +(c+=module$exports$Blockly$JavaScript.javascriptGenerator.injectId(module$exports$Blockly$JavaScript.javascriptGenerator.STATEMENT_SUFFIX,a));c&&(c=module$exports$Blockly$JavaScript.javascriptGenerator.prefixLines(c,module$exports$Blockly$JavaScript.javascriptGenerator.INDENT));let d="";module$exports$Blockly$JavaScript.javascriptGenerator.INFINITE_LOOP_TRAP&&(d=module$exports$Blockly$JavaScript.javascriptGenerator.prefixLines(module$exports$Blockly$JavaScript.javascriptGenerator.injectId(module$exports$Blockly$JavaScript.javascriptGenerator.INFINITE_LOOP_TRAP, +a),module$exports$Blockly$JavaScript.javascriptGenerator.INDENT));const e=module$exports$Blockly$JavaScript.javascriptGenerator.statementToCode(a,"STACK");let f=module$exports$Blockly$JavaScript.javascriptGenerator.valueToCode(a,"RETURN",module$exports$Blockly$JavaScript.javascriptGenerator.ORDER_NONE)||"",g="";e&&f&&(g=c);f&&(f=module$exports$Blockly$JavaScript.javascriptGenerator.INDENT+"return "+f+";\n");const h=[],k=a.getVars();for(let l=0;lc?Blockly.JavaScript.valueToCode(a,b,Blockly.JavaScript.ORDER_SUBTRACTION)||f:d?Blockly.JavaScript.valueToCode(a,b,Blockly.JavaScript.ORDER_UNARY_NEGATION)||f:Blockly.JavaScript.valueToCode(a,b,e)||f;if(Blockly.isNumber(a))a=Number(a)+c,d&& -(a=-a);else{if(0c&&(a=a+" - "+-c,g=Blockly.JavaScript.ORDER_SUBTRACTION);d&&(a=c?"-("+a+")":"-"+a,g=Blockly.JavaScript.ORDER_UNARY_NEGATION);g=Math.floor(g);e=Math.floor(e);g&&e>=g&&(a="("+a+")")}return a};Blockly.JavaScript.colour={};Blockly.JavaScript.colour_picker=function(a){return[Blockly.JavaScript.quote_(a.getFieldValue("COLOUR")),Blockly.JavaScript.ORDER_ATOMIC]};Blockly.JavaScript.colour_random=function(a){return[Blockly.JavaScript.provideFunction_("colourRandom",["function "+Blockly.JavaScript.FUNCTION_NAME_PLACEHOLDER_+"() {"," var num = Math.floor(Math.random() * Math.pow(2, 24));"," return '#' + ('00000' + num.toString(16)).substr(-6);","}"])+"()",Blockly.JavaScript.ORDER_FUNCTION_CALL]}; -Blockly.JavaScript.colour_rgb=function(a){var b=Blockly.JavaScript.valueToCode(a,"RED",Blockly.JavaScript.ORDER_COMMA)||0,c=Blockly.JavaScript.valueToCode(a,"GREEN",Blockly.JavaScript.ORDER_COMMA)||0;a=Blockly.JavaScript.valueToCode(a,"BLUE",Blockly.JavaScript.ORDER_COMMA)||0;return[Blockly.JavaScript.provideFunction_("colourRgb",["function "+Blockly.JavaScript.FUNCTION_NAME_PLACEHOLDER_+"(r, g, b) {"," r = Math.max(Math.min(Number(r), 100), 0) * 2.55;"," g = Math.max(Math.min(Number(g), 100), 0) * 2.55;", -" b = Math.max(Math.min(Number(b), 100), 0) * 2.55;"," r = ('0' + (Math.round(r) || 0).toString(16)).slice(-2);"," g = ('0' + (Math.round(g) || 0).toString(16)).slice(-2);"," b = ('0' + (Math.round(b) || 0).toString(16)).slice(-2);"," return '#' + r + g + b;","}"])+"("+b+", "+c+", "+a+")",Blockly.JavaScript.ORDER_FUNCTION_CALL]}; -Blockly.JavaScript.colour_blend=function(a){var b=Blockly.JavaScript.valueToCode(a,"COLOUR1",Blockly.JavaScript.ORDER_COMMA)||"'#000000'",c=Blockly.JavaScript.valueToCode(a,"COLOUR2",Blockly.JavaScript.ORDER_COMMA)||"'#000000'";a=Blockly.JavaScript.valueToCode(a,"RATIO",Blockly.JavaScript.ORDER_COMMA)||.5;return[Blockly.JavaScript.provideFunction_("colourBlend",["function "+Blockly.JavaScript.FUNCTION_NAME_PLACEHOLDER_+"(c1, c2, ratio) {"," ratio = Math.max(Math.min(Number(ratio), 1), 0);"," var r1 = parseInt(c1.substring(1, 3), 16);", -" var g1 = parseInt(c1.substring(3, 5), 16);"," var b1 = parseInt(c1.substring(5, 7), 16);"," var r2 = parseInt(c2.substring(1, 3), 16);"," var g2 = parseInt(c2.substring(3, 5), 16);"," var b2 = parseInt(c2.substring(5, 7), 16);"," var r = Math.round(r1 * (1 - ratio) + r2 * ratio);"," var g = Math.round(g1 * (1 - ratio) + g2 * ratio);"," var b = Math.round(b1 * (1 - ratio) + b2 * ratio);"," r = ('0' + (r || 0).toString(16)).slice(-2);"," g = ('0' + (g || 0).toString(16)).slice(-2);"," b = ('0' + (b || 0).toString(16)).slice(-2);", -" return '#' + r + g + b;","}"])+"("+b+", "+c+", "+a+")",Blockly.JavaScript.ORDER_FUNCTION_CALL]};Blockly.JavaScript.lists={};Blockly.JavaScript.lists_create_empty=function(a){return["[]",Blockly.JavaScript.ORDER_ATOMIC]};Blockly.JavaScript.lists_create_with=function(a){for(var b=Array(a.itemCount_),c=0;c b.toString() ? 1 : -1; },", -' "IGNORE_CASE": function(a, b) {'," return a.toString().toLowerCase() > b.toString().toLowerCase() ? 1 : -1; },"," };"," var compare = compareFuncs[type];"," return function(a, b) { return compare(a, b) * direction; }","}"]);return[b+".slice().sort("+d+'("'+a+'", '+c+"))",Blockly.JavaScript.ORDER_FUNCTION_CALL]}; -Blockly.JavaScript.lists_split=function(a){var b=Blockly.JavaScript.valueToCode(a,"INPUT",Blockly.JavaScript.ORDER_MEMBER),c=Blockly.JavaScript.valueToCode(a,"DELIM",Blockly.JavaScript.ORDER_NONE)||"''";a=a.getFieldValue("MODE");if("SPLIT"==a)b||(b="''"),a="split";else if("JOIN"==a)b||(b="[]"),a="join";else throw Error("Unknown mode: "+a);return[b+"."+a+"("+c+")",Blockly.JavaScript.ORDER_FUNCTION_CALL]}; -Blockly.JavaScript.lists_reverse=function(a){return[(Blockly.JavaScript.valueToCode(a,"LIST",Blockly.JavaScript.ORDER_FUNCTION_CALL)||"[]")+".slice().reverse()",Blockly.JavaScript.ORDER_FUNCTION_CALL]};Blockly.JavaScript.logic={}; -Blockly.JavaScript.controls_if=function(a){var b=0,c="";Blockly.JavaScript.STATEMENT_PREFIX&&(c+=Blockly.JavaScript.injectId(Blockly.JavaScript.STATEMENT_PREFIX,a));do{var d=Blockly.JavaScript.valueToCode(a,"IF"+b,Blockly.JavaScript.ORDER_NONE)||"false";var e=Blockly.JavaScript.statementToCode(a,"DO"+b);Blockly.JavaScript.STATEMENT_SUFFIX&&(e=Blockly.JavaScript.prefixLines(Blockly.JavaScript.injectId(Blockly.JavaScript.STATEMENT_SUFFIX,a),Blockly.JavaScript.INDENT)+e);c+=(0",GTE:">="}[a.getFieldValue("OP")],c="=="==b||"!="==b?Blockly.JavaScript.ORDER_EQUALITY:Blockly.JavaScript.ORDER_RELATIONAL,d=Blockly.JavaScript.valueToCode(a,"A",c)||"0";a=Blockly.JavaScript.valueToCode(a,"B",c)||"0";return[d+" "+b+" "+a,c]}; -Blockly.JavaScript.logic_operation=function(a){var b="AND"==a.getFieldValue("OP")?"&&":"||",c="&&"==b?Blockly.JavaScript.ORDER_LOGICAL_AND:Blockly.JavaScript.ORDER_LOGICAL_OR,d=Blockly.JavaScript.valueToCode(a,"A",c);a=Blockly.JavaScript.valueToCode(a,"B",c);if(d||a){var e="&&"==b?"true":"false";d||(d=e);a||(a=e)}else a=d="false";return[d+" "+b+" "+a,c]}; -Blockly.JavaScript.logic_negate=function(a){var b=Blockly.JavaScript.ORDER_LOGICAL_NOT;return["!"+(Blockly.JavaScript.valueToCode(a,"BOOL",b)||"true"),b]};Blockly.JavaScript.logic_boolean=function(a){return["TRUE"==a.getFieldValue("BOOL")?"true":"false",Blockly.JavaScript.ORDER_ATOMIC]};Blockly.JavaScript.logic_null=function(a){return["null",Blockly.JavaScript.ORDER_ATOMIC]}; -Blockly.JavaScript.logic_ternary=function(a){var b=Blockly.JavaScript.valueToCode(a,"IF",Blockly.JavaScript.ORDER_CONDITIONAL)||"false",c=Blockly.JavaScript.valueToCode(a,"THEN",Blockly.JavaScript.ORDER_CONDITIONAL)||"null";a=Blockly.JavaScript.valueToCode(a,"ELSE",Blockly.JavaScript.ORDER_CONDITIONAL)||"null";return[b+" ? "+c+" : "+a,Blockly.JavaScript.ORDER_CONDITIONAL]};Blockly.JavaScript.loops={}; -Blockly.JavaScript.controls_repeat_ext=function(a){var b=a.getField("TIMES")?String(Number(a.getFieldValue("TIMES"))):Blockly.JavaScript.valueToCode(a,"TIMES",Blockly.JavaScript.ORDER_ASSIGNMENT)||"0",c=Blockly.JavaScript.statementToCode(a,"DO");c=Blockly.JavaScript.addLoopTrap(c,a);a="";var d=Blockly.JavaScript.variableDB_.getDistinctName("count",Blockly.VARIABLE_CATEGORY_NAME),e=b;b.match(/^\w+$/)||Blockly.isNumber(b)||(e=Blockly.JavaScript.variableDB_.getDistinctName("repeat_end",Blockly.VARIABLE_CATEGORY_NAME), -a+="var "+e+" = "+b+";\n");return a+("for (var "+d+" = 0; "+d+" < "+e+"; "+d+"++) {\n"+c+"}\n")};Blockly.JavaScript.controls_repeat=Blockly.JavaScript.controls_repeat_ext; -Blockly.JavaScript.controls_whileUntil=function(a){var b="UNTIL"==a.getFieldValue("MODE"),c=Blockly.JavaScript.valueToCode(a,"BOOL",b?Blockly.JavaScript.ORDER_LOGICAL_NOT:Blockly.JavaScript.ORDER_NONE)||"false",d=Blockly.JavaScript.statementToCode(a,"DO");d=Blockly.JavaScript.addLoopTrap(d,a);b&&(c="!"+c);return"while ("+c+") {\n"+d+"}\n"}; -Blockly.JavaScript.controls_for=function(a){var b=Blockly.JavaScript.variableDB_.getName(a.getFieldValue("VAR"),Blockly.VARIABLE_CATEGORY_NAME),c=Blockly.JavaScript.valueToCode(a,"FROM",Blockly.JavaScript.ORDER_ASSIGNMENT)||"0",d=Blockly.JavaScript.valueToCode(a,"TO",Blockly.JavaScript.ORDER_ASSIGNMENT)||"0",e=Blockly.JavaScript.valueToCode(a,"BY",Blockly.JavaScript.ORDER_ASSIGNMENT)||"1",f=Blockly.JavaScript.statementToCode(a,"DO");f=Blockly.JavaScript.addLoopTrap(f,a);if(Blockly.isNumber(c)&&Blockly.isNumber(d)&& -Blockly.isNumber(e)){var g=Number(c)<=Number(d);a="for ("+b+" = "+c+"; "+b+(g?" <= ":" >= ")+d+"; "+b;b=Math.abs(Number(e));a=(1==b?a+(g?"++":"--"):a+((g?" += ":" -= ")+b))+(") {\n"+f+"}\n")}else a="",g=c,c.match(/^\w+$/)||Blockly.isNumber(c)||(g=Blockly.JavaScript.variableDB_.getDistinctName(b+"_start",Blockly.VARIABLE_CATEGORY_NAME),a+="var "+g+" = "+c+";\n"),c=d,d.match(/^\w+$/)||Blockly.isNumber(d)||(c=Blockly.JavaScript.variableDB_.getDistinctName(b+"_end",Blockly.VARIABLE_CATEGORY_NAME),a+= -"var "+c+" = "+d+";\n"),d=Blockly.JavaScript.variableDB_.getDistinctName(b+"_inc",Blockly.VARIABLE_CATEGORY_NAME),a+="var "+d+" = ",a=Blockly.isNumber(e)?a+(Math.abs(e)+";\n"):a+("Math.abs("+e+");\n"),a=a+("if ("+g+" > "+c+") {\n")+(Blockly.JavaScript.INDENT+d+" = -"+d+";\n"),a+="}\n",a+="for ("+b+" = "+g+"; "+d+" >= 0 ? "+b+" <= "+c+" : "+b+" >= "+c+"; "+b+" += "+d+") {\n"+f+"}\n";return a}; -Blockly.JavaScript.controls_forEach=function(a){var b=Blockly.JavaScript.variableDB_.getName(a.getFieldValue("VAR"),Blockly.VARIABLE_CATEGORY_NAME),c=Blockly.JavaScript.valueToCode(a,"LIST",Blockly.JavaScript.ORDER_ASSIGNMENT)||"[]",d=Blockly.JavaScript.statementToCode(a,"DO");d=Blockly.JavaScript.addLoopTrap(d,a);a="";var e=c;c.match(/^\w+$/)||(e=Blockly.JavaScript.variableDB_.getDistinctName(b+"_list",Blockly.VARIABLE_CATEGORY_NAME),a+="var "+e+" = "+c+";\n");c=Blockly.JavaScript.variableDB_.getDistinctName(b+ -"_index",Blockly.VARIABLE_CATEGORY_NAME);d=Blockly.JavaScript.INDENT+b+" = "+e+"["+c+"];\n"+d;return a+("for (var "+c+" in "+e+") {\n"+d+"}\n")}; -Blockly.JavaScript.controls_flow_statements=function(a){var b="";Blockly.JavaScript.STATEMENT_PREFIX&&(b+=Blockly.JavaScript.injectId(Blockly.JavaScript.STATEMENT_PREFIX,a));Blockly.JavaScript.STATEMENT_SUFFIX&&(b+=Blockly.JavaScript.injectId(Blockly.JavaScript.STATEMENT_SUFFIX,a));if(Blockly.JavaScript.STATEMENT_PREFIX){var c=Blockly.Constants.Loops.CONTROL_FLOW_IN_LOOP_CHECK_MIXIN.getSurroundLoop(a);c&&!c.suppressPrefixSuffix&&(b+=Blockly.JavaScript.injectId(Blockly.JavaScript.STATEMENT_PREFIX, -c))}switch(a.getFieldValue("FLOW")){case "BREAK":return b+"break;\n";case "CONTINUE":return b+"continue;\n"}throw Error("Unknown flow statement.");};Blockly.JavaScript.math={};Blockly.JavaScript.math_number=function(a){a=Number(a.getFieldValue("NUM"));return[a,0<=a?Blockly.JavaScript.ORDER_ATOMIC:Blockly.JavaScript.ORDER_UNARY_NEGATION]}; -Blockly.JavaScript.math_arithmetic=function(a){var b={ADD:[" + ",Blockly.JavaScript.ORDER_ADDITION],MINUS:[" - ",Blockly.JavaScript.ORDER_SUBTRACTION],MULTIPLY:[" * ",Blockly.JavaScript.ORDER_MULTIPLICATION],DIVIDE:[" / ",Blockly.JavaScript.ORDER_DIVISION],POWER:[null,Blockly.JavaScript.ORDER_COMMA]}[a.getFieldValue("OP")],c=b[0];b=b[1];var d=Blockly.JavaScript.valueToCode(a,"A",b)||"0";a=Blockly.JavaScript.valueToCode(a,"B",b)||"0";return c?["parseFloat(" + d + ")"+c+a,b]:["Math.pow("+d+", "+a+")",Blockly.JavaScript.ORDER_FUNCTION_CALL]}; -Blockly.JavaScript.math_single=function(a){var b=a.getFieldValue("OP");if("NEG"==b)return a=Blockly.JavaScript.valueToCode(a,"NUM",Blockly.JavaScript.ORDER_UNARY_NEGATION)||"0","-"==a[0]&&(a=" "+a),["-"+a,Blockly.JavaScript.ORDER_UNARY_NEGATION];a="SIN"==b||"COS"==b||"TAN"==b?Blockly.JavaScript.valueToCode(a,"NUM",Blockly.JavaScript.ORDER_DIVISION)||"0":Blockly.JavaScript.valueToCode(a,"NUM",Blockly.JavaScript.ORDER_NONE)||"0";switch(b){case "ABS":var c="Math.abs("+a+")";break;case "ROOT":c="Math.sqrt("+ -a+")";break;case "LN":c="Math.log("+a+")";break;case "EXP":c="Math.exp("+a+")";break;case "POW10":c="Math.pow(10,"+a+")";break;case "ROUND":c="Math.round("+a+")";break;case "ROUNDUP":c="Math.ceil("+a+")";break;case "ROUNDDOWN":c="Math.floor("+a+")";break;case "SIN":c="Math.sin("+a+" / 180 * Math.PI)";break;case "COS":c="Math.cos("+a+" / 180 * Math.PI)";break;case "TAN":c="Math.tan("+a+" / 180 * Math.PI)"}if(c)return[c,Blockly.JavaScript.ORDER_FUNCTION_CALL];switch(b){case "LOG10":c="Math.log("+a+ -") / Math.log(10)";break;case "ASIN":c="Math.asin("+a+") / Math.PI * 180";break;case "ACOS":c="Math.acos("+a+") / Math.PI * 180";break;case "ATAN":c="Math.atan("+a+") / Math.PI * 180";break;default:throw Error("Unknown math operator: "+b);}return[c,Blockly.JavaScript.ORDER_DIVISION]}; -Blockly.JavaScript.math_constant=function(a){return{PI:["Math.PI",Blockly.JavaScript.ORDER_MEMBER],E:["Math.E",Blockly.JavaScript.ORDER_MEMBER],GOLDEN_RATIO:["(1 + Math.sqrt(5)) / 2",Blockly.JavaScript.ORDER_DIVISION],SQRT2:["Math.SQRT2",Blockly.JavaScript.ORDER_MEMBER],SQRT1_2:["Math.SQRT1_2",Blockly.JavaScript.ORDER_MEMBER],INFINITY:["Infinity",Blockly.JavaScript.ORDER_ATOMIC]}[a.getFieldValue("CONSTANT")]}; -Blockly.JavaScript.math_number_property=function(a){var b=Blockly.JavaScript.valueToCode(a,"NUMBER_TO_CHECK",Blockly.JavaScript.ORDER_MODULUS)||"0",c=a.getFieldValue("PROPERTY");if("PRIME"==c)return[Blockly.JavaScript.provideFunction_("mathIsPrime",["function "+Blockly.JavaScript.FUNCTION_NAME_PLACEHOLDER_+"(n) {"," // https://en.wikipedia.org/wiki/Primality_test#Naive_methods"," if (n == 2 || n == 3) {"," return true;"," }"," // False if n is NaN, negative, is 1, or not whole."," // And false if n is divisible by 2 or 3.", -" if (isNaN(n) || n <= 1 || n % 1 != 0 || n % 2 == 0 || n % 3 == 0) {"," return false;"," }"," // Check all the numbers of form 6k +/- 1, up to sqrt(n)."," for (var x = 6; x <= Math.sqrt(n) + 1; x += 6) {"," if (n % (x - 1) == 0 || n % (x + 1) == 0) {"," return false;"," }"," }"," return true;","}"])+"("+b+")",Blockly.JavaScript.ORDER_FUNCTION_CALL];switch(c){case "EVEN":var d=b+" % 2 == 0";break;case "ODD":d=b+" % 2 == 1";break;case "WHOLE":d=b+" % 1 == 0";break;case "POSITIVE":d= -b+" > 0";break;case "NEGATIVE":d=b+" < 0";break;case "DIVISIBLE_BY":a=Blockly.JavaScript.valueToCode(a,"DIVISOR",Blockly.JavaScript.ORDER_MODULUS)||"0",d=b+" % "+a+" == 0"}return[d,Blockly.JavaScript.ORDER_EQUALITY]}; -Blockly.JavaScript.math_change=function(a){var b=Blockly.JavaScript.valueToCode(a,"DELTA",Blockly.JavaScript.ORDER_ADDITION)||"0";a=Blockly.JavaScript.variableDB_.getName(a.getFieldValue("VAR"),Blockly.VARIABLE_CATEGORY_NAME);return a+" = (typeof "+a+" == 'number' ? "+a+" : 0) + "+b+";\n"};Blockly.JavaScript.math_round=Blockly.JavaScript.math_single;Blockly.JavaScript.math_trig=Blockly.JavaScript.math_single; -Blockly.JavaScript.math_on_list=function(a){var b=a.getFieldValue("OP");switch(b){case "SUM":a=Blockly.JavaScript.valueToCode(a,"LIST",Blockly.JavaScript.ORDER_MEMBER)||"[]";a+=".reduce(function(x, y) {return x + y;})";break;case "MIN":a=Blockly.JavaScript.valueToCode(a,"LIST",Blockly.JavaScript.ORDER_COMMA)||"[]";a="Math.min.apply(null, "+a+")";break;case "MAX":a=Blockly.JavaScript.valueToCode(a,"LIST",Blockly.JavaScript.ORDER_COMMA)||"[]";a="Math.max.apply(null, "+a+")";break;case "AVERAGE":b=Blockly.JavaScript.provideFunction_("mathMean", -["function "+Blockly.JavaScript.FUNCTION_NAME_PLACEHOLDER_+"(myList) {"," return myList.reduce(function(x, y) {return x + y;}) / myList.length;","}"]);a=Blockly.JavaScript.valueToCode(a,"LIST",Blockly.JavaScript.ORDER_NONE)||"[]";a=b+"("+a+")";break;case "MEDIAN":b=Blockly.JavaScript.provideFunction_("mathMedian",["function "+Blockly.JavaScript.FUNCTION_NAME_PLACEHOLDER_+"(myList) {"," var localList = myList.filter(function (x) {return typeof x == 'number';});"," if (!localList.length) return null;", -" localList.sort(function(a, b) {return b - a;});"," if (localList.length % 2 == 0) {"," return (localList[localList.length / 2 - 1] + localList[localList.length / 2]) / 2;"," } else {"," return localList[(localList.length - 1) / 2];"," }","}"]);a=Blockly.JavaScript.valueToCode(a,"LIST",Blockly.JavaScript.ORDER_NONE)||"[]";a=b+"("+a+")";break;case "MODE":b=Blockly.JavaScript.provideFunction_("mathModes",["function "+Blockly.JavaScript.FUNCTION_NAME_PLACEHOLDER_+"(values) {"," var modes = [];", -" var counts = [];"," var maxCount = 0;"," for (var i = 0; i < values.length; i++) {"," var value = values[i];"," var found = false;"," var thisCount;"," for (var j = 0; j < counts.length; j++) {"," if (counts[j][0] === value) {"," thisCount = ++counts[j][1];"," found = true;"," break;"," }"," }"," if (!found) {"," counts.push([value, 1]);"," thisCount = 1;"," }"," maxCount = Math.max(thisCount, maxCount);"," }"," for (var j = 0; j < counts.length; j++) {", -" if (counts[j][1] == maxCount) {"," modes.push(counts[j][0]);"," }"," }"," return modes;","}"]);a=Blockly.JavaScript.valueToCode(a,"LIST",Blockly.JavaScript.ORDER_NONE)||"[]";a=b+"("+a+")";break;case "STD_DEV":b=Blockly.JavaScript.provideFunction_("mathStandardDeviation",["function "+Blockly.JavaScript.FUNCTION_NAME_PLACEHOLDER_+"(numbers) {"," var n = numbers.length;"," if (!n) return null;"," var mean = numbers.reduce(function(x, y) {return x + y;}) / n;"," var variance = 0;", -" for (var j = 0; j < n; j++) {"," variance += Math.pow(numbers[j] - mean, 2);"," }"," variance = variance / n;"," return Math.sqrt(variance);","}"]);a=Blockly.JavaScript.valueToCode(a,"LIST",Blockly.JavaScript.ORDER_NONE)||"[]";a=b+"("+a+")";break;case "RANDOM":b=Blockly.JavaScript.provideFunction_("mathRandomList",["function "+Blockly.JavaScript.FUNCTION_NAME_PLACEHOLDER_+"(list) {"," var x = Math.floor(Math.random() * list.length);"," return list[x];","}"]);a=Blockly.JavaScript.valueToCode(a, -"LIST",Blockly.JavaScript.ORDER_NONE)||"[]";a=b+"("+a+")";break;default:throw Error("Unknown operator: "+b);}return[a,Blockly.JavaScript.ORDER_FUNCTION_CALL]};Blockly.JavaScript.math_modulo=function(a){var b=Blockly.JavaScript.valueToCode(a,"DIVIDEND",Blockly.JavaScript.ORDER_MODULUS)||"0";a=Blockly.JavaScript.valueToCode(a,"DIVISOR",Blockly.JavaScript.ORDER_MODULUS)||"0";return[b+" % "+a,Blockly.JavaScript.ORDER_MODULUS]}; -Blockly.JavaScript.math_constrain=function(a){var b=Blockly.JavaScript.valueToCode(a,"VALUE",Blockly.JavaScript.ORDER_COMMA)||"0",c=Blockly.JavaScript.valueToCode(a,"LOW",Blockly.JavaScript.ORDER_COMMA)||"0";a=Blockly.JavaScript.valueToCode(a,"HIGH",Blockly.JavaScript.ORDER_COMMA)||"Infinity";return["Math.min(Math.max("+b+", "+c+"), "+a+")",Blockly.JavaScript.ORDER_FUNCTION_CALL]}; -Blockly.JavaScript.math_random_int=function(a){var b=Blockly.JavaScript.valueToCode(a,"FROM",Blockly.JavaScript.ORDER_COMMA)||"0";a=Blockly.JavaScript.valueToCode(a,"TO",Blockly.JavaScript.ORDER_COMMA)||"0";return[Blockly.JavaScript.provideFunction_("mathRandomInt",["function "+Blockly.JavaScript.FUNCTION_NAME_PLACEHOLDER_+"(a, b) {"," if (a > b) {"," // Swap a and b to ensure a is smaller."," var c = a;"," a = b;"," b = c;"," }"," return Math.floor(Math.random() * (b - a + 1) + a);", -"}"])+"("+b+", "+a+")",Blockly.JavaScript.ORDER_FUNCTION_CALL]};Blockly.JavaScript.math_random_float=function(a){return["Math.random()",Blockly.JavaScript.ORDER_FUNCTION_CALL]};Blockly.JavaScript.math_atan2=function(a){var b=Blockly.JavaScript.valueToCode(a,"X",Blockly.JavaScript.ORDER_COMMA)||"0";return["Math.atan2("+(Blockly.JavaScript.valueToCode(a,"Y",Blockly.JavaScript.ORDER_COMMA)||"0")+", "+b+") / Math.PI * 180",Blockly.JavaScript.ORDER_DIVISION]};Blockly.JavaScript.procedures={}; -Blockly.JavaScript.procedures_defreturn=function(a){var b=Blockly.JavaScript.variableDB_.getName(a.getFieldValue("NAME"),Blockly.PROCEDURE_CATEGORY_NAME),c="";Blockly.JavaScript.STATEMENT_PREFIX&&(c+=Blockly.JavaScript.injectId(Blockly.JavaScript.STATEMENT_PREFIX,a));Blockly.JavaScript.STATEMENT_SUFFIX&&(c+=Blockly.JavaScript.injectId(Blockly.JavaScript.STATEMENT_SUFFIX,a));c&&(c=Blockly.JavaScript.prefixLines(c,Blockly.JavaScript.INDENT));var d="";Blockly.JavaScript.INFINITE_LOOP_TRAP&&(d=Blockly.JavaScript.prefixLines(Blockly.JavaScript.injectId(Blockly.JavaScript.INFINITE_LOOP_TRAP, -a),Blockly.JavaScript.INDENT));var e=Blockly.JavaScript.statementToCode(a,"STACK"),f=Blockly.JavaScript.valueToCode(a,"RETURN",Blockly.JavaScript.ORDER_NONE)||"",g="";e&&f&&(g=c);f&&(f=Blockly.JavaScript.INDENT+"return "+f+";\n");for(var k=[],h=0;h {\n' + statement + '});\n' + logText; } else { return 'exec(' + value_command + ');\n' + @@ -118,7 +121,7 @@ Blockly.Action.blocks['request'] = '' + ' ' + ' ' - + ' text' + + ' http://' + ' ' + ' ' + ' ' @@ -161,18 +164,21 @@ Blockly.Blocks['request'] = { this.setHelpUrl(Blockly.Translate('request_help')); }, mutationToDom: function() { - var container = document.createElement('mutation'); - var withStatement = this.getFieldValue('WITH_STATEMENT') ; + const container = document.createElement('mutation'); + const withStatement = this.getFieldValue('WITH_STATEMENT'); + container.setAttribute('with_statement', withStatement === true || withStatement === 'true' || withStatement === 'TRUE'); + return container; }, domToMutation: function(xmlElement) { - var option = xmlElement.getAttribute('with_statement'); + const option = xmlElement.getAttribute('with_statement'); + this.updateShape_(option === true || option === 'true' || option === 'TRUE'); }, updateShape_: function(withStatement) { // Add or remove a statement Input. - var inputExists = this.getInput('STATEMENT'); + const inputExists = this.getInput('STATEMENT'); if (withStatement) { if (!inputExists) { @@ -185,28 +191,25 @@ Blockly.Blocks['request'] = { }; Blockly.JavaScript['request'] = function(block) { - var logLevel = block.getFieldValue('LOG'); - var URL = Blockly.JavaScript.valueToCode(block, 'URL', Blockly.JavaScript.ORDER_ATOMIC); - var withStatement = block.getFieldValue('WITH_STATEMENT'); + const logLevel = block.getFieldValue('LOG'); + const URL = Blockly.JavaScript.valueToCode(block, 'URL', Blockly.JavaScript.ORDER_ATOMIC); + const withStatement = block.getFieldValue('WITH_STATEMENT'); - var logText; + let logText; if (logLevel) { - logText = 'console.' + logLevel + '("request: " + ' + URL + ');\n' + logText = `console.` + logLevel + `('request: ' + ` + URL + `);\n`; } else { logText = ''; } if (withStatement === 'TRUE' || withStatement === 'true' || withStatement === true) { - var statement = Blockly.JavaScript.statementToCode(block, 'STATEMENT'); + const statement = Blockly.JavaScript.statementToCode(block, 'STATEMENT'); if (statement) { - return 'try {\n require("request")(' + URL + ', async function (error, response, result) {\n ' + statement + ' }).on("error", function (e) {console.error(e);});\n} catch (e) { console.error(e); }\n' + - logText; + return 'try {\n require("request")(' + URL + ', async (error, response, result) => {\n ' + statement + ' }).on("error", (e) => { console.error(e); });\n} catch (e) { console.error(e); }\n' + logText; } else { - return 'try {\n require("request")(' + URL + ').on("error", function (e) {console.error(e);});\n} catch (e) { console.error(e); }\n' + - logText; + return 'try {\n require("request")(' + URL + ').on("error", (e) => { console.error(e); });\n} catch (e) { console.error(e); }\n' + logText; } } else { - return 'try {\n require("request")(' + URL + ').on("error", function (e) {console.error(e);});\n} catch (e) { console.error(e); }\n' + - logText; + return 'try {\n require("request")(' + URL + ').on("error", (e) => { console.error(e); });\n} catch (e) { console.error(e); }\n' + logText; } }; diff --git a/admin/google-blockly/own/blocks_convert.js b/admin/google-blockly/own/blocks_convert.js index 2c65625e6..72b93962d 100644 --- a/admin/google-blockly/own/blocks_convert.js +++ b/admin/google-blockly/own/blocks_convert.js @@ -28,15 +28,16 @@ Blockly.Blocks.convert_tonumber = { init: function () { this.setColour(Blockly.Convert.HUE); - this.appendValueInput("VALUE") + this.appendValueInput('VALUE') .appendField(Blockly.Translate('convert_tonumber')); - this.setOutput(true, "Number"); + this.setOutput(true, 'Number'); this.setTooltip(Blockly.Translate('convert_tonumber_tooltip')); } }; + Blockly.JavaScript.convert_tonumber = function (a) { - return ["parseFloat(" + Blockly.JavaScript.valueToCode(a, "VALUE", Blockly.JavaScript.ORDER_ATOMIC) + ")", Blockly.JavaScript.ORDER_ATOMIC]; + return ['parseFloat(' + Blockly.JavaScript.valueToCode(a, 'VALUE', Blockly.JavaScript.ORDER_ATOMIC) + ')', Blockly.JavaScript.ORDER_ATOMIC]; }; // --- to Boolean -------------------------------------------------- @@ -49,14 +50,21 @@ Blockly.Convert.blocks['convert_toboolean'] = Blockly.Blocks.convert_toboolean = { init: function () { this.setColour(Blockly.Convert.HUE); - this.appendValueInput("VALUE").appendField(Blockly.Translate('convert_toboolean')); - this.setOutput(true, "Boolean"); + this.appendValueInput('VALUE') + .appendField(Blockly.Translate('convert_toboolean')); + + this.setOutput(true, 'Boolean'); this.setTooltip(Blockly.Translate('convert_toboolean_tooltip')) } }; Blockly.JavaScript.convert_toboolean = function (a) { - return ["(function (){const val = " + Blockly.JavaScript.valueToCode(a, "VALUE", Blockly.JavaScript.ORDER_ATOMIC) + "; if (val === 'true') return true; if (val === 'false') return false; return !!val;})()", Blockly.JavaScript.ORDER_ATOMIC]; + return ['(() => {\n' + + ' const val = ' + Blockly.JavaScript.valueToCode(a, 'VALUE', Blockly.JavaScript.ORDER_ATOMIC) + ';\n' + + ' if (val === "true" || val === "TRUE") return true;\n' + + ' if (val === "false" || val === "FALSE") return false;\n' + + ' return !!val;\n' + + '})()', Blockly.JavaScript.ORDER_ATOMIC]; }; // --- to String -------------------------------------------------- @@ -69,14 +77,14 @@ Blockly.Convert.blocks['convert_tostring'] = Blockly.Blocks.convert_tostring = { init: function () { this.setColour(Blockly.Convert.HUE); - this.appendValueInput("VALUE").appendField(Blockly.Translate('convert_tostring')); - this.setOutput(true, "String"); + this.appendValueInput('VALUE').appendField(Blockly.Translate('convert_tostring')); + this.setOutput(true, 'String'); this.setTooltip(Blockly.Translate('convert_tostring_tooltip')) } }; Blockly.JavaScript.convert_tostring = function (a) { - return ["('' + " + Blockly.JavaScript.valueToCode(a, "VALUE", Blockly.JavaScript.ORDER_ATOMIC) + ")", Blockly.JavaScript.ORDER_ATOMIC]; + return ["('' + " + Blockly.JavaScript.valueToCode(a, 'VALUE', Blockly.JavaScript.ORDER_ATOMIC) + ")", Blockly.JavaScript.ORDER_ATOMIC]; }; // --- get type -------------------------------------------------- @@ -97,6 +105,7 @@ Blockly.Blocks.convert_type = { this.setTooltip(Blockly.Translate('convert_type_tooltip')) } }; + Blockly.JavaScript.convert_type = function (a) { return ['typeof ' + Blockly.JavaScript.valueToCode(a, 'ITEM', Blockly.JavaScript.ORDER_ATOMIC), Blockly.JavaScript.ORDER_ATOMIC]; }; @@ -119,6 +128,7 @@ Blockly.Blocks.convert_to_date = { this.setTooltip(Blockly.Translate('convert_to_date_tooltip')) } }; + Blockly.JavaScript.convert_to_date = function (a) { return ['getDateObject(' + Blockly.JavaScript.valueToCode(a, 'VALUE', Blockly.JavaScript.ORDER_ATOMIC) + ').getTime()', Blockly.JavaScript.ORDER_ATOMIC]; }; @@ -184,27 +194,28 @@ Blockly.Blocks.convert_from_date = { this.sourceBlock_.updateShape_(option === 'custom', option === 'wdts' || option === 'wdt' || option === 'Mt' || option === 'Mts'); }), 'OPTION'); - this.setInputsInline(true); this.setOutput(true); this.setTooltip(Blockly.Translate('convert_from_date_tooltip')) }, mutationToDom: function() { - var container = document.createElement('mutation'); - var option = this.getFieldValue('OPTION'); + const container = document.createElement('mutation'); + const option = this.getFieldValue('OPTION'); + container.setAttribute('format', option === 'custom' ? 'true' : 'false'); container.setAttribute('language', option === 'wdt' || option === 'wdts' || option === 'Mt' || option === 'Mts' ? 'true' : 'false'); + return container; }, domToMutation: function(xmlElement) { - var format = xmlElement.getAttribute('format'); - var language = xmlElement.getAttribute('language'); + const format = xmlElement.getAttribute('format'); + const language = xmlElement.getAttribute('language'); this.updateShape_(format === true || format === 'true' || format === 'TRUE', language === true || language === 'true' || language === 'TRUE'); }, updateShape_: function(isFormat, isLanguage) { // Add or remove a delay Input. - var inputExists = this.getInput('FORMAT'); + let inputExists = this.getInput('FORMAT'); if (isFormat) { if (!inputExists) { @@ -220,7 +231,7 @@ Blockly.Blocks.convert_from_date = { if (isLanguage) { if (!inputExists) { - var languages; + let languages; if (systemLang === 'en') { languages = [['in english', 'en'], ['auf deutsch', 'de'], ['на русском', 'ru']]; } else if (systemLang === 'de') { @@ -238,14 +249,15 @@ Blockly.Blocks.convert_from_date = { } } }; + Blockly.JavaScript.convert_from_date = function (block) { - var option = block.getFieldValue('OPTION'); - var format = block.getFieldValue('FORMAT'); - var lang = block.getFieldValue('LANGUAGE'); + const option = block.getFieldValue('OPTION'); + const format = block.getFieldValue('FORMAT'); + const lang = block.getFieldValue('LANGUAGE'); - var value = Blockly.JavaScript.valueToCode(block, 'VALUE', Blockly.JavaScript.ORDER_ATOMIC); + const value = Blockly.JavaScript.valueToCode(block, 'VALUE', Blockly.JavaScript.ORDER_ATOMIC); - var code; + let code; if (option === 'object') { code = 'getDateObject(' + value + ').getTime()'; } else if (option === 'ms') { @@ -253,11 +265,11 @@ Blockly.JavaScript.convert_from_date = function (block) { } else if (option === 's') { code = 'getDateObject(' + value + ').getSeconds()'; } else if (option === 'sid') { - code = '(function () {const v = getDateObject(' + value + '); return v.getHours() * 3600 + v.getMinutes() * 60 + v.getSeconds();})()'; + code = '(function () { const v = getDateObject(' + value + '); return v.getHours() * 3600 + v.getMinutes() * 60 + v.getSeconds(); })()'; } else if (option === 'm') { code = '(getDateObject(' + value + ').getMinutes())'; } else if (option === 'mid') { - code = '(function () {const v = getDateObject(' + value + '); return v.getHours() * 60 + v.getMinutes();})()'; + code = '(function () { const v = getDateObject(' + value + '); return v.getHours() * 60 + v.getMinutes(); })()'; } else if (option === 'h') { code = 'getDateObject(' + value + ').getHours()'; } else if (option === 'd') { @@ -296,7 +308,6 @@ Blockly.Convert.blocks['convert_json2object'] = Blockly.Blocks.convert_json2object = { init: function () { - this.appendValueInput('VALUE') .appendField(Blockly.Translate('convert_json2object')); @@ -305,8 +316,9 @@ Blockly.Blocks.convert_json2object = { this.setTooltip(Blockly.Translate('convert_json2object_tooltip')) } }; + Blockly.JavaScript.convert_json2object = function (a) { - return ['(function () { try {return JSON.parse(' + Blockly.JavaScript.valueToCode(a, 'VALUE', Blockly.JavaScript.ORDER_ATOMIC) + ');} catch(e) {return {};}})()', Blockly.JavaScript.ORDER_ATOMIC]; + return ['(function () { try { return JSON.parse(' + Blockly.JavaScript.valueToCode(a, 'VALUE', Blockly.JavaScript.ORDER_ATOMIC) + '); } catch (e) { return {}; }})()', Blockly.JavaScript.ORDER_ATOMIC]; }; // --- object2json -------------------------------------------------- @@ -320,7 +332,6 @@ Blockly.Convert.blocks['convert_object2json'] = Blockly.Blocks.convert_object2json = { init: function () { - this.appendValueInput('VALUE') .appendField(Blockly.Translate('convert_object2json')); @@ -333,9 +344,12 @@ Blockly.Blocks.convert_object2json = { this.setTooltip(Blockly.Translate('convert_object2json_tooltip')) } }; + Blockly.JavaScript.convert_object2json = function (block) { - var prettify = block.getFieldValue('PRETTIFY'); + let prettify = block.getFieldValue('PRETTIFY'); + prettify = prettify === 'TRUE' || prettify === 'true' || prettify === true; + return ['JSON.stringify(' + Blockly.JavaScript.valueToCode(block, 'VALUE', Blockly.JavaScript.ORDER_ATOMIC) + (prettify ? ', null, 2' : '') + ')', Blockly.JavaScript.ORDER_ATOMIC]; }; @@ -366,6 +380,7 @@ Blockly.Blocks.convert_jsonata = { this.setTooltip(Blockly.Translate('convert_jsonata_tooltip')) } }; + Blockly.JavaScript.convert_jsonata = function (block) { return ['(await jsonataExpression(' + Blockly.JavaScript.valueToCode(block, 'TARGET', Blockly.JavaScript.ORDER_ATOMIC) + ',' + Blockly.JavaScript.valueToCode(block, 'EXPRESSION', Blockly.JavaScript.ORDER_ATOMIC) + '))', Blockly.JavaScript.ORDER_ATOMIC]; }; diff --git a/admin/google-blockly/own/blocks_logic.js b/admin/google-blockly/own/blocks_logic.js new file mode 100644 index 000000000..80ac325f5 --- /dev/null +++ b/admin/google-blockly/own/blocks_logic.js @@ -0,0 +1,64 @@ +'use strict'; + +if (typeof goog !== 'undefined') { + goog.require('Blockly.JavaScript'); +} + +// --- logic between -------------------------------------------------- + +Blockly.Blocks['logic_between'] = { + init: function() { + this.appendValueInput('MIN') + .setCheck('Number'); + this.appendValueInput('VALUE') + .setCheck('Number') + .appendField(new Blockly.FieldDropdown([['<', 'LT'], ['≤', 'LE']]), 'MIN_OPERATOR'); + this.appendValueInput('MAX') + .setCheck('Number') + .appendField(new Blockly.FieldDropdown([['<', 'LT'], ['≤', 'LE']]), 'MAX_OPERATOR'); + + this.setInputsInline(true); + this.setOutput(true, 'Boolean'); + this.setColour("%{BKY_LOGIC_HUE}"); + this.setTooltip(Blockly.Translate('logic_between_tooltip')); + this.setHelpUrl(Blockly.Translate('logic_between_helpurl')); + } +} + +Blockly.JavaScript['logic_between'] = function(block) { + const min = Blockly.JavaScript.valueToCode(block, 'MIN', Blockly.JavaScript.ORDER_RELATIONAL) || 0; + const value = Blockly.JavaScript.valueToCode(block, 'VALUE', Blockly.JavaScript.ORDER_RELATIONAL) || 0; + const max = Blockly.JavaScript.valueToCode(block, 'MAX', Blockly.JavaScript.ORDER_RELATIONAL) || 0; + const minOperator = block.getFieldValue('MIN_OPERATOR') === 'LT' ? '<' : '<='; + const maxOperator = block.getFieldValue('MAX_OPERATOR') === 'LT' ? '<' : '<='; + + return [`${min} ${minOperator} ${value} && ${value} ${maxOperator} ${max}`, Blockly.JavaScript.ORDER_LOGICAL_AND]; +} + +// --- logic ifempty -------------------------------------------------- + +Blockly.Blocks['logic_ifempty'] = { + init: function() { + this.appendValueInput('VALUE') + .setCheck(null) + .setAlign(Blockly.ALIGN_RIGHT) + .appendField(Blockly.Translate('logic_ifempty')); + this.appendValueInput('DEFLT') + .setCheck(null) + .setAlign(Blockly.ALIGN_RIGHT) + .appendField(Blockly.Translate('logic_ifempty_then')); + + this.setOutput(true, null); + this.setInputsInline(true); + this.setColour("%{BKY_LOGIC_HUE}"); + this.setTooltip(Blockly.Translate('logic_ifempty_tooltip')); + this.setHelpUrl(Blockly.Translate('logic_ifempty_helpurl')); + } +} + +Blockly.JavaScript['logic_ifempty'] = function(block) { + const value = Blockly.JavaScript.valueToCode(block, 'VALUE', Blockly.JavaScript.ORDER_LOGICAL_OR) || null; + const deflt = Blockly.JavaScript.valueToCode(block, 'DEFLT', Blockly.JavaScript.ORDER_LOGICAL_OR) || null; + + return [value + ' || ' + deflt, Blockly.JavaScript.ORDER_LOGICAL_OR]; +}; diff --git a/admin/google-blockly/own/blocks_number.js b/admin/google-blockly/own/blocks_number.js new file mode 100644 index 000000000..b3e1815b5 --- /dev/null +++ b/admin/google-blockly/own/blocks_number.js @@ -0,0 +1,25 @@ +'use strict'; + +// --- Round Number to n decimal places ------------------------------- + +Blockly.Blocks['math_rndfixed'] = { + init: function() { + this.appendValueInput('x') + .setCheck('Number') + .appendField(Blockly.Translate('math_rndfixed_round')); + this.appendDummyInput() + .appendField(Blockly.Translate('math_rndfixed_to')) + .appendField(new Blockly.FieldNumber(0, 1, 25), 'n') + .appendField(Blockly.Translate('math_rndfixed_decplcs')); + this.setInputsInline(true); + this.setColour(Blockly.Msg['MATH_HUE']); + this.setOutput(true, 'Number'); + this.setTooltip(Blockly.Translate('math_rndfixed_tooltip')); + } +}; + +Blockly.JavaScript['math_rndfixed'] = function(block) { + var x = Blockly.JavaScript.valueToCode(block, 'x', Blockly.JavaScript.ORDER_ATOMIC); + var exp = Math.pow(10, block.getFieldValue('n')); + return ['Math.round(' + x + ' * ' + exp + ') / ' + exp, Blockly.JavaScript.ORDER_ATOMIC]; +}; diff --git a/admin/google-blockly/own/blocks_sendto.js b/admin/google-blockly/own/blocks_sendto.js index 3d61330c1..fd6102f11 100644 --- a/admin/google-blockly/own/blocks_sendto.js +++ b/admin/google-blockly/own/blocks_sendto.js @@ -111,7 +111,7 @@ Blockly.Blocks['sendto_custom'] = { this.appendDummyInput('WITH_STATEMENT') .appendField(Blockly.Translate('request_statement')) .appendField(new Blockly.FieldCheckbox('FALSE', function (option) { - var withStatement = option === true || option === 'true' || option === 'TRUE'; + const withStatement = option === true || option === 'true' || option === 'TRUE'; this.sourceBlock_.updateShape_(this.sourceBlock_.getArgNames_(), withStatement); }), 'WITH_STATEMENT'); diff --git a/admin/google-blockly/own/blocks_switch.js b/admin/google-blockly/own/blocks_switch.js index ab21eaa9e..fc155cbed 100644 --- a/admin/google-blockly/own/blocks_switch.js +++ b/admin/google-blockly/own/blocks_switch.js @@ -2,20 +2,9 @@ // I really tried to get the license conditions from authors, but no luck :( // Many thanks to Florian Pechwitz for the code -Blockly.System.blocks['logic_switch_case'] = - '' - + ' ' - + ' ' - + ' ' - + ' ' - + ' ' - + ' ' - + ' ' - + ''; - Blockly.Blocks['logic_switch_case'] = { init: function() { - this.setColour(Blockly.Constants.Logic.HUE); + this.setColour("%{BKY_LOGIC_HUE}"); this.setPreviousStatement(true); this.setNextStatement(true); this.appendValueInput('CONDITION') @@ -167,7 +156,7 @@ Blockly.Blocks['logic_switch_case'] = { Blockly.Blocks['control_case'] = { init: function() { - this.setColour(180); + this.setColour("%{BKY_LOGIC_HUE}"); this.appendDummyInput() .appendField(Blockly.Translate('logic_switch_case_is')); this.appendStatementInput('STACK'); @@ -178,7 +167,7 @@ Blockly.Blocks['control_case'] = { Blockly.Blocks['case_incaseof'] = { init: function() { - this.setColour(180); + this.setColour("%{BKY_LOGIC_HUE}"); this.appendDummyInput() .appendField(Blockly.Translate('logic_switch_case_of')); this.setPreviousStatement(true); @@ -190,7 +179,7 @@ Blockly.Blocks['case_incaseof'] = { Blockly.Blocks['case_default'] = { init: function() { - this.setColour(180); + this.setColour("%{BKY_LOGIC_HUE}"); this.appendDummyInput() .appendField('default'); this.setPreviousStatement(true); diff --git a/admin/google-blockly/own/blocks_system.js b/admin/google-blockly/own/blocks_system.js index 645da450b..053f39db9 100644 --- a/admin/google-blockly/own/blocks_system.js +++ b/admin/google-blockly/own/blocks_system.js @@ -9,10 +9,6 @@ if (typeof goog !== 'undefined') { Blockly.CustomBlocks = Blockly.CustomBlocks || []; Blockly.CustomBlocks.push('System'); -function getHelp(word) { - return 'https://github.com/ioBroker/ioBroker.javascript/blob/master/docs/en/javascript.md#' + Blockly.Words[word][systemLang]; -} - Blockly.System = { HUE: 210, blocks: {} @@ -47,9 +43,10 @@ Blockly.Blocks['debug'] = { }; Blockly.JavaScript['debug'] = function(block) { - var value_text = Blockly.JavaScript.valueToCode(block, 'TEXT', Blockly.JavaScript.ORDER_ATOMIC); - var dropdown_severity = block.getFieldValue('Severity'); - return 'console.' + dropdown_severity + '(' + value_text + ');\n'; + const value_text = Blockly.JavaScript.valueToCode(block, 'TEXT', Blockly.JavaScript.ORDER_ATOMIC); + const dropdown_severity = block.getFieldValue('Severity'); + + return `console.${dropdown_severity}(${value_text});\n`; }; // --- comment -------------------------------------------------- @@ -73,8 +70,9 @@ Blockly.Blocks['comment'] = { }; Blockly.JavaScript['comment'] = function(block) { - var comment = block.getFieldValue('COMMENT'); - return '// ' + comment + '\n'; + const comment = block.getFieldValue('COMMENT'); + + return `// ${comment}\n`; }; // --- control ----------------------------------------------------------- @@ -113,7 +111,6 @@ Blockly.Blocks['control'] = { this.sourceBlock_.updateShape_(option === true || option === 'true' || option === 'TRUE'); }), 'WITH_DELAY'); - this.setInputsInline(true); this.setPreviousStatement(true, null); this.setNextStatement(true, null); @@ -122,18 +119,20 @@ Blockly.Blocks['control'] = { this.setHelpUrl(getHelp('control_help')); }, mutationToDom: function() { - var container = document.createElement('mutation'); - var option = this.getFieldValue('WITH_DELAY'); + const container = document.createElement('mutation'); + const option = this.getFieldValue('WITH_DELAY'); + container.setAttribute('delay_input', option === true || option === 'true' || option === 'TRUE'); + return container; }, domToMutation: function(xmlElement) { - var option = xmlElement.getAttribute('delay_input'); + const option = xmlElement.getAttribute('delay_input'); this.updateShape_(option === true || option === 'true' || option === 'TRUE'); }, updateShape_: function(delayInput) { // Add or remove a delay Input. - var inputExists = this.getInput('DELAY'); + let inputExists = this.getInput('DELAY'); if (delayInput) { if (!inputExists) { @@ -145,7 +144,6 @@ Blockly.Blocks['control'] = { [Blockly.Translate('control_sec'), 'sec'], [Blockly.Translate('control_min'), 'min'] ]), 'UNIT'); - //.appendField(Blockly.Translate('control_ms')); } } else if (inputExists) { this.removeInput('DELAY'); @@ -166,29 +164,30 @@ Blockly.Blocks['control'] = { }; Blockly.JavaScript['control'] = function(block) { - var valueObjectID = block.getFieldValue('OID'); + const valueObjectID = block.getFieldValue('OID'); Blockly.Msg.VARIABLES_DEFAULT_NAME = 'value'; - var valueDelay = parseInt(block.getFieldValue('DELAY_MS'), 10); - var unit = block.getFieldValue('UNIT'); + let valueDelay = parseInt(block.getFieldValue('DELAY_MS'), 10); + const unit = block.getFieldValue('UNIT'); if (unit === 'min') { valueDelay *= 60000; } else if (unit === 'sec') { valueDelay *= 1000; } - var clearRunning = block.getFieldValue('CLEAR_RUNNING'); - var valueValue = Blockly.JavaScript.valueToCode(block, 'VALUE', Blockly.JavaScript.ORDER_ATOMIC); - var objectName = main.objects[valueObjectID] && main.objects[valueObjectID].common && main.objects[valueObjectID].common.name ? main.objects[valueObjectID].common.name : ''; - var code; + let clearRunning = block.getFieldValue('CLEAR_RUNNING'); clearRunning = clearRunning === 'TRUE' || clearRunning === 'true' || clearRunning === true; - var withDelay = this.getFieldValue('WITH_DELAY'); + const valueValue = Blockly.JavaScript.valueToCode(block, 'VALUE', Blockly.JavaScript.ORDER_ATOMIC); + const objectName = main.objects[valueObjectID] && main.objects[valueObjectID].common && main.objects[valueObjectID].common.name ? main.objects[valueObjectID].common.name : ''; + const withDelay = this.getFieldValue('WITH_DELAY'); + + let code; if (withDelay === 'true' || withDelay === true || withDelay === 'TRUE') { - code = 'setStateDelayed("' + valueObjectID + '"' + (objectName ? '/*' + objectName + '*/' : '') + ', ' + valueValue + ', ' + valueDelay + ', ' + clearRunning + ');\n'; + code = `setStateDelayed('${valueObjectID}'${objectName ? ` /* ${objectName} */` : ''}, ${valueValue}, ${valueDelay}, ${clearRunning});\n`; } else { - code = 'setState("' + valueObjectID + '"' + (objectName ? '/*' + objectName + '*/' : '') + ', ' + valueValue + ');\n'; + code = `setState('${valueObjectID}'${objectName ? ` /* ${objectName} */` : ''}, ${valueValue});\n`; } return code; @@ -232,18 +231,20 @@ Blockly.Blocks['toggle'] = { this.setHelpUrl(getHelp('toggle_help')); }, mutationToDom: function() { - var container = document.createElement('mutation'); - var option = this.getFieldValue('WITH_DELAY'); + const container = document.createElement('mutation'); + const option = this.getFieldValue('WITH_DELAY'); + container.setAttribute('delay_input', option === true || option === 'true' || option === 'TRUE'); + return container; }, domToMutation: function(xmlElement) { - var option = xmlElement.getAttribute('delay_input'); + const option = xmlElement.getAttribute('delay_input'); this.updateShape_(option === true || option === 'true' || option === 'TRUE'); }, updateShape_: function(delayInput) { // Add or remove a delay Input. - var inputExists = this.getInput('DELAY'); + let inputExists = this.getInput('DELAY'); if (delayInput) { if (!inputExists) { @@ -276,49 +277,51 @@ Blockly.Blocks['toggle'] = { }; Blockly.JavaScript['toggle'] = function(block) { - var valueObjectID = block.getFieldValue('OID'); + const valueObjectID = block.getFieldValue('OID'); + const unit = block.getFieldValue('UNIT'); Blockly.Msg.VARIABLES_DEFAULT_NAME = 'value'; - var valueDelay = parseInt(block.getFieldValue('DELAY_MS'), 10); - var unit = block.getFieldValue('UNIT'); + let valueDelay = parseInt(block.getFieldValue('DELAY_MS'), 10); if (unit === 'min') { valueDelay *= 60000; } else if (unit === 'sec') { valueDelay *= 1000; } - var clearRunning = block.getFieldValue('CLEAR_RUNNING'); - var objectName = main.objects[valueObjectID] && main.objects[valueObjectID].common && main.objects[valueObjectID].common.name ? main.objects[valueObjectID].common.name : ''; - var objectType = main.objects[valueObjectID] && main.objects[valueObjectID].common && main.objects[valueObjectID].common.type ? main.objects[valueObjectID].common.type : 'boolean'; - var code; - var setCommand; + const objectName = main.objects[valueObjectID] && main.objects[valueObjectID].common && main.objects[valueObjectID].common.name ? main.objects[valueObjectID].common.name : ''; + const objectType = main.objects[valueObjectID] && main.objects[valueObjectID].common && main.objects[valueObjectID].common.type ? main.objects[valueObjectID].common.type : 'boolean'; + + let clearRunning = block.getFieldValue('CLEAR_RUNNING'); clearRunning = clearRunning === 'TRUE' || clearRunning === 'true' || clearRunning === true; + let setCommand; if (objectType === 'number') { - var max = 100; - var min = 0; + let max = 100; + let min = 0; + if (main.objects[valueObjectID].common.max !== undefined) { max = parseFloat(main.objects[valueObjectID].common.max); } if (main.objects[valueObjectID].common.min !== undefined) { min = parseFloat(main.objects[valueObjectID].common.min); } - setCommand = ' setState("' + valueObjectID + '"' + (objectName ? '/*' + objectName + '*/' : '') + ', state ? (state.val == ' + min + ' ? ' + max + ' : ' + min + ') : ' + max + ');\n'; + + setCommand = `setState('${valueObjectID}'${objectName ? ` /* ${objectName} */` : ''}, state ? (state.val === ${min} ? ${max} : ${min}) : ${max});`; } else { - setCommand = ' setState("' + valueObjectID + '"' + (objectName ? '/*' + objectName + '*/' : '') + ', state ? !state.val : true);\n'; + setCommand = `setState('${valueObjectID}'${objectName ? ` /* ${objectName} */` : ''}, state ? !state.val : true);`; } - var withDelay = block.getFieldValue('WITH_DELAY'); + const withDelay = block.getFieldValue('WITH_DELAY'); + + let code; if (withDelay === 'TRUE' || withDelay === 'true' || withDelay === true) { - code = - 'getState("' + valueObjectID + '", function (err, state) {\n' + - ' setStateDelayed("' + valueObjectID + '"' + (objectName ? '/*' + objectName + '*/' : '') + ', state ? !state.val : true, ' + valueDelay + ', ' + clearRunning + ');\n' + + code = `getState('${valueObjectID}', (err, state) => {\n` + + Blockly.JavaScript.prefixLines(`setStateDelayed('${valueObjectID}'${objectName ? ` /* ${objectName} */` : ''}, state ? !state.val : true, ${valueDelay}, ${clearRunning});`, Blockly.JavaScript.INDENT) + '\n' + '});\n'; } else { - code = - 'getState("' + valueObjectID + '", function (err, state) {\n' + - setCommand + + code = `getState('${valueObjectID}', (err, state) => {\n` + + Blockly.JavaScript.prefixLines(setCommand, Blockly.JavaScript.INDENT) + '\n' + '});\n'; } @@ -351,7 +354,6 @@ Blockly.Blocks['update'] = { this.appendDummyInput('OID') .appendField(new Blockly.FieldOID('Object ID'), 'OID'); - this.appendValueInput('VALUE') .setCheck(null) .appendField(Blockly.Translate('update_with')); @@ -370,18 +372,20 @@ Blockly.Blocks['update'] = { this.setHelpUrl(getHelp('update_help')); }, mutationToDom: function() { - var container = document.createElement('mutation'); - var option = this.getFieldValue('WITH_DELAY'); + const container = document.createElement('mutation'); + const option = this.getFieldValue('WITH_DELAY'); + container.setAttribute('delay_input', option === true || option === 'true' || option === 'TRUE'); + return container; }, domToMutation: function(xmlElement) { - var option = xmlElement.getAttribute('delay_input'); + const option = xmlElement.getAttribute('delay_input'); this.updateShape_(option === true || option === 'true' || option === 'TRUE'); }, updateShape_: function(delayInput) { // Add or remove a delay Input. - var inputExists = this.getInput('DELAY'); + let inputExists = this.getInput('DELAY'); if (delayInput) { if (!inputExists) { @@ -414,30 +418,31 @@ Blockly.Blocks['update'] = { }; Blockly.JavaScript['update'] = function(block) { - var value_objectid = block.getFieldValue('OID'); + const value_objectid = block.getFieldValue('OID'); Blockly.Msg.VARIABLES_DEFAULT_NAME = 'value'; - var value_value = Blockly.JavaScript.valueToCode(block, 'VALUE', Blockly.JavaScript.ORDER_ATOMIC); - var value_delay = parseInt(block.getFieldValue('DELAY_MS'), 10); - var clearRunning = block.getFieldValue('CLEAR_RUNNING'); - var unit = block.getFieldValue('UNIT'); + const value_value = Blockly.JavaScript.valueToCode(block, 'VALUE', Blockly.JavaScript.ORDER_ATOMIC); + const unit = block.getFieldValue('UNIT'); + + let value_delay = parseInt(block.getFieldValue('DELAY_MS'), 10); if (unit === 'min') { value_delay *= 60000; } else if (unit === 'sec') { value_delay *= 1000; } + let clearRunning = block.getFieldValue('CLEAR_RUNNING'); clearRunning = clearRunning === 'TRUE' || clearRunning === 'true' || clearRunning === true; - var objectname = main.objects[value_objectid] && main.objects[value_objectid].common && main.objects[value_objectid].common.name ? main.objects[value_objectid].common.name : ''; - var code; - var withDelay = this.getFieldValue('WITH_DELAY'); + const objectName = main.objects[value_objectid] && main.objects[value_objectid].common && main.objects[value_objectid].common.name ? main.objects[value_objectid].common.name : ''; + const withDelay = this.getFieldValue('WITH_DELAY'); + let code; if (withDelay === true || withDelay === 'true' || withDelay === 'TRUE') { - code = 'setStateDelayed("' + value_objectid + '"' + (objectname ? '/*' + objectname + '*/' : '') + ', ' + value_value + ', true, ' + value_delay + ', ' + clearRunning + ');\n'; + code = `setStateDelayed('${value_objectid}'${objectName ? ` /* ${objectName} */` : ''}, ${value_value}, true, ${value_delay}, ${clearRunning});\n`; } else { - code = 'setState("' + value_objectid + '"' + (objectname ? '/*' + objectname + '*/' : '') + ', ' + value_value + ', true);\n'; + code = `setState('${value_objectid}'${objectName ? ` /* ${objectName} */` : ''}, ${value_value}, true);\n`; } return code; @@ -479,18 +484,22 @@ Blockly.Blocks['direct'] = { this.setPreviousStatement(true, null); this.setNextStatement(true, null); - this.setColour(Blockly.System.HUE); + this.setColour(Blockly.Trigger.HUE); this.setTooltip(Blockly.Translate('direct_tooltip')); this.setHelpUrl(getHelp('direct_help')); } }; Blockly.JavaScript['direct'] = function(block) { - var oidSrc = Blockly.JavaScript.valueToCode(block, 'OID_SRC', Blockly.JavaScript.ORDER_ATOMIC); - var onlyChanges = block.getFieldValue('ONLY_CHANGES'); - var oidDest = Blockly.JavaScript.valueToCode(block, 'OID_DST', Blockly.JavaScript.ORDER_ATOMIC); + const oidSrc = Blockly.JavaScript.valueToCode(block, 'OID_SRC', Blockly.JavaScript.ORDER_ATOMIC); + const oidDest = Blockly.JavaScript.valueToCode(block, 'OID_DST', Blockly.JavaScript.ORDER_ATOMIC); + + let onlyChanges = block.getFieldValue('ONLY_CHANGES'); onlyChanges = onlyChanges === true || onlyChanges === 'true' || onlyChanges === 'TRUE'; - return 'on({id: ' + oidSrc + ', change: "' + (onlyChanges ? 'ne' : 'any') + '"}, function (obj) {\n setState(' + oidDest + ', obj.state.val);\n});'; + + return `on({ id: ${oidSrc}, change: '${onlyChanges ? 'ne' : 'any'}' }, (obj) => {\n` + + Blockly.JavaScript.prefixLines(`setState(${oidDest}, obj.state.val);`, Blockly.JavaScript.INDENT) + '\n' + + '});\n'; }; // --- control ex ----------------------------------------------------------- @@ -554,14 +563,17 @@ Blockly.Blocks['control_ex'] = { }; Blockly.JavaScript['control_ex'] = function(block) { - var valueObjectID = Blockly.JavaScript.valueToCode(block, 'OID', Blockly.JavaScript.ORDER_ATOMIC); - var value = Blockly.JavaScript.valueToCode(block, 'VALUE', Blockly.JavaScript.ORDER_ATOMIC); - var valueDelay = Blockly.JavaScript.valueToCode(block, 'DELAY_MS', Blockly.JavaScript.ORDER_ATOMIC); - var clearRunning = block.getFieldValue('CLEAR_RUNNING'); - var type = block.getFieldValue('TYPE'); - type = type === true || type === 'true' || type === 'TRUE'; + const valueObjectID = Blockly.JavaScript.valueToCode(block, 'OID', Blockly.JavaScript.ORDER_ATOMIC); + const value = Blockly.JavaScript.valueToCode(block, 'VALUE', Blockly.JavaScript.ORDER_ATOMIC); + const valueDelay = Blockly.JavaScript.valueToCode(block, 'DELAY_MS', Blockly.JavaScript.ORDER_ATOMIC); + + let clearRunning = block.getFieldValue('CLEAR_RUNNING'); clearRunning = clearRunning === true || clearRunning === 'true' || clearRunning === 'TRUE'; - return 'setStateDelayed(' + valueObjectID + ', ' + value + ', ' + type + ', parseInt(((' + valueDelay + ') || "").toString(), 10), ' + clearRunning + ');\n'; + + let type = block.getFieldValue('TYPE'); + type = type === true || type === 'true' || type === 'TRUE'; + + return `setStateDelayed(${valueObjectID}, ${value}, ${type}, parseInt(((${valueDelay}) || '').toString(), 10), ${clearRunning});\n`; }; // --- create state -------------------------------------------------- @@ -608,31 +620,119 @@ Blockly.Blocks['create'] = { }; Blockly.JavaScript['create'] = function(block) { - var name = block.getFieldValue('NAME'); - var value = Blockly.JavaScript.valueToCode(block, 'VALUE', Blockly.JavaScript.ORDER_ATOMIC); - var common = Blockly.JavaScript.valueToCode(block, 'COMMON', Blockly.JavaScript.ORDER_ATOMIC); - var statement = Blockly.JavaScript.statementToCode(block, 'STATEMENT'); + const name = block.getFieldValue('NAME'); + const value = Blockly.JavaScript.valueToCode(block, 'VALUE', Blockly.JavaScript.ORDER_ATOMIC); + const common = Blockly.JavaScript.valueToCode(block, 'COMMON', Blockly.JavaScript.ORDER_ATOMIC); + const statement = Blockly.JavaScript.statementToCode(block, 'STATEMENT'); - var paraV = ''; - var paraC = ''; + let paraV = ''; + let paraC = ''; if (value !== null && value !== '') { - if (isNaN(value)) { - paraV = ', ' + value; - } else { - paraV = ', ' + value; - } + paraV = ', ' + value; } if (common !== null && common !== '') { if (typeof common === 'object') { - paraC = ', JSON.parse(' + JSON.stringify(common) + ')'; + paraC = `, JSON.parse(${JSON.stringify(common)})`; } else { - paraC = ', JSON.parse(' + common + ')'; + paraC = `, JSON.parse(${common})`; } } - return 'createState("' + name + '"' + paraV + paraC + ', async function () {\n' + statement + '});\n'; + return `createState('${name}'${paraV}${paraC}, async () => {\n` + + statement + + '});\n'; +}; + +// --- create state ex -------------------------------------------------- +Blockly.System.blocks['create_ex'] = + '' + + ' ' + + ' ' + + ' ' + + ' ' + + ' ' + + ' ' + + ' ' + + ' ' + + ' ' + + ' ' + + ' ' + + ' ' + + ''; + +Blockly.Blocks['create_ex'] = { + init: function() { + this.appendDummyInput() + .appendField(Blockly.Translate('create')); + + this.appendDummyInput('NAME') + .appendField(Blockly.Translate('create_oid')) + .appendField(new Blockly.FieldTextInput(Blockly.Translate('create_jsState')), 'NAME'); + + this.appendDummyInput('TYPE') + .appendField(Blockly.Translate('create_type')) + .appendField(new Blockly.FieldDropdown([ + [Blockly.Translate('create_type_string'), 'string'], + [Blockly.Translate('create_type_number'), 'number'], + [Blockly.Translate('create_type_boolean'), 'boolean'], + [Blockly.Translate('create_type_json'), 'json'], + //[Blockly.Translate('create_type_object'), 'object'], + //[Blockly.Translate('create_type_array'), 'array'], + //[Blockly.Translate('create_type_file'), 'file'], + ]), 'TYPE'); + + this.appendValueInput('VALUE') + .setCheck(null) + .appendField(Blockly.Translate('create_init')); + + this.appendDummyInput('READABLE_INPUT') + .appendField(Blockly.Translate('create_readable')) + .appendField(new Blockly.FieldCheckbox('FALSE'), 'READABLE'); + + this.appendDummyInput('WRITEABLE_INPUT') + .appendField(Blockly.Translate('create_writeable')) + .appendField(new Blockly.FieldCheckbox('FALSE'), 'WRITEABLE'); + + this.appendStatementInput('STATEMENT') + .setCheck(null); + + this.setPreviousStatement(true, null); + this.setNextStatement(true, null); + + this.setInputsInline(false); + this.setColour(Blockly.System.HUE); + this.setTooltip(Blockly.Translate('create_tooltip')); + this.setHelpUrl(getHelp('create_help')); + } +}; + +Blockly.JavaScript['create_ex'] = function(block) { + const name = block.getFieldValue('NAME'); + const type = block.getFieldValue('TYPE'); + const value = Blockly.JavaScript.valueToCode(block, 'VALUE', Blockly.JavaScript.ORDER_ATOMIC); + const statement = Blockly.JavaScript.statementToCode(block, 'STATEMENT'); + + let paraV = ''; + + if (value !== null && value !== '') { + if (type === 'number') { + paraV = `, parseFloat(${value})`; + } else { + paraV = ', ' + value; + } + } + + let readable = block.getFieldValue('READABLE'); + readable = readable === 'TRUE' || readable === 'true' || readable === true; + + let writeable = block.getFieldValue('WRITEABLE'); + writeable = writeable === 'TRUE' || writeable === 'true' || writeable === true; + + return `createState('${name}'${paraV}, { type: "${type}", read: ${readable}, write: ${writeable} }, async () => {\n` + + statement + + '});\n'; }; // --- get value -------------------------------------------------- @@ -683,12 +783,13 @@ Blockly.Blocks['get_value'] = { }; Blockly.JavaScript['get_value'] = function(block) { - var oid = block.getFieldValue('OID'); - var attr = block.getFieldValue('ATTR'); - if (attr === 'type' || attr.indexOf('.') !== -1) { - return ['(await getObjectAsync("' + oid + '")).' + attr, Blockly.JavaScript.ORDER_ATOMIC]; + const oid = block.getFieldValue('OID'); + const attr = block.getFieldValue('ATTR'); + + if (attr === 'type' || attr.startsWith('common.')) { + return [`(await getObjectAsync('${oid}')).${attr}`, Blockly.JavaScript.ORDER_ATOMIC]; } else { - return ['getState("' + oid + '").' + attr, Blockly.JavaScript.ORDER_ATOMIC]; + return [`getState('${oid}').${attr}`, Blockly.JavaScript.ORDER_ATOMIC]; } }; @@ -705,15 +806,14 @@ Blockly.System.blocks['get_value_var'] = + ''; Blockly.Blocks['get_value_var'] = { - // Checkbox. init: function() { this.appendDummyInput('ATTR') .appendField(new Blockly.FieldDropdown([ - [Blockly.Translate('get_value_val'), 'val'], - [Blockly.Translate('get_value_ack'), 'ack'], - [Blockly.Translate('get_value_ts'), 'ts'], - [Blockly.Translate('get_value_lc'), 'lc'], + [Blockly.Translate('get_value_val'), 'val'], + [Blockly.Translate('get_value_ack'), 'ack'], + [Blockly.Translate('get_value_ts'), 'ts'], + [Blockly.Translate('get_value_lc'), 'lc'], [Blockly.Translate('get_value_q') , 'q'], [Blockly.Translate('get_value_comment') , 'c'], [Blockly.Translate('get_value_from'), 'from'], @@ -743,12 +843,13 @@ Blockly.Blocks['get_value_var'] = { }; Blockly.JavaScript['get_value_var'] = function(block) { - var oid = Blockly.JavaScript.valueToCode(block, 'OID', Blockly.JavaScript.ORDER_ATOMIC); - var attr = block.getFieldValue('ATTR'); - if (attr === 'type' || attr.indexOf('.') !== -1) { - return ['(await getObjectAsync("' + oid + '")).' + attr, Blockly.JavaScript.ORDER_ATOMIC]; + const oid = Blockly.JavaScript.valueToCode(block, 'OID', Blockly.JavaScript.ORDER_ATOMIC); + const attr = block.getFieldValue('ATTR'); + + if (attr === 'type' || attr.startsWith('common.')) { + return [`(await getObjectAsync(${oid})).${attr}`, Blockly.JavaScript.ORDER_ATOMIC]; } else { - return ['getState(' + oid + ').' + attr, Blockly.JavaScript.ORDER_ATOMIC]; + return [`getState(${oid}).${attr}`, Blockly.JavaScript.ORDER_ATOMIC]; } }; @@ -764,7 +865,6 @@ Blockly.System.blocks['get_value_async'] = + ''; Blockly.Blocks['get_value_async'] = { - // Checkbox. init: function() { this.appendDummyInput('ATTR') @@ -807,13 +907,20 @@ Blockly.Blocks['get_value_async'] = { }; Blockly.JavaScript['get_value_async'] = function(block) { - var oid = block.getFieldValue('OID'); - var attr = block.getFieldValue('ATTR'); - var statement = Blockly.JavaScript.statementToCode(block, 'STATEMENT'); - if (attr === 'type' || attr.indexOf('.') !== -1) { - return 'getObjectAsync("' + oid + '", async function (err, obj) {\n let value = obj.' + attr + ';\n' + statement + '});\n'; + const oid = block.getFieldValue('OID'); + const attr = block.getFieldValue('ATTR'); + const statement = Blockly.JavaScript.statementToCode(block, 'STATEMENT'); + + if (attr === 'type' || attr.startsWith('common.')) { + return `getObjectAsync('${oid}', async (err, obj) => {\n` + + Blockly.JavaScript.prefixLines('let value = obj.' + attr + ';', Blockly.JavaScript.INDENT) + '\n' + + statement + '\n' + + '});\n'; } else { - return 'getState("' + oid + '", async function (err, state) {\n let value = state.' + attr + ';\n' + statement + '});\n'; + return 'getState("' + oid + '", async (err, state) => {\n' + + Blockly.JavaScript.prefixLines('let value = state.' + attr + ';', Blockly.JavaScript.INDENT) + '\n' + + statement + '\n' + + '});\n'; } }; @@ -840,8 +947,9 @@ Blockly.Blocks['field_oid'] = { }; Blockly.JavaScript['field_oid'] = function(block) { - var oid = block.getFieldValue('oid'); - return ['\'' + oid + '\'', Blockly.JavaScript.ORDER_ATOMIC]; + const oid = block.getFieldValue('oid'); + + return [`'${oid}'`, Blockly.JavaScript.ORDER_ATOMIC]; }; // --- select OID meta-------------------------------------------------- @@ -854,7 +962,7 @@ Blockly.System.blocks['field_oid_meta'] = Blockly.Blocks['field_oid_meta'] = { init: function() { this.appendDummyInput() - .appendField(Blockly.Translate('field_oid_OID')); + .appendField(Blockly.Translate('field_oid_OID_meta')); this.appendDummyInput() .appendField(new Blockly.FieldOID('default', 'meta'), 'oid'); @@ -867,8 +975,9 @@ Blockly.Blocks['field_oid_meta'] = { }; Blockly.JavaScript['field_oid_meta'] = function(block) { - var oid = block.getFieldValue('oid'); - return ['\'' + oid + '\'', Blockly.JavaScript.ORDER_ATOMIC]; + const oid = block.getFieldValue('oid'); + + return [`'${oid}'`, Blockly.JavaScript.ORDER_ATOMIC]; }; // --- select OID script-------------------------------------------------- @@ -881,7 +990,7 @@ Blockly.System.blocks['field_oid_script'] = Blockly.Blocks['field_oid_script'] = { init: function() { this.appendDummyInput() - .appendField(Blockly.Translate('field_oid_OID')); + .appendField(Blockly.Translate('field_oid_OID_script')); this.appendDummyInput() .appendField(new Blockly.FieldOID('default', 'script'), 'oid'); @@ -894,8 +1003,9 @@ Blockly.Blocks['field_oid_script'] = { }; Blockly.JavaScript['field_oid_script'] = function(block) { - var oid = block.getFieldValue('oid'); - return ['\'' + oid + '\'', Blockly.JavaScript.ORDER_ATOMIC]; + const oid = block.getFieldValue('oid'); + + return [`'${oid}'`, Blockly.JavaScript.ORDER_ATOMIC]; }; // --- get attribute -------------------------------------------------- @@ -912,13 +1022,10 @@ Blockly.System.blocks['get_attr'] = Blockly.Blocks['get_attr'] = { init: function() { - this.appendValueInput('PATH') .setCheck(null) .appendField(Blockly.Translate('get_attr_path')); -// this.appendDummyInput() - this.appendValueInput('OBJECT') .appendField(Blockly.Translate('get_attr_by')); @@ -931,8 +1038,9 @@ Blockly.Blocks['get_attr'] = { }; Blockly.JavaScript['get_attr'] = function(block) { - var path = Blockly.JavaScript.valueToCode(block, 'PATH', Blockly.JavaScript.ORDER_ATOMIC); - var obj = Blockly.JavaScript.valueToCode(block, 'OBJECT', Blockly.JavaScript.ORDER_ATOMIC); + const path = Blockly.JavaScript.valueToCode(block, 'PATH', Blockly.JavaScript.ORDER_ATOMIC); + const obj = Blockly.JavaScript.valueToCode(block, 'OBJECT', Blockly.JavaScript.ORDER_ATOMIC); + return ['getAttr(' + obj + ', ' + path + ')', Blockly.JavaScript.ORDER_ATOMIC]; }; @@ -944,9 +1052,7 @@ Blockly.System.blocks['regex'] = + ''; Blockly.Blocks['regex'] = { - // Checkbox. init: function() { - this.appendDummyInput() .appendField('RegExp'); @@ -961,8 +1067,9 @@ Blockly.Blocks['regex'] = { }; Blockly.JavaScript['regex'] = function(block) { - var oid = block.getFieldValue('TEXT'); - return ['new RegExp("' + oid + '")', Blockly.JavaScript.ORDER_ATOMIC] + const oid = block.getFieldValue('TEXT'); + + return [`new RegExp('${oid}')`, Blockly.JavaScript.ORDER_ATOMIC]; }; // --- selector -------------------------------------------------- @@ -973,7 +1080,6 @@ Blockly.System.blocks['selector'] = + ''; Blockly.Blocks['selector'] = { - // Checkbox. init: function() { this.appendDummyInput() @@ -993,50 +1099,7 @@ Blockly.Blocks['selector'] = { }; Blockly.JavaScript['selector'] = function(block) { - var oid = block.getFieldValue('TEXT'); - return ['Array.prototype.slice.apply($("' + oid + '"))', Blockly.JavaScript.ORDER_ATOMIC] -}; - -// --- Text new line -------------------------------------------------- -Blockly.Blocks['text_newline'] = { - // Checkbox. - init: function() { - this.appendDummyInput() - .appendField(Blockly.Translate('text_newline')); - - this.appendDummyInput() - .appendField(new Blockly.FieldDropdown([['\\n', '\\n'], ['\\r\\n', '\\r\\n'], ['\\r', '\\r']]), 'Type'); - this.setInputsInline(true); - this.setColour(Blockly.Msg['TEXTS_HUE']); - this.setOutput(true, 'String'); - this.setTooltip(Blockly.Translate('text_newline_tooltip')); - } -}; - -Blockly.JavaScript['text_newline'] = function(block) { - var dropdown_type = block.getFieldValue('Type'); - return ['\'' + dropdown_type + '\'', Blockly.JavaScript.ORDER_ATOMIC] -}; - -// --- Round Number to n decimal places ------------------------------- -Blockly.Blocks['math_rndfixed'] = { - init: function() { - this.appendValueInput('x') - .setCheck('Number') - .appendField(Blockly.Translate('math_rndfixed_round')); - this.appendDummyInput() - .appendField(Blockly.Translate('math_rndfixed_to')) - .appendField(new Blockly.FieldNumber(0, 1, 25), 'n') - .appendField(Blockly.Translate('math_rndfixed_decplcs')); - this.setInputsInline(true); - this.setColour(Blockly.Msg['MATH_HUE']); - this.setOutput(true, 'Number'); - this.setTooltip(Blockly.Translate('math_rndfixed_tooltip')); - } -}; + const oid = block.getFieldValue('TEXT'); -Blockly.JavaScript['math_rndfixed'] = function(block) { - var x = Blockly.JavaScript.valueToCode(block, 'x', Blockly.JavaScript.ORDER_ATOMIC); - var exp = Math.pow(10, block.getFieldValue('n')); - return ['Math.round(' + x + '*' + exp + ')/' + exp, Blockly.JavaScript.ORDER_ATOMIC]; + return [`Array.prototype.slice.apply($('${oid}'))`, Blockly.JavaScript.ORDER_ATOMIC]; }; diff --git a/admin/google-blockly/own/blocks_text.js b/admin/google-blockly/own/blocks_text.js new file mode 100644 index 000000000..b754923e7 --- /dev/null +++ b/admin/google-blockly/own/blocks_text.js @@ -0,0 +1,23 @@ +'use strict'; + +// --- Text new line -------------------------------------------------- + +Blockly.Blocks['text_newline'] = { + // Checkbox. + init: function() { + this.appendDummyInput() + .appendField(Blockly.Translate('text_newline')); + + this.appendDummyInput() + .appendField(new Blockly.FieldDropdown([['\\n', '\\n'], ['\\r\\n', '\\r\\n'], ['\\r', '\\r']]), 'Type'); + this.setInputsInline(true); + this.setColour(Blockly.Msg['TEXTS_HUE']); + this.setOutput(true, 'String'); + this.setTooltip(Blockly.Translate('text_newline_tooltip')); + } +}; + +Blockly.JavaScript['text_newline'] = function(block) { + var dropdown_type = block.getFieldValue('Type'); + return ['\'' + dropdown_type + '\'', Blockly.JavaScript.ORDER_ATOMIC]; +}; diff --git a/admin/google-blockly/own/blocks_timeout.js b/admin/google-blockly/own/blocks_timeout.js index 6fe867f60..c5dadaf89 100644 --- a/admin/google-blockly/own/blocks_timeout.js +++ b/admin/google-blockly/own/blocks_timeout.js @@ -186,7 +186,10 @@ Blockly.JavaScript['timeouts_settimeout'] = function(block) { delay *= 1000; } var statements_name = Blockly.JavaScript.statementToCode(block, 'STATEMENT'); - return name + ' = setTimeout(async function () {\n' + statements_name + '}, ' + delay + ');\n'; + return name + ' = setTimeout(async function () {\n' + + Blockly.JavaScript.prefixLines(name + ' = null;', Blockly.JavaScript.INDENT) + '\n' + + statements_name + + '}, ' + delay + ');\n'; }; // --- setTimeout variable ----------------------------------------------------------- @@ -244,7 +247,11 @@ Blockly.JavaScript['timeouts_settimeout_variable'] = function(block) { var delay = Blockly.JavaScript.valueToCode(block, 'DELAY_MS', Blockly.JavaScript.ORDER_ATOMIC); var name = Blockly.JavaScript.variableDB_.safeName_(block.getFieldValue('NAME')); var statements_name = Blockly.JavaScript.statementToCode(block, 'STATEMENT'); - return name + ' = setTimeout(async function () {\n' + statements_name + '}, parseInt(' + delay + '));\n'; + + return name + ' = setTimeout(async function () {\n' + + Blockly.JavaScript.prefixLines(name + ' = null;', Blockly.JavaScript.INDENT) + '\n' + + statements_name + + '}, parseInt(' + delay + '));\n'; }; // --- clearTimeout ----------------------------------------------------------- @@ -298,7 +305,7 @@ Blockly.Blocks['timeouts_cleartimeout'] = { Blockly.JavaScript['timeouts_cleartimeout'] = function(block) { var name = Blockly.JavaScript.variableDB_.safeName_(block.getFieldValue('NAME')); - return '(function () {if (' + name + ') {clearTimeout(' + name + '); ' + name + ' = null;}})();\n'; + return '(function () { if (' + name + ') { clearTimeout(' + name + '); ' + name + ' = null; }})();\n'; }; // --- getTimeout ----------------------------------------------------------- @@ -394,7 +401,10 @@ Blockly.JavaScript['timeouts_setinterval'] = function(block) { } var statements_name = Blockly.JavaScript.statementToCode(block, 'STATEMENT'); - return name + ' = setInterval(async function () {\n' + statements_name + '}, ' + delay + ');\n'; + + return name + ' = setInterval(async function () {\n' + + statements_name + + '}, ' + delay + ');\n'; }; // --- setInterval variable ----------------------------------------------------------- @@ -452,7 +462,10 @@ Blockly.JavaScript['timeouts_setinterval_variable'] = function(block) { var delay = Blockly.JavaScript.valueToCode(block, 'INTERVAL_MS', Blockly.JavaScript.ORDER_ATOMIC); var name = Blockly.JavaScript.variableDB_.safeName_(block.getFieldValue('NAME')); var statements_name = Blockly.JavaScript.statementToCode(block, 'STATEMENT'); - return name + ' = setInterval(async function () {\n' + statements_name + '}, parseInt(' + delay + '));\n'; + + return name + ' = setInterval(async function () {\n' + + statements_name + + '}, parseInt(' + delay + '));\n'; }; // --- clearInterval ----------------------------------------------------------- @@ -507,7 +520,7 @@ Blockly.Blocks['timeouts_clearinterval'] = { Blockly.JavaScript['timeouts_clearinterval'] = function(block) { var name = Blockly.JavaScript.variableDB_.safeName_(block.getFieldValue('NAME')); - return '(function () {if (' + name + ') {clearInterval(' + name + '); ' + name + ' = null;}})();\n'; + return '(function () { if (' + name + ') { clearInterval(' + name + '); ' + name + ' = null; }})();\n'; }; // --- getInterval ----------------------------------------------------------- diff --git a/admin/google-blockly/own/blocks_trigger.js b/admin/google-blockly/own/blocks_trigger.js index 683e3f7bf..7b5da906d 100644 --- a/admin/google-blockly/own/blocks_trigger.js +++ b/admin/google-blockly/own/blocks_trigger.js @@ -83,8 +83,9 @@ Blockly.Blocks['on_ext'] = { * @this Blockly.Block */ mutationToDom: function () { - var container = document.createElement('mutation'); + const container = document.createElement('mutation'); container.setAttribute('items', this.itemCount_); + return container; }, /** @@ -103,15 +104,17 @@ Blockly.Blocks['on_ext'] = { * @this Blockly.Block */ decompose: function (workspace) { - var containerBlock = workspace.newBlock('on_ext_oid_container'); + const containerBlock = workspace.newBlock('on_ext_oid_container'); containerBlock.initSvg(); - var connection = containerBlock.getInput('STACK').connection; - for (var i = 0; i < this.itemCount_; i++) { - var itemBlock = workspace.newBlock('on_ext_oid'); + + let connection = containerBlock.getInput('STACK').connection; + for (let i = 0; i < this.itemCount_; i++) { + const itemBlock = workspace.newBlock('on_ext_oid'); itemBlock.initSvg(); connection.connect(itemBlock.previousConnection); connection = itemBlock.nextConnection; } + return containerBlock; }, /** @@ -120,26 +123,29 @@ Blockly.Blocks['on_ext'] = { * @this Blockly.Block */ compose: function (containerBlock) { - var itemBlock = containerBlock.getInputTargetBlock('STACK'); + let itemBlock = containerBlock.getInputTargetBlock('STACK'); // Count number of inputs. - var connections = []; + const connections = []; while (itemBlock) { connections.push(itemBlock.valueConnection_); itemBlock = itemBlock.nextConnection && itemBlock.nextConnection.targetBlock(); } + // Disconnect any children that don't belong. - for (var k = 0; k < this.itemCount_; k++) { + for (let k = 0; k < this.itemCount_; k++) { var connection = this.getInput('OID' + k).connection.targetConnection; if (connection && connections.indexOf(connection) === -1) { connection.disconnect(); } } + this.itemCount_ = connections.length; if (this.itemCount_ < 1) this.itemCount_ = 1; this.updateShape_(); + // Reconnect any child blocks. - for (var i = 0; i < this.itemCount_; i++) { + for (let i = 0; i < this.itemCount_; i++) { Blockly.Mutator.reconnect(connections[i], this, 'OID' + i); } }, @@ -149,8 +155,9 @@ Blockly.Blocks['on_ext'] = { * @this Blockly.Block */ saveConnections: function(containerBlock) { - var itemBlock = containerBlock.getInputTargetBlock('STACK'); - var i = 0; + let itemBlock = containerBlock.getInputTargetBlock('STACK'); + let i = 0; + while (itemBlock) { var input = this.getInput('OID' + i); itemBlock.valueConnection_ = input && input.connection.targetConnection; @@ -172,9 +179,9 @@ Blockly.Blocks['on_ext'] = { this.removeInput('ACK_CONDITION'); } - var input; + let input; - for (var j = 0; input = this.inputList[j]; j++) { + for (let j = 0; input = this.inputList[j]; j++) { if (input.name === 'STATEMENT') { this.inputList.splice(j, 1); break; @@ -182,10 +189,10 @@ Blockly.Blocks['on_ext'] = { } // Add new inputs. - var wp = this.workspace; + const wp = this.workspace; for (var i = 0; i < this.itemCount_; i++) { - var _input = this.getInput('OID' + i); + let _input = this.getInput('OID' + i); if (!_input) { _input = this.appendValueInput('OID' + i); @@ -194,7 +201,7 @@ Blockly.Blocks['on_ext'] = { } setTimeout(function (_input) { if (!_input.connection.isConnected()) { - var shadow = wp.newBlock('field_oid'); + const shadow = wp.newBlock('field_oid'); shadow.setShadow(true); shadow.outputConnection.connect(_input.connection); shadow.initSvg(); @@ -204,7 +211,7 @@ Blockly.Blocks['on_ext'] = { } else { setTimeout(function (_input) { if (!_input.connection.isConnected()) { - var shadow = wp.newBlock('field_oid'); + const shadow = wp.newBlock('field_oid'); shadow.setShadow(true); shadow.outputConnection.connect(_input.connection); shadow.initSvg(); @@ -213,6 +220,7 @@ Blockly.Blocks['on_ext'] = { }, 100, _input); } } + // Remove deleted inputs. while (this.getInput('OID' + i)) { this.removeInput('OID' + i); @@ -248,19 +256,20 @@ Blockly.Blocks['on_ext'] = { } }; Blockly.JavaScript['on_ext'] = function(block) { - var dropdown_condition = block.getFieldValue('CONDITION'); - var statements_name = Blockly.JavaScript.statementToCode(block, 'STATEMENT'); - var ack_condition = block.getFieldValue('ACK_CONDITION'); - var val; + const dropdown_condition = block.getFieldValue('CONDITION'); + const ack_condition = block.getFieldValue('ACK_CONDITION'); + const statement = Blockly.JavaScript.statementToCode(block, 'STATEMENT'); + + let val; if (dropdown_condition === 'true' || dropdown_condition === 'false') { val = 'val: ' + dropdown_condition; } else { - val = 'change: "' + dropdown_condition + '"'; + val = `change: '${dropdown_condition}'`; } - var oids = []; - for (var n = 0; n < block.itemCount_; n++) { - var id = Blockly.JavaScript.valueToCode(block, 'OID' + n, Blockly.JavaScript.ORDER_COMMA); + const oids = []; + for (let n = 0; n < block.itemCount_; n++) { + let id = Blockly.JavaScript.valueToCode(block, 'OID' + n, Blockly.JavaScript.ORDER_COMMA); if (id) { id = id.toString(); if (id.startsWith('\'') && id.endsWith('\'')) { @@ -271,12 +280,12 @@ Blockly.JavaScript['on_ext'] = function(block) { } } } - var oid = '[].concat(' + oids.join(').concat(') + ')'; - var code = 'on({id: ' + oid + ', ' + val + (ack_condition ? ', ack: ' + ack_condition : '') + '}, async function (obj) {\n ' + - (oids.length === 1 ? 'let value = obj.state.val;\n let oldValue = obj.oldState.val;\n' : '') + - statements_name + '});\n'; - return code; + const oid = '[].concat(' + oids.join(').concat(') + ')'; + + return `on({ id: ${oid}, ${val} ${ack_condition ? ', ack: ' + ack_condition : ''} }, async (obj) => {\n` + + (oids.length === 1 ? Blockly.JavaScript.prefixLines('let value = obj.state.val;\nlet oldValue = obj.oldState.val;', Blockly.JavaScript.INDENT) + '\n' : '') + + statement + '});\n'; }; // --- ON ----------------------------------------------------------- @@ -332,23 +341,26 @@ Blockly.Blocks['on'] = { } }; Blockly.JavaScript['on'] = function(block) { - var value_objectid = block.getFieldValue('OID'); - var dropdown_condition = block.getFieldValue('CONDITION'); - var ack_condition = block.getFieldValue('ACK_CONDITION'); - var statements_name = Blockly.JavaScript.statementToCode(block, 'STATEMENT'); - var objectname = main.objects[value_objectid] && main.objects[value_objectid].common && main.objects[value_objectid].common.name ? main.objects[value_objectid].common.name : ''; + const value_objectid = block.getFieldValue('OID'); + const dropdown_condition = block.getFieldValue('CONDITION'); + const ack_condition = block.getFieldValue('ACK_CONDITION'); + const statement = Blockly.JavaScript.statementToCode(block, 'STATEMENT'); + const objectName = main.objects[value_objectid] && main.objects[value_objectid].common && main.objects[value_objectid].common.name ? main.objects[value_objectid].common.name : ''; Blockly.Msg.VARIABLES_DEFAULT_NAME = 'value'; - var val; + let val; if (dropdown_condition === 'true' || dropdown_condition === 'false') { val = 'val: ' + dropdown_condition; } else { - val = 'change: "' + dropdown_condition + '"'; + val = `change: '${dropdown_condition}'`; } - var code = 'on({id: "' + value_objectid + '"' + (objectname ? '/*' + objectname + '*/' : '') + ', ' + val + (ack_condition ? ', ack: ' + ack_condition : '') + '}, async function (obj) {\n let value = obj.state.val;\n let oldValue = obj.oldState.val;\n' + statements_name + '});\n'; - return code; + return `on({ id: '${value_objectid}'${objectName ? ` /* ${objectName} */` : ''}, ${val} ${ack_condition ? ', ack: ' + ack_condition : ''} }, async (obj) => {\n` + + Blockly.JavaScript.prefixLines('let value = obj.state.val;', Blockly.JavaScript.INDENT) + '\n' + + Blockly.JavaScript.prefixLines('let oldValue = obj.oldState.val;', Blockly.JavaScript.INDENT) + '\n' + + statement + + '});\n'; }; // --- get info about event ----------------------------------------------------------- @@ -392,7 +404,7 @@ Blockly.Blocks['on_source'] = { [Blockly.Translate('on_source_oldstate_ack'), 'oldState.ack'], [Blockly.Translate('on_source_oldstate_lc'), 'oldState.lc'], [Blockly.Translate('on_source_oldstate_c'), 'oldState.c'], - [Blockly.Translate('on_source_oldstate_user'), 'oldState.user'] + [Blockly.Translate('on_source_oldstate_user'), 'oldState.user'] ]), 'ATTR'); this.setInputsInline(true); @@ -408,9 +420,9 @@ Blockly.Blocks['on_source'] = { * @this Blockly.Block */ onchange: function(e) { - var legal = false; + let legal = false; // Is the block nested in a trigger? - var block = this; + let block = this; do { if (this.FUNCTION_TYPES.indexOf(block.type) !== -1) { legal = true; @@ -433,13 +445,15 @@ Blockly.Blocks['on_source'] = { FUNCTION_TYPES: ['on', 'on_ext'] }; Blockly.JavaScript['on_source'] = function(block) { - var attr = block.getFieldValue('ATTR'); - var parts = attr.split('.'); + let attr = block.getFieldValue('ATTR'); + const parts = attr.split('.'); + if (parts.length > 1) { attr = '(obj.' + parts[0] + ' ? obj.' + attr + ' : "")'; } else { attr = 'obj.' + attr; } + return [attr, Blockly.JavaScript.ORDER_ATOMIC]; }; @@ -447,9 +461,6 @@ Blockly.JavaScript['on_source'] = function(block) { Blockly.Trigger.blocks['schedule'] = '' + ' ' - //+ ' ' - //+ ' test' - //+ ' ' + ' ' + ' ' + ' ' @@ -475,15 +486,18 @@ Blockly.Blocks['schedule'] = { } }; Blockly.JavaScript['schedule'] = function(block) { - var schedule = block.getFieldValue('SCHEDULE'); - var statements_name = Blockly.JavaScript.statementToCode(block, 'STATEMENT'); + let schedule = block.getFieldValue('SCHEDULE'); + const statement = Blockly.JavaScript.statementToCode(block, 'STATEMENT'); if (schedule[0] === '{') { schedule = "'" + schedule + "'"; } else { schedule = '"' + schedule + '"'; } - return 'schedule(' + schedule + ', async function () {\n' + statements_name + '});\n'; + + return `schedule(${schedule}, async () => {\n` + + statement + + '});\n'; }; // --- ASTRO ----------------------------------------------------------- @@ -544,11 +558,13 @@ Blockly.Blocks['astro'] = { } }; Blockly.JavaScript['astro'] = function(block) { - var astrotype = block.getFieldValue('TYPE'); - var offset = parseInt(block.getFieldValue('OFFSET'), 10); - var statements_name = Blockly.JavaScript.statementToCode(block, 'STATEMENT'); + const astrotype = block.getFieldValue('TYPE'); + const offset = parseInt(block.getFieldValue('OFFSET'), 10); + const statement = Blockly.JavaScript.statementToCode(block, 'STATEMENT'); - return 'schedule({astro: "' + astrotype + '", shift: ' + offset + '}, async function () {\n' + statements_name + '});\n'; + return `schedule({ astro: '${astrotype}', shift: ${offset} }, async () => {\n` + + statement + + '});\n'; }; // --- set named schedule ----------------------------------------------------------- @@ -577,7 +593,7 @@ Blockly.Trigger.findLegalName = function(name, block) { } while (!Blockly.Trigger.isLegalName_(name, block.workspace, block)) { // Collision with another procedure. - var r = name.match(/^(.*?)(\d+)$/); + const r = name.match(/^(.*?)(\d+)$/); if (!r) { name += '1'; } else { @@ -602,14 +618,14 @@ Blockly.Trigger.isLegalName_ = function(name, workspace, opt_exclude) { return false; } - var blocks = workspace.getAllBlocks(); + const blocks = workspace.getAllBlocks(); // Iterate through every block and check the name. - for (var i = 0; i < blocks.length; i++) { + for (let i = 0; i < blocks.length; i++) { if (blocks[i] == opt_exclude) { continue; } if (blocks[i].isSchedule_) { - var blockName = blocks[i].getFieldValue('NAME'); + const blockName = blocks[i].getFieldValue('NAME'); if (Blockly.Names.equals(blockName, name)) { return false; } @@ -631,7 +647,7 @@ Blockly.Trigger.rename = function (name) { Blockly.Blocks['schedule_create'] = { init: function() { - var nameField = new Blockly.FieldTextInput( + const nameField = new Blockly.FieldTextInput( Blockly.Trigger.findLegalName('schedule', this), Blockly.Trigger.rename); @@ -659,26 +675,28 @@ Blockly.Blocks['schedule_create'] = { return [this.getFieldValue('NAME')]; }, getVarModels: function () { - var name = this.getFieldValue('NAME'); + const name = this.getFieldValue('NAME'); return [{getId: function () {return name;}, name: name, type: 'cron'}]; } }; Blockly.JavaScript['schedule_create'] = function (block) { - var name = Blockly.JavaScript.variableDB_.safeName_(block.getFieldValue('NAME')); - var schedule = Blockly.JavaScript.valueToCode(block, 'SCHEDULE', Blockly.JavaScript.ORDER_ATOMIC); - var statements_name = Blockly.JavaScript.statementToCode(block, 'STATEMENT'); + const name = Blockly.JavaScript.variableDB_.safeName_(block.getFieldValue('NAME')); + const schedule = Blockly.JavaScript.valueToCode(block, 'SCHEDULE', Blockly.JavaScript.ORDER_ATOMIC); + const statement = Blockly.JavaScript.statementToCode(block, 'STATEMENT'); - return name + ' = schedule(' + schedule + ', async function () {\n' + statements_name + '});\n'; + return name + ' = schedule(' + schedule + ', async () => {\n' + + statement + + '});\n'; }; // --- clearSchedule ----------------------------------------------------------- Blockly.Trigger.getAllSchedules = function (workspace) { - var blocks = workspace.getAllBlocks(); - var result = []; + const blocks = workspace.getAllBlocks(); + const result = []; // Iterate through every block and check the name. - for (var i = 0; i < blocks.length; i++) { + for (let i = 0; i < blocks.length; i++) { if (blocks[i].isSchedule_) { result.push([blocks[i].getFieldValue('NAME'), blocks[i].getFieldValue('NAME')]); } @@ -686,11 +704,11 @@ Blockly.Trigger.getAllSchedules = function (workspace) { // BF(2020.05.16): for back compatibility. Remove it after 5 years if (window.scripts.loading) { - var variables = workspace.getVariablesOfType(''); + const variables = workspace.getVariablesOfType(''); variables.forEach(v => !result.find(it => it[0] === v.name) && result.push([v.name, v.name])); } - var variables1 = workspace.getVariablesOfType('cron'); + const variables1 = workspace.getVariablesOfType('cron'); variables1.forEach(v => !result.find(it => it[0] === v.name) && result.push([v.name, v.name])); !result.length && result.push(['', '']); @@ -722,8 +740,8 @@ Blockly.Blocks['schedule_clear'] = { }; Blockly.JavaScript['schedule_clear'] = function(block) { - var name = Blockly.JavaScript.variableDB_.safeName_(block.getFieldValue('NAME')); - return '(function () {if (' + name + ') {clearSchedule(' + name + '); ' + name + ' = null;}})();\n'; + const name = Blockly.JavaScript.variableDB_.safeName_(block.getFieldValue('NAME')); + return `(function () { if (${name}) { clearSchedule(${name}); ${name} = null; }})();\n`; }; // --- CRON dialog -------------------------------------------------- @@ -750,8 +768,8 @@ Blockly.Blocks['field_cron'] = { }; Blockly.JavaScript['field_cron'] = function(block) { - var cron = block.getFieldValue('CRON'); - return ['\'' + cron + '\'', Blockly.JavaScript.ORDER_ATOMIC] + const cron = block.getFieldValue('CRON'); + return [`'${cron}'`, Blockly.JavaScript.ORDER_ATOMIC] }; // --- CRON builder -------------------------------------------------- @@ -787,13 +805,13 @@ Blockly.Blocks['cron_builder'] = { this.sourceBlock_.setInputsInline(option === true || option === 'true' || option === 'TRUE'); }), 'LINE'); - var _input = this.appendValueInput('DOW') + const _input = this.appendValueInput('DOW') .appendField(Blockly.Translate('cron_builder_dow')); - var wp = this.workspace; + const wp = this.workspace; setTimeout(function (_input) { if (!_input.connection.isConnected()) { - var _shadow = wp.newBlock('text'); + const _shadow = wp.newBlock('text'); _shadow.setShadow(true); _shadow.setFieldValue('*', 'TEXT'); _shadow.outputConnection.connect(_input.connection); @@ -805,7 +823,7 @@ Blockly.Blocks['cron_builder'] = { .appendField(Blockly.Translate('cron_builder_month')); setTimeout(function (_input) { if (!_input.connection.isConnected()) { - var _shadow = wp.newBlock('text'); + const _shadow = wp.newBlock('text'); _shadow.setShadow(true); _shadow.setFieldValue('*', 'TEXT'); _shadow.outputConnection.connect(_input.connection); @@ -816,7 +834,7 @@ Blockly.Blocks['cron_builder'] = { .appendField(Blockly.Translate('cron_builder_day')); setTimeout(function (_input) { if (!_input.connection.isConnected()) { - var _shadow = wp.newBlock('text'); + const _shadow = wp.newBlock('text'); _shadow.setShadow(true); _shadow.setFieldValue('*', 'TEXT'); _shadow.outputConnection.connect(_input.connection); @@ -828,7 +846,7 @@ Blockly.Blocks['cron_builder'] = { .appendField(Blockly.Translate('cron_builder_hour')); setTimeout(function (_input) { if (!_input.connection.isConnected()) { - var _shadow = wp.newBlock('text'); + const _shadow = wp.newBlock('text'); _shadow.setShadow(true); _shadow.setFieldValue('*', 'TEXT'); _shadow.outputConnection.connect(_input.connection); @@ -840,7 +858,7 @@ Blockly.Blocks['cron_builder'] = { .appendField(Blockly.Translate('cron_builder_minutes')); setTimeout(function (_input) { if (!_input.connection.isConnected()) { - var _shadow = wp.newBlock('text'); + const _shadow = wp.newBlock('text'); _shadow.setShadow(true); _shadow.setFieldValue('*', 'TEXT'); _shadow.outputConnection.connect(_input.connection); @@ -850,7 +868,7 @@ Blockly.Blocks['cron_builder'] = { this.appendDummyInput('WITH_SECONDS') .appendField(Blockly.Translate('cron_builder_with_seconds')) .appendField(new Blockly.FieldCheckbox('FALSE', function (option) { - var withSeconds = option === true || option === 'true' || option === 'TRUE'; + const withSeconds = option === true || option === 'true' || option === 'TRUE'; this.sourceBlock_.updateShape_(withSeconds); }), 'WITH_SECONDS'); @@ -867,9 +885,10 @@ Blockly.Blocks['cron_builder'] = { * @this Blockly.Block */ mutationToDom: function () { - var container = document.createElement('mutation'); + const container = document.createElement('mutation'); container.setAttribute('seconds', this.seconds_); container.setAttribute('as_line', this.as_line_); + return container; }, /** @@ -886,16 +905,16 @@ Blockly.Blocks['cron_builder'] = { updateShape_: function(withSeconds) { this.seconds_ = withSeconds; // Add or remove a statement Input. - var inputExists = this.getInput('SECONDS'); + const inputExists = this.getInput('SECONDS'); if (withSeconds) { if (!inputExists) { - var _input = this.appendValueInput('SECONDS'); + const _input = this.appendValueInput('SECONDS'); _input.appendField(Blockly.Translate('cron_builder_seconds')); - var wp = this.workspace; + const wp = this.workspace; setTimeout(function (_input) { if (!_input.connection.isConnected()) { - var _shadow = wp.newBlock('text'); + const _shadow = wp.newBlock('text'); _shadow.setShadow(true); _shadow.setFieldValue('*', 'TEXT'); _shadow.initSvg(); @@ -911,15 +930,15 @@ Blockly.Blocks['cron_builder'] = { }; Blockly.JavaScript['cron_builder'] = function(block) { - var dow = Blockly.JavaScript.valueToCode(block, 'DOW', Blockly.JavaScript.ORDER_ATOMIC); - var months = Blockly.JavaScript.valueToCode(block, 'MONTHS', Blockly.JavaScript.ORDER_ATOMIC); - var days = Blockly.JavaScript.valueToCode(block, 'DAYS', Blockly.JavaScript.ORDER_ATOMIC); - var hours = Blockly.JavaScript.valueToCode(block, 'HOURS', Blockly.JavaScript.ORDER_ATOMIC); - var minutes = Blockly.JavaScript.valueToCode(block, 'MINUTES', Blockly.JavaScript.ORDER_ATOMIC); - var seconds = Blockly.JavaScript.valueToCode(block, 'SECONDS', Blockly.JavaScript.ORDER_ATOMIC); - var withSeconds = block.getFieldValue('WITH_SECONDS'); - - var code = + const dow = Blockly.JavaScript.valueToCode(block, 'DOW', Blockly.JavaScript.ORDER_ATOMIC); + const months = Blockly.JavaScript.valueToCode(block, 'MONTHS', Blockly.JavaScript.ORDER_ATOMIC); + const days = Blockly.JavaScript.valueToCode(block, 'DAYS', Blockly.JavaScript.ORDER_ATOMIC); + const hours = Blockly.JavaScript.valueToCode(block, 'HOURS', Blockly.JavaScript.ORDER_ATOMIC); + const minutes = Blockly.JavaScript.valueToCode(block, 'MINUTES', Blockly.JavaScript.ORDER_ATOMIC); + const seconds = Blockly.JavaScript.valueToCode(block, 'SECONDS', Blockly.JavaScript.ORDER_ATOMIC); + const withSeconds = block.getFieldValue('WITH_SECONDS'); + + const code = (withSeconds === 'TRUE' || withSeconds === 'true' || withSeconds === true ? seconds + '.toString().trim() + \' \' + ' : '') + minutes + '.toString().trim() + \' \' + ' + @@ -927,6 +946,7 @@ Blockly.JavaScript['cron_builder'] = function(block) { days + '.toString().trim() + \' \' + ' + months + '.toString().trim() + \' \' + ' + dow + '.toString().trim()'; + return [code, Blockly.JavaScript.ORDER_ATOMIC] }; @@ -963,10 +983,12 @@ Blockly.Blocks['onMessage'] = { }; Blockly.JavaScript['onMessage'] = function (block) { - var message = block.getFieldValue('MESSAGE'); - var statements_name = Blockly.JavaScript.statementToCode(block, 'STATEMENT'); + const message = block.getFieldValue('MESSAGE'); + const statement = Blockly.JavaScript.statementToCode(block, 'STATEMENT'); - return 'onMessage("' + message + '", async function (data) {\n ' + statements_name + '});\n'; + return `onMessage('${message}', async (data) => {\n` + + statement + + '});\n'; }; // --- onFile ----------------------------------------------------------- @@ -1013,16 +1035,18 @@ Blockly.Blocks['onFile'] = { this.setHelpUrl(getHelp('onFile_help')); } }; + Blockly.JavaScript['onFile'] = function (block) { - var value_objectid = Blockly.JavaScript.valueToCode(block, 'OID', Blockly.JavaScript.ORDER_ATOMIC); - var file = Blockly.JavaScript.valueToCode(block, 'FILE', Blockly.JavaScript.ORDER_ATOMIC); - var withFile = block.getFieldValue('WITH_FILE'); - var statements_name = Blockly.JavaScript.statementToCode(block, 'STATEMENT'); - var objectname = main.objects[value_objectid] && main.objects[value_objectid].common && main.objects[value_objectid].common.name ? main.objects[value_objectid].common.name : ''; - - return 'onFile(' + value_objectid + (objectname ? '/*' + objectname + '*/' : '') + ', ' + - file + ', ' + (withFile === 'TRUE' ? 'true' : 'false') + - ', async function (id, fileName, size, data, mimeType) {\n ' + statements_name + '});\n'; + const value_objectid = Blockly.JavaScript.valueToCode(block, 'OID', Blockly.JavaScript.ORDER_ATOMIC); + const file = Blockly.JavaScript.valueToCode(block, 'FILE', Blockly.JavaScript.ORDER_ATOMIC); + const withFile = block.getFieldValue('WITH_FILE'); + const statement = Blockly.JavaScript.statementToCode(block, 'STATEMENT'); + const objectName = main.objects[value_objectid] && main.objects[value_objectid].common && main.objects[value_objectid].common.name ? main.objects[value_objectid].common.name : ''; + + return `onFile(${value_objectid}${objectName ? ` /* ${objectName} */` : ''}, ${file}, ${withFile === 'TRUE' ? 'true' : 'false'}, ` + + 'async (id, fileName, size, data, mimeType) => {\n' + + statement + + '});\n'; }; // --- onFile ----------------------------------------------------------- @@ -1057,10 +1081,11 @@ Blockly.Blocks['offFile'] = { this.setHelpUrl(getHelp('offFile_help')); } }; + Blockly.JavaScript['offFile'] = function (block) { - var value_objectid = Blockly.JavaScript.valueToCode(block, 'OID', Blockly.JavaScript.ORDER_ATOMIC); - var file = Blockly.JavaScript.valueToCode(block, 'FILE', Blockly.JavaScript.ORDER_ATOMIC); - var objectname = main.objects[value_objectid] && main.objects[value_objectid].common && main.objects[value_objectid].common.name ? main.objects[value_objectid].common.name : ''; + const value_objectid = Blockly.JavaScript.valueToCode(block, 'OID', Blockly.JavaScript.ORDER_ATOMIC); + const file = Blockly.JavaScript.valueToCode(block, 'FILE', Blockly.JavaScript.ORDER_ATOMIC); + const objectName = main.objects[value_objectid] && main.objects[value_objectid].common && main.objects[value_objectid].common.name ? main.objects[value_objectid].common.name : ''; - return 'offFile(' + value_objectid + (objectname ? '/*' + objectname + '*/' : '') + ', ' + file + ');\n'; -}; \ No newline at end of file + return `offFile(${value_objectid}${objectName ? ` /* ${objectName} */` : ''}, ${file});\n`; +}; diff --git a/admin/google-blockly/own/blocks_words.js b/admin/google-blockly/own/blocks_words.js index 8ab7a7dc3..292d5cb0d 100644 --- a/admin/google-blockly/own/blocks_words.js +++ b/admin/google-blockly/own/blocks_words.js @@ -174,6 +174,8 @@ Blockly.Words['get_value_async'] = {'en': 'Get state value' // --- system field -------------------------------------------------- Blockly.Words['field_oid'] = {'en': 'Select OID', 'de': 'Datenpunkt auswählen', 'ru': 'создать состояние', 'pt': 'Selecionar ponto de dados', 'nl': 'Selecteer OID', 'fr': 'Sélectionnez OID', 'it': 'Seleziona OID', 'es': 'Seleccionar OID', 'pl': 'Select OID', 'zh-cn': '选择对象ID', 'uk': 'Виберіть OID'}; Blockly.Words['field_oid_OID'] = {'en': 'Object ID', 'de': 'Objekt ID', 'ru': 'ID объекта', 'pt': 'ID do objeto', 'nl': 'Object ID', 'fr': 'ID de l\'objet', 'it': 'ID oggetto', 'es': 'ID del objeto', 'pl': 'Object ID', 'zh-cn': '获取对象ID', 'uk': 'ID об\'єкта'}; +Blockly.Words['field_oid_OID_meta'] = {'en': 'Object ID (meta)', 'de': 'Objekt ID (meta)', 'ru': 'ID объекта (meta)', 'pt': 'ID do objeto (meta)', 'nl': 'Object ID (meta)', 'fr': 'ID de l\'objet (meta)', 'it': 'ID oggetto (meta)', 'es': 'ID del objeto (meta)', 'pl': 'Object ID (meta)', 'zh-cn': '获取对象ID (meta)', 'uk': 'ID об\'єкта (meta)'}; +Blockly.Words['field_oid_OID_script'] = {'en': 'Object ID (script)', 'de': 'Objekt ID (script)', 'ru': 'ID объекта (script)', 'pt': 'ID do objeto (script)', 'nl': 'Object ID (script)', 'fr': 'ID de l\'objet (script)', 'it': 'ID oggetto (script)', 'es': 'ID del objeto (script)', 'pl': 'Object ID (script)', 'zh-cn': '获取对象ID (script)', 'uk': 'ID об\'єкта (script)'}; Blockly.Words['field_oid_tooltip'] = {'en': 'Select object ID with dialog', 'de': 'Objekt ID mit Dialog selektieren', 'ru': 'Выбрать ID объекта', 'pt': 'Selecione ID do objeto com diálogo', 'nl': 'Selecteer object-ID met dialoogvenster', 'fr': 'Sélectionnez l\'ID d\'objet avec la boîte de dialogue', 'it': 'Seleziona ID oggetto con finestra di dialogo', 'es': 'Seleccionar ID de objeto con diálogo', 'pl': 'Select object ID with dialog', 'zh-cn': '使用对话框选择对象ID', 'uk': 'Виберіть ідентифікатор об’єкта за допомогою діалогового вікна'}; // --- system get -------------------------------------------------- @@ -442,6 +444,18 @@ Blockly.Words['onMessage_message'] = {'en': 'message', Blockly.Words['onMessage_tooltip'] = {'en': 'message', 'de': 'Meldung', 'ru': 'сообщение', 'pt': 'mensagem', 'nl': 'bericht', 'fr': 'message', 'it': 'messaggio', 'es': 'mensaje', 'pl': 'komunikat', 'zh-cn': '消息', 'uk': 'повідомлення'}; Blockly.Words['onMessage_help'] = {'en': 'onMessage', 'de': 'onMessage', 'ru': 'onMessage', 'pt': 'onMessage', 'nl': 'onMessage', 'fr': 'onMessage', 'it': 'onMessage', 'es': 'onMessage', 'pl': 'onMessage', 'zh-cn': 'onMessage', 'uk': 'onMessage'}; +// --- logic between -------------------------------------------------- +Blockly.Words['logic_between_min'] = { "en": "Min", "de": "Min", "ru": "Мин", "pt": "Min", "nl": "Min", "fr": "Min", "it": "Min", "es": "Min", "pl": "Min", "uk": "Мінуси", "zh-cn": "明 明" }; +Blockly.Words['logic_between_max'] = { "en": "Max", "de": "Max", "ru": "Макс", "pt": "Max", "nl": "Max", "fr": "Max", "it": "Max", "es": "Max", "pl": "Max", "uk": "Макс", "zh-cn": "Max" }; + +// --- logic ifempty -------------------------------------------------- +Blockly.Words['logic_ifempty'] = { "en": "if empty", "de": "wenn leer", "ru": "если пусто", "pt": "se vazio", "nl": "_", "fr": "si vide", "it": "se vuoto", "es": "si está vacío", "pl": "jeśli chodzi o puste", "uk": "якщо порожній", "zh-cn": "空" }; +Blockly.Words['logic_ifempty_then'] = { "en": "then", "de": "dann", "ru": "затем", "pt": "então", "nl": "dan", "fr": "puis", "it": "allora", "es": "entonces", "pl": "potem", "uk": "потім", "zh-cn": "然后" }; + +function getHelp(word) { + return 'https://github.com/ioBroker/ioBroker.javascript/blob/master/docs/en/javascript.md#' + Blockly.Words[word][systemLang]; +} + Blockly.Translate = function (word, lang) { lang = lang || systemLang; if (Blockly.Words && Blockly.Words[word]) { diff --git a/admin/google-blockly/own/field_cron.js b/admin/google-blockly/own/field_cron.js index b36d8ccf7..c7ed28a50 100644 --- a/admin/google-blockly/own/field_cron.js +++ b/admin/google-blockly/own/field_cron.js @@ -1,27 +1,3 @@ -/** - * @license - * Visual Blocks Editor - * - * Copyright 2012 Google Inc. - * https://developers.google.com/blockly/ - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -/** - * @fileoverview Text input field. - * @author fraser@google.com (Neil Fraser) - */ 'use strict'; if (typeof goog !== 'undefined') { @@ -34,174 +10,150 @@ if (typeof goog !== 'undefined') { goog.require('goog.userAgent'); } -/** - * Class for an editable text field. - * @param {string} text The initial content of the field. - * @param {Function=} opt_validator An optional function that is called - * to validate any constraints on what the user entered. Takes the new - * text as an argument and returns either the accepted text, a replacement - * text, or null to abort the change. - * @extends {Blockly.Field} - * @constructor - */ -Blockly.FieldCRON = function(text) { - Blockly.FieldCRON.superClass_.constructor.call(this, text); -}; -if (typeof goog !== 'undefined') { - goog.inherits(Blockly.FieldCRON, Blockly.Field); -} else { - Blockly.utils.object.inherits(Blockly.FieldCRON, Blockly.Field); -} +class FieldCRON extends Blockly.Field { -/** - * Point size of text. Should match blocklyText's font-size in CSS. - */ -Blockly.FieldCRON.FONTSIZE = 11; - -/** - * Mouse cursor style when over the hotspot that initiates the editor. - */ -Blockly.FieldCRON.prototype.CURSOR = 'pointer'; - -/** - * Allow browser to spellcheck this field. - * @private - */ -Blockly.FieldCRON.prototype.spellcheck_ = false; - -/** - * Close the input widget if this input is being deleted. - */ -Blockly.FieldCRON.prototype.dispose = function() { - Blockly.WidgetDiv.hideIfOwner(this); - Blockly.FieldCRON.superClass_.dispose.call(this); -}; - -/** - * Set the text in this field. - * @param {?string} text New text. - * @override - */ -Blockly.FieldCRON.prototype.setValue = function(text) { - if (text === null) { - return; // No change if null. - } - - Blockly.Field.prototype.setValue.call(this, text); -}; - -/** - * Show the inline free-text editor on top of the text. - * @param {boolean=} opt_quietInput True if editor should be created without - * focus. Defaults to false. - * @private - */ -Blockly.FieldCRON.prototype.showEditor_ = function(opt_quietInput) { - this.workspace_ = this.sourceBlock_.workspace; - var that = this; - main.cronDialog(that.getValue(), function (newId) { - if (newId !== undefined && newId !== null) that.setValue(newId); - }); -}; - -/** - * Handle a change to the editor. - * @param {!Event} e Keyboard event. - * @private - */ -Blockly.FieldCRON.prototype.onHtmlInputChange_ = function(e) { - var htmlInput = Blockly.FieldCRON.htmlInput_; - // Update source block. - var text = htmlInput.value; - if (text !== htmlInput.oldValue_) { - htmlInput.oldValue_ = text; - this.setValue(text); - this.validate_(); - } else if (goog.userAgent.WEBKIT) { - // Cursor key. Render the source block to show the caret moving. - // Chrome only (version 26, OS X). - this.sourceBlock_.render(); + constructor(value, type) { + super(value); + + this.FONTSIZE = 11; + this.CURSOR = 'pointer'; + this.spellcheck_ = false; } - this.resizeEditor_(); - Blockly.svgResize(this.sourceBlock_.workspace); -}; - -/** - * Check to see if the contents of the editor validates. - * Style the editor accordingly. - * @private - */ -Blockly.FieldCRON.prototype.validate_ = function() { - goog.asserts.assertObject(Blockly.FieldCRON.htmlInput_); - - var htmlInput = Blockly.FieldCRON.htmlInput_; - - if (htmlInput.value) { - Blockly.addClass_(htmlInput, 'blocklyInvalidInput'); - } else { - Blockly.removeClass_(htmlInput, 'blocklyInvalidInput'); + + dispose() { + Blockly.WidgetDiv.hideIfOwner(this); + super.dispose(); } -}; - -/** - * Resize the editor and the underlying block to fit the text. - * @private - */ -Blockly.FieldCRON.prototype.resizeEditor_ = function() { - var div = Blockly.WidgetDiv.DIV; - var bBox = this.fieldGroup_.getBBox(); - div.style.width = bBox.width * this.workspace_.scale + 'px'; - div.style.height = bBox.height * this.workspace_.scale + 'px'; - var xy = this.getAbsoluteXY_(); - // In RTL mode block fields and LTR input fields the left edge moves, - // whereas the right edge is fixed. Reposition the editor. - if (this.sourceBlock_.RTL) { - var borderBBox = this.getScaledBBox_(); - xy.x += borderBBox.width; - xy.x -= div.offsetWidth; + + /** + * Set the text in this field. + * @param {?string} text New text. + * @override + */ + setValue(text) { + if (text === null) { + return; // No change if null. + } + + super.setValue(text); } - // Shift by a few pixels to line up exactly. - xy.y += 1; - if (goog.userAgent.GECKO && Blockly.WidgetDiv.DIV.style.top) { - // Firefox mis-reports the location of the border by a pixel - // once the WidgetDiv is moved into position. - xy.x -= 1; - xy.y -= 1; + + /** + * Show the inline free-text editor on top of the text. + * @param {boolean=} opt_quietInput True if editor should be created without + * focus. Defaults to false. + * @private + */ + showEditor_(opt_quietInput) { + this.workspace_ = this.sourceBlock_.workspace; + window.main.cronDialog(this.getValue(), (newId) => { + if (newId !== undefined && newId !== null) this.setValue(newId); + }); } - if (goog.userAgent.WEBKIT) { - xy.y -= 3; + + /** + * Handle a change to the editor. + * @param {!Event} e Keyboard event. + * @private + */ + onHtmlInputChange_(e) { + var htmlInput = this.htmlInput_; + // Update source block. + var text = htmlInput.value; + if (text !== htmlInput.oldValue_) { + htmlInput.oldValue_ = text; + this.setValue(text); + this.validate_(); + } else if (goog.userAgent.WEBKIT) { + // Cursor key. Render the source block to show the caret moving. + // Chrome only (version 26, OS X). + this.sourceBlock_.render(); + } + this.resizeEditor_(); + Blockly.svgResize(this.sourceBlock_.workspace); } - div.style.left = xy.x + 'px'; - div.style.top = xy.y + 'px'; -}; - -/** - * Close the editor, save the results, and dispose of the editable - * text field's elements. - * @return {!Function} Closure to call on destruction of the WidgetDiv. - * @private - */ -Blockly.FieldCRON.prototype.widgetDispose_ = function() { - var thisField = this; - return function() { + + /** + * Check to see if the contents of the editor validates. + * Style the editor accordingly. + * @private + */ + validate_() { + goog.asserts.assertObject(Blockly.FieldCRON.htmlInput_); + var htmlInput = Blockly.FieldCRON.htmlInput_; - // Save the edit (if it validates). - var text = htmlInput.value; - thisField.setValue(text); - thisField.sourceBlock_.rendered && thisField.sourceBlock_.render(); - Blockly.unbindEvent_(htmlInput.onKeyDownWrapper_); - Blockly.unbindEvent_(htmlInput.onKeyUpWrapper_); - Blockly.unbindEvent_(htmlInput.onKeyPressWrapper_); - - thisField.workspace_.removeChangeListener( - htmlInput.onWorkspaceChangeWrapper_); - - Blockly.FieldCRON.htmlInput_ = null; - - // Delete style properties. - var style = Blockly.WidgetDiv.DIV.style; - style.width = 'auto'; - style.height = 'auto'; - style.fontSize = ''; - }; -}; + + if (htmlInput.value) { + Blockly.addClass_(htmlInput, 'blocklyInvalidInput'); + } else { + Blockly.removeClass_(htmlInput, 'blocklyInvalidInput'); + } + } + + /** + * Resize the editor and the underlying block to fit the text. + * @private + */ + resizeEditor_() { + var div = Blockly.WidgetDiv.DIV; + var bBox = this.fieldGroup_.getBBox(); + div.style.width = bBox.width * this.workspace_.scale + 'px'; + div.style.height = bBox.height * this.workspace_.scale + 'px'; + var xy = this.getAbsoluteXY_(); + // In RTL mode block fields and LTR input fields the left edge moves, + // whereas the right edge is fixed. Reposition the editor. + if (this.sourceBlock_.RTL) { + var borderBBox = this.getScaledBBox_(); + xy.x += borderBBox.width; + xy.x -= div.offsetWidth; + } + // Shift by a few pixels to line up exactly. + xy.y += 1; + if (goog.userAgent.GECKO && Blockly.WidgetDiv.DIV.style.top) { + // Firefox mis-reports the location of the border by a pixel + // once the WidgetDiv is moved into position. + xy.x -= 1; + xy.y -= 1; + } + if (goog.userAgent.WEBKIT) { + xy.y -= 3; + } + div.style.left = xy.x + 'px'; + div.style.top = xy.y + 'px'; + } + + /** + * Close the editor, save the results, and dispose of the editable + * text field's elements. + * @return {!Function} Closure to call on destruction of the WidgetDiv. + * @private + */ + widgetDispose_() { + var thisField = this; + return function() { + var htmlInput = Blockly.FieldCRON.htmlInput_; + // Save the edit (if it validates). + var text = htmlInput.value; + thisField.setValue(text); + thisField.sourceBlock_.rendered && thisField.sourceBlock_.render(); + Blockly.unbindEvent_(htmlInput.onKeyDownWrapper_); + Blockly.unbindEvent_(htmlInput.onKeyUpWrapper_); + Blockly.unbindEvent_(htmlInput.onKeyPressWrapper_); + + thisField.workspace_.removeChangeListener( + htmlInput.onWorkspaceChangeWrapper_); + + Blockly.FieldCRON.htmlInput_ = null; + + // Delete style properties. + var style = Blockly.WidgetDiv.DIV.style; + style.width = 'auto'; + style.height = 'auto'; + style.fontSize = ''; + }; + } +} + +Blockly.FieldCRON = FieldCRON; + +// Blockly.fieldRegistry.register('field_cron', FieldCRON); diff --git a/admin/google-blockly/own/field_oid.js b/admin/google-blockly/own/field_oid.js index 8249d15bf..2cefd1604 100644 --- a/admin/google-blockly/own/field_oid.js +++ b/admin/google-blockly/own/field_oid.js @@ -1,27 +1,3 @@ -/** - * @license - * Visual Blocks Editor - * - * Copyright 2012 Google Inc. - * https://developers.google.com/blockly/ - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -/** - * @fileoverview Text input field. - * @author fraser@google.com (Neil Fraser) - */ 'use strict'; if (typeof goog !== 'undefined') { @@ -34,90 +10,82 @@ if (typeof goog !== 'undefined') { goog.require('goog.userAgent'); } -/** - * Class for an editable text field. - * @param {string} text The initial content of the field. - * @param {string} type Type of objects (default: state) - * @extends {Blockly.Field} - * @constructor - */ -Blockly.FieldOID = function(text, type) { - Blockly.FieldOID.superClass_.constructor.call(this, text); - this._type = type; -}; - -if (typeof goog !== 'undefined') { - goog.inherits(Blockly.FieldOID, Blockly.Field); -} else { - Blockly.utils.object.inherits(Blockly.FieldOID, Blockly.Field); -} - -/** - * Point size of text. Should match blocklyText's font-size in CSS. - */ -Blockly.FieldOID.FONTSIZE = 11; +class FieldOID extends Blockly.Field { -/** - * Mouse cursor style when over the hotspot that initiates the editor. - */ -Blockly.FieldOID.prototype.CURSOR = 'pointer'; + constructor(value, type) { + super(value); -/** - * Allow browser to spellcheck this field. - * @private - */ -Blockly.FieldOID.prototype.spellcheck_ = false; + this._type = type; -/** - * Close the input widget if this input is being deleted. - */ -Blockly.FieldOID.prototype.dispose = function() { - Blockly.WidgetDiv.hideIfOwner(this); - Blockly.FieldOID.superClass_.dispose.call(this); -}; - -/** - * Set the text in this field. - * @param {?string} id New ID. - * @override - */ -Blockly.FieldOID.prototype.setValue = function(id) { - if (id === null) { - return; // No change if null. + this.FONTSIZE = 11; + this.CURSOR = 'pointer'; + this.spellcheck_ = false; } - var objects = window.main.objects; - - if (objects && !objects[id] && typeof window.main.getObject === 'function') { - this._idName = id || Blockly.Field.NBSP; - var that = this; - window.main.getObject(id, function (err, obj) { - if (obj) { - objects[obj._id] = objects[obj._id] || obj; - var text = objects[obj._id].common && objects[obj._id].common.name && objects[obj._id].common.name; - if (text) { - if (typeof text === 'object') { - text = text[systemLang] || text.en; - } - if (text.length > that.maxDisplayLength) { - // Truncate displayed string and add an ellipsis ('...'). - text = text.substring(0, that.maxDisplayLength - 2) + '\u2026'; - } - text.trim(); - // Replace whitespace with non-breaking spaces so the text doesn't collapse. - text = text.replace(/\s/g, Blockly.Field.NBSP); + dispose() { + Blockly.WidgetDiv.hideIfOwner(this); + super.dispose(); + } + setValue(id) { + if (id === null) { + return; // No change if null. + } + + var objects = window.main.objects; + + if (objects && !objects[id] && typeof window.main.getObject === 'function') { + this._idName = id || Blockly.Field.NBSP; + window.main.getObject(id, (err, obj) => { + if (obj) { + objects[obj._id] = objects[obj._id] || obj; + var text = objects[obj._id].common && objects[obj._id].common.name && objects[obj._id].common.name; if (text) { - that._idName = text; - that.forceRerender(); + if (typeof text === 'object') { + text = text[systemLang] || text.en; + } + if (text.length > this.maxDisplayLength) { + // Truncate displayed string and add an ellipsis ('...'). + text = text.substring(0, this.maxDisplayLength - 2) + '\u2026'; + } + text.trim(); + // Replace whitespace with non-breaking spaces so the text doesn't collapse. + text = text.replace(/\s/g, Blockly.Field.NBSP); + + if (text) { + this._idName = text; + this.forceRerender(); + } } } + }); + } else { + var text = objects && objects[id] && objects[id].common && objects[id].common.name ? objects[id].common.name : id; + if (typeof text === 'object') { + text = text[systemLang] || text.en; + } + if (text.length > this.maxDisplayLength) { + // Truncate displayed string and add an ellipsis ('...'). + text = text.substring(0, this.maxDisplayLength - 2) + '\u2026'; + } + // Replace whitespace with non-breaking spaces so the text doesn't collapse. + text = text.replace(/\s/g, Blockly.Field.NBSP); + + if (!text) { + // Prevent the field from disappearing if empty. + text = Blockly.Field.NBSP; } - }); - } else { - var text = objects && objects[id] && objects[id].common && objects[id].common.name ? objects[id].common.name : id; - if (typeof text === 'object') { - text = text[systemLang] || text.en; + this._idName = text; + } + + super.setValue(id); + } + + getDisplayText_() { + var text = this._idName || this.text_; + if (!text) { + // Prevent the field from disappearing if empty. + return Blockly.Field.NBSP; } if (text.length > this.maxDisplayLength) { // Truncate displayed string and add an ellipsis ('...'). @@ -125,173 +93,123 @@ Blockly.FieldOID.prototype.setValue = function(id) { } // Replace whitespace with non-breaking spaces so the text doesn't collapse. text = text.replace(/\s/g, Blockly.Field.NBSP); - - if (!text) { - // Prevent the field from disappearing if empty. - text = Blockly.Field.NBSP; + if (this.sourceBlock_.RTL) { + // The SVG is LTR, force text to be RTL. + text += '\u200F'; } - this._idName = text; + return text; } - Blockly.Field.prototype.setValue.call(this, id); -}; - -/** - * Get the text from this field as displayed on screen. May differ from getText - * due to ellipsis, and other formatting. - * @return {string} Currently displayed text. - * @protected - */ -Blockly.FieldOID.prototype.getDisplayText_ = function() { - var text = this._idName || this.text_; - if (!text) { - // Prevent the field from disappearing if empty. - return Blockly.Field.NBSP; - } - if (text.length > this.maxDisplayLength) { - // Truncate displayed string and add an ellipsis ('...'). - text = text.substring(0, this.maxDisplayLength - 2) + '\u2026'; + showEditor_(opt_quietInput) { + this.workspace_ = this.sourceBlock_.workspace; + window.main && window.main.selectIdDialog && window.main.selectIdDialog(this.getValue(), this._type, (newId) => { newId !== null && this.setValue(newId); }); } - // Replace whitespace with non-breaking spaces so the text doesn't collapse. - text = text.replace(/\s/g, Blockly.Field.NBSP); - if (this.sourceBlock_.RTL) { - // The SVG is LTR, force text to be RTL. - text += '\u200F'; - } - return text; -}; -/** - * Show the inline free-text editor on top of the text. - * @param {boolean=} opt_quietInput True if editor should be created without - * focus. Defaults to false. - * @private - */ -Blockly.FieldOID.prototype.showEditor_ = function(opt_quietInput) { - this.workspace_ = this.sourceBlock_.workspace; - var that = this; - window.main && window.main.selectIdDialog && window.main.selectIdDialog(this.getValue(), this._type, function (newId) { newId !== null && that.setValue(newId);}); -}; + /** + * Handle a change to the editor. + * @param {!Event} e Keyboard event. + * @private + */ + onHtmlInputChange_(e) { + var htmlInput = Blockly.FieldOID.htmlInput_; + // Update source block. + var text = htmlInput.value; + if (text !== htmlInput.oldValue_) { + htmlInput.oldValue_ = text; + this.setValue(text); + this.validate_(); + } else if (goog.userAgent.WEBKIT) { + // Cursor key. Render the source block to show the caret moving. + // Chrome only (version 26, OS X). + this.sourceBlock_.render(); + } -/** - * Handle key down to the editor. - * @param {!Event} e Keyboard event. - * @private - */ -/*Blockly.FieldOID.prototype.onHtmlInputKeyDown_ = function(e) { - var htmlInput = Blockly.FieldOID.htmlInput_; - var tabKey = 9, enterKey = 13, escKey = 27; - if (e.keyCode == enterKey) { - Blockly.WidgetDiv.hide(); - } else if (e.keyCode == escKey) { - htmlInput.value = htmlInput.defaultValue; - Blockly.WidgetDiv.hide(); - } else if (e.keyCode == tabKey) { - Blockly.WidgetDiv.hide(); - this.sourceBlock_.tab(this, !e.shiftKey); - e.preventDefault(); + this.resizeEditor_(); + Blockly.svgResize(this.sourceBlock_.workspace); } -};*/ -/** - * Handle a change to the editor. - * @param {!Event} e Keyboard event. - * @private - */ -Blockly.FieldOID.prototype.onHtmlInputChange_ = function(e) { - var htmlInput = Blockly.FieldOID.htmlInput_; - // Update source block. - var text = htmlInput.value; - if (text !== htmlInput.oldValue_) { - htmlInput.oldValue_ = text; - this.setValue(text); - this.validate_(); - } else if (goog.userAgent.WEBKIT) { - // Cursor key. Render the source block to show the caret moving. - // Chrome only (version 26, OS X). - this.sourceBlock_.render(); - } - this.resizeEditor_(); - Blockly.svgResize(this.sourceBlock_.workspace); -}; -/* - * Check to see if the contents of the editor validates. - * Style the editor accordingly. - * @private - */ -Blockly.FieldOID.prototype.validate_ = function() { - var valid = true; + /* + * Check to see if the contents of the editor validates. + * Style the editor accordingly. + * @private + */ + validate_() { + var valid = true; - goog.asserts.assertObject(Blockly.FieldOID.htmlInput_); + goog.asserts.assertObject(Blockly.FieldOID.htmlInput_); - var htmlInput = Blockly.FieldOID.htmlInput_; + var htmlInput = Blockly.FieldOID.htmlInput_; - if (htmlInput.value) { - Blockly.addClass_(htmlInput, 'blocklyInvalidInput'); - } else { - Blockly.removeClass_(htmlInput, 'blocklyInvalidInput'); + if (htmlInput.value) { + Blockly.addClass_(htmlInput, 'blocklyInvalidInput'); + } else { + Blockly.removeClass_(htmlInput, 'blocklyInvalidInput'); + } } -}; -/** - * Resize the editor and the underlying block to fit the text. - * @private - */ -Blockly.FieldOID.prototype.resizeEditor_ = function() { - var div = Blockly.WidgetDiv.DIV; - var bBox = this.fieldGroup_.getBBox(); - div.style.width = bBox.width * this.workspace_.scale + 'px'; - div.style.height = bBox.height * this.workspace_.scale + 'px'; - var xy = this.getAbsoluteXY_(); - // In RTL mode block fields and LTR input fields the left edge moves, - // whereas the right edge is fixed. Reposition the editor. - if (this.sourceBlock_.RTL) { - var borderBBox = this.getScaledBBox_(); - xy.x += borderBBox.width; - xy.x -= div.offsetWidth; - } - // Shift by a few pixels to line up exactly. - xy.y += 1; - if (goog.userAgent.GECKO && Blockly.WidgetDiv.DIV.style.top) { - // Firefox mis-reports the location of the border by a pixel - // once the WidgetDiv is moved into position. - xy.x -= 1; - xy.y -= 1; - } - if (goog.userAgent.WEBKIT) { - xy.y -= 3; + /** + * Resize the editor and the underlying block to fit the text. + * @private + */ + resizeEditor_() { + var div = Blockly.WidgetDiv.DIV; + var bBox = this.fieldGroup_.getBBox(); + div.style.width = bBox.width * this.workspace_.scale + 'px'; + div.style.height = bBox.height * this.workspace_.scale + 'px'; + var xy = this.getAbsoluteXY_(); + // In RTL mode block fields and LTR input fields the left edge moves, + // whereas the right edge is fixed. Reposition the editor. + if (this.sourceBlock_.RTL) { + var borderBBox = this.getScaledBBox_(); + xy.x += borderBBox.width; + xy.x -= div.offsetWidth; + } + // Shift by a few pixels to line up exactly. + xy.y += 1; + if (goog.userAgent.GECKO && Blockly.WidgetDiv.DIV.style.top) { + // Firefox mis-reports the location of the border by a pixel + // once the WidgetDiv is moved into position. + xy.x -= 1; + xy.y -= 1; + } + if (goog.userAgent.WEBKIT) { + xy.y -= 3; + } + div.style.left = xy.x + 'px'; + div.style.top = xy.y + 'px'; } - div.style.left = xy.x + 'px'; - div.style.top = xy.y + 'px'; -}; -/** - * Close the editor, save the results, and dispose of the editable - * text field's elements. - * @return {!Function} Closure to call on destruction of the WidgetDiv. - * @private - */ -Blockly.FieldOID.prototype.widgetDispose_ = function() { - var thisField = this; - return function() { - var htmlInput = Blockly.FieldOID.htmlInput_; - // Save the edit (if it validates). - var text = htmlInput.value; - thisField.setValue(text); - thisField.sourceBlock_.rendered && thisField.sourceBlock_.render(); - Blockly.unbindEvent_(htmlInput.onKeyDownWrapper_); - Blockly.unbindEvent_(htmlInput.onKeyUpWrapper_); - Blockly.unbindEvent_(htmlInput.onKeyPressWrapper_); - - thisField.workspace_.removeChangeListener( - htmlInput.onWorkspaceChangeWrapper_); + /** + * Close the editor, save the results, and dispose of the editable + * text field's elements. + * @return {!Function} Closure to call on destruction of the WidgetDiv. + * @private + */ + widgetDispose_() { + return () => { + var htmlInput = this.htmlInput_; + // Save the edit (if it validates). + var text = htmlInput.value; + this.setValue(text); + this.sourceBlock_.rendered && this.sourceBlock_.render(); + + Blockly.unbindEvent_(htmlInput.onKeyDownWrapper_); + Blockly.unbindEvent_(htmlInput.onKeyUpWrapper_); + Blockly.unbindEvent_(htmlInput.onKeyPressWrapper_); + + this.workspace_.removeChangeListener(htmlInput.onWorkspaceChangeWrapper_); + + this.htmlInput_ = null; + + // Delete style properties. + let style = Blockly.WidgetDiv.DIV.style; + style.width = 'auto'; + style.height = 'auto'; + style.fontSize = ''; + }; + } +} - Blockly.FieldOID.htmlInput_ = null; +Blockly.FieldOID = FieldOID; - // Delete style properties. - var style = Blockly.WidgetDiv.DIV.style; - style.width = 'auto'; - style.height = 'auto'; - style.fontSize = ''; - }; -}; +// Blockly.fieldRegistry.register('field_oid', FieldOID); diff --git a/admin/google-blockly/own/field_script.js b/admin/google-blockly/own/field_script.js index 1e277f157..0d0b1440e 100644 --- a/admin/google-blockly/own/field_script.js +++ b/admin/google-blockly/own/field_script.js @@ -63,7 +63,7 @@ Blockly.b64DecodeUnicode = function(text) { * @constructor */ Blockly.FieldScript = function(text) { - Blockly.FieldScript.superClass_.constructor.call(this, text); + //Blockly.FieldScript.superClass_.constructor.call(this, text); }; if (typeof goog !== 'undefined') { goog.inherits(Blockly.FieldScript, Blockly.Field); diff --git a/admin/static/js/98.7b6d008e.chunk.js b/admin/static/js/98.7b6d008e.chunk.js deleted file mode 100644 index 269a8ea4a..000000000 --- a/admin/static/js/98.7b6d008e.chunk.js +++ /dev/null @@ -1,2 +0,0 @@ -"use strict";(self.webpackChunkjs=self.webpackChunkjs||[]).push([[98],{52860:function(e,t,n){n.r(t);var a=n(4819),s=n.n(a),o=n(1250),i=n(11640),r=n(10937),l=n(58503),c=n(93433),u=n(15671),d=n(43144),p=n(60136),h=n(27277),g=n(55377),m=n(52721),f=n.n(m),v=(n(64630),n(43488)),y=n(10154),b=n(20889),k=n(75606),S=n(16856),x=n(97326),w=n(29439),C=n(88654),I=n(94721),j=n(43236),T=n(52411),A=n(57064),D=n(47055),N=n(49900),E=n(90977),O=n(52744),M=n(82626),z=n(4110),Z=n(98422),R=n(1067),F=n(60090),B=n(46401),P=n(56355),_=n(80007),L=n(51637),U=n(82460),W="data:image/png;base64,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",V="data:image/png;base64,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",J="data:image/png;base64,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",G="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAEAAAABACAIAAAAlC+aJAAABN2lDQ1BBZG9iZSBSR0IgKDE5OTgpAAAokZWPv0rDUBSHvxtFxaFWCOLgcCdRUGzVwYxJW4ogWKtDkq1JQ5ViEm6uf/oQjm4dXNx9AidHwUHxCXwDxamDQ4QMBYvf9J3fORzOAaNi152GUYbzWKt205Gu58vZF2aYAoBOmKV2q3UAECdxxBjf7wiA10277jTG+38yH6ZKAyNguxtlIYgK0L/SqQYxBMygn2oQD4CpTto1EE9AqZf7G1AKcv8ASsr1fBBfgNlzPR+MOcAMcl8BTB1da4Bakg7UWe9Uy6plWdLuJkEkjweZjs4zuR+HiUoT1dFRF8jvA2AxH2w3HblWtay99X/+PRHX82Vun0cIQCw9F1lBeKEuf1UYO5PrYsdwGQ7vYXpUZLs3cLcBC7dFtlqF8hY8Dn8AwMZP/fNTP8gAAAAJcEhZcwAADsQAAA7EAZUrDhsAAAdLaVRYdFhNTDpjb20uYWRvYmUueG1wAAAAAAA8P3hwYWNrZXQgYmVnaW49Iu+7vyIgaWQ9Ilc1TTBNcENlaGlIenJlU3pOVGN6a2M5ZCI/PiA8eDp4bXBtZXRhIHhtbG5zOng9ImFkb2JlOm5zOm1ldGEvIiB4OnhtcHRrPSJBZG9iZSBYTVAgQ29yZSA2LjAtYzAwMiA3OS4xNjQ0NjAsIDIwMjAvMDUvMTItMTY6MDQ6MTcgICAgICAgICI+IDxyZGY6UkRGIHhtbG5zOnJkZj0iaHR0cDovL3d3dy53My5vcmcvMTk5OS8wMi8yMi1yZGYtc3ludGF4LW5zIyI+IDxyZGY6RGVzY3JpcHRpb24gcmRmOmFib3V0PSIiIHhtbG5zOnhtcD0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wLyIgeG1sbnM6ZGM9Imh0dHA6Ly9wdXJsLm9yZy9kYy9lbGVtZW50cy8xLjEvIiB4bWxuczpwaG90b3Nob3A9Imh0dHA6Ly9ucy5hZG9iZS5jb20vcGhvdG9zaG9wLzEuMC8iIHhtbG5zOnhtcE1NPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvbW0vIiB4bWxuczpzdEV2dD0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL3NUeXBlL1Jlc291cmNlRXZlbnQjIiB4bXA6Q3JlYXRvclRvb2w9IkFkb2JlIFBob3Rvc2hvcCAyMS4yIChNYWNpbnRvc2gpIiB4bXA6Q3JlYXRlRGF0ZT0iMjAyMS0wMS0xMFQxMTowNDoxNiswMzowMCIgeG1wOk1vZGlmeURhdGU9IjIwMjEtMDItMjVUMDk6MzM6NTMrMDM6MDAiIHhtcDpNZXRhZGF0YURhdGU9IjIwMjEtMDItMjVUMDk6MzM6NTMrMDM6MDAiIGRjOmZvcm1hdD0iaW1hZ2UvcG5nIiBwaG90b3Nob3A6Q29sb3JNb2RlPSIzIiBwaG90b3Nob3A6SUNDUHJvZmlsZT0iQWRvYmUgUkdCICgxOTk4KSIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDowODYwNDk3ZS1kM2NmLTQ4NjktOTJkMy1lZDdhMWJhZjRjNDMiIHhtcE1NOkRvY3VtZW50SUQ9ImFkb2JlOmRvY2lkOnBob3Rvc2hvcDphZGNhYzk5MC01NDk0LTMxNGEtOGUzOS0yMjM3MGIzYTc1NjEiIHhtcE1NOk9yaWdpbmFsRG9jdW1lbnRJRD0ieG1wLmRpZDo3ZGJiZjliOC1lOThkLTQ1YmQtOWZlMS00Njk4NjZkODdiYmUiPiA8cGhvdG9zaG9wOlRleHRMYXllcnM+IDxyZGY6QmFnPiA8cmRmOmxpIHBob3Rvc2hvcDpMYXllck5hbWU9IlJVTEVTIiBwaG90b3Nob3A6TGF5ZXJUZXh0PSJSVUxFUyIvPiA8L3JkZjpCYWc+IDwvcGhvdG9zaG9wOlRleHRMYXllcnM+IDx4bXBNTTpIaXN0b3J5PiA8cmRmOlNlcT4gPHJkZjpsaSBzdEV2dDphY3Rpb249ImNyZWF0ZWQiIHN0RXZ0Omluc3RhbmNlSUQ9InhtcC5paWQ6N2RiYmY5YjgtZTk4ZC00NWJkLTlmZTEtNDY5ODY2ZDg3YmJlIiBzdEV2dDp3aGVuPSIyMDIxLTAxLTEwVDExOjA0OjE2KzAzOjAwIiBzdEV2dDpzb2Z0d2FyZUFnZW50PSJBZG9iZSBQaG90b3Nob3AgMjEuMiAoTWFjaW50b3NoKSIvPiA8cmRmOmxpIHN0RXZ0OmFjdGlvbj0ic2F2ZWQiIHN0RXZ0Omluc3RhbmNlSUQ9InhtcC5p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",H=n(5849),q=n(65661),Y=n(4899),K=n(77386),Q=n(5574),X=n(93006),$=n(45363),ee=n(84701),te=n(62861),ne=n(86711),ae=n(872),se=n(80184),oe=function(e){(0,p.Z)(n,e);var t=(0,h.Z)(n);function n(e){var a;return(0,u.Z)(this,n),(a=t.call(this,e)).handleCancel=function(){a.props.onClose()},a.handleOk=function(){a.props.onRename(a.oldId,a.state.id,a.state.name,a.state.instance),a.props.onClose()},a.handleChange=function(e){a.setState({name:e,id:a.getId(e)})},a.state={name:e.name,id:e.id,instance:e.instance||0},a.isShowInstance=!e.folder&&e.instances&&(e.instance||e.instances[0]||e.instances.length>1),a.prefix=a.getPrefix(e.id),a.oldId=e.id,a}return(0,d.Z)(n,[{key:"getPrefix",value:function(e){var t=(e||"").split(".");return t.pop(),t.join(".")}},{key:"getId",value:function(e){return e=(e||"").replace(/[\\/\][*,;'"`<>?\s]/g,"_"),this.prefix+"."+e}},{key:"componentWillReceiveProps",value:function(e){e.name!==this.props.name&&this.setState({name:e.name}),e.id!==this.props.id&&(this.prefix=this.getPrefix(e.id),this.setState({id:e.id}))}},{key:"render",value:function(){var e=this;return(0,se.jsxs)(Q.Z,{onClose:function(e,t){return!1},maxWidth:"md",fullWidth:!0,open:!0,"aria-labelledby":"confirmation-dialog-title",children:[(0,se.jsx)(q.Z,{id:"confirmation-dialog-title",children:k.I18n.t("Rename")}),(0,se.jsx)(Y.Z,{children:(0,se.jsxs)("form",{noValidate:!0,autoComplete:"off",children:[(0,se.jsx)(X.Z,{variant:"standard",style:{width:"100%"},id:"standard-name",autoFocus:!0,label:k.I18n.t("Name"),value:this.state.name,onKeyPress:function(t){"Enter"===t.key&&(t.preventDefault(),setTimeout((function(){return e.handleOk()}),200))},onChange:function(t){return e.handleChange(t.target.value)},margin:"normal"}),(0,se.jsx)(X.Z,{variant:"standard",id:"standard-name-id",style:{width:"100%"},label:k.I18n.t("ID"),value:this.state.id,disabled:!0,margin:"normal"}),this.isShowInstance&&(0,se.jsxs)($.Z,{variant:"standard",children:[(0,se.jsx)(te.Z,{htmlFor:"instance",children:k.I18n.t("Instance")}),(0,se.jsx)(ee.Z,{variant:"standard",value:this.state.instance,onChange:function(t){return e.setState({instance:parseInt(t.target.value,10)})},inputProps:{name:"instance",id:"instance"},children:this.props.instances.map((function(e){return(0,se.jsx)(M.Z,{value:e,children:e||"0"},e)}))})]})]})}),(0,se.jsxs)(K.Z,{children:[(0,se.jsx)(H.Z,{variant:"contained",onClick:this.handleOk,color:"primary",startIcon:(0,se.jsx)(ae.default,{}),children:k.I18n.t("Ok")}),(0,se.jsx)(H.Z,{color:"grey",variant:"contained",onClick:this.handleCancel,startIcon:(0,se.jsx)(ne.default,{}),children:k.I18n.t("Cancel")})]})]})}}]),n}(s().Component),ie=function(e){(0,p.Z)(n,e);var t=(0,h.Z)(n);function n(e){var a;return(0,u.Z)(this,n),(a=t.call(this,e)).handleCancel=function(){a.props.onClose(null)},a.handleOk=function(){a.props.onDelete(a.state.id),a.props.onClose(a.props.value)},a.state={name:e.name,id:e.id},a}return(0,d.Z)(n,[{key:"componentWillReceiveProps",value:function(e){e.name!==this.props.name&&this.setState({name:e.name}),e.id!==this.props.id&&this.setState({id:e.id})}},{key:"render",value:function(){return(0,se.jsxs)(Q.Z,{onClose:function(e,t){return!1},maxWidth:"md",open:!0,"aria-labelledby":"confirmation-dialog-title",children:[(0,se.jsx)(q.Z,{id:"confirmation-dialog-title",children:k.I18n.t("Are you sure?")}),(0,se.jsxs)(Y.Z,{children:[(0,se.jsx)(S.ZkW,{}),(0,se.jsx)("span",{style:{fontSize:14,fontWeight:"bold"},children:k.I18n.t("Delete %s",this.state.name)})]}),(0,se.jsxs)(K.Z,{children:[(0,se.jsx)(H.Z,{variant:"contained",onClick:this.handleOk,color:"primary",startIcon:(0,se.jsx)(ae.default,{}),children:k.I18n.t("Ok")}),(0,se.jsx)(H.Z,{color:"grey",variant:"contained",onClick:this.handleCancel,startIcon:(0,se.jsx)(ne.default,{}),children:k.I18n.t("Cancel")})]})]})}}]),n}(s().Component),re=(0,g.Z)((function(e){return{}}))(ie),le=n(88588),ce=n(81374),ue=n(77234),de=n(22492),pe=n(1867),he=function(e){(0,p.Z)(n,e);var t=(0,h.Z)(n);function n(){var e;(0,u.Z)(this,n);for(var a=arguments.length,s=new Array(a),o=0;o1),a}return(0,d.Z)(n,[{key:"getId",value:function(e){return e=(e=e||this.state.name||"").replace(/[\\/\][.*,;'"`<>?\s]/g,"_").trim().replace(/\.$/,"_"),(this.state?this.state.parent:this.props.parent)+"."+e}},{key:"componentWillReceiveProps",value:function(e){e.name!==this.props.name&&this.setState({name:e.name})}},{key:"render",value:function(){var e=this;return(0,se.jsxs)(Q.Z,{onClose:function(e,t){return!1},maxWidth:"md",fullWidth:!0,open:!0,"aria-labelledby":"confirmation-dialog-title",children:[(0,se.jsx)(q.Z,{id:"confirmation-dialog-title",children:this.props.title||k.I18n.t("Create new")}),(0,se.jsx)(Y.Z,{children:(0,se.jsxs)("form",{noValidate:!0,autoComplete:"off",children:[(0,se.jsx)(X.Z,{variant:"standard",style:{width:"100%"},id:"standard-name",autoFocus:!0,error:!!this.state.error,label:k.I18n.t("Name"),value:this.state.name,helperText:this.state.error,onKeyPress:function(t){"Enter"===t.key&&(t.preventDefault(),setTimeout((function(){return e.handleOk()}),200))},onChange:function(t){return e.handleChange(t.target.value)},margin:"normal"}),(0,se.jsxs)($.Z,{variant:"standard",style:{minWidth:100},children:[(0,se.jsx)(te.Z,{htmlFor:"parent",children:k.I18n.t("Folder")}),(0,se.jsx)(ee.Z,{variant:"standard",style:{width:"100%"},value:this.state.parent,onChange:function(t){return e.setState({parent:t.target.value})},inputProps:{name:"parent",id:"parent"},children:this.props.parents.map((function(t){var n=t.id.split(".");n.splice(0,2);var a=[],s="script.js";return n.forEach((function(t,n){s+="."+t;var o=e.props.parents.find((function(e){return e.id===s}));o?a.push(o.name):a.push(t)})),a.length||a.push(t.name),(0,se.jsx)(M.Z,{value:t.id,children:a.join(" / ")},t.id)}))})]}),(0,se.jsx)(X.Z,{variant:"standard",id:"standard-name-id",style:{width:"100%"},label:k.I18n.t("ID"),value:this.getId(),disabled:!0,margin:"normal"}),this.isShowInstance&&(0,se.jsxs)($.Z,{variant:"standard",children:[(0,se.jsx)(te.Z,{htmlFor:"instance",children:k.I18n.t("Instance")}),(0,se.jsx)(ee.Z,{variant:"standard",value:this.state.instance,onChange:function(t){return e.setState({instance:parseInt(t.target.value,10)})},inputProps:{name:"instance",id:"instance"},children:this.props.instances.map((function(e){return(0,se.jsx)(M.Z,{value:e,children:e||"0"},"instance"+e)}))})]})]})}),(0,se.jsxs)(K.Z,{children:[(0,se.jsx)(H.Z,{variant:"contained",onClick:this.handleOk,disabled:!!this.state.error,color:"primary",startIcon:(0,se.jsx)(ae.default,{}),children:k.I18n.t("Ok")}),(0,se.jsx)(H.Z,{color:"grey",variant:"contained",onClick:this.handleCancel,startIcon:(0,se.jsx)(ne.default,{}),children:k.I18n.t("Cancel")})]})]})}}]),n}(s().Component),fe=(0,g.Z)((function(e){return{}}))(me),ve=n(31701),ye=function(e){(0,p.Z)(n,e);var t=(0,h.Z)(n);function n(e){var a;return(0,u.Z)(this,n),(a=t.call(this,e)).handleOk=function(){a.props.onClose&&a.props.onClose()},console.log("Error created"),a}return(0,d.Z)(n,[{key:"render",value:function(){var e=this;return(0,se.jsxs)(Q.Z,{open:!0,maxWidth:"sm",fullWidth:!0,onClose:function(){return e.handleOk()},"aria-labelledby":"alert-dialog-title","aria-describedby":"alert-dialog-description",children:[(0,se.jsx)(q.Z,{className:this.props.classes.titleBackground,classes:{root:this.props.classes.titleColor},id:"alert-dialog-title",children:this.props.title||k.I18n.t("Error")}),(0,se.jsx)(Y.Z,{children:(0,se.jsx)(ve.Z,{id:"alert-dialog-description",children:this.props.text||k.I18n.t("Unknown error!")})}),(0,se.jsx)(K.Z,{children:(0,se.jsx)(H.Z,{variant:"contained",onClick:function(){return e.handleOk()},color:"primary",autoFocus:!0,startIcon:(0,se.jsx)(ae.default,{}),children:k.I18n.t("Ok")})})]})}}]),n}(s().Component),be=(0,g.Z)((function(e){return{titleBackground:{background:e.palette.error.main},titleColor:{color:e.palette.error.contrastText,"&>h2":{color:e.palette.error.contrastText}}}}))(ye),ke=n(81153),Se=n(97808),xe=n(29823),we=function(e){(0,p.Z)(n,e);var t=(0,h.Z)(n);function n(e){var a;return(0,u.Z)(this,n),(a=t.call(this,e)).handleOk=function(){if(a.state.instances.find((function(e){return e.id===a.state.adapterToDebug})).enabled)return a.props.socket.getObject("system.adapter."+a.state.adapterToDebug).then((function(e){e.common.enabled=!1,a.props.socket.setObject(e._id,e).then((function(){return a.props.onDebug(a.state.jsInstance,a.state.adapterToDebug)}))}));a.props.onDebug(a.state.jsInstance,a.state.adapterToDebug)},a.state={instances:[],filter:window.localStorage.getItem("javascript.debug.filter")||"",showAskForStop:!1,jsInstance:window.localStorage.getItem("javascript.debug.instance")||"",jsInstanceHost:"",adapterToDebug:window.localStorage.getItem("javascript.debug.adapter")||""},a}return(0,d.Z)(n,[{key:"componentDidMount",value:function(){var e=this;this.props.socket.getAdapterInstances().then((function(t){(t=t.filter((function(e){var t;return e&&!(null!==(t=e.common)&&void 0!==t&&t.onlyWWW)})).map((function(e){var t,n,a,s=e._id.replace(/^system\.adapter\./,""),o=s.split("."),i=(0,w.Z)(o,1)[0];return{id:s,enabled:null===(t=e.common)||void 0===t?void 0:t.enabled,host:null===(n=e.common)||void 0===n?void 0:n.host,icon:null!==(a=e.common)&&void 0!==a&&a.icon?"../../adapter/".concat(i,"/").concat(e.common.icon):""}}))).sort((function(e,t){return e.id>t.id?1:e.id1?i.join("."):null,instance:o.common.engine?parseInt(o.common.engine.split(".").pop(),10)||0:null})}do{t=!1,n.forEach((function(e){if(e.parent&&!n.find((function(t){return t.id===e.parent}))){var a=e.parent.split(".");a.pop(),n.push({id:e.parent,title:e.parent.split(".").pop(),depth:a.length-1,type:"folder",parent:a.length>1?a.join("."):null}),t=!0}}))}while(t);return n.sort((function(e,t){var n=e.id.toLowerCase(),a=t.id.toLowerCase();return"folder"===e.type&&"folder"!==t.type?-1:"folder"===t.type&&"folder"!==e.type||n>a?1:nEe?(0,se.jsx)(E.Z,{className:k.Utils.clsx(this.props.debugMode&&this.props.classes.iconButtonsDisabled),title:k.I18n.t("Delete script"),disabled:e.id===Ne||e.id===De||this.props.debugMode,onClick:function(t){return n.onDelete(e,t)},size:"medium",children:(0,se.jsx)(S.ZkW,{})},"delete"):null,(0,se.jsx)(E.Z,{className:k.Utils.clsx(this.props.debugMode&&this.props.classes.iconButtonsDisabled),disabled:this.props.debugMode,title:k.I18n.t("Edit script or just double click"),onClick:function(t){return n.onEdit(e,t)},size:"medium",children:(0,se.jsx)(S.jzb,{})},"openInEdit")]}return this.state.width>Ee?e.id===Ae||e.id===De||e.id===Ne||t&&t.length?null:(0,se.jsx)(E.Z,{className:k.Utils.clsx(this.props.debugMode&&this.props.classes.iconButtonsDisabled),title:k.I18n.t("Delete folder"),disabled:e.id===Ne||e.id===De||this.props.debugMode,onClick:function(t){return n.onDelete(e,t)},size:"medium",children:(0,se.jsx)(S.ZkW,{})},"delete"):void 0}},{key:"onDelete",value:function(e,t){var n=this;return t&&t.stopPropagation(),new Promise((function(t){"object"!==typeof e?n.setState({deleting:e}):n.setState({deleting:e.id})}))}},{key:"onEdit",value:function(e,t){this.onClick(e,t),this.props.onEdit&&this.props.onEdit(e.id)}},{key:"getTextStyle",value:function(e){return this.state.reorder||"folder"===e.type?{whiteSpace:"nowrap",padding:"0 16px 0 0"}:{width:"calc(100% - ".concat(this.state.width>Ee?185:137,"px)"),overflow:"hidden",whiteSpace:"nowrap",flex:"none",padding:"0 16px 0 0"}}},{key:"onClick",value:function(e,t){if(t&&t.stopPropagation(),!this.state.reorder&&e){var n=this.ensureSelectedIsVisible(e),a={selected:e.id};n&&(a.expanded=n),this.setState(a),window.localStorage&&window.localStorage.setItem("SideMenu.selected",e.id)}}},{key:"onDblClick",value:function(e,t){t&&t.stopPropagation(),this.state.reorder||("folder"===e.type?this.onToggle(e.id):this.onEdit(e))}},{key:"isFilteredOut",value:function(e){return!(!e.filtered||e.filteredPartly)||(!(!this.state.typeFilter||"folder"===e.type||e.type===this.state.typeFilter)||(!(!this.state.statusFilter||"folder"===e.type||!("running"===this.state.statusFilter&&!e.enabled||"paused"===this.state.statusFilter&&e.enabled)&&("problems"!==this.state.statusFilter||e.enabled&&-1!==this.state.problems.indexOf(e.id)))||e.id===Ne&&!this.state.expertMode))}},{key:"renderListItem",value:function(e,t,n){var a=this;if(e.id===Ae&&!this.state.reorder)return null;var s=16*(this.state.reorder?e.depth:e.depth-1),o=e.title;if(this.state.searchText){var i=o.toLowerCase().indexOf(this.state.searchText.toLowerCase());-1!==i&&(o=[(0,se.jsx)("span",{children:o.substring(0,i)},"first"),(0,se.jsx)("span",{style:{color:"orange"},children:o.substring(i,i+this.state.searchText.length)},"second"),(0,se.jsx)("span",{children:o.substring(i+this.state.searchText.length)},"third")])}this.state.isAllZeroInstances||"folder"===e.type||(o=[(0,se.jsxs)("span",{title:k.I18n.t("Instance"),className:this.props.classes.instances,children:["[",e.instance,"] "]},"instance"),(0,se.jsx)("span",{children:o},"title")]);var r=this.state.reorder&&!this.props.debugMode,l=Object.assign({marginLeft:s,cursor:"folder"===e.type&&r?"default":"inherit",width:"calc(100% - ".concat(s,"px)")},e.id!==this.state.selected||r?{}:Oe);r||(l.opacity=e.filteredPartly?.5:1),e.id===Ne&&e.id!==this.state.selected&&(l.color="#00a200");var c=e.id===Ae;!c&&t&&(c=this.state.expanded.includes(e.id));var u,d={};e.id===Ne?d.color="#356956":e.id===De&&(d.color="#4899e1"),u="folder"===e.type?k.Utils.clsx(this.props.classes.folderIcon,r?this.props.classes.folderIconReorder:this.props.classes.folderIconNoReorder):k.Utils.clsx(this.props.classes.scriptIcon,r?this.props.classes.scriptIconReorder:this.props.classes.scriptIconNoReorder);var p=null;return(n&&n.length||t&&t.length)&&(p=(0,se.jsx)("span",{className:this.props.classes.childrenCount,children:n&&n.length!==t.length?"".concat(n.length,"(").concat(t.length,")"):t.length})),(0,se.jsxs)(T.ZP,{style:l,className:k.Utils.clsx("folder"===e.type?this.props.classes.folder:this.props.classes.script,r&&"folder"===e.type&&"folder-reorder",r&&"folder"!==e.type&&"script-reorder",r&&this.props.classes.reorder,r&&"folder"!==e.type&&this.props.classes.scriptReorder,r&&"folder"===e.type&&this.props.classes.folderReorder),onClick:function(t){return a.onClick(e,t)},onDoubleClick:function(t){return a.onDblClick(e,t)},children:[(0,se.jsx)(A.Z,{classes:{root:this.props.classes.listItemIcon},children:"folder"===e.type?r||c?(0,se.jsx)(P.FaFolderOpen,{className:u,style:d,onClick:function(t){return!r&&a.onToggle(e.id,t)}}):(0,se.jsx)(P.FaFolder,{className:u,style:d,onClick:function(t){return!r&&a.onToggle(e.id,t)}}):(0,se.jsx)("img",{className:u,alt:e.type,src:Me[e.type]||Me.def})}),(0,se.jsx)(N.Z,{classes:{primary:e.id!==this.state.selected||r?void 0:this.props.classes.selected},style:this.getTextStyle(e),primary:(0,se.jsxs)("span",{children:[o,p]})}),(0,se.jsx)(D.Z,{children:this.renderItemButtonsOnEnd(e,t)})]},e.id)}},{key:"onDragFinish",value:function(e,t){var n="".concat(t,".").concat(e.split(".").pop());n!==e&&(this.state.listItems.find((function(e){return e.id===n}))&&(n+="_".concat(k.I18n.t("copy"))),this.props.onRename&&this.props.onRename(e,n))}},{key:"renderOneItem",value:function(e,t){var n=this,a=(this.state.statusFilter||this.state.typeFilter)&&e.filter((function(e){return e.parent===t.id&&!n.isFilteredOut(e)})),s=e.filter((function(e){return e.parent===t.id}));if(!this.isFilteredOut(t)&&("folder"!==t.type||!this.state.statusFilter&&!this.state.typeFilter||a.length)){var o,i=this.state.reorder&&!this.props.debugMode,r=this.renderListItem(t,s,a),l=[];return s&&(i||this.state.expanded.includes(t.id)||t.id===Ae)&&(o=s.map((function(t){return n.renderOneItem(e,t)}))),i?"folder"===t.type?l.push((0,se.jsxs)(Re,{onDrop:function(e){return n.onDragFinish(e.name,t.id)},children:[(0,se.jsx)(Fe,{name:t.id,children:r},"draggable_".concat(t.id)),o||null]},"droppable_".concat(t.id))):l.push((0,se.jsxs)(Fe,{name:t.id,children:[r,o||null]},"draggable_".concat(t.id))):(l.push(r),o&&o.forEach((function(e){return l.push(e)}))),l}}},{key:"renderAllItems",value:function(e){var t=this,n=e.filter((function(e){return!e.parent})).map((function(n){return t.renderOneItem(e,n)}));return(0,se.jsx)(j.Z,{dense:!0,disablePadding:!0,className:this.props.classes.mainList,children:n})}},{key:"onAddNew",value:function(e){var t=this;e&&e.stopPropagation();for(var n=this.state.listItems.find((function(e){return e.id===t.state.selected})),a=Ae;n&&"folder"!==n.type;)n=this.state.listItems[n.parentIndex];n&&(a=n.id),this.parent=a,this.setState({choosingType:!0})}},{key:"onCopy",value:function(e,t){e&&e.stopPropagation();for(var n=this.state.listItems.find((function(e){return e.id===t})),a=Ae;n&&"folder"!==n.type;)n=this.state.listItems[n.parentIndex];n&&(a=n.id),this.parent=a,this.setState({copingScript:t})}},{key:"onAddNewFolder",value:function(e){var t=this;e&&e.stopPropagation();for(var n=this.state.listItems.find((function(e){return e.id===t.state.selected})),a=Ae;n&&"folder"!==n.type;)n=this.state.listItems[n.parentIndex];n&&(a=n.id),this.parent=a,this.setState({creatingFolder:!0})}},{key:"onRename",value:function(e){e&&e.stopPropagation(),this.setState({renaming:this.state.selected})}},{key:"getUniqueName",value:function(e){var t=this,n=1,a="".concat(k.I18n.t("Script")," ");if(e){var s=ze(e,this.props.scripts[e]),o=s.match(/\d+$/);o?(a=s.replace(/\d+$/,""),n=parseInt(o[0],10)+1):a=s}for(;this.state.listItems.find((function(e){return e.id==="".concat(t.parent,".").concat(a.replace(/\.\s/g,"_")).concat(n)}));)n++;return a+n}},{key:"getUniqueFolderName",value:function(){for(var e=this,t=1;this.state.listItems.find((function(n){return n.id==="".concat(e.parent,".").concat(k.I18n.t("Folder"),"_").concat(t)}));)t++;return"".concat(k.I18n.t("Folder")," ").concat(t)}},{key:"onCloseMenu",value:function(e){this.setState({menuOpened:!1,menuAnchorEl:null,menuAnchorFilterEl:null},e)}},{key:"getFilterBadge",value:function(){return[!0===this.state.statusFilter&&(0,se.jsx)(S.Nhx,{className:this.props.classes.filterIcon,style:{color:Ie}}),!1===this.state.statusFilter&&(0,se.jsx)(S.hPq,{className:this.props.classes.filterIcon,style:{color:Te}}),"Blockly"===this.state.typeFilter&&"Bl","Javascript/js"===this.state.typeFilter&&"JS","TypeScript/ts"===this.state.typeFilter&&"TS"]}},{key:"getMainMenu",value:function(e,t){var n=this;return(0,se.jsxs)(O.Z,{id:"long-menu",anchorEl:this.state.menuAnchorEl,open:this.state.menuOpened,onClose:function(){return n.setState({menuOpened:!1,menuAnchorEl:null})},PaperProps:{style:{maxHeight:360}},children:[this.state.width<=Ee?(0,se.jsxs)(M.Z,{disabled:this.props.debugMode||!this.state.selected||this.state.selected===Ne||this.state.selected===De||e&&e.length,onClick:function(e){e.stopPropagation(),e.preventDefault(),n.state.listItems.find((function(e){return e.parent===n.state.selected}))?n.showError(k.I18n.t("Cannot delete non empty item!")):n.setState({menuOpened:!1,menuAnchorEl:null},(function(){return n.onDelete(n.state.selected).then((function(){}))}))},children:[(0,se.jsx)(S.ZkW,{className:this.props.classes.iconDropdownMenu,style:{color:"red"}}),k.I18n.t("Delete")]},"delete"):null,(0,se.jsxs)(M.Z,{disabled:this.props.debugMode,selected:this.state.expertMode,onClick:function(e){e.stopPropagation(),e.preventDefault(),n.onCloseMenu((function(){return n.props.onExpertModeChange&&n.props.onExpertModeChange(!n.state.expertMode)}))},children:[(0,se.jsx)(S.Bjz,{className:this.props.classes.iconDropdownMenu,style:{color:this.state.expertMode?"orange":"inherit"}}),k.I18n.t("Expert mode")]},"expertMode"),this.props.onExport&&(0,se.jsxs)(M.Z,{onClick:function(e){e.stopPropagation(),e.preventDefault(),n.onCloseMenu((function(){return n.props.onExport()}))},children:[(0,se.jsx)(P.FaFileExport,{className:this.props.classes.iconDropdownMenu}),k.I18n.t("Export all scripts")]},"exportAll"),this.props.onImport&&(0,se.jsxs)(M.Z,{disabled:this.props.debugMode,onClick:function(e){e.stopPropagation(),e.preventDefault(),n.onCloseMenu((function(){return n.props.onImport()}))},children:[(0,se.jsx)(P.FaFileImport,{className:this.props.classes.iconDropdownMenu}),k.I18n.t("Import scripts")]},"import"),this.props.onThemeChange&&(0,se.jsxs)(M.Z,{onClick:function(){return n.onCloseMenu((function(){var e="dark"===n.state.themeName?"blue":"blue"===n.state.themeName?"colored":"colored"===n.state.themeName?"light":"light"===n.state.themeName?"dark":"colored";n.props.onThemeChange(e)}))},children:[(0,se.jsx)(S.Zox,{className:this.props.classes.iconDropdownMenu}),k.I18n.t('Change theme (actual "%s")',this.state.themeName)]},"dark"),this.props.onAddNew&&(0,se.jsxs)(M.Z,{disabled:!this.state.selected||!t||"folder"===t.type,onClick:function(e){var t=n.state.selected;n.onCloseMenu((function(){return n.onCopy(e,t)}))},children:[(0,se.jsx)(S.Fqs,{className:this.props.classes.iconDropdownMenu}),k.I18n.t("Copy script")]},"copy"),this.state.expertMode&&(0,se.jsxs)(M.Z,{disabled:this.props.debugMode,onClick:function(e){e.stopPropagation(),e.preventDefault(),n.onCloseMenu((function(){return n.setState({showAdapterDebug:!0})}))},children:[(0,se.jsx)(S.qXL,{className:this.props.classes.iconDropdownMenu}),k.I18n.t("Debug instance")]},"debugInstance")]},"menu")}},{key:"getToolbarButtons",value:function(){var e=this,t=[],n=this.props.classes,a=this.state.reorder&&!this.props.debugMode;if(this.state.searchMode&&!this.props.debugMode)t.push((0,se.jsx)(z.Z,{value:this.state.searchText,className:n.toolbarSearch,ref:this.inputRef,autoFocus:!0,placeholder:k.I18n.t("Search..."),onChange:function(t){e.setState({searchText:t.target.value}),e.filterTimer&&clearTimeout(e.filterTimer),e.filterTimer=setTimeout((function(){e.filterTimer=null,e.filterList(!0),e.props.onSearch&&e.props.onSearch(e.state.searchText)}),400)}},"searchInput")),t.push((0,se.jsx)(E.Z,{className:n.toolbarButtons,style:{float:"right"},title:k.I18n.t("End search mode"),onClick:function(t){t.stopPropagation(),e.filterList(!1,(function(){return e.props.onSearch&&e.props.onSearch(e.state.searchText)}))},size:"medium",children:(0,se.jsx)(S.w7s,{})},"disableSearch")),this.state.searchText&&t.push((0,se.jsx)(E.Z,{mini:"true",title:k.I18n.t("Clear search input"),className:n.toolbarButtons,style:{marginTop:7,float:"right"},onClick:function(t){t.stopPropagation(),e.setState({searchText:""},(function(){e.filterList(!0),e.props.onSearch&&e.props.onSearch(e.state.searchText)}))},size:"medium",children:(0,se.jsx)(S.FU5,{fontSize:"small"})},"cleanSearch"));else{if(!a){t.push((0,se.jsx)(E.Z,{"aria-label":"More","aria-owns":this.state.menuOpened?"long-menu":void 0,title:k.I18n.t("Menu"),"aria-haspopup":"true",onClick:function(t){t.stopPropagation(),t.preventDefault(),e.setState({menuOpened:!0,menuAnchorEl:t.currentTarget})},size:"medium",children:(0,se.jsx)(S.rgS,{})},"menuButton"));var s,o=this.state.listItems.find((function(t){return t.id===e.state.selected}));o&&this.state.width<=Ee&&"folder"===o.type&&(s=this.state.listItems.filter((function(t){return t.parent===e.state.selected}))),t.push(this.getMainMenu(s,o)),t.push((0,se.jsx)(E.Z,{disabled:this.props.debugMode,title:k.I18n.t("Create new script"),className:k.Utils.clsx(n.toolbarButtons,this.props.debugMode&&n.iconButtonsDisabled),style:{color:a?"red":"inherit"},onClick:function(t){return e.onAddNew(t)},size:"medium",children:(0,se.jsx)(S.x06,{})},"new-script")),t.push((0,se.jsx)(E.Z,{disabled:this.props.debugMode,title:k.I18n.t("Create new folder"),className:k.Utils.clsx(n.toolbarButtons,this.props.debugMode&&n.iconButtonsDisabled),style:{color:a?"red":"inherit"},onClick:function(){return e.onAddNewFolder()},size:"medium",children:(0,se.jsx)(S.Db7,{})},"new-folder"))}t.push((0,se.jsx)(E.Z,{disabled:a||this.props.debugMode,className:k.Utils.clsx(n.toolbarButtons,this.props.debugMode&&n.iconButtonsDisabled),title:k.I18n.t("Search in scripts"),style:{float:"right",opacity:this.props.debugMode?.5:a?0:1},onClick:function(t){t.stopPropagation(),e.setState({searchMode:!0})},size:"medium",children:(0,se.jsx)(S.vU7,{})},"search")),t.push((0,se.jsx)(E.Z,{disabled:this.props.debugMode,title:k.I18n.t("Reorder scripts in folders"),className:k.Utils.clsx(n.toolbarButtons,this.props.debugMode&&n.iconButtonsDisabled),style:{color:a?"red":"inherit",float:"right"},onClick:function(t){t.stopPropagation(),e.setState({reorder:!e.state.reorder})},size:"medium",children:(0,se.jsx)(S.Llt,{})},"reorder")),!a&&this.state.selected&&this.state.selected!==Ne&&this.state.selected!==De&&t.push((0,se.jsx)(E.Z,{className:k.Utils.clsx(n.toolbarButtons,this.props.debugMode&&n.iconButtonsDisabled),disabled:this.props.debugMode,title:k.I18n.t("Rename"),onClick:function(t){return e.onRename(t)},size:"medium",children:(0,se.jsx)(S.zmo,{})},"rename"))}return t}},{key:"getFolders",value:function(){var e=[{id:Ae,name:k.I18n.t("Root folder")}];return this.state.listItems.forEach((function(t){return"folder"===t.type&&e.push({id:t.id,name:t.title})})),e}},{key:"onCollapseAll",value:function(){this.setState({expanded:[]}),this.saveExpanded([])}},{key:"onExpandAll",value:function(){var e=this,t=[];this.state.listItems.forEach((function(n){return e.state.listItems.find((function(e){return e.parent===n.id}))&&t.push(n.id)})),this.setState({expanded:t}),this.saveExpanded(t)}},{key:"getBottomButtons",value:function(){var e=this;return this.state.reorder||this.props.debugMode?null:[(0,se.jsx)(S.hPq,{className:this.props.classes.footerButtons,style:{color:Ie,opacity:"running"===this.state.statusFilter?1:.3,background:"running"===this.state.statusFilter?"gray":"inherit"},title:k.I18n.t("Show only running scripts"),onClick:function(t){t.stopPropagation(),t.preventDefault();var n="running"===e.state.statusFilter?"":"running";window.localStorage&&window.localStorage.setItem("SideMenu.statusFilter",n),e.setState({statusFilter:n})}},"filterByRunning"),(0,se.jsx)(S.Nhx,{title:k.I18n.t("Show only paused scripts"),className:this.props.classes.footerButtons,style:{color:Te,opacity:"paused"===this.state.statusFilter?1:.3,background:"paused"===this.state.statusFilter?"gray":"inherit"},onClick:function(){var t="paused"===e.state.statusFilter?"":"paused";window.localStorage&&window.localStorage.setItem("SideMenu.statusFilter",t),e.setState({statusFilter:t})}},"filterByPaused"),(0,se.jsx)(S.hPq,{title:k.I18n.t("Show only scripts with problems"),className:this.props.classes.footerButtons,style:{color:je,opacity:"problems"===this.state.statusFilter?1:.3,background:"problems"===this.state.statusFilter?"gray":"inherit"},onClick:function(){var t="problems"===e.state.statusFilter?"":"problems";window.localStorage&&window.localStorage.setItem("SideMenu.statusFilter",t),e.setState({statusFilter:t})}},"filterByProblem"),(0,se.jsx)("img",{className:this.props.classes.footerButtons,alt:"Blockly",style:{opacity:"Blockly"===this.state.typeFilter?1:.3,background:"Blockly"===this.state.typeFilter?"gray":"inherit"},src:Me.Blockly||Me.def,onClick:function(){var t="Blockly"===e.state.typeFilter?"":"Blockly";window.localStorage&&window.localStorage.setItem("SideMenu.typeFilter",t),e.setState({typeFilter:t})}},"filterBlockly"),(0,se.jsx)("img",{className:this.props.classes.footerButtons,alt:"Javascript",style:{opacity:"Javascript/js"===this.state.typeFilter?1:.3,background:"Javascript/js"===this.state.typeFilter?"gray":"inherit"},src:Me["Javascript/js"]||Me.def,onClick:function(){var t="Javascript/js"===e.state.typeFilter?"":"Javascript/js";window.localStorage&&window.localStorage.setItem("SideMenu.typeFilter",t),e.setState({typeFilter:t})}},"filterJS"),(0,se.jsx)("img",{className:this.props.classes.footerButtons,alt:"TypeScript",style:{opacity:"TypeScript/ts"===this.state.typeFilter?1:.3,background:"TypeScript/ts"===this.state.typeFilter?"gray":"inherit"},src:Me["TypeScript/ts"]||Me.def,onClick:function(){var t="TypeScript/ts"===e.state.typeFilter?"":"TypeScript/ts";window.localStorage&&window.localStorage.setItem("SideMenu.typeFilter",t),e.setState({typeFilter:t})}},"filterTS"),(0,se.jsx)("img",{className:this.props.classes.footerButtons,alt:"Rules",style:{opacity:"Rules"===this.state.typeFilter?1:.3,background:"Rules"===this.state.typeFilter?"gray":"inherit"},src:Me.Rules||Me.def,onClick:function(t){var n="Rules"===e.state.typeFilter?"":"Rules";window.localStorage&&window.localStorage.setItem("SideMenu.typeFilter",n),e.setState({typeFilter:n})}},"filterRules"),(0,se.jsx)(S.bPX,{className:"".concat(this.props.classes.footerButtons," ").concat(this.props.classes.footerButtonsRight),title:k.I18n.t("Expand all"),onClick:function(){return e.onExpandAll()}},"expandAll"),this.state.expanded.length?(0,se.jsx)(S.SPo,{className:"".concat(this.props.classes.footerButtons," ").concat(this.props.classes.footerButtonsRight),title:k.I18n.t("Collapse all"),onClick:function(){return e.onCollapseAll()}},"collapseAll"):null]}},{key:"getAdapterDebugDialog",value:function(){var e=this;if(this.state.showAdapterDebug)return(0,se.jsx)(Ce,{socket:this.props.socket,onClose:function(){return e.setState({showAdapterDebug:!1})},onDebug:function(t,n){return e.setState({showAdapterDebug:!1},(function(){return e.props.onDebugInstance({instance:t,adapter:n})}))}})}},{key:"render",value:function(){var e=this,t=this.props.classes,n=this.state.renaming&&this.state.listItems.find((function(t){return t.id===e.state.renaming})),a=this.state.copingScript&&this.props.scripts[this.state.copingScript];return[(0,se.jsxs)(C.ZP,{variant:"permanent",className:t.menu,classes:{paper:t.drawerPaper},anchor:"left",onClick:function(){return e.onClick({id:""})},children:[(0,se.jsx)("div",{className:t.toolbar,children:this.getToolbarButtons()}),(0,se.jsx)(I.Z,{}),(0,se.jsx)(F.W,{backend:B.PD,children:(0,se.jsx)("div",{className:t.innerMenu,children:this.renderAllItems(this.state.listItems)})}),(0,se.jsx)(I.Z,{}),(0,se.jsx)("div",{className:t.footer,children:this.getBottomButtons()})]},"drawer"),n?(0,se.jsx)(oe,{name:n.title,title:k.I18n.t("Rename"),id:this.state.renaming,folder:"folder"===n.type,instance:n.instance,instances:this.props.instances,onClose:function(){return e.setState({renaming:!1})},onRename:function(t,n,a,s){return e.props.onRename&&e.props.onRename(t,n,a,s)}},"dialog-rename"):null,this.state.deleting?(0,se.jsx)(re,{name:this.state.listItems.find((function(t){return t.id===e.state.deleting})).title,id:this.state.deleting,onClose:function(){return e.setState({deleting:!1})},onDelete:function(t){return e.props.onDelete&&e.props.onDelete(t)}},"dialog-delete"):null,this.state.choosingType?(0,se.jsx)(ge,{onClose:function(t){e.setState({choosingType:!1}),t&&e.setState({creatingScript:t})}},"dialog-script-type"):null,this.state.creatingScript?(0,se.jsx)(fe,{onClose:function(){return e.setState({creatingScript:!1})},title:k.I18n.t("Create new script"),name:this.getUniqueName(),parents:this.getFolders(),folder:!1,existingItems:this.state.listItems.map((function(e){return e.id})),instance:this.props.instances[0]||0,instances:this.props.instances,type:this.state.creatingScript,parent:this.parent,onAdd:function(t,n,a,s){return e.props.onAddNew&&e.props.onAddNew(t,n,!1,a,s)}},"dialog-new-script"):null,this.state.copingScript?(0,se.jsx)(fe,{onClose:function(){return e.setState({copingScript:""})},title:k.I18n.t("Copy script"),name:this.getUniqueName(this.state.copingScript),parents:this.getFolders(),folder:!1,instance:parseInt(a&&a.common&&a.common.engine&&a.common.engine.split(".").pop()||0,10),instances:this.props.instances,type:a&&a.common&&a.common.engineType||"Javascript/js",parent:this.parent,onAdd:function(t,n,a,s){var o=e.state.copingScript&&e.props.scripts[e.state.copingScript];o&&o.common&&(o.common.enabled=!1),e.props.onAddNew&&e.props.onAddNew(t,n,!1,a,s,o&&o.common&&o.common.source)}},"dialog-copy-script"):null,this.state.creatingFolder?(0,se.jsx)(fe,{onClose:function(){return e.setState({creatingFolder:!1})},title:k.I18n.t("Create new folder"),parents:this.getFolders(),name:this.getUniqueFolderName(),parent:this.parent,onAdd:function(t,n){return e.props.onAddNew&&e.props.onAddNew(t,n,!0)}},"dialog-new-folder"):null,this.state.errorText?(0,se.jsx)(be,{onClose:function(){return e.setState({errorText:""})},text:this.state.errorText}):null,this.getAdapterDebugDialog()]}}],[{key:"filterListStatic",value:function(e,t,n,a,s){t=JSON.parse(JSON.stringify(t));var o=!1,i={listItems:t};if(!1!==e&&n&&a){var r=a.toLowerCase();if(t.forEach((function(e){var t=e.title.toLowerCase();e.filteredPartly=!1;var n=-1!==t.indexOf(r);if(!n&&s&&s[e.id]&&s[e.id].common&&s[e.id].common.source)if("Blockly"===s[e.id].common.engineType){var a=s[e.id].common.source.lastIndexOf("//");n=-1!==s[e.id].common.source.substring(0,a).toLowerCase().indexOf(r)}else n=-1!==s[e.id].common.source.toLowerCase().indexOf(r);n?e.filtered&&(e.filtered=!1,o=!0):e.filtered||(e.filtered=!0,o=!0)})),o)for(var l=t.length-1;l>=0;l--){var c=t[l];if(!c.filtered||c.filteredPartly){var u=c;do{u.parent&&t[u.parentIndex]&&(o=!0,t[u.parentIndex].filteredPartly=!0),u=u.parent&&t[u.parentIndex]?t[u.parentIndex]:null}while(u)}}}else t.forEach((function(e){(e.filtered||e.filteredPartly)&&(e.filtered=!1,e.filteredPartly=!1,o=!0)})),!1===e&&(i.searchText="",i.searchMode=!1,o=!0);return o?i:null}},{key:"ensureSelectedIsVisibleStatic",value:function(e,t,n){t=JSON.parse(JSON.stringify(t));var a=!1,s="object"===typeof e?e:n.find((function(t){return t.id===e}));do{(s=s&&s.parent&&n.find((function(e){return e.id===s.parent})))&&-1===t.indexOf(s.id)&&(t.push(s.id),a=!0)}while(s);return a&&t}},{key:"getDerivedStateFromProps",value:function(e,t){var a={},s=!1;if(t.expertMode!==e.expertMode&&(s=!0,a.expertMode=e.expertMode),t.scriptsHash!==e.scriptsHash&&e.scripts){var o=Ze(e.scripts||{});if(a.listItems=o,t.searchText){var i=n.filterListStatic(!0,o,t.searchMode,t.searchText,e.scripts);i&&Object.assign(a,i)}var r=n.getIsAllZeroInstancesStatic(o,e.instances||[]),l=n.ensureSelectedIsVisibleStatic(t.selected,t.expanded,t.listItems);a.isAllZeroInstances=r,l&&(a.expanded=l),s=!0}if(t.width!==e.width&&(s=!0,a.width=e.width),t.themeName!==e.themeName&&(s=!0,a.themeName=e.themeName),e.selectId&&t.selected!==e.selectId){var c=t.listItems.find((function(t){return t.id===e.selectId}));if(!t.reorder&&c){var u=n.ensureSelectedIsVisibleStatic(c,t.expanded,t.listItems);a.selected=c.id,u&&(a.expanded=u),s=!0,window.localStorage&&window.localStorage.setItem("SideMenu.selected",c.id)}}return s?a:null}},{key:"getIsAllZeroInstancesStatic",value:function(e,t){var n=!t[0]&&t.length<=1;return n&&e.forEach((function(e){"folder"!==e.type&&0!==e.instance&&(n=!1)})),n}}]),n}(s().Component),Pe=(0,g.Z)((function(e){return{drawerPaper:{position:"relative",width:"100%",height:"100%",overflow:"hidden"},toolbar:{height:e.toolbar.height},toolbarButtons:{color:"dark"===e.palette.mode?"white !important":"black !important"},iconButtonsDisabled:{filter:"grayscale(100%)",opacity:.5},toolbarSearch:{width:"calc(100% - 105px)",lineHeight:"34px",marginLeft:5},iconButtons:{width:32,height:32,padding:2},iconDropdownMenu:{paddingRight:5},iconOnTheRight:{position:"absolute",right:10,top:"calc(50% - 8px)"},menu:{width:"100%",height:"100%"},innerMenu:{width:"100%",height:"calc(100% - 76px)",overflowX:"hidden",overflowY:"auto"},listItemIcon:{minWidth:32},filterIcon:{width:18,height:18,borderRadius:2,marginRight:5},scriptIcon:{width:18,height:18,borderRadius:2,marginTop:4,marginBottom:4,marginLeft:8,marginRight:4},folder:{cursor:"pointer",padding:0,userSelect:"none"},folderReorder:{opacity:.3,transitionDuration:"0.5s",transitionProperty:"opacity"},folderIcon:{width:20,height:20},folderIconReorder:{paddingTop:4,paddingBottom:4,paddingLeft:8,paddingRight:4},folderIconNoReorder:{cursor:"pointer",paddingTop:4,paddingBottom:4,paddingLeft:8,paddingRight:4},script:{cursor:"pointer",padding:0,userSelect:"none"},scriptReorder:{opacity:1,transitionDuration:"0.5s",transitionProperty:"opacity"},reorder:{},expandButton:{width:37,height:37},selected:Oe,instances:{color:"gray",fontSize:"smaller"},childrenCount:{float:"right",marginRight:5,fontSize:10,opacity:.4},footer:{height:24},footerButtons:{"&:hover":{backgroundColor:"#dbdbdb"},color:"dark"===e.palette.mode?"#ffffff":"#111111",cursor:"pointer",marginTop:1,marginRight:2,height:22,width:22},footerButtonsRight:{float:"right"},mainList:{"& .js-folder-dragover>div>li>.folder-reorder":{background:"#40adff"},"& .js-folder-dragging .folder-reorder":{opacity:1},"& .js-folder-dragging .script-reorder":{opacity:.3}}}}))(Be);function _e(e){var t,n=e.getHours();return n<10&&(n="0".concat(n.toString())),t="".concat(n,":"),(n=e.getMinutes())<10&&(n="0".concat(n.toString())),t+="".concat(n,":"),(n=e.getSeconds())<10&&(n="0".concat(n.toString())),t+="".concat(n,"."),(n=e.getMilliseconds())<10?n="00".concat(n.toString()):n<100&&(n="0".concat(n.toString())),t+=n}var Le={},Ue=function(e){(0,p.Z)(n,e);var t=(0,h.Z)(n);function n(e){var a;return(0,u.Z)(this,n),(a=t.call(this,e)).logHandler=function(e){var t,n=a.state.lines,s=a.state.editing.filter((function(t){return e.message.includes(t)}));if(s.length){1===s.length?t=s[0]:(s.sort(),t=s[s.length-1]);var o=n[t]||[],i=Le[t]||[];o.push(a.generateLine(e));var r=e.severity;"info"!==r&&"warn"!==r||(r+=" ");var l,c=new Date(e.ts);i.push("".concat(c.toLocaleString(),".").concat((l=c.getMilliseconds(),l<10?"00".concat(l):l<100?"0".concat(l):l),"\t[").concat(r,"]: ").concat(e.message)),o.length>300&&(o.splice(0,o.length-300),i.splice(0,o.length-300)),Le[t]=i,n[t]=o,a.setState({lines:n})}},a.state={lines:{},goBottom:!0,selected:null,editing:a.props.editing||[]},a.lastIndex=null,a.messagesEnd=s().createRef(),a}return(0,d.Z)(n,[{key:"generateLine",value:function(e){return(0,se.jsxs)("tr",{className:this.props.classes[e.severity],children:[(0,se.jsx)("td",{className:this.props.classes.trTime,children:_e(new Date(e.ts))},"tdTime"),(0,se.jsx)("td",{className:this.props.classes.trSeverity,children:e.severity},"tdSeverity"),(0,se.jsx)("td",{children:e.message},"tdMessage")]},"tr_".concat(e.ts,"_").concat(e.message.substr(-10)))}},{key:"scrollToBottom",value:function(){this.messagesEnd&&this.messagesEnd.current&&this.messagesEnd.current.scrollIntoView({behavior:"smooth"})}},{key:"componentDidMount",value:function(){this.props.socket.registerLogHandler(this.logHandler)}},{key:"componentWillUnmount",value:function(){this.props.socket.unregisterLogHandler(this.logHandler)}},{key:"componentDidUpdate",value:function(){this.state.goBottom&&this.scrollToBottom()}},{key:"onCopy",value:function(){k.Utils.copyToClipboard((Le[this.state.selected]||[]).join("\n"))}},{key:"clearLog",value:function(){var e=this.state.lines;e[this.state.selected]&&(e[this.state.selected]=[]),Le[this.state.selected]&&(Le[this.state.selected]=[]),this.setState({lines:e})}},{key:"renderLogList",value:function(e){return this.state.selected&&e&&e.length?(0,se.jsxs)("div",{className:this.props.classes.logBoxInner,children:[(0,se.jsx)("table",{className:this.props.classes.table,children:(0,se.jsx)("tbody",{children:e})},"logTable"),(0,se.jsx)("div",{ref:this.messagesEnd,style:{float:"left",clear:"both"}},"logScrollPoint")]},"logList"):(0,se.jsx)("div",{className:this.props.classes.logBoxInner,style:{paddingLeft:10},children:k.I18n.t("Log outputs")},"logList")}},{key:"render",value:function(){var e=this,t=this.state.selected&&this.state.lines[this.state.selected];return(0,se.jsxs)("div",{className:this.props.classes.logBox,children:[(0,se.jsxs)("div",{className:this.props.classes.toolbox,children:[(0,se.jsx)(E.Z,{className:this.props.classes.iconButtons,onClick:function(){return e.setState({goBottom:!e.state.goBottom})},color:this.state.goBottom?"secondary":"",size:"medium",children:(0,se.jsx)(S.G10,{})}),t&&t.length?(0,se.jsx)(E.Z,{className:this.props.classes.iconButtons,onClick:function(){return e.clearLog()},size:"medium",children:(0,se.jsx)(S.FH3,{})}):null,t&&t.length?(0,se.jsx)(E.Z,{className:this.props.classes.iconButtons,onClick:function(){return e.onCopy()},size:"medium",children:(0,se.jsx)(S.Fqs,{})}):null,this.props.onLayoutChange?(0,se.jsx)(E.Z,{className:this.props.classes.iconButtons,onClick:function(){return e.props.onLayoutChange()},title:k.I18n.t("Change layout"),size:"medium",children:(0,se.jsx)("img",{className:this.props.classes.layoutIcon,alt:"split",src:this.props.verticalLayout?"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAGAAAABgAQMAAADYVuV7AAAABlBMVEUAAAAzMzPI8eYgAAAAAXRSTlMAQObYZgAAACFJREFUeAFjAIJRwP////8PYIKWHCigNQdKj/pn1D+jAABTG16wVQqVpQAAAABJRU5ErkJggg==":"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAGAAAABgAQMAAADYVuV7AAAABlBMVEUAAAAzMzPI8eYgAAAAAXRSTlMAQObYZgAAABtJREFUeAFjAIJRwP8fCj7QkENn/4z6Z5QzCgBjbWaoyx1PqQAAAABJRU5ErkJggg=="})}):null,(0,se.jsx)(E.Z,{className:this.props.classes.iconButtons,onClick:function(){return e.props.onHideLog()},title:k.I18n.t("Hide logs"),size:"medium",children:(0,se.jsx)(S.wqE,{})})]},"toolbox"),this.renderLogList(t)]})}}],[{key:"getDerivedStateFromProps",value:function(e,t){var n=!1,a={};if(e.selected!==t.selected){var s=e.selected,o=t.lines;o[s]=o[s]||[],Le[s]=Le[s]||[],a.selected=s,n=!0}if(JSON.stringify(e.editing)!==JSON.stringify(t.editing)){var i=JSON.parse(JSON.stringify(e.editing));n=!0;var r=t.lines;for(var l in Le)Le.hasOwnProperty(l)&&(i.includes(l)||(delete Le[l],delete r[l]));a.editing=i}return n?a:null}}]),n}(s().Component),We=(0,g.Z)((function(e){return{logBox:{width:"100%",height:"100%",position:"relative",overflow:"hidden"},logBoxInner:{display:"inline-block",color:"dark"===e.palette.mode?"white":"black",width:"calc(100% - ".concat(34,"px)"),height:"100%",overflow:"auto",position:"relative",verticalAlign:"top"},info:{background:"dark"===e.palette.mode?"darkgrey":"lightgrey",color:(e.palette.mode,"black")},error:{background:"#FF0000",color:"dark"===e.palette.mode?"black":"white"},warn:{background:"#FF8000",color:"dark"===e.palette.mode?"black":"white"},debug:{background:"gray",opacity:.8,color:"dark"===e.palette.mode?"black":"white"},silly:{background:"gray",opacity:.6,color:"dark"===e.palette.mode?"black":"white"},table:{fontFamily:"monospace",width:"100%"},toolbox:{width:34,height:"100%",boxShadow:"2px 0px 4px -1px rgba(0, 0, 0, 0.2), 4px 0px 5px 0px rgba(0, 0, 0, 0.14), 1px 0px 10px 0px rgba(0, 0, 0, 0.12)",display:"inline-block",verticalAlign:"top",overflow:"hidden"},trTime:{width:90},trSeverity:{width:40,fontWeight:"bold"},iconButtons:{width:32,height:32,padding:4},layoutIcon:{width:24,height:24,background:"dark"===e.palette.mode?"#9d9d9d":void 0,borderRadius:"dark"===e.palette.mode?30:void 0}}}))(Ue),Ve=n(50804),Je=n(29464),Ge=n(29347),He=n(61474),qe=n(27029),Ye=n(34129),Ke=n(13034),Qe=n(40986),Xe=n(15416),$e=n(62155),et=n(68745),tt=n(55261),nt=n(22041),at=n(9195),st=n(4841),ot=n(48240);var it=0,rt=function(e){(0,p.Z)(n,e);var t=(0,h.Z)(n);function n(e){var a;return(0,u.Z)(this,n),(a=t.call(this,e)).state={name:"current",isDark:e.isDark||!1,language:e.language||"javascript",readOnly:e.readOnly||!1,alive:!0,check:!1,searchText:a.props.searchText||"",typingsLoaded:!1},a.runningInstancesStr=JSON.stringify(a.props.runningInstances),a.monacoDiv=null,a.editor=null,a.monaco=window.monaco,a.insert="",a.originalCode=e.code||"",a.typings={},a.lastSearch="",a}return(0,d.Z)(n,[{key:"waitForMonaco",value:function(e){var t=this;if(this.monaco&&this.props.runningInstances)e&&e();else{if(this.monaco=window.monaco,this.monacoCounter=this.monacoCounter||0,this.monacoCounter++,!this.monaco&&this.monacoCounter<20)return console.log("wait for monaco loaded"),setTimeout((function(){return t.waitForMonaco(e)}),200);this.monacoCounter>=20&&console.error("Cannot load monaco!")}}},{key:"loadTypings",value:function(e){var t=this;if(this.editor){var n=(e=e||this.props.runningInstances)&&Object.keys(e).find((function(t){return e[t]}));n&&this.props.socket.sendTo(n.replace("system.adapter.",""),"loadTypings",null).then((function(e){t.setState({alive:!0,check:!0,typingsLoaded:!0}),t.setTypeCheck(!0),e.typings?(t.typings=e.typings,t.setEditorTypings(t.state.name)):console.error("failed to load typings: ".concat(e.error))}))}}},{key:"componentDidMount",value:function(){var e=this;if((!this.monaco||!this.props.runningInstances)&&(this.monaco=window.monaco,!this.monaco))return console.log("wait for monaco loaded"),this.waitForMonaco((function(){return e.componentDidMount()}));if(!this.editor){this.props.onRegisterSelect&&this.props.onRegisterSelect((function(){return e.editor.getModel().getValueInRange(e.editor.getSelection())}));var t=this.monaco.languages.typescript.typescriptDefaults.getCompilerOptions();t.target=this.monaco.languages.typescript.ScriptTarget.ES2015,t.allowJs=!0,t.checkJs=!1!==this.props.checkJs,t.noLib=!0,t.lib=[],t.useUnknownInCatchVariables=!1,t.moduleResolution=this.monaco.languages.typescript.ModuleResolutionKind.NodeJs,this.monaco.languages.typescript.typescriptDefaults.setCompilerOptions(t),this.setTypeCheck(!1),this.editor=this.monaco.editor.create(this.monacoDiv,{lineNumbers:"on",scrollBeyondLastLine:!1,automaticLayout:!0,glyphMargin:!!this.props.breakpoints}),this.editor.onDidChangeModelContent((function(t){return e.onChange(e.editor.getValue())})),this.loadTypings(),this.editor.addCommand(this.monaco.KeyMod.CtrlCmd|this.monaco.KeyCode.KEY_S,(function(){return e.onForceSave()})),setTimeout((function(){e.highlightText(e.state.searchText),e.location=e.props.location,e.breakpoints=e.props.breakpoints,e.showDecorators()}))}var n={selectOnLineNumbers:!0,scrollBeyondLastLine:!1,automaticLayout:!0,readOnly:this.state.readOnly,language:this.state.language,isDark:this.state.isDark};this.setEditorOptions(n),this.editor.focus(),this.editor.setValue(this.originalCode),this.props.onToggleBreakpoint?this.editor.onMouseDown((function(t){t.target.detail&&void 0!==t.target.detail.glyphMarginLeft&&e.props.onToggleBreakpoint(t.target.position.lineNumber-1)})):this.editor.onMouseDown(null)}},{key:"setEditorOptions",value:function(e){e&&(e.language&&this.setEditorLanguage(e.language),void 0!==e.readOnly&&this.editor.updateOptions({readOnly:e.readOnly}),void 0!==e.lineWrap&&this.editor.updateOptions({wordWrap:e.lineWrap?"on":"off"}),void 0!==e.typeCheck&&this.setTypeCheck(e.typeCheck),void 0!==e.isDark&&this.monaco.editor.setTheme(e.isDark?"vs-dark":"vs"))}},{key:"componentWillUnmount",value:function(){this.editor&&(this.props.onRegisterSelect&&this.props.onRegisterSelect(null),this.editor.dispose(),this.editor=null)}},{key:"setEditorLanguage",value:function(e){var t=this.editor.getModel(),n=t.getValue(),a=t.uri.path,s="string"===typeof a&&a.includes(".")?a.substr(0,a.lastIndexOf(".")):"index",o="javascript"===e?"js":"typescript"===e?"ts":e;t.dispose();var i="javascript"===e||"typescript"===e?"typescript":e,r=this.monaco.editor.createModel(n,i,this.monaco.Uri.from({path:"".concat(s).concat(it++,".").concat(o)}));this.editor.setModel(r)}},{key:"setTypeCheck",value:function(e){var t={noSemanticValidation:!this.state.alive||!e,noSyntaxValidation:!this.state.alive};this.monaco.languages.typescript.typescriptDefaults.setDiagnosticsOptions(t)}},{key:"setEditorTypings",value:function(){for(var e=this,t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"",n=/^script\.js\.global\./.test(t),a="".concat(t,".d.ts"),s=[],o=0,i=Object.keys(this.typings);oe||e>t[0].endLineNumber)&&this.editor.revealLineInCenter(e)}}},{key:"UNSAFE_componentWillReceiveProps",value:function(e){var t=this,n={};this.state.name!==e.name&&this.initNewScript(e.name,e.code),JSON.stringify(e.runningInstances)!==this.runningInstancesStr&&(this.runningInstancesStr=JSON.stringify(e.runningInstances),this.state.typingsLoaded||this.loadTypings(e.runningInstances)),e.changed||e.code===this.originalCode&&e.code===this.editor.getValue()||(this.originalCode=e.code,this.editor.setValue(this.originalCode),this.showDecorators(),this.location&&this.scrollToLineIfNeeded(this.location.lineNumber+1)),e.searchText!==this.lastSearch&&(this.lastSearch=e.searchText,this.highlightText(this.lastSearch)),JSON.stringify(e.location)!==JSON.stringify(this.location)&&JSON.stringify(e.breakpoints)!==JSON.stringify(this.breakpoints)?(this.location=e.location,this.breakpoints=e.breakpoints,this.showDecorators(),this.editor&&this.location&&this.scrollToLineIfNeeded(this.location.lineNumber+1)):JSON.stringify(e.breakpoints)!==JSON.stringify(this.breakpoints)?(this.breakpoints=e.breakpoints,this.showDecorators()):JSON.stringify(e.location)!==JSON.stringify(this.location)&&(this.location=e.location,this.showDecorators(),this.editor&&this.location&&this.scrollToLineIfNeeded(this.location.lineNumber+1)),this.state.language!==(e.language||"javascript")?(this.setState({language:e.language||"javascript"}),n.language=e.language||"javascript"):this.state.readOnly!==(e.readOnly||!1)?(this.setState({readOnly:e.readOnly||!1}),n.readOnly=e.readOnly):this.state.isDark!==(e.isDark||!1)&&(this.setState({isDark:e.isDark||!1}),n.isDark=e.isDark),this.setEditorOptions(n),this.insert!==e.insert&&(this.insert=e.insert,this.insert&&(console.log("Insert text"+this.insert),setTimeout((function(e){t.insertTextIntoEditor(e),setTimeout((function(){return t.props.onInserted&&t.props.onInserted()}),100)}),100,this.insert)))}},{key:"onChange",value:function(e,t){this.props.readOnly||this.props.onChange&&this.props.onChange(this.editor.getValue())}},{key:"render",value:function(){var e=this;return this.monaco&&this.props.runningInstances?(0,se.jsx)("div",{ref:function(t){return e.monacoDiv=t},style:{width:"100%",height:"100%",overflow:"hidden",position:"relative"},children:!this.state.check&&(0,se.jsx)(ot.Z,{size:"small",title:k.I18n.t("Check is not active, because javascript adapter is disabled"),style:{bottom:10,right:10,opacity:.5,position:"absolute",zIndex:1,background:"red",color:"white"},color:"secondary",children:(0,se.jsx)(S.vhT,{})})}):(setTimeout((function(){e.monaco=window.monaco,e.forceUpdate()}),200),null)}}]),n}(s().Component),lt=rt,ct=n(74165),ut=n(15861),dt=n(1413),pt=n(94366),ht=n(60627),gt=n(56120),mt=function(e){(0,p.Z)(n,e);var t=(0,h.Z)(n);function n(e){var a;return(0,u.Z)(this,n),(a=t.call(this,e)).handleCancel=function(){a.props.onClose()},a.state={anchorEl:null,popper:""},a}return(0,d.Z)(n,[{key:"onCopy",value:function(e){var t=this;k.Utils.copyToClipboard(this.props.text);var n=e.currentTarget;setTimeout((function(){t.setState({popper:k.I18n.t("Copied"),anchorEl:n}),setTimeout((function(){return t.setState({popper:"",anchorEl:null})}),1e3)}),50)}},{key:"render",value:function(){var e=this,t=this.props.classes;return(0,se.jsxs)(Q.Z,{onClose:function(e,t){return!1},maxWidth:"lg",classes:{paper:t.dialog},fullWidth:!0,open:this.props.open,"aria-labelledby":"export-dialog-title",children:[(0,se.jsx)(q.Z,{id:"export-dialog-title",children:k.I18n.t("Export selected blocks")}),(0,se.jsx)(Y.Z,{classes:{root:t.overflowY},children:(0,se.jsx)("pre",{id:"export-text",className:"".concat(t.textArea," ").concat("dark"===this.props.themeType?"":t.textAreaLight),children:this.props.text})}),(0,se.jsxs)(K.Z,{children:[(0,se.jsx)(H.Z,{variant:"contained",onClick:function(t){return e.onCopy(t)},color:"secondary",startIcon:(0,se.jsx)(gt.Z,{}),children:k.I18n.t("Copy to clipboard")}),(0,se.jsx)(H.Z,{variant:"contained",onClick:function(){return e.handleCancel()},color:"primary",startIcon:(0,se.jsx)(ne.default,{}),children:k.I18n.t("Close")}),(0,se.jsx)(pt.Z,{id:"popper",style:{zIndex:1e4},open:!!this.state.popper,placement:"top",anchorEl:this.state.anchorEl,transition:!0,children:function(n){var a=n.TransitionProps;return(0,se.jsx)(ht.Z,(0,dt.Z)((0,dt.Z)({},a),{},{timeout:350,children:(0,se.jsx)(st.Z,{children:(0,se.jsx)("p",{className:t.typography,children:e.state.popper})})}))}}),(0,se.jsx)("textarea",{id:"copy_input",readOnly:!0,style:{position:"absolute",left:-9999},tabIndex:-1,"aria-hidden":!0,value:this.props.text})]})]},"export-dialog")}}]),n}(s().Component);mt.defaultProps={open:!0};var ft=(0,g.Z)((function(e){return{textArea:{width:"100%",height:"100%",overflow:"auto"},textAreaLight:{background:"lightgray"},dialog:{height:"95%"},typography:{padding:e.spacing(2)},overflowY:{overflowY:"hidden"}}}))(mt),vt=function(e){(0,p.Z)(n,e);var t=(0,h.Z)(n);function n(e){var a;return(0,u.Z)(this,n),(a=t.call(this,e)).state={text:""},a}return(0,d.Z)(n,[{key:"componentDidMount",value:function(){setTimeout((function(){try{window.document.getElementById("import-text-area").focus()}catch(e){}}),100)}},{key:"handleCancel",value:function(){this.props.onClose()}},{key:"handleOk",value:function(){this.props.onClose(this.state.text)}},{key:"onChange",value:function(e){this.setState({text:e.target.value})}},{key:"render",value:function(){var e=this,t=this.props.classes;return(0,se.jsxs)(Q.Z,{onClose:function(e,t){return!1},maxWidth:"lg",classes:{paper:t.dialog},fullWidth:!0,open:this.props.open,"aria-labelledby":"import-dialog-title",children:[(0,se.jsx)(q.Z,{id:"import-dialog-title",children:k.I18n.t("Import blocks")}),(0,se.jsx)(Y.Z,{className:t.fullHeight,children:(0,se.jsx)("textarea",{autoFocus:!0,id:"import-text-area",className:t.textArea,onChange:function(t){return e.onChange(t)}})}),(0,se.jsxs)(K.Z,{children:[(0,se.jsx)(H.Z,{variant:"contained",disabled:!this.state.text,onClick:function(t){return e.handleOk()},color:"primary",startIcon:(0,se.jsx)(ae.default,{}),children:k.I18n.t("Import")}),(0,se.jsx)(H.Z,{color:"grey",variant:"contained",onClick:function(){return e.handleCancel()},startIcon:(0,se.jsx)(ne.default,{}),children:k.I18n.t("Close")})]})]})}}]),n}(s().Component);vt.defaultProps={open:!0};var yt,bt=(0,g.Z)((function(e){return{textArea:{width:"calc(100% - 10px)",height:"100%",resize:"none"},dialog:{height:"95%"},fullHeight:{height:"100%",overflow:"hidden"}}}))(vt),kt=!1,St=!1,xt=null,wt=[];function Ct(e,t,n,a){if(a=a||[],"BLOCK"!==e.tagName&&"block"!==e.tagName||(n=e.id),"FIELD"===e.tagName||"field"===e.tagName)for(var s=0;s=0;s--)if("//"===n[s].substring(0,2)){a=n[s].substring(2);break}if("'+e+"");var t=e.replace(/[\n\r]/g,"").match(/(.*)<\/variables>/);if(t){var n=this.Blockly.utils.xml.textToDomDocument(""+t[1]+"");if(n){var a=n.childNodes&&n.childNodes[0]&&n.childNodes[0].childNodes;if(a)for(var s=0;s.*<\/variables>/g,""),window.scripts.loading=!0;var o=this.Blockly.Xml.textToDom(e);if("xml"===o.nodeName)for(var i=0;i';window.scripts.loading=!0;var n=this.Blockly.Xml.textToDom(t);this.Blockly.Xml.domToWorkspace(n,this.blocklyWorkspace),window.scripts.loading=!1}catch(a){console.error(a),setTimeout((function(){return e.setState({error:k.I18n.t("Cannot extract Blockly code!")})}))}setTimeout((function(){return e.ignoreChanges=!1}),100)}}},{key:"onBlocklyChanged",value:function(){this.blocklyRemoveOrphanedShadows(),this.setState({changed:!0}),this.onChange()}},{key:"componentDidUpdate",value:function(){var e=(0,ut.Z)((0,ct.Z)().mark((function e(){var t,n=this;return(0,ct.Z)().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(this.blockly){e.next=2;break}return e.abrupt("return");case 2:if(this.didUpdate&&(clearTimeout(this.didUpdate),this.didUpdate=null),!this.blocklyWorkspace){e.next=5;break}return e.abrupt("return");case 5:if(window.addEventListener("resize",this.onResizeBind,!1),e.t0=xt,e.t0){e.next=11;break}return e.next=10,this.getToolbox();case 10:e.t0=e.sent;case 11:xt=e.t0,yt=yt||this.Blockly.Xml.textToDom(xt),this.blocklyWorkspace=this.Blockly.inject(this.blockly,{media:"google-blockly/media/",toolbox:yt,zoom:{controls:!0,wheel:!1,startScale:1,maxScale:3,minScale:.3,scaleSpeed:1.2},move:{scrollbars:!0,drag:!0,wheel:!0},trashcan:!0,grid:{spacing:25,length:3,colour:"#ccc",snap:!0},sounds:!1}),window.scripts={blocklyWorkspace:this.blocklyWorkspace},this.blocklyWorkspace.addChangeListener((function(e){if(n.someSelected&&Date.now()-n.someSelectedTime>500){var t=n.blocklyWorkspace.getAllBlocks();n.someSelected=null,t.forEach((function(e){return e.removeSelect()}))}e.type!==n.Blockly.Events.UI&&e.type!==n.Blockly.Events.CREATE&&(n.ignoreChanges||(n.changeTimer&&clearTimeout(n.changeTimer),n.changeTimer=setTimeout((function(){n.changeTimer=null,n.onBlocklyChanged()}),200)))})),this.loadCode(),this.onResize(),t=document.getElementsByClassName("blocklyToolboxDiv")[0],this.blockly.appendChild(t),this.updateBackground(),setTimeout((function(){return n.searchId()}),200);case 22:case"end":return e.stop()}}),e,this)})));return function(){return e.apply(this,arguments)}}()},{key:"updateBackground",value:function(){var e=document.getElementsByClassName("blocklyMainBackground")[0];"dark"===this.state.themeType?(e._originalStyle||(e._originalStyle={stroke:e.style.stroke,fill:e.style.fill}),e.style.stroke="#3a3a3a",e.style.fill="#515151"):e._originalStyle&&(e.style.stroke=e._originalStyle.stroke,e.style.fill=e._originalStyle.fill)}},{key:"componentWillUnmount",value:function(){this.blocklyWorkspace&&(this.blocklyWorkspace.dispose(),this.blocklyWorkspace=null,this.changeTimer&&clearTimeout(this.changeTimer),this.changeTimer=null,window.removeEventListener("resize",this.onResizeBind))}},{key:"onChange",value:function(){this.originalCode=this.blocklyCode2JSCode(),this.props.onChange&&this.props.onChange(this.originalCode)}},{key:"getToolbox",value:function(){var e=(0,ut.Z)((0,ct.Z)().mark((function e(t){var n,a,s,o,i,r,l,c=this;return(0,ct.Z)().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(n=window.document.getElementById("toolbox"),a=n&&n.outerHTML){e.next=9;break}if(t){e.next=7;break}return e.abrupt("return",new Promise((function(e){return setTimeout((function(){return e(c.getToolbox(!0))}),500)})));case 7:return console.error("Cannot load blocks!"),e.abrupt("return","");case 9:if(a=a.replace(/{(\w+)}/g,(function(e,t){return window.MSG[t]})),this.Blockly.CustomBlocks){for(s="",o=k.I18n.getLanguage(),i=0;i',this.Blockly[r].blocks)this.Blockly[r].blocks.hasOwnProperty(l)&&(s+=this.Blockly[r].blocks[l]);s+=""}a=a.replace("%%CUSTOM_BLOCKS%%",s)}return e.abrupt("return",a);case 12:case"end":return e.stop()}}),e,this)})));return function(t){return e.apply(this,arguments)}}()},{key:"renderMessageDialog",value:function(){var e=this;return this.state.message?(0,se.jsx)(y.default,{text:"object"===typeof this.state.message?this.state.message.text:this.state.message,title:"object"===typeof this.state.message?this.state.message.title:"",onClose:function(){return e.setState({message:""})}},"dialogMessage"):null}},{key:"renderErrorDialog",value:function(){var e=this;return this.state.error?(0,se.jsx)(be,{text:"object"===typeof this.state.error?this.state.error.text.toString():this.state.error,title:"object"===typeof this.state.error?this.state.error.title:"",onClose:function(){e.blinkBlock&&(e.blocklyBlinkBlock(e.blinkBlock),e.blinkBlock=null),e.setState({error:""})}},"dialogError"):null}},{key:"renderExportDialog",value:function(){var e=this;return this.state.exportText?(0,se.jsx)(ft,{theme:this.state.themeType,onClose:function(){return e.setState({exportText:""})},text:this.state.exportText},"dialogExport"):null}},{key:"renderImportDialog",value:function(){var e=this;return this.state.importText?(0,se.jsx)(bt,{onClose:function(t){e.setState({importText:!1}),e.onImportBlocks(t)}},"dialogImport"):null}},{key:"render",value:function(){var e=this;return this.state.languageBlocklyLoaded&&this.state.languageOwnLoaded?(this.didUpdate=setTimeout((function(){e.didUpdate=null,e.componentDidUpdate()}),100),[(0,se.jsx)("div",{ref:function(t){return e.blockly=t},style:{width:"100%",height:"100%",position:"relative"}},"blocklyDOM"),this.renderMessageDialog(),this.renderErrorDialog(),this.renderExportDialog(),this.renderImportDialog()]):null}}],[{key:"loadJS",value:function(e,t,n){var a=document.createElement("script");try{a.src=e,a.onload=t,a.onreadystatechange=t,a.onerror=t,(n||window.document.body).appendChild(a)}catch(s){console.error("Cannot load "+e+": "+s),t&&t()}}},{key:"loadScripts",value:function(e,t){if(!e||!e.length)return t&&t();var a=e.pop();-1===wt.indexOf(a)?(wt.push(a),n.loadJS("../../adapter/"+a+"/blockly.js",(function(){return setTimeout((function(){return n.loadScripts(e,t)}),0)}))):setTimeout((function(){return n.loadScripts(e,t)}),0)}},{key:"loadCustomBlockly",value:function(e,t){var a=[];for(var s in e)e.hasOwnProperty(s)&&e[s]&&s.match(/^system\.adapter\./)&&"adapter"===e[s].type&&e[s].common&&e[s].common.blockly&&(console.log("Detected custom blockly: "+e[s].common.name),a.push(e[s].common.name));n.loadScripts(a,t)}},{key:"loadXMLDoc",value:function(e){return(window.DOMParser?function(e){return(new window.DOMParser).parseFromString(e,"text/xml")}:"undefined"!=typeof window.ActiveXObject&&new window.ActiveXObject("Microsoft.XMLDOM")?function(e){var t=new window.ActiveXObject("Microsoft.XMLDOM");return t.async="false",t.loadXML(e),t}:function(){return null})(e)}}]),n}(s().Component),jt=It,Tt=n(53329),At=function(e){(0,p.Z)(n,e);var t=(0,h.Z)(n);function n(e){var a;return(0,u.Z)(this,n),(a=t.call(this,e)).state={changed:!1,source:a.props.source},!a.state.source&&a.props.isReturn&&(a.state.source="\nreturn false"),a}return(0,d.Z)(n,[{key:"componentDidMount",value:function(){setTimeout((function(){try{window.document.getElementById("source-text-area").focus()}catch(e){}}),100)}},{key:"handleCancel",value:function(){this.props.onClose(!1)}},{key:"handleOk",value:function(){this.props.isReturn&&!this.state.source.includes("return ")||this.props.onClose(this.state.source)}},{key:"onChange",value:function(e){this.setState({changed:!0,source:e})}},{key:"render",value:function(){var e=this,t=this.props.classes;return(0,se.jsxs)(Q.Z,{onClose:function(e,t){return!1},maxWidth:"lg",classes:{paper:t.dialog},fullWidth:!0,open:!0,"aria-labelledby":"source-dialog-title",children:[(0,se.jsx)(q.Z,{id:"source-dialog-title",children:k.I18n.t("Function editor")}),(0,se.jsxs)(Y.Z,{className:t.fullHeight,children:[this.props.args&&(0,se.jsxs)("div",{className:t.args,children:[(0,se.jsx)("span",{className:t.argsTitle,children:k.I18n.t("function (")}),this.props.args,(0,se.jsx)("span",{className:t.argsTitle,children:")"})]},"arguments"),(0,se.jsx)(lt,{adapterName:this.props.adapterName,runningInstances:this.props.runningInstances,className:t.textArea,style:{height:this.props.args?"calc(100% - 30px)":"100%"},name:"blockly",socket:this.props.socket,readOnly:!1,checkJs:!1,changed:this.state.changed,code:this.state.source,isDark:"dark"===this.props.themeType,onChange:function(t){return e.onChange(t)},language:"javascript"},"scriptEditor")]}),(0,se.jsxs)(K.Z,{children:[(0,se.jsx)(H.Z,{variant:"contained",onClick:function(){return e.handleOk()},color:"primary",startIcon:(0,se.jsx)(Tt.default,{}),children:k.I18n.t("Save")}),(0,se.jsx)(H.Z,{color:"grey",variant:"contained",onClick:function(){return e.handleCancel()},startIcon:(0,se.jsx)(ne.default,{}),children:k.I18n.t("Cancel")})]})]})}}]),n}(s().Component),Dt=(0,g.Z)((function(e){return{textArea:{width:"calc(100% - 10px)",resize:"none"},dialog:{height:"95%"},fullHeight:{height:"100%",overflow:"hidden"},args:{color:"dark"===e.palette.mode?"white":"black",height:30,width:"100%",fontSize:16},argsTitle:{color:"dark"===e.palette.mode?"white":"black",fontWeight:"bold"}}}))(At),Nt="style_wrapperRules__O-oAU",Et="style_rootWrapper__rXS-l",Ot="style_addClass__4KLUZ",Mt=n(32449),zt="style_switchesItem__DY9Qy",Zt="style_switchesItemActive__kglCJ",Rt="style_iconTheme__AotSq",Ft=n(24910),Bt={},Pt=function(e){var t=e.iconName,n=e.className,s=e.adapter,o=e.socket,i=e.onClick,r=(0,a.useState)(""),l=(0,w.Z)(r,2),c=l[0],u=l[1];if((0,a.useEffect)((function(){s&&o&&(Bt[s]=Bt[s]||o.getObject("system.adapter.".concat(s)),Bt[s].then((function(e){var t;return(null===e||void 0===e||null===(t=e.common)||void 0===t?void 0:t.icon)&&u("../../adapter/".concat(s,"/").concat(e.common.icon))})))}),[s,o]),s)return(0,se.jsx)("img",{onClick:function(e){return i&&i(e)},src:c||"",className:n,alt:""});var d=Ft[t||"Help"];return(0,se.jsx)(d,{className:n,onClick:function(e){return i&&i(e)}})};Pt.defaultProps={className:null,iconName:"Help"};var _t=Pt,Lt=function(e){var t=e.name,n=e.id,a=e.active,s=e.icon,o=e.adapter,i=e.socket,r=e.onDoubleClick,l=e.title,c=e.onTouchMove;return(0,se.jsxs)("div",{onDoubleClick:r,onTouchMove:c,title:k.I18n.t(l),className:k.Utils.clsx(zt,a&&Zt,"block-"+n),children:[(0,se.jsx)(_t,{iconName:s,className:Rt,adapter:o,socket:i}),(0,se.jsx)("span",{children:t?k.I18n.t(t):""})]},n)};Lt.defaultProps={name:"",active:!1,id:"",onDoubleClick:function(){}};var Ut=Lt,Wt="style_cardStyle__bzAxQ",Vt="style_cardStyleActive__BaK+z",Jt="style_controlMenu__RxkVe",Gt="style_closeBtn__-nF+7",Ht="style_isDelete__u9OAa",qt="style_drag_mobile__d9hW5",Yt=n(4942);function Kt(e,t,n){return"actions"===e?(0,dt.Z)((0,dt.Z)({},t),{},(0,Yt.Z)({},e,(0,dt.Z)((0,dt.Z)({},t[e]),{},(0,Yt.Z)({},n,(0,c.Z)(t[e][n]))))):(0,dt.Z)((0,dt.Z)({},t),{},(0,Yt.Z)({},e,(0,c.Z)(t[e])))}function Qt(e,t,n,a){switch(e){case"actions":case"conditions":return t[e][n]=t[e][n].filter((function(e){return e._id!==a})),t;default:return t[e]=t[e].filter((function(e){return e._id!==a})),t}}var Xt=n(11752),$t=n(61120),en={cardStyle:"style_cardStyle__Qk8PP",nameCard:"style_nameCard__eHe3n",cardStyleActive:"style_cardStyleActive__UjCy0",iconThemCard:"style_iconThemCard__tMl1-",iconThemCardSelectable:"style_iconThemCardSelectable__6mEII",iconHelp:"style_iconHelp__b28SN",inputCard:"style_inputCard__zwn8V",blockName:"style_blockName__T-Ud-",controlMenu:"style_controlMenu__kR476",closeBtn:"style_closeBtn__7c+6X",controlMenuTop:"style_controlMenuTop__OayQd",debugInfo:"style_debugInfo__kdwsD",fadeIn:"style_fadeIn__jT4pd",tagCard:"style_tagCard__n9gJP",displayFlex:"style_displayFlex__4QnOf",blockMarginTop:"style_blockMarginTop__ZM9lX",nameBlock:"style_nameBlock__H2Ujc",frontText:"style_frontText__yvugL",backText:"style_backText__nuybg",iconTag:"style_iconTag__x0Rub",displayItalic:"style_displayItalic__LY2l3"},tn=n(94427),nn=n(95857),an=n(31238),sn=n(32548),on=n(70810),rn="style_root__569oE",ln="style_square__rf4cS",cn="style_icon__bnClh",un=function(e){var t=e.fullWidth,n=e.size,a=e.onClick,s=e.style,o=e.className,i=e.value,r=e.square,l=e.icon;return(0,se.jsx)(tn.Button,{variant:"outlined",color:"primary",onClick:a,fullWidth:t,style:s,className:k.Utils.clsx(rn,o,r?ln:""),margin:"normal",size:n,children:l?(0,se.jsx)(k.Icon,{className:cn,src:l}):i})};un.defaultProps={value:"",className:null,variant:"standard",size:"medium",fullWidth:!1,square:!1};var dn=un,pn="style_root__HWP9G",hn=function(e){var t=e.size,n=e.value,s=(e.style,e.title),o=e.onChange,i=e.className,r=e.customValue,l=e.disabled,c=(0,a.useState)(!1),u=(0,w.Z)(c,2),d=u[0],p=u[1];return(0,se.jsxs)(se.Fragment,{children:[(0,se.jsx)(tn.Checkbox,{disabled:l,checked:Boolean(r?n:d),className:k.Utils.clsx(pn,i),onChange:function(e){r&&p(e.target.checked),o(e.target.checked)},size:t}),s||null]})};hn.defaultProps={value:!1,disabled:!1,type:null,error:"",className:null,table:!1,native:{},variant:"standard",size:"medium",component:null,styleComponentBlock:null,onChange:function(){},fullWidth:!1,autoComplete:"",customValue:!1,label:"all"};var gn=(0,a.memo)(hn),mn={root:"style_root__Ohc9u"},fn=function(e){var t=e.autoFocus,n=e.fullWidth,s=e.disabled,o=e.multiline,i=e.rows,r=e.autoComplete,l=e.label,c=e.error,u=e.size,d=e.variant,p=e.value,h=e.type,g=e.style,m=e.onChange,f=e.className,v=e.customValue,y=e.icon,b=(0,a.useState)(""),S=(0,w.Z)(b,2),x=S[0],C=S[1];return(0,se.jsx)(tn.TextField,{error:!!c,autoFocus:t,fullWidth:n,label:l,disabled:s,variant:d,multiline:o,rows:i,value:v?p:x,type:h,helperText:c,style:g,className:k.Utils.clsx(mn.root,f),autoComplete:r,onChange:function(e){!v&&C(e.target.value),m(e.target.value)},InputProps:{endAdornment:y?(0,se.jsx)(Se.Z,{position:"end",children:(0,se.jsx)(k.Icon,{className:mn.icon,src:y})}):null},margin:"normal",size:u})};fn.defaultProps={value:"",type:"text",error:"",className:null,table:!1,native:{},variant:"standard",size:"medium",component:null,styleComponentBlock:null,onChange:function(){},fullWidth:!1,autoComplete:"",customValue:!1,autoFocus:!1,rows:1};var vn=fn,yn=(0,g.Z)({root:{margin:"10px 0","& .MuiFormControl-marginNormal":{marginTop:0,marginBottom:0},"& > *":{color:"#2d0440 !important"},"& .MuiSelect-icon":{color:"#81688c"},"& label.Mui-focused":{color:"#81688c"},"& .MuiInput-underline:after":{borderBottomColor:"#510573"},"& .MuiInput-underline:before":{borderBottomColor:"#81688c"},"& .MuiInput-underline:hover:before":{borderBottomColor:"#81688c"}}})(tn.FormControl),bn=function(e){var t=e.multiple,n=e.value,s=e.customValue,o=e.socket,i=e.title,r=e.attr,l=e.adapter,c=e.style,u=e.onChange,d=e.className,p=e.onInstanceHide,h=(0,a.useState)(n||"test1"),g=(0,w.Z)(h,2),m=g[0],f=g[1],v=(0,a.useState)([]),y=(0,w.Z)(v,2),b=y[0],S=y[1];return(0,a.useEffect)((function(){o&&o.getAdapterInstances(l).then((function(e){var t=e.map((function(e){return{value:e._id.replace("system.adapter.",""),title:e._id.replace("system.adapter.","")}}));1===t.length?p(t[0].value):t.unshift({value:l,title:k.I18n.t("All")}),S(t)}))}),[o,l,p]),(0,se.jsxs)(yn,{className:d,fullWidth:!0,style:c,children:[(0,se.jsx)(tn.Select,{variant:"standard",value:(s?n:m)||"_",fullWidth:!0,multiple:t,renderValue:function(e){return t&&e.join?e.join(", "):e},onChange:function(e){!s&&f(e.target.value),u(e.target.value)},input:r?(0,se.jsx)(tn.Input,{name:r,id:r+"-helper"}):(0,se.jsx)(tn.Input,{name:r}),children:b.map((function(e){return(0,se.jsxs)(tn.MenuItem,{style:{placeContent:"space-between"},value:e.value||"_",children:[k.I18n.t(e.title),e.title2&&(0,se.jsx)("div",{children:e.title2})]},"key-"+e.value)}))}),(0,se.jsx)(tn.FormHelperText,{children:k.I18n.t(i)})]})};bn.defaultProps={value:"",className:null,table:!1,customValue:!1};var kn=bn,Sn="style_modalWrapper__mluI5",xn="style_modalDialog__Pki9P",wn=n(18181),Cn=function(e){var t=e.open,n=e.onClose,s=e.children,o=e.titleButtonApply,i=e.titleButtonClose,r=e.onApply,l=e.className,c=e.textInput,u=e.defaultValue,d=(0,a.useState)(u),p=(0,w.Z)(d,2),h=p[0],g=p[1];return(0,se.jsxs)(tn.Dialog,{open:t,maxWidth:"md",disableEscapeKeyDown:!1,onClose:n,classes:{paper:xn},className:Sn,children:[(0,se.jsxs)(tn.DialogContent,{children:[c&&(0,se.jsx)(vn,{className:l,autoComplete:"off",fullWidth:!0,variant:"outlined",size:"medium",rows:10,multiline:!0,value:h,onChange:g,customValue:!0}),!c&&s]}),(0,se.jsxs)(tn.DialogActions,{children:[(0,se.jsx)(H.Z,{onClick:function(){return r(c?h:null)},variant:"contained",color:"primary",children:wn.default.t(o)}),(0,se.jsx)(H.Z,{color:"grey",onClick:n,variant:"contained",children:wn.default.t(i)})]})]})};Cn.defaultProps={open:!1,onApply:function(){},onClose:function(){},titleButtonClose:"Cancel",titleButtonApply:"Ok"};var In=Cn,jn="style_root__GxGj0",Tn=function(e){var t=e.multiple,n=e.value,s=e.customValue,o=e.title,i=e.attr,r=e.options,l=e.style,c=e.onChange,u=e.className,d=e.doNotTranslate,p=e.doNotTranslate2,h=(0,a.useState)(void 0===n?r[0].value:n),g=(0,w.Z)(h,2),m=g[0],f=g[1],v=s?n:m,y=""===v||null===v||void 0===v?"_":v;return(0,se.jsxs)(tn.FormControl,{variant:"standard",className:k.Utils.clsx(jn,u),fullWidth:!0,style:l,children:[(0,se.jsxs)(tn.Select,{variant:"standard",value:y,fullWidth:!0,multiple:t,renderValue:function(e){if(t&&e.join){e.sort();var n=e.indexOf("0");-1!==n&&(e.splice(n,1),e.push("0")),-1!==(n=e.indexOf("_"))&&(e.splice(n,1),e.unshift("_"));var a=r.find((function(e){return e.only}));if(e.includes(a.value))return a.titleShort?d?a.titleShort:k.I18n.t(a.titleShort):d?a.title:k.I18n.t(a.title);var s=e.map((function(e){return r.find((function(t){return t.value===e||"_"===e&&""===t.value}))||e})).map((function(e){return"object"===typeof e?e.titleShort?d?e.titleShort:k.I18n.t(e.titleShort):d?e.title:k.I18n.t(e.title):d?e:k.I18n.t(e)}));return s.join(", ")}var o=r?r.find((function(t){return t.value===e||"_"===e&&""===t.value})):null;return null!==o&&void 0!==o&&o.title?d?null===o||void 0===o?void 0:o.title:k.I18n.t(null===o||void 0===o?void 0:o.title):e},onChange:function(e){if(!s&&f(e.target.value),t){var n=r.find((function(e){return e.only}));if(n){var a=n.value;if(e.target.value.length===r.length-1&&e.target.value.includes(a))return c(e.target.value.filter((function(e){return e!==a})),i);if(e.target.value.includes(a))return c(r.map((function(e){return e.value})),i)}}c(e.target.value,i)},input:i?(0,se.jsx)(tn.Input,{name:i,id:"".concat(i,"-helper")}):(0,se.jsx)(tn.Input,{name:i}),children:[!t&&r&&r.map((function(e){return(0,se.jsxs)(tn.MenuItem,{style:{placeContent:"space-between"},value:""===e.value||null===e.value||void 0===e.value?"_":e.value,children:[d?e.title:k.I18n.t(e.title),e.title2&&(0,se.jsx)("div",{children:p?e.title2:k.I18n.t(e.title2)})]},"key-".concat(e.value))})),t&&r&&r.map((function(e){return(0,se.jsxs)(tn.MenuItem,{style:{placeContent:"space-between"},value:e.value||"_",children:[d?e.title:k.I18n.t(e.title)," ",(0,se.jsx)(gn,{customValue:!0,value:n.includes(e.value)})]},"key-".concat(e.value))}))]}),o?(0,se.jsx)(tn.FormHelperText,{children:k.I18n.t(o)}):null]})};Tn.defaultProps={value:"",className:null,table:!1,customValue:!1,multiple:!1};var An=Tn,Dn="style_root__EDdVB",Nn="style_mark__oVsRI",En=function(e){e.fullWidth;var t=e.autoComplete,n=e.label,s=e.error,o=e.size,i=e.variant,r=e.value,l=e.type,c=e.style,u=e.onChange,d=e.className,p=e.customValue,h=e.min,g=e.max,m=e.step,f=e.unit,v=(0,a.useState)(0),y=(0,w.Z)(v,2),b=y[0],S=y[1];h=void 0!==h?h:0,g=void 0!==g?g:0,m=void 0!==m?m:(g-h)/100;var x=[{value:h,label:h+(f||"")},{value:g,label:g+(f||"")}];return(0,se.jsx)(tn.Slider,{defaultValue:p?r:b,"aria-labelledby":"discrete-slider",valueLabelDisplay:"auto",classes:{mark:Nn},marks:x,step:m,min:h,max:g,error:s||"",label:n,variant:i,value:p?r:b,type:l,style:c,className:k.Utils.clsx(Dn,d),autoComplete:t,onChange:function(e,t){!p&&S(t),u(t)},margin:"normal",size:o})};En.defaultProps={value:"",type:"text",error:"",className:null,table:!1,native:{},variant:"standard",size:"medium",component:null,styleComponentBlock:null,onChange:function(){},fullWidth:!1,autoComplete:"",customValue:!1};var On=En,Mn="style_root__gbUwF",zn=function(e){var t=e.label,n=e.size,s=e.value,o=e.style,i=e.onChange,r=e.className,l=e.customValue,c=(0,a.useState)(!1),u=(0,w.Z)(c,2),d=u[0],p=u[1];return(0,se.jsx)(tn.FormControlLabel,{className:Mn,control:(0,se.jsx)(tn.Switch,{checked:l?s:d,style:o,className:r,onChange:function(e){l||p(e.target.checked),i(e.target.checked)},size:n}),label:t})};zn.defaultProps={value:!1,type:"text",error:"",className:null,table:!1,native:{},variant:"standard",size:"medium",component:null,styleComponentBlock:null,onChange:function(){},fullWidth:!1,autoComplete:"",customValue:!1,label:"all"};var Zn=(0,a.memo)(zn),Rn="style_root__K8xdq",Fn=function(e){var t=e.value,n=e.style,a=e.onChange,s=e.className;return(0,se.jsx)(tn.TextField,{variant:"standard",id:"time",type:"time",onChange:function(e){return a(e.currentTarget.value)},value:t,className:k.Utils.clsx(Rn,s),fullWidth:!0,style:n,InputLabelProps:{shrink:!0},inputProps:{step:300}})};Fn.defaultProps={value:"",className:null,table:!1};var Bn=Fn,Pn="style_root__MKvTE",_n=[31,29,31,30,31,30,31,31,30,31,30,31],Ln=function(e){var t=e.value,n=e.onChange,a=e.className,s=(e.title,e.style),o=(t||"01.01").toString().split("."),i=(0,w.Z)(o,2),r=i[0],l=i[1];l=parseInt(l,10)||0,(r=parseInt(r,10)||0)>12?r=12:r<0&&(r=0),l>_n[r]?l=_n[r]:l<0&&(l=0);for(var c=[],u=0;u<_n[r];u++)c.push(u+1);return(0,se.jsxs)("div",{children:[(0,se.jsx)(tn.FormControl,{variant:"standard",className:k.Utils.clsx(Pn,a),style:s,children:(0,se.jsxs)(tn.Select,{variant:"standard",className:k.Utils.clsx(Pn,a),margin:"dense",label:k.I18n.t("Month"),onChange:function(e){return n("".concat(e.target.value.toString().padStart(2,"0"),".").concat(l.toString().padStart(2,"0")))},value:r,children:[(0,se.jsx)(tn.MenuItem,{style:{placeContent:"space-between"},value:0,children:k.I18n.t("Any month")},0),(0,se.jsx)(tn.MenuItem,{style:{placeContent:"space-between"},value:1,children:k.I18n.t("January")},1),(0,se.jsx)(tn.MenuItem,{style:{placeContent:"space-between"},value:2,children:k.I18n.t("February")},2),(0,se.jsx)(tn.MenuItem,{style:{placeContent:"space-between"},value:3,children:k.I18n.t("March")},3),(0,se.jsx)(tn.MenuItem,{style:{placeContent:"space-between"},value:4,children:k.I18n.t("April")},4),(0,se.jsx)(tn.MenuItem,{style:{placeContent:"space-between"},value:5,children:k.I18n.t("May")},5),(0,se.jsx)(tn.MenuItem,{style:{placeContent:"space-between"},value:6,children:k.I18n.t("June")},6),(0,se.jsx)(tn.MenuItem,{style:{placeContent:"space-between"},value:7,children:k.I18n.t("July")},7),(0,se.jsx)(tn.MenuItem,{style:{placeContent:"space-between"},value:8,children:k.I18n.t("August")},8),(0,se.jsx)(tn.MenuItem,{style:{placeContent:"space-between"},value:9,children:k.I18n.t("September")},9),(0,se.jsx)(tn.MenuItem,{style:{placeContent:"space-between"},value:10,children:k.I18n.t("October")},10),(0,se.jsx)(tn.MenuItem,{style:{placeContent:"space-between"},value:11,children:k.I18n.t("November")},11),(0,se.jsx)(tn.MenuItem,{style:{placeContent:"space-between"},value:12,children:k.I18n.t("December")},12)]})}),(0,se.jsx)(tn.FormControl,{variant:"standard",className:k.Utils.clsx(Pn,a),style:s,children:(0,se.jsxs)(tn.Select,{variant:"standard",className:k.Utils.clsx(Pn,a),margin:"dense",label:k.I18n.t("Date"),onChange:function(e){return n("".concat(r.toString().padStart(2,"0"),".").concat(e.target.value.toString().padStart(2,"0")))},value:l,children:[(0,se.jsx)(tn.MenuItem,{style:{placeContent:"space-between"},value:0,children:k.I18n.t("Any")},"A"),c.map((function(e){return(0,se.jsx)(tn.MenuItem,{style:{placeContent:"space-between"},value:e,children:e},e)}))]})})]})};Ln.defaultProps={value:"",className:null};var Un,Wn=Ln,Vn={getName:function(e){return Un=Un||k.I18n.getLanguage(),"object"===typeof e?e[Un]||e.en:e}},Jn=0,Gn=1,Hn=2,qn=3,Yn=4,Kn=5,Qn=6,Xn=7,$n=8,ea=[{selector:".blocks-triggers",content:"Select triggers"},{selector:".block-TriggerScheduleBlock",content:"Double click to add the block"},{selector:".tag-card",content:"Open drop down menu"},{selector:".tag-card-interval",content:"Select interval"},{selector:".blocks-actions",content:"Select action blocks"},{selector:".block-ActionPrintText",content:"Double click to add the block"},{selector:".button-js-code",content:"Check the script"},{selector:".button-js-code",content:"Switch back to rules"},{selector:".button-save",content:"Save the script"}],ta=function(e){(0,p.Z)(n,e);var t=(0,h.Z)(n);function n(e,s){var o;(0,u.Z)(this,n),(o=t.call(this,e)).renderText=function(e,t,n){var s=o.props.className,i=e.attr,r=e.frontText,l=e.backText,c=e.nameBlock,u=e.name,d=e.doNotTranslate,p=e.doNotTranslateBack;return(0,se.jsxs)(a.Fragment,{children:[(0,se.jsxs)("div",{className:k.Utils.clsx(en.displayFlex,en.blockMarginTop),children:[r&&(0,se.jsx)("div",{className:en.frontText,children:d?r:k.I18n.t(r)}),(0,se.jsx)(vn,{className:s,autoComplete:"off",label:Vn.getName(u),variant:"outlined",size:"small",fullWidth:!0,value:t,onChange:n,customValue:!0}),l&&(0,se.jsx)("div",{className:en.backText,children:p?l:k.I18n.t(l)})]}),c&&(0,se.jsx)("div",{className:en.nameBlock,children:k.I18n.t(c)})]},i)},o.renderSwitch=function(e,t,n){var a=o.props.className,s=e.attr,i=e.frontText,r=e.backText,l=e.nameBlock,c=e.doNotTranslate,u=e.doNotTranslateBack;return(0,se.jsxs)("div",{children:[(0,se.jsxs)("div",{className:k.Utils.clsx(en.displayFlex,en.blockMarginTop),children:[i&&(0,se.jsx)("div",{className:en.frontText,children:c?i:k.I18n.t(i)}),(0,se.jsx)(Zn,{className:a,label:"",customValue:!0,value:t,onChange:n}),r&&(0,se.jsx)("div",{className:en.backText,children:u?r:k.I18n.t(r)})]}),l&&(0,se.jsx)("div",{className:en.nameBlock,children:k.I18n.t(l)})]},s)},o.renderNameText=function(e,t){var n=e.attr,a=e.signature,s=e.doNotTranslate,o=e.defaultValue;return(0,se.jsx)("div",{className:k.Utils.clsx(a?en.displayItalic:en.displayFlex,en.blockMarginTop),children:t?s?t:k.I18n.t(t):s?o:k.I18n.t(o)},n)},o.renderNumber=function(e,t,n){var a=o.props.className,s=o.state.settings,i=e.attr,r=e.backText,l=e.frontText,c=e.openCheckbox,u=e.doNotTranslate,d=e.doNotTranslateBack,p=!0;return c&&(p="boolean"!==typeof s.offset||s.offset),p?(0,se.jsxs)("div",{className:k.Utils.clsx(en.displayFlex,en.blockMarginTop),children:[l&&(0,se.jsx)("div",{className:en.frontText,children:u?l:k.I18n.t(l)}),(0,se.jsx)(vn,{className:k.Utils.clsx(a,e.className),fullWidth:!0,autoComplete:"off",label:e.noHelperText?"":"number",variant:"outlined",size:"small",type:"number",value:t,onChange:n,customValue:!0}),r&&(0,se.jsx)("div",{className:en.backText,children:d?r:k.I18n.t(r)})]},i):null},o.renderColor=function(e,t,n){var a=o.props.className,s=e.attr,i=e.backText,r=e.frontText,l=e.doNotTranslate,c=e.doNotTranslateBack;return(0,se.jsxs)("div",{className:k.Utils.clsx(en.displayFlex,en.blockMarginTop),children:[r&&(0,se.jsx)("div",{className:en.frontText,children:l?r:k.I18n.t(r)}),(0,se.jsx)(vn,{className:a,autoComplete:"off",fullWidth:!0,variant:"outlined",size:"small",type:"color",value:t,onChange:n}),i&&(0,se.jsx)("div",{className:en.backText,children:c?i:k.I18n.t(i)})]},s)},o.renderCheckbox=function(e,t,n){var a=o.props.className,s=o.state.settings,i=e.attr,r=e.backText,l=e.frontText,c=e.defaultValue,u=e.doNotTranslate,d=e.doNotTranslateBack;return(0,se.jsxs)("div",{className:en.displayFlex,children:[l&&(0,se.jsx)("div",{className:en.frontText,children:u?l:k.I18n.t(l)}),(0,se.jsx)(gn,{className:a,size:"small",style:{marginRight:5},value:"boolean"===typeof s[i]?s[i]:c,customValue:!0,onChange:n}),r&&(0,se.jsx)("div",{onClick:function(){return n("boolean"===typeof s[i]?!s[i]:!c)},className:en.backText,children:d?r:k.I18n.t(r)})]},i)},o.renderSlider=function(e,t,n){var a=o.props.className,s=e.attr,i=e.frontText,r=e.backText,l=e.nameBlock,c=e.min,u=e.max,d=e.step,p=e.unit,h=e.doNotTranslate,g=e.doNotTranslateBack;return(0,se.jsxs)("div",{children:[(0,se.jsxs)("div",{className:en.displayFlex,style:{marginRight:20},children:[i&&(0,se.jsx)("div",{className:en.frontText,children:h?i:k.I18n.t(i)}),(0,se.jsx)(On,{customValue:!0,min:c,max:u,step:d,unit:p,className:a,autoComplete:"off",label:"number",variant:"outlined",size:"small",value:t,onChange:function(e){console.log(e),n(e)}}),r&&(0,se.jsx)("div",{style:{marginLeft:20},className:en.backText,children:g?r:k.I18n.t(r)})]}),l&&(0,se.jsx)("div",{className:en.nameBlock,children:k.I18n.t(l)})]},s)},o.renderButton=function(e,t,n){var a=o.props.className,s=e.attr,i=e.frontText,r=e.backText,l=e.buttonText,c=e.doNotTranslate,u=e.doNotTranslateBack;return(0,se.jsxs)("div",{className:k.Utils.clsx(en.displayFlex,en.blockMarginTop),children:[i&&(0,se.jsx)("div",{className:en.frontText,children:c?i:k.I18n.t(i)}),(0,se.jsx)(dn,{label:l,fullWidth:!0,value:t,className:a,onClick:n}),r&&(0,se.jsx)("div",{className:en.backText,children:u?r:k.I18n.t(r)})]},s)},o.findIcon=function(e){var t;if(!e)return Promise.resolve(null);if(null!==(t=e.common)&&void 0!==t&&t.icon)return Promise.resolve((0,on.getSelectIdIcon)(e,"../.."));if("state"===e.type||"channel"===e.type){var n=e._id.split(".");n.pop();var a=n.join(".");return o.props.socket.getObject(a).then((function(e){return o.findIcon(e)})).catch((function(){return null}))}},o.renderObjectID=function(e,t,n){var a=e.attr,s=e.openCheckbox,i=e.checkReadOnly,r=o.state.settings,l=o.state["showSelectId".concat(a)],c=o.props,u=c.className,d=c.socket,p=!0;return s&&(p="boolean"!==typeof r.offset||r.offset),r[a]&&!o.state[r[a]]&&setTimeout((function(){d.getObject(t).then((function(e){o.findIcon(e).then((function(t){var n,s;return o.setState((s={},(0,Yt.Z)(s,r[a],e),(0,Yt.Z)(s,"".concat(r[a],"___icon"),t),(0,Yt.Z)(s,"error",i&&o.lastObjectIdChange&&Date.now()-o.lastObjectIdChange<1e3&&!1===(null===e||void 0===e||null===(n=e.common)||void 0===n?void 0:n.write)?k.I18n.t("Read only ID selected: %s",r[a]):""),s))}))}))}),0),p?(0,se.jsxs)("div",{className:en.blockMarginTop,children:[(0,se.jsxs)("div",{className:en.displayFlex,children:[e.title?(0,se.jsx)("div",{children:k.I18n.t(e.title)}):null,(0,se.jsx)(vn,{className:u,autoComplete:"off",fullWidth:!0,disabled:!0,variant:"outlined",size:"small",value:t,customValue:!0}),(0,se.jsx)(dn,{icon:o.state["".concat(o.state.settings[e.attr],"___icon")],square:!0,style:{marginLeft:7},value:"...",className:u,onClick:function(){var e={};e["showSelectId".concat(a)]=!0,o.setState(e)}})]}),o.state[o.state.settings[e.attr]]&&(0,se.jsx)("div",{className:k.Utils.clsx(en.nameBlock,en.displayItalic),children:k.Utils.getObjectNameFromObj(o.state[r[a]],k.I18n.getLanguage())}),l?(0,se.jsx)(an.default,{imagePrefix:"../..",dialogName:"javascript",themeType:k.Utils.getThemeName(),socket:d,statesOnly:!0,selected:t,onClose:function(){var e={};e["showSelectId".concat(a)]=!1,o.setState(e)},onOk:function(e,t,s){var i={};i["showSelectId".concat(a)]=!1,o.setState(i,(function(){return d.getObject(e).then((function(t){var s;o.lastObjectIdChange=Date.now(),n((s={},(0,Yt.Z)(s,a,e),(0,Yt.Z)(s,"".concat(a,"Role"),t.common.role),(0,Yt.Z)(s,"".concat(a,"Type"),t.common.type),(0,Yt.Z)(s,"".concat(a,"Unit"),t.common.unit),(0,Yt.Z)(s,"".concat(a,"States"),t.common.states),(0,Yt.Z)(s,"".concat(a,"Min"),t.common.min),(0,Yt.Z)(s,"".concat(a,"Max"),t.common.max),(0,Yt.Z)(s,"".concat(a,"Step"),t.common.step),(0,Yt.Z)(s,"".concat(a,"Def"),t.common.def),(0,Yt.Z)(s,"".concat(a,"Write"),t.common.write),(0,Yt.Z)(s,"".concat(a,"Read"),t.common.read),s),null,(function(){return o.props.setOnUpdate&&o.props.setOnUpdate(!0)}))}))}))}}):null]},a):null},o.renderIconTag=function(){return(0,se.jsx)("div",{className:en.iconTag,onClick:function(e){o.state.settings.tagCard&&(o.state.tagCardArray.length<3?o.onChangeTag():o.setState({openTagMenu:e.currentTarget}))},children:o.state.settings.tagCard})},o.renderTime=function(e,t,n){var a=e.attr,s=e.backText,o=e.frontText,i=e.doNotTranslate,r=e.doNotTranslateBack;return(0,se.jsxs)("div",{className:en.displayFlex,style:{whiteSpace:"nowrap"},children:[o&&(0,se.jsx)("div",{className:en.frontText,children:i?o:k.I18n.t(o)}),(0,se.jsx)(Bn,{value:t,onChange:n}),s&&(0,se.jsx)("div",{className:en.backText,children:r?s:k.I18n.t(s)})]},a)},o.renderSelect=function(e,t,n){var a=o.props.className,s=e.name,i=e.options,r=e.frontText,l=e.backText,c=e.attr,u=e.multiple,d=e.doNotTranslate,p=e.doNotTranslate2,h=e.doNotTranslateBack;return(0,se.jsxs)("div",{className:k.Utils.clsx(en.displayFlex,en.blockMarginTop),style:{whiteSpace:"nowrap"},children:[r&&(0,se.jsx)("div",{className:en.frontText,children:k.I18n.t(r)}),(0,se.jsx)(An,{attr:c,doNotTranslate:d,doNotTranslate2:p,title:s,className:a,options:i,value:t,onChange:n,multiple:u,customValue:!0}),l&&(0,se.jsx)("div",{className:en.backText,children:h?l:k.I18n.t(l)})]},c)},o.renderInstance=function(e,t,n){var a=o.props,s=a.className,i=a.socket,r=e.name,l=e.options,u=e.frontText,d=e.backText,p=e.attr,h=e.adapter,g=e.doNotTranslate,m=e.doNotTranslateBack;return o.state.hideAttributes.includes(p)?null:(0,se.jsxs)("div",{className:k.Utils.clsx(en.displayFlex,en.blockMarginTop),style:{whiteSpace:"nowrap"},children:[u&&(0,se.jsx)("div",{className:en.frontText,children:g?u:k.I18n.t(u)}),(0,se.jsx)(kn,{attr:p,socket:i,adapter:h,title:r,className:s,options:l,value:t,onChange:n,customValue:!0,onInstanceHide:function(e){return o.setState({hideAttributes:[].concat((0,c.Z)(o.state.hideAttributes),[p])},(function(){return n(e)}))}}),d&&(0,se.jsx)("div",{className:en.backText,children:m?d:k.I18n.t(d)})]},p)},o.renderDialog=function(e,t,n){var a=e.onShowDialog,s=e.frontText,o=e.backText,i=e.attr,r=e.icon,l=e.doNotTranslate,c=e.doNotTranslateBack;return(0,se.jsxs)("div",{className:k.Utils.clsx(en.displayFlex,en.blockMarginTop),style:{whiteSpace:"nowrap"},children:[s&&(0,se.jsx)("div",{className:en.frontText,children:l?s:k.I18n.t(s)}),(0,se.jsx)(_t,{iconName:r,className:k.Utils.clsx(en.iconDialog),onClick:function(e){return a&&a()}}),o&&(0,se.jsx)("div",{className:en.backText,children:c?o:k.I18n.t(o)})]},i)},o.renderModalInput=function(e,t,n){var a=o.state.openModal,s=o.props.className,i=e.attr,r=e.nameBlock,l=e.frontText,c=e.backText,u=e.noTextEdit,d=e.doNotTranslate,p=e.doNotTranslateBack;return(0,se.jsxs)("div",{children:[(0,se.jsxs)("div",{className:k.Utils.clsx(en.displayFlex,en.blockMarginTop),children:[l&&(0,se.jsx)("div",{className:en.frontText,children:d?l:k.I18n.t(l)}),(0,se.jsx)(vn,{disabled:!!u,className:s,autoComplete:"off",fullWidth:!0,variant:"outlined",size:"small",value:t,onChange:n,customValue:!0}),(0,se.jsx)(dn,{square:!0,style:{marginLeft:5},value:"...",className:s,onClick:function(){return o.setState({openModal:!0})}}),c&&(0,se.jsx)("div",{className:en.backText,children:p?c:k.I18n.t(c)})]}),a?(0,se.jsx)(In,{open:!0,onApply:function(e){return o.setState({openModal:!1},(function(){return null!==e&&void 0!==e&&n(e)}))},onClose:function(){return o.setState({openModal:!1})},defaultValue:t,textInput:!0}):null,r&&(0,se.jsx)("div",{className:en.nameBlock,children:k.I18n.t(r)})]},i)},o.renderDate=function(e,t,n){var a=e.attr,s=e.backText,o=e.frontText,i=e.doNotTranslate,r=e.doNotTranslateBack;return(0,se.jsxs)("div",{className:en.displayFlex,style:{whiteSpace:"nowrap"},children:[o&&(0,se.jsx)("div",{className:en.frontText,children:i?o:k.I18n.t(o)}),(0,se.jsx)(Wn,{value:t,onChange:n}),s&&(0,se.jsx)("div",{className:en.backText,children:r?s:k.I18n.t(s)})]},a)},o.renderTags=function(){var e=o.state,t=e.tagCardArray,n=e.openTagMenu,a=o.state.settings.tagCard,s="="!==a&&"<>"!==a&&">="!==a&&"()"!==a&&"."!==a&&"<="!==a&&"<"!==a&&">"!==a?k.I18n.t(a):a;return t.length>=3&&(s=(0,se.jsxs)("div",{children:[(0,se.jsx)("div",{"aria-controls":"simple-menu","aria-haspopup":"true",onClick:function(e){o.setState({openTagMenu:e.currentTarget},(function(){o.props.isTourOpen&&o.props.tourStep===Hn&&setTimeout((function(){return o.props.setTourStep(qn)}),300)}))},children:s}),(0,se.jsx)(tn.Menu,{id:"simple-menu",anchorEl:n,keepMounted:!0,open:Boolean(n),onClose:function(){return o.setState({openTagMenu:null})},children:t.map((function(e){var t=e;return"string"!==typeof e&&(t=e.title),(0,se.jsxs)(tn.MenuItem,{selected:t===a,className:"tag-card-"+t,style:{placeContent:"space-between"},onClick:function(){var e=(0,dt.Z)((0,dt.Z)({},o.state.settings),{},{tagCard:t});o.setState({openTagMenu:null,settings:e},(function(){o.props.onChange(e),o.onTagChange(t)})),o.props.isTourOpen&&(o.props.tourStep===Hn||o.props.tourStep===qn)&&"interval"===t&&setTimeout((function(){return o.props.setTourStep(Yn)}),500)},children:[-1!==t.search(/>|<|<>|<=|>=|=/)?t:k.I18n.t(t),"string"!==typeof e&&e.title2&&(0,se.jsx)("div",{style:{marginLeft:4},children:k.I18n.t(e.title2)})]},t)}))})]})),s},o.onChangeTag=function(){var e=o.state,t=e.tagCardArray,n=e.settings,a=e.settings.tagCard,s=(0,c.Z)(t);if("string"!==typeof s[0]&&(s=s.map((function(e){return e.title}))),a&&s.length<3){var i=(0,dt.Z)({},n),r=s[(s.indexOf(a)+1)%s.length];i.tagCard=r,o.setState({settings:i},(function(){o.props.onChange(i),o.onTagChange(r)}))}},o.componentDidMount=function(){o.onTagChange()},o.componentDidUpdate=function(e){"triggers"!==o.props.acceptedBy&&o.props.onUpdate&&setTimeout((function(){return o.onUpdate()}),0)},o.onChangeInput=function(e){return function(t,n,a){var s=JSON.parse(JSON.stringify(o.state.settings));"object"!==typeof t||n&&"function"!==typeof n?s[n||e]=t:Object.keys(t).forEach((function(e){return s[e]=t[e]})),s.id=o.getData().id,s._id=o.props._id,o.setState({settings:s},(function(){o.onValueChanged(t,n||e),o.props.onChange(s),a&&a()}))}},o.render=function(){var e=o.state,t=e.inputs,n=e.name,s=e.icon,i=e.iconTag,r=e.settings,l=e.adapter,c=e.settings.tagCard,u=e.helpDialog,d=o.props,p=d.socket,h=d.notFound;return(0,se.jsxs)(a.Fragment,{children:[i?o.renderIconTag():(0,se.jsx)(_t,{iconName:s,className:k.Utils.clsx(en.iconThemCard,c&&o.state.tagCardArray.length&&en.iconThemCardSelectable),adapter:l,socket:p,onClick:function(e){c&&(o.state.tagCardArray.length<3?o.onChangeTag():o.setState({openTagMenu:e.currentTarget}))}}),(0,se.jsxs)("div",{className:en.blockName,children:[(0,se.jsxs)("span",{className:en.nameCard,children:[k.I18n.t(n),h?k.I18n.t("%s not found",r.id):"",u?(0,se.jsx)(E.Z,{className:en.iconHelp,size:"small",onClick:function(){return o.setState({helpText:k.I18n.t(u)})},children:(0,se.jsx)(nn.Z,{})}):null]}),t.filter((function(e){var t=e.nameRender;return o[t]})).map((function(e){var t=e.nameRender,n=e.defaultValue,a=e.attr,s=e.options;return o[t](e,void 0!==r[a]?r[a]:n,o.onChangeInput(a),s||[])}))]}),c&&(0,se.jsx)("div",{className:en.controlMenuTop,style:{opacity:1,height:22,top:-22},children:(0,se.jsx)("div",{onClick:function(){return o.onChangeTag()},className:k.Utils.clsx(en.tagCard,"tag-card"),children:o.renderTags()})}),o.renderDebugInfo(),o.state.error?(0,se.jsx)(sn.default,{title:k.I18n.t("Warning"),text:o.state.error,onClose:function(){return o.setState({error:""})}}):null,o.state.helpText?(0,se.jsx)(y.default,{title:k.I18n.t("Instructions"),text:o.state.helpText,onClose:function(){return o.setState({helpText:""})}}):null,o.renderSpecific()]})},s=s||{};var i=e.settings||{tagCard:s.tagCardArray?"string"!==typeof s.tagCardArray[0]?s.tagCardArray[0].title:s.tagCardArray[0]:""};return!i.tagCard&&s.tagCardArray&&(i.tagCard="string"!==typeof s.tagCardArray[0]?s.tagCardArray[0].title:s.tagCardArray[0]),o.state={inputs:s.inputs||e.inputs||[],name:s.name||e.name||"",icon:s.icon||e.icon||"",adapter:s.adapter||e.adapter||"",helpDialog:s.helpDialog||e.helpDialog||"",tagCardArray:s.tagCardArray||[],openTagMenu:!1,openModal:!1,iconTag:!1,error:"",helpText:"",oid:{},instanceSelectionOptions:[],instanceSelectionDef:"",hideAttributes:[],settings:i,debugMessage:null,enableSimulation:o.props.enableSimulation},o.debugHideTimeout=null,o}return(0,d.Z)(n,[{key:"UNSAFE_componentWillReceiveProps",value:function(e){var t=this;if(e&&e.settings){var n=JSON.parse(JSON.stringify(e.settings));!n.tagCard&&this.state.tagCardArray&&this.state.tagCardArray.length&&(n.tagCard="string"!==typeof this.state.tagCardArray[0]?this.state.tagCardArray[0].title:this.state.tagCardArray[0]);var a=null;e.onDebugMessage&&e.onDebugMessage.blockId===this.props._id&&((a={}).debugMessage=JSON.parse(JSON.stringify(e.onDebugMessage)),this.debugHideTimeout&&clearTimeout(this.debugHideTimeout),this.debugHideTimeout=setTimeout((function(){return t.setState({debugMessage:null})}),e.onDebugMessage.hideTimeout||5e3)),JSON.stringify(n)!==JSON.stringify(this.state.settings)&&((a=a||{}).settings=n),this.state.enableSimulation!==e.enableSimulation&&((a=a||{}).enableSimulation=e.enableSimulation),a&&this.setState(a)}else console.log(JSON.stringify(e))}},{key:"componentWillUnmount",value:function(){this.debugHideTimeout&&clearTimeout(this.debugHideTimeout),this.debugHideTimeout=null}},{key:"onTagChange",value:function(e,t){var n=!1,a=JSON.parse(JSON.stringify(this.state.settings));this.state.inputs.forEach((function(e){e.attr&&void 0!==e.defaultValue&&void 0===a[e.attr]&&(n=!0,a[e.attr]=e.defaultValue)})),n?(this.setState({settings:a},(function(){return t&&t()})),this.props.onChange(a)):t&&t()}},{key:"onUpdate",value:function(){}},{key:"onValueChanged",value:function(e,t){}},{key:"renderSpecific",value:function(){return null}},{key:"renderDebugInfo",value:function(){return this.state.debugMessage?(0,se.jsx)("div",{className:en.debugInfo,style:{opacity:1,height:22,bottom:-22},children:this.renderDebug?this.renderDebug(this.state.debugMessage):k.I18n.t("executed")},this.state.debugMessage.ts):null}}],[{key:"getReplacesInText",value:function(e){var t,n="";return null!==(t=e.trigger)&&void 0!==t&&t.oidType?n=".replace(/%s/g, obj.state.val).replace(/%id/g, obj.id).replace(/%name/g, obj.common && obj.common.name).replace(/%old/g, obj.oldState.val)":e.conditionsStates.length&&(n=".replace(/%s/g, ".concat(e.conditionsStates[0].name,').replace(/%id/g, "').concat(e.conditionsStates[0].id,'")')),n}}]),n}(a.PureComponent),na={en:{name:"Google - English",engine:"google",params:[]},de:{name:"Google - Deutsch",engine:"google",params:[]},ru:{name:"Google - \u0420\u0443\u0441\u0441\u043a\u0438\u0439",engine:"google",params:[]},it:{name:"Google - Italiano",engine:"google",params:[]},es:{name:"Google - Espaniol",engine:"google",params:[]},fr:{name:"Google - Fran\xe7ais",engine:"google",params:[]},ru_YA:{name:"Yandex - \u0420\u0443\u0441\u0441\u043a\u0438\u0439",engine:"yandex",params:["key","voice","emotion","ill","drunk","robot"],voice:["jane","zahar"],emotion:["none","good","neutral","evil","mixed"]},ru_YA_CLOUD:{name:"Yandex Cloud - \u0420\u0443\u0441\u0441\u043a\u0438\u0439",engine:"yandexCloud",params:["key","folderID","voice","emotion"],voice:["alyss","oksana","jane","zahar"],emotion:["good","neutral","evil"]},"en-US":{name:"PicoTTS - Englisch US",engine:"PicoTTS",params:[]},"en-GB":{name:"PicoTTS - Englisch GB",engine:"PicoTTS",params:[]},"de-DE":{name:"PicoTTS - Deutsch",engine:"PicoTTS",params:[]},"it-IT":{name:"PicoTTS - Italiano",engine:"PicoTTS",params:[]},"es-ES":{name:"PicoTTS - Espaniol",engine:"PicoTTS",params:[]},"fr-FR":{name:"PicoTTS - Fran\xe7ais",engine:"PicoTTS",params:[]},"ru-RU_CLOUD_Female":{gender:"Female",engine:"cloud",params:["cloud"],language:"ru-RU",ename:"Tatyana",ssml:!0,name:"Cloud - \u0420\u0443\u0441\u0441\u043a\u0438\u0439 - \u0422\u0430\u0442\u044c\u044f\u043d\u0430"},"ru-RU_CLOUD_Male":{gender:"Male",engine:"cloud",params:["cloud"],language:"ru-RU",ename:"Maxim",ssml:!0,name:"Cloud - \u0420\u0443\u0441\u0441\u043a\u0438\u0439 - \u041c\u0430\u043a\u0441\u0438\u043c"},"de-DE_CLOUD_Female":{gender:"Female",engine:"cloud",params:["cloud"],language:"de-DE",ename:"Marlene",ssml:!0,name:"Cloud - Deutsch - Marlene"},"de-DE_CLOUD_Male":{gender:"Male",engine:"cloud",params:["cloud"],language:"de-DE",ename:"Hans",ssml:!0,name:"Cloud - Deutsch - Hans"},"en-US_CLOUD_Female":{gender:"Female",engine:"cloud",params:["cloud"],language:"en-US",ename:"Salli",ssml:!0,name:"Cloud - en-US - Female - Salli"},"en-US_CLOUD_Male":{gender:"Male",engine:"cloud",params:["cloud"],language:"en-US",ename:"Joey",ssml:!0,name:"Cloud - en-US - Male - Joey"},"da-DK_CLOUD_Female":{gender:"Female",engine:"cloud",params:["cloud"],language:"da-DK",ename:"Naja",ssml:!0,name:"Cloud - da-DK - Female - Naja"},"da-DK_CLOUD_Male":{gender:"Male",engine:"cloud",params:["cloud"],language:"da-DK",ename:"Mads",ssml:!0,name:"Cloud - da-DK - Male - Mads"},"en-AU_CLOUD_Female":{gender:"Female",engine:"cloud",params:["cloud"],language:"en-AU",ename:"Nicole",ssml:!0,name:"Cloud - en-AU - Female - Nicole"},"en-AU_CLOUD_Male":{gender:"Male",engine:"cloud",params:["cloud"],language:"en-AU",ename:"Russell",ssml:!0,name:"Cloud - en-AU - Male - Russell"},"en-GB_CLOUD_Female_Amy":{gender:"Female",engine:"cloud",params:["cloud"],language:"en-GB",ename:"Amy",ssml:!0,name:"Cloud - en-GB - Female - Amy"},"en-GB_CLOUD_Male":{gender:"Male",engine:"cloud",params:["cloud"],language:"en-GB",ename:"Brian",ssml:!0,name:"Cloud - en-GB - Male - Brian"},"en-GB_CLOUD_Female_Emma":{gender:"Female",engine:"cloud",params:["cloud"],language:"en-GB",ename:"Emma",ssml:!0,name:"Cloud - en-GB - Female - Emma"},"en-GB-WLS_CLOUD_Female":{gender:"Female",engine:"cloud",params:["cloud"],language:"en-GB-WLS",ename:"Gwyneth",ssml:!0,name:"Cloud - en-GB-WLS - Female - Gwyneth"},"en-GB-WLS_CLOUD_Male":{gender:"Male",engine:"cloud",params:["cloud"],language:"en-GB-WLS",ename:"Geraint",ssml:!0,name:"Cloud - en-GB-WLS - Male - Geraint"},"cy-GB_CLOUD_Female":{gender:"Female",engine:"cloud",params:["cloud"],language:"cy-GB",ename:"Gwyneth",ssml:!0,name:"Cloud - cy-GB - Female - Gwyneth"},"cy-GB_CLOUD_Male":{gender:"Male",engine:"cloud",params:["cloud"],language:"cy-GB",ename:"Geraint",ssml:!0,name:"Cloud - cy-GB - Male - Geraint"},"en-IN_CLOUD_Female":{gender:"Female",engine:"cloud",params:["cloud"],language:"en-IN",ename:"Raveena",ssml:!0,name:"Cloud - en-IN - Female - Raveena"},"en-US_CLOUD_Male_Chipmunk":{gender:"Male",engine:"cloud",params:["cloud"],language:"en-US",ename:"Chipmunk",ssml:!0,name:"Cloud - en-US - Male - Chipmunk"},"en-US_CLOUD_Male_Eric":{gender:"Male",engine:"cloud",params:["cloud"],language:"en-US",ename:"Eric",ssml:!0,name:"Cloud - en-US - Male - Eric"},"en-US_CLOUD_Female_Ivy":{gender:"Female",engine:"cloud",params:["cloud"],language:"en-US",ename:"Ivy",ssml:!0,name:"Cloud - en-US - Female - Ivy"},"en-US_CLOUD_Female_Jennifer":{gender:"Female",engine:"cloud",params:["cloud"],language:"en-US",ename:"Jennifer",ssml:!0,name:"Cloud - en-US - Female - Jennifer"},"en-US_CLOUD_Male_Justin":{gender:"Male",engine:"cloud",params:["cloud"],language:"en-US",ename:"Justin",ssml:!0,name:"Cloud - en-US - Male - Justin"},"en-US_CLOUD_Female_Kendra":{gender:"Female",engine:"cloud",params:["cloud"],language:"en-US",ename:"Kendra",ssml:!0,name:"Cloud - en-US - Female - Kendra"},"en-US_CLOUD_Female_Kimberly":{gender:"Female",engine:"cloud",params:["cloud"],language:"en-US",ename:"Kimberly",ssml:!0,name:"Cloud - en-US - Female - Kimberly"},"es-ES_CLOUD_Female":{gender:"Female",engine:"cloud",params:["cloud"],language:"es-ES",ename:"Conchita",ssml:!0,name:"Cloud - es-ES - Female - Conchita"},"es-ES_CLOUD_Male":{gender:"Male",engine:"cloud",params:["cloud"],language:"es-ES",ename:"Enrique",ssml:!0,name:"Cloud - es-ES - Male - Enrique"},"es-US_CLOUD_Female":{gender:"Female",engine:"cloud",params:["cloud"],language:"es-US",ename:"Penelope",ssml:!0,name:"Cloud - es-US - Female - Penelope"},"es-US_CLOUD_Male":{gender:"Male",engine:"cloud",params:["cloud"],language:"es-US",ename:"Miguel",ssml:!0,name:"Cloud - es-US - Male - Miguel"},"fr-CA_CLOUD_Female":{gender:"Female",engine:"cloud",params:["cloud"],language:"fr-CA",ename:"Chantal",ssml:!0,name:"Cloud - fr-CA - Female - Chantal"},"fr-FR_CLOUD_Female":{gender:"Female",engine:"cloud",params:["cloud"],language:"fr-FR",ename:"Celine",ssml:!0,name:"Cloud - fr-FR - Female - Celine"},"fr-FR_CLOUD_Male":{gender:"Male",engine:"cloud",params:["cloud"],language:"fr-FR",ename:"Mathieu",ssml:!0,name:"Cloud - fr-FR - Male - Mathieu"},"is-IS_CLOUD_Female":{gender:"Female",engine:"cloud",params:["cloud"],language:"is-IS",ename:"Dora",ssml:!0,name:"Cloud - is-IS - Female - Dora"},"is-IS_CLOUD_Male":{gender:"Male",engine:"cloud",params:["cloud"],language:"is-IS",ename:"Karl",ssml:!0,name:"Cloud - is-IS - Male - Karl"},"it-IT_CLOUD_Female":{gender:"Female",engine:"cloud",params:["cloud"],language:"it-IT",ename:"Carla",ssml:!0,name:"Cloud - it-IT - Female - Carla"},"it-IT_CLOUD_Male":{gender:"Male",engine:"cloud",params:["cloud"],language:"it-IT",ename:"Giorgio",ssml:!0,name:"Cloud - it-IT - Male - Giorgio"},"nb-NO_CLOUD_Female":{gender:"Female",engine:"cloud",params:["cloud"],language:"nb-NO",ename:"Liv",ssml:!0,name:"Cloud - nb-NO - Female - Liv"},"nl-NL_CLOUD_Female":{gender:"Female",engine:"cloud",params:["cloud"],language:"nl-NL",ename:"Lotte",ssml:!0,name:"Cloud - nl-NL - Female - Lotte"},"nl-NL_CLOUD_Male":{gender:"Male",engine:"cloud",params:["cloud"],language:"nl-NL",ename:"Ruben",ssml:!0,name:"Cloud - nl-NL - Male - Ruben"},"pl-PL_CLOUD_Female_Agnieszka":{gender:"Female",engine:"cloud",params:["cloud"],language:"pl-PL",ename:"Agnieszka",ssml:!0,name:"Cloud - pl-PL - Female - Agnieszka"},"pl-PL_CLOUD_Male_Jacek":{gender:"Male",engine:"cloud",params:["cloud"],language:"pl-PL",ename:"Jacek",ssml:!0,name:"Cloud - pl-PL - Male - Jacek"},"pl-PL_CLOUD_Female_Ewa":{gender:"Female",engine:"cloud",params:["cloud"],language:"pl-PL",ename:"Ewa",ssml:!0,name:"Cloud - pl-PL - Female - Ewa"},"pl-PL_CLOUD_Male_Jan":{gender:"Male",engine:"cloud",params:["cloud"],language:"pl-PL",ename:"Jan",ssml:!0,name:"Cloud - pl-PL - Male - Jan"},"pl-PL_CLOUD_Female":{gender:"Female",engine:"cloud",params:["cloud"],language:"pl-PL",ename:"Maja",ssml:!0,name:"Cloud - pl-PL - Female - Maja"},"pt-BR_CLOUD_Female":{gender:"Female",engine:"cloud",params:["cloud"],language:"pt-BR",ename:"Vitoria",ssml:!0,name:"Cloud - pt-BR - Female - Vitoria"},"pt-BR_CLOUD_Male":{gender:"Male",engine:"cloud",params:["cloud"],language:"pt-BR",ename:"Ricardo",ssml:!0,name:"Cloud - pt-BR - Male - Ricardo"},"pt-PT_CLOUD_Male":{gender:"Male",engine:"cloud",params:["cloud"],language:"pt-PT",ename:"Cristiano",ssml:!0,name:"Cloud - pt-PT - Male - Cristiano"},"pt-PT_CLOUD_Female":{gender:"Female",engine:"cloud",params:["cloud"],language:"pt-PT",ename:"Ines",ssml:!0,name:"Cloud - pt-PT - Female - Ines"},"ro-RO_CLOUD_Female":{gender:"Female",engine:"cloud",params:["cloud"],language:"ro-RO",ename:"Carmen",ssml:!0,name:"Cloud - ro-RO - Female - Carmen"},"sv-SE_CLOUD_Female":{gender:"Female",engine:"cloud",params:["cloud"],language:"sv-SE",ename:"Astrid",ssml:!0,name:"Cloud - sv-SE - Female - Astrid"},"tr-TR_CLOUD_Female":{gender:"Female",engine:"cloud",params:["cloud"],language:"tr-TR",ename:"Filiz",ssml:!0,name:"Cloud - tr-TR - Female - Filiz"},"ru-RU_AP_Female":{gender:"Female",engine:"polly",params:["accessKey","secretKey","region"],language:"ru-RU",ename:"Tatyana",ssml:!0,name:"AWS Polly - \u0420\u0443\u0441\u0441\u043a\u0438\u0439 - \u0422\u0430\u0442\u044c\u044f\u043d\u0430"},"ru-RU_AP_Male":{gender:"Male",engine:"polly",params:["accessKey","secretKey","region"],language:"ru-RU",ename:"Maxim",ssml:!0,name:"AWS Polly - \u0420\u0443\u0441\u0441\u043a\u0438\u0439 - \u041c\u0430\u043a\u0441\u0438\u043c"},"de-DE_AP_Female":{gender:"Female",engine:"polly",params:["accessKey","secretKey","region"],language:"de-DE",ename:"Marlene",ssml:!0,name:"AWS Polly - Deutsch - Marlene"},"de-DE_AP_Female_Vicky":{gender:"Female",engine:"polly",params:["accessKey","secretKey","region"],language:"de-DE",ename:"Vicky",ssml:!0,name:"AWS Polly - Deutsch - Vicky"},"de-DE_AP_Male":{gender:"Male",engine:"polly",params:["accessKey","secretKey","region"],language:"de-DE",ename:"Hans",ssml:!0,name:"AWS Polly - Deutsch - Hans"},"en-US_AP_Female":{gender:"Female",engine:"polly",params:["accessKey","secretKey","region"],language:"en-US",ename:"Salli",ssml:!0,name:"AWS Polly - en-US - Female - Salli"},"en-US_AP_Male":{gender:"Male",engine:"polly",params:["accessKey","secretKey","region"],language:"en-US",ename:"Joey",ssml:!0,name:"AWS Polly - en-US - Male - Joey"},"da-DK_AP_Female":{gender:"Female",engine:"polly",params:["accessKey","secretKey","region"],language:"da-DK",ename:"Naja",ssml:!0,name:"AWS Polly - da-DK - Female - Naja"},"da-DK_AP_Male":{gender:"Male",engine:"polly",params:["accessKey","secretKey","region"],language:"da-DK",ename:"Mads",ssml:!0,name:"AWS Polly - da-DK - Male - Mads"},"en-AU_AP_Female":{gender:"Female",engine:"polly",params:["accessKey","secretKey","region"],language:"en-AU",ename:"Nicole",ssml:!0,name:"AWS Polly - en-AU - Female - Nicole"},"en-AU_AP_Male":{gender:"Male",engine:"polly",params:["accessKey","secretKey","region"],language:"en-AU",ename:"Russell",ssml:!0,name:"AWS Polly - en-AU - Male - Russell"},"en-GB_AP_Female_Amy":{gender:"Female",engine:"polly",params:["accessKey","secretKey","region"],language:"en-GB",ename:"Amy",ssml:!0,name:"AWS Polly - en-GB - Female - Amy"},"en-GB_AP_Male":{gender:"Male",engine:"polly",params:["accessKey","secretKey","region"],language:"en-GB",ename:"Brian",ssml:!0,name:"AWS Polly - en-GB - Male - Brian"},"en-GB_AP_Female_Emma":{gender:"Female",engine:"polly",params:["accessKey","secretKey","region"],language:"en-GB",ename:"Emma",ssml:!0,name:"AWS Polly - en-GB - Female - Emma"},"en-GB-WLS_AP_Female":{gender:"Female",engine:"polly",params:["accessKey","secretKey","region"],language:"en-GB-WLS",ename:"Gwyneth",ssml:!0,name:"AWS Polly - en-GB-WLS - Female - Gwyneth"},"en-GB-WLS_AP_Male":{gender:"Male",engine:"polly",params:["accessKey","secretKey","region"],language:"en-GB-WLS",ename:"Geraint",ssml:!0,name:"AWS Polly - en-GB-WLS - Male - Geraint"},"cy-GB_AP_Female":{gender:"Female",engine:"polly",params:["accessKey","secretKey","region"],language:"cy-GB",ename:"Gwyneth",ssml:!0,name:"AWS Polly - cy-GB - Female - Gwyneth"},"cy-GB_AP_Male":{gender:"Male",engine:"polly",params:["accessKey","secretKey","region"],language:"cy-GB",ename:"Geraint",ssml:!0,name:"AWS Polly - cy-GB - Male - Geraint"},"en-IN_AP_Female":{gender:"Female",engine:"polly",params:["accessKey","secretKey","region"],language:"en-IN",ename:"Raveena",ssml:!0,name:"AWS Polly - en-IN - Female - Raveena"},"en-US_AP_Male_Chipmunk":{gender:"Male",engine:"polly",params:["accessKey","secretKey","region"],language:"en-US",ename:"Chipmunk",ssml:!0,name:"AWS Polly - en-US - Male - Chipmunk"},"en-US_AP_Male_Eric":{gender:"Male",engine:"polly",params:["accessKey","secretKey","region"],language:"en-US",ename:"Eric",ssml:!0,name:"AWS Polly - en-US - Male - Eric"},"en-US_AP_Female_Ivy":{gender:"Female",engine:"polly",params:["accessKey","secretKey","region"],language:"en-US",ename:"Ivy",ssml:!0,name:"AWS Polly - en-US - Female - Ivy"},"en-US_AP_Female_Jennifer":{gender:"Female",engine:"polly",params:["accessKey","secretKey","region"],language:"en-US",ename:"Jennifer",ssml:!0,name:"AWS Polly - en-US - Female - Jennifer"},"en-US_AP_Male_Justin":{gender:"Male",engine:"polly",params:["accessKey","secretKey","region"],language:"en-US",ename:"Justin",ssml:!0,name:"AWS Polly - en-US - Male - Justin"},"en-US_AP_Female_Kendra":{gender:"Female",engine:"polly",params:["accessKey","secretKey","region"],language:"en-US",ename:"Kendra",ssml:!0,name:"AWS Polly - en-US - Female - Kendra"},"en-US_AP_Female_Kimberly":{gender:"Female",engine:"polly",params:["accessKey","secretKey","region"],language:"en-US",ename:"Kimberly",ssml:!0,name:"AWS Polly - en-US - Female - Kimberly"},"es-ES_AP_Female":{gender:"Female",engine:"polly",params:["accessKey","secretKey","region"],language:"es-ES",ename:"Conchita",ssml:!0,name:"AWS Polly - es-ES - Female - Conchita"},"es-ES_AP_Male":{gender:"Male",engine:"polly",params:["accessKey","secretKey","region"],language:"es-ES",ename:"Enrique",ssml:!0,name:"AWS Polly - es-ES - Male - Enrique"},"es-US_AP_Female":{gender:"Female",engine:"polly",params:["accessKey","secretKey","region"],language:"es-US",ename:"Penelope",ssml:!0,name:"AWS Polly - es-US - Female - Penelope"},"es-US_AP_Male":{gender:"Male",engine:"polly",params:["accessKey","secretKey","region"],language:"es-US",ename:"Miguel",ssml:!0,name:"AWS Polly - es-US - Male - Miguel"},"fr-CA_AP_Female":{gender:"Female",engine:"polly",params:["accessKey","secretKey","region"],language:"fr-CA",ename:"Chantal",ssml:!0,name:"AWS Polly - fr-CA - Female - Chantal"},"fr-FR_AP_Female":{gender:"Female",engine:"polly",params:["accessKey","secretKey","region"],language:"fr-FR",ename:"Celine",ssml:!0,name:"AWS Polly - fr-FR - Female - Celine"},"fr-FR_AP_Male":{gender:"Male",engine:"polly",params:["accessKey","secretKey","region"],language:"fr-FR",ename:"Mathieu",ssml:!0,name:"AWS Polly - fr-FR - Male - Mathieu"},"is-IS_AP_Female":{gender:"Female",engine:"polly",params:["accessKey","secretKey","region"],language:"is-IS",ename:"Dora",ssml:!0,name:"AWS Polly - is-IS - Female - Dora"},"is-IS_AP_Male":{gender:"Male",engine:"polly",params:["accessKey","secretKey","region"],language:"is-IS",ename:"Karl",ssml:!0,name:"AWS Polly - is-IS - Male - Karl"},"it-IT_AP_Female":{gender:"Female",engine:"polly",params:["accessKey","secretKey","region"],language:"it-IT",ename:"Carla",ssml:!0,name:"AWS Polly - it-IT - Female - Carla"},"it-IT_AP_Male":{gender:"Male",engine:"polly",params:["accessKey","secretKey","region"],language:"it-IT",ename:"Giorgio",ssml:!0,name:"AWS Polly - it-IT - Male - Giorgio"},"nb-NO_AP_Female":{gender:"Female",engine:"polly",params:["accessKey","secretKey","region"],language:"nb-NO",ename:"Liv",ssml:!0,name:"AWS Polly - nb-NO - Female - Liv"},"nl-NL_AP_Female":{gender:"Female",engine:"polly",params:["accessKey","secretKey","region"],language:"nl-NL",ename:"Lotte",ssml:!0,name:"AWS Polly - nl-NL - Female - Lotte"},"nl-NL_AP_Male":{gender:"Male",engine:"polly",params:["accessKey","secretKey","region"],language:"nl-NL",ename:"Ruben",ssml:!0,name:"AWS Polly - nl-NL - Male - Ruben"},"pl-PL_AP_Female_Agnieszka":{gender:"Female",engine:"polly",params:["accessKey","secretKey","region"],language:"pl-PL",ename:"Agnieszka",ssml:!0,name:"AWS Polly - pl-PL - Female - Agnieszka"},"pl-PL_AP_Male_Jacek":{gender:"Male",engine:"polly",params:["accessKey","secretKey","region"],language:"pl-PL",ename:"Jacek",ssml:!0,name:"AWS Polly - pl-PL - Male - Jacek"},"pl-PL_AP_Female_Ewa":{gender:"Female",engine:"polly",params:["accessKey","secretKey","region"],language:"pl-PL",ename:"Ewa",ssml:!0,name:"AWS Polly - pl-PL - Female - Ewa"},"pl-PL_AP_Male_Jan":{gender:"Male",engine:"polly",params:["accessKey","secretKey","region"],language:"pl-PL",ename:"Jan",ssml:!0,name:"AWS Polly - pl-PL - Male - Jan"},"pl-PL_AP_Female":{gender:"Female",engine:"polly",params:["accessKey","secretKey","region"],language:"pl-PL",ename:"Maja",ssml:!0,name:"AWS Polly - pl-PL - Female - Maja"},"pt-BR_AP_Female":{gender:"Female",engine:"polly",params:["accessKey","secretKey","region"],language:"pt-BR",ename:"Vitoria",ssml:!0,name:"AWS Polly - pt-BR - Female - Vitoria"},"pt-BR_AP_Male":{gender:"Male",engine:"polly",params:["accessKey","secretKey","region"],language:"pt-BR",ename:"Ricardo",ssml:!0,name:"AWS Polly - pt-BR - Male - Ricardo"},"pt-PT_AP_Male":{gender:"Male",engine:"polly",params:["accessKey","secretKey","region"],language:"pt-PT",ename:"Cristiano",ssml:!0,name:"AWS Polly - pt-PT - Male - Cristiano"},"pt-PT_AP_Female":{gender:"Female",engine:"polly",params:["accessKey","secretKey","region"],language:"pt-PT",ename:"Ines",ssml:!0,name:"AWS Polly - pt-PT - Female - Ines"},"ro-RO_AP_Female":{gender:"Female",engine:"polly",params:["accessKey","secretKey","region"],language:"ro-RO",ename:"Carmen",ssml:!0,name:"AWS Polly - ro-RO - Female - Carmen"},"sv-SE_AP_Female":{gender:"Female",engine:"polly",params:["accessKey","secretKey","region"],language:"sv-SE",ename:"Astrid",ssml:!0,name:"AWS Polly - sv-SE - Female - Astrid"},"tr-TR_AP_Female":{gender:"Female",engine:"polly",params:["accessKey","secretKey","region"],language:"tr-TR",ename:"Filiz",ssml:!0,name:"AWS Polly - tr-TR - Female - Filiz"}},aa=function(e){(0,p.Z)(n,e);var t=(0,h.Z)(n);function n(e){return(0,u.Z)(this,n),t.call(this,e,n.getStaticData())}return(0,d.Z)(n,[{key:"renderDebug",value:function(e){return"".concat(k.I18n.t("Say:")," ").concat(e.data.text)}},{key:"onTagChange",value:function(e){var t=this,a=k.I18n.getLanguage(),s=Object.keys(na).filter((function(e){return e.startsWith(a)})).map((function(e){return{title:na[e].name,value:e}}));s.unshift({title:"Default",value:"_"}),this.setState({inputs:[{attr:"instance",nameRender:"renderInstance",adapter:"sayit",defaultValue:"sayit.0",frontText:"Instance:"},{nameRender:"renderSelect",frontText:"Language:",options:s,defaultValue:"_",attr:"language"},{nameRender:"renderNameText",defaultValue:"Volume",attr:"textVol"},{nameRender:"renderSlider",attr:"volume",defaultValue:100,min:0,max:100},{attr:"text",nameRender:"renderModalInput",defaultValue:"Hallo",nameBlock:"",frontText:"Text:"}]},(function(){return(0,Xt.Z)((0,$t.Z)(n.prototype),"onTagChange",t).call(t,e)}))}},{key:"getData",value:function(){return n.getStaticData()}}],[{key:"compile",value:function(e,t){return e.text?"// Sayit ".concat(e.text||"","\n\t\tconst subActionVar").concat(e._id,' = "').concat(e.language&&"_"!==e.language?"".concat(e.language,";"):"").concat(e.volume?"".concat(e.volume,";"):"").concat((e.text||"").replace(/"/g,'\\"'),'"').concat(ta.getReplacesInText(t),";\n\t\t_sendToFrontEnd(").concat(e._id,", {text: subActionVar").concat(e._id,'});\n\t\tawait setStateAsync("').concat(e.instance,'.tts.text", subActionVar').concat(e._id,");"):"// no text defined\n_sendToFrontEnd(".concat(e._id,", {text: 'No text defined'});")}},{key:"getStaticData",value:function(){return{acceptedBy:"actions",name:"Say It",id:"ActionSayText",adapter:"sayit",title:"Say some text via sayit adapter",helpDialog:"You can use %s in the text to display current trigger value or %id to display the triggered object ID"}}}]),n}(ta),sa=aa,oa=function(e){(0,p.Z)(n,e);var t=(0,h.Z)(n);function n(e){return(0,u.Z)(this,n),t.call(this,e,n.getStaticData())}return(0,d.Z)(n,[{key:"renderDebug",value:function(e){return"".concat(k.I18n.t("Sent:")," ").concat(e.data.text)}},{key:"onTagChange",value:function(e){var t=this;this.setState({inputs:[{attr:"instance",nameRender:"renderInstance",defaultValue:"email.0",frontText:"Instance:",adapter:"email"},{attr:"recipients",nameRender:"renderText",defaultValue:"user@mail.ru",frontText:"To:"},{attr:"subject",nameRender:"renderText",defaultValue:"Email from iobroker",nameBlock:"",frontText:"Subject:"},{attr:"text",nameRender:"renderModalInput",defaultValue:"Email from iobroker",nameBlock:"",frontText:"Body:"}]},(function(){return(0,Xt.Z)((0,$t.Z)(n.prototype),"onTagChange",t).call(t,e)}))}},{key:"getData",value:function(){return n.getStaticData()}}],[{key:"compile",value:function(e,t){return e.recipients?"// Send Email ".concat(e.text||"","\n\t\tconst subActionVar").concat(e._id,' = "').concat((e.text||"").replace(/"/g,'\\"'),'"').concat(ta.getReplacesInText(t),";\n\t\t_sendToFrontEnd(").concat(e._id,", {text: subActionVar").concat(e._id,'});\n\t\tsendTo("').concat(e.instance||"email.0",'", {\n\t\t to: "').concat(e.recipients||"",'",\n\t\t subject: "').concat((e.subject||"ioBroker").replace(/"/g,'\\"'),'"').concat(ta.getReplacesInText(t),",\n\t\t text: subActionVar").concat(e._id,"\n\t\t});"):"// no recipients defined'\n_sendToFrontEnd(".concat(e._id,", {text: 'No recipients defined'});")}},{key:"getStaticData",value:function(){return{acceptedBy:"actions",name:"Send email",id:"ActionSendEmail",adapter:"email",title:"Sends an email",helpDialog:"You can use %s in the text to display current trigger value or %id to display the triggered object ID"}}}]),n}(ta),ia=function(e){(0,p.Z)(n,e);var t=(0,h.Z)(n);function n(e){var a;return(0,u.Z)(this,n),(a=t.call(this,e,n.getStaticData())).cachePromises={},a}return(0,d.Z)(n,[{key:"renderDebug",value:function(e){return"".concat(k.I18n.t("Sent:")," ").concat(e.data.text)}},{key:"onValueChanged",value:function(e,t){"instance"===t&&this._setUsers(e)}},{key:"_setUsers",value:function(e){var t=this;if(e=e||this.state.settings.instance||"telegram.0",this.cachePromises[e]=this.cachePromises[e]||this.props.socket.getState("".concat(e,".communicate.users")),!this.state.settings._id)return this.setState({inputs:[{nameRender:"renderSelect",adapter:"telegram",frontText:"Instance:",defaultValue:"telegram.0",attr:"instance"},{nameRender:"renderSelect",attr:"user",options:[{title:"telegram.0",value:"telegram.0"}],defaultValue:"",frontText:"User:"},{nameRender:"renderModalInput",attr:"text",defaultValue:"Hallo",nameBlock:"",frontText:"Text:"}]},(function(){return(0,Xt.Z)((0,$t.Z)(n.prototype),"onTagChange",t).call(t)}));this.cachePromises[e].then((function(e){try{var a;(e=(e=(e=null!==(a=e)&&void 0!==a&&a.val?JSON.parse(e.val):null)&&Object.keys(e).map((function(t){return{title:e[t].userName||e[t].firstName,value:t}})))||[]).unshift({title:"all",value:""})}catch(s){e=[{title:"all",value:""}]}t.setState({inputs:[{nameRender:"renderInstance",adapter:"telegram",frontText:"Instance:",defaultValue:"telegram.0",attr:"instance"},{nameRender:"renderSelect",attr:"user",options:e,defaultValue:"_",frontText:"User:"},{nameRender:"renderModalInput",attr:"text",defaultValue:"Hallo",nameBlock:"",frontText:"Text:"}]},(function(){return(0,Xt.Z)((0,$t.Z)(n.prototype),"onTagChange",t).call(t)}))}))}},{key:"onTagChange",value:function(e){this._setUsers()}},{key:"getData",value:function(){return n.getStaticData()}}],[{key:"compile",value:function(e,t){var n=(e.text||"").replace(/"/g,'\\"');return n?"// Telegram ".concat(n||"","\n\t\tconst subActionVar").concat(e._id,' = "').concat((n||"").replace(/"/g,'\\"'),'"').concat(ta.getReplacesInText(t),";\n\t\t_sendToFrontEnd(").concat(e._id,", {text: subActionVar").concat(e._id,'});\n\t\tsendTo("').concat(e.instance,'", "send", ').concat(e.user&&"_"!==e.user?'{user: "'.concat((e.user||"").replace(/"/g,'\\"'),'", text: subActionVar').concat(e._id,"}"):"subActionVar".concat(e._id),");"):"// no text defined\n_sendToFrontEnd(".concat(e._id,", {text: 'No text defined'});")}},{key:"getStaticData",value:function(){return{acceptedBy:"actions",name:"Telegram",id:"ActionTelegram",adapter:"telegram",title:"Sends message via telegram",helpDialog:"You can use %s in the text to display current trigger value or %id to display the triggered object ID"}}}]),n}(ta),ra=function(e){(0,p.Z)(n,e);var t=(0,h.Z)(n);function n(e){var a;return(0,u.Z)(this,n),(a=t.call(this,e,n.getStaticData())).cachePromises={},a}return(0,d.Z)(n,[{key:"renderDebug",value:function(e){return"Sent: ".concat(e.data.text)}},{key:"onTagChange",value:function(e){var t=this;this.setState({inputs:[{nameRender:"renderInstance",adapter:"pushover",frontText:"Instance:",defaultValue:"pushover.0",attr:"instance"},{nameRender:"renderModalInput",attr:"text",defaultValue:"Hello",nameBlock:"",frontText:"Text:"},{nameRender:"renderText",attr:"title",defaultValue:"ioBroker",frontText:"Title:"},{nameRender:"renderSelect",attr:"sound",defaultValue:"magic",frontText:"Sound:",doNotTranslate:!0,options:[{value:"pushover",title:"pushover"},{value:"bike",title:"bike"},{value:"bugle",title:"bugle"},{value:"cashregister",title:"cashregister"},{value:"classical",title:"classical"},{value:"cosmic",title:"cosmic"},{value:"falling",title:"falling"},{value:"gamelan",title:"gamelan"},{value:"incoming",title:"incoming"},{value:"intermission",title:"intermission"},{value:"magic",title:"magic"},{value:"mechanical",title:"mechanical"},{value:"pianobar",title:"pianobar"},{value:"siren",title:"siren"},{value:"spacealarm",title:"spacealarm"},{value:"tugboat",title:"tugboat"},{value:"alien",title:"alien"},{value:"climb",title:"climb"},{value:"persistent",title:"persistent"},{value:"echo",title:"echo"},{value:"updown",title:"updown"},{value:"none",title:"none"}]},{nameRender:"renderSelect",attr:"priority",defaultValue:-1,frontText:"Priority:",options:[{value:-1,title:"quiet"},{value:0,title:"normal"},{value:1,title:"high-priority"},{value:2,title:"acknowledgment"}]}]},(function(){return(0,Xt.Z)((0,$t.Z)(n.prototype),"onTagChange",t).call(t)}))}},{key:"getData",value:function(){return n.getStaticData()}}],[{key:"compile",value:function(e,t){var n=(e.text||"").replace(/"/g,'\\"');return n?"// Pushover ".concat(e.text||"","\n\t\tconst subActionVar").concat(e._id,' = "').concat(n,'"').concat(ta.getReplacesInText(t),";\n\t\t_sendToFrontEnd(").concat(e._id,", {text: subActionVar").concat(e._id,'});`; \n\t\tsendTo("').concat(e.instance,'", "send", {\n\t\t message: subActionVar').concat(e._id,',\n\t\t title: "').concat((e.title||"").replace(/"/g,'\\"'),'"').concat(ta.getReplacesInText(t),',\n\t\t sound: "').concat(e.sound,'",\n\t\t priority: ').concat(e.priority,"\n\t\t});"):"// no text defined\n_sendToFrontEnd(".concat(e._id,", {text: 'No text defined'});")}},{key:"getStaticData",value:function(){return{acceptedBy:"actions",name:"Pushover",id:"ActionPushover",adapter:"pushover",title:"Sends message via pushover",helpDialog:"You can use %s in the text to display current trigger value or %id to display the triggered object ID"}}}]),n}(ta),la=function(e){(0,p.Z)(n,e);var t=(0,h.Z)(n);function n(e){var a;return(0,u.Z)(this,n),(a=t.call(this,e,n.getStaticData())).cachePromises={},a}return(0,d.Z)(n,[{key:"renderDebug",value:function(e){return"".concat(k.I18n.t("Sent:")," ").concat(e.data.text)}},{key:"onTagChange",value:function(e){var t=this;this.setState({inputs:[{nameRender:"renderInstance",adapter:"whatsapp-cmb",frontText:"Instance:",defaultValue:"whatsapp-cmb.0",attr:"instance"},{nameRender:"renderModalInput",attr:"text",defaultValue:"Hello",nameBlock:"",frontText:"Text:"},{nameRender:"renderText",attr:"phone",defaultValue:"",frontText:"Phone:",backText:"(optional)"}]},(function(){return(0,Xt.Z)((0,$t.Z)(n.prototype),"onTagChange",t).call(t)}))}},{key:"getData",value:function(){return n.getStaticData()}}],[{key:"compile",value:function(e,t){var n=(e.text||"").replace(/"/g,'\\"');return n?"// whatsapp ".concat(n||"","\n\t\tconst subActionVar").concat(e._id,' = "').concat((n||"").replace(/"/g,'\\"'),'"').concat(ta.getReplacesInText(t),";\n\t\t_sendToFrontEnd(").concat(e._id,", {text: subActionVar").concat(e._id,'});\n\t\tsendTo("').concat(e.instance,'", "send", {text: subActionVar').concat(e._id).concat(e.phone?', phone: "'.concat(e.phone.replace(/"/g,'\\"'),'"'):"","});"):"// no text defined\n_sendToFrontEnd(".concat(e._id,", {text: 'No text defined'});")}},{key:"getStaticData",value:function(){return{acceptedBy:"actions",name:"Whatsapp-cmb",id:"ActionWhatsappcmb",adapter:"whatsapp-cmb",title:"Sends message via whatsapp-cmb",helpDialog:"You can use %s in the text to display current trigger value or %id to display the triggered object ID"}}}]),n}(ta),ca=function(e){(0,p.Z)(n,e);var t=(0,h.Z)(n);function n(e){var a;return(0,u.Z)(this,n),(a=t.call(this,e,n.getStaticData())).cachePromises={},a}return(0,d.Z)(n,[{key:"renderDebug",value:function(e){return"Sent: ".concat(e.data.text)}},{key:"onTagChange",value:function(e){var t=this;this.setState({inputs:[{nameRender:"renderInstance",adapter:"pushsafer",frontText:"Instance:",defaultValue:"pushsafer.0",attr:"instance"},{nameRender:"renderModalInput",attr:"text",defaultValue:"Hello",nameBlock:"",frontText:"Text:"},{nameRender:"renderText",attr:"title",defaultValue:"ioBroker",frontText:"Title:"},{nameRender:"renderSelect",attr:"sound",defaultValue:"magic",frontText:"Sound:",doNotTranslate:!0,options:[{value:"_",title:"Device Default"},{value:"0",title:"Silent"},{value:"1",title:"Ahem (IM)"},{value:"2",title:"Applause (Mail)"},{value:"3",title:"Arrow (Reminder)"},{value:"4",title:"Baby (SMS)"},{value:"5",title:"Bell (Alarm)"},{value:"6",title:"Bicycle (Alarm2)"},{value:"7",title:"Boing (Alarm3)"},{value:"8",title:"Buzzer (Alarm4)"},{value:"9",title:"Camera (Alarm5)"},{value:"10",title:"Car Horn (Alarm6)"},{value:"11",title:"Cash Register (Alarm7)"},{value:"12",title:"Chime (Alarm8)"},{value:"13",title:"Creaky Door (Alarm9)"},{value:"14",title:"Cuckoo Clock (Alarm10)"},{value:"15",title:"Disconnect (Call)"},{value:"16",title:"Dog (Call2)"},{value:"17",title:"Doorbell (Call3)"},{value:"18",title:"Fanfare (Call4)"},{value:"19",title:"Gun Shot (Call5)"},{value:"20",title:"Honk (Call6)"},{value:"21",title:"Jaw Harp (Call7)"},{value:"22",title:"Morse (Call8)"},{value:"23",title:"Electricity (Call9)"},{value:"24",title:"Radio Tuner (Call10)"},{value:"25",title:"Sirens"},{value:"26",title:"Military Trumpets"},{value:"27",title:"Ufo"},{value:"28",title:"Whah Whah Whah"},{value:"29",title:"Man Saying Goodbye"},{value:"30",title:"Man Saying Hello"},{value:"31",title:"Man Saying No"},{value:"32",title:"Man Saying Ok"},{value:"33",title:"Man Saying Ooohhhweee"},{value:"34",title:"Man Saying Warning"},{value:"35",title:"Man Saying Welcome"},{value:"36",title:"Man Saying Yeah"},{value:"37",title:"Man Saying Yes"},{value:"38",title:"Beep short"},{value:"39",title:"Weeeee short"},{value:"40",title:"Cut in and out short"},{value:"41",title:"Finger flicking glas short"},{value:"42",title:"Wa Wa Waaaa short"},{value:"43",title:"Laser short"},{value:"44",title:"Wind Chime short"},{value:"45",title:"Echo short"},{value:"46",title:"Zipper short"},{value:"47",title:"HiHat short"},{value:"48",title:"Beep 2 short"},{value:"49",title:"Beep 3 short"},{value:"50",title:"Beep 4 short"},{value:"51",title:"The Alarm is armed"},{value:"52",title:"The Alarm is disarmed"},{value:"53",title:"The Backup is ready"},{value:"54",title:"The Door is closed"},{value:"55",title:"The Door is opend"},{value:"56",title:"The Window is closed"},{value:"57",title:"The Window is open"},{value:"58",title:"The Light is off"},{value:"59",title:"The Light is on"},{value:"60",title:"The Doorbell rings"},{value:"61",title:"Pager short"},{value:"62",title:"Pager long"}]},{nameRender:"renderSelect",attr:"priority",defaultValue:0,frontText:"Priority:",options:[{value:-2,title:"lowest priority"},{value:-1,title:"lower priority"},{value:0,title:"normal priority"},{value:1,title:"high priority"},{value:2,title:"highest priority"}]},{nameRender:"renderSelect",attr:"vibration",defaultValue:0,frontText:"Vibration:",options:[{value:"_",title:"default"},{value:1,title:"1"},{value:2,title:"2"},{value:3,title:"3"}]}]},(function(){return(0,Xt.Z)((0,$t.Z)(n.prototype),"onTagChange",t).call(t)}))}},{key:"getData",value:function(){return n.getStaticData()}}],[{key:"compile",value:function(e,t){var n=(e.text||"").replace(/"/g,'\\"');return n?"// Pushsafer ".concat(e.text||"","\n\t\tconst subActionVar").concat(e._id,' = "').concat(n,'"').concat(ta.getReplacesInText(t),";\n\t\t_sendToFrontEnd(").concat(e._id,", {text: subActionVar").concat(e._id,'}); \n\t\tsendTo("').concat(e.instance,'", "send", {\n\t\t message: subActionVar').concat(e._id,',\n\t\t title: "').concat((e.title||"").replace(/"/g,'\\"'),'"').concat(ta.getReplacesInText(t),",\n\t\t ").concat(e.device?'device: "'.concat(e.device,'",'):"","\n\t\t ").concat(e.sound&&"_"!==e.sound?'sound: "'.concat(e.sound,'",'):"","\n\t\t priority: ").concat(e.priority,",\n\t\t ").concat(e.vibration&&"_"!==e.vibration?"vibration: ".concat(e.vibration,","):"","\n\t\t});"):"// no text defined\n_sendToFrontEnd(".concat(e._id,", {text: 'No text defined'});")}},{key:"getStaticData",value:function(){return{acceptedBy:"actions",name:"Pushsafer",id:"ActionPushsafer",adapter:"pushsafer",title:"Sends message via Pushsafer",helpDialog:"You can use %s in the text to display current trigger value or %id to display the triggered object ID"}}}]),n}(ta),ua={triggers:[],conditions:[[]],justCheck:!1,actions:{then:[],else:[]}};function da(e,t,n){var a=[],s=e.triggers;s.length||(s=[{id:"TriggerScriptSave"}]);var o=[],i=[],r=e.conditions.find((function(e){return e.find((function(e){return"()"===e.tagCard}))}));s.forEach((function(t,s){var l=pa(t.id,n);if(l){var c={trigger:t,condition:{},justCheck:!r&&(e.justCheck||!e.conditions.length||!e.conditions[0].length),conditionsDebug:[],conditionsVars:[],conditionsStates:[]},u=l.compile(t,c),d=function(e,t,n){var a=[],s=0;return e&&e.forEach((function(e){if(e.hasOwnProperty("length")&&e.length){var o=[];o&&e.forEach((function(e){var a=pa(e.id,n);a&&(t.condition.index=s++,o.push(a.compile(e,t)))})),a.push("(".concat(o.join(") &&\n ("),")"))}else{var i=pa(e.id,n);i&&(t.condition.index=s++,a.push(i.compile(e,t)))}})),a.length?1===a.length?a[0]||"true":"(".concat(a.join(") || ("),")"):"true"}(e.conditions,c,n),p=ha(e.actions.then,c,n),h=ha(e.actions.else,c,n);o.push("cond".concat(s)),c.prelines&&c.prelines.length&&c.prelines.forEach((function(e){return i.push(e)})),u.includes(" __%%CONDITIONS_VARS%%__")&&(c.conditionsVars=c.conditionsVars.map((function(e,t){return t?" ".concat(e):e})),c.conditionsDebug=c.conditionsDebug.map((function(e,t){return t?" ".concat(e):e}))),a.push(u.replace("__%%CONDITIONS_VARS%%__",c.conditionsVars.join("\n")).replace('"__%%DEBUG_CONDITIONS%%__";',c.conditionsDebug.join("\n")).replace("__%%CONDITION%%__",d).replace("__%%THEN%%__",p||"// ignore").replace("__%%ELSE%%__",h||"// ignore").replace(/__%%STATE%%__/g,"cond"+s))}}));var l=a.join("\n\n");return e.justCheck&&!r||(l="".concat(o.map((function(e){return"let ".concat(e," = false;")})).join("\n"),"\n\n").concat(l)),i&&(l="".concat(i.join("\n"),"\n\n").concat(l)),l}function pa(e,t){return t.find((function(t){return t.getStaticData&&t.getStaticData().id===e}))}function ha(e,t,n){var a=[];return e&&e.forEach((function(e){var s=pa(e.id,n);s&&a.push(s.compile(e,t))})),"\t\t".concat(a.join("\n\n\t\t"))||0}function ga(e,t){return da(e,0,t)}var ma={code2json:function(e){if(!e)return ua;var t=e.split("\n");try{var n=t.pop().replace(/^\/\//,"");return(n=JSON.parse(n)).triggers||(n=ua),n}catch(a){return ua}},json2code:function(e,t){var n="";return n+=ga(e,t),n+="\n/*\nconst demo = ".concat(JSON.stringify(e,null,2).replace(/\*\//g,"* /"),";\n*/\n"),"".concat(n,"\n//").concat(JSON.stringify(e))},compile:ga,STANDARD_FUNCTION:'async function () {\n "__%%DEBUG_TRIGGER%%__";\n __%%CONDITIONS_VARS%%__\n const _cond = __%%CONDITION%%__;\n \n "__%%DEBUG_CONDITIONS%%__";\n \n if (_cond) {\n__%%THEN%%__\n } else {\n__%%ELSE%%__\n }\n}',STANDARD_FUNCTION_ONCHANGE:'async function () {\n "__%%DEBUG_TRIGGER%%__";\n __%%CONDITIONS_VARS%%__\n const _cond = __%%CONDITION%%__;\n \n "__%%DEBUG_CONDITIONS%%__";\n \n if (__%%STATE%%__ === false && _cond) {\n __%%STATE%%__ = true; \n__%%THEN%%__\n } else if (__%%STATE%%__ === true && !_cond) {\n __%%STATE%%__ = false; \n__%%ELSE%%__\n }\n}',STANDARD_FUNCTION_STATE:'async function (obj) {\n "__%%DEBUG_TRIGGER%%__";\n __%%CONDITIONS_VARS%%__\n const _cond = __%%CONDITION%%__;\n \n "__%%DEBUG_CONDITIONS%%__";\n \n if (_cond) {\n__%%THEN%%__\n } else {\n__%%ELSE%%__\n }\n}',STANDARD_FUNCTION_STATE_ONCHANGE:'async function (obj) {\n "__%%DEBUG_TRIGGER%%__";\n __%%CONDITIONS_VARS%%__\n const _cond = __%%CONDITION%%__;\n \n "__%%DEBUG_CONDITIONS%%__";\n \n if (__%%STATE%%__ === false && _cond) {\n __%%STATE%%__ = true; \n__%%THEN%%__\n } else if (__%%STATE%%__ === true && !_cond) {\n __%%STATE%%__ = false; \n__%%ELSE%%__\n }\n}',NO_FUNCTION:'"__%%DEBUG_TRIGGER%%__";\n__%%CONDITIONS_VARS%%__\nconst _cond = __%%CONDITION%%__;\n\n"__%%DEBUG_CONDITIONS%%__";\n\nif (_cond) {\n__%%THEN%%__\n} else {\n__%%ELSE%%__\n}'},fa=function(e){(0,p.Z)(n,e);var t=(0,h.Z)(n);function n(e){return(0,u.Z)(this,n),t.call(this,e,n.getStaticData())}return(0,d.Z)(n,[{key:"renderDebug",value:function(){return wn.default.t("Triggered")}},{key:"onTagChange",value:function(e){var t=this;this.setState({inputs:[{nameRender:"renderNameText",defaultValue:"On script save or adapter start",attr:"script"}]},(function(){return(0,Xt.Z)((0,$t.Z)(n.prototype),"onTagChange",t).call(t)}))}},{key:"getData",value:function(){return n.getStaticData()}}],[{key:"compile",value:function(e){return ma.NO_FUNCTION.replace('"__%%DEBUG_TRIGGER%%__"',"_sendToFrontEnd(".concat(e._id,", {trigger: true})"))}},{key:"getStaticData",value:function(){return{acceptedBy:"triggers",name:"Start script",id:"TriggerScriptSave",icon:"PlayArrow",title:"Triggers the on script saving or the javascript instance restart"}}}]),n}(ta),va=n(75801),ya=n.n(va),ba=n(22772),ka=n(64101),Sa=n(96404),xa=function(e){(0,p.Z)(n,e);var t=(0,h.Z)(n);function n(e){var a;return(0,u.Z)(this,n),(a=t.call(this,e,n.getStaticData())).coordinates=null,a}return(0,d.Z)(n,[{key:"_setAstro",value:function(){var e=(0,ut.Z)((0,ct.Z)().mark((function e(t,a,s){var o,i,r,l,c,u=this;return(0,ct.Z)().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(t=t||this.state.settings.astro||"solarNoon",a=void 0===a?this.state.settings.offset:a,s=void 0===s?this.state.settings.offsetValue:s,s=parseInt(s,10)||0,this.coordinates){e.next=7;break}return e.next=7,this.props.socket.getObject("system.adapter.javascript.0").then((function(e){var t=e.native,n=t.latitude,a=t.longitude;if(!n&&!a)return u.props.socket.getObject("system.config").then((function(e){e&&(e.common.latitude||e.common.longitude)?u.coordinates={latitude:e.common.latitude,longitude:e.common.longitude}:u.coordinates=null}));u.coordinates={latitude:n,longitude:a}}));case 7:o=this.coordinates&&ya().getTimes(new Date,this.coordinates.latitude,this.coordinates.longitude),(i=o?Object.keys(o).map((function(e){return{value:e,title:e,title2:"[".concat(n._time2String(o[e]),"]"),order:o?n._time2String(o[e]):"??:??"}})):[]).sort((function(e,t){return e.order>t.order?1:e.order1?(h===d[g-1]?p.push(h):d[g-1]-h===1?p.push(h+","+d[g-1]):p.push(h+"-"+d[g-1]),h=d[g]):g===d.length-1&&(h===d[g-1]||d[g]-h===1?p.push(h+","+d[g]):p.push(h+"-"+d[g]));u=p.join(",")}n='schedule("'.concat(l||"0"," ").concat(r||"0"," * * ").concat(u,'", ').concat(a,");")}else"astro"===e.tagCard?n='schedule({astro: "'.concat(e.astro,'", shift: ').concat(e.offset?e.offsetValue:0,"}, ").concat(a,");"):"wizard"===e.tagCard&&(n="schedule('".concat(e.wizard,"', ").concat(a,");"));return n}},{key:"_time2String",value:function(e){return e?"".concat(e.getHours().toString().padStart(2,"0"),":").concat(e.getMinutes().toString().padStart(2,"0")):"--:--"}},{key:"getStaticData",value:function(){return{acceptedBy:"triggers",name:"Schedule",id:"TriggerScheduleBlock",icon:"AccessTime",tagCardArray:["cron","wizard","interval","at","astro"],title:"Triggers the rule periodically or on some specific time"}}}]),n}(ta),wa=xa,Ca=n(89891),Ia=n(55931),ja=n(25801),Ta=s().forwardRef((function(e,t){return(0,se.jsx)(Ia.Z,(0,dt.Z)({direction:"up",ref:t},e))})),Aa=function(e){(0,p.Z)(n,e);var t=(0,h.Z)(n);function n(e){var a;return(0,u.Z)(this,n),(a=t.call(this,e,n.getStaticData())).inputRef=s().createRef(),a}return(0,d.Z)(n,[{key:"renderDebug",value:function(e){return void 0!==e.data.valOld?(0,se.jsxs)("span",{children:[k.I18n.t("Triggered")," ",(0,se.jsx)("span",{className:e.data.ackOld?this.props.classes.valueAck:this.props.classes.valueNotAck,children:n.renderValue(e.data.valOld)})," \u2192 ",(0,se.jsx)("span",{className:e.data.ack?this.props.classes.valueAck:this.props.classes.valueNotAck,children:n.renderValue(e.data.val)})]}):(0,se.jsxs)("span",{children:[k.I18n.t("Triggered")," ",(0,se.jsx)("span",{className:e.data.ack?this.props.classes.valueAck:this.props.classes.valueNotAck,children:n.renderValue(e.data.val)})]})}},{key:"onWriteValue",value:function(){this.setState({openSimulate:!1});var e=this.state.simulateValue;window.localStorage.setItem("javascript.app.".concat(this.state.settings.oid,"_ack"),this.state.simulateAck),"boolean"===this.state.settings.oidType?e=!0===e||"true"===e||"1"===e:"number"===this.state.settings.oidType&&(e=parseFloat(e)||0),window.localStorage.setItem("javascript.app.".concat(this.state.settings.oid),e),this.props.socket.setState(this.state.settings.oid,{val:e,ack:!!this.state.simulateAck})}},{key:"renderWriteState",value:function(){var e=this;return(0,se.jsxs)(se.Fragment,{children:[(0,se.jsx)(H.Z,{disabled:!this.state.settings.oid||!this.state.enableSimulation,variant:"contained",color:"primary",onClick:function(){e.setState({openSimulate:!0,simulateValue:"boolean"===e.state.settings.oidType?"true"===window.localStorage.getItem("javascript.app.".concat(e.state.settings.oid)):window.localStorage.getItem("javascript.app.".concat(e.state.settings.oid))||"",simulateAck:"true"===window.localStorage.getItem("javascript.app.".concat(e.state.settings.oid,"_ack"))}),setTimeout((function(){var t;return null===(t=e.inputRef.current)||void 0===t?void 0:t.focus()}),200)},children:k.I18n.t("Simulate")}),(0,se.jsxs)(Q.Z,{open:!!this.state.openSimulate,TransitionComponent:Ta,keepMounted:!0,onClose:function(){return e.setState({openSimulate:!1})},"aria-labelledby":"simulate-dialog-slide-title","aria-describedby":"simulate-dialog-slide-description",children:[(0,se.jsx)(q.Z,{id:"simulate-dialog-slide-title",children:k.I18n.t("Trigger with value")}),(0,se.jsxs)(Y.Z,{children:["boolean"===this.state.settings.oidType?(0,se.jsx)(ja.Z,{control:(0,se.jsx)(Ca.Z,{inputRef:this.inputRef,onKeyUp:function(t){return 13===t.keyCode&&e.onWriteValue()},value:!!this.state.simulateValue,onChange:function(t){return e.setState({simulateValue:t.target.checked})}}),label:k.I18n.t("Value")}):(0,se.jsx)(X.Z,{variant:"standard",inputRef:this.inputRef,label:k.I18n.t("Value"),fullWidth:!0,onKeyUp:function(t){return 13===t.keyCode&&e.onWriteValue()},value:this.state.simulateValue,onChange:function(t){return e.setState({simulateValue:t.target.value})}}),(0,se.jsx)("br",{}),(0,se.jsx)(ja.Z,{control:(0,se.jsx)(Ke.Z,{checked:!!this.state.simulateAck,onChange:function(t){return e.setState({simulateAck:t.target.checked})},color:"primary"}),label:k.I18n.t("Ack")})]}),(0,se.jsxs)(K.Z,{children:[(0,se.jsxs)(H.Z,{variant:"contained",onClick:function(){return e.onWriteValue()},color:"primary",children:[(0,se.jsx)(S.HhX,{}),k.I18n.t("Write")]}),(0,se.jsxs)(H.Z,{color:"grey",variant:"contained",onClick:function(){return e.setState({openSimulate:!1})},children:[(0,se.jsx)(S.B4e,{}),k.I18n.t("Close")]})]})]})]})}},{key:"onTagChange",value:function(e){var t=this;this.setState({inputs:[{nameRender:"renderObjectID",attr:"oid",defaultValue:""},{nameRender:"renderWriteState"}]},(function(){(0,Xt.Z)((0,$t.Z)(n.prototype),"onTagChange",t).call(t)}))}},{key:"getData",value:function(){return n.getStaticData()}}],[{key:"compile",value:function(e,t){var n=t.justCheck?ma.STANDARD_FUNCTION_STATE:ma.STANDARD_FUNCTION_STATE_ONCHANGE;return n=n.replace('"__%%DEBUG_TRIGGER%%__"',"_sendToFrontEnd(".concat(e._id,", {val: obj.state.val, ack: obj.state.ack, valOld: obj.oldState && obj.oldState.val, ackOld: obj.oldState && obj.oldState.ack})")),'on({id: "'.concat(e.oid||"",'", change: "').concat("on update"===e.tagCard?"any":"ne",'"}, ').concat(n,");")}},{key:"renderValue",value:function(e){return null===e?"null":void 0===e?"undefined":Array.isArray(e)?e.join(", "):"object"===typeof e?JSON.stringify(e):e.toString()}},{key:"getStaticData",value:function(){return{acceptedBy:"triggers",name:"State",id:"TriggerState",icon:"FlashOn",tagCardArray:["on change","on update"],title:"Triggers the rule on update or change of some state"}}}]),n}(ta),Da=(0,g.Z)((function(e){return{valueAck:{color:"#b02323"},valueNotAck:{color:"#12ac15"}}}))(Aa),Na=n.p+"static/media/hysteresis.04ebd02c6062432f891d.png",Ea="function __hysteresis(val, limit, state, hist, comp) {\n let cond1, cond2;\n if (comp === '>') {\n cond1 = val > limit + hist;\n cond2 = val <= limit - hist;\n } else if (comp === '<') {\n cond1 = val < limit - hist;\n cond2 = val >= limit + hist;\n } else if (comp === '>=') {\n cond1 = val >= limit + hist;\n cond2 = val < limit - hist;\n } else if (comp === '<=') {\n cond1 = val <= limit - hist;\n cond2 = val > limit + hist;\n } else if (comp === '=') {\n cond1 = val <= limit + hist && val > limit - hist;\n cond2 = val > limit + hist || val <= limit - hist;\n } else if (comp === '<>') {\n cond1 = val > limit + hist || val <= limit - hist;\n cond2 = val <= limit + hist && val > limit - hist;\n }\n \n if (!state && cond1) {\n return true;\n } else if (state && cond2) {\n return false;\n } else {\n return state;\n }\n}",Oa=function(e){(0,p.Z)(n,e);var t=(0,h.Z)(n);function n(e){var a;return(0,u.Z)(this,n),(a=t.call(this,e,n.getStaticData())).onShowHelp=function(){return a.setState({showHysteresisHelp:!0})},a}return(0,d.Z)(n,[{key:"isAllTriggersOnState",value:function(){var e,t,n,a;return(null===(e=this.props.userRules)||void 0===e||null===(t=e.triggers)||void 0===t?void 0:t.find((function(e){return"TriggerState"===e.id})))&&!(null!==(n=this.props.userRules)&&void 0!==n&&null!==(a=n.triggers)&&void 0!==a&&a.find((function(e){return"TriggerState"!==e.id})))}},{key:"renderDebug",value:function(e){var t=this.state.settings.tagCard;return"()"!==t?"".concat(e.data.result.toString().toUpperCase()," [").concat(e.data.value," ").concat(t," ").concat(e.data.compareWith,"]"):k.I18n.t("Triggered")}},{key:"_setInputs",value:function(e,t,a,s,o){var i,r,l=this,c=this.isAllTriggersOnState();t=t||this.state.settings.tagCard,a=a||this.state.settings.oidType,s=s||this.state.settings.oidUnit,o=o||this.state.settings.oidStates,c&&e&&1===(null===(i=this.props.userRules)||void 0===i||null===(r=i.triggers)||void 0===r?void 0:r.length)&&(a=this.props.userRules.triggers[0].oidType,s=this.props.userRules.triggers[0].oidUnit,o=this.props.userRules.triggers[0].oidStates);var u,d=n.getStaticData().tagCardArray.find((function(e){return e.title===t})),p=null;"number"===a?(u=[{title:"=",title2:"[equal]",text:"equal to"},{title:">=",title2:"[greater or equal]",text:"greater or equal"},{title:">",title2:"[greater]",text:"greater than"},{title:"<=",title2:"[less or equal]",text:"less or equal"},{title:"<",title2:"[less]",text:"less than"},{title:"<>",title2:"[not equal]",text:"not equal to"},{title:"()",title2:"[hysteresis]",text:"hysteresis"}],o&&(p=Object.keys(o).map((function(e){return{value:e,title:o[e]}})))):"boolean"===a?(u=[{title:"=",title2:"[equal]",text:"equal to"},{title:"<>",title2:"[not equal]",text:"not equal to"}],p=[{title:"false",value:!1},{title:"true",value:!0}]):(u=[{title:"=",title2:"[equal]",text:"equal to"},{title:">=",title2:"[greater or equal]",text:"greater or equal"},{title:">",title2:"[greater]",text:"greater than"},{title:"<=",title2:"[less or equal]",text:"less or equal"},{title:"<",title2:"[less]",text:"less than"},{title:"<>",title2:"[not equal]",text:"not equal to"},{title:".",title2:"[includes]",text:"includes"}],o&&(p=Object.keys(o).map((function(e){return{value:e,title:o[e]}}))));var h,g=null;u.find((function(e){return e.title===t}))||(t=u[0].title,(g=g||(0,dt.Z)({},this.state.settings)).tagCard=t);var m={nameRender:"renderText",defaultValue:"",attr:"value",frontText:"()"===t?"Limit":(null===d||void 0===d?void 0:d.text)||"compare with",doNotTranslateBack:!0,backText:s};p&&(m={nameRender:"renderSelect",defaultValue:p[0].value,options:p,attr:"value",frontText:(null===d||void 0===d?void 0:d.text)||"compare with",doNotTranslateBack:!0,backText:s},p.find((function(e){return e.value===l.state.settings.value}))||((g=g||(0,dt.Z)({},this.state.settings)).value=p[0].value),p.length<=2&&(u=[{title:"=",title2:"[equal]",text:"equal to"},{title:"<>",title2:"[not equal]",text:"not equal to"}])),h=c&&e?[{backText:"use trigger value",nameRender:"renderCheckbox",attr:"useTrigger",defaultValue:!1},m]:c?[{backText:"use trigger value",nameRender:"renderCheckbox",attr:"useTrigger"},{nameRender:"renderObjectID",attr:"oid",defaultValue:""},m]:[{nameRender:"renderObjectID",attr:"oid",defaultValue:""},m],"()"===t&&(h.splice(1,0,{nameRender:"renderDialog",icon:"HelpOutline",frontText:"Explanation",onShowDialog:this.onShowHelp}),h.splice(2,0,{nameRender:"renderSelect",attr:"histComp",defaultValue:">",frontText:"Condition",doNotTranslate:!0,options:[{title:">",value:">"},{title:">=",value:">="},{title:"<",value:"<"},{title:"<=",value:"<="},{title:"=",value:"="},{title:"<>",value:"<>"}]}),h.push({frontText:"\u0394",doNotTranslate:!0,nameRender:"renderNumber",noHelperText:!0,attr:"hist",defaultValue:1,doNotTranslateBack:!0,backText:s}));var f={iconTag:!0,tagCardArray:u,inputs:h};this.setState(f,(function(){return(0,Xt.Z)((0,$t.Z)(n.prototype),"onTagChange",l).call(l,null,(function(){g&&(l.setState({settings:g}),l.props.onChange(g))}))}))}},{key:"onValueChanged",value:function(e,t,n){"object"===typeof e?this._setInputs(e.useTrigger,e.tagCard,e.oidType,e.states):"useTrigger"===t?this._setInputs(e):"oidType"===t?this._setInputs(e,void 0,e):"oidUnit"===t?this._setInputs(e,void 0,void 0,e):"oidStates"===t&&this._setInputs(e,void 0,void 0,void 0,e)}},{key:"onUpdate",value:function(){this._setInputs(this.state.settings.useTrigger)}},{key:"onTagChange",value:function(e){this._setInputs(this.state.settings.useTrigger,e)}},{key:"getData",value:function(){return n.getStaticData()}},{key:"renderSpecific",value:function(){var e=this;return this.state.showHysteresisHelp?(0,se.jsxs)(Q.Z,{open:!0,maxWidth:"md",onClose:function(){return e.setState({showHysteresisHelp:!1})},"aria-labelledby":"alert-dialog-title","aria-describedby":"alert-dialog-description",children:[(0,se.jsx)(Y.Z,{children:(0,se.jsx)(ve.Z,{id:"alert-dialog-description",children:(0,se.jsx)("img",{src:Na,alt:"Hysteresis"})})}),(0,se.jsx)(K.Z,{children:(0,se.jsx)(H.Z,{onClick:function(){return e.setState({showHysteresisHelp:!1})},color:"primary",autoFocus:!0,children:k.I18n.t("OK")})})]}):null}}],[{key:"compile",value:function(e,t){var n=e.value;null!==n&&void 0!==n||(n=!1);var a,s="";if("()"===e.tagCard)t.prelines=t.prelines||[],!t.prelines.find((function(e){return e!==Ea}))&&t.prelines.push(Ea),e.useTrigger?(s="obj.state.val",""===n&&(n=0),a="__hysteresis(subCondVar".concat(e._id,", ").concat(n,", __%%STATE%%__, ").concat(e.hist,', "').concat(e.histComp,'")')):(s='(await getStateAsync("'.concat(e.oid,'")).val'),""===n&&(n=0),"string"===typeof n&&parseFloat(n.trim()).toString()!==n.trim()&&(n='"'.concat(n,'"')),a="__hysteresis(subCondVar".concat(e._id,", ").concat(n,", __%%STATE%%__, ").concat(e.hist,', "').concat(e.histComp,'")'));else if("includes"!==e.tagCard){var o,i="="===e.tagCard?"==":"<>"===e.tagCard?"!=":e.tagCard;if(e.useTrigger)s="obj.state.val","string"===(null===t||void 0===t||null===(o=t.trigger)||void 0===o?void 0:o.oidType)?(n=n.replace(/"/g,'\\"'),a="subCondVar".concat(e._id," ").concat(i,' "').concat(n,'"')):(""===n&&(n=0),"string"===typeof n&&parseFloat(n.trim()).toString()!==n.trim()&&(n='"'.concat(n,'"')),a="subCondVar".concat(e._id," ").concat(i," ").concat(n));else s='(await getStateAsync("'.concat(e.oid,'")).val'),"string"===e.oidType?(n=n.replace(/"/g,'\\"'),a="subCondVar".concat(e._id," ").concat(i,' "').concat(n,'"')):(""===n&&(n=0),"string"===typeof n&&parseFloat(n.trim()).toString()!==n.trim()&&(n='"'.concat(n,'"')),a="subCondVar".concat(e._id," ").concat(i," ").concat(n))}else{var r;if(e.useTrigger)s="obj.state.val","string"===(null===t||void 0===t||null===(r=t.trigger)||void 0===r?void 0:r.oidType)?(n=n.replace(/"/g,'\\"'),a='obj.state.val.includes("'.concat(n,'")')):a="false";else s='(await getStateAsync("'.concat(e.oid,'")).val'),"string"===e.oidType?(n=n.replace(/"/g,'\\"'),a="subCondVar".concat(e._id,'.includes("').concat(n,'")')):a="false"}return t.conditionsStates.push({name:"subCondVar".concat(e._id),id:e.oid}),t.conditionsVars.push("const subCondVar".concat(e._id," = ").concat(s,";")),t.conditionsVars.push("const subCond".concat(e._id," = ").concat(a,";")),t.conditionsDebug.push("_sendToFrontEnd(".concat(e._id,", {result: subCond").concat(e._id,", value: subCondVar").concat(e._id,', compareWith: "').concat(n,'"});')),"subCond".concat(e._id)}},{key:"getStaticData",value:function(){return{acceptedBy:"conditions",name:"State condition",id:"ConditionState",icon:"Shuffle",tagCardArray:[{title:"=",title2:"[equal]",text:"equal to"},{title:">=",title2:"[greater or equal]",text:"greater or equal"},{title:">",title2:"[greater]",text:"greater than"},{title:"<=",title2:"[less or equal]",text:"less or equal"},{title:"<",title2:"[less]",text:"less than"},{title:"<>",title2:"[not equal]",text:"not equal to"},{title:".",title2:"[includes]",text:"includes"},{title:"()",title2:"[hysteresis]",text:"hysteresis"}],title:"Compares the state value with user defined value"}}}]),n}(ta),Ma=[31,29,31,30,31,30,31,31,30,31,30,31],za=function(e){(0,p.Z)(n,e);var t=(0,h.Z)(n);function n(e){return(0,u.Z)(this,n),t.call(this,e,n.getStaticData())}return(0,d.Z)(n,[{key:"_setInputs",value:function(e,t){var a=this;t=void 0===t?this.state.settings.withDate:t,e=e||this.state.settings.tagCard;var s=n.getStaticData().tagCardArray.find((function(t){return t.title===e})),o=[{nameRender:"renderNameText",attr:"interval",defaultValue:"Actual time of day"},{frontText:(null===s||void 0===s?void 0:s.text)||e,nameRender:"renderTime",attr:"time",defaultValue:"12:00"},{frontText:"with date",nameRender:"renderCheckbox",attr:"withDate",defaultValue:!1}];t&&o.push({nameRender:"renderDate",attr:"date",defaultValue:"01.01"}),this.setState({inputs:o,iconTag:!0},(function(){return(0,Xt.Z)((0,$t.Z)(n.prototype),"onTagChange",a).call(a)}))}},{key:"onValueChanged",value:function(e,t){"withDate"===t&&this._setInputs(void 0,e)}},{key:"onTagChange",value:function(e){this._setInputs(e)}},{key:"getData",value:function(){return n.getStaticData()}}],[{key:"compile",value:function(e,t){var n,a="="===e.tagCard?"===":"<>"===e.tagCard?"!==":e.tagCard;if(e.withDate){var s=(e.date||"01.01").toString().split("."),o=(0,w.Z)(s,2),i=o[0],r=o[1];r=parseInt(r,10)||0,(i=parseInt(i,10)||0)>12?i=12:i<0&&(i=0),r>Ma[i]?r=Ma[i]:r<0&&(r=0),n=r&&i?"formatDate(Date.now(), 'MM.DD-hh:mm') ".concat(a,' "').concat(e.date,"-").concat(e.time,'"'):0===r&&i?"formatDate(Date.now(), 'MM-hh:mm') ".concat(a,' "').concat(i.toString().padStart(2,"0"),"-").concat(e.time,'"'):0===i&&r?"formatDate(Date.now(), 'DD-hh:mm') ".concat(a,' "').concat(r.toString().padStart(2,"0"),"-").concat(e.time,'"'):"formatDate(Date.now(), 'hh:mm') ".concat(a,' "').concat(e.time,'"')}else n="formatDate(Date.now(), 'hh:mm') ".concat(a,' "').concat(e.time,'"');return t.conditionsVars.push("const subCond".concat(e._id," = ").concat(n,";")),t.conditionsDebug.push("_sendToFrontEnd(".concat(e._id,", {result: subCond").concat(e._id,"});")),"subCond".concat(e._id)}},{key:"getStaticData",value:function(){return{acceptedBy:"conditions",name:"Time condition",id:"ConditionTime",icon:"Shuffle",tagCardArray:[{title:"=",title2:"[equal]",text:"equal to"},{title:">=",title2:"[greater or equal]",text:"greater or equal"},{title:">",title2:"[greater]",text:"greater than"},{title:"<=",title2:"[less or equal]",text:"less or equal"},{title:"<",title2:"[less]",text:"less than"},{title:"<>",title2:"[not equal]",text:"not equal to"}],title:"Compares current time with the user specific time"}}}]),n}(ta),Za=function(e){(0,p.Z)(n,e);var t=(0,h.Z)(n);function n(e){var a;return(0,u.Z)(this,n),(a=t.call(this,e,n.getStaticData())).coordinates=null,a}return(0,d.Z)(n,[{key:"onValueChanged",value:function(e,t){"astro"===t?this._setAstro(e):"offset"===t?this._setAstro(void 0,e):"offsetValue"===t&&this._setAstro(void 0,void 0,e)}},{key:"_setAstro",value:function(){var e=(0,ut.Z)((0,ct.Z)().mark((function e(t,a,s){var o,i,r,l,c,u,d,p=this;return(0,ct.Z)().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(t=t||this.state.settings.astro||"solarNoon",a=void 0===a?this.state.settings.offset:a,s=void 0===s?this.state.settings.offsetValue:s,s=parseInt(s,10)||0,this.coordinates){e.next=7;break}return e.next=7,this.props.socket.getObject("system.adapter.javascript.0").then((function(e){var t=e.native,n=t.latitude,a=t.longitude;if(!n&&!a)return p.props.socket.getObject("system.config").then((function(e){e&&(e.common.latitude||e.common.longitude)?p.coordinates={latitude:e.common.latitude,longitude:e.common.longitude}:p.coordinates=null}));p.coordinates={latitude:n,longitude:a}}));case 7:o=this.coordinates&&ya().getTimes(new Date,this.coordinates.latitude,this.coordinates.longitude),(i=o?Object.keys(o).map((function(e){return{value:e,title:e,title2:"[".concat(n._time2String(o[e]),"]"),order:n._time2String(o[e])}})):[]).sort((function(e,t){return e.order>t.order?1:e.order"===e.tagCard?"!==":e.tagCard;e.offset&&(n=parseInt(e.offsetValue,10)||0);var s="formatDate(Date.now(), 'hh:mm') ".concat(a,' formatDate(getAstroDate("').concat(e.astro,'"').concat(n?", undefined, ".concat(n):"","), 'hh:mm')");return t.conditionsVars.push("const subCond".concat(e._id," = ").concat(s,";")),t.conditionsDebug.push("_sendToFrontEnd(".concat(e._id,", {result: ").concat(s,"});")),s}},{key:"_time2String",value:function(e){return e?"".concat(e.getHours().toString().padStart(2,"0"),":").concat(e.getMinutes().toString().padStart(2,"0")):"--:--"}},{key:"getStaticData",value:function(){return{acceptedBy:"conditions",name:"Astrological",id:"ConditionAstrological",icon:"Brightness3",tagCardArray:[{title:"=",title2:"[equal]",text:"equal to"},{title:">=",title2:"[greater or equal]",text:"greater or equal to"},{title:">",title2:"[greater]",text:"greater than"},{title:"<=",title2:"[less or equal]",text:"less or equal to"},{title:"<",title2:"[less]",text:"less than"},{title:"<>",title2:"[not equal]",text:"not equal to"}],title:"Compares current time with astrological event"}}}]),n}(ta),Ra=Za,Fa=function(e){(0,p.Z)(n,e);var t=(0,h.Z)(n);function n(e){return(0,u.Z)(this,n),t.call(this,e,n.getStaticData())}return(0,d.Z)(n,[{key:"isAllTriggersOnState",value:function(){var e,t,n,a;return(null===(e=this.props.userRules)||void 0===e||null===(t=e.triggers)||void 0===t?void 0:t.find((function(e){return"TriggerState"===e.id})))&&!(null!==(n=this.props.userRules)&&void 0!==n&&null!==(a=n.triggers)&&void 0!==a&&a.find((function(e){return"TriggerState"!==e.id})))}},{key:"renderDebug",value:function(e){return(0,se.jsxs)("span",{children:[k.I18n.t("Set:")," ",(0,se.jsx)("span",{className:e.data.ack?this.props.classes.valueAck:this.props.classes.valueNotAck,children:n.renderValue(e.data.val)})]})}},{key:"_setInputs",value:function(e,t){var n=this,a=this.isAllTriggersOnState();t=void 0===t?this.state.settings.toggle:t,e=void 0===e?this.state.settings.useTrigger:e;var s,o,i,r="",l=this.state.settings,c=l.oidType,u=l.oidUnit,d=l.oidStates,p=l.oidMax,h=l.oidMin,g=l.oidRole,m=l.oidWrite,f=l.oidStep;if(c&&("number"===c?(r="number",void 0!==p&&void 0!==h&&(r="slider")):"boolean"===c?(r="boolean",g&&g.includes("button")&&m&&(r="button")):(r="",g&&g.includes("color")&&(r="color")),d&&(s=Object.keys(d).map((function(e){return{value:e,title:d[e]}})),r="select")),a&&e)i=[{backText:"use trigger value",nameRender:"renderCheckbox",attr:"useTrigger",defaultValue:!1}],"boolean"===r&&i.push({backText:"toggle value",attr:"toggle",nameRender:"renderCheckbox",defaultValue:!1});else{switch(r){case"number":i=[{backText:u||"",frontText:"with",nameRender:"renderNumber",defaultValue:void 0===p?0:p,attr:"value"}],void 0!==this.state.settings.value&&isNaN(parseFloat(this.state.settings.value))&&(o={value:void 0===p?0:p});break;case"slider":i=[{nameRender:"renderSlider",defaultValue:p,min:h,max:p,unit:u,step:f,attr:"value"}];var v=parseFloat(this.state.settings.value);void 0!==this.state.settings.value&&(isNaN(v)||vp)&&(o={value:p});break;case"select":i=[{nameRender:"renderSelect",frontText:"with",options:s,defaultValue:s[0].value,attr:"value"}],void 0===this.state.settings.value||s.find((function(e){return e.value===n.state.settings.value}))||(o={value:s[0].value});break;case"boolean":i=[{backText:"toggle value",attr:"toggle",nameRender:"renderCheckbox",defaultValue:!1}],t||i.push({backText:"true",frontText:"false",nameRender:"renderSwitch",defaultValue:!1,attr:"value"}),void 0!==this.state.settings.value&&!1!==this.state.settings.value&&!0!==this.state.settings.value&&(o={value:!1});break;case"button":i=[{nameRender:"renderButton",defaultValue:!0,attr:"value"}],void 0!==this.state.settings.value&&!0!==this.state.settings.value&&(o={value:!0});break;case"color":i=[{nameRender:"renderColor",frontText:"with",defaultValue:"#FFFFFF",attr:"value"}],void 0===this.state.settings.value||"string"===typeof this.state.settings.value&&(this.state.settings.value.startsWith("#"),this.state.settings.value.startsWith("rgb"),0)||(o={value:"#FFFFFF"});break;default:i=[{backText:u||"",frontText:"with",nameRender:"renderText",defaultValue:"",attr:"value"}]}a&&i.unshift({backText:"use trigger value",nameRender:"renderCheckbox",attr:"useTrigger"})}return{inputs:i,newSettings:o}}},{key:"onTagChange",value:function(e,t,a,s,o){var i=this;o=void 0===o?this.state.settings.useTrigger:o;var r=this._setInputs(o,s),l=r.inputs,c=r.newSettings;l.unshift({nameRender:"renderObjectID",attr:"oid",defaultValue:"",checkReadOnly:!0}),this.setState({inputs:l},(function(){return(0,Xt.Z)((0,$t.Z)(n.prototype),"onTagChange",i).call(i,null,(function(){if(c){var e=JSON.parse(JSON.stringify(i.state.settings));Object.assign(e,c),i.setState(e),i.props.onChange(e)}}))}))}},{key:"onValueChanged",value:function(e,t,n){this.onTagChange(void 0,void 0,void 0,"toggle"===t?e:void 0,"useTrigger"===t?e:void 0)}},{key:"onUpdate",value:function(){this.onTagChange()}},{key:"getData",value:function(){return n.getStaticData()}}],[{key:"compile",value:function(e,t){var n,a=e.value;return e.useTrigger?a=e.toggle?"!obj.state.val":"obj.state.val":(void 0!==a&&null!==a||(a=""),"string"===typeof e.value&&parseFloat(e.value).toString()!==e.value&&"true"!==e.value&&"false"!==e.value&&(a='"'.concat(a.replace(/"/g,'\\"'),'"').concat(ta.getReplacesInText(t)))),n=e.toggle&&!e.useTrigger?"const subActionVar".concat(e._id,' = !(await getStateAsync("').concat(e.oid,'")).val'):"const subActionVar".concat(e._id," = ").concat(a),"// set state ".concat(e.oid," to ").concat(e.toggle&&!e.useTrigger?"toggle":a," \n\t\t").concat(n,";\n\t\t_sendToFrontEnd(").concat(e._id,", {val: subActionVar").concat(e._id,", ack: ").concat("update"===e.tagCard,'});\n\t\tawait setStateAsync("').concat(e.oid,'", subActionVar').concat(e._id,", ").concat("update"===e.tagCard,");")}},{key:"renderValue",value:function(e){return null===e?"null":void 0===e?"undefined":Array.isArray(e)?e.join(", "):"object"===typeof e?JSON.stringify(e):e.toString()}},{key:"getStaticData",value:function(){return{acceptedBy:"actions",name:"Set state action",id:"ActionSetState",icon:"PlayForWork",tagCardArray:["control","update"],title:"Control or update some state",helpDialog:"You can use %s in the value to use the current trigger value or %id to display the triggered object ID"}}}]),n}(ta),Ba=[wa,fa,Da,Oa,za,Ra,(0,g.Z)((function(e){return{valueAck:{color:"#b02323"},valueNotAck:{color:"#12ac15"}}}))(Fa),function(e){(0,p.Z)(n,e);var t=(0,h.Z)(n);function n(e){return(0,u.Z)(this,n),t.call(this,e,n.getStaticData())}return(0,d.Z)(n,[{key:"renderDebug",value:function(e){return"Exec: ".concat(e.data.exec)}},{key:"onTagChange",value:function(e){var t=this;this.setState({inputs:[{nameRender:"renderModalInput",attr:"exec",defaultValue:"ls /opt/iobroker",nameBlock:"Shell command"}]},(function(){return(0,Xt.Z)((0,$t.Z)(n.prototype),"onTagChange",t).call(t,e)}))}},{key:"getData",value:function(){return n.getStaticData()}}],[{key:"compile",value:function(e,t){return'// exec "'.concat(e.exec,'"\n\t\tconst subActionVar').concat(e._id,' = "').concat((e.exec||"").replace(/"/g,'\\"'),'"').concat(ta.getReplacesInText(t),";\n\t\t_sendToFrontEnd(").concat(e._id,", {exec: subActionVar").concat(e._id,"});\n\t\tconsole.log(subActionVar").concat(e._id,");")}},{key:"getStaticData",value:function(){return{acceptedBy:"actions",name:"Exec",id:"ActionExec",icon:"Apps",title:"Executes some shell command",helpDialog:"You can use %s in the command to use current trigger value or %id to use the triggered object ID"}}}]),n}(ta),function(e){(0,p.Z)(n,e);var t=(0,h.Z)(n);function n(e){return(0,u.Z)(this,n),t.call(this,e,n.getStaticData())}return(0,d.Z)(n,[{key:"renderDebug",value:function(e){return"URL: ".concat(e.data.url)}},{key:"onTagChange",value:function(e){var t=this;this.setState({inputs:[{nameRender:"renderModalInput",attr:"url",defaultValue:"http://mydevice.com?...",nameBlock:"URL"}]},(function(){return(0,Xt.Z)((0,$t.Z)(n.prototype),"onTagChange",t).call(t,e)}))}},{key:"getData",value:function(){return n.getStaticData()}}],[{key:"compile",value:function(e,t){return"// HTTP request ".concat(e.url,"\n\t\tconst subActionVar").concat(e._id,' = "').concat((e.url||"").replace(/"/g,'\\"'),'"').concat(ta.getReplacesInText(t),";\n\t\t_sendToFrontEnd(").concat(e._id,", {url: subActionVar").concat(e._id,"});\n\t\trequest(subActionVar").concat(e._id,");")}},{key:"getStaticData",value:function(){return{acceptedBy:"actions",name:"HTTP Call",id:"ActionHTTPCall",icon:"Language",title:"Make a HTTP get request",helpDialog:"You can use %s in the URL to use current trigger value or %id to use the triggered object ID"}}}]),n}(ta),function(e){(0,p.Z)(n,e);var t=(0,h.Z)(n);function n(e){return(0,u.Z)(this,n),t.call(this,e,n.getStaticData())}return(0,d.Z)(n,[{key:"renderDebug",value:function(e){return k.I18n.t("Log: %s",e.data.text)}},{key:"onTagChange",value:function(e){var t=this;this.setState({inputs:[{nameRender:"renderModalInput",attr:"text",defaultValue:"My device triggered",nameBlock:"Log text"}]},(function(){return(0,Xt.Z)((0,$t.Z)(n.prototype),"onTagChange",t).call(t,e)}))}},{key:"getData",value:function(){return n.getStaticData()}}],[{key:"compile",value:function(e,t){return"// Log ".concat(e.text,"\n\t\tconst subActionVar").concat(e._id,' = "').concat((e.text||"").replace(/"/g,'\\"'),'"').concat(ta.getReplacesInText(t),";\n\t\t_sendToFrontEnd(").concat(e._id,", {text: subActionVar").concat(e._id,"});\n\t\tconsole.log(subActionVar").concat(e._id,");")}},{key:"getStaticData",value:function(){return{acceptedBy:"actions",name:"Log text",id:"ActionPrintText",icon:"Subject",title:"Print some text in log",helpDialog:"You can use %s in the text to display current trigger value or %id to display the triggered object ID"}}}]),n}(ta),function(e){(0,p.Z)(n,e);var t=(0,h.Z)(n);function n(e){return(0,u.Z)(this,n),t.call(this,e,n.getStaticData())}return(0,d.Z)(n,[{key:"renderDebug",value:function(e){return wn.default.t("Paused: %s",e.data.paused)}},{key:"_getOptions",value:function(e){return 1===(e=void 0===e?this.state.settings.pause:e)||"1"===e?[{value:"ms",title:"millisecond"},{value:"s",title:"second"},{value:"m",title:"minute"},{value:"h",title:"hour"}]:[{value:"ms",title:"milliseconds"},{value:"s",title:"seconds"},{value:"m",title:"minutes"},{value:"h",title:"hours"}]}},{key:"_setInputs",value:function(e){var t=this;this.setState({inputs:[{nameRender:"renderNumber",attr:"pause",defaultValue:100,noHelperText:!0},{nameRender:"renderSelect",attr:"unit",defaultValue:"ms",options:this._getOptions(e)}]},(function(){return(0,Xt.Z)((0,$t.Z)(n.prototype),"onTagChange",t).call(t)}))}},{key:"onValueChanged",value:function(e,t){"pause"===t&&this._setInputs(e)}},{key:"onTagChange",value:function(e){this._setInputs()}},{key:"getData",value:function(){return n.getStaticData()}}],[{key:"compile",value:function(e,t){var n="ms"===e.unit?1:"s"===e.unit?1e3:"m"===e.unit?6e4:36e5;return"// pause for ".concat(n,"ms\n\t\t_sendToFrontEnd(").concat(e._id,", {paused: true});\n\n\t\tawait wait(").concat(e.pause," * ").concat(n,");\n\n\t\t_sendToFrontEnd(").concat(e._id,", {paused: false});")}},{key:"getStaticData",value:function(){return{acceptedBy:"actions",name:"Pause",id:"ActionPause",icon:"Pause",title:"Make a pause between actions"}}}]),n}(ta),function(e){(0,p.Z)(n,e);var t=(0,h.Z)(n);function n(e){return(0,u.Z)(this,n),t.call(this,e,n.getStaticData())}return(0,d.Z)(n,[{key:"renderDebug",value:function(e){return k.I18n.t("Function: executed")}},{key:"onTagChange",value:function(e){var t=this;this.setState({inputs:[{nameRender:"renderModalInput",attr:"func",noTextEdit:!0,defaultValue:'console.log("Test")',nameBlock:"Function"}]},(function(){return(0,Xt.Z)((0,$t.Z)(n.prototype),"onTagChange",t).call(t,e)}))}},{key:"getData",value:function(){return n.getStaticData()}}],[{key:"compile",value:function(e,t){var n=(e.func||"").split("\n").map((function(e,t){return" ".concat(e)}));return n.unshift("\t\t_sendToFrontEnd(".concat(e._id,", {func: 'executed'});")),n.unshift("// user function"),n.join("\n")}},{key:"getStaticData",value:function(){return{acceptedBy:"actions",name:"User function",id:"ActionFunction",icon:"Functions",title:"Write your own code",helpDialog:"This is advances option. You can write your own code here and it will be executed on trigger"}}}]),n}(ta),function(e){(0,p.Z)(n,e);var t=(0,h.Z)(n);function n(e){return(0,u.Z)(this,n),t.call(this,e,n.getStaticData())}return(0,d.Z)(n,[{key:"isAllTriggersOnState",value:function(){var e,t,n,a;return(null===(e=this.props.userRules)||void 0===e||null===(t=e.triggers)||void 0===t?void 0:t.find((function(e){return"TriggerState"===e.id})))&&!(null!==(n=this.props.userRules)&&void 0!==n&&null!==(a=n.triggers)&&void 0!==a&&a.find((function(e){return"TriggerState"!==e.id})))}},{key:"renderDebug",value:function(e){return(0,se.jsxs)("span",{children:[k.I18n.t("Set:")," ",(0,se.jsx)("span",{className:e.data.ack?this.props.classes.valueAck:this.props.classes.valueNotAck,children:n.renderValue(e.data.val)})]})}},{key:"_setInputs",value:function(e,t){var n=this,a=this.isAllTriggersOnState();t=void 0===t?this.state.settings.toggle:t,e=void 0===e?this.state.settings.useTrigger:e;var s,o,i,r="",l=this.state.settings,c=l.oidType,u=l.oidUnit,d=l.oidStates,p=l.oidMax,h=l.oidMin,g=l.oidRole,m=l.oidWrite,f=l.oidStep;if(c&&("number"===c?(r="number",void 0!==p&&void 0!==h&&(r="slider")):"boolean"===c?(r="boolean",g&&g.includes("button")&&m&&(r="button")):(r="",g&&g.includes("color")&&(r="color")),d&&(s=Object.keys(d).map((function(e){return{value:e,title:d[e]}})),r="select")),a&&e)i=[{backText:"use trigger value",nameRender:"renderCheckbox",attr:"useTrigger",defaultValue:!1}],"boolean"===r&&i.push({backText:"toggle value",attr:"toggle",nameRender:"renderCheckbox",defaultValue:!1});else{switch(r){case"number":i=[{backText:u||"",frontText:"with",nameRender:"renderNumber",defaultValue:void 0===p?0:p,attr:"value"}],void 0!==this.state.settings.value&&isNaN(parseFloat(this.state.settings.value))&&(o={value:void 0===p?0:p});break;case"slider":i=[{nameRender:"renderSlider",defaultValue:p,min:h,max:p,unit:u,step:f,attr:"value"}];var v=parseFloat(this.state.settings.value);void 0!==this.state.settings.value&&(isNaN(v)||vp)&&(o={value:p});break;case"select":i=[{nameRender:"renderSelect",frontText:"with",options:s,defaultValue:s[0].value,attr:"value"}],void 0===this.state.settings.value||s.find((function(e){return e.value===n.state.settings.value}))||(o={value:s[0].value});break;case"boolean":i=[{backText:"toggle value",attr:"toggle",nameRender:"renderCheckbox",defaultValue:!1}],t||i.push({backText:"true",frontText:"false",nameRender:"renderSwitch",defaultValue:!1,attr:"value"}),void 0!==this.state.settings.value&&!1!==this.state.settings.value&&!0!==this.state.settings.value&&(o={value:!1});break;case"button":i=[{nameRender:"renderButton",defaultValue:!0,attr:"value"}],void 0!==this.state.settings.value&&!0!==this.state.settings.value&&(o={value:!0});break;case"color":i=[{nameRender:"renderColor",frontText:"with",defaultValue:"#FFFFFF",attr:"value"}],void 0===this.state.settings.value||"string"===typeof this.state.settings.value&&(this.state.settings.value.startsWith("#"),this.state.settings.value.startsWith("rgb"),0)||(o={value:"#FFFFFF"});break;default:i=[{backText:u||"",frontText:"with",nameRender:"renderText",defaultValue:"",attr:"value"}]}a&&i.unshift({backText:"use trigger value",nameRender:"renderCheckbox",attr:"useTrigger"})}return i.push({backText:"ms",frontText:"Delay",nameRender:"renderNumber",defaultValue:"1000",noHelperText:!0,attr:"delay"}),i.push({backText:"clear running",nameRender:"renderCheckbox",defaultValue:!0,attr:"clearRunning"}),{inputs:i,newSettings:o}}},{key:"onTagChange",value:function(e,t,a,s,o){var i=this;o=void 0===o?this.state.settings.useTrigger:o;var r=this._setInputs(o,s),l=r.inputs,c=r.newSettings;l.unshift({nameRender:"renderObjectID",attr:"oid",defaultValue:"",checkReadOnly:!0}),this.setState({inputs:l},(function(){return(0,Xt.Z)((0,$t.Z)(n.prototype),"onTagChange",i).call(i,null,(function(){if(c){var e=JSON.parse(JSON.stringify(i.state.settings));Object.assign(e,c),i.setState(e),i.props.onChange(e)}}))}))}},{key:"onValueChanged",value:function(e,t,n){this.onTagChange(void 0,void 0,void 0,"toggle"===t?e:void 0,"useTrigger"===t?e:void 0)}},{key:"onUpdate",value:function(){this.onTagChange()}},{key:"getData",value:function(){return n.getStaticData()}}],[{key:"compile",value:function(e,t){var n,a=e.value;return e.useTrigger?a=e.toggle?"!obj.state.val":"obj.state.val":(void 0!==a&&null!==a||(a=""),"string"===typeof e.value&&parseFloat(e.value).toString()!==e.value&&"true"!==e.value&&"false"!==e.value&&(a='"'.concat(a.replace(/"/g,'\\"'),'"').concat(ta.getReplacesInText(t)))),n=e.toggle&&!e.useTrigger?"const subActionVar".concat(e._id,' = !(await getStateAsync("').concat(e.oid,'")).val'):"const subActionVar".concat(e._id," = ").concat(a),"// set delayed state ".concat(e.oid," to ").concat(e.toggle&&!e.useTrigger?"toggle":a," with delay of ").concat(e.delay,"ms\n\t\t").concat(n,";\n\t\t_sendToFrontEnd(").concat(e._id,", {val: subActionVar").concat(e._id,", ack: ").concat("update"===e.tagCard,'});\n\t\tsetStateDelayed("').concat(e.oid,'", subActionVar').concat(e._id,", ").concat("update"===e.tagCard,", ").concat(parseInt(e.delay,10),", ").concat(e.clearRunning?"true":"false",");")}},{key:"renderValue",value:function(e){return null===e?"null":void 0===e?"undefined":Array.isArray(e)?e.join(", "):"object"===typeof e?JSON.stringify(e):e.toString()}},{key:"getStaticData",value:function(){return{acceptedBy:"actions",name:"Set with delay",id:"ActionSetStateDelayed",icon:"PlayForWork",tagCardArray:["control","update"],title:"Control or update some state with delay",helpDialog:"You can use %s in the value to use the current trigger value or %id to display the triggered object ID"}}}]),n}(ta),function(e){(0,p.Z)(n,e);var t=(0,h.Z)(n);function n(e){return(0,u.Z)(this,n),t.call(this,e,n.getStaticData())}return(0,d.Z)(n,[{key:"isAllTriggersOnState",value:function(){var e,t,n,a;return(null===(e=this.props.userRules)||void 0===e||null===(t=e.triggers)||void 0===t?void 0:t.find((function(e){return"TriggerState"===e.id})))&&!(null!==(n=this.props.userRules)&&void 0!==n&&null!==(a=n.triggers)&&void 0!==a&&a.find((function(e){return"TriggerState"!==e.id})))}},{key:"renderDebug",value:function(e){return(0,se.jsxs)("span",{children:[k.I18n.t("Set:")," ",(0,se.jsx)("span",{className:e.data.ack?this.props.classes.valueAck:this.props.classes.valueNotAck,children:n.renderValue(e.data.val)})]})}},{key:"onTagChange",value:function(e,t,a,s,o){var i=this,r=[];r.push({nameRender:"renderObjectID",title:"ID1",attr:"oid1",defaultValue:"",checkReadOnly:!1}),r.push({nameRender:"renderSelect",options:[{value:"+",title:"+"},{value:"-",title:"-"},{value:"*",title:"*"},{value:"/",title:"/"}],doNotTranslate:!0,defaultValue:"+",attr:"operation"}),r.push({nameRender:"renderObjectID",title:"ID2",attr:"oid2",defaultValue:"",checkReadOnly:!1}),r.push({nameRender:"renderNameText",defaultValue:"store in",attr:"textEqual"}),r.push({nameRender:"renderObjectID",attr:"oidResult",defaultValue:"",checkReadOnly:!0}),this.setState({inputs:r},(function(){return(0,Xt.Z)((0,$t.Z)(n.prototype),"onTagChange",i).call(i,null,(function(){var e=JSON.parse(JSON.stringify(i.state.settings));i.props.onChange(e)}))}))}},{key:"onValueChanged",value:function(e,t,n){this.onTagChange(void 0,void 0,void 0,"toggle"===t?e:void 0,"useTrigger"===t?e:void 0)}},{key:"onUpdate",value:function(){this.onTagChange()}},{key:"getData",value:function(){return n.getStaticData()}}],[{key:"compile",value:function(e,t){var n="const val2_".concat(e._id,' = (await getStateAsync("').concat(e.oid1,'")).val;'),a="const val1_".concat(e._id,' = (await getStateAsync("').concat(e.oid2,'")).val;');return"// ".concat(e.oid1," ").concat(e.operation," ").concat(e.oid2," => ").concat(e.oidResult,"\n\t\t ").concat(n,"\n\t\t ").concat(a,"\n\t\t_sendToFrontEnd(").concat(e._id,", {val: val1_").concat(e._id," ").concat(e.operation," val2_").concat(e._id,", ack: ").concat("update"===e.tagCard,'});\n\t\tawait setStateAsync("').concat(e.oidResult,'", val1_').concat(e._id," ").concat(e.operation," val2_").concat(e._id,", ").concat("update"===e.tagCard,");")}},{key:"renderValue",value:function(e){return null===e?"null":void 0===e?"undefined":Array.isArray(e)?e.join(", "):"object"===typeof e?JSON.stringify(e):e.toString()}},{key:"getStaticData",value:function(){return{acceptedBy:"actions",name:"Operate two states",id:"ActionOperateStates",icon:"AddBox",tagCardArray:["control","update"],title:"Operations with two states"}}}]),n}(ta)],Pa={telegram:ia,email:oa,sayit:sa,pushover:ra,"whatsapp-cmb":la,pushsafer:ca},_a=(0,a.createContext)(),La=function(e,t){var a=arguments.length>2&&void 0!==arguments[2]?arguments[2]:void 0;return new Promise((function(s,o){if(window[e])s();else{var i=document.querySelector('[data-webpack="'.concat(e,'"]')),r=function(){var a=(0,ut.Z)((0,ct.Z)().mark((function a(){return(0,ct.Z)().wrap((function(a){for(;;)switch(a.prev=a.next){case 0:if(window[e]){a.next=2;break}return a.abrupt("return",o('Cannot load Remote "'.concat(e,'" to inject')));case 2:if(window[e].__initialized){a.next=11;break}a.next=8;break;case 6:a.next=10;break;case 8:return a.next=10,window[e].init(n.S[t]);case 10:window[e].__initialized=!0;case 11:s();case 12:case"end":return a.stop()}}),a)})));return function(){return a.apply(this,arguments)}}();if(i)i.onload=r,i.onerror=o;else if(a){var l=document,c=l.createElement("script");c.type="text/javascript",c.setAttribute("data-webpack","".concat(e)),c.async=!0,c.onerror=o,c.onload=r,c.src=a,l.getElementsByTagName("head")[0].appendChild(c)}else o("Cannot Find Remote ".concat(e," to inject"))}}))},Ua=function(e,t,n,a){return(0,ut.Z)((0,ct.Z)().mark((function s(){var o,i,r;return(0,ct.Z)().wrap((function(s){for(;;)switch(s.prev=s.next){case 0:return s.next=2,La(e,t,a);case 2:return o=window[e],s.next=5,o.get(n);case 5:return i=s.sent,r=i(),s.abrupt("return",r);case 8:case"end":return s.stop()}}),s)})))},Wa=function(e){var t=e.children,n=e.socket,s=(0,a.useState)(null),o=(0,w.Z)(s,2),i=o[0],r=o[1],l=(0,a.useState)(!1),u=(0,w.Z)(l,2),d=u[0],p=u[1],h=(0,a.useState)(!1),g=(0,w.Z)(h,2),m=g[0],f=g[1],v=(0,a.useState)(!1),y=(0,w.Z)(v,2),b=y[0],S=y[1];return(0,a.useEffect)((function(){d&&p(!1)}),[d]),(0,a.useEffect)((function(){(0,ut.Z)((0,ct.Z)().mark((function e(){var t,a,s,o,i,l,u,d;return(0,ct.Z)().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,n.getAdapterInstances();case 2:t=e.sent,a=Object.keys(Pa).filter((function(e){return t.find((function(t){var n;return(null===t||void 0===t||null===(n=t.common)||void 0===n?void 0:n.name)===e}))})),s=[],o=t.filter((function(e){return e.common.javascriptRules})),i=[],l=(0,ct.Z)().mark((function e(){var t,n,a,r,l,c,d;return(0,ct.Z)().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(t=o[u],!i.includes(t.common.name)){e.next=3;break}return e.abrupt("return","continue");case 3:if(n=t.common.javascriptRules.url.startsWith("http:")||t.common.javascriptRules.url.startsWith("https:")?t.common.javascriptRules.url:t.common.javascriptRules.url.startsWith("./")?"".concat(window.location.protocol,"//").concat(window.location.host).concat(t.common.javascriptRules.url.replace(/^\./,"")):"".concat(window.location.protocol,"//").concat(window.location.host,"/adapter/").concat(t.common.name,"/").concat(t.common.javascriptRules.url),!0!==t.common.javascriptRules.i18n){e.next=13;break}return a=n.lastIndexOf("/"),r=-1!==a?n.substring(0,a):n,l=k.I18n.getLanguage(),c="".concat(r,"/i18n/").concat(l,".json"),e.next=11,fetch(c).then((function(e){return e.json()})).then((function(e){return k.I18n.extendTranslations(e,l)})).catch((function(e){if("en"!==l)return fetch("".concat(r,"/i18n/en.json")).then((function(e){return e.json()})).then((function(e){return k.I18n.extendTranslations(e,l)})).catch((function(e){return console.error('Cannot load i18n "'.concat(c,'": ').concat(e))}));console.log('Cannot load i18n "'.concat(c,'": ').concat(e))}));case 11:e.next=14;break;case 13:if(t.common.javascriptRules.i18n&&"object"===typeof t.common.javascriptRules.i18n)try{k.I18n.extendTranslations(t.common.javascriptRules.i18n)}catch(p){console.error('Cannot import i18n for "'.concat(t.common.javascriptRules.name,'": ').concat(p))}case 14:return e.prev=14,e.next=17,Ua(t.common.javascriptRules.name,"default","./".concat(t.common.javascriptRules.name),n)();case 17:(d=e.sent.default)&&(s.push(d),i.push(t.common.name),Pa[t.common.name]=null),e.next=24;break;case 21:e.prev=21,e.t0=e.catch(14),console.error('Cannot load component "'.concat(t.common.javascriptRules.name,'": ').concat(e.t0));case 24:case"end":return e.stop()}}),e,null,[[14,21]])})),e.t0=(0,ct.Z)().keys(o);case 9:if((e.t1=e.t0()).done){e.next=17;break}return u=e.t1.value,e.delegateYield(l(),"t2",12);case 12:if("continue"!==e.t2){e.next=15;break}return e.abrupt("continue",9);case 15:e.next=9;break;case 17:d=a.filter((function(e){return Pa[e]})).map((function(e){return Pa[e]})),r([].concat((0,c.Z)(Ba),(0,c.Z)(d),s));case 19:case"end":return e.stop()}}),e)})))()}),[]),(0,se.jsx)(_a.Provider,{value:{blocks:i,socket:n,onUpdate:d,setOnUpdate:p,onDebugMessage:m,setOnDebugMessage:f,enableSimulation:b,setEnableSimulation:S},children:t})};var Va=(0,a.memo)((function(e){var t=e.setUserRules,n=e.userRules,s=e._id,o=e.id,i=e.blockValue,r=e.active,l=e.acceptedBy,c=e.isTourOpen,u=e.setTourStep,d=e.tourStep,p=(0,a.useState)(null),h=(0,w.Z)(p,2),g=h[0],m=h[1],f=(0,a.useContext)(_a),v=f.blocks,y=f.socket,b=f.onUpdate,k=f.setOnUpdate,S=f.onDebugMessage,x=f.enableSimulation;(0,a.useEffect)((function(){console.log("New message !!"+JSON.stringify(S))}),[S]);var C=(0,a.useCallback)((function(e){return v.find((function(t){return t.getStaticData().id===e}))}),[v]),I=(0,a.useCallback)((function(e){var a=function(e,t,n){var a,s=e._id,o=e.acceptedBy;if(!o||!t[o])return console.warn("Cannot find "+o),t;switch(o){case"actions":case"conditions":return(a=t[o][n].find((function(e){return e._id===s})))?t[o][n][t[o][n].indexOf(a)]=e:console.warn("Cannot find "+s),t;default:return(a=t[o].find((function(e){return e._id===s})))?t[o][t[o].indexOf(a)]=e:console.warn("Cannot find "+s),t}}(e,n,i);a&&t(a)}),[n]),j=function(e){return e.currentTarget!==g&&m(e.currentTarget)},T=(0,a.useMemo)((function(){var t=C(o)||ta;return(0,se.jsx)(t,(0,dt.Z)((0,dt.Z)({isTourOpen:c,setTourStep:u,tourStep:d,notFound:!C(o)},e),{},{onUpdate:b,setOnUpdate:k,enableSimulation:x,onDebugMessage:S,onChange:I,className:null,socket:y}))}),[n,b,S,x]),A=(0,a.useState)(!1),D=(0,w.Z)(A,2),N=D[0],E=D[1];return(0,se.jsxs)("div",{onMouseMove:j,onMouseEnter:j,onMouseLeave:function(){return m(null)},onMouseDown:function(e){if(e.ctrlKey){var a,o=Kt(l,n,i);a="triggers"!==i?o[l][i].find((function(e){return e._id===s})):o[l].find((function(e){return e._id===s})),"triggers"!==i?o[l][i].splice(o[l][i].indexOf(a),0,(0,dt.Z)((0,dt.Z)({},a),{},{_id:Date.now()})):o[l].splice(o[l].indexOf(a),0,(0,dt.Z)((0,dt.Z)({},a),{},{_id:Date.now()})),t(o)}},id:"height",style:r?{width:document.getElementById("width").clientWidth-70}:null,className:"".concat(Wt," ").concat(r?Vt:null," ").concat(N?Ht:null),children:[(0,se.jsx)("div",{className:qt}),T,t&&(0,se.jsx)("div",{className:Jt,style:Boolean(g)?{opacity:1}:{opacity:0},children:(0,se.jsx)("div",{onClick:function(e){var a=Kt(l,n,i);a=Qt(l,a,i,s),E(!0),setTimeout((function(){"triggers"===l&&k(!0),t(a)}),300)},className:Gt})})]})}));Va.defaultProps={active:!1};var Ja=Va,Ga={position:"fixed",pointerEvents:"none",zIndex:100,left:0,top:0,width:"100%",height:"100%"},Ha=function(e,t,n){if(!e||!t)return{display:"none"};var a=t.x,s=t.y;if(n){var o=function(e,t){return[32*Math.round(e/32),32*Math.round(t/32)]}(a-=e.x,s-=e.y),i=(0,w.Z)(o,2);a=i[0],s=i[1],a+=e.x,s+=e.y}var r="translate(".concat(a,"px, ").concat(s,"px)");return{transform:r,WebkitTransform:r}},qa=function(e){var t=(0,Mt.f)((function(e){return{item:e.getItem(),itemType:e.getItemType(),initialOffset:e.getInitialSourceClientOffset(),currentOffset:e.getSourceClientOffset(),isDragging:e.isDragging(),targetIds:e.getTargetIds()}})),n=t.itemType,a=t.isDragging,s=t.item,o=t.initialOffset,i=t.currentOffset,r=t.targetIds;return a?(0,se.jsx)("div",{style:Ga,children:(0,se.jsx)("div",{style:Ha(o,i),children:"box"===n?r.length?(0,se.jsx)(Ja,(0,dt.Z)((0,dt.Z)({active:!0},s),{},{allBlocks:e.allBlocks})):(0,se.jsx)(Ut,(0,dt.Z)((0,dt.Z)({active:!0},s),{},{socket:e.socket})):null})}):null},Ya={border:"style_border__FU4EA",emptyBlockStyle:"style_emptyBlockStyle__OTKrV",emptyBlock:"style_emptyBlock__FtVho",marginTop:"style_marginTop__5SZbC",selectOnChange:"style_selectOnChange__RqLzt",selectOnChangeHelp:"style_selectOnChangeHelp__-Lfd8",selectOnChangeHelpIcon:"style_selectOnChangeHelpIcon__338if",emptyBlockNone:"style_emptyBlockNone__TbBah",mainBlockItemRules:"style_mainBlockItemRules__fZaoi",nameBlockItems:"style_nameBlockItems__v7gfd",contentBlockItem:"style_contentBlockItem__y6oFK",wrapperMargin:"style_wrapperMargin__9vWv4",contentHeightOn:"style_contentHeightOn__q69X4",heightBlock:"style_heightBlock__zilKy",contentHeightOff:"style_contentHeightOff__t7D6a",cardAdd:"style_cardAdd__1pX3a",blockCardAdd:"style_blockCardAdd__jbFG-",addClassOverflow:"style_addClassOverflow__hJlQh",addClassHeight:"style_addClassHeight__8Fysj"};function Ka(e,t){var n=a.useState(localStorage.getItem(t)?JSON.parse(localStorage.getItem(t)):e),s=(0,w.Z)(n,2),o=s[0],i=s[1];return[o,function(e){localStorage.setItem(t,JSON.stringify(e)),i(e)},!!localStorage.getItem(t)]}var Qa=n(60953),Xa=n(763),$a=n.n(Xa),es=$a().throttle((function(e,t){return e(t)}),0),ts=function(e,t,n,a,s,o,i,r,l){var c=ns(e,n),u=c.card,d=c.index;if(!(dt&&r>l)&&u&&d!==t){var p=$a().clone(n);p.splice(d,1),p.splice(t,0,u);var h=$a().clone(s);switch(o){case"actions":case"conditions":return h[o][i]=p,void es(a,h);default:return h[o]=p,void es(a,h)}}},ns=function(e,t){var n=t.find((function(t){return t._id===e}));return{card:n,index:t.indexOf(n)}},as="style_drag__mJTKg",ss="style_root__lrr-F",os=function(e){var t=e.typeBlocks,n=e.allProperties,s=e.id,o=e.isActive,i=e.setUserRules,r=e.userRules,l=e.children,c=e._id,u=e.blockValue,d=(0,a.useContext)(_a).setOnUpdate,p=(0,R.c)({type:"box",item:function(){return(0,dt.Z)((0,dt.Z)({},n),{},{id:s,isActive:o,_id:c})},end:function(e,t){var n,a=e.acceptedBy,s=t.getDropResult();if(!s)return"number"!==typeof c||t.getTargetIds().length||(n=Qt(a,n=Kt(a,r,u),u,c),i(n)),null;if(s.blockValue!==u){var o="number"===typeof c?c:Date.now();n=Kt(a,r,s.blockValue);var l={id:e.id,acceptedBy:e.acceptedBy};switch(a){case"actions":return u&&(n=Qt(a,n,u,c)),(n=Qt(a,n,s.blockValue,c))[a][s.blockValue].push((0,dt.Z)((0,dt.Z)({},l),{},{_id:o})),i(n);case"conditions":return"number"===typeof u&&(n=Qt(a,n,u,c)),(n=Qt(a,n,s.blockValue,c))[a][s.blockValue].push((0,dt.Z)((0,dt.Z)({},l),{},{_id:o})),i(n);default:return d(!0),(n=Qt(a,n,s.blockValue,c))[a].push((0,dt.Z)((0,dt.Z)({},l),{},{_id:o})),i(n)}}},collect:function(e){return{opacity:e.isDragging()?.4:1,isDragging:e.isDragging()}}}),h=(0,w.Z)(p,3),g=h[0].opacity,m=h[1],f=h[2],v=(0,a.useRef)(null),y=(0,Z.L)({accept:"box",canDrop:function(){return!1},hover:function(e,n){var a,s=e._id,o=e.acceptedBy;if(v.current&&t===o){var l=null===(a=v.current)||void 0===a?void 0:a.getBoundingClientRect(),d=(l.bottom-l.top)/2,p=n.getClientOffset().y-l.top;if(c&&s!==c)switch(o){case"actions":if("then"===u||"else"===u){var h=ns(c,r[o][u]).index;h!==s&&ts(s,h,r[o][u],i,r,o,u,p,d)}return;case"conditions":if("number"===typeof u){var g=ns(c,r[o][u]).index;g!==s&&ts(s,g,r[o][u],i,r,o,u,p,d)}return;default:var m=ns(c,r[o]).index;return void(m!==s&&ts(s,m,r[o],i,r,o,null,p,d))}}}}),b=(0,w.Z)(y,2)[1];(0,a.useEffect)((function(){f((0,Qa.r)(),{captureDraggingState:!0})}),[]),m(b(v));var k=window.innerWidth<600;return(0,se.jsxs)("div",{ref:k&&c?null:v,className:ss,style:{opacity:g},children:[(0,se.jsx)("div",{className:c?as:null,ref:c&&k?v:null}),l]})};os.defaultProps={name:"",active:!1,id:"",_id:null};var is=os,rs=function(e){var t=e.onClose,n=e.open;return(0,se.jsxs)(Q.Z,{open:n,onClose:t,"aria-labelledby":"alert-dialog-title","aria-describedby":"alert-dialog-description",children:[(0,se.jsx)(Y.Z,{children:(0,se.jsxs)("div",{style:{fontSize:"1rem",fontFamily:'"Roboto", "Helvetica", "Arial", sans-serif',fontWeight:400,lineHeight:1.5,letterSpacing:"0.00938em"},children:[(0,se.jsx)("h3",{children:k.I18n.t("On condition change")}),(0,se.jsx)("div",{children:k.I18n.t("help_on_change")}),(0,se.jsx)("h3",{children:k.I18n.t("Just check")}),(0,se.jsx)("div",{children:k.I18n.t("help_just_check")})]})}),(0,se.jsx)(K.Z,{children:(0,se.jsx)(H.Z,{onClick:t,color:"primary",autoFocus:!0,startIcon:(0,se.jsx)(ae.default,{}),children:k.I18n.t("OK")})})]})};rs.defaultProps={open:!1,onClose:function(){}};var ls=rs,cs=function(e){var t=e.onClose,n=e.open;return(0,se.jsxs)(Q.Z,{open:n,onClose:t,"aria-labelledby":"alert-dialog-title","aria-describedby":"alert-dialog-description",children:[(0,se.jsx)(Y.Z,{children:(0,se.jsxs)(ve.Z,{id:"alert-dialog-description",children:[(0,se.jsx)("h3",{children:k.I18n.t("On condition change")}),(0,se.jsx)("div",{children:k.I18n.t("help_on_change")}),(0,se.jsx)("h3",{children:k.I18n.t("Just check")}),(0,se.jsx)("div",{children:k.I18n.t("help_just_check")})]})}),(0,se.jsx)(K.Z,{children:(0,se.jsx)(H.Z,{onClick:t,color:"primary",autoFocus:!0,children:k.I18n.t("OK")})})]})};cs.defaultProps={open:!1,onClose:function(){}};var us=cs,ds=function(e){var t,n=e.size,s=e.itemsSwitchesRender,o=e.blockValue,i=e.boolean,r=e.typeBlock,l=e.userRules,c=e.setUserRules,u=e.animation,d=e.setTourStep,p=e.tourStep,h=e.isTourOpen,g=(0,a.useState)(!1),m=(0,w.Z)(g,2),f=m[0],v=m[1],y=(0,a.useState)(!1),b=(0,w.Z)(y,2),S=b[0],x=b[1],C=(0,a.useState)(!1),I=(0,w.Z)(C,2),j=I[0],T=I[1],A=(0,a.useState)(""),D=(0,w.Z)(A,2),N=D[0],E=D[1],O=(0,Z.L)({accept:"box",drop:function(){return{blockValue:o}},hover:function(e,t){var n=e.acceptedBy,a=e._id;v(n===r),T(!!a),E(t.getHandlerId())},canDrop:function(e,t){var n=e.acceptedBy;return x(n===r),n===r},collect:function(e){var t;return{isOver:e.isOver(),canDrop:(null===(t=e.getItem())||void 0===t?void 0:t.acceptedBy)===r,offset:e.getClientOffset(),targetId:e.targetId}}}),M=(0,w.Z)(O,2),z=M[0],R=z.canDrop,F=z.isOver,B=z.offset,P=z.targetId,_=M[1];(0,a.useEffect)((function(){E("")}),[B]);var L=R&&F,U="";return L?U=f?"#00fb003d":"#fb00002e":R?U=S?"#00fb003d":"#fb00002e":B&&(U=P===N?"#fb00002e":""),(0,se.jsx)("div",{ref:_,style:{backgroundColor:U},className:"".concat(k.Utils.clsx(Ya.contentBlockItem,n&&Ya.addClassHeight)," ").concat(i?u?Ya.contentHeightOn:null:Ya.contentHeightOff),children:(0,se.jsxs)("div",{className:Ya.wrapperMargin,children:[null===(t=s[o])||void 0===t?void 0:t.map((function(e){return(0,se.jsx)(is,(0,dt.Z)((0,dt.Z)({typeBlocks:r},e),{},{blockValue:o,allProperties:e,userRules:l,setUserRules:c,children:(0,se.jsx)(Ja,(0,dt.Z)((0,dt.Z)({},e),{},{isTourOpen:h,setTourStep:d,tourStep:p,settings:e,blockValue:o,userRules:l,setUserRules:c}))}),e._id)})),(0,se.jsx)("div",{style:L&&f&&!j?{height:document.getElementById("height")?document.getElementById("height").clientHeight:200}:null,className:"".concat(Ya.emptyBlockStyle," ").concat(L&&f&&!j?Ya.emptyBlock:Ya.emptyBlockNone)})]})})};ds.defaultProps={children:null,boolean:!0,animation:!1};var ps=function(e){var t=e.size,n=e.typeBlock,s=e.name,o=e.nameAdditionally,i=e.additionally,r=e.border,l=e.userRules,u=e.setUserRules,d=e.iconName,p=e.adapter,h=e.socket,g=e.setTourStep,m=e.tourStep,f=e.isTourOpen,v=Ka("actions"!==n&&[],"additionallyClickItems_".concat(n)),y=(0,w.Z)(v,3),b=y[0],S=y[1],x=y[2],C=(0,a.useState)(!1),I=(0,w.Z)(C,2),j=I[0],T=I[1],A=(0,a.useState)(!1),D=(0,w.Z)(A,2),N=D[0],O=D[1];(0,a.useEffect)((function(){if("conditions"===n&&b.length!==l.conditions.length-1){var e=[];l.conditions.forEach((function(t,n){n>0&&e.push({_id:Date.now(),open:!0})})),S([].concat((0,c.Z)(b),e))}"actions"===n&&!x&&l.actions.else.length&&S(!0)}),[]);var z=(0,a.useState)(!1),Z=(0,w.Z)(z,2),R=Z[0],F=Z[1];return(0,se.jsxs)("div",{className:"".concat(k.Utils.clsx(Ya.mainBlockItemRules,t&&Ya.addClassOverflow)," ").concat(r&&!t?Ya.border:null),children:[(0,se.jsxs)("span",{id:"width",className:Ya.nameBlockItems,children:[(0,se.jsx)(_t,{iconName:d,className:Ya.iconThemCard,adapter:p,socket:h}),s]}),"conditions"===n?(0,se.jsxs)("div",{style:{width:"100%"},children:[(0,se.jsxs)(ee.Z,{variant:"standard",className:Ya.selectOnChange,value:l.justCheck||!1,onChange:function(e){var t=Kt("conditions",l);t.justCheck=e.target.value,u(t)},children:[(0,se.jsx)(M.Z,{value:!1,children:k.I18n.t("on condition change")}),(0,se.jsx)(M.Z,{value:!0,children:k.I18n.t("just check")})]}),(0,se.jsx)(E.Z,{size:"small",title:k.I18n.t("Explanation"),className:Ya.selectOnChangeHelp,onClick:function(){return T(!0)},children:(0,se.jsx)(nn.Z,{className:Ya.selectOnChangeHelpIcon})})]}):null,(0,se.jsx)(ds,{setTourStep:g,tourStep:m,isTourOpen:f,blockValue:"actions"===n?"then":"conditions"===n?0:n,typeBlock:n,setUserRules:u,userRules:l,size:t,itemsSwitchesRender:"actions"===n?l.actions:"conditions"===n?l.conditions:l}),i&&(0,c.Z)(Array("actions"===n?1:l.conditions.length-1)).map((function(e,s){var i=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:s;return Boolean("actions"===n?b:b.find((function(t,n){return n===e&&t.open})))};return(0,se.jsxs)(a.Fragment,{children:[(0,se.jsxs)("div",{onClick:function(){if("actions"===n)return S(!b),null;var e=JSON.parse(JSON.stringify(b));if(l.conditions[s+1].length)return e[s].open=!e[s].open,S(e),null;e=e.filter((function(e,t){return t!==s})),S(e),F("actions"===n||s),setTimeout((function(){F(!1),u((0,dt.Z)((0,dt.Z)({},l),{},{conditions:(0,c.Z)(l.conditions.filter((function(e,t){return t!==s+1})))}))}),250)},className:Ya.blockCardAdd,children:[i()?"-":"+",(0,se.jsx)("div",{className:Ya.cardAdd,children:o})]},s),(0,se.jsx)(ds,{blockValue:"actions"===n?"else":"conditions"===n?s+1:n,typeBlock:n,setUserRules:u,itemsSwitchesRender:"actions"===n?l.actions:"conditions"===n?l.conditions:l,userRules:l,boolean:i(),animation:Boolean(R===s),size:t})]},"".concat(s,"_block_").concat(n))})),i&&"conditions"===n&&(0,se.jsxs)("div",{onClick:function(){S([].concat((0,c.Z)(b),[{_id:Date.now(),open:!0}])),u((0,dt.Z)((0,dt.Z)({},l),{},{conditions:[].concat((0,c.Z)(l.conditions),[[]])})),F("actions"===n||l.conditions.length-1),setTimeout((function(){return F(!1)}),1e3)},className:Ya.blockCardAdd,children:["+",(0,se.jsx)("div",{className:Ya.cardAdd,children:o})]}),(0,se.jsx)(ls,{open:j,onClose:function(){return T(!1)}}),(0,se.jsx)(us,{open:N,onClose:function(){return O(!1)}})]})};ps.defaultProps={children:null,name:"",nameAdditionally:"",additionally:!1,border:!1,typeBlock:""};var hs=ps,gs="style_menuRules__00nS7",ms="style_switchesRenderWrapper__8kuDP",fs="style_menuOff__+NzqA",vs="style_menuTitle__ryFpz",ys="style_marginAuto__1fBxI",bs="style_inputWidth__ztv5O",ks="style_menuWrapper__UQpIH",Ss="style_hamburgerWrapper__E1orU",xs="style_hamburgerOff__OegQ1",ws="style_nothingFound__NMV9T",Cs="style_resetSearch__xcCMm",Is="style_controlPanel__WMp0-",js="style_controlPanelAppBar__3JVH5",Ts="style_addClassMenu__oVnVx",As="style_addClassBackground__jAEkn",Ds="style_addClassPosition__Omc3V",Ns=function(e){var t=e.allProperties,n=e.allProperties,a=n.acceptedBy,s=n.id,o=e.setUserRules,i=e.userRules,r=e.setTourStep,l=e.tourStep,c=e.isTourOpen,u=e.onTouchMove;return(0,se.jsx)(is,(0,dt.Z)((0,dt.Z)((0,dt.Z)({},e),t),{},{children:(0,se.jsx)(Ut,(0,dt.Z)((0,dt.Z)({onTouchMove:u,onDoubleClick:function(){c&&l===Gn&&"TriggerScheduleBlock"===s&&r(Hn),c&&l===Kn&&"ActionPrintText"===s&&r(Qn);var e,t=Date.now();switch(a){case"actions":e="then";break;case"conditions":e=i[a].length-1}var n=Kt(a,i,e),u={id:s,_id:t,acceptedBy:a};void 0!==e?n[a][e].push((0,dt.Z)({},u)):n[a].push((0,dt.Z)({},u)),o(n)},onDoubl:!0},e),t))}))},Es="hamburgerMenu_hamburgerMenu__85qrF",Os="hamburgerMenu_animate__fu7Hd",Ms=function(e){var t=e.boolean;return(0,se.jsx)("div",{className:"".concat(Es," ").concat(t?Os:"")})};Ms.defaultProps={boolean:!1};var zs=Ms,Zs=function(e){var t=e.addClass,n=e.setAllBlocks,s=e.allBlocks,o=e.userRules,i=e.onChangeBlocks,r=e.setTourStep,l=e.tourStep,u=e.isTourOpen,d=(0,a.useContext)(_a),p=d.blocks,h=d.socket,g=Ka(!1,"hamburgerOnOff"),m=(0,w.Z)(g,2),f=m[0],v=m[1],y=Ka({text:"",type:"triggers",index:0},"filterControlPanel"),b=(0,w.Z)(y,2),S=b[0],x=b[1],C=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:S.text,t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:S.type;if(p){var a=(0,c.Z)(p);a=(a=a.filter((function(t){if(!e)return!0;var n=t.getStaticData().name;return n&&k.I18n.t(n).toLowerCase().includes(e.toLowerCase())}))).filter((function(e){return t===e.getStaticData().acceptedBy})),n(a)}},I=function(e){return{id:"scrollable-force-tab-".concat(e),"aria-controls":"scrollable-force-tabpanel-".concat(e)}};return(0,a.useEffect)((function(){C()}),[p]),(0,se.jsx)(tn.ClickAwayListener,{mouseEvent:!1,touchEvent:"onTouchStart",onClickAway:function(){return v(!0)},children:(0,se.jsxs)("div",{className:k.Utils.clsx(ks,t[1035]&&Ts),children:[(0,se.jsx)("div",{className:"".concat(Ss," ").concat(f?xs:null),onClick:function(){return v(!f)},children:(0,se.jsx)(zs,{boolean:!f})}),(0,se.jsxs)("div",{className:"".concat(k.Utils.clsx(gs,t[1035]&&As,t[835]&&Ds)," ").concat(f?fs:null),children:[(0,se.jsx)("div",{className:Is,children:(0,se.jsx)(tn.AppBar,{className:js,position:"static",children:(0,se.jsxs)(tn.Tabs,{value:S.index,onChange:function(e,t){u&&0===t&&l===Jn&&r(Gn),u&&2===t&&l===Yn&&r(Kn),x((0,dt.Z)((0,dt.Z)({},S),{},{index:t,type:["triggers","conditions","actions"][t]})),C(S.text,["triggers","conditions","actions"][t])},children:[(0,se.jsx)(tn.Tab,(0,dt.Z)({className:"blocks-triggers",title:k.I18n.t("Triggers"),icon:(0,se.jsx)(_t,{iconName:"FlashOn"})},I(0))),(0,se.jsx)(tn.Tab,(0,dt.Z)({title:k.I18n.t("Conditions"),className:"blocks-conditions",icon:(0,se.jsx)(_t,{iconName:"Help"})},I(1))),(0,se.jsx)(tn.Tab,(0,dt.Z)({title:k.I18n.t("Actions"),className:"blocks-actions",icon:(0,se.jsx)(_t,{iconName:"PlayForWork"})},I(2)))]})})}),(0,se.jsx)("div",{className:ms,children:(0,se.jsxs)("span",{children:[s.map((function(e){var t=e.getStaticData(),n=t.name,s=t.id,c=t.icon,d=t.adapter;return(0,se.jsx)(a.Fragment,{children:(0,se.jsx)(Ns,{onTouchMove:function(){return v(!0)},setTourStep:r,tourStep:l,isTourOpen:u,allProperties:e.getStaticData(),name:n,icon:c,adapter:d,socket:h,userRules:o,setUserRules:i,isActive:!1,id:s})},s)})),0===s.length&&(0,se.jsxs)("div",{className:ws,children:[k.I18n.t("Nothing found"),"...",(0,se.jsx)("div",{className:Cs,onClick:function(){x((0,dt.Z)((0,dt.Z)({},S),{},{text:""})),C("")},children:k.I18n.t("reset search")})]})]})}),(0,se.jsx)("div",{className:k.Utils.clsx(vs,ys)}),(0,se.jsx)(vn,{className:bs,fullWidth:!0,customValue:!0,value:S.text,size:"small",autoComplete:"off",label:k.I18n.t("search"),variant:"outlined",onChange:function(e){x((0,dt.Z)((0,dt.Z)({},S),{},{text:e})),C(e)}})]})]})})},Rs=function(e){var t=e.code,n=e.onChange,s=e.themeName,o=e.setTourStep,i=e.tourStep,r=e.isTourOpen,l=e.command,c=e.scriptId,u=e.changed,d=e.running,p=(0,a.useContext)(_a),h=p.blocks,g=p.socket,m=p.setOnUpdate,f=p.setOnDebugMessage,v=p.setEnableSimulation,y=(0,a.useState)([]),b=(0,w.Z)(y,2),S=b[0],x=b[1],C=(0,a.useState)(ma.code2json(t)),I=(0,w.Z)(C,2),j=I[0],T=I[1],A=(0,a.useState)(""),D=(0,w.Z)(A,2),N=D[0],E=D[1],O=(0,a.useState)(!1),M=(0,w.Z)(O,2),z=M[0],Z=M[1];(0,a.useEffect)((function(){var e,t,n=function n(a,s){var o,i;a===e+".alive"?t!==(null===s||void 0===s?void 0:s.val)&&(t=null===s||void 0===s?void 0:s.val)&&g.sendTo(e.replace(/^system\.adapter\./,""),"rulesOn",c):e!==(null===s||void 0===s||null===(o=s.common)||void 0===o?void 0:o.engine)&&(e&&g.unsubscribeState("".concat(e,".alive"),n),t&&g.sendTo(e.replace(/^system\.adapter\./,""),"rulesOn",c),(e=null===s||void 0===s||null===(i=s.common)||void 0===i?void 0:i.engine)&&g.subscribeState("".concat(e,".alive"),n))},a=function(e,t){if(t)try{var n=JSON.parse(t.val);n.ruleId===c&&Date.now()-n.ts<1e3&&f({blockId:n.blockId,data:n.data,ts:n.ts})}catch(a){console.error("Cannot parse: "+t.val)}};return g.getObject(c).then((function(t){var s;e=null===t||void 0===t||null===(s=t.common)||void 0===s?void 0:s.engine,g.subscribeObject(c,n),e&&g.subscribeState("".concat(e,".alive"),n),e&&g.subscribeState(e.replace(/^system\.adapter\./,"")+".debug.rules",a)})),function(){e&&g.unsubscribeObject("".concat(e,".alive"),n),g.unsubscribeState(c,n),t&&e&&g.sendTo(e.replace(/^system\.adapter\./,""),"rulesOff",c),e&&g.unsubscribeState(e.replace(/^system\.adapter\./,"")+".debug.rules",a)}}),[]),(0,a.useEffect)((function(){v(!u&&d)}),[u,d,v]),(0,a.useEffect)((function(){l&&(E(l),z||Z(!0))}),[l]),(0,a.useEffect)((function(){var e=ma.code2json(t);JSON.stringify(e)!==JSON.stringify(j)&&(T(e),m(!0))}),[t]),(0,a.useEffect)((function(){document.getElementsByTagName("HTML")[0].className=s||"blue"}),[s]);var R=(0,a.useCallback)((function(e){T(e),n(ma.json2code(e,h))}),[h,n]),F=(0,a.useRef)({clientWidth:0}),B=(0,a.useState)({835:!1,1035:!1}),P=(0,w.Z)(B,2),_=P[0],L=P[1];return(0,a.useEffect)((function(){F.current&&(F.current.clientWidth<=1035&&L({835:!1,1035:!0}),F.current.clientWidth<=835&&L({1035:!0,835:!0}),F.current.clientWidth>1035&&L({835:!1,1035:!1}))}),[F.current.clientWidth]),h?(0,se.jsxs)("div",{className:Nt,ref:F,children:[(0,se.jsx)(qa,{allBlocks:S,socket:g}),"export"===N?(0,se.jsx)(ft,{onClose:function(){return Z(!1)},open:z,text:JSON.stringify(j,null,2)},"dialogExport"):(0,se.jsx)(bt,{open:z,onClose:function(e){Z(!1),e&&R(JSON.parse(e))}},"dialogImport"),(0,se.jsxs)("div",{className:k.Utils.clsx(Et,_[835]&&Ot),children:[(0,se.jsx)(Zs,{setAllBlocks:x,allBlocks:S,userRules:j,onChangeBlocks:R,setTourStep:o,tourStep:i,addClass:_,isTourOpen:r}),(0,se.jsx)(hs,{setUserRules:R,userRules:j,isTourOpen:r,setTourStep:o,tourStep:i,name:"".concat(k.I18n.t("when"),"..."),typeBlock:"triggers",iconName:"FlashOn",size:_[835]}),(0,se.jsx)(hs,{setUserRules:R,isTourOpen:r,setTourStep:o,tourStep:i,userRules:j,name:"...".concat(k.I18n.t("and"),"..."),typeBlock:"conditions",iconName:"Help",nameAdditionally:k.I18n.t("or"),additionally:!0,border:!0,size:_[835]}),(0,se.jsx)(hs,{setUserRules:R,isTourOpen:r,setTourStep:o,tourStep:i,userRules:j,name:"...".concat(k.I18n.t("then")),typeBlock:"actions",iconName:"PlayForWork",nameAdditionally:k.I18n.t("else"),additionally:!0,size:_[835]})]})]},"rulesEditor"):null},Fs=n(76278),Bs=function(e){(0,p.Z)(n,e);var t=(0,h.Z)(n);function n(e){var a;return(0,u.Z)(this,n),(a=t.call(this,e)).state={lines:(a.props.script||"").split(/\r\n|\n/)},a}return(0,d.Z)(n,[{key:"editorDidMount",value:function(e,t){this.monaco=t,this.editor=e,e.focus()}},{key:"render",value:function(){var e=this;return(0,se.jsx)("div",{className:this.props.classes.editorDiv,children:(0,se.jsx)(lt,{name:this.props.scriptName,adapterName:this.props.adapterName,readOnly:!0,code:this.props.script||"",isDark:"dark"===this.props.themeType,socket:this.props.socket,runningInstances:this.props.runningInstances,language:"javascript",breakpoints:this.props.breakpoints,location:this.props.paused?this.props.location:null,onToggleBreakpoint:function(t){return e.props.onToggleBreakpoint(t)}},"scriptEditor2")},"scriptEditorDiv2")}}]),n}(s().Component),Ps=(0,g.Z)((function(e){return{editorDiv:{height:"100%",width:"100%",overflow:"hidden",position:"relative"},editor:{width:"100%",height:"100%",overflow:"auto"},line:{width:"100%",whiteSpace:"nowrap"},lineNumber:{width:40,whiteSpace:"nowrap",overflow:"hidden",display:"inline-block",fontFamily:"Lucida Console, Courier, monospace",textAlign:"right",fontSize:14,marginRight:1,borderRight:"1px solid #555",cursor:"pointer"},lineBreakpoint:{background:"#330000",color:"white"},lineCode:{display:"inline-block",fontFamily:"Lucida Console, Courier, monospace",fontSize:14,margin:0,whiteSpace:"pre"},lineCurrentCode:{background:"red",color:"white"},lineCurrent:{background:"#880000",color:"white"}}}))(Bs);function _s(e){var t,n=e.getHours();return n<10&&(n="0"+n.toString()),t=n+":",(n=e.getMinutes())<10&&(n="0"+n.toString()),t+=n+":",(n=e.getSeconds())<10&&(n="0"+n.toString()),t+=n+".",(n=e.getMilliseconds())<10?n="00"+n.toString():n<100&&(n="0"+n.toString()),t+=n}var Ls=function(e){(0,p.Z)(n,e);var t=(0,h.Z)(n);function n(e){var a;return(0,u.Z)(this,n),(a=t.call(this,e)).state={lines:{},goBottom:!0},a.messagesEnd=s().createRef(),a}return(0,d.Z)(n,[{key:"generateLine",value:function(e){return(0,se.jsxs)("tr",{className:this.props.classes[e.severity],children:[(0,se.jsx)("td",{className:this.props.classes.trTime,children:_s(new Date(e.ts))},"tdTime"),(0,se.jsx)("td",{className:this.props.classes.trSeverity,children:e.severity},"tdSeverity"),(0,se.jsx)("td",{children:e.text},"tdMessage")]},"tr_".concat(e.ts,"_").concat(e.text.substr(-10)))}},{key:"renderLogList",value:function(e){var t=this;return e&&e.length?(0,se.jsxs)("div",{className:this.props.classes.logBoxInner,children:[(0,se.jsx)("table",{className:this.props.classes.table,children:(0,se.jsx)("tbody",{children:e.map((function(e,n){return t.generateLine(e)}))})},"logTable"),(0,se.jsx)("div",{ref:this.messagesEnd,style:{float:"left",clear:"both"}},"logScrollPoint")]},"logList"):(0,se.jsx)("div",{className:this.props.classes.logBoxInner,style:{paddingLeft:10},children:k.I18n.t("Log outputs")},"logList")}},{key:"onCopy",value:function(){k.Utils.copyToClipboard(this.props.console.join("\n"))}},{key:"scrollToBottom",value:function(){this.messagesEnd&&this.messagesEnd.current&&this.messagesEnd.current.scrollIntoView({behavior:"smooth"})}},{key:"componentDidUpdate",value:function(){this.state.goBottom&&this.scrollToBottom()}},{key:"render",value:function(){var e=this,t=this.props.console;return(0,se.jsxs)("div",{className:this.props.classes.logBox,children:[(0,se.jsxs)("div",{className:this.props.classes.toolbox,children:[(0,se.jsx)(E.Z,{className:this.props.classes.iconButtons,onClick:function(){return e.setState({goBottom:!e.state.goBottom})},color:this.state.goBottom?"secondary":"",size:"medium",children:(0,se.jsx)(S.G10,{})}),t&&t.length?(0,se.jsx)(E.Z,{className:this.props.classes.iconButtons,onClick:function(){return e.props.onClearAllLogs()},size:"medium",children:(0,se.jsx)(S.FH3,{})}):null,t&&t.length?(0,se.jsx)(E.Z,{className:this.props.classes.iconButtons,onClick:function(){return e.onCopy()},size:"medium",children:(0,se.jsx)(S.Fqs,{})}):null]},"toolbox"),this.renderLogList(t)]})}}]),n}(s().Component),Us=(0,g.Z)((function(e){return{consoleLine:{fontSize:14,color:"dark"===e.palette.mode?"#EEE":"#222"},console_log:{},console_warn:{backgroundColor:"dark"===e.palette.mode?"#885900":"#ffa500"},console_error:{backgroundColor:"dark"===e.palette.mode?"#7a0000":"#FF0000"},console_debug:{opacity:.6},consoleSeverity:{verticalAlign:"top",width:50,textTransform:"uppercase"},consoleTime:{whiteSpace:"nowrap",verticalAlign:"top",width:170},consoleText:{fontFamily:"Lucida Console, Courier, monospace",paddingTop:4,"&>pre":{margin:0}},logBox:{width:"100%",height:"100%",position:"relative",overflow:"hidden"},logBoxInner:{display:"inline-block",color:"dark"===e.palette.mode?"white":"black",width:"calc(100% - ".concat(34,"px)"),height:"100%",overflow:"auto",position:"relative",verticalAlign:"top"},info:{background:"dark"===e.palette.mode?"darkgrey":"lightgrey",color:(e.palette.mode,"black")},error:{background:"#FF0000",color:"dark"===e.palette.mode?"black":"white"},warn:{background:"#FF8000",color:"dark"===e.palette.mode?"black":"white"},debug:{background:"gray",opacity:.8,color:"dark"===e.palette.mode?"black":"white"},silly:{background:"gray",opacity:.6,color:"dark"===e.palette.mode?"black":"white"},table:{fontFamily:"monospace",width:"100%"},toolbox:{width:34,height:"100%",boxShadow:"2px 0px 4px -1px rgba(0, 0, 0, 0.2), 4px 0px 5px 0px rgba(0, 0, 0, 0.14), 1px 0px 10px 0px rgba(0, 0, 0, 0.12)",display:"inline-block",verticalAlign:"top",overflow:"hidden"},trTime:{width:90},trSeverity:{width:40,fontWeight:"bold"},iconButtons:{width:32,height:32,padding:4}}}))(Ls),Ws=n(71939),Vs=n.n(Ws),Js=function(e){(0,p.Z)(n,e);var t=(0,h.Z)(n);function n(e){var a;return(0,u.Z)(this,n),(a=t.call(this,e)).framesSize=parseFloat(window.localStorage.getItem("App.framesSize"))||300,a.state={editValue:null,callFrames:a.props.callFrames},a.editRef=s().createRef(),a}return(0,d.Z)(n,[{key:"onExpressionNameUpdate",value:function(){var e=this;this.props.onExpressionNameUpdate(this.state.editValue.index,this.scopeValue,(function(){e.setState({editValue:null}),e.scopeValue=null}))}},{key:"renderExpression",value:function(e,t){var n=this,a=this.state.editValue&&"expression"===this.state.editValue.type&&this.state.editValue.index===t?(0,se.jsx)(z.Z,{inputRef:this.editRef,fullWidth:!0,margin:"dense",onBlur:function(){return n.state.editValue&&n.setState({editValue:null})},defaultValue:e.name,onKeyUp:function(e){13===e.keyCode?n.onExpressionNameUpdate():27===e.keyCode&&n.setState({editValue:null})},onChange:function(e){return n.scopeValue=e.target.value},endAdornment:(0,se.jsx)(Se.Z,{position:"end",children:(0,se.jsx)(E.Z,{onClick:function(){return n.onExpressionNameUpdate()},size:"medium",children:(0,se.jsx)(S.HhX,{})})})}):[(0,se.jsx)("div",{className:this.props.classes.scopeNameName,title:k.I18n.t("Double click to edit expression"),children:e.name},"name"),(0,se.jsx)("div",{className:this.props.classes.scopeNameEqual,children:" = "},"="),(0,se.jsx)("div",{className:this.props.classes.scopeNameValue,children:this.formatValue(e.value)},"val")];return(0,se.jsxs)("tr",{children:[(0,se.jsx)("td",{className:k.Utils.clsx(this.props.classes.scopeType,this.props.classes.scopeType_user),children:"user"}),(0,se.jsx)("td",{className:this.props.classes.scopeName,onDoubleClick:function(){n.scopeValue=e.name||"",n.setState({editValue:{type:"expression",valueType:"string",index:t,name:e.name,value:e.name||""}})},children:a}),(0,se.jsx)(E.Z,{className:this.props.classes.scopeButtonDel,size:"small",disabled:!!this.state.editValue,onClick:function(){return n.props.onExpressionDelete(t)},children:(0,se.jsx)(S.ZkW,{})})]},"user_".concat(t).concat(e.name))}},{key:"renderExpressions",value:function(){var e=this;return this.props.expressions.map((function(t,n){return e.renderExpression(t,n)}))}},{key:"renderOneFrameTitle",value:function(e,t){var n=this;if(this.props.mainScriptId===this.props.currentScriptId&&e.location.scriptId!==this.props.mainScriptId)return null;var a=e.url.split("/").pop().replace(/^script\.js\./,"");return(0,se.jsx)(Fs.Z,{onClick:function(){return n.props.onChangeCurrentFrame(t)},dense:!0,selected:this.props.currentFrame===t,classes:{root:this.props.classes.frameRoot},children:(0,se.jsx)(N.Z,{classes:{root:this.props.classes.frameTextRoot,primary:this.props.classes.frameTextPrimary,secondary:this.props.classes.frameTextSecondary},title:e.url,primary:e.functionName||"anonymous",secondary:"".concat(a," (").concat(e.location.lineNumber,":").concat(e.location.columnNumber,")")})},e.id)}},{key:"formatValue",value:function(e,t){if(e){if("function"===e.type){var n=e.description?e.description.length>100?e.description.substring(0,100)+"...":e.description:"function";return t?n:(0,se.jsx)("span",{className:this.props.classes.valueFunc,title:e.description,children:n})}if(void 0===e.value)return t?"undefined":(0,se.jsx)("span",{className:this.props.classes.valueUndefined,children:"undefined"});if(null===e.value)return t?"null":(0,se.jsx)("span",{className:this.props.classes.valueNull,children:"null"});if("string"===e.type){if(t)return e.value;var a=e.value?e.value.length>100?e.value.substring(0,100)+"...":e.value:"";return(0,se.jsxs)("span",{className:this.props.classes.valueString,title:a,children:['"',a,'"']})}return"boolean"===e.type?t?e.value.toString():(0,se.jsx)("span",{className:this.props.classes.valueBoolean,children:e.value.toString()}):"object"===e.type?t?JSON.stringify(e.value):(0,se.jsx)(Vs(),{enableClipboard:!1,style:{backgroundColor:"inherit",marginTop:3},src:e.value,collapsed:!0,theme:"dark"===this.props.themeType?"brewer":"rjv-default",displayDataTypes:!1}):e.value.toString()}return t?"none":(0,se.jsx)("span",{className:this.props.classes.valueNone,children:"none"})}},{key:"onWriteScopeValue",value:function(){"true"===this.scopeValue?this.scopeValue=!0:"false"===this.scopeValue?this.scopeValue=!1:"null"===this.scopeValue?this.scopeValue=null:"undefined"===this.scopeValue?this.scopeValue=void 0:parseFloat(this.scopeValue).toString()===this.scopeValue&&(this.scopeValue=parseFloat(this.scopeValue)),this.props.onWriteScopeValue({variableName:this.state.editValue.name,scopeNumber:0,newValue:{value:this.scopeValue,valueType:typeof this.scopeValue},callFrameId:this.props.callFrames[this.props.currentFrame].callFrameId}),this.setState({editValue:null}),this.scopeValue=null}},{key:"componentDidUpdate",value:function(){var e;null===(e=this.editRef.current)||void 0===e||e.focus()}},{key:"renderScope",value:function(e,t,n){var a,s,o=this,i=!this.props.currentFrame&&t.value&&("undefined"===t.value.type||"string"===t.value.type||"number"===t.value.type||"boolean"===t.value.type||null===(null===(a=t.value)||void 0===a?void 0:a.value)||void 0===(null===(s=t.value)||void 0===s?void 0:s.value)),r=this.state.editValue&&this.state.editValue.type===n&&this.state.editValue.name===t.name?[(0,se.jsx)("div",{className:this.props.classes.scopeNameName,children:t.name},"name"),(0,se.jsx)("div",{className:this.props.classes.scopeNameEqual,children:" = "},"="),(0,se.jsx)(z.Z,{inputRef:this.editRef,margin:"dense",onBlur:function(){return o.state.editValue&&o.setState({editValue:null})},defaultValue:this.formatValue(t.value,!0),onKeyUp:function(e){13===e.keyCode?o.onWriteScopeValue():27===e.keyCode&&o.setState({editValue:null})},onChange:function(e){return o.scopeValue=e.target.value},endAdornment:(0,se.jsx)(Se.Z,{position:"end",children:(0,se.jsx)(E.Z,{onClick:function(){return o.onWriteScopeValue()},size:"medium",children:(0,se.jsx)(S.HhX,{})})})})]:[(0,se.jsx)("div",{className:this.props.classes.scopeNameName,title:k.I18n.t("Double click to write value"),children:t.name},"name"),(0,se.jsx)("div",{className:this.props.classes.scopeNameEqual,children:" = "},"="),(0,se.jsxs)("div",{className:this.props.classes.scopeNameValue,children:[this.formatValue(t.value)," (",t.value.type,")"]},"val")];return(0,se.jsxs)("tr",{children:[(0,se.jsx)("td",{className:k.Utils.clsx(this.props.classes.scopeType,this.props.classes["scopeType_"+n]),children:n}),(0,se.jsx)("td",{className:k.Utils.clsx(this.props.classes.scopeName,!this.props.currentFrame&&i&&this.props.classes.scopeValueEditable),onDoubleClick:function(){i&&(o.scopeValue=t.value.value,o.setState({editValue:{scopeId:e,type:n,valueType:t.value.type,name:t.name,value:t.value.value}}))},children:r})]},"".concat(n,"_").concat(e,"_").concat(t.name))}},{key:"renderScopes",value:function(e){var t=this;if(e){var n,a,s,o,i,r,l=this.renderExpressions(),c=null===(n=this.props.scopes)||void 0===n||null===(a=n.local)||void 0===a||null===(s=a.properties)||void 0===s?void 0:s.result.map((function(e){return t.renderScope(t.props.scopes.id,e,"local")}));return c&&c.forEach((function(e){return l.push(e)})),(c=null===(o=this.props.scopes)||void 0===o||null===(i=o.closure)||void 0===i||null===(r=i.properties)||void 0===r?void 0:r.result.map((function(e){return t.renderScope(t.props.scopes.id,e,"closure")})))&&c.forEach((function(e){return l.push(e)})),(0,se.jsx)("table",{style:{width:"100%"},children:(0,se.jsx)("tbody",{children:l})})}return null}},{key:"render",value:function(){var e=this;return(0,se.jsxs)(f(),{customClassName:this.props.classes.splitter,primaryIndex:1,secondaryMinSize:200,primaryMinSize:200,vertical:!1,secondaryInitialSize:this.framesSize,onSecondaryPaneSizeChange:function(t){return e.framesSize=parseFloat(t)},onDragEnd:function(){return window.localStorage.setItem("App.framesSize",e.framesSize.toString())},children:[(0,se.jsx)("div",{style:{width:"100%",height:"100%",overflow:"auto"},children:(0,se.jsx)(j.Z,{classes:{root:this.props.classes.listRoot},children:this.props.callFrames?this.props.callFrames.map((function(t,n){return e.renderOneFrameTitle(t,n)})):null})}),(0,se.jsxs)("div",{style:{width:"100%",height:"100%",overflow:"auto"},children:[(0,se.jsx)("div",{className:this.props.classes.toolbarScopes,children:(0,se.jsx)(E.Z,{size:"small",onClick:function(){return e.props.onExpressionAdd((function(t,n){e.scopeValue=n.name||"",e.setState({editValue:{type:"expression",valueType:"string",index:t,name:n.name,value:n.name||""}})}))},children:(0,se.jsx)(S.x06,{})})}),(0,se.jsx)("div",{className:this.props.classes.scopesAfterToolbar,children:this.props.callFrames&&this.props.callFrames.length&&this.renderScopes(this.props.callFrames[this.props.currentFrame])})]})]})}}]),n}(s().Component),Gs=(0,g.Z)((function(e){return{frameRoot:{paddingTop:0,paddingBottom:0},frameTextRoot:{margin:0},frameTextPrimary:{color:"dark"===e.palette.mode?"#CCC":"#333"},frameTextSecondary:{fontStyle:"italic",fontSize:12,opacity:.6,paddingLeft:e.spacing(1)},listRoot:{padding:0},scopeType:{verticalAlign:"top",textTransform:"uppercase",width:50},scopeType_local:{color:"#53a944"},scopeType_closure:{color:"#365b80"},scopeType_user:{color:"#a48a15"},scopeName:{color:"#bc5b5b",width:"calc(100% - 82px)",whiteSpace:"nowrap",textOverflow:"ellipsis"},scopeButton:{width:32},scopeValueEditable:{cursor:"pointer"},selectedFrame:{backgroundColor:"#777",color:"white"},splitter:{width:"100%",height:"calc(100% - 36px)",overflow:"hidden",fontSize:12},toolbarScopes:{width:24,display:"inline-block",height:"100%",background:"dark"===e.palette.mode?"#222":"#EEE",verticalAlign:"top"},scopesAfterToolbar:{width:"calc(100% - 24px)",display:"inline-block",height:"100%",verticalAlign:"top"},scopeNameName:{fontWeight:"bold",display:"inline-block",verticalAlign:"top"},scopeNameEqual:{display:"inline-block",color:"dark"===e.palette.mode?"#EEE":"#222",verticalAlign:"top"},scopeNameValue:{verticalAlign:"top",display:"inline-block",color:"#3b709f",whiteSpace:"nowrap"},scopeButtonDel:{padding:0,float:"right"},valueNull:{color:"#a44a24"},valueUndefined:{color:"#a44a24"},valueString:{color:"#1e8816"},valueNumber:{color:"#163c88"},valueBoolean:{color:"#a44a24"},valueObject:{color:"#721b70"},valueNone:{color:"#8a8a8a"},valueFunc:{color:"#ac4343"}}}))(Js),Hs=function(e){(0,p.Z)(n,e);var t=(0,h.Z)(n);function n(e){var a;(0,u.Z)(this,n),(a=t.call(this,e)).fromInstance=function(e,t){try{var n=JSON.parse(t.val);if("subscribed"===n.cmd)a.props.socket.sendTo(a.state.instance,"debug",a.props.debugInstance||{scriptName:a.props.src});else if("readyToDebug"===n.cmd){var s;a.mainScriptId=n.scriptId,a.scripts[n.scriptId]=n.script,n.script.startsWith("(async () => {debugger;\n")?a.scripts[n.scriptId]="(async () => {\n".concat(n.script.substring(24)):n.script.startsWith("debugger;")&&(a.scripts[n.scriptId]=n.script.substring(9));var o=JSON.parse(JSON.stringify(a.state.tabs));o[n.scriptId]=a.props.debugInstance?n.url:a.props.src.replace("script.js.","");var i="".concat(Date.now(),".").concat(1e4*Math.random());(null===(s=n.context)||void 0===s?void 0:s.callFrames)&&n.context.callFrames.forEach((function(e,t){return e.id=i+t})),a.setState({starting:!1,finished:!1,selected:a.mainScriptId,script:a.scripts[n.scriptId],tabs:o,currentFrame:0,started:!0,paused:!0,location:a.getLocation(n.context),context:n.context},(function(){return a.reinitBreakpoints((function(){a.readCurrentScope(),a.readExpressions()}))}))}else if("paused"===n.cmd){var r,l,u="".concat(Date.now(),".").concat(1e4*Math.random());(null===(r=n.context)||void 0===r?void 0:r.callFrames)&&n.context.callFrames.forEach((function(e,t){return e.id=u+t}));var d=a.getLocation(n.context),p=JSON.parse(JSON.stringify(a.state.tabs)),h=n.context.callFrames[0].url.split("iobroker.javascript");p[d.scriptId]=(h[1]||h[0]).replace("script.js.","");var g={tabs:p,paused:!0,location:d,currentFrame:0,context:n.context,scope:{id:(null===(l=n.context)||void 0===l?void 0:l.callFrames)&&n.context.callFrames[0]&&n.context.callFrames[0].id||0}};g.script=void 0===a.scripts[d.scriptId]?k.I18n.t("loading..."):a.scripts[d.scriptId],g.selected=d.scriptId,a.setState(g,(function(){a.readCurrentScope(),a.readExpressions(),a.scripts[d.scriptId]||a.sendToInstance({cmd:"source",scriptId:d.scriptId})}))}else if("script"===n.cmd)a.scripts[n.scriptId]=n.text,a.state.selected===n.scriptId&&a.setState({script:a.scripts[n.scriptId]});else if("resumed"===n.cmd)a.setState({paused:!1});else if("log"===n.cmd)if("console"===a.state.toolsTab){a.console=null;var m=(0,c.Z)(a.state.console);m.push({text:n.text,severity:n.severity,ts:n.ts}),a.setState({console:m})}else"error"===n.severity?a.setState({logErrors:a.state.logErrors+1}):"warn"===n.severity?a.setState({logWarnings:a.state.logWarnings+1}):a.setState({logs:a.state.logs+1}),a.console=a.console||(0,c.Z)(a.state.console),a.console.push({text:n.text,severity:n.severity,ts:n.ts});else if("error"===n.cmd)a.setState({error:n.error});else if("finished"===n.cmd||"debugStopped"===n.cmd)a.setState({finished:!0,starting:!1,started:!0});else if("sb"===n.cmd){var f=JSON.parse(JSON.stringify(a.state.breakpoints)),v=!1;n.breakpoints.filter((function(e){return e})).forEach((function(e){var t=f.find((function(t){return t.location.scriptId===e.location.scriptId&&t.location.lineNumber===e.location.lineNumber}));t||(v=!0,f.push(e))})),v&&window.localStorage.setItem("javascript.tools.bp."+a.props.src,JSON.stringify(f)),v&&a.setState({breakpoints:f})}else if("cb"===n.cmd){var y=JSON.parse(JSON.stringify(a.state.breakpoints)),b=!1;n.breakpoints.filter((function(e){return void 0!==e&&null!==e})).forEach((function(e){var t=y.find((function(t){return t.id===e}));if(t){var n=y.indexOf(t);y.splice(n,1),b=!0}})),b&&window.localStorage.setItem("javascript.tools.bp."+a.props.src,JSON.stringify(y)),b&&a.setState({breakpoints:y})}else if("scope"===n.cmd){var S=n.scopes.find((function(e){return"local"===e.type}))||null,x=n.scopes.find((function(e){return"closure"===e.type}))||null;console.log(JSON.stringify(x)),a.setState({scopes:{local:S,closure:x,id:"".concat(a.state.scope.id,"_").concat(a.state.currentFrame)}})}else if("setValue"===n.cmd){var w,C=JSON.parse(JSON.stringify(a.state.scopes));(w=0===n.scopeNumber?C.local&&C.local.properties&&C.local.properties.result&&C.local.properties.result.find((function(e){return e.name===n.variableName})):C.closure&&C.closure.properties&&C.closure.properties.result&&C.closure.properties.result&&C.closure.properties.result.find((function(e){return e.name===n.variableName})))&&(w.value.value=n.newValue.value,a.setState({scopes:C}))}else if("expressions"===n.cmd){var I=JSON.parse(JSON.stringify(a.state.expressions)),j=!1;n.expressions.forEach((function(e){var t=I.find((function(t){return t.name===e.name}));t&&(j=!0,t.value=e.result)})),j&&a.setState({expressions:I}),console.log("expressions: "+JSON.stringify(n))}else if("getPossibleBreakpoints"===n.cmd){var T,A,D,N;1===(null===(T=n.breakpoints)||void 0===T||null===(A=T.locations)||void 0===A?void 0:A.length)?a.sendToInstance({breakpoints:n.breakpoints.locations,cmd:"sb"}):null!==(D=n.breakpoints)&&void 0!==D&&null!==(N=D.locations)&&void 0!==N&&N.length?a.setState({queryBreakpoints:n.breakpoints.locations}):window.alert("cannot set")}else console.error("Unknown command: ".concat(JSON.stringify(n)))}catch(E){}};var s=window.localStorage.getItem("javascript.tools.bp."+a.props.src);try{s=s?JSON.parse(s):[]}catch(i){s=[]}var o=window.localStorage.getItem("javascript.tools.exps."+a.props.src);try{o=(o=o?JSON.parse(o):[]).map((function(e){return{name:e}}))}catch(i){o=[]}return a.toolSize=window.localStorage&&parseFloat(window.localStorage.getItem("App.toolSize"))||150,a.state={starting:!0,selected:null,tabs:{},script:"",breakpoints:s,expressions:o,running:!1,error:"",started:!1,paused:!0,location:null,toolsTab:window.localStorage.getItem("javascript.tools.tab")||"console",stopOnException:"true"===window.localStorage.getItem("javascript.tools.stopOnException"),console:[],finished:!1,currentFrame:0,scopes:{},queryBreakpoints:null,logErrors:0,logWarnings:0,logs:0},a.scripts={},a.mainScriptId=null,a}return(0,d.Z)(n,[{key:"componentDidMount",value:function(){var e=this;new Promise((function(t){e.props.debugInstance?t(e.props.debugInstance.instance):e.props.socket.getObject(e.props.src).then((function(e){var n,a;return t(null===e||void 0===e||null===(n=e.common)||void 0===n||null===(a=n.engine)||void 0===a?void 0:a.replace("system.adapter.",""))}))})).then((function(t){return e.setState({instance:t},(function(){e.state.instance?(e.props.socket.setState("".concat(e.state.instance,".debug.from"),{val:'{"cmd": "subscribed"}',ack:!0}),setTimeout((function(){return e.props.socket.subscribeState("".concat(e.state.instance,".debug.from"),e.fromInstance)}),200)):e.setState({error:"Unknown instance"})}))}))}},{key:"componentWillUnmount",value:function(){this.state.instance&&(this.props.socket.unsubscribeState("".concat(this.state.instance,".debug.from"),this.fromInstance),this.props.socket.sendTo(this.state.instance,"debugStop"))}},{key:"sendToInstance",value:function(e){this.props.socket.setState("".concat(this.state.instance,".debug.to"),{val:JSON.stringify(e),ack:!1})}},{key:"reinitBreakpoints",value:function(e){var t=this;if(this.state.breakpoints.length){var n=JSON.parse(JSON.stringify(this.state.breakpoints));n=n.map((function(e){return e.location})),this.setState({breakpoints:[]},(function(){t.sendToInstance({breakpoints:n,cmd:"sb"}),t.state.stopOnException&&t.sendToInstance({cmd:"stopOnException",state:!0}),e&&e()}))}else this.state.stopOnException?(this.sendToInstance({cmd:"stopOnException",state:!0}),e&&e()):e&&e()}},{key:"getLocation",value:function(e){if(e.callFrames)return e.callFrames[0].location}},{key:"readCurrentScope",value:function(){var e,t=(null===(e=this.state.context)||void 0===e?void 0:e.callFrames)&&this.state.context.callFrames[this.state.currentFrame];if(t){var n=t.scopeChain.filter((function(e){return"global"!==e.type}));n.length?this.sendToInstance({cmd:"scope",scopes:n}):(this.state.scopes.global||this.state.scopes.local||this.state.scopes.closure)&&this.setState({scopes:{}})}}},{key:"readExpressions",value:function(e){var t;this.state.expressions.length&&null!==(t=this.state.context)&&void 0!==t&&t.callFrames&&this.state.context.callFrames[this.state.currentFrame]&&(void 0!==e?this.sendToInstance({cmd:"expressions",expressions:[this.state.expressions[e]],callFrameId:this.state.context.callFrames[this.state.currentFrame].callFrameId}):this.sendToInstance({cmd:"expressions",expressions:this.state.expressions,callFrameId:this.state.context.callFrames[this.state.currentFrame].callFrameId}))}},{key:"getTextAtLocation",value:function(e){var t=this.state.script.split(/\r\n|\n/)[e.lineNumber],n="";return e.columnNumber>=10?(t=t.substring(e.columnNumber-10,e.columnNumber+20),n="".padStart(10," ")+"\u2191"):(t=t.substring(0,30-e.columnNumber),n="".padStart(e.columnNumber," ")+"\u2191"),[(0,se.jsx)("div",{className:this.props.classes.monospace,children:t},"line"),(0,se.jsx)("div",{className:k.Utils.clsx(this.props.classes.monospace,this.props.classes.arrow),children:n},"arrow")]}},{key:"renderQueryBreakpoints",value:function(){var e=this;return this.state.queryBreakpoints?(0,se.jsxs)(Q.Z,{onClose:function(){return e.setState({queryBreakpoints:null})},"aria-labelledby":"bp-dialog-title",open:!0,children:[(0,se.jsx)(q.Z,{id:"bp-dialog-title",children:k.I18n.t("Select breakpoint")}),(0,se.jsx)(j.Z,{children:this.state.queryBreakpoints.map((function(t,n){return(0,se.jsx)(Fs.Z,{classes:{root:e.props.classes.bpListItem},dense:!0,onClick:function(){e.sendToInstance({breakpoints:[t],cmd:"sb"}),e.setState({queryBreakpoints:null})},children:(0,se.jsx)(N.Z,{classes:{primary:e.props.classes.bpListPrimary,secondary:e.props.classes.bpListSecondary},primary:e.getTextAtLocation(t)})},n)}))})]}):null}},{key:"renderError",value:function(){var e=this;return this.state.error?(0,se.jsx)(be,{onClose:function(){return e.setState({error:""})},text:this.state.error},"dialogError"):null}},{key:"closeTab",value:function(e,t){t&&t.stopPropagation();var n=JSON.parse(JSON.stringify(this.state.tabs));delete n[e];var a={tabs:n,script:this.scripts[this.mainScriptId],selected:this.mainScriptId};this.state.location&&this.state.location.scriptId!==this.mainScriptId&&(a.location=null),this.setState(a)}},{key:"renderTabs",value:function(){var e=this,t=!this.state.tabs||!this.state.started;return(0,se.jsx)(Ge.Z,{component:"div",indicatorColor:"primary",style:{position:"relative",width:"calc(100% - 300px)",display:"inline-block"},value:this.state.selected,onChange:function(t,n){e.scripts[n]?e.setState({selected:n,script:e.scripts[n]}):e.setState({selected:n,script:"loading..."},(function(){return e.sendToInstance({cmd:"source",scriptId:n})}))},scrollButtons:"auto",children:Object.keys(this.state.tabs||[]).map((function(n){var a=n,s=e.state.tabs[n]||"";return e.state.tabs[n]&&(a=e.state.tabs[n].split("/").pop()),a=[(0,se.jsx)("div",{className:k.Utils.clsx(e.props.classes.tabText),children:a},"text"),n!==e.mainScriptId&&(0,se.jsx)("span",{className:e.props.classes.closeButton,children:(0,se.jsx)(S.FU5,{onClick:function(t){return e.closeTab(n,t)},fontSize:"small"},"close")},"icon")],(0,se.jsx)(He.Z,{disabled:t,classes:{root:e.props.classes.tabFile},label:a,title:s,value:n},n)}))})}},{key:"onResume",value:function(){this.sendToInstance({cmd:"cont"})}},{key:"onPause",value:function(){this.sendToInstance({cmd:"pause"})}},{key:"onNext",value:function(){this.sendToInstance({cmd:"next"})}},{key:"onStepIn",value:function(){this.sendToInstance({cmd:"step"})}},{key:"onStepOut",value:function(){this.sendToInstance({cmd:"out"})}},{key:"onRestart",value:function(){var e=this;this.setState({started:!1,starting:!0},(function(){return e.props.socket.sendTo(e.state.instance,"debug",e.props.debugInstance||{scriptName:e.props.src})}))}},{key:"onToggleException",value:function(){var e=this,t=!this.state.stopOnException;window.localStorage.setItem("javascript.tools.stopOnException",t?"true":"false"),this.setState({stopOnException:t},(function(){return e.sendToInstance({cmd:"stopOnException",state:t})}))}},{key:"renderToolbar",value:function(){var e=this,t=!this.state.started;return(0,se.jsxs)(Je.Z,{variant:"dense",className:this.props.classes.toolbar,children:[(0,se.jsx)(E.Z,{className:this.props.classes.buttonRestart,disabled:t,onClick:function(){return e.onRestart()},title:k.I18n.t("Restart"),size:"medium",children:(0,se.jsx)(S.la_,{})}),!this.state.finished&&this.state.paused?(0,se.jsx)(E.Z,{className:this.props.classes.buttonRun,disabled:t,onClick:function(){return e.onResume()},title:k.I18n.t("Resume execution"),size:"medium",children:(0,se.jsx)(S.Nhx,{})}):!this.state.finished&&(0,se.jsx)(E.Z,{disabled:t,className:this.props.classes.buttonPause,onClick:function(){return e.onPause()},title:k.I18n.t("Pause execution"),size:"medium",children:(0,se.jsx)(S.hPq,{})}),!this.state.finished&&(0,se.jsx)(E.Z,{className:this.props.classes.buttonNext,disabled:t||!this.state.paused,onClick:function(){return e.onNext()},title:k.I18n.t("Go to next line"),size:"medium",children:(0,se.jsx)(S.hdK,{})}),!this.state.finished&&(0,se.jsx)(E.Z,{className:this.props.classes.buttonStep,disabled:t||!this.state.paused,onClick:function(){return e.onStepIn()},title:k.I18n.t("Step into function"),size:"medium",children:(0,se.jsx)(S.t9$,{})}),!this.state.finished&&(0,se.jsx)(E.Z,{className:this.props.classes.buttonOut,disabled:t||!this.state.paused,onClick:function(){return e.onStepOut()},title:k.I18n.t("Step out from function"),size:"medium",children:(0,se.jsx)(S.InZ,{})}),!this.state.finished&&(0,se.jsx)(E.Z,{className:this.props.classes.buttonException,color:this.state.stopOnException?"primary":"default",disabled:t||!this.state.paused,onClick:function(){return e.onToggleException()},title:k.I18n.t("Stop on exception"),size:"medium",children:(0,se.jsx)(S.YTL,{})}),this.renderTabs()]},"toolbar1")}},{key:"getPossibleBreakpoints",value:function(e){var t=(0,dt.Z)((0,dt.Z)({},e),{},{columnNumber:1e3});this.sendToInstance({cmd:"getPossibleBreakpoints",start:e,end:t})}},{key:"toggleBreakpoint",value:function(e){var t=this,n=this.state.breakpoints.find((function(n){return n.location.scriptId===t.state.selected&&n.location.lineNumber===e}));if(n){var a=JSON.parse(JSON.stringify(this.state.breakpoints));this.setState({breakpoints:a},(function(){return t.sendToInstance({breakpoints:[n.id],cmd:"cb"})}))}else n={scriptId:this.state.selected,lineNumber:e,columnNumber:0},this.getPossibleBreakpoints(n)}},{key:"renderCode",value:function(){var e=this;if(this.state.script&&this.state.started){var t=this.state.breakpoints.filter((function(t){return t.location.scriptId===e.state.selected}));return(0,se.jsx)(Ps,{runningInstances:this.props.runningInstances,socket:this.props.socket,adapterName:this.props.adapterName,scriptName:this.state.tabs[this.state.selected],sourceId:this.state.selected,script:this.state.script,paused:this.state.paused,breakpoints:t,location:this.state.location,themeType:this.props.themeType,themeName:this.props.themeName,onToggleBreakpoint:function(t){return e.toggleBreakpoint(t)}})}}},{key:"renderFrames",value:function(){var e,t=this;return this.state.paused?(0,se.jsx)(Gs,{currentScriptId:this.state.selected,scopes:this.state.scopes,expressions:this.state.expressions,themeType:this.props.themeType,callFrames:null===(e=this.state.context)||void 0===e?void 0:e.callFrames,currentFrame:this.state.currentFrame,onChangeCurrentFrame:function(e){t.setState({currentFrame:e,scopes:{}},(function(){t.readCurrentScope(),t.readExpressions()}))},onWriteScopeValue:function(e){t.sendToInstance({cmd:"setValue",variableName:e.variableName,scopeNumber:e.scopeNumber,newValue:e.newValue,callFrameId:e.callFrameId})},onExpressionDelete:function(e){var n=JSON.parse(JSON.stringify(t.state.expressions));n.splice(e,1),t.setState({expressions:n}),window.localStorage.setItem("javascript.tools.exps."+t.props.src,JSON.stringify(n.map((function(e){return e.name}))))},onExpressionAdd:function(e){var n=JSON.parse(JSON.stringify(t.state.expressions));n.push({name:"",value:{value:""}}),t.setState({expressions:n},(function(){return e&&e(n.length-1,t.state.expressions[n.length-1])}))},onExpressionNameUpdate:function(e,n,a){var s=JSON.parse(JSON.stringify(t.state.expressions));if(n){if(s.find((function(e){return e.name===n})))return a&&a(!1);s[e].name=n}else s.splice(e,1);t.setState({expressions:s},(function(){n&&t.readExpressions(e),a&&a()})),window.localStorage.setItem("javascript.tools.exps."+t.props.src,JSON.stringify(s.map((function(e){return e.name}))))}}):null}},{key:"renderConsole",value:function(){var e=this;return(0,se.jsx)(Us,{theme:this.props.theme,console:this.state.console,onClearAllLogs:function(){return e.setState({console:[],logErrors:0,logWarning:0,logs:0})}})}},{key:"renderTools",value:function(){var e,t=this,n=!this.state.tabs||!this.state.started;return e=this.state.logErrors?(0,se.jsx)(qe.Z,{badgeContent:this.state.logErrors,color:"error",children:(0,se.jsx)("span",{children:k.I18n.t("Console")})}):this.state.logWarnings?(0,se.jsx)(qe.Z,{badgeContent:this.state.logWarnings,color:"secondary",children:(0,se.jsx)("span",{children:k.I18n.t("Console")})}):this.state.logs?(0,se.jsx)(qe.Z,{badgeContent:this.state.logs,color:"default",children:(0,se.jsx)("span",{children:k.I18n.t("Console")})}):k.I18n.t("Console"),(0,se.jsxs)("div",{style:{width:"100%",height:"100%",overflow:"hidden"},children:[(0,se.jsxs)(Ge.Z,{classes:{root:this.props.classes.tabsRoot},component:"div",indicatorColor:"primary",style:{position:"relative",width:"100%"},value:this.state.toolsTab,onChange:function(e,n){var a={toolsTab:n};t.console&&"console"===n&&(a.console=t.console,t.console=null,a.logs=0,a.logWarnings=0,a.logErrors=0),window.localStorage.setItem("javascript.tools.tab",n),t.setState(a)},scrollButtons:"auto",children:[(0,se.jsx)(He.Z,{classes:{root:this.props.classes.tabRoot},disabled:n,label:k.I18n.t("Stack"),value:"stack"}),(0,se.jsx)(He.Z,{classes:{root:this.props.classes.tabRoot},disabled:n,label:e,value:"console"})]}),(0,se.jsxs)("div",{style:{width:"100%",height:"calc(100% - 36px)",overflow:"hidden"},children:["stack"!==this.state.toolsTab||n?null:this.renderFrames(),"console"!==this.state.toolsTab||n?null:this.renderConsole()]})]})}},{key:"render",value:function(){var e=this;return(0,se.jsxs)("div",{style:this.props.style,className:k.Utils.clsx(this.props.classes.root,this.props.className),children:[this.state.starting?(0,se.jsx)(Qe.Z,{}):null,this.renderToolbar(),(0,se.jsxs)(f(),{customClassName:this.props.classes.splitter,primaryMinSize:100,vertical:!0,secondaryInitialSize:this.toolSize,onSecondaryPaneSizeChange:function(t){return e.toolSize=parseFloat(t)},onDragEnd:function(){return window.localStorage.setItem("App.toolSize",e.toolSize.toString())},children:[(0,se.jsxs)("div",{style:{width:"100%",height:"100%",overflow:"hidden"},children:[this.renderCode(),this.renderQueryBreakpoints()]}),(0,se.jsx)("div",{style:{width:"100%",height:"100%",overflow:"hidden"},children:this.renderTools()})]}),this.renderError()]},"debugger")}}]),n}(s().Component),qs=(0,g.Z)((function(e){return{root:{width:"100%",height:"calc(100% - ".concat(e.toolbar.height+38+5,"px)"),overflow:"hidden",position:"relative"},toolbar:{minHeight:38,boxShadow:"0px 2px 4px -1px rgba(0, 0, 0, 0.2), 0px 4px 5px 0px rgba(0, 0, 0, 0.14), 0px 1px 10px 0px rgba(0, 0, 0, 0.12)"},buttonRun:{color:"green"},buttonPause:{color:"orange"},buttonRestart:{color:"darkgreen"},buttonStop:{color:"red"},buttonNext:{color:"blue"},buttonStep:{color:"blue"},buttonOut:{color:"blue"},buttonException:{},tabFile:{textTransform:"inherit",color:"dark"===e.palette.mode?"#DDD":"inherit"},tabText:{maxWidth:130,textOverflow:"ellipsis",whiteSpace:"nowrap",overflow:"hidden",display:"inline-block",verticalAlign:"middle"},closeButton:{position:"absolute",top:8,right:0,zIndex:10,padding:8,cursor:"pointer"},tabsRoot:{minHeight:24,background:"dark"===e.palette.mode?"#333":"#e6e6e6",color:"dark"===e.palette.mode?"white":"inherit"},tabRoot:{minHeight:24},bpListItem:{borderTop:"1px dashed #bfbfbf44"},monospace:{fontFamily:"Courier New, monospace",whiteSpace:"pre",fontSize:12},arrow:{color:"#fffa4f"},splitter:{height:"calc(100% - 52px)","& .layout-pane":{overflow:"hidden",height:"100%"}}}}))(Hs),Ys={Blockly:V,"Javascript/js":W,Rules:G,def:W,"TypeScript/ts":J},Ks="#02a102",Qs="#70aae9",Xs=_.Z[400],$s=U.Z[400],eo=function(e){(0,p.Z)(n,e);var t=(0,h.Z)(n);function n(e){var a;(0,u.Z)(this,n),(a=t.call(this,e)).onInstanceChanged=function(e,t){if(e)if(!t&&window.main.instances.includes[e]){delete window.main.objects[e];var n=window.main.instances.indexOf(e);window.main.instances.splice(n,1)}else t&&"instance"===t.type&&(window.main.instances.includes(e)||(window.main.instances.push(e),window.main.instances.sort()),window.main.objects[e]=t)},a.onBrowserClose=function(e){var t=Object.keys(a.scripts).find((function(e){return JSON.stringify(a.scripts[e])!==JSON.stringify(a.props.objects[e].common)}));if(t){console.log("Script "+JSON.stringify(a.scripts[t]));var n=k.I18n.t("Configuration not saved.");return(e=e||window.event)&&(e.returnValue=n),n}},a.setTourStep=function(e){return a.setState({tourStep:e})};var o=window.localStorage.getItem("Editor.selected")||"",i=window.localStorage.getItem("Editor.editing")||"[]";try{i=JSON.parse(i)}catch(r){i=[]}return o&&!i.includes(o)&&i.push(o),a.tabsRef=s().createRef(),a.state={selected:o,editing:i,changed:{},blockly:null,rules:null,debugEnabled:!1,verboseEnabled:!1,showCompiledCode:!1,showSelectId:!1,showCron:!1,showScript:!1,showAstro:!1,astroEvents:null,insert:"",searchText:"",themeType:a.props.themeType,visible:e.visible,cmdToBlockly:"",cmdToRules:"",menuOpened:!!a.props.menuOpened,menuTabsOpened:!1,menuTabsAnchorEl:null,runningInstances:a.props.runningInstances||{},showDebugMenu:!1,toast:"",instancesLoaded:!1,isTourOpen:"true"!==window.localStorage.getItem("tour"),tourStep:Jn,showAdapterDebug:!1},a.setChangedInAdmin(),a.selectId={initValue:null,callback:null},a.cron={initValue:null,callback:null},a.scriptDialog={initValue:null,callback:null,args:null,isReturn:!1},window.systemLang=k.I18n.getLanguage(),window.main={objects:{},getObject:function(e,t){return a.props.socket.getObject(e).then((function(e){return t&&t(null,e)})).catch((function(e){return t&&t(e)}))},instances:[],selectIdDialog:function(e,t,n){"function"===typeof t&&(n=t,t=null),a.selectId.callback=n,a.selectId.initValue=e,a.selectId.type=t,a.setState({showSelectId:!0})},cronDialog:function(e,t){a.cron.callback=t,a.cron.initValue=e,a.setState({showCron:!0})},showScriptDialog:function(e,t,n,s){a.scriptDialog.callback=s,a.scriptDialog.initValue=e,a.scriptDialog.args=t,a.scriptDialog.isReturn=n||!1,a.setState({showScript:!0})}},a.objects=e.objects,a.scripts={},!a.state.selected&&a.state.editing.length&&(a.state.selected=a.state.editing[0]),a.getAllAdapterInstances().then((function(){a.props.onSelectedChange&&a.state.selected&&setTimeout((function(){return a.props.onSelectedChange(a.state.selected,a.state.editing)}),100)})),a}return(0,d.Z)(n,[{key:"getAllAdapterInstances",value:function(){var e=this;return this.props.socket.getAdapterInstances(!0).then((function(t){var n={},a=t.map((function(e){return n[e._id]=e,e._id}));window.main.objects=n,window.main.instances=a,e.setState({instancesLoaded:!0})}))}},{key:"setChangedInAdmin",value:function(){var e=this,t=Object.keys(this.state.changed).find((function(t){return e.state.changed[t]}));"undefined"!==typeof window.parent&&window.parent&&(window.parent.configNotSaved=!!t)}},{key:"componentDidMount",value:function(){window.addEventListener("beforeunload",this.onBrowserClose,!1),this.props.socket.subscribeObject("system.adapter.*",this.onInstanceChanged)}},{key:"componentWillUnmount",value:function(){window.removeEventListener("beforeunload",this.onBrowserClose),this.props.socket.unsubscribeObject("system.adapter.*",this.onInstanceChanged)}},{key:"removeNonExistingScripts",value:function(e,t){e=e||this.props,t=t||{};var n=!1;if(this.state.editing&&this.state.editing.find((function(t){return!e.objects[t]}))){for(var a=JSON.parse(JSON.stringify(this.state.editing)),s=a.length-1;s>=0;s--)this.objects[a[s]]||(n=!0,a.splice(s,1));n&&(t.editing=a),this.state.selected&&!this.objects[this.state.selected]&&(n=!0,t.selected=a[0]||"",this.scripts[t.selected]&&(this.state.blockly!==("Blockly"===this.scripts[t.selected].engineType)&&(t.blockly="Blockly"===this.scripts[t.selected].engineType,n=!0),this.state.rules!==("Rules"===this.scripts[t.selected].engineType)&&(t.rules="Rules"===this.scripts[t.selected].engineType,n=!0),this.state.verboseEnabled!==this.scripts[t.selected].verbose&&(t.verboseEnabled=this.scripts[t.selected].verbose,n=!0),this.state.debugEnabled!==this.scripts[t.selected].debug&&(t.debugEnabled=this.scripts[t.selected].debug,n=!0)))}return n}},{key:"UNSAFE_componentWillReceiveProps",value:function(e){var t=this,n={},a=!1;if(JSON.stringify(e.runningInstances)!==JSON.stringify(this.state.runningInstances)&&(a=!0,n.runningInstances=e.runningInstances),this.state.menuOpened!==e.menuOpened&&(n.menuOpened=e.menuOpened,a=!0),this.state.themeType!==e.themeType&&(n.themeType=e.themeType,a=!0),this.removeNonExistingScripts(e,n)&&(a=!0),this.state.searchText!==e.searchText&&(n.searchText=e.searchText,a=!0),this.objects!==e.objects){this.objects=e.objects,window.main.objects=e.objects,Object.keys(this.scripts).forEach((function(e){var n=t.scripts[e].source;t.scripts[e]=JSON.parse(JSON.stringify(t.objects[e].common)),t.scripts[e].source=n})),this.state.selected&&this.objects[this.state.selected]&&(this.scripts[this.state.selected]=this.scripts[this.state.selected]||JSON.parse(JSON.stringify(this.objects[this.state.selected].common)),this.state.blockly!==("Blockly"===this.scripts[this.state.selected].engineType)&&(n.blockly="Blockly"===this.scripts[this.state.selected].engineType,a=!0),this.state.rules!==("Rules"===this.scripts[this.state.selected].engineType)&&(n.rules="Rules"===this.scripts[this.state.selected].engineType,a=!0),this.state.verboseEnabled!==this.scripts[this.state.selected].verbose&&(n.verboseEnabled=this.scripts[this.state.selected].verbose,a=!0),this.state.debugEnabled!==this.scripts[this.state.selected].debug&&(n.debugEnabled=this.scripts[this.state.selected].debug,a=!0));for(var s=JSON.parse(JSON.stringify(this.state.editing)),o=s.length-1;o>=0;o--)this.objects[s[o]]||(a=!0,s.splice(o,1),void 0!==this.state.changed[s[o]]&&(n.changed=n.changed||JSON.parse(JSON.stringify(this.state.changed)),delete n.changed[s[o]]));this.state.selected&&!this.objects[this.state.selected]&&(n.selected=s[0]||""),a&&(n.editing=s)}else for(var i in this.scripts)if(this.scripts.hasOwnProperty(i))if(this.objects[i]&&this.objects[i].common){var r=this.scripts[i].source,l=JSON.parse(JSON.stringify(this.scripts[i]));l.source=this.objects[i].common.source,JSON.stringify(l)!==JSON.stringify(this.objects[i].common)&&(this.scripts[i]=JSON.parse(JSON.stringify(this.objects[i].common)),this.scripts[i].source=r),r!==this.objects[i].common.source?this.state.changed[i]?this.objects[i].from&&this.objects[i].from.startsWith("system.adapter.javascript.")&&(this.objects[i].from="system.adapter.admin.0",this.setState({toast:k.I18n.t("Script %s was modified on disk.",i.split(".").pop())})):this.scripts[i].source=this.objects[i].common.source:this.state.changed[i]&&(n.changed=n.changed||JSON.parse(JSON.stringify(this.state.changed)),n.changed[i]=!1,a=!0)}else if(delete this.scripts[i],this.state.selected===i){if(-1!==this.state.editing.indexOf(i)){var c=JSON.parse(JSON.stringify(this.state.editing)),u=c.indexOf(i);-1!==u&&(c.splice(u,1),n.editing=c,a=!0)}n.selected=this.state.editing[0]||"",a=!0}if(this.state.selected!==e.selected&&e.selected){e.selected&&(this.scripts[e.selected]=this.scripts[e.selected]||JSON.parse(JSON.stringify(this.props.objects[e.selected].common)));var d=this.props.objects[e.selected]&&this.props.objects[e.selected].common,p=d&&JSON.stringify(this.scripts[e.selected])!==JSON.stringify(d),h=JSON.parse(JSON.stringify(this.state.editing));e.selected&&-1===h.indexOf(e.selected)&&(h.push(e.selected),this.props.onSelectedChange(e.selected,h),window.localStorage&&window.localStorage.setItem("Editor.editing",JSON.stringify(h))),a=!0,n.changed=n.changed||JSON.parse(JSON.stringify(this.state.changed)),n.changed[e.selected]=p,n.editing=h,n.selected=e.selected,n.blockly="Blockly"===this.scripts[e.selected].engineType,n.rules="Rules"===this.scripts[e.selected].engineType,n.verboseEnabled=this.scripts[e.selected].verbose,n.debugEnabled=this.scripts[e.selected].debug,n.showCompiledCode=!1}this.state.visible!==e.visible&&(a=!0,n.visible=e.visible),a&&this.setState(n,(function(){return t.setChangedInAdmin()}))}},{key:"onRestart",value:function(){this.props.onRestart&&this.props.onRestart(this.state.selected)}},{key:"onStartStop",value:function(){var e=JSON.parse(JSON.stringify(this.scripts[this.state.selected]));e.enabled=!e.enabled,this.props.onChange&&this.props.onChange(this.state.selected,e)}},{key:"onSave",value:function(){var e=this;if(this.state.isTourOpen&&this.state.tourStep===$n&&(this.setState({isTourOpen:!1}),window.localStorage.setItem("tour","true")),this.state.changed[this.state.selected]){var t=JSON.parse(JSON.stringify(this.state.changed));t[this.state.selected]=!1,this.setState({changed:t},(function(){e.setChangedInAdmin(),e.props.onChange&&e.props.onChange(e.state.selected,e.scripts[e.state.selected])}))}}},{key:"onSaveAll",value:function(){var e=this,t=JSON.parse(JSON.stringify(this.state.changed));Object.keys(t).forEach((function(n){t[n]&&(t[n]=!1,e.props.onChange&&e.props.onChange(n,e.scripts[n]))})),this.setState({changed:t},(function(){return e.setChangedInAdmin()}))}},{key:"onCancel",value:function(){var e=this;this.scripts[this.state.selected]=JSON.parse(JSON.stringify(this.props.objects[this.state.selected].common));var t=JSON.parse(JSON.stringify(this.state.changed));t[this.state.selected]=!1,this.setState({changed:t},(function(){return e.setChangedInAdmin()}))}},{key:"onRegisterSelect",value:function(e){this.getSelect=e}},{key:"onConvertBlockly2JS",value:function(){var e=this;this.showConfirmDialog(k.I18n.t("It will not be possible to revert this operation."),(function(t){if(t){e.scripts[e.state.selected].engineType="Javascript/js";var n=e.scripts[e.state.selected].source.split("\n");n.pop(),e.scripts[e.state.selected].source=n.join("\n");var a=e.state.selected,s=JSON.parse(JSON.stringify(e.state.changed));s[e.state.selected]=!0,e.setState({changed:s,blockly:!1,selected:""},(function(){e.setChangedInAdmin(),setTimeout((function(){return e.setState({selected:a})}),100)}))}}))}},{key:"onChange",value:function(e){var t=this;void 0!==(e=e||{}).script&&(this.scripts[this.state.selected].source=e.script),void 0!==e.debug&&(this.scripts[this.state.selected].debug=e.debug),void 0!==e.verbose&&(this.scripts[this.state.selected].verbose=e.verbose);var n=JSON.stringify(this.scripts[this.state.selected])!==JSON.stringify(this.props.objects[this.state.selected].common);if(n!==(this.state.changed[this.state.selected]||!1)){var a=JSON.parse(JSON.stringify(this.state.changed));a[this.state.selected]=n,this.objects[this.state.selected].from="system.adapter.admin.0",this.setState({changed:a},(function(){return t.setChangedInAdmin()}))}}},{key:"onTabChange",value:function(e,t){if(!this.props.debugMode){window.localStorage&&window.localStorage.setItem("Editor.selected",t);var n=this.scripts[t]||this.props.objects[t]&&this.props.objects[t].common;this.setState({selected:t,rules:"Rules"===n.engineType,blockly:"Blockly"===n.engineType,showCompiledCode:!1,verboseEnabled:n.verbose,debugEnabled:n.debug}),this.props.onSelectedChange&&this.props.onSelectedChange(t,this.state.editing)}}},{key:"isScriptChanged",value:function(e){return this.scripts[e]&&this.props.objects[e]&&JSON.stringify(this.scripts[e])!==JSON.stringify(this.props.objects[e].common)}},{key:"onTabClose",value:function(e,t){var n=this;t&&t.stopPropagation();var a=this.state.editing.indexOf(e);if(this.state.editing.includes(e))if(this.isScriptChanged(e))this.showConfirmDialog(k.I18n.t("Discard changes for %s",this.props.objects[e].common.name),(function(t){t&&(delete n.scripts[e],n.onTabClose(e))}));else{var s=JSON.parse(JSON.stringify(this.state.editing));s.splice(a,1);var o={editing:s};if(e===this.state.selected?s.length?0===a||1===s.length?o.selected=s[0]:o.selected=s[a-1]:o.selected="":this.state.selected&&!s.length&&(o.selected=""),window.localStorage&&window.localStorage.setItem("Editor.editing",JSON.stringify(s)),void 0!==o.selected){o.changed=o.changed||JSON.parse(JSON.stringify(this.state.changed)),o.changed[o.selected]=this.isScriptChanged(o.selected);var i=o.selected&&(this.scripts[o.selected]||this.props.objects[o.selected]&&this.props.objects[o.selected].common);o.blockly=!!i&&"Blockly"===i.engineType,o.rules=!!i&&"Rules"===i.engineType,o.verboseEnabled=!!i&&i.verbose,o.debugEnabled=!!i&&i.debug,o.showCompiledCode=!1}this.setState(o,(function(){n.setChangedInAdmin(),void 0!==o.selected?(n.props.onSelectedChange&&n.props.onSelectedChange(o.selected,n.state.editing),window.localStorage&&window.localStorage.setItem("Editor.selected",o.selected)):n.props.onSelectedChange&&n.props.onSelectedChange(n.state.selected,n.state.editing)}))}}},{key:"showConfirmDialog",value:function(e,t){this.confirmCallback=t,this.setState({confirm:e})}},{key:"sendCommandToBlockly",value:function(e){var t=this;this.setState({cmdToBlockly:e},(function(){return setTimeout((function(){return t.setState({cmdToBlockly:""})}),200)}))}},{key:"sendCommandToRules",value:function(e){var t=this;this.setState({cmdToRules:e},(function(){return setTimeout((function(){return t.setState({cmdToRules:""})}),200)}))}},{key:"getScriptFullName",value:function(e){var t=e.split(".");t.shift(),t.shift();for(var a=[],s="script.js",o=0;o1?"calc(100% - 50px)":"100%",display:"inline-block"},textColor:"primary",variant:"scrollable",scrollButtons:"auto",children:[this.state.editing.map((function(t){if(e.props.objects[t]){var a=n.getText(e.props.objects[t].common.name)||"",s=e.getScriptFullName(t);a.length>18&&(a="".concat(a.substring(0,15),"..."));var o=e.props.objects[t].common&&e.scripts[t]&&e.props.objects[t].common.source!==e.scripts[t].source,i=[(0,se.jsx)("div",{className:k.Utils.clsx(e.props.classes.tabText,e.isScriptChanged(t)&&e.props.classes.tabChanged),children:a},"text"),o?(0,se.jsx)("span",{className:e.props.classes.tabChangedIcon,children:"\u25a3"},"changedSign"):null,!e.props.debugInstance&&(!e.props.debugMode||e.state.selected!==t)&&(0,se.jsx)("span",{className:e.props.classes.closeButton,children:(0,se.jsx)(S.FU5,{className:e.props.classes.closeButtonIcon,onClick:function(n){return e.onTabClose(t,n)},fontSize:"small"})},"close")];return(0,se.jsx)(He.Z,{disabled:e.props.debugInstance||e.state.selected!==t&&e.props.debugMode,wrapped:!0,component:"div",iconPosition:"start",icon:(0,se.jsx)("img",{alt:"",src:Ys[e.props.objects[t].common.engineType]||Ys.def,className:e.props.classes.tabIcon},"icon"),href:"#".concat(t),label:i,className:e.props.classes.tabButton,value:t,title:s,classes:{wrapper:e.props.classes.tabButtonWrapper}},t)}var r=[(0,se.jsx)("div",{className:k.Utils.clsx(e.props.classes.tabText,e.isScriptChanged(t)&&e.props.classes.tabChanged),children:t.split(".").pop()},"text"),(0,se.jsx)("span",{className:e.props.classes.closeButton,children:(0,se.jsx)(S.FU5,{className:e.props.classes.closeButtonIcon,onClick:function(n){return e.onTabClose(t,n)},fontSize:"small"})},"icon")];return(0,se.jsx)(He.Z,{wrapped:!0,component:"div",href:"#"+t,label:r,value:t,classes:{wrapper:e.props.classes.tabButtonWrapper}},t)})),this.props.debugInstance?(0,se.jsx)(He.Z,{disabled:!1,wrapped:!0,component:"div",href:"#".concat(this.props.debugInstance.adapter),label:this.props.debugInstance.adapter,className:this.props.classes.tabButton,value:this.props.debugInstance.adapter,title:this.props.debugInstance.adapter,classes:{wrapper:this.props.classes.tabButtonWrapper}},this.props.debugInstance.adapter):""]},"tabs1"),this.state.editing.length>1?(0,se.jsx)(E.Z,{href:"#","aria-label":"Close all but current",className:this.props.classes.tabMenuButton,title:k.I18n.t("Close all but current"),"aria-haspopup":"false",onClick:function(t){var n=[e.state.selected];Object.keys(e.scripts).forEach((function(t){return t!==e.state.selected&&JSON.stringify(e.scripts[t])!==JSON.stringify(e.props.objects[t].common)&&n.push(t)})),window.localStorage&&window.localStorage.setItem("Editor.editing",JSON.stringify(n)),e.setState({menuTabsOpened:!1,menuTabsAnchorEl:null,editing:n})},size:"medium",children:(0,se.jsx)(S.ULn,{})},"menuButton"):null]:(0,se.jsx)("div",{className:this.props.classes.toolbar,children:(0,se.jsxs)(H.Z,{color:"grey",disabled:!0,className:this.props.classes.hintButton,href:"",children:[(0,se.jsx)("span",{children:k.I18n.t("Click on this icon")},"select2"),(0,se.jsx)(S.jzb,{className:this.props.classes.hintIcon},"select3"),(0,se.jsx)("span",{children:k.I18n.t("for edit or create script")},"select4")]},"select1")},"tabs2")}},{key:"getDebugMenu",value:function(){var e=this;return this.state.showDebugMenu?(0,se.jsxs)(O.Z,{id:"menu-debug",anchorEl:this.state.menuDebugAnchorEl,open:this.state.showDebugMenu,onClose:function(){return e.setState({showDebugMenu:!1,menuDebugAnchorEl:null})},PaperProps:{style:{maxHeight:360}},children:[(0,se.jsxs)(M.Z,{title:k.I18n.t("debug_help"),onClick:function(t){t.stopPropagation(),t.preventDefault(),e.setState({showDebugMenu:!1,menuDebugAnchorEl:null,debugEnabled:!e.state.debugEnabled},(function(){return e.onChange({debug:e.state.debugEnabled})}))},children:[(0,se.jsx)(Ke.Z,{checked:this.state.debugEnabled}),(0,se.jsx)(S.qXL,{className:this.props.classes.menuIcon,style:{color:Ks}}),k.I18n.t("debug_label")]},"debugEnabled"),(0,se.jsxs)(M.Z,{title:k.I18n.t("verbose_help"),onClick:function(t){t.stopPropagation(),t.preventDefault(),e.setState({showDebugMenu:!1,menuDebugAnchorEl:null,verboseEnabled:!e.state.verboseEnabled},(function(){return e.onChange({verbose:e.state.verboseEnabled})}))},children:[(0,se.jsx)(Ke.Z,{checked:this.state.verboseEnabled}),(0,se.jsx)(S.Yo8,{className:this.props.classes.menuIcon,style:{color:Qs}}),k.I18n.t("verbose_label")]},"verboseEnabled")]},"menuDebug"):null}},{key:"getDebugBadge",value:function(){return[this.state.debugEnabled&&this.state.verboseEnabled&&(0,se.jsx)(S.qXL,{className:this.props.classes.menuIcon,style:{color:Qs}},"DebugVerbose"),this.state.debugEnabled&&!this.state.verboseEnabled&&(0,se.jsx)(S.qXL,{className:this.props.classes.menuIcon,style:{color:Ks}},"DebugNoVerbose"),!this.state.debugEnabled&&this.state.verboseEnabled&&(0,se.jsx)(S.Yo8,{className:this.props.classes.menuIcon,style:{color:Qs}},"noDebugVerbose")]}},{key:"getAskAboutDebug",value:function(){var e=this;return this.state.askAboutDebug?(0,se.jsx)(k.Confirm,{onClose:function(){e.setState({askAboutDebug:!1},(function(){return e.props.onDebugModeChange(!0)}))},ok:k.I18n.t("Yes"),cancel:k.I18n.t("Cancel"),text:k.I18n.t("The script will be stopped and must be activated manually after debugging. Continue?")}):null}},{key:"getToolbar",value:function(){var e=this,t=this.state.selected&&this.scripts[this.state.selected]&&this.scripts[this.state.selected].engine&&this.state.runningInstances[this.scripts[this.state.selected].engine],n=this.state.selected&&this.scripts[this.state.selected]&&this.scripts[this.state.selected].enabled;if(this.state.selected){var a=Object.keys(this.state.changed).filter((function(t){return e.state.changed[t]})).length,s=this.state.changed[this.state.selected];return(0,se.jsxs)(Je.Z,{variant:"dense",className:this.props.classes.toolbar,children:[!this.props.debugInstance&&this.state.menuOpened&&this.props.onLocate&&(0,se.jsx)(E.Z,{className:this.props.classes.toolbarButtons,title:k.I18n.t("Locate file"),onClick:function(){return e.props.onLocate(e.state.selected)},size:"medium",children:(0,se.jsx)(S.A_X,{})},"locate"),!this.props.debugInstance&&!s&&t&&(0,se.jsx)(E.Z,{disabled:this.props.debugMode,variant:"contained",className:this.props.classes.toolbarButtons,onClick:function(){return e.onRestart()},title:k.I18n.t("Restart"),size:"medium",children:(0,se.jsx)(S.la_,{})},"restart"),!this.props.debugInstance&&!s&&(0,se.jsx)(E.Z,{disabled:this.props.debugMode,variant:"contained",className:this.props.classes.toolbarButtons,onClick:function(){return e.onStartStop()},title:n?k.I18n.t("Pause script"):k.I18n.t("Run script"),size:"medium",style:{color:n?Xs:$s},children:n?(0,se.jsx)(S.hPq,{}):(0,se.jsx)(S.Nhx,{})},"start-stop"),!this.props.debugInstance&&!s&&!n&&(0,se.jsx)("span",{className:this.props.classes.notRunning,children:k.I18n.t("Script is not running")}),!s&&n&&!t&&(0,se.jsx)("span",{className:this.props.classes.notRunning,children:k.I18n.t("Instance is disabled")}),s&&(0,se.jsxs)(H.Z,{color:"grey",variant:"contained",className:k.Utils.clsx(this.props.classes.textButton,this.props.classes.saveButton,"button-save"),onClick:function(){return e.onSave()},children:[k.I18n.t("Save"),(0,se.jsx)(S.tfk,{className:this.props.classes.textIcon})]},"save"),(a>1||1===a&&!s)&&(0,se.jsxs)(H.Z,{color:"grey",variant:"contained",className:this.props.classes.textButton,onClick:function(){return e.onSaveAll()},children:[k.I18n.t("Save all"),(0,se.jsx)(S.tfk,{className:this.props.classes.textIcon})]},"saveall"),s&&(0,se.jsxs)(H.Z,{color:"grey",variant:"contained",className:this.props.classes.textButton,onClick:function(){return e.onCancel()},children:[k.I18n.t("Cancel"),(0,se.jsx)(S.B4e,{className:this.props.classes.textIcon})]},"cancel"),(0,se.jsx)("div",{style:{flex:2}}),this.state.blockly&&!this.state.showCompiledCode&&(0,se.jsx)(E.Z,{"aria-label":"Export Blocks",title:k.I18n.t("Export blocks"),className:this.props.classes.toolbarButtons,onClick:function(){return e.sendCommandToBlockly("export")},size:"medium",children:(0,se.jsx)(P.FaFileExport,{})},"export"),this.state.blockly&&!this.state.showCompiledCode&&(0,se.jsx)(E.Z,{"aria-label":"Import Blocks",title:k.I18n.t("Import blocks"),className:this.props.classes.toolbarButtons,onClick:function(){return e.sendCommandToBlockly("import")},size:"medium",children:(0,se.jsx)(P.FaFileImport,{})},"import"),this.state.blockly&&!this.state.showCompiledCode&&(0,se.jsx)(E.Z,{"aria-label":"Check code",title:k.I18n.t("Check blocks"),className:this.props.classes.toolbarButtons,onClick:function(){return e.sendCommandToBlockly("check")},size:"medium",children:(0,se.jsx)(P.FaFlagCheckered,{})},"check"),!this.props.debugMode&&!this.state.blockly&&!this.state.rules&&!this.state.showCompiledCode&&(0,se.jsx)(E.Z,{"aria-label":"create CRON",title:k.I18n.t("Create or edit CRON or time wizard"),className:this.props.classes.toolbarButtons,onClick:function(){return e.setState({showCron:!0})},size:"medium",children:(0,se.jsx)(P.FaClock,{})},"select-cron"),(0,se.jsx)(E.Z,{"aria-label":"Show astrological events",title:k.I18n.t("Show astrological events"),className:this.props.classes.toolbarButtons,disabled:!t,onClick:function(){e.setState({showAstro:!0,astroEvents:null}),e.props.socket.sendTo(e.scripts[e.state.selected].engine.replace("system.adapter.",""),"calcAstroAll",{}).then((function(t){return e.setState({astroEvents:t})}))},size:"medium",children:(0,se.jsx)(S.Gd0,{})},"show-astro"),!this.props.debugMode&&!this.state.blockly&&!this.state.rules&&!this.state.showCompiledCode&&(0,se.jsx)(E.Z,{"aria-label":"select ID",title:k.I18n.t("Insert object ID"),className:this.props.classes.toolbarButtons,onClick:function(){return e.setState({showSelectId:!0})},size:"medium",children:(0,se.jsx)(P.FaClipboardList,{})},"select-id"),this.state.blockly&&!this.state.rules&&this.state.showCompiledCode&&(0,se.jsx)(H.Z,{color:"grey","aria-label":"convert to javascript",title:k.I18n.t("Convert blockly to javascript for ever."),onClick:function(){return e.onConvertBlockly2JS()},children:"Blockly=>JS"},"convert2js"),this.state.rules&&!this.state.showCompiledCode&&(0,se.jsx)(E.Z,{"aria-label":"Export Blocks",title:k.I18n.t("Export blocks"),className:this.props.classes.toolbarButtons,onClick:function(){return e.sendCommandToRules("export")},size:"medium",children:(0,se.jsx)(P.FaFileExport,{})},"export"),this.state.rules&&!this.state.showCompiledCode&&(0,se.jsx)(E.Z,{"aria-label":"Import Blocks",title:k.I18n.t("Import blocks"),className:this.props.classes.toolbarButtons,onClick:function(){return e.sendCommandToRules("import")},size:"medium",children:(0,se.jsx)(P.FaFileImport,{})},"import"),this.props.expertMode&&!s&&(this.props.debugMode||!this.state.blockly&&!this.state.rules||(this.state.blockly||this.state.rules)&&this.state.showCompiledCode)&&(0,se.jsx)(E.Z,{className:this.props.classes.toolbarButtons,color:this.props.debugMode?"primary":"default",disabled:!this.props.debugMode&&!t,onClick:function(){!e.props.debugMode&&n?e.setState({askAboutDebug:!0}):e.props.onDebugModeChange(!e.props.debugMode)},size:"medium",children:(0,se.jsx)(S.qXL,{style:{fontSize:32}})}),(this.state.blockly||this.state.rules)&&(0,se.jsx)(H.Z,{"aria-label":"blockly",title:k.I18n.t("Show javascript code"),className:k.Utils.clsx(this.props.classes.toolbarButtons,"button-js-code",this.props.debugMode&&this.props.classes.toolbarButtonsDisabled),color:this.state.showCompiledCode?"secondary":"inherit",disabled:this.props.debugMode,style:{padding:"0 5px"},onClick:function(){e.props.debugMode||(e.setState({showCompiledCode:!e.state.showCompiledCode}),e.state.isTourOpen&&e.state.tourStep===Qn&&e.setState({tourStep:Xn}),e.state.isTourOpen&&e.state.tourStep===Xn&&e.setState({tourStep:$n}))},children:(0,se.jsx)("img",{alt:this.state.blockly?"blockly2js":"rules2js",src:this.state.blockly?"data:image/png;base64,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":"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAGIAAAAeCAYAAADXRcu0AAABN2lDQ1BBZG9iZSBSR0IgKDE5OTgpAAAokZWPv0rDUBSHvxtFxaFWCOLgcCdRUGzVwYxJW4ogWKtDkq1JQ5ViEm6uf/oQjm4dXNx9AidHwUHxCXwDxamDQ4QMBYvf9J3fORzOAaNi152GUYbzWKt205Gu58vZF2aYAoBOmKV2q3UAECdxxBjf7wiA10277jTG+38yH6ZKAyNguxtlIYgK0L/SqQYxBMygn2oQD4CpTto1EE9AqZf7G1AKcv8ASsr1fBBfgNlzPR+MOcAMcl8BTB1da4Bakg7UWe9Uy6plWdLuJkEkjweZjs4zuR+HiUoT1dFRF8jvA2AxH2w3HblWtay99X/+PRHX82Vun0cIQCw9F1lBeKEuf1UYO5PrYsdwGQ7vYXpUZLs3cLcBC7dFtlqF8hY8Dn8AwMZP/fNTP8gAAAAJcEhZcwAADsQAAA7EAZUrDhsAAAfpaVRYdFhNTDpjb20uYWRvYmUueG1wAAAAAAA8P3hwYWNrZXQgYmVnaW49Iu+7vyIgaWQ9Ilc1TTBNcENlaGlIenJlU3pOVGN6a2M5ZCI/PiA8eDp4bXBtZXRhIHhtbG5zOng9ImFkb2JlOm5zOm1ldGEvIiB4OnhtcHRrPSJBZG9iZSBYTVAgQ29yZSA2LjAtYzAwMiA3OS4xNjQ0NjAsIDIwMjAvMDUvMTItMTY6MDQ6MTcgICAgICAgICI+IDxyZGY6UkRGIHhtbG5zOnJkZj0iaHR0cDovL3d3dy53My5vcmcvMTk5OS8wMi8yMi1yZGYtc3ludGF4LW5zIyI+IDxyZGY6RGVzY3JpcHRpb24gcmRmOmFib3V0PSIiIHhtbG5zOnhtcD0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wLyIgeG1sbnM6ZGM9Imh0dHA6Ly9wdXJsLm9yZy9kYy9lbGVtZW50cy8xLjEvIiB4bWxuczpwaG90b3Nob3A9Imh0dHA6Ly9ucy5hZG9iZS5jb20vcGhvdG9zaG9wLzEuMC8iIHhtbG5zOnhtcE1NPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvbW0vIiB4bWxuczpzdEV2dD0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL3NUeXBlL1Jlc291cmNlRXZlbnQjIiB4bXA6Q3JlYXRvclRvb2w9IkFkb2JlIFBob3Rvc2hvcCAyMS4yIChNYWNpbnRvc2gpIiB4bXA6Q3JlYXRlRGF0ZT0iMjAyMS0wMS0zMFQwOTo0Njo0MCswMzowMCIgeG1wOk1vZGlmeURhdGU9IjIwMjEtMDItMjVUMDk6NTA6MzIrMDM6MDAiIHhtcDpNZXRhZGF0YURhdGU9IjIwMjEtMDItMjVUMDk6NTA6MzIrMDM6MDAiIGRjOmZvcm1hdD0iaW1hZ2UvcG5nIiBwaG90b3Nob3A6Q29sb3JNb2RlPSIzIiBwaG90b3Nob3A6SUNDUHJvZmlsZT0iQWRvYmUgUkdCICgxOTk4KSIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDo2NTUwYTA2OS0wNjQ3LTQxM2ItOWI5MC02MjYxMjBjNDg1MzMiIHhtcE1NOkRvY3VtZW50SUQ9ImFkb2JlOmRvY2lkOnBob3Rvc2hvcDpkYTliOGE0YS01MzMzLTc1NDgtYjUxZi01YTI2NWU4NDU3ZjUiIHhtcE1NOk9yaWdpbmFsRG9jdW1lbnRJRD0ieG1wLmRpZDplNzdmMTM3Ni0xYWRiLTQ5ZTktYmM2NS1hOTQxMjExMGQ0YzAiPiA8cGhvdG9zaG9wOlRleHRMYXllcnM+IDxyZGY6QmFnPiA8cmRmOmxpIHBob3Rvc2hvcDpMYXllck5hbWU9IlJVTEVTIiBwaG90b3Nob3A6TGF5ZXJUZXh0PSJSVUxFUyIvPiA8L3JkZjpCYWc+IDwvcGhvdG9zaG9wOlRleHRMYXllcnM+IDxwaG90b3Nob3A6RG9jdW1lbnRBbmNlc3RvcnM+IDxyZGY6QmFnPiA8cmRmOmxpPmFkb2JlOmRvY2lkOnBob3Rvc2hvcDpmMjg5NDQwYi1hMjJlLWMxNGEtOGRhMy1jMmI4NTA1YjJhMjA8L3JkZjpsaT4gPC9yZGY6QmFnPiA8L3Bob3Rvc2hvcDpEb2N1bWVudEFuY2VzdG9ycz4gPHhtcE1NOkhpc3Rvcnk+IDxyZGY6U2VxPiA8cmRmOmxpIHN0RXZ0OmFjdGlvbj0iY3JlYXRlZCIgc3RFdnQ6aW5zdGFuY2VJRD0ieG1wLmlpZDplNzdmMTM3Ni0xYWRiLTQ5ZTktYmM2NS1hOTQx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"})},"blockly-code"),(0,se.jsx)(E.Z,{disabled:this.props.debugMode,"aria-label":"Debug menu",title:k.I18n.t("Debug options"),className:this.props.classes.toolbarButtons,onClick:function(t){return e.setState({showDebugMenu:!0,menuDebugAnchorEl:t.currentTarget})},size:"medium",children:(0,se.jsx)(qe.Z,{className:this.props.classes.badgeMargin,badgeContent:this.getDebugBadge(),children:(0,se.jsx)(S._u1,{})})},"debug")]},"toolbar1")}return null}},{key:"getScriptEditor",value:function(){var e=this;return this.props.debugMode||!this.state.selected||!this.props.objects[this.state.selected]||null===this.state.blockly||this.state.blockly&&!this.state.showCompiledCode||this.state.rules&&!this.state.showCompiledCode?null:(this.scripts[this.state.selected]=this.scripts[this.state.selected]||JSON.parse(JSON.stringify(this.props.objects[this.state.selected].common)),(0,se.jsx)("div",{className:this.props.classes.editorDiv,children:(0,se.jsx)(lt,{name:this.state.selected,adapterName:this.props.adapterName,insert:this.state.insert,onInserted:function(){return e.setState({insert:""})},onForceSave:function(){return e.onSave()},searchText:this.state.searchText,onRegisterSelect:function(t){return e.onRegisterSelect(t)},readOnly:this.state.showCompiledCode,changed:this.state.changed[this.state.selected],code:this.scripts[this.state.selected].source||"",isDark:"dark"===this.state.themeType,socket:this.props.socket,runningInstances:this.state.runningInstances,onChange:function(t){return e.onChange({script:t})},language:"TypeScript/ts"===this.scripts[this.state.selected].engineType?"typescript":"javascript"},"scriptEditor1")},"scriptEditorDiv"))}},{key:"getBlocklyEditor",value:function(){var e=this;return!this.props.debugMode&&this.state.instancesLoaded&&this.state.selected&&this.props.objects[this.state.selected]&&this.state.blockly&&!this.state.showCompiledCode&&this.state.visible?(this.scripts[this.state.selected]=this.scripts[this.state.selected]||JSON.parse(JSON.stringify(this.props.objects[this.state.selected].common)),(0,se.jsx)("div",{className:this.props.classes.editorDiv,children:(0,se.jsx)(jt,{command:this.state.cmdToBlockly,themeType:this.state.themeType,searchText:this.state.searchText,resizing:this.props.resizing,code:this.scripts[this.state.selected].source||"",onChange:function(t){return e.onChange({script:t})}},"BlocklyEditor")},"blocklyEditorDiv")):null}},{key:"getRulesEditor",value:function(){var e=this;if(!this.props.debugMode&&this.state.instancesLoaded&&this.state.selected&&this.props.objects[this.state.selected]&&this.state.rules&&!this.state.showCompiledCode&&this.state.visible){this.scripts[this.state.selected]=this.scripts[this.state.selected]||JSON.parse(JSON.stringify(this.props.objects[this.state.selected].common));var t=this.state.selected&&this.scripts[this.state.selected]&&this.scripts[this.state.selected].engine&&this.state.runningInstances[this.scripts[this.state.selected].engine],n=this.state.selected&&this.scripts[this.state.selected]&&this.scripts[this.state.selected].enabled;return(0,se.jsx)("div",{className:k.Utils.clsx(this.props.classes.editorDiv),children:(0,se.jsx)(Rs,{scriptId:this.state.selected,setTourStep:this.setTourStep,tourStep:this.state.tourStep,isTourOpen:this.state.isTourOpen,changed:this.state.changed[this.state.selected],running:t&&n,command:this.state.cmdToRules,themeType:this.state.themeType,themeName:this.props.themeName,searchText:this.state.searchText,resizing:this.props.resizing,code:this.scripts[this.state.selected].source||"",onChange:function(t){return e.onChange({script:t})}},"flowEditor")},"flowEditorDiv")}return null}},{key:"getConfirmDialog",value:function(){var e=this;return this.state.confirm?(0,se.jsx)(k.Confirm,{text:this.state.confirm,onClose:function(t){if(e.confirmCallback){var n=e.confirmCallback;e.confirmCallback=null,n(t)}e.setState({confirm:""})}},"dialogConfirm1"):null}},{key:"getSelectIdDialog",value:function(){var e=this;if(this.state.showSelectId){var t=this.selectId.callback?this.selectId.initValue||"":this.getSelect?this.getSelect():"",n=t.indexOf("/*");-1!==n&&(t=t.substring(0,n)),-1!==(n=t.indexOf("//"))&&(t=t.substring(0,n));var a=t.match(/"([^"]+)"/);return a&&(t=a[1]),(a=t.match(/'([^']+)'/))&&(t=a[1]),(0,se.jsx)(k.SelectID,{imagePrefix:"../..",themeName:this.props.themeName,themeType:this.state.themeType,socket:this.props.socket,selected:t,expertMode:"script"===this.selectId.type||void 0,types:[this.selectId.type||"state"],onClose:function(){e.setState({showSelectId:!1}),e.selectId.callback&&(e.selectId.callback=null)},onOk:function(t,n){e.selectId.initValue=null,e.selectId.callback?(e.selectId.callback(t),e.selectId.callback=null):e.setState({insert:"'".concat(t,"'/*").concat(n,"*/")})}},"dialogSelectID1")}return null}},{key:"getCronDialog",value:function(){var e=this;return this.state.showCron?(0,se.jsx)(k.Cron,{cron:this.cron.callback?this.cron.initValue||"":this.getSelect?this.getSelect():"* * * * *",onClose:function(){return e.setState({showCron:!1})},onOk:function(t){e.cron.initValue=null,e.cron.callback?(e.cron.callback(t),e.cron.callback=null):e.setState({insert:"'".concat(t,"'")})}},"dialogCron1"):null}},{key:"getAstroDialog",value:function(){var e=this;return this.state.showAstro?(0,se.jsxs)(Q.Z,{open:!0,onClose:function(){return e.setState({showAstro:!1})},children:[(0,se.jsx)(q.Z,{children:k.I18n.t("Astrological events today")}),(0,se.jsx)(Y.Z,{children:this.state.astroEvents?(0,se.jsx)(tt.Z,{component:st.Z,children:(0,se.jsxs)(Xe.Z,{size:"small",children:[(0,se.jsx)(nt.Z,{children:(0,se.jsxs)(at.Z,{children:[(0,se.jsx)(et.Z,{children:k.I18n.t("Name")}),(0,se.jsx)(et.Z,{children:k.I18n.t("Time")}),(0,se.jsx)(et.Z,{children:k.I18n.t("Description")})]})}),(0,se.jsx)($e.Z,{children:Object.keys(this.state.astroEvents).map((function(t){return(0,se.jsxs)(at.Z,{children:[(0,se.jsx)(et.Z,{component:"th",scope:"row",children:t.startsWith("next")?"":t}),(0,se.jsx)(et.Z,{align:"right",children:new Date(e.state.astroEvents[t]).toLocaleTimeString()}),(0,se.jsx)(et.Z,{children:k.I18n.t(t)})]},t)}))})]})}):(0,se.jsx)(Qe.Z,{})}),(0,se.jsx)(K.Z,{children:(0,se.jsx)(H.Z,{variant:"contained",onClick:function(){return e.setState({showAstro:!1})},color:"primary",startIcon:(0,se.jsx)(S.FU5,{}),children:k.I18n.t("Close")})})]},"dialogAstro"):null}},{key:"getEditorDialog",value:function(){var e=this;return this.state.showScript?(0,se.jsx)(Dt,{adapterName:this.props.adapterName,source:this.scriptDialog.initValue,args:this.scriptDialog.args?this.scriptDialog.args.join(", "):"",isReturn:this.scriptDialog.isReturn,socket:this.props.socket,runningInstances:this.state.runningInstances,themeType:this.state.themeType,onClose:function(t){e.scriptDialog.initValue=null,e.scriptDialog.callback&&(!1!==t&&e.scriptDialog.callback(t||""),e.scriptDialog.callback=null),e.setState({showScript:!1})}},"scriptEditorDialog"):null}},{key:"getToast",value:function(){var e=this;return(0,se.jsx)(Ye.Z,{anchorOrigin:{vertical:"bottom",horizontal:"left"},open:!!this.state.toast,autoHideDuration:6e3,onClose:function(){return e.setState({toast:""})},ContentProps:{"aria-describedby":"message-id"},message:(0,se.jsx)("span",{id:"message-id",children:this.state.toast}),action:[(0,se.jsx)(E.Z,{"aria-label":"close",color:"inherit",className:this.props.classes.closeToast,onClick:function(){return e.setState({toast:""})},size:"medium",children:(0,se.jsx)(S.FU5,{})},"close")]},"toast")}},{key:"getTour",value:function(){var e=this;if(this.state.instancesLoaded&&this.state.selected&&1===this.props.isAnyRulesExists&&this.props.objects[this.state.selected]&&this.state.rules&&this.state.visible)return(0,se.jsx)(Ve.ZP,{steps:ea,isOpen:this.state.isTourOpen,onRequestClose:function(){e.setState({isTourOpen:!1}),window.localStorage.setItem("tour","true"),e.props.socket.setState("javascript.0.variables.rulesTour",{val:!0,ack:!0})},goToStep:this.state.tourStep},"tour")}},{key:"getDebug",value:function(){var e=this;return this.props.debugMode?this.state.selected&&this.scripts[this.state.selected]&&this.scripts[this.state.selected].engine&&this.state.runningInstances[this.scripts[this.state.selected].engine]?(0,se.jsx)(qs,{runningInstances:this.state.runningInstances,adapterName:this.props.adapterName,socket:this.props.socket,theme:this.props.theme,themeName:this.props.themeName,themeType:this.props.themeType,src:this.props.debugInstance?this.props.debugInstance.adapter:this.state.selected,debugInstance:this.props.debugInstance},"debugger"):(setTimeout((function(){return e.props.onDebugModeChange(!1)})),null):null}},{key:"render",value:function(){var e=this;return this.state.selected&&this.props.objects[this.state.selected]&&null===this.state.blockly&&null===this.state.rules&&(this.scripts[this.state.selected]=this.scripts[this.state.selected]||JSON.parse(JSON.stringify(this.props.objects[this.state.selected].common)),setTimeout((function(){var t={blockly:"Blockly"===e.scripts[e.state.selected].engineType,rules:"Rules"===e.scripts[e.state.selected].engineType,showCompiledCode:!1,debugEnabled:e.scripts[e.state.selected].debug,verboseEnabled:e.scripts[e.state.selected].verbose};e.removeNonExistingScripts(null,t),e.setState(t)}),100)),[this.getTabs(),this.getToolbar(),this.getScriptEditor(),this.getAskAboutDebug(),this.getBlocklyEditor(),this.getRulesEditor(),this.getDebug(),this.getConfirmDialog(),this.getSelectIdDialog(),this.getCronDialog(),this.getEditorDialog(),this.getAstroDialog(),this.getDebugMenu(),this.getToast(),this.getTour()]}}],[{key:"getText",value:function(e){return"object"===typeof e?e[k.I18n.getLanguage()]||e.en:e}}]),n}(s().Component),to=(0,g.Z)((function(e){return{toolbar:{minHeight:38,boxShadow:"0px 2px 4px -1px rgba(0, 0, 0, 0.2), 0px 4px 5px 0px rgba(0, 0, 0, 0.14), 0px 1px 10px 0px rgba(0, 0, 0, 0.12)"},toolbarButtons:{padding:4,marginLeft:4},toolbarButtonsDisabled:{filter:"grayscale(100%)",opacity:.5},editorDiv:{height:"calc(100% - ".concat(e.toolbar.height+38+10,"px)"),width:"100%",overflow:"hidden",position:"relative"},textButton:{marginRight:10,minHeight:24,padding:"6px 16px"},saveButton:{background:"#ff9900"},textIcon:{marginLeft:e.spacing(1)},tabIcon:{width:24,height:24,verticalAlign:"middle",marginBottom:2,marginRight:2,borderRadius:3},hintIcon:{padding:"0 8px 0 8px"},hintText:{},hintButton:{marginTop:8,marginLeft:20},tabMenuButton:{position:"absolute",top:0,right:0},tabChanged:{color:e.palette.secondary.main},tabText:{maxWidth:130,textOverflow:"ellipsis",whiteSpace:"nowrap",overflow:"hidden",display:"inline-block",verticalAlign:"middle"},tabChangedIcon:{color:"#FF0000",fontSize:16},closeButton:{position:"absolute",top:0,right:-5,zIndex:10,padding:8,cursor:"pointer"},closeButtonIcon:{background:"dark"===e.palette.mode?"#000":"#FFF",borderRadius:"50%",opacity:.7},notRunning:{color:"#ffbc00",marginRight:e.spacing(1),marginLeft:e.spacing(1)},tabButton:{minHeight:48},tabButtonWrapper:{display:"inline-block"},menuIcon:{width:18,height:18,borderRadius:2,marginRight:5}}}))(eo),no=n(65532),ao=function(e){(0,p.Z)(n,e);var t=(0,h.Z)(n);function n(e){var a;return(0,u.Z)(this,n),(a=t.call(this,e)).state={error:"",imageStatus:""},a}return(0,d.Z)(n,[{key:"componentDidMount",value:function(){setTimeout((function(){try{window.document.getElementById("import-text-area").focus()}catch(e){}}),100)}},{key:"handleCancel",value:function(){this.props.onClose()}},{key:"onChange",value:function(e){this.setState({text:e.target.value})}},{key:"handleDropFile",value:function(e){var t=this;if(e&&e.hasOwnProperty("target")&&(e=e.target.files),e||e.length){var a=e[e.length-1];a&&n.readFileDataUrl(a,(function(e,n){e?t.setState({error:e}):t.props.onClose(n&&n.data)}))}}},{key:"render",value:function(){var e=this,t=this.props.classes,n=t.dropzone+" "+("accepted"===this.state.imageStatus?t.dropzoneAccepted:"rejected"===this.state.imageStatus?t.dropzoneRejected:"");return(0,se.jsxs)(Q.Z,{onClose:function(e,t){return!1},maxWidth:"lg",classes:{paper:t.dialog},fullWidth:!0,open:!0,"aria-labelledby":"import-dialog-title",children:[(0,se.jsx)(q.Z,{id:"import-dialog-title",children:k.I18n.t("Import scripts")}),(0,se.jsxs)(Y.Z,{className:t.fullHeight,children:[(0,se.jsx)(no.default,{maxSize:5e7,acceptClassName:t.dropzoneAccepted,rejectClassName:t.dropzoneRejected,onDrop:function(t){return e.handleDropFile(t)},multiple:!1,accept:"application/zip,application/x-zip-compressed",className:n,children:function(t){var n=t.getRootProps,a=t.getInputProps,s=t.isDragActive;return t.isDragReject?("rejected"!==e.state.imageStatus&&e.setState({imageStatus:"rejected"}),(0,se.jsxs)("div",(0,dt.Z)((0,dt.Z)({className:e.props.classes.dropzoneDiv},n()),{},{children:[(0,se.jsx)("input",(0,dt.Z)({},a())),(0,se.jsx)("span",{className:e.props.classes.text,children:k.I18n.t("Some files will be rejected")},"text"),(0,se.jsx)(S.B4e,{className:e.props.classes.icon+" "+e.props.classes.iconError},"icon")]}))):s?("accepted"!==e.state.imageStatus&&e.setState({imageStatus:"accepted"}),(0,se.jsxs)("div",(0,dt.Z)((0,dt.Z)({className:e.props.classes.dropzoneDiv},n()),{},{children:[(0,se.jsx)("input",(0,dt.Z)({},a())),(0,se.jsx)("span",{className:e.props.classes.text,children:k.I18n.t("All files will be accepted")},"text"),(0,se.jsx)(S.hjC,{className:e.props.classes.icon+" "+e.props.classes.iconOk},"icon")]}))):("wait"!==e.state.imageStatus&&e.setState({imageStatus:"wait"}),(0,se.jsxs)("div",(0,dt.Z)((0,dt.Z)({className:e.props.classes.dropzoneDiv},n()),{},{children:[(0,se.jsx)("input",(0,dt.Z)({},a())),(0,se.jsx)("span",{className:e.props.classes.text,children:k.I18n.t("Drop some files here or click...")},"text"),(0,se.jsx)(S.s_P,{className:e.props.classes.icon},"icon")]})))}},"image-drop"),this.state.error?(0,se.jsx)(be,{text:this.state.error,onClose:function(){return e.setState({error:""})}}):null]}),(0,se.jsx)(K.Z,{children:(0,se.jsx)(H.Z,{color:"grey",variant:"contained",onClick:function(){return e.handleCancel()},startIcon:(0,se.jsx)(ne.default,{}),children:k.I18n.t("Close")})})]})}}],[{key:"readFileDataUrl",value:function(e,t){var n=new FileReader;n.onload=function(){t(null,{data:n.result,name:e.name})},n.onabort=function(){console.error("file reading was aborted"),t(k.I18n.t("file reading was aborted"))},n.onerror=function(e){console.error("file reading has failed"),t(k.I18n.t("file reading has failed: %s",e))},n.readAsDataURL(e)}}]),n}(s().Component),so=(0,g.Z)((function(e){return{dialog:{height:"95%"},fullHeight:{height:"100%",overflow:"hidden"},dropzone:{marginTop:20,width:"100%",borderWidth:5,borderStyle:"dashed",borderColor:"#d0cccc",textAlign:"center",boxSizing:"border-box",paddingTop:45,borderRadius:10,height:"calc(100% - 10px)"},dropzoneDiv:{width:"100%",height:"100%"},dropzoneRejected:{borderColor:"#970000"},dropzoneAccepted:{borderColor:"#17cd02"},icon:{height:"30%",width:"30%",color:"#eeeeee",position:"absolute",top:"50%",left:"50%",transform:"translate(-50%,-50%)",zIndex:0},iconError:{color:"#ffc3c6"},iconOk:{color:"#aaeebc"},text:{top:"50%",left:"50%",transform:"translate(-50%,-50%)",color:"#868686",position:"absolute",zIndex:1}}}))(ao),oo=function(e){(0,p.Z)(a,e);var t=(0,h.Z)(a);function a(e){var s;return(0,u.Z)(this,a),(s=t.call(this,e,{Connection:k.AdminConnection,translations:{en:n(86443),de:n(19837),es:n(55117),fr:n(86115),it:n(79399),nl:n(43573),pl:n(28130),pt:n(65909),ru:n(50482),uk:n(17138),"zh-cn":n(58246)},bottomButtons:!1,socket:{autoSubscribeLog:!0},sentryDSN:window.sentryDSN})).onScriptsChanged=function(e,t){if(e){var n=!1,a={};e.startsWith("script.js.")&&(t?JSON.stringify(s.scripts[e])!==JSON.stringify(t)&&(s.scripts[e]=t,n=!0,a.scriptsHash=s.state.scriptsHash+1):s.scripts[e]&&(delete s.scripts[e],n=!0,a.scriptsHash=s.state.scriptsHash+1)),n&&s.setState(a)}},s.onInstanceChanged=function(e,t){if(e){var n=!1,a={};if(e.match(/^system\.adapter\.[-_\w\d]+\$/)){if(e.startsWith("system.adapter.".concat(s.adapterName,".")))if(t&&"instance"===t.type)s.state.instances.includes(e)||(a.instances=(0,c.Z)(s.state.instances),a.instances.push(e),a.instances.sort(),n=!0,s.socket.subscribeState("".concat(t._id,".alive"),s.onInstanceAliveChange));else if(!t&&s.state.instances.includes(e)){s.socket.unsubscribeState("".concat(e,".alive"),s.onInstanceAliveChange),a.instances=(0,c.Z)(s.state.instances);var o=a.instances.indexOf(e);a.instances.splice(o,1),n=!0}t&&t[e].common&&t[e].common.blockly&&(s.confirmCallback=function(e){return e&&window.location.reload()},a.confirm=k.I18n.t("Some blocks were updated. Reload admin?"),n=!0)}n&&s.setState(a)}},s.onHostChanged=function(e,t){if(e){if(e.startsWith("system.host."))if(t&&"host"===t.type)s.hosts.includes(e)||(s.hosts.push(e),s.hosts.sort());else if(!t&&s.hosts.includes(e)){var n=s.hosts.indexOf(e);s.hosts.splice(n,1)}}},s.onInstanceAliveChange=function(e,t){if(e&&(e=e&&e.substring(0,e.length-6),s.state.runningInstances[e]!==(!!t&&t.val))){var n=JSON.parse(JSON.stringify(s.state.runningInstances));n[e]=!!t&&t.val,s.setState({runningInstances:n})}},s.logSize=window.localStorage&&parseFloat(window.localStorage.getItem("App.logSize"))||150,s.menuSize=window.localStorage&&parseFloat(window.localStorage.getItem("App.menuSize"))||500,s.hosts=[],s.importFile=null,s.scripts={},window.alert=function(e){console.error(e),s.showError(e.toString())},s}return(0,d.Z)(a,[{key:"onConnectionReady",value:function(){var e=this;window.systemLang=this.socket.systemLang,this.setState({ready:!1,updateScripts:0,scriptsHash:0,instances:[],updating:!1,resizing:!1,selected:null,logMessage:{},editing:[],menuOpened:"false"!==window.localStorage.getItem("App.menuOpened"),menuSelectId:"",expertMode:"true"===window.localStorage.getItem("App.expertMode"),logHorzLayout:"true"===window.localStorage.getItem("App.logHorzLayout"),runningInstances:{},confirm:"",importFile:!1,message:"",searchText:"",hideLog:"true"===window.localStorage.getItem("App.hideLog"),debugMode:!1,debugInstance:null});var t={};this.subscribeOnInstances().then((function(n){return t.instances=n.instances,t.runningInstances=n.runningInstances,e.readAdaptersWithBlockly()})).then((function(){return e.socket.getHosts()})).then((function(t){return e.hosts=t.map((function(e){return e._id})),e.readAllScripts()})).then((function(n){window.localStorage&&"true"!==window.localStorage.getItem("App.expertMode")&&"false"!==window.localStorage.getItem("App.expertMode")&&Object.keys(n).find((function(e){return e.startsWith("script.js.global.")&&"script"===n.type}))&&(t.expertMode=!0),e.scripts=n;var a=e.state.scriptsHash;e.compareScripts(n)&&a++,t.scriptsHash=a,t.ready=!0,e.socket.subscribeObject("script.*",e.onScriptsChanged),e.socket.subscribeObject("system.adapter.*",e.onInstanceChanged),e.socket.subscribeObject("system.host.*",e.onHostChanged),e.setState(t)}))}},{key:"subscribeOnInstances",value:function(){var e=this;return this.socket.getAdapterInstances(this.adapterName).then((function(t){var n=t.map((function(e){return parseInt(e._id.split(".").pop())})).sort(),a={};n.forEach((function(t){return a["system.adapter.".concat(e.adapterName,".").concat(t)]=!1}));var s=[];return n.forEach((function(t){var n="system.adapter.".concat(e.adapterName,".").concat(t),o="".concat(n,".alive");s.push(e.socket.getState(o).then((function(t){a[n]=!!t&&t.val,e.socket.subscribeState(o,e.onInstanceAliveChange)})))})),Promise.all(s).then((function(){return{instances:n,runningInstances:a}}))}))}},{key:"readAllScripts",value:function(){var e=this;return this.socket.getObjectView("script.js.","script.js.\u9999","channel").then((function(t){return e.socket.getObjectView("script.js.","script.js.\u9999","script").then((function(e){return Object.keys(e).forEach((function(n){return t[n]=e[n]})),t}))}))}},{key:"readAdaptersWithBlockly",value:function(){return this.socket.getObjectView("system.adapter.","system.adapter.\u9999","adapter").then((function(e){return new Promise((function(t){return jt.loadCustomBlockly(e,(function(){return t()}))}))}))}},{key:"onToggleExpertMode",value:function(e){this.onExpertModeChange(e)}},{key:"compareScripts",value:function(e){var t=Object.keys(this.scripts),n=Object.keys(e);if(t.length!==n.length)return this.scripts=this.newScripts,!0;if(JSON.stringify(t)!==JSON.stringify(n))return this.scripts=this.newScripts,!0;for(var a=0;a ").concat(t)),this.setState({updating:!0}),this.scripts[e]&&"script"===this.scripts[e].type){var i=JSON.parse(JSON.stringify(this.scripts[e].common));i.name=n||i.name,void 0!==a&&(i.engine="system.adapter.javascript.".concat(a));var r=t.split(".");r.pop();var l=r.join(".");this.scripts[l]&&"script"===this.scripts[l].type&&(r.pop(),t="".concat(r.join("."),".").concat(t.split(".").pop())),s=this.updateScript(e,t,i)}else s=this.renameGroup(e,t,n);s.then((function(){return o.setState({updating:!1})})).catch((function(e){return"canceled"!==e&&o.showError(e)}))}},{key:"renameGroup",value:function(e,t,n,a){var s=this;if(a){if(a.length){var o=a.pop();return this.socket.getObject(o).then((function(i){return s.socket.delObject(o).catch((function(){})).then((function(){return o=t+o.substring(e.length),i._id=o,i.common=i.common||{},i.common.expert=!0,s.socket.setObject(o,i)})).then((function(){return s.renameGroup(e,t,n,a)}))}))}return Promise.resolve()}return a=[],a=Object.keys(this.scripts).filter((function(t){return t.startsWith("".concat(e,"."))})),this.socket.getObject(e).then((function(o){(o=o||{common:{}}).common.name=n||o.common.name||e.split(".").pop(),o._id=t,s.socket.delObject(e).catch((function(){})).then((function(){return s.socket.setObject(t,o)})).then((function(){return s.renameGroup(e,t,n,a)})).catch((function(e){return console.log(e)}))})).catch((function(o){console.log(o);var i={_id:t,type:"channel",common:{name:n||e.split(".").pop(),expert:!0},native:{}};return s.socket.setObject(t,i).then((function(){return s.renameGroup(e,t,n,a)}))}))}},{key:"onUpdateScript",value:function(e,t){var n=this;this.scripts[e]&&"script"===this.scripts[e].type&&this.updateScript(e,e,t).then((function(){})).catch((function(e){return"canceled"!==e&&n.showError(e)}))}},{key:"onSelect",value:function(e){var t=this;this.scripts[e]&&this.scripts[e].common&&"script"===this.scripts[e].type&&this.setState({selected:e,menuSelectId:e},(function(){return setTimeout((function(){return t.setState({menuSelectId:""})}))}),300)}},{key:"onExpertModeChange",value:function(e){this.state.expertMode!==e&&(window.localStorage&&window.localStorage.setItem("App.expertMode",e?"true":"false"),this.setState({expertMode:e}))}},{key:"showError",value:function(e){this.setState({errorText:e?e.toString():""})}},{key:"showMessage",value:function(e){this.setState({message:e?e.toString():""})}},{key:"onDelete",value:function(e){var t=this;this.socket.delObject(e).then((function(){})).catch((function(e){return t.showError(e)}))}},{key:"onEdit",value:function(e){this.state.selected!==e&&this.setState({selected:e})}},{key:"onAddNew",value:function(e,t,n,a,s,o){var i=this,r=new RegExp("^".concat(e,"\\."));if(Object.keys(this.scripts).find((function(t){return e===t||r.test(e)})))return this.showError(k.I18n.t("Yet exists!"));n?this.socket.setObject(e,{common:{name:t,expert:!0},type:"channel"}).then((function(){return setTimeout((function(){return i.setState({menuSelectId:e},(function(){return setTimeout((function(){return i.setState({menuSelectId:""})}))}),300)}),1e3)})).catch((function(e){return i.showError(e)})):this.socket.setObject(e,{common:{name:t,expert:!0,engineType:s,engine:"system.adapter.javascript.".concat(a||0),source:o||"",debug:!1,verbose:!1},type:"script"}).then((function(){return setTimeout((function(){return i.onSelect(e)}),1e3)})).catch((function(e){return i.showError(e)}))}},{key:"updateScript",value:function(e,t,n){var a=this;return this.socket.getObject(e).then((function(s){var o={common:{}};return void 0!==n.engine&&(o.common.engine=n.engine),void 0!==n.enabled&&(o.common.enabled=n.enabled),void 0!==n.source&&(o.common.source=n.source),void 0!==n.debug&&(o.common.debug=n.debug),void 0!==n.verbose&&(o.common.verbose=n.verbose),o.from="system.adapter.admin.0",e===t&&s&&s.common&&n.name===s.common.name?(n.engineType&&n.engineType===s.common.engineType||void 0!==n.engineType&&(o.common.engineType=n.engineType||"Javascript/js"),o.type="script",a.socket.extendObject(e,o)):s&&s.common?(s.common.engineType=n.engineType||s.common.engineType||"Javascript/js",a.socket.delObject(e).then((function(){void 0!==o.common.engine&&(s.common.engine=o.common.engine),void 0!==o.common.enabled&&(s.common.enabled=o.common.enabled),void 0!==o.common.source&&(s.common.source=o.common.source),void 0!==o.common.name&&(s.common.name=o.common.name),void 0!==o.common.debug&&(s.common.debug=o.common.debug),void 0!==o.common.verbose&&(s.common.verbose=o.common.verbose),delete s._rev,s.common.name=n.name,s.common.expert=!0,s.type="script",s._id=t,a.socket.setObject(t,s)}))):((s=o).common.name=n.name,s.common.expert=!0,s.type="script",s._id=t,a.socket.setObject(t,s))}))}},{key:"onEnableDisable",value:function(e,t){var n=this;if(this.scripts[e]&&"script"===this.scripts[e].type){var a=this.scripts[e].common;a.enabled=t,a.expert=!0,this.updateScript(e,e,a).catch((function(e){return"canceled"!==e&&n.showError(e)}))}}},{key:"getLiveHost",value:function(e,t){var n=this;if(t||(t=this.hosts?(0,c.Z)(this.hosts):[]),t.length){var a=t.shift();this.socket.getState("".concat(a,".alive")).then((function(s){s&&s.val?e(a):setTimeout((function(){return n.getLiveHost(e,t)}))}))}else e()}},{key:"onExport",value:function(){var e=this;this.getLiveHost((function(t){if(!t)return e.showError(k.I18n.t("No active host found"));var n=new Date,a=n.getFullYear(),s=n.getMonth()+1;s<10&&(s="0".concat(s)),a+="-".concat(s),(s=n.getDate())<10&&(s="0".concat(s)),a+="-".concat(s,"-"),e.socket.getRawSocket().emit("sendToHost",t,"readObjectsAsZip",{adapter:"javascript",id:"script.js",link:"".concat(a,"scripts.zip"),storeToFile:"admin.".concat(e.instance)},(function(t){if("string"===typeof t){var n=document.createElement("a");if(t.startsWith("admin."))n.href="./files/".concat(t);else{var s=t.split(".zip.");n.href="./zip/".concat(s[0],"/").concat(s[1])}document.body.appendChild(n),n.click(),n.remove()}else if(t.error&&e.showError(t.error),t.data){var o=document.createElement("a");o.href="data: application/zip;base64,".concat(t.data),o.download="".concat(a,"scripts.zip"),document.body.appendChild(o),o.click(),o.remove()}}))}))}},{key:"onImport",value:function(e){this.importFile=e,e?(this.confirmCallback=this.onImportConfirmed.bind(this),this.setState({importFile:!1,confirm:k.I18n.t("Existing scripts will be overwritten.")})):this.setState({importFile:!1})}},{key:"onImportConfirmed",value:function(e){var t=this,n=this.importFile;this.importFile=null,e&&n&&(n=n.split(",")[1],this.getLiveHost((function(e){e?t.socket.getRawSocket().emit("sendToHost",e,"writeObjectsAsZip",{data:n,adapter:"javascript",id:"script.js"},(function(e){"permissionError"===e?t.showError(k.I18n.t(e)):!e||e.error?t.showError(e?k.I18n.t(e.error):k.I18n.t("Unknown error")):t.showMessage(k.I18n.t("Done"))})):t.showError(k.I18n.t("No active host found"))})))}},{key:"toggleLogLayout",value:function(){window.localStorage&&window.localStorage.setItem("App.logHorzLayout",this.state.logHorzLayout?"false":"true"),this.setState({logHorzLayout:!this.state.logHorzLayout})}},{key:"renderEditor",value:function(){var e=this,t=Object.keys(this.scripts).reduce((function(t,n){return t+("Rules"===e.scripts[n].common.engineType?1:0)}),0);return(0,se.jsx)(to,{debugMode:this.state.debugMode,onDebugModeChange:function(t){t?e.setState({debugMode:!0}):e.setState({debugMode:!1,debugInstance:null})},visible:!this.state.resizing,socket:this.socket,adapterName:this.adapterName,onLocate:function(t){return e.setState({menuSelectId:t})},runningInstances:this.state.runningInstances,menuOpened:this.state.menuOpened,searchText:this.state.searchText,themeType:this.state.themeType,themeName:this.state.themeName,theme:this.state.theme,expertMode:this.state.expertMode,onChange:function(t,n){return e.onUpdateScript(t,n)},isAnyRulesExists:t,debugInstance:this.state.debugInstance,onSelectedChange:function(t,n){var a={},s=!1;t!==e.state.selected&&(s=!0,a.selected=t),JSON.stringify(n)!==JSON.stringify(e.state.editing)&&(s=!0,a.editing=JSON.parse(JSON.stringify(n))),s&&e.setState(a)},onRestart:function(t){return e.socket.extendObject(t,{common:{enabled:!0}})},selected:this.state.selected&&this.scripts[this.state.selected]&&"script"===this.scripts[this.state.selected].type?this.state.selected:"",objects:this.scripts,instances:this.state.instances},"editor")}},{key:"showLogButton",value:function(){var e=this;return(0,se.jsx)("div",{title:k.I18n.t("Show logs"),className:this.props.classes.showLogButton,onClick:function(){window.localStorage.setItem("App.hideLog","false"),e.setState({hideLog:!1,resizing:!0}),setTimeout((function(){return e.setState({resizing:!1})}),300)},children:(0,se.jsx)(S.t2l,{})},"showLog")}},{key:"renderErrorDialog",value:function(){var e=this;return this.state.errorText?(0,se.jsx)(be,{onClose:function(){return e.setState({errorText:""})},text:this.state.errorText},"dialogError"):null}},{key:"renderMain",value:function(){var e=this,t=this.props.classes;return[this.state.message?(0,se.jsx)(y.default,{onClose:function(){return e.setState({message:""})},text:this.state.message},"dialogMessage"):null,this.renderErrorDialog(),this.state.importFile?(0,se.jsx)(so,{onClose:function(t){return e.onImport(t)}},"dialogImportFile"):null,this.state.confirm?(0,se.jsx)(b.default,{onClose:function(t){e.state.confirm&&e.setState({confirm:""}),e.confirmCallback&&e.confirmCallback(t),e.confirmCallback=null},text:this.state.confirm},"dialogConfirm"):null,(0,se.jsxs)("div",{className:t.content+" iobVerticalSplitter",children:[(0,se.jsx)("div",{className:t.menuOpenCloseButton,onClick:function(){window.localStorage.setItem("App.menuOpened",e.state.menuOpened?"false":"true"),e.setState({menuOpened:!e.state.menuOpened,resizing:!0}),setTimeout((function(){return e.setState({resizing:!1})}),300)},children:this.state.menuOpened?(0,se.jsx)(S.KYK,{}):(0,se.jsx)(S.xXU,{})},"closeMenu"),(0,se.jsxs)(f(),{vertical:!this.state.logHorzLayout,primaryMinSize:100,secondaryInitialSize:this.state.hideLog?0:this.logSize,onDragStart:function(){return e.setState({resizing:!0})},onSecondaryPaneSizeChange:function(t){return e.state.hideLog?0:e.logSize=parseFloat(t)},onDragEnd:function(){e.setState({resizing:!1}),window.localStorage.setItem("App.logSize",e.logSize.toString())},children:[(0,se.jsxs)(se.Fragment,{children:[this.renderEditor(),!this.state.debugMode&&this.state.hideLog&&this.showLogButton()]}),!this.state.debugMode&&!this.state.hideLog&&(0,se.jsx)(We,{verticalLayout:!this.state.logHorzLayout,onLayoutChange:function(){return e.toggleLogLayout()},editing:this.state.editing,socket:this.socket,selected:this.state.selected,onHideLog:function(){window.localStorage.setItem("App.hideLog","true"),e.setState({hideLog:!0,resizing:!0}),setTimeout((function(){return e.setState({resizing:!1})}),300)}},"log")]},"splitterLayout")]},"main")]}},{key:"render",value:function(){var e=this,t=this.props.classes;return this.state.ready?(0,se.jsx)("div",{className:t.root,children:(0,se.jsx)(Wa,{socket:this.socket,children:(0,se.jsxs)(f(),{vertical:!1,primaryMinSize:300,primaryIndex:1,secondaryMinSize:300,secondaryInitialSize:this.menuSize,customClassName:"".concat(t.splitterDivs," ").concat(this.state.menuOpened?"":t.menuDivWithoutMenu),onDragStart:function(){return e.setState({resizing:!0})},onSecondaryPaneSizeChange:function(t){return e.menuSize=parseFloat(t)},onDragEnd:function(){e.setState({resizing:!1}),window.localStorage.setItem("App.menuSize",e.menuSize.toString())},children:[(0,se.jsx)("div",{className:t.mainDiv,children:(0,se.jsx)(Pe,{debugMode:this.state.debugMode,onDebugInstance:function(t){e.setState({debugInstance:t,debugMode:!!t})},scripts:this.scripts,scriptsHash:this.state.scriptsHash,instances:this.state.instances,update:this.state.updateScripts,onRename:this.onRename.bind(this),onSelect:this.onSelect.bind(this),socket:this.socket,selectId:this.state.menuSelectId,onEdit:this.onEdit.bind(this),expertMode:this.state.expertMode,themeType:this.state.themeType,themeName:this.state.themeName,onThemeChange:function(t){k.Utils.setThemeName(t);var n=k.Utils.getThemeType(t);e.setState({themeName:t,themeType:n},(function(){return e.props.onThemeChange(t)}))},runningInstances:this.state.runningInstances,onExpertModeChange:this.onExpertModeChange.bind(this),onDelete:this.onDelete.bind(this),onAddNew:this.onAddNew.bind(this),onEnableDisable:this.onEnableDisable.bind(this),onExport:this.onExport.bind(this),width:this.menuSize,onImport:function(){return e.setState({importFile:!0})},onSearch:function(t){return e.setState({searchText:t})}},"sidemenu")},"menu"),this.renderMain()]},"menuSplitter")})}):(0,se.jsx)(k.Loader,{theme:this.state.themeType})}}]),a}(v.Z),io=(0,g.Z)((function(e){return{root:{flexGrow:1,display:"flex",width:"100%",height:"100%"},menuDiv:{overflow:"hidden"},splitterDivs:{"&>div":{overflow:"hidden",width:"100%",height:"100%"},"& .layout-splitter":{background:"dark"===e.palette.mode?"#595858":"#ccc;"}},mainDiv:{width:"100%",height:"100%",overflow:"hidden"},content:{width:"100%",height:"100%",backgroundColor:e.palette.background&&e.palette.background.default,position:"relative"},splitterDivWithMenu:{width:"calc(100% - 300px)",height:"100%"},menuDivWithoutMenu:{"&>div:first-child":{display:"none"},"&>.layout-splitter":{display:"none"}},progress:{margin:100},menuOpenCloseButton:{position:"absolute",left:0,borderRadius:"0 5px 5px 0",top:6,paddingTop:8,cursor:"pointer",zIndex:1,height:25,width:20,background:e.palette.secondary.main,color:e.palette.primary.main,paddingLeft:3,"&:hover":{color:"white"}},showLogButton:{position:"absolute",right:3,borderRadius:"5px 5px 0 0",bottom:0,paddingTop:3,cursor:"pointer",zIndex:10,height:20,width:25,background:e.palette.secondary.main,color:e.palette.primary.main,paddingLeft:8,"&:hover":{color:"white"}}}}))(oo);Boolean("localhost"===window.location.hostname||"[::1]"===window.location.hostname||window.location.hostname.match(/^127(?:\.(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)){3}$/));var ro=n(37674),lo=n(19509);window.GenericBlock=ta,window.adapterName="javascript",window.sentryDSN="https://504499a725eb4898930d3b9e9da95740@sentry.iobroker.net/56";var co=k.Utils.getThemeName();console.log("iobroker.".concat(window.adapterName,"@").concat("7.0.4",' using theme "').concat(co,'"'));var uo=(0,l.createGenerateClassName)({productionPrefix:"iob"});!function e(){var t=window.innerWidth<600,n=document.getElementById("root");return(0,o.s)(n).render((0,se.jsx)(l.StylesProvider,{generateClassName:uo,children:(0,se.jsx)(i.Z,{injectFirst:!0,children:(0,se.jsx)(r.Z,{theme:(0,ro.default)(co),children:(0,se.jsx)(F.W,{backend:t?lo.zr:B.PD,children:(0,se.jsx)(io,{onThemeChange:function(t){co=t,e()}})})})})}))}(),"serviceWorker"in navigator&&navigator.serviceWorker.ready.then((function(e){e.unregister()}));var po=window.loadDynamicScript;po&&po("3000"===window.location.port?window.location.protocol+"//"+window.location.hostname+":8081/lib/js/socket.io.js":"./../../lib/js/socket.io.js",(function(){po("vs/loader.js",(function(){po("vs/configure.js",(function(){"function"===typeof window.socketLoadedHandler&&window.socketLoadedHandler()}))}))}))},19837:function(e){e.exports=JSON.parse('{"-":"-","Add":"Hinzuf\xfcgen","Add new script":"Neues Skript hinzuf\xfcgen","All files will be accepted":"Alle Dateien werden akzeptiert","April":"April","Are you sure?":"Wirklich sicher?","August":"August","Blockly description":"Erstellen von Regeln durch Grafikbl\xf6cke","Cancel":"Abbrechen","Cannot delete non empty item!":"Kann nicht gel\xf6scht werden, weil noch einige Elementen darin sind!","Change layout":"Layout \xe4ndern","Check blocks":"Bl\xf6cke pr\xfcfen","Check is not active, because javascript adapter is disabled":"Syntax-Check ist nicht aktiv, weil der Javascript Adapter nicht aktiv ist.","Clear search input":"Sucheingabe l\xf6schen","Click on this icon":"Auf dieses Symbol klicken","Close":"Schlie\xdfen","Close all but current":"Alle anderen au\xdfer dem Aktiven schlie\xdfen","Collapse all":"Alles einklappen","Configuration not saved.":"Die Konfiguration ist nicht gespeichert.","Convert blockly to javascript for ever.":"Blockly dauerhaft in Javascript konvertieren.","Copy script":"Skript kopieren","Copy to clipboard":"In die Zwischenablage kopieren","Create new":"Neu erstellen","Create new folder":"Neuen Ordner erstellen","Create new script":"Neues Skript erstellen","Create or edit CRON or time wizard":"CRON- oder Zeit-Assistenten erstellen oder bearbeiten","Dark Theme":"Dunkles Thema","Dark style":"Dunkler Stil","Debug options":"Debug-Optionen","December":"Dezember","Define cron...":"Cron definieren ...","Define schedule...":"Zeitplan definieren ...","Delete":"L\xf6schen","Delete %s":"L\xf6schen %s...","Delete folder":"Ordner l\xf6schen","Delete script":"Skript l\xf6schen","Deselect all":"Alles abw\xe4hlen","Discard changes for %s":"\xc4nderungen f\xfcr %s verwerfen","Done":"Fertig","Drop some files here or click...":"Dateien hier ablegen oder klicken ...","Edit script or just double click":"Skript bearbeiten oder einfach doppelklicken","End search mode":"Suchmodus beenden","Error":"Fehler","Error was found":"Fehler wurde gefunden","Existing scripts will be overwritten.":"Vorhandene Skripte werden \xfcberschrieben.","Expand all":"Alle erweitern","Expert mode":"Expertenmodus","Export":"Export","Export all scripts":"Alle Skripte exportieren","Export blocks":"Bl\xf6cke exportieren","Export selected blocks":"Ausgew\xe4hlte Bl\xf6cke exportieren","February":"Februar","Folder":"Ordner","Friday":"Freitag","Function editor":"Funktions-Editor","ID":"ID","Import":"Import","Import blocks":"Bl\xf6cke importieren","Import error":"Fehler beim Importieren","Import scripts":"Skripte importieren","Insert object ID":"Objekt-ID einf\xfcgen","Instance":"Instanz","Instance is disabled":"Instanz ist deaktiviert","Invalid CRON":"Ung\xfcltiger CRON","It will not be possible to revert this operation.":"Dieser Vorgang kann nicht r\xfcckg\xe4ngig gemacht werden.","JS description":"Regeln erstellen mit JavaScript","January":"Januar","July":"Juli","June":"Juni","Learn More":"Mehr erfahren","Light style":"Heller Stil","Locate file":"Datei zeigen","Log outputs":"Protokoll","March":"M\xe4rz","May":"Mai","Menu":"Men\xfc","Message":"Nachricht","Monday":"Montag","Name":"Name","No active host found":"Kein aktiver Host gefunden","November":"November","October":"Oktober","Ok":"Ok","On weekdays":"An Wochentagen","Pause script":"Skript anhalten","Please select object ID...":"Objekt-ID ausw\xe4hlen ...","Rename":"Umbenennen","Reorder scripts in folders":"Skripte in Ordnern neu ordnen","Repeat":"Wiederholen","Restart":"Neustart","Root folder":"Root-Verzeichnis","Run script":"Skript ausf\xfchren","Saturday":"Samstag","Save":"Speichern","Script":"Skript","Script %s was modified on disk":"Skript \\"%s\\" wurde auf der Festplatte ge\xe4ndert","Script is not running":"Skript l\xe4uft nicht","Search in scripts":"Suche in Skripten","Search...":"Suche...","Select all":"Alles ausw\xe4hlen","September":"September","Show javascript code":"Javascript-Code zeigen","Show only paused scripts":"Nur angehaltene Skripte zeigen","Show only running scripts":"Nur laufende Skripte zeigen","Show only scripts with problems":"Nur Skripte mit Problemen zeigen","Some files will be rejected":"Einige Dateien werden abgelehnt","Sunday":"Sonntag","TS description":"Regeln erstellen mit TypeScript","Thursday":"Donnerstag","Tuesday":"Dienstag","Unknown error":"Unbekannter Fehler","Unknown error!":"Unbekannter Fehler!","Wednesday":"Mittwoch","Yet exists!":"Existiert schon!","copy":"Kopie","file reading has failed: %s":"Das Lesen der Datei ist fehlgeschlagen: %s","file reading was aborted":"Das Lesen der Datei wurde abgebrochen","filter_func":"Funktion","filter_id":"ID","filter_name":"Name","filter_role":"Rolle","filter_room":"Raum","for edit or create script":"zum Bearbeiten oder zum Erstellen eines neues Skripts","no blocks found":"Keine Bl\xf6cke gefunden","no group":"KEINE GRUPPE","not properly connected":"Dieser Block ist mit anderen nicht richtig verbunden.","tooltip_ack":"Best\xe4tigen","tooltip_from":"Von","tooltip_lc":"Zuletzt ge\xe4ndert","tooltip_quality":"Qualit\xe4t","tooltip_ts":"Zeitstempel","tooltip_user":"Benutzer","tooltip_value":"Wert","use seconds":"Sekunden verwenden","Save all":"Alle speichern","Change theme (actual \\"%s\\")":"Thema \xe4ndern (jetzt - \\"%s\\")","Hide logs":"Protokoll ausblenden","Show logs":"Protokoll anzeigen","Rules description":"Regeln erstellen mit WENN-, DANN- und SONST-Bl\xf6cken","help_on_change":"Der Code wird nur ausgef\xfchrt, wenn sich das Ergebnis der Bedingung \xe4ndert. z.B. wenn sich der Temperatur wert \xe4ndert und die Bedingung \\"Wenn die Temperatur gr\xf6\xdfer als 20\xb0C ist\\" lautet, werden die \\"Dann\\" -Aktionen einmal ausgef\xfchrt, wenn die Temperatur \xfcber 20\xb0C liegt. Das n\xe4chste Mal werden die \\"Dann\\" -Aktionen ausgef\xfchrt, wenn die Temperatur unter 20\xb0C gefallen ist und dann wieder \xfcber 20\xb0C ansteigt.","help_just_check":"Der Code wird jedes Mal ausgef\xfchrt, wenn die Bedingung erf\xfcllt ist. z.B. wenn der Temperatur wert sich \xe4ndert und die Bedingung \\"Wenn die Temperatur gr\xf6\xdfer als 20\xb0C ist\\" lautet, werden die \\"Dann\\" -Aktionen jedes Mal ausgef\xfchrt, wenn der Sensor die Temperatur sendet und diese \xfcber 20\xb0C liegt. Bei 21\xb0C, bei 22\xb0C und so weiter.","On condition change":"Bei \xc4nderung des Ergebnis der Bedingung","Just check":"Einfach \xfcberpr\xfcfen","when":"falls","and":"und","then":"dann","or":"oder","else":"sonst","Nothing found":"Nichts gefunden","reset search":"Suche zur\xfccksetzen","Read only ID selected: %s":"Schreibgesch\xfctzte ID ausgew\xe4hlt: %s","OK":"OK","Triggers":"L\xf6st aus","cron":"CRON","wizard":"Assistent","interval":"Intervall","at":"beim","astro":"Astro","on condition change":"bei Zustands\xe4nderung","just check":"einfach pr\xfcfen","Explanation":"Erl\xe4uterung","seconds":"Sekunden","minutes":"Minuten","hours":"Stunden","Every day":"T\xe4glich","milliseconds":"Millisekunden","Copied":"Kopiert","nadir":"Nadir","nightEnd":"astronomische Morgend\xe4mmerung","nauticalDawn":"nautische Morgend\xe4mmerung","dawn":"Morgend\xe4mmerung","sunrise":"Sonnenaufgang","sunriseEnd":"Goldene Morgenstunde","goldenHourEnd":"Vormittag","solarNoon":"(Nach-)Mittag","goldenHour":"Goldene Abendstunde","sunsetStart":"Sonnenuntergang (Anfang)","sunset":"Abendd\xe4mmerung","dusk":"nautische Abendd\xe4mmerung","nauticalDusk":"astronomische Abendd\xe4mmerung","night":"Nacht","one":"einer","two":"zwei","true":"wahr","false":"falsch","search":"Suche","Actions":"Aktionen","Conditions":"Bedingungen","Schedule":"Zeitplan","Start script":"Skript starten","State":"Zustand","State condition":"Zustandsbedingung","Time condition":"Zeitbedingung","Astrological":"Astronomisch","Set state action":"Zustand setzten","Exec":"Exec shell","HTTP Call":"HTTP-Aufruf","Log text":"Protokolltext","Pause":"Pause","on change":"bei \xc4nderung","control":"Steuerung","Say It":"Say It","every hour at 0 minutes":"jede Stunde bei 0 Minuten","On script save or adapter start":"Beim Speichern des Skripts oder beim Starten des Adapters","equal to":"gleich","Actual time of day":"Tats\xe4chliche Tageszeit","with":"mit","Shell command":"Shell-Befehl","URL":"URL","Instance:":"Instanz:","Language:":"Sprache:","Volume":"Volumen","Text:":"Text:","undefined":"nicht definiert","Default":"Standard","You can use %s in the text to display current trigger value or %id to display the triggered object ID":"Sie k\xf6nnen %s im Text verwenden, um den aktuellen Triggerwert anzuzeigen, %id, um die ausgel\xf6ste Objekt-ID zu verwenden, %name, um den ID-Namen des ausgel\xf6sten Objekts anzuzeigen, oder %old, um den alten Triggerwert zu verwenden","Instructions":"Anleitung","You can use %s in the URL to use current trigger value or %id to use the triggered object ID":"Sie k\xf6nnen %s in der URL verwenden, um den aktuellen Triggerwert zu verwenden, %id, um die ausgel\xf6ste Objekt-ID zu verwenden, %name, um den ID-Namen des ausgel\xf6sten Objekts anzuzeigen, oder %old, um den alten Triggerwert zu verwenden","You can use %s in the value to use the current trigger value or %id to display the triggered object ID":"Sie k\xf6nnen %s im Wert verwenden, um den aktuellen Triggerwert zu verwenden, %id, um die ID des ausgel\xf6sten Objekts zu verwenden, %name, um den ID-Namen des ausgel\xf6sten Objekts anzuzeigen, oder %old, um den alten Triggerwert zu verwenden","You can use %s in the command to use current trigger value or %id to use the triggered object ID":"Sie k\xf6nnen %s im Befehl verwenden, um den aktuellen Triggerwert zu verwenden, %id, um die ausgel\xf6ste Objekt-ID zu verwenden, %name, um den ID-Namen des ausgel\xf6sten Objekts anzuzeigen, oder %old, um den alten Triggerwert zu verwenden","every":"jeder","with offset":"mit Versatz","on update":"beim Aktualisieren","update":"Aktualisieren","Triggers the rule periodically or on some specific time":"L\xf6st periodisch oder zu einem bestimmten Zeitpunkt aus","Triggers the on script saving or the javascript instance restart":"L\xf6st das Speichern des Skripts oder den Neustart der Javascript-Instanz aus","Triggers the rule on update or change of some state":"L\xf6st die Regel beim Aktualisieren oder \xc4ndern eines Zustands aus","Compares the state value with user defined value":"Vergleicht den Zustandswert mit dem benutzerdefinierten Wert","Compares current time with the user specific time":"Vergleicht die aktuelle Zeit mit der benutzerspezifischen Zeit","Compares current time with astrological event":"Vergleicht die aktuelle Zeit mit dem astronomischen Ereignis","Control or update some state":"Zustand steuern oder aktualisieren","Executes some shell command":"F\xfchrt einen Shell-Befehl aus","Make a HTTP get request":"Stellen Sie eine HTTP-Abrufanforderung","Print some text in log":"Drucken Sie einen Text im Protokoll","Make a pause between actions":"Machen Sie eine Pause zwischen den Aktionen","Say some text via sayit adapter":"Sagen Sie einen Text \xfcber den Sayit-Adapter","Telegram":"Telegram","User:":"Benutzer:","all":"alle","Sends message via telegram":"Sendet eine Nachricht per telegram","Sends an email":"Sendet eine E-Mail","Send email":"E-Mail senden","Sends message via pushover":"Sendet eine Nachricht per Pushover","Pushover":"Pushover","Sends message via whatsapp-cmb":"Sendet eine Nachricht \xfcber WhatsApp-Cmb","Whatsapp-cmb":"WhatsApp-cmb","Sends message via Pushsafer":"Sendet eine Nachricht \xfcber Pushsafer","Pushsafer":"Pushsafer","To:":"Zu:","Subject:":"Gegenstand:","Body:":"K\xf6rper:","Title:":"Titel:","Sound:":"Klang:","Priority:":"Priorit\xe4t:","magic":"Magie","quiet":"ruhig","normal":"Normal","high-priority":"hohe Priorit\xe4t","acknowledgment":"Wissen","Phone:":"Telefon:","(optional)":"(optional)","Vibration:":"Vibration:","lowest priority":"niedrigste Priorit\xe4t","lower priority":"geringere Priorit\xe4t","normal priority":"normale Priorit\xe4t","high priority":"hohe Priorit\xe4t","highest priority":"h\xf6chste Priorit\xe4t","default":"Standard","All":"Alle","Write your own code":"Eigenen Code schreiben","User function":"Benutzerfunktion","This is advances option. You can write your own code here and it will be executed on trigger":"Dies ist eine erweiterte Option. Sie k\xf6nnen hier Ihren eigenen Code schreiben, der beim Ausl\xf6sen ausgef\xfchrt wird","greater than":"gr\xf6\xdfer als","offset":"Versatz","Function":"Funktion","greater or equal to":"gr\xf6\xdfer oder gleich","less or equal to":"kleiner oder gleich","less than":"kleiner als","not equal to":"ungleich","[equal]":"[gleich]","[greater or equal]":"[gr\xf6\xdfer oder gleich]","[greater]":"[gr\xf6\xdfer]","[less or equal]":"[kleiner oder gleich]","[less]":"[kleiner]","[not equal]":"[ungleich]","[includes]":"[enth\xe4lt]","[hysteresis]":"[Hysterese]","greater or equal":"gr\xf6\xdfer oder gleich","less or equal":"kleiner oder gleich","includes":"beinhaltet",".":".","()":"()","Mo":"Mo","Tu":"Di","We":"Mi","Th":"Do","Fr":"Fr","Sa":"Sa","Su":"So","Control or update some state with delay":"Zustand mit Verz\xf6gerung steuern oder aktualisieren","Delay":"Verz\xf6gerung","ms":"ms","Set with delay":"Setzen mit Verz\xf6gerung","clear running":"laufende abbrechen","toggle value":"Wert umschalten","Any month":"Jeden Monat","Any":"Egal","with date":"mit Datum","Date":"Datum","Month":"Monat","Januar":"Januar","Februar":"Februar","March ":"M\xe4rz ","Condition":"Bedingung","Limit":"Grenze","The script will be stopped and must be activated manually after debugging. Continue?":"Das Skript wird gestoppt und muss nach dem Debuggen manuell aktiviert werden. Fortsetzen?","Yes":"Ja","Debug instance":"Debug-Instanz","Resume execution":"Ausf\xfchrung fortsetzen","Go to next line":"Gehe zur n\xe4chsten Zeile","Step into function":"Schritt in die Funktion","Step out from function":"Raus aus der Funktion","Stop on exception":"Bei Ausnahme anhalten","Console":"Konsole","Stack":"Stack","Pause execution":"Ausf\xfchrung pausieren","Simulate":"Simulieren","Trigger with value":"Trigger mit Wert","Value":"Wert","Write":"Schreiben","Ack":"Best\xe4tigt","Start":"Start","Filter":"Filter","Instances":"Instanzen","Triggered":"Ausgel\xf6st","Function: executed":"Funktion: ausgef\xfchrt","Operate two states":"Zwei Zust\xe4nde operieren","store in":"speichern in","ID1":"ID1","ID2":"ID2","Operations with two states":"Operationen mit zwei Zust\xe4nden","debug_label":"Debuggen","debug_help":"Dies ist ein spezieller Modus, in dem sich Zust\xe4nde und Objekte nicht \xe4ndern. Im Protokoll werden jedoch nur Informationen zu jeder geplanten \xc4nderung angezeigt.","verbose_label":"Ausf\xfchrliche Protokollausgaben","verbose_help":"F\xfcgt Debug-Ausgaben f\xfcr viele Systembefehle zum Protokoll hinzu","easy":"einfach","for programmers":"f\xfcr Programmierer","for professionals":"f\xfcr Profis","Duplicate name":"Doppelter Name","Empty name is not allowed":"Leerer Name ist nicht zul\xe4ssig","Astrological events today":"Astrologische Ereignisse heute","Show astrological events":"Astrologische Ereignisse anzeigen","Time":"Zeit","Description":"Beschreibung","nextSunrise":"N\xe4chster Sonnenaufgang","nextSunset":"N\xe4chster Sonnenuntergang"}')},86443:function(e){e.exports=JSON.parse('{"-":"-","Add":"Add","Add new script":"Add new script","All files will be accepted":"All files will be accepted","April":"April","Are you sure?":"Are you sure?","August":"August","Blockly description":"Creating rules by graphic blocks","Cancel":"Cancel","Cannot delete non empty item!":"Cannot delete non empty item!","Change layout":"Change layout","Check blocks":"Check blocks","Check is not active, because javascript adapter is disabled":"Check is not active, because Javascript adapter is disabled","Clear search input":"Clear search input","Click on this icon":"Click on this icon","Close":"Close","Close all but current":"Close all but current","Collapse all":"Collapse all","Configuration not saved.":"Configuration not saved.","Convert blockly to javascript for ever.":"Permanently convert Blockly to Javascript.","Copy script":"Copy script","Copy to clipboard":"Copy to clipboard","Create new":"Create new","Create new folder":"Create new folder","Create new script":"Create new script","Create or edit CRON or time wizard":"Create or edit CRON or time wizard","Dark Theme":"Dark theme","Dark style":"Dark style","Debug options":"Debug options","December":"December","Define cron...":"Define cron...","Define schedule...":"Define schedule...","Delete":"Delete","Delete %s":"Delete %s...","Delete folder":"Delete folder","Delete script":"Delete script","Deselect all":"Deselect all","Discard changes for %s":"Discard changes for %s","Done":"Done","Drop some files here or click...":"Drop some files here or click...","Edit script or just double click":"Edit script or just double click","End search mode":"End search mode","Error":"Error","Error was found":"Error was found","Existing scripts will be overwritten.":"Existing scripts will be overwritten.","Expand all":"Expand all","Expert mode":"Expert mode","Export":"Export","Export all scripts":"Export all scripts","Export blocks":"Export blocks","Export selected blocks":"Export selected blocks","February":"February","Folder":"Folder","Friday":"Friday","Function editor":"Function editor","ID":"ID","Import":"Import","Import blocks":"Import blocks","Import error":"Import error","Import scripts":"Import scripts","Insert object ID":"Insert object ID","Instance":"Instance","Instance is disabled":"Instance is disabled","Invalid CRON":"Invalid CRON","It will not be possible to revert this operation.":"It will not be possible to revert this operation.","JS description":"Creating rules by writing Javascript","January":"January","July":"July","June":"June","Learn More":"Learn More","Light style":"Light style","Locate file":"Locate file","Log outputs":"Log outputs","March":"March","May":"May","Menu":"Menu","Message":"Message","Monday":"Monday","Name":"Name","No active host found":"No active host found","November":"November","October":"October","Ok":"Ok","On weekdays":"On weekdays","Pause script":"Pause script","Please select object ID...":"Please select object ID...","Rename":"Rename","Reorder scripts in folders":"Reorder scripts in folders","Repeat":"Repeat","Restart":"Restart","Root folder":"Root folder","Run script":"Run script","Saturday":"Saturday","Save":"Save","Script":"Script","Script %s was modified on disk":"Script %s was modified on disk","Script is not running":"Script is not running","Search in scripts":"Search in scripts","Search...":"Search...","Select all":"Select all","September":"September","Show javascript code":"Show Javascript code","Show only paused scripts":"Show only paused scripts","Show only running scripts":"Show only running scripts","Show only scripts with problems":"Show only scripts with problems","Some files will be rejected":"Some files will be rejected","Sunday":"Sunday","TS description":"Creating rules by writing Typescript","Thursday":"Thursday","Tuesday":"Tuesday","Unknown error":"Unknown error","Unknown error!":"Unknown error!","Wednesday":"Wednesday","Yet exists!":"Yet exists!","copy":"copy","file reading has failed: %s":"file reading has failed: %s","file reading was aborted":"file reading was aborted","filter_func":"Function","filter_id":"ID","filter_name":"Name","filter_role":"Role","filter_room":"Room","for edit or create script":"for edit or create a new script","no blocks found":"No blocks found","no group":"NO GROUP","not properly connected":"This block is not properly connected to other blocks.","tooltip_ack":"Acknowledge","tooltip_from":"From","tooltip_lc":"Last changed","tooltip_quality":"Quality","tooltip_ts":"Timestamp","tooltip_user":"User","tooltip_value":"Value","use seconds":"use seconds","Save all":"Save all","Change theme (actual \\"%s\\")":"Change theme (now - \\"%s\\")","Hide logs":"Hide logs","Show logs":"Show logs","Rules description":"Create rules with IF, THEN, ELSE blocks","help_on_change":"The code will be executed only if the condition result changes. E.g. if triggering on the temperature sensor value and the condition is \\"if temperature is greater than 20\xb0C\\", the \\"then\\" actions will be executed once when temperature is over 20. Next time the \\"then\\" actions will be executed when the temperature fails under 20 and then rises over 20 again.","help_just_check":"The code will be executed only every time when condition is true. E.g. if triggering on the temperature sensor value and the condition is \\"if temperature is greater than 20\xb0C\\", the \\"then\\" actions will be executed every time when sensor sends the temperature and it is over 20\xb0C. By 21\xb0C, by 22\xb0C and so on.","On condition change":"On condition result change","Just check":"Just check","when":"when","and":"and","then":"then","or":"or","else":"else","Nothing found":"Nothing found","reset search":"reset search","Read only ID selected: %s":"Read only ID selected: %s","OK":"OK","Triggers":"Triggers","cron":"CRON","wizard":"Wizard","interval":"interval","at":"at","astro":"Astro","on condition change":"on condition change","just check":"just check","Explanation":"Explanation","seconds":"seconds","minutes":"minutes","hours":"hours","Every day":"Every day","milliseconds":"milliseconds","Copied":"Copied","nadir":"Nadir","nightEnd":"Night end","nauticalDawn":"Nautical dawn","dawn":"Dawn","sunrise":"sunrise","sunriseEnd":"Sunrise end","goldenHourEnd":"End of golden hour","solarNoon":"Solar noon","goldenHour":"Golden hour","sunsetStart":"Sunset start","sunset":"Sunset","dusk":"Dusk","nauticalDusk":"Nautical dusk","night":"Night","one":"one","two":"two","true":"true","false":"false","search":"search","Actions":"Actions","Conditions":"Conditions","Schedule":"Schedule","Start script":"Start script","State":"State","State condition":"State condition","Time condition":"Time condition","Astrological":"Astronomical","Set state action":"Set state action","Exec":"Exec shell","HTTP Call":"HTTP Call","Log text":"Log text","Pause":"Pause","on change":"on change","control":"control","Say It":"Say It","every hour at 0 minutes":"every hour at 0 minutes","On script save or adapter start":"On script save or adapter start","equal to":"equal to","Actual time of day":"Actual time of day","with":"with","Shell command":"Shell command","URL":"URL","Instance:":"Instance:","Language:":"Language:","Volume":"Volume","Text:":"Text:","undefined":"undefined","Default":"Default","You can use %s in the text to display current trigger value or %id to display the triggered object ID":"You can use %s in the text to display current trigger value, %id to use the triggered object ID, %name to show triggered object ID name or %old to use old trigger value","Instructions":"Instructions","You can use %s in the URL to use current trigger value or %id to use the triggered object ID":"You can use %s in the URL to use current trigger value, %id to use the triggered object ID, %name to show triggered object ID name or %old to use old trigger value","You can use %s in the value to use the current trigger value or %id to display the triggered object ID":"You can use %s in the value to use the current trigger value, %id to use the triggered object ID, %name to show triggered object ID name or %old to use old trigger value","You can use %s in the command to use current trigger value or %id to use the triggered object ID":"You can use %s in the command to use current trigger value, %id to use the triggered object ID, %name to show triggered object ID name or %old to use old trigger value","every":"every","with offset":"with offset","on update":"on update","update":"update","Triggers the rule periodically or on some specific time":"Triggers the rule periodically or on some specific time","Triggers the on script saving or the javascript instance restart":"Triggers the on script saving or the javascript instance restart","Triggers the rule on update or change of some state":"Triggers the rule on update or change of some state","Compares the state value with user defined value":"Compares the state value with user defined value","Compares current time with the user specific time":"Compares current time with the user specific time","Compares current time with astrological event":"Compares current time with astronomical event","Control or update some state":"Control or update some state","Executes some shell command":"Executes some shell command","Make a HTTP get request":"Make a HTTP get request","Print some text in log":"Print some text in log","Make a pause between actions":"Make a pause between actions","Say some text via sayit adapter":"Say some text via sayit adapter","Telegram":"Telegram","User:":"User:","all":"all","Sends message via telegram":"Sends message via telegram","Sends an email":"Sends an email","Send email":"Send email","Sends message via pushover":"Sends message via pushover","Pushover":"Pushover","Sends message via whatsapp-cmb":"Sends message via whatsapp-cmb","Whatsapp-cmb":"Whatsapp-cmb","Sends message via Pushsafer":"Sends message via Pushsafer","Pushsafer":"Pushsafer","To:":"To:","Subject:":"Subject:","Body:":"Body:","Title:":"Title:","Sound:":"Sound:","Priority:":"Priority:","magic":"magic","quiet":"quiet","normal":"normal","high-priority":"high-priority","acknowledgment":"acknowledgment","Phone:":"Phone:","(optional)":"(optional)","Vibration:":"Vibration:","lowest priority":"lowest priority","lower priority":"lower priority","normal priority":"normal priority","high priority":"high priority","highest priority":"highest priority","default":"default","All":"All","Write your own code":"Write your own code","User function":"User function","This is advances option. You can write your own code here and it will be executed on trigger":"This is advances option. You can write your own code here and it will be executed on trigger","greater than":"greater than","offset":"offset","Function":"Function","greater or equal to":"greater or equal to","less or equal to":"less or equal to","less than":"less than","not equal to":"not equal to","[equal]":"[equal]","[greater or equal]":"[greater or equal]","[greater]":"[greater]","[less or equal]":"[less or equal]","[less]":"[less]","[not equal]":"[not equal]","[includes]":"[includes]","[hysteresis]":"[hysteresis]","greater or equal":"greater or equal","less or equal":"less or equal","includes":"includes",".":".","()":"()","Mo":"Mo","Tu":"Tu","We":"We","Th":"Th","Fr":"Fr","Sa":"Sa","Su":"Su","Control or update some state with delay":"Control or update some state with delay","Delay":"Delay","ms":"ms","Set with delay":"Set with delay","clear running":"clear running","toggle value":"toggle value","Any month":"Any month","Any":"Any","with date":"with date","Date":"Date","Month":"Month","Januar":"Januar","Februar":"Februar","March ":"March ","Condition":"Condition","Limit":"Limit","The script will be stopped and must be activated manually after debugging. Continue?":"The script will be stopped and must be activated manually after debugging. Continue?","Yes":"Yes","Debug instance":"Debug instance","Resume execution":"Resume execution","Go to next line":"Go to next line","Step into function":"Step into function","Step out from function":"Step out from function","Stop on exception":"Stop on exception","Console":"Console","Stack":"Stack","Pause execution":"Pause execution","Simulate":"Simulate","Trigger with value":"Trigger with value","Value":"Value","Write":"Write","Ack":"Acknowledged","Start":"Start","Filter":"Filter","Instances":"Instances","Triggered":"Triggered","Function: executed":"Function: executed","Operate two states":"Operate two states","store in":"store in","ID1":"ID1","ID2":"ID2","Operations with two states":"Operations with two states","debug_label":"Debug","debug_help":"This is a special mode in which states and objects will not change. But only information about each planned change will be displayed in the protocol.","verbose_label":"Verbose log outputs","verbose_help":"Adds debug output to the log for many system commands","easy":"easy","for programmers":"for programmers","for professionals":"for professionals","Duplicate name":"Duplicate name","Empty name is not allowed":"Empty name is not allowed","Astrological events today":"Astrological events today","Show astrological events":"Show astrological events","Time":"Time","Description":"Description","nextSunrise":"Next Sunrise","nextSunset":"Next sunset"}')},55117:function(e){e.exports=JSON.parse('{"-":"-","Add":"A\xf1adir","Add new script":"Agregar nuevo script","All files will be accepted":"Todos los archivos ser\xe1n aceptados.","April":"abril","Are you sure?":"\xbfEst\xe1s seguro?","August":"agosto","Blockly description":"Crear reglas por bloques gr\xe1ficos","Cancel":"Cancelar","Cannot delete non empty item!":"\xa1No se puede eliminar un elemento no vac\xedo!","Change layout":"Cambia el dise\xf1o","Check blocks":"Comprobar bloques","Check is not active, because javascript adapter is disabled":"La comprobaci\xf3n no est\xe1 activa porque el adaptador Javascript est\xe1 desactivado","Clear search input":"Borrar entrada de b\xfasqueda","Click on this icon":"Haga clic en este \xedcono","Close":"Cerrar","Close all but current":"Cerrar todo menos el actual","Collapse all":"Desplegar todo","Configuration not saved.":"Configuraci\xf3n no guardada.","Convert blockly to javascript for ever.":"Convierta instant\xe1neamente en bloque a Javascript.","Copy script":"Copiar guion","Copy to clipboard":"Copiar al portapapeles","Create new":"Crear nuevo","Create new folder":"Crear nueva carpeta","Create new script":"Crear nuevo script","Create or edit CRON or time wizard":"Crear o editar CRON o asistente de tiempo","Dark Theme":"Tema oscuro","Dark style":"Estilo oscuro","Debug options":"Opciones de depuraci\xf3n","December":"diciembre","Define cron...":"Definir cron ...","Define schedule...":"Definir horario ...","Delete":"Eliminar","Delete %s":"Eliminar %s ...","Delete folder":"Eliminar carpeta","Delete script":"Eliminar gui\xf3n","Deselect all":"Deseleccionar todo","Discard changes for %s":"Descartar cambios para %s","Done":"Hecho","Drop some files here or click...":"Suelta algunos archivos aqu\xed o haz clic ...","Edit script or just double click":"Editar gui\xf3n o simplemente hacer doble clic","End search mode":"Fin del modo de b\xfasqueda","Error":"Error","Error was found":"Error encontrado","Existing scripts will be overwritten.":"Los guiones existentes se sobrescribir\xe1n.","Expand all":"Expandir todo","Expert mode":"Modo experto","Export":"Exportar","Export all scripts":"Exportar todos los scripts","Export blocks":"Exportar bloques","Export selected blocks":"Exportar bloques seleccionados","February":"febrero","Folder":"Carpeta","Friday":"viernes","Function editor":"Editor de funciones","ID":"CARN\xc9 DE IDENTIDAD","Import":"Importar","Import blocks":"Importar bloques","Import error":"Error de importaci\xf3n","Import scripts":"Importar guiones","Insert object ID":"Insertar ID de objeto","Instance":"Ejemplo","Instance is disabled":"La instancia est\xe1 deshabilitada","Invalid CRON":"CRON inv\xe1lido","It will not be possible to revert this operation.":"No ser\xe1 posible revertir esta operaci\xf3n.","JS description":"Crear reglas escribiendo Javascript","January":"enero","July":"julio","June":"junio","Learn More":"Aprende m\xe1s","Light style":"Estilo ligero","Locate file":"Localizar el archivo","Log outputs":"Salidas de registro","March":"marzo","May":"Mayo","Menu":"Men\xfa","Message":"Mensaje","Monday":"lunes","Name":"Nombre","No active host found":"No se encontr\xf3 un host activo","November":"noviembre","October":"octubre","Ok":"Okay","On weekdays":"De lunes a viernes","Pause script":"Pausar guion","Please select object ID...":"Por favor, seleccione la ID del objeto ...","Rename":"Rebautizar","Reorder scripts in folders":"Reordenar guiones en carpetas","Repeat":"Repetir","Restart":"Reiniciar","Root folder":"Carpeta ra\xedz","Run script":"Ejecutar gui\xf3n","Saturday":"s\xe1bado","Save":"Salvar","Script":"Gui\xf3n","Script %s was modified on disk":"El script %s fue modificado en el disco","Script is not running":"El script no se est\xe1 ejecutando","Search in scripts":"Buscar en guiones","Search...":"Buscar...","Select all":"Seleccionar todo","September":"septiembre","Show javascript code":"Mostrar c\xf3digo Javascript","Show only paused scripts":"Mostrar solo secuencias de comandos pausadas","Show only running scripts":"Mostrar solo scripts en ejecuci\xf3n","Show only scripts with problems":"Mostrar solo guiones con problemas","Some files will be rejected":"Algunos archivos ser\xe1n rechazados","Sunday":"domingo","TS description":"Crear reglas escribiendo el mecanografiado","Thursday":"jueves","Tuesday":"martes","Unknown error":"Error desconocido","Unknown error!":"\xa1Error desconocido!","Wednesday":"mi\xe9rcoles","Yet exists!":"\xa1Sin embargo existe!","copy":"Copiar","file reading has failed: %s":"la lectura del archivo ha fallado: %s","file reading was aborted":"la lectura del archivo fue abortada","filter_func":"Funci\xf3n","filter_id":"CARN\xc9 DE IDENTIDAD","filter_name":"Nombre","filter_role":"Papel","filter_room":"Habitaci\xf3n","for edit or create script":"para editar o crear un nuevo script","no blocks found":"No se encontraron bloques","no group":"NO GRUPO","not properly connected":"Este bloque no est\xe1 conectado correctamente a otros bloques.","tooltip_ack":"Reconocer","tooltip_from":"De","tooltip_lc":"\xdaltimo cambio","tooltip_quality":"Calidad","tooltip_ts":"Marca de tiempo","tooltip_user":"Usuario","tooltip_value":"Valor","use seconds":"usar segundos","Save all":"Salvar a todos","Change theme (actual \\"%s\\")":"Cambiar tema (ahora - \\"%s\\")","Hide logs":"Ocultar registros","Show logs":"Mostrar registros","Rules description":"Crea reglas con bloques IF, THEN, ELSE","help_on_change":"El c\xf3digo se ejecutar\xe1 solo si cambia el resultado de la condici\xf3n. P.ej. si se activa en el valor del sensor de temperatura y la condici\xf3n es \\"si la temperatura es superior a 20 \xb0 C\\", las acciones \\"entonces\\" se ejecutar\xe1n una vez cuando la temperatura sea superior a 20. La pr\xf3xima vez, las acciones \\"entonces\\" se ejecutar\xe1n cuando la temperatura falla por debajo de 20 y luego sube por encima de 20 nuevamente.","help_just_check":"El c\xf3digo se ejecutar\xe1 solo cada vez que la condici\xf3n sea verdadera. P.ej. si se activa en el valor del sensor de temperatura y la condici\xf3n es \\"si la temperatura es superior a 20 \xb0 C\\", las acciones \\"entonces\\" se ejecutar\xe1n cada vez que el sensor env\xede la temperatura y supere los 20 \xb0 C. Por 21 \xb0 C, por 22 \xb0 C y as\xed sucesivamente.","On condition change":"En condici\xf3n de cambio","Just check":"S\xf3lo revisa","when":"cuando","and":"y","then":"entonces","or":"o","else":"dem\xe1s","Nothing found":"Nada Encontrado","reset search":"restablecer la b\xfasqueda","Read only ID selected: %s":"ID de solo lectura seleccionado: %s","OK":"OK","Triggers":"Disparadores","cron":"CRON","wizard":"Wizard","interval":"intervalo","at":"a","astro":"astro","on condition change":"con cambio de condici\xf3n","just check":"S\xf3lo revisa","Explanation":"Explicaci\xf3n","seconds":"segundos","minutes":"minutos","hours":"horas","Every day":"Diario","milliseconds":"milisegundos","Copied":"Copiado","nadir":"nadir","nightEnd":"Fin de la noche","nauticalDawn":"Amanecer n\xe1utico","dawn":"Amanecer","sunrise":"amanecer","sunriseEnd":"Final del amanecer","goldenHourEnd":"Fin de la hora dorada","solarNoon":"Mediod\xeda solar","goldenHour":"hora dorada","sunsetStart":"Inicio al atardecer","sunset":"puesta de sol","dusk":"Oscuridad","nauticalDusk":"Atardecer n\xe1utico","night":"Noche","one":"uno","two":"dos","true":"cierto","false":"falso","search":"buscar","Actions":"Comportamiento","Conditions":"Condiciones","Schedule":"Calendario","Start script":"Iniciar guion","State":"Expresar","State condition":"Condici\xf3n del estado","Time condition":"Condici\xf3n de tiempo","Astrological":"Astron\xf3mico","Set state action":"Establecer acci\xf3n estatal","Exec":"Ejecutivo shell","HTTP Call":"Llamada HTTP","Log text":"Texto de registro","Pause":"Pausa","on change":"en el cambio","control":"control","Say It":"Say It","every hour at 0 minutes":"cada hora a los 0 minutos","On script save or adapter start":"Al guardar el script o al iniciar el adaptador","equal to":"igual a","Actual time of day":"Hora real del d\xeda","with":"con","Shell command":"Comando de Shell","URL":"URL","Instance:":"Ejemplo:","Language:":"Idioma:","Volume":"Volumen","Text:":"Texto:","undefined":"indefinido","Default":"Defecto","You can use %s in the text to display current trigger value or %id to display the triggered object ID":"Puede usar %s en el texto para mostrar el valor de activaci\xf3n actual, %id para usar el ID de objeto activado, %name para mostrar el nombre de ID de objeto activado o %old para usar el valor de activaci\xf3n antiguo","Instructions":"Instrucciones","You can use %s in the URL to use current trigger value or %id to use the triggered object ID":"Puede usar %s en la URL para usar el valor de activaci\xf3n actual, %id para usar el ID de objeto activado, %name para mostrar el nombre de ID de objeto activado o %old para usar el valor de activaci\xf3n antiguo","You can use %s in the value to use the current trigger value or %id to display the triggered object ID":"Puede usar %s en el valor para usar el valor de activaci\xf3n actual, %id para usar el ID de objeto activado, %name para mostrar el nombre de ID de objeto activado o %old para usar el valor de activaci\xf3n antiguo","You can use %s in the command to use current trigger value or %id to use the triggered object ID":"Puede usar %s en el comando para usar el valor de activaci\xf3n actual, %id para usar el ID de objeto activado, %name para mostrar el nombre de ID de objeto activado o %old para usar el valor de activaci\xf3n anterior","every":"cada","with offset":"con desplazamiento","on update":"en actualizaci\xf3n","update":"actualizar","Triggers the rule periodically or on some specific time":"Activa la regla peri\xf3dicamente o en un momento espec\xedfico","Triggers the on script saving or the javascript instance restart":"Activa el guardado de la secuencia de comandos o el reinicio de la instancia de JavaScript","Triggers the rule on update or change of some state":"Activa la regla de actualizaci\xf3n o cambio de alg\xfan estado","Compares the state value with user defined value":"Compara el valor del estado con el valor definido por el usuario","Compares current time with the user specific time":"Compara la hora actual con la hora espec\xedfica del usuario","Compares current time with astrological event":"Compara la hora actual con un evento astron\xf3mico","Control or update some state":"Controlar o actualizar alg\xfan estado","Executes some shell command":"Ejecuta alg\xfan comando de shell","Make a HTTP get request":"Realizar una solicitud de obtenci\xf3n HTTP","Print some text in log":"Imprime texto en el registro","Make a pause between actions":"Hacer una pausa entre acciones","Say some text via sayit adapter":"Di un mensaje de texto a trav\xe9s del adaptador sayit","Telegram":"Telegrama","User:":"Usuario:","all":"todos","Sends message via telegram":"Env\xeda mensaje por telegrama","Sends an email":"Env\xeda un correo electr\xf3nico","Send email":"Enviar correo electr\xf3nico","Sends message via pushover":"Env\xeda un mensaje a trav\xe9s de un pushover","Pushover":"Persona f\xe1cil de convencer","Sends message via whatsapp-cmb":"Env\xeda mensaje v\xeda whatsapp-cmb","Whatsapp-cmb":"Whatsapp-cmb","Sends message via Pushsafer":"Env\xeda mensaje a trav\xe9s de Pushsafer","Pushsafer":"Pushsafer","To:":"A:","Subject:":"Sujeto:","Body:":"Cuerpo:","Title:":"T\xedtulo:","Sound:":"Sonido:","Priority:":"Prioridad:","magic":"magia","quiet":"tranquilo","normal":"normal","high-priority":"alta prioridad","acknowledgment":"Reconocimiento","Phone:":"Tel\xe9fono:","(optional)":"(Opcional)","Vibration:":"Vibraci\xf3n:","lowest priority":"prioridad m\xe1s baja","lower priority":"prioridad m\xe1s baja","normal priority":"prioridad normal","high priority":"alta prioridad","highest priority":"m\xe1s alta prioridad","default":"defecto","All":"Todos","Write your own code":"Escribe tu propio c\xf3digo","User function":"Funci\xf3n de usuario","This is advances option. You can write your own code here and it will be executed on trigger":"Esta es la opci\xf3n de avances. Puede escribir su propio c\xf3digo aqu\xed y se ejecutar\xe1 en el disparador","greater than":"mas grande que","offset":"compensar","Function":"Funci\xf3n","greater or equal to":"mayor o igual a","less or equal to":"menor o igual a","less than":"menos que","not equal to":"no igual a","[equal]":"[igual]","[greater or equal]":"[mayor o igual]","[greater]":"[mayor que]","[less or equal]":"[menor o igual]","[less]":"[menos]","[not equal]":"[no es igual]","[includes]":"[incluye]","[hysteresis]":"[hist\xe9resis]","greater or equal":"mayor o igual","less or equal":"menor o igual","includes":"incluye",".":".","()":"()","Mo":"Mes","Tu":"Tu","We":"3","Th":"4","Fr":"P.","Sa":"Sa","Su":"Su","Control or update some state with delay":"Controlar o actualizar alg\xfan estado con retraso","Delay":"Demora","ms":"ms","Set with delay":"Establecer con retraso","clear running":"carrera clara","toggle value":"alternar valor","Any month":"Cualquier mes","Any":"Alguna","with date":"con fecha","Date":"Fecha","Month":"Mes","Januar":"Enero","Februar":"Februar","March ":"marzo","Condition":"Condici\xf3n","Limit":"L\xedmite","The script will be stopped and must be activated manually after debugging. Continue?":"El script se detendr\xe1 y deber\xe1 activarse manualmente despu\xe9s de la depuraci\xf3n. \xbfContinuar?","Yes":"s\xed","Debug instance":"Instancia de depuraci\xf3n","Resume execution":"Reanudar ejecuci\xf3n","Go to next line":"Ir a la siguiente l\xednea","Step into function":"Entra en funci\xf3n","Step out from function":"Sal de la funci\xf3n","Stop on exception":"Det\xe9ngase en excepci\xf3n","Console":"Consola","Stack":"Stack","Pause execution":"Pausar ejecuci\xf3n","Simulate":"Simular","Trigger with value":"Activar con valor","Value":"Valor","Write":"Escribir","Ack":"Admitido","Start":"Comienzo","Filter":"Filtrar","Instances":"Instancias","Triggered":"Motivado","Function: executed":"Funci\xf3n: ejecutada","Operate two states":"Operar dos estados","store in":"almacenar en","ID1":"ID1","ID2":"ID2","Operations with two states":"Operaciones con dos estados","debug_label":"Depurar","debug_help":"Este es un modo especial en el que los estados y los objetos no cambiar\xe1n. Pero solo se mostrar\xe1 informaci\xf3n sobre cada cambio planificado en el protocolo.","verbose_label":"Salidas de registro detalladas","verbose_help":"Agrega salida de depuraci\xf3n al registro para muchos comandos del sistema","easy":"f\xe1cil","for programmers":"para programadores","for professionals":"para profesionales","Duplicate name":"Nombre duplicado","Empty name is not allowed":"No se permite el nombre vac\xedo","Astrological events today":"Eventos astrol\xf3gicos hoy","Show astrological events":"Mostrar eventos astrol\xf3gicos","Time":"Tiempo","Description":"Descripci\xf3n","nextSunrise":"pr\xf3ximo amanecer","nextSunset":"Pr\xf3xima puesta de sol"}')},86115:function(e){e.exports=JSON.parse('{"-":"-","Add":"Ajouter","Add new script":"Ajouter un nouveau script","All files will be accepted":"Tous les fichiers seront accept\xe9s","April":"avril","Are you sure?":"\xcates-vous s\xfbr?","August":"ao\xfbt","Blockly description":"Cr\xe9ation de r\xe8gles par blocs graphiques","Cancel":"Annuler","Cannot delete non empty item!":"Impossible de supprimer un \xe9l\xe9ment non vide!","Change layout":"Changer la disposition","Check blocks":"V\xe9rifier les blocs","Check is not active, because javascript adapter is disabled":"La v\xe9rification n\'est pas active, car l\'adaptateur Javascript est d\xe9sactiv\xe9","Clear search input":"Effacer la recherche","Click on this icon":"Cliquez sur cette ic\xf4ne","Close":"proche","Close all but current":"Ferme tout sauf courant","Collapse all":"R\xe9duire tout","Configuration not saved.":"Configuration non enregistr\xe9e.","Convert blockly to javascript for ever.":"Convertissez instantan\xe9ment en Javascript.","Copy script":"Copier le script","Copy to clipboard":"Copier dans le presse-papier","Create new":"Cr\xe9er un nouveau","Create new folder":"Cr\xe9er un nouveau dossier","Create new script":"Cr\xe9er un nouveau script","Create or edit CRON or time wizard":"Cr\xe9er ou \xe9diter CRON ou un assistant de temps","Dark Theme":"Th\xe8me sombre","Dark style":"Style sombre","Debug options":"Options de d\xe9bogage","December":"d\xe9cembre","Define cron...":"D\xe9finir le cron ...","Define schedule...":"D\xe9finir le calendrier ...","Delete":"Effacer","Delete %s":"Supprimer %s ...","Delete folder":"Supprimer le dossier","Delete script":"Supprimer le script","Deselect all":"Tout d\xe9selectionner","Discard changes for %s":"Ignorer les modifications pour %s","Done":"Termin\xe9","Drop some files here or click...":"D\xe9poser des fichiers ici ou cliquez sur ...","Edit script or just double click":"Modifiez le script ou double-cliquez simplement sur","End search mode":"Fin du mode de recherche","Error":"Erreur","Error was found":"Une erreur a \xe9t\xe9 trouv\xe9e","Existing scripts will be overwritten.":"Les scripts existants seront \xe9cras\xe9s.","Expand all":"D\xe9velopper tout","Expert mode":"Mode expert","Export":"Exportation","Export all scripts":"Exporter tous les scripts","Export blocks":"Blocs d\'exportation","Export selected blocks":"Exporter les blocs s\xe9lectionn\xe9s","February":"f\xe9vrier","Folder":"Dossier","Friday":"Vendredi","Function editor":"\xc9diteur de fonction","ID":"ID","Import":"Importation","Import blocks":"Blocs d\'importation","Import error":"Erreur d\'importation","Import scripts":"Importer des scripts","Insert object ID":"Ins\xe9rer un identifiant d\'objet","Instance":"Exemple","Instance is disabled":"L\'instance est d\xe9sactiv\xe9e","Invalid CRON":"CRON invalide","It will not be possible to revert this operation.":"Il ne sera pas possible de revenir sur cette op\xe9ration.","JS description":"Cr\xe9er des r\xe8gles en \xe9crivant du Javascript","January":"janvier","July":"juillet","June":"juin","Learn More":"Apprendre encore plus","Light style":"Style de lumi\xe8re","Locate file":"Localiser le fichier","Log outputs":"Journal des sorties","March":"Mars","May":"Mai","Menu":"M e n u","Message":"Message","Monday":"Lundi","Name":"Nom","No active host found":"Aucun h\xf4te actif trouv\xe9","November":"novembre","October":"octobre","Ok":"D\'accord","On weekdays":"En semaine","Pause script":"Script de pause","Please select object ID...":"Veuillez s\xe9lectionner l\'ID d\'objet ...","Rename":"Renommer","Reorder scripts in folders":"R\xe9organiser les scripts dans des dossiers","Repeat":"R\xe9p\xe9ter","Restart":"Red\xe9marrer","Root folder":"Dossier racine","Run script":"Script de lancement","Saturday":"samedi","Save":"sauver","Script":"Sc\xe9nario","Script %s was modified on disk":"Le script %s a \xe9t\xe9 modifi\xe9 sur le disque","Script is not running":"Le script n\'est pas en cours d\'ex\xe9cution","Search in scripts":"Rechercher dans les scripts","Search...":"Chercher...","Select all":"Tout s\xe9lectionner","September":"septembre","Show javascript code":"Afficher le code Javascript","Show only paused scripts":"Afficher uniquement les scripts en pause","Show only running scripts":"Afficher uniquement les scripts en cours d\'ex\xe9cution","Show only scripts with problems":"Afficher uniquement les scripts avec des probl\xe8mes","Some files will be rejected":"Certains fichiers seront rejet\xe9s","Sunday":"dimanche","TS description":"Cr\xe9er des r\xe8gles en \xe9crivant des caract\xe8res dactylographi\xe9s","Thursday":"Jeudi","Tuesday":"Mardi","Unknown error":"Erreur inconnue","Unknown error!":"Erreur inconnue!","Wednesday":"Mercredi","Yet exists!":"Pourtant existe!","copy":"copie","file reading has failed: %s":"La lecture du fichier a \xe9chou\xe9: %s","file reading was aborted":"la lecture du fichier a \xe9t\xe9 abandonn\xe9e","filter_func":"Une fonction","filter_id":"ID","filter_name":"Nom","filter_role":"R\xf4le","filter_room":"Pi\xe8ce","for edit or create script":"pour \xe9diter ou cr\xe9er un nouveau script","no blocks found":"Aucun bloc trouv\xe9","no group":"PAS DE GROUPE","not properly connected":"Ce bloc n\'est pas correctement connect\xe9 \xe0 d\'autres blocs.","tooltip_ack":"Reconna\xeetre","tooltip_from":"De","tooltip_lc":"Derni\xe8re modification","tooltip_quality":"Qualit\xe9","tooltip_ts":"Horodatage","tooltip_user":"Utilisateur","tooltip_value":"Valeur","use seconds":"utiliser les secondes","Save all":"Sauver tous","Change theme (actual \\"%s\\")":"Changer de th\xe8me (maintenant - \\"%s\\")","Hide logs":"Masquer les journaux","Show logs":"Afficher les journaux","Rules description":"Cr\xe9er des r\xe8gles avec des blocs IF, THEN, ELSE","help_on_change":"Le code ne sera ex\xe9cut\xe9 que si le r\xe9sultat de la condition change. Par exemple. si le d\xe9clenchement sur la valeur du capteur de temp\xe9rature et que la condition est \xabsi la temp\xe9rature est sup\xe9rieure \xe0 20 \xb0 C\xbb, les actions \xabalors\xbb seront ex\xe9cut\xe9es une fois lorsque la temp\xe9rature est sup\xe9rieure \xe0 20. La prochaine fois, les actions \xabalors\xbb seront ex\xe9cut\xe9es lorsque la temp\xe9rature \xe9choue sous 20 puis remonte au-dessus de 20.","help_just_check":"Le code ne sera ex\xe9cut\xe9 que chaque fois que la condition est vraie. Par exemple. si d\xe9clenchement sur la valeur du capteur de temp\xe9rature et que la condition est \xabsi la temp\xe9rature est sup\xe9rieure \xe0 20 \xb0 C\xbb, les actions \xabalors\xbb seront ex\xe9cut\xe9es \xe0 chaque fois que le capteur envoie la temp\xe9rature et qu\'elle est sup\xe9rieure \xe0 20 \xb0 C. \xc0 21 \xb0 C, \xe0 22 \xb0 C et ainsi de suite.","On condition change":"En cas de changement de condition","Just check":"V\xe9rifiez simplement","when":"lorsque","and":"et","then":"alors","or":"ou","else":"autre","Nothing found":"Rien n\'a \xe9t\xe9 trouv\xe9","reset search":"R\xe9initialiser la recherche","Read only ID selected: %s":"ID en lecture seule s\xe9lectionn\xe9: %s","OK":"OK","Triggers":"D\xe9clencheurs","cron":"CRON","wizard":"Wizard","interval":"intervalle","at":"\xe0","astro":"astro","on condition change":"sur changement de condition","just check":"V\xe9rifiez simplement","Explanation":"Explication","seconds":"secondes","minutes":"minutes","hours":"les heures","Every day":"Tous les jours","milliseconds":"millisecondes","Copied":"Copi\xe9","nadir":"nadir","nightEnd":"Fin de nuit","nauticalDawn":"Aube nautique","dawn":"Aube","sunrise":"lever du soleil","sunriseEnd":"Fin du lever du soleil","goldenHourEnd":"Fin de l\'heure d\'or","solarNoon":"Midi solaire","goldenHour":"Heure d\'or","sunsetStart":"D\xe9but du coucher du soleil","sunset":"le coucher du soleil","dusk":"Cr\xe9puscule","nauticalDusk":"Cr\xe9puscule nautique","night":"Nuit","one":"une","two":"deux","true":"vrai","false":"faux","search":"chercher","Actions":"Actions","Conditions":"Conditions","Schedule":"Horaire","Start script":"Lancer le script","State":"\xc9tat","State condition":"\xc9tat condition","Time condition":"Condition de temps","Astrological":"Astronomique","Set state action":"D\xe9finir l\'action de l\'\xe9tat","Exec":"Exec shell","HTTP Call":"Appel HTTP","Log text":"Texte du journal","Pause":"Pause","on change":"sur le changement","control":"contr\xf4ler","Say It":"Say It","every hour at 0 minutes":"toutes les heures \xe0 0 minute","On script save or adapter start":"Lors de l\'enregistrement du script ou du d\xe9marrage de l\'adaptateur","equal to":"\xe9gal \xe0","Actual time of day":"Heure r\xe9elle de la journ\xe9e","with":"avec","Shell command":"Commande Shell","URL":"URL","Instance:":"Exemple:","Language:":"Langue:","Volume":"Le volume","Text:":"Texte:","undefined":"ind\xe9fini","Default":"D\xe9faut","You can use %s in the text to display current trigger value or %id to display the triggered object ID":"Vous pouvez utiliser %s dans le texte pour afficher la valeur de d\xe9clenchement actuelle, %id pour utiliser l\'ID de l\'objet d\xe9clench\xe9, %name pour afficher le nom de l\'ID de l\'objet d\xe9clench\xe9 ou %old pour utiliser l\'ancienne valeur de d\xe9clenchement","Instructions":"Instructions","You can use %s in the URL to use current trigger value or %id to use the triggered object ID":"Vous pouvez utiliser %s dans l\'URL pour utiliser la valeur de d\xe9clenchement actuelle, %id pour utiliser l\'ID de l\'objet d\xe9clench\xe9, %name pour afficher le nom de l\'ID de l\'objet d\xe9clench\xe9 ou %old pour utiliser l\'ancienne valeur de d\xe9clenchement","You can use %s in the value to use the current trigger value or %id to display the triggered object ID":"Vous pouvez utiliser %s dans la valeur pour utiliser la valeur de d\xe9clenchement actuelle, %id pour utiliser l\'ID de l\'objet d\xe9clench\xe9, %name pour afficher le nom de l\'ID de l\'objet d\xe9clench\xe9 ou %old pour utiliser l\'ancienne valeur de d\xe9clenchement","You can use %s in the command to use current trigger value or %id to use the triggered object ID":"Vous pouvez utiliser %s dans la commande pour utiliser la valeur de d\xe9clenchement actuelle, %id pour utiliser l\'ID de l\'objet d\xe9clench\xe9, %name pour afficher le nom de l\'ID de l\'objet d\xe9clench\xe9 ou %old pour utiliser l\'ancienne valeur de d\xe9clenchement","every":"chaque","with offset":"avec offset","on update":"sur mise \xe0 jour","update":"mettre \xe0 jour","Triggers the rule periodically or on some specific time":"D\xe9clenche la r\xe8gle p\xe9riodiquement ou \xe0 une heure pr\xe9cise","Triggers the on script saving or the javascript instance restart":"D\xe9clenche l\'enregistrement du script ou le red\xe9marrage de l\'instance javascript","Triggers the rule on update or change of some state":"D\xe9clenche la r\xe8gle sur la mise \xe0 jour ou le changement d\'un \xe9tat","Compares the state value with user defined value":"Compare la valeur d\'\xe9tat avec la valeur d\xe9finie par l\'utilisateur","Compares current time with the user specific time":"Compare l\'heure actuelle avec l\'heure sp\xe9cifique de l\'utilisateur","Compares current time with astrological event":"Compare l\'heure actuelle avec un \xe9v\xe9nement astronomique","Control or update some state":"Contr\xf4ler ou mettre \xe0 jour un \xe9tat","Executes some shell command":"Ex\xe9cute une commande shell","Make a HTTP get request":"Faire une requ\xeate HTTP Get","Print some text in log":"Imprimer du texte dans le journal","Make a pause between actions":"Faites une pause entre les actions","Say some text via sayit adapter":"Dites du texte via l\'adaptateur sayit","Telegram":"T\xe9l\xe9gramme","User:":"Utilisateur:","all":"tout","Sends message via telegram":"Envoie un message par t\xe9l\xe9gramme","Sends an email":"Envoie un e-mail","Send email":"Envoyer un e-mail","Sends message via pushover":"Envoie un message via pushover","Pushover":"Pushover","Sends message via whatsapp-cmb":"Envoie un message via whatsapp-cmb","Whatsapp-cmb":"Whatsapp-cmb","Sends message via Pushsafer":"Envoie un message via Pushsafer","Pushsafer":"Pushsafer","To:":"\xc0:","Subject:":"Sujet:","Body:":"Corps:","Title:":"Titre:","Sound:":"Sonner:","Priority:":"Priorit\xe9:","magic":"la magie","quiet":"calmer","normal":"Ordinaire","high-priority":"haute priorit\xe9","acknowledgment":"reconnaissance","Phone:":"T\xe9l\xe9phone:","(optional)":"(optionnel)","Vibration:":"Vibration:","lowest priority":"priorit\xe9 la plus basse","lower priority":"priorit\xe9 inf\xe9rieure","normal priority":"priorit\xe9 normale","high priority":"haute priorit\xe9","highest priority":"priorit\xe9 la plus \xe9lev\xe9e","default":"d\xe9faut","All":"Tout","Write your own code":"\xc9crivez votre propre code","User function":"Fonction utilisateur","This is advances option. You can write your own code here and it will be executed on trigger":"C\'est une option avanc\xe9e. Vous pouvez \xe9crire votre propre code ici et il sera ex\xe9cut\xe9 au d\xe9clenchement","greater than":"plus grand que","offset":"d\xe9calage","Function":"Fonction","greater or equal to":"sup\xe9rieur ou \xe9gal \xe0","less or equal to":"inf\xe9rieur ou \xe9gal \xe0","less than":"moins que","not equal to":"pas \xe9gal \xe0","[equal]":"[\xe9gal]","[greater or equal]":"[sup\xe9rieur ou \xe9gal]","[greater]":"[plus grand]","[less or equal]":"[inf\xe9rieur ou \xe9gal]","[less]":"[moins]","[not equal]":"[in\xe9gal]","[includes]":"[comprend]","[hysteresis]":"[hyst\xe9r\xe8se]","greater or equal":"sup\xe9rieur ou \xe9gal","less or equal":"inf\xe9rieur ou \xe9gal","includes":"comprend",".":".","()":"()","Mo":"Mo","Tu":"Tu","We":"3","Th":"4","Fr":"Fr","Sa":"Sa","Su":"Su","Control or update some state with delay":"Contr\xf4ler ou mettre \xe0 jour un \xe9tat avec un d\xe9lai","Delay":"Retard","ms":"ms","Set with delay":"Set avec retard","clear running":"course claire","toggle value":"valeur de bascule","Any month":"N\'importe quel mois","Any":"Tout","with date":"avec date","Date":"Date","Month":"Mois","Januar":"Janvier","Februar":"F\xe9vrier","March ":"mars","Condition":"\xc9tat","Limit":"Limite","The script will be stopped and must be activated manually after debugging. Continue?":"Le script sera arr\xeat\xe9 et doit \xeatre activ\xe9 manuellement apr\xe8s le d\xe9bogage. Continuez?","Yes":"Oui","Debug instance":"Instance de d\xe9bogage","Resume execution":"Reprendre l\'ex\xe9cution","Go to next line":"Aller \xe0 la ligne suivante","Step into function":"Entrez dans la fonction","Step out from function":"Sortez de la fonction","Stop on exception":"Arr\xeat sur exception","Console":"Console","Stack":"Stack","Pause execution":"Suspendre l\'ex\xe9cution","Simulate":"Simuler","Trigger with value":"D\xe9clencheur avec valeur","Value":"Valeur","Write":"\xc9crivez","Ack":"Reconnu","Start":"D\xe9but","Filter":"Filtre","Instances":"Instances","Triggered":"D\xe9clench\xe9","Function: executed":"Fonction\xa0: ex\xe9cut\xe9e","Operate two states":"Op\xe9rer deux \xe9tats","store in":"stocker dans","ID1":"ID1","ID2":"ID2","Operations with two states":"Op\xe9rations \xe0 deux \xe9tats","debug_label":"D\xe9boguer","debug_help":"Il s\'agit d\'un mode sp\xe9cial dans lequel les \xe9tats et les objets ne changeront pas. Mais seules les informations sur chaque changement pr\xe9vu seront affich\xe9es dans le protocole.","verbose_label":"Sorties de journal d\xe9taill\xe9es","verbose_help":"Ajoute une sortie de d\xe9bogage au journal pour de nombreuses commandes syst\xe8me","easy":"facile","for programmers":"pour les programmeurs","for professionals":"pour les professionnels","Duplicate name":"Nom en double","Empty name is not allowed":"Le nom vide n\'est pas autoris\xe9","Astrological events today":"\xc9v\xe9nements astrologiques aujourd\'hui","Show astrological events":"Afficher les \xe9v\xe9nements astrologiques","Time":"Temps","Description":"Description","nextSunrise":"Prochain lever de soleil","nextSunset":"Prochain coucher de soleil"}')},79399:function(e){e.exports=JSON.parse('{"-":"-","Add":"Inserisci","Add new script":"Aggiungi nuovo script","All files will be accepted":"Tutti i file saranno accettati","April":"aprile","Are you sure?":"Sei sicuro?","August":"agosto","Blockly description":"Creazione di regole tramite blocchi grafici","Cancel":"Annulla","Cannot delete non empty item!":"Impossibile eliminare l\'elemento non vuoto!","Change layout":"Cambia layout","Check blocks":"Controlla i blocchi","Check is not active, because javascript adapter is disabled":"Il controllo non \xe8 attivo perch\xe9 l\'adattatore Javascript \xe8 disabilitato","Clear search input":"Cancella input di ricerca","Click on this icon":"Clicca su questa icona","Close":"Vicino","Close all but current":"Chiudi tutto tranne corrente","Collapse all":"Comprimi tutto","Configuration not saved.":"Configurazione non salvata.","Convert blockly to javascript for ever.":"Converti istantaneamente a blocchi in Javascript.","Copy script":"Copia script","Copy to clipboard":"Copia negli appunti","Create new":"Creare nuovo","Create new folder":"Crea una nuova cartella","Create new script":"Crea nuovo script","Create or edit CRON or time wizard":"Crea o modifica la procedura guidata CRON o time","Dark Theme":"Tema scuro","Dark style":"Stile scuro","Debug options":"Opzioni di debug","December":"dicembre","Define cron...":"Definisci cron ...","Define schedule...":"Definisci programma ...","Delete":"Elimina","Delete %s":"Elimina %s ...","Delete folder":"Elimina cartella","Delete script":"Elimina script","Deselect all":"Deselezionare tutto","Discard changes for %s":"Annulla modifiche per %s","Done":"Fatto","Drop some files here or click...":"Trascina alcuni file qui o fai clic su ...","Edit script or just double click":"Modifica lo script o fai doppio clic","End search mode":"Termina la modalit\xe0 di ricerca","Error":"Errore","Error was found":"Errore trovato","Existing scripts will be overwritten.":"Gli script esistenti verranno sovrascritti.","Expand all":"Espandi tutto","Expert mode":"Modalit\xe0 esperto","Export":"Esportare","Export all scripts":"Esporta tutti gli script","Export blocks":"Esporta blocchi","Export selected blocks":"Esporta i blocchi selezionati","February":"febbraio","Folder":"Cartella","Friday":"Venerd\xec","Function editor":"Editor di funzioni","ID":"ID","Import":"Importare","Import blocks":"Importa blocchi","Import error":"Errore di importazione","Import scripts":"Importa script","Insert object ID":"Inserisci l\'ID oggetto","Instance":"Esempio","Instance is disabled":"L\'istanza \xe8 disabilitata","Invalid CRON":"CRON non valido","It will not be possible to revert this operation.":"Non sar\xe0 possibile ripristinare questa operazione.","JS description":"Creare regole scrivendo Javascript","January":"gennaio","July":"luglio","June":"giugno","Learn More":"Per saperne di pi\xf9","Light style":"Stile leggero","Locate file":"Localizza file","Log outputs":"Registra le uscite","March":"marzo","May":"Maggio","Menu":"Menu","Message":"Messaggio","Monday":"Lunedi","Name":"Nome","No active host found":"Nessun host attivo trovato","November":"novembre","October":"ottobre","Ok":"Ok","On weekdays":"Nei giorni della settimana","Pause script":"Metti in pausa lo script","Please select object ID...":"Seleziona l\'ID oggetto ...","Rename":"Rinominare","Reorder scripts in folders":"Riordina gli script nelle cartelle","Repeat":"Ripetere","Restart":"Ricomincia","Root folder":"Cartella root","Run script":"Esegui script","Saturday":"Sabato","Save":"Salva","Script":"copione","Script %s was modified on disk":"Lo script %s \xe8 stato modificato sul disco","Script is not running":"Lo script non \xe8 in esecuzione","Search in scripts":"Cerca negli script","Search...":"Ricerca...","Select all":"Seleziona tutto","September":"settembre","Show javascript code":"Mostra codice Javascript","Show only paused scripts":"Mostra solo script in pausa","Show only running scripts":"Mostra solo gli script in esecuzione","Show only scripts with problems":"Mostra solo script con problemi","Some files will be rejected":"Alcuni file verranno rifiutati","Sunday":"Domenica","TS description":"Creare regole scrivendo dattiloscritto","Thursday":"giovedi","Tuesday":"marted\xec","Unknown error":"Errore sconosciuto","Unknown error!":"Errore sconosciuto!","Wednesday":"mercoled\xec","Yet exists!":"Esiste ancora!","copy":"copia","file reading has failed: %s":"lettura file non riuscita: %s","file reading was aborted":"la lettura del file \xe8 stata interrotta","filter_func":"Funzione","filter_id":"ID","filter_name":"Nome","filter_role":"Ruolo","filter_room":"Camera","for edit or create script":"per modificare o creare un nuovo script","no blocks found":"Nessun blocco trovato","no group":"NESSUN GRUPPO","not properly connected":"Questo blocco non \xe8 correttamente collegato ad altri blocchi.","tooltip_ack":"Riconoscere","tooltip_from":"A partire dal","tooltip_lc":"Ultima modifica","tooltip_quality":"Qualit\xe0","tooltip_ts":"timestamp","tooltip_user":"Utente","tooltip_value":"Valore","use seconds":"usa i secondi","Save all":"Salva tutto","Change theme (actual \\"%s\\")":"Cambia tema (ora - \\"%s\\")","Hide logs":"Nascondi i registri","Show logs":"Mostra i log","Rules description":"Crea regole con i blocchi IF, THEN, ELSE","help_on_change":"Il codice verr\xe0 eseguito solo se il risultato della condizione cambia. Per esempio. se si attiva il valore del sensore di temperatura e la condizione \xe8 \\"se la temperatura \xe8 maggiore di 20 \xb0 C\\", le azioni \\"allora\\" verranno eseguite una volta quando la temperatura \xe8 superiore a 20. La prossima volta le azioni \\"allora\\" verranno eseguite quando la temperatura fallisce sotto 20 e poi sale di nuovo oltre 20.","help_just_check":"Il codice verr\xe0 eseguito solo ogni volta che la condizione \xe8 vera. Per esempio. se si attiva il valore del sensore di temperatura e la condizione \xe8 \\"se la temperatura \xe8 maggiore di 20 \xb0 C\\", le azioni \\"allora\\" verranno eseguite ogni volta che il sensore invia la temperatura e questa \xe8 superiore a 20 \xb0 C. Di 21 \xb0 C, di 22 \xb0 C e cos\xec via.","On condition change":"A condizione che cambino","Just check":"Controlla solamente","when":"quando","and":"e","then":"poi","or":"o","else":"altro","Nothing found":"Non abbiamo trovato nulla","reset search":"resetta la ricerca","Read only ID selected: %s":"ID di sola lettura selezionato: %s","OK":"OK","Triggers":"Trigger","cron":"CRON","wizard":"procedura guidata","interval":"intervallo","at":"a","astro":"astro","on condition change":"a cambio di condizione","just check":"controlla solamente","Explanation":"Spiegazione","seconds":"secondi","minutes":"minuti","hours":"ore","Every day":"Ogni giorno","milliseconds":"millisecondi","Copied":"Copiato","nadir":"nadir","nightEnd":"Fine della notte","nauticalDawn":"Alba nautica","dawn":"alba","sunrise":"Alba","sunriseEnd":"Fine dell\'alba","goldenHourEnd":"Fine dell\'ora d\'oro","solarNoon":"Mezzogiorno solare","goldenHour":"Ora d\'oro","sunsetStart":"Inizio del tramonto","sunset":"tramonto","dusk":"crepuscolo","nauticalDusk":"Crepuscolo nautico","night":"Notte","one":"uno","two":"Due","true":"vero","false":"falso","search":"ricerca","Actions":"Azioni","Conditions":"Condizioni","Schedule":"Programma","Start script":"Avvia script","State":"Stato","State condition":"Condizione dello stato","Time condition":"Condizione temporale","Astrological":"Astronomico","Set state action":"Imposta l\'azione dello stato","Exec":"Execshell","HTTP Call":"Chiamata HTTP","Log text":"Testo del registro","Pause":"Pausa","on change":"sul cambiamento","control":"controllo","Say It":"Say It","every hour at 0 minutes":"ogni ora a 0 minuti","On script save or adapter start":"Al salvataggio dello script o all\'avvio dell\'adattatore","equal to":"uguale a","Actual time of day":"Ora effettiva della giornata","with":"con","Shell command":"Comando Shell","URL":"URL","Instance:":"Esempio:","Language:":"Linguaggio:","Volume":"Volume","Text:":"Testo:","undefined":"non definito","Default":"Predefinito","You can use %s in the text to display current trigger value or %id to display the triggered object ID":"\xc8 possibile utilizzare %s nel testo per visualizzare il valore di trigger corrente, %id per utilizzare l\'ID dell\'oggetto attivato, %name per mostrare il nome dell\'ID dell\'oggetto attivato o %old per utilizzare il vecchio valore di trigger","Instructions":"Istruzioni","You can use %s in the URL to use current trigger value or %id to use the triggered object ID":"\xc8 possibile utilizzare %s nell\'URL per utilizzare il valore di trigger corrente, %id per utilizzare l\'ID dell\'oggetto attivato, %name per mostrare il nome dell\'ID dell\'oggetto attivato o %old per utilizzare il vecchio valore di trigger","You can use %s in the value to use the current trigger value or %id to display the triggered object ID":"\xc8 possibile utilizzare %s nel valore per utilizzare il valore di trigger corrente, %id per utilizzare l\'ID dell\'oggetto attivato, %name per mostrare il nome dell\'ID dell\'oggetto attivato o %old per utilizzare il vecchio valore di trigger","You can use %s in the command to use current trigger value or %id to use the triggered object ID":"\xc8 possibile utilizzare %s nel comando per utilizzare il valore di trigger corrente, %id per utilizzare l\'ID dell\'oggetto attivato, %name per mostrare il nome dell\'ID dell\'oggetto attivato o %old per utilizzare il vecchio valore di trigger","every":"ogni","with offset":"con offset","on update":"in aggiornamento","update":"aggiornare","Triggers the rule periodically or on some specific time":"Attiva la regola periodicamente o in un momento specifico","Triggers the on script saving or the javascript instance restart":"Attiva il salvataggio dello script o il riavvio dell\'istanza javascript","Triggers the rule on update or change of some state":"Attiva la regola in caso di aggiornamento o modifica di uno stato","Compares the state value with user defined value":"Confronta il valore dello stato con il valore definito dall\'utente","Compares current time with the user specific time":"Confronta l\'ora corrente con l\'ora specifica dell\'utente","Compares current time with astrological event":"Confronta l\'ora corrente con l\'evento astronomico","Control or update some state":"Controlla o aggiorna uno stato","Executes some shell command":"Esegue alcuni comandi della shell","Make a HTTP get request":"Effettua una richiesta get HTTP","Print some text in log":"Stampa del testo nel registro","Make a pause between actions":"Fai una pausa tra le azioni","Say some text via sayit adapter":"Pronuncia del testo tramite l\'adattatore sayit","Telegram":"Telegramma","User:":"Utente:","all":"tutti","Sends message via telegram":"Invia messaggio tramite telegramma","Sends an email":"Invia un\'e-mail","Send email":"Invia una email","Sends message via pushover":"Invia messaggio tramite pushover","Pushover":"Pushover","Sends message via whatsapp-cmb":"Invia messaggio tramite whatsapp-cmb","Whatsapp-cmb":"Whatsapp-cmb","Sends message via Pushsafer":"Invia messaggio tramite Pushsafer","Pushsafer":"Pushsafer","To:":"Per:","Subject:":"Soggetto:","Body:":"Corpo:","Title:":"Titolo:","Sound:":"Suono:","Priority:":"Priorit\xe0:","magic":"Magia","quiet":"silenzioso","normal":"normale","high-priority":"priorit\xe0 alta","acknowledgment":"riconoscimento","Phone:":"Telefono:","(optional)":"(opzionale)","Vibration:":"Vibrazione:","lowest priority":"priorit\xe0 pi\xf9 bassa","lower priority":"priorit\xe0 inferiore","normal priority":"priorit\xe0 normale","high priority":"priorit\xe0 alta","highest priority":"massima priorit\xe0","default":"predefinito","All":"Tutti","Write your own code":"Scrivi il tuo codice","User function":"Funzione utente","This is advances option. You can write your own code here and it will be executed on trigger":"Questa \xe8 un\'opzione anticipata. Puoi scrivere il tuo codice qui e verr\xe0 eseguito al trigger","greater than":"pi\xf9 grande di","offset":"compensare","Function":"Funzione","greater or equal to":"maggiore o uguale a","less or equal to":"minore o uguale a","less than":"meno di","not equal to":"non uguale a","[equal]":"[pari]","[greater or equal]":"[maggiore o uguale]","[greater]":"[maggiore]","[less or equal]":"[minore o uguale]","[less]":"[Di meno]","[not equal]":"[non uguale]","[includes]":"[include]","[hysteresis]":"[isteresi]","greater or equal":"maggiore o uguale","less or equal":"inferiore o uguale","includes":"include",".":".","()":"()","Mo":"Mo","Tu":"Tu","We":"3","Th":"4","Fr":"P","Sa":"Sa","Su":"Su","Control or update some state with delay":"Controlla o aggiorna uno stato con ritardo","Delay":"Ritardo","ms":"ms","Set with delay":"Impostato con ritardo","clear running":"chiara esecuzione","toggle value":"alterna valore","Any month":"Ogni mese","Any":"Qualunque","with date":"con data","Date":"Data","Month":"Mese","Januar":"Januar","Februar":"Februar","March ":"marzo","Condition":"Condizione","Limit":"Limite","The script will be stopped and must be activated manually after debugging. Continue?":"Lo script verr\xe0 interrotto e dovr\xe0 essere attivato manualmente dopo il debug. Continua?","Yes":"s\xec","Debug instance":"Istanza di debug","Resume execution":"Riprendi esecuzione","Go to next line":"Vai alla riga successiva","Step into function":"Entra in funzione","Step out from function":"Esci dalla funzione","Stop on exception":"Ferma in caso di eccezione","Console":"Console","Stack":"Stack","Pause execution":"Metti in pausa l\'esecuzione","Simulate":"Simulare","Trigger with value":"Trigger con valore","Value":"Valore","Write":"Scrivi","Ack":"Riconosciuto","Start":"Cominciare","Filter":"Filtro","Instances":"istanze","Triggered":"Innescato","Function: executed":"Funzione: eseguita","Operate two states":"Gestisci due stati","store in":"conservare in","ID1":"ID1","ID2":"ID2","Operations with two states":"Operazioni con due stati","debug_label":"Debug","debug_help":"Questa \xe8 una modalit\xe0 speciale in cui gli stati e gli oggetti non cambieranno. Ma nel protocollo verranno visualizzate solo le informazioni su ogni modifica pianificata.","verbose_label":"Output di log dettagliati","verbose_help":"Aggiunge l\'output di debug al registro per molti comandi di sistema","easy":"facile","for programmers":"per i programmatori","for professionals":"per i professionisti","Duplicate name":"Nome duplicato","Empty name is not allowed":"Il nome vuoto non \xe8 consentito","Astrological events today":"Eventi astrologici oggi","Show astrological events":"Mostra eventi astrologici","Time":"Tempo","Description":"Descrizione","nextSunrise":"Prossima alba","nextSunset":"Prossimo tramonto"}')},43573:function(e){e.exports=JSON.parse('{"-":"-","Add":"Toevoegen","Add new script":"Nieuw script toevoegen","All files will be accepted":"Alle bestanden worden geaccepteerd","April":"april","Are you sure?":"Weet je zeker dat?","August":"augustus","Blockly description":"Regels maken door grafische blokken","Cancel":"annuleren","Cannot delete non empty item!":"Kan niet leeg item niet verwijderen!","Change layout":"Opmaak veranderen","Check blocks":"Controleer blokken","Check is not active, because javascript adapter is disabled":"Controle is niet actief, omdat Javascript-adapter is uitgeschakeld","Clear search input":"Zoekopdracht wissen","Click on this icon":"Klik op dit pictogram","Close":"Dichtbij","Close all but current":"Alles sluiten behalve huidig","Collapse all":"Alles inklappen","Configuration not saved.":"Configuratie niet opgeslagen.","Convert blockly to javascript for ever.":"Converteer direct blockly naar Javascript.","Copy script":"Kopieer script","Copy to clipboard":"Kopieer naar klembord","Create new":"Maak nieuw","Create new folder":"Maak een nieuwe map","Create new script":"Maak een nieuw script","Create or edit CRON or time wizard":"Cre\xeber of bewerk CRON of tijdwizard","Dark Theme":"Donker thema","Dark style":"Donkere stijl","Debug options":"Foutopsporingsopties","December":"december","Define cron...":"Definieer cron ...","Define schedule...":"Definieer schema ...","Delete":"Verwijder","Delete %s":"%s verwijderen ...","Delete folder":"Verwijder map","Delete script":"Script verwijderen","Deselect all":"Deselecteer alles","Discard changes for %s":"Wijzigingen voor %s annuleren","Done":"Gedaan","Drop some files here or click...":"Zet hier enkele bestanden neer of klik op ...","Edit script or just double click":"Bewerk het script of dubbelklik erop","End search mode":"Zoekmodus be\xebindigen","Error":"Fout","Error was found":"Er is een fout gevonden","Existing scripts will be overwritten.":"Bestaande scripts worden overschreven.","Expand all":"Alles uitvouwen","Expert mode":"Expert modus","Export":"Exporteren","Export all scripts":"Exporteer alle scripts","Export blocks":"Blokken exporteren","Export selected blocks":"Exporteer geselecteerde blokken","February":"februari","Folder":"Map","Friday":"vrijdag","Function editor":"Functie-editor","ID":"ID kaart","Import":"Importeren","Import blocks":"Blokken importeren","Import error":"Importfout","Import scripts":"Scripts importeren","Insert object ID":"Object-ID invoegen","Instance":"Voorbeeld","Instance is disabled":"Exemplaar is uitgeschakeld","Invalid CRON":"Ongeldige CRON","It will not be possible to revert this operation.":"Het is niet mogelijk om deze bewerking terug te zetten.","JS description":"Regels maken door Javascript te schrijven","January":"januari","July":"juli","June":"juni","Learn More":"Leer meer","Light style":"Lichte stijl","Locate file":"Vind het bestand","Log outputs":"Log uitgangen","March":"maart","May":"mei","Menu":"Menu","Message":"Bericht","Monday":"maandag","Name":"Naam","No active host found":"Geen actieve host gevonden","November":"november","October":"oktober","Ok":"OK","On weekdays":"Op weekdagen","Pause script":"Pauzeer script","Please select object ID...":"Selecteer object-ID ...","Rename":"andere naam geven","Reorder scripts in folders":"Sorteer scripts in mappen opnieuw","Repeat":"Herhaling","Restart":"Herstarten","Root folder":"Hoofdmap","Run script":"Voer script uit","Saturday":"zaterdag","Save":"Opslaan","Script":"Script","Script %s was modified on disk":"Script %s is gewijzigd op schijf","Script is not running":"Script is niet actief","Search in scripts":"Zoeken in scripts","Search...":"Zoeken...","Select all":"Selecteer alles","September":"september","Show javascript code":"Javascript-code weergeven","Show only paused scripts":"Toon alleen onderbroken scripts","Show only running scripts":"Toon alleen actieve scripts","Show only scripts with problems":"Toon alleen scripts met problemen","Some files will be rejected":"Sommige bestanden worden geweigerd","Sunday":"zondag","TS description":"Regels maken door Typescript te schrijven","Thursday":"donderdag","Tuesday":"dinsdag","Unknown error":"Onbekende fout","Unknown error!":"Onbekende fout!","Wednesday":"woensdag","Yet exists!":"Toch bestaat!","copy":"kopi\xebren","file reading has failed: %s":"bestands lezen is mislukt: %s","file reading was aborted":"bestands lezen is afgebroken","filter_func":"Functie","filter_id":"ID kaart","filter_name":"Naam","filter_role":"Rol","filter_room":"Kamer","for edit or create script":"voor bewerken of een nieuw script maken","no blocks found":"Geen blokken gevonden","no group":"GEEN GROEP","not properly connected":"Dit blok is niet correct verbonden met andere blokken.","tooltip_ack":"Erkennen","tooltip_from":"Van","tooltip_lc":"Laatst gewijzigd","tooltip_quality":"Kwaliteit","tooltip_ts":"tijdstempel","tooltip_user":"Gebruiker","tooltip_value":"Waarde","use seconds":"gebruik seconden","Save all":"Sla alles op","Change theme (actual \\"%s\\")":"Thema wijzigen (nu - \\"%s\\")","Hide logs":"Verberg logboeken","Show logs":"Toon logboeken","Rules description":"Maak regels met IF, THEN, ELSE blokken","help_on_change":"De code wordt alleen uitgevoerd als het conditieresultaat verandert. Bijv. als de temperatuursensor wordt geactiveerd en de conditie is \\"als de temperatuur hoger is dan 20 \xb0 C\\", worden de \\"dan\\" -acties eenmaal uitgevoerd wanneer de temperatuur hoger is dan 20. De volgende keer worden de \\"dan\\" -acties uitgevoerd wanneer de temperatuur faalt onder de 20 en stijgt dan weer boven de 20.","help_just_check":"De code wordt alleen uitgevoerd als de voorwaarde waar is. Bijv. als het triggeren op de temperatuursensorwaarde en de conditie is \\"als de temperatuur hoger is dan 20 \xb0 C\\", zullen de \\"dan\\" acties worden uitgevoerd elke keer dat de sensor de temperatuur verzendt en deze hoger is dan 20 \xb0 C. Bij 21 \xb0 C, bij 22 \xb0 C enzovoort.","On condition change":"Op voorwaarde verandering","Just check":"Kijk maar","when":"wanneer","and":"en","then":"vervolgens","or":"of","else":"anders","Nothing found":"Niets gevonden","reset search":"reset zoeken","Read only ID selected: %s":"Alleen-lezen ID geselecteerd: %s","OK":"OK","Triggers":"Triggers","cron":"cron","wizard":"tovenaar","interval":"interval","at":"Bij","astro":"astro","on condition change":"op voorwaarde verandering","just check":"kijk maar","Explanation":"Uitleg","seconds":"seconden","minutes":"minuten","hours":"uren","Every day":"Elke dag","milliseconds":"milliseconden","Copied":"Gekopieerd","nadir":"nadir","nightEnd":"Einde van de nacht","nauticalDawn":"Nautische dageraad","dawn":"dageraad","sunrise":"zonsopkomst","sunriseEnd":"Einde zonsopgang","goldenHourEnd":"Einde van gouden uur","solarNoon":"Zonne-middag","goldenHour":"gouden uur","sunsetStart":"Begin van de zonsondergang","sunset":"zonsondergang","dusk":"schemer","nauticalDusk":"Nautische schemering","night":"nacht","one":"een","two":"twee","true":"waar","false":"false","search":"zoeken","Actions":"Acties","Conditions":"Voorwaarden","Schedule":"Schema","Start script":"Start het script","State":"Staat","State condition":"Staat staat","Time condition":"Tijdsvoorwaarde","Astrological":"Astronomisch","Set state action":"Stel statusactie in","Exec":"Exec shell","HTTP Call":"HTTP-oproep","Log text":"Log tekst","Pause":"Pauze","on change":"bij verandering","control":"controle","Say It":"Say It","every hour at 0 minutes":"elk uur op 0 minuten","On script save or adapter start":"Bij het opslaan van het script of het starten van de adapter","equal to":"gelijk aan","Actual time of day":"Werkelijke tijd van de dag","with":"met","Shell command":"Shell-opdracht","URL":"URL","Instance:":"Voorbeeld:","Language:":"Taal:","Volume":"Volume","Text:":"Tekst:","undefined":"ongedefinieerd","Default":"Standaard","You can use %s in the text to display current trigger value or %id to display the triggered object ID":"U kunt %s in de tekst gebruiken om de huidige triggerwaarde weer te geven, %id om de geactiveerde object-ID te gebruiken, %name om de geactiveerde object-ID-naam weer te geven of %old om de oude triggerwaarde te gebruiken","Instructions":"Instructies","You can use %s in the URL to use current trigger value or %id to use the triggered object ID":"U kunt %s in de URL gebruiken om de huidige triggerwaarde te gebruiken, %id om de geactiveerde object-ID te gebruiken, %name om de geactiveerde object-ID-naam te tonen of %old om de oude triggerwaarde te gebruiken","You can use %s in the value to use the current trigger value or %id to display the triggered object ID":"U kunt %s in de waarde gebruiken om de huidige triggerwaarde te gebruiken, %id om de geactiveerde object-ID te gebruiken, %name om de geactiveerde object-ID-naam te tonen of %old om de oude triggerwaarde te gebruiken","You can use %s in the command to use current trigger value or %id to use the triggered object ID":"U kunt %s in de opdracht gebruiken om de huidige triggerwaarde te gebruiken, %id om de getriggerde object-ID te gebruiken, %name om de getriggerde object-ID-naam te tonen of %old om de oude triggerwaarde te gebruiken","every":"elke","with offset":"met offset","on update":"bij update","update":"bijwerken","Triggers the rule periodically or on some specific time":"Activeert de regel periodiek of op een specifieke tijd","Triggers the on script saving or the javascript instance restart":"Activeert het opslaan van het script of het opnieuw opstarten van de JavaScript-instantie","Triggers the rule on update or change of some state":"Activeert de regel voor het bijwerken of wijzigen van een bepaalde staat","Compares the state value with user defined value":"Vergelijkt de statuswaarde met de door de gebruiker gedefinieerde waarde","Compares current time with the user specific time":"Vergelijkt de huidige tijd met de gebruikerspecifieke tijd","Compares current time with astrological event":"Vergelijkt de huidige tijd met een astronomische gebeurtenis","Control or update some state":"Beheer of update een bepaalde staat","Executes some shell command":"Voert een shell-commando uit","Make a HTTP get request":"Maak een HTTP-ophaalverzoek","Print some text in log":"Druk wat tekst af in het logboek","Make a pause between actions":"Pauzeer tussen acties","Say some text via sayit adapter":"Zeg wat tekst via de sayit-adapter","Telegram":"Telegram","User:":"Gebruiker:","all":"alle","Sends message via telegram":"Verzendt bericht via telegram","Sends an email":"Stuurt een e-mail","Send email":"E-mail verzenden","Sends message via pushover":"Stuurt bericht via pushover","Pushover":"Pushover","Sends message via whatsapp-cmb":"Stuurt bericht via whatsapp-cmb","Whatsapp-cmb":"Whatsapp-cmb","Sends message via Pushsafer":"Stuurt bericht via Pushsafer","Pushsafer":"Duwijzer","To:":"Naar:","Subject:":"Onderwerpen:","Body:":"Lichaam:","Title:":"Titel:","Sound:":"Geluid:","Priority:":"Prioriteit:","magic":"magie","quiet":"stil","normal":"normaal","high-priority":"hoge prioriteit","acknowledgment":"erkenning","Phone:":"Telefoon:","(optional)":"(optioneel)","Vibration:":"Trilling:","lowest priority":"laagste prioriteit","lower priority":"lagere prioriteit","normal priority":"normale prioriteit","high priority":"hoge prioriteit","highest priority":"hoogste prioriteit","default":"standaard","All":"Alle","Write your own code":"Schrijf je eigen code","User function":"Gebruikersfunctie","This is advances option. You can write your own code here and it will be executed on trigger":"Dit is een voorschotoptie. U kunt hier uw eigen code schrijven en deze wordt bij een trigger uitgevoerd","greater than":"groter dan","offset":"compensatie","Function":"Functie","greater or equal to":"groter of gelijk aan","less or equal to":"minder of gelijk aan","less than":"minder dan","not equal to":"niet gelijk aan","[equal]":"[Gelijk]","[greater or equal]":"[groter of gelijk]","[greater]":"[groter]","[less or equal]":"[minder of gelijk]","[less]":"[minder]","[not equal]":"[niet gelijk]","[includes]":"[inclusief]","[hysteresis]":"[hysterese]","greater or equal":"groter of gelijk","less or equal":"minder of gelijk","includes":"omvat",".":".","()":"()","Mo":"Ma","Tu":"Di","We":"3","Th":"4","Fr":"Vr","Sa":"Za","Su":"Zo","Control or update some state with delay":"Beheer of update een bepaalde staat met vertraging","Delay":"Vertraging","ms":"ms","Set with delay":"Met vertraging ingesteld","clear running":"duidelijk rennen","toggle value":"schakelwaarde","Any month":"Elke maand","Any":"Ieder","with date":"met datum","Date":"Datum","Month":"Maand","Januar":"Januar","Februar":"Februari","March ":"maart","Condition":"Staat","Limit":"Begrenzing","The script will be stopped and must be activated manually after debugging. Continue?":"Het script wordt gestopt en moet na het debuggen handmatig worden geactiveerd. Doorgaan met?","Yes":"Ja","Debug instance":"Debug-instantie","Resume execution":"Uitvoering hervatten","Go to next line":"Ga naar de volgende regel","Step into function":"Stap in functie","Step out from function":"Stap uit de functie","Stop on exception":"Stop bij uitzondering","Console":"Troosten","Stack":"Stack","Pause execution":"Uitvoering pauzeren","Simulate":"Simuleren","Trigger with value":"Trigger met waarde","Value":"Waarde","Write":"Schrijven","Ack":"Erkend","Start":"Begin","Filter":"Filter","Instances":"Instanties","Triggered":"Veroorzaakt","Function: executed":"Functie: uitgevoerd","Operate two states":"Bedien twee toestanden:","store in":"opslaan in","ID1":"ID1","ID2":"ID2","Operations with two states":"Bewerkingen met twee toestanden","debug_label":"Debuggen","debug_help":"Dit is een speciale modus waarin toestanden en objecten niet veranderen. Maar alleen informatie over elke geplande wijziging wordt in het protocol weergegeven.","verbose_label":"Uitgebreide log-uitgangen","verbose_help":"Voegt foutopsporingsuitvoer toe aan het logboek voor veel systeemopdrachten","easy":"eenvoudig","for programmers":"voor programmeurs","for professionals":"voor professionals","Duplicate name":"Dubbele naam","Empty name is not allowed":"Lege naam is niet toegestaan","Astrological events today":"Astrologische gebeurtenissen vandaag","Show astrological events":"Laat astrologische gebeurtenissen zien","Time":"Tijd","Description":"Beschrijving","nextSunrise":"Volgende zonsopgang","nextSunset":"Volgende zonsondergang"}')},28130:function(e){e.exports=JSON.parse('{"-":"-","Add":"Dodaj","Add new script":"Dodaj nowy skrypt","All files will be accepted":"Wszystkie pliki zostan\u0105 zaakceptowane","April":"kwiecie\u0144","Are you sure?":"Jeste\u015b pewny?","August":"sierpie\u0144","Blockly description":"Tworzenie regu\u0142 za pomoc\u0105 blok\xf3w graficznych","Cancel":"Anuluj","Cannot delete non empty item!":"Nie mo\u017cna usun\u0105\u0107 niepustego elementu!","Change layout":"Zmiana uk\u0142adu","Check blocks":"Sprawd\u017a bloki","Check is not active, because javascript adapter is disabled":"Sprawdzanie nie jest aktywne, poniewa\u017c adapter Javascript jest wy\u0142\u0105czony","Clear search input":"Wyczy\u015b\u0107 dane wyszukiwania","Click on this icon":"Kliknij t\u0119 ikon\u0119","Close":"Blisko","Close all but current":"Zamknij wszystkie opr\xf3cz bie\u017c\u0105cych","Collapse all":"Zwin\u0105\u0107 wszystkie","Configuration not saved.":"Konfiguracja nie zosta\u0142a zapisana.","Convert blockly to javascript for ever.":"Natychmiastowa konwersja blokowa do Javascript.","Copy script":"Skopiuj skrypt","Copy to clipboard":"Skopiuj do schowka","Create new":"Tworzy\u0107 nowe","Create new folder":"Stw\xf3rz nowy folder","Create new script":"Utw\xf3rz nowy skrypt","Create or edit CRON or time wizard":"Utw\xf3rz lub edytuj CRON lub kreator czasu","Dark Theme":"ciemny schemat","Dark style":"Ciemny styl","Debug options":"Opcje debugowania","December":"grudzie\u0144","Define cron...":"Zdefiniuj cron ...","Define schedule...":"Zdefiniuj harmonogram ...","Delete":"Usun\u0105\u0107","Delete %s":"Usu\u0144 %s ...","Delete folder":"Usuni\u0119ty folder","Delete script":"Usu\u0144 skrypt","Deselect all":"Odznacz wszystkie","Discard changes for %s":"Odrzu\u0107 zmiany dla %s","Done":"Gotowy","Drop some files here or click...":"Upu\u015b\u0107 niekt\xf3re pliki tutaj lub kliknij ...","Edit script or just double click":"Edytuj skrypt lub po prostu kliknij dwukrotnie","End search mode":"Zako\u0144cz tryb wyszukiwania","Error":"B\u0142\u0105d","Error was found":"B\u0142\u0105d zosta\u0142 znaleziony","Existing scripts will be overwritten.":"Istniej\u0105ce skrypty zostan\u0105 zast\u0105pione.","Expand all":"Rozwi\u0144 wszystkie","Expert mode":"Tryb ekspercki","Export":"Eksport","Export all scripts":"Wyeksportuj wszystkie skrypty","Export blocks":"Eksportuj bloki","Export selected blocks":"Eksportuj wybrane bloki","February":"luty","Folder":"Teczka","Friday":"pi\u0105tek","Function editor":"Edytor funkcji","ID":"ID","Import":"Import","Import blocks":"Importuj bloki","Import error":"B\u0142\u0105d importowania","Import scripts":"Importuj skrypty","Insert object ID":"Wstaw identyfikator obiektu","Instance":"Instancja","Instance is disabled":"Instancja jest wy\u0142\u0105czona","Invalid CRON":"Nieprawid\u0142owy CRON","It will not be possible to revert this operation.":"Cofni\u0119cie tej operacji nie b\u0119dzie mo\u017cliwe.","JS description":"Tworzenie regu\u0142 przez pisanie Javascript","January":"stycze\u0144","July":"lipiec","June":"czerwiec","Learn More":"Ucz si\u0119 wi\u0119cej","Light style":"Lekki styl","Locate file":"Znajd\u017a plik","Log outputs":"Dane wyj\u015bciowe dziennika","March":"Marsz","May":"Mo\u017ce","Menu":"Menu","Message":"Wiadomo\u015b\u0107","Monday":"poniedzia\u0142ek","Name":"Imi\u0119","No active host found":"Nie znaleziono aktywnego hosta","November":"listopad","October":"pa\u017adziernik","Ok":"Dobrze","On weekdays":"W dni powszednie","Pause script":"Wstrzymaj skrypt","Please select object ID...":"Wybierz identyfikator obiektu ...","Rename":"Przemianowa\u0107","Reorder scripts in folders":"Zmie\u0144 kolejno\u015b\u0107 skrypt\xf3w w folderach","Repeat":"Powtarza\u0107","Restart":"Uruchom ponownie","Root folder":"Folder g\u0142\xf3wny","Run script":"Uruchom skrypt","Saturday":"sobota","Save":"Zapisz","Script":"Scenariusz","Script %s was modified on disk":"Skrypt %s zosta\u0142 zmodyfikowany na dysku","Script is not running":"Skrypt nie dzia\u0142a","Search in scripts":"Szukaj w skryptach","Search...":"Szukaj...","Select all":"Zaznacz wszystko","September":"wrzesie\u0144","Show javascript code":"Poka\u017c kod JavaScript","Show only paused scripts":"Poka\u017c tylko wstrzymane skrypty","Show only running scripts":"Poka\u017c tylko dzia\u0142aj\u0105ce skrypty","Show only scripts with problems":"Poka\u017c tylko skrypty z problemami","Some files will be rejected":"Niekt\xf3re pliki zostan\u0105 odrzucone","Sunday":"niedziela","TS description":"Tworzenie regu\u0142 przez pisanie maszynopisu","Thursday":"czwartek","Tuesday":"wtorek","Unknown error":"Nieznany b\u0142\u0105d","Unknown error!":"Nieznany b\u0142\u0105d!","Wednesday":"\u015broda","Yet exists!":"A jednak istnieje!","copy":"Kopiuj","file reading has failed: %s":"odczyt pliku nie powi\xf3d\u0142 si\u0119: %s","file reading was aborted":"odczyt pliku zosta\u0142 przerwany","filter_func":"Funkcjonowa\u0107","filter_id":"ID","filter_name":"Imi\u0119","filter_role":"Rola","filter_room":"Pok\xf3j","for edit or create script":"do edycji lub utw\xf3rz nowy skrypt","no blocks found":"Nie znaleziono blok\xf3w","no group":"BRAK GRUPY","not properly connected":"Ten blok nie jest poprawnie pod\u0142\u0105czony do innych blok\xf3w.","tooltip_ack":"Uzna\u0107","tooltip_from":"Od","tooltip_lc":"Ostatnia zmiana","tooltip_quality":"Jako\u015b\u0107","tooltip_ts":"Znak czasu","tooltip_user":"U\u017cytkownik","tooltip_value":"Warto\u015b\u0107","use seconds":"u\u017cyj sekund","Save all":"Zapisz wszystko","Change theme (actual \\"%s\\")":"Zmie\u0144 motyw (teraz - \u201e%s\u201d)","Hide logs":"Ukryj dzienniki","Show logs":"Poka\u017c dzienniki","Rules description":"Tw\xf3rz regu\u0142y z blokami IF, THEN, ELSE","help_on_change":"Kod zostanie wykonany tylko wtedy, gdy wynik warunku ulegnie zmianie. Na przyk\u0142ad. je\u015bli wyzwalanie na warto\u015b\u0107 czujnika temperatury i warunek \u201eje\u015bli temperatura jest wy\u017csza ni\u017c 20 \xb0 C\u201d, to akcje \u201eto\u201d zostan\u0105 wykonane raz, gdy temperatura przekroczy 20. Nast\u0119pnym razem dzia\u0142ania \u201eto\u201d zostan\u0105 wykonane, gdy temperatura nie udaje si\u0119 poni\u017cej 20, a nast\u0119pnie ponownie wzrasta powy\u017cej 20.","help_just_check":"Kod zostanie wykonany tylko za ka\u017cdym razem, gdy warunek b\u0119dzie spe\u0142niony. Na przyk\u0142ad. je\u015bli wyzwalanie na warto\u015b\u0107 czujnika temperatury i warunek to \u201eje\u015bli temperatura jest wy\u017csza ni\u017c 20 \xb0 C\u201d, to dzia\u0142ania \u201eto\u201d b\u0119d\u0105 wykonywane za ka\u017cdym razem, gdy czujnik wy\u015ble temperatur\u0119 i jest powy\u017cej 20 \xb0 C. O 21 \xb0 C, o 22 \xb0 C i tak dalej.","On condition change":"W przypadku zmiany warunk\xf3w","Just check":"Po prostu sprawd\u017a","when":"gdy","and":"i","then":"nast\u0119pnie","or":"lub","else":"jeszcze","Nothing found":"Nic nie znaleziono","reset search":"zresetuj wyszukiwanie","Read only ID selected: %s":"Wybrano identyfikator tylko do odczytu: %s","OK":"OK","Triggers":"Wyzwalacze","cron":"CRON","wizard":"Wizard","interval":"interwa\u0142","at":"w","astro":"astro","on condition change":"pod warunkiem zmiany warunk\xf3w","just check":"po prostu sprawd\u017a","Explanation":"Wyja\u015bnienie","seconds":"sekundy","minutes":"minuty","hours":"godziny","Every day":"Codziennie","milliseconds":"milisekund","Copied":"Skopiowano","nadir":"nadir","nightEnd":"Koniec nocy","nauticalDawn":"\u017beglarski \u015bwit","dawn":"\u015bwit","sunrise":"wsch\xf3d s\u0142o\u0144ca","sunriseEnd":"Koniec wschodu s\u0142o\u0144ca","goldenHourEnd":"Koniec z\u0142otej godziny","solarNoon":"Po\u0142udnie s\u0142oneczne","goldenHour":"z\u0142ota godzina","sunsetStart":"Pocz\u0105tek zachodu s\u0142o\u0144ca","sunset":"zach\xf3d s\u0142o\u0144ca","dusk":"zmierzch","nauticalDusk":"\u017beglarski zmierzch","night":"Noc","one":"jeden","two":"dwa","true":"prawdziwe","false":"fa\u0142szywy","search":"Szukaj","Actions":"dzia\u0142ania","Conditions":"Warunki","Schedule":"Harmonogram","Start script":"Uruchom skrypt","State":"Stan","State condition":"Stan stanu","Time condition":"Warunek czasowy","Astrological":"Astronomiczny","Set state action":"Ustaw stan dzia\u0142ania","Exec":"Exec shell","HTTP Call":"Po\u0142\u0105czenie HTTP","Log text":"Tekst dziennika","Pause":"Pauza","on change":"na zmian\u0119","control":"kontrola","Say It":"Say It","every hour at 0 minutes":"co godzin\u0119 po 0 minutach","On script save or adapter start":"Podczas zapisywania skryptu lub uruchamiania adaptera","equal to":"r\xf3wny","Actual time of day":"Rzeczywista pora dnia","with":"z","Shell command":"Polecenie pow\u0142oki","URL":"URL","Instance:":"Instancja:","Language:":"J\u0119zyk:","Volume":"Tom","Text:":"Tekst:","undefined":"nieokre\u015blony","Default":"Domy\u015blna","You can use %s in the text to display current trigger value or %id to display the triggered object ID":"Mo\u017cesz u\u017cy\u0107 %s w tek\u015bcie, aby wy\u015bwietli\u0107 aktualn\u0105 warto\u015b\u0107 wyzwalaj\u0105c\u0105, %id, aby u\u017cy\u0107 identyfikatora wyzwolonego obiektu, %name, aby wy\u015bwietli\u0107 nazw\u0119 identyfikatora wyzwolonego obiektu lub %old, aby u\u017cy\u0107 starej warto\u015bci wyzwalaj\u0105cej","Instructions":"Instrukcje","You can use %s in the URL to use current trigger value or %id to use the triggered object ID":"Mo\u017cesz u\u017cy\u0107 %s w adresie URL, aby u\u017cy\u0107 bie\u017c\u0105cej warto\u015bci wyzwalacza, %id, aby u\u017cy\u0107 wyzwalanego identyfikatora obiektu, %name, aby wy\u015bwietli\u0107 nazw\u0119 identyfikatora wyzwalanego obiektu, lub %old, aby u\u017cy\u0107 starej warto\u015bci wyzwalacza","You can use %s in the value to use the current trigger value or %id to display the triggered object ID":"Mo\u017cesz u\u017cy\u0107 %s w warto\u015bci, aby u\u017cy\u0107 bie\u017c\u0105cej warto\u015bci wyzwalacza, %id, aby u\u017cy\u0107 identyfikatora wyzwalanego obiektu, %name, aby wy\u015bwietli\u0107 nazw\u0119 identyfikatora wyzwalanego obiektu, lub %old, aby u\u017cy\u0107 starej warto\u015bci wyzwalacza","You can use %s in the command to use current trigger value or %id to use the triggered object ID":"Mo\u017cesz u\u017cy\u0107 %s w poleceniu, aby u\u017cy\u0107 bie\u017c\u0105cej warto\u015bci wyzwalaj\u0105cej, %id, aby u\u017cy\u0107 identyfikatora wyzwalanego obiektu, %name, aby wy\u015bwietli\u0107 nazw\u0119 identyfikatora wyzwalanego obiektu, lub %old, aby u\u017cy\u0107 starej warto\u015bci wyzwalaj\u0105cej","every":"ka\u017cdy","with offset":"z przesuni\u0119ciem","on update":"po aktualizacji","update":"aktualizacja","Triggers the rule periodically or on some specific time":"Uruchamia regu\u0142\u0119 okresowo lub w okre\u015blonym czasie","Triggers the on script saving or the javascript instance restart":"Uruchamia zapisywanie skryptu lub restart instancji javascript","Triggers the rule on update or change of some state":"Uruchamia regu\u0142\u0119 przy aktualizacji lub zmianie jakiego\u015b stanu","Compares the state value with user defined value":"Por\xf3wnuje warto\u015b\u0107 stanu z warto\u015bci\u0105 zdefiniowan\u0105 przez u\u017cytkownika","Compares current time with the user specific time":"Por\xf3wnuje aktualny czas z czasem okre\u015blonym przez u\u017cytkownika","Compares current time with astrological event":"Por\xf3wnuje aktualny czas z wydarzeniem astronomicznym","Control or update some state":"Kontroluj lub aktualizuj stan","Executes some shell command":"Wykonuje polecenie pow\u0142oki","Make a HTTP get request":"Z\u0142\xf3\u017c \u017c\u0105danie HTTP get","Print some text in log":"Wydrukuj tekst w dzienniku","Make a pause between actions":"Zr\xf3b przerw\u0119 mi\u0119dzy czynno\u015bciami","Say some text via sayit adapter":"Powiedz tekst przez adapter Sayit","Telegram":"Telegram","User:":"U\u017cytkownik:","all":"wszystko","Sends message via telegram":"Wysy\u0142a wiadomo\u015b\u0107 telegramem","Sends an email":"Wysy\u0142a e-mail","Send email":"Wys\u0142a\u0107 email","Sends message via pushover":"Wysy\u0142a wiadomo\u015b\u0107 przez pushover","Pushover":"\u0141atwizna","Sends message via whatsapp-cmb":"Wysy\u0142a wiadomo\u015b\u0107 przez WhatsApp-cmb","Whatsapp-cmb":"Whatsapp-cmb","Sends message via Pushsafer":"Wysy\u0142a wiadomo\u015b\u0107 przez Pushsafer","Pushsafer":"Pushsafer","To:":"Do:","Subject:":"Przedmiot:","Body:":"Cia\u0142o:","Title:":"Tytu\u0142:","Sound:":"D\u017awi\u0119k:","Priority:":"Priorytet:","magic":"magia","quiet":"cichy","normal":"normalna","high-priority":"wysoki priorytet","acknowledgment":"potwierdzenie","Phone:":"Telefon:","(optional)":"(opcjonalny)","Vibration:":"Wibracja:","lowest priority":"najni\u017cszy priorytet","lower priority":"ni\u017cszy priorytet","normal priority":"normalny priorytet","high priority":"wysoki priorytet","highest priority":"najwy\u017cszy priorytet","default":"domy\u015blna","All":"Wszystko","Write your own code":"Napisz sw\xf3j w\u0142asny kod","User function":"Funkcja u\u017cytkownika","This is advances option. You can write your own code here and it will be executed on trigger":"To jest opcja zaawansowana. Mo\u017cesz tutaj napisa\u0107 w\u0142asny kod, kt\xf3ry zostanie wykonany po wyzwoleniu","greater than":"Lepszy ni\u017c","offset":"offsetowy","Function":"Funkcjonowa\u0107","greater or equal to":"wi\u0119ksze lub r\xf3wne","less or equal to":"mniejszy lub r\xf3wny","less than":"mniej ni\u017c","not equal to":"nie r\xf3wna si\u0119","[equal]":"[r\xf3wny]","[greater or equal]":"[wi\u0119ksze lub r\xf3wne]","[greater]":"[wi\u0119kszy]","[less or equal]":"[mniejszy lub r\xf3wny]","[less]":"[mniej]","[not equal]":"[nie r\xf3wne]","[includes]":"[obejmuje]","[hysteresis]":"[histereza]","greater or equal":"wi\u0119ksze lub r\xf3wne","less or equal":"mniejszy lub r\xf3wny","includes":"zawiera",".":".","()":"()","Mo":"Mo","Tu":"Tu","We":"3","Th":"4","Fr":"Ks","Sa":"Sa","Su":"Su","Control or update some state with delay":"Kontroluj lub aktualizuj jaki\u015b stan z op\xf3\u017anieniem","Delay":"Op\xf3\u017anienie","ms":"ms","Set with delay":"Ustaw z op\xf3\u017anieniem","clear running":"czysty bieg","toggle value":"warto\u015b\u0107 prze\u0142\u0105czania","Any month":"Dowolny miesi\u0105c","Any":"Ka\u017cdy","with date":"z dat\u0105","Date":"Data","Month":"Miesi\u0105c","Januar":"Januar","Februar":"Februar","March ":"Marzec ","Condition":"Stan: schorzenie","Limit":"Limit","The script will be stopped and must be activated manually after debugging. Continue?":"Skrypt zostanie zatrzymany i nale\u017cy go aktywowa\u0107 r\u0119cznie po debugowaniu. Kontyntynuj?","Yes":"tak","Debug instance":"Debuguj instancj\u0119","Resume execution":"Wzn\xf3w wykonanie","Go to next line":"Przejd\u017a do nast\u0119pnej linii","Step into function":"Wejd\u017a do funkcji","Step out from function":"Wyjd\u017a z funkcji","Stop on exception":"Zatrzymaj si\u0119 na wyj\u0105tku","Console":"Konsola","Stack":"Stack","Pause execution":"Wstrzymaj wykonanie","Simulate":"Symulowa\u0107","Trigger with value":"Wyzwalacz z warto\u015bci\u0105","Value":"Warto\u015b\u0107","Write":"Pisa\u0107","Ack":"Potwierdzony","Start":"Pocz\u0105tek","Filter":"Filtr","Instances":"Instancje","Triggered":"Rozsierdzony","Function: executed":"Funkcja: wykonywana","Operate two states":"Obs\u0142uguj dwa stany","store in":"przechowywa\u0107","ID1":"ID1","ID2":"ID2","Operations with two states":"Operacje z dwoma stanami","debug_label":"Odpluskwi\u0107","debug_help":"Jest to specjalny tryb, w kt\xf3rym stany i obiekty si\u0119 nie zmieniaj\u0105. Jednak w protokole b\u0119d\u0105 wy\u015bwietlane tylko informacje o ka\u017cdej planowanej zmianie.","verbose_label":"Pe\u0142ne dane wyj\u015bciowe dziennika","verbose_help":"Dodaje wyniki debugowania do dziennika dla wielu polece\u0144 systemowych","easy":"\u0142atwy","for programmers":"dla programist\xf3w","for professionals":"dla profesjonalist\xf3w","Duplicate name":"Duplikat nazwy","Empty name is not allowed":"Pusta nazwa jest niedozwolona","Astrological events today":"Dzisiejsze wydarzenia astrologiczne","Show astrological events":"Poka\u017c wydarzenia astrologiczne","Time":"Czas","Description":"Opis","nextSunrise":"Nast\u0119pny wsch\xf3d s\u0142o\u0144ca","nextSunset":"Nast\u0119pny zach\xf3d s\u0142o\u0144ca"}')},65909:function(e){e.exports=JSON.parse('{"-":"-","Add":"Adicionar","Add new script":"Adicionar novo script","All files will be accepted":"Todos os arquivos ser\xe3o aceitos","April":"abril","Are you sure?":"Voc\xea tem certeza?","August":"agosto","Blockly description":"Criando regras por blocos gr\xe1ficos","Cancel":"Cancelar","Cannot delete non empty item!":"N\xe3o pode ser deletar, porque n\xe3o est\xe1 vazio!","Change layout":"Alterar layout","Check blocks":"Verificar blocos","Check is not active, because javascript adapter is disabled":"A verifica\xe7\xe3o de sintaxe n\xe3o est\xe1 ativa porque o adaptador javascript n\xe3o est\xe1 rodando.","Clear search input":"Limpar entrada de pesquisa","Click on this icon":"Clique neste \xedcone","Close":"Fechar","Close all but current":"Fechar tudo, menos atual","Collapse all":"Recolher todos","Configuration not saved.":"Configura\xe7\xe3o n\xe3o esta salva.","Convert blockly to javascript for ever.":"Converter Blockly em Javascript permanentemente.","Copy script":"Copiar script","Copy to clipboard":"Copiar para \xe1rea de transfer\xeancia","Create new":"Crie um novo","Create new folder":"Criar nova pasta","Create new script":"Criar novo script","Create or edit CRON or time wizard":"Criar ou editar o assistente cron ou o assistente de hor\xe1rio","Dark Theme":"Layout escuro","Dark style":"Estilo escuro","Debug options":"Op\xe7\xf5es de depura\xe7\xe3o","December":"dezembro","Define cron...":"Definir cron...","Define schedule...":"Definir agendamento ...","Delete":"Deletar","Delete %s":"Deletar %s...","Delete folder":"Deletar pasta","Delete script":"Deletar script","Deselect all":"Desmarcar todos","Discard changes for %s":"Descartar altera\xe7\xf5es para %s","Done":"Pronto","Drop some files here or click...":"Solte alguns arquivos aqui ou clique em...","Edit script or just double click":"Edite o script ou clique duas vezes","End search mode":"Finalizar modo de pesquisa","Error":"Erro","Error was found":"Erro foi encontrado","Existing scripts will be overwritten.":"Os scripts existentes ser\xe3o substitu\xeddos.","Expand all":"Expandir todos","Expert mode":"Modo de especialista","Export":"Exporta\xe7\xe3o","Export all scripts":"Exportar todos os scripts","Export blocks":"Exportar blocos","Export selected blocks":"Exportar blocos selecionados","February":"fevereiro","Folder":"Pasta","Friday":"Sexta-feira","Function editor":"Editor de fun\xe7\xf5es","ID":"ID","Import":"Importar","Import blocks":"Importar blocos","Import error":"Erro de importa\xe7\xe3o","Import scripts":"Importar script","Insert object ID":"Inserir ID do objeto","Instance":"Inst\xe2ncia","Instance is disabled":"Inst\xe2ncia est\xe1 desativada","Invalid CRON":"CRON inv\xe1lido","It will not be possible to revert this operation.":"N\xe3o ser\xe1 poss\xedvel reverter esta opera\xe7\xe3o.","JS description":"Criando regras escrevendo Javascript","January":"janeiro","July":"julho","June":"junho","Learn More":"Aprender mais","Light style":"Estilo claro","Locate file":"Localize o arquivo","Log outputs":"Sa\xeddas de log","March":"mar\xe7o","May":"maio","Menu":"Menu","Message":"mensagem","Monday":"Segunda-feira","Name":"Nome","No active host found":"Nenhum host ativo encontrado","November":"novembro","October":"outubro","Ok":"Ok","On weekdays":"Nos dias \xfateis","Pause script":"Pausar script","Please select object ID...":"Selecione o ID do objeto...","Rename":"Renomear","Reorder scripts in folders":"Reordenar scripts em pastas","Repeat":"Repetir","Restart":"Reiniciar","Root folder":"Pasta principal","Run script":"Executar script","Saturday":"S\xe1bado","Save":"Salve","Script":"Script","Script %s was modified on disk":"O script \\"%s\\" foi modificado no disco r\xedgido","Script is not running":"Script n\xe3o est\xe1 sendo executado","Search in scripts":"Pesquisa em scripts","Search...":"Procurar...","Select all":"Selecionar tudo","September":"setembro","Show javascript code":"Mostrar c\xf3digo Javascript","Show only paused scripts":"Mostrar apenas scripts pausados","Show only running scripts":"Mostrar apenas scripts em execu\xe7\xe3o","Show only scripts with problems":"Mostrar apenas scripts com problemas","Some files will be rejected":"Alguns arquivos ser\xe3o rejeitados","Sunday":"Domingo","TS description":"Criando regras escrevendo Typecript","Thursday":"Quinta-feira","Tuesday":"ter\xe7a","Unknown error":"Erro desconhecido","Unknown error!":"Erro desconhecido!","Wednesday":"quarta","Yet exists!":"Ainda existe!","copy":"copiar","file reading has failed: %s":"a leitura do arquivo falhou: %s","file reading was aborted":"a leitura do arquivo foi abortada","filter_func":"Fun\xe7\xe3o","filter_id":"ID","filter_name":"Nome","filter_role":"Tipo","filter_room":"Quarto","for edit or create script":"para editar ou criar um novo script","no blocks found":"Nenhum bloco encontrado","no group":"SEM GRUPO","not properly connected":"Este bloco n\xe3o est\xe1 conectado corretamente com outros blocos.","tooltip_ack":"reconhecer","tooltip_from":"de","tooltip_lc":"\xdaltima altera\xe7\xe3o","tooltip_quality":"Qualidade","tooltip_ts":"timestamp","tooltip_user":"usu\xe1rio","tooltip_value":"valor","use seconds":"use segundos","Save all":"Salvar tudo","Change theme (actual \\"%s\\")":"Alterar tema (agora - \\"%s\\")","Hide logs":"Ocultar logs","Show logs":"Mostrar logs","Rules description":"Crie regras com blocos IF, THEN, ELSE","help_on_change":"O c\xf3digo ser\xe1 executado apenas se o resultado da condi\xe7\xe3o mudar. Por exemplo. se disparar no valor do sensor de temperatura e a condi\xe7\xe3o for \\"se a temperatura for maior que 20 \xb0 C\\", as a\xe7\xf5es \\"ent\xe3o\\" ser\xe3o executadas uma vez quando a temperatura estiver acima de 20. Na pr\xf3xima vez, as a\xe7\xf5es \\"ent\xe3o\\" ser\xe3o executadas quando a temperatura falha abaixo de 20 e sobe acima de 20 novamente.","help_just_check":"O c\xf3digo ser\xe1 executado apenas sempre que a condi\xe7\xe3o for verdadeira. Por exemplo. se disparar no valor do sensor de temperatura e a condi\xe7\xe3o for \\"se a temperatura for maior que 20 \xb0 C\\", as a\xe7\xf5es \\"ent\xe3o\\" ser\xe3o executadas toda vez que o sensor enviar a temperatura e ela estiver acima de 20 \xb0 C. Por 21 \xb0 C, por 22 \xb0 C e assim por diante.","On condition change":"Na mudan\xe7a de condi\xe7\xe3o","Just check":"Apenas verifique","when":"quando","and":"e","then":"ent\xe3o","or":"ou","else":"outro","Nothing found":"Nada encontrado","reset search":"redefinir pesquisa","Read only ID selected: %s":"ID somente leitura selecionada: %s","OK":"OK","Triggers":"Gatilhos","cron":"CRON","wizard":"Wizard","interval":"intervalo","at":"no","astro":"astro","on condition change":"na mudan\xe7a de condi\xe7\xe3o","just check":"Apenas verifique","Explanation":"Explica\xe7\xe3o","seconds":"segundos","minutes":"minutos","hours":"horas","Every day":"Todos os dias","milliseconds":"milissegundos","Copied":"Copiado","nadir":"nadir","nightEnd":"Fim de noite","nauticalDawn":"Madrugada n\xe1utica","dawn":"alvorecer","sunrise":"nascer do sol","sunriseEnd":"Fim do nascer do sol","goldenHourEnd":"Fim da hora de ouro","solarNoon":"Meio-dia solar","goldenHour":"Hora dourada","sunsetStart":"Come\xe7o do p\xf4r do sol","sunset":"p\xf4r do sol","dusk":"Crep\xfasculo","nauticalDusk":"Crep\xfasculo n\xe1utico","night":"Noite","one":"1","two":"dois","true":"verdade","false":"falso","search":"procurar","Actions":"A\xe7\xf5es","Conditions":"Condi\xe7\xf5es","Schedule":"Cronograma","Start script":"Iniciar script","State":"Estado","State condition":"Condi\xe7\xe3o de estado","Time condition":"Condi\xe7\xe3o de tempo","Astrological":"Astron\xf4mico","Set state action":"Definir a\xe7\xe3o de estado","Exec":"Exec shell","HTTP Call":"Chamada HTTP","Log text":"Texto de registro","Pause":"Pausa","on change":"em mudan\xe7a","control":"ao controle","Say It":"Say It","every hour at 0 minutes":"a cada hora em 0 minutos","On script save or adapter start":"Ao salvar o script ou iniciar o adaptador","equal to":"igual a","Actual time of day":"Hora real do dia","with":"com","Shell command":"Comando shell","URL":"URL","Instance:":"Inst\xe2ncia:","Language:":"L\xedngua:","Volume":"Volume","Text:":"Texto:","undefined":"Indefinido","Default":"Predefini\xe7\xe3o","You can use %s in the text to display current trigger value or %id to display the triggered object ID":"Voc\xea pode usar %s no texto para exibir o valor do acionador atual, %id para usar o ID do objeto acionado, %name para mostrar o nome do ID do objeto acionado ou %old para usar o valor do acionador antigo","Instructions":"Instru\xe7\xf5es","You can use %s in the URL to use current trigger value or %id to use the triggered object ID":"Voc\xea pode usar %s na URL para usar o valor do gatilho atual, %id para usar o ID do objeto acionado, %name para mostrar o nome do ID do objeto acionado ou %old para usar o valor do gatilho antigo","You can use %s in the value to use the current trigger value or %id to display the triggered object ID":"Voc\xea pode usar %s no valor para usar o valor do acionador atual, %id para usar o ID do objeto acionado, %name para mostrar o nome do ID do objeto acionado ou %old para usar o valor do acionador antigo","You can use %s in the command to use current trigger value or %id to use the triggered object ID":"Voc\xea pode usar %s no comando para usar o valor do acionador atual, %id para usar o ID do objeto acionado, %name para mostrar o nome do ID do objeto acionado ou %old para usar o valor do acionador antigo","every":"cada","with offset":"com deslocamento","on update":"em atualiza\xe7\xe3o","update":"atualizar","Triggers the rule periodically or on some specific time":"Aciona a regra periodicamente ou em algum momento espec\xedfico","Triggers the on script saving or the javascript instance restart":"Aciona o salvamento do script ou a reinicializa\xe7\xe3o da inst\xe2ncia javascript","Triggers the rule on update or change of some state":"Aciona a regra na atualiza\xe7\xe3o ou mudan\xe7a de algum estado","Compares the state value with user defined value":"Compara o valor do estado com o valor definido pelo usu\xe1rio","Compares current time with the user specific time":"Compara a hora atual com a hora espec\xedfica do usu\xe1rio","Compares current time with astrological event":"Compara a hora atual com o evento astron\xf4mico","Control or update some state":"Controlar ou atualizar algum estado","Executes some shell command":"Executa algum comando shell","Make a HTTP get request":"Fa\xe7a uma solicita\xe7\xe3o HTTP get","Print some text in log":"Imprimir algum texto no log","Make a pause between actions":"Fa\xe7a uma pausa entre as a\xe7\xf5es","Say some text via sayit adapter":"Diga algum texto atrav\xe9s do adaptador sayit","Telegram":"Telegrama","User:":"Do utilizador:","all":"todos","Sends message via telegram":"Envia mensagem via telegrama","Sends an email":"Envia um email","Send email":"Enviar email","Sends message via pushover":"Envia mensagem via pushover","Pushover":"Pushover","Sends message via whatsapp-cmb":"Envia mensagem via whatsapp-cmb","Whatsapp-cmb":"Whatsapp-cmb","Sends message via Pushsafer":"Envia mensagem via Pushsafer","Pushsafer":"Pushsafer","To:":"Para:","Subject:":"Sujeito:","Body:":"Corpo:","Title:":"T\xedtulo:","Sound:":"Som:","Priority:":"Prioridade:","magic":"Magia","quiet":"quieto","normal":"normal","high-priority":"prioridade m\xe1xima","acknowledgment":"reconhecimento","Phone:":"Telefone:","(optional)":"(opcional)","Vibration:":"Vibra\xe7\xe3o:","lowest priority":"prioridade mais baixa","lower priority":"prioridade mais baixa","normal priority":"prioridade normal","high priority":"prioridade m\xe1xima","highest priority":"Prioridade m\xe1xima","default":"predefini\xe7\xe3o","All":"Todos","Write your own code":"Escreva seu pr\xf3prio c\xf3digo","User function":"Fun\xe7\xe3o do usu\xe1rio","This is advances option. You can write your own code here and it will be executed on trigger":"Esta \xe9 a op\xe7\xe3o de avan\xe7os. Voc\xea pode escrever seu pr\xf3prio c\xf3digo aqui e ele ser\xe1 executado no gatilho","greater than":"Maior que","offset":"Deslocamento","Function":"Fun\xe7\xe3o","greater or equal to":"maior ou igual a","less or equal to":"menor ou igual a","less than":"Menor que","not equal to":"n\xe3o \xe9 igual a","[equal]":"[igual]","[greater or equal]":"[maior ou igual]","[greater]":"[maior]","[less or equal]":"[menor ou igual]","[less]":"[menos]","[not equal]":"[n\xe3o igual]","[includes]":"[inclui]","[hysteresis]":"[histerese]","greater or equal":"maior ou igual","less or equal":"menor ou igual","includes":"inclui",".":".","()":"()","Mo":"Mo","Tu":"Tu","We":"3","Th":"4","Fr":"Fr","Sa":"S\xe1","Su":"Su","Control or update some state with delay":"Controlar ou atualizar algum estado com atraso","Delay":"Atraso","ms":"ms","Set with delay":"Definido com atraso","clear running":"corrida limpa","toggle value":"valor de altern\xe2ncia","Any month":"Qualquer m\xeas","Any":"Nenhum","with date":"com data","Date":"Encontro","Month":"M\xeas","Januar":"Januar","Februar":"Februar","March ":"Mar\xe7o","Condition":"Doen\xe7a","Limit":"Limite","The script will be stopped and must be activated manually after debugging. Continue?":"O script ser\xe1 interrompido e deve ser ativado manualmente ap\xf3s a depura\xe7\xe3o. Continuar?","Yes":"sim","Debug instance":"Inst\xe2ncia de depura\xe7\xe3o","Resume execution":"Retomar execu\xe7\xe3o","Go to next line":"V\xe1 para a pr\xf3xima linha","Step into function":"Entre na fun\xe7\xe3o","Step out from function":"Saia da fun\xe7\xe3o","Stop on exception":"Pare na exce\xe7\xe3o","Console":"Console","Stack":"Pilha","Pause execution":"Pausar a execu\xe7\xe3o","Simulate":"Simular","Trigger with value":"Trigger com valor","Value":"Valor","Write":"Escrever","Ack":"Reconhecido","Start":"Come\xe7ar","Filter":"Filtro","Instances":"Inst\xe2ncias","Triggered":"Provocado","Function: executed":"Fun\xe7\xe3o: executado","Operate two states":"Operar dois estados","store in":"armazenar em","ID1":"ID1","ID2":"ID2","Operations with two states":"Opera\xe7\xf5es com dois estados","debug_label":"Depurar","debug_help":"Este \xe9 um modo especial no qual estados e objetos n\xe3o ser\xe3o alterados. Mas apenas as informa\xe7\xf5es sobre cada mudan\xe7a planejada ser\xe3o exibidas no protocolo.","verbose_label":"Sa\xeddas de log detalhadas","verbose_help":"Adiciona sa\xedda de depura\xe7\xe3o ao log para muitos comandos do sistema","easy":"f\xe1cil","for programmers":"para programadores","for professionals":"para profissionais","Duplicate name":"Nome duplicado","Empty name is not allowed":"Nome vazio n\xe3o \xe9 permitido","Astrological events today":"Eventos astrol\xf3gicos hoje","Show astrological events":"Mostrar eventos astrol\xf3gicos","Time":"Tempo","Description":"Descri\xe7\xe3o","nextSunrise":"pr\xf3ximo nascer do sol","nextSunset":"Pr\xf3ximo p\xf4r do sol"}')},50482:function(e){e.exports=JSON.parse('{"-":"-","Add":"\u0414\u043e\u0431\u0430\u0432\u0438\u0442\u044c","Add new script":"\u0414\u043e\u0431\u0430\u0432\u0438\u0442\u044c \u043d\u043e\u0432\u044b\u0439 \u0441\u043a\u0440\u0438\u043f\u0442","All files will be accepted":"\u0412\u0441\u0435 \u0444\u0430\u0439\u043b\u044b \u0431\u0443\u0434\u0443\u0442 \u043f\u0440\u0438\u043d\u044f\u0442\u044b","April":"\u0410\u043f\u0440\u0435\u043b\u044c","Are you sure?":"\u0412\u044b \u0443\u0432\u0435\u0440\u0435\u043d\u044b?","August":"\u0410\u0432\u0433\u0443\u0441\u0442","Blockly description":"\u0421\u043e\u0437\u0434\u0430\u043d\u0438\u0435 \u043f\u0440\u0430\u0432\u0438\u043b \u0433\u0440\u0430\u0444\u0438\u0447\u0435\u0441\u043a\u0438\u043c\u0438 \u0431\u043b\u043e\u043a\u0430\u043c\u0438","Cancel":"\u041e\u0442\u043c\u0435\u043d\u0430","Cannot delete non empty item!":"\u041d\u0435 \u0443\u0434\u0430\u0435\u0442\u0441\u044f \u0443\u0434\u0430\u043b\u0438\u0442\u044c \u043d\u0435\u043f\u0443\u0441\u0442\u043e\u0439 \u044d\u043b\u0435\u043c\u0435\u043d\u0442!","Change layout":"\u0418\u0437\u043c\u0435\u043d\u0438\u0442\u044c \u043c\u0430\u043a\u0435\u0442","Check blocks":"\u041f\u0440\u043e\u0432\u0435\u0440\u0438\u0442\u044c \u0431\u043b\u043e\u043a\u0438","Check is not active, because javascript adapter is disabled":"\u041f\u0440\u043e\u0432\u0435\u0440\u043a\u0430 \u043d\u0435\u0430\u043a\u0442\u0438\u0432\u043d\u0430, \u043f\u043e\u0442\u043e\u043c\u0443 \u0447\u0442\u043e \u0430\u0434\u0430\u043f\u0442\u0435\u0440 Javascript \u043e\u0442\u043a\u043b\u044e\u0447\u0435\u043d","Clear search input":"\u041e\u0447\u0438\u0441\u0442\u0438\u0442\u044c \u0432\u0432\u043e\u0434","Click on this icon":"\u041d\u0430\u0436\u043c\u0438\u0442\u0435 \u043d\u0430 \u044d\u0442\u043e\u0442 \u0437\u043d\u0430\u0447\u043e\u043a","Close":"\u0417\u0430\u043a\u0440\u044b\u0442\u044c","Close all but current":"\u0417\u0430\u043a\u0440\u044b\u0442\u044c \u0432\u0441\u0435 \u043a\u0440\u043e\u043c\u0435 \u0442\u0435\u043a\u0443\u0449\u0435\u0433\u043e","Collapse all":"\u0421\u0432\u0435\u0440\u043d\u0443\u0442\u044c \u0432\u0441\u0435","Configuration not saved.":"\u041a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u044f \u043d\u0435 \u0441\u043e\u0445\u0440\u0430\u043d\u0435\u043d\u0430.","Convert blockly to javascript for ever.":"\u041f\u0440\u0435\u043e\u0431\u0440\u0430\u0437\u043e\u0432\u0430\u0442\u044c blockly \u0432 Javascript \u043d\u0430\u0432\u0441\u0435\u0433\u0434\u0430.","Copy script":"\u0421\u043a\u043e\u043f\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0441\u043a\u0440\u0438\u043f\u0442","Copy to clipboard":"\u0421\u043a\u043e\u043f\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0432 \u0431\u0443\u0444\u0435\u0440 \u043e\u0431\u043c\u0435\u043d\u0430","Create new":"\u0421\u043e\u0437\u0434\u0430\u0442\u044c \u043d\u043e\u0432\u044b\u0439","Create new folder":"\u0421\u043e\u0437\u0434\u0430\u0442\u044c \u043d\u043e\u0432\u0443\u044e \u043f\u0430\u043f\u043a\u0443","Create new script":"\u0421\u043e\u0437\u0434\u0430\u0442\u044c \u043d\u043e\u0432\u044b\u0439 \u0441\u043a\u0440\u0438\u043f\u0442","Create or edit CRON or time wizard":"\u0421\u043e\u0437\u0434\u0430\u043d\u0438\u0435 \u0438\u043b\u0438 \u0440\u0435\u0434\u0430\u043a\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435 CRON \u0438\u043b\u0438 \u043c\u0430\u0441\u0442\u0435\u0440\u0430 \u0432\u0440\u0435\u043c\u0435\u043d\u0438","Dark Theme":"\u0422\u0451\u043c\u043d\u0430\u044f \u0442\u0435\u043c\u0430","Dark style":"\u0422\u0435\u043c\u043d\u044b\u0439 \u0441\u0442\u0438\u043b\u044c","Debug options":"\u0412\u0430\u0440\u0438\u0430\u043d\u0442\u044b \u043e\u0442\u043b\u0430\u0434\u043a\u0438","December":"\u0414\u0435\u043a\u0430\u0431\u0440\u044c","Define cron...":"\u0417\u0430\u0434\u0430\u0442\u044c \u043f\u0440\u0430\u0432\u0438\u043b\u043e ...","Define schedule...":"\u0417\u0430\u0434\u0430\u0442\u044c \u0440\u0430\u0441\u043f\u0438\u0441\u0430\u043d\u0438\u0435...","Delete":"\u0423\u0434\u0430\u043b\u0438\u0442\u044c","Delete %s":"\u0423\u0434\u0430\u043b\u0438\u0442\u044c %s...","Delete folder":"\u0423\u0434\u0430\u043b\u0438\u0442\u044c \u043f\u0430\u043f\u043a\u0443","Delete script":"\u0423\u0434\u0430\u043b\u0438\u0442\u044c \u0441\u043a\u0440\u0438\u043f\u0442","Deselect all":"\u0421\u043d\u044f\u0442\u044c \u0432\u044b\u0431\u043e\u0440 \u0441\u043e \u0432\u0441\u0435\u0445","Discard changes for %s":"\u041e\u0442\u043c\u0435\u043d\u0438\u0442\u044c \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u044f \u0434\u043b\u044f %s","Done":"\u0413\u043e\u0442\u043e\u0432\u043e","Drop some files here or click...":"\u041f\u0435\u0440\u0435\u0442\u044b\u0449\u0438\u0442\u0435 \u0441\u044e\u0434\u0430 \u0444\u0430\u0439\u043b\u044b \u0438\u043b\u0438 \u043d\u0430\u0436\u043c\u0438\u0442\u0435 ...","Edit script or just double click":"\u0420\u0435\u0434\u0430\u043a\u0442\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0441\u043a\u0440\u0438\u043f\u0442 \u0438\u043b\u0438 \u043f\u0440\u043e\u0441\u0442\u043e \u0434\u0432\u0430\u0436\u0434\u044b \u0449\u0435\u043b\u043a\u043d\u0443\u0442\u044c","End search mode":"\u0417\u0430\u043a\u043e\u043d\u0447\u0438\u0442\u044c \u043f\u043e\u0438\u0441\u043a","Error":"\u041e\u0448\u0438\u0431\u043a\u0430","Error was found":"\u041e\u0448\u0438\u0431\u043a\u0430 \u0431\u044b\u043b\u0430 \u043d\u0430\u0439\u0434\u0435\u043d\u0430","Existing scripts will be overwritten.":"\u0421\u0443\u0449\u0435\u0441\u0442\u0432\u0443\u044e\u0449\u0438\u0435 \u0441\u043a\u0440\u0438\u043f\u0442\u044b \u0431\u0443\u0434\u0443\u0442 \u043f\u0435\u0440\u0435\u0437\u0430\u043f\u0438\u0441\u0430\u043d\u044b.","Expand all":"\u0420\u0430\u0441\u0448\u0438\u0440\u0438\u0442\u044c \u0432\u0441\u0435","Expert mode":"\u042d\u043a\u0441\u043f\u0435\u0440\u0442\u043d\u044b\u0439 \u0440\u0435\u0436\u0438\u043c","Export":"\u042d\u043a\u0441\u043f\u043e\u0440\u0442","Export all scripts":"\u042d\u043a\u0441\u043f\u043e\u0440\u0442 \u0432\u0441\u0435\u0445 \u0441\u043a\u0440\u0438\u043f\u0442\u043e\u0432","Export blocks":"\u042d\u043a\u0441\u043f\u043e\u0440\u0442\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0431\u043b\u043e\u043a\u0438","Export selected blocks":"\u042d\u043a\u0441\u043f\u043e\u0440\u0442\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0432\u044b\u0431\u0440\u0430\u043d\u043d\u044b\u0435 \u0431\u043b\u043e\u043a\u0438","February":"\u0424\u0435\u0432\u0440\u0430\u043b\u044c","Folder":"\u041f\u0430\u043f\u043a\u0430","Friday":"\u043f\u044f\u0442\u043d\u0438\u0446\u0430","Function editor":"\u0420\u0435\u0434\u0430\u043a\u0442\u043e\u0440 \u0444\u0443\u043d\u043a\u0446\u0438\u0438","ID":"ID","Import":"\u0418\u043c\u043f\u043e\u0440\u0442","Import blocks":"\u0418\u043c\u043f\u043e\u0440\u0442\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0431\u043b\u043e\u043a\u0438","Import error":"\u041e\u0448\u0438\u0431\u043a\u0430 \u0438\u043c\u043f\u043e\u0440\u0442\u0430","Import scripts":"\u0418\u043c\u043f\u043e\u0440\u0442 \u0441\u043a\u0440\u0438\u043f\u0442\u043e\u0432","Insert object ID":"\u0412\u0441\u0442\u0430\u0432\u0438\u0442\u044c ID \u043e\u0431\u044a\u0435\u043a\u0442\u0430","Instance":"\u042d\u043a\u0437\u0435\u043c\u043f\u043b\u044f\u0440","Instance is disabled":"\u042d\u043a\u0437\u0435\u043c\u043f\u043b\u044f\u0440 \u043e\u0442\u043a\u043b\u044e\u0447\u0435\u043d","Invalid CRON":"\u041d\u0435\u043f\u0440\u0430\u0432\u0438\u043b\u044c\u043d\u044b\u0439 CRON","It will not be possible to revert this operation.":"\u041d\u0435\u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e \u0432\u0435\u0440\u043d\u0443\u0442\u044c \u044d\u0442\u0443 \u043e\u043f\u0435\u0440\u0430\u0446\u0438\u044e.","JS description":"\u0421\u043e\u0437\u0434\u0430\u043d\u0438\u0435 \u043f\u0440\u0430\u0432\u0438\u043b \u043f\u0443\u0442\u0451\u043c \u043d\u0430\u043f\u0438\u0441\u0430\u043d\u0438\u044f Javascript","January":"\u042f\u043d\u0432\u0430\u0440\u044c","July":"\u0418\u044e\u043b\u044c","June":"\u0418\u044e\u043d\u044c","Learn More":"\u0423\u0437\u043d\u0430\u0442\u044c \u0431\u043e\u043b\u044c\u0448\u0435","Light style":"\u0421\u0432\u0435\u0442\u043b\u044b\u0439 \u0441\u0442\u0438\u043b\u044c","Locate file":"\u041f\u043e\u043a\u0430\u0437\u0430\u0442\u044c \u0444\u0430\u0439\u043b \u0432 \u0434\u0435\u0440\u0435\u0432\u0435","Log outputs":"\u0416\u0443\u0440\u043d\u0430\u043b","March":"\u041c\u0430\u0440\u0442","May":"\u041c\u0430\u0439","Menu":"\u041c\u0435\u043d\u044e","Message":"\u0421\u043e\u043e\u0431\u0449\u0435\u043d\u0438\u0435","Monday":"\u043f\u043e\u043d\u0435\u0434\u0435\u043b\u044c\u043d\u0438\u043a","Name":"\u0418\u043c\u044f","No active host found":"\u0410\u043a\u0442\u0438\u0432\u043d\u044b\u0439 host \u043d\u0435 \u043d\u0430\u0439\u0434\u0435\u043d","November":"\u041d\u043e\u044f\u0431\u0440\u044c","October":"\u041e\u043a\u0442\u044f\u0431\u0440\u044c","Ok":"Ok","On weekdays":"\u041f\u043e \u0434\u043d\u044f\u043c \u043d\u0435\u0434\u0435\u043b\u0438","Pause script":"\u041e\u0441\u0442\u0430\u043d\u043e\u0432\u0438\u0442\u044c \u0441\u043a\u0440\u0438\u043f\u0442","Please select object ID...":"\u041f\u043e\u0436\u0430\u043b\u0443\u0439\u0441\u0442\u0430, \u0432\u044b\u0431\u0435\u0440\u0438\u0442\u0435 ID \u043e\u0431\u044a\u0435\u043a\u0442\u0430 ...","Rename":"\u041f\u0435\u0440\u0435\u0438\u043c\u0435\u043d\u043e\u0432\u0430\u0442\u044c","Reorder scripts in folders":"\u0421\u043e\u0440\u0442\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0441\u043a\u0440\u0438\u043f\u0442\u044b \u0432 \u043f\u0430\u043f\u043a\u0430\u0445","Repeat":"\u041f\u043e\u0432\u0442\u043e\u0440\u0435\u043d\u0438\u0435","Restart":"\u041f\u0435\u0440\u0435\u0437\u0430\u043f\u0443\u0441\u0442\u0438\u0442\u044c","Root folder":"\u041a\u043e\u0440\u043d\u0435\u0432\u0430\u044f \u043f\u0430\u043f\u043a\u0430","Run script":"\u0417\u0430\u043f\u0443\u0441\u0442\u0438\u0442\u044c \u0441\u043a\u0440\u0438\u043f\u0442","Saturday":"\u0441\u0443\u0431\u0431\u043e\u0442\u0430","Save":"\u0421\u043e\u0445\u0440\u0430\u043d\u0438\u0442\u044c","Script":"\u0441\u043a\u0440\u0438\u043f\u0442","Script %s was modified on disk":"\u0421\u043a\u0440\u0438\u043f\u0442 \\"%s\\" \u0431\u044b\u043b \u0438\u0437\u043c\u0435\u043d\u0435\u043d \u043d\u0430 \u0434\u0438\u0441\u043a\u0435","Script is not running":"\u0421\u0446\u0435\u043d\u0430\u0440\u0438\u0439 \u043d\u0435 \u0437\u0430\u043f\u0443\u0449\u0435\u043d","Search in scripts":"\u041f\u043e\u0438\u0441\u043a \u0432 \u0441\u043a\u0440\u0438\u043f\u0442\u0430\u0445","Search...":"\u041f\u043e\u0438\u0441\u043a...","Select all":"\u0412\u044b\u0431\u0440\u0430\u0442\u044c \u0432\u0441\u0435","September":"\u0421\u0435\u043d\u0442\u044f\u0431\u0440\u044c","Show javascript code":"\u041f\u043e\u043a\u0430\u0437\u0430\u0442\u044c \u043a\u043e\u0434 Javascript","Show only paused scripts":"\u041f\u043e\u043a\u0430\u0437\u044b\u0432\u0430\u0442\u044c \u0442\u043e\u043b\u044c\u043a\u043e \u043f\u0440\u0438\u043e\u0441\u0442\u0430\u043d\u043e\u0432\u043b\u0435\u043d\u043d\u044b\u0435 \u0441\u0446\u0435\u043d\u0430\u0440\u0438\u0438","Show only running scripts":"\u041f\u043e\u043a\u0430\u0437\u044b\u0432\u0430\u0442\u044c \u0442\u043e\u043b\u044c\u043a\u043e \u0437\u0430\u043f\u0443\u0449\u0435\u043d\u043d\u044b\u0435 \u0441\u043a\u0440\u0438\u043f\u0442\u044b","Show only scripts with problems":"\u041f\u043e\u043a\u0430\u0437\u044b\u0432\u0430\u0442\u044c \u0442\u043e\u043b\u044c\u043a\u043e \u0441\u043a\u0440\u0438\u043f\u0442\u044b \u0441 \u043f\u0440\u043e\u0431\u043b\u0435\u043c\u0430\u043c\u0438","Some files will be rejected":"\u041d\u0435\u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0444\u0430\u0439\u043b\u044b \u0431\u0443\u0434\u0443\u0442 \u043e\u0442\u043a\u043b\u043e\u043d\u0435\u043d\u044b","Sunday":"\u0412\u043e\u0441\u043a\u0440\u0435\u0441\u0435\u043d\u044c\u0435","TS description":"\u0421\u043e\u0437\u0434\u0430\u043d\u0438\u0435 \u043f\u0440\u0430\u0432\u0438\u043b \u043f\u0443\u0442\u0451\u043c \u043d\u0430\u043f\u0438\u0441\u0430\u043d\u0438\u044f Typescript","Thursday":"\u0427\u0435\u0442\u0432\u0435\u0440\u0433","Tuesday":"\u0432\u0442\u043e\u0440\u043d\u0438\u043a","Unknown error":"\u041d\u0435\u0438\u0437\u0432\u0435\u0441\u0442\u043d\u0430\u044f \u043e\u0448\u0438\u0431\u043a\u0430","Unknown error!":"\u041d\u0435\u0438\u0437\u0432\u0435\u0441\u0442\u043d\u0430\u044f \u043e\u0448\u0438\u0431\u043a\u0430!","Wednesday":"\u0441\u0440\u0435\u0434\u0430","Yet exists!":"\u0418\u043c\u044f \u0443\u0436\u0435 \u0441\u0443\u0449\u0435\u0441\u0442\u0432\u0443\u0435\u0442!","copy":"\u043a\u043e\u043f\u0438\u044f","file reading has failed: %s":"\u041e\u0448\u0438\u0431\u043a\u0430 \u0447\u0442\u0435\u043d\u0438\u044f \u0444\u0430\u0439\u043b\u0430: %s","file reading was aborted":"\u0427\u0442\u0435\u043d\u0438\u0435 \u0444\u0430\u0439\u043b\u0430 \u0431\u044b\u043b\u043e \u043f\u0440\u0435\u0440\u0432\u0430\u043d\u043e","filter_func":"\u0424\u0443\u043d\u043a\u0446\u0438\u044f","filter_id":"ID","filter_name":"\u041d\u0430\u0437\u0432\u0430\u043d\u0438\u0435","filter_role":"\u0420\u043e\u043b\u044c","filter_room":"\u041a\u043e\u043c\u043d\u0430\u0442\u0430","for edit or create script":"\u0434\u043b\u044f \u0440\u0435\u0434\u0430\u043a\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f \u0438\u043b\u0438 \u0441\u043e\u0437\u0434\u0430\u0439\u0442\u0435 \u043d\u043e\u0432\u044b\u0439 \u0441\u043a\u0440\u0438\u043f\u0442","no blocks found":"\u0411\u043b\u043e\u043a\u043e\u0432 \u043d\u0435\u0442","no group":"\u041d\u0435\u0442 \u0433\u0440\u0443\u043f\u043f\u044b","not properly connected":"\u042d\u0442\u043e\u0442 \u0431\u043b\u043e\u043a \u043d\u0435\u043f\u0440\u0430\u0432\u0438\u043b\u044c\u043d\u043e \u0441\u043e\u0435\u0434\u0438\u043d\u0451\u043d \u0438\u043b\u0438 \u043d\u0435 \u0441\u043e\u0435\u0434\u0438\u043d\u0451\u043d \u0441 \u0434\u0440\u0443\u0433\u0438\u043c\u0438 \u0431\u043b\u043e\u043a\u0430\u043c\u0438.","tooltip_ack":"\u041f\u043e\u0434\u0442\u0432\u0435\u0440\u0436\u0434\u0435\u043d\u043e","tooltip_from":"\u041e\u0442","tooltip_lc":"\u041f\u043e\u0441\u043b\u0435\u0434\u043d\u0435\u0435 \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u0435","tooltip_quality":"\u041a\u0430\u0447\u0435\u0441\u0442\u0432\u0435\u043d\u043d\u044b\u0439","tooltip_ts":"\u0412\u0440\u0435\u043c\u044f","tooltip_user":"\u041f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044c","tooltip_value":"\u0417\u043d\u0430\u0447\u0435\u043d\u0438\u0435","use seconds":"\u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u0441\u0435\u043a\u0443\u043d\u0434\u044b","Save all":"\u0421\u043e\u0445\u0440\u0430\u043d\u0438\u0442\u044c \u0432\u0441\u0435","Change theme (actual \\"%s\\")":"\u0421\u043c\u0435\u043d\u0438\u0442\u044c \u0442\u0435\u043c\u0443 (\u0441\u0435\u0439\u0447\u0430\u0441 - \\"%s\\")","Hide logs":"\u0421\u043a\u0440\u044b\u0442\u044c \u0436\u0443\u0440\u043d\u0430\u043b\u044b","Show logs":"\u041f\u043e\u043a\u0430\u0437\u0430\u0442\u044c \u0436\u0443\u0440\u043d\u0430\u043b\u044b","Rules description":"\u0421\u043e\u0437\u0434\u0430\u0432\u0430\u0439\u0442\u0435 \u043f\u0440\u0430\u0432\u0438\u043b\u0430 \u0441 \u0431\u043b\u043e\u043a\u0430\u043c\u0438 \u0415\u0421\u041b\u0418, \u0422\u041e, \u0418\u041d\u0410\u0427\u0415","help_on_change":"\u041a\u043e\u0434 \u0431\u0443\u0434\u0435\u0442 \u0432\u044b\u043f\u043e\u043b\u043d\u0435\u043d \u0442\u043e\u043b\u044c\u043a\u043e \u0432 \u0441\u043b\u0443\u0447\u0430\u0435 \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u044f \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442\u0430 \u0443\u0441\u043b\u043e\u0432\u0438\u044f. \u041d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, \u043f\u0440\u0438 \u0441\u0440\u0430\u0431\u0430\u0442\u044b\u0432\u0430\u043d\u0438\u0438 \u043f\u043e \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044e \u0434\u0430\u0442\u0447\u0438\u043a\u0430 \u0442\u0435\u043c\u043f\u0435\u0440\u0430\u0442\u0443\u0440\u044b \u0438 \u0443\u0441\u043b\u043e\u0432\u0438\u044e \xab\u0435\u0441\u043b\u0438 \u0442\u0435\u043c\u043f\u0435\u0440\u0430\u0442\u0443\u0440\u0430 \u0431\u043e\u043b\u044c\u0448\u0435 20\xb0C\xbb, \u0434\u0435\u0439\u0441\u0442\u0432\u0438\u044f \xab\u0437\u0430\u0442\u0435\u043c\xbb \u0431\u0443\u0434\u0443\u0442 \u0432\u044b\u043f\u043e\u043b\u043d\u0435\u043d\u044b \u043e\u0434\u0438\u043d \u0440\u0430\u0437, \u043a\u043e\u0433\u0434\u0430 \u0442\u0435\u043c\u043f\u0435\u0440\u0430\u0442\u0443\u0440\u0430 \u043f\u0440\u0435\u0432\u044b\u0441\u0438\u0442 20\xb0C. \u0412 \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u0439 \u0440\u0430\u0437 \u0434\u0435\u0439\u0441\u0442\u0432\u0438\u044f \xab\u0437\u0430\u0442\u0435\u043c\xbb \u0431\u0443\u0434\u0443\u0442 \u0432\u044b\u043f\u043e\u043b\u043d\u0435\u043d\u044b, \u043a\u043e\u0433\u0434\u0430 \u0442\u0435\u043c\u043f\u0435\u0440\u0430\u0442\u0443\u0440\u0430 \u043e\u043f\u0443\u0441\u0442\u0438\u0442\u0441\u044f \u043d\u0438\u0436\u0435 20\xb0C, \u0430 \u0437\u0430\u0442\u0435\u043c \u0441\u043d\u043e\u0432\u0430 \u043f\u043e\u0434\u043d\u0438\u043c\u0430\u0435\u0442\u0441\u044f \u0432\u044b\u0448\u0435 20\xb0C.","help_just_check":"\u041a\u043e\u0434 \u0431\u0443\u0434\u0435\u0442 \u0432\u044b\u043f\u043e\u043b\u043d\u044f\u0442\u044c\u0441\u044f \u0442\u043e\u043b\u044c\u043a\u043e \u043a\u0430\u0436\u0434\u044b\u0439 \u0440\u0430\u0437, \u043a\u043e\u0433\u0434\u0430 \u0443\u0441\u043b\u043e\u0432\u0438\u0435 \u0438\u0441\u0442\u0438\u043d\u043d\u043e. \u041d\u0430\u043f\u0440\u0438\u043c\u0435\u0440. \u043f\u0440\u0438 \u0441\u0440\u0430\u0431\u0430\u0442\u044b\u0432\u0430\u043d\u0438\u0438 \u043f\u043e \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044e \u0434\u0430\u0442\u0447\u0438\u043a\u0430 \u0442\u0435\u043c\u043f\u0435\u0440\u0430\u0442\u0443\u0440\u044b \u0438 \u0443\u0441\u043b\u043e\u0432\u0438\u044e \xab\u0435\u0441\u043b\u0438 \u0442\u0435\u043c\u043f\u0435\u0440\u0430\u0442\u0443\u0440\u0430 \u0432\u044b\u0448\u0435 20\xb0C\xbb, \u0434\u0435\u0439\u0441\u0442\u0432\u0438\u044f \xab\u0437\u0430\u0442\u0435\u043c\xbb \u0431\u0443\u0434\u0443\u0442 \u0432\u044b\u043f\u043e\u043b\u043d\u044f\u0442\u044c\u0441\u044f \u043a\u0430\u0436\u0434\u044b\u0439 \u0440\u0430\u0437, \u043a\u043e\u0433\u0434\u0430 \u0434\u0430\u0442\u0447\u0438\u043a \u043e\u0442\u043f\u0440\u0430\u0432\u043b\u044f\u0435\u0442 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 \u0442\u0435\u043c\u043f\u0435\u0440\u0430\u0442\u0443\u0440\u044b, \u0438 \u043e\u043d\u043e \u043f\u0440\u0435\u0432\u044b\u0448\u0430\u0435\u0442 20\xb0C. \u041d\u0430 21\xb0\u0421, \u043d\u0430 22\xb0\u0421 \u0438 \u0442\u0430\u043a \u0434\u0430\u043b\u0435\u0435.","On condition change":"\u041f\u0440\u0438 \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u0438 \u0440\u0435\u0443\u0437\u043b\u044c\u0442\u0430\u0442\u0430 \u0443\u0441\u043b\u043e\u0432\u0438\u0439","Just check":"\u041f\u0440\u043e\u0441\u0442\u043e \u043f\u0440\u043e\u0432\u0435\u0440\u0438\u0442\u044c","when":"\u0435\u0441\u043b\u0438","and":"\u0438","then":"\u0442\u043e\u0433\u0434\u0430","or":"\u0438\u043b\u0438","else":"\u0438\u043d\u0430\u0447\u0435","Nothing found":"\u041d\u0438\u0447\u0435\u0433\u043e \u043d\u0435 \u043d\u0430\u0439\u0434\u0435\u043d\u043e","reset search":"C\u0431\u0440\u043e\u0441\u0438\u0442\u044c \u043f\u043e\u0438\u0441\u043a","Read only ID selected: %s":"\u0412\u044b\u0431\u0440\u0430\u043d \u0438\u0434\u0435\u043d\u0442\u0438\u0444\u0438\u043a\u0430\u0442\u043e\u0440 \u0442\u043e\u043b\u044c\u043a\u043e \u0434\u043b\u044f \u0447\u0442\u0435\u043d\u0438\u044f: %s","OK":"\u041e\u043a","Triggers":"\u0422\u0440\u0438\u0433\u0433\u0435\u0440\u044b","cron":"CRON","wizard":"\u041c\u0430\u0441\u0442\u0435\u0440","interval":"\u0438\u043d\u0442\u0435\u0440\u0432\u0430\u043b","at":"\u0432","astro":"\u0410\u0441\u0442\u0440\u043e","on condition change":"\u043f\u0440\u0438 \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u0438 \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442\u0430 \u0443\u0441\u043b\u043e\u0432\u0438\u044f","just check":"\u043f\u0440\u043e\u0441\u0442\u043e \u043f\u0440\u043e\u0432\u0435\u0440\u0438\u0442\u044c","Explanation":"\u041e\u0431\u044a\u044f\u0441\u043d\u0435\u043d\u0438\u0435","seconds":"\u0441\u0435\u043a\u0443\u043d\u0434","minutes":"\u043c\u0438\u043d\u0443\u0442(\u0443)","hours":"\u0447\u0430\u0441(\u043e\u0432)","Every day":"\u041a\u0430\u0436\u0434\u044b\u0439 \u0434\u0435\u043d\u044c","milliseconds":"\u043c\u0438\u043b\u043b\u0438\u0441\u0435\u043a\u0443\u043d\u0434\u044b","Copied":"\u0421\u043a\u043e\u043f\u0438\u0440\u043e\u0432\u0430\u043d\u043e","nadir":"\u041d\u0430\u0434\u0438\u0440","nightEnd":"\u041a\u043e\u043d\u0435\u0446 \u043d\u043e\u0447\u0438","nauticalDawn":"\u041c\u043e\u0440\u0441\u043a\u043e\u0439 \u0440\u0430\u0441\u0441\u0432\u0435\u0442","dawn":"\u0420\u0430\u0441\u0441\u0432\u0435\u0442","sunrise":"\u0412\u043e\u0441\u0445\u043e\u0434 \u0441\u043e\u043b\u043d\u0446\u0430","sunriseEnd":"\u041a\u043e\u043d\u0435\u0446 \u0432\u043e\u0441\u0445\u043e\u0434\u0430","goldenHourEnd":"\u041a\u043e\u043d\u0435\u0446 \u0437\u043e\u043b\u043e\u0442\u043e\u0433\u043e \u0447\u0430\u0441\u0430","solarNoon":"\u0421\u043e\u043b\u043d\u0435\u0447\u043d\u044b\u0439 \u043f\u043e\u043b\u0434\u0435\u043d\u044c","goldenHour":"\u0417\u043e\u043b\u043e\u0442\u043e\u0439 \u0447\u0430\u0441","sunsetStart":"\u041d\u0430\u0447\u0430\u043b\u043e \u0437\u0430\u043a\u0430\u0442\u0430","sunset":"\u0417\u0430\u043a\u0430\u0442 \u0441\u043e\u043b\u043d\u0446\u0430","dusk":"\u0421\u0443\u043c\u0435\u0440\u043a\u0438","nauticalDusk":"\u041c\u043e\u0440\u0441\u043a\u0438\u0435 \u0441\u0443\u043c\u0435\u0440\u043a\u0438","night":"\u041d\u043e\u0447\u044c","one":"\u043e\u0434\u0438\u043d","two":"\u0434\u0432\u0430","true":"true","false":"false","search":"\u043f\u043e\u0438\u0441\u043a","Actions":"\u0414\u0435\u0439\u0441\u0442\u0432\u0438\u044f","Conditions":"\u0423\u0441\u043b\u043e\u0432\u0438\u044f","Schedule":"\u0420\u0430\u0441\u043f\u0438\u0441\u0430\u043d\u0438\u0435","Start script":"\u0421\u0442\u0430\u0440\u0442 \u0441\u043a\u0440\u0438\u043f\u0442\u0430","State":"\u0421\u043e\u0441\u0442\u043e\u044f\u043d\u0438\u0435","State condition":"\u0421\u0440\u0430\u0432\u043d\u0435\u043d\u0438\u0435 \u0441\u043e\u0441\u0442\u043e\u044f\u043d\u0438\u044f","Time condition":"\u0423\u0441\u043b\u043e\u0432\u0438\u0435 \u0432\u0440\u0435\u043c\u0435\u043d\u0438","Astrological":"A\u0441\u0442\u0440\u043e\u043d\u043e\u043c\u0438\u0447\u0435\u0441\u043a\u0438\u0439","Set state action":"\u0423\u0441\u0442\u0430\u043d\u043e\u0432\u0438\u0442\u044c \u0441\u043e\u0441\u0442\u043e\u044f\u043d\u0438\u0435","Exec":"\u0418\u0441\u043f\u043e\u043b\u043d\u0438\u0442\u044c shell","HTTP Call":"HTTP-\u0432\u044b\u0437\u043e\u0432","Log text":"\u0422\u0435\u043a\u0441\u0442 \u0436\u0443\u0440\u043d\u0430\u043b\u0430","Pause":"\u041f\u0430\u0443\u0437\u0430","on change":"\u043f\u043e \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u044e","control":"\u043a\u043e\u043d\u0442\u0440\u043e\u043b\u044c","Say It":"Say It","every hour at 0 minutes":"\u043a\u0430\u0436\u0434\u044b\u0439 \u0447\u0430\u0441 \u0447\u0435\u0440\u0435\u0437 0 \u043c\u0438\u043d\u0443\u0442","On script save or adapter start":"\u041f\u0440\u0438 \u0441\u043e\u0445\u0440\u0430\u043d\u0435\u043d\u0438\u0438 \u0441\u043a\u0440\u0438\u043f\u0442\u0430 \u0438\u043b\u0438 \u0437\u0430\u043f\u0443\u0441\u043a\u0435 \u0430\u0434\u0430\u043f\u0442\u0435\u0440\u0430","equal to":"\u0440\u0430\u0432\u043d\u043e","Actual time of day":"\u0424\u0430\u043a\u0442\u0438\u0447\u0435\u0441\u043a\u043e\u0435 \u0432\u0440\u0435\u043c\u044f \u0441\u0443\u0442\u043e\u043a","with":"\u0441","Shell command":"\u041a\u043e\u043c\u0430\u043d\u0434\u0430 \u043e\u0431\u043e\u043b\u043e\u0447\u043a\u0438","URL":"URL","Instance:":"\u041f\u0440\u0438\u043c\u0435\u0440:","Language:":"\u042f\u0437\u044b\u043a:","Volume":"\u0413\u0440\u043e\u043c\u043a\u043e\u0441\u0442\u044c","Text:":"\u0422\u0435\u043a\u0441\u0442:","undefined":"\u043d\u0435\u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u043d\u044b\u0439","Default":"\u0414\u0435\u0444\u043e\u043b\u0442","You can use %s in the text to display current trigger value or %id to display the triggered object ID":"\u0412\u044b \u043c\u043e\u0436\u0435\u0442\u0435 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c %s \u0432 \u0442\u0435\u043a\u0441\u0442\u0435 \u0434\u043b\u044f \u043e\u0442\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u044f \u0442\u0435\u043a\u0443\u0449\u0435\u0433\u043e \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f \u0442\u0440\u0438\u0433\u0433\u0435\u0440\u0430, %id \u0434\u043b\u044f \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u044f \u0438\u0434\u0435\u043d\u0442\u0438\u0444\u0438\u043a\u0430\u0442\u043e\u0440\u0430 \u0441\u0440\u0430\u0431\u043e\u0442\u0430\u0432\u0448\u0435\u0433\u043e \u043e\u0431\u044a\u0435\u043a\u0442\u0430, %name \u0434\u043b\u044f \u043e\u0442\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u044f \u0438\u043c\u0435\u043d\u0438 \u0441\u0440\u0430\u0431\u043e\u0442\u0430\u0432\u0448\u0435\u0433\u043e \u0438\u0434\u0435\u043d\u0442\u0438\u0444\u0438\u043a\u0430\u0442\u043e\u0440\u0430 \u043e\u0431\u044a\u0435\u043a\u0442\u0430 \u0438\u043b\u0438 %old \u0434\u043b\u044f \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u044f \u0441\u0442\u0430\u0440\u043e\u0433\u043e \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f \u0442\u0440\u0438\u0433\u0433\u0435\u0440\u0430.","Instructions":"\u0418\u043d\u0441\u0442\u0440\u0443\u043a\u0446\u0438\u0438","You can use %s in the URL to use current trigger value or %id to use the triggered object ID":"\u0412\u044b \u043c\u043e\u0436\u0435\u0442\u0435 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c %s \u0432 URL-\u0430\u0434\u0440\u0435\u0441\u0435, \u0447\u0442\u043e\u0431\u044b \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u0442\u0435\u043a\u0443\u0449\u0435\u0435 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 \u0442\u0440\u0438\u0433\u0433\u0435\u0440\u0430, %id, \u0447\u0442\u043e\u0431\u044b \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u0438\u0434\u0435\u043d\u0442\u0438\u0444\u0438\u043a\u0430\u0442\u043e\u0440 \u0438\u043d\u0438\u0446\u0438\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u043e\u0433\u043e \u043e\u0431\u044a\u0435\u043a\u0442\u0430, %name, \u0447\u0442\u043e\u0431\u044b \u043f\u043e\u043a\u0430\u0437\u0430\u0442\u044c \u0438\u043c\u044f \u0438\u0434\u0435\u043d\u0442\u0438\u0444\u0438\u043a\u0430\u0442\u043e\u0440\u0430 \u0438\u043d\u0438\u0446\u0438\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u043e\u0433\u043e \u043e\u0431\u044a\u0435\u043a\u0442\u0430, \u0438\u043b\u0438 %old, \u0447\u0442\u043e\u0431\u044b \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u0441\u0442\u0430\u0440\u043e\u0435 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 \u0442\u0440\u0438\u0433\u0433\u0435\u0440\u0430.","You can use %s in the value to use the current trigger value or %id to display the triggered object ID":"\u0412\u044b \u043c\u043e\u0436\u0435\u0442\u0435 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c %s \u0432 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0438, \u0447\u0442\u043e\u0431\u044b \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u0442\u0435\u043a\u0443\u0449\u0435\u0435 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 \u0442\u0440\u0438\u0433\u0433\u0435\u0440\u0430, %id, \u0447\u0442\u043e\u0431\u044b \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u0438\u0434\u0435\u043d\u0442\u0438\u0444\u0438\u043a\u0430\u0442\u043e\u0440 \u0438\u043d\u0438\u0446\u0438\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u043e\u0433\u043e \u043e\u0431\u044a\u0435\u043a\u0442\u0430, %name, \u0447\u0442\u043e\u0431\u044b \u043f\u043e\u043a\u0430\u0437\u0430\u0442\u044c \u0438\u043c\u044f \u0438\u0434\u0435\u043d\u0442\u0438\u0444\u0438\u043a\u0430\u0442\u043e\u0440\u0430 \u0438\u043d\u0438\u0446\u0438\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u043e\u0433\u043e \u043e\u0431\u044a\u0435\u043a\u0442\u0430, \u0438\u043b\u0438 %old, \u0447\u0442\u043e\u0431\u044b \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u0441\u0442\u0430\u0440\u043e\u0435 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 \u0442\u0440\u0438\u0433\u0433\u0435\u0440\u0430.","You can use %s in the command to use current trigger value or %id to use the triggered object ID":"\u0412\u044b \u043c\u043e\u0436\u0435\u0442\u0435 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c %s \u0432 \u043a\u043e\u043c\u0430\u043d\u0434\u0435, \u0447\u0442\u043e\u0431\u044b \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u0442\u0435\u043a\u0443\u0449\u0435\u0435 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 \u0442\u0440\u0438\u0433\u0433\u0435\u0440\u0430, %id, \u0447\u0442\u043e\u0431\u044b \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u0438\u0434\u0435\u043d\u0442\u0438\u0444\u0438\u043a\u0430\u0442\u043e\u0440 \u0441\u0440\u0430\u0431\u043e\u0442\u0430\u0432\u0448\u0435\u0433\u043e \u043e\u0431\u044a\u0435\u043a\u0442\u0430, %name, \u0447\u0442\u043e\u0431\u044b \u043f\u043e\u043a\u0430\u0437\u0430\u0442\u044c \u0438\u043c\u044f \u0441\u0440\u0430\u0431\u043e\u0442\u0430\u0432\u0448\u0435\u0433\u043e \u0438\u0434\u0435\u043d\u0442\u0438\u0444\u0438\u043a\u0430\u0442\u043e\u0440\u0430 \u043e\u0431\u044a\u0435\u043a\u0442\u0430, \u0438\u043b\u0438 %old, \u0447\u0442\u043e\u0431\u044b \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u0441\u0442\u0430\u0440\u043e\u0435 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 \u0442\u0440\u0438\u0433\u0433\u0435\u0440\u0430.","every":"\u043a\u0430\u0436\u0434\u044b\u0435(\u044b\u0439)","with offset":"\u0441\u043e \u0441\u0434\u0432\u0438\u0433\u043e\u043c","on update":"\u043f\u0440\u0438 \u043e\u0431\u043d\u043e\u0432\u043b\u0435\u043d\u0438\u0438","update":"\u043e\u0431\u043d\u043e\u0432\u0438\u0442\u044c","Triggers the rule periodically or on some specific time":"\u0421\u0440\u0430\u0431\u0430\u0442\u044b\u0432\u0430\u0435\u0442 \u043f\u0440\u0430\u0432\u0438\u043b\u043e \u043f\u0435\u0440\u0438\u043e\u0434\u0438\u0447\u0435\u0441\u043a\u0438 \u0438\u043b\u0438 \u0432 \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u043d\u043e\u0435 \u0432\u0440\u0435\u043c\u044f","Triggers the on script saving or the javascript instance restart":"\u0417\u0430\u043f\u0443\u0441\u043a\u0430\u0435\u0442 \u043f\u0440\u0438 \u0441\u043e\u0445\u0440\u0430\u043d\u0435\u043d\u0438\u0438 \u0441\u043a\u0440\u0438\u043f\u0442\u0430 \u0438\u043b\u0438 \u043f\u0435\u0440\u0435\u0437\u0430\u043f\u0443\u0441\u043a\u0435 \u044d\u043a\u0437\u0435\u043c\u043f\u043b\u044f\u0440\u0430 javascript","Triggers the rule on update or change of some state":"\u0417\u0430\u043f\u0443\u0441\u043a\u0430\u0435\u0442 \u043f\u0440\u0430\u0432\u0438\u043b\u043e \u043f\u0440\u0438 \u043e\u0431\u043d\u043e\u0432\u043b\u0435\u043d\u0438\u0438 \u0438\u043b\u0438 \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u0438 \u043a\u0430\u043a\u043e\u0433\u043e-\u043b\u0438\u0431\u043e \u0441\u043e\u0441\u0442\u043e\u044f\u043d\u0438\u044f","Compares the state value with user defined value":"\u0421\u0440\u0430\u0432\u043d\u0438\u0432\u0430\u0435\u0442 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 \u0441\u043e\u0441\u0442\u043e\u044f\u043d\u0438\u044f \u0441 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044c\u0441\u043a\u0438\u043c \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435\u043c","Compares current time with the user specific time":"\u0421\u0440\u0430\u0432\u043d\u0438\u0432\u0430\u0435\u0442 \u0442\u0435\u043a\u0443\u0449\u0435\u0435 \u0432\u0440\u0435\u043c\u044f \u0441 \u043a\u043e\u043d\u043a\u0440\u0435\u0442\u043d\u044b\u043c \u0432\u0440\u0435\u043c\u0435\u043d\u0435\u043c \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044f","Compares current time with astrological event":"\u0421\u0440\u0430\u0432\u043d\u0438\u0432\u0430\u0435\u0442 \u0442\u0435\u043a\u0443\u0449\u0435\u0435 \u0432\u0440\u0435\u043c\u044f \u0441 \u0430\u0441\u0442\u0440\u043e\u043d\u043e\u043c\u0438\u0447\u0435\u0441\u043a\u0438\u043c \u0441\u043e\u0431\u044b\u0442\u0438\u0435\u043c","Control or update some state":"\u041a\u043e\u043d\u0442\u0440\u043e\u043b\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0438\u043b\u0438 \u043e\u0431\u043d\u043e\u0432\u043b\u044f\u0442\u044c \u043a\u0430\u043a\u043e\u0435-\u0442\u043e \u0441\u043e\u0441\u0442\u043e\u044f\u043d\u0438\u0435","Executes some shell command":"\u0412\u044b\u043f\u043e\u043b\u043d\u044f\u0435\u0442 \u043d\u0435\u043a\u043e\u0442\u043e\u0440\u0443\u044e \u043a\u043e\u043c\u0430\u043d\u0434\u0443 \u043e\u0431\u043e\u043b\u043e\u0447\u043a\u0438","Make a HTTP get request":"\u0421\u0434\u0435\u043b\u0430\u0439\u0442\u0435 HTTP-\u0437\u0430\u043f\u0440\u043e\u0441 \u043d\u0430 \u043f\u043e\u043b\u0443\u0447\u0435\u043d\u0438\u0435","Print some text in log":"\u041d\u0430\u043f\u0435\u0447\u0430\u0442\u0430\u0442\u044c \u0442\u0435\u043a\u0441\u0442 \u0432 \u0436\u0443\u0440\u043d\u0430\u043b\u0435","Make a pause between actions":"\u0421\u0434\u0435\u043b\u0430\u0439\u0442\u0435 \u043f\u0430\u0443\u0437\u0443 \u043c\u0435\u0436\u0434\u0443 \u0434\u0435\u0439\u0441\u0442\u0432\u0438\u044f\u043c\u0438","Say some text via sayit adapter":"\u041f\u0440\u043e\u0438\u0437\u043d\u0435\u0441\u0438\u0442\u0435 \u0442\u0435\u043a\u0441\u0442 \u0447\u0435\u0440\u0435\u0437 \u0430\u0434\u0430\u043f\u0442\u0435\u0440 Sayit","Telegram":"Telegram","User:":"\u041f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044c:","all":"\u0432\u0441\u0435","Sends message via telegram":"\u041e\u0442\u043f\u0440\u0430\u0432\u043b\u044f\u0435\u0442 \u0441\u043e\u043e\u0431\u0449\u0435\u043d\u0438\u0435 \u0432 \u0442\u0435\u043b\u0435\u0433\u0440\u0430\u043c\u043c\u0435","Sends an email":"\u041e\u0442\u043f\u0440\u0430\u0432\u043b\u044f\u0435\u0442 \u044d\u043b\u0435\u043a\u0442\u0440\u043e\u043d\u043d\u043e\u0435 \u043f\u0438\u0441\u044c\u043c\u043e","Send email":"\u041e\u0442\u043f\u0440\u0430\u0432\u0438\u0442\u044c email","Sends message via pushover":"\u041e\u0442\u043f\u0440\u0430\u0432\u043b\u044f\u0435\u0442 \u0441\u043e\u043e\u0431\u0449\u0435\u043d\u0438\u0435 \u0447\u0435\u0440\u0435\u0437 \u043f\u0443\u0441\u0442\u044b\u0448\u043a\u0443","Pushover":"Pushover","Sends message via whatsapp-cmb":"\u041e\u0442\u043f\u0440\u0430\u0432\u043b\u044f\u0435\u0442 \u0441\u043e\u043e\u0431\u0449\u0435\u043d\u0438\u0435 \u0447\u0435\u0440\u0435\u0437 whatsapp-cmb","Whatsapp-cmb":"Whatsapp-cmb","Sends message via Pushsafer":"\u041e\u0442\u043f\u0440\u0430\u0432\u043b\u044f\u0435\u0442 \u0441\u043e\u043e\u0431\u0449\u0435\u043d\u0438\u0435 \u0447\u0435\u0440\u0435\u0437 Pushsafer","Pushsafer":"Pushsafer","To:":"\u041a:","Subject:":"\u041f\u0440\u0435\u0434\u043c\u0435\u0442:","Body:":"\u0422\u0435\u043b\u043e:","Title:":"\u0417\u0430\u0433\u043e\u043b\u043e\u0432\u043e\u043a:","Sound:":"\u0417\u0432\u0443\u043a:","Priority:":"\u041f\u0440\u0438\u043e\u0440\u0438\u0442\u0435\u0442:","magic":"\u043c\u0430\u0433\u0438\u044f","quiet":"\u0442\u0438\u0445\u0438\u0439","normal":"\u043d\u043e\u0440\u043c\u0430\u043b\u044c\u043d\u044b\u0439","high-priority":"\u0432\u044b\u0441\u043e\u043a\u0438\u0439-\u043f\u0440\u0438\u043e\u0440\u0438\u0442\u0435\u0442","acknowledgment":"\u043f\u043e\u0434\u0442\u0432\u0435\u0440\u0436\u0434\u0435\u043d\u0438\u0435","Phone:":"\u0422\u0435\u043b\u0435\u0444\u043e\u043d:","(optional)":"(\u043d\u0435\u043e\u0431\u044f\u0437\u0430\u0442\u0435\u043b\u044c\u043d\u044b\u0439)","Vibration:":"\u0412\u0438\u0431\u0440\u0430\u0446\u0438\u044f:","lowest priority":"\u0441\u0430\u043c\u044b\u0439 \u043d\u0438\u0437\u043a\u0438\u0439 \u043f\u0440\u0438\u043e\u0440\u0438\u0442\u0435\u0442","lower priority":"\u0431\u043e\u043b\u0435\u0435 \u043d\u0438\u0437\u043a\u0438\u0439 \u043f\u0440\u0438\u043e\u0440\u0438\u0442\u0435\u0442","normal priority":"\u043d\u043e\u0440\u043c\u0430\u043b\u044c\u043d\u044b\u0439 \u043f\u0440\u0438\u043e\u0440\u0438\u0442\u0435\u0442","high priority":"\u0432\u044b\u0441\u043e\u043a\u0438\u0439 \u043f\u0440\u0438\u043e\u0440\u0438\u0442\u0435\u0442","highest priority":"\u0432\u044b\u0441\u0448\u0438\u0439 \u043f\u0440\u0438\u043e\u0440\u0438\u0442\u0435\u0442","default":"\u0434\u0435\u0444\u043e\u043b\u0442","All":"\u0412\u0441\u0435","Write your own code":"\u041d\u0430\u043f\u0438\u0448\u0438\u0442\u0435 \u0441\u0432\u043e\u0439 \u043a\u043e\u0434","User function":"\u0424\u0443\u043d\u043a\u0446\u0438\u044f \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044f","This is advances option. You can write your own code here and it will be executed on trigger":"\u042d\u0442\u043e \u0440\u0430\u0441\u0448\u0438\u0440\u0435\u043d\u044b\u0439 \u0432\u0430\u0440\u0438\u0430\u043d\u0442. \u0412\u044b \u043c\u043e\u0436\u0435\u0442\u0435 \u043d\u0430\u043f\u0438\u0441\u0430\u0442\u044c \u0437\u0434\u0435\u0441\u044c \u0441\u0432\u043e\u0439 \u043a\u043e\u0434 \u0438 \u043e\u043d \u0431\u0443\u0434\u0435\u0442 \u0432\u044b\u043f\u043e\u043b\u043d\u044f\u0442\u044c\u0441\u044f \u043f\u043e \u0442\u0440\u0438\u0433\u0433\u0435\u0440\u0443","greater than":"\u0431\u043e\u043b\u044c\u0448\u0435 \u0447\u0435\u043c","offset":"\u0441\u0434\u0432\u0438\u0433","Function":"\u0424\u0443\u043d\u043a\u0446\u0438\u044f","greater or equal to":"\u0431\u043e\u043b\u044c\u0448\u0435 \u0438\u043b\u0438 \u0440\u0430\u0432\u043d\u043e","less or equal to":"\u043c\u0435\u043d\u044c\u0448\u0435 \u0438\u043b\u0438 \u0440\u0430\u0432\u043d\u043e","less than":"\u043c\u0435\u043d\u044c\u0448\u0435, \u0447\u0435\u043c","not equal to":"\u043d\u0435 \u0440\u0430\u0432\u043d\u043e","[equal]":"[\u0440\u0430\u0432\u043d\u043e]","[greater or equal]":"[\u0431\u043e\u043b\u044c\u0448\u0435 \u0438\u043b\u0438 \u0440\u0430\u0432\u043d\u043e]","[greater]":"[\u0431\u043e\u043b\u044c\u0448\u0435]","[less or equal]":"[\u043c\u0435\u043d\u044c\u0448\u0435 \u0438\u043b\u0438 \u0440\u0430\u0432\u043d\u043e]","[less]":"[\u043c\u0435\u043d\u044c\u0448\u0435]","[not equal]":"[\u043d\u0435 \u0440\u0430\u0432\u043d\u043e]","[includes]":"[\u0441\u043e\u0434\u0435\u0440\u0436\u0438\u0442]","[hysteresis]":"[\u0433\u0438\u0441\u0442\u0435\u0440\u0435\u0437\u0438\u0441]","greater or equal":"\u0431\u043e\u043b\u044c\u0448\u0435 \u0438\u043b\u0438 \u0440\u0430\u0432\u043d\u043e","less or equal":"\u043c\u0435\u043d\u044c\u0448\u0435 \u0438\u043b\u0438 \u0440\u0430\u0432\u043d\u043e","includes":"\u0441\u043e\u0434\u0435\u0440\u0436\u0438\u0442",".":".","()":"()","Mo":"\u041f\u043d","Tu":"\u0412\u0442","We":"\u0421\u0440","Th":"\u0427\u0442","Fr":"\u041f\u0442","Sa":"\u0421\u0431","Su":"\u0412\u0441","Control or update some state with delay":"\u041a\u043e\u043d\u0442\u0440\u043e\u043b\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0438\u043b\u0438 \u043e\u0431\u043d\u043e\u0432\u043b\u044f\u0442\u044c \u043a\u0430\u043a\u043e\u0435-\u043b\u0438\u0431\u043e \u0441\u043e\u0441\u0442\u043e\u044f\u043d\u0438\u0435 \u0441 \u0437\u0430\u0434\u0435\u0440\u0436\u043a\u043e\u0439","Delay":"\u0417\u0430\u0434\u0435\u0440\u0436\u043a\u0430","ms":"\u043c\u0441","Set with delay":"\u0423\u0441\u0442\u0430\u043d\u043e\u0432\u0438\u0442\u044c \u0441 \u0437\u0430\u0434\u0435\u0440\u0436\u043a\u043e\u0439","clear running":"\u043e\u0441\u0442\u0430\u043d\u043e\u0432\u0438\u0442\u044c \u0443\u0436\u0435 \u0431\u0435\u0433\u0443\u0449\u0438\u0435","toggle value":"\u0438\u043d\u0432\u0435\u0440\u0442\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0442\u0435\u043a\u0449\u0435\u0435 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435","Any month":"\u0412 \u043b\u044e\u0431\u043e\u0439 \u043c\u0435\u0441\u044f\u0446","Any":"\u041b\u044e\u0431\u0430\u044f","with date":"\u0441 \u0434\u0430\u0442\u043e\u0439","Date":"\u0414\u0430\u0442\u0430","Month":"\u041c\u0435\u0441\u044f\u0446","Januar":"\u042f\u043d\u0432\u0430\u0440\u044c","Februar":"\u0424\u0435\u0432\u0440\u0430\u043b\u044c","March ":"\u041c\u0430\u0440\u0442 ","Condition":"\u0423\u0441\u043b\u043e\u0432\u0438\u0435","Limit":"\u041f\u0440\u0435\u0434\u0435\u043b","The script will be stopped and must be activated manually after debugging. Continue?":"C\u043a\u0440\u0438\u043f\u0442 \u0431\u0443\u0434\u0435\u0442 \u043e\u0441\u0442\u0430\u043d\u043e\u0432\u043b\u0435\u043d \u0438 \u0434\u043e\u043b\u0436\u0435\u043d \u0431\u044b\u0442\u044c \u0430\u043a\u0442\u0438\u0432\u0438\u0440\u043e\u0432\u0430\u043d \u0432\u0440\u0443\u0447\u043d\u0443\u044e \u043f\u043e\u0441\u043b\u0435 \u043e\u0442\u043b\u0430\u0434\u043a\u0438. \u041f\u0440\u043e\u0434\u043e\u043b\u0436\u0430\u0442\u044c?","Yes":"\u0414\u0430","Debug instance":"\u042d\u043a\u0437\u0435\u043c\u043f\u043b\u044f\u0440 \u043e\u0442\u043b\u0430\u0434\u043a\u0438","Resume execution":"\u0412\u043e\u0437\u043e\u0431\u043d\u043e\u0432\u0438\u0442\u044c \u0432\u044b\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u0435","Go to next line":"\u041f\u0435\u0440\u0435\u0439\u0442\u0438 \u043a \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0435\u0439 \u0441\u0442\u0440\u043e\u043a\u0435","Step into function":"\u0428\u0430\u0433 \u0432 \u0444\u0443\u043d\u043a\u0446\u0438\u043e\u043d\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435","Step out from function":"\u0412\u044b\u0439\u0442\u0438 \u0438\u0437 \u0444\u0443\u043d\u043a\u0446\u0438\u0438","Stop on exception":"\u041e\u0441\u0442\u0430\u043d\u043e\u0432\u0438\u0442\u044c \u043f\u0440\u0438 \u0438\u0441\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u0438","Console":"\u041f\u0440\u0438\u0441\u0442\u0430\u0432\u043a\u0430","Stack":"Stack","Pause execution":"\u041f\u0440\u0438\u043e\u0441\u0442\u0430\u043d\u043e\u0432\u0438\u0442\u044c \u0432\u044b\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u0435","Simulate":"\u0421\u0438\u043c\u0443\u043b\u0438\u0440\u043e\u0432\u0430\u0442\u044c","Trigger with value":"\u0422\u0440\u0438\u0433\u0433\u0435\u0440 \u0441\u043e \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435\u043c","Value":"\u0417\u043d\u0430\u0447\u0435\u043d\u0438\u0435","Write":"\u041d\u0430\u043f\u0438\u0448\u0438\u0442\u0435","Ack":"\u041f\u043e\u0434\u0442\u0432\u0435\u0440\u0436\u0434\u0435\u043d\u0438\u0435","Start":"\u041d\u0430\u0447\u0438\u043d\u0430\u0442\u044c","Filter":"\u0424\u0438\u043b\u044c\u0442\u0440","Instances":"\u042d\u043a\u0437\u0435\u043c\u043f\u043b\u044f\u0440\u044b","Triggered":"\u0421\u0440\u0430\u0431\u0430\u0442\u044b\u0432\u0430\u0435\u0442","Function: executed":"\u0424\u0443\u043d\u043a\u0446\u0438\u044f: \u0432\u044b\u043f\u043e\u043b\u043d\u0435\u043d\u043e","Operate two states":"\u041e\u043f\u0435\u0440\u0430\u0446\u0438\u0438 \u043d\u0430\u0434 \u0434\u0432\u0443\u043c\u044f \u0441\u043e\u0441\u0442\u043e\u044f\u043d\u0438\u044f\u043c\u0438","store in":"\u0441\u043e\u0445\u0440\u0430\u043d\u0438\u0442\u044c \u0432","ID1":"ID1","ID2":"ID2","Operations with two states":"\u041e\u043f\u0435\u0440\u0430\u0446\u0438\u0438 \u0441 \u0434\u0432\u0443\u043c\u044f \u0441\u043e\u0441\u0442\u043e\u044f\u043d\u0438\u044f\u043c\u0438","debug_label":"\u041e\u0442\u043b\u0430\u0436\u0438\u0432\u0430\u0442\u044c","debug_help":"\u042d\u0442\u043e \u043e\u0441\u043e\u0431\u044b\u0439 \u0440\u0435\u0436\u0438\u043c, \u0432 \u043a\u043e\u0442\u043e\u0440\u043e\u043c \u0441\u043e\u0441\u0442\u043e\u044f\u043d\u0438\u044f \u0438 \u043e\u0431\u044a\u0435\u043a\u0442\u044b \u043d\u0435 \u0431\u0443\u0434\u0443\u0442 \u043c\u0435\u043d\u044f\u0442\u044c\u0441\u044f. \u041d\u043e \u0432 \u043f\u0440\u043e\u0442\u043e\u043a\u043e\u043b\u0435 \u0431\u0443\u0434\u0435\u0442 \u043e\u0442\u043e\u0431\u0440\u0430\u0436\u0430\u0442\u044c\u0441\u044f \u0442\u043e\u043b\u044c\u043a\u043e \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u044f \u043e \u043a\u0430\u0436\u0434\u043e\u043c \u043f\u043b\u0430\u043d\u0438\u0440\u0443\u0435\u043c\u043e\u043c \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u0438.","verbose_label":"\u041f\u043e\u0434\u0440\u043e\u0431\u043d\u044b\u0439 \u043f\u0440\u043e\u0442\u043e\u043a\u043e\u043b","verbose_help":"\u0414\u043e\u0431\u0430\u0432\u043b\u044f\u0435\u0442 \u0432\u044b\u0432\u043e\u0434 \u043e\u0442\u043b\u0430\u0434\u043a\u0438 \u0432 \u0436\u0443\u0440\u043d\u0430\u043b \u0434\u043b\u044f \u043c\u043d\u043e\u0433\u0438\u0445 \u0441\u0438\u0441\u0442\u0435\u043c\u043d\u044b\u0445 \u043a\u043e\u043c\u0430\u043d\u0434.","easy":"\u043b\u0435\u0433\u043a\u0438\u0439","for programmers":"\u0434\u043b\u044f \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0438\u0441\u0442\u043e\u0432","for professionals":"\u0434\u043b\u044f \u043f\u0440\u043e\u0444\u0435\u0441\u0441\u0438\u043e\u043d\u0430\u043b\u043e\u0432","Duplicate name":"\u041f\u043e\u0432\u0442\u043e\u0440\u044f\u044e\u0449\u0435\u0435\u0441\u044f \u0438\u043c\u044f","Empty name is not allowed":"\u041f\u0443\u0441\u0442\u043e\u0435 \u0438\u043c\u044f \u043d\u0435 \u0434\u043e\u043f\u0443\u0441\u043a\u0430\u0435\u0442\u0441\u044f","Astrological events today":"\u0410\u0441\u0442\u0440\u043e\u043b\u043e\u0433\u0438\u0447\u0435\u0441\u043a\u0438\u0435 \u0441\u043e\u0431\u044b\u0442\u0438\u044f \u0441\u0435\u0433\u043e\u0434\u043d\u044f","Show astrological events":"\u041f\u043e\u043a\u0430\u0437\u0430\u0442\u044c \u0430\u0441\u0442\u0440\u043e\u043b\u043e\u0433\u0438\u0447\u0435\u0441\u043a\u0438\u0435 \u0441\u043e\u0431\u044b\u0442\u0438\u044f","Time":"\u0412\u0440\u0435\u043c\u044f","Description":"\u041e\u043f\u0438\u0441\u0430\u043d\u0438\u0435","nextSunrise":"\u0421\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u0439 \u0432\u043e\u0441\u0445\u043e\u0434","nextSunset":"\u0421\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u0439 \u0437\u0430\u043a\u0430\u0442"}')},17138:function(e){e.exports=JSON.parse('{"debug_label":"\u0412\u0456\u0434\u043b\u0430\u0433\u043e\u0434\u0436\u0443\u0432\u0430\u0442\u0438","debug_help":"\u0426\u0435 \u043e\u0441\u043e\u0431\u043b\u0438\u0432\u0438\u0439 \u0440\u0435\u0436\u0438\u043c, \u0432 \u044f\u043a\u043e\u043c\u0443 \u0441\u0442\u0430\u043d\u0443 \u0442\u0430 \u043e\u0431\'\u0454\u043a\u0442\u0438 \u043d\u0435 \u0437\u043c\u0456\u043d\u044e\u0432\u0430\u0442\u0438\u043c\u0443\u0442\u044c\u0441\u044f. \u0410\u043b\u0435 \u0432 \u043f\u0440\u043e\u0442\u043e\u043a\u043e\u043b\u0456 \u0432\u0456\u0434\u043e\u0431\u0440\u0430\u0436\u0430\u0442\u0438\u043c\u0435\u0442\u044c\u0441\u044f \u043b\u0438\u0448\u0435 \u0456\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0456\u044f \u043f\u0440\u043e \u043a\u043e\u0436\u043d\u0443 \u0437\u0430\u043f\u043b\u0430\u043d\u043e\u0432\u0430\u043d\u0443 \u0437\u043c\u0456\u043d\u0443.","verbose_label":"\u0414\u043e\u043a\u043b\u0430\u0434\u043d\u0456 \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442\u0438 \u0436\u0443\u0440\u043d\u0430\u043b\u0443","verbose_help":"\u0414\u043e\u0434\u0430\u0454 \u0432\u0438\u0445\u0456\u0434\u043d\u0456 \u0434\u0430\u043d\u0456 \u043d\u0430\u043b\u0430\u0433\u043e\u0434\u0436\u0435\u043d\u043d\u044f \u0434\u043e \u0436\u0443\u0440\u043d\u0430\u043b\u0443 \u0434\u043b\u044f \u0431\u0430\u0433\u0430\u0442\u044c\u043e\u0445 \u0441\u0438\u0441\u0442\u0435\u043c\u043d\u0438\u0445 \u043a\u043e\u043c\u0430\u043d\u0434","()":"()","(optional)":"(\u043d\u0435\u043e\u0431\u043e\u0432\'\u044f\u0437\u043a\u043e\u0432\u043e)","-":"-",".":".","Ack":"\u0412\u0438\u0437\u043d\u0430\u043d\u043e","Actions":"\u0414\u0456\u0457","Actual time of day":"\u0424\u0430\u043a\u0442\u0438\u0447\u043d\u0438\u0439 \u0447\u0430\u0441 \u0434\u043e\u0431\u0438","Add":"\u0434\u043e\u0434\u0430\u0442\u0438","Add new script":"\u0414\u043e\u0434\u0430\u0442\u0438 \u043d\u043e\u0432\u0438\u0439 \u0441\u0446\u0435\u043d\u0430\u0440\u0456\u0439","All":"\u0432\u0441\u0435","All files will be accepted":"\u0423\u0441\u0456 \u0444\u0430\u0439\u043b\u0438 \u0431\u0443\u0434\u0443\u0442\u044c \u043f\u0440\u0438\u0439\u043d\u044f\u0442\u0456","Any":"\u0411\u0443\u0434\u044c-\u044f\u043a\u0438\u0439","Any month":"\u0411\u0443\u0434\u044c-\u044f\u043a\u0438\u0439 \u043c\u0456\u0441\u044f\u0446\u044c","April":"\u043a\u0432\u0456\u0442\u0435\u043d\u044c","Are you sure?":"\u0422\u0438 \u0432\u043f\u0435\u0432\u043d\u0435\u043d\u0438\u0439?","Astrological":"\u0410\u0441\u0442\u0440\u043e\u043d\u043e\u043c\u0456\u0447\u043d\u0438\u0439","August":"\u0441\u0435\u0440\u043f\u0435\u043d\u044c","Blockly description":"\u0421\u0442\u0432\u043e\u0440\u0435\u043d\u043d\u044f \u043f\u0440\u0430\u0432\u0438\u043b \u0437\u0430 \u0433\u0440\u0430\u0444\u0456\u0447\u043d\u0438\u043c\u0438 \u0431\u043b\u043e\u043a\u0430\u043c\u0438","Body:":"\u0422\u0456\u043b\u043e:","Cancel":"\u0421\u043a\u0430\u0441\u0443\u0432\u0430\u0442\u0438","Cannot delete non empty item!":"\u041d\u0435\u043c\u043e\u0436\u043b\u0438\u0432\u043e \u0432\u0438\u0434\u0430\u043b\u0438\u0442\u0438 \u043d\u0435\u043f\u043e\u0440\u043e\u0436\u043d\u0456\u0439 \u0435\u043b\u0435\u043c\u0435\u043d\u0442!","Change layout":"\u0417\u043c\u0456\u043d\u0438\u0442\u0438 \u043c\u0430\u043a\u0435\u0442","Change theme (actual \\"%s\\")":"\u0417\u043c\u0456\u043d\u0438\u0442\u0438 \u0442\u0435\u043c\u0443 (\u0442\u0435\u043f\u0435\u0440 - \\"%s\\")","Check blocks":"\u041f\u0435\u0440\u0435\u0432\u0456\u0440\u0442\u0435 \u0431\u043b\u043e\u043a\u0438","Check is not active, because javascript adapter is disabled":"\u041f\u0435\u0440\u0435\u0432\u0456\u0440\u043a\u0430 \u043d\u0435 \u0430\u043a\u0442\u0438\u0432\u043d\u0430, \u043e\u0441\u043a\u0456\u043b\u044c\u043a\u0438 \u0430\u0434\u0430\u043f\u0442\u0435\u0440 Javascript \u0432\u0438\u043c\u043a\u043d\u0435\u043d\u043e","Clear search input":"\u041e\u0447\u0438\u0441\u0442\u0438\u0442\u0438 \u043f\u043e\u0448\u0443\u043a\u043e\u0432\u0438\u0439 \u0437\u0430\u043f\u0438\u0442","Click on this icon":"\u041d\u0430\u0442\u0438\u0441\u043d\u0456\u0442\u044c \u043d\u0430 \u0446\u0435\u0439 \u0437\u043d\u0430\u0447\u043e\u043a","Close":"\u0417\u0430\u043a\u0440\u0438\u0442\u0438","Close all but current":"\u0417\u0430\u043a\u0440\u0438\u0442\u0438 \u0432\u0441\u0456, \u043a\u0440\u0456\u043c \u043f\u043e\u0442\u043e\u0447\u043d\u0438\u0445","Collapse all":"\u0417\u0430\u043a\u0440\u0438\u0442\u0438 \u0432\u0441\u0456","Compares current time with astrological event":"\u041f\u043e\u0440\u0456\u0432\u043d\u044e\u0454 \u043f\u043e\u0442\u043e\u0447\u043d\u0438\u0439 \u0447\u0430\u0441 \u0437 \u0430\u0441\u0442\u0440\u043e\u043d\u043e\u043c\u0456\u0447\u043d\u043e\u044e \u043f\u043e\u0434\u0456\u0454\u044e","Compares current time with the user specific time":"\u041f\u043e\u0440\u0456\u0432\u043d\u044e\u0454 \u043f\u043e\u0442\u043e\u0447\u043d\u0438\u0439 \u0447\u0430\u0441 \u0456\u0437 \u043a\u043e\u043d\u043a\u0440\u0435\u0442\u043d\u0438\u043c \u0447\u0430\u0441\u043e\u043c \u043a\u043e\u0440\u0438\u0441\u0442\u0443\u0432\u0430\u0447\u0430","Compares the state value with user defined value":"\u041f\u043e\u0440\u0456\u0432\u043d\u044e\u0454 \u0437\u043d\u0430\u0447\u0435\u043d\u043d\u044f \u0441\u0442\u0430\u043d\u0443 \u0437 \u0432\u0438\u0437\u043d\u0430\u0447\u0435\u043d\u0438\u043c \u043a\u043e\u0440\u0438\u0441\u0442\u0443\u0432\u0430\u0447\u0435\u043c \u0437\u043d\u0430\u0447\u0435\u043d\u043d\u044f\u043c","Condition":"\u0425\u0432\u043e\u0440\u043e\u0431\u0430","Conditions":"\u0423\u043c\u043e\u0432\u0438","Configuration not saved.":"\u041a\u043e\u043d\u0444\u0456\u0433\u0443\u0440\u0430\u0446\u0456\u044f \u043d\u0435 \u0437\u0431\u0435\u0440\u0435\u0436\u0435\u043d\u0430.","Console":"\u041a\u043e\u043d\u0441\u043e\u043b\u044c","Control or update some state":"\u041a\u043e\u043d\u0442\u0440\u043e\u043b\u044e\u0439\u0442\u0435 \u0430\u0431\u043e \u043e\u043d\u043e\u0432\u043b\u044e\u0439\u0442\u0435 \u043f\u0435\u0432\u043d\u0438\u0439 \u0441\u0442\u0430\u043d","Control or update some state with delay":"\u041a\u043e\u043d\u0442\u0440\u043e\u043b\u044e\u0439\u0442\u0435 \u0430\u0431\u043e \u043e\u043d\u043e\u0432\u043b\u044e\u0439\u0442\u0435 \u0434\u0435\u044f\u043a\u0438\u0439 \u0441\u0442\u0430\u043d \u0456\u0437 \u0437\u0430\u0442\u0440\u0438\u043c\u043a\u043e\u044e","Convert blockly to javascript for ever.":"\u041d\u0430\u0437\u0430\u0432\u0436\u0434\u0438 \u043a\u043e\u043d\u0432\u0435\u0440\u0442\u0443\u0439\u0442\u0435 Blockly \u0443 Javascript.","Copied":"\u0421\u043a\u043e\u043f\u0456\u0439\u043e\u0432\u0430\u043d\u043e","Copy script":"\u041a\u043e\u043f\u0456\u044e\u0432\u0430\u0442\u0438 \u0441\u0446\u0435\u043d\u0430\u0440\u0456\u0439","Copy to clipboard":"\u041a\u043e\u043f\u0456\u044e\u0432\u0430\u0442\u0438 \u0432 \u0431\u0443\u0444\u0435\u0440 \u043e\u0431\u043c\u0456\u043d\u0443","Create new":"\u0421\u0442\u0432\u043e\u0440\u0438\u0442\u0438 \u043d\u043e\u0432\u0438\u0439","Create new folder":"\u0421\u0442\u0432\u043e\u0440\u0438\u0442\u0438 \u043d\u043e\u0432\u0443 \u043f\u0430\u043f\u043a\u0443","Create new script":"\u0421\u0442\u0432\u043e\u0440\u0456\u0442\u044c \u043d\u043e\u0432\u0438\u0439 \u0441\u0446\u0435\u043d\u0430\u0440\u0456\u0439","Create or edit CRON or time wizard":"\u0421\u0442\u0432\u043e\u0440\u0435\u043d\u043d\u044f \u0430\u0431\u043e \u0440\u0435\u0434\u0430\u0433\u0443\u0432\u0430\u043d\u043d\u044f CRON \u0430\u0431\u043e \u043c\u0430\u0439\u0441\u0442\u0440\u0430 \u0447\u0430\u0441\u0443","Dark Theme":"\u0422\u0435\u043c\u043d\u0430 \u0442\u0435\u043c\u0430","Dark style":"\u0422\u0435\u043c\u043d\u0438\u0439 \u0441\u0442\u0438\u043b\u044c","Date":"\u0414\u0430\u0442\u0430","Debug instance":"\u0415\u043a\u0437\u0435\u043c\u043f\u043b\u044f\u0440 \u043d\u0430\u043b\u0430\u0433\u043e\u0434\u0436\u0435\u043d\u043d\u044f","Debug options":"\u041f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u0438 \u043d\u0430\u043b\u0430\u0433\u043e\u0434\u0436\u0435\u043d\u043d\u044f","December":"\u0413\u0440\u0443\u0434\u0435\u043d\u044c","Default":"\u0417\u0430 \u0437\u0430\u043c\u043e\u0432\u0447\u0443\u0432\u0430\u043d\u043d\u044f\u043c","Define cron...":"\u0412\u0438\u0437\u043d\u0430\u0447\u0438\u0442\u0438 cron...","Define schedule...":"\u0412\u0438\u0437\u043d\u0430\u0447\u0438\u0442\u0438 \u0440\u043e\u0437\u043a\u043b\u0430\u0434...","Delay":"\u0417\u0430\u0442\u0440\u0438\u043c\u043a\u0430","Delete":"\u0412\u0438\u0434\u0430\u043b\u0438\u0442\u0438","Delete %s":"\u0412\u0438\u0434\u0430\u043b\u0438\u0442\u0438 %s...","Delete folder":"\u0412\u0438\u0434\u0430\u043b\u0438\u0442\u0438 \u043f\u0430\u043f\u043a\u0443","Delete script":"\u0412\u0438\u0434\u0430\u043b\u0438\u0442\u0438 \u0441\u0446\u0435\u043d\u0430\u0440\u0456\u0439","Deselect all":"\u0417\u043d\u044f\u0442\u0438 \u0432\u0438\u0431\u0456\u0440 \u0456\u0437 \u0443\u0441\u0456\u0445","Discard changes for %s":"\u0421\u043a\u0430\u0441\u0443\u0432\u0430\u0442\u0438 \u0437\u043c\u0456\u043d\u0438 \u0434\u043b\u044f %s","Done":"\u0413\u043e\u0442\u043e\u0432\u043e","Drop some files here or click...":"\u041f\u0435\u0440\u0435\u0442\u044f\u0433\u043d\u0456\u0442\u044c \u043a\u0456\u043b\u044c\u043a\u0430 \u0444\u0430\u0439\u043b\u0456\u0432 \u0441\u044e\u0434\u0438 \u0430\u0431\u043e \u043d\u0430\u0442\u0438\u0441\u043d\u0456\u0442\u044c...","Edit script or just double click":"\u0412\u0456\u0434\u0440\u0435\u0434\u0430\u0433\u0443\u0439\u0442\u0435 \u0441\u0446\u0435\u043d\u0430\u0440\u0456\u0439 \u0430\u0431\u043e \u043f\u0440\u043e\u0441\u0442\u043e \u0434\u0432\u0456\u0447\u0456 \u043a\u043b\u0430\u0446\u043d\u0456\u0442\u044c","End search mode":"\u0417\u0430\u0432\u0435\u0440\u0448\u0438\u0442\u0438 \u0440\u0435\u0436\u0438\u043c \u043f\u043e\u0448\u0443\u043a\u0443","Error":"\u041f\u043e\u043c\u0438\u043b\u043a\u0430","Error was found":"\u0412\u0438\u044f\u0432\u043b\u0435\u043d\u043e \u043f\u043e\u043c\u0438\u043b\u043a\u0443","Every day":"\u041a\u043e\u0436\u0435\u043d \u0434\u0435\u043d\u044c","Exec":"\u0412\u0438\u043a\u043e\u043d\u0430\u0432\u0447\u0430 \u043e\u0431\u043e\u043b\u043e\u043d\u043a\u0430","Executes some shell command":"\u0412\u0438\u043a\u043e\u043d\u0443\u0454 \u043f\u0435\u0432\u043d\u0443 \u043a\u043e\u043c\u0430\u043d\u0434\u0443 \u043e\u0431\u043e\u043b\u043e\u043d\u043a\u0438","Existing scripts will be overwritten.":"\u0406\u0441\u043d\u0443\u044e\u0447\u0456 \u0441\u0446\u0435\u043d\u0430\u0440\u0456\u0457 \u0431\u0443\u0434\u0435 \u043f\u0435\u0440\u0435\u0437\u0430\u043f\u0438\u0441\u0430\u043d\u043e.","Expand all":"\u0420\u043e\u0437\u0433\u043e\u0440\u043d\u0443\u0442\u0438 \u0432\u0441\u0435","Expert mode":"\u0415\u043a\u0441\u043f\u0435\u0440\u0442\u043d\u0438\u0439 \u0440\u0435\u0436\u0438\u043c","Explanation":"\u041f\u043e\u044f\u0441\u043d\u0435\u043d\u043d\u044f","Export":"\u0415\u043a\u0441\u043f\u043e\u0440\u0442","Export all scripts":"\u0415\u043a\u0441\u043f\u043e\u0440\u0442\u0443\u0432\u0430\u0442\u0438 \u0432\u0441\u0456 \u0441\u0446\u0435\u043d\u0430\u0440\u0456\u0457","Export blocks":"\u0415\u043a\u0441\u043f\u043e\u0440\u0442 \u0431\u043b\u043e\u043a\u0456\u0432","Export selected blocks":"\u0415\u043a\u0441\u043f\u043e\u0440\u0442\u0443\u0432\u0430\u0442\u0438 \u0432\u0438\u0431\u0440\u0430\u043d\u0456 \u0431\u043b\u043e\u043a\u0438","Februar":"\u041b\u044e\u0442\u0438\u0439","February":"\u041b\u044e\u0442\u0438\u0439","Filter":"\u0444\u0456\u043b\u044c\u0442\u0440","Folder":"\u041f\u0430\u043f\u043a\u0430","Fr":"\u041e","Friday":"\u041f\'\u044f\u0442\u043d\u0438\u0446\u044f","Function":"\u0444\u0443\u043d\u043a\u0446\u0456\u044f","Function editor":"\u0420\u0435\u0434\u0430\u043a\u0442\u043e\u0440 \u0444\u0443\u043d\u043a\u0446\u0456\u0439","Function: executed":"\u0424\u0443\u043d\u043a\u0446\u0456\u044f: \u0432\u0438\u043a\u043e\u043d\u0430\u043d\u043e","Go to next line":"\u041f\u0435\u0440\u0435\u0439\u0442\u0438 \u0434\u043e \u043d\u0430\u0441\u0442\u0443\u043f\u043d\u043e\u0433\u043e \u0440\u044f\u0434\u043a\u0430","HTTP Call":"\u0412\u0438\u043a\u043b\u0438\u043a HTTP","Hide logs":"\u041f\u0440\u0438\u0445\u043e\u0432\u0430\u0442\u0438 \u0436\u0443\u0440\u043d\u0430\u043b\u0438","ID":"ID","ID1":"ID1","ID2":"ID2","Import":"\u0406\u043c\u043f\u043e\u0440\u0442","Import blocks":"\u0406\u043c\u043f\u043e\u0440\u0442 \u0431\u043b\u043e\u043a\u0456\u0432","Import error":"\u041f\u043e\u043c\u0438\u043b\u043a\u0430 \u0456\u043c\u043f\u043e\u0440\u0442\u0443","Import scripts":"\u0406\u043c\u043f\u043e\u0440\u0442 \u0441\u043a\u0440\u0438\u043f\u0442\u0456\u0432","Insert object ID":"\u0412\u0441\u0442\u0430\u0432\u0442\u0435 ID \u043e\u0431\'\u0454\u043a\u0442\u0430","Instance":"\u0415\u043a\u0437\u0435\u043c\u043f\u043b\u044f\u0440","Instance is disabled":"\u041f\u0440\u0438\u043c\u0456\u0440\u043d\u0438\u043a \u0432\u0438\u043c\u043a\u043d\u0435\u043d\u043e","Instance:":"\u0435\u043a\u0437\u0435\u043c\u043f\u043b\u044f\u0440:","Instances":"\u041f\u0440\u0438\u043c\u0456\u0440\u043d\u0438\u043a\u0438","Instructions":"\u0406\u043d\u0441\u0442\u0440\u0443\u043a\u0446\u0456\u0457","Invalid CRON":"\u041d\u0435\u0434\u0456\u0439\u0441\u043d\u0438\u0439 CRON","It will not be possible to revert this operation.":"\u0421\u043a\u0430\u0441\u0443\u0432\u0430\u0442\u0438 \u0446\u044e \u043e\u043f\u0435\u0440\u0430\u0446\u0456\u044e \u0431\u0443\u0434\u0435 \u043d\u0435\u043c\u043e\u0436\u043b\u0438\u0432\u043e.","JS description":"\u0421\u0442\u0432\u043e\u0440\u0435\u043d\u043d\u044f \u043f\u0440\u0430\u0432\u0438\u043b \u0448\u043b\u044f\u0445\u043e\u043c \u043d\u0430\u043f\u0438\u0441\u0430\u043d\u043d\u044f Javascript","Januar":"\u0441\u0456\u0447\u0435\u043d\u044c","January":"\u0441\u0456\u0447\u043d\u044f","July":"\u043b\u0438\u043f\u0435\u043d\u044c","June":"\u0447\u0435\u0440\u0432\u0435\u043d\u044c","Just check":"\u041f\u0440\u043e\u0441\u0442\u043e \u043f\u0435\u0440\u0435\u0432\u0456\u0440\u0442\u0435","Language:":"\u041c\u043e\u0432\u0443:","Learn More":"\u0412\u0438\u0432\u0447\u0430\u0439\u0442\u0435 \u0431\u0456\u043b\u044c\u0448\u0435","Light style":"\u041b\u0435\u0433\u043a\u0438\u0439 \u0441\u0442\u0438\u043b\u044c","Limit":"\u041b\u0456\u043c\u0456\u0442","Locate file":"\u0417\u043d\u0430\u0439\u0442\u0438 \u0444\u0430\u0439\u043b","Log outputs":"\u0412\u0438\u0445\u043e\u0434\u0438 \u0436\u0443\u0440\u043d\u0430\u043b\u0443","Log text":"\u0422\u0435\u043a\u0441\u0442 \u0436\u0443\u0440\u043d\u0430\u043b\u0443","Make a HTTP get request":"\u0417\u0440\u043e\u0431\u0456\u0442\u044c HTTP-\u0437\u0430\u043f\u0438\u0442 \u043d\u0430 \u043e\u0442\u0440\u0438\u043c\u0430\u043d\u043d\u044f","Make a pause between actions":"\u041c\u0456\u0436 \u0434\u0456\u044f\u043c\u0438 \u0440\u043e\u0431\u0456\u0442\u044c \u043f\u0430\u0443\u0437\u0443","March":"\u0431\u0435\u0440\u0435\u0437\u0435\u043d\u044c","March ":"\u0431\u0435\u0440\u0435\u0437\u0435\u043d\u044c","May":"\u041c\u043e\u0436\u0435","Menu":"\u041c\u0435\u043d\u044e","Message":"\u043f\u043e\u0432\u0456\u0434\u043e\u043c\u043b\u0435\u043d\u043d\u044f","Mo":"\u043f\u043d","Monday":"\u043f\u043e\u043d\u0435\u0434\u0456\u043b\u043e\u043a","Month":"\u043c\u0456\u0441\u044f\u0446\u044c","Name":"\u0406\u043c\'\u044f","No active host found":"\u0410\u043a\u0442\u0438\u0432\u043d\u0438\u0439 \u0445\u043e\u0441\u0442 \u043d\u0435 \u0437\u043d\u0430\u0439\u0434\u0435\u043d\u043e","Nothing found":"\u041d\u0456\u0447\u043e\u0433\u043e \u043d\u0435 \u0437\u043d\u0430\u0439\u0434\u0435\u043d\u043e","November":"\u041b\u0438\u0441\u0442\u043e\u043f\u0430\u0434","OK":"\u0432 \u043f\u043e\u0440\u044f\u0434\u043a\u0443","October":"\u0436\u043e\u0432\u0442\u0435\u043d\u044c","Ok":"\u0412 \u043f\u043e\u0440\u044f\u0434\u043a\u0443","On condition change":"\u0417\u0430 \u0443\u043c\u043e\u0432\u0438 \u0437\u043c\u0456\u043d\u0438 \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442\u0443","On script save or adapter start":"\u041f\u0456\u0434 \u0447\u0430\u0441 \u0437\u0431\u0435\u0440\u0435\u0436\u0435\u043d\u043d\u044f \u0441\u0446\u0435\u043d\u0430\u0440\u0456\u044e \u0430\u0431\u043e \u0437\u0430\u043f\u0443\u0441\u043a\u0443 \u0430\u0434\u0430\u043f\u0442\u0435\u0440\u0430","On weekdays":"\u0412 \u0431\u0443\u0434\u043d\u0456 \u0434\u043d\u0456","Operate two states":"\u041a\u0435\u0440\u0443\u0439\u0442\u0435 \u0434\u0432\u043e\u043c\u0430 \u0441\u0442\u0430\u043d\u0430\u043c\u0438","Operations with two states":"\u041e\u043f\u0435\u0440\u0430\u0446\u0456\u0457 \u0437 \u0434\u0432\u043e\u043c\u0430 \u0441\u0442\u0430\u043d\u0430\u043c\u0438","Pause":"\u041f\u0430\u0443\u0437\u0430","Pause execution":"\u041f\u0440\u0438\u0437\u0443\u043f\u0438\u043d\u0438\u0442\u0438 \u0432\u0438\u043a\u043e\u043d\u0430\u043d\u043d\u044f","Pause script":"\u041f\u0440\u0438\u0437\u0443\u043f\u0438\u043d\u0438\u0442\u0438 \u0441\u0446\u0435\u043d\u0430\u0440\u0456\u0439","Phone:":"\u0442\u0435\u043b\u0435\u0444\u043e\u043d:","Please select object ID...":"\u0412\u0438\u0431\u0435\u0440\u0456\u0442\u044c \u0456\u0434\u0435\u043d\u0442\u0438\u0444\u0456\u043a\u0430\u0442\u043e\u0440 \u043e\u0431\'\u0454\u043a\u0442\u0430...","Print some text in log":"\u041d\u0430\u0434\u0440\u0443\u043a\u0443\u0432\u0430\u0442\u0438 \u0442\u0435\u043a\u0441\u0442 \u0443 \u0436\u0443\u0440\u043d\u0430\u043b\u0456","Priority:":"\u041f\u0440\u0456\u043e\u0440\u0438\u0442\u0435\u0442:","Pushover":"Pushover","Pushsafer":"Pushsafer","Read only ID selected: %s":"\u0412\u0438\u0431\u0440\u0430\u043d\u043e \u0456\u0434\u0435\u043d\u0442\u0438\u0444\u0456\u043a\u0430\u0442\u043e\u0440 \u043b\u0438\u0448\u0435 \u0434\u043b\u044f \u0447\u0438\u0442\u0430\u043d\u043d\u044f: %s","Rename":"\u041f\u0435\u0440\u0435\u0439\u043c\u0435\u043d\u0443\u0432\u0430\u0442\u0438","Reorder scripts in folders":"\u0417\u043c\u0456\u043d\u0430 \u043f\u043e\u0440\u044f\u0434\u043a\u0443 \u0441\u0446\u0435\u043d\u0430\u0440\u0456\u0457\u0432 \u0443 \u043f\u0430\u043f\u043a\u0430\u0445","Repeat":"\u041f\u043e\u0432\u0442\u043e\u0440\u0456\u0442\u044c","Restart":"\u041f\u0435\u0440\u0435\u0437\u0430\u043f\u0443\u0441\u0442\u0456\u0442\u044c","Resume execution":"\u0412\u0456\u0434\u043d\u043e\u0432\u0438\u0442\u0438 \u0432\u0438\u043a\u043e\u043d\u0430\u043d\u043d\u044f","Root folder":"\u041a\u043e\u0440\u0435\u043d\u0435\u0432\u0430 \u043f\u0430\u043f\u043a\u0430","Rules description":"\u0421\u0442\u0432\u043e\u0440\u044e\u0439\u0442\u0435 \u043f\u0440\u0430\u0432\u0438\u043b\u0430 \u0437 \u0431\u043b\u043e\u043a\u0430\u043c\u0438 IF, THEN, ELSE","Run script":"\u0417\u0430\u043f\u0443\u0441\u0442\u0456\u0442\u044c \u0441\u0446\u0435\u043d\u0430\u0440\u0456\u0439","Sa":"Sa","Saturday":"\u0421\u0443\u0431\u043e\u0442\u0430","Save":"\u0437\u0431\u0435\u0440\u0435\u0433\u0442\u0438","Save all":"\u0417\u0431\u0435\u0440\u0435\u0433\u0442\u0438 \u0432\u0441\u0435","Say It":"\u0421\u043a\u0430\u0436\u0438 \u0446\u0435","Say some text via sayit adapter":"\u0421\u043a\u0430\u0436\u0456\u0442\u044c \u0442\u0435\u043a\u0441\u0442 \u0447\u0435\u0440\u0435\u0437 \u0430\u0434\u0430\u043f\u0442\u0435\u0440 sayit","Schedule":"\u0440\u043e\u0437\u043a\u043b\u0430\u0434","Script":"\u0421\u0446\u0435\u043d\u0430\u0440\u0456\u0439","Script %s was modified on disk":"\u0421\u0446\u0435\u043d\u0430\u0440\u0456\u0439 %s \u0437\u043c\u0456\u043d\u0435\u043d\u043e \u043d\u0430 \u0434\u0438\u0441\u043a\u0443","Script is not running":"\u0421\u0446\u0435\u043d\u0430\u0440\u0456\u0439 \u043d\u0435 \u043f\u0440\u0430\u0446\u044e\u0454","Search in scripts":"\u041f\u043e\u0448\u0443\u043a \u0443 \u0441\u043a\u0440\u0438\u043f\u0442\u0430\u0445","Search...":"\u043f\u043e\u0448\u0443\u043a...","Select all":"\u0412\u0438\u0431\u0440\u0430\u0442\u0438 \u0432\u0441\u0435","Send email":"\u0412\u0456\u0434\u043f\u0440\u0430\u0432\u0438\u0442\u0438 \u043b\u0438\u0441\u0442","Sends an email":"\u041d\u0430\u0434\u0441\u0438\u043b\u0430\u0454 \u0435\u043b\u0435\u043a\u0442\u0440\u043e\u043d\u043d\u0438\u0439 \u043b\u0438\u0441\u0442","Sends message via Pushsafer":"\u041d\u0430\u0434\u0441\u0438\u043b\u0430\u0454 \u043f\u043e\u0432\u0456\u0434\u043e\u043c\u043b\u0435\u043d\u043d\u044f \u0447\u0435\u0440\u0435\u0437 Pushsafer","Sends message via pushover":"\u041d\u0430\u0434\u0441\u0438\u043b\u0430\u0454 \u043f\u043e\u0432\u0456\u0434\u043e\u043c\u043b\u0435\u043d\u043d\u044f \u0447\u0435\u0440\u0435\u0437 pushover","Sends message via telegram":"\u041d\u0430\u0434\u0441\u0438\u043b\u0430\u0454 \u043f\u043e\u0432\u0456\u0434\u043e\u043c\u043b\u0435\u043d\u043d\u044f \u0447\u0435\u0440\u0435\u0437 \u0442\u0435\u043b\u0435\u0433\u0440\u0430\u043c","Sends message via whatsapp-cmb":"\u041d\u0430\u0434\u0441\u0438\u043b\u0430\u0454 \u043f\u043e\u0432\u0456\u0434\u043e\u043c\u043b\u0435\u043d\u043d\u044f \u0447\u0435\u0440\u0435\u0437 whatsapp-cmb","September":"\u0412\u0435\u0440\u0435\u0441\u0435\u043d\u044c","Set state action":"\u0412\u0441\u0442\u0430\u043d\u043e\u0432\u0438\u0442\u0438 \u0434\u0456\u044e \u0441\u0442\u0430\u043d\u0443","Set with delay":"\u0412\u0441\u0442\u0430\u043d\u043e\u0432\u0438\u0442\u0438 \u0456\u0437 \u0437\u0430\u0442\u0440\u0438\u043c\u043a\u043e\u044e","Shell command":"\u041a\u043e\u043c\u0430\u043d\u0434\u0430 \u043e\u0431\u043e\u043b\u043e\u043d\u043a\u0438","Show javascript code":"\u041f\u043e\u043a\u0430\u0437\u0430\u0442\u0438 \u043a\u043e\u0434 Javascript","Show logs":"\u041f\u043e\u043a\u0430\u0437\u0430\u0442\u0438 \u0436\u0443\u0440\u043d\u0430\u043b\u0438","Show only paused scripts":"\u041f\u043e\u043a\u0430\u0437\u0443\u0432\u0430\u0442\u0438 \u043b\u0438\u0448\u0435 \u043f\u0440\u0438\u0437\u0443\u043f\u0438\u043d\u0435\u043d\u0456 \u0441\u0446\u0435\u043d\u0430\u0440\u0456\u0457","Show only running scripts":"\u041f\u043e\u043a\u0430\u0437\u0443\u0432\u0430\u0442\u0438 \u043b\u0438\u0448\u0435 \u0437\u0430\u043f\u0443\u0449\u0435\u043d\u0456 \u0441\u0446\u0435\u043d\u0430\u0440\u0456\u0457","Show only scripts with problems":"\u041f\u043e\u043a\u0430\u0437\u0443\u0432\u0430\u0442\u0438 \u043b\u0438\u0448\u0435 \u0441\u0446\u0435\u043d\u0430\u0440\u0456\u0457 \u0437 \u043f\u0440\u043e\u0431\u043b\u0435\u043c\u0430\u043c\u0438","Simulate":"\u0421\u0438\u043c\u0443\u043b\u044e\u0432\u0430\u0442\u0438","Some files will be rejected":"\u0414\u0435\u044f\u043a\u0456 \u0444\u0430\u0439\u043b\u0438 \u0431\u0443\u0434\u0435 \u0432\u0456\u0434\u0445\u0438\u043b\u0435\u043d\u043e","Sound:":"\u0437\u0432\u0443\u043a:","Stack":"\u0421\u0442\u0435\u043a","Start":"\u0441\u0442\u0430\u0440\u0442","Start script":"\u0417\u0430\u043f\u0443\u0441\u0442\u0438\u0442\u0438 \u0441\u0446\u0435\u043d\u0430\u0440\u0456\u0439","State":"\u0414\u0435\u0440\u0436\u0430\u0432\u0430","State condition":"\u0421\u0442\u0430\u043d \u0441\u0442\u0430\u043d\u0443","Step into function":"\u041a\u0440\u043e\u043a \u0443 \u0444\u0443\u043d\u043a\u0446\u0456\u0457","Step out from function":"\u0412\u0438\u0439\u0442\u0438 \u0437 \u0444\u0443\u043d\u043a\u0446\u0456\u0457","Stop on exception":"\u0417\u0443\u043f\u0438\u043d\u043a\u0430 \u043d\u0430 \u0432\u0438\u043d\u044f\u0442\u043a\u0430\u0445","Su":"\u041d\u0434","Subject:":"\u0422\u0435\u043c\u0430:","Sunday":"\u043d\u0435\u0434\u0456\u043b\u044f","TS description":"\u0421\u0442\u0432\u043e\u0440\u0435\u043d\u043d\u044f \u043f\u0440\u0430\u0432\u0438\u043b \u0448\u043b\u044f\u0445\u043e\u043c \u043d\u0430\u043f\u0438\u0441\u0430\u043d\u043d\u044f Typescript","Telegram":"\u0422\u0435\u043b\u0435\u0433\u0440\u0430\u043c\u0430","Text:":"\u0422\u0435\u043a\u0441\u0442:","Th":"\u0447\u0442","The script will be stopped and must be activated manually after debugging. Continue?":"\u0421\u0446\u0435\u043d\u0430\u0440\u0456\u0439 \u0431\u0443\u0434\u0435 \u0437\u0443\u043f\u0438\u043d\u0435\u043d\u043e, \u0456 \u0439\u043e\u0433\u043e \u043d\u0435\u043e\u0431\u0445\u0456\u0434\u043d\u043e \u0430\u043a\u0442\u0438\u0432\u0443\u0432\u0430\u0442\u0438 \u0432\u0440\u0443\u0447\u043d\u0443 \u043f\u0456\u0441\u043b\u044f \u043d\u0430\u043b\u0430\u0433\u043e\u0434\u0436\u0435\u043d\u043d\u044f. \u041f\u0440\u043e\u0434\u043e\u0432\u0436\u0438\u0442\u0438?","This is advances option. You can write your own code here and it will be executed on trigger":"\u0426\u0435 \u0430\u0432\u0430\u043d\u0441\u043e\u0432\u0438\u0439 \u0432\u0430\u0440\u0456\u0430\u043d\u0442. \u0412\u0438 \u043c\u043e\u0436\u0435\u0442\u0435 \u043d\u0430\u043f\u0438\u0441\u0430\u0442\u0438 \u0442\u0443\u0442 \u0441\u0432\u0456\u0439 \u0432\u043b\u0430\u0441\u043d\u0438\u0439 \u043a\u043e\u0434, \u0456 \u0432\u0456\u043d \u0431\u0443\u0434\u0435 \u0432\u0438\u043a\u043e\u043d\u0430\u043d\u043e \u043d\u0430 \u0442\u0440\u0438\u0433\u0435\u0440\u0456","Thursday":"\u0447\u0435\u0442\u0432\u0435\u0440","Time condition":"\u0423\u043c\u043e\u0432\u0430 \u0447\u0430\u0441\u0443","Title:":"\u041d\u0430\u0437\u0432\u0430:","To:":"\u0434\u043e:","Trigger with value":"\u0422\u0440\u0438\u0433\u0435\u0440 \u0437\u0456 \u0437\u043d\u0430\u0447\u0435\u043d\u043d\u044f\u043c","Triggered":"\u0421\u043f\u0440\u0430\u0446\u044c\u043e\u0432\u0443\u0454","Triggers":"\u0422\u0440\u0438\u0433\u0435\u0440\u0438","Triggers the on script saving or the javascript instance restart":"\u0406\u043d\u0456\u0446\u0456\u044e\u0454 \u0437\u0431\u0435\u0440\u0435\u0436\u0435\u043d\u043d\u044f \u0441\u0446\u0435\u043d\u0430\u0440\u0456\u044e \u0430\u0431\u043e \u043f\u0435\u0440\u0435\u0437\u0430\u043f\u0443\u0441\u043a \u0435\u043a\u0437\u0435\u043c\u043f\u043b\u044f\u0440\u0430 JavaScript","Triggers the rule on update or change of some state":"\u0417\u0430\u043f\u0443\u0441\u043a\u0430\u0454 \u043f\u0440\u0430\u0432\u0438\u043b\u043e \u043f\u0440\u0438 \u043e\u043d\u043e\u0432\u043b\u0435\u043d\u043d\u0456 \u0430\u0431\u043e \u0437\u043c\u0456\u043d\u0456 \u044f\u043a\u043e\u0433\u043e\u0441\u044c \u0441\u0442\u0430\u043d\u0443","Triggers the rule periodically or on some specific time":"\u0421\u043f\u0440\u0430\u0446\u044c\u043e\u0432\u0443\u0454 \u043f\u0440\u0430\u0432\u0438\u043b\u043e \u043f\u0435\u0440\u0456\u043e\u0434\u0438\u0447\u043d\u043e \u0430\u0431\u043e \u0432 \u043f\u0435\u0432\u043d\u0438\u0439 \u0447\u0430\u0441","Tu":"\u0432\u0442","Tuesday":"\u0432\u0456\u0432\u0442\u043e\u0440\u043e\u043a","URL":"URL","Unknown error":"\u041d\u0435\u0432\u0456\u0434\u043e\u043c\u0430 \u043f\u043e\u043c\u0438\u043b\u043a\u0430","Unknown error!":"\u041d\u0435\u0432\u0456\u0434\u043e\u043c\u0430 \u043f\u043e\u043c\u0438\u043b\u043a\u0430!","User function":"\u0424\u0443\u043d\u043a\u0446\u0456\u044f \u043a\u043e\u0440\u0438\u0441\u0442\u0443\u0432\u0430\u0447\u0430","User:":"\u041a\u043e\u0440\u0438\u0441\u0442\u0443\u0432\u0430\u0447:","Value":"\u0417\u043d\u0430\u0447\u0435\u043d\u043d\u044f","Vibration:":"\u0412\u0456\u0431\u0440\u0430\u0446\u0456\u044f:","Volume":"\u041e\u0431\u0441\u044f\u0433","We":"\u043c\u0438","Wednesday":"\u0421\u0435\u0440\u0435\u0434\u0430","Whatsapp-cmb":"Whatsapp-cmb","Write":"\u041d\u0430\u043f\u0438\u0448\u0456\u0442\u044c","Write your own code":"\u041d\u0430\u043f\u0438\u0448\u0456\u0442\u044c \u0432\u043b\u0430\u0441\u043d\u0438\u0439 \u043a\u043e\u0434","Yes":"\u0422\u0430\u043a","Yet exists!":"\u0412\u0441\u0435 \u0436 \u0456\u0441\u043d\u0443\u0454!","You can use %s in the URL to use current trigger value or %id to use the triggered object ID":"\u0412\u0438 \u043c\u043e\u0436\u0435\u0442\u0435 \u0432\u0438\u043a\u043e\u0440\u0438\u0441\u0442\u043e\u0432\u0443\u0432\u0430\u0442\u0438 %s \u0432 URL-\u0430\u0434\u0440\u0435\u0441\u0456, \u0449\u043e\u0431 \u0432\u0438\u043a\u043e\u0440\u0438\u0441\u0442\u043e\u0432\u0443\u0432\u0430\u0442\u0438 \u043f\u043e\u0442\u043e\u0447\u043d\u0435 \u0437\u043d\u0430\u0447\u0435\u043d\u043d\u044f \u0442\u0440\u0438\u0433\u0435\u0440\u0430, %id, \u0449\u043e\u0431 \u0432\u0438\u043a\u043e\u0440\u0438\u0441\u0442\u043e\u0432\u0443\u0432\u0430\u0442\u0438 \u0456\u0434\u0435\u043d\u0442\u0438\u0444\u0456\u043a\u0430\u0442\u043e\u0440 \u0430\u043a\u0442\u0438\u0432\u043e\u0432\u0430\u043d\u043e\u0433\u043e \u043e\u0431\u2019\u0454\u043a\u0442\u0430, %name, \u0449\u043e\u0431 \u043f\u043e\u043a\u0430\u0437\u0430\u0442\u0438 \u043d\u0430\u0437\u0432\u0443 \u0456\u0434\u0435\u043d\u0442\u0438\u0444\u0456\u043a\u0430\u0442\u043e\u0440\u0430 \u0430\u043a\u0442\u0438\u0432\u043e\u0432\u0430\u043d\u043e\u0433\u043e \u043e\u0431\u2019\u0454\u043a\u0442\u0430, \u0430\u0431\u043e %old, \u0449\u043e\u0431 \u0432\u0438\u043a\u043e\u0440\u0438\u0441\u0442\u043e\u0432\u0443\u0432\u0430\u0442\u0438 \u0441\u0442\u0430\u0440\u0435 \u0437\u043d\u0430\u0447\u0435\u043d\u043d\u044f \u0442\u0440\u0438\u0433\u0435\u0440\u0430","You can use %s in the command to use current trigger value or %id to use the triggered object ID":"\u0412\u0438 \u043c\u043e\u0436\u0435\u0442\u0435 \u0432\u0438\u043a\u043e\u0440\u0438\u0441\u0442\u043e\u0432\u0443\u0432\u0430\u0442\u0438 %s \u0443 \u043a\u043e\u043c\u0430\u043d\u0434\u0456, \u0449\u043e\u0431 \u0432\u0438\u043a\u043e\u0440\u0438\u0441\u0442\u043e\u0432\u0443\u0432\u0430\u0442\u0438 \u043f\u043e\u0442\u043e\u0447\u043d\u0435 \u0437\u043d\u0430\u0447\u0435\u043d\u043d\u044f \u0442\u0440\u0438\u0433\u0435\u0440\u0430, %id, \u0449\u043e\u0431 \u0432\u0438\u043a\u043e\u0440\u0438\u0441\u0442\u043e\u0432\u0443\u0432\u0430\u0442\u0438 \u0456\u0434\u0435\u043d\u0442\u0438\u0444\u0456\u043a\u0430\u0442\u043e\u0440 \u0430\u043a\u0442\u0438\u0432\u043e\u0432\u0430\u043d\u043e\u0433\u043e \u043e\u0431\u2019\u0454\u043a\u0442\u0430, %name, \u0449\u043e\u0431 \u043f\u043e\u043a\u0430\u0437\u0430\u0442\u0438 \u043d\u0430\u0437\u0432\u0443 \u0456\u0434\u0435\u043d\u0442\u0438\u0444\u0456\u043a\u0430\u0442\u043e\u0440\u0430 \u0430\u043a\u0442\u0438\u0432\u043e\u0432\u0430\u043d\u043e\u0433\u043e \u043e\u0431\u2019\u0454\u043a\u0442\u0430, \u0430\u0431\u043e %old, \u0449\u043e\u0431 \u0432\u0438\u043a\u043e\u0440\u0438\u0441\u0442\u043e\u0432\u0443\u0432\u0430\u0442\u0438 \u0441\u0442\u0430\u0440\u0435 \u0437\u043d\u0430\u0447\u0435\u043d\u043d\u044f \u0442\u0440\u0438\u0433\u0435\u0440\u0430","You can use %s in the text to display current trigger value or %id to display the triggered object ID":"\u0412\u0438 \u043c\u043e\u0436\u0435\u0442\u0435 \u0432\u0438\u043a\u043e\u0440\u0438\u0441\u0442\u043e\u0432\u0443\u0432\u0430\u0442\u0438 %s \u0443 \u0442\u0435\u043a\u0441\u0442\u0456 \u0434\u043b\u044f \u0432\u0456\u0434\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u043d\u044f \u043f\u043e\u0442\u043e\u0447\u043d\u043e\u0433\u043e \u0437\u043d\u0430\u0447\u0435\u043d\u043d\u044f \u0442\u0440\u0438\u0433\u0435\u0440\u0430, %id \u0434\u043b\u044f \u0432\u0438\u043a\u043e\u0440\u0438\u0441\u0442\u0430\u043d\u043d\u044f \u0456\u0434\u0435\u043d\u0442\u0438\u0444\u0456\u043a\u0430\u0442\u043e\u0440\u0430 \u0430\u043a\u0442\u0438\u0432\u043e\u0432\u0430\u043d\u043e\u0433\u043e \u043e\u0431\u2019\u0454\u043a\u0442\u0430, %name \u0434\u043b\u044f \u0432\u0456\u0434\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u043d\u044f \u0456\u043c\u0435\u043d\u0456 \u0456\u0434\u0435\u043d\u0442\u0438\u0444\u0456\u043a\u0430\u0442\u043e\u0440\u0430 \u0430\u043a\u0442\u0438\u0432\u043e\u0432\u0430\u043d\u043e\u0433\u043e \u043e\u0431\u2019\u0454\u043a\u0442\u0430 \u0430\u0431\u043e %old \u0434\u043b\u044f \u0432\u0438\u043a\u043e\u0440\u0438\u0441\u0442\u0430\u043d\u043d\u044f \u0441\u0442\u0430\u0440\u043e\u0433\u043e \u0437\u043d\u0430\u0447\u0435\u043d\u043d\u044f \u0442\u0440\u0438\u0433\u0435\u0440\u0430","You can use %s in the value to use the current trigger value or %id to display the triggered object ID":"\u0412\u0438 \u043c\u043e\u0436\u0435\u0442\u0435 \u0432\u0438\u043a\u043e\u0440\u0438\u0441\u0442\u043e\u0432\u0443\u0432\u0430\u0442\u0438 %s \u0443 \u0437\u043d\u0430\u0447\u0435\u043d\u043d\u0456, \u0449\u043e\u0431 \u0432\u0438\u043a\u043e\u0440\u0438\u0441\u0442\u043e\u0432\u0443\u0432\u0430\u0442\u0438 \u043f\u043e\u0442\u043e\u0447\u043d\u0435 \u0437\u043d\u0430\u0447\u0435\u043d\u043d\u044f \u0442\u0440\u0438\u0433\u0435\u0440\u0430, %id, \u0449\u043e\u0431 \u0432\u0438\u043a\u043e\u0440\u0438\u0441\u0442\u043e\u0432\u0443\u0432\u0430\u0442\u0438 \u0456\u0434\u0435\u043d\u0442\u0438\u0444\u0456\u043a\u0430\u0442\u043e\u0440 \u0430\u043a\u0442\u0438\u0432\u043e\u0432\u0430\u043d\u043e\u0433\u043e \u043e\u0431\u2019\u0454\u043a\u0442\u0430, %name, \u0449\u043e\u0431 \u043f\u043e\u043a\u0430\u0437\u0430\u0442\u0438 \u043d\u0430\u0437\u0432\u0443 \u0456\u0434\u0435\u043d\u0442\u0438\u0444\u0456\u043a\u0430\u0442\u043e\u0440\u0430 \u0430\u043a\u0442\u0438\u0432\u043e\u0432\u0430\u043d\u043e\u0433\u043e \u043e\u0431\u2019\u0454\u043a\u0442\u0430, \u0430\u0431\u043e %old, \u0449\u043e\u0431 \u0432\u0438\u043a\u043e\u0440\u0438\u0441\u0442\u043e\u0432\u0443\u0432\u0430\u0442\u0438 \u0441\u0442\u0430\u0440\u0435 \u0437\u043d\u0430\u0447\u0435\u043d\u043d\u044f \u0442\u0440\u0438\u0433\u0435\u0440\u0430","[equal]":"[\u0440\u0456\u0432\u043d\u0438\u0439]","[greater or equal]":"[\u0431\u0456\u043b\u044c\u0448\u0435 \u0430\u0431\u043e \u0434\u043e\u0440\u0456\u0432\u043d\u044e\u0454]","[greater]":"[\u0431\u0456\u043b\u044c\u0448\u0438\u0439]","[hysteresis]":"[\u0433\u0456\u0441\u0442\u0435\u0440\u0435\u0437\u0438\u0441]","[includes]":"[\u0432\u043a\u043b\u044e\u0447\u0430\u0454]","[less or equal]":"[\u043c\u0435\u043d\u0448\u0435 \u0430\u0431\u043e \u0440\u0456\u0432\u043d\u043e]","[less]":"[\u043c\u0435\u043d\u0448\u0435]","[not equal]":"[\u043d\u0435 \u0434\u043e\u0440\u0456\u0432\u043d\u044e\u0454]","acknowledgment":"\u043f\u0456\u0434\u0442\u0432\u0435\u0440\u0434\u0436\u0435\u043d\u043d\u044f","all":"\u0432\u0441\u0435","and":"\u0456","astro":"\u0410\u0441\u0442\u0440\u043e","at":"\u0432","clear running":"\u0447\u0456\u0442\u043a\u0438\u0439 \u0431\u0456\u0433","control":"\u041a\u041e\u041d\u0422\u0420\u041e\u041b\u042c","copy":"\u043a\u043e\u043f\u0456\u044f","cron":"CRON","dawn":"\u0421\u0432\u0456\u0442\u0430\u043d\u043e\u043a","default":"\u0437\u0430 \u0437\u0430\u043c\u043e\u0432\u0447\u0443\u0432\u0430\u043d\u043d\u044f\u043c","dusk":"\u0421\u0443\u0442\u0456\u043d\u043a\u0438","else":"\u0456\u043d\u0448\u0435","equal to":"\u0434\u043e\u0440\u0456\u0432\u043d\u044e\u0454","every":"\u043a\u043e\u0436\u0435\u043d","every hour at 0 minutes":"\u0449\u043e\u0433\u043e\u0434\u0438\u043d\u0438 \u043e 0 \u0445\u0432\u0438\u043b\u0438\u043d","false":"\u043f\u043e\u043c\u0438\u043b\u043a\u043e\u0432\u0438\u0439","file reading has failed: %s":"\u043d\u0435 \u0432\u0434\u0430\u043b\u043e\u0441\u044f \u043f\u0440\u043e\u0447\u0438\u0442\u0430\u0442\u0438 \u0444\u0430\u0439\u043b: %s","file reading was aborted":"\u0447\u0438\u0442\u0430\u043d\u043d\u044f \u0444\u0430\u0439\u043b\u0443 \u0431\u0443\u043b\u043e \u043f\u0435\u0440\u0435\u0440\u0432\u0430\u043d\u043e","filter_func":"\u0444\u0443\u043d\u043a\u0446\u0456\u044f","filter_id":"ID","filter_name":"\u0406\u043c\'\u044f","filter_role":"\u0420\u043e\u043b\u044c","filter_room":"\u041a\u0456\u043c\u043d\u0430\u0442\u0430","for edit or create script":"\u0434\u043b\u044f \u0440\u0435\u0434\u0430\u0433\u0443\u0432\u0430\u043d\u043d\u044f \u0430\u0431\u043e \u0441\u0442\u0432\u043e\u0440\u0435\u043d\u043d\u044f \u043d\u043e\u0432\u043e\u0433\u043e \u0441\u0446\u0435\u043d\u0430\u0440\u0456\u044e","goldenHour":"\u0417\u043e\u043b\u043e\u0442\u0430 \u0433\u043e\u0434\u0438\u043d\u0430","goldenHourEnd":"\u041a\u0456\u043d\u0435\u0446\u044c \u0437\u043e\u043b\u043e\u0442\u043e\u0457 \u0433\u043e\u0434\u0438\u043d\u0438","greater or equal":"\u0431\u0456\u043b\u044c\u0448\u0438\u0439 \u0430\u0431\u043e \u0440\u0456\u0432\u043d\u0438\u0439","greater or equal to":"\u0431\u0456\u043b\u044c\u0448\u0435 \u0430\u0431\u043e \u0434\u043e\u0440\u0456\u0432\u043d\u044e\u0454","greater than":"\u0431\u0456\u043b\u044c\u0448\u0435, \u043d\u0456\u0436, \u0432\u0435\u043b\u0438\u0447\u043d\u0456\u0448\u0435 \u043d\u0456\u0436, \u043a\u0440\u0443\u0442\u0456\u0448\u0438\u0439 \u0437\u0430","help_just_check":"\u041a\u043e\u0434 \u0431\u0443\u0434\u0435 \u0432\u0438\u043a\u043e\u043d\u0443\u0432\u0430\u0442\u0438\u0441\u044f \u043b\u0438\u0448\u0435 \u0449\u043e\u0440\u0430\u0437\u0443, \u043a\u043e\u043b\u0438 \u0443\u043c\u043e\u0432\u0430 \u0432\u0438\u043a\u043e\u043d\u0443\u0454\u0442\u044c\u0441\u044f. \u043d\u0430\u043f\u0440\u0438\u043a\u043b\u0430\u0434 \u044f\u043a\u0449\u043e \u0441\u043f\u0440\u0430\u0446\u044c\u043e\u0432\u0443\u0454 \u0437\u043d\u0430\u0447\u0435\u043d\u043d\u044f \u0434\u0430\u0442\u0447\u0438\u043a\u0430 \u0442\u0435\u043c\u043f\u0435\u0440\u0430\u0442\u0443\u0440\u0438 \u0442\u0430 \u0443\u043c\u043e\u0432\u0430 \xab\u044f\u043a\u0449\u043e \u0442\u0435\u043c\u043f\u0435\u0440\u0430\u0442\u0443\u0440\u0430 \u043f\u0435\u0440\u0435\u0432\u0438\u0449\u0443\u0454 20\xb0C\xbb, \u0434\u0456\u0457 \xab\u0442\u043e\u0434\u0456\xbb \u0432\u0438\u043a\u043e\u043d\u0443\u0432\u0430\u0442\u0438\u043c\u0443\u0442\u044c\u0441\u044f \u0449\u043e\u0440\u0430\u0437\u0443, \u043a\u043e\u043b\u0438 \u0434\u0430\u0442\u0447\u0438\u043a \u043d\u0430\u0434\u0441\u0438\u043b\u0430\u0454 \u0442\u0435\u043c\u043f\u0435\u0440\u0430\u0442\u0443\u0440\u0443, \u0456 \u0432\u043e\u043d\u0430 \u043f\u0435\u0440\u0435\u0432\u0438\u0449\u0443\u0454 20\xb0C. \u041d\u0430 21\xb0C, \u043d\u0430 22\xb0C \u0456 \u0442\u0430\u043a \u0434\u0430\u043b\u0456.","help_on_change":"\u041a\u043e\u0434 \u0431\u0443\u0434\u0435 \u0432\u0438\u043a\u043e\u043d\u0430\u043d\u043e \u043b\u0438\u0448\u0435 \u0443 \u0440\u0430\u0437\u0456 \u0437\u043c\u0456\u043d\u0438 \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442\u0443 \u0443\u043c\u043e\u0432\u0438. \u043d\u0430\u043f\u0440\u0438\u043a\u043b\u0430\u0434 \u044f\u043a\u0449\u043e \u0441\u043f\u0440\u0430\u0446\u044c\u043e\u0432\u0443\u0454 \u0437\u043d\u0430\u0447\u0435\u043d\u043d\u044f \u0434\u0430\u0442\u0447\u0438\u043a\u0430 \u0442\u0435\u043c\u043f\u0435\u0440\u0430\u0442\u0443\u0440\u0438 \u0442\u0430 \u0443\u043c\u043e\u0432\u0430 \xab\u044f\u043a\u0449\u043e \u0442\u0435\u043c\u043f\u0435\u0440\u0430\u0442\u0443\u0440\u0430 \u043f\u0435\u0440\u0435\u0432\u0438\u0449\u0443\u0454 20\xb0C\xbb, \u0434\u0456\u0457 \xab\u0442\u043e\u0434\u0456\xbb \u0431\u0443\u0434\u0443\u0442\u044c \u0432\u0438\u043a\u043e\u043d\u0430\u043d\u0456 \u043e\u0434\u0438\u043d \u0440\u0430\u0437, \u043a\u043e\u043b\u0438 \u0442\u0435\u043c\u043f\u0435\u0440\u0430\u0442\u0443\u0440\u0430 \u0431\u0443\u0434\u0435 \u0432\u0438\u0449\u0435 20. \u041d\u0430\u0441\u0442\u0443\u043f\u043d\u043e\u0433\u043e \u0440\u0430\u0437\u0443 \u0434\u0456\u0457 \xab\u0442\u043e\u0434\u0456\xbb \u0431\u0443\u0434\u0435 \u0432\u0438\u043a\u043e\u043d\u0430\u043d\u043e, \u043a\u043e\u043b\u0438 \u0442\u0435\u043c\u043f\u0435\u0440\u0430\u0442\u0443\u0440\u0430 \u043f\u0430\u0434\u0430\u0454 \u043d\u0438\u0436\u0447\u0435 20, \u0430 \u043f\u043e\u0442\u0456\u043c \u0437\u043d\u043e\u0432\u0443 \u043f\u0456\u0434\u043d\u0456\u043c\u0430\u0454\u0442\u044c\u0441\u044f \u0432\u0438\u0449\u0435 20.","high priority":"\u0432\u0438\u0441\u043e\u043a\u0438\u0439 \u043f\u0440\u0456\u043e\u0440\u0438\u0442\u0435\u0442","high-priority":"\u0432\u0438\u0441\u043e\u043a\u0438\u0439 \u043f\u0440\u0456\u043e\u0440\u0438\u0442\u0435\u0442","highest priority":"\u043d\u0430\u0439\u0432\u0438\u0449\u0438\u0439 \u043f\u0440\u0456\u043e\u0440\u0438\u0442\u0435\u0442","hours":"\u0433\u043e\u0434\u0438\u043d\u0438","includes":"\u0432\u043a\u043b\u044e\u0447\u0430\u0454 \u0432 \u0441\u0435\u0431\u0435","interval":"\u0456\u043d\u0442\u0435\u0440\u0432\u0430\u043b","just check":"\u043f\u0440\u043e\u0441\u0442\u043e \u043f\u0435\u0440\u0435\u0432\u0456\u0440\u0442\u0435","less or equal":"\u043c\u0435\u043d\u0448\u0435 \u0430\u0431\u043e \u0434\u043e\u0440\u0456\u0432\u043d\u044e\u0454","less or equal to":"\u043c\u0435\u043d\u0448\u0435 \u0430\u0431\u043e \u0434\u043e\u0440\u0456\u0432\u043d\u044e\u0454","less than":"\u043c\u0435\u043d\u0448\u0435 \u043d\u0456\u0436","lower priority":"\u043d\u0438\u0436\u0447\u0438\u0439 \u043f\u0440\u0456\u043e\u0440\u0438\u0442\u0435\u0442","lowest priority":"\u043d\u0430\u0439\u043d\u0438\u0436\u0447\u0438\u0439 \u043f\u0440\u0456\u043e\u0440\u0438\u0442\u0435\u0442","magic":"\u043c\u0430\u0433\u0456\u044f","milliseconds":"\u043c\u0456\u043b\u0456\u0441\u0435\u043a\u0443\u043d\u0434","minutes":"\u0445\u0432\u0438\u043b\u0438\u043d","ms":"\u0420\u0421","nadir":"\u041d\u0430\u0434\u0456\u0440","nauticalDawn":"\u041c\u043e\u0440\u0441\u044c\u043a\u0438\u0439 \u0441\u0432\u0456\u0442\u0430\u043d\u043e\u043a","nauticalDusk":"\u041c\u043e\u0440\u0441\u044c\u043a\u0456 \u0441\u0443\u0442\u0456\u043d\u043a\u0438","night":"\u043d\u0456\u0447","nightEnd":"\u041a\u0456\u043d\u0435\u0446\u044c \u043d\u043e\u0447\u0456","no blocks found":"\u0411\u043b\u043e\u043a\u0456\u0432 \u043d\u0435 \u0437\u043d\u0430\u0439\u0434\u0435\u043d\u043e","no group":"\u041d\u0415\u041c\u0410\u0404 \u0413\u0420\u0423\u041f\u0418","normal":"\u043d\u043e\u0440\u043c\u0430\u043b\u044c\u043d\u043e","normal priority":"\u043d\u043e\u0440\u043c\u0430\u043b\u044c\u043d\u0438\u0439 \u043f\u0440\u0456\u043e\u0440\u0438\u0442\u0435\u0442","not equal to":"\u043d\u0435 \u0434\u043e\u0440\u0456\u0432\u043d\u044e\u0454","not properly connected":"\u0426\u0435\u0439 \u0431\u043b\u043e\u043a \u043d\u0435\u043f\u0440\u0430\u0432\u0438\u043b\u044c\u043d\u043e \u0437\u2019\u0454\u0434\u043d\u0430\u043d\u0438\u0439 \u0437 \u0456\u043d\u0448\u0438\u043c\u0438 \u0431\u043b\u043e\u043a\u0430\u043c\u0438.","offset":"\u0437\u0441\u0443\u0432","on change":"\u043d\u0430 \u0437\u043c\u0456\u043d\u0443","on condition change":"\u043f\u0440\u043e \u0437\u043c\u0456\u043d\u0443 \u0443\u043c\u043e\u0432","on update":"\u043d\u0430 \u043e\u043d\u043e\u0432\u043b\u0435\u043d\u043d\u044f","one":"\u043e\u0434\u0438\u043d","or":"\u0430\u0431\u043e","quiet":"\u0442\u0438\u0445\u043e","reset search":"\u0441\u043a\u0438\u043d\u0443\u0442\u0438 \u043f\u043e\u0448\u0443\u043a","search":"\u043f\u043e\u0448\u0443\u043a","seconds":"\u0441\u0435\u043a\u0443\u043d\u0434","solarNoon":"\u0421\u043e\u043d\u044f\u0447\u043d\u0438\u0439 \u043f\u043e\u043b\u0443\u0434\u0435\u043d\u044c","store in":"\u0437\u0431\u0435\u0440\u0456\u0433\u0430\u0442\u0438 \u0432","sunrise":"\u0441\u0445\u0456\u0434 \u0441\u043e\u043d\u0446\u044f","sunriseEnd":"\u041a\u0456\u043d\u0435\u0446\u044c \u0441\u0445\u043e\u0434\u0443 \u0441\u043e\u043d\u0446\u044f","sunset":"\u0417\u0430\u0445\u0456\u0434 \u0441\u043e\u043d\u0446\u044f","sunsetStart":"\u041f\u043e\u0447\u0430\u0442\u043e\u043a \u0437\u0430\u0445\u043e\u0434\u0443 \u0441\u043e\u043d\u0446\u044f","then":"\u043f\u043e\u0442\u0456\u043c","toggle value":"\u0437\u043d\u0430\u0447\u0435\u043d\u043d\u044f \u043f\u0435\u0440\u0435\u043c\u0438\u043a\u0430\u043d\u043d\u044f","tooltip_ack":"\u0412\u0438\u0437\u043d\u0430\u0442\u0438","tooltip_from":"\u0412\u0456\u0434","tooltip_lc":"\u0412\u043e\u0441\u0442\u0430\u043d\u043d\u0454 \u0437\u043c\u0456\u043d\u0435\u043d\u043e","tooltip_quality":"\u044f\u043a\u0456\u0441\u0442\u044c","tooltip_ts":"\u041c\u0456\u0442\u043a\u0430 \u0447\u0430\u0441\u0443","tooltip_user":"\u041a\u043e\u0440\u0438\u0441\u0442\u0443\u0432\u0430\u0447","tooltip_value":"\u0417\u043d\u0430\u0447\u0435\u043d\u043d\u044f","true":"\u043f\u0440\u0430\u0432\u0434\u0430","two":"\u0434\u0432\u0430","undefined":"\u043d\u0435\u0432\u0438\u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0439","update":"\u043e\u043d\u043e\u0432\u043b\u0435\u043d\u043d\u044f","use seconds":"\u0432\u0438\u043a\u043e\u0440\u0438\u0441\u0442\u043e\u0432\u0443\u0439\u0442\u0435 \u0441\u0435\u043a\u0443\u043d\u0434\u0438","when":"\u043a\u043e\u043b\u0438","with":"\u0437","with date":"\u0437 \u0434\u0430\u0442\u043e\u044e","with offset":"\u0437\u0456 \u0437\u043c\u0456\u0449\u0435\u043d\u043d\u044f\u043c","wizard":"\u043c\u0430\u0439\u0441\u0442\u0435\u0440","easy":"\u043b\u0435\u0433\u043a\u043e","for programmers":"\u0434\u043b\u044f \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u0456\u0441\u0442\u0456\u0432","for professionals":"\u0434\u043b\u044f \u043f\u0440\u043e\u0444\u0435\u0441\u0456\u043e\u043d\u0430\u043b\u0456\u0432","Duplicate name":"\u041f\u043e\u0432\u0442\u043e\u0440\u044e\u0432\u0430\u043d\u0435 \u0456\u043c\'\u044f","Empty name is not allowed":"\u041f\u043e\u0440\u043e\u0436\u043d\u0454 \u0456\u043c\'\u044f \u043d\u0435 \u0434\u043e\u043f\u0443\u0441\u043a\u0430\u0454\u0442\u044c\u0441\u044f","Astrological events today":"\u0410\u0441\u0442\u0440\u043e\u043b\u043e\u0433\u0456\u0447\u043d\u0456 \u043f\u043e\u0434\u0456\u0457 \u0441\u044c\u043e\u0433\u043e\u0434\u043d\u0456","Show astrological events":"\u041f\u043e\u043a\u0430\u0437\u0430\u0442\u0438 \u0430\u0441\u0442\u0440\u043e\u043b\u043e\u0433\u0456\u0447\u043d\u0456 \u043f\u043e\u0434\u0456\u0457","Time":"\u0447\u0430\u0441","Description":"\u043e\u043f\u0438\u0441","nextSunrise":"\u041d\u0430\u0441\u0442\u0443\u043f\u043d\u0438\u0439 \u0441\u0445\u0456\u0434 \u0441\u043e\u043d\u0446\u044f","nextSunset":"\u041d\u0430\u0441\u0442\u0443\u043f\u043d\u0438\u0439 \u0437\u0430\u0445\u0456\u0434 \u0441\u043e\u043d\u0446\u044f"}')},58246:function(e){e.exports=JSON.parse('{"-":"-","Add":"\u6dfb\u52a0","Add new script":"\u6dfb\u52a0\u65b0\u811a\u672c","All files will be accepted":"\u6240\u6709\u6587\u4ef6\u90fd\u5c06\u88ab\u63a5\u53d7","April":"\u56db\u6708","Are you sure?":"\u4f60\u786e\u5b9a\u5417\uff1f","August":"\u516b\u6708","Blockly description":"\u6309\u56fe\u5f62\u5757\u521b\u5efa\u89c4\u5219","Cancel":"\u53d6\u6d88","Cannot delete non empty item!":"\u65e0\u6cd5\u5220\u9664\u975e\u7a7a\u9879\u76ee\uff01","Change layout":"\u53d8\u66f4\u7248\u9762","Check blocks":"\u68c0\u67e5\u5757","Check is not active, because javascript adapter is disabled":"\u68c0\u67e5\u672a\u6fc0\u6d3b\uff0c\u56e0\u4e3a\u7981\u7528\u4e86Javascript\u9002\u914d\u5668","Clear search input":"\u6e05\u9664\u641c\u7d22\u8f93\u5165","Click on this icon":"\u5355\u51fb\u6b64\u56fe\u6807","Close":"\u5173\u95ed","Close all but current":"\u5173\u95ed\u6240\u6709\uff08\u5f53\u524d\u9664\u5916\uff09","Collapse all":"\u5168\u90e8\u6536\u7f29","Configuration not saved.":"\u914d\u7f6e\u672a\u4fdd\u5b58\u3002","Convert blockly to javascript for ever.":"\u7acb\u5373\u5c06blockly\u8f6c\u6362\u4e3aJavascript\u3002","Copy script":"\u590d\u5236\u811a\u672c","Copy to clipboard":"\u590d\u5236\u5230\u526a\u8d34\u677f","Create new":"\u521b\u5efa\u65b0\u7684","Create new folder":"\u521b\u5efa\u65b0\u6587\u4ef6\u5939","Create new script":"\u521b\u5efa\u65b0\u811a\u672c","Create or edit CRON or time wizard":"\u521b\u5efa\u6216\u7f16\u8f91\u5468\u671f\u4efb\u52a1\u6216\u65f6\u95f4\u5411\u5bfc","Dark Theme":"\u6df1\u8272\u8c03\u4e3b\u9898","Dark style":"\u6df1\u8272\u8c03\u98ce\u683c","Debug options":"\u8c03\u8bd5\u9009\u9879","December":"\u5341\u4e8c\u6708","Define cron...":"\u5b9a\u4e49\u5468\u671f\u4efb\u52a1...","Define schedule...":"\u5b9a\u4e49\u8c03\u5ea6\u5668......","Delete":"\u5220\u9664","Delete %s":"\u5220\u9664%s...","Delete folder":"\u5220\u9664\u6587\u4ef6\u5939","Delete script":"\u5220\u9664\u811a\u672c","Deselect all":"\u53d6\u6d88\u5168\u9009","Discard changes for %s":"\u653e\u5f03%s\u7684\u66f4\u6539","Done":"\u5b8c\u6210","Drop some files here or click...":"\u5c06\u6587\u4ef6\u62d6\u62fd\u5230\u8fd9\u91cc\u6216\u5355\u51fb......","Edit script or just double click":"\u53cc\u51fb\u7f16\u8f91\u811a\u672c","End search mode":"\u7ed3\u675f\u641c\u7d22\u6a21\u5f0f","Error":"\u9519\u8bef","Error was found":"\u53d1\u73b0\u9519\u8bef","Existing scripts will be overwritten.":"\u73b0\u6709\u811a\u672c\u5c06\u88ab\u8986\u76d6\u3002","Expand all":"\u5c55\u5f00\u5168\u90e8","Expert mode":"\u4e13\u5bb6\u6a21\u5f0f","Export":"\u5bfc\u51fa","Export all scripts":"\u5bfc\u51fa\u6240\u6709\u811a\u672c","Export blocks":"\u5bfc\u51fa\u5757","Export selected blocks":"\u5bfc\u51fa\u9009\u5b9a\u7684\u5757","February":"\u4e8c\u6708","Folder":"\u6587\u4ef6\u5939","Friday":"\u661f\u671f\u4e94","Function editor":"\u529f\u80fd\u7f16\u8f91\u5668","ID":"ID","Import":"\u5bfc\u5165","Import blocks":"\u5bfc\u5165\u5757","Import error":"\u5bfc\u5165\u9519\u8bef","Import scripts":"\u5bfc\u5165\u811a\u672c","Insert object ID":"\u63d2\u5165\u5bf9\u8c61ID","Instance":"\u5b9e\u4f8b","Instance is disabled":"\u5b9e\u4f8b\u5df2\u7981\u7528","Invalid CRON":"\u65e0\u6548\u7684\u5468\u671f\u4efb\u52a1","It will not be possible to revert this operation.":"\u65e0\u6cd5\u6062\u590d\u6b64\u64cd\u4f5c\u3002","JS description":"\u901a\u8fc7\u7f16\u5199Javascript\u6765\u521b\u5efa\u89c4\u5219","January":"\u4e00\u6708","July":"\u4e03\u6708","June":"\u516d\u6708","Learn More":"\u4e86\u89e3\u66f4\u591a","Light style":"\u6d45\u8272\u8c03\u98ce\u683c","Locate file":"\u5b9a\u4f4d\u6587\u4ef6","Log outputs":"\u8bb0\u5f55\u8f93\u51fa","March":"\u4e09\u6708","May":"\u4e94\u6708","Menu":"\u83dc\u5355","Message":"\u4fe1\u606f","Monday":"\u661f\u671f\u4e00","Name":"\u540d\u79f0","No active host found":"\u627e\u4e0d\u5230\u6d3b\u52a8\u4e3b\u673a","November":"\u5341\u4e00\u6708","October":"\u5341\u6708","Ok":"\u786e\u5b9a","On weekdays":"\u5728\u5de5\u4f5c\u65e5","Pause script":"\u6682\u505c\u811a\u672c","Please select object ID...":"\u8bf7\u9009\u62e9\u5bf9\u8c61ID...","Rename":"\u91cd\u547d\u540d","Reorder scripts in folders":"\u91cd\u65b0\u6392\u5e8f\u6587\u4ef6\u5939\u4e2d\u7684\u811a\u672c","Repeat":"\u91cd\u590d","Restart":"\u91cd\u542f","Root folder":"\u6839\u6587\u4ef6\u5939","Run script":"\u8fd0\u884c\u811a\u672c","Saturday":"\u661f\u671f\u516d","Save":"\u4fdd\u5b58","Script":"\u811a\u672c","Script %s was modified on disk":"\u811a\u672c%s\u5df2\u5728\u78c1\u76d8\u4e0a\u4fee\u6539","Script is not running":"\u811a\u672c\u6ca1\u6709\u8fd0\u884c","Search in scripts":"\u5728\u811a\u672c\u4e2d\u641c\u7d22","Search...":"\u641c\u7d22...","Select all":"\u5168\u9009","September":"\u4e5d\u6708","Show javascript code":"\u663e\u793aJavascript\u4ee3\u7801","Show only paused scripts":"\u4ec5\u663e\u793a\u6682\u505c\u7684\u811a\u672c","Show only running scripts":"\u4ec5\u663e\u793a\u6b63\u5728\u8fd0\u884c\u7684\u811a\u672c","Show only scripts with problems":"\u4ec5\u663e\u793a\u6709\u95ee\u9898\u7684\u811a\u672c","Some files will be rejected":"\u6709\u4e9b\u6587\u4ef6\u5c06\u88ab\u62d2\u7edd","Sunday":"\u661f\u671f\u65e5","TS description":"\u901a\u8fc7\u7f16\u5199Typescript\u6765\u521b\u5efa\u89c4\u5219","Thursday":"\u661f\u671f\u56db","Tuesday":"\u661f\u671f\u4e8c","Unknown error":"\u672a\u77e5\u9519\u8bef","Unknown error!":"\u672a\u77e5\u9519\u8bef\uff01","Wednesday":"\u661f\u671f\u4e09","Yet exists!":"\u4e0d\u5b58\u5728\uff01","copy":"\u590d\u5236","file reading has failed: %s":"\u6587\u4ef6\u8bfb\u53d6\u5931\u8d25\uff1a%s","file reading was aborted":"\u6587\u4ef6\u8bfb\u53d6\u4e2d\u6b62","filter_func":"\u529f\u80fd","filter_id":"ID","filter_name":"\u540d\u5b57","filter_role":"\u89d2\u8272","filter_room":"\u623f\u95f4","for edit or create script":"\u7528\u4e8e\u7f16\u8f91\u6216\u521b\u5efa\u811a\u672c","no blocks found":"\u627e\u4e0d\u5230\u5757","no group":"\u6ca1\u6709\u7ec4","not properly connected":"\u6b64\u5757\u672a\u6b63\u786e\u8fde\u63a5\u5230\u5176\u4ed6\u5757\u3002","tooltip_ack":"\u786e\u8ba4","tooltip_from":"\u4ece","tooltip_lc":"\u4e0a\u4e00\u6b21\u6539\u53d8","tooltip_quality":"\u8d28\u91cf","tooltip_ts":"\u65f6\u95f4\u6233","tooltip_user":"\u7528\u6237","tooltip_value":"\u503c","use seconds":"\u7cbe\u786e\u5230\u79d2","Save all":"\u4fdd\u5b58\u5168\u90e8","Change theme (actual \\"%s\\")":"\u66f4\u6539\u4e3b\u9898\uff08\u73b0\u5728\u4e3a\u201c%s\u201d\uff09","Hide logs":"\u9690\u85cf\u65e5\u5fd7","Show logs":"\u663e\u793a\u8bb0\u5f55","Rules description":"\u4f7f\u7528IF\uff0cTHEN\uff0cELSE\u5757\u521b\u5efa\u89c4\u5219","help_on_change":"\u4ec5\u5f53\u6761\u4ef6\u7ed3\u679c\u66f4\u6539\u65f6\uff0c\u4ee3\u7801\u624d\u4f1a\u6267\u884c\u3002\u4f8b\u5982\u3002\u5982\u679c\u89e6\u53d1\u6e29\u5ea6\u4f20\u611f\u5668\u503c\u4e14\u6761\u4ef6\u4e3a\u201c\u5982\u679c\u6e29\u5ea6\u5927\u4e8e20\xb0C\u201d\uff0c\u5219\u6e29\u5ea6\u8d85\u8fc720\u65f6\u5c06\u6267\u884c\u4e00\u6b21\u201c\u5219\u201d\u52a8\u4f5c\uff0c\u4e0b\u4e00\u6b21\uff0c\u5f53\u6e29\u5ea6\u8d85\u8fc720\u65f6\u5c06\u6267\u884c\u201c\u5219\u201d\u52a8\u4f5c\u4f4e\u4e8e20\u5931\u8d25\uff0c\u7136\u540e\u518d\u6b21\u8d85\u8fc720\u3002","help_just_check":"\u4ec5\u5728\u6761\u4ef6\u4e3a\u771f\u65f6\u624d\u6267\u884c\u4ee3\u7801\u3002\u4f8b\u5982\u3002\u5982\u679c\u89e6\u53d1\u6e29\u5ea6\u4f20\u611f\u5668\u503c\u5e76\u4e14\u6761\u4ef6\u4e3a\u201c\u5982\u679c\u6e29\u5ea6\u5927\u4e8e20\xb0C\u201d\uff0c\u5219\u6bcf\u6b21\u4f20\u611f\u5668\u53d1\u9001\u6e29\u5ea6\u4e14\u6e29\u5ea6\u8d85\u8fc720\xb0C\u65f6\uff0c\u5c06\u6267\u884c\u201c\u7136\u540e\u201d\u52a8\u4f5c\u3002 21\xb0C\uff0c22\xb0C\u7b49\u3002","On condition change":"\u6761\u4ef6\u53d8\u5316\u65f6","Just check":"\u53ea\u662f\u68c0\u67e5","when":"\u4ec0\u4e48\u65f6\u5019","and":"\u548c","then":"\u7136\u540e","or":"\u6216","else":"\u522b\u7684","Nothing found":"\u6ca1\u6709\u53d1\u73b0","reset search":"\u91cd\u7f6e\u641c\u7d22","Read only ID selected: %s":"\u9009\u62e9\u7684\u53ea\u8bfbID\uff1a%s","OK":"\u597d\u7684","Triggers":"\u6273\u673a","cron":"\u514b\u6717","wizard":"\u5deb\u5e08","interval":"\u95f4\u9694","at":"\u5728","astro":"\u5929\u6587","on condition change":"\u5728\u6761\u4ef6\u53d8\u5316\u65f6","just check":"\u53ea\u662f\u68c0\u67e5","Explanation":"\u89e3\u91ca","seconds":"\u79d2","minutes":"\u5206\u949f","hours":"\u5c0f\u65f6","Every day":"\u6bcf\u5929","milliseconds":"\u6beb\u79d2","Copied":"\u590d\u5236\u7684","nadir":"\u6700\u4f4e\u70b9","nightEnd":"\u591c\u665a\u7ed3\u675f","nauticalDawn":"\u822a\u6d77\u9ece\u660e","dawn":"\u9ece\u660e","sunrise":"\u65e5\u51fa","sunriseEnd":"\u65e5\u51fa\u7ed3\u675f","goldenHourEnd":"\u9ec4\u91d1\u65f6\u6bb5\u7ed3\u675f","solarNoon":"\u661f\u671f\u65e5\u6b63\u5348","goldenHour":"\u9ec4\u91d1\u65f6\u6bb5","sunsetStart":"\u65e5\u843d\u5f00\u59cb","sunset":"\u65e5\u843d","dusk":"\u9ec4\u660f","nauticalDusk":"\u822a\u6d77\u9ec4\u660f","night":"\u591c\u665a","one":"\u4e00","two":"\u4e8c","true":"\u771f\u7684","false":"\u9519\u8bef\u7684","search":"\u641c\u7d22","Actions":"\u52a8\u4f5c","Conditions":"\u60c5\u51b5","Schedule":"\u65e5\u7a0b","Start script":"\u542f\u52a8\u811a\u672c","State":"\u72b6\u6001","State condition":"\u72b6\u6001\u6761\u4ef6","Time condition":"\u65f6\u95f4\u6761\u4ef6","Astrological":"\u5929\u6587","Set state action":"\u8bbe\u5b9a\u72b6\u6001\u52a8\u4f5c","Exec":"\u6267\u884c\u529b","HTTP Call":"HTTP\u547c\u53eb","Log text":"\u8bb0\u5f55\u6587\u5b57","Pause":"\u6682\u505c","on change":"\u5728\u53d8\u5316","control":"\u63a7\u5236","Say It":"Say It","every hour at 0 minutes":"\u6bcf\u5c0f\u65f60\u5206\u949f","On script save or adapter start":"\u5728\u811a\u672c\u4fdd\u5b58\u6216\u9002\u914d\u5668\u542f\u52a8\u65f6","equal to":"\u7b49\u4e8e","Actual time of day":"\u4e00\u5929\u4e2d\u7684\u5b9e\u9645\u65f6\u95f4","with":"\u548c","Shell command":"Shell\u547d\u4ee4","URL":"\u7f51\u5740","Instance:":"\u5b9e\u4f8b\uff1a","Language:":"\u8bed\u8a00\uff1a","Volume":"\u4f53\u79ef","Text:":"\u6587\u672c\uff1a","undefined":"\u4e0d\u660e\u786e\u7684","Default":"\u9ed8\u8ba4","You can use %s in the text to display current trigger value or %id to display the triggered object ID":"\u60a8\u53ef\u4ee5\u5728\u6587\u672c\u4e2d\u4f7f\u7528 %s \u663e\u793a\u5f53\u524d\u89e6\u53d1\u503c\uff0c%id \u4f7f\u7528\u89e6\u53d1\u5bf9\u8c61 ID\uff0c%name \u663e\u793a\u89e6\u53d1\u5bf9\u8c61 ID \u540d\u79f0\u6216 %old \u4f7f\u7528\u65e7\u89e6\u53d1\u503c","Instructions":"\u6307\u793a","You can use %s in the URL to use current trigger value or %id to use the triggered object ID":"\u60a8\u53ef\u4ee5\u5728 URL \u4e2d\u4f7f\u7528 %s \u4ee5\u4f7f\u7528\u5f53\u524d\u89e6\u53d1\u503c\uff0c%id \u4ee5\u4f7f\u7528\u89e6\u53d1\u5bf9\u8c61 ID\uff0c%name \u4ee5\u663e\u793a\u89e6\u53d1\u5bf9\u8c61 ID \u540d\u79f0\u6216 %old \u4ee5\u4f7f\u7528\u65e7\u89e6\u53d1\u503c","You can use %s in the value to use the current trigger value or %id to display the triggered object ID":"\u60a8\u53ef\u4ee5\u5728\u503c\u4e2d\u4f7f\u7528 %s \u4ee5\u4f7f\u7528\u5f53\u524d\u89e6\u53d1\u5668\u503c\uff0c%id \u4f7f\u7528\u89e6\u53d1\u5bf9\u8c61 ID\uff0c%name \u663e\u793a\u89e6\u53d1\u5bf9\u8c61 ID \u540d\u79f0\u6216 %old \u4f7f\u7528\u65e7\u89e6\u53d1\u5668\u503c","You can use %s in the command to use current trigger value or %id to use the triggered object ID":"\u60a8\u53ef\u4ee5\u5728\u547d\u4ee4\u4e2d\u4f7f\u7528 %s \u4ee5\u4f7f\u7528\u5f53\u524d\u89e6\u53d1\u503c\uff0c%id \u4f7f\u7528\u89e6\u53d1\u5bf9\u8c61 ID\uff0c%name \u663e\u793a\u89e6\u53d1\u5bf9\u8c61 ID \u540d\u79f0\u6216 %old \u4f7f\u7528\u65e7\u89e6\u53d1\u503c","every":"\u6bcf\u4e00\u4e2a","with offset":"\u5e26\u504f\u79fb","on update":"\u66f4\u65b0\u65f6","update":"\u66f4\u65b0","Triggers the rule periodically or on some specific time":"\u5b9a\u671f\u6216\u5728\u7279\u5b9a\u65f6\u95f4\u89e6\u53d1\u89c4\u5219","Triggers the on script saving or the javascript instance restart":"\u89e6\u53d1\u811a\u672c\u4fdd\u5b58\u6216javascript\u5b9e\u4f8b\u91cd\u542f","Triggers the rule on update or change of some state":"\u5728\u67d0\u4e9b\u72b6\u6001\u7684\u66f4\u65b0\u6216\u66f4\u6539\u65f6\u89e6\u53d1\u89c4\u5219","Compares the state value with user defined value":"\u6bd4\u8f83\u72b6\u6001\u503c\u548c\u7528\u6237\u5b9a\u4e49\u7684\u503c","Compares current time with the user specific time":"\u5c06\u5f53\u524d\u65f6\u95f4\u4e0e\u7528\u6237\u7279\u5b9a\u65f6\u95f4\u8fdb\u884c\u6bd4\u8f83","Compares current time with astrological event":"\u5c06\u5f53\u524d\u65f6\u95f4\u4e0e\u5929\u6587\u4e8b\u4ef6\u8fdb\u884c\u6bd4\u8f83","Control or update some state":"\u63a7\u5236\u6216\u66f4\u65b0\u67d0\u4e9b\u72b6\u6001","Executes some shell command":"\u6267\u884c\u4e00\u4e9bshell\u547d\u4ee4","Make a HTTP get request":"\u53d1\u51faHTTP\u83b7\u53d6\u8bf7\u6c42","Print some text in log":"\u5728\u65e5\u5fd7\u4e2d\u6253\u5370\u4e00\u4e9b\u6587\u672c","Make a pause between actions":"\u5728\u52a8\u4f5c\u4e4b\u95f4\u6682\u505c","Say some text via sayit adapter":"\u901a\u8fc7sayit\u9002\u914d\u5668\u8bf4\u4e00\u4e9b\u6587\u5b57","Telegram":"\u7535\u62a5","User:":"\u7528\u6237\uff1a","all":"\u5168\u90e8","Sends message via telegram":"\u901a\u8fc7\u7535\u62a5\u53d1\u9001\u6d88\u606f","Sends an email":"\u53d1\u9001\u90ae\u4ef6","Send email":"\u53d1\u9001\u7535\u5b50\u90ae\u4ef6","Sends message via pushover":"\u901a\u8fc7\u63a8\u64ad\u53d1\u9001\u6d88\u606f","Pushover":"\u4fef\u5367\u6491","Sends message via whatsapp-cmb":"\u901a\u8fc7whatsapp-cmb\u53d1\u9001\u6d88\u606f","Whatsapp-cmb":"Whatsapp\u7684cmb","Sends message via Pushsafer":"\u901a\u8fc7Pushsafer\u53d1\u9001\u6d88\u606f","Pushsafer":"\u63a8\u5b89\u5168","To:":"\u5230\uff1a","Subject:":"\u5b66\u79d1\uff1a","Body:":"\u8eab\u4f53\uff1a","Title:":"\u6807\u9898\uff1a","Sound:":"\u58f0\u97f3\uff1a","Priority:":"\u4f18\u5148\uff1a","magic":"\u9b54\u6cd5","quiet":"\u5b89\u9759\u7684","normal":"\u666e\u901a\u7684","high-priority":"\u9ad8\u4f18\u5148\u7ea7","acknowledgment":"\u81f4\u8c22","Phone:":"\u7535\u8bdd\uff1a","(optional)":"\uff08\u9009\u4fee\u7684\uff09","Vibration:":"\u632f\u52a8\uff1a","lowest priority":"\u6700\u4f4e\u4f18\u5148\u7ea7","lower priority":"\u4f4e\u4f18\u5148\u7ea7","normal priority":"\u6b63\u5e38\u4f18\u5148","high priority":"\u9ad8\u4f18\u5148\u7ea7","highest priority":"\u6700\u9ad8\u4f18\u5148\u7ea7","default":"\u9ed8\u8ba4","All":"\u6240\u6709","Write your own code":"\u7f16\u5199\u81ea\u5df1\u7684\u4ee3\u7801","User function":"\u7528\u6237\u529f\u80fd","This is advances option. You can write your own code here and it will be executed on trigger":"\u8fd9\u662f\u9ad8\u7ea7\u9009\u9879\u3002\u60a8\u53ef\u4ee5\u5728\u6b64\u5904\u7f16\u5199\u81ea\u5df1\u7684\u4ee3\u7801\uff0c\u5b83\u5c06\u5728\u89e6\u53d1\u5668\u4e0a\u6267\u884c","greater than":"\u6bd4...\u66f4\u68d2","offset":"\u62b5\u6d88","Function":"\u529f\u80fd","greater or equal to":"\u5927\u4e8e\u6216\u7b49\u4e8e","less or equal to":"\u5c0f\u4e8e\u6216\u7b49\u4e8e","less than":"\u5c11\u4e8e","not equal to":"\u4e0d\u7b49\u4e8e","[equal]":"[\u5e73\u7b49\u7684]","[greater or equal]":"[\u5927\u4e8e\u7b49\u4e8e]","[greater]":"[\u66f4\u5927]","[less or equal]":"[\u5c0f\u4e8e\u6216\u7b49\u4e8e]","[less]":"[\u8f83\u5c11\u7684]","[not equal]":"[\u4e0d\u76f8\u7b49]","[includes]":"[\u5305\u62ec]","[hysteresis]":"[\u78c1\u6ede]","greater or equal":"\u5927\u4e8e\u6216\u7b49\u4e8e","less or equal":"\u5c0f\u4e8e\u6216\u7b49\u4e8e","includes":"\u5305\u62ec",".":".","()":"()","Mo":"\u83ab","Tu":"\u6d82","We":"3","Th":"4","Fr":"r","Sa":"\u8428","Su":"\u82cf","Control or update some state with delay":"\u5ef6\u8fdf\u63a7\u5236\u6216\u66f4\u65b0\u67d0\u4e9b\u72b6\u6001","Delay":"\u5ef6\u8fdf","ms":"\u6beb\u79d2","Set with delay":"\u5ef6\u8fdf\u8bbe\u7f6e","clear running":"\u7545\u901a\u65e0\u963b","toggle value":"\u5207\u6362\u503c","Any month":"\u4efb\u4f55\u6708\u4efd","Any":"\u4efb\u4f55","with date":"\u6709\u65e5\u671f","Date":"\u65e5\u671f","Month":"\u6708","Januar":"\u4e9a\u52aa\u5c14","Februar":"\u4e8c\u6708","March ":"\u884c\u8fdb","Condition":"\u5065\u5eb7\uff09\u72b6\u51b5","Limit":"\u9650\u5236","The script will be stopped and must be activated manually after debugging. Continue?":"\u8be5\u811a\u672c\u5c06\u505c\u6b62\uff0c\u5e76\u4e14\u5fc5\u987b\u5728\u8c03\u8bd5\u540e\u624b\u52a8\u6fc0\u6d3b\u3002\u7ee7\u7eed\uff1f","Yes":"\u662f\u7684","Debug instance":"\u8c03\u8bd5\u5b9e\u4f8b","Resume execution":"\u6062\u590d\u6267\u884c","Go to next line":"\u8f6c\u5230\u4e0b\u4e00\u884c","Step into function":"\u8fdb\u5165\u529f\u80fd","Step out from function":"\u9000\u51fa\u51fd\u6570","Stop on exception":"\u5f02\u5e38\u505c\u6b62","Console":"\u5b89\u6170","Stack":"\u5806","Pause execution":"\u6682\u505c\u6267\u884c","Simulate":"\u6a21\u62df","Trigger with value":"\u7528\u503c\u89e6\u53d1","Value":"\u4ef7\u503c","Write":"\u5199","Ack":"\u786e\u8ba4","Start":"\u5f00\u59cb","Filter":"\u7b5b\u9009","Instances":"\u5b9e\u4f8b","Triggered":"\u89e6\u53d1","Function: executed":"\u529f\u80fd\uff1a\u6267\u884c","Operate two states":"\u64cd\u4f5c\u4e24\u79cd\u72b6\u6001","store in":"\u5b58\u653e\u5728","ID1":"ID1","ID2":"ID2","Operations with two states":"\u5177\u6709\u4e24\u79cd\u72b6\u6001\u7684\u64cd\u4f5c","debug_label":"\u8c03\u8bd5","debug_help":"\u8fd9\u662f\u4e00\u79cd\u7279\u6b8a\u6a21\u5f0f\uff0c\u5176\u4e2d\u72b6\u6001\u548c\u5bf9\u8c61\u4e0d\u4f1a\u6539\u53d8\u3002\u4f46\u53ea\u6709\u6709\u5173\u6bcf\u4e2a\u8ba1\u5212\u66f4\u6539\u7684\u4fe1\u606f\u624d\u4f1a\u663e\u793a\u5728\u534f\u8bae\u4e2d\u3002","verbose_label":"\u8be6\u7ec6\u65e5\u5fd7\u8f93\u51fa","verbose_help":"\u5c06\u8c03\u8bd5\u8f93\u51fa\u6dfb\u52a0\u5230\u8bb8\u591a\u7cfb\u7edf\u547d\u4ee4\u7684\u65e5\u5fd7\u4e2d","easy":"\u7b80\u5355\u7684","for programmers":"\u5bf9\u4e8e\u7a0b\u5e8f\u5458","for professionals":"\u5bf9\u4e8e\u4e13\u4e1a\u4eba\u58eb","Duplicate name":"\u91cd\u540d","Empty name is not allowed":"\u4e0d\u5141\u8bb8\u4f7f\u7528\u7a7a\u540d\u79f0","Astrological events today":"\u4eca\u5929\u7684\u5360\u661f\u4e8b\u4ef6","Show astrological events":"\u663e\u793a\u5360\u661f\u4e8b\u4ef6","Time":"\u65f6\u95f4","Description":"\u63cf\u8ff0","nextSunrise":"\u4e0b\u4e00\u4e2a\u65e5\u51fa","nextSunset":"\u4e0b\u4e00\u4e2a\u65e5\u843d"}')}}]); -//# sourceMappingURL=98.7b6d008e.chunk.js.map \ No newline at end of file diff --git a/admin/static/js/98.7b6d008e.chunk.js.map b/admin/static/js/98.7b6d008e.chunk.js.map deleted file mode 100644 index 866f1bf18..000000000 --- a/admin/static/js/98.7b6d008e.chunk.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"static/js/98.7b6d008e.chunk.js","mappings":"2nhBAyIA,GAtHkB,SAAAA,IAAAC,EAAAA,EAAAA,GAAAC,EAAAF,GAAA,IAAAG,GAAAC,EAAAA,EAAAA,GAAAF,GACd,SAAAA,EAAYG,GAAQ,IAADC,EASO,OATPC,EAAAA,EAAAA,GAAA,KAAAL,IACfI,EAAAH,EAAAK,KAAA,KAAMH,IAgCVI,aAAe,WACXH,EAAKD,MAAMK,SACf,EAACJ,EAEDK,SAAW,WACPL,EAAKD,MAAMO,SAASN,EAAKO,MAAOP,EAAKQ,MAAMC,GAAIT,EAAKQ,MAAME,KAAMV,EAAKQ,MAAMG,UAC3EX,EAAKD,MAAMK,SACf,EAACJ,EAEDY,aAAe,SAAAF,GACXV,EAAKa,SAAS,CAACH,KAAAA,EAAMD,GAAIT,EAAKc,MAAMJ,IACxC,EA1CIV,EAAKQ,MAAQ,CACTE,KAAMX,EAAMW,KACZD,GAAIV,EAAMU,GACVE,SAAUZ,EAAMY,UAAY,GAEhCX,EAAKe,gBAAkBhB,EAAMiB,QAAUjB,EAAMkB,YAAclB,EAAMY,UAAYZ,EAAMkB,UAAU,IAAMlB,EAAMkB,UAAUC,OAAS,GAC5HlB,EAAKmB,OAASnB,EAAKoB,UAAUrB,EAAMU,IACnCT,EAAKO,MAAQR,EAAMU,GAAGT,CAC1B,CA8FC,OA9FAqB,EAAAA,EAAAA,GAAAzB,EAAA,EAAA0B,IAAA,YAAAC,MAED,SAAUd,GACN,IAAMe,GAASf,GAAM,IAAIgB,MAAM,KAE/B,OADAD,EAAME,MACCF,EAAMG,KAAK,IACtB,GAAC,CAAAL,IAAA,QAAAC,MAED,SAAMb,GAEF,OADAA,GAAQA,GAAQ,IAAIkB,QAAQ,uBAAwB,KAC7CC,KAAKV,OAAS,IAAMT,CAC/B,GAAC,CAAAY,IAAA,4BAAAC,MAED,SAA0BO,GAClBA,EAAUpB,OAASmB,KAAK9B,MAAMW,MAC9BmB,KAAKhB,SAAS,CAACH,KAAMoB,EAAUpB,OAE/BoB,EAAUrB,KAAOoB,KAAK9B,MAAMU,KAC5BoB,KAAKV,OAASU,KAAKT,UAAUU,EAAUrB,IACvCoB,KAAKhB,SAAS,CAACJ,GAAIqB,EAAUrB,KAErC,GAAC,CAAAa,IAAA,SAAAC,MAeD,WAAU,IAADQ,EAAA,KACL,OAAOC,EAAAA,GAAAA,MAACC,EAAAA,EAAM,CACV7B,QAAS,SAAC8B,EAAOC,GAAM,OAAK,CAAK,EACjCC,SAAS,KACTC,WAAS,EACTC,MAAM,EACN,kBAAgB,4BAA2BC,SAAA,EAE3CC,EAAAA,GAAAA,KAACC,EAAAA,EAAW,CAAChC,GAAG,4BAA2B8B,SAAEG,EAAAA,KAAAA,EAAO,aACpDF,EAAAA,GAAAA,KAACG,EAAAA,EAAa,CAAAJ,UACVP,EAAAA,GAAAA,MAAA,QAAMY,YAAU,EAACC,aAAa,MAAKN,SAAA,EAC/BC,EAAAA,GAAAA,KAACM,EAAAA,EAAS,CACNC,QAAQ,WACRC,MAAO,CAACC,MAAO,QACfxC,GAAG,gBACHyC,WAAS,EACTC,MAAOT,EAAAA,KAAAA,EAAO,QACdnB,MAAOM,KAAKrB,MAAME,KAClB0C,WAAY,SAACC,GACM,UAAXA,EAAG/B,MAEH+B,EAAGC,iBACHC,YAAW,kBAAMxB,EAAK1B,UAAU,GAAE,KAE1C,EACAmD,SAAU,SAAAC,GAAC,OAAI1B,EAAKnB,aAAa6C,EAAEC,OAAOnC,MAAM,EAChDoC,OAAO,YAEXnB,EAAAA,GAAAA,KAACM,EAAAA,EAAS,CACNC,QAAQ,WACRtC,GAAG,mBACHuC,MAAO,CAACC,MAAO,QACfE,MAAOT,EAAAA,KAAAA,EAAO,MACdnB,MAAOM,KAAKrB,MAAMC,GAClBmD,UAAQ,EACRD,OAAO,WAGP9B,KAAKd,iBACDiB,EAAAA,GAAAA,MAAC6B,EAAAA,EAAW,CAACd,QAAQ,WAAUR,SAAA,EAC3BC,EAAAA,GAAAA,KAACsB,GAAAA,EAAU,CAACC,QAAQ,WAAUxB,SAAEG,EAAAA,KAAAA,EAAO,eACvCF,EAAAA,GAAAA,KAACwB,GAAAA,EAAM,CACHjB,QAAQ,WACRxB,MAAOM,KAAKrB,MAAMG,SAClB6C,SAAU,SAAAC,GAAC,OAAI1B,EAAKlB,SAAS,CAACF,SAAUsD,SAASR,EAAEC,OAAOnC,MAAO,KAAK,EACtE2C,WAAY,CAACxD,KAAM,WAAYD,GAAI,YAAY8B,SAE9CV,KAAK9B,MAAMkB,UAAUkD,KAAI,SAAAxD,GAAQ,OAAI6B,EAAAA,GAAAA,KAAC4B,EAAAA,EAAQ,CAAgB7C,MAAOZ,EAAS4B,SAAE5B,GAAY,KAAxCA,EAAuD,eAMpIqB,EAAAA,GAAAA,MAACqC,EAAAA,EAAa,CAAA9B,SAAA,EACVC,EAAAA,GAAAA,KAAC8B,EAAAA,EAAM,CAACvB,QAAQ,YAAYwB,QAAS1C,KAAKxB,SAAUmE,MAAM,UAAUC,WAAWjC,EAAAA,GAAAA,KAACkC,GAAAA,QAAM,IAAGnC,SAAEG,EAAAA,KAAAA,EAAO,SAClGF,EAAAA,GAAAA,KAAC8B,EAAAA,EAAM,CAACE,MAAM,OAAOzB,QAAQ,YAAYwB,QAAS1C,KAAK1B,aAAcsE,WAAWjC,EAAAA,GAAAA,KAACmC,GAAAA,QAAU,IAAGpC,SAAEG,EAAAA,KAAAA,EAAO,iBAGnH,KAAC9C,CAAA,CAzGa,CAASgF,IAAAA,WCArBC,GAAY,SAAAnF,IAAAC,EAAAA,EAAAA,GAAAkF,EAAAnF,GAAA,IAAAG,GAAAC,EAAAA,EAAAA,GAAA+E,GACd,SAAAA,EAAY9E,GAAQ,IAADC,EAKb,OALaC,EAAAA,EAAAA,GAAA,KAAA4E,IACf7E,EAAAH,EAAAK,KAAA,KAAMH,IAgBVI,aAAe,WACXH,EAAKD,MAAMK,QAAQ,KACvB,EAACJ,EAEDK,SAAW,WACPL,EAAKD,MAAM+E,SAAS9E,EAAKQ,MAAMC,IAC/BT,EAAKD,MAAMK,QAAQJ,EAAKD,MAAMwB,MAClC,EAtBIvB,EAAKQ,MAAQ,CACTE,KAAMX,EAAMW,KACZD,GAAIV,EAAMU,IACZT,CACN,CAqCC,OArCAqB,EAAAA,EAAAA,GAAAwD,EAAA,EAAAvD,IAAA,4BAAAC,MAED,SAA0BO,GAClBA,EAAUpB,OAASmB,KAAK9B,MAAMW,MAC9BmB,KAAKhB,SAAS,CAACH,KAAMoB,EAAUpB,OAE/BoB,EAAUrB,KAAOoB,KAAK9B,MAAMU,IAC5BoB,KAAKhB,SAAS,CAACJ,GAAIqB,EAAUrB,IAErC,GAAC,CAAAa,IAAA,SAAAC,MAWD,WACI,OAAOS,EAAAA,GAAAA,MAACC,EAAAA,EAAM,CACV7B,QAAS,SAAC8B,EAAOC,GAAM,OAAK,CAAK,EACjCC,SAAS,KACTE,MAAM,EACN,kBAAgB,4BAA2BC,SAAA,EAE3CC,EAAAA,GAAAA,KAACC,EAAAA,EAAW,CAAChC,GAAG,4BAA2B8B,SAAEG,EAAAA,KAAAA,EAAO,oBACpDV,EAAAA,GAAAA,MAACW,EAAAA,EAAa,CAAAJ,SAAA,EACVC,EAAAA,GAAAA,KAACuC,EAAAA,IAAU,KACXvC,EAAAA,GAAAA,KAAA,QAAMQ,MAAO,CAACgC,SAAU,GAAIC,WAAY,QAAQ1C,SAAEG,EAAAA,KAAAA,EAAO,YAAab,KAAKrB,MAAME,YAErFsB,EAAAA,GAAAA,MAACqC,EAAAA,EAAa,CAAA9B,SAAA,EACVC,EAAAA,GAAAA,KAAC8B,EAAAA,EAAM,CAACvB,QAAQ,YAAYwB,QAAS1C,KAAKxB,SAAUmE,MAAM,UAAUC,WAAWjC,EAAAA,GAAAA,KAACkC,GAAAA,QAAM,IAAGnC,SAAEG,EAAAA,KAAAA,EAAO,SAClGF,EAAAA,GAAAA,KAAC8B,EAAAA,EAAM,CAACE,MAAM,OAAOzB,QAAQ,YAAYwB,QAAS1C,KAAK1B,aAAcsE,WAAWjC,EAAAA,GAAAA,KAACmC,GAAAA,QAAU,IAAGpC,SAAEG,EAAAA,KAAAA,EAAO,iBAGnH,KAACmC,CAAA,CA5Ca,CAASD,IAAAA,WAsD3B,IAAeM,EAAAA,EAAAA,IA1DA,SAAAC,GAAK,MAAK,CAEzB,CAAC,GAwDD,CAAkCN,I,2DChC5BO,GAAY,SAAA1F,IAAAC,EAAAA,EAAAA,GAAAyF,EAAA1F,GAAA,IAAAG,GAAAC,EAAAA,EAAAA,GAAAsF,GAAA,SAAAA,IAAA,IAAApF,GAAAC,EAAAA,EAAAA,GAAA,KAAAmF,GAAA,QAAAC,EAAAC,UAAApE,OAAAqE,EAAA,IAAAC,MAAAH,GAAAI,EAAA,EAAAA,EAAAJ,EAAAI,IAAAF,EAAAE,GAAAH,UAAAG,GAOZ,OAPYzF,EAAAH,EAAAK,KAAAwF,MAAA7F,EAAA,OAAA8F,OAAAJ,KACdpF,aAAe,WACXH,EAAKD,MAAMK,SACf,EAACJ,EAEDK,SAAW,SAAAuF,GACP5F,EAAKD,MAAMK,QAAQwF,EACvB,EAAC5F,CAAC,CAoHD,OApHAqB,EAAAA,EAAAA,GAAA+D,EAAA,EAAA9D,IAAA,WAAAC,MAED,SAASsE,GACL,IAAMC,EAAOpD,EAAAA,KAAAA,cACRmD,EAAKE,SAAS,kBAA8B,OAATD,GAA0B,OAATA,IACrDD,EAAOA,EAAKjE,QAAQ,SAAU,IAAMkE,EAAO,MAEnCE,OAAO1D,KAAKuD,EAAM,UAC1BI,OACR,GAAC,CAAA3E,IAAA,YAAAC,MAED,WAAa,IAADQ,EAAA,KACR,OAAOC,EAAAA,GAAAA,MAACkE,GAAAA,EAAI,CAACC,UAAWtE,KAAK9B,MAAMqG,QAAQC,KAAK9D,SAAA,EAC5CP,EAAAA,GAAAA,MAACsE,GAAAA,EAAc,CACX/B,QAAS,kBAAMxC,EAAKhC,MAAMK,SAAW2B,EAAKhC,MAAMK,QAAQ,gBAAgB,EAACmC,SAAA,EACzEC,EAAAA,GAAAA,KAAC+D,GAAAA,EAAS,CACNJ,UAAWtE,KAAK9B,MAAMqG,QAAQI,MAC9BC,M,6oFACAC,MAAM,gBAEV1E,EAAAA,GAAAA,MAAC2E,GAAAA,EAAW,CAAApE,SAAA,EACRC,EAAAA,GAAAA,KAAA,MAAAD,SAAI,gBACJC,EAAAA,GAAAA,KAAA,OAAK2D,UAAWtE,KAAK9B,MAAMqG,QAAQQ,WAAWrE,SAAEG,EAAAA,KAAAA,EAAO,sBACvDF,EAAAA,GAAAA,KAAA,OAAK2D,UAAWtE,KAAK9B,MAAMqG,QAAQS,KAAKtE,SAAEG,EAAAA,KAAAA,EAAO,2BAGzDV,EAAAA,GAAAA,MAAC8E,GAAAA,EAAW,CAAAvE,SAAA,EACRC,EAAAA,GAAAA,KAAC8B,EAAAA,EAAM,CAACyC,KAAK,QAAQvC,MAAM,UAAUD,QAAS,kBAAMxC,EAAKhC,MAAMK,SAAW2B,EAAKhC,MAAMK,QAAQ,gBAAgB,EAACmC,SAAEG,EAAAA,KAAAA,EAAO,UACvHF,EAAAA,GAAAA,KAAC8B,EAAAA,EAAM,CAACyC,KAAK,QAAQvC,MAAM,UAAUD,QAAS,kBAAMxC,EAAKiF,SAAS,oFAAoF,EAACzE,SAAEG,EAAAA,KAAAA,EAAO,qBAG5K,GAAC,CAAApB,IAAA,YAAAC,MAED,WAAa,IAAD0F,EAAA,KACR,OAAOjF,EAAAA,GAAAA,MAACkE,GAAAA,EAAI,CAACC,UAAWtE,KAAK9B,MAAMqG,QAAQC,KAAK9D,SAAA,EAC5CP,EAAAA,GAAAA,MAACsE,GAAAA,EAAc,CACX/B,QAAS,kBAAM0C,EAAKlH,MAAMK,SAAW6G,EAAKlH,MAAMK,QAAQ,gBAAgB,EAACmC,SAAA,EACzEC,EAAAA,GAAAA,KAAC+D,GAAAA,EAAS,CACNJ,UAAWtE,KAAK9B,MAAMqG,QAAQI,MAC9BC,M,qjEACAC,MAAM,gBAEV1E,EAAAA,GAAAA,MAAC2E,GAAAA,EAAW,CAAApE,SAAA,EACRC,EAAAA,GAAAA,KAAA,MAAAD,SAAI,gBACJC,EAAAA,GAAAA,KAAA,OAAK2D,UAAWtE,KAAK9B,MAAMqG,QAAQQ,WAAWrE,SAAEG,EAAAA,KAAAA,EAAO,wBACvDF,EAAAA,GAAAA,KAAA,OAAK2D,UAAWtE,KAAK9B,MAAMqG,QAAQS,KAAKtE,SAAEG,EAAAA,KAAAA,EAAO,2BAGzDV,EAAAA,GAAAA,MAAC8E,GAAAA,EAAW,CAAAvE,SAAA,EACRC,EAAAA,GAAAA,KAAC8B,EAAAA,EAAM,CAACyC,KAAK,QAAQvC,MAAM,UAAUD,QAAS,kBAAM0C,EAAKlH,MAAMK,SAAW6G,EAAKlH,MAAMK,QAAQ,gBAAgB,EAACmC,SAAEG,EAAAA,KAAAA,EAAO,UACvHF,EAAAA,GAAAA,KAAC8B,EAAAA,EAAM,CAACyC,KAAK,QAAQvC,MAAM,UAAUD,QAAS,kBAAM0C,EAAKD,SAAS,oFAAoF,EAACzE,SAAEG,EAAAA,KAAAA,EAAO,qBAG5K,GAAC,CAAApB,IAAA,iBAAAC,MAED,WAAkB,IAAD2F,EAAA,KACb,OAAOlF,EAAAA,GAAAA,MAACkE,GAAAA,EAAI,CAACC,UAAWtE,KAAK9B,MAAMqG,QAAQC,KAAK9D,SAAA,EAC5CP,EAAAA,GAAAA,MAACsE,GAAAA,EAAc,CAAC/B,QAAS,kBAAM2C,EAAKnH,MAAMK,SAAW8G,EAAKnH,MAAMK,QAAQ,UAAU,EAACmC,SAAA,EAC/EC,EAAAA,GAAAA,KAAC+D,GAAAA,EAAS,CACNJ,UAAWtE,KAAK9B,MAAMqG,QAAQI,MAC9BC,M,iuHACAC,MAAM,aAEV1E,EAAAA,GAAAA,MAAC2E,GAAAA,EAAW,CAAApE,SAAA,EACRC,EAAAA,GAAAA,KAAA,MAAAD,SAAI,aACJC,EAAAA,GAAAA,KAAA,OAAK2D,UAAWtE,KAAK9B,MAAMqG,QAAQQ,WAAWrE,SAAEG,EAAAA,KAAAA,EAAO,aACvDF,EAAAA,GAAAA,KAAA,OAAK2D,UAAWtE,KAAK9B,MAAMqG,QAAQS,KAAKtE,SAAEG,EAAAA,KAAAA,EAAO,gCAGzDV,EAAAA,GAAAA,MAAC8E,GAAAA,EAAW,CAAAvE,SAAA,EACRC,EAAAA,GAAAA,KAAC8B,EAAAA,EAAM,CAACyC,KAAK,QAAQvC,MAAM,UAAUD,QAAS,kBAAM2C,EAAKnH,MAAMK,SAAW8G,EAAKnH,MAAMK,QAAQ,UAAU,EAACmC,SAAEG,EAAAA,KAAAA,EAAO,UACjHF,EAAAA,GAAAA,KAAC8B,EAAAA,EAAM,CAACyC,KAAK,QAAQvC,MAAM,UAAUD,QAAS,kBAAM2C,EAAKF,SAAS,iFAAiF,EAACzE,SAAEG,EAAAA,KAAAA,EAAO,qBAGzK,GAAC,CAAApB,IAAA,eAAAC,MAED,WAAgB,IAAD4F,EAAA,KACX,OAAOnF,EAAAA,GAAAA,MAACkE,GAAAA,EAAI,CAACC,UAAWtE,KAAK9B,MAAMqG,QAAQC,KAAK9D,SAAA,EAC5CP,EAAAA,GAAAA,MAACsE,GAAAA,EAAc,CAAC/B,QAAS,kBAAM4C,EAAKpH,MAAMK,SAAW+G,EAAKpH,MAAMK,QAAQ,QAAQ,EAACmC,SAAA,EAC7EC,EAAAA,GAAAA,KAAC+D,GAAAA,EAAS,CACNJ,UAAWtE,KAAK9B,MAAMqG,QAAQI,MAC9BC,M,6jVACAC,MAAM,WAEV1E,EAAAA,GAAAA,MAAC2E,GAAAA,EAAW,CAAApE,SAAA,EACRC,EAAAA,GAAAA,KAAA,MAAAD,SAAI,WACJC,EAAAA,GAAAA,KAAA,OAAK2D,UAAWtE,KAAK9B,MAAMqG,QAAQQ,WAAWrE,SAAEG,EAAAA,KAAAA,EAAO,WACvDF,EAAAA,GAAAA,KAAA,OAAK2D,UAAWtE,KAAK9B,MAAMqG,QAAQS,KAAKtE,SAAEG,EAAAA,KAAAA,EAAO,8BAGzDV,EAAAA,GAAAA,MAAC8E,GAAAA,EAAW,CAAAvE,SAAA,EACRC,EAAAA,GAAAA,KAAC8B,EAAAA,EAAM,CAACyC,KAAK,QAAQvC,MAAM,UAAUD,QAAS,kBAAM4C,EAAKpH,MAAMK,SAAW+G,EAAKpH,MAAMK,QAAQ,QAAQ,EAACmC,SAAEG,EAAAA,KAAAA,EAAO,UAC/GF,EAAAA,GAAAA,KAAC8B,EAAAA,EAAM,CAACyC,KAAK,QAAQvC,MAAM,UAAUD,QAAS,kBAAM4C,EAAKH,SAAS,oFAAoF,EAACzE,SAAEG,EAAAA,KAAAA,EAAO,qBAG5K,GAAC,CAAApB,IAAA,SAAAC,MAED,WACI,OAAOS,EAAAA,GAAAA,MAACC,EAAAA,EAAM,CACV7B,QAAS,kBAAM,CAAK,EACpBgC,SAAS,KACTC,WAAS,EACTC,MAAM,EACN,kBAAgB,4BAA2BC,SAAA,EAE3CC,EAAAA,GAAAA,KAACC,EAAAA,EAAW,CAAChC,GAAG,4BAA2B8B,SAAEG,EAAAA,KAAAA,EAAO,qBACpDV,EAAAA,GAAAA,MAACW,EAAAA,EAAa,CAACK,MAAO,CAAEoE,UAAW,UAAW7E,SAAA,CACzCV,KAAKwF,eACLxF,KAAKyF,iBACLzF,KAAK0F,YACL1F,KAAK2F,gBAEVhF,EAAAA,GAAAA,KAAC6B,EAAAA,EAAa,CAAA9B,UACVC,EAAAA,GAAAA,KAAC8B,EAAAA,EAAM,CAACE,MAAM,OAAOD,QAAS1C,KAAK1B,aAAcsE,WAAWjC,EAAAA,GAAAA,KAACmC,GAAAA,QAAU,IAAGpC,SAAEG,EAAAA,KAAAA,EAAO,gBAG/F,KAAC0C,CAAA,CA3Ha,CAASR,IAAAA,WAkI3B,IAAeM,EAAAA,EAAAA,IArJA,SAAAC,GAAK,MAAK,CACrBkB,KAAM,CACFjE,SAAU,IACVqF,QAAS,eACT9D,OAAQ,iBAEZ6C,MAAO,CACHkB,OAAQ,KAEZb,KAAM,CACFzE,SAAU,KAEdwE,WAAY,CACR3B,WAAY,OACZ0C,UAAW,SACXC,aAAczC,EAAM0C,QAAQ,IAEnC,GAoID,CAAkCzC,ICnJ5B0C,GAAS,SAAApI,IAAAC,EAAAA,EAAAA,GAAAmI,EAAApI,GAAA,IAAAG,GAAAC,EAAAA,EAAAA,GAAAgI,GACX,SAAAA,EAAY/H,GAAQ,IAADC,EAQgH,OARhHC,EAAAA,EAAAA,GAAA,KAAA6H,IACf9H,EAAAH,EAAAK,KAAA,KAAMH,IAsBVI,aAAe,WACXH,EAAKD,MAAMK,SACf,EAACJ,EAEDK,SAAW,WACPL,EAAKD,MAAMgI,MAAM/H,EAAKc,MAAMd,EAAKQ,MAAME,MAAOV,EAAKQ,MAAME,KAAMV,EAAKQ,MAAMG,SAAUX,EAAKD,MAAM6F,MAC/F5F,EAAKD,MAAMK,SACf,EAACJ,EAEDY,aAAe,SAAAF,GACX,IAAMD,EAAKT,EAAKc,MAAMJ,GACjBA,EAGDV,EAAKD,MAAMiI,gBAA2D,IAA1ChI,EAAKD,MAAMiI,cAAcC,QAAQxH,GAC7DT,EAAKa,SAAS,CAACH,KAAAA,EAAMD,GAAAA,EAAIyH,MAAOxF,EAAAA,KAAAA,EAAO,oBAEvC1C,EAAKa,SAAS,CAACH,KAAAA,EAAMD,GAAAA,EAAIyH,MAAO,KALhClI,EAAKa,SAAS,CAACH,KAAAA,EAAMD,GAAAA,EAAIyH,MAAOxF,EAAAA,KAAAA,EAAO,8BAO/C,EAxCI1C,EAAKQ,MAAQ,CACTE,KAAMX,EAAMW,MAAQ,SACpBC,SAAUZ,EAAMY,UAAY,EAC5BwH,OAAQpI,EAAMoI,OACdD,MAAO,IAEXlI,EAAKe,gBAAkBhB,EAAMiB,QAAUjB,EAAMkB,YAAclB,EAAMY,UAAYZ,EAAMkB,UAAU,IAAMlB,EAAMkB,UAAUC,OAAS,GAAGlB,CACnI,CA6HC,OA7HAqB,EAAAA,EAAAA,GAAAyG,EAAA,EAAAxG,IAAA,QAAAC,MAED,SAAMb,GAGF,OADAA,GADAA,EAAOA,GAAQmB,KAAKrB,MAAME,MAAQ,IACtBkB,QAAQ,wBAAyB,KAAKwG,OAAOxG,QAAQ,MAAO,MAChEC,KAAKrB,MAAQqB,KAAKrB,MAAM2H,OAAStG,KAAK9B,MAAMoI,QAAU,IAAMzH,CACxE,GAAC,CAAAY,IAAA,4BAAAC,MAED,SAA0BO,GAClBA,EAAUpB,OAASmB,KAAK9B,MAAMW,MAC9BmB,KAAKhB,SAAS,CAACH,KAAMoB,EAAUpB,MAEvC,GAAC,CAAAY,IAAA,SAAAC,MAuBD,WAAU,IAADQ,EAAA,KACL,OAAOC,EAAAA,GAAAA,MAACC,EAAAA,EAAM,CACV7B,QAAS,SAAC8B,EAAOC,GAAM,OAAK,CAAK,EACjCC,SAAS,KACTC,WAAS,EACTC,MAAM,EACN,kBAAgB,4BAA2BC,SAAA,EAE3CC,EAAAA,GAAAA,KAACC,EAAAA,EAAW,CAAChC,GAAG,4BAA2B8B,SAAEV,KAAK9B,MAAM2G,OAAShE,EAAAA,KAAAA,EAAO,iBACxEF,EAAAA,GAAAA,KAACG,EAAAA,EAAa,CAAAJ,UACVP,EAAAA,GAAAA,MAAA,QAAMY,YAAU,EAACC,aAAa,MAAKN,SAAA,EAC/BC,EAAAA,GAAAA,KAACM,EAAAA,EAAS,CACNC,QAAQ,WACRC,MAAO,CAACC,MAAO,QACfxC,GAAG,gBACHyC,WAAS,EACTgF,QAASrG,KAAKrB,MAAM0H,MACpB/E,MAAOT,EAAAA,KAAAA,EAAO,QACdnB,MAAOM,KAAKrB,MAAME,KAClB2H,WAAYxG,KAAKrB,MAAM0H,MACvB9E,WAAY,SAACC,GACM,UAAXA,EAAG/B,MAEH+B,EAAGC,iBACHC,YAAW,kBAAMxB,EAAK1B,UAAU,GAAE,KAE1C,EACAmD,SAAU,SAAAC,GAAC,OAAI1B,EAAKnB,aAAa6C,EAAEC,OAAOnC,MAAM,EAChDoC,OAAO,YAEX3B,EAAAA,GAAAA,MAAC6B,EAAAA,EAAW,CAACd,QAAQ,WAAWC,MAAO,CAACsF,SAAU,KAAK/F,SAAA,EACnDC,EAAAA,GAAAA,KAACsB,GAAAA,EAAU,CAACC,QAAQ,SAAQxB,SAAEG,EAAAA,KAAAA,EAAO,aACrCF,EAAAA,GAAAA,KAACwB,GAAAA,EAAM,CACHjB,QAAQ,WACRC,MAAO,CAACC,MAAO,QACf1B,MAAOM,KAAKrB,MAAM2H,OAClB3E,SAAU,SAAAC,GAAC,OAAI1B,EAAKlB,SAAS,CAACsH,OAAQ1E,EAAEC,OAAOnC,OAAO,EACtD2C,WAAY,CAACxD,KAAM,SAAUD,GAAI,UAAW8B,SAE3CV,KAAK9B,MAAMwI,QAAQpE,KAAI,SAAAgE,GACpB,IAAM3G,EAAQ2G,EAAO1H,GAAGgB,MAAM,KAC9BD,EAAMgH,OAAO,EAAG,GAChB,IAAMC,EAAQ,GACVhI,EAAK,YAaT,OAZAe,EAAMkH,SAAQ,SAACC,EAAGC,GACdnI,GAAM,IAAMkI,EACZ,IAAME,EAAK9G,EAAKhC,MAAMwI,QAAQO,MAAK,SAAAC,GAAI,OAAIA,EAAKtI,KAAOA,CAAE,IACrDoI,EACAJ,EAAMO,KAAKH,EAAGnI,MAEd+H,EAAMO,KAAKL,EAEnB,IACKF,EAAMvH,QACPuH,EAAMO,KAAKb,EAAOzH,OAEd8B,EAAAA,GAAAA,KAAC4B,EAAAA,EAAQ,CAAiB7C,MAAO4G,EAAO1H,GAAG8B,SAAEkG,EAAM9G,KAAK,QAAzCwG,EAAO1H,GAClC,UAGR+B,EAAAA,GAAAA,KAACM,EAAAA,EAAS,CACNC,QAAQ,WACRtC,GAAG,mBACHuC,MAAO,CAACC,MAAO,QACfE,MAAOT,EAAAA,KAAAA,EAAO,MACdnB,MAAOM,KAAKf,QACZ8C,UAAQ,EACRD,OAAO,WAGP9B,KAAKd,iBACDiB,EAAAA,GAAAA,MAAC6B,EAAAA,EAAW,CAACd,QAAQ,WAAUR,SAAA,EAC/BC,EAAAA,GAAAA,KAACsB,GAAAA,EAAU,CAACC,QAAQ,WAAUxB,SAAEG,EAAAA,KAAAA,EAAO,eACvCF,EAAAA,GAAAA,KAACwB,GAAAA,EAAM,CACHjB,QAAQ,WACRxB,MAAOM,KAAKrB,MAAMG,SAClB6C,SAAU,SAAAC,GAAC,OAAI1B,EAAKlB,SAAS,CAACF,SAAUsD,SAASR,EAAEC,OAAOnC,MAAO,KAAK,EACtE2C,WAAY,CAACxD,KAAM,WAAYD,GAAI,YAAa8B,SAE/CV,KAAK9B,MAAMkB,UAAUkD,KAAI,SAAAxD,GAAQ,OAAK6B,EAAAA,GAAAA,KAAC4B,EAAAA,EAAQ,CAA6B7C,MAAOZ,EAAS4B,SAAE5B,GAAY,KAArD,WAAaA,EAAuD,eAM9IqB,EAAAA,GAAAA,MAACqC,EAAAA,EAAa,CAAA9B,SAAA,EACVC,EAAAA,GAAAA,KAAC8B,EAAAA,EAAM,CAACvB,QAAQ,YAAYwB,QAAS1C,KAAKxB,SAAUuD,WAAY/B,KAAKrB,MAAM0H,MAAO1D,MAAM,UAAUC,WAAWjC,EAAAA,GAAAA,KAACkC,GAAAA,QAAM,IAAGnC,SAAEG,EAAAA,KAAAA,EAAO,SAChIF,EAAAA,GAAAA,KAAC8B,EAAAA,EAAM,CAACE,MAAM,OAAOzB,QAAQ,YAAYwB,QAAS1C,KAAK1B,aAAcsE,WAAWjC,EAAAA,GAAAA,KAACmC,GAAAA,QAAU,IAAGpC,SAAEG,EAAAA,KAAAA,EAAO,iBAGnH,KAACoF,CAAA,CAvIU,CAASlD,IAAAA,WAwJxB,IAAeM,EAAAA,EAAAA,IA5JA,SAAAC,GAAK,MAAK,CAEzB,CAAC,GA0JD,CAAkC2C,I,YCtJ5BmB,GAAW,SAAAvJ,IAAAC,EAAAA,EAAAA,GAAAsJ,EAAAvJ,GAAA,IAAAG,GAAAC,EAAAA,EAAAA,GAAAmJ,GACb,SAAAA,EAAYlJ,GAAQ,IAADC,EAEa,OAFbC,EAAAA,EAAAA,GAAA,KAAAgJ,IACfjJ,EAAAH,EAAAK,KAAA,KAAMH,IAGVM,SAAW,WACPL,EAAKD,MAAMK,SAAWJ,EAAKD,MAAMK,SACrC,EAJI8I,QAAQC,IAAI,iBAAgBnJ,CAChC,CA0BC,OA1BAqB,EAAAA,EAAAA,GAAA4H,EAAA,EAAA3H,IAAA,SAAAC,MAKD,WAAU,IAADQ,EAAA,KACL,OAAOC,EAAAA,GAAAA,MAACC,EAAAA,EAAM,CACVK,MAAM,EACNF,SAAS,KACTC,WAAS,EACTjC,QAAS,kBAAM2B,EAAK1B,UAAU,EAC9B,kBAAgB,qBAChB,mBAAiB,2BAA0BkC,SAAA,EAE3CC,EAAAA,GAAAA,KAACC,EAAAA,EAAW,CAAC0D,UAAWtE,KAAK9B,MAAMqG,QAAQgD,gBAC9BhD,QAAS,CAAEiD,KAAMxH,KAAK9B,MAAMqG,QAAQkD,YACpC7I,GAAG,qBAAoB8B,SAAEV,KAAK9B,MAAM2G,OAAShE,EAAAA,KAAAA,EAAO,YACjEF,EAAAA,GAAAA,KAACG,EAAAA,EAAa,CAAAJ,UACVC,EAAAA,GAAAA,KAAC+G,GAAAA,EAAiB,CAAC9I,GAAG,2BAA0B8B,SAC3CV,KAAK9B,MAAM8G,MAAQnE,EAAAA,KAAAA,EAAO,uBAGnCF,EAAAA,GAAAA,KAAC6B,EAAAA,EAAa,CAAA9B,UACVC,EAAAA,GAAAA,KAAC8B,EAAAA,EAAM,CAACvB,QAAQ,YAAYwB,QAAS,kBAAMxC,EAAK1B,UAAU,EAAEmE,MAAM,UAAUtB,WAAS,EAACuB,WAAWjC,EAAAA,GAAAA,KAACkC,GAAAA,QAAM,IAAGnC,SAAEG,EAAAA,KAAAA,EAAO,YAGhI,KAACuG,CAAA,CA9BY,CAASrE,IAAAA,WAwC1B,IAAeM,EAAAA,EAAAA,IApDA,SAAAC,GAAK,MAAK,CACrBiE,gBAAiB,CACbI,WAAYrE,EAAMsE,QAAQvB,MAAMwB,MAEpCJ,WAAY,CACR9E,MAAOW,EAAMsE,QAAQvB,MAAMyB,aAC3B,OAAQ,CACJnF,MAAOW,EAAMsE,QAAQvB,MAAMyB,eAGtC,GA0CD,CAAkCV,I,oCCrB5BW,GAAkB,SAAAlK,IAAAC,EAAAA,EAAAA,GAAAiK,EAAAlK,GAAA,IAAAG,GAAAC,EAAAA,EAAAA,GAAA8J,GACpB,SAAAA,EAAY7J,GAAQ,IAADC,EASb,OATaC,EAAAA,EAAAA,GAAA,KAAA2J,IACf5J,EAAAH,EAAAK,KAAA,KAAMH,IA+CVM,SAAW,WAEP,GAAIL,EAAKQ,MAAMS,UAAU6H,MAAK,SAAAC,GAAI,OAAIA,EAAKtI,KAAOT,EAAKQ,MAAMqJ,cAAc,IAAEC,QACzE,OAAO9J,EAAKD,MAAMgK,OAAOC,UAAU,kBAAoBhK,EAAKQ,MAAMqJ,gBAC7DI,MAAK,SAAAC,GACFA,EAAIC,OAAOL,SAAU,EACrB9J,EAAKD,MAAMgK,OAAOK,UAAUF,EAAIG,IAAKH,GAChCD,MAAK,kBACFjK,EAAKD,MAAMuK,QAAQtK,EAAKQ,MAAM+J,WAAYvK,EAAKQ,MAAMqJ,eAAe,GAChF,IAEJ7J,EAAKD,MAAMuK,QAAQtK,EAAKQ,MAAM+J,WAAYvK,EAAKQ,MAAMqJ,eAE7D,EA3DI7J,EAAKQ,MAAQ,CACTS,UAAW,GACXuJ,OAAQxE,OAAOyE,aAAaC,QAAQ,4BAA8B,GAClEC,gBAAgB,EAChBJ,WAAYvE,OAAOyE,aAAaC,QAAQ,8BAAgC,GACxEE,eAAgB,GAChBf,eAAgB7D,OAAOyE,aAAaC,QAAQ,6BAA+B,IAC7E1K,CACN,CAiJC,OAjJAqB,EAAAA,EAAAA,GAAAuI,EAAA,EAAAtI,IAAA,oBAAAC,MAED,WAAqB,IAADQ,EAAA,KAChBF,KAAK9B,MAAMgK,OAAOc,sBACbZ,MAAK,SAAAhJ,IACFA,EAAYA,EAAUuJ,QAAO,SAAA5B,GAAC,IAAAkC,EAAA,OAAIlC,KAAc,QAATkC,EAAClC,EAAEuB,cAAM,IAAAW,GAARA,EAAUC,QAAO,IAAE5G,KAAI,SAAA4E,GAAU,IAADiC,EAAAC,EAAAC,EAC9DxK,EAAOqI,EAAKsB,IAAIzI,QAAQ,qBAAsB,IACpDuJ,EAAkBzK,EAAKe,MAAM,KAAtB2J,GAA0BC,EAAAA,EAAAA,GAAAF,EAAA,GAAnB,GACd,MAAO,CACH1K,GAAIC,EACJoJ,QAAoB,QAAbkB,EAAEjC,EAAKoB,cAAM,IAAAa,OAAA,EAAXA,EAAalB,QACtBwB,KAAiB,QAAbL,EAAElC,EAAKoB,cAAM,IAAAc,OAAA,EAAXA,EAAaK,KACnBC,KAAiB,QAAXL,EAAAnC,EAAKoB,cAAM,IAAAe,GAAXA,EAAaK,KAAI,iBAAA5F,OAAoByF,EAAO,KAAAzF,OAAIoD,EAAKoB,OAAOoB,MAAS,GAEnF,KACUC,MAAK,SAACC,EAAGC,GAAC,OAAKD,EAAEhL,GAAKiL,EAAEjL,GAAK,EAAKgL,EAAEhL,GAAKiL,EAAEjL,IAAM,EAAI,CAAE,IACjE,IAEImK,EAFAL,EAAaxI,EAAKvB,MAAM+J,YAAc,GACtCoB,EAAgB5J,EAAKvB,MAAM+J,YAActJ,EAAU6H,MAAK,SAAAC,GAAI,OAAIA,EAAKtI,KAAOsB,EAAKvB,MAAM+J,UAAU,IAIhGxI,EAAKvB,MAAM+J,YAAeoB,EAK3Bf,EAAiBe,EAAgBA,EAAcL,KAAO,IAHtDV,GADAL,EAAatJ,EAAU6H,MAAK,SAAAC,GAAI,OAAIA,EAAKtI,GAAGmL,WAAW,cAAc,KACvCrB,EAAWe,KAAO,GAChDf,EAAaA,EAAaA,EAAW9J,GAAK,IAK9C,IAAIoJ,EAAiB9H,EAAKvB,MAAMqJ,gBAAkB,GAC9CA,IAAmB5I,EAAU6H,MAAK,SAAAC,GAAI,OAAIA,EAAKtI,KAAOoJ,CAAc,MACpEA,EAAiB,IAGrB9H,EAAKlB,SAAS,CAACI,UAAAA,EAAWsJ,WAAAA,EAAYV,eAAAA,EAAgBe,eAAAA,GAC1D,GACR,GAAC,CAAAtJ,IAAA,uBAAAC,MAkBD,WAAwB,IAAD0F,EAAA,KACb4E,EAAKhK,KAAKrB,MAAMS,UAAUuJ,QAAO,SAAAzB,GAAI,OAAIA,EAAKtI,GAAGmL,WAAW,cAAc,IAChF,OAAIC,EAAG3K,OAAS,EACL,MAEAc,EAAAA,GAAAA,MAAC8J,GAAAA,GAAI,CAAC/C,MAAI,EAAAxG,SAAA,EACbC,EAAAA,GAAAA,KAAA,OAAK2D,UAAWtE,KAAK9B,MAAMqG,QAAQM,MAAMnE,SAAEG,EAAAA,KAAAA,EAAO,WAClDF,EAAAA,GAAAA,KAACuJ,EAAAA,EAAI,CAACC,UAAU,MAAKzJ,SAChBsJ,EAAG1H,KAAI,SAAA4E,GAAI,OAAI/G,EAAAA,GAAAA,MAACiK,EAAAA,GAAQ,CACrBC,QAAM,EACNC,SAAUlF,EAAKzG,MAAM+J,aAAexB,EAAKtI,GACzC8D,QAAS0C,EAAKpG,SAAS,CAAC0J,WAAYxB,EAAKtI,GAAImK,eAAgB7B,EAAKuC,OAAO/I,SAAA,EAEzEC,EAAAA,GAAAA,KAAC4J,EAAAA,EAAY,CAAA7J,UAACC,EAAAA,GAAAA,KAAA,OAAK6J,IAAKtD,EAAKwC,KAAMe,IAAKvD,EAAKtI,GAAI0F,UAAWc,EAAKlH,MAAMqG,QAAQmF,UAC/E/I,EAAAA,GAAAA,KAAC+J,EAAAA,EAAY,CAACC,QAASzD,EAAKtI,OACrB,QAI3B,GAAC,CAAAa,IAAA,kBAAAC,MAED,WAAmB,IAAD2F,EAAA,KACd,GAAKrF,KAAKrB,MAAM+J,WAET,CACH,IAAMtJ,EAAYY,KAAKrB,MAAMS,UAAUuJ,QAAO,SAAAzB,GAAI,OAC9CA,EAAKtI,KAAOyG,EAAK1G,MAAM+J,YAAcxB,EAAKuC,OAASpE,EAAK1G,MAAMoK,kBAAoB1D,EAAK1G,MAAMgK,QAAUzB,EAAKtI,GAAGsF,SAASmB,EAAK1G,MAAMgK,OAAOiC,eAAgB,IAC9J,OAAOzK,EAAAA,GAAAA,MAAC8J,GAAAA,GAAI,CAAC/C,MAAI,EAAAxG,SAAA,EACbC,EAAAA,GAAAA,KAAA,OAAK2D,UAAWtE,KAAK9B,MAAMqG,QAAQM,MAAMnE,SAAEG,EAAAA,KAAAA,EAAO,gBAClDF,EAAAA,GAAAA,KAACuJ,EAAAA,EAAI,CAACC,UAAU,MAAKzJ,SAChBtB,EAAUkD,KAAI,SAAA4E,GAAI,OAAI/G,EAAAA,GAAAA,MAACiK,EAAAA,GAAQ,CAC5BC,QAAM,EACNC,SAAUjF,EAAK1G,MAAMqJ,iBAAmBd,EAAKtI,GAC7CiM,cAAe,kBAAMxF,EAAKrG,SAAS,CAACgJ,eAAgBd,EAAKtI,KAAK,kBAAMyG,EAAK7G,UAAU,GAAC,EACpFkE,QAAS,kBAAM2C,EAAKrG,SAAS,CAACgJ,eAAgBd,EAAKtI,IAAI,EAAC8B,SAAA,EAExDC,EAAAA,GAAAA,KAAC4J,EAAAA,EAAY,CAAA7J,UAACC,EAAAA,GAAAA,KAAA,OAAK6J,IAAKtD,EAAKwC,KAAMe,IAAKvD,EAAKtI,GAAI0F,UAAWe,EAAKnH,MAAMqG,QAAQmF,UAC/E/I,EAAAA,GAAAA,KAAC+J,EAAAA,EAAY,CAACC,QAASzD,EAAKtI,OACrB,QAGvB,CAlBI,OAAO+B,EAAAA,GAAAA,KAACsJ,GAAAA,GAAI,CAAC/C,MAAI,GAmBzB,GAAC,CAAAzH,IAAA,SAAAC,MAED,WAAU,IAAD4F,EAAA,KACL,OAAOnF,EAAAA,GAAAA,MAACC,EAAAA,EAAM,CACVG,SAAS,KACTC,WAAW,EACXC,MAAM,EACNlC,QAAS,SAAC8B,EAAOC,GAAM,OAAK,CAAK,EACjC,kBAAgB,4BAA2BI,SAAA,EAE3CC,EAAAA,GAAAA,KAACC,EAAAA,EAAW,CAAChC,GAAG,4BAA2B8B,SAAEV,KAAK9B,MAAM2G,OAAShE,EAAAA,KAAAA,EAAO,qBACxEF,EAAAA,GAAAA,KAACG,EAAAA,EAAa,CAAAJ,UACVP,EAAAA,GAAAA,MAAC8J,GAAAA,GAAI,CAACa,WAAS,EAACC,UAAU,SAAQrK,SAAA,EAC9BC,EAAAA,GAAAA,KAACsJ,GAAAA,GAAI,CAAC/C,MAAI,EAAAxG,UACNC,EAAAA,GAAAA,KAACqK,EAAAA,EAAK,CACFzG,QAAS,CAACiD,KAAMxH,KAAK9B,MAAMqG,QAAQ0G,kBACnCvL,MAAOM,KAAKrB,MAAMgK,OAClBuC,YAAarK,EAAAA,KAAAA,EAAO,UACpBc,SAAU,SAAAC,GACN0D,EAAKtG,SAAS,CAAC2J,OAAQ/G,EAAEC,OAAOnC,QAChCyE,OAAOyE,aAAauC,QAAQ,0BAA2BvJ,EAAEC,OAAOnC,MACpE,EACA0L,cACIzK,EAAAA,GAAAA,KAAC0K,GAAAA,EAAc,CAACC,SAAS,MAAK5K,SACzBV,KAAKrB,MAAMgK,QAAShI,EAAAA,GAAAA,KAAC4K,EAAAA,EAAU,CAC5BrG,KAAK,QACL,aAAW,6BACXxC,QAAS,kBAAM4C,EAAKtG,SAAS,CAAC2J,OAAQ,IAAI,EAACjI,UAE3CC,EAAAA,GAAAA,KAAC6K,GAAAA,QAAS,MACE,UAKhC7K,EAAAA,GAAAA,KAACsJ,GAAAA,GAAI,CAAC/C,MAAI,EAAAxG,UACNP,EAAAA,GAAAA,MAAC8J,GAAAA,GAAI,CAACa,WAAS,EAAApK,SAAA,CACVV,KAAKyL,uBACLzL,KAAK0L,6BAMtBvL,EAAAA,GAAAA,MAACqC,EAAAA,EAAa,CAAA9B,SAAA,EACVC,EAAAA,GAAAA,KAAC8B,EAAAA,EAAM,CAACvB,QAAQ,YAAYwB,QAAS1C,KAAKxB,SAAUuD,UAAW/B,KAAKrB,MAAM+J,aAAe1I,KAAKrB,MAAMqJ,eAAgBrF,MAAM,UAAUC,WAAWjC,EAAAA,GAAAA,KAACkC,GAAAA,QAAM,IAAGnC,SAAEG,EAAAA,KAAAA,EAAO,YAClKF,EAAAA,GAAAA,KAAC8B,EAAAA,EAAM,CAACE,MAAM,OAAOzB,QAAQ,YAAYwB,QAAS,kBAAM4C,EAAKpH,MAAMK,SAAS,EAAEqE,WAAWjC,EAAAA,GAAAA,KAACmC,GAAAA,QAAU,IAAGpC,SAAEG,EAAAA,KAAAA,EAAO,gBAG5H,KAACkH,CAAA,CA5JmB,CAAShF,IAAAA,WAqKjC,IAAeM,EAAAA,EAAAA,IA1LA,SAAAC,GAAK,MAAK,CACrBqI,WAAY,CACRC,YAAatI,EAAM0C,QAAQ,IAE/B0D,KAAM,CACFtI,MAAO,GACPyE,OAAQ,IAEZ8C,OAAQ,CACJvH,MAAO,QAEX6J,iBAAkB,CACd7J,MAAO,QAEXyD,MAAO,CACHzB,WAAY,OACZyI,UAAWvI,EAAM0C,QAAQ,IAEhC,GAwKD,CAAkC+B,ICxJ5B+D,GAAYC,EAAAA,EAAAA,KACZC,GAAgBC,EAAAA,EAAAA,KAChBC,GAAcC,EAAAA,EAAAA,KACdC,GAAU,YACVC,GAAYD,GAAU,UACtBE,GAAYF,GAAU,UACtBG,GAAe,IAGfC,GAAiB,CACnB7E,WAAY,UACZhF,MAAO,SAyJL8J,GAAS,CACX,QAAWC,EACX,gBAAiBC,EACjBC,IAAKD,EACL,MAAQE,EACR,gBAAiBC,GAGfC,GAAgB,SAACnO,EAAIyJ,EAAKpE,GAE5B,OADAA,EAAOA,GAAQpD,EAAAA,KAAAA,cACXwH,GAAOA,EAAIC,QAAUD,EAAIC,OAAOzJ,KACD,kBAApBwJ,EAAIC,OAAOzJ,MACVwJ,EAAIC,OAAOzJ,KAAKoF,IAASoE,EAAIC,OAAOzJ,KAAKmO,IAAMpO,EAAGmB,QAAQ,eAAgB,KAAKkN,WAEhF5E,EAAIC,OAAOzJ,KAAKoO,WAGpBrO,EAAGmB,QAAQ,eAAgB,GAE1C,EAEMmN,GAAc,SAAAC,GAqBhB,IApBA,IAuEIC,EAvEEC,EAAS,CAAC,CACZzO,GAAIwN,GACJkB,MAAO,EACPC,MAAO,EACPjH,OAAQ,KACRzB,MAAO,OACPd,KAAM,WAEJyJ,EAAMC,OAAOC,KAAKP,GAYfpG,EAAI,EAAGA,EAAIyG,EAAInO,OAAQ0H,IAAK,CACjC,IAAMsB,EAAM8E,EAAKK,EAAIzG,IACfpH,EAAQ6N,EAAIzG,GAAGnH,MAAM,KAC3BD,EAAME,MACNwN,EAAOlG,KAAK,CACRvI,GAAI4O,EAAIzG,GACRlC,MAAOkI,GAAcS,EAAIzG,GAAIsB,GAC7BJ,QAASI,GAAOA,EAAIC,QAAUD,EAAIC,OAAOL,QACzCqF,MAAO3N,EAAMN,OAAS,EACtB0E,KAAmB,WAAbsE,EAAItE,KAAoBsE,EAAIC,OAAOqF,WAAa,SACtDrH,OAAQ3G,EAAMN,OAAS,EAAIM,EAAMG,KAAK,KAAO,KAC7ChB,SAAUuJ,EAAIC,OAAOsF,OAASxL,SAASiG,EAAIC,OAAOsF,OAAOhO,MAAM,KAAKC,MAAO,KAAO,EAAI,MAE9F,CAuCA,GACIuN,GAAW,EAGXC,EAAOxG,SAAQ,SAAAK,GACX,GAAIA,EAAKZ,SACU+G,EAAOpG,MAAK,SAAA4G,GAAE,OAAIA,EAAGjP,KAAOsI,EAAKZ,MAAM,IACzC,CACT,IAAM3G,EAAQuH,EAAKZ,OAAO1G,MAAM,KAChCD,EAAME,MACNwN,EAAOlG,KAAK,CACRvI,GAAIsI,EAAKZ,OACTzB,MAAOqC,EAAKZ,OAAO1G,MAAM,KAAKC,MAC9ByN,MAAO3N,EAAMN,OAAS,EACtB0E,KAAM,SACNuC,OAAQ3G,EAAMN,OAAS,EAAIM,EAAMG,KAAK,KAAO,OAEjDsN,GAAW,CACf,CAER,UACKA,GAkCT,OA/BAC,EAAO1D,MAAK,SAACC,EAAGC,GACZ,IAAMiE,EAAMlE,EAAEhL,GAAGgM,cACXmD,EAAMlE,EAAEjL,GAAGgM,cACjB,MAAe,WAAXhB,EAAE7F,MAAgC,WAAX8F,EAAE9F,MACjB,EACU,WAAX8F,EAAE9F,MAAgC,WAAX6F,EAAE7F,MAIhC+J,EAAMC,EAHC,EAKAD,EAAMC,GACL,EAED,CAEf,IAGAV,EAAOxG,SAAQ,SAACK,EAAMH,GAAC,OAAKG,EAAKqG,MAAQxG,CAAC,IAG1CsG,EAAOxG,SAAQ,SAAAK,GACX,GAAIA,EAAKZ,OAAQ,CACb,IAAMA,EAAS+G,EAAOpG,MAAK,SAAA4G,GAAE,OAAIA,EAAGjP,KAAOsI,EAAKZ,MAAM,IAClDA,IACAY,EAAK8G,YAAc1H,EAAOiH,MAElC,CACJ,IAEOF,CACX,EAEaY,GAAY,SAAC/P,GACtB,IAAQgQ,EAAUhQ,EAAVgQ,OAERC,GAAqCC,EAAAA,EAAAA,GAAQ,CACzCC,OAAQ,CAAC,UACTC,KAAM,SAAA1M,GAAC,OAAI2M,EAASL,EAAOtM,QAAK4M,CAAS,EACzCC,QAAS,SAAAC,GAAO,MAAK,CACjBH,OAAQG,EAAQH,OAAO,CAAEI,SAAS,IAClCC,UAAWF,EAAQH,SACtB,IACHM,GAAArF,EAAAA,EAAAA,GAAA2E,EAAA,GAAAW,EAAAD,EAAA,GAPON,EAAMO,EAANP,OAAQK,EAASE,EAATF,UAAYN,EAAIO,EAAA,GASjC,OAAOlO,EAAAA,GAAAA,KAAA,OAAKoO,IAAKT,EAAMhK,UAAW0K,EAAAA,MAAAA,KAAWT,GAAU,qBAAsBK,GAAa,sBAAsBlO,SAC3GxC,EAAMwC,UAEf,EAEauO,GAAY,SAAA/Q,GACrB,IAAQW,EAASX,EAATW,KACRqQ,GAA4BC,EAAAA,EAAAA,GAAQ,CAChCpL,KAAM,SACNmD,KAAM,iBAAO,CAACrI,KAAAA,EAAK,EACnB4P,QAAS,SAAAC,GAAO,MAAK,CAACU,QAASV,EAAQW,aAAe,GAAM,EAAG,IACjEC,GAAA9F,EAAAA,EAAAA,GAAA0F,EAAA,GAJOE,EAAOE,EAAA,GAAPF,QAAWG,EAAID,EAAA,GAMxB,OAAO3O,EAAAA,GAAAA,KAAA,OAAKoO,IAAKQ,EAAMpO,MAAO,CAAEiO,QAAAA,EAASI,UAAW,wBAAyB9O,SACxExC,EAAMwC,UAEf,EAEM+O,GAAU,SAAA5R,IAAAC,EAAAA,EAAAA,GAAA2R,EAAA5R,GAAA,IAAAG,GAAAC,EAAAA,EAAAA,GAAAwR,GACZ,SAAAA,EAAYvR,GAAQ,IAADC,GAAAC,EAAAA,EAAAA,GAAA,KAAAqR,GACftR,EAAAH,EAAAK,KAAA,KAAMH,GAEN,IAAIwR,EAAWvL,OAAOyE,aAAezE,OAAOyE,aAAaC,QAAQ,qBAAuB,KACxF,IACI6G,EAAWC,KAAKC,MAAMF,IAAa,EACvC,CAAE,MAAO9N,GACL8N,EAAW,EACf,CAEAvR,EAAK0R,SAAW,IAAI9M,IAAAA,WAEpB5E,EAAKQ,MAAQ,CACTmR,UAAW5C,GAAYhP,EAAM6R,SAAW,CAAC,GACzCL,SAAUA,EACVM,SAAU,GACVC,SAAS,EACTC,UAAW/R,EAAKD,MAAMgS,UACtB5F,SAAUnG,OAAOyE,cAAezE,OAAOyE,aAAaC,QAAQ,sBAA+B,KAC3FsH,gBAAgB,EAChBC,gBAAgB,EAChBC,aAAc,GACdC,SAAU,KACVC,SAAU,KACVC,aAAc,KACdC,UAAW,GACXrR,UAAWlB,EAAMkB,WAAa,GAC9BsR,YAAY,EACZC,aAAc,KACdC,YAAY,EACZC,WAAY1S,EAAKD,MAAM2S,WACvBC,WAAY,GACZ1P,MAAOjD,EAAKD,MAAMkD,OAAS,IAC3B2P,WAAY5M,OAAOyE,cAAezE,OAAOyE,aAAaC,QAAQ,wBAA+B,GAC7FmI,aAAc7M,OAAOyE,cAAezE,OAAOyE,aAAaC,QAAQ,0BAAiC,GACjGoI,iBAAkB9S,EAAKD,MAAM+S,kBAAoB,CAAC,EAClDC,YAAahT,EAAMgT,YACnBC,kBAAkB,GAGtB,IAAMC,EAASjT,EAAKkT,0BAY0C,OAX1DD,IACAjT,EAAKQ,MAAM+Q,SAAW0B,GAI1BjT,EAAKmT,YAAc,KAEnBnT,EAAKQ,MAAM4S,mBAAqBpT,EAAKqT,wBAErCrT,EAAK6R,SAAW,KAChB7R,EAAKsT,cAAgB,KACrBtT,EAAKuT,sBAAwBvT,EAAKwT,iBAAiBC,MAAIC,EAAAA,EAAAA,GAAA1T,IAAOA,CAClE,CAsPC,OAtPAqB,EAAAA,EAAAA,GAAAiQ,EAAA,EAAAhQ,IAAA,eAAAC,MAED,SAAaoS,EAAIC,GAAQ,IAAD7R,EAAA,KAIpB,GAHK6R,IACDA,EAAQtE,OAAOC,KAAK1N,KAAK9B,MAAM6R,UAE9BgC,GAAUA,EAAM1S,OAEd,CACH,IAAMT,EAAKmT,EAAMC,QACjB,GAAIhS,KAAK9B,MAAM6R,QAAQnR,IACa,WAAhCoB,KAAK9B,MAAM6R,QAAQnR,GAAImF,MACvB/D,KAAK9B,MAAM6R,QAAQnR,GAAI0J,QACvBtI,KAAK9B,MAAM6R,QAAQnR,GAAI0J,OAAOL,UAC7BrJ,EAAGqT,MAAM,yBACZ,CACE,IAAMnT,EAAWkB,KAAK9B,MAAM6R,QAAQnR,GAAI0J,OAAOsF,OAAOhO,MAAM,KAAKC,MAC3DqS,EAAOlS,KACPwI,EAAM,cAAgB1J,EAAW,kBAAoBF,EAAGuT,UAAU/F,IAExEpM,KAAK9B,MAAMgK,OAAOkK,SAAS5J,GAAK,SAAC6J,EAAK1T,GAClCuT,EAAKP,iBAAiBnJ,EAAK7J,GAC3B+C,YAAW,kBAAMwQ,EAAKI,aAAaR,EAAIC,EAAM,GAAE,EACnD,GACJ,MACIrQ,YAAW,kBAAMxB,EAAKoS,aAAaR,EAAIC,EAAM,GAAE,EAEvD,MApBID,GAAMA,GAqBd,GAAC,CAAArS,IAAA,oBAAAC,MAED,WAAqB,IAAD0F,EAAA,KAChBpF,KAAKsS,cAAa,WACdlN,EAAKlH,MAAMkB,UAAUyH,SAAQ,SAAA/H,GACzBsG,EAAKlH,MAAMgK,OAAOqK,eAAe,cAAgBzT,EAAW,mBAAoBsG,EAAKsM,sBACzF,GACJ,GACJ,GAAC,CAAAjS,IAAA,uBAAAC,MAED,WAAwB,IAAD2F,EAAA,KACnBrF,KAAK9B,MAAMkB,UAAUyH,SAAQ,SAAA/H,GACzBuG,EAAKnH,MAAMgK,OAAOsK,iBAAiB,cAAgB1T,EAAW,mBAAoBuG,EAAKqM,sBAC3F,GACJ,GAAC,CAAAjS,IAAA,mBAAAC,MAED,SAAiBd,EAAID,GAAQ,IAAD2G,EAAA,KACxB,GAAK3G,GAAUC,EAAf,CACAA,EAAKwN,GAAU,IAAMxN,EAAGmB,QAAQ,oCAAqC,IAEhEC,KAAKgQ,WACNhQ,KAAKgQ,SAAWL,KAAKC,MAAMD,KAAK8C,UAAUzS,KAAKrB,MAAMqR,YAEzD,IAAI0C,GAAU,EAEd,GAAI/T,EAAMgU,KAC6B,IAA/B3S,KAAKgQ,SAAS5J,QAAQxH,KACtBoB,KAAKgQ,SAAS7I,KAAKvI,GACnB8T,GAAU,OAEX,CACH,IAAME,EAAM5S,KAAKgQ,SAAS5J,QAAQxH,IACrB,IAATgU,IACA5S,KAAKgQ,SAASrJ,OAAOiM,EAAK,GAC1BF,GAAU,EAElB,CAEIA,IAAY1S,KAAKyR,gBACjBzR,KAAKyR,cAAgB/P,YAAW,WAC5B4D,EAAKmM,cAAgB,KACrBnM,EAAKtG,SAAS,CAAEgR,SAAU1K,EAAK0K,WAC/B1K,EAAK0K,SAAW,IACpB,GAAG,KA1BkB,CA4B7B,GAAC,CAAAvQ,IAAA,aAAAC,MAiED,SAAWmT,EAAiBf,GACxB,IAAMgB,EAAWrD,EAAWsD,iBACxBF,EACA7S,KAAKrB,MAAMmR,UACX9P,KAAKrB,MAAMiS,WACX5Q,KAAKrB,MAAMmS,WACX9Q,KAAK9B,MAAM6R,SAGX+C,EACA9S,KAAKhB,SAAS8T,GAAU,kBAAMhB,GAAMA,GAAI,IACjCA,GACPA,GAER,GAAC,CAAArS,IAAA,0BAAAC,MAqBD,SAAwB4K,EAAUoF,GAC9BD,EAAWuD,8BAA8B1I,GAAYtK,KAAKrB,MAAM2L,SAAUoF,GAAY1P,KAAKrB,MAAM+Q,SAAU1P,KAAKrB,MAAMmR,UAC1H,GAAC,CAAArQ,IAAA,wBAAAC,MAyED,SAAsBoQ,EAAW1Q,GAG7B,OAFA0Q,EAAYA,GAAa9P,KAAKrB,MAAMmR,UACpC1Q,EAAYA,GAAaY,KAAKrB,MAAMS,UAC7BqQ,EAAWwD,4BAA4BnD,GAAa9P,KAAKrB,MAAMmR,UAAW1Q,GAAaY,KAAKrB,MAAMS,UAC7G,GAAC,CAAAK,IAAA,eAAAC,MAED,SAAagQ,GACTvL,OAAOyE,aAAauC,QAAQ,oBAAqBwE,KAAK8C,UAAU/C,GAAY1P,KAAKrB,MAAM+Q,UAC3F,GAAC,CAAAjQ,IAAA,YAAAC,MAED,SAAU+Q,GACNzQ,KAAKhB,SAAS,CAAEyR,UAAAA,GACpB,GAAC,CAAAhR,IAAA,WAAAC,MAED,SAASd,EAAIgD,GAET,GADAA,GAAKA,EAAEsR,kBACHtU,IAAOwN,GAAX,CAGA,IAAMsD,GAAQyD,EAAAA,EAAAA,GAAOnT,KAAKrB,MAAM+Q,UAC1BoD,EAAW,CAACpD,SAAAA,GACZkD,EAAMlD,EAAStJ,QAAQxH,IAChB,IAATgU,GACAlD,EAAS/I,OAAOiM,EAAK,GACjB5S,KAAKrB,MAAM2L,UAAYtK,KAAKrB,MAAM2L,SAASP,WAAWnL,EAAK,OAC3DkU,EAASxI,SAAW1L,EACpBuF,OAAOyE,cAAgBzE,OAAOyE,aAAauC,QAAQ,oBAAqBvM,MAG5E8Q,EAASvI,KAAKvI,GACd8Q,EAAS/F,QAEb3J,KAAKhB,SAAS,CAAE0Q,SAAAA,IAChB1P,KAAKoT,aAAa1D,EAflB,CAgBJ,GAAC,CAAAjQ,IAAA,yBAAAC,MAED,SAAuBwH,EAAMxG,GAAW,IAAD2S,EAAA,KACnC,GAAIrT,KAAKrB,MAAMsR,QACX,OAAO,KAEX,GAAkB,WAAd/I,EAAKnD,KAAmB,CACxB,IAAIpB,EAAQuE,EAAKe,QAAU6D,GAAYI,GAKvC,OAJIhF,EAAKe,SAAWjI,KAAKrB,MAAMqR,SAAS9L,SAASgD,EAAKtI,MAClD+D,EAAQqJ,IAGL,EACHrL,EAAAA,GAAAA,KAAC4K,EAAAA,EAAU,CACPjH,UAAW0K,EAAAA,MAAAA,KAAWhP,KAAK9B,MAAMqG,QAAQ+O,YAAatT,KAAK9B,MAAMqV,WAAavT,KAAK9B,MAAMqG,QAAQiP,qBACjG9Q,QAAS,SAAAd,GACLA,EAAEsR,kBACFG,EAAKnV,MAAMuV,iBAAmBJ,EAAKnV,MAAMuV,gBAAgBvM,EAAKtI,IAAKsI,EAAKe,QAC5E,EACApD,MAAOqC,EAAKe,QAAUpH,EAAAA,KAAAA,EAAO,gBAAkBA,EAAAA,KAAAA,EAAO,cACtDkB,SAAU/B,KAAK9B,MAAMqV,UAErBpS,MAAO,CAAEwB,MAAAA,GACTuC,KAAK,SAAQxE,SAEZwG,EAAKe,SAAUtH,EAAAA,GAAAA,KAAC+S,EAAAA,IAAS,KAAM/S,EAAAA,GAAAA,KAACgT,EAAAA,IAAQ,KAJrC,aAMR3T,KAAKrB,MAAMyC,MAAQmL,IAAe5L,EAAAA,GAAAA,KAAC4K,EAAAA,EAAU,CAEzCjH,UAAW0K,EAAAA,MAAAA,KAAWhP,KAAK9B,MAAMqV,WAAavT,KAAK9B,MAAMqG,QAAQiP,qBACjE3O,MAAOhE,EAAAA,KAAAA,EAAO,iBACdkB,SAAUmF,EAAKtI,KAAO0N,IAAapF,EAAKtI,KAAOyN,IAAarM,KAAK9B,MAAMqV,UACvE7Q,QAAS,SAAAd,GAAC,OAAIyR,EAAKpQ,SAASiE,EAAMtF,EAAE,EACpCsD,KAAK,SAAQxE,UAEbC,EAAAA,GAAAA,KAACuC,EAAAA,IAAU,KAPP,UAQQ,MAChBvC,EAAAA,GAAAA,KAAC4K,EAAAA,EAAU,CACPjH,UAAW0K,EAAAA,MAAAA,KAAWhP,KAAK9B,MAAMqV,WAAavT,KAAK9B,MAAMqG,QAAQiP,qBACjEzR,SAAU/B,KAAK9B,MAAMqV,UAErB1O,MAAOhE,EAAAA,KAAAA,EAAO,oCACd6B,QAAS,SAAAd,GAAC,OAAIyR,EAAKO,OAAO1M,EAAMtF,EAAE,EAClCsD,KAAK,SAAQxE,UACbC,EAAAA,GAAAA,KAACkT,EAAAA,IAAU,KAJP,cAOhB,CAAO,OAAI7T,KAAKrB,MAAMyC,MAAQmL,GACtBrF,EAAKtI,KAAOwN,IAAWlF,EAAKtI,KAAOyN,IAAanF,EAAKtI,KAAO0N,IAAe5L,GAAaA,EAASrB,OAW1F,MATHsB,EAAAA,GAAAA,KAAC4K,EAAAA,EAAU,CACPjH,UAAW0K,EAAAA,MAAAA,KAAWhP,KAAK9B,MAAMqV,WAAavT,KAAK9B,MAAMqG,QAAQiP,qBAEjE3O,MAAOhE,EAAAA,KAAAA,EAAO,iBACdkB,SAAUmF,EAAKtI,KAAO0N,IAAapF,EAAKtI,KAAOyN,IAAarM,KAAK9B,MAAMqV,UACvE7Q,QAAS,SAAAd,GAAC,OAAIyR,EAAKpQ,SAASiE,EAAMtF,EAAE,EACpCsD,KAAK,SAAQxE,UAACC,EAAAA,GAAAA,KAACuC,EAAAA,IAAU,KAJrB,eALb,CAeX,GAAC,CAAAzD,IAAA,WAAAC,MAED,SAASwH,EAAMtF,GAAI,IAADkS,EAAA,KAEd,OADAlS,GAAKA,EAAEsR,kBACA,IAAIa,SAAQ,SAAAC,GACK,kBAAT9M,EACP4M,EAAK9U,SAAS,CAAEuR,SAAUrJ,IAE1B4M,EAAK9U,SAAS,CAAEuR,SAAUrJ,EAAKtI,IAEvC,GACJ,GAAC,CAAAa,IAAA,SAAAC,MAED,SAAOwH,EAAMtF,GACT5B,KAAK0C,QAAQwE,EAAMtF,GACnB5B,KAAK9B,MAAM0V,QAAU5T,KAAK9B,MAAM0V,OAAO1M,EAAKtI,GAChD,GAAC,CAAAa,IAAA,eAAAC,MAED,SAAawH,GACT,OAAKlH,KAAKrB,MAAMsR,SAAyB,WAAd/I,EAAKnD,KAUrB,CACHkQ,WAAY,SACZC,QAAS,cAXN,CAEH9S,MAAM,eAAD0C,OAAiB9D,KAAKrB,MAAMyC,MAAQmL,GAAe,IAAM,IAAG,OACjE4H,SAAU,SACVF,WAAY,SACZG,KAAM,OACNF,QAAS,aAQrB,GAAC,CAAAzU,IAAA,UAAAC,MAED,SAAQwH,EAAMtF,GAEV,GADAA,GAAKA,EAAEsR,mBACFlT,KAAKrB,MAAMsR,SAAW/I,EAAM,CAC7B,IAAMwI,EAAW1P,KAAKqR,wBAAwBnK,GACxC4L,EAAW,CAACxI,SAAUpD,EAAKtI,IAC7B8Q,IACAoD,EAASpD,SAAWA,GAExB1P,KAAKhB,SAAS8T,GACd3O,OAAOyE,cAAgBzE,OAAOyE,aAAauC,QAAQ,oBAAqBjE,EAAKtI,GACjF,CACJ,GAAC,CAAAa,IAAA,aAAAC,MAED,SAAWwH,EAAMtF,GACbA,GAAKA,EAAEsR,kBACHlT,KAAKrB,MAAMsR,UAGG,WAAd/I,EAAKnD,KACL/D,KAAKqU,SAASnN,EAAKtI,IAEnBoB,KAAK4T,OAAO1M,GAEpB,GAAC,CAAAzH,IAAA,gBAAAC,MAED,SAAcwH,GACV,SAAIA,EAAKoN,UAAapN,EAAKqN,qBAEvBvU,KAAKrB,MAAMoS,YAA4B,WAAd7J,EAAKnD,MAAqBmD,EAAKnD,OAAS/D,KAAKrB,MAAMoS,iBAI5E/Q,KAAKrB,MAAMqS,cACG,WAAd9J,EAAKnD,QAE4B,YAA5B/D,KAAKrB,MAAMqS,eAA+B9J,EAAKe,SACnB,WAA5BjI,KAAKrB,MAAMqS,cAA6B9J,EAAKe,WACjB,aAA5BjI,KAAKrB,MAAMqS,cAAiC9J,EAAKe,UAAqD,IAA1CjI,KAAKrB,MAAMqR,SAAS5J,QAAQc,EAAKtI,OAK9FsI,EAAKtI,KAAO0N,KAActM,KAAKrB,MAAMkS,YACjD,GAAC,CAAApR,IAAA,iBAAAC,MAED,SAAewH,EAAMxG,EAAU8T,GAAmB,IAADC,EAAA,KAC7C,GAAIvN,EAAKtI,KAAOwN,KAAYpM,KAAKrB,MAAMsR,QACnC,OAAO,KAGX,IAAMyE,EAvzBQ,IAuzBG1U,KAAKrB,MAAMsR,QAAU/I,EAAKoG,MAAQpG,EAAKoG,MAAQ,GAE5DzI,EAAQqC,EAAKrC,MAEjB,GAAI7E,KAAKrB,MAAMmS,WAAY,CACvB,IAAM8B,EAAM/N,EAAM+F,cAAcxE,QAAQpG,KAAKrB,MAAMmS,WAAWlG,gBACjD,IAATgI,IACA/N,EAAQ,EACJlE,EAAAA,GAAAA,KAAA,QAAAD,SAAmBmE,EAAMsN,UAAU,EAAGS,IAA5B,UACVjS,EAAAA,GAAAA,KAAA,QAAmBQ,MAAO,CAAEwB,MAAO,UAAWjC,SAAEmE,EAAMsN,UAAUS,EAAKA,EAAM5S,KAAKrB,MAAMmS,WAAWzR,SAAvF,WACVsB,EAAAA,GAAAA,KAAA,QAAAD,SAAmBmE,EAAMsN,UAAUS,EAAM5S,KAAKrB,MAAMmS,WAAWzR,SAArD,UAGtB,CAEKW,KAAKrB,MAAM4S,oBAAoC,WAAdrK,EAAKnD,OACvCc,EAAQ,EACJ1E,EAAAA,GAAAA,MAAA,QAAqB0E,MAAOhE,EAAAA,KAAAA,EAAO,YAAayD,UAAWtE,KAAK9B,MAAMqG,QAAQnF,UAAUsB,SAAA,CAAC,IAAEwG,EAAKpI,SAAS,OAA/F,aACV6B,EAAAA,GAAAA,KAAA,QAAAD,SAAmBmE,GAAT,WAGlB,IAAMoL,EAAUjQ,KAAKrB,MAAMsR,UAAYjQ,KAAK9B,MAAMqV,UAE5CpS,EAAQsM,OAAOkH,OAAO,CACxBC,WAAYF,EACZG,OAA0B,WAAd3N,EAAKnD,MAAqBkM,EAAU,UAAY,UAC5D7O,MAAM,eAAD0C,OAAsB4Q,EAAO,QACnCxN,EAAKtI,KAAOoB,KAAKrB,MAAM2L,UAAa2F,EAA2B,CAAC,EAAlBzD,IAE5CyD,IACD9O,EAAMiO,QAAUlI,EAAKqN,eAAiB,GAAM,GAG5CrN,EAAKtI,KAAO0N,IAAapF,EAAKtI,KAAOoB,KAAKrB,MAAM2L,WAChDnJ,EAAMwB,MAAQ,WAGlB,IAAImS,EAAa5N,EAAKtI,KAAOwN,IACxB0I,GAAcpU,IACfoU,EAAa9U,KAAKrB,MAAM+Q,SAASxL,SAASgD,EAAKtI,KAGnD,IAMImW,EANAC,EAAY,CAAC,EACb9N,EAAKtI,KAAO0N,GACZ0I,EAAUrS,MAAQ,UACXuE,EAAKtI,KAAOyN,KACnB2I,EAAUrS,MAAQ,WAIlBoS,EADc,WAAd7N,EAAKnD,KACOiL,EAAAA,MAAAA,KAAWhP,KAAK9B,MAAMqG,QAAQ0Q,WAAYhF,EAAUjQ,KAAK9B,MAAMqG,QAAQ2Q,kBAAoBlV,KAAK9B,MAAMqG,QAAQ4Q,qBAE9GnG,EAAAA,MAAAA,KAAWhP,KAAK9B,MAAMqG,QAAQ6Q,WAAYnF,EAAUjQ,KAAK9B,MAAMqG,QAAQ8Q,kBAAoBrV,KAAK9B,MAAMqG,QAAQ+Q,qBAG9H,IAAIC,EAAgB,KAKpB,OAJKf,GAAoBA,EAAiBnV,QAAYqB,GAAYA,EAASrB,UACvEkW,GAAgB5U,EAAAA,GAAAA,KAAA,QAAM2D,UAAWtE,KAAK9B,MAAMqG,QAAQgR,cAAc7U,SAAE8T,GAAoBA,EAAiBnV,SAAWqB,EAASrB,OAAM,GAAAyE,OAAM0Q,EAAiBnV,OAAM,KAAAyE,OAAIpD,EAASrB,OAAM,KAAMqB,EAASrB,WAG/Lc,EAAAA,GAAAA,MAACiK,EAAAA,GAAQ,CAEZjJ,MAAOA,EACPmD,UAAW0K,EAAAA,MAAAA,KACO,WAAd9H,EAAKnD,KAAoB/D,KAAK9B,MAAMqG,QAAQpF,OAASa,KAAK9B,MAAMqG,QAAQiR,OACxEvF,GAAyB,WAAd/I,EAAKnD,MAAqB,iBACrCkM,GAAyB,WAAd/I,EAAKnD,MAAqB,iBACrCkM,GAAWjQ,KAAK9B,MAAMqG,QAAQ0L,QAC9BA,GAAyB,WAAd/I,EAAKnD,MAAsB/D,KAAK9B,MAAMqG,QAAQkR,cACzDxF,GAAyB,WAAd/I,EAAKnD,MAAqB/D,KAAK9B,MAAMqG,QAAQmR,eAE5DhT,QAAS,SAAAd,GAAC,OAAI6S,EAAK/R,QAAQwE,EAAMtF,EAAE,EACnCiJ,cAAe,SAAAjJ,GAAC,OAAI6S,EAAKkB,WAAWzO,EAAMtF,EAAE,EAAClB,SAAA,EAE7CC,EAAAA,GAAAA,KAAC4J,EAAAA,EAAY,CAAChG,QAAS,CAAEiD,KAAMxH,KAAK9B,MAAMqG,QAAQqR,cAAelV,SAC/C,WAAdwG,EAAKnD,KACGkM,GAAW6E,GACPnU,EAAAA,GAAAA,KAACkV,EAAAA,aAAgB,CAACvR,UAAWyQ,EAAW5T,MAAO6T,EAAWtS,QAAS,SAAAd,GAAC,OAAKqO,GAAWwE,EAAKJ,SAASnN,EAAKtI,GAAIgD,EAAE,KAC7GjB,EAAAA,GAAAA,KAACmV,EAAAA,SAAU,CAAOxR,UAAWyQ,EAAW5T,MAAO6T,EAAWtS,QAAS,SAAAd,GAAC,OAAKqO,GAAWwE,EAAKJ,SAASnN,EAAKtI,GAAIgD,EAAE,KAGrHjB,EAAAA,GAAAA,KAAA,OAAK2D,UAAWyQ,EAAWtK,IAAKvD,EAAKnD,KAAMyG,IAAKiC,GAAOvF,EAAKnD,OAAS0I,GAAOG,SAEpFjM,EAAAA,GAAAA,KAAC+J,EAAAA,EAAY,CACTnG,QAAS,CAAEoG,QAASzD,EAAKtI,KAAOoB,KAAKrB,MAAM2L,UAAa2F,OAAwCzB,EAA9BxO,KAAK9B,MAAMqG,QAAQ+F,UACrFnJ,MAAOnB,KAAK+V,aAAa7O,GAAOyD,SAASxK,EAAAA,GAAAA,MAAA,QAAAO,SAAA,CAAOmE,EAAO0Q,QAC3D5U,EAAAA,GAAAA,KAACqV,EAAAA,EAAuB,CAAAtV,SAAEV,KAAKiW,uBAAuB/O,EAAMxG,OAzBvDwG,EAAKtI,GA2BlB,GAAC,CAAAa,IAAA,eAAAC,MAED,SAAawW,EAAQrU,GACjB,IAAIsU,EAAK,GAAArS,OAAMjC,EAAM,KAAAiC,OAAIoS,EAAOtW,MAAM,KAAKC,OACvCsW,IAAUD,IAENlW,KAAKrB,MAAMmR,UAAU7I,MAAK,SAAAC,GAAI,OAAIA,EAAKtI,KAAOuX,CAAK,MACnDA,GAAK,IAAArS,OAAQjD,EAAAA,KAAAA,EAAO,UAGxBb,KAAK9B,MAAMO,UAAYuB,KAAK9B,MAAMO,SAASyX,EAAQC,GAG3D,GAAC,CAAA1W,IAAA,gBAAAC,MAED,SAAc0W,EAAOlP,GAAwB,IAADmP,EAAA,KACpC7B,GAAoBxU,KAAKrB,MAAMqS,cAAgBhR,KAAKrB,MAAMoS,aAAeqF,EAAMzN,QAAO,SAAA5B,GAAC,OAAIA,EAAET,SAAWY,EAAKtI,KAAMyX,EAAKC,cAAcvP,EAAU,IAChJrG,EAAW0V,EAAMzN,QAAO,SAAA5B,GAAC,OAAIA,EAAET,SAAWY,EAAKtI,EAAE,IAErD,IAAIoB,KAAKsW,cAAcpP,KAIL,WAAdA,EAAKnD,OAAsB/D,KAAKrB,MAAMqS,eAAgBhR,KAAKrB,MAAMoS,YAAgByD,EAAiBnV,QAAtG,CAGA,IAIIkX,EAJEtG,EAAUjQ,KAAKrB,MAAMsR,UAAYjQ,KAAK9B,MAAMqV,UAE5CiD,EAAUxW,KAAKyW,eAAevP,EAAMxG,EAAU8T,GAC9CnH,EAAS,GAuBf,OArBI3M,IAAauP,GAAWjQ,KAAKrB,MAAM+Q,SAASxL,SAASgD,EAAKtI,KAAOsI,EAAKtI,KAAOwN,MAC7EmK,EAAgB7V,EAAS4B,KAAI,SAAAuL,GAAE,OAAIwI,EAAKK,cAAcN,EAAOvI,EAAG,KAGhEoC,EACkB,WAAd/I,EAAKnD,KACLsJ,EAAOlG,MAAKhH,EAAAA,GAAAA,MAAC8N,GAAS,CAA8BC,OAAQ,SAAAtM,GAAC,OAAIyU,EAAKM,aAAa/U,EAAE/C,KAAMqI,EAAKtI,GAAG,EAAC8B,SAAA,EAChGC,EAAAA,GAAAA,KAACsO,GAAS,CAA8BpQ,KAAMqI,EAAKtI,GAAG8B,SAAE8V,GAAO,aAAA1S,OAAlCoD,EAAKtI,KACjC2X,GAAiB,OAAI,aAAAzS,OAFeoD,EAAKtI,MAK9CyO,EAAOlG,MAAKhH,EAAAA,GAAAA,MAAC8O,GAAS,CAA8BpQ,KAAMqI,EAAKtI,GAAG8B,SAAA,CAC7D8V,EACAD,GAAiB,OAAI,aAAAzS,OAFeoD,EAAKtI,OAMlDyO,EAAOlG,KAAKqP,GACZD,GAAiBA,EAAc1P,SAAQ,SAAAjF,GAAC,OAAIyL,EAAOlG,KAAKvF,EAAE,KAGvDyL,CA3BP,CA4BJ,GAAC,CAAA5N,IAAA,iBAAAC,MAED,SAAe0W,GAAQ,IAADQ,EAAA,KACZvJ,EAAS+I,EACVzN,QAAO,SAAAzB,GAAI,OAAKA,EAAKZ,MAAM,IAC3BhE,KAAI,SAAA4E,GAAI,OACL0P,EAAKF,cAAcN,EAAOlP,EAAK,IAEvC,OAAOvG,EAAAA,GAAAA,KAACuJ,EAAAA,EAAI,CACR2M,OAAK,EACLC,gBAAc,EACdxS,UAAWtE,KAAK9B,MAAMqG,QAAQwS,SAASrW,SAEtC2M,GAET,GAAC,CAAA5N,IAAA,WAAAC,MAED,SAASkC,GAAI,IAADoV,EAAA,KACRpV,GAAKA,EAAEsR,kBAGP,IAFA,IAAIhM,EAAOlH,KAAKrB,MAAMmR,UAAU7I,MAAK,SAAAF,GAAC,OAAIA,EAAEnI,KAAOoY,EAAKrY,MAAM2L,QAAQ,IAClEhE,EAAS8F,GACNlF,GAAsB,WAAdA,EAAKnD,MAChBmD,EAAOlH,KAAKrB,MAAMmR,UAAU5I,EAAK8G,aAEjC9G,IACAZ,EAASY,EAAKtI,IAGlBoB,KAAKsG,OAASA,EACdtG,KAAKhB,SAAS,CAAEwR,cAAc,GAClC,GAAC,CAAA/Q,IAAA,SAAAC,MAED,SAAOkC,EAAGhD,GACNgD,GAAKA,EAAEsR,kBAGP,IAFA,IAAIhM,EAAOlH,KAAKrB,MAAMmR,UAAU7I,MAAK,SAAAF,GAAC,OAAIA,EAAEnI,KAAOA,CAAE,IACjD0H,EAAS8F,GACNlF,GAAsB,WAAdA,EAAKnD,MAChBmD,EAAOlH,KAAKrB,MAAMmR,UAAU5I,EAAK8G,aAEjC9G,IACAZ,EAASY,EAAKtI,IAGlBoB,KAAKsG,OAASA,EACdtG,KAAKhB,SAAS,CAAEqR,aAAczR,GAClC,GAAC,CAAAa,IAAA,iBAAAC,MAED,SAAekC,GAAI,IAADqV,EAAA,KACdrV,GAAKA,EAAEsR,kBAGP,IAFA,IAAIhM,EAAOlH,KAAKrB,MAAMmR,UAAU7I,MAAK,SAAAF,GAAC,OAAIA,EAAEnI,KAAOqY,EAAKtY,MAAM2L,QAAQ,IAClEhE,EAAS8F,GACNlF,GAAsB,WAAdA,EAAKnD,MAChBmD,EAAOlH,KAAKrB,MAAMmR,UAAU5I,EAAK8G,aAEjC9G,IACAZ,EAASY,EAAKtI,IAGlBoB,KAAKsG,OAASA,EACdtG,KAAKhB,SAAS,CAAEoR,gBAAgB,GACpC,GAAC,CAAA3Q,IAAA,WAAAC,MAED,SAASkC,GACLA,GAAKA,EAAEsR,kBACPlT,KAAKhB,SAAS,CAAEsR,SAAUtQ,KAAKrB,MAAM2L,UACzC,GAAC,CAAA7K,IAAA,gBAAAC,MAED,SAAcwX,GAAS,IAADC,EAAA,KACdpQ,EAAI,EACJqQ,EAAI,GAAAtT,OAAMjD,EAAAA,KAAAA,EAAO,UAAS,KAC9B,GAAIqW,EAAQ,CACR,IAAIrY,EAAOkO,GAAcmK,EAAQlX,KAAK9B,MAAM6R,QAAQmH,IAC9CG,EAAIxY,EAAKoT,MAAM,QACjBoF,GACAD,EAAOvY,EAAKkB,QAAQ,OAAQ,IAC5BgH,EAAI3E,SAASiV,EAAE,GAAI,IAAM,GAEzBD,EAAOvY,CAEf,CAGA,KAAOmB,KAAKrB,MAAMmR,UAAU7I,MAAK,SAAA4G,GAAE,OAAIA,EAAGjP,KAAE,GAAAkF,OAAQqT,EAAK7Q,OAAM,KAAAxC,OAAIsT,EAAKrX,QAAQ,QAAS,MAAI+D,OAAGiD,EAAG,KAC/FA,IAGJ,OAAOqQ,EAAOrQ,CAClB,GAAC,CAAAtH,IAAA,sBAAAC,MAED,WAGI,IAHmB,IAAD4X,EAAA,KACdvQ,EAAI,EAED/G,KAAKrB,MAAMmR,UAAU7I,MAAK,SAAA4G,GAAE,OAAIA,EAAGjP,KAAE,GAAAkF,OAAQwT,EAAKhR,OAAM,KAAAxC,OAAIjD,EAAAA,KAAAA,EAAO,UAAS,KAAAiD,OAAIiD,EAAG,KACtFA,IAEJ,MAAM,GAANjD,OAAUjD,EAAAA,KAAAA,EAAO,UAAS,KAAAiD,OAAIiD,EAClC,GAAC,CAAAtH,IAAA,cAAAC,MAED,SAAYoS,GACR9R,KAAKhB,SAAS,CAAE0R,YAAY,EAAOC,aAAc,KAAM4G,mBAAoB,MAAQzF,EACvF,GAAC,CAAArS,IAAA,iBAAAC,MAED,WACI,MAAO,EACyB,IAA5BM,KAAKrB,MAAMqS,eAAyBrQ,EAAAA,GAAAA,KAACgT,EAAAA,IAAQ,CAACrP,UAAWtE,KAAK9B,MAAMqG,QAAQiT,WAAYrW,MAAO,CAAEwB,MAAOmJ,OAC5E,IAA5B9L,KAAKrB,MAAMqS,eAA0BrQ,EAAAA,GAAAA,KAAC+S,EAAAA,IAAS,CAACpP,UAAWtE,KAAK9B,MAAMqG,QAAQiT,WAAYrW,MAAO,CAAEwB,MAAOuJ,MAChF,YAA1BlM,KAAKrB,MAAMoS,YAA4B,KACb,kBAA1B/Q,KAAKrB,MAAMoS,YAAkC,KACnB,kBAA1B/Q,KAAKrB,MAAMoS,YAAkC,KAErD,GAAC,CAAAtR,IAAA,cAAAC,MAED,SAAYgB,EAAU+W,GAAe,IAADC,EAAA,KAChC,OAAOvX,EAAAA,GAAAA,MAACwX,EAAAA,EAAI,CAER/Y,GAAG,YACHgZ,SAAU5X,KAAKrB,MAAMgS,aACrBlQ,KAAMT,KAAKrB,MAAM+R,WACjBnS,QAAS,kBAAMmZ,EAAK1Y,SAAS,CAAE0R,YAAY,EAAOC,aAAc,MAAO,EACvEkH,WAAY,CACR1W,MAAO,CACH2W,UAAWC,MAGjBrX,SAAA,CAEDV,KAAKrB,MAAMyC,OAASmL,IAAepM,EAAAA,GAAAA,MAACoC,EAAAA,EAAQ,CAEzCR,SAAU/B,KAAK9B,MAAMqV,YAAcvT,KAAKrB,MAAM2L,UAAYtK,KAAKrB,MAAM2L,WAAagC,IAAatM,KAAKrB,MAAM2L,WAAa+B,IAAc3L,GAAYA,EAASrB,OAC1JqD,QAAS,SAAArC,GACLA,EAAM6S,kBACN7S,EAAMoB,iBACFiW,EAAK/Y,MAAMmR,UAAU7I,MAAK,SAAAC,GAAI,OAAIA,EAAKZ,SAAWoR,EAAK/Y,MAAM2L,QAAQ,IACrEoN,EAAKM,UAAUnX,EAAAA,KAAAA,EAAO,kCAI1B6W,EAAK1Y,SAAS,CAAE0R,YAAY,EAAOC,aAAc,OAAQ,kBACrD+G,EAAKzU,SAASyU,EAAK/Y,MAAM2L,UAAUlC,MAAK,WAAO,GAAE,GACzD,EAAE1H,SAAA,EAACC,EAAAA,GAAAA,KAACuC,EAAAA,IAAU,CAACoB,UAAWtE,KAAK9B,MAAMqG,QAAQ0T,iBAAmB9W,MAAO,CAAEwB,MAAO,SAAW9B,EAAAA,KAAAA,EAAO,YAZ9F,UAaM,MACdV,EAAAA,GAAAA,MAACoC,EAAAA,EAAQ,CAELR,SAAU/B,KAAK9B,MAAMqV,UACrBjJ,SAAUtK,KAAKrB,MAAMkS,WACrBnO,QAAS,SAAArC,GACLA,EAAM6S,kBACN7S,EAAMoB,iBACNiW,EAAKQ,aAAY,kBACbR,EAAKxZ,MAAMia,oBAAsBT,EAAKxZ,MAAMia,oBAAoBT,EAAK/Y,MAAMkS,WAAW,GAC9F,EAAEnQ,SAAA,EACFC,EAAAA,GAAAA,KAACyX,EAAAA,IAAU,CAAC9T,UAAWtE,KAAK9B,MAAMqG,QAAQ0T,iBAAkB9W,MAAO,CAAEwB,MAAO3C,KAAKrB,MAAMkS,WAAa,SAAW,aAAehQ,EAAAA,KAAAA,EAAO,iBATjI,cAWPb,KAAK9B,MAAMma,WAAYlY,EAAAA,GAAAA,MAACoC,EAAAA,EAAQ,CAE7BG,QAAS,SAAArC,GACLA,EAAM6S,kBACN7S,EAAMoB,iBACNiW,EAAKQ,aAAY,kBAAMR,EAAKxZ,MAAMma,UAAU,GAChD,EAAE3X,SAAA,EACFC,EAAAA,GAAAA,KAAC2X,EAAAA,aAAU,CAAChU,UAAWtE,KAAK9B,MAAMqG,QAAQ0T,mBAAqBpX,EAAAA,KAAAA,EAAO,wBANlE,aAQPb,KAAK9B,MAAMqa,WAAYpY,EAAAA,GAAAA,MAACoC,EAAAA,EAAQ,CAC7BR,SAAU/B,KAAK9B,MAAMqV,UAErB7Q,QAAS,SAAArC,GACLA,EAAM6S,kBACN7S,EAAMoB,iBACNiW,EAAKQ,aAAY,kBAAMR,EAAKxZ,MAAMqa,UAAU,GAChD,EAAE7X,SAAA,EACFC,EAAAA,GAAAA,KAAC6X,EAAAA,aAAU,CAAClU,UAAWtE,KAAK9B,MAAMqG,QAAQ0T,mBAAqBpX,EAAAA,KAAAA,EAAO,oBANlE,UAQPb,KAAK9B,MAAMua,gBAAiBtY,EAAAA,GAAAA,MAACoC,EAAAA,EAAQ,CAElCG,QAAS,kBACLgV,EAAKQ,aAAY,WAGb,IAAMQ,EAAwC,SAAzBhB,EAAK/Y,MAAMuR,UAAuB,OAC1B,SAAzBwH,EAAK/Y,MAAMuR,UAAuB,UAAqC,YAAzBwH,EAAK/Y,MAAMuR,UAA0B,QACtD,UAAzBwH,EAAK/Y,MAAMuR,UAAwB,OAAS,UACpDwH,EAAKxZ,MAAMua,cAAcC,EAC7B,GAAE,EAAChY,SAAA,EACPC,EAAAA,GAAAA,KAACgY,EAAAA,IAAQ,CAACrU,UAAWtE,KAAK9B,MAAMqG,QAAQ0T,mBAAqBpX,EAAAA,KAAAA,EAAO,6BAA8Bb,KAAKrB,MAAMuR,aAVzG,QAYPlQ,KAAK9B,MAAM0a,WAAYzY,EAAAA,GAAAA,MAACoC,EAAAA,EAAQ,CACER,UAAW/B,KAAKrB,MAAM2L,WAAamN,GAAsC,WAAtBA,EAAa1T,KAChErB,QAAS,SAAArC,GACL,IAAMiK,EAAWoN,EAAK/Y,MAAM2L,SAC5BoN,EAAKQ,aAAY,kBAAMR,EAAKmB,OAAOxY,EAAOiK,EAAS,GACvD,EAAE5J,SAAA,EACjCC,EAAAA,GAAAA,KAACmY,EAAAA,IAAQ,CAACxU,UAAWtE,KAAK9B,MAAMqG,QAAQ0T,mBAAqBpX,EAAAA,KAAAA,EAAO,iBANlC,QAQrCb,KAAKrB,MAAMkS,aAAc1Q,EAAAA,GAAAA,MAACoC,EAAAA,EAAQ,CAC/BR,SAAU/B,KAAK9B,MAAMqV,UAErB7Q,QAAS,SAAArC,GACLA,EAAM6S,kBACN7S,EAAMoB,iBACNiW,EAAKQ,aAAY,kBACbR,EAAK1Y,SAAS,CAAEmS,kBAAkB,GAAO,GACjD,EAAEzQ,SAAA,EACFC,EAAAA,GAAAA,KAACoY,EAAAA,IAAS,CAACzU,UAAWtE,KAAK9B,MAAMqG,QAAQ0T,mBAAqBpX,EAAAA,KAAAA,EAAO,oBAPjE,mBAjFJ,OA2FZ,GAEA,CAAApB,IAAA,oBAAAC,MACA,WAAqB,IAADsZ,EAAA,KACV3L,EAAS,GACT9I,EAAUvE,KAAK9B,MAAMqG,QACrB0L,EAAUjQ,KAAKrB,MAAMsR,UAAYjQ,KAAK9B,MAAMqV,UAClD,GAAIvT,KAAKrB,MAAMiS,aAAe5Q,KAAK9B,MAAMqV,UACrClG,EAAOlG,MAAKxG,EAAAA,GAAAA,KAACqK,EAAAA,EAAK,CAEdtL,MAAOM,KAAKrB,MAAMmS,WAClBxM,UAAWC,EAAQ0U,cACnBlK,IAAK/O,KAAK6P,SACVxO,WAAS,EACT6J,YAAarK,EAAAA,KAAAA,EAAO,aACpBc,SAAU,SAAAC,GACNoX,EAAKha,SAAS,CAAE8R,WAAYlP,EAAEC,OAAOnC,QACrCsZ,EAAK1H,aAAe4H,aAAaF,EAAK1H,aACtC0H,EAAK1H,YAAc5P,YAAW,WAC1BsX,EAAK1H,YAAc,KACnB0H,EAAKG,YAAW,GAChBH,EAAK9a,MAAMkb,UAAYJ,EAAK9a,MAAMkb,SAASJ,EAAKra,MAAMmS,WAC1D,GAAG,IACP,GAdI,gBAiBRzD,EAAOlG,MAAKxG,EAAAA,GAAAA,KAAC4K,EAAAA,EAAU,CAEnBjH,UAAWC,EAAQ8U,eACnBlY,MAAO,CAAEmY,MAAO,SAChBzU,MAAOhE,EAAAA,KAAAA,EAAO,mBACd6B,QAAS,SAAAd,GACLA,EAAEsR,kBACF8F,EAAKG,YAAW,GAAO,kBAAMH,EAAK9a,MAAMkb,UAAYJ,EAAK9a,MAAMkb,SAASJ,EAAKra,MAAMmS,WAAW,GAClG,EACA5L,KAAK,SAAQxE,UAACC,EAAAA,GAAAA,KAAC6K,EAAAA,IAAS,KARpB,kBAURxL,KAAKrB,MAAMmS,YAAczD,EAAOlG,MAAKxG,EAAAA,GAAAA,KAAC4K,EAAAA,EAAU,CAE5CgO,KAAK,OACL1U,MAAOhE,EAAAA,KAAAA,EAAO,sBACdyD,UAAWC,EAAQ8U,eACnBlY,MAAO,CAAE0K,UAAW,EAAGyN,MAAO,SAC9B5W,QAAS,SAAAd,GACLA,EAAEsR,kBACF8F,EAAKha,SAAS,CAAE8R,WAAY,KAAM,WAC9BkI,EAAKG,YAAW,GAChBH,EAAK9a,MAAMkb,UAAYJ,EAAK9a,MAAMkb,SAASJ,EAAKra,MAAMmS,WAC1D,GACJ,EACA5L,KAAK,SAAQxE,UAACC,EAAAA,GAAAA,KAAC6Y,EAAAA,IAAS,CAACrW,SAAS,WAZ9B,oBAaL,CACH,IAAK8M,EAAS,CAEV5C,EAAOlG,MAAKxG,EAAAA,GAAAA,KAAC4K,EAAAA,EAAU,CAEnB,aAAW,OACX,YAAWvL,KAAKrB,MAAM+R,WAAa,iBAAclC,EACjD3J,MAAOhE,EAAAA,KAAAA,EAAO,QACd,gBAAc,OACd6B,QAAS,SAAArC,GACLA,EAAM6S,kBACN7S,EAAMoB,iBACNuX,EAAKha,SAAS,CAAE0R,YAAY,EAAMC,aAActQ,EAAMoZ,eAC1D,EACAvU,KAAK,SAAQxE,UAETC,EAAAA,GAAAA,KAAC+Y,EAAAA,IAAQ,KAZT,eAgBR,IACIhZ,EADE+W,EAAezX,KAAKrB,MAAMmR,UAAU7I,MAAK,SAAA4G,GAAE,OAAIA,EAAGjP,KAAOoa,EAAKra,MAAM2L,QAAQ,IAE9EmN,GAAgBzX,KAAKrB,MAAMyC,OAASmL,IAAsC,WAAtBkL,EAAa1T,OACjErD,EAAWV,KAAKrB,MAAMmR,UAAUnH,QAAO,SAAA5B,GAAC,OAAIA,EAAET,SAAW0S,EAAKra,MAAM2L,QAAQ,KAIhF+C,EAAOlG,KAAKnH,KAAK2Z,YAAYjZ,EAAU+W,IAGvCpK,EAAOlG,MAAKxG,EAAAA,GAAAA,KAAC4K,EAAAA,EAAU,CACnBxJ,SAAU/B,KAAK9B,MAAMqV,UAErB1O,MAAOhE,EAAAA,KAAAA,EAAO,qBACdyD,UAAW0K,EAAAA,MAAAA,KAAWzK,EAAQ8U,eAAgBrZ,KAAK9B,MAAMqV,WAAahP,EAAQiP,qBAC9ErS,MAAO,CAAEwB,MAAOsN,EAAU,MAAQ,WAClCvN,QAAS,SAAAd,GAAC,OAAIoX,EAAKJ,SAAShX,EAAE,EAC9BsD,KAAK,SAAQxE,UAACC,EAAAA,GAAAA,KAACiZ,EAAAA,IAAO,KALlB,eAQRvM,EAAOlG,MAAKxG,EAAAA,GAAAA,KAAC4K,EAAAA,EAAU,CACnBxJ,SAAU/B,KAAK9B,MAAMqV,UAErB1O,MAAOhE,EAAAA,KAAAA,EAAO,qBACdyD,UAAW0K,EAAAA,MAAAA,KAAWzK,EAAQ8U,eAAgBrZ,KAAK9B,MAAMqV,WAAahP,EAAQiP,qBAC9ErS,MAAO,CAAEwB,MAAOsN,EAAU,MAAQ,WAClCvN,QAAS,kBAAMsW,EAAKa,gBAAgB,EACpC3U,KAAK,SAAQxE,UAACC,EAAAA,GAAAA,KAACmZ,EAAAA,IAAa,KALxB,cAMZ,CAGAzM,EAAOlG,MAAKxG,EAAAA,GAAAA,KAAC4K,EAAAA,EAAU,CAEnBxJ,SAAUkO,GAAWjQ,KAAK9B,MAAMqV,UAChCjP,UAAW0K,EAAAA,MAAAA,KAAWzK,EAAQ8U,eAAgBrZ,KAAK9B,MAAMqV,WAAahP,EAAQiP,qBAC9E3O,MAAOhE,EAAAA,KAAAA,EAAO,qBACdM,MAAO,CAAEmY,MAAO,QAASlK,QAASpP,KAAK9B,MAAMqV,UAAY,GAAOtD,EAAU,EAAI,GAC9EvN,QAAS,SAAAd,GACLA,EAAEsR,kBACF8F,EAAKha,SAAS,CAAE4R,YAAY,GAChC,EACA1L,KAAK,SAAQxE,UAACC,EAAAA,GAAAA,KAACoZ,EAAAA,IAAQ,KATnB,WAYR1M,EAAOlG,MAAKxG,EAAAA,GAAAA,KAAC4K,EAAAA,EAAU,CACnBxJ,SAAU/B,KAAK9B,MAAMqV,UAErB1O,MAAOhE,EAAAA,KAAAA,EAAO,8BACdyD,UAAW0K,EAAAA,MAAAA,KAAWzK,EAAQ8U,eAAgBrZ,KAAK9B,MAAMqV,WAAahP,EAAQiP,qBAC9ErS,MAAO,CAAEwB,MAAOsN,EAAU,MAAQ,UAAWqJ,MAAO,SACpD5W,QAAS,SAAAd,GACLA,EAAEsR,kBACF8F,EAAKha,SAAS,CAAEiR,SAAU+I,EAAKra,MAAMsR,SACzC,EACA/K,KAAK,SAAQxE,UAACC,EAAAA,GAAAA,KAACqZ,EAAAA,IAAW,KARtB,aAUH/J,GAAWjQ,KAAKrB,MAAM2L,UAAYtK,KAAKrB,MAAM2L,WAAagC,IAAatM,KAAKrB,MAAM2L,WAAa+B,IAEhGgB,EAAOlG,MAAKxG,EAAAA,GAAAA,KAAC4K,EAAAA,EAAU,CACnBjH,UAAW0K,EAAAA,MAAAA,KAAWzK,EAAQ8U,eAAgBrZ,KAAK9B,MAAMqV,WAAahP,EAAQiP,qBAC9EzR,SAAU/B,KAAK9B,MAAMqV,UACrB1O,MAAOhE,EAAAA,KAAAA,EAAO,UAEd6B,QAAS,SAAAd,GAAC,OAAIoX,EAAKva,SAASmD,EAAE,EAC9BsD,KAAK,SAAQxE,UAACC,EAAAA,GAAAA,KAACsZ,EAAAA,IAAQ,KAFnB,UAiBhB,CACA,OAAO5M,CACX,GAAC,CAAA5N,IAAA,aAAAC,MAED,WACI,IAAMwa,EAAU,CAAC,CAACtb,GAAIwN,GAASvN,KAAMgC,EAAAA,KAAAA,EAAO,iBAI5C,OAHAb,KAAKrB,MAAMmR,UAAUjJ,SAAQ,SAAAK,GAAI,MACf,WAAdA,EAAKnD,MAAqBmW,EAAQ/S,KAAK,CAACvI,GAAIsI,EAAKtI,GAAIC,KAAMqI,EAAKrC,OAAO,IAEpEqV,CACX,GAAC,CAAAza,IAAA,gBAAAC,MAED,WACIM,KAAKhB,SAAS,CAAE0Q,SAAU,KAC1B1P,KAAKoT,aAAa,GACtB,GAAC,CAAA3T,IAAA,cAAAC,MAED,WAAe,IAADya,EAAA,KACJzK,EAAW,GACjB1P,KAAKrB,MAAMmR,UAAUjJ,SAAQ,SAAAK,GAAI,OAC7BiT,EAAKxb,MAAMmR,UAAU7I,MAAK,SAAA4G,GAAE,OAAIA,EAAGvH,SAAWY,EAAKtI,EAAE,KAAK8Q,EAASvI,KAAKD,EAAKtI,GAAG,IACpFoB,KAAKhB,SAAS,CAAE0Q,SAAAA,IAChB1P,KAAKoT,aAAa1D,EACtB,GAAC,CAAAjQ,IAAA,mBAAAC,MAED,WAAoB,IAAD0a,EAAA,KACf,OAAIpa,KAAKrB,MAAMsR,SAAWjQ,KAAK9B,MAAMqV,UAC1B,KAEJ,EACH5S,EAAAA,GAAAA,KAAC+S,EAAAA,IAAS,CAENpP,UAAWtE,KAAK9B,MAAMqG,QAAQ8V,cAC9BlZ,MAAO,CAAEwB,MAAOmJ,GAAWsD,QAAqC,YAA5BpP,KAAKrB,MAAMqS,aAA6B,EAAI,GAAKrJ,WAAwC,YAA5B3H,KAAKrB,MAAMqS,aAA6B,OAAS,WAClJnM,MAAOhE,EAAAA,KAAAA,EAAO,6BACd6B,QAAS,SAAArC,GACLA,EAAM6S,kBACN7S,EAAMoB,iBACN,IAAMuP,EAA2C,YAA5BoJ,EAAKzb,MAAMqS,aAA6B,GAAK,UAClE7M,OAAOyE,cAAgBzE,OAAOyE,aAAauC,QAAQ,wBAAyB6F,GAC5EoJ,EAAKpb,SAAS,CAAEgS,aAAAA,GACpB,GAVI,oBAaRrQ,EAAAA,GAAAA,KAACgT,EAAAA,IAAQ,CAEL9O,MAAOhE,EAAAA,KAAAA,EAAO,4BACdyD,UAAWtE,KAAK9B,MAAMqG,QAAQ8V,cAC9BlZ,MAAO,CAAEwB,MAAOuJ,GAAakD,QAAqC,WAA5BpP,KAAKrB,MAAMqS,aAA4B,EAAI,GAAKrJ,WAAwC,WAA5B3H,KAAKrB,MAAMqS,aAA4B,OAAS,WAClJtO,QAAS,WACL,IAAMsO,EAA2C,WAA5BoJ,EAAKzb,MAAMqS,aAA4B,GAAK,SACjE7M,OAAOyE,cAAgBzE,OAAOyE,aAAauC,QAAQ,wBAAyB6F,GAC5EoJ,EAAKpb,SAAS,CAAEgS,aAAAA,GACpB,GARI,mBAURrQ,EAAAA,GAAAA,KAAC+S,EAAAA,IAAS,CAEN7O,MAAOhE,EAAAA,KAAAA,EAAO,mCACdyD,UAAWtE,KAAK9B,MAAMqG,QAAQ8V,cAC9BlZ,MAAO,CAAEwB,MAAOqJ,GAAeoD,QAAqC,aAA5BpP,KAAKrB,MAAMqS,aAA8B,EAAI,GAAKrJ,WAAwC,aAA5B3H,KAAKrB,MAAMqS,aAA8B,OAAS,WACxJtO,QAAS,WACL,IAAMsO,EAA2C,aAA5BoJ,EAAKzb,MAAMqS,aAA8B,GAAK,WACnE7M,OAAOyE,cAAgBzE,OAAOyE,aAAauC,QAAQ,wBAAyB6F,GAC5EoJ,EAAKpb,SAAS,CAAEgS,aAAAA,GACpB,GARI,oBAURrQ,EAAAA,GAAAA,KAAA,OAEI2D,UAAWtE,KAAK9B,MAAMqG,QAAQ8V,cAC9B5P,IAAI,UACJtJ,MAAO,CAAEiO,QAAmC,YAA1BpP,KAAKrB,MAAMoS,WAA2B,EAAI,GAAKpJ,WAAsC,YAA1B3H,KAAKrB,MAAMoS,WAA2B,OAAS,WAC5HvG,IAAKiC,GAAO6N,SAAW7N,GAAOG,IAC9BlK,QAAS,WACL,IAAMqO,EAAuC,YAA1BqJ,EAAKzb,MAAMoS,WAA2B,GAAK,UAC9D5M,OAAOyE,cAAgBzE,OAAOyE,aAAauC,QAAQ,sBAAuB4F,GAC1EqJ,EAAKpb,SAAS,CAAE+R,WAAAA,GACpB,GATI,kBAWRpQ,EAAAA,GAAAA,KAAA,OAEI2D,UAAWtE,KAAK9B,MAAMqG,QAAQ8V,cAC9B5P,IAAI,aACJtJ,MAAO,CAAEiO,QAAmC,kBAA1BpP,KAAKrB,MAAMoS,WAAiC,EAAI,GAAKpJ,WAAsC,kBAA1B3H,KAAKrB,MAAMoS,WAAiC,OAAS,WACxIvG,IAAKiC,GAAO,kBAAoBA,GAAOG,IACvClK,QAAS,WACL,IAAMqO,EAAuC,kBAA1BqJ,EAAKzb,MAAMoS,WAAiC,GAAK,gBACpE5M,OAAOyE,cAAgBzE,OAAOyE,aAAauC,QAAQ,sBAAuB4F,GAC1EqJ,EAAKpb,SAAS,CAAE+R,WAAAA,GACpB,GATI,aAWRpQ,EAAAA,GAAAA,KAAA,OAEI2D,UAAWtE,KAAK9B,MAAMqG,QAAQ8V,cAC9B5P,IAAI,aACJtJ,MAAO,CAAEiO,QAAmC,kBAA1BpP,KAAKrB,MAAMoS,WAAiC,EAAI,GAAKpJ,WAAsC,kBAA1B3H,KAAKrB,MAAMoS,WAAiC,OAAS,WACxIvG,IAAKiC,GAAO,kBAAoBA,GAAOG,IACvClK,QAAS,WACL,IAAMqO,EAAuC,kBAA1BqJ,EAAKzb,MAAMoS,WAAiC,GAAK,gBACpE5M,OAAOyE,cAAgBzE,OAAOyE,aAAauC,QAAQ,sBAAuB4F,GAC9EqJ,EAAKpb,SAAS,CAAE+R,WAAAA,GAChB,GATI,aAWRpQ,EAAAA,GAAAA,KAAA,OAEI2D,UAAWtE,KAAK9B,MAAMqG,QAAQ8V,cAC9B5P,IAAI,QACJtJ,MAAO,CAAEiO,QAAmC,UAA1BpP,KAAKrB,MAAMoS,WAAyB,EAAI,GAAKpJ,WAAsC,UAA1B3H,KAAKrB,MAAMoS,WAAyB,OAAS,WACxHvG,IAAKiC,GAAc,OAAKA,GAAOG,IAC/BlK,QAAS,SAAArC,GACL,IAAM0Q,EAAuC,UAA1BqJ,EAAKzb,MAAMoS,WAAyB,GAAK,QAC5D5M,OAAOyE,cAAgBzE,OAAOyE,aAAauC,QAAQ,sBAAuB4F,GAC9EqJ,EAAKpb,SAAS,CAAE+R,WAAAA,GAChB,GATI,gBAWRpQ,EAAAA,GAAAA,KAAC4Z,EAAAA,IAAa,CAAiBjW,UAAS,GAAAR,OAAK9D,KAAK9B,MAAMqG,QAAQ8V,cAAa,KAAAvW,OAAI9D,KAAK9B,MAAMqG,QAAQiW,oBAAsB3V,MAAOhE,EAAAA,KAAAA,EAAO,cAAe6B,QAAS,kBAAM0X,EAAKK,aAAa,GAArK,aACnBza,KAAKrB,MAAM+Q,SAASrQ,QAASsB,EAAAA,GAAAA,KAAC+Z,EAAAA,IAAe,CAAmBpW,UAAS,GAAAR,OAAK9D,KAAK9B,MAAMqG,QAAQ8V,cAAa,KAAAvW,OAAI9D,KAAK9B,MAAMqG,QAAQiW,oBAAsB3V,MAAOhE,EAAAA,KAAAA,EAAO,gBAAiB6B,QAAS,kBAAM0X,EAAKO,eAAe,GAA3K,eAAkL,KAE5O,GAAC,CAAAlb,IAAA,wBAAAC,MAED,WAAyB,IAADkb,EAAA,KACpB,GAAI5a,KAAKrB,MAAMwS,iBACX,OAAOxQ,EAAAA,GAAAA,KAACoH,GAAkB,CACtBG,OAAQlI,KAAK9B,MAAMgK,OACnB3J,QAAS,kBAAMqc,EAAK5b,SAAS,CAAEmS,kBAAkB,GAAQ,EACzD1I,QAAS,SAAC3J,EAAUyK,GAAO,OAAKqR,EAAK5b,SAAS,CAAEmS,kBAAkB,IAAS,kBAAMyJ,EAAK1c,MAAM2c,gBAAgB,CAAC/b,SAAAA,EAAUyK,QAAAA,GAAS,GAAC,GAG7I,GAAC,CAAA9J,IAAA,SAAAC,MAED,WAAU,IAADob,EAAA,KACEvW,EAAWvE,KAAK9B,MAAhBqG,QAEDwW,EAAe/a,KAAKrB,MAAM2R,UAAYtQ,KAAKrB,MAAMmR,UAAU7I,MAAK,SAAAF,GAAC,OAAIA,EAAEnI,KAAOkc,EAAKnc,MAAM2R,QAAQ,IACjG0K,EAAahb,KAAKrB,MAAM0R,cAAgBrQ,KAAK9B,MAAM6R,QAAQ/P,KAAKrB,MAAM0R,cAE5E,MAAO,EACHlQ,EAAAA,GAAAA,MAAC8a,EAAAA,GAAM,CAEH/Z,QAAQ,YACRoD,UAAWC,EAAQ2W,KACnB3W,QAAS,CAAE4W,MAAO5W,EAAQ6W,aAC1BC,OAAO,OACP3Y,QAAS,kBAAMoY,EAAKpY,QAAQ,CAAC9D,GAAI,IAAI,EAAC8B,SAAA,EAEtCC,EAAAA,GAAAA,KAAA,OAAK2D,UAAWC,EAAQ+W,QAAQ5a,SAC3BV,KAAKub,uBAGV5a,EAAAA,GAAAA,KAAC6a,EAAAA,EAAO,KAER7a,EAAAA,GAAAA,KAAC8a,EAAAA,EAAe,CAACC,QAASC,EAAAA,GAAajb,UACnCC,EAAAA,GAAAA,KAAA,OAAK2D,UAAWC,EAAQqX,UAAUlb,SAC7BV,KAAK6b,eAAe7b,KAAKrB,MAAMmR,gBAIxCnP,EAAAA,GAAAA,KAAC6a,EAAAA,EAAO,KAER7a,EAAAA,GAAAA,KAAA,OAAK2D,UAAWC,EAAQuX,OAAOpb,SAAEV,KAAK+b,uBArBlC,UAwBRhB,GAAepa,EAAAA,GAAAA,KAAC5C,GAAY,CAExBc,KAAMkc,EAAalW,MACnBA,MAAOhE,EAAAA,KAAAA,EAAO,UACdjC,GAAIoB,KAAKrB,MAAM2R,SACfnR,OAA8B,WAAtB4b,EAAahX,KACrBjF,SAAUic,EAAajc,SACvBM,UAAWY,KAAK9B,MAAMkB,UACtBb,QAAS,kBAAMuc,EAAK9b,SAAS,CAAEsR,UAAU,GAAQ,EACjD7R,SAAU,SAACC,EAAOsd,EAAS7F,EAAO8F,GAAW,OAAKnB,EAAK5c,MAAMO,UAAYqc,EAAK5c,MAAMO,SAASC,EAAOsd,EAAS7F,EAAO8F,EAAY,GAR5H,iBASH,KAELjc,KAAKrB,MAAM4R,UAAW5P,EAAAA,GAAAA,KAACqC,GAAY,CAE/BnE,KAAMmB,KAAKrB,MAAMmR,UAAU7I,MAAK,SAAAF,GAAC,OAAIA,EAAEnI,KAAOkc,EAAKnc,MAAM4R,QAAQ,IAAE1L,MACnEjG,GAAIoB,KAAKrB,MAAM4R,SACfhS,QAAS,kBAAMuc,EAAK9b,SAAS,CAAEuR,UAAU,GAAQ,EACjDtN,SAAU,SAAArE,GAAE,OAAIkc,EAAK5c,MAAM+E,UAAY6X,EAAK5c,MAAM+E,SAASrE,EAAG,GAJ1D,iBAKH,KAELoB,KAAKrB,MAAM6R,cAAe7P,EAAAA,GAAAA,KAACub,GAAkB,CAEzC3d,QAAS,SAAAwF,GACL+W,EAAK9b,SAAS,CAAEwR,cAAc,IAC9BzM,GAAQ+W,EAAK9b,SAAS,CAAEmR,eAAgBpM,GAC5C,GAJI,sBAKH,KAEL/D,KAAKrB,MAAMwR,gBAAiBxP,EAAAA,GAAAA,KAACsF,GAAS,CAElC1H,QAAS,kBAAMuc,EAAK9b,SAAS,CAAEmR,gBAAgB,GAAQ,EACvDtL,MAAOhE,EAAAA,KAAAA,EAAO,qBACdhC,KAAMmB,KAAKmc,gBACXzV,QAAS1G,KAAKoc,aACdjd,QAAQ,EACRgH,cAAenG,KAAKrB,MAAMmR,UAAUxN,KAAI,SAAA4E,GAAI,OAAIA,EAAKtI,EAAE,IACvDE,SAAUkB,KAAK9B,MAAMkB,UAAU,IAAM,EACrCA,UAAWY,KAAK9B,MAAMkB,UACtB2E,KAAM/D,KAAKrB,MAAMwR,eACjB7J,OAAQtG,KAAKsG,OACbJ,MAAO,SAACtH,EAAIC,EAAMC,EAAUiF,GAAI,OAC5B+W,EAAK5c,MAAM0a,UAAYkC,EAAK5c,MAAM0a,SAASha,EAAIC,GAAM,EAAOC,EAAUiF,EAAK,GAZ3E,qBAaH,KAEL/D,KAAKrB,MAAM0R,cAAe1P,EAAAA,GAAAA,KAACsF,GAAS,CAEhC1H,QAAS,kBAAMuc,EAAK9b,SAAS,CAAEqR,aAAc,IAAK,EAClDxL,MAAOhE,EAAAA,KAAAA,EAAO,eACdhC,KAAMmB,KAAKmc,cAAcnc,KAAKrB,MAAM0R,cACpC3J,QAAS1G,KAAKoc,aACdjd,QAAQ,EACRL,SAAUsD,SAAU4Y,GAAcA,EAAW1S,QAAU0S,EAAW1S,OAAOsF,QAAUoN,EAAW1S,OAAOsF,OAAOhO,MAAM,KAAKC,OAAU,EAAG,IACpIT,UAAWY,KAAK9B,MAAMkB,UACtB2E,KAAOiX,GAAcA,EAAW1S,QAAU0S,EAAW1S,OAAOqF,YAAe,gBAC3ErH,OAAQtG,KAAKsG,OACbJ,MAAO,SAACtH,EAAIC,EAAMC,EAAUiF,GACxB,IAAMiX,EAAaF,EAAKnc,MAAM0R,cAAgByK,EAAK5c,MAAM6R,QAAQ+K,EAAKnc,MAAM0R,cACxE2K,GAAcA,EAAW1S,SAEzB0S,EAAW1S,OAAOL,SAAU,GAEhC6S,EAAK5c,MAAM0a,UAAYkC,EAAK5c,MAAM0a,SAASha,EAAIC,GAAM,EAAOC,EAAUiF,EAAMiX,GAAcA,EAAW1S,QAAU0S,EAAW1S,OAAO4N,OACrI,GAjBI,sBAkBH,KAELlW,KAAKrB,MAAMyR,gBAAiBzP,EAAAA,GAAAA,KAACsF,GAAS,CAElC1H,QAAS,kBAAMuc,EAAK9b,SAAS,CAAEoR,gBAAgB,GAAQ,EACvDvL,MAAOhE,EAAAA,KAAAA,EAAO,qBACd6F,QAAS1G,KAAKoc,aACdvd,KAAMmB,KAAKqc,sBACX/V,OAAQtG,KAAKsG,OACbJ,MAAO,SAACtH,EAAIC,GAAI,OACZic,EAAK5c,MAAM0a,UAAYkC,EAAK5c,MAAM0a,SAASha,EAAIC,GAAM,EAAK,GAP1D,qBAQH,KAELmB,KAAKrB,MAAM8R,WAAY9P,EAAAA,GAAAA,KAACyG,GAAW,CAAC7I,QAAS,kBAAMuc,EAAK9b,SAAS,CAAEyR,UAAW,IAAK,EAAEzL,KAAMhF,KAAKrB,MAAM8R,YAAgB,KAEtHzQ,KAAKsc,wBAEb,IAAC,EAAA7c,IAAA,mBAAAC,MApkCD,SAAwBmT,EAAiB/C,EAAWc,EAAYE,EAAYyL,GACxEzM,EAAYH,KAAKC,MAAMD,KAAK8C,UAAU3C,IACtC,IAAI4C,GAAU,EACVI,EAAW,CAAChD,UAAAA,GAChB,IAAwB,IAApB+C,GAA6BjC,GAAcE,EAAY,CACvD,IAAM9L,EAAO8L,EAAWlG,cAwBxB,GAvBAkF,EAAUjJ,SAAQ,SAAAK,GACd,IAAMtI,EAAKsI,EAAKrC,MAAM+F,cACtB1D,EAAKqN,gBAAiB,EACtB,IAAIiI,GAA8B,IAAtB5d,EAAGwH,QAAQpB,GACvB,IAAKwX,GAAUD,GAAWA,EAAQrV,EAAKtI,KAAO2d,EAAQrV,EAAKtI,IAAI0J,QAAUiU,EAAQrV,EAAKtI,IAAI0J,OAAO4N,OAC7F,GAA2C,YAAvCqG,EAAQrV,EAAKtI,IAAI0J,OAAOqF,WAA0B,CAClD,IAAMiF,EAAM2J,EAAQrV,EAAKtI,IAAI0J,OAAO4N,OAAOuG,YAAY,MACvDD,GAA0F,IAAlFD,EAAQrV,EAAKtI,IAAI0J,OAAO4N,OAAO/D,UAAU,EAAGS,GAAKhI,cAAcxE,QAAQpB,EACnF,MACIwX,GAAwE,IAAhED,EAAQrV,EAAKtI,IAAI0J,OAAO4N,OAAOtL,cAAcxE,QAAQpB,GAGjEwX,EACItV,EAAKoN,WACLpN,EAAKoN,UAAW,EAChB5B,GAAU,GAENxL,EAAKoN,WACbpN,EAAKoN,UAAW,EAChB5B,GAAU,EAElB,IAEIA,EAEA,IAAK,IAAI3L,EAAI+I,EAAUzQ,OAAS,EAAG0H,GAAK,EAAGA,IAAK,CAC5C,IAAMG,EAAO4I,EAAU/I,GACvB,IAAKG,EAAKoN,UAAYpN,EAAKqN,eAAgB,CACvC,IAAI1G,EAAK3G,EACT,GACQ2G,EAAGvH,QAAUwJ,EAAUjC,EAAGG,eAC1B0E,GAAU,EACV5C,EAAUjC,EAAGG,aAAauG,gBAAiB,GAE/C1G,EAAKA,EAAGvH,QAAUwJ,EAAUjC,EAAGG,aAAe8B,EAAUjC,EAAGG,aAAe,WACtEH,EACZ,CACJ,CAER,MACIiC,EAAUjJ,SAAQ,SAAAK,IACVA,EAAKoN,UAAYpN,EAAKqN,kBACtBrN,EAAKoN,UAAW,EAChBpN,EAAKqN,gBAAiB,EACtB7B,GAAU,EAElB,KACwB,IAApBG,IACAC,EAAShC,WAAa,GACtBgC,EAASlC,YAAa,EACtB8B,GAAU,GAIlB,OAAOA,EAAUI,EAAW,IAChC,GAAC,CAAArT,IAAA,gCAAAC,MAkBD,SAAqC4K,EAAUoF,EAAUI,GACrDJ,EAAWC,KAAKC,MAAMD,KAAK8C,UAAU/C,IACrC,IAAIgD,GAAU,EAGV1L,EAAyB,kBAAbsD,EAAwBA,EAAWwF,EAAU7I,MAAK,SAAA4G,GAAE,OAAIA,EAAGjP,KAAO0L,CAAQ,IAC1F,IAEItD,EAAKA,GAAMA,EAAGV,QAAUwJ,EAAU7I,MAAK,SAAA4G,GAAE,OAAIA,EAAGjP,KAAOoI,EAAGV,MAAM,OAE3B,IAA7BoJ,EAAStJ,QAAQY,EAAGpI,MACpB8Q,EAASvI,KAAKH,EAAGpI,IACjB8T,GAAU,SAGd1L,GACR,OAAO0L,GAAWhD,CACtB,GAAC,CAAAjQ,IAAA,2BAAAC,MAMD,SAAgCxB,EAAOS,GACnC,IAAMmU,EAAW,CAAC,EACdJ,GAAU,EAKd,GAJI/T,EAAMkS,aAAe3S,EAAM2S,aAC3B6B,GAAU,EACVI,EAASjC,WAAa3S,EAAM2S,YAE5BlS,EAAMuS,cAAgBhT,EAAMgT,aAAehT,EAAM6R,QAAS,CAC1D,IAAMD,EAAY5C,GAAYhP,EAAM6R,SAAW,CAAC,GAIhD,GAFA+C,EAAShD,UAAYA,EAEjBnR,EAAMmS,WAAY,CAClB,IAAM4L,EAASjN,EAAWsD,kBAAiB,EAAMjD,EAAWnR,EAAMiS,WAAYjS,EAAMmS,WAAY5S,EAAM6R,SACtG2M,GAAUjP,OAAOkH,OAAO7B,EAAU4J,EACtC,CAEA,IAAMnL,EAAqB9B,EAAWwD,4BAA4BnD,EAAW5R,EAAMkB,WAAa,IAE1FgS,EAAS3B,EAAWuD,8BAA8BrU,EAAM2L,SAAU3L,EAAM+Q,SAAU/Q,EAAMmR,WAE9FgD,EAASvB,mBAAqBA,EAC1BH,IACA0B,EAASpD,SAAW0B,GAExBsB,GAAU,CACd,CAWA,GATI/T,EAAMyC,QAAUlD,EAAMkD,QACtBsR,GAAU,EACVI,EAAS1R,MAAQlD,EAAMkD,OAEvBzC,EAAMuR,YAAchS,EAAMgS,YAC1BwC,GAAU,EACVI,EAAS5C,UAAYhS,EAAMgS,WAG3BhS,EAAMye,UAAYhe,EAAM2L,WAAapM,EAAMye,SAAU,CACrD,IAAMzV,EAAOvI,EAAMmR,UAAU7I,MAAK,SAAAC,GAAI,OAAIA,EAAKtI,KAAOV,EAAMye,QAAQ,IAEpE,IAAKhe,EAAMsR,SAAW/I,EAAM,CACxB,IAAMwI,EAAWD,EAAWuD,8BAA8B9L,EAAMvI,EAAM+Q,SAAU/Q,EAAMmR,WACtFgD,EAASxI,SAAWpD,EAAKtI,GACrB8Q,IACAoD,EAASpD,SAAWA,GAExBgD,GAAU,EACVvO,OAAOyE,cAAgBzE,OAAOyE,aAAauC,QAAQ,oBAAqBjE,EAAKtI,GACjF,CACJ,CAEA,OAAI8T,EACOI,EAEA,IAEf,GAAC,CAAArT,IAAA,8BAAAC,MAED,SAAmCoQ,EAAW1Q,GAC1C,IAAImS,GAAsBnS,EAAU,IAAMA,EAAUC,QAAU,EAS9D,OAPIkS,GACAzB,EAAUjJ,SAAQ,SAAAK,GACI,WAAdA,EAAKnD,MAAuC,IAAlBmD,EAAKpI,WAC/ByS,GAAqB,EAE7B,IAEGA,CACX,KAAC9B,CAAA,CA5SW,CAAS1M,IAAAA,WAmuCzB,IAAeM,EAAAA,EAAAA,IA/iDA,SAAAC,GAAK,MAAK,CACrB8X,YAAa,CACT9P,SAAU,WACVlK,MAAO,OACPyE,OAAQ,OACRsO,SAAU,UAEdmH,QAAS,CACLzV,OAAQvC,EAAMgY,QAAQzV,QAE1BwT,eAAgB,CACZ1W,MAA8B,SAAvBW,EAAMsE,QAAQgV,KAAiB,mBAAqB,oBAE/DpJ,oBAAqB,CACjB7K,OAAQ,kBACRyG,QAAS,IAEb6J,cAAe,CACX7X,MAAO,qBACPyb,WAAY,OACZjI,WAAY,GAEhBtB,YAAa,CACTlS,MAAO,GACPyE,OAAQ,GACRqO,QAAS,GAEb+D,iBAAkB,CACd6E,aAAc,GAElBC,eAAgB,CACZzR,SAAU,WACV0R,MAAO,GACPC,IAAK,mBAET/B,KAAM,CACF9Z,MAAO,OACPyE,OAAQ,QAEZ+V,UAAW,CACPxa,MAAO,OACPyE,OAAQ,oBACRqX,UAAW,SACXC,UAAW,QAEfvH,aAAc,CACVnP,SAAU,IAEd+Q,WAAY,CACRpW,MAAO,GACPyE,OAAQ,GACRuX,aAAc,EACdxR,YAAa,GAEjBwJ,WAAY,CACRhU,MAAO,GACPyE,OAAQ,GACRuX,aAAc,EACdvR,UAAW,EACX9F,aAAc,EACd6O,WAAY,EACZhJ,YAAa,GAEjBzM,OAAQ,CAEJ0V,OAAQ,UACRX,QAAS,EACTmJ,WAAY,QAEhB3H,cAAe,CACXtG,QAAS,GACTkO,mBAAoB,OACpBC,mBAAoB,WAExBtI,WAAY,CACR7T,MAAO,GACPyE,OAAQ,IAEZqP,kBAAmB,CACfsI,WAAY,EACZC,cAAe,EACfC,YAAa,EACbZ,aAAc,GAElB3H,oBAAqB,CACjBN,OAAQ,UACR2I,WAAY,EACZC,cAAe,EACfC,YAAa,EACbZ,aAAc,GAElBtH,OAAQ,CACJX,OAAQ,UACRX,QAAS,EACTmJ,WAAY,QAEhB5H,cAAe,CACXrG,QAAS,EACTkO,mBAAoB,OACpBC,mBAAoB,WAExBtN,QAAS,CACL,EAEJ0N,aAAc,CACVvc,MAAO,GACPyE,OAAQ,IAEZyE,SAAWkC,GACXpN,UAAW,CACPuD,MAAO,OACPQ,SAAU,WAEdoS,cAAe,CACX+D,MAAO,QACP1N,YAAa,EACbzI,SAAU,GACViM,QAAS,IAEb0M,OAAQ,CACJjW,OAAQ,IAEZwU,cAAe,CACX,UAAW,CACPuD,gBAAiB,WAErBjb,MAA8B,SAAvBW,EAAMsE,QAAQgV,KAAkB,UAAY,UACnD/H,OAAQ,UACRhJ,UAAW,EACXD,YAAa,EACb/F,OAAQ,GACRzE,MAAO,IAEXoZ,mBAAoB,CAChBlB,MAAO,SAGXvC,SAAU,CACN,+CAAgD,CAC5CpP,WAAY,WAEhB,wCAAyC,CACrCyH,QAAS,GAEb,wCAAyC,CACrCA,QAAS,KAGpB,GA25CD,CAAkCK,ICtmDlC,SAASoO,GAAcC,GACnB,IAAI9Y,EACA+B,EAAI+W,EAAEC,WAuBV,OAtBIhX,EAAI,KACJA,EAAC,IAAAjD,OAAOiD,EAAEkG,aAEdjI,EAAI,GAAAlB,OAAMiD,EAAC,MAEXA,EAAI+W,EAAEE,cACE,KACJjX,EAAC,IAAAjD,OAAOiD,EAAEkG,aAEdjI,GAAI,GAAAlB,OAAOiD,EAAC,MACZA,EAAI+W,EAAEG,cACE,KACJlX,EAAC,IAAAjD,OAAOiD,EAAEkG,aAEdjI,GAAI,GAAAlB,OAAOiD,EAAC,MACZA,EAAI+W,EAAEI,mBACE,GACJnX,EAAC,KAAAjD,OAAQiD,EAAEkG,YACJlG,EAAI,MACXA,EAAC,IAAAjD,OAAOiD,EAAEkG,aAEdjI,GAAQ+B,CAEZ,CAqFA,IAAIoX,GAAQ,CAAC,EAEPC,GAAG,SAAAvgB,IAAAC,EAAAA,EAAAA,GAAAsgB,EAAAvgB,GAAA,IAAAG,GAAAC,EAAAA,EAAAA,GAAAmgB,GACL,SAAAA,EAAYlgB,GAAQ,IAADC,EASsB,OATtBC,EAAAA,EAAAA,GAAA,KAAAggB,IACfjgB,EAAAH,EAAAK,KAAA,KAAMH,IAuBVmgB,WAAa,SAAAC,GACT,IAEIhU,EAFAiU,EAAWpgB,EAAKQ,MAAM6f,MACpBzO,EAAU5R,EAAKQ,MAAM8f,QAAQ9V,QAAO,SAAA/J,GAAE,OAAI0f,EAAQA,QAAQpa,SAAStF,EAAG,IAE5E,GAAKmR,EAAQ1Q,OAAb,CAE8B,IAAnB0Q,EAAQ1Q,OACfiL,EAAWyF,EAAQ,IAGnBA,EAAQpG,OACRW,EAAWyF,EAAQA,EAAQ1Q,OAAS,IAGxC,IAAImf,EAAQD,EAASjU,IAAa,GAC9BtF,EAAOmZ,GAAM7T,IAAa,GAE9BkU,EAAMrX,KAAKhJ,EAAKugB,aAAaJ,IAC7B,IAAIK,EAAWL,EAAQK,SACN,SAAbA,GAAoC,SAAbA,IACvBA,GAAY,KAEhB,IA3DWC,EA2DLC,EAAO,IAAIC,KAAKR,EAAQS,IAC9B/Z,EAAKmC,KAAK,GAADrD,OAAI+a,EAAKG,iBAAgB,KAAAlb,QA5DvB8a,EA4DqCC,EAAKX,kBA3DrDU,EAAK,GACC,KAAN9a,OAAY8a,GAEZA,EAAK,IACC,IAAN9a,OAAW8a,GAERA,GAqDoE,OAAA9a,OAAM6a,EAAQ,OAAA7a,OAAMwa,EAAQA,UAC/FE,EAAMnf,OAAS,MACfmf,EAAM7X,OAAO,EAAG6X,EAAMnf,OAAS,KAC/B2F,EAAK2B,OAAO,EAAG6X,EAAMnf,OAAS,MAElC8e,GAAM7T,GAAYtF,EAClBuZ,EAASjU,GAAYkU,EAErBrgB,EAAKa,SAAS,CAAEwf,MAAOD,GAnBvB,CAoBJ,EAtDIpgB,EAAKQ,MAAQ,CACT6f,MAAO,CAAC,EACRS,UAAU,EACV3U,SAAU,KACVmU,QAAStgB,EAAKD,MAAMugB,SAAW,IAEnCtgB,EAAK+gB,UAAY,KACjB/gB,EAAKghB,YAAcpc,IAAAA,YAAkB5E,CACzC,CA0FC,OA1FAqB,EAAAA,EAAAA,GAAA4e,EAAA,EAAA3e,IAAA,eAAAC,MAED,SAAa4e,GACT,OAAOne,EAAAA,GAAAA,MAAA,MAA4DmE,UAAWtE,KAAK9B,MAAMqG,QAAQ+Z,EAAQK,UAAUje,SAAA,EAC/GC,EAAAA,GAAAA,KAAA,MAAiB2D,UAAWtE,KAAK9B,MAAMqG,QAAQ6a,OAAO1e,SAAEmd,GAAc,IAAIiB,KAAKR,EAAQS,MAA/E,WACRpe,EAAAA,GAAAA,KAAA,MAAqB2D,UAAWtE,KAAK9B,MAAMqG,QAAQ8a,WAAW3e,SAAE4d,EAAQK,UAAhE,eACRhe,EAAAA,GAAAA,KAAA,MAAAD,SAAqB4d,EAAQA,SAArB,eAAkC,MAAAxa,OAHxBwa,EAAQS,GAAE,KAAAjb,OAAIwa,EAAQA,QAAQgB,QAAQ,KAKhE,GAAC,CAAA7f,IAAA,iBAAAC,MAED,WACIM,KAAKmf,aAAenf,KAAKmf,YAAYI,SAAWvf,KAAKmf,YAAYI,QAAQC,eAAe,CAAEC,SAAU,UACxG,GAAC,CAAAhgB,IAAA,oBAAAC,MAoCD,WACIM,KAAK9B,MAAMgK,OAAOwX,mBAAmB1f,KAAKqe,WAC9C,GAAC,CAAA5e,IAAA,uBAAAC,MAED,WACIM,KAAK9B,MAAMgK,OAAOyX,qBAAqB3f,KAAKqe,WAChD,GAAC,CAAA5e,IAAA,qBAAAC,MAED,WACIM,KAAKrB,MAAMsgB,UAAYjf,KAAK4f,gBAChC,GAAC,CAAAngB,IAAA,SAAAC,MAkCD,WACIsP,EAAAA,MAAAA,iBAAuBmP,GAAMne,KAAKrB,MAAM2L,WAAa,IAAIxK,KAAK,MAClE,GAAC,CAAAL,IAAA,WAAAC,MAED,WACI,IAAI6e,EAAWve,KAAKrB,MAAM6f,MACtBD,EAASve,KAAKrB,MAAM2L,YACpBiU,EAASve,KAAKrB,MAAM2L,UAAY,IAEhC6T,GAAMne,KAAKrB,MAAM2L,YACjB6T,GAAMne,KAAKrB,MAAM2L,UAAY,IAEjCtK,KAAKhB,SAAS,CAAEwf,MAAOD,GAC3B,GAAC,CAAA9e,IAAA,gBAAAC,MAED,SAAc8e,GACV,OAAIxe,KAAKrB,MAAM2L,UAAYkU,GAASA,EAAMnf,QAC/Bc,EAAAA,GAAAA,MAAA,OAAKmE,UAAWtE,KAAK9B,MAAMqG,QAAQsb,YAAYnf,SAAA,EAClDC,EAAAA,GAAAA,KAAA,SAAsB2D,UAAWtE,KAAK9B,MAAMqG,QAAQub,MAAMpf,UAACC,EAAAA,GAAAA,KAAA,SAAAD,SAAQ8d,KAAxD,aACX7d,EAAAA,GAAAA,KAAA,OAA0BoO,IAAK/O,KAAKmf,YAAahe,MAAO,CAAEmY,MAAO,OAAQyG,MAAO,SAAvE,oBAF8C,YAKpDpf,EAAAA,GAAAA,KAAA,OAAmB2D,UAAWtE,KAAK9B,MAAMqG,QAAQsb,YAAa1e,MAAO,CAAEuc,YAAa,IAAKhd,SAAEG,EAAAA,KAAAA,EAAO,gBAAzF,UAExB,GAAC,CAAApB,IAAA,SAAAC,MAED,WAAU,IAADQ,EAAA,KACCse,EAAQxe,KAAKrB,MAAM2L,UAAYtK,KAAKrB,MAAM6f,MAAMxe,KAAKrB,MAAM2L,UACjE,OAAOnK,EAAAA,GAAAA,MAAA,OAAKmE,UAAWtE,KAAK9B,MAAMqG,QAAQyb,OAAOtf,SAAA,EAC7CP,EAAAA,GAAAA,MAAA,OAAKmE,UAAWtE,KAAK9B,MAAMqG,QAAQ0b,QAAQvf,SAAA,EACvCC,EAAAA,GAAAA,KAAC4K,EAAAA,EAAU,CACPjH,UAAWtE,KAAK9B,MAAMqG,QAAQ+O,YAC9B5Q,QAAS,kBAAMxC,EAAKlB,SAAS,CAAEigB,UAAW/e,EAAKvB,MAAMsgB,UAAW,EAChEtc,MAAO3C,KAAKrB,MAAMsgB,SAAW,YAAc,GAC3C/Z,KAAK,SAAQxE,UAACC,EAAAA,GAAAA,KAACuf,EAAAA,IAAU,MAC5B1B,GAASA,EAAMnf,QAASsB,EAAAA,GAAAA,KAAC4K,EAAAA,EAAU,CAChCjH,UAAWtE,KAAK9B,MAAMqG,QAAQ+O,YAC9B5Q,QAAS,kBAAMxC,EAAKigB,UAAU,EAC9Bjb,KAAK,SAAQxE,UAACC,EAAAA,GAAAA,KAACuC,EAAAA,IAAU,MAAmB,KAC/Csb,GAASA,EAAMnf,QAASsB,EAAAA,GAAAA,KAAC4K,EAAAA,EAAU,CAChCjH,UAAWtE,KAAK9B,MAAMqG,QAAQ+O,YAC9B5Q,QAAS,kBAAMxC,EAAK2Y,QAAQ,EAC5B3T,KAAK,SAAQxE,UAACC,EAAAA,GAAAA,KAACmY,EAAAA,IAAQ,MAAmB,KAC7C9Y,KAAK9B,MAAMkiB,gBAAiBzf,EAAAA,GAAAA,KAAC4K,EAAAA,EAAU,CACpCjH,UAAWtE,KAAK9B,MAAMqG,QAAQ+O,YAC9B5Q,QAAS,kBAAMxC,EAAKhC,MAAMkiB,gBAAgB,EAC1Cvb,MAAOhE,EAAAA,KAAAA,EAAO,iBACdqE,KAAK,SAAQxE,UAACC,EAAAA,GAAAA,KAAA,OAAK2D,UAAWtE,KAAK9B,MAAMqG,QAAQ8b,WAAY5V,IAAI,QAAQD,IAAKxK,KAAK9B,MAAMoiB,eA1QjF,6LACA,yLAyQ6J,MACzK3f,EAAAA,GAAAA,KAAC4K,EAAAA,EAAU,CACPjH,UAAWtE,KAAK9B,MAAMqG,QAAQ+O,YAC9B5Q,QAAS,kBAAMxC,EAAKhC,MAAMqiB,WAAW,EACrC1b,MAAOhE,EAAAA,KAAAA,EAAO,aACdqE,KAAK,SAAQxE,UAACC,EAAAA,GAAAA,KAAC6f,EAAAA,IAAQ,QAvBiB,WAyB/CxgB,KAAKygB,cAAcjC,KAE5B,IAAC,EAAA/e,IAAA,2BAAAC,MAxFD,SAAgCxB,EAAOS,GACnC,IAAI+T,GAAU,EACVI,EAAW,CAAC,EAEhB,GAAI5U,EAAMoM,WAAa3L,EAAM2L,SAAU,CACnC,IAAIA,EAAWpM,EAAMoM,SACjBiU,EAAW5f,EAAM6f,MACrBD,EAASjU,GAAYiU,EAASjU,IAAa,GAC3C6T,GAAM7T,GAAY6T,GAAM7T,IAAa,GACrCwI,EAASxI,SAAWA,EACpBoI,GAAU,CACd,CAEA,GAAI/C,KAAK8C,UAAUvU,EAAMugB,WAAa9O,KAAK8C,UAAU9T,EAAM8f,SAAU,CACjE,IAAMA,EAAU9O,KAAKC,MAAMD,KAAK8C,UAAUvU,EAAMugB,UAChD/L,GAAU,EACV,IAAI6L,EAAW5f,EAAM6f,MAErB,IAAK,IAAM5f,KAAMuf,GACTA,GAAMuC,eAAe9hB,KAChB6f,EAAQva,SAAStF,YACXuf,GAAMvf,UACN2f,EAAS3f,KAK5BkU,EAAS2L,QAAUA,CACvB,CACA,OAAO/L,EAAUI,EAAW,IAChC,KAACsL,CAAA,CArGI,CAASrb,IAAAA,WAyKlB,IAAeM,EAAAA,EAAAA,IA7PA,SAAAC,GAAK,MAAK,CACrB0c,OAAQ,CACJ5e,MAAO,OACPyE,OAAQ,OACRyF,SAAU,WACV6I,SAAU,UAEd0L,YAAa,CACTja,QAAS,eACTjD,MAA8B,SAAvBW,EAAMsE,QAAQgV,KAAkB,QAAU,QACjDxb,MAAM,eAAD0C,OAZS,GAYqB,OACnC+B,OAAQ,OAERsO,SAAU,OACV7I,SAAU,WACVqV,cAAe,OAEnBC,KAAM,CACFjZ,WAAmC,SAAvBrE,EAAMsE,QAAQgV,KAAkB,WAAa,YACzDja,OAAOW,EAAMsE,QAAQgV,KAAmB,UAE5CvW,MAAO,CACHsB,WAAY,UACZhF,MAA8B,SAAvBW,EAAMsE,QAAQgV,KAAmB,QAAU,SAEtDiE,KAAM,CACFlZ,WAAY,UACZhF,MAA8B,SAAvBW,EAAMsE,QAAQgV,KAAmB,QAAU,SAEtDkE,MAAO,CACHnZ,WAAY,OACZyH,QAAS,GACTzM,MAA8B,SAAvBW,EAAMsE,QAAQgV,KAAmB,QAAU,SAEtDmE,MAAO,CACHpZ,WAAY,OACZyH,QAAS,GACTzM,MAA8B,SAAvBW,EAAMsE,QAAQgV,KAAkB,QAAU,SAErDkD,MAAO,CACHkB,WAAY,YACZ5f,MAAO,QAGX6e,QAAS,CACL7e,MA/Cc,GAgDdyE,OAAQ,OACRob,UAAW,iHACXrb,QAAS,eACT+a,cAAe,MACfxM,SAAU,UAEdiL,OAAQ,CACJhe,MAAO,IAEXie,WAAY,CACRje,MAAO,GACPgC,WAAY,QAEhBkQ,YAAa,CACTlS,MAAO,GACPyE,OAAQ,GACRqO,QAAS,GAEbmM,WAAY,CACRjf,MAAO,GACPyE,OAAQ,GACR8B,WAAmC,SAAvBrE,EAAMsE,QAAQgV,KAAkB,eAAYpO,EACxD4O,aAAqC,SAAvB9Z,EAAMsE,QAAQgV,KAAkB,QAAKpO,GAE1D,GAuLD,CAAkC4P,I,8LCjSlC,IAAI7Q,GAAQ,EACN2T,GAAY,SAAArjB,IAAAC,EAAAA,EAAAA,GAAAojB,EAAArjB,GAAA,IAAAG,GAAAC,EAAAA,EAAAA,GAAAijB,GACd,SAAAA,EAAYhjB,GAAQ,IAADC,EAmBM,OAnBNC,EAAAA,EAAAA,GAAA,KAAA8iB,IACf/iB,EAAAH,EAAAK,KAAA,KAAMH,IACDS,MAAQ,CACTE,KAAM,UACNsiB,OAAQjjB,EAAMijB,SAAU,EACxBC,SAAUljB,EAAMkjB,UAAY,aAC5BC,SAAUnjB,EAAMmjB,WAAY,EAC5BC,OAAO,EACPC,OAAO,EACPzQ,WAAY3S,EAAKD,MAAM4S,YAAc,GACrC0Q,eAAe,GAEnBrjB,EAAKsjB,oBAAsB9R,KAAK8C,UAAUtU,EAAKD,MAAM+S,kBACrD9S,EAAKujB,UAAY,KACjBvjB,EAAKwjB,OAAS,KACdxjB,EAAKyjB,OAASzd,OAAOyd,OACrBzjB,EAAK0jB,OAAS,GACd1jB,EAAK2jB,aAAe5jB,EAAM6jB,MAAQ,GAClC5jB,EAAK6jB,QAAU,CAAC,EAChB7jB,EAAK8jB,WAAa,GAAG9jB,CACzB,CA2ZC,OA3ZAqB,EAAAA,EAAAA,GAAA0hB,EAAA,EAAAzhB,IAAA,gBAAAC,MAED,SAAcoS,GAAK,IAAD5R,EAAA,KACd,GAAKF,KAAK4hB,QAAW5hB,KAAK9B,MAAM+S,iBAW5Ba,GAAMA,QAXwC,CAI9C,GAHA9R,KAAK4hB,OAASzd,OAAOyd,OACrB5hB,KAAKkiB,cAAgBliB,KAAKkiB,eAAiB,EAC3CliB,KAAKkiB,iBACAliB,KAAK4hB,QAAU5hB,KAAKkiB,cAAgB,GAErC,OADA7a,QAAQC,IAAI,0BACL5F,YAAW,kBAAMxB,EAAKiiB,cAAcrQ,EAAG,GAAE,KACzC9R,KAAKkiB,eAAiB,IAC7B7a,QAAQhB,MAAM,sBAEtB,CAGJ,GAAC,CAAA5G,IAAA,cAAAC,MAED,SAAYuR,GAAmB,IAAD7L,EAAA,KAC1B,GAAKpF,KAAK2hB,OAAV,CAIA,IAAIS,GADJnR,EAAmBA,GAAoBjR,KAAK9B,MAAM+S,mBACFxD,OAAOC,KAAKuD,GAAkBhK,MAAK,SAAArI,GAAE,OAAIqS,EAAiBrS,EAAG,IACzGwjB,GACApiB,KAAK9B,MAAMgK,OAAOma,OAAOD,EAAsBriB,QAAQ,kBAAmB,IAAK,cAAe,MACzFqI,MAAK,SAAAiF,GACFjI,EAAKpG,SAAS,CAACsiB,OAAO,EAAMC,OAAO,EAAMC,eAAe,IACxDpc,EAAKkd,cAAa,GACdjV,EAAO2U,SACP5c,EAAK4c,QAAU3U,EAAO2U,QACtB5c,EAAKmd,iBAAiBnd,EAAKzG,MAAME,OAEjCwI,QAAQhB,MAAM,2BAADvC,OAA4BuJ,EAAOhH,OAExD,GAdR,CAgBJ,GAAC,CAAA5G,IAAA,oBAAAC,MAED,WAAqB,IAAD2F,EAAA,KAChB,KAAKrF,KAAK4hB,SAAW5hB,KAAK9B,MAAM+S,oBAC5BjR,KAAK4hB,OAASzd,OAAOyd,QAChB5hB,KAAK4hB,QAEN,OADAva,QAAQC,IAAI,0BACLtH,KAAKmiB,eAAc,kBAAM9c,EAAKmd,mBAAmB,IAGhE,IAAKxiB,KAAK2hB,OAAQ,CACd3hB,KAAK9B,MAAMukB,kBAAoBziB,KAAK9B,MAAMukB,kBAAiB,kBAAMpd,EAAKsc,OAAOe,WAAWC,gBAAgBtd,EAAKsc,OAAOiB,eAAe,IAGnI,IAAMC,EAAkB7iB,KAAK4hB,OAAOkB,UAAUC,WAAWC,mBAAuC,qBAChGH,EAAgBhhB,OAAS7B,KAAK4hB,OAAOkB,UAAUC,WAAWE,aAAaC,OACvEL,EAAgBM,SAAU,EAC1BN,EAAgBO,SAAiC,IAAvBpjB,KAAK9B,MAAMklB,QACrCP,EAAgBQ,OAAQ,EACxBR,EAAgBS,IAAM,GACtBT,EAAgBU,4BAA6B,EAC7CV,EAAgBW,iBAAmBxjB,KAAK4hB,OAAOkB,UAAUC,WAAWU,qBAAqBC,OACzF1jB,KAAK4hB,OAAOkB,UAAUC,WAAWC,mBAAmBW,mBAAmBd,GAEvE7iB,KAAKsiB,cAAa,GAGlBtiB,KAAK2hB,OAAS3hB,KAAK4hB,OAAOD,OAAOiC,OAAO5jB,KAAK0hB,UAAW,CACpDmC,YAAa,KACbC,sBAAsB,EACtBC,iBAAiB,EACjBC,cAAehkB,KAAK9B,MAAM+lB,cAG9BjkB,KAAK2hB,OAAOuC,yBAAwB,SAAAtiB,GAAC,OACjCyD,EAAK1D,SAAS0D,EAAKsc,OAAOwC,WAAW,IAIzCnkB,KAAKokB,cAELpkB,KAAK2hB,OAAO0C,WAAWrkB,KAAK4hB,OAAO0C,OAAOC,QAAUvkB,KAAK4hB,OAAO4C,QAAQC,OAAO,kBAC3Epf,EAAKqf,aAAa,IAEtBhjB,YAAW,WACP2D,EAAKsf,cAActf,EAAK1G,MAAMmS,YAC9BzL,EAAKuf,SAAWvf,EAAKnH,MAAM0mB,SAC3Bvf,EAAK4e,YAAc5e,EAAKnH,MAAM+lB,YAC9B5e,EAAKwf,gBACT,GACJ,CACA,IAAMC,EAAU,CACZC,qBAAqB,EACrBjB,sBAAsB,EACtBC,iBAAiB,EACjB1C,SAAUrhB,KAAKrB,MAAM0iB,SACrBD,SAAUphB,KAAKrB,MAAMyiB,SACrBD,OAAQnhB,KAAKrB,MAAMwiB,QAGvBnhB,KAAKglB,iBAAiBF,GACtB9kB,KAAK2hB,OAAOvd,QACZpE,KAAK2hB,OAAOsD,SAASjlB,KAAK8hB,cACtB9hB,KAAK9B,MAAMgnB,mBACXllB,KAAK2hB,OAAOwD,aAAY,SAAAvjB,GAChBA,EAAEC,OAAOujB,aAA8C5W,IAApC5M,EAAEC,OAAOujB,OAAOC,iBACnChgB,EAAKnH,MAAMgnB,mBAAmBtjB,EAAEC,OAAOyJ,SAASga,WAAa,EAErE,IAEAtlB,KAAK2hB,OAAOwD,YAAY,KAEhC,GAEA,CAAA1lB,IAAA,mBAAAC,MAKA,SAAiBolB,GACTA,IACIA,EAAQ1D,UACRphB,KAAKulB,kBAAkBT,EAAQ1D,eAEV5S,IAArBsW,EAAQzD,UACRrhB,KAAK2hB,OAAO6D,cAAc,CAACnE,SAAUyD,EAAQzD,gBAExB7S,IAArBsW,EAAQW,UACRzlB,KAAK2hB,OAAO6D,cAAc,CAACE,SAAUZ,EAAQW,SAAW,KAAO,aAEzCjX,IAAtBsW,EAAQa,WACR3lB,KAAKsiB,aAAawC,EAAQa,gBAEPnX,IAAnBsW,EAAQ3D,QACRnhB,KAAK4hB,OAAOD,OAAOiE,SAASd,EAAQ3D,OAAS,UAAY,MAGrE,GAAC,CAAA1hB,IAAA,uBAAAC,MAED,WACQM,KAAK2hB,SACL3hB,KAAK9B,MAAMukB,kBAAoBziB,KAAK9B,MAAMukB,iBAAiB,MAC3DziB,KAAK2hB,OAAOkE,UACZ7lB,KAAK2hB,OAAS,KAEtB,GAIA,CAAAliB,IAAA,oBAAAC,MAIA,SAAkB0hB,GAGd,IAAM0E,EAAQ9lB,KAAK2hB,OAAOe,WACpBX,EAAQ+D,EAAM3B,WACd4B,EAAQD,EAAMC,IAAIC,KAElBC,EACa,kBAARF,GAAoBA,EAAI7hB,SAAS,KAClC6hB,EAAIzG,OAAO,EAAGyG,EAAItJ,YAAY,MAC9B,QAEJyJ,EACW,eAAb9E,EAA4B,KACR,eAAbA,EAA4B,KAAOA,EAG9C0E,EAAMD,UAIN,IAAMM,EAA4B,eAAb/E,GAA0C,eAAbA,EAA6B,aAAeA,EAExFgF,EAAWpmB,KAAK4hB,OAAOD,OAAO0E,YAChCtE,EACAoE,EACAnmB,KAAK4hB,OAAO0E,IAAIC,KAAK,CAACP,KAAK,GAADliB,OAAKmiB,GAAwBniB,OAAGyJ,KAAO,KAAAzJ,OAAIoiB,MAGzElmB,KAAK2hB,OAAO6E,SAASJ,EACzB,GAEA,CAAA3mB,IAAA,eAAAC,MAIA,SAAauI,GACT,IAAM6c,EAAU,CACZ2B,sBAAuBzmB,KAAKrB,MAAM2iB,QAAUrZ,EAC5Cye,oBAAqB1mB,KAAKrB,MAAM2iB,OAEpCthB,KAAK4hB,OAAOkB,UAAUC,WAAWC,mBAAmB2D,sBAAsB7B,EAC9E,GAEA,CAAArlB,IAAA,mBAAAC,MAGA,WAKI,IALsC,IAAD4F,EAAA,KAAxBshB,EAAiBnjB,UAAApE,OAAA,QAAAmP,IAAA/K,UAAA,GAAAA,UAAA,GAAG,GAC3BojB,EA9NH,wBAAwBC,KA8NeF,GAEpCG,EAAuB,GAAAjjB,OAAM8iB,EAAiB,SAC9CI,EAAgB,GACtBC,EAAA,EAAAC,EAAmBzZ,OAAOC,KAAK1N,KAAKgiB,SAAQiF,EAAAC,EAAA7nB,OAAA4nB,IAAE,CAAzC,IAAMjB,EAAIkB,EAAAD,GAGX,GAAIJ,EAAgB,CAChB,GAAa,gBAATb,EACA,SAEJ,GAAIA,EAAKjc,WAAW,qBAAuBic,IAASe,EAChD,QAER,CACAC,EAAc7f,KAAK,CACfggB,SAAUnB,EACVoB,QAASpnB,KAAKgiB,QAAQgE,IAE9B,CAKA,GAAIhmB,KAAK4hB,QAAU5hB,KAAK4hB,OAAOkB,UAAUC,WAAWC,mBAAmBqE,aACnErnB,KAAK4hB,OAAOkB,UAAUC,WAAWC,mBAAmBqE,aAAaL,QAC9D,GAAIhnB,KAAK4hB,QAAU5hB,KAAK4hB,OAAOkB,UAAUC,WAAWC,mBAAmBsE,YAAa,CACvF,IAAMC,EAAevnB,KAAK4hB,OAAOkB,UAAUC,WAAWC,mBAAmBwE,eACzER,EAAcngB,SAAQ,SAAAyc,GACbiE,EAAajE,EAAI6D,WAClB7hB,EAAKsc,OAAOkB,UAAUC,WAAWC,mBAAmBsE,YAAYhE,EAAKA,EAAI6D,SAEjF,GACJ,CACJ,GAEA,CAAA1nB,IAAA,uBAAAC,MAIA,SAAqBsF,GACjB,IAAMyiB,EAAYznB,KAAK2hB,OAAOiB,eACxB8E,EAAQ,IAAI1nB,KAAK4hB,OAAO+F,MAC1BF,EAAUG,gBACVH,EAAUI,YACVJ,EAAUK,cACVL,EAAUM,WAEd/nB,KAAK2hB,OAAOqG,aAAa,GAAI,CAAC,CAAEN,MAAOA,EAAO1iB,KAAMA,EAAMijB,kBAAkB,KAC5EjoB,KAAK2hB,OAAOvd,OAChB,GAAC,CAAA3E,IAAA,gBAAAC,MAED,SAAcsF,GAAO,IAADqO,EAAA,KACZqU,EAAQ1iB,GAAQhF,KAAK2hB,OAAOe,WAAWwF,YAAYljB,GACvD,GAAI0iB,GAASA,EAAMroB,OACfqoB,EAAM7gB,SAAQ,SAAAshB,GAAC,OAAI9U,EAAKsO,OAAOyG,aAAaD,EAAET,MAAM,IACpD1nB,KAAK2hB,OAAO0G,WAAWX,EAAM,GAAGA,MAAME,sBACnC,GAAI5nB,KAAK2hB,OAAQ,CACpB,IAAM2G,EAAMtoB,KAAK2hB,OAAO4G,cAAcjD,WAChCkD,EAAMxoB,KAAK2hB,OAAO4G,cAAcE,OACtCzoB,KAAK2hB,OAAOyG,aAAa,IAAIpoB,KAAK4hB,OAAO+F,MAAMW,EAAKE,EAAKF,EAAKE,GAClE,CACJ,GAAC,CAAA/oB,IAAA,iBAAAC,MAED,WAAkB,IAADoU,EAAA,KACb9T,KAAK0oB,YAAc1oB,KAAK0oB,aAAe,GACvC,IAAMA,EAAc,GAChB1oB,KAAK4kB,WACL8D,EAAYvhB,KAAK,CACbugB,MAAO,IAAI1nB,KAAK4hB,OAAO+F,MAAM3nB,KAAK4kB,SAASU,WAAa,EAAGtlB,KAAK4kB,SAAS+D,aAAe,EAAG3oB,KAAK4kB,SAASU,WAAa,EAAG,KACzHR,QAAS,CACL8D,aAAa,EACbtkB,UAAWtE,KAAK9B,MAAMijB,OAAS,wBAA0B,uBAGjEuH,EAAYvhB,KAAK,CACbugB,MAAO,IAAI1nB,KAAK4hB,OAAO+F,MAAM3nB,KAAK4kB,SAASU,WAAa,EAAG,EAAGtlB,KAAK4kB,SAASU,WAAa,EAAG,GAC5FR,QAAS,CACL8D,aAAa,EACbtkB,UAAWtE,KAAK9B,MAAMijB,OAAS,4BAA8B,4BAKrEnhB,KAAKikB,aACLjkB,KAAKikB,YAAYpd,SAAQ,SAAAgiB,GACrBH,EAAYvhB,KAAK,CACbugB,MAAO,IAAI5T,EAAK8N,OAAO+F,MAAMkB,EAAGjE,SAASU,WAAa,EAAG,EAAGuD,EAAGjE,SAASU,WAAa,EAAG,KACxFR,QAAS,CACL8D,aAAa,EACbE,qBAAsBhV,EAAK5V,MAAMijB,OAAS,uBAAyB,qBAG/E,IAEJnhB,KAAK2hB,SAAW3hB,KAAK0oB,YACjB1oB,KAAK2hB,OAAOoH,iBAAiB/oB,KAAK0oB,YAAaA,GACvD,GAAC,CAAAjpB,IAAA,gBAAAC,MAED,SAAcb,EAAMkjB,GAChB/hB,KAAKhB,SAAS,CAACH,KAAAA,IACfmB,KAAK8hB,aAAeC,GAAQ,GAC5B/hB,KAAK2hB,QAAU3hB,KAAK2hB,OAAOsD,SAASlD,GACpC/hB,KAAK2kB,cAAc3kB,KAAKiiB,YACxBjiB,KAAK6kB,iBAIL7kB,KAAKuiB,iBAAiB1jB,EAC1B,GAAC,CAAAY,IAAA,uBAAAC,MAED,SAAqB4lB,GACjB,GAAItlB,KAAK2hB,OAAQ,CACb,IAAMqH,EAAShpB,KAAK2hB,OAAOsH,qBACtBD,IAAWA,EAAO,IAAMA,EAAO,GAAGpB,gBAAkBtC,GAAcA,EAAa0D,EAAO,GAAGlB,gBAC1F9nB,KAAK2hB,OAAOuH,mBAAmB5D,EAEvC,CACJ,GAAC,CAAA7lB,IAAA,mCAAAC,MAED,SAAiCO,GAAY,IAADwU,EAAA,KAClCqQ,EAAU,CAAC,EACb9kB,KAAKrB,MAAME,OAASoB,EAAUpB,MAE9BmB,KAAKmpB,cAAclpB,EAAUpB,KAAMoB,EAAU8hB,MAI7CpS,KAAK8C,UAAUxS,EAAUgR,oBAAsBjR,KAAKyhB,sBACpDzhB,KAAKyhB,oBAAsB9R,KAAK8C,UAAUxS,EAAUgR,kBAC/CjR,KAAKrB,MAAM6iB,eACZxhB,KAAKokB,YAAYnkB,EAAUgR,mBAK9BhR,EAAUyS,SAAYzS,EAAU8hB,OAAS/hB,KAAK8hB,cAAgB7hB,EAAU8hB,OAAS/hB,KAAK2hB,OAAOwC,aAC9FnkB,KAAK8hB,aAAe7hB,EAAU8hB,KAC9B/hB,KAAK2hB,OAAOsD,SAASjlB,KAAK8hB,cAC1B9hB,KAAK6kB,iBACL7kB,KAAK4kB,UAAY5kB,KAAKopB,qBAAqBppB,KAAK4kB,SAASU,WAAa,IAGtErlB,EAAU6Q,aAAe9Q,KAAKiiB,aAC9BjiB,KAAKiiB,WAAahiB,EAAU6Q,WAC5B9Q,KAAK2kB,cAAc3kB,KAAKiiB,aAGxBtS,KAAK8C,UAAUxS,EAAU2kB,YAAcjV,KAAK8C,UAAUzS,KAAK4kB,WAC3DjV,KAAK8C,UAAUxS,EAAUgkB,eAAiBtU,KAAK8C,UAAUzS,KAAKikB,cAE9DjkB,KAAK4kB,SAAW3kB,EAAU2kB,SAC1B5kB,KAAKikB,YAAchkB,EAAUgkB,YAC7BjkB,KAAK6kB,iBACL7kB,KAAK2hB,QAAU3hB,KAAK4kB,UAAY5kB,KAAKopB,qBAAqBppB,KAAK4kB,SAASU,WAAa,IAE9E3V,KAAK8C,UAAUxS,EAAUgkB,eAAiBtU,KAAK8C,UAAUzS,KAAKikB,cACrEjkB,KAAKikB,YAAchkB,EAAUgkB,YAC7BjkB,KAAK6kB,kBACElV,KAAK8C,UAAUxS,EAAU2kB,YAAcjV,KAAK8C,UAAUzS,KAAK4kB,YAClE5kB,KAAK4kB,SAAW3kB,EAAU2kB,SAC1B5kB,KAAK6kB,iBACL7kB,KAAK2hB,QAAU3hB,KAAK4kB,UAAY5kB,KAAKopB,qBAAqBppB,KAAK4kB,SAASU,WAAa,IAIrFtlB,KAAKrB,MAAMyiB,YAAcnhB,EAAUmhB,UAAY,eAC/CphB,KAAKhB,SAAS,CAACoiB,SAAUnhB,EAAUmhB,UAAY,eAC/C0D,EAAQ1D,SAAWnhB,EAAUmhB,UAAY,cAClCphB,KAAKrB,MAAM0iB,YAAcphB,EAAUohB,WAAY,IACtDrhB,KAAKhB,SAAS,CAACqiB,SAAUphB,EAAUohB,WAAY,IAC/CyD,EAAQzD,SAAWphB,EAAUohB,UACtBrhB,KAAKrB,MAAMwiB,UAAYlhB,EAAUkhB,SAAU,KAClDnhB,KAAKhB,SAAS,CAACmiB,OAAQlhB,EAAUkhB,SAAU,IAC3C2D,EAAQ3D,OAASlhB,EAAUkhB,QAG/BnhB,KAAKglB,iBAAiBF,GAElB9kB,KAAK6hB,SAAW5hB,EAAU4hB,SAC1B7hB,KAAK6hB,OAAS5hB,EAAU4hB,OACpB7hB,KAAK6hB,SACLxa,QAAQC,IAAI,cAAgBtH,KAAK6hB,QACjCngB,YAAW,SAAAmgB,GACPpN,EAAK4U,qBAAqBxH,GAC1BngB,YAAW,kBAAM+S,EAAKvW,MAAMorB,YAAc7U,EAAKvW,MAAMorB,YAAY,GAAE,IACvE,GAAG,IAAKtpB,KAAK6hB,SAGzB,GAAC,CAAApiB,IAAA,WAAAC,MAED,SAAS6pB,EAAU3nB,GACV5B,KAAK9B,MAAMmjB,UACZrhB,KAAK9B,MAAMyD,UAAY3B,KAAK9B,MAAMyD,SAAS3B,KAAK2hB,OAAOwC,WAE/D,GAAC,CAAA1kB,IAAA,SAAAC,MAED,WAAU,IAAD2W,EAAA,KACL,OAAKrW,KAAK4hB,QAAW5hB,KAAK9B,MAAM+S,kBAQzBtQ,EAAAA,GAAAA,KAAA,OAAKoO,IAAK,SAAA/H,GAAE,OAAIqP,EAAKqL,UAAY1a,CAAE,EAAE7F,MAAO,CAACC,MAAO,OAAQyE,OAAQ,OAAQsO,SAAU,SAAU7I,SAAU,YAAY5K,UACvHV,KAAKrB,MAAM4iB,QAAS5gB,EAAAA,GAAAA,KAAC6oB,GAAAA,EAAG,CACtBtkB,KAAK,QACLL,MAAOhE,EAAAA,KAAAA,EAAO,+DACdM,MAAO,CAACsoB,OAAQ,GAAIzM,MAAO,GAAI5N,QAAS,GAAK9D,SAAU,WAAYoe,OAAQ,EAAG/hB,WAAY,MAAOhF,MAAO,SACxGA,MAAM,YAAWjC,UAACC,EAAAA,GAAAA,KAACgpB,EAAAA,IAAW,SAZlCjoB,YAAW,WACP2U,EAAKuL,OAASzd,OAAOyd,OACrBvL,EAAKuT,aACT,GAAG,KACI,KAUf,KAAC1I,CAAA,CAhba,CAASne,IAAAA,WAyc3B,M,uEC9aM8mB,GAAY,SAAAhsB,IAAAC,EAAAA,EAAAA,GAAA+rB,EAAAhsB,GAAA,IAAAG,GAAAC,EAAAA,EAAAA,GAAA4rB,GACd,SAAAA,EAAY3rB,GAAQ,IAADC,EAKb,OALaC,EAAAA,EAAAA,GAAA,KAAAyrB,IACf1rB,EAAAH,EAAAK,KAAA,KAAMH,IAMVI,aAAe,WACXH,EAAKD,MAAMK,SACf,EAPIJ,EAAKQ,MAAQ,CACTiZ,SAAU,KACVkS,OAAQ,IACV3rB,CACN,CAwDC,OAxDAqB,EAAAA,EAAAA,GAAAqqB,EAAA,EAAApqB,IAAA,SAAAC,MAKD,SAAOW,GAAQ,IAADH,EAAA,KACV8O,EAAAA,MAAAA,gBAAsBhP,KAAK9B,MAAM8G,MACjC,IAAM4S,EAAWvX,EAAMoZ,cAEvB/X,YAAW,WACPxB,EAAKlB,SAAS,CAAE8qB,OAAQjpB,EAAAA,KAAAA,EAAO,UAAW+W,SAAAA,IAC1ClW,YAAW,kBAAMxB,EAAKlB,SAAS,CAAE8qB,OAAQ,GAAIlS,SAAU,MAAO,GAAE,IACpE,GAAG,GACP,GAAC,CAAAnY,IAAA,SAAAC,MAED,WAAU,IAAD0F,EAAA,KACCb,EAAUvE,KAAK9B,MAAMqG,QAE3B,OAAOpE,EAAAA,GAAAA,MAACC,EAAAA,EAAM,CAEV7B,QAAS,SAAC8B,EAAOC,GAAM,OAAK,CAAK,EACjCC,SAAS,KACTgE,QAAS,CAAE4W,MAAO5W,EAAQwlB,QAC1BvpB,WAAS,EACTC,KAAMT,KAAK9B,MAAMuC,KACjB,kBAAgB,sBAAqBC,SAAA,EAErCC,EAAAA,GAAAA,KAACC,EAAAA,EAAW,CAAChC,GAAG,sBAAqB8B,SAAEG,EAAAA,KAAAA,EAAO,6BAC9CF,EAAAA,GAAAA,KAACG,EAAAA,EAAa,CACVyD,QAAS,CAAEiD,KAAMjD,EAAQ4Y,WAAYzc,UACrCC,EAAAA,GAAAA,KAAA,OACI/B,GAAG,cACH0F,UAAS,GAAAR,OAAKS,EAAQylB,SAAQ,KAAAlmB,OAA6B,SAAzB9D,KAAK9B,MAAM+rB,UAAuB,GAAK1lB,EAAQ2lB,eAAgBxpB,SACnGV,KAAK9B,MAAM8G,UAEjB7E,EAAAA,GAAAA,MAACqC,EAAAA,EAAa,CAAA9B,SAAA,EACVC,EAAAA,GAAAA,KAAC8B,EAAAA,EAAM,CAACvB,QAAQ,YAAYwB,QAAS,SAAArC,GAAK,OAAI+E,EAAKyT,OAAOxY,EAAM,EAAEsC,MAAM,YAAYC,WAAWjC,EAAAA,GAAAA,KAACmY,GAAAA,EAAQ,IAAGpY,SAAEG,EAAAA,KAAAA,EAAO,wBACpHF,EAAAA,GAAAA,KAAC8B,EAAAA,EAAM,CAACvB,QAAQ,YAAYwB,QAAS,kBAAM0C,EAAK9G,cAAc,EAAEqE,MAAM,UAAUC,WAAWjC,EAAAA,GAAAA,KAACmC,GAAAA,QAAU,IAAGpC,SAAEG,EAAAA,KAAAA,EAAO,YAElHF,EAAAA,GAAAA,KAACwpB,GAAAA,EAAM,CACHvrB,GAAG,SACHuC,MAAO,CAAEuoB,OAAQ,KACjBjpB,OAAQT,KAAKrB,MAAMmrB,OACnBM,UAAU,MACVxS,SAAU5X,KAAKrB,MAAMiZ,SAAUyS,YAAU,EAAA3pB,SACxC,SAAA4pB,GAAA,IAAGC,EAAeD,EAAfC,gBAAe,OACf5pB,EAAAA,GAAAA,KAAC6pB,GAAAA,GAAIC,EAAAA,GAAAA,IAAAA,EAAAA,GAAAA,GAAA,GAAKF,GAAe,IAAEG,QAAS,IAAIhqB,UACpCC,EAAAA,GAAAA,KAACgqB,GAAAA,EAAK,CAAAjqB,UACFC,EAAAA,GAAAA,KAAA,KAAG2D,UAAWC,EAAQqmB,WAAWlqB,SAAE0E,EAAKzG,MAAMmrB,aAE/C,KAGfnpB,EAAAA,GAAAA,KAAA,YAAU/B,GAAG,aAAayiB,UAAQ,EAAClgB,MAAO,CAAEmK,SAAU,WAAYuf,MAAO,MAAQC,UAAW,EAAG,iBAAYprB,MAAOM,KAAK9B,MAAM8G,YAlC7H,gBAqCZ,KAAC6kB,CAAA,CA/Da,CAAS9mB,IAAAA,WAkE3B8mB,GAAakB,aAAe,CACxBtqB,MAAM,GAUV,QAAe4C,EAAAA,EAAAA,IAjGA,SAAAC,GAAK,MAAK,CACrB0mB,SAAU,CACN5oB,MAAO,OACPyE,OAAQ,OACRsO,SAAU,QAEd+V,cAAe,CACXviB,WAAY,aAEhBoiB,OAAQ,CACJlkB,OAAQ,OAEZ+kB,WAAY,CACR1W,QAAS5Q,EAAM0C,QAAQ,IAE3BmX,UAAW,CACPA,UAAW,UAElB,GA+ED,CAAkC0M,ICtF5BmB,GAAY,SAAAntB,IAAAC,EAAAA,EAAAA,GAAAktB,EAAAntB,GAAA,IAAAG,GAAAC,EAAAA,EAAAA,GAAA+sB,GACd,SAAAA,EAAY9sB,GAAQ,IAADC,EAIb,OAJaC,EAAAA,EAAAA,GAAA,KAAA4sB,IACf7sB,EAAAH,EAAAK,KAAA,KAAMH,IACDS,MAAQ,CACTqG,KAAM,IACR7G,CACN,CAiDC,OAjDAqB,EAAAA,EAAAA,GAAAwrB,EAAA,EAAAvrB,IAAA,oBAAAC,MAED,WACIgC,YAAW,WACP,IACIyC,OAAO8mB,SAASC,eAAe,oBAAoB9mB,OACvD,CAAE,MAAOxC,GAET,CACJ,GAAG,IACP,GAAC,CAAAnC,IAAA,eAAAC,MAED,WACIM,KAAK9B,MAAMK,SACf,GAAC,CAAAkB,IAAA,WAAAC,MAED,WACIM,KAAK9B,MAAMK,QAAQyB,KAAKrB,MAAMqG,KAClC,GAAC,CAAAvF,IAAA,WAAAC,MAED,SAASkC,GACL5B,KAAKhB,SAAS,CAAEgG,KAAMpD,EAAEC,OAAOnC,OACnC,GAAC,CAAAD,IAAA,SAAAC,MAED,WAAU,IAADQ,EAAA,KACCqE,EAAUvE,KAAK9B,MAAMqG,QAE3B,OAAOpE,EAAAA,GAAAA,MAACC,EAAAA,EAAM,CACV7B,QAAS,SAAC8B,EAAOC,GAAM,OAAK,CAAK,EACjCC,SAAS,KACTgE,QAAS,CAAE4W,MAAO5W,EAAQwlB,QAC1BvpB,WAAS,EACTC,KAAMT,KAAK9B,MAAMuC,KACjB,kBAAgB,sBAAqBC,SAAA,EAErCC,EAAAA,GAAAA,KAACC,EAAAA,EAAW,CAAChC,GAAG,sBAAqB8B,SAAEG,EAAAA,KAAAA,EAAO,oBAC9CF,EAAAA,GAAAA,KAACG,EAAAA,EAAa,CAACwD,UAAWC,EAAQ4mB,WAAWzqB,UACzCC,EAAAA,GAAAA,KAAA,YACIU,WAAS,EACTzC,GAAG,mBACH0F,UAAWC,EAAQylB,SACnBroB,SAAU,SAAAC,GAAC,OAAI1B,EAAKyB,SAASC,EAAE,OAGvCzB,EAAAA,GAAAA,MAACqC,EAAAA,EAAa,CAAA9B,SAAA,EACVC,EAAAA,GAAAA,KAAC8B,EAAAA,EAAM,CAACvB,QAAQ,YAAYa,UAAW/B,KAAKrB,MAAMqG,KAAMtC,QAAS,SAAArC,GAAK,OAAIH,EAAK1B,UAAU,EAAEmE,MAAM,UAAUC,WAAWjC,EAAAA,GAAAA,KAACkC,GAAAA,QAAM,IAAGnC,SAAEG,EAAAA,KAAAA,EAAO,aACzIF,EAAAA,GAAAA,KAAC8B,EAAAA,EAAM,CAACE,MAAM,OAAOzB,QAAQ,YAAYwB,QAAS,kBAAMxC,EAAK5B,cAAc,EAAEsE,WAAWjC,EAAAA,GAAAA,KAACmC,GAAAA,QAAU,IAAGpC,SAAEG,EAAAA,KAAAA,EAAO,gBAG3H,KAACmqB,CAAA,CAvDa,CAASjoB,IAAAA,WA0D3BioB,GAAaD,aAAe,CACxBtqB,MAAM,GASV,ICrFI2qB,GDqFJ,IAAe/nB,EAAAA,EAAAA,IAnFA,SAAAC,GAAK,MAAK,CACrB0mB,SAAU,CACN5oB,MAAO,oBACPyE,OAAQ,OACRwlB,OAAQ,QAEZtB,OAAQ,CACJlkB,OAAQ,OAEZslB,WAAY,CACRtlB,OAAQ,OACRsO,SAAU,UAEjB,GAsED,CAAkC6W,ICxF9BM,IAAwB,EACxBC,IAAoB,EACpBC,GAAc,KAEdC,GAAgB,GAGpB,SAASC,GAAUlkB,EAAMxC,EAAMwD,EAAKmjB,GAKhC,GAJAA,EAAUA,GAAW,GACA,UAAjBnkB,EAAKokB,SAAwC,UAAjBpkB,EAAKokB,UACjCpjB,EAAMhB,EAAK5I,IAEM,UAAjB4I,EAAKokB,SAAwC,UAAjBpkB,EAAKokB,QACjC,IAAK,IAAIhiB,EAAI,EAAGA,EAAIpC,EAAKqkB,WAAWxsB,OAAQuK,IAAK,CAC7C,IAAM+I,GAAOnL,EAAKqkB,WAAWjiB,GAAGlK,OAAS,IAAIkL,cACT,SAAhCpD,EAAKqkB,WAAWjiB,GAAGkiB,UAAgC,QAARnZ,GAAyB,SAARA,IACvDnL,EAAKukB,WAAavkB,EAAKwkB,WAAa,IAAIphB,cAAc1G,SAASc,IAChE2mB,EAAQxkB,KAAKqB,EAGzB,CAKJ,OAHAhB,EAAKykB,WAAWplB,SAAQ,SAAAqlB,GAAI,OACxBR,GAAUQ,EAAMlnB,EAAMwD,EAAKmjB,EAAQ,IAEhCA,CACX,CAAC,IAGKQ,GAAa,SAAAtuB,IAAAC,EAAAA,EAAAA,GAAAquB,EAAAtuB,GAAA,IAAAG,GAAAC,EAAAA,EAAAA,GAAAkuB,GACf,SAAAA,EAAYjuB,GAAQ,IAADC,EA6BM,OA7BNC,EAAAA,EAAAA,GAAA,KAAA+tB,IACfhuB,EAAAH,EAAAK,KAAA,KAAMH,IAEDkuB,QAAU,KACfjuB,EAAKkuB,iBAAmB,KACxBluB,EAAK8hB,QAAU,KACf9hB,EAAKmc,QAAUnW,OAAOmW,QAEtBnc,EAAKQ,MAAQ,CACT4sB,kBAAAA,GACAD,sBAAAA,GACA5Y,SAAS,EACT4L,QAAS,GACTjY,MAAO,GACP4jB,UAAW9rB,EAAKD,MAAM+rB,UACtBqC,WAAY,GACZC,YAAY,EACZzb,WAAY3S,EAAKD,MAAM4S,YAAc,IAEzC3S,EAAK2jB,aAAe5jB,EAAM6jB,MAAQ,GAElC5jB,EAAKquB,aAAe,KACpBruB,EAAKsuB,YAAc,KAEnBtuB,EAAKuuB,aAAevuB,EAAKwuB,SAAS/a,MAAIC,EAAAA,EAAAA,GAAA1T,IAEtCA,EAAKyuB,YAAc,GACnBzuB,EAAK8jB,WAAa9jB,EAAKD,MAAM4S,YAAc,GAC3C3S,EAAK0uB,WAAa,KAClB1uB,EAAK2uB,gBAAgB3uB,CACzB,CAsEC,OAtEAqB,EAAAA,EAAAA,GAAA2sB,EAAA,EAAA1sB,IAAA,eAAAC,MAwED,SAAasF,GACT,GAAIhF,KAAKqsB,iBAAkB,CACvB,IACM7e,EAAMke,GADA1rB,KAAKsa,QAAQyS,IAAIC,eAAehtB,KAAKqsB,kBACtBrnB,EAAK4F,eAC1BqiB,EAAYjtB,KAAKqsB,iBAAiBa,eAClC7f,EAAS,GAEf,OADA4f,EAAUtkB,QAAO,SAAAkB,GAAC,OAAI2D,EAAItJ,SAAS2F,EAAEjL,GAAG,IAAEiI,SAAQ,SAAAgD,GAAC,OAAIwD,EAAOlG,KAAK0C,EAAE,IAC9DwD,CACX,CACJ,GAAC,CAAA5N,IAAA,WAAAC,MAED,WACI,IAAMytB,EAASntB,KAAKiiB,YAAcjiB,KAAKotB,aAAaptB,KAAKiiB,YACrDkL,GAAUA,EAAO9tB,QACjBW,KAAKwsB,aAAeW,EACpBntB,KAAKwsB,aAAa3lB,SAAQ,SAAAgD,GAAC,OAAIA,EAAEwjB,WAAW,IAC5CrtB,KAAKstB,iBAAmBxO,KAAKyO,OACtBvtB,KAAKwsB,eAEZxsB,KAAKwsB,aAAa3lB,SAAQ,SAAAgD,GAAC,OAAIA,EAAE2jB,cAAc,IAC/CxtB,KAAKwsB,aAAe,KAE5B,GAAC,CAAA/sB,IAAA,mCAAAC,MAED,SAAiCO,GAAY,IAADC,EAAA,KACpCD,EAAUwtB,SAAWztB,KAAK4sB,cAAgB3sB,EAAUwtB,UACpDztB,KAAK4sB,YAAc3sB,EAAUwtB,QAC7B/rB,YAAW,kBAAMxB,EAAK0sB,YAAc,EAAE,GAAE,KACf,UAArB5sB,KAAK4sB,YACL5sB,KAAK0tB,oBAAmB,SAACrb,EAAKsb,GACrBtb,GAGDsb,GAAYztB,EAAK0tB,kBAAkBD,GACnCztB,EAAKlB,SAAS,CAACqH,MAAO,CAACrB,KAAMnE,EAAAA,KAAAA,EAAOwR,GAAMxN,MAAOhE,EAAAA,KAAAA,EAAO,sBACxDX,EAAK2sB,WAAac,GAJlBztB,EAAKlB,SAAS,CAACsf,QAASzd,EAAAA,KAAAA,EAAO,OAMvC,IAC4B,WAArBb,KAAK4sB,YACZ5sB,KAAK6tB,eACuB,WAArB7tB,KAAK4sB,aACZ5sB,KAAK8tB,gBAIT7tB,EAAU6Q,aAAe9Q,KAAKiiB,aAC9BjiB,KAAKiiB,WAAahiB,EAAU6Q,WAC5B9Q,KAAK+tB,YAGL/tB,KAAKrB,MAAMsrB,YAAchqB,EAAUgqB,WACnCjqB,KAAKhB,SAAS,CAACirB,UAAWhqB,EAAUgqB,YAAY,kBAAM/pB,EAAK8tB,kBAAkB,IAG7EhuB,KAAK8hB,eAAiB7hB,EAAU8hB,OAChC/hB,KAAK8hB,aAAe7hB,EAAU8hB,MAAQ,GACtC/hB,KAAKiuB,WACLjuB,KAAK+tB,WAEb,GAAC,CAAAtuB,IAAA,gBAAAC,MAED,WAAiB,IAAD0F,EAAA,KAEZ,IAAKkmB,GAAuB,CACxB,IAAM4C,EAAW/pB,OAAO8mB,SAASkD,cAAc,UAC/CD,EAASE,aAAa,OAAQ,mBAC9BF,EAASE,aAAa,MAAO,yBAA2BvtB,EAAAA,KAAAA,cAAqB,OAG7EqtB,EAASG,OAAS,WACd/C,IAAwB,EACxBlmB,EAAKpG,SAAS,CAACssB,sBAAAA,IACnB,EAEA4C,EAASI,mBAAqB,WACF,aAApBlpB,EAAKmpB,aACLjD,IAAwB,EACxBlmB,EAAKpG,SAAS,CAACssB,sBAAAA,KAEvB,EACAnnB,OAAO8mB,SAASuD,qBAAqB,QAAQ,GAAGC,YAAYP,EAChE,CACA,IAAK3C,GAAmB,CACpB,IAAMmD,EAAavqB,OAAO8mB,SAASkD,cAAc,UACjDO,EAAWN,aAAa,OAAQ,mBAChCM,EAAWN,aAAa,MAAO,0BAA4BvtB,EAAAA,KAAAA,cAAqB,OAEhF6tB,EAAWL,OAAS,WAChB9C,IAAoB,EACpBnmB,EAAKpG,SAAS,CAACusB,kBAAAA,IACnB,EAEAmD,EAAWJ,mBAAqB,WACJ,aAApBlpB,EAAKmpB,aACLhD,IAAoB,EACpBnmB,EAAKpG,SAAS,CAACusB,kBAAAA,KAEvB,EACApnB,OAAO8mB,SAASuD,qBAAqB,QAAQ,GAAGC,YAAYC,EAChE,CACJ,GAAC,CAAAjvB,IAAA,WAAAC,MAED,WACIM,KAAKsa,QAAQqU,UAAU3uB,KAAKqsB,iBAChC,GAAC,CAAA5sB,IAAA,iBAAAC,MAED,SAAesF,GAIX,IAFA,IAWQ+c,EAXFvD,GADNxZ,EAAOA,GAAQ,IACIpF,MAAM,kBACrBgvB,EAAM,GACDC,EAAIrQ,EAAMnf,OAAS,EAAGwvB,GAAK,EAAGA,IACnC,GAAiC,OAA7BrQ,EAAMqQ,GAAG1c,UAAU,EAAG,GAAa,CACnCyc,EAAMpQ,EAAMqQ,GAAG1c,UAAU,GACzB,KACJ,CAEJ,GAA4B,SAAxByc,EAAIzc,UAAU,EAAG,GACjB,OAAOyc,EAGP,IACI7M,EAAO5d,OAAO2qB,mBAAmB3qB,OAAO4qB,KAAKH,GACjD,CAAE,MAAOhtB,GACLmgB,EAAO,KACP1a,QAAQhB,MAAM,kBAAoBuoB,GAClCvnB,QAAQhB,MAAMzE,EAClB,CACA,OAAOmgB,CAEf,GAAC,CAAAtiB,IAAA,oBAAAC,MAED,SAAkBsvB,GACd,IAAK,IAAIjoB,EAAI,IAAKA,EAAI,IAAMA,GAAQ,IAChCrF,YAAW,kBAAMstB,EAAMC,QAAQ,GAAEloB,GACjCrF,YAAW,kBAAMstB,EAAME,UAAU,GAAEnoB,EAAI,IAE/C,GAAC,CAAAtH,IAAA,+BAAAC,MAED,WACI,GAAIM,KAAKqsB,iBAGL,IAFA,IACI2C,EADA7B,EAASntB,KAAKqsB,iBAAiBa,eAE1BnmB,EAAI,EAAIioB,EAAQ7B,EAAOpmB,GAAKA,IACjC,GAAIioB,EAAMG,WAGN,IAFA,IAAMC,EAAcJ,EAAMK,iBAAgB,GACtCC,OAAI,EACCC,EAAI,EAAID,EAAOF,EAAYG,GAAKA,IACrC,IAAKD,EAAKE,iBAAkB,CAExBR,EAAMnJ,UACN,KACJ,CAKpB,GAAC,CAAApmB,IAAA,qBAAAC,MAED,SAAmBoS,GACf,IAAI2d,EACJ,GAAKzvB,KAAKqsB,kBAAoE,IAAhDrsB,KAAKqsB,iBAAiBa,eAAe7tB,OAAnE,CAIA,IAAIsuB,EAAW3tB,KAAK0vB,6BAUpB,OATI/B,EACA8B,EAAc,0BAEd9B,EAAW3tB,KAAK2vB,gCAEZF,EAAc,yBAIlB9B,GACI7b,EACAA,EAAG2d,EAAa9B,GAEhB3tB,KAAK4tB,kBAAkBD,IAEpB,IAGX7b,KAEO,EAtBP,CAFIA,GAAMA,EAAG,kBAyBjB,GAEA,CAAArS,IAAA,6BAAAC,MACA,WAGI,IAFA,IACIsvB,EADE7B,EAASntB,KAAKqsB,iBAAiBa,eAE5BnmB,EAAI,EAAIioB,EAAQ7B,EAAOpmB,GAAKA,IAGjC,IAFA,IAAMqoB,EAAcJ,EAAMK,iBAAgB,GACtCC,OAAI,EACCC,EAAI,EAAID,EAAOF,EAAYG,GAAKA,IACrC,IAAKD,EAAKM,eAAkBN,EAAKvrB,OAAS/D,KAAKsa,QAAQuV,aAAeP,EAAKvrB,OAAS/D,KAAKsa,QAAQwV,gBAAkBR,EAAKE,mBAAqBF,EAAKS,UAC9I,OAAOf,EAInB,OAAO,IACX,GAEA,CAAAvvB,IAAA,6BAAAC,MACA,WAGI,IAFA,IACIsvB,EADE7B,EAASntB,KAAKqsB,iBAAiBa,eAE5BnmB,EAAI,EAAIioB,EAAQ7B,EAAOpmB,GAAKA,IACjC,GAAIioB,EAAMgB,QACN,OAAOhB,EAGf,OAAO,IACX,GAAC,CAAAvvB,IAAA,qBAAAC,MAED,SAAmBuwB,GACf,IAAIlO,EAAO/hB,KAAKsa,QAAQ4V,WAAWC,gBAAgBnwB,KAAKqsB,kBACxD,IAAK4D,EAAQ,CACTlO,GAAQ,KACR,IAAMqO,EAAMpwB,KAAKsa,QAAQyS,IAAIC,eAAehtB,KAAKqsB,kBAC3CrnB,EAAOhF,KAAKsa,QAAQyS,IAAIsD,UAAUD,GACxCrO,GAAQ,KAAOuO,KAAKC,mBAAmBvrB,GAC3C,CAEA,OAAO+c,CACX,GAAC,CAAAtiB,IAAA,eAAAC,MAED,WACI,IAAI4sB,EACJ,GAAItsB,KAAKsa,QAAQhQ,SAAU,CACvB,IAAMkmB,EAAWxwB,KAAKsa,QAAQyS,IAAI0D,WAAWzwB,KAAKsa,QAAQhQ,UACtDtK,KAAKsa,QAAQoW,YAAc1wB,KAAKsa,QAAQqW,WACxC3wB,KAAKsa,QAAQyS,IAAI6D,WAAWJ,GAGhC,IAAMK,EAAK7wB,KAAKsa,QAAQhQ,SAASwmB,yBACjCN,EAASpC,aAAa,IAAKpuB,KAAKsa,QAAQhQ,SAASymB,KAAOF,EAAGG,EAAIH,EAAGG,GAClER,EAASpC,aAAa,IAAKyC,EAAGI,GAE9B3E,EAAatsB,KAAKsa,QAAQyS,IAAImE,gBAAgBV,EAClD,KAAO,CACH,IAAMJ,EAAMpwB,KAAKsa,QAAQyS,IAAIC,eAAehtB,KAAKqsB,kBACjDC,EAAatsB,KAAKsa,QAAQyS,IAAImE,gBAAgBd,EAClD,CACApwB,KAAKhB,SAAS,CAACstB,WAAAA,GACnB,GAAC,CAAA7sB,IAAA,eAAAC,MAED,WACIM,KAAKhB,SAAS,CAACutB,YAAY,GAC/B,GAAC,CAAA9sB,IAAA,iBAAAC,MAED,SAAekvB,GAEX,GADAA,GAAOA,GAAO,IAAIroB,OAEd,IACSqoB,EAAI7kB,WAAW,UAChB6kB,EAAM,6CAA+CA,EAAM,UAE/D,IAAIuC,EAAYvC,EAAI7uB,QAAQ,UAAW,IAAIkS,MAAM,gCACjD,GAAIkf,EAAW,CACX,IAAIC,EAAOpxB,KAAKsa,QAAQ+W,MAAMzC,IAAI0C,kBAAkB,cAAgBH,EAAU,GAAK,gBACnF,GAAIC,EAAM,CACN,IAAIG,EAAQH,EAAKnF,YAAcmF,EAAKnF,WAAW,IAAMmF,EAAKnF,WAAW,GAAGA,WACxE,GAAIsF,EACA,IAAK,IAAIxqB,EAAI,EAAGA,EAAIwqB,EAAMlyB,OAAQ0H,IAC9BwqB,EAAMxqB,GAAGnI,IAAMoB,KAAKqsB,iBAAiBmF,eAAeD,EAAMxqB,GAAGnI,GAGzE,CACJ,CACAgwB,EAAMA,EAAI7uB,QAAQ,UAAW,IAAIA,QAAQ,8BAA+B,IACxEoE,OAAO4L,QAAQ0hB,SAAU,EACzB,IAAIC,EAAY1xB,KAAKsa,QAAQyS,IAAI4E,UAAU/C,GAC3C,GAA2B,QAAvB8C,EAAU5F,SACV,IAAK,IAAIjiB,EAAI,EAAGA,EAAI6nB,EAAUhxB,SAASrB,OAAQwK,IAC3C7J,KAAKqsB,iBAAiBuF,MAAMF,EAAUhxB,SAASmJ,SAGnD7J,KAAKqsB,iBAAiBuF,MAAMF,GAGhCvtB,OAAO4L,QAAQ0hB,SAAU,EAGzBzxB,KAAK6xB,kBACT,CAAE,MAAOjwB,GACL5B,KAAKhB,SAAS,CAACqH,MAAO,CAACrB,KAAMpD,EAAGiD,MAAOhE,EAAAA,KAAAA,EAAO,kBAClD,CAER,GAAC,CAAApB,IAAA,WAAAC,MAED,WAAY,IAAD2F,EAAA,KACP,GAAKrF,KAAKqsB,iBAAV,CAIArsB,KAAK8xB,eAAgB,EACrB9xB,KAAKqsB,iBAAiBtM,QAEtB,IACI,IAAM6O,EAAM5uB,KAAK+xB,eAAe/xB,KAAK8hB,eAAiB,mDACtD3d,OAAO4L,QAAQ0hB,SAAU,EACzB,IAAMrB,EAAMpwB,KAAKsa,QAAQyS,IAAI4E,UAAU/C,GACvC5uB,KAAKsa,QAAQyS,IAAIiF,eAAe5B,EAAKpwB,KAAKqsB,kBAC1CloB,OAAO4L,QAAQ0hB,SAAU,CAC7B,CAAE,MAAO7vB,GACLyF,QAAQhB,MAAMzE,GACdF,YAAW,kBAAM2D,EAAKrG,SAAS,CAACqH,MAAOxF,EAAAA,KAAAA,EAAO,iCAAiC,GACnF,CACAa,YAAW,kBAAM2D,EAAKysB,eAAgB,CAAK,GAAE,IAf7C,CAgBJ,GAAC,CAAAryB,IAAA,mBAAAC,MAED,WACIM,KAAKiyB,+BACLjyB,KAAKhB,SAAS,CAAC0T,SAAS,IACxB1S,KAAK2B,UACT,GAAC,CAAAlC,IAAA,qBAAAC,MAAA,eAAAwyB,GAAAC,EAAAA,GAAAA,IAAAC,EAAAA,GAAAA,KAAAC,MAED,SAAAC,IAAA,IAAAhX,EAAAhW,EAAA,YAAA8sB,EAAAA,GAAAA,KAAAG,MAAA,SAAAC,GAAA,cAAAA,EAAAC,KAAAD,EAAAE,MAAA,UACS1yB,KAAKosB,QAAQ,CAADoG,EAAAE,KAAA,eAAAF,EAAAG,OAAA,iBAMhB,GAHG3yB,KAAK4yB,YACL1Z,aAAalZ,KAAK4yB,WAClB5yB,KAAK4yB,UAAY,OAGjB5yB,KAAKqsB,iBAAiB,CAADmG,EAAAE,KAAA,eAAAF,EAAAG,OAAA,iBAKA,GADzBxuB,OAAO0uB,iBAAiB,SAAU7yB,KAAK0sB,cAAc,GAAO8F,EAAAM,GAC9CtH,GAAWgH,EAAAM,GAAA,CAAAN,EAAAE,KAAA,gBAAAF,EAAAE,KAAA,GAAW1yB,KAAK+yB,aAAY,QAAAP,EAAAM,GAAAN,EAAAQ,KAAA,QAArDxH,GAAWgH,EAAAM,GACX1H,GAAcA,IAAeprB,KAAKsa,QAAQyS,IAAI4E,UAAUnG,IAExDxrB,KAAKqsB,iBAAmBrsB,KAAKsa,QAAQ2Y,OACjCjzB,KAAKosB,QACL,CACIznB,MAAO,wBACPsb,QAASmL,GACT8H,KAAM,CACFC,UAAY,EACZC,OAAY,EACZC,WAAY,EACZC,SAAY,EACZC,SAAY,GACZC,WAAY,KAEhBC,KAAM,CACFC,YAAY,EACZnkB,MAAM,EACN6jB,OAAO,GAEXO,UAAU,EACVC,KAAM,CACF5tB,QAAY,GACZ3G,OAAY,EACZw0B,OAAY,OACZC,MAAY,GAEhBC,QAAQ,IAIhB5vB,OAAO4L,QAAU,CACbsc,iBAAkBrsB,KAAKqsB,kBAI3BrsB,KAAKqsB,iBAAiB2H,mBAAkB,SAAAC,GACpC,GAAI3uB,EAAKknB,cAAgB1N,KAAKyO,MAAQjoB,EAAKgoB,iBAAmB,IAAK,CAC/D,IAAML,EAAY3nB,EAAK+mB,iBAAiBa,eACxC5nB,EAAKknB,aAAe,KACpBS,EAAUpmB,SAAQ,SAAAgD,GAAC,OAAIA,EAAE2jB,cAAc,GAC3C,CAEIyG,EAAYlwB,OAASuB,EAAKgV,QAAQ4Z,OAAOC,IAAMF,EAAYlwB,OAASuB,EAAKgV,QAAQ4Z,OAAOE,SAGxF9uB,EAAKwsB,gBAGTxsB,EAAKmnB,aAAevT,aAAa5T,EAAKmnB,aACtCnnB,EAAKmnB,YAAc/qB,YAAW,WAC1B4D,EAAKmnB,YAAc,KACnBnnB,EAAKusB,kBACT,GAAG,MACP,IACA7xB,KAAKiuB,WACLjuB,KAAK2sB,WAECrR,EAAU2P,SAASoJ,uBAAuB,qBAAqB,GACrEr0B,KAAKosB,QAAQqC,YAAYnT,GAEzBtb,KAAKguB,mBACLtsB,YAAW,kBAAM4D,EAAKyoB,UAAU,GAAE,KAAM,yBAAAyE,EAAA8B,OAAA,GAAAhC,EAAA,UAC3C,yBAAAJ,EAAAruB,MAAA,KAAAJ,UAAA,EAhFA,IAgFA,CAAAhE,IAAA,mBAAAC,MAED,WACI,IAAMiI,EAAasjB,SAASoJ,uBAAuB,yBAAyB,GAC/C,SAAzBr0B,KAAKrB,MAAMsrB,WACNtiB,EAAW4sB,iBACZ5sB,EAAW4sB,eAAiB,CACxBC,OAAQ7sB,EAAWxG,MAAMqzB,OACzBC,KAAM9sB,EAAWxG,MAAMszB,OAI/B9sB,EAAWxG,MAAMqzB,OAAS,UAC1B7sB,EAAWxG,MAAMszB,KAAO,WACjB9sB,EAAW4sB,iBAClB5sB,EAAWxG,MAAMqzB,OAAS7sB,EAAW4sB,eAAeC,OACpD7sB,EAAWxG,MAAMszB,KAAO9sB,EAAW4sB,eAAeE,KAE1D,GAAC,CAAAh1B,IAAA,uBAAAC,MAED,WACSM,KAAKqsB,mBAGVrsB,KAAKqsB,iBAAiBxG,UACtB7lB,KAAKqsB,iBAAmB,KACxBrsB,KAAKysB,aAAevT,aAAalZ,KAAKysB,aACtCzsB,KAAKysB,YAAc,KACnBtoB,OAAOuwB,oBAAoB,SAAU10B,KAAK0sB,cAC9C,GAAC,CAAAjtB,IAAA,WAAAC,MAED,WACIM,KAAK8hB,aAAe9hB,KAAK20B,qBACzB30B,KAAK9B,MAAMyD,UAAY3B,KAAK9B,MAAMyD,SAAS3B,KAAK8hB,aACpD,GAAC,CAAAriB,IAAA,aAAAC,MAAA,eAAAk1B,GAAAzC,EAAAA,GAAAA,IAAAC,EAAAA,GAAAA,KAAAC,MAED,SAAAwC,EAAiBC,GAAK,IAAA9tB,EAAAwkB,EAAA2B,EAAAlpB,EAAA6N,EAAAjT,EAAAk2B,EAAA1hB,EAAA,YAAA+e,EAAAA,GAAAA,KAAAG,MAAA,SAAAyC,GAAA,cAAAA,EAAAvC,KAAAuC,EAAAtC,MAAA,OAGmB,GAD/B1rB,EAAM7C,OAAO8mB,SAASC,eAAe,WACvCM,EAAcxkB,GAAMA,EAAGiuB,UACV,CAADD,EAAAtC,KAAA,WACPoC,EAAM,CAADE,EAAAtC,KAAA,eAAAsC,EAAArC,OAAA,SACC,IAAI5e,SAAQ,SAAAC,GAAO,OACtBtS,YAAW,kBAAMsS,EAAQX,EAAK0f,YAAW,GAAM,GAAE,IAAI,KAAC,OAErB,OAArC1rB,QAAQhB,MAAM,uBAAuB2uB,EAAArC,OAAA,SAC9B,IAAE,OAKjB,GAFAnH,EAAcA,EAAYzrB,QAAQ,YAAY,SAACsX,EAAG6d,GAAE,OAAK/wB,OAAOgxB,IAAID,EAAG,IAEnEl1B,KAAKsa,QAAQ8a,aAAc,CAG3B,IAFIjI,EAAS,GACPlpB,EAAOpD,EAAAA,KAAAA,cACJiR,EAAK,EAAGA,EAAK9R,KAAKsa,QAAQ8a,aAAa/1B,OAAQyS,IAAM,CAI1D,IAAWijB,KAHLl2B,EAAOmB,KAAKsa,QAAQ8a,aAAatjB,GAEvCqb,GAAU,mBAAqBntB,KAAKsa,QAAQ+a,MAAMx2B,GAAMoF,GAAQ,aAAejE,KAAKsa,QAAQzb,GAAMy2B,IAAM,KACvFt1B,KAAKsa,QAAQzb,GAAMsuB,OAC5BntB,KAAKsa,QAAQzb,GAAMsuB,OAAOzM,eAAeqU,KACzC5H,GAAUntB,KAAKsa,QAAQzb,GAAMsuB,OAAO4H,IAG5C5H,GAAU,aACd,CACA3B,EAAcA,EAAYzrB,QAAQ,wDAAyDotB,EAC/F,CAAC,OAAA6H,EAAArC,OAAA,SAEMnH,GAAW,yBAAAwJ,EAAAV,OAAA,GAAAO,EAAA,UACrB,gBAAAU,GAAA,OAAAX,EAAA/wB,MAAA,KAAAJ,UAAA,EAnCA,IAmCA,CAAAhE,IAAA,sBAAAC,MAED,WAAuB,IAADoU,EAAA,KAClB,OAAO9T,KAAKrB,MAAM2f,SACd3d,EAAAA,GAAAA,KAAC60B,EAAAA,QAAa,CAEVxwB,KAAoC,kBAAvBhF,KAAKrB,MAAM2f,QAAuBte,KAAKrB,MAAM2f,QAAQtZ,KAAOhF,KAAKrB,MAAM2f,QACpFzZ,MAAqC,kBAAvB7E,KAAKrB,MAAM2f,QAAuBte,KAAKrB,MAAM2f,QAAQzZ,MAAQ,GAC3EtG,QAAS,kBAAMuV,EAAK9U,SAAS,CAACsf,QAAS,IAAI,GAHvC,iBAKR,IACR,GAAC,CAAA7e,IAAA,oBAAAC,MAED,WAAqB,IAAD+U,EAAA,KAChB,OAAOzU,KAAKrB,MAAM0H,OACd1F,EAAAA,GAAAA,KAACyG,GAAW,CAERpC,KAAkC,kBAArBhF,KAAKrB,MAAM0H,MAAqBrG,KAAKrB,MAAM0H,MAAMrB,KAAKiI,WAAajN,KAAKrB,MAAM0H,MAC3FxB,MAAmC,kBAArB7E,KAAKrB,MAAM0H,MAAqBrG,KAAKrB,MAAM0H,MAAMxB,MAAQ,GACvEtG,QAAS,WACDkW,EAAKoY,aACLpY,EAAKmZ,kBAAkBnZ,EAAKoY,YAC5BpY,EAAKoY,WAAa,MAEtBpY,EAAKzV,SAAS,CAACqH,MAAO,IAC1B,GATI,eAUR,IACR,GAAC,CAAA5G,IAAA,qBAAAC,MAED,WAAsB,IAAD2W,EAAA,KACjB,OAAOrW,KAAKrB,MAAM2tB,YAAa3rB,EAAAA,GAAAA,KAACkpB,GAAY,CAAoBvmB,MAAOtD,KAAKrB,MAAMsrB,UAAW1rB,QAAS,kBAAM8X,EAAKrX,SAAS,CAACstB,WAAY,IAAI,EAAEtnB,KAAMhF,KAAKrB,MAAM2tB,YAA7G,gBAA6H,IAClL,GAAC,CAAA7sB,IAAA,qBAAAC,MAED,WAAsB,IAADkX,EAAA,KACjB,OAAO5W,KAAKrB,MAAM4tB,YAAa5rB,EAAAA,GAAAA,KAACqqB,GAAY,CAAqBzsB,QAAS,SAAAyG,GACtE4R,EAAK5X,SAAS,CAACutB,YAAY,IAC3B3V,EAAK6e,eAAezwB,EACxB,GAHiD,gBAG1C,IACX,GAAC,CAAAvF,IAAA,SAAAC,MAED,WAAU,IAADsX,EAAA,KACL,OAAIhX,KAAKrB,MAAM2sB,uBAAyBtrB,KAAKrB,MAAM4sB,mBAC/CvrB,KAAK4yB,UAAYlxB,YAAW,WACxBsV,EAAK4b,UAAY,KACjB5b,EAAK0e,oBACT,GAAG,KAEI,EACH/0B,EAAAA,GAAAA,KAAA,OAAsBoO,IAAK,SAAA/H,GAAE,OAAIgQ,EAAKoV,QAAUplB,CAAE,EAAE7F,MAAO,CAEvDC,MAAO,OACPyE,OAAQ,OAERyF,SAAU,aALL,cAOTtL,KAAK21B,sBACL31B,KAAK41B,oBACL51B,KAAK61B,qBACL71B,KAAK81B,uBAGF,IAEf,IAAC,EAAAr2B,IAAA,SAAAC,MAvlBD,SAAcq2B,EAAKC,EAAUpR,GACzB,IAAMqR,EAAYhL,SAASkD,cAAc,UACzC,IACI8H,EAAUzrB,IAAMurB,EAEhBE,EAAU5H,OAAS2H,EACnBC,EAAU3H,mBAAqB0H,EAC/BC,EAAUC,QAAUF,GAEnBpR,GAAYzgB,OAAO8mB,SAASkL,MAAM1H,YAAYwH,EACnD,CAAE,MAAOr0B,GACLyF,QAAQhB,MAAM,eAAiB0vB,EAAM,KAAOn0B,GAC5Co0B,GAAYA,GAChB,CACJ,GAAC,CAAAv2B,IAAA,cAAAC,MAED,SAAmBqQ,EAASimB,GACxB,IAAKjmB,IAAYA,EAAQ1Q,OACrB,OAAO22B,GAAYA,IAEvB,IAAMzsB,EAAUwG,EAAQlQ,OACgB,IAApC4rB,GAAcrlB,QAAQmD,IACtBkiB,GAActkB,KAAKoC,GACnB4iB,EAAciK,OAAO,iBAAmB7sB,EAAU,eAAe,WAAC,OAC9D7H,YAAW,kBAAMyqB,EAAckK,YAAYtmB,EAASimB,EAAS,GAAE,EAAE,KAErEt0B,YAAW,kBAAMyqB,EAAckK,YAAYtmB,EAASimB,EAAS,GAAE,EAEvE,GAAC,CAAAv2B,IAAA,oBAAAC,MAED,SAAyB42B,EAAUN,GAE/B,IAAMO,EAAS,GACf,IAAK,IAAM33B,KAAM03B,EACRA,EAAS5V,eAAe9hB,IACxB03B,EAAS13B,IACTA,EAAGqT,MAAM,uBACY,YAAtBqkB,EAAS13B,GAAImF,MAKbuyB,EAAS13B,GAAI0J,QAAUguB,EAAS13B,GAAI0J,OAAO8jB,UAC3C/kB,QAAQC,IAAI,4BAA8BgvB,EAAS13B,GAAI0J,OAAOzJ,MAC9D03B,EAAOpvB,KAAKmvB,EAAS13B,GAAI0J,OAAOzJ,OAIxCstB,EAAckK,YAAYE,EAAQP,EACtC,GAAC,CAAAv2B,IAAA,aAAAC,MAED,SAAkBsF,GAgBd,OAdIb,OAAOqyB,UACI,SAASC,GAChB,OAAS,IAAItyB,OAAOqyB,WAAcE,gBAAgBD,EAAQ,WAC9D,EACsC,oBAAxBtyB,OAAOwyB,eAAgC,IAAIxyB,OAAOwyB,cAAc,oBACnE,SAASF,GAChB,IAAIG,EAAS,IAAIzyB,OAAOwyB,cAAc,oBAGtC,OAFAC,EAAOC,MAAQ,QACfD,EAAOE,QAAQL,GACRG,CACX,EAEW,WAAa,OAAO,IAAM,GAEzB5xB,EACpB,KAACmnB,CAAA,CArGc,CAASppB,IAAAA,WAkoB5B,M,YC/nBMg0B,GAAkB,SAAAl5B,IAAAC,EAAAA,EAAAA,GAAAi5B,EAAAl5B,GAAA,IAAAG,GAAAC,EAAAA,EAAAA,GAAA84B,GACpB,SAAAA,EAAY74B,GAAQ,IAADC,EAQd,OARcC,EAAAA,EAAAA,GAAA,KAAA24B,IACf54B,EAAAH,EAAAK,KAAA,KAAMH,IACDS,MAAQ,CACT+T,SAAS,EACTwD,OAAQ/X,EAAKD,MAAMgY,SAElB/X,EAAKQ,MAAMuX,QAAU/X,EAAKD,MAAM84B,WACjC74B,EAAKQ,MAAMuX,OAAS,kBACvB/X,CACL,CAoEC,OApEAqB,EAAAA,EAAAA,GAAAu3B,EAAA,EAAAt3B,IAAA,oBAAAC,MAED,WACIgC,YAAW,WACP,IACIyC,OAAO8mB,SAASC,eAAe,oBAAoB9mB,OACvD,CAAE,MAAOxC,GAET,CACJ,GAAG,IACP,GAAC,CAAAnC,IAAA,eAAAC,MAED,WACIM,KAAK9B,MAAMK,SAAQ,EACvB,GAAC,CAAAkB,IAAA,WAAAC,MAED,WACQM,KAAK9B,MAAM84B,WAAah3B,KAAKrB,MAAMuX,OAAOhS,SAAS,YAGnDlE,KAAK9B,MAAMK,QAAQyB,KAAKrB,MAAMuX,OAEtC,GAAC,CAAAzW,IAAA,WAAAC,MAED,SAASA,GACLM,KAAKhB,SAAS,CAAC0T,SAAS,EAAMwD,OAAQxW,GAC1C,GAAC,CAAAD,IAAA,SAAAC,MAED,WAAU,IAADQ,EAAA,KACCqE,EAAUvE,KAAK9B,MAAMqG,QAE3B,OAAOpE,EAAAA,GAAAA,MAACC,EAAAA,EAAM,CACV7B,QAAS,SAAC8B,EAAOC,GAAM,OAAK,CAAK,EACjCC,SAAS,KACTgE,QAAS,CAAC4W,MAAO5W,EAAQwlB,QACzBvpB,WAAS,EACTC,MAAM,EACN,kBAAgB,sBAAqBC,SAAA,EAErCC,EAAAA,GAAAA,KAACC,EAAAA,EAAW,CAAChC,GAAG,sBAAqB8B,SAAEG,EAAAA,KAAAA,EAAO,sBAC9CV,EAAAA,GAAAA,MAACW,EAAAA,EAAa,CAACwD,UAAWC,EAAQ4mB,WAAWzqB,SAAA,CACxCV,KAAK9B,MAAMwF,OAASvD,EAAAA,GAAAA,MAAA,OAAqBmE,UAAWC,EAAQb,KAAKhD,SAAA,EAC9DC,EAAAA,GAAAA,KAAA,QAAM2D,UAAWC,EAAQ0yB,UAAUv2B,SAAEG,EAAAA,KAAAA,EAAO,gBAC3Cb,KAAK9B,MAAMwF,MACZ/C,EAAAA,GAAAA,KAAA,QAAM2D,UAAWC,EAAQ0yB,UAAUv2B,SAAC,QAHV,cAK9BC,EAAAA,GAAAA,KAACu2B,GAAqB,CAClBC,YAAan3B,KAAK9B,MAAMi5B,YACxBlmB,iBAAkBjR,KAAK9B,MAAM+S,iBAC7B3M,UAAWC,EAAQylB,SACnB7oB,MAAO,CAAC0E,OAAQ7F,KAAK9B,MAAMwF,KAAO,oBAAsB,QAExD7E,KAAM,UACNqJ,OAAQlI,KAAK9B,MAAMgK,OACnBmZ,UAAU,EACV+B,SAAS,EACT1Q,QAAS1S,KAAKrB,MAAM+T,QACpBqP,KAAM/hB,KAAKrB,MAAMuX,OACjBiL,OAAiC,SAAzBnhB,KAAK9B,MAAM+rB,UACnBtoB,SAAU,SAAA4nB,GAAQ,OAAIrpB,EAAKyB,SAAS4nB,EAAS,EAC7CnI,SAAU,cATN,oBAYZjhB,EAAAA,GAAAA,MAACqC,EAAAA,EAAa,CAAA9B,SAAA,EACVC,EAAAA,GAAAA,KAAC8B,EAAAA,EAAM,CAACvB,QAAQ,YAAYwB,QAAS,kBAAMxC,EAAK1B,UAAU,EAAEmE,MAAM,UAAUC,WAAWjC,EAAAA,GAAAA,KAACy2B,GAAAA,QAAQ,IAAG12B,SAAEG,EAAAA,KAAAA,EAAO,WAC5GF,EAAAA,GAAAA,KAAC8B,EAAAA,EAAM,CAACE,MAAM,OAAOzB,QAAQ,YAAYwB,QAAS,kBAAMxC,EAAK5B,cAAc,EAAEsE,WAAWjC,EAAAA,GAAAA,KAACmC,GAAAA,QAAU,IAAGpC,SAAEG,EAAAA,KAAAA,EAAO,iBAG3H,KAACk2B,CAAA,CA9EmB,CAASh0B,IAAAA,WA6FjC,IAAeM,EAAAA,EAAAA,IArHA,SAAAC,GAAK,MAAK,CACrB0mB,SAAU,CACN5oB,MAAO,oBACPiqB,OAAQ,QAEZtB,OAAQ,CACJlkB,OAAQ,OAEZslB,WAAY,CACRtlB,OAAQ,OACRsO,SAAU,UAEdzQ,KAAM,CACFf,MAA8B,SAAvBW,EAAMsE,QAAQgV,KAAkB,QAAU,QACjD/W,OAAQ,GACRzE,MAAO,OACP+B,SAAU,IAEd8zB,UAAW,CACPt0B,MAA8B,SAAvBW,EAAMsE,QAAQgV,KAAkB,QAAU,QACjDxZ,WAAY,QAEnB,GA+FD,CAAkC2zB,ICrIlC,GAA+B,4BAA/B,GAAyE,2BAAzE,GAA+G,wB,YCA/G,GAA+B,4BAA/B,GAAgF,kCAAhF,GAA8H,yB,YCExHM,GAAa,CAAC,EAEdC,GAAsB,SAAHhN,GAA2D,IAArDiN,EAAQjN,EAARiN,SAAUjzB,EAASgmB,EAAThmB,UAAWiF,EAAO+gB,EAAP/gB,QAASrB,EAAMoiB,EAANpiB,OAAQxF,EAAO4nB,EAAP5nB,QACjE80B,GAAoBC,EAAAA,EAAAA,UAAS,IAAGC,GAAAluB,EAAAA,EAAAA,GAAAguB,EAAA,GAA3BzB,EAAG2B,EAAA,GAAEC,EAAMD,EAAA,GAUhB,IARAE,EAAAA,EAAAA,YAAU,WACFruB,GAAWrB,IACXmvB,GAAW9tB,GAAW8tB,GAAW9tB,IAAYrB,EAAOC,UAAU,kBAADrE,OAAmByF,IAChF8tB,GAAW9tB,GAASnB,MAAK,SAAAC,GAAG,IAAAwvB,EAAA,OACrB,OAAHxvB,QAAG,IAAHA,GAAW,QAARwvB,EAAHxvB,EAAKC,cAAM,IAAAuvB,OAAR,EAAHA,EAAanuB,OAAQiuB,EAAO,iBAAD7zB,OAAkByF,EAAO,KAAAzF,OAAIuE,EAAIC,OAAOoB,MAAO,IAEtF,GAAG,CAACH,EAASrB,IAETqB,EACA,OAAO5I,EAAAA,GAAAA,KAAA,OAAK+B,QAAS,SAAAd,GAAC,OAAIc,GAAWA,EAAQd,EAAE,EAAE4I,IAAKurB,GAAO,GAAIzxB,UAAWA,EAAWmG,IAAI,KAE3F,IAAMqtB,EAAUC,GAAMR,GAAY,QAClC,OAAO52B,EAAAA,GAAAA,KAACm3B,EAAO,CACXxzB,UAAWA,EACX5B,QAAS,SAAAd,GAAC,OAAIc,GAAWA,EAAQd,EAAE,GAG/C,EAEA01B,GAAoBvM,aAAe,CAC/BzmB,UAAW,KACXizB,SAAU,QAGd,UCxBMS,GAAW,SAAH1N,GAAA,IAAMzrB,EAAIyrB,EAAJzrB,KAAMD,EAAE0rB,EAAF1rB,GAAIq5B,EAAM3N,EAAN2N,OAAQvuB,EAAI4gB,EAAJ5gB,KAAMH,EAAO+gB,EAAP/gB,QAASrB,EAAMoiB,EAANpiB,OAAQ2C,EAAayf,EAAbzf,cAAehG,EAAKylB,EAALzlB,MAAOqzB,EAAW5N,EAAX4N,YAAW,OAAO/3B,EAAAA,GAAAA,MAAA,OACjG0K,cAAeA,EACfqtB,YAAaA,EAEbrzB,MAAOhE,EAAAA,KAAAA,EAAOgE,GACdP,UAAW0K,EAAAA,MAAAA,KAAWmpB,GAAkBF,GAAUE,GAAwB,SAAWv5B,GAAI8B,SAAA,EAEzFC,EAAAA,GAAAA,KAAC22B,GAAmB,CAACC,SAAU7tB,EAAMpF,UAAW6zB,GAAe5uB,QAASA,EAASrB,OAAQA,KACzFvH,EAAAA,GAAAA,KAAA,QAAAD,SACK7B,EAAOgC,EAAAA,KAAAA,EAAOhC,GAAQ,OANtBD,EAQF,EAEPo5B,GAASjN,aAAe,CACpBlsB,KAAM,GACNo5B,QAAQ,EACRr5B,GAAI,GACJiM,cAAe,WAAQ,GAQ3B,UChCA,GAA4B,yBAA5B,GAAuE,+BAAvE,GAAoH,2BAApH,GAA0J,wBAA1J,GAA6L,wBAA7L,GAAmO,2B,WCD5N,SAASutB,GAASv5B,EAAMw5B,EAAWC,GAEtC,MACS,YADDz5B,GAEgB4rB,EAAAA,GAAAA,IAAAA,EAAAA,GAAAA,GAAA,GACT4N,GAAS,IAAAE,EAAAA,GAAAA,GAAA,GACX15B,GAAI4rB,EAAAA,GAAAA,IAAAA,EAAAA,GAAAA,GAAA,GACE4N,EAAUx5B,IAAK,IAAA05B,EAAAA,GAAAA,GAAA,GACjBD,GAAmBnlB,EAAAA,EAAAA,GAAOklB,EAAUx5B,GAAMy5B,SAMnC7N,EAAAA,GAAAA,IAAAA,EAAAA,GAAAA,GAAA,GACT4N,GAAS,IAAAE,EAAAA,GAAAA,GAAA,GACX15B,GAAIsU,EAAAA,EAAAA,GAAOklB,EAAUx5B,KAItC,CCpBO,SAAS25B,GAAc35B,EAAMw5B,EAAWC,EAAqB9vB,GAChE,OAAQ3J,GACJ,IAAK,UAGL,IAAK,aAED,OADAw5B,EAAUx5B,GAAMy5B,GAAuBD,EAAUx5B,GAAMy5B,GAAqB3vB,QAAO,SAAA3B,GAAE,OAAIA,EAAGwB,MAAQA,CAAG,IAChG6vB,EACX,QAEI,OADAA,EAAUx5B,GAAQw5B,EAAUx5B,GAAM8J,QAAO,SAAA3B,GAAE,OAAIA,EAAGwB,MAAQA,CAAG,IACtD6vB,EAEnB,C,4BCXA,IAAgB,UAAY,yBAAyB,SAAW,wBAAwB,gBAAkB,+BAA+B,aAAe,4BAA4B,uBAAyB,sCAAsC,SAAW,wBAAwB,UAAY,yBAAyB,UAAY,yBAAyB,YAAc,2BAA2B,SAAW,wBAAwB,eAAiB,8BAA8B,UAAY,yBAAyB,OAAS,sBAAsB,QAAU,uBAAuB,YAAc,2BAA2B,eAAiB,8BAA8B,UAAY,yBAAyB,UAAY,yBAAyB,SAAW,wBAAwB,QAAU,uBAAuB,cAAgB,8B,4DCAtzB,GAAuB,oBAAvB,GAAoD,sBAApD,GAAiF,oBCO3EI,GAAe,SAAHnO,GAA6E,IAAvE9pB,EAAS8pB,EAAT9pB,UAAW0E,EAAIolB,EAAJplB,KAAMxC,EAAO4nB,EAAP5nB,QAASvB,EAAKmpB,EAALnpB,MAAOmD,EAASgmB,EAAThmB,UAAW5E,EAAK4qB,EAAL5qB,MAAOg5B,EAAMpO,EAANoO,OAAQhvB,EAAI4gB,EAAJ5gB,KAC/E,OAAO/I,EAAAA,GAAAA,KAAC8B,GAAAA,OAAM,CACVvB,QAAQ,WACRyB,MAAM,UACND,QAASA,EACTlC,UAAWA,EACXW,MAAOA,EACPmD,UAAW0K,EAAAA,MAAAA,KAAWmpB,GAAU7zB,EAAWo0B,EAASP,GAAa,IACjEr2B,OAAO,SACPoD,KAAMA,EAAKxE,SACbgJ,GAAO/I,EAAAA,GAAAA,KAACg4B,EAAAA,KAAU,CAACr0B,UAAW6zB,GAAU3tB,IAAKd,IAAWhK,GAC9D,EAEA+4B,GAAa1N,aAAe,CACxBrrB,MAAO,GACP4E,UAAW,KACXpD,QAAS,WACTgE,KAAM,SACN1E,WAAW,EACXk4B,QAAQ,GAUZ,UCpCA,GAAuB,oBCOjBE,GAAiB,SAAHtO,GAAmF,IAA7EplB,EAAIolB,EAAJplB,KAAMxF,EAAK4qB,EAAL5qB,MAAcmF,GAAFylB,EAALnpB,MAAYmpB,EAALzlB,OAAOlD,EAAQ2oB,EAAR3oB,SAAU2C,EAASgmB,EAAThmB,UAAWu0B,EAAWvO,EAAXuO,YAAa92B,EAAQuoB,EAARvoB,SACnFy1B,GAA0CC,EAAAA,EAAAA,WAAS,GAAMC,GAAAluB,EAAAA,EAAAA,GAAAguB,EAAA,GAAlDsB,EAAapB,EAAA,GAAEqB,EAAgBrB,EAAA,GAEtC,OAAOv3B,EAAAA,GAAAA,MAAA64B,GAAAA,SAAA,CAAAt4B,SAAA,EACHC,EAAAA,GAAAA,KAACs4B,GAAAA,SAAQ,CACLl3B,SAAUA,EACVm3B,QAASC,QAAQN,EAAcn5B,EAAQo5B,GAEvCx0B,UAAW0K,EAAAA,MAAAA,KAAWmpB,GAAU7zB,GAChC3C,SAAU,SAAAC,GACNi3B,GAAeE,EAAiBn3B,EAAEC,OAAOq3B,SACzCv3B,EAASC,EAAEC,OAAOq3B,QACtB,EACAh0B,KAAMA,IAETL,GAAS,OAElB,EAEA+zB,GAAe7N,aAAe,CAC1BrrB,OAAO,EACPqC,UAAU,EACVgC,KAAM,KACNsC,MAAO,GACP/B,UAAW,KACXwb,OAAO,EACPsZ,OAAQ,CAAC,EACTl4B,QAAS,WACTgE,KAAM,SACNiF,UAAW,KACXkvB,oBAAqB,KACrB13B,SAAU,WAAQ,EAClBnB,WAAW,EACXQ,aAAc,GACd63B,aAAa,EACbv3B,MAAO,OAcX,QAAeg4B,EAAAA,EAAAA,MAAKV,ICxDpB,IAAgB,KAAO,qBCSjBW,GAAc,SAAHjP,GAAoK,IAA9JjpB,EAASipB,EAATjpB,UAAWb,EAAS8pB,EAAT9pB,UAAWuB,EAAQuoB,EAARvoB,SAAUy3B,EAASlP,EAATkP,UAAWC,EAAInP,EAAJmP,KAAMz4B,EAAYspB,EAAZtpB,aAAcM,EAAKgpB,EAALhpB,MAAO+E,EAAKikB,EAALjkB,MAAOnB,EAAIolB,EAAJplB,KAAMhE,EAAOopB,EAAPppB,QAASxB,EAAK4qB,EAAL5qB,MAAOqE,EAAIumB,EAAJvmB,KAAM5C,EAAKmpB,EAALnpB,MAAOQ,EAAQ2oB,EAAR3oB,SAAU2C,EAASgmB,EAAThmB,UAAWu0B,EAAWvO,EAAXuO,YAAanvB,EAAI4gB,EAAJ5gB,KACrK8tB,GAAkCC,EAAAA,EAAAA,UAAS,IAAGC,GAAAluB,EAAAA,EAAAA,GAAAguB,EAAA,GAAvCkC,EAAShC,EAAA,GAAEiC,EAAYjC,EAAA,GAC9B,OAAO/2B,EAAAA,GAAAA,KAACM,GAAAA,UAAS,CACboF,QAASA,EACThF,UAAWA,EACXb,UAAWA,EACXc,MAAOA,EACPS,SAAUA,EACVb,QAASA,EACTs4B,UAAWA,EACXC,KAAMA,EACN/5B,MAAOm5B,EAAcn5B,EAAQg6B,EAC7B31B,KAAMA,EACNyC,WAAYH,EACZlF,MAAOA,EACPmD,UAAW0K,EAAAA,MAAAA,KAAWmpB,GAAAA,KAAU7zB,GAChCtD,aAAcA,EACdW,SAAU,SAAAC,IACLi3B,GAAec,EAAa/3B,EAAEC,OAAOnC,OACtCiC,EAASC,EAAEC,OAAOnC,MACtB,EACAk6B,WAAY,CACRxuB,aAAc1B,GACV/I,EAAAA,GAAAA,KAAC0K,GAAAA,EAAc,CAACC,SAAS,MAAK5K,UAACC,EAAAA,GAAAA,KAACg4B,EAAAA,KAAU,CAACr0B,UAAW6zB,GAAAA,KAAU3tB,IAAKd,MACnE,MAEV5H,OAAO,SACPoD,KAAMA,GAEd,EAEAq0B,GAAYxO,aAAe,CACvBrrB,MAAO,GACPqE,KAAM,OACNsC,MAAO,GACP/B,UAAW,KACXwb,OAAO,EACPsZ,OAAQ,CAAC,EACTl4B,QAAS,WACTgE,KAAM,SACNiF,UAAW,KACXkvB,oBAAqB,KACrB13B,SAAU,WAAQ,EAClBnB,WAAW,EACXQ,aAAc,GACd63B,aAAa,EACbx3B,WAAW,EACXo4B,KAAM,GAcV,UCjEMI,IAAYx2B,EAAAA,EAAAA,GAAW,CACzBmE,KAAM,CACF1F,OAAQ,SACR,iCAAkC,CAC9B+J,UAAW,EACX9F,aAAc,GAElB,QAAS,CACLpD,MAAO,sBAEX,oBAAqB,CACjBA,MAAO,WAEX,sBAAuB,CACnBA,MAAO,WAEX,8BAA+B,CAC3Bm3B,kBAAmB,WAEvB,+BAAgC,CAC5BA,kBAAmB,WAEvB,qCAAsC,CAClCA,kBAAmB,aAvBbz2B,CA0BfrB,GAAAA,aAEG+3B,GAAiB,SAAHzP,GAAoH,IAA9G0P,EAAQ1P,EAAR0P,SAAUt6B,EAAK4qB,EAAL5qB,MAAOm5B,EAAWvO,EAAXuO,YAAa3wB,EAAMoiB,EAANpiB,OAAQrD,EAAKylB,EAALzlB,MAAOo1B,EAAI3P,EAAJ2P,KAAM1wB,EAAO+gB,EAAP/gB,QAASpI,EAAKmpB,EAALnpB,MAAOQ,EAAQ2oB,EAAR3oB,SAAU2C,EAASgmB,EAAThmB,UAAW41B,EAAc5P,EAAd4P,eAC9G1C,GAAkCC,EAAAA,EAAAA,UAAS/3B,GAAS,SAAQg4B,GAAAluB,EAAAA,EAAAA,GAAAguB,EAAA,GAArDkC,EAAShC,EAAA,GAAEiC,EAAYjC,EAAA,GAC9ByC,GAA8B1C,EAAAA,EAAAA,UAAS,IAAG2C,GAAA5wB,EAAAA,EAAAA,GAAA2wB,EAAA,GAAnCrV,EAAOsV,EAAA,GAAEC,EAAUD,EAAA,GAe1B,OAbAxC,EAAAA,EAAAA,YAAU,WACN1vB,GAAUA,EAAOc,oBAAoBO,GAChCnB,MAAK,SAAAhJ,GACF,IAAMk7B,EAAWl7B,EAAUkD,KAAI,SAAA+F,GAAG,MAAK,CAAC3I,MAAO2I,EAAIG,IAAIzI,QAAQ,kBAAmB,IAAK8E,MAAOwD,EAAIG,IAAIzI,QAAQ,kBAAmB,IAAI,IAC7G,IAApBu6B,EAASj7B,OACT66B,EAAeI,EAAS,GAAG56B,OAE3B46B,EAASC,QAAQ,CAAC76B,MAAO6J,EAAS1E,MAAOhE,EAAAA,KAAAA,EAAO,SAEpDw5B,EAAWC,EACf,GACR,GAAG,CAACpyB,EAAQqB,EAAS2wB,KAEd/5B,EAAAA,GAAAA,MAAC05B,GAAS,CACbv1B,UAAWA,EACX9D,WAAS,EACTW,MAAOA,EAAMT,SAAA,EAEbC,EAAAA,GAAAA,KAACwB,GAAAA,OAAM,CACHjB,QAAQ,WACRxB,OAAQm5B,EAAcn5B,EAAQg6B,IAAc,IAC5Cl5B,WAAS,EACTw5B,SAAUA,EACVQ,YAAa,SAAClwB,GAAQ,OAAK0vB,GAAY1vB,EAASxK,KAAOwK,EAASxK,KAAK,MAAQwK,CAAQ,EACrF3I,SAAU,SAAAC,IACLi3B,GAAec,EAAa/3B,EAAEC,OAAOnC,OACtCiC,EAASC,EAAEC,OAAOnC,MACtB,EACA+6B,MAAOR,GAAOt5B,EAAAA,GAAAA,KAACqK,GAAAA,MAAK,CAACnM,KAAMo7B,EAAMr7B,GAAIq7B,EAAO,aAAgBt5B,EAAAA,GAAAA,KAACqK,GAAAA,MAAK,CAACnM,KAAMo7B,IAASv5B,SAEjFokB,EAAQxiB,KAAI,SAAA4E,GAAI,OACb/G,EAAAA,GAAAA,MAACoC,GAAAA,SAAQ,CAACpB,MAAO,CAACu5B,aAAa,iBAA4Ch7B,MAAOwH,EAAKxH,OAAS,IAAIgB,SAAA,CAAEG,EAAAA,KAAAA,EAAOqG,EAAKrC,OAAQqC,EAAKyzB,SAAUh6B,EAAAA,GAAAA,KAAA,OAAAD,SAAMwG,EAAKyzB,WAA9F,OAASzzB,EAAKxH,MAAyG,OAErLiB,EAAAA,GAAAA,KAACi6B,GAAAA,eAAc,CAAAl6B,SAAEG,EAAAA,KAAAA,EAAOgE,OAEhC,EAEAk1B,GAAehP,aAAe,CAC1BrrB,MAAO,GACP4E,UAAW,KACXwb,OAAO,EACP+Y,aAAa,GAYjB,UC1FA,GAAoM,4BAApM,GAA8O,2B,YCOxOgC,GAAc,SAAHvQ,GAAqH,IAA/G7pB,EAAI6pB,EAAJ7pB,KAAMlC,EAAO+rB,EAAP/rB,QAASmC,EAAQ4pB,EAAR5pB,SAAUo6B,EAAgBxQ,EAAhBwQ,iBAAkBC,EAAgBzQ,EAAhByQ,iBAAkBC,EAAO1Q,EAAP0Q,QAAS12B,EAASgmB,EAAThmB,UAAW22B,EAAS3Q,EAAT2Q,UAAWC,EAAY5Q,EAAZ4Q,aAC/G1D,GAAwBC,EAAAA,EAAAA,UAASyD,GAAaxD,GAAAluB,EAAAA,EAAAA,GAAAguB,EAAA,GAAzC93B,EAAKg4B,EAAA,GAAEzS,EAAQyS,EAAA,GAEpB,OAAOv3B,EAAAA,GAAAA,MAACC,GAAAA,OAAM,CACVK,KAAMA,EACNF,SAAS,KACT46B,sBAAsB,EACtB58B,QAASA,EACTgG,QAAS,CAAC4W,MAAOgd,IACjB7zB,UAAW6zB,GAAiBz3B,SAAA,EAE5BP,EAAAA,GAAAA,MAACW,GAAAA,cAAa,CAAAJ,SAAA,CACTu6B,IAAat6B,EAAAA,GAAAA,KAAC44B,GAAW,CACtBj1B,UAAWA,EACXtD,aAAa,MACbR,WAAS,EACTU,QAAQ,WACRgE,KAAK,SACLu0B,KAAM,GACND,WAAS,EACT95B,MAAOA,EACPiC,SAAUsjB,EACV4T,aAAW,KAEboC,GAAav6B,MAEnBP,EAAAA,GAAAA,MAACqC,GAAAA,cAAa,CAAA9B,SAAA,EACVC,EAAAA,GAAAA,KAAC8B,EAAAA,EAAM,CAACC,QAAS,kBAAMs4B,EAAQC,EAAYv7B,EAAQ,KAAK,EAAGwB,QAAQ,YAAYyB,MAAM,UAASjC,SACzF06B,GAAAA,QAAAA,EAAON,MAEZn6B,EAAAA,GAAAA,KAAC8B,EAAAA,EAAM,CAACE,MAAM,OAAOD,QAASnE,EAAS2C,QAAQ,YAAWR,SACrD06B,GAAAA,QAAAA,EAAOL,UAIxB,EAEAF,GAAY9P,aAAe,CACvBtqB,MAAM,EACNu6B,QAAS,WAAQ,EACjBz8B,QAAS,WAAQ,EACjBw8B,iBAAkB,SAClBD,iBAAkB,MAYtB,UC7DA,GAAuB,oBCQjBO,GAAe,SAAH/Q,GAA6H,IAAvH0P,EAAQ1P,EAAR0P,SAAUt6B,EAAK4qB,EAAL5qB,MAAOm5B,EAAWvO,EAAXuO,YAAah0B,EAAKylB,EAALzlB,MAAOo1B,EAAI3P,EAAJ2P,KAAMnV,EAAOwF,EAAPxF,QAAS3jB,EAAKmpB,EAALnpB,MAAOQ,EAAQ2oB,EAAR3oB,SAAU2C,EAASgmB,EAAThmB,UAAWg3B,EAAchR,EAAdgR,eAAgBC,EAAejR,EAAfiR,gBACpH/D,GAAkCC,EAAAA,EAAAA,eAAmBjpB,IAAV9O,EAAsBolB,EAAQ,GAAGplB,MAAQA,GAAMg4B,GAAAluB,EAAAA,EAAAA,GAAAguB,EAAA,GAAnFkC,EAAShC,EAAA,GAAEiC,EAAYjC,EAAA,GAExB8D,EAAI3C,EAAcn5B,EAAQg6B,EAC1B10B,EAAa,KAANw2B,GAAkB,OAANA,QAAoBhtB,IAANgtB,EAAkB,IAAMA,EAE/D,OAAOr7B,EAAAA,GAAAA,MAAC6B,GAAAA,YAAW,CACnBd,QAAQ,WACJoD,UAAW0K,EAAAA,MAAAA,KAAWmpB,GAAU7zB,GAChC9D,WAAS,EACTW,MAAOA,EAAMT,SAAA,EAEbP,EAAAA,GAAAA,MAACgC,GAAAA,OAAM,CACHjB,QAAQ,WACRxB,MAAOsF,EACPxE,WAAS,EACTw5B,SAAUA,EACVQ,YAAa,SAAAlwB,GACT,GAAI0vB,GAAY1vB,EAASxK,KAAM,CAE3BwK,EAASX,OACT,IAAIiJ,EAAMtI,EAASlE,QAAQ,MACd,IAATwM,IACAtI,EAAS3D,OAAOiM,EAAK,GACrBtI,EAASnD,KAAK,OAGL,KADbyL,EAAMtI,EAASlE,QAAQ,QAEnBkE,EAAS3D,OAAOiM,EAAK,GACrBtI,EAASiwB,QAAQ,MAGrB,IAAMkB,EAAW3W,EAAQ7d,MAAK,SAAAD,GAAE,OAAIA,EAAG00B,IAAI,IAC3C,GAAIpxB,EAASpG,SAASu3B,EAAS/7B,OAC3B,OAAO+7B,EAASE,WAAcL,EAAiBG,EAASE,WAAa96B,EAAAA,KAAAA,EAAO46B,EAASE,YAAgBL,EAAiBG,EAAS52B,MAAQhE,EAAAA,KAAAA,EAAO46B,EAAS52B,OAG3J,IAAM+2B,EAAStxB,EACVhI,KAAI,SAAAu5B,GAAG,OAAI/W,EAAQ7d,MAAK,SAAAC,GAAI,OAAIA,EAAKxH,QAAUm8B,GAAgB,MAARA,GAA8B,KAAf30B,EAAKxH,KAAa,KAAKm8B,CAAG,IAChGv5B,KAAI,SAAA4E,GAAI,MAAoB,kBAATA,EAAqBA,EAAKy0B,WAAcL,EAAiBp0B,EAAKy0B,WAAa96B,EAAAA,KAAAA,EAAOqG,EAAKy0B,YAAgBL,EAAiBp0B,EAAKrC,MAAQhE,EAAAA,KAAAA,EAAOqG,EAAKrC,OAAYy2B,EAAiBp0B,EAAOrG,EAAAA,KAAAA,EAAOqG,EAAM,IAE1N,OAAO00B,EAAO97B,KAAK,KACvB,CACI,IAAMoH,EAAO4d,EAAUA,EAAQ7d,MAAK,SAAAC,GAAI,OAAIA,EAAKxH,QAAU4K,GAA0B,MAAbA,GAAmC,KAAfpD,EAAKxH,KAAa,IAAI,KAClH,OAAW,OAAJwH,QAAI,IAAJA,GAAAA,EAAMrC,MAASy2B,EAAqB,OAAJp0B,QAAI,IAAJA,OAAI,EAAJA,EAAMrC,MAAQhE,EAAAA,KAAAA,EAAW,OAAJqG,QAAI,IAAJA,OAAI,EAAJA,EAAMrC,OAAUyF,CAEpF,EACA3I,SAAU,SAAAC,GAEN,IADCi3B,GAAec,EAAa/3B,EAAEC,OAAOnC,OAClCs6B,EAAU,CACV,IAAMyB,EAAW3W,EAAQ7d,MAAK,SAAAD,GAAE,OAAIA,EAAG00B,IAAI,IAC3C,GAAID,EAAU,CACV,IAAMK,EAAYL,EAAS/7B,MAC3B,GAAIkC,EAAEC,OAAOnC,MAAML,SAAWylB,EAAQzlB,OAAS,GAAKuC,EAAEC,OAAOnC,MAAMwE,SAAS43B,GACxE,OAAOn6B,EAASC,EAAEC,OAAOnC,MAAMiJ,QAAO,SAAA3B,GAAE,OAAIA,IAAO80B,CAAS,IAAG7B,GAEnE,GAAIr4B,EAAEC,OAAOnC,MAAMwE,SAAS43B,GACxB,OAAOn6B,EAASmjB,EAAQxiB,KAAI,SAAA0E,GAAE,OAAIA,EAAGtH,KAAK,IAAGu6B,EAErD,CACJ,CACAt4B,EAASC,EAAEC,OAAOnC,MAAOu6B,EAC7B,EACAQ,MAAOR,GAAOt5B,EAAAA,GAAAA,KAACqK,GAAAA,MAAK,CAACnM,KAAMo7B,EAAMr7B,GAAE,GAAAkF,OAAKm2B,EAAI,cAAgBt5B,EAAAA,GAAAA,KAACqK,GAAAA,MAAK,CAACnM,KAAMo7B,IAASv5B,SAAA,EAEhFs5B,GAAYlV,GAAWA,EAAQxiB,KAAI,SAAA4E,GAAI,OAAI/G,EAAAA,GAAAA,MAACoC,GAAAA,SAAQ,CAACpB,MAAO,CAAEu5B,aAAc,iBAA6Ch7B,MAAsB,KAAfwH,EAAKxH,OAA+B,OAAfwH,EAAKxH,YAAiC8O,IAAftH,EAAKxH,MAAsB,IAAMwH,EAAKxH,MAAMgB,SAAA,CAAE46B,EAAiBp0B,EAAKrC,MAAQhE,EAAAA,KAAAA,EAAOqG,EAAKrC,OAAQqC,EAAKyzB,SAAUh6B,EAAAA,GAAAA,KAAA,OAAAD,SAAM66B,EAAkBr0B,EAAKyzB,OAAS95B,EAAAA,KAAAA,EAAOqG,EAAKyzB,YAAc,OAAA72B,OAAhPoD,EAAKxH,OAAuP,IACxWs6B,GAAYlV,GAAWA,EAAQxiB,KAAI,SAAA4E,GAAI,OAAI/G,EAAAA,GAAAA,MAACoC,GAAAA,SAAQ,CAACpB,MAAO,CAAEu5B,aAAc,iBAA6Ch7B,MAAOwH,EAAKxH,OAAS,IAAIgB,SAAA,CAAE46B,EAAiBp0B,EAAKrC,MAAQhE,EAAAA,KAAAA,EAAOqG,EAAKrC,OAAO,KAAClE,EAAAA,GAAAA,KAACi4B,GAAc,CAACC,aAAW,EAACn5B,MAAOA,EAAMwE,SAASgD,EAAKxH,WAAU,OAAAoE,OAA5JoD,EAAKxH,OAAkK,OAEtRmF,GAAQlE,EAAAA,GAAAA,KAACi6B,GAAAA,eAAc,CAAAl6B,SAAEG,EAAAA,KAAAA,EAAOgE,KAA2B,OAEpE,EAEAw2B,GAAatQ,aAAe,CACxBrrB,MAAO,GACP4E,UAAW,KACXwb,OAAO,EACP+Y,aAAa,EACbmB,UAAU,GAWd,UChGA,GAAuB,oBAAvB,GAAkD,oBCQ5C+B,GAAe,SAAHzR,GAAeA,EAAT9pB,UAAwI,IAA7HQ,EAAYspB,EAAZtpB,aAAcM,EAAKgpB,EAALhpB,MAAO+E,EAAKikB,EAALjkB,MAAOnB,EAAIolB,EAAJplB,KAAMhE,EAAOopB,EAAPppB,QAASxB,EAAK4qB,EAAL5qB,MAAOqE,EAAIumB,EAAJvmB,KAAM5C,EAAKmpB,EAALnpB,MAAOQ,EAAQ2oB,EAAR3oB,SAAU2C,EAASgmB,EAAThmB,UAAWu0B,EAAWvO,EAAXuO,YAAamD,EAAG1R,EAAH0R,IAAKC,EAAG3R,EAAH2R,IAAKC,EAAI5R,EAAJ4R,KAAMC,EAAI7R,EAAJ6R,KAChJ3E,GAAkCC,EAAAA,EAAAA,UAAS,GAAEC,GAAAluB,EAAAA,EAAAA,GAAAguB,EAAA,GAAtCkC,EAAShC,EAAA,GAAEiC,EAAYjC,EAAA,GAC9BsE,OAAcxtB,IAARwtB,EAAoBA,EAAM,EAChCC,OAAcztB,IAARytB,EAAoBA,EAAM,EAChCC,OAAgB1tB,IAAT0tB,EAAqBA,GAAQD,EAAMD,GAAO,IAEjD,IAAMI,EAAQ,CACV,CACI18B,MAAOs8B,EACP16B,MAAO06B,GAAOG,GAAQ,KAE1B,CACIz8B,MAAOu8B,EACP36B,MAAO26B,GAAOE,GAAQ,MAI9B,OAAOx7B,EAAAA,GAAAA,KAAC07B,GAAAA,OAAM,CACVnB,aAAcrC,EAAcn5B,EAAQg6B,EAEpC,kBAAgB,kBAChB4C,kBAAkB,OAClB/3B,QAAS,CAAC8tB,KAAM8F,IAChBiE,MAAOA,EACPF,KAAMA,EACNF,IAAKA,EACLC,IAAKA,EACL51B,MAAOA,GAAS,GAEhB/E,MAAOA,EACPJ,QAASA,EACTxB,MAAOm5B,EAAcn5B,EAAQg6B,EAC7B31B,KAAMA,EAEN5C,MAAOA,EACPmD,UAAW0K,EAAAA,MAAAA,KAAWmpB,GAAU7zB,GAChCtD,aAAcA,EACdW,SAAU,SAACC,EAAG2nB,IACTsP,GAAec,EAAapQ,GAC7B5nB,EAAS4nB,EACb,EACAznB,OAAO,SACPoD,KAAMA,GAEd,EAEA62B,GAAahR,aAAe,CACxBrrB,MAAO,GACPqE,KAAM,OACNsC,MAAO,GACP/B,UAAW,KACXwb,OAAO,EACPsZ,OAAQ,CAAC,EACTl4B,QAAS,WACTgE,KAAM,SACNiF,UAAW,KACXkvB,oBAAqB,KACrB13B,SAAU,WAAQ,EAClBnB,WAAW,EACXQ,aAAc,GACd63B,aAAa,GAcjB,UClFA,GAAuB,oBCKjB0D,GAAe,SAAHjS,GAAyE,IAAnEhpB,EAAKgpB,EAALhpB,MAAO4D,EAAIolB,EAAJplB,KAAMxF,EAAK4qB,EAAL5qB,MAAOyB,EAAKmpB,EAALnpB,MAAOQ,EAAQ2oB,EAAR3oB,SAAU2C,EAASgmB,EAAThmB,UAAWu0B,EAAWvO,EAAXuO,YACpErB,GAA0CC,EAAAA,EAAAA,WAAS,GAAMC,GAAAluB,EAAAA,EAAAA,GAAAguB,EAAA,GAAlDsB,EAAapB,EAAA,GAAEqB,EAAgBrB,EAAA,GACtC,OAAO/2B,EAAAA,GAAAA,KAAC67B,GAAAA,iBAAgB,CACpBl4B,UAAW6zB,GACXsE,SAAS97B,EAAAA,GAAAA,KAAC+7B,GAAAA,OAAM,CACZxD,QAASL,EAAcn5B,EAAQo5B,EAC/B33B,MAAOA,EACPmD,UAAWA,EACX3C,SAAU,SAAAC,GACDi3B,GAAaE,EAAiBn3B,EAAEC,OAAOq3B,SAC5Cv3B,EAASC,EAAEC,OAAOq3B,QACtB,EACAh0B,KAAMA,IAGV5D,MAAOA,GAEf,EAEAi7B,GAAaxR,aAAe,CACxBrrB,OAAO,EACPqE,KAAM,OACNsC,MAAO,GACP/B,UAAW,KACXwb,OAAO,EACPsZ,OAAQ,CAAC,EACTl4B,QAAS,WACTgE,KAAM,SACNiF,UAAW,KACXkvB,oBAAqB,KACrB13B,SAAU,WAAQ,EAClBnB,WAAW,EACXQ,aAAc,GACd63B,aAAa,EACbv3B,MAAO,OAcX,QAAeg4B,EAAAA,EAAAA,MAAKiD,ICrDpB,GAAuB,oBCQjBI,GAAa,SAAHrS,GAA+C,IAAzC5qB,EAAK4qB,EAAL5qB,MAAOyB,EAAKmpB,EAALnpB,MAAOQ,EAAQ2oB,EAAR3oB,SAAU2C,EAASgmB,EAAThmB,UAC1C,OAAO3D,EAAAA,GAAAA,KAACM,GAAAA,UAAS,CACbC,QAAQ,WACRtC,GAAG,OACHmF,KAAK,OACLpC,SAAU,SAACC,GAAC,OAAKD,EAASC,EAAE6X,cAAc/Z,MAAM,EAChDA,MAAOA,EACP4E,UAAW0K,EAAAA,MAAAA,KAAWmpB,GAAU7zB,GAChC9D,WAAS,EACTW,MAAOA,EACPy7B,gBAAiB,CACbC,QAAQ,GAEZx6B,WAAY,CACR65B,KAAM,MAGlB,EAEAS,GAAW5R,aAAe,CACtBrrB,MAAO,GACP4E,UAAW,KACXwb,OAAO,GAUX,UCxCA,GAAuB,oBCOjBgd,GAAO,CACT,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,IAGEC,GAAa,SAAHzS,GAAsD,IAAhD5qB,EAAK4qB,EAAL5qB,MAAOiC,EAAQ2oB,EAAR3oB,SAAU2C,EAASgmB,EAAThmB,UAAkBnD,GAAFmpB,EAALzlB,MAAYylB,EAALnpB,OACrD67B,GAAqBt9B,GAAS,SAASuN,WAAWrN,MAAM,KAAIq9B,GAAAzzB,EAAAA,EAAAA,GAAAwzB,EAAA,GAAvDE,EAAKD,EAAA,GAAEpe,EAAIoe,EAAA,GAChBpe,EAAOzc,SAASyc,EAAM,KAAO,GAC7Bqe,EAAQ96B,SAAS86B,EAAO,KAAO,GACnB,GACRA,EAAQ,GACDA,EAAQ,IACfA,EAAQ,GAGRre,EAAOie,GAAKI,GACZre,EAAOie,GAAKI,GACLre,EAAO,IACdA,EAAO,GAIX,IADA,IAAIse,EAAO,GACFp2B,EAAI,EAAGA,EAAI+1B,GAAKI,GAAQn2B,IAC7Bo2B,EAAKh2B,KAAKJ,EAAI,GAGlB,OAAO5G,EAAAA,GAAAA,MAAA,OAAAO,SAAA,EACHC,EAAAA,GAAAA,KAACqB,GAAAA,YAAW,CACRd,QAAQ,WACRoD,UAAW0K,EAAAA,MAAAA,KAAWmpB,GAAU7zB,GAChCnD,MAAOA,EAAMT,UAEbP,EAAAA,GAAAA,MAACgC,GAAAA,OAAM,CACHjB,QAAQ,WACRoD,UAAW0K,EAAAA,MAAAA,KAAWmpB,GAAU7zB,GAChCxC,OAAO,QACPR,MAAOT,EAAAA,KAAAA,EAAO,SACdc,SAAU,SAAAC,GAAC,OACPD,EAAS,GAADmC,OAAIlC,EAAEC,OAAOnC,MAAMuN,WAAWmwB,SAAS,EAAG,KAAI,KAAAt5B,OAAI+a,EAAK5R,WAAWmwB,SAAS,EAAG,MAAO,EACjG19B,MAAOw9B,EAAMx8B,SAAA,EAEbC,EAAAA,GAAAA,KAAC4B,GAAAA,SAAQ,CAACpB,MAAO,CAAEu5B,aAAc,iBAA2Bh7B,MAAO,EAAEgB,SAAEG,EAAAA,KAAAA,EAAO,cAArB,IACzDF,EAAAA,GAAAA,KAAC4B,GAAAA,SAAQ,CAACpB,MAAO,CAAEu5B,aAAc,iBAA2Bh7B,MAAO,EAAEgB,SAAEG,EAAAA,KAAAA,EAAO,YAArB,IACzDF,EAAAA,GAAAA,KAAC4B,GAAAA,SAAQ,CAACpB,MAAO,CAAEu5B,aAAc,iBAA2Bh7B,MAAO,EAAEgB,SAAEG,EAAAA,KAAAA,EAAO,aAArB,IACzDF,EAAAA,GAAAA,KAAC4B,GAAAA,SAAQ,CAACpB,MAAO,CAAEu5B,aAAc,iBAA2Bh7B,MAAO,EAAEgB,SAAEG,EAAAA,KAAAA,EAAO,UAArB,IACzDF,EAAAA,GAAAA,KAAC4B,GAAAA,SAAQ,CAACpB,MAAO,CAAEu5B,aAAc,iBAA2Bh7B,MAAO,EAAEgB,SAAEG,EAAAA,KAAAA,EAAO,UAArB,IACzDF,EAAAA,GAAAA,KAAC4B,GAAAA,SAAQ,CAACpB,MAAO,CAAEu5B,aAAc,iBAA2Bh7B,MAAO,EAAEgB,SAAEG,EAAAA,KAAAA,EAAO,QAArB,IACzDF,EAAAA,GAAAA,KAAC4B,GAAAA,SAAQ,CAACpB,MAAO,CAAEu5B,aAAc,iBAA2Bh7B,MAAO,EAAEgB,SAAEG,EAAAA,KAAAA,EAAO,SAArB,IACzDF,EAAAA,GAAAA,KAAC4B,GAAAA,SAAQ,CAACpB,MAAO,CAAEu5B,aAAc,iBAA2Bh7B,MAAO,EAAEgB,SAAEG,EAAAA,KAAAA,EAAO,SAArB,IACzDF,EAAAA,GAAAA,KAAC4B,GAAAA,SAAQ,CAACpB,MAAO,CAAEu5B,aAAc,iBAA2Bh7B,MAAO,EAAEgB,SAAEG,EAAAA,KAAAA,EAAO,WAArB,IACzDF,EAAAA,GAAAA,KAAC4B,GAAAA,SAAQ,CAACpB,MAAO,CAAEu5B,aAAc,iBAA2Bh7B,MAAO,EAAEgB,SAAEG,EAAAA,KAAAA,EAAO,cAArB,IACzDF,EAAAA,GAAAA,KAAC4B,GAAAA,SAAQ,CAACpB,MAAO,CAAEu5B,aAAc,iBAA4Bh7B,MAAO,GAAGgB,SAAEG,EAAAA,KAAAA,EAAO,YAAvB,KACzDF,EAAAA,GAAAA,KAAC4B,GAAAA,SAAQ,CAACpB,MAAO,CAAEu5B,aAAc,iBAA4Bh7B,MAAO,GAAGgB,SAAEG,EAAAA,KAAAA,EAAO,aAAvB,KACzDF,EAAAA,GAAAA,KAAC4B,GAAAA,SAAQ,CAACpB,MAAO,CAAEu5B,aAAc,iBAA4Bh7B,MAAO,GAAGgB,SAAEG,EAAAA,KAAAA,EAAO,aAAvB,UAGjEF,EAAAA,GAAAA,KAACqB,GAAAA,YAAW,CACRd,QAAQ,WACRoD,UAAW0K,EAAAA,MAAAA,KAAWmpB,GAAU7zB,GAChCnD,MAAOA,EAAMT,UAEbP,EAAAA,GAAAA,MAACgC,GAAAA,OAAM,CACHjB,QAAQ,WACRoD,UAAW0K,EAAAA,MAAAA,KAAWmpB,GAAU7zB,GAChCxC,OAAO,QACPR,MAAOT,EAAAA,KAAAA,EAAO,QACdc,SAAU,SAAAC,GAAC,OACPD,EAAS,GAADmC,OAAIo5B,EAAMjwB,WAAWmwB,SAAS,EAAG,KAAI,KAAAt5B,OAAIlC,EAAEC,OAAOnC,MAAMuN,WAAWmwB,SAAS,EAAG,MAAO,EAClG19B,MAAOmf,EAAKne,SAAA,EAEZC,EAAAA,GAAAA,KAAC4B,GAAAA,SAAQ,CAACpB,MAAO,CAAEu5B,aAAc,iBAA6Bh7B,MAAO,EAAEgB,SAAEG,EAAAA,KAAAA,EAAO,QAAvB,KACxDs8B,EAAK76B,KAAI,SAAAyE,GAAC,OAAIpG,EAAAA,GAAAA,KAAC4B,GAAAA,SAAQ,CAACpB,MAAO,CAAEu5B,aAAc,iBAA2Bh7B,MAAOqH,EAAErG,SAAEqG,GAAdA,EAA2B,WAInH,EAEAg2B,GAAWhS,aAAe,CACtBrrB,MAAO,GACP4E,UAAW,MAUf,ICzGIL,GDyGJ,MC3FA,GAJc,CACVo5B,QAVY,SAAAh1B,GAEZ,OADApE,GAAOA,IAAQpD,EAAAA,KAAAA,cACI,kBAARwH,EACAA,EAAIpE,KAASoE,EAAI2E,GAEjB3E,CAEf,GCVMi1B,GACc,EADdA,GAEwB,EAFxBA,GAGY,EAHZA,GAIiB,EAJjBA,GAKa,EALbA,GAMkB,EANlBA,GAOc,EAPdA,GAQiB,EARjBA,GASa,EA4CnB,GAzCc,CACV,CACIC,SAAU,mBACVnW,QAAS,mBAEb,CACImW,SAAU,8BACVnW,QAAS,iCAEb,CACImW,SAAU,YACVnW,QAAS,uBAEb,CACImW,SAAU,qBACVnW,QAAS,mBAEb,CACImW,SAAU,kBACVnW,QAAS,wBAEb,CACImW,SAAU,yBACVnW,QAAS,iCAEb,CACImW,SAAU,kBACVnW,QAAS,oBAEb,CACImW,SAAU,kBACVnW,QAAS,wBAEb,CACImW,SAAU,eACVnW,QAAS,oBCoqBjB,GAtrBkB,SAAAoW,IAAA1/B,EAAAA,EAAAA,GAAA2/B,EAAAD,GAAA,IAAAx/B,GAAAC,EAAAA,EAAAA,GAAAw/B,GACd,SAAAA,EAAYv/B,EAAOgJ,GAAO,IAAD/I,GAAAC,EAAAA,EAAAA,GAAA,KAAAq/B,IACrBt/B,EAAAH,EAAAK,KAAA,KAAMH,IA8GVw/B,WAAa,SAACjD,EAAO/6B,EAAOiC,GACxB,IAAQ2C,EAAcnG,EAAKD,MAAnBoG,UACA21B,EAAmFQ,EAAnFR,KAAM0D,EAA6ElD,EAA7EkD,UAAWC,EAAkEnD,EAAlEmD,SAAUC,EAAwDpD,EAAxDoD,UAAWh/B,EAA6C47B,EAA7C57B,KAAMy8B,EAAuCb,EAAvCa,eAAgBwC,EAAuBrD,EAAvBqD,mBACpE,OAAO39B,EAAAA,GAAAA,MAAC49B,EAAAA,SAAQ,CAAAr9B,SAAA,EACZP,EAAAA,GAAAA,MAAA,OAAKmE,UAAW0K,EAAAA,MAAAA,KAAWmpB,GAAAA,YAAiBA,GAAAA,gBAAoBz3B,SAAA,CAC3Di9B,IAAah9B,EAAAA,GAAAA,KAAA,OAAK2D,UAAW6zB,GAAAA,UAAcz3B,SAAE46B,EAAiBqC,EAAY98B,EAAAA,KAAAA,EAAO88B,MAClFh9B,EAAAA,GAAAA,KAAC44B,GAAW,CACRj1B,UAAWA,EACXtD,aAAa,MACbM,MAAO+vB,GAAAA,QAAcxyB,GACrBqC,QAAQ,WACRgE,KAAK,QACL1E,WAAS,EACTd,MAAOA,EACPiC,SAAUA,EACVk3B,aAAW,IAEd+E,IAAYj9B,EAAAA,GAAAA,KAAA,OAAK2D,UAAW6zB,GAAAA,SAAaz3B,SAAEo9B,EAAqBF,EAAW/8B,EAAAA,KAAAA,EAAO+8B,QAEtFC,IAAal9B,EAAAA,GAAAA,KAAA,OAAK2D,UAAW6zB,GAAAA,UAAcz3B,SAAEG,EAAAA,KAAAA,EAAOg9B,OAhBnC5D,EAkB1B,EAAC97B,EAED6/B,aAAe,SAACvD,EAAO/6B,EAAOiC,GAC1B,IAAQ2C,EAAcnG,EAAKD,MAAnBoG,UACA21B,EAA6EQ,EAA7ER,KAAM0D,EAAuElD,EAAvEkD,UAAWC,EAA4DnD,EAA5DmD,SAAUC,EAAkDpD,EAAlDoD,UAAWvC,EAAuCb,EAAvCa,eAAgBwC,EAAuBrD,EAAvBqD,mBAC9D,OAAO39B,EAAAA,GAAAA,MAAA,OAAAO,SAAA,EACHP,EAAAA,GAAAA,MAAA,OAAKmE,UAAW0K,EAAAA,MAAAA,KAAWmpB,GAAAA,YAAiBA,GAAAA,gBAAoBz3B,SAAA,CAC3Di9B,IAAah9B,EAAAA,GAAAA,KAAA,OAAK2D,UAAW6zB,GAAAA,UAAcz3B,SAAE46B,EAAiBqC,EAAY98B,EAAAA,KAAAA,EAAO88B,MAClFh9B,EAAAA,GAAAA,KAAC47B,GAAY,CACTj4B,UAAWA,EACXhD,MAAM,GACNu3B,aAAW,EACXn5B,MAAOA,EACPiC,SAAUA,IAEbi8B,IAAYj9B,EAAAA,GAAAA,KAAA,OAAK2D,UAAW6zB,GAAAA,SAAaz3B,SAAEo9B,EAAqBF,EAAW/8B,EAAAA,KAAAA,EAAO+8B,QAEtFC,IAAal9B,EAAAA,GAAAA,KAAA,OAAK2D,UAAW6zB,GAAAA,UAAcz3B,SAAEG,EAAAA,KAAAA,EAAOg9B,OAZxC5D,EAcrB,EAAC97B,EAED8/B,eAAiB,SAAA3T,EAAoD5qB,GAAK,IAAtDu6B,EAAI3P,EAAJ2P,KAAMiE,EAAS5T,EAAT4T,UAAW5C,EAAchR,EAAdgR,eAAgBJ,EAAY5Q,EAAZ4Q,aAAY,OAAcv6B,EAAAA,GAAAA,KAAA,OAC3E2D,UAAW0K,EAAAA,MAAAA,KAAakvB,EAAY/F,GAAAA,cAAoBA,GAAAA,YAAiBA,GAAAA,gBAAoBz3B,SAE5FhB,EAAS47B,EAAiB57B,EAAQmB,EAAAA,KAAAA,EAAOnB,GAAW47B,EAAiBJ,EAAer6B,EAAAA,KAAAA,EAAOq6B,IADvFjB,EAEF,EAAD97B,EAENggC,aAAe,SAAC1D,EAAO/6B,EAAOiC,GAC1B,IAAQ2C,EAAcnG,EAAKD,MAAnBoG,UACA85B,EAAajgC,EAAKQ,MAAlBy/B,SACAnE,EAAgFQ,EAAhFR,KAAM2D,EAA0EnD,EAA1EmD,SAAUD,EAAgElD,EAAhEkD,UAAWU,EAAqD5D,EAArD4D,aAAc/C,EAAuCb,EAAvCa,eAAgBwC,EAAuBrD,EAAvBqD,mBAC7DQ,GAAa,EAIjB,OAHID,IACAC,EAA2C,mBAAvBF,EAAiB,QAAkBA,EAAiB,QAErEE,GAAan+B,EAAAA,GAAAA,MAAA,OAAgBmE,UAAW0K,EAAAA,MAAAA,KAAWmpB,GAAAA,YAAiBA,GAAAA,gBAAoBz3B,SAAA,CAC1Fi9B,IAAah9B,EAAAA,GAAAA,KAAA,OAAK2D,UAAW6zB,GAAAA,UAAcz3B,SAAE46B,EAAiBqC,EAAY98B,EAAAA,KAAAA,EAAO88B,MAClFh9B,EAAAA,GAAAA,KAAC44B,GAAW,CACRj1B,UAAW0K,EAAAA,MAAAA,KAAW1K,EAAWm2B,EAAMn2B,WACvC9D,WAAS,EACTQ,aAAa,MACbM,MAAOm5B,EAAM8D,aAAe,GAAK,SACjCr9B,QAAQ,WACRgE,KAAK,QACLnB,KAAK,SACLrE,MAAOA,EACPiC,SAAUA,EACVk3B,aAAW,IAEd+E,IAAYj9B,EAAAA,GAAAA,KAAA,OAAK2D,UAAW6zB,GAAAA,SAAaz3B,SAAEo9B,EAAqBF,EAAW/8B,EAAAA,KAAAA,EAAO+8B,OAdzD3D,GAerB,IACb,EAAC97B,EAEDqgC,YAAc,SAAC/D,EAAO/6B,EAAOiC,GACzB,IAAQ2C,EAAcnG,EAAKD,MAAnBoG,UACA21B,EAAkEQ,EAAlER,KAAM2D,EAA4DnD,EAA5DmD,SAAUD,EAAkDlD,EAAlDkD,UAAWrC,EAAuCb,EAAvCa,eAAgBwC,EAAuBrD,EAAvBqD,mBACnD,OAAO39B,EAAAA,GAAAA,MAAA,OAAgBmE,UAAW0K,EAAAA,MAAAA,KAAWmpB,GAAAA,YAAiBA,GAAAA,gBAAoBz3B,SAAA,CAC7Ei9B,IAAah9B,EAAAA,GAAAA,KAAA,OAAK2D,UAAW6zB,GAAAA,UAAcz3B,SAAE46B,EAAiBqC,EAAY98B,EAAAA,KAAAA,EAAO88B,MAClFh9B,EAAAA,GAAAA,KAAC44B,GAAW,CACRj1B,UAAWA,EACXtD,aAAa,MACbR,WAAS,EACTU,QAAQ,WACRgE,KAAK,QACLnB,KAAK,QACLrE,MAAOA,EACPiC,SAAUA,IAEbi8B,IAAYj9B,EAAAA,GAAAA,KAAA,OAAK2D,UAAW6zB,GAAAA,SAAaz3B,SAAEo9B,EAAqBF,EAAW/8B,EAAAA,KAAAA,EAAO+8B,OAZtE3D,EAcrB,EAAC97B,EAEDsgC,eAAiB,SAAChE,EAAO/6B,EAAOiC,GAC5B,IAAQ2C,EAAcnG,EAAKD,MAAnBoG,UACA85B,EAAajgC,EAAKQ,MAAlBy/B,SACAnE,EAAgFQ,EAAhFR,KAAM2D,EAA0EnD,EAA1EmD,SAAUD,EAAgElD,EAAhEkD,UAAWzC,EAAqDT,EAArDS,aAAcI,EAAuCb,EAAvCa,eAAgBwC,EAAuBrD,EAAvBqD,mBACjE,OAAO39B,EAAAA,GAAAA,MAAA,OAAgBmE,UAAW6zB,GAAAA,YAAgBz3B,SAAA,CAC7Ci9B,IAAah9B,EAAAA,GAAAA,KAAA,OAAK2D,UAAW6zB,GAAAA,UAAcz3B,SAAE46B,EAAiBqC,EAAY98B,EAAAA,KAAAA,EAAO88B,MAClFh9B,EAAAA,GAAAA,KAACi4B,GAAc,CACXt0B,UAAWA,EACXY,KAAK,QACL/D,MAAO,CAAEyK,YAAa,GACtBlM,MAAiC,mBAAnB0+B,EAASnE,GAAsBmE,EAASnE,GAAQiB,EAC9DrC,aAAW,EACXl3B,SAAUA,IAEbi8B,IAAYj9B,EAAAA,GAAAA,KAAA,OAAK+B,QAAS,kBAAMf,EAAmC,mBAAnBy8B,EAASnE,IAAuBmE,EAASnE,IAASiB,EAAa,EAAE52B,UAAW6zB,GAAAA,SAAaz3B,SAAEo9B,EAAqBF,EAAW/8B,EAAAA,KAAAA,EAAO+8B,OAVtK3D,EAYrB,EAAC97B,EAEDugC,aAAe,SAACjE,EAAO/6B,EAAOiC,GAC1B,IAAQ2C,EAAcnG,EAAKD,MAAnBoG,UACA21B,EAAmGQ,EAAnGR,KAAM0D,EAA6FlD,EAA7FkD,UAAWC,EAAkFnD,EAAlFmD,SAAUC,EAAwEpD,EAAxEoD,UAAW7B,EAA6DvB,EAA7DuB,IAAKC,EAAwDxB,EAAxDwB,IAAKC,EAAmDzB,EAAnDyB,KAAMC,EAA6C1B,EAA7C0B,KAAMb,EAAuCb,EAAvCa,eAAgBwC,EAAuBrD,EAAvBqD,mBACpF,OAAO39B,EAAAA,GAAAA,MAAA,OAAAO,SAAA,EACHP,EAAAA,GAAAA,MAAA,OAAKmE,UAAW6zB,GAAAA,YAAiBh3B,MAAO,CAAEyK,YAAa,IAAKlL,SAAA,CACvDi9B,IAAah9B,EAAAA,GAAAA,KAAA,OAAK2D,UAAW6zB,GAAAA,UAAcz3B,SAAE46B,EAAiBqC,EAAY98B,EAAAA,KAAAA,EAAO88B,MAClFh9B,EAAAA,GAAAA,KAACo7B,GAAY,CACTlD,aAAW,EACXmD,IAAKA,EACLC,IAAKA,EACLC,KAAMA,EACNC,KAAMA,EACN73B,UAAWA,EACXtD,aAAa,MACbM,MAAM,SACNJ,QAAQ,WACRgE,KAAK,QACLxF,MAAOA,EACPiC,SAAU,SAAAgR,GACNtL,QAAQC,IAAIqL,GACZhR,EAASgR,EACb,IAEHirB,IAAYj9B,EAAAA,GAAAA,KAAA,OAAKQ,MAAO,CAAEyT,WAAY,IAAMtQ,UAAW6zB,GAAAA,SAAaz3B,SAAEo9B,EAAqBF,EAAW/8B,EAAAA,KAAAA,EAAO+8B,QAEjHC,IAAal9B,EAAAA,GAAAA,KAAA,OAAK2D,UAAW6zB,GAAAA,UAAcz3B,SAAEG,EAAAA,KAAAA,EAAOg9B,OAtBxC5D,EAwBrB,EAAC97B,EAEDwgC,aAAe,SAAClE,EAAO/6B,EAAOgD,GAC1B,IAAQ4B,EAAcnG,EAAKD,MAAnBoG,UACA21B,EAA8EQ,EAA9ER,KAAM0D,EAAwElD,EAAxEkD,UAAWC,EAA6DnD,EAA7DmD,SAAUgB,EAAmDnE,EAAnDmE,WAAYtD,EAAuCb,EAAvCa,eAAgBwC,EAAuBrD,EAAvBqD,mBAC/D,OAAO39B,EAAAA,GAAAA,MAAA,OAAgBmE,UAAW0K,EAAAA,MAAAA,KAAWmpB,GAAAA,YAAiBA,GAAAA,gBAAoBz3B,SAAA,CAC7Ei9B,IAAah9B,EAAAA,GAAAA,KAAA,OAAK2D,UAAW6zB,GAAAA,UAAcz3B,SAAE46B,EAAiBqC,EAAY98B,EAAAA,KAAAA,EAAO88B,MAClFh9B,EAAAA,GAAAA,KAAC83B,GAAY,CACTn3B,MAAOs9B,EACPp+B,WAAS,EACTd,MAAOA,EACP4E,UAAWA,EACX5B,QAASA,IAEZk7B,IAAYj9B,EAAAA,GAAAA,KAAA,OAAK2D,UAAW6zB,GAAAA,SAAaz3B,SAAEo9B,EAAqBF,EAAW/8B,EAAAA,KAAAA,EAAO+8B,OATtE3D,EAWrB,EAAC97B,EAED0gC,SAAW,SAAAx2B,GAAQ,IAADwvB,EACd,IAAKxvB,EACD,OAAO0L,QAAQC,QAAQ,MAEvB,GAAc,QAAd6jB,EAAIxvB,EAAIC,cAAM,IAAAuvB,GAAVA,EAAYnuB,KACZ,OAAOqK,QAAQC,SAAQ8qB,EAAAA,GAAAA,iBAAgBz2B,EAAK,UACzC,GAAiB,UAAbA,EAAItE,MAAiC,YAAbsE,EAAItE,KAAoB,CACvD,IAAMpE,EAAQ0I,EAAIG,IAAI5I,MAAM,KAC5BD,EAAME,MACN,IAAMsW,EAAQxW,EAAMG,KAAK,KACzB,OAAO3B,EAAKD,MAAMgK,OAAOC,UAAUgO,GAC9B/N,MAAK,SAAAC,GAAG,OAAIlK,EAAK0gC,SAASx2B,EAAI,IAC9B02B,OAAM,kBAAM,IAAI,GACzB,CACR,EAAC5gC,EAED6gC,eAAiB,SAACvE,EAAO/6B,EAAOiC,GAC5B,IAAQs4B,EAAsCQ,EAAtCR,KAAMoE,EAAgC5D,EAAhC4D,aAAcY,EAAkBxE,EAAlBwE,cACpBb,EAAajgC,EAAKQ,MAAlBy/B,SACFc,EAAe/gC,EAAKQ,MAAM,eAADmF,OAAgBm2B,IAC/CkF,EAA8BhhC,EAAKD,MAA3BoG,EAAS66B,EAAT76B,UAAW4D,EAAMi3B,EAANj3B,OACfo2B,GAAa,EAqBjB,OApBID,IACAC,EAA2C,mBAAvBF,EAAiB,QAAkBA,EAAiB,QAGxEA,EAASnE,KAAU97B,EAAKQ,MAAMy/B,EAASnE,KACvCv4B,YAAW,WACPwG,EAAOC,UAAUzI,GACZ0I,MAAK,SAAAC,GACFlK,EAAK0gC,SAASx2B,GACTD,MAAK,SAAAsB,GAAI,IAAA01B,EAAAC,EAAA,OAAIlhC,EAAKa,UAAQqgC,EAAA,IAAA9G,EAAAA,GAAAA,GAAA8G,EACtBjB,EAASnE,GAAQ5xB,IAAGkwB,EAAAA,GAAAA,GAAA8G,EAAC,GAADv7B,OACjBs6B,EAASnE,GAAK,WAAYvwB,IAAI6uB,EAAAA,GAAAA,GAAA8G,EAAC,QAC5BJ,GAAiB9gC,EAAKmhC,oBAAsBxgB,KAAKyO,MAAQpvB,EAAKmhC,mBAAqB,MAA+B,KAApB,OAAHj3B,QAAG,IAAHA,GAAW,QAAR+2B,EAAH/2B,EAAKC,cAAM,IAAA82B,OAAR,EAAHA,EAAaG,OAC3G1+B,EAAAA,KAAAA,EAAO,4BAA6Bu9B,EAASnE,IAAS,IAAEoF,GAC9D,GACV,GACR,GAAG,GAIAf,GAAan+B,EAAAA,GAAAA,MAAA,OAAKmE,UAAW6zB,GAAAA,eAAmBz3B,SAAA,EACnDP,EAAAA,GAAAA,MAAA,OAAKmE,UAAW6zB,GAAAA,YAAgBz3B,SAAA,CAC3B+5B,EAAM51B,OAAQlE,EAAAA,GAAAA,KAAA,OAAAD,SAAMG,EAAAA,KAAAA,EAAO45B,EAAM51B,SAAgB,MAClDlE,EAAAA,GAAAA,KAAC44B,GAAW,CACRj1B,UAAWA,EACXtD,aAAa,MACbR,WAAS,EACTuB,UAAQ,EACRb,QAAQ,WACRgE,KAAK,QACLxF,MAAOA,EACPm5B,aAAW,KAEfl4B,EAAAA,GAAAA,KAAC83B,GAAY,CACT/uB,KAAMvL,EAAKQ,MAAM,GAADmF,OAAI3F,EAAKQ,MAAMy/B,SAAS3D,EAAMR,MAAK,YACnDvB,QAAM,EACNv3B,MAAO,CAAEyT,WAAY,GACrBlV,MAAM,MACN4E,UAAWA,EACX5B,QAAS,WACL,IAAM07B,EAAW,CAAC,EAClBA,EAAS,eAADt6B,OAAgBm2B,KAAU,EAClC97B,EAAKa,SAASo/B,EAClB,OAGPjgC,EAAKQ,MAAMR,EAAKQ,MAAMy/B,SAAS3D,EAAMR,SAAUt5B,EAAAA,GAAAA,KAAA,OAAK2D,UAAW0K,EAAAA,MAAAA,KAAWmpB,GAAAA,UAAeA,GAAAA,eAAmBz3B,SAAEsO,EAAAA,MAAAA,qBAA2B7Q,EAAKQ,MAAMy/B,EAASnE,IAAQp5B,EAAAA,KAAAA,iBACrKq+B,GAAev+B,EAAAA,GAAAA,KAAC6+B,GAAAA,QAAc,CAC3BC,YAAY,QACZC,WAAW,aACXzV,UAAWjb,EAAAA,MAAAA,eACX9G,OAAQA,EACRy3B,YAAU,EACVr1B,SAAU5K,EACVnB,QAAS,WACL,IAAM6/B,EAAW,CAAC,EAClBA,EAAS,eAADt6B,OAAgBm2B,KAAU,EAClC97B,EAAKa,SAASo/B,EAClB,EACAwB,KAAM,SAACt1B,EAAUzL,EAAMyJ,GACnB,IAAM81B,EAAW,CAAC,EAClBA,EAAS,eAADt6B,OAAgBm2B,KAAU,EAClC97B,EAAKa,SAASo/B,GAAU,kBAEpBl2B,EAAOC,UAAUmC,GACZlC,MAAK,SAAAC,GAAQ,IAADw3B,EACT1hC,EAAKmhC,mBAAqBxgB,KAAKyO,MAC/B5rB,GAAQk+B,EAAA,IAAAtH,EAAAA,GAAAA,GAAAsH,EACH5F,EAAO3vB,IAAQiuB,EAAAA,GAAAA,GAAAsH,EAAC,GAAD/7B,OACZm2B,EAAI,QAAS5xB,EAAIC,OAAOw3B,OAAIvH,EAAAA,GAAAA,GAAAsH,EAAC,GAAD/7B,OAC5Bm2B,EAAI,QAAS5xB,EAAIC,OAAOvE,OAAIw0B,EAAAA,GAAAA,GAAAsH,EAAC,GAAD/7B,OAC5Bm2B,EAAI,QAAS5xB,EAAIC,OAAO6zB,OAAI5D,EAAAA,GAAAA,GAAAsH,EAAC,GAAD/7B,OAC5Bm2B,EAAI,UAAW5xB,EAAIC,OAAOy3B,SAAMxH,EAAAA,GAAAA,GAAAsH,EAAC,GAAD/7B,OAChCm2B,EAAI,OAAQ5xB,EAAIC,OAAO0zB,MAAGzD,EAAAA,GAAAA,GAAAsH,EAAC,GAAD/7B,OAC1Bm2B,EAAI,OAAQ5xB,EAAIC,OAAO2zB,MAAG1D,EAAAA,GAAAA,GAAAsH,EAAC,GAAD/7B,OAC1Bm2B,EAAI,QAAS5xB,EAAIC,OAAO4zB,OAAI3D,EAAAA,GAAAA,GAAAsH,EAAC,GAAD/7B,OAC5Bm2B,EAAI,OAAQ5xB,EAAIC,OAAOsE,MAAG2rB,EAAAA,GAAAA,GAAAsH,EAAC,GAAD/7B,OAC1Bm2B,EAAI,SAAU5xB,EAAIC,OAAOi3B,QAAKhH,EAAAA,GAAAA,GAAAsH,EAAC,GAAD/7B,OAC9Bm2B,EAAI,QAAS5xB,EAAIC,OAAO03B,MAAIH,GACjC,MAAM,kBACL1hC,EAAKD,MAAM+hC,aAAe9hC,EAAKD,MAAM+hC,aAAY,EAAK,GAC9D,GAAE,GAAC,IAEd,OA/DoDhG,GAgEpD,IACb,EAAC97B,EAED+hC,cAAgB,WACZ,OAAOv/B,EAAAA,GAAAA,KAAA,OACH2D,UAAW6zB,GAAAA,QACXz1B,QAAS,SAAAd,GACDzD,EAAKQ,MAAMy/B,SAAS+B,UAChBhiC,EAAKQ,MAAMyhC,aAAa/gC,OAAS,EACjClB,EAAKkiC,cAELliC,EAAKa,SAAS,CAAEshC,YAAa1+B,EAAE6X,gBAG3C,EAAE/Y,SACDvC,EAAKQ,MAAMy/B,SAAS+B,SAE7B,EAAChiC,EAEDoiC,WAAa,SAAC9F,EAAO/6B,EAAOiC,GACxB,IAAQs4B,EAAkEQ,EAAlER,KAAM2D,EAA4DnD,EAA5DmD,SAAUD,EAAkDlD,EAAlDkD,UAAWrC,EAAuCb,EAAvCa,eAAgBwC,EAAuBrD,EAAvBqD,mBACnD,OAAO39B,EAAAA,GAAAA,MAAA,OAAgBmE,UAAW6zB,GAAAA,YAAiBh3B,MAAO,CAAE8S,WAAY,UAAWvT,SAAA,CAC9Ei9B,IAAah9B,EAAAA,GAAAA,KAAA,OAAK2D,UAAW6zB,GAAAA,UAAcz3B,SAAE46B,EAAiBqC,EAAY98B,EAAAA,KAAAA,EAAO88B,MAClFh9B,EAAAA,GAAAA,KAACg8B,GAAU,CACPj9B,MAAOA,EACPiC,SAAUA,IAEbi8B,IAAYj9B,EAAAA,GAAAA,KAAA,OAAK2D,UAAW6zB,GAAAA,SAAaz3B,SAAEo9B,EAAqBF,EAAW/8B,EAAAA,KAAAA,EAAO+8B,OANtE3D,EAQrB,EAAC97B,EAEDqiC,aAAe,SAAC/F,EAAO/6B,EAAOiC,GAC1B,IAAQ2C,EAAcnG,EAAKD,MAAnBoG,UACAzF,EAA4G47B,EAA5G57B,KAAMimB,EAAsG2V,EAAtG3V,QAAS6Y,EAA6FlD,EAA7FkD,UAAWC,EAAkFnD,EAAlFmD,SAAU3D,EAAwEQ,EAAxER,KAAMD,EAAkES,EAAlET,SAAUsB,EAAwDb,EAAxDa,eAAgBC,EAAwCd,EAAxCc,gBAAiBuC,EAAuBrD,EAAvBqD,mBAC7F,OAAO39B,EAAAA,GAAAA,MAAA,OAAgBmE,UAAW0K,EAAAA,MAAAA,KAAWmpB,GAAAA,YAAiBA,GAAAA,gBAAqBh3B,MAAO,CAAE8S,WAAY,UAAWvT,SAAA,CAC9Gi9B,IAAah9B,EAAAA,GAAAA,KAAA,OAAK2D,UAAW6zB,GAAAA,UAAcz3B,SAAEG,EAAAA,KAAAA,EAAO88B,MACrDh9B,EAAAA,GAAAA,KAAC06B,GAAY,CACTpB,KAAMA,EACNqB,eAAgBA,EAChBC,gBAAiBA,EACjB12B,MAAOhG,EACPyF,UAAWA,EACXwgB,QAASA,EACTplB,MAAOA,EACPiC,SAAUA,EACVq4B,SAAUA,EACVnB,aAAW,IAEd+E,IAAYj9B,EAAAA,GAAAA,KAAA,OAAK2D,UAAW6zB,GAAAA,SAAaz3B,SAAEo9B,EAAqBF,EAAW/8B,EAAAA,KAAAA,EAAO+8B,OAdtE3D,EAgBrB,EAAC97B,EAEDsiC,eAAiB,SAAChG,EAAO/6B,EAAOiC,GAC5B,IAAA++B,EAA8BviC,EAAKD,MAA3BoG,EAASo8B,EAATp8B,UAAW4D,EAAMw4B,EAANx4B,OACXrJ,EAA0F47B,EAA1F57B,KAAMimB,EAAoF2V,EAApF3V,QAAS6Y,EAA2ElD,EAA3EkD,UAAWC,EAAgEnD,EAAhEmD,SAAU3D,EAAsDQ,EAAtDR,KAAM1wB,EAAgDkxB,EAAhDlxB,QAAS+xB,EAAuCb,EAAvCa,eAAgBwC,EAAuBrD,EAAvBqD,mBAC3E,OAAI3/B,EAAKQ,MAAMgiC,eAAez8B,SAAS+1B,GAC5B,MAEJ95B,EAAAA,GAAAA,MAAA,OAAgBmE,UAAW0K,EAAAA,MAAAA,KAAWmpB,GAAAA,YAAiBA,GAAAA,gBAAqBh3B,MAAO,CAAE8S,WAAY,UAAWvT,SAAA,CAC9Gi9B,IAAah9B,EAAAA,GAAAA,KAAA,OAAK2D,UAAW6zB,GAAAA,UAAcz3B,SAAE46B,EAAiBqC,EAAY98B,EAAAA,KAAAA,EAAO88B,MAClFh9B,EAAAA,GAAAA,KAACo5B,GAAc,CACXE,KAAMA,EACN/xB,OAAQA,EACRqB,QAASA,EACT1E,MAAOhG,EACPyF,UAAWA,EACXwgB,QAASA,EACTplB,MAAOA,EACPiC,SAAUA,EACVk3B,aAAW,EACXqB,eAAgB,SAAAx6B,GAAK,OAAIvB,EAAKa,SAAS,CAAE2hC,eAAe,GAAD78B,QAAAqP,EAAAA,EAAAA,GAAMhV,EAAKQ,MAAMgiC,gBAAc,CAAE1G,MAAS,kBAAMt4B,EAASjC,EAAM,GAAC,IAE1Hk+B,IAAYj9B,EAAAA,GAAAA,KAAA,OAAK2D,UAAW6zB,GAAAA,SAAaz3B,SAAEo9B,EAAqBF,EAAW/8B,EAAAA,KAAAA,EAAO+8B,OAdtE3D,EAgBrB,EAAC97B,EAEDyiC,aAAe,SAACnG,EAAO/6B,EAAOiC,GAC1B,IAAQk/B,EAAsFpG,EAAtFoG,aAAclD,EAAwElD,EAAxEkD,UAAWC,EAA6DnD,EAA7DmD,SAAU3D,EAAmDQ,EAAnDR,KAAMvwB,EAA6C+wB,EAA7C/wB,KAAM4xB,EAAuCb,EAAvCa,eAAgBwC,EAAuBrD,EAAvBqD,mBACvE,OAAO39B,EAAAA,GAAAA,MAAA,OAAgBmE,UAAW0K,EAAAA,MAAAA,KAAWmpB,GAAAA,YAAiBA,GAAAA,gBAAqBh3B,MAAO,CAAE8S,WAAY,UAAWvT,SAAA,CAC9Gi9B,IAAah9B,EAAAA,GAAAA,KAAA,OAAK2D,UAAW6zB,GAAAA,UAAcz3B,SAAE46B,EAAiBqC,EAAY98B,EAAAA,KAAAA,EAAO88B,MAClFh9B,EAAAA,GAAAA,KAAC22B,GAAmB,CAChBC,SAAU7tB,EACVpF,UAAW0K,EAAAA,MAAAA,KAAWmpB,GAAAA,YACtBz1B,QAAS,SAAAd,GAAC,OAAIi/B,GAAgBA,GAAc,IAE/CjD,IAAYj9B,EAAAA,GAAAA,KAAA,OAAK2D,UAAW6zB,GAAAA,SAAaz3B,SAAEo9B,EAAqBF,EAAW/8B,EAAAA,KAAAA,EAAO+8B,OAPtE3D,EASrB,EAAC97B,EAED2iC,iBAAmB,SAACrG,EAAO/6B,EAAOiC,GAC9B,IAAQo/B,EAAc5iC,EAAKQ,MAAnBoiC,UACAz8B,EAAcnG,EAAKD,MAAnBoG,UACA21B,EAAwFQ,EAAxFR,KAAM4D,EAAkFpD,EAAlFoD,UAAWF,EAAuElD,EAAvEkD,UAAWC,EAA4DnD,EAA5DmD,SAAUoD,EAAkDvG,EAAlDuG,WAAY1F,EAAsCb,EAAtCa,eAAgBwC,EAAsBrD,EAAtBqD,mBAC1E,OAAO39B,EAAAA,GAAAA,MAAA,OAAAO,SAAA,EACHP,EAAAA,GAAAA,MAAA,OAAKmE,UAAW0K,EAAAA,MAAAA,KAAWmpB,GAAAA,YAAiBA,GAAAA,gBAAoBz3B,SAAA,CAC3Di9B,IAAah9B,EAAAA,GAAAA,KAAA,OAAK2D,UAAW6zB,GAAAA,UAAcz3B,SAAE46B,EAAiBqC,EAAY98B,EAAAA,KAAAA,EAAO88B,MAClFh9B,EAAAA,GAAAA,KAAC44B,GAAW,CACRx3B,WAAYi/B,EACZ18B,UAAWA,EACXtD,aAAa,MACbR,WAAS,EACTU,QAAQ,WACRgE,KAAK,QACLxF,MAAOA,EACPiC,SAAUA,EACVk3B,aAAW,KAEfl4B,EAAAA,GAAAA,KAAC83B,GAAY,CACTC,QAAM,EAENv3B,MAAO,CAAEyT,WAAY,GACrBlV,MAAM,MACN4E,UAAWA,EACX5B,QAAS,kBAAMvE,EAAKa,SAAS,CAAE+hC,WAAW,GAAO,IAEpDnD,IAAYj9B,EAAAA,GAAAA,KAAA,OAAK2D,UAAW6zB,GAAAA,SAAaz3B,SAAEo9B,EAAqBF,EAAW/8B,EAAAA,KAAAA,EAAO+8B,QAEtFmD,GAAYpgC,EAAAA,GAAAA,KAACk6B,GAAW,CACrBp6B,MAAI,EACJu6B,QAAS,SAAAroB,GAAG,OACRxU,EAAKa,SAAS,CAAE+hC,WAAW,IAAS,kBACxB,OAARpuB,QAAwBnE,IAARmE,GAAqBhR,EAASgR,EAAI,GAAC,EAC3DpU,QAAS,kBAAMJ,EAAKa,SAAS,CAAE+hC,WAAW,GAAQ,EAClD7F,aAAcx7B,EACdu7B,WAAS,IACR,KACJ4C,IAAal9B,EAAAA,GAAAA,KAAA,OAAK2D,UAAW6zB,GAAAA,UAAcz3B,SAAEG,EAAAA,KAAAA,EAAOg9B,OAjCxC5D,EAmCrB,EAAC97B,EAED8iC,WAAa,SAACxG,EAAO/6B,EAAOiC,GACxB,IAAQs4B,EAAkEQ,EAAlER,KAAM2D,EAA4DnD,EAA5DmD,SAAUD,EAAkDlD,EAAlDkD,UAAWrC,EAAuCb,EAAvCa,eAAgBwC,EAAuBrD,EAAvBqD,mBACnD,OAAO39B,EAAAA,GAAAA,MAAA,OAAgBmE,UAAW6zB,GAAAA,YAAiBh3B,MAAO,CAAE8S,WAAY,UAAWvT,SAAA,CAC9Ei9B,IAAah9B,EAAAA,GAAAA,KAAA,OAAK2D,UAAW6zB,GAAAA,UAAcz3B,SAAE46B,EAAiBqC,EAAY98B,EAAAA,KAAAA,EAAO88B,MAClFh9B,EAAAA,GAAAA,KAACo8B,GAAU,CACPr9B,MAAOA,EACPiC,SAAUA,IAEbi8B,IAAYj9B,EAAAA,GAAAA,KAAA,OAAK2D,UAAW6zB,GAAAA,SAAaz3B,SAAEo9B,EAAqBF,EAAW/8B,EAAAA,KAAAA,EAAO+8B,OANtE3D,EAQrB,EAYA97B,EACA+iC,WAAa,WACT,IAAAC,EAAoChjC,EAAKQ,MAAnCyhC,EAAYe,EAAZf,aAAcE,EAAWa,EAAXb,YACdH,EAAYhiC,EAAKQ,MAAMy/B,SAAvB+B,QACF9yB,EAAqB,MAAZ8yB,GAA+B,OAAZA,GAAgC,OAAZA,GAAgC,OAAZA,GAAgC,MAAZA,GAA+B,OAAZA,GAAgC,MAAZA,GAA+B,MAAZA,EAAkBt/B,EAAAA,KAAAA,EAAOs/B,GAAWA,EAiD1L,OAhDIC,EAAa/gC,QAAU,IACvBgO,GAASlN,EAAAA,GAAAA,MAAA,OAAAO,SAAA,EACLC,EAAAA,GAAAA,KAAA,OAAK,gBAAc,cAAc,gBAAc,OAC3C+B,QAAS,SAAAd,GACLzD,EAAKa,SAAS,CAAEshC,YAAa1+B,EAAE6X,gBAAiB,WAC5Ctb,EAAKD,MAAMkjC,YACPjjC,EAAKD,MAAMmjC,WAAa/D,IACxB57B,YAAW,kBAAMvD,EAAKD,MAAMojC,YAAYhE,GAAwB,GAAE,IAC1E,GACJ,EAAE58B,SAAE2M,KACR1M,EAAAA,GAAAA,KAACgX,GAAAA,KAAI,CACD/Y,GAAG,cACHgZ,SAAU0oB,EACViB,aAAW,EACX9gC,KAAM04B,QAAQmH,GACd/hC,QAAS,kBAAMJ,EAAKa,SAAS,CAAEshC,YAAa,MAAO,EAAC5/B,SAEnD0/B,EAAa99B,KAAI,SAAA0E,GACd,IAAIw6B,EAAMx6B,EAIV,MAHkB,kBAAPA,IACPw6B,EAAMx6B,EAAGnC,QAGT1E,EAAAA,GAAAA,MAACoC,GAAAA,SAAQ,CAEL+H,SAAUk3B,IAAQrB,EAClB77B,UAAW,YAAck9B,EACzBrgC,MAAO,CAAEu5B,aAAc,iBACvBh4B,QAAS,WACL,IAAM07B,GAAQ3T,EAAAA,GAAAA,IAAAA,EAAAA,GAAAA,GAAA,GAAQtsB,EAAKQ,MAAMy/B,UAAQ,IAAE+B,QAASqB,IACpDrjC,EAAKa,SAAS,CAAEshC,YAAa,KAAMlC,SAAAA,IAAY,WAC3CjgC,EAAKD,MAAMyD,SAASy8B,GACpBjgC,EAAKsjC,YAAYD,EACrB,IACCrjC,EAAKD,MAAMkjC,aACPjjC,EAAKD,MAAMmjC,WAAa/D,IACrBn/B,EAAKD,MAAMmjC,WAAa/D,KACpB,aAARkE,GACA9/B,YAAW,kBAAMvD,EAAKD,MAAMojC,YAAYhE,GAAoB,GAAE,IAEtE,EAAE58B,SAAA,EAAoC,IAAlC8gC,EAAIE,OAAO,kBAA2BF,EAAM3gC,EAAAA,KAAAA,EAAO2gC,GAAoB,kBAAPx6B,GAAmBA,EAAG2zB,SAAUh6B,EAAAA,GAAAA,KAAA,OAAKQ,MAAO,CAAEyT,WAAY,GAAIlU,SAAEG,EAAAA,KAAAA,EAAOmG,EAAG2zB,YAhBzI6G,EAmBjB,UAKLn0B,CACX,EAAClP,EAEDkiC,YAAc,WACV,IAAAsB,EAA0DxjC,EAAKQ,MAAvDyhC,EAAYuB,EAAZvB,aAAchC,EAAQuD,EAARvD,SAAsB+B,EAAOwB,EAAnBvD,SAAY+B,QACxCyB,GAAezuB,EAAAA,EAAAA,GAAOitB,GAK1B,GAJkC,kBAAvBwB,EAAgB,KACvBA,EAAkBA,EAAgBt/B,KAAI,SAAA0E,GAAE,OAAIA,EAAGnC,KAAK,KAGpDs7B,GAAWyB,EAAgBviC,OAAS,EAAG,CACvC,IAAMwiC,GAAWpX,EAAAA,GAAAA,GAAA,GAAQ2T,GACnB0D,EAAaF,GAAiBA,EAAgBx7B,QAAQ+5B,GAAW,GAAKyB,EAAgBviC,QAC5FwiC,EAAY1B,QAAU2B,EACtB3jC,EAAKa,SAAS,CAAEo/B,SAAUyD,IAAe,WACrC1jC,EAAKD,MAAMyD,SAASkgC,GACpB1jC,EAAKsjC,YAAYK,EACrB,GACJ,CACJ,EAAC3jC,EAEDqkB,kBAAoB,WAChBrkB,EAAKsjC,aAET,EAACtjC,EAEDu3B,mBAAqB,SAAAqM,GACa,aAA1B5jC,EAAKD,MAAM8jC,YAA6B7jC,EAAKD,MAAM+jC,UACnDvgC,YAAW,kBAAMvD,EAAK8jC,UAAU,GAAE,EAE1C,EAAC9jC,EAED+jC,cAAgB,SAAAC,GACZ,OAAO,SAACziC,EAAOu6B,EAAMnoB,GACjB,IAAMssB,EAAWzuB,KAAKC,MAAMD,KAAK8C,UAAUtU,EAAKQ,MAAMy/B,WAEjC,kBAAV1+B,GAAwBu6B,GAAwB,oBAATA,EAG9CmE,EAASnE,GAAQkI,GAAaziC,EAF9B+N,OAAOC,KAAKhO,GAAOmH,SAAQ,SAAAu7B,GAAK,OAAIhE,EAASgE,GAAS1iC,EAAM0iC,EAAM,IAItEhE,EAASx/B,GAAKT,EAAKkkC,UAAUzjC,GAC7Bw/B,EAAS51B,IAAMrK,EAAKD,MAAMsK,IAE1BrK,EAAKa,SAAS,CAAEo/B,SAAAA,IAAY,WACxBjgC,EAAKmkC,eAAe5iC,EAAOu6B,GAAQkI,GACnChkC,EAAKD,MAAMyD,SAASy8B,GACpBtsB,GAAMA,GACV,GACJ,CACJ,EAAC3T,EAgBDokC,OAAS,WACL,IAAAC,EAA8FrkC,EAAKQ,MAA3F8jC,EAAMD,EAANC,OAAQ5jC,EAAI2jC,EAAJ3jC,KAAM6K,EAAI84B,EAAJ94B,KAAMg5B,EAAOF,EAAPE,QAAStE,EAAQoE,EAARpE,SAAU70B,EAAOi5B,EAAPj5B,QAAqB42B,EAAOqC,EAAnBpE,SAAY+B,QAAWwC,EAAUH,EAAVG,WAC/EC,EAA6BzkC,EAAKD,MAA1BgK,EAAM06B,EAAN16B,OAAQ26B,EAAQD,EAARC,SAEhB,OAAO1iC,EAAAA,GAAAA,MAAC49B,EAAAA,SAAQ,CAAAr9B,SAAA,CACXgiC,EAAUvkC,EAAK+hC,iBACZv/B,EAAAA,GAAAA,KAAC22B,GAAmB,CAChBC,SAAU7tB,EACVpF,UAAW0K,EAAAA,MAAAA,KAAWmpB,GAAAA,aAAkBgI,GAAWhiC,EAAKQ,MAAMyhC,aAAa/gC,QAAU84B,GAAAA,wBACrF5uB,QAASA,EACTrB,OAAQA,EACRxF,QAAS,SAAAd,GACDu+B,IACIhiC,EAAKQ,MAAMyhC,aAAa/gC,OAAS,EACjClB,EAAKkiC,cAELliC,EAAKa,SAAS,CAAEshC,YAAa1+B,EAAE6X,gBAG3C,KAERtZ,EAAAA,GAAAA,MAAA,OAAKmE,UAAW6zB,GAAAA,UAAcz3B,SAAA,EAC1BP,EAAAA,GAAAA,MAAA,QAAMmE,UAAW6zB,GAAAA,SAAaz3B,SAAA,CACzBG,EAAAA,KAAAA,EAAOhC,GACLgkC,EAAWhiC,EAAAA,KAAAA,EAAO,eAAgBu9B,EAASx/B,IAAM,GACnD+jC,GAAahiC,EAAAA,GAAAA,KAAC4K,EAAAA,EAAU,CAACjH,UAAW6zB,GAAAA,SAAcjzB,KAAK,QAAQxC,QAAS,kBAAMvE,EAAKa,SAAS,CAAE8jC,SAAUjiC,EAAAA,KAAAA,EAAO8hC,IAAc,EAACjiC,UAACC,EAAAA,GAAAA,KAACoiC,GAAAA,EAAQ,MAAmB,QAE/JN,EAAO95B,QAAO,SAAAq6B,GAAA,IAAGC,EAAUD,EAAVC,WAAU,OAAO9kC,EAAK8kC,EAAW,IAC9C3gC,KAAI,SAAAm4B,GACD,IAAQwI,EAA4CxI,EAA5CwI,WAAY/H,EAAgCT,EAAhCS,aAAcjB,EAAkBQ,EAAlBR,KAAMnV,EAAY2V,EAAZ3V,QACxC,OAAO3mB,EAAK8kC,GACRxI,OACmBjsB,IAAnB4vB,EAASnE,GAAsBmE,EAASnE,GAAQiB,EAChD/8B,EAAK+jC,cAAcjI,GACnBnV,GAAW,GAEnB,OAEPqb,IAAWx/B,EAAAA,GAAAA,KAAA,OAAK2D,UAAW6zB,GAAAA,eAAoBh3B,MAAO,CAAEiO,QAAS,EAAGvJ,OAAQ,GAAIoX,KAAM,IAAKvc,UACxFC,EAAAA,GAAAA,KAAA,OAAK+B,QAAS,kBAAMvE,EAAKkiC,aAAa,EAAE/7B,UAAW0K,EAAAA,MAAAA,KAAWmpB,GAAAA,QAAa,YAAYz3B,SAAEvC,EAAK+iC,iBAEjG/iC,EAAK+kC,kBACL/kC,EAAKQ,MAAM0H,OAAQ1F,EAAAA,GAAAA,KAACyG,GAAAA,QAAW,CAACvC,MAAOhE,EAAAA,KAAAA,EAAO,WAAYmE,KAAM7G,EAAKQ,MAAM0H,MAAO9H,QAAS,kBAAMJ,EAAKa,SAAS,CAAEqH,MAAO,IAAK,IAAO,KACpIlI,EAAKQ,MAAMmkC,UAAWniC,EAAAA,GAAAA,KAAC60B,EAAAA,QAAa,CAAC3wB,MAAOhE,EAAAA,KAAAA,EAAO,gBAAiBmE,KAAM7G,EAAKQ,MAAMmkC,SAAUvkC,QAAS,kBAAMJ,EAAKa,SAAS,CAAE8jC,SAAU,IAAK,IAAO,KACpJ3kC,EAAKglC,mBAEd,EAhrBIj8B,EAAOA,GAAQ,CAAC,EAChB,IAAIk3B,EAAWlgC,EAAMkgC,UAAY,CAC7B+B,QAASj5B,EAAKk5B,aAA+C,kBAAzBl5B,EAAKk5B,aAAa,GAAkBl5B,EAAKk5B,aAAa,GAAGv7B,MAAQqC,EAAKk5B,aAAa,GAAK,IAiCnG,OA9BxBhC,EAAS+B,SAAWj5B,EAAKk5B,eAC1BhC,EAAS+B,QAA0C,kBAAzBj5B,EAAKk5B,aAAa,GAAkBl5B,EAAKk5B,aAAa,GAAGv7B,MAAQqC,EAAKk5B,aAAa,IAGjHjiC,EAAKQ,MAAQ,CACT8jC,OAAQv7B,EAAKu7B,QAAUvkC,EAAMukC,QAAU,GACvC5jC,KAAMqI,EAAKrI,MAAQX,EAAMW,MAAQ,GACjC6K,KAAMxC,EAAKwC,MAAQxL,EAAMwL,MAAQ,GACjCH,QAASrC,EAAKqC,SAAWrL,EAAMqL,SAAW,GAC1Co5B,WAAYz7B,EAAKy7B,YAAczkC,EAAMykC,YAAc,GAEnDvC,aAAcl5B,EAAKk5B,cAAgB,GAEnCE,aAAa,EACbS,WAAW,EACX2B,SAAS,EACTr8B,MAAO,GACPy8B,SAAU,GAEVM,IAAK,CAAC,EACNC,yBAA0B,GAC1BC,qBAAsB,GAEtB3C,eAAgB,GAEhBvC,SAAAA,EACAmF,aAAc,KACdC,iBAAkBrlC,EAAKD,MAAMslC,kBAGjCrlC,EAAKslC,iBAAmB,KAAKtlC,CACjC,CAqeC,OAreAqB,EAAAA,EAAAA,GAAAi+B,EAAA,EAAAh+B,IAAA,mCAAAC,MAED,SAAiCO,GAAY,IAADC,EAAA,KACxC,GAAKD,GAAcA,EAAUm+B,SAA7B,CAKA,IAAMA,EAAWzuB,KAAKC,MAAMD,KAAK8C,UAAUxS,EAAUm+B,YAChDA,EAAS+B,SAAWngC,KAAKrB,MAAMyhC,cAAgBpgC,KAAKrB,MAAMyhC,aAAa/gC,SACxE++B,EAAS+B,QAAgD,kBAA/BngC,KAAKrB,MAAMyhC,aAAa,GAAkBpgC,KAAKrB,MAAMyhC,aAAa,GAAGv7B,MAAQ7E,KAAKrB,MAAMyhC,aAAa,IAGnI,IAAIttB,EAAW,KAEX7S,EAAUyjC,gBAAkBzjC,EAAUyjC,eAAeC,UAAY3jC,KAAK9B,MAAMsK,OAC5EsK,EAAW,CAAC,GACHywB,aAAe5zB,KAAKC,MAAMD,KAAK8C,UAAUxS,EAAUyjC,iBAC5D1jC,KAAKyjC,kBAAoBvqB,aAAalZ,KAAKyjC,kBAC3CzjC,KAAKyjC,iBAAmB/hC,YAAW,kBAC/BxB,EAAKlB,SAAS,CAAEukC,aAAc,MAAO,GACrCtjC,EAAUyjC,eAAeE,aAAe,MAG5Cj0B,KAAK8C,UAAU2rB,KAAczuB,KAAK8C,UAAUzS,KAAKrB,MAAMy/B,aACvDtrB,EAAWA,GAAY,CAAC,GACfsrB,SAAWA,GAGpBp+B,KAAKrB,MAAM6kC,mBAAqBvjC,EAAUujC,oBAC1C1wB,EAAWA,GAAY,CAAC,GACf0wB,iBAAmBvjC,EAAUujC,kBAG1C1wB,GAAY9S,KAAKhB,SAAS8T,EA5B1B,MAFIzL,QAAQC,IAAIqI,KAAK8C,UAAUxS,GA+BnC,GAAC,CAAAR,IAAA,uBAAAC,MAED,WACIM,KAAKyjC,kBAAoBvqB,aAAalZ,KAAKyjC,kBAC3CzjC,KAAKyjC,iBAAmB,IAC5B,GAEA,CAAAhkC,IAAA,cAAAC,MACA,SAAYygC,EAASruB,GAEjB,IAAIY,GAAU,EACV0rB,EAAWzuB,KAAKC,MAAMD,KAAK8C,UAAUzS,KAAKrB,MAAMy/B,WACpDp+B,KAAKrB,MAAM8jC,OAAO57B,SAAQ,SAAA4zB,GAClBA,EAAMR,WAA+BzrB,IAAvBisB,EAAMS,mBACS1sB,IAAzB4vB,EAAS3D,EAAMR,QACfvnB,GAAU,EACV0rB,EAAS3D,EAAMR,MAAQQ,EAAMS,aAGzC,IACIxoB,GACA1S,KAAKhB,SAAS,CAAEo/B,SAAAA,IAAY,kBAAMtsB,GAAMA,GAAI,IAC5C9R,KAAK9B,MAAMyD,SAASy8B,IAEpBtsB,GAAMA,GAEd,GAEA,CAAArS,IAAA,WAAAC,MACA,WACI,GAGJ,CAAAD,IAAA,iBAAAC,MACA,SAAeA,EAAOu6B,GAClB,GACH,CAAAx6B,IAAA,iBAAAC,MAygBD,WACI,OAAO,IACX,GAAC,CAAAD,IAAA,kBAAAC,MAED,WACI,OAAIM,KAAKrB,MAAM4kC,cACJ5iC,EAAAA,GAAAA,KAAA,OAAK2D,UAAW6zB,GAAAA,UAAgDh3B,MAAO,CAAEiO,QAAS,EAAGvJ,OAAQ,GAAI4jB,QAAS,IAAK/oB,SACjHV,KAAK6jC,YAAc7jC,KAAK6jC,YAAY7jC,KAAKrB,MAAM4kC,cAAgB1iC,EAAAA,KAAAA,EAAO,aADhCb,KAAKrB,MAAM4kC,aAAaxkB,IAI5D,IAEf,IAAC,EAAAtf,IAAA,oBAAAC,MA/HD,SAAyBokC,GAAU,IAADC,EAC1BrkC,EAAQ,GAMZ,OALmB,QAAnBqkC,EAAID,EAAQE,eAAO,IAAAD,GAAfA,EAAiBE,QACjBvkC,EAAQ,6IACDokC,EAAQI,iBAAiB7kC,SAChCK,EAAK,mBAAAoE,OAAsBggC,EAAQI,iBAAiB,GAAGrlC,KAAI,uBAAAiF,OAAsBggC,EAAQI,iBAAiB,GAAGtlC,GAAE,OAE5Gc,CACX,KAAC+9B,CAAA,CA5gBa,CAAS0G,EAAAA,eCzBrBC,GAAe,CACjB,GAAY,CAAEvlC,KAAM,mBAA4B+O,OAAQ,SAAWy2B,OAAQ,IAC3E,GAAY,CAAExlC,KAAM,mBAA4B+O,OAAQ,SAAWy2B,OAAQ,IAC3E,GAAY,CAAExlC,KAAM,sDAA4B+O,OAAQ,SAAWy2B,OAAQ,IAC3E,GAAY,CAAExlC,KAAM,oBAA4B+O,OAAQ,SAAWy2B,OAAQ,IAC3E,GAAY,CAAExlC,KAAM,oBAA4B+O,OAAQ,SAAWy2B,OAAQ,IAC3E,GAAY,CAAExlC,KAAM,uBAA4B+O,OAAQ,SAAWy2B,OAAQ,IAC3E,MAAY,CAAExlC,KAAM,sDAA4B+O,OAAQ,SAAWy2B,OAAQ,CAAC,MAAO,QAAS,UAAW,MAAO,QAAS,SAAUC,MAAO,CAAC,OAAQ,SAAUC,QAAS,CAAC,OAAQ,OAAQ,UAAW,OAAQ,UACxM,YAAe,CAAE1lC,KAAM,4DAA4B+O,OAAQ,cAAgBy2B,OAAQ,CAAC,MAAO,WAAY,QAAS,WAAYC,MAAO,CAAC,QAAS,SAAU,OAAQ,SAAUC,QAAS,CAAE,OAAQ,UAAW,SAEvM,QAAY,CAAE1lC,KAAM,wBAA4B+O,OAAQ,UAAWy2B,OAAQ,IAC3E,QAAY,CAAExlC,KAAM,wBAA4B+O,OAAQ,UAAWy2B,OAAQ,IAC3E,QAAY,CAAExlC,KAAM,oBAA4B+O,OAAQ,UAAWy2B,OAAQ,IAC3E,QAAY,CAAExlC,KAAM,qBAA4B+O,OAAQ,UAAWy2B,OAAQ,IAC3E,QAAY,CAAExlC,KAAM,qBAA4B+O,OAAQ,UAAWy2B,OAAQ,IAC3E,QAAY,CAAExlC,KAAM,wBAA4B+O,OAAQ,UAAWy2B,OAAQ,IAE3E,qBAA4B,CAAEG,OAAQ,SAAU52B,OAAQ,QAAWy2B,OAAQ,CAAC,SAAUjjB,SAAU,QAAcqjB,MAAO,UAAcC,MAAM,EAAM7lC,KAAM,mGACrJ,mBAA4B,CAAE2lC,OAAQ,OAAU52B,OAAQ,QAAWy2B,OAAQ,CAAC,SAAUjjB,SAAU,QAAcqjB,MAAO,QAAcC,MAAM,EAAM7lC,KAAM,6FACrJ,qBAA4B,CAAE2lC,OAAQ,SAAU52B,OAAQ,QAAWy2B,OAAQ,CAAC,SAAUjjB,SAAU,QAAcqjB,MAAO,UAAcC,MAAM,EAAM7lC,KAAM,6BACrJ,mBAA4B,CAAE2lC,OAAQ,OAAU52B,OAAQ,QAAWy2B,OAAQ,CAAC,SAAUjjB,SAAU,QAAcqjB,MAAO,OAAcC,MAAM,EAAM7lC,KAAM,0BACrJ,qBAA4B,CAAE2lC,OAAQ,SAAU52B,OAAQ,QAAWy2B,OAAQ,CAAC,SAAUjjB,SAAU,QAAcqjB,MAAO,QAAcC,MAAM,EAAM7lC,KAAM,kCACrJ,mBAA4B,CAAE2lC,OAAQ,OAAU52B,OAAQ,QAAWy2B,OAAQ,CAAC,SAAUjjB,SAAU,QAAcqjB,MAAO,OAAcC,MAAM,EAAM7lC,KAAM,+BACrJ,qBAA4B,CAAE2lC,OAAQ,SAAU52B,OAAQ,QAAWy2B,OAAQ,CAAC,SAAUjjB,SAAU,QAAcqjB,MAAO,OAAcC,MAAM,EAAM7lC,KAAM,iCACrJ,mBAA4B,CAAE2lC,OAAQ,OAAU52B,OAAQ,QAAWy2B,OAAQ,CAAC,SAAUjjB,SAAU,QAAcqjB,MAAO,OAAcC,MAAM,EAAM7lC,KAAM,+BACrJ,qBAA4B,CAAE2lC,OAAQ,SAAU52B,OAAQ,QAAWy2B,OAAQ,CAAC,SAAUjjB,SAAU,QAAcqjB,MAAO,SAAcC,MAAM,EAAM7lC,KAAM,mCACrJ,mBAA4B,CAAE2lC,OAAQ,OAAU52B,OAAQ,QAAWy2B,OAAQ,CAAC,SAAUjjB,SAAU,QAAcqjB,MAAO,UAAcC,MAAM,EAAM7lC,KAAM,kCACrJ,yBAA4B,CAAE2lC,OAAQ,SAAU52B,OAAQ,QAAWy2B,OAAQ,CAAC,SAAUjjB,SAAU,QAAcqjB,MAAO,MAAcC,MAAM,EAAM7lC,KAAM,gCACrJ,mBAA4B,CAAE2lC,OAAQ,OAAU52B,OAAQ,QAAWy2B,OAAQ,CAAC,SAAUjjB,SAAU,QAAcqjB,MAAO,QAAcC,MAAM,EAAM7lC,KAAM,gCACrJ,0BAA4B,CAAE2lC,OAAQ,SAAU52B,OAAQ,QAAWy2B,OAAQ,CAAC,SAAUjjB,SAAU,QAAcqjB,MAAO,OAAcC,MAAM,EAAM7lC,KAAM,iCACrJ,yBAA4B,CAAE2lC,OAAQ,SAAU52B,OAAQ,QAAWy2B,OAAQ,CAAC,SAAUjjB,SAAU,YAAcqjB,MAAO,UAAcC,MAAM,EAAM7lC,KAAM,wCACrJ,uBAA4B,CAAE2lC,OAAQ,OAAU52B,OAAQ,QAAWy2B,OAAQ,CAAC,SAAUjjB,SAAU,YAAcqjB,MAAO,UAAcC,MAAM,EAAM7lC,KAAM,sCACrJ,qBAA4B,CAAE2lC,OAAQ,SAAU52B,OAAQ,QAAWy2B,OAAQ,CAAC,SAAUjjB,SAAU,QAAcqjB,MAAO,UAAcC,MAAM,EAAM7lC,KAAM,oCACrJ,mBAA4B,CAAE2lC,OAAQ,OAAU52B,OAAQ,QAAWy2B,OAAQ,CAAC,SAAUjjB,SAAU,QAAcqjB,MAAO,UAAcC,MAAM,EAAM7lC,KAAM,kCACrJ,qBAA4B,CAAE2lC,OAAQ,SAAU52B,OAAQ,QAAWy2B,OAAQ,CAAC,SAAUjjB,SAAU,QAAcqjB,MAAO,UAAcC,MAAM,EAAM7lC,KAAM,oCACrJ,4BAA4B,CAAE2lC,OAAQ,OAAU52B,OAAQ,QAAWy2B,OAAQ,CAAC,SAAUjjB,SAAU,QAAcqjB,MAAO,WAAcC,MAAM,EAAM7lC,KAAM,mCACrJ,wBAA4B,CAAE2lC,OAAQ,OAAU52B,OAAQ,QAAWy2B,OAAQ,CAAC,SAAUjjB,SAAU,QAAcqjB,MAAO,OAAcC,MAAM,EAAM7lC,KAAM,+BACrJ,yBAA4B,CAAE2lC,OAAQ,SAAU52B,OAAQ,QAAWy2B,OAAQ,CAAC,SAAUjjB,SAAU,QAAcqjB,MAAO,MAAcC,MAAM,EAAM7lC,KAAM,gCACrJ,8BAA+B,CAAE2lC,OAAQ,SAAU52B,OAAQ,QAAWy2B,OAAQ,CAAC,SAAUjjB,SAAU,QAAWqjB,MAAO,WAAcC,MAAM,EAAM7lC,KAAM,qCACrJ,0BAA4B,CAAE2lC,OAAQ,OAAU52B,OAAQ,QAAWy2B,OAAQ,CAAC,SAAUjjB,SAAU,QAAcqjB,MAAO,SAAcC,MAAM,EAAM7lC,KAAM,iCACrJ,4BAA6B,CAAE2lC,OAAQ,SAAU52B,OAAQ,QAAWy2B,OAAQ,CAAC,SAAUjjB,SAAU,QAAaqjB,MAAO,SAAcC,MAAM,EAAM7lC,KAAM,mCACrJ,8BAA+B,CAAE2lC,OAAQ,SAAU52B,OAAQ,QAAWy2B,OAAQ,CAAC,SAAUjjB,SAAU,QAAWqjB,MAAO,WAAcC,MAAM,EAAM7lC,KAAM,qCACrJ,qBAA4B,CAAE2lC,OAAQ,SAAU52B,OAAQ,QAAWy2B,OAAQ,CAAC,SAAUjjB,SAAU,QAAcqjB,MAAO,WAAcC,MAAM,EAAM7lC,KAAM,qCACrJ,mBAA4B,CAAE2lC,OAAQ,OAAU52B,OAAQ,QAAWy2B,OAAQ,CAAC,SAAUjjB,SAAU,QAAcqjB,MAAO,UAAcC,MAAM,EAAM7lC,KAAM,kCACrJ,qBAA4B,CAAE2lC,OAAQ,SAAU52B,OAAQ,QAAWy2B,OAAQ,CAAC,SAAUjjB,SAAU,QAAcqjB,MAAO,WAAcC,MAAM,EAAM7lC,KAAM,qCACrJ,mBAA4B,CAAE2lC,OAAQ,OAAU52B,OAAQ,QAAWy2B,OAAQ,CAAC,SAAUjjB,SAAU,QAAcqjB,MAAO,SAAcC,MAAM,EAAM7lC,KAAM,iCACrJ,qBAA4B,CAAE2lC,OAAQ,SAAU52B,OAAQ,QAAWy2B,OAAQ,CAAC,SAAUjjB,SAAU,QAAcqjB,MAAO,UAAcC,MAAM,EAAM7lC,KAAM,oCACrJ,qBAA4B,CAAE2lC,OAAQ,SAAU52B,OAAQ,QAAWy2B,OAAQ,CAAC,SAAUjjB,SAAU,QAAcqjB,MAAO,SAAcC,MAAM,EAAM7lC,KAAM,mCACrJ,mBAA4B,CAAE2lC,OAAQ,OAAU52B,OAAQ,QAAWy2B,OAAQ,CAAC,SAAUjjB,SAAU,QAAcqjB,MAAO,UAAcC,MAAM,EAAM7lC,KAAM,kCACrJ,qBAA4B,CAAE2lC,OAAQ,SAAU52B,OAAQ,QAAWy2B,OAAQ,CAAC,SAAUjjB,SAAU,QAAcqjB,MAAO,OAAcC,MAAM,EAAM7lC,KAAM,iCACrJ,mBAA4B,CAAE2lC,OAAQ,OAAU52B,OAAQ,QAAWy2B,OAAQ,CAAC,SAAUjjB,SAAU,QAAcqjB,MAAO,OAAcC,MAAM,EAAM7lC,KAAM,+BACrJ,qBAA4B,CAAE2lC,OAAQ,SAAU52B,OAAQ,QAAWy2B,OAAQ,CAAC,SAAUjjB,SAAU,QAAcqjB,MAAO,QAAcC,MAAM,EAAM7lC,KAAM,kCACrJ,mBAA4B,CAAE2lC,OAAQ,OAAU52B,OAAQ,QAAWy2B,OAAQ,CAAC,SAAUjjB,SAAU,QAAcqjB,MAAO,UAAcC,MAAM,EAAM7lC,KAAM,kCACrJ,qBAA4B,CAAE2lC,OAAQ,SAAU52B,OAAQ,QAAWy2B,OAAQ,CAAC,SAAUjjB,SAAU,QAAcqjB,MAAO,MAAcC,MAAM,EAAM7lC,KAAM,gCACrJ,qBAA4B,CAAE2lC,OAAQ,SAAU52B,OAAQ,QAAWy2B,OAAQ,CAAC,SAAUjjB,SAAU,QAAcqjB,MAAO,QAAcC,MAAM,EAAM7lC,KAAM,kCACrJ,mBAA4B,CAAE2lC,OAAQ,OAAU52B,OAAQ,QAAWy2B,OAAQ,CAAC,SAAUjjB,SAAU,QAAcqjB,MAAO,QAAcC,MAAM,EAAM7lC,KAAM,gCACrJ,+BAAgC,CAAE2lC,OAAQ,SAAU52B,OAAQ,QAAQy2B,OAAQ,CAAC,SAAUjjB,SAAU,QAAcqjB,MAAO,YAAcC,MAAM,EAAM7lC,KAAM,sCACtJ,yBAA4B,CAAE2lC,OAAQ,OAAU52B,OAAQ,QAAWy2B,OAAQ,CAAC,SAAUjjB,SAAU,QAAcqjB,MAAO,QAAcC,MAAM,EAAM7lC,KAAM,gCACrJ,yBAA4B,CAAE2lC,OAAQ,SAAU52B,OAAQ,QAAWy2B,OAAQ,CAAC,SAAUjjB,SAAU,QAAcqjB,MAAO,MAAcC,MAAM,EAAM7lC,KAAM,gCACrJ,uBAA4B,CAAE2lC,OAAQ,OAAU52B,OAAQ,QAAWy2B,OAAQ,CAAC,SAAUjjB,SAAU,QAAcqjB,MAAO,MAAcC,MAAM,EAAM7lC,KAAM,8BACrJ,qBAA4B,CAAE2lC,OAAQ,SAAU52B,OAAQ,QAAWy2B,OAAQ,CAAC,SAAUjjB,SAAU,QAAcqjB,MAAO,OAAcC,MAAM,EAAM7lC,KAAM,iCACrJ,qBAA4B,CAAE2lC,OAAQ,SAAU52B,OAAQ,QAAWy2B,OAAQ,CAAC,SAAUjjB,SAAU,QAAcqjB,MAAO,UAAcC,MAAM,EAAM7lC,KAAM,oCACrJ,mBAA4B,CAAE2lC,OAAQ,OAAU52B,OAAQ,QAAWy2B,OAAQ,CAAC,SAAUjjB,SAAU,QAAcqjB,MAAO,UAAcC,MAAM,EAAM7lC,KAAM,kCACrJ,mBAA4B,CAAE2lC,OAAQ,OAAU52B,OAAQ,QAAWy2B,OAAQ,CAAC,SAAUjjB,SAAU,QAAcqjB,MAAO,YAAcC,MAAM,EAAM7lC,KAAM,oCACrJ,qBAA4B,CAAE2lC,OAAQ,SAAU52B,OAAQ,QAAWy2B,OAAQ,CAAC,SAAUjjB,SAAU,QAAcqjB,MAAO,OAAcC,MAAM,EAAM7lC,KAAM,iCACrJ,qBAA4B,CAAE2lC,OAAQ,SAAU52B,OAAQ,QAAWy2B,OAAQ,CAAC,SAAUjjB,SAAU,QAAcqjB,MAAO,SAAcC,MAAM,EAAM7lC,KAAM,mCACrJ,qBAA4B,CAAE2lC,OAAQ,SAAU52B,OAAQ,QAAWy2B,OAAQ,CAAC,SAAUjjB,SAAU,QAAcqjB,MAAO,SAAcC,MAAM,EAAM7lC,KAAM,mCACrJ,qBAA4B,CAAE2lC,OAAQ,SAAU52B,OAAQ,QAAWy2B,OAAQ,CAAC,SAAUjjB,SAAU,QAAcqjB,MAAO,QAAcC,MAAM,EAAM7lC,KAAM,kCAErJ,kBAA4B,CAAE2lC,OAAQ,SAAU52B,OAAQ,QAAWy2B,OAAQ,CAAC,YAAa,YAAa,UAAWjjB,SAAU,QAAcqjB,MAAO,UAAcC,MAAM,EAAM7lC,KAAM,uGAChL,gBAA4B,CAAE2lC,OAAQ,OAAU52B,OAAQ,QAAWy2B,OAAQ,CAAC,YAAa,YAAa,UAAWjjB,SAAU,QAAcqjB,MAAO,QAAcC,MAAM,EAAM7lC,KAAM,iGAChL,kBAA4B,CAAE2lC,OAAQ,SAAU52B,OAAQ,QAAWy2B,OAAQ,CAAC,YAAa,YAAa,UAAWjjB,SAAU,QAAcqjB,MAAO,UAAcC,MAAM,EAAM7lC,KAAM,iCAChL,wBAA4B,CAAE2lC,OAAQ,SAAU52B,OAAQ,QAAWy2B,OAAQ,CAAC,YAAa,YAAa,UAAWjjB,SAAU,QAAcqjB,MAAO,QAAcC,MAAM,EAAM7lC,KAAM,+BAChL,gBAA4B,CAAE2lC,OAAQ,OAAU52B,OAAQ,QAAWy2B,OAAQ,CAAC,YAAa,YAAa,UAAWjjB,SAAU,QAAcqjB,MAAO,OAAcC,MAAM,EAAM7lC,KAAM,8BAChL,kBAA4B,CAAE2lC,OAAQ,SAAU52B,OAAQ,QAAWy2B,OAAQ,CAAC,YAAa,YAAa,UAAWjjB,SAAU,QAAcqjB,MAAO,QAAcC,MAAM,EAAM7lC,KAAM,sCAChL,gBAA4B,CAAE2lC,OAAQ,OAAU52B,OAAQ,QAAWy2B,OAAQ,CAAC,YAAa,YAAa,UAAWjjB,SAAU,QAAcqjB,MAAO,OAAcC,MAAM,EAAM7lC,KAAM,mCAChL,kBAA4B,CAAE2lC,OAAQ,SAAU52B,OAAQ,QAAWy2B,OAAQ,CAAC,YAAa,YAAa,UAAWjjB,SAAU,QAAcqjB,MAAO,OAAcC,MAAM,EAAM7lC,KAAM,qCAChL,gBAA4B,CAAE2lC,OAAQ,OAAU52B,OAAQ,QAAWy2B,OAAQ,CAAC,YAAa,YAAa,UAAWjjB,SAAU,QAAcqjB,MAAO,OAAcC,MAAM,EAAM7lC,KAAM,mCAChL,kBAA4B,CAAE2lC,OAAQ,SAAU52B,OAAQ,QAAWy2B,OAAQ,CAAC,YAAa,YAAa,UAAWjjB,SAAU,QAAcqjB,MAAO,SAAcC,MAAM,EAAM7lC,KAAM,uCAChL,gBAA4B,CAAE2lC,OAAQ,OAAU52B,OAAQ,QAAWy2B,OAAQ,CAAC,YAAa,YAAa,UAAWjjB,SAAU,QAAcqjB,MAAO,UAAcC,MAAM,EAAM7lC,KAAM,sCAChL,sBAA4B,CAAE2lC,OAAQ,SAAU52B,OAAQ,QAAWy2B,OAAQ,CAAC,YAAa,YAAa,UAAWjjB,SAAU,QAAcqjB,MAAO,MAAcC,MAAM,EAAM7lC,KAAM,oCAChL,gBAA4B,CAAE2lC,OAAQ,OAAU52B,OAAQ,QAAWy2B,OAAQ,CAAC,YAAa,YAAa,UAAWjjB,SAAU,QAAcqjB,MAAO,QAAcC,MAAM,EAAM7lC,KAAM,oCAChL,uBAA4B,CAAE2lC,OAAQ,SAAU52B,OAAQ,QAAWy2B,OAAQ,CAAC,YAAa,YAAa,UAAWjjB,SAAU,QAAcqjB,MAAO,OAAcC,MAAM,EAAM7lC,KAAM,qCAChL,sBAA4B,CAAE2lC,OAAQ,SAAU52B,OAAQ,QAAWy2B,OAAQ,CAAC,YAAa,YAAa,UAAWjjB,SAAU,YAAcqjB,MAAO,UAAcC,MAAM,EAAM7lC,KAAM,4CAChL,oBAA4B,CAAE2lC,OAAQ,OAAU52B,OAAQ,QAAWy2B,OAAQ,CAAC,YAAa,YAAa,UAAWjjB,SAAU,YAAcqjB,MAAO,UAAcC,MAAM,EAAM7lC,KAAM,0CAChL,kBAA4B,CAAE2lC,OAAQ,SAAU52B,OAAQ,QAAWy2B,OAAQ,CAAC,YAAa,YAAa,UAAWjjB,SAAU,QAAcqjB,MAAO,UAAcC,MAAM,EAAM7lC,KAAM,wCAChL,gBAA4B,CAAE2lC,OAAQ,OAAU52B,OAAQ,QAAWy2B,OAAQ,CAAC,YAAa,YAAa,UAAWjjB,SAAU,QAAcqjB,MAAO,UAAcC,MAAM,EAAM7lC,KAAM,sCAChL,kBAA4B,CAAE2lC,OAAQ,SAAU52B,OAAQ,QAAWy2B,OAAQ,CAAC,YAAa,YAAa,UAAWjjB,SAAU,QAAcqjB,MAAO,UAAcC,MAAM,EAAM7lC,KAAM,wCAChL,yBAA4B,CAAE2lC,OAAQ,OAAU52B,OAAQ,QAAWy2B,OAAQ,CAAC,YAAa,YAAa,UAAWjjB,SAAU,QAAcqjB,MAAO,WAAcC,MAAM,EAAM7lC,KAAM,uCAChL,qBAA4B,CAAE2lC,OAAQ,OAAU52B,OAAQ,QAAWy2B,OAAQ,CAAC,YAAa,YAAa,UAAWjjB,SAAU,QAAcqjB,MAAO,OAAcC,MAAM,EAAM7lC,KAAM,mCAChL,sBAA4B,CAAE2lC,OAAQ,SAAU52B,OAAQ,QAAWy2B,OAAQ,CAAC,YAAa,YAAa,UAAWjjB,SAAU,QAAcqjB,MAAO,MAAcC,MAAM,EAAM7lC,KAAM,oCAChL,2BAA4B,CAAE2lC,OAAQ,SAAU52B,OAAQ,QAAWy2B,OAAQ,CAAC,YAAa,YAAa,UAAWjjB,SAAU,QAAcqjB,MAAO,WAAcC,MAAM,EAAM7lC,KAAM,yCAChL,uBAA4B,CAAE2lC,OAAQ,OAAU52B,OAAQ,QAAWy2B,OAAQ,CAAC,YAAa,YAAa,UAAWjjB,SAAU,QAAcqjB,MAAO,SAAcC,MAAM,EAAM7lC,KAAM,qCAChL,yBAA4B,CAAE2lC,OAAQ,SAAU52B,OAAQ,QAAWy2B,OAAQ,CAAC,YAAa,YAAa,UAAWjjB,SAAU,QAAcqjB,MAAO,SAAcC,MAAM,EAAM7lC,KAAM,uCAChL,2BAA4B,CAAE2lC,OAAQ,SAAU52B,OAAQ,QAAWy2B,OAAQ,CAAC,YAAa,YAAa,UAAWjjB,SAAU,QAAcqjB,MAAO,WAAcC,MAAM,EAAM7lC,KAAM,yCAChL,kBAA4B,CAAE2lC,OAAQ,SAAU52B,OAAQ,QAAWy2B,OAAQ,CAAC,YAAa,YAAa,UAAWjjB,SAAU,QAAcqjB,MAAO,WAAcC,MAAM,EAAM7lC,KAAM,yCAChL,gBAA4B,CAAE2lC,OAAQ,OAAU52B,OAAQ,QAAWy2B,OAAQ,CAAC,YAAa,YAAa,UAAWjjB,SAAU,QAAcqjB,MAAO,UAAcC,MAAM,EAAM7lC,KAAM,sCAChL,kBAA4B,CAAE2lC,OAAQ,SAAU52B,OAAQ,QAAWy2B,OAAQ,CAAC,YAAa,YAAa,UAAWjjB,SAAU,QAAcqjB,MAAO,WAAcC,MAAM,EAAM7lC,KAAM,yCAChL,gBAA4B,CAAE2lC,OAAQ,OAAU52B,OAAQ,QAAWy2B,OAAQ,CAAC,YAAa,YAAa,UAAWjjB,SAAU,QAAcqjB,MAAO,SAAcC,MAAM,EAAM7lC,KAAM,qCAChL,kBAA4B,CAAE2lC,OAAQ,SAAU52B,OAAQ,QAAWy2B,OAAQ,CAAC,YAAa,YAAa,UAAWjjB,SAAU,QAAcqjB,MAAO,UAAcC,MAAM,EAAM7lC,KAAM,wCAChL,kBAA4B,CAAE2lC,OAAQ,SAAU52B,OAAQ,QAAWy2B,OAAQ,CAAC,YAAa,YAAa,UAAWjjB,SAAU,QAAcqjB,MAAO,SAAcC,MAAM,EAAM7lC,KAAM,uCAChL,gBAA4B,CAAE2lC,OAAQ,OAAU52B,OAAQ,QAAWy2B,OAAQ,CAAC,YAAa,YAAa,UAAWjjB,SAAU,QAAcqjB,MAAO,UAAcC,MAAM,EAAM7lC,KAAM,sCAChL,kBAA4B,CAAE2lC,OAAQ,SAAU52B,OAAQ,QAAWy2B,OAAQ,CAAC,YAAa,YAAa,UAAWjjB,SAAU,QAAcqjB,MAAO,OAAcC,MAAM,EAAM7lC,KAAM,qCAChL,gBAA4B,CAAE2lC,OAAQ,OAAU52B,OAAQ,QAAWy2B,OAAQ,CAAC,YAAa,YAAa,UAAWjjB,SAAU,QAAcqjB,MAAO,OAAcC,MAAM,EAAM7lC,KAAM,mCAChL,kBAA4B,CAAE2lC,OAAQ,SAAU52B,OAAQ,QAAWy2B,OAAQ,CAAC,YAAa,YAAa,UAAWjjB,SAAU,QAAcqjB,MAAO,QAAcC,MAAM,EAAM7lC,KAAM,sCAChL,gBAA4B,CAAE2lC,OAAQ,OAAU52B,OAAQ,QAAWy2B,OAAQ,CAAC,YAAa,YAAa,UAAWjjB,SAAU,QAAcqjB,MAAO,UAAcC,MAAM,EAAM7lC,KAAM,sCAChL,kBAA4B,CAAE2lC,OAAQ,SAAU52B,OAAQ,QAAWy2B,OAAQ,CAAC,YAAa,YAAa,UAAWjjB,SAAU,QAAcqjB,MAAO,MAAcC,MAAM,EAAM7lC,KAAM,oCAChL,kBAA4B,CAAE2lC,OAAQ,SAAU52B,OAAQ,QAAWy2B,OAAQ,CAAC,YAAa,YAAa,UAAWjjB,SAAU,QAAcqjB,MAAO,QAAcC,MAAM,EAAM7lC,KAAM,sCAChL,gBAA4B,CAAE2lC,OAAQ,OAAU52B,OAAQ,QAAWy2B,OAAQ,CAAC,YAAa,YAAa,UAAWjjB,SAAU,QAAcqjB,MAAO,QAAcC,MAAM,EAAM7lC,KAAM,oCAChL,4BAA4B,CAAE2lC,OAAQ,SAAU52B,OAAQ,QAAWy2B,OAAQ,CAAC,YAAa,YAAa,UAAWjjB,SAAU,QAAcqjB,MAAO,YAAcC,MAAM,EAAM7lC,KAAM,0CAChL,sBAA4B,CAAE2lC,OAAQ,OAAU52B,OAAQ,QAAWy2B,OAAQ,CAAC,YAAa,YAAa,UAAWjjB,SAAU,QAAcqjB,MAAO,QAAcC,MAAM,EAAM7lC,KAAM,oCAChL,sBAA4B,CAAE2lC,OAAQ,SAAU52B,OAAQ,QAAWy2B,OAAQ,CAAC,YAAa,YAAa,UAAWjjB,SAAU,QAAcqjB,MAAO,MAAcC,MAAM,EAAM7lC,KAAM,oCAChL,oBAA4B,CAAE2lC,OAAQ,OAAU52B,OAAQ,QAAWy2B,OAAQ,CAAC,YAAa,YAAa,UAAWjjB,SAAU,QAAcqjB,MAAO,MAAcC,MAAM,EAAM7lC,KAAM,kCAChL,kBAA4B,CAAE2lC,OAAQ,SAAU52B,OAAQ,QAAWy2B,OAAQ,CAAC,YAAa,YAAa,UAAWjjB,SAAU,QAAcqjB,MAAO,OAAcC,MAAM,EAAM7lC,KAAM,qCAChL,kBAA4B,CAAE2lC,OAAQ,SAAU52B,OAAQ,QAAWy2B,OAAQ,CAAC,YAAa,YAAa,UAAWjjB,SAAU,QAAcqjB,MAAO,UAAcC,MAAM,EAAM7lC,KAAM,wCAChL,gBAA4B,CAAE2lC,OAAQ,OAAU52B,OAAQ,QAAWy2B,OAAQ,CAAC,YAAa,YAAa,UAAWjjB,SAAU,QAAcqjB,MAAO,UAAcC,MAAM,EAAM7lC,KAAM,sCAChL,gBAA4B,CAAE2lC,OAAQ,OAAU52B,OAAQ,QAAWy2B,OAAQ,CAAC,YAAa,YAAa,UAAWjjB,SAAU,QAAcqjB,MAAO,YAAcC,MAAM,EAAM7lC,KAAM,wCAChL,kBAA4B,CAAE2lC,OAAQ,SAAU52B,OAAQ,QAAWy2B,OAAQ,CAAC,YAAa,YAAa,UAAWjjB,SAAU,QAAcqjB,MAAO,OAAcC,MAAM,EAAM7lC,KAAM,qCAChL,kBAA4B,CAAE2lC,OAAQ,SAAU52B,OAAQ,QAAWy2B,OAAQ,CAAC,YAAa,YAAa,UAAWjjB,SAAU,QAAcqjB,MAAO,SAAcC,MAAM,EAAM7lC,KAAM,uCAChL,kBAA4B,CAAE2lC,OAAQ,SAAU52B,OAAQ,QAAWy2B,OAAQ,CAAC,YAAa,YAAa,UAAWjjB,SAAU,QAAcqjB,MAAO,SAAcC,MAAM,EAAM7lC,KAAM,uCAChL,kBAA4B,CAAE2lC,OAAQ,SAAU52B,OAAQ,QAAWy2B,OAAQ,CAAC,YAAa,YAAa,UAAWjjB,SAAU,QAAcqjB,MAAO,QAAcC,MAAM,EAAM7lC,KAAM,uCAG9K8lC,GAAa,SAAAC,IAAA9mC,EAAAA,EAAAA,GAAA6mC,EAAAC,GAAA,IAAA5mC,GAAAC,EAAAA,EAAAA,GAAA0mC,GACf,SAAAA,EAAYzmC,GAAO,OAAAE,EAAAA,EAAAA,GAAA,KAAAumC,GAAA3mC,EAAAK,KAAA,KACTH,EAAOymC,EAAcE,gBAC/B,CAwEC,OAxEArlC,EAAAA,EAAAA,GAAAmlC,EAAA,EAAAllC,IAAA,cAAAC,MAcD,SAAY6jC,GACR,MAAM,GAANz/B,OAAUjD,EAAAA,KAAAA,EAAO,QAAO,KAAAiD,OAAIy/B,EAAap2B,KAAKnI,KAClD,GAAC,CAAAvF,IAAA,cAAAC,MAED,SAAYygC,GAAU,IAADhiC,EAAA,KACX8F,EAAOpD,EAAAA,KAAAA,cAEPikB,EADYrX,OAAOC,KAAK02B,IAAcz7B,QAAO,SAAAkmB,GAAC,OAAIA,EAAE9kB,WAAW9F,EAAK,IAChD3B,KAAI,SAAA2B,GAAI,MAAK,CAACY,MAAOu/B,GAAangC,GAAMpF,KAAMa,MAAOuE,EAAK,IACpF6gB,EAAQyV,QAAQ,CAAC11B,MAAO,UAAWnF,MAAO,MAE1CM,KAAKhB,SAAS,CACVyjC,OAAQ,CACJ,CACIxI,KAAM,WACNgJ,WAAY,iBACZ15B,QAAS,QACT2xB,aAAc,UACdyC,UAAW,aAEf,CACIsF,WAAY,eACZtF,UAAW,YACX7Y,QAAAA,EACAoW,aAAc,IACdjB,KAAM,YAEV,CACIgJ,WAAY,iBACZ/H,aAAc,SACdjB,KAAM,WAEV,CACIgJ,WAAY,eACZhJ,KAAM,SACNiB,aAAc,IACdc,IAAK,EACLC,IAAK,KAET,CACIhC,KAAM,OACNgJ,WAAY,mBACZ/H,aAAc,QACd2C,UAAW,GACXF,UAAW,YAGpB,kBAAAmH,EAAAA,GAAAA,IAAAC,EAAAA,GAAAA,GAAAJ,EAAAK,WAAA,cAAA7mC,GAAAE,KAAAF,EAAwBgiC,EAAO,GACtC,GAAC,CAAA1gC,IAAA,UAAAC,MAaD,WACI,OAAOilC,EAAcE,eACzB,IAAC,EAAAplC,IAAA,UAAAC,MA1ED,SAAeulC,EAAQnB,GACnB,OAAKmB,EAAOjgC,KAIF,YAANlB,OAAmBmhC,EAAOjgC,MAAQ,GAAE,4BAAAlB,OACxBmhC,EAAOz8B,IAAG,QAAA1E,OAAOmhC,EAAO7jB,UAAgC,MAApB6jB,EAAO7jB,SAAgB,GAAAtd,OAAMmhC,EAAO7jB,SAAQ,KAAM,IAAEtd,OAAGmhC,EAAOC,OAAM,GAAAphC,OAAMmhC,EAAOC,OAAM,KAAM,IAAEphC,QAAImhC,EAAOjgC,MAAQ,IAAIjF,QAAQ,KAAM,OAAM,KAAA+D,OAAI25B,GAAAA,kBAA+BqG,GAAQ,2BAAAhgC,OAC3NmhC,EAAOz8B,IAAG,yBAAA1E,OAAwBmhC,EAAOz8B,IAAG,kCAAA1E,OACvCmhC,EAAOnmC,SAAQ,4BAAAgF,OAA2BmhC,EAAOz8B,IAAG,MAN7D,uCAAN1E,OACMmhC,EAAOz8B,IAAG,gCAOxB,GAAC,CAAA/I,IAAA,gBAAAC,MAmDD,WACI,MAAO,CACHsiC,WAAY,UACZnjC,KAAM,SACND,GAAI,gBACJ2K,QAAS,QACT1E,MAAO,kCACP89B,WAAY,wGAEpB,KAACgC,CAAA,CA3Ec,CAASlH,IAkF5B,MCnIA,GA3EqB,SAAAmH,IAAA9mC,EAAAA,EAAAA,GAAAqnC,EAAAP,GAAA,IAAA5mC,GAAAC,EAAAA,EAAAA,GAAAknC,GACjB,SAAAA,EAAYjnC,GAAO,OAAAE,EAAAA,EAAAA,GAAA,KAAA+mC,GAAAnnC,EAAAK,KAAA,KACTH,EAAOinC,EAAgBN,gBACjC,CAiEC,OAjEArlC,EAAAA,EAAAA,GAAA2lC,EAAA,EAAA1lC,IAAA,cAAAC,MAkBD,SAAY6jC,GACR,MAAM,GAANz/B,OAAUjD,EAAAA,KAAAA,EAAO,SAAQ,KAAAiD,OAAIy/B,EAAap2B,KAAKnI,KACnD,GAAC,CAAAvF,IAAA,cAAAC,MAED,SAAYygC,GAAU,IAADhiC,EAAA,KACjB6B,KAAKhB,SAAS,CACVyjC,OAAQ,CACJ,CACIxI,KAAM,WACNgJ,WAAY,iBACZ/H,aAAc,UACdyC,UAAW,YACXp0B,QAAS,SAEb,CACI0wB,KAAM,aACNgJ,WAAY,aACZ/H,aAAc,eACdyC,UAAW,OAEf,CACI1D,KAAM,UACNgJ,WAAY,aACZ/H,aAAc,sBACd2C,UAAW,GACXF,UAAW,YAEf,CACI1D,KAAM,OACNgJ,WAAY,mBACZ/H,aAAc,sBACd2C,UAAW,GACXF,UAAW,YAGpB,kBAAAmH,EAAAA,GAAAA,IAAAC,EAAAA,GAAAA,GAAAI,EAAAH,WAAA,cAAA7mC,GAAAE,KAAAF,EAAwBgiC,EAAO,GACtC,GAAC,CAAA1gC,IAAA,UAAAC,MAaD,WACI,OAAOylC,EAAgBN,eAC3B,IAAC,EAAAplC,IAAA,UAAAC,MAnED,SAAeulC,EAAQnB,GACnB,OAAKmB,EAAOG,WAIF,iBAANthC,OAAwBmhC,EAAOjgC,MAAQ,GAAE,4BAAAlB,OAC7BmhC,EAAOz8B,IAAG,QAAA1E,QAAQmhC,EAAOjgC,MAAQ,IAAIjF,QAAQ,KAAM,OAAM,KAAA+D,OAAI25B,GAAAA,kBAA+BqG,GAAQ,2BAAAhgC,OACtGmhC,EAAOz8B,IAAG,yBAAA1E,OAAwBmhC,EAAOz8B,IAAG,qBAAA1E,OACpDmhC,EAAOnmC,UAAY,UAAS,4BAAAgF,OACtBmhC,EAAOG,YAAc,GAAE,0BAAAthC,QACtBmhC,EAAOI,SAAW,YAAYtlC,QAAQ,KAAM,OAAM,KAAA+D,OAAI25B,GAAAA,kBAA+BqG,GAAQ,oCAAAhgC,OACnFmhC,EAAOz8B,IAAG,aATvB,8CAAN1E,OACMmhC,EAAOz8B,IAAG,sCAWxB,GAAC,CAAA/I,IAAA,gBAAAC,MAwCD,WACI,MAAO,CACHsiC,WAAY,UACZnjC,KAAM,aACND,GAAI,kBACJ2K,QAAS,QACT1E,MAAO,iBACP89B,WAAY,wGAEpB,KAACwC,CAAA,CApEgB,CAAS1H,ICuH9B,GAvHoB,SAAAmH,IAAA9mC,EAAAA,EAAAA,GAAAwnC,EAAAV,GAAA,IAAA5mC,GAAAC,EAAAA,EAAAA,GAAAqnC,GAChB,SAAAA,EAAYpnC,GAAQ,IAADC,EAES,OAFTC,EAAAA,EAAAA,GAAA,KAAAknC,IACfnnC,EAAAH,EAAAK,KAAA,KAAMH,EAAOonC,EAAeT,kBACvBU,cAAgB,CAAC,EAAEpnC,CAC5B,CA4GC,OA5GAqB,EAAAA,EAAAA,GAAA8lC,EAAA,EAAA7lC,IAAA,cAAAC,MAeD,SAAY6jC,GACR,MAAM,GAANz/B,OAAUjD,EAAAA,KAAAA,EAAO,SAAQ,KAAAiD,OAAIy/B,EAAap2B,KAAKnI,KACnD,GAAC,CAAAvF,IAAA,iBAAAC,MAED,SAAeA,EAAOu6B,GACL,aAATA,GACAj6B,KAAKwlC,UAAU9lC,EAEvB,GAAC,CAAAD,IAAA,YAAAC,MAED,SAAUZ,GAAW,IAADoB,EAAA,KAGhB,GAFApB,EAAWA,GAAYkB,KAAKrB,MAAMy/B,SAASt/B,UAAY,aACvDkB,KAAKulC,cAAczmC,GAAYkB,KAAKulC,cAAczmC,IAAakB,KAAK9B,MAAMgK,OAAOkK,SAAS,GAADtO,OAAIhF,EAAQ,wBAChGkB,KAAKrB,MAAMy/B,SAAS51B,IACrB,OAAOxI,KAAKhB,SAAS,CACjByjC,OAAQ,CACJ,CACIQ,WAAY,eACZ15B,QAAS,WACTo0B,UAAW,YACXzC,aAAc,aACdjB,KAAM,YAEV,CACIgJ,WAAY,eACZhJ,KAAM,OACNnV,QAAS,CAAC,CAACjgB,MAAO,aAAcnF,MAAO,eACvCw7B,aAAc,GACdyC,UAAW,SAEf,CACIsF,WAAY,mBACZhJ,KAAM,OACNiB,aAAc,QACd2C,UAAW,GACXF,UAAW,YAGpB,kBAAAmH,EAAAA,GAAAA,IAAAC,EAAAA,GAAAA,GAAAO,EAAAN,WAAA,cAAA9kC,GAAA7B,KAAA6B,EAAA,IAGPF,KAAKulC,cAAczmC,GACdsJ,MAAK,SAAAq9B,GACF,IAAK,IAADC,GAGAD,GADAA,GADAA,EAAa,QAALC,EAAAD,SAAK,IAAAC,GAALA,EAAO/yB,IAAMhD,KAAKC,MAAM61B,EAAM9yB,KAAO,OAC5BlF,OAAOC,KAAK+3B,GAAOnjC,KAAI,SAAAqjC,GAAI,MAAK,CAAC9gC,MAAO4gC,EAAME,GAAMC,UAAYH,EAAME,GAAME,UAAWnmC,MAAOimC,EAAK,MACnG,IACXpL,QAAQ,CAAE11B,MAAO,MAAOnF,MAAO,IACzC,CAAE,MAAOkC,GACL6jC,EAAQ,CAAC,CAAE5gC,MAAO,MAAOnF,MAAO,IACpC,CAEAQ,EAAKlB,SAAS,CACVyjC,OAAQ,CACJ,CACIQ,WAAY,iBACZ15B,QAAS,WACTo0B,UAAW,YACXzC,aAAc,aACdjB,KAAM,YAEV,CACIgJ,WAAY,eACZhJ,KAAM,OACNnV,QAAS2gB,EACTvK,aAAc,IACdyC,UAAW,SAEf,CACIsF,WAAY,mBACZhJ,KAAM,OACNiB,aAAc,QACd2C,UAAW,GACXF,UAAW,YAGpB,kBAAAmH,EAAAA,GAAAA,IAAAC,EAAAA,GAAAA,GAAAO,EAAAN,WAAA,cAAA9kC,GAAA7B,KAAA6B,EAAA,GACP,GACR,GAAC,CAAAT,IAAA,cAAAC,MAED,SAAYygC,GACRngC,KAAKwlC,WACT,GAAC,CAAA/lC,IAAA,UAAAC,MAaD,WACI,OAAO4lC,EAAeT,eAC1B,IAAC,EAAAplC,IAAA,UAAAC,MA9GD,SAAeulC,EAAQnB,GACnB,IAAI9+B,GAAQigC,EAAOjgC,MAAQ,IAAIjF,QAAQ,KAAM,OAC7C,OAAKiF,EAIK,eAANlB,OAAsBkB,GAAQ,GAAE,4BAAAlB,OACpBmhC,EAAOz8B,IAAG,QAAA1E,QAAQkB,GAAQ,IAAIjF,QAAQ,KAAM,OAAM,KAAA+D,OAAI25B,GAAAA,kBAA+BqG,GAAQ,2BAAAhgC,OAC/FmhC,EAAOz8B,IAAG,yBAAA1E,OAAwBmhC,EAAOz8B,IAAG,qBAAA1E,OACpDmhC,EAAOnmC,SAAQ,eAAAgF,OAAcmhC,EAAOU,MAAwB,MAAhBV,EAAOU,KAAY,WAAA7hC,QAAemhC,EAAOU,MAAQ,IAAI5lC,QAAQ,KAAM,OAAM,yBAAA+D,OAAwBmhC,EAAOz8B,IAAG,oBAAA1E,OAAqBmhC,EAAOz8B,KAAK,MANpL,uCAAN1E,OACMmhC,EAAOz8B,IAAG,gCAOxB,GAAC,CAAA/I,IAAA,gBAAAC,MAsFD,WACI,MAAO,CACHsiC,WAAY,UACZnjC,KAAM,WACND,GAAI,iBACJ2K,QAAS,WACT1E,MAAO,6BACP89B,WAAY,wGAEpB,KAAC2C,CAAA,CAhHe,CAAS7H,ICiH7B,GAlHoB,SAAAmH,IAAA9mC,EAAAA,EAAAA,GAAAgoC,EAAAlB,GAAA,IAAA5mC,GAAAC,EAAAA,EAAAA,GAAA6nC,GAChB,SAAAA,EAAY5nC,GAAQ,IAADC,EAES,OAFTC,EAAAA,EAAAA,GAAA,KAAA0nC,IACf3nC,EAAAH,EAAAK,KAAA,KAAMH,EAAO4nC,EAAejB,kBACvBU,cAAgB,CAAC,EAAEpnC,CAC5B,CAuGC,OAvGAqB,EAAAA,EAAAA,GAAAsmC,EAAA,EAAArmC,IAAA,cAAAC,MAoBD,SAAY6jC,GACR,MAAM,SAANz/B,OAAgBy/B,EAAap2B,KAAKnI,KACtC,GAAC,CAAAvF,IAAA,cAAAC,MAED,SAAYygC,GAAU,IAADjgC,EAAA,KACjBF,KAAKhB,SAAS,CACVyjC,OAAQ,CACJ,CACIQ,WAAY,iBACZ15B,QAAS,WACTo0B,UAAW,YACXzC,aAAc,aACdjB,KAAM,YAEV,CACIgJ,WAAY,mBACZhJ,KAAM,OACNiB,aAAc,QACd2C,UAAW,GACXF,UAAW,SAEf,CACIsF,WAAY,aACZhJ,KAAM,QACNiB,aAAc,WACdyC,UAAW,UAEf,CACIsF,WAAY,eACZhJ,KAAM,QACNiB,aAAc,QACdyC,UAAW,SACXrC,gBAAgB,EAChBxW,QAAS,CACL,CAAEplB,MAAO,WAAYmF,MAAO,YAC5B,CAAEnF,MAAO,OAAQmF,MAAO,QACxB,CAAEnF,MAAO,QAASmF,MAAO,SACzB,CAAEnF,MAAO,eAAgBmF,MAAO,gBAChC,CAAEnF,MAAO,YAAamF,MAAO,aAC7B,CAAEnF,MAAO,SAAUmF,MAAO,UAC1B,CAAEnF,MAAO,UAAWmF,MAAO,WAC3B,CAAEnF,MAAO,UAAWmF,MAAO,WAC3B,CAAEnF,MAAO,WAAYmF,MAAO,YAC5B,CAAEnF,MAAO,eAAgBmF,MAAO,gBAChC,CAAEnF,MAAO,QAASmF,MAAO,SACzB,CAAEnF,MAAO,aAAcmF,MAAO,cAC9B,CAAEnF,MAAO,WAAYmF,MAAO,YAC5B,CAAEnF,MAAO,QAASmF,MAAO,SACzB,CAAEnF,MAAO,aAAcmF,MAAO,cAC9B,CAAEnF,MAAO,UAAWmF,MAAO,WAC3B,CAAEnF,MAAO,QAASmF,MAAO,SACzB,CAAEnF,MAAO,QAASmF,MAAO,SACzB,CAAEnF,MAAO,aAAcmF,MAAO,cAC9B,CAAEnF,MAAO,OAAQmF,MAAO,QACxB,CAAEnF,MAAO,SAAUmF,MAAO,UAC1B,CAAEnF,MAAO,OAAQmF,MAAO,UAGhC,CACIo+B,WAAY,eACZhJ,KAAM,WACNiB,cAAe,EACfyC,UAAW,YACX7Y,QAAS,CACL,CAAEplB,OAAQ,EAAGmF,MAAO,SACpB,CAAEnF,MAAO,EAAGmF,MAAO,UACnB,CAAEnF,MAAO,EAAGmF,MAAO,iBACnB,CAAEnF,MAAO,EAAGmF,MAAO,uBAIhC,kBAAAigC,EAAAA,GAAAA,IAAAC,EAAAA,GAAAA,GAAAe,EAAAd,WAAA,cAAA9kC,GAAA7B,KAAA6B,EAAA,GACP,GAAC,CAAAT,IAAA,UAAAC,MAaD,WACI,OAAOomC,EAAejB,eAC1B,IAAC,EAAAplC,IAAA,UAAAC,MAzGD,SAAeulC,EAAQnB,GACnB,IAAI9+B,GAAQigC,EAAOjgC,MAAQ,IAAIjF,QAAQ,KAAM,OAC7C,OAAKiF,EAIK,eAANlB,OAAsBmhC,EAAOjgC,MAAQ,GAAE,4BAAAlB,OAC3BmhC,EAAOz8B,IAAG,QAAA1E,OAAOkB,EAAI,KAAAlB,OAAI25B,GAAAA,kBAA+BqG,GAAQ,2BAAAhgC,OAClEmhC,EAAOz8B,IAAG,yBAAA1E,OAAwBmhC,EAAOz8B,IAAG,mCAAA1E,OACpDmhC,EAAOnmC,SAAQ,+CAAAgF,OACEmhC,EAAOz8B,IAAG,uBAAA1E,QACtBmhC,EAAOpgC,OAAS,IAAI9E,QAAQ,KAAM,OAAM,KAAA+D,OAAI25B,GAAAA,kBAA+BqG,GAAQ,uBAAAhgC,OACpFmhC,EAAOc,MAAK,0BAAAjiC,OACVmhC,EAAOe,SAAQ,aAVjB,uCAANliC,OACMmhC,EAAOz8B,IAAG,gCAYxB,GAAC,CAAA/I,IAAA,gBAAAC,MA4ED,WACI,MAAO,CACHsiC,WAAY,UACZnjC,KAAM,WACND,GAAI,iBACJ2K,QAAS,WACT1E,MAAO,6BACP89B,WAAY,wGAEpB,KAACmD,CAAA,CA3Ge,CAASrI,ICoE7B,GAnEuB,SAAAmH,IAAA9mC,EAAAA,EAAAA,GAAAmoC,EAAArB,GAAA,IAAA5mC,GAAAC,EAAAA,EAAAA,GAAAgoC,GACnB,SAAAA,EAAY/nC,GAAQ,IAADC,EAES,OAFTC,EAAAA,EAAAA,GAAA,KAAA6nC,IACf9nC,EAAAH,EAAAK,KAAA,KAAMH,EAAO+nC,EAAkBpB,kBAC1BU,cAAgB,CAAC,EAAEpnC,CAC5B,CAwDC,OAxDAqB,EAAAA,EAAAA,GAAAymC,EAAA,EAAAxmC,IAAA,cAAAC,MAeD,SAAY6jC,GACR,MAAM,GAANz/B,OAAUjD,EAAAA,KAAAA,EAAO,SAAQ,KAAAiD,OAAIy/B,EAAap2B,KAAKnI,KACnD,GAAC,CAAAvF,IAAA,cAAAC,MAED,SAAYygC,GAAU,IAADjgC,EAAA,KACjBF,KAAKhB,SAAS,CACVyjC,OAAQ,CACJ,CACIQ,WAAY,iBACZ15B,QAAS,eACTo0B,UAAW,YACXzC,aAAc,iBACdjB,KAAM,YAEV,CACIgJ,WAAY,mBACZhJ,KAAM,OACNiB,aAAc,QACd2C,UAAW,GACXF,UAAW,SAEf,CACIsF,WAAY,aACZhJ,KAAM,QACNiB,aAAc,GACdyC,UAAW,SACXC,SAAU,iBAGnB,kBAAAkH,EAAAA,GAAAA,IAAAC,EAAAA,GAAAA,GAAAkB,EAAAjB,WAAA,cAAA9kC,GAAA7B,KAAA6B,EAAA,GACP,GAAC,CAAAT,IAAA,UAAAC,MAaD,WACI,OAAOumC,EAAkBpB,eAC7B,IAAC,EAAAplC,IAAA,UAAAC,MA1DD,SAAeulC,EAAQnB,GACnB,IAAI9+B,GAAQigC,EAAOjgC,MAAQ,IAAIjF,QAAQ,KAAM,OAC7C,OAAKiF,EAIK,eAANlB,OAAsBkB,GAAQ,GAAE,4BAAAlB,OACpBmhC,EAAOz8B,IAAG,QAAA1E,QAAQkB,GAAQ,IAAIjF,QAAQ,KAAM,OAAM,KAAA+D,OAAI25B,GAAAA,kBAA+BqG,GAAQ,2BAAAhgC,OAC/FmhC,EAAOz8B,IAAG,yBAAA1E,OAAwBmhC,EAAOz8B,IAAG,qBAAA1E,OACpDmhC,EAAOnmC,SAAQ,kCAAAgF,OAAiCmhC,EAAOz8B,KAAG1E,OAAGmhC,EAAOiB,MAAK,aAAApiC,OAAgBmhC,EAAOiB,MAAMnmC,QAAQ,KAAM,OAAM,KAAM,GAAE,OAN9H,uCAAN+D,OACMmhC,EAAOz8B,IAAG,gCAOxB,GAAC,CAAA/I,IAAA,gBAAAC,MAkCD,WACI,MAAO,CACHsiC,WAAY,UACZnjC,KAAM,eACND,GAAI,oBACJ2K,QAAS,eACT1E,MAAO,iCACP89B,WAAY,wGAEpB,KAACsD,CAAA,CA5DkB,CAASxI,IC0KhC,GA3KqB,SAAAmH,IAAA9mC,EAAAA,EAAAA,GAAAqoC,EAAAvB,GAAA,IAAA5mC,GAAAC,EAAAA,EAAAA,GAAAkoC,GACjB,SAAAA,EAAYjoC,GAAQ,IAADC,EAES,OAFTC,EAAAA,EAAAA,GAAA,KAAA+nC,IACfhoC,EAAAH,EAAAK,KAAA,KAAMH,EAAOioC,EAAgBtB,kBACxBU,cAAgB,CAAC,EAAEpnC,CAC5B,CAgKC,OAhKAqB,EAAAA,EAAAA,GAAA2mC,EAAA,EAAA1mC,IAAA,cAAAC,MAsBD,SAAY6jC,GACR,MAAM,SAANz/B,OAAgBy/B,EAAap2B,KAAKnI,KACtC,GAAC,CAAAvF,IAAA,cAAAC,MAED,SAAYygC,GAAU,IAADjgC,EAAA,KACjBF,KAAKhB,SAAS,CACVyjC,OAAQ,CACJ,CACIQ,WAAY,iBACZ15B,QAAS,YACTo0B,UAAW,YACXzC,aAAc,cACdjB,KAAM,YAEV,CACIgJ,WAAY,mBACZhJ,KAAM,OACNiB,aAAc,QACd2C,UAAW,GACXF,UAAW,SAEf,CACIsF,WAAY,aACZhJ,KAAM,QACNiB,aAAc,WACdyC,UAAW,UAEf,CACIsF,WAAY,eACZhJ,KAAM,QACNiB,aAAc,QACdyC,UAAW,SACXrC,gBAAgB,EAChBxW,QAAS,CACL,CAAEplB,MAAO,IAAKmF,MAAO,kBACrB,CAAEnF,MAAO,IAAKmF,MAAO,UACrB,CAAEnF,MAAO,IAAKmF,MAAO,aACrB,CAAEnF,MAAO,IAAKmF,MAAO,mBACrB,CAAEnF,MAAO,IAAKmF,MAAO,oBACrB,CAAEnF,MAAO,IAAKmF,MAAO,cACrB,CAAEnF,MAAO,IAAKmF,MAAO,gBACrB,CAAEnF,MAAO,IAAKmF,MAAO,oBACrB,CAAEnF,MAAO,IAAKmF,MAAO,kBACrB,CAAEnF,MAAO,IAAKmF,MAAO,mBACrB,CAAEnF,MAAO,IAAKmF,MAAO,mBACrB,CAAEnF,MAAO,KAAMmF,MAAO,qBACtB,CAAEnF,MAAO,KAAMmF,MAAO,0BACtB,CAAEnF,MAAO,KAAMmF,MAAO,kBACtB,CAAEnF,MAAO,KAAMmF,MAAO,wBACtB,CAAEnF,MAAO,KAAMmF,MAAO,0BACtB,CAAEnF,MAAO,KAAMmF,MAAO,qBACtB,CAAEnF,MAAO,KAAMmF,MAAO,eACtB,CAAEnF,MAAO,KAAMmF,MAAO,oBACtB,CAAEnF,MAAO,KAAMmF,MAAO,mBACtB,CAAEnF,MAAO,KAAMmF,MAAO,oBACtB,CAAEnF,MAAO,KAAMmF,MAAO,gBACtB,CAAEnF,MAAO,KAAMmF,MAAO,oBACtB,CAAEnF,MAAO,KAAMmF,MAAO,iBACtB,CAAEnF,MAAO,KAAMmF,MAAO,uBACtB,CAAEnF,MAAO,KAAMmF,MAAO,wBACtB,CAAEnF,MAAO,KAAMmF,MAAO,UACtB,CAAEnF,MAAO,KAAMmF,MAAO,qBACtB,CAAEnF,MAAO,KAAMmF,MAAO,OACtB,CAAEnF,MAAO,KAAMmF,MAAO,kBACtB,CAAEnF,MAAO,KAAMmF,MAAO,sBACtB,CAAEnF,MAAO,KAAMmF,MAAO,oBACtB,CAAEnF,MAAO,KAAMmF,MAAO,iBACtB,CAAEnF,MAAO,KAAMmF,MAAO,iBACtB,CAAEnF,MAAO,KAAMmF,MAAO,yBACtB,CAAEnF,MAAO,KAAMmF,MAAO,sBACtB,CAAEnF,MAAO,KAAMmF,MAAO,sBACtB,CAAEnF,MAAO,KAAMmF,MAAO,mBACtB,CAAEnF,MAAO,KAAMmF,MAAO,kBACtB,CAAEnF,MAAO,KAAMmF,MAAO,cACtB,CAAEnF,MAAO,KAAMmF,MAAO,gBACtB,CAAEnF,MAAO,KAAMmF,MAAO,wBACtB,CAAEnF,MAAO,KAAMmF,MAAO,8BACtB,CAAEnF,MAAO,KAAMmF,MAAO,qBACtB,CAAEnF,MAAO,KAAMmF,MAAO,eACtB,CAAEnF,MAAO,KAAMmF,MAAO,oBACtB,CAAEnF,MAAO,KAAMmF,MAAO,cACtB,CAAEnF,MAAO,KAAMmF,MAAO,gBACtB,CAAEnF,MAAO,KAAMmF,MAAO,eACtB,CAAEnF,MAAO,KAAMmF,MAAO,gBACtB,CAAEnF,MAAO,KAAMmF,MAAO,gBACtB,CAAEnF,MAAO,KAAMmF,MAAO,gBACtB,CAAEnF,MAAO,KAAMmF,MAAO,sBACtB,CAAEnF,MAAO,KAAMmF,MAAO,yBACtB,CAAEnF,MAAO,KAAMmF,MAAO,uBACtB,CAAEnF,MAAO,KAAMmF,MAAO,sBACtB,CAAEnF,MAAO,KAAMmF,MAAO,qBACtB,CAAEnF,MAAO,KAAMmF,MAAO,wBACtB,CAAEnF,MAAO,KAAMmF,MAAO,sBACtB,CAAEnF,MAAO,KAAMmF,MAAO,oBACtB,CAAEnF,MAAO,KAAMmF,MAAO,mBACtB,CAAEnF,MAAO,KAAMmF,MAAO,sBACtB,CAAEnF,MAAO,KAAMmF,MAAO,eACtB,CAAEnF,MAAO,KAAMmF,MAAO,gBAG9B,CACIo+B,WAAY,eACZhJ,KAAM,WACNiB,aAAc,EACdyC,UAAW,YACX7Y,QAAS,CACL,CAAEplB,OAAQ,EAAGmF,MAAO,mBACpB,CAAEnF,OAAQ,EAAGmF,MAAO,kBACpB,CAAEnF,MAAO,EAAGmF,MAAO,mBACnB,CAAEnF,MAAO,EAAGmF,MAAO,iBACnB,CAAEnF,MAAO,EAAGmF,MAAO,sBAG3B,CACIo+B,WAAY,eACZhJ,KAAM,YACNiB,aAAc,EACdyC,UAAW,aACX7Y,QAAS,CACL,CAAEplB,MAAO,IAAKmF,MAAO,WACrB,CAAEnF,MAAO,EAAGmF,MAAO,KACnB,CAAEnF,MAAO,EAAGmF,MAAO,KACnB,CAAEnF,MAAO,EAAGmF,MAAO,UAIhC,kBAAAigC,EAAAA,GAAAA,IAAAC,EAAAA,GAAAA,GAAAoB,EAAAnB,WAAA,cAAA9kC,GAAA7B,KAAA6B,EAAA,GACP,GAAC,CAAAT,IAAA,UAAAC,MAaD,WACI,OAAOymC,EAAgBtB,eAC3B,IAAC,EAAAplC,IAAA,UAAAC,MAlKD,SAAeulC,EAAQnB,GACnB,IAAI9+B,GAAQigC,EAAOjgC,MAAQ,IAAIjF,QAAQ,KAAM,OAC7C,OAAKiF,EAIK,gBAANlB,OAAuBmhC,EAAOjgC,MAAQ,GAAE,4BAAAlB,OAC5BmhC,EAAOz8B,IAAG,QAAA1E,OAAOkB,EAAI,KAAAlB,OAAI25B,GAAAA,kBAA+BqG,GAAQ,2BAAAhgC,OAClEmhC,EAAOz8B,IAAG,yBAAA1E,OAAwBmhC,EAAOz8B,IAAG,iCAAA1E,OACpDmhC,EAAOnmC,SAAQ,+CAAAgF,OACEmhC,EAAOz8B,IAAG,uBAAA1E,QACtBmhC,EAAOpgC,OAAS,IAAI9E,QAAQ,KAAM,OAAM,KAAA+D,OAAI25B,GAAAA,kBAA+BqG,GAAQ,eAAAhgC,OAC5FmhC,EAAOmB,OAAM,YAAAtiC,OAAemhC,EAAOmB,OAAM,MAAO,GAAE,cAAAtiC,OAClDmhC,EAAOc,OAA0B,MAAjBd,EAAOc,MAAa,WAAAjiC,OAAcmhC,EAAOc,MAAK,MAAO,GAAE,wBAAAjiC,OAC7DmhC,EAAOe,SAAQ,eAAAliC,OACzBmhC,EAAOoB,WAAkC,MAArBpB,EAAOoB,UAAiB,cAAAviC,OAAiBmhC,EAAOoB,UAAS,KAAM,GAAE,aAZ7E,uCAANviC,OACMmhC,EAAOz8B,IAAG,gCAcxB,GAAC,CAAA/I,IAAA,gBAAAC,MAmID,WACI,MAAO,CACHsiC,WAAY,UACZnjC,KAAM,YACND,GAAI,kBACJ2K,QAAS,YACT1E,MAAO,8BACP89B,WAAY,wGAEpB,KAACwD,CAAA,CApKgB,CAAS1I,ICwExB6I,GAAe,CACjBC,SAAU,GACVC,WAAY,CAAC,IACbC,WAAW,EACXC,QAAS,CACLt+B,KAAM,GACN,KAAQ,KAIhB,SAASu+B,GAAgBC,EAAM9C,EAAS3W,GACpC,IAAMoZ,EAAW,GACbM,EAAeD,EAAKL,SACnBM,EAAaxnC,SACdwnC,EAAe,CAAC,CAACjoC,GAAI,uBAGzB,IAAMwyB,EAAO,GACT0V,EAAW,GACXC,EAAOH,EAAKJ,WAAWv/B,MAAK,SAAA+/B,GAAK,OAAIA,EAAM//B,MAAK,SAAAggC,GAAI,MAAqB,OAAjBA,EAAK9G,OAAgB,GAAC,IAElF0G,EAAahgC,SAAQ,SAACm9B,EAASj9B,GAC3B,IAAMyV,EAAQ0qB,GAAUlD,EAAQplC,GAAIuuB,GACpC,GAAI3Q,EAAO,CACP,IAAMgW,EAAW,CACbwR,QAAAA,EACAmD,UAAW,CAAC,EACZV,WAAWM,IAAgBH,EAAKH,YAAeG,EAAKJ,WAAWnnC,SAAWunC,EAAKJ,WAAW,GAAGnnC,QAC7F+nC,gBAAiB,GACjBC,eAAgB,GAChBnD,iBAAkB,IAEhBl/B,EAAOwX,EAAM8qB,QAAQtD,EAASxR,GAC9BgU,EAuDlB,SAA2BA,EAAY1C,EAAS3W,GAC5C,IAAI9f,EAAS,GACTtG,EAAI,EAqBR,OApBAy/B,GAAcA,EAAW3/B,SAAQ,SAAA0gC,GAC7B,GAAIA,EAAI7mB,eAAe,WAAa6mB,EAAIloC,OAAQ,CAC5C,IAAMmoC,EAAO,GACbA,GAAQD,EAAI1gC,SAAQ,SAAAmoB,GAChB,IAAMxS,EAAQ0qB,GAAUlY,EAAMpwB,GAAIuuB,GAC9B3Q,IACAsnB,EAAQqD,UAAU55B,MAAQxG,IAC1BygC,EAAKrgC,KAAKqV,EAAM8qB,QAAQtY,EAAO8U,IAEvC,IACAz2B,EAAOlG,KAAK,IAADrD,OAAK0jC,EAAK1nC,KAAK,6BAA4B,KAC1D,KAAO,CACH,IAAM0c,EAAQ0qB,GAAUK,EAAI3oC,GAAIuuB,GAC5B3Q,IACAsnB,EAAQqD,UAAU55B,MAAQxG,IAC1BsG,EAAOlG,KAAKqV,EAAM8qB,QAAQC,EAAKzD,IAEvC,CACJ,IAEKz2B,EAAOhO,OAGU,IAAlBgO,EAAOhO,OACAgO,EAAO,IAAM,OAEd,IAANvJ,OAAWuJ,EAAOvN,KAAK,UAAS,KALzB,MAOf,CAtF+B2nC,CAAkBb,EAAKJ,WAAYhU,EAAUrF,GAC1D/kB,EAAOs/B,GAAed,EAAKF,QAAQt+B,KAAMoqB,EAAUrF,GACnDwa,EAAQD,GAAed,EAAKF,QAAQkB,KAAMpV,EAAUrF,GAG1DiE,EAAKjqB,KAAK,OAADrD,OAAQiD,IAEbyrB,EAASsU,UAAYtU,EAASsU,SAASznC,QACvCmzB,EAASsU,SAASjgC,SAAQ,SAAAghC,GAAI,OAAIf,EAAS3/B,KAAK0gC,EAAK,IAGrD7iC,EAAKd,SAAS,iCACdsuB,EAAS6U,eAAiB7U,EAAS6U,eAAe/kC,KAAI,SAACk5B,EAAGz0B,GAAC,OAAKA,EAAC,OAAAjD,OAAU03B,GAAMA,CAAC,IAClFhJ,EAAS4U,gBAAkB5U,EAAS4U,gBAAgB9kC,KAAI,SAACk5B,EAAGz0B,GAAC,OAAKA,EAAC,OAAAjD,OAAU03B,GAAMA,CAAC,KAGxF+K,EAASp/B,KACLnC,EACKjF,QAAQ,0BAA2ByyB,EAAS6U,eAAevnC,KAAK,OAChEC,QAAQ,8BAA+ByyB,EAAS4U,gBAAgBtnC,KAAK,OACrEC,QAAQ,oBAAqBymC,GAC7BzmC,QAAQ,eAAgBqI,GAAQ,aAChCrI,QAAQ,eAAgB4nC,GAAS,aACjC5nC,QAAQ,iBAAkB,OAASgH,GAEhD,CACJ,IAEA,IAAI/B,EAAOuhC,EAASzmC,KAAK,QASzB,OAPK8mC,EAAKH,YAAaM,IACnB/hC,EAAI,GAAAlB,OAAMstB,EAAK9uB,KAAI,SAAAk5B,GAAC,aAAA13B,OAAW03B,EAAC,gBAAa17B,KAAK,MAAK,QAAAgE,OAAOkB,IAE9D8hC,IACA9hC,EAAI,GAAAlB,OAAMgjC,EAAShnC,KAAK,MAAK,QAAAgE,OAAOkB,IAGjCA,CACX,CAEA,SAASkiC,GAAUnjC,EAAMopB,GACrB,OAAOA,EAAOlmB,MAAK,SAAA+nB,GAAK,OAAIA,EAAM6V,eAAiB7V,EAAM6V,gBAAgBjmC,KAAOmF,CAAI,GACxF,CAEA,SAAS2jC,GAAehB,EAAS5C,EAAS3W,GACtC,IAAI9f,EAAS,GAOb,OANAq5B,GAAWA,EAAQ7/B,SAAQ,SAAAihC,GACvB,IAAMtrB,EAAQ0qB,GAAUY,EAAOlpC,GAAIuuB,GAC/B3Q,GACAnP,EAAOlG,KAAKqV,EAAM8qB,QAAQQ,EAAQhE,GAE1C,IACO,OAAAhgC,OAAOuJ,EAAOvN,KAAK,cAAiB,CAC/C,CAmCA,SAASwnC,GAAQV,EAAMzZ,GACnB,OAAOwZ,GAAgBC,EAAM,EAAMzZ,EACvC,CAkCA,IAWA,GAXgB,CACZ4a,UAhCJ,SAAmBhmB,GACf,IAAKA,EACD,OAAOukB,GAEP,IAAM9nB,EAAQuD,EAAKniB,MAAM,MACzB,IACI,IAAIgnC,EAAOpoB,EAAM3e,MAAME,QAAQ,QAAS,IAKxC,OAJA6mC,EAAOj3B,KAAKC,MAAMg3B,IACRL,WACNK,EAAON,IAEJM,CACX,CAAE,MAAOhlC,GACL,OAAO0kC,EACX,CAER,EAiBI0B,UAdJ,SAAmBpB,EAAMzZ,GACrB,IAAIpL,EAAO,GAQX,OALAA,GADiBulB,GAAQV,EAAMzZ,GAG/BpL,GAAI,sBAAAje,OAA0B6L,KAAK8C,UAAUm0B,EAAM,KAAM,GACpD7mC,QAAQ,QAAS,OAAM,WAEtB,GAAN+D,OAAUie,EAAI,QAAAje,OAAO6L,KAAK8C,UAAUm0B,GACxC,EAKIU,QAAAA,GACAW,kBA7MmB,0OA8MnBC,2BA/L4B,kXAgM5BC,wBA3OyB,6OA4OzBC,iCA/NkC,qXAgOlCC,YAjLa,+KClBjB,GAxCuB,SAAAzD,IAAA9mC,EAAAA,EAAAA,GAAAwqC,EAAA1D,GAAA,IAAA5mC,GAAAC,EAAAA,EAAAA,GAAAqqC,GACnB,SAAAA,EAAYpqC,GAAO,OAAAE,EAAAA,EAAAA,GAAA,KAAAkqC,GAAAtqC,EAAAK,KAAA,KACTH,EAAOoqC,EAAkBzD,gBACnC,CA8BC,OA9BArlC,EAAAA,EAAAA,GAAA8oC,EAAA,EAAA7oC,IAAA,cAAAC,MAMD,WACI,OAAOmB,GAAAA,QAAAA,EAAO,YAClB,GAAC,CAAApB,IAAA,cAAAC,MAED,SAAYygC,GAAU,IAADhiC,EAAA,KACjB6B,KAAKhB,SAAS,CACVyjC,OAAQ,CACJ,CACIQ,WAAY,iBACZ/H,aAAc,kCACdjB,KAAM,aAGf,kBAAA6K,EAAAA,GAAAA,IAAAC,EAAAA,GAAAA,GAAAuD,EAAAtD,WAAA,cAAA7mC,GAAAE,KAAAF,EAAA,GACP,GAAC,CAAAsB,IAAA,UAAAC,MAYD,WACI,OAAO4oC,EAAkBzD,eAC7B,IAAC,EAAAplC,IAAA,UAAAC,MAhCD,SAAeulC,GACX,OAAOsD,GAAAA,YAAAA,QAA4B,0BAA0B,mBAADzkC,OAAqBmhC,EAAOz8B,IAAG,sBAC/F,GAAC,CAAA/I,IAAA,gBAAAC,MAkBD,WACI,MAAO,CACHsiC,WAAY,WACZnjC,KAAM,eACND,GAAI,oBACJ8K,KAAM,YACN7E,MAAO,mEAEf,KAACyjC,CAAA,CAjCkB,CAAS7K,I,2DCY1B+K,GAAoB,SAAA5D,IAAA9mC,EAAAA,EAAAA,GAAA0qC,EAAA5D,GAAA,IAAA5mC,GAAAC,EAAAA,EAAAA,GAAAuqC,GACtB,SAAAA,EAAYtqC,GAAQ,IAADC,EAES,OAFTC,EAAAA,EAAAA,GAAA,KAAAoqC,IACfrqC,EAAAH,EAAAK,KAAA,KAAMH,EAAOsqC,EAAqB3D,kBAC7B4D,YAAc,KAAKtqC,CAC5B,CAsZC,OAtZAqB,EAAAA,EAAAA,GAAAgpC,EAAA,EAAA/oC,IAAA,YAAAC,MAAA,eAAAgpC,GAAAvW,EAAAA,GAAAA,IAAAC,EAAAA,GAAAA,KAAAC,MA4DD,SAAAC,EAAgBqW,EAAOC,EAAQC,GAAW,IAAAC,EAAAhkB,EAAAikB,EAAAC,EAAAvG,EAAAviC,EAAA,YAAAkyB,EAAAA,GAAAA,KAAAG,MAAA,SAAAC,GAAA,cAAAA,EAAAC,KAAAD,EAAAE,MAAA,OAKO,GAJ7CiW,EAAQA,GAAS3oC,KAAKrB,MAAMy/B,SAASuK,OAAS,YAC9CC,OAAoBp6B,IAAXo6B,EAAuB5oC,KAAKrB,MAAMy/B,SAASwK,OAASA,EAC7DC,OAA8Br6B,IAAhBq6B,EAA4B7oC,KAAKrB,MAAMy/B,SAASyK,YAAcA,EAE5EA,EAAczmC,SAASymC,EAAa,KAAO,EAEtC7oC,KAAKyoC,YAAY,CAADjW,EAAAE,KAAA,eAAAF,EAAAE,KAAA,EACX1yB,KAAK9B,MAAMgK,OAAOC,UAAU,+BAC7BC,MAAK,SAAAkiB,GAA0C,IAAD2e,EAAA3e,EAAtC8O,OAAU8P,EAAQD,EAARC,SAAUC,EAASF,EAATE,UACzB,IAAKD,IAAaC,EACd,OAAOjpC,EAAKhC,MAAMgK,OAAOC,UAAU,iBAC9BC,MAAK,SAAAC,GACEA,IAAQA,EAAIC,OAAO4gC,UAAY7gC,EAAIC,OAAO6gC,WAC1CjpC,EAAKuoC,YAAc,CACfS,SAAU7gC,EAAIC,OAAO4gC,SACrBC,UAAW9gC,EAAIC,OAAO6gC,WAG1BjpC,EAAKuoC,YAAc,IAE3B,IAEJvoC,EAAKuoC,YAAc,CACfS,SAAAA,EACAC,UAAAA,EAGZ,IAAG,KAAD,EAGJL,EAAW9oC,KAAKyoC,aAAeW,KAAAA,SAAiB,IAAItqB,KAAQ9e,KAAKyoC,YAAYS,SAAUlpC,KAAKyoC,YAAYU,YACxGrkB,EAAUgkB,EAAWr7B,OAAOC,KAAKo7B,GAAUxmC,KAAI,SAAAzD,GAAI,MAAK,CAC1Da,MAAOb,EACPgG,MAAOhG,EACP87B,OAAO,IAAD72B,OAAM0kC,EAAqBa,aAAaP,EAASjqC,IAAM,KAC7DyqC,MAAOR,EAAWN,EAAqBa,aAAaP,EAASjqC,IAAS,QACzE,IAAK,IACE8K,MAAK,SAACC,EAAGC,GAAC,OAAKD,EAAE0/B,MAAQz/B,EAAEy/B,MAAQ,EAAK1/B,EAAE0/B,MAAQz/B,EAAEy/B,OAAS,EAAI,CAAE,IAGvEP,EAAO,QACPJ,GAASG,GAAYA,EAASH,KACxBK,EAAY,IAAIlqB,KAAKgqB,EAASH,IACpCC,GAAUI,EAAUO,WAAWP,EAAUhrB,aAAe5b,SAASymC,EAAa,KAC9EE,EAAI,OAAAjlC,OAAU0kC,EAAqBa,aAAaL,GAAU,MAM1DvG,EADAmG,EACS,CACL,CACIjL,UAAW,KACX1D,KAAM,QACNgJ,WAAY,eACZne,QAAAA,EACAoW,aAAc,aAElB,CACI0C,SAAU,cACVqF,WAAY,iBACZhJ,KAAM,UAEV,CACI2D,SAA0B,IAAhBiL,EAAoB,SAAW,UACzClL,UAAW,SACXsF,WAAY,eACZ/H,aAAc,EACdjB,KAAM,cACNsE,cAAc,GAElB,CACI0E,WAAY,iBACZhJ,KAAM,WACNiB,aAAc6N,IAIb,CACL,CACIpL,UAAW,KACX1D,KAAM,QACNgJ,WAAY,eACZne,QAAAA,EACAoW,aAAc,aAElB,CACI0C,SAAU,cACVqF,WAAY,iBACZhJ,KAAM,UAEV,CACIgJ,WAAY,iBACZhJ,KAAM,WACNiB,aAAc6N,IAK1B/oC,KAAKhB,SAAS,CAAEyjC,OAAAA,IAAU,kBAAAqC,EAAAA,GAAAA,IAAAC,EAAAA,GAAAA,GAAAyD,EAAAxD,WAAA,cAAA9kC,GAAA7B,KAAA6B,EAAA,IAA2B,yBAAAsyB,EAAA8B,OAAA,GAAAhC,EAAA,UACxD,gBAAAiD,EAAAiU,EAAAC,GAAA,OAAAf,EAAA7kC,MAAA,KAAAJ,UAAA,EAjKA,IAiKA,CAAAhE,IAAA,eAAAC,MAAA,eAAAgqC,GAAAvX,EAAAA,GAAAA,IAAAC,EAAAA,GAAAA,KAAAC,MAED,SAAAwC,EAAmB8U,GAAQ,IAAA7kB,EAAA1f,EAAA,YAAAgtB,EAAAA,GAAAA,KAAAG,MAAA,SAAAyC,GAAA,cAAAA,EAAAvC,KAAAuC,EAAAtC,MAAA,OACvBiX,EAAWvnC,SAASunC,GAAY3pC,KAAKrB,MAAMy/B,SAASuL,SAAU,KAAO,GAGjE7kB,EADa,IAAb6kB,EACU,CACN,CAAEjqC,MAAO,IAAKmF,MAAO,UACrB,CAAEnF,MAAO,IAAKmF,MAAO,UACrB,CAAEnF,MAAO,IAAKmF,MAAO,SAGf,CACN,CAAEnF,MAAO,IAAKmF,MAAO,WACrB,CAAEnF,MAAO,IAAKmF,MAAO,WACrB,CAAEnF,MAAO,IAAKmF,MAAO,UAI7B7E,KAAKhB,SAAS,CACVyjC,OAAQ,CACJ,CACIQ,WAAY,eACZ3jC,OAAQ,CACJ0N,GAAI,SAERitB,KAAM,WACN0D,UAAW,QACXzC,aAAc,GACd52B,UAAW,wBAEf,CACI2+B,WAAY,eACZhJ,KAAM,OACNiB,aAAc,IACdpW,QAAAA,MAGT,kBAAAggB,EAAAA,GAAAA,IAAAC,EAAAA,GAAAA,GAAAyD,EAAAxD,WAAA,cAAA5/B,GAAA/G,KAAA+G,EAAA,IAA2B,wBAAA4vB,EAAAV,OAAA,GAAAO,EAAA,UACjC,gBAAA+U,GAAA,OAAAF,EAAA7lC,MAAA,KAAAJ,UAAA,EAvCA,IAuCA,CAAAhE,IAAA,cAAAC,MAED,SAAY6jC,GACR,OAAO1iC,EAAAA,KAAAA,EAAO,YAClB,GAAC,CAAApB,IAAA,iBAAAC,MAED,SAAeA,EAAOu6B,GACkB,UAAhCj6B,KAAKrB,MAAMy/B,SAAS+B,QACP,UAATlG,EACAj6B,KAAK6pC,UAAUnqC,GACC,WAATu6B,EACPj6B,KAAK6pC,eAAUr7B,EAAW9O,GACV,gBAATu6B,GACPj6B,KAAK6pC,eAAUr7B,OAAWA,EAAW9O,GAEF,aAAhCM,KAAKrB,MAAMy/B,SAAS+B,SACd,aAATlG,GACAj6B,KAAK8pC,aAAapqC,EAG9B,GAAC,CAAAD,IAAA,aAAAC,MAED,SAAW+6B,EAAO/6B,EAAOiC,GAAW,IAAD0D,EAAA,KACvBf,EAActE,KAAK9B,MAAnBoG,UACJylC,EAAW,GACP3L,EAAap+B,KAAKrB,MAAlBy/B,SACAnE,EAASQ,EAATR,KACR,OAAO95B,EAAAA,GAAAA,MAAA,OAAAO,SAAA,EACHP,EAAAA,GAAAA,MAAA,OAAKgB,MAAO,CAAEyE,QAAS,OAAQokC,WAAY,YAAatpC,SAAA,EACpDC,EAAAA,GAAAA,KAAA,OAAKQ,MAAO,CAAEC,MAAO,QAASV,SACzBV,KAAK09B,WAAW,CACbzD,KAAMA,EACNiB,aAAcx7B,GACb0+B,EAASnE,GAAQmE,EAASnE,GAAQv6B,EAAOiC,MAElDhB,EAAAA,GAAAA,KAAC83B,GAAY,CACTC,QAAM,EACNv3B,MAAO,CAAEyT,WAAY,GACrBlV,MAAM,MACN4E,UAAWA,EACX5B,QAAS,kBAAM2C,EAAKrG,SAAS,CAAEirC,YAAY,GAAO,QAG1DtpC,EAAAA,GAAAA,KAACk6B,GAAW,CACRp6B,KAAMT,KAAKrB,MAAMsrC,WACjBjP,SAAO7I,EAAAA,GAAAA,IAAAC,EAAAA,GAAAA,KAAAC,MAAE,SAAA6X,IAAA,OAAA9X,EAAAA,GAAAA,KAAAG,MAAA,SAAA4X,GAAA,cAAAA,EAAA1X,KAAA0X,EAAAzX,MAAA,cAAAyX,EAAAzX,KAAA,EACC/wB,EAASooC,EAAU9P,GAAM,KAAD,SAAAkQ,EAAAzX,KAAA,EACxB/wB,GAASyoC,EAAAA,GAAAA,SAAkBL,EAAUlpC,EAAAA,KAAAA,eAAqB,WAAW,KAAD,EAC1EwE,EAAKrG,SAAS,CAAEirC,YAAY,IAAS,wBAAAE,EAAA7V,OAAA,GAAA4V,EAAA,KAEzC3rC,QAAS,kBAAM8G,EAAKrG,SAAS,CAAEirC,YAAY,GAAQ,EAACvpC,UACpDC,EAAAA,GAAAA,KAAC0pC,GAAAA,QAAW,CACRC,eAAkBlM,EAASnE,GAAQmE,EAASnE,GAAQ,GACpDt4B,SAAU,SAAAqF,GAAE,OAAI+iC,EAAW/iC,CAAE,EAC7Boa,SAAUvgB,EAAAA,KAAAA,kBAGjBb,KAAKi+B,eAAe,CACjB/C,aAAcr6B,EAAAA,KAAAA,EAAO,2BACrBo5B,KAAM,UACNiE,WAAW,EACX5C,gBAAgB,GACf8C,EAAkB,QAAIA,EAAkB,QAAIv9B,EAAAA,KAAAA,EAAO,2BAA4Bc,KAnCvEs4B,EAqCrB,GAAC,CAAAx6B,IAAA,eAAAC,MAED,SAAa+6B,EAAO/6B,EAAOiC,GAAW,IAAD2D,EAAA,KACzBhB,EAActE,KAAK9B,MAAnBoG,UACA21B,EAASQ,EAATR,KACJsQ,EAAa,GACbC,EAAS,KAEb,OAAOrqC,EAAAA,GAAAA,MAAA,OAAAO,SAAA,EACHP,EAAAA,GAAAA,MAAA,OAAKgB,MAAO,CAAEyE,QAAS,OAAQokC,WAAY,SAAUn+B,UAAW,GAAInL,SAAA,EAChEC,EAAAA,GAAAA,KAAC44B,GAAW,CACRj1B,UAAWA,EACXtD,aAAa,MACbR,WAAS,EAETU,QAAQ,WACRgE,KAAK,QACLs0B,WAAS,EACTC,KAAM,EACN/5B,MAAOM,KAAKrB,MAAMy/B,SAAS,GAADt6B,OAAIm2B,EAAI,SAClCt4B,SAAU,SAACqF,GAAE,OAAKrF,EAASqF,EAAG,EAC9B6xB,aAAW,KAEfl4B,EAAAA,GAAAA,KAAC83B,GAAY,CACTC,QAAM,EACNv3B,MAAO,CAAEyT,WAAY,GACrBlV,MAAM,MACN4E,UAAWA,EACX5B,QAAS,kBAAM4C,EAAKtG,SAAS,CAAEirC,YAAY,GAAO,QAG1DtpC,EAAAA,GAAAA,KAACk6B,GAAW,CACRp6B,KAAMT,KAAKrB,MAAMsrC,WACjBjP,QAAS,kBACL11B,EAAKtG,SAAS,CAAEirC,YAAY,IAAS,eAAApK,EAAA,OACjCl+B,GAAQk+B,EAAA,IAAAtH,EAAAA,GAAAA,GAAAsH,EAAA,GAAA/7B,OACAm2B,EAAI,QAASsQ,IAAUhS,EAAAA,GAAAA,GAAAsH,EAC1B5F,EAAOuQ,GAAM3K,GAChB,GAAC,EACXthC,QAAS,kBAAM+G,EAAKtG,SAAS,CAAEirC,YAAY,GAAQ,EAACvpC,UACpDC,EAAAA,GAAAA,KAAC8pC,GAAAA,QAAQ,CAAC9oC,SAAU,SAACgR,EAAK3N,GACtBulC,EAAavlC,GACbwlC,EAAwB,kBAAR73B,EAAmBhD,KAAKC,MAAMD,KAAK8C,UAAUE,IAAQhD,KAAKC,MAAM+C,IACzE+3B,MAAQF,EAAOE,OAAS,CAAC,EAChCF,EAAOE,MAAMnkB,KAAOikB,EAAOE,MAAMnkB,MAAQkkB,GAAAA,QAAAA,aACzCD,EAAS76B,KAAK8C,UAAU+3B,EAC5B,QAtCSvQ,EAyCrB,GAAC,CAAAx6B,IAAA,cAAAC,MAED,SAAYygC,GAAU,IAAD9sB,EAAA,KAEjB,OADA8sB,EAAUA,GAAWngC,KAAKrB,MAAMy/B,SAAS+B,SAErC,IAAK,WACDngC,KAAK8pC,eACL,MAEJ,IAAK,OACD9pC,KAAKhB,SAAS,CACVyjC,OAAQ,CACJ,CACIQ,WAAY,aACZhJ,KAAM,OACNiB,aAAc,gBAGvB,kBAAA4J,EAAAA,GAAAA,IAAAC,EAAAA,GAAAA,GAAAyD,EAAAxD,WAAA,cAAA3xB,GAAAhV,KAAAgV,EAAA,IACH,MAEJ,IAAK,SACD,IAAMm3B,EAAS76B,KAAKC,MArVb,4FAsVP46B,EAAOE,MAAQF,EAAOE,OAAS,CAAC,EAChCF,EAAOE,MAAMnkB,KAAOikB,EAAOE,MAAMnkB,MAAQkkB,GAAAA,QAAAA,aAEzCzqC,KAAKhB,SAAS,CACVyjC,OAAQ,CACJ,CACIQ,WAAY,eACZhJ,KAAM,SACNiB,aAAcvrB,KAAK8C,UAAU+3B,OAGtC,kBAAA1F,EAAAA,GAAAA,IAAAC,EAAAA,GAAAA,GAAAyD,EAAAxD,WAAA,cAAA3xB,GAAAhV,KAAAgV,EAAwB,MAAM,WAC7B,IAAMk3B,EAAaE,GAAAA,QAAAA,WAAoBp3B,EAAK1U,MAAMy/B,SAASoM,QAAUA,GACrE,GAAIn3B,EAAK1U,MAAMy/B,SAASmM,aAAeA,EAAY,CAC/C,IAAMnM,EAAWzuB,KAAKC,MAAMD,KAAK8C,UAAUY,EAAK1U,MAAMy/B,WACtDA,EAASmM,WAAaA,EACtBl3B,EAAKrU,SAAS,CAAEo/B,SAAAA,IAChB/qB,EAAKnV,MAAMyD,SAASy8B,EACxB,CACJ,GAAC,IACD,MAEJ,IAAK,KACDp+B,KAAKhB,SAAS,CACVyjC,OAAQ,CACJ,CACIQ,WAAY,aACZ3jC,OAAQ,KACR26B,KAAM,KACNiB,aAAc,SAElB,CACI+H,WAAY,eACZhJ,KAAM,MACN0Q,QAAS,GACT3Q,UAAU,EACVkB,aAAc,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KAClDpW,QAAS,CACL,CAAEplB,MAAO,IAAKmF,MAAO,YAAa62B,MAAM,GACxC,CAAEh8B,MAAO,IAAKmF,MAAO,SAAU82B,WAAY,MAC3C,CAAEj8B,MAAO,IAAKmF,MAAO,UAAW82B,WAAY,MAC5C,CAAEj8B,MAAO,IAAKmF,MAAO,YAAa82B,WAAY,MAC9C,CAAEj8B,MAAO,IAAKmF,MAAO,WAAY82B,WAAY,MAC7C,CAAEj8B,MAAO,IAAKmF,MAAO,SAAU82B,WAAY,MAC3C,CAAEj8B,MAAO,IAAKmF,MAAO,WAAY82B,WAAY,MAC7C,CAAEj8B,MAAO,IAAKmF,MAAO,SAAU82B,WAAY,WAIxD,kBAAAmJ,EAAAA,GAAAA,IAAAC,EAAAA,GAAAA,GAAAyD,EAAAxD,WAAA,cAAA3xB,GAAAhV,KAAAgV,EAAA,IACH,MAEJ,IAAK,QACDrT,KAAK6pC,YAMjB,GAAC,CAAApqC,IAAA,UAAAC,MAaD,WACI,OAAO8oC,EAAqB3D,eAChC,IAAC,EAAAplC,IAAA,UAAAC,MAxZD,SAAeulC,EAAQnB,GACnB,IAAI9+B,EAAO,GACP4lC,EAAO9G,EAAQ2C,UAAY8B,GAAAA,wBAAkCA,GAAAA,iCAGjE,GAFAqC,EAAOA,EAAK7qC,QAAQ,0BAA0B,mBAAD+D,OAAqBmhC,EAAOz8B,IAAG,uBAErD,aAAnBy8B,EAAO9E,QACPn7B,EAAI,eAAAlB,OAAkB8mC,EAAI,MAAA9mC,OAAKmhC,EAAO0E,UAAY,EAAC,OAAA7lC,OAAsB,MAAhBmhC,EAAO9I,KAAe,IAAwB,MAAhB8I,EAAO9I,KAAe,IAAQ,KAAQ,WAC1H,GAAuB,SAAnB8I,EAAO9E,QACdn7B,EAAI,aAAAlB,OAAgBmhC,EAAO4F,KAAI,OAAA/mC,OAAM8mC,EAAI,WACtC,GAAuB,OAAnB3F,EAAO9E,QAAkB,CAAC,IAAD2K,EAChCC,GAA0B9F,EAAO+F,IAAM,IAAIprC,MAAM,KAAIqrC,GAAAzhC,EAAAA,EAAAA,GAAAuhC,EAAA,GAA9CG,EAAKD,EAAA,GAAEE,EAAOF,EAAA,GACjBG,EAAM,IACV,GAAU,OAANnG,QAAM,IAANA,GAAW,QAAL6F,EAAN7F,EAAQmG,WAAG,IAAAN,GAAXA,EAAazrC,SAAW4lC,EAAOmG,IAAIlnC,SAAS,KAAM,CAClD,IAAMmnC,GAAOl4B,EAAAA,EAAAA,GAAI8xB,EAAOmG,KAAK9oC,KAAI,SAAA4E,GAAI,OAAI9E,SAAS8E,EAAM,GAAG,IAC3DmkC,EAAK1hC,OAKL,IAHA,IAAI2hC,EAAY,GACZC,EAAQF,EAAK,GACbtkC,EAAI,EACDA,EAAIskC,EAAKhsC,OAAQ0H,IAChBskC,EAAKtkC,GAAKskC,EAAKtkC,EAAI,GAAK,GACpBwkC,IAAUF,EAAKtkC,EAAI,GACnBukC,EAAUnkC,KAAKokC,GACRF,EAAKtkC,EAAI,GAAKwkC,IAAU,EAC/BD,EAAUnkC,KAAKokC,EAAQ,IAAMF,EAAKtkC,EAAI,IAEtCukC,EAAUnkC,KAAKokC,EAAQ,IAAMF,EAAKtkC,EAAI,IAG1CwkC,EAAQF,EAAKtkC,IACNA,IAAMskC,EAAKhsC,OAAS,IACvBksC,IAAUF,EAAKtkC,EAAI,IAAMskC,EAAKtkC,GAAKwkC,IAAU,EAC7CD,EAAUnkC,KAAKokC,EAAQ,IAAMF,EAAKtkC,IAElCukC,EAAUnkC,KAAKokC,EAAQ,IAAMF,EAAKtkC,KAK9CqkC,EAAME,EAAUxrC,KAAK,IACzB,CACAkF,EAAI,aAAAlB,OAAgBqnC,GAAW,IAAG,KAAArnC,OAAIonC,GAAS,IAAG,SAAApnC,OAAQsnC,EAAG,OAAAtnC,OAAM8mC,EAAI,KAC3E,KAA8B,UAAnB3F,EAAO9E,QACdn7B,EAAI,qBAAAlB,OAAwBmhC,EAAO0D,MAAK,cAAA7kC,OAAamhC,EAAO2D,OAAS3D,EAAO4D,YAAc,EAAC,OAAA/kC,OAAM8mC,EAAI,MAC3E,WAAnB3F,EAAO9E,UACdn7B,EAAI,aAAAlB,OAAgBmhC,EAAOuF,OAAM,OAAA1mC,OAAM8mC,EAAI,OAG/C,OAAO5lC,CACX,GAAC,CAAAvF,IAAA,eAAAC,MAED,SAAoBqpC,GAChB,OAAKA,EAGC,GAANjlC,OAAUilC,EAAKhrB,WAAW9Q,WAAWmwB,SAAS,EAAG,KAAI,KAAAt5B,OAAIilC,EAAK/qB,aAAa/Q,WAAWmwB,SAAS,EAAG,MAFvF,OAGf,GAAC,CAAA39B,IAAA,gBAAAC,MAmVD,WACI,MAAO,CACHsiC,WAAY,WACZnjC,KAAM,WACND,GAAI,uBACJ8K,KAAM,aACN02B,aAAc,CAAC,OAAQ,SAAU,WAAY,KAAM,SACnDv7B,MAAO,0DAEf,KAAC2jC,CAAA,CA1ZqB,CAAS/K,IAianC,M,oCCnZM+N,GAAazoC,IAAAA,YAAiB,SAAC7E,EAAO6Q,GAAG,OAC3CpO,EAAAA,GAAAA,KAAC8qC,GAAAA,GAAKhhB,EAAAA,GAAAA,GAAA,CAAC1f,UAAU,KAAKgE,IAAKA,GAAS7Q,GAAS,IAE3CwtC,GAAY,SAAA9G,IAAA9mC,EAAAA,EAAAA,GAAA4tC,EAAA9G,GAAA,IAAA5mC,GAAAC,EAAAA,EAAAA,GAAAytC,GACd,SAAAA,EAAYxtC,GAAQ,IAADC,EAEmB,OAFnBC,EAAAA,EAAAA,GAAA,KAAAstC,IACfvtC,EAAAH,EAAAK,KAAA,KAAMH,EAAOwtC,EAAa7G,kBACrBh1B,SAAW9M,IAAAA,YAAkB5E,CACtC,CAmJC,OAnJAqB,EAAAA,EAAAA,GAAAksC,EAAA,EAAAjsC,IAAA,cAAAC,MAsBD,SAAY6jC,GACR,YAAiC/0B,IAA7B+0B,EAAap2B,KAAKw+B,QACXxrC,EAAAA,GAAAA,MAAA,QAAAO,SAAA,CAAOG,EAAAA,KAAAA,EAAO,aAAa,KAACF,EAAAA,GAAAA,KAAA,QAAM2D,UAAWi/B,EAAap2B,KAAKy+B,OAAS5rC,KAAK9B,MAAMqG,QAAQsnC,SAAW7rC,KAAK9B,MAAMqG,QAAQunC,YAAYprC,SAAEgrC,EAAalR,YAAY+I,EAAap2B,KAAKw+B,UAAe,YAAGhrC,EAAAA,GAAAA,KAAA,QAAM2D,UAAWi/B,EAAap2B,KAAK4+B,IAAM/rC,KAAK9B,MAAMqG,QAAQsnC,SAAW7rC,KAAK9B,MAAMqG,QAAQunC,YAAYprC,SAAEgrC,EAAalR,YAAY+I,EAAap2B,KAAKwF,WAEvVxS,EAAAA,GAAAA,MAAA,QAAAO,SAAA,CAAOG,EAAAA,KAAAA,EAAO,aAAa,KAACF,EAAAA,GAAAA,KAAA,QAAM2D,UAAWi/B,EAAap2B,KAAK4+B,IAAM/rC,KAAK9B,MAAMqG,QAAQsnC,SAAW7rC,KAAK9B,MAAMqG,QAAQunC,YAAYprC,SAAEgrC,EAAalR,YAAY+I,EAAap2B,KAAKwF,SAE9L,GAAC,CAAAlT,IAAA,eAAAC,MAED,WACIM,KAAKhB,SAAS,CAACgtC,cAAc,IAC7B,IAAIC,EAAgBjsC,KAAKrB,MAAMstC,cAC/B9nC,OAAOyE,aAAauC,QAAQ,kBAADrH,OAAmB9D,KAAKrB,MAAMy/B,SAASgF,IAAG,QAAQpjC,KAAKrB,MAAMutC,aAEpD,YAAhClsC,KAAKrB,MAAMy/B,SAAS6F,QACpBgI,GAAkC,IAAlBA,GAA4C,SAAlBA,GAA8C,MAAlBA,EAC/B,WAAhCjsC,KAAKrB,MAAMy/B,SAAS6F,UAC3BgI,EAAgBE,WAAWF,IAAkB,GAGjD9nC,OAAOyE,aAAauC,QAAQ,kBAADrH,OAAmB9D,KAAKrB,MAAMy/B,SAASgF,KAAO6I,GACzEjsC,KAAK9B,MAAMgK,OAAOlJ,SAASgB,KAAKrB,MAAMy/B,SAASgF,IAAK,CAAEzwB,IAAKs5B,EAAeF,MAAO/rC,KAAKrB,MAAMutC,aAChG,GAAC,CAAAzsC,IAAA,mBAAAC,MAED,WAAoB,IAADQ,EAAA,KACf,OAAOC,EAAAA,GAAAA,MAAA64B,GAAAA,SAAA,CAAAt4B,SAAA,EACHC,EAAAA,GAAAA,KAAC8B,EAAAA,EAAM,CACHV,UAAW/B,KAAKrB,MAAMy/B,SAASgF,MAAQpjC,KAAKrB,MAAM6kC,iBAClDtiC,QAAQ,YACRyB,MAAM,UACND,QAAS,WACLxC,EAAKlB,SAAS,CACVgtC,cAAc,EACdC,cAA+C,YAAhC/rC,EAAKvB,MAAMy/B,SAAS6F,QAC8C,SAA7E9/B,OAAOyE,aAAaC,QAAQ,kBAAD/E,OAAmB5D,EAAKvB,MAAMy/B,SAASgF,MACjEj/B,OAAOyE,aAAaC,QAAQ,kBAAD/E,OAAmB5D,EAAKvB,MAAMy/B,SAASgF,OAAU,GACjF8I,YAA8F,SAAjF/nC,OAAOyE,aAAaC,QAAQ,kBAAD/E,OAAmB5D,EAAKvB,MAAMy/B,SAASgF,IAAG,WAEtF1hC,YAAW,eAAA0qC,EAAA,OAA2B,QAA3BA,EAAMlsC,EAAK2P,SAAS0P,eAAO,IAAA6sB,OAAA,EAArBA,EAAuBhoC,OAAO,GAAE,IACrD,EAAE1D,SAAEG,EAAAA,KAAAA,EAAO,eACfV,EAAAA,GAAAA,MAACC,EAAAA,EAAM,CACHK,OAAQT,KAAKrB,MAAMqtC,aACnBK,oBAAqBb,GACrBjK,aAAW,EACXhjC,QAAS,kBAAM2B,EAAKlB,SAAS,CAAEgtC,cAAc,GAAQ,EACrD,kBAAgB,8BAChB,mBAAiB,oCAAmCtrC,SAAA,EAEpDC,EAAAA,GAAAA,KAACC,EAAAA,EAAW,CAAChC,GAAG,8BAA6B8B,SAAEG,EAAAA,KAAAA,EAAO,yBACtDV,EAAAA,GAAAA,MAACW,EAAAA,EAAa,CAAAJ,SAAA,CACuB,YAAhCV,KAAKrB,MAAMy/B,SAAS6F,SACjBtjC,EAAAA,GAAAA,KAAC67B,GAAAA,EAAgB,CACbC,SAAS97B,EAAAA,GAAAA,KAAC+7B,GAAAA,EAAM,CACZ7sB,SAAU7P,KAAK6P,SACfy8B,QAAS,SAAA1qC,GAAC,OAAkB,KAAdA,EAAE2qC,SAAkBrsC,EAAKssC,cAAc,EACrD9sC,QAASM,KAAKrB,MAAMstC,cACpBtqC,SAAU,SAAAC,GAAC,OAAI1B,EAAKlB,SAAS,CAAEitC,cAAerqC,EAAEC,OAAOq3B,SAAU,IAErE53B,MAAOT,EAAAA,KAAAA,EAAO,YAEhBF,EAAAA,GAAAA,KAACM,EAAAA,EAAS,CACRC,QAAQ,WACR2O,SAAU7P,KAAK6P,SACfvO,MAAOT,EAAAA,KAAAA,EAAO,SACdL,WAAS,EACT8rC,QAAS,SAAA1qC,GAAC,OAAkB,KAAdA,EAAE2qC,SAAkBrsC,EAAKssC,cAAc,EACrD9sC,MAAOM,KAAKrB,MAAMstC,cAClBtqC,SAAU,SAAAC,GAAC,OAAI1B,EAAKlB,SAAS,CAAEitC,cAAerqC,EAAEC,OAAOnC,OAAQ,KAGvEiB,EAAAA,GAAAA,KAAA,UACAA,EAAAA,GAAAA,KAAC67B,GAAAA,EAAgB,CACbC,SACI97B,EAAAA,GAAAA,KAACs4B,GAAAA,EAAQ,CACLC,UAAWl5B,KAAKrB,MAAMutC,YACtBvqC,SAAU,SAAAC,GAAC,OAAI1B,EAAKlB,SAAS,CAAEktC,YAAatqC,EAAEC,OAAOq3B,SAAU,EAC/Dv2B,MAAM,YAGdrB,MAAOT,EAAAA,KAAAA,EAAO,aAGtBV,EAAAA,GAAAA,MAACqC,EAAAA,EAAa,CAAA9B,SAAA,EACVP,EAAAA,GAAAA,MAACsC,EAAAA,EAAM,CACHvB,QAAQ,YACRwB,QAAS,kBAAMxC,EAAKssC,cAAc,EAClC7pC,MAAM,UAASjC,SAAA,EACfC,EAAAA,GAAAA,KAAC8rC,EAAAA,IAAS,IAAI5rC,EAAAA,KAAAA,EAAO,aAEzBV,EAAAA,GAAAA,MAACsC,EAAAA,EAAM,CAACE,MAAM,OACVzB,QAAQ,YACRwB,QAAS,kBAAMxC,EAAKlB,SAAS,CAAEgtC,cAAc,GAAQ,EAACtrC,SAAA,EAEtDC,EAAAA,GAAAA,KAACmC,EAAAA,IAAU,IAAIjC,EAAAA,KAAAA,EAAO,oBAK1C,GAAC,CAAApB,IAAA,cAAAC,MAED,SAAYygC,GAAU,IAAD/6B,EAAA,KACjBpF,KAAKhB,SAAS,CACVyjC,OAAQ,CACJ,CACIQ,WAAY,iBACZhJ,KAAM,MACNiB,aAAc,IAElB,CACI+H,WAAY,uBAGrB,YACC6B,EAAAA,GAAAA,IAAAC,EAAAA,GAAAA,GAAA2G,EAAA1G,WAAA,cAAA5/B,GAAA/G,KAAA+G,EACJ,GACJ,GAAC,CAAA3F,IAAA,UAAAC,MAaD,WACI,OAAOgsC,EAAa7G,eACxB,IAAC,EAAAplC,IAAA,UAAAC,MArJD,SAAeulC,EAAQnB,GACnB,IAAI8G,EAAO9G,EAAQ2C,UAAY8B,GAAAA,wBAAkCA,GAAAA,iCAEjE,OADAqC,EAAOA,EAAK7qC,QAAQ,0BAA0B,mBAAD+D,OAAqBmhC,EAAOz8B,IAAG,oIACtE,YAAN1E,OAAmBmhC,EAAO7B,KAAO,GAAE,gBAAAt/B,OAAkC,cAAnBmhC,EAAO9E,QAA0B,MAAQ,KAAI,QAAAr8B,OAAO8mC,EAAI,KAC9G,GAAC,CAAAnrC,IAAA,cAAAC,MAED,SAAmBiT,GACf,OAAY,OAARA,EACO,YACQnE,IAARmE,EACA,YACAhP,MAAM+oC,QAAQ/5B,GACdA,EAAI7S,KAAK,MACM,kBAAR6S,EACPhD,KAAK8C,UAAUE,GAEfA,EAAI1F,UAEnB,GAAC,CAAAxN,IAAA,gBAAAC,MAsHD,WACI,MAAO,CACHsiC,WAAY,WACZnjC,KAAM,QACND,GAAI,eACJ8K,KAAM,UACN02B,aAAc,CAAC,YAAa,aAC5Bv7B,MAAO,sDAEf,KAAC6mC,CAAA,CAvJa,CAASjO,IA6J3B,IAAep6B,EAAAA,EAAAA,IAzKA,SAAAC,GAAK,MAAK,CACrBuoC,SAAU,CACNlpC,MAAO,WAEXmpC,YAAa,CACTnpC,MAAO,WAEd,GAkKD,CAAkC+oC,I,0DChL5BiB,GAAU,g9BAkfhB,GAndoB,SAAA/H,IAAA9mC,EAAAA,EAAAA,GAAA8uC,EAAAhI,GAAA,IAAA5mC,GAAAC,EAAAA,EAAAA,GAAA2uC,GAChB,SAAAA,EAAY1uC,GAAQ,IAADC,EA0GyC,OA1GzCC,EAAAA,EAAAA,GAAA,KAAAwuC,IACfzuC,EAAAH,EAAAK,KAAA,KAAMH,EAAO0uC,EAAe/H,kBAyGhCgI,WAAa,kBAAM1uC,EAAKa,SAAS,CAAC8tC,oBAAoB,GAAO,EAAD3uC,CAxG5D,CAgbC,OAhbAqB,EAAAA,EAAAA,GAAAotC,EAAA,EAAAntC,IAAA,uBAAAC,MAED,WAAwB,IAADqtC,EAAAC,EAAAC,EAAAC,EACnB,OAA2B,QAApBH,EAAA/sC,KAAK9B,MAAMm6B,iBAAS,IAAA0U,GAAU,QAAVC,EAApBD,EAAsBxG,gBAAQ,IAAAyG,OAAV,EAApBA,EAAgC/lC,MAAK,SAAAC,GAAI,MAAgB,iBAAZA,EAAKtI,EAAqB,QACrD,QAArBquC,EAACjtC,KAAK9B,MAAMm6B,iBAAS,IAAA4U,GAAU,QAAVC,EAApBD,EAAsB1G,gBAAQ,IAAA2G,GAA9BA,EAAgCjmC,MAAK,SAAAC,GAAI,MAAgB,iBAAZA,EAAKtI,EAAqB,IAChF,GAAC,CAAAa,IAAA,cAAAC,MAwFD,SAAY6jC,GACR,IAAM4D,EAAYnnC,KAAKrB,MAAMy/B,SAAS+B,QACtC,MAAkB,OAAdgH,EAGM,GAANrjC,OAAUy/B,EAAap2B,KAAKE,OAAOJ,WAAWkgC,cAAa,MAAArpC,OAAKy/B,EAAap2B,KAAKzN,MAAK,KAAAoE,OAAIqjC,EAAS,KAAArjC,OAAIy/B,EAAap2B,KAAKigC,YAAW,KAGlIvsC,EAAAA,KAAAA,EAAO,YAClB,GAAC,CAAApB,IAAA,aAAAC,MAID,SAAW2tC,EAAYlN,EAAS8D,EAASqJ,EAASC,GAAY,IAADC,EAAAC,EAAAvtC,EAAA,KACnDwtC,EAAuB1tC,KAAK0tC,uBAElCvN,EAAYA,GAAangC,KAAKrB,MAAMy/B,SAAS+B,QAC7C8D,EAAYA,GAAajkC,KAAKrB,MAAMy/B,SAAS6F,QAC7CqJ,EAAYA,GAAattC,KAAKrB,MAAMy/B,SAASkP,QAC7CC,EAAYA,GAAavtC,KAAKrB,MAAMy/B,SAASmP,UAEzCG,GAAwBL,GAAyD,KAAvB,QAApBG,EAAAxtC,KAAK9B,MAAMm6B,iBAAS,IAAAmV,GAAU,QAAVC,EAApBD,EAAsBjH,gBAAQ,IAAAkH,OAAV,EAApBA,EAAgCpuC,UACtE4kC,EAAYjkC,KAAK9B,MAAMm6B,UAAUkO,SAAS,GAAGtC,QAC7CqJ,EAAYttC,KAAK9B,MAAMm6B,UAAUkO,SAAS,GAAG+G,QAC7CC,EAAYvtC,KAAK9B,MAAMm6B,UAAUkO,SAAS,GAAGgH,WAGjD,IAEInN,EADEoB,EADgBoL,EAAe/H,gBAAgBzE,aAC3Bn5B,MAAK,SAAAC,GAAI,OAAIA,EAAKrC,QAAUs7B,CAAO,IAEzDrb,EAAU,KAEE,WAAZmf,GACA7D,EAAe,CACX,CACIv7B,MAAO,IACP81B,OAAQ,UACR31B,KAAM,YAEV,CACIH,MAAO,KACP81B,OAAQ,qBACR31B,KAAM,oBAEV,CACIH,MAAO,IACP81B,OAAQ,YACR31B,KAAM,gBAEV,CACIH,MAAO,KACP81B,OAAQ,kBACR31B,KAAM,iBAEV,CACIH,MAAO,IACP81B,OAAQ,SACR31B,KAAM,aAEV,CACIH,MAAO,KACP81B,OAAQ,cACR31B,KAAM,gBAEV,CACIH,MAAO,KACP81B,OAAQ,eACR31B,KAAM,eAIVuoC,IACAzoB,EAAUrX,OAAOC,KAAK6/B,GAAWjrC,KAAI,SAAAqQ,GAAG,MAAK,CAAEjT,MAAOiT,EAAK9N,MAAO0oC,EAAU56B,GAAM,MAEnE,YAAZsxB,GACP7D,EAAe,CACX,CACIv7B,MAAO,IACP81B,OAAQ,UACR31B,KAAM,YAEV,CACIH,MAAO,KACP81B,OAAQ,cACR31B,KAAM,iBAGd8f,EAAU,CACN,CAAEjgB,MAAO,QAASnF,OAAO,GACzB,CAAEmF,MAAO,OAAQnF,OAAO,MAG5B0gC,EAAe,CACX,CACIv7B,MAAO,IACP81B,OAAQ,UACR31B,KAAM,YAEV,CACIH,MAAO,KACP81B,OAAQ,qBACR31B,KAAM,oBAEV,CACIH,MAAO,IACP81B,OAAQ,YACR31B,KAAM,gBAEV,CACIH,MAAO,KACP81B,OAAQ,kBACR31B,KAAM,iBAEV,CACIH,MAAO,IACP81B,OAAQ,SACR31B,KAAM,aAEV,CACIH,MAAO,KACP81B,OAAQ,cACR31B,KAAM,gBAEV,CACIH,MAAO,IACP81B,OAAQ,aACR31B,KAAM,aAGVuoC,IACAzoB,EAAUrX,OAAOC,KAAK6/B,GAAWjrC,KAAI,SAAAqQ,GAAG,MAAK,CAAEjT,MAAOiT,EAAK9N,MAAO0oC,EAAU56B,GAAM,MAI1F,IAOI8vB,EAPArE,EAAW,KACVgC,EAAan5B,MAAK,SAAAC,GAAI,OAAIA,EAAKrC,QAAUs7B,CAAO,MACjDA,EAAUC,EAAa,GAAGv7B,OAC1Bu5B,EAAWA,IAAQ3T,EAAAA,GAAAA,GAAA,GAASzqB,KAAKrB,MAAMy/B,WAC9B+B,QAAUA,GAIvB,IAAIzC,EAAa,CACbuF,WAAY,aACZ/H,aAAc,GACdjB,KAAM,QACN0D,UAAuB,OAAZwC,EAAmB,SAAc,OAAHqB,QAAG,IAAHA,OAAG,EAAHA,EAAKx8B,OAAQ,eACtD84B,oBAAoB,EACpBF,SAAU0P,GAGVxoB,IACA4Y,EAAa,CACTuF,WAAY,eACZ/H,aAAcpW,EAAQ,GAAGplB,MACzBolB,QAAAA,EACAmV,KAAM,QACN0D,WAAc,OAAH6D,QAAG,IAAHA,OAAG,EAAHA,EAAKx8B,OAAQ,eACxB84B,oBAAoB,EACpBF,SAAU0P,GAETxoB,EAAQ7d,MAAK,SAAAC,GAAI,OAAIA,EAAKxH,QAAUQ,EAAKvB,MAAMy/B,SAAS1+B,KAAK,OAC9D0+B,EAAWA,IAAQ3T,EAAAA,GAAAA,GAAA,GAASzqB,KAAKrB,MAAMy/B,WAC9B1+B,MAAQolB,EAAQ,GAAGplB,OAE5BolB,EAAQzlB,QAAU,IAClB+gC,EAAe,CACX,CACIv7B,MAAO,IACP81B,OAAQ,UACR31B,KAAM,YAEV,CACIH,MAAO,KACP81B,OAAQ,cACR31B,KAAM,mBAOlBy9B,EADAiL,GAAwBL,EACf,CACL,CACIzP,SAAU,oBACVqF,WAAY,iBACZhJ,KAAM,aACNiB,cAAc,GAElBwC,GAEGgQ,EACE,CACL,CACI9P,SAAU,oBACVqF,WAAY,iBACZhJ,KAAM,cAEV,CACIgJ,WAAY,iBACZhJ,KAAM,MACNiB,aAAc,IAElBwC,GAGK,CACL,CACIuF,WAAY,iBACZhJ,KAAM,MACNiB,aAAc,IAElBwC,GAIQ,OAAZyC,IACAsC,EAAO97B,OAAO,EAAG,EAAG,CAChBs8B,WAAY,eACZv5B,KAAM,cACNi0B,UAAW,cACXkD,aAAc7gC,KAAK6sC,aAEvBpK,EAAO97B,OAAO,EAAG,EAAG,CAChBs8B,WAAY,eACZhJ,KAAM,WACNiB,aAAc,IACdyC,UAAW,YACXrC,gBAAgB,EAChBxW,QAAS,CACL,CAAEjgB,MAAO,IAAMnF,MAAO,KACtB,CAAEmF,MAAO,KAAMnF,MAAO,MACtB,CAAEmF,MAAO,IAAMnF,MAAO,KACtB,CAAEmF,MAAO,KAAMnF,MAAO,MACtB,CAAEmF,MAAO,IAAMnF,MAAO,KACtB,CAAEmF,MAAO,KAAMnF,MAAO,SAG9B+iC,EAAOt7B,KAAK,CACRw2B,UAAW,SACXrC,gBAAgB,EAChB2H,WAAY,eACZ1E,cAAc,EACdtE,KAAM,OACNiB,aAAc,EACd4C,oBAAoB,EACpBF,SAAU0P,KAIlB,IAAM3uC,EAAQ,CACV+jC,SAAS,EACTtC,aAAAA,EACAqC,OAAAA,GAGJziC,KAAKhB,SAASL,GAAM,kBAAAmmC,EAAAA,GAAAA,IAAAC,EAAAA,GAAAA,GAAA6H,EAAA5H,WAAA,cAAA9kC,GAAA7B,KAAA6B,EACE,MAAM,WAChBk+B,IACAl+B,EAAKlB,SAAS,CAACo/B,SAAAA,IACfl+B,EAAKhC,MAAMyD,SAASy8B,GAE5B,GAAC,GACT,GAAC,CAAA3+B,IAAA,iBAAAC,MAED,SAAeA,EAAOu6B,EAAM6J,GACH,kBAAVpkC,EACPM,KAAK2tC,WAAWjuC,EAAM2tC,WAAY3tC,EAAMygC,QAASzgC,EAAMukC,QAASvkC,EAAMqgC,QAEzD,eAAT9F,EACAj6B,KAAK2tC,WAAWjuC,GACA,YAATu6B,EACPj6B,KAAK2tC,WAAWjuC,OAAO8O,EAAW9O,GAClB,YAATu6B,EACPj6B,KAAK2tC,WAAWjuC,OAAO8O,OAAWA,EAAW9O,GAC7B,cAATu6B,GACPj6B,KAAK2tC,WAAWjuC,OAAO8O,OAAWA,OAAWA,EAAW9O,EAGpE,GAAC,CAAAD,IAAA,WAAAC,MAED,WACIM,KAAK2tC,WAAW3tC,KAAKrB,MAAMy/B,SAASiP,WACxC,GAAC,CAAA5tC,IAAA,cAAAC,MAED,SAAYygC,GACRngC,KAAK2tC,WAAW3tC,KAAKrB,MAAMy/B,SAASiP,WAAYlN,EACpD,GAAC,CAAA1gC,IAAA,UAAAC,MAsDD,WACI,OAAOktC,EAAe/H,eAC1B,GAAC,CAAAplC,IAAA,iBAAAC,MAED,WAAkB,IAAD0F,EAAA,KACb,OAAIpF,KAAKrB,MAAMmuC,oBACJ3sC,EAAAA,GAAAA,MAACC,EAAAA,EAAM,CACVK,MAAM,EACNF,SAAS,KACThC,QAAS,kBAAM6G,EAAKpG,SAAS,CAAE8tC,oBAAoB,GAAQ,EAC3D,kBAAgB,qBAChB,mBAAiB,2BAA0BpsC,SAAA,EAE3CC,EAAAA,GAAAA,KAACG,EAAAA,EAAa,CAAAJ,UACVC,EAAAA,GAAAA,KAAC+G,GAAAA,EAAiB,CAAC9I,GAAG,2BAA0B8B,UAC5CC,EAAAA,GAAAA,KAAA,OAAK6J,IAAKojC,GAAiBnjC,IAAI,oBAGvC9J,EAAAA,GAAAA,KAAC6B,EAAAA,EAAa,CAAA9B,UACVC,EAAAA,GAAAA,KAAC8B,EAAAA,EAAM,CAACC,QAAS,kBAAM0C,EAAKpG,SAAS,CAAE8tC,oBAAoB,GAAQ,EAAEnqC,MAAM,UAAUtB,WAAS,EAAAX,SACzFG,EAAAA,KAAAA,EAAO,aAKb,IAEf,IAAC,EAAApB,IAAA,UAAAC,MAtcD,SAAeulC,EAAQnB,GACnB,IAAIpkC,EAAQulC,EAAOvlC,MACL,OAAVA,QAA4B8O,IAAV9O,IAClBA,GAAQ,GAEZ,IAEI2N,EAFAwgC,EAAa,GAGjB,GAAuB,OAAnB5I,EAAO9E,QACP2D,EAAQgD,SAAYhD,EAAQgD,UAAY,IACvChD,EAAQgD,SAAS7/B,MAAK,SAAAC,GAAI,OAAIA,IAASylC,EAAU,KAAK7I,EAAQgD,SAAS3/B,KAAKwlC,IACzE1H,EAAOoI,YACPQ,EAAa,gBACC,KAAVnuC,IACAA,EAAQ,GAEZ2N,EAAM,0BAAAvJ,OAA6BmhC,EAAOz8B,IAAG,MAAA1E,OAAKpE,EAAK,qBAAAoE,OAAoBmhC,EAAO8B,KAAI,OAAAjjC,OAAMmhC,EAAO6I,SAAQ,QAE3GD,EAAU,yBAAA/pC,OAA4BmhC,EAAO7B,IAAG,WAClC,KAAV1jC,IACAA,EAAQ,GAES,kBAAVA,GAAsBysC,WAAWzsC,EAAM6G,QAAQ0G,aAAevN,EAAM6G,SAC3E7G,EAAK,IAAAoE,OAAOpE,EAAK,MAGrB2N,EAAM,0BAAAvJ,OAA6BmhC,EAAOz8B,IAAG,MAAA1E,OAAKpE,EAAK,qBAAAoE,OAAoBmhC,EAAO8B,KAAI,OAAAjjC,OAAMmhC,EAAO6I,SAAQ,YAGnH,GAAuB,aAAnB7I,EAAO9E,QAAwB,CAC/B,IACuB4D,EADjBgK,EAA6B,MAAnB9I,EAAO9E,QAAkB,KAA2B,OAAnB8E,EAAO9E,QAAmB,KAAO8E,EAAO9E,QACzF,GAAI8E,EAAOoI,WACPQ,EAAa,gBACqB,YAAvB,OAAP/J,QAAO,IAAPA,GAAgB,QAATC,EAAPD,EAASE,eAAO,IAAAD,OAAT,EAAPA,EAAkBE,UAClBvkC,EAAQA,EAAMK,QAAQ,KAAM,OAC5BsN,EAAM,aAAAvJ,OAAgBmhC,EAAOz8B,IAAG,KAAA1E,OAAIiqC,EAAO,MAAAjqC,OAAKpE,EAAK,OAEvC,KAAVA,IACAA,EAAQ,GAES,kBAAVA,GAAsBysC,WAAWzsC,EAAM6G,QAAQ0G,aAAevN,EAAM6G,SAC3E7G,EAAK,IAAAoE,OAAOpE,EAAK,MAErB2N,EAAM,aAAAvJ,OAAgBmhC,EAAOz8B,IAAG,KAAA1E,OAAIiqC,EAAO,KAAAjqC,OAAIpE,SAGnDmuC,EAAU,yBAAA/pC,OAA4BmhC,EAAO7B,IAAG,WACzB,WAAnB6B,EAAOhB,SACPvkC,EAAQA,EAAMK,QAAQ,KAAM,OAC5BsN,EAAM,aAAAvJ,OAAgBmhC,EAAOz8B,IAAG,KAAA1E,OAAIiqC,EAAO,MAAAjqC,OAAKpE,EAAK,OAEvC,KAAVA,IACAA,EAAQ,GAES,kBAAVA,GAAsBysC,WAAWzsC,EAAM6G,QAAQ0G,aAAevN,EAAM6G,SAC3E7G,EAAK,IAAAoE,OAAOpE,EAAK,MAErB2N,EAAM,aAAAvJ,OAAgBmhC,EAAOz8B,IAAG,KAAA1E,OAAIiqC,EAAO,KAAAjqC,OAAIpE,GAG3D,KAAO,CACqB,IAADsuC,EAAvB,GAAI/I,EAAOoI,WACPQ,EAAa,gBACqB,YAAvB,OAAP/J,QAAO,IAAPA,GAAgB,QAATkK,EAAPlK,EAASE,eAAO,IAAAgK,OAAT,EAAPA,EAAkB/J,UAClBvkC,EAAQA,EAAMK,QAAQ,KAAM,OAC5BsN,EAAM,2BAAAvJ,OAA8BpE,EAAK,OAEzC2N,EAAM,aAGVwgC,EAAU,yBAAA/pC,OAA4BmhC,EAAO7B,IAAG,WACzB,WAAnB6B,EAAOhB,SACPvkC,EAAQA,EAAMK,QAAQ,KAAM,OAC5BsN,EAAM,aAAAvJ,OAAgBmhC,EAAOz8B,IAAG,eAAA1E,OAAcpE,EAAK,OAEnD2N,EAAM,OAGlB,CAKA,OAJAy2B,EAAQI,iBAAiB/8B,KAAK,CAAEtI,KAAK,aAADiF,OAAemhC,EAAOz8B,KAAO5J,GAAIqmC,EAAO7B,MAC5EU,EAAQuD,eAAelgC,KAAK,mBAADrD,OAAoBmhC,EAAOz8B,IAAG,OAAA1E,OAAM+pC,EAAU,MACzE/J,EAAQuD,eAAelgC,KAAK,gBAADrD,OAAiBmhC,EAAOz8B,IAAG,OAAA1E,OAAMuJ,EAAM,MAClEy2B,EAAQsD,gBAAgBjgC,KAAK,mBAADrD,OAAoBmhC,EAAOz8B,IAAG,sBAAA1E,OAAqBmhC,EAAOz8B,IAAG,uBAAA1E,OAAsBmhC,EAAOz8B,IAAG,oBAAA1E,OAAmBpE,EAAK,SAC3I,UAANoE,OAAiBmhC,EAAOz8B,IAC5B,GAAC,CAAA/I,IAAA,gBAAAC,MAmSD,WACI,MAAO,CACHsiC,WAAY,aACZnjC,KAAM,kBACND,GAAI,iBACJ8K,KAAM,UACN02B,aAAc,CACV,CACIv7B,MAAO,IACP81B,OAAQ,UACR31B,KAAM,YAEV,CACIH,MAAO,KACP81B,OAAQ,qBACR31B,KAAM,oBAEV,CACIH,MAAO,IACP81B,OAAQ,YACR31B,KAAM,gBAEV,CACIH,MAAO,KACP81B,OAAQ,kBACR31B,KAAM,iBAEV,CACIH,MAAO,IACP81B,OAAQ,SACR31B,KAAM,aAEV,CACIH,MAAO,KACP81B,OAAQ,cACR31B,KAAM,gBAEV,CACIH,MAAO,IACP81B,OAAQ,aACR31B,KAAM,YAEV,CACIH,MAAO,KACP81B,OAAQ,eACR31B,KAAM,eAGdH,MAAO,mDAEf,KAAC+nC,CAAA,CAnbe,CAASnP,IC3CvBX,GAAO,CACT,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,IA0IJ,GAvImB,SAAA8H,IAAA9mC,EAAAA,EAAAA,GAAAmwC,EAAArJ,GAAA,IAAA5mC,GAAAC,EAAAA,EAAAA,GAAAgwC,GACf,SAAAA,EAAY/vC,GAAO,OAAAE,EAAAA,EAAAA,GAAA,KAAA6vC,GAAAjwC,EAAAK,KAAA,KACTH,EAAO+vC,EAAcpJ,gBAC/B,CA6HC,OA7HArlC,EAAAA,EAAAA,GAAAyuC,EAAA,EAAAxuC,IAAA,aAAAC,MAsCD,SAAWygC,EAAS+N,GAAa,IAAD/vC,EAAA,KAC5B+vC,OAAwB1/B,IAAb0/B,EAAyBluC,KAAKrB,MAAMy/B,SAAS8P,SAAWA,EACnE/N,EAAUA,GAAWngC,KAAKrB,MAAMy/B,SAAS+B,QACzC,IACMqB,EADeyM,EAAcpJ,gBAAgBzE,aAC1Bn5B,MAAK,SAAAC,GAAI,OAAIA,EAAKrC,QAAUs7B,CAAO,IACtDsC,EAAS,CACX,CACIQ,WAAY,iBACZhJ,KAAM,WACNiB,aAAc,sBAElB,CACIyC,WAAc,OAAH6D,QAAG,IAAHA,OAAG,EAAHA,EAAKx8B,OAAQm7B,EACxB8C,WAAY,aACZhJ,KAAM,OACNiB,aAAc,SAElB,CACIyC,UAAW,YACXsF,WAAY,iBACZhJ,KAAM,WACNiB,cAAc,IAGlBgT,GACAzL,EAAOt7B,KAAK,CACR87B,WAAY,aACZhJ,KAAM,OACNiB,aAAc,UAGtBl7B,KAAKhB,SAAS,CACVyjC,OAAAA,EACAC,SAAQ,IACT,kBAAAoC,EAAAA,GAAAA,IAAAC,EAAAA,GAAAA,GAAAkJ,EAAAjJ,WAAA,cAAA7mC,GAAAE,KAAAF,EAAA,GACP,GAAC,CAAAsB,IAAA,iBAAAC,MAED,SAAeA,EAAOu6B,GACL,aAATA,GACAj6B,KAAK2tC,gBAAWn/B,EAAW9O,EAEnC,GAAC,CAAAD,IAAA,cAAAC,MAED,SAAYygC,GACRngC,KAAK2tC,WAAWxN,EACpB,GAAC,CAAA1gC,IAAA,UAAAC,MA4CD,WACI,OAAOuuC,EAAcpJ,eACzB,IAAC,EAAAplC,IAAA,UAAAC,MA/HD,SAAeulC,EAAQnB,GACnB,IACImD,EADE8G,EAA6B,MAAnB9I,EAAO9E,QAAkB,MAA4B,OAAnB8E,EAAO9E,QAAmB,MAAQ8E,EAAO9E,QAG3F,GAAI8E,EAAOiJ,SAAU,CACjB,IAAAlR,GAAqBiI,EAAOpmB,MAAQ,SAAS5R,WAAWrN,MAAM,KAAIq9B,GAAAzzB,EAAAA,EAAAA,GAAAwzB,EAAA,GAA7DE,EAAKD,EAAA,GAAEpe,EAAIoe,EAAA,GAChBpe,EAAOzc,SAASyc,EAAM,KAAO,GAC7Bqe,EAAQ96B,SAAS86B,EAAO,KAAO,GACnB,GACRA,EAAQ,GACDA,EAAQ,IACfA,EAAQ,GAGRre,EAAOie,GAAKI,GACZre,EAAOie,GAAKI,GACLre,EAAO,IACdA,EAAO,GAGPooB,EADApoB,GAAQqe,EACJ,yCAAAp5B,OAA4CiqC,EAAO,MAAAjqC,OAAKmhC,EAAOpmB,KAAI,KAAA/a,OAAImhC,EAAO8D,KAAI,KACtE,IAATlqB,GAAcqe,EACjB,sCAAAp5B,OAAyCiqC,EAAO,MAAAjqC,OAAKo5B,EAAMjwB,WAAWmwB,SAAS,EAAG,KAAI,KAAAt5B,OAAImhC,EAAO8D,KAAI,KACxF,IAAV7L,GAAere,EAClB,sCAAA/a,OAAyCiqC,EAAO,MAAAjqC,OAAK+a,EAAK5R,WAAWmwB,SAAS,EAAG,KAAI,KAAAt5B,OAAImhC,EAAO8D,KAAI,KAEpG,mCAAAjlC,OAAsCiqC,EAAO,MAAAjqC,OAAKmhC,EAAO8D,KAAI,IAEzE,MACI9B,EAAI,mCAAAnjC,OAAsCiqC,EAAO,MAAAjqC,OAAKmhC,EAAO8D,KAAI,KAIrE,OAFAjF,EAAQuD,eAAelgC,KAAK,gBAADrD,OAAiBmhC,EAAOz8B,IAAG,OAAA1E,OAAMmjC,EAAI,MAChEnD,EAAQsD,gBAAgBjgC,KAAK,mBAADrD,OAAoBmhC,EAAOz8B,IAAG,sBAAA1E,OAAqBmhC,EAAOz8B,IAAG,QACnF,UAAN1E,OAAiBmhC,EAAOz8B,IAC5B,GAAC,CAAA/I,IAAA,gBAAAC,MAiDD,WACI,MAAO,CACHsiC,WAAY,aACZnjC,KAAM,iBACND,GAAI,gBACJ8K,KAAM,UACN02B,aAAc,CACV,CACIv7B,MAAO,IACP81B,OAAQ,UACR31B,KAAM,YAEV,CACIH,MAAO,KACP81B,OAAQ,qBACR31B,KAAM,oBAEV,CACIH,MAAO,IACP81B,OAAQ,YACR31B,KAAM,gBAEV,CACIH,MAAO,KACP81B,OAAQ,kBACR31B,KAAM,iBAEV,CACIH,MAAO,IACP81B,OAAQ,SACR31B,KAAM,aAEV,CACIH,MAAO,KACP81B,OAAQ,cACR31B,KAAM,iBAGdH,MAAO,oDAEf,KAACopC,CAAA,CAhIc,CAASxQ,ICbtB0Q,GAAqB,SAAAvJ,IAAA9mC,EAAAA,EAAAA,GAAAqwC,EAAAvJ,GAAA,IAAA5mC,GAAAC,EAAAA,EAAAA,GAAAkwC,GACvB,SAAAA,EAAYjwC,GAAQ,IAADC,EAES,OAFTC,EAAAA,EAAAA,GAAA,KAAA+vC,IACfhwC,EAAAH,EAAAK,KAAA,KAAMH,EAAOiwC,EAAsBtJ,kBAC9B4D,YAAc,KAAKtqC,CAC5B,CAiMC,OAjMAqB,EAAAA,EAAAA,GAAA2uC,EAAA,EAAA1uC,IAAA,iBAAAC,MAqBD,SAAeA,EAAOu6B,GACL,UAATA,EACAj6B,KAAK6pC,UAAUnqC,GACC,WAATu6B,EACPj6B,KAAK6pC,eAAUr7B,EAAW9O,GACV,gBAATu6B,GACPj6B,KAAK6pC,eAAUr7B,OAAWA,EAAW9O,EAE7C,GAAC,CAAAD,IAAA,YAAAC,MAAA,eAAAgpC,GAAAvW,EAAAA,GAAAA,IAAAC,EAAAA,GAAAA,KAAAC,MAED,SAAAC,EAAgBqW,EAAOC,EAAQC,GAAW,IAAAC,EAAAhkB,EAAAsb,EAAAoB,EAAAuH,EAAAC,EAAAvG,EAAAviC,EAAA,YAAAkyB,EAAAA,GAAAA,KAAAG,MAAA,SAAAC,GAAA,cAAAA,EAAAC,KAAAD,EAAAE,MAAA,OAKO,GAJ7CiW,EAAQA,GAAS3oC,KAAKrB,MAAMy/B,SAASuK,OAAS,YAC9CC,OAAoBp6B,IAAXo6B,EAAuB5oC,KAAKrB,MAAMy/B,SAASwK,OAASA,EAC7DC,OAA8Br6B,IAAhBq6B,EAA4B7oC,KAAKrB,MAAMy/B,SAASyK,YAAcA,EAE5EA,EAAczmC,SAASymC,EAAa,KAAO,EACtC7oC,KAAKyoC,YAAY,CAADjW,EAAAE,KAAA,eAAAF,EAAAE,KAAA,EACX1yB,KAAK9B,MAAMgK,OAAOC,UAAU,+BAC7BC,MAAK,SAAAkiB,GAA0C,IAAD2e,EAAA3e,EAAtC8O,OAAU8P,EAAQD,EAARC,SAAUC,EAASF,EAATE,UACzB,IAAKD,IAAaC,EACd,OAAOjpC,EAAKhC,MAAMgK,OAAOC,UAAU,iBAC9BC,MAAK,SAAAC,GACEA,IAAQA,EAAIC,OAAO4gC,UAAY7gC,EAAIC,OAAO6gC,WAC1CjpC,EAAKuoC,YAAc,CACfS,SAAU7gC,EAAIC,OAAO4gC,SACrBC,UAAW9gC,EAAIC,OAAO6gC,WAG1BjpC,EAAKuoC,YAAc,IAE3B,IAEJvoC,EAAKuoC,YAAc,CACfS,SAAAA,EACAC,UAAAA,EAGZ,IAAG,KAAD,EAEJL,EAAW9oC,KAAKyoC,aAAeW,KAAAA,SAAiB,IAAItqB,KAAQ9e,KAAKyoC,YAAYS,SAAUlpC,KAAKyoC,YAAYU,YACxGrkB,EAAUgkB,EAAWr7B,OAAOC,KAAKo7B,GAAUxmC,KAAI,SAAAzD,GAAI,MAAK,CAC1Da,MAAOb,EACPgG,MAAOhG,EACP87B,OAAO,IAAD72B,OAAMqqC,EAAsB9E,aAAaP,EAASjqC,IAAM,KAC9DyqC,MAAO6E,EAAsB9E,aAAaP,EAASjqC,IACtD,IAAK,IACE8K,MAAK,SAACC,EAAGC,GAAC,OAAKD,EAAE0/B,MAAQz/B,EAAEy/B,MAAQ,EAAK1/B,EAAE0/B,MAAQz/B,EAAEy/B,OAAS,EAAI,CAAE,IAGrElJ,EAAe+N,EAAsBtJ,gBAAgBzE,aACrDoB,EAAMpB,EAAan5B,MAAK,SAAAC,GAAI,OAAIA,EAAKrC,QAAU3E,EAAKvB,MAAMy/B,SAAS+B,OAAO,IAE5E4I,EAAO,QACPJ,GAASG,GAAYA,EAASH,KACxBK,EAAY,IAAIlqB,KAAKgqB,EAASH,IACpCC,GAAUI,EAAUO,WAAWP,EAAUhrB,aAAe5b,SAASymC,EAAa,KAC9EE,EAAI,IAAAjlC,OAAOjD,EAAAA,KAAAA,EAAO2gC,EAAIx8B,MAAK,KAAAlB,OAAIqqC,EAAsB9E,aAAaL,GAAU,MAM5EvG,EADAmG,EACS,CACL,CACI3F,WAAY,iBACZ/H,aAAc,qBACdjB,KAAM,QAEV,CACI0D,UAAW6D,EAAIx8B,KACfi1B,KAAM,QACNgJ,WAAY,eACZne,QAAAA,EACAyW,iBAAiB,EACjBL,aAAc,aAElB,CACI0C,SAAU,cACVqF,WAAY,iBACZhJ,KAAM,UAEV,CACI2D,SAA0B,IAAhBiL,EAAoB,SAAW,UACzClL,UAAW,SACXsF,WAAY,eACZ/H,aAAc,EACdjB,KAAM,cACNsE,cAAc,GAElB,CACI0E,WAAY,iBACZhJ,KAAM,WACNqB,gBAAgB,EAChBJ,aAAc6N,IAIb,CACL,CACI9F,WAAY,iBACZ/H,aAAc,qBACdjB,KAAM,QAEV,CACI0D,UAAW6D,EAAIx8B,KACfi1B,KAAM,QACNgJ,WAAY,eACZne,QAAAA,EACAyW,iBAAiB,EACjBL,aAAc,aAElB,CACI0C,SAAU,cACVqF,WAAY,iBACZhJ,KAAM,UAEV,CACIgJ,WAAY,iBACZhJ,KAAM,WACNqB,gBAAgB,EAChBJ,aAAc6N,IAK1B/oC,KAAKhB,SAAS,CAAEyjC,OAAAA,IAAU,kBAAAqC,EAAAA,GAAAA,IAAAC,EAAAA,GAAAA,GAAAoJ,EAAAnJ,WAAA,cAAA9kC,GAAA7B,KAAA6B,EAAA,IAA2B,yBAAAsyB,EAAA8B,OAAA,GAAAhC,EAAA,UACxD,gBAAAiD,EAAAiU,EAAAC,GAAA,OAAAf,EAAA7kC,MAAA,KAAAJ,UAAA,EAtHA,IAsHA,CAAAhE,IAAA,cAAAC,MAED,SAAYygC,GACRngC,KAAK6pC,WACT,GAAC,CAAApqC,IAAA,UAAAC,MA4CD,WACI,OAAOyuC,EAAsBtJ,eACjC,IAAC,EAAAplC,IAAA,UAAAC,MAnMD,SAAeulC,EAAQnB,GACnB,IACI8E,EADEmF,EAA6B,MAAnB9I,EAAO9E,QAAkB,MAA4B,OAAnB8E,EAAO9E,QAAmB,MAAQ8E,EAAO9E,QAEvF8E,EAAO2D,SACPA,EAASxmC,SAAS6iC,EAAO4D,YAAa,KAAO,GAEjD,IAAM5B,EAAI,mCAAAnjC,OAAsCiqC,EAAO,8BAAAjqC,OAA6BmhC,EAAO0D,MAAK,KAAA7kC,OAAI8kC,EAAM,gBAAA9kC,OAAmB8kC,GAAW,GAAE,eAG1I,OAFA9E,EAAQuD,eAAelgC,KAAK,gBAADrD,OAAiBmhC,EAAOz8B,IAAG,OAAA1E,OAAMmjC,EAAI,MAChEnD,EAAQsD,gBAAgBjgC,KAAK,mBAADrD,OAAoBmhC,EAAOz8B,IAAG,eAAA1E,OAAcmjC,EAAI,QACrEA,CACX,GAAC,CAAAxnC,IAAA,eAAAC,MAED,SAAoBqpC,GAChB,OAAKA,EAGC,GAANjlC,OAAUilC,EAAKhrB,WAAW9Q,WAAWmwB,SAAS,EAAG,KAAI,KAAAt5B,OAAIilC,EAAK/qB,aAAa/Q,WAAWmwB,SAAS,EAAG,MAFvF,OAGf,GAAC,CAAA39B,IAAA,gBAAAC,MAsID,WACI,MAAO,CACHsiC,WAAY,aACZnjC,KAAM,eACND,GAAI,wBACJ8K,KAAM,cACN02B,aAAc,CACV,CACIv7B,MAAO,IACP81B,OAAQ,UACR31B,KAAM,YAEV,CACIH,MAAO,KACP81B,OAAQ,qBACR31B,KAAM,uBAEV,CACIH,MAAO,IACP81B,OAAQ,YACR31B,KAAM,gBAEV,CACIH,MAAO,KACP81B,OAAQ,kBACR31B,KAAM,oBAEV,CACIH,MAAO,IACP81B,OAAQ,SACR31B,KAAM,aAEV,CACIH,MAAO,KACP81B,OAAQ,cACR31B,KAAM,iBAGdH,MAAO,gDAEf,KAACspC,CAAA,CArMsB,CAAS1Q,IA4MpC,MCnMM2Q,GAAc,SAAAxJ,IAAA9mC,EAAAA,EAAAA,GAAAswC,EAAAxJ,GAAA,IAAA5mC,GAAAC,EAAAA,EAAAA,GAAAmwC,GAChB,SAAAA,EAAYlwC,GAAO,OAAAE,EAAAA,EAAAA,GAAA,KAAAgwC,GAAApwC,EAAAK,KAAA,KACTH,EAAOkwC,EAAevJ,gBAChC,CA2QC,OA3QArlC,EAAAA,EAAAA,GAAA4uC,EAAA,EAAA3uC,IAAA,uBAAAC,MAED,WAAwB,IAADqtC,EAAAC,EAAAC,EAAAC,EACnB,OAA2B,QAApBH,EAAA/sC,KAAK9B,MAAMm6B,iBAAS,IAAA0U,GAAU,QAAVC,EAApBD,EAAsBxG,gBAAQ,IAAAyG,OAAV,EAApBA,EAAgC/lC,MAAK,SAAAC,GAAI,MAAgB,iBAAZA,EAAKtI,EAAqB,QACrD,QAArBquC,EAACjtC,KAAK9B,MAAMm6B,iBAAS,IAAA4U,GAAU,QAAVC,EAApBD,EAAsB1G,gBAAQ,IAAA2G,GAA9BA,EAAgCjmC,MAAK,SAAAC,GAAI,MAAgB,iBAAZA,EAAKtI,EAAqB,IAChF,GAAC,CAAAa,IAAA,cAAAC,MA8CD,SAAY6jC,GACR,OAAOpjC,EAAAA,GAAAA,MAAA,QAAAO,SAAA,CAAOG,EAAAA,KAAAA,EAAO,QAAQ,KAACF,EAAAA,GAAAA,KAAA,QAAM2D,UAAWi/B,EAAap2B,KAAK4+B,IAAM/rC,KAAK9B,MAAMqG,QAAQsnC,SAAW7rC,KAAK9B,MAAMqG,QAAQunC,YAAYprC,SAAE0tC,EAAe5T,YAAY+I,EAAap2B,KAAKwF,SACvL,GAAC,CAAAlT,IAAA,aAAAC,MAED,SAAW2tC,EAAYgB,GAAS,IAADlwC,EAAA,KACrBuvC,EAAuB1tC,KAAK0tC,uBAElCW,OAA4B7/B,IAAf6/B,EAA2BruC,KAAKrB,MAAMy/B,SAASiQ,OAAaA,EACzEhB,OAA4B7+B,IAAf6+B,EAA2BrtC,KAAKrB,MAAMy/B,SAASiP,WAAaA,EACzE,IACIvoB,EAEAsZ,EA0BAqE,EA7BA1+B,EAAO,GAEXuqC,EAAkFtuC,KAAKrB,MAAMy/B,SAAtF6F,EAAOqK,EAAPrK,QAASqJ,EAAOgB,EAAPhB,QAASC,EAASe,EAATf,UAAWgB,EAAMD,EAANC,OAAQC,EAAMF,EAANE,OAAQC,EAAOH,EAAPG,QAASC,EAAQJ,EAARI,SAAUC,EAAOL,EAAPK,QA4BvE,GAzBI1K,IACgB,WAAZA,GACAlgC,EAAO,cACQyK,IAAX+/B,QAAmC//B,IAAXggC,IACxBzqC,EAAO,WAEQ,YAAZkgC,GACPlgC,EAAO,UACH0qC,GAAWA,EAAQvqC,SAAS,WAAawqC,IACzC3qC,EAAO,YAGXA,EAAO,GACH0qC,GAAWA,EAAQvqC,SAAS,WAC5BH,EAAO,UAIXwpC,IACAzoB,EAAUrX,OAAOC,KAAK6/B,GAAWjrC,KAAI,SAAAqQ,GAAG,MAAK,CAAEjT,MAAOiT,EAAK9N,MAAO0oC,EAAU56B,GAAM,IAClF5O,EAAO,WAKX2pC,GAAwBL,EACxB5K,EAAS,CACL,CACI7E,SAAU,oBACVqF,WAAY,iBACZhJ,KAAM,aACNiB,cAAc,IAGT,YAATn3B,GACA0+B,EAAOt7B,KAAK,CACRy2B,SAAU,eACV3D,KAAM,SACNgJ,WAAY,iBACZ/H,cAAc,QAGnB,CACH,OAAQn3B,GACJ,IAAK,SACD0+B,EAAS,CAAC,CACN7E,SAAU0P,GAAW,GACrB3P,UAAW,OACXsF,WAAY,eACZ/H,kBAAyB1sB,IAAX+/B,EAAuB,EAAIA,EACzCtU,KAAM,eAEwBzrB,IAA9BxO,KAAKrB,MAAMy/B,SAAS1+B,OAAuBkvC,MAAMzC,WAAWnsC,KAAKrB,MAAMy/B,SAAS1+B,UAChF0+B,EAAW,CAAE1+B,WAAkB8O,IAAX+/B,EAAuB,EAAIA,IAEnD,MAEJ,IAAK,SACD9L,EAAS,CAAC,CACNQ,WAAY,eACZ/H,aAAcqT,EACdvS,IAAKwS,EACLvS,IAAKsS,EACLpS,KAAMmR,EACNpR,KAAMyS,EACN1U,KAAM,UAEV,IAAM4U,EAAI1C,WAAWnsC,KAAKrB,MAAMy/B,SAAS1+B,YACP8O,IAA9BxO,KAAKrB,MAAMy/B,SAAS1+B,QACnBkvC,MAAMC,IAAMA,EAAIL,GAAUK,EAAIN,KAE/BnQ,EAAW,CAAE1+B,MAAO6uC,IAExB,MAEJ,IAAK,SACD9L,EAAS,CAAC,CACNQ,WAAY,eACZtF,UAAW,OACX7Y,QAAAA,EACAoW,aAAcpW,EAAQ,GAAGplB,MACzBu6B,KAAM,eAEwBzrB,IAA9BxO,KAAKrB,MAAMy/B,SAAS1+B,OAAwBolB,EAAQ7d,MAAK,SAAAC,GAAI,OAAIA,EAAKxH,QAAUvB,EAAKQ,MAAMy/B,SAAS1+B,KAAK,MACzG0+B,EAAW,CAAE1+B,MAAOolB,EAAQ,GAAGplB,QAEnC,MAEJ,IAAK,UACD+iC,EAAS,CACL,CACI7E,SAAU,eACV3D,KAAM,SACNgJ,WAAY,iBACZ/H,cAAc,IAGjBmT,GACD5L,EAAOt7B,KAAK,CACRy2B,SAAU,OACVD,UAAW,QACXsF,WAAY,eACZ/H,cAAc,EACdjB,KAAM,eAIoBzrB,IAA9BxO,KAAKrB,MAAMy/B,SAAS1+B,QAAqD,IAA9BM,KAAKrB,MAAMy/B,SAAS1+B,QAAiD,IAA9BM,KAAKrB,MAAMy/B,SAAS1+B,QACtG0+B,EAAW,CAAE1+B,OAAO,IAExB,MAEJ,IAAK,SACD+iC,EAAS,CAAC,CACNQ,WAAY,eACZ/H,cAAc,EACdjB,KAAM,eAEwBzrB,IAA9BxO,KAAKrB,MAAMy/B,SAAS1+B,QAAqD,IAA9BM,KAAKrB,MAAMy/B,SAAS1+B,QAC/D0+B,EAAW,CAAE1+B,OAAO,IAExB,MAEJ,IAAK,QACD+iC,EAAS,CAAC,CACNQ,WAAY,cACZtF,UAAW,OACXzC,aAAc,UACdjB,KAAM,eAEwBzrB,IAA9BxO,KAAKrB,MAAMy/B,SAAS1+B,OAEqB,kBAA9BM,KAAKrB,MAAMy/B,SAAS1+B,QACnBM,KAAKrB,MAAMy/B,SAAS1+B,MAAMqK,WAAW,KAClC/J,KAAKrB,MAAMy/B,SAAS1+B,MAAMqK,WAAW,OAA5C,KAERq0B,EAAW,CAAE1+B,MAAO,YAExB,MAEJ,QACI+iC,EAAS,CAAC,CACN7E,SAAU0P,GAAW,GACrB3P,UAAW,OACXsF,WAAY,aACZ/H,aAAc,GACdjB,KAAM,UAKdyT,GACAjL,EAAOlI,QAAQ,CACXqD,SAAU,oBACVqF,WAAY,iBACZhJ,KAAM,cAGlB,CAEA,MAAO,CAAEwI,OAAAA,EAAQZ,YAAazD,EAClC,GAAC,CAAA3+B,IAAA,cAAAC,MAED,SAAYygC,EAASruB,EAAIg9B,EAAQT,EAAQhB,GAAa,IAADntC,EAAA,KACjDmtC,OAA4B7+B,IAAf6+B,EAA2BrtC,KAAKrB,MAAMy/B,SAASiP,WAAaA,EACzE,IAAA0B,EAAgC/uC,KAAK2tC,WAAWN,EAAYgB,GAApD5L,EAAMsM,EAANtM,OAAQZ,EAAWkN,EAAXlN,YAChBY,EAAOlI,QAAQ,CACX0I,WAAY,iBACZhJ,KAAM,MACNiB,aAAc,GACd+D,eAAe,IAGnBj/B,KAAKhB,SAAS,CAAEyjC,OAAAA,IAAU,kBAAAqC,EAAAA,GAAAA,IAAAC,EAAAA,GAAAA,GAAAqJ,EAAApJ,WAAA,cAAA9kC,GAAA7B,KAAA6B,EACJ,MAAM,WACpB,GAAI2hC,EAAa,CACb,IAAMzD,EAAWzuB,KAAKC,MAAMD,KAAK8C,UAAUvS,EAAKvB,MAAMy/B,WACtD3wB,OAAOkH,OAAOypB,EAAUyD,GACxB3hC,EAAKlB,SAASo/B,GACdl+B,EAAKhC,MAAMyD,SAASy8B,EACxB,CACJ,GAAC,GACT,GAAC,CAAA3+B,IAAA,iBAAAC,MAED,SAAeA,EAAOu6B,EAAM6J,GACxB9jC,KAAKyhC,iBAAYjzB,OAAWA,OAAWA,EAAoB,WAATyrB,EAAoBv6B,OAAQ8O,EAAoB,eAATyrB,EAAwBv6B,OAAQ8O,EAC7H,GAAC,CAAA/O,IAAA,WAAAC,MAED,WACIM,KAAKyhC,aACT,GAAC,CAAAhiC,IAAA,UAAAC,MAcD,WACI,OAAO0uC,EAAevJ,eAC1B,IAAC,EAAAplC,IAAA,UAAAC,MAxQD,SAAeulC,EAAQnB,GACnB,IAgBItI,EAhBA97B,EAAQulC,EAAOvlC,MAuBnB,OAtBIulC,EAAOoI,WACP3tC,EAAQulC,EAAOoJ,OAAS,iBAAmB,sBAE7B7/B,IAAV9O,GAAiC,OAAVA,IACvBA,EAAQ,IAGgB,kBAAjBulC,EAAOvlC,OACdysC,WAAWlH,EAAOvlC,OAAOuN,aAAeg4B,EAAOvlC,OAC9B,SAAjBulC,EAAOvlC,OACU,UAAjBulC,EAAOvlC,QAEPA,EAAK,IAAAoE,OAAOpE,EAAMK,QAAQ,KAAM,OAAM,KAAA+D,OAAI25B,GAAAA,kBAA+BqG,MAM7EtI,EADAyJ,EAAOoJ,SAAWpJ,EAAOoI,WACxB,qBAAAvpC,OAAwBmhC,EAAOz8B,IAAG,8BAAA1E,OAA6BmhC,EAAO7B,IAAG,WAEzE,qBAAAt/B,OAAwBmhC,EAAOz8B,IAAG,OAAA1E,OAAMpE,GAEvC,gBAANoE,OAAuBmhC,EAAO7B,IAAG,QAAAt/B,OAAOmhC,EAAOoJ,SAAWpJ,EAAOoI,WAAa,SAAW3tC,EAAK,WAAAoE,OAChG03B,EAAC,2BAAA13B,OACemhC,EAAOz8B,IAAG,wBAAA1E,OAAuBmhC,EAAOz8B,IAAG,WAAA1E,OAA6B,WAAnBmhC,EAAO9E,QAAoB,kCAAAr8B,OAC3EmhC,EAAO7B,IAAG,mBAAAt/B,OAAkBmhC,EAAOz8B,IAAG,MAAA1E,OAAwB,WAAnBmhC,EAAO9E,QAAoB,KAC7F,GAAC,CAAA1gC,IAAA,cAAAC,MAED,SAAmBiT,GACf,OAAY,OAARA,EACO,YACQnE,IAARmE,EACA,YACAhP,MAAM+oC,QAAQ/5B,GACdA,EAAI7S,KAAK,MACM,kBAAR6S,EACPhD,KAAK8C,UAAUE,GAEfA,EAAI1F,UAEnB,GAAC,CAAAxN,IAAA,gBAAAC,MAgND,WACI,MAAO,CACHsiC,WAAY,UACZnjC,KAAM,mBACND,GAAI,iBACJ8K,KAAM,cACN02B,aAAc,CAAC,UAAW,UAC1Bv7B,MAAO,+BACP89B,WAAY,yGAEpB,KAACyL,CAAA,CA9Qe,CAAS3Q,ICmB7B,GAjBuB,CACnBuR,GACA1G,GACAoD,GACAkB,GACAqB,GACAE,ID6QW9qC,EAAAA,EAAAA,IA9RA,SAAAC,GAAK,MAAK,CACrBuoC,SAAU,CACNlpC,MAAO,WAEXmpC,YAAa,CACTnpC,MAAO,WAEd,GAuRD,CAAkCyrC,IEhSlB,SAAAxJ,IAAA9mC,EAAAA,EAAAA,GAAAmxC,EAAArK,GAAA,IAAA5mC,GAAAC,EAAAA,EAAAA,GAAAgxC,GACZ,SAAAA,EAAY/wC,GAAO,OAAAE,EAAAA,EAAAA,GAAA,KAAA6wC,GAAAjxC,EAAAK,KAAA,KACTH,EAAO+wC,EAAWpK,gBAC5B,CAmCC,OAnCArlC,EAAAA,EAAAA,GAAAyvC,EAAA,EAAAxvC,IAAA,cAAAC,MASD,SAAY6jC,GACR,MAAM,SAANz/B,OAAgBy/B,EAAap2B,KAAK+hC,KACtC,GAAC,CAAAzvC,IAAA,cAAAC,MAED,SAAYygC,GAAU,IAADhiC,EAAA,KACjB6B,KAAKhB,SAAS,CACVyjC,OAAQ,CACJ,CACIQ,WAAY,mBACZhJ,KAAM,OACNiB,aAAc,mBACd2C,UAAW,oBAGpB,kBAAAiH,EAAAA,GAAAA,IAAAC,EAAAA,GAAAA,GAAAkK,EAAAjK,WAAA,cAAA7mC,GAAAE,KAAAF,EAAwBgiC,EAAO,GACtC,GAAC,CAAA1gC,IAAA,UAAAC,MAaD,WACI,OAAOuvC,EAAWpK,eACtB,IAAC,EAAAplC,IAAA,UAAAC,MArCD,SAAeulC,EAAQnB,GACnB,MAAM,YAANhgC,OAAmBmhC,EAAOiK,KAAI,6BAAAprC,OACdmhC,EAAOz8B,IAAG,QAAA1E,QAAQmhC,EAAOiK,MAAQ,IAAInvC,QAAQ,KAAM,OAAM,KAAA+D,OAAI25B,GAAAA,kBAA+BqG,GAAQ,2BAAAhgC,OACtGmhC,EAAOz8B,IAAG,yBAAA1E,OAAwBmhC,EAAOz8B,IAAG,qCAAA1E,OACpCmhC,EAAOz8B,IAAG,KACpC,GAAC,CAAA/I,IAAA,gBAAAC,MAmBD,WACI,MAAO,CACHsiC,WAAY,UACZnjC,KAAM,OACND,GAAI,aACJ8K,KAAM,OACN7E,MAAO,8BACP89B,WAAY,mGAEpB,KAACsM,CAAA,CAtCW,CAASxR,ICAL,SAAAmH,IAAA9mC,EAAAA,EAAAA,GAAAqxC,EAAAvK,GAAA,IAAA5mC,GAAAC,EAAAA,EAAAA,GAAAkxC,GAChB,SAAAA,EAAYjxC,GAAO,OAAAE,EAAAA,EAAAA,GAAA,KAAA+wC,GAAAnxC,EAAAK,KAAA,KACTH,EAAOixC,EAAetK,gBAChC,CAmCC,OAnCArlC,EAAAA,EAAAA,GAAA2vC,EAAA,EAAA1vC,IAAA,cAAAC,MASD,SAAY6jC,GACR,MAAM,QAANz/B,OAAey/B,EAAap2B,KAAK4oB,IACrC,GAAC,CAAAt2B,IAAA,cAAAC,MAED,SAAYygC,GAAU,IAADhiC,EAAA,KACjB6B,KAAKhB,SAAS,CACVyjC,OAAQ,CACJ,CACIQ,WAAY,mBACZhJ,KAAM,MACNiB,aAAc,0BACd2C,UAAW,UAGpB,kBAAAiH,EAAAA,GAAAA,IAAAC,EAAAA,GAAAA,GAAAoK,EAAAnK,WAAA,cAAA7mC,GAAAE,KAAAF,EAAwBgiC,EAAO,GACtC,GAAC,CAAA1gC,IAAA,UAAAC,MAaD,WACI,OAAOyvC,EAAetK,eAC1B,IAAC,EAAAplC,IAAA,UAAAC,MArCD,SAAeulC,EAAQnB,GACnB,MAAM,mBAANhgC,OAA0BmhC,EAAOlP,IAAG,4BAAAjyB,OACpBmhC,EAAOz8B,IAAG,QAAA1E,QAAQmhC,EAAOlP,KAAO,IAAIh2B,QAAQ,KAAM,OAAM,KAAA+D,OAAI25B,GAAAA,kBAA+BqG,GAAQ,2BAAAhgC,OACrGmhC,EAAOz8B,IAAG,wBAAA1E,OAAuBmhC,EAAOz8B,IAAG,iCAAA1E,OACvCmhC,EAAOz8B,IAAG,KAChC,GAAC,CAAA/I,IAAA,gBAAAC,MAmBD,WACI,MAAO,CACHsiC,WAAY,UACZnjC,KAAM,YACND,GAAI,iBACJ8K,KAAM,WACN7E,MAAO,0BACP89B,WAAY,+FAEpB,KAACwM,CAAA,CAtCe,CAAS1R,ICCR,SAAAmH,IAAA9mC,EAAAA,EAAAA,GAAAsxC,EAAAxK,GAAA,IAAA5mC,GAAAC,EAAAA,EAAAA,GAAAmxC,GACjB,SAAAA,EAAYlxC,GAAO,OAAAE,EAAAA,EAAAA,GAAA,KAAAgxC,GAAApxC,EAAAK,KAAA,KACTH,EAAOkxC,EAAgBvK,gBACjC,CAmCC,OAnCArlC,EAAAA,EAAAA,GAAA4vC,EAAA,EAAA3vC,IAAA,cAAAC,MASD,SAAY6jC,GACR,OAAO1iC,EAAAA,KAAAA,EAAO,UAAW0iC,EAAap2B,KAAKnI,KAC/C,GAAC,CAAAvF,IAAA,cAAAC,MAED,SAAYygC,GAAU,IAADhiC,EAAA,KACjB6B,KAAKhB,SAAS,CACVyjC,OAAQ,CACJ,CACIQ,WAAY,mBACZhJ,KAAM,OACNiB,aAAc,sBACd2C,UAAW,eAGpB,kBAAAiH,EAAAA,GAAAA,IAAAC,EAAAA,GAAAA,GAAAqK,EAAApK,WAAA,cAAA7mC,GAAAE,KAAAF,EAAwBgiC,EAAO,GACtC,GAAC,CAAA1gC,IAAA,UAAAC,MAaD,WACI,OAAO0vC,EAAgBvK,eAC3B,IAAC,EAAAplC,IAAA,UAAAC,MArCD,SAAeulC,EAAQnB,GACnB,MAAM,UAANhgC,OAAiBmhC,EAAOjgC,KAAI,4BAAAlB,OACZmhC,EAAOz8B,IAAG,QAAA1E,QAAQmhC,EAAOjgC,MAAQ,IAAIjF,QAAQ,KAAM,OAAM,KAAA+D,OAAI25B,GAAAA,kBAA+BqG,GAAQ,2BAAAhgC,OACtGmhC,EAAOz8B,IAAG,yBAAA1E,OAAwBmhC,EAAOz8B,IAAG,qCAAA1E,OACpCmhC,EAAOz8B,IAAG,KACpC,GAAC,CAAA/I,IAAA,gBAAAC,MAmBD,WACI,MAAO,CACHsiC,WAAY,UACZnjC,KAAM,WACND,GAAI,kBACJ8K,KAAM,UACN7E,MAAO,yBACP89B,WAAY,wGAEpB,KAACyM,CAAA,CAtCgB,CAAS3R,ICAb,SAAAmH,IAAA9mC,EAAAA,EAAAA,GAAAuxC,EAAAzK,GAAA,IAAA5mC,GAAAC,EAAAA,EAAAA,GAAAoxC,GACb,SAAAA,EAAYnxC,GAAO,OAAAE,EAAAA,EAAAA,GAAA,KAAAixC,GAAArxC,EAAAK,KAAA,KACTH,EAAOmxC,EAAYxK,gBAC7B,CAuEC,OAvEArlC,EAAAA,EAAAA,GAAA6vC,EAAA,EAAA5vC,IAAA,cAAAC,MAWD,SAAY6jC,GACR,OAAO1iC,GAAAA,QAAAA,EAAO,aAAc0iC,EAAap2B,KAAKmiC,OAClD,GAAC,CAAA7vC,IAAA,cAAAC,MAED,SAAY6vC,GAER,OAAc,KADdA,OAAkB/gC,IAAV+gC,EAAsBvvC,KAAKrB,MAAMy/B,SAASmR,MAAQA,IAC7B,MAAVA,EACR,CACH,CAAE7vC,MAAO,KAAMmF,MAAO,eACtB,CAAEnF,MAAO,IAAKmF,MAAO,UACrB,CAAEnF,MAAO,IAAKmF,MAAO,UACrB,CAAEnF,MAAO,IAAKmF,MAAO,SAGlB,CACH,CAAEnF,MAAO,KAAMmF,MAAO,gBACtB,CAAEnF,MAAO,IAAKmF,MAAO,WACrB,CAAEnF,MAAO,IAAKmF,MAAO,WACrB,CAAEnF,MAAO,IAAKmF,MAAO,SAGjC,GAAC,CAAApF,IAAA,aAAAC,MAED,SAAW6vC,GAAQ,IAADpxC,EAAA,KACd6B,KAAKhB,SAAS,CACVyjC,OAAQ,CACJ,CACIQ,WAAY,eACZhJ,KAAM,QACNiB,aAAc,IACdqD,cAAc,GAElB,CACI0E,WAAY,eACZhJ,KAAM,OACNiB,aAAc,KACdpW,QAAS9kB,KAAKwvC,YAAYD,OAGnC,kBAAAzK,EAAAA,GAAAA,IAAAC,EAAAA,GAAAA,GAAAsK,EAAArK,WAAA,cAAA7mC,GAAAE,KAAAF,EAAA,GACP,GAAC,CAAAsB,IAAA,iBAAAC,MAED,SAAeA,EAAOu6B,GACL,UAATA,GACAj6B,KAAK2tC,WAAWjuC,EAExB,GAAC,CAAAD,IAAA,cAAAC,MAED,SAAYygC,GACRngC,KAAK2tC,YACT,GAAC,CAAAluC,IAAA,UAAAC,MAYD,WACI,OAAO2vC,EAAYxK,eACvB,IAAC,EAAAplC,IAAA,UAAAC,MAzED,SAAeulC,EAAQnB,GACnB,IAAMllB,EAAqB,OAAhBqmB,EAAO9I,KAAgB,EAAqB,MAAhB8I,EAAO9I,KAAe,IAAwB,MAAhB8I,EAAO9I,KAAe,IAAQ,KAEnG,MAAM,gBAANr4B,OAAuB8a,EAAE,4BAAA9a,OACXmhC,EAAOz8B,IAAG,yCAAA1E,OACfmhC,EAAOsK,MAAK,OAAAzrC,OAAM8a,EAAE,8BAAA9a,OACfmhC,EAAOz8B,IAAG,sBAC5B,GAAC,CAAA/I,IAAA,gBAAAC,MAsDD,WACI,MAAO,CACHsiC,WAAY,UACZnjC,KAAM,QACND,GAAI,cACJ8K,KAAM,QACN7E,MAAO,+BAEf,KAACwqC,CAAA,CA1EY,CAAS5R,ICAN,SAAAmH,IAAA9mC,EAAAA,EAAAA,GAAA2xC,EAAA7K,GAAA,IAAA5mC,GAAAC,EAAAA,EAAAA,GAAAwxC,GAChB,SAAAA,EAAYvxC,GAAO,OAAAE,EAAAA,EAAAA,GAAA,KAAAqxC,GAAAzxC,EAAAK,KAAA,KACTH,EAAOuxC,EAAe5K,gBAChC,CAwCC,OAxCArlC,EAAAA,EAAAA,GAAAiwC,EAAA,EAAAhwC,IAAA,cAAAC,MAaD,SAAY6jC,GACR,OAAO1iC,EAAAA,KAAAA,EAAO,qBAClB,GAAC,CAAApB,IAAA,cAAAC,MAED,SAAYygC,GAAU,IAADhiC,EAAA,KACjB6B,KAAKhB,SAAS,CACVyjC,OAAQ,CACJ,CACIQ,WAAY,mBACZhJ,KAAM,OACN+G,YAAY,EACZ9F,aAAc,sBACd2C,UAAW,eAGpB,kBAAAiH,EAAAA,GAAAA,IAAAC,EAAAA,GAAAA,GAAA0K,EAAAzK,WAAA,cAAA7mC,GAAAE,KAAAF,EAAwBgiC,EAAO,GACtC,GAAC,CAAA1gC,IAAA,UAAAC,MAaD,WACI,OAAO+vC,EAAe5K,eAC1B,IAAC,EAAAplC,IAAA,UAAAC,MA1CD,SAAeulC,EAAQnB,GACnB,IAAMtlB,GAASymB,EAAO2F,MAAQ,IACzBhrC,MAAM,MACN0C,KAAI,SAACulC,EAAM9gC,GAAC,iBAAAjD,OAAgB+jC,EAAI,IAKrC,OAHArpB,EAAM+b,QAAQ,uBAADz2B,OAAwBmhC,EAAOz8B,IAAG,2BAC/CgW,EAAM+b,QAAQ,oBAEP/b,EAAM1e,KAAK,KACtB,GAAC,CAAAL,IAAA,gBAAAC,MAoBD,WACI,MAAO,CACHsiC,WAAY,UACZnjC,KAAM,gBACND,GAAI,iBACJ8K,KAAM,YACN7E,MAAO,sBACP89B,WAAY,+FAEpB,KAAC8M,CAAA,CA3Ce,CAAShS,ICAF,SAAAmH,IAAA9mC,EAAAA,EAAAA,GAAA4xC,EAAA9K,GAAA,IAAA5mC,GAAAC,EAAAA,EAAAA,GAAAyxC,GACvB,SAAAA,EAAYxxC,GAAO,OAAAE,EAAAA,EAAAA,GAAA,KAAAsxC,GAAA1xC,EAAAK,KAAA,KACTH,EAAOwxC,EAAsB7K,gBACvC,CAwRC,OAxRArlC,EAAAA,EAAAA,GAAAkwC,EAAA,EAAAjwC,IAAA,uBAAAC,MAED,WAAwB,IAADqtC,EAAAC,EAAAC,EAAAC,EACnB,OAA2B,QAApBH,EAAA/sC,KAAK9B,MAAMm6B,iBAAS,IAAA0U,GAAU,QAAVC,EAApBD,EAAsBxG,gBAAQ,IAAAyG,OAAV,EAApBA,EAAgC/lC,MAAK,SAAAC,GAAI,MAAgB,iBAAZA,EAAKtI,EAAqB,QACrD,QAArBquC,EAACjtC,KAAK9B,MAAMm6B,iBAAS,IAAA4U,GAAU,QAAVC,EAApBD,EAAsB1G,gBAAQ,IAAA2G,GAA9BA,EAAgCjmC,MAAK,SAAAC,GAAI,MAAgB,iBAAZA,EAAKtI,EAAqB,IAChF,GAAC,CAAAa,IAAA,cAAAC,MA8CD,SAAY6jC,GACR,OAAOpjC,EAAAA,GAAAA,MAAA,QAAAO,SAAA,CAAOG,EAAAA,KAAAA,EAAO,QAAQ,KAACF,EAAAA,GAAAA,KAAA,QAAM2D,UAAWi/B,EAAap2B,KAAK4+B,IAAM/rC,KAAK9B,MAAMqG,QAAQsnC,SAAW7rC,KAAK9B,MAAMqG,QAAQunC,YAAYprC,SAAEgvC,EAAsBlV,YAAY+I,EAAap2B,KAAKwF,SAC9L,GAAC,CAAAlT,IAAA,aAAAC,MAED,SAAW2tC,EAAYgB,GAAS,IAADlwC,EAAA,KACrBuvC,EAAuB1tC,KAAK0tC,uBAElCW,OAAoB7/B,IAAX6/B,EAAuBruC,KAAKrB,MAAMy/B,SAASiQ,OAASA,EAC7DhB,OAA4B7+B,IAAf6+B,EAA2BrtC,KAAKrB,MAAMy/B,SAASiP,WAAaA,EACzE,IACIvoB,EAEAsZ,EAyBAqE,EA5BA1+B,EAAO,GAEXuqC,EAAoFtuC,KAAKrB,MAAMy/B,SAAvF6F,EAAOqK,EAAPrK,QAASqJ,EAAOgB,EAAPhB,QAASC,EAASe,EAATf,UAAWgB,EAAMD,EAANC,OAAQC,EAAMF,EAANE,OAAQC,EAAOH,EAAPG,QAASC,EAAQJ,EAARI,SAAUC,EAAOL,EAAPK,QA2BxE,GAxBI1K,IACgB,WAAZA,GACAlgC,EAAO,cACQyK,IAAX+/B,QAAmC//B,IAAXggC,IACxBzqC,EAAO,WAEQ,YAAZkgC,GACPlgC,EAAO,UACH0qC,GAAWA,EAAQvqC,SAAS,WAAawqC,IACzC3qC,EAAO,YAGXA,EAAO,GACH0qC,GAAWA,EAAQvqC,SAAS,WAC5BH,EAAO,UAIXwpC,IACAzoB,EAAUrX,OAAOC,KAAK6/B,GAAWjrC,KAAI,SAAAqQ,GAAG,MAAK,CAAEjT,MAAOiT,EAAK9N,MAAO0oC,EAAU56B,GAAM,IAClF5O,EAAO,WAIX2pC,GAAwBL,EACxB5K,EAAS,CACL,CACI7E,SAAU,oBACVqF,WAAY,iBACZhJ,KAAM,aACNiB,cAAc,IAGT,YAATn3B,GACA0+B,EAAOt7B,KAAK,CACRy2B,SAAU,eACV3D,KAAM,SACNgJ,WAAY,iBACZ/H,cAAc,QAGnB,CACH,OAAQn3B,GACJ,IAAK,SACD0+B,EAAS,CAAC,CACN7E,SAAU0P,GAAW,GACrB3P,UAAW,OACXsF,WAAY,eACZ/H,kBAAyB1sB,IAAX+/B,EAAuB,EAAIA,EACzCtU,KAAM,eAEwBzrB,IAA9BxO,KAAKrB,MAAMy/B,SAAS1+B,OAAuBkvC,MAAMzC,WAAWnsC,KAAKrB,MAAMy/B,SAAS1+B,UAChF0+B,EAAW,CAAE1+B,WAAkB8O,IAAX+/B,EAAuB,EAAIA,IAEnD,MAEJ,IAAK,SACD9L,EAAS,CAAC,CACNQ,WAAY,eACZ/H,aAAcqT,EACdvS,IAAKwS,EACLvS,IAAKsS,EACLpS,KAAMmR,EACNpR,KAAMyS,EACN1U,KAAM,UAEV,IAAM4U,EAAI1C,WAAWnsC,KAAKrB,MAAMy/B,SAAS1+B,YACP8O,IAA9BxO,KAAKrB,MAAMy/B,SAAS1+B,QACnBkvC,MAAMC,IAAMA,EAAIL,GAAUK,EAAIN,KAE/BnQ,EAAW,CAAE1+B,MAAO6uC,IAExB,MAEJ,IAAK,SACD9L,EAAS,CAAC,CACNQ,WAAY,eACZtF,UAAW,OACX7Y,QAAAA,EACAoW,aAAcpW,EAAQ,GAAGplB,MACzBu6B,KAAM,eAEwBzrB,IAA9BxO,KAAKrB,MAAMy/B,SAAS1+B,OAAwBolB,EAAQ7d,MAAK,SAAAC,GAAI,OAAIA,EAAKxH,QAAUvB,EAAKQ,MAAMy/B,SAAS1+B,KAAK,MACzG0+B,EAAW,CAAE1+B,MAAOolB,EAAQ,GAAGplB,QAEnC,MAEJ,IAAK,UACD+iC,EAAS,CACL,CACI7E,SAAU,eACV3D,KAAM,SACNgJ,WAAY,iBACZ/H,cAAc,IAGjBmT,GACD5L,EAAOt7B,KAAK,CACRy2B,SAAU,OACVD,UAAW,QACXsF,WAAY,eACZ/H,cAAc,EACdjB,KAAM,eAIoBzrB,IAA9BxO,KAAKrB,MAAMy/B,SAAS1+B,QAAqD,IAA9BM,KAAKrB,MAAMy/B,SAAS1+B,QAAiD,IAA9BM,KAAKrB,MAAMy/B,SAAS1+B,QACtG0+B,EAAW,CAAE1+B,OAAO,IAExB,MAEJ,IAAK,SACD+iC,EAAS,CAAC,CACNQ,WAAY,eACZ/H,cAAc,EACdjB,KAAM,eAEwBzrB,IAA9BxO,KAAKrB,MAAMy/B,SAAS1+B,QAAqD,IAA9BM,KAAKrB,MAAMy/B,SAAS1+B,QAC/D0+B,EAAW,CAAE1+B,OAAO,IAExB,MAEJ,IAAK,QACD+iC,EAAS,CAAC,CACNQ,WAAY,cACZtF,UAAW,OACXzC,aAAc,UACdjB,KAAM,eAEwBzrB,IAA9BxO,KAAKrB,MAAMy/B,SAAS1+B,OAEqB,kBAA9BM,KAAKrB,MAAMy/B,SAAS1+B,QACnBM,KAAKrB,MAAMy/B,SAAS1+B,MAAMqK,WAAW,KAClC/J,KAAKrB,MAAMy/B,SAAS1+B,MAAMqK,WAAW,OAA5C,KAERq0B,EAAW,CAAE1+B,MAAO,YAExB,MAEJ,QACI+iC,EAAS,CAAC,CACN7E,SAAU0P,GAAW,GACrB3P,UAAW,OACXsF,WAAY,aACZ/H,aAAc,GACdjB,KAAM,UAIdyT,GACAjL,EAAOlI,QAAQ,CACXqD,SAAU,oBACVqF,WAAY,iBACZhJ,KAAM,cAGlB,CAiBA,OAfAwI,EAAOt7B,KAAK,CACRy2B,SAAU,KACVD,UAAW,QACXsF,WAAY,eACZ/H,aAAc,OACdqD,cAAc,EACdtE,KAAM,UAEVwI,EAAOt7B,KAAK,CACRy2B,SAAU,gBACVqF,WAAY,iBACZ/H,cAAc,EACdjB,KAAM,iBAGH,CAAEwI,OAAAA,EAAQZ,YAAazD,EAClC,GAAC,CAAA3+B,IAAA,cAAAC,MAED,SAAYygC,EAASruB,EAAIg9B,EAAQT,EAAQhB,GAAa,IAADntC,EAAA,KACjDmtC,OAA4B7+B,IAAf6+B,EAA2BrtC,KAAKrB,MAAMy/B,SAASiP,WAAaA,EACzE,IAAA0B,EAA8B/uC,KAAK2tC,WAAWN,EAAYgB,GAAnD5L,EAAMsM,EAANtM,OAAQZ,EAAWkN,EAAXlN,YACfY,EAAOlI,QAAQ,CACX0I,WAAY,iBACZhJ,KAAM,MACNiB,aAAc,GACd+D,eAAe,IAGnBj/B,KAAKhB,SAAS,CAACyjC,OAAAA,IAAS,kBAAAqC,EAAAA,GAAAA,IAAAC,EAAAA,GAAAA,GAAA2K,EAAA1K,WAAA,cAAA9kC,GAAA7B,KAAA6B,EACF,MAAM,WACpB,GAAI2hC,EAAa,CACb,IAAMzD,EAAWzuB,KAAKC,MAAMD,KAAK8C,UAAUvS,EAAKvB,MAAMy/B,WACtD3wB,OAAOkH,OAAOypB,EAAUyD,GACxB3hC,EAAKlB,SAASo/B,GACdl+B,EAAKhC,MAAMyD,SAASy8B,EACxB,CACJ,GAAC,GACT,GAAC,CAAA3+B,IAAA,iBAAAC,MAED,SAAeA,EAAOu6B,EAAM6J,GACxB9jC,KAAKyhC,iBAAYjzB,OAAWA,OAAWA,EAAoB,WAATyrB,EAAoBv6B,OAAQ8O,EAAoB,eAATyrB,EAAwBv6B,OAAQ8O,EAC7H,GAAC,CAAA/O,IAAA,WAAAC,MAED,WACIM,KAAKyhC,aACT,GAAC,CAAAhiC,IAAA,UAAAC,MAcD,WACI,OAAOgwC,EAAsB7K,eACjC,IAAC,EAAAplC,IAAA,UAAAC,MArRD,SAAeulC,EAAQnB,GACnB,IAgBItI,EAhBA97B,EAAQulC,EAAOvlC,MAuBnB,OAtBIulC,EAAOoI,WACP3tC,EAAQulC,EAAOoJ,OAAS,iBAAmB,sBAE7B7/B,IAAV9O,GAAiC,OAAVA,IACvBA,EAAQ,IAGgB,kBAAjBulC,EAAOvlC,OACdysC,WAAWlH,EAAOvlC,OAAOuN,aAAeg4B,EAAOvlC,OAC9B,SAAjBulC,EAAOvlC,OACU,UAAjBulC,EAAOvlC,QAEPA,EAAK,IAAAoE,OAAOpE,EAAMK,QAAQ,KAAM,OAAM,KAAA+D,OAAI25B,GAAAA,kBAA+BqG,MAK7EtI,EADAyJ,EAAOoJ,SAAWpJ,EAAOoI,WACxB,qBAAAvpC,OAAwBmhC,EAAOz8B,IAAG,8BAAA1E,OAA6BmhC,EAAO7B,IAAG,WAEzE,qBAAAt/B,OAAwBmhC,EAAOz8B,IAAG,OAAA1E,OAAMpE,GAGvC,wBAANoE,OAA+BmhC,EAAO7B,IAAG,QAAAt/B,OAAOmhC,EAAOoJ,SAAWpJ,EAAOoI,WAAa,SAAW3tC,EAAK,mBAAAoE,OAAkBmhC,EAAO0K,MAAK,YAAA7rC,OACtI03B,EAAC,2BAAA13B,OACemhC,EAAOz8B,IAAG,wBAAA1E,OAAuBmhC,EAAOz8B,IAAG,WAAA1E,OAA6B,WAAnBmhC,EAAO9E,QAAoB,8BAAAr8B,OAC/EmhC,EAAO7B,IAAG,mBAAAt/B,OAAkBmhC,EAAOz8B,IAAG,MAAA1E,OAAwB,WAAnBmhC,EAAO9E,QAAoB,MAAAr8B,OAAK1B,SAAS6iC,EAAO0K,MAAO,IAAG,MAAA7rC,OAAKmhC,EAAO2K,aAAe,OAAS,QAAO,KACnK,GAAC,CAAAnwC,IAAA,cAAAC,MAED,SAAmBiT,GACf,OAAY,OAARA,EACO,YACQnE,IAARmE,EACA,YACAhP,MAAM+oC,QAAQ/5B,GACdA,EAAI7S,KAAK,MACM,kBAAR6S,EACPhD,KAAK8C,UAAUE,GAEfA,EAAI1F,UAEnB,GAAC,CAAAxN,IAAA,gBAAAC,MA6ND,WACI,MAAO,CACHsiC,WAAY,UACZnjC,KAAM,iBACND,GAAI,wBACJ8K,KAAM,cACN02B,aAAc,CAAC,UAAW,UAC1Bv7B,MAAO,0CACP89B,WAAY,yGAEpB,KAAC+M,CAAA,CA3RsB,CAASjS,ICAX,SAAAmH,IAAA9mC,EAAAA,EAAAA,GAAA+xC,EAAAjL,GAAA,IAAA5mC,GAAAC,EAAAA,EAAAA,GAAA4xC,GACrB,SAAAA,EAAY3xC,GAAO,OAAAE,EAAAA,EAAAA,GAAA,KAAAyxC,GAAA7xC,EAAAK,KAAA,KACTH,EAAO2xC,EAAoBhL,gBACrC,CAyGC,OAzGArlC,EAAAA,EAAAA,GAAAqwC,EAAA,EAAApwC,IAAA,uBAAAC,MAED,WAAwB,IAADqtC,EAAAC,EAAAC,EAAAC,EACnB,OAA2B,QAApBH,EAAA/sC,KAAK9B,MAAMm6B,iBAAS,IAAA0U,GAAU,QAAVC,EAApBD,EAAsBxG,gBAAQ,IAAAyG,OAAV,EAApBA,EAAgC/lC,MAAK,SAAAC,GAAI,MAAgB,iBAAZA,EAAKtI,EAAqB,QACrD,QAArBquC,EAACjtC,KAAK9B,MAAMm6B,iBAAS,IAAA4U,GAAU,QAAVC,EAApBD,EAAsB1G,gBAAQ,IAAA2G,GAA9BA,EAAgCjmC,MAAK,SAAAC,GAAI,MAAgB,iBAAZA,EAAKtI,EAAqB,IAChF,GAAC,CAAAa,IAAA,cAAAC,MA2BD,SAAY6jC,GACR,OAAOpjC,EAAAA,GAAAA,MAAA,QAAAO,SAAA,CAAOG,EAAAA,KAAAA,EAAO,QAAQ,KAACF,EAAAA,GAAAA,KAAA,QAAM2D,UAAWi/B,EAAap2B,KAAK4+B,IAAM/rC,KAAK9B,MAAMqG,QAAQsnC,SAAW7rC,KAAK9B,MAAMqG,QAAQunC,YAAYprC,SAAEmvC,EAAoBrV,YAAY+I,EAAap2B,KAAKwF,SAC5L,GAAC,CAAAlT,IAAA,cAAAC,MAED,SAAYygC,EAASruB,EAAIg9B,EAAQT,EAAQhB,GAAa,IAADlvC,EAAA,KAC3CskC,EAAS,GAEfA,EAAOt7B,KAAK,CACR87B,WAAY,iBACZp+B,MAAO,MACPo1B,KAAM,OACNiB,aAAc,GACd+D,eAAe,IAGnBwD,EAAOt7B,KAAK,CACR87B,WAAY,eAEZne,QAAS,CACL,CAACplB,MAAO,IAAKmF,MAAO,KACpB,CAACnF,MAAO,IAAKmF,MAAO,KACpB,CAACnF,MAAO,IAAKmF,MAAO,KACpB,CAACnF,MAAO,IAAKmF,MAAO,MAExBy2B,gBAAgB,EAChBJ,aAAc,IACdjB,KAAM,cAGVwI,EAAOt7B,KAAK,CACR87B,WAAY,iBACZp+B,MAAO,MACPo1B,KAAM,OACNiB,aAAc,GACd+D,eAAe,IAGnBwD,EAAOt7B,KAAK,CACR87B,WAAY,iBACZ/H,aAAc,WACdjB,KAAM,cAGVwI,EAAOt7B,KAAK,CACR87B,WAAY,iBACZhJ,KAAM,YACNiB,aAAc,GACd+D,eAAe,IAGnBj/B,KAAKhB,SAAS,CAACyjC,OAAAA,IAAS,kBAAAqC,EAAAA,GAAAA,IAAAC,EAAAA,GAAAA,GAAA8K,EAAA7K,WAAA,cAAA7mC,GAAAE,KAAAF,EAAwB,MAAM,WAClD,IAAMigC,EAAWzuB,KAAKC,MAAMD,KAAK8C,UAAUtU,EAAKQ,MAAMy/B,WACtDjgC,EAAKD,MAAMyD,SAASy8B,EACxB,GAAC,GACL,GAAC,CAAA3+B,IAAA,iBAAAC,MAED,SAAeA,EAAOu6B,EAAM6J,GACxB9jC,KAAKyhC,iBAAYjzB,OAAWA,OAAWA,EAAoB,WAATyrB,EAAoBv6B,OAAQ8O,EAAoB,eAATyrB,EAAwBv6B,OAAQ8O,EAC7H,GAAC,CAAA/O,IAAA,WAAAC,MAED,WACIM,KAAKyhC,aACT,GAAC,CAAAhiC,IAAA,UAAAC,MAaD,WACI,OAAOmwC,EAAoBhL,eAC/B,IAAC,EAAAplC,IAAA,UAAAC,MAtGD,SAAeulC,EAAQnB,GACnB,IAAIgM,EAAI,cAAAhsC,OAAiBmhC,EAAOz8B,IAAG,6BAAA1E,OAA4BmhC,EAAO6K,KAAI,YACtEC,EAAI,cAAAjsC,OAAiBmhC,EAAOz8B,IAAG,6BAAA1E,OAA4BmhC,EAAO8K,KAAI,YAE1E,MAAM,MAANjsC,OAAamhC,EAAO6K,KAAI,KAAAhsC,OAAImhC,EAAO+K,UAAS,KAAAlsC,OAAImhC,EAAO8K,KAAI,QAAAjsC,OAAOmhC,EAAOgL,UAAS,WAAAnsC,OACnFgsC,EAAI,WAAAhsC,OACJisC,EAAI,0BAAAjsC,OACWmhC,EAAOz8B,IAAG,iBAAA1E,OAAgBmhC,EAAOz8B,IAAG,KAAA1E,OAAImhC,EAAO+K,UAAS,UAAAlsC,OAASmhC,EAAOz8B,IAAG,WAAA1E,OAA6B,WAAnBmhC,EAAO9E,QAAoB,kCAAAr8B,OAC3GmhC,EAAOgL,UAAS,YAAAnsC,OAAWmhC,EAAOz8B,IAAG,KAAA1E,OAAImhC,EAAO+K,UAAS,UAAAlsC,OAASmhC,EAAOz8B,IAAG,MAAA1E,OAAwB,WAAnBmhC,EAAO9E,QAAoB,KACnI,GAAC,CAAA1gC,IAAA,cAAAC,MAED,SAAmBiT,GACf,OAAY,OAARA,EACO,YACQnE,IAARmE,EACA,YACAhP,MAAM+oC,QAAQ/5B,GACdA,EAAI7S,KAAK,MACM,kBAAR6S,EACPhD,KAAK8C,UAAUE,GAEfA,EAAI1F,UAEnB,GAAC,CAAAxN,IAAA,gBAAAC,MAkED,WACI,MAAO,CACHsiC,WAAY,UACZnjC,KAAM,qBACND,GAAI,sBACJ8K,KAAM,SACN02B,aAAc,CAAC,UAAW,UAC1Bv7B,MAAO,6BAEf,KAACgrC,CAAA,CA5GoB,CAASpS,KCa5ByS,GAAW,CACbC,SAAU7K,GACV8K,MAAOjL,GACPkL,MAAO1L,GACP2L,SAAUxK,GACV,eAAgBG,GAChBsK,UAAWpK,IAGFqK,IAAuBC,EAAAA,EAAAA,iBAE9BC,GAAkB,SAACC,EAAQC,GAAU,IAAEC,EAAiBptC,UAAApE,OAAA,QAAAmP,IAAA/K,UAAA,GAAAA,UAAA,QAAG+K,EAAS,OACtE,IAAIuF,SAAQ,SAACC,EAAS88B,GAElB,GAAK3sC,OAAOwsC,GAiDR38B,QAjDiB,CAEjB,IAAM+8B,EAAiB9lB,SAAS+lB,cAAc,kBAADltC,OAAmB6sC,EAAM,OAEhEtiB,EAAM,eAAA/D,GAAA6H,EAAAA,GAAAA,IAAAC,EAAAA,GAAAA,KAAAC,MAAG,SAAAC,IAAA,OAAAF,EAAAA,GAAAA,KAAAG,MAAA,SAAAC,GAAA,cAAAA,EAAAC,KAAAD,EAAAE,MAAA,UAENvuB,OAAOwsC,GAAQ,CAADne,EAAAE,KAAA,eAAAF,EAAAG,OAAA,SACRme,EAAO,uBAADhtC,OAAwB6sC,EAAM,iBAAc,UAExDxsC,OAAOwsC,GAAQM,cAAc,CAADze,EAAAE,KAAA,SAEsBF,EAAAE,KAAA,QAED,KAAD,EAAAF,EAAAE,KAAA,uBAAAF,EAAAE,KAAA,GAIvCvuB,OAAOwsC,GAAQO,KAAKC,EAAAA,EAAyBP,IAAa,KAAD,GAGnEzsC,OAAOwsC,GAAQM,eAAgB,EAAK,QAGxCj9B,IAAU,yBAAAwe,EAAA8B,OAAA,GAAAhC,EAAA,KACb,kBApBW,OAAAhI,EAAAzmB,MAAA,KAAAJ,UAAA,KAqBZ,GAAIstC,EAEAA,EAAe1iB,OAASA,EACxB0iB,EAAe7a,QAAU4a,OAGtB,GAAID,EAAmB,CAE1B,IAAM/yB,EAAImN,SACJzV,EAASsI,EAAEqQ,cAAc,UAC/B3Y,EAAOzR,KAAO,kBAEdyR,EAAO4Y,aAAa,eAAe,GAADtqB,OAAK6sC,IACvCn7B,EAAOqhB,OAAQ,EACfrhB,EAAO0gB,QAAU4a,EACjBt7B,EAAO6Y,OAASA,EAChB7Y,EAAOhL,IAAMqmC,EACb/yB,EAAE0Q,qBAAqB,QAAQ,GAAGC,YAAYjZ,EAClD,MAEIs7B,EAAO,sBAADhtC,OAAuB6sC,EAAM,cAE3C,CAIJ,GAAG,EAEDS,GAAgB,SAACT,EAAQU,EAAaC,EAAQvb,GAAG,OAAA5D,EAAAA,GAAAA,IAAAC,EAAAA,GAAAA,KAAAC,MAAK,SAAAwC,IAAA,IAAA/pB,EAAAymC,EAAAC,EAAA,OAAApf,EAAAA,GAAAA,KAAAG,MAAA,SAAAyC,GAAA,cAAAA,EAAAvC,KAAAuC,EAAAtC,MAAA,cAAAsC,EAAAtC,KAAA,EAClDge,GAAgBC,EAAQU,EAAatb,GAAK,KAAD,EACf,OAA1BjrB,EAAY3G,OAAOwsC,GAAO3b,EAAAtC,KAAA,EACV5nB,EAAU2mC,IAAIH,GAAQ,KAAD,EAClB,OADnBC,EAAOvc,EAAAhC,KACPwe,EAASD,IAASvc,EAAArC,OAAA,SACjB6e,GAAM,wBAAAxc,EAAAV,OAAA,GAAAO,EAAA,IAChB,EAEY6c,GAAiB,SAAHC,GAA8B,IAAxBjxC,EAAQixC,EAARjxC,SAAUwH,EAAMypC,EAANzpC,OACvCsvB,GAA4BC,EAAAA,EAAAA,UAAS,MAAKC,GAAAluB,EAAAA,EAAAA,GAAAguB,EAAA,GAAnCrK,EAAMuK,EAAA,GAAEka,EAASla,EAAA,GACxByC,GAAgC1C,EAAAA,EAAAA,WAAS,GAAM2C,GAAA5wB,EAAAA,EAAAA,GAAA2wB,EAAA,GAAxC8H,EAAQ7H,EAAA,GAAE6F,EAAW7F,EAAA,GAC5ByX,GAA4Cpa,EAAAA,EAAAA,WAAS,GAAMqa,GAAAtoC,EAAAA,EAAAA,GAAAqoC,EAAA,GAApDnO,EAAcoO,EAAA,GAAEC,EAAiBD,EAAA,GACxCE,GAAgDva,EAAAA,EAAAA,WAAS,GAAMwa,GAAAzoC,EAAAA,EAAAA,GAAAwoC,EAAA,GAAxDxO,EAAgByO,EAAA,GAAEC,EAAmBD,EAAA,GAuF5C,OArFAra,EAAAA,EAAAA,YAAU,WACNqK,GAAYhC,GAAY,EAC5B,GAAG,CAACgC,KAEJrK,EAAAA,EAAAA,YAAU,YACNzF,EAAAA,GAAAA,IAAAC,EAAAA,GAAAA,KAAAC,MAAC,SAAA6X,IAAA,IAAA9qC,EAAAk3B,EAAA6b,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAA,OAAApgB,EAAAA,GAAAA,KAAAG,MAAA,SAAAkgB,GAAA,cAAAA,EAAAhgB,KAAAggB,EAAA/f,MAAA,cAAA+f,EAAA/f,KAAA,EAC2BxqB,EAAOc,sBAAsB,KAAD,EAA9C5J,EAASqzC,EAAAzf,KACTsD,EAAW7oB,OAAOC,KAAKwiC,IAAUvnC,QAAO,SAAAY,GAAO,OACjDnK,EAAU6H,MAAK,SAAAoB,GAAG,IAAAwvB,EAAA,OAAO,OAAHxvB,QAAG,IAAHA,GAAW,QAARwvB,EAAHxvB,EAAKC,cAAM,IAAAuvB,OAAR,EAAHA,EAAah5B,QAAS0K,CAAO,GAAC,IAElD4oC,EAA4B,GAG5BC,EAAehzC,EAAUuJ,QAAO,SAAAN,GAAG,OAAIA,EAAIC,OAAOoqC,eAAe,IAEjEL,EAAiB,GAAEC,GAAAlgB,EAAAA,GAAAA,KAAAC,MAAA,SAAAigB,IAAA,IAAAjqC,EAAA0tB,EAAAnjB,EAAA+/B,EAAA1uC,EAAA2uC,EAAAC,EAAC,OAADzgB,EAAAA,GAAAA,KAAAG,MAAA,SAAA4X,GAAA,cAAAA,EAAA1X,KAAA0X,EAAAzX,MAAA,OAEO,GAAtBrqB,EAAM+pC,EAAaG,IACrBF,EAAenuC,SAASmE,EAAIC,OAAOzJ,MAAM,CAADsrC,EAAAzX,KAAA,eAAAyX,EAAAxX,OAAA,4BAW3C,GALGoD,EADA1tB,EAAIC,OAAOoqC,gBAAgB3c,IAAIhsB,WAAW,UAAY1B,EAAIC,OAAOoqC,gBAAgB3c,IAAIhsB,WAAW,UAC1F1B,EAAIC,OAAOoqC,gBAAgB3c,IAC1B1tB,EAAIC,OAAOoqC,gBAAgB3c,IAAIhsB,WAAW,MAC9C,GAAAjG,OAAMK,OAAOygB,SAASkuB,SAAQ,MAAAhvC,OAAKK,OAAOygB,SAASnb,MAAI3F,OAAGuE,EAAIC,OAAOoqC,gBAAgB3c,IAAIh2B,QAAQ,MAAO,KAExG,GAAA+D,OAAMK,OAAOygB,SAASkuB,SAAQ,MAAAhvC,OAAKK,OAAOygB,SAASnb,KAAI,aAAA3F,OAAYuE,EAAIC,OAAOzJ,KAAI,KAAAiF,OAAIuE,EAAIC,OAAOoqC,gBAAgB3c,MAGhF,IAApC1tB,EAAIC,OAAOoqC,gBAAgBtX,KAAa,CAAA+O,EAAAzX,KAAA,SAUJ,OAR9B9f,EAAMmjB,EAAItZ,YAAY,KAGxBk2B,GADS,IAAT//B,EACUmjB,EAAI5jB,UAAU,EAAGS,GAEjBmjB,EAER9xB,EAAOpD,EAAAA,KAAAA,cACP+xC,EAAI,GAAA9uC,OAAM6uC,EAAO,UAAA7uC,OAASG,EAAI,SAAAkmC,EAAAzX,KAAA,GAE9BqgB,MAAMH,GACPxqC,MAAK,SAAA+E,GAAI,OAAIA,EAAKy5B,MAAM,IACxBx+B,MAAK,SAAAw+B,GAAI,OAAI/lC,EAAAA,KAAAA,mBAAwB+lC,EAAM3iC,EAAK,IAChD86B,OAAM,SAAA14B,GACH,GAAa,OAATpC,EAEA,OAAO8uC,MAAM,GAADjvC,OAAI6uC,EAAO,kBAClBvqC,MAAK,SAAA+E,GAAI,OAAIA,EAAKy5B,MAAM,IACxBx+B,MAAK,SAAAw+B,GAAI,OAAI/lC,EAAAA,KAAAA,mBAAwB+lC,EAAM3iC,EAAK,IAChD86B,OAAM,SAAA14B,GAAK,OAAIgB,QAAQhB,MAAM,qBAADvC,OAAsB8uC,EAAI,OAAA9uC,OAAMuC,GAAQ,IAEzEgB,QAAQC,IAAI,qBAADxD,OAAsB8uC,EAAI,OAAA9uC,OAAMuC,GAEnD,IAAG,KAAD,GAAA8jC,EAAAzX,KAAA,iBACH,GAAIrqB,EAAIC,OAAOoqC,gBAAgBtX,MAAmD,kBAApC/yB,EAAIC,OAAOoqC,gBAAgBtX,KAC5E,IACIv6B,EAAAA,KAAAA,mBAAwBwH,EAAIC,OAAOoqC,gBAAgBtX,KACvD,CAAE,MAAO/0B,GACLgB,QAAQhB,MAAM,2BAADvC,OAA4BuE,EAAIC,OAAOoqC,gBAAgB7zC,KAAI,OAAAiF,OAAMuC,GAClF,CACH,eAAA8jC,EAAA1X,KAAA,GAAA0X,EAAAzX,KAAA,GAG4B0e,GAAc/oC,EAAIC,OAAOoqC,gBAAgB7zC,KAAM,UAAU,KAADiF,OAAOuE,EAAIC,OAAOoqC,gBAAgB7zC,MAAQk3B,EAAlGqb,GAAwG,SAA3HyB,EAAS1I,EAAAnX,KAAoH2X,WAG/HwH,EAA0BhrC,KAAK0rC,GAC/BR,EAAelrC,KAAKkB,EAAIC,OAAOzJ,MAC/BqxC,GAAS7nC,EAAIC,OAAOzJ,MAAQ,MAC/BsrC,EAAAzX,KAAA,iBAAAyX,EAAA1X,KAAA,GAAA0X,EAAArX,GAAAqX,EAAA,UAED9iC,QAAQhB,MAAM,0BAADvC,OAA2BuE,EAAIC,OAAOoqC,gBAAgB7zC,KAAI,OAAAiF,OAAAqmC,EAAArX,KAAW,yBAAAqX,EAAA7V,OAAA,GAAAge,EAAA,mBAAAG,EAAA3f,IAAAV,EAAAA,GAAAA,KAAA1kB,KA1D5E0kC,GAAY,WAAAK,EAAAO,GAAAP,EAAA3f,MAAAmgB,KAAC,CAADR,EAAA/f,KAAA,SAAhB,OAAD6f,EAACE,EAAAO,GAAAtzC,MAAA+yC,EAAAS,cAAAZ,IAAA,iCAAAG,EAAAU,GAAA,CAAAV,EAAA/f,KAAA,gBAAA+f,EAAA9f,OAAA,sBAAA8f,EAAA/f,KAAA,gBA8DJ8f,EAAqBlc,EAAS3tB,QAAO,SAAAY,GAAO,OAAI2mC,GAAS3mC,EAAQ,IAAEjH,KAAI,SAAAiH,GAAO,OAAI2mC,GAAS3mC,EAAQ,IAEzGqoC,EAAU,GAAD9tC,QAAAqP,EAAAA,EAAAA,GAAKigC,KAAcjgC,EAAAA,EAAAA,GAAKq/B,GAAuBL,IAA4B,yBAAAM,EAAAne,OAAA,GAAA4V,EAAA,IA3ExF/X,EA8EJ,GAAG,KAEIxxB,EAAAA,GAAAA,KAAC6vC,GAAqB6C,SAAQ,CAAC3zC,MAAO,CACzCytB,OAAAA,EACAjlB,OAAAA,EACA+5B,SAAAA,EACAhC,YAAAA,EACAyD,eAAAA,EACAqO,kBAAAA,EACAvO,iBAAAA,EACA0O,oBAAAA,GACFxxC,SACGA,GAET,ECvLA,IAAM4yC,IAAcha,EAAAA,EAAAA,OAAK,SAAAp7B,GACrB,IAAQq1C,EAAwGr1C,EAAxGq1C,aAAclb,EAA0Fn6B,EAA1Fm6B,UAAW7vB,EAA+EtK,EAA/EsK,IAAK5J,EAA0EV,EAA1EU,GAAI40C,EAAsEt1C,EAAtEs1C,WAAYvb,EAA0D/5B,EAA1D+5B,OAAQ+J,EAAkD9jC,EAAlD8jC,WAAYZ,EAAsCljC,EAAtCkjC,WAAYE,EAA0BpjC,EAA1BojC,YAAaD,EAAanjC,EAAbmjC,SACnG7J,GAAgCC,EAAAA,EAAAA,UAAS,MAAKC,GAAAluB,EAAAA,EAAAA,GAAAguB,EAAA,GAAvC5f,EAAQ8f,EAAA,GAAE+b,EAAW/b,EAAA,GAC5Bgc,GAAoFC,EAAAA,EAAAA,YAAWnD,IAAvFrjB,EAAMumB,EAANvmB,OAAQjlB,EAAMwrC,EAANxrC,OAAQ+5B,EAAQyR,EAARzR,SAAUhC,EAAWyT,EAAXzT,YAAayD,EAAcgQ,EAAdhQ,eAAgBF,EAAgBkQ,EAAhBlQ,kBAE/D5L,EAAAA,EAAAA,YAAU,WACNvwB,QAAQC,IAAI,iBAAmBqI,KAAK8C,UAAUixB,GAClD,GAAG,CAACA,IAGJ,IAAMkQ,GAAoBC,EAAAA,EAAAA,cAAY,SAAAj1C,GAAE,OAAIuuB,EAAOlmB,MAAK,SAAAD,GAEpD,OADmBA,EAAG69B,gBACJjmC,KAAOA,CAC7B,GAAE,GAAE,CAACuuB,IAECxrB,GAAWkyC,EAAAA,EAAAA,cAAY,SAAAzV,GACzB,IAAI0V,EC3BL,SAAqB1V,EAAU/F,EAAWC,GAC7C,IACItJ,EADIxmB,EAAoB41B,EAApB51B,IAAKw5B,EAAe5D,EAAf4D,WAGb,IAAKA,IAAe3J,EAAU2J,GAE1B,OADA36B,QAAQwZ,KAAK,eAAiBmhB,GACvB3J,EAGX,OAAQ2J,GACJ,IAAK,UAQL,IAAK,aAOD,OANAhT,EAAQqJ,EAAU2J,GAAY1J,GAAqBrxB,MAAK,SAAAD,GAAE,OAAIA,EAAGwB,MAAQA,CAAG,KAIxE6vB,EAAU2J,GAAY1J,GAAqBD,EAAU2J,GAAY1J,GAAqBlyB,QAAQ4oB,IAAUoP,EAFxG/2B,QAAQwZ,KAAK,eAAiBrY,GAI3B6vB,EACX,QAOI,OANArJ,EAAQqJ,EAAU2J,GAAY/6B,MAAK,SAAAD,GAAE,OAAIA,EAAGwB,MAAQA,CAAG,KAInD6vB,EAAU2J,GAAY3J,EAAU2J,GAAY57B,QAAQ4oB,IAAUoP,EAF9D/2B,QAAQwZ,KAAK,eAAiBrY,GAI3B6vB,EAEnB,CDR2B0b,CAAY3V,EAAU/F,EAAWmb,GACpDM,GAAgBP,EAAaO,EAEjC,GAAG,CAACzb,IAEE2b,EAAoB,SAAA3zC,GAAK,OAC3BA,EAAMoZ,gBAAkB7B,GAAY67B,EAAYpzC,EAAMoZ,cAAe,EAKnEw6B,GAAaC,EAAAA,EAAAA,UAAQ,WACvB,IAAMC,EAAcP,EAAkBh1C,IAAO6+B,GAC7C,OAAO98B,EAAAA,GAAAA,KAACwzC,GAAW1pB,EAAAA,GAAAA,IAAAA,EAAAA,GAAAA,GAAA,CACf2W,WAAYA,EACZE,YAAaA,EACbD,SAAUA,EACVwB,UAAW+Q,EAAkBh1C,IACzBV,GAAK,IACT+jC,SAAUA,EACVhC,YAAaA,EACbuD,iBAAkBA,EAClBE,eAAgBA,EAChB/hC,SAAUA,EACV2C,UAAW,KACX4D,OAAQA,IAGhB,GAAG,CAACmwB,EAAW4J,EAAUyB,EAAgBF,IAEzCrJ,GAAgC1C,EAAAA,EAAAA,WAAS,GAAM2C,GAAA5wB,EAAAA,EAAAA,GAAA2wB,EAAA,GAAxCia,EAAQha,EAAA,GAAEia,EAAWja,EAAA,GAE5B,OAAOj6B,EAAAA,GAAAA,MAAA,OACHm0C,YAAaN,EACbO,aAAcP,EACdQ,aA3BuB,WAAH,OACpBf,EAAY,KAAM,EA2BlBtuB,YAAa,SAAAne,GACT,GAAIA,EAAGytC,QAAS,CACZ,IAAIC,EACAZ,EAAe1b,GAAS4J,EAAY3J,EAAWmb,GAE/CkB,EADe,aAAflB,EACUM,EAAa9R,GAAYwR,GAAYvsC,MAAK,SAAAD,GAAE,OAAIA,EAAGwB,MAAQA,CAAG,IAE9DsrC,EAAa9R,GAAY/6B,MAAK,SAAAD,GAAE,OAAIA,EAAGwB,MAAQA,CAAG,IAE7C,aAAfgrC,EACAM,EAAa9R,GAAYwR,GAAY7sC,OAAOmtC,EAAa9R,GAAYwR,GAAYptC,QAAQsuC,GAAU,GAACjqB,EAAAA,GAAAA,IAAAA,EAAAA,GAAAA,GAAA,GAAOiqB,GAAO,IAAElsC,IAAKsW,KAAKyO,SAE9HumB,EAAa9R,GAAYr7B,OAAOmtC,EAAa9R,GAAY57B,QAAQsuC,GAAU,GAACjqB,EAAAA,GAAAA,IAAAA,EAAAA,GAAAA,GAAA,GAAOiqB,GAAO,IAAElsC,IAAKsW,KAAKyO,SAE1GgmB,EAAaO,EACjB,CACJ,EACAl1C,GAAG,SACHuC,MAAO82B,EAAS,CAAE72B,MAAO6pB,SAASC,eAAe,SAASypB,YAAc,IAAO,KAC/ErwC,UAAS,GAAAR,OAAKq0B,GAAa,KAAAr0B,OAAIm0B,EAASE,GAAsB,KAAI,KAAAr0B,OAAIswC,EAAWjc,GAAe,MAAOz3B,SAAA,EACvGC,EAAAA,GAAAA,KAAA,OAAK2D,UAAW6zB,KACf8b,EACAV,IAAgB5yC,EAAAA,GAAAA,KAAA,OAAK2D,UAAW6zB,GAAiBh3B,MAAOg4B,QAAQvhB,GAAY,CAAExI,QAAS,GAAM,CAAEA,QAAS,GAAI1O,UACzGC,EAAAA,GAAAA,KAAA,OAAK+B,QAAS,SAAAd,GACV,IAAIgzC,EAAmBxc,GAAS4J,EAAY3J,EAAWmb,GACvDoB,EAAmBpc,GAAcwJ,EAAY4S,EAAkBpB,EAAYhrC,GAC3E6rC,GAAY,GACZ3yC,YAAW,WACY,aAAfsgC,GACA/B,GAAY,GAEhBsT,EAAaqB,EACjB,GAAG,IACP,EAAGtwC,UAAW6zB,SAG1B,IAEAmb,GAAYvoB,aAAe,CACvBkN,QAAQ,GAOZ,UExGM4c,GAAc,CAChBvpC,SAAU,QACVwpC,cAAe,OACfprB,OAAQ,IACRmB,KAAM,EACN5N,IAAK,EACL7b,MAAO,OACPyE,OAAQ,QASNkvC,GAAgB,SAACC,EAAeC,EAAeC,GACjD,IAAKF,IAAkBC,EACnB,MAAO,CACHrvC,QAAS,QAGjB,IAAMorB,EAASikB,EAATjkB,EAAGC,EAAMgkB,EAANhkB,EACT,GAAIikB,EAAc,CAEO,IAAAC,EAfV,SAACnkB,EAAGC,GAGnB,MAAO,CAF+B,GAArBmkB,KAAKC,MAAMrkB,EAAI,IACM,GAArBokB,KAAKC,MAAMpkB,EAAI,IAEpC,CAYiBqkB,CAFTtkB,GAAKgkB,EAAchkB,EACnBC,GAAK+jB,EAAc/jB,GACMskB,GAAA/rC,EAAAA,EAAAA,GAAA2rC,EAAA,GAAxBnkB,EAACukB,EAAA,GAAEtkB,EAACskB,EAAA,GACLvkB,GAAKgkB,EAAchkB,EACnBC,GAAK+jB,EAAc/jB,CACvB,CACA,IAAMzhB,EAAS,aAAA1L,OAAgBktB,EAAC,QAAAltB,OAAOmtB,EAAC,OACxC,MAAO,CACHzhB,UAAAA,EACAgmC,gBAAiBhmC,EAEzB,EAEaimC,GAAkB,SAAAv3C,GAC3B,IAAAw3C,GAOIC,EAAAA,GAAAA,IAAa,SAAAjnC,GAAO,MAAK,CACzBxH,KAAMwH,EAAQ7F,UACd+sC,SAAUlnC,EAAQmnC,cAClBb,cAAetmC,EAAQonC,+BACvBb,cAAevmC,EAAQqnC,wBACvB1mC,WAAYX,EAAQW,aACpB2mC,UAAWtnC,EAAQunC,eACtB,IAbGL,EAAQF,EAARE,SACAvmC,EAAUqmC,EAAVrmC,WACAnI,EAAIwuC,EAAJxuC,KACA8tC,EAAaU,EAAbV,cACAC,EAAaS,EAAbT,cACAe,EAASN,EAATM,UAoBJ,OAAK3mC,GAIE1O,EAAAA,GAAAA,KAAA,OAAKQ,MAAO0zC,GAAYn0C,UAC3BC,EAAAA,GAAAA,KAAA,OAAKQ,MAAO4zC,GAAcC,EAAeC,GAAev0C,SAb/C,QADDk1C,EAEOI,EAAU32C,QAASsB,EAAAA,GAAAA,KAAC2yC,IAAW7oB,EAAAA,GAAAA,IAAAA,EAAAA,GAAAA,GAAA,CAACwN,QAAM,GAAK/wB,GAAI,IAAE+lB,UAAW/uB,EAAM+uB,cACrEtsB,EAAAA,GAAAA,KAACq3B,IAAQvN,EAAAA,GAAAA,IAAAA,EAAAA,GAAAA,GAAA,CAACwN,QAAM,GAAK/wB,GAAI,IAAEgB,OAAQhK,EAAMgK,UAEtC,SAKR,IAQf,EC7EA,IAAgB,OAAS,sBAAsB,gBAAkB,+BAA+B,WAAa,0BAA0B,UAAY,yBAAyB,eAAiB,8BAA8B,mBAAqB,kCAAkC,uBAAyB,sCAAsC,eAAiB,8BAA8B,mBAAqB,kCAAkC,eAAiB,8BAA8B,iBAAmB,gCAAgC,cAAgB,6BAA6B,gBAAkB,+BAA+B,YAAc,2BAA2B,iBAAmB,gCAAgC,QAAU,uBAAuB,aAAe,4BAA4B,iBAAmB,gCAAgC,eAAiB,+BCC51B,SAASguC,GAAcC,EAAQC,GAClC,IAAAC,EAA0BtzC,EAAAA,SACtB6F,aAAaC,QAAQutC,GAAczmC,KAAKC,MAAMhH,aAAaC,QAAQutC,IAAeD,GACrFG,GAAA9sC,EAAAA,EAAAA,GAAA6sC,EAAA,GAFM13C,EAAK23C,EAAA,GAAEt3C,EAAQs3C,EAAA,GAQtB,MAAO,CAAC33C,EAJgB,SAAC43C,GACrB3tC,aAAauC,QAAQirC,EAAYzmC,KAAK8C,UAAU8jC,IAChDv3C,EAASu3C,EACb,IACgC3tC,aAAaC,QAAQutC,GACzD,C,qCCVMI,GAAUC,KAAAA,UACZ,SAACC,EAAUre,GAAS,OAAKqe,EAASre,EAAU,GAC1C,GAEAse,GAAW,SACb/3C,EACAg4C,EACAC,EACAH,EACAre,EACA2J,EACA8U,EACAC,EACAC,GAEA,IAAAC,EAAwBC,GAASt4C,EAAIi4C,GAA7BryC,EAAIyyC,EAAJzyC,KAAM+I,EAAK0pC,EAAL1pC,MACd,KAAIA,EAAQqpC,GAAWG,EAAeC,MAGlCzpC,EAAQqpC,GAAWG,EAAeC,IAGlCxyC,GAAQ+I,IAAUqpC,EAAS,CAC3B,IAAMO,EAAWV,KAAAA,MAAQI,GACzBM,EAASxwC,OAAO4G,EAAO,GACvB4pC,EAASxwC,OAAOiwC,EAAS,EAAGpyC,GAC5B,IAAM4yC,EAAcX,KAAAA,MAAQpe,GAC5B,OAAQ2J,GACJ,IAAK,UAIL,IAAK,aAGD,OAFAoV,EAAYpV,GAAY8U,GAAgBK,OACxCX,GAAQE,EAAUU,GAEtB,QAGI,OAFAA,EAAYpV,GAAcmV,OAC1BX,GAAQE,EAAUU,GAG9B,CACJ,EACMF,GAAW,SAACt4C,EAAIi4C,GAClB,IAAMryC,EAAOqyC,EAAM5vC,MAAK,SAACowC,GAAC,OAAKA,EAAE7uC,MAAQ5J,CAAE,IAC3C,MAAO,CACH4F,KAAAA,EACA+I,MAAOspC,EAAMzwC,QAAQ5B,GAE7B,EClDA,GAAuB,oBAAvB,GAAkD,oBCU5C8yC,GAAc,SAAHhtB,GAAyG,IAAnGitB,EAAUjtB,EAAVitB,WAAYC,EAAaltB,EAAbktB,cAAe54C,EAAE0rB,EAAF1rB,GAAI64C,EAAQntB,EAARmtB,SAAUlE,EAAYjpB,EAAZipB,aAAclb,EAAS/N,EAAT+N,UAAW33B,EAAQ4pB,EAAR5pB,SAAU8H,EAAG8hB,EAAH9hB,IAAKgrC,EAAUlpB,EAAVkpB,WAC5FvT,GAAgB0T,EAAAA,EAAAA,YAAWnD,IAA3BvQ,YACR/wB,GAAqCC,EAAAA,EAAAA,GAAQ,CACzCpL,KAAM,MACNmD,KAAM,kBAAAujB,EAAAA,GAAAA,IAAAA,EAAAA,GAAAA,GAAC,CAAD,EAAY+sB,GAAa,IAAE54C,GAAAA,EAAI64C,SAAAA,EAAUjvC,IAAAA,GAAG,EAClDkvC,IAAK,SAACxwC,EAAMwH,GACR,IAEIolC,EAFE9R,EAAe96B,EAAf86B,WACF2V,EAAajpC,EAAQkpC,gBAEzB,IAAKD,EAMD,MALmB,kBAARnvC,GAAqBkG,EAAQunC,eAAe52C,SAEnDy0C,EAAetb,GAAcwJ,EAD7B8R,EAAe1b,GAAS4J,EAAY3J,EAAWmb,GACQA,EAAYhrC,GACnE+qC,EAAaO,IAEV,KAEX,GAAI6D,EAAWnE,aAAeA,EAAY,CACtC,IAAIqE,EAA0B,kBAARrvC,EAAmBA,EAAMsW,KAAKyO,MACpDumB,EAAe1b,GAAS4J,EAAY3J,EAAWsf,EAAWnE,YAC1D,IAAMkB,EAAU,CAAE91C,GAAIsI,EAAKtI,GAAIojC,WAAY96B,EAAK86B,YAChD,OAAQA,GACJ,IAAK,UAMD,OALIwR,IACAM,EAAetb,GAAcwJ,EAAY8R,EAAcN,EAAYhrC,KAEvEsrC,EAAetb,GAAcwJ,EAAY8R,EAAc6D,EAAWnE,WAAYhrC,IACjEw5B,GAAY2V,EAAWnE,YAAYrsC,MAAIsjB,EAAAA,GAAAA,IAAAA,EAAAA,GAAAA,GAAC,CAAC,EAAIiqB,GAAO,IAAElsC,IAAKqvC,KACjEtE,EAAaO,GAExB,IAAK,aAMD,MAL0B,kBAAfN,IACPM,EAAetb,GAAcwJ,EAAY8R,EAAcN,EAAYhrC,KAEvEsrC,EAAetb,GAAcwJ,EAAY8R,EAAc6D,EAAWnE,WAAYhrC,IACjEw5B,GAAY2V,EAAWnE,YAAYrsC,MAAIsjB,EAAAA,GAAAA,IAAAA,EAAAA,GAAAA,GAAC,CAAC,EAAIiqB,GAAO,IAAElsC,IAAKqvC,KACjEtE,EAAaO,GAExB,QAII,OAHA7T,GAAY,IACZ6T,EAAetb,GAAcwJ,EAAY8R,EAAc6D,EAAWnE,WAAYhrC,IACjEw5B,GAAY76B,MAAIsjB,EAAAA,GAAAA,IAAAA,EAAAA,GAAAA,GAAC,CAAC,EAAIiqB,GAAO,IAAElsC,IAAKqvC,KAC1CtE,EAAaO,GAEhC,CACJ,EACArlC,QAAS,SAAAC,GAAO,MAAK,CACjBU,QAASV,EAAQW,aAAe,GAAM,EACtCA,WAAYX,EAAQW,aACvB,IACHC,GAAA9F,EAAAA,EAAAA,GAAA0F,EAAA,GAhDOE,EAAOE,EAAA,GAAPF,QAAWG,EAAID,EAAA,GAAEwoC,EAAOxoC,EAAA,GAiD3BP,GAAMgpC,EAAAA,EAAAA,QAAO,MACnB5pC,GAAiBC,EAAAA,EAAAA,GAAQ,CACrBC,OAAQ,MACR2pC,QAAS,kBAAM,CAAK,EACpBC,MAAK,SAAAjV,EAAiCt0B,GAAU,IAADwpC,EAAlCC,EAASnV,EAAdx6B,IAAgBw5B,EAAUgB,EAAVhB,WACpB,GAAKjzB,EAAIwQ,SAGLg4B,IAAevV,EAAnB,CAGA,IAAMoW,EAA+B,QAAdF,EAAGnpC,EAAIwQ,eAAO,IAAA24B,OAAA,EAAXA,EAAaG,wBACjCrB,GAAgBoB,EAAkB3uB,OAAS2uB,EAAkBn7B,KAAO,EAEpE85B,EADeroC,EAAQ4pC,kBACKrnB,EAAImnB,EAAkBn7B,IAExD,GAAMzU,GAAO2vC,IAAc3vC,EACvB,OAAQw5B,GACJ,IAAK,UACD,GAAmB,SAAfwR,GAAwC,SAAfA,EAAuB,CAChD,IAAe+E,EAAqBrB,GAAS1uC,EAAK6vB,EAAU2J,GAAYwR,IAAhEjmC,MACJgrC,IAAqBJ,GACrBxB,GAASwB,EACLI,EACAlgB,EAAU2J,GAAYwR,GACtBD,EACAlb,EACA2J,EACAwR,EACAuD,EACAC,EAGZ,CACA,OACJ,IAAK,aACD,GAA0B,kBAAfxD,EAAyB,CAChC,IAAegF,EAAwBtB,GAAS1uC,EAAK6vB,EAAU2J,GAAYwR,IAAnEjmC,MACJirC,IAAwBL,GACxBxB,GAASwB,EACLK,EACAngB,EAAU2J,GAAYwR,GACtBD,EACAlb,EACA2J,EACAwR,EACAuD,EACAC,EAGZ,CACA,OACJ,QACI,IAAeyB,EAAcvB,GAAS1uC,EAAK6vB,EAAU2J,IAA7Cz0B,MAaR,YAZIkrC,IAAcN,GACdxB,GAASwB,EACLM,EACApgB,EAAU2J,GACVuR,EACAlb,EACA2J,EACA,KACA+U,EACAC,IArDpB,CA2DJ,IApEK1oC,GAqEP9E,EAAAA,EAAAA,GAAA2E,EAAA,GArEW,IAsEbypB,EAAAA,EAAAA,YAAU,WACNkgB,GAAQY,EAAAA,GAAAA,KAAiB,CAAEC,sBAAsB,GAErD,GAAG,IAEHppC,EAAKjB,EAAKS,IACV,IAAM6pC,EAAWz0C,OAAO00C,WAAa,IACrC,OAAO14C,EAAAA,GAAAA,MAAA,OAAK4O,IAAK6pC,GAAYpwC,EAAM,KAAOuG,EAAKzK,UAAW6zB,GAAUh3B,MAAO,CAAEiO,QAAAA,GAAU1O,SAAA,EAACC,EAAAA,GAAAA,KAAA,OAAK2D,UAAWkE,EAAM2vB,GAAW,KAAMppB,IAAKvG,GAAOowC,EAAW7pC,EAAM,OAASrO,IACzK,EAEA42C,GAAYvsB,aAAe,CACvBlsB,KAAM,GACNo5B,QAAQ,EACRr5B,GAAI,GACJ4J,IAAK,MAOT,UC9IMswC,GAAa,SAAHxuB,GAAA,IAAM/rB,EAAO+rB,EAAP/rB,QAASkC,EAAI6pB,EAAJ7pB,KAAI,OAAON,EAAAA,GAAAA,MAACC,EAAAA,EAAM,CAC7CK,KAAMA,EACNlC,QAASA,EACT,kBAAgB,qBAChB,mBAAiB,2BAA0BmC,SAAA,EAE3CC,EAAAA,GAAAA,KAACG,EAAAA,EAAa,CAAAJ,UACVP,EAAAA,GAAAA,MAAA,OAAKgB,MAAO,CACRgC,SAAU,OACV6d,WAAY,6CACZ5d,WAAY,IACZyZ,WAAY,IACZk8B,cAAe,aACjBr4C,SAAA,EACEC,EAAAA,GAAAA,KAAA,MAAAD,SAAKG,EAAAA,KAAAA,EAAO,0BACZF,EAAAA,GAAAA,KAAA,OAAAD,SAAMG,EAAAA,KAAAA,EAAO,qBACbF,EAAAA,GAAAA,KAAA,MAAAD,SAAKG,EAAAA,KAAAA,EAAO,iBACZF,EAAAA,GAAAA,KAAA,OAAAD,SAAMG,EAAAA,KAAAA,EAAO,2BAGrBF,EAAAA,GAAAA,KAAC6B,EAAAA,EAAa,CAAA9B,UACVC,EAAAA,GAAAA,KAAC8B,EAAAA,EAAM,CAACC,QAASnE,EAASoE,MAAM,UAAUtB,WAAS,EAACuB,WAAWjC,EAAAA,GAAAA,KAACkC,GAAAA,QAAM,IAAGnC,SACpEG,EAAAA,KAAAA,EAAO,YAGT,EAEXi4C,GAAW/tB,aAAe,CACtBtqB,MAAM,EACNlC,QAAS,WAAQ,GAQrB,UCxCMy6C,GAAkB,SAAH1uB,GAAA,IAAM/rB,EAAO+rB,EAAP/rB,QAASkC,EAAI6pB,EAAJ7pB,KAAI,OAAON,EAAAA,GAAAA,MAACC,EAAAA,EAAM,CAClDK,KAAMA,EACNlC,QAASA,EACT,kBAAgB,qBAChB,mBAAiB,2BAA0BmC,SAAA,EAE3CC,EAAAA,GAAAA,KAACG,EAAAA,EAAa,CAAAJ,UACVP,EAAAA,GAAAA,MAACuH,GAAAA,EAAiB,CAAC9I,GAAG,2BAA0B8B,SAAA,EAC5CC,EAAAA,GAAAA,KAAA,MAAAD,SAAKG,EAAAA,KAAAA,EAAO,0BACZF,EAAAA,GAAAA,KAAA,OAAAD,SAAMG,EAAAA,KAAAA,EAAO,qBACbF,EAAAA,GAAAA,KAAA,MAAAD,SAAKG,EAAAA,KAAAA,EAAO,iBACZF,EAAAA,GAAAA,KAAA,OAAAD,SAAMG,EAAAA,KAAAA,EAAO,2BAGrBF,EAAAA,GAAAA,KAAC6B,EAAAA,EAAa,CAAA9B,UACVC,EAAAA,GAAAA,KAAC8B,EAAAA,EAAM,CAACC,QAASnE,EAASoE,MAAM,UAAUtB,WAAS,EAAAX,SAC9CG,EAAAA,KAAAA,EAAO,YAGV,EAEVm4C,GAAgBjuB,aAAe,CAC3BtqB,MAAM,EACNlC,QAAS,WAAQ,GAQrB,UCpBM06C,GAAgC,SAAH3uB,GAA8I,IAAD4uB,EAAvIh0C,EAAIolB,EAAJplB,KAAMi0C,EAAmB7uB,EAAnB6uB,oBAAqB3F,EAAUlpB,EAAVkpB,WAAY4F,EAAO9uB,EAAP8uB,QAASC,EAAS/uB,EAAT+uB,UAAWhhB,EAAS/N,EAAT+N,UAAWkb,EAAYjpB,EAAZipB,aAAc+F,EAAShvB,EAATgvB,UAAWhY,EAAWhX,EAAXgX,YAAaD,EAAQ/W,EAAR+W,SAAUD,EAAU9W,EAAV8W,WAC3J5J,GAAkCC,EAAAA,EAAAA,WAAS,GAAMC,GAAAluB,EAAAA,EAAAA,GAAAguB,EAAA,GAA1C+hB,EAAS7hB,EAAA,GAAE8hB,EAAY9hB,EAAA,GAC9ByC,GAAwC1C,EAAAA,EAAAA,WAAS,GAAM2C,GAAA5wB,EAAAA,EAAAA,GAAA2wB,EAAA,GAAhDsf,EAAYrf,EAAA,GAAEsf,EAAetf,EAAA,GACpCyX,GAA8Bpa,EAAAA,EAAAA,WAAS,GAAMqa,GAAAtoC,EAAAA,EAAAA,GAAAqoC,EAAA,GAAtC8H,EAAO7H,EAAA,GAAE8H,EAAU9H,EAAA,GAC1BE,GAAoCva,EAAAA,EAAAA,UAAS,IAAGwa,GAAAzoC,EAAAA,EAAAA,GAAAwoC,EAAA,GAAzC6H,EAAU5H,EAAA,GAAE6H,EAAa7H,EAAA,GAE1BntB,GAAU1W,EAAAA,EAAAA,GAAQ,CACpBC,OAAQ,MACRC,KAAM,iBAAO,CAAEklC,WAAAA,EAAY,EAC3ByE,MAAO,SAAAjV,EAAsBt0B,GAAa,IAAhCszB,EAAUgB,EAAVhB,WAAYx5B,EAAGw6B,EAAHx6B,IAClBgxC,EAAaxX,IAAeqX,GAC5BO,IAAapxC,GACbsxC,EAAcprC,EAAQqrC,eAC1B,EACA/B,QAAS,SAAArG,EAAiBjjC,GAAa,IAA3BszB,EAAU2P,EAAV3P,WAER,OADA0X,EAAgB1X,IAAeqX,GACxBrX,IAAeqX,CAC1B,EACA5qC,QAAS,SAAAC,GAAO,IAAAsrC,EAAA,MAAK,CACjBzrC,OAAQG,EAAQH,SAChBypC,SAA0B,QAAjBgC,EAAAtrC,EAAQ7F,iBAAS,IAAAmxC,OAAA,EAAjBA,EAAmBhY,cAAeqX,EAC3CzQ,OAAQl6B,EAAQ4pC,kBAChB2B,SAAUvrC,EAAQurC,SACrB,IAGL3f,GAAA9wB,EAAAA,EAAAA,GAAsDsb,EAAO,GAAAo1B,EAAA5f,EAAA,GAApD0d,EAAOkC,EAAPlC,QAASzpC,EAAM2rC,EAAN3rC,OAAQq6B,EAAMsR,EAANtR,OAAQqR,EAAQC,EAARD,SAAY3rC,EAAIgsB,EAAA,IAElD1C,EAAAA,EAAAA,YAAU,WAAQkiB,EAAc,GAAI,GAAG,CAAClR,IAExC,IAAM6O,EAAWO,GAAWzpC,EACxBqP,EAAkB,GAStB,OARI65B,EACA75B,EAAkB27B,EAAY,YAAc,YACrCvB,EACPp6B,EAAkB67B,EAAe,YAAc,YACxC7Q,IACPhrB,EAAkBq8B,IAAaJ,EAAa,YAAc,KAGvDl5C,EAAAA,GAAAA,KAAA,OAAKoO,IAAKT,EAAMnN,MAAO,CAAEyc,gBAAAA,GAAmBtZ,UAAS,GAAAR,OAAKkL,EAAAA,MAAAA,KAAWmpB,GAAAA,iBAAqBjzB,GAAQizB,GAAAA,gBAAmB,KAAAr0B,OAAIs1C,EAAUE,EAAYnhB,GAAAA,gBAAsB,KAAOA,GAAAA,kBAAuBz3B,UACtMP,EAAAA,GAAAA,MAAA,OAAKmE,UAAW6zB,GAAAA,cAAkBz3B,SAAA,CAAiC,QAAjCw4C,EAAEC,EAAoB3F,UAAW,IAAA0F,OAAA,EAA/BA,EAAiC52C,KAAI,SAAA0E,GAAE,OACvErG,EAAAA,GAAAA,KAAC22C,IAAW7sB,EAAAA,GAAAA,IAAAA,EAAAA,GAAAA,GAAA,CACR8sB,WAAY8B,GAERryC,GAAE,IACNwsC,WAAYA,EACZgE,cAAexwC,EACfqxB,UAAWA,EACXkb,aAAcA,EAAa7yC,UAE3BC,EAAAA,GAAAA,KAAC2yC,IAAW7oB,EAAAA,GAAAA,IAAAA,EAAAA,GAAAA,GAAA,GACJzjB,GAAE,IACNo6B,WAAYA,EACZE,YAAaA,EACbD,SAAUA,EACVjD,SAAUp3B,EACVwsC,WAAYA,EACZnb,UAAWA,EACXkb,aAAcA,OAfbvsC,EAAGwB,IAiBE,KACd7H,EAAAA,GAAAA,KAAA,OACIQ,MAAOs2C,GAAY8B,IAAcI,EAAU,CAAE9zC,OAAQolB,SAASC,eAAe,UAAYD,SAASC,eAAe,UAAUivB,aAAe,KAAQ,KAClJ71C,UAAS,GAAAR,OAAKq0B,GAAAA,gBAAmB,KAAAr0B,OAAI2zC,GAAY8B,IAAcI,EAAUxhB,GAAAA,WAAiBA,GAAAA,sBAI1G,EAEA8gB,GAA8BluB,aAAe,CACzCrqB,SAAU,KACV04C,SAAS,EACTE,WAAW,GAGf,IAAMc,GAAoB,SAAHC,GAAkK,IAA5Jn1C,EAAIm1C,EAAJn1C,KAAMm0C,EAASgB,EAAThB,UAAWx6C,EAAIw7C,EAAJx7C,KAAMy7C,EAAgBD,EAAhBC,iBAAkBxD,EAAYuD,EAAZvD,aAAcyD,EAAMF,EAANE,OAAQliB,EAASgiB,EAAThiB,UAAWkb,EAAY8G,EAAZ9G,aAAchc,EAAQ8iB,EAAR9iB,SAAUhuB,EAAO8wC,EAAP9wC,QAASrB,EAAMmyC,EAANnyC,OAAQo5B,EAAW+Y,EAAX/Y,YAAaD,EAAQgZ,EAARhZ,SAAUD,EAAUiZ,EAAVjZ,WACnKoZ,EAAwEtE,GAA4B,YAAdmD,GAAkC,GAAG,0BAADv1C,OAA4Bu1C,IAAYoB,GAAAjxC,EAAAA,EAAAA,GAAAgxC,EAAA,GAA3JE,EAAsBD,EAAA,GAAEE,EAAyBF,EAAA,GAAEG,EAAUH,EAAA,GACpEI,GAAgCpjB,EAAAA,EAAAA,WAAS,GAAMqjB,GAAAtxC,EAAAA,EAAAA,GAAAqxC,EAAA,GAAxCE,EAAQD,EAAA,GAAEE,EAAWF,EAAA,GAC5BG,GAAsDxjB,EAAAA,EAAAA,WAAS,GAAMyjB,GAAA1xC,EAAAA,EAAAA,GAAAyxC,EAAA,GAA9DE,EAAmBD,EAAA,GAAEE,EAAsBF,EAAA,IAElDtjB,EAAAA,EAAAA,YAAU,WACN,GAAkB,eAAdyhB,GAA8BqB,EAAuBr7C,SAAWg5B,EAAsB,WAAEh5B,OAAS,EAAG,CACpG,IAAIg8C,EAAW,GACfhjB,EAAsB,WAAExxB,SAAQ,SAACG,EAAIs0C,GAC7BA,EAAM,GACND,EAASl0C,KAAK,CACVqB,IAAKsW,KAAKyO,MACV9sB,MAAM,GAGlB,IACAk6C,EAA0B,GAAD72C,QAAAqP,EAAAA,EAAAA,GAAKunC,GAA2BW,GAC7D,CACkB,YAAdhC,IAA4BuB,GAAcviB,EAAmB,QAAQ,KAAEh5B,QACvEs7C,GAA0B,EAGlC,GAAG,IAEH,IAAAY,GAAkC9jB,EAAAA,EAAAA,WAAS,GAAM+jB,GAAAhyC,EAAAA,EAAAA,GAAA+xC,EAAA,GAA1CjC,EAASkC,EAAA,GAAEC,EAAYD,EAAA,GAE9B,OAAOr7C,EAAAA,GAAAA,MAAA,OAAKmE,UAAS,GAAAR,OAAKkL,EAAAA,MAAAA,KAAWmpB,GAAAA,mBAAwBjzB,GAAQizB,GAAAA,kBAAqB,KAAAr0B,OAAIy2C,IAAWr1C,EAAOizB,GAAAA,OAAa,MAAOz3B,SAAA,EAChIP,EAAAA,GAAAA,MAAA,QAAMvB,GAAG,QAAQ0F,UAAW6zB,GAAAA,eAAmBz3B,SAAA,EAC3CC,EAAAA,GAAAA,KAAC22B,GAAmB,CAACC,SAAUA,EAAUjzB,UAAW6zB,GAAAA,aAAkB5uB,QAASA,EAASrB,OAAQA,IAAWrJ,KAEhG,eAAdw6C,GACGl5C,EAAAA,GAAAA,MAAA,OAAKgB,MAAO,CAAEC,MAAO,QAASV,SAAA,EAC1BP,EAAAA,GAAAA,MAACgC,GAAAA,EAAM,CACHjB,QAAQ,WACRoD,UAAW6zB,GAAAA,eACXz4B,MAAO24B,EAAUoO,YAAa,EAC9B9kC,SAAU,SAAAC,GACN,IAAM85C,EAAatjB,GAAS,aAAcC,GAC1CqjB,EAAWjV,UAAY7kC,EAAEC,OAAOnC,MAChC6zC,EAAamI,EACjB,EAAEh7C,SAAA,EAEFC,EAAAA,GAAAA,KAAC4B,EAAAA,EAAQ,CAAC7C,OAAO,EAAMgB,SAAEG,EAAAA,KAAAA,EAAO,0BAChCF,EAAAA,GAAAA,KAAC4B,EAAAA,EAAQ,CAAC7C,OAAO,EAAKgB,SAAEG,EAAAA,KAAAA,EAAO,oBAEnCF,EAAAA,GAAAA,KAAC4K,EAAAA,EAAU,CAACrG,KAAK,QAAQL,MAAOhE,EAAAA,KAAAA,EAAO,eAAgByD,UAAW6zB,GAAAA,mBAAwBz1B,QAAS,kBAAMs4C,GAAY,EAAK,EAACt6C,UACvHC,EAAAA,GAAAA,KAACoiC,GAAAA,EAAQ,CAACz+B,UAAW6zB,GAAAA,8BAG3B,MACNx3B,EAAAA,GAAAA,KAACs4C,GAA6B,CAC1B3X,YAAaA,EACbD,SAAUA,EACVD,WAAYA,EACZoS,WAA0B,YAAd6F,EAA0B,OAAuB,eAAdA,EAA6B,EAAIA,EAChFA,UAAWA,EACX9F,aAAcA,EACdlb,UAAWA,EACXnzB,KAAMA,EACNi0C,oBAAmC,YAAdE,EAA0BhhB,EAAmB,QAAkB,eAAdghB,EAA6BhhB,EAAsB,WAAIA,IAEhIye,IAAgB3jC,EAAAA,EAAAA,GAAIxP,MAAoB,YAAd01C,EAA0B,EAAIhhB,EAAUmO,WAAWnnC,OAAS,IAAIiD,KAAI,SAACV,EAAG2L,GAC/F,IAAMouC,EAAsB,WAAH,IAAIj8C,EAAK+D,UAAApE,OAAA,QAAAmP,IAAA/K,UAAA,GAAAA,UAAA,GAAG8J,EAAK,OAAK4rB,QAAsB,YAAdkgB,EAA0BqB,EAAyBA,EAAuBzzC,MAAK,SAACD,EAAIs0C,GAAG,OAAKA,IAAQ57C,GAASsH,EAAGvG,IAAI,IAAG,EAC9K,OAAON,EAAAA,GAAAA,MAAC49B,EAAAA,SAAQ,CAAAr9B,SAAA,EACZP,EAAAA,GAAAA,MAAA,OACIuC,QAAS,WACL,GAAkB,YAAd22C,EAEA,OADAsB,GAA2BD,GACpB,KAEX,IAAIkB,EAAkBjsC,KAAKC,MAAMD,KAAK8C,UAAUioC,IAChD,GAAIriB,EAAsB,WAAE9qB,EAAQ,GAAGlO,OAGnC,OAFAu8C,EAAgBruC,GAAO9M,MAAQm7C,EAAgBruC,GAAO9M,KACtDk6C,EAA0BiB,GACnB,KAEXA,EAAkBA,EAAgBjzC,QAAO,SAAC3B,EAAIs0C,GAAG,OAAKA,IAAQ/tC,CAAK,IACnEotC,EAA0BiB,GAC1BH,EAA2B,YAAdpC,GAAiC9rC,GAC9C7L,YAAW,WACP+5C,GAAa,GACblI,GAAY9oB,EAAAA,GAAAA,IAAAA,EAAAA,GAAAA,GAAC,CAAC,EAAI4N,GAAS,IAAEmO,YAAUrzB,EAAAA,EAAAA,GAAMklB,EAAUmO,WAAW79B,QAAO,SAAC3B,EAAIs0C,GAAG,OAAKA,IAAQ/tC,EAAQ,CAAC,OAC3G,GAAG,IAEP,EACYjJ,UAAW6zB,GAAAA,aAAiBz3B,SAAA,CACvCi7C,IAAwB,IAAM,KAAIh7C,EAAAA,GAAAA,KAAA,OAAK2D,UAAW6zB,GAAAA,QAAYz3B,SAC1D45C,MAFA/sC,IAKT5M,EAAAA,GAAAA,KAACs4C,GAA6B,CAC1BzF,WAA0B,YAAd6F,EAA0B,OAAuB,eAAdA,EAA6B9rC,EAAQ,EAAI8rC,EACxFA,UAAWA,EACX9F,aAAcA,EACd4F,oBAAmC,YAAdE,EAA0BhhB,EAAmB,QAAkB,eAAdghB,EAA6BhhB,EAAsB,WAAIA,EAC7HA,UAAWA,EACX+gB,QAASuC,IACTrC,UAAWngB,QAAQmgB,IAAc/rC,GACjCrI,KAAMA,MACR,GAAApB,OApCmByJ,EAAK,WAAAzJ,OAAUu1C,GAsC5C,IACCvC,GAA8B,eAAduC,IAA8Bl5C,EAAAA,GAAAA,MAAA,OAC3CuC,QAAS,WACLi4C,EAA0B,GAAD72C,QAAAqP,EAAAA,EAAAA,GAAKunC,GAAsB,CAAE,CAClDlyC,IAAKsW,KAAKyO,MACV9sB,MAAM,MAEV8yC,GAAY9oB,EAAAA,GAAAA,IAAAA,EAAAA,GAAAA,GAAC,CAAC,EAAI4N,GAAS,IAAEmO,WAAW,GAAD1iC,QAAAqP,EAAAA,EAAAA,GAAMklB,EAAUmO,YAAU,CAAE,QACnEiV,EAA2B,YAAdpC,GAAiChhB,EAAUmO,WAAWnnC,OAAS,GAC5EqC,YAAW,kBAAM+5C,GAAa,EAAM,GAAE,IAC1C,EACAn3C,UAAW6zB,GAAAA,aAAiBz3B,SAAA,CAE3B,KACDC,EAAAA,GAAAA,KAAA,OAAK2D,UAAW6zB,GAAAA,QAAYz3B,SACvB45C,QAGT35C,EAAAA,GAAAA,KAACm4C,GAAU,CAACr4C,KAAMs6C,EAAUx8C,QAAS,kBAAMy8C,GAAY,EAAM,KAC7Dr6C,EAAAA,GAAAA,KAACq4C,GAAe,CAACv4C,KAAM06C,EAAqB58C,QAAS,kBAAM68C,GAAuB,EAAM,MAEhG,EAEAhB,GAAkBrvB,aAAe,CAC7BrqB,SAAU,KACV7B,KAAM,GACNy7C,iBAAkB,GAClBxD,cAAc,EACdyD,QAAQ,EACRlB,UAAW,IAef,UChPA,GAA4B,yBAA5B,GAA6E,qCAA7E,GAA4H,uBAA5H,GAA+J,yBAA/J,GAAqM,0BAArM,GAA4O,0BAA5O,GAAoR,2BAApR,GAAkU,gCAAlU,GAAiX,4BAAjX,GAA4Z,4BAA5Z,GAAsc,2BAAtc,GAAgf,4BAAhf,GAAiiB,kCAAjiB,GAAklB,4BAAllB,GAAmoB,kCAAnoB,GAAwrB,gCC+CxrB,GA1CuB,SAAAn7C,GACnB,IAAQs5C,EAA8Ht5C,EAA9Hs5C,cAAaqE,EAAiH39C,EAA/Gs5C,cAAiBxV,EAAU6Z,EAAV7Z,WAAYpjC,EAAEi9C,EAAFj9C,GAAM20C,EAA4Er1C,EAA5Eq1C,aAAclb,EAA8Dn6B,EAA9Dm6B,UAAWiJ,EAAmDpjC,EAAnDojC,YAAaD,EAAsCnjC,EAAtCmjC,SAAUD,EAA4BljC,EAA5BkjC,WAAYlJ,EAAgBh6B,EAAhBg6B,YACtH,OAAOv3B,EAAAA,GAAAA,KAAC22C,IAAW7sB,EAAAA,GAAAA,IAAAA,EAAAA,GAAAA,IAAAA,EAAAA,GAAAA,GAAA,GAAKvsB,GAAWs5C,GAAa,IAAA92C,UAC5CC,EAAAA,GAAAA,KAACq3B,IAAQvN,EAAAA,GAAAA,IAAAA,EAAAA,GAAAA,GAAA,CACLyN,YAAaA,EACbrtB,cAAe,WACVu2B,GACGC,IAAa/D,IACN,yBAAP1+B,GACA0iC,EAAYhE,IAEf8D,GACGC,IAAa/D,IACN,oBAAP1+B,GACA0iC,EAAYhE,IAEhB,IACIkW,EADAhrC,EAAMsW,KAAKyO,MAEf,OAAQyU,GACJ,IAAK,UACDwR,EAAa,OACb,MAEJ,IAAK,aACDA,EAAanb,EAAU2J,GAAY3iC,OAAS,EAMpD,IAAIy0C,EAAe1b,GAAS4J,EAAY3J,EAAWmb,GAC7CkB,EAAU,CAAE91C,GAAAA,EAAI4J,IAAAA,EAAKw5B,WAAAA,QACRxzB,IAAfglC,EACAM,EAAa9R,GAAYwR,GAAYrsC,MAAIsjB,EAAAA,GAAAA,GAAC,CAAC,EAAIiqB,IAE/CZ,EAAa9R,GAAY76B,MAAIsjB,EAAAA,GAAAA,GAAC,CAAC,EAAIiqB,IAEvCnB,EAAaO,EACjB,EAAGgI,SAAO,GAAK59C,GAAWs5C,MAEtC,EC7CA,GAAmF,qCAAnF,GAAkI,+BCG5HuE,GAAgB,SAAHzxB,GAAmB,IAAd8uB,EAAO9uB,EAAP8uB,QACpB,OAAOz4C,EAAAA,GAAAA,KAAA,OAAK2D,UAAS,GAAAR,OAAKq0B,GAAiB,KAAAr0B,OAAIs1C,EAAUjhB,GAAc,KAC3E,EAEA4jB,GAAchxB,aAAe,CACzBquB,SAAS,GAOb,UCqIA,GApIa,SAAH9uB,GAA6G,IAAvG0xB,EAAQ1xB,EAAR0xB,SAAUC,EAAY3xB,EAAZ2xB,aAAchvB,EAAS3C,EAAT2C,UAAWoL,EAAS/N,EAAT+N,UAAW6jB,EAAc5xB,EAAd4xB,eAAgB5a,EAAWhX,EAAXgX,YAAaD,EAAQ/W,EAAR+W,SAAUD,EAAU9W,EAAV8W,WAEjGsS,GAA2BC,EAAAA,EAAAA,YAAWnD,IAA9BrjB,EAAMumB,EAANvmB,OAAQjlB,EAAMwrC,EAANxrC,OAChBsyC,EAA4CtE,IAAc,EAAO,kBAAiBuE,GAAAjxC,EAAAA,EAAAA,GAAAgxC,EAAA,GAA3E2B,EAAc1B,EAAA,GAAE2B,EAAiB3B,EAAA,GACxC4B,EAA4BnG,GAAc,CACtClxC,KAAM,GACNjB,KAAM,WACNwJ,MAAO,GACR,sBAAqB+uC,GAAA9yC,EAAAA,EAAAA,GAAA6yC,EAAA,GAJjB1zC,EAAM2zC,EAAA,GAAEC,EAASD,EAAA,GAiBlBE,EAAgB,WAAiD,IAAhDx3C,EAAIvB,UAAApE,OAAA,QAAAmP,IAAA/K,UAAA,GAAAA,UAAA,GAAGkF,EAAO3D,KAAMy3C,EAAQh5C,UAAApE,OAAA,QAAAmP,IAAA/K,UAAA,GAAAA,UAAA,GAAGkF,EAAO5E,KACzD,GAAKopB,EAAL,CAGA,IAAIuvB,GAAYvpC,EAAAA,EAAAA,GAAOga,GAQvBuvB,GAPAA,EAAeA,EAAa/zC,QAAO,SAAA3B,GAC/B,IAAKhC,EACD,OAAO,EAEX,IAAQnG,EAASmI,EAAG69B,gBAAZhmC,KACR,OAAOA,GAAQgC,EAAAA,KAAAA,EAAOhC,GAAM+L,cAAc1G,SAASc,EAAK4F,cAC5D,KAC4BjC,QAAO,SAAA3B,GAAE,OAAIy1C,IAAaz1C,EAAG69B,gBAAgB7C,UAAU,IACnFia,EAAaS,EAVb,CAWJ,EAEMC,EAAY,SAAApvC,GAAK,MAAK,CACxB3O,GAAG,wBAADkF,OAA0ByJ,GAC5B,gBAAgB,6BAADzJ,OAA+ByJ,GACjD,EAMD,OAJAqqB,EAAAA,EAAAA,YAAU,WACN4kB,GAEJ,GAAG,CAACrvB,KACGxsB,EAAAA,GAAAA,KAACi8C,GAAAA,kBAAiB,CACrBC,YAAY,EACZC,WAAW,eACXC,YAAa,kBAAMX,GAAkB,EAAK,EAAC17C,UAE3CP,EAAAA,GAAAA,MAAA,OAAKmE,UAAW0K,EAAAA,MAAAA,KAAWmpB,GAAiB6jB,EAAS,OAAS7jB,IAAkBz3B,SAAA,EAC5EC,EAAAA,GAAAA,KAAA,OAAK2D,UAAS,GAAAR,OAAKq0B,GAAoB,KAAAr0B,OAAIq4C,EAAiBhkB,GAAmB,MAC3Ez1B,QAAS,kBAAM05C,GAAmBD,EAAe,EAACz7C,UAACC,EAAAA,GAAAA,KAACo7C,GAAa,CAAC3C,SAAU+C,OAEhFh8C,EAAAA,GAAAA,MAAA,OAAKmE,UAAS,GAAAR,OAAKkL,EAAAA,MAAAA,KAAWmpB,GAAe6jB,EAAS,OAAS7jB,GAAwB6jB,EAAS,MAAQ7jB,IAAqB,KAAAr0B,OAAIq4C,EAAiBhkB,GAAc,MAAOz3B,SAAA,EACnKC,EAAAA,GAAAA,KAAA,OAAK2D,UAAW6zB,GAAiBz3B,UAC7BC,EAAAA,GAAAA,KAACq8C,GAAAA,OAAM,CAAC14C,UAAW6zB,GAAwB7sB,SAAS,SAAQ5K,UACxDP,EAAAA,GAAAA,MAAC88C,GAAAA,KAAI,CACDv9C,MAAOiJ,EAAO4E,MACd5L,SAlDH,SAACtB,EAAOkpB,GACzB6X,GAA4B,IAAb7X,GAAkB8X,IAAa/D,IAAyBgE,EAAYhE,IACnF8D,GAA4B,IAAb7X,GAAkB8X,IAAa/D,IAAwBgE,EAAYhE,IAClFif,GAAS9xB,EAAAA,GAAAA,IAAAA,EAAAA,GAAAA,GAAC,CAAC,EACJ9hB,GAAM,IACT4E,MAAOgc,EACPxlB,KAAM,CAAC,WAAY,aAAc,WAAWwlB,MAEhDizB,EAAc7zC,EAAO3D,KAAM,CAAC,WAAY,aAAc,WAAWukB,GACrE,EAyC+C7oB,SAAA,EAEvBC,EAAAA,GAAAA,KAACu8C,GAAAA,KAAGzyB,EAAAA,GAAAA,GAAA,CAACnmB,UAAU,kBACXO,MAAOhE,EAAAA,KAAAA,EAAO,YACd6I,MAAM/I,EAAAA,GAAAA,KAAC22B,GAAmB,CAACC,SAAS,aAChColB,EAAU,MAClBh8C,EAAAA,GAAAA,KAACu8C,GAAAA,KAAGzyB,EAAAA,GAAAA,GAAA,CAAC5lB,MAAOhE,EAAAA,KAAAA,EAAO,cAAeyD,UAAU,oBAAoBoF,MAAM/I,EAAAA,GAAAA,KAAC22B,GAAmB,CAACC,SAAS,UAC5FolB,EAAU,MAClBh8C,EAAAA,GAAAA,KAACu8C,GAAAA,KAAGzyB,EAAAA,GAAAA,GAAA,CAAC5lB,MAAOhE,EAAAA,KAAAA,EAAO,WAAYyD,UAAU,iBAAiBoF,MAAM/I,EAAAA,GAAAA,KAAC22B,GAAmB,CAACC,SAAS,iBACtFolB,EAAU,aAI9Bh8C,EAAAA,GAAAA,KAAA,OAAK2D,UAAW6zB,GAA0Bz3B,UACtCP,EAAAA,GAAAA,MAAA,QAAAO,SAAA,CACKusB,EAAU3qB,KAAI,SAAA0E,GACX,IAAAm2C,EAAoCn2C,EAAG69B,gBAA/BhmC,EAAIs+C,EAAJt+C,KAAMD,EAAEu+C,EAAFv+C,GAAI8K,EAAIyzC,EAAJzzC,KAAMH,EAAO4zC,EAAP5zC,QACxB,OAAO5I,EAAAA,GAAAA,KAACo9B,EAAAA,SAAQ,CAAAr9B,UACZC,EAAAA,GAAAA,KAACy8C,GAAc,CACXllB,YAAa,kBAAMkkB,GAAkB,EAAK,EAC1C9a,YAAaA,EACbD,SAAUA,EACVD,WAAYA,EACZoW,cAAexwC,EAAG69B,gBAClBhmC,KAAMA,EACN6K,KAAMA,EACNH,QAASA,EACTrB,OAAQA,EACRmwB,UAAWA,EACXkb,aAAc2I,EACdzE,UAAU,EACV74C,GAAIA,KAdUA,EAiB1B,IACsB,IAArBquB,EAAU5tB,SAAgBc,EAAAA,GAAAA,MAAA,OAAKmE,UAAW6zB,GAAiBz3B,SAAA,CACvDG,EAAAA,KAAAA,EAAO,iBAAiB,OACzBF,EAAAA,GAAAA,KAAA,OAAK2D,UAAW6zB,GAAiBz1B,QAAS,WACtC65C,GAAS9xB,EAAAA,GAAAA,IAAAA,EAAAA,GAAAA,GAAC,CAAC,EACJ9hB,GAAM,IACT3D,KAAM,MAEVw3C,EAAc,GAClB,EAAE97C,SAAEG,EAAAA,KAAAA,EAAO,2BAIvBF,EAAAA,GAAAA,KAAA,OAAK2D,UAAW0K,EAAAA,MAAAA,KAAWmpB,GAAeA,OAC1Cx3B,EAAAA,GAAAA,KAAC44B,GAAW,CACRj1B,UAAW6zB,GACX33B,WAAS,EACTq4B,aAAW,EACXn5B,MAAOiJ,EAAO3D,KACdE,KAAK,QACLlE,aAAa,MACbM,MAAOT,EAAAA,KAAAA,EAAO,UACdK,QAAQ,WACRS,SAAU,SAACjC,GACP68C,GAAS9xB,EAAAA,GAAAA,IAAAA,EAAAA,GAAAA,GAAC,CAAC,EAAI9hB,GAAM,IAAE3D,KAAMtF,KAC7B88C,EAAc98C,EAClB,WAKpB,EC2EA,GAxMoB,SAAH4qB,GAA+G,IAAzGvI,EAAIuI,EAAJvI,KAAMpgB,EAAQ2oB,EAAR3oB,SAAUuO,EAASoa,EAATpa,UAAWoxB,EAAWhX,EAAXgX,YAAaD,EAAQ/W,EAAR+W,SAAUD,EAAU9W,EAAV8W,WAAY3T,EAAOnD,EAAPmD,QAAS4vB,EAAQ/yB,EAAR+yB,SAAU3qC,EAAO4X,EAAP5X,QAAS4qC,EAAOhzB,EAAPgzB,QAE7G5J,GAAgFC,EAAAA,EAAAA,YAAWnD,IAAnFrjB,EAAMumB,EAANvmB,OAAQjlB,EAAMwrC,EAANxrC,OAAQ+3B,EAAWyT,EAAXzT,YAAa8R,EAAiB2B,EAAjB3B,kBAAmBG,EAAmBwB,EAAnBxB,oBACxD1a,GAAkCC,EAAAA,EAAAA,UAAS,IAAGC,GAAAluB,EAAAA,EAAAA,GAAAguB,EAAA,GAAvCvK,EAASyK,EAAA,GAAEukB,EAAYvkB,EAAA,GAC9ByC,GAAkC1C,EAAAA,EAAAA,UAAS8Q,GAAAA,UAAkBxmB,IAAMqY,GAAA5wB,EAAAA,EAAAA,GAAA2wB,EAAA,GAA5D9B,EAAS+B,EAAA,GAAEmZ,EAAYnZ,EAAA,GAC9ByX,GAAwCpa,EAAAA,EAAAA,UAAS,IAAGqa,GAAAtoC,EAAAA,EAAAA,GAAAqoC,EAAA,GAA7C0L,EAAYzL,EAAA,GAAE0L,EAAe1L,EAAA,GACpCE,GAA0Bva,EAAAA,EAAAA,WAAS,GAAMwa,GAAAzoC,EAAAA,EAAAA,GAAAwoC,EAAA,GAAlCyL,EAAKxL,EAAA,GAAEyL,EAAQzL,EAAA,IAItBra,EAAAA,EAAAA,YAAU,WACN,IAAI+lB,EACAC,EACEC,EAAU,SAAVA,EAAWj/C,EAAIyJ,GAOT,IAADwvB,EACsCuH,EAPzCxgC,IAAO++C,EAAc,SACjBC,KAAgB,OAAHv1C,QAAG,IAAHA,OAAG,EAAHA,EAAKsK,OAClBirC,EAAc,OAAHv1C,QAAG,IAAHA,OAAG,EAAHA,EAAKsK,MAEJzK,EAAOma,OAAOs7B,EAAY59C,QAAQ,qBAAsB,IAAK,UAAWs9C,GAGpFM,KAAmB,OAAHt1C,QAAG,IAAHA,GAAW,QAARwvB,EAAHxvB,EAAKC,cAAM,IAAAuvB,OAAR,EAAHA,EAAajqB,UAC7B+vC,GAAez1C,EAAOsK,iBAAiB,GAAD1O,OAAI65C,EAAW,UAAUE,GAC/DD,GAAY11C,EAAOma,OAAOs7B,EAAY59C,QAAQ,qBAAsB,IAAK,UAAWs9C,IACpFM,EAAiB,OAAHt1C,QAAG,IAAHA,GAAW,QAAR+2B,EAAH/2B,EAAKC,cAAM,IAAA82B,OAAR,EAAHA,EAAaxxB,SAEZ1F,EAAOqK,eAAe,GAADzO,OAAI65C,EAAW,UAAUE,GAGzE,EAEMC,EAAgB,SAACl/C,EAAID,GACvB,GAAIA,EACA,IACI,IAAIo/C,EAAMpuC,KAAKC,MAAMjR,EAAMgU,KAEvBorC,EAAIC,SAAWX,GAAYv+B,KAAKyO,MAAQwwB,EAAIh/B,GAAK,KACjDgzB,EAAkB,CAACpO,QAASoa,EAAIpa,QAASx2B,KAAM4wC,EAAI5wC,KAAM4R,GAAIg/B,EAAIh/B,IAEzE,CAAE,MAAOnd,GACLyF,QAAQhB,MAAM,iBAAmB1H,EAAMgU,IAC3C,CAER,EAWA,OATAzK,EAAOC,UAAUk1C,GACZj1C,MAAK,SAAAC,GAAQ,IAAD41C,EACTN,EAAiB,OAAHt1C,QAAG,IAAHA,GAAW,QAAR41C,EAAH51C,EAAKC,cAAM,IAAA21C,OAAR,EAAHA,EAAarwC,OAE3B1F,EAAOg2C,gBAAgBb,EAAUQ,GACjCF,GAAez1C,EAAOqK,eAAe,GAADzO,OAAI65C,EAAW,UAAUE,GAC7DF,GAAez1C,EAAOqK,eAAeorC,EAAY59C,QAAQ,qBAAsB,IAAM,eAAgB+9C,EACzG,IAEG,WACHH,GAAez1C,EAAOi2C,kBAAkB,GAADr6C,OAAI65C,EAAW,UAAUE,GAChE31C,EAAOsK,iBAAiB6qC,EAAUQ,GAClCD,GAAYD,GAAez1C,EAAOma,OAAOs7B,EAAY59C,QAAQ,qBAAsB,IAAK,WAAYs9C,GACpGM,GAAez1C,EAAOsK,iBAAiBmrC,EAAY59C,QAAQ,qBAAsB,IAAM,eAAgB+9C,EAC3G,CAEJ,GAAG,KAEHlmB,EAAAA,EAAAA,YAAU,WACNsa,GAAqBx/B,GAAW4qC,EACpC,GAAG,CAAC5qC,EAAS4qC,EAASpL,KAEtBta,EAAAA,EAAAA,YAAU,WACAnK,IACF+vB,EAAgB/vB,GACXgwB,GACDC,GAAS,GAIrB,GAAG,CAACjwB,KAEJmK,EAAAA,EAAAA,YAAU,WACN,IAAMkc,EAAevL,GAAAA,UAAkBxmB,GACnCpS,KAAK8C,UAAUqhC,KAAkBnkC,KAAK8C,UAAU4lB,KAChDkb,EAAaO,GACb7T,GAAY,GAGpB,GAAG,CAACle,KAEJ6V,EAAAA,EAAAA,YAAU,WACN3M,SAASuD,qBAAqB,QAAQ,GAAGlqB,UAAY4L,GAAa,MACtE,GAAG,CAACA,IAEJ,IAAMgsC,GAAiBrI,EAAAA,EAAAA,cAAY,SAAAjN,GAC/B2M,EAAa3M,GACbjlC,EAAS4mC,GAAAA,UAAkB3B,EAAMzZ,GACrC,GAAG,CAACA,EAAQxrB,IAENoN,GAAMgpC,EAAAA,EAAAA,QAAO,CAAEpD,YAAa,IAClCkG,GAAgCpjB,EAAAA,EAAAA,UAAS,CAAE,KAAK,EAAO,MAAM,IAAQqjB,GAAAtxC,EAAAA,EAAAA,GAAAqxC,EAAA,GAA9DmB,EAAQlB,EAAA,GAAEsD,EAAWtD,EAAA,GAgB5B,OAfAljB,EAAAA,EAAAA,YAAU,WACF7oB,EAAIwQ,UACAxQ,EAAIwQ,QAAQo1B,aAAe,MAC3ByJ,EAAY,CAAE,KAAK,EAAO,MAAM,IAEhCrvC,EAAIwQ,QAAQo1B,aAAe,KAC3ByJ,EAAY,CAAE,MAAM,EAAM,KAAK,IAE/BrvC,EAAIwQ,QAAQo1B,YAAc,MAC1ByJ,EAAY,CAAE,KAAK,EAAO,MAAM,IAI5C,GAAG,CAACrvC,EAAIwQ,QAAQo1B,cAEXxnB,GAIEhtB,EAAAA,GAAAA,MAAA,OAAuBmE,UAAW6zB,GAAkBppB,IAAKA,EAAIrO,SAAA,EAC/DC,EAAAA,GAAAA,KAAC80C,GAAe,CAACxoB,UAAWA,EAAW/kB,OAAQA,IAC9B,WAAjBq1C,GACG58C,EAAAA,GAAAA,KAACkpB,GAAY,CAETtrB,QAAS,kBAAMm/C,GAAS,EAAM,EAC9Bj9C,KAAMg9C,EACNz4C,KAAM2K,KAAK8C,UAAU4lB,EAAW,KAAM,IAHlC,iBAIR13B,EAAAA,GAAAA,KAACqqB,GAAY,CACTvqB,KAAMg9C,EAENl/C,QAAS,SAAAyG,GACL04C,GAAS,GACL14C,GACAk3C,EAAevsC,KAAKC,MAAM5K,GAElC,GANI,iBAOX7E,EAAAA,GAAAA,MAAA,OAAKmE,UAAW0K,EAAAA,MAAAA,KAAWmpB,GAAiB6jB,EAAS,MAAQ7jB,IAAcz3B,SAAA,EACxEC,EAAAA,GAAAA,KAACgX,GAAI,CACDskC,aAAcA,EACdhvB,UAAWA,EACXoL,UAAWA,EACX6jB,eAAgBA,EAChB5a,YAAaA,EACbD,SAAUA,EACV2a,SAAUA,EACV5a,WAAYA,KAEhBzgC,EAAAA,GAAAA,KAACy5C,GAAiB,CACd7G,aAAc2I,EACd7jB,UAAWA,EACX+I,WAAYA,EACZE,YAAaA,EACbD,SAAUA,EACVxiC,KAAI,GAAAiF,OAAKjD,EAAAA,KAAAA,EAAO,QAAO,OACvBw4C,UAAU,WACV9hB,SAAS,UACTryB,KAAM82C,EAAS,QAEnBr7C,EAAAA,GAAAA,KAACy5C,GAAiB,CACd7G,aAAc2I,EACd9a,WAAYA,EACZE,YAAaA,EACbD,SAAUA,EACVhJ,UAAWA,EACXx5B,KAAI,MAAAiF,OAAQjD,EAAAA,KAAAA,EAAO,OAAM,OACzBw4C,UAAU,aACV9hB,SAAS,OACT+iB,iBAAkBz5C,EAAAA,KAAAA,EAAO,MACzBi2C,cAAY,EACZyD,QAAM,EACNr1C,KAAM82C,EAAS,QAEnBr7C,EAAAA,GAAAA,KAACy5C,GAAiB,CACd7G,aAAc2I,EACd9a,WAAYA,EACZE,YAAaA,EACbD,SAAUA,EACVhJ,UAAWA,EACXx5B,KAAI,MAAAiF,OAAQjD,EAAAA,KAAAA,EAAO,SACnBw4C,UAAU,UACV9hB,SAAS,cACT+iB,iBAAkBz5C,EAAAA,KAAAA,EAAO,QACzBi2C,cAAY,EACZ5xC,KAAM82C,EAAS,YAhEX,eAHL,IAuEf,E,YClJMqC,GAAM,SAAAxgD,IAAAC,EAAAA,EAAAA,GAAAugD,EAAAxgD,GAAA,IAAAG,GAAAC,EAAAA,EAAAA,GAAAogD,GACR,SAAAA,EAAYngD,GAAQ,IAADC,EAKb,OALaC,EAAAA,EAAAA,GAAA,KAAAigD,IACflgD,EAAAH,EAAAK,KAAA,KAAMH,IAEDS,MAAQ,CACT6f,OAAQrgB,EAAKD,MAAMsX,QAAU,IAAI5V,MAAM,YACzCzB,CACN,CA0BC,OA1BAqB,EAAAA,EAAAA,GAAA6+C,EAAA,EAAA5+C,IAAA,iBAAAC,MAED,SAAeiiB,EAAQC,GACnB5hB,KAAK4hB,OAASA,EACd5hB,KAAK2hB,OAASA,EACdA,EAAOvd,OACX,GAAC,CAAA3E,IAAA,SAAAC,MAED,WAAU,IAADQ,EAAA,KACL,OAAOS,EAAAA,GAAAA,KAAA,OAAK2D,UAAWtE,KAAK9B,MAAMqG,QAAQ+5C,UAAU59C,UAChDC,EAAAA,GAAAA,KAACu2B,GAAqB,CAElBr4B,KAAMmB,KAAK9B,MAAMqgD,WACjBpnB,YAAan3B,KAAK9B,MAAMi5B,YACxB9V,UAAQ,EACRU,KAAM/hB,KAAK9B,MAAMsX,QAAU,GAC3B2L,OAAiC,SAAzBnhB,KAAK9B,MAAM+rB,UACnB/hB,OAAQlI,KAAK9B,MAAMgK,OACnB+I,iBAAkBjR,KAAK9B,MAAM+S,iBAC7BmQ,SAAU,aAEV6C,YAAajkB,KAAK9B,MAAM+lB,YACxBW,SAAU5kB,KAAK9B,MAAMoxC,OAAStvC,KAAK9B,MAAM0mB,SAAW,KACpDM,mBAAoB,SAAAne,GAAC,OAAI7G,EAAKhC,MAAMgnB,mBAAmBne,EAAE,GAZrD,kBAF6C,mBAiB7D,KAACs3C,CAAA,CAjCO,CAASt7C,IAAAA,WAmDrB,IAAeM,EAAAA,EAAAA,IArGA,SAAAC,GAAK,MAAK,CACrBg7C,UAAW,CACPz4C,OAAQ,OACRzE,MAAO,OACP+S,SAAU,SACV7I,SAAU,YAEdqW,OAAQ,CACJvgB,MAAO,OACPyE,OAAQ,OACRsO,SAAU,QAEd0zB,KAAM,CACFzmC,MAAO,OACP6S,WAAY,UAEhBqR,WAAY,CACRlkB,MAAO,GACP6S,WAAY,SACZE,SAAU,SACVvO,QAAS,eACTob,WAAY,qCACZzb,UAAW,QACXpC,SAAU,GACVyI,YAAa,EACb4yC,YAAa,iBACb3pC,OAAQ,WAEZ4pC,eAAgB,CACZ92C,WAAY,UACZhF,MAAO,SAEX+7C,SAAU,CAEN94C,QAAS,eACTob,WAAY,qCACZ7d,SAAU,GACVrB,OAAQ,EACRmS,WAAY,OAEhB0qC,gBAAiB,CACbh3C,WAAY,MACZhF,MAAO,SAEXi8C,YAAa,CACTj3C,WAAY,UACZhF,MAAO,SAEd,GAqDD,CAAkC07C,ICYlC,SAASxgC,GAAcC,GACnB,IAAI9Y,EACA+B,EAAI+W,EAAEC,WAuBV,OAtBIhX,EAAI,KACJA,EAAI,IAAMA,EAAEkG,YAEhBjI,EAAO+B,EAAI,KAEXA,EAAI+W,EAAEE,cACE,KACJjX,EAAI,IAAMA,EAAEkG,YAEhBjI,GAAQ+B,EAAI,KACZA,EAAI+W,EAAEG,cACE,KACJlX,EAAI,IAAMA,EAAEkG,YAEhBjI,GAAQ+B,EAAI,KACZA,EAAI+W,EAAEI,mBACE,GACJnX,EAAI,KAAOA,EAAEkG,WACNlG,EAAI,MACXA,EAAI,IAAMA,EAAEkG,YAEhBjI,GAAQ+B,CAEZ,CAAC,IAEK83C,GAAO,SAAAhhD,IAAAC,EAAAA,EAAAA,GAAA+gD,EAAAhhD,GAAA,IAAAG,GAAAC,EAAAA,EAAAA,GAAA4gD,GACT,SAAAA,EAAY3gD,GAAQ,IAADC,EAMsB,OANtBC,EAAAA,EAAAA,GAAA,KAAAygD,IACf1gD,EAAAH,EAAAK,KAAA,KAAMH,IACDS,MAAQ,CACT6f,MAAO,CAAC,EACRS,UAAU,GAEd9gB,EAAKghB,YAAcpc,IAAAA,YAAkB5E,CACzC,CAsDC,OAtDAqB,EAAAA,EAAAA,GAAAq/C,EAAA,EAAAp/C,IAAA,eAAAC,MACD,SAAa4e,GACT,OAAOne,EAAAA,GAAAA,MAAA,MAAyDmE,UAAWtE,KAAK9B,MAAMqG,QAAQ+Z,EAAQK,UAAUje,SAAA,EAC5GC,EAAAA,GAAAA,KAAA,MAAiB2D,UAAWtE,KAAK9B,MAAMqG,QAAQ6a,OAAO1e,SAAEmd,GAAc,IAAIiB,KAAKR,EAAQS,MAA/E,WACRpe,EAAAA,GAAAA,KAAA,MAAqB2D,UAAWtE,KAAK9B,MAAMqG,QAAQ8a,WAAW3e,SAAE4d,EAAQK,UAAhE,eACRhe,EAAAA,GAAAA,KAAA,MAAAD,SAAqB4d,EAAQtZ,MAArB,eAA+B,MAAAlB,OAHrBwa,EAAQS,GAAE,KAAAjb,OAAIwa,EAAQtZ,KAAKsa,QAAQ,KAK7D,GAAC,CAAA7f,IAAA,gBAAAC,MACD,SAAc8e,GAAQ,IAADte,EAAA,KACjB,OAAIse,GAASA,EAAMnf,QACRc,EAAAA,GAAAA,MAAA,OAAKmE,UAAWtE,KAAK9B,MAAMqG,QAAQsb,YAAYnf,SAAA,EAClDC,EAAAA,GAAAA,KAAA,SAAsB2D,UAAWtE,KAAK9B,MAAMqG,QAAQub,MAAMpf,UAACC,EAAAA,GAAAA,KAAA,SAAAD,SAC1D8d,EAAMlc,KAAI,SAACulC,EAAM9gC,GAAC,OAAK7G,EAAKwe,aAAampB,EAAK,OADpC,aAEXlnC,EAAAA,GAAAA,KAAA,OAA0BoO,IAAK/O,KAAKmf,YAAahe,MAAO,CAACmY,MAAO,OAAQyG,MAAO,SAAtE,oBAH8C,YAMpDpf,EAAAA,GAAAA,KAAA,OAAmB2D,UAAWtE,KAAK9B,MAAMqG,QAAQsb,YAAa1e,MAAO,CAACuc,YAAa,IAAIhd,SAAEG,EAAAA,KAAAA,EAAO,gBAAvF,UAExB,GAAC,CAAApB,IAAA,SAAAC,MAED,WACIsP,EAAAA,MAAAA,gBAAsBhP,KAAK9B,MAAMmJ,QAAQvH,KAAK,MAClD,GAAC,CAAAL,IAAA,iBAAAC,MAED,WACIM,KAAKmf,aAAenf,KAAKmf,YAAYI,SAAWvf,KAAKmf,YAAYI,QAAQC,eAAe,CAACC,SAAU,UACvG,GAAC,CAAAhgB,IAAA,qBAAAC,MAED,WACIM,KAAKrB,MAAMsgB,UAAYjf,KAAK4f,gBAChC,GAAC,CAAAngB,IAAA,SAAAC,MAED,WAAU,IAAD0F,EAAA,KACCoZ,EAAQxe,KAAK9B,MAAMmJ,QACzB,OACIlH,EAAAA,GAAAA,MAAA,OAAKmE,UAAWtE,KAAK9B,MAAMqG,QAAQyb,OAAOtf,SAAA,EACtCP,EAAAA,GAAAA,MAAA,OAAKmE,UAAWtE,KAAK9B,MAAMqG,QAAQ0b,QAAQvf,SAAA,EACvCC,EAAAA,GAAAA,KAAC4K,EAAAA,EAAU,CACPjH,UAAWtE,KAAK9B,MAAMqG,QAAQ+O,YAC9B5Q,QAAS,kBAAM0C,EAAKpG,SAAS,CAACigB,UAAW7Z,EAAKzG,MAAMsgB,UAAU,EAC9Dtc,MAAO3C,KAAKrB,MAAMsgB,SAAW,YAAc,GAC3C/Z,KAAK,SAAQxE,UAACC,EAAAA,GAAAA,KAACuf,EAAAA,IAAU,MAC5B1B,GAASA,EAAMnf,QAASsB,EAAAA,GAAAA,KAAC4K,EAAAA,EAAU,CAChCjH,UAAWtE,KAAK9B,MAAMqG,QAAQ+O,YAC9B5Q,QAAS,kBAAM0C,EAAKlH,MAAM4gD,gBAAgB,EAC1C55C,KAAK,SAAQxE,UAACC,EAAAA,GAAAA,KAACuC,EAAAA,IAAU,MAAkB,KAC9Csb,GAASA,EAAMnf,QAASsB,EAAAA,GAAAA,KAAC4K,EAAAA,EAAU,CAChCjH,UAAWtE,KAAK9B,MAAMqG,QAAQ+O,YAC9B5Q,QAAS,kBAAM0C,EAAKyT,QAAQ,EAC5B3T,KAAK,SAAQxE,UAACC,EAAAA,GAAAA,KAACmY,EAAAA,IAAQ,MAAkB,OAbD,WAe/C9Y,KAAKygB,cAAcjC,KAGhC,KAACqgC,CAAA,CA9DQ,CAAS97C,IAAAA,WAuEtB,IAAeM,EAAAA,EAAAA,IAzMA,SAAAC,GAAK,MAAK,CACrBy7C,YAAa,CACT57C,SAAU,GACVR,MAA8B,SAAvBW,EAAMsE,QAAQgV,KAAkB,OAAS,QAEpDoiC,YAAa,CAEb,EACAC,aAAc,CACVrhC,gBAAwC,SAAvBta,EAAMsE,QAAQgV,KAAkB,UAAY,WAEjEsiC,cAAe,CACXthC,gBAAwC,SAAvBta,EAAMsE,QAAQgV,KAAkB,UAAY,WAEjEuiC,cAAe,CACX/vC,QAAS,IAEbgwC,gBAAiB,CACbz+B,cAAe,MACfvf,MAAO,GACPi+C,cAAe,aAEnBC,YAAa,CACTrrC,WAAY,SACZ0M,cAAe,MACfvf,MAAO,KAEXm+C,YAAa,CACTv+B,WAAY,qCACZxD,WAAY,EACZ,QAAS,CACL1b,OAAQ,IAGhBke,OAAQ,CACJ5e,MAAO,OACPyE,OAAQ,OACRyF,SAAU,WACV6I,SAAU,UAEd0L,YAAa,CACTja,QAAS,eACTjD,MAA8B,SAAvBW,EAAMsE,QAAQgV,KAAkB,QAAU,QACjDxb,MAAM,eAAD0C,OA7CS,GA6CqB,OACnC+B,OAAQ,OAERsO,SAAU,OACV7I,SAAU,WACVqV,cAAe,OAEnBC,KAAM,CACFjZ,WAAmC,SAAvBrE,EAAMsE,QAAQgV,KAAkB,WAAa,YACzDja,OAAOW,EAAMsE,QAAQgV,KAAmB,UAE5CvW,MAAO,CACHsB,WAAY,UACZhF,MAA8B,SAAvBW,EAAMsE,QAAQgV,KAAmB,QAAU,SAEtDiE,KAAM,CACFlZ,WAAY,UACZhF,MAA8B,SAAvBW,EAAMsE,QAAQgV,KAAmB,QAAU,SAEtDkE,MAAO,CACHnZ,WAAY,OACZyH,QAAS,GACTzM,MAA8B,SAAvBW,EAAMsE,QAAQgV,KAAmB,QAAU,SAEtDmE,MAAO,CACHpZ,WAAY,OACZyH,QAAS,GACTzM,MAA8B,SAAvBW,EAAMsE,QAAQgV,KAAkB,QAAU,SAErDkD,MAAO,CACHkB,WAAY,YACZ5f,MAAO,QAEX6e,QAAS,CAKL7e,MAnFc,GAoFdyE,OAAQ,OACRob,UAAW,iHACXrb,QAAS,eACT+a,cAAe,MACfxM,SAAU,UAEdiL,OAAQ,CACJhe,MAAO,IAEXie,WAAY,CACRje,MAAO,GACPgC,WAAY,QAEhBkQ,YAAa,CACTlS,MAAO,GACPyE,OAAQ,GACRqO,QAAS,GAEhB,GAqGD,CAAkC2qC,I,uBC9E5BW,GAAK,SAAA3hD,IAAAC,EAAAA,EAAAA,GAAA0hD,EAAA3hD,GAAA,IAAAG,GAAAC,EAAAA,EAAAA,GAAAuhD,GACP,SAAAA,EAAYthD,GAAQ,IAADC,EAUkB,OAVlBC,EAAAA,EAAAA,GAAA,KAAAohD,IACfrhD,EAAAH,EAAAK,KAAA,KAAMH,IAEDuhD,WAAatT,WAAWhoC,OAAOyE,aAAaC,QAAQ,oBAAsB,IAE/E1K,EAAKQ,MAAQ,CACT+gD,UAAW,KACXC,WAAYxhD,EAAKD,MAAMyhD,YAG3BxhD,EAAKyhD,QAAU78C,IAAAA,YAAkB5E,CACrC,CA+SC,OA/SAqB,EAAAA,EAAAA,GAAAggD,EAAA,EAAA//C,IAAA,yBAAAC,MAED,WAA0B,IAADQ,EAAA,KACrBF,KAAK9B,MAAM2hD,uBAAuB7/C,KAAKrB,MAAM+gD,UAAUnyC,MAAOvN,KAAK8/C,YAAY,WAC3E5/C,EAAKlB,SAAS,CAAC0gD,UAAW,OAC1Bx/C,EAAK4/C,WAAa,IACtB,GACJ,GAAC,CAAArgD,IAAA,mBAAAC,MAED,SAAiBwH,EAAMH,GAAI,IAAD3B,EAAA,KAChBvG,EAAOmB,KAAKrB,MAAM+gD,WAA2C,eAA9B1/C,KAAKrB,MAAM+gD,UAAU37C,MAAyB/D,KAAKrB,MAAM+gD,UAAUnyC,QAAUxG,GAC9GpG,EAAAA,GAAAA,KAACqK,EAAAA,EAAK,CACF6E,SAAU7P,KAAK4/C,QACfp/C,WAAS,EACTsB,OAAO,QACPi+C,OAAQ,kBAAM36C,EAAKzG,MAAM+gD,WAAat6C,EAAKpG,SAAS,CAAC0gD,UAAW,MAAM,EACtExkB,aAAch0B,EAAKrI,KACnBytC,QAAS,SAAA1qC,GACa,KAAdA,EAAE2qC,QACFnnC,EAAKy6C,yBACgB,KAAdj+C,EAAE2qC,SACTnnC,EAAKpG,SAAS,CAAC0gD,UAAW,MAElC,EAEA/9C,SAAU,SAAAC,GAAC,OACPwD,EAAK06C,WAAal+C,EAAEC,OAAOnC,KAAK,EAEpC0L,cACIzK,EAAAA,GAAAA,KAAC0K,GAAAA,EAAc,CAACC,SAAS,MAAK5K,UAC1BC,EAAAA,GAAAA,KAAC4K,EAAAA,EAAU,CAAC7I,QAAS,kBAAM0C,EAAKy6C,wBAAwB,EAAE36C,KAAK,SAAQxE,UACnEC,EAAAA,GAAAA,KAACq/C,EAAAA,IAAS,UAM1B,EACIr/C,EAAAA,GAAAA,KAAA,OAAgB2D,UAAWtE,KAAK9B,MAAMqG,QAAQ07C,cAAep7C,MAAOhE,EAAAA,KAAAA,EAAO,mCAAmCH,SAAEwG,EAAKrI,MAA5G,SACT8B,EAAAA,GAAAA,KAAA,OAAa2D,UAAWtE,KAAK9B,MAAMqG,QAAQ27C,eAAex/C,SAAC,OAAlD,MACTC,EAAAA,GAAAA,KAAA,OAAe2D,UAAWtE,KAAK9B,MAAMqG,QAAQ47C,eAAez/C,SAAEV,KAAKogD,YAAYl5C,EAAKxH,QAA3E,QAGjB,OAAOS,EAAAA,GAAAA,MAAA,MAAAO,SAAA,EACHC,EAAAA,GAAAA,KAAA,MAAI2D,UAAW0K,EAAAA,MAAAA,KAAWhP,KAAK9B,MAAMqG,QAAQ87C,UAAWrgD,KAAK9B,MAAMqG,QAAwB,gBAAG7D,SAAC,UAC/FC,EAAAA,GAAAA,KAAA,MAAI2D,UAAWtE,KAAK9B,MAAMqG,QAAQ+7C,UAC9Bz1C,cAAe,WACXzF,EAAK06C,WAAa54C,EAAKrI,MAAQ,GAC/BuG,EAAKpG,SAAS,CACV0gD,UAAW,CACP37C,KAAM,aACNw8C,UAAW,SACXhzC,MAAOxG,EACPlI,KAAMqI,EAAKrI,KACXa,MAAOwH,EAAKrI,MAAQ,KAGhC,EAAE6B,SACJ7B,KACF8B,EAAAA,GAAAA,KAAC4K,EAAAA,EAAU,CACPjH,UAAWtE,KAAK9B,MAAMqG,QAAQi8C,eAC9Bt7C,KAAK,QACLnD,WAAY/B,KAAKrB,MAAM+gD,UACvBh9C,QAAS,kBAAM0C,EAAKlH,MAAMuiD,mBAAmB15C,EAAE,EAACrG,UAEhDC,EAAAA,GAAAA,KAACuC,EAAAA,IAAU,QACF,QAAAY,OAvBOiD,GAACjD,OAAGoD,EAAKrI,MAyBrC,GAAC,CAAAY,IAAA,oBAAAC,MAED,WAAqB,IAAD2F,EAAA,KAChB,OAAOrF,KAAK9B,MAAMwiD,YAAYp+C,KAAI,SAAC4E,EAAMH,GAAC,OAAK1B,EAAKs7C,iBAAiBz5C,EAAMH,EAAE,GACjF,GAAC,CAAAtH,IAAA,sBAAAC,MAED,SAAoBkhD,EAAO75C,GAAI,IAADzB,EAAA,KAC1B,GAAItF,KAAK9B,MAAM2iD,eAAiB7gD,KAAK9B,MAAM4iD,iBAAmBF,EAAMh8B,SAASy4B,WAAar9C,KAAK9B,MAAM2iD,aACjG,OAAO,KAEX,IAAME,EAAWH,EAAM7qB,IAAIn2B,MAAM,KAAKC,MAAME,QAAQ,gBAAiB,IACrE,OAAOY,EAAAA,GAAAA,KAACqgD,GAAAA,EAAc,CAElBt+C,QAAS,kBAAM4C,EAAKpH,MAAM+iD,qBAAqBl6C,EAAE,EACjD8P,OAAK,EACLvM,SAAUtK,KAAK9B,MAAMgjD,eAAiBn6C,EACtCxC,QAAS,CAAEiD,KAAMxH,KAAK9B,MAAMqG,QAAQ48C,WAAYzgD,UAEhDC,EAAAA,GAAAA,KAAC+J,EAAAA,EAAY,CACTnG,QAAS,CAACiD,KAAMxH,KAAK9B,MAAMqG,QAAQ68C,cAAez2C,QAAS3K,KAAK9B,MAAMqG,QAAQ88C,iBAAkBC,UAAWthD,KAAK9B,MAAMqG,QAAQg9C,oBAC9H18C,MAAO+7C,EAAM7qB,IACbprB,QAASi2C,EAAMY,cAAgB,YAC/BF,UAAS,GAAAx9C,OAAKi9C,EAAQ,MAAAj9C,OAAK88C,EAAMh8B,SAASU,WAAU,KAAAxhB,OAAI88C,EAAMh8B,SAAS+D,aAAY,QAVlFi4B,EAAMhiD,GAanB,GAAC,CAAAa,IAAA,cAAAC,MAED,SAAYA,EAAO+hD,GACf,GAAK/hD,EAME,IAAmB,aAAfA,EAAMqE,KAAqB,CAClC,IAAMiB,EAAOtF,EAAMgiD,YAAehiD,EAAMgiD,YAAYriD,OAAS,IAAMK,EAAMgiD,YAAYvvC,UAAU,EAAG,KAAO,MAAQzS,EAAMgiD,YAAe,WACtI,OAAID,EACOz8C,GAEArE,EAAAA,GAAAA,KAAA,QAAM2D,UAAWtE,KAAK9B,MAAMqG,QAAQo9C,UAAW98C,MAAOnF,EAAMgiD,YAAYhhD,SAAEsE,GAEzF,CAAO,QAAoBwJ,IAAhB9O,EAAMA,MACb,OAAI+hD,EACO,aAEA9gD,EAAAA,GAAAA,KAAA,QAAM2D,UAAWtE,KAAK9B,MAAMqG,QAAQq9C,eAAelhD,SAAC,cAE5D,GAAoB,OAAhBhB,EAAMA,MACb,OAAI+hD,EACO,QAEA9gD,EAAAA,GAAAA,KAAA,QAAM2D,UAAWtE,KAAK9B,MAAMqG,QAAQs9C,UAAUnhD,SAAC,SAEvD,GAAmB,WAAfhB,EAAMqE,KAAmB,CAChC,GAAI09C,EACA,OAAO/hD,EAAMA,MAEb,IAAMsF,EAAOtF,EAAMA,MAASA,EAAMA,MAAML,OAAS,IAAMK,EAAMA,MAAMyS,UAAU,EAAG,KAAO,MAAQzS,EAAMA,MAAS,GAC9G,OAAOS,EAAAA,GAAAA,MAAA,QAAMmE,UAAWtE,KAAK9B,MAAMqG,QAAQu9C,YAAaj9C,MAAOG,EAAKtE,SAAA,CAAC,IAAEsE,EAAK,MAEpF,CAAO,MAAmB,YAAftF,EAAMqE,KACT09C,EACO/hD,EAAMA,MAAMuN,YAEZtM,EAAAA,GAAAA,KAAA,QAAM2D,UAAWtE,KAAK9B,MAAMqG,QAAQw9C,aAAarhD,SAAEhB,EAAMA,MAAMuN,aAEpD,WAAfvN,EAAMqE,KACT09C,EACO9xC,KAAK8C,UAAU/S,EAAMA,QAErBiB,EAAAA,GAAAA,KAACqhD,KAAS,CACbC,iBAAiB,EACjB9gD,MAAO,CAACyc,gBAAiB,UAAW/R,UAAW,GAC/CrB,IAAK9K,EAAMA,MACXwiD,WAAS,EACT5+C,MAAgC,SAAzBtD,KAAK9B,MAAM+rB,UAAuB,SAAW,cACpDk4B,kBAAkB,IAInBziD,EAAMA,MAAMuN,UACvB,CApDI,OAAIw0C,EACO,QAEA9gD,EAAAA,GAAAA,KAAA,QAAM2D,UAAWtE,KAAK9B,MAAMqG,QAAQ69C,UAAU1hD,SAAC,QAkDlE,GAAC,CAAAjB,IAAA,oBAAAC,MAED,WAC4B,SAApBM,KAAK8/C,WACL9/C,KAAK8/C,YAAa,EACS,UAApB9/C,KAAK8/C,WACZ9/C,KAAK8/C,YAAa,EACS,SAApB9/C,KAAK8/C,WACZ9/C,KAAK8/C,WAAa,KACS,cAApB9/C,KAAK8/C,WACZ9/C,KAAK8/C,gBAAatxC,EAElB29B,WAAWnsC,KAAK8/C,YAAY7yC,aAAejN,KAAK8/C,aAChD9/C,KAAK8/C,WAAa3T,WAAWnsC,KAAK8/C,aAGtC9/C,KAAK9B,MAAMmkD,kBAAkB,CACzBC,aAActiD,KAAKrB,MAAM+gD,UAAU7gD,KACnC0jD,YAAa,EACbh5B,SAAU,CACN7pB,MAAOM,KAAK8/C,WACZS,iBAAkBvgD,KAAK8/C,YAE3B0C,YAAaxiD,KAAK9B,MAAMyhD,WAAW3/C,KAAK9B,MAAMgjD,cAAcsB,cAGhExiD,KAAKhB,SAAS,CAAC0gD,UAAW,OAC1B1/C,KAAK8/C,WAAa,IACtB,GAAC,CAAArgD,IAAA,qBAAAC,MAED,WAAsB,IAAD+iD,EAEG,QAApBA,EAAAziD,KAAK4/C,QAAQrgC,eAAO,IAAAkjC,GAApBA,EAAsBr+C,OAC1B,GAAC,CAAA3E,IAAA,cAAAC,MAED,SAAYgjD,EAASx7C,EAAMnD,GAAO,IAAD4+C,EAAAC,EAAAvvC,EAAA,KACvBwvC,GAAY7iD,KAAK9B,MAAMgjD,cAAgBh6C,EAAKxH,QAA8B,cAApBwH,EAAKxH,MAAMqE,MAA4C,WAApBmD,EAAKxH,MAAMqE,MAAyC,WAApBmD,EAAKxH,MAAMqE,MAAyC,YAApBmD,EAAKxH,MAAMqE,MAA4C,QAAZ,QAAV4+C,EAAAz7C,EAAKxH,aAAK,IAAAijD,OAAA,EAAVA,EAAYjjD,aAAwC8O,KAAZ,QAAVo0C,EAAA17C,EAAKxH,aAAK,IAAAkjD,OAAA,EAAVA,EAAYljD,QAEpOsH,EAAKhH,KAAKrB,MAAM+gD,WAAa1/C,KAAKrB,MAAM+gD,UAAU37C,OAASA,GAAQ/D,KAAKrB,MAAM+gD,UAAU7gD,OAASqI,EAAKrI,KACxG,EACI8B,EAAAA,GAAAA,KAAA,OAAgB2D,UAAWtE,KAAK9B,MAAMqG,QAAQ07C,cAAcv/C,SAAEwG,EAAKrI,MAA1D,SACT8B,EAAAA,GAAAA,KAAA,OAAa2D,UAAWtE,KAAK9B,MAAMqG,QAAQ27C,eAAex/C,SAAC,OAAlD,MACTC,EAAAA,GAAAA,KAACqK,EAAAA,EAAK,CACF6E,SAAU7P,KAAK4/C,QACf99C,OAAO,QACPi+C,OAAQ,kBAAM1sC,EAAK1U,MAAM+gD,WAAarsC,EAAKrU,SAAS,CAAC0gD,UAAW,MAAM,EACtExkB,aAAcl7B,KAAKogD,YAAYl5C,EAAKxH,OAAO,GAC3C4sC,QAAS,SAAA1qC,GACa,KAAdA,EAAE2qC,QACFl5B,EAAKgvC,oBACgB,KAAdzgD,EAAE2qC,SACTl5B,EAAKrU,SAAS,CAAC0gD,UAAW,MAElC,EACA/9C,SAAU,SAAAC,GAAC,OACPyR,EAAKysC,WAAal+C,EAAEC,OAAOnC,KAAK,EACpC0L,cACIzK,EAAAA,GAAAA,KAAC0K,GAAAA,EAAc,CAACC,SAAS,MAAK5K,UAC1BC,EAAAA,GAAAA,KAAC4K,EAAAA,EAAU,CAAC7I,QAAS,kBAAM2Q,EAAKgvC,mBAAmB,EAAEn9C,KAAK,SAAQxE,UAC9DC,EAAAA,GAAAA,KAACq/C,EAAAA,IAAS,WAO9B,EACIr/C,EAAAA,GAAAA,KAAA,OAAgB2D,UAAWtE,KAAK9B,MAAMqG,QAAQ07C,cAAep7C,MAAOhE,EAAAA,KAAAA,EAAO,+BAA+BH,SAAEwG,EAAKrI,MAAxG,SACT8B,EAAAA,GAAAA,KAAA,OAAa2D,UAAWtE,KAAK9B,MAAMqG,QAAQ27C,eAAex/C,SAAC,OAAlD,MACTP,EAAAA,GAAAA,MAAA,OAAemE,UAAWtE,KAAK9B,MAAMqG,QAAQ47C,eAAez/C,SAAA,CAAEV,KAAKogD,YAAYl5C,EAAKxH,OAAO,KAAGwH,EAAKxH,MAAMqE,KAAK,MAArG,QAIjB,OAAO5D,EAAAA,GAAAA,MAAA,MAAAO,SAAA,EACHC,EAAAA,GAAAA,KAAA,MAAI2D,UAAW0K,EAAAA,MAAAA,KAAWhP,KAAK9B,MAAMqG,QAAQ87C,UAAWrgD,KAAK9B,MAAMqG,QAAQ,aAAeR,IAAOrD,SAAEqD,KACnGpD,EAAAA,GAAAA,KAAA,MACI2D,UAAW0K,EAAAA,MAAAA,KAAWhP,KAAK9B,MAAMqG,QAAQ+7C,WAAYtgD,KAAK9B,MAAMgjD,cAAgB2B,GAAY7iD,KAAK9B,MAAMqG,QAAQu+C,oBAC/Gj4C,cAAe,WACPg4C,IACAxvC,EAAKysC,WAAa54C,EAAKxH,MAAMA,MAC7B2T,EAAKrU,SAAS,CACV0gD,UAAW,CACPgD,QAAAA,EACA3+C,KAAAA,EACAw8C,UAAWr5C,EAAKxH,MAAMqE,KACtBlF,KAAMqI,EAAKrI,KACXa,MAAOwH,EAAKxH,MAAMA,SAIlC,EAAEgB,SACJsG,MAAQ,GAAAlD,OAlBKC,EAAI,KAAAD,OAAI4+C,EAAO,KAAA5+C,OAAIoD,EAAKrI,MAoB/C,GAAC,CAAAY,IAAA,eAAAC,MAED,SAAakhD,GAAQ,IAAD9sC,EAAA,KAChB,GAAK8sC,EAEE,CAAC,IAADmC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAEC/1C,EAASrN,KAAKqjD,oBAEdjtC,EAAyB,QAApB2sC,EAAG/iD,KAAK9B,MAAMolD,cAAM,IAAAP,GAAO,QAAPC,EAAjBD,EAAmBQ,aAAK,IAAAP,GAAY,QAAZC,EAAxBD,EAA0BQ,kBAAU,IAAAP,OAAnB,EAAjBA,EAAsC51C,OAAO/K,KAAI,SAAA4E,GAAI,OAAI4M,EAAK2vC,YAAY3vC,EAAK5V,MAAMolD,OAAO1kD,GAAIsI,EAAM,QAAQ,IAM1H,OALAkP,GAASA,EAAMvP,SAAQ,SAAAK,GAAI,OAAImG,EAAOlG,KAAKD,EAAK,KAEhDkP,EAAyB,QAApB8sC,EAAGljD,KAAK9B,MAAMolD,cAAM,IAAAJ,GAAS,QAATC,EAAjBD,EAAmBQ,eAAO,IAAAP,GAAY,QAAZC,EAA1BD,EAA4BK,kBAAU,IAAAJ,OAArB,EAAjBA,EAAwC/1C,OAAO/K,KAAI,SAAA4E,GAAI,OAAI4M,EAAK2vC,YAAY3vC,EAAK5V,MAAMolD,OAAO1kD,GAAIsI,EAAM,UAAU,MACjHkP,EAAMvP,SAAQ,SAAAK,GAAI,OAAImG,EAAOlG,KAAKD,EAAK,KAEzCvG,EAAAA,GAAAA,KAAA,SAAOQ,MAAO,CAACC,MAAO,QAAQV,UACjCC,EAAAA,GAAAA,KAAA,SAAAD,SACK2M,KAGb,CAhBI,OAAO,IAiBf,GAAC,CAAA5N,IAAA,SAAAC,MAED,WAAU,IAAD+U,EAAA,KACL,OAAOtU,EAAAA,GAAAA,MAACwjD,IAAc,CAClBC,gBAAiB5jD,KAAK9B,MAAMqG,QAAQs/C,SACpCC,aAAc,EACdC,iBAAkB,IAClBC,eAAgB,IAChBC,UAAU,EACVC,qBAAsBlkD,KAAKy/C,WAC3B0E,0BAA2B,SAAAj/C,GAAI,OAAIuP,EAAKgrC,WAAatT,WAAWjnC,EAAK,EACrEk/C,UAAW,kBAAMjgD,OAAOyE,aAAauC,QAAQ,iBAAkBsJ,EAAKgrC,WAAWxyC,WAAW,EAACvM,SAAA,EAE3FC,EAAAA,GAAAA,KAAA,OAAKQ,MAAO,CAACC,MAAO,OAAQyE,OAAQ,OAAQsO,SAAU,QAAQzT,UAC1DC,EAAAA,GAAAA,KAACuJ,EAAAA,EAAI,CAAC3F,QAAS,CAACiD,KAAMxH,KAAK9B,MAAMqG,QAAQ8/C,UAAU3jD,SAC9CV,KAAK9B,MAAMyhD,WAAa3/C,KAAK9B,MAAMyhD,WAAWr9C,KAAI,SAACs+C,EAAO75C,GAAC,OACxD0N,EAAK6vC,oBAAoB1D,EAAO75C,EAAE,IAAI,UAGlD5G,EAAAA,GAAAA,MAAA,OAAKgB,MAAO,CAACC,MAAO,OAAQyE,OAAQ,OAAQsO,SAAU,QAAQzT,SAAA,EAC1DC,EAAAA,GAAAA,KAAA,OAAK2D,UAAWtE,KAAK9B,MAAMqG,QAAQggD,cAAc7jD,UAC7CC,EAAAA,GAAAA,KAAC4K,EAAAA,EAAU,CAACrG,KAAK,QAAQxC,QAAS,kBAAM+R,EAAKvW,MAAMsmD,iBAAgB,SAACz9C,EAAGG,GACnEuN,EAAKqrC,WAAa54C,EAAKrI,MAAQ,GAC/B4V,EAAKzV,SAAS,CACV0gD,UAAW,CACP37C,KAAM,aACNw8C,UAAW,SACXhzC,MAAOxG,EACPlI,KAAMqI,EAAKrI,KACXa,MAAOwH,EAAKrI,MAAQ,KAGhC,GAAE,EAAC6B,UAACC,EAAAA,GAAAA,KAACiZ,EAAAA,IAAO,SAEhBjZ,EAAAA,GAAAA,KAAA,OAAK2D,UAAWtE,KAAK9B,MAAMqG,QAAQkgD,mBAAmB/jD,SACjDV,KAAK9B,MAAMyhD,YAAc3/C,KAAK9B,MAAMyhD,WAAWtgD,QAAUW,KAAK0kD,aAAa1kD,KAAK9B,MAAMyhD,WAAW3/C,KAAK9B,MAAMgjD,sBAI7H,KAAC1B,CAAA,CA3TM,CAASz8C,IAAAA,WA6UpB,IAAeM,EAAAA,EAAAA,IArcA,SAAAC,GAAK,MAAK,CACrB69C,UAAW,CACP3jC,WAAY,EACZC,cAAe,GAEnB2jC,cAAe,CACXt/C,OAAQ,GAEZu/C,iBAAkB,CACd1+C,MAA8B,SAAvBW,EAAMsE,QAAQgV,KAAkB,OAAS,QAEpD2kC,mBAAoB,CAChBz7C,UAAW,SACX3C,SAAU,GACViM,QAAS,GACTsO,YAAapa,EAAM0C,QAAQ,IAG/Bq+C,SAAU,CACNnwC,QAAS,GAGbmsC,UAAW,CACP1/B,cAAe,MACf0+B,cAAe,YACfj+C,MAAO,IAEXujD,gBAAiB,CACbhiD,MAAO,WAEXiiD,kBAAmB,CACfjiD,MAAO,WAEXkiD,eAAgB,CACZliD,MAAO,WAEX29C,UAAW,CACP39C,MAAO,UACPvB,MAAO,oBACP6S,WAAY,SACZ6wC,aAAc,YAElBC,YAAa,CACT3jD,MAAO,IAEX0hD,mBAAoB,CAChBjuC,OAAQ,WAEZmwC,cAAe,CACXpnC,gBAAiB,OACjBjb,MAAO,SAEXkhD,SAAU,CACNziD,MAAO,OACPyE,OAAQ,oBACRsO,SAAU,SACVhR,SAAU,IAGdohD,cAAe,CACXnjD,MAAO,GACPwE,QAAS,eACTC,OAAQ,OACR8B,WAAmC,SAAvBrE,EAAMsE,QAAQgV,KAAkB,OAAS,OACrD+D,cAAe,OAEnB8jC,mBAAoB,CAChBrjD,MAAO,oBACPwE,QAAS,eACTC,OAAQ,OACR8a,cAAe,OAGnBs/B,cAAe,CACX78C,WAAY,OACZwC,QAAS,eACT+a,cAAe,OAEnBu/B,eAAgB,CACZt6C,QAAS,eACTjD,MAA8B,SAAvBW,EAAMsE,QAAQgV,KAAkB,OAAS,OAChD+D,cAAe,OAEnBw/B,eAAgB,CACZx/B,cAAe,MACf/a,QAAS,eACTjD,MAAO,UACPsR,WAAY,UAEhBusC,eAAgB,CACZtsC,QAAS,EACToF,MAAO,SAGXuoC,UAAW,CACPl/C,MAAO,WAEXi/C,eAAgB,CACZj/C,MAAO,WAEXm/C,YAAa,CACTn/C,MAAO,WAEXsiD,YAAa,CACTtiD,MAAO,WAEXo/C,aAAc,CACVp/C,MAAO,WAEXuiD,YAAa,CACTviD,MAAO,WAEXy/C,UAAW,CACPz/C,MAAO,WAEXg/C,UAAW,CACPh/C,MAAO,WAEd,GA+UD,CAAkC68C,IClW5B2F,GAAQ,SAAAtnD,IAAAC,EAAAA,EAAAA,GAAAqnD,EAAAtnD,GAAA,IAAAG,GAAAC,EAAAA,EAAAA,GAAAknD,GACV,SAAAA,EAAYjnD,GAAQ,IAADC,GAAAC,EAAAA,EAAAA,GAAA,KAAA+mD,IACfhnD,EAAAH,EAAAK,KAAA,KAAMH,IAwIVknD,aAAe,SAACxmD,EAAID,GAChB,IACI,IAAMwO,EAAOwC,KAAKC,MAAMjR,EAAMgU,KAC9B,GAAiB,eAAbxF,EAAKk4C,IACLlnD,EAAKD,MAAMgK,OAAOma,OAAOlkB,EAAKQ,MAAMG,SAAU,QAASX,EAAKD,MAAMonD,eAAiB,CAAC/G,WAAYpgD,EAAKD,MAAMsM,WAE/G,GAAiB,iBAAb2C,EAAKk4C,IAAwB,CAAC,IAADE,EAC7BpnD,EAAK0iD,aAAe1zC,EAAKkwC,SACzBl/C,EAAK4R,QAAQ5C,EAAKkwC,UAAYlwC,EAAKqI,OAC/BrI,EAAKqI,OAAOzL,WAAW,6BACvB5L,EAAK4R,QAAQ5C,EAAKkwC,UAAS,mBAAAv5C,OAAsBqJ,EAAKqI,OAAOrD,UAAU,KAChEhF,EAAKqI,OAAOzL,WAAW,eAC9B5L,EAAK4R,QAAQ5C,EAAKkwC,UAAYlwC,EAAKqI,OAAOrD,UAAU,IAGxD,IAAMqzC,EAAO71C,KAAKC,MAAMD,KAAK8C,UAAUtU,EAAKQ,MAAM6mD,OAClDA,EAAKr4C,EAAKkwC,UAAYl/C,EAAKD,MAAMonD,cAAgBn4C,EAAK4oB,IAAK53B,EAAKD,MAAMsM,IAAIzK,QAAQ,aAAc,IAEhG,IAAMgf,EAAE,GAAAjb,OAAMgb,KAAKyO,MAAK,KAAAzpB,OAAoB,IAAhBsxC,KAAKqQ,WACrB,QAAZF,EAAAp4C,EAAK22B,eAAO,IAAAyhB,OAAA,EAAZA,EAAc5F,aAAcxyC,EAAK22B,QAAQ6b,WAAW94C,SAAQ,SAACK,EAAMH,GAAC,OAAKG,EAAKtI,GAAKmgB,EAAKhY,CAAC,IAEzF5I,EAAKa,SAAS,CACV0mD,UAAU,EACVC,UAAU,EACVr7C,SAAUnM,EAAK0iD,aACfrrC,OAAQrX,EAAK4R,QAAQ5C,EAAKkwC,UAC1BmI,KAAAA,EACAtE,aAAc,EACd0E,SAAS,EACTtW,QAAQ,EACR1qB,SAAUzmB,EAAK0nD,YAAY14C,EAAK22B,SAChCA,QAAS32B,EAAK22B,UACf,kBACC3lC,EAAK2nD,mBAAkB,WACnB3nD,EAAK4nD,mBACL5nD,EAAK6nD,iBACT,GAAE,GACV,MAAO,GAAiB,WAAb74C,EAAKk4C,IAAkB,CAAC,IAADY,EAAAC,EACxBnnC,EAAE,GAAAjb,OAAMgb,KAAKyO,MAAK,KAAAzpB,OAAoB,IAAhBsxC,KAAKqQ,WACrB,QAAZQ,EAAA94C,EAAK22B,eAAO,IAAAmiB,OAAA,EAAZA,EAActG,aAAcxyC,EAAK22B,QAAQ6b,WAAW94C,SAAQ,SAACK,EAAMH,GAAC,OAAKG,EAAKtI,GAAKmgB,EAAKhY,CAAC,IACzF,IAAM6d,EAAWzmB,EAAK0nD,YAAY14C,EAAK22B,SACjC0hB,EAAO71C,KAAKC,MAAMD,KAAK8C,UAAUtU,EAAKQ,MAAM6mD,OAC5C7lD,EAAQwN,EAAK22B,QAAQ6b,WAAW,GAAG5pB,IAAIn2B,MAAM,uBACnD4lD,EAAK5gC,EAASy4B,WAAa19C,EAAM,IAAMA,EAAM,IAAII,QAAQ,aAAc,IAEvE,IAAM+S,EAAW,CACb0yC,KAAAA,EACAlW,QAAQ,EACR1qB,SAAAA,EACAs8B,aAAc,EACdpd,QAAS32B,EAAK22B,QACdqiB,MAAO,CAACvnD,IAAiB,QAAZsnD,EAAA/4C,EAAK22B,eAAO,IAAAoiB,OAAA,EAAZA,EAAcvG,aAAcxyC,EAAK22B,QAAQ6b,WAAW,IAAMxyC,EAAK22B,QAAQ6b,WAAW,GAAG/gD,IAAO,IAG7GkU,EAAS0C,YAA6ChH,IAApCrQ,EAAK4R,QAAQ6U,EAASy4B,UAA0Bx8C,EAAAA,KAAAA,EAAO,cAAgB1C,EAAK4R,QAAQ6U,EAASy4B,UAC/GvqC,EAASxI,SAAWsa,EAASy4B,SAE7Bl/C,EAAKa,SAAS8T,GAAU,WACpB3U,EAAK4nD,mBACL5nD,EAAK6nD,kBACA7nD,EAAK4R,QAAQ6U,EAASy4B,WACvBl/C,EAAKioD,eAAe,CAACf,IAAK,SAAUhI,SAAUz4B,EAASy4B,UAE/D,GACJ,MAAO,GAAiB,WAAblwC,EAAKk4C,IACZlnD,EAAK4R,QAAQ5C,EAAKkwC,UAAYlwC,EAAKnI,KAC/B7G,EAAKQ,MAAM2L,WAAa6C,EAAKkwC,UAC7Bl/C,EAAKa,SAAS,CAACwW,OAAQrX,EAAK4R,QAAQ5C,EAAKkwC,iBAE1C,GAAiB,YAAblwC,EAAKk4C,IACZlnD,EAAKa,SAAS,CAACswC,QAAQ,SACpB,GAAiB,QAAbniC,EAAKk4C,IACZ,GAA4B,YAAxBlnD,EAAKQ,MAAM0nD,SAAwB,CACnCloD,EAAKkJ,QAAU,KACf,IAAMA,GAAO8L,EAAAA,EAAAA,GAAOhV,EAAKQ,MAAM0I,SAC/BA,EAAQF,KAAK,CAACnC,KAAMmI,EAAKnI,KAAM2Z,SAAUxR,EAAKwR,SAAUI,GAAI5R,EAAK4R,KACjE5gB,EAAKa,SAAS,CAACqI,QAAAA,GACnB,KAC0B,UAAlB8F,EAAKwR,SACLxgB,EAAKa,SAAS,CAACsnD,UAAWnoD,EAAKQ,MAAM2nD,UAAY,IACxB,SAAlBn5C,EAAKwR,SACZxgB,EAAKa,SAAS,CAACunD,YAAapoD,EAAKQ,MAAM4nD,YAAc,IAErDpoD,EAAKa,SAAS,CAACwnD,KAAMroD,EAAKQ,MAAM6nD,KAAO,IAE3CroD,EAAKkJ,QAAUlJ,EAAKkJ,UAAO8L,EAAAA,EAAAA,GAAQhV,EAAKQ,MAAM0I,SAC9ClJ,EAAKkJ,QAAQF,KAAK,CAACnC,KAAMmI,EAAKnI,KAAM2Z,SAAUxR,EAAKwR,SAAUI,GAAI5R,EAAK4R,UAEvE,GAAiB,UAAb5R,EAAKk4C,IACZlnD,EAAKa,SAAS,CAACqH,MAAO8G,EAAK9G,aACxB,GAAiB,aAAb8G,EAAKk4C,KAAmC,iBAAbl4C,EAAKk4C,IACvClnD,EAAKa,SAAS,CACV2mD,UAAU,EACVD,UAAU,EACVE,SAAS,SAEV,GAAiB,OAAbz4C,EAAKk4C,IAAc,CAC1B,IAAMphC,EAActU,KAAKC,MAAMD,KAAK8C,UAAUtU,EAAKQ,MAAMslB,cACrDvR,GAAU,EACdvF,EAAK8W,YAAYtb,QAAO,SAAAkgB,GAAE,OAAIA,CAAE,IAAEhiB,SAAQ,SAAAgiB,GACtC,IAAMrM,EAAQyH,EAAYhd,MAAK,SAAAC,GAAI,OAC/BA,EAAK0d,SAASy4B,WAAax0B,EAAGjE,SAASy4B,UAAYn2C,EAAK0d,SAASU,aAAeuD,EAAGjE,SAASU,UAAU,IACrG9I,IACD9J,GAAU,EACVuR,EAAY9c,KAAK0hB,GAEzB,IACAnW,GAAWvO,OAAOyE,aAAauC,QAAQ,uBAAyBhN,EAAKD,MAAMsM,IAAKmF,KAAK8C,UAAUwR,IAC/FvR,GAAWvU,EAAKa,SAAS,CAACilB,YAAAA,GAC9B,MAAO,GAAiB,OAAb9W,EAAKk4C,IAAc,CAC1B,IAAMphC,EAActU,KAAKC,MAAMD,KAAK8C,UAAUtU,EAAKQ,MAAMslB,cACrDvR,GAAU,EAEdvF,EAAK8W,YAAYtb,QAAO,SAAA/J,GAAE,YAAW4P,IAAP5P,GAA2B,OAAPA,CAAW,IAAEiI,SAAQ,SAAAjI,GACnE,IAAM4d,EAAQyH,EAAYhd,MAAK,SAAAC,GAAI,OAAIA,EAAKtI,KAAOA,CAAE,IACrD,GAAI4d,EAAO,CACP,IAAM5J,EAAMqR,EAAY7d,QAAQoW,GAChCyH,EAAYtd,OAAOiM,EAAK,GACxBF,GAAU,CACd,CACJ,IACAA,GAAWvO,OAAOyE,aAAauC,QAAQ,uBAAyBhN,EAAKD,MAAMsM,IAAKmF,KAAK8C,UAAUwR,IAC/FvR,GAAWvU,EAAKa,SAAS,CAACilB,YAAAA,GAC9B,MAAO,GAAiB,UAAb9W,EAAKk4C,IAAiB,CAE7B,IAAM9B,EAAQp2C,EAAKm2C,OAAOr8C,MAAK,SAAAk/C,GAAK,MAAmB,UAAfA,EAAMpiD,IAAgB,KAAK,KAC7D2/C,EAAUv2C,EAAKm2C,OAAOr8C,MAAK,SAAAk/C,GAAK,MAAmB,YAAfA,EAAMpiD,IAAkB,KAAK,KAEvEsD,QAAQC,IAAIqI,KAAK8C,UAAUixC,IAE3BvlD,EAAKa,SAAS,CAACskD,OAAQ,CAACC,MAAAA,EAAOG,QAAAA,EAAS9kD,GAAG,GAADkF,OAAK3F,EAAKQ,MAAMwnD,MAAMvnD,GAAE,KAAAkF,OAAI3F,EAAKQ,MAAMuiD,gBACrF,MAAO,GAAiB,aAAb/zC,EAAKk4C,IAAoB,CAChC,IACIn+C,EADEo8C,EAAS3zC,KAAKC,MAAMD,KAAK8C,UAAUtU,EAAKQ,MAAM2kD,UAGhDp8C,EADqB,IAArBiG,EAAKo1C,YACEe,EAAOC,OAASD,EAAOC,MAAMC,YAAcF,EAAOC,MAAMC,WAAWn2C,QAAUi2C,EAAOC,MAAMC,WAAWn2C,OAAOpG,MAAK,SAAAC,GAAI,OAAIA,EAAKrI,OAASsO,EAAKm1C,YAAY,IAExJgB,EAAOI,SAAWJ,EAAOI,QAAQF,YAAcF,EAAOI,QAAQF,WAAWn2C,QAAUi2C,EAAOI,QAAQF,WAAWn2C,QAAUi2C,EAAOI,QAAQF,WAAWn2C,OAAOpG,MAAK,SAAAC,GAAI,OAAIA,EAAKrI,OAASsO,EAAKm1C,YAAY,OAG3Mp7C,EAAKxH,MAAMA,MAAQyN,EAAKoc,SAAS7pB,MACjCvB,EAAKa,SAAS,CAACskD,OAAAA,IAEvB,MAAO,GAAiB,gBAAbn2C,EAAKk4C,IAAuB,CAEnC,IAAI3E,EAAc/wC,KAAKC,MAAMD,KAAK8C,UAAUtU,EAAKQ,MAAM+hD,cACnDhuC,GAAU,EACdvF,EAAKuzC,YAAY75C,SAAQ,SAAAK,GACrB,IAAMu/C,EAAa/F,EAAYz5C,MAAK,SAAA4G,GAAE,OAAIA,EAAGhP,OAASqI,EAAKrI,IAAI,IAC3D4nD,IACA/zC,GAAU,EACV+zC,EAAW/mD,MAAQwH,EAAKmG,OAEhC,IACAqF,GAAWvU,EAAKa,SAAS,CAAC0hD,YAAAA,IAE1Br5C,QAAQC,IAAI,gBAAkBqI,KAAK8C,UAAUtF,GACjD,MAAO,GAAiB,2BAAbA,EAAKk4C,IAAkC,CAAC,IAADqB,EAAAC,EAAAC,EAAAC,EACF,KAAxB,QAAhBH,EAAAv5C,EAAK8W,mBAAW,IAAAyiC,GAAW,QAAXC,EAAhBD,EAAkBI,iBAAS,IAAAH,OAAX,EAAhBA,EAA6BtnD,QAC7BlB,EAAKioD,eAAe,CAACniC,YAAa9W,EAAK8W,YAAY6iC,UAAWzB,IAAK,OAC3C,QAAjBuB,EAACz5C,EAAK8W,mBAAW,IAAA2iC,GAAW,QAAXC,EAAhBD,EAAkBE,iBAAS,IAAAD,GAA3BA,EAA6BxnD,OAGrClB,EAAKa,SAAS,CAAC+nD,iBAAkB55C,EAAK8W,YAAY6iC,YAFlD3iD,OAAO6iD,MAAM,aAIrB,MACI3/C,QAAQhB,MAAM,oBAADvC,OAAqB6L,KAAK8C,UAAUtF,IAEzD,CAAE,MAAOvL,GAET,CACJ,EAlTI,IAAIqiB,EAAc9f,OAAOyE,aAAaC,QAAQ,uBAAyB1K,EAAKD,MAAMsM,KAClF,IACIyZ,EAAcA,EAActU,KAAKC,MAAMqU,GAAe,EAC1D,CAAE,MAAOriB,GACLqiB,EAAc,EAClB,CAEA,IAAIy8B,EAAcv8C,OAAOyE,aAAaC,QAAQ,yBAA2B1K,EAAKD,MAAMsM,KACpF,IAEIk2C,GADAA,EAAcA,EAAc/wC,KAAKC,MAAM8wC,GAAe,IAC5Bp+C,KAAI,SAAAzD,GAAI,MAAK,CAACA,KAAAA,EAAK,GACjD,CAAE,MAAO+C,GACL8+C,EAAc,EAClB,CA6ByB,OA3BzBviD,EAAK8oD,SAAW9iD,OAAOyE,cAAeujC,WAAWhoC,OAAOyE,aAAaC,QAAQ,kBAA0B,IAEvG1K,EAAKQ,MAAQ,CACT+mD,UAAU,EACVp7C,SAAU,KACVk7C,KAAM,CAAC,EACPhwC,OAAQ,GACRyO,YAAAA,EACAy8B,YAAAA,EACApD,SAAS,EACTj3C,MAAO,GACPu/C,SAAS,EACTtW,QAAQ,EACR1qB,SAAU,KACVyhC,SAAUliD,OAAOyE,aAAaC,QAAQ,yBAA2B,UACjEq+C,gBAAqF,SAApE/iD,OAAOyE,aAAaC,QAAQ,oCAC7CxB,QAAS,GACTs+C,UAAU,EACVzE,aAAc,EACdoC,OAAQ,CAAC,EACTyD,iBAAkB,KAClBT,UAAW,EACXC,YAAa,EACbC,KAAM,GAGVroD,EAAK4R,QAAU,CAAC,EAChB5R,EAAK0iD,aAAe,KAAK1iD,CAC7B,CA2nBC,OA3nBAqB,EAAAA,EAAAA,GAAA2lD,EAAA,EAAA1lD,IAAA,oBAAAC,MAED,WAAqB,IAADQ,EAAA,KAChB,IAAI6T,SAAQ,SAAAC,GACJ9T,EAAKhC,MAAMonD,cACXtxC,EAAQ9T,EAAKhC,MAAMonD,cAAcxmD,UAEjCoB,EAAKhC,MAAMgK,OAAOC,UAAUjI,EAAKhC,MAAMsM,KAClCpC,MAAK,SAAAC,GAAG,IAAAwvB,EAAAsvB,EAAA,OAAInzC,EAAW,OAAH3L,QAAG,IAAHA,GAAW,QAARwvB,EAAHxvB,EAAKC,cAAM,IAAAuvB,GAAQ,QAARsvB,EAAXtvB,EAAajqB,cAAM,IAAAu5C,OAAhB,EAAHA,EAAqBpnD,QAAQ,kBAAmB,IAAI,GAErF,IACKqI,MAAK,SAAAtJ,GAAQ,OACVoB,EAAKlB,SAAS,CAAEF,SAAAA,IAAY,WACpBoB,EAAKvB,MAAMG,UACXoB,EAAKhC,MAAMgK,OAAOlJ,SAAS,GAAD8E,OAAI5D,EAAKvB,MAAMG,SAAQ,eAAe,CAAE6T,IAAK,wBAAyBo5B,KAAK,IAErGrqC,YAAW,kBACPxB,EAAKhC,MAAMgK,OAAOqK,eAAe,GAADzO,OAAI5D,EAAKvB,MAAMG,SAAQ,eAAeoB,EAAKklD,aAAa,GAAE,MAE9FllD,EAAKlB,SAAS,CAAEqH,MAAO,oBAE/B,GAAE,GACd,GAAC,CAAA5G,IAAA,uBAAAC,MAED,WACQM,KAAKrB,MAAMG,WACXkB,KAAK9B,MAAMgK,OAAOsK,iBAAiB,GAAD1O,OAAI9D,KAAKrB,MAAMG,SAAQ,eAAekB,KAAKolD,cAC7EplD,KAAK9B,MAAMgK,OAAOma,OAAOriB,KAAKrB,MAAMG,SAAU,aAEtD,GAAC,CAAAW,IAAA,iBAAAC,MAED,SAAe2lD,GACXrlD,KAAK9B,MAAMgK,OAAOlJ,SAAS,GAAD8E,OAAI9D,KAAKrB,MAAMG,SAAQ,aAAa,CAAE6T,IAAKhD,KAAK8C,UAAU4yC,GAAMtZ,KAAK,GACnG,GAAC,CAAAtsC,IAAA,oBAAAC,MAED,SAAkBoS,GAAK,IAAD1M,EAAA,KAClB,GAAIpF,KAAKrB,MAAMslB,YAAY5kB,OAAQ,CAC/B,IAAI4kB,EAActU,KAAKC,MAAMD,KAAK8C,UAAUzS,KAAKrB,MAAMslB,cACvDA,EAAcA,EAAY3hB,KAAI,SAAA4E,GAAI,OAAIA,EAAK0d,QAAQ,IACnD5kB,KAAKhB,SAAS,CAACilB,YAAa,KAAK,WAC7B7e,EAAKghD,eAAe,CAACniC,YAAAA,EAAaohC,IAAK,OACnCjgD,EAAKzG,MAAMuoD,iBACX9hD,EAAKghD,eAAe,CAACf,IAAK,kBAAmB1mD,OAAO,IAGxDmT,GAAMA,GACV,GACJ,MAAW9R,KAAKrB,MAAMuoD,iBAClBlnD,KAAKomD,eAAe,CAACf,IAAK,kBAAmB1mD,OAAO,IACpDmT,GAAMA,KAENA,GAAMA,GAEd,GAAC,CAAArS,IAAA,cAAAC,MAED,SAAYokC,GACR,GAAIA,EAAQ6b,WAER,OADc7b,EAAQ6b,WAAW,GACpB/6B,QAErB,GAAC,CAAAnlB,IAAA,mBAAAC,MAED,WAAoB,IAAD0nD,EACTxG,GAA0B,QAAlBwG,EAAApnD,KAAKrB,MAAMmlC,eAAO,IAAAsjB,OAAA,EAAlBA,EAAoBzH,aAAc3/C,KAAKrB,MAAMmlC,QAAQ6b,WAAW3/C,KAAKrB,MAAMuiD,cACzF,GAAIN,EAAO,CACP,IAAM0C,EAAS1C,EAAMyG,WAAW1+C,QAAO,SAAAw9C,GAAK,MAAmB,WAAfA,EAAMpiD,IAAiB,IACnEu/C,EAAOjkD,OACPW,KAAKomD,eAAe,CAACf,IAAK,QAAS/B,OAAAA,KAC5BtjD,KAAKrB,MAAM2kD,OAAOgE,QAAUtnD,KAAKrB,MAAM2kD,OAAOC,OAASvjD,KAAKrB,MAAM2kD,OAAOI,UAChF1jD,KAAKhB,SAAS,CAACskD,OAAQ,CAAC,GAEhC,CACJ,GAAC,CAAA7jD,IAAA,kBAAAC,MAED,SAAgBqH,GAAI,IAADwgD,EACXvnD,KAAKrB,MAAM+hD,YAAYrhD,QAA4B,QAAtBkoD,EAAIvnD,KAAKrB,MAAMmlC,eAAO,IAAAyjB,GAAlBA,EAAoB5H,YAAc3/C,KAAKrB,MAAMmlC,QAAQ6b,WAAW3/C,KAAKrB,MAAMuiD,qBAClG1yC,IAANzH,EACA/G,KAAKomD,eAAe,CAChBf,IAAK,cACL3E,YAAa,CAAC1gD,KAAKrB,MAAM+hD,YAAY35C,IACrCy7C,YAAaxiD,KAAKrB,MAAMmlC,QAAQ6b,WAAW3/C,KAAKrB,MAAMuiD,cAAcsB,cAGxExiD,KAAKomD,eAAe,CAChBf,IAAK,cACL3E,YAAa1gD,KAAKrB,MAAM+hD,YACxB8B,YAAaxiD,KAAKrB,MAAMmlC,QAAQ6b,WAAW3/C,KAAKrB,MAAMuiD,cAAcsB,cAIpF,GAAC,CAAA/iD,IAAA,oBAAAC,MA+KD,SAAkBklB,GACd,IAAIijB,EAAO7nC,KAAKrB,MAAM6W,OAAO5V,MAAM,WAAWglB,EAASU,YACnDkiC,EAAQ,GAQZ,OAPI5iC,EAAS+D,cAAgB,IACzBkf,EAAOA,EAAK11B,UAAUyS,EAAS+D,aAAe,GAAI/D,EAAS+D,aAAe,IAC1E6+B,EAAQ,GAAGpqB,SAAS,GAAI,KAAO,WAE/ByK,EAAOA,EAAK11B,UAAU,EAAG,GAAKyS,EAAS+D,cACvC6+B,EAAQ,GAAGpqB,SAASxY,EAAS+D,aAAc,KAAO,UAE/C,EACHhoB,EAAAA,GAAAA,KAAA,OAAgB2D,UAAWtE,KAAK9B,MAAMqG,QAAQkjD,UAAU/mD,SAAEmnC,GAAjD,SACTlnC,EAAAA,GAAAA,KAAA,OAAiB2D,UAAW0K,EAAAA,MAAAA,KAAWhP,KAAK9B,MAAMqG,QAAQkjD,UAAWznD,KAAK9B,MAAMqG,QAAQijD,OAAO9mD,SAAE8mD,GAAxF,SAEjB,GAAC,CAAA/nD,IAAA,yBAAAC,MAED,WAA0B,IAAD2F,EAAA,KACrB,OAAIrF,KAAKrB,MAAMooD,kBACJ5mD,EAAAA,GAAAA,MAACC,EAAAA,EAAM,CAAC7B,QAAS,kBAAM8G,EAAKrG,SAAS,CAAE+nD,iBAAkB,MAAO,EAAE,kBAAgB,kBAAkBtmD,MAAM,EAAGC,SAAA,EAChHC,EAAAA,GAAAA,KAACC,EAAAA,EAAW,CAAChC,GAAG,kBAAiB8B,SAAEG,EAAAA,KAAAA,EAAO,wBAC1CF,EAAAA,GAAAA,KAACuJ,EAAAA,EAAI,CAAAxJ,SACAV,KAAKrB,MAAMooD,iBAAiBzkD,KAAI,SAACumB,EAAI9hB,GAAC,OACnCpG,EAAAA,GAAAA,KAACqgD,GAAAA,EAAc,CACXz8C,QAAS,CAACiD,KAAMnC,EAAKnH,MAAMqG,QAAQmjD,YACnC7wC,OAAK,EACLnU,QAAS,WACL2C,EAAK+gD,eAAe,CAACniC,YAAa,CAAC4E,GAAKw8B,IAAK,OAC7ChgD,EAAKrG,SAAS,CAAC+nD,iBAAkB,MACrC,EAAErmD,UAEFC,EAAAA,GAAAA,KAAC+J,EAAAA,EAAY,CACTnG,QAAS,CAACoG,QAAStF,EAAKnH,MAAMqG,QAAQojD,cAAerG,UAAWj8C,EAAKnH,MAAMqG,QAAQqjD,iBACnFj9C,QAAStF,EAAKwiD,kBAAkBh/B,MAH/B9hB,EAKQ,SAKtB,IAEf,GAAC,CAAAtH,IAAA,cAAAC,MAED,WAAe,IAAD4F,EAAA,KACV,OAAItF,KAAKrB,MAAM0H,OACJ1F,EAAAA,GAAAA,KAACyG,GAAW,CAAmB7I,QAAS,kBAAM+G,EAAKtG,SAAS,CAAEqH,MAAO,IAAK,EAAErB,KAAMhF,KAAKrB,MAAM0H,OAA5E,eAEjB,IAEf,GAAC,CAAA5G,IAAA,WAAAC,MAED,SAASd,EAAIgD,GACTA,GAAKA,EAAEsR,kBACP,IAAMsyC,EAAO71C,KAAKC,MAAMD,KAAK8C,UAAUzS,KAAKrB,MAAM6mD,cAC3CA,EAAK5mD,GACZ,IAAMkU,EAAW,CAAC0yC,KAAAA,EAAMhwC,OAAQxV,KAAK+P,QAAQ/P,KAAK6gD,cAAev2C,SAAUtK,KAAK6gD,cAC5E7gD,KAAKrB,MAAMimB,UAAY5kB,KAAKrB,MAAMimB,SAASy4B,WAAar9C,KAAK6gD,eAC7D/tC,EAAS8R,SAAW,MAExB5kB,KAAKhB,SAAS8T,EAClB,GAAC,CAAArT,IAAA,aAAAC,MAED,WAAc,IAAD2T,EAAA,KACHtR,GAAY/B,KAAKrB,MAAM6mD,OAASxlD,KAAKrB,MAAMinD,QACjD,OAAOjlD,EAAAA,GAAAA,KAACs8C,GAAAA,EAAI,CACR9yC,UAAW,MACX29C,eAAe,UACf3mD,MAAO,CAAEmK,SAAU,WAAYlK,MAAO,qBAAsBwE,QAAS,gBACrElG,MAAOM,KAAKrB,MAAM2L,SAClB3I,SAAU,SAACtB,EAAOX,GACV2T,EAAKtD,QAAQrQ,GACb2T,EAAKrU,SAAS,CAACsL,SAAU5K,EAAO8V,OAAQnC,EAAKtD,QAAQrQ,KAErD2T,EAAKrU,SAAS,CAACsL,SAAU5K,EAAO8V,OAAQ,eAAe,kBACnDnC,EAAK+yC,eAAe,CAACf,IAAK,SAAUhI,SAAU39C,GAAO,GAEjE,EACAqoD,cAAc,OAAMrnD,SAEnB+M,OAAOC,KAAK1N,KAAKrB,MAAM6mD,MAAQ,IAC3BljD,KAAI,SAAA1D,GACD,IAAI0C,EAAQ1C,EACRiG,EAAQwO,EAAK1U,MAAM6mD,KAAK5mD,IAAO,GASnC,OARIyU,EAAK1U,MAAM6mD,KAAK5mD,KAChB0C,EAAQ+R,EAAK1U,MAAM6mD,KAAK5mD,GAAIgB,MAAM,KAAKC,OAE3CyB,EAAQ,EACJX,EAAAA,GAAAA,KAAA,OAAgB2D,UAAW0K,EAAAA,MAAAA,KAAWqE,EAAKnV,MAAMqG,QAAQyjD,SAAStnD,SAAEY,GAA3D,QACT1C,IAAOyU,EAAKwtC,eAAgBlgD,EAAAA,GAAAA,KAAA,QAAiB2D,UAAW+O,EAAKnV,MAAMqG,QAAQ0jD,YAAYvnD,UACnFC,EAAAA,GAAAA,KAAC6K,EAAAA,IAAS,CAAa9I,QAAS,SAAAd,GAAC,OAAIyR,EAAK60C,SAAStpD,EAAIgD,EAAE,EAAEuB,SAAS,SAArD,UADmB,UAGnCxC,EAAAA,GAAAA,KAACu8C,GAAAA,EAAG,CAACn7C,SAAUA,EAAUwC,QAAS,CAACiD,KAAM6L,EAAKnV,MAAMqG,QAAQ4jD,SAAU7mD,MAAOA,EAAOuD,MAAOA,EAAgBnF,MAAOd,GAAXA,EAClH,KAEZ,GAAC,CAAAa,IAAA,WAAAC,MAED,WACIM,KAAKomD,eAAe,CAACf,IAAK,QAC9B,GAAC,CAAA5lD,IAAA,UAAAC,MAED,WACIM,KAAKomD,eAAe,CAACf,IAAK,SAC9B,GAAC,CAAA5lD,IAAA,SAAAC,MAED,WACIM,KAAKomD,eAAe,CAACf,IAAK,QAC9B,GAAC,CAAA5lD,IAAA,WAAAC,MAED,WACIM,KAAKomD,eAAe,CAACf,IAAK,QAC9B,GAAC,CAAA5lD,IAAA,YAAAC,MAED,WACIM,KAAKomD,eAAe,CAACf,IAAK,OAC9B,GAAC,CAAA5lD,IAAA,YAAAC,MAED,WAAa,IAADoU,EAAA,KACR9T,KAAKhB,SAAS,CAAC4mD,SAAS,EAAOF,UAAU,IAAO,kBAC5C5xC,EAAK5V,MAAMgK,OAAOma,OAAOvO,EAAKnV,MAAMG,SAAU,QAASgV,EAAK5V,MAAMonD,eAAiB,CAAC/G,WAAYzqC,EAAK5V,MAAMsM,KAAK,GACxH,GAAC,CAAA/K,IAAA,oBAAAC,MAED,WAAqB,IAAD+U,EAAA,KACVyyC,GAAmBlnD,KAAKrB,MAAMuoD,gBACpC/iD,OAAOyE,aAAauC,QAAQ,mCAAoC+7C,EAAkB,OAAS,SAC3FlnD,KAAKhB,SAAS,CAACkoD,gBAAAA,IAAkB,kBAC7BzyC,EAAK2xC,eAAe,CAACf,IAAK,kBAAmB1mD,MAAOuoD,GAAiB,GAC7E,GAAC,CAAAznD,IAAA,gBAAAC,MAED,WAAiB,IAAD2W,EAAA,KACNtU,GAAY/B,KAAKrB,MAAMinD,QAC7B,OACIzlD,EAAAA,GAAAA,MAACioD,GAAAA,EAAO,CAAClnD,QAAQ,QAAQoD,UAAWtE,KAAK9B,MAAMqG,QAAQ+W,QAAQ5a,SAAA,EAC3DC,EAAAA,GAAAA,KAAC4K,EAAAA,EAAU,CACPjH,UAAWtE,KAAK9B,MAAMqG,QAAQ8jD,cAC9BtmD,SAAUA,EACVW,QAAS,kBAAM2T,EAAKiyC,WAAW,EAC/BzjD,MAAOhE,EAAAA,KAAAA,EAAO,WACdqE,KAAK,SAAQxE,UAACC,EAAAA,GAAAA,KAAC4nD,EAAAA,IAAW,OAEzBvoD,KAAKrB,MAAMgnD,UAAY3lD,KAAKrB,MAAM2wC,QAC/B3uC,EAAAA,GAAAA,KAAC4K,EAAAA,EAAU,CACPjH,UAAWtE,KAAK9B,MAAMqG,QAAQikD,UAC9BzmD,SAAUA,EACVW,QAAS,kBAAM2T,EAAKoyC,UAAU,EAC9B5jD,MAAOhE,EAAAA,KAAAA,EAAO,oBACdqE,KAAK,SAAQxE,UAACC,EAAAA,GAAAA,KAAC+nD,EAAAA,IAAO,OAEzB1oD,KAAKrB,MAAMgnD,WAAYhlD,EAAAA,GAAAA,KAAC4K,EAAAA,EAAU,CAC/BxJ,SAAUA,EACVuC,UAAWtE,KAAK9B,MAAMqG,QAAQokD,YAC9BjmD,QAAS,kBAAM2T,EAAKuyC,SAAS,EAC7B/jD,MAAOhE,EAAAA,KAAAA,EAAO,mBACdqE,KAAK,SAAQxE,UAACC,EAAAA,GAAAA,KAAC+S,EAAAA,IAAS,OAElC1T,KAAKrB,MAAMgnD,WAAYhlD,EAAAA,GAAAA,KAAC4K,EAAAA,EAAU,CAChCjH,UAAWtE,KAAK9B,MAAMqG,QAAQskD,WAC9B9mD,SAAUA,IAAa/B,KAAKrB,MAAM2wC,OAClC5sC,QAAS,kBAAM2T,EAAKyyC,QAAQ,EAC5BjkD,MAAOhE,EAAAA,KAAAA,EAAO,mBACdqE,KAAK,SAAQxE,UAACC,EAAAA,GAAAA,KAACooD,EAAAA,IAAQ,OACzB/oD,KAAKrB,MAAMgnD,WAAYhlD,EAAAA,GAAAA,KAAC4K,EAAAA,EAAU,CAChCjH,UAAWtE,KAAK9B,MAAMqG,QAAQykD,WAC9BjnD,SAAUA,IAAa/B,KAAKrB,MAAM2wC,OAClC5sC,QAAS,kBAAM2T,EAAK4yC,UAAU,EAC9BpkD,MAAOhE,EAAAA,KAAAA,EAAO,sBACdqE,KAAK,SAAQxE,UAACC,EAAAA,GAAAA,KAACuoD,EAAAA,IAAQ,OACzBlpD,KAAKrB,MAAMgnD,WAAYhlD,EAAAA,GAAAA,KAAC4K,EAAAA,EAAU,CAChCjH,UAAWtE,KAAK9B,MAAMqG,QAAQ4kD,UAC9BpnD,SAAUA,IAAa/B,KAAKrB,MAAM2wC,OAClC5sC,QAAS,kBAAM2T,EAAK+yC,WAAW,EAC/BvkD,MAAOhE,EAAAA,KAAAA,EAAO,0BACdqE,KAAK,SAAQxE,UAACC,EAAAA,GAAAA,KAAC0oD,EAAAA,IAAO,OACxBrpD,KAAKrB,MAAMgnD,WAAYhlD,EAAAA,GAAAA,KAAC4K,EAAAA,EAAU,CAChCjH,UAAWtE,KAAK9B,MAAMqG,QAAQ+kD,gBAC9B3mD,MAAO3C,KAAKrB,MAAMuoD,gBAAkB,UAAY,UAChDnlD,SAAUA,IAAa/B,KAAKrB,MAAM2wC,OAClC5sC,QAAS,kBAAM2T,EAAKkzC,mBAAmB,EACvC1kD,MAAOhE,EAAAA,KAAAA,EAAO,qBACdqE,KAAK,SAAQxE,UAACC,EAAAA,GAAAA,KAAC6oD,EAAAA,IAAa,MAC/BxpD,KAAKypD,eAhD0D,WAmD5E,GAAC,CAAAhqD,IAAA,yBAAAC,MAED,SAAuBmpB,GACnB,IAAM6uB,GAAGjtB,EAAAA,GAAAA,IAAAA,EAAAA,GAAAA,GAAA,GAAO5B,GAAE,IAAEF,aAAc,MAClC3oB,KAAKomD,eAAe,CAACf,IAAK,yBAA0B9Z,MAAO1iB,EAAI6uB,IAAAA,GACnE,GAAC,CAAAj4C,IAAA,mBAAAC,MAED,SAAiB4lB,GAAa,IAAD1O,EAAA,KACrBiS,EAAK7oB,KAAKrB,MAAMslB,YAAYhd,MAAK,SAAAC,GAAI,OAAIA,EAAK0d,SAASy4B,WAAazmC,EAAKjY,MAAM2L,UAAYpD,EAAK0d,SAASU,aAAeA,CAAU,IACtI,GAAIuD,EAAI,CACJ,IAAM5E,EAActU,KAAKC,MAAMD,KAAK8C,UAAUzS,KAAKrB,MAAMslB,cACzDjkB,KAAKhB,SAAS,CAACilB,YAAAA,IAAc,kBACzBrN,EAAKwvC,eAAe,CAACniC,YAAa,CAAC4E,EAAGjqB,IAAKymD,IAAK,MAAM,GAC9D,MACIx8B,EAAK,CAACw0B,SAAUr9C,KAAKrB,MAAM2L,SAAUgb,WAAAA,EAAYqD,aAAc,GAC/D3oB,KAAK0pD,uBAAuB7gC,EAEpC,GAAC,CAAAppB,IAAA,aAAAC,MAED,WAAc,IAADsX,EAAA,KACT,GAAIhX,KAAKrB,MAAM6W,QAAUxV,KAAKrB,MAAMinD,QAAS,CACzC,IAAM3hC,EAAcjkB,KAAKrB,MAAMslB,YAAYtb,QAAO,SAAAkgB,GAAE,OAAIA,EAAGjE,SAASy4B,WAAarmC,EAAKrY,MAAM2L,QAAQ,IAEpG,OAAO3J,EAAAA,GAAAA,KAAC09C,GAAM,CACVptC,iBAAkBjR,KAAK9B,MAAM+S,iBAC7B/I,OAAQlI,KAAK9B,MAAMgK,OACnBivB,YAAan3B,KAAK9B,MAAMi5B,YACxBonB,WAAYv+C,KAAKrB,MAAM6mD,KAAKxlD,KAAKrB,MAAM2L,UACvCq/C,SAAU3pD,KAAKrB,MAAM2L,SACrBkL,OAAQxV,KAAKrB,MAAM6W,OACnB85B,OAAQtvC,KAAKrB,MAAM2wC,OACnBrrB,YAAaA,EACbW,SAAU5kB,KAAKrB,MAAMimB,SACrBqF,UAAWjqB,KAAK9B,MAAM+rB,UACtB/Z,UAAWlQ,KAAK9B,MAAMgS,UACtBgV,mBAAoB,SAAAne,GAAC,OAAIiQ,EAAK4yC,iBAAiB7iD,EAAE,GAEzD,CACJ,GAAC,CAAAtH,IAAA,eAAAC,MAED,WAAgB,IAADmqD,EAAA5yC,EAAA,KACX,OAAKjX,KAAKrB,MAAM2wC,QAIT3uC,EAAAA,GAAAA,KAAC6+C,GAAK,CACTsB,gBAAiB9gD,KAAKrB,MAAM2L,SAC5Bg5C,OAAQtjD,KAAKrB,MAAM2kD,OACnB5C,YAAa1gD,KAAKrB,MAAM+hD,YACxBz2B,UAAWjqB,KAAK9B,MAAM+rB,UACtB01B,WAA8B,QAApBkK,EAAE7pD,KAAKrB,MAAMmlC,eAAO,IAAA+lB,OAAA,EAAlBA,EAAoBlK,WAChCuB,aAAclhD,KAAKrB,MAAMuiD,aACzBD,qBAAsB,SAAAl6C,GAClBkQ,EAAKjY,SAAS,CAACkiD,aAAcn6C,EAAGu8C,OAAQ,CAAC,IAAI,WACzCrsC,EAAK8uC,mBACL9uC,EAAK+uC,iBACT,GACJ,EACA3D,kBAAmB,SAAAh6C,GACf4O,EAAKmvC,eAAe,CAChBf,IAAK,WACL/C,aAAcj6C,EAAIi6C,aAClBC,YAAal6C,EAAIk6C,YACjBh5B,SAAUlhB,EAAIkhB,SACdi5B,YAAan6C,EAAIm6C,aAEzB,EACA/B,mBAAoB,SAAA15C,GAChB,IAAM25C,EAAc/wC,KAAKC,MAAMD,KAAK8C,UAAUwE,EAAKtY,MAAM+hD,cACzDA,EAAY/5C,OAAOI,EAAG,GACtBkQ,EAAKjY,SAAS,CAAC0hD,YAAAA,IACfv8C,OAAOyE,aAAauC,QAAQ,yBAA2B8L,EAAK/Y,MAAMsM,IAAKmF,KAAK8C,UAAUiuC,EAAYp+C,KAAI,SAAA4E,GAAI,OAAIA,EAAKrI,IAAI,KAC3H,EACA2lD,gBAAiB,SAAA1yC,GACb,IAAM4uC,EAAc/wC,KAAKC,MAAMD,KAAK8C,UAAUwE,EAAKtY,MAAM+hD,cACzDA,EAAYv5C,KAAK,CAACtI,KAAM,GAAIa,MAAO,CAACA,MAAO,MAC3CuX,EAAKjY,SAAS,CAAC0hD,YAAAA,IAAc,kBAAM5uC,GAAMA,EAAG4uC,EAAYrhD,OAAS,EAAG4X,EAAKtY,MAAM+hD,YAAYA,EAAYrhD,OAAS,GAAG,GACvH,EACAwgD,uBAAwB,SAAC94C,EAAGlI,EAAMiT,GAC9B,IAAM4uC,EAAc/wC,KAAKC,MAAMD,KAAK8C,UAAUwE,EAAKtY,MAAM+hD,cACzD,GAAK7hD,EAEE,IAAI6hD,EAAYz5C,MAAK,SAAAC,GAAI,OAAIA,EAAKrI,OAASA,CAAI,IAClD,OAAOiT,GAAMA,GAAG,GAEhB4uC,EAAY35C,GAAGlI,KAAOA,CAC1B,MALI6hD,EAAY/5C,OAAOI,EAAG,GAO1BkQ,EAAKjY,SAAS,CAAC0hD,YAAAA,IAAc,WACzB7hD,GAAQoY,EAAK+uC,gBAAgBj/C,GAC7B+K,GAAMA,GACV,IACA3N,OAAOyE,aAAauC,QAAQ,yBAA2B8L,EAAK/Y,MAAMsM,IAAKmF,KAAK8C,UAAUiuC,EAAYp+C,KAAI,SAAA4E,GAAI,OAAIA,EAAKrI,IAAI,KAC3H,IAnDO,IAqDf,GAAC,CAAAY,IAAA,gBAAAC,MAED,WAAiB,IAADyX,EAAA,KACZ,OAAOxW,EAAAA,GAAAA,KAACk+C,GAAO,CACXv7C,MAAOtD,KAAK9B,MAAMoF,MAClB+D,QAASrH,KAAKrB,MAAM0I,QACpBy3C,eAAgB,kBAAM3nC,EAAKnY,SAAS,CAACqI,QAAS,GAAIi/C,UAAW,EAAGwD,WAAY,EAAGtD,KAAM,GAAG,GAEhG,GAAC,CAAA/mD,IAAA,cAAAC,MAED,WAAe,IAGPqqD,EAHMzyC,EAAA,KACJvV,GAAY/B,KAAKrB,MAAM6mD,OAASxlD,KAAKrB,MAAMinD,QAmBjD,OAfImE,EADA/pD,KAAKrB,MAAM2nD,WACA3lD,EAAAA,GAAAA,KAACqpD,GAAAA,EAAK,CAACC,aAAcjqD,KAAKrB,MAAM2nD,UAAW3jD,MAAM,QAAOjC,UAC/DC,EAAAA,GAAAA,KAAA,QAAAD,SAAOG,EAAAA,KAAAA,EAAO,eAEXb,KAAKrB,MAAM4nD,aACP5lD,EAAAA,GAAAA,KAACqpD,GAAAA,EAAK,CAACC,aAAcjqD,KAAKrB,MAAM4nD,YAAa5jD,MAAM,YAAWjC,UACrEC,EAAAA,GAAAA,KAAA,QAAAD,SAAOG,EAAAA,KAAAA,EAAO,eAEXb,KAAKrB,MAAM6nD,MACP7lD,EAAAA,GAAAA,KAACqpD,GAAAA,EAAK,CAACC,aAAcjqD,KAAKrB,MAAM6nD,KAAM7jD,MAAM,UAASjC,UAC5DC,EAAAA,GAAAA,KAAA,QAAAD,SAAOG,EAAAA,KAAAA,EAAO,eAGPA,EAAAA,KAAAA,EAAO,YAGfV,EAAAA,GAAAA,MAAA,OAAKgB,MAAO,CAACC,MAAO,OAAQyE,OAAQ,OAAQsO,SAAU,UAAUzT,SAAA,EACnEP,EAAAA,GAAAA,MAAC88C,GAAAA,EAAI,CACD14C,QAAS,CAACiD,KAAMxH,KAAK9B,MAAMqG,QAAQ2lD,UACnC//C,UAAW,MACX29C,eAAe,UACf3mD,MAAO,CAAEmK,SAAU,WAAYlK,MAAO,QACtC1B,MAAOM,KAAKrB,MAAM0nD,SAClB1kD,SAAU,SAACtB,EAAOX,GACd,IAAMoT,EAAW,CAACuzC,SAAU3mD,GAGxB4X,EAAKjQ,SAAqB,YAAV3H,IAChBoT,EAASzL,QAAUiQ,EAAKjQ,QACxBiQ,EAAKjQ,QAAU,KACfyL,EAAS0zC,KAAO,EAChB1zC,EAASyzC,YAAc,EACvBzzC,EAASwzC,UAAY,GAGzBniD,OAAOyE,aAAauC,QAAQ,uBAAwBzL,GAEpD4X,EAAKtY,SAAS8T,EAClB,EACAi1C,cAAc,OAAMrnD,SAAA,EAEpBC,EAAAA,GAAAA,KAACu8C,GAAAA,EAAG,CAAC34C,QAAS,CAACiD,KAAMxH,KAAK9B,MAAMqG,QAAQ4lD,SAAUpoD,SAAUA,EAAUT,MAAOT,EAAAA,KAAAA,EAAO,SAAUnB,MAAM,WACpGiB,EAAAA,GAAAA,KAACu8C,GAAAA,EAAG,CACA34C,QAAS,CAACiD,KAAMxH,KAAK9B,MAAMqG,QAAQ4lD,SACnCpoD,SAAUA,EACVT,MAAOyoD,EACPrqD,MAAM,gBAGdS,EAAAA,GAAAA,MAAA,OAAKgB,MAAO,CAACC,MAAO,OAAQyE,OAAQ,oBAAqBsO,SAAU,UAAUzT,SAAA,CAChD,UAAxBV,KAAKrB,MAAM0nD,UAAyBtkD,EAAiC,KAAtB/B,KAAKoqD,eAC5B,YAAxBpqD,KAAKrB,MAAM0nD,UAA2BtkD,EAAkC,KAAvB/B,KAAKqqD,qBAGnE,GAAC,CAAA5qD,IAAA,SAAAC,MAED,WAAU,IAADgY,EAAA,KACL,OAAOvX,EAAAA,GAAAA,MAAA,OAAoBgB,MAAOnB,KAAK9B,MAAMiD,MAAOmD,UAAW0K,EAAAA,MAAAA,KAAWhP,KAAK9B,MAAMqG,QAAQiD,KAAMxH,KAAK9B,MAAMoG,WAAW5D,SAAA,CACpHV,KAAKrB,MAAM+mD,UAAW/kD,EAAAA,GAAAA,KAAC2pD,GAAAA,EAAc,IAAK,KAC1CtqD,KAAKuqD,iBACNpqD,EAAAA,GAAAA,MAACwjD,IAAc,CACXC,gBAAiB5jD,KAAK9B,MAAMqG,QAAQs/C,SACpCG,eAAgB,IAChBC,UAAQ,EACRC,qBAAsBlkD,KAAKinD,SAC3B9C,0BAA2B,SAAAj/C,GAAI,OAAIwS,EAAKuvC,SAAW9a,WAAWjnC,EAAK,EACnEk/C,UAAW,kBAAMjgD,OAAOyE,aAAauC,QAAQ,eAAgBuM,EAAKuvC,SAASh6C,WAAW,EACtFvM,SAAA,EAEAP,EAAAA,GAAAA,MAAA,OAAKgB,MAAO,CAACC,MAAO,OAAQyE,OAAQ,OAAQsO,SAAU,UAAUzT,SAAA,CAC3DV,KAAKwqD,aACLxqD,KAAKyqD,6BAEV9pD,EAAAA,GAAAA,KAAA,OAAKQ,MAAO,CAACC,MAAO,OAAQyE,OAAQ,OAAQsO,SAAU,UAAUzT,SAC3DV,KAAK0qD,mBAGb1qD,KAAK2qD,gBApBM,WAsBpB,KAACxF,CAAA,CAzqBS,CAASpiD,IAAAA,WAyrBvB,IAAeM,EAAAA,EAAAA,IA/wBA,SAAAC,GAAK,MAAK,CACrBkE,KAAM,CACFpG,MAAO,OACPyE,OAAO,eAAD/B,OAAiBR,EAAMgY,QAAQzV,OAAS,GAA8B,EAAC,OAC7EsO,SAAU,SACV7I,SAAU,YAEdgQ,QAAS,CACLsvC,UAAW,GACX3pC,UAAW,kHAEfunC,UAAW,CACP7lD,MAAO,SAEXgmD,YAAa,CACThmD,MAAO,UAEX0lD,cAAe,CACX1lD,MAAO,aAEXkoD,WAAY,CACRloD,MAAO,OAEXkmD,WAAY,CACRlmD,MAAO,QAEXqmD,WAAY,CACRrmD,MAAO,QAEXwmD,UAAW,CACPxmD,MAAO,QAEX2mD,gBAAiB,CAEjB,EAEAnB,QAAS,CACL9I,cAAe,UACf18C,MAA8B,SAAvBW,EAAMsE,QAAQgV,KAAkB,OAAS,WAEpDorC,QAAS,CACLznD,SAAU,IACVukD,aAAc,WACd7wC,WAAY,SACZE,SAAU,SACVvO,QAAS,eACT+a,cAAe,UAEnBsnC,YAAa,CACT38C,SAAU,WACV2R,IAAK,EACLD,MAAO,EACP0M,OAAQ,GACRxV,QAAS,EACTW,OAAQ,WAGZq1C,SAAU,CACNU,UAAW,GACXjjD,WAAmC,SAAvBrE,EAAMsE,QAAQgV,KAAkB,OAAS,UACrDja,MAA8B,SAAvBW,EAAMsE,QAAQgV,KAAkB,QAAU,WAErDutC,QAAS,CACLS,UAAW,IAGflD,WAAY,CACRoD,UAAW,wBAEfrD,UAAW,CACPzmC,WAAY,yBACZ/M,WAAY,MACZ9Q,SAAU,IAEdqkD,MAAO,CACH7kD,MAAO,WAEXkhD,SAAU,CACNh+C,OAAQ,oBACR,iBAAkB,CACdsO,SAAU,SACVtO,OAAQ,SAGnB,GA2rBD,CAAkCs/C,IC5uB5B14C,GAAS,CACX,QAAWC,EACX,gBAAiBC,EACjB,MAASE,EACTD,IAAKD,EACL,gBAAiBG,GAIfi+C,GAAc,UACdC,GAAgB,UAChBl/C,GAAYC,EAAAA,EAAAA,KACZG,GAAcC,EAAAA,EAAAA,KAwGdkyC,GAAM,SAAAxgD,IAAAC,EAAAA,EAAAA,GAAAugD,EAAAxgD,GAAA,IAAAG,GAAAC,EAAAA,EAAAA,GAAAogD,GACR,SAAAA,EAAYngD,GAAQ,IAADC,GAAAC,EAAAA,EAAAA,GAAA,KAAAigD,IACflgD,EAAAH,EAAAK,KAAA,KAAMH,IA+HV+sD,kBAAoB,SAACrsD,EAAIyJ,GACrB,GAAKzJ,EAIL,IAAKyJ,GAAOlE,OAAO0D,KAAKzI,UAAU8E,SAAStF,GAAK,QACrCuF,OAAO0D,KAAK0U,QAAQ3d,GAC3B,IAAMgU,EAAMzO,OAAO0D,KAAKzI,UAAUgH,QAAQxH,GAC1CuF,OAAO0D,KAAKzI,UAAUuH,OAAOiM,EAAK,EACtC,MACQvK,GAAoB,aAAbA,EAAItE,OAENI,OAAO0D,KAAKzI,UAAU8E,SAAStF,KAChCuF,OAAO0D,KAAKzI,UAAU+H,KAAKvI,GAC3BuF,OAAO0D,KAAKzI,UAAUuK,QAE1BxF,OAAO0D,KAAK0U,QAAQ3d,GAAMyJ,EAEtC,EAAClK,EAoBD+sD,eAAiB,SAAAtpD,GACb,IAAMupD,EAAY19C,OAAOC,KAAKvP,EAAK4R,SAAS9I,MAAK,SAAArI,GAAE,OAC/C+Q,KAAK8C,UAAUtU,EAAK4R,QAAQnR,MAAS+Q,KAAK8C,UAAUtU,EAAKD,MAAMqe,QAAQ3d,GAAI0J,OAAO,IAEtF,GAAM6iD,EAAW,CACb9jD,QAAQC,IAAI,UAAYqI,KAAK8C,UAAUtU,EAAK4R,QAAQo7C,KACpD,IAAM7sC,EAAUzd,EAAAA,KAAAA,EAAO,4BAQvB,OAPAe,EAAIA,GAAKuC,OAAO9D,SAGZuB,EAAEwpD,YAAc9sC,GAIbA,CACX,CACJ,EAACngB,EA4kCDmjC,YAAc,SAAAD,GAAQ,OAAIljC,EAAKa,SAAS,CAAEqiC,SAAAA,GAAY,EA/vClD,IAAM/2B,EAAWnG,OAAOyE,aAAaC,QAAQ,oBAAsB,GAC/D4V,EAAUta,OAAOyE,aAAaC,QAAQ,mBAAqB,KAC/D,IACI4V,EAAU9O,KAAKC,MAAM6O,EACzB,CAAE,MAAO7c,GACL6c,EAAU,EACd,CAsGO,OArGHnU,IAAamU,EAAQva,SAASoG,IAC9BmU,EAAQtX,KAAKmD,GAGjBnM,EAAKktD,QAAUtoD,IAAAA,YAEf5E,EAAKQ,MAAQ,CACT2L,SAAAA,EACAmU,QAAAA,EACA/L,QAAS,CAAC,EACV0Z,QAAS,KACTk/B,MAAO,KACPC,cAAc,EACdC,gBAAgB,EAChBC,kBAAkB,EAClBvsB,cAAc,EACdwsB,UAAU,EACVC,YAAY,EACZC,WAAW,EACXC,YAAa,KACbhqC,OAAQ,GACR/Q,WAAY,GACZmZ,UAAW9rB,EAAKD,MAAM+rB,UACtB6hC,QAAS5tD,EAAM4tD,QACfC,aAAc,GACdC,WAAY,GACZt7C,aAAcvS,EAAKD,MAAMwS,WACzBu7C,gBAAgB,EAChBC,iBAAkB,KAClBj7C,iBAAkB9S,EAAKD,MAAM+S,kBAAoB,CAAC,EAClDk7C,eAAe,EACfC,MAAO,GACPC,iBAAiB,EACjBjrB,WAAoD,SAAxCj9B,OAAOyE,aAAaC,QAAQ,QACxCw4B,SAAU/D,GACVnsB,kBAAkB,GAGtBhT,EAAKmuD,oBAILnuD,EAAKwe,SAAW,CACZ4vC,UAAW,KACXv2B,SAAU,MAEd73B,EAAK0sC,KAAO,CACR0hB,UAAW,KACXv2B,SAAU,MAEd73B,EAAKquD,aAAe,CAChBD,UAAW,KACXv2B,SAAU,KACVtyB,KAAM,KACNszB,UAAU,GAGd7yB,OAAOsoD,WAAa5rD,EAAAA,KAAAA,cACpBsD,OAAO0D,KAAO,CACV0U,QAAS,CAAC,EACVpU,UAAW,SAACvJ,EAAIkT,GAAE,OAAK3T,EAAKD,MAAMgK,OAAOC,UAAUvJ,GAAIwJ,MAAK,SAAAC,GAAG,OAAIyJ,GAAMA,EAAG,KAAMzJ,EAAI,IAAE02B,OAAM,SAAA1sB,GAAG,OAAIP,GAAMA,EAAGO,EAAI,GAAC,EACnHjT,UAAW,GACXstD,eAAgB,SAACH,EAAWxoD,EAAM+N,GACV,oBAAT/N,IACP+N,EAAK/N,EACLA,EAAO,MAEX5F,EAAKwe,SAASqZ,SAAWlkB,EACzB3T,EAAKwe,SAAS4vC,UAAYA,EAC1BpuD,EAAKwe,SAAS5Y,KAAOA,EACrB5F,EAAKa,SAAS,CAAEkgC,cAAc,GAClC,EACAytB,WAAY,SAACJ,EAAWz6C,GACpB3T,EAAK0sC,KAAK7U,SAAWlkB,EACrB3T,EAAK0sC,KAAK0hB,UAAYA,EACtBpuD,EAAKa,SAAS,CAAE0sD,UAAU,GAC9B,EACAkB,iBAAkB,SAACltD,EAAOgE,EAAMszB,EAAUllB,GACtC3T,EAAKquD,aAAax2B,SAAWlkB,EAC7B3T,EAAKquD,aAAaD,UAAY7sD,EAC9BvB,EAAKquD,aAAa9oD,KAAOA,EACzBvF,EAAKquD,aAAax1B,SAAWA,IAAY,EACzC74B,EAAKa,SAAS,CAAE2sD,YAAY,GAChC,GAGJxtD,EAAKoe,QAAUre,EAAMqe,QAGrBpe,EAAK4R,QAAU,CAAC,GAEX5R,EAAKQ,MAAM2L,UAAYnM,EAAKQ,MAAM8f,QAAQpf,SAC3ClB,EAAKQ,MAAM2L,SAAWnM,EAAKQ,MAAM8f,QAAQ,IAG7CtgB,EAAK0uD,yBACAzkD,MAAK,WAEEjK,EAAKD,MAAM4uD,kBAAoB3uD,EAAKQ,MAAM2L,UAC1C5I,YAAW,kBAAMvD,EAAKD,MAAM4uD,iBAAiB3uD,EAAKQ,MAAM2L,SAAUnM,EAAKQ,MAAM8f,QAAQ,GAAE,IAE/F,IAAGtgB,CACX,CAoeC,OApeAqB,EAAAA,EAAAA,GAAA6+C,EAAA,EAAA5+C,IAAA,yBAAAC,MAED,WAA0B,IAADQ,EAAA,KACrB,OAAOF,KAAK9B,MAAMgK,OAAOc,qBAAoB,GACxCZ,MAAK,SAAA2kD,GACF,IAAMxwC,EAAU,CAAC,EACXnd,EAAY2tD,EAAgBzqD,KAAI,SAAA+F,GAElC,OADAkU,EAAQlU,EAAIG,KAAOH,EACZA,EAAIG,GACf,IACArE,OAAO0D,KAAK0U,QAAUA,EACtBpY,OAAO0D,KAAKzI,UAAYA,EACxBc,EAAKlB,SAAS,CAAEqtD,iBAAiB,GACrC,GACR,GAAC,CAAA5sD,IAAA,oBAAAC,MAsBD,WAAqB,IAAD0F,EAAA,KACV+lD,EAAY19C,OAAOC,KAAK1N,KAAKrB,MAAM+T,SAASzL,MAAK,SAAArI,GAAE,OAAIwG,EAAKzG,MAAM+T,QAAQ9T,EAAG,IAEtD,qBAAlBuF,OAAOmC,QAA0BnC,OAAOmC,SAC/CnC,OAAOmC,OAAO0mD,iBAAmB7B,EAEzC,GAAC,CAAA1rD,IAAA,oBAAAC,MAED,WACIyE,OAAO0uB,iBAAiB,eAAgB7yB,KAAKkrD,gBAAgB,GAC7DlrD,KAAK9B,MAAMgK,OAAOg2C,gBAAgB,mBAAoBl+C,KAAKirD,kBAC/D,GAAC,CAAAxrD,IAAA,uBAAAC,MAED,WACIyE,OAAOuwB,oBAAoB,eAAgB10B,KAAKkrD,gBAChDlrD,KAAK9B,MAAMgK,OAAOi2C,kBAAkB,mBAAoBn+C,KAAKirD,kBACjE,GAAC,CAAAxrD,IAAA,2BAAAC,MAoBD,SAAyBO,EAAW6S,GAChC7S,EAAYA,GAAaD,KAAK9B,MAC9B4U,EAAWA,GAAY,CAAC,EAExB,IAAIm6C,GAAW,EACf,GAAIjtD,KAAKrB,MAAM8f,SACYze,KAAKrB,MAAM8f,QAAQxX,MAAK,SAAArI,GAAE,OAAKqB,EAAUsc,QAAQ3d,EAAG,IAEvD,CAGhB,IADA,IAAM6f,EAAU9O,KAAKC,MAAMD,KAAK8C,UAAUzS,KAAKrB,MAAM8f,UAC5C1X,EAAI0X,EAAQpf,OAAS,EAAG0H,GAAK,EAAGA,IAChC/G,KAAKuc,QAAQkC,EAAQ1X,MACtBkmD,GAAW,EACXxuC,EAAQ9X,OAAOI,EAAG,IAGtBkmD,IACAn6C,EAAS2L,QAAUA,GAEnBze,KAAKrB,MAAM2L,WAAatK,KAAKuc,QAAQvc,KAAKrB,MAAM2L,YAChD2iD,GAAW,EACXn6C,EAASxI,SAAWmU,EAAQ,IAAM,GAC9Bze,KAAK+P,QAAQ+C,EAASxI,YAClBtK,KAAKrB,MAAMytB,WAA4D,YAA/CpsB,KAAK+P,QAAQ+C,EAASxI,UAAUqD,cACxDmF,EAASsZ,QAAyD,YAA/CpsB,KAAK+P,QAAQ+C,EAASxI,UAAUqD,WACnDs/C,GAAW,GAEXjtD,KAAKrB,MAAM2sD,SAA0D,UAA/CtrD,KAAK+P,QAAQ+C,EAASxI,UAAUqD,cACtDmF,EAASw4C,MAAuD,UAA/CtrD,KAAK+P,QAAQ+C,EAASxI,UAAUqD,WACjDs/C,GAAW,GAEXjtD,KAAKrB,MAAM6sD,iBAAmBxrD,KAAK+P,QAAQ+C,EAASxI,UAAU4iD,UAC9Dp6C,EAAS04C,eAAiBxrD,KAAK+P,QAAQ+C,EAASxI,UAAU4iD,QAC1DD,GAAW,GAEXjtD,KAAKrB,MAAM4sD,eAAiBvrD,KAAK+P,QAAQ+C,EAASxI,UAAUwW,QAC5DhO,EAASy4C,aAAevrD,KAAK+P,QAAQ+C,EAASxI,UAAUwW,MACxDmsC,GAAW,IAI3B,CAEJ,OAAOA,CACX,GAAC,CAAAxtD,IAAA,mCAAAC,MAED,SAAiCO,GAAY,IAADoF,EAAA,KAClCyN,EAAW,CAAC,EACdm6C,GAAW,EA6Bf,GA3BIt9C,KAAK8C,UAAUxS,EAAUgR,oBAAsBtB,KAAK8C,UAAUzS,KAAKrB,MAAMsS,oBACzEg8C,GAAW,EACXn6C,EAAS7B,iBAAmBhR,EAAUgR,kBAGtCjR,KAAKrB,MAAM+R,aAAezQ,EAAUyQ,aACpCoC,EAASpC,WAAazQ,EAAUyQ,WAChCu8C,GAAW,GAGXjtD,KAAKrB,MAAMsrB,YAAchqB,EAAUgqB,YACnCnX,EAASmX,UAAYhqB,EAAUgqB,UAC/BgjC,GAAW,GAIXjtD,KAAKmtD,yBAAyBltD,EAAW6S,KACzCm6C,GAAW,GAIXjtD,KAAKrB,MAAMmS,aAAe7Q,EAAU6Q,aACpCgC,EAAShC,WAAa7Q,EAAU6Q,WAChCm8C,GAAW,GAIXjtD,KAAKuc,UAAYtc,EAAUsc,QAAS,CACpCvc,KAAKuc,QAAUtc,EAAUsc,QACzBpY,OAAO0D,KAAK0U,QAAUtc,EAAUsc,QAGhC9O,OAAOC,KAAK1N,KAAK+P,SAASlJ,SAAQ,SAAAjI,GAC9B,IAAMsX,EAAS7Q,EAAK0K,QAAQnR,GAAIsX,OAChC7Q,EAAK0K,QAAQnR,GAAM+Q,KAAKC,MAAMD,KAAK8C,UAAUpN,EAAKkX,QAAQ3d,GAAI0J,SAC9DjD,EAAK0K,QAAQnR,GAAIsX,OAASA,CAC9B,IAGIlW,KAAKrB,MAAM2L,UAAYtK,KAAKuc,QAAQvc,KAAKrB,MAAM2L,YAC/CtK,KAAK+P,QAAQ/P,KAAKrB,MAAM2L,UAAYtK,KAAK+P,QAAQ/P,KAAKrB,MAAM2L,WAAaqF,KAAKC,MAAMD,KAAK8C,UAAUzS,KAAKuc,QAAQvc,KAAKrB,MAAM2L,UAAUhC,SACjItI,KAAKrB,MAAMytB,WAA8D,YAAjDpsB,KAAK+P,QAAQ/P,KAAKrB,MAAM2L,UAAUqD,cAC1DmF,EAASsZ,QAA2D,YAAjDpsB,KAAK+P,QAAQ/P,KAAKrB,MAAM2L,UAAUqD,WACrDs/C,GAAW,GAEXjtD,KAAKrB,MAAM2sD,SAA4D,UAAjDtrD,KAAK+P,QAAQ/P,KAAKrB,MAAM2L,UAAUqD,cACxDmF,EAASw4C,MAAyD,UAAjDtrD,KAAK+P,QAAQ/P,KAAKrB,MAAM2L,UAAUqD,WACnDs/C,GAAW,GAEXjtD,KAAKrB,MAAM6sD,iBAAmBxrD,KAAK+P,QAAQ/P,KAAKrB,MAAM2L,UAAU4iD,UAChEp6C,EAAS04C,eAAiBxrD,KAAK+P,QAAQ/P,KAAKrB,MAAM2L,UAAU4iD,QAC5DD,GAAW,GAEXjtD,KAAKrB,MAAM4sD,eAAiBvrD,KAAK+P,QAAQ/P,KAAKrB,MAAM2L,UAAUwW,QAC9DhO,EAASy4C,aAAevrD,KAAK+P,QAAQ/P,KAAKrB,MAAM2L,UAAUwW,MAC1DmsC,GAAW,IAMnB,IADA,IAAMxuC,EAAU9O,KAAKC,MAAMD,KAAK8C,UAAUzS,KAAKrB,MAAM8f,UAC5C1X,EAAI0X,EAAQpf,OAAS,EAAG0H,GAAK,EAAGA,IAChC/G,KAAKuc,QAAQkC,EAAQ1X,MACtBkmD,GAAW,EACXxuC,EAAQ9X,OAAOI,EAAG,QACqByH,IAAnCxO,KAAKrB,MAAM+T,QAAQ+L,EAAQ1X,MAC3B+L,EAASJ,QAAUI,EAASJ,SAAW/C,KAAKC,MAAMD,KAAK8C,UAAUzS,KAAKrB,MAAM+T,iBACrEI,EAASJ,QAAQ+L,EAAQ1X,MAIxC/G,KAAKrB,MAAM2L,WAAatK,KAAKuc,QAAQvc,KAAKrB,MAAM2L,YAChDwI,EAASxI,SAAWmU,EAAQ,IAAM,IAElCwuC,IACAn6C,EAAS2L,QAAUA,EAE3B,MAEI,IAAK,IAAM7f,KAAMoB,KAAK+P,QAClB,GAAK/P,KAAK+P,QAAQ2Q,eAAe9hB,GACjC,GAAIoB,KAAKuc,QAAQ3d,IAAOoB,KAAKuc,QAAQ3d,GAAI0J,OAAQ,CAC7C,IAAM8kD,EAAYptD,KAAK+P,QAAQnR,GAAIsX,OAC7Bm3C,EAAc19C,KAAKC,MAAMD,KAAK8C,UAAUzS,KAAK+P,QAAQnR,KAC3DyuD,EAAYn3C,OAASlW,KAAKuc,QAAQ3d,GAAI0J,OAAO4N,OAEzCvG,KAAK8C,UAAU46C,KAAiB19C,KAAK8C,UAAUzS,KAAKuc,QAAQ3d,GAAI0J,UAChEtI,KAAK+P,QAAQnR,GAAM+Q,KAAKC,MAAMD,KAAK8C,UAAUzS,KAAKuc,QAAQ3d,GAAI0J,SAC9DtI,KAAK+P,QAAQnR,GAAIsX,OAASk3C,GAG1BA,IAAcptD,KAAKuc,QAAQ3d,GAAI0J,OAAO4N,OAEjClW,KAAKrB,MAAM+T,QAAQ9T,GAIhBoB,KAAKuc,QAAQ3d,GAAI2nB,MAAQvmB,KAAKuc,QAAQ3d,GAAI2nB,KAAKxc,WAAW,gCAC1D/J,KAAKuc,QAAQ3d,GAAI2nB,KAAO,yBAExBvmB,KAAKhB,SAAS,CAAEotD,MAAOvrD,EAAAA,KAAAA,EAAO,kCAAmCjC,EAAGgB,MAAM,KAAKC,UALnFG,KAAK+P,QAAQnR,GAAIsX,OAASlW,KAAKuc,QAAQ3d,GAAI0J,OAAO4N,OASlDlW,KAAKrB,MAAM+T,QAAQ9T,KACnBkU,EAASJ,QAAUI,EAASJ,SAAW/C,KAAKC,MAAMD,KAAK8C,UAAUzS,KAAKrB,MAAM+T,UAC5EI,EAASJ,QAAQ9T,IAAM,EACvBquD,GAAW,EAGvB,MAEI,UADOjtD,KAAK+P,QAAQnR,GAChBoB,KAAKrB,MAAM2L,WAAa1L,EAAI,CAC5B,IAAwC,IAApCoB,KAAKrB,MAAM8f,QAAQrY,QAAQxH,GAAY,CACvC,IAAM6f,EAAU9O,KAAKC,MAAMD,KAAK8C,UAAUzS,KAAKrB,MAAM8f,UAC/C7L,EAAM6L,EAAQrY,QAAQxH,IACf,IAATgU,IACA6L,EAAQ9X,OAAOiM,EAAK,GACpBE,EAAS2L,QAAUA,EACnBwuC,GAAW,EAEnB,CACAn6C,EAASxI,SAAWtK,KAAKrB,MAAM8f,QAAQ,IAAM,GAC7CwuC,GAAW,CACf,CAKZ,GAAIjtD,KAAKrB,MAAM2L,WAAarK,EAAUqK,UAAYrK,EAAUqK,SAAU,CAC9DrK,EAAUqK,WACVtK,KAAK+P,QAAQ9P,EAAUqK,UAAYtK,KAAK+P,QAAQ9P,EAAUqK,WAAaqF,KAAKC,MAAMD,KAAK8C,UAAUzS,KAAK9B,MAAMqe,QAAQtc,EAAUqK,UAAUhC,UAG5I,IAAMglD,EAAattD,KAAK9B,MAAMqe,QAAQtc,EAAUqK,WAAatK,KAAK9B,MAAMqe,QAAQtc,EAAUqK,UAAUhC,OAE9FoK,EAAU46C,GAAc39C,KAAK8C,UAAUzS,KAAK+P,QAAQ9P,EAAUqK,aAAeqF,KAAK8C,UAAU66C,GAE5F7uC,EAAU9O,KAAKC,MAAMD,KAAK8C,UAAUzS,KAAKrB,MAAM8f,UACjDxe,EAAUqK,WAAqD,IAAzCmU,EAAQrY,QAAQnG,EAAUqK,YAChDmU,EAAQtX,KAAKlH,EAAUqK,UACvBtK,KAAK9B,MAAM4uD,iBAAiB7sD,EAAUqK,SAAUmU,GAChDta,OAAOyE,cAAgBzE,OAAOyE,aAAauC,QAAQ,iBAAkBwE,KAAK8C,UAAUgM,KAGxFwuC,GAAW,EACXn6C,EAASJ,QAAUI,EAASJ,SAAW/C,KAAKC,MAAMD,KAAK8C,UAAUzS,KAAKrB,MAAM+T,UAC5EI,EAASJ,QAAQzS,EAAUqK,UAAYoI,EACvCI,EAAS2L,QAAUA,EACnB3L,EAASxI,SAAWrK,EAAUqK,SAC9BwI,EAASsZ,QAA0D,YAAhDpsB,KAAK+P,QAAQ9P,EAAUqK,UAAUqD,WACpDmF,EAASw4C,MAAwD,UAAhDtrD,KAAK+P,QAAQ9P,EAAUqK,UAAUqD,WAClDmF,EAAS04C,eAAiBxrD,KAAK+P,QAAQ9P,EAAUqK,UAAU4iD,QAC3Dp6C,EAASy4C,aAAevrD,KAAK+P,QAAQ9P,EAAUqK,UAAUwW,MACzDhO,EAAS24C,kBAAmB,CAChC,CAIIzrD,KAAKrB,MAAMmtD,UAAY7rD,EAAU6rD,UACjCmB,GAAW,EACXn6C,EAASg5C,QAAU7rD,EAAU6rD,SAGjCmB,GAAYjtD,KAAKhB,SAAS8T,GAAU,kBAAMzN,EAAKinD,mBAAmB,GACtE,GAAC,CAAA7sD,IAAA,YAAAC,MAED,WACIM,KAAK9B,MAAMoqD,WAAatoD,KAAK9B,MAAMoqD,UAAUtoD,KAAKrB,MAAM2L,SAC5D,GAAC,CAAA7K,IAAA,cAAAC,MAED,WACI,IAAM4I,EAASqH,KAAKC,MAAMD,KAAK8C,UAAUzS,KAAK+P,QAAQ/P,KAAKrB,MAAM2L,YACjEhC,EAAOL,SAAWK,EAAOL,QACzBjI,KAAK9B,MAAMyD,UAAY3B,KAAK9B,MAAMyD,SAAS3B,KAAKrB,MAAM2L,SAAUhC,EACpE,GAAC,CAAA7I,IAAA,SAAAC,MAED,WAAU,IAAD4F,EAAA,KAML,GALItF,KAAKrB,MAAMyiC,YAAcphC,KAAKrB,MAAM0iC,WAAa/D,KACjDt9B,KAAKhB,SAAS,CAAEoiC,YAAY,IAC5Bj9B,OAAOyE,aAAauC,QAAQ,OAAQ,SAGpCnL,KAAKrB,MAAM+T,QAAQ1S,KAAKrB,MAAM2L,UAAW,CACzC,IAAMoI,EAAU/C,KAAKC,MAAMD,KAAK8C,UAAUzS,KAAKrB,MAAM+T,UACrDA,EAAQ1S,KAAKrB,MAAM2L,WAAY,EAC/BtK,KAAKhB,SAAS,CAAE0T,QAAAA,IAAW,WACvBpN,EAAKgnD,oBACLhnD,EAAKpH,MAAMyD,UAAY2D,EAAKpH,MAAMyD,SAAS2D,EAAK3G,MAAM2L,SAAUhF,EAAKyK,QAAQzK,EAAK3G,MAAM2L,UAC5F,GACJ,CACJ,GAAC,CAAA7K,IAAA,YAAAC,MAED,WAAa,IAAD2T,EAAA,KACFX,EAAU/C,KAAKC,MAAMD,KAAK8C,UAAUzS,KAAKrB,MAAM+T,UACrDjF,OAAOC,KAAKgF,GACP7L,SAAQ,SAAAjI,GACD8T,EAAQ9T,KACR8T,EAAQ9T,IAAM,EACdyU,EAAKnV,MAAMyD,UAAY0R,EAAKnV,MAAMyD,SAAS/C,EAAIyU,EAAKtD,QAAQnR,IAEpE,IAEJoB,KAAKhB,SAAS,CAAE0T,QAAAA,IAAW,kBACvBW,EAAKi5C,mBAAmB,GAChC,GAAC,CAAA7sD,IAAA,WAAAC,MAED,WAAY,IAADoU,EAAA,KACP9T,KAAK+P,QAAQ/P,KAAKrB,MAAM2L,UAAYqF,KAAKC,MAAMD,KAAK8C,UAAUzS,KAAK9B,MAAMqe,QAAQvc,KAAKrB,MAAM2L,UAAUhC,SAEtG,IAAMoK,EAAU/C,KAAKC,MAAMD,KAAK8C,UAAUzS,KAAKrB,MAAM+T,UACrDA,EAAQ1S,KAAKrB,MAAM2L,WAAY,EAE/BtK,KAAKhB,SAAS,CAAE0T,QAAAA,IAAW,kBAAMoB,EAAKw4C,mBAAmB,GAC7D,GAAC,CAAA7sD,IAAA,mBAAAC,MAED,SAAiBkrC,GACb5qC,KAAKutD,UAAY3iB,CACrB,GAAC,CAAAnrC,IAAA,sBAAAC,MAED,WAAuB,IAAD+U,EAAA,KAClBzU,KAAKwtD,kBAAkB3sD,EAAAA,KAAAA,EAAO,sDAAsD,SAAAwM,GAChF,GAAIA,EAAQ,CACRoH,EAAK1E,QAAQ0E,EAAK9V,MAAM2L,UAAUqD,WAAa,gBAC/C,IACM6Q,EADO/J,EAAK1E,QAAQ0E,EAAK9V,MAAM2L,UAAU4L,OAC1BtW,MAAM,MAC3B4e,EAAM3e,MACN4U,EAAK1E,QAAQ0E,EAAK9V,MAAM2L,UAAU4L,OAASsI,EAAM1e,KAAK,MACtD,IAAM2tD,EAAch5C,EAAK9V,MAAM2L,SAEzBoI,EAAU/C,KAAKC,MAAMD,KAAK8C,UAAUgC,EAAK9V,MAAM+T,UACrDA,EAAQ+B,EAAK9V,MAAM2L,WAAY,EAE/BmK,EAAKzV,SAAS,CAAE0T,QAAAA,EAAS0Z,SAAS,EAAO9hB,SAAU,KAAM,WACrDmK,EAAK63C,oBAEL5qD,YAAW,kBAAM+S,EAAKzV,SAAS,CAAEsL,SAAUmjD,GAAc,GAAE,IAC/D,GACJ,CACJ,GACJ,GAAC,CAAAhuD,IAAA,WAAAC,MAED,SAASolB,GAAU,IAADzO,EAAA,UAES7H,KADvBsW,EAAUA,GAAW,CAAC,GACVtP,SACRxV,KAAK+P,QAAQ/P,KAAKrB,MAAM2L,UAAU4L,OAAS4O,EAAQtP,aAEjChH,IAAlBsW,EAAQhE,QACR9gB,KAAK+P,QAAQ/P,KAAKrB,MAAM2L,UAAUwW,MAAQgE,EAAQhE,YAE9BtS,IAApBsW,EAAQooC,UACRltD,KAAK+P,QAAQ/P,KAAKrB,MAAM2L,UAAU4iD,QAAUpoC,EAAQooC,SAExD,IAAMD,EAAWt9C,KAAK8C,UAAUzS,KAAK+P,QAAQ/P,KAAKrB,MAAM2L,aAAeqF,KAAK8C,UAAUzS,KAAK9B,MAAMqe,QAAQvc,KAAKrB,MAAM2L,UAAUhC,QAC9H,GAAI2kD,KAAcjtD,KAAKrB,MAAM+T,QAAQ1S,KAAKrB,MAAM2L,YAAa,GAAQ,CACjE,IAAMoI,EAAU/C,KAAKC,MAAMD,KAAK8C,UAAUzS,KAAKrB,MAAM+T,UACrDA,EAAQ1S,KAAKrB,MAAM2L,UAAY2iD,EAC/BjtD,KAAKuc,QAAQvc,KAAKrB,MAAM2L,UAAUic,KAAO,yBACzCvmB,KAAKhB,SAAS,CAAE0T,QAAAA,IAAW,kBAAM2D,EAAKi2C,mBAAmB,GAE7D,CACJ,GAAC,CAAA7sD,IAAA,cAAAC,MAED,SAAYW,EAAOiK,GACf,IAAItK,KAAK9B,MAAMqV,UAAf,CAGApP,OAAOyE,cAAgBzE,OAAOyE,aAAauC,QAAQ,kBAAmBb,GACtE,IAAMhC,EAAStI,KAAK+P,QAAQzF,IAActK,KAAK9B,MAAMqe,QAAQjS,IAAatK,KAAK9B,MAAMqe,QAAQjS,GAAUhC,OACvGtI,KAAKhB,SAAS,CACVsL,SAAAA,EACAghD,MAA6B,UAAtBhjD,EAAOqF,WACdye,QAA+B,YAAtB9jB,EAAOqF,WAChB89C,kBAAkB,EAClBD,eAAgBljD,EAAO4kD,QACvB3B,aAAcjjD,EAAOwY,QAEzB9gB,KAAK9B,MAAM4uD,kBAAoB9sD,KAAK9B,MAAM4uD,iBAAiBxiD,EAAUtK,KAAKrB,MAAM8f,QAXhF,CAYJ,GAAC,CAAAhf,IAAA,kBAAAC,MAED,SAAgBd,GACZ,OAAOoB,KAAK+P,QAAQnR,IAAOoB,KAAK9B,MAAMqe,QAAQ3d,IAAO+Q,KAAK8C,UAAUzS,KAAK+P,QAAQnR,MAAS+Q,KAAK8C,UAAUzS,KAAK9B,MAAMqe,QAAQ3d,GAAI0J,OACpI,GAAC,CAAA7I,IAAA,aAAAC,MAED,SAAWd,EAAIgD,GAAI,IAADgV,EAAA,KACdhV,GAAKA,EAAEsR,kBAEP,IAAMN,EAAM5S,KAAKrB,MAAM8f,QAAQrY,QAAQxH,GACvC,GAAIoB,KAAKrB,MAAM8f,QAAQva,SAAStF,GAC5B,GAAIoB,KAAK0tD,gBAAgB9uD,GACrBoB,KAAKwtD,kBAAkB3sD,EAAAA,KAAAA,EAAO,yBAA0Bb,KAAK9B,MAAMqe,QAAQ3d,GAAI0J,OAAOzJ,OAAO,SAAA8uD,GACrFA,WACO/2C,EAAK7G,QAAQnR,GACpBgY,EAAKg3C,WAAWhvD,GAExB,QACG,CACH,IAAM6f,EAAU9O,KAAKC,MAAMD,KAAK8C,UAAUzS,KAAKrB,MAAM8f,UACrDA,EAAQ9X,OAAOiM,EAAK,GACpB,IAAME,EAAW,CAAE2L,QAAAA,GAenB,GAdI7f,IAAOoB,KAAKrB,MAAM2L,SACdmU,EAAQpf,OACI,IAARuT,GAAgC,IAAnB6L,EAAQpf,OACrByT,EAASxI,SAAWmU,EAAQ,GAE5B3L,EAASxI,SAAWmU,EAAQ7L,EAAM,GAGtCE,EAASxI,SAAW,GAEjBtK,KAAKrB,MAAM2L,WAAamU,EAAQpf,SACvCyT,EAASxI,SAAW,IAExBnG,OAAOyE,cAAgBzE,OAAOyE,aAAauC,QAAQ,iBAAkBwE,KAAK8C,UAAUgM,SAC1DjQ,IAAtBsE,EAASxI,SAAwB,CACjCwI,EAASJ,QAAUI,EAASJ,SAAW/C,KAAKC,MAAMD,KAAK8C,UAAUzS,KAAKrB,MAAM+T,UAC5EI,EAASJ,QAAQI,EAASxI,UAAYtK,KAAK0tD,gBAAgB56C,EAASxI,UACpE,IAAMhC,EAASwK,EAASxI,WAAatK,KAAK+P,QAAQ+C,EAASxI,WAActK,KAAK9B,MAAMqe,QAAQzJ,EAASxI,WAAatK,KAAK9B,MAAMqe,QAAQzJ,EAASxI,UAAUhC,QACxJwK,EAASsZ,UAAU9jB,GAA+B,YAAtBA,EAAOqF,WACnCmF,EAASw4C,QAAQhjD,GAA+B,UAAtBA,EAAOqF,WACjCmF,EAAS04C,iBAAiBljD,GAASA,EAAO4kD,QAC1Cp6C,EAASy4C,eAAejjD,GAASA,EAAOwY,MACxChO,EAAS24C,kBAAmB,CAChC,CAEAzrD,KAAKhB,SAAS8T,GAAU,WACpB8D,EAAK01C,yBAEqB99C,IAAtBsE,EAASxI,UACTsM,EAAK1Y,MAAM4uD,kBAAoBl2C,EAAK1Y,MAAM4uD,iBAAiBh6C,EAASxI,SAAUsM,EAAKjY,MAAM8f,SACzFta,OAAOyE,cAAgBzE,OAAOyE,aAAauC,QAAQ,kBAAmB2H,EAASxI,WAE/EsM,EAAK1Y,MAAM4uD,kBAAoBl2C,EAAK1Y,MAAM4uD,iBAAiBl2C,EAAKjY,MAAM2L,SAAUsM,EAAKjY,MAAM8f,QAEnG,GACJ,CAER,GAAC,CAAAhf,IAAA,oBAAAC,MAED,SAAkBmuD,EAAU/7C,GACxB9R,KAAK8tD,gBAAkBh8C,EACvB9R,KAAKhB,SAAS,CAAE+uD,QAASF,GAC7B,GAAC,CAAApuD,IAAA,uBAAAC,MAED,SAAqB2lD,GAAM,IAADruC,EAAA,KACtBhX,KAAKhB,SAAS,CAAE+sD,aAAc1G,IAAO,kBACjC3jD,YAAW,kBACPsV,EAAKhY,SAAS,CAAE+sD,aAAc,IAAK,GAAE,IAAI,GACrD,GAAC,CAAAtsD,IAAA,qBAAAC,MAED,SAAmB2lD,GAAM,IAADpuC,EAAA,KACpBjX,KAAKhB,SAAS,CAAEgtD,WAAY3G,IAAO,kBAC/B3jD,YAAW,kBACPuV,EAAKjY,SAAS,CAAEgtD,WAAY,IAAK,GAAE,IAAI,GACnD,GAAC,CAAAvsD,IAAA,oBAAAC,MASD,SAAkBd,GACd,IAAMe,EAAQf,EAAGgB,MAAM,KACvBD,EAAMqS,QACNrS,EAAMqS,QAGN,IAFA,IAAM3E,EAAS,GACX7E,EAAM,YACDzB,EAAI,EAAGA,EAAIpH,EAAMN,OAAQ0H,IAC9ByB,GAAG,IAAA1E,OAAQnE,EAAMoH,IACb/G,KAAK9B,MAAMqe,QAAQ/T,IAAQxI,KAAK9B,MAAMqe,QAAQ/T,GAAKF,OACnD+E,EAAOlG,KAAKk3C,EAAO2P,QAAQhuD,KAAK9B,MAAMqe,QAAQ/T,GAAKF,OAAOzJ,OAE1DwO,EAAOlG,KAAKxH,EAAMoH,IAG1B,MAAM,KAANjD,OAAYuJ,EAAOvN,KAAK,OAC5B,GAAC,CAAAL,IAAA,UAAAC,MAED,WAAW,IAADyX,EAAA,KACN,OAAInX,KAAKrB,MAAM8f,QAAQpf,OACZ,EAACc,EAAAA,GAAAA,MAAC88C,GAAAA,EAAI,CACT9yC,UAAW,MAEXzK,MAAOM,KAAK9B,MAAMonD,cAAgBtlD,KAAK9B,MAAMonD,cAAc/7C,QAAUvJ,KAAKrB,MAAM2L,SAChF3I,SAAU,SAACtB,EAAOX,GAAK,OAAKyX,EAAK82C,YAAY5tD,EAAOX,EAAM,EAC1DooD,eAAe,UACf3mD,MAAO,CAAEmK,SAAU,WAAYsJ,WAAY,GAAIxT,MAAOpB,KAAKrB,MAAM8f,QAAQpf,OAAS,EAAI,oBAAsB,OAAQuG,QAAS,gBAC7HsoD,UAAU,UACVhtD,QAAQ,aACR6mD,cAAc,OAAMrnD,SAAA,CAEnBV,KAAKrB,MAAM8f,QAAQnc,KAAI,SAAA1D,GACpB,GAAKuY,EAAKjZ,MAAMqe,QAAQ3d,GAejB,CACH,IAAIoG,EAAOq5C,EAAO2P,QAAQ72C,EAAKjZ,MAAMqe,QAAQ3d,GAAI0J,OAAOzJ,OAAS,GAC7DgG,EAAQsS,EAAKg3C,kBAAkBvvD,GAC/BoG,EAAK3F,OAAS,KACd2F,EAAI,GAAAlB,OAAMkB,EAAKmN,UAAU,EAAG,IAAG,QAEnC,IAAMO,EAAUyE,EAAKjZ,MAAMqe,QAAQ3d,GAAI0J,QAAU6O,EAAKpH,QAAQnR,IAAOuY,EAAKjZ,MAAMqe,QAAQ3d,GAAI0J,OAAO4N,SAAWiB,EAAKpH,QAAQnR,GAAIsX,OACzH5U,EAAQ,EACVX,EAAAA,GAAAA,KAAA,OAAgB2D,UAAW0K,EAAAA,MAAAA,KAAWmI,EAAKjZ,MAAMqG,QAAQyjD,QAAS7wC,EAAKu2C,gBAAgB9uD,IAAOuY,EAAKjZ,MAAMqG,QAAQ6pD,YAAY1tD,SAAEsE,GAAtH,QACT0N,GAAU/R,EAAAA,GAAAA,KAAA,QAAwB2D,UAAW6S,EAAKjZ,MAAMqG,QAAQ8pD,eAAe3tD,SAAC,UAA5D,eAAuE,MACzFyW,EAAKjZ,MAAMonD,iBAAmBnuC,EAAKjZ,MAAMqV,WAAa4D,EAAKxY,MAAM2L,WAAa1L,KAC5E+B,EAAAA,GAAAA,KAAA,QAAkB2D,UAAW6S,EAAKjZ,MAAMqG,QAAQ0jD,YAAYvnD,UACxDC,EAAAA,GAAAA,KAAC6K,EAAAA,IAAS,CAAClH,UAAW6S,EAAKjZ,MAAMqG,QAAQ+pD,gBAAiB5rD,QAAS,SAAAd,GAAC,OAAIuV,EAAKy2C,WAAWhvD,EAAIgD,EAAE,EAAEuB,SAAS,WADnG,UAKlB,OAAOxC,EAAAA,GAAAA,KAACu8C,GAAAA,EAAG,CACPn7C,SAAUoV,EAAKjZ,MAAMonD,eAAkBnuC,EAAKxY,MAAM2L,WAAa1L,GAAMuY,EAAKjZ,MAAMqV,UAChFg7C,SAAO,EACPpkD,UAAU,MACVqkD,aAAa,QACb9kD,MAAM/I,EAAAA,GAAAA,KAAA,OAAgB8J,IAAI,GAAGD,IAAKiC,GAAO0K,EAAKjZ,MAAMqe,QAAQ3d,GAAI0J,OAAOqF,aAAelB,GAAOG,IAAKtI,UAAW6S,EAAKjZ,MAAMqG,QAAQkqD,SAAjH,QACfC,KAAI,IAAA5qD,OAAMlF,GAEV0C,MAAOA,EACPgD,UAAW6S,EAAKjZ,MAAMqG,QAAQoqD,UAC9BjvD,MAAOd,EACPiG,MAAOA,EACPN,QAAS,CAAEqqD,QAASz3C,EAAKjZ,MAAMqG,QAAQsqD,mBALlCjwD,EAOb,CA5CI,IAAM0C,EAAQ,EACVX,EAAAA,GAAAA,KAAA,OAAgB2D,UAAW0K,EAAAA,MAAAA,KAAWmI,EAAKjZ,MAAMqG,QAAQyjD,QAAS7wC,EAAKu2C,gBAAgB9uD,IAAOuY,EAAKjZ,MAAMqG,QAAQ6pD,YAAY1tD,SAAE9B,EAAGgB,MAAM,KAAKC,OAApI,SACTc,EAAAA,GAAAA,KAAA,QAAiB2D,UAAW6S,EAAKjZ,MAAMqG,QAAQ0jD,YAAYvnD,UACvDC,EAAAA,GAAAA,KAAC6K,EAAAA,IAAS,CAAClH,UAAW6S,EAAKjZ,MAAMqG,QAAQ+pD,gBAAiB5rD,QAAS,SAAAd,GAAC,OAAIuV,EAAKy2C,WAAWhvD,EAAIgD,EAAE,EAAEuB,SAAS,WADnG,SAGd,OAAOxC,EAAAA,GAAAA,KAACu8C,GAAAA,EAAG,CACPqR,SAAO,EACPpkD,UAAW,MACXukD,KAAM,IAAM9vD,EAEZ0C,MAAOA,EACP5B,MAAOd,EACP2F,QAAS,CAAEqqD,QAASz3C,EAAKjZ,MAAMqG,QAAQsqD,mBAHlCjwD,EAoCjB,IACCoB,KAAK9B,MAAMonD,eAAgB3kD,EAAAA,GAAAA,KAACu8C,GAAAA,EAAG,CAC5Bn7C,UAAU,EACVwsD,SAAO,EACPpkD,UAAU,MACVukD,KAAI,IAAA5qD,OAAM9D,KAAK9B,MAAMonD,cAAc/7C,SAEnCjI,MAAOtB,KAAK9B,MAAMonD,cAAc/7C,QAChCjF,UAAWtE,KAAK9B,MAAMqG,QAAQoqD,UAC9BjvD,MAAOM,KAAK9B,MAAMonD,cAAc/7C,QAChC1E,MAAO7E,KAAK9B,MAAMonD,cAAc/7C,QAChChF,QAAS,CAAEqqD,QAAS5uD,KAAK9B,MAAMqG,QAAQsqD,mBALlC7uD,KAAK9B,MAAMonD,cAAc/7C,SAM7B,KApED,SAsERvJ,KAAKrB,MAAM8f,QAAQpf,OAAS,GAAIsB,EAAAA,GAAAA,KAAC4K,EAAAA,EAAU,CAEvCmjD,KAAK,IACL,aAAW,wBACXpqD,UAAWtE,KAAK9B,MAAMqG,QAAQuqD,cAC9BjqD,MAAOhE,EAAAA,KAAAA,EAAO,yBACd,gBAAc,QACd6B,QAAS,SAAAqsD,GACL,IAAMtwC,EAAU,CAACtH,EAAKxY,MAAM2L,UAE5BmD,OAAOC,KAAKyJ,EAAKpH,SAASlJ,SAAQ,SAAAjI,GAAE,OAChCA,IAAOuY,EAAKxY,MAAM2L,UAClBqF,KAAK8C,UAAU0E,EAAKpH,QAAQnR,MAAS+Q,KAAK8C,UAAU0E,EAAKjZ,MAAMqe,QAAQ3d,GAAI0J,SAC3EmW,EAAQtX,KAAKvI,EAAG,IAGpBuF,OAAOyE,cAAgBzE,OAAOyE,aAAauC,QAAQ,iBAAkBwE,KAAK8C,UAAUgM,IACpFtH,EAAKnY,SAAS,CAAEitD,gBAAgB,EAAOC,iBAAkB,KAAMztC,QAASA,GAC5E,EACAvZ,KAAK,SAAQxE,UACbC,EAAAA,GAAAA,KAACquD,EAAAA,IAAY,KAnBT,cAoBQ,OAGTruD,EAAAA,GAAAA,KAAA,OAAiB2D,UAAWtE,KAAK9B,MAAMqG,QAAQ+W,QAAQ5a,UAC1DP,EAAAA,GAAAA,MAACsC,EAAAA,EAAM,CAACE,MAAM,OAAqBZ,UAAQ,EAACuC,UAAWtE,KAAK9B,MAAMqG,QAAQ0qD,WAAYP,KAAK,GAAEhuD,SAAA,EACzFC,EAAAA,GAAAA,KAAA,QAAAD,SAAqBG,EAAAA,KAAAA,EAAO,uBAAlB,YACVF,EAAAA,GAAAA,KAACkT,EAAAA,IAAU,CAAevP,UAAWtE,KAAK9B,MAAMqG,QAAQ2qD,UAAxC,YAChBvuD,EAAAA,GAAAA,KAAA,QAAAD,SAAqBG,EAAAA,KAAAA,EAAO,8BAAlB,aAHW,YADb,QAQxB,GAAC,CAAApB,IAAA,eAAAC,MAED,WAAgB,IAAD4X,EAAA,KACX,OAAKtX,KAAKrB,MAAMwtD,eAIThsD,EAAAA,GAAAA,MAACwX,EAAAA,EAAI,CAER/Y,GAAG,aACHgZ,SAAU5X,KAAKrB,MAAMwwD,kBACrB1uD,KAAMT,KAAKrB,MAAMwtD,cACjB5tD,QAAS,kBAAM+Y,EAAKtY,SAAS,CAAEmtD,eAAe,EAAOgD,kBAAmB,MAAO,EAC/Et3C,WAAY,CACR1W,MAAO,CACH2W,UAAWC,MAEjBrX,SAAA,EAEFP,EAAAA,GAAAA,MAACoC,EAAAA,EAAQ,CACLsC,MAAOhE,EAAAA,KAAAA,EAAO,cACd6B,QAAS,SAAArC,GACLA,EAAM6S,kBACN7S,EAAMoB,iBACN6V,EAAKtY,SAAS,CAAEmtD,eAAe,EAAOgD,kBAAmB,KAAM5D,cAAej0C,EAAK3Y,MAAM4sD,eAAgB,kBAAMj0C,EAAK3V,SAAS,CAAEmf,MAAOxJ,EAAK3Y,MAAM4sD,cAAe,GACpK,EAAE7qD,SAAA,EACFC,EAAAA,GAAAA,KAACs4B,GAAAA,EAAQ,CAACC,QAASl5B,KAAKrB,MAAM4sD,gBAC9B5qD,EAAAA,GAAAA,KAACoY,EAAAA,IAAS,CAACzU,UAAWtE,KAAK9B,MAAMqG,QAAQ6qD,SAAUjuD,MAAO,CAAEwB,MAAOooD,MAClElqD,EAAAA,KAAAA,EAAO,iBATE,iBAWdV,EAAAA,GAAAA,MAACoC,EAAAA,EAAQ,CACLsC,MAAOhE,EAAAA,KAAAA,EAAO,gBACd6B,QAAS,SAAArC,GACLA,EAAM6S,kBACN7S,EAAMoB,iBACN6V,EAAKtY,SAAS,CAAEmtD,eAAe,EAAOgD,kBAAmB,KAAM3D,gBAAiBl0C,EAAK3Y,MAAM6sD,iBAAkB,kBAAMl0C,EAAK3V,SAAS,CAAEurD,QAAS51C,EAAK3Y,MAAM6sD,gBAAiB,GAC5K,EAAE9qD,SAAA,EACFC,EAAAA,GAAAA,KAACs4B,GAAAA,EAAQ,CAACC,QAASl5B,KAAKrB,MAAM6sD,kBAC9B7qD,EAAAA,GAAAA,KAAC0uD,EAAAA,IAAW,CAAC/qD,UAAWtE,KAAK9B,MAAMqG,QAAQ6qD,SAAUjuD,MAAO,CAAEwB,MAAOqoD,MACpEnqD,EAAAA,KAAAA,EAAO,mBATE,oBAtBV,aAJG,IAsCf,GAAC,CAAApB,IAAA,gBAAAC,MAED,WACI,MAAO,CACHM,KAAKrB,MAAM4sD,cAAgBvrD,KAAKrB,MAAM6sD,iBAAkB7qD,EAAAA,GAAAA,KAACoY,EAAAA,IAAS,CAAoBzU,UAAWtE,KAAK9B,MAAMqG,QAAQ6qD,SAAUjuD,MAAO,CAAEwB,MAAOqoD,KAAvE,gBACvEhrD,KAAKrB,MAAM4sD,eAAiBvrD,KAAKrB,MAAM6sD,iBAAkB7qD,EAAAA,GAAAA,KAACoY,EAAAA,IAAS,CAAsBzU,UAAWtE,KAAK9B,MAAMqG,QAAQ6qD,SAAUjuD,MAAO,CAAEwB,MAAOooD,KAAzE,mBACvE/qD,KAAKrB,MAAM4sD,cAAgBvrD,KAAKrB,MAAM6sD,iBAAkB7qD,EAAAA,GAAAA,KAAC0uD,EAAAA,IAAW,CAAsB/qD,UAAWtE,KAAK9B,MAAMqG,QAAQ6qD,SAAUjuD,MAAO,CAAEwB,MAAOqoD,KAAzE,kBAElF,GAAC,CAAAvrD,IAAA,mBAAAC,MAED,WAAoB,IAADgY,EAAA,KACf,OAAI1X,KAAKrB,MAAM2wD,eACJ3uD,EAAAA,GAAAA,KAAC4uD,EAAAA,QAAa,CACjBhxD,QAAS,WACLmZ,EAAK1Y,SAAS,CAAEswD,eAAe,IAAS,kBACpC53C,EAAKxZ,MAAMsxD,mBAAkB,EAAK,GAC1C,EACA7B,GAAI9sD,EAAAA,KAAAA,EAAO,OACX4uD,OAAQ5uD,EAAAA,KAAAA,EAAO,UACfmE,KAAMnE,EAAAA,KAAAA,EAAO,0FAGV,IAEf,GAAC,CAAApB,IAAA,aAAAC,MAED,WAAc,IAADsZ,EAAA,KACH02C,EAAoB1vD,KAAKrB,MAAM2L,UAAYtK,KAAK+P,QAAQ/P,KAAKrB,MAAM2L,WAAatK,KAAK+P,QAAQ/P,KAAKrB,MAAM2L,UAAUsD,QAAU5N,KAAKrB,MAAMsS,iBAAiBjR,KAAK+P,QAAQ/P,KAAKrB,MAAM2L,UAAUsD,QAC1L+hD,EAAkB3vD,KAAKrB,MAAM2L,UAAYtK,KAAK+P,QAAQ/P,KAAKrB,MAAM2L,WAAatK,KAAK+P,QAAQ/P,KAAKrB,MAAM2L,UAAUrC,QAEtH,GAAIjI,KAAKrB,MAAM2L,SAAU,CACrB,IAAMslD,EAAaniD,OAAOC,KAAK1N,KAAKrB,MAAM+T,SAAS/J,QAAO,SAAA/J,GAAE,OAAIoa,EAAKra,MAAM+T,QAAQ9T,EAAG,IAAES,OAClFqT,EAAU1S,KAAKrB,MAAM+T,QAAQ1S,KAAKrB,MAAM2L,UAC9C,OACInK,EAAAA,GAAAA,MAACioD,GAAAA,EAAO,CAAClnD,QAAQ,QAAQoD,UAAWtE,KAAK9B,MAAMqG,QAAQ+W,QAAQ5a,SAAA,EACzDV,KAAK9B,MAAMonD,eAAiBtlD,KAAKrB,MAAM+R,YAAc1Q,KAAK9B,MAAM2xD,WAAYlvD,EAAAA,GAAAA,KAAC4K,EAAAA,EAAU,CACrFjH,UAAWtE,KAAK9B,MAAMqG,QAAQ8U,eAE9BxU,MAAOhE,EAAAA,KAAAA,EAAO,eACd6B,QAAS,kBAAMsW,EAAK9a,MAAM2xD,SAAS72C,EAAKra,MAAM2L,SAAS,EACvDpF,KAAK,SAAQxE,UAEbC,EAAAA,GAAAA,KAACmvD,EAAAA,IAAU,KALP,WAON9vD,KAAK9B,MAAMonD,gBAAkB5yC,GAAWg9C,IAAqB/uD,EAAAA,GAAAA,KAAC4K,EAAAA,EAAU,CAEtExJ,SAAU/B,KAAK9B,MAAMqV,UACrBrS,QAAQ,YACRoD,UAAWtE,KAAK9B,MAAMqG,QAAQ8U,eAC9B3W,QAAS,kBAAMsW,EAAKsvC,WAAW,EAC/BzjD,MAAOhE,EAAAA,KAAAA,EAAO,WACdqE,KAAK,SAAQxE,UAEbC,EAAAA,GAAAA,KAAC4nD,EAAAA,IAAW,KARR,YAUNvoD,KAAK9B,MAAMonD,gBAAkB5yC,IAAW/R,EAAAA,GAAAA,KAAC4K,EAAAA,EAAU,CAEjDxJ,SAAU/B,KAAK9B,MAAMqV,UACrBrS,QAAQ,YACRoD,UAAWtE,KAAK9B,MAAMqG,QAAQ8U,eAC9B3W,QAAS,kBAAMsW,EAAK+2C,aAAa,EACjClrD,MAAO8qD,EAAkB9uD,EAAAA,KAAAA,EAAO,gBAAkBA,EAAAA,KAAAA,EAAO,cACzDqE,KAAK,SACL/D,MAAO,CAAEwB,MAAOgtD,EAAkB7jD,GAAYI,IAAcxL,SAE3DivD,GAAkBhvD,EAAAA,GAAAA,KAAC+S,EAAAA,IAAS,KAAM/S,EAAAA,GAAAA,KAACgT,EAAAA,IAAQ,KATxC,eAWN3T,KAAK9B,MAAMonD,gBAAkB5yC,IAAYi9C,IAAmBhvD,EAAAA,GAAAA,KAAA,QAAM2D,UAAWtE,KAAK9B,MAAMqG,QAAQyrD,WAAWtvD,SAAEG,EAAAA,KAAAA,EAAO,4BACpH6R,GAAWi9C,IAAoBD,IAAqB/uD,EAAAA,GAAAA,KAAA,QAAM2D,UAAWtE,KAAK9B,MAAMqG,QAAQyrD,WAAWtvD,SAAEG,EAAAA,KAAAA,EAAO,0BAC7G6R,IAAWvS,EAAAA,GAAAA,MAACsC,EAAAA,EAAM,CAACE,MAAM,OAAkBzB,QAAQ,YAAYoD,UAAW0K,EAAAA,MAAAA,KAAWhP,KAAK9B,MAAMqG,QAAQ0rD,WAAYjwD,KAAK9B,MAAMqG,QAAQ2rD,WAAY,eAAgBxtD,QAAS,kBAAMsW,EAAKm3C,QAAQ,EAACzvD,SAAA,CAAEG,EAAAA,KAAAA,EAAO,SAAQF,EAAAA,GAAAA,KAACy2B,EAAAA,IAAQ,CAAC9yB,UAAWtE,KAAK9B,MAAMqG,QAAQ6rD,aAArN,SACnCR,EAAa,GAAqB,IAAfA,IAAqBl9C,KAAavS,EAAAA,GAAAA,MAACsC,EAAAA,EAAM,CAACE,MAAM,OAAqBzB,QAAQ,YAAYoD,UAAWtE,KAAK9B,MAAMqG,QAAQ0rD,WAAYvtD,QAAS,kBAAMsW,EAAKq3C,WAAW,EAAC3vD,SAAA,CAAEG,EAAAA,KAAAA,EAAO,aAAYF,EAAAA,GAAAA,KAACy2B,EAAAA,IAAQ,CAAC9yB,UAAWtE,KAAK9B,MAAMqG,QAAQ6rD,aAArK,WAC/E19C,IAAWvS,EAAAA,GAAAA,MAACsC,EAAAA,EAAM,CAACE,MAAM,OAAoBzB,QAAQ,YAAYoD,UAAWtE,KAAK9B,MAAMqG,QAAQ0rD,WAAYvtD,QAAS,kBAAMsW,EAAKs3C,UAAU,EAAC5vD,SAAA,CAAEG,EAAAA,KAAAA,EAAO,WAAUF,EAAAA,GAAAA,KAACmC,EAAAA,IAAU,CAACwB,UAAWtE,KAAK9B,MAAMqG,QAAQ6rD,aAAnK,WACrCzvD,EAAAA,GAAAA,KAAA,OAAKQ,MAAO,CAAEiT,KAAM,KAEnBpU,KAAKrB,MAAMytB,UAAYpsB,KAAKrB,MAAM8sD,mBAC/B9qD,EAAAA,GAAAA,KAAC4K,EAAAA,EAAU,CAEP,aAAW,gBACX1G,MAAOhE,EAAAA,KAAAA,EAAO,iBACdyD,UAAWtE,KAAK9B,MAAMqG,QAAQ8U,eAC9B3W,QAAS,kBAAMsW,EAAKu3C,qBAAqB,SAAS,EAClDrrD,KAAK,SAAQxE,UAEbC,EAAAA,GAAAA,KAAC2X,EAAAA,aAAU,KAPP,UAUXtY,KAAKrB,MAAMytB,UAAYpsB,KAAKrB,MAAM8sD,mBAC/B9qD,EAAAA,GAAAA,KAAC4K,EAAAA,EAAU,CAEP,aAAW,gBACX1G,MAAOhE,EAAAA,KAAAA,EAAO,iBACdyD,UAAWtE,KAAK9B,MAAMqG,QAAQ8U,eAC9B3W,QAAS,kBAAMsW,EAAKu3C,qBAAqB,SAAS,EAClDrrD,KAAK,SAAQxE,UAEbC,EAAAA,GAAAA,KAAC6X,EAAAA,aAAU,KAPP,UAUXxY,KAAKrB,MAAMytB,UAAYpsB,KAAKrB,MAAM8sD,mBAC/B9qD,EAAAA,GAAAA,KAAC4K,EAAAA,EAAU,CAEP,aAAW,aACX1G,MAAOhE,EAAAA,KAAAA,EAAO,gBACdyD,UAAWtE,KAAK9B,MAAMqG,QAAQ8U,eAC9B3W,QAAS,kBAAMsW,EAAKu3C,qBAAqB,QAAQ,EACjDrrD,KAAK,SAAQxE,UAEbC,EAAAA,GAAAA,KAAC8rC,EAAAA,gBAAS,KAPN,UAUVzsC,KAAK9B,MAAMqV,YAAcvT,KAAKrB,MAAMytB,UAAYpsB,KAAKrB,MAAM2sD,QAAUtrD,KAAKrB,MAAM8sD,mBAAoB9qD,EAAAA,GAAAA,KAAC4K,EAAAA,EAAU,CAE7G,aAAW,cACX1G,MAAOhE,EAAAA,KAAAA,EAAO,sCACdyD,UAAWtE,KAAK9B,MAAMqG,QAAQ8U,eAC9B3W,QAAS,kBAAMsW,EAAKha,SAAS,CAAE0sD,UAAU,GAAO,EAChDxmD,KAAK,SAAQxE,UAEbC,EAAAA,GAAAA,KAAC6vD,EAAAA,QAAQ,KAPL,gBAUR7vD,EAAAA,GAAAA,KAAC4K,EAAAA,EAAU,CAEP,aAAW,2BACX1G,MAAOhE,EAAAA,KAAAA,EAAO,4BACdyD,UAAWtE,KAAK9B,MAAMqG,QAAQ8U,eAC9BtX,UAAW2tD,EACXhtD,QAAS,WACLsW,EAAKha,SAAS,CAAE4sD,WAAW,EAAMC,YAAa,OAE9C7yC,EAAK9a,MAAMgK,OAAOma,OAAOrJ,EAAKjJ,QAAQiJ,EAAKra,MAAM2L,UAAUsD,OAAO7N,QAAQ,kBAAmB,IAAK,eAAgB,CAAC,GAC9GqI,MAAK,SAAAyjD,GAAW,OAAI7yC,EAAKha,SAAS,CAAE6sD,YAAAA,GAAc,GAC3D,EACA3mD,KAAK,SAAQxE,UAEbC,EAAAA,GAAAA,KAAC8vD,EAAAA,IAAS,KAbN,eAgBNzwD,KAAK9B,MAAMqV,YAAcvT,KAAKrB,MAAMytB,UAAYpsB,KAAKrB,MAAM2sD,QAAUtrD,KAAKrB,MAAM8sD,mBAAoB9qD,EAAAA,GAAAA,KAAC4K,EAAAA,EAAU,CAE7G,aAAW,YACX1G,MAAOhE,EAAAA,KAAAA,EAAO,oBACdyD,UAAWtE,KAAK9B,MAAMqG,QAAQ8U,eAC9B3W,QAAS,kBAAMsW,EAAKha,SAAS,CAAEkgC,cAAc,GAAO,EACpDh6B,KAAK,SAAQxE,UAEbC,EAAAA,GAAAA,KAAC+vD,EAAAA,gBAAY,KAPT,aAUP1wD,KAAKrB,MAAMytB,UAAYpsB,KAAKrB,MAAM2sD,OAAStrD,KAAKrB,MAAM8sD,mBAAoB9qD,EAAAA,GAAAA,KAAC8B,EAAAA,EAAM,CAACE,MAAM,OAAwB,aAAW,wBACxHkC,MAAOhE,EAAAA,KAAAA,EAAO,2CACd6B,QAAS,kBAAMsW,EAAK23C,qBAAqB,EAACjwD,SAC7C,eAHmG,cAInGV,KAAKrB,MAAM2sD,QAAUtrD,KAAKrB,MAAM8sD,mBAC7B9qD,EAAAA,GAAAA,KAAC4K,EAAAA,EAAU,CAEP,aAAW,gBACX1G,MAAOhE,EAAAA,KAAAA,EAAO,iBACdyD,UAAWtE,KAAK9B,MAAMqG,QAAQ8U,eAC9B3W,QAAS,kBAAMsW,EAAK43C,mBAAmB,SAAS,EAChD1rD,KAAK,SAAQxE,UAEbC,EAAAA,GAAAA,KAAC2X,EAAAA,aAAU,KAPP,UASXtY,KAAKrB,MAAM2sD,QAAUtrD,KAAKrB,MAAM8sD,mBAC7B9qD,EAAAA,GAAAA,KAAC4K,EAAAA,EAAU,CAEP,aAAW,gBACX1G,MAAOhE,EAAAA,KAAAA,EAAO,iBACdyD,UAAWtE,KAAK9B,MAAMqG,QAAQ8U,eAC9B3W,QAAS,kBAAMsW,EAAK43C,mBAAmB,SAAS,EAChD1rD,KAAK,SAAQxE,UAEbC,EAAAA,GAAAA,KAAC6X,EAAAA,aAAU,KAPP,UAUXxY,KAAK9B,MAAM2S,aAAe6B,IAAY1S,KAAK9B,MAAMqV,YAAevT,KAAKrB,MAAMytB,UAAYpsB,KAAKrB,MAAM2sD,QAAYtrD,KAAKrB,MAAMytB,SAAWpsB,KAAKrB,MAAM2sD,QAAUtrD,KAAKrB,MAAM8sD,oBAAsB9qD,EAAAA,GAAAA,KAAC4K,EAAAA,EAAU,CAClMjH,UAAWtE,KAAK9B,MAAMqG,QAAQ8U,eAC9B1W,MAAO3C,KAAK9B,MAAMqV,UAAY,UAAY,UAC1CxR,UAAW/B,KAAK9B,MAAMqV,YAAcm8C,EACpChtD,QAAS,YACAsW,EAAK9a,MAAMqV,WAAao8C,EACzB32C,EAAKha,SAAS,CAAEswD,eAAe,IAE/Bt2C,EAAK9a,MAAMsxD,mBAAmBx2C,EAAK9a,MAAMqV,UAEjD,EACArO,KAAK,SAAQxE,UAEbC,EAAAA,GAAAA,KAACkwD,EAAAA,IAAa,CAAC1vD,MAAO,CAAEgC,SAAU,SAGpCnD,KAAKrB,MAAMytB,SAAWpsB,KAAKrB,MAAM2sD,SAAU3qD,EAAAA,GAAAA,KAAC8B,EAAAA,EAAM,CAEhD,aAAW,UACXoC,MAAOhE,EAAAA,KAAAA,EAAO,wBACdyD,UAAW0K,EAAAA,MAAAA,KAAWhP,KAAK9B,MAAMqG,QAAQ8U,eAAgB,iBAAkBrZ,KAAK9B,MAAMqV,WAAavT,KAAK9B,MAAMqG,QAAQusD,wBACtHnuD,MAAO3C,KAAKrB,MAAM8sD,iBAAmB,YAAc,UACnD1pD,SAAU/B,KAAK9B,MAAMqV,UACrBpS,MAAO,CAAE+S,QAAS,SAClBxR,QAAS,WACDsW,EAAK9a,MAAMqV,YAGfyF,EAAKha,SAAS,CAAEysD,kBAAmBzyC,EAAKra,MAAM8sD,mBAC9CzyC,EAAKra,MAAMyiC,YAAcpoB,EAAKra,MAAM0iC,WAAa/D,IAAwBtkB,EAAKha,SAAS,CAAEqiC,SAAU/D,KACnGtkB,EAAKra,MAAMyiC,YAAcpoB,EAAKra,MAAM0iC,WAAa/D,IAA2BtkB,EAAKha,SAAS,CAAEqiC,SAAU/D,KAC1G,EAAE58B,UACFC,EAAAA,GAAAA,KAAA,OAAK8J,IAAKzK,KAAKrB,MAAMytB,QAAU,aAAe,WAAY5hB,IAAKxK,KAAKrB,MAAMytB,Q,ynQAftE,iBAgBRzrB,EAAAA,GAAAA,KAAC4K,EAAAA,EAAU,CAEPxJ,SAAU/B,KAAK9B,MAAMqV,UACrB,aAAW,aACX1O,MAAOhE,EAAAA,KAAAA,EAAO,iBACdyD,UAAWtE,KAAK9B,MAAMqG,QAAQ8U,eAC9B3W,QAAS,SAAAd,GAAC,OAAIoX,EAAKha,SAAS,CAAEmtD,eAAe,EAAMgD,kBAAmBvtD,EAAE6X,eAAgB,EACxFvU,KAAK,SAAQxE,UAEbC,EAAAA,GAAAA,KAACqpD,GAAAA,EAAK,CAAC1lD,UAAWtE,KAAK9B,MAAMqG,QAAQwsD,YAAa9G,aAAcjqD,KAAKgxD,gBAAgBtwD,UACjFC,EAAAA,GAAAA,KAACswD,EAAAA,IAAa,OATd,WAhLwD,WA8L5E,CACI,OAAO,IAEf,GAAC,CAAAxxD,IAAA,kBAAAC,MAED,WAAmB,IAADya,EAAA,KACd,OAAKna,KAAK9B,MAAMqV,YACZvT,KAAKrB,MAAM2L,WACXtK,KAAK9B,MAAMqe,QAAQvc,KAAKrB,MAAM2L,WACP,OAAvBtK,KAAKrB,MAAMytB,SACTpsB,KAAKrB,MAAMytB,UAAWpsB,KAAKrB,MAAM8sD,kBACjCzrD,KAAKrB,MAAM2sD,QAAStrD,KAAKrB,MAAM8sD,iBAyB1B,MAvBPzrD,KAAK+P,QAAQ/P,KAAKrB,MAAM2L,UAAYtK,KAAK+P,QAAQ/P,KAAKrB,MAAM2L,WAAaqF,KAAKC,MAAMD,KAAK8C,UAAUzS,KAAK9B,MAAMqe,QAAQvc,KAAKrB,MAAM2L,UAAUhC,UAEpI3H,EAAAA,GAAAA,KAAA,OAAK2D,UAAWtE,KAAK9B,MAAMqG,QAAQ+5C,UAAU59C,UAChDC,EAAAA,GAAAA,KAACu2B,GAAqB,CAElBr4B,KAAMmB,KAAKrB,MAAM2L,SACjB6sB,YAAan3B,KAAK9B,MAAMi5B,YACxBtV,OAAQ7hB,KAAKrB,MAAMkjB,OACnByH,WAAY,kBAAMnP,EAAKnb,SAAS,CAAE6iB,OAAQ,IAAK,EAC/C6C,YAAa,kBAAMvK,EAAKg2C,QAAQ,EAChCr/C,WAAY9Q,KAAKrB,MAAMmS,WACvB2R,iBAAkB,SAAAmoB,GAAI,OAAIzwB,EAAKsI,iBAAiBmoB,EAAK,EACrDvpB,SAAUrhB,KAAKrB,MAAM8sD,iBACrB/4C,QAAS1S,KAAKrB,MAAM+T,QAAQ1S,KAAKrB,MAAM2L,UACvCyX,KAAM/hB,KAAK+P,QAAQ/P,KAAKrB,MAAM2L,UAAU4L,QAAU,GAClDiL,OAAiC,SAAzBnhB,KAAKrB,MAAMsrB,UACnB/hB,OAAQlI,KAAK9B,MAAMgK,OACnB+I,iBAAkBjR,KAAKrB,MAAMsS,iBAC7BtP,SAAU,SAAA4nB,GAAQ,OAAIpP,EAAKxY,SAAS,CAAE6T,OAAQ+T,GAAW,EACzDnI,SAA2D,kBAAjDphB,KAAK+P,QAAQ/P,KAAKrB,MAAM2L,UAAUqD,WAAiC,aAAe,cAfxF,kBAF6C,mBAuBjE,GAAC,CAAAlO,IAAA,mBAAAC,MAED,WAAoB,IAAD0a,EAAA,KACf,OAAKpa,KAAK9B,MAAMqV,WACZvT,KAAKrB,MAAM0tD,iBACXrsD,KAAKrB,MAAM2L,UACXtK,KAAK9B,MAAMqe,QAAQvc,KAAKrB,MAAM2L,WAC9BtK,KAAKrB,MAAMytB,UACVpsB,KAAKrB,MAAM8sD,kBACZzrD,KAAKrB,MAAMmtD,SAEX9rD,KAAK+P,QAAQ/P,KAAKrB,MAAM2L,UAAYtK,KAAK+P,QAAQ/P,KAAKrB,MAAM2L,WAAaqF,KAAKC,MAAMD,KAAK8C,UAAUzS,KAAK9B,MAAMqe,QAAQvc,KAAKrB,MAAM2L,UAAUhC,UAEpI3H,EAAAA,GAAAA,KAAA,OAAK2D,UAAWtE,KAAK9B,MAAMqG,QAAQ+5C,UAAU59C,UAChDC,EAAAA,GAAAA,KAACwrB,GAAa,CACVsB,QAASztB,KAAKrB,MAAMotD,aAEpB9hC,UAAWjqB,KAAKrB,MAAMsrB,UACtBnZ,WAAY9Q,KAAKrB,MAAMmS,WACvBogD,SAAUlxD,KAAK9B,MAAMgzD,SACrBnvC,KAAM/hB,KAAK+P,QAAQ/P,KAAKrB,MAAM2L,UAAU4L,QAAU,GAClDvU,SAAU,SAAA4nB,GAAQ,OAAInP,EAAKzY,SAAS,CAAE6T,OAAQ+T,GAAW,GALrD,kBAH6C,qBAYlD,IAEf,GAAC,CAAA9pB,IAAA,iBAAAC,MAED,WAAkB,IAADkb,EAAA,KACb,IAAK5a,KAAK9B,MAAMqV,WACZvT,KAAKrB,MAAM0tD,iBACXrsD,KAAKrB,MAAM2L,UACXtK,KAAK9B,MAAMqe,QAAQvc,KAAKrB,MAAM2L,WAC9BtK,KAAKrB,MAAM2sD,QACVtrD,KAAKrB,MAAM8sD,kBACZzrD,KAAKrB,MAAMmtD,QACb,CACE9rD,KAAK+P,QAAQ/P,KAAKrB,MAAM2L,UAAYtK,KAAK+P,QAAQ/P,KAAKrB,MAAM2L,WAAaqF,KAAKC,MAAMD,KAAK8C,UAAUzS,KAAK9B,MAAMqe,QAAQvc,KAAKrB,MAAM2L,UAAUhC,SAC3I,IAAMonD,EAAoB1vD,KAAKrB,MAAM2L,UAAYtK,KAAK+P,QAAQ/P,KAAKrB,MAAM2L,WAAatK,KAAK+P,QAAQ/P,KAAKrB,MAAM2L,UAAUsD,QAAU5N,KAAKrB,MAAMsS,iBAAiBjR,KAAK+P,QAAQ/P,KAAKrB,MAAM2L,UAAUsD,QAC1L+hD,EAAkB3vD,KAAKrB,MAAM2L,UAAYtK,KAAK+P,QAAQ/P,KAAKrB,MAAM2L,WAAatK,KAAK+P,QAAQ/P,KAAKrB,MAAM2L,UAAUrC,QAEtH,OAAOtH,EAAAA,GAAAA,KAAA,OAAK2D,UAAW0K,EAAAA,MAAAA,KAAWhP,KAAK9B,MAAMqG,QAAQ+5C,WAAW59C,UAC5DC,EAAAA,GAAAA,KAACwwD,GAAW,CACR9T,SAAUr9C,KAAKrB,MAAM2L,SACrBg3B,YAAathC,KAAKshC,YAClBD,SAAUrhC,KAAKrB,MAAM0iC,SACrBD,WAAYphC,KAAKrB,MAAMyiC,WACvB1uB,QAAS1S,KAAKrB,MAAM+T,QAAQ1S,KAAKrB,MAAM2L,UACvCgzC,QAASoS,GAAqBC,EAC9BliC,QAASztB,KAAKrB,MAAMqtD,WAEpB/hC,UAAWjqB,KAAKrB,MAAMsrB,UACtB/Z,UAAWlQ,KAAK9B,MAAMgS,UACtBY,WAAY9Q,KAAKrB,MAAMmS,WACvBogD,SAAUlxD,KAAK9B,MAAMgzD,SACrBnvC,KAAM/hB,KAAK+P,QAAQ/P,KAAKrB,MAAM2L,UAAU4L,QAAU,GAClDvU,SAAU,SAAA4nB,GAAQ,OAAI3O,EAAKjZ,SAAS,CAAE6T,OAAQ+T,GAAW,GANrD,eATyD,gBAkBzE,CACI,OAAO,IAEf,GAAC,CAAA9pB,IAAA,mBAAAC,MAED,WAAoB,IAADob,EAAA,KACf,OAAI9a,KAAKrB,MAAMovD,SACJptD,EAAAA,GAAAA,KAAC4uD,EAAAA,QAAa,CAEjBvqD,KAAMhF,KAAKrB,MAAMovD,QACjBxvD,QAAS,SAAA8O,GACL,GAAIyN,EAAKgzC,gBAAiB,CACtB,IAAMh8C,EAAKgJ,EAAKgzC,gBAChBhzC,EAAKgzC,gBAAkB,KACvBh8C,EAAGzE,EACP,CACAyN,EAAK9b,SAAS,CAAE+uD,QAAS,IAC7B,GATI,kBAYD,IAEf,GAAC,CAAAtuD,IAAA,oBAAAC,MAED,WAAqB,IAAD0xD,EAAA,KAChB,GAAIpxD,KAAKrB,MAAMugC,aAAc,CACzB,IAAImyB,EAAarxD,KAAK2c,SAASqZ,SAAWh2B,KAAK2c,SAAS4vC,WAAa,GAAKvsD,KAAKutD,UAAYvtD,KAAKutD,YAAc,GAK1G36C,EAAMy+C,EAAWjrD,QAAQ,OAChB,IAATwM,IACAy+C,EAAaA,EAAWl/C,UAAU,EAAGS,KAG5B,KADbA,EAAMy+C,EAAWjrD,QAAQ,SAErBirD,EAAaA,EAAWl/C,UAAU,EAAGS,IAEzC,IAAIyE,EAAIg6C,EAAWp/C,MAAM,aASzB,OARIoF,IACAg6C,EAAah6C,EAAE,KAEnBA,EAAIg6C,EAAWp/C,MAAM,gBAEjBo/C,EAAah6C,EAAE,KAGZ1W,EAAAA,GAAAA,KAAC6+B,EAAAA,SAAc,CAElBC,YAAY,QACZvvB,UAAWlQ,KAAK9B,MAAMgS,UACtB+Z,UAAWjqB,KAAKrB,MAAMsrB,UACtB/hB,OAAQlI,KAAK9B,MAAMgK,OACnBoC,SAAU+mD,EACVxgD,WAAmC,WAAvB7Q,KAAK2c,SAAS5Y,WAA2ByK,EAErD8iD,MAAO,CAACtxD,KAAK2c,SAAS5Y,MAAQ,SAC9BxF,QAAS,WACL6yD,EAAKpyD,SAAS,CAAEkgC,cAAc,IAC1BkyB,EAAKz0C,SAASqZ,WACdo7B,EAAKz0C,SAASqZ,SAAW,KAEjC,EACA4J,KAAM,SAACt1B,EAAUzL,GACbuyD,EAAKz0C,SAAS4vC,UAAY,KACtB6E,EAAKz0C,SAASqZ,UACdo7B,EAAKz0C,SAASqZ,SAAS1rB,GACvB8mD,EAAKz0C,SAASqZ,SAAW,MAEzBo7B,EAAKpyD,SAAS,CAAE6iB,OAAO,IAAD/d,OAAMwG,EAAQ,OAAAxG,OAAMjF,EAAI,OAEtD,GAvBI,kBAyBZ,CACI,OAAO,IAEf,GAAC,CAAAY,IAAA,gBAAAC,MAED,WAAiB,IAAD6xD,EAAA,KACZ,OAAIvxD,KAAKrB,MAAM+sD,UACJ/qD,EAAAA,GAAAA,KAAC6wD,EAAAA,KAAU,CAEd3mB,KAAM7qC,KAAK6qC,KAAK7U,SAAWh2B,KAAK6qC,KAAK0hB,WAAa,GAAKvsD,KAAKutD,UAAYvtD,KAAKutD,YAAc,YAC3FhvD,QAAS,kBAAMgzD,EAAKvyD,SAAS,CAAE0sD,UAAU,GAAQ,EACjD9rB,KAAM,SAAAiL,GACF0mB,EAAK1mB,KAAK0hB,UAAY,KAClBgF,EAAK1mB,KAAK7U,UACVu7B,EAAK1mB,KAAK7U,SAAS6U,GACnB0mB,EAAK1mB,KAAK7U,SAAW,MAErBu7B,EAAKvyD,SAAS,CAAE6iB,OAAO,IAAD/d,OAAM+mC,EAAI,MAExC,GAXI,eAcD,IAEf,GAAC,CAAAprC,IAAA,iBAAAC,MAED,WAAkB,IAAD+xD,EAAA,KACb,OAAIzxD,KAAKrB,MAAMitD,WACJzrD,EAAAA,GAAAA,MAACC,EAAAA,EAAM,CACVK,MAAM,EACNlC,QAAS,kBAAMkzD,EAAKzyD,SAAS,CAAE4sD,WAAW,GAAQ,EAAClrD,SAAA,EAGnDC,EAAAA,GAAAA,KAACC,EAAAA,EAAW,CAAAF,SAAEG,EAAAA,KAAAA,EAAO,gCACrBF,EAAAA,GAAAA,KAACG,EAAAA,EAAa,CAAAJ,SACRV,KAAKrB,MAAMktD,aAAmClrD,EAAAA,GAAAA,KAAC+wD,GAAAA,EAAc,CAACvnD,UAAWwgB,GAAAA,EAAMjqB,UAC7EP,EAAAA,GAAAA,MAACwxD,GAAAA,EAAK,CAACzsD,KAAK,QAAOxE,SAAA,EACfC,EAAAA,GAAAA,KAACixD,GAAAA,EAAS,CAAAlxD,UACNP,EAAAA,GAAAA,MAAC0xD,GAAAA,EAAQ,CAAAnxD,SAAA,EACLC,EAAAA,GAAAA,KAACmxD,GAAAA,EAAS,CAAApxD,SAAEG,EAAAA,KAAAA,EAAO,WACnBF,EAAAA,GAAAA,KAACmxD,GAAAA,EAAS,CAAApxD,SAAEG,EAAAA,KAAAA,EAAO,WACnBF,EAAAA,GAAAA,KAACmxD,GAAAA,EAAS,CAAApxD,SAAEG,EAAAA,KAAAA,EAAO,uBAG3BF,EAAAA,GAAAA,KAACoxD,GAAAA,EAAS,CAAArxD,SACL+M,OAAOC,KAAK1N,KAAKrB,MAAMktD,aAAavpD,KAAI,SAAA1D,GAAE,OACvCuB,EAAAA,GAAAA,MAAC0xD,GAAAA,EAAQ,CAAAnxD,SAAA,EACLC,EAAAA,GAAAA,KAACmxD,GAAAA,EAAS,CAAC3nD,UAAU,KAAKg8C,MAAM,MAAKzlD,SAAE9B,EAAGmL,WAAW,QAAU,GAAKnL,KACpE+B,EAAAA,GAAAA,KAACmxD,GAAAA,EAAS,CAACE,MAAM,QAAOtxD,SAAE,IAAIoe,KAAK2yC,EAAK9yD,MAAMktD,YAAYjtD,IAAKqzD,wBAC/DtxD,EAAAA,GAAAA,KAACmxD,GAAAA,EAAS,CAAApxD,SAAEG,EAAAA,KAAAA,EAAOjC,OAHRA,EAIJ,YAfA+B,EAAAA,GAAAA,KAAC2pD,GAAAA,EAAc,OAoB9C3pD,EAAAA,GAAAA,KAAC6B,EAAAA,EAAa,CAAA9B,UACVC,EAAAA,GAAAA,KAAC8B,EAAAA,EAAM,CACHvB,QAAQ,YACRwB,QAAS,kBAAM+uD,EAAKzyD,SAAS,CAAE4sD,WAAW,GAAQ,EAClDjpD,MAAM,UACNC,WAAWjC,EAAAA,GAAAA,KAAC6K,EAAAA,IAAS,IAAI9K,SAExBG,EAAAA,KAAAA,EAAO,eA/BZ,eAoCD,IAEf,GAAC,CAAApB,IAAA,kBAAAC,MAED,WAAmB,IAADwyD,EAAA,KACd,OAAIlyD,KAAKrB,MAAMgtD,YACJhrD,EAAAA,GAAAA,KAACo2B,GAAkB,CAEtBI,YAAan3B,KAAK9B,MAAMi5B,YACxBjhB,OAAQlW,KAAKwsD,aAAaD,UAC1B7oD,KAAM1D,KAAKwsD,aAAa9oD,KAAO1D,KAAKwsD,aAAa9oD,KAAK5D,KAAK,MAAQ,GACnEk3B,SAAUh3B,KAAKwsD,aAAax1B,SAC5B9uB,OAAQlI,KAAK9B,MAAMgK,OACnB+I,iBAAkBjR,KAAKrB,MAAMsS,iBAC7BgZ,UAAWjqB,KAAKrB,MAAMsrB,UACtB1rB,QAAS,SAAA8O,GACL6kD,EAAK1F,aAAaD,UAAY,KAC1B2F,EAAK1F,aAAax2B,YACP,IAAX3oB,GAAoB6kD,EAAK1F,aAAax2B,SAAS3oB,GAAU,IACzD6kD,EAAK1F,aAAax2B,SAAW,MAEjCk8B,EAAKlzD,SAAS,CAAE2sD,YAAY,GAChC,GAfI,sBAkBD,IAEf,GAAC,CAAAlsD,IAAA,WAAAC,MAED,WAAY,IAADyyD,EAAA,KACP,OAAOxxD,EAAAA,GAAAA,KAACyxD,GAAAA,EAAQ,CAEZC,aAAc,CACVpO,SAAU,SACVqO,WAAY,QAEhB7xD,OAAQT,KAAKrB,MAAMytD,MACnBmG,iBAAkB,IAClBh0D,QAAS,kBAAM4zD,EAAKnzD,SAAS,CAAEotD,MAAO,IAAK,EAC3CoG,aAAc,CAAE,mBAAoB,cACpCl0C,SAAS3d,EAAAA,GAAAA,KAAA,QAAM/B,GAAG,aAAY8B,SAAEV,KAAKrB,MAAMytD,QAC3CtkB,OAAQ,EACJnnC,EAAAA,GAAAA,KAAC4K,EAAAA,EAAU,CAEP,aAAW,QACX5I,MAAM,UACN2B,UAAWtE,KAAK9B,MAAMqG,QAAQkuD,WAC9B/vD,QAAS,kBAAMyvD,EAAKnzD,SAAS,CAAEotD,MAAO,IAAK,EAC3ClnD,KAAK,SAAQxE,UAEbC,EAAAA,GAAAA,KAAC6K,EAAAA,IAAS,KAPN,WAZR,QAuBZ,GAAC,CAAA/L,IAAA,UAAAC,MAID,WAAW,IAADgzD,EAAA,KACN,GAAI1yD,KAAKrB,MAAM0tD,iBACXrsD,KAAKrB,MAAM2L,UACqB,IAAhCtK,KAAK9B,MAAMy0D,kBACX3yD,KAAK9B,MAAMqe,QAAQvc,KAAKrB,MAAM2L,WAC9BtK,KAAKrB,MAAM2sD,OACXtrD,KAAKrB,MAAMmtD,QACX,OAAOnrD,EAAAA,GAAAA,KAACiyD,GAAAA,GAAI,CAERC,MAAOA,GACPC,OAAQ9yD,KAAKrB,MAAMyiC,WACnB2xB,eAAgB,WACZL,EAAK1zD,SAAS,CAAEoiC,YAAY,IAC5Bj9B,OAAOyE,aAAauC,QAAQ,OAAQ,QACpCunD,EAAKx0D,MAAMgK,OAAOlJ,SAAS,mCAAoC,CAAE2T,KAAK,EAAMo5B,KAAK,GACrF,EAEAinB,SAAUhzD,KAAKrB,MAAM0iC,UATjB,OAYhB,GAAC,CAAA5hC,IAAA,WAAAC,MAED,WAAY,IAADuzD,EAAA,KACP,OAAIjzD,KAAK9B,MAAMqV,UACevT,KAAKrB,MAAM2L,UAAYtK,KAAK+P,QAAQ/P,KAAKrB,MAAM2L,WAAatK,KAAK+P,QAAQ/P,KAAKrB,MAAM2L,UAAUsD,QAAU5N,KAAKrB,MAAMsS,iBAAiBjR,KAAK+P,QAAQ/P,KAAKrB,MAAM2L,UAAUsD,SAErLjN,EAAAA,GAAAA,KAACwkD,GAAQ,CAEZl0C,iBAAkBjR,KAAKrB,MAAMsS,iBAC7BkmB,YAAan3B,KAAK9B,MAAMi5B,YACxBjvB,OAAQlI,KAAK9B,MAAMgK,OACnB5E,MAAOtD,KAAK9B,MAAMoF,MAClB4M,UAAWlQ,KAAK9B,MAAMgS,UACtB+Z,UAAWjqB,KAAK9B,MAAM+rB,UACtBzf,IAAKxK,KAAK9B,MAAMonD,cAAgBtlD,KAAK9B,MAAMonD,cAAc/7C,QAAUvJ,KAAKrB,MAAM2L,SAC9Eg7C,cAAetlD,KAAK9B,MAAMonD,eARtB,aAWR5jD,YAAW,kBAAMuxD,EAAK/0D,MAAMsxD,mBAAkB,EAAM,IAC7C,MAGJ,IAEf,GAAC,CAAA/vD,IAAA,SAAAC,MAED,WAAU,IAADwzD,EAAA,KAkBL,OAjBIlzD,KAAKrB,MAAM2L,UAAYtK,KAAK9B,MAAMqe,QAAQvc,KAAKrB,MAAM2L,WAAoC,OAAvBtK,KAAKrB,MAAMytB,SAAyC,OAArBpsB,KAAKrB,MAAM2sD,QAC5GtrD,KAAK+P,QAAQ/P,KAAKrB,MAAM2L,UAAYtK,KAAK+P,QAAQ/P,KAAKrB,MAAM2L,WAAaqF,KAAKC,MAAMD,KAAK8C,UAAUzS,KAAK9B,MAAMqe,QAAQvc,KAAKrB,MAAM2L,UAAUhC,SAC3I5G,YAAW,WACP,IAAMoR,EAAW,CACbsZ,QAA0D,YAAjD8mC,EAAKnjD,QAAQmjD,EAAKv0D,MAAM2L,UAAUqD,WAC3C29C,MAAwD,UAAjD4H,EAAKnjD,QAAQmjD,EAAKv0D,MAAM2L,UAAUqD,WACzC89C,kBAAkB,EAClBF,aAAc2H,EAAKnjD,QAAQmjD,EAAKv0D,MAAM2L,UAAUwW,MAChD0qC,eAAgB0H,EAAKnjD,QAAQmjD,EAAKv0D,MAAM2L,UAAU4iD,SAItDgG,EAAK/F,yBAAyB,KAAMr6C,GACpCogD,EAAKl0D,SAAS8T,EAClB,GAAG,MAGA,CACH9S,KAAKmzD,UACLnzD,KAAKozD,aACLpzD,KAAKqzD,kBACLrzD,KAAKszD,mBACLtzD,KAAKuzD,mBACLvzD,KAAKwzD,iBACLxzD,KAAKyzD,WACLzzD,KAAK0zD,mBACL1zD,KAAK2zD,oBACL3zD,KAAK4zD,gBACL5zD,KAAK6zD,kBACL7zD,KAAK8zD,iBACL9zD,KAAK+zD,eACL/zD,KAAKg0D,WACLh0D,KAAKi0D,UAEb,IAAC,EAAAx0D,IAAA,UAAAC,MAtwBD,SAAesF,GACX,MAAoB,kBAATA,EACAA,EAAKnE,EAAAA,KAAAA,gBAAuBmE,EAAKgI,GAErChI,CACX,KAACq5C,CAAA,CArlBO,CAASt7C,IAAAA,WA+2CrB,IAAeM,EAAAA,EAAAA,IAr9CA,SAAAC,GAAK,MAAK,CAErBgY,QAAS,CACLsvC,UAAW,GACX3pC,UAAW,kHAEf5H,eAAgB,CACZnF,QAAS,EACTU,WAAY,GAEhBk8C,uBAAwB,CACpBnoD,OAAQ,kBACRyG,QAAS,IAEbkvC,UAAW,CACPz4C,OAAO,eAAD/B,OAAiBR,EAAMgY,QAAQzV,OAAS,GAA8B,GAAE,OAC9EzE,MAAO,OACP+S,SAAU,SACV7I,SAAU,YAEd2kD,WAAY,CACRrkD,YAAa,GACbg/C,UAAW,GACX12C,QAAS,YAEbg8C,WAAY,CACRvoD,WAAY,WAEhByoD,SAAU,CACNx7C,WAAYtR,EAAM0C,QAAQ,IAE9ByoD,QAAS,CACLrtD,MAAO,GACPyE,OAAQ,GACR8a,cAAe,SACf5a,aAAc,EACd6F,YAAa,EACbwR,aAAc,GAElB8xC,SAAU,CAENh7C,QAAS,eAEbggD,SAAU,CACN,EAEJjF,WAAY,CACRpjD,UAAW,EACX+I,WAAY,IAEhBk6C,cAAe,CACXxjD,SAAU,WACV2R,IAAK,EACLD,MAAO,GAEXoxC,WAAY,CACRzrD,MAAOW,EAAMsE,QAAQ05C,UAAUz5C,MAEnCmgD,QAAS,CACLznD,SAAU,IACVukD,aAAc,WACd7wC,WAAY,SACZE,SAAU,SACVvO,QAAS,eACT+a,cAAe,UAEnB0tC,eAAgB,CACZ1rD,MAAO,UACPQ,SAAU,IAEd8kD,YAAa,CACT38C,SAAU,WACV2R,IAAK,EACLD,OAAQ,EACR0M,OAAQ,GACRxV,QAAS,EACTW,OAAQ,WAEZy5C,gBAAiB,CACb3mD,WAAmC,SAAvBrE,EAAMsE,QAAQgV,KAAkB,OAAS,OACrDQ,aAAc,MACdhO,QAAS,IAEb4gD,WAAY,CACRrtD,MAAO,UACPiJ,YAAatI,EAAM0C,QAAQ,GAC3B4O,WAAYtR,EAAM0C,QAAQ,IAE9B2oD,UAAW,CACP/D,UAAW,IAEfiE,iBAAkB,CACdjpD,QAAS,gBAEbwpD,SAAU,CACNhuD,MAAO,GACPyE,OAAQ,GACRuX,aAAc,EACdxR,YAAa,GAEpB,GAi3CD,CAAkCyyC,I,YC59C5B8V,GAAgB,SAAAt2D,IAAAC,EAAAA,EAAAA,GAAAq2D,EAAAt2D,GAAA,IAAAG,GAAAC,EAAAA,EAAAA,GAAAk2D,GAElB,SAAAA,EAAYj2D,GAAQ,IAADC,EAKb,OALaC,EAAAA,EAAAA,GAAA,KAAA+1D,IACfh2D,EAAAH,EAAAK,KAAA,KAAMH,IACDS,MAAQ,CACT0H,MAAO,GACP+tD,YAAa,IACfj2D,CACN,CAmCC,OAnCAqB,EAAAA,EAAAA,GAAA20D,EAAA,EAAA10D,IAAA,oBAAAC,MAED,WACIgC,YAAW,WACP,IACIyC,OAAO8mB,SAASC,eAAe,oBAAoB9mB,OACvD,CAAE,MAAOxC,GAET,CACJ,GAAG,IACP,GAAC,CAAAnC,IAAA,eAAAC,MAED,WACIM,KAAK9B,MAAMK,SACf,GAAC,CAAAkB,IAAA,WAAAC,MAED,SAASkC,GACL5B,KAAKhB,SAAS,CAACgG,KAAMpD,EAAEC,OAAOnC,OAClC,GAAC,CAAAD,IAAA,iBAAAC,MAmBD,SAAe20D,GAAQ,IAADn0D,EAAA,KAKlB,GAJIm0D,GAASA,EAAM3zC,eAAe,YAC9B2zC,EAAQA,EAAMxyD,OAAOwyD,OAGpBA,GAAUA,EAAMh1D,OAArB,CAIA,IAAMuzC,EAAOyhB,EAAMA,EAAMh1D,OAAS,GAE7BuzC,GAGLuhB,EAAiBG,gBAAgB1hB,GAAM,SAACvgC,EAAKhF,GACrCgF,EACAnS,EAAKlB,SAAS,CAACqH,MAAOgM,IAEtBnS,EAAKhC,MAAMK,QAAQ8O,GAAUA,EAAOF,KAE5C,GAbA,CAcJ,GAAC,CAAA1N,IAAA,SAAAC,MAED,WAAU,IAAD0F,EAAA,KACCb,EAAUvE,KAAK9B,MAAMqG,QACrBD,EAAYC,EAAQgwD,SAAW,KAAkC,aAA3Bv0D,KAAKrB,MAAMy1D,YAA6B7vD,EAAQiwD,iBAA+C,aAA3Bx0D,KAAKrB,MAAMy1D,YAA6B7vD,EAAQkwD,iBAAmB,IAEnL,OAAOt0D,EAAAA,GAAAA,MAACC,EAAAA,EAAM,CACV7B,QAAS,SAAC8B,EAAOC,GAAM,OAAK,CAAK,EACjCC,SAAS,KACTgE,QAAS,CAAC4W,MAAO5W,EAAQwlB,QACzBvpB,WAAS,EACTC,MAAM,EACN,kBAAgB,sBAAqBC,SAAA,EAErCC,EAAAA,GAAAA,KAACC,EAAAA,EAAW,CAAChC,GAAG,sBAAqB8B,SAAEG,EAAAA,KAAAA,EAAO,qBAC9CV,EAAAA,GAAAA,MAACW,EAAAA,EAAa,CAACwD,UAAWC,EAAQ4mB,WAAWzqB,SAAA,EACzCC,EAAAA,GAAAA,KAAC+zD,GAAAA,QAAQ,CAEGC,QAAS,IACTC,gBAAiBrwD,EAAQiwD,iBACzBK,gBAAiBtwD,EAAQkwD,iBACzBvmD,OAAQ,SAAAmmD,GAAK,OAAIjvD,EAAK0vD,eAAeT,EAAM,EAC3Cr6B,UAAU,EACV3rB,OAAO,+CACP/J,UAAWA,EAAU5D,SAEzB,SAAA4pB,GAAiE,IAA9DyqC,EAAYzqC,EAAZyqC,aAAcC,EAAa1qC,EAAb0qC,cAAeC,EAAY3qC,EAAZ2qC,aAC5B,OADsD3qC,EAAZ4qC,cAEP,aAA3B9vD,EAAKzG,MAAMy1D,aACXhvD,EAAKpG,SAAS,CAACo1D,YAAa,cAG5Bj0D,EAAAA,GAAAA,MAAA,OAAAsqB,EAAAA,GAAAA,IAAAA,EAAAA,GAAAA,GAAA,CAAKnmB,UAAWc,EAAKlH,MAAMqG,QAAQ4wD,aAAiBJ,KAAc,IAAAr0D,SAAA,EAC9DC,EAAAA,GAAAA,KAAA,SAAA8pB,EAAAA,GAAAA,GAAA,GAAWuqC,OACXr0D,EAAAA,GAAAA,KAAA,QAAiB2D,UAAWc,EAAKlH,MAAMqG,QAAQS,KAAKtE,SAAEG,EAAAA,KAAAA,EAAO,gCAAnD,SACVF,EAAAA,GAAAA,KAACy0D,EAAAA,IAAM,CAAY9wD,UAAWc,EAAKlH,MAAMqG,QAAQmF,KAAO,IAAMtE,EAAKlH,MAAMqG,QAAQ8wD,WAArE,aAEbJ,GACwB,aAA3B7vD,EAAKzG,MAAMy1D,aACXhvD,EAAKpG,SAAS,CAACo1D,YAAa,cAI5Bj0D,EAAAA,GAAAA,MAAA,OAAAsqB,EAAAA,GAAAA,IAAAA,EAAAA,GAAAA,GAAA,CAAKnmB,UAAWc,EAAKlH,MAAMqG,QAAQ4wD,aAAiBJ,KAAc,IAAAr0D,SAAA,EAC9DC,EAAAA,GAAAA,KAAA,SAAA8pB,EAAAA,GAAAA,GAAA,GAAWuqC,OACXr0D,EAAAA,GAAAA,KAAA,QAAiB2D,UAAWc,EAAKlH,MAAMqG,QAAQS,KAAKtE,SAAEG,EAAAA,KAAAA,EAAO,+BAAnD,SACVF,EAAAA,GAAAA,KAAC20D,EAAAA,IAAQ,CAAYhxD,UAAWc,EAAKlH,MAAMqG,QAAQmF,KAAO,IAAMtE,EAAKlH,MAAMqG,QAAQgxD,QAArE,cAGS,SAA3BnwD,EAAKzG,MAAMy1D,aACXhvD,EAAKpG,SAAS,CAACo1D,YAAa,UAG5Bj0D,EAAAA,GAAAA,MAAA,OAAAsqB,EAAAA,GAAAA,IAAAA,EAAAA,GAAAA,GAAA,CAAKnmB,UAAWc,EAAKlH,MAAMqG,QAAQ4wD,aAAiBJ,KAAc,IAAAr0D,SAAA,EAC9DC,EAAAA,GAAAA,KAAA,SAAA8pB,EAAAA,GAAAA,GAAA,GAAWuqC,OACXr0D,EAAAA,GAAAA,KAAA,QAAiB2D,UAAWc,EAAKlH,MAAMqG,QAAQS,KAAKtE,SAAEG,EAAAA,KAAAA,EAAO,qCAAnD,SACVF,EAAAA,GAAAA,KAAC60D,EAAAA,IAAU,CAAYlxD,UAAWc,EAAKlH,MAAMqG,QAAQmF,MAArC,YAGhC,GA3CQ,cA8Cf1J,KAAKrB,MAAM0H,OAAS1F,EAAAA,GAAAA,KAACyG,GAAW,CAACpC,KAAMhF,KAAKrB,MAAM0H,MAAO9H,QAAS,kBAAM6G,EAAKpG,SAAS,CAACqH,MAAO,IAAI,IAAO,SAE9G1F,EAAAA,GAAAA,KAAC6B,EAAAA,EAAa,CAAA9B,UACVC,EAAAA,GAAAA,KAAC8B,EAAAA,EAAM,CAACE,MAAM,OAAOzB,QAAQ,YAAYwB,QAAS,kBAAM0C,EAAK9G,cAAc,EAAEsE,WAAWjC,EAAAA,GAAAA,KAACmC,GAAAA,QAAU,IAAGpC,SAAEG,EAAAA,KAAAA,EAAO,eAG3H,IAAC,EAAApB,IAAA,kBAAAC,MA1GD,SAAuBkzC,EAAM9gC,GACzB,IAAM2jD,EAAS,IAAIC,WACnBD,EAAOpnC,OAAS,WACZvc,EAAG,KAAM,CAAC3E,KAAMsoD,EAAOpoD,OAAQxO,KAAM+zC,EAAK/zC,MAC9C,EACA42D,EAAOE,QAAU,WACbtuD,QAAQhB,MAAM,4BACdyL,EAAGjR,EAAAA,KAAAA,EAAO,4BACd,EACA40D,EAAOv/B,QAAU,SAACt0B,GACdyF,QAAQhB,MAAM,2BACdyL,EAAGjR,EAAAA,KAAAA,EAAO,8BAA+Be,GAC7C,EAEA6zD,EAAOG,cAAchjB,EACzB,KAACuhB,CAAA,CA3CiB,CAASpxD,IAAAA,WA8I/B,IAAeM,EAAAA,EAAAA,IAtMA,SAAAC,GAAK,MAAK,CACrBymB,OAAQ,CACJlkB,OAAQ,OAEZslB,WAAY,CACRtlB,OAAQ,OACRsO,SAAU,UAEdogD,SAAU,CACN1oD,UAAW,GACXzK,MAAO,OACPy0D,YAAa,EACbC,YAAa,SACbC,YAAa,UACbxwD,UAAW,SACXywD,UAAW,aACXx4C,WAAY,GACZJ,aAAc,GACdvX,OAAQ,qBAEZsvD,YAAa,CACT/zD,MAAO,OACPyE,OAAQ,QAEZ4uD,iBAAkB,CACdsB,YAAa,WAEjBvB,iBAAkB,CACduB,YAAa,WAEjBrsD,KAAM,CACF7D,OAAQ,MACRzE,MAAO,MACPuB,MAAO,UACP2I,SAAU,WACV2R,IAAK,MACL4N,KAAM,MACNrb,UAAW,uBACXka,OAAQ,GAEZ2rC,UAAW,CACP1yD,MAAO,WAEX4yD,OAAQ,CACJ5yD,MAAO,WAEXqC,KAAM,CACFiY,IAAK,MACL4N,KAAM,MACNrb,UAAW,uBACX7M,MAAO,UACP2I,SAAU,WACVoe,OAAQ,GAEf,GAgJD,CAAkCyqC,ICpG5B8B,GAAG,SAAAC,IAAAp4D,EAAAA,EAAAA,GAAAm4D,EAAAC,GAAA,IAAAl4D,GAAAC,EAAAA,EAAAA,GAAAg4D,GACL,SAAAA,EAAY/3D,GAAQ,IAADC,EAiCb,OAjCaC,EAAAA,EAAAA,GAAA,KAAA63D,IACf93D,EAAAH,EAAAK,KAAA,KAAMH,EAAO,CACTi4D,WAAYC,EAAAA,gBACZC,aAAc,CACVrpD,GAAIspD,EAAQ,OACZC,GAAID,EAAQ,OACZE,GAAIF,EAAQ,OACZG,GAAIH,EAAQ,OACZzoD,GAAIyoD,EAAQ,OACZI,GAAIJ,EAAQ,OACZK,GAAIL,EAAQ,OACZM,GAAIN,EAAQ,OACZO,GAAIP,EAAQ,OACZQ,GAAIR,EAAQ,OACZ,QAASA,EAAQ,QAErBS,eAAe,EACf7uD,OAAQ,CACJ8uD,kBAAkB,GAEtBC,UAAW9yD,OAAO8yD,aAgB1BC,iBAAmB,SAACt4D,EAAIyJ,GACpB,GAAKzJ,EAAL,CAGA,IAAI8T,GAAU,EACRI,EAAW,CAAC,EACdlU,EAAGmL,WAAW,gBACV1B,EACIsH,KAAK8C,UAAUtU,EAAK4R,QAAQnR,MAAS+Q,KAAK8C,UAAUpK,KACpDlK,EAAK4R,QAAQnR,GAAMyJ,EACnBqK,GAAU,EACVI,EAAS5B,YAAc/S,EAAKQ,MAAMuS,YAAc,GAE7C/S,EAAK4R,QAAQnR,YACbT,EAAK4R,QAAQnR,GACpB8T,GAAU,EACVI,EAAS5B,YAAc/S,EAAKQ,MAAMuS,YAAc,IAIxDwB,GAAWvU,EAAKa,SAAS8T,EAjBzB,CAkBJ,EAAC3U,EAED8sD,kBAAoB,SAACrsD,EAAIyJ,GACrB,GAAKzJ,EAAL,CAGA,IAAI8T,GAAU,EACRI,EAAW,CAAC,EAElB,GAAIlU,EAAGqT,MAAM,iCAAkC,CAE3C,GAAIrT,EAAGmL,WAAW,kBAADjG,OAAmB3F,EAAKg5B,YAAW,MAChD,GAAI9uB,GAAoB,aAAbA,EAAItE,KACN5F,EAAKQ,MAAMS,UAAU8E,SAAStF,KAC/BkU,EAAS1T,WAAS+T,EAAAA,EAAAA,GAAOhV,EAAKQ,MAAMS,WACpC0T,EAAS1T,UAAU+H,KAAKvI,GACxBkU,EAAS1T,UAAUuK,OACnB+I,GAAU,EAEVvU,EAAK+J,OAAOqK,eAAe,GAADzO,OAAIuE,EAAIG,IAAG,UAAUrK,EAAKg5D,6BAErD,IAAK9uD,GAAOlK,EAAKQ,MAAMS,UAAU8E,SAAStF,GAAK,CAClDT,EAAK+J,OAAOsK,iBAAiB,GAAD1O,OAAIlF,EAAE,UAAUT,EAAKg5D,uBACjDrkD,EAAS1T,WAAS+T,EAAAA,EAAAA,GAAOhV,EAAKQ,MAAMS,WACpC,IAAMwT,EAAME,EAAS1T,UAAUgH,QAAQxH,GACvCkU,EAAS1T,UAAUuH,OAAOiM,EAAK,GAC/BF,GAAU,CACd,CAGArK,GAAOA,EAAIzJ,GAAI0J,QAAUD,EAAIzJ,GAAI0J,OAAO8jB,UACxCjuB,EAAK2vD,gBAAkB,SAAAzgD,GAAM,OAAIA,GAAUlJ,OAAOygB,SAASwyC,QAAS,EACpEtkD,EAASi7C,QAAUltD,EAAAA,KAAAA,EAAO,2CAC1B6R,GAAU,EAElB,CAEAA,GAAWvU,EAAKa,SAAS8T,EAhCzB,CAiCJ,EAAC3U,EAEDk5D,cAAgB,SAACz4D,EAAIyJ,GACjB,GAAKzJ,EAAL,CAMA,GAAIA,EAAGmL,WAAW,gBACd,GAAI1B,GAAoB,SAAbA,EAAItE,KACN5F,EAAKm5D,MAAMpzD,SAAStF,KACrBT,EAAKm5D,MAAMnwD,KAAKvI,GAChBT,EAAKm5D,MAAM3tD,aAEZ,IAAKtB,GAAOlK,EAAKm5D,MAAMpzD,SAAStF,GAAK,CACxC,IAAMgU,EAAMzU,EAAKm5D,MAAMlxD,QAAQxH,GAC/BT,EAAKm5D,MAAM3wD,OAAOiM,EAAK,EAC3B,CAbJ,CAiBJ,EAACzU,EA8GDg5D,sBAAwB,SAACv4D,EAAID,GACzB,GAAIC,IACAA,EAAKA,GAAMA,EAAGuT,UAAU,EAAGvT,EAAGS,OAAS,GAEnClB,EAAKQ,MAAMsS,iBAAiBrS,QAASD,GAAQA,EAAMgU,MAAc,CACjE,IAAM1B,EAAmBtB,KAAKC,MAAMD,KAAK8C,UAAUtU,EAAKQ,MAAMsS,mBAC9DA,EAAiBrS,KAAMD,GAAQA,EAAMgU,IACrCxU,EAAKa,SAAS,CAAEiS,iBAAAA,GACpB,CAER,EArNI9S,EAAKo5D,QAAUpzD,OAAOyE,cAAeujC,WAAWhoC,OAAOyE,aAAaC,QAAQ,iBAAyB,IACrG1K,EAAKq5D,SAAWrzD,OAAOyE,cAAeujC,WAAWhoC,OAAOyE,aAAaC,QAAQ,kBAA0B,IACvG1K,EAAKm5D,MAAQ,GACbn5D,EAAKs5D,WAAa,KAClBt5D,EAAK4R,QAAU,CAAC,EAEhB5L,OAAO6iD,MAAQ,SAAA1oC,GACXjX,QAAQhB,MAAMiY,GACdngB,EAAK6Z,UAAUsG,EAAQrR,WAC3B,EAAE9O,CACN,CA+xBC,OA/xBAqB,EAAAA,EAAAA,GAAAy2D,EAAA,EAAAx2D,IAAA,oBAAAC,MAqFD,WAAqB,IAADQ,EAAA,KAChBiE,OAAOsoD,WAAazsD,KAAKkI,OAAOukD,WAChCzsD,KAAKhB,SAAS,CACV04D,OAAO,EACPC,cAAe,EACfzmD,YAAa,EACb9R,UAAW,GACXw4D,UAAU,EACV1G,UAAU,EACV5mD,SAAU,KACVutD,WAAY,CAAC,EACbp5C,QAAS,GACT/N,WAA8D,UAAlDvM,OAAOyE,aAAaC,QAAQ,kBACxCivD,aAAc,GACdjnD,WAA8D,SAAlD1M,OAAOyE,aAAaC,QAAQ,kBACxCkvD,cAAoE,SAArD5zD,OAAOyE,aAAaC,QAAQ,qBAC3CoI,iBAAkB,CAAC,EACnB88C,QAAS,GACT0J,YAAY,EACZn5C,QAAS,GACTxN,WAAY,GACZknD,QAAwD,SAA/C7zD,OAAOyE,aAAaC,QAAQ,eACrC0K,WAAW,EACX+xC,cAAe,OAGnB,IAAMxyC,EAAW,CAAC,EAIlB9S,KAAKi4D,uBACA7vD,MAAK,SAAAiF,GAIF,OAHAyF,EAAS1T,UAAYiO,EAAOjO,UAC5B0T,EAAS7B,iBAAmB5D,EAAO4D,iBAE5B/Q,EAAKg4D,yBAChB,IACC9vD,MAAK,kBAAMlI,EAAKgI,OAAOiwD,UAAU,IACjC/vD,MAAK,SAAAkvD,GAGF,OAFAp3D,EAAKo3D,MAAQA,EAAMh1D,KAAI,SAAA+F,GAAG,OAAIA,EAAIG,GAAG,IAE9BtI,EAAKk4D,gBAChB,IACChwD,MAAK,SAAA2H,GACE5L,OAAOyE,cAAkE,SAAlDzE,OAAOyE,aAAaC,QAAQ,mBAAkF,UAAlD1E,OAAOyE,aAAaC,QAAQ,mBAE3G4E,OAAOC,KAAKqC,GAAS9I,MAAK,SAAArI,GAAE,OAAIA,EAAGmL,WAAW,sBAAyC,WAAjBgG,EAAQhM,IAAiB,MAC/F+O,EAASjC,YAAa,GAG9B3Q,EAAK6P,QAAUA,EAEf,IAAImB,EAAchR,EAAKvB,MAAMuS,YACzBhR,EAAKm4D,eAAetoD,IACpBmB,IAEJ4B,EAAS5B,YAAcA,EACvB4B,EAAS4kD,OAAQ,EACjBx3D,EAAKgI,OAAOg2C,gBAAgB,WAAYh+C,EAAKg3D,kBAC7Ch3D,EAAKgI,OAAOg2C,gBAAgB,mBAAoBh+C,EAAK+qD,mBACrD/qD,EAAKgI,OAAOg2C,gBAAgB,gBAAiBh+C,EAAKm3D,eAElDn3D,EAAKlB,SAAS8T,EAClB,GACR,GAAC,CAAArT,IAAA,uBAAAC,MAED,WAAwB,IAAD0F,EAAA,KACnB,OAAOpF,KAAKkI,OAAOc,oBAAoBhJ,KAAKm3B,aACvC/uB,MAAK,SAAAkwD,GACF,IAAMl5D,EAAYk5D,EAAeh2D,KAAI,SAAA+F,GAAG,OAAIjG,SAASiG,EAAIG,IAAI5I,MAAM,KAAKC,MAAM,IAAE8J,OAC1EsH,EAAmB,CAAC,EAC1B7R,EAAUyH,SAAQ,SAAAjI,GAAE,OAAIqS,EAAiB,kBAADnN,OAAmBsB,EAAK+xB,YAAW,KAAArzB,OAAIlF,KAAQ,CAAK,IAE5F,IAAM25D,EAAW,GAajB,OAVAn5D,EAAUyH,SAAQ,SAAA/H,GACd,IAAM05D,EAAU,kBAAA10D,OAAqBsB,EAAK+xB,YAAW,KAAArzB,OAAIhF,GACnDF,EAAE,GAAAkF,OAAM00D,EAAU,UACxBD,EAASpxD,KAAK/B,EAAK8C,OAAOkK,SAASxT,GAC9BwJ,MAAK,SAAAzJ,GACFsS,EAAiBunD,KAAc75D,GAAQA,EAAMgU,IAC7CvN,EAAK8C,OAAOqK,eAAe3T,EAAIwG,EAAK+xD,sBACxC,IACR,IAEOpjD,QAAQ0kD,IAAIF,GACdnwD,MAAK,iBAAO,CAAEhJ,UAAAA,EAAW6R,iBAAAA,EAAkB,GACpD,GACR,GAAC,CAAAxR,IAAA,iBAAAC,MAED,WAAkB,IAAD2F,EAAA,KACb,OAAOrF,KAAKkI,OAAOwwD,cAAc,aAAc,mBAAoB,WAC9DtwD,MAAK,SAAA8R,GAAO,OACT7U,EAAK6C,OAAOwwD,cAAc,aAAc,mBAAoB,UACvDtwD,MAAK,SAAA2H,GAEF,OADAtC,OAAOC,KAAKqC,GAASlJ,SAAQ,SAAAjI,GAAE,OAAIsb,EAAQtb,GAAMmR,EAAQnR,EAAG,IACrDsb,CACX,GAAE,GAClB,GAAC,CAAAza,IAAA,0BAAAC,MAED,WACI,OAAOM,KAAKkI,OAAOwwD,cAAc,kBAAmB,wBAAyB,WACxEtwD,MAAK,SAAAkuB,GAAQ,OACV,IAAIviB,SAAQ,SAAAC,GAAO,OACfmY,GAAAA,kBAAgCmK,GAAU,kBAAMtiB,GAAS,GAAC,GAAC,GAC3E,GAAC,CAAAvU,IAAA,qBAAAC,MAcD,SAAmBmR,GACf7Q,KAAKmY,mBAAmBtH,EAC5B,GAAC,CAAApR,IAAA,iBAAAC,MAED,SAAei5D,GACX,IAAMC,EAASnrD,OAAOC,KAAK1N,KAAK+P,SAC1B8oD,EAASprD,OAAOC,KAAKirD,GAC3B,GAAIC,EAAOv5D,SAAWw5D,EAAOx5D,OAEzB,OADAW,KAAK+P,QAAU/P,KAAK24D,YACb,EAEX,GAAIhpD,KAAK8C,UAAUmmD,KAAYjpD,KAAK8C,UAAUomD,GAE1C,OADA74D,KAAK+P,QAAU/P,KAAK24D,YACb,EAEX,IAAK,IAAI5xD,EAAI,EAAGA,EAAI6xD,EAAOv5D,OAAQ0H,IAAK,CACpC,IAAI+xD,EAAY94D,KAAK+P,QAAQ6oD,EAAO7xD,IAAIuB,OACpCywD,EAAYJ,EAAWC,EAAO7xD,IAAIuB,OACtC,GAAIwwD,EAAUj6D,OAASk6D,EAAUl6D,KAE7B,OADAmB,KAAK+P,QAAU/P,KAAK24D,YACb,EAEX,GAAIG,EAAUlrD,SAAWmrD,EAAUnrD,OAE/B,OADA5N,KAAK+P,QAAU/P,KAAK24D,YACb,EAEX,GAAIG,EAAUnrD,aAAeorD,EAAUprD,WAEnC,OADA3N,KAAK+P,QAAU/P,KAAK24D,YACb,EAEX,GAAIG,EAAU7wD,UAAY8wD,EAAU9wD,QAEhC,OADAjI,KAAK+P,QAAU/P,KAAK24D,YACb,CAEf,CACJ,GAAC,CAAAl5D,IAAA,WAAAC,MAED,SAAShB,EAAOyX,EAAO6F,EAASC,GAAc,IAKtC+8C,EALqC1zD,EAAA,KAUzC,GATI6Q,EAAM5P,OAAO0yD,SAAS,OACtB9iD,EAAQA,EAAMpW,QAAQ,SAAU,MAEpCsH,QAAQC,IAAI,UAADxD,OAAWpF,EAAK,QAAAoF,OAAOqS,IAElCnW,KAAKhB,SAAS,CAAE44D,UAAU,IAItB53D,KAAK+P,QAAQrR,IAAuC,WAA7BsB,KAAK+P,QAAQrR,GAAOqF,KAAmB,CAC9D,IAAMuE,EAASqH,KAAKC,MAAMD,KAAK8C,UAAUzS,KAAK+P,QAAQrR,GAAO4J,SAC7DA,EAAOzJ,KAAOmd,GAAW1T,EAAOzJ,UACZ2P,IAAhByN,IACA3T,EAAOsF,OAAM,6BAAA9J,OAAgCmY,IAGjD,IAAMtc,EAAQwW,EAAMvW,MAAM,KAC1BD,EAAME,MACN,IAAMq5D,EAAWv5D,EAAMG,KAAK,KAExBE,KAAK+P,QAAQmpD,IAA6C,WAAhCl5D,KAAK+P,QAAQmpD,GAAUn1D,OACjDpE,EAAME,MACNsW,EAAK,GAAArS,OAAMnE,EAAMG,KAAK,KAAI,KAAAgE,OAAIqS,EAAMvW,MAAM,KAAKC,QAGnDm5D,EAAUh5D,KAAKm5D,aAAaz6D,EAAOyX,EAAO7N,EAC9C,MACI0wD,EAAUh5D,KAAKo5D,YAAY16D,EAAOyX,EAAO6F,GAG7Cg9C,EACK5wD,MAAK,kBAAM9C,EAAKtG,SAAS,CAAE44D,UAAU,GAAQ,IAC7C74B,OAAM,SAAA1sB,GAAG,MAAY,aAARA,GAAsB/M,EAAK0S,UAAU3F,EAAI,GAC/D,GAAC,CAAA5S,IAAA,cAAAC,MAED,SAAYd,EAAIuX,EAAO6F,EAASq9C,GAAQ,IAADhmD,EAAA,KACnC,GAAKgmD,EAkCE,IAAIA,EAAMh6D,OAAQ,CACrB,IAAIi6D,EAAMD,EAAMx5D,MAEhB,OAAOG,KAAKkI,OAAOC,UAAUmxD,GACxBlxD,MAAK,SAAAC,GAAG,OACLgL,EAAKnL,OAAOqxD,UAAUD,GACjBv6B,OAAM,WAAQ,IACd32B,MAAK,WAKF,OAJAkxD,EAAMnjD,EAAQmjD,EAAInnD,UAAUvT,EAAGS,QAC/BgJ,EAAIG,IAAM8wD,EACVjxD,EAAIC,OAASD,EAAIC,QAAU,CAAC,EAC5BD,EAAIC,OAAOkxD,QAAS,EACbnmD,EAAKnL,OAAOK,UAAU+wD,EAAKjxD,EACtC,IACCD,MAAK,kBAAMiL,EAAK+lD,YAAYx6D,EAAIuX,EAAO6F,EAASq9C,EAAM,GAAC,GAExE,CACI,OAAOtlD,QAAQC,SACnB,CA7CI,OANAqlD,EAAQ,GAIRA,EAAQ5rD,OAAOC,KAAK1N,KAAK+P,SAASpH,QAAO,SAAAH,GAAG,OAAIA,EAAIuB,WAAW,GAADjG,OAAIlF,EAAE,KAAI,IAEjEoB,KAAKkI,OAAOC,UAAUvJ,GACxBwJ,MAAK,SAAAC,IACFA,EAAMA,GAAO,CAAEC,OAAQ,CAAC,IACpBA,OAAOzJ,KAAOmd,GAAW3T,EAAIC,OAAOzJ,MAAQD,EAAGgB,MAAM,KAAKC,MAC9DwI,EAAIG,IAAM2N,EAEV9C,EAAKnL,OAAOqxD,UAAU36D,GACjBmgC,OAAM,WAAQ,IACd32B,MAAK,kBAAMiL,EAAKnL,OAAOK,UAAU4N,EAAO9N,EAAI,IAC5CD,MAAK,kBAAMiL,EAAK+lD,YAAYx6D,EAAIuX,EAAO6F,EAASq9C,EAAM,IACtDt6B,OAAM,SAAAn9B,GAAC,OAAIyF,QAAQC,IAAI1F,EAAE,GAClC,IACCm9B,OAAM,SAAAn9B,GACHyF,QAAQC,IAAI1F,GACZ,IAAMyG,EAAM,CACRG,IAAK2N,EACLpS,KAAM,UACNuE,OAAQ,CACJzJ,KAAMmd,GAAWpd,EAAGgB,MAAM,KAAKC,MAC/B25D,QAAQ,GAEZpgC,OAAQ,CAAC,GAGb,OAAO/lB,EAAKnL,OAAOK,UAAU4N,EAAO9N,GAC/BD,MAAK,kBAAMiL,EAAK+lD,YAAYx6D,EAAIuX,EAAO6F,EAASq9C,EAAM,GAC/D,GAoBZ,GAAC,CAAA55D,IAAA,iBAAAC,MAED,SAAed,EAAI0J,GAAS,IAADwL,EAAA,KACnB9T,KAAK+P,QAAQnR,IAAiC,WAA1BoB,KAAK+P,QAAQnR,GAAImF,MACrC/D,KAAKm5D,aAAav6D,EAAIA,EAAI0J,GACrBF,MAAK,WAAQ,IACb22B,OAAM,SAAA1sB,GAAG,MAAY,aAARA,GAAsByB,EAAKkE,UAAU3F,EAAI,GAEnE,GAAC,CAAA5S,IAAA,WAAAC,MAED,SAAS4K,GAAW,IAADmK,EAAA,KACXzU,KAAK+P,QAAQzF,IAAatK,KAAK+P,QAAQzF,GAAUhC,QAA0C,WAAhCtI,KAAK+P,QAAQzF,GAAUvG,MAClF/D,KAAKhB,SAAS,CAAEsL,SAAAA,EAAUwtD,aAAcxtD,IAAY,kBAChD5I,YAAW,kBAAM+S,EAAKzV,SAAS,CAAE84D,aAAc,IAAK,GAAC,GAAE,IAEnE,GAAC,CAAAr4D,IAAA,qBAAAC,MAED,SAAmBmR,GACX7Q,KAAKrB,MAAMkS,aAAeA,IAC1B1M,OAAOyE,cAAgBzE,OAAOyE,aAAauC,QAAQ,iBAAkB0F,EAAa,OAAS,SAC3F7Q,KAAKhB,SAAS,CAAE6R,WAAAA,IAExB,GAAC,CAAApR,IAAA,YAAAC,MAED,SAAU2S,GACNrS,KAAKhB,SAAS,CAAEyR,UAAW4B,EAAMA,EAAIpF,WAAa,IACtD,GAAC,CAAAxN,IAAA,cAAAC,MAED,SAAY4e,GACRte,KAAKhB,SAAS,CAAEsf,QAASA,EAAUA,EAAQrR,WAAa,IAC5D,GAAC,CAAAxN,IAAA,WAAAC,MAED,SAASd,GAAK,IAADyX,EAAA,KACTrW,KAAKkI,OAAOqxD,UAAU36D,GACjBwJ,MAAK,WAAQ,IACb22B,OAAM,SAAA1sB,GAAG,OACNgE,EAAK2B,UAAU3F,EAAI,GAC/B,GAAC,CAAA5S,IAAA,SAAAC,MAED,SAAOd,GACCoB,KAAKrB,MAAM2L,WAAa1L,GACxBoB,KAAKhB,SAAS,CAAEsL,SAAU1L,GAElC,GAAC,CAAAa,IAAA,WAAAC,MAED,SAASd,EAAIC,EAAM46D,EAAU36D,EAAUiF,EAAMmS,GAAS,IAADU,EAAA,KAC3C8iD,EAAM,IAAIC,OAAO,IAAD71D,OAAKlF,EAAE,QAE7B,GAAI6O,OAAOC,KAAK1N,KAAK+P,SAAS9I,MAAK,SAAAuB,GAAG,OAAI5J,IAAO4J,GAAOkxD,EAAI5yC,KAAKloB,EAAG,IAChE,OAAOoB,KAAKgY,UAAUnX,EAAAA,KAAAA,EAAO,gBAG7B44D,EACAz5D,KAAKkI,OAAOK,UAAU3J,EAAI,CACtB0J,OAAQ,CACJzJ,KAAAA,EACA26D,QAAQ,GAEZz1D,KAAM,YAELqE,MAAK,kBACF1G,YAAW,kBAAMkV,EAAK5X,SAAS,CAAE84D,aAAcl5D,IAAM,kBACjD8C,YAAW,kBAAMkV,EAAK5X,SAAS,CAAE84D,aAAc,IAAK,GAAC,GAAE,IAAI,GAAE,IAAK,IACzE/4B,OAAM,SAAA1sB,GAAG,OAAIuE,EAAKoB,UAAU3F,EAAI,IAErCrS,KAAKkI,OAAOK,UAAU3J,EAAI,CACtB0J,OAAQ,CACJzJ,KAAAA,EACA26D,QAAQ,EACR7rD,WAAY5J,EACZ6J,OAAO,6BAAD9J,OAA+BhF,GAAY,GACjDoX,OAAQA,GAAU,GAClB4K,OAAO,EACPosC,SAAS,GAEbnpD,KAAM,WAELqE,MAAK,kBAAM1G,YAAW,kBAAMkV,EAAKgjD,SAASh7D,EAAG,GAAE,IAAK,IACpDmgC,OAAM,SAAA1sB,GAAG,OAAIuE,EAAKoB,UAAU3F,EAAI,GAE7C,GAAC,CAAA5S,IAAA,eAAAC,MAED,SAAahB,EAAOyX,EAAO0jD,GAAY,IAAD7iD,EAAA,KAClC,OAAOhX,KAAKkI,OAAOC,UAAUzJ,GACxB0J,MAAK,SAAA0xD,GACF,IAAMzxD,EAAM,CAAEC,OAAQ,CAAC,GAUvB,YARyBkG,IAArBqrD,EAAUjsD,SAAsBvF,EAAIC,OAAOsF,OAASisD,EAAUjsD,aACxCY,IAAtBqrD,EAAU5xD,UAAuBI,EAAIC,OAAOL,QAAU4xD,EAAU5xD,cAC3CuG,IAArBqrD,EAAU3jD,SAAsB7N,EAAIC,OAAO4N,OAAS2jD,EAAU3jD,aAC1C1H,IAApBqrD,EAAU/4C,QAAqBzY,EAAIC,OAAOwY,MAAQ+4C,EAAU/4C,YACtCtS,IAAtBqrD,EAAU3M,UAAuB7kD,EAAIC,OAAO4kD,QAAU2M,EAAU3M,SAEpE7kD,EAAIke,KAAO,yBAEP7nB,IAAUyX,GAAS2jD,GAAQA,EAAKxxD,QAAUuxD,EAAUh7D,OAASi7D,EAAKxxD,OAAOzJ,MACpEg7D,EAAUlsD,YAAcksD,EAAUlsD,aAAemsD,EAAKxxD,OAAOqF,iBACjCa,IAAzBqrD,EAAUlsD,aACVtF,EAAIC,OAAOqF,WAAaksD,EAAUlsD,YAAc,iBAGxDtF,EAAItE,KAAO,SACJiT,EAAK9O,OAAO6xD,aAAar7D,EAAO2J,IAQnCyxD,GAAQA,EAAKxxD,QACbwxD,EAAKxxD,OAAOqF,WAAaksD,EAAUlsD,YAAcmsD,EAAKxxD,OAAOqF,YAAc,gBACpEqJ,EAAK9O,OAAOqxD,UAAU76D,GACxB0J,MAAK,gBACwBoG,IAAtBnG,EAAIC,OAAOsF,SAAsBksD,EAAKxxD,OAAOsF,OAASvF,EAAIC,OAAOsF,aAC1CY,IAAvBnG,EAAIC,OAAOL,UAAuB6xD,EAAKxxD,OAAOL,QAAUI,EAAIC,OAAOL,cAC7CuG,IAAtBnG,EAAIC,OAAO4N,SAAsB4jD,EAAKxxD,OAAO4N,OAAS7N,EAAIC,OAAO4N,aAC7C1H,IAApBnG,EAAIC,OAAOzJ,OAAoBi7D,EAAKxxD,OAAOzJ,KAAOwJ,EAAIC,OAAOzJ,WACxC2P,IAArBnG,EAAIC,OAAOwY,QAAqBg5C,EAAKxxD,OAAOwY,MAAQzY,EAAIC,OAAOwY,YACxCtS,IAAvBnG,EAAIC,OAAO4kD,UAAuB4M,EAAKxxD,OAAO4kD,QAAU7kD,EAAIC,OAAO4kD,gBAEhE4M,EAAKE,KAGZF,EAAKxxD,OAAOzJ,KAAOg7D,EAAUh7D,KAC7Bi7D,EAAKxxD,OAAOkxD,QAAS,EACrBM,EAAK/1D,KAAO,SAEZ+1D,EAAKtxD,IAAM2N,EAEXa,EAAK9O,OAAOK,UAAU4N,EAAO2jD,EACjC,OAEJA,EAAOzxD,GAINC,OAAOzJ,KAAOg7D,EAAUh7D,KAC7Bi7D,EAAKxxD,OAAOkxD,QAAS,EACrBM,EAAK/1D,KAAO,SACZ+1D,EAAKtxD,IAAM2N,EAEJa,EAAK9O,OAAOK,UAAU4N,EAAO2jD,GAE5C,GACR,GAAC,CAAAr6D,IAAA,kBAAAC,MAED,SAAgBd,EAAIqJ,GAAU,IAADgP,EAAA,KACzB,GAAIjX,KAAK+P,QAAQnR,IAAiC,WAA1BoB,KAAK+P,QAAQnR,GAAImF,KAAmB,CACxD,IAAMuE,EAAStI,KAAK+P,QAAQnR,GAAI0J,OAChCA,EAAOL,QAAUA,EACjBK,EAAOkxD,QAAS,EAChBx5D,KAAKm5D,aAAav6D,EAAIA,EAAI0J,GACrBy2B,OAAM,SAAA1sB,GAAG,MAAY,aAARA,GAAsB4E,EAAKe,UAAU3F,EAAI,GAC/D,CACJ,GAAC,CAAA5S,IAAA,cAAAC,MAED,SAAYoS,EAAIunD,GAAQ,IAADliD,EAAA,KAKnB,GAJKkiD,IACDA,EAAQr5D,KAAKs3D,OAAKnkD,EAAAA,EAAAA,GAAOnT,KAAKs3D,OAAS,IAGvC+B,EAAMh6D,OAAQ,CACd,IAAMT,EAAKy6D,EAAMrnD,QACjBhS,KAAKkI,OAAOkK,SAAS,GAADtO,OAAIlF,EAAE,WACrBwJ,MAAK,SAAAzJ,GACEA,GAASA,EAAMgU,IACfb,EAAGlT,GAEH8C,YAAW,kBAAMyV,EAAK8iD,YAAYnoD,EAAIunD,EAAM,GAEpD,GACR,MACIvnD,GAER,GAAC,CAAArS,IAAA,WAAAC,MAED,WAAY,IAAD4X,EAAA,KACPtX,KAAKi6D,aAAY,SAAAxwD,GACb,IAAKA,EACD,OAAO6N,EAAKU,UAAUnX,EAAAA,KAAAA,EAAO,yBAGjC,IAAMid,EAAI,IAAIgB,KACVD,EAAOf,EAAEo8C,cACT7iD,EAAIyG,EAAEq8C,WAAa,EACnB9iD,EAAI,KACJA,EAAC,IAAAvT,OAAOuT,IAEZwH,GAAI,IAAA/a,OAAQuT,IACZA,EAAIyG,EAAEs8C,WACE,KACJ/iD,EAAC,IAAAvT,OAAOuT,IAEZwH,GAAI,IAAA/a,OAAQuT,EAAC,KAEbC,EAAKpP,OAAOmyD,eAAeC,KAAK,aAAc7wD,EAAM,mBAAoB,CACpEF,QAAS,aACT3K,GAAI,YACJ27D,KAAK,GAADz2D,OAAK+a,EAAI,eACb27C,YAAY,SAAD12D,OAAWwT,EAAKxY,YAC5B,SAAAqO,GACC,GAAoB,kBAATA,EAAmB,CAE1B,IAAMvD,EAAIqhB,SAASkD,cAAc,KACjC,GAAIhhB,EAAKpD,WAAW,UAEhBH,EAAE8kD,KAAI,WAAA5qD,OAAcqJ,OACjB,CAEH,IAAMxN,EAAQwN,EAAKvN,MAAM,SACzBgK,EAAE8kD,KAAI,SAAA5qD,OAAYnE,EAAM,GAAE,KAAAmE,OAAInE,EAAM,GACxC,CACAsrB,SAASkL,KAAK1H,YAAY7kB,GAC1BA,EAAE6wD,QACF7wD,EAAE8wD,QACN,MAEI,GADAvtD,EAAK9G,OAASiR,EAAKU,UAAU7K,EAAK9G,OAC9B8G,EAAKA,KAAM,CACX,IAAMvD,EAAIqhB,SAASkD,cAAc,KACjCvkB,EAAE8kD,KAAI,gCAAA5qD,OAAmCqJ,EAAKA,MAC9CvD,EAAE+wD,SAAQ,GAAA72D,OAAM+a,EAAI,eACpBoM,SAASkL,KAAK1H,YAAY7kB,GAC1BA,EAAE6wD,QACF7wD,EAAE8wD,QACN,CAER,GACJ,GACJ,GAAC,CAAAj7D,IAAA,WAAAC,MAED,SAASyN,GACLnN,KAAKy3D,WAAatqD,EACdA,GACAnN,KAAK8tD,gBAAkB9tD,KAAK46D,kBAAkBhpD,KAAK5R,MACnDA,KAAKhB,SAAS,CAAEy4D,YAAY,EAAO1J,QAASltD,EAAAA,KAAAA,EAAO,4CAEnDb,KAAKhB,SAAS,CAAEy4D,YAAY,GAEpC,GAAC,CAAAh4D,IAAA,oBAAAC,MAED,SAAkBiuD,GAAK,IAADj2C,EAAA,KACdvK,EAAOnN,KAAKy3D,WAChBz3D,KAAKy3D,WAAa,KACd9J,GAAMxgD,IACNA,EAAOA,EAAKvN,MAAM,KAAK,GACvBI,KAAKi6D,aAAY,SAAAxwD,GACRA,EAILiO,EAAKxP,OAAOmyD,eAAeC,KAAK,aAAc7wD,EAAM,oBAAqB,CACrE0D,KAAMA,EACN5D,QAAS,aACT3K,GAAI,cACL,SAAAuO,GACc,oBAATA,EACAuK,EAAKM,UAAUnX,EAAAA,KAAAA,EAAOsM,KACdA,GAAQA,EAAK9G,MACrBqR,EAAKM,UAAU7K,EAAOtM,EAAAA,KAAAA,EAAOsM,EAAK9G,OAASxF,EAAAA,KAAAA,EAAO,kBAElD6W,EAAKmjD,YAAYh6D,EAAAA,KAAAA,EAAO,QAEhC,IAfI6W,EAAKM,UAAUnX,EAAAA,KAAAA,EAAO,wBAgB9B,IAER,GAAC,CAAApB,IAAA,kBAAAC,MAED,WACIyE,OAAOyE,cAAgBzE,OAAOyE,aAAauC,QAAQ,oBAAqBnL,KAAKrB,MAAMo5D,cAAgB,QAAU,QAC7G/3D,KAAKhB,SAAS,CAAE+4D,eAAgB/3D,KAAKrB,MAAMo5D,eAC/C,GAAC,CAAAt4D,IAAA,eAAAC,MAED,WAAgB,IAADsZ,EAAA,KACL25C,EAAmBllD,OAAOC,KAAK1N,KAAK+P,SAAS+qD,QAAO,SAACC,EAAKn8D,GAAE,OAC9Dm8D,GAA8C,UAAvC/hD,EAAKjJ,QAAQnR,GAAI0J,OAAOqF,WAAyB,EAAI,EAAE,GAAE,GAEpE,OAAOhN,EAAAA,GAAAA,KAAC09C,GAAM,CAEV9qC,UAAWvT,KAAKrB,MAAM4U,UACtBi8C,kBAAmB,SAAA9vD,GACVA,EAGDsZ,EAAKha,SAAS,CAACuU,WAAW,IAF1ByF,EAAKha,SAAS,CAACuU,WAAW,EAAO+xC,cAAe,MAIxD,EACAwG,SAAU9rD,KAAKrB,MAAMuyD,SACrBhpD,OAAQlI,KAAKkI,OACbivB,YAAan3B,KAAKm3B,YAClB04B,SAAU,SAAAiI,GAAY,OAAI9+C,EAAKha,SAAS,CAAE84D,aAAAA,GAAe,EACzD7mD,iBAAkBjR,KAAKrB,MAAMsS,iBAC7BP,WAAY1Q,KAAKrB,MAAM+R,WACvBI,WAAY9Q,KAAKrB,MAAMmS,WACvBmZ,UAAWjqB,KAAKrB,MAAMsrB,UACtB/Z,UAAWlQ,KAAKrB,MAAMuR,UACtB5M,MAAOtD,KAAKrB,MAAM2E,MAClBuN,WAAY7Q,KAAKrB,MAAMkS,WACvBlP,SAAU,SAAC/C,EAAI0J,GAAM,OAAK0Q,EAAKgiD,eAAep8D,EAAI0J,EAAO,EACzDqqD,iBAAkBA,EAClBrN,cAAetlD,KAAKrB,MAAM2mD,cAC1BwH,iBAAkB,SAACluD,EAAI6f,GACnB,IAAM3L,EAAW,CAAC,EACdJ,GAAU,EACV9T,IAAOoa,EAAKra,MAAM2L,WAClBoI,GAAU,EACVI,EAASxI,SAAW1L,GAEpB+Q,KAAK8C,UAAUgM,KAAa9O,KAAK8C,UAAUuG,EAAKra,MAAM8f,WACtD/L,GAAU,EACVI,EAAS2L,QAAU9O,KAAKC,MAAMD,KAAK8C,UAAUgM,KAEjD/L,GAAWsG,EAAKha,SAAS8T,EAC7B,EACAw1C,UAAW,SAAA1pD,GAAE,OAAIoa,EAAK9Q,OAAO6xD,aAAan7D,EAAI,CAAE0J,OAAQ,CAAEL,SAAS,IAAS,EAC5EqC,SAAUtK,KAAKrB,MAAM2L,UAAYtK,KAAK+P,QAAQ/P,KAAKrB,MAAM2L,WAAwD,WAA3CtK,KAAK+P,QAAQ/P,KAAKrB,MAAM2L,UAAUvG,KAAoB/D,KAAKrB,MAAM2L,SAAW,GAClJiS,QAASvc,KAAK+P,QACd3Q,UAAWY,KAAKrB,MAAMS,WAvClB,SAyCZ,GAAC,CAAAK,IAAA,gBAAAC,MAED,WAAiB,IAADya,EAAA,KACZ,OAAOxZ,EAAAA,GAAAA,KAAA,OAEHkE,MAAOhE,EAAAA,KAAAA,EAAO,aACdyD,UAAWtE,KAAK9B,MAAMqG,QAAQ02D,cAC9Bv4D,QAAS,WACLyB,OAAOyE,aAAauC,QAAQ,cAAe,SAC3CgP,EAAKnb,SAAS,CAAEg5D,SAAS,EAAO9G,UAAU,IAC1CxvD,YAAW,kBAAMyY,EAAKnb,SAAS,CAAEkyD,UAAU,GAAQ,GAAE,IACzD,EAAExwD,UAEFC,EAAAA,GAAAA,KAACu6D,EAAAA,IAAW,KATR,UAWZ,GAAC,CAAAz7D,IAAA,oBAAAC,MAED,WAAqB,IAAD0a,EAAA,KAChB,OAAOpa,KAAKrB,MAAM8R,WACd9P,EAAAA,GAAAA,KAACyG,GAAW,CAER7I,QAAS,kBAAM6b,EAAKpb,SAAS,CAAEyR,UAAW,IAAK,EAC/CzL,KAAMhF,KAAKrB,MAAM8R,WAFb,eAIR,IACR,GAAC,CAAAhR,IAAA,aAAAC,MAED,WAAc,IAADkb,EAAA,KACDrW,EAAYvE,KAAK9B,MAAjBqG,QACR,MAAO,CACHvE,KAAKrB,MAAM2f,SAAU3d,EAAAA,GAAAA,KAAC60B,EAAAA,QAAa,CAAqBj3B,QAAS,kBAAMqc,EAAK5b,SAAS,CAAEsf,QAAS,IAAK,EAAEtZ,KAAMhF,KAAKrB,MAAM2f,SAAhF,iBAA8F,KACtIte,KAAK41B,oBACL51B,KAAKrB,MAAM84D,YAAa92D,EAAAA,GAAAA,KAACwzD,GAAgB,CAAwB51D,QAAS,SAAA4O,GAAI,OAAIyN,EAAKrC,SAASpL,EAAK,GAAvD,oBAA8D,KAC5GnN,KAAKrB,MAAMovD,SAAUptD,EAAAA,GAAAA,KAAC4uD,EAAAA,QAAa,CAE/BhxD,QAAS,SAAA8O,GACLuN,EAAKjc,MAAMovD,SAAWnzC,EAAK5b,SAAS,CAAE+uD,QAAS,KAC/CnzC,EAAKkzC,iBAAmBlzC,EAAKkzC,gBAAgBzgD,GAC7CuN,EAAKkzC,gBAAkB,IAC3B,EACA9oD,KAAMhF,KAAKrB,MAAMovD,SANb,iBAM2B,MACnC5tD,EAAAA,GAAAA,MAAA,OAAKmE,UAAWC,EAAQ6iB,QAAU,uBAAuB1mB,SAAA,EACrDC,EAAAA,GAAAA,KAAA,OAAqB2D,UAAWC,EAAQ42D,oBAAqBz4D,QAAS,WAClEyB,OAAOyE,aAAauC,QAAQ,iBAAkByP,EAAKjc,MAAM+R,WAAa,QAAU,QAChFkK,EAAK5b,SAAS,CAAE0R,YAAakK,EAAKjc,MAAM+R,WAAYwgD,UAAU,IAC9DxvD,YAAW,kBAAMkZ,EAAK5b,SAAS,CAAEkyD,UAAU,GAAQ,GAAE,IACzD,EAAExwD,SACGV,KAAKrB,MAAM+R,YAAa/P,EAAAA,GAAAA,KAACy6D,EAAAA,IAAc,KAAMz6D,EAAAA,GAAAA,KAAC06D,EAAAA,IAAc,KALxD,cAOTl7D,EAAAA,GAAAA,MAACwjD,IAAc,CAEXM,UAAWjkD,KAAKrB,MAAMo5D,cACtB/T,eAAgB,IAChBE,qBAAsBlkD,KAAKrB,MAAMq5D,QAAU,EAAIh4D,KAAKu3D,QAEpD+D,YAAa,kBAAM1gD,EAAK5b,SAAS,CAAEkyD,UAAU,GAAO,EACpD/M,0BAA2B,SAAAj/C,GAAI,OAAI0V,EAAKjc,MAAMq5D,QAAU,EAAIp9C,EAAK28C,QAAUprB,WAAWjnC,EAAK,EAC3Fk/C,UAAW,WACPxpC,EAAK5b,SAAS,CAAEkyD,UAAU,IAC1B/sD,OAAOyE,aAAauC,QAAQ,cAAeyP,EAAK28C,QAAQtqD,WAC5D,EAAEvM,SAAA,EAEFP,EAAAA,GAAAA,MAAA64B,GAAAA,SAAA,CAAAt4B,SAAA,CACKV,KAAKu7D,gBACJv7D,KAAKrB,MAAM4U,WAAavT,KAAKrB,MAAMq5D,SAAWh4D,KAAKi7D,oBAEvDj7D,KAAKrB,MAAM4U,YAAcvT,KAAKrB,MAAMq5D,UAAWr3D,EAAAA,GAAAA,KAACyd,GAAG,CAEjDkC,gBAAiBtgB,KAAKrB,MAAMo5D,cAC5B33C,eAAgB,kBAAMxF,EAAK4gD,iBAAiB,EAC5C/8C,QAASze,KAAKrB,MAAM8f,QACpBvW,OAAQlI,KAAKkI,OACboC,SAAUtK,KAAKrB,MAAM2L,SACrBiW,UAAW,WACPpc,OAAOyE,aAAauC,QAAQ,cAAe,QAC3CyP,EAAK5b,SAAS,CAAEg5D,SAAS,EAAM9G,UAAU,IACzCxvD,YAAW,kBAAMkZ,EAAK5b,SAAS,CAAEkyD,UAAU,GAAQ,GAAE,IACzD,GAVI,SAjBJ,oBATkD,QAyCtE,GAAC,CAAAzxD,IAAA,SAAAC,MAED,WAAU,IAADob,EAAA,KACGvW,EAAYvE,KAAK9B,MAAjBqG,QAER,OAAKvE,KAAKrB,MAAM+4D,OAKT/2D,EAAAA,GAAAA,KAAA,OAAK2D,UAAWC,EAAQiD,KAAK9G,UAChCC,EAAAA,GAAAA,KAAC+wC,GAAc,CAACxpC,OAAQlI,KAAKkI,OAAOxH,UAChCP,EAAAA,GAAAA,MAACwjD,IAAc,CAEXM,UAAU,EACVD,eAAgB,IAChBF,aAAc,EACdC,iBAAkB,IAClBG,qBAAsBlkD,KAAKw3D,SAC3B5T,gBAAe,GAAA9/C,OAAKS,EAAQk3D,aAAY,KAAA33D,OAAK9D,KAAKrB,MAAM+R,WAA0C,GAA7BnM,EAAQm3D,oBAC7EJ,YAAa,kBAAMxgD,EAAK9b,SAAS,CAAEkyD,UAAU,GAAO,EACpD/M,0BAA2B,SAAAj/C,GAAI,OAAI4V,EAAK08C,SAAWrrB,WAAWjnC,EAAK,EACnEk/C,UAAW,WACPtpC,EAAK9b,SAAS,CAAEkyD,UAAU,IAC1B/sD,OAAOyE,aAAauC,QAAQ,eAAgB2P,EAAK08C,SAASvqD,WAC9D,EAAEvM,SAAA,EAEFC,EAAAA,GAAAA,KAAA,OAAK2D,UAAWC,EAAQo3D,QAAQj7D,UAC5BC,EAAAA,GAAAA,KAACi7D,GAAQ,CACLroD,UAAWvT,KAAKrB,MAAM4U,UACtBsH,gBAAiB,SAAA1N,GACb2N,EAAK9b,SAAS,CAAEsmD,cAAen4C,EAAMoG,YAAapG,GACtD,EAEA4C,QAAS/P,KAAK+P,QACdmB,YAAalR,KAAKrB,MAAMuS,YACxB9R,UAAWY,KAAKrB,MAAMS,UACtBy8D,OAAQ77D,KAAKrB,MAAMg5D,cACnBl5D,SAAUuB,KAAKvB,SAASmT,KAAK5R,MAC7B45D,SAAU55D,KAAK45D,SAAShoD,KAAK5R,MAC7BkI,OAAQlI,KAAKkI,OACbyU,SAAU3c,KAAKrB,MAAMm5D,aACrBlkD,OAAQ5T,KAAK4T,OAAOhC,KAAK5R,MACzB6Q,WAAY7Q,KAAKrB,MAAMkS,WACvBoZ,UAAWjqB,KAAKrB,MAAMsrB,UACtB/Z,UAAWlQ,KAAKrB,MAAMuR,UACtBuI,cAAe,SAAAvI,GACXlB,EAAAA,MAAAA,aAAmBkB,GACnB,IAAM+Z,EAAYjb,EAAAA,MAAAA,aAAmBkB,GACrC4K,EAAK9b,SAAS,CAAEkR,UAAAA,EAAW+Z,UAAAA,IAAa,kBAAMnP,EAAK5c,MAAMua,cAAcvI,EAAU,GACrF,EACAe,iBAAkBjR,KAAKrB,MAAMsS,iBAC7BkH,mBAAoBnY,KAAKmY,mBAAmBvG,KAAK5R,MACjDiD,SAAUjD,KAAKiD,SAAS2O,KAAK5R,MAC7B4Y,SAAU5Y,KAAK4Y,SAAShH,KAAK5R,MAC7ByT,gBAAiBzT,KAAKyT,gBAAgB7B,KAAK5R,MAC3CqY,SAAUrY,KAAKqY,SAASzG,KAAK5R,MAC7BoB,MAAOpB,KAAKw3D,SACZj/C,SAAU,kBAAMuC,EAAK9b,SAAS,CAAEy4D,YAAY,GAAO,EACnDr+C,SAAU,SAAAtI,GAAU,OAAIgK,EAAK9b,SAAS,CAAE8R,WAAAA,GAAa,GA1BjD,aANyB,QAmCpC9Q,KAAK87D,eAjDF,qBANLn7D,EAAAA,GAAAA,KAACo7D,EAAAA,OAAM,CAACz4D,MAAOtD,KAAKrB,MAAMsrB,WA2DzC,KAACgsC,CAAA,CAl0BI,CAAS+F,EAAAA,GAq0BlB,IAAe34D,EAAAA,EAAAA,IAj6BA,SAAAC,GAAK,MAAK,CACrBkE,KAAM,CACFy0D,SAAU,EACVr2D,QAAS,OACTxE,MAAO,OACPyE,OAAQ,QAEZq2D,QAAS,CACL/nD,SAAU,UAEdsnD,aAAc,CACV,QAAS,CACLtnD,SAAU,SACV/S,MAAO,OACPyE,OAAQ,QAEZ,qBAAsB,CAClB8B,WAAmC,SAAvBrE,EAAMsE,QAAQgV,KAAkB,UAAY,UAGhE++C,QAAS,CACLv6D,MAAO,OACPyE,OAAQ,OACRsO,SAAU,UAYdiT,QAAS,CACLhmB,MAAO,OACPyE,OAAQ,OACR+X,gBAAiBta,EAAMsE,QAAQD,YAAcrE,EAAMsE,QAAQD,WAAWgjC,QACtEr/B,SAAU,YAEd6wD,oBAAqB,CACjB/6D,MAAM,qBACNyE,OAAQ,QAEZ61D,mBAAoB,CAChB,oBAAqB,CACjB91D,QAAS,QAEb,qBAAsB,CAClBA,QAAS,SAGjBw2D,SAAU,CACNt6D,OAAQ,KAEZq5D,oBAAqB,CACjB7vD,SAAU,WACVuf,KAAM,EACNzN,aAAc,cACdH,IAAK,EACLO,WAAY,EACZ3I,OAAQ,UACR6U,OAAQ,EACR7jB,OAAQ,GACRzE,MAAO,GACPuG,WAAYrE,EAAMsE,QAAQ05C,UAAUz5C,KACpClF,MAAOW,EAAMsE,QAAQ+C,QAAQ9C,KAC7B6V,YAAa,EACb,UAAW,CACP/a,MAAO,UAGfs4D,cAAe,CACX3vD,SAAU,WACV0R,MAAO,EACPI,aAAc,cACdqM,OAAQ,EACRjM,WAAY,EACZ3I,OAAQ,UACR6U,OAAQ,GACR7jB,OAAQ,GACRzE,MAAO,GACPuG,WAAYrE,EAAMsE,QAAQ05C,UAAUz5C,KACpClF,MAAOW,EAAMsE,QAAQ+C,QAAQ9C,KAC7B6V,YAAa,EACb,UAAW,CACP/a,MAAO,UAGlB,GAu0BD,CAAkCszD,IC76Bd98B,QACW,cAA7Bh1B,OAAOygB,SAASy3C,UAEe,UAA7Bl4D,OAAOygB,SAASy3C,UAEhBl4D,OAAOygB,SAASy3C,SAASpqD,MACvB,2D,4BCAN9N,OAAOs5B,aAAeA,GAEtBt5B,OAAOgzB,YAAc,aACrBhzB,OAAO8yD,UAAY,kEAEnB,IAAI/mD,GAAYlB,EAAAA,MAAAA,eAEhB3H,QAAQC,IAAI,YAADxD,OAAaK,OAAOgzB,YAAW,KAAArzB,O,QAAe,kBAAAA,OAAiBoM,GAAS,MAEnF,IAAMosD,IAAoBC,EAAAA,EAAAA,yBAAwB,CAC9CC,iBAAkB,SAGtB,SAASC,IACL,IAAM7jB,EAAWz0C,OAAO00C,WAAa,IAC/B/tC,EAAYmgB,SAASC,eAAe,QAE1C,OADawxC,EAAAA,EAAAA,GAAW5xD,GACZy3B,QAAO5hC,EAAAA,GAAAA,KAACg8D,EAAAA,eAAc,CAACL,kBAAmBA,GAAkB57D,UACpEC,EAAAA,GAAAA,KAACi8D,EAAAA,EAAoB,CAACC,aAAW,EAAAn8D,UAC7BC,EAAAA,GAAAA,KAACm8D,EAAAA,EAAa,CAACx5D,OAAOA,EAAAA,GAAAA,SAAM4M,IAAWxP,UACnCC,EAAAA,GAAAA,KAACo8D,EAAAA,EAAW,CAACrhD,QAASk9B,EAAWokB,GAAAA,GAAerhD,EAAAA,GAAajb,UACzDC,EAAAA,GAAAA,KAACs1D,GAAG,CAACx9C,cAAe,SAAAwkD,GAChB/sD,GAAY+sD,EACZR,GACJ,YAKpB,CAEAA,GD4EM,kBAAmBS,WACrBA,UAAUC,cAAczF,MAAMtvD,MAAK,SAAAg1D,GACjCA,EAAaC,YACf,ICpEJ,IAAMC,GAAoBn5D,OAAOm5D,kBACjCA,IAAqBA,GAA2C,SAAzBn5D,OAAOygB,SAAS24C,KAAkBp5D,OAAOygB,SAASkuB,SAAW,KAAO3uC,OAAOygB,SAASy3C,SAAW,4BAA8B,+BAA+B,WAC/LiB,GAAkB,gBAAgB,WAC9BA,GAAkB,mBAAmB,WACK,oBAA/Bn5D,OAAOq5D,qBAAsCr5D,OAAOq5D,qBAC/D,GACJ,GACJ,G","sources":["Dialogs/Rename.jsx","Dialogs/Delete.jsx","Dialogs/AddNewScript.jsx","Dialogs/New.jsx","Dialogs/Error.jsx","Dialogs/AdapterDebug.jsx","SideMenu.jsx","Log.jsx","Components/ScriptEditorVanilaMonaco.jsx","Dialogs/Export.jsx","Dialogs/Import.jsx","Components/BlocklyEditor.jsx","Dialogs/ScriptEditor.jsx","webpack://js/./src/Components/RulesEditor/style.module.scss?d9e3","webpack://js/./src/Components/RulesEditor/components/CardMenu/style.module.scss?24d8","Components/RulesEditor/helpers/MaterialDynamicIcon.jsx","Components/RulesEditor/components/CardMenu/index.jsx","webpack://js/./src/Components/RulesEditor/components/CurrentItem/style.module.scss?3318","Components/RulesEditor/helpers/deepCopy.jsx","Components/RulesEditor/helpers/filterElement.jsx","webpack://js/./src/Components/RulesEditor/components/GenericBlock/style.module.scss?9124","webpack://js/./src/Components/RulesEditor/components/CustomButton/style.module.scss?0052","Components/RulesEditor/components/CustomButton/index.jsx","webpack://js/./src/Components/RulesEditor/components/CustomCheckbox/style.module.scss?0cc5","Components/RulesEditor/components/CustomCheckbox/index.jsx","webpack://js/./src/Components/RulesEditor/components/CustomInput/style.module.scss?7193","Components/RulesEditor/components/CustomInput/index.jsx","Components/RulesEditor/components/CustomInstance/index.jsx","webpack://js/./src/Components/RulesEditor/components/CustomModal/style.module.scss?7408","Components/RulesEditor/components/CustomModal/index.jsx","webpack://js/./src/Components/RulesEditor/components/CustomSelect/style.module.scss?40f6","Components/RulesEditor/components/CustomSelect/index.jsx","webpack://js/./src/Components/RulesEditor/components/CustomSlider/style.module.scss?f41a","Components/RulesEditor/components/CustomSlider/index.jsx","webpack://js/./src/Components/RulesEditor/components/CustomSwitch/style.module.scss?0c1c","Components/RulesEditor/components/CustomSwitch/index.jsx","webpack://js/./src/Components/RulesEditor/components/CustomTime/style.module.scss?880f","Components/RulesEditor/components/CustomTime/index.jsx","webpack://js/./src/Components/RulesEditor/components/CustomDate/style.module.scss?8a42","Components/RulesEditor/components/CustomDate/index.jsx","Components/RulesEditor/helpers/utils.jsx","Components/RulesEditor/helpers/Tour.jsx","Components/RulesEditor/components/GenericBlock/index.jsx","Components/RulesEditor/components/Blocks/ActionSayText.jsx","Components/RulesEditor/components/Blocks/ActionSendEmail.jsx","Components/RulesEditor/components/Blocks/ActionTelegram.jsx","Components/RulesEditor/components/Blocks/ActionPushover.jsx","Components/RulesEditor/components/Blocks/ActionWhatsappcmb.jsx","Components/RulesEditor/components/Blocks/ActionPushsafer.jsx","Components/RulesEditor/helpers/Compile.jsx","Components/RulesEditor/components/Blocks/TriggerScriptSave.jsx","Components/RulesEditor/components/Blocks/TriggerSchedule.jsx","Components/RulesEditor/components/Blocks/TriggerState.jsx","Components/RulesEditor/components/Blocks/ConditionState.jsx","Components/RulesEditor/components/Blocks/ConditionTime.jsx","Components/RulesEditor/components/Blocks/ConditionAstrological.jsx","Components/RulesEditor/components/Blocks/ActionSetState.jsx","Components/RulesEditor/components/StandardBlocks/index.jsx","Components/RulesEditor/components/Blocks/ActionExec.jsx","Components/RulesEditor/components/Blocks/ActionHTTPCall.jsx","Components/RulesEditor/components/Blocks/ActionPrintText.jsx","Components/RulesEditor/components/Blocks/ActionPause.jsx","Components/RulesEditor/components/Blocks/ActionFunction.jsx","Components/RulesEditor/components/Blocks/ActionSetStateDelayed.jsx","Components/RulesEditor/components/Blocks/ActionOperateStates.jsx","Components/RulesEditor/components/ContextWrapper/index.jsx","Components/RulesEditor/components/CurrentItem/index.jsx","Components/RulesEditor/helpers/findElement.jsx","Components/RulesEditor/components/CustomDragLayer/index.jsx","webpack://js/./src/Components/RulesEditor/components/ContentBlockItems/style.module.scss?385e","Components/RulesEditor/hooks/useStateLocal.jsx","Components/RulesEditor/helpers/cardSort.jsx","webpack://js/./src/Components/RulesEditor/components/DragWrapper/style.module.scss?b1b7","Components/RulesEditor/components/DragWrapper/index.jsx","Components/RulesEditor/components/ContentBlockItems/DialogHelp.jsx","Components/RulesEditor/components/ContentBlockItems/DialogCondition.jsx","Components/RulesEditor/components/ContentBlockItems/index.jsx","webpack://js/./src/Components/RulesEditor/components/Menu/style.module.scss?9893","Components/RulesEditor/components/CardMenu/CustomDragItem.jsx","webpack://js/./src/Components/RulesEditor/components/HamburgerMenu/hamburgerMenu.module.scss?ab25","Components/RulesEditor/components/HamburgerMenu/index.jsx","Components/RulesEditor/components/Menu/index.jsx","Components/RulesEditor/index.jsx","Components/Debugger/Editor.jsx","Components/Debugger/Console.jsx","Components/Debugger/Stack.jsx","Components/Debugger/index.jsx","Editor.jsx","Dialogs/ImportFile.jsx","App.jsx","serviceWorker.jsx","bootstrap.jsx"],"sourcesContent":["import React from 'react';\nimport PropTypes from 'prop-types';\n\nimport Button from '@mui/material/Button';\nimport DialogTitle from '@mui/material/DialogTitle';\nimport DialogContent from '@mui/material/DialogContent';\nimport DialogActions from '@mui/material/DialogActions';\nimport Dialog from '@mui/material/Dialog';\nimport TextField from '@mui/material/TextField';\nimport FormControl from '@mui/material/FormControl';\nimport Select from '@mui/material/Select';\nimport InputLabel from '@mui/material/InputLabel';\nimport MenuItem from '@mui/material/MenuItem';\n\nimport IconCancel from '@mui/icons-material/Cancel';\nimport IconOk from '@mui/icons-material/Check';\n\nimport { I18n } from '@iobroker/adapter-react-v5';\n\nclass DialogRename extends React.Component {\n constructor(props) {\n super(props);\n this.state = {\n name: props.name,\n id: props.id,\n instance: props.instance || 0\n };\n this.isShowInstance = !props.folder && props.instances && (props.instance || props.instances[0] || props.instances.length > 1);\n this.prefix = this.getPrefix(props.id);\n this.oldId = props.id;\n }\n\n getPrefix(id) {\n const parts = (id || '').split('.');\n parts.pop();\n return parts.join('.');\n }\n\n getId(name) {\n name = (name || '').replace(/[\\\\/\\][*,;'\"`<>?\\s]/g, '_');\n return this.prefix + '.' + name;\n }\n\n componentWillReceiveProps(nextProps) {\n if (nextProps.name !== this.props.name) {\n this.setState({name: nextProps.name});\n }\n if (nextProps.id !== this.props.id) {\n this.prefix = this.getPrefix(nextProps.id);\n this.setState({id: nextProps.id});\n }\n }\n\n handleCancel = () => {\n this.props.onClose();\n };\n\n handleOk = () => {\n this.props.onRename(this.oldId, this.state.id, this.state.name, this.state.instance);\n this.props.onClose();\n };\n\n handleChange = name => {\n this.setState({name, id: this.getId(name)});\n };\n\n render() {\n return false}\n maxWidth=\"md\"\n fullWidth\n open={!0}\n aria-labelledby=\"confirmation-dialog-title\"\n >\n {I18n.t('Rename')}\n \n
\n {\n if (ev.key === 'Enter') {\n // Do code here\n ev.preventDefault();\n setTimeout(() => this.handleOk(), 200);\n }\n }}\n onChange={e => this.handleChange(e.target.value)}\n margin=\"normal\"\n />\n \n {\n this.isShowInstance && (\n \n {I18n.t('Instance')}\n this.setState({instance: parseInt(e.target.value, 10)})}\n inputProps={{name: 'instance', id: 'instance'}}\n >\n {this.props.instances.map(instance => {instance || '0'})}\n \n )\n }\n \n
\n \n \n \n \n ;\n }\n}\n\nDialogRename.propTypes = {\n onClose: PropTypes.func,\n onRename: PropTypes.func,\n name: PropTypes.string,\n id: PropTypes.string,\n instance: PropTypes.number,\n instances: PropTypes.array,\n folder: PropTypes.bool,\n};\n\nexport default DialogRename;\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport Button from '@mui/material/Button';\nimport DialogTitle from '@mui/material/DialogTitle';\nimport DialogContent from '@mui/material/DialogContent';\nimport DialogActions from '@mui/material/DialogActions';\nimport Dialog from '@mui/material/Dialog';\nimport {MdDelete as IconDelete} from 'react-icons/md';\n\nimport IconOk from '@mui/icons-material/Check';\nimport IconCancel from '@mui/icons-material/Cancel';\n\nimport { I18n } from '@iobroker/adapter-react-v5';\nimport withStyles from '@mui/styles/withStyles';\n\nconst styles = theme => ({\n\n});\n\nclass DialogDelete extends React.Component {\n constructor(props) {\n super(props);\n this.state = {\n name: props.name,\n id: props.id,\n };\n }\n\n componentWillReceiveProps(nextProps) {\n if (nextProps.name !== this.props.name) {\n this.setState({name: nextProps.name});\n }\n if (nextProps.id !== this.props.id) {\n this.setState({id: nextProps.id});\n }\n }\n\n handleCancel = () => {\n this.props.onClose(null);\n };\n\n handleOk = () => {\n this.props.onDelete(this.state.id);\n this.props.onClose(this.props.value);\n };\n\n render() {\n return false}\n maxWidth=\"md\"\n open={!0}\n aria-labelledby=\"confirmation-dialog-title\"\n >\n {I18n.t('Are you sure?')}\n \n \n {I18n.t('Delete %s', this.state.name)}\n \n \n \n \n \n ;\n }\n}\n\nDialogDelete.propTypes = {\n onClose: PropTypes.func,\n onDelete: PropTypes.func,\n name: PropTypes.string,\n id: PropTypes.string,\n};\n\nexport default withStyles(styles)(DialogDelete);\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport withStyles from '@mui/styles/withStyles';\nimport Button from '@mui/material/Button';\nimport DialogTitle from '@mui/material/DialogTitle';\nimport DialogContent from '@mui/material/DialogContent';\nimport DialogActions from '@mui/material/DialogActions';\nimport Dialog from '@mui/material/Dialog';\nimport Card from '@mui/material/Card';\nimport CardActionArea from '@mui/material/CardActionArea';\nimport CardActions from '@mui/material/CardActions';\nimport CardContent from '@mui/material/CardContent';\nimport CardMedia from '@mui/material/CardMedia';\n\nimport ImgJS from '../assets/tileJS.png';\nimport ImgTS from '../assets/tileTS.png';\nimport ImgBlockly from '../assets/tileBlockly.png';\nimport ImgRules from '../assets/tileRules.png';\nimport IconCancel from '@mui/icons-material/Cancel';\n\nimport { I18n } from '@iobroker/adapter-react-v5';\n\nconst styles = theme => ({\n card: {\n maxWidth: 345,\n display: 'inline-block',\n margin: '0 10px 0 10px'\n },\n media: {\n height: 100,\n },\n text: {\n maxWidth: 200,\n },\n complexity: {\n fontWeight: 'bold',\n fontStyle: 'italic',\n marginBottom: theme.spacing(1),\n }\n});\n\nclass DialogAddNew extends React.Component {\n handleCancel = () => {\n this.props.onClose();\n };\n\n handleOk = type => {\n this.props.onClose(type);\n };\n\n openHtml(html) {\n const lang = I18n.getLanguage();\n if (!html.includes('javascript.md') && (lang === 'de' || lang === 'ru')) {\n html = html.replace(/\\/en\\//, '/' + lang + '/');\n }\n const win = window.open(html, '_blank');\n win.focus();\n }\n\n getJSCard() {\n return \n this.props.onClose && this.props.onClose('Javascript/js')}>\n \n \n

Javascript

\n
{I18n.t('for programmers')}
\n
{I18n.t('JS description')}
\n
\n \n \n \n \n \n
;\n }\n\n getTSCard() {\n return \n this.props.onClose && this.props.onClose('TypeScript/ts')}>\n \n \n

Typescript

\n
{I18n.t('for professionals')}
\n
{I18n.t('TS description')}
\n
\n \n \n \n \n \n
;\n }\n\n getBlocklyCard() {\n return \n this.props.onClose && this.props.onClose('Blockly')}>\n \n \n

Blockly

\n
{I18n.t('normal')}
\n
{I18n.t('Blockly description')}
\n
\n
\n \n \n \n \n
;\n }\n\n getRulesCard() {\n return \n this.props.onClose && this.props.onClose('Rules')}>\n \n \n

Rules

\n
{I18n.t('easy')}
\n
{I18n.t('Rules description')}
\n
\n
\n \n \n \n \n
;\n }\n\n render() {\n return false}\n maxWidth=\"lg\"\n fullWidth\n open={!0}\n aria-labelledby=\"confirmation-dialog-title\"\n >\n {I18n.t('Add new script')}\n \n {this.getRulesCard()}\n {this.getBlocklyCard()}\n {this.getJSCard()}\n {this.getTSCard()}\n \n \n \n \n ;\n }\n}\n\nDialogAddNew.propTypes = {\n onClose: PropTypes.func\n};\n\nexport default withStyles(styles)(DialogAddNew);\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport withStyles from '@mui/styles/withStyles';\n\nimport Button from '@mui/material/Button';\nimport DialogTitle from '@mui/material/DialogTitle';\nimport DialogContent from '@mui/material/DialogContent';\nimport DialogActions from '@mui/material/DialogActions';\nimport Dialog from '@mui/material/Dialog';\nimport TextField from '@mui/material/TextField';\nimport FormControl from '@mui/material/FormControl';\nimport Select from '@mui/material/Select';\nimport InputLabel from '@mui/material/InputLabel';\nimport MenuItem from '@mui/material/MenuItem';\n\nimport IconOk from '@mui/icons-material/Check';\nimport IconCancel from '@mui/icons-material/Cancel';\n\nimport { I18n } from '@iobroker/adapter-react-v5';\n\nconst styles = theme => ({\n\n});\n\nclass DialogNew extends React.Component {\n constructor(props) {\n super(props);\n this.state = {\n name: props.name || 'Script',\n instance: props.instance || 0,\n parent: props.parent,\n error: ''\n };\n this.isShowInstance = !props.folder && props.instances && (props.instance || props.instances[0] || props.instances.length > 1);\n }\n\n getId(name) {\n name = name || this.state.name || '';\n name = name.replace(/[\\\\/\\][.*,;'\"`<>?\\s]/g, '_').trim().replace(/\\.$/, '_');\n return (this.state ? this.state.parent : this.props.parent) + '.' + name;\n }\n\n componentWillReceiveProps(nextProps) {\n if (nextProps.name !== this.props.name) {\n this.setState({name: nextProps.name});\n }\n }\n\n handleCancel = () => {\n this.props.onClose();\n };\n\n handleOk = () => {\n this.props.onAdd(this.getId(this.state.name), this.state.name, this.state.instance, this.props.type);\n this.props.onClose();\n };\n\n handleChange = name => {\n const id = this.getId(name);\n if (!name) {\n this.setState({name, id, error: I18n.t('Empty name is not allowed')});\n } else\n if (this.props.existingItems && this.props.existingItems.indexOf(id) !== -1) {\n this.setState({name, id, error: I18n.t('Duplicate name')});\n } else {\n this.setState({name, id, error: ''});\n }\n };\n\n render() {\n return false}\n maxWidth=\"md\"\n fullWidth\n open={!0}\n aria-labelledby=\"confirmation-dialog-title\"\n >\n {this.props.title || I18n.t('Create new')}\n \n
\n {\n if (ev.key === 'Enter') {\n // Do code here\n ev.preventDefault();\n setTimeout(() => this.handleOk(), 200);\n }\n }}\n onChange={e => this.handleChange(e.target.value)}\n margin=\"normal\"\n />\n \n {I18n.t('Folder')}\n this.setState({parent: e.target.value})}\n inputProps={{name: 'parent', id: 'parent',}}\n >\n {this.props.parents.map(parent => {\n const parts = parent.id.split('.');\n parts.splice(0, 2); // remove script.js\n const names = [];\n let id = 'script.js';\n parts.forEach((n, i) => {\n id += '.' + n;\n const el = this.props.parents.find(item => item.id === id);\n if (el) {\n names.push(el.name);\n } else {\n names.push(n);\n }\n });\n if (!names.length) {\n names.push(parent.name);\n }\n return ({names.join(' / ')})\n })}\n \n \n \n {\n this.isShowInstance && (\n \n {I18n.t('Instance')}\n this.setState({instance: parseInt(e.target.value, 10)})}\n inputProps={{name: 'instance', id: 'instance',}}\n >\n {this.props.instances.map(instance => ({instance || '0'}))}\n \n )\n }\n \n
\n \n \n \n \n ;\n }\n}\n\nDialogNew.propTypes = {\n onClose: PropTypes.func,\n onAdd: PropTypes.func,\n name: PropTypes.string,\n title: PropTypes.string,\n parent: PropTypes.string,\n instance: PropTypes.number,\n instances: PropTypes.array,\n parents: PropTypes.array,\n existingItems: PropTypes.array,\n folder: PropTypes.bool,\n type: PropTypes.string,\n};\n\nexport default withStyles(styles)(DialogNew);\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport withStyles from '@mui/styles/withStyles';\nimport Button from '@mui/material/Button';\nimport Dialog from '@mui/material/Dialog';\nimport DialogActions from '@mui/material/DialogActions';\nimport DialogContent from '@mui/material/DialogContent';\nimport DialogContentText from '@mui/material/DialogContentText';\nimport DialogTitle from '@mui/material/DialogTitle';\n\nimport IconOk from '@mui/icons-material/Check';\n\nimport { I18n } from '@iobroker/adapter-react-v5';\n\nconst styles = theme => ({\n titleBackground: {\n background: theme.palette.error.main,\n },\n titleColor: {\n color: theme.palette.error.contrastText,\n '&>h2': {\n color: theme.palette.error.contrastText,\n }\n },\n});\n\nclass DialogError extends React.Component {\n constructor(props) {\n super(props);\n console.log('Error created')\n }\n handleOk = () => {\n this.props.onClose && this.props.onClose();\n };\n\n render() {\n return this.handleOk()}\n aria-labelledby=\"alert-dialog-title\"\n aria-describedby=\"alert-dialog-description\"\n >\n {this.props.title || I18n.t('Error')}\n \n \n {this.props.text || I18n.t('Unknown error!')}\n \n \n \n \n \n ;\n }\n}\n\nDialogError.propTypes = {\n onClose: PropTypes.func,\n title: PropTypes.string,\n text: PropTypes.string,\n icon: PropTypes.object\n};\n\nexport default withStyles(styles)(DialogError);\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport withStyles from '@mui/styles/withStyles';\n\nimport Button from '@mui/material/Button';\nimport DialogTitle from '@mui/material/DialogTitle';\nimport DialogContent from '@mui/material/DialogContent';\nimport DialogActions from '@mui/material/DialogActions';\nimport Dialog from '@mui/material/Dialog';\nimport ListItemIcon from '@mui/material/ListItemIcon';\nimport List from '@mui/material/List';\nimport ListItem from '@mui/material/ListItem';\nimport Grid from '@mui/material/Grid';\nimport ListItemText from '@mui/material/ListItemText';\nimport Input from '@mui/material/Input';\nimport InputAdornment from '@mui/material/InputAdornment';\nimport IconButton from '@mui/material/IconButton';\n\nimport IconOk from '@mui/icons-material/Check';\nimport IconCancel from '@mui/icons-material/Cancel';\nimport IconClose from '@mui/icons-material/Close';\n\nimport { I18n } from '@iobroker/adapter-react-v5';\n\nconst styles = theme => ({\n buttonIcon: {\n marginRight: theme.spacing(1),\n },\n icon: {\n width: 24,\n height: 24,\n },\n filter: {\n width: '100%',\n },\n filterWithButton: {\n width: '100%',\n },\n title: {\n fontWeight: 'bold',\n marginTop: theme.spacing(2),\n }\n});\n\n\nclass DialogAdapterDebug extends React.Component {\n constructor(props) {\n super(props);\n this.state = {\n instances: [],\n filter: window.localStorage.getItem('javascript.debug.filter') || '',\n showAskForStop: false,\n jsInstance: window.localStorage.getItem('javascript.debug.instance') || '',\n jsInstanceHost: '',\n adapterToDebug: window.localStorage.getItem('javascript.debug.adapter') || '',\n };\n }\n\n componentDidMount() {\n this.props.socket.getAdapterInstances()\n .then(instances => {\n instances = instances.filter(i => i && !i.common?.onlyWWW).map(item => {\n const name = item._id.replace(/^system\\.adapter\\./, '');\n const [adapter] = name.split('.');\n return {\n id: name,\n enabled: item.common?.enabled,\n host: item.common?.host,\n icon: item.common?.icon ? `../../adapter/${adapter}/${item.common.icon}` : '',\n };\n });\n instances.sort((a, b) => a.id > b.id ? 1 : (a.id < b.id ? -1 : 0));\n let jsInstance = this.state.jsInstance || '';\n let jsInstanceObj = this.state.jsInstance && instances.find(item => item.id === this.state.jsInstance);\n let jsInstanceHost;\n\n // check if selected instance is in the list\n if (!this.state.jsInstance || !jsInstanceObj) {\n jsInstance = instances.find(item => item.id.startsWith('javascript.')); // take the first one\n jsInstanceHost = jsInstance ? jsInstance.host : '';\n jsInstance = jsInstance ? jsInstance.id : '';\n } else {\n jsInstanceHost = jsInstanceObj ? jsInstanceObj.host : '';\n }\n\n let adapterToDebug = this.state.adapterToDebug || '';\n if (adapterToDebug && !instances.find(item => item.id === adapterToDebug)) {\n adapterToDebug = '';\n }\n\n this.setState({instances, jsInstance, adapterToDebug, jsInstanceHost});\n });\n }\n\n handleOk = () => {\n // TODO\n if (this.state.instances.find(item => item.id === this.state.adapterToDebug).enabled) {\n return this.props.socket.getObject('system.adapter.' + this.state.adapterToDebug)\n .then(obj => {\n obj.common.enabled = false;\n this.props.socket.setObject(obj._id, obj)\n .then(() =>\n this.props.onDebug(this.state.jsInstance, this.state.adapterToDebug));\n })\n } else {\n this.props.onDebug(this.state.jsInstance, this.state.adapterToDebug);\n }\n };\n\n\n renderJavascriptList() {\n const js = this.state.instances.filter(item => item.id.startsWith('javascript.'));\n if (js.length < 2) {\n return null;\n } else {\n return \n
{I18n.t('Host')}
\n \n {js.map(item => \n {item.id}\n \n )}\n \n
;\n }\n }\n\n renderInstances() {\n if (!this.state.jsInstance) {\n return ;\n } else {\n const instances = this.state.instances.filter(item =>\n item.id !== this.state.jsInstance && item.host === this.state.jsInstanceHost && (!this.state.filter || item.id.includes(this.state.filter.toLowerCase()) ));\n return \n
{I18n.t('Instances')}
\n \n {instances.map(item => this.setState({adapterToDebug: item.id}, () => this.handleOk())}\n onClick={() => this.setState({adapterToDebug: item.id})}\n >\n {item.id}\n \n )}\n \n
;\n }\n }\n\n render() {\n return false}\n aria-labelledby=\"confirmation-dialog-title\"\n >\n {this.props.title || I18n.t('Debug instance')}\n \n \n \n {\n this.setState({filter: e.target.value});\n window.localStorage.setItem('javascript.debug.filter', e.target.value);\n }}\n endAdornment={\n \n {this.state.filter ? this.setState({filter: ''})}\n >\n \n : ''}\n \n }\n />\n \n \n \n {this.renderJavascriptList()}\n {this.renderInstances()}\n \n \n \n\n \n \n \n \n \n ;\n }\n}\n\nDialogAdapterDebug.propTypes = {\n socket: PropTypes.object.isRequired,\n onClose: PropTypes.func.isRequired,\n onDebug: PropTypes.func.isRequired,\n};\n\nexport default withStyles(styles)(DialogAdapterDebug);\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport withStyles from '@mui/styles/withStyles';\n\nimport Drawer from '@mui/material/Drawer';\nimport Divider from '@mui/material/Divider';\nimport List from '@mui/material/List';\nimport ListItem from '@mui/material/ListItem';\nimport ListItemIcon from '@mui/material/ListItemIcon';\nimport ListItemSecondaryAction from '@mui/material/ListItemSecondaryAction';\nimport ListItemText from '@mui/material/ListItemText';\nimport IconButton from '@mui/material/IconButton';\nimport Menu from '@mui/material/Menu';\nimport MenuItem from '@mui/material/MenuItem';\nimport Input from '@mui/material/Input';\nimport { useDrag, useDrop, DndProvider as DragDropContext } from 'react-dnd';\nimport { HTML5Backend } from 'react-dnd-html5-backend';\n\nimport { MdMoreVert as IconMore } from 'react-icons/md';\nimport { FaFolder as IconFolder } from 'react-icons/fa';\nimport { FaFolderOpen as IconFolderOpened } from 'react-icons/fa';\nimport { MdContentCopy as IconCopy } from 'react-icons/md';\nimport { MdDelete as IconDelete } from 'react-icons/md';\nimport { MdInput as IconDoEdit } from 'react-icons/md';\nimport { MdClose as IconClear } from 'react-icons/md';\nimport { MdFormatClear as IconClose } from 'react-icons/md';\nimport { MdPlayArrow as IconPlay } from 'react-icons/md';\nimport { MdAdd as IconAdd } from 'react-icons/md';\nimport { MdCreateNewFolder as IconAddFolder } from 'react-icons/md';\nimport { MdPause as IconPause } from 'react-icons/md';\nimport { MdSwapVert as IconReorder } from 'react-icons/md';\nimport { MdEdit as IconEdit } from 'react-icons/md';\nimport { MdSearch as IconFind } from 'react-icons/md';\nimport { MdPersonPin as IconExpert } from 'react-icons/md';\nimport { FaFileExport as IconExport } from 'react-icons/fa';\nimport { FaFileImport as IconImport } from 'react-icons/fa';\nimport { MdPalette as IconDark } from 'react-icons/md';\nimport { MdUnfoldMore as IconExpandAll } from 'react-icons/md';\nimport { MdUnfoldLess as IconCollapseAll } from 'react-icons/md';\nimport { MdBugReport as IconDebug } from 'react-icons/md';\n\nimport { red, green, yellow } from '@mui/material/colors';\n\nimport ImgJS from './assets/js.png';\nimport ImgBlockly from './assets/blockly.png';\nimport ImgTypeScript from './assets/typescript.png';\nimport ImgRules from './assets/rules.png';\n\nimport { I18n, Utils } from '@iobroker/adapter-react-v5';\n\nimport DialogRename from './Dialogs/Rename';\nimport DialogDelete from './Dialogs/Delete';\nimport DialogAddNewScript from './Dialogs/AddNewScript';\nimport DialogNew from './Dialogs/New';\nimport DialogError from './Dialogs/Error';\nimport DialogAdapterDebug from './Dialogs/AdapterDebug';\n\nconst MENU_ITEM_HEIGHT = 48;\nconst COLOR_RUN = green[400];\nconst COLOR_PROBLEM = yellow[400];\nconst COLOR_PAUSE = red[400];\nconst ROOT_ID = 'script.js';\nconst COMMON_ID = ROOT_ID + '.common';\nconst GLOBAL_ID = ROOT_ID + '.global';\nconst NARROW_WIDTH = 350;\nconst LEVEL_PADDING = 16;\n\nconst SELECTED_STYLE = {\n background: '#164477',\n color: 'white'\n};\n\nconst styles = theme => ({\n drawerPaper: {\n position: 'relative',\n width: '100%', //Theme.menu.width,\n height: '100%',\n overflow: 'hidden'\n },\n toolbar: {\n height: theme.toolbar.height\n },\n toolbarButtons: {\n color: theme.palette.mode === 'dark'? 'white !important' : 'black !important'\n },\n iconButtonsDisabled: {\n filter: 'grayscale(100%)',\n opacity: 0.5,\n },\n toolbarSearch: {\n width: 'calc(100% - 105px)',\n lineHeight: '34px',\n marginLeft: 5\n },\n iconButtons: {\n width: 32,\n height: 32,\n padding: 2\n },\n iconDropdownMenu: {\n paddingRight: 5\n },\n iconOnTheRight: {\n position: 'absolute',\n right: 10,\n top: 'calc(50% - 8px)'\n },\n menu: {\n width: '100%',\n height: '100%'\n },\n innerMenu: {\n width: '100%',\n height: 'calc(100% - 76px)',\n overflowX: 'hidden',\n overflowY: 'auto'\n },\n listItemIcon: {\n minWidth: 32,\n },\n filterIcon: {\n width: 18,\n height: 18,\n borderRadius: 2,\n marginRight: 5\n },\n scriptIcon: {\n width: 18,\n height: 18,\n borderRadius: 2,\n marginTop: 4,\n marginBottom: 4,\n marginLeft: 8,\n marginRight: 4,\n },\n folder: {\n //background: theme.palette.mode === 'dark' ? '#6a6a6a' : '#e2e2e2',\n cursor: 'pointer',\n padding: 0,\n userSelect: 'none'\n },\n folderReorder: {\n opacity: 0.3,\n transitionDuration: '0.5s',\n transitionProperty: 'opacity'\n },\n folderIcon: {\n width: 20,\n height: 20,\n },\n folderIconReorder: {\n paddingTop: 4,\n paddingBottom: 4,\n paddingLeft: 8,\n paddingRight: 4,\n },\n folderIconNoReorder: {\n cursor: 'pointer',\n paddingTop: 4,\n paddingBottom: 4,\n paddingLeft: 8,\n paddingRight: 4,\n },\n script: {\n cursor: 'pointer',\n padding: 0,\n userSelect: 'none'\n },\n scriptReorder: {\n opacity: 1,\n transitionDuration: '0.5s',\n transitionProperty: 'opacity'\n },\n reorder: {\n //padding: '9px 16px 9px 9px',\n },\n expandButton: {\n width: 37,\n height: 37\n },\n selected: SELECTED_STYLE,\n instances: {\n color: 'gray',\n fontSize: 'smaller'\n },\n childrenCount: {\n float: 'right',\n marginRight: 5,\n fontSize: 10,\n opacity: 0.4,\n },\n footer: {\n height: 24,\n },\n footerButtons: {\n '&:hover': {\n backgroundColor: '#dbdbdb'\n },\n color: theme.palette.mode === 'dark' ? '#ffffff' : '#111111',\n cursor: 'pointer',\n marginTop: 1,\n marginRight: 2,\n height: 22,\n width: 22,\n },\n footerButtonsRight: {\n float: 'right'\n },\n\n mainList: {\n '& .js-folder-dragover>div>li>.folder-reorder': {\n background: '#40adff'\n },\n '& .js-folder-dragging .folder-reorder': {\n opacity: 1,\n },\n '& .js-folder-dragging .script-reorder': {\n opacity: 0.3,\n }\n }\n});\n\nconst images = {\n 'Blockly': ImgBlockly,\n 'Javascript/js': ImgJS,\n def: ImgJS,\n 'Rules':ImgRules,\n 'TypeScript/ts': ImgTypeScript,\n};\n\nconst getObjectName = (id, obj, lang) => {\n lang = lang || I18n.getLanguage();\n if (obj && obj.common && obj.common.name) {\n if (typeof obj.common.name === 'object') {\n return (obj.common.name[lang] || obj.common.name.en || id.replace(/^script\\.js./, '')).toString();\n } else {\n return obj.common.name.toString();\n }\n } else {\n return id.replace(/^script\\.js./, '');\n }\n};\n\nconst prepareList = data => {\n const result = [{\n id: ROOT_ID,\n depth: 0,\n index: 0,\n parent: null,\n title: 'root',\n type: 'folder'\n }];\n const ids = Object.keys(data);\n\n /*ids.sort((a, b) => {\n if ((a === 'script.js.common' || a === 'script.js.global') && (b === 'script.js.common' || b === 'script.js.global')) {\n return a > b ? 1 : -1;\n } else if (a === 'script.js.common' || a === 'script.js.global' || b === 'script.js.common' || b === 'script.js.global') {\n return 1;\n } else {\n return a > b ? 1 : -1;\n }\n });*/\n\n for (let i = 0; i < ids.length; i++) {\n const obj = data[ids[i]];\n const parts = ids[i].split('.');\n parts.pop();\n result.push({\n id: ids[i],\n title: getObjectName(ids[i], obj),\n enabled: obj && obj.common && obj.common.enabled,\n depth: parts.length - 1,\n type: obj.type === 'script' ? obj.common.engineType : 'folder',\n parent: parts.length > 1 ? parts.join('.') : null,\n instance: obj.common.engine ? parseInt(obj.common.engine.split('.').pop(), 10) || 0 : null\n });\n }\n\n // Place all folder-less scripts at start\n /*result.sort((a, b) => {\n // without folders => always at start\n if (!a.parent && a.type !== 'folder' && !b.parent && b.type !== 'folder') {\n if (a.id === b.id) {\n return 0;\n } else {\n return a.id > b.id ? 1 : -1;\n }\n } else if (!a.parent && a.type !== 'folder') {\n return -1;\n } else if (!b.parent && b.type !== 'folder') {\n return 1;\n } else {\n // common and global are always at the end\n if ((a.id.startsWith('script.js.common') || a.id.startsWith('script.js.global')) &&\n (b.id.startsWith('script.js.common') || b.id.startsWith('script.js.global'))) {\n if (a.id === b.id) {\n return 0;\n } else {\n return a.id > b.id ? 1 : -1;\n }\n } else if (a.id.startsWith('script.js.common') || a.id.startsWith('script.js.global')) {\n return 1;\n } else if (b.id.startsWith('script.js.common') || b.id.startsWith('script.js.global')) {\n return -1;\n } else {\n if (a.id === b.id) {\n return 0;\n } else {\n return a.id > b.id ? 1 : -1;\n }\n }\n }\n });*/\n\n let modified;\n do {\n modified = false;\n // check if all parents exists\n // eslint-disable-next-line\n result.forEach(item => {\n if (item.parent) {\n const parent = result.find(it => it.id === item.parent);\n if (!parent) {\n const parts = item.parent.split('.');\n parts.pop();\n result.push({\n id: item.parent,\n title: item.parent.split('.').pop(),\n depth: parts.length - 1,\n type: 'folder',\n parent: parts.length > 1 ? parts.join('.') : null\n });\n modified = true;\n }\n }\n });\n } while (modified);\n\n // Folders first\n result.sort((a, b) => {\n const idA = a.id.toLowerCase();\n const idB = b.id.toLowerCase();\n if (a.type === 'folder' && b.type !== 'folder') {\n return -1;\n } else if (b.type === 'folder' && a.type !== 'folder') {\n return 1;\n }\n\n if (idA > idB) {\n return 1;\n } else if (idA < idB) {\n return -1;\n } else {\n return 0;\n }\n });\n\n // Fill all index\n result.forEach((item, i) => item.index = i);\n\n // Fill all parentIndex\n result.forEach(item => {\n if (item.parent) {\n const parent = result.find(it => it.id === item.parent);\n if (parent) {\n item.parentIndex = parent.index;\n }\n }\n });\n\n return result;\n};\n\nexport const Droppable = (props) => {\n const { onDrop} = props;\n\n const [{ isOver, isOverAny}, drop] = useDrop({\n accept: ['script'],\n drop: e => isOver ? onDrop(e) : undefined,\n collect: monitor => ({\n isOver: monitor.isOver({ shallow: true }),\n isOverAny: monitor.isOver(),\n }),\n });\n\n return
\n {props.children}\n
;\n};\n\nexport const Draggable = props => {\n const { name } = props;\n const [{ opacity }, drag] = useDrag({\n type: 'script',\n item: () => ({name}),\n collect: monitor => ({opacity: monitor.isDragging() ? 0.3 : 1,}),\n });\n // About transform: https://github.com/react-dnd/react-dnd/issues/832#issuecomment-442071628\n return
\n {props.children}\n
;\n};\n\nclass SideDrawer extends React.Component {\n constructor(props) {\n super(props);\n\n let expanded = window.localStorage ? window.localStorage.getItem('SideMenu.expanded') : '[]';\n try {\n expanded = JSON.parse(expanded) || [];\n } catch (e) {\n expanded = [];\n }\n\n this.inputRef = new React.createRef();\n\n this.state = {\n listItems: prepareList(props.scripts || {}),\n expanded: expanded,\n problems: [],\n reorder: false,\n themeName: this.props.themeName,\n selected: window.localStorage ? window.localStorage.getItem('SideMenu.selected') || null : null,\n creatingScript: false,\n creatingFolder: false,\n copingScript: '',\n renaming: null,\n deleting: null,\n choosingType: null,\n errorText: '',\n instances: props.instances || [],\n menuOpened: false,\n menuAnchorEl: null,\n searchMode: false,\n expertMode: this.props.expertMode,\n searchText: '',\n width: this.props.width || 300,\n typeFilter: window.localStorage ? window.localStorage.getItem('SideMenu.typeFilter') || '' : '', // blockly, js, ts\n statusFilter: window.localStorage ? window.localStorage.getItem('SideMenu.statusFilter') || '' : '',\n runningInstances: this.props.runningInstances || {},\n scriptsHash: props.scriptsHash,\n showAdapterDebug: false,\n };\n\n const newExp = this.ensureSelectedIsVisible();\n if (newExp) {\n this.state.expanded = newExp;\n }\n\n // debounce search process\n this.filterTimer = null;\n\n this.state.isAllZeroInstances = this.getIsAllZeroInstances();\n\n this.problems = null; //cache\n this.problemsTimer = null;\n this.onProblemUpdatedBound = this.onProblemUpdated.bind(this);\n }\n\n readProblems(cb, tasks) {\n if (!tasks) {\n tasks = Object.keys(this.props.scripts);\n }\n if (!tasks || !tasks.length) {\n cb && cb();\n } else {\n const id = tasks.shift();\n if (this.props.scripts[id] &&\n this.props.scripts[id].type === 'script' &&\n this.props.scripts[id].common &&\n this.props.scripts[id].common.enabled &&\n !id.match(/^script\\.js\\.global\\./) // GLOBAL_ID\n ) {\n const instance = this.props.scripts[id].common.engine.split('.').pop();\n const that = this; // sometimes lambda does not work\n const _id = 'javascript.' + instance + '.scriptProblem.' + id.substring(ROOT_ID.length + 1);\n\n this.props.socket.getState(_id, (err, state) => {\n that.onProblemUpdated(_id, state);\n setTimeout(() => that.readProblems(cb, tasks), 0);\n });\n } else {\n setTimeout(() => this.readProblems(cb, tasks), 0);\n }\n }\n }\n\n componentDidMount() {\n this.readProblems(() => {\n this.props.instances.forEach(instance => {\n this.props.socket.subscribeState('javascript.' + instance + '.scriptProblem.*', this.onProblemUpdatedBound);\n });\n });\n }\n\n componentWillUnmount() {\n this.props.instances.forEach(instance => {\n this.props.socket.unsubscribeState('javascript.' + instance + '.scriptProblem.*', this.onProblemUpdatedBound);\n });\n }\n\n onProblemUpdated(id, state) {\n if (!state || !id) return;\n id = ROOT_ID + '.' + id.replace(/^javascript\\.\\d+\\.scriptProblem\\./, '');\n\n if (!this.problems) {\n this.problems = JSON.parse(JSON.stringify(this.state.problems));\n }\n let changed = false;\n\n if (state.val) {\n if (this.problems.indexOf(id) === -1) {\n this.problems.push(id);\n changed = true;\n }\n } else {\n const pos = this.problems.indexOf(id);\n if (pos !== -1) {\n this.problems.splice(pos, 1);\n changed = true;\n }\n }\n\n if (changed && !this.problemsTimer) {\n this.problemsTimer = setTimeout(() => {\n this.problemsTimer = null;\n this.setState({ problems: this.problems });\n this.problems = null;\n }, 300);\n }\n }\n\n static filterListStatic(isSearchEnabled, listItems, searchMode, searchText, objects) {\n listItems = JSON.parse(JSON.stringify(listItems));\n let changed = false;\n let newState = {listItems};\n if (isSearchEnabled !== false && searchMode && searchText) {\n const text = searchText.toLowerCase();\n listItems.forEach(item => {\n const id = item.title.toLowerCase();\n item.filteredPartly = false;\n let found = id.indexOf(text) !== -1;\n if (!found && (objects && objects[item.id] && objects[item.id].common && objects[item.id].common.source)) {\n if (objects[item.id].common.engineType === 'Blockly') {\n const pos = objects[item.id].common.source.lastIndexOf('//');\n found = objects[item.id].common.source.substring(0, pos).toLowerCase().indexOf(text) !== -1;\n } else {\n found = objects[item.id].common.source.toLowerCase().indexOf(text) !== -1;\n }\n }\n if (found) {\n if (item.filtered) {\n item.filtered = false;\n changed = true;\n }\n } else if (!item.filtered) {\n item.filtered = true;\n changed = true;\n }\n });\n\n if (changed) {\n // check that all parents of every non-filtered item are visible\n for (let i = listItems.length - 1; i >= 0; i--) {\n const item = listItems[i];\n if (!item.filtered || item.filteredPartly) {\n let it = item;\n do {\n if (it.parent && listItems[it.parentIndex]) {\n changed = true;\n listItems[it.parentIndex].filteredPartly = true;\n }\n it = it.parent && listItems[it.parentIndex] ? listItems[it.parentIndex] : null;\n } while(it);\n }\n }\n }\n } else {\n listItems.forEach(item => {\n if (item.filtered || item.filteredPartly) {\n item.filtered = false;\n item.filteredPartly = false;\n changed = true;\n }\n });\n if (isSearchEnabled === false) {\n newState.searchText = '';\n newState.searchMode = false;\n changed = true;\n }\n }\n\n return changed ? newState : null;\n }\n\n filterList(isSearchEnabled, cb) {\n const newState = SideDrawer.filterListStatic(\n isSearchEnabled,\n this.state.listItems,\n this.state.searchMode,\n this.state.searchText,\n this.props.scripts\n );\n\n if (newState) {\n this.setState(newState, () => cb && cb());\n } else if (cb) {\n cb();\n }\n }\n\n static ensureSelectedIsVisibleStatic(selected, expanded, listItems) {\n expanded = JSON.parse(JSON.stringify(expanded));\n let changed = false;\n\n // ensure that the item is visible\n let el = typeof selected === 'object' ? selected : listItems.find(it => it.id === selected);\n do {\n // eslint-disable-next-line\n el = el && el.parent && listItems.find(it => it.id === el.parent);\n if (el) {\n if (expanded.indexOf(el.id) === -1) {\n expanded.push(el.id);\n changed = true;\n }\n }\n } while(el);\n return changed && expanded;\n }\n\n ensureSelectedIsVisible(selected, expanded) {\n SideDrawer.ensureSelectedIsVisibleStatic(selected || this.state.selected, expanded || this.state.expanded, this.state.listItems);\n }\n\n static getDerivedStateFromProps(props, state) {\n const newState = {};\n let changed = false;\n if (state.expertMode !== props.expertMode) {\n changed = true;\n newState.expertMode = props.expertMode;\n }\n if (state.scriptsHash !== props.scriptsHash && props.scripts) {\n const listItems = prepareList(props.scripts || {});\n\n newState.listItems = listItems;\n\n if (state.searchText) {\n const nState = SideDrawer.filterListStatic(true, listItems, state.searchMode, state.searchText, props.scripts);\n nState && Object.assign(newState, nState);\n }\n\n const isAllZeroInstances = SideDrawer.getIsAllZeroInstancesStatic(listItems, props.instances || []);\n\n const newExp = SideDrawer.ensureSelectedIsVisibleStatic(state.selected, state.expanded, state.listItems);\n\n newState.isAllZeroInstances = isAllZeroInstances;\n if (newExp) {\n newState.expanded = newExp;\n }\n changed = true;\n }\n\n if (state.width !== props.width) {\n changed = true;\n newState.width = props.width;\n }\n if (state.themeName !== props.themeName) {\n changed = true;\n newState.themeName = props.themeName;\n }\n\n if (props.selectId && state.selected !== props.selectId) {\n const item = state.listItems.find(item => item.id === props.selectId);\n\n if (!state.reorder && item) {\n const expanded = SideDrawer.ensureSelectedIsVisibleStatic(item, state.expanded, state.listItems);\n newState.selected = item.id;\n if (expanded) {\n newState.expanded = expanded;\n }\n changed = true;\n window.localStorage && window.localStorage.setItem('SideMenu.selected', item.id);\n }\n }\n\n if (changed) {\n return newState;\n } else {\n return null;\n }\n }\n\n static getIsAllZeroInstancesStatic(listItems, instances) {\n let isAllZeroInstances = !instances[0] && instances.length <= 1;\n\n if (isAllZeroInstances) {\n listItems.forEach(item => {\n if (item.type !== 'folder' && item.instance !== 0) {\n isAllZeroInstances = false;\n }\n });\n }\n return isAllZeroInstances;\n }\n\n getIsAllZeroInstances(listItems, instances) {\n listItems = listItems || this.state.listItems;\n instances = instances || this.state.instances;\n return SideDrawer.getIsAllZeroInstancesStatic(listItems || this.state.listItems, instances || this.state.instances);\n }\n\n saveExpanded(expanded) {\n window.localStorage.setItem('SideMenu.expanded', JSON.stringify(expanded || this.state.expanded));\n }\n\n showError(errorText) {\n this.setState({ errorText });\n }\n\n onToggle(id, e) {\n e && e.stopPropagation();\n if (id === ROOT_ID) {\n return;\n }\n const expanded = [...this.state.expanded];\n const newState = {expanded};\n const pos = expanded.indexOf(id);\n if (pos !== -1) {\n expanded.splice(pos, 1);\n if (this.state.selected && this.state.selected.startsWith(id + '.')) {\n newState.selected = id;\n window.localStorage && window.localStorage.setItem('SideMenu.selected', id);\n }\n } else {\n expanded.push(id);\n expanded.sort();\n }\n this.setState({ expanded });\n this.saveExpanded(expanded);\n }\n\n renderItemButtonsOnEnd(item, children) {\n if (this.state.reorder) {\n return null;\n }\n if (item.type !== 'folder') {\n let color = item.enabled ? COLOR_RUN : COLOR_PAUSE;\n if (item.enabled && this.state.problems.includes(item.id)) {\n color = COLOR_PROBLEM;\n }\n\n return [\n {\n e.stopPropagation();\n this.props.onEnableDisable && this.props.onEnableDisable(item.id, !item.enabled)\n }}\n title={item.enabled ? I18n.t('Pause script') : I18n.t('Run script')}\n disabled={this.props.debugMode}\n key=\"startStop\"\n style={{ color }}\n size=\"medium\"\n >\n {item.enabled ? : }\n ,\n this.state.width > NARROW_WIDTH ? this.onDelete(item, e)}\n size=\"medium\"\n >\n \n : null,\n this.onEdit(item, e)}\n size=\"medium\">\n \n ,\n ];\n } else if (this.state.width > NARROW_WIDTH) {\n if (item.id !== ROOT_ID && item.id !== COMMON_ID && item.id !== GLOBAL_ID && (!children || !children.length)) {\n return (\n this.onDelete(item, e)}\n size=\"medium\">\n );\n } else {\n return null;\n }\n }\n }\n\n onDelete(item, e) {\n e && e.stopPropagation();\n return new Promise(resolve => {\n if (typeof item !== 'object') {\n this.setState({ deleting: item });\n } else {\n this.setState({ deleting: item.id });\n }\n });\n }\n\n onEdit(item, e) {\n this.onClick(item, e);\n this.props.onEdit && this.props.onEdit(item.id);\n }\n\n getTextStyle(item) {\n if (!this.state.reorder && item.type !== 'folder') {\n return {\n //width: 130,\n width: `calc(100% - ${this.state.width > NARROW_WIDTH ? 185 : 137}px)`,\n overflow: 'hidden',\n whiteSpace: 'nowrap',\n flex: 'none',\n padding: '0 16px 0 0'\n };\n } else {\n return {\n whiteSpace: 'nowrap',\n padding: '0 16px 0 0'\n };\n }\n }\n\n onClick(item, e) {\n e && e.stopPropagation();\n if (!this.state.reorder && item) {\n const expanded = this.ensureSelectedIsVisible(item);\n const newState = {selected: item.id};\n if (expanded) {\n newState.expanded = expanded;\n }\n this.setState(newState);\n window.localStorage && window.localStorage.setItem('SideMenu.selected', item.id);\n }\n }\n\n onDblClick(item, e) {\n e && e.stopPropagation();\n if (this.state.reorder) {\n return;\n }\n if (item.type === 'folder') {\n this.onToggle(item.id);\n } else {\n this.onEdit(item);\n }\n }\n\n isFilteredOut(item) {\n if (item.filtered && !item.filteredPartly) return true;\n\n if (this.state.typeFilter && item.type !== 'folder' && item.type !== this.state.typeFilter) {\n return true;\n }\n\n if (this.state.statusFilter &&\n item.type !== 'folder' &&\n (\n (this.state.statusFilter === 'running' && !item.enabled) ||\n (this.state.statusFilter === 'paused' && item.enabled) ||\n (this.state.statusFilter === 'problems' && (!item.enabled || this.state.problems.indexOf(item.id) === -1)))\n ) {\n return true;\n }\n\n return (item.id === GLOBAL_ID && !this.state.expertMode);\n }\n\n renderListItem(item, children, childrenFiltered) {\n if (item.id === ROOT_ID && !this.state.reorder) {\n return null;\n }\n\n const depthPx = (this.state.reorder ? item.depth : item.depth - 1) * LEVEL_PADDING;\n\n let title = item.title;\n\n if (this.state.searchText) {\n const pos = title.toLowerCase().indexOf(this.state.searchText.toLowerCase());\n if (pos !== -1) {\n title = [\n {title.substring(0, pos)},\n {title.substring(pos, pos + this.state.searchText.length)},\n {title.substring(pos + this.state.searchText.length)},\n ];\n }\n }\n\n if (!this.state.isAllZeroInstances && item.type !== 'folder') {\n title = [\n [{item.instance}] ,\n {title}\n ];\n }\n const reorder = this.state.reorder && !this.props.debugMode;\n\n const style = Object.assign({\n marginLeft: depthPx,\n cursor: item.type === 'folder' && reorder ? 'default' : 'inherit',\n width: `calc(100% - ${depthPx}px)`\n }, item.id === this.state.selected && !reorder ? SELECTED_STYLE : {});\n\n if (!reorder) {\n style.opacity = item.filteredPartly ? 0.5 : 1;\n }\n\n if (item.id === GLOBAL_ID && item.id !== this.state.selected) {\n style.color = '#00a200';\n }\n\n let isExpanded = item.id === ROOT_ID;\n if (!isExpanded && children) {\n isExpanded = this.state.expanded.includes(item.id);\n }\n\n let iconStyle = {};\n if (item.id === GLOBAL_ID) {\n iconStyle.color = '#356956';\n } else if (item.id === COMMON_ID) {\n iconStyle.color = '#4899e1';\n }\n let iconClass;\n if (item.type === 'folder') {\n iconClass = Utils.clsx(this.props.classes.folderIcon, reorder ? this.props.classes.folderIconReorder : this.props.classes.folderIconNoReorder);\n } else {\n iconClass = Utils.clsx(this.props.classes.scriptIcon, reorder ? this.props.classes.scriptIconReorder : this.props.classes.scriptIconNoReorder);\n }\n\n let childrenCount = null;\n if ((childrenFiltered && childrenFiltered.length) || (children && children.length)) {\n childrenCount = {childrenFiltered && childrenFiltered.length !== children.length ? `${childrenFiltered.length}(${children.length})` : children.length};\n }\n\n return this.onClick(item, e)}\n onDoubleClick={e => this.onDblClick(item, e)}\n >\n {\n item.type === 'folder' ? (\n reorder || isExpanded ?\n !reorder && this.onToggle(item.id, e)} /> :\n !reorder && this.onToggle(item.id, e)} />\n )\n :\n {item.type}\n }\n {title}{childrenCount}} />\n {this.renderItemButtonsOnEnd(item, children)}\n ;\n }\n\n onDragFinish(source, target) {\n let newId = `${target}.${source.split('.').pop()}`;\n if (newId !== source) {\n // If target yet exists => add Copy to\n if (this.state.listItems.find(item => item.id === newId)) {\n newId += `_${I18n.t('copy')}`;\n }\n\n this.props.onRename && this.props.onRename(source, newId);\n }\n return undefined;\n }\n\n renderOneItem(items, item /* , dragging */) {\n let childrenFiltered = (this.state.statusFilter || this.state.typeFilter) && items.filter(i => i.parent === item.id ? !this.isFilteredOut(i) : false);\n let children = items.filter(i => i.parent === item.id);\n\n if (this.isFilteredOut(item)) {\n return;\n }\n\n if (item.type === 'folder' && (this.state.statusFilter || this.state.typeFilter) && !childrenFiltered.length) {\n return;\n }\n const reorder = this.state.reorder && !this.props.debugMode;\n\n const element = this.renderListItem(item, children, childrenFiltered);\n const result = [];\n let reactChildren;\n if (children && (reorder || this.state.expanded.includes(item.id) || item.id === ROOT_ID)) {\n reactChildren = children.map(it => this.renderOneItem(items, it));\n }\n\n if (reorder) {\n if (item.type === 'folder') {\n result.push( this.onDragFinish(e.name, item.id)}>\n {element}\n {reactChildren || null}\n );\n } else {\n result.push(\n {element}\n {reactChildren || null}\n );\n }\n } else {\n result.push(element);\n reactChildren && reactChildren.forEach(e => result.push(e));\n }\n\n return result;\n }\n\n renderAllItems(items) {\n const result = items\n .filter(item => !item.parent)\n .map(item =>\n this.renderOneItem(items, item));\n\n return \n {result}\n ;\n }\n\n onAddNew(e) {\n e && e.stopPropagation();\n let item = this.state.listItems.find(i => i.id === this.state.selected);\n let parent = ROOT_ID;\n while (item && item.type !== 'folder') {\n item = this.state.listItems[item.parentIndex];\n }\n if (item) {\n parent = item.id;\n }\n\n this.parent = parent;\n this.setState({ choosingType: true });\n }\n\n onCopy(e, id) {\n e && e.stopPropagation();\n let item = this.state.listItems.find(i => i.id === id);\n let parent = ROOT_ID;\n while (item && item.type !== 'folder') {\n item = this.state.listItems[item.parentIndex];\n }\n if (item) {\n parent = item.id;\n }\n\n this.parent = parent;\n this.setState({ copingScript: id });\n }\n\n onAddNewFolder(e) {\n e && e.stopPropagation();\n let item = this.state.listItems.find(i => i.id === this.state.selected);\n let parent = ROOT_ID;\n while (item && item.type !== 'folder') {\n item = this.state.listItems[item.parentIndex];\n }\n if (item) {\n parent = item.id;\n }\n\n this.parent = parent;\n this.setState({ creatingFolder: true });\n }\n\n onRename(e) {\n e && e.stopPropagation();\n this.setState({ renaming: this.state.selected });\n }\n\n getUniqueName(copyId) {\n let i = 1;\n let word = `${I18n.t('Script')} `;\n if (copyId) {\n let name = getObjectName(copyId, this.props.scripts[copyId]);\n const m = name.match(/\\d+$/);\n if (m) {\n word = name.replace(/\\d+$/, '');\n i = parseInt(m[0], 10) + 1;\n } else {\n word = name;\n }\n }\n\n // eslint-disable-next-line\n while (this.state.listItems.find(it => it.id === `${this.parent}.${word.replace(/\\.\\s/g, '_')}${i}`)) {\n i++;\n }\n /*ignore jslint end*/\n return word + i;\n }\n\n getUniqueFolderName() {\n let i = 1;\n // eslint-disable-next-line\n while (this.state.listItems.find(it => it.id === `${this.parent}.${I18n.t('Folder')}_${i}`)) {\n i++;\n }\n return `${I18n.t('Folder')} ${i}`;\n }\n\n onCloseMenu(cb) {\n this.setState({ menuOpened: false, menuAnchorEl: null, menuAnchorFilterEl: null }, cb);\n }\n\n getFilterBadge() {\n return [\n this.state.statusFilter === true && ,\n this.state.statusFilter === false && ,\n this.state.typeFilter === 'Blockly' && 'Bl',\n this.state.typeFilter === 'Javascript/js' && 'JS',\n this.state.typeFilter === 'TypeScript/ts' && 'TS',\n ];\n }\n\n getMainMenu(children, selectedItem) {\n return this.setState({ menuOpened: false, menuAnchorEl: null })}\n PaperProps={{\n style: {\n maxHeight: MENU_ITEM_HEIGHT * 7.5,\n // width: 200,\n },\n }}\n >\n {this.state.width <= NARROW_WIDTH ? {\n event.stopPropagation();\n event.preventDefault();\n if (this.state.listItems.find(item => item.parent === this.state.selected)) {\n this.showError(I18n.t('Cannot delete non empty item!'));\n return;\n }\n\n this.setState({ menuOpened: false, menuAnchorEl: null }, () =>\n this.onDelete(this.state.selected).then(() => {}));\n }}>{I18n.t('Delete')}\n : null}\n {\n event.stopPropagation();\n event.preventDefault();\n this.onCloseMenu(() =>\n this.props.onExpertModeChange && this.props.onExpertModeChange(!this.state.expertMode));\n }}>\n {I18n.t('Expert mode')}\n \n {this.props.onExport && {\n event.stopPropagation();\n event.preventDefault();\n this.onCloseMenu(() => this.props.onExport());\n }}>\n {I18n.t('Export all scripts')}\n }\n {this.props.onImport && {\n event.stopPropagation();\n event.preventDefault();\n this.onCloseMenu(() => this.props.onImport());\n }}>\n {I18n.t('Import scripts')}\n }\n {this.props.onThemeChange && \n this.onCloseMenu(() => {\n // TODO: use Utils.toggleTheme(themeName)\n // newThemeName = Utils.toggleTheme(themeName);\n const newThemeName = this.state.themeName === 'dark' ? 'blue' :\n this.state.themeName === 'blue' ? 'colored' : this.state.themeName === 'colored' ? 'light' :\n this.state.themeName === 'light' ? 'dark' : 'colored';\n this.props.onThemeChange(newThemeName);\n })}>\n {I18n.t('Change theme (actual \"%s\")', this.state.themeName)}\n }\n {this.props.onAddNew && {\n const selected = this.state.selected;\n this.onCloseMenu(() => this.onCopy(event, selected))\n }}>\n {I18n.t('Copy script')}\n }\n {this.state.expertMode && {\n event.stopPropagation();\n event.preventDefault();\n this.onCloseMenu(() =>\n this.setState({ showAdapterDebug: true }));\n }}>\n {I18n.t('Debug instance')}\n }\n ;\n }\n\n // render menu and toolbar\n getToolbarButtons() {\n const result = [];\n const classes = this.props.classes;\n const reorder = this.state.reorder && !this.props.debugMode;\n if (this.state.searchMode && !this.props.debugMode) {\n result.push( {\n this.setState({ searchText: e.target.value });\n this.filterTimer && clearTimeout(this.filterTimer);\n this.filterTimer = setTimeout(() => {\n this.filterTimer = null;\n this.filterList(true);\n this.props.onSearch && this.props.onSearch(this.state.searchText);\n }, 400);\n }}\n />);\n\n result.push( {\n e.stopPropagation();\n this.filterList(false, () => this.props.onSearch && this.props.onSearch(this.state.searchText));\n }}\n size=\"medium\">);\n\n this.state.searchText && result.push( {\n e.stopPropagation();\n this.setState({ searchText: '' }, () => {\n this.filterList(true);\n this.props.onSearch && this.props.onSearch(this.state.searchText);\n });\n }}\n size=\"medium\">);\n } else {\n if (!reorder) {\n // Open Menu\n result.push( {\n event.stopPropagation();\n event.preventDefault();\n this.setState({ menuOpened: true, menuAnchorEl: event.currentTarget });\n }}\n size=\"medium\">\n {/**/}\n \n {/**/}\n );\n\n const selectedItem = this.state.listItems.find(it => it.id === this.state.selected);\n let children;\n if (selectedItem && this.state.width <= NARROW_WIDTH && selectedItem.type === 'folder') {\n children = this.state.listItems.filter(i => i.parent === this.state.selected);\n }\n\n // Menu\n result.push(this.getMainMenu(children, selectedItem));\n\n // New Script\n result.push( this.onAddNew(e)}\n size=\"medium\">);\n\n // New Folder\n result.push( this.onAddNewFolder()}\n size=\"medium\">);\n }\n\n // Search\n result.push( {\n e.stopPropagation();\n this.setState({ searchMode: true });\n }}\n size=\"medium\">);\n\n // Reorder button\n result.push( {\n e.stopPropagation();\n this.setState({ reorder: !this.state.reorder });\n }}\n size=\"medium\">);\n\n if (!reorder && this.state.selected && this.state.selected !== GLOBAL_ID && this.state.selected !== COMMON_ID) {\n // Rename\n result.push( this.onRename(e)}\n size=\"medium\">);\n\n // const selectedItem = this.state.listItems.find(i => i.id === this.state.selected);\n // if (selectedItem && selectedItem.type !== 'folder') {\n // // Restart\n // result.push(( {\n // e.stopPropagation();\n // this.props.onEnableDisable && this.props.onEnableDisable();\n // }}\n // >));\n // }\n }\n\n }\n return result;\n }\n\n getFolders() {\n const folders = [{id: ROOT_ID, name: I18n.t('Root folder')}];\n this.state.listItems.forEach(item =>\n item.type === 'folder' && folders.push({id: item.id, name: item.title})\n );\n return folders;\n }\n\n onCollapseAll() {\n this.setState({ expanded: [] });\n this.saveExpanded([]);\n }\n\n onExpandAll() {\n const expanded = [];\n this.state.listItems.forEach(item =>\n this.state.listItems.find(it => it.parent === item.id) && expanded.push(item.id));\n this.setState({ expanded });\n this.saveExpanded(expanded);\n }\n\n getBottomButtons() {\n if (this.state.reorder || this.props.debugMode) {\n return null;\n }\n return [\n {\n event.stopPropagation();\n event.preventDefault();\n const statusFilter = this.state.statusFilter === 'running' ? '' : 'running';\n window.localStorage && window.localStorage.setItem('SideMenu.statusFilter', statusFilter);\n this.setState({ statusFilter });\n }}\n />,\n\n {\n const statusFilter = this.state.statusFilter === 'paused' ? '' : 'paused';\n window.localStorage && window.localStorage.setItem('SideMenu.statusFilter', statusFilter);\n this.setState({ statusFilter });\n }}\n />,\n {\n const statusFilter = this.state.statusFilter === 'problems' ? '' : 'problems';\n window.localStorage && window.localStorage.setItem('SideMenu.statusFilter', statusFilter);\n this.setState({ statusFilter });\n }}\n />,\n {\n const typeFilter = this.state.typeFilter === 'Blockly' ? '' : 'Blockly';\n window.localStorage && window.localStorage.setItem('SideMenu.typeFilter', typeFilter);\n this.setState({ typeFilter });\n }}\n />,\n {\n const typeFilter = this.state.typeFilter === 'Javascript/js' ? '' : 'Javascript/js';\n window.localStorage && window.localStorage.setItem('SideMenu.typeFilter', typeFilter);\n this.setState({ typeFilter });\n }}\n />,\n {\n const typeFilter = this.state.typeFilter === 'TypeScript/ts' ? '' : 'TypeScript/ts';\n window.localStorage && window.localStorage.setItem('SideMenu.typeFilter', typeFilter);\n this.setState({ typeFilter });\n }}\n />,\n {\n const typeFilter = this.state.typeFilter === 'Rules' ? '' : 'Rules';\n window.localStorage && window.localStorage.setItem('SideMenu.typeFilter', typeFilter);\n this.setState({ typeFilter });\n }}\n />,\n this.onExpandAll()} />,\n this.state.expanded.length ? this.onCollapseAll()} /> : null,\n ];\n }\n\n getAdapterDebugDialog() {\n if (this.state.showAdapterDebug) {\n return this.setState({ showAdapterDebug: false })}\n onDebug={(instance, adapter) => this.setState({ showAdapterDebug: false }, () => this.props.onDebugInstance({instance, adapter}))}\n />;\n }\n }\n\n render() {\n const {classes} = this.props;\n\n const renamingItem = this.state.renaming && this.state.listItems.find(i => i.id === this.state.renaming);\n const copingItem = this.state.copingScript && this.props.scripts[this.state.copingScript];\n\n return [\n this.onClick({id: ''})}\n >\n
\n {this.getToolbarButtons()}\n
\n\n \n\n \n
\n {this.renderAllItems(this.state.listItems)}\n
\n
\n\n \n\n
{this.getBottomButtons()}
\n ,\n\n renamingItem ? this.setState({ renaming: false })}\n onRename={(oldId, newName, newId, newInstance) => this.props.onRename && this.props.onRename(oldId, newName, newId, newInstance)}\n /> : null,\n\n this.state.deleting ? i.id === this.state.deleting).title}\n id={this.state.deleting}\n onClose={() => this.setState({ deleting: false })}\n onDelete={id => this.props.onDelete && this.props.onDelete(id)}\n /> : null,\n\n this.state.choosingType ? {\n this.setState({ choosingType: false });\n type && this.setState({ creatingScript: type })\n }}\n /> : null,\n\n this.state.creatingScript ? this.setState({ creatingScript: false })}\n title={I18n.t('Create new script')}\n name={this.getUniqueName()}\n parents={this.getFolders()}\n folder={false}\n existingItems={this.state.listItems.map(item => item.id)}\n instance={this.props.instances[0] || 0}\n instances={this.props.instances}\n type={this.state.creatingScript}\n parent={this.parent}\n onAdd={(id, name, instance, type) =>\n this.props.onAddNew && this.props.onAddNew(id, name, false, instance, type)}\n /> : null,\n\n this.state.copingScript ? this.setState({ copingScript: '' })}\n title={I18n.t('Copy script')}\n name={this.getUniqueName(this.state.copingScript)}\n parents={this.getFolders()}\n folder={false}\n instance={parseInt((copingItem && copingItem.common && copingItem.common.engine && copingItem.common.engine.split('.').pop()) || 0, 10)}\n instances={this.props.instances}\n type={(copingItem && copingItem.common && copingItem.common.engineType) || 'Javascript/js'}\n parent={this.parent}\n onAdd={(id, name, instance, type) => {\n const copingItem = this.state.copingScript && this.props.scripts[this.state.copingScript];\n if (copingItem && copingItem.common) {\n // disable script by coping\n copingItem.common.enabled = false;\n }\n this.props.onAddNew && this.props.onAddNew(id, name, false, instance, type, copingItem && copingItem.common && copingItem.common.source);\n }}\n /> : null,\n\n this.state.creatingFolder ? this.setState({ creatingFolder: false })}\n title={I18n.t('Create new folder')}\n parents={this.getFolders()}\n name={this.getUniqueFolderName()}\n parent={this.parent}\n onAdd={(id, name) =>\n this.props.onAddNew && this.props.onAddNew(id, name, true)}\n /> : null,\n\n this.state.errorText ? this.setState({ errorText: '' })} text={this.state.errorText} /> : null,\n\n this.getAdapterDebugDialog(),\n ];\n }\n}\n\nSideDrawer.propTypes = {\n classes: PropTypes.object.isRequired,\n instances: PropTypes.array.isRequired,\n scripts: PropTypes.object.isRequired,\n scriptsHash: PropTypes.number,\n onEdit: PropTypes.func,\n selectId: PropTypes.string,\n expertMode: PropTypes.bool,\n onExpertModeChange: PropTypes.func,\n onEnableDisable: PropTypes.func,\n runningInstances: PropTypes.object,\n socket: PropTypes.object,\n themeName: PropTypes.string,\n themeType: PropTypes.string,\n onSelect: PropTypes.func,\n onAddNew: PropTypes.func,\n onRename: PropTypes.func,\n onDelete: PropTypes.func,\n onImport: PropTypes.func,\n onExport: PropTypes.func,\n onSearch: PropTypes.func,\n onThemeChange: PropTypes.func,\n onDebugInstance: PropTypes.func,\n width: PropTypes.number,\n debugMode: PropTypes.bool,\n};\n\nexport default withStyles(styles)(SideDrawer);\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport withStyles from '@mui/styles/withStyles';\n\nimport IconButton from '@mui/material/IconButton';\n\nimport { MdDeleteForever as IconDelete } from 'react-icons/md';\nimport { MdVerticalAlignBottom as IconBottom } from 'react-icons/md';\nimport { MdContentCopy as IconCopy } from 'react-icons/md';\nimport { MdVisibilityOff as IconHide } from 'react-icons/md';\n\nimport { I18n, Utils } from '@iobroker/adapter-react-v5';\n\n// replace later with MdHorizontalSplit and MdVerticalSplit\nconst IconVerticalSplit = 'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAGAAAABgAQMAAADYVuV7AAAABlBMVEUAAAAzMzPI8eYgAAAAAXRSTlMAQObYZgAAACFJREFUeAFjAIJRwP////8PYIKWHCigNQdKj/pn1D+jAABTG16wVQqVpQAAAABJRU5ErkJggg==';\nconst IconHorizontalSplit = 'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAGAAAABgAQMAAADYVuV7AAAABlBMVEUAAAAzMzPI8eYgAAAAAXRSTlMAQObYZgAAABtJREFUeAFjAIJRwP8fCj7QkENn/4z6Z5QzCgBjbWaoyx1PqQAAAABJRU5ErkJggg==';\n\nfunction getTimeString(d) {\n let text;\n let i = d.getHours();\n if (i < 10) {\n i = `0${i.toString()}`;\n }\n text = `${i}:`;\n\n i = d.getMinutes();\n if (i < 10) {\n i = `0${i.toString()}`;\n }\n text += `${i}:`;\n i = d.getSeconds();\n if (i < 10) {\n i = `0${i.toString()}`;\n }\n text += `${i}.`;\n i = d.getMilliseconds();\n if (i < 10) {\n i = `00${i.toString()}`;\n } else if (i < 100) {\n i = `0${i.toString()}`;\n }\n text += i;\n return text;\n}\nconst TOOLBOX_WIDTH = 34;\n\nconst styles = theme => ({\n logBox: {\n width: '100%',\n height: '100%',\n position: 'relative',\n overflow: 'hidden',\n },\n logBoxInner: {\n display: 'inline-block',\n color: theme.palette.mode === 'dark' ? 'white' : 'black',\n width: `calc(100% - ${TOOLBOX_WIDTH}px)`,\n height: '100%',\n //marginLeft: TOOLBOX_WIDTH,\n overflow: 'auto',\n position: 'relative',\n verticalAlign: 'top',\n },\n info: {\n background: theme.palette.mode === 'dark' ? 'darkgrey' : 'lightgrey',\n color: theme.palette.mode === 'dark' ? 'black' : 'black',\n },\n error: {\n background: '#FF0000',\n color: theme.palette.mode === 'dark' ? 'black' : 'white',\n },\n warn: {\n background: '#FF8000',\n color: theme.palette.mode === 'dark' ? 'black' : 'white',\n },\n debug: {\n background: 'gray',\n opacity: 0.8,\n color: theme.palette.mode === 'dark' ? 'black' : 'white',\n },\n silly: {\n background: 'gray',\n opacity: 0.6,\n color: theme.palette.mode === 'dark' ? 'black' : 'white',\n },\n table: {\n fontFamily: 'monospace',\n width: '100%',\n\n },\n toolbox: {\n width: TOOLBOX_WIDTH,\n height: '100%',\n boxShadow: '2px 0px 4px -1px rgba(0, 0, 0, 0.2), 4px 0px 5px 0px rgba(0, 0, 0, 0.14), 1px 0px 10px 0px rgba(0, 0, 0, 0.12)',\n display: 'inline-block',\n verticalAlign: 'top',\n overflow: 'hidden',\n },\n trTime: {\n width: 90,\n },\n trSeverity: {\n width: 40,\n fontWeight: 'bold',\n },\n iconButtons: {\n width: 32,\n height: 32,\n padding: 4,\n },\n layoutIcon: {\n width: 24,\n height: 24,\n background: theme.palette.mode === 'dark' ? '#9d9d9d' : undefined,\n borderRadius: theme.palette.mode === 'dark' ? 30 : undefined,\n },\n});\n\nfunction paddingMs(ms) {\n if (ms < 10) {\n return `00${ms}`;\n }\n if (ms < 100) {\n return `0${ms}`;\n }\n return ms;\n}\n\nlet gText = {};\n\nclass Log extends React.Component {\n constructor(props) {\n super(props);\n this.state = {\n lines: {},\n goBottom: true,\n selected: null,\n editing: this.props.editing || [],\n };\n this.lastIndex = null;\n this.messagesEnd = React.createRef();\n }\n\n generateLine(message) {\n return \n {getTimeString(new Date(message.ts))}\n {message.severity}\n {message.message}\n ;\n }\n\n scrollToBottom() {\n this.messagesEnd && this.messagesEnd.current && this.messagesEnd.current.scrollIntoView({ behavior: 'smooth' });\n }\n\n logHandler = message => {\n let allLines = this.state.lines;\n const scripts = this.state.editing.filter(id => message.message.includes(id));\n let selected;\n if (!scripts.length) {\n return;\n } else if (scripts.length === 1) {\n selected = scripts[0];\n } else {\n // try to get the script with the longest common substring\n scripts.sort();\n selected = scripts[scripts.length - 1];\n }\n\n let lines = allLines[selected] || [];\n let text = gText[selected] || [];\n\n lines.push(this.generateLine(message));\n let severity = message.severity;\n if (severity === 'info' || severity === 'warn') {\n severity += ' ';\n }\n const date = new Date(message.ts);\n text.push(`${date.toLocaleString()}.${paddingMs(date.getMilliseconds())}\\t[${severity}]: ${message.message}`);\n if (lines.length > 300) {\n lines.splice(0, lines.length - 300);\n text.splice(0, lines.length - 300);\n }\n gText[selected] = text;\n allLines[selected] = lines;\n\n this.setState({ lines: allLines });\n }\n\n componentDidMount() {\n this.props.socket.registerLogHandler(this.logHandler);\n }\n\n componentWillUnmount() {\n this.props.socket.unregisterLogHandler(this.logHandler);\n }\n\n componentDidUpdate() {\n this.state.goBottom && this.scrollToBottom();\n }\n\n static getDerivedStateFromProps(props, state) {\n let changed = false;\n let newState = {};\n\n if (props.selected !== state.selected) {\n let selected = props.selected;\n let allLines = state.lines;\n allLines[selected] = allLines[selected] || [];\n gText[selected] = gText[selected] || [];\n newState.selected = selected;\n changed = true;\n }\n\n if (JSON.stringify(props.editing) !== JSON.stringify(state.editing)) {\n const editing = JSON.parse(JSON.stringify(props.editing));\n changed = true;\n let allLines = state.lines;\n\n for (const id in gText) {\n if (gText.hasOwnProperty(id)) {\n if (!editing.includes(id)) {\n delete gText[id];\n delete allLines[id];\n }\n }\n }\n\n newState.editing = editing;\n }\n return changed ? newState : null;\n }\n\n onCopy() {\n Utils.copyToClipboard((gText[this.state.selected] || []).join('\\n'));\n }\n\n clearLog() {\n let allLines = this.state.lines;\n if (allLines[this.state.selected]) {\n allLines[this.state.selected] = [];\n }\n if (gText[this.state.selected]) {\n gText[this.state.selected] = [];\n }\n this.setState({ lines: allLines });\n }\n\n renderLogList(lines) {\n if (this.state.selected && lines && lines.length) {\n return
\n {lines}
\n
\n
;\n } else {\n return
{I18n.t('Log outputs')}
;\n }\n }\n\n render() {\n const lines = this.state.selected && this.state.lines[this.state.selected];\n return
\n
\n this.setState({ goBottom: !this.state.goBottom })}\n color={this.state.goBottom ? 'secondary' : ''}\n size=\"medium\">\n {lines && lines.length ? this.clearLog()}\n size=\"medium\"> : null}\n {lines && lines.length ? this.onCopy()}\n size=\"medium\"> : null}\n {this.props.onLayoutChange ? this.props.onLayoutChange()}\n title={I18n.t('Change layout')}\n size=\"medium\">\"split\" : null}\n this.props.onHideLog()}\n title={I18n.t('Hide logs')}\n size=\"medium\">\n
\n {this.renderLogList(lines)}\n
;\n }\n}\n\nLog.propTypes = {\n selected: PropTypes.string,\n socket: PropTypes.object,\n onLayoutChange: PropTypes.func,\n verticalLayout: PropTypes.bool,\n};\n\nexport default withStyles(styles)(Log);\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport Fab from '@mui/material/Fab';\n\nimport {MdGTranslate as IconNoCheck} from 'react-icons/md';\nimport { I18n } from '@iobroker/adapter-react-v5';\n\nfunction isIdOfGlobalScript(id) {\n return /^script\\.js\\.global\\./.test(id);\n}\nlet index = 0;\nclass ScriptEditor extends React.Component {\n constructor(props) {\n super(props);\n this.state = {\n name: 'current',\n isDark: props.isDark || false,\n language: props.language || 'javascript',\n readOnly: props.readOnly || false,\n alive: true,\n check: false,\n searchText: this.props.searchText || '',\n typingsLoaded: false,\n };\n this.runningInstancesStr = JSON.stringify(this.props.runningInstances);\n this.monacoDiv = null; //ref\n this.editor = null;\n this.monaco = window.monaco;\n this.insert = '';\n this.originalCode = props.code || '';\n this.typings = {}; // TypeScript declarations\n this.lastSearch = '';\n }\n\n waitForMonaco(cb) {\n if (!this.monaco || !this.props.runningInstances) {\n this.monaco = window.monaco;\n this.monacoCounter = this.monacoCounter || 0;\n this.monacoCounter++;\n if (!this.monaco && this.monacoCounter < 20) {\n console.log('wait for monaco loaded');\n return setTimeout(() => this.waitForMonaco(cb), 200);\n } else if (this.monacoCounter >= 20) {\n console.error('Cannot load monaco!');\n }\n } else {\n cb && cb();\n }\n }\n\n loadTypings(runningInstances) {\n if (!this.editor) {\n return;\n }\n runningInstances = runningInstances || this.props.runningInstances;\n let scriptAdapterInstance = runningInstances && Object.keys(runningInstances).find(id => runningInstances[id]);\n if (scriptAdapterInstance) {\n this.props.socket.sendTo(scriptAdapterInstance.replace('system.adapter.', ''), 'loadTypings', null)\n .then(result => {\n this.setState({alive: true, check: true, typingsLoaded: true});\n this.setTypeCheck(true);\n if (result.typings) {\n this.typings = result.typings;\n this.setEditorTypings(this.state.name);\n } else {\n console.error(`failed to load typings: ${result.error}`);\n }\n });\n }\n }\n\n componentDidMount() {\n if (!this.monaco || !this.props.runningInstances) {\n this.monaco = window.monaco;\n if (!this.monaco) {\n console.log('wait for monaco loaded');\n return this.waitForMonaco(() => this.componentDidMount());\n }\n }\n if (!this.editor) {\n this.props.onRegisterSelect && this.props.onRegisterSelect(() => this.editor.getModel().getValueInRange(this.editor.getSelection()));\n // For some reason we have to get the original compiler options\n // and assign new properties one by one\n const compilerOptions = this.monaco.languages.typescript.typescriptDefaults['getCompilerOptions']();\n compilerOptions.target = this.monaco.languages.typescript.ScriptTarget.ES2015;\n compilerOptions.allowJs = true;\n compilerOptions.checkJs = this.props.checkJs !== false;\n compilerOptions.noLib = true;\n compilerOptions.lib = [];\n compilerOptions.useUnknownInCatchVariables = false;\n compilerOptions.moduleResolution = this.monaco.languages.typescript.ModuleResolutionKind.NodeJs;\n this.monaco.languages.typescript.typescriptDefaults.setCompilerOptions(compilerOptions);\n\n this.setTypeCheck(false);\n\n // Create the editor instances\n this.editor = this.monaco.editor.create(this.monacoDiv, {\n lineNumbers: 'on',\n scrollBeyondLastLine: false,\n automaticLayout: true,\n glyphMargin: !!this.props.breakpoints,\n });\n\n this.editor.onDidChangeModelContent(e =>\n this.onChange(this.editor.getValue()));\n\n // Load typings for the JS editor\n /** @type {string} */\n this.loadTypings();\n\n this.editor.addCommand(this.monaco.KeyMod.CtrlCmd | this.monaco.KeyCode.KEY_S, () =>\n this.onForceSave());\n\n setTimeout(() => {\n this.highlightText(this.state.searchText);\n this.location = this.props.location;\n this.breakpoints = this.props.breakpoints;\n this.showDecorators();\n });\n }\n const options = {\n selectOnLineNumbers: true,\n scrollBeyondLastLine: false,\n automaticLayout: true,\n readOnly: this.state.readOnly,\n language: this.state.language,\n isDark: this.state.isDark,\n };\n\n this.setEditorOptions(options);\n this.editor.focus();\n this.editor.setValue(this.originalCode);\n if (this.props.onToggleBreakpoint) {\n this.editor.onMouseDown(e => {\n if (e.target.detail && e.target.detail.glyphMarginLeft !== undefined) {\n this.props.onToggleBreakpoint(e.target.position.lineNumber - 1);\n }\n });\n } else {\n this.editor.onMouseDown(null);\n }\n }\n\n /**\n * Sets some options of the code editor\n * @param {object} options The editor options to change\n * @param {Partial<{readOnly: boolean, lineWrap: boolean, language: EditorLanguage, typeCheck: boolean}>} options\n */\n setEditorOptions(options) {\n if (options) {\n if (options.language) {\n this.setEditorLanguage(options.language);\n }\n if (options.readOnly !== undefined) {\n this.editor.updateOptions({readOnly: options.readOnly});\n }\n if (options.lineWrap !== undefined) {\n this.editor.updateOptions({wordWrap: options.lineWrap ? 'on' : 'off'});\n }\n if (options.typeCheck !== undefined) {\n this.setTypeCheck(options.typeCheck);\n }\n if (options.isDark !== undefined) {\n this.monaco.editor.setTheme(options.isDark ? 'vs-dark' : 'vs');\n }\n }\n }\n\n componentWillUnmount() {\n if (this.editor) {\n this.props.onRegisterSelect && this.props.onRegisterSelect(null);\n this.editor.dispose();\n this.editor = null;\n }\n }\n\n /** @typedef {\"javascript\" | \"typescript\" | \"coffeescript\"} EditorLanguage */\n\n /**\n * Sets the language of the code editor\n * @param {EditorLanguage} language\n */\n setEditorLanguage(language) {\n // we need to recreate the model when changing languages,\n // so remember its settings\n const model = this.editor.getModel();\n const code = model.getValue();\n const uri = model.uri.path;\n\n const filenameWithoutExtension =\n typeof uri === 'string' && uri.includes('.')\n ? uri.substr(0, uri.lastIndexOf('.'))\n : 'index';\n\n const extension =\n language === 'javascript' ? 'js'\n : (language === 'typescript' ? 'ts' : language);\n\n // get rid of the original model\n model.dispose();\n\n // Both JS and TS need the model to work in TypeScript as the script type\n // is inferred from the file extension\n const newLanguage = (language === 'javascript' || language === 'typescript') ? 'typescript' : language;\n\n const newModel = this.monaco.editor.createModel(\n code,\n newLanguage,\n this.monaco.Uri.from({path: `${filenameWithoutExtension}${index++}.${extension}`})\n );\n\n this.editor.setModel(newModel);\n }\n\n /**\n * Enables or disables the type checking in the editor\n * @param {boolean} enabled - Whether type checking is enabled or not\n */\n setTypeCheck(enabled) {\n const options = {\n noSemanticValidation: !this.state.alive || !enabled, // toggle the type checking\n noSyntaxValidation: !this.state.alive // always check the syntax\n };\n this.monaco.languages.typescript.typescriptDefaults.setDiagnosticsOptions(options);\n }\n\n /**\n * @param {string} [currentScriptName] The name of the current script\n */\n setEditorTypings(currentScriptName = '') {\n const isGlobalScript = isIdOfGlobalScript(currentScriptName);\n // The filename of the declarations this script can see if it is a global script\n const partialDeclarationsPath = `${currentScriptName}.d.ts`;\n const wantedTypings = [];\n for (const path of Object.keys(this.typings)) {\n // global scripts don't get to see all other global scripts\n // but only a part of them\n if (isGlobalScript) {\n if (path === 'global.d.ts') {\n continue;\n }\n if (path.startsWith('script.js.global') && path !== partialDeclarationsPath) {\n continue;\n }\n }\n wantedTypings.push({\n filePath: path,\n content: this.typings[path],\n });\n }\n\n // TODO BF: check https://microsoft.github.io/monaco-editor/playground.html#extending-language-services-semantic-tokens-provider-example\n // to support 0.21.0\n\n if (this.monaco && this.monaco.languages.typescript.typescriptDefaults.setExtraLibs) {\n this.monaco.languages.typescript.typescriptDefaults.setExtraLibs(wantedTypings);\n } else if (this.monaco && this.monaco.languages.typescript.typescriptDefaults.addExtraLib) {\n const existingLibs = this.monaco.languages.typescript.typescriptDefaults.getExtraLibs();\n wantedTypings.forEach(lib => {\n if (!existingLibs[lib.filePath]) {\n this.monaco.languages.typescript.typescriptDefaults.addExtraLib(lib, lib.filePath);\n }\n });\n }\n }\n\n /**\n * Inserts some text into the given editor\n * @param {string} text The text to add\n */\n insertTextIntoEditor(text) {\n const selection = this.editor.getSelection();\n const range = new this.monaco.Range(\n selection.startLineNumber,\n selection.startColumn,\n selection.endLineNumber,\n selection.endColumn,\n );\n this.editor.executeEdits('', [{ range: range, text: text, forceMoveMarkers: true }]);\n this.editor.focus();\n }\n\n highlightText(text) {\n let range = text && this.editor.getModel().findMatches(text);\n if (range && range.length) {\n range.forEach(r => this.editor.setSelection(r.range));\n this.editor.revealLine(range[0].range.startLineNumber);\n } else if (this.editor) {\n const row = this.editor.getPosition().lineNumber;\n const col = this.editor.getPosition().column;\n this.editor.setSelection(new this.monaco.Range(row, col, row, col));\n }\n }\n\n showDecorators() {\n this.decorations = this.decorations || [];\n const decorations = [];\n if (this.location) {\n decorations.push({\n range: new this.monaco.Range(this.location.lineNumber + 1, this.location.columnNumber + 1, this.location.lineNumber + 1, 1000),\n options: {\n isWholeLine: false,\n className: this.props.isDark ? 'monacoCurrentLineDark' : 'monacoCurrentLine',\n }\n });\n decorations.push({\n range: new this.monaco.Range(this.location.lineNumber + 1, 0, this.location.lineNumber + 1, 0),\n options: {\n isWholeLine: true,\n className: this.props.isDark ? 'monacoCurrentFullLineDark' : 'monacoCurrentFullLine',\n }\n });\n }\n\n if (this.breakpoints) {\n this.breakpoints.forEach(bp => {\n decorations.push({\n range: new this.monaco.Range(bp.location.lineNumber + 1, 0, bp.location.lineNumber + 1, 100),\n options: {\n isWholeLine: true,\n glyphMarginClassName: this.props.isDark ? 'monacoBreakPointDark' : 'monacoBreakPoint',\n }\n });\n });\n }\n this.editor && (this.decorations =\n this.editor.deltaDecorations(this.decorations, decorations));\n }\n\n initNewScript(name, code) {\n this.setState({name});\n this.originalCode = code || '';\n this.editor && this.editor.setValue(code);\n this.highlightText(this.lastSearch);\n this.showDecorators();\n //this.setEditorLanguage();\n // Update the typings because global scripts need different typings than normal scripts\n // and each global script has different typings\n this.setEditorTypings(name);\n }\n\n scrollToLineIfNeeded(lineNumber) {\n if (this.editor) {\n const ranges = this.editor.getVisibleRanges();\n if (!ranges || !ranges[0] || ranges[0].startLineNumber > lineNumber || lineNumber > ranges[0].endLineNumber) {\n this.editor.revealLineInCenter(lineNumber);\n }\n }\n }\n\n UNSAFE_componentWillReceiveProps(nextProps) {\n const options = {};\n if (this.state.name !== nextProps.name) {\n // A different script was selected\n this.initNewScript(nextProps.name, nextProps.code);\n }\n\n // if some running instance will be found and\n if (JSON.stringify(nextProps.runningInstances) !== this.runningInstancesStr) {\n this.runningInstancesStr = JSON.stringify(nextProps.runningInstances);\n if (!this.state.typingsLoaded) {\n this.loadTypings(nextProps.runningInstances);\n }\n }\n\n // if the code not yet changed, update the new code\n if (!nextProps.changed && (nextProps.code !== this.originalCode || nextProps.code !== this.editor.getValue())) {\n this.originalCode = nextProps.code;\n this.editor.setValue(this.originalCode);\n this.showDecorators();\n this.location && this.scrollToLineIfNeeded(this.location.lineNumber + 1);\n }\n\n if (nextProps.searchText !== this.lastSearch) {\n this.lastSearch = nextProps.searchText;\n this.highlightText(this.lastSearch);\n }\n\n if (JSON.stringify(nextProps.location) !== JSON.stringify(this.location) &&\n JSON.stringify(nextProps.breakpoints) !== JSON.stringify(this.breakpoints)\n ) {\n this.location = nextProps.location;\n this.breakpoints = nextProps.breakpoints;\n this.showDecorators();\n this.editor && this.location && this.scrollToLineIfNeeded(this.location.lineNumber + 1);\n //this.editor && this.location && this.editor.setPosition(this.location.lineNumber + 1, this.location.columnNumber + 1);\n } else if (JSON.stringify(nextProps.breakpoints) !== JSON.stringify(this.breakpoints)) {\n this.breakpoints = nextProps.breakpoints;\n this.showDecorators();\n } else if (JSON.stringify(nextProps.location) !== JSON.stringify(this.location)) {\n this.location = nextProps.location;\n this.showDecorators();\n this.editor && this.location && this.scrollToLineIfNeeded(this.location.lineNumber + 1);\n //this.editor && this.location && this.editor.setPosition(this.location.lineNumber + 1, this.location.columnNumber + 1);\n }\n\n if (this.state.language !== (nextProps.language || 'javascript')) {\n this.setState({language: nextProps.language || 'javascript'});\n options.language = nextProps.language || 'javascript';\n } else if (this.state.readOnly !== (nextProps.readOnly || false)) {\n this.setState({readOnly: nextProps.readOnly || false});\n options.readOnly = nextProps.readOnly;\n } else if (this.state.isDark !== (nextProps.isDark || false)) {\n this.setState({isDark: nextProps.isDark || false});\n options.isDark = nextProps.isDark;\n }\n\n this.setEditorOptions(options);\n\n if (this.insert !== nextProps.insert) {\n this.insert = nextProps.insert;\n if (this.insert) {\n console.log('Insert text' + this.insert);\n setTimeout(insert => {\n this.insertTextIntoEditor(insert);\n setTimeout(() => this.props.onInserted && this.props.onInserted(), 100);\n }, 100, this.insert);\n }\n }\n }\n\n onChange(newValue, e) {\n if (!this.props.readOnly) {\n this.props.onChange && this.props.onChange(this.editor.getValue());\n }\n }\n\n render() {\n if (!this.monaco || !this.props.runningInstances) {\n setTimeout(() => {\n this.monaco = window.monaco;\n this.forceUpdate()\n }, 200);\n return null;\n }\n\n return
this.monacoDiv = el} style={{width: '100%', height: '100%', overflow: 'hidden', position: 'relative'}}>\n {!this.state.check && }\n
;\n }\n}\n\nScriptEditor.propTypes = {\n adapterName: PropTypes.string.isRequired,\n socket: PropTypes.object,\n runningInstances: PropTypes.object,\n name: PropTypes.string,\n onChange: PropTypes.func,\n onForceSave: PropTypes.func,\n onInserted: PropTypes.func,\n isDark: PropTypes.bool,\n readOnly: PropTypes.bool,\n code: PropTypes.string,\n language: PropTypes.string,\n onRegisterSelect: PropTypes.func,\n searchText: PropTypes.string,\n checkJs: PropTypes.bool,\n changed: PropTypes.bool,\n\n breakpoints: PropTypes.array,\n location: PropTypes.object,\n onToggleBreakpoint: PropTypes.func,\n};\n\nexport default ScriptEditor;\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport withStyles from '@mui/styles/withStyles';\n\nimport Button from '@mui/material/Button';\nimport DialogTitle from '@mui/material/DialogTitle';\nimport DialogContent from '@mui/material/DialogContent';\nimport DialogActions from '@mui/material/DialogActions';\nimport Dialog from '@mui/material/Dialog';\nimport Popper from '@mui/material/Popper';\nimport Fade from '@mui/material/Fade';\nimport Paper from '@mui/material/Paper';\n\nimport IconCopy from '@mui/icons-material/FileCopy';\nimport IconCancel from '@mui/icons-material/Cancel';\n\nimport { I18n, Utils } from '@iobroker/adapter-react-v5';\n\nconst styles = theme => ({\n textArea: {\n width: '100%',\n height: '100%',\n overflow: 'auto',\n },\n textAreaLight: {\n background: 'lightgray',\n },\n dialog: {\n height: '95%',\n },\n typography: {\n padding: theme.spacing(2),\n },\n overflowY: {\n overflowY: 'hidden',\n },\n});\n\nclass DialogExport extends React.Component {\n constructor(props) {\n super(props);\n this.state = {\n anchorEl: null,\n popper: '',\n };\n }\n handleCancel = () => {\n this.props.onClose();\n };\n\n onCopy(event) {\n Utils.copyToClipboard(this.props.text);\n const anchorEl = event.currentTarget;\n\n setTimeout(() => {\n this.setState({ popper: I18n.t('Copied'), anchorEl });\n setTimeout(() => this.setState({ popper: '', anchorEl: null }), 1000);\n }, 50);\n }\n\n render() {\n const classes = this.props.classes;\n\n return false}\n maxWidth=\"lg\"\n classes={{ paper: classes.dialog }}\n fullWidth\n open={this.props.open}\n aria-labelledby=\"export-dialog-title\"\n >\n {I18n.t('Export selected blocks')}\n \n {this.props.text}\n \n \n \n \n\n \n {({ TransitionProps }) => (\n \n \n

{this.state.popper}

\n
\n
\n )}\n \n