File manager - Edit - /home/matthif/www/wp-content/plugins/advanced-gutenberg/assets/blocks/blocks.js.map
Back
{"version":3,"sources":["webpack:///webpack/bootstrap","webpack:///./assets/blocks/0-adv-components/components.jsx","webpack:///./assets/blocks/0-adv-components/icon-class.jsx","webpack:///./node_modules/html-react-parser/lib/utilities.js","webpack:///./node_modules/react/index.js","webpack:///./node_modules/html-dom-parser/lib/utilities.js","webpack:///./assets/blocks/recent-posts/query-controls.jsx","webpack:///./assets/blocks/0-adv-components/datetime.jsx","webpack:///./node_modules/hour-convert/index.js","webpack:///./assets/blocks/0-adv-components/utils.jsx","webpack:///./assets/blocks/accordion/block.jsx","webpack:///./assets/blocks/advaccordion/accordion.jsx","webpack:///./assets/blocks/advaccordion/block.jsx","webpack:///./assets/blocks/advbutton/block.jsx","webpack:///./assets/blocks/advicon/block.jsx","webpack:///./assets/blocks/advimage/block.jsx","webpack:///./assets/blocks/advlist/block.jsx","webpack:///./node_modules/html-react-parser/index.js","webpack:///./node_modules/html-react-parser/lib/dom-to-react.js","webpack:///./node_modules/html-react-parser/lib/attributes-to-props.js","webpack:///./node_modules/react-property/index.js","webpack:///./node_modules/react-property/lib/HTMLDOMPropertyConfig.js","webpack:///./node_modules/react-property/lib/SVGDOMPropertyConfig.js","webpack:///./node_modules/react-property/lib/injection.js","webpack:///./node_modules/style-to-object/index.js","webpack:///./node_modules/inline-style-parser/index.js","webpack:///./node_modules/react/cjs/react.production.min.js","webpack:///./node_modules/object-assign/index.js","webpack:///./node_modules/html-dom-parser/lib/html-to-dom-client.js","webpack:///./node_modules/html-dom-parser/lib/domparser.js","webpack:///./node_modules/html-dom-parser/lib/constants.js","webpack:///./assets/blocks/advlist/item.jsx","webpack:///./assets/blocks/advtable/block.jsx","webpack:///./assets/blocks/advtabs/block.jsx","webpack:///./assets/blocks/advtabs/tab.jsx","webpack:///./assets/blocks/advvideo/block.jsx","webpack:///./assets/blocks/columns/block.jsx","webpack:///./assets/blocks/columns/column.jsx","webpack:///./assets/blocks/contact-form/block.jsx","webpack:///./assets/blocks/container/block.jsx","webpack:///./assets/blocks/count-up/block.jsx","webpack:///./assets/blocks/images-slider/block.jsx","webpack:///./assets/blocks/infobox/block.jsx","webpack:///./assets/blocks/login-form/block.jsx","webpack:///./assets/blocks/map/block.jsx","webpack:///./assets/blocks/newsletter/block.jsx","webpack:///./assets/blocks/recent-posts/block.jsx","webpack:///./assets/blocks/search-bar/block.jsx","webpack:///./assets/blocks/social-links/block.jsx","webpack:///./assets/blocks/summary/block.jsx","webpack:///./node_modules/latinize/latinize.js","webpack:///./assets/blocks/tabs/block.jsx","webpack:///./assets/blocks/testimonial/block.jsx","webpack:///./assets/blocks/woo-products/block.jsx"],"names":["installedModules","__webpack_require__","moduleId","exports","module","i","l","modules","call","m","c","d","name","getter","o","Object","defineProperty","enumerable","get","r","Symbol","toStringTag","value","t","mode","__esModule","ns","create","key","bind","n","object","property","prototype","hasOwnProperty","p","s","AdvColorControl","props","wp","components","ColorIndicator","BaseControl","ColorPalette","blockEditor","editor","BaseLabel","VisualLabel","label","onChange","className","colorValue","IconListPopupHook","closePopup","onSelectIcon","onSelectIconTheme","selectedIcon","selectedIconTheme","IconListPopup","__","i18n","element","Component","Fragment","SelectControl","TextControl","handleClick","state","searchedText","this","setState","document","addEventListener","removeEventListener","e","node","contains","target","includes","popUpTitle","applyIconButtonClass","filter","Boolean","join","closeButtonClass","ref","onClick","placeholder","options","style","maxHeight","overflowY","overflowX","keys","advgbBlocks","iconList","icon","indexOf","trim","split","map","index","iconClass","title","disabled","React","hyphenPatternRegex","CUSTOM_PROPERTY_OR_NO_HYPHEN_REGEX","PRESERVE_CUSTOM_ATTRIBUTES","version","camelCase","string","TypeError","test","toLowerCase","replace","_","character","toUpperCase","invertObject","obj","override","isOverridePresent","overrides","result","length","isCustomComponent","tagName","is","CASE_SENSITIVE_TAG_NAMES","caseSensitiveTagNamesMap","len","formatAttributes","attributes","attribute","formatTagName","caseSensitiveTagName","getCaseSensitiveTagName","formatDOM","nodes","parentObj","directive","prevNode","nodeObj","next","prev","parent","nodeName","attribs","nodeType","type","children","childNodes","data","nodeValue","push","unshift","substring","isIE","documentMode","navigator","userAgent","TreeSelect","RangeControl","FormTokenField","lodash","groupBy","pickBy","isUndefined","buildTermsTree","flatTerms","flatTermsWithParentAndChildren","term","termsByParent","null","fillWithChildren","terms","id","CategorySelect","noOptionLabel","categoriesList","selectedCategoryId","termsTree","tree","selectedId","PP_SERIES_POST_TYPES","pp_series_post_types","numberOfItems","order","orderBy","postType","maxItems","minItems","onCategoryChange","onNumberOfItemsChange","onOrderChange","onOrderByChange","orderParams","union","pp_series_active","parseInt","newOrderBy","newOrder","min","max","required","AuthorSelect","authorList","selectedAuthorId","AdvDateTimeControl","useState","popupState","setPopupState","togglePopup","buttonLabel","dateLabel","date","onChangeDate","onDateClear","onInvalidDate","Button","isLink","Tooltip","text","moment","format","Popover","onClose","resize","DateTimePicker","currentDate","is12Hour","isInvalidDate","AdvDaysControl","allDays","slug","_x","days","onChangeDays","selectedDays","setSelectedDays","isDaySelected","some","el","day","CheckboxControl","checked","updatedDays","findDay","find","uniqueDays","Set","onChangeDay","AdvTimeControl","currentTime","onChangeTime","onTimeClear","AdvTimeClass","AdvTimezoneControl","defaultTimezone","applyFilters","marginTop","marginBottom","float","marginRight","Icon","href","class","ButtonGroup","hooks","hours","minutes","meridian","onInit","prevProps","prevState","prevHours","prevMinutes","prevMeridian","savedTime","appendZero","hourConvert","to24Hour","hour","meridiem","isNaN","res","to12Hour","event","Math","Number","onKeyDown","variant","time","getOptionSuggestions","item","getOptionTitles","slugs","field_value","option_slug","find_option","undefined","getOptionSlugs","slugs_array","option_title","matching_slug","wpI18n","wpBlocks","wpElement","wpBlockEditor","wpComponents","registerBlockType","createBlock","InspectorControls","RichText","PanelColorSettings","InnerBlocks","PanelBody","ToggleControl","HEADER_ICONS","plus","fill","plusCircle","plusCircleOutline","plusBox","points","unfold","threeDots","arrowDown","opacity","AdvAccordion","arguments","currentAccordion","setAttributes","currentBlockConfig","advgbDefaultConfig","changed","header","headerBgColor","headerTextColor","headerIcon","headerIconColor","bodyBgColor","bodyTextColor","borderStyle","borderWidth","borderColor","borderRadius","collapsedAll","color","fontStyle","help","xmlns","width","height","viewBox","initialOpen","colorSettings","backgroundColor","unstableOnSplit","accordionBlockIcon","x","y","accordionAttrs","default","description","src","foreground","category","keywords","supports","inserter","edit","save","data-collapsed","Content","deprecated","transforms","to","blocks","transform","innerBlocks","accordion","needUpdate","wpCompose","withDispatch","select","compose","times","AccordionItemEdit","clientId","getBlockRootClientId","rootBlockAttrs","getBlockAttributes","headerTag","updateRootBlockAttrs","allowedFormats","rootBlockId","anchor","dispatch","getBlocksByClientId","updateBlockAttributes","rootID","accordionBlock","attrs","borderTop","BlockControls","ToolbarGroup","ToolbarButton","AccordionsEdit","updateAccordionAttrs","updateAccordionAttributes","removeBlock","getBlockOrder","childBlocks","forEach","childBlockId","isPreview","accordionsClassName","alt","resyncAccordions","template","templateLock","allowedBlocks","blockAttrs","example","getBlock","block","URLInput","previewImageData","advgb_relAttribute","noreferrer","nofollow","AdvButton","showPopup","iconSelected","iconThemeSelected","handleIcon","handleIconTheme","advgb_pro","iconTheme","iconValue","iconThemeValue","listBorderStyles","isSelected","align","url","urlOpenNewTab","bgColor","textColor","textSize","marginLeft","paddingTop","paddingRight","paddingBottom","paddingLeft","hoverTextColor","hoverBgColor","hoverShadowColor","hoverShadowH","hoverShadowV","hoverShadowBlur","hoverShadowSpread","hoverOpacity","transitionSpeed","iconDisplay","iconSize","iconColor","iconPosition","iconSpacing","isStyleSquared","isStyleOutlined","isStyleSquaredOutline","hoverColorSettings","shift","display","rel","keepPlaceholderOnFocus","content","autoFocus","isFullWidth","hasBorder","size","beforeIcon","allowReset","buttonBlockIcon","selector","from","styles","isDefault","getEditWrapperProps","source","migrate","AlignmentToolbar","MARGIN_PADDING_CONTROLS","fill-rule","clip-rule","stroke-linejoin","stroke-miterlimit","blockIcon","AdvIconEdit","currentItem","blockIDX","updateItems","idx","items","dataName","numberItem","tAlign","blockWrapClass","blockClass","j","data-currentItem","getNamedItem","borderSize","link","linkTarget","unit","uIdx","paddingUnit","pos","mpIdx","marginUnit","textAlign","advgbIconClass","iconWrapClass","iconType","iconWrapStyles","alignItems","background","iconStyles","fontSize","getItemData","itemLink","match","MediaUpload","FocalPointPicker","AdvImage","currentEdit","titleTag","subtitleTag","openOnClick","openUrl","linkInNewTab","imageUrl","imageID","titleColor","subtitle","subtitleColor","overlayColor","defaultOpacity","fullWidth","vAlign","hAlign","overlayOpacity","focalPoint","blockClassName","allowedTypes","onSelect","image","render","open","backgroundImage","image_holder","backgroundPosition","justifyContent","unstableOnFocus","advImageBlockIcon","linkURL","data-image","wpData","renderToString","createElement","Dashicon","INNER_BLOCKS_TEMPLATE","require","AdvList","migrateValues","migrateStatus","values","migrateToInnerBlocks","insertBlock","cancel","parsedValues","child","listIcons","blockID","margin","padding","lineHeight","listClassName","marg","padd","listBlockIcon","listBlockAttrs","list","domToReact","htmlToDOM","domParserOptions","decodeEntities","lowerCaseAttributeNames","HTMLReactParser","html","attributesToProps","utilities","shouldPassAttributesUnaltered","replaceElement","library","cloneElement","isValidElement","hasReplace","dangerouslySetInnerHTML","__html","defaultValue","reactProperty","styleToObject","htmlProperties","svgProperties","svg","isCustomAttribute","attributeName","attributeNameLowerCased","attributeValue","propertyName","hasBooleanValue","hasOverloadedBooleanValue","styleObject","cssToJs","HTMLDOMPropertyConfig","SVGDOMPropertyConfig","injection","MUST_USE_PROPERTY","HAS_BOOLEAN_VALUE","HAS_NUMERIC_VALUE","HAS_POSITIVE_NUMERIC_VALUE","HAS_OVERLOADED_BOOLEAN_VALUE","checkMask","bitmask","injectDOMPropertyConfig","domPropertyConfig","config","isSVG","propConfig","Properties","DOMAttributeNames","mustUseProperty","hasNumericValue","hasPositiveNumericValue","properties","RegExp","accept","acceptCharset","accessKey","action","allowFullScreen","allowTransparency","as","async","autoComplete","autoPlay","capture","cellPadding","cellSpacing","charSet","challenge","cite","classID","cols","colSpan","contentEditable","contextMenu","controls","controlsList","coords","crossOrigin","dateTime","defer","dir","download","draggable","encType","form","formAction","formEncType","formMethod","formNoValidate","formTarget","frameBorder","headers","hidden","high","hrefLang","htmlFor","httpEquiv","inputMode","integrity","keyParams","keyType","kind","lang","loop","low","manifest","marginHeight","marginWidth","maxLength","media","mediaGroup","method","minLength","multiple","muted","nonce","noValidate","optimum","pattern","playsInline","poster","preload","profile","radioGroup","readOnly","referrerPolicy","reversed","role","rows","rowSpan","sandbox","scope","scoped","scrolling","seamless","selected","shape","sizes","span","spellCheck","srcDoc","srcLang","srcSet","start","step","summary","tabIndex","useMap","wmode","wrap","about","datatype","inlist","prefix","resource","typeof","vocab","autoCapitalize","autoCorrect","autoSave","itemProp","itemScope","itemType","itemID","itemRef","results","security","unselectable","accentHeight","accumulate","additive","alignmentBaseline","allowReorder","alphabetic","amplitude","arabicForm","ascent","attributeType","autoReverse","azimuth","baseFrequency","baseProfile","baselineShift","bbox","begin","bias","by","calcMode","capHeight","clip","clipPath","clipRule","clipPathUnits","colorInterpolation","colorInterpolationFilters","colorProfile","colorRendering","contentScriptType","contentStyleType","cursor","cx","cy","decelerate","descent","diffuseConstant","direction","divisor","dominantBaseline","dur","dx","dy","edgeMode","elevation","enableBackground","end","exponent","externalResourcesRequired","fillOpacity","fillRule","filterRes","filterUnits","floodColor","floodOpacity","focusable","fontFamily","fontSizeAdjust","fontStretch","fontVariant","fontWeight","fx","fy","g1","g2","glyphName","glyphOrientationHorizontal","glyphOrientationVertical","glyphRef","gradientTransform","gradientUnits","hanging","horizAdvX","horizOriginX","ideographic","imageRendering","in","in2","intercept","k","k1","k2","k3","k4","kernelMatrix","kernelUnitLength","kerning","keyPoints","keySplines","keyTimes","lengthAdjust","letterSpacing","lightingColor","limitingConeAngle","local","markerEnd","markerMid","markerStart","markerHeight","markerUnits","markerWidth","mask","maskContentUnits","maskUnits","mathematical","numOctaves","offset","operator","orient","orientation","origin","overflow","overlinePosition","overlineThickness","paintOrder","panose1","pathLength","patternContentUnits","patternTransform","patternUnits","pointerEvents","pointsAtX","pointsAtY","pointsAtZ","preserveAlpha","preserveAspectRatio","primitiveUnits","radius","refX","refY","renderingIntent","repeatCount","repeatDur","requiredExtensions","requiredFeatures","restart","rotate","rx","ry","scale","seed","shapeRendering","slope","spacing","specularConstant","specularExponent","speed","spreadMethod","startOffset","stdDeviation","stemh","stemv","stitchTiles","stopColor","stopOpacity","strikethroughPosition","strikethroughThickness","stroke","strokeDasharray","strokeDashoffset","strokeLinecap","strokeLinejoin","strokeMiterlimit","strokeOpacity","strokeWidth","surfaceScale","systemLanguage","tableValues","targetX","targetY","textAnchor","textDecoration","textRendering","textLength","u1","u2","underlinePosition","underlineThickness","unicode","unicodeBidi","unicodeRange","unitsPerEm","vAlphabetic","vHanging","vIdeographic","vMathematical","vectorEffect","vertAdvY","vertOriginX","vertOriginY","viewTarget","visibility","widths","wordSpacing","writingMode","xHeight","x1","x2","xChannelSelector","xlinkActuate","xlinkArcrole","xlinkHref","xlinkRole","xlinkShow","xlinkTitle","xlinkType","xmlBase","xmlnsXlink","xmlLang","xmlSpace","y1","y2","yChannelSelector","z","zoomAndPan","parse","iterator","declaration","output","declarations","hasIterator","COMMENT_REGEX","NEWLINE_REGEX","WHITESPACE_REGEX","PROPERTY_REGEX","COLON_REGEX","VALUE_REGEX","SEMICOLON_REGEX","TRIM_REGEX","str","lineno","column","updatePosition","lines","lastIndexOf","position","line","Position","whitespace","errorsList","error","msg","err","Error","reason","filename","silent","re","exec","slice","comments","rules","comment","charAt","prop","val","ret","decl","decls","for","q","u","v","w","A","B","C","a","b","encodeURIComponent","D","isMounted","enqueueForceUpdate","enqueueReplaceState","enqueueSetState","E","F","context","refs","updater","G","H","isReactComponent","forceUpdate","I","constructor","isPureReactComponent","J","current","K","L","__self","__source","M","g","f","h","Array","defaultProps","$$typeof","_owner","O","P","Q","R","pop","keyPrefix","func","count","S","V","T","U","isArray","done","escape","toString","W","aa","X","N","Y","Z","ba","ReactCurrentDispatcher","ReactCurrentBatchConfig","suspense","ReactCurrentOwner","IsSomeRendererActing","assign","Children","toArray","only","Profiler","PureComponent","StrictMode","Suspense","__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED","createContext","_calculateChangedBits","_currentValue","_currentValue2","_threadCount","Provider","Consumer","_context","createFactory","createRef","forwardRef","lazy","_ctor","_status","_result","memo","compare","useCallback","useContext","useDebugValue","useEffect","useImperativeHandle","useLayoutEffect","useMemo","useReducer","useRef","getOwnPropertySymbols","propIsEnumerable","propertyIsEnumerable","toObject","test1","String","getOwnPropertyNames","test2","fromCharCode","test3","letter","shouldUseNative","symbols","domparser","isIE9","DIRECTIVE_REGEX","parseFromString","parseFromDocument","parseFromTemplate","FIRST_TAG_REGEX","HEAD_TAG_REGEX","BODY_TAG_REGEX","VOID_ELEMENTS_REGEX","window","DOMParser","domParser","mimeType","implementation","doc","createHTMLDocument","documentElement","getElementsByTagName","innerHTML","parseWithFallback","firstTagName","elements","parentNode","removeChild","itemEdit","shiftKey","parentId","parentBlock","itemIndex","findIndex","currentContent","newContent","cleanContent","lastIndex","DropdownMenu","tableBlockIcon","willSetContent","lastValue","AdvTable","initRow","initCol","selectedCell","rangeSelected","multiSelected","sectionSelected","updated","calculateRealColIndex","isMultiSelected","isRangeSelected","body","cells","toCell","section","newSection","row","cRow","cell","cCol","cI","lastColSpan","currentSection","rowIndex","newRow","jQuery","extend","cCell","rowIdx","cRowIdx","findColIdx","elm","splice","alert","countRowSpan","realOffset","fromCell","fCell","colIdx","tCell","fcSpan","frSpan","tcSpan","trSpan","minRowIdx","maxRowIdx","minColIdx","RCI","maxColIdx","curRowIndex","curColIndex","abs","colIndex","cellColSpan","cellRowSpan","startRowFix","borderColorSaved","parseStyles","convertedStyles","borderTopColor","borderRightColor","borderBottomColor","borderLeftColor","setBorder","cellBorderColor","cellsToAdd","cellClassName","ctrlKey","metaKey","multiCells","existCell","cel","clearTimeout","setTimeout","updateCellContent","head","foot","maxWidth","tableCollapsed","hasFixedLayout","maxWidthVal","currentCell","isPrimary","createTable","TABLE_CONTROLS","isDisabled","insertRow","deleteRow","insertColumn","deleteColumn","splitMergedCells","mergeCells","BORDER_SELECT","updateCellsStyles","EXTRA_BORDER_SELECT","HORZ_ALIGNMENT_CONTROLS","VERT_ALIGNMENT_CONTROLS","hasArrowIndicator","toggleSection","getCellStyles","control","isActive","verticalAlign","borderCollapse","tableLayout","renderSection","substr","reduce","styleObj","query","sectionTagName","data-border-color","cloneBlock","withSelect","svgPath","tabHorizontalIcon","tabVerticalIcon","TABS_STYLES","advgbTabsUniqueIDs","AdvTabsWrapper","viewport","isTransform","updateTabActive","ids","every","updateTabIds","uniqueID","pid","updateTabHeaders","updateTabAnchors","resetOrder","tabHeaders","tabAnchors","blockTab","vl","updateTabsAttr","tabActive","anchors","onMove","newIndex","moveBlockToPosition","updateTabsHeader","tabActiveFrontend","tabsStyleD","tabsStyleT","tabsStyleM","activeTabBgColor","activeTabTextColor","deviceLetter","device","itemClasses","translatableText","isToggled","tab","border","updateTabsAnchor","moveTab","duplicateTab","removeTab","addTab","tabsBlockIcon","tabBlockAttrs","ownProps","data-tab-active","TabItemEdit","ALLOWED_BLOCKS","getBlockTypes","blockName","tabClassName","reusable","aria-labelledby","Spinner","Toolbar","Disabled","PLAY_BUTTON_STYLE","normal","circleFill","circleOutline","videoCam","squareCurved","starSticker","AdvVideo","fetching","fetchVideoInfo","videoID","posterID","realID","apiFetch","path","addQueryArgs","then","provider_name","videoTitle","thumbnail_url","videoSourceType","videoURL","catch","video","blockId","openInLightbox","querySelector","pause","load","videoFullWidth","videoWidth","videoHeight","playButtonIcon","playButtonSize","playButtonColor","playback","playsinline","videoWrapperClass","videoHostIcon","youtube","vimeo","loadLocalVideo","minWidth","advVideoBlockIcon","videoAttributes","data-video","data-source","data-video-attr","data-video-preload","COLUMNS_LAYOUTS","columns","layout","COLUMNS_LAYOUTS_RESPONSIVE","COLUMNS_LAYOUTS_STACKED","GUTTER_OPTIONS","AdvColumnsEdit","tabSelected","colId","prevLayout","columnsLayout","prevLayoutT","columnsLayoutT","prevLayoutM","columnsLayoutM","shouldUpdate","classes","extraClassD","prepareColumnClass","cls","columnClasses","marginTopM","marginRightM","marginBottomM","marginLeftM","paddingTopM","paddingRightM","paddingBottomM","paddingLeftM","gutter","collapsedGutter","collapsedRtl","columnsWrapped","contentMaxWidth","contentMaxWidthUnit","contentMinHeight","contentMinHeightUnit","contentMaxHeight","contentMaxHeightUnit","wrapperTag","blockClasses","pluginUrl","COLUMNS_LAYOUTS_FILTERED","COLUMNS_LAYOUTS_RESPONSIVE_FILTERED","layoutClasses","random","jsUcfirst","minHeight","extraClass","classObj","marginTopT","marginRightT","marginBottomT","marginLeftT","paddingTopT","paddingRightT","paddingBottomT","paddingLeftT","Tag","columnsBlockIcon","AdvColumnEdit","textAlignM","hasChildBlocks","rootChildBlocks","avaiWidth","isCollapsed","renderAppender","ButtonBlockAppender","flex","contactBlockIcon","AdvContactForm","nameLabel","emailLabel","msgLabel","submitLabel","successLabel","alertLabel","submitColor","submitBgColor","submitRadius","submitPosition","captchaEnabled","config_url","data-success","data-alert","containerBlockIcon","columnBlock","FormToggle","AdvCountUp","headerText","headerText2","headerText3","countUpNumber","countUpNumber2","countUpNumber3","countUpNumberColor","countUpNumberSize","countUpSymbol","countUpSymbol2","countUpSymbol3","countUpSymbolAfter","countUpSymbolAfter2","countUpSymbolAfter3","descText","descText2","descText3","descTextColor","countUpNameClass","clear","countUpBlockIcon","countSymbolElm","countSymbolElm2","countSymbolElm3","TextareaControl","Placeholder","$","imageSliderBlockIcon","AdvImageSlider","currentSelected","imageLoaded","initSlider","images","titleShow","textTag","nextProps","nextImages","slick","removeAttr","autoplay","autoplaySpeed","prevImages","trigger","dots","adaptiveHeight","on","currentSlide","currentIndex","img","actionOnClick","autoHeight","alwaysShowOverlay","rtl","hoverColor","instructions","imgInsert","caption","onLoad","onError","updateImagesData","moveImage","imgs","data-slick","InfoBoxEdit","containerBorderWidth","containerBorderRadius","containerPaddingTop","containerPaddingBottom","containerPaddingLeft","containerPaddingRight","containerBackground","containerBorderBackground","containerPaddingUnit","iconBorderWidth","iconBorderRadius","iconPaddingTop","iconPaddingBottom","iconPaddingLeft","iconPaddingRight","iconMarginTop","iconMarginBottom","iconMarginLeft","iconMarginRight","iconBackground","iconBorderBackground","iconPaddingUnit","iconMarginUnit","titleSize","titleSizeUnit","titleLineHeight","titleLineHeightUnit","titleHtmlTag","titlePaddingTop","titlePaddingBottom","titlePaddingLeft","titlePaddingRight","titleMarginTop","titleMarginBottom","titleMarginLeft","titleMarginRight","titlePaddingUnit","titleMarginUnit","textSizeUnit","textLineHeight","textLineHeightUnit","textPaddingTop","textPaddingBottom","textPaddingLeft","textPaddingRight","textMarginTop","textMarginBottom","textMarginLeft","textMarginRight","textPaddingUnit","textMarginUnit","containerPadding","iconPadding","iconMargin","titlePadding","titleMargin","textPadding","textMargin","newAlign","whiteSpace","userIcon","emailIcon","passwordIcon","LoginFormEdit","registerView","formType","submitButtonId","formWidth","redirect","redirectLink","showLogo","showInputFieldIcon","showRegisterLink","showLostPasswordLink","logoImg","logoID","registerLogoImg","registerLogoID","logoWidth","welcomeText","loginLabel","loginText","passwordText","usernameLabel","userText","emailText","rememberMeText","loginSubmitLabel","registerSubmitLabel","registerText","registerLinkText","registerWelcome","backToLoginText","lostPasswordText","inputColor","submitHoverColor","submitHoverBgColor","submitHoverShadow","submitHoverShadowH","submitHoverShadowV","submitHoverShadowBlur","submitHoverShadowSpread","submitHoverOpacity","submitHoverTranSpeed","logoElm","medium","full","regLogoElm","loginForm","onReplace","onSplit","registerForm","registerEnabled","loginFormBlockIcon","login_logo","reg_logo","logoElmSave","regLogoElmSave","loginFormSave","data-redirect","registerFormSave","mapWillUpdate","mapBlockIcon","MAP_STYLES","silver","retro","dark","night","aubergine","AdvMap","currentAddress","currentMap","currentMarker","currentInfo","invalidStyle","initMap","fetchLocation","mapID","prevAddr","address","prevUseLatLng","useLatLng","google","DEFAULT_MARKER","lat","lng","zoom","markerTitle","markerIcon","markerDesc","mapStyle","mapStyleCustom","infoWindowDefaultShown","location","parseFloat","that","formattedDesc","marker","infoWindow","customStyleParsed","JSON","maps","Map","getElementById","center","gestureHandling","setCenter","setZoom","setOptions","InfoWindow","setContent","Marker","animation","Animation","DROP","scaledSize","Size","setPosition","setTitle","setIcon","addListener","close","newLocation","getPosition","newLat","newLng","geoCoder","Geocoder","GeocoderStatus","OK","ZERO_RESULTS","geocode","stt","geometry","formatted_address","markerIconID","listStyles","thumbnail","mapBlockAttrs","formattedTitle","mapStyleApply","stringify","data-default","data-lat","data-lng","data-zoom","data-title","data-desc","data-icon","data-shown","data-style","newsletterBlockIcon","fill-opacity","AdvNewsletter","formStyle","fnameLabel","lnameLabel","wpHtmlEntities","wpDate","RawHTML","isNull","omit","uniqWith","isEqual","sortBy","unset","set","advRecentPostsBlockIcon","dateI18n","INBUILT_POST_TYPES","FRONTPAGE_LAYOUTS","FRONTPAGE_LAYOUTS_TABLET","FRONTPAGE_LAYOUTS_MOBILE","GAP_OPTIONS","NEWSPAPER_LAYOUTS","ORDER_SECTIONS","DISPLAY_FOR","initMasonry","RecentPostsEdit","tagsList","catIdVsName","tagNameVsId","postTypeList","updating","updatePostSuggestions","selectCategories","selectTags","getTagIdsForTags","getCategoryForBkwrdCompat","selectPostByTitle","updatePostType","getPostIds","getPostTitles","tagsAndcategoriesListQuery","per_page","hide_empty","searchString","excludePostTypes","types","viewable","suggestions","cat","categories","tag","tagIds","tags","postDateDisplay","displayDate","postDate","generateTaxFilters","nextPosts","recentPosts","nextView","postView","isotope","isPro","checkIncludeEnabled","includePosts","postList","sliderAutoplay","sliderAutoplaySpeed","$masonry","itemSelector","percentPosition","exclude","postSuggestions","postTitleVsIdMap","post","raw","excludeIds","taxonomyList","postsToSearch","postsToSearchResolved","postsToInclude","postsToIncludeResolved","postsToExclude","postsToExcludeResolved","numberOfPosts","columnsT","columnsM","displayFeaturedImage","displayFeaturedImageFor","displayFeaturedImageCaption","enablePlaceholderImage","imageOpacity","imageOverlayColor","displayAuthor","displayAuthorFor","authorLinkNewTab","postDateFor","postDateFormat","displayTime","displayExcerpt","displayExcerptFor","postTextAsExcerpt","postTextExcerptLength","displayReadMore","displayReadMoreFor","readMoreLbl","frontpageLayout","frontpageLayoutT","frontpageLayoutM","gap","frontpageStyle","sliderStyle","newspaperLayout","excludeCurrentPost","showCategories","showCategoriesFor","showTags","showTagsFor","displayCommentCount","displayCommentCountFor","textAfterTitle","textBeforeReadmore","excludePosts","author","linkCustomTax","showCustomTaxList","showCustomTaxListFor","imagePosition","onlyFromCurrentUser","orderSections","mergedPosts","getMergedPosts","postSuggestionsExclude","getPostSuggestions","postSuggestionsInclude","isInPost","getCurrentPostType","inspectorControls","newspaperOnChangeLayout","refreshOnChangeItems","maxSuggestions","tax","populateTaxTerms","selectTaxTerms","onInputChange","selectTaxonomies","postViewControls","myToken","floor","checkElementDisplay","featured_img","getDisplayImageVsOrder","post_thumb","featured_img_caption","rendered","coauthors","coauthor","coauthor_indx","display_name","author_meta","author_link","getDateTime","comment_count","tax_additional","unlinked","linked","getTaxSlugs","taxSlug","extractContent","excerpt","concat","posts","tokens","token","postsToSelect","post_id","find_post","posts_array","post_title","matching_post","selectType","taxonomies","typeForQuery","generateSeriesTax","generateTaxTerms","typeAttributes","taxonomy","taxId","seriesSlug","pp_series_slug","taxAttributes","rest_base","preselectedName","preselectedId","taxIds","hierarchical","preselectedNames","preselectedIds","taxList","taxes","taxName","elementFor","checkElementForDisplay","currentLayout","absolute_dates_time","created","absolute_dates","modified","relative_dates","scripts","seriesbox","getElementsByClassName","querySelectorAll","textContent","innerText","getEntityRecords","hasFinishedResolution","catIds","postId","getCurrentPostId","recentPostsQuery","orderby","include","getCurrentUser","filterTaxNames","queryFields","postsToSearchQuery","_fields","search","postsToIncludeQuery","postsToExcludeQuery","postSuggestionsQuery","htmlEntities","searchBlockIcon","SEARCH_ICONS","icon1","icon2","icon3","icon4","icon5","icon6","SearchBarEdit","searchBtnId","searchIcon","searchIconOnRight","searchPlaceholder","searchButtonEnabled","searchButtonText","searchButtonTextColor","searchButtonBgColor","searchButtonRadius","searchButtonOnLeft","searchBtnHoverColor","searchBtnHoverBgColor","searchBtnHoverShadow","searchBtnHoverShadowH","searchBtnHoverShadowV","searchBtnHoverShadowBlur","searchBtnHoverShadowSpread","searchBtnHoverOpacity","searchBtnHoverTranSpeed","searchBarIcon","searchBarButton","home_url","socialBlockIconContent","socialBlockIcon","ICONS_SET_NEW","blogger","stroke-width","facebook","flickr","instagram","linkedin","mail","picasa","pinterest","reddit","skype","soundcloud","tumblr","twitter","AdvSocialBlock","iconSpace","matchedIcons","iconID","newItems","socialBlockAttrs","wpHooks","getBlockContent","InspectorAdvancedControls","BlockAlignmentToolbar","addFilter","summaryBlockIcon","summaryBlockTitle","getBlockType","click","summaryBlockExist","getBlocks","summaryButton","append","unbind","summaryBlock","hide","BlockEdit","blockType","SummaryBlock","updateSummary","latinise","lettersArr","latinMap","headingDatas","headingBlocks","getHeadingBlocksFromColumns","getHeadingsfromAccordion","heading","thisHead","level","headId","unescape","headings","loadMinimized","anchorColor","headerTitle","summaryContent","selectBlock","postTitle","getEditedPostAttribute","storeData","bl","block_","blockStyle","latinize","characters","AdvTabsBlock","initTabs","prevItems","tabItems","refresh","tabs","stopPropagation","thisIndex","updateTabs","innerTabs","tabContent","PREV_ARROW","NEXT_ARROW","AdvTestimonial","sliderView","sliderColumn","sliderCenterMode","sliderPauseOnHover","sliderInfiniteLoop","sliderDotsShown","sliderSpeed","sliderArrowShown","sliderItemsToScroll","infinite","centerMode","slidesToShow","slidesToScroll","pauseOnHover","arrows","prevArrow","nextArrow","sliderNeedReload","needReload","sliderNeedUpdate","slider","prevElm","nextElm","pa","ca","reload","checkProp","update","checkItem","enableAvatar","avatarColor","avatarBorderRadius","avatarBorderWidth","avatarBorderColor","avatarSize","nameColor","positionColor","descColor","sliderAutoPlay","sliderDotsColor","sliderAutoPlaySpeed","sliderArrowSize","sliderArrowBorderSize","sliderArrowBorderRadius","sliderArrowColor","avatarPosition","maxCols","minCols","validCols","arrowStyle","avatarUrl","avatarID","avatarHolder","desc","testimonialBlockIcon","data-col","data-scroll","data-pause","data-autoplay","data-apspeed","data-loop","data-dots","data-speed","data-arrows","data-center","fetchingQueue","advProductsBlockIcon","AdvProductsEdit","productsList","loading","fetchProducts","nextState","checkAttrChanged","prevAttrs","curAttrs","prevView","viewType","prevCat","prevCats","prevStatus","status","prevOrder","prevOrderBy","prevLength","numberOfProducts","self","featured","on_sale","catID","willAdd","viewControls","blockWrapperClassName","inArray","setCategories","splitedVal","product","price_html","listCats","shortCode"],"mappings":"aACE,IAAIA,EAAmB,GAGvB,SAASC,EAAoBC,GAG5B,GAAGF,EAAiBE,GACnB,OAAOF,EAAiBE,GAAUC,QAGnC,IAAIC,EAASJ,EAAiBE,GAAY,CACzCG,EAAGH,EACHI,GAAG,EACHH,QAAS,IAUV,OANAI,EAAQL,GAAUM,KAAKJ,EAAOD,QAASC,EAAQA,EAAOD,QAASF,GAG/DG,EAAOE,GAAI,EAGJF,EAAOD,QAKfF,EAAoBQ,EAAIF,EAGxBN,EAAoBS,EAAIV,EAGxBC,EAAoBU,EAAI,SAASR,EAASS,EAAMC,GAC3CZ,EAAoBa,EAAEX,EAASS,IAClCG,OAAOC,eAAeb,EAASS,EAAM,CAAEK,YAAY,EAAMC,IAAKL,KAKhEZ,EAAoBkB,EAAI,SAAShB,GACX,oBAAXiB,QAA0BA,OAAOC,aAC1CN,OAAOC,eAAeb,EAASiB,OAAOC,YAAa,CAAEC,MAAO,WAE7DP,OAAOC,eAAeb,EAAS,aAAc,CAAEmB,OAAO,KAQvDrB,EAAoBsB,EAAI,SAASD,EAAOE,GAEvC,GADU,EAAPA,IAAUF,EAAQrB,EAAoBqB,IAC/B,EAAPE,EAAU,OAAOF,EACpB,GAAW,EAAPE,GAA8B,iBAAVF,GAAsBA,GAASA,EAAMG,WAAY,OAAOH,EAChF,IAAII,EAAKX,OAAOY,OAAO,MAGvB,GAFA1B,EAAoBkB,EAAEO,GACtBX,OAAOC,eAAeU,EAAI,UAAW,CAAET,YAAY,EAAMK,MAAOA,IACtD,EAAPE,GAA4B,iBAATF,EAAmB,IAAI,IAAIM,KAAON,EAAOrB,EAAoBU,EAAEe,EAAIE,EAAK,SAASA,GAAO,OAAON,EAAMM,IAAQC,KAAK,KAAMD,IAC9I,OAAOF,GAIRzB,EAAoB6B,EAAI,SAAS1B,GAChC,IAAIS,EAAST,GAAUA,EAAOqB,WAC7B,WAAwB,OAAOrB,EAAgB,SAC/C,WAA8B,OAAOA,GAEtC,OADAH,EAAoBU,EAAEE,EAAQ,IAAKA,GAC5BA,GAIRZ,EAAoBa,EAAI,SAASiB,EAAQC,GAAY,OAAOjB,OAAOkB,UAAUC,eAAe1B,KAAKuB,EAAQC,IAGzG/B,EAAoBkC,EAAI,GAIjBlC,EAAoBA,EAAoBmC,EAAI,G,kFClFrCC,gBAAT,SAAyBC,GAAO,MACGC,GAAGC,WAAlCC,EAD4B,EAC5BA,eAAgBC,EADY,EACZA,YAChBC,GAAgBJ,GAAGK,aAAeL,GAAGM,QAArCF,aACDG,EAAYJ,EAAYK,YAAcL,EAAYK,YAAc,OAE/DC,EAA0BV,EAA1BU,MAAO1B,EAAmBgB,EAAnBhB,MAAO2B,EAAYX,EAAZW,SACrB,OACI,oBAACP,EAAD,CACIQ,UAAU,mEAEV,oBAACJ,EAAD,CAAWI,UAAU,kCAChBF,EACA1B,GACG,oBAACmB,EAAD,CAAgBU,WAAY7B,KAGpC,oBAACqB,EAAD,CACIO,UAAU,gGACV5B,MAAOA,EACP2B,SAAUA,O,yUCoIVG,kBAAT,SAA2Bd,GAAO,IAC7Be,EAAiFf,EAAjFe,WAAYC,EAAqEhB,EAArEgB,aAAcC,EAAuDjB,EAAvDiB,kBAAmBC,EAAoClB,EAApCkB,aAAcC,EAAsBnB,EAAtBmB,kBACnE,OACI,oBAACC,EAAD,CACIL,WAAaA,EACbC,aAAeA,EACfC,kBAAoBA,EACpBC,aAAeA,EACfC,kBAAoBA,K,IA/JxBE,EAAOpB,GAAGqB,KAAVD,G,EACwBpB,GAAGsB,QAA3BC,E,EAAAA,UAAWC,E,EAAAA,S,EACoBxB,GAAGC,WAAlCwB,E,EAAAA,cAAeC,E,EAAAA,YAEjBP,E,YAEF,WAAYpB,I,4FAAO,e,iKAAA,wDACTA,IADS,OAEf,EAAK4B,YAAc,EAAKA,YAAYrC,KAAjB,GACnB,EAAKsC,MAAQ,CACTC,aAAc,GACdZ,aAAc,GACdC,kBAAmB,YANR,E,sXAUE,MACyBY,KAAKF,MAAxCC,EADU,EACVA,aAAcX,EADJ,EACIA,kBAClBY,KAAK/B,MAAMkB,eAAiBY,GAC3BC,KAAKC,SAAS,CACVd,aAAca,KAAK/B,MAAMkB,eAG9Ba,KAAK/B,MAAMmB,oBAAsBA,GAChCY,KAAKC,SAAS,CACVb,kBAAmBY,KAAK/B,MAAMmB,oBAGtCc,SAASC,iBAAiB,QAASH,KAAKH,e,6CAKxCK,SAASE,oBAAoB,QAASJ,KAAKH,e,kCAGnCQ,GAEJL,KAAKM,KAAKC,SAASF,EAAEG,SAAWH,EAAEG,OAAO3B,UAAU4B,SAAS,2BAA6BJ,EAAEG,OAAO3B,UAAU4B,SAAS,0BAGzHT,KAAK/B,MAAMe,e,+BAIN,aACmDgB,KAAKF,MAAtDC,EADF,EACEA,aAAcZ,EADhB,EACgBA,aAAcC,EAD9B,EAC8BA,kBAC7BsB,EAAapB,EAAG,YAAa,sBAG7BqB,EAAuB,CACzB,YACA,oBACA,sBACA,uBACA,cACFC,OAAQC,SAAUC,KAAM,KAEpBC,EAAmB,CACrB,aACFH,OAAQC,SAAUC,KAAM,KAE1B,OACI,oBAACpB,EAAD,KACI,2BAAKb,UAAU,oBACX,2BACIA,UAAU,cACVmC,IAAK,SAAAV,GAAS,EAAKA,KAAOA,IAE1B,2BAAKzB,UAAU,iBACX,2BAAKA,UAAU,gBACX,8BAAK6B,GACL,8BACI7B,UAAWkC,EACXE,QAASjB,KAAK/B,MAAMe,YACpB,yBAAGH,UAAU,kBAAb,WAGR,2BAAKA,UAAU,cACX,oBAACe,EAAD,CACIsB,YAAc5B,EAAI,eAAgB,sBAClCrC,MAAQ8C,EACRnB,SAAW,SAAC3B,GAAD,OAAW,EAAKgD,SAAU,CAAEF,aAAc9C,OAEzD,oBAAC0C,EAAD,CACIhB,MAAQW,EAAG,QAAS,sBACpBrC,MAAQmC,EACRP,UAAU,0BACVsC,QAAU,CACN,CAAExC,MAAOW,EAAG,SAAU,sBAAuBrC,MAAO,IACpD,CAAE0B,MAAOW,EAAG,WAAY,sBAAuBrC,MAAO,YACtD,CAAE0B,MAAOW,EAAG,UAAW,sBAAuBrC,MAAO,SACrD,CAAE0B,MAAOW,EAAG,WAAY,sBAAuBrC,MAAO,YACtD,CAAE0B,MAAOW,EAAG,QAAS,sBAAuBrC,MAAO,UAEvD2B,SAAW,SAAE3B,GACT,EAAKgD,SAAS,CACVb,kBAAmBnC,OAI/B,2BAAK4B,UAAU,6CAA6CuC,MAAQ,CAACC,UAAW,IAAKC,UAAW,OAAQC,UAAW,WAE9G7E,OAAO8E,KAAKC,YAAYC,SAAZ,UACRd,QAAO,SAACe,GAAD,OAAUA,EAAKC,QAAQ7B,EAAa8B,OAAOC,MAAM,KAAKhB,KAAK,OAAS,KAC3EiB,KAAK,SAACJ,EAAMK,GAET,IAAMC,EAAY,CACa,iBACL,KAAtB7C,GAAA,IAAgCA,GAClCwB,OAAQC,SAAUC,KAAK,IAEzB,OACI,2BAAKjC,UAAU,kBAAkBtB,IAAMyE,GAC/B,4BACIf,QAAU,WACN,EAAKhB,SAAS,CACVd,aAAcwC,KAGtB9C,UAAY8C,IAASxC,GAAgB,SACrC+C,MAAQP,GAER,yBAAG9C,UAAYoD,GAAaN,UAO5D,2BAAK9C,UAAU,gBACX,8BACIsD,SAA2B,KAAjBhD,EACVN,UAAW8B,EACXM,QAAS,WACL,EAAKhD,MAAMgB,aAAcE,GACzB,EAAKlB,MAAMiB,kBAAkBE,GAC7B,EAAKnB,MAAMe,eAEbM,EAAG,QAAS,gC,GAvItBG,G,UAiJbJ,G,gBCrJf,IAAI+C,EAAQ,EAAQ,GAChBC,EAAqB,YACrBC,EAAqC,4BAoGzC,IAAIC,EAA6BH,EAAMI,QAAQV,MAAM,KAAK,IAAM,GAEhE/F,EAAOD,QAAU,CACfyG,2BAA4BA,EAC5BE,UAhGF,SAAmBC,GACjB,GAAsB,iBAAXA,EACT,MAAM,IAAIC,UAAU,mCAItB,OAAIL,EAAmCM,KAAKF,GACnCA,EAIFA,EACJG,cACAC,QAAQT,GAAoB,SAAUU,EAAGC,GACxC,OAAOA,EAAUC,kBAmFrBC,aAxEF,SAAsBC,EAAKC,GACzB,IAAKD,GAAsB,iBAARA,EACjB,MAAM,IAAIR,UAAU,oCAGtB,IAAIpF,EACAN,EACAoG,EAAwC,mBAAbD,EAC3BE,EAAY,GACZC,EAAS,GAEb,IAAKhG,KAAO4F,EACVlG,EAAQkG,EAAI5F,GAER8F,IACFC,EAAYF,EAAS7F,EAAKN,KACY,IAArBqG,EAAUE,OACzBD,EAAOD,EAAU,IAAMA,EAAU,GAKhB,iBAAVrG,IACTsG,EAAOtG,GAASM,GAIpB,OAAOgG,GA8CPE,kBAlCF,SAA2BC,EAASzF,GAClC,IAA8B,IAA1ByF,EAAQ9B,QAAQ,KAClB,OAAO3D,GAA6B,iBAAbA,EAAM0F,GAG/B,OAAQD,GAKN,IAAK,iBACL,IAAK,gBACL,IAAK,YACL,IAAK,gBACL,IAAK,gBACL,IAAK,mBACL,IAAK,iBACL,IAAK,gBACH,OAAO,EACT,QACE,OAAO,M,6BC3FX3H,EAAOD,QAAU,EAAQ,K,gBCC3B,IAJA,IAGI4H,EAHAE,EAA2B,EAAQ,IAAeA,yBAElDC,EAA2B,GAEtB7H,EAAI,EAAG8H,EAAMF,EAAyBJ,OAAQxH,EAAI8H,EAAK9H,IAC9D0H,EAAUE,EAAyB5H,GACnC6H,EAAyBH,EAAQb,eAAiBa,EAmBpD,SAASK,EAAiBC,GAIxB,IAHA,IACIC,EADAV,EAAS,GAGJvH,EAAI,EAAG8H,EAAME,EAAWR,OAAQxH,EAAI8H,EAAK9H,IAEhDuH,GADAU,EAAYD,EAAWhI,IACNO,MAAQ0H,EAAUhH,MAErC,OAAOsG,EAUT,SAASW,EAAcR,GAErB,IAAIS,EA9BN,SAAiCT,GAC/B,OAAOG,EAAyBH,GA6BLU,CAD3BV,EAAUA,EAAQb,eAElB,OAAIsB,GAGGT,EA0GT3H,EAAOD,QAAU,CACfiI,iBAAkBA,EAClBM,UAjGF,SAASA,EAAUC,EAAOC,EAAWC,GACnCD,EAAYA,GAAa,KAQzB,IANA,IACIjE,EACAmE,EACAC,EAHAnB,EAAS,GAMJvH,EAAI,EAAG8H,EAAMQ,EAAMd,OAAQxH,EAAI8H,EAAK9H,IAAK,CA4BhD,OA3BAsE,EAAOgE,EAAMtI,GAEb0I,EAAU,CACRC,KAAM,KACNC,KAAMrB,EAAOvH,EAAI,IAAM,KACvB6I,OAAQN,IAIVE,EAAWlB,EAAOvH,EAAI,MAEpByI,EAASE,KAAOD,GAKO,MAArBpE,EAAKwE,SAAS,KAChBJ,EAAQnI,KAAO2H,EAAc5D,EAAKwE,UAElCJ,EAAQK,QAAU,GACdzE,EAAK0D,YAAc1D,EAAK0D,WAAWR,SACrCkB,EAAQK,QAAUhB,EAAiBzD,EAAK0D,cAMpC1D,EAAK0E,UAEX,KAAK,EACkB,WAAjBN,EAAQnI,MAAsC,UAAjBmI,EAAQnI,KACvCmI,EAAQO,KAAOP,EAAQnI,KAEvBmI,EAAQO,KAAO,MAGjBP,EAAQQ,SAAWb,EAAU/D,EAAK6E,WAAYT,GAC9C,MAGF,KAAK,EACHA,EAAQO,KAAO,OACfP,EAAQU,KAAO9E,EAAK+E,UACpB,MAEF,KAAK,EACHX,EAAQO,KAAO,UACfP,EAAQU,KAAO9E,EAAK+E,UAIxB9B,EAAO+B,KAAKZ,GAkBd,OAfIF,IACFjB,EAAOgC,QAAQ,CACbhJ,KAAMiI,EAAUgB,UAAU,EAAGhB,EAAU5C,QAAQ,MAAMiB,cACrDuC,KAAMZ,EACNS,KAAM,YACNN,KAAMpB,EAAO,GAAKA,EAAO,GAAK,KAC9BqB,KAAM,KACNC,OAAQN,IAGNhB,EAAO,KACTA,EAAO,GAAGqB,KAAOrB,EAAO,KAIrBA,GAmBPkC,KAVF,SAAcjD,GACZ,OAAIA,EACKtC,SAASwF,eAAiBlD,EAE5B,2BAA2BI,KAAK+C,UAAUC,c,woBCxJ3CtG,EAAOpB,GAAGqB,KAAVD,G,EACwBpB,GAAGsB,Q,KAA3BC,U,EAAWC,SACiDxB,GAAGC,YAA/D0H,E,EAAAA,WAAYlG,E,EAAAA,cAA+BmG,G,EAAhBC,e,EAAgBD,c,EACVE,OAAZC,G,EAArBC,O,EAAQC,Y,EAAaF,SAS7B,SAASG,EAAgBC,GACrB,IAAMC,EAAiCD,EAAUtE,KAAI,SAAEwE,GACnD,UACIrB,SAAU,GACVL,OAAQ,MACL0B,MAILC,EAAgBP,EAASK,EAAgC,UAC/D,GAAKE,EAAcC,MAAQD,EAAcC,KAAKjD,OAC1C,OAAO8C,EAeX,OAbyB,SAAnBI,EAAqBC,GACvB,OAAOA,EAAM5E,KAAK,SAAEwE,GAChB,IAAMrB,EAAWsB,EAAeD,EAAKK,IACrC,YACOL,EADP,CAEIrB,SACIA,GAAYA,EAAS1B,OACfkD,EAAkBxB,GAClB,QAKfwB,CAAkBF,EAAe,IAAS,IAuBrD,SAASK,EAAT,GAO2B,IANClI,EAMD,EANCA,MACAmI,EAKD,EALCA,cACAC,EAID,EAJCA,eACAC,EAGD,EAHCA,mBACApI,EAED,EAFCA,SACGX,E,uHACJ,+EACjBgJ,EAAYb,EAAeW,GACjC,OACI,oBAAClB,EAAD,EACQ,CAAClH,QAAOmI,gBAAelI,YAD/B,CAEIsI,KAAMD,EACNE,WAAYH,GACR/I,IAMhB,IAEMmJ,OAAmE,IAArC3F,YAAY4F,qBAAuC5F,YAAY4F,qBAAuB,CAAE,Q,UAE5H,YAa6B,IAZCN,EAYD,EAZCA,eACAC,EAWD,EAXCA,mBACAM,EAUD,EAVCA,cACAC,EASD,EATCA,MACAC,EAQD,EARCA,QACAC,EAOD,EAPCA,SAOD,IANCC,gBAMD,MAhBH,IAgBG,MALCC,gBAKD,MAjBH,EAiBG,EAJCC,EAID,EAJCA,iBACAC,EAGD,EAHCA,sBACAC,EAED,EAFCA,cACAC,EACD,EADCA,gBAEtBC,EAAc,CACF,CACIrJ,MAAOW,EAAG,4BAA6B,sBACvCrC,MAAO,aAEX,CACI0B,MAAOW,EAAG,4BAA6B,sBACvCrC,MAAO,YAEX,CAEI0B,MAAOW,EAAG,QAAS,sBACnBrC,MAAO,aAEX,CAEI0B,MAAOW,EAAG,QAAS,sBACnBrC,MAAO,cAEX,CACI0B,MAAOW,EAAG,SAAU,sBAAwB,IAAMA,EAAG,QAAS,sBAC9DrC,MAAO,cAEX,CACI0B,MAAOW,EAAG,SAAU,sBAAwB,IAAMA,EAAG,QAAS,sBAC9DrC,MAAO,eAEX,CACI0B,MAAOW,EAAG,6BAA8B,sBACxCrC,MAAO,iBAEX,CACI0B,MAAOW,EAAG,6BAA8B,sBACxCrC,MAAO,gBAEX,CACI0B,MAAOW,EAAG,qBAAsB,sBAChCrC,MAAO,WAEX,CACI0B,MAAOW,EAAG,oBAAqB,sBAC/BrC,MAAO,WAyC3B,MApCkB,SAAbwK,GAAoC,SAAbA,IACxBO,EAAcjF,EAAEkF,MAAMD,EAAa,CACvB,CACIrJ,MAAOW,EAAG,YAAa,sBACvBrC,MAAO,eAMT,SAAbwK,IACDO,EAAcjF,EAAEkF,MAAMD,EAAa,CACvB,CACIrJ,MAAOW,EAAG,6BAA8B,sBACxCrC,MAAO,sBAEX,CACI0B,MAAOW,EAAG,6BAA8B,sBACxCrC,MAAO,6BAMiB,IAAjCwE,YAAYyG,kBAChBC,SAAS1G,YAAYyG,mBACrBd,EAAqB3G,SAAUgH,KAElCO,EAAcjF,EAAEkF,MAAMD,EAAa,CACvB,CACIrJ,MAAOW,EAAG,eAAgB,sBAC1BrC,MAAO,uBAKpB,CACH6K,GAAiBC,GACb,oBAACpI,EAAD,CACIpC,IAAI,8BACJoB,MAAOW,EAAG,WAAY,sBACtBrC,MAAUuK,EAAV,IAAqBD,EACrBpG,QAAU6G,EACVpJ,SAAU,SAAC3B,GAAU,MACcA,EAAM6E,MAAM,KAD1B,SACVsG,EADU,KACEC,EADF,KAEbA,IAAad,GACbO,EAAcO,GAEdD,IAAeZ,GACfO,EAAgBK,MAKhCrB,GAAkBa,GACd,oBAACf,EAAD,CACItJ,IAAI,iCACJwJ,eAAgBA,EAChBpI,MAAOW,EAAG,WAAY,sBACtBwH,cAAexH,EAAG,MAAO,sBACzB0H,mBAAoBA,EACpBpI,SAAUgJ,IAGlBC,GACI,oBAAC/B,EAAD,CACIvI,IAAI,+BACJoB,MAAOW,EAAG,kBAAmB,sBAC7BrC,MAAOqK,EACP1I,SAAUiJ,EACVS,IAAKX,EACLY,IAAKb,EACLc,UAAA,M,EAOPC,aAtLT,YAMyB,IALC9J,EAKD,EALCA,MACAmI,EAID,EAJCA,cACA4B,EAGD,EAHCA,WACAC,EAED,EAFCA,iBACA/J,EACD,EADCA,SAEhBqI,EAAYb,EAAesC,GACjC,OACI,oBAAC7C,EAAD,EACQ,CAAClH,QAAOmI,gBAAelI,YAD/B,CAEIsI,KAAMD,EACNE,WAAYwB,O,y7BC/CRC,mBAAT,SAA4B3K,GAAO,MACF4K,GAAU,GADR,SAC/BC,EAD+B,KACnBC,EADmB,KAEhCC,EAAc,WAChBD,GAAiBD,IAIjBG,EAMAhL,EANAgL,YACAC,EAKAjL,EALAiL,UACAC,EAIAlL,EAJAkL,KACAC,EAGAnL,EAHAmL,aACAC,EAEApL,EAFAoL,YACAC,EACArL,EADAqL,cAGJ,OACI,oBAAC5J,EAAD,KACI,2BAAKb,UAAU,6BACX,iCACMqK,GAEN,+BACI,oBAACK,EAAD,CACIC,QAAA,EACA7H,KAAK,WACLV,QAAU+H,GAEV,oBAACS,EAAD,CAASC,KAAOpK,EAAI,cAAe,uBAC/B,gCACM6J,EAAOQ,OAAQR,GAAOS,OAAQ,wBAA2BX,KAIrEE,GACV,oBAACI,EAAD,CACC5H,KAAK,SACU9C,UAAU,gCACzBoC,QAAU,kBAAMoI,SAKfP,GACE,oBAACe,EAAD,CACIhL,UAAU,4BACViL,QAAUf,EAAcvL,KAAM,MAAM,GACpCuM,QAAS,GAET,6BAAOlL,UAAU,mCACXqK,EACF,oBAACK,EAAD,CACX5H,KAAK,SACU9C,UAAU,gCACzBoC,QAAU+H,KAGH,oBAACgB,EAAD,CACIC,YAAcd,EACdvK,SAAWwK,EACXc,UAAW,EACXC,cAAgBb,O,EASxBc,eAAT,SAAwBnM,GAC3B,IAAMoM,EAAU,CACZ,CAAEC,KAAM,EAAG3L,MAAO4L,EAAI,IAAK,sBAAuB,uBAClD,CAAED,KAAM,EAAG3L,MAAOW,EAAI,IAAK,uBAC3B,CAAEgL,KAAM,EAAG3L,MAAO4L,EAAI,IAAK,uBAAwB,uBACnD,CAAED,KAAM,EAAG3L,MAAOW,EAAI,IAAK,uBAC3B,CAAEgL,KAAM,EAAG3L,MAAO4L,EAAI,IAAK,wBAAyB,uBACpD,CAAED,KAAM,EAAG3L,MAAOW,EAAI,IAAK,uBAC3B,CAAEgL,KAAM,EAAG3L,MAAO4L,EAAI,IAAK,wBAAyB,wBAIpD5L,EAGAV,EAHAU,MACA6L,EAEAvM,EAFAuM,KACAC,EACAxM,EADAwM,aAd8B,EAkBQ5B,EAAU2B,GAlBlB,SAkB1BE,EAlB0B,KAkBZC,EAlBY,KA6BlC,SAASC,EAAeN,GACpB,OAAOI,EAAaG,MAAM,SAAAC,GAAA,OAAMA,IAAOR,KAwC3C,OACI,oBAAC5K,EAAD,KACI,2BAAKb,UAAU,0BACX,iCACMF,GAEN,2BAAKE,UAAU,yBACTwL,EAAQtI,KAAK,SAAAgJ,GAAA,OACX,oBAACC,EAAD,CACIrM,MAAQoM,EAAIpM,MACZsM,QAAUL,EAAeG,EAAIT,MAC7B1L,SAAW,kBAvCnC,SAAsB0L,GAGlB,IAGIY,SACJ,GAJmBN,EAAeN,GAM9BY,EAAcR,EAAa9J,QAAQ,SAAAkK,GAAA,OAAMA,IAAOR,SAC7C,CAEH,IAAMa,EAAUd,EAAQe,MAAM,SAAAN,GAAA,OAAMA,EAAGR,OAASA,KAChDY,cAAmBR,GAAnB,CAAiCS,EAAQb,OAI7C,IAAMe,EAAaA,GAAbA,SAAkB,IAAIC,IAAKJ,KAGjCP,EAAiBU,GAGZZ,GACDA,EAAcS,GAemBK,CAAaR,EAAIT,gB,EA+O9CkB,eAAT,SAAwBvN,GAAO,IAC1BU,EAAkDV,EAAlDU,MAAO8M,EAA2CxN,EAA3CwN,YAAaC,EAA8BzN,EAA9ByN,aAAcC,EAAgB1N,EAAhB0N,YAE1C,OACI,oBAACC,EAAD,CACIjN,MAAQA,EACR8M,YAAcA,EACdC,aAAeA,EACfC,YAAcA,K,EAKVE,mBAAT,SAA4B5N,GAAO,IAC9BU,EAA2BV,EAA3BU,MAAOmN,EAAoB7N,EAApB6N,gBAEf,OACI,oBAACpM,EAAD,KACMqM,EAAc,wBACZ,oBAACrM,EAAD,KACI,2BAAK0B,MAAO,CAAE4K,UAAW,GAAIC,aAAc,KACvC,2BAAK7K,MAAO,CAAE6K,aAAc,IACtBtN,EACF,4BAAMyC,MAAO,CAAE8K,MAAO,QAASC,YAAa,IACxC,oBAACC,EAAD,CAAMzK,KAAK,SACX,yBAAG0K,KAAK,wCACJC,MAAM,mBACN9L,OAAO,UACLlB,EAAI,iBAAkB,yBAIpC,oBAACK,EAAD,CACI1C,MAAQ6O,EACR3K,QAAU,CAAE,CACJxC,MAAOmN,EACP7O,MAAO6O,IAGf3J,UAAW,MAIvBlE,KAvbhB,I,EAAA,O,kKAEqHC,GAAGC,WAAhHoO,E,EAAAA,YAAahD,E,EAAAA,OAAQS,E,EAAAA,eAA6BgB,G,EAAbpL,Y,EAAaoL,iBAAiBnB,E,EAAAA,QAASJ,E,EAAAA,QAAS9J,E,EAAAA,cAAeyM,E,EAAAA,K,EAClElO,GAAGsB,QAArCC,E,EAAAA,UAAWC,E,EAAAA,SAAUmJ,E,EAAAA,S,EACV3K,GAAGqB,KAAdD,E,EAAAA,GAAIiL,E,EAAAA,GACJwB,EAAiB7N,GAAGsO,MAApBT,a,IAiKFH,E,YAEF,WAAY3N,I,4FAAO,e,iKAAA,wDACTA,IADS,OAEf,EAAK6B,MAAQ,CACT4L,aAAc,KACdD,YAAa,EAAKxN,MAAMwN,aAAe,KACvCgB,MAAO,KACPC,QAAS,KACTC,SAAU,KACVC,QAAQ,GARG,E,sXAYE,MAC6B5M,KAAKF,MAA3C4L,EADS,EACTA,aAAcD,EADL,EACKA,YAAamB,EADlB,EACkBA,OAE/B5M,KAAK/B,MAAMyN,eAAiBA,GAC5B1L,KAAKC,SAAU,CACXyL,aAAc1L,KAAK/B,MAAMyN,eAI7B1L,KAAK/B,MAAMwN,cAAgBA,GAC3BzL,KAAKC,SAAU,CACXwL,YAAazL,KAAK/B,MAAMwN,cAK5BA,GAAeA,EAAYhL,SAAS,MAAQmM,GAC5C5M,KAAKC,SAAU,CACXwM,MAAYhB,EAAY3J,MAAM,KAAK,GACnC4K,QAAYjB,EAAY3J,MAAM,KAAK,GACnC6K,SAAYxE,SAAUsD,EAAY3J,MAAM,KAAK,IAAO,GAAK,KAAO,KAChE8K,QAAY,M,yCAKLC,EAAWC,GAAW,MACC9M,KAAK/B,MADN,KAC7ByN,aAD6B,EACfD,YACezL,KAAKF,OAAlC2M,EAF6B,EAE7BA,MAAOC,EAFsB,EAEtBA,QAASC,EAFa,EAEbA,SACTI,EAA4DD,EAAnEL,MAA2BO,EAAwCF,EAAjDJ,QAAgCO,EAAiBH,EAA3BH,SAEhD,GAAIF,IAAUM,GAAaL,IAAYM,GAAeL,IAAaM,EAAe,CAG9E,IAAMR,IAAWC,EACb,OAIAD,IAAWC,GACX1M,KAAKC,SAAU,CACXyM,QAAS,OAKbA,IAAaD,GACbzM,KAAKC,SAAU,CACXwM,MAAO,OASf,IAAMS,EAAiBlN,KAAKmN,WACJC,UAAYC,SAAU,CAClBC,KAAMnF,SAAUsE,GAChBc,SAAUZ,KAHhC,IAKmBD,EALnB,MAQN1M,KAAK/B,MAAMyN,aAAcwB,M,iCAarBjQ,GACR,IAAIuQ,MAAOvQ,GAAX,CAIA,IAAMwQ,EAAMtF,SAAUlL,GAEtB,OAAOwQ,EAAM,EAAIA,EAAV,IAAoBA,K,+BAGtB,aAC2DzN,KAAKF,MAAlC2M,GAD9B,EACGf,aADH,EACiBD,YADjB,EAC8BgB,OAAOC,EADrC,EACqCA,QAASC,EAD9C,EAC8CA,SA8CnD,OACI,oBAACjN,EAAD,KACI,2BAAKb,UAAU,yBACX,iCACMmB,KAAK/B,MAAMU,OAEjB,2BAAKE,UAAU,+BACX,6BACIoG,KAAK,OACLhI,MACIwP,EACMzM,KAAKmN,WACHC,UAAYM,SAAUvF,SAAUsE,IAAUa,MAC1C,GAEZ1O,SA1DM,SAAA+O,GACtB,IAAM1Q,EAAQ2Q,KAAKrF,IAAK,EAAGqF,KAAKtF,IAAK,GAAIuF,OAAQF,EAAMnN,OAAOvD,SAC9D,EAAKgD,SAAU,CACXwM,MAAO,EAAKU,WAAYlQ,MAwDZ6Q,UAnDO,SAAAH,GACvB,IAAM1Q,EAAQ4Q,OAAQF,EAAMnN,OAAOvD,OACjB,YAAd0Q,EAAMpQ,KAAqBN,EAAQ,GACnC,EAAKgD,SAAU,CACXwM,MAAO,EAAKU,WAAYlQ,EAAQ,KAEd,cAAd0Q,EAAMpQ,KAAuBN,EAAQ,GAC7C,EAAKgD,SAAU,CACXwM,MAAO,EAAKU,WAAYlQ,EAAQ,MA4CxBiE,YAAY,OAEhB,qCACA,6BACI+D,KAAK,OACLhI,MACIyP,GAAoB,GAExB9N,SA9CQ,SAAA+O,GACxB,IAAM1Q,EAAQ2Q,KAAKrF,IAAK,EAAGqF,KAAKtF,IAAK,GAAIuF,OAAQF,EAAMnN,OAAOvD,SAC9D,EAAKgD,SAAU,CACXyM,QAAS,EAAKS,WAAYlQ,MA4Cd6Q,UAvCS,SAAAH,GACzB,IAAM1Q,EAAQ4Q,OAAQF,EAAMnN,OAAOvD,OACjB,YAAd0Q,EAAMpQ,KAAqBN,EAAQ,GACnC,EAAKgD,SAAU,CACXyM,QAAS,EAAKS,WAAYlQ,EAAQ,KAEhB,cAAd0Q,EAAMpQ,KAAuBN,EAAQ,GAC7C,EAAKgD,SAAU,CACXyM,QAAS,EAAKS,WAAYlQ,EAAQ,MAgC1BiE,YAAY,QAGpB,oBAACqL,EAAD,CAAa1N,UAAU,0BACnB,oBAAC0K,EAAD,CACIwE,QACiB,OAAbpB,GAAkC,OAAbA,EAAoB,UAAY,YAEzD1L,QAAU,WACN,EAAKhB,SAAU,CACX0M,SAAU,QAGlBxK,UAAWsK,IAASC,GAElBpN,EAAI,KAAM,uBAEhB,oBAACiK,EAAD,CACIwE,QACiB,OAAbpB,EAAoB,UAAY,YAEpC1L,QAAU,WACN,EAAKhB,SAAU,CACX0M,SAAU,QAGlBxK,UAAWsK,IAASC,GAElBpN,EAAI,KAAM,wBAGlBmN,GAASC,GACnB,oBAACnD,EAAD,CACgB1K,UAAU,4BACzB8C,KAAK,SACUV,QACI,WACI,EAAKhD,MAAM0N,cACX,EAAK1L,SAAU,CACXwM,MAAO,KACPC,QAAS,KACTC,SAAU,gB,GAzNvBlN,G,UAoOZmM,G,6BCxYf7P,EAAOD,QAAU,CAQb4R,SAAU,SAAkBJ,GACxB,IAAIC,EAAWD,EAAO,GAAK,KAAO,KAClC,MAAO,CACHA,MAAQA,EAAO,IAAM,GAAK,EAC1BC,SAAUA,EACVZ,SAAUY,IAalBF,SAAU,SAAkBW,GAExB,OAAqB,QADNA,EAAKT,UAAYS,EAAKrB,UACT,EAAI,IAAOqB,EAAKV,KAAO,M,8ECtBvBW,EAAvBA,qBAAuB,SAAU9M,GAC1C,OAAOA,EAAQY,KAAK,SAAEmM,GAAF,OAAYA,EAAKhM,UAaViM,EAAlBA,gBAAkB,SAAUC,EAAOjN,GAC5C,IAAIkN,EAAc,GAclB,OAZiB,OAAZlN,IACDkN,EAAcD,EAAMrM,KAAK,SAAEuM,GACvB,IAAIC,EAAcpN,EAAQiK,MAAM,SAAE8C,GAC9B,OAAOA,EAAK5D,OAASgE,KAEzB,YAAqBE,IAAhBD,GAA+BA,EAG7BA,EAAYrM,MAFRoM,MAMZD,GAYmBI,EAAjBA,eAAiB,SAAUL,EAAOjN,GAC3C,IAAIuN,EAAc,GAalB,OAXAN,EAAMrM,KACF,SAAE4M,GACE,IAAMC,EAAgBzN,EAAQiK,MAAM,SAAE8C,GAClC,OAAOA,EAAKhM,QAAUyM,UAEHH,IAAlBI,GACDF,EAAYpJ,KAAMsJ,EAActE,SAKrCoE,I,w4BC/DX,SAAYG,EAAQC,EAAUC,EAAWC,EAAeC,GACpDD,EAAgB9Q,GAAGK,aAAeL,GAAGM,OAD8B,IAE3Dc,EAAOuP,EAAPvP,GACAG,EAAwBsP,EAAxBtP,UAAWC,EAAaqP,EAAbrP,SACXwP,EAAmCJ,EAAnCI,kBAAmBC,EAAgBL,EAAhBK,YAJwC,EAKMH,EAAjEI,EAL2D,EAK3DA,kBAAmBC,EALwC,EAKxCA,SAAUC,EAL8B,EAK9BA,mBAAoBC,EALU,EAKVA,YACjDzJ,EAAwEmJ,EAAxEnJ,aAAc0J,EAA0DP,EAA1DO,UAAWnR,EAA+C4Q,EAA/C5Q,YAAcsB,EAAiCsP,EAAjCtP,cAAe8P,EAAkBR,EAAlBQ,cAGxDC,EAAe,CACjBC,KACI,oBAACjQ,EAAD,KACI,4BAAMkQ,KAAK,OAAOtT,EAAE,oBACpB,4BAAMA,EAAE,0CAGhBuT,WACI,oBAACnQ,EAAD,KACI,4BAAMkQ,KAAK,OAAOtT,EAAE,oBACpB,4BAAMA,EAAE,6GAGhBwT,kBACI,oBAACpQ,EAAD,KACI,4BAAMkQ,KAAK,OAAOtT,EAAE,oBACpB,4BAAMA,EAAE,4KAGhByT,QACI,oBAACrQ,EAAD,KACI,4BAAMkQ,KAAK,OAAOtT,EAAE,oBACpB,4BAAMA,EAAE,4GACR,+BAAS0T,OAAO,yEAGxBC,OACI,oBAACvQ,EAAD,KACI,4BAAMkQ,KAAK,OAAOtT,EAAE,oBACpB,4BAAMA,EAAE,gIAGhB4T,UACI,oBAACxQ,EAAD,KACI,4BAAMkQ,KAAK,OAAOtT,EAAE,oBACpB,4BAAMA,EAAE,mLAGhB6T,UACI,oBAACzQ,EAAD,KACI,4BAAM0Q,QAAQ,OAAOR,KAAK,OAAOtT,EAAE,0BACnC,4BAAMA,EAAE,8DAKd+T,EAvD6D,YAwD/D,aAAc,0EACAC,YADA,OAEV,EAAKxQ,MAAQ,CACTyQ,iBAAkB,MAHZ,EAxDiD,O,yTAAA,sDA+D1C,MACqBvQ,KAAK/B,MAAnC+F,EADS,EACTA,WAAYwM,EADH,EACGA,cACdC,EAAqBC,mBAAmB,oBAGnB,IAAvB1M,EAAW2M,UACuB,iBAA9B,IAAOF,EAAP,cAAOA,KAA0D,OAAvBA,GAC1C/T,OAAO8E,KAAKiP,GAAoB1O,KAAI,SAACkC,GACI,kBAA1BD,EAAWC,GAClBD,EAAWC,KAAewM,EAAmBxM,GAE7CD,EAAWC,GAAawM,EAAmBxM,MAMvDuM,EAAe,CAAEG,SAAS,OAhF6B,+BAoFtD,MACiC3Q,KAAK/B,MAAnC+F,EADH,EACGA,WAAYwM,EADf,EACeA,cAEhBI,EAaA5M,EAbA4M,OACAC,EAYA7M,EAZA6M,cACAC,EAWA9M,EAXA8M,gBACAC,EAUA/M,EAVA+M,WACAC,EASAhN,EATAgN,gBACAC,EAQAjN,EARAiN,YACAC,EAOAlN,EAPAkN,cACAC,EAMAnN,EANAmN,YACAC,EAKApN,EALAoN,YACAC,EAIArN,EAJAqN,YACAC,EAGAtN,EAHAsN,aACArF,EAEAjI,EAFAiI,aACAsF,EACAvN,EADAuN,aAGJ,OACI,oBAAC7R,EAAD,KACI,oBAAC0P,EAAD,KACI,oBAACI,EAAD,CAAWtN,MAAQ5C,EAAI,SAAU,uBAC7B,yBAAG8B,MAAQ,CAAEoQ,MAAO,UAAWC,UAAW,WACpCnS,4UAGkE,wBAG5E,oBAACkQ,EAAD,CAAWtN,MAAQ5C,EAAI,qBAAsB,uBACzC,oBAACwG,EAAD,CACInH,MAAQW,EAAI,iBAAkB,sBAC9BrC,MAAQgP,EACRyF,KAAOpS,EAAI,2FAA4F,sBACvGgJ,IAAM,EACNC,IAAM,GACN3J,SAAW,SAAE3B,GAAF,OAAauT,EAAe,CAAEvE,aAAchP,QAG/D,oBAACuS,EAAD,CAAWtN,MAAQ5C,EAAI,kBAAmB,uBACtC,oBAACjB,EAAD,CAAaM,MAAQW,EAAI,oBAAqB,uBAC1C,2BAAKT,UAAU,4BACVnC,OAAO8E,KAAMkO,GAAe3N,KAAK,SAAExE,EAAKyE,GAAP,OAC9B,2BAAKnD,UAAU,kBAAkBtB,IAAMyE,GAC/B,4BAAMnD,UAAYtB,IAAQwT,EAAa,SAAW,GAC5C9P,QAAU,kBAAMuP,EAAe,CAAEO,WAAYxT,MAC/C,2BAAKoU,MAAM,6BAA6BC,MAAM,KAAKC,OAAO,KAAKC,QAAQ,aACjEpC,EAAanS,WAO3C,oBAAC+R,EAAD,CACIpN,MAAQ5C,EAAI,iBAAkB,sBAC9ByS,aAAc,EACdC,cAAgB,CACZ,CACIrT,MAAOW,EAAI,mBAAoB,sBAC/BrC,MAAO4T,EACPjS,SAAU,SAAE3B,GAAF,OAAauT,EAAe,CAAEK,mBAAyBrC,IAAVvR,EAAsB,OAASA,MAE1F,CACI0B,MAAOW,EAAI,aAAc,sBACzBrC,MAAO6T,EACPlS,SAAU,SAAE3B,GAAF,OAAauT,EAAe,CAAEM,qBAA2BtC,IAAVvR,EAAsB,OAASA,MAE5F,CACI0B,MAAOW,EAAI,aAAc,sBACzBrC,MAAO+T,EACPpS,SAAU,SAAE3B,GAAF,OAAauT,EAAe,CAAEQ,qBAA2BxC,IAAVvR,EAAsB,OAASA,UAKxG,oBAACqS,EAAD,CACIpN,MAAQ5C,EAAI,sBAAuB,sBACnCyS,aAAc,EACdC,cAAgB,CACZ,CACIrT,MAAOW,EAAI,mBAAoB,sBAC/BrC,MAAOgU,EACPrS,SAAU,SAAE3B,GAAF,OAAauT,EAAe,CAAES,YAAahU,MAEzD,CACI0B,MAAOW,EAAI,aAAc,sBACzBrC,MAAOiU,EACPtS,SAAU,SAAE3B,GAAF,OAAauT,EAAe,CAAEU,cAAejU,SAInE,oBAACuS,EAAD,CAAWtN,MAAQ5C,EAAI,kBAAmB,sBAAyByS,aAAc,GAC7E,oBAACpS,EAAD,CACIhB,MAAQW,EAAI,eAAgB,sBAC5BrC,MAAQkU,EACRhQ,QAAU,CACN,CAAExC,MAAOW,EAAI,QAAS,sBAAwBrC,MAAO,SACrD,CAAE0B,MAAOW,EAAI,SAAU,sBAAwBrC,MAAO,UACtD,CAAE0B,MAAOW,EAAI,SAAU,sBAAwBrC,MAAO,WAE1D2B,SAAW,SAAE3B,GAAF,OAAauT,EAAe,CAAEW,YAAalU,OAE1D,oBAACqS,EAAD,CACIpN,MAAQ5C,EAAI,iBAAkB,sBAC9ByS,aAAc,EACdC,cAAgB,CACZ,CACIrT,MAAOW,EAAI,eAAgB,sBAC3BrC,MAAOoU,EACPzS,SAAU,SAAE3B,GAAF,OAAauT,EAAe,CAAEa,YAAapU,SAIjE,oBAAC6I,EAAD,CACInH,MAAQW,EAAI,eAAgB,sBAC5BrC,MAAQmU,EACR9I,IAAM,EACNC,IAAM,GACN3J,SAAW,SAAE3B,GAAF,OAAauT,EAAe,CAAEY,YAAanU,OAE1D,oBAAC6I,EAAD,CACInH,MAAQW,EAAI,gBAAiB,sBAC7BrC,MAAQqU,EACRhJ,IAAM,EACNC,IAAM,IACN3J,SAAW,SAAE3B,GAAF,OAAauT,EAAe,CAAEc,aAAcrU,QAG/D,oBAACuS,EAAD,CAAWtN,MAAQ5C,EAAI,mBAAoB,sBAAyByS,aAAe,GAC/E,oBAACtC,EAAD,CACI9Q,MAAQW,EAAI,oBAAqB,sBACjCoS,KAAOpS,EAAI,4FAA6F,sBACxG2L,QAAUsG,EACV3S,SAAW,kBAAM4R,EAAe,CAAEe,cAAeA,SAI7D,2BAAK1S,UAAU,yBACX,2BAAKA,UAAU,yBACVuC,MAAQ,CACJ6Q,gBAAiBpB,EACjBW,MAAOV,EACPK,YAAaA,EACbC,YAAaA,EAAc,KAC3BC,YAAaA,EACbC,aAAcA,EAAe,OAGlC,4BAAMzS,UAAU,+BACZ,2BAAK+Q,KAAOoB,EAAkBW,MAAM,6BAA6BC,MAAM,KAAKC,OAAO,KAAKC,QAAQ,aAC1FpC,EAAaqB,KAGvB,oBAAC1B,EAAD,CACI3L,QAAQ,KACRzG,MAAQ2T,EACRhS,SAAW,SAAE3B,GAAF,OAAauT,EAAe,CAAEI,OAAQ3T,KACjDiV,gBAAkB,kBAAM,MACxBrT,UAAU,+BACVqC,YAAc5B,EAAI,gBAAiB,yBAG3C,2BAAKT,UAAU,uBACVuC,MAAQ,CACJ6Q,gBAAiBhB,EACjBO,MAAON,EACPC,YAAaA,EACbC,YAAaA,EAAc,KAC3BC,YAAaA,EACbC,aAAcA,EAAe,OAGlC,oBAAC/B,EAAD,aAjQ2C,GAuDxC9P,GAkNrB0S,EACF,2BAAKR,MAAM,6BAA6BC,MAAM,KAAKC,OAAO,KAAKC,QAAQ,aACnE,4BAAMlC,KAAK,OAAOtT,EAAE,oBACpB,4BAAM8V,EAAE,IAAIC,EAAE,KAAKT,MAAM,KAAKC,OAAO,MACrC,4BAAMvV,EAAE,6CACR,4BAAM8V,EAAE,IAAIC,EAAE,IAAIT,MAAM,KAAKC,OAAO,OAItCS,EAAiB,CACnB1B,OAAQ,CACJ3L,KAAM,SACNsN,QAAS,eAEb1B,cAAe,CACX5L,KAAM,SACNsN,QAAS,QAEbzB,gBAAiB,CACb7L,KAAM,SACNsN,QAAS,QAEbxB,WAAY,CACR9L,KAAM,SACNsN,QAAS,UAEbvB,gBAAiB,CACb/L,KAAM,SACNsN,QAAS,QAEbtB,YAAa,CACThM,KAAM,UAEViM,cAAe,CACXjM,KAAM,UAEVkM,YAAa,CACTlM,KAAM,SACNsN,QAAS,SAEbnB,YAAa,CACTnM,KAAM,SACNsN,QAAS,GAEblB,YAAa,CACTpM,KAAM,UAEVqM,aAAc,CACVrM,KAAM,SACNsN,QAAS,GAEbtG,aAAc,CACVhH,KAAM,SACNsN,QAAS,IAEbhB,aAAc,CACVtM,KAAM,UACNsN,SAAS,GAEb5B,QAAS,CACL1L,KAAM,UACNsN,SAAS,IAIjBrD,EAAmB,kBAAmB,CAClChN,MAAO5C,EAAI,wCAAyC,sBACpDkT,YAAalT,EAAI,uDAAwD,sBACzEqC,KAAM,CACF8Q,IAAKN,EACLO,WAAmC,oBAAhBjR,YAA8BA,YAAY+P,WAAQhD,GAEzEmE,SAAU,iBACVC,SAAU,CAAEtT,EAAI,YAAa,sBAAwBA,EAAI,OAAQ,sBAAwBA,EAAI,MAAO,uBACpG0E,WAAYsO,EACZO,SAAU,CACNC,UAAU,GAEdC,KAAM1C,EACN2C,KAAM,YAA4B,IAAfhP,EAAe,EAAfA,WAEX4M,EAaA5M,EAbA4M,OACAC,EAYA7M,EAZA6M,cACAC,EAWA9M,EAXA8M,gBACAC,EAUA/M,EAVA+M,WACAC,EASAhN,EATAgN,gBACAC,EAQAjN,EARAiN,YACAC,EAOAlN,EAPAkN,cACAC,EAMAnN,EANAmN,YACAC,EAKApN,EALAoN,YACAC,EAIArN,EAJAqN,YACAC,EAGAtN,EAHAsN,aACArF,EAEAjI,EAFAiI,aACAsF,EACAvN,EADAuN,aAGJ,OACI,2BAAK1S,UAAU,wBAAwBuC,MAAQ,CAAE6K,gBAAiBgH,iBAAiB1B,QAA8B/C,GAC7G,2BAAK3P,UAAU,yBACVuC,MAAQ,CACJ6Q,gBAAiBpB,EACjBW,MAAOV,EACPK,YAAaA,EACbC,YAAaA,EAAc,KAC3BC,YAAaA,EACbC,aAAcA,EAAe,OAGlC,4BAAMzS,UAAU,+BACZ,2BAAK+Q,KAAOoB,EAAkBW,MAAM,6BAA6BC,MAAM,KAAKC,OAAO,KAAKC,QAAQ,aAC1FpC,EAAaqB,KAGvB,0BAAIlS,UAAU,gCAAiC+R,IAEnD,2BAAK/R,UAAU,uBACVuC,MAAQ,CACJ6Q,gBAAiBhB,EACjBO,MAAON,EACPC,YAAaA,EACbC,YAAaA,EAAc,KAC3BC,YAAaA,EACbC,aAAcA,EAAe,OAGlC,oBAAC/B,EAAY2D,QAAb,SAKhBC,WAAY,CACR,CACInP,gBACOsO,EADP,CAEIlB,YAAa,CACTnM,KAAM,SACNsN,QAAS,KAGjBS,KAAM,YAA4B,IAAfhP,EAAe,EAAfA,WAEX4M,EAaA5M,EAbA4M,OACAC,EAYA7M,EAZA6M,cACAC,EAWA9M,EAXA8M,gBACAC,EAUA/M,EAVA+M,WACAC,EASAhN,EATAgN,gBACAC,EAQAjN,EARAiN,YACAC,EAOAlN,EAPAkN,cACAC,EAMAnN,EANAmN,YACAC,EAKApN,EALAoN,YACAC,EAIArN,EAJAqN,YACAC,EAGAtN,EAHAsN,aACArF,EAEAjI,EAFAiI,aACAsF,EACAvN,EADAuN,aAGJ,OACI,2BAAK1S,UAAU,wBAAwBuC,MAAQ,CAAE6K,gBAAiBgH,iBAAiB1B,QAA8B/C,GAC7G,2BAAK3P,UAAU,yBACVuC,MAAQ,CACJ6Q,gBAAiBpB,EACjBW,MAAOV,EACPK,YAAaA,EACbC,YAAaA,EAAc,KAC3BC,YAAaA,EACbC,aAAcA,EAAe,OAGlC,4BAAMzS,UAAU,+BACZ,2BAAK+Q,KAAOoB,EAAkBW,MAAM,6BAA6BC,MAAM,KAAKC,OAAO,KAAKC,QAAQ,aAC1FpC,EAAaqB,KAGvB,0BAAIlS,UAAU,gCAAiC+R,IAEnD,2BAAK/R,UAAU,uBACVuC,MAAQ,CACJ6Q,gBAAiBhB,EACjBO,MAAON,EACPC,YAAaA,EACbC,YAAaA,EAAc,KAC3BC,YAAaA,EACbC,aAAcA,EAAe,OAGlC,oBAAC/B,EAAY2D,QAAb,SAKhBL,SAAU,CACNC,UAAU,KAItBM,WAAY,CACRC,GAAI,CACA,CACIpO,KAAM,QACNqO,OAAQ,CAAE,oBACVC,UAAW,SAAEvP,EAAYwP,GACrB,IAAMC,EAAYtE,EACd,uBADc,KAETnL,EAFS,CAEG2M,SAAS,IAC1B6C,GAGJ,OAAOrE,EACH,mBADG,KAEEnL,EAFF,CAEc4M,YAAQpC,EAAWkF,YAAY,IAChD,CAAED,UA3d9B,CAkeIvV,GAAGqB,KAAMrB,GAAGoV,OAAQpV,GAAGsB,QAAStB,GAAGK,YAAaL,GAAGC,a,whBCjevD,SAAY0Q,EAAQC,EAAUC,EAAWC,EAAeC,EAAc0E,EAAW3N,GAC7EgJ,EAAgB9Q,GAAGK,aAAeL,GAAGM,OADiD,IAE9Ec,EAAOuP,EAAPvP,GACAI,EAAwBqP,EAAxBrP,SAAUD,EAAcsP,EAAdtP,UACVyP,EAAsBJ,EAAtBI,kBAJ8E,EAKbF,EAAjEK,EAL8E,EAK9EA,SAAUE,EALoE,EAKpEA,YAAaH,EALuD,EAKvDA,kBAAmBE,EALoC,EAKpCA,mBAC1CxJ,EAAwEmJ,EAAxEnJ,aAAc0J,EAA0DP,EAA1DO,UAAWnR,EAA+C4Q,EAA/C5Q,YAAcsB,EAAiCsP,EAAjCtP,cAAe8P,EAAkBR,EAAlBQ,cANwB,EAOrDvR,GAAGkH,KAA5BwO,EAP8E,EAO9EA,aAAcC,EAPgE,EAOhEA,OACdC,EAAYH,EAAZG,QACAC,EAAU/N,EAAV+N,MAEFrE,EAAe,CACjBC,KACI,oBAACjQ,EAAD,KACI,4BAAMkQ,KAAK,OAAOtT,EAAE,oBACpB,4BAAMA,EAAE,0CAGhBuT,WACI,oBAACnQ,EAAD,KACI,4BAAMkQ,KAAK,OAAOtT,EAAE,oBACpB,4BAAMA,EAAE,6GAGhBwT,kBACI,oBAACpQ,EAAD,KACI,4BAAMkQ,KAAK,OAAOtT,EAAE,oBACpB,4BAAMA,EAAE,4KAGhByT,QACI,oBAACrQ,EAAD,KACI,4BAAMkQ,KAAK,OAAOtT,EAAE,oBACpB,4BAAMA,EAAE,4GACR,+BAAS0T,OAAO,yEAGxBC,OACI,oBAACvQ,EAAD,KACI,4BAAMkQ,KAAK,OAAOtT,EAAE,oBACpB,4BAAMA,EAAE,gIAGhB4T,UACI,oBAACxQ,EAAD,KACI,4BAAMkQ,KAAK,OAAOtT,EAAE,oBACpB,4BAAMA,EAAE,mLAGhB6T,UACI,oBAACzQ,EAAD,KACI,4BAAM0Q,QAAQ,OAAOR,KAAK,OAAOtT,EAAE,0BACnC,4BAAMA,EAAE,8DAKd0X,EAzDgF,YA0DlF,aAAc,2EACA1D,YA3DoE,O,yTAAA,sDA8D7D,MAC+BtQ,KAAK/B,MAA7C+F,EADS,EACTA,WAAYwM,EADH,EACGA,cAAeyD,EADlB,EACkBA,SAGnC,IAA2B,IAAvBjQ,EAAW2M,QAAkB,OACyBzS,GAAGK,YAAwCsV,EAAQ,qBAAlCA,EAAQ,eAAvEK,EADqB,EACrBA,qBAEFC,GAAiBC,EAHM,EACCA,oBACVF,EAAsBD,IAGnB,OAAnBE,IAAyD,IAA9BA,EAAeT,aAC1ChX,OAAO8E,KAAK2S,GAAgBpS,KAAI,SAACkC,GAC7BD,EAAWC,GAAakQ,EAAelQ,MAI3CuM,EAAe,CAAEG,SAAS,QA7E4C,+BAkFzE,aACiC3Q,KAAK/B,MAAnC+F,EADH,EACGA,WAAYwM,EADf,EACeA,cAEhBI,EAcA5M,EAdA4M,OACAC,EAaA7M,EAbA6M,cACAC,EAYA9M,EAZA8M,gBACAC,EAWA/M,EAXA+M,WACAC,EAUAhN,EAVAgN,gBACAC,EASAjN,EATAiN,YACAC,EAQAlN,EARAkN,cACAC,EAOAnN,EAPAmN,YACAC,EAMApN,EANAoN,YACAC,EAKArN,EALAqN,YACAC,EAIAtN,EAJAsN,aACArF,EAGAjI,EAHAiI,aACAsF,EAEAvN,EAFAuN,aACA8C,EACArQ,EADAqQ,UAYJ,OACI,oBAAC3U,EAAD,KACI,oBAAC0P,EAAD,KACI,oBAACI,EAAD,CAAWtN,MAAQ5C,EAAI,qBAAsB,uBACzC,oBAACwG,EAAD,CACInH,MAAQW,EAAI,iBAAkB,sBAC9BrC,MAAQgP,EACRyF,KAAOpS,EAAI,2DAA4D,sBACvEgJ,IAAM,EACNC,IAAM,GACN3J,SAAW,SAAE3B,GAAF,OAAa,EAAKgB,MAAMqW,qBAAsB,CAAErI,aAAchP,OAE7E,oBAACwS,EAAD,CACI9Q,MAAQW,EAAI,oBAAqB,sBACjCoS,KAAOpS,EAAI,4CAA6C,sBACxD2L,QAAUsG,EACV3S,SAAW,kBAAM,EAAKX,MAAMqW,qBAAqB,CAAE/C,cAAeA,OAEtE,oBAAC5R,EAAD,CACIhB,MAAQW,EAAI,aAAc,sBAC1BrC,MAAQoX,EACRlT,QA9BH,CACb,CAAExC,MAAO,KAAM1B,MAAO,MACtB,CAAE0B,MAAO,KAAM1B,MAAO,MACtB,CAAE0B,MAAO,KAAM1B,MAAO,MACtB,CAAE0B,MAAO,KAAM1B,MAAO,MACtB,CAAE0B,MAAO,KAAM1B,MAAO,MACtB,CAAE0B,MAAO,KAAM1B,MAAO,OAyBN2B,SAAW,SAAE3B,GAAF,OAAauT,EAAe,CAAE6D,UAAWpX,QAG5D,oBAACuS,EAAD,CAAWtN,MAAQ5C,EAAI,kBAAmB,uBACtC,oBAACjB,EAAD,CAAaM,MAAQW,EAAI,oBAAqB,uBAC1C,2BAAKT,UAAU,4BACVnC,OAAO8E,KAAMkO,GAAe3N,KAAK,SAAExE,EAAKyE,GAAP,OAC9B,2BAAKnD,UAAU,kBAAkBtB,IAAMyE,GAC/B,4BAAMnD,UAAYtB,IAAQwT,EAAa,SAAW,GAC5C9P,QAAU,kBAAM,EAAKhD,MAAMqW,qBAAsB,CAAEvD,WAAYxT,MACjE,2BAAKoU,MAAM,6BAA6BC,MAAM,KAAKC,OAAO,KAAKC,QAAQ,aACjEpC,EAAanS,WAO3C,oBAAC+R,EAAD,CACIpN,MAAQ5C,EAAI,iBAAkB,sBAC9ByS,aAAc,EACdC,cAAgB,CACZ,CACIrT,MAAOW,EAAI,mBAAoB,sBAC/BrC,MAAO4T,EACPjS,SAAU,SAAE3B,GAAF,OAAa,EAAKgB,MAAMqW,qBAAsB,CAAEzD,mBAAyBrC,IAAVvR,EAAsB,OAASA,MAE5G,CACI0B,MAAOW,EAAI,aAAc,sBACzBrC,MAAO6T,EACPlS,SAAU,SAAE3B,GAAF,OAAa,EAAKgB,MAAMqW,qBAAsB,CAAExD,qBAA2BtC,IAAVvR,EAAsB,OAASA,MAE9G,CACI0B,MAAOW,EAAI,aAAc,sBACzBrC,MAAO+T,EACPpS,SAAU,SAAE3B,GAAF,OAAa,EAAKgB,MAAMqW,qBAAsB,CAAEtD,qBAA2BxC,IAAVvR,EAAsB,OAASA,UAK1H,oBAACqS,EAAD,CACIpN,MAAQ5C,EAAI,sBAAuB,sBACnCyS,aAAc,EACdC,cAAgB,CACZ,CACIrT,MAAOW,EAAI,mBAAoB,sBAC/BrC,MAAOgU,EACPrS,SAAU,SAAE3B,GAAF,OAAa,EAAKgB,MAAMqW,qBAAsB,CAAErD,YAAahU,MAE3E,CACI0B,MAAOW,EAAI,aAAc,sBACzBrC,MAAOiU,EACPtS,SAAU,SAAE3B,GAAF,OAAa,EAAKgB,MAAMqW,qBAAsB,CAAEpD,cAAejU,SAIrF,oBAACuS,EAAD,CAAWtN,MAAQ5C,EAAI,kBAAmB,sBAAyByS,aAAc,GAC7E,oBAACpS,EAAD,CACIhB,MAAQW,EAAI,eAAgB,sBAC5BrC,MAAQkU,EACRhQ,QAAU,CACN,CAAExC,MAAOW,EAAI,QAAS,sBAAwBrC,MAAO,SACrD,CAAE0B,MAAOW,EAAI,SAAU,sBAAwBrC,MAAO,UACtD,CAAE0B,MAAOW,EAAI,SAAU,sBAAwBrC,MAAO,WAE1D2B,SAAW,SAAE3B,GAAF,OAAa,EAAKgB,MAAMqW,qBAAsB,CAAEnD,YAAalU,OAE5E,oBAACqS,EAAD,CACIpN,MAAQ5C,EAAI,iBAAkB,sBAC9ByS,aAAc,EACdC,cAAgB,CACZ,CACIrT,MAAOW,EAAI,eAAgB,sBAC3BrC,MAAOoU,EACPzS,SAAU,SAAE3B,GAAF,OAAa,EAAKgB,MAAMqW,qBAAsB,CAAEjD,YAAapU,SAInF,oBAAC6I,EAAD,CACInH,MAAQW,EAAI,eAAgB,sBAC5BrC,MAAQmU,EACR9I,IAAM,EACNC,IAAM,GACN3J,SAAW,SAAE3B,GAAF,OAAa,EAAKgB,MAAMqW,qBAAsB,CAAElD,YAAanU,OAE5E,oBAAC6I,EAAD,CACInH,MAAQW,EAAI,gBAAiB,sBAC7BrC,MAAQqU,EACRhJ,IAAM,EACNC,IAAM,IACN3J,SAAW,SAAE3B,GAAF,OAAa,EAAKgB,MAAMqW,qBAAsB,CAAEhD,aAAcrU,SAIrF,2BAAK4B,UAAU,wBACX,2BAAKA,UAAU,yBACVuC,MAAQ,CACJ6Q,gBAAiBpB,EACjBW,MAAOV,EACPK,YAAaA,EACbC,YAAaA,EAAc,KAC3BC,YAAaA,EACbC,aAAcA,EAAe,OAGtC,4BAAMzS,UAAU,+BACZ,2BAAK+Q,KAAOoB,EAAkBW,MAAM,6BAA6BC,MAAM,KAAKC,OAAO,KAAKC,QAAQ,aAC1FpC,EAAaqB,KAGnB,oBAAC1B,EAAD,CACI3L,QAAU2Q,EACVpX,MAAQ2T,EACRhS,SAAW,SAAE3B,GAAF,OAAauT,EAAe,CAAEI,OAAQ3T,KACjDiV,gBAAkB,kBAAM,MACxBrT,UAAU,+BACVqC,YAAc5B,EAAI,gBAAiB,sBACnC8B,MAAQ,CAAEoQ,MAAO,WACjB+C,eAAiB,CAAE,YAAa,cAAe,aAAc,qBAAsB,sBAG3F,2BAAK1V,UAAU,uBACVuC,MAAQ,CACJ6Q,gBAAiBhB,EACjBO,MAAON,EACPC,YAAaA,EACbC,YAAaA,EAAc,KAC3BC,YAAaA,EACbC,aAAcA,EAAe,OAGlC,oBAAC/B,EAAD,aAvQ8D,GAyDtD9P,GAsN1B0S,EACF,2BAAKR,MAAM,6BAA6BC,MAAM,KAAKC,OAAO,KAAKC,QAAQ,aACnE,4BAAMlC,KAAK,OAAOtT,EAAE,oBACpB,4BAAM8V,EAAE,IAAIC,EAAE,KAAKT,MAAM,KAAKC,OAAO,MACrC,4BAAMvV,EAAE,6CACR,4BAAM8V,EAAE,IAAIC,EAAE,IAAIT,MAAM,KAAKC,OAAO,OAI5C3C,EAAmB,uBAAwB,CACvChN,MAAO5C,EAAI,gCAAiC,sBAC5CkT,YAAalT,EAAI,uDAAwD,sBACzEqC,KAAM,CACF8Q,IAAKN,EACLO,WAAmC,oBAAhBjR,YAA8BA,YAAY+P,WAAQhD,GAEzE3J,OAAQ,CAAE,oBACV8N,SAAU,iBACVC,SAAU,CAAEtT,EAAI,YAAa,sBAAwBA,EAAI,OAAQ,sBAAwBA,EAAI,MAAO,uBACpG0E,WAAY,CACR4M,OAAQ,CACJ3L,KAAM,SACNsN,QAASjT,EAAI,cAAe,uBAEhCuR,cAAe,CACX5L,KAAM,SACNsN,QAAS,QAEbzB,gBAAiB,CACb7L,KAAM,SACNsN,QAAS,QAEbxB,WAAY,CACR9L,KAAM,SACNsN,QAAS,UAEbvB,gBAAiB,CACb/L,KAAM,SACNsN,QAAS,QAEbtB,YAAa,CACThM,KAAM,UAEViM,cAAe,CACXjM,KAAM,UAEVkM,YAAa,CACTlM,KAAM,SACNsN,QAAS,SAEbnB,YAAa,CACTnM,KAAM,SACNsN,QAAS,GAEblB,YAAa,CACTpM,KAAM,UAEVqM,aAAc,CACVrM,KAAM,SACNsN,QAAS,GAEbtG,aAAc,CACVhH,KAAM,SACNsN,QAAS,IAEbhB,aAAc,CACVtM,KAAM,UACNsN,SAAS,GAEb8B,UAAW,CACPpP,KAAM,SACNsN,QAAS,MAEb5B,QAAS,CACL1L,KAAM,UACNsN,SAAS,GAEbiC,YAAa,CACTvP,KAAM,SACNsN,QAAS,KAGjBM,SAAU,CACN4B,QAAQ,GAEZ1B,KAAMe,EAAQ,CACVF,GAAc,SAAEc,EAAF,KAA0C,IAA5BT,EAA4B,EAA5BA,SAA4B,GAIhDJ,EAJgD,EAAdA,QAI1B,qBAFRK,EAFgD,EAEhDA,qBACAS,EAHgD,EAGhDA,oBAGAC,EACAF,EAAU,qBADVE,sBAEEC,EAASX,EAAsBD,GAC/Ba,EAAiBH,EAAqBE,GAC5C,MAAO,CACHP,qBADG,SACmBS,GAClBH,EAAuBC,EAAQE,GAC/BhB,EAAOe,EAAe,GAAGtB,YAAYhQ,QAAQ,SAAA/F,GACzCmX,EAAuBE,EAAe,GAAGtB,YAAa/V,GAAIwW,SAAUc,YAflFjB,CAsBJE,GACFhB,KAAM,YAA4B,IAAfhP,EAAe,EAAfA,WAEX4M,EAaA5M,EAbA4M,OACAC,EAYA7M,EAZA6M,cACAC,EAWA9M,EAXA8M,gBACAC,EAUA/M,EAVA+M,WACAC,EASAhN,EATAgN,gBACAC,EAQAjN,EARAiN,YACAC,EAOAlN,EAPAkN,cACAC,EAMAnN,EANAmN,YACAC,EAKApN,EALAoN,YACAC,EAIArN,EAJAqN,YACAC,EAGAtN,EAHAsN,aACArF,EAEAjI,EAFAiI,aACAoI,EACArQ,EADAqQ,UAGJ,OACI,2BAAKxV,UAAU,uBAAuBuC,MAAQ,CAAE6K,iBAC5C,2BAAKpN,UAAU,yBACVuC,MAAQ,CACJ6Q,gBAAiBpB,EACjBW,MAAOV,EACPK,YAAaA,EACbC,YAAaA,EAAc,KAC3BC,YAAaA,EACbC,aAAgBA,EAAeA,EAAe,UAAO9C,IAG1D,4BAAM3P,UAAU,+BACZ,2BAAK+Q,KAAOoB,EAAkBW,MAAM,6BAA6BC,MAAM,KAAKC,OAAO,KAAKC,QAAQ,aAC1FpC,EAAaqB,KAGvB,oBAAC1B,EAAS6D,QAAV,CACIxP,QAAU2Q,EACVxV,UAAU,+BACVuC,MAAQ,CAAEoQ,MAAO,WACjBvU,MAAQ2T,KAGhB,2BAAK/R,UAAU,uBACVuC,MAAQ,CACJ6Q,gBAAiBhB,EACjBO,MAAON,EACPC,YAAaA,EAAc,cAC3BC,YAAaA,EAAc,gBAC3BC,YAAaA,EAAc,cAC3B2D,UAAW,kBACX1D,aAAgBA,EAAeA,EAAe,qBAAkB9C,IAGrE,oBAACe,EAAY2D,QAAb,SAKhBC,WAAY,CACR,CACInP,WAAY,CACR4M,OAAQ,CACJ3L,KAAM,SACNsN,QAAS,eAEb1B,cAAe,CACX5L,KAAM,SACNsN,QAAS,QAEbzB,gBAAiB,CACb7L,KAAM,SACNsN,QAAS,QAEbxB,WAAY,CACR9L,KAAM,SACNsN,QAAS,UAEbvB,gBAAiB,CACb/L,KAAM,SACNsN,QAAS,QAEbtB,YAAa,CACThM,KAAM,UAEViM,cAAe,CACXjM,KAAM,UAEVkM,YAAa,CACTlM,KAAM,SACNsN,QAAS,SAEbnB,YAAa,CACTnM,KAAM,SACNsN,QAAS,GAEblB,YAAa,CACTpM,KAAM,UAEVqM,aAAc,CACVrM,KAAM,SACNsN,QAAS,GAEbtG,aAAc,CACVhH,KAAM,SACNsN,QAAS,IAEbhB,aAAc,CACVtM,KAAM,UACNsN,SAAS,GAEb5B,QAAS,CACL1L,KAAM,UACNsN,SAAS,GAEbiC,YAAa,CACTvP,KAAM,SACNsN,QAAS,KAGjBS,KAAM,YAA4B,IAAfhP,EAAe,EAAfA,WAEX4M,EAYA5M,EAZA4M,OACAC,EAWA7M,EAXA6M,cACAC,EAUA9M,EAVA8M,gBACAC,EASA/M,EATA+M,WACAC,EAQAhN,EARAgN,gBACAC,EAOAjN,EAPAiN,YACAC,EAMAlN,EANAkN,cACAC,EAKAnN,EALAmN,YACAC,EAIApN,EAJAoN,YACAC,EAGArN,EAHAqN,YACAC,EAEAtN,EAFAsN,aACArF,EACAjI,EADAiI,aAGJ,OACI,2BAAKpN,UAAU,uBAAuBuC,MAAQ,CAAE6K,iBAC5C,2BAAKpN,UAAU,yBACVuC,MAAQ,CACJ6Q,gBAAiBpB,EACjBW,MAAOV,EACPK,YAAaA,EACbC,YAAeA,EAAcA,EAAc,UAAO5C,EAClD6C,YAAaA,EACbC,aAAgBA,EAAeA,EAAe,UAAO9C,IAG1D,4BAAM3P,UAAU,+BACZ,2BAAK+Q,KAAOoB,EAAkBW,MAAM,6BAA6BC,MAAM,KAAKC,OAAO,KAAKC,QAAQ,aAC1FpC,EAAaqB,KAGvB,0BAAIlS,UAAU,+BAA+BuC,MAAQ,CAAEoQ,MAAO,YAAgBZ,IAElF,2BAAK/R,UAAU,uBACVuC,MAAQ,CACJ6Q,gBAAiBhB,EACjBO,MAAON,EACPC,YAAaA,EAAc,cAC3BC,YAAeA,EAAcA,EAAc,qBAAkB5C,EAC7D6C,YAAaA,EAAc,cAC3B2D,UAAW,kBACX1D,aAAgBA,EAAeA,EAAe,qBAAkB9C,IAGrE,oBAACe,EAAY2D,QAAb,SAKhBL,SAAU,CACN4B,QAAQ,IAGhB,CACIzQ,WAAY,CACR4M,OAAQ,CACJ3L,KAAM,SACNsN,QAAS,eAEb1B,cAAe,CACX5L,KAAM,SACNsN,QAAS,QAEbzB,gBAAiB,CACb7L,KAAM,SACNsN,QAAS,QAEbxB,WAAY,CACR9L,KAAM,SACNsN,QAAS,UAEbvB,gBAAiB,CACb/L,KAAM,SACNsN,QAAS,QAEbtB,YAAa,CACThM,KAAM,UAEViM,cAAe,CACXjM,KAAM,UAEVkM,YAAa,CACTlM,KAAM,SACNsN,QAAS,SAEbnB,YAAa,CACTnM,KAAM,SACNsN,QAAS,GAEblB,YAAa,CACTpM,KAAM,UAEVqM,aAAc,CACVrM,KAAM,SACNsN,QAAS,GAEbtG,aAAc,CACVhH,KAAM,SACNsN,QAAS,IAEbhB,aAAc,CACVtM,KAAM,UACNsN,SAAS,GAEb5B,QAAS,CACL1L,KAAM,UACNsN,SAAS,GAEbiC,YAAa,CACTvP,KAAM,SACNsN,QAAS,KAGjBS,KAAM,YAA4B,IAAfhP,EAAe,EAAfA,WAEX4M,EAYA5M,EAZA4M,OACAC,EAWA7M,EAXA6M,cACAC,EAUA9M,EAVA8M,gBACAC,EASA/M,EATA+M,WACAC,EAQAhN,EARAgN,gBACAC,EAOAjN,EAPAiN,YACAC,EAMAlN,EANAkN,cACAC,EAKAnN,EALAmN,YACAC,EAIApN,EAJAoN,YACAC,EAGArN,EAHAqN,YACAC,EAEAtN,EAFAsN,aACArF,EACAjI,EADAiI,aAGJ,OACI,2BAAKpN,UAAU,uBAAuBuC,MAAQ,CAAE6K,iBAC5C,2BAAKpN,UAAU,yBACVuC,MAAQ,CACJ6Q,gBAAiBpB,EACjBW,MAAOV,EACPK,YAAaA,EACbC,YAAeA,EAAcA,EAAc,UAAO5C,EAClD6C,YAAaA,EACbC,aAAgBA,EAAeA,EAAe,UAAO9C,IAGlE,4BAAM3P,UAAU,+BACZ,2BAAK+Q,KAAOoB,EAAkBW,MAAM,6BAA6BC,MAAM,KAAKC,OAAO,KAAKC,QAAQ,aAC1FpC,EAAaqB,KAGf,0BAAIlS,UAAU,+BAA+BuC,MAAQ,CAAEoQ,MAAO,YAAgBZ,IAElF,2BAAK/R,UAAU,uBACVuC,MAAQ,CACJ6Q,gBAAiBhB,EACjBO,MAAON,EACPC,YAAaA,EACbC,YAAeA,EAAcA,EAAc,UAAO5C,EAClD6C,YAAaA,EACbC,aAAgBA,EAAeA,EAAe,UAAO9C,IAG1D,oBAACe,EAAY2D,QAAb,aAjpBhC,CAypBIhV,GAAGqB,KAAMrB,GAAGoV,OAAQpV,GAAGsB,QAAStB,GAAGK,YAAaL,GAAGC,WAAYD,GAAG4V,QAAS9N,S,w4BC1pB/E,SAAY6I,EAAQC,EAAUC,EAAWC,EAAeC,EAAc0E,EAAW3N,GAC7EgJ,EAAgB9Q,GAAGK,aAAeL,GAAGM,OADiD,IAE9Ec,EAAOuP,EAAPvP,GACAG,EAAwBsP,EAAxBtP,UAAWC,EAAaqP,EAAbrP,SACXwP,EAAsBJ,EAAtBI,kBAJ8E,EAKRF,EAAtEI,EAL8E,EAK9EA,kBAAmB6F,EAL2D,EAK3DA,cAAe3F,EAL4C,EAK5CA,mBAAoBC,EALwB,EAKxBA,YACtDzJ,EAAqGmJ,EAArGnJ,aAAc0J,EAAuFP,EAAvFO,UAAWnR,EAA4E4Q,EAA5E5Q,YAAcsB,EAA8DsP,EAA9DtP,cAAe8P,EAA+CR,EAA/CQ,cAAeyF,EAAgCjG,EAAhCiG,aAAcC,EAAkBlG,EAAlBkG,cANL,EAO3CjX,GAAGkH,KAAtCwO,EAP8E,EAO9EA,aAAcC,EAPgE,EAOhEA,OAAQa,EAPwD,EAOxDA,SACtBZ,EAAYH,EAAZG,QACAC,EAAU/N,EAAV+N,MAEFrE,EAAe,CACjBC,KACI,oBAACjQ,EAAD,KACI,4BAAMkQ,KAAK,OAAOtT,EAAE,oBACpB,4BAAMA,EAAE,0CAGhBuT,WACI,oBAACnQ,EAAD,KACI,4BAAMkQ,KAAK,OAAOtT,EAAE,oBACpB,4BAAMA,EAAE,6GAGhBwT,kBACI,oBAACpQ,EAAD,KACI,4BAAMkQ,KAAK,OAAOtT,EAAE,oBACpB,4BAAMA,EAAE,4KAGhByT,QACI,oBAACrQ,EAAD,KACI,4BAAMkQ,KAAK,OAAOtT,EAAE,oBACpB,4BAAMA,EAAE,4GACR,+BAAS0T,OAAO,yEAGxBC,OACI,oBAACvQ,EAAD,KACI,4BAAMkQ,KAAK,OAAOtT,EAAE,oBACpB,4BAAMA,EAAE,gIAGhB4T,UACI,oBAACxQ,EAAD,KACI,4BAAMkQ,KAAK,OAAOtT,EAAE,oBACpB,4BAAMA,EAAE,mLAGhB6T,UACI,oBAACzQ,EAAD,KACI,4BAAM0Q,QAAQ,OAAOR,KAAK,OAAOtT,EAAE,0BACnC,4BAAMA,EAAE,8DAOd8Y,EA3DgF,YA4DlF,aAAc,0EACA9E,YADA,OAGV,EAAK+E,qBAAuB,EAAKA,qBAAqB7X,KAA1B,GAHlB,EA5DoE,O,yTAAA,sDAkE7D,MACqBwC,KAAK/B,MAAnC+F,EADS,EACTA,WAAYwM,EADH,EACGA,cACdC,EAAqBC,mBAAmB,qBAGnB,IAAvB1M,EAAW2M,UACuB,iBAA9B,IAAOF,EAAP,cAAOA,KAA0D,OAAvBA,GAC1C/T,OAAO8E,KAAKiP,GAAoB1O,KAAI,SAACkC,GACI,kBAA1BD,EAAWC,GAClBD,EAAWC,KAAewM,EAAmBxM,GAE7CD,EAAWC,GAAawM,EAAmBxM,MAMvDuM,EAAe,CAAEG,SAAS,OAnFgD,0CAuF9D,MACoB3Q,KAAK/B,MAAjCuS,EADQ,EACRA,cAAeyD,EADP,EACOA,SACvBzD,EAAc,CACVgE,YAAaP,EACbrN,GAAI,oBAAsBqN,IAE9BjU,KAAK/B,MAAMqX,0BAA2B,CAACd,YAAaP,MA7F0B,2CAgG7D,IACTA,EAAajU,KAAK/B,MAAlBgW,UACiB/V,GAAGK,YAA0CmW,EAAU,qBAAtCA,EAAU,gBAA5Ca,aAEYC,GADOtX,GAAGK,YAAwCsV,EAAQ,qBAAlCA,EAAQ,gBAA5C2B,eAC0BvB,GAElBzQ,SAtG8D,2CA4G5DuR,GAAQ,MACU/U,KAAK/B,MAAjCuS,EADkB,EAClBA,cAAeyD,EADG,EACHA,SACfW,GAA2B1W,GAAGK,YAA0CmW,EAAU,qBAAtCA,EAAU,gBAAtDE,sBAEFa,GAAcD,GADOtX,GAAGK,YAAwCsV,EAAQ,qBAAlCA,EAAQ,gBAA5C2B,eAC0BvB,GAElCzD,EAAeuE,GACfU,EAAYC,SAAS,SAAAC,GAAA,OAAgBf,EAAuBe,EAAcZ,QAnHI,yCAsH/D,MACkB/U,KAAK/B,MAA9B+F,EADO,EACPA,WAAYiQ,EADL,EACKA,SACZW,GAA2B1W,GAAGK,YAA0CmW,EAAU,qBAAtCA,EAAU,gBAAtDE,uBAEYY,GADOtX,GAAGK,YAAwCsV,EAAQ,qBAAlCA,EAAQ,gBAA5C2B,eAC0BvB,GAEtByB,SAAS,SAAAC,GAAA,OAAgBf,EAAuBe,EAAc3R,QA5HI,+BA+HzE,aACiChE,KAAK/B,MAAnC+F,EADH,EACGA,WAAYwM,EADf,EACeA,cAEhB5J,EAcA5C,EAdA4C,GACAiK,EAaA7M,EAbA6M,cACAC,EAYA9M,EAZA8M,gBACAC,EAWA/M,EAXA+M,WACAC,EAUAhN,EAVAgN,gBACAC,EASAjN,EATAiN,YACAC,EAQAlN,EARAkN,cACAC,EAOAnN,EAPAmN,YACAC,EAMApN,EANAoN,YACAC,EAKArN,EALAqN,YACAC,EAIAtN,EAJAsN,aACArF,EAGAjI,EAHAiI,aACAsF,EAEAvN,EAFAuN,aACAqE,EACA5R,EADA4R,UAGEC,EAAsB,CACxBjP,EACA,4BACFhG,OAAOC,SAASC,KAAK,KAEvB,OACI8U,EACI,2BAAKE,IAAKxW,EAAG,qBAAsB,sBAAuBsS,MAAM,OAAOa,IAhG9D,msJAkGb,oBAAC/S,EAAD,KACI,oBAACuV,EAAD,KACI,oBAACC,EAAD,KACI,oBAACC,EAAD,CACIxT,KAAK,SACLV,QAAU,kBAAM,EAAK8U,oBACrBpX,MAAOW,EAAG,UAAW,0BAIjC,oBAAC8P,EAAD,KACI,oBAACI,EAAD,CAAWtN,MAAQ5C,EAAI,qBAAsB,uBACzC,oBAACwG,EAAD,CACInH,MAAQW,EAAI,iBAAkB,sBAC9BrC,MAAQgP,EACRyF,KAAOpS,EAAI,2DAA4D,sBACvEgJ,IAAM,EACNC,IAAM,GACN3J,SAAW,SAAE3B,GAAF,OAAa,EAAKoY,qBAAsB,CAAEpJ,aAAchP,OAEvE,oBAACwS,EAAD,CACI9Q,MAAQW,EAAI,oBAAqB,sBACjCoS,KAAOpS,EAAI,4CAA6C,sBACxD2L,QAAUsG,EACV3S,SAAW,WACP4R,EAAe,CAAEe,cAAeA,IAChC,EAAKtT,MAAMqX,0BAA2B,CAAC/D,cAAeA,QAIlE,oBAAC/B,EAAD,CAAWtN,MAAQ5C,EAAI,kBAAmB,uBACtC,oBAACjB,EAAD,CAAaM,MAAQW,EAAI,oBAAqB,uBAC1C,2BAAKT,UAAU,4BACVnC,OAAO8E,KAAMkO,GAAe3N,KAAK,SAAExE,EAAKyE,GAAP,OAC9B,2BAAKnD,UAAU,kBAAkBtB,IAAMyE,GAC/B,4BAAMnD,UAAYtB,IAAQwT,EAAa,SAAW,GAC5C9P,QAAU,kBAAM,EAAKoU,qBAAsB,CAAEtE,WAAYxT,MAC3D,2BAAKoU,MAAM,6BAA6BC,MAAM,KAAKC,OAAO,KAAKC,QAAQ,aACjEpC,EAAanS,WAO3C,oBAAC+R,EAAD,CACIpN,MAAQ5C,EAAI,iBAAkB,sBAC9ByS,aAAc,EACdC,cAAgB,CACZ,CACIrT,MAAOW,EAAI,mBAAoB,sBAC/BrC,MAAO4T,EACPjS,SAAU,SAAE3B,GAAF,OAAa,EAAKoY,qBAAsB,CAAExE,mBAAyBrC,IAAVvR,EAAsB,OAASA,MAEtG,CACI0B,MAAOW,EAAI,aAAc,sBACzBrC,MAAO6T,EACPlS,SAAU,SAAE3B,GAAF,OAAa,EAAKoY,qBAAsB,CAAEvE,qBAA2BtC,IAAVvR,EAAsB,OAASA,MAExG,CACI0B,MAAOW,EAAI,aAAc,sBACzBrC,MAAO+T,EACPpS,SAAU,SAAE3B,GAAF,OAAa,EAAKoY,qBAAsB,CAAErE,qBAA2BxC,IAAVvR,EAAsB,OAASA,UAKpH,oBAACqS,EAAD,CACIpN,MAAQ5C,EAAI,sBAAuB,sBACnCyS,aAAc,EACdC,cAAgB,CACZ,CACIrT,MAAOW,EAAI,mBAAoB,sBAC/BrC,MAAOgU,EACPrS,SAAU,SAAE3B,GAAF,OAAa,EAAKoY,qBAAsB,CAAEpE,YAAahU,MAErE,CACI0B,MAAOW,EAAI,aAAc,sBACzBrC,MAAOiU,EACPtS,SAAU,SAAE3B,GAAF,OAAa,EAAKoY,qBAAsB,CAAEnE,cAAejU,SAI/E,oBAACuS,EAAD,CAAWtN,MAAQ5C,EAAI,kBAAmB,sBAAyByS,aAAc,GAC7E,oBAACpS,EAAD,CACIhB,MAAQW,EAAI,eAAgB,sBAC5BrC,MAAQkU,EACRhQ,QAAU,CACN,CAAExC,MAAOW,EAAI,QAAS,sBAAwBrC,MAAO,SACrD,CAAE0B,MAAOW,EAAI,SAAU,sBAAwBrC,MAAO,UACtD,CAAE0B,MAAOW,EAAI,SAAU,sBAAwBrC,MAAO,WAE1D2B,SAAW,SAAE3B,GAAF,OAAa,EAAKoY,qBAAsB,CAAElE,YAAalU,OAEtE,oBAACqS,EAAD,CACIpN,MAAQ5C,EAAI,iBAAkB,sBAC9ByS,aAAc,EACdC,cAAgB,CACZ,CACIrT,MAAOW,EAAI,eAAgB,sBAC3BrC,MAAOoU,EACPzS,SAAU,SAAE3B,GAAF,OAAa,EAAKoY,qBAAsB,CAAEhE,YAAapU,SAI7E,oBAAC6I,EAAD,CACInH,MAAQW,EAAI,eAAgB,sBAC5BrC,MAAQmU,EACR9I,IAAM,EACNC,IAAM,GACN3J,SAAW,SAAE3B,GAAF,OAAa,EAAKoY,qBAAsB,CAAEjE,YAAanU,OAEtE,oBAAC6I,EAAD,CACInH,MAAQW,EAAI,gBAAiB,sBAC7BrC,MAAQqU,EACRhJ,IAAM,EACNC,IAAM,IACN3J,SAAW,SAAE3B,GAAF,OAAa,EAAKoY,qBAAsB,CAAE/D,aAAcrU,SAI/E,2BAAK4B,UAAYgX,GACb,oBAACtG,EAAD,CACIyG,SAAW,CAAE,CAAC,yBACdC,cAAe,EACfC,cAAgB,CAAE,gCAxR4C,GA2DzDzW,GAqOvB0S,EACF,2BAAKR,MAAM,6BAA6BC,MAAM,KAAKC,OAAO,KAAKC,QAAQ,aACnE,4BAAMxV,EAAE,gBAAgBsT,KAAK,SAC7B,4BAAMtT,EAAE,6FAIV6Z,EAAa,CACfvP,GAAI,CACA3B,KAAM,UAEV4L,cAAe,CACX5L,KAAM,SACNsN,QAAS,QAEbzB,gBAAiB,CACb7L,KAAM,SACNsN,QAAS,QAEbxB,WAAY,CACR9L,KAAM,SACNsN,QAAS,UAEbvB,gBAAiB,CACb/L,KAAM,SACNsN,QAAS,QAEbtB,YAAa,CACThM,KAAM,UAEViM,cAAe,CACXjM,KAAM,UAEVkM,YAAa,CACTlM,KAAM,SACNsN,QAAS,SAEbnB,YAAa,CACTnM,KAAM,SACNsN,QAAS,GAEblB,YAAa,CACTpM,KAAM,UAEVqM,aAAc,CACVrM,KAAM,SACNsN,QAAS,GAEbtG,aAAc,CACVhH,KAAM,SACNsN,QAAS,IAEbhB,aAAc,CACVtM,KAAM,UACNsN,SAAS,GAEb5B,QAAS,CACL1L,KAAM,UACNsN,SAAS,GAEbmB,WAAY,CACRzO,KAAM,UACNsN,SAAS,GAEbqD,UAAW,CACP3Q,KAAM,UACNsN,SAAS,GAEbiC,YAAa,CACTvP,KAAM,SACNsN,QAAS,KAIjBrD,EAAmB,mBAAoB,CACnChN,MAAO5C,EAAI,2BAA4B,sBACvCkT,YAAalT,EAAI,uDAAwD,sBACzEqC,KAAM,CACF8Q,IAAKN,EACLO,WAAmC,oBAAhBjR,YAA8BA,YAAY+P,WAAQhD,GAEzEmE,SAAU,iBACVC,SAAU,CAAEtT,EAAI,YAAa,sBAAwBA,EAAI,qBAAsB,sBAAwBA,EAAI,OAAQ,sBAAwBA,EAAI,MAAO,uBACtJ0E,WAAYmS,EACZC,QAAS,CACLpS,WAAY,CACR4R,WAAW,IAGnB7C,KAAMe,EACFF,GAAc,SAACc,EAAD,KAAwC,IAA3BT,EAA2B,EAA3BA,SAEnBoC,GACAxC,EAH8C,EAAbA,QAGzB,qBADRwC,SAGAzB,EACAF,EAAU,qBADVE,sBAEE0B,EAAQD,EAAUpC,GACxB,MAAO,CACHqB,0BADG,SACwBP,GACvBhB,EAAOuC,EAAM9C,YAAYhQ,QAAQ,SAAA/F,GAC7BmX,EAAuB0B,EAAM9C,YAAa/V,GAAIwW,SAAUc,WAZtEjB,CAiBJsB,GACFpC,KAAM,YAA4B,IAAfhP,EAAe,EAAfA,WACPuN,EAAqBvN,EAArBuN,aAEFsE,EAAsB,CAFC7R,EAAP4C,GAIlB,2BACFhG,OAAOC,SAASC,KAAK,KAEvB,OACI,2BAAKjC,UAAYgX,EAAsB5C,iBAAiB1B,QAA8B/C,GAClF,oBAACe,EAAY2D,QAAb,QAIZC,WAAY,CACR,CACInP,WAAY,CACR6M,cAAe,CACX5L,KAAM,SACNsN,QAAS,QAEbzB,gBAAiB,CACb7L,KAAM,SACNsN,QAAS,QAEbxB,WAAY,CACR9L,KAAM,SACNsN,QAAS,UAEbvB,gBAAiB,CACb/L,KAAM,SACNsN,QAAS,QAEbtB,YAAa,CACThM,KAAM,UAEViM,cAAe,CACXjM,KAAM,UAEVkM,YAAa,CACTlM,KAAM,SACNsN,QAAS,SAEbnB,YAAa,CACTnM,KAAM,SACNsN,QAAS,GAEblB,YAAa,CACTpM,KAAM,UAEVqM,aAAc,CACVrM,KAAM,SACNsN,QAAS,GAEbtG,aAAc,CACVhH,KAAM,SACNsN,QAAS,IAEbhB,aAAc,CACVtM,KAAM,UACNsN,SAAS,GAEb5B,QAAS,CACL1L,KAAM,UACNsN,SAAS,GAEbmB,WAAY,CACRzO,KAAM,UACNsN,SAAS,GAEbqD,UAAW,CACP3Q,KAAM,UACNsN,SAAS,GAEbiC,YAAa,CACTvP,KAAM,SACNsN,QAAS,KAGjBS,KAAM,YAA4B,IACtBzB,EADsB,EAAfvN,WACPuN,aAER,OACI,2BAAK1S,UAAU,0BAA0BoU,iBAAiB1B,QAA8B/C,GACpF,oBAACe,EAAY2D,QAAb,SAKhB,CACIlP,gBACOmS,EADP,CAEI/E,YAAa,CACTnM,KAAM,SACNsN,QAAS,KAGjBS,KAAM,YAA4B,IACtBzB,EADsB,EAAfvN,WACPuN,aAER,OACI,2BAAK1S,UAAU,0BAA0BoU,iBAAiB1B,QAA8B/C,GACpF,oBAACe,EAAY2D,QAAb,SAKhB,CACIlP,gBACOmS,EADP,CAEI3B,YAAa,CACTvP,KAAM,SACNsN,QAAS,MAGjBS,KAAM,YAA4B,IACtBzB,EADsB,EAAfvN,WACPuN,aAER,OACI,2BAAK1S,UAAU,0BAA0BoU,iBAAiB1B,QAA8B/C,GACpF,oBAACe,EAAY2D,QAAb,YAngB5B,CA0gBIhV,GAAGqB,KAAMrB,GAAGoV,OAAQpV,GAAGsB,QAAStB,GAAGK,YAAaL,GAAGC,WAAYD,GAAG4V,QAAS9N,S,soBC1gB/E,OACA,O,kQAEA,SAAY6I,EAAQC,EAAUC,EAAWC,EAAeC,GACpDD,EAAgB9Q,GAAGK,aAAeL,GAAGM,OAD8B,IAE3Dc,EAAOuP,EAAPvP,GACAG,EAAwBsP,EAAxBtP,UAAWC,EAAaqP,EAAbrP,SACXwP,EAAmCJ,EAAnCI,kBAAmBC,EAAgBL,EAAhBK,YAJwC,EAKGH,EAA9DI,EAL2D,EAK3DA,kBAAmBC,EALwC,EAKxCA,SAAUC,EAL8B,EAK9BA,mBAAoBiH,EALU,EAKVA,SACjDlY,EAA+E4Q,EAA/E5Q,YAAayH,EAAkEmJ,EAAlEnJ,aAAc0J,EAAoDP,EAApDO,UAAWC,EAAyCR,EAAzCQ,cAAe9P,EAA0BsP,EAA1BtP,cAAe4J,EAAW0F,EAAX1F,OAGxEiN,EAAmB,GAMvB,SAASC,EAAmBzS,GAMxB,MALa,CACTA,EAAW0S,WAAa,aAAe,GACvC1S,EAAW2S,SAAW,WAAa,IACrC/V,OAAQC,SAAUC,KAAK,KAnBsC,IAwB7D8V,EAxB6D,YAyB/D,aAAc,0EACAtG,YADA,OAEV,EAAKxQ,MAAQ,CACT+W,WAAW,EACXC,aAAc,GACd3X,cAAc,EACd4X,kBAAmB,WACnB3X,mBAAmB,GAEvB,EAAK4J,YAAc,EAAKA,YAAYxL,KAAjB,GACnB,EAAKwZ,WAAa,EAAKA,WAAWxZ,KAAhB,GAClB,EAAKyZ,gBAAkB,EAAKA,gBAAgBzZ,KAArB,GAXb,EAzBiD,O,yTAAA,sDAuC1C,MACqBwC,KAAK/B,MAAnC+F,EADS,EACTA,WAAYwM,EADH,EACGA,cACdC,EAAqBC,mBAAmB,iBAGnB,IAAvB1M,EAAW2M,UACuB,iBAA9B,IAAOF,EAAP,cAAOA,KAA0D,OAAvBA,GAC1C/T,OAAO8E,KAAKiP,GAAoB1O,KAAI,SAACkC,GACI,kBAA1BD,EAAWC,GAClBD,EAAWC,KAAewM,EAAmBxM,GAE7CD,EAAWC,GAAawM,EAAmBxM,MAMvDuM,EAAe,CAAEG,SAAS,OAxD6B,0CA4D3C,MACgC3Q,KAAK/B,MAAjCuS,GADJ,EACRxM,WADQ,EACIwM,eACpBA,EAAe,CAAE5J,GAAI,YAFL,EACmBqN,WAIL,cAA1BxS,YAAYyV,WAAuD,MAA1BzV,YAAYyV,WACrD1G,EAAe,CACXkG,YAAY,EACZC,UAAU,MApEyC,2CAyE1C,MAC0D3W,KAAKF,MAAzEgX,EADU,EACVA,aAAc3X,EADJ,EACIA,aAAc4X,EADlB,EACkBA,kBAAmB3X,EADrC,EACqCA,kBADrC,EAEmBY,KAAK/B,MAAtBuS,GAFF,EAEVxM,WAFU,EAEEwM,eAChBrR,IAECa,KAAKC,SAAS,CACVd,cAAc,IAElBqR,EAAc,CACV7O,KAAMmV,EACNK,UAAWJ,KAIhB3X,IACCY,KAAKC,SAAS,CACVb,mBAAmB,IAEvBoR,EAAc,CACV2G,UAAWJ,OA5FwC,oCAiGjD,IACHF,EAAa7W,KAAKF,MAAlB+W,UAEP7W,KAAKC,SAAU,CACX4W,WAAYA,MArG2C,iCAyGpDO,GACPpX,KAAKC,SAAS,CACV6W,aAAcM,EACdjY,cAAc,MA5GyC,sCAgH/CkY,GACZrX,KAAKC,SAAS,CACV8W,kBAAmBM,EACnBjY,mBAAmB,MAnHoC,+BAuHtD,WACCkY,EAAmB,CACrB,CAAE3Y,MAAOW,EAAI,OAAQ,sBAAwBrC,MAAO,QACpD,CAAE0B,MAAOW,EAAI,QAAS,sBAAwBrC,MAAO,SACrD,CAAE0B,MAAOW,EAAI,SAAU,sBAAwBrC,MAAO,UACtD,CAAE0B,MAAOW,EAAI,SAAU,sBAAwBrC,MAAO,UACtD,CAAE0B,MAAOW,EAAI,SAAU,sBAAwBrC,MAAO,UACtD,CAAE0B,MAAOW,EAAI,SAAU,sBAAwBrC,MAAO,UACtD,CAAE0B,MAAOW,EAAI,QAAS,sBAAwBrC,MAAO,SACrD,CAAE0B,MAAOW,EAAI,QAAS,sBAAwBrC,MAAO,SACrD,CAAE0B,MAAOW,EAAI,SAAU,sBAAwBrC,MAAO,WAVrD,EAkBD+C,KAAK/B,MALL+F,EAbC,EAaDA,WACAwM,EAdC,EAcDA,cACA+G,EAfC,EAeDA,WACA1Y,EAhBC,EAgBDA,UAGGgY,GAnBF,EAiBD5C,SAEgBjU,KAAKF,MAAlB+W,WAEHjQ,EAOA5C,EAPA4C,GAAI4Q,EAOJxT,EAPIwT,MAAOC,EAOXzT,EAPWyT,IAAKC,EAOhB1T,EAPgB0T,cAAsBhO,GAOtC1F,EAP+B9B,MAO/B8B,EAPsC0F,MAAMiO,EAO5C3T,EAP4C2T,QAASC,EAOrD5T,EAPqD4T,UAAWC,EAOhE7T,EAPgE6T,SAChE7L,EAMAhI,EANAgI,UAAWG,EAMXnI,EANWmI,YAAaF,EAMxBjI,EANwBiI,aAAc6L,EAMtC9T,EANsC8T,WACtCC,EAKA/T,EALA+T,WAAYC,EAKZhU,EALYgU,aAAcC,EAK1BjU,EAL0BiU,cAAeC,EAKzClU,EALyCkU,YACzC9G,EAIApN,EAJAoN,YAAaC,EAIbrN,EAJaqN,YAAaC,EAI1BtN,EAJ0BsN,aAAcH,EAIxCnN,EAJwCmN,YACxCgH,EAGAnU,EAHAmU,eAAgBC,EAGhBpU,EAHgBoU,aAAcC,EAG9BrU,EAH8BqU,iBAAkBC,EAGhDtU,EAHgDsU,aAAcC,EAG9DvU,EAH8DuU,aAAcC,EAG5ExU,EAH4EwU,gBAAiBC,EAG7FzU,EAH6FyU,kBAC7FC,EAEA1U,EAFA0U,aAAcC,EAEd3U,EAFc2U,gBAAiBC,EAE/B5U,EAF+B4U,YAAajX,GAE5CqC,EAF4CrC,KAAMkX,GAElD7U,EAFkD6U,SAAUC,GAE5D9U,EAF4D8U,UAAW3B,GAEvEnT,EAFuEmT,UAAW4B,GAElF/U,EAFkF+U,aAAcC,GAEhGhV,EAFgGgV,YAC1EpD,IACtB5R,EADA0S,WACA1S,EADY2S,SACZ3S,EADsB4R,WAGpBqD,GAAwBpa,EAAU+C,QAAQ,aAAe,EACzDsX,GAAwBra,EAAU+C,QAAQ,cAAgB,EAC1DuX,GAAwBta,EAAU+C,QAAQ,qBAAuB,EACjEwX,GAAqB,CACvB,CACIza,MAAOW,EAAI,mBAAoB,sBAC/BrC,MAAOmb,EACPxZ,SAAU,SAAE3B,GAAF,OAAauT,EAAe,CAAE4H,kBAAwB5J,IAAVvR,EAAsB,UAAYA,MAE5F,CACI0B,MAAOW,EAAI,aAAc,sBACzBrC,MAAOkb,EACPvZ,SAAU,SAAE3B,GAAF,OAAauT,EAAe,CAAE2H,oBAA0B3J,IAAVvR,EAAsB,OAASA,MAE3F,CACI0B,MAAOW,EAAI,eAAgB,sBAC3BrC,MAAOob,EACPzZ,SAAU,SAAE3B,GAAF,OAAauT,EAAe,CAAE6H,sBAA4B7J,IAAVvR,EAAsB,OAASA,OAI7Fkc,IACAC,GAAmBC,QACnB7C,EAhK2B,stDAiKpB0C,IACPE,GAAmBC,QACnB7C,EApKqB,8nHAsKrBA,EADOyC,GAnKa,64DAHA,iuGA4KxB,IAAMhX,GAAY,CACd,iBACc,KAAdkV,IAAA,IAAwBA,IAC1BvW,OAAQC,SAAUC,KAAK,IAEzB,OACI8U,GACI,2BAAKE,IAAKxW,EAAG,kBAAmB,sBAAuBsS,MAAM,OAAOa,IAAK+D,IAEzE,oBAAC9W,EAAD,KACA,4BAAMb,UAAcA,EAAd,SAAgC2Y,EAChCpW,MAAQ,CAAEkY,QAAS,iBAErB,4BAAMza,UAAA,8BAA0C+H,EAAO2S,IAAM9C,EAAmBzS,IAC1E4U,GACE,yBAAG/Z,UAAWoD,IACTN,IAGT,oBAAC0N,EAAD,CACI3L,QAAQ,OACRxC,YAAc5B,EAAI,YAAa,sBAC/BrC,MAAQyM,EACR9K,SAAW,SAAE3B,GAAF,OAAauT,EAAe,CAAE9G,KAAMzM,KAC/CsX,eAAiB,CAAE,YAAa,cAAe,sBAC/CgD,WAAaA,EACbiC,wBAAA,MAIZ,qCACS5S,EADT,0CAEiBiR,EAFjB,uCAGaD,EAHb,2DAIwBD,EAJxB,iDAKc3L,EALd,MAK6BG,EAL7B,MAK8CF,EAL9C,MAKgE6L,EALhE,yCAMeC,EANf,MAM+BC,EAN/B,MAMiDC,EANjD,MAMoEC,EANpE,8CAOoB9G,EAPpB,yDAQoBC,EARpB,wDASqBC,EATrB,yDAUoBH,EAVpB,KAUmD,SAAhBA,GAA0B,cAV7D,kDAYGvK,EAZH,4CAaauR,EAbb,2DAcwBC,EAdxB,qDAekBE,EAflB,MAeoCC,EAfpC,MAesDC,EAftD,MAe2EC,EAf3E,MAekGJ,EAflG,8CAgBsBM,EAhBtB,6CAiBeD,EAAa,IAjB5B,iDAmBG9R,EAnBH,4CAoBiBiS,GApBjB,uCAqBaE,GArBb,2BAuBED,QACMlS,EADN,4CAEekS,GAFf,+BAKiB,SAAjBC,IAAA,IACMnS,EADN,mDAEsBoS,GAFtB,iCAKiB,UAAjBD,IAAA,IACMnS,EADN,kDAEqBoS,GAFrB,iCAK0B,MAA1BvX,YAAYyV,WAAZ,IACMtQ,EADN,0FAOEiQ,EACI,oBAAC,EAAA9X,kBAAD,CACI0a,QAAQ,YACRza,WAAa,WACN6X,GACC,EAAK7N,eAIb/J,aAAee,KAAKgX,WACpB9X,kBAAoBc,KAAKiX,gBACzB9X,aAAcwC,GACdvC,kBAAmB+X,KAGvB,KAER,oBAAC/H,EAAD,KACI,oBAACI,EAAD,CAAWtN,MAAQ5C,EAAI,cAAe,uBAClC,oBAACjB,EAAD,CACIM,MAAQ,CACJW,EAAI,WAAY,sBACfmY,GAAO,yBAAGpL,KAAOoL,GAAO,IAAMla,IAAI,WAAWiD,OAAO,SAASY,MAAQ,CAAE8K,MAAO,UACzE5M,EAAI,UAAW,yBAIzB,oBAACiX,EAAD,CACItZ,MAAOwa,EACP7Y,SAAW,SAAC3B,GAAD,OAAWuT,EAAe,CAAEiH,IAAKxa,KAC5Cyc,WAAW,EACXC,aAAA,EACAC,WAAA,KAGR,oBAACnK,EAAD,CACI9Q,MAAQW,EAAI,kBAAmB,sBAC/B2L,UAAYyM,EACZ9Y,SAAW,kBAAM4R,EAAe,CAAEkH,eAAgB1T,EAAW0T,oBAGrE,oBAAClI,EAAD,CAAWtN,MAAQ5C,EAAI,aAAc,uBACjC,oBAACwG,EAAD,CACInH,MAAQW,EAAI,YAAa,sBACzBrC,MAAQ4a,GAAY,GACpBjZ,SAAW,SAAEib,GAAF,OAAYrJ,EAAe,CAAEqH,SAAUgC,KAClDvR,IAAM,GACNC,IAAM,IACNuR,WAAW,mBACXC,YAAA,KAEFb,IACE,oBAAC,EAAAlb,gBAAD,CACIW,MAAQW,EAAG,mBAAoB,sBAC/BrC,MAAQ0a,EACR/Y,SAAW,SAAC3B,GAAD,OAAWuT,EAAe,CAAEmH,QAAS1a,OAGxD,oBAAC,EAAAe,gBAAD,CACIW,MAAQW,EAAG,aAAc,sBACzBrC,MAAQ2a,EACRhZ,SAAW,SAAC3B,GAAD,OAAWuT,EAAe,CAAEoH,UAAW3a,QAG1D,oBAACuS,EAAD,CAAWtN,MAAQ5C,EAAI,SAAU,sBAAyByS,aAAc,IAClEkH,IACE,oBAACnT,EAAD,CACInH,MAAQW,EAAI,gBAAiB,sBAC7BrC,MAAQqU,GAAgB,GACxB1S,SAAW,SAAE3B,GAAF,OAAauT,EAAe,CAAEc,aAAcrU,KACvDqL,IAAM,EACNC,IAAM,MAGd,oBAAC5I,EAAD,CACIhB,MAAQW,EAAI,eAAgB,sBAC5BrC,MAAQkU,EACRhQ,QAAUmW,EACV1Y,SAAW,SAAE3B,GAAF,OAAauT,EAAe,CAAEW,YAAalU,OAEzC,SAAhBkU,GACG,oBAACzR,EAAD,KACI,oBAAC4P,EAAD,CACIpN,MAAQ5C,EAAI,eAAgB,sBAC5ByS,aAAc,EACdC,cAAgB,CACZ,CACIrT,MAAOW,EAAI,eAAgB,sBAC3BrC,MAAOoU,EACPzS,SAAU,SAAE3B,GAAF,OAAauT,EAAe,CAAEa,iBAAuB7C,IAAVvR,EAAsB,UAAYA,SAInG,oBAAC6I,EAAD,CACInH,MAAQW,EAAI,eAAgB,sBAC5BrC,MAAQmU,GAAe,GACvBxS,SAAW,SAAE3B,GAAF,OAAauT,EAAe,CAAEY,YAAanU,KACtDqL,IAAM,EACNC,IAAM,QAKtB,oBAACiH,EAAD,CAAWtN,MAAQ5C,EAAI,SAAU,sBAAyByS,aAAc,GACpE,oBAACjM,EAAD,CACInH,MAAQW,EAAI,aAAc,sBAC1BrC,MAAQ+O,GAAa,GACrBpN,SAAW,SAAE3B,GAAF,OAAauT,EAAe,CAAExE,UAAW/O,KACpDqL,IAAM,EACNC,IAAM,MAEV,oBAACzC,EAAD,CACInH,MAAQW,EAAI,eAAgB,sBAC5BrC,MAAQkP,GAAe,GACvBvN,SAAW,SAAE3B,GAAF,OAAauT,EAAe,CAAErE,YAAalP,KACtDqL,IAAM,EACNC,IAAM,MAEV,oBAACzC,EAAD,CACInH,MAAQW,EAAI,gBAAiB,sBAC7BrC,MAAQgP,GAAgB,GACxBrN,SAAW,SAAE3B,GAAF,OAAauT,EAAe,CAAEvE,aAAchP,KACvDqL,IAAM,EACNC,IAAM,MAEV,oBAACzC,EAAD,CACInH,MAAQW,EAAI,cAAe,sBAC3BrC,MAAQ6a,GAAc,GACtBlZ,SAAW,SAAE3B,GAAF,OAAauT,EAAe,CAAEsH,WAAY7a,KACrDqL,IAAM,EACNC,IAAM,OAGd,oBAACiH,EAAD,CAAWtN,MAAQ5C,EAAI,UAAW,sBAAyByS,aAAc,GACrE,oBAACjM,EAAD,CACInH,MAAQW,EAAI,cAAe,sBAC3BrC,MAAQ8a,GAAc,GACtBnZ,SAAW,SAAE3B,GAAF,OAAauT,EAAe,CAAEuH,WAAY9a,KACrDqL,IAAM,EACNC,IAAM,MAEV,oBAACzC,EAAD,CACInH,MAAQW,EAAI,gBAAiB,sBAC7BrC,MAAQ+a,GAAgB,GACxBpZ,SAAW,SAAE3B,GAAF,OAAauT,EAAe,CAAEwH,aAAc/a,KACvDqL,IAAM,EACNC,IAAM,MAEV,oBAACzC,EAAD,CACInH,MAAQW,EAAI,iBAAkB,sBAC9BrC,MAAQgb,GAAiB,GACzBrZ,SAAW,SAAE3B,GAAF,OAAauT,EAAe,CAAEyH,cAAehb,KACxDqL,IAAM,EACNC,IAAM,MAEV,oBAACzC,EAAD,CACInH,MAAQW,EAAI,eAAgB,sBAC5BrC,MAAQib,GAAe,GACvBtZ,SAAW,SAAE3B,GAAF,OAAauT,EAAe,CAAE0H,YAAajb,KACtDqL,IAAM,EACNC,IAAM,OAGd,oBAACiH,EAAD,CAAWtN,MAAQ5C,EAAI,QAAS,sBAAyByS,aAAc,GACnE,oBAACzC,EAAD,CACIpN,MAAQ5C,EAAI,iBAAkB,sBAC9ByS,aAAc,EACdC,cAAgBoH,KAEpB,oBAAC5J,EAAD,CAAWtN,MAAQ5C,EAAI,SAAU,sBAAyByS,aAAc,GACpE,oBAACjM,EAAD,CACInH,MAAQW,EAAG,cAAe,sBAC1BrC,MAAQyb,EACR9Z,SAAW,SAAE3B,GAAF,OAAauT,EAAe,CAAEkI,aAAczb,KACvDqL,IAAM,EACNC,IAAM,MAEV,oBAACzC,EAAD,CACInH,MAAQW,EAAG,wBAAyB,sBACpCrC,MAAQ0b,GAAmB,GAC3B/Z,SAAW,SAAE3B,GAAF,OAAauT,EAAe,CAAEmI,gBAAiB1b,KAC1DqL,IAAM,EACNC,IAAM,MAEV,oBAACzC,EAAD,CACInH,MAAQW,EAAI,kBAAmB,sBAC/BrC,MAAQqb,GAAgB,GACxB1Z,SAAW,SAAE3B,GAAF,OAAauT,EAAe,CAAE8H,aAAcrb,KACvDqL,KAAO,GACPC,IAAM,KAEV,oBAACzC,EAAD,CACInH,MAAQW,EAAI,kBAAmB,sBAC/BrC,MAAQsb,GAAgB,GACxB3Z,SAAW,SAAE3B,GAAF,OAAauT,EAAe,CAAE+H,aAActb,KACvDqL,KAAO,GACPC,IAAM,KAEV,oBAACzC,EAAD,CACInH,MAAQW,EAAI,cAAe,sBAC3BrC,MAAQub,GAAmB,GAC3B5Z,SAAW,SAAE3B,GAAF,OAAauT,EAAe,CAAEgI,gBAAiBvb,KAC1DqL,IAAM,EACNC,IAAM,KAEV,oBAACzC,EAAD,CACInH,MAAQW,EAAI,gBAAiB,sBAC7BrC,MAAQwb,GAAqB,GAC7B7Z,SAAW,SAAE3B,GAAF,OAAauT,EAAe,CAAEiI,kBAAmBxb,KAC5DqL,IAAM,EACNC,IAAM,OAIS,MAA1B9G,YAAYyV,WACT,oBAACxX,EAAD,KACI,oBAAC8P,EAAD,CAAWtN,MAAQ5C,EAAI,OAAQ,sBAAyByS,aAAc,EAAQlT,UAAU,kBACpF,oBAAC4Q,EAAD,CACI9Q,MAAQW,EAAI,eAAgB,sBAC5B2L,QAAU2N,EACVha,SAAW,kBAAM4R,EAAe,CAAEoI,aAAcA,KAChD/Z,UAAU,uBAEZ+Z,GACE,oBAAClZ,EAAD,KACI,oBAACrB,EAAD,CACIM,MAAQW,EAAI,+BAAgC,uBAE5C,oBAACiK,EAAD,CACI1K,UAAU,4CACVoC,QAAU,WACF4V,GACA,EAAK7N,gBAIX1J,EAAI,iBAAkB,wBAGhC,oBAACwG,EAAD,CACInH,MAAQW,EAAI,iBAAkB,sBAC9BrC,MAAO4b,GACPvQ,IAAK,EACLC,IAAK,IACL3J,SAAU,SAAE3B,GAAF,OAAauT,EAAe,CAAEqI,SAAU5b,OAEtD,oBAAC,EAAAe,gBAAD,CACIW,MAAQW,EAAI,aAAc,sBAC1BrC,MAAQ6b,GACRla,SAAW,SAAC3B,GAAD,OAAWuT,EAAe,CAACsI,UAAW7b,OAErD,oBAAC0C,EAAD,CACIhB,MAAQW,EAAI,gBAAiB,sBAC7BrC,MAAO8b,GACP5X,QAAS,CACL,CAAExC,MAAOW,EAAI,OAAQ,sBAAwBrC,MAAO,QACpD,CAAE0B,MAAOW,EAAI,QAAS,sBAAwBrC,MAAO,UAEzD2B,SAAW,SAAE3B,GAAF,OAAauT,EAAe,CAAEuI,aAAc9b,OAE3D,oBAAC6I,EAAD,CACInH,MAAQW,EAAI,oBAAqB,sBACjCrC,MAAO+b,GACP1Q,IAAK,EACLC,IAAK,IACLmJ,KAAOpS,EAAI,gCAAiC,sBAC5CV,SAAU,SAAE3B,GAAF,OAAauT,EAAe,CAAEwI,YAAa/b,gBA3gB9B,GAwB3CwC,GAggBlBua,EACF,2BAAKrI,MAAM,6BAA6BC,MAAM,KAAKC,OAAO,KAAKC,QAAQ,aACnE,4BAAMlC,KAAK,OAAOtT,EAAE,oBACpB,4BAAMA,EAAE,+FAGV6Z,EAAa,CACfvP,GAAI,CACA3B,KAAM,UAEVwS,IAAK,CACDxS,KAAM,UAEVyS,cAAe,CACXzS,KAAM,UACNsN,SAAS,GAEbrQ,MAAO,CACH+C,KAAM,UAEVyE,KAAM,CACFuQ,SAAU,IACV1H,QAAS,mBAEboF,QAAS,CACL1S,KAAM,UAEV2S,UAAW,CACP3S,KAAM,UAEV4S,SAAU,CACN5S,KAAM,SACNsN,QAAS,IAEbvG,UAAW,CACP/G,KAAM,SACNsN,QAAS,GAEbpG,YAAa,CACTlH,KAAM,SACNsN,QAAS,GAEbtG,aAAc,CACVhH,KAAM,SACNsN,QAAS,GAEbuF,WAAY,CACR7S,KAAM,SACNsN,QAAS,GAEbwF,WAAY,CACR9S,KAAM,SACNsN,QAAS,IAEbyF,aAAc,CACV/S,KAAM,SACNsN,QAAS,IAEb0F,cAAe,CACXhT,KAAM,SACNsN,QAAS,IAEb2F,YAAa,CACTjT,KAAM,SACNsN,QAAS,IAEbnB,YAAa,CACTnM,KAAM,SACNsN,QAAS,GAEblB,YAAa,CACTpM,KAAM,UAEVkM,YAAa,CACTlM,KAAM,SACNsN,QAAS,QAEbjB,aAAc,CACVrM,KAAM,SACNsN,QAAS,IAEb4F,eAAgB,CACZlT,KAAM,UAEVmT,aAAc,CACVnT,KAAM,UAEVoT,iBAAkB,CACdpT,KAAM,SACNsN,QAAS,QAEb+F,aAAc,CACVrT,KAAM,SACNsN,QAAS,GAEbgG,aAAc,CACVtT,KAAM,SACNsN,QAAS,GAEbiG,gBAAiB,CACbvT,KAAM,SACNsN,QAAS,IAEbkG,kBAAmB,CACfxT,KAAM,SACNsN,QAAS,GAEbmG,aAAc,CACVzT,KAAM,SACNsN,QAAS,KAEboG,gBAAiB,CACb1T,KAAM,SACNsN,QAAS,KAEbiF,MAAO,CACHvS,KAAM,SACNsN,QAAS,QAEbqG,YAAa,CACT3T,KAAM,UACNsN,SAAS,GAEb5Q,KAAM,CACFsD,KAAM,SACNsN,QAAS,eAEbsG,SAAU,CACN5T,KAAM,SACNsN,QAAS,IAEbuG,UAAW,CACP7T,KAAM,UAEVkS,UAAW,CACPlS,KAAM,SACNsN,QAAS,YAEbwG,aAAc,CACV9T,KAAM,SACNsN,QAAS,QAEbyG,YAAa,CACT/T,KAAM,SACNsN,QAAS,GAEbmE,WAAY,CACRzR,KAAM,UACNsN,SAAS,GAEboE,SAAU,CACN1R,KAAM,UACNsN,SAAS,GAEb5B,QAAS,CACL1L,KAAM,UACNsN,SAAS,GAEbqD,UAAW,CACP3Q,KAAM,UACNsN,SAAS,IAIjBrD,EAAmB,eAAgB,CAC/BhN,MAAO5C,EAAI,wBAAyB,sBACpCkT,YAAalT,EAAI,6CAA8C,sBAC/DqC,KAAM,CACF8Q,IAAKuH,EACLtH,WAAmC,oBAAhBjR,YAA8BA,YAAY+P,WAAQhD,GAEzEmE,SAAU,iBACVC,SAAU,CAAEtT,EAAI,SAAU,sBAAwBA,EAAI,kBAAmB,sBAAwBA,EAAI,OAAQ,uBAC7G0E,WAAYmS,EACZC,QAAS,CACLpS,WAAY,CACR4R,WAAW,IAGnBxC,WAAY,CACR8G,KAAM,CACF,CACIjV,KAAM,QACNqO,OAAQ,CAAE,eACVC,UAAW,SAAEvP,GACT,OAAOmL,EAAa,eAAb,KACAnL,EADA,CAEH2T,QAAS3T,EAAWwN,YAKpC6B,GAAI,CACA,CACIpO,KAAM,QACNqO,OAAQ,CAAE,eACVC,UAAW,SAAEvP,GACT,OAAOmL,EAAa,cAAb,KACAnL,EADA,CAEHwN,MAAOxN,EAAW2T,eAMtCwC,OAAQ,CACJ,CAAE5d,KAAM,UAAWoC,MAAOW,EAAI,UAAW,sBAAwB8a,WAAW,GAC5E,CAAE7d,KAAM,WAAYoC,MAAOW,EAAI,WAAY,uBAC3C,CAAE/C,KAAM,UAAWoC,MAAOW,EAAI,UAAW,uBACzC,CAAE/C,KAAM,kBAAmBoC,MAAOW,EAAI,kBAAmB,wBAE7DuT,SAAU,CACN4B,QAAQ,EACR+C,MAAO,CAAC,QAAS,OAAQ,SAAU,SAEvCzE,KAAM6D,EACN5D,KAAM,YAA4B,IAAfhP,EAAe,EAAfA,WAEX4C,EAeA5C,EAfA4C,GACA4Q,EAcAxT,EAdAwT,MACAC,EAaAzT,EAbAyT,IACAC,EAYA1T,EAZA0T,cACAxV,EAWA8B,EAXA9B,MACAwH,EAUA1F,EAVA0F,KACAkP,EASA5U,EATA4U,YACAjX,EAQAqC,EARArC,KAGAwV,GAKAnT,EAPA6U,SAOA7U,EANA8U,UAMA9U,EALAmT,WAOElV,GAFF+B,EAJA+U,aAIA/U,EAHAgV,YAGAhV,EAFA0S,WAEA1S,EADA2S,SAGc,CACd,iBACc,KAAdQ,GAAA,IAAwBA,GAC1BvW,OAAQC,SAAUC,KAAK,KAGzB,OACI,2BAAKjC,UAAA,QAAoB2Y,GACrB,yBAAG3Y,UAAA,8BAA0C+H,EACzCyF,KAAOoL,GAAO,IACdvV,MAAQA,EACR1B,OAAUkX,EAA0B,SAAV,QAC1B6B,IAAM,YAAc9C,EAAmBzS,IACrC4U,GACE,yBAAG/Z,UAAWoD,GACTN,GAGT,oBAAC0N,EAAS6D,QAAV,CACAxP,QAAQ,OACRzG,MAAQyM,OAMxB2Q,oBAjG+B,SAiGVrW,GAAa,IACtBwT,EAAUxT,EAAVwT,MACFvZ,EAAQ,CAAE,gBAAgB,GAMhC,MAJK,SAAWuZ,GAAS,UAAYA,GAAS,WAAaA,IACvDvZ,EAAO,cAAiBuZ,GAGrBvZ,GAEXkV,WAAY,CACR,CACInP,gBACOmS,EADP,CAEIzM,KAAM,CACF4Q,OAAQ,WACRL,SAAU,IACV1H,QAAS,qBAGjBM,SAAU,CACN4B,QAAQ,EACR+C,MAAO,CAAC,QAAS,OAAQ,SAAU,SAEvCxE,KAAM,YAA4B,IAAfhP,EAAe,EAAfA,WAEX4C,EAUA5C,EAVA4C,GACA4Q,EASAxT,EATAwT,MACAC,EAQAzT,EARAyT,IACAC,EAOA1T,EAPA0T,cACAxV,EAMA8B,EANA9B,MACAwH,EAKA1F,EALA0F,KAKA1F,EAJArC,KAIAqC,EAHA6U,SAGA7U,EAFA8U,UAEA9U,EADAmT,UAGJ,OACI,2BAAKtY,UAAA,QAAoB2Y,GACrB,oBAACnI,EAAS6D,QAAV,CACIxP,QAAQ,IACR7E,UAAA,8BAA0C+H,EAC1CyF,KAAOoL,GAAO,IACdvV,MAAQA,EACR1B,OAAUkX,EAA0B,SAAV,QAC1Bza,MAAQyM,EACR6P,IAAI,2BAMxB,CACIvV,gBACOmS,EADP,CAEIwC,gBAAiB,CACb1T,KAAM,SACNsN,QAAS,MAGjBgI,QAAS,SAAUvW,GACf,IAAM2U,EAA+C,IAA7B3U,EAAW2U,gBACnC,YACO3U,EADP,CAEI2U,qBAGR3F,KAAM,YAA4B,IAAfhP,EAAe,EAAfA,WAEX4C,EAMA5C,EANA4C,GACA4Q,EAKAxT,EALAwT,MACAC,EAIAzT,EAJAyT,IACAC,EAGA1T,EAHA0T,cACAxV,EAEA8B,EAFA9B,MACAwH,EACA1F,EADA0F,KAGJ,OACI,2BAAK7K,UAAA,QAAoB2Y,GACrB,oBAACnI,EAAS6D,QAAV,CACIxP,QAAQ,IACR7E,UAAA,8BAA0C+H,EAC1CyF,KAAOoL,GAAO,IACdvV,MAAQA,EACR1B,OAAUkX,EAA0B,SAAV,QAC1Bza,MAAQyM,EACR6P,IAAI,8BAp3BpC,CA43BIrb,GAAGqB,KAAMrB,GAAGoV,OAAQpV,GAAGsB,QAAStB,GAAGK,YAAaL,GAAGC,a,soBC/3BvD,OACA,O,0XAEA,SAAY0Q,EAAQC,EAAUC,EAAWC,EAAeC,EAAcjJ,GAClEgJ,EAAgB9Q,GAAGK,aAAeL,GAAGM,OADsC,IAEnEc,EAAOuP,EAAPvP,GACAG,EAAwBsP,EAAxBtP,UAAWC,EAAaqP,EAAbrP,SACXwP,EAAsBJ,EAAtBI,kBAJmE,EAKFF,EAAjEI,EALmE,EAKnEA,kBAAmB6F,EALgD,EAKhDA,cAAeuF,EALiC,EAKjCA,iBAAkBjE,EALe,EAKfA,SACpDlY,EAA6E4Q,EAA7E5Q,YAAamR,EAAgEP,EAAhEO,UAAW1J,EAAqDmJ,EAArDnJ,aAAcnG,EAAuCsP,EAAvCtP,cAAeC,EAAwBqP,EAAxBrP,YAAa2J,EAAW0F,EAAX1F,OAClEwK,EAAU/N,EAAV+N,MAIF0G,EAA0B,CAC5B,CACI9b,MAAM,MACNgD,KAAO,2BAAKiQ,MAAM,OAAOC,OAAO,OAAOC,QAAQ,YAAYH,MAAM,6BAA6B+I,YAAU,UAAUC,YAAU,UAAUC,kBAAgB,QAAQC,oBAAkB,SAAQ,4BAAMzI,EAAE,QAAQC,EAAE,QAAQT,MAAM,QAAQC,OAAO,QAAQjC,KAAK,YAAiB,4BAAMwC,EAAE,SAASC,EAAE,QAAQT,MAAM,QAAQC,OAAO,QAAQjC,KAAK,YAAiB,4BAAMwC,EAAE,QAAQC,EAAE,QAAQT,MAAM,QAAQC,OAAO,QAAQjC,KAAK,YAAiB,4BAAMwC,EAAE,QAAQC,EAAE,SAAST,MAAM,QAAQC,OAAO,QAAQjC,KAAK,cAEje,CACIjR,MAAM,QACNgD,KAAO,2BAAKiQ,MAAM,OAAOC,OAAO,OAAOC,QAAQ,YAAYH,MAAM,6BAA6B+I,YAAU,UAAUC,YAAU,UAAUC,kBAAgB,QAAQC,oBAAkB,SAAQ,4BAAMzI,EAAE,QAAQC,EAAE,QAAQT,MAAM,QAAQC,OAAO,QAAQjC,KAAK,YAAiB,4BAAMwC,EAAE,SAASC,EAAE,QAAQT,MAAM,QAAQC,OAAO,QAAQjC,KAAK,YAAiB,4BAAMwC,EAAE,QAAQC,EAAE,QAAQT,MAAM,QAAQC,OAAO,QAAQjC,KAAK,YAAiB,4BAAMwC,EAAE,QAAQC,EAAE,SAAST,MAAM,QAAQC,OAAO,OAAOjC,KAAK,cAEhe,CACIjR,MAAM,SACNgD,KAAO,2BAAKiQ,MAAM,OAAOC,OAAO,OAAOC,QAAQ,YAAYH,MAAM,6BAA6B+I,YAAU,UAAUC,YAAU,UAAUC,kBAAgB,QAAQC,oBAAkB,SAAQ,4BAAMzI,EAAE,QAAQC,EAAE,QAAQT,MAAM,IAAIC,OAAO,QAAQjC,KAAK,YAAiB,4BAAMwC,EAAE,SAASC,EAAE,QAAQT,MAAM,QAAQC,OAAO,QAAQjC,KAAK,YAAiB,4BAAMwC,EAAE,QAAQC,EAAE,QAAQT,MAAM,QAAQC,OAAO,QAAQjC,KAAK,YAAiB,4BAAMwC,EAAE,QAAQC,EAAE,QAAQT,MAAM,QAAQC,OAAO,QAAQjC,KAAK,cAE5d,CACIjR,MAAM,OACNgD,KAAO,2BAAKiQ,MAAM,OAAOC,OAAO,OAAOC,QAAQ,YAAYH,MAAM,6BAA6B+I,YAAU,UAAUC,YAAU,UAAUC,kBAAgB,QAAQC,oBAAkB,SAAQ,4BAAMzI,EAAE,QAAQC,EAAE,QAAQT,MAAM,QAAQC,OAAO,QAAQjC,KAAK,YAAiB,4BAAMwC,EAAE,SAASC,EAAE,QAAQT,MAAM,QAAQC,OAAO,QAAQjC,KAAK,YAAiB,4BAAMwC,EAAE,QAAQC,EAAE,QAAQT,MAAM,QAAQC,OAAO,QAAQjC,KAAK,YAAiB,4BAAMwC,EAAE,QAAQC,EAAE,SAAST,MAAM,QAAQC,OAAO,QAAQjC,KAAK,eAI/dkL,EACF,2BAAKnJ,MAAM,6BAA6BC,MAAM,KAAKC,OAAO,KAAKC,QAAQ,aAAY,4BAAMlC,KAAK,OAAOtT,EAAE,oBAAmB,4BAAMA,EAAE,6MAGhIye,EAlCqE,YAoCvE,aAAc,0EACAzK,YADA,OAEV,EAAKxQ,MAAQ,CACT+W,WAAW,EACXmE,YAAa,EACblE,aAAc,GACd3X,cAAc,EACd4X,kBAAmB,WACnB3X,mBAAmB,GAEvB,EAAK4J,YAAc,EAAKA,YAAYxL,KAAjB,GACnB,EAAKwZ,WAAa,EAAKA,WAAWxZ,KAAhB,GAClB,EAAKyZ,gBAAkB,EAAKA,gBAAgBzZ,KAArB,GAZb,EApCyD,O,yTAAA,sDAmDlD,MACqBwC,KAAK/B,MAAnC+F,EADS,EACTA,WAAYwM,EADH,EACGA,cACdC,EAAqBC,mBAAmB,eAGnB,IAAvB1M,EAAW2M,UACuB,iBAA9B,IAAOF,EAAP,cAAOA,KAA0D,OAAvBA,GAC1C/T,OAAO8E,KAAKiP,GAAoB1O,KAAI,SAACkC,GACI,kBAA1BD,EAAWC,GAClBD,EAAWC,KAAewM,EAAmBxM,GAE7CD,EAAWC,GAAawM,EAAmBxM,MAMvDuM,EAAe,CAAEG,SAAS,OApEqC,0CAwEnD,MACgC3Q,KAAK/B,MAA7C+F,EADQ,EACRA,WAAYwM,EADJ,EACIA,cAAeyD,EADnB,EACmBA,SACdjQ,EAAbiX,SAERzK,EAAe,CAAEyK,SAAUA,cAAchH,MA5E0B,2CA+ElD,MACoDjU,KAAKF,MAAnEkb,EADU,EACVA,YAAalE,EADH,EACGA,aAAc3X,EADjB,EACiBA,aAAc4X,EAD/B,EAC+BA,kBAC7C5X,IACCa,KAAKC,SAAS,CACVd,cAAc,EACdC,mBAAmB,IAEvBY,KAAKkb,YAAY/S,SAAS6S,GAAc,CAACrZ,KAAMmV,EAAcK,UAAWJ,OAtFT,iCA0F5DK,GACPpX,KAAKC,SAAS,CACV6W,aAAcM,EACdjY,cAAc,MA7FiD,sCAiGvDkY,GACZrX,KAAKC,SAAS,CACV8W,kBAAmBM,EACnBjY,mBAAmB,MApG4C,kCAwG3D+b,EAAK/V,GAAM,MACmBpF,KAAK/B,MAAnC+F,EADW,EACXA,YAURwM,EAXmB,EACCA,eAUL,CAAE4K,MATCpX,EAAVoX,MAEerZ,KAAK,SAACmM,EAAMlM,GAI/B,OAHImZ,IAAQnZ,IACRkM,OAAYA,EAAS9I,IAElB8I,OAIXlO,KAAKC,SAAU,CAAEF,aAAc,OApHoC,kCAuH3Dob,EAAKE,GAAU,IAEfD,EADepb,KAAK/B,MAApB+F,WACAoX,MAEJhW,EAAO,GAYX,OAVAgW,EAAMrZ,KAAK,SAACmM,EAAMlM,GACd,GAAImG,SAASgT,KAASnZ,EAClB,IAAK,IAAIzE,KAAO2Q,EACPmN,IAAa9d,GAAQ2Q,EAAKrQ,eAAeN,KAC1C6H,EAAO8I,EAAK3Q,OAMrB6H,IAvI4D,oCA0IzD,IACHyR,EAAa7W,KAAKF,MAAlB+W,UAEP7W,KAAKC,SAAU,CACX4W,WAAYA,MA9ImD,+BAkJ9D,aACiC7W,KAAK/B,MAAnC+F,EADH,EACGA,WAAYwM,EADf,EACeA,cAEhByK,EAKAjX,EALAiX,SACAG,EAIApX,EAJAoX,MACAE,EAGAtX,EAHAsX,WACAC,EAEAvX,EAFAuX,OACA3F,EACA5R,EADA4R,UAPC,EAU8B5V,KAAKF,MAAhC+W,EAVH,EAUGA,UAAWmE,EAVd,EAUcA,YAEbQ,EAAiB,CACnB,sBACF5a,OAAQC,SAAUC,KAAM,KAEpB2a,EAAa,CACf,eACF7a,OAAQC,SAAUC,KAAM,KAEtB9E,EAAI,EACJ0f,EAAI,EAER,OACI9F,EACI,2BAAKE,IAAKxW,EAAG,gBAAiB,sBAAuBsS,MAAM,OAAOa,IAlKzD,+lRAoKT,oBAAC/S,EAAD,KACI,oBAACuV,EAAD,KACI,oBAACuF,EAAD,CACIvd,MAAQse,EACR3c,SAAW,SAAE3B,GAAF,OAAauT,EAAe,CAAE+K,OAAQte,QAGzD,oBAACmS,EAAD,KACI,oBAACI,EAAD,CAAWtN,MAAQ5C,EAAI,aAAc,uBACjC,oBAACwG,EAAD,CACInH,MAAQW,EAAI,kBAAmB,sBAC/BgJ,IAAM,EACNC,IAAM,GACNtL,MAAQqe,EACR1c,SAAW,SAAC3B,GAAD,OAAWuT,EAAe,CAAE8K,WAAYre,QAG1Dme,EAAMrZ,KAAK,SAACmM,EAAMiN,GAEX,UADAnf,EACQsf,IAEJ,oBAAC5b,EAAD,KACI,oBAAC8P,EAAD,CACItN,MAAQ5C,EAAGA,QAAStD,EAAZ,YAA0B,sBAClC+V,aAAc,GAGd,oBAAC1T,EAAD,CACIM,MAAQW,EAAI,+BAAgC,uBAE5C,oBAACiK,EAAD,CACI1K,UAAU,6CACV8c,mBAAkBR,EAClBla,QAAU,SAAC0M,GACHkJ,IACA,EAAK7N,cACL,EAAK/I,SAAS,CAAE+a,YAAarN,EAAMnN,OAAOwD,WAAW4X,aAAa,oBAAoB3e,WAK5FqC,EAAI,iBAAkB,wBAIhC,oBAACK,EAAD,CACIhB,MAAQW,EAAG,aAAc,sBACzBrC,MAAQiR,EAAK9M,MACbD,QAAU,CACN,CAAExC,MAAOW,EAAG,UAAW,sBAAuBrC,MAAO,WACrD,CAAE0B,MAAOW,EAAG,UAAW,sBAAuBrC,MAAO,YAEzD2B,SAAW,SAAE3B,GAAF,OAAa,EAAKie,YAAYC,EAAK,CAAE/Z,MAAOnE,OAE3D,oBAAC6I,EAAD,CACInH,MAAQW,EAAI,YAAa,sBACzBgJ,IAAM,GACNC,IAAM,IACNtL,MAAQiR,EAAK2L,KACbjb,SAAW,SAAC3B,GAAD,OAAW,EAAKie,YAAYC,EAAK,CAAEtB,KAAM5c,OAExD,oBAAC,EAAAe,gBAAD,CACIW,MAAQW,EAAG,aAAc,sBACzBrC,MAAQiR,EAAKsD,MACb5S,SAAW,SAAC3B,GAAD,OAAW,EAAKie,YAAYC,EAAK,CAAE3J,MAAOvU,OAEzD,oBAAC,EAAAe,gBAAD,CACIW,MAAQW,EAAG,kBAAmB,sBAC9BrC,MAAQiR,EAAKyJ,QACb/Y,SAAW,SAAC3B,GAAD,OAAW,EAAKie,YAAYC,EAAK,CAAExD,QAAS1a,OAE1DiR,EAAK9M,OAAwB,YAAf8M,EAAK9M,OACpB,oBAAC1B,EAAD,KACI,oBAACrB,EAAD,CACIM,MAAQW,EAAI,SAAU,sBACtBT,UAAU,yBAEd,oBAAC,EAAAb,gBAAD,CACIW,MAAOW,EAAI,eAAgB,sBAC3BrC,MAAOiR,EAAKmD,YACZzS,SAAU,SAAE3B,GAAF,OAAa,EAAKie,YAAaC,EAAK,CAAE9J,YAAapU,OAEjE,oBAAC6I,EAAD,CACInH,MAAOW,EAAI,kBAAmB,sBAC9BgJ,IAAK,EACLC,IAAK,GACLtL,MAAOiR,EAAK2N,WACZjd,SAAU,SAAE3B,GAAF,OAAa,EAAKie,YAAaC,EAAK,CAAEU,WAAY5e,OAEhE,oBAAC6I,EAAD,CACInH,MAAOW,EAAI,mBAAoB,sBAC/BgJ,IAAK,EACLC,IAAK,GACLtL,MAAOiR,EAAKoD,aACZ1S,SAAU,SAAE3B,GAAF,OAAa,EAAKie,YAAaC,EAAK,CAAE7J,aAAcrU,QAItE,oBAACoB,EAAD,CACIM,MAAQW,EAAI,OAAQ,sBACpBT,UAAU,yBAEd,oBAACR,EAAD,CACIM,MAAQW,EAAI,OAAQ,uBAEpB,oBAACiX,EAAD,CACItZ,MAAOiR,EAAK4N,KACZld,SAAW,SAAC3B,GAAD,OAAY,EAAKie,YAAYC,EAAK,CAAEW,KAAM7e,KACrDyc,WAAW,EACXC,aAAA,EACAC,WAAA,KAGR,oBAACja,EAAD,CACIhB,MAAQW,EAAG,cAAe,sBAC1BrC,MAAQiR,EAAK6N,WACb5a,QAAU,CACN,CAAExC,MAAOW,EAAG,cAAe,sBAAuBrC,MAAO,SACzD,CAAE0B,MAAOW,EAAG,aAAc,sBAAuBrC,MAAO,WAE5D2B,SAAW,SAAE3B,GAAF,OAAa,EAAKie,YAAYC,EAAK,CAAEY,WAAY9e,OAEhE,oBAAC2C,EAAD,CACIjB,MAAQW,EAAG,0BAA2B,sBACtCrC,MAAQiR,EAAKhM,MACbtD,SAAW,SAAE3B,GAAF,OAAa,EAAKie,YAAYC,EAAK,CAAEjZ,MAAOjF,OAE1DiR,EAAK9M,OAAwB,YAAf8M,EAAK9M,OACpB,oBAAC1B,EAAD,KACI,oBAACrB,EAAD,CACIM,MAAQW,EAAI,UAAW,sBACvBT,UAAU,yBAEd,2BAAKA,UAAU,wBACX,gCAAOS,EAAI,OAAQ,uBACnB,2BAAKT,UAAU,qBAAqBtB,IAAI,QACnC,CAAE,KAAM,KAAM,KAAM,KAAMwE,KAAK,SAAEia,EAAMC,GAAR,OAC5B,4BACIpd,UAAA,eAAyBqP,EAAKgO,cAAgBF,EAAO,WAAa,IAClEze,IAAK0e,EACLhb,QAAS,kBAAM,EAAKia,YAAaC,EAAK,CAAEe,YAAaF,MAEpDA,QAMbvB,EAAwB1Y,KAAI,SAACoa,EAAKC,GAAN,OACxB,oBAACtW,EAAD,CACIjH,UAAU,+BACVtB,IAAK6e,EACLzd,MAAOwd,EAAIxa,KACXmY,WAAYqC,EAAIxa,KAChB1E,MAAOiR,EAAK,UAAYiO,EAAIxd,OAC5B2J,IAAK,EACLC,IAAK,IACL3J,SAAU,SAAE3B,GAAF,OAAa,EAAKie,YAAaC,EAAlB,KAA0B,UAAYgB,EAAIxd,MAAQ1B,WAMzF,oBAACoB,EAAD,CACIM,MAAQW,EAAI,SAAU,sBACtBT,UAAU,yBAEd,2BAAKA,UAAU,wBACX,gCAAOS,EAAI,OAAQ,uBACnB,2BAAKT,UAAU,qBAAqBtB,IAAI,QACnC,CAAE,KAAM,KAAM,KAAM,KAAMwE,KAAK,SAAEia,EAAMC,GAAR,OAC5B,4BACIpd,UAAA,eAAyBqP,EAAKmO,aAAeL,EAAO,WAAa,IACjEze,IAAK0e,EACLhb,QAAS,kBAAM,EAAKia,YAAaC,EAAK,CAAEkB,WAAYL,MAE/CA,QAMjBvB,EAAwB1Y,KAAI,SAACoa,EAAKC,GAAN,OACxB,oBAACtW,EAAD,CACIjH,UAAU,+BACVtB,IAAK6e,EACLzd,MAAOwd,EAAIxa,KACXmY,WAAYqC,EAAIxa,KAChB1E,MAAOiR,EAAK,SAAWiO,EAAIxd,OAC3B2J,IAAK,EACLC,IAAK,IACL3J,SAAU,SAAE3B,GAAF,OAAa,EAAKie,YAAaC,EAAlB,KAA0B,SAAWgB,EAAIxd,MAAQ1B,gBAU5G,2BAAK4B,UAAW2c,EAAgB5U,GAAIqU,GAChC,2BAAKpc,UAAY4c,EAAara,MAAQ,CAACkb,UAAWf,IAC7CH,EAAMrZ,KAAK,SAACmM,EAAMiN,GAEf,KADAO,EACQJ,EAAY,OAAO,EAC3B,IAAMiB,EAAiB,CAAC,oBACArO,EAAK9M,MACzB,kBAFmB,cAGL+Z,GAChBva,OAAQC,SAAUC,KAAM,KAEpB0b,EAAgB,CAClB,aADkB,cAEJtO,EAAKvM,MACrBf,OAAQC,SAAUC,KAAK,KAEnBmB,EAAY,CACI,aAAlBiM,EAAKuO,UAA2B,iBACb,KAAnBvO,EAAKiJ,WAAL,IAA6BjJ,EAAKiJ,WACpCvW,OAAQC,SAAUC,KAAK,IAEnB4b,EAAiB,CACnBpD,QAAS,OACTqD,WAAY,SACZ3Q,UAAWkC,EAAKlC,UAAYkC,EAAKmO,WACjCpQ,aAAciC,EAAKjC,aAAeiC,EAAKmO,WACvCvE,WAAY5J,EAAK4J,WAAa5J,EAAKmO,WACnClQ,YAAa+B,EAAK/B,YAAc+B,EAAKmO,WACrCtE,WAA2B,YAAf7J,EAAK9M,MAAsB8M,EAAK6J,WAAa7J,EAAKgO,YAAc,EAC5EjE,cAA8B,YAAf/J,EAAK9M,MAAsB8M,EAAK+J,cAAgB/J,EAAKgO,YAAc,EAClFhE,YAA4B,YAAfhK,EAAK9M,MAAsB8M,EAAKgK,YAAchK,EAAKgO,YAAc,EAC9ElE,aAA6B,YAAf9J,EAAK9M,MAAsB8M,EAAK8J,aAAe9J,EAAKgO,YAAc,EAChF9K,YAA4B,YAAflD,EAAK9M,MAAsB8M,EAAK2N,WAAa,KAAO,EACjE1K,YAAa,QACbE,YAAanD,EAAKmD,YAClBuL,WAAY1O,EAAKyJ,QACjBrG,aAAcpD,EAAKoD,aAAe,KAGhCuL,EAAa,CACfC,SAAU5O,EAAK2L,KAAO,KACtBrI,MAAOtD,EAAKsD,OAGhB,OACI,oBAAC9R,EAAD,KACI,2BAAKb,UAAW0d,GACZ,2BAAK1d,UAAW2d,EAAepb,MAAOsb,GAClC,yBAAG7d,UAAWoD,EAAWb,MAAOyb,GAAa3O,EAAKvM,aAQtEkV,EACI,oBAAC,EAAA9X,kBAAD,CACI0a,QAAQ,YACRza,WAAa,WACN6X,GACC,EAAK7N,eAGb/J,aAAee,KAAKgX,WACpB9X,kBAAoBc,KAAKiX,gBACzB9X,aAAca,KAAK+c,YAAY/B,EAAa,QAC5C5b,kBAAmBY,KAAK+c,YAAY/B,EAAa,eAGrD,WA5b2C,GAkCjDvb,GAkapB0W,EAAa,CACf8E,SAAU,CACNhW,KAAM,UAEVmW,MAAO,CACHnW,KAAM,QACNsN,QAASwB,EAAM,IAAI,iBACf,CACIpS,KAAM,WACN8a,SAAU,WACVtF,UAAW,WACX0C,KAAM,IACNrI,MAAO,UACPpQ,MAAO,UACPuW,QAAS,GACTtG,YAAa,OACbwK,WAAY,EACZvK,aAAc,EACdyG,WAAY,GACZE,cAAe,GACfC,YAAa,GACbF,aAAc,GACdhM,UAAW,EACXC,aAAc,EACd6L,WAAY,EACZ3L,YAAa,GACb+P,YAAa,KACbG,WAAY,KACZP,KAAM,GACNC,WAAY,QACZ7Z,MAAO,QAInBoZ,WAAY,CACRrW,KAAM,SACNsN,QAAS,GAEb5B,QAAS,CACL1L,KAAM,UACNsN,SAAS,GAEbgJ,OAAQ,CACJtW,KAAM,SACNsN,QAAS,UAEbqD,UAAW,CACP3Q,KAAM,UACNsN,SAAS,IAIjBrD,EAAmB,aAAc,CAC7BhN,MAAO5C,EAAI,sBAAuB,sBAClCkT,YAAalT,EAAI,2CAA4C,sBAC7DqC,KAAM,CACF8Q,IAAKqI,EACLpI,WAAmC,oBAAhBjR,YAA8BA,YAAY+P,WAAQhD,GAEzEmE,SAAU,iBACVC,SAAU,CAAEtT,EAAI,OAAQ,sBAAwBA,EAAI,gBAAiB,uBACrE0E,WAAYmS,EACZtD,SAAU,CACN2E,MAAO,CAAC,OAAQ,SAAU,UAE9BpB,QAAS,CACLpS,WAAY,CACR4R,WAAW,IAGnB7C,KAAMgI,EACN/H,KAAM,YAAsB,IAAlBhP,EAAkB,EAAlBA,WAEFiX,EAIAjX,EAJAiX,SACApc,EAGAmF,EAHAnF,UACAuc,EAEApX,EAFAoX,MACAE,EACAtX,EADAsX,WAGEE,EAAiB,CACnB,sBACA,eACA3c,EACAoc,GACFra,OAAQC,SAAUC,KAAM,KAEpB2a,EAAa,CACf,eACF7a,OAAQC,SAAUC,KAAM,KAEtB9E,EAAI,EACR,OACI,oBAAC0D,EAAD,KACI,2BAAKb,UAAW2c,GACZ,2BAAK3c,UAAY4c,GACZL,EAAMrZ,KAAK,SAACmM,EAAMiN,GAEf,KADAnf,EACQsf,EAAY,OAAO,EAE3B,IAAI0B,EAAW9O,EAAK4N,KACf5N,EAAK4N,KAAKmB,MAAM,qBAEjBD,EAAW,UAAY9O,EAAK4N,MAEhC,IAAMS,EAAiB,CAAC,oBACArO,EAAK9M,MACzB,kBAFmB,cAGL+Z,GAChBva,OAAQC,SAAUC,KAAM,KAEpB0b,EAAgB,CAClB,aADkB,cAEJtO,EAAKvM,MACrBf,OAAQC,SAAUC,KAAK,KAEnBmB,EAAY,CACI,aAAlBiM,EAAKuO,UAA2B,iBACb,KAAnBvO,EAAKiJ,WAAL,IAA6BjJ,EAAKiJ,WACpCvW,OAAQC,SAAUC,KAAK,IAEzB,OACI,oBAACpB,EAAD,KACI,2BAAKb,UAAW0d,GACG,KAAdrO,EAAK4N,MAAe,yBAAGzP,KAAM2Q,EAAUxc,OAAQ0N,EAAK6N,WAAY7Z,MAAOgM,EAAKhM,MAAOqX,IAAI,uBACpF,4BAAM1a,UAAW2d,GACb,yBAAG3d,UAAWoD,GAAYiM,EAAKvM,QAIxB,KAAduM,EAAK4N,MACN,4BAAMjd,UAAW2d,GACb,yBAAG3d,UAAWoD,GAAYiM,EAAKvM,gBAYvEwR,WAAY,CACR,CACInP,WAAYmS,EACZnD,KAAM,YAAsB,IAAlBhP,EAAkB,EAAlBA,WAEFiX,EAGAjX,EAHAiX,SACAG,EAEApX,EAFAoX,MACAE,EACAtX,EADAsX,WAGEE,EAAiB,CACnB,sBACA,eACAP,GACFra,OAAQC,SAAUC,KAAM,KAEpB2a,EAAa,CACf,eACF7a,OAAQC,SAAUC,KAAM,KAEtB9E,EAAI,EACR,OACI,oBAAC0D,EAAD,KACI,2BAAKb,UAAW2c,GACZ,2BAAK3c,UAAY4c,GACZL,EAAMrZ,KAAK,SAACmM,EAAMiN,GAEf,KADAnf,EACQsf,EAAY,OAAO,EAC3B,IAAMiB,EAAiB,CAAC,oBACArO,EAAK9M,MACzB,kBAFmB,cAGL+Z,GAChBva,OAAQC,SAAUC,KAAM,KAEpB0b,EAAgB,CAClB,aADkB,cAEJtO,EAAKvM,MACrBf,OAAQC,SAAUC,KAAK,KAEnBmB,EAAY,CACI,aAAlBiM,EAAKuO,UAA2B,iBACb,KAAnBvO,EAAKiJ,WAAL,IAA6BjJ,EAAKiJ,WACpCvW,OAAQC,SAAUC,KAAK,IAEzB,OACI,oBAACpB,EAAD,KACI,2BAAKb,UAAW0d,GACG,KAAdrO,EAAK4N,MAAe,yBAAGzP,KAAM6B,EAAK4N,KAAM5Z,MAAOgM,EAAKhM,OACjD,2BAAKrD,UAAW2d,GACZ,yBAAG3d,UAAWoD,GAAYiM,EAAKvM,QAIxB,KAAduM,EAAK4N,MACN,2BAAKjd,UAAW2d,GACZ,yBAAG3d,UAAWoD,GAAYiM,EAAKvM,iBAa3E,CACIqC,WAAYmS,EACZnD,KAAM,YAAsB,IAAlBhP,EAAkB,EAAlBA,WAEFiX,EAGAjX,EAHAiX,SACAG,EAEApX,EAFAoX,MACAE,EACAtX,EADAsX,WAGEE,EAAiB,CACnB,sBACA,gBACF5a,OAAQC,SAAUC,KAAM,KAEpB2a,EAAa,CACf,eACF7a,OAAQC,SAAUC,KAAM,KAEtB9E,EAAI,EACR,OACI,oBAAC0D,EAAD,KACI,2BAAKb,UAAW2c,EAAgB5U,GAAIqU,GAChC,2BAAKpc,UAAY4c,GACZL,EAAMrZ,KAAK,SAACmM,EAAMiN,GAEf,KADAnf,EACQsf,EAAY,OAAO,EAC3B,IAAMiB,EAAiB,CAAC,oBACArO,EAAK9M,MACzB,kBAFmB,cAGL+Z,GAChBva,OAAQC,SAAUC,KAAM,KAEpB0b,EAAgB,CAClB,aADkB,cAEJtO,EAAKvM,MACrBf,OAAQC,SAAUC,KAAK,KAEnBmB,EAAY,CACI,aAAlBiM,EAAKuO,UAA2B,iBACb,KAAnBvO,EAAKiJ,WAAL,IAA6BjJ,EAAKiJ,WACpCvW,OAAQC,SAAUC,KAAK,IAEzB,OACI,oBAACpB,EAAD,KACI,2BAAKb,UAAW0d,GACG,KAAdrO,EAAK4N,MAAe,yBAAGzP,KAAM6B,EAAK4N,KAAM5Z,MAAOgM,EAAKhM,OACjD,2BAAKrD,UAAW2d,GACZ,yBAAG3d,UAAWoD,GAAYiM,EAAKvM,QAIxB,KAAduM,EAAK4N,MACN,2BAAKjd,UAAW2d,GACZ,yBAAG3d,UAAWoD,GAAYiM,EAAKvM,oBA5sBvF,CA2tBKzD,GAAGqB,KAAMrB,GAAGoV,OAAQpV,GAAGsB,QAAStB,GAAGK,YAAaL,GAAGC,WAAY6H,S,w4BC9tBpE,SAAY6I,EAAQC,EAAUC,EAAWC,EAAeC,GACpDD,EAAgB9Q,GAAGK,aAAeL,GAAGM,OAD8B,IAE3Dc,EAAOuP,EAAPvP,GACAG,EAAwBsP,EAAxBtP,UAAWC,EAAaqP,EAAbrP,SACXwP,EAAsBJ,EAAtBI,kBAJ2D,EAKqBF,EAAhFI,EAL2D,EAK3DA,kBAAmB6F,EALwC,EAKxCA,cAAe5F,EALyB,EAKzBA,SAAUC,EALe,EAKfA,mBAAoB4N,EALL,EAKKA,YAChEpX,EAA8HmJ,EAA9HnJ,aAAc0J,EAAgHP,EAAhHO,UAAWC,EAAqGR,EAArGQ,cAAe9P,EAAsFsP,EAAtFtP,cAAeC,EAAuEqP,EAAvErP,YAAa2J,EAA0D0F,EAA1D1F,OAAQ2L,EAAkDjG,EAAlDiG,aAAcC,EAAoClG,EAApCkG,cAAegI,EAAqBlO,EAArBkO,iBAG3GC,EAT6D,YAU/D,aAAc,0EACD9M,YADC,OAEV,EAAKxQ,MAAQ,CACTud,YAAa,IAHP,EAViD,O,yTAAA,sDAiB1C,MACqBrd,KAAK/B,MAAnC+F,EADS,EACTA,WAAYwM,EADH,EACGA,cACdC,EAAqBC,mBAAmB,gBAGnB,IAAvB1M,EAAW2M,UACuB,iBAA9B,IAAOF,EAAP,cAAOA,KAA0D,OAAvBA,GAC1C/T,OAAO8E,KAAKiP,GAAoB1O,KAAI,SAACkC,GACI,kBAA1BD,EAAWC,GAClBD,EAAWC,KAAewM,EAAmBxM,GAE7CD,EAAWC,GAAawM,EAAmBxM,MAMvDuM,EAAe,CAAEG,SAAS,OAlC6B,0CAsC3C,MACgC3Q,KAAK/B,MAA7C+F,EADQ,EACRA,WAAYwM,EADJ,EACIA,cAAeyD,EADnB,EACmBA,SACdjQ,EAAbiX,SAERzK,EAAc,CAACyK,SAAUA,aAAahH,IAGR,cAA1BxS,YAAYyV,WAAuD,MAA1BzV,YAAYyV,WACrD1G,EAAe,CACX8M,SAAU,KACVC,YAAa,QAhDsC,+BAqDtD,WACGF,EAAgBrd,KAAKF,MAArBud,YADH,EAE6Crd,KAAK/B,MAA/C+F,EAFH,EAEGA,WAAYwM,EAFf,EAEeA,cAAe+G,EAF9B,EAE8BA,WAE/B0D,EAIAjX,EAJAiX,SAAUuC,EAIVxZ,EAJUwZ,YAAaC,EAIvBzZ,EAJuByZ,QAASC,EAIhC1Z,EAJgC0Z,aAAcC,EAI9C3Z,EAJ8C2Z,SAAUC,EAIxD5Z,EAJwD4Z,QACxD1b,EAGA8B,EAHA9B,MAAO2b,EAGP7Z,EAHO6Z,WAAYC,EAGnB9Z,EAHmB8Z,SAAUC,EAG7B/Z,EAH6B+Z,cAAeC,EAG5Cha,EAH4Cga,aAAcC,EAG1Dja,EAH0Dia,eAC1DC,EAEAla,EAFAka,UAAWtM,EAEX5N,EAFW4N,MAAOC,EAElB7N,EAFkB6N,OAAQsM,EAE1Bna,EAF0Bma,OAAQC,EAElCpa,EAFkCoa,OAAQC,EAE1Cra,EAF0Cqa,eAAgBC,EAE1Dta,EAF0Dsa,WAC1D1I,EACA5R,EADA4R,UAAW0H,EACXtZ,EADWsZ,SAAUC,EACrBvZ,EADqBuZ,YAEnBgB,EAAiB,CACnB,oBACAL,GAAa,aACbjD,GACFra,OAAQC,SAAUC,KAAM,KAE1B,OACI8U,EACI,2BAAKE,IAAKxW,EAAG,iBAAkB,sBAAuBsS,MAAM,OAAOa,IA9D1D,msHAgEb,oBAAC/S,EAAD,KACKke,GACG,oBAAC3I,EAAD,KACI,oBAACC,EAAD,KACI,oBAACgI,EAAD,CACIsB,aAAe,CAAC,SAChBvhB,MAAQ2gB,EACRa,SAAW,SAACC,GAAD,OAAWlO,EAAe,CAAEmN,SAAUe,EAAMjH,IAAKmG,QAASc,EAAM9X,MAC3E+X,OAAS,gBAAIC,EAAJ,EAAIA,KAAJ,OACL,oBAACzJ,EAAD,CACIxW,MAAQW,EAAI,eAAgB,sBAC5BqC,KAAK,OACLV,QAAU2d,OAItB,oBAACzJ,EAAD,CACIxW,MAAQW,EAAI,eAAgB,sBAC5BqC,KAAK,KACLV,QAAU,kBAAMuP,EAAe,CAAEmN,cAAUnP,EAAWoP,aAASpP,SAK/E,oBAACY,EAAD,KACI,oBAACI,EAAD,CAAWtN,MAAQ5C,EAAI,iBAAkB,uBACrC,oBAACK,EAAD,CACIhB,MAAQW,EAAI,kBAAmB,sBAC/BrC,MAAQugB,EACRrc,QAAU,CACN,CAAExC,MAAOW,EAAI,OAAQ,sBAAwBrC,MAAO,QACpD,CAAE0B,MAAOW,EAAI,yBAA0B,sBAAwBrC,MAAO,YACtE,CAAE0B,MAAOW,EAAI,kBAAmB,sBAAwBrC,MAAO,QAEnE2B,SAAW,SAAC3B,GAAD,OAAWuT,EAAe,CAAEgN,YAAavgB,OAEvC,QAAhBugB,GACD,oBAAC9d,EAAD,KACI,oBAACE,EAAD,CACIjB,MAAQ,CACJW,EAAI,WAAY,sBACfme,GAAW,yBAAGpR,KAAOoR,GAAW,IAAMlgB,IAAI,uBAAuBiD,OAAO,SAASY,MAAQ,CAAE8K,MAAO,UAC7F5M,EAAI,UAAW,wBAGzBrC,MAAQwgB,EACRvc,YAAc5B,EAAI,aAAc,sBAChCV,SAAW,SAAE8K,GAAF,OAAY8G,EAAe,CAAEiN,QAAS/T,OAErD,oBAAC+F,EAAD,CACI9Q,MAAQW,EAAI,uBAAwB,sBACpC2L,QAAUyS,EACV9e,SAAW,kBAAM4R,EAAe,CAAEkN,cAAeA,QAIzD,oBAAClO,EAAD,CAAWtN,MAAQ5C,EAAI,aAAc,uBACjC,oBAACmQ,EAAD,CACI9Q,MAAQW,EAAI,aAAc,sBAC1B2L,QAAUiT,EACVtf,SAAW,kBAAM4R,EAAe,CAAE0N,WAAYA,OAElD,oBAACpY,EAAD,CACInH,MAAQW,EAAI,SAAU,sBACtBrC,MAAQ4U,EACRvJ,IAAM,IACNC,IAAM,IACN3J,SAAW,SAAC3B,GAAD,OAAWuT,EAAe,CAAEqB,OAAQ5U,QAEjDihB,GACF,oBAACpY,EAAD,CACInH,MAAQW,EAAI,QAAS,sBACrBrC,MAAQ2U,EACRtJ,IAAM,IACNC,IAAM,KACN3J,SAAW,SAAC3B,GAAD,OAAWuT,EAAe,CAAEoB,MAAO3U,OAEjD0gB,GACG,oBAACR,EAAD,CACIxe,MAAQW,EAAI,qBAAsB,sBAClCmY,IAAMkG,EACN1gB,MAAQqhB,EACR1f,SAAW,SAAE3B,GAAF,OAAauT,EAAe,CAAE8N,WAAYrhB,OAG7D,oBAAC6I,EAAD,CACInH,MAAQW,EAAI,0BAA2B,sBACvCrC,MAAQghB,EACR3V,IAAM,EACNC,IAAM,IACN3J,SAAW,SAAC3B,GAAD,OAAWuT,EAAe,CAAEyN,eAAgBhhB,OAE3D,oBAAC6I,EAAD,CACInH,MAAQW,EAAI,wBAAyB,sBACrCrC,MAAQohB,EACR/V,IAAM,EACNC,IAAM,IACN3J,SAAW,SAAC3B,GAAD,OAAWuT,EAAe,CAAE6N,eAAgBphB,QAG/D,oBAACqS,EAAD,CACIpN,MAAQ5C,EAAI,iBAAkB,sBAC9ByS,aAAc,EACdC,cAAgB,CACZ,CACIrT,MAAOW,EAAI,cAAe,sBAC1BrC,MAAO4gB,EACPjf,SAAU,SAAE3B,GAAF,OAAauT,EAAe,CAAEqN,gBAAsBrP,IAAVvR,EAAsB,OAASA,MAEvF,CACI0B,MAAOW,EAAI,iBAAkB,sBAC7BrC,MAAO8gB,EACPnf,SAAU,SAAE3B,GAAF,OAAauT,EAAe,CAAEuN,mBAAyBvP,IAAVvR,EAAsB,OAASA,MAE1F,CACI0B,MAAOW,EAAI,gBAAiB,sBAC5BrC,MAAO+gB,EACPpf,SAAU,SAAE3B,GAAF,OAAauT,EAAe,CAAEwN,kBAAwBxP,IAAVvR,EAAsB,OAASA,SAIjG,oBAACuS,EAAD,CAAWtN,MAAQ5C,EAAI,iBAAkB,sBAAyByS,aAAa,GAC3E,oBAACpS,EAAD,CACIhB,MAAQW,EAAI,qBAAsB,sBAClCrC,MAAOkhB,EACPhd,QAAU,CACN,CAAExC,MAAOW,EAAI,MAAO,sBAAwBrC,MAAO,cACnD,CAAE0B,MAAOW,EAAI,SAAU,sBAAwBrC,MAAO,UACtD,CAAE0B,MAAOW,EAAI,SAAU,sBAAwBrC,MAAO,aAE1D2B,SAAW,SAAC3B,GAAD,OAAWuT,EAAe,CAAE2N,OAAQlhB,OAEnD,oBAAC0C,EAAD,CACIhB,MAAQW,EAAI,uBAAwB,sBACpCrC,MAAOmhB,EACPjd,QAAU,CACN,CAAExC,MAAOW,EAAI,OAAQ,sBAAwBrC,MAAO,cACpD,CAAE0B,MAAOW,EAAI,SAAU,sBAAwBrC,MAAO,UACtD,CAAE0B,MAAOW,EAAI,QAAS,sBAAwBrC,MAAO,aAEzD2B,SAAW,SAAC3B,GAAD,OAAWuT,EAAe,CAAE4N,OAAQnhB,UAK/D,2BAAK4B,UAAY0f,EACZnd,MAAQ,CACJyd,wBAAwBlB,GAAYlc,YAAYqd,cAAhD,IACAC,mBAAoBT,EAAgC,IAAfA,EAAWlM,EAA5B,KAAyD,IAAfkM,EAAWjM,EAArD,SAAmE7D,EACvFqD,OAAQA,EACRD,MAAOA,EACPoN,eAAgBb,EAChBxB,WAAYyB,IAGjB,4BAAMvf,UAAU,sBACVuC,MAAQ,CAAE6Q,gBAAiB+L,EAAc5N,QAAS6N,EAAe,QAErEL,GACF,oBAACV,EAAD,CACIsB,aAAe,CAAC,SAChBvhB,MAAQ2gB,EACRa,SAAW,SAACC,GAAD,OAAWlO,EAAe,CAAEmN,SAAUe,EAAMjH,IAAKmG,QAASc,EAAM9X,GAAI0X,WAAY,CAAC,EAAI,OAAO,EAAI,WAC3GK,OAAS,gBAAIC,EAAJ,EAAIA,KAAJ,OACL,oBAACrV,EAAD,CACI1K,UAAU,6CACVoC,QAAU2d,GAERtf,EAAI,qBAAsB,0BAKxC,oBAAC+P,EAAD,CACI3L,QAAU4Z,EACVze,UAAU,oBACV5B,MAAQiF,EACRtD,SAAW,SAAC3B,GAAD,OAAWuT,EAAe,CAAEtO,MAAOjF,EAAM4E,UACpDT,MAAQ,CAAEoQ,MAAOqM,GACjBtG,WAAaA,GAA8B,UAAhB8F,EAC3B4B,gBAAkB,kBAAM,EAAKhf,SAAU,CAAEod,YAAa,WACtDnL,gBAAkB,kBAAM,MACxBhR,YAAc5B,EAAI,eAAgB,sBAClCiV,eAAiB,KAErB,oBAAClF,EAAD,CACI3L,QAAU6Z,EACV1e,UAAU,uBACV5B,MAAQ6gB,EACRlf,SAAW,SAAC3B,GAAD,OAAWuT,EAAe,CAAEsN,SAAU7gB,EAAM4E,UACvDT,MAAQ,CAAEoQ,MAAOuM,GACjBxG,WAAaA,GAA8B,aAAhB8F,EAC3B4B,gBAAkB,kBAAM,EAAKhf,SAAU,CAAEod,YAAa,cACtDnL,gBAAkB,kBAAM,MACxBhR,YAAc5B,EAAI,kBAAmB,sBACrCiV,eAAiB,KAErB,qCACS0G,EADT,2DAC4EoD,EAAe,IAD3F,uBA7Q+C,GAS5C5e,GA6QjByf,EACF,2BAAKrN,OAAO,KAAKC,QAAQ,YAAYF,MAAM,KAAKD,MAAM,8BAClD,4BAAMrV,EAAE,kBAAkBsT,KAAK,SAC/B,4BAAMtT,EAAE,0JAIV6Z,EAAa,CACf8E,SAAU,CACNhW,KAAM,UAEVuY,YAAa,CACTvY,KAAM,SACNsN,QAAS,QAEbmL,aAAc,CACVzY,KAAM,UACNsN,SAAS,GAEbkL,QAAS,CACLxY,KAAM,UAEV0Y,SAAU,CACN1Y,KAAM,UAEV2Y,QAAS,CACL3Y,KAAM,UAEV/C,MAAO,CACH+C,KAAM,SACNsN,QAAS,eAEbsL,WAAY,CACR5Y,KAAM,SACNsN,QAAS,QAEbuL,SAAU,CACN7Y,KAAM,SACNsN,QAAS,sBAEbwL,cAAe,CACX9Y,KAAM,SACNsN,QAAS,QAEbyL,aAAc,CACV/Y,KAAM,SACNsN,QAAS,QAEb2L,UAAW,CACPjZ,KAAM,UACNsN,SAAS,GAEbX,MAAO,CACH3M,KAAM,SACNsN,QAAS,KAEbV,OAAQ,CACJ5M,KAAM,SACNsN,QAAS,KAEb4L,OAAQ,CACJlZ,KAAM,SACNsN,QAAS,UAEb6L,OAAQ,CACJnZ,KAAM,SACNsN,QAAS,UAEb8L,eAAgB,CACZpZ,KAAM,SACNsN,QAAS,IAEb0L,eAAgB,CACZhZ,KAAM,SACNsN,QAAS,IAEb+L,WAAY,CACRrZ,KAAM,UAEV0L,QAAS,CACL1L,KAAM,UACNsN,SAAS,GAEbqD,UAAW,CACP3Q,KAAM,UACNsN,SAAS,GAEb+K,SAAU,CACNrY,KAAM,SACNsN,QAAS,MAEbgL,YAAa,CACTtY,KAAM,SACNsN,QAAS,MAIjBrD,EAAmB,cAAe,CAC9BhN,MAAO5C,EAAI,uBAAwB,sBACnCkT,YAAalT,EAAI,kDAAmD,sBACpEqC,KAAM,CACF8Q,IAAKyM,EACLxM,WAAmC,oBAAhBjR,YAA8BA,YAAY+P,WAAQhD,GAEzEmE,SAAU,iBACVC,SAAU,CAAEtT,EAAI,QAAS,sBAAwBA,EAAI,iBAAkB,sBAAwBA,EAAI,QAAS,sBAAwBA,EAAI,MAAO,uBAC/I0E,WAAYmS,EACZC,QAAS,CACLpS,WAAY,CACR4R,WAAW,IAGnB/C,SAAU,CACN2E,OAAO,EACP/C,QAAQ,GAEZ1B,KAAMqK,EACNpK,KAAM,YAAsB,IAAlBhP,EAAkB,EAAlBA,WAEFiX,EAkBAjX,EAlBAiX,SACAuC,EAiBAxZ,EAjBAwZ,YACAC,EAgBAzZ,EAhBAyZ,QACAC,EAeA1Z,EAfA0Z,aACAC,EAcA3Z,EAdA2Z,SACAzb,EAaA8B,EAbA9B,MACA2b,EAYA7Z,EAZA6Z,WACAC,EAWA9Z,EAXA8Z,SACAC,EAUA/Z,EAVA+Z,cACAC,EASAha,EATAga,aACAE,EAQAla,EARAka,UACAtM,EAOA5N,EAPA4N,MACAC,EAMA7N,EANA6N,OACAsM,EAKAna,EALAma,OACAC,EAIApa,EAJAoa,OACAE,EAGAta,EAHAsa,WACAhB,EAEAtZ,EAFAsZ,SACAC,EACAvZ,EADAuZ,YAEE4B,EAA4B,QAAhB3B,GAA2BC,EAAYA,OAAUjP,EAC7D+P,EAAiB,CACnB,oBACAL,GAAa,aACG,aAAhBV,KAAgCG,GAAY,iBAC5C1C,GACFra,OAAQC,SAAUC,KAAM,KAE1B,OACI,2BAAKjC,UAAY0f,EACZnd,MAAQ,CACJyd,uBAAwBlB,EAAxB,IACAoB,mBAAoBT,EAAgC,IAAfA,EAAWlM,EAA5B,KAAyD,IAAfkM,EAAWjM,EAArD,SAAmE7D,EACvFqD,OAAQA,EACRD,MAAOA,EACPoN,eAAgBb,EAChBxB,WAAYyB,GAEhBgB,aAAazB,GAEd,yBAAG9e,UAAU,sBACVuC,MAAQ,CAAE6Q,gBAAiB+L,GAC3Bxd,OAASkd,EAAe,SAAW,QACnCnE,IAAI,sBACJlN,KAAO8S,IAETjd,GACG,oBAACmN,EAAS6D,QAAV,CACIxP,QAAU4Z,EACVze,UAAU,oBACVuC,MAAQ,CAAEoQ,MAAOqM,GACjB5gB,MAAQiF,IAGf4b,GACG,oBAACzO,EAAS6D,QAAV,CACIxP,QAAU6Z,EACV1e,UAAU,uBACVuC,MAAQ,CAAEoQ,MAAOuM,GACjB9gB,MAAQ6gB,MAM5B3K,WAAY,CACR,CACInP,gBACOmS,EADP,CAEI6H,aAAc,CACV/Y,KAAM,SACNsN,QAAS,WAEb2L,UAAW,CACPjZ,KAAM,UACNsN,SAAS,KAGjBS,KAAM,YAAsB,IAAlBhP,EAAkB,EAAlBA,WAEFiX,EAgBAjX,EAhBAiX,SACAuC,EAeAxZ,EAfAwZ,YACAC,EAcAzZ,EAdAyZ,QACAC,EAaA1Z,EAbA0Z,aACAC,EAYA3Z,EAZA2Z,SACAzb,EAWA8B,EAXA9B,MACA2b,EAUA7Z,EAVA6Z,WACAC,EASA9Z,EATA8Z,SACAC,EAQA/Z,EARA+Z,cACAC,EAOAha,EAPAga,aACAE,EAMAla,EANAka,UACAtM,EAKA5N,EALA4N,MACAC,EAIA7N,EAJA6N,OACAsM,EAGAna,EAHAma,OACAC,EAEApa,EAFAoa,OACAE,EACAta,EADAsa,WAEEa,EAA4B,QAAhB3B,GAA2BC,EAAYA,OAAUjP,EAC7D+P,EAAiB,CACnB,oBACAL,GAAa,aACG,aAAhBV,KAAgCG,GAAY,iBAC5C1C,GACFra,OAAQC,SAAUC,KAAM,KAE1B,OACI,2BAAKjC,UAAY0f,EACZnd,MAAQ,CACJyd,uBAAwBlB,EAAxB,IACAoB,mBAAoBT,EAAgC,IAAfA,EAAWlM,EAA5B,KAAyD,IAAfkM,EAAWjM,EAArD,SAAmE7D,EACvFqD,OAAQA,EACRD,MAAOA,EACPoN,eAAgBb,EAChBxB,WAAYyB,GAEhBgB,aAAazB,GAEd,yBAAG9e,UAAU,sBACVuC,MAAQ,CAAE6Q,gBAAiB+L,GAC3Bxd,OAASkd,EAAe,SAAW,QACnCnE,IAAI,sBACJlN,KAAO8S,IAETjd,GACG,0BAAIrD,UAAU,oBAAoBuC,MAAQ,CAAEoQ,MAAOqM,IAC9C3b,GAGR4b,GACG,yBAAGjf,UAAU,uBAAuBuC,MAAQ,CAAEoQ,MAAOuM,IAChDD,MAOzB,CACI9Z,WAAYmS,EACZnD,KAAM,YAAsB,IAAlBhP,EAAkB,EAAlBA,WAEFwZ,EAcAxZ,EAdAwZ,YACAC,EAaAzZ,EAbAyZ,QACAC,EAYA1Z,EAZA0Z,aACAC,EAWA3Z,EAXA2Z,SACAzb,EAUA8B,EAVA9B,MACA2b,EASA7Z,EATA6Z,WACAC,EAQA9Z,EARA8Z,SACAC,EAOA/Z,EAPA+Z,cACAC,EAMAha,EANAga,aACAE,EAKAla,EALAka,UACAtM,EAIA5N,EAJA4N,MACAC,EAGA7N,EAHA6N,OACAsM,EAEAna,EAFAma,OACAC,EACApa,EADAoa,OAEEe,EAA4B,QAAhB3B,GAA2BC,EAAYA,OAAUjP,EAC7D+P,EAAiB,CACnB,oBACAL,GAAa,aACG,aAAhBV,KAAgCG,GAAY,kBAC9C/c,OAAQC,SAAUC,KAAM,KAE1B,OACI,2BAAKjC,UAAY0f,EACZnd,MAAQ,CACJyd,uBAAwBlB,EAAxB,IACA9L,OAAQA,EACRD,MAAOA,EACPoN,eAAgBb,EAChBxB,WAAYyB,GAEhBgB,aAAazB,GAEd,yBAAG9e,UAAU,sBACVuC,MAAQ,CAAE6Q,gBAAiB+L,GAC3Bxd,OAASkd,EAAe,SAAW,QACnCnE,IAAI,sBACJlN,KAAO8S,IAETjd,GACG,0BAAIrD,UAAU,oBAAoBuC,MAAQ,CAAEoQ,MAAOqM,IAC9C3b,GAGR4b,GACG,yBAAGjf,UAAU,uBAAuBuC,MAAQ,CAAEoQ,MAAOuM,IAChDD,SAvkBrC,CAglBI5f,GAAGqB,KAAMrB,GAAGoV,OAAQpV,GAAGsB,QAAStB,GAAGK,YAAaL,GAAGC,a,w4BChlBvD,SAAW0Q,EAAQC,EAAUC,EAAWC,EAAeC,EAAcoQ,GACjErQ,EAAgB9Q,GAAGK,aAAeL,GAAGM,OADoC,IAElEc,EAAMuP,EAANvP,GACCG,EAAuDsP,EAAvDtP,UAAWC,EAA4CqP,EAA5CrP,SAAU4f,EAAkCvQ,EAAlCuQ,eAAgBC,EAAkBxQ,EAAlBwQ,cACrCrQ,EAAmCJ,EAAnCI,kBAAmBC,EAAgBL,EAAhBK,YAJ8C,EAKSH,EAA1EI,EALiE,EAKjEA,kBAA6B9Q,GALoC,EAK9C+Q,SAL8C,EAKpC/Q,cAAc2W,EALsB,EAKtBA,cAAe1F,EALO,EAKPA,YAC1DlR,EAAgF4Q,EAAhF5Q,YAAayH,EAAmEmJ,EAAnEnJ,aAAc0J,EAAqDP,EAArDO,UAAWgQ,EAA0CvQ,EAA1CuQ,SAAUtK,EAAgCjG,EAAhCiG,aAAcC,EAAkBlG,EAAlBkG,cAC9DtB,EAAqBwL,EAArBxL,OAAQa,EAAa2K,EAAb3K,SAMZ+K,GAJQC,EAAQ,IAIQ,CAAE,CAAE,qBAE1BC,EAfmE,YAgBrE,aAAc,0EACDrP,YADC,OAGV,EAAKxQ,MAAQ,CACT8f,cAAe,GACfC,cAAe,MALT,EAhBuD,O,yTAAA,sDAyBhD,MACqB7f,KAAK/B,MAAnC+F,EADS,EACTA,WAAYwM,EADH,EACGA,cACdC,EAAqBC,mBAAmB,eAGnB,IAAvB1M,EAAW2M,UACuB,iBAA9B,IAAOF,EAAP,cAAOA,KAA0D,OAAvBA,GAC1C/T,OAAO8E,KAAKiP,GAAoB1O,KAAI,SAACkC,GACI,kBAA1BD,EAAWC,GAClBD,EAAWC,KAAewM,EAAmBxM,GAE7CD,EAAWC,GAAawM,EAAmBxM,MAMvDuM,EAAc,CAACG,SAAS,KAIxB3M,EAAW8b,OAAOtc,QACfQ,EAAW8b,OAAO,GAAGjiB,eAAgB,SACP,OAA9BmG,EAAW8b,OAAO,GAAG7a,OAExBjF,KAAKC,SAAU,CACX2f,cAAe5b,EAAW8b,OAC1BD,eAAe,IAInBJ,EAAwB,MAxDqC,0CA4DjD,MACoBzf,KAAK/B,MAAjCuS,EADQ,EACRA,cAERA,EAAc,CACV5J,GAAI,aAJQ,EACOqN,YAOU,IAA7BjU,KAAKF,MAAM+f,eACXrP,EAAe,CACXsP,OAAQ,OAtEiD,yCA2EjDjT,GAAY,IACpBoH,EAAajU,KAAK/B,MAAlBgW,SAGFT,GAAcgC,EADM3B,EAAQ,qBAA1B2B,eAC2BvB,GAEnC,IAAiC,IAA7BjU,KAAKF,MAAM+f,gBACNhT,EAAU7I,WAAW8b,OAAOtc,QAC9BxD,KAAKF,MAAM8f,cAAcpc,OAI5BxD,KAAK+f,qBAAsB/f,KAAKF,MAAM8f,oBAEnC,IAAMpM,EAAYhQ,OAAS,EAK9Bwc,EAFwBtL,EAAU,qBAA1BsL,aAGJ7Q,EAAa,mBACb,EACA8E,MAjGyD,2CAkH/C6L,GAAS,MACqB9f,KAAK/B,MAAlBgW,GADR,EACnBzD,cADmB,EACJxM,WADI,EACQiQ,UAC3B+L,EAAgBtL,EAAU,qBAA1BsL,YAEJC,GAAS,EA0BPC,EAAeJ,EAAO/d,KAAK,SAAEmM,EAAMzQ,GAGrC,QAAmB+Q,IAAfN,EAAKjQ,MAKT,OACIiQ,EAAKjQ,MAAMiH,SAASnD,KAAK,SAAEoe,GACvB,MAAsB,iBAAVA,EACDA,EAEAb,EAAgBC,EAAeY,EAAMlb,KAAMkb,EAAMliB,MAAOkiB,EAAMliB,MAAMiH,cATnF+a,GAAS,MAgBF,IAAXA,IAgBiBC,EAAane,KAAK,SAAEmM,GACrC,OAAOA,EAAKpN,KAAM,OAIT4U,SAAS,SAAExH,EAAMlM,GAE1Bge,EACI7Q,EAAa,kBAAmB,CAC5BsK,QAASvL,IAEblM,EACAiS,MAKRjU,KAAKC,SAAU,CAAE4f,eAAe,OArMiC,+BAyMjE,IAAMO,EAAY,CACd,CAACzhB,MAAOW,EAAG,OAAQ,sBAAuBrC,MAAO,IACjD,CAAC0B,MAAOW,EAAG,UAAW,sBAAuBrC,MAAO,cACpD,CAAC0B,MAAOW,EAAG,gBAAiB,sBAAuBrC,MAAO,iBAC1D,CAAC0B,MAAOW,EAAG,OAAQ,sBAAuBrC,MAAO,QACjD,CAAC0B,MAAOW,EAAG,OAAQ,sBAAuBrC,MAAO,eACjD,CAAC0B,MAAOW,EAAG,YAAa,sBAAuBrC,MAAO,OACtD,CAAC0B,MAAOW,EAAG,cAAe,sBAAuBrC,MAAO,WACxD,CAAC0B,MAAOW,EAAG,cAAe,sBAAuBrC,MAAO,SACxD,CAAC0B,MAAOW,EAAG,QAAS,sBAAuBrC,MAAO,SAClD,CAAC0B,MAAOW,EAAG,UAAW,sBAAuBrC,MAAO,UACpD,CAAC0B,MAAOW,EAAG,OAAQ,sBAAuBrC,MAAO,QACjD,CAAC0B,MAAOW,EAAG,SAAU,sBAAuBrC,MAAO,UACnD,CAAC0B,MAAOW,EAAG,OAAQ,sBAAuBrC,MAAO,iBACjD,CAAC0B,MAAOW,EAAG,cAAe,sBAAuBrC,MAAO,mBACxD,CAAC0B,MAAOW,EAAG,gBAAiB,sBAAuBrC,MAAO,oBAC1D,CAAC0B,MAAOW,EAAG,YAAa,sBAAuBrC,MAAO,MACtD,CAAC0B,MAAOW,EAAG,UAAW,sBAAuBrC,MAAO,WACpD,CAAC0B,MAAOW,EAAG,UAAW,sBAAuBrC,MAAO,WACpD,CAAC0B,MAAOW,EAAG,OAAQ,sBAAuBrC,MAAO,eACjD,CAAC0B,MAAOW,EAAG,OAAQ,sBAAuBrC,MAAO,QACjD,CAAC0B,MAAOW,EAAG,SAAU,sBAAuBrC,MAAO,gBACnD,CAAC0B,MAAOW,EAAG,SAAU,sBAAuBrC,MAAO,WAvBlD,EA8BD+C,KAAK/B,MAJL+F,EA1BC,EA0BDA,WACAwM,EA3BC,EA2BDA,cACA3R,EA5BC,EA4BDA,UACUwhB,EA7BT,EA6BDpM,SAGArN,EAUA5C,EAVA4C,GAEAjF,GAQAqC,EATA8b,OASA9b,EARArC,MACAkX,EAOA7U,EAPA6U,SACAC,EAMA9U,EANA8U,UACAwH,EAKAtc,EALAsc,OACAC,EAIAvc,EAJAuc,QACAC,EAGAxc,EAHAwc,WACA1D,EAEA9Y,EAFA8Y,SACAlH,EACA5R,EADA4R,UAEE6K,EAAgB,CAClB5hB,EACA+H,EACAjF,GAAQ,aACRA,GAAQA,cAAcA,GACxBf,OAAOC,SAASC,KAAK,KACjB+Y,OAA0B,IAAZhB,EAA0B1Q,SAAS0Q,GAAY,GAC7D6H,OAAwB,IAAVJ,EAAwBnY,SAASmY,GAAU,EACzDK,OAAyB,IAAXJ,EAA6C,EAApBpY,SAASoY,GAAe,EAErE,OACI3K,EACI,2BAAKE,IAAKxW,EAAG,gBAAiB,sBAAuBsS,MAAM,OAAOa,IApPzD,2rGAsPT,oBAAC/S,EAAD,KACI,oBAACuV,EAAD,KACI,oBAACC,EAAD,KACI,oBAACC,EAAD,CACIxW,MAAOW,EAAG,6DAA8D,sBACxEqC,KAAK,SACLV,QAAS,kBAAMuP,EAAc,CAAC5J,GAAI,aAAeyZ,SAI7D,oBAACjR,EAAD,KACI,oBAACI,EAAD,CAAWtN,MAAO5C,EAAG,gBAAiB,sBAAuByS,aAAa,GACtE,oBAACjM,EAAD,CACInH,MAAOW,EAAG,YAAa,sBACvBrC,MAAO6f,GAAY,GACnBle,SAAU,SAACib,GAAD,OAAUrJ,EAAc,CAACsM,SAAUjD,KAC7CvR,IAAK,GACLC,IAAK,IACLuR,WAAW,mBACXC,YAAA,KAGR,oBAACvK,EAAD,CAAWtN,MAAO5C,EAAG,gBAAiB,uBAClC,oBAACjB,EAAD,CAAaM,MAAOW,EAAG,YAAa,uBAChC,2BAAKT,UAAU,4BACVuhB,EAAUre,KAAI,SAACmM,EAAMlM,GAAP,OACX,2BAAKnD,UAAU,sBAAsBtB,IAAKyE,GAC1C,4BAAMf,QAAS,kBAAMuP,EAAc,CAAC7O,KAAMuM,EAAKjR,SACzC4B,UAAW,CACPqP,EAAKjR,QAAU0E,GAAQ,SACR,KAAfuM,EAAKjR,OAAgB,eACvB2D,OAAOC,SAASC,KAAK,MAEzB,oBAAC0e,EAAD,CAAU7d,KAAMuM,EAAKjR,eAMpC0E,GACG,oBAACjC,EAAD,KACI,oBAAC8P,EAAD,CACItN,MAAO,CACH5C,EAAG,aAAc,sBACjB,4BAAM/B,IAAI,wBACJsB,UAAA,uBAAkC8C,EAClCP,MAAO,CAACoQ,MAAOsH,EAAWhB,WAAY,WAEhD/F,aAAa,GAEb,oBAACzT,EAAD,CACIrB,MAAO6b,EACPla,SAAU,SAAC3B,GAAD,OAAWuT,EAAc,CAACsI,eAAqBtK,IAAVvR,EAAsB,OAASA,QAGtF,oBAAC6I,EAAD,CACInH,MAAOW,EAAG,YAAa,sBACvBrC,MAAO4b,GAAY,GACnBja,SAAU,SAACib,GAAD,OAAUrJ,EAAc,CAACqI,SAAUgB,KAC7CvR,IAAK,GACLC,IAAK,IACLwR,YAAA,IAEJ,oBAACjU,EAAD,CACInH,MAAOW,EAAG,cAAe,sBACzBrC,MAAOujB,GAAc,GACrB5hB,SAAU,SAACib,GAAD,OAAUrJ,EAAc,CAACgQ,WAAY3G,KAC/CvR,IAAK,EACLC,IAAK,IACLwR,YAAA,IAEJ,oBAACjU,EAAD,CACInH,MAAOW,EAAG,SAAU,sBACpBrC,MAAOqjB,GAAU,GACjB1hB,SAAU,SAACib,GAAD,OAAUrJ,EAAc,CAAC8P,OAAQzG,KAC3CvR,IAAK,EACLC,IAAK,IACLwR,YAAA,IAEJ,oBAACjU,EAAD,CACInH,MAAOW,EAAG,UAAW,sBACrBrC,MAAOsjB,GAAW,GAClB3hB,SAAU,SAACib,GAAD,OAAUrJ,EAAc,CAAC+P,QAAS1G,KAC5CvR,IAAK,EACLC,IAAK,IACLwR,YAAA,OAMpB,0BAAIlb,UAAY4hB,GACZ,oBAAClR,EAAD,CACIyG,SAAWyJ,EACXxJ,cAAe,EACfC,cAAgB,CACZ,mBAEJrX,UAAY4hB,KAGpB,+BACI,qCACS7Z,EADT,oBAC+BkW,EAD/B,SAGCnb,GACD,qCACSiF,EADT,6DAEwBiT,EAAO8G,GAF/B,iIAKO/Z,EALP,gEAMqBiS,EANrB,mDAOiBC,EAPjB,uDAQuB0H,EARvB,oDASkBF,EATlB,qDAUmBC,EAVnB,2DAWwB1G,EAAO8G,EAAOD,GAXtC,+CA3WiD,GAenDjhB,GAiXhBmhB,EACF,2BAAK/O,OAAO,KAAKC,QAAQ,YAAYF,MAAM,KAAKD,MAAM,8BAClD,4BAAMrV,EAAE,2FACR,4BAAMA,EAAE,gBAAgBsT,KAAK,UAI/BiR,EAAiB,CACnBja,GAAI,CACA3B,KAAM,UAEVtD,KAAM,CACFsD,KAAM,UAEV4T,SAAU,CACN5T,KAAM,SACNsN,QAAS,IAEbuG,UAAW,CACP7T,KAAM,SACNsN,QAAS,QAEbuK,SAAU,CACN7X,KAAM,SACNsN,QAAS,IAEbiO,WAAY,CACRvb,KAAM,SACNsN,QAAS,IAEb+N,OAAQ,CACJrb,KAAM,SACNsN,QAAS,GAEbgO,QAAS,CACLtb,KAAM,SACNsN,QAAS,GAEb5B,QAAS,CACL1L,KAAM,UACNsN,SAAS,GAEbqD,UAAW,CACP3Q,KAAM,UACNsN,SAAS,GAGbuN,OAAQ,CACJ7a,KAAM,QACNqV,OAAQ,WACRL,SAAU,KACV1H,QAAS,KAIjBrD,EAAkB,aAAc,CAC5BhN,MAAO5C,EAAG,sBAAuB,sBACjCkT,YAAalT,EAAG,2CAA4C,sBAC5DqC,KAAM,CACF8Q,IAAKmO,EACLlO,WAAmC,oBAAhBjR,YAA8BA,YAAY+P,WAAQhD,GAEzEmE,SAAU,iBACVC,SAAU,CAACtT,EAAG,OAAQ,sBAAuBA,EAAI,gBAAiB,sBAAwBA,EAAG,OAAQ,uBACrG0E,WAAY6c,EACZzK,QAAS,CACLpS,WAAY,CACR4R,WAAW,IAGnBxC,WAAY,CACR8G,KAAM,CACF,CACIjV,KAAM,QACNqO,OAAQ,CAAE,aACVC,UAAW,SAAEvP,EAAYwP,GAErB,IAAMsN,EAAOtN,EAAYzR,KAAK,SAAEmM,EAAMlM,GAClC,OAAOmN,EACH,kBADG,KAEEnL,EAFF,CAEcyV,QAASjG,EAAYxR,GAAOgC,WAAWyV,cAIhE,OAAOtK,EACH,aADG,KAEEnL,EAFF,CAEc2M,SAAS,IAC1BmQ,MAKhBzN,GAAI,CACA,CACIpO,KAAM,QACNqO,OAAQ,CAAE,aACVC,UAAW,SAAEvP,EAAYwP,GAErB,IAAMsN,EAAOtN,EAAYzR,KAAK,SAAEmM,EAAMlM,GAClC,OAAOmN,EACH,iBADG,KAEEnL,EAFF,CAEcyV,QAASjG,EAAYxR,GAAOgC,WAAWyV,cAIhE,OAAOtK,EACH,YACA,CAAEnL,cACF8c,OAMpBjO,SAAU,CACN4B,QAAQ,GAEZ1B,KAAM4M,EACN3M,KAAM,YAAwB,IAAbhP,EAAa,EAAbA,WAET4C,EAGA5C,EAHA4C,GAEAjF,GACAqC,EAFA8b,OAEA9b,EADArC,MAEE8e,EAAgB,CAClB7Z,EACAjF,GAAQ,aACRA,GAAQA,cAAcA,GACxBf,OAAOC,SAASC,KAAK,KAEvB,OAAO,+BACH,0BAAIjC,UAAY4hB,GACZ,oBAAClR,EAAY2D,QAAb,SAIZC,WAAY,CACR,CACInP,WAAY6c,EACZhO,SAAU,CACN4B,QAAQ,GAEZzB,KAAM,YAAsB,IAAlBhP,EAAkB,EAAlBA,WAEF4C,EAGA5C,EAHA4C,GACAkZ,EAEA9b,EAFA8b,OACAne,EACAqC,EADArC,KAEE8e,EAAgB,CAClB7Z,EACAjF,GAAQ,aACRA,GAAQA,cAAcA,GACxBf,OAAOC,SAASC,KAAK,KAEvB,OAAO,+BACH,0BAAIjC,UAAW4hB,GACVX,SA5hB7B,CAmiBG5hB,GAAGqB,KAAMrB,GAAGoV,OAAQpV,GAAGsB,QAAStB,GAAGK,YAAaL,GAAGC,WAAYD,GAAGkH,O,gBCniBrE,IAAI2b,EAAa,EAAQ,IACrBC,EAAY,EAAQ,IAGpBC,EAAmB,CAAEC,gBAAgB,EAAMC,yBAAyB,GAUxE,SAASC,EAAgBC,EAAMlgB,GAC7B,GAAoB,iBAATkgB,EACT,MAAM,IAAI1e,UAAU,mCAEtB,OAAOoe,EAAWC,EAAUK,EAAMJ,GAAmB9f,GAGvDigB,EAAgBL,WAAaA,EAC7BK,EAAgBJ,UAAYA,EAG5BjlB,EAAOD,QAAUslB,EACjBrlB,EAAOD,QAAQyW,QAAU6O,G,gBC1BzB,IAAIE,EAAoB,EAAQ,IAC5BC,EAAY,EAAQ,GAqGxB,SAASC,EAA8BlhB,GACrC,OACEihB,EAAUhf,4BACI,QAAdjC,EAAK2E,MACLsc,EAAU9d,kBAAkBnD,EAAK/D,KAAM+D,EAAKyE,SAIhDhJ,EAAOD,QAlGP,SAASilB,EAAWzc,EAAOnD,GAezB,IAZA,IAMIb,EAEAmhB,EACAxjB,EACAiH,EAVA9C,GAFJjB,EAAUA,GAAW,IAEDugB,SAAW,EAAQ,GACnCC,EAAevf,EAAMuf,aACrBpC,EAAgBnd,EAAMmd,cACtBqC,EAAiBxf,EAAMwf,eAEvBre,EAAS,GAETse,EAAwC,mBAApB1gB,EAAQ2B,QAKvB9G,EAAI,EAAG8H,EAAMQ,EAAMd,OAAQxH,EAAI8H,EAAK9H,IAI3C,GAHAsE,EAAOgE,EAAMtI,GAGT6lB,GAGED,EAFJH,EAAiBtgB,EAAQ2B,QAAQxC,IAK3BwD,EAAM,IACR2d,EAAiBE,EAAaF,EAAgB,CAC5ClkB,IAAKkkB,EAAelkB,KAAOvB,KAG/BuH,EAAO+B,KAAKmc,QAKhB,GAAkB,SAAdnhB,EAAK2E,KAAT,CAeA,GAVAhH,EAAQqC,EAAKyE,QACRyc,EAA8BlhB,KAEjCrC,EAAQqjB,EAAkBhhB,EAAKyE,UAGjCG,EAAW,KAIO,WAAd5E,EAAK2E,MAAmC,UAAd3E,EAAK2E,KAG7B3E,EAAK4E,SAAS,KAChBjH,EAAM6jB,wBAA0B,CAC9BC,OAAQzhB,EAAK4E,SAAS,GAAGE,WAGxB,IAAkB,QAAd9E,EAAK2E,KAad,SAVkB,aAAd3E,EAAK/D,MAAuB+D,EAAK4E,SAAS,GAC5CjH,EAAM+jB,aAAe1hB,EAAK4E,SAAS,GAAGE,KAG7B9E,EAAK4E,UAAY5E,EAAK4E,SAAS1B,SACxC0B,EAAW6b,EAAWzgB,EAAK4E,SAAU/D,IAUrC2C,EAAM,IACR7F,EAAMV,IAAMvB,GAGduH,EAAO+B,KAAKia,EAAcjf,EAAK/D,KAAM0B,EAAOiH,SA5C1C3B,EAAO+B,KAAKhF,EAAK8E,MA+CrB,OAAyB,IAAlB7B,EAAOC,OAAeD,EAAO,GAAKA,I,gBC/F3C,IAAI0e,EAAgB,EAAQ,IACxBC,EAAgB,EAAQ,IACxBX,EAAY,EAAQ,GAEpB9e,EAAY8e,EAAU9e,UAEtB0f,EAAiBF,EAAcZ,KAC/Be,EAAgBH,EAAcI,IAC9BC,EAAoBL,EAAcK,kBAElCzkB,EAAiBnB,OAAOkB,UAAUC,eAgFtC9B,EAAOD,QAxEP,SAA2BkI,GAGzB,IAAIue,EACAC,EACAC,EACA9kB,EALJqG,EAAaA,GAAc,GAM3B,IAAI/F,EAAQ,GAEZ,IAAKskB,KAAiBve,EACpBye,EAAiBze,EAAWue,GAGxBD,EAAkBC,GACpBtkB,EAAMskB,GAAiBE,GAKzBD,EAA0BD,EAAc1f,cACpChF,EAAe1B,KAAKgmB,EAAgBK,GAEtCvkB,GADAN,EAAWwkB,EAAeK,IACXE,iBACb/kB,EAASglB,iBACRhlB,EAASilB,4BAA8BH,IAEpCA,EAKJ5kB,EAAe1B,KAAKimB,EAAeG,GAErCtkB,GADAN,EAAWykB,EAAcG,IACVG,cAAgBD,EAK7BlB,EAAUhf,6BACZtE,EAAMskB,GAAiBE,IAS3B,OAJwB,MAApBze,EAAW5C,QACbnD,EAAMmD,MAYV,SAAiBA,GACf,IAAIyhB,EAAc,GAEdzhB,GACF8gB,EAAc9gB,GAAO,SAAUzD,EAAUV,GAEnCU,GAAYV,IACd4lB,EAAYpgB,EAAU9E,IAAaV,MAKzC,OAAO4lB,EAxBSC,CAAQ9e,EAAW5C,QAG5BnD,I,gBClET,IAAI8kB,EAAwB,EAAQ,IAChCC,EAAuB,EAAQ,IAC/BC,EAAY,EAAQ,IAEpBC,EAAoBD,EAAUC,kBAC9BC,EAAoBF,EAAUE,kBAC9BC,EAAoBH,EAAUG,kBAC9BC,EAA6BJ,EAAUI,2BACvCC,EAA+BL,EAAUK,6BAS7C,SAASC,EAAUtmB,EAAOumB,GACxB,OAAQvmB,EAAQumB,KAAaA,EAU/B,SAASC,EAAwBC,EAAmBC,EAAQC,GAC1D,IAEIrB,EACAG,EACAmB,EAJAC,EAAaJ,EAAkBI,WAC/BC,EAAoBL,EAAkBK,kBAK1C,IAAKrB,KAAgBoB,EACnBvB,EACEwB,EAAkBrB,KACjBkB,EAAQlB,EAAeA,EAAa7f,eACvCghB,EAAaC,EAAWpB,GAExBiB,EAAOpB,GAAiB,CACtBA,cAAeA,EACfG,aAAcA,EACdsB,gBAAiBT,EAAUM,EAAYX,GACvCP,gBAAiBY,EAAUM,EAAYV,GACvCc,gBAAiBV,EAAUM,EAAYT,GACvCc,wBAAyBX,EACvBM,EACAR,GAEFT,0BAA2BW,EACzBM,EACAP,IAWR,IAAIjC,EAAO,GACXoC,EAAwBV,EAAuB1B,GAO/C,IAAIgB,EAAM,GACVoB,EAAwBT,EAAsBX,GAAK,GAOnD,IAAI8B,EAAa,GACjBV,EAAwBV,EAAuBoB,GAC/CV,EAAwBT,EAAsBmB,GAAY,GAO1DpoB,EAAOD,QAAU,CACfulB,KAAMA,EACNgB,IAAKA,EACL8B,WAAYA,EAUZ7B,kBAAmB8B,OAAOxmB,UAAUgF,KAAKpF,KACvC,IAAI4mB,OAAO,iP,cCvGfroB,EAAOD,QAAU,CACfgoB,WAAY,CACVpK,UAAW,EACX2K,OAAQ,EACRC,cAAe,EACfC,UAAW,EACXC,OAAQ,EACRC,gBAAiB,EACjBC,kBAAmB,EACnB5O,IAAK,EACL6O,GAAI,EACJC,MAAO,EACPC,aAAc,EACdC,SAAU,EACVC,QAAS,EACTC,YAAa,EACbC,YAAa,EACbC,QAAS,EACTC,UAAW,EACXla,QAAS,EACTma,KAAM,EACNC,QAAS,EACTxmB,UAAW,EACXymB,KAAM,GACNC,QAAS,EACT9L,QAAS,EACT+L,gBAAiB,EACjBC,YAAa,EACbC,SAAU,EACVC,aAAc,EACdC,OAAQ,EACRC,YAAa,EACbzgB,KAAM,EACN0gB,SAAU,EACVvT,QAAS,EACTwT,MAAO,EACPC,IAAK,EACL7jB,SAAU,EACV8jB,SAAU,GACVC,UAAW,EACXC,QAAS,EACTC,KAAM,EACNC,WAAY,EACZC,YAAa,EACbC,WAAY,EACZC,eAAgB,EAChBC,WAAY,EACZC,YAAa,EACbC,QAAS,EACT9U,OAAQ,EACR+U,OAAQ,EACRC,KAAM,EACNxa,KAAM,EACNya,SAAU,EACVC,QAAS,EACTC,UAAW,EACXrlB,KAAM,EACNiF,GAAI,EACJqgB,UAAW,EACXC,UAAW,EACXvjB,GAAI,EACJwjB,UAAW,EACXC,QAAS,EACTC,KAAM,EACN1oB,MAAO,EACP2oB,KAAM,EACNxG,KAAM,EACNyG,KAAM,EACNC,IAAK,EACLC,SAAU,EACVC,aAAc,EACdC,YAAa,EACbpf,IAAK,EACLqf,UAAW,EACXC,MAAO,EACPC,WAAY,EACZC,OAAQ,EACRzf,IAAK,EACL0f,UAAW,EACXC,SAAU,EACVC,MAAO,EACP3rB,KAAM,EACN4rB,MAAO,EACPC,WAAY,EACZxJ,KAAM,EACNyJ,QAAS,EACTC,QAAS,EACTpnB,YAAa,EACbqnB,YAAa,EACbC,OAAQ,EACRC,QAAS,EACTC,QAAS,EACTC,WAAY,EACZC,SAAU,EACVC,eAAgB,EAChBtP,IAAK,EACL/Q,SAAU,EACVsgB,SAAU,EACVC,KAAM,EACNC,KAAM,GACNC,QAAS,EACTC,QAAS,EACTC,MAAO,EACPC,OAAQ,EACRC,UAAW,EACXC,SAAU,EACVC,SAAU,EACVC,MAAO,EACP3P,KAAM,GACN4P,MAAO,EACPC,KAAM,GACNC,WAAY,EACZlX,IAAK,EACLmX,OAAQ,EACRC,QAAS,EACTC,OAAQ,EACRC,MAAO,EACPC,KAAM,EACN5oB,MAAO,EACP6oB,QAAS,EACTC,SAAU,EACV1pB,OAAQ,EACR0B,MAAO,EACP+C,KAAM,EACNklB,OAAQ,EACRltB,MAAO,EACP2U,MAAO,EACPwY,MAAO,EACPC,KAAM,EACNC,MAAO,EACPC,SAAU,EACVC,OAAQ,EACRC,OAAQ,EACR9sB,SAAU,EACV+sB,SAAU,EACVC,OAAQ,EACRC,MAAO,EACPC,eAAgB,EAChBC,YAAa,EACbC,SAAU,EACVvZ,MAAO,EACPwZ,SAAU,EACVC,UAAW,EACXC,SAAU,EACVC,OAAQ,EACRC,QAAS,EACTC,QAAS,EACTC,SAAU,EACVC,aAAc,GAEhBxH,kBAAmB,CACjBO,cAAe,iBACfzlB,UAAW,QACXkoB,QAAS,MACTC,UAAW,gB,cC1JfjrB,EAAOD,QAAU,CACfgoB,WAAY,CACV0H,aAAc,EACdC,WAAY,EACZC,SAAU,EACVC,kBAAmB,EACnBC,aAAc,EACdC,WAAY,EACZC,UAAW,EACXC,WAAY,EACZC,OAAQ,EACRzJ,cAAe,EACf0J,cAAe,EACfC,YAAa,EACbC,QAAS,EACTC,cAAe,EACfC,YAAa,EACbC,cAAe,EACfC,KAAM,EACNC,MAAO,EACPC,KAAM,EACNC,GAAI,EACJC,SAAU,EACVC,UAAW,EACXC,KAAM,EACNC,SAAU,EACVC,SAAU,EACVC,cAAe,EACfC,mBAAoB,EACpBC,0BAA2B,EAC3BC,aAAc,EACdC,eAAgB,EAChBC,kBAAmB,EACnBC,iBAAkB,EAClBC,OAAQ,EACRC,GAAI,EACJC,GAAI,EACJnxB,EAAG,EACHoxB,WAAY,EACZC,QAAS,EACTC,gBAAiB,EACjBC,UAAW,EACXvU,QAAS,EACTwU,QAAS,EACTC,iBAAkB,EAClBC,IAAK,EACLC,GAAI,EACJC,GAAI,EACJC,SAAU,EACVC,UAAW,EACXC,iBAAkB,EAClBC,IAAK,EACLC,SAAU,EACVC,0BAA2B,EAC3B5e,KAAM,EACN6e,YAAa,EACbC,SAAU,EACV9tB,OAAQ,EACR+tB,UAAW,EACXC,YAAa,EACbC,WAAY,EACZC,aAAc,EACdC,UAAW,EACXC,WAAY,EACZlS,SAAU,EACVmS,eAAgB,EAChBC,YAAa,EACbzd,UAAW,EACX0d,YAAa,EACbC,WAAY,EACZxlB,OAAQ,EACRsQ,KAAM,EACNmV,GAAI,EACJC,GAAI,EACJC,GAAI,EACJC,GAAI,EACJC,UAAW,EACXC,2BAA4B,EAC5BC,yBAA0B,EAC1BC,SAAU,EACVC,kBAAmB,EACnBC,cAAe,EACfC,QAAS,EACTC,UAAW,EACXC,aAAc,EACdC,YAAa,EACbC,eAAgB,EAChBC,GAAI,EACJC,IAAK,EACLC,UAAW,EACXC,EAAG,EACHC,GAAI,EACJC,GAAI,EACJC,GAAI,EACJC,GAAI,EACJC,aAAc,EACdC,iBAAkB,EAClBC,QAAS,EACTC,UAAW,EACXC,WAAY,EACZC,SAAU,EACVC,aAAc,EACdC,cAAe,EACfC,cAAe,EACfC,kBAAmB,EACnBC,MAAO,EACPC,UAAW,EACXC,UAAW,EACXC,YAAa,EACbC,aAAc,EACdC,YAAa,EACbC,YAAa,EACbC,KAAM,EACNC,iBAAkB,EAClBC,UAAW,EACXC,aAAc,EACd70B,KAAM,EACN80B,WAAY,EACZC,OAAQ,EACR9hB,QAAS,EACT+hB,SAAU,EACV5qB,MAAO,EACP6qB,OAAQ,EACRC,YAAa,EACbC,OAAQ,EACRC,SAAU,EACVC,iBAAkB,EAClBC,kBAAmB,EACnBC,WAAY,EACZC,QAAS,EACTC,WAAY,EACZC,oBAAqB,EACrBC,iBAAkB,EAClBC,aAAc,EACdC,cAAe,EACfhjB,OAAQ,EACRijB,UAAW,EACXC,UAAW,EACXC,UAAW,EACXC,cAAe,EACfC,oBAAqB,EACrBC,eAAgB,EAChBx2B,EAAG,EACHy2B,OAAQ,EACRC,KAAM,EACNC,KAAM,EACNC,gBAAiB,EACjBC,YAAa,EACbC,UAAW,EACXC,mBAAoB,EACpBC,iBAAkB,EAClBC,QAAS,EACTxwB,OAAQ,EACRywB,OAAQ,EACRC,GAAI,EACJC,GAAI,EACJC,MAAO,EACPC,KAAM,EACNC,eAAgB,EAChBC,MAAO,EACPC,QAAS,EACTC,iBAAkB,EAClBC,iBAAkB,EAClBC,MAAO,EACPC,aAAc,EACdC,YAAa,EACbC,aAAc,EACdC,MAAO,EACPC,MAAO,EACPC,YAAa,EACbC,UAAW,EACXC,YAAa,EACbC,sBAAuB,EACvBC,uBAAwB,EACxB1yB,OAAQ,EACR2yB,OAAQ,EACRC,gBAAiB,EACjBC,iBAAkB,EAClBC,cAAe,EACfC,eAAgB,EAChBC,iBAAkB,EAClBC,cAAe,EACfC,YAAa,EACbC,aAAc,EACdC,eAAgB,EAChBC,YAAa,EACbC,QAAS,EACTC,QAAS,EACTC,WAAY,EACZC,eAAgB,EAChBC,cAAe,EACfC,WAAY,EACZhjB,GAAI,EACJE,UAAW,EACX+iB,GAAI,EACJC,GAAI,EACJC,kBAAmB,EACnBC,mBAAoB,EACpBC,QAAS,EACTC,YAAa,EACbC,aAAc,EACdC,WAAY,EACZC,YAAa,EACbC,SAAU,EACVC,aAAc,EACdC,cAAe,EACfnX,OAAQ,EACRoX,aAAc,EACd10B,QAAS,EACT20B,SAAU,EACVC,YAAa,EACbC,YAAa,EACbvlB,QAAS,EACTwlB,WAAY,EACZC,WAAY,EACZC,OAAQ,EACRC,YAAa,EACbC,YAAa,EACbtlB,EAAG,EACHulB,QAAS,EACTC,GAAI,EACJC,GAAI,EACJC,iBAAkB,EAClBC,aAAc,EACdC,aAAc,EACdC,UAAW,EACXC,UAAW,EACXC,UAAW,EACXC,WAAY,EACZC,UAAW,EACXC,QAAS,EACT3mB,MAAO,EACP4mB,WAAY,EACZC,QAAS,EACTC,SAAU,EACVpmB,EAAG,EACHqmB,GAAI,EACJC,GAAI,EACJC,iBAAkB,EAClBC,EAAG,EACHC,WAAY,GAEd/U,kBAAmB,CACjByH,aAAc,gBACdG,kBAAmB,qBACnBI,WAAY,cACZO,cAAe,iBACfM,UAAW,aACXE,SAAU,YACVC,SAAU,YACVE,mBAAoB,sBACpBC,0BAA2B,8BAC3BC,aAAc,gBACdC,eAAgB,kBAChBW,iBAAkB,oBAClBM,iBAAkB,oBAClBI,YAAa,eACbC,SAAU,YACVG,WAAY,cACZC,aAAc,gBACdE,WAAY,cACZlS,SAAU,YACVmS,eAAgB,mBAChBC,YAAa,eACbzd,UAAW,aACX0d,YAAa,eACbC,WAAY,cACZK,UAAW,aACXC,2BAA4B,+BAC5BC,yBAA0B,6BAC1BK,UAAW,cACXC,aAAc,iBACdE,eAAgB,kBAChBgB,cAAe,iBACfC,cAAe,iBACfG,UAAW,aACXC,UAAW,aACXC,YAAa,eACbe,iBAAkB,oBAClBC,kBAAmB,qBACnBC,WAAY,cACZC,QAAS,WACTK,cAAe,iBACfU,gBAAiB,mBACjBW,eAAgB,kBAChBY,UAAW,aACXC,YAAa,eACbC,sBAAuB,yBACvBC,uBAAwB,0BACxBE,gBAAiB,mBACjBC,iBAAkB,oBAClBC,cAAe,iBACfC,eAAgB,kBAChBC,iBAAkB,oBAClBC,cAAe,iBACfC,YAAa,eACbM,WAAY,cACZC,eAAgB,kBAChBC,cAAe,iBACfI,kBAAmB,qBACnBC,mBAAoB,sBACpBE,YAAa,eACbC,aAAc,gBACdC,WAAY,eACZC,YAAa,eACbC,SAAU,YACVC,aAAc,gBACdC,cAAe,iBACfC,aAAc,gBACdC,SAAU,aACVC,YAAa,gBACbC,YAAa,gBACbI,YAAa,eACbC,YAAa,eACbC,QAAS,WACTI,aAAc,gBACdC,aAAc,gBACdC,UAAW,aACXC,UAAW,aACXC,UAAW,aACXC,WAAY,cACZC,UAAW,aACXC,QAAS,WACTC,WAAY,cACZC,QAAS,WACTC,SAAU,e,cCrUd18B,EAAOD,QAAU,CACfonB,kBAAmB,EACnBC,kBAAmB,EACnBC,kBAAmB,EACnBC,2BAA4B,GAC5BC,6BAA8B,K,gBCLhC,IAAIyV,EAAQ,EAAQ,IAyCpBh9B,EAAOD,QA5BP,SAAuBsF,EAAO43B,GAC5B,IAKIC,EALAC,EAAS,KACb,IAAK93B,GAA0B,iBAAVA,EACnB,OAAO83B,EAST,IALA,IAEIv7B,EACAV,EAHAk8B,EAAeJ,EAAM33B,GACrBg4B,EAAkC,mBAAbJ,EAIhBh9B,EAAI,EAAG8H,EAAMq1B,EAAa31B,OAAQxH,EAAI8H,EAAK9H,IAElD2B,GADAs7B,EAAcE,EAAan9B,IACJ2B,SACvBV,EAAQg8B,EAAYh8B,MAEhBm8B,EACFJ,EAASr7B,EAAUV,EAAOg8B,GACjBh8B,IACTi8B,IAAWA,EAAS,IACpBA,EAAOv7B,GAAYV,GAIvB,OAAOi8B,I,cCpCT,IAAIG,EAAgB,kCAEhBC,EAAgB,MAChBC,EAAmB,OAGnBC,EAAiB,yCACjBC,EAAc,QACdC,EAAc,uDACdC,EAAkB,UAGlBC,EAAa,aAoPjB,SAAS/3B,EAAKg4B,GACZ,OAAOA,EAAMA,EAAI/2B,QAAQ82B,EA/OR,OAanB79B,EAAOD,QAAU,SAASsF,EAAOD,GAC/B,GAAqB,iBAAVC,EACT,MAAM,IAAIuB,UAAU,mCAGtB,IAAKvB,EAAO,MAAO,GAEnBD,EAAUA,GAAW,GAKrB,IAAI24B,EAAS,EACTC,EAAS,EAOb,SAASC,EAAeH,GACtB,IAAII,EAAQJ,EAAI5c,MAAMqc,GAClBW,IAAOH,GAAUG,EAAMz2B,QAC3B,IAAIxH,EAAI69B,EAAIK,YAvCF,MAwCVH,GAAU/9B,EAAI69B,EAAIr2B,OAASxH,EAAI+9B,EAASF,EAAIr2B,OAQ9C,SAAS22B,IACP,IAAIpQ,EAAQ,CAAEqQ,KAAMN,EAAQC,OAAQA,GACpC,OAAO,SAASz5B,GAGd,OAFAA,EAAK65B,SAAW,IAAIE,EAAStQ,GAC7BuQ,IACOh6B,GAYX,SAAS+5B,EAAStQ,GAChB/pB,KAAK+pB,MAAQA,EACb/pB,KAAKsuB,IAAM,CAAE8L,KAAMN,EAAQC,OAAQA,GACnC/5B,KAAKsa,OAASnZ,EAAQmZ,OAMxB+f,EAASz8B,UAAU6b,QAAUrY,EAE7B,IAAIm5B,EAAa,GAQjB,SAASC,EAAMC,GACb,IAAIC,EAAM,IAAIC,MACZx5B,EAAQmZ,OAAS,IAAMwf,EAAS,IAAMC,EAAS,KAAOU,GAQxD,GANAC,EAAIE,OAASH,EACbC,EAAIG,SAAW15B,EAAQmZ,OACvBogB,EAAIN,KAAON,EACXY,EAAIX,OAASA,EACbW,EAAIpgB,OAASlZ,GAETD,EAAQ25B,OAGV,MAAMJ,EAFNH,EAAWj1B,KAAKo1B,GAYpB,SAASzd,EAAM8d,GACb,IAAI3+B,EAAI2+B,EAAGC,KAAK55B,GAChB,GAAKhF,EAAL,CACA,IAAIy9B,EAAMz9B,EAAE,GAGZ,OAFA49B,EAAeH,GACfz4B,EAAQA,EAAM65B,MAAMpB,EAAIr2B,QACjBpH,GAMT,SAASk+B,IACPrd,EAAMsc,GASR,SAAS2B,EAASC,GAChB,IAAI9+B,EAEJ,IADA8+B,EAAQA,GAAS,GACT9+B,EAAI++B,MACA,IAAN/+B,GACF8+B,EAAM71B,KAAKjJ,GAGf,OAAO8+B,EAST,SAASC,IACP,IAAIjf,EAAMge,IACV,GAnJgB,KAmJK/4B,EAAMi6B,OAAO,IAlJvB,KAkJyCj6B,EAAMi6B,OAAO,GAAjE,CAGA,IADA,IAAIr/B,EAAI,EAnJO,IAqJGoF,EAAMi6B,OAAOr/B,KAtJpB,KAuJIoF,EAAMi6B,OAAOr/B,IAxJZ,KAwJmCoF,EAAMi6B,OAAOr/B,EAAI,OAEhEA,EAIJ,GAFAA,GAAK,EA1JU,KA4JMoF,EAAMi6B,OAAOr/B,EAAI,GACpC,OAAOw+B,EAAM,0BAGf,IAAIX,EAAMz4B,EAAM65B,MAAM,EAAGj/B,EAAI,GAM7B,OALA+9B,GAAU,EACVC,EAAeH,GACfz4B,EAAQA,EAAM65B,MAAMj/B,GACpB+9B,GAAU,EAEH5d,EAAI,CACTlX,KApKa,UAqKbm2B,QAASvB,KAUb,SAASZ,IACP,IAAI9c,EAAMge,IAGNmB,EAAOre,EAAMuc,GACjB,GAAK8B,EAAL,CAIA,GAHAF,KAGKne,EAAMwc,GAAc,OAAOe,EAAM,wBAGtC,IAAIe,EAAMte,EAAMyc,GAEZ8B,EAAMrf,EAAI,CACZlX,KA7LiB,cA8LjBtH,SAAUkE,EAAKy5B,EAAK,GAAGx4B,QAAQu2B,EAlMlB,KAmMbp8B,MAAOs+B,EACH15B,EAAK05B,EAAI,GAAGz4B,QAAQu2B,EApMX,UA2Mf,OAFApc,EAAM0c,GAEC6B,GA0BT,OADAlB,IAjBA,WACE,IAKImB,EALAC,EAAQ,GAMZ,IAJAR,EAASQ,GAIDD,EAAOxC,MACA,IAATwC,IACFC,EAAMp2B,KAAKm2B,GACXP,EAASQ,IAIb,OAAOA,EAIFvC,K;;;;;;;;GChPI,IAAIl9B,EAAE,EAAQ,IAAiBwB,EAAE,mBAAoBV,QAAQA,OAAO4+B,IAAI79B,EAAEL,EAAEV,OAAO4+B,IAAI,iBAAiB,MAAMC,EAAEn+B,EAAEV,OAAO4+B,IAAI,gBAAgB,MAAM7+B,EAAEW,EAAEV,OAAO4+B,IAAI,kBAAkB,MAAMz+B,EAAEO,EAAEV,OAAO4+B,IAAI,qBAAqB,MAAME,EAAEp+B,EAAEV,OAAO4+B,IAAI,kBAAkB,MAAMG,EAAEr+B,EAAEV,OAAO4+B,IAAI,kBAAkB,MAAMI,EAAEt+B,EAAEV,OAAO4+B,IAAI,iBAAiB,MAAMvpB,EAAE3U,EAAEV,OAAO4+B,IAAI,qBAAqB,MAAMtpB,EAAE5U,EAAEV,OAAO4+B,IAAI,kBAAkB,MAAM9C,EAAEp7B,EAAEV,OAAO4+B,IAAI,cAAc,MAAMK,EAAEv+B,EAAEV,OAAO4+B,IAAI,cACxe,MAAMM,EAAE,mBAAoBl/B,QAAQA,OAAOi8B,SAAS,SAASkD,EAAEC,GAAG,IAAI,IAAIC,EAAE,yDAAyDD,EAAE9/B,EAAE,EAAEA,EAAEiU,UAAU9M,OAAOnH,IAAI+/B,GAAG,WAAWC,mBAAmB/rB,UAAUjU,IAAI,MAAM,yBAAyB8/B,EAAE,WAAWC,EAAE,iHAC/P,IAAIE,EAAE,CAACC,UAAU,WAAW,OAAM,GAAIC,mBAAmB,aAAaC,oBAAoB,aAAaC,gBAAgB,cAAcC,EAAE,GAAG,SAASC,EAAET,EAAEC,EAAE//B,GAAG2D,KAAK/B,MAAMk+B,EAAEn8B,KAAK68B,QAAQT,EAAEp8B,KAAK88B,KAAKH,EAAE38B,KAAK+8B,QAAQ1gC,GAAGigC,EACpN,SAASU,KAA6B,SAASC,EAAEd,EAAEC,EAAE//B,GAAG2D,KAAK/B,MAAMk+B,EAAEn8B,KAAK68B,QAAQT,EAAEp8B,KAAK88B,KAAKH,EAAE38B,KAAK+8B,QAAQ1gC,GAAGigC,EADsGM,EAAEh/B,UAAUs/B,iBAAiB,GAAGN,EAAEh/B,UAAUqC,SAAS,SAASk8B,EAAEC,GAAG,GAAG,iBAAkBD,GAAG,mBAAoBA,GAAG,MAAMA,EAAE,MAAMxB,MAAMuB,EAAE,KAAKl8B,KAAK+8B,QAAQL,gBAAgB18B,KAAKm8B,EAAEC,EAAE,aAAaQ,EAAEh/B,UAAUu/B,YAAY,SAAShB,GAAGn8B,KAAK+8B,QAAQP,mBAAmBx8B,KAAKm8B,EAAE,gBACnda,EAAEp/B,UAAUg/B,EAAEh/B,UAAsF,IAAIw/B,EAAEH,EAAEr/B,UAAU,IAAIo/B,EAAEI,EAAEC,YAAYJ,EAAEhhC,EAAEmhC,EAAER,EAAEh/B,WAAWw/B,EAAEE,sBAAqB,EAAG,IAAIC,EAAE,CAACC,QAAQ,MAAMC,EAAE/gC,OAAOkB,UAAUC,eAAe6/B,EAAE,CAACngC,KAAI,EAAGyD,KAAI,EAAG28B,QAAO,EAAGC,UAAS,GAChS,SAASC,EAAE1B,EAAEC,EAAE//B,GAAG,IAAIgE,EAAE/D,EAAE,GAAGwhC,EAAE,KAAKvN,EAAE,KAAK,GAAG,MAAM6L,EAAE,IAAI/7B,UAAK,IAAS+7B,EAAEp7B,MAAMuvB,EAAE6L,EAAEp7B,UAAK,IAASo7B,EAAE7+B,MAAMugC,EAAE,GAAG1B,EAAE7+B,KAAK6+B,EAAEqB,EAAEthC,KAAKigC,EAAE/7B,KAAKq9B,EAAE7/B,eAAewC,KAAK/D,EAAE+D,GAAG+7B,EAAE/7B,IAAI,IAAI09B,EAAEztB,UAAU9M,OAAO,EAAE,GAAG,IAAIu6B,EAAEzhC,EAAE4I,SAAS7I,OAAO,GAAG,EAAE0hC,EAAE,CAAC,IAAI,IAAIC,EAAEC,MAAMF,GAAG3hC,EAAE,EAAEA,EAAE2hC,EAAE3hC,IAAI4hC,EAAE5hC,GAAGkU,UAAUlU,EAAE,GAAGE,EAAE4I,SAAS84B,EAAE,GAAG7B,GAAGA,EAAE+B,aAAa,IAAI79B,KAAK09B,EAAE5B,EAAE+B,kBAAe,IAAS5hC,EAAE+D,KAAK/D,EAAE+D,GAAG09B,EAAE19B,IAAI,MAAM,CAAC89B,SAASrgC,EAAEmH,KAAKk3B,EAAE5+B,IAAIugC,EAAE98B,IAAIuvB,EAAEtyB,MAAM3B,EAAE8hC,OAAOb,EAAEC,SACxU,SAASa,EAAElC,GAAG,MAAM,iBAAkBA,GAAG,OAAOA,GAAGA,EAAEgC,WAAWrgC,EAA0G,IAAIwgC,EAAE,OAAOC,EAAE,GAAG,SAASC,EAAErC,EAAEC,EAAE//B,EAAEgE,GAAG,GAAGk+B,EAAE/6B,OAAO,CAAC,IAAIlH,EAAEiiC,EAAEE,MAA8D,OAAxDniC,EAAEiH,OAAO44B,EAAE7/B,EAAEoiC,UAAUtC,EAAE9/B,EAAEqiC,KAAKtiC,EAAEC,EAAEugC,QAAQx8B,EAAE/D,EAAEsiC,MAAM,EAAStiC,EAAE,MAAM,CAACiH,OAAO44B,EAAEuC,UAAUtC,EAAEuC,KAAKtiC,EAAEwgC,QAAQx8B,EAAEu+B,MAAM,GAC5b,SAASC,EAAE1C,GAAGA,EAAE54B,OAAO,KAAK44B,EAAEuC,UAAU,KAAKvC,EAAEwC,KAAK,KAAKxC,EAAEU,QAAQ,KAAKV,EAAEyC,MAAM,EAAE,GAAGL,EAAE/6B,QAAQ+6B,EAAEj5B,KAAK62B,GAE2F,SAAS2C,EAAE3C,EAAEC,EAAE//B,GAAG,OAAO,MAAM8/B,EAAE,EADlO,SAAS4C,EAAE5C,EAAEC,EAAE//B,EAAEgE,GAAG,IAAI/D,SAAS6/B,EAAK,cAAc7/B,GAAG,YAAYA,IAAE6/B,EAAE,MAAK,IAAI2B,GAAE,EAAG,GAAG,OAAO3B,EAAE2B,GAAE,OAAQ,OAAOxhC,GAAG,IAAK,SAAS,IAAK,SAASwhC,GAAE,EAAG,MAAM,IAAK,SAAS,OAAO3B,EAAEgC,UAAU,KAAKrgC,EAAE,KAAK89B,EAAEkC,GAAE,GAAI,GAAGA,EAAE,OAAOzhC,EAAEgE,EAAE87B,EAAE,KAAKC,EAAE,IAAI4C,EAAE7C,EAAE,GAAGC,GAAG,EAAyB,GAAvB0B,EAAE,EAAE1B,EAAE,KAAKA,EAAE,IAAIA,EAAE,IAAO6B,MAAMgB,QAAQ9C,GAAG,IAAI,IAAI5L,EAAE,EAAEA,EAAE4L,EAAE34B,OAAO+sB,IAAI,CAAQ,IAAIwN,EAAE3B,EAAE4C,EAAf1iC,EAAE6/B,EAAE5L,GAAeA,GAAGuN,GAAGiB,EAAEziC,EAAEyhC,EAAE1hC,EAAEgE,QAAQ,GAAG,OAAO87B,GAAG,iBAAkBA,EAAE4B,EAAE,KAAiCA,EAAE,mBAA7BA,EAAE9B,GAAGE,EAAEF,IAAIE,EAAE,eAAsC4B,EAAE,KAAM,mBAAoBA,EAAE,IAAI5B,EAAE4B,EAAE5hC,KAAKggC,GAAG5L,EACpf,IAAIj0B,EAAE6/B,EAAEx3B,QAAQu6B,MAA6BpB,GAAGiB,EAA1BziC,EAAEA,EAAEW,MAAM8gC,EAAE3B,EAAE4C,EAAE1iC,EAAEi0B,KAAcl0B,EAAEgE,QAAQ,GAAG,WAAW/D,EAAE,MAAMD,EAAE,GAAG8/B,EAAExB,MAAMuB,EAAE,GAAG,oBAAoB7/B,EAAE,qBAAqBK,OAAO8E,KAAK26B,GAAGr7B,KAAK,MAAM,IAAIzE,EAAE,KAAK,OAAOyhC,EAAqCiB,CAAE5C,EAAE,GAAGC,EAAE//B,GAAG,SAAS2iC,EAAE7C,EAAEC,GAAG,MAAM,iBAAkBD,GAAG,OAAOA,GAAG,MAAMA,EAAE5+B,IAH9I,SAAgB4+B,GAAG,IAAIC,EAAE,CAAC,IAAI,KAAK,IAAI,MAAM,MAAM,KAAK,GAAGD,GAAGr5B,QAAQ,SAAQ,SAASq5B,GAAG,OAAOC,EAAED,MAG+CgD,CAAOhD,EAAE5+B,KAAK6+B,EAAEgD,SAAS,IAAI,SAASC,EAAElD,EAAEC,GAAGD,EAAEwC,KAAKxiC,KAAKggC,EAAEU,QAAQT,EAAED,EAAEyC,SACxX,SAASU,EAAGnD,EAAEC,EAAE//B,GAAG,IAAIgE,EAAE87B,EAAE54B,OAAOjH,EAAE6/B,EAAEuC,UAAUvC,EAAEA,EAAEwC,KAAKxiC,KAAKggC,EAAEU,QAAQT,EAAED,EAAEyC,SAASX,MAAMgB,QAAQ9C,GAAGoD,EAAEpD,EAAE97B,EAAEhE,GAAE,SAAS8/B,GAAG,OAAOA,KAAI,MAAMA,IAAIkC,EAAElC,KAAKA,EAJtJ,SAAWA,EAAEC,GAAG,MAAM,CAAC+B,SAASrgC,EAAEmH,KAAKk3B,EAAEl3B,KAAK1H,IAAI6+B,EAAEp7B,IAAIm7B,EAAEn7B,IAAI/C,MAAMk+B,EAAEl+B,MAAMmgC,OAAOjC,EAAEiC,QAImEoB,CAAErD,EAAE7/B,IAAI6/B,EAAE5+B,KAAK6+B,GAAGA,EAAE7+B,MAAM4+B,EAAE5+B,IAAI,IAAI,GAAG4+B,EAAE5+B,KAAKuF,QAAQw7B,EAAE,OAAO,KAAKjiC,IAAIgE,EAAEiF,KAAK62B,IAAI,SAASoD,EAAEpD,EAAEC,EAAE//B,EAAEgE,EAAE/D,GAAG,IAAIwhC,EAAE,GAAG,MAAMzhC,IAAIyhC,GAAG,GAAGzhC,GAAGyG,QAAQw7B,EAAE,OAAO,KAAkBQ,EAAE3C,EAAEmD,EAAjBlD,EAAEoC,EAAEpC,EAAE0B,EAAEz9B,EAAE/D,IAAauiC,EAAEzC,GAAG,IAAIqD,EAAE,CAACjC,QAAQ,MAAM,SAASkC,IAAI,IAAIvD,EAAEsD,EAAEjC,QAAQ,GAAG,OAAOrB,EAAE,MAAMxB,MAAMuB,EAAE,MAAM,OAAOC,EACxa,IAAIwD,EAAG,CAACC,uBAAuBH,EAAEI,wBAAwB,CAACC,SAAS,MAAMC,kBAAkBxC,EAAEyC,qBAAqB,CAACxC,SAAQ,GAAIyC,OAAOhkC,GAAGH,EAAQokC,SAAS,CAACn+B,IAAI,SAASo6B,EAAEC,EAAE//B,GAAG,GAAG,MAAM8/B,EAAE,OAAOA,EAAE,IAAI97B,EAAE,GAAmB,OAAhBk/B,EAAEpD,EAAE97B,EAAE,KAAK+7B,EAAE//B,GAAUgE,GAAGqV,QAAQ,SAASymB,EAAEC,EAAE//B,GAAG,GAAG,MAAM8/B,EAAE,OAAOA,EAAqB2C,EAAE3C,EAAEkD,EAAvBjD,EAAEoC,EAAE,KAAK,KAAKpC,EAAE//B,IAAYwiC,EAAEzC,IAAIwC,MAAM,SAASzC,GAAG,OAAO2C,EAAE3C,GAAE,WAAW,OAAO,OAAM,OAAOgE,QAAQ,SAAShE,GAAG,IAAIC,EAAE,GAAqC,OAAlCmD,EAAEpD,EAAEC,EAAE,MAAK,SAASD,GAAG,OAAOA,KAAWC,GAAGgE,KAAK,SAASjE,GAAG,IAAIkC,EAAElC,GAAG,MAAMxB,MAAMuB,EAAE,MAAM,OAAOC,IAC9ergC,EAAQ2D,UAAUm9B,EAAE9gC,EAAQ4D,SAAS5C,EAAEhB,EAAQukC,SAASxE,EAAE//B,EAAQwkC,cAAcrD,EAAEnhC,EAAQykC,WAAWrjC,EAAEpB,EAAQ0kC,SAASnuB,EAAEvW,EAAQ2kC,mDAAmDd,EACrL7jC,EAAQ6lB,aAAa,SAASwa,EAAEC,EAAE//B,GAAG,GAAG,MAAO8/B,EAAc,MAAMxB,MAAMuB,EAAE,IAAIC,IAAI,IAAI97B,EAAEpE,EAAE,GAAGkgC,EAAEl+B,OAAO3B,EAAE6/B,EAAE5+B,IAAIugC,EAAE3B,EAAEn7B,IAAIuvB,EAAE4L,EAAEiC,OAAO,GAAG,MAAMhC,EAAE,CAAoE,QAAnE,IAASA,EAAEp7B,MAAM88B,EAAE1B,EAAEp7B,IAAIuvB,EAAEgN,EAAEC,cAAS,IAASpB,EAAE7+B,MAAMjB,EAAE,GAAG8/B,EAAE7+B,KAAQ4+B,EAAEl3B,MAAMk3B,EAAEl3B,KAAKi5B,aAAa,IAAIH,EAAE5B,EAAEl3B,KAAKi5B,aAAa,IAAIF,KAAK5B,EAAEqB,EAAEthC,KAAKigC,EAAE4B,KAAKN,EAAE7/B,eAAemgC,KAAK39B,EAAE29B,QAAG,IAAS5B,EAAE4B,SAAI,IAASD,EAAEA,EAAEC,GAAG5B,EAAE4B,IAAI,IAAIA,EAAE1tB,UAAU9M,OAAO,EAAE,GAAG,IAAIw6B,EAAE39B,EAAE6E,SAAS7I,OAAO,GAAG,EAAE2hC,EAAE,CAACD,EAAEE,MAAMD,GAAG,IAAI,IAAI5hC,EAAE,EAAEA,EAAE4hC,EAAE5hC,IAAI2hC,EAAE3hC,GAAGkU,UAAUlU,EAAE,GAAGiE,EAAE6E,SAAS64B,EAAE,MAAM,CAACI,SAASrgC,EAAEmH,KAAKk3B,EAAEl3B,KACxf1H,IAAIjB,EAAE0E,IAAI88B,EAAE7/B,MAAMoC,EAAE+9B,OAAO7N,IAAIz0B,EAAQ4kC,cAAc,SAASvE,EAAEC,GAA8K,YAA3K,IAASA,IAAIA,EAAE,OAAMD,EAAE,CAACgC,SAASpC,EAAE4E,sBAAsBvE,EAAEwE,cAAczE,EAAE0E,eAAe1E,EAAE2E,aAAa,EAAEC,SAAS,KAAKC,SAAS,OAAQD,SAAS,CAAC5C,SAASrC,EAAEmF,SAAS9E,GAAUA,EAAE6E,SAAS7E,GAAGrgC,EAAQyjB,cAAcse,EAAE/hC,EAAQolC,cAAc,SAAS/E,GAAG,IAAIC,EAAEyB,EAAErgC,KAAK,KAAK2+B,GAAY,OAATC,EAAEn3B,KAAKk3B,EAASC,GAAGtgC,EAAQqlC,UAAU,WAAW,MAAM,CAAC3D,QAAQ,OAAO1hC,EAAQslC,WAAW,SAASjF,GAAG,MAAM,CAACgC,SAAS/rB,EAAEuM,OAAOwd,IAAIrgC,EAAQ8lB,eAAeyc,EAC3eviC,EAAQulC,KAAK,SAASlF,GAAG,MAAM,CAACgC,SAASnC,EAAEsF,MAAMnF,EAAEoF,SAAS,EAAEC,QAAQ,OAAO1lC,EAAQ2lC,KAAK,SAAStF,EAAEC,GAAG,MAAM,CAAC+B,SAAStF,EAAE5zB,KAAKk3B,EAAEuF,aAAQ,IAAStF,EAAE,KAAKA,IAAItgC,EAAQ6lC,YAAY,SAASxF,EAAEC,GAAG,OAAOsD,IAAIiC,YAAYxF,EAAEC,IAAItgC,EAAQ8lC,WAAW,SAASzF,EAAEC,GAAG,OAAOsD,IAAIkC,WAAWzF,EAAEC,IAAItgC,EAAQ+lC,cAAc,aAAa/lC,EAAQgmC,UAAU,SAAS3F,EAAEC,GAAG,OAAOsD,IAAIoC,UAAU3F,EAAEC,IAAItgC,EAAQimC,oBAAoB,SAAS5F,EAAEC,EAAE//B,GAAG,OAAOqjC,IAAIqC,oBAAoB5F,EAAEC,EAAE//B,IACtcP,EAAQkmC,gBAAgB,SAAS7F,EAAEC,GAAG,OAAOsD,IAAIsC,gBAAgB7F,EAAEC,IAAItgC,EAAQmmC,QAAQ,SAAS9F,EAAEC,GAAG,OAAOsD,IAAIuC,QAAQ9F,EAAEC,IAAItgC,EAAQomC,WAAW,SAAS/F,EAAEC,EAAE//B,GAAG,OAAOqjC,IAAIwC,WAAW/F,EAAEC,EAAE//B,IAAIP,EAAQqmC,OAAO,SAAShG,GAAG,OAAOuD,IAAIyC,OAAOhG,IAAIrgC,EAAQ+M,SAAS,SAASszB,GAAG,OAAOuD,IAAI72B,SAASszB,IAAIrgC,EAAQ0G,QAAQ,W;;;;;EChBrT,IAAI4/B,EAAwB1lC,OAAO0lC,sBAC/BvkC,EAAiBnB,OAAOkB,UAAUC,eAClCwkC,EAAmB3lC,OAAOkB,UAAU0kC,qBAExC,SAASC,EAAShH,GACjB,GAAIA,QACH,MAAM,IAAI54B,UAAU,yDAGrB,OAAOjG,OAAO6+B,GA+Cfx/B,EAAOD,QA5CP,WACC,IACC,IAAKY,OAAOujC,OACX,OAAO,EAMR,IAAIuC,EAAQ,IAAIC,OAAO,OAEvB,GADAD,EAAM,GAAK,KACkC,MAAzC9lC,OAAOgmC,oBAAoBF,GAAO,GACrC,OAAO,EAKR,IADA,IAAIG,EAAQ,GACH3mC,EAAI,EAAGA,EAAI,GAAIA,IACvB2mC,EAAM,IAAMF,OAAOG,aAAa5mC,IAAMA,EAKvC,GAAwB,eAHXU,OAAOgmC,oBAAoBC,GAAO5gC,KAAI,SAAUtE,GAC5D,OAAOklC,EAAMllC,MAEHqD,KAAK,IACf,OAAO,EAIR,IAAI+hC,EAAQ,GAIZ,MAHA,uBAAuB/gC,MAAM,IAAI4T,SAAQ,SAAUotB,GAClDD,EAAMC,GAAUA,KAGf,yBADEpmC,OAAO8E,KAAK9E,OAAOujC,OAAO,GAAI4C,IAAQ/hC,KAAK,IAM9C,MAAO45B,GAER,OAAO,GAIQqI,GAAoBrmC,OAAOujC,OAAS,SAAUz/B,EAAQ8Z,GAKtE,IAJA,IAAIJ,EAEA8oB,EADA3vB,EAAKkvB,EAAS/hC,GAGTzC,EAAI,EAAGA,EAAIuS,UAAU9M,OAAQzF,IAAK,CAG1C,IAAK,IAAIR,KAFT2c,EAAOxd,OAAO4T,UAAUvS,IAGnBF,EAAe1B,KAAK+d,EAAM3c,KAC7B8V,EAAG9V,GAAO2c,EAAK3c,IAIjB,GAAI6kC,EAAuB,CAC1BY,EAAUZ,EAAsBloB,GAChC,IAAK,IAAIle,EAAI,EAAGA,EAAIgnC,EAAQx/B,OAAQxH,IAC/BqmC,EAAiBlmC,KAAK+d,EAAM8oB,EAAQhnC,MACvCqX,EAAG2vB,EAAQhnC,IAAMke,EAAK8oB,EAAQhnC,MAMlC,OAAOqX,I,gBCxFR,IAAI4vB,EAAY,EAAQ,IACpB1hB,EAAY,EAAQ,GAEpBld,EAAYkd,EAAUld,UACtB6+B,EAAQ3hB,EAAU9b,KAAK,GAEvB09B,EAAkB,mBAkCtBpnC,EAAOD,QA1BP,SAAkBulB,GAChB,GAAoB,iBAATA,EACT,MAAM,IAAI1e,UAAU,mCAGtB,IAAK0e,EACH,MAAO,GAIT,IACI7c,EADAyY,EAAQoE,EAAKpE,MAAMkmB,GAavB,OAVIlmB,GAASA,EAAM,KACjBzY,EAAYyY,EAAM,GAIdimB,IACF7hB,EAAOA,EAAKve,QAAQma,EAAM,GAAI,MAI3B5Y,EAAU4+B,EAAU5hB,GAAO,KAAM7c,K,gBCrC1C,IAqBI4+B,EAmCAC,EAuCAC,EA/FA/hB,EAAY,EAAQ,GAMpBgiB,EAAkB,qBAClBC,EAAiB,YACjBC,EAAiB,YAEjBC,EAAsB,qGAGtBR,EAAQ3hB,EAAU9b,KAAK,GACvBA,EAAOy9B,GAAS3hB,EAAU9b,OAS9B,GAAgC,mBAArBk+B,OAAOC,UAA0B,CAC1C,IAAIC,EAAY,IAAIF,OAAOC,UAIvBE,EAAWZ,EAAQ,WAAa,YASpCE,EAAkB,SAAyB/hB,EAAM3d,GAU/C,OATIA,IACF2d,EAAO,IAAM3d,EAAU,IAAM2d,EAAO,KAAO3d,EAAU,KAInDw/B,IACF7hB,EAAOA,EAAKve,QAAQ4gC,EAAqB,cAGpCG,EAAUT,gBAAgB/hB,EAAMyiB,IAW3C,GAAuC,iBAA5B5jC,SAAS6jC,eAA6B,CAG/C,IAAIC,EAAM9jC,SAAS6jC,eAAeE,mBAChCx+B,EAAO,6BAA0B+I,GAUnC60B,EAAoB,SAA4BhiB,EAAM3d,GACpD,GAAIA,EAEF,OADAsgC,EAAIE,gBAAgBC,qBAAqBzgC,GAAS,GAAG0gC,UAAY/iB,EAC1D2iB,EAGT,IAEE,OADAA,EAAIE,gBAAgBE,UAAY/iB,EACzB2iB,EAEP,MAAOtJ,GACP,GAAI0I,EACF,OAAOA,EAAgB/hB,KAY/B,IAAIrL,EAAW9V,SAASqf,cAAc,YAElCvJ,EAASyD,UAOX6pB,EAAoB,SAAwBjiB,GAE1C,OADArL,EAASouB,UAAY/iB,EACdrL,EAASyD,QAAQtU,aAK5B,IAAIk/B,EAAoBhB,GAAqBD,EA4E7CrnC,EAAOD,QApEP,SAAmBulB,GACjB,IAAIijB,EAOAN,EACAxkC,EACA+kC,EARAtnB,EAAQoE,EAAKpE,MAAMsmB,GAUvB,OARItmB,GAASA,EAAM,KACjBqnB,EAAernB,EAAM,GAAGpa,eAOlByhC,GACN,IAlIO,OAmIL,GAAIlB,EAmBF,OAlBAY,EAAMZ,EAAgB/hB,GAIjBmiB,EAAe5gC,KAAKye,KACvB7hB,EAAUwkC,EAAIG,qBAxIb,QAwIwC,KAEvC3kC,EAAQglC,WAAWC,YAAYjlC,GAI9BikC,EAAe7gC,KAAKye,KACvB7hB,EAAUwkC,EAAIG,qBA9Ib,QA8IwC,KAEvC3kC,EAAQglC,WAAWC,YAAYjlC,GAI5BwkC,EAAIG,qBAtJR,QAwJL,MAEF,IAzJO,OA0JP,IAzJO,OA0JL,GAAIE,EAIF,OAHAE,EAAWF,EAAkBhjB,GAAM8iB,qBAAqBG,GAGpDb,EAAe7gC,KAAKye,IAASmiB,EAAe5gC,KAAKye,GAC5CkjB,EAAS,GAAGC,WAAWr/B,WAGzBo/B,EAET,MAGF,QACE,GAAIjB,EACF,OAAOA,EAAkBjiB,GAG3B,GAAIgjB,EACF,OAAOA,EAAkBhjB,EA7KtB,QA6KkC8iB,qBA7KlC,QA6K6D,GAC7Dh/B,WAMT,MAAO,K,cClJTpJ,EAAOD,QAAU,CACf8H,yBAnC6B,CAC7B,gBACA,mBACA,WACA,UACA,gBACA,sBACA,cACA,mBACA,oBACA,oBACA,eACA,UACA,UACA,UACA,UACA,UACA,iBACA,UACA,UACA,cACA,eACA,WACA,eACA,qBACA,cACA,SACA,eACA,gBACA,iBACA,iBACA,c,whBCpCF,SAAaiL,EAAQC,EAAUC,EAAWC,EAAeqQ,GACrDrQ,EAAgB9Q,GAAGK,aAAeL,GAAGM,OADyB,IAEtDc,EAAOuP,EAAPvP,GACAI,EAAwBqP,EAAxBrP,SAAUD,EAAcsP,EAAdtP,UACVyP,EAAmCJ,EAAnCI,kBAAmBC,EAAgBL,EAAhBK,YACnBE,EAAaL,EAAbK,SACAwE,EAAqBwL,EAArBxL,OAAQa,EAAa2K,EAAb3K,SAIVgwB,EAVwD,YAY1D,aAAc,2EACAp0B,YAb4C,O,yTAAA,8CAwB5CmJ,GACV,OAAOA,EAAQ3W,QAAS,OAAQ,IAAKjB,SAzBiB,+BA4BjD,aAC2C7B,KAAK/B,MAA7C+F,EADH,EACGA,WAAYwM,EADf,EACeA,cAAeyD,EAD9B,EAC8BA,SAC3B2B,EAAuB5R,EAAvB4R,UAAW6D,EAAYzV,EAAZyV,QAuDnB,OACI7D,EACI,2BAAKE,IAAMxW,EAAI,YAAa,sBAAyBsS,MAAM,OAAOa,IA/EzD,2rGAiFT,oBAAC/S,EAAD,KACI,0BAAIoO,UA1DW,SAAAH,GAGvB,KAAmB,UAAdA,EAAMpQ,KAAmC,UAAdoQ,EAAMpQ,KAAmBoQ,EAAMg3B,UAA/D,CAHgC,MAOW9wB,EAAQ,qBAA3CK,EAPwB,EAOxBA,qBAAsBmC,EAPE,EAOFA,SACtB2J,EAAgBtL,EAAU,qBAA1BsL,YAEF4kB,EAAW1wB,EAAsBD,GAEvC,GAAiB,OAAb2wB,EAAJ,CAIA,IAAMC,EAAcxuB,EAAUuuB,GAGxBE,EAAYD,EAAYrxB,YAAYuxB,WAAW,SAAAj6B,GAAA,OAAMA,EAAGmJ,WAAaA,MAAc,EACrF+wB,SAAgBC,EAAa,GAEjC,GAAM,EAAKC,aAAczrB,GAAUjW,QAI5B,GAAIiW,EAAQhZ,SAAU,SAAYgZ,EAAQjW,OAAS,CAKtD,IAAM2hC,EAAY1rB,EAAQygB,YAAa,QAEvC8K,EAAiBvrB,EAAQwhB,MAAO,EAAGkK,GACnCF,EAAaxrB,EAAQwhB,MAAOkK,EAAY,GAExC30B,EAAe,CAAEiJ,QAASurB,UAX1Bx0B,EAAe,CAAEiJ,QAAS,KAiB9BuG,EACI7Q,EAAa,kBAAmB,CAC5BsK,QAASwrB,IAEbJ,EAAYrxB,YAAYhQ,SAAWshC,EAC7BA,EAAY,EACZD,EAAYrxB,YAAYhQ,OAAS,EACvCohC,OAUQ,oBAACv1B,EAAD,CACI3L,QAAQ,OACR9E,SAAW,SAAE3B,GAAF,OACPuT,EAAe,CAAEiJ,QAASxc,KAE9BA,MAAQwc,EACRvY,YAAc5B,EAAI,mBAAoB,sBACtCiV,eAAiB,CACb,YACA,cACA,kBACA,qBAtG8B,GAUvC9U,GAqGjBqb,EACF,2BAAKjJ,OAAO,KAAKC,QAAQ,YAAYF,MAAM,KAAKD,MAAM,8BAClD,4BAAMrV,EAAE,iDAiBhB4S,EAAmB,kBAAmB,CAClChN,MAAO5C,EAAI,2BAA4B,sBACvCkT,YAAalT,EAAI,wCAAyC,sBAC1DqC,KAAM,CACF8Q,IAAKqI,EACLpI,WAAmC,oBAAhBjR,YAA8BA,YAAY+P,WAAQhD,GAEzE3J,OAAQ,CAAE,cACV8N,SAAU,iBACV3O,WAtBe,CACfyV,QAAS,CACLxU,KAAM,SACNqV,OAAQ,OACRL,SAAU,KACV1H,QAAS,IAEbqD,UAAW,CACP3Q,KAAM,UACNsN,SAAS,IAcbM,SAAU,CACNhU,WAAW,GAEfkU,KAAM2xB,EACN1xB,KAAM,YAA4B,IACtByG,EADsB,EAAfzV,WACPyV,QAER,OACI,oBAACpK,EAAS6D,QAAV,CACIxP,QAAQ,KACRzG,MAAQwc,OAtJ5B,CA2JKvb,GAAGqB,KAAMrB,GAAGoV,OAAQpV,GAAGsB,QAAStB,GAAGK,YAAaL,GAAGkH,O,wnCC3JxD,SAAWyJ,EAAQC,EAAUC,EAAWC,EAAeC,EAAcjJ,GACjEgJ,EAAgB9Q,GAAGK,aAAeL,GAAGM,OADoC,IAElEc,EAAMuP,EAANvP,GACAG,EAAuBsP,EAAvBtP,UAAWC,EAAYqP,EAAZrP,SACXwP,EAAkCJ,EAAlCI,kBAAmBC,EAAeL,EAAfK,YAJ+C,EAKAH,EAAlEI,EALkE,EAKlEA,kBAAmB6F,EAL+C,EAK/CA,cAAe5F,EALgC,EAKhCA,SAAUC,EALsB,EAKtBA,mBAC5CE,EAA+IP,EAA/IO,UAAWnR,EAAoI4Q,EAApI5Q,YAAayH,EAAuHmJ,EAAvHnJ,aAAcnG,EAAyGsP,EAAzGtP,cAAe8P,EAA0FR,EAA1FQ,cAAe7P,EAA2EqP,EAA3ErP,YAAa2J,EAA8D0F,EAA9D1F,OAAQ2L,EAAsDjG,EAAtDiG,aAAcC,EAAwClG,EAAxCkG,cAAeiwB,EAAyBn2B,EAAzBm2B,aAAc37B,EAAWwF,EAAXxF,QACpIsK,EAAS/N,EAAT+N,MAEDsxB,EACF,2BAAK1zB,MAAM,6BAA6BC,MAAM,KAAKC,OAAO,KAAKC,QAAQ,aACnE,4BAAMxV,EAAE,6EACR,4BAAMA,EAAE,gBAAgBsT,KAAK,UAIjC01B,EAAiB,KACjBC,EAAY,GAEV/uB,EAAmB,irFAEnBgvB,EArBmE,YAsBrE,aAAc,0EACDl1B,YADC,OAEV,EAAKxQ,MAAQ,CACT2lC,QAAS,EACTC,QAAS,EACTC,aAAc,KACdC,cAAe,KACfC,cAAe,KACfC,gBAAiB,KACjBC,SAAS,GAGb,EAAKC,sBAAwB,EAAKA,sBAAsBxoC,KAA3B,GAC7B,EAAKyoC,gBAAkB,EAAKA,gBAAgBzoC,KAArB,GACvB,EAAK0oC,gBAAkB,EAAKA,gBAAgB1oC,KAArB,GAdb,EAtBuD,O,yTAAA,sDAuChD,MACmBwC,KAAK/B,MAAlC+F,EADU,EACVA,WAAYwM,EADF,EACEA,cACbC,EAAqBC,mBAAmB,gBAGnB,IAAvB1M,EAAW2M,UACuB,iBAA9B,IAAOF,EAAP,cAAOA,KAA0D,OAAvBA,GAC1C/T,OAAO8E,KAAKiP,GAAoB1O,KAAI,SAACkC,GACI,kBAA1BD,EAAWC,GAClBD,EAAWC,KAAewM,EAAmBxM,GAE7CD,EAAWC,GAAawM,EAAmBxM,MAMvDuM,EAAc,CAACG,SAAS,OAxDqC,0CA6DjE3Q,KAAKgmC,sBAAsB,UA7DsC,2CAgEhD,IACVzuB,EAAcvX,KAAK/B,MAAnBsZ,WADU,EAEevX,KAAKF,MAA9B6lC,EAFU,EAEVA,aAAcI,EAFJ,EAEIA,SAEhBxuB,GAAcouB,GACf3lC,KAAKC,SAAS,CACV0lC,aAAc,KACdC,cAAe,KACfC,cAAe,OAInBE,IACA/lC,KAAKgmC,wBACLhmC,KAAKC,SAAS,CAAC8lC,SAAS,OA9EqC,oCAkFvD,IACHv1B,EAAiBxQ,KAAK/B,MAAtBuS,cADG,EAEiBxQ,KAAKF,MAAzB2lC,EAFG,EAEHA,QAASC,EAFN,EAEMA,QAGhB,OADA1lC,KAAKC,SAAS,CAAC8lC,SAAS,IACjBv1B,EAAc,CACjB21B,KAAMpyB,EAAM5L,SAASs9B,IAAU,iBAAO,CAClCW,MAAOryB,EAAM5L,SAASu9B,IAAU,iBAAO,CACnCjsB,QAAS,eA1F4C,wCAiGnD,IACPosB,EAAiB7lC,KAAKF,MAAtB+lC,cACP,OAAQA,GAAiBA,EAAcriC,OAAS,IAnGiB,wCAuGnD,IACPoiC,EAAiB5lC,KAAKF,MAAtB8lC,cACP,OAAQA,GAAiBA,EAAcS,SAzG0B,8CA4G7C,MACgBrmC,KAAK/B,MAAlC+F,EADa,EACbA,WAAYwM,EADC,EACDA,cAEnB,CAAC,OAAQ,OAAQ,QAAQkF,SAAQ,SAAC4wB,GAC9B,IAAKtiC,EAAWsiC,GAAS9iC,OAAQ,OAAO,KAExC,IAAM+iC,EAAaviC,EAAWsiC,GAASvkC,KAAI,SAACykC,EAAKC,GAC7C,MAAO,CACHL,MAAOI,EAAIJ,MAAMrkC,KAAI,SAAC2kC,EAAMC,GACxBD,EAAKE,GAAKD,EACV,IAAK,IAAI3qC,EAAI,EAAGA,EAAIyqC,EAAMzqC,IACtB,IAAK,IAAI0f,EAAI,EAAGA,EAAI1X,EAAWsiC,GAAStqC,GAAGoqC,MAAM5iC,OAAQkY,IACrD,GAAI1X,EAAWsiC,GAAStqC,GAAGoqC,MAAM1qB,IAAM1X,EAAWsiC,GAAStqC,GAAGoqC,MAAM1qB,GAAG6J,SAC/DvhB,EAAWsiC,GAAStqC,GAAGoqC,MAAM1qB,GAAGuN,SAAWjtB,EAAImM,SAASnE,EAAWsiC,GAAStqC,GAAGoqC,MAAM1qB,GAAGuN,SAAWwd,EACnG,GAAa,IAATE,EACI3iC,EAAWsiC,GAAStqC,GAAGoqC,MAAM1qB,GAAGkrB,IAAMF,EAAKE,KAC3CF,EAAKE,IAAMz+B,SAASnE,EAAWsiC,GAAStqC,GAAGoqC,MAAM1qB,GAAG6J,cAErD,CACH,IAAMshB,EAAer5B,MAAMrF,SAASq+B,EAAIJ,MAAMO,EAAO,GAAGphB,UAAoD,EAAxCpd,SAASq+B,EAAIJ,MAAMO,EAAO,GAAGphB,UAC7FvhB,EAAWsiC,GAAStqC,GAAGoqC,MAAM1qB,GAAGkrB,KAAOJ,EAAIJ,MAAMO,EAAO,GAAGC,GAAK,GAC7D5iC,EAAWsiC,GAAStqC,GAAGoqC,MAAM1qB,GAAGkrB,IAAMJ,EAAIJ,MAAMO,EAAO,GAAGC,GAAKC,KAElEH,EAAKE,IAAMz+B,SAASnE,EAAWsiC,GAAStqC,GAAGoqC,MAAM1qB,GAAG6J,UAQ5E,IAAK,IAAI7J,EAAI,EAAGA,EAAIirB,EAAMjrB,IAClB8qB,EAAIJ,MAAM1qB,IACN8qB,EAAIJ,MAAM1qB,GAAG6J,UACbmhB,EAAKE,IAAMz+B,SAASq+B,EAAIJ,MAAM1qB,GAAG6J,SAAW,GAKxD,OAAOmhB,SAKnBl2B,OAAgB81B,EAAUC,SAxJmC,gCA4J3DrU,GAAQ,MAC0BlyB,KAAKF,MAAtC6lC,EADO,EACPA,aAAcG,EADP,EACOA,gBAErB,IAAKH,EACD,OAAO,KAJG,MAOsB3lC,KAAK/B,MAAlC+F,EAPO,EAOPA,WAAYwM,EAPL,EAOKA,cACbs2B,EAAiB9iC,EAAW8hC,GAC3BiB,EAAYpB,EAAZoB,SACDC,EAASC,OAAOC,QAAO,EAAM,GAAIJ,EAAeC,IACtDC,EAAOZ,MAAMrkC,KAAI,SAAC2kC,GAGd,OAFAA,EAAKjtB,QAAU,GAERitB,KAEXM,EAAOZ,MAAQY,EAAOZ,MAAMxlC,QAAO,SAACumC,GAAD,OAAYA,EAAMle,WAErD,IAAMsd,EAAa,YACZO,EAAe7L,MAAM,EAAG8L,EAAW7U,IADvB,CAEf8U,GAFe,EAGZF,EAAe7L,MAAM8L,EAAW7U,KACrCnwB,KAAI,SAACykC,EAAKY,GAAN,MAAkB,CACpBhB,MAAOI,EAAIJ,MAAMrkC,KAAI,SAAC2kC,GAMlB,OALIA,EAAKzd,SACDme,GAAUL,GAAcK,EAASj/B,SAASu+B,EAAKzd,SAAW,GAAM8d,IAChEL,EAAKzd,QAAU9gB,SAASu+B,EAAKzd,SAAW,GAGzCyd,SAIf1mC,KAAKC,SAAS,CACV0lC,aAAc,KACdG,gBAAiB,KACjBC,SAAS,IAEbv1B,OAAgBs1B,EAAkBS,MAlM+B,kCAqMzD,MACgCvmC,KAAKF,MAAtC6lC,EADC,EACDA,aAAcG,EADb,EACaA,gBAErB,IAAKH,EACD,OAAO,KAJH,MAO4B3lC,KAAK/B,MAAlC+F,EAPC,EAODA,WAAYwM,EAPX,EAOWA,cACbs2B,EAAiB9iC,EAAW8hC,GAC3BiB,EAAYpB,EAAZoB,SAEDR,EAAaO,EAAe/kC,KAAI,SAACykC,EAAKa,GAAN,MAAmB,CACrDjB,MAAOI,EAAIJ,MAAMrkC,KAAI,SAAC2kC,GAClB,GAAIA,EAAKzd,SACDoe,GAAWN,GAAY5+B,SAASu+B,EAAKzd,SAAWoe,EAAUN,IAC1DL,EAAKzd,QAAU9gB,SAASu+B,EAAKzd,SAAW,EACpCoe,IAAYN,GAAU,CACtB,IAAMO,EAAaR,EAAeO,EAAU,GAAGjB,MAAMrB,WAAU,SAACwC,GAAD,OAASA,EAAIX,KAAOF,EAAKE,IAAMW,EAAIX,GAAKF,EAAKE,MAC5GE,EAAeO,EAAU,GAAGjB,MAAMoB,OAAOF,EAAY,EAAGZ,GAKpE,OAAOA,SAUf,GANA1mC,KAAKC,SAAS,CACV0lC,aAAc,KACdG,gBAAiB,KACjBC,SAAS,IAGTQ,EAAW/iC,OAAS,EAEpB,OADAikC,MAAMnoC,EAAG,kDAAmD,wBACrD,EAGXkR,OACKs1B,EAAkBS,EAAW3lC,QAAO,SAAC4lC,EAAKxkC,GAAN,OAAgBA,IAAU+kC,SA5OF,mCAgPxD7U,GAAQ,IACVyT,EAAgB3lC,KAAKF,MAArB6lC,aAEP,IAAKA,EACD,OAAO,KAJM,MAOmB3lC,KAAK/B,MAAlC+F,EAPU,EAOVA,WAAYwM,EAPF,EAOEA,cACZo2B,EAAMjB,EAANiB,GACHc,EAAe,EAEnB1nC,KAAKC,SAAS,CAAC0lC,aAAc,KAAMI,SAAS,IAC5C,CAAC,OAAQ,OAAQ,QAAQrwB,SAAQ,SAAC4wB,GAAD,OAC7B91B,EAAcA,EAAdA,GACK81B,EAAUtiC,EAAWsiC,GAASvkC,KAAI,SAACykC,GAChC,GAAIkB,EAAe,EAEf,OADAA,IACOlB,EAGX,IAAIc,EAAad,EAAIJ,MAAMrB,WAAU,SAAC2B,EAAMvrB,GAAP,OAAeurB,EAAKE,KAAOA,GAAOJ,EAAIJ,MAAMjrB,EAAM,IAAMqrB,EAAIJ,MAAMjrB,EAAM,GAAGyrB,GAAKA,KAKrH,IAJoB,IAAhBU,IACAA,EAAad,EAAIJ,MAAM5iC,OAAS,GAGhCgjC,EAAIJ,MAAMkB,GAAY/hB,SACnBihB,EAAIJ,MAAMkB,GAAYV,GAAKA,EAAK1U,GAChCsU,EAAIJ,MAAMkB,GAAYV,GAAKz+B,SAASq+B,EAAIJ,MAAMkB,GAAY/hB,SAAWqhB,EAAK1U,EAQ7E,OANAsU,EAAIJ,MAAMkB,GAAY/hB,UAElBihB,EAAIJ,MAAMkB,GAAYre,UACtBye,EAAev/B,SAASq+B,EAAIJ,MAAMkB,GAAYre,SAAW,GAGtDud,EAEP,IAAImB,EAAazV,EAOjB,OANIsU,EAAIJ,MAAMkB,GAAYV,GAAKA,GAAiB,IAAX1U,EACjCyV,EAAa,EACNnB,EAAIJ,MAAMkB,GAAYV,GAAKA,GAAiB,IAAX1U,IACxCyV,EAAa,GAGV,CACHvB,kBACOI,EAAIJ,MAAMnL,MAAM,EAAGqM,EAAaK,IADvC,CAEI,CAACluB,QAAS,KAFd,EAGO+sB,EAAIJ,MAAMnL,MAAMqM,EAAaK,gBAhSS,qCAyStD,IACJhC,EAAgB3lC,KAAKF,MAArB6lC,aAEP,IAAKA,EACD,OAAO,KAJA,MAOyB3lC,KAAK/B,MAAlC+F,EAPI,EAOJA,WAAYwM,EAPR,EAOQA,cACZo2B,EAAMjB,EAANiB,GACHc,EAAe,EAEnB1nC,KAAKC,SAAS,CAAC0lC,aAAc,KAAMI,SAAS,IAC5C,CAAC,OAAQ,OAAQ,QAAQrwB,SAAQ,SAAC4wB,GAAD,OAC7B91B,EAAcA,EAAdA,GACK81B,EAAUtiC,EAAWsiC,GAASvkC,KAAI,SAACykC,GAChC,GAAIkB,EAAe,EAEf,OADAA,IACOlB,EAGX,IAAMc,EAAad,EAAIJ,MAAMrB,WAAU,SAAC2B,EAAMvrB,GAAP,OAAeurB,EAAKE,KAAOA,GAAOJ,EAAIJ,MAAMjrB,EAAM,IAAMqrB,EAAIJ,MAAMjrB,EAAM,GAAGyrB,GAAKA,KAMvH,OAJIJ,EAAIJ,MAAMkB,GAAYre,UACtBye,EAAev/B,SAASq+B,EAAIJ,MAAMkB,GAAYre,SAAW,GAGzDud,EAAIJ,MAAMkB,GAAY/hB,SACtBihB,EAAIJ,MAAMkB,GAAY/hB,UAClBihB,EAAIJ,MAAMkB,GAAY/hB,SAAW,UAC1BihB,EAAIJ,MAAMkB,GAAY/hB,QAG1BihB,GAGJ,CACHJ,MAAOI,EAAIJ,MAAMxlC,QAAO,SAAC8lC,EAAM1kC,GAAP,OAAiBA,IAAUslC,gBA7UF,mCAoVxD,MACgCtnC,KAAKF,MAAvC8lC,EADE,EACFA,cAAeE,EADb,EACaA,gBAEtB,IAAK9lC,KAAKkmC,kBACN,OAAO,KAJF,MAO2BlmC,KAAK/B,MAAlC+F,EAPE,EAOFA,WAAYwM,EAPV,EAOUA,cACZo3B,EAAoBhC,EAApBgC,SAAUvB,EAAUT,EAAVS,OACXS,EAAiB9iC,EAAW8hC,GAC5B+B,EAAQf,EAAec,EAASR,QAAQhB,MAAMwB,EAASE,QACvDC,EAAQjB,EAAeT,EAAOe,QAAQhB,MAAMC,EAAOyB,QACnDE,OAAkC,IAAlBH,EAAMtiB,QAA0B,EAAIpd,SAAS0/B,EAAMtiB,SAAW,EAC9E0iB,OAAkC,IAAlBJ,EAAM5e,QAA0B,EAAI9gB,SAAS0/B,EAAM5e,SAAW,EAC9Eif,OAAkC,IAAlBH,EAAMxiB,QAA0B,EAAIpd,SAAS4/B,EAAMxiB,SAAW,EAC9E4iB,OAAkC,IAAlBJ,EAAM9e,QAA0B,EAAI9gB,SAAS4/B,EAAM9e,SAAW,EAC9Emf,EAAYx6B,KAAKtF,IAAIs/B,EAASR,OAAQf,EAAOe,QAC7CiB,EAAYz6B,KAAKrF,IAAIq/B,EAASR,OAASa,EAAQ5B,EAAOe,OAASe,GAC/DG,EAAY16B,KAAKtF,IAAIs/B,EAASW,IAAKlC,EAAOkC,KAC1CC,EAAY56B,KAAKrF,IAAIq/B,EAASW,IAAMP,EAAQ3B,EAAOkC,IAAML,GA+B/D13B,OAAgBs1B,EA7BGgB,EAAe/kC,KAAI,SAACykC,EAAKiC,GACxC,OAAIA,EAAcL,GAAaK,EAAcJ,EAClC7B,EAGJ,CACHJ,MAAOI,EAAIJ,MAAMrkC,KAAI,SAAC2kC,EAAMgC,GACxB,GAAIA,IAAgB96B,KAAKtF,IAAIs/B,EAASE,OAAQzB,EAAOyB,SAC9CW,IAAgB76B,KAAKtF,IAAIs/B,EAASR,OAAQf,EAAOe,QACtD,CACE,IAAMne,EAAUrb,KAAK+6B,IAAIN,EAAYD,GAAa,EAC5C7iB,EAAU3X,KAAK+6B,IAAIH,EAAYF,GAAa,EAElD,YACO5B,EADP,CAEIzd,QAASA,EAAU,EAAIA,OAAUza,EACjC+W,QAASA,EAAU,EAAIA,OAAU/W,IAIzC,OAAOk4B,KACR9lC,QAAO,SAAC8lC,EAAMC,GAAP,OACND,EAAKE,GAAK0B,GACN3B,IAAS/4B,KAAKtF,IAAIs/B,EAASE,OAAQzB,EAAOyB,SAAWW,IAAgB76B,KAAKtF,IAAIs/B,EAASR,OAAQf,EAAOe,SACvGV,EAAKE,GAAK4B,WAMzBxoC,KAAKC,SAAS,CACV0lC,aAAc,KACdG,gBAAiB,KACjBF,cAAe,KACfG,SAAS,MA3YoD,yCA+YlD,MACyB/lC,KAAKF,MAAtC6lC,EADQ,EACRA,aAAcG,EADN,EACMA,gBAErB,IAAKH,EACD,OAAO,KAJI,MAOqB3lC,KAAK/B,MAAlC+F,EAPQ,EAORA,WAAYwM,EAPJ,EAOIA,cACZo4B,EAA0BjD,EAA1BiD,SAAU7B,EAAgBpB,EAAhBoB,SAAUH,EAAMjB,EAANiB,GAErBiC,EAAc7kC,EAAW8hC,GAAiBiB,GAAUX,MAAMwC,GAAUrjB,QAAUpd,SAASnE,EAAW8hC,GAAiBiB,GAAUX,MAAMwC,GAAUrjB,SAAW,EACxJujB,EAAc9kC,EAAW8hC,GAAiBiB,GAAUX,MAAMwC,GAAU3f,QAAU9gB,SAASnE,EAAW8hC,GAAiBiB,GAAUX,MAAMwC,GAAU3f,SAAW,EAC9JjlB,EAAW8hC,GAAiBiB,GAAUX,MAAMwC,GAAUrjB,aAAU/W,EAChExK,EAAW8hC,GAAiBiB,GAAUX,MAAMwC,GAAU3f,aAAUza,EAsBhEgC,OAAgBs1B,EApBG9hC,EAAW8hC,GAAiB/jC,KAAI,SAACykC,EAAKiC,GACrD,GAAIA,GAAe1B,GAAY0B,EAAe1B,EAAW+B,EAAc,CACnE,IAAMxB,EAAad,EAAIJ,MAAMrB,WAAU,SAAC2B,GAAD,OAAUA,EAAKE,IAAMA,KACxDmC,EAAc,EAKlB,OAJIN,IAAgB1B,IAChBgC,EAAc,GAGX,CACH3C,kBACOI,EAAIJ,MAAMnL,MAAM,EAAGqM,EAAayB,IADvC,EAEOh1B,EAAM80B,EAAcE,GAAa,iBAAO,CAACtvB,QAAS,QAFzD,EAGO+sB,EAAIJ,MAAMnL,MAAMqM,EAAayB,MAK5C,OAAOvC,OAIXxmC,KAAKC,SAAS,CACV0lC,aAAc,KACdG,gBAAiB,KACjBC,SAAS,MAtboD,oCA6cvD3kC,GAAO,MACuBpB,KAAKF,MAAtC6lC,EADU,EACVA,aAAcG,EADJ,EACIA,gBACfQ,EAAUtmC,KAAK/B,MAAM+F,WAAW8hC,GAEtC,GAAKH,EAAL,CAJiB,IAMVoB,EAAsBpB,EAAtBoB,SAAU6B,EAAYjD,EAAZiD,SAEjB,GAAc,gBAAVxnC,EACA,OAAOklC,EAAQS,GAAUX,MAAMwC,GAAUI,iBAE7C,IAAM7uB,EAASqrB,EAASyD,YAAY3C,EAAQS,GAAUX,MAAMwC,GAAUzuB,QAEtE,GAAsB,iBAAlB,IAAOA,EAAP,cAAOA,IAAqB,CAC5B,IAAI+uB,EAAkB/uB,EAAO/Y,GAM7B,OAJI8nC,GAA8C,iBAApBA,GAAgCA,EAAgBtnC,QAAQ,QAClFsnC,EAAkB/uB,EAAO/Y,GAAO0B,QAAQ,MAAO,UAGjB,IAApBomC,GAA6C,gBAAV9nC,EAA0B,QAAU8nC,EAErF,QAAsB,IAAX/uB,EACeA,EAAO/Y,GAGjC,MAAkC,oBAApB8nC,iBAA6C,gBAAV9nC,EAA0B,aAAUoN,KAvexB,wCA2enDpN,GAAO,aACiDpB,KAAKF,MAApE6lC,EADc,EACdA,aAAcC,EADA,EACAA,cAAeC,EADf,EACeA,cAAeC,EAD9B,EAC8BA,gBACnD,IAAKH,IAAiB3lC,KAAKkmC,oBAAsBlmC,KAAKimC,kBAClD,OAAO,KAHU,MAMejmC,KAAK/B,MAAlC+F,EANc,EAMdA,WAAYwM,EANE,EAMFA,cACZu2B,EAAsBpB,EAAtBoB,SAAU6B,EAAYjD,EAAZiD,SACXtC,EAAUtiC,EAAW8hC,GACvBsC,SAAWC,SAAWC,SAAWE,SAErC,GAAIxoC,KAAKkmC,kBAAmB,KACjB0B,EAAoBhC,EAApBgC,SAAUvB,EAAUT,EAAVS,OACXwB,EAAQvB,EAAQsB,EAASR,QAAQhB,MAAMwB,EAASE,QAChDC,EAAQzB,EAAQD,EAAOe,QAAQhB,MAAMC,EAAOyB,QAC5CE,OAAkC,IAAlBH,EAAMtiB,QAA0B,EAAIpd,SAAS0/B,EAAMtiB,SAAW,EAC9E0iB,OAAkC,IAAlBJ,EAAM5e,QAA0B,EAAI9gB,SAAS0/B,EAAM5e,SAAW,EAC9Eif,OAAkC,IAAlBH,EAAMxiB,QAA0B,EAAIpd,SAAS4/B,EAAMxiB,SAAW,EAC9E4iB,OAAkC,IAAlBJ,EAAM9e,QAA0B,EAAI9gB,SAAS4/B,EAAM9e,SAAW,EACpFmf,EAAYx6B,KAAKtF,IAAIs/B,EAASR,OAAQf,EAAOe,QAC7CiB,EAAYz6B,KAAKrF,IAAIq/B,EAASR,OAASa,EAAQ5B,EAAOe,OAASe,GAC/DG,EAAY16B,KAAKtF,IAAIs/B,EAASW,IAAKlC,EAAOkC,KAC1CC,EAAY56B,KAAKrF,IAAIq/B,EAASW,IAAMP,EAAQ3B,EAAOkC,IAAML,GAG7D,IAAM3B,EAAaD,EAAQvkC,KAAI,SAACykC,EAAKiC,GACjC,OAAK,EAAKvC,oBAAsB,EAAKD,mBAAqBwC,IAAgB1B,GAClE,EAAKb,oBAAsBuC,EAAcL,GAAaK,EAAcJ,IACpE,EAAKpC,oBAAqF,IAAhEJ,EAAcd,WAAU,SAAC1oC,GAAD,OAAOA,EAAE0qC,WAAa0B,KAErEjC,EAGJ,CACHJ,MAAOI,EAAIJ,MAAMrkC,KAAI,SAAC2kC,EAAMgC,GACxB,IAAK,EAAKxC,oBAAsB,EAAKD,mBAAqByC,IAAgBE,GAClE,EAAK1C,mBAAsBQ,EAAKE,IAAM0B,GAAa5B,EAAKE,IAAM4B,GAC9D,EAAKvC,mBAAqBJ,EAAcd,WAAU,SAAC1oC,GAAD,OAAOA,EAAEusC,WAAaF,GAAersC,EAAE0qC,WAAa0B,MAAgB,EAI1H,GAFA/B,EAAKvsB,OAASqrB,EAASyD,YAAYvC,EAAKvsB,QAEpC/Y,EAAMiQ,YAEFq1B,EAAKvsB,OAAOgvB,iBACZzC,EAAKvsB,OAAL,KAAkBusB,EAAKvsB,OAAvB,CAA+BgvB,eAAgB/nC,EAAMiQ,eAErDq1B,EAAKvsB,OAAOivB,mBACZ1C,EAAKvsB,OAAL,KAAkBusB,EAAKvsB,OAAvB,CAA+BivB,iBAAkBhoC,EAAMiQ,eAEvDq1B,EAAKvsB,OAAOkvB,oBACZ3C,EAAKvsB,OAAL,KAAkBusB,EAAKvsB,OAAvB,CAA+BkvB,kBAAmBjoC,EAAMiQ,eAExDq1B,EAAKvsB,OAAOmvB,kBACZ5C,EAAKvsB,OAAL,KAAkBusB,EAAKvsB,OAAvB,CAA+BmvB,gBAAiBloC,EAAMiQ,eAG1Dq1B,EAAKsC,iBAAmB5nC,EAAMiQ,iBAC3B,GAAIjQ,EAAMmoC,UAAW,CAExB,IAAMC,EAAkB9C,EAAKsC,kBAAoB,OAC3CH,EAAenC,EAAKnhB,QAAcpd,SAASu+B,EAAKnhB,SAAW,EAA7B,EAC9BujB,EAAepC,EAAKzd,QAAc9gB,SAASu+B,EAAKzd,SAAW,EAA7B,EACpC,OAAQ7nB,EAAMmoC,WACV,IAAK,MACD7C,EAAKvsB,OAAL,KAAkBusB,EAAKvsB,OAAvB,CAA+BgvB,eAAgBK,IAC/C,MACJ,IAAK,QACD9C,EAAKvsB,OAAL,KAAkBusB,EAAKvsB,OAAvB,CAA+BivB,iBAAkBI,IACjD,MACJ,IAAK,SACD9C,EAAKvsB,OAAL,KAAkBusB,EAAKvsB,OAAvB,CAA+BkvB,kBAAmBG,IAClD,MACJ,IAAK,OACD9C,EAAKvsB,OAAL,KAAkBusB,EAAKvsB,OAAvB,CAA+BmvB,gBAAiBE,IAChD,MACJ,IAAK,MACD9C,EAAKvsB,OAAL,KACOusB,EAAKvsB,OADZ,CAEIgvB,eAAgBK,EAChBJ,iBAAkBI,EAClBH,kBAAmBG,EACnBF,gBAAiBE,IAErB,MACJ,IAAK,OACD9C,EAAKvsB,OAAL,KACOusB,EAAKvsB,OADZ,CAEIgvB,oBAAgB36B,EAChB46B,sBAAkB56B,EAClB66B,uBAAmB76B,EACnB86B,qBAAiB96B,IAErB,MACJ,IAAK,OACGk4B,EAAKE,KAAO0B,EACZ5B,EAAKvsB,OAAL,KACOusB,EAAKvsB,OADZ,CAEIivB,iBAAkBI,IAEf9C,EAAKE,GAAKiC,IAAgBL,EACjC9B,EAAKvsB,OAAL,KACOusB,EAAKvsB,OADZ,CAEImvB,gBAAiBE,IAGrB9C,EAAKvsB,OAAL,KACOusB,EAAKvsB,OADZ,CAEIivB,iBAAkBI,EAClBF,gBAAiBE,IAGzB,MACJ,IAAK,OAEG9C,EAAKvsB,OAAL,KACOusB,EAAKvsB,OAFZsuB,IAAgBL,EAChB,CAEIiB,kBAAmBG,GAEhBf,EAAcK,IAAgBT,EACrC,CAEIc,eAAgBK,GAGpB,CAEIL,eAAgBK,EAChBH,kBAAmBG,IAG3B,MACJ,IAAK,QAEG9C,EAAKvsB,OAAL,KACOusB,EAAKvsB,OAFZsuB,IAAgBL,EAChB,CAEIiB,kBAAmBG,GAEhBf,EAAcK,IAAgBT,EACrC,CAEIc,eAAgBK,GAGpB,CAEIL,eAAgBK,EAChBH,kBAAmBG,IAIvB9C,EAAKE,KAAO0B,EACZ5B,EAAKvsB,OAAL,KACOusB,EAAKvsB,OADZ,CAEIivB,iBAAkBI,IAEf9C,EAAKE,GAAKiC,IAAgBL,EACjC9B,EAAKvsB,OAAL,KACOusB,EAAKvsB,OADZ,CAEImvB,gBAAiBE,IAGrB9C,EAAKvsB,OAAL,KACOusB,EAAKvsB,OADZ,CAEIivB,iBAAkBI,EAClBF,gBAAiBE,IAGzB,MACJ,IAAK,QACGf,IAAgBL,EAChB1B,EAAKvsB,OAAL,KACOusB,EAAKvsB,OADZ,CAEIgvB,eAAgBK,IAEbf,EAAcK,IAAgBT,IACrC3B,EAAKvsB,OAAL,KACOusB,EAAKvsB,OADZ,CAEIkvB,kBAAmBG,KAIvB9C,EAAKE,KAAO0B,EACZ5B,EAAKvsB,OAAL,KACOusB,EAAKvsB,OADZ,CAEImvB,gBAAiBE,IAEd9C,EAAKE,GAAKiC,IAAgBL,IACjC9B,EAAKvsB,OAAL,KACOusB,EAAKvsB,OADZ,CAEIivB,iBAAkBI,WAQlC9C,EAAKvsB,OAAL,KAAkBusB,EAAKvsB,OAAW/Y,GAI1C,OAAOslC,SAKnBl2B,OAAgB81B,EAAUC,MAzrBuC,wCA4rBnD9sB,GAAsB,IAAbitB,EAAa,uDAAN,KAAM,EACI1mC,KAAKF,MAAtC6lC,EAD6B,EAC7BA,aAAcG,EADe,EACfA,gBACrB,IAAKH,IAAiBe,EAClB,OAAO,KAGX,IAAIK,SAAU6B,SACVlC,GACAK,EAAWL,EAAKK,SAChB6B,EAAWlC,EAAKkC,WAEhB7B,EAAWpB,EAAaoB,SACxB6B,EAAWjD,EAAaiD,UAZQ,MAeA5oC,KAAK/B,MAAlC+F,EAf6B,EAe7BA,WAAYwM,EAfiB,EAejBA,cAEb+1B,EAAaviC,EAAW8hC,GAAiB/jC,KAAI,SAACykC,EAAKiC,GACrD,OAAIA,IAAgB1B,EACTP,EAGJ,CACHJ,MAAOI,EAAIJ,MAAMrkC,KAAI,SAAC2kC,EAAMgC,GACxB,OAAIA,IAAgBE,EACTlC,EAGX,KACOA,EADP,CAEIjtB,mBAMhBjJ,OAAgBs1B,EAAkBS,MAhuB+B,oCAmuBvDD,GAAS,MACiBtmC,KAAK/B,MAAlC+F,EADY,EACZA,WAAYwM,EADA,EACAA,cACZs1B,EAAmB9lC,KAAKF,MAAxBgmC,gBAED2D,EAAa,CAAC,CAACrD,MADNpiC,EAARmiC,KAC0B,GAAGC,MAAMrkC,KAAI,SAAC2kC,GAAD,MAAW,CAACE,GAAIF,EAAKE,GAAIrhB,QAASmhB,EAAKnhB,cASrF,OAPIugB,IAAoBQ,GACpBtmC,KAAKC,SAAS,CACV0lC,aAAc,KACdG,gBAAiB,OAIpB9hC,EAAWsiC,GAAS9iC,OAIlBgN,EAAcA,EAAdA,GAAgB81B,EAAU,KAHtB91B,EAAcA,EAAdA,GAAgB81B,EAAUmD,MAjvB4B,oCAuvBvDnD,GAAS,WACZtiC,EAAchE,KAAK/B,MAAnB+F,WADY,EAEmDhE,KAAKF,MAApE6lC,EAFY,EAEZA,aAAcE,EAFF,EAEEA,cAAeD,EAFjB,EAEiBA,cAAeE,EAFhC,EAEgCA,gBAEnD,OAAO9hC,EAAWsiC,GAASvkC,KAAI,WAAUglC,GAAV,IAAEX,EAAF,EAAEA,MAAF,OAC3B,0BAAI7oC,IAAKwpC,GACJX,EAAMrkC,KAAI,WAA0C6mC,GAAa,IAArDnvB,EAAqD,EAArDA,QAASU,EAA4C,EAA5CA,OAAQoL,EAAoC,EAApCA,QAAS0D,EAA2B,EAA3BA,QAAS2d,EAAkB,EAAlBA,GACtCF,EAAO,CAACK,WAAU6B,WAAUhC,KAAIN,WAElC/uB,EAAaouB,GACVA,EAAaoB,WAAaA,GAC1BpB,EAAaiD,WAAaA,GAC1B9C,IAAoBQ,EAE3B,GAAI,EAAKJ,kBAAmB,KACjB0B,EAAoBhC,EAApBgC,SAAUvB,EAAUT,EAAVS,OACjB,GAAIriC,EAAW8hC,GAAiB8B,EAASR,SAAWpjC,EAAW8hC,GAAiBO,EAAOe,QAAS,CAC5F,IAAMS,EAAQ7jC,EAAW8hC,GAAiB8B,EAASR,QAAQhB,MAAMwB,EAASE,QACpEC,EAAQ/jC,EAAW8hC,GAAiBO,EAAOe,QAAQhB,MAAMC,EAAOyB,QAChEE,OAAkC,IAAlBH,EAAMtiB,QAA0B,EAAIpd,SAAS0/B,EAAMtiB,SAAW,EAC9E0iB,OAAkC,IAAlBJ,EAAM5e,QAA0B,EAAI9gB,SAAS0/B,EAAM5e,SAAW,EAC9Eif,OAAkC,IAAlBH,EAAMxiB,QAA0B,EAAIpd,SAAS4/B,EAAMxiB,SAAW,EAC9E4iB,OAAkC,IAAlBJ,EAAM9e,QAA0B,EAAI9gB,SAAS4/B,EAAM9e,SAAW,EAEpF1R,EAAawvB,GAAYn5B,KAAKtF,IAAIs/B,EAASR,OAAQf,EAAOe,SACnDL,GAAYn5B,KAAKrF,IAAIq/B,EAASR,OAASa,EAAQ5B,EAAOe,OAASe,IAC/DvB,GAAMh5B,KAAKtF,IAAIs/B,EAASW,IAAKlC,EAAOkC,MACpC3B,GAAMh5B,KAAKrF,IAAIq/B,EAASW,IAAMP,EAAQ3B,EAAOkC,IAAML,IACnD5B,IAAYR,GAIvB,EAAKG,oBACL1uB,EAAasuB,EAAcd,WAAU,SAAC1oC,GAAD,OAAOA,EAAE0qC,WAAaA,GAAY1qC,EAAEusC,WAAaA,MAAa,GAC5F/C,EAAc,GAAGS,UAAYA,GAIxC,IAAMoD,EAAgB,CAClBnyB,GAAc,iBAChB3W,OAAOC,SAASC,KAAK,KAIvB,OAFAqZ,EAASqrB,EAASyD,YAAY9uB,GAG1B,0BAAI5c,IAAKqrC,EACL/pC,UAAW6qC,EACXtoC,MAAO+Y,EACPoL,QAASA,EACT0D,QAASA,EACThoB,QAAS,SAACZ,GACN,GAAIA,EAAEskC,SAAU,CACZ,IAAKiB,EAAe,OACpB,IAAKA,EAAcgC,SAAU,OAFjB,IAILA,EAAYhC,EAAZgC,SACP,GAAItB,IAAYsB,EAAStB,QAErB,YADAmB,MAAMnoC,EAAG,qDAAsD,uBAGnE,IAAM+mC,EAAS,CACXe,OAAQL,EACRe,OAAQc,EACRL,IAAK3B,EACLN,QAASA,GAGb,EAAKrmC,SAAS,CACV2lC,cAAe,CAACgC,WAAUvB,UAC1BR,cAAe,YAEhB,GAAIxlC,EAAEspC,SAAWtpC,EAAEupC,QAAS,CAC/B,IAAMC,EAAahE,GAAgC,GAC7CiE,EAAYD,EAAW9E,WAAU,SAACgF,GAAD,OAASA,EAAIhD,WAAaA,GAAYgD,EAAInB,WAAaA,KAE9F,GAAIiB,EAAWrmC,QAAU8iC,IAAYuD,EAAW,GAAGvD,QAE/C,YADAmB,MAAMnoC,EAAG,qDAAsD,wBAIhD,IAAfwqC,EACAD,EAAWvkC,KAAKohC,GAEhBmD,EAAWrC,OAAOsC,EAAW,GAGjC,EAAK7pC,SAAS,CACV4lC,cAAegE,EACfjE,cAAe,YAGnB,EAAK3lC,SAAS,CACV2lC,cAAe,CACXgC,SAAU,CACNR,OAAQL,EACRe,OAAQc,EACRL,IAAK3B,EACLN,QAASA,IAGjBT,cAAe,CAACa,OAK5B,oBAACr3B,EAAD,CACIxQ,UAAU,+BACV5B,MAAOwc,EACP7a,SAAU,SAAC3B,GACHqoC,GAAgB0E,aAAa1E,GACjCC,EAAYtoC,EACZqoC,EAAiB2E,YAAW,kBAAM,EAAKC,kBAAkBjtC,EAAO0oC,KAAe,KAEnF1mB,gBAAiB,WACTqmB,IACA,EAAK4E,kBAAkB3E,EAAWI,GAClCqE,aAAa1E,GACbA,EAAiB,MAErB,EAAKrlC,SAAS,CACV0lC,aAAce,EACdZ,gBAAiBQ,KAKzBrlC,QAAS,WACDqkC,IACA,EAAK4E,kBAAkB3E,EAAWI,GAClCqE,aAAa1E,GACbA,EAAiB,MAErB,EAAKrlC,SAAS,CACV0lC,aAAce,EACdZ,gBAAiBQ,iBA73BgB,+BAw4B5D,aAC0CtmC,KAAK/B,MAA7C+F,EADF,EACEA,WAAYwM,EADd,EACcA,cAAe3R,EAD7B,EAC6BA,UAC3BsrC,EAAyEnmC,EAAzEmmC,KAAMhE,EAAmEniC,EAAnEmiC,KAAMiE,EAA6DpmC,EAA7DomC,KAAMC,EAAuDrmC,EAAvDqmC,SAAUC,EAA6CtmC,EAA7CsmC,eAAgBC,EAA6BvmC,EAA7BumC,eAAgB30B,EAAa5R,EAAb4R,UAF9D,EAGkE5V,KAAKF,MAArE2lC,EAHF,EAGEA,QAASC,EAHX,EAGWA,QAASC,EAHpB,EAGoBA,aACnB6E,GAJD,EAGkC5E,cAHlC,EAGiDC,cAChCwE,QAAsB77B,GACtCi8B,EAAc9E,EAAeQ,EAAKR,EAAaoB,UAAUX,MAAMT,EAAaiD,UAAY,KAG9F,IAAKzC,EAAK3iC,OACN,OACIoS,EACI,2BAAKE,IAAKxW,EAAG,iBAAkB,sBAAuBsS,MAAM,OAAOa,IAAK+D,IAExE,oBAAC9W,EAAD,KACI,2BAAKb,UAAU,oBACX,oBAACe,EAAD,CACIqF,KAAK,SACLtG,MAAOW,EAAG,eAAgB,sBAC1BrC,MAAOyoC,EACP9mC,SAAU,SAAC3B,GAAD,OAAW,EAAKgD,SAAS,CAACylC,QAASzoC,KAC7CqL,IAAI,MAER,oBAAC1I,EAAD,CACIqF,KAAK,SACLtG,MAAOW,EAAG,YAAa,sBACvBrC,MAAOwoC,EACP7mC,SAAU,SAAC3B,GAAD,OAAW,EAAKgD,SAAS,CAACwlC,QAASxoC,KAC7CqL,IAAI,MAER,oBAACiB,EAAD,CAAQmhC,WAAA,EACAzpC,QAAS,kBAAM,EAAK0pC,gBAAgBrrC,EAAG,SAAU,uBACzD,2BAAK8B,MAAO,CAAC4K,UAAW,KACpB,iCAAQ1M,EAAG,2FAA4F,0BAO/H,IAAMsrC,EAAiB,CACnB,CACIjpC,KAAM,mBACNO,MAAO5C,EAAG,iBAAkB,sBAC5BurC,YAAalF,GAAgB3lC,KAAKkmC,mBAAqBlmC,KAAKimC,kBAC5DhlC,QAAS,kBAAM,EAAK6pC,UAAU,KAElC,CACInpC,KAAM,kBACNO,MAAO5C,EAAG,gBAAiB,sBAC3BurC,YAAalF,GAAgB3lC,KAAKkmC,mBAAqBlmC,KAAKimC,kBAC5DhlC,QAAS,kBAAM,EAAK6pC,UAAU,KAElC,CACInpC,KAAM,mBACNO,MAAO5C,EAAG,aAAc,sBACxBurC,YAAalF,GAAgB3lC,KAAKkmC,mBAAqBlmC,KAAKimC,kBAC5DhlC,QAAS,kBAAM,EAAK8pC,cAExB,CACIppC,KAAM,mBACNO,MAAO5C,EAAG,oBAAqB,sBAC/BurC,YAAalF,GAAgB3lC,KAAKkmC,mBAAqBlmC,KAAKimC,kBAC5DhlC,QAAS,kBAAM,EAAK+pC,aAAa,KAErC,CACIrpC,KAAM,kBACNO,MAAO5C,EAAG,mBAAoB,sBAC9BurC,YAAalF,GAAgB3lC,KAAKkmC,mBAAqBlmC,KAAKimC,kBAC5DhlC,QAAS,kBAAM,EAAK+pC,aAAa,KAErC,CACIrpC,KAAM,mBACNO,MAAO5C,EAAG,gBAAiB,sBAC3BurC,YAAalF,GAAgB3lC,KAAKkmC,mBAAqBlmC,KAAKimC,kBAC5DhlC,QAAS,kBAAM,EAAKgqC,iBAExB,CACItpC,KACI,2BAAKiQ,MAAM,KAAKC,OAAO,KAAKC,QAAQ,YAAYjT,UAAU,YACtD,4BAAM+Q,KAAK,OAAOtT,EAAE,oBACpB,4BAAMA,EAAE,sEAGhB4F,MAAO5C,EAAG,qBAAsB,sBAChCurC,YAAalF,GACL8E,IAAgBA,EAAYxhB,UAAYwhB,EAAYllB,SACrDvlB,KAAKkmC,mBACLlmC,KAAKimC,kBACZhlC,QAAS,kBAAM,EAAKiqC,qBAExB,CACIvpC,KACI,2BAAKiQ,MAAM,KAAKC,OAAO,KAAKhT,UAAU,WAAWiT,QAAQ,aACrD,4BAAMlC,KAAK,OAAOtT,EAAE,oBACpB,+BAAS0T,OAAO,gCAChB,4BACI1T,EAAE,qHACN,+BAAS0T,OAAO,4BAGxB9N,MAAO5C,EAAG,cAAe,sBACzBurC,YAAa7qC,KAAKkmC,kBAClBjlC,QAAS,kBAAM,EAAKkqC,gBAIxBC,EAAgB,CAChB,CACIlpC,MAAO5C,EAAG,aAAc,sBACxBqC,KACI,2BAAKgQ,MAAM,6BAA6BC,MAAM,KAAKC,OAAO,KAAKC,QAAQ,aACnE,4BACIxV,EAAE,kQACN,4BAAMA,EAAE,gBAAgBsT,KAAK,UAGrC3O,QAAS,kBAAM,EAAKoqC,kBAAkB,CAAC9B,UAAW,UAEtD,CACIrnC,MAAO5C,EAAG,eAAgB,sBAC1BqC,KACI,2BAAKgQ,MAAM,6BAA6BC,MAAM,KAAKC,OAAO,KAAKC,QAAQ,aACnE,4BACIxV,EAAE,8PACN,4BAAMA,EAAE,gBAAgBsT,KAAK,UAGrC3O,QAAS,kBAAM,EAAKoqC,kBAAkB,CAAC9B,UAAW,YAEtD,CACIrnC,MAAO5C,EAAG,gBAAiB,sBAC3BqC,KACI,2BAAKgQ,MAAM,6BAA6BC,MAAM,KAAKC,OAAO,KAAKC,QAAQ,aACnE,4BACIxV,EAAE,4PACN,4BAAMA,EAAE,gBAAgBsT,KAAK,UAGrC3O,QAAS,kBAAM,EAAKoqC,kBAAkB,CAAC9B,UAAW,aAEtD,CACIrnC,MAAO5C,EAAG,cAAe,sBACzBqC,KACI,2BAAKgQ,MAAM,6BAA6BC,MAAM,KAAKC,OAAO,KAAKC,QAAQ,aACnE,4BACIxV,EAAE,qQACN,4BAAMA,EAAE,gBAAgBsT,KAAK,UAGrC3O,QAAS,kBAAM,EAAKoqC,kBAAkB,CAAC9B,UAAW,WAEtD,CACIrnC,MAAO5C,EAAG,aAAc,sBACxBqC,KACI,2BAAKgQ,MAAM,6BAA6BC,MAAM,KAAKC,OAAO,KAAKC,QAAQ,aACnE,4BAAMxV,EAAE,6EACR,4BAAMA,EAAE,gBAAgBsT,KAAK,UAGrC3O,QAAS,kBAAM,EAAKoqC,kBAAkB,CAAC9B,UAAW,UAEtD,CACIrnC,MAAO5C,EAAG,cAAe,sBACzBqC,KACI,2BAAKgQ,MAAM,6BAA6BC,MAAM,KAAKC,OAAO,KAAKC,QAAQ,aACnE,4BACIxV,EAAE,qTACN,4BAAMA,EAAE,gBAAgBsT,KAAK,UAGrC3O,QAAS,kBAAM,EAAKoqC,kBAAkB,CAAC9B,UAAW,YAI1D,GAAIvpC,KAAKkmC,kBAAmB,CACxB,IAAMoF,EAAsB,CACxB,CACIppC,MAAO5C,EAAG,kBAAmB,sBAC7BqC,KACI,2BAAKgQ,MAAM,6BAA6BC,MAAM,KAAKC,OAAO,KAAKC,QAAQ,aACnE,4BACIxV,EAAE,8PACN,4BAAMA,EAAE,gBAAgBsT,KAAK,UAGrC3O,QAAS,kBAAM,EAAKoqC,kBAAkB,CAAC9B,UAAW,WAEtD,CACIrnC,MAAO5C,EAAG,oBAAqB,sBAC/BqC,KACI,2BAAKgQ,MAAM,6BAA6BC,MAAM,KAAKC,OAAO,KAAKC,QAAQ,aACnE,4BACIxV,EAAE,8PACN,4BAAMA,EAAE,gBAAgBsT,KAAK,UAGrC3O,QAAS,kBAAM,EAAKoqC,kBAAkB,CAAC9B,UAAW,WAEtD,CACIrnC,MAAO5C,EAAG,eAAgB,sBAC1BqC,KACI,2BAAKgQ,MAAM,6BAA6BC,MAAM,KAAKC,OAAO,KAAKC,QAAQ,aACnE,4BACIxV,EAAE,qNACN,4BAAMA,EAAE,gBAAgBsT,KAAK,UAGrC3O,QAAS,kBAAM,EAAKoqC,kBAAkB,CAAC9B,UAAW,YAEtD,CACIrnC,MAAO5C,EAAG,eAAgB,sBAC1BqC,KACI,2BAAKgQ,MAAM,6BAA6BC,MAAM,KAAKC,OAAO,KAAKC,QAAQ,aACnE,4BACIxV,EAAE,iHACN,4BAAMA,EAAE,gBAAgBsT,KAAK,UAGrC3O,QAAS,kBAAM,EAAKoqC,kBAAkB,CAAC9B,UAAW,aAI1D6B,cAAoBA,GAAkBE,GAG1C,IAAMC,EAA0B,CAC5B,CACI5pC,KAAM,mBACNO,MAAO5C,EAAG,aAAc,sBACxBkY,MAAO,QAEX,CACI7V,KAAM,qBACNO,MAAO5C,EAAG,eAAgB,sBAC1BkY,MAAO,UAEX,CACI7V,KAAM,oBACNO,MAAO5C,EAAG,cAAe,sBACzBkY,MAAO,SAEX,CACI7V,KAAM,iBACNO,MAAO5C,EAAG,gBAAiB,sBAC3BkY,MAAO,YAITg0B,EAA0B,CAC5B,CACI7pC,KACI,2BAAKgQ,MAAM,6BAA6BC,MAAM,KAAKC,OAAO,KAAKC,QAAQ,aACnE,4BAAMxV,EAAE,8CACR,4BAAMA,EAAE,gBAAgBsT,KAAK,UAGrC1N,MAAO5C,EAAG,YAAa,sBACvBkY,MAAO,OAEX,CACI7V,KACI,2BAAKgQ,MAAM,6BAA6BC,MAAM,KAAKC,OAAO,KAAKC,QAAQ,aACnE,4BAAMxV,EAAE,yEACR,4BAAMA,EAAE,gBAAgBsT,KAAK,UAGrC1N,MAAO5C,EAAG,eAAgB,sBAC1BkY,MAAO,UAEX,CACI7V,KACI,2BAAKgQ,MAAM,6BAA6BC,MAAM,KAAKC,OAAO,KAAKC,QAAQ,aACnE,4BAAMxV,EAAE,iDACR,4BAAMA,EAAE,gBAAgBsT,KAAK,UAGrC1N,MAAO5C,EAAG,eAAgB,sBAC1BkY,MAAO,WAIf,OACI5B,EACI,2BAAKE,IAAKxW,EAAG,iBAAkB,sBAAuBsS,MAAM,OAAOa,IAAK+D,IAExE,oBAAC9W,EAAD,KACI,oBAACuV,EAAD,KACI,oBAACC,EAAD,KACI,oBAACkwB,EAAD,CACIqG,mBAAA,EACA9pC,KAAK,eACLhD,MAAOW,EAAG,aAAc,sBACxBomB,SAAUklB,IAEd,oBAACz1B,EAAD,CACIxT,KAAK,SACLhD,MAAOW,EAAG,oDAAqD,sBAC/D2B,QAAS,kBAAM,EAAK+kC,6BAIhC,oBAAC52B,EAAD,KACI,oBAACI,EAAD,CAAWtN,MAAO5C,EAAG,iBAAkB,uBACnC,oBAACwG,EAAD,CACInH,MAAOW,EAAG,iBAAkB,sBAC5BoS,KAAMpS,EAAG,0CAA2C,sBACpDgJ,IAAK,EACLC,IAAK,KACLtL,MAAOotC,EACPzrC,SAAU,SAAC3B,GAAD,OAAWuT,EAAc,CAAC65B,SAAUptC,OAElD,oBAACwS,EAAD,CACI9Q,MAAOW,EAAG,0BAA2B,sBACrC2L,QAASs/B,EACT3rC,SAAU,kBAAM4R,EAAc,CAAC+5B,gBAAiBA,OAEpD,oBAAC96B,EAAD,CACI9Q,MAAOW,EAAG,eAAgB,sBAC1B2L,QAASk/B,GAAQA,EAAK3mC,OACtB5E,SAAU,kBAAM,EAAK8sC,cAAc,WAEvC,oBAACj8B,EAAD,CACI9Q,MAAOW,EAAG,eAAgB,sBAC1B2L,QAASm/B,GAAQA,EAAK5mC,OACtB5E,SAAU,kBAAM,EAAK8sC,cAAc,WAEvC,oBAACj8B,EAAD,CACI9Q,MAAOW,EAAG,mBAAoB,sBAC9B2L,QAASq/B,EACT1rC,SAAU,kBAAM4R,EAAc,CAAC85B,gBAAiBA,QAGxD,oBAAC96B,EAAD,CAAWtN,MAAO5C,EAAG,gBAAiB,uBAClC,oBAACgQ,EAAD,CACIpN,MAAO5C,EAAG,iBAAkB,sBAC5B0S,cAAe,CACX,CACIrT,MAAOW,EAAG,mBAAoB,sBAC9BrC,MAAO+C,KAAK2rC,cAAc,mBAC1B/sC,SAAU,SAAC3B,GAAD,OAAW,EAAKouC,kBAAkB,CAACp5B,gBAAiBhV,MAElE,CACI0B,MAAOW,EAAG,aAAc,sBACxBrC,MAAO+C,KAAK2rC,cAAc,SAC1B/sC,SAAU,SAAC3B,GAAD,OAAW,EAAKouC,kBAAkB,CAAC75B,MAAOvU,SAIhE,oBAACuS,EAAD,CAAWtN,MAAO5C,EAAG,SAAU,sBAAuByS,aAAa,GAC/D,2BAAKlT,UAAU,6BACVusC,EAAcrpC,KAAI,SAACmM,EAAMlM,GAAP,OACf,2BAAKnD,UAAU,oBAAoBtB,IAAKyE,GACpC,oBAACyH,EAAD,CAASC,KAAMwE,EAAKhM,OAChB,4BAAMjB,QAASiN,EAAKjN,SAAUiN,EAAKvM,YAKnD,oBAAChC,EAAD,CACIhB,MAAOW,EAAG,eAAgB,sBAC1BrC,MAAO+C,KAAK2rC,cAAc,eAC1BxqC,QAAS,CACL,CAACxC,MAAOW,EAAG,QAAS,sBAAuBrC,MAAO,SAClD,CAAC0B,MAAOW,EAAG,SAAU,sBAAuBrC,MAAO,UACnD,CAAC0B,MAAOW,EAAG,SAAU,sBAAuBrC,MAAO,UACnD,CAAC0B,MAAOW,EAAG,OAAQ,sBAAuBrC,MAAO,SAErD2B,SAAU,SAAC3B,GAAD,OAAW,EAAKouC,kBAAkB,CAACl6B,YAAalU,OAE9D,oBAAC6I,EAAD,CACInH,MAAOW,EAAG,eAAgB,sBAC1BrC,MAAO+C,KAAK2rC,cAAc,gBAAkB,EAC5CrjC,IAAK,EACLC,IAAK,GACL3J,SAAU,SAAC3B,GAAD,OAAW,EAAKouC,kBAAkB,CAACj6B,YAAanU,OAE9D,oBAACqS,EAAD,CACIpN,MAAO5C,EAAG,eAAgB,sBAC1B0S,cAAe,CACX,CACIrT,MAAOW,EAAG,eAAgB,sBAC1BrC,MAAO+C,KAAK2rC,cAAc,eAC1B/sC,SAAU,SAAC3B,GAAD,OAAW,EAAKouC,kBAAkB,CAACh6B,YAAapU,UAK1E,oBAACuS,EAAD,CAAWtN,MAAO5C,EAAG,UAAW,sBAAuByS,aAAa,GAChE,oBAACjM,EAAD,CACInH,MAAOW,EAAG,cAAe,sBACzBrC,MAAO+C,KAAK2rC,cAAc,eAAiB,EAC3CrjC,IAAK,EACLC,IAAK,IACL3J,SAAU,SAAC3B,GAAD,OAAW,EAAKouC,kBAAkB,CAACtzB,WAAY9a,OAE7D,oBAAC6I,EAAD,CACInH,MAAOW,EAAG,gBAAiB,sBAC3BrC,MAAO+C,KAAK2rC,cAAc,iBAAmB,EAC7CrjC,IAAK,EACLC,IAAK,IACL3J,SAAU,SAAC3B,GAAD,OAAW,EAAKouC,kBAAkB,CAACrzB,aAAc/a,OAE/D,oBAAC6I,EAAD,CACInH,MAAOW,EAAG,iBAAkB,sBAC5BrC,MAAO+C,KAAK2rC,cAAc,kBAAoB,EAC9CrjC,IAAK,EACLC,IAAK,IACL3J,SAAU,SAAC3B,GAAD,OAAW,EAAKouC,kBAAkB,CAACpzB,cAAehb,OAEhE,oBAAC6I,EAAD,CACInH,MAAOW,EAAG,eAAgB,sBAC1BrC,MAAO+C,KAAK2rC,cAAc,gBAAkB,EAC5CrjC,IAAK,EACLC,IAAK,IACL3J,SAAU,SAAC3B,GAAD,OAAW,EAAKouC,kBAAkB,CAACnzB,YAAajb,QAGlE,oBAACuS,EAAD,CAAWtN,MAAO5C,EAAG,iBAAkB,sBAAuByS,aAAa,GACvE,oBAAC1T,EAAD,CAAaqT,KAAMpS,EAAG,mBAAoB,uBACtC,oBAAC4V,EAAD,CACIwQ,SAAU6lB,EAAwBxpC,KAAI,SAAC6pC,GACnC,IAAMC,EAAY,EAAKF,cAAc,eAAiBC,EAAQp0B,MAE9D,YACOo0B,EADP,CAEIC,WACA5qC,QAAS,kBAAM,EAAKoqC,kBAAkB,CAAC/uB,UAAWuvB,OAAWr9B,EAAYo9B,EAAQp0B,iBAKjG,oBAACnZ,EAAD,CAAaqT,KAAMpS,EAAG,iBAAkB,uBACpC,oBAAC4V,EAAD,CACIwQ,SAAU8lB,EAAwBzpC,KAAI,SAAC6pC,GACnC,IAAMC,EAAY,EAAKF,cAAc,mBAAqBC,EAAQp0B,MAElE,YACOo0B,EADP,CAEIC,WACA5qC,QAAS,kBAAM,EAAKoqC,kBAAkB,CAACS,cAAeD,OAAWr9B,EAAYo9B,EAAQp0B,oBAQjH,6BAAO3Y,UAAWA,EACXuC,MAAO,CACHipC,SAAUG,EACVuB,eAAgBzB,EAAiB,gBAAa97B,EAC9Cw9B,YAAazB,EAAiB,aAAU/7B,MAG5C27B,EAAK3mC,QACJ,iCAAQxD,KAAKisC,cAAc,SAE/B,iCAAQjsC,KAAKisC,cAAc,WACxB7B,EAAK5mC,QACJ,iCAAQxD,KAAKisC,cAAc,cAn1CkB,mCA2blD9xB,GACf,MAAsB,iBAAXA,EACAA,EAGJA,EACFrY,MAAM,KACNlB,QAAO,SAAAQ,GAAA,OAASA,EAAMU,MAAM,KAAK,IAAMV,EAAMU,MAAM,KAAK,MACxDC,KAAI,SAAAX,GAAA,MAAS,CACVA,EAAMU,MAAM,KAAK,GAAGD,OAAOiB,QAAQ,OAAO,SAAAzG,GAAA,OAAKA,EAAE6vC,OAAO,GAAGjpC,iBAC3D7B,EAAMU,MAAM,KAAK,GAAGD,WAEvBsqC,QAAO,SAACC,EAAUhrC,GAAX,YACDgrC,EADC,KAEHhrC,EAAM,GAAKA,EAAM,OAClB,QA1cyD,GAqBlD3B,GAs0CvByP,EAAkB,cAAe,CAC7BhN,MAAO5C,EAAG,uBAAwB,sBAClCkT,YAAalT,EAAG,8CAA+C,sBAC/DqC,KAAM,CACF8Q,IAAK4yB,EACL3yB,WAAmC,oBAAhBjR,YAA8BA,YAAY+P,WAAQhD,GAEzEmE,SAAU,iBACVC,SAAU,CAACtT,EAAG,QAAS,sBAAuBA,EAAI,iBAAkB,sBAAwBA,EAAG,OAAQ,sBAAuBA,EAAG,OAAQ,uBACzI0E,WAAY,CACRmmC,KAAM,CACFllC,KAAM,QACNsN,QAAS,GACT+H,OAAQ,QACRL,SAAU,WACVoyB,MAAO,CACHjG,MAAO,CACHnhC,KAAM,QACNsN,QAAS,GACT+H,OAAQ,QACRL,SAAU,SACVoyB,MAAO,CACH5yB,QAAS,CACLa,OAAQ,QAEZH,OAAQ,CACJlV,KAAM,SACNqV,OAAQ,YACRrW,UAAW,SAEfshB,QAAS,CACLtgB,KAAM,SACNqV,OAAQ,YACRrW,UAAW,WAEf+kC,iBAAkB,CACd/jC,KAAM,SACNqV,OAAQ,YACRrW,UAAW,yBAM/BkiC,KAAM,CACFlhC,KAAM,QACNsN,QAAS,GACT+H,OAAQ,QACRL,SAAU,WACVoyB,MAAO,CACHjG,MAAO,CACHnhC,KAAM,QACNsN,QAAS,GACT+H,OAAQ,QACRL,SAAU,KACVoyB,MAAO,CACH5yB,QAAS,CACLa,OAAQ,QAEZH,OAAQ,CACJlV,KAAM,SACNqV,OAAQ,YACRrW,UAAW,SAEfshB,QAAS,CACLtgB,KAAM,SACNqV,OAAQ,YACRrW,UAAW,WAEfglB,QAAS,CACLhkB,KAAM,SACNqV,OAAQ,YACRrW,UAAW,WAEf+kC,iBAAkB,CACd/jC,KAAM,SACNqV,OAAQ,YACRrW,UAAW,yBAM/BmmC,KAAM,CACFnlC,KAAM,QACNsN,QAAS,GACT+H,OAAQ,QACRL,SAAU,WACVoyB,MAAO,CACHjG,MAAO,CACHnhC,KAAM,QACNsN,QAAS,GACT+H,OAAQ,QACRL,SAAU,SACVoyB,MAAO,CACH5yB,QAAS,CACLa,OAAQ,QAEZH,OAAQ,CACJlV,KAAM,SACNqV,OAAQ,YACRrW,UAAW,SAEfshB,QAAS,CACLtgB,KAAM,SACNqV,OAAQ,YACRrW,UAAW,WAEf+kC,iBAAkB,CACd/jC,KAAM,SACNqV,OAAQ,YACRrW,UAAW,yBAM/BomC,SAAU,CACNplC,KAAM,SACNsN,QAAS,GAEbg4B,eAAgB,CACZtlC,KAAM,UACNsN,SAAS,GAEb+3B,eAAgB,CACZrlC,KAAM,UACNsN,SAAS,GAEb5B,QAAS,CACL1L,KAAM,UACNsN,SAAS,GAEbqD,UAAW,CACP3Q,KAAM,UACNsN,SAAS,IAGjB6D,QAAS,CACLpS,WAAY,CACR4R,WAAW,IAGnB/C,SAAU,CACN2E,OAAO,EACP/C,QAAQ,GAEZ0F,OAAQ,CACJ,CAAC5d,KAAM,UAAWoC,MAAOW,EAAG,UAAW,sBAAuB8a,WAAW,GACzE,CAAC7d,KAAM,UAAWoC,MAAOW,EAAG,UAAW,wBAE3CyT,KAAMyyB,EACNxyB,KAAM,YAAwB,IAAbhP,EAAa,EAAbA,WACNmmC,EAA8DnmC,EAA9DmmC,KAAYC,GAAkDpmC,EAAxDmiC,KAAwDniC,EAAlDomC,MAAMC,EAA4CrmC,EAA5CqmC,SAAUC,EAAkCtmC,EAAlCsmC,eAAgBC,EAAkBvmC,EAAlBumC,eAC7CC,EAAgBH,QAAsB77B,EAE5C,SAASy9B,EAAc3F,GACnB,IAAIgG,EAA6B,SAAZhG,EAAqB,KAAO,KACjD,OAAOtiC,EAAWsiC,GAASvkC,KAAI,WAAUglC,GAAV,IAAEX,EAAF,EAAEA,MAAF,OAC3B,0BAAI7oC,IAAKwpC,GACJX,EAAMrkC,KAAI,WAAwD6mC,GAAxD,IAAEnvB,EAAF,EAAEA,QAASU,EAAX,EAAWA,OAAQoL,EAAnB,EAAmBA,QAAS0D,EAA5B,EAA4BA,QAAS+f,EAArC,EAAqCA,iBAArC,OACP,oBAAC35B,EAAS6D,QAAV,CACIxP,QAAS4oC,EACTrvC,MAAOwc,EACPlc,IAAKqrC,EACLxnC,MAAO+Y,EACPoL,QAASA,EACT0D,QAASA,EACTsjB,oBAAmBvD,WAOvC,OACI,6BAAOnqC,UAAU,uBACVuC,MAAO,CACHipC,SAAUG,EACVuB,eAAgBzB,EAAiB,gBAAa97B,EAC9Cw9B,YAAazB,EAAiB,aAAU/7B,MAG5C27B,EAAK3mC,QACJ,iCAAQyoC,EAAc,SAE1B,iCAAQA,EAAc,WACnB7B,EAAK5mC,QACJ,iCAAQyoC,EAAc,WAKtC74B,WAAY,CACR8G,KAAM,CACF,CACIjV,KAAM,QACNqO,OAAQ,CAAC,cACTC,UAAW,SAACvP,GACR,OAAOmL,EAAY,cAAe,CAC9Bg3B,KAAMniC,EAAWmiC,WAMrChzB,WAAY,CACR,CACInP,WAAY,CACRmmC,KAAM,CACFllC,KAAM,QACNsN,QAAS,GACT+H,OAAQ,QACRL,SAAU,WACVoyB,MAAO,CACHjG,MAAO,CACHnhC,KAAM,QACNsN,QAAS,GACT+H,OAAQ,QACRL,SAAU,SACVoyB,MAAO,CACH5yB,QAAS,CACLa,OAAQ,QAEZH,OAAQ,CACJlV,KAAM,SACNqV,OAAQ,YACRrW,UAAW,SAEfshB,QAAS,CACLtgB,KAAM,SACNqV,OAAQ,YACRrW,UAAW,WAEf+kC,iBAAkB,CACd/jC,KAAM,SACNqV,OAAQ,YACRrW,UAAW,yBAM/BkiC,KAAM,CACFlhC,KAAM,QACNsN,QAAS,GACT+H,OAAQ,QACRL,SAAU,WACVoyB,MAAO,CACHjG,MAAO,CACHnhC,KAAM,QACNsN,QAAS,GACT+H,OAAQ,QACRL,SAAU,KACVoyB,MAAO,CACH5yB,QAAS,CACLa,OAAQ,QAEZH,OAAQ,CACJlV,KAAM,SACNqV,OAAQ,YACRrW,UAAW,SAEfshB,QAAS,CACLtgB,KAAM,SACNqV,OAAQ,YACRrW,UAAW,WAEfglB,QAAS,CACLhkB,KAAM,SACNqV,OAAQ,YACRrW,UAAW,WAEf+kC,iBAAkB,CACd/jC,KAAM,SACNqV,OAAQ,YACRrW,UAAW,yBAM/BmmC,KAAM,CACFnlC,KAAM,QACNsN,QAAS,GACT+H,OAAQ,QACRL,SAAU,WACVoyB,MAAO,CACHjG,MAAO,CACHnhC,KAAM,QACNsN,QAAS,GACT+H,OAAQ,QACRL,SAAU,SACVoyB,MAAO,CACH5yB,QAAS,CACLa,OAAQ,QAEZH,OAAQ,CACJlV,KAAM,SACNqV,OAAQ,YACRrW,UAAW,SAEfshB,QAAS,CACLtgB,KAAM,SACNqV,OAAQ,YACRrW,UAAW,WAEf+kC,iBAAkB,CACd/jC,KAAM,SACNqV,OAAQ,YACRrW,UAAW,yBAM/BomC,SAAU,CACNplC,KAAM,SACNsN,QAAS,GAEbg4B,eAAgB,CACZtlC,KAAM,UACNsN,SAAS,GAEb+3B,eAAgB,CACZrlC,KAAM,UACNsN,SAAS,GAEb5B,QAAS,CACL1L,KAAM,UACNsN,SAAS,GAEbqD,UAAW,CACP3Q,KAAM,UACNsN,SAAS,IAGjBS,KAAM,YAAwB,IAAbhP,EAAa,EAAbA,WACNmmC,EAA8DnmC,EAA9DmmC,KAAYC,GAAkDpmC,EAAxDmiC,KAAwDniC,EAAlDomC,MAAMC,EAA4CrmC,EAA5CqmC,SAAUC,EAAkCtmC,EAAlCsmC,eAAgBC,EAAkBvmC,EAAlBumC,eAC7CC,EAAgBH,QAAsB77B,EAE5C,SAASy9B,EAAc3F,GACnB,OAAOtiC,EAAWsiC,GAASvkC,KAAI,WAAUglC,GAAV,IAAEX,EAAF,EAAEA,MAAF,OAC3B,0BAAI7oC,IAAKwpC,GACJX,EAAMrkC,KAAI,WAAwD6mC,GAAxD,IAAEnvB,EAAF,EAAEA,QAASU,EAAX,EAAWA,OAAQoL,EAAnB,EAAmBA,QAAS0D,EAA5B,EAA4BA,QAAS+f,EAArC,EAAqCA,iBAArC,OACP,oBAAC35B,EAAS6D,QAAV,CACIxP,QAAQ,KACRzG,MAAOwc,EACPlc,IAAKqrC,EACLxnC,MAAO+Y,EACPoL,QAASA,EACT0D,QAASA,EACTsjB,oBAAmBvD,WAOvC,OACI,6BAAOnqC,UAAU,uBACVuC,MAAO,CACHipC,SAAUG,EACVuB,eAAgBzB,EAAiB,gBAAa97B,EAC9Cw9B,YAAazB,EAAiB,aAAU/7B,MAG5C27B,EAAK3mC,QACJ,iCAAQyoC,EAAc,SAE1B,iCAAQA,EAAc,WACnB7B,EAAK5mC,QACJ,iCAAQyoC,EAAc,eA/sDtD,CAutDG/tC,GAAGqB,KAAMrB,GAAGoV,OAAQpV,GAAGsB,QAAStB,GAAGK,YAAaL,GAAGC,WAAY6H,S,ggCCvtDlE,SAAY6I,EAAQC,EAAUC,EAAWC,EAAeC,EAAc0E,EAAW3N,GAC7EgJ,EAAgB9Q,GAAGK,aAAeL,GAAGM,OADiD,IAE9Ec,EAAOuP,EAAPvP,GACAG,EAAwBsP,EAAxBtP,UAAWC,EAAaqP,EAAbrP,SACXwP,EAA+CJ,EAA/CI,kBAAmBC,EAA4BL,EAA5BK,YAAaq9B,EAAe19B,EAAf09B,WAJ8C,EAKbx9B,EAAjEI,EAL8E,EAK9EA,kBAAmBC,EAL2D,EAK3DA,SAAUC,EALiD,EAKjDA,mBAAoBC,EAL6B,EAK7BA,YACjDiQ,EAAmFvQ,EAAnFuQ,SAAU/V,EAAyEwF,EAAzExF,QAAS+F,EAAgEP,EAAhEO,UAAW1J,EAAqDmJ,EAArDnJ,aAAcnG,EAAuCsP,EAAvCtP,cAAe4J,EAAwB0F,EAAxB1F,OAAQ3J,EAAgBqP,EAAhBrP,YANW,EAO/B1B,GAAGkH,KAAlDwO,EAP8E,EAO9EA,aAAc64B,EAPgE,EAOhEA,WAAY54B,EAPoD,EAOpDA,OAAQa,EAP4C,EAO5CA,SAClCZ,EAAYH,EAAZG,QACAC,EAAU/N,EAAV+N,MAEF24B,EACF,oBAAChtC,EAAD,KACI,4BAAMkQ,KAAK,eAAetT,EAAE,0CAC5B,4BAAMsT,KAAK,OAAOylB,OAAO,eAAeK,iBAAiB,KAAKE,YAAY,OACpEt5B,EAAE,2TACR,4BAAMsT,KAAK,eACLtT,EAAE,qOACR,4BAAMsT,KAAK,eACLtT,EAAE,2OAIVqwC,EACF,2BAAKn7B,MAAM,UAAUG,MAAM,6BAA6BC,MAAM,KAAKC,OAAO,KAAKC,QAAQ,cAAc1Q,MAAO,CAAC6Q,gBAAiB,SACzHy6B,GAIHE,EACF,2BAAKp7B,MAAM,UAAUG,MAAM,6BAA6BC,MAAM,KAAKC,OAAO,KAAKC,QAAQ,cAAc1Q,MAAO,CAAC6Q,gBAAiB,QAASsB,UAAU,4BAC5Im5B,GAIHG,EAAc,CAChB,CAACtwC,KAAM,OAAQoC,MAAOW,EAAG,aAAc,sBAAuBqC,KAAMgrC,GACpE,CAACpwC,KAAM,OAAQoC,MAAOW,EAAG,WAAY,sBAAuBqC,KAAMirC,IAQhEE,EAAqB,GAErBC,EA/CgF,YAgDlF,aAAc,0EACAz8B,YADA,OAEV,EAAKxQ,MAAQ,CACTktC,SAAU,WAHJ,EAhDoE,O,yTAAA,sDAuD7D,MACqBhtC,KAAK/B,MAAnC+F,EADS,EACTA,WAAYwM,EADH,EACGA,cACdC,EAAqBC,mBAAmB,mBAEnB,IAAvB1M,EAAW2M,UACuB,iBAA9B,IAAOF,EAAP,cAAOA,KAA0D,OAAvBA,GAC1C/T,OAAO8E,KAAKiP,GAAoB1O,KAAI,SAACkC,GACI,kBAA1BD,EAAWC,GAClBD,EAAWC,KAAewM,EAAmBxM,GAE7CD,EAAWC,GAAawM,EAAmBxM,MAMvDuM,EAAe,CAAEG,SAAS,OAvEgD,yCA2E9D9D,GAAY,MACuB7M,KAAK/B,MAAhD+F,EADoB,EACpBA,WAAYwM,EADQ,EACRA,cAAegD,EADP,EACOA,YAWnC,GAVwBxP,EAAhBipC,cAGJz8B,EAAe,CACXy8B,aAAa,IAEjBjtC,KAAK/B,MAAMivC,gBAAiB,IAI1BrgC,EAAU2G,YAAYhQ,QAErB,GAA8B,MAA1B/B,YAAYyV,UAAoB,CAGvC,IAAMi2B,EAAM35B,EAAYzR,KAAK,SAAEmM,GAAF,OAAYA,EAAKlK,WAAW4C,MACrCumC,EAAIC,OAAO,SAAE7R,EAAKv/B,GAAP,OAAoB,IAANA,GAAWu/B,EAAM,IAAM4R,EAAInxC,EAAI,OAGxEgE,KAAKqtC,aAAc75B,SARvBxT,KAAKqtC,aAAc75B,KAxFuD,0CAwGvExT,KAAK/B,MAAM+F,WAAWspC,SAKjBR,EAAmBrsC,SAAUT,KAAK/B,MAAM+F,WAAWspC,WAC3DttC,KAAK/B,MAAMuS,cAAe,CACtB88B,SAAU,IAAMttC,KAAK/B,MAAMgW,SAASi4B,OAAQ,EAAG,KAEnDY,EAAmBxnC,KAAM,IAAMtF,KAAK/B,MAAMgW,SAASi4B,OAAQ,EAAG,KAE9DY,EAAmBxnC,KAAMtF,KAAK/B,MAAM+F,WAAWspC,WAV/CttC,KAAK/B,MAAMuS,cAAe,CACtB88B,SAAU,IAAMttC,KAAK/B,MAAMgW,SAASi4B,OAAQ,EAAG,KAEnDY,EAAmBxnC,KAAM,IAAMtF,KAAK/B,MAAMgW,SAASi4B,OAAQ,EAAG,KASlElsC,KAAK/B,MAAMuS,cAAe,CACtB+8B,kBAAmBvtC,KAAK/B,MAAMgW,WAElCjU,KAAKwtC,mBACLxtC,KAAKytC,mBACLztC,KAAK/B,MAAMyvC,eA1HmE,mCAwIpEl6B,GAAc,IAChBoB,EAA0BF,EAAU,qBAApCE,sBAERb,EAAOP,EAAYhQ,QAAQ,SAAA/F,GACvBmX,EAAuBpB,EAAa/V,GAAIwW,SAAU,CAC9CrN,GAAInJ,SA7IkE,qCAkJlEsX,GAAQ,MACgB/U,KAAK/B,MAAjCuS,EADY,EACZA,cAAeyD,EADH,EACGA,SACfW,GAA2B1W,GAAGK,YAA0CmW,EAAU,qBAAtCA,EAAU,gBAAtDE,sBAEFa,GAAcD,GADOtX,GAAGK,YAAwCsV,EAAQ,qBAAlCA,EAAQ,gBAA5C2B,eAC0BvB,GAElCzD,EAAeuE,GACfU,EAAYC,SAAS,SAAAC,GAAA,OAAgBf,EAAuBe,EAAcZ,MAC1E/U,KAAK/B,MAAMyvC,eA1JmE,uCA6JjE98B,EAAQ5O,GAAO,MACoBhC,KAAK/B,MAA7C+F,EADoB,EACpBA,WAAYwM,EADQ,EACRA,cAAeyD,EADP,EACOA,SAC3B05B,EAAe3pC,EAAf2pC,WACA/4B,GAA2B1W,GAAGK,YAA0CmW,EAAU,qBAAtCA,EAAU,gBAAtDE,sBAEFa,GAAcD,GADOtX,GAAGK,YAAwCsV,EAAQ,qBAAlCA,EAAQ,gBAA5C2B,eAC0BvB,GASlCzD,EAAe,CAAEm9B,WAPAA,EAAW5rC,KAAK,SAAEmM,EAAMiN,GAIrC,OAHKnZ,IAAUmZ,IACXjN,EAAO0C,GAEJ1C,OAIX0G,EAAsBa,EAAYzT,GAAQ,CAAC4O,OAAQA,IACnD5Q,KAAKwtC,qBA7KyE,yCAgL/D,MACkBxtC,KAAK/B,MAA9B+F,EADO,EACPA,WAAYiQ,EADL,EACKA,SACZ05B,EAAe3pC,EAAf2pC,WACA/4B,GAA2B1W,GAAGK,YAA0CmW,EAAU,qBAAtCA,EAAU,gBAAtDE,uBAEYY,GADOtX,GAAGK,YAAwCsV,EAAQ,qBAAlCA,EAAQ,gBAA5C2B,eAC0BvB,GAEtByB,SAAS,SAAAC,GAAA,OAAgBf,EAAuBe,EAAc,CAACg4B,WAAYA,SAvLT,uCA0LjEl5B,EAAQzS,GAAO,MACoBhC,KAAK/B,MAA7C+F,EADoB,EACpBA,WAAYwM,EADQ,EACRA,cAAeyD,EADP,EACOA,SAC3B25B,EAAe5pC,EAAf4pC,WACAh5B,GAA2B1W,GAAGK,YAA0CmW,EAAU,qBAAtCA,EAAU,gBAAtDE,sBAEFa,GAAcD,GADOtX,GAAGK,YAAwCsV,EAAQ,qBAAlCA,EAAQ,gBAA5C2B,eAC0BvB,GASlCzD,EAAe,CAAEo9B,WAPAA,EAAW7rC,KAAK,SAAEmM,EAAMiN,GAIrC,OAHKnZ,IAAUmZ,IACXjN,EAAOuG,GAEJvG,OAIX0G,EAAsBa,EAAYzT,GAAQ,CAACyS,OAAQA,IACnDzU,KAAKytC,qBA1MyE,yCA6M/D,MACkBztC,KAAK/B,MAA9B+F,EADO,EACPA,WAAYiQ,EADL,EACKA,SACZ25B,EAAe5pC,EAAf4pC,WACAh5B,GAA2B1W,GAAGK,YAA0CmW,EAAU,qBAAtCA,EAAU,gBAAtDE,uBAEYY,GADOtX,GAAGK,YAAwCsV,EAAQ,qBAAlCA,EAAQ,gBAA5C2B,eAC0BvB,GAEtByB,SAAS,SAAAC,GAAA,OAAgBf,EAAuBe,EAAc,CAACi4B,WAAYA,SApNT,mCAuNrE5rC,GAAO,MACgChC,KAAK/B,MAA7C+F,EADQ,EACRA,WAAYwM,EADJ,EACIA,cAAeyD,EADnB,EACmBA,SAC3B+L,GAAiB9hB,GAAGK,YAA0CmW,EAAU,qBAAtCA,EAAU,gBAA5CsL,YAFQ,EAGqB9hB,GAAGK,YAAwCsV,EAAQ,qBAAlCA,EAAQ,eAAtD2B,EAHQ,EAGRA,cAEFq4B,GAAWx3B,EALD,EAGOA,UACHb,EAAcvB,GACIjS,IAGtCge,EAFkBwsB,EAAWqB,GAEN7pC,EAAW2pC,WAAWnqC,OAAQyQ,GACrDzD,EAAe,CACXm9B,uBACO3pC,EAAW2pC,YADlB,CAEO3pC,EAAW2pC,WAAW3rC,GAF7B,KAEwC1C,EAAG,OAAQ,sBAFnD,MAIAsuC,uBACO5pC,EAAW4pC,YADlB,CAEI,OAGR5tC,KAAK/B,MAAMyvC,eA1OmE,+BA6OzE,MAC2C1tC,KAAK/B,MAA7C+F,EADH,EACGA,WAAYwM,EADf,EACeA,cAAeyD,EAD9B,EAC8BA,UAInC+L,GAHyB9hB,GAAGK,YAA0CmW,EAAU,qBAAtCA,EAAU,gBAA5CsL,aACa7Q,EAAY,aAEPnL,EAAW2pC,WAAWnqC,OAAQyQ,GACxDzD,EAAe,CACXm9B,uBACO3pC,EAAW2pC,YADlB,CAEIruC,EAAI,aAAc,wBAEtBsuC,uBACO5pC,EAAW4pC,YADlB,CAEI,OAGR5tC,KAAK/B,MAAMyvC,eA7PmE,gCAgQxE1rC,GAAO,MACmChC,KAAK/B,MAA7C+F,EADK,EACLA,WAAYwM,EADP,EACOA,cAAeyD,EADtB,EACsBA,UAKnCsB,GAJyBrX,GAAGK,YAA0CmW,EAAU,qBAAtCA,EAAU,gBAA5Ca,cAEYC,GADOtX,GAAGK,YAAwCsV,EAAQ,qBAAlCA,EAAQ,gBAA5C2B,eAC0BvB,GAEVjS,IAAQ,GAChCwO,EAAe,CACXm9B,WAAY3pC,EAAW2pC,WAAW/sC,QAAQ,SAACktC,EAAI3yB,GAAL,OAAaA,IAAQnZ,KAC/D4rC,WAAY5pC,EAAW4pC,WAAWhtC,QAAQ,SAACktC,EAAI3yB,GAAL,OAAaA,IAAQnZ,OAEnEhC,KAAK+tC,eAAe,CAACC,UAAW,IAChChuC,KAAK/B,MAAMyvC,eA5QmE,8BA+Q1E1rC,EAAO6rB,GAAW,IACd7pB,EAAehE,KAAK/B,MAApB+F,WACF2iB,EAAU3iB,EAAW2pC,WACrB/8B,EAAS+V,EAAQ6gB,OAAQxlC,EAAO,GAChCisC,EAAUjqC,EAAW4pC,WACrBn5B,EAASw5B,EAAQzG,OAAQxlC,EAAO,GAEtC,OAAO6rB,GACH,IAAK,OACD,GAAa,IAAV7rB,EACC,OAEJhC,KAAKkuC,OAAOlsC,EAAOA,EAAQ,EAAG2kB,EAAS/V,EAAQq9B,EAASx5B,GAC5D,MACA,IAAK,UACD,GAAGzS,IAAU2kB,EAAQnjB,OACjB,OAEJxD,KAAKkuC,OAAOlsC,EAAOA,EAAQ,EAAG2kB,EAAS/V,EAAQq9B,EAASx5B,MAjSc,6BAsS3EzS,EAAOmsC,EAAUxnB,EAAS/V,EAAQq9B,EAASx5B,GAAO,MACLzU,KAAK/B,MAA7C+F,EAD6C,EAC7CA,WAA2BiQ,GADkB,EACjCzD,cADiC,EAClByD,UAC3Bm6B,GAAyBlwC,GAAGK,YAA0CmW,EAAU,qBAAtCA,EAAU,gBAApD05B,oBAEF34B,GAAcD,GADOtX,GAAGK,YAAwCsV,EAAQ,qBAAlCA,EAAQ,gBAA5C2B,eAC0BvB,GAElC0S,EAAQ6gB,OAAQ2G,EAAU,EAAGv9B,EAAO,IACpC5Q,KAAKquC,iBAAiBrqC,EAAW2pC,WAAW3rC,GAAQmsC,GACpDnuC,KAAKquC,iBAAiBrqC,EAAW2pC,WAAWQ,GAAWA,GACvDF,EAAQzG,OAAQ2G,EAAU,EAAG15B,EAAO,IAEpC25B,EACI34B,EAAYzT,GACZiS,EACAA,EACAk6B,GAGJnuC,KAAKwtC,mBACLxtC,KAAKytC,mBACLztC,KAAK/B,MAAMyvC,aACX1tC,KAAK/B,MAAMivC,gBAAiBiB,KA3TkD,uCA8TjEzkC,GACb,OAAOA,GACH,IAAK,UACD,OAAOpK,EAAG,UAAW,sBAEzB,IAAK,SACD,OAAOA,EAAG,SAAU,sBAExB,IAAK,SACD,OAAOA,EAAG,SAAU,yBAvUkD,+BA4UzE,aAC2CU,KAAK/B,MAA7C+F,EADH,EACGA,WAAYwM,EADf,EACeA,cAAeyD,EAD9B,EAC8BA,SAC3B+4B,EAAahtC,KAAKF,MAAlBktC,SAEJW,EAmBA3pC,EAnBA2pC,WACAC,EAkBA5pC,EAlBA4pC,WACAI,EAiBAhqC,EAjBAgqC,UACAM,EAgBAtqC,EAhBAsqC,kBACAC,EAeAvqC,EAfAuqC,WACAC,EAcAxqC,EAdAwqC,WACAC,EAaAzqC,EAbAyqC,WACA59B,EAYA7M,EAZA6M,cACAC,EAWA9M,EAXA8M,gBACAG,EAUAjN,EAVAiN,YACAC,EASAlN,EATAkN,cACAC,EAQAnN,EARAmN,YACAC,EAOApN,EAPAoN,YACAC,EAMArN,EANAqN,YACAC,EAKAtN,EALAsN,aACAi8B,EAIAvpC,EAJAupC,IACAmB,EAGA1qC,EAHA0qC,iBACAC,EAEA3qC,EAFA2qC,mBACA/4B,EACA5R,EADA4R,UAEE6F,EAAa,CAAC,qBAAD,aAEF8yB,EAFE,wBAGFC,EAHE,uBAIFC,EAJE,WAKjB7tC,OAAQC,SAAUC,KAAM,KAEtB8tC,EAAe,IAInB,MAHiB,WAAb5B,IAAuB4B,EAAe,KACzB,WAAb5B,IAAuB4B,EAAe,KAGtCh5B,EACI,2BAAKE,IAAKxW,EAAG,gBAAiB,sBAAuBsS,MAAM,OAAOa,IAzUzD,+hHA2Ub,oBAAC/S,EAAD,KACI,oBAAC0P,EAAD,KACI,oBAACI,EAAD,CAAWtN,MAAQ5C,EAAI,aAAc,uBACjC,2BAAKT,UAAU,kCACV,CAAC,UAAW,SAAU,UAAUkD,KAAK,SAAC8sC,EAAQ7sC,GAC3C,IAAM8sC,EAAc,CAChB,gCACA9B,IAAa6B,GAAU,eACzBjuC,OAAQC,SAAUC,KAAM,KAE1B,OACI,2BAAKjC,UAAYiwC,EACZvxC,IAAMyE,EACNf,QAAU,kBAAM,EAAKhB,SAAU,CAAE+sC,SAAU6B,MAE3C,EAAKE,iBAAiBF,QAKvC,2BAAKhwC,UAAU,qBACVguC,EAAY9qC,KAAK,SAACX,EAAOY,GAAR,OACd,oBAACyH,EAAD,CAASlM,IAAKyE,EAAO0H,KAAMtI,EAAMzC,OAC7B,oBAAC4K,EAAD,CAAQ1K,UAAY,oBAAsBuC,EAAM7E,OAASyH,EAAWA,YAAY4qC,GAAkB,qBAAuB,IACjHI,UAAY5tC,EAAM7E,OAASyH,EAAWA,YAAY4qC,GAClD3tC,QAAU,kBAAMuP,G,EAAAA,G,EAAAA,YAA8Bo+B,E,EAAiBxtC,EAAM7E,K,6GAExE6E,EAAMO,UAIL,WAAbqrC,GACG,oBAACvjC,EAAD,CAASC,KAAOpK,EAAI,UAAW,uBAC3B,oBAACiK,EAAD,CAAQ1K,UAAY,oBAAqC,UAAf4vC,EAAyB,qBAAuB,IAClFO,UAA2B,UAAfP,EACZxtC,QAAU,kBAAMuP,EAAe,CAAEi+B,WAAY,YAEjD,2BAAKj9B,MAAM,UAAUI,MAAM,OAAOC,OAAO,OAAOC,QAAQ,YAAYH,MAAM,6BAA6BvQ,MAAO,CAAC6Q,gBAAiB,SAC5H,4BAAMrC,KAAK,eAAetT,EAAE,2PAC5B,4BAAMsT,KAAK,eAAetT,EAAE,wNAC5B,4BAAMsT,KAAK,eAAetT,EAAE,uNAOpD,oBAACkT,EAAD,CAAWtN,MAAQ5C,EAAI,gBAAiB,uBACpC,oBAACK,EAAD,CACIhB,MAAQW,EAAI,mBAAoB,sBAChCrC,MAAQqxC,EACRntC,QAAUwsC,EAAW5rC,KAAI,SAACktC,EAAKjtC,GAC3B,MAAO,CAAC/E,MAAO+E,EAAOrD,MAAOswC,MAEjCrwC,SAAW,SAAC3B,GAAD,OAAWuT,EAAe,CAAE89B,kBAAmBnmC,SAASlL,SAG3E,oBAACqS,EAAD,CACIpN,MAAQ5C,EAAI,aAAc,sBAC1ByS,aAAc,EACdC,cAAgB,CACZ,CACIrT,MAAOW,EAAI,mBAAoB,sBAC/BrC,MAAO4T,EACPjS,SAAU,SAAE3B,GAAF,OAAauT,EAAe,CAAEK,mBAAyBrC,IAAVvR,EAAsB,UAAYA,MAE7F,CACI0B,MAAOW,EAAI,aAAc,sBACzBrC,MAAO6T,EACPlS,SAAU,SAAE3B,GAAF,OAAauT,EAAe,CAAEM,qBAA2BtC,IAAVvR,EAAsB,OAASA,MAE5F,CACI0B,MAAOW,EAAI,8BAA+B,sBAC1CrC,MAAOyxC,EACP9vC,SAAU,SAAE3B,GAAF,OAAauT,EAAe,CAAEk+B,iBAAkBzxC,MAE9D,CACI0B,MAAOW,EAAI,wBAAyB,sBACpCrC,MAAO0xC,EACP/vC,SAAU,SAAE3B,GAAF,OAAauT,EAAe,CAAEm+B,mBAAoB1xC,SAIxE,oBAACqS,EAAD,CACIpN,MAAQ5C,EAAI,cAAe,sBAC3ByS,aAAc,EACdC,cAAgB,CACZ,CACIrT,MAAOW,EAAI,mBAAoB,sBAC/BrC,MAAOgU,EACPrS,SAAU,SAAE3B,GAAF,OAAauT,EAAe,CAAES,YAAahU,MAEzD,CACI0B,MAAOW,EAAI,aAAc,sBACzBrC,MAAOiU,EACPtS,SAAU,SAAE3B,GAAF,OAAauT,EAAe,CAAEU,cAAejU,SAInE,oBAACuS,EAAD,CAAWtN,MAAQ5C,EAAI,kBAAmB,sBAAyByS,aAAc,GAC7E,oBAACpS,EAAD,CACIhB,MAAQW,EAAI,eAAgB,sBAC5BrC,MAAQkU,EACRhQ,QAAU,CACN,CAAExC,MAAOW,EAAI,OAAQ,sBAAwBrC,MAAO,QACpD,CAAE0B,MAAOW,EAAI,QAAS,sBAAwBrC,MAAO,SACrD,CAAE0B,MAAOW,EAAI,SAAU,sBAAwBrC,MAAO,UACtD,CAAE0B,MAAOW,EAAI,SAAU,sBAAwBrC,MAAO,WAE1D2B,SAAW,SAAE3B,GAAF,OAAauT,EAAe,CAAEW,YAAalU,OAE1D,oBAACqS,EAAD,CACIpN,MAAQ5C,EAAI,eAAgB,sBAC5ByS,aAAc,EACdC,cAAgB,CACZ,CACIrT,MAAOW,EAAI,eAAgB,sBAC3BrC,MAAOoU,EACPzS,SAAU,SAAE3B,GAAF,OAAauT,EAAe,CAAEa,YAAapU,SAIjE,oBAAC6I,EAAD,CACInH,MAAQW,EAAI,eAAgB,sBAC5BrC,MAAQmU,EACR9I,IAAM,EACNC,IAAM,GACN3J,SAAW,SAAE3B,GAAF,OAAauT,EAAe,CAAEY,YAAanU,OAE1D,oBAAC6I,EAAD,CACInH,MAAQW,EAAI,gBAAiB,sBAC7BrC,MAAQqU,EACRhJ,IAAM,EACNC,IAAM,IACN3J,SAAW,SAAE3B,GAAF,OAAauT,EAAe,CAAEc,aAAcrU,SAInE,2BAAK4B,UAAW4c,EAAYra,MAAQ,CAAE8tC,OAAQ,SAC1C,0BAAIrwC,UAAU,oBACT8uC,EAAW5rC,KAAK,SAAEmM,EAAMlM,GAAR,OACb,0BAAIzE,IAAMyE,EACNnD,UAAA,cAAwBmvC,IAAchsC,EAAQ,mBAAqB,IACnEZ,MAAQ,CACJ6Q,gBAAiBpB,EACjBM,YAAaA,EACbC,YAAaA,EAAc,KAC3BC,YAAaA,EACbC,aAAcA,EAAe,OAGjC,yBAAG1K,GAAIgnC,EAAW5rC,GAAQZ,MAAQ,CAAEoQ,MAAOV,GACxC7P,QAAU,WACN,EAAKhD,MAAMivC,gBAAiBlrC,KAG/B,oBAACqN,EAAD,CACI3L,QAAQ,IACRzG,MAAQiR,EACRtP,SAAW,SAAE3B,GAAF,OAAa,EAAKoxC,iBAAiBpxC,EAAO+E,IACrDkQ,gBAAkB,kBAAM,MACxBhR,YAAc5B,EAAI,SAAU,yBAGR,MAA1BmC,YAAYyV,WACV,oBAACxX,EAAD,KACI,oBAACE,EAAD,CACIsB,YAAc5B,EAAI,cAAe,sBACjCrC,MAAQ2wC,EAAW5rC,GACnBpD,SAAW,SAAE3B,GAAF,OAAa,EAAKkyC,iBAAiBlyC,EAAO+E,IACrDnD,UAAU,8BACVuC,MAAQ,CAAEkY,QAAS00B,IAAchsC,EAAQ,QAAU,UAErDA,EAAQ,GACN,oBAACyH,EAAD,CAASC,KAAOpK,EAAI,YAAa,uBAC7B,4BAAMT,UAAU,sBACVoC,QAAU,kBAAM,EAAKmuC,QAAQptC,EAAM,SACnCZ,MAAQ,CAAEkY,QAAS00B,IAAchsC,EAAQ,QAAU,SAErD,oBAACwd,EAAD,CAAU7d,KAAK,sBAIzBK,EAAQ2rC,EAAWnqC,OAAS,GAC1B,oBAACiG,EAAD,CAASC,KAAOpK,EAAI,eAAgB,uBAChC,4BAAMT,UAAU,yBACVoC,QAAU,kBAAM,EAAKmuC,QAAQptC,EAAM,YACnCZ,MAAQ,CAAEkY,QAAS00B,IAAchsC,EAAQ,QAAU,SAErD,oBAACwd,EAAD,CAAU7d,KAAK,uBAI3B,oBAAC8H,EAAD,CAASC,KAAOpK,EAAI,gBAAiB,uBACjC,4BAAMT,UAAU,sBACVoC,QAAU,kBAAM,EAAKouC,aAAartC,IAClCZ,MAAQ,CAAEkY,QAAS00B,IAAchsC,EAAQ,QAAU,SAErD,oBAACwd,EAAD,CAAU7d,KAAK,kBAK9BgsC,EAAWnqC,OAAS,GACjB,oBAACiG,EAAD,CAASC,KAAOpK,EAAI,aAAc,uBAC9B,4BAAMT,UAAU,mBACVoC,QAAU,kBAAM,EAAKquC,UAAUttC,IAC/BZ,MAAQ,CAAEkY,QAAS00B,IAAchsC,EAAQ,QAAU,SAErD,oBAACwd,EAAD,CAAU7d,KAAK,aAMnC,0BAAI9C,UAAU,0BACVuC,MAAQ,CACJkQ,aAAcA,EAAe,KAC7BF,YAAaA,EAAc,OAG/B,oBAAC3H,EAAD,CAASC,KAAOpK,EAAI,UAAW,uBAC3B,4BAAM2B,QAAU,kBAAM,EAAKsuC,WACvB,oBAAC/vB,EAAD,CAAU7d,KAAK,aAK/B,2BAAK9C,UAAU,yBACVuC,MAAQ,CACJ6Q,gBAAiBhB,EACjBO,MAAON,EACPC,YAAaA,EACbC,YAAaA,EAAc,KAC3BC,YAAaA,EACbC,aAAcA,EAAe,OAGlC,oBAAC/B,EAAD,CACIyG,SAAW,CAAE,CAAC,aAAc,CAAC,aAAc,CAAC,cAC5CC,cAAc,EACdC,cAAgB,CAAE,mBAI3Bq3B,GACH,iCACKmB,aAA8Bz6B,EAA9B,0CAAgFA,EAAhF,qFAC2By6B,EAD3B,8CAGAC,aAAgC16B,EAAhC,4CAAoFA,EAApF,4EACgB06B,EADhB,oDA7mBiE,GA+CzDlvC,GAwkBvB+vC,EACF,2BAAK79B,MAAM,6BAA6BC,MAAM,KAAKC,OAAO,KAAKC,QAAQ,aACnE,4BAAMlC,KAAK,OAAOtT,EAAE,oBACpB,4BAAMsT,KAAK,OAAOtT,EAAE,oBACpB,4BAAMA,EAAE,+GAIVmzC,EAAgB,CAClB9B,WAAY,CACR1oC,KAAM,QACNsN,QAAS,CACLjT,EAAI,QAAS,sBACbA,EAAI,QAAS,sBACbA,EAAI,QAAS,wBAGrB0uC,UAAW,CACP/oC,KAAM,SACNsN,QAAS,GAEb+7B,kBAAmB,CACfrpC,KAAM,SACNsN,QAAS,GAEbg8B,WAAY,CACRtpC,KAAM,SACNsN,QAAS,QAEbi8B,WAAY,CACRvpC,KAAM,SACNsN,QAAS,QAEbk8B,WAAY,CACRxpC,KAAM,SACNsN,QAAS,SAEb1B,cAAe,CACX5L,KAAM,SACNsN,QAAS,WAEbzB,gBAAiB,CACb7L,KAAM,SACNsN,QAAS,QAEbtB,YAAa,CACThM,KAAM,UAEViM,cAAe,CACXjM,KAAM,UAEVkM,YAAa,CACTlM,KAAM,SACNsN,QAAS,SAEbnB,YAAa,CACTnM,KAAM,SACNsN,QAAS,GAEblB,YAAa,CACTpM,KAAM,UAEVqM,aAAc,CACVrM,KAAM,SACNsN,QAAS,IAEbg7B,IAAK,CACDtoC,KAAM,UAEVypC,iBAAkB,CACdzpC,KAAM,UAEV0pC,mBAAoB,CAChB1pC,KAAM,UAEV0L,QAAS,CACL1L,KAAM,UACNsN,SAAS,GAEbqD,UAAW,CACP3Q,KAAM,UACNsN,SAAS,GAEb+6B,SAAU,CACNroC,KAAM,SACNsN,QAAS,IAEb06B,YAAa,CACThoC,KAAM,UACNsN,SAAS,GAEbq7B,WAAY,CACR3oC,KAAM,QACNsN,QAAS,CACL,GACA,GACA,MAKZrD,EAAmB,iBAAkB,CACjChN,MAAO5C,EAAI,sBAAuB,sBAClCkT,YAAalT,EAAI,8DAA+D,sBAChFqC,KAAM,CACF8Q,IAAK+8B,EACL98B,WAAmC,oBAAhBjR,YAA8BA,YAAY+P,WAAQhD,GAEzEmE,SAAU,iBACVC,SAAU,CAAEtT,EAAI,OAAQ,sBAAwBA,EAAI,gBAAiB,sBAAwBA,EAAI,QAAS,uBAC1G0E,WAAYyrC,EACZr5B,QAAS,CACLpS,WAAY,CACR4R,WAAW,IAGnB/C,SAAU,CACN4B,QAAQ,GAEZ1B,KAAMe,EACF24B,GAAY,SAAC54B,EAAQ67B,GAAc,IACvBz7B,EAAay7B,EAAbz7B,SAGR,MAAO,CACHT,aAAa6C,EAHIxC,EAAQ,qBAArBwC,UAGmBpC,GAAWT,gBAG1CI,GAAc,SAACc,EAAD,KAAsD,IAAzCT,EAAyC,EAAzCA,SAAUT,EAA+B,EAA/BA,YACzBoB,GADwD,EAAdf,OAChBa,EAAU,qBAApCE,uBAER,MAAO,CACH84B,WADG,WAEC35B,EAAOP,EAAYhQ,QAAQ,SAAA/F,GACvBmX,EAAuBpB,EAAa/V,GAAIwW,SAAU,CAC9CrN,GAAInJ,QAIhByvC,gBARG,SAQac,GACZp5B,EAAuBX,EAAU,CAC7B+5B,UAAWA,IAEfj6B,EAAOP,EAAYhQ,QAAQ,SAAA/F,GACvBmX,EAAuBpB,EAAa/V,GAAIwW,SAAU,CAC9C+5B,UAAWA,OAGnBhuC,KAAK0tC,kBA7Bf55B,CAkCHi5B,GACH/5B,KAAM,YAA4B,IAAfhP,EAAe,EAAfA,WAEX2pC,EAeA3pC,EAfA2pC,WACAC,EAcA5pC,EAdA4pC,WACAU,EAaAtqC,EAbAsqC,kBACAC,EAYAvqC,EAZAuqC,WACAC,EAWAxqC,EAXAwqC,WACAC,EAUAzqC,EAVAyqC,WACA59B,EASA7M,EATA6M,cACAC,EAQA9M,EARA8M,gBACAG,EAOAjN,EAPAiN,YACAC,EAMAlN,EANAkN,cACAC,EAKAnN,EALAmN,YACAC,EAIApN,EAJAoN,YACAC,EAGArN,EAHAqN,YACAC,EAEAtN,EAFAsN,aAGEmK,EAAa,CAAC,qBAAD,aAEF8yB,EAFE,wBAGFC,EAHE,uBAIFC,EAJE,UADfzqC,EADAupC,KAQF3sC,OAAQC,SAAUC,KAAM,KAE1B,OACI,2BAAKjC,UAAW4c,EAAYk0B,kBAAiBrB,GACzC,0BAAIzvC,UAAU,oBACT8uC,EAAW5rC,KAAK,SAAE6O,EAAQ5O,GAAV,OACb,0BAAIzE,IAAMyE,EAAQnD,UAAU,YACxBuC,MAAQ,CACJ6Q,gBAAiBpB,EACjBM,YAAaA,EACbC,YAAaA,EAAc,KAC3BC,YAAaA,EACbC,aAAcA,EAAe,OAGjC,yBAAG1K,GAAIgnC,EAAW5rC,GAAQqK,KAAA,kBAAwBrK,EAC/CZ,MAAQ,CAAEoQ,MAAOV,IAEhB,oBAACzB,EAAS6D,QAAV,CACIxP,QAAQ,OACRzG,MAAQ2T,UAM5B,2BAAK/R,UAAU,yBACVuC,MAAQ,CACJ6Q,gBAAiBhB,EACjBO,MAAON,EACPC,YAAaA,EACbC,YAAaA,EAAc,KAC3BC,YAAaA,EACbC,aAAcA,EAAe,OAGlC,oBAAC/B,EAAY2D,QAAb,SAKhBC,WAAY,CACR,CACInP,gBACOyrC,GAEPz8B,KAAM,YAA4B,IAAfhP,EAAe,EAAfA,WAEX2pC,EAcA3pC,EAdA2pC,WACAW,EAaAtqC,EAbAsqC,kBACAC,EAYAvqC,EAZAuqC,WACAC,EAWAxqC,EAXAwqC,WACAC,EAUAzqC,EAVAyqC,WACA59B,EASA7M,EATA6M,cACAC,EAQA9M,EARA8M,gBACAG,EAOAjN,EAPAiN,YACAC,EAMAlN,EANAkN,cACAC,EAKAnN,EALAmN,YACAC,EAIApN,EAJAoN,YACAC,EAGArN,EAHAqN,YACAC,EAEAtN,EAFAsN,aAGEmK,EAAa,CAAC,qBAAD,aAEF8yB,EAFE,wBAGFC,EAHE,uBAIFC,EAJE,UADfzqC,EADAupC,KAQF3sC,OAAQC,SAAUC,KAAM,KAE1B,OACI,2BAAKjC,UAAW4c,EAAYk0B,kBAAiBrB,GACzC,0BAAIzvC,UAAU,oBACT8uC,EAAW5rC,KAAK,SAAE6O,EAAQ5O,GAAV,OACb,0BAAIzE,IAAMyE,EAAQnD,UAAU,YACxBuC,MAAQ,CACJ6Q,gBAAiBpB,EACjBM,YAAaA,EACbC,YAAaA,EAAc,KAC3BC,YAAaA,EACbC,aAAcA,EAAe,OAGjC,yBAAGjF,KAAA,kBAAwBrK,EACxBZ,MAAQ,CAAEoQ,MAAOV,IAEhB,oBAACzB,EAAS6D,QAAV,CACIxP,QAAQ,OACRzG,MAAQ2T,UAM5B,2BAAK/R,UAAU,yBACVuC,MAAQ,CACJ6Q,gBAAiBhB,EACjBO,MAAON,EACPC,YAAaA,EACbC,YAAaA,EAAc,KAC3BC,YAAaA,EACbC,aAAcA,EAAe,OAGlC,oBAAC/B,EAAY2D,QAAb,UAMpB,CACIlP,gBACOyrC,EADP,CAEIxC,YAAa,CACThoC,KAAM,UACNsN,SAAS,KAGjBS,KAAM,YAA4B,IAAfhP,EAAe,EAAfA,WAEX2pC,EAcA3pC,EAdA2pC,WACAW,EAaAtqC,EAbAsqC,kBACAC,EAYAvqC,EAZAuqC,WACAC,EAWAxqC,EAXAwqC,WACAC,EAUAzqC,EAVAyqC,WACA59B,EASA7M,EATA6M,cACAC,EAQA9M,EARA8M,gBACAG,EAOAjN,EAPAiN,YACAC,EAMAlN,EANAkN,cACAC,EAKAnN,EALAmN,YACAC,EAIApN,EAJAoN,YACAC,EAGArN,EAHAqN,YACAC,EAEAtN,EAFAsN,aAGEmK,EAAa,CAAC,qBAAD,aAEF8yB,EAFE,wBAGFC,EAHE,uBAIFC,EAJE,UADfzqC,EADAupC,KAQF3sC,OAAQC,SAAUC,KAAM,KAE1B,OACI,2BAAKjC,UAAW4c,EAAYk0B,kBAAiBrB,GACzC,0BAAIzvC,UAAU,oBACT8uC,EAAW5rC,KAAK,SAAE6O,EAAQ5O,GAAV,OACb,0BAAIzE,IAAMyE,EAAQnD,UAAU,YACxBuC,MAAQ,CACJ6Q,gBAAiBpB,EACjBM,YAAaA,EACbC,YAAaA,EAAc,KAC3BC,YAAaA,EACbC,aAAcA,EAAe,OAGjC,yBAAGjF,KAAA,kBAAwBrK,EACxBZ,MAAQ,CAAEoQ,MAAOV,IAEhB,gCAAOF,SAKvB,2BAAK/R,UAAU,yBACVuC,MAAQ,CACJ6Q,gBAAiBhB,EACjBO,MAAON,EACPC,YAAaA,EACbC,YAAaA,EAAc,KAC3BC,YAAaA,EACbC,aAAcA,EAAe,OAGlC,oBAAC/B,EAAY2D,QAAb,UAMpB,CACIlP,gBACOyrC,EADP,CAEInC,SAAU,CACNroC,KAAM,SACNsN,QAAS,MAGjBS,KAAM,YAA4B,IAAfhP,EAAe,EAAfA,WAEX2pC,EAcA3pC,EAdA2pC,WACAW,EAaAtqC,EAbAsqC,kBACAC,EAYAvqC,EAZAuqC,WACAC,EAWAxqC,EAXAwqC,WACAC,EAUAzqC,EAVAyqC,WACA59B,EASA7M,EATA6M,cACAC,EAQA9M,EARA8M,gBACAG,EAOAjN,EAPAiN,YACAC,EAMAlN,EANAkN,cACAC,EAKAnN,EALAmN,YACAC,EAIApN,EAJAoN,YACAC,EAGArN,EAHAqN,YACAC,EAEAtN,EAFAsN,aACAi8B,EACAvpC,EADAupC,IAEE9xB,EAAa,CAAC,qBAAD,aAEF8yB,EAFE,wBAGFC,EAHE,uBAIFC,EAJE,WAKjB7tC,OAAQC,SAAUC,KAAM,KAE1B,OACI,2BAAK8F,GAAI2mC,EAAK1uC,UAAW4c,EAAYk0B,kBAAiBrB,GAClD,0BAAIzvC,UAAU,oBACT8uC,EAAW5rC,KAAK,SAAE6O,EAAQ5O,GAAV,OACb,0BAAIzE,IAAMyE,EAAQnD,UAAU,YACxBuC,MAAQ,CACJ6Q,gBAAiBpB,EACjBM,YAAaA,EACbC,YAAaA,EAAc,KAC3BC,YAAaA,EACbC,aAAcA,EAAe,OAGjC,yBAAGjF,KAAA,IAAUkhC,EAAV,IAAiBvrC,EACjBZ,MAAQ,CAAEoQ,MAAOV,IAEhB,gCAAOF,SAKvB,2BAAK/R,UAAU,yBACVuC,MAAQ,CACJ6Q,gBAAiBhB,EACjBO,MAAON,EACPC,YAAaA,EACbC,YAAaA,EAAc,KAC3BC,YAAaA,EACbC,aAAcA,EAAe,OAGlC,oBAAC/B,EAAY2D,QAAb,aA7hChC,CAqiCIhV,GAAGqB,KAAMrB,GAAGoV,OAAQpV,GAAGsB,QAAStB,GAAGK,YAAaL,GAAGC,WAAYD,GAAG4V,QAAS9N,S,whBCriC/E,SAAW6I,EAAQC,EAAUC,EAAWC,EAAeC,GACnDD,EAAgB9Q,GAAGK,aAAeL,GAAGM,OAD4B,IAEzDc,EAAOuP,EAAPvP,GACAG,EAAwBsP,EAAxBtP,UAAWC,EAAaqP,EAAbrP,SACXwP,EAAsBJ,EAAtBI,kBACAK,EAAgBP,EAAhBO,YACAsE,EAAW3V,GAAGkH,KAAdyO,OAEF27B,EACF,2BAAK79B,MAAM,6BAA6BC,MAAM,KAAKC,OAAO,KAAKC,QAAQ,aACnE,4BAAMlC,KAAK,OAAOtT,EAAE,oBACpB,4BAAMsT,KAAK,OAAOtT,EAAE,oBACpB,4BAAMA,EAAE,+GAOVwwC,EAAqB,GAErB8C,EArB2D,YAsB7D,aAAc,2EACAt/B,YAvB+C,O,yTAAA,sDA0BxC,MAC+BtQ,KAAK/B,MAA7C+F,EADS,EACTA,WAAYwM,EADH,EACGA,cAAeyD,EADlB,EACkBA,SADlB,EAGqC/V,GAAGK,YAAwCsV,EAAQ,qBAAlCA,EAAQ,eAAvEK,EAHS,EAGTA,qBAEFC,GAAiBC,EALN,EAGaA,oBACVF,EAAsBD,KAIf,IAAvBjQ,EAAW2M,SACY,OAAnBwD,IAAyD,IAA9BA,EAAeT,aAC1ChX,OAAO8E,KAAK2S,GAAgBpS,KAAI,SAACkC,GAC7BD,EAAWC,GAAakQ,EAAelQ,MAI3CuM,EAAe,CAAEG,SAAS,OAzCuB,0CA8CzC,MACsB3Q,KAAK/B,MAAnC+F,EADQ,EACRA,WAAYwM,EADJ,EACIA,cACb5J,EAA8B5C,EAA9B4C,GAAI+mC,EAA0B3pC,EAA1B2pC,WAAYC,EAAc5pC,EAAd4pC,WAEhB5tC,KAAK/B,MAAM+F,WAAWspC,SAKjBR,EAAmBrsC,SAAUT,KAAK/B,MAAM+F,WAAWspC,WAC3DttC,KAAK/B,MAAMuS,cAAe,CACtB88B,SAAU,IAAMttC,KAAK/B,MAAMgW,SAASi4B,OAAQ,EAAG,KAEnDY,EAAmBxnC,KAAM,IAAMtF,KAAK/B,MAAMgW,SAASi4B,OAAQ,EAAG,KAE9DY,EAAmBxnC,KAAMtF,KAAK/B,MAAM+F,WAAWspC,WAV/CttC,KAAK/B,MAAMuS,cAAe,CACtB88B,SAAU,IAAMttC,KAAK/B,MAAMgW,SAASi4B,OAAQ,EAAG,KAEnDY,EAAmBxnC,KAAM,IAAMtF,KAAK/B,MAAMgW,SAASi4B,OAAQ,EAAG,KAUlE17B,EAAc,CACVI,OAAQ+8B,EAAW/mC,UAGE,IAAfgnC,GACNp9B,EAAc,CACViE,OAAQm5B,EAAWhnC,OAtE8B,+BA4EpD,IACG5C,EAAehE,KAAK/B,MAApB+F,WACDgqC,EAA2BhqC,EAA3BgqC,UAAWpnC,EAAgB5C,EAAhB4C,GAAI0mC,EAAYtpC,EAAZspC,SAEhBuC,EAAiB3xC,GAAGoV,OAAOw8B,gBAAgB/tC,KAAI,SAAAuU,GAAA,OAASA,EAAM/Z,QAAMqE,QACtE,SAAAmvC,GAAA,MAA6B,mBAAdA,GAAgD,cAAdA,KAG/CC,EAAe,CAAC,aACL1C,EACb,kBACF1sC,OAAOC,SAASC,KAAK,KACvB,OACI,oBAACpB,EAAD,KACI,2BAAKb,UAAWmxC,EACX5uC,MAAO,CACHkY,QAAS1S,IAAOonC,EAAY,QAAU,SAG3C,oBAACz+B,EAAD,CACIyG,SAAU,CAAE,CAAE,mBACdC,cAAc,EACdC,cAAgB25B,UAlGyB,GAqBvCpwC,GAqF1ByP,EAAmB,YAAa,CAC5BhN,MAAO5C,EAAI,0BAA2B,sBACtCuF,OAAQ,CAAE,kBACVlD,KAAM,CACF8Q,IAAK+8B,EACL98B,WAAmC,oBAAhBjR,YAA8BA,YAAY+P,WAAQhD,GAEzEmE,SAAU,iBACV3O,WAAY,CACR4C,GAAI,CACA3B,KAAM,SACNsN,QAAS,GAEbg7B,IAAK,CACDtoC,KAAM,UAEV2L,OAAQ,CACJ3L,KAAM,QAEVwP,OAAQ,CACJxP,KAAM,UAEV+oC,UAAW,CACP/oC,KAAM,SACNsN,QAAS,GAEb5B,QAAS,CACL1L,KAAM,UACNsN,SAAS,GAEbo7B,WAAY,CACR1oC,KAAM,QACNsN,QAAS,CACLjT,EAAI,QAAS,sBACbA,EAAI,QAAS,sBACbA,EAAI,QAAS,wBAGrBsuC,WAAY,CACR3oC,KAAM,QACNsN,QAAS,CACL,GACA,GACA,KAGR+6B,SAAU,CACNroC,KAAM,SACNsN,QAAS,KAGjBM,SAAU,CACNo9B,UAAU,GAEdr9B,SAAU,CAAEtT,EAAI,MAAO,uBACvByT,KAAM68B,EACN58B,KAAM,YAA2B,IAAfhP,EAAe,EAAfA,WACP4C,EAAiC5C,EAAjC4C,GAAI0mC,EAA6BtpC,EAA7BspC,SAAU18B,EAAmB5M,EAAnB4M,OAAQ6D,EAAWzQ,EAAXyQ,OAEvBu7B,EAAe,CAAC,aACL1C,EACb,kBACF1sC,OAAOC,SAASC,KAAK,KAEvB,OACI,2BAAKjC,UAAU,4BACX,2BAAKA,UAAA,yCAAoD4V,GAAW7D,GACpE,2BAAK/R,UAAWmxC,EAAcE,kBAAA,iBAAkCtpC,GAC5D,oBAAC2I,EAAY2D,QAAb,SAKhBC,WAAY,CACR,CACInP,WAAY,CACR4C,GAAI,CACA3B,KAAM,SACNsN,QAAS,GAEbg7B,IAAK,CACDtoC,KAAM,UAEV2L,OAAQ,CACJ3L,KAAM,QAEV+oC,UAAW,CACP/oC,KAAM,SACNsN,QAAS,GAEb5B,QAAS,CACL1L,KAAM,UACNsN,SAAS,GAEbo7B,WAAY,CACR1oC,KAAM,QACNsN,QAAS,CACLjT,EAAI,QAAS,sBACbA,EAAI,QAAS,sBACbA,EAAI,QAAS,wBAGrBguC,SAAU,CACNroC,KAAM,SACNsN,QAAS,KAGjBM,SAAU,CACNo9B,UAAU,GAEdj9B,KAAM,YAA2B,IAAfhP,EAAe,EAAfA,WACP4C,EAAwB5C,EAAxB4C,GAAI0mC,EAAoBtpC,EAApBspC,SAAU18B,EAAU5M,EAAV4M,OAEfo/B,EAAe,CAAC,aACL1C,EACb,kBACF1sC,OAAOC,SAASC,KAAK,KAEvB,OACI,2BAAKjC,UAAU,4BACX,2BAAKA,UAAU,yBAAyB+R,GACxC,2BAAK/R,UAAWmxC,EAAcE,kBAAA,iBAAkCtpC,GAC5D,oBAAC2I,EAAY2D,QAAb,UAMpB,CACIlP,WAAY,CACRupC,IAAK,CACDtoC,KAAM,UAEV2L,OAAQ,CACJ3L,KAAM,QAEV+oC,UAAW,CACP/oC,KAAM,SACNsN,QAAS,GAEb5B,QAAS,CACL1L,KAAM,UACNsN,SAAS,GAEbo7B,WAAY,CACR1oC,KAAM,QACNsN,QAAS,CACLjT,EAAI,QAAS,sBACbA,EAAI,QAAS,sBACbA,EAAI,QAAS,wBAGrBguC,SAAU,CACNroC,KAAM,SACNsN,QAAS,KAGjBS,KAAM,YAA2B,IAAfhP,EAAe,EAAfA,WACPupC,EAAevpC,EAAfupC,IAAK38B,EAAU5M,EAAV4M,OAEZ,OACI,2BAAK/R,UAAU,4BACX,2BAAKA,UAAU,yBAAyB+R,GACxC,2BAAK/R,UAAU,iBAAiB+H,GAAI2mC,GAChC,oBAACh+B,EAAY2D,QAAb,aA9QhC,CAuRMhV,GAAGqB,KAAMrB,GAAGoV,OAAQpV,GAAGsB,QAAStB,GAAGK,YAAaL,GAAGC,a,ouBCvRzD,SAAY0Q,EAAQC,EAAUC,EAAWC,EAAeC,GACpDD,EAAgB9Q,GAAGK,aAAeL,GAAGM,OAD8B,IAE3Dc,EAAOuP,EAAPvP,GACAG,EAAwBsP,EAAxBtP,UAAWC,EAAaqP,EAAbrP,SACXwP,EAAsBJ,EAAtBI,kBAJ2D,EAKWF,EAAtEI,EAL2D,EAK3DA,kBAAmB6F,EALwC,EAKxCA,cAAe3F,EALyB,EAKzBA,mBAAoB4N,EALK,EAKLA,YAE1DpX,EAaAmJ,EAbAnJ,aACA0J,EAYAP,EAZAO,UACAC,EAWAR,EAXAQ,cACApR,EAUA4Q,EAVA5Q,YACAuB,EASAqP,EATArP,YACAD,EAQAsP,EARAtP,cACA4J,EAOA0F,EAPA1F,OACAiW,EAMAvQ,EANAuQ,SACA2wB,EAKAlhC,EALAkhC,QAEAj7B,GAGAjG,EAJAmhC,QAIAnhC,EAHAiG,cACAC,EAEAlG,EAFAkG,cACAk7B,EACAphC,EADAohC,SAGEC,EAAoB,CACtBC,OAAQ,CACJ,4BAAMhzC,IAAI,IAAIjB,EAAE,kBAChB,4BAAMiB,IAAI,IAAIjB,EAAE,gBAAgBsT,KAAK,UAEzC4gC,WAAY,CACR,4BAAMjzC,IAAI,IAAIjB,EAAE,gBAAgBsT,KAAK,SACrC,4BAAMrS,IAAI,IAAIjB,EAAE,gGAEpBm0C,cAAe,CACX,4BAAMlzC,IAAI,IAAIjB,EAAE,gBAAgBsT,KAAK,SACrC,4BAAMrS,IAAI,IAAIjB,EAAE,yJAEpBo0C,SAAU,CACN,4BAAMnzC,IAAI,IAAIjB,EAAE,gBAAgBsT,KAAK,SACrC,4BAAMrS,IAAI,IAAIjB,EAAE,2GAEpBq0C,aAAc,CACV,4BAAMpzC,IAAI,IAAIjB,EAAE,wIAChB,4BAAMiB,IAAI,IAAIqS,KAAK,OAAOtT,EAAE,mBAEhCs0C,YAAa,CACT,4BAAMrzC,IAAI,IAAIjB,EAAE,gBAAgBsT,KAAK,SACrC,4BAAMrS,IAAI,IAAIjB,EAAE,iQAMlBu0C,EAnD6D,YAoD/D,aAAc,0EACAvgC,YADA,OAEV,EAAKxQ,MAAQ,CACTgxC,UAAU,GAGd,EAAKC,eAAiB,EAAKA,eAAevzC,KAApB,GANZ,EApDiD,O,yTAAA,sDA6D1C,MACqBwC,KAAK/B,MAAnC+F,EADS,EACTA,WAAYwM,EADH,EACGA,cACdC,EAAqBC,mBAAmB,gBAGnB,IAAvB1M,EAAW2M,UACuB,iBAA9B,IAAOF,EAAP,cAAOA,KAA0D,OAAvBA,GAC1C/T,OAAO8E,KAAKiP,GAAoB1O,KAAI,SAACkC,GACI,kBAA1BD,EAAWC,GAClBD,EAAWC,KAAewM,EAAmBxM,GAE7CD,EAAWC,GAAawM,EAAmBxM,MAMvDuM,EAAe,CAAEG,SAAS,OA9E6B,uCAkF9C,aACyB3Q,KAAK/B,MAAnC+F,EADK,EACLA,WAAYwM,EADP,EACOA,cACZwgC,EAA8BhtC,EAA9BgtC,QAASxoB,EAAqBxkB,EAArBwkB,OAAQyoB,EAAajtC,EAAbitC,SACrBC,EAASF,EAEb,GAAMA,EAAS,CACXhxC,KAAKC,SAAU,CAAE6wC,UAAU,IAE3B,IAAIr5B,EAAM,GAENA,EADAu5B,EAAQ/zB,MAAO,UACfxF,qBAA2Bu5B,EAE3Bv5B,mCAAyCu5B,EAGzCA,EAAQpvC,QAAS,SAAY,IAC7B6V,EAAMu5B,GAGNA,EAAQ/zB,MAAO,eAEfi0B,GADAA,EAASF,EAAQlvC,MAAO,OACR,GACTkvC,EAAQ/zB,MAAO,wBAEtBi0B,GADAA,EAASF,EAAQlvC,MAAO,MACPovC,EAAO1tC,OAAS,IAGhC0tC,IAAQA,EAAS,IAElBA,EAAOtvC,QAAS,MAAS,IACzBsvC,EAASA,EAAO1rC,UAAW,EAAG0rC,EAAOtvC,QAAS,OAElD1D,GAAGizC,SAAU,CAAEC,KAAMlzC,GAAGuZ,IAAI45B,aAAP,yBAA8ChV,mBAAoB5kB,MAAc65B,MACjG,SAACnuC,GAEG,GADA,EAAKlD,SAAU,CAAE6wC,UAAU,IACrB3tC,EAAIjB,OAAWiB,EAAIouC,cAMrB,OALA/gC,EAAe,CACXghC,WAAYruC,EAAIjB,MAChBsmB,OAAUyoB,EAAWzoB,EAASrlB,EAAIsuC,gBAG9BtuC,EAAIouC,eACR,IAAK,UACD/gC,EAAe,CACXkhC,gBAAiB,UACjBC,0CAA2CT,EAA3C,6BAEJ,MACJ,IAAK,QACD1gC,EAAe,CACXkhC,gBAAiB,QACjBC,2CAA4CT,SAOxD1gC,EAAe,CACXghC,WAAY,qBACZhpB,OAAQ,QAItBopB,OAAO,SAAEpX,GACP,EAAKv6B,SAAU,CAAE6wC,UAAU,IAC3BtgC,EAAe,CACXghC,WAAY,qBACZhpB,OAAQ,WAtJuC,qCA4JhDqpB,EAAOC,GAClB9xC,KAAK/B,MAAMuS,cACP,CACImhC,SAAUE,EAAMp6B,IAChBu5B,QAASa,EAAMjrC,GACf4qC,WAAYK,EAAM3vC,MAClBwvC,gBAAiB,QACjBK,gBAAgB,IAG2B,MAAhD7xC,SAAS8xC,cAAc,IAAIF,EAAQ,YAClC5xC,SAAS8xC,cAAe,IAAMF,EAAU,UAAWG,QACnD/xC,SAAS8xC,cAAe,IAAMF,EAAU,UAAWI,UAxKI,+BA4KtD,aACwDlyC,KAAK/B,MAA1DsZ,EADH,EACGA,WAAYvT,EADf,EACeA,WAAYiQ,EAD3B,EAC2BA,SAAWzD,EADtC,EACsCA,cAEvCmhC,EAqBA3tC,EArBA2tC,SACAX,EAoBAhtC,EApBAgtC,QACAU,EAmBA1tC,EAnBA0tC,gBACAF,EAkBAxtC,EAlBAwtC,WACAW,EAiBAnuC,EAjBAmuC,eACAC,EAgBApuC,EAhBAouC,WACAC,EAeAruC,EAfAquC,YACAC,EAcAtuC,EAdAsuC,eACAC,EAaAvuC,EAbAuuC,eACAC,EAYAxuC,EAZAwuC,gBACAx0B,EAWAha,EAXAga,aACAwK,EAUAxkB,EAVAwkB,OACAyoB,EASAjtC,EATAitC,SACAc,EAQA/tC,EARA+tC,eACAjtB,EAOA9gB,EAPA8gB,SACAyC,EAMAvjB,EANAujB,KACAW,EAKAlkB,EALAkkB,MACAuqB,EAIAzuC,EAJAyuC,SACAC,EAGA1uC,EAHA0uC,YACAjqB,EAEAzkB,EAFAykB,QACA7S,EACA5R,EADA4R,UAGE2I,EAAiB,CACnB,sBACEwzB,KAAoBJ,GAAY,wBACpC/wC,OAAQC,SAAUC,KAAM,KAEpB6xC,EAAoB,CACtB,wBACER,GAAkB,cACnBJ,GAAkB,eACrBnxC,OAAQC,SAAUC,KAAM,KAEpBgxC,EAAU,eAAiB79B,EAE3B2+B,EAAgB,CAClBC,QACI,2BAAKjsC,GAAG,eAAepE,QAAQ,MAAMsP,QAAQ,cAAcH,MAAM,8BAC7D,yBAAG/K,GAAG,gBACF,yBAAGA,GAAG,cACF,4BAAMmmB,SAAS,UAAUnd,KAAK,OAAOiC,OAAO,MAAMD,MAAM,QACxD,4BAAMmb,SAAS,UAAUzwB,EAAE,unBAAunBsT,KAAK,UAAU8e,SAAS,UAAU9nB,GAAG,eAKvsBksC,MACI,2BAAKjhC,OAAO,KAAKC,QAAQ,YAAYF,MAAM,KAAKD,MAAM,8BAClD,6BACI,8BAAQ6b,GAAG,KAAKC,GAAG,KAAK7mB,GAAG,KAAK9J,EAAE,KAAK8S,KAAK,YAC5C,4BAAMtT,EAAE,kcAAkcsK,GAAG,QAAQgJ,KAAK,cAIte0hB,MACI,2BAAKzf,OAAO,KAAKjL,GAAG,UAAUpE,QAAQ,MAAMsP,QAAQ,YAAYF,MAAM,KAAKD,MAAM,8BAC7E,4BAAMob,SAAS,UAAUzwB,EAAE,iQAAiQoyB,SAAS,cAKjT,OACI9Y,EACI,2BAAKE,IAAKxW,EAAG,iBAAkB,sBAAuBsS,MAAM,OAAOa,IA9L1D,2yHAgMT,oBAAC/S,EAAD,QACW8oB,GAAUupB,IAAsBA,GAAsC,UAApBL,IACzD,oBAACz8B,EAAD,KACI,oBAACC,EAAD,KACI,oBAACgI,EAAD,CACIsB,aAAe,CAAC,SAChBvhB,MAAQg0C,EACRxyB,SAAW,SAACC,GAAD,OAAWlO,EAAe,CAAEgY,OAAQ9J,EAAMjH,IAAKw5B,SAAUvyB,EAAM9X,MAC1E+X,OAAS,gBAAIC,EAAJ,EAAIA,KAAJ,OACL,oBAACzJ,EAAD,CACItW,UAAU,8BACVF,MAAQW,EAAI,uBAAwB,sBACpCqC,KAAK,OACLV,QAAU2d,OAItB,oBAACzJ,EAAD,CACItW,UAAU,8BACVF,MAAQW,EAAI,uBAAwB,sBACpCqC,KAAK,KACLV,QAAU,kBAAMuP,EAAe,CAAEgY,YAAQha,EAAWyiC,cAAUziC,SAK1E,oBAACY,EAAD,KACI,oBAACI,EAAD,CAAWtN,MAAQ5C,EAAI,iBAAkB,uBACrC,oBAACmQ,EAAD,CACI9Q,MAAQW,EAAI,0BAA2B,sBACvCoS,KAAOpS,EAAI,8CAA+C,sBAC1D2L,QAAU8mC,EACVnzC,SAAW,kBAAM4R,EAAe,CAAEuhC,gBAAiBA,OAGjC,UAApBL,GACF,oBAAChyC,EAAD,KACI,oBAAC+P,EAAD,CACI9Q,MAAQW,EAAI,WAAY,sBACxB2L,QAAU6Z,EACVlmB,SAAW,kBAAM4R,EAAe,CAAEsU,UAAWA,OAGjD,oBAACrV,EAAD,CACI9Q,MAAQW,EAAI,OAAQ,sBACpB2L,QAAUsc,EACV3oB,SAAW,kBAAM4R,EAAe,CAAE+W,MAAOA,OAG7C,oBAAC9X,EAAD,CACI9Q,MAAQW,EAAI,QAAS,sBACrB2L,QAAUid,EACVtpB,SAAW,kBAAM4R,EAAe,CAAE0X,OAAQA,OAG9C,oBAACzY,EAAD,CACI9Q,MAAQW,EAAI,oBAAqB,sBACjC2L,QAAUwnC,EACV7zC,SAAW,kBAAM4R,EAAe,CAAEiiC,UAAWA,OAGjD,oBAAChjC,EAAD,CACI9Q,MAAQW,EAAI,cAAe,sBAC3B2L,QAAUynC,EACV9zC,SAAW,kBAAM4R,EAAe,CAAEkiC,aAAcA,OAGpD,oBAAC/yC,EAAD,CACIhB,MAAQW,EAAI,mBAAoB,sBAChCrC,MAAQwrB,EACRtnB,QAAU,CACN,CAAExC,MAAOW,EAAI,OAAQ,sBAAwBrC,MAAO,QACpD,CAAE0B,MAAOW,EAAI,WAAY,sBAAwBrC,MAAO,YACxD,CAAE0B,MAAOW,EAAI,OAAQ,sBAAwBrC,MAAO,SAExD2B,SAAW,SAAE3B,GAAF,OAAauT,EAAe,CAAEiY,QAASxrB,QAK1D,oBAACwS,EAAD,CACI9Q,MAAQW,EAAI,aAAc,sBAC1B2L,QAAUknC,EACVvzC,SAAW,kBAAM4R,EAAe,CAAE2hC,gBAAiBA,QAErDA,GACF,oBAACrsC,EAAD,CACInH,MAAQW,EAAI,cAAe,sBAC3BrC,MAAQm1C,EACR9pC,IAAM,IACNC,IAAM,IACN3J,SAAW,SAAC3B,GAAD,OAAWuT,EAAe,CAAE4hC,WAAYn1C,OAGvD,oBAAC6I,EAAD,CACInH,MAAQW,EAAI,eAAgB,sBAC5BrC,MAAQo1C,EACR/pC,IAAM,IACNC,IAAM,IACN3J,SAAW,SAAC3B,GAAD,OAAWuT,EAAe,CAAE6hC,YAAap1C,SAErD80C,GACH,oBAACryC,EAAD,KACI,oBAAC4P,EAAD,CACIpN,MAAQ5C,EAAI,iBAAkB,sBAC9ByS,aAAc,EACdC,cAAgB,CACZ,CACIrT,MAAOW,EAAI,gBAAiB,sBAC5BrC,MAAO+gB,EACPpf,SAAU,SAAE3B,GAAF,OAAauT,EAAe,CAAEwN,kBAAwBxP,IAAVvR,EAAsB,UAAYA,MAE5F,CACI0B,MAAOW,EAAI,oBAAqB,sBAChCrC,MAAOu1C,EACP5zC,SAAU,SAAE3B,GAAF,OAAauT,EAAe,CAAEgiC,qBAA2BhkC,IAAVvR,EAAsB,OAASA,SAIpG,oBAACuS,EAAD,CAAWtN,MAAQ5C,EAAI,cAAe,uBAClC,oBAACjB,EAAD,CAAaM,MAAQW,EAAI,aAAc,uBACnC,2BAAKT,UAAU,4BACVnC,OAAO8E,KAAM8uC,GAAoBvuC,KAAK,SAAExE,EAAKyE,GAAP,OACnC,2BAAKnD,UAAU,kBAAkBtB,IAAMyE,GACvC,4BAAMnD,UAAYtB,IAAQ+0C,EAAiB,SAAW,GAChDrxC,QAAU,kBAAMuP,EAAe,CAAE8hC,eAAgB/0C,MACnD,2BAAKoU,MAAM,6BAA6BC,MAAM,KAAKC,OAAO,KAAKC,QAAQ,aACjEw+B,EAAkB/yC,WAOxC,oBAACuI,EAAD,CACInH,MAAQW,EAAI,mBAAoB,sBAChCrC,MAAQs1C,EACRjqC,IAAM,GACNC,IAAM,IACN3J,SAAW,SAAC3B,GAAD,OAAWuT,EAAe,CAAE+hC,eAAgBt1C,WAO3E,2BAAK4B,UAAY0f,EAAiB3X,GAAKkrC,KAChCC,GACH,2BAAKlzC,UAAY8zC,EAAoBvxC,MAAQ,CAAE6Q,gBAAiB+L,EAAepM,MAAOwgC,IAClF,2BAAKvzC,UAAU,qBAAqBuC,MAAQ,CAAEyd,gBAAiBA,OAAO2J,EAAxB,OAC9C,2BAAK3pB,UAAU,uBAAuBuC,MAAQ,CAAEyQ,OAAQwgC,KAClD7pB,GACF,oBAACtL,EAAD,CACIsB,aAAe,CAAC,SAChBC,SAAW,SAACoJ,GAAD,OAAWrX,EAAe,CAAEgY,OAAQX,EAAMpQ,IAAKw5B,SAAUppB,EAAMjhB,MAC1E3J,MAAQg0C,EACRtyB,OAAS,gBAAIC,EAAJ,EAAIA,KAAJ,OACL,oBAACrV,EAAD,CACI1K,UAAU,sBACVoC,QAAU2d,GAERtf,EAAI,uBAAwB,0BAK1C,2BAAKT,UAAU,oBAAoBuC,MAAQ,CAAEoQ,MAAOghC,IAChD,2BAAK7gC,MAAM,6BACNC,MAAQ2gC,EACR1gC,OAAS0gC,EACTzgC,QAAQ,aAERw+B,EAAkBgC,QAMjCP,GACE,2BAAKlzC,UAAY8zC,IACW,YAApBjB,GAAqD,UAApBA,IACjC,8BAAQj/B,IAAKk/B,EACLjrB,YAAY,IACZjC,iBAAA,EACArjB,MAAQ,CAAEwQ,MAAOwgC,EAAYvgC,OAAQwgC,MAGzB,UAApBX,GACA,oBAACrB,EAAD,KACI,6BAAOz+B,MAAOwgC,EACPvgC,OAAQwgC,EACR7pB,OAAQA,EACR9C,SAAU+sB,EACVvqB,MAAOA,GAEV,8BAAQzV,IAAKk/B,IACX,iDAIVD,GAAmB,2BAAKtwC,MAAQ,CAAEwQ,MAAOwgC,EAAYvgC,OAAQwgC,MAGxE96B,GACD,2BAAK1Y,UAAU,2BACX,2BAAKA,UAAU,qBACX,oBAAC2gB,EAAD,CAAU3gB,UAAU,wBAAwB8C,KAAK,gBACjD,oBAAC/B,EAAD,CACIsB,YAAc5B,EAAI,8BAA+B,sBACjDrC,MAAQ+zC,EACRpyC,SAAW,SAAC3B,GACRuT,EAAe,CAAEwgC,QAAS/zC,EAAO00C,SAAU,GAAIH,gBAAYhjC,EAAWkjC,gBAAiB,QAG/F,oBAACnoC,EAAD,CACI1K,UAAU,sBACVsD,UAAY6uC,GAA+B,UAApBU,EACvBtwC,MAAQ,CAAEyQ,OAAQ,QAClB5Q,QAAUjB,KAAK+wC,gBAEbzxC,EAAI,sBAAuB,uBAEjC,oBAAC4d,EAAD,CACIsB,aAAe,CAAC,SAChBvhB,MAAQ+zC,EACRvyB,SAAW,SAACozB,GAAD,OAAW,EAAKkB,eAAelB,EAAOC,IACjDnzB,OAAS,gBAAIC,EAAJ,EAAIA,KAAJ,OACL,oBAACrV,EAAD,CACI1K,UAAU,iCACVoC,QAAU2d,EACVxd,MAAQ,CAAC0W,WAAY,QAEnBxY,EAAI,mBAAoB,2BAK1C,2BAAKT,UAAU,2BACVuC,MAAQ,CAAE4xC,SAAU,MAAO1yB,OAAQ,YAAahE,UAAW,WAE5D,kCAAUhd,EAAI,gBAAiB,sBAA/B,KACA,4BAAM4C,MAAOwvC,EACPtwC,MAAQ,CACJwQ,MAAO,OACPC,OAAQ,OACRyO,OAAQ,aACRhH,QAAS,OACTqD,WAAY,SACZqC,eAAgB,WAGzB4zB,EAAclB,IAAsB1xC,KAAKF,MAAMgxC,UAAY,oBAACX,EAAD,OAE5D,gCAEqB,uBAAfqB,GAAuC,8BAAQpwC,MAAQ,CAAEoQ,MAAO,QAAYlS,EAAI,0CAA2C,wBAC1HkyC,GACAlyC,EAAI,oBAAqB,+BAlfG,GAmD5CG,GA2cjBwzC,EACF,2BAAKthC,MAAM,6BAA6BC,MAAM,KAAKC,OAAO,KAAKC,QAAQ,aACnE,4BAAMxV,EAAE,gBAAgBsT,KAAK,SAC7B,4BAAMtT,EAAE,yJAGV6Z,EAAa,CACfw7B,SAAU,CACN1sC,KAAM,UAEV+rC,QAAS,CACL/rC,KAAM,UAEVysC,gBAAiB,CACbzsC,KAAM,UAEVusC,WAAY,CACRvsC,KAAM,UAEVktC,eAAgB,CACZltC,KAAM,UACNsN,SAAS,GAEb6/B,WAAY,CACRntC,KAAM,UAEVotC,YAAa,CACTptC,KAAM,SACNsN,QAAS,KAEb+/B,eAAgB,CACZrtC,KAAM,SACNsN,QAAS,UAEbggC,eAAgB,CACZttC,KAAM,SACNsN,QAAS,IAEbigC,gBAAiB,CACbvtC,KAAM,SACNsN,QAAS,QAEbyL,aAAc,CACV/Y,KAAM,SACNsN,QAAS,WAEbiW,OAAQ,CACJvjB,KAAM,UAEVgsC,SAAU,CACNhsC,KAAM,UAEV8sC,eAAgB,CACZ9sC,KAAM,UACNsN,SAAS,GAEb5B,QAAS,CACL1L,KAAM,UACNsN,SAAS,GAEbuS,SAAU,CACN7f,KAAM,UACNsN,SAAS,GAEbgV,KAAM,CACFtiB,KAAM,UACNsN,SAAS,GAEb2V,MAAO,CACHjjB,KAAM,UACNsN,SAAS,GAEbkgC,SAAU,CACNxtC,KAAM,UACNsN,SAAS,GAEbmgC,YAAa,CACTztC,KAAM,UACNsN,SAAS,GAEbkW,QAAS,CACLxjB,KAAM,SACNsN,QAAS,YAEbqD,UAAW,CACP3Q,KAAM,UACNsN,SAAS,IAIjBrD,EAAmB,cAAe,CAC9BhN,MAAO5C,EAAI,uBAAwB,sBACnCkT,YAAalT,EAAI,gEAAiE,sBAClFqC,KAAM,CACF8Q,IAAKwgC,EACLvgC,WAAmC,oBAAhBjR,YAA8BA,YAAY+P,WAAQhD,GAEzEmE,SAAU,iBACVC,SAAU,CACNtT,EAAI,QAAS,sBACbA,EAAI,iBAAkB,sBACtBA,EAAI,QAAS,sBACbA,EAAI,QAAS,uBAEjB0E,WAAYmS,EACZC,QAAS,CACLpS,WAAY,CACR4R,WAAW,IAGnB/C,SAAU,CACN4B,QAAQ,GAEZ1B,KAAM89B,EACN79B,KAAM,YAA4B,IAAfhP,EAAe,EAAfA,WAEX2tC,EAkBA3tC,EAlBA2tC,SACAD,EAiBA1tC,EAjBA0tC,gBAEAS,GAeAnuC,EAhBAwtC,WAgBAxtC,EAfAmuC,gBACAC,EAcApuC,EAdAouC,WACAC,EAaAruC,EAbAquC,YACAC,EAYAtuC,EAZAsuC,eACAC,EAWAvuC,EAXAuuC,eACAC,EAUAxuC,EAVAwuC,gBACAx0B,EASAha,EATAga,aACAwK,EAQAxkB,EARAwkB,OACAupB,EAOA/tC,EAPA+tC,eACAjtB,EAMA9gB,EANA8gB,SACAyC,EAKAvjB,EALAujB,KACAW,EAIAlkB,EAJAkkB,MACAuqB,EAGAzuC,EAHAyuC,SACAC,EAEA1uC,EAFA0uC,YACAjqB,EACAzkB,EADAykB,QAGElK,EAAiB,CACnB,sBACE4zB,GAAkB,eAClBJ,KAAoBJ,GAAY,wBACpC/wC,OAAQC,SAAUC,KAAM,KAEpB6xC,EAAoB,CACtB,wBACER,GAAkB,cACnBJ,GAAkB,eACrBnxC,OAAQC,SAAUC,KAAM,KAEtBoyC,EAAkB,GAOtB,OANI3rB,GAAM2rB,EAAgB5tC,KAAM,QAC5B4iB,GAAOgrB,EAAgB5tC,KAAM,SAC7Bwf,GAAUouB,EAAgB5tC,KAAM,YAChCmtC,GAAUS,EAAgB5tC,KAAM,YAChCotC,GAAaQ,EAAgB5tC,KAAM,eAGnC,2BAAKzG,UAAY0f,EACZ40B,aAAaxB,EACbyB,cAAc1B,EACd2B,kBAAiBH,EAAgBpyC,KAAK,KACtCwyC,qBAAoB7qB,IAEnBspB,GACE,2BAAKlzC,UAAY8zC,IACW,YAApBjB,GAAqD,UAApBA,IACjC,8BAAQj/B,IAAKk/B,EACL//B,MAAOwgC,EACPvgC,OAAQwgC,EACR3rB,YAAY,IACZjC,iBAAA,KAGY,UAApBitB,GACA,6BAAO7yC,UAAYszC,GAAkB,aAC9BvgC,MAAOwgC,EACPvgC,OAAQwgC,EACR7pB,OAAQA,EACR9C,SAAU+sB,EACVlrB,KAAMA,EACNW,MAAOA,EACPpD,SAAUA,EACV2D,QAASA,EACTF,YAAamqB,GAEhB,8BAAQjgC,IAAKk/B,IACX,gDAGND,GAAmB,2BAAKtwC,MAAQ,CAAEwQ,MAAOwgC,EAAYvgC,OAAQwgC,QAGtEN,GACH,2BAAKlzC,UAAY8zC,EAAoBvxC,MAAQ,CAAE6Q,gBAAiB+L,EAAcpM,MAAOwgC,IACjF,2BAAKvzC,UAAU,qBAAqBuC,MAAQ,CAAEyd,gBAAiBA,OAAO2J,EAAxB,OAC9C,2BAAK3pB,UAAU,uBAAuBuC,MAAQ,CAAEyQ,OAAQwgC,IACpD,2BAAKxzC,UAAU,oBAAoBuC,MAAQ,CAAEoQ,MAAOghC,IAChD,2BAAK7gC,MAAM,6BACNC,MAAQ2gC,EACR1gC,OAAS0gC,EACTzgC,QAAQ,aAERw+B,EAAkBgC,SAS/Cn/B,WAAY,CACR,CACInP,WAAYmS,EACZnD,KAAM,YAA4B,IAAfhP,EAAe,EAAfA,WAEX2tC,EAYA3tC,EAZA2tC,SACAD,EAWA1tC,EAXA0tC,gBAEAS,GASAnuC,EAVAwtC,WAUAxtC,EATAmuC,gBACAC,EAQApuC,EARAouC,WACAC,EAOAruC,EAPAquC,YACAC,EAMAtuC,EANAsuC,eACAC,EAKAvuC,EALAuuC,eACAC,EAIAxuC,EAJAwuC,gBACAx0B,EAGAha,EAHAga,aACAwK,EAEAxkB,EAFAwkB,OACAupB,EACA/tC,EADA+tC,eAGExzB,EAAiB,CACnB,sBACE4zB,GAAkB,eAClBJ,KAAoBJ,GAAY,wBACpC/wC,OAAQC,SAAUC,KAAM,KAEpB6xC,EAAoB,CACtB,wBACER,GAAkB,cACnBJ,GAAkB,eACrBnxC,OAAQC,SAAUC,KAAM,KAE1B,OACI,2BAAKjC,UAAY0f,EACZ40B,aAAaxB,EACbyB,cAAc1B,IAEbK,GACE,2BAAKlzC,UAAY8zC,IACW,YAApBjB,GAAqD,UAApBA,IACjC,8BAAQj/B,IAAKk/B,EACL//B,MAAOwgC,EACPvgC,OAAQwgC,EACR3rB,YAAY,IACZjC,iBAAA,KAGY,UAApBitB,GACA,6BAAO7yC,UAAYszC,GAAkB,aAC9BvgC,MAAOwgC,EACPvgC,OAAQwgC,EACR7pB,OAAQA,EACR9C,UAAA,GAEH,8BAAQjT,IAAKk/B,IACX,gDAGND,GAAmB,2BAAKtwC,MAAQ,CAAEwQ,MAAOwgC,EAAYvgC,OAAQwgC,QAGtEN,GACH,2BAAKlzC,UAAY8zC,EAAoBvxC,MAAQ,CAAE6Q,gBAAiB+L,EAAcpM,MAAOwgC,IACjF,2BAAKvzC,UAAU,qBAAqBuC,MAAQ,CAAEyd,gBAAiBA,OAAO2J,EAAxB,OAC9C,2BAAK3pB,UAAU,uBAAuBuC,MAAQ,CAAEyQ,OAAQwgC,IACpD,2BAAKxzC,UAAU,oBAAoBuC,MAAQ,CAAEoQ,MAAOghC,IAChD,2BAAK7gC,MAAM,6BACNC,MAAQ2gC,EACR1gC,OAAS0gC,EACTzgC,QAAQ,aAERw+B,EAAkBgC,aAtxB/D,CAiyBIp0C,GAAGqB,KAAMrB,GAAGoV,OAAQpV,GAAGsB,QAAStB,GAAGK,YAAaL,GAAGC,a,41BChyBvD,SAAY0Q,EAAQC,EAAUC,EAAWC,EAAeC,EAAcjJ,GAClEgJ,EAAgB9Q,GAAGK,aAAeL,GAAGM,OADsC,IAEnEc,EAAOuP,EAAPvP,GACAG,EAAwBsP,EAAxBtP,UAAWC,EAAaqP,EAAbrP,SACXwP,EAAsBJ,EAAtBI,kBAJmE,EAKGF,EAAtEI,EALmE,EAKnEA,kBAAmB6F,EALgD,EAKhDA,cAAmC1F,GALa,EAKjCD,mBALiC,EAKbC,aACtDC,EAAiFP,EAAjFO,UAAW1J,EAAsEmJ,EAAtEnJ,aAAcnG,EAAwDsP,EAAxDtP,cAAe8P,EAAyCR,EAAzCQ,cAAehG,EAA0BwF,EAA1BxF,QAASyL,EAAiBjG,EAAjBiG,aAChEnB,EAAU/N,EAAV+N,MAPmE,EAQ9C7V,GAAGkH,KAAxBsP,EARmE,EAQnEA,SAAUb,EARyD,EAQzDA,OAEZ0/B,EAAkB,CACpB,CAAEC,QAAS,EAAGC,OAAQ,MAAO9xC,KAAM,MAAOO,MAAO5C,EAAI,aAAc,sBAAwBkT,YAAalT,EAAI,MAAO,uBACnH,CAAEk0C,QAAS,EAAGC,OAAQ,QAAS9xC,KAAM,QAASO,MAAO5C,EAAI,2BAA4B,sBAAwBkT,YAAalT,EAAI,UAAW,uBACzI,CAAEk0C,QAAS,EAAGC,OAAQ,QAAS9xC,KAAM,QAASO,MAAO5C,EAAI,2CAA4C,sBAAwBkT,YAAalT,EAAI,UAAW,uBACzJ,CAAEk0C,QAAS,EAAGC,OAAQ,QAAS9xC,KAAM,QAASO,MAAO5C,EAAI,2CAA4C,sBAAwBkT,YAAalT,EAAI,UAAW,uBACzJ,CAAEk0C,QAAS,EAAGC,OAAQ,QAAS9xC,KAAM,QAASO,MAAO5C,EAAI,iDAAkD,sBAAwBkT,YAAalT,EAAI,UAAW,uBAC/J,CAAEk0C,QAAS,EAAGC,OAAQ,QAAS9xC,KAAM,QAASO,MAAO5C,EAAI,iDAAkD,sBAAwBkT,YAAalT,EAAI,UAAW,uBAC/J,CAAEk0C,QAAS,EAAGC,OAAQ,QAAS9xC,KAAM,QAASO,MAAO5C,EAAI,4CAA6C,sBAAwBkT,YAAalT,EAAI,UAAW,uBAC1J,CAAEk0C,QAAS,EAAGC,OAAQ,QAAS9xC,KAAM,QAASO,MAAO5C,EAAI,4CAA6C,sBAAwBkT,YAAalT,EAAI,UAAW,uBAC1J,CAAEk0C,QAAS,EAAGC,OAAQ,WAAY9xC,KAAM,WAAYO,MAAO5C,EAAI,6BAA8B,sBAAwBkT,YAAalT,EAAI,eAAgB,uBACtJ,CAAEk0C,QAAS,EAAGC,OAAQ,WAAY9xC,KAAM,WAAYO,MAAO5C,EAAI,4CAA6C,sBAAwBkT,YAAalT,EAAI,eAAgB,uBACrK,CAAEk0C,QAAS,EAAGC,OAAQ,WAAY9xC,KAAM,WAAYO,MAAO5C,EAAI,6CAA8C,sBAAwBkT,YAAalT,EAAI,eAAgB,uBACtK,CAAEk0C,QAAS,EAAGC,OAAQ,WAAY9xC,KAAM,WAAYO,MAAO5C,EAAI,8CAA+C,sBAAwBkT,YAAalT,EAAI,eAAgB,uBACvK,CAAEk0C,QAAS,EAAGC,OAAQ,WAAY9xC,KAAM,WAAYO,MAAO5C,EAAI,kDAAmD,sBAAwBkT,YAAalT,EAAI,eAAgB,uBAC3K,CAAEk0C,QAAS,EAAGC,OAAQ,WAAY9xC,KAAM,WAAYO,MAAO5C,EAAI,gDAAiD,sBAAwBkT,YAAalT,EAAI,eAAgB,uBACzK,CAAEk0C,QAAS,EAAGC,OAAQ,WAAY9xC,KAAM,WAAYO,MAAO5C,EAAI,iDAAkD,sBAAwBkT,YAAalT,EAAI,eAAgB,uBAC1K,CAAEk0C,QAAS,EAAGC,OAAQ,WAAY9xC,KAAM,WAAYO,MAAO5C,EAAI,iDAAkD,sBAAwBkT,YAAalT,EAAI,qBAAsB,uBAChL,CAAEk0C,QAAS,EAAGC,OAAQ,cAAe9xC,KAAM,cAAeO,MAAO5C,EAAI,4BAA6B,sBAAwBkT,YAAalT,EAAI,oBAAqB,uBAChK,CAAEk0C,QAAS,EAAGC,OAAQ,cAAe9xC,KAAM,cAAeO,MAAO5C,EAAI,2CAA4C,sBAAwBkT,YAAalT,EAAI,0BAA2B,uBACrL,CAAEk0C,QAAS,EAAGC,OAAQ,cAAe9xC,KAAM,cAAeO,MAAO5C,EAAI,4CAA6C,sBAAwBkT,YAAalT,EAAI,0BAA2B,uBACtL,CAAEk0C,QAAS,EAAGC,OAAQ,cAAe9xC,KAAM,cAAeO,MAAO5C,EAAI,8CAA+C,sBAAwBkT,YAAalT,EAAI,oBAAqB,uBAClL,CAAEk0C,QAAS,EAAGC,OAAQ,cAAe9xC,KAAM,cAAeO,MAAO5C,EAAI,6CAA8C,sBAAwBkT,YAAalT,EAAI,oBAAqB,uBACjL,CAAEk0C,QAAS,EAAGC,OAAQ,OAAQ9xC,KAAM,iBAAkBO,MAAO5C,EAAI,4BAA6B,sBAAwBkT,YAAalT,EAAI,yBAA0B,uBACjK,CAAEk0C,QAAS,EAAGC,OAAQ,MAAO9xC,KAAM,oBAAqBO,MAAO5C,EAAI,2BAA4B,sBAAwBkT,YAAalT,EAAI,0CAA2C,wBAEjLo0C,EAA6B,CAC/B,CAAEF,QAAS,EAAGC,OAAQ,UAAW9xC,KAAM,YAAaO,MAAO5C,EAAI,yBAA0B,uBACzF,CAAEk0C,QAAS,EAAGC,OAAQ,UAAW9xC,KAAM,YAAaO,MAAO5C,EAAI,yBAA0B,uBACzF,CAAEk0C,QAAS,EAAGC,OAAQ,OAAQ9xC,KAAM,cAAeO,MAAO5C,EAAI,oBAAqB,uBACnF,CAAEk0C,QAAS,EAAGC,OAAQ,OAAQ9xC,KAAM,cAAeO,MAAO5C,EAAI,mBAAoB,uBAClF,CAAEk0C,QAAS,EAAGC,OAAQ,OAAQ9xC,KAAM,oBAAqBO,MAAO5C,EAAI,qBAAsB,wBAExFq0C,EAA0B,CAC5BH,QAAS,EAAGC,OAAQ,UAAW9xC,KAAM,UAAWO,MAAO5C,EAAI,UAAW,uBAEpEs0C,EAAiB,CACnB,CAACj1C,MAAOW,EAAI,OAAQ,sBAAwBrC,MAAO,GACnD,CAAC0B,MAAO,OAAQ1B,MAAO,IACvB,CAAC0B,MAAO,OAAQ1B,MAAO,IACvB,CAAC0B,MAAO,OAAQ1B,MAAO,IACvB,CAAC0B,MAAO,OAAQ1B,MAAO,IACvB,CAAC0B,MAAO,OAAQ1B,MAAO,IACvB,CAAC0B,MAAO,OAAQ1B,MAAO,IACvB,CAAC0B,MAAO,OAAQ1B,MAAO,KAGrBuZ,EAAmB,irIAEnBq9B,EA1DqE,YA2DvE,aAAc,0EACAvjC,YADA,OAEV,EAAKxQ,MAAQ,CACTg0C,YAAa,WAHP,EA3DyD,O,yTAAA,sDAkElD,MACqB9zC,KAAK/B,MAAnC+F,EADS,EACTA,WAAYwM,EADH,EACGA,cACdC,EAAqBC,mBAAmB,kBAGnB,IAAvB1M,EAAW2M,UACuB,iBAA9B,IAAOF,EAAP,cAAOA,KAA0D,OAAvBA,GAC1C/T,OAAO8E,KAAKiP,GAAoB1O,KAAI,SAACkC,GACI,kBAA1BD,EAAWC,GAClBD,EAAWC,KAAewM,EAAmBxM,GAE7CD,EAAWC,GAAawM,EAAmBxM,MAMvDuM,EAAe,CAAEG,SAAS,OAnFqC,0CAuFnD,MACgC3Q,KAAK/B,MAA7C+F,EADQ,EACRA,WAAYwM,EADJ,EACIA,cAAeyD,EADnB,EACmBA,SAE7BjQ,EAAW4C,IACb4J,EAAe,CAAEujC,MAAO,cAAgB9/B,MA3FuB,yCA+FnDpH,GAAY,MAKxBA,EAAU7I,WAHKgwC,EAFS,EAExBC,cACgBC,EAHQ,EAGxBC,eACgBC,EAJQ,EAIxBC,eAJwB,EAMKr0C,KAAK/B,MAA9B+F,EANoB,EAMpBA,WAAYiQ,EANQ,EAMRA,SACHggC,GAAkDjwC,EAA3DwvC,QAA2DxvC,EAAlDiwC,eAAeE,EAAmCnwC,EAAnCmwC,eAAgBE,EAAmBrwC,EAAnBqwC,eACxC7+B,GAAmBtX,GAAGK,YAAwCsV,EAAQ,qBAAlCA,EAAQ,gBAA5C2B,cACAZ,GAA2B1W,GAAGK,YAA0CmW,EAAU,qBAAtCA,EAAU,gBAAtDE,sBACFa,EAAcD,EAAcvB,GAC9BqgC,GAAe,EACfC,EAAUxgC,EAAO,GAAG,iBAAM,MAExBygC,EAAgBL,EAAiB,WAAa,UAIhDH,IAAeC,GACZC,IAAgBC,GAChBC,IAAgBC,IAEnBC,GAAe,EACfC,EAAUV,EAAeY,mBAAmBR,EAAeO,EAAaD,GACxEA,EAAUV,EAAeY,mBAAmBN,EAT5B,UASyDI,GACzEA,EAAUV,EAAeY,mBAAmBJ,EAT5B,UASyDE,IAGzED,IACAC,EAAUA,EAAQxyC,KAAI,SAAC2yC,GAAD,OAASA,EAAI9zC,OAAQC,SAAUC,KAAM,SACnDiB,KACJ,SAAE2yC,EAAKv5B,GAAP,QACO1F,EAAY0F,IAASvG,EAAuBa,EAAY0F,GAAM,CAAEw5B,cAAeD,EAAK9iC,MAAO,SA/HvC,uCAoItDlI,GACb,OAAOA,GACH,IAAK,UACD,OAAOpK,EAAG,UAAW,sBAEzB,IAAK,SACD,OAAOA,EAAG,SAAU,sBAExB,IAAK,SACD,OAAOA,EAAG,SAAU,yBA7IuC,+BAyS9D,aACsDU,KAAK/B,MAAxD+F,EADH,EACGA,WAAYwM,EADf,EACeA,cAAeyD,EAD9B,EAC8BA,SAAUpV,EADxC,EACwCA,UACrCi1C,EAAgB9zC,KAAKF,MAArBg0C,YAEJN,EAqBAxvC,EArBAwvC,QACAS,EAoBAjwC,EApBAiwC,cAAeE,EAoBfnwC,EApBemwC,eAAgBE,EAoB/BrwC,EApB+BqwC,eAC/Bh4B,EAmBArY,EAnBAqY,WACArQ,EAkBAhI,EAlBAgI,UAAWG,EAkBXnI,EAlBWmI,YAAaF,EAkBxBjI,EAlBwBiI,aAAc6L,EAkBtC9T,EAlBsC8T,WACtC88B,EAiBA5wC,EAjBA4wC,WAAYC,EAiBZ7wC,EAjBY6wC,aAAcC,EAiB1B9wC,EAjB0B8wC,cAAeC,EAiBzC/wC,EAjByC+wC,YACzC74B,EAgBAlY,EAhBAkY,YACAnE,EAeA/T,EAfA+T,WAAYC,EAeZhU,EAfYgU,aAAcC,EAe1BjU,EAf0BiU,cAAeC,EAezClU,EAfyCkU,YACzC88B,EAcAhxC,EAdAgxC,YAAaC,EAcbjxC,EAdaixC,cAAeC,EAc5BlxC,EAd4BkxC,eAAgBC,EAc5CnxC,EAd4CmxC,aAC5Ch3B,EAaAna,EAbAma,OACAi3B,EAYApxC,EAZAoxC,OACAC,EAWArxC,EAXAqxC,gBACAC,EAUAtxC,EAVAsxC,aACAC,EASAvxC,EATAuxC,eACAC,EAQAxxC,EARAwxC,gBACAC,GAOAzxC,EAPAyxC,oBACAC,GAMA1xC,EANA0xC,iBACAC,GAKA3xC,EALA2xC,qBACAC,GAIA5xC,EAJA4xC,iBACAC,GAGA7xC,EAHA6xC,qBACAC,GAEA9xC,EAFA8xC,WACAlgC,GACA5R,EADA4R,UAGEmgC,GAAe,CACjB,gBACAl3C,EACAsf,GAAUA,kBAAkBA,EAC5Bq1B,GAAWA,iBAAiBA,EAC5BS,GAAiBA,UAAUA,EAC3BE,GAAkBA,cAAcA,EAChCE,GAAkBA,cAAcA,IAC9Be,GAAF,UAAsBA,IACpBC,GAAF,WAAgCA,EAChCC,GAAgB,YAChBC,GAAkB,mBACpB30C,OAAQC,SAAUC,KAAM,KAE1B,IAAK0yC,EACD,OACI59B,GACI,2BAAKE,IAAKxW,EAAG,kBAAmB,sBAAuBsS,MAAM,OAAOa,IAAK+D,IAE7E,2BAAK3X,UAAU,gCACX,2BAAKA,UAAU,8BACTS,EAAI,0BAA2B,uBAErC,2BAAKT,UAAU,+BACV00C,EAAgBxxC,KAAK,SAAC0xC,EAAQzxC,GAC3B,OACI,oBAACyH,EAAD,CAASC,KAAO+pC,EAAOvxC,MAAQ3E,IAAMyE,GACjC,2BAAKnD,UAAU,uBACVoC,QAAU,kBAAMuP,EAAe,CAC3BgjC,QAASC,EAAOD,QAChBS,cAAeR,EAAOA,WAG3B,2BAAKhhC,IAAKhR,YAAYu0C,UAAY,gCAAkCvC,EAAO9xC,KAAO,OAC7EmU,IAAM29B,EAAOA,SAElB,2BAAK50C,UAAU,oCACT40C,EAAOjhC,oBAW7C,IAAMyjC,GAA2B1C,EAAgB3yC,QAAQ,SAACsN,GAAD,OAAUA,EAAKslC,UAAYA,KAC9E0C,GAAsCxC,EAA2B9yC,QAAQ,SAACsN,GAAD,OAAUA,EAAKslC,UAAYA,KAC1G0C,GAAoC5wC,KAAMquC,GAC1C,IAAMnI,GAA0B,CAC5B,CACI7pC,KACI,2BAAKgQ,MAAM,6BAA6BC,MAAM,KAAKC,OAAO,KAAKC,QAAQ,aACnE,4BAAMxV,EAAE,8CACR,4BAAMA,EAAE,gBAAgBsT,KAAK,UAGrC1N,MAAO5C,EAAI,qBAAsB,sBACjCusC,SAAqB,QAAX1tB,EACVld,QAAS,kBAAMuP,EAAe,CAAE2N,OAAQ,UAE5C,CACIxc,KACI,2BAAKgQ,MAAM,6BAA6BC,MAAM,KAAKC,OAAO,KAAKC,QAAQ,aACnE,4BAAMxV,EAAE,yEACR,4BAAMA,EAAE,gBAAgBsT,KAAK,UAGrC1N,MAAO5C,EAAI,wBAAyB,sBACpCusC,SAAqB,WAAX1tB,EACVld,QAAS,kBAAMuP,EAAe,CAAE2N,OAAQ,aAE5C,CACIxc,KACI,2BAAKgQ,MAAM,6BAA6BC,MAAM,KAAKC,OAAO,KAAKC,QAAQ,aACnE,4BAAMxV,EAAE,iDACR,4BAAMA,EAAE,gBAAgBsT,KAAK,UAGrC1N,MAAO5C,EAAI,wBAAyB,sBACpCusC,SAAqB,WAAX1tB,EACVld,QAAS,kBAAMuP,EAAe,CAAE2N,OAAQ,aAE5C,CACIxc,KACI,2BAAKgQ,MAAM,6BAA6BC,MAAM,KAAKC,OAAO,KAAKC,QAAQ,aACnE,+BAAS9B,OAAO,wCAChB,+BAASA,OAAO,oCAGxB9N,MAAO5C,EAAI,4BAA6B,sBACxCusC,SAAqB,SAAX1tB,EACVld,QAAS,kBAAMuP,EAAe,CAAE2N,OAAQ,YAG1C1D,GAA0B,CAC5B,CAAC9b,MAAM,MAAOgD,KAAM,iBACpB,CAAChD,MAAM,QAASgD,KAAM,oBACtB,CAAChD,MAAM,SAAUgD,KAAM,mBACvB,CAAChD,MAAM,OAAQgD,KAAM,oBAGrBitC,GAAe,GAInB,MAHoB,WAAhBkF,IAA0BlF,GAAe,KACzB,WAAhBkF,IAA0BlF,GAAe,KAGzCh5B,GACI,2BAAKE,IAAKxW,EAAG,mBAAoB,sBAAuBsS,MAAM,OAAOa,IAAK+D,IAE9E,oBAAC9W,EAAD,KACI,oBAACuV,EAAD,KACI,oBAACC,EAAD,CAAcwQ,SAAW8lB,MAE7B,oBAACp8B,EAAD,KACI,oBAACI,EAAD,CAAWtN,MAAQ5C,EAAI,mBAAoB,uBACvC,oBAACkQ,EAAD,CAAWtN,MAAQ5C,EAAI,sBAAuB,uBAC1C,2BAAKT,UAAU,kCACV,CAAC,UAAW,SAAU,UAAUkD,KAAK,SAAC8sC,EAAQ7sC,GAC3C,IAAM8sC,EAAc,CAChB,gCACAgF,IAAgBjF,GAAU,eAC5BjuC,OAAQC,SAAUC,KAAM,KAE1B,OACI,2BAAKjC,UAAYiwC,EACZvxC,IAAMyE,EACNf,QAAU,kBAAM,EAAKhB,SAAU,CAAE6zC,YAAajF,MAE9C,EAAKE,iBAAiBF,QAKvC,2BAAKhwC,UAAU,4CACVo3C,GAAyBl0C,KAAK,SAAC0xC,EAAQzxC,GACpC,IAAMm0C,EAAgB,CAClB,uBACgB,YAAhBrC,GAA6BL,EAAOA,SAAWQ,GAAiB,cAChD,WAAhBH,GAA4BL,EAAOA,SAAWU,GAAkB,cAChD,WAAhBL,GAA4BL,EAAOA,SAAWY,GAAkB,eAClEzzC,OAAQC,SAAUC,KAAM,KAE1B,OACI,oBAAC2I,EAAD,CAASC,KAAO+pC,EAAOvxC,MAAQ3E,IAAMyE,GACjC,2BAAKnD,UAAYs3C,EACZl1C,QAAU,WACNuP,OACK,gBAAkBo+B,GAAe6E,EAAOA,SAE7C,EAAKxzC,SAAU,CAAEm2C,OAAQxoC,KAAKwoC,aAGnC,2BAAK3jC,IAAKhR,YAAYu0C,UAAY,gCAAkCvC,EAAO9xC,KAAO,OAC7EmU,IAAM29B,EAAOA,cAMjB,YAAhBK,GAA6BoC,GAAoCn0C,KAAK,SAAC0xC,EAAQzxC,GAC5E,IAAMm0C,EAAgB,CAClB,uBACgB,WAAhBrC,GAA4BL,EAAOA,SAAWU,GAAkB,cAChD,WAAhBL,GAA4BL,EAAOA,SAAWY,GAAkB,eAClEzzC,OAAQC,SAAUC,KAAM,KAE1B,OACI,oBAAC2I,EAAD,CAASC,KAAO+pC,EAAOvxC,MAAQ3E,IAAMyE,GACjC,2BAAKnD,UAAYs3C,EACZl1C,QAAU,WACNuP,OACK,gBAAkBo+B,GAAe6E,EAAOA,SAE7C,EAAKxzC,SAAU,CAAEm2C,OAAQxoC,KAAKwoC,aAGnC,2BAAK3jC,IAAKhR,YAAYu0C,UAAY,gCAAkCvC,EAAO9xC,KAAO,OAC7EmU,IAAM29B,EAAOA,eAOrB,YAAhBK,GACG,oBAACn0C,EAAD,CACIhB,MAAQW,EAAI,wBAAyB,sBACrCrC,MAAQm4C,EACRj0C,QAAUyyC,EACVh1C,SAAW,SAAC3B,GAAD,OAAWuT,EAAe,CAAE4kC,OAAQjtC,SAASlL,QAG/C,WAAhB62C,GAA+C,YAAnBO,GACzB,oBAAC30C,EAAD,KACI,oBAACC,EAAD,CACIhB,MAAQW,EAAI,gCAAiC,sBAC7CrC,MAAQo4C,EACRl0C,QAAUyyC,EACVh1C,SAAW,SAAC3B,GAAD,OAAWuT,EAAe,CAAE6kC,gBAAiBltC,SAASlL,QAErE,oBAACwS,EAAD,CACI9Q,MAAQW,EAAI,sBAAuB,sBACnC2L,QAAUqqC,EACV12C,SAAW,kBAAM4R,EAAe,CAAE8kC,cAAeA,QAI7D,oBAAC9lC,EAAD,CAAWtN,MAAwB,YAAhB4xC,EAA4BD,EAAewC,UAAUvC,GAAex0C,EAAG,WAAY,sBAAwBA,EAAG,UAAW,sBACjIyS,aAAa,GAEpB,2BAAKlT,UAAU,wBACX,gCAAQS,EAAI,OAAQ,uBACpB,2BAAKT,UAAU,qBAAqBtB,IAAI,QAClC,CAAC,KAAM,KAAM,KAAM,KAAKwE,KAAK,SAACia,EAAMb,GAAP,OAC3B,4BAAMtc,UAAA,eAAyBqd,IAAgBF,EAAO,WAAa,IAAMze,IAAK4d,EACxEla,QAAU,kBAAMuP,EAAe,CAAE0L,YAAaF,MAE/CA,QAKhBvB,GAAwB1Y,KAAI,SAACoa,EAAKhB,GAAN,OACzB,oBAACrV,EAAD,CACIvI,IAAM4d,EACNrB,WAAaqC,EAAIxa,KACjB1E,MAAQ+G,EAAW,UAAYmY,EAAIxd,MAAQiwC,KAAiB,EAC5DtmC,IAAM,EACNC,IAAM,IACN3J,SAAW,SAAC3B,GAAD,OAAWuT,EAAcA,EAAdA,GAAkB,UAAY2L,EAAIxd,MAAQiwC,GAAe3xC,WAI3F,oBAACuS,EAAD,CAAWtN,MAAwB,YAAhB4xC,EAA4BD,EAAewC,UAAUvC,GAAex0C,EAAG,UAAW,sBAAwBA,EAAG,SAAU,sBAC/HyS,aAAa,GAEpB,2BAAKlT,UAAU,wBACX,gCAAQS,EAAI,OAAQ,uBACpB,2BAAKT,UAAU,qBAAqBtB,IAAI,QAClC,CAAC,KAAM,KAAM,KAAM,KAAKwE,KAAK,SAACia,EAAMb,GAAP,OAC3B,4BAAMtc,UAAA,eAAyBwd,IAAeL,EAAO,WAAa,IAAMze,IAAK4d,EACvEla,QAAU,kBAAMuP,EAAe,CAAE6L,WAAYL,MAE9CA,QAKhBvB,GAAwB1Y,KAAI,SAACoa,EAAKhB,GAAN,OACzB,oBAACrV,EAAD,CACIvI,IAAM4d,EACNrB,WAAaqC,EAAIxa,KACjB1E,MAAQ+G,EAAW,SAAWmY,EAAIxd,MAAQiwC,KAAiB,EAC3DtmC,IAAM,EACNC,IAAM,IACN3J,SAAW,SAAC3B,GAAD,OAAWuT,EAAcA,EAAdA,GAAkB,SAAW2L,EAAIxd,MAAQiwC,GAAe3xC,YAK9F,oBAACuS,EAAD,CAAWtN,MAAQ5C,EAAI,eAAgB,sBAAyByS,aAAc,GAC1E,oBAACtC,EAAD,CACI9Q,MAAQW,EAAI,kBAAmB,sBAC/BoS,KAAOpS,EAAI,oFAAqF,sBAChG2L,QAAUsqC,EACV32C,SAAW,kBAAM4R,EAAe,CAAE+kC,gBAAiBA,OAEvD,oBAAC51C,EAAD,CACIhB,MAAQW,EAAI,cAAe,sBAC3BrC,MAAQ64C,GACR30C,QAAU,CACN,CAAExC,MAAO,MAAO1B,MAAO,OACvB,CAAE0B,MAAO,SAAU1B,MAAO,UAC1B,CAAE0B,MAAO,UAAW1B,MAAO,WAC3B,CAAE0B,MAAO,OAAQ1B,MAAO,QACxB,CAAE0B,MAAO,UAAW1B,MAAO,WAC3B,CAAE0B,MAAO,QAAS1B,MAAO,SACzB,CAAE0B,MAAO,SAAU1B,MAAO,WAE9B2B,SAAW,SAAC3B,GAAD,OAAWuT,EAAe,CAAEslC,WAAY74C,OAEvD,oBAAC6I,EAAD,CACInH,MAAQ,CACJW,EAAI,oBAAqB,sBACzB,2BAAKT,UAAU,qBAAqBtB,IAAI,QAClC,CAAC,KAAM,KAAM,KAAKwE,KAAK,SAACia,EAAMb,GAAP,OACrB,4BAAMtc,UAAA,eAAyB42C,KAAwBz5B,EAAO,WAAa,IAAMze,IAAK4d,EAChFla,QAAU,kBAAMuP,EAAe,CAAEilC,oBAAqBz5B,MAEvDA,QAKjB/e,MAAQu4C,EACRltC,IAAM,EACNC,IAA8B,OAAxBktC,GAA+B,IAAO,IAC5C72C,SAAW,SAAC3B,GAAD,OAAWuT,EAAe,CAAEglC,gBAAiBv4C,OAE5D,oBAAC6I,EAAD,CACInH,MAAQ,CACJW,EAAI,qBAAsB,sBAC1B,2BAAKT,UAAU,qBAAqBtB,IAAI,QAClC,CAAC,KAAM,KAAM,MAAMwE,KAAK,SAACia,EAAMb,GAAP,OACtB,4BAAMtc,UAAA,eAAyB82C,KAAyB35B,EAAO,WAAa,IAAMze,IAAK4d,EACjFla,QAAU,kBAAMuP,EAAe,CAAEmlC,qBAAsB35B,MAExDA,QAKjB/e,MAAQy4C,GACRptC,IAAM,EACNC,IAA+B,OAAzBotC,GAAgC,IAAO,IAC7C/2C,SAAW,SAAC3B,GAAD,OAAWuT,EAAe,CAAEklC,iBAAkBz4C,OAE7D,oBAAC6I,EAAD,CACInH,MAAQ,CACJW,EAAI,qBAAsB,sBAC1B,2BAAKT,UAAU,qBAAqBtB,IAAI,QAClC,CAAC,KAAM,KAAM,MAAMwE,KAAK,SAACia,EAAMb,GAAP,OACtB,4BAAMtc,UAAA,eAAyBg3C,KAAyB75B,EAAO,WAAa,IAAMze,IAAK4d,EACjFla,QAAU,kBAAMuP,EAAe,CAAEqlC,qBAAsB75B,MAExDA,QAKjB/e,MAAQ24C,GACRttC,IAAM,EACNC,IAA+B,OAAzBstC,GAAgC,IAAO,IAC7Cj3C,SAAW,SAAC3B,GAAD,OAAWuT,EAAe,CAAEolC,iBAAkB34C,UAKzE,4BAAM4B,UAAU,yBAAhB,KACA,2BAAKA,UAAU,yBACX,2BAAKA,UAAYk3C,GACZ30C,MAAQ,CACJipC,SAAYmL,EAAF,GAAuBA,EAAkBC,QAAwBjnC,EAC3E8nC,UAAaZ,GAAF,GAAwBA,GAAmBC,QAAyBnnC,EAC/EnN,UAAau0C,GAAF,GAAwBA,GAAmBC,QAAyBrnC,IAGpF,oBAACe,EAAD,CACIyG,SAAWjC,EAAO5L,SAASqrC,IAAU,iBAAM,CAAE,mBAC7Cv9B,aAAa,MACbC,cAAgB,CAAE,gBAClBkgC,OAASp2C,KAAKF,MAAMs2C,WAIhC,2CACeniC,EADf,sFAEsBjI,EAAYqQ,GAFlC,iDAGwBlQ,EAAckQ,GAHtC,kDAIyBpQ,EAAeoQ,GAJxC,gDAKuBvE,EAAauE,GALpC,gDAMuBtE,EAAamE,GANpC,kDAOyBlE,EAAekE,GAPxC,mDAQ0BjE,EAAgBiE,GAR1C,iDASwBhE,EAAcgE,GATtC,oIAYiBjI,EAZjB,0FAa0B2gC,EAAav4B,GAbvC,qDAc4Bw4B,EAAex4B,GAd3C,sDAe6By4B,EAAgBz4B,GAf7C,oDAgB2B04B,EAAc14B,GAhBzC,oDAiB2B24B,EAAc94B,GAjBzC,sDAkB6B+4B,EAAgB/4B,GAlB7C,uDAmB8Bg5B,EAAiBh5B,GAnB/C,qDAoB4Bi5B,EAAej5B,GApB3C,mEA1qB2D,0CAkJ7Cu3B,EAAQ8C,EAAYC,GAC1C,OAAQ/C,GACJ,IAAK,QACD,IAAM,IAAIz3C,EAAI,EAAGA,EAAI,EAAGA,IACpBw6C,EAASx6C,GAAGsJ,KAAK,gBAAkBixC,GAEvC,MACJ,IAAK,WACD,IAAM,IAAIv6C,EAAI,EAAGA,EAAI,EAAGA,IACpBw6C,EAASx6C,GAAGsJ,KAAK,qBAAuBixC,GAE5C,MACJ,IAAK,cACD,IAAM,IAAIv6C,EAAI,EAAGA,EAAI,EAAGA,IACpBw6C,EAASx6C,GAAGsJ,KAAK,uBAAyBixC,GAE9C,MACJ,IAAK,OACD,IAAM,IAAIv6C,EAAI,EAAGA,EAAI,EAAGA,IACpBw6C,EAASx6C,GAAGsJ,KAAK,qBAAuBixC,GAE5C,MACJ,IAAK,MACD,IAAM,IAAIv6C,EAAI,EAAGA,EAAI,EAAGA,IACpBw6C,EAASx6C,GAAGsJ,KAAK,aAAeixC,GAEpC,MACJ,IAAK,QACDC,EAAS,GAAGlxC,KAAK,sBAAwBixC,GACzCC,EAAS,GAAGlxC,KAAK,qBAAuBixC,GACxC,MACJ,IAAK,QACDC,EAAS,GAAGlxC,KAAK,qBAAuBixC,GACxCC,EAAS,GAAGlxC,KAAK,sBAAwBixC,GACzC,MACJ,IAAK,QACDC,EAAS,GAAGlxC,KAAK,0BAA4BixC,GAC7CC,EAAS,GAAGlxC,KAAK,uBAAyBixC,GAC1C,MACJ,IAAK,QACDC,EAAS,GAAGlxC,KAAK,uBAAyBixC,GAC1CC,EAAS,GAAGlxC,KAAK,0BAA4BixC,GAC7C,MACJ,IAAK,QACDC,EAAS,GAAGlxC,KAAK,uBAAyBixC,GAC1CC,EAAS,GAAGlxC,KAAK,qBAAuBixC,GACxC,MACJ,IAAK,QACDC,EAAS,GAAGlxC,KAAK,qBAAuBixC,GACxCC,EAAS,GAAGlxC,KAAK,uBAAyBixC,GAC1C,MACJ,IAAK,WACDC,EAAS,GAAGlxC,KAAK,gBAAkBixC,GACnCC,EAAS,GAAGlxC,KAAK,uBAAyBixC,GAC1CC,EAAS,GAAGlxC,KAAK,uBAAyBixC,GAC1C,MACJ,IAAK,WACDC,EAAS,GAAGlxC,KAAK,uBAAyBixC,GAC1CC,EAAS,GAAGlxC,KAAK,uBAAyBixC,GAC1CC,EAAS,GAAGlxC,KAAK,gBAAkBixC,GACnC,MACJ,IAAK,WACDC,EAAS,GAAGlxC,KAAK,uBAAyBixC,GAC1CC,EAAS,GAAGlxC,KAAK,gBAAkBixC,GACnCC,EAAS,GAAGlxC,KAAK,uBAAyBixC,GAC1C,MACJ,IAAK,WACDC,EAAS,GAAGlxC,KAAK,qBAAuBixC,GACxCC,EAAS,GAAGlxC,KAAK,wBAA0BixC,GAC3CC,EAAS,GAAGlxC,KAAK,qBAAuBixC,GACxC,MACJ,IAAK,WACDC,EAAS,GAAGlxC,KAAK,wBAA0BixC,GAC3CC,EAAS,GAAGlxC,KAAK,qBAAuBixC,GACxCC,EAAS,GAAGlxC,KAAK,qBAAuBixC,GACxC,MACJ,IAAK,WACDC,EAAS,GAAGlxC,KAAK,qBAAuBixC,GACxCC,EAAS,GAAGlxC,KAAK,qBAAuBixC,GACxCC,EAAS,GAAGlxC,KAAK,wBAA0BixC,GAC3C,MACJ,IAAK,WACDC,EAAS,GAAGlxC,KAAK,aAAeixC,GAChCC,EAAS,GAAGlxC,KAAK,aAAeixC,GAChCC,EAAS,GAAGlxC,KAAK,aAAeixC,GAChC,MACJ,IAAK,UACDC,EAAS,GAAGlxC,KAAK,gBAAkBixC,GACnCC,EAAS,GAAGlxC,KAAK,gBAAkBixC,GACnCC,EAAS,GAAGlxC,KAAK,gBAAkBixC,GACnC,MACJ,IAAK,UACDC,EAAS,GAAGlxC,KAAK,gBAAkBixC,GACnCC,EAAS,GAAGlxC,KAAK,gBAAkBixC,GACnCC,EAAS,GAAGlxC,KAAK,gBAAkBixC,GACnC,MACJ,IAAK,cACDC,EAAS,GAAGlxC,KAAK,gBAAkBixC,GACnCC,EAAS,GAAGlxC,KAAK,aAAeixC,GAChCC,EAAS,GAAGlxC,KAAK,aAAeixC,GAChCC,EAAS,GAAGlxC,KAAK,aAAeixC,GAChC,MACJ,IAAK,cACDC,EAAS,GAAGlxC,KAAK,aAAeixC,GAChCC,EAAS,GAAGlxC,KAAK,aAAeixC,GAChCC,EAAS,GAAGlxC,KAAK,aAAeixC,GAChCC,EAAS,GAAGlxC,KAAK,gBAAkBixC,GACnC,MACJ,IAAK,cACDC,EAAS,GAAGlxC,KAAK,sBAAwBixC,GACzCC,EAAS,GAAGlxC,KAAK,qBAAuBixC,GACxCC,EAAS,GAAGlxC,KAAK,qBAAuBixC,GACxCC,EAAS,GAAGlxC,KAAK,qBAAuBixC,GACxC,MACJ,IAAK,cACDC,EAAS,GAAGlxC,KAAK,qBAAuBixC,GACxCC,EAAS,GAAGlxC,KAAK,qBAAuBixC,GACxCC,EAAS,GAAGlxC,KAAK,qBAAuBixC,GACxCC,EAAS,GAAGlxC,KAAK,sBAAwBixC,GACzC,MACJ,IAAK,OACD,IAAM,IAAIv6C,EAAI,EAAGA,EAAI,EAAGA,IACpBw6C,EAASx6C,GAAGsJ,KAAK,gBAAkBixC,GAEvC,MACJ,IAAK,OACD,IAAM,IAAIv6C,EAAI,EAAGA,EAAI,EAAGA,IACpBw6C,EAASx6C,GAAGsJ,KAAK,gBAAkBixC,GAEvC,MACJ,IAAK,OACD,IAAM,IAAIv6C,EAAI,EAAGA,EAAI,EAAGA,IACpBw6C,EAASx6C,GAAGsJ,KAAK,qBAAuBixC,GAE5C,MACJ,IAAK,UACD,IAAM,IAAIv6C,EAAI,EAAGA,EAAI,EAAGA,IACpBw6C,EAASx6C,GAAGsJ,KAAK,gBAAkBixC,GAO/C,OAAOC,IAlS4D,gCAqStD9zC,GACb,OAAOA,EAAO24B,OAAO,GAAGp4B,cAAgBP,EAAOu4B,MAAM,OAtSc,GA0D9Cx7B,GA6oBvB0W,EAAa,CACfq9B,QAAS,CACLvuC,KAAM,UAEVgvC,cAAe,CACXhvC,KAAM,UAEVkvC,eAAgB,CACZlvC,KAAM,UAEVovC,eAAgB,CACZpvC,KAAM,SACNsN,QAAS,WAEbvG,UAAW,CACP/G,KAAM,UAEVwxC,WAAY,CACRxxC,KAAM,UAEV2vC,WAAY,CACR3vC,KAAM,UAEVkH,YAAa,CACTlH,KAAM,UAEVyxC,aAAc,CACVzxC,KAAM,UAEV4vC,aAAc,CACV5vC,KAAM,UAEVgH,aAAc,CACVhH,KAAM,UAEV0xC,cAAe,CACX1xC,KAAM,UAEV6vC,cAAe,CACX7vC,KAAM,UAEV6S,WAAY,CACR7S,KAAM,UAEV2xC,YAAa,CACT3xC,KAAM,UAEV8vC,YAAa,CACT9vC,KAAM,UAEVoX,WAAY,CACRpX,KAAM,SACNsN,QAAS,MAEbwF,WAAY,CACR9S,KAAM,UAEV4xC,YAAa,CACT5xC,KAAM,UAEV+vC,YAAa,CACT/vC,KAAM,UAEV+S,aAAc,CACV/S,KAAM,UAEV6xC,cAAe,CACX7xC,KAAM,UAEVgwC,cAAe,CACXhwC,KAAM,UAEVgT,cAAe,CACXhT,KAAM,UAEV8xC,eAAgB,CACZ9xC,KAAM,UAEViwC,eAAgB,CACZjwC,KAAM,UAEViT,YAAa,CACTjT,KAAM,UAEV+xC,aAAc,CACV/xC,KAAM,UAEVkwC,aAAc,CACVlwC,KAAM,UAEViX,YAAa,CACTjX,KAAM,SACNsN,QAAS,MAEb6iC,OAAQ,CACJnwC,KAAM,SACNsN,QAAS,GAEb8iC,gBAAiB,CACbpwC,KAAM,SACNsN,QAAS,IAEb+iC,aAAc,CACVrwC,KAAM,UACNsN,SAAS,GAEb4L,OAAQ,CACJlZ,KAAM,UAEVswC,eAAgB,CACZtwC,KAAM,UACNsN,SAAS,GAEbijC,gBAAiB,CACbvwC,KAAM,UAEVwwC,oBAAqB,CACjBxwC,KAAM,SACNsN,QAAS,MAEbmjC,iBAAkB,CACdzwC,KAAM,UAEV0wC,qBAAsB,CAClB1wC,KAAM,SACNsN,QAAS,MAEbqjC,iBAAkB,CACd3wC,KAAM,UAEV4wC,qBAAsB,CAClB5wC,KAAM,SACNsN,QAAS,MAEbujC,WAAY,CACR7wC,KAAM,SACNsN,QAAS,OAEbwhC,MAAO,CACH9uC,KAAM,UAEV0L,QAAS,CACL1L,KAAM,UACNsN,SAAS,GAEbqD,UAAW,CACP3Q,KAAM,UACNsN,SAAS,IAIjBrD,EAAmB,gBAAiB,CAChChN,MAAO5C,EAAI,yBAA0B,sBACrCkT,YAAalT,EAAI,6EAA8E,sBAC/FqC,KAAM,CACF8Q,IAAK,SACLC,WAAmC,oBAAhBjR,YAA8BA,YAAY+P,WAAQhD,GAEzEmE,SAAU,iBACVC,SAAU,CAAEtT,EAAI,UAAW,sBAAwBA,EAAI,kBAAmB,sBAAwBA,EAAI,MAAO,sBAAwBA,EAAI,SAAU,uBACnJuT,SAAU,CACN2E,MAAO,CAAE,OAAQ,QACjB6J,MAAM,GAEVrd,WAAYmS,EACZC,QAAS,CACLpS,WAAY,CACR4R,WAAW,IAGnB7C,KAAM8gC,EACN7gC,KAAM,YAA4B,IAAfhP,EAAe,EAAfA,WAEXwvC,EAeAxvC,EAfAwvC,QACAS,EAcAjwC,EAdAiwC,cAAeE,EAcfnwC,EAdemwC,eAAgBE,EAc/BrwC,EAd+BqwC,eAC/Bl2B,EAaAna,EAbAma,OACAi3B,EAYApxC,EAZAoxC,OACAC,EAWArxC,EAXAqxC,gBACAC,EAUAtxC,EAVAsxC,aACAC,EASAvxC,EATAuxC,eACAC,EAQAxxC,EARAwxC,gBACAC,EAOAzxC,EAPAyxC,oBACAC,EAMA1xC,EANA0xC,iBACAC,EAKA3xC,EALA2xC,qBACAC,EAIA5xC,EAJA4xC,iBACAC,EAGA7xC,EAHA6xC,qBACAC,EAEA9xC,EAFA8xC,WACA/B,EACA/vC,EADA+vC,MAEEkD,EAAMnB,EAENC,EAAe,CACjB,gBACA,oBACA,kBACA53B,GAAUA,kBAAkBA,EAC5Bq1B,GAAWA,iBAAiBA,EAC5BS,GAAiBA,UAAUA,EAC3BE,GAAkBA,cAAcA,EAChCE,GAAkBA,cAAcA,IAC9Be,GAAF,UAAsBA,IACpBC,GAAF,WAAgCA,EAChCC,GAAgB,YAChBC,GAAkB,mBACpB30C,OAAQC,SAAUC,KAAM,KAE1B,OACI,oBAACm2C,EAAD,CAAKp4C,UAAU,wBAAwB+H,GAAKmtC,GACxC,2BAAKl1C,UAAU,2BACX,2BAAKA,UAAYk3C,EACZ30C,MAAQ,CACJipC,SAAYmL,EAAF,GAAuBA,EAAkBC,OAAwBjnC,EAC3E8nC,UAAaZ,EAAF,GAAwBA,EAAmBC,OAAyBnnC,EAC/EnN,UAAau0C,EAAF,GAAwBA,EAAmBC,OAAyBrnC,IAGpF,oBAACe,EAAY2D,QAAb,UAMpBC,WAAY,CACR,CACInP,WAAYmS,EACZnD,KAAM,YAA4B,IAAfhP,EAAe,EAAfA,WAEXwvC,EAeAxvC,EAfAwvC,QACAS,EAcAjwC,EAdAiwC,cAAeE,EAcfnwC,EAdemwC,eAAgBE,EAc/BrwC,EAd+BqwC,eAC/Bl2B,EAaAna,EAbAma,OACAi3B,EAYApxC,EAZAoxC,OACAC,EAWArxC,EAXAqxC,gBACAC,EAUAtxC,EAVAsxC,aACAC,EASAvxC,EATAuxC,eACAC,EAQAxxC,EARAwxC,gBACAC,EAOAzxC,EAPAyxC,oBACAC,EAMA1xC,EANA0xC,iBACAC,EAKA3xC,EALA2xC,qBACAC,EAIA5xC,EAJA4xC,iBACAC,EAGA7xC,EAHA6xC,qBACAC,EAEA9xC,EAFA8xC,WACA/B,EACA/vC,EADA+vC,MAEEkD,EAAMnB,EAENC,EAAe,CACjB,gBACA,kBACA53B,GAAUA,kBAAkBA,EAC5Bq1B,GAAWA,iBAAiBA,EAC5BS,GAAiBA,UAAUA,EAC3BE,GAAkBA,cAAcA,EAChCE,GAAkBA,cAAcA,IAC9Be,GAAF,UAAsBA,IACpBC,GAAF,WAAgCA,EAChCC,GAAgB,YAChBC,GAAkB,mBACpB30C,OAAQC,SAAUC,KAAM,KAE1B,OACI,oBAACm2C,EAAD,CAAKp4C,UAAU,yBACX,2BAAKA,UAAYk3C,EAAenvC,GAAKmtC,EAChC3yC,MAAQ,CACJipC,SAAYmL,EAAF,GAAuBA,EAAkBC,OAAwBjnC,EAC3E8nC,UAAaZ,EAAF,GAAwBA,EAAmBC,OAAyBnnC,EAC/EnN,UAAau0C,EAAF,GAAwBA,EAAmBC,OAAyBrnC,IAGpF,oBAACe,EAAY2D,QAAb,UAMpB,CACIlP,WAAYmS,EACZnD,KAAM,YAA4B,IAAfhP,EAAe,EAAfA,WAEXwvC,EAaAxvC,EAbAwvC,QACAS,EAYAjwC,EAZAiwC,cAAeE,EAYfnwC,EAZemwC,eAAgBE,EAY/BrwC,EAZ+BqwC,eAC/Bl2B,EAWAna,EAXAma,OACAi3B,EAUApxC,EAVAoxC,OACAC,EASArxC,EATAqxC,gBACAC,EAQAtxC,EARAsxC,aACAC,EAOAvxC,EAPAuxC,eACAC,EAMAxxC,EANAwxC,gBACAC,EAKAzxC,EALAyxC,oBACAC,EAIA1xC,EAJA0xC,iBACAC,EAGA3xC,EAHA2xC,qBACAG,EAEA9xC,EAFA8xC,WACA/B,EACA/vC,EADA+vC,MAEEkD,EAAMnB,EAENC,EAAe,CACjB,gBACA,oBACA53B,GAAUA,kBAAkBA,EAC5Bq1B,GAAWA,iBAAiBA,EAC5BS,GAAiBA,UAAUA,EAC3BE,GAAkBA,cAAcA,EAChCE,GAAkBA,cAAcA,IAC9Be,GAAF,UAAsBA,IACpBC,GAAF,WAAgCA,EAChCC,GAAgB,YAChBC,GAAkB,mBACpB30C,OAAQC,SAAUC,KAAM,KAE1B,OACI,oBAACm2C,EAAD,CAAKp4C,UAAU,yBACX,2BAAKA,UAAYk3C,EAAenvC,GAAKmtC,EAChC3yC,MAAQ,CACJipC,SAAYmL,EAAF,GAAuBA,EAAkBC,OAAwBjnC,EAC3E8nC,UAAaZ,EAAF,GAAwBA,EAAmBC,OAAyBnnC,IAGpF,oBAACe,EAAY2D,QAAb,aAngChC,CA2gCIhV,GAAGqB,KAAMrB,GAAGoV,OAAQpV,GAAGsB,QAAStB,GAAGK,YAAaL,GAAGC,WAAY6H,S,41BC5gCnE,SAAY6I,EAAQC,EAAUC,EAAWC,EAAeC,GACpDD,EAAgB9Q,GAAGK,aAAeL,GAAGM,OAD8B,IAE3Dc,EAAOuP,EAAPvP,GACAG,EAAwBsP,EAAxBtP,UAAWC,EAAaqP,EAAbrP,SACXwP,EAAsBJ,EAAtBI,kBAJ2D,EAKcF,EAAzEI,EAL2D,EAK3DA,kBAAmBE,EALwC,EAKxCA,mBAAoBkL,EALoB,EAKpBA,iBAAkBjL,EALE,EAKFA,YACzDC,EAAwDP,EAAxDO,UAAW1J,EAA6CmJ,EAA7CnJ,aAAczH,EAA+B4Q,EAA/B5Q,YAAasB,EAAkBsP,EAAlBtP,cACtCkU,EAAW3V,GAAGkH,KAAdyO,OAEFqjC,EACF,2BAAKvlC,MAAM,6BAA6BC,MAAM,KAAKC,OAAO,KAAKC,QAAQ,aACnE,4BAAMxV,EAAE,qDACR,4BAAMA,EAAE,gBAAgBsT,KAAK,UAG/B0H,EAAmB,CACrB,CAAE3Y,MAAOW,EAAI,OAAQ,sBAAwBrC,MAAO,QACpD,CAAE0B,MAAOW,EAAI,QAAS,sBAAwBrC,MAAO,SACrD,CAAE0B,MAAOW,EAAI,SAAU,sBAAwBrC,MAAO,UACtD,CAAE0B,MAAOW,EAAI,SAAU,sBAAwBrC,MAAO,UACtD,CAAE0B,MAAOW,EAAI,SAAU,sBAAwBrC,MAAO,UACtD,CAAE0B,MAAOW,EAAI,SAAU,sBAAwBrC,MAAO,UACtD,CAAE0B,MAAOW,EAAI,QAAS,sBAAwBrC,MAAO,SACrD,CAAE0B,MAAOW,EAAI,QAAS,sBAAwBrC,MAAO,SACrD,CAAE0B,MAAOW,EAAI,SAAU,sBAAwBrC,MAAO,WAEpDwd,EAA0B,CAC5B,CAAC9b,MAAM,MAAOgD,KAAM,iBACpB,CAAChD,MAAM,QAASgD,KAAM,oBACtB,CAAChD,MAAM,SAAUgD,KAAM,mBACvB,CAAChD,MAAM,OAAQgD,KAAM,oBAGnBw1C,EAjC6D,YAkC/D,aAAc,0EACA7mC,YADA,OAEV,EAAKxQ,MAAQ,CACTg0C,YAAa,WAHP,EAlCiD,O,yTAAA,sDAyC1C,MACqB9zC,KAAK/B,MAAnC+F,EADS,EACTA,WAAYwM,EADH,EACGA,cACdC,EAAqBC,mBAAmB,iBAGnB,IAAvB1M,EAAW2M,UACuB,iBAA9B,IAAOF,EAAP,cAAOA,KAA0D,OAAvBA,GAC1C/T,OAAO8E,KAAKiP,GAAoB1O,KAAI,SAACkC,GACI,kBAA1BD,EAAWC,GAClBD,EAAWC,KAAewM,EAAmBxM,GAE7CD,EAAWC,GAAawM,EAAmBxM,MAMvDuM,EAAe,CAAEG,SAAS,OA1D6B,0CA8D3C,MACgC3Q,KAAK/B,MAA7C+F,EADQ,EACRA,WAAYwM,EADJ,EACIA,cAAeyD,EADnB,EACmBA,SAE7BjQ,EAAW4C,IACb4J,EAAe,CAAEujC,MAAO,aAAe9/B,MAlEgB,+BA0EtD,WACG6/B,EAAgB9zC,KAAKF,MAArBg0C,YADH,EAEsD9zC,KAAK/B,MAAxD+F,EAFH,EAEGA,WAAYwM,EAFf,EAEeA,cAAeyD,EAF9B,EAE8BA,SAAUpV,EAFxC,EAEwCA,UAEzC+S,EAOA5N,EAPA4N,MACAP,EAMArN,EANAqN,YAAaF,EAMbnN,EANamN,YAAaC,EAM1BpN,EAN0BoN,YAAaE,EAMvCtN,EANuCsN,aACvCgL,EAKAtY,EALAsY,UAAW86B,EAKXpzC,EALWozC,WACXprC,EAIAhI,EAJAgI,UAAWG,EAIXnI,EAJWmI,YAAaF,EAIxBjI,EAJwBiI,aAAc6L,EAItC9T,EAJsC8T,WACtC88B,EAGA5wC,EAHA4wC,WAAYC,EAGZ7wC,EAHY6wC,aAAcC,EAG1B9wC,EAH0B8wC,cAAeC,EAGzC/wC,EAHyC+wC,YACzCh9B,EAEA/T,EAFA+T,WAAYC,EAEZhU,EAFYgU,aAAcC,EAE1BjU,EAF0BiU,cAAeC,EAEzClU,EAFyCkU,YACzC88B,EACAhxC,EADAgxC,YAAaC,EACbjxC,EADaixC,cAAeC,EAC5BlxC,EAD4BkxC,eAAgBC,EAC5CnxC,EAD4CmxC,aAV3C,EAYgEj3C,GAAGK,YAAwCsV,EAAQ,qBAAlCA,EAAQ,eAAtF2B,EAZH,EAYGA,cAAetB,EAZlB,EAYkBA,qBAAsBE,EAZxC,EAYwCA,mBACvCijC,EAAiB7hC,EAAevB,GAAWzQ,OAAS,EAEpD8zC,EAAkB9hC,EADJtB,EAAsBD,IACSrT,QAAQ,SAAAkxC,GAAA,OAAWA,IAAY79B,KAC9EsjC,EAAY,IAChBD,EAAgBv1C,KAAK,SAAE+vC,GACnB,IAAMlgC,EAAQwC,EAAmB09B,GAASlgC,OAAS,EACnD2lC,GAAapvC,SAASyJ,MAG1B,IAAMmkC,EAAe,CACjB,eACAl3C,GACF+B,OAAQC,SAAUC,KAAM,KAEtB8tC,EAAe,GAGnB,MAFoB,WAAhBkF,IAA0BlF,EAAe,KAGzC,oBAAClvC,EAAD,KACI,oBAAC0P,EAAD,KACI,oBAACI,EAAD,CAAWtN,MAAQ5C,EAAI,kBAAmB,uBACtC,oBAACwG,EAAD,CACInH,MAAQ,CACJW,EAAI,YAAa,sBACjB,4BAAM/B,IAAI,QAAQ6D,MAAQ,CAAEoQ,MAAO,UAAWsG,WAAY,KAASxY,EAAI,cAAe,sBAAyBi4C,EAAY,MAE/H7lC,KAAOpS,EAAI,+FAAgG,sBAC3GrC,MAAQ2U,EACRtJ,IAAM,EACNC,IAAMgvC,EACN34C,SAAW,SAAC3B,GAAD,OAAWuT,EAAe,CAAEoB,MAAO3U,OAElD,oBAACuS,EAAD,CAAWtN,MAAQ5C,EAAI,kBAAmB,uBACtC,oBAACK,EAAD,CACIhB,MAAQW,EAAI,eAAgB,sBAC5BrC,MAAQkU,EACRhQ,QAAUmW,EACV1Y,SAAW,SAAE3B,GAAF,OAAauT,EAAe,CAAEW,YAAalU,OAEzC,SAAhBkU,GACG,oBAACzR,EAAD,KACI,oBAAC4P,EAAD,CACIpN,MAAQ5C,EAAI,eAAgB,sBAC5ByS,aAAc,EACdC,cAAgB,CACZ,CACIrT,MAAOW,EAAI,eAAgB,sBAC3BrC,MAAOoU,EACPzS,SAAU,SAAE3B,GAAF,OAAauT,EAAe,CAAEa,YAAapU,SAIjE,oBAAC6I,EAAD,CACInH,MAAQW,EAAI,eAAgB,sBAC5BrC,MAAQmU,GAAe,GACvBxS,SAAW,SAAE3B,GAAF,OAAauT,EAAe,CAAEY,YAAanU,KACtDqL,IAAM,EACNC,IAAM,KAEV,oBAACzC,EAAD,CACInH,MAAQW,EAAI,qBAAsB,sBAClCrC,MAAQqU,GAAgB,GACxB1S,SAAW,SAAE3B,GAAF,OAAauT,EAAe,CAAEc,aAAcrU,KACvDqL,IAAM,EACNC,IAAM,QAMtB,2BAAK1J,UAAU,iCACVuC,MAAQ,CAAE4T,UAAW,iBAAkB+C,WAAY,KAEnD,CAAC,UAAW,UAAUhW,KAAK,SAAC8sC,EAAQ7sC,GACjC,IAAM8sC,EAAc,CAChB,gCACAgF,IAAgBjF,GAAU,eAC5BjuC,OAAQC,SAAUC,KAAM,KAE1B,OACI,2BAAKjC,UAAYiwC,EACZvxC,IAAMyE,EACNf,QAAU,kBAAM,EAAKhB,SAAU,CAAE6zC,YAAajF,MAE9CA,OAKjB,oBAACxwC,EAAD,CACIM,MAAQw4C,EAAcd,UAAUvC,GAAex0C,EAAI,kBAAmB,uBAEtE,oBAACkb,EAAD,CACIg9B,aAAc,EACdv6C,MAAQ+G,EAAY,YAAc4qC,GAClChwC,SAAW,SAAC4Y,GAAD,OAAWhH,EAAcA,EAAdA,GAAkB,YAAco+B,EAAep3B,QAG7E,oBAAChI,EAAD,CAAWtN,MAAwB,YAAhB4xC,EAA4BqD,EAAcd,UAAUvC,GAAex0C,EAAG,WAAY,sBAAwBA,EAAG,UAAW,sBAChIyS,aAAa,GAEpB,2BAAKlT,UAAU,wBAAyBS,EAAI,YAAa,uBACxDmb,EAAwB1Y,KAAI,SAACoa,EAAKhB,GAAN,OACzB,oBAACrV,EAAD,CACIvI,IAAM4d,EACNrB,WAAaqC,EAAIxa,KACjB1E,MAAQ+G,EAAW,UAAYmY,EAAIxd,MAAQiwC,IAAiB,GAC5DtmC,IAAM,EACNC,IAAM,IACN3J,SAAW,SAAC3B,GAAD,OAAWuT,EAAcA,EAAdA,GAAkB,UAAY2L,EAAIxd,MAAQiwC,EAAe3xC,WAI3F,oBAACuS,EAAD,CAAWtN,MAAwB,YAAhB4xC,EAA4BqD,EAAcd,UAAUvC,GAAex0C,EAAG,UAAW,sBAAwBA,EAAG,SAAU,sBAC9HyS,aAAa,GAEpB,2BAAKlT,UAAU,wBAAyBS,EAAI,YAAa,uBACxDmb,EAAwB1Y,KAAI,SAACoa,EAAKhB,GAAN,OACzB,oBAACrV,EAAD,CACIvI,IAAM4d,EACNrB,WAAaqC,EAAIxa,KACjB1E,MAAQ+G,EAAW,SAAWmY,EAAIxd,MAAQiwC,IAAiB,GAC3DtmC,IAAM,EACNC,IAAM,IACN3J,SAAW,SAAC3B,GAAD,OAAWuT,EAAcA,EAAdA,GAAkB,SAAW2L,EAAIxd,MAAQiwC,EAAe3xC,aAMlG,2BAAK4B,UAAYk3C,GACb,2BAAKl3C,UAAU,qBACVuC,MAAQ,CACJ+P,cAAaE,cAAaD,cAAaE,iBAG5C,oBAAC/B,EAAD,CACI0G,cAAe,EACfwhC,eACIJ,OACI7oC,EACA,kBAAM,oBAACe,EAAYmoC,oBAAb,WAK1B,2CACezjC,EADf,mFAEsBqI,EAFtB,8CAGsBtQ,EAHtB,kDAIwBG,EAJxB,mDAKyBF,EALzB,iDAMuB6L,EANvB,iDAOuBC,EAPvB,mDAQyBC,EARzB,oDAS0BC,EAT1B,kDAUwBC,EAVxB,sIAaiBjE,EAbjB,uFAc0BmjC,EAd1B,kDAe0BxC,EAf1B,sDAgB4BC,EAhB5B,uDAiB6BC,EAjB7B,qDAkB2BC,EAlB3B,qDAmB2BC,EAnB3B,uDAoB6BC,EApB7B,wDAqB8BC,EArB9B,sDAsB4BC,EAtB5B,2FAyBMvjC,YACYqC,EADZ,iBACqCrC,EADrC,MACkD,SAnQL,iCAsE9ClP,GACb,OAAOA,EAAO24B,OAAO,GAAGp4B,cAAgBP,EAAOu4B,MAAM,OAvEM,GAiCvCx7B,GA0OtB0W,EAAa,CACfvE,MAAO,CACH3M,KAAM,UAEV0vC,cAAe,CACX1vC,KAAM,UAEV8uC,MAAO,CACH9uC,KAAM,UAEVkM,YAAa,CACTlM,KAAM,SACNsN,QAAS,QAEblB,YAAa,CACTpM,KAAM,UAEVmM,YAAa,CACTnM,KAAM,SACNsN,QAAS,GAEbjB,aAAc,CACVrM,KAAM,UAEVqX,UAAW,CACPrX,KAAM,UAEVmyC,WAAY,CACRnyC,KAAM,UAEV+G,UAAW,CACP/G,KAAM,UAEV2vC,WAAY,CACR3vC,KAAM,UAEVkH,YAAa,CACTlH,KAAM,UAEV4vC,aAAc,CACV5vC,KAAM,UAEVgH,aAAc,CACVhH,KAAM,UAEV6vC,cAAe,CACX7vC,KAAM,UAEV6S,WAAY,CACR7S,KAAM,UAEV8vC,YAAa,CACT9vC,KAAM,UAEV8S,WAAY,CACR9S,KAAM,UAEV+vC,YAAa,CACT/vC,KAAM,UAEV+S,aAAc,CACV/S,KAAM,UAEVgwC,cAAe,CACXhwC,KAAM,UAEVgT,cAAe,CACXhT,KAAM,UAEViwC,eAAgB,CACZjwC,KAAM,UAEViT,YAAa,CACTjT,KAAM,UAEVkwC,aAAc,CACVlwC,KAAM,UAEV0L,QAAS,CACL1L,KAAM,UACNsN,SAAS,IAIjBrD,EAAmB,eAAgB,CAC/BhN,MAAO5C,EAAI,wBAAyB,sBACpCuF,OAAQ,CAAE,iBACV2N,YAAalT,EAAI,iBAAkB,sBACnCqC,KAAM,CACF8Q,IAAKykC,EACLxkC,WAAmC,oBAAhBjR,YAA8BA,YAAY+P,WAAQhD,GAEzEmE,SAAU,iBACVC,SAAU,CAAEtT,EAAI,UAAW,sBAAwBA,EAAI,MAAO,sBAAwBA,EAAI,SAAU,uBACpGuT,SAAU,CACNC,UAAU,EACVm9B,UAAU,EACV5uB,MAAM,GAEVrd,WAAYmS,EACZpD,KAAMokC,EACNnkC,KAAM,YAA4B,IAAfhP,EAAe,EAAfA,WAEX4N,EAGA5N,EAHA4N,MACA+iC,EAEA3wC,EAFA2wC,cAAeZ,EAEf/vC,EAFe+vC,MACf1iC,EACArN,EADAqN,YAAaF,EACbnN,EADamN,YAAaC,EAC1BpN,EAD0BoN,YAAaE,EACvCtN,EADuCsN,aAGrCykC,EAAe,CACjB,eACApB,GACF/zC,OAAQC,SAAUC,KAAM,KAE1B,OACI,2BAAKjC,UAAYk3C,EACZnvC,GAAKmtC,EACL3yC,MAAQ,CACJu2C,KAAM/lC,EAAQ,YAASpD,IAG5B,2BAAK3P,UAAU,qBACVuC,MAAQ,CAAE+P,cAAaE,cAAaD,cAAaE,iBAElD,oBAAC/B,EAAY2D,QAAb,SAKhBC,WAAY,CACR,CACInP,WAAYmS,EACZnD,KAAM,YAA4B,IAAfhP,EAAe,EAAfA,WAEX4N,EAGA5N,EAHA4N,MACA+iC,EAEA3wC,EAFA2wC,cAAeZ,EAEf/vC,EAFe+vC,MACf1iC,EACArN,EADAqN,YAAaF,EACbnN,EADamN,YAAaC,EAC1BpN,EAD0BoN,YAAaE,EACvCtN,EADuCsN,aAGrCykC,EAAe,CACjB,eACApB,GACF/zC,OAAQC,SAAUC,KAAM,KAE1B,OACI,2BAAKjC,UAAYk3C,EACZnvC,GAAKmtC,EACL3yC,MAAQ,CACJwQ,MAAOA,EAAQA,EAAQ,SAAMpD,EAC7BmpC,KAAM/lC,EAAQ,YAASpD,IAG5B,2BAAK3P,UAAU,qBACVuC,MAAQ,CAAE+P,cAAaE,cAAaD,cAAaE,iBAElD,oBAAC/B,EAAY2D,QAAb,UAMpB,CACIlP,WAAYmS,EACZnD,KAAM,YAA4B,IAAfhP,EAAe,EAAfA,WAEX4N,EAGA5N,EAHA4N,MACA+iC,EAEA3wC,EAFA2wC,cAAeZ,EAEf/vC,EAFe+vC,MACf1iC,EACArN,EADAqN,YAAaF,EACbnN,EADamN,YAAaC,EAC1BpN,EAD0BoN,YAAaE,EACvCtN,EADuCsN,aAGrCykC,EAAe,CACjB,eACA,SACApB,GACF/zC,OAAQC,SAAUC,KAAM,KAE1B,OACI,2BAAKjC,UAAYk3C,EACZnvC,GAAKmtC,EACL3yC,MAAQ,CACJwQ,MAAOA,EAAQA,EAAQ,SAAMpD,EAC7BmpC,KAAM/lC,EAAQ,YAASpD,IAG5B,2BAAK3P,UAAU,qBACVuC,MAAQ,CAAE+P,cAAaE,cAAaD,cAAaE,iBAElD,oBAAC/B,EAAY2D,QAAb,aArchC,CA6cIhV,GAAGqB,KAAMrB,GAAGoV,OAAQpV,GAAGsB,QAAStB,GAAGK,YAAaL,GAAGC,a,ouBC7cvD,SAAY0Q,EAAQC,EAAUC,EAAWC,EAAeC,GACpDD,EAAgB9Q,GAAGK,aAAeL,GAAGM,OAD8B,IAE3Dc,EAAOuP,EAAPvP,GACAG,EAAwBsP,EAAxBtP,UAAWC,EAAaqP,EAAbrP,SACXwP,EAAsBJ,EAAtBI,kBAJ2D,EAKjBF,EAA1CI,EAL2D,EAK3DA,kBAAmBE,EALwC,EAKxCA,mBACnBE,EAAwDP,EAAxDO,UAAW1J,EAA6CmJ,EAA7CnJ,aAAcnG,EAA+BsP,EAA/BtP,cAAeC,EAAgBqP,EAAhBrP,YAE1Cg4C,EACF,2BAAKjmC,MAAM,6BAA6BC,MAAM,KAAKC,OAAO,KAAKC,QAAQ,aACnE,4BAAMlC,KAAK,OAAOtT,EAAE,oBACpB,4BAAMA,EAAE,4HAMVu7C,EAjB6D,YAkB/D,aAAc,2EACAvnC,YAnBiD,O,yTAAA,sDAsB1C,MACqBtQ,KAAK/B,MAAnC+F,EADS,EACTA,WAAYwM,EADH,EACGA,cACdC,EAAqBC,mBAAmB,uBAGnB,IAAvB1M,EAAW2M,UACuB,iBAA9B,IAAOF,EAAP,cAAOA,KAA0D,OAAvBA,GAC1C/T,OAAO8E,KAAKiP,GAAoB1O,KAAI,SAACkC,GACI,kBAA1BD,EAAWC,GAClBD,EAAWC,KAAewM,EAAmBxM,GAE7CD,EAAWC,GAAawM,EAAmBxM,MAMvDuM,EAAe,CAAEG,SAAS,OAvC6B,+BA2CtD,MACiC3Q,KAAK/B,MAAnC+F,EADH,EACGA,WAAYwM,EADf,EACeA,cAEhBsnC,EAgBA9zC,EAhBA8zC,UACAC,EAeA/zC,EAfA+zC,WACAC,EAcAh0C,EAdAg0C,SACAC,EAaAj0C,EAbAi0C,YACAC,EAYAl0C,EAZAk0C,aACAC,EAWAn0C,EAXAm0C,WACAxgC,EAUA3T,EAVA2T,QACAC,EASA5T,EATA4T,UACAvG,EAQArN,EARAqN,YACAF,EAOAnN,EAPAmN,YACAG,EAMAtN,EANAsN,aACA8mC,EAKAp0C,EALAo0C,YACAC,EAIAr0C,EAJAq0C,cACAC,EAGAt0C,EAHAs0C,aACAC,EAEAv0C,EAFAu0C,eAIJ,OAFIv0C,EADA4R,UAKI,2BAAKE,IAAKxW,EAAG,eAAgB,sBAAuBsS,MAAM,OAAOa,IAnDxD,+nGAqDb,oBAAC/S,EAAD,KACI,oBAAC0P,EAAD,KACI,oBAACI,EAAD,CAAWtN,MAAQ5C,EAAI,gBAAiB,uBACX,oBAAhBmC,cAAgC0G,SAAS1G,YAAY+2C,iBAC1D,oBAAChpC,EAAD,CAAWtN,MAAQ5C,EAAI,SAAU,uBAC7B,yBAAG8B,MAAQ,CAAEqQ,UAAW,WAClBnS,EAAI,kEAAmE,sBACzE,+BAAK,yBAAG+M,KAAM5K,YAAYg3C,WAAa,iBAAkBj4C,OAAO,UAAWlB,EAAI,gCAAiC,yBAI5H,oBAACkQ,EAAD,CAAWtN,MAAQ5C,EAAI,eAAgB,sBAAyByS,aAAc,GAC1E,yBAAG3Q,MAAQ,CAAEqQ,UAAW,WAClBnS,EAAG,oHAAqH,sBAC1H,yBAAG+M,KAAM5K,YAAYg3C,WAAa,aAAcj4C,OAAO,UAAvD,IAAmElB,EAAI,WAAY,sBAAnF,OAGR,oBAACkQ,EAAD,CAAWtN,MAAQ5C,EAAI,aAAc,uBACjC,oBAACM,EAAD,CACIjB,MAAQW,EAAI,yBAA0B,sBACtCrC,MAAQ66C,EACRl5C,SAAW,SAAC3B,GAAD,OAAWuT,EAAe,CAAEsnC,UAAW76C,OAEtD,oBAAC2C,EAAD,CACIjB,MAAQW,EAAI,0BAA2B,sBACvCrC,MAAQ86C,EACRn5C,SAAW,SAAC3B,GAAD,OAAWuT,EAAe,CAAEunC,WAAY96C,OAEvD,oBAAC2C,EAAD,CACIjB,MAAQW,EAAI,4BAA6B,sBACzCrC,MAAQ+6C,EACRp5C,SAAW,SAAC3B,GAAD,OAAWuT,EAAe,CAAEwnC,SAAU/6C,OAErD,oBAAC2C,EAAD,CACIjB,MAAQW,EAAI,cAAe,sBAC3BrC,MAAQg7C,EACRr5C,SAAW,SAAC3B,GAAD,OAAWuT,EAAe,CAAEynC,YAAah7C,OAExD,oBAAC2C,EAAD,CACIjB,MAAQW,EAAI,2BAA4B,sBACxCrC,MAAQk7C,EACRv5C,SAAW,SAAC3B,GAAD,OAAWuT,EAAe,CAAE2nC,WAAYl7C,OAEvD,oBAAC2C,EAAD,CACIjB,MAAQW,EAAI,sBAAuB,sBACnCrC,MAAQi7C,EACRt5C,SAAW,SAAC3B,GAAD,OAAWuT,EAAe,CAAE0nC,aAAcj7C,QAG7D,oBAACqS,EAAD,CACIpN,MAAQ5C,EAAI,cAAe,sBAC3B0S,cAAgB,CACZ,CACIrT,MAAOW,EAAI,mBAAoB,sBAC/BrC,MAAO0a,EACP/Y,SAAU,SAAC3B,GAAD,OAAWuT,EAAe,CAAEmH,QAAS1a,MAEnD,CACI0B,MAAOW,EAAI,aAAc,sBACzBrC,MAAO2a,EACPhZ,SAAU,SAAC3B,GAAD,OAAWuT,EAAe,CAAEoH,UAAW3a,SAI7D,oBAACuS,EAAD,CAAWtN,MAAQ5C,EAAI,kBAAmB,sBAAyByS,aAAc,GAC7E,oBAACzC,EAAD,CACIpN,MAAQ5C,EAAI,eAAgB,sBAC5ByS,aAAc,EACdC,cAAgB,CACZ,CACIrT,MAAOW,EAAI,eAAgB,sBAC3BrC,MAAOoU,EACPzS,SAAU,SAAC3B,GAAD,OAAWuT,EAAe,CAAEa,YAAapU,SAI/D,oBAAC0C,EAAD,CACIhB,MAAQW,EAAI,eAAgB,sBAC5BrC,MAAQkU,EACRhQ,QAAU,CACN,CAAExC,MAAOW,EAAI,QAAS,sBAAwBrC,MAAO,SACrD,CAAE0B,MAAOW,EAAI,SAAU,sBAAwBrC,MAAO,UACtD,CAAE0B,MAAOW,EAAI,SAAU,sBAAwBrC,MAAO,WAE1D2B,SAAW,SAAC3B,GAAD,OAAWuT,EAAe,CAAEW,YAAalU,OAExD,oBAAC6I,EAAD,CACInH,MAAQW,EAAI,qBAAsB,sBAClCrC,MAAQqU,EACR1S,SAAW,SAAC3B,GAAD,OAAWuT,EAAe,CAAEc,aAAcrU,KACrDqL,IAAM,EACNC,IAAM,MAGd,oBAACiH,EAAD,CAAWtN,MAAQ5C,EAAI,yBAA0B,uBAC7C,oBAACgQ,EAAD,CACIpN,MAAQ5C,EAAI,iBAAkB,sBAC9ByS,aAAc,EACdC,cAAgB,CACZ,CACIrT,MAAOW,EAAI,kBAAmB,sBAC9BrC,MAAOm7C,EACPx5C,SAAU,SAAC3B,GAAD,OAAWuT,EAAe,CAAE4nC,YAAan7C,MAEvD,CACI0B,MAAOW,EAAI,aAAc,sBACzBrC,MAAOo7C,EACPz5C,SAAU,SAAC3B,GAAD,OAAWuT,EAAe,CAAE6nC,cAAep7C,SAIjE,oBAAC6I,EAAD,CACInH,MAAQW,EAAI,uBAAwB,sBACpCrC,MAAQq7C,EACR15C,SAAW,SAAC3B,GAAD,OAAWuT,EAAe,CAAE8nC,aAAcr7C,KACrDqL,IAAM,EACNC,IAAM,KAEV,oBAAC5I,EAAD,CACIhB,MAAQW,EAAI,kBAAmB,sBAC/BrC,MAAQs7C,EACRp3C,QAAU,CACN,CAAExC,MAAOW,EAAI,SAAU,sBAAwBrC,MAAO,UACtD,CAAE0B,MAAOW,EAAI,OAAQ,sBAAwBrC,MAAO,QACpD,CAAE0B,MAAOW,EAAI,QAAS,sBAAwBrC,MAAO,UAEzD2B,SAAW,SAAC3B,GAAD,OAAWuT,EAAe,CAAE+nC,eAAgBt7C,UAKvE,2BAAK4B,UAAU,sBACX,2BAAKA,UAAU,0CACX,6BAAOoG,KAAK,OAAO9C,UAAW,EACvBtD,UAAU,mBACV5B,MAAQ66C,GAAwB,OAChC12C,MAAQ,CACJ6Q,gBAAiB0F,EACjBnG,MAAOoG,EACPvG,YAAaA,EACbF,YAAaA,EACbG,aAAcA,MAI7B,2BAAKzS,UAAU,0CACX,6BAAOoG,KAAK,OAAO9C,UAAW,EACvBtD,UAAU,mBACV5B,MAAQ86C,GAA0B,gBAClC32C,MAAQ,CACJ6Q,gBAAiB0F,EACjBnG,MAAOoG,EACPvG,YAAaA,EACbF,YAAaA,EACbG,aAAcA,MAI7B,2BAAKzS,UAAU,0CACX,gCAAUA,UAAU,mBACVsD,UAAW,EACXlF,MAAQ+6C,GAAsB,UAC9B52C,MAAQ,CACJ6Q,gBAAiB0F,EACjBnG,MAAOoG,EACPvG,YAAaA,EACbF,YAAaA,EACbG,aAAcA,MAIhC,2BAAKzS,UAAU,4BACVuC,MAAQ,CAAEkb,UAAWi8B,IAEtB,8BAAQ15C,UAAU,oBACVuC,MAAQ,CACJiQ,YAAa+mC,EACb5mC,MAAO4mC,EACPnmC,gBAAiBomC,EACjB/mC,aAAcgnC,IAGpBL,GAA4B,iBA1PS,GAiBtCx4C,GA2S7ByP,EAAmB,qBAAsB,CACrChN,MAAO5C,EAAI,8BAA+B,sBAC1CkT,YAAalT,EAAI,sDAAuD,sBACxEqC,KAAM,CACF8Q,IAAKmlC,EACLllC,WAAmC,oBAAhBjR,YAA8BA,YAAY+P,WAAQhD,GAEzEmE,SAAU,iBACVC,SAAU,CAAEtT,EAAI,UAAW,sBAAwBA,EAAI,OAAQ,uBAC/D0E,WAlEsB,CACtB8zC,UAAW,CACP7yC,KAAM,UAEV8yC,WAAY,CACR9yC,KAAM,UAEV+yC,SAAU,CACN/yC,KAAM,UAEVgzC,YAAa,CACThzC,KAAM,UAEVizC,aAAc,CACVjzC,KAAM,UAEVkzC,WAAY,CACRlzC,KAAM,UAEV0S,QAAS,CACL1S,KAAM,UAEV2S,UAAW,CACP3S,KAAM,UAEVkM,YAAa,CACTlM,KAAM,UAEVoM,YAAa,CACTpM,KAAM,UAEVqM,aAAc,CACVrM,KAAM,UAEVmzC,YAAa,CACTnzC,KAAM,UAEVozC,cAAe,CACXpzC,KAAM,UAEVqzC,aAAc,CACVrzC,KAAM,UAEVszC,eAAgB,CACZtzC,KAAM,SACNsN,QAAS,SAEb5B,QAAS,CACL1L,KAAM,UACNsN,SAAS,GAEbqD,UAAW,CACP3Q,KAAM,UACNsN,SAAS,IAcb6D,QAAS,CACLpS,WAAY,CACR4R,WAAW,IAGnB/C,SAAU,CACN4B,QAAQ,GAEZ1B,KAAM8kC,EACN7kC,KAAM,YAA4B,IAAfhP,EAAe,EAAfA,WAEX8zC,EAeA9zC,EAfA8zC,UACAC,EAcA/zC,EAdA+zC,WACAC,EAaAh0C,EAbAg0C,SACAC,EAYAj0C,EAZAi0C,YACAC,EAWAl0C,EAXAk0C,aACAC,EAUAn0C,EAVAm0C,WACAxgC,EASA3T,EATA2T,QACAC,EAQA5T,EARA4T,UACAvG,EAOArN,EAPAqN,YACAF,EAMAnN,EANAmN,YACAG,EAKAtN,EALAsN,aACA8mC,EAIAp0C,EAJAo0C,YACAC,EAGAr0C,EAHAq0C,cACAC,EAEAt0C,EAFAs0C,aACAC,EACAv0C,EADAu0C,eAGJ,OACI,2BAAK15C,UAAU,sBACX,4BAAMkpB,OAAO,QACT,2BAAKlpB,UAAU,0CACX,6BAAOoG,KAAK,OACLpG,UAAU,yCACVqC,YAAc42C,GAAwB,OACtCv7C,KAAK,eACL6E,MAAQ,CACJ6Q,gBAAiB0F,EACjBnG,MAAOoG,EACPvG,YAAaA,EACbF,YAAaA,EACbG,aAAcA,MAI7B,2BAAKzS,UAAU,0CACX,6BAAOoG,KAAK,QACLpG,UAAU,0CACVqC,YAAc62C,GAA0B,gBACxCx7C,KAAK,gBACL6E,MAAQ,CACJ6Q,gBAAiB0F,EACjBnG,MAAOoG,EACPvG,YAAaA,EACbF,YAAaA,EACbG,aAAcA,MAI7B,2BAAKzS,UAAU,0CACX,gCAAUA,UAAU,wCACVqC,YAAc82C,GAAsB,UACpCz7C,KAAK,kBACL6E,MAAQ,CACJ6Q,gBAAiB0F,EACjBnG,MAAOoG,EACPvG,YAAaA,EACbF,YAAaA,EACbG,aAAcA,MAIhC,2BAAKzS,UAAA,sCAAiD05C,IACtD,2BAAK15C,UAAU,4BACVuC,MAAQ,CAAEkb,UAAWi8B,IAEtB,8BAAQ15C,UAAU,oBACVoG,KAAK,SACLyzC,eAAeR,QAA8B1pC,EAC7CmqC,aAAaR,QAA0B3pC,EACvCpN,MAAQ,CACJiQ,YAAa+mC,EACb5mC,MAAO4mC,EACPnmC,gBAAiBomC,EACjB/mC,aAAcgnC,IAGpBL,GAA4B,gBA7Z9D,CAqaI/5C,GAAGqB,KAAMrB,GAAGoV,OAAQpV,GAAGsB,QAAStB,GAAGK,YAAaL,GAAGC,a,8BCravD,SAAY0Q,EAAQC,EAAUE,GAC1BA,EAAgB9Q,GAAGK,aAAeL,GAAGM,OADK,IAElCc,EAAOuP,EAAPvP,GACAI,EAAaxB,GAAGsB,QAAhBE,SACAwP,EAAmCJ,EAAnCI,kBAAmBC,EAAgBL,EAAhBK,YAJe,EAKCH,EAAnCO,EALkC,EAKlCA,YAAaH,EALqB,EAKrBA,kBALqB,EAMLlR,GAAGC,WAAhCqR,EANkC,EAMlCA,UAAW7P,EANuB,EAMvBA,cAEbi5C,EACF,2BAAKjnC,MAAM,6BAA6BC,MAAM,KAAKC,OAAO,KAAKC,QAAQ,aACnE,4BAAMlC,KAAK,OAAOtT,EAAE,oBACpB,4BAAMA,EAAE,iEAIhB4S,EAAmB,kBAAmB,CAClChN,MAAO5C,EAAI,2BAA4B,sBACvCkT,YAAalT,EAAI,qCAAsC,sBACvDqC,KAAM,CACF8Q,IAAKmmC,EACLlmC,WAAmC,oBAAhBjR,YAA8BA,YAAY+P,WAAQhD,GAEzEmE,SAAU,iBACVC,SAAU,CAAEtT,EAAI,YAAa,sBAAwBA,EAAI,MAAO,sBAAwBA,EAAI,MAAO,uBACnG0E,WAAY,CACR8xC,WAAY,CACR7wC,KAAM,SACNsN,QAAS,QAGjBM,SAAU,CACN2E,OAAO,EACP3Y,WAAW,GAEfuU,WAAY,CACRC,GAAI,CACA,CACIpO,KAAM,QACNqO,OAAQ,CAAE,iBACVC,UAAW,SAAEvP,EAAYwP,GAAiB,IAC9B3U,EAA0BmF,EAA1BnF,UAAWi3C,EAAe9xC,EAAf8xC,WACb+C,EAAc1pC,EAChB,eACA,GACAqE,GAGJ,OAAOrE,EACH,gBACA,CAAEqkC,QAAS,EAAG30C,YAAWi3C,cACzB,CAAE+C,QAMtB9lC,KAAM,SAAW9U,GAAQ,IACb+F,EAAyC/F,EAAzC+F,WAAYwM,EAA6BvS,EAA7BuS,cAAe3R,EAAcZ,EAAdY,UAC3Bi3C,EAAe9xC,EAAf8xC,WAER,OACI,oBAACp2C,EAAD,KACI,oBAAC0P,EAAD,KACI,oBAACI,EAAD,CAAWtN,MAAQ5C,EAAI,qBAAsB,uBACzC,oBAACK,EAAD,CACIhB,MAAQW,EAAI,cAAe,sBAC3BrC,MAAQ64C,EACR30C,QAAU,CACN,CAAExC,MAAO,MAAO1B,MAAO,OACvB,CAAE0B,MAAO,SAAU1B,MAAO,UAC1B,CAAE0B,MAAO,UAAW1B,MAAO,WAC3B,CAAE0B,MAAO,OAAQ1B,MAAO,QACxB,CAAE0B,MAAO,UAAW1B,MAAO,WAC3B,CAAE0B,MAAO,QAAS1B,MAAO,SACzB,CAAE0B,MAAO,SAAU1B,MAAO,WAE9B2B,SAAW,SAAC3B,GAAD,OAAWuT,EAAe,CAAEslC,WAAY74C,SAI/D,2BAAK4B,UAAA,0BAAqCA,GACtC,oBAAC0Q,EAAD,SAKhByD,KAAM,YAA4B,IACTikC,EADS,EAAfjzC,WACP8xC,WAER,OACI,oBAACmB,EAAD,CAAKp4C,UAAU,0BACX,oBAAC0Q,EAAY2D,QAAb,UA3FpB,CAgGIhV,GAAGqB,KAAMrB,GAAGoV,OAAQpV,GAAGK,c,ouBChG3B,SAAYsQ,EAAQC,EAAUC,EAAWC,EAAeC,GACpDD,EAAgB9Q,GAAGK,aAAeL,GAAGM,OAD8B,IAE3Dc,EAAOuP,EAAPvP,GACAG,EAAwBsP,EAAxBtP,UAAWC,EAAaqP,EAAbrP,SACXwP,EAAsBJ,EAAtBI,kBAJ2D,EAKPF,EAApDI,EAL2D,EAK3DA,kBAAmBC,EALwC,EAKxCA,SAAUC,EAL8B,EAK9BA,mBAC7BxJ,EAAqDmJ,EAArDnJ,aAAc0J,EAAuCP,EAAvCO,UAAW5P,EAA4BqP,EAA5BrP,YAAak5C,EAAe7pC,EAAf6pC,WAIxCC,EAV6D,YAW/D,aAAc,0EACDzoC,YADC,OAEV,EAAKxQ,MAAQ,CACTud,YAAa,IAHP,EAXiD,O,yTAAA,sDAkB1C,MACqBrd,KAAK/B,MAAnC+F,EADS,EACTA,WAAYwM,EADH,EACGA,cACdC,EAAqBC,mBAAmB,mBAGnB,IAAvB1M,EAAW2M,UACuB,iBAA9B,IAAOF,EAAP,cAAOA,KAA0D,OAAvBA,GAC1C/T,OAAO8E,KAAKiP,GAAoB1O,KAAI,SAACkC,GACI,kBAA1BD,EAAWC,GAClBD,EAAWC,KAAewM,EAAmBxM,GAE7CD,EAAWC,GAAawM,EAAmBxM,MAMvDuM,EAAe,CAAEG,SAAS,OAnC6B,0CAuC3C,MACgC3Q,KAAK/B,MADrC,EACR+F,YACRwM,EAFgB,EACIA,eACL,CAAE5J,GAAI,YAFL,EACmBqN,aAxCwB,+BA4CtD,WACGoJ,EAAgBrd,KAAKF,MAArBud,YADH,EAE6Crd,KAAK/B,MAA/C+F,EAFH,EAEGA,WAAYwM,EAFf,EAEeA,cAAe+G,EAF9B,EAE8BA,WAE/B3Q,EAsBA5C,EAtBA4C,GACAoyC,EAqBAh1C,EArBAg1C,WACAC,EAoBAj1C,EApBAi1C,YACAC,EAmBAl1C,EAnBAk1C,YACApoC,EAkBA9M,EAlBA8M,gBACAqoC,EAiBAn1C,EAjBAm1C,cACAC,EAgBAp1C,EAhBAo1C,eACAC,EAeAr1C,EAfAq1C,eACAC,EAcAt1C,EAdAs1C,mBACAC,EAaAv1C,EAbAu1C,kBACAC,EAYAx1C,EAZAw1C,cACAC,EAWAz1C,EAXAy1C,eACAC,EAUA11C,EAVA01C,eACAC,EASA31C,EATA21C,mBACAC,EAQA51C,EARA41C,oBACAC,EAOA71C,EAPA61C,oBACAC,EAMA91C,EANA81C,SACAC,EAKA/1C,EALA+1C,UACAC,EAIAh2C,EAJAg2C,UACAC,EAGAj2C,EAHAi2C,cACAzG,EAEAxvC,EAFAwvC,QACA59B,EACA5R,EADA4R,UAGEskC,EAAmB,CAAC,+BACS1G,EAC/B5sC,GACFhG,OAAQC,SAAUC,KAAK,KAEzB,OACI8U,EACI,2BAAKE,IAAKxW,EAAG,WAAY,sBAAuBsS,MAAM,OAAOa,IAvEpD,upJAyEb,oBAAC/S,EAAD,KACI,oBAAC0P,EAAD,KACI,oBAACI,EAAD,CAAWtN,MAAQ5C,EAAI,oBAAqB,uBACxC,oBAACgQ,EAAD,CACIpN,MAAQ5C,EAAI,iBAAkB,sBAC9ByS,aAAc,EACdC,cAAgB,CACZ,CACIrT,MAAOW,EAAI,eAAgB,sBAC3BrC,MAAO6T,EACPlS,SAAU,SAAE3B,GAAF,OAAauT,EAAe,CAAEM,gBAAiB7T,MAE7D,CACI0B,MAAOW,EAAI,iBAAkB,sBAC7BrC,MAAOq8C,EACP16C,SAAU,SAAE3B,GAAF,OAAauT,EAAe,CAAE8oC,mBAAoBr8C,MAEhE,CACI0B,MAAOW,EAAI,oBAAqB,sBAChCrC,MAAOg9C,EACPr7C,SAAU,SAAE3B,GAAF,OAAauT,EAAe,CAAEypC,cAAeh9C,SAInE,oBAAC6I,EAAD,CACInH,MAAQW,EAAI,UAAW,sBACvBgJ,IAAM,EACNC,IAAM,EACNtL,MAAQu2C,EACR50C,SAAW,SAAC3B,GAAD,OAAWuT,EAAe,CAAEgjC,QAASv2C,OAEpD,oBAAC6I,EAAD,CACInH,MAAQW,EAAI,sBAAuB,sBACnCgJ,IAAM,GACNC,IAAM,IACNtL,MAAQs8C,EACR36C,SAAW,SAAC3B,GAAD,OAAWuT,EAAe,CAAE+oC,kBAAmBt8C,OAE9D,+BAAOqC,EAAI,oBAAqB,uBAE5B,2BAAKT,UAAU,eACX,oBAACe,EAAD,CACI3C,MAAQu8C,EACR56C,SAAW,SAAC3B,GAAD,OAAWuT,EAAe,CAAEgpC,cAAev8C,OAE1D,oBAAC67C,EAAD,CACI7tC,QAAU0uC,EACV/6C,SAAW,kBAAM4R,EAAe,CAAEmpC,oBAAqBA,KACvDz3C,MAA+B5C,EAArBq6C,EAAyB,QAAsC,SAA7B,yBAIvDxxC,SAASqrC,GAAW,GACrB,2BAAK30C,UAAU,eACX,oBAACe,EAAD,CACI3C,MAAQw8C,EACR76C,SAAW,SAAC3B,GAAD,OAAWuT,EAAe,CAAEipC,eAAgBx8C,OAE3D,oBAAC67C,EAAD,CACI7tC,QAAU2uC,EACVh7C,SAAW,kBAAM4R,EAAe,CAAEopC,qBAAsBA,KACxD13C,MAAgC5C,EAAtBs6C,EAA0B,QAAsC,SAA7B,yBAIpDzxC,SAASqrC,GAAW,GACrB,2BAAK30C,UAAU,eACX,oBAACe,EAAD,CACI3C,MAAQy8C,EACR96C,SAAW,SAAC3B,GAAD,OAAWuT,EAAe,CAAEkpC,eAAgBz8C,OAE3D,oBAAC67C,EAAD,CACI7tC,QAAU4uC,EACVj7C,SAAW,kBAAM4R,EAAe,CAAEqpC,qBAAsBA,KACxD33C,MAAgC5C,EAAtBu6C,EAA0B,QAAsC,SAA7B,yBAIrD,yBAAGh7C,UAAW,gCAAiCuC,MAAQ,CAAE+4C,MAAO,SAC1D76C,EAAI,oGAAqG,yBAIvH,2BAAKT,UAAWq7C,EAAkB94C,MAAQ,CAAEkY,QAAS,SACjD,2BAAKza,UAAU,8BACX,oBAACwQ,EAAD,CACI3L,QAAQ,KACRzG,MAAQ+7C,EACRp6C,SAAW,SAAC3B,GAAD,OAAWuT,EAAe,CAAEwoC,WAAY/7C,KACnDsa,WAAaA,GAA8B,WAAhB8F,EAC3B4B,gBAAkB,kBAAM,EAAKhf,SAAU,CAAEod,YAAa,YACtDjc,MAAQ,CAAEoQ,MAAOV,GACjB5P,YAAc5B,EAAI,cAAe,sBACjCT,UAAU,0BAEd,2BAAKA,UAAU,iBACV26C,IAAkBG,GACf,4BAAM96C,UAAU,uBACVuC,MAAQ,CACJ0b,SAAUy8B,EACV/nC,MAAO8nC,IAGXE,GAGV,oBAACnqC,EAAD,CACI3L,QAAQ,MACRzG,MAAQk8C,EACRv6C,SAAW,SAAC3B,GAAD,OAAWuT,EAAe,CAAE2oC,cAAel8C,KACtDsa,WAAaA,GAA8B,YAAhB8F,EAC3B4B,gBAAkB,kBAAM,EAAKhf,SAAU,CAAEod,YAAa,aACtDjc,MAAQ,CAAE0b,SAAUy8B,EAAoB,KAAM/nC,MAAO8nC,GACrDz6C,UAAU,yBAEb26C,GAAiBG,GACd,4BAAM96C,UAAU,uBACVuC,MAAQ,CACJ0b,SAAUy8B,EACV/nC,MAAO8nC,IAGXE,IAId,oBAACnqC,EAAD,CACI3L,QAAQ,IACRzG,MAAQ68C,EACRl7C,SAAW,SAAC3B,GAAD,OAAWuT,EAAe,CAAEspC,SAAU78C,KACjDsa,WAAaA,GAA8B,SAAhB8F,EAC3B4B,gBAAkB,kBAAM,EAAKhf,SAAU,CAAEod,YAAa,UACtDjc,MAAQ,CAAEoQ,MAAOyoC,GACjB/4C,YAAc5B,EAAI,cAAe,sBACjCT,UAAU,yBAGlB,2BAAKA,UAAU,8BACX,oBAACwQ,EAAD,CACI3L,QAAQ,KACRzG,MAAQg8C,EACRr6C,SAAW,SAAC3B,GAAD,OAAWuT,EAAe,CAAEyoC,YAAah8C,KACpDsa,WAAaA,GAA8B,YAAhB8F,EAC3B4B,gBAAkB,kBAAM,EAAKhf,SAAU,CAAEod,YAAa,aACtDjc,MAAQ,CAAEoQ,MAAOV,GACjB5P,YAAc5B,EAAI,cAAe,sBACjCT,UAAU,0BAEd,2BAAKA,UAAU,iBACV46C,IAAmBG,GAChB,4BAAM/6C,UAAU,uBACVuC,MAAQ,CACJ0b,SAAUy8B,EACV/nC,MAAO8nC,IAGXG,GAGV,oBAACpqC,EAAD,CACI3L,QAAQ,MACRzG,MAAQm8C,EACRx6C,SAAW,SAAC3B,GAAD,OAAWuT,EAAe,CAAE4oC,eAAgBn8C,KACvDsa,WAAaA,GAA8B,aAAhB8F,EAC3B4B,gBAAkB,kBAAM,EAAKhf,SAAU,CAAEod,YAAa,cACtDjc,MAAQ,CAAE0b,SAAUy8B,EAAoB,KAAM/nC,MAAO8nC,GACrDz6C,UAAU,yBAEb46C,GAAkBG,GACf,4BAAM/6C,UAAU,uBACVuC,MAAQ,CACJ0b,SAAUy8B,EACV/nC,MAAO8nC,IAGXG,IAId,oBAACpqC,EAAD,CACI3L,QAAQ,IACRzG,MAAQ88C,EACRn7C,SAAW,SAAC3B,GAAD,OAAWuT,EAAe,CAAEupC,UAAW98C,KAClDsa,WAAaA,GAA8B,UAAhB8F,EAC3B4B,gBAAkB,kBAAM,EAAKhf,SAAU,CAAEod,YAAa,WACtDjc,MAAQ,CAAEoQ,MAAOyoC,GACjB/4C,YAAc5B,EAAI,cAAe,sBACjCT,UAAU,yBAGlB,2BAAKA,UAAU,gCACX,oBAACwQ,EAAD,CACI3L,QAAQ,KACRzG,MAAQi8C,EACRt6C,SAAW,SAAC3B,GAAD,OAAWuT,EAAe,CAAE0oC,YAAaj8C,KACpDsa,WAAaA,GAA8B,YAAhB8F,EAC3B4B,gBAAkB,kBAAM,EAAKhf,SAAU,CAAEod,YAAa,aACtDjc,MAAQ,CAAEoQ,MAAOV,GACjB5P,YAAc5B,EAAI,cAAe,sBACjCT,UAAU,0BAEd,2BAAKA,UAAU,iBACV66C,IAAmBG,GAChB,4BAAMh7C,UAAU,uBACVuC,MAAQ,CACJ0b,SAAUy8B,EACV/nC,MAAO8nC,IAGXI,GAGV,oBAACrqC,EAAD,CACI3L,QAAQ,MACRzG,MAAQo8C,EACRz6C,SAAW,SAAC3B,GAAD,OAAWuT,EAAe,CAAE6oC,eAAgBp8C,KACvDsa,WAAaA,GAA8B,aAAhB8F,EAC3B4B,gBAAkB,kBAAM,EAAKhf,SAAU,CAAEod,YAAa,cACtDjc,MAAQ,CAAE0b,SAAUy8B,EAAoB,KAAM/nC,MAAO8nC,GACrDz6C,UAAU,yBAEb66C,GAAkBG,GACf,4BAAMh7C,UAAU,uBACVuC,MAAQ,CACJ0b,SAAUy8B,EACV/nC,MAAO8nC,IAGXI,IAId,oBAACrqC,EAAD,CACI3L,QAAQ,IACRzG,MAAQ+8C,EACRp7C,SAAW,SAAC3B,GAAD,OAAWuT,EAAe,CAAEwpC,UAAW/8C,KAClDsa,WAAaA,GAA8B,UAAhB8F,EAC3B4B,gBAAkB,kBAAM,EAAKhf,SAAU,CAAEod,YAAa,WACtDjc,MAAQ,CAAEoQ,MAAOyoC,GACjB/4C,YAAc5B,EAAI,cAAe,sBACjCT,UAAU,+BAjU6B,GAU1CY,GAgUnB26C,EACF,2BAAKvoC,OAAO,KAAKC,QAAQ,YAAYF,MAAM,KAAKD,MAAM,8BAClD,4BAAMrV,EAAE,6BAA6BsT,KAAK,SAC1C,4BAAMtT,EAAE,8lBAIV6Z,EAAa,CACfvP,GAAI,CACA3B,KAAM,UAEV+zC,WAAY,CACR/zC,KAAM,SACNsN,QAAS,eAEb0mC,YAAa,CACTh0C,KAAM,SACNsN,QAAS,eAEb2mC,YAAa,CACTj0C,KAAM,SACNsN,QAAS,eAEbzB,gBAAiB,CACb7L,KAAM,UAEVk0C,cAAe,CACXl0C,KAAM,SACNsN,QAAS,SAEb6mC,eAAgB,CACZn0C,KAAM,SACNsN,QAAS,SAEb8mC,eAAgB,CACZp0C,KAAM,SACNsN,QAAS,SAEb+mC,mBAAoB,CAChBr0C,KAAM,UAEVs0C,kBAAmB,CACft0C,KAAM,SACNsN,QAAS,IAEbinC,cAAe,CACXv0C,KAAM,UAEVw0C,eAAgB,CACZx0C,KAAM,UAEVy0C,eAAgB,CACZz0C,KAAM,UAEV00C,mBAAoB,CAChB10C,KAAM,UACNsN,SAAS,GAEbqnC,oBAAqB,CACjB30C,KAAM,UACNsN,SAAS,GAEbsnC,oBAAqB,CACjB50C,KAAM,UACNsN,SAAS,GAEbunC,SAAU,CACN70C,KAAM,SACNsN,QAAS,mBAEbwnC,UAAW,CACP90C,KAAM,SACNsN,QAAS,mBAEbynC,UAAW,CACP/0C,KAAM,SACNsN,QAAS,mBAEb0nC,cAAe,CACXh1C,KAAM,UAEVuuC,QAAS,CACLvuC,KAAM,SACNsN,QAAS,GAEb5B,QAAS,CACL1L,KAAM,UACNsN,SAAS,GAEbqD,UAAW,CACP3Q,KAAM,UACNsN,SAAS,IAIjBrD,EAAmB,iBAAkB,CACjChN,MAAO5C,EAAI,0BAA2B,sBACtCkT,YAAalT,EAAI,oDAAqD,sBACtEqC,KAAM,CACF8Q,IAAK2nC,EACL1nC,WAAmC,oBAAhBjR,YAA8BA,YAAY+P,WAAQhD,GAEzEmE,SAAU,iBACVC,SAAU,CAAEtT,EAAI,UAAW,sBAAwBA,EAAI,QAAS,sBAAwBA,EAAI,WAAY,uBACxG0E,WAAYmS,EACZC,QAAS,CACLpS,WAAY,CACR4R,WAAW,IAGnB/C,SAAU,CACN4B,QAAQ,GAEZ1B,KAAMgmC,EACN/lC,KAAM,YAAwB,IAAbhP,EAAa,EAAbA,WAET4C,EAqBA5C,EArBA4C,GACAoyC,EAoBAh1C,EApBAg1C,WACAC,EAmBAj1C,EAnBAi1C,YACAC,EAkBAl1C,EAlBAk1C,YACApoC,EAiBA9M,EAjBA8M,gBACAqoC,EAgBAn1C,EAhBAm1C,cACAC,EAeAp1C,EAfAo1C,eACAC,EAcAr1C,EAdAq1C,eACAC,EAaAt1C,EAbAs1C,mBACAC,EAYAv1C,EAZAu1C,kBACAC,EAWAx1C,EAXAw1C,cACAC,EAUAz1C,EAVAy1C,eACAC,EASA11C,EATA01C,eACAC,EAQA31C,EARA21C,mBACAC,EAOA51C,EAPA41C,oBACAC,EAMA71C,EANA61C,oBACAC,EAKA91C,EALA81C,SACAC,EAIA/1C,EAJA+1C,UACAC,EAGAh2C,EAHAg2C,UACAC,EAEAj2C,EAFAi2C,cACAzG,EACAxvC,EADAwvC,QAGE6G,EAAiBb,EAAgB,4BAAM36C,UAAU,wBAAyB26C,GAAyB,GACnGc,EAAkBb,EAAiB,4BAAM56C,UAAU,wBAAyB46C,GAA0B,GACtGc,EAAkBb,EAAiB,4BAAM76C,UAAU,wBAAyB66C,GAA0B,GAEtGQ,EAAmB,CACrB,iBACAtzC,GACFhG,OAAQC,SAAUC,KAAK,KAEzB,OACI,2BAAKjC,UAAWq7C,EAAkB94C,MAAQ,CAAEkY,QAAS,SACjD,2BAAKza,UAAU,8BACX,oBAACwQ,EAAS6D,QAAV,CACIxP,QAAQ,KACRzG,MAAQ+7C,EACR53C,MAAQ,CAAEoQ,MAAOV,GACjBjS,UAAU,0BAEd,2BAAKA,UAAU,gBACVuC,MAAQ,CAAEoQ,MAAO8nC,EAAoBx8B,SAAUy8B,EAAoB,QAElEI,GAAsBU,EACxB,oBAAChrC,EAAS6D,QAAV,CACIxP,QAAQ,OACRzG,MAAQk8C,EACRt6C,UAAU,2BAEX86C,GAAsBU,GAE7B,oBAAChrC,EAAS6D,QAAV,CACIxP,QAAQ,IACRzG,MAAQ68C,EACR14C,MAAQ,CAAEoQ,MAAOyoC,GACjBp7C,UAAU,yBAGjBsJ,SAASqrC,GAAW,GACjB,2BAAK30C,UAAU,8BACX,oBAACwQ,EAAS6D,QAAV,CACIxP,QAAQ,KACRzG,MAAQg8C,EACR73C,MAAQ,CAAEoQ,MAAOV,GACjBjS,UAAU,0BAEd,2BAAKA,UAAU,gBACVuC,MAAQ,CAAEoQ,MAAO8nC,EAAoBx8B,SAAUy8B,EAAoB,QAElEK,GAAuBU,EACzB,oBAACjrC,EAAS6D,QAAV,CACIxP,QAAQ,OACRzG,MAAQm8C,EACRv6C,UAAU,2BAEX+6C,GAAuBU,GAE9B,oBAACjrC,EAAS6D,QAAV,CACIxP,QAAQ,IACRzG,MAAQ88C,EACR34C,MAAQ,CAAEoQ,MAAOyoC,GACjBp7C,UAAU,yBAIrBsJ,SAASqrC,GAAW,GACjB,2BAAK30C,UAAU,gCACX,oBAACwQ,EAAS6D,QAAV,CACIxP,QAAQ,KACRzG,MAAQi8C,EACR93C,MAAQ,CAAEoQ,MAAOV,GACjBjS,UAAU,0BAEd,2BAAKA,UAAU,gBACVuC,MAAQ,CAAEoQ,MAAO8nC,EAAoBx8B,SAAUy8B,EAAoB,QAElEM,GAAuBU,EACzB,oBAAClrC,EAAS6D,QAAV,CACIxP,QAAQ,OACRzG,MAAQo8C,EACRx6C,UAAU,2BAEXg7C,GAAuBU,GAE9B,oBAAClrC,EAAS6D,QAAV,CACIxP,QAAQ,IACRzG,MAAQ+8C,EACR54C,MAAQ,CAAEoQ,MAAOyoC,GACjBp7C,UAAU,2BAOlCsU,WAAY,CACR,CACInP,WAAYmS,EACZnD,KAAM,YAAsB,IAAlBhP,EAAkB,EAAlBA,WAEFg1C,EAoBAh1C,EApBAg1C,WACAC,EAmBAj1C,EAnBAi1C,YACAC,EAkBAl1C,EAlBAk1C,YACApoC,EAiBA9M,EAjBA8M,gBACAqoC,EAgBAn1C,EAhBAm1C,cACAC,EAeAp1C,EAfAo1C,eACAC,EAcAr1C,EAdAq1C,eACAC,EAaAt1C,EAbAs1C,mBACAC,EAYAv1C,EAZAu1C,kBACAC,EAWAx1C,EAXAw1C,cACAC,EAUAz1C,EAVAy1C,eACAC,EASA11C,EATA01C,eACAC,EAQA31C,EARA21C,mBACAC,EAOA51C,EAPA41C,oBACAC,EAMA71C,EANA61C,oBACAC,EAKA91C,EALA81C,SACAC,EAIA/1C,EAJA+1C,UACAC,EAGAh2C,EAHAg2C,UACAC,EAEAj2C,EAFAi2C,cACAzG,EACAxvC,EADAwvC,QAGE6G,EAAiBb,EAAgB,4BAAM36C,UAAU,wBAAyB26C,GAAyB,GACnGc,EAAkBb,EAAiB,4BAAM56C,UAAU,wBAAyB46C,GAA0B,GACtGc,EAAkBb,EAAiB,4BAAM76C,UAAU,wBAAyB66C,GAA0B,GAE5G,OACI,2BAAK76C,UAAU,iBAAiBuC,MAAQ,CAAEkY,QAAS,SAC/C,2BAAKza,UAAU,6BAA6BuC,MAAQ,CAAEkb,UAAW,WAC7D,oBAACjN,EAAS6D,QAAV,CACIxP,QAAQ,KACRzG,MAAQ+7C,EACR53C,MAAQ,CAAEoQ,MAAOV,GACjBjS,UAAU,0BAEd,2BAAKA,UAAU,gBACVuC,MAAQ,CAAEoQ,MAAO8nC,EAAoBx8B,SAAUy8B,EAAoB,QAElEI,GAAsBU,EACxB,4BAAMx7C,UAAU,wBAAyBs6C,KACtCQ,GAAsBU,GAE7B,oBAAChrC,EAAS6D,QAAV,CACIxP,QAAQ,IACRzG,MAAQ68C,EACR14C,MAAQ,CAAEoQ,MAAOyoC,GACjBp7C,UAAU,yBAGjBsJ,SAASqrC,GAAW,GACjB,2BAAK30C,UAAU,6BAA6BuC,MAAQ,CAAEkb,UAAW,WAC7D,oBAACjN,EAAS6D,QAAV,CACIxP,QAAQ,KACRzG,MAAQg8C,EACR73C,MAAQ,CAAEoQ,MAAOV,GACjBjS,UAAU,0BAEd,2BAAKA,UAAU,gBACVuC,MAAQ,CAAEoQ,MAAO8nC,EAAoBx8B,SAAUy8B,EAAoB,QAElEK,GAAuBU,EACzB,4BAAMz7C,UAAU,wBAAyBu6C,KACtCQ,GAAuBU,GAE9B,oBAACjrC,EAAS6D,QAAV,CACIxP,QAAQ,IACRzG,MAAQ88C,EACR34C,MAAQ,CAAEoQ,MAAOyoC,GACjBp7C,UAAU,yBAIrBsJ,SAASqrC,GAAW,GACjB,2BAAK30C,UAAU,+BAA+BuC,MAAQ,CAAEkb,UAAW,WAC/D,oBAACjN,EAAS6D,QAAV,CACIxP,QAAQ,KACRzG,MAAQi8C,EACR93C,MAAQ,CAAEoQ,MAAOV,GACjBjS,UAAU,0BAEd,2BAAKA,UAAU,gBACVuC,MAAQ,CAAEoQ,MAAO8nC,EAAoBx8B,SAAUy8B,EAAoB,QAElEM,GAAuBU,EACzB,4BAAM17C,UAAU,wBAAyBw6C,KACtCQ,GAAuBU,GAE9B,oBAAClrC,EAAS6D,QAAV,CACIxP,QAAQ,IACRzG,MAAQ+8C,EACR54C,MAAQ,CAAEoQ,MAAOyoC,GACjBp7C,UAAU,+BAlpBlD,CA4pBIX,GAAGqB,KAAMrB,GAAGoV,OAAQpV,GAAGsB,QAAStB,GAAGK,YAAaL,GAAGC,a,ggCC5pBvD,SAAW0Q,EAAQC,EAAUC,EAAWC,EAAeC,GACnDD,EAAgB9Q,GAAGK,aAAeL,GAAGM,OAD4B,IAE1Dc,EAAMuP,EAANvP,GACAG,EAAuBsP,EAAvBtP,UAAWC,EAAYqP,EAAZrP,SACXwP,EAAqBJ,EAArBI,kBAJ0D,EAKMF,EAAhEI,EAL0D,EAK1DA,kBAAmBE,EALuC,EAKvCA,mBAAoB4N,EALmB,EAKnBA,YAAa7N,EALM,EAKNA,SACpDG,EAAqHP,EAArHO,UAAW1J,EAA0GmJ,EAA1GnJ,aAAc2J,EAA4FR,EAA5FQ,cAAe9P,EAA6EsP,EAA7EtP,cAAeC,EAA8DqP,EAA9DrP,YAAa46C,EAAiDvrC,EAAjDurC,gBAAiBjxC,EAAgC0F,EAAhC1F,OAAQkxC,EAAwBxrC,EAAxBwrC,YAAahxC,EAAWwF,EAAXxF,QAC3GixC,EAAIzT,OAEJ0T,EACF,2BAAKhpC,MAAM,6BAA6BC,MAAM,KAAKC,OAAO,KAAKC,QAAQ,YAAYjT,UAAU,YACzF,4BAAM+Q,KAAK,OAAOtT,EAAE,oBACpB,4BACIA,EAAE,uIACN,4BAAMA,EAAE,yDAIVka,EAAmB,ygJAEnBokC,EApB2D,YAqB7D,aAAc,0EACDtqC,YADC,OAEV,EAAKxQ,MAAQ,CACT+6C,gBAAiB,EACjBC,aAAa,GAGjB,EAAKC,WAAa,EAAKA,WAAWv9C,KAAhB,GAPR,EArB+C,O,yTAAA,sDA+BxC,MACmBwC,KAAK/B,MAAlC+F,EADU,EACVA,WAAYwM,EADF,EACEA,cACbC,EAAqBC,mBAAmB,wBAGnB,IAAvB1M,EAAW2M,UACuB,iBAA9B,IAAOF,EAAP,cAAOA,KAA0D,OAAvBA,GAC1C/T,OAAO8E,KAAKiP,GAAoB1O,KAAI,SAACkC,GACI,kBAA1BD,EAAWC,GAClBD,EAAWC,KAAewM,EAAmBxM,GAE7CD,EAAWC,GAAawM,EAAmBxM,MAMvDuM,EAAc,CAACG,SAAS,OAhD6B,0CAoDzC,MAC8B3Q,KAAK/B,MAA5C+F,EADS,EACTA,WAAYwM,EADH,EACGA,cAEnBA,EAAe,CAAE5J,GAAI,sBAHL,EACkBqN,WAI9BjQ,EAAWg3C,OAAOx3C,QAClBxD,KAAK+6C,aAIqB,cAA1Bt5C,YAAYyV,WAAuD,MAA1BzV,YAAYyV,WACrD1G,EAAe,CACX8M,SAAU,KACV29B,WAAW,EACXC,QAAS,QAlEwC,0CAwEzCC,GAAW,MACIn7C,KAAK/B,MAA7BgW,EADoB,EACpBA,SACA+mC,EAFoB,EACVh3C,WACVg3C,OACQI,EAAcD,EAAUn3C,WAAhCg3C,OAEHA,EAAOx3C,SAAW43C,EAAW53C,SAC7Bk3C,YAAYzmC,EAAZ,2CAA+DonC,MAAM,WACrEX,YAAYzmC,EAAZ,6BACKqnC,WAAW,YACXA,WAAW,QACXA,WAAW,uBAlFqC,yCAsF1CzuC,GAAW,MACK7M,KAAK/B,MAA7B+F,EADmB,EACnBA,WAAYiQ,EADO,EACPA,SACZ+mC,EAAmCh3C,EAAnCg3C,OAAQO,EAA2Bv3C,EAA3Bu3C,SAAUC,EAAiBx3C,EAAjBw3C,cACVC,EAAc5uC,EAAU7I,WAAhCg3C,OAEHA,EAAOx3C,SAAWi4C,EAAWj4C,QACzBw3C,EAAOx3C,QACPxD,KAAK+6C,aAKTQ,GAAsC,cAA1B95C,YAAYyV,WAAuD,MAA1BzV,YAAYyV,UACjEwjC,YAAYzmC,EAAZ,2CAA+DonC,MAAM,iBAAkB,YAAY,GAAM,GAEzGX,YAAYzmC,EAAZ,2CAA+DonC,MAAM,iBAAkB,YAAY,GAAO,GAI1GE,GAAYC,GAA2C,cAA1B/5C,YAAYyV,WAAuD,MAA1BzV,YAAYyV,UAClFwjC,YAAYzmC,EAAZ,2CAA+DonC,MAAM,iBAAkB,gBAAiBG,GAAe,GAEvHd,YAAYzmC,EAAZ,2CAA+DonC,MAAM,iBAAkB,gBAAiB,KAAM,GAG9Gr7C,KAAKF,MAAMg7C,cACXJ,YAAYzmC,EAAZ,oCACK7I,KAAK,mDACLA,KAAK,sCACLswC,QAAQ,SAEb17C,KAAKC,SAAS,CAAC66C,YAAa,UArHyB,mCAyHhD,WACF7mC,EAAYjU,KAAK/B,MAAjBgW,SAEPymC,YAAYzmC,EAAZ,iDAAqEonC,MAAM,CACvEM,MAAM,EACNC,gBAAgB,IAGpBlB,YAAYzmC,EAAZ,yBAA6C4nC,GAAG,eAAe,SAACx7C,EAAGtC,EAAG+9C,GAC9D,EAAKh8C,MAAM+6C,kBAAoBiB,GAC/B,EAAK77C,SAAS,CAAC46C,gBAAiBiB,SAnIiB,gCAwInDC,EAAc5N,GAAU,MACMnuC,KAAK/B,MAAlCuS,EADuB,EACvBA,cACAwqC,EAFuB,EACRh3C,WACfg3C,OAEDt8B,EAAQs8B,EAAOe,GACrBvrC,EAAc,CACVwqC,mBACOA,EAAOp6C,QAAO,SAACo7C,EAAK7gC,GAAN,OAAcA,IAAQ4gC,KAAc9gB,MAAM,EAAGkT,IADlE,CAEIzvB,GAFJ,EAGOs8B,EAAOp6C,QAAO,SAACo7C,EAAK7gC,GAAN,OAAcA,IAAQ4gC,KAAc9gB,MAAMkT,SAjJV,uCAsJ5C/oC,GAAM,IACZy1C,EAAmB76C,KAAKF,MAAxB+6C,gBACP,GAA+B,iBAApBA,EACP,OAAO,KAHQ,MAMiB76C,KAAK/B,MAAlC+F,EANY,EAMZA,YAWPwM,EAjBmB,EAMAA,eAWL,CAACwqC,OAVEh3C,EAAVg3C,OAEkBj5C,KAAI,SAAC2c,EAAO1c,GAKjC,OAJIA,IAAU64C,IACVn8B,OAAYA,EAAUtZ,IAGnBsZ,SApK8C,+BA0KpD,aACqD1e,KAAK/B,MAAxD+F,EADF,EACEA,WAAYwM,EADd,EACcA,cAAe+G,EAD7B,EAC6BA,WAAYtD,EADzC,EACyCA,SADzC,EAEkCjU,KAAKF,MAArC+6C,EAFF,EAEEA,gBAAiBC,EAFnB,EAEmBA,YAEpBE,EAoBAh3C,EApBAg3C,OACAiB,EAmBAj4C,EAnBAi4C,cACA/9B,EAkBAla,EAlBAka,UACAg+B,EAiBAl4C,EAjBAk4C,WACAtqC,EAgBA5N,EAhBA4N,MACAC,EAeA7N,EAfA6N,OACAsqC,EAcAn4C,EAdAm4C,kBACAC,EAaAp4C,EAbAo4C,IACAC,EAYAr4C,EAZAq4C,WACAx+B,EAWA7Z,EAXA6Z,WACAjG,EAUA5T,EAVA4T,UACAwG,EASApa,EATAoa,OACAD,EAQAna,EARAma,OACAvI,EAOA5R,EAPA4R,UAGAhP,GAIA5C,EANAu3C,SAMAv3C,EALAw3C,cAKAx3C,EAJA4C,IACA0W,EAGAtZ,EAHAsZ,SACA29B,EAEAj3C,EAFAi3C,UACAC,EACAl3C,EADAk3C,QAEJ,GAAsB,IAAlBF,EAAOx3C,OACP,OACIoS,EACI,2BAAKE,IAAKxW,EAAG,gBAAiB,sBAAuBsS,MAAM,OAAOa,IAAK+D,IAEvE,oBAACikC,EAAD,CACI94C,KAAMg5C,EACNh8C,MAAOW,EAAG,qBAAsB,sBAChCg9C,aAAch9C,EAAG,+DAAgE,uBAEjF,oBAAC4d,EAAD,CACIsB,aAAc,CAAC,SACfvhB,MAAO,KACPgrB,UAAA,EACAxJ,SAAU,SAACC,GACP,IAAM69B,EAAY79B,EAAM3c,KAAI,SAACi6C,GAAD,MAAU,CAClCvkC,IAAKukC,EAAIvkC,IACT7Q,GAAIo1C,EAAIp1C,GACR1E,MAAO85C,EAAI95C,OAAS85C,EAAIlmC,IACxBpM,KAAMsyC,EAAIQ,SAAWR,EAAIxpC,gBAG7BhC,EAAc,CACVwqC,mBACOA,GADP,EAEOuB,OAIf59B,OAAQ,gBAAEC,EAAF,EAAEA,KAAF,OACJ,oBAACrV,EAAD,CAAQ1K,UAAU,qCAAqCoC,QAAS2d,GAC3Dtf,EAAG,aAAc,2BAQ9C,IAAMmc,EAAa,CACf,6BACgB,IAAhBq/B,GAAyB,qBACzBl0C,GACFhG,OAAOC,SAASC,KAAK,KAEvB,OACI8U,EACI,2BAAKE,IAAKxW,EAAG,gBAAiB,sBAAuBsS,MAAM,OAAOa,IAAK+D,IAEvE,oBAAC9W,EAAD,KACI,oBAAC0P,EAAD,KACI,oBAACI,EAAD,CAAWtN,MAAO5C,EAAG,iBAAkB,uBACnC,oBAACK,EAAD,CACIhB,MAAOW,EAAG,kBAAmB,sBAC7BrC,MAAOg/C,EACP96C,QAAS,CACL,CAACxC,MAAOW,EAAG,OAAQ,sBAAuBrC,MAAO,IACjD,CAAC0B,MAAOW,EAAG,yBAA0B,sBAAuBrC,MAAO,YACnE,CAAC0B,MAAOW,EAAG,mBAAoB,sBAAuBrC,MAAO,SAEjE2B,SAAU,SAAC3B,GAAD,OAAWuT,EAAc,CAACyrC,cAAeh/C,OAEvD,oBAACwS,EAAD,CACI9Q,MAAOW,EAAG,aAAc,sBACxB2L,QAASiT,EACTtf,SAAU,kBAAM4R,EAAc,CAAC0N,WAAYA,OAE/C,oBAACzO,EAAD,CACI9Q,MAAOW,EAAG,cAAe,sBACzB2L,QAASixC,EACTt9C,SAAU,kBAAM4R,EAAc,CAAC0rC,YAAaA,QAE9Ch+B,GACE,oBAACpY,EAAD,CACInH,MAAOW,EAAG,QAAS,sBACnBrC,MAAO2U,EACPhT,SAAU,SAAC3B,GAAD,OAAWuT,EAAc,CAACoB,MAAO3U,KAC3CqL,IAAK,IACLC,IAAK,QAGX2zC,GACE,oBAACp2C,EAAD,CACInH,MAAOW,EAAG,SAAU,sBACpBrC,MAAO4U,EACPjT,SAAU,SAAC3B,GAAD,OAAWuT,EAAc,CAACqB,OAAQ5U,KAC5CqL,IAAK,IACLC,IAAK,MAGb,oBAACkH,EAAD,CACI9Q,MAAOW,EAAG,sBAAuB,sBACjC2L,QAASkxC,EACTv9C,SAAU,kBAAM4R,EAAc,CAAC2rC,mBAAoBA,OAEvD,oBAAC1sC,EAAD,CACI9Q,MAAOW,EAAG,aAAc,sBACxB2L,QAASmxC,EACTx9C,SAAU,kBAAM4R,EAAc,CAAC4rC,KAAMA,QAG7C,oBAAC9sC,EAAD,CACIpN,MAAO5C,EAAG,iBAAkB,sBAC5B0S,cAAe,CACX,CACIrT,MAAOW,EAAG,cAAe,sBACzBrC,MAAOo/C,EACPz9C,SAAU,SAAC3B,GAAD,OAAWuT,EAAc,CAAC6rC,WAAYp/C,MAEpD,CACI0B,MAAOW,EAAG,cAAe,sBACzBrC,MAAO4gB,EACPjf,SAAU,SAAC3B,GAAD,OAAWuT,EAAc,CAACqN,WAAY5gB,MAEpD,CACI0B,MAAOW,EAAG,aAAc,sBACxBrC,MAAO2a,EACPhZ,SAAU,SAAC3B,GAAD,OAAWuT,EAAc,CAACoH,UAAW3a,SAI3D,oBAACuS,EAAD,CAAWtN,MAAO5C,EAAG,iBAAkB,sBAAuByS,aAAa,GACvE,oBAACpS,EAAD,CACIhB,MAAOW,EAAG,qBAAsB,sBAChCrC,MAAOkhB,EACPhd,QAAS,CACL,CAACxC,MAAOW,EAAG,MAAO,sBAAuBrC,MAAO,cAChD,CAAC0B,MAAOW,EAAG,SAAU,sBAAuBrC,MAAO,UACnD,CAAC0B,MAAOW,EAAG,SAAU,sBAAuBrC,MAAO,aAEvD2B,SAAU,SAAC3B,GAAD,OAAWuT,EAAc,CAAC2N,OAAQlhB,OAEhD,oBAAC0C,EAAD,CACIhB,MAAOW,EAAG,uBAAwB,sBAClCrC,MAAOmhB,EACPjd,QAAS,CACL,CAACxC,MAAOW,EAAG,OAAQ,sBAAuBrC,MAAO,cACjD,CAAC0B,MAAOW,EAAG,SAAU,sBAAuBrC,MAAO,UACnD,CAAC0B,MAAOW,EAAG,QAAS,sBAAuBrC,MAAO,aAEtD2B,SAAU,SAAC3B,GAAD,OAAWuT,EAAc,CAAC4N,OAAQnhB,SAIxD,2BAAK4B,UAAW4c,GACZ,2BAAK5c,UAAU,sBAAsBmnB,IAAMo2B,EAAM,MAAQ,OACpDpB,EAAOj5C,KAAI,SAAC2c,EAAO1c,GAAR,OACR,2BAAKnD,UAAU,0BAA0BtB,IAAKyE,GAC1C,2BAAKyQ,IAAKiM,EAAMjH,IACX5Y,UAAU,yBACViX,IAAK4I,EAAMxc,MACXd,MAAO,CACHwQ,MAAOsM,EAAY,OAAStM,EAC5BC,OAAQqqC,EAAa,OAASrqC,GAElC4qC,OAAQ,WACU,IAAVz6C,IAC+B,IAA3B,EAAKlC,MAAMg7C,aACX,EAAK76C,SAAS,CAAC66C,aAAa,KAIxC4B,QAAS,WACS,IAAV16C,IAC+B,IAA3B,EAAKlC,MAAMg7C,aACX,EAAK76C,SAAS,CAAC66C,aAAa,OAK7C,2BAAKj8C,UAAU,+BACVuC,MAAO,CACH4d,eAAgBb,EAChBxB,WAAYyB,KAGG,KAAlB69B,GAAwBE,IACtB,4BAAMt9C,UAAU,6BACVuC,MAAO,CACH6Q,gBAAiBoqC,EACjBjsC,QAAS+rC,EAAoB,QAAM3tC,KAGhDkQ,EAAMxc,OAAS+4C,GACZ,oBAAC5rC,EAAD,CACI3L,QAAU4Z,EACVze,UAAU,2BACVuC,MAAO,CAACoQ,MAAOqM,GACf5gB,MAAQyhB,EAAMxc,MACdtD,SAAW,SAAC3B,GAAD,OAAW,EAAK0/C,iBAAiB,CAACz6C,MAAOjF,GAAS,MAC7DsX,eAAiB,KAGxBmK,EAAMhV,MACH,oBAAC2F,EAAD,CACI3L,QAAUw3C,EACVr8C,UAAU,0BACVuC,MAAO,CAACoQ,MAAOoG,GACf3a,MAAQyhB,EAAMhV,KACd9K,SAAW,SAAC3B,GAAD,OAAW,EAAK0/C,iBAAiB,CAACjzC,KAAMzM,GAAS,MAC5DsX,eAAiB,WAOxCgD,GACG,2BAAK1Y,UAAU,+BACX,2BAAKA,UAAU,8BACX,oBAACe,EAAD,CACIjB,MAAOW,EAAG,QAAS,sBACnBrC,MAAO+9C,EAAOH,IAAmBG,EAAOH,GAAiB34C,OAAc,GACvEtD,SAAU,SAAC3B,GAAD,OAAW,EAAK0/C,iBAAiB,CAACz6C,MAAOjF,GAAS,SAGpE,2BAAK4B,UAAU,8BACX,oBAAC27C,EAAD,CACI77C,MAAOW,EAAG,OAAQ,sBAClBrC,MAAO+9C,EAAOH,IAAmBG,EAAOH,GAAiBnxC,MAAa,GACtE9K,SAAU,SAAC3B,GAAD,OAAW,EAAK0/C,iBAAiB,CAACjzC,KAAMzM,GAAS,SAGhD,SAAlBg/C,GACG,2BAAKp9C,UAAU,8BACX,oBAACe,EAAD,CACIjB,MAAOW,EAAG,OAAQ,sBAClBrC,MAAO+9C,EAAOH,IAAmBG,EAAOH,GAAiB/+B,MAAa,GACtEld,SAAU,SAAC3B,GAAD,OAAW,EAAK0/C,iBAAiB,CAAC7gC,KAAM7e,GAAS,SAIvE,2BAAK4B,UAAU,iCACVm8C,EAAOj5C,KAAI,SAAC2c,EAAO1c,GAAR,OACR,2BAAKnD,UAAU,qCAAqCtB,IAAKyE,GACpDA,EAAQ,GACL,oBAACyH,EAAD,CAASC,KAAMpK,EAAG,YAAa,uBACnC,4BAAMT,UAAU,mCACVoC,QAAS,kBAAM,EAAK27C,UAAU56C,EAAOA,EAAQ,KAE/C,2BAAK2P,MAAM,6BAA6BC,MAAM,KAAKC,OAAO,KACrDC,QAAQ,aACT,4BAAMlC,KAAK,OAAOtT,EAAE,oBACpB,4BACIA,EAAE,gEAKd,2BAAKmW,IAAKiM,EAAMjH,IACX5Y,UAAU,oCACViX,IAAKxW,EAAG,QAAS,sBACjB2B,QAAS,WACLy5C,YAAYzmC,EAAZ,yBAA6ConC,MAAM,YAAar5C,GAAO,GACvE,EAAK/B,SAAS,CAAC46C,gBAAiB74C,OAGxCA,EAAQ,EAAIg5C,EAAOx3C,QAChB,oBAACiG,EAAD,CAASC,KAAMpK,EAAG,aAAc,uBACpC,4BAAMT,UAAU,oCACVoC,QAAS,kBAAM,EAAK27C,UAAU56C,EAAOA,EAAQ,KAE/C,2BAAK2P,MAAM,6BAA6BC,MAAM,KAAKC,OAAO,KACrDC,QAAQ,aACT,4BAAMlC,KAAK,OAAOtT,EAAE,oBACpB,4BACIA,EAAE,8DAKd,oBAACmN,EAAD,CAASC,KAAMpK,EAAG,eAAgB,uBAC9B,oBAACiK,EAAD,CACI1K,UAAU,4CACV8C,KAAK,KACLV,QAAS,WACDe,IAAU64C,GAAiB,EAAK56C,SAAS,CAAC46C,gBAAiB,OAC/DrqC,EAAc,CAACwqC,OAAQA,EAAOp6C,QAAO,SAACo7C,EAAK7gC,GAAN,OAAcA,IAAQnZ,eAM/E,2BAAKnD,UAAU,+BACX,oBAACqe,EAAD,CACIsB,aAAc,CAAC,SACfvhB,MAAO49C,EACP5yB,UAAA,EACAxJ,SACI,SAACo+B,GACGrsC,EAAc,CACVwqC,mBACOA,GADP,EAEO6B,EAAK96C,KAAI,SAACi6C,GAAD,MAAU,CAClBvkC,IAAKukC,EAAIvkC,IACT7Q,GAAIo1C,EAAIp1C,GACR1E,MAAO85C,EAAI95C,OAAS85C,EAAIlmC,IACxBpM,KAAMsyC,EAAIQ,SAAWR,EAAIxpC,qBAM7CmM,OAAQ,gBAAEC,EAAF,EAAEA,KAAF,OACJ,oBAACrV,EAAD,CACI5K,MAAOW,EAAG,YAAa,sBACvBqC,KAAK,OACLV,QAAS2d,gBAtfI,GAoBpCnf,GAgfvB0W,EAAa,CACf6kC,OAAQ,CACJ/1C,KAAM,QACNsN,QAAS,IAEb0pC,cAAe,CACXh3C,KAAM,SACNsN,QAAS,IAEb2L,UAAW,CACPjZ,KAAM,UACNsN,SAAS,GAEb2pC,WAAY,CACRj3C,KAAM,UACNsN,SAAS,GAEbX,MAAO,CACH3M,KAAM,SACNsN,QAAS,KAEbV,OAAQ,CACJ5M,KAAM,SACNsN,QAAS,KAEb4pC,kBAAmB,CACfl3C,KAAM,UACNsN,SAAS,GAEb6pC,IAAK,CACDn3C,KAAM,UACNsN,SAAS,GAEb8pC,WAAY,CACRp3C,KAAM,UAEV4Y,WAAY,CACR5Y,KAAM,UAEV2S,UAAW,CACP3S,KAAM,UAEVkZ,OAAQ,CACJlZ,KAAM,SACNsN,QAAS,UAEb6L,OAAQ,CACJnZ,KAAM,SACNsN,QAAS,UAEbgpC,SAAU,CACNt2C,KAAM,UACNsN,SAAS,GAEbipC,cAAe,CACXv2C,KAAM,SACNsN,QAAS,KAEb5B,QAAS,CACL1L,KAAM,UACNsN,SAAS,GAEb3L,GAAI,CACA3B,KAAM,UAEV2Q,UAAW,CACP3Q,KAAM,UACNsN,SAAS,GAEb+K,SAAU,CACNrY,KAAM,SACNsN,QAAS,MAEb0oC,UAAW,CACPh2C,KAAM,UACNsN,SAAS,GAEb2oC,QAAS,CACLj2C,KAAM,SACNsN,QAAS,MAIjBrD,EAAkB,sBAAuB,CACrChN,MAAO5C,EAAG,+BAAgC,sBAC1CkT,YAAalT,EAAG,mCAAoC,sBACpDqC,KAAM,CACF8Q,IAAKkoC,EACLjoC,WAAmC,oBAAhBjR,YAA8BA,YAAY+P,WAAQhD,GAEzEmE,SAAU,iBACVC,SAAU,CAACtT,EAAG,QAAS,sBAAuBA,EAAG,UAAW,sBAAuBA,EAAG,SAAU,uBAChG0E,WAAYmS,EACZC,QAAS,CACLpS,WAAY,CACR4R,WAAW,IAGnB/C,SAAU,CACN4B,QAAQ,GAEZ1B,KAAM6nC,EACN5nC,KAAM,YAAwB,IAAbhP,EAAa,EAAbA,WAETg3C,EAiBAh3C,EAjBAg3C,OACAiB,EAgBAj4C,EAhBAi4C,cACA/9B,EAeAla,EAfAka,UACAg+B,EAcAl4C,EAdAk4C,WACAtqC,EAaA5N,EAbA4N,MACAC,EAYA7N,EAZA6N,OACAsqC,EAWAn4C,EAXAm4C,kBACAC,EAUAp4C,EAVAo4C,IACAC,EASAr4C,EATAq4C,WACAx+B,EAQA7Z,EARA6Z,WACAjG,EAOA5T,EAPA4T,UACAwG,EAMApa,EANAoa,OACAD,EAKAna,EALAma,OACAvX,EAIA5C,EAJA4C,GACA0W,EAGAtZ,EAHAsZ,SACA29B,EAEAj3C,EAFAi3C,UACAC,EACAl3C,EADAk3C,QAEE38B,EAAiB,CACnB,4BACkB,aAAlB09B,GAAgC,+BAChCr1C,GACFhG,OAAOC,SAASC,KAAK,KAEvB,OACI,2BAAKjC,UAAW0f,GACZ,2BAAK1f,UAAU,sBAAsBmnB,IAAMo2B,EAAM,MAAQ,OACpDpB,EAAOj5C,KAAI,SAAC2c,EAAO1c,GAAR,OACR,2BAAKnD,UAAU,0BAA0BtB,IAAKyE,GAC1C,2BAAKyQ,IAAKiM,EAAMjH,IACX5Y,UAAU,yBACViX,IAAK4I,EAAMxc,MACXd,MAAO,CACHwQ,MAAOsM,EAAY,OAAStM,EAC5BC,OAAQqqC,EAAa,OAASrqC,KAGvC,2BAAKhT,UAAU,+BACVuC,MAAO,CACH4d,eAAgBb,EAChBxB,WAAYyB,KAGG,KAAlB69B,GAAwBE,IACtB,yBAAGt9C,UAAU,6BACV2B,OAA0B,KAAlBy7C,GAAuB,SAC/B1iC,IAAI,sBACJlN,KAAyB,SAAlB4vC,GAA8Bv9B,EAAM5C,KAAQ4C,EAAM5C,KAAO,IAChE1a,MAAO,CACH6Q,gBAAiBoqC,EACjBjsC,QAAS+rC,EAAoB,QAAM3tC,KAG7CkQ,EAAMxc,OAAS+4C,GACZ,oBAAC5rC,EAAS6D,QAAV,CACIxP,QAAU4Z,EACVze,UAAU,2BACVuC,MAAO,CAACoQ,MAAOqM,GACf5gB,MAAQyhB,EAAMxc,QAGrBwc,EAAMhV,MACH,oBAAC2F,EAAS6D,QAAV,CACIxP,QAAUw3C,EACVr8C,UAAU,0BACVuC,MAAO,CAACoQ,MAAOoG,GACf3a,MAAQyhB,EAAMhV,eAUlDyJ,WAAY,CACR,CACInP,WAAYmS,EACZtD,SAAU,CACN4B,QAAQ,GAEZzB,KAAM,YAAwB,IAAbhP,EAAa,EAAbA,WAETg3C,EAaAh3C,EAbAg3C,OACAiB,EAYAj4C,EAZAi4C,cACA/9B,EAWAla,EAXAka,UACAg+B,EAUAl4C,EAVAk4C,WACAtqC,EASA5N,EATA4N,MACAC,EAQA7N,EARA6N,OACAsqC,EAOAn4C,EAPAm4C,kBACAC,EAMAp4C,EANAo4C,IACAC,EAKAr4C,EALAq4C,WACAx+B,EAIA7Z,EAJA6Z,WACAjG,EAGA5T,EAHA4T,UACAwG,EAEApa,EAFAoa,OACAD,EACAna,EADAma,OAEEI,EAAiB,CACnB,4BACkB,aAAlB09B,GAAgC,gCAClCr7C,OAAOC,SAASC,KAAK,KAEvB,OACI,2BAAKjC,UAAW0f,GACZ,2BAAK1f,UAAU,sBAAsBi+C,aAAA,WAAuBV,EAAvB,KAChCpB,EAAOj5C,KAAI,SAAC2c,EAAO1c,GAAR,OACR,2BAAKnD,UAAU,0BAA0BtB,IAAKyE,GAC1C,2BAAKyQ,IAAKiM,EAAMjH,IACX5Y,UAAU,yBACViX,IAAK4I,EAAMxc,MACXd,MAAO,CACHwQ,MAAOsM,EAAY,OAAStM,EAC5BC,OAAQqqC,EAAa,OAASrqC,KAGvC,2BAAKhT,UAAU,+BACVuC,MAAO,CACH4d,eAAgBb,EAChBxB,WAAYyB,KAGG,KAAlB69B,GAAwBE,IACtB,yBAAGt9C,UAAU,6BACV2B,OAA0B,KAAlBy7C,GAAuB,SAC/B1iC,IAAI,sBACJlN,KAAyB,SAAlB4vC,GAA8Bv9B,EAAM5C,KAAQ4C,EAAM5C,KAAO,IAChE1a,MAAO,CACH6Q,gBAAiBoqC,EACjBjsC,QAAS+rC,EAAoB,QAAM3tC,KAG7CkQ,EAAMxc,OACH,0BAAIrD,UAAU,2BACVuC,MAAO,CAACoQ,MAAOqM,IAEda,EAAMxc,OAGdwc,EAAMhV,MACH,yBAAG7K,UAAU,0BACVuC,MAAO,CAACoQ,MAAOoG,IAEb8G,EAAMhV,eAW/C,CACI1F,WAAYmS,EACZnD,KAAM,YAAwB,IAAbhP,EAAa,EAAbA,WAETg3C,EAaAh3C,EAbAg3C,OACAiB,EAYAj4C,EAZAi4C,cACA/9B,EAWAla,EAXAka,UACAg+B,EAUAl4C,EAVAk4C,WACAtqC,EASA5N,EATA4N,MACAC,EAQA7N,EARA6N,OACAsqC,EAOAn4C,EAPAm4C,kBACAC,EAMAp4C,EANAo4C,IACAC,EAKAr4C,EALAq4C,WACAx+B,EAIA7Z,EAJA6Z,WACAjG,EAGA5T,EAHA4T,UACAwG,EAEApa,EAFAoa,OACAD,EACAna,EADAma,OAEEI,EAAiB,CACnB,4BACkB,aAAlB09B,GAAgC,gCAClCr7C,OAAOC,SAASC,KAAK,KAEvB,OACI,2BAAKjC,UAAW0f,GACZ,2BAAK1f,UAAU,sBAAsBi+C,aAAA,WAAuBV,EAAvB,KAChCpB,EAAOj5C,KAAI,SAAC2c,EAAO1c,GAAR,OACR,2BAAKnD,UAAU,0BAA0BtB,IAAKyE,GAC1C,2BAAKyQ,IAAKiM,EAAMjH,IACX5Y,UAAU,yBACViX,IAAK,eACL1U,MAAO,CACHwQ,MAAOsM,EAAY,OAAStM,EAC5BC,OAAQqqC,EAAa,OAASrqC,KAGvC,2BAAKhT,UAAU,+BACVuC,MAAO,CACH4d,eAAgBb,EAChBxB,WAAYyB,IAGjB,yBAAGvf,UAAU,6BACV2B,OAAO,SACP+Y,IAAI,sBACJlN,KAAyB,SAAlB4vC,GAA8Bv9B,EAAM5C,KAAQ4C,EAAM5C,KAAO,IAChE1a,MAAO,CACH6Q,gBAAiBoqC,EACjBjsC,QAAS+rC,EAAoB,QAAM3tC,KAGzCkQ,EAAMxc,OACH,0BAAIrD,UAAU,2BACVuC,MAAO,CAACoQ,MAAOqM,IAEda,EAAMxc,OAGdwc,EAAMhV,MACH,yBAAG7K,UAAU,0BACVuC,MAAO,CAACoQ,MAAOoG,IAEb8G,EAAMhV,eAW/C,CACI1F,WAAYmS,EACZnD,KAAM,YAAwB,IAAbhP,EAAa,EAAbA,WAETg3C,EAYAh3C,EAZAg3C,OACAiB,EAWAj4C,EAXAi4C,cACA/9B,EAUAla,EAVAka,UACAg+B,EASAl4C,EATAk4C,WACAtqC,EAQA5N,EARA4N,MACAC,EAOA7N,EAPA6N,OACAsqC,EAMAn4C,EANAm4C,kBACAE,EAKAr4C,EALAq4C,WACAx+B,EAIA7Z,EAJA6Z,WACAjG,EAGA5T,EAHA4T,UACAwG,EAEApa,EAFAoa,OACAD,EACAna,EADAma,OAEEI,EAAiB,CACnB,4BACkB,aAAlB09B,GAAgC,gCAClCr7C,OAAOC,SAASC,KAAK,KAEvB,OACI,2BAAKjC,UAAW0f,GACZ,2BAAK1f,UAAU,uBACVm8C,EAAOj5C,KAAI,SAAC2c,EAAO1c,GAAR,OACR,2BAAKnD,UAAU,0BAA0BtB,IAAKyE,GAC1C,2BAAKyQ,IAAKiM,EAAMjH,IACX5Y,UAAU,yBACViX,IAAK,eACL1U,MAAO,CACHwQ,MAAOsM,EAAY,OAAStM,EAC5BC,OAAQqqC,EAAa,OAASrqC,KAGvC,2BAAKhT,UAAU,+BACVuC,MAAO,CACH4d,eAAgBb,EAChBxB,WAAYyB,IAGjB,yBAAGvf,UAAU,6BACV2B,OAAO,SACP+Y,IAAI,sBACJlN,KAAyB,SAAlB4vC,GAA8Bv9B,EAAM5C,KAAQ4C,EAAM5C,KAAO,IAChE1a,MAAO,CACH6Q,gBAAiBoqC,EACjBjsC,QAAS+rC,EAAoB,QAAM3tC,KAGzCkQ,EAAMxc,OACH,0BAAIrD,UAAU,2BACVuC,MAAO,CAACoQ,MAAOqM,IAEda,EAAMxc,OAGdwc,EAAMhV,MACH,yBAAG7K,UAAU,0BACVuC,MAAO,CAACoQ,MAAOoG,IAEb8G,EAAMhV,eAW/C,CACI1F,WAAYmS,EACZnD,KAAM,YAAwB,IAAbhP,EAAa,EAAbA,WAETg3C,EAYAh3C,EAZAg3C,OACAiB,EAWAj4C,EAXAi4C,cACA/9B,EAUAla,EAVAka,UACAg+B,EASAl4C,EATAk4C,WACAtqC,EAQA5N,EARA4N,MACAC,EAOA7N,EAPA6N,OACAsqC,EAMAn4C,EANAm4C,kBACAE,EAKAr4C,EALAq4C,WACAx+B,EAIA7Z,EAJA6Z,WACAjG,EAGA5T,EAHA4T,UACAwG,EAEApa,EAFAoa,OACAD,EACAna,EADAma,OAEEI,EAAiB,CACnB,4BACkB,aAAlB09B,GAAgC,gCAClCr7C,OAAOC,SAASC,KAAK,KAEvB,OACI,2BAAKjC,UAAW0f,GACZ,2BAAK1f,UAAU,uBACVm8C,EAAOj5C,KAAI,SAAC2c,EAAO1c,GAAR,OACR,2BAAKnD,UAAU,0BAA0BtB,IAAKyE,GAC1C,2BAAKyQ,IAAKiM,EAAMjH,IACX5Y,UAAU,yBACViX,IAAK,eACL1U,MAAO,CACHwQ,MAAOsM,EAAY,OAAStM,EAC5BC,OAAQqqC,EAAa,OAASrqC,KAGvC,2BAAKhT,UAAU,+BACVuC,MAAO,CACH4d,eAAgBb,EAChBxB,WAAYyB,IAGjB,yBAAGvf,UAAU,6BACV2B,OAAO,SACP+Y,IAAI,sBACJlN,KAAyB,SAAlB4vC,GAA8Bv9B,EAAM5C,KAAQ4C,EAAM5C,UAAOtN,EAChEpN,MAAO,CACH6Q,gBAAiBoqC,EACjBjsC,QAAS+rC,EAAoB,QAAM3tC,KAG1C,0BAAI3P,UAAU,2BACVuC,MAAO,CAACoQ,MAAOqM,IAEda,EAAMxc,OAEX,yBAAGrD,UAAU,0BACVuC,MAAO,CAACoQ,MAAOoG,IAEb8G,EAAMhV,kBAj9BvD,CA69BGxL,GAAGqB,KAAMrB,GAAGoV,OAAQpV,GAAGsB,QAAStB,GAAGK,YAAaL,GAAGC,a,keC79BtD,OACA,O,0XAEA,SAAY0Q,EAAQC,EAAUC,EAAWC,EAAeC,GACpDD,EAAgB9Q,GAAGK,aAAeL,GAAGM,OAD8B,IAE3Dc,EAAOuP,EAAPvP,GACAG,EAAwBsP,EAAxBtP,UAAWC,EAAaqP,EAAbrP,SACXwP,EAAsBJ,EAAtBI,kBAJ2D,EAKMF,EAAjEI,EAL2D,EAK3DA,kBAAmB6F,EALwC,EAKxCA,cAAeuF,EALyB,EAKzBA,iBAAkBnL,EALO,EAKPA,SACpDhR,EAAgE4Q,EAAhE5Q,YAAamR,EAAmDP,EAAnDO,UAAW1J,EAAwCmJ,EAAxCnJ,aAAcnG,EAA0BsP,EAA1BtP,cAAe4J,EAAW0F,EAAX1F,OAIvDuR,EACF,2BAAKtY,QAAQ,MAAMoE,GAAG,UAAU+K,MAAM,6BAA6BS,EAAE,MAAMC,EAAE,MAAMP,QAAQ,eAAc,4BAAMxV,EAAE,iIAG/Gme,EAA0B,CAC5B,CACI9b,MAAM,MACNgD,KAAO,2BAAKiQ,MAAM,OAAOC,OAAO,OAAOC,QAAQ,YAAYH,MAAM,6BAA6B+I,YAAU,UAAUC,YAAU,UAAUC,kBAAgB,QAAQC,oBAAkB,SAAQ,4BAAMzI,EAAE,QAAQC,EAAE,QAAQT,MAAM,QAAQC,OAAO,QAAQjC,KAAK,YAAiB,4BAAMwC,EAAE,SAASC,EAAE,QAAQT,MAAM,QAAQC,OAAO,QAAQjC,KAAK,YAAiB,4BAAMwC,EAAE,QAAQC,EAAE,QAAQT,MAAM,QAAQC,OAAO,QAAQjC,KAAK,YAAiB,4BAAMwC,EAAE,QAAQC,EAAE,SAAST,MAAM,QAAQC,OAAO,QAAQjC,KAAK,cAEje,CACIjR,MAAM,QACNgD,KAAO,2BAAKiQ,MAAM,OAAOC,OAAO,OAAOC,QAAQ,YAAYH,MAAM,6BAA6B+I,YAAU,UAAUC,YAAU,UAAUC,kBAAgB,QAAQC,oBAAkB,SAAQ,4BAAMzI,EAAE,QAAQC,EAAE,QAAQT,MAAM,QAAQC,OAAO,QAAQjC,KAAK,YAAiB,4BAAMwC,EAAE,SAASC,EAAE,QAAQT,MAAM,QAAQC,OAAO,QAAQjC,KAAK,YAAiB,4BAAMwC,EAAE,QAAQC,EAAE,QAAQT,MAAM,QAAQC,OAAO,QAAQjC,KAAK,YAAiB,4BAAMwC,EAAE,QAAQC,EAAE,SAAST,MAAM,QAAQC,OAAO,OAAOjC,KAAK,cAEhe,CACIjR,MAAM,SACNgD,KAAO,2BAAKiQ,MAAM,OAAOC,OAAO,OAAOC,QAAQ,YAAYH,MAAM,6BAA6B+I,YAAU,UAAUC,YAAU,UAAUC,kBAAgB,QAAQC,oBAAkB,SAAQ,4BAAMzI,EAAE,QAAQC,EAAE,QAAQT,MAAM,IAAIC,OAAO,QAAQjC,KAAK,YAAiB,4BAAMwC,EAAE,SAASC,EAAE,QAAQT,MAAM,QAAQC,OAAO,QAAQjC,KAAK,YAAiB,4BAAMwC,EAAE,QAAQC,EAAE,QAAQT,MAAM,QAAQC,OAAO,QAAQjC,KAAK,YAAiB,4BAAMwC,EAAE,QAAQC,EAAE,QAAQT,MAAM,QAAQC,OAAO,QAAQjC,KAAK,cAE5d,CACIjR,MAAM,OACNgD,KAAO,2BAAKiQ,MAAM,OAAOC,OAAO,OAAOC,QAAQ,YAAYH,MAAM,6BAA6B+I,YAAU,UAAUC,YAAU,UAAUC,kBAAgB,QAAQC,oBAAkB,SAAQ,4BAAMzI,EAAE,QAAQC,EAAE,QAAQT,MAAM,QAAQC,OAAO,QAAQjC,KAAK,YAAiB,4BAAMwC,EAAE,SAASC,EAAE,QAAQT,MAAM,QAAQC,OAAO,QAAQjC,KAAK,YAAiB,4BAAMwC,EAAE,QAAQC,EAAE,QAAQT,MAAM,QAAQC,OAAO,QAAQjC,KAAK,YAAiB,4BAAMwC,EAAE,QAAQC,EAAE,SAAST,MAAM,QAAQC,OAAO,QAAQjC,KAAK,eAI/dmtC,EAjC6D,YAmC/D,aAAc,0EACAzsC,YADA,OAEV,EAAKxQ,MAAQ,CACT+W,WAAW,EACXC,aAAc,GACd3X,cAAc,EACd4X,kBAAmB,WACnB3X,mBAAmB,GAEvB,EAAK4J,YAAc,EAAKA,YAAYxL,KAAjB,GACnB,EAAKwZ,WAAa,EAAKA,WAAWxZ,KAAhB,GAClB,EAAKyZ,gBAAkB,EAAKA,gBAAgBzZ,KAArB,GAXb,EAnCiD,O,yTAAA,sDAiD1C,MACqBwC,KAAK/B,MAAnC+F,EADS,EACTA,WAAYwM,EADH,EACGA,cACdC,EAAqBC,mBAAmB,kBAGnB,IAAvB1M,EAAW2M,UACuB,iBAA9B,IAAOF,EAAP,cAAOA,KAA0D,OAAvBA,GAC1C/T,OAAO8E,KAAKiP,GAAoB1O,KAAI,SAACkC,GACI,kBAA1BD,EAAWC,GAClBD,EAAWC,KAAewM,EAAmBxM,GAE7CD,EAAWC,GAAawM,EAAmBxM,MAMvDuM,EAAe,CAAEG,SAAS,OAlE6B,0CAsE3C,MACgC3Q,KAAK/B,MAA7C+F,EADQ,EACRA,WAAYwM,EADJ,EACIA,cAAeyD,EADnB,EACmBA,SACdjQ,EAAbiX,SAERzK,EAAe,CAAEyK,SAAUA,iBAAiBhH,MA1Ee,2CA6E1C,MAC0DjU,KAAKF,MAAzEgX,EADU,EACVA,aAAc3X,EADJ,EACIA,aAAc4X,EADlB,EACkBA,kBAAmB3X,EADrC,EACqCA,kBADrC,EAEmBY,KAAK/B,MAAtBuS,GAFF,EAEVxM,WAFU,EAEEwM,eAChBrR,IAECa,KAAKC,SAAS,CACVd,cAAc,IAElBqR,EAAc,CACV7O,KAAMmV,EACNK,UAAWJ,KAIhB3X,IACCY,KAAKC,SAAS,CACVb,mBAAmB,IAEvBoR,EAAc,CACV2G,UAAWJ,OAhGwC,oCAqGjD,IACHF,EAAa7W,KAAKF,MAAlB+W,UAEP7W,KAAKC,SAAU,CACX4W,WAAYA,MAzG2C,iCA6GpDO,GACPpX,KAAKC,SAAS,CACV6W,aAAcM,EACdjY,cAAc,MAhHyC,sCAoH/CkY,GACZrX,KAAKC,SAAS,CACV8W,kBAAmBM,EACnBjY,mBAAmB,MAvHoC,+BA2HtD,aAC+BY,KAAK/B,MAAlC+F,EADF,EACEA,WAAYwM,EADd,EACcA,cAEfyK,EA+DAjX,EA/DAiX,SACArF,EA8DA5R,EA9DA4R,UACA4B,EA6DAxT,EA7DAwT,MACAwlC,EA4DAh5C,EA5DAg5C,qBACAC,EA2DAj5C,EA3DAi5C,sBACAC,EA0DAl5C,EA1DAk5C,oBACAC,EAyDAn5C,EAzDAm5C,uBACAC,EAwDAp5C,EAxDAo5C,qBACAC,EAuDAr5C,EAvDAq5C,sBACAC,EAsDAt5C,EAtDAs5C,oBACAC,EAqDAv5C,EArDAu5C,0BACAC,EAoDAx5C,EApDAw5C,qBACAC,EAmDAz5C,EAnDAy5C,gBACAC,EAkDA15C,EAlDA05C,iBACAC,EAiDA35C,EAjDA25C,eACAC,EAgDA55C,EAhDA45C,kBACAC,EA+CA75C,EA/CA65C,gBACAC,EA8CA95C,EA9CA85C,iBACAC,EA6CA/5C,EA7CA+5C,cACAC,EA4CAh6C,EA5CAg6C,iBACAC,EA2CAj6C,EA3CAi6C,eACAC,EA0CAl6C,EA1CAk6C,gBACAC,EAyCAn6C,EAzCAm6C,eACAC,EAwCAp6C,EAxCAo6C,qBACAC,EAuCAr6C,EAvCAq6C,gBACAC,EAsCAt6C,EAtCAs6C,eACA38C,EAqCAqC,EArCArC,KACAkX,EAoCA7U,EApCA6U,SACAC,EAmCA9U,EAnCA8U,UACA3B,EAkCAnT,EAlCAmT,UACAjV,EAiCA8B,EAjCA9B,MACA2b,EAgCA7Z,EAhCA6Z,WACA0gC,EA+BAv6C,EA/BAu6C,UACAC,EA8BAx6C,EA9BAw6C,cACAC,EA6BAz6C,EA7BAy6C,gBACAC,GA4BA16C,EA5BA06C,oBACAC,GA2BA36C,EA3BA26C,aACAC,GA0BA56C,EA1BA46C,gBACAC,GAyBA76C,EAzBA66C,mBACAC,GAwBA96C,EAxBA86C,iBACAC,GAuBA/6C,EAvBA+6C,kBACAC,GAsBAh7C,EAtBAg7C,eACAC,GAqBAj7C,EArBAi7C,kBACAC,GAoBAl7C,EApBAk7C,gBACAC,GAmBAn7C,EAnBAm7C,iBACAC,GAkBAp7C,EAlBAo7C,iBACAC,GAiBAr7C,EAjBAq7C,gBACA31C,GAgBA1F,EAhBA0F,KACAkO,GAeA5T,EAfA4T,UACAC,GAcA7T,EAdA6T,SACAynC,GAaAt7C,EAbAs7C,aACAC,GAYAv7C,EAZAu7C,eACAC,GAWAx7C,EAXAw7C,mBACAC,GAUAz7C,EAVAy7C,eACAC,GASA17C,EATA07C,kBACAC,GAQA37C,EARA27C,gBACAC,GAOA57C,EAPA47C,iBACAC,GAMA77C,EANA67C,cACAC,GAKA97C,EALA87C,iBACAC,GAIA/7C,EAJA+7C,eACAC,GAGAh8C,EAHAg8C,gBACAC,GAEAj8C,EAFAi8C,gBACAC,GACAl8C,EADAk8C,eAGGrpC,GAAa7W,KAAKF,MAAlB+W,UAED2E,GAAiB,CACnB,wBADmB,kBAEDhE,GACpB5W,OAAQC,SAAUC,KAAM,KAEpB2a,GAAa,CACf,sBACF7a,OAAQC,SAAUC,KAAM,KAEpBmB,GAAY,CACd,iBACc,KAAdkV,GAAA,IAAwBA,GAC1BvW,OAAQC,SAAUC,KAAK,IAEnBq/C,GAAmBjD,EAAsBM,EAAuB,IAAMH,EAAwBG,EAAuB,IAAML,EAAyBK,EAAuB,IAAMJ,EAAuBI,EACxM4C,GAAczC,EAAiBU,EAAkB,IAAMP,EAAmBO,EAAkB,IAAMT,EAAoBS,EAAkB,IAAMR,EAAkBQ,EAChKgC,GAAatC,EAAgBO,EAAiB,IAAMJ,EAAkBI,EAAiB,IAAMN,EAAmBM,EAAiB,IAAML,EAAiBK,EACxJgC,GAAe1B,GAAkBQ,GAAmB,IAAML,GAAoBK,GAAmB,IAAMP,GAAqBO,GAAmB,IAAMN,GAAmBM,GACxKmB,GAAcvB,GAAiBK,GAAkB,IAAMF,GAAmBE,GAAkB,IAAMJ,GAAoBI,GAAkB,IAAMH,GAAkBG,GAChKmB,GAAcf,GAAiBQ,GAAkB,IAAML,GAAmBK,GAAkB,IAAMP,GAAoBO,GAAkB,IAAMN,GAAkBM,GAChKQ,GAAaZ,GAAgBK,GAAiB,IAAMF,GAAkBE,GAAiB,IAAMJ,GAAmBI,GAAiB,IAAMH,GAAiBG,GAE9J,OACItqC,EACI,2BAAKE,IAAKxW,EAAG,WAAY,sBAAuBsS,MAAM,OAAOa,IAjNpD,m3MAmNT,oBAAC/S,EAAD,KACI,oBAACuV,EAAD,KACI,oBAACuF,EAAD,CACIvd,MAAQua,EACR5Y,SAAW,SAAE8hD,GAAF,OAAgBlwC,EAAe,CAAEgH,MAAOkpC,QAG3D,oBAACtxC,EAAD,KACI,oBAACI,EAAD,CACItN,MAAQ5C,EAAI,qBAAsB,uBAElC,oBAAC,EAAAtB,gBAAD,CACIW,MAAQW,EAAG,aAAc,sBACzBrC,MAAQqgD,EACR1+C,SAAW,SAAC3B,GAAD,OAAWuT,EAAe,CAAC8sC,oBAAqBrgD,OAE/D,oBAAC,EAAAe,gBAAD,CACIW,MAAQW,EAAG,eAAgB,sBAC3BrC,MAAQsgD,EACR3+C,SAAW,SAAC3B,GAAD,OAAWuT,EAAe,CAAC+sC,0BAA2BtgD,OAErE,oBAAC6I,EAAD,CACInH,MAAQW,EAAI,oBAAqB,sBACjCgJ,IAAM,EACNC,IAAM,GACNtL,MAAQ+/C,EACRp+C,SAAW,SAAC3B,GAAD,OAAWuT,EAAe,CAAEwsC,qBAAsB//C,OAEjE,oBAAC6I,EAAD,CACInH,MAAQW,EAAI,qBAAsB,sBAClCgJ,IAAM,EACNC,IAAM,IACNtL,MAAQggD,EACRr+C,SAAW,SAAC3B,GAAD,OAAWuT,EAAe,CAAEysC,sBAAuBhgD,OAElE,oBAACoB,EAAD,CACIM,MAAQW,EAAI,UAAW,sBACvBT,UAAU,yBAEd,2BAAKA,UAAU,wBACX,gCAAOS,EAAI,OAAQ,uBACnB,2BAAKT,UAAU,qBAAqBtB,IAAI,QACnC,CAAE,KAAM,KAAM,KAAM,KAAMwE,KAAK,SAAEia,EAAMC,GAAR,OAC5B,4BACIpd,UAAA,eAAyB2+C,IAAyBxhC,EAAO,WAAa,IACtEze,IAAK0e,EACLhb,QAAS,kBAAMuP,EAAe,CAAEgtC,qBAAsBxhC,MAEjDA,QAMjBvB,EAAwB1Y,KAAI,SAACoa,EAAKC,GAAN,OACxB,oBAACtW,EAAD,CACIjH,UAAU,+BACVtB,IAAK6e,EACLtC,WAAYqC,EAAIxa,KAChB1E,MAAO+G,EAAW,mBAAqBmY,EAAIxd,OAC3C2J,IAAK,EACLC,IAAK,IACL3J,SAAU,SAAE3B,GAAF,OAAauT,EAAcA,EAAdA,GAAkB,mBAAqB2L,EAAIxd,MAAQ1B,WAK1F,oBAACuS,EAAD,CACItN,MAAQ5C,EAAI,gBAAiB,sBAC7ByS,aAAa,GAEb,oBAAC1T,EAAD,CACIM,MAAQW,EAAI,+BAAgC,uBAE5C,oBAACiK,EAAD,CACI1K,UAAU,4CACVoC,QAAU,WACF4V,IACA,EAAK7N,gBAIX1J,EAAI,iBAAkB,wBAGhC,oBAAC,EAAAtB,gBAAD,CACIW,MAAQW,EAAI,aAAc,sBAC1BrC,MAAQ6b,EACRla,SAAW,SAAC3B,GAAD,OAAWuT,EAAe,CAACsI,UAAW7b,OAErD,oBAAC6I,EAAD,CACInH,MAAQW,EAAI,iBAAkB,sBAC9BrC,MAAO4b,EACPvQ,IAAK,EACLC,IAAK,IACL3J,SAAU,SAAE3B,GAAF,OAAauT,EAAe,CAAEqI,SAAU5b,OAEtD,oBAAC,EAAAe,gBAAD,CACIW,MAAQW,EAAG,aAAc,sBACzBrC,MAAQkhD,EACRv/C,SAAW,SAAC3B,GAAD,OAAWuT,EAAe,CAAC2tC,eAAgBlhD,OAE1D,oBAAC,EAAAe,gBAAD,CACIW,MAAQW,EAAG,eAAgB,sBAC3BrC,MAAQmhD,EACRx/C,SAAW,SAAC3B,GAAD,OAAWuT,EAAe,CAAC4tC,qBAAsBnhD,OAEhE,oBAAC6I,EAAD,CACInH,MAAQW,EAAI,oBAAqB,sBACjCgJ,IAAM,EACNC,IAAM,GACNtL,MAAQwgD,EACR7+C,SAAW,SAAC3B,GAAD,OAAWuT,EAAe,CAAEitC,gBAAiBxgD,OAE5D,oBAAC6I,EAAD,CACInH,MAAQW,EAAI,qBAAsB,sBAClCgJ,IAAM,EACNC,IAAM,IACNtL,MAAQygD,EACR9+C,SAAW,SAAC3B,GAAD,OAAWuT,EAAe,CAAEktC,iBAAkBzgD,OAE7D,oBAACoB,EAAD,CACIM,MAAQW,EAAI,UAAW,sBACvBT,UAAU,yBAEd,2BAAKA,UAAU,wBACX,gCAAOS,EAAI,OAAQ,uBACnB,2BAAKT,UAAU,qBAAqBtB,IAAI,QACnC,CAAE,KAAM,KAAM,KAAM,KAAMwE,KAAK,SAAEia,EAAMC,GAAR,OAC5B,4BACIpd,UAAA,eAAyBw/C,IAAoBriC,EAAO,WAAa,IACjEze,IAAK0e,EACLhb,QAAS,kBAAMuP,EAAe,CAAE6tC,gBAAiBriC,MAE5CA,QAMjBvB,EAAwB1Y,KAAI,SAACoa,EAAKC,GAAN,OACxB,oBAACtW,EAAD,CACIjH,UAAU,+BACVtB,IAAK6e,EACLtC,WAAYqC,EAAIxa,KAChB1E,MAAO+G,EAAW,cAAgBmY,EAAIxd,OACtC2J,IAAK,EACLC,IAAK,IACL3J,SAAU,SAAE3B,GAAF,OAAauT,EAAcA,EAAdA,GAAkB,cAAgB2L,EAAIxd,MAAQ1B,UAIjF,oBAACoB,EAAD,CACIM,MAAQW,EAAI,SAAU,sBACtBT,UAAU,yBAEd,2BAAKA,UAAU,wBACX,gCAAOS,EAAI,OAAQ,uBACnB,2BAAKT,UAAU,qBAAqBtB,IAAI,QACnC,CAAE,KAAM,KAAM,KAAM,KAAMwE,KAAK,SAAEia,EAAMC,GAAR,OAC5B,4BACIpd,UAAA,eAAyBy/C,IAAmBtiC,EAAO,WAAa,IAChEze,IAAK0e,EACLhb,QAAS,kBAAMuP,EAAe,CAAE8tC,eAAgBtiC,MAE3CA,QAMjBvB,EAAwB1Y,KAAI,SAACoa,EAAKC,GAAN,OACxB,oBAACtW,EAAD,CACIjH,UAAU,+BACVtB,IAAK6e,EACLtC,WAAYqC,EAAIxa,KAChB1E,MAAO+G,EAAW,aAAemY,EAAIxd,OACrC2J,IAAK,EACLC,IAAK,IACL3J,SAAU,SAAE3B,GAAF,OAAauT,EAAcA,EAAdA,GAAkB,aAAe2L,EAAIxd,MAAQ1B,WAKpF,oBAACuS,EAAD,CACItN,MAAQ5C,EAAI,iBAAkB,sBAC9ByS,aAAa,GAEb,oBAAC,EAAA/T,gBAAD,CACIW,MAAQW,EAAI,QAAS,sBACrBrC,MAAQ4gB,EACRjf,SAAW,SAAC3B,GAAD,OAAWuT,EAAe,CAACqN,WAAY5gB,OAEtD,2BAAK4B,UAAU,wBACX,2BAAKA,UAAU,kCAAkCtB,IAAI,QAChD,CAAE,KAAM,MAAOwE,KAAK,SAAEia,EAAMC,GAAR,OACjB,4BACIpd,UAAA,eAAyB2/C,IAAkBxiC,EAAO,WAAa,IAC/Dze,IAAK0e,EACLhb,QAAS,kBAAMuP,EAAe,CAAEguC,cAAexiC,MAE1CA,QAKrB,oBAAClW,EAAD,CACInH,MAAQW,EAAI,YAAa,sBACzBrC,MAAOshD,EACPj2C,IAAwB,OAAlBk2C,EAAyB,EAAI,GACnCj2C,IAAwB,OAAlBi2C,EAAyB,IAAM,GACrCx0B,KAAyB,OAAlBw0B,EAAyB,EAAI,GACpC5/C,SAAU,SAAE3B,GAAF,OAAauT,EAAe,CAAE+tC,UAAWthD,OAEvD,2BAAK4B,UAAU,wBACX,2BAAKA,UAAU,kCAAkCtB,IAAI,QAChD,CAAE,KAAM,MAAOwE,KAAK,SAAEia,EAAMC,GAAR,OACjB,4BACIpd,UAAA,eAAyB6/C,KAAwB1iC,EAAO,WAAa,IACrEze,IAAK0e,EACLhb,QAAS,kBAAMuP,EAAe,CAAEkuC,oBAAqB1iC,MAEhDA,QAKrB,oBAAClW,EAAD,CACInH,MAAQW,EAAI,cAAe,sBAC3BrC,MAAOwhD,EACPn2C,IAA8B,OAAxBo2C,GAA+B,EAAI,GACzCn2C,IAA8B,OAAxBm2C,GAA+B,IAAM,GAC3C10B,KAA+B,OAAxB00B,GAA+B,EAAI,GAC1C9/C,SAAU,SAAE3B,GAAF,OAAauT,EAAe,CAAEiuC,gBAAiBxhD,OAE7D,oBAAC0C,EAAD,CACIhB,MAAQW,EAAG,WAAY,sBACvBrC,MAAQ0hD,GACRx9C,QAAU,CACN,CAAExC,MAAOW,EAAG,KAAM,sBAAuBrC,MAAO,MAChD,CAAE0B,MAAOW,EAAG,KAAM,sBAAuBrC,MAAO,MAChD,CAAE0B,MAAOW,EAAG,KAAM,sBAAuBrC,MAAO,MAChD,CAAE0B,MAAOW,EAAG,KAAM,sBAAuBrC,MAAO,MAChD,CAAE0B,MAAOW,EAAG,KAAM,sBAAuBrC,MAAO,MAChD,CAAE0B,MAAOW,EAAG,KAAM,sBAAuBrC,MAAO,OAEpD2B,SAAW,SAAE3B,GAAF,OAAauT,EAAe,CAAEmuC,aAAc1hD,OAE3D,oBAACoB,EAAD,CACIM,MAAQW,EAAI,UAAW,sBACvBT,UAAU,yBAEd,2BAAKA,UAAU,wBACX,gCAAOS,EAAI,OAAQ,uBACnB,2BAAKT,UAAU,qBAAqBtB,IAAI,QACnC,CAAE,KAAM,KAAM,KAAM,KAAMwE,KAAK,SAAEia,EAAMC,GAAR,OAC5B,4BACIpd,UAAA,eAAyBugD,KAAqBpjC,EAAO,WAAa,IAClEze,IAAK0e,EACLhb,QAAS,kBAAMuP,EAAe,CAAE4uC,iBAAkBpjC,MAE7CA,QAMjBvB,EAAwB1Y,KAAI,SAACoa,EAAKC,GAAN,OACxB,oBAACtW,EAAD,CACIjH,UAAU,+BACVtB,IAAK6e,EACLtC,WAAYqC,EAAIxa,KAChB1E,MAAO+G,EAAW,eAAiBmY,EAAIxd,OACvC2J,IAAK,EACLC,IAAK,IACL3J,SAAU,SAAE3B,GAAF,OAAauT,EAAcA,EAAdA,GAAkB,eAAiB2L,EAAIxd,MAAQ1B,UAIlF,oBAACoB,EAAD,CACIM,MAAQW,EAAI,SAAU,sBACtBT,UAAU,yBAEd,2BAAKA,UAAU,wBACX,gCAAOS,EAAI,OAAQ,uBACnB,2BAAKT,UAAU,qBAAqBtB,IAAI,QACnC,CAAE,KAAM,KAAM,KAAM,KAAMwE,KAAK,SAAEia,EAAMC,GAAR,OAC5B,4BACIpd,UAAA,eAAyBwgD,KAAoBrjC,EAAO,WAAa,IACjEze,IAAK0e,EACLhb,QAAS,kBAAMuP,EAAe,CAAE6uC,gBAAiBrjC,MAE5CA,QAMjBvB,EAAwB1Y,KAAI,SAACoa,EAAKC,GAAN,OACxB,oBAACtW,EAAD,CACIjH,UAAU,+BACVtB,IAAK6e,EACLtC,WAAYqC,EAAIxa,KAChB1E,MAAO+G,EAAW,cAAgBmY,EAAIxd,OACtC2J,IAAK,EACLC,IAAK,IACL3J,SAAU,SAAE3B,GAAF,OAAauT,EAAcA,EAAdA,GAAkB,cAAgB2L,EAAIxd,MAAQ1B,WAKrF,oBAACuS,EAAD,CACItN,MAAQ5C,EAAI,gBAAiB,sBAC7ByS,aAAa,GAEb,oBAAC,EAAA/T,gBAAD,CACIW,MAAQW,EAAI,QAAS,sBACrBrC,MAAQ2a,GACRhZ,SAAW,SAAC3B,GAAD,OAAWuT,EAAe,CAACoH,UAAW3a,OAErD,2BAAK4B,UAAU,wBACX,2BAAKA,UAAU,kCAAkCtB,IAAI,QAChD,CAAE,KAAM,MAAOwE,KAAK,SAAEia,EAAMC,GAAR,OACjB,4BACIpd,UAAA,eAAyBygD,KAAiBtjC,EAAO,WAAa,IAC9Dze,IAAK0e,EACLhb,QAAS,kBAAMuP,EAAe,CAAE8uC,aAActjC,MAEzCA,QAKrB,oBAAClW,EAAD,CACInH,MAAQW,EAAI,YAAa,sBACzBrC,MAAO4a,GACPvP,IAAuB,OAAjBg3C,GAAwB,EAAI,GAClC/2C,IAAuB,OAAjB+2C,GAAwB,IAAM,GACpCt1B,KAAwB,OAAjBs1B,GAAwB,EAAI,GACnC1gD,SAAU,SAAE3B,GAAF,OAAauT,EAAe,CAAEqH,SAAU5a,OAEtD,2BAAK4B,UAAU,wBACX,2BAAKA,UAAU,kCAAkCtB,IAAI,QAChD,CAAE,KAAM,MAAOwE,KAAK,SAAEia,EAAMC,GAAR,OACjB,4BACIpd,UAAA,eAAyB2gD,KAAuBxjC,EAAO,WAAa,IACpEze,IAAK0e,EACLhb,QAAS,kBAAMuP,EAAe,CAAEgvC,mBAAoBxjC,MAE/CA,QAKrB,oBAAClW,EAAD,CACInH,MAAQW,EAAI,cAAe,sBAC3BrC,MAAOsiD,GACPj3C,IAA6B,OAAvBk3C,GAA8B,EAAI,GACxCj3C,IAA6B,OAAvBi3C,GAA8B,IAAM,GAC1Cx1B,KAA8B,OAAvBw1B,GAA8B,EAAI,GACzC5gD,SAAU,SAAE3B,GAAF,OAAauT,EAAe,CAAE+uC,eAAgBtiD,OAE5D,oBAACoB,EAAD,CACIM,MAAQW,EAAI,UAAW,sBACvBT,UAAU,yBAEd,2BAAKA,UAAU,wBACX,gCAAOS,EAAI,OAAQ,uBACnB,2BAAKT,UAAU,qBAAqBtB,IAAI,QACnC,CAAE,KAAM,KAAM,KAAM,KAAMwE,KAAK,SAAEia,EAAMC,GAAR,OAC5B,4BACIpd,UAAA,eAAyBohD,KAAoBjkC,EAAO,WAAa,IACjEze,IAAK0e,EACLhb,QAAS,kBAAMuP,EAAe,CAAEyvC,gBAAiBjkC,MAE5CA,QAMjBvB,EAAwB1Y,KAAI,SAACoa,EAAKC,GAAN,OACxB,oBAACtW,EAAD,CACIjH,UAAU,+BACVtB,IAAK6e,EACLtC,WAAYqC,EAAIxa,KAChB1E,MAAO+G,EAAW,cAAgBmY,EAAIxd,OACtC2J,IAAK,EACLC,IAAK,IACL3J,SAAU,SAAE3B,GAAF,OAAauT,EAAcA,EAAdA,GAAkB,cAAgB2L,EAAIxd,MAAQ1B,UAIjF,oBAACoB,EAAD,CACIM,MAAQW,EAAI,SAAU,sBACtBT,UAAU,yBAEd,2BAAKA,UAAU,wBACX,gCAAOS,EAAI,OAAQ,uBACnB,2BAAKT,UAAU,qBAAqBtB,IAAI,QACnC,CAAE,KAAM,KAAM,KAAM,KAAMwE,KAAK,SAAEia,EAAMC,GAAR,OAC5B,4BACIpd,UAAA,eAAyBqhD,KAAmBlkC,EAAO,WAAa,IAChEze,IAAK0e,EACLhb,QAAS,kBAAMuP,EAAe,CAAE0vC,eAAgBlkC,MAE3CA,QAMjBvB,EAAwB1Y,KAAI,SAACoa,EAAKC,GAAN,OACxB,oBAACtW,EAAD,CACIjH,UAAU,+BACVtB,IAAK6e,EACLtC,WAAYqC,EAAIxa,KAChB1E,MAAO+G,EAAW,aAAemY,EAAIxd,OACrC2J,IAAK,EACLC,IAAK,IACL3J,SAAU,SAAE3B,GAAF,OAAauT,EAAcA,EAAdA,GAAkB,aAAe2L,EAAIxd,MAAQ1B,YAMxF,2BAAK4B,UAAW2c,GACXpa,MAAQ,CACJ6Q,gBAAiBqrC,EACjB/8B,QAAS4/B,GACTjR,OAAW8N,EAAX,YAA2CO,EAC3CjsC,aAAiB2rC,EAAjB,MAEJr2C,GAAIqU,GAEL,2BAAKpc,UAAY4c,IACb,2BACI5c,UAAU,+BACVuC,MAAQ,CACJ6Q,gBAAiBksC,EACjB59B,QAAS6/B,GACT9/B,OAAQ+/B,GACRnR,OAAWuO,EAAX,YAAsCW,EACtC9sC,aAAiBosC,EAAjB,OAGJ,2BAAK7+C,UAAU,sCACX,yBAAGA,UAAWoD,GAAWb,MAAQ,CAACoQ,MAAOsH,EAAWgE,SAAUjE,EAAUS,QAAS,UAAY3X,KAGrG,2BAAK9C,UAAU,6BACX,oBAACwQ,EAAD,CACI3L,QAASi7C,GACT9/C,UAAU,sBACVD,SAAW,SAAC3B,GAAD,OAAWuT,EAAc,CAAEtO,MAAOjF,KAC7CA,MAAQiF,EACRd,MAAQ,CACJoQ,MAAOqM,EACPf,SAAUyhC,EAAUC,EACpBh+B,WAAYi+B,EAAgBC,GAC5Bn+B,QAAS+/B,GACThgC,OAAQigC,GACRI,WAAY,cAGpB,oBAACtxC,EAAD,CACI3L,QAAQ,IACR7E,UAAU,qBACVD,SAAW,SAAC3B,GAAD,OAAWuT,EAAc,CAAE9G,KAAMzM,KAC5CA,MAAQyM,GACRtI,MAAQ,CACJoQ,MAAOoG,GACPkF,SAAUjF,GAASynC,GACnB9+B,WAAY++B,GAAeC,GAC3Bj/B,QAASigC,GACTlgC,OAAQmgC,GACRE,WAAY,gBAMxB9pC,GACI,oBAAC,EAAA9X,kBAAD,CACI0a,QAAQ,YACRza,WAAa,WACN6X,IACC,EAAK7N,eAIb/J,aAAee,KAAKgX,WACpB9X,kBAAoBc,KAAKiX,gBACzB9X,aAAcwC,EACdvC,kBAAmB+X,IAGvB,WA5sBmC,GAiCzC1X,GAmrBpB0W,EAAa,CACf8E,SAAU,CACNhW,KAAM,UAEVuS,MAAO,CACHvS,KAAM,SACNsN,QAAS,UAEbyqC,qBAAsB,CAClB/3C,KAAM,SACNsN,QAAS,GAEb0qC,sBAAuB,CACnBh4C,KAAM,SACNsN,QAAS,GAEb2qC,oBAAqB,CACjBj4C,KAAM,SACNsN,QAAS,IAEb4qC,uBAAwB,CACpBl4C,KAAM,SACNsN,QAAS,IAEb6qC,qBAAsB,CAClBn4C,KAAM,SACNsN,QAAS,IAEb8qC,sBAAuB,CACnBp4C,KAAM,SACNsN,QAAS,IAEbirC,qBAAsB,CAClBv4C,KAAM,SACNsN,QAAS,MAEb+qC,oBAAqB,CACjBr4C,KAAM,SACNsN,QAAS,WAEbgrC,0BAA2B,CACvBt4C,KAAM,SACNsN,QAAS,WAEbkrC,gBAAiB,CACbx4C,KAAM,SACNsN,QAAS,GAEbmrC,iBAAkB,CACdz4C,KAAM,SACNsN,QAAS,GAEborC,eAAgB,CACZ14C,KAAM,SACNsN,QAAS,GAEbqrC,kBAAmB,CACf34C,KAAM,SACNsN,QAAS,GAEbsrC,gBAAiB,CACb54C,KAAM,SACNsN,QAAS,GAEburC,iBAAkB,CACd74C,KAAM,SACNsN,QAAS,GAEbwrC,cAAe,CACX94C,KAAM,SACNsN,QAAS,GAEbyrC,iBAAkB,CACd/4C,KAAM,SACNsN,QAAS,GAEb0rC,eAAgB,CACZh5C,KAAM,SACNsN,QAAS,GAEb2rC,gBAAiB,CACbj5C,KAAM,SACNsN,QAAS,GAEb8rC,gBAAiB,CACbp5C,KAAM,SACNsN,QAAS,MAEb+rC,eAAgB,CACZr5C,KAAM,SACNsN,QAAS,MAEb4rC,eAAgB,CACZl5C,KAAM,SACNsN,QAAS,WAEb6rC,qBAAsB,CAClBn5C,KAAM,SACNsN,QAAS,WAEb5Q,KAAM,CACFsD,KAAM,SACNsN,QAAS,YAEbsG,SAAU,CACN5T,KAAM,SACNsN,QAAS,IAEbuG,UAAW,CACP7T,KAAM,SACNsN,QAAS,QAEb4E,UAAW,CACPlS,KAAM,SACNsN,QAAS,YAEbrQ,MAAO,CACH+C,KAAM,SACNsN,QAAS,SAEbsL,WAAY,CACR5Y,KAAM,SACNsN,QAAS,QAEbgsC,UAAW,CACPt5C,KAAM,UAEVu5C,cAAe,CACXv5C,KAAM,SACNsN,QAAS,MAEbksC,gBAAiB,CACbx5C,KAAM,UAEVy5C,oBAAqB,CACjBz5C,KAAM,SACNsN,QAAS,MAEbosC,aAAc,CACV15C,KAAM,SACNsN,QAAS,MAEbqsC,gBAAiB,CACb35C,KAAM,SACNsN,QAAS,GAEbssC,mBAAoB,CAChB55C,KAAM,SACNsN,QAAS,GAEbusC,iBAAkB,CACd75C,KAAM,SACNsN,QAAS,GAEbwsC,kBAAmB,CACf95C,KAAM,SACNsN,QAAS,GAEbysC,eAAgB,CACZ/5C,KAAM,SACNsN,QAAS,GAEb0sC,kBAAmB,CACfh6C,KAAM,SACNsN,QAAS,IAEb2sC,gBAAiB,CACbj6C,KAAM,SACNsN,QAAS,GAEb4sC,iBAAkB,CACdl6C,KAAM,SACNsN,QAAS,GAEb6sC,iBAAkB,CACdn6C,KAAM,SACNsN,QAAS,MAEb8sC,gBAAiB,CACbp6C,KAAM,SACNsN,QAAS,MAEb7I,KAAM,CACFzE,KAAM,SACNsN,QAAS,wHAEbqF,UAAW,CACP3S,KAAM,SACNsN,QAAS,QAEbsF,SAAU,CACN5S,KAAM,UAEVq6C,aAAc,CACVr6C,KAAM,SACNsN,QAAS,MAEbgtC,eAAgB,CACZt6C,KAAM,UAEVu6C,mBAAoB,CAChBv6C,KAAM,SACNsN,QAAS,MAEbktC,eAAgB,CACZx6C,KAAM,SACNsN,QAAS,GAEbmtC,kBAAmB,CACfz6C,KAAM,SACNsN,QAAS,GAEbotC,gBAAiB,CACb16C,KAAM,SACNsN,QAAS,GAEbqtC,iBAAkB,CACd36C,KAAM,SACNsN,QAAS,GAEbstC,cAAe,CACX56C,KAAM,SACNsN,QAAS,GAEbutC,iBAAkB,CACd76C,KAAM,SACNsN,QAAS,GAEbwtC,eAAgB,CACZ96C,KAAM,SACNsN,QAAS,GAEbytC,gBAAiB,CACb/6C,KAAM,SACNsN,QAAS,GAEb0tC,gBAAiB,CACbh7C,KAAM,SACNsN,QAAS,MAEb2tC,eAAgB,CACZj7C,KAAM,SACNsN,QAAS,MAEb5B,QAAS,CACL1L,KAAM,UACNsN,SAAS,GAEbqD,UAAW,CACP3Q,KAAM,UACNsN,SAAS,IAIjBrD,EAAmB,gBAAiB,CAChChN,MAAO5C,EAAI,0BAA2B,sBACtCkT,YAAalT,EAAI,2CAA4C,sBAC7DqC,KAAM,CACF8Q,IAAKqI,EACLpI,WAAmC,oBAAhBjR,YAA8BA,YAAY+P,WAAQhD,GAEzEmE,SAAU,iBACVC,SAAU,CAAEtT,EAAI,OAAQ,sBAAwBA,EAAI,OAAQ,sBAAwBA,EAAI,MAAO,uBAC/F0E,WAAYmS,EACZC,QAAS,CACLpS,WAAY,CACR4R,WAAW,IAGnB7C,KAAMgqC,EACN/pC,KAAM,YAAsB,IAAlBhP,EAAkB,EAAlBA,WAEFiX,EAQAjX,EARAiX,SACApc,EAOAmF,EAPAnF,UACAqD,EAMA8B,EANA9B,MACAy8C,EAKA36C,EALA26C,aACAj1C,EAIA1F,EAJA0F,KACA/H,EAGAqC,EAHArC,KACAwV,EAEAnT,EAFAmT,UAIEqE,EAAiB,CACnB,yBACA,wBAFmB,kBAFnBxX,EADAwT,MAOA3Y,EACAoc,GACFra,OAAQC,SAAUC,KAAM,KAEpB2a,EAAa,CACf,sBACF7a,OAAQC,SAAUC,KAAM,KAEpBmB,EAAY,CACd,iBACc,KAAdkV,GAAA,IAAwBA,GAC1BvW,OAAQC,SAAUC,KAAK,IAEzB,OACI,oBAACpB,EAAD,KACI,2BAAKb,UAAW2c,GACZ,2BAAK3c,UAAY4c,GACb,2BAAK5c,UAAU,gCACX,2BAAKA,UAAU,sCACX,yBAAGA,UAAWoD,GAAYN,KAGlC,2BAAK9C,UAAU,6BACX,oBAACwQ,EAAS6D,QAAV,CACIxP,QAASi7C,EACT9/C,UAAU,sBACV5B,MAAQiF,IAEZ,oBAACmN,EAAS6D,QAAV,CACIxP,QAAQ,IACR7E,UAAU,qBACV5B,MAAQyM,SAQpCyJ,WAAY,CACR,CACInP,WAAYmS,EACZnD,KAAM,YAAsB,IAAlBhP,EAAkB,EAAlBA,WAEFiX,EAOAjX,EAPAiX,SACA/Y,EAMA8B,EANA9B,MACAy8C,EAKA36C,EALA26C,aACAj1C,EAIA1F,EAJA0F,KACA/H,EAGAqC,EAHArC,KACAwV,EAEAnT,EAFAmT,UAIEqE,EAAiB,CACnB,yBACA,wBAFmB,kBAFnBxX,EADAwT,OAOF5W,OAAQC,SAAUC,KAAM,KAEpB2a,EAAa,CACf,sBACF7a,OAAQC,SAAUC,KAAM,KAEpBmB,EAAY,CACd,iBACc,KAAdkV,GAAA,IAAwBA,GAC1BvW,OAAQC,SAAUC,KAAK,IAEzB,OACI,oBAACpB,EAAD,KACI,2BAAKb,UAAW2c,EAAgB5U,GAAIqU,GAChC,2BAAKpc,UAAY4c,GACb,2BAAK5c,UAAU,gCACX,2BAAKA,UAAU,sCACX,yBAAGA,UAAWoD,GAAYN,KAGlC,2BAAK9C,UAAU,6BACX,oBAACwQ,EAAS6D,QAAV,CACIxP,QAASi7C,EACT9/C,UAAU,sBACV5B,MAAQiF,IAEZ,oBAACmN,EAAS6D,QAAV,CACIxP,QAAQ,IACR7E,UAAU,qBACV5B,MAAQyM,aAxkCpD,CAmlCKxL,GAAGqB,KAAMrB,GAAGoV,OAAQpV,GAAGsB,QAAStB,GAAGK,YAAaL,GAAGC,a,keCtlCxD,O,kQAEA,SAAY0Q,EAAQC,EAAUC,EAAWC,EAAeC,GACpDD,EAAgB9Q,GAAGK,aAAeL,GAAGM,OAD8B,IAE3Dc,EAAOuP,EAAPvP,GACAG,EAAwBsP,EAAxBtP,UAAWC,EAAaqP,EAAbrP,SACXwP,EAAsBJ,EAAtBI,kBAJ2D,EAKqBF,EAAhFI,EAL2D,EAK3DA,kBAAmB6F,EALwC,EAKxCA,cAAe5F,EALyB,EAKzBA,SAAUC,EALe,EAKfA,mBAAoB4N,EALL,EAKKA,YAChEpX,EAA2HmJ,EAA3HnJ,aAAc0J,EAA6GP,EAA7GO,UAAW5P,EAAkGqP,EAAlGrP,YAAcD,EAAoFsP,EAApFtP,cAAe8P,EAAqER,EAArEQ,cAAehG,EAAsDwF,EAAtDxF,QAASyL,EAA6CjG,EAA7CiG,aAAcC,EAA+BlG,EAA/BkG,cAAeslC,EAAgBxrC,EAAhBwrC,YAE7GmG,EACF,2BAAKhxC,KAAK,eAAegC,MAAM,KAAKC,OAAO,KAAKC,QAAQ,YAAYH,MAAM,8BACtE,4BAAMrV,EAAE,2PACR,4BAAMA,EAAE,gBAAgBsT,KAAK,UAG/BixC,EACF,2BAAKjxC,KAAK,eAAegC,MAAM,KAAKC,OAAO,KAAKC,QAAQ,YAAYH,MAAM,8BACtE,4BAAMrV,EAAE,sVACR,4BAAMsT,KAAK,OAAOtT,EAAE,mBAGtBwkD,EACF,2BAAKlxC,KAAK,eAAegC,MAAM,KAAKC,OAAO,KAAKC,QAAQ,YAAYH,MAAM,8BACtE,yBAAG/B,KAAK,QACJ,4BAAMtT,EAAE,oBACR,4BAAM8T,QAAQ,MAAM9T,EAAE,qBAE1B,4BAAMA,EAAE,iOAMVykD,EAhC6D,YAiC/D,aAAc,0EACAzwC,YADA,OAEV,EAAKxQ,MAAQ,CACTkhD,cAAc,GAHR,EAjCiD,O,yTAAA,sDAwC1C,MACqBhhD,KAAK/B,MAAnC+F,EADS,EACTA,WAAYwM,EADH,EACGA,cACdC,EAAqBC,mBAAmB,qBAGnB,IAAvB1M,EAAW2M,UACuB,iBAA9B,IAAOF,EAAP,cAAOA,KAA0D,OAAvBA,GAC1C/T,OAAO8E,KAAKiP,GAAoB1O,KAAI,SAACkC,GACI,kBAA1BD,EAAWC,GAClBD,EAAWC,KAAewM,EAAmBxM,GAE7CD,EAAWC,GAAawM,EAAmBxM,MAMvDuM,EAAe,CAAEG,SAAS,KAI9B3Q,KAAKC,SAAU,CAAE+gD,aAAsC,aAAxBh9C,EAAWi9C,aA7DiB,0CAgE3C,MACgCjhD,KAAK/B,MAA7CgW,EADQ,EACRA,SAAUjQ,EADF,EACEA,WAAYwM,EADd,EACcA,cACHxM,EAAnBk9C,gBAGJ1wC,EAAe,CAAE0wC,eAAgBA,oBAAoBjtC,MArEE,+BAyEtD,WACG+sC,EAAiBhhD,KAAKF,MAAtBkhD,aADH,EAEiChhD,KAAK/B,MAAnC+F,EAFH,EAEGA,WAAYwM,EAFf,EAEeA,cAEhBywC,EAUAj9C,EAVAi9C,SAAUE,EAUVn9C,EAVUm9C,UAAWC,EAUrBp9C,EAVqBo9C,SAAUC,EAU/Br9C,EAV+Bq9C,aAAcC,EAU7Ct9C,EAV6Cs9C,SAAUC,EAUvDv9C,EAVuDu9C,mBACvDC,EASAx9C,EATAw9C,iBAAkBC,EASlBz9C,EATkBy9C,qBAAsBC,EASxC19C,EATwC09C,QAASC,EASjD39C,EATiD29C,OAAQC,EASzD59C,EATyD49C,gBAAiBC,EAS1E79C,EAT0E69C,eAC1EC,EAQA99C,EARA89C,UAAWC,EAQX/9C,EARW+9C,YAAaC,EAQxBh+C,EARwBg+C,WAAYC,EAQpCj+C,EARoCi+C,UAAWC,EAQ/Cl+C,EAR+Ck+C,aAAcC,EAQ7Dn+C,EAR6Dm+C,cAAeC,EAQ5Ep+C,EAR4Eo+C,SAC5ErK,EAOA/zC,EAPA+zC,WAAYsK,EAOZr+C,EAPYq+C,UAAWC,EAOvBt+C,EAPuBs+C,eAAgBC,EAOvCv+C,EAPuCu+C,iBAAkBC,EAOzDx+C,EAPyDw+C,oBACzDC,EAMAz+C,EANAy+C,aAAcC,EAMd1+C,EANc0+C,iBAAkBC,EAMhC3+C,EANgC2+C,gBAAiBC,EAMjD5+C,EANiD4+C,gBAAiBC,EAMlE7+C,EANkE6+C,iBAClEhyC,GAKA7M,EALA6M,cAAe8G,GAKf3T,EALe2T,QAASC,GAKxB5T,EALwB4T,UAAWkrC,GAKnC9+C,EALmC8+C,WAAYzxC,GAK/CrN,EAL+CqN,YAAaF,GAK5DnN,EAL4DmN,YAAaC,GAKzEpN,EALyEoN,YACzEgnC,GAIAp0C,EAJAo0C,YAAaC,GAIbr0C,EAJaq0C,cAAeC,GAI5Bt0C,EAJ4Bs0C,aAAcC,GAI1Cv0C,EAJ0Cu0C,eAAgB2I,GAI1Dl9C,EAJ0Dk9C,eAC1D6B,GAGA/+C,EAHA++C,iBAAkBC,GAGlBh/C,EAHkBg/C,mBAAoBC,GAGtCj/C,EAHsCi/C,kBAAmBC,GAGzDl/C,EAHyDk/C,mBAAoBC,GAG7En/C,EAH6Em/C,mBAC7EC,GAEAp/C,EAFAo/C,sBAAuBC,GAEvBr/C,EAFuBq/C,wBAAyBC,GAEhDt/C,EAFgDs/C,mBAAoBC,GAEpEv/C,EAFoEu/C,qBACpE3tC,GACA5R,EADA4R,UAGE4tC,GACF,oBAACtmC,EAAD,CACIsB,aAAe,CAAC,SAChBC,SAAW,SAACoJ,GAAD,OAAWrX,EAAe,CACjCkxC,QAAS75B,EAAM4B,MAAMg6B,OAAS57B,EAAM4B,MAAMg6B,OAAOhsC,IAAMoQ,EAAM4B,MAAMi6B,KAAKjsC,IACxEkqC,OAAQ95B,EAAMjhB,MAElB3J,MAAQ0kD,EACRhjC,OAAS,gBAAIC,EAAJ,EAAIA,KAAJ,OACL,2BAAK/f,UAAU,iCACX,oBAAC4K,EAAD,CAASC,KAAOpK,EAAI,uBAAwB,uBACxC,4BAAM8B,MAAQ,CACVkY,QAAS,UAET,2BAAKza,UAAU,wBACVoC,QAAU2d,EACVnM,IAAMivC,EACN5rC,IAAM,YACN1U,MAAQ,CACJwQ,MAAOkwC,EAAYA,EAAY,UAAOtzC,EACtC+e,OAAQ,mBAUnCo2B,GACF,oBAACzmC,EAAD,CACIsB,aAAe,CAAC,SAChBC,SAAW,SAACoJ,GAAD,OAAWrX,EAAe,CACjCoxC,gBAAiB/5B,EAAM4B,MAAMg6B,OAAS57B,EAAM4B,MAAMg6B,OAAOhsC,IAAMoQ,EAAM4B,MAAMi6B,KAAKjsC,IAChFoqC,eAAgBh6B,EAAMjhB,MAE1B3J,MAAQ4kD,EACRljC,OAAS,gBAAIC,EAAJ,EAAIA,KAAJ,OACL,2BAAK/f,UAAU,iCACX,oBAAC4K,EAAD,CAASC,KAAOpK,EAAI,uBAAwB,uBACxC,4BAAM8B,MAAQ,CACVkY,QAAS,UAET,2BAAKza,UAAU,wBACVoC,QAAU2d,EACVnM,IAAMmvC,EACN9rC,IAAM,YACN1U,MAAQ,CACJwQ,MAAOkwC,EAAYA,EAAY,UAAOtzC,EACtC+e,OAAQ,mBAUnCq2B,GACF,2BAAK/kD,UAAU,+CACR2iD,GACC,2BAAK3iD,UAAU,sDACVuC,MAAQ,CAAE6Q,gBAAiBpB,KAE5B,oBAACxB,EAAD,CACI3L,QAAQ,OACRzG,MAAQwlD,EACR5jD,UAAU,sBACVD,SAAW,SAAC3B,GAAD,OAAWuT,EAAe,CAAEiyC,aAAcxlD,EAAM4E,UAC3DT,MAAQ,CAAEoQ,MAAOoG,IACjBisC,UAAY,kBAAM,MAClBC,QAAU,kBAAM,MAChB5iD,YAAc5B,EAAI,QAAS,sBAC3Bka,wBAAA,EACAjF,eAAiB,CAAE,YAAa,iBAEpC,oBAAClF,EAAD,CACI3L,QAAQ,IACRzG,MAAQylD,EACR7jD,UAAU,sBACVD,SAAW,SAAC3B,GAAD,OAAWuT,EAAe,CAAEkyC,iBAAkBzlD,EAAM4E,UAC/DT,MAAQ,CAAEoQ,MAAO6mC,IACjBwL,UAAY,kBAAM,MAClBC,QAAU,kBAAM,MAChB5iD,YAAc5B,EAAI,YAAa,sBAC/Bka,wBAAA,EACAjF,eAAiB,CAAE,YAAa,kBAI5C,2BAAK1V,UAAU,qCACX,2BAAKA,UAAU,6BACRyiD,GAAYkC,GACf,oBAACn0C,EAAD,CACI3L,QAAQ,KACRzG,MAAQ8kD,EACRljD,UAAU,2BACVD,SAAW,SAAC3B,GAAD,OAAWuT,EAAe,CAAEuxC,YAAa9kD,EAAM4E,UAC1DT,MAAQ,CAAEoQ,MAAOoG,IACjB1W,YAAc5B,EAAI,gBAAiB,sBACnCka,wBAAA,EACAjF,eAAiB,CAAE,YAAa,kBAGxC,2BAAK1V,UAAU,sCACX,2BAAKA,UAAU,2BACX,oBAACwQ,EAAD,CACI3L,QAAQ,QACRzG,MAAQglD,EACRrjD,SAAW,SAAC3B,GAAD,OAAWuT,EAAe,CAAEyxC,UAAWhlD,EAAM4E,UACxDT,MAAQ,CAAEoQ,MAAOoG,IACjBisC,UAAY,kBAAM,MAClBC,QAAU,kBAAM,MAChB5iD,YAAc5B,EAAI,kBAAmB,sBACrCka,wBAAA,EACAjF,eAAiB,CAAE,YAAa,kBAGxC,2BAAK1V,UAAU,0BACVuC,MAAQ,CACJ6Q,gBAAiB0F,GACjBnG,MAAOsxC,GACPzZ,kBAAmBh4B,GACnBF,YAAaA,GACbC,YAAaA,OAGfmwC,GACC,4BAAM1iD,UAAU,yBACVuC,MAAQ,CAAEoQ,MAAOoG,KAEjBipC,GAGV,6BAAO57C,KAAK,OAAO9C,UAAW,EACvBtD,UAAU,oBACVuC,MAAQ,CAAEoQ,MAAOsxC,IACjB7lD,MAAQ+kD,GAA0B,qBAIjD,2BAAKnjD,UAAU,0CACX,2BAAKA,UAAU,2BACX,oBAACwQ,EAAD,CACI3L,QAAQ,QACRzG,MAAQilD,EACRtjD,SAAW,SAAC3B,GAAD,OAAWuT,EAAe,CAAE0xC,aAAcjlD,EAAM4E,UAC3DT,MAAQ,CAAEoQ,MAAOoG,IACjBisC,UAAY,kBAAM,MAClBC,QAAU,kBAAM,MAChB5iD,YAAc5B,EAAI,kBAAmB,sBACrCka,wBAAA,EACAjF,eAAiB,CAAE,YAAa,kBAGxC,2BAAK1V,UAAU,0BACVuC,MAAQ,CACJ6Q,gBAAiB0F,GACjBnG,MAAOsxC,GACPzZ,kBAAmBh4B,GACnBF,YAAaA,GACbC,YAAaA,OAGfmwC,GACC,4BAAM1iD,UAAU,yBACVuC,MAAQ,CAAEoQ,MAAOoG,KAEjBkpC,GAGV,6BAAO77C,KAAK,WAAW9C,UAAW,EAC3BtD,UAAU,oBACVuC,MAAQ,CAAEoQ,MAAOsxC,IACjB7lD,MAAM,eAIrB,2BAAK4B,UAAA,mEAA8E05C,IAC/E,6BAAOxxB,QAAQ,aAAaloB,UAAU,qBAClC,6BAAOoG,KAAK,WACLgG,SAAU,EACVpM,UAAU,uBACVuC,MAAQ,CAAEoQ,MAAO6mC,MAExB,2BAAKx5C,UAAU,qBAAqBuC,MAAQ,CAAEoQ,MAAO6mC,KACjD,gCACI,oBAAChpC,EAAD,CACI3L,QAAQ,OACRzG,MAAQqlD,EACR1jD,SAAW,SAAC3B,GAAD,OAAWuT,EAAe,CAAE0xC,aAAcjlD,EAAM4E,UAC3DT,MAAQ,CAAEoQ,MAAOoG,IACjBisC,UAAY,kBAAM,MAClBC,QAAU,kBAAM,MAChB5iD,YAAc5B,EAAI,eAAgB,sBAClCka,wBAAA,EACAjF,eAAiB,CAAE,YAAa,oBAKhD,2BAAK1V,UAAU,yCACX,4BAAMA,UAAA,6BAAwCqiD,GACxC9/C,MAAQ,CACJiQ,YAAa+mC,GACb5mC,MAAO4mC,GACPnmC,gBAAiBomC,GACjB/mC,aAAcgnC,KAGpB,oBAACjpC,EAAD,CACI3L,QAAQ,OACRzG,MAAQslD,EACR3jD,SAAW,SAAC3B,GAAD,OAAWuT,EAAe,CAAE+xC,iBAAkBtlD,EAAM4E,UAC/DgiD,UAAY,kBAAM,MAClBC,QAAU,kBAAM,MAChB5iD,YAAc5B,EAAI,SAAU,sBAC5Bka,wBAAA,EACAjF,eAAiB,CAAE,YAAa,sBAK7CktC,GACC,2BAAK5iD,UAAU,+CACX,2BAAKA,UAAU,uBACX,oBAACwQ,EAAD,CACI3L,QAAQ,IACRzG,MAAQ4lD,EACRhkD,UAAU,2BACVD,SAAW,SAAC3B,GAAD,OAAWuT,EAAe,CAAEqyC,iBAAkB5lD,EAAM4E,UAC/DT,MAAQ,CAAEoQ,MAAO6mC,IACjBwL,UAAY,kBAAM,MAClBC,QAAU,kBAAM,MAChB5iD,YAAc5B,EAAI,iBAAkB,sBACpCka,wBAAA,EACAjF,eAAiB,CAAE,YAAa,qBAStDwvC,GACF,2BAAKllD,UAAU,kDACR2iD,GACC,2BAAK3iD,UAAU,8CACVuC,MAAQ,CAAE6Q,gBAAiBpB,KAE5B,2BAAKhS,UAAU,2BACVuC,MAAQ,CAAEoQ,MAAO6mC,KAElB,oBAAChpC,EAAD,CACI3L,QAAQ,OACRzG,MAAQ2lD,EACR/jD,UAAU,sBACVD,SAAW,SAAC3B,GAAD,OAAWuT,EAAe,CAAEoyC,gBAAiB3lD,EAAM4E,UAC9DT,MAAQ,CAAEoQ,MAAO6mC,IACjBwL,UAAY,kBAAM,MAClBC,QAAU,kBAAM,MAChB5iD,YAAc5B,EAAI,QAAS,sBAC3Bka,wBAAA,EACAjF,eAAiB,CAAE,YAAa,mBAKhD,2BAAK1V,UAAU,wCACX,2BAAKA,UAAU,6BACRyiD,GAAYqC,GACf,oBAACt0C,EAAD,CACI3L,QAAQ,KACRzG,MAAQ0lD,EACR9jD,UAAU,2BACVD,SAAW,SAAC3B,GAAD,OAAWuT,EAAe,CAAEmyC,gBAAiB1lD,EAAM4E,UAC9DT,MAAQ,CAAEoQ,MAAOoG,IACjB1W,YAAc5B,EAAI,YAAa,sBAC/Bka,wBAAA,EACAjF,eAAiB,CAAE,YAAa,kBAGxC,2BAAK1V,UAAU,6CACX,2BAAKA,UAAU,2BACX,oBAACwQ,EAAD,CACI3L,QAAQ,QACRzG,MAAQmlD,EACRxjD,SAAW,SAAC3B,GAAD,OAAWuT,EAAe,CAAE4xC,SAAUnlD,EAAM4E,UACvDT,MAAQ,CAAEoQ,MAAOoG,IACjBisC,UAAY,kBAAM,MAClBC,QAAU,kBAAM,MAChB5iD,YAAc5B,EAAI,kBAAmB,sBACrCka,wBAAA,EACAjF,eAAiB,CAAE,YAAa,kBAGxC,2BAAK1V,UAAU,0BACVuC,MAAQ,CACJ6Q,gBAAiB0F,GACjBnG,MAAOsxC,GACPzZ,kBAAmBh4B,GACnBF,YAAaA,GACbC,YAAaA,OAGfmwC,GACC,4BAAM1iD,UAAU,yBACVuC,MAAQ,CAAEoQ,MAAOoG,KAEjBgpC,GAGV,6BAAO37C,KAAK,OAAO9C,UAAW,EACvBtD,UAAU,oBACVuC,MAAQ,CAAEoQ,MAAOsxC,IACjB7lD,MAAQklD,GAAgC,eAIvD,2BAAKtjD,UAAU,0CACX,2BAAKA,UAAU,2BACX,oBAACwQ,EAAD,CACI3L,QAAQ,QACRzG,MAAQolD,EACRzjD,SAAW,SAAC3B,GAAD,OAAWuT,EAAe,CAAE6xC,UAAWplD,EAAM4E,UACxDT,MAAQ,CAAEoQ,MAAOoG,IACjBisC,UAAY,kBAAM,MAClBC,QAAU,kBAAM,MAChB5iD,YAAc5B,EAAI,eAAgB,sBAClCka,wBAAA,EACAjF,eAAiB,CAAE,YAAa,kBAGxC,2BAAK1V,UAAU,0BACVuC,MAAQ,CACJ6Q,gBAAiB0F,GACjBnG,MAAOsxC,GACPzZ,kBAAmBh4B,GACnBF,YAAaA,GACbC,YAAaA,OAGfmwC,GACC,4BAAM1iD,UAAU,yBACVuC,MAAQ,CAAEoQ,MAAOoG,KAEjBipC,GAGV,6BAAO57C,KAAK,OAAO9C,UAAW,EACvBtD,UAAU,oBACVuC,MAAQ,CAAEoQ,MAAOsxC,IACjB7lD,MAAQ86C,GAA0B,qBAIjD,2BAAKl5C,UAAA,mEAA8E05C,IAC/E,2BAAK15C,UAAU,4CACX,4BAAMA,UAAA,6BAAwCqiD,GACxC9/C,MAAQ,CACJiQ,YAAa+mC,GACb5mC,MAAO4mC,GACPnmC,gBAAiBomC,GACjB/mC,aAAcgnC,KAGpB,oBAACjpC,EAAD,CACI3L,QAAQ,OACRzG,MAAQulD,EACR5jD,SAAW,SAAC3B,GAAD,OAAWuT,EAAe,CAAEgyC,oBAAqBvlD,EAAM4E,UAClEgiD,UAAY,kBAAM,MAClBC,QAAU,kBAAM,MAChB5iD,YAAc5B,EAAI,YAAa,sBAC/Bka,wBAAA,EACAjF,eAAiB,CAAE,YAAa,sBAS5D,OACIqB,GACI,2BAAKE,IAAKxW,EAAG,sBAAuB,sBAAuBsS,MAAM,OAAOa,IA/b/D,2zLAicb,oBAAC/S,EAAD,KACI,oBAACuV,EAAD,KACI,oBAACC,EAAD,CAAcvW,MAAQW,EAAI,UAAW,uBACjC,oBAAC6V,EAAD,CACIxT,KAAK,wBACLhD,MAAQW,EAAI,cAAe,sBAC3B2B,QAAU,kBAAM,EAAKhB,SAAU,CAAE+gD,cAAeA,SAI5D,oBAAC5xC,EAAD,KACI,oBAACI,EAAD,CAAWtN,MAAQ5C,EAAI,aAAc,uBACjC,oBAACK,EAAD,CACIhB,MAAQW,EAAI,eAAgB,sBAC5BoS,KAAOpS,EAAI,0BAA2B,sBACtCrC,MAAQgkD,EACR9/C,QAAU,CACN,CAAExC,MAAOW,EAAI,QAAS,sBAAwBrC,MAAO,SACrD,CAAE0B,MAAOW,EAAI,WAAY,sBAAwBrC,MAAO,aAE5D2B,SAAW,SAAC3B,GACRuT,EAAe,CAAEywC,SAAUhkD,IAC3B,EAAKgD,SAAU,CAAE+gD,aAAwB,aAAV/jD,OAGvC,oBAAC0C,EAAD,CACIhB,MAAQW,EAAI,uBAAwB,sBACpCrC,MAAQmkD,EACRjgD,QAAU,CACN,CAAExC,MAAOW,EAAI,OAAQ,sBAAwBrC,MAAO,QACpD,CAAE0B,MAAOW,EAAI,YAAa,sBAAwBrC,MAAO,aACzD,CAAE0B,MAAOW,EAAI,SAAU,sBAAwBrC,MAAO,WAE1D2B,SAAW,SAAC3B,GAAD,OAAWuT,EAAe,CAAE4wC,SAAUnkD,OAEvC,WAAbmkD,GACG,oBAACxhD,EAAD,CACIjB,MAAQW,EAAI,uBAAwB,sBACpCrC,MAAQokD,EACRziD,SAAW,SAAC3B,GAAD,OAAWuT,EAAe,CAAE6wC,aAAcpkD,OAG7D,oBAAC6I,EAAD,CACInH,MAAQW,EAAI,kBAAmB,sBAC/BrC,MAAQkkD,EACRviD,SAAW,SAAE3B,GAAF,OAAauT,EAAe,CAAE2wC,UAAWlkD,KACpDqL,IAAM,IACNC,IAAM,OAEV,oBAACkH,EAAD,CACI9Q,MAAQW,EAAI,YAAa,sBACzB2L,UAAYq2C,EACZ1iD,SAAW,kBAAM4R,EAAe,CAAE8wC,UAAWA,SAE9CA,GACC,oBAACx7C,EAAD,CACInH,MAAQW,EAAI,kBAAmB,sBAC/BrC,MAAQ6kD,EACRljD,SAAW,SAAE3B,GAAF,OAAauT,EAAe,CAAEsxC,UAAW7kD,KACpDqL,IAAM,IACNC,IAAM,OAGd,oBAACkH,EAAD,CACI9Q,MAAQW,EAAI,wBAAyB,sBACrC2L,UAAYs2C,EACZ3iD,SAAW,kBAAM4R,EAAe,CAAE+wC,oBAAqBA,OAE3D,oBAAC9xC,EAAD,CACI9Q,MAAQW,EAAI,4BAA6B,sBACzC2L,UAAYu2C,EACZ5iD,SAAW,kBAAM4R,EAAe,CAAEgxC,kBAAmBA,SAEtDA,GACC,oBAAClyC,EAAD,CACIpN,MAAQ5C,EAAI,eAAgB,sBAC5ByS,aAAc,EACdC,cAAgB,CACZ,CACIrT,MAAOW,EAAI,eAAgB,sBAC3BrC,MAAO4T,GACPjS,SAAU,SAAC3B,GAAD,OAAWuT,EAAe,CAAEK,cAAe5T,SAKrE,oBAACwS,EAAD,CACI9Q,MAAQW,EAAI,0BAA2B,sBACvC2L,UAAYw2C,EACZ7iD,SAAW,kBAAM4R,EAAe,CAAEixC,sBAAuBA,QAGjE,oBAACjyC,EAAD,CAAWtN,MAAQ5C,EAAI,oBAAqB,sBAAyByS,aAAc,GAC/E,oBAACnS,EAAD,CACIjB,MAAQW,EAAI,0BAA2B,sBACvCrC,MAAQ+kD,EACRpjD,SAAW,SAAC3B,GAAD,OAAWuT,EAAe,CAAEwxC,WAAY/kD,OAEvD,oBAAC2C,EAAD,CACIjB,MAAQW,EAAI,6BAA8B,sBAC1CoS,KAAOpS,EAAI,uBAAwB,sBACnCrC,MAAQklD,EACRvjD,SAAW,SAAC3B,GAAD,OAAWuT,EAAe,CAAE2xC,cAAellD,OAE1D,oBAAC2C,EAAD,CACIjB,MAAQW,EAAI,0BAA2B,sBACvCoS,KAAOpS,EAAI,uBAAwB,sBACnCrC,MAAQ86C,EACRn5C,SAAW,SAAC3B,GAAD,OAAWuT,EAAe,CAAEunC,WAAY96C,QAG3D,oBAACqS,EAAD,CACIpN,MAAQ5C,EAAI,mBAAoB,sBAChCyS,aAAc,EACdC,cAAgB,CACZ,CACIrT,MAAOW,EAAI,yBAA0B,sBACrCrC,MAAO0a,GACP/Y,SAAU,SAAC3B,GAAD,OAAWuT,EAAe,CAAEmH,QAAS1a,MAEnD,CACI0B,MAAOW,EAAI,cAAe,sBAC1BrC,MAAO6lD,GACPlkD,SAAU,SAAC3B,GAAD,OAAWuT,EAAe,CAAEsyC,WAAY7lD,MAEtD,CACI0B,MAAOW,EAAI,aAAc,sBACzBrC,MAAO2a,GACPhZ,SAAU,SAAC3B,GAAD,OAAWuT,EAAe,CAAEoH,UAAW3a,SAI7D,oBAACuS,EAAD,CAAWtN,MAAQ5C,EAAI,kBAAmB,sBAAyByS,aAAc,GAC7E,oBAACzC,EAAD,CACIpN,MAAQ5C,EAAI,eAAgB,sBAC5ByS,aAAc,EACdC,cAAgB,CACZ,CACIrT,MAAOW,EAAI,eAAgB,sBAC3BrC,MAAOoU,GACPzS,SAAU,SAAC3B,GAAD,OAAWuT,EAAe,CAAEa,YAAapU,SAI/D,oBAAC0C,EAAD,CACIhB,MAAQW,EAAI,eAAgB,sBAC5BrC,MAAQkU,GACRhQ,QAAU,CACN,CAAExC,MAAOW,EAAI,QAAS,sBAAwBrC,MAAO,SACrD,CAAE0B,MAAOW,EAAI,SAAU,sBAAwBrC,MAAO,UACtD,CAAE0B,MAAOW,EAAI,SAAU,sBAAwBrC,MAAO,WAE1D2B,SAAW,SAAC3B,GAAD,OAAWuT,EAAe,CAAEW,YAAalU,OAExD,oBAAC6I,EAAD,CACInH,MAAQW,EAAI,eAAgB,sBAC5BrC,MAAQmU,GACRxS,SAAW,SAAC3B,GAAD,OAAWuT,EAAe,CAAEY,YAAanU,KACpDqL,IAAM,EACNC,IAAM,MAGd,oBAACiH,EAAD,CAAWtN,MAAQ5C,EAAI,yBAA0B,uBAC7C,oBAAC,EAAAtB,gBAAD,CACIW,MAAQW,EAAG,kBAAmB,sBAC9BrC,MAAQm7C,GACRx5C,SAAW,SAAC3B,GAAD,OAAWuT,EAAe,CAAE4nC,YAAan7C,OAExD,oBAAC,EAAAe,gBAAD,CACIW,MAAQW,EAAG,aAAc,sBACzBrC,MAAQo7C,GACRz5C,SAAW,SAAC3B,GAAD,OAAWuT,EAAc,CAAC6nC,cAAep7C,OAExD,oBAAC6I,EAAD,CACInH,MAAQW,EAAI,uBAAwB,sBACpCrC,MAAQq7C,GACR15C,SAAW,SAAC3B,GAAD,OAAWuT,EAAe,CAAE8nC,aAAcr7C,KACrDqL,IAAM,EACNC,IAAM,KAEV,oBAAC5I,EAAD,CACIhB,MAAQW,EAAI,kBAAmB,sBAC/BrC,MAAQs7C,GACRp3C,QAAU,CACN,CAAExC,MAAOW,EAAI,SAAU,sBAAwBrC,MAAO,UACtD,CAAE0B,MAAOW,EAAI,OAAQ,sBAAwBrC,MAAO,QACpD,CAAE0B,MAAOW,EAAI,QAAS,sBAAwBrC,MAAO,UAEzD2B,SAAW,SAAC3B,GAAD,OAAWuT,EAAe,CAAE+nC,eAAgBt7C,QAG/D,oBAACuS,EAAD,CAAWtN,MAAQ5C,EAAI,sBAAuB,sBAAyByS,aAAa,GAChF,oBAACzC,EAAD,CACIpN,MAAQ5C,EAAI,eAAgB,sBAC5ByS,aAAc,EACdC,cAAgB,CACZ,CACIrT,MAAOW,EAAI,mBAAoB,sBAC/BrC,MAAO+lD,GACPpkD,SAAU,SAAC3B,GAAD,OAAWuT,EAAe,CAAEwyC,mBAAoB/lD,MAE9D,CACI0B,MAAOW,EAAI,aAAc,sBACzBrC,MAAO8lD,GACPnkD,SAAU,SAAC3B,GAAD,OAAWuT,EAAe,CAAEuyC,iBAAkB9lD,MAE5D,CACI0B,MAAOW,EAAI,eAAgB,sBAC3BrC,MAAOgmD,GACPrkD,SAAU,SAAC3B,GAAD,OAAWuT,EAAe,CAAEyyC,kBAAmBhmD,SAIrE,oBAACuS,EAAD,CAAWtN,MAAQ5C,EAAI,SAAU,sBAAyByS,aAAa,GACnE,oBAACjM,EAAD,CACInH,MAAQW,EAAG,cAAe,sBAC1BrC,MAAQqmD,GACR1kD,SAAW,SAAE3B,GAAF,OAAauT,EAAe,CAAE8yC,mBAAoBrmD,KAC7DqL,IAAM,EACNC,IAAM,MAEV,oBAACzC,EAAD,CACInH,MAAQW,EAAG,wBAAyB,sBACpCrC,MAAQsmD,IAAwB,GAChC3kD,SAAW,SAAE3B,GAAF,OAAauT,EAAe,CAAE+yC,qBAAsBtmD,KAC/DqL,IAAM,EACNC,IAAM,MAEV,oBAACzC,EAAD,CACInH,MAAQW,EAAI,kBAAmB,sBAC/BrC,MAAQimD,IAAsB,GAC9BtkD,SAAW,SAAE3B,GAAF,OAAauT,EAAe,CAAE0yC,mBAAoBjmD,KAC7DqL,KAAO,GACPC,IAAM,KAEV,oBAACzC,EAAD,CACInH,MAAQW,EAAI,kBAAmB,sBAC/BrC,MAAQkmD,IAAsB,GAC9BvkD,SAAW,SAAE3B,GAAF,OAAauT,EAAe,CAAE2yC,mBAAoBlmD,KAC7DqL,KAAO,GACPC,IAAM,KAEV,oBAACzC,EAAD,CACInH,MAAQW,EAAI,cAAe,sBAC3BrC,MAAQmmD,IAAyB,GACjCxkD,SAAW,SAAE3B,GAAF,OAAauT,EAAe,CAAE4yC,sBAAuBnmD,KAChEqL,IAAM,EACNC,IAAM,KAEV,oBAACzC,EAAD,CACInH,MAAQW,EAAI,gBAAiB,sBAC7BrC,MAAQomD,IAA2B,GACnCzkD,SAAW,SAAE3B,GAAF,OAAauT,EAAe,CAAE6yC,wBAAyBpmD,KAClEqL,IAAM,EACNC,IAAM,OAIO,oBAAhB9G,cAAgC0G,SAAS1G,YAAY+2C,iBAC1D,oBAAChpC,EAAD,CAAWtN,MAAQ5C,EAAI,SAAU,uBAC7B,yBAAG8B,MAAQ,CAAEqQ,UAAW,WAClBnS,EAAI,kEAAmE,sBACzE,+BAAK,yBAAG+M,KAAM5K,YAAYg3C,WAAa,iBAAkBj4C,OAAO,UAAWlB,EAAI,gCAAiC,0BAKhI,2BAAKT,UAAU,2BAA2BuC,MAAQ,CAAEwQ,MAAOuvC,IACrDH,EAE4B,oBAAhBv/C,aAAgC0G,SAAS1G,YAAYuiD,iBAQzDD,GANE,oBAACtJ,EAAD,CACI94C,KAAMi/C,EACNjiD,MAAQW,EAAI,oBAAqB,sBACjCg9C,aAAeh9C,EAAI,wHAAyH,wBANtJskD,GAWN,qCACS1C,GADT,oDAEiB6B,GAFjB,mEAG4BC,GAH5B,6DAIsBE,GAJtB,MAI8CC,GAJ9C,MAIsEC,GAJtE,MAIiGC,GAJjG,MAI8HJ,GAJ9H,sDAK0BM,GAL1B,qDAMmBD,GAAmB,IANtC,yCAvvB+C,GAgCvC7jD,GAsuBtBwkD,EACF,2BAAKtyC,MAAM,6BAA6BC,MAAM,KAAKC,OAAO,KAAKC,QAAQ,aACnE,4BAAMlC,KAAK,OAAOtT,EAAE,oBACpB,4BAAMA,EAAE,oQAIV6Z,EAAa,CACf8qC,SAAU,CACNh8C,KAAM,SACNsN,QAAS,SAEb4uC,UAAW,CACPl8C,KAAM,SACNsN,QAAS,KAEb6uC,SAAU,CACNn8C,KAAM,SACNsN,QAAS,QAEb8uC,aAAc,CACVp8C,KAAM,UAEVq8C,SAAU,CACNr8C,KAAM,UACNsN,SAAS,GAEbgvC,mBAAoB,CAChBt8C,KAAM,UACNsN,SAAS,GAEbivC,iBAAkB,CACdv8C,KAAM,UACNsN,SAAS,GAEbkvC,qBAAsB,CAClBx8C,KAAM,UACNsN,SAAS,GAEbmvC,QAAS,CACLz8C,KAAM,SACNsN,QAAS9Q,YAAYyiD,YAEzBvC,OAAQ,CACJ18C,KAAM,UAEV28C,gBAAiB,CACb38C,KAAM,SACNsN,QAAS9Q,YAAY0iD,UAEzBtC,eAAgB,CACZ58C,KAAM,UAEV68C,UAAW,CACP78C,KAAM,SACNsN,QAAS,KAEbwvC,YAAa,CACT98C,KAAM,SACNsN,QAAS,gBAEbyvC,WAAY,CACR/8C,KAAM,UAEVg9C,UAAW,CACPh9C,KAAM,SACNsN,QAAS,qBAEb2vC,aAAc,CACVj9C,KAAM,SACNsN,QAAS,YAEb4vC,cAAe,CACXl9C,KAAM,UAEVm9C,SAAU,CACNn9C,KAAM,SACNsN,QAAS,YAEbwlC,WAAY,CACR9yC,KAAM,UAEVo9C,UAAW,CACPp9C,KAAM,SACNsN,QAAS,SAEb+vC,eAAgB,CACZr9C,KAAM,SACNsN,QAAS,eAEbgwC,iBAAkB,CACdt9C,KAAM,SACNsN,QAAS,SAEbiwC,oBAAqB,CACjBv9C,KAAM,SACNsN,QAAS,YAEbkwC,aAAc,CACVx9C,KAAM,SACNsN,QAAS,0BAEbmwC,iBAAkB,CACdz9C,KAAM,SACNsN,QAAS,gBAEbowC,gBAAiB,CACb19C,KAAM,SACNsN,QAAS,wBAEbqwC,gBAAiB,CACb39C,KAAM,SACNsN,QAAS,SAEbswC,iBAAkB,CACd59C,KAAM,SACNsN,QAAS,uBAEb1B,cAAe,CACX5L,KAAM,UAEV0S,QAAS,CACL1S,KAAM,UAEV2S,UAAW,CACP3S,KAAM,UAEV69C,WAAY,CACR79C,KAAM,UAEVkM,YAAa,CACTlM,KAAM,UAEVoM,YAAa,CACTpM,KAAM,UAEVmM,YAAa,CACTnM,KAAM,UAEVi8C,eAAiB,CACbj8C,KAAM,UAEVmzC,YAAa,CACTnzC,KAAM,UAEVozC,cAAe,CACXpzC,KAAM,UAEVqzC,aAAc,CACVrzC,KAAM,UAEVszC,eAAgB,CACZtzC,KAAM,SACNsN,QAAS,SAEbwwC,iBAAkB,CACd99C,KAAM,UAEV+9C,mBAAoB,CAChB/9C,KAAM,UAEVg+C,kBAAmB,CACfh+C,KAAM,UAEVi+C,mBAAoB,CAChBj+C,KAAM,SACNsN,QAAS,GAEb4wC,mBAAoB,CAChBl+C,KAAM,SACNsN,QAAS,GAEb6wC,sBAAuB,CACnBn+C,KAAM,SACNsN,QAAS,IAEb8wC,wBAAyB,CACrBp+C,KAAM,SACNsN,QAAS,GAEb+wC,mBAAoB,CAChBr+C,KAAM,SACNsN,QAAS,KAEbgxC,qBAAsB,CAClBt+C,KAAM,SACNsN,QAAS,KAEb5B,QAAS,CACL1L,KAAM,UACNsN,SAAS,GAEbqD,UAAW,CACP3Q,KAAM,UACNsN,SAAS,IAIjBrD,EAAmB,mBAAoB,CACnChN,MAAO5C,EAAI,oCAAqC,sBAChDkT,YAAalT,EAAI,0CAA2C,sBAC5DqC,KAAM,CACF8Q,IAAKwxC,EACLvxC,WAAmC,oBAAhBjR,YAA8BA,YAAY+P,WAAQhD,GAEzEmE,SAAU,iBACVC,SAAU,CAAEtT,EAAI,YAAa,sBAAwBA,EAAI,OAAQ,sBAAwBA,EAAI,MAAO,uBACpG0E,WAAYmS,EACZC,QAAS,CACLpS,WAAY,CACR4R,WAAW,IAGnB/C,SAAU,CACN4B,QAAQ,GAGZ1B,KAAMguC,EACN/tC,KAAM,YAA4B,IAAfhP,EAAe,EAAfA,WAEXi9C,EAOAj9C,EAPAi9C,SAAUE,EAOVn9C,EAPUm9C,UAAWC,EAOrBp9C,EAPqBo9C,SAAUC,EAO/Br9C,EAP+Bq9C,aAAcC,EAO7Ct9C,EAP6Cs9C,SAAUC,EAOvDv9C,EAPuDu9C,mBACvDC,EAMAx9C,EANAw9C,iBAAkBC,EAMlBz9C,EANkBy9C,qBAAsBC,EAMxC19C,EANwC09C,QAASE,EAMjD59C,EANiD49C,gBAAiBE,EAMlE99C,EANkE89C,UAClEC,EAKA/9C,EALA+9C,YAAaC,EAKbh+C,EALag+C,WAAYC,EAKzBj+C,EALyBi+C,UAAWC,EAKpCl+C,EALoCk+C,aAAcC,EAKlDn+C,EALkDm+C,cAAeC,EAKjEp+C,EALiEo+C,SACjErK,EAIA/zC,EAJA+zC,WAAYsK,EAIZr+C,EAJYq+C,UAAWC,EAIvBt+C,EAJuBs+C,eAAgBC,EAIvCv+C,EAJuCu+C,iBAAkBC,EAIzDx+C,EAJyDw+C,oBAAqBC,EAI9Ez+C,EAJ8Ey+C,aAC9EC,EAGA1+C,EAHA0+C,iBAAkBC,EAGlB3+C,EAHkB2+C,gBAAiBC,EAGnC5+C,EAHmC4+C,gBAAiBC,EAGpD7+C,EAHoD6+C,iBACpDhyC,EAEA7M,EAFA6M,cAAe8G,EAEf3T,EAFe2T,QAASC,EAExB5T,EAFwB4T,UAAWkrC,EAEnC9+C,EAFmC8+C,WAAYzxC,EAE/CrN,EAF+CqN,YAAaF,EAE5DnN,EAF4DmN,YAAaC,EAEzEpN,EAFyEoN,YACzEgnC,EACAp0C,EADAo0C,YAAaC,EACbr0C,EADaq0C,cAAeC,EAC5Bt0C,EAD4Bs0C,aAAcC,EAC1Cv0C,EAD0Cu0C,eAAgB2I,EAC1Dl9C,EAD0Dk9C,eAGxDkD,EACF,2BAAKvlD,UAAU,iCACX,4BAAMuC,MAAQ,CAACkY,QAAS,UACpB,2BAAKza,UAAU,wBACV4T,IAAMivC,EACN5rC,IAAM,YACN1U,MAAQ,CACJwQ,MAAOkwC,EAAYA,EAAY,UAAOtzC,EACtC+e,OAAQ,eAOvB82B,EACF,2BAAKxlD,UAAU,iCACX,4BAAMuC,MAAQ,CAACkY,QAAS,UACpB,2BAAKza,UAAU,wBACV4T,IAAMmvC,EACN9rC,IAAM,YACN1U,MAAQ,CACJwQ,MAAOkwC,EAAYA,EAAY,UAAOtzC,EACtC+e,OAAQ,eAOvB+2B,EACF,2BAAKzlD,UAAU,4CACVuC,MAAQ,CACJkY,QAAsB,UAAb2nC,EAAuB,QAAU,WAG5CO,GACC,2BAAK3iD,UAAU,sDACVuC,MAAQ,CAAE6Q,gBAAiBpB,IAE5B,oBAACxB,EAAS6D,QAAV,CACIxP,QAAQ,OACR7E,UAAU,sBACV5B,MAAQwlD,EACRrhD,MAAQ,CAAEoQ,MAAOoG,KAErB,oBAACvI,EAAS6D,QAAV,CACIxP,QAAQ,IACR2I,KAAK,IACLxN,UAAU,sBACV5B,MAAQylD,EACRthD,MAAQ,CAAEoQ,MAAO6mC,MAI7B,4BAAM7zB,OAAO,GAAG3lB,UAAU,mBAAmBkpB,OAAO,QAChD,2BAAKlpB,UAAU,qCACX,2BAAKA,UAAU,6BACRyiD,GAAY8C,EACf,oBAAC/0C,EAAS6D,QAAV,CACIxP,QAAQ,KACR7E,UAAU,2BACV5B,MAAQ8kD,EACR3gD,MAAQ,CAAEoQ,MAAOoG,MAGzB,2BAAK/Y,UAAU,qCACVuC,MAAQ,CAAEiQ,YAAauG,IAExB,2BAAK/Y,UAAU,2BACX,oBAACwQ,EAAS6D,QAAV,CACIxP,QAAQ,QACRqjB,QAAQ,mBACR9pB,MAAQglD,EACR7gD,MAAQ,CAAEoQ,MAAOoG,MAGzB,2BAAK/Y,UAAU,0BACVuC,MAAQ,CACJ6Q,gBAAiB0F,EACjBnG,MAAOsxC,EACPzZ,kBAAmBh4B,EACnBF,YAAaA,EACbC,YAAaA,MAGfmwC,GACC,4BAAM1iD,UAAU,yBACVuC,MAAQ,CAAEoQ,MAAOoG,IAEjBipC,GAGV,6BAAO57C,KAAK,OACL2B,GAAG,mBACH/H,UAAU,oBACVtC,KAAK,MACL6E,MAAQ,CAAEoQ,MAAOsxC,GACjB5hD,YAAc8gD,GAA0B,qBAIvD,2BAAKnjD,UAAU,yCACVuC,MAAQ,CAAEiQ,YAAauG,IAExB,2BAAK/Y,UAAU,2BACX,oBAACwQ,EAAS6D,QAAV,CACIxP,QAAQ,QACRqjB,QAAQ,uBACR9pB,MAAQilD,EACR9gD,MAAQ,CAAEoQ,MAAOoG,MAGzB,2BAAK/Y,UAAU,0BACVuC,MAAQ,CACJ6Q,gBAAiB0F,EACjBnG,MAAOsxC,EACPzZ,kBAAmBh4B,EACnBF,YAAaA,EACbC,YAAaA,MAGfmwC,GACC,4BAAM1iD,UAAU,yBACVuC,MAAQ,CAAEoQ,MAAOoG,IAEjBkpC,GAGV,6BAAO77C,KAAK,WACL2B,GAAG,uBACH/H,UAAU,oBACVtC,KAAK,MACL6E,MAAQ,CAAEoQ,MAAOsxC,GACjB5hD,YAAY,eAI3B,2BAAKrC,UAAA,sCAAiD05C,IACtD,2BAAK15C,UAAA,mEAA8E05C,GAC/E,6BAAOxxB,QAAQ,aAAaloB,UAAU,qBAClC,6BAAOoG,KAAK,WACLhI,MAAM,UACN2J,GAAG,aACHrK,KAAK,aACLsC,UAAU,yBAEjB,2BAAKuC,MAAQ,CAAEoQ,MAAO6mC,GAAkBx5C,UAAU,sBAC9C,oBAACwQ,EAAS6D,QAAV,CACIxP,QAAQ,OACRtC,MAAQ,CAAEoQ,MAAOoG,GACjB3a,MAAQqlD,MAIpB,2BAAKzjD,UAAU,yCACX,oBAACwQ,EAAS6D,QAAV,CACIxP,QAAQ,SACRzG,MAAQslD,EACR1jD,UAAA,6BAAwCqiD,EACxCj8C,KAAK,SACL1I,KAAK,YACL6E,MAAQ,CACJiQ,YAAa+mC,EACb5mC,MAAO4mC,EACPnmC,gBAAiBomC,EACjB/mC,aAAcgnC,KAGtB,6BAAOrzC,KAAK,SAAS1I,KAAK,cAAcgoD,gBAAenD,EAAUviD,UAAU,cAAc5B,MAAOokD,IAChG,6BAAOp8C,KAAK,SAAS1I,KAAK,aAAaU,MAAM,MAC7C,6BAAOgI,KAAK,SAAS1I,KAAK,mBAAmBU,MAAM,UAGxDwkD,GACC,2BAAK5iD,UAAU,+CACX,2BAAKA,UAAU,uBACX,oBAACwQ,EAAS6D,QAAV,CACIxP,QAAQ,IACR2I,KAAK,IACLxN,UAAU,sBACVuC,MAAQ,CAAEoQ,MAAO6mC,GACjBp7C,MAAQ4lD,SAUlC2B,EACF,2BAAK3lD,UAAU,+CACVuC,MAAQ,CACJkY,QAAsB,aAAb2nC,EAA0B,QAAU,WAG/CO,GACC,2BAAK3iD,UAAU,8CACVuC,MAAQ,CAAE6Q,gBAAiBpB,IAE5B,2BAAKhS,UAAU,2BACVuC,MAAQ,CAAEoQ,MAAO6mC,IAElB,oBAAChpC,EAAS6D,QAAV,CACIxP,QAAQ,OACR7E,UAAU,sBACVuC,MAAQ,CAAEoQ,MAAO6mC,GACjBp7C,MAAQ2lD,MAKxB,4BAAMp+B,OAAO,GAAG3lB,UAAU,sBAAsBkpB,OAAO,QACnD,2BAAKlpB,UAAU,wCACX,2BAAKA,UAAU,6BACRyiD,GAAY+C,EACf,oBAACh1C,EAAS6D,QAAV,CACIxP,QAAQ,KACR7E,UAAU,2BACVuC,MAAQ,CAAEoQ,MAAOoG,GACjB3a,MAAQ0lD,KAGhB,2BAAK9jD,UAAU,4CACVuC,MAAQ,CAAEiQ,YAAauG,IAExB,2BAAK/Y,UAAU,2BACX,oBAACwQ,EAAS6D,QAAV,CACIxP,QAAQ,QACRqjB,QAAQ,0BACR3lB,MAAQ,CAAEoQ,MAAOoG,GACjB3a,MAAQmlD,KAGhB,2BAAKvjD,UAAU,0BACVuC,MAAQ,CACJ6Q,gBAAiB0F,EACjBnG,MAAOsxC,EACPzZ,kBAAmBh4B,EACnBF,YAAaA,EACbC,YAAaA,MAGfmwC,GACC,4BAAM1iD,UAAU,yBACVuC,MAAQ,CAAEoQ,MAAOoG,IAEjBgpC,GAGV,6BAAO37C,KAAK,OACL2B,GAAG,0BACH/H,UAAU,oBACVtC,KAAK,aACL6E,MAAQ,CAAEoQ,MAAOsxC,GACjB5hD,YAAcihD,GAAgC,eAI7D,2BAAKtjD,UAAU,yCACVuC,MAAQ,CAAEiQ,YAAauG,IAExB,2BAAK/Y,UAAU,2BACX,oBAACwQ,EAAS6D,QAAV,CACIxP,QAAQ,QACRqjB,QAAQ,uBACR3lB,MAAQ,CAAEoQ,MAAOoG,GACjB3a,MAAQolD,KAGhB,2BAAKxjD,UAAU,0BACVuC,MAAQ,CACJ6Q,gBAAiB0F,EACjBnG,MAAOsxC,EACPzZ,kBAAmBh4B,EACnBF,YAAaA,EACbC,YAAaA,MAGfmwC,GACC,4BAAM1iD,UAAU,yBACVuC,MAAQ,CAAEoQ,MAAOoG,IAEjBipC,GAGV,6BAAO57C,KAAK,QACL2B,GAAG,uBACH/H,UAAU,oBACVtC,KAAK,aACL6E,MAAQ,CAAEoQ,MAAOsxC,GACjB5hD,YAAc62C,GAA0B,qBAIvD,2BAAKl5C,UAAA,sCAAiD05C,IACtD,2BAAK15C,UAAA,mEAA8E05C,GAC/E,2BAAK15C,UAAU,4CACX,oBAACwQ,EAAS6D,QAAV,CACIxP,QAAQ,SACRzG,MAAQulD,EACR3jD,UAAA,6BAAwCqiD,EACxCj8C,KAAK,SACL1I,KAAK,YACL6E,MAAQ,CACJiQ,YAAa+mC,EACb5mC,MAAO4mC,EACPnmC,gBAAiBomC,EACjB/mC,aAAcgnC,UAU9C,OACI,2BAAKz5C,UAAU,2BAA2BuC,MAAQ,CAAEwQ,MAAOuvC,IACrDmD,EACAE,MA9yCtB,CAmzCItmD,GAAGqB,KAAMrB,GAAGoV,OAAQpV,GAAGsB,QAAStB,GAAGK,YAAaL,GAAGC,a,ggCCrzCvD,SAAY0Q,EAAQC,EAAUC,EAAWC,EAAeC,GACpDD,EAAgB9Q,GAAGK,aAAeL,GAAGM,OAD8B,IAE3Dc,EAAOuP,EAAPvP,GACAG,EAAwBsP,EAAxBtP,UAAWC,EAAaqP,EAAbrP,SACXwP,EAAsBJ,EAAtBI,kBAJ2D,EAKxBF,EAAnCI,EAL2D,EAK3DA,kBAAmB8N,EALwC,EAKxCA,YACnB1N,EAAmIP,EAAnIO,UAAW5P,EAAwHqP,EAAxHrP,YAAa46C,EAA2GvrC,EAA3GurC,gBAAiB10C,EAA0FmJ,EAA1FnJ,aAAcnG,EAA4EsP,EAA5EtP,cAAe8P,EAA6DR,EAA7DQ,cAAepR,EAA8C4Q,EAA9C5Q,YAAakL,EAAiC0F,EAAjC1F,OAAQkxC,EAAyBxrC,EAAzBwrC,YAAatK,EAAYlhC,EAAZkhC,QAE3HsU,EAAgB,KACdC,EACF,2BAAK/yC,MAAM,6BAA6BC,MAAM,KAAKC,OAAO,KAAKC,QAAQ,YAAYjT,UAAU,YACzF,4BAAMvC,EAAE,yLACR,4BAAMA,EAAE,gBAAgBsT,KAAK,UAG/B+0C,EAAa,CACfC,OAAQ,CACJ,CACI,YAAe,WACf,QAAW,CACP,CACI,MAAS,aAIrB,CACI,YAAe,cACf,QAAW,CACP,CACI,WAAc,SAI1B,CACI,YAAe,mBACf,QAAW,CACP,CACI,MAAS,aAIrB,CACI,YAAe,qBACf,QAAW,CACP,CACI,MAAS,aAIrB,CACI,YAAe,6BACf,YAAe,mBACf,QAAW,CACP,CACI,MAAS,aAIrB,CACI,YAAe,MACf,YAAe,WACf,QAAW,CACP,CACI,MAAS,aAIrB,CACI,YAAe,MACf,YAAe,mBACf,QAAW,CACP,CACI,MAAS,aAIrB,CACI,YAAe,WACf,YAAe,WACf,QAAW,CACP,CACI,MAAS,aAIrB,CACI,YAAe,WACf,YAAe,mBACf,QAAW,CACP,CACI,MAAS,aAIrB,CACI,YAAe,OACf,YAAe,WACf,QAAW,CACP,CACI,MAAS,aAIrB,CACI,YAAe,gBACf,YAAe,mBACf,QAAW,CACP,CACI,MAAS,aAIrB,CACI,YAAe,eACf,YAAe,WACf,QAAW,CACP,CACI,MAAS,aAIrB,CACI,YAAe,eACf,YAAe,mBACf,QAAW,CACP,CACI,MAAS,aAIrB,CACI,YAAe,aACf,YAAe,mBACf,QAAW,CACP,CACI,MAAS,aAIrB,CACI,YAAe,eACf,YAAe,WACf,QAAW,CACP,CACI,MAAS,aAIrB,CACI,YAAe,kBACf,YAAe,WACf,QAAW,CACP,CACI,MAAS,aAIrB,CACI,YAAe,QACf,YAAe,WACf,QAAW,CACP,CACI,MAAS,aAIrB,CACI,YAAe,QACf,YAAe,mBACf,QAAW,CACP,CACI,MAAS,cAKzBC,MAAO,CACH,CACI,YAAe,WACf,QAAW,CACP,CACI,MAAS,aAIrB,CACI,YAAe,mBACf,QAAW,CACP,CACI,MAAS,aAIrB,CACI,YAAe,qBACf,QAAW,CACP,CACI,MAAS,aAIrB,CACI,YAAe,iBACf,YAAe,kBACf,QAAW,CACP,CACI,MAAS,aAIrB,CACI,YAAe,6BACf,YAAe,kBACf,QAAW,CACP,CACI,MAAS,aAIrB,CACI,YAAe,6BACf,YAAe,mBACf,QAAW,CACP,CACI,MAAS,aAIrB,CACI,YAAe,oBACf,YAAe,WACf,QAAW,CACP,CACI,MAAS,aAIrB,CACI,YAAe,MACf,YAAe,WACf,QAAW,CACP,CACI,MAAS,aAIrB,CACI,YAAe,MACf,YAAe,mBACf,QAAW,CACP,CACI,MAAS,aAIrB,CACI,YAAe,WACf,YAAe,gBACf,QAAW,CACP,CACI,MAAS,aAIrB,CACI,YAAe,WACf,YAAe,mBACf,QAAW,CACP,CACI,MAAS,aAIrB,CACI,YAAe,OACf,YAAe,WACf,QAAW,CACP,CACI,MAAS,aAIrB,CACI,YAAe,gBACf,YAAe,WACf,QAAW,CACP,CACI,MAAS,aAIrB,CACI,YAAe,eACf,YAAe,WACf,QAAW,CACP,CACI,MAAS,aAIrB,CACI,YAAe,eACf,YAAe,kBACf,QAAW,CACP,CACI,MAAS,aAIrB,CACI,YAAe,iCACf,YAAe,WACf,QAAW,CACP,CACI,MAAS,aAIrB,CACI,YAAe,iCACf,YAAe,kBACf,QAAW,CACP,CACI,MAAS,aAIrB,CACI,YAAe,aACf,YAAe,mBACf,QAAW,CACP,CACI,MAAS,aAIrB,CACI,YAAe,eACf,YAAe,WACf,QAAW,CACP,CACI,MAAS,aAIrB,CACI,YAAe,eACf,YAAe,mBACf,QAAW,CACP,CACI,MAAS,aAIrB,CACI,YAAe,eACf,YAAe,qBACf,QAAW,CACP,CACI,MAAS,aAIrB,CACI,YAAe,kBACf,YAAe,WACf,QAAW,CACP,CACI,MAAS,aAIrB,CACI,YAAe,QACf,YAAe,gBACf,QAAW,CACP,CACI,MAAS,aAIrB,CACI,YAAe,QACf,YAAe,mBACf,QAAW,CACP,CACI,MAAS,cAKzBC,KAAM,CACF,CACI,YAAe,WACf,QAAW,CACP,CACI,MAAS,aAIrB,CACI,YAAe,cACf,QAAW,CACP,CACI,WAAc,SAI1B,CACI,YAAe,mBACf,QAAW,CACP,CACI,MAAS,aAIrB,CACI,YAAe,qBACf,QAAW,CACP,CACI,MAAS,aAIrB,CACI,YAAe,iBACf,YAAe,WACf,QAAW,CACP,CACI,MAAS,aAIrB,CACI,YAAe,yBACf,YAAe,mBACf,QAAW,CACP,CACI,MAAS,aAIrB,CACI,YAAe,6BACf,QAAW,CACP,CACI,WAAc,SAI1B,CACI,YAAe,0BACf,YAAe,mBACf,QAAW,CACP,CACI,MAAS,aAIrB,CACI,YAAe,MACf,YAAe,mBACf,QAAW,CACP,CACI,MAAS,aAIrB,CACI,YAAe,WACf,YAAe,WACf,QAAW,CACP,CACI,MAAS,aAIrB,CACI,YAAe,WACf,YAAe,mBACf,QAAW,CACP,CACI,MAAS,aAIrB,CACI,YAAe,WACf,YAAe,qBACf,QAAW,CACP,CACI,MAAS,aAIrB,CACI,YAAe,OACf,YAAe,gBACf,QAAW,CACP,CACI,MAAS,aAIrB,CACI,YAAe,OACf,YAAe,mBACf,QAAW,CACP,CACI,MAAS,aAIrB,CACI,YAAe,gBACf,YAAe,WACf,QAAW,CACP,CACI,MAAS,aAIrB,CACI,YAAe,eACf,YAAe,WACf,QAAW,CACP,CACI,MAAS,aAIrB,CACI,YAAe,iCACf,YAAe,WACf,QAAW,CACP,CACI,MAAS,aAIrB,CACI,YAAe,aACf,YAAe,mBACf,QAAW,CACP,CACI,MAAS,aAIrB,CACI,YAAe,UACf,YAAe,mBACf,QAAW,CACP,CACI,MAAS,aAIrB,CACI,YAAe,QACf,YAAe,WACf,QAAW,CACP,CACI,MAAS,aAIrB,CACI,YAAe,QACf,YAAe,mBACf,QAAW,CACP,CACI,MAAS,cAKzBC,MAAO,CACH,CACI,YAAe,WACf,QAAW,CACP,CACI,MAAS,aAIrB,CACI,YAAe,mBACf,QAAW,CACP,CACI,MAAS,aAIrB,CACI,YAAe,qBACf,QAAW,CACP,CACI,MAAS,aAIrB,CACI,YAAe,0BACf,YAAe,mBACf,QAAW,CACP,CACI,MAAS,aAIrB,CACI,YAAe,MACf,YAAe,mBACf,QAAW,CACP,CACI,MAAS,aAIrB,CACI,YAAe,WACf,YAAe,WACf,QAAW,CACP,CACI,MAAS,aAIrB,CACI,YAAe,WACf,YAAe,mBACf,QAAW,CACP,CACI,MAAS,aAIrB,CACI,YAAe,OACf,YAAe,WACf,QAAW,CACP,CACI,MAAS,aAIrB,CACI,YAAe,OACf,YAAe,kBACf,QAAW,CACP,CACI,MAAS,aAIrB,CACI,YAAe,OACf,YAAe,mBACf,QAAW,CACP,CACI,MAAS,aAIrB,CACI,YAAe,eACf,YAAe,WACf,QAAW,CACP,CACI,MAAS,aAIrB,CACI,YAAe,eACf,YAAe,kBACf,QAAW,CACP,CACI,MAAS,aAIrB,CACI,YAAe,eACf,YAAe,mBACf,QAAW,CACP,CACI,MAAS,aAIrB,CACI,YAAe,UACf,YAAe,WACf,QAAW,CACP,CACI,MAAS,aAIrB,CACI,YAAe,kBACf,YAAe,mBACf,QAAW,CACP,CACI,MAAS,aAIrB,CACI,YAAe,QACf,YAAe,WACf,QAAW,CACP,CACI,MAAS,aAIrB,CACI,YAAe,QACf,YAAe,mBACf,QAAW,CACP,CACI,MAAS,aAIrB,CACI,YAAe,QACf,YAAe,qBACf,QAAW,CACP,CACI,MAAS,cAKzBC,UAAW,CACP,CACI,YAAe,WACf,QAAW,CACP,CACI,MAAS,aAIrB,CACI,YAAe,mBACf,QAAW,CACP,CACI,MAAS,aAIrB,CACI,YAAe,qBACf,QAAW,CACP,CACI,MAAS,aAIrB,CACI,YAAe,yBACf,YAAe,kBACf,QAAW,CACP,CACI,MAAS,aAIrB,CACI,YAAe,6BACf,YAAe,mBACf,QAAW,CACP,CACI,MAAS,aAIrB,CACI,YAAe,0BACf,YAAe,kBACf,QAAW,CACP,CACI,MAAS,aAIrB,CACI,YAAe,qBACf,YAAe,kBACf,QAAW,CACP,CACI,MAAS,aAIrB,CACI,YAAe,oBACf,YAAe,WACf,QAAW,CACP,CACI,MAAS,aAIrB,CACI,YAAe,MACf,YAAe,WACf,QAAW,CACP,CACI,MAAS,aAIrB,CACI,YAAe,MACf,YAAe,mBACf,QAAW,CACP,CACI,MAAS,aAIrB,CACI,YAAe,MACf,YAAe,qBACf,QAAW,CACP,CACI,MAAS,aAIrB,CACI,YAAe,WACf,YAAe,gBACf,QAAW,CACP,CACI,MAAS,aAIrB,CACI,YAAe,WACf,YAAe,mBACf,QAAW,CACP,CACI,MAAS,aAIrB,CACI,YAAe,OACf,YAAe,WACf,QAAW,CACP,CACI,MAAS,aAIrB,CACI,YAAe,OACf,YAAe,mBACf,QAAW,CACP,CACI,MAAS,aAIrB,CACI,YAAe,OACf,YAAe,qBACf,QAAW,CACP,CACI,MAAS,aAIrB,CACI,YAAe,eACf,YAAe,WACf,QAAW,CACP,CACI,MAAS,aAIrB,CACI,YAAe,eACf,YAAe,kBACf,QAAW,CACP,CACI,MAAS,aAIrB,CACI,YAAe,eACf,YAAe,mBACf,QAAW,CACP,CACI,MAAS,aAIrB,CACI,YAAe,eACf,YAAe,qBACf,QAAW,CACP,CACI,MAAS,aAIrB,CACI,YAAe,UACf,YAAe,mBACf,QAAW,CACP,CACI,MAAS,aAIrB,CACI,YAAe,UACf,YAAe,qBACf,QAAW,CACP,CACI,MAAS,aAIrB,CACI,YAAe,eACf,YAAe,gBACf,QAAW,CACP,CACI,MAAS,aAIrB,CACI,YAAe,kBACf,YAAe,WACf,QAAW,CACP,CACI,MAAS,aAIrB,CACI,YAAe,QACf,YAAe,WACf,QAAW,CACP,CACI,MAAS,aAIrB,CACI,YAAe,QACf,YAAe,mBACf,QAAW,CACP,CACI,MAAS,eASvBC,EA/8B6D,YAg9B/D,aAAc,0EACA30C,YADA,OAEV,EAAKxQ,MAAQ,CACTolD,eAAgB,GAChBC,WAAY,KACZC,cAAe,KACfC,YAAa,KA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IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,KACL,IAAK,KACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,KACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,KACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,KACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,KACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,KACL,IAAK,KACL,IAAK,IACL,IAAK,IACL,IAAK,KACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,KACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,KACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,KACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,KACL,IAAK,KACL,IAAK,KACL,IAAK,IACL,IAAK,KACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,KACL,IAAK,IACL,IAAK,KACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,KACL,IAAK,KACL,IAAK,KACL,IAAK,KACL,IAAK,KACL,IAAK,KACL,IAAK,KACL,IAAK,KACL,IAAK,KACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,KACL,IAAK,KACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,KACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,KACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,KACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,KACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,KACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,KACL,IAAK,KACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,KACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,KACL,IAAK,IACL,IAAK,KACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,KACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,KACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,KACL,IAAK,KACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,KACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,KACL,IAAK,KACL,IAAK,MACL,IAAK,MACL,IAAK,KACL,IAAK,KACL,IAAK,KACL,IAAK,KACL,IAAK,KACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,KACL,IAAK,IACL,IAAK,KACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,KACL,IAAK,MACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,KACL,IAAK,IACL,IAAK,KACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,KACL,IAAK,MACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,KACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,KACL,IAAK,IACL,IAAK,KACL,IAAK,KACL,IAAK,IACL,IAAK,IACL,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","file":"blocks.js","sourcesContent":[" \t// The module cache\n \tvar installedModules = {};\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n \t\t}\n \t};\n\n \t// define __esModule on exports\n \t__webpack_require__.r = function(exports) {\n \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n \t\t}\n \t\tObject.defineProperty(exports, '__esModule', { value: true });\n \t};\n\n \t// create a fake namespace object\n \t// mode & 1: value is a module id, require it\n \t// mode & 2: merge all properties of value into the ns\n \t// mode & 4: return value when already ns object\n \t// mode & 8|1: behave like require\n \t__webpack_require__.t = function(value, mode) {\n \t\tif(mode & 1) value = __webpack_require__(value);\n \t\tif(mode & 8) return value;\n \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n \t\tvar ns = Object.create(null);\n \t\t__webpack_require__.r(ns);\n \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n \t\treturn ns;\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"\";\n\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(__webpack_require__.s = 6);\n","export function AdvColorControl(props) {\n const {ColorIndicator, BaseControl} = wp.components;\n const {ColorPalette} = wp.blockEditor || wp.editor;\n const BaseLabel = BaseControl.VisualLabel ? BaseControl.VisualLabel : \"span\";\n\n const {label, value, onChange} = props;\n return (\n <BaseControl\n className=\"editor-color-palette-control block-editor-color-palette-control\"\n >\n <BaseLabel className=\"components-base-control__label\">\n {label}\n {value && (\n <ColorIndicator colorValue={value} />\n )}\n </BaseLabel>\n <ColorPalette\n className=\"editor-color-palette-control__color-palette block-editor-color-palette-control__color-palette\"\n value={value}\n onChange={onChange}\n />\n </BaseControl>\n )\n}\n","const { __ } = wp.i18n;\nconst { Component, Fragment } = wp.element;\nconst { SelectControl, TextControl } = wp.components;\n\nclass IconListPopup extends Component {\n\n constructor(props) {\n super(props);\n this.handleClick = this.handleClick.bind(this);\n this.state = {\n searchedText: '',\n selectedIcon: '',\n selectedIconTheme: 'outlined',\n }\n }\n\n componentWillMount() {\n const {searchedText, selectedIconTheme} = this.state;\n if(this.props.selectedIcon !== searchedText) {\n this.setState({\n selectedIcon: this.props.selectedIcon,\n });\n }\n if(this.props.selectedIconTheme !== selectedIconTheme) {\n this.setState({\n selectedIconTheme: this.props.selectedIconTheme\n });\n }\n document.addEventListener('click', this.handleClick)\n }\n\n componentWillUnmount() {\n // important\n document.removeEventListener('click', this.handleClick)\n }\n\n handleClick(e) {\n // ignore clicks inside the popup and the click that launched the popup\n if (this.node.contains(e.target) || e.target.className.includes('advgb-browse-image-btn') || e.target.className.includes('advgb-browse-icon-btn')) {\n return;\n }\n this.props.closePopup();\n }\n\n\n render() {\n const {searchedText, selectedIcon, selectedIconTheme} = this.state;\n const popUpTitle = __('Icon List', 'advanced-gutenberg');\n const iconType = 'material';\n\n const applyIconButtonClass = [\n 'apply-btn',\n 'components-button',\n 'button button-large',\n 'advgb-icon-apply-btn',\n 'is-primary'\n ].filter( Boolean ).join( ' ' );\n\n const closeButtonClass = [\n 'close-btn',\n ].filter( Boolean ).join( ' ' );\n\n return (\n <Fragment>\n <div className='advgb-icon-popup'>\n <div\n className='popup-inner'\n ref={node => {this.node = node}}\n >\n <div className=\"popup-content\">\n <div className=\"popup-header\">\n <h3>{popUpTitle}</h3>\n <button\n className={closeButtonClass}\n onClick={this.props.closePopup}>\n <i className=\"material-icons\">close</i>\n </button>\n </div>\n <div className=\"popup-body\">\n <TextControl\n placeholder={ __( 'Search icons', 'advanced-gutenberg' ) }\n value={ searchedText }\n onChange={ (value) => this.setState( { searchedText: value } ) }\n />\n <SelectControl\n label={ __('Style', 'advanced-gutenberg') }\n value={ selectedIconTheme }\n className=\"advgb-icon-style-select\"\n options={ [\n { label: __('Filled', 'advanced-gutenberg'), value: '' },\n { label: __('Outlined', 'advanced-gutenberg'), value: 'outlined' },\n { label: __('Rounded', 'advanced-gutenberg'), value: 'round' },\n { label: __('Two-Tone', 'advanced-gutenberg'), value: 'two-tone' },\n { label: __('Sharp', 'advanced-gutenberg'), value: 'sharp' },\n ] }\n onChange={ ( value ) => {\n this.setState({\n selectedIconTheme: value,\n });\n } }\n />\n <div className=\"advgb-icon-items-wrapper button-icons-list\" style={ {maxHeight: 300, overflowY: 'auto', overflowX: 'hidden'} }>\n\n {Object.keys(advgbBlocks.iconList[iconType])\n .filter((icon) => icon.indexOf(searchedText.trim().split(' ').join('_')) > -1)\n .map( (icon, index) => {\n\n const iconClass = [\n iconType === 'material' && 'material-icons',\n selectedIconTheme !== '' && `-${selectedIconTheme}`\n ].filter( Boolean ).join('');\n\n return (\n <div className=\"advgb-icon-item\" key={ index }>\n <span\n onClick={ () => {\n this.setState({\n selectedIcon: icon\n })\n } }\n className={ icon === selectedIcon && 'active' }\n title={ icon }\n >\n <i className={ iconClass }>{icon}</i>\n </span>\n </div>\n )\n } ) }\n </div>\n </div>\n <div className=\"popup-footer\">\n <button\n disabled={selectedIcon === ''}\n className={applyIconButtonClass}\n onClick={() => {\n this.props.onSelectIcon( selectedIcon );\n this.props.onSelectIconTheme(selectedIconTheme);\n this.props.closePopup();\n }}>\n { __('Apply', 'advanced-gutenberg') }\n </button>\n </div>\n </div>\n </div>\n </div>\n </Fragment>\n );\n }\n}\nexport default IconListPopup;\n\nexport function IconListPopupHook(props) {\n const { closePopup, onSelectIcon, onSelectIconTheme, selectedIcon, selectedIconTheme } = props;\n return (\n <IconListPopup\n closePopup={ closePopup }\n onSelectIcon={ onSelectIcon }\n onSelectIconTheme={ onSelectIconTheme }\n selectedIcon={ selectedIcon }\n selectedIconTheme={ selectedIconTheme }\n />\n );\n}\n","var React = require('react');\nvar hyphenPatternRegex = /-([a-z])/g;\nvar CUSTOM_PROPERTY_OR_NO_HYPHEN_REGEX = /^--[a-zA-Z0-9-]+$|^[^-]+$/;\n\n/**\n * Converts a string to camelCase.\n *\n * @param {String} string - The string.\n * @return {String}\n */\nfunction camelCase(string) {\n if (typeof string !== 'string') {\n throw new TypeError('First argument must be a string');\n }\n\n // custom property or no hyphen found\n if (CUSTOM_PROPERTY_OR_NO_HYPHEN_REGEX.test(string)) {\n return string;\n }\n\n // convert to camelCase\n return string\n .toLowerCase()\n .replace(hyphenPatternRegex, function (_, character) {\n return character.toUpperCase();\n });\n}\n\n/**\n * Swap key with value in an object.\n *\n * @param {Object} obj - The object.\n * @param {Function} [override] - The override method.\n * @return {Object} - The inverted object.\n */\nfunction invertObject(obj, override) {\n if (!obj || typeof obj !== 'object') {\n throw new TypeError('First argument must be an object');\n }\n\n var key;\n var value;\n var isOverridePresent = typeof override === 'function';\n var overrides = {};\n var result = {};\n\n for (key in obj) {\n value = obj[key];\n\n if (isOverridePresent) {\n overrides = override(key, value);\n if (overrides && overrides.length === 2) {\n result[overrides[0]] = overrides[1];\n continue;\n }\n }\n\n if (typeof value === 'string') {\n result[value] = key;\n }\n }\n\n return result;\n}\n\n/**\n * Check if a given tag is a custom component.\n *\n * @see {@link https://github.com/facebook/react/blob/v16.6.3/packages/react-dom/src/shared/isCustomComponent.js}\n *\n * @param {string} tagName - The name of the html tag.\n * @param {Object} props - The props being passed to the element.\n * @return {boolean}\n */\nfunction isCustomComponent(tagName, props) {\n if (tagName.indexOf('-') === -1) {\n return props && typeof props.is === 'string';\n }\n\n switch (tagName) {\n // These are reserved SVG and MathML elements.\n // We don't mind this whitelist too much because we expect it to never grow.\n // The alternative is to track the namespace in a few places which is convoluted.\n // https://w3c.github.io/webcomponents/spec/custom/#custom-elements-core-concepts\n case 'annotation-xml':\n case 'color-profile':\n case 'font-face':\n case 'font-face-src':\n case 'font-face-uri':\n case 'font-face-format':\n case 'font-face-name':\n case 'missing-glyph':\n return false;\n default:\n return true;\n }\n}\n\n/**\n * @constant {Boolean}\n * @see {@link https://reactjs.org/blog/2017/09/08/dom-attributes-in-react-16.html}\n */\nvar PRESERVE_CUSTOM_ATTRIBUTES = React.version.split('.')[0] >= 16;\n\nmodule.exports = {\n PRESERVE_CUSTOM_ATTRIBUTES: PRESERVE_CUSTOM_ATTRIBUTES,\n camelCase: camelCase,\n invertObject: invertObject,\n isCustomComponent: isCustomComponent\n};\n","'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n module.exports = require('./cjs/react.production.min.js');\n} else {\n module.exports = require('./cjs/react.development.js');\n}\n","var CASE_SENSITIVE_TAG_NAMES = require('./constants').CASE_SENSITIVE_TAG_NAMES;\n\nvar caseSensitiveTagNamesMap = {};\nvar tagName;\nfor (var i = 0, len = CASE_SENSITIVE_TAG_NAMES.length; i < len; i++) {\n tagName = CASE_SENSITIVE_TAG_NAMES[i];\n caseSensitiveTagNamesMap[tagName.toLowerCase()] = tagName;\n}\n\n/**\n * Gets case-sensitive tag name.\n *\n * @param {String} tagName - The lowercase tag name.\n * @return {String|undefined}\n */\nfunction getCaseSensitiveTagName(tagName) {\n return caseSensitiveTagNamesMap[tagName];\n}\n\n/**\n * Formats DOM attributes to a hash map.\n *\n * @param {NamedNodeMap} attributes - The list of attributes.\n * @return {Object} - A map of attribute name to value.\n */\nfunction formatAttributes(attributes) {\n var result = {};\n var attribute;\n // `NamedNodeMap` is array-like\n for (var i = 0, len = attributes.length; i < len; i++) {\n attribute = attributes[i];\n result[attribute.name] = attribute.value;\n }\n return result;\n}\n\n/**\n * Corrects the tag name if it is case-sensitive (SVG).\n * Otherwise, returns the lowercase tag name (HTML).\n *\n * @param {String} tagName - The lowercase tag name.\n * @return {String} - The formatted tag name.\n */\nfunction formatTagName(tagName) {\n tagName = tagName.toLowerCase();\n var caseSensitiveTagName = getCaseSensitiveTagName(tagName);\n if (caseSensitiveTagName) {\n return caseSensitiveTagName;\n }\n return tagName;\n}\n\n/**\n * Formats the browser DOM nodes to mimic the output of `htmlparser2.parseDOM()`.\n *\n * @param {NodeList} nodes - The DOM nodes.\n * @param {Object} [parentObj] - The formatted parent node.\n * @param {String} [directive] - The directive.\n * @return {Object[]} - The formatted DOM object.\n */\nfunction formatDOM(nodes, parentObj, directive) {\n parentObj = parentObj || null;\n\n var result = [];\n var node;\n var prevNode;\n var nodeObj;\n\n // `NodeList` is array-like\n for (var i = 0, len = nodes.length; i < len; i++) {\n node = nodes[i];\n // reset\n nodeObj = {\n next: null,\n prev: result[i - 1] || null,\n parent: parentObj\n };\n\n // set the next node for the previous node (if applicable)\n prevNode = result[i - 1];\n if (prevNode) {\n prevNode.next = nodeObj;\n }\n\n // set the node name if it's not \"#text\" or \"#comment\"\n // e.g., \"div\"\n if (node.nodeName[0] !== '#') {\n nodeObj.name = formatTagName(node.nodeName);\n // also, nodes of type \"tag\" have \"attribs\"\n nodeObj.attribs = {}; // default\n if (node.attributes && node.attributes.length) {\n nodeObj.attribs = formatAttributes(node.attributes);\n }\n }\n\n // set the node type\n // e.g., \"tag\"\n switch (node.nodeType) {\n // 1 = element\n case 1:\n if (nodeObj.name === 'script' || nodeObj.name === 'style') {\n nodeObj.type = nodeObj.name;\n } else {\n nodeObj.type = 'tag';\n }\n // recursively format the children\n nodeObj.children = formatDOM(node.childNodes, nodeObj);\n break;\n // 2 = attribute\n // 3 = text\n case 3:\n nodeObj.type = 'text';\n nodeObj.data = node.nodeValue;\n break;\n // 8 = comment\n case 8:\n nodeObj.type = 'comment';\n nodeObj.data = node.nodeValue;\n break;\n }\n\n result.push(nodeObj);\n }\n\n if (directive) {\n result.unshift({\n name: directive.substring(0, directive.indexOf(' ')).toLowerCase(),\n data: directive,\n type: 'directive',\n next: result[0] ? result[0] : null,\n prev: null,\n parent: parentObj\n });\n\n if (result[1]) {\n result[1].prev = result[0];\n }\n }\n\n return result;\n}\n\n/**\n * Detects IE with or without version.\n *\n * @param {Number} [version] - The IE version to detect.\n * @return {Boolean} - Whether IE or the version has been detected.\n */\nfunction isIE(version) {\n if (version) {\n return document.documentMode === version;\n }\n return /(MSIE |Trident\\/|Edge\\/)/.test(navigator.userAgent);\n}\n\nmodule.exports = {\n formatAttributes: formatAttributes,\n formatDOM: formatDOM,\n isIE: isIE\n};\n","const { __ } = wp.i18n;\nconst { Component, Fragment } = wp.element;\nconst { TreeSelect, SelectControl, FormTokenField, RangeControl } = wp.components;\nconst { pickBy, isUndefined, groupBy } = lodash;\n\n/**\n * Returns terms in a tree form.\n *\n * @param {Array} flatTerms Array of terms in flat format.\n *\n * @return {Array} Array of terms in tree format.\n */\nfunction buildTermsTree( flatTerms ) {\n const flatTermsWithParentAndChildren = flatTerms.map(( term ) => {\n return {\n children: [],\n parent: null,\n ...term,\n };\n });\n\n const termsByParent = groupBy( flatTermsWithParentAndChildren, 'parent' );\n if ( termsByParent.null && termsByParent.null.length ) {\n return flatTermsWithParentAndChildren;\n }\n const fillWithChildren = ( terms ) => {\n return terms.map( ( term ) => {\n const children = termsByParent[ term.id ];\n return {\n ...term,\n children:\n children && children.length\n ? fillWithChildren( children )\n : [],\n };\n });\n };\n\n return fillWithChildren( termsByParent[ '0' ] || []);\n}\n\n\nfunction AuthorSelect({\n label,\n noOptionLabel,\n authorList,\n selectedAuthorId,\n onChange,\n }) {\n const termsTree = buildTermsTree(authorList);\n return (\n <TreeSelect\n {...{label, noOptionLabel, onChange}}\n tree={termsTree}\n selectedId={selectedAuthorId}\n />\n );\n}\n\n\n\nfunction CategorySelect({\n label,\n noOptionLabel,\n categoriesList,\n selectedCategoryId,\n onChange,\n ...props\n }) {\n const termsTree = buildTermsTree(categoriesList);\n return (\n <TreeSelect\n {...{label, noOptionLabel, onChange}}\n tree={termsTree}\n selectedId={selectedCategoryId}\n {...props}\n />\n );\n}\n\n\nconst DEFAULT_MIN_ITEMS = 1;\nconst DEFAULT_MAX_ITEMS = 100;\nconst PP_SERIES_POST_TYPES = typeof advgbBlocks.pp_series_post_types !== 'undefined' ? advgbBlocks.pp_series_post_types : [ 'post' ];\n\nfunction AdvQueryControls({\n categoriesList,\n selectedCategoryId,\n numberOfItems,\n order,\n orderBy,\n postType,\n maxItems = DEFAULT_MAX_ITEMS,\n minItems = DEFAULT_MIN_ITEMS,\n onCategoryChange,\n onNumberOfItemsChange,\n onOrderChange,\n onOrderByChange,\n }) {\n let orderParams = [\n {\n label: __('Created: Newest to oldest', 'advanced-gutenberg'),\n value: 'date/desc',\n },\n {\n label: __('Created: Oldest to newest', 'advanced-gutenberg'),\n value: 'date/asc',\n },\n {\n /* translators: label for ordering posts by title in ascending order */\n label: __('A → Z', 'advanced-gutenberg'),\n value: 'title/asc',\n },\n {\n /* translators: label for ordering posts by title in descending order */\n label: __('Z → A', 'advanced-gutenberg'),\n value: 'title/desc',\n },\n {\n label: __('Author', 'advanced-gutenberg') + ' ' + __('A → Z', 'advanced-gutenberg'),\n value: 'author/asc',\n },\n {\n label: __('Author', 'advanced-gutenberg') + ' ' + __('Z → A', 'advanced-gutenberg'),\n value: 'author/desc',\n },\n {\n label: __('Modified: Newest to oldest', 'advanced-gutenberg'),\n value: 'modified/desc',\n },\n {\n label: __('Modified: Oldest to newest', 'advanced-gutenberg'),\n value: 'modified/asc',\n },\n {\n label: __('Post ID Descending', 'advanced-gutenberg'),\n value: 'id/desc',\n },\n {\n label: __('Post ID Ascending', 'advanced-gutenberg'),\n value: 'id/asc',\n },\n ];\n\n // post and page supports more orderBy parameters\n if ( postType === 'post' || postType === 'page' ) {\n orderParams = _.union(orderParams, [\n {\n label: __('Randomize', 'advanced-gutenberg'),\n value: 'rand/asc',\n },\n ]);\n }\n\n // post support more orderBy parameters\n if ( postType === 'post' ) {\n orderParams = _.union(orderParams, [\n {\n label: __('Comments, decreasing order', 'advanced-gutenberg'),\n value: 'comment_count/desc',\n },\n {\n label: __('Comments, increasing order', 'advanced-gutenberg'),\n value: 'comment_count/asc',\n },\n ]);\n }\n\n if(\n typeof advgbBlocks.pp_series_active !== 'undefined'\n && parseInt(advgbBlocks.pp_series_active)\n && PP_SERIES_POST_TYPES.includes( postType )\n ) {\n orderParams = _.union(orderParams, [\n {\n label: __('Series order', 'advanced-gutenberg'),\n value: 'series_order/asc',\n },\n ]);\n }\n\n return [\n onOrderChange && onOrderByChange && (\n <SelectControl\n key=\"query-controls-order-select\"\n label={__('Order by', 'advanced-gutenberg')}\n value={`${orderBy}/${order}`}\n options={ orderParams }\n onChange={(value) => {\n const [newOrderBy, newOrder] = value.split('/');\n if (newOrder !== order) {\n onOrderChange(newOrder);\n }\n if (newOrderBy !== orderBy) {\n onOrderByChange(newOrderBy);\n }\n }}\n />\n ),\n categoriesList && onCategoryChange && (\n <CategorySelect\n key=\"query-controls-category-select\"\n categoriesList={categoriesList}\n label={__('Category', 'advanced-gutenberg')}\n noOptionLabel={__('All', 'advanced-gutenberg')}\n selectedCategoryId={selectedCategoryId}\n onChange={onCategoryChange}\n />\n ),\n onNumberOfItemsChange && (\n <RangeControl\n key=\"query-controls-range-control\"\n label={__('Number of items', 'advanced-gutenberg')}\n value={numberOfItems}\n onChange={onNumberOfItemsChange}\n min={minItems}\n max={maxItems}\n required\n />\n ),\n ];\n}\n\nexport default AdvQueryControls;\nexport { AuthorSelect };\n","import hourConvert from 'hour-convert';\n\nconst { ButtonGroup, Button, DateTimePicker, TextControl, CheckboxControl, Popover, Tooltip, SelectControl, Icon } = wp.components;\nconst { Component, Fragment, useState } = wp.element;\nconst { __, _x } = wp.i18n;\nconst { applyFilters } = wp.hooks;\n\nexport function AdvDateTimeControl(props) {\n const [popupState, setPopupState] = useState( false );\n const togglePopup = () => {\n setPopupState( ! popupState );\n };\n\n const {\n buttonLabel,\n dateLabel,\n date,\n onChangeDate,\n onDateClear,\n onInvalidDate\n } = props;\n\n return (\n <Fragment>\n <div className=\"advgb-advcalendar-control\">\n <label>\n { dateLabel }\n </label>\n <div>\n <Button\n isLink\n icon=\"calendar\"\n onClick={ togglePopup }\n >\n <Tooltip text={ __( 'Change date', 'advanced-gutenberg' ) }>\n <span>\n { date ? moment( date ).format( \"MMMM DD YYYY, h:mm a\" ) : buttonLabel }\n </span>\n </Tooltip>\n </Button>\n { date &&\n \t\t\t\t<Button\n \t\t\t\t\ticon=\"no-alt\"\n className=\"advgb-advcalendar-remove-icon\"\n \t\t\t\t\tonClick={ () => onDateClear() }\n \t\t\t\t/>\n \t\t\t}\n </div>\n </div>\n { popupState &&\n <Popover\n className=\"advgb-advcalendar-popover\"\n onClose={ setPopupState.bind( null, false ) }\n resize={ false }\n >\n <label className=\"advgb-advcalendar-popover-label\">\n { dateLabel }\n <Button\n \t\t\t\t\ticon=\"no-alt\"\n className=\"advgb-advcalendar-remove-icon\"\n \t\t\t\t\tonClick={ togglePopup }\n \t\t\t\t/>\n </label>\n <DateTimePicker\n currentDate={ date }\n onChange={ onChangeDate }\n is12Hour={ true }\n isInvalidDate={ onInvalidDate }\n />\n </Popover>\n }\n </Fragment>\n\n )\n}\n\nexport function AdvDaysControl(props) {\n const allDays = [\n { slug: 0, label: _x( 'S', 'Sunday first letter', 'advanced-gutenberg' ) }, // Sunday\n { slug: 1, label: __( 'M', 'advanced-gutenberg' ) }, // Monday\n { slug: 2, label: _x( 'T', 'Tuesday first letter', 'advanced-gutenberg' ) }, // Tuesday\n { slug: 3, label: __( 'W', 'advanced-gutenberg' ) }, // Wednesday\n { slug: 4, label: _x( 'T', 'Thursday first letter', 'advanced-gutenberg' ) }, // Thursday\n { slug: 5, label: __( 'F', 'advanced-gutenberg' ) }, // Friday\n { slug: 6, label: _x( 'S', 'Saturday first letter', 'advanced-gutenberg' ) } // Saturday\n ];\n\n const {\n label,\n days,\n onChangeDays\n } = props;\n\n // Use a single state variable to store the selected days\n const [ selectedDays, setSelectedDays ] = useState( days );\n\n /**\n * Check if the day is selected or not\n *\n * @since 3.1.2\n *\n * @param {string} Day slug e.g. 'u' for Sunday, 't' for Tuesday\n *\n * @return {bool}\n */\n function isDaySelected( slug ) {\n return selectedDays.some( el => el === slug );\n }\n\n /**\n * Update the selected days state when a checkbox is changed\n *\n * @since 3.1.2\n *\n * @param {string} Day slug e.g. 'u' for Sunday, 't' for Tuesday\n *\n * @return {void}\n */\n function onChangeDay( slug ) {\n\n // Check if the day is already selected\n const isSelected = isDaySelected( slug );\n\n // Create a new array with the updated selection\n let updatedDays;\n if ( isSelected ) {\n // Remove the day from the selected days\n updatedDays = selectedDays.filter( el => el !== slug );\n } else {\n // Add the day to the selected days\n const findDay = allDays.find( el => el.slug === slug );\n updatedDays = [ ...selectedDays, findDay.slug ];\n }\n\n // Remove duplicates\n const uniqueDays = [ ...new Set( updatedDays ) ];\n\n // Update the selected days state\n setSelectedDays( uniqueDays );\n\n // Call the onChangeDays prop to notify the parent component of the change\n if ( onChangeDays ) {\n onChangeDays( updatedDays );\n }\n }\n\n return (\n <Fragment>\n <div className=\"advgb-checkbox-wrapper\">\n <label>\n { label }\n </label>\n <div className=\"advgb-checkbox-inline\">\n { allDays.map( day => (\n <CheckboxControl\n label={ day.label }\n checked={ isDaySelected( day.slug ) }\n onChange={ () => onChangeDay( day.slug ) }\n />\n ) ) }\n </div>\n </div>\n </Fragment>\n )\n}\n\nclass AdvTimeClass extends Component {\n\n constructor(props) {\n super(props);\n this.state = {\n onChangeTime: null,\n currentTime: this.props.currentTime || null,\n hours: null,\n minutes: null,\n meridian: 'am',\n onInit: true\n };\n }\n\n componentWillMount() {\n const { onChangeTime, currentTime, onInit } = this.state;\n\n if( this.props.onChangeTime !== onChangeTime ) {\n this.setState( {\n onChangeTime: this.props.onChangeTime,\n } );\n }\n\n if( this.props.currentTime !== currentTime ) {\n this.setState( {\n currentTime: this.props.currentTime,\n } );\n }\n\n // Init\n if( currentTime && currentTime.includes(':') && onInit ) {\n this.setState( {\n hours: currentTime.split(':')[0],\n minutes: currentTime.split(':')[1],\n meridian: parseInt( currentTime.split(':')[0] ) > 11 ? 'pm' : 'am', // We set > 11 because PM starts from 12:00:00\n onInit: false\n } );\n }\n }\n\n componentDidUpdate(prevProps, prevState) {\n const { onChangeTime, currentTime } = this.props;\n const { hours, minutes, meridian } = this.state;\n const { hours: prevHours, minutes: prevMinutes, meridian: prevMeridian } = prevState;\n\n if( hours !== prevHours || minutes !== prevMinutes || meridian !== prevMeridian ) {\n\n // When clearing time\n if( ! hours && ! minutes ) {\n return;\n }\n\n // Default minutes when hours selected\n if( hours && ! minutes ) {\n this.setState( {\n minutes: '00'\n } );\n }\n\n // Default hours when minutes selected\n if( minutes && ! hours ) {\n this.setState( {\n hours: '01'\n } );\n }\n\n /* Convert 12-hours to 24-hours.\n * e.g. 12:00 AM becomes 00:00:00\n * 12:00 PM becomes 12:00:00\n * 01:00 PM becomes 13:00:00\n */\n const savedTime = `${this.appendZero(\n hourConvert.to24Hour( {\n hour: parseInt( hours ),\n meridiem: meridian\n } )\n )}:${minutes}:00`;\n\n // Value saved in source/attribute\n this.props.onChangeTime( savedTime );\n }\n }\n\n /**\n * Append zero to one digit numbers. e.g. 9 becomes '09'\n *\n * @since 3.1.2\n *\n * @param {string value Hours or minutes\n *\n * @return {string}\n */\n appendZero( value ) {\n if( isNaN( value ) ) {\n return;\n }\n\n const res = parseInt( value );\n\n return res > 9 ? res : `0${res}`;\n }\n\n render() {\n const { onChangeTime, currentTime, hours, minutes, meridian } = this.state;\n\n // Make sure hours are valid. 01: min, 12: max\n const handleChangeHours = event => {\n const value = Math.max( 1, Math.min( 12, Number( event.target.value ) ) );\n this.setState( {\n hours: this.appendZero( value )\n } );\n };\n\n // Allow to use up/down keys for hours\n const handleKeyDownHours = event => {\n const value = Number( event.target.value );\n if( event.key === 'ArrowUp' && value < 12 ) {\n this.setState( {\n hours: this.appendZero( value + 1 )\n } );\n } else if ( event.key === 'ArrowDown' && value > 1 ) {\n this.setState( {\n hours: this.appendZero( value - 1 )\n } );\n }\n };\n\n // Make sure minutes are valid. 01: min, 59: max\n const handleChangeMinutes = event => {\n const value = Math.max( 0, Math.min( 59, Number( event.target.value ) ) );\n this.setState( {\n minutes: this.appendZero( value )\n } );\n };\n\n // Allow to use up/down keys for minutes\n const handleKeyDownMinutes = event => {\n const value = Number( event.target.value );\n if( event.key === 'ArrowUp' && value < 59 ) {\n this.setState( {\n minutes: this.appendZero( value + 1 )\n } );\n } else if ( event.key === 'ArrowDown' && value > 0 ) {\n this.setState( {\n minutes: this.appendZero( value - 1 )\n } );\n }\n };\n\n return (\n <Fragment>\n <div className=\"advgb-advtime-control\">\n <label>\n { this.props.label }\n </label>\n <div className=\"advgb-advtime-hours-minutes\">\n <input\n type=\"text\"\n value={\n hours\n ? this.appendZero(\n hourConvert.to12Hour( parseInt( hours ) ).hour\n ) : ''\n }\n onChange={ handleChangeHours }\n onKeyDown={ handleKeyDownHours }\n placeholder=\"--\"\n />\n <span>:</span>\n <input\n type=\"text\"\n value={\n minutes ? minutes : ''\n }\n onChange={ handleChangeMinutes }\n onKeyDown={ handleKeyDownMinutes }\n placeholder=\"--\"\n />\n </div>\n <ButtonGroup className=\"advgb-advtime-meridian\">\n <Button\n variant={\n meridian === null || meridian === 'am' ? 'primary' : 'secondary'\n }\n onClick={ () => {\n this.setState( {\n meridian: 'am'\n } );\n } }\n disabled={ hours && minutes ? false : true }\n >\n { __( 'AM', 'advanced-gutenberg' ) }\n </Button>\n <Button\n variant={\n meridian === 'pm' ? 'primary' : 'secondary'\n }\n onClick={ () => {\n this.setState( {\n meridian: 'pm'\n } );\n } }\n disabled={ hours && minutes ? false : true }\n >\n { __( 'PM', 'advanced-gutenberg' ) }\n </Button>\n </ButtonGroup>\n { hours && minutes &&\n \t\t\t\t<Button\n className=\"advgb-advtime-remove-icon\"\n \t\t\t\t\ticon=\"no-alt\"\n onClick={\n () => {\n this.props.onTimeClear();\n this.setState( {\n hours: null,\n minutes: null,\n meridian: 'am'\n } );\n }\n }\n \t\t\t\t/>\n \t\t\t}\n </div>\n </Fragment>\n )\n }\n}\nexport default AdvTimeClass;\n\nexport function AdvTimeControl(props) {\n const { label, currentTime, onChangeTime, onTimeClear } = props;\n\n return(\n <AdvTimeClass\n label={ label }\n currentTime={ currentTime }\n onChangeTime={ onChangeTime }\n onTimeClear={ onTimeClear }\n />\n );\n}\n\nexport function AdvTimezoneControl(props) {\n const { label, defaultTimezone } = props;\n\n return (\n <Fragment>\n { applyFilters( 'advgb.timezoneControl',\n <Fragment>\n <div style={{ marginTop: 10, marginBottom: 30 }}>\n <div style={{ marginBottom: 6 }}>\n { label }\n <span style={{ float: 'right', marginRight: 5 }}>\n <Icon icon=\"lock\" />\n <a href=\"https://publishpress.com/links/blocks\"\n class=\"advgb-pro-ad-btn\"\n target=\"_blank\">\n { __( 'Upgrade to Pro', 'advanced-gutenberg' ) }\n </a>\n </span>\n </div>\n <SelectControl\n value={ defaultTimezone }\n options={ [ {\n label: defaultTimezone,\n value: defaultTimezone\n }\n ] }\n disabled={ true }\n />\n </div>\n </Fragment>,\n props\n ) }\n </Fragment>\n )\n}\n","'use strict';\n\nmodule.exports = {\n\n /**\n * Convert 24-hour time to 12-hour format.\n *\n * @param {number} hour Hour to convert (0-23)\n * @return {object} { hour, meridiem } (meridian is also returned for backwards compatibility)\n */\n to12Hour: function to12Hour(hour) {\n var meridiem = hour < 12 ? 'am' : 'pm';\n return {\n hour: ((hour + 11) % 12 + 1),\n meridiem: meridiem,\n meridian: meridiem\n };\n },\n\n /**\n * Convert 12-hour time to 24-hour format.\n *\n * @param {object} time Time object\n * @param {number} time.hour Hour to convert (1-12)\n * @param {string} time.meridiem Hour meridiem (am/pm). 'time.meridian' is\n * supported for backwards compatibility.\n * @return {number}\n */\n to24Hour: function to24Hour(time) {\n var meridiem = time.meridiem || time.meridian;\n return (meridiem === 'am' ? 0 : 12) + (time.hour % 12);\n }\n};\n","/**\n * Generate option title suggestions\n *\n * @since 3.1.1\n * @param options Available options as objects with slug and title. e.g. [{slug: 'subscriber', title: 'Subscriber'}, {slug: 'new_customer', title: 'New Customer'}]\n *\n * @return {array} Option slugs. e.g. ['subscriber','new_customer']\n */\nexport const getOptionSuggestions = function( options ) {\n return options.map( ( item ) => item.title );\n}\n\n/**\n * Match option slugs with its option titles\n * to display as field value (but NOT saved!).\n *\n * @since 3.1.1\n * @param slugs Option slugs. e.g. ['subscriber','new_customer'] or [82, 92]\n * @param options Available options as objects with slug and title. e.g. [{slug: 'subscriber', title: 'Subscriber'}, {slug: 'new_customer', title: 'New Customer'}]\n *\n * @return {array} Option titles. e.g. ['Subscriber','New Customer']\n */\nexport const getOptionTitles = function( slugs, options ) {\n let field_value = [];\n\n if ( options !== null ) {\n field_value = slugs.map( ( option_slug ) => {\n let find_option = options.find( ( item ) => {\n return item.slug === option_slug;\n } );\n if ( find_option === undefined || ! find_option ) {\n return option_slug; // It should return false but creates empty selections\n }\n return find_option.title;\n } );\n }\n\n return field_value;\n}\n\n/**\n * Match option titles with its slugs, and save slugs\n *\n * @since 3.1.1\n * @param slugs Option slugs. e.g. ['subscriber','new_customer']\n * @param options Available options as objects with slug and title. e.g. [{slug: 'subscriber', title: 'Subscriber'}, {slug: 'new_customer', title: 'New Customer'}]\n *\n * @return {array} Option slugs. e.g. ['subscriber','new_customer']\n */\nexport const getOptionSlugs = function( slugs, options ) {\n let slugs_array = [];\n\n slugs.map(\n ( option_title ) => {\n const matching_slug = options.find( ( item ) => {\n return item.title === option_title;\n } );\n if ( matching_slug !== undefined ) {\n slugs_array.push( matching_slug.slug );\n }\n }\n )\n\n return slugs_array;\n}\n","(function ( wpI18n, wpBlocks, wpElement, wpBlockEditor, wpComponents ) {\n wpBlockEditor = wp.blockEditor || wp.editor;\n const { __ } = wpI18n;\n const { Component, Fragment } = wpElement;\n const { registerBlockType, createBlock } = wpBlocks;\n const { InspectorControls, RichText, PanelColorSettings, InnerBlocks } = wpBlockEditor;\n const { RangeControl, PanelBody, BaseControl , SelectControl, ToggleControl } = wpComponents;\n\n\n const HEADER_ICONS = {\n plus: (\n <Fragment>\n <path fill=\"none\" d=\"M0,0h24v24H0V0z\"/>\n <path d=\"M19,13h-6v6h-2v-6H5v-2h6V5h2v6h6V13z\"/>\n </Fragment>\n ),\n plusCircle: (\n <Fragment>\n <path fill=\"none\" d=\"M0,0h24v24H0V0z\"/>\n <path d=\"M12,2C6.48,2,2,6.48,2,12s4.48,10,10,10s10-4.48,10-10S17.52,2,12,2z M17,13h-4v4h-2v-4H7v-2h4V7h2v4h4V13z\"/>\n </Fragment>\n ),\n plusCircleOutline: (\n <Fragment>\n <path fill=\"none\" d=\"M0,0h24v24H0V0z\"/>\n <path d=\"M13,7h-2v4H7v2h4v4h2v-4h4v-2h-4V7z M12,2C6.48,2,2,6.48,2,12s4.48,10,10,10s10-4.48,10-10S17.52,2,12,2z M12,20 c-4.41,0-8-3.59-8-8s3.59-8,8-8s8,3.59,8,8S16.41,20,12,20z\"/>\n </Fragment>\n ),\n plusBox: (\n <Fragment>\n <path fill=\"none\" d=\"M0,0h24v24H0V0z\"/>\n <path d=\"M19,3H5C3.89,3,3,3.9,3,5v14c0,1.1,0.89,2,2,2h14c1.1,0,2-0.9,2-2V5C21,3.9,20.1,3,19,3z M19,19H5V5h14V19z\"/>\n <polygon points=\"11,17 13,17 13,13 17,13 17,11 13,11 13,7 11,7 11,11 7,11 7,13 11,13\"/>\n </Fragment>\n ),\n unfold: (\n <Fragment>\n <path fill=\"none\" d=\"M0,0h24v24H0V0z\"/>\n <path d=\"M12,5.83L15.17,9l1.41-1.41L12,3L7.41,7.59L8.83,9L12,5.83z M12,18.17L8.83,15l-1.41,1.41L12,21l4.59-4.59L15.17,15 L12,18.17z\"/>\n </Fragment>\n ),\n threeDots: (\n <Fragment>\n <path fill=\"none\" d=\"M0,0h24v24H0V0z\"/>\n <path d=\"M6,10c-1.1,0-2,0.9-2,2s0.9,2,2,2s2-0.9,2-2S7.1,10,6,10z M18,10c-1.1,0-2,0.9-2,2s0.9,2,2,2s2-0.9,2-2S19.1,10,18,10z M12,10c-1.1,0-2,0.9-2,2s0.9,2,2,2s2-0.9,2-2S13.1,10,12,10z\"/>\n </Fragment>\n ),\n arrowDown: (\n <Fragment>\n <path opacity=\"0.87\" fill=\"none\" d=\"M24,24H0L0,0l24,0V24z\"/>\n <path d=\"M16.59,8.59L12,13.17L7.41,8.59L6,10l6,6l6-6L16.59,8.59z\"/>\n </Fragment>\n )\n };\n\n class AdvAccordion extends Component {\n constructor() {\n super( ...arguments );\n this.state = {\n currentAccordion: null,\n }\n }\n\n componentWillMount() {\n const { attributes, setAttributes } = this.props;\n const currentBlockConfig = advgbDefaultConfig['advgb-accordion'];\n\n // No override attributes of blocks inserted before\n if (attributes.changed !== true) {\n if (typeof currentBlockConfig === 'object' && currentBlockConfig !== null) {\n Object.keys(currentBlockConfig).map((attribute) => {\n if (typeof attributes[attribute] === 'boolean') {\n attributes[attribute] = !!currentBlockConfig[attribute];\n } else {\n attributes[attribute] = currentBlockConfig[attribute];\n }\n });\n }\n\n // Finally set changed attribute to true, so we don't modify anything again\n setAttributes( { changed: true } );\n }\n }\n\n render() {\n const { attributes, setAttributes } = this.props;\n const {\n header,\n headerBgColor,\n headerTextColor,\n headerIcon,\n headerIconColor,\n bodyBgColor,\n bodyTextColor,\n borderStyle,\n borderWidth,\n borderColor,\n borderRadius,\n marginBottom,\n collapsedAll,\n } = attributes;\n\n return (\n <Fragment>\n <InspectorControls>\n <PanelBody title={ __( 'Notice', 'advanced-gutenberg' ) }>\n <p style={ { color: '#ff0000', fontStyle: 'italic' } }>\n { __( `This accordion block has been replaced by a new and better one.\n This block will be removed in a future version.\n Please transform this to an Accordion Item block\n and drag them into new Adv. Accordion block as soon as possible.`, 'advanced-gutenberg' ) }\n </p>\n </PanelBody>\n <PanelBody title={ __( 'Accordion Settings', 'advanced-gutenberg' ) }>\n <RangeControl\n label={ __( 'Bottom spacing', 'advanced-gutenberg' ) }\n value={ marginBottom }\n help={ __( 'Define space to next block. This will override Block spacing option (Frontend view only)', 'advanced-gutenberg' ) }\n min={ 0 }\n max={ 50 }\n onChange={ ( value ) => setAttributes( { marginBottom: value } ) }\n />\n </PanelBody>\n <PanelBody title={ __( 'Header Settings', 'advanced-gutenberg' ) }>\n <BaseControl label={ __( 'Header Icon Style', 'advanced-gutenberg' ) }>\n <div className=\"advgb-icon-items-wrapper\">\n {Object.keys( HEADER_ICONS ).map( ( key, index ) => (\n <div className=\"advgb-icon-item\" key={ index }>\n <span className={ key === headerIcon ? 'active' : '' }\n onClick={ () => setAttributes( { headerIcon: key } ) }>\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\">\n { HEADER_ICONS[key] }\n </svg>\n </span>\n </div>\n ) ) }\n </div>\n </BaseControl>\n <PanelColorSettings\n title={ __( 'Color Settings', 'advanced-gutenberg' ) }\n initialOpen={ false }\n colorSettings={ [\n {\n label: __( 'Background Color', 'advanced-gutenberg' ),\n value: headerBgColor,\n onChange: ( value ) => setAttributes( { headerBgColor: value === undefined ? '#000' : value } ),\n },\n {\n label: __( 'Text Color', 'advanced-gutenberg' ),\n value: headerTextColor,\n onChange: ( value ) => setAttributes( { headerTextColor: value === undefined ? '#eee' : value } ),\n },\n {\n label: __( 'Icon Color', 'advanced-gutenberg' ),\n value: headerIconColor,\n onChange: ( value ) => setAttributes( { headerIconColor: value === undefined ? '#fff' : value } ),\n },\n ] }\n />\n </PanelBody>\n <PanelColorSettings\n title={ __( 'Body Color Settings', 'advanced-gutenberg' ) }\n initialOpen={ false }\n colorSettings={ [\n {\n label: __( 'Background Color', 'advanced-gutenberg' ),\n value: bodyBgColor,\n onChange: ( value ) => setAttributes( { bodyBgColor: value } ),\n },\n {\n label: __( 'Text Color', 'advanced-gutenberg' ),\n value: bodyTextColor,\n onChange: ( value ) => setAttributes( { bodyTextColor: value } ),\n },\n ] }\n />\n <PanelBody title={ __( 'Border Settings', 'advanced-gutenberg' ) } initialOpen={ false }>\n <SelectControl\n label={ __( 'Border Style', 'advanced-gutenberg' ) }\n value={ borderStyle }\n options={ [\n { label: __( 'Solid', 'advanced-gutenberg' ), value: 'solid' },\n { label: __( 'Dashed', 'advanced-gutenberg' ), value: 'dashed' },\n { label: __( 'Dotted', 'advanced-gutenberg' ), value: 'dotted' },\n ] }\n onChange={ ( value ) => setAttributes( { borderStyle: value } ) }\n />\n <PanelColorSettings\n title={ __( 'Color Settings', 'advanced-gutenberg' ) }\n initialOpen={ false }\n colorSettings={ [\n {\n label: __( 'Border Color', 'advanced-gutenberg' ),\n value: borderColor,\n onChange: ( value ) => setAttributes( { borderColor: value } ),\n },\n ] }\n />\n <RangeControl\n label={ __( 'Border width', 'advanced-gutenberg' ) }\n value={ borderWidth }\n min={ 0 }\n max={ 10 }\n onChange={ ( value ) => setAttributes( { borderWidth: value } ) }\n />\n <RangeControl\n label={ __( 'Border radius', 'advanced-gutenberg' ) }\n value={ borderRadius }\n min={ 0 }\n max={ 100 }\n onChange={ ( value ) => setAttributes( { borderRadius: value } ) }\n />\n </PanelBody>\n <PanelBody title={ __( 'Accordions State', 'advanced-gutenberg' ) } initialOpen={ false }>\n <ToggleControl\n label={ __( 'Initial Collapsed', 'advanced-gutenberg' ) }\n help={ __( 'Make all accordions collapsed by default, enable this setting to apply to all accordions.', 'advanced-gutenberg' ) }\n checked={ collapsedAll }\n onChange={ () => setAttributes( { collapsedAll: !collapsedAll } ) }\n />\n </PanelBody>\n </InspectorControls>\n <div className=\"advgb-accordion-block\">\n <div className=\"advgb-accordion-header\"\n style={ {\n backgroundColor: headerBgColor,\n color: headerTextColor,\n borderStyle: borderStyle,\n borderWidth: borderWidth + 'px',\n borderColor: borderColor,\n borderRadius: borderRadius + 'px',\n } }\n >\n <span className=\"advgb-accordion-header-icon\">\n <svg fill={ headerIconColor } xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\">\n { HEADER_ICONS[headerIcon] }\n </svg>\n </span>\n <RichText\n tagName=\"h4\"\n value={ header }\n onChange={ ( value ) => setAttributes( { header: value } ) }\n unstableOnSplit={ () => null }\n className=\"advgb-accordion-header-title\"\n placeholder={ __( 'Enter header…', 'advanced-gutenberg' ) }\n />\n </div>\n <div className=\"advgb-accordion-body\"\n style={ {\n backgroundColor: bodyBgColor,\n color: bodyTextColor,\n borderStyle: borderStyle,\n borderWidth: borderWidth + 'px',\n borderColor: borderColor,\n borderRadius: borderRadius + 'px',\n } }\n >\n <InnerBlocks />\n </div>\n </div>\n </Fragment>\n )\n }\n }\n\n const accordionBlockIcon = (\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"20\" height=\"20\" viewBox=\"2 2 22 22\">\n <path fill=\"none\" d=\"M0,0h24v24H0V0z\"/>\n <rect x=\"3\" y=\"17\" width=\"18\" height=\"2\"/>\n <path d=\"M19,12v1H5v-1H19 M21,10H3v5h18V10L21,10z\"/>\n <rect x=\"3\" y=\"6\" width=\"18\" height=\"2\"/>\n </svg>\n );\n\n const accordionAttrs = {\n header: {\n type: 'string',\n default: 'Header text',\n },\n headerBgColor: {\n type: 'string',\n default: '#000',\n },\n headerTextColor: {\n type: 'string',\n default: '#eee',\n },\n headerIcon: {\n type: 'string',\n default: 'unfold',\n },\n headerIconColor: {\n type: 'string',\n default: '#fff',\n },\n bodyBgColor: {\n type: 'string',\n },\n bodyTextColor: {\n type: 'string',\n },\n borderStyle: {\n type: 'string',\n default: 'solid',\n },\n borderWidth: {\n type: 'number',\n default: 1,\n },\n borderColor: {\n type: 'string',\n },\n borderRadius: {\n type: 'number',\n default: 2,\n },\n marginBottom: {\n type: 'number',\n default: 15,\n },\n collapsedAll: {\n type: 'boolean',\n default: false,\n },\n changed: {\n type: 'boolean',\n default: false,\n },\n };\n\n registerBlockType( 'advgb/accordion', {\n title: __( 'Accordion (deprecated) - PublishPress', 'advanced-gutenberg' ),\n description: __( 'Create a sliding accordion display for your content.', 'advanced-gutenberg' ),\n icon: {\n src: accordionBlockIcon,\n foreground: typeof advgbBlocks !== 'undefined' ? advgbBlocks.color : undefined,\n },\n category: 'advgb-category',\n keywords: [ __( 'accordion', 'advanced-gutenberg' ), __( 'list', 'advanced-gutenberg' ), __( 'faq', 'advanced-gutenberg' ) ],\n attributes: accordionAttrs,\n supports: {\n inserter: false,\n },\n edit: AdvAccordion,\n save: function ( { attributes } ) {\n const {\n header,\n headerBgColor,\n headerTextColor,\n headerIcon,\n headerIconColor,\n bodyBgColor,\n bodyTextColor,\n borderStyle,\n borderWidth,\n borderColor,\n borderRadius,\n marginBottom,\n collapsedAll,\n } = attributes;\n\n return (\n <div className=\"advgb-accordion-block\" style={ { marginBottom } } data-collapsed={ collapsedAll ? collapsedAll : undefined }>\n <div className=\"advgb-accordion-header\"\n style={ {\n backgroundColor: headerBgColor,\n color: headerTextColor,\n borderStyle: borderStyle,\n borderWidth: borderWidth + 'px',\n borderColor: borderColor,\n borderRadius: borderRadius + 'px',\n } }\n >\n <span className=\"advgb-accordion-header-icon\">\n <svg fill={ headerIconColor } xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\">\n { HEADER_ICONS[headerIcon] }\n </svg>\n </span>\n <h4 className=\"advgb-accordion-header-title\">{ header }</h4>\n </div>\n <div className=\"advgb-accordion-body\"\n style={ {\n backgroundColor: bodyBgColor,\n color: bodyTextColor,\n borderStyle: borderStyle,\n borderWidth: borderWidth + 'px',\n borderColor: borderColor,\n borderRadius: borderRadius + 'px',\n } }\n >\n <InnerBlocks.Content />\n </div>\n </div>\n );\n },\n deprecated: [\n {\n attributes: {\n ...accordionAttrs,\n borderWidth: {\n type: 'number',\n default: 0,\n },\n },\n save: function ( { attributes } ) {\n const {\n header,\n headerBgColor,\n headerTextColor,\n headerIcon,\n headerIconColor,\n bodyBgColor,\n bodyTextColor,\n borderStyle,\n borderWidth,\n borderColor,\n borderRadius,\n marginBottom,\n collapsedAll,\n } = attributes;\n\n return (\n <div className=\"advgb-accordion-block\" style={ { marginBottom } } data-collapsed={ collapsedAll ? collapsedAll : undefined }>\n <div className=\"advgb-accordion-header\"\n style={ {\n backgroundColor: headerBgColor,\n color: headerTextColor,\n borderStyle: borderStyle,\n borderWidth: borderWidth + 'px',\n borderColor: borderColor,\n borderRadius: borderRadius + 'px',\n } }\n >\n <span className=\"advgb-accordion-header-icon\">\n <svg fill={ headerIconColor } xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\">\n { HEADER_ICONS[headerIcon] }\n </svg>\n </span>\n <h4 className=\"advgb-accordion-header-title\">{ header }</h4>\n </div>\n <div className=\"advgb-accordion-body\"\n style={ {\n backgroundColor: bodyBgColor,\n color: bodyTextColor,\n borderStyle: borderStyle,\n borderWidth: borderWidth + 'px',\n borderColor: borderColor,\n borderRadius: borderRadius + 'px',\n } }\n >\n <InnerBlocks.Content />\n </div>\n </div>\n );\n },\n supports: {\n inserter: false,\n },\n }\n ],\n transforms: {\n to: [\n {\n type: 'block',\n blocks: [ 'advgb/accordions' ],\n transform: ( attributes, innerBlocks ) => {\n const accordion = createBlock(\n 'advgb/accordion-item',\n { ...attributes, changed: false },\n innerBlocks,\n );\n\n return createBlock(\n 'advgb/accordions',\n { ...attributes, header: undefined, needUpdate: false },\n [ accordion ],\n )\n }\n }\n ]\n },\n } );\n})( wp.i18n, wp.blocks, wp.element, wp.blockEditor, wp.components );\n","\n(function ( wpI18n, wpBlocks, wpElement, wpBlockEditor, wpComponents, wpCompose, lodash ) {\n wpBlockEditor = wp.blockEditor || wp.editor;\n const { __ } = wpI18n;\n const { Fragment, Component } = wpElement;\n const { registerBlockType } = wpBlocks;\n const { RichText, InnerBlocks, InspectorControls, PanelColorSettings } = wpBlockEditor;\n const { RangeControl, PanelBody, BaseControl , SelectControl, ToggleControl } = wpComponents;\n const { withDispatch, select } = wp.data;\n const { compose } = wpCompose;\n const { times } = lodash;\n\n const HEADER_ICONS = {\n plus: (\n <Fragment>\n <path fill=\"none\" d=\"M0,0h24v24H0V0z\"/>\n <path d=\"M19,13h-6v6h-2v-6H5v-2h6V5h2v6h6V13z\"/>\n </Fragment>\n ),\n plusCircle: (\n <Fragment>\n <path fill=\"none\" d=\"M0,0h24v24H0V0z\"/>\n <path d=\"M12,2C6.48,2,2,6.48,2,12s4.48,10,10,10s10-4.48,10-10S17.52,2,12,2z M17,13h-4v4h-2v-4H7v-2h4V7h2v4h4V13z\"/>\n </Fragment>\n ),\n plusCircleOutline: (\n <Fragment>\n <path fill=\"none\" d=\"M0,0h24v24H0V0z\"/>\n <path d=\"M13,7h-2v4H7v2h4v4h2v-4h4v-2h-4V7z M12,2C6.48,2,2,6.48,2,12s4.48,10,10,10s10-4.48,10-10S17.52,2,12,2z M12,20 c-4.41,0-8-3.59-8-8s3.59-8,8-8s8,3.59,8,8S16.41,20,12,20z\"/>\n </Fragment>\n ),\n plusBox: (\n <Fragment>\n <path fill=\"none\" d=\"M0,0h24v24H0V0z\"/>\n <path d=\"M19,3H5C3.89,3,3,3.9,3,5v14c0,1.1,0.89,2,2,2h14c1.1,0,2-0.9,2-2V5C21,3.9,20.1,3,19,3z M19,19H5V5h14V19z\"/>\n <polygon points=\"11,17 13,17 13,13 17,13 17,11 13,11 13,7 11,7 11,11 7,11 7,13 11,13\"/>\n </Fragment>\n ),\n unfold: (\n <Fragment>\n <path fill=\"none\" d=\"M0,0h24v24H0V0z\"/>\n <path d=\"M12,5.83L15.17,9l1.41-1.41L12,3L7.41,7.59L8.83,9L12,5.83z M12,18.17L8.83,15l-1.41,1.41L12,21l4.59-4.59L15.17,15 L12,18.17z\"/>\n </Fragment>\n ),\n threeDots: (\n <Fragment>\n <path fill=\"none\" d=\"M0,0h24v24H0V0z\"/>\n <path d=\"M6,10c-1.1,0-2,0.9-2,2s0.9,2,2,2s2-0.9,2-2S7.1,10,6,10z M18,10c-1.1,0-2,0.9-2,2s0.9,2,2,2s2-0.9,2-2S19.1,10,18,10z M12,10c-1.1,0-2,0.9-2,2s0.9,2,2,2s2-0.9,2-2S13.1,10,12,10z\"/>\n </Fragment>\n ),\n arrowDown: (\n <Fragment>\n <path opacity=\"0.87\" fill=\"none\" d=\"M24,24H0L0,0l24,0V24z\"/>\n <path d=\"M16.59,8.59L12,13.17L7.41,8.59L6,10l6,6l6-6L16.59,8.59z\"/>\n </Fragment>\n )\n };\n\n class AccordionItemEdit extends Component {\n constructor() {\n super( ...arguments );\n }\n\n componentWillMount() {\n const { attributes, setAttributes, clientId } = this.props;\n\n // Apply parent style if newly inserted\n if (attributes.changed !== true) {\n const { getBlockRootClientId, getBlockAttributes } = !wp.blockEditor ? select( 'core/editor' ) : select( 'core/block-editor' );\n const rootBlockId = getBlockRootClientId( clientId );\n const rootBlockAttrs = getBlockAttributes( rootBlockId );\n\n if (rootBlockAttrs !== null && rootBlockAttrs.needUpdate !== false) {\n Object.keys(rootBlockAttrs).map((attribute) => {\n attributes[attribute] = rootBlockAttrs[attribute];\n });\n\n // Done applied, we will not do this again\n setAttributes( { changed: true } );\n }\n }\n }\n\n render() {\n const { attributes, setAttributes } = this.props;\n const {\n header,\n headerBgColor,\n headerTextColor,\n headerIcon,\n headerIconColor,\n bodyBgColor,\n bodyTextColor,\n borderStyle,\n borderWidth,\n borderColor,\n borderRadius,\n marginBottom,\n collapsedAll,\n headerTag,\n } = attributes;\n\n const htmlTags = [\n { label: 'h1', value: 'h1' },\n { label: 'h2', value: 'h2' },\n { label: 'h3', value: 'h3' },\n { label: 'h4', value: 'h4' },\n { label: 'h5', value: 'h5' },\n { label: 'h6', value: 'h6' },\n ];\n\n return (\n <Fragment>\n <InspectorControls>\n <PanelBody title={ __( 'Accordion Settings', 'advanced-gutenberg' ) }>\n <RangeControl\n label={ __( 'Bottom spacing', 'advanced-gutenberg' ) }\n value={ marginBottom }\n help={ __( 'Define space between each accordion (Frontend view only)', 'advanced-gutenberg' ) }\n min={ 0 }\n max={ 50 }\n onChange={ ( value ) => this.props.updateRootBlockAttrs( { marginBottom: value } ) }\n />\n <ToggleControl\n label={ __( 'Initial Collapsed', 'advanced-gutenberg' ) }\n help={ __( 'Make all accordions collapsed by default.', 'advanced-gutenberg' ) }\n checked={ collapsedAll }\n onChange={ () => this.props.updateRootBlockAttrs({ collapsedAll: !collapsedAll })}\n />\n <SelectControl\n label={ __( 'Header Tag', 'advanced-gutenberg' ) }\n value={ headerTag }\n options={ htmlTags }\n onChange={ ( value ) => setAttributes( { headerTag: value } ) }\n />\n </PanelBody>\n <PanelBody title={ __( 'Header Settings', 'advanced-gutenberg' ) }>\n <BaseControl label={ __( 'Header Icon Style', 'advanced-gutenberg' ) }>\n <div className=\"advgb-icon-items-wrapper\">\n {Object.keys( HEADER_ICONS ).map( ( key, index ) => (\n <div className=\"advgb-icon-item\" key={ index }>\n <span className={ key === headerIcon ? 'active' : '' }\n onClick={ () => this.props.updateRootBlockAttrs( { headerIcon: key } ) }>\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\">\n { HEADER_ICONS[key] }\n </svg>\n </span>\n </div>\n ) ) }\n </div>\n </BaseControl>\n <PanelColorSettings\n title={ __( 'Color Settings', 'advanced-gutenberg' ) }\n initialOpen={ false }\n colorSettings={ [\n {\n label: __( 'Background Color', 'advanced-gutenberg' ),\n value: headerBgColor,\n onChange: ( value ) => this.props.updateRootBlockAttrs( { headerBgColor: value === undefined ? '#000' : value } ),\n },\n {\n label: __( 'Text Color', 'advanced-gutenberg' ),\n value: headerTextColor,\n onChange: ( value ) => this.props.updateRootBlockAttrs( { headerTextColor: value === undefined ? '#eee' : value } ),\n },\n {\n label: __( 'Icon Color', 'advanced-gutenberg' ),\n value: headerIconColor,\n onChange: ( value ) => this.props.updateRootBlockAttrs( { headerIconColor: value === undefined ? '#fff' : value } ),\n },\n ] }\n />\n </PanelBody>\n <PanelColorSettings\n title={ __( 'Body Color Settings', 'advanced-gutenberg' ) }\n initialOpen={ false }\n colorSettings={ [\n {\n label: __( 'Background Color', 'advanced-gutenberg' ),\n value: bodyBgColor,\n onChange: ( value ) => this.props.updateRootBlockAttrs( { bodyBgColor: value } ),\n },\n {\n label: __( 'Text Color', 'advanced-gutenberg' ),\n value: bodyTextColor,\n onChange: ( value ) => this.props.updateRootBlockAttrs( { bodyTextColor: value } ),\n },\n ] }\n />\n <PanelBody title={ __( 'Border Settings', 'advanced-gutenberg' ) } initialOpen={ false }>\n <SelectControl\n label={ __( 'Border Style', 'advanced-gutenberg' ) }\n value={ borderStyle }\n options={ [\n { label: __( 'Solid', 'advanced-gutenberg' ), value: 'solid' },\n { label: __( 'Dashed', 'advanced-gutenberg' ), value: 'dashed' },\n { label: __( 'Dotted', 'advanced-gutenberg' ), value: 'dotted' },\n ] }\n onChange={ ( value ) => this.props.updateRootBlockAttrs( { borderStyle: value } ) }\n />\n <PanelColorSettings\n title={ __( 'Color Settings', 'advanced-gutenberg' ) }\n initialOpen={ false }\n colorSettings={ [\n {\n label: __( 'Border Color', 'advanced-gutenberg' ),\n value: borderColor,\n onChange: ( value ) => this.props.updateRootBlockAttrs( { borderColor: value } ),\n },\n ] }\n />\n <RangeControl\n label={ __( 'Border width', 'advanced-gutenberg' ) }\n value={ borderWidth }\n min={ 0 }\n max={ 10 }\n onChange={ ( value ) => this.props.updateRootBlockAttrs( { borderWidth: value } ) }\n />\n <RangeControl\n label={ __( 'Border radius', 'advanced-gutenberg' ) }\n value={ borderRadius }\n min={ 0 }\n max={ 100 }\n onChange={ ( value ) => this.props.updateRootBlockAttrs( { borderRadius: value } ) }\n />\n </PanelBody>\n </InspectorControls>\n <div className=\"advgb-accordion-item\">\n <div className=\"advgb-accordion-header\"\n style={ {\n backgroundColor: headerBgColor,\n color: headerTextColor,\n borderStyle: borderStyle,\n borderWidth: borderWidth + 'px',\n borderColor: borderColor,\n borderRadius: borderRadius + 'px',\n } }\n >\n <span className=\"advgb-accordion-header-icon\">\n <svg fill={ headerIconColor } xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\">\n { HEADER_ICONS[headerIcon] }\n </svg>\n </span>\n <RichText\n tagName={ headerTag }\n value={ header }\n onChange={ ( value ) => setAttributes( { header: value } ) }\n unstableOnSplit={ () => null }\n className=\"advgb-accordion-header-title\"\n placeholder={ __( 'Enter header…', 'advanced-gutenberg' ) }\n style={ { color: 'inherit' } }\n allowedFormats={ [ 'core/bold', 'core/italic', 'core/image', 'core/strikethrough', 'core/text-color' ] }\n />\n </div>\n <div className=\"advgb-accordion-body\"\n style={ {\n backgroundColor: bodyBgColor,\n color: bodyTextColor,\n borderStyle: borderStyle,\n borderWidth: borderWidth + 'px',\n borderColor: borderColor,\n borderRadius: borderRadius + 'px',\n } }\n >\n <InnerBlocks />\n </div>\n </div>\n </Fragment>\n )\n }\n }\n\n const accordionBlockIcon = (\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"20\" height=\"20\" viewBox=\"2 2 22 22\">\n <path fill=\"none\" d=\"M0,0h24v24H0V0z\"/>\n <rect x=\"3\" y=\"17\" width=\"18\" height=\"2\"/>\n <path d=\"M19,12v1H5v-1H19 M21,10H3v5h18V10L21,10z\"/>\n <rect x=\"3\" y=\"6\" width=\"18\" height=\"2\"/>\n </svg>\n );\n\n registerBlockType( 'advgb/accordion-item', {\n title: __( 'Accordion Item - PublishPress', 'advanced-gutenberg' ),\n description: __( 'Create a sliding accordion display for your content.', 'advanced-gutenberg' ),\n icon: {\n src: accordionBlockIcon,\n foreground: typeof advgbBlocks !== 'undefined' ? advgbBlocks.color : undefined,\n },\n parent: [ 'advgb/accordions' ],\n category: 'advgb-category',\n keywords: [ __( 'accordion', 'advanced-gutenberg' ), __( 'list', 'advanced-gutenberg' ), __( 'faq', 'advanced-gutenberg' ) ],\n attributes: {\n header: {\n type: 'string',\n default: __( 'Header text', 'advanced-gutenberg' ),\n },\n headerBgColor: {\n type: 'string',\n default: '#000',\n },\n headerTextColor: {\n type: 'string',\n default: '#eee',\n },\n headerIcon: {\n type: 'string',\n default: 'unfold',\n },\n headerIconColor: {\n type: 'string',\n default: '#fff',\n },\n bodyBgColor: {\n type: 'string',\n },\n bodyTextColor: {\n type: 'string',\n },\n borderStyle: {\n type: 'string',\n default: 'solid',\n },\n borderWidth: {\n type: 'number',\n default: 1,\n },\n borderColor: {\n type: 'string',\n },\n borderRadius: {\n type: 'number',\n default: 2,\n },\n marginBottom: {\n type: 'number',\n default: 15,\n },\n collapsedAll: {\n type: 'boolean',\n default: false,\n },\n headerTag: {\n type: 'string',\n default: 'h4',\n },\n changed: {\n type: 'boolean',\n default: false,\n },\n rootBlockId: {\n type: 'string',\n default: ''\n }\n },\n supports: {\n anchor: true,\n },\n edit: compose([\n withDispatch( ( dispatch, { clientId }, { select } ) => {\n const {\n getBlockRootClientId,\n getBlocksByClientId\n } = select( 'core/block-editor' );\n const {\n updateBlockAttributes,\n } = dispatch( 'core/block-editor' );\n const rootID = getBlockRootClientId( clientId );\n const accordionBlock = getBlocksByClientId( rootID );\n return {\n updateRootBlockAttrs( attrs ) {\n updateBlockAttributes( rootID, attrs);\n times( accordionBlock[0].innerBlocks.length, n => {\n updateBlockAttributes( accordionBlock[0].innerBlocks[ n ].clientId, attrs);\n } );\n },\n\n };\n } ),\n ]\n )(AccordionItemEdit),\n save: function ( { attributes } ) {\n const {\n header,\n headerBgColor,\n headerTextColor,\n headerIcon,\n headerIconColor,\n bodyBgColor,\n bodyTextColor,\n borderStyle,\n borderWidth,\n borderColor,\n borderRadius,\n marginBottom,\n headerTag,\n } = attributes;\n\n return (\n <div className=\"advgb-accordion-item\" style={ { marginBottom } }>\n <div className=\"advgb-accordion-header\"\n style={ {\n backgroundColor: headerBgColor,\n color: headerTextColor,\n borderStyle: borderStyle,\n borderWidth: borderWidth + 'px',\n borderColor: borderColor,\n borderRadius: !!borderRadius ? borderRadius + 'px' : undefined,\n } }\n >\n <span className=\"advgb-accordion-header-icon\">\n <svg fill={ headerIconColor } xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\">\n { HEADER_ICONS[headerIcon] }\n </svg>\n </span>\n <RichText.Content\n tagName={ headerTag }\n className=\"advgb-accordion-header-title\"\n style={ { color: 'inherit' } }\n value={ header }\n />\n </div>\n <div className=\"advgb-accordion-body\"\n style={ {\n backgroundColor: bodyBgColor,\n color: bodyTextColor,\n borderStyle: borderStyle + ' !important',\n borderWidth: borderWidth + 'px !important',\n borderColor: borderColor + ' !important',\n borderTop: 'none !important',\n borderRadius: !!borderRadius ? borderRadius + 'px !important' : undefined,\n } }\n >\n <InnerBlocks.Content />\n </div>\n </div>\n );\n },\n deprecated: [\n {\n attributes: {\n header: {\n type: 'string',\n default: 'Header text',\n },\n headerBgColor: {\n type: 'string',\n default: '#000',\n },\n headerTextColor: {\n type: 'string',\n default: '#eee',\n },\n headerIcon: {\n type: 'string',\n default: 'unfold',\n },\n headerIconColor: {\n type: 'string',\n default: '#fff',\n },\n bodyBgColor: {\n type: 'string',\n },\n bodyTextColor: {\n type: 'string',\n },\n borderStyle: {\n type: 'string',\n default: 'solid',\n },\n borderWidth: {\n type: 'number',\n default: 0,\n },\n borderColor: {\n type: 'string',\n },\n borderRadius: {\n type: 'number',\n default: 2,\n },\n marginBottom: {\n type: 'number',\n default: 15,\n },\n collapsedAll: {\n type: 'boolean',\n default: false,\n },\n changed: {\n type: 'boolean',\n default: false,\n },\n rootBlockId: {\n type: 'string',\n default: ''\n }\n },\n save: function ( { attributes } ) {\n const {\n header,\n headerBgColor,\n headerTextColor,\n headerIcon,\n headerIconColor,\n bodyBgColor,\n bodyTextColor,\n borderStyle,\n borderWidth,\n borderColor,\n borderRadius,\n marginBottom,\n } = attributes;\n\n return (\n <div className=\"advgb-accordion-item\" style={ { marginBottom } }>\n <div className=\"advgb-accordion-header\"\n style={ {\n backgroundColor: headerBgColor,\n color: headerTextColor,\n borderStyle: borderStyle,\n borderWidth: !!borderWidth ? borderWidth + 'px' : undefined,\n borderColor: borderColor,\n borderRadius: !!borderRadius ? borderRadius + 'px' : undefined,\n } }\n >\n <span className=\"advgb-accordion-header-icon\">\n <svg fill={ headerIconColor } xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\">\n { HEADER_ICONS[headerIcon] }\n </svg>\n </span>\n <h4 className=\"advgb-accordion-header-title\" style={ { color: 'inherit' } }>{ header }</h4>\n </div>\n <div className=\"advgb-accordion-body\"\n style={ {\n backgroundColor: bodyBgColor,\n color: bodyTextColor,\n borderStyle: borderStyle + ' !important',\n borderWidth: !!borderWidth ? borderWidth + 'px !important' : undefined,\n borderColor: borderColor + ' !important',\n borderTop: 'none !important',\n borderRadius: !!borderRadius ? borderRadius + 'px !important' : undefined,\n } }\n >\n <InnerBlocks.Content />\n </div>\n </div>\n );\n },\n supports: {\n anchor: true,\n },\n },\n {\n attributes: {\n header: {\n type: 'string',\n default: 'Header text',\n },\n headerBgColor: {\n type: 'string',\n default: '#000',\n },\n headerTextColor: {\n type: 'string',\n default: '#eee',\n },\n headerIcon: {\n type: 'string',\n default: 'unfold',\n },\n headerIconColor: {\n type: 'string',\n default: '#fff',\n },\n bodyBgColor: {\n type: 'string',\n },\n bodyTextColor: {\n type: 'string',\n },\n borderStyle: {\n type: 'string',\n default: 'solid',\n },\n borderWidth: {\n type: 'number',\n default: 0,\n },\n borderColor: {\n type: 'string',\n },\n borderRadius: {\n type: 'number',\n default: 2,\n },\n marginBottom: {\n type: 'number',\n default: 15,\n },\n collapsedAll: {\n type: 'boolean',\n default: false,\n },\n changed: {\n type: 'boolean',\n default: false,\n },\n rootBlockId: {\n type: 'string',\n default: ''\n }\n },\n save: function ( { attributes } ) {\n const {\n header,\n headerBgColor,\n headerTextColor,\n headerIcon,\n headerIconColor,\n bodyBgColor,\n bodyTextColor,\n borderStyle,\n borderWidth,\n borderColor,\n borderRadius,\n marginBottom,\n } = attributes;\n\n return (\n <div className=\"advgb-accordion-item\" style={ { marginBottom } }>\n <div className=\"advgb-accordion-header\"\n style={ {\n backgroundColor: headerBgColor,\n color: headerTextColor,\n borderStyle: borderStyle,\n borderWidth: !!borderWidth ? borderWidth + 'px' : undefined,\n borderColor: borderColor,\n borderRadius: !!borderRadius ? borderRadius + 'px' : undefined,\n } }\n >\n <span className=\"advgb-accordion-header-icon\">\n <svg fill={ headerIconColor } xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\">\n { HEADER_ICONS[headerIcon] }\n </svg>\n </span>\n <h4 className=\"advgb-accordion-header-title\" style={ { color: 'inherit' } }>{ header }</h4>\n </div>\n <div className=\"advgb-accordion-body\"\n style={ {\n backgroundColor: bodyBgColor,\n color: bodyTextColor,\n borderStyle: borderStyle,\n borderWidth: !!borderWidth ? borderWidth + 'px' : undefined,\n borderColor: borderColor,\n borderRadius: !!borderRadius ? borderRadius + 'px' : undefined,\n } }\n >\n <InnerBlocks.Content />\n </div>\n </div>\n );\n },\n }\n ]\n } )\n})( wp.i18n, wp.blocks, wp.element, wp.blockEditor, wp.components, wp.compose, lodash );\n","(function ( wpI18n, wpBlocks, wpElement, wpBlockEditor, wpComponents, wpCompose, lodash ) {\n wpBlockEditor = wp.blockEditor || wp.editor;\n const { __ } = wpI18n;\n const { Component, Fragment } = wpElement;\n const { registerBlockType } = wpBlocks;\n const { InspectorControls, BlockControls, PanelColorSettings, InnerBlocks } = wpBlockEditor;\n const { RangeControl, PanelBody, BaseControl , SelectControl, ToggleControl, ToolbarGroup, ToolbarButton } = wpComponents;\n const { withDispatch, select, dispatch } = wp.data;\n const { compose } = wpCompose;\n const { times } = lodash;\n\n const HEADER_ICONS = {\n plus: (\n <Fragment>\n <path fill=\"none\" d=\"M0,0h24v24H0V0z\"/>\n <path d=\"M19,13h-6v6h-2v-6H5v-2h6V5h2v6h6V13z\"/>\n </Fragment>\n ),\n plusCircle: (\n <Fragment>\n <path fill=\"none\" d=\"M0,0h24v24H0V0z\"/>\n <path d=\"M12,2C6.48,2,2,6.48,2,12s4.48,10,10,10s10-4.48,10-10S17.52,2,12,2z M17,13h-4v4h-2v-4H7v-2h4V7h2v4h4V13z\"/>\n </Fragment>\n ),\n plusCircleOutline: (\n <Fragment>\n <path fill=\"none\" d=\"M0,0h24v24H0V0z\"/>\n <path d=\"M13,7h-2v4H7v2h4v4h2v-4h4v-2h-4V7z M12,2C6.48,2,2,6.48,2,12s4.48,10,10,10s10-4.48,10-10S17.52,2,12,2z M12,20 c-4.41,0-8-3.59-8-8s3.59-8,8-8s8,3.59,8,8S16.41,20,12,20z\"/>\n </Fragment>\n ),\n plusBox: (\n <Fragment>\n <path fill=\"none\" d=\"M0,0h24v24H0V0z\"/>\n <path d=\"M19,3H5C3.89,3,3,3.9,3,5v14c0,1.1,0.89,2,2,2h14c1.1,0,2-0.9,2-2V5C21,3.9,20.1,3,19,3z M19,19H5V5h14V19z\"/>\n <polygon points=\"11,17 13,17 13,13 17,13 17,11 13,11 13,7 11,7 11,11 7,11 7,13 11,13\"/>\n </Fragment>\n ),\n unfold: (\n <Fragment>\n <path fill=\"none\" d=\"M0,0h24v24H0V0z\"/>\n <path d=\"M12,5.83L15.17,9l1.41-1.41L12,3L7.41,7.59L8.83,9L12,5.83z M12,18.17L8.83,15l-1.41,1.41L12,21l4.59-4.59L15.17,15 L12,18.17z\"/>\n </Fragment>\n ),\n threeDots: (\n <Fragment>\n <path fill=\"none\" d=\"M0,0h24v24H0V0z\"/>\n <path d=\"M6,10c-1.1,0-2,0.9-2,2s0.9,2,2,2s2-0.9,2-2S7.1,10,6,10z M18,10c-1.1,0-2,0.9-2,2s0.9,2,2,2s2-0.9,2-2S19.1,10,18,10z M12,10c-1.1,0-2,0.9-2,2s0.9,2,2,2s2-0.9,2-2S13.1,10,12,10z\"/>\n </Fragment>\n ),\n arrowDown: (\n <Fragment>\n <path opacity=\"0.87\" fill=\"none\" d=\"M24,24H0L0,0l24,0V24z\"/>\n <path d=\"M16.59,8.59L12,13.17L7.41,8.59L6,10l6,6l6-6L16.59,8.59z\"/>\n </Fragment>\n )\n };\n\n const previewImageData = 'data:image/png;base64,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';\n\n class AccordionsEdit extends Component {\n constructor() {\n super( ...arguments );\n\n this.updateAccordionAttrs = this.updateAccordionAttrs.bind( this );\n }\n\n componentWillMount() {\n const { attributes, setAttributes } = this.props;\n const currentBlockConfig = advgbDefaultConfig['advgb-accordions'];\n\n // No override attributes of blocks inserted before\n if (attributes.changed !== true) {\n if (typeof currentBlockConfig === 'object' && currentBlockConfig !== null) {\n Object.keys(currentBlockConfig).map((attribute) => {\n if (typeof attributes[attribute] === 'boolean') {\n attributes[attribute] = !!currentBlockConfig[attribute];\n } else {\n attributes[attribute] = currentBlockConfig[attribute];\n }\n });\n }\n\n // Finally set changed attribute to true, so we don't modify anything again\n setAttributes( { changed: true } );\n }\n }\n\n componentDidMount() {\n const { setAttributes, clientId } = this.props;\n setAttributes({\n rootBlockId: clientId,\n id: 'advgb-accordions-' + clientId\n });\n this.props.updateAccordionAttributes( {rootBlockId: clientId} );\n }\n\n componentDidUpdate() {\n const { clientId } = this.props;\n const { removeBlock } = !wp.blockEditor ? dispatch( 'core/editor' ) : dispatch( 'core/block-editor' );\n const { getBlockOrder } = !wp.blockEditor ? select( 'core/editor' ) : select( 'core/block-editor' );\n const childBlocks = getBlockOrder(clientId);\n\n if (childBlocks.length < 1) {\n // No accordion left, we will remove this block\n // removeBlock(clientId);\n }\n }\n\n updateAccordionAttrs( attrs ) {\n const { setAttributes, clientId } = this.props;\n const { updateBlockAttributes } = !wp.blockEditor ? dispatch( 'core/editor' ) : dispatch( 'core/block-editor' );\n const { getBlockOrder } = !wp.blockEditor ? select( 'core/editor' ) : select( 'core/block-editor' );\n const childBlocks = getBlockOrder(clientId);\n\n setAttributes( attrs );\n childBlocks.forEach( childBlockId => updateBlockAttributes( childBlockId, attrs ) );\n }\n\n resyncAccordions() {\n const { attributes, clientId } = this.props;\n const { updateBlockAttributes } = !wp.blockEditor ? dispatch( 'core/editor' ) : dispatch( 'core/block-editor' );\n const { getBlockOrder } = !wp.blockEditor ? select( 'core/editor' ) : select( 'core/block-editor' );\n const childBlocks = getBlockOrder(clientId);\n\n childBlocks.forEach( childBlockId => updateBlockAttributes( childBlockId, attributes ) );\n }\n\n render() {\n const { attributes, setAttributes } = this.props;\n const {\n id,\n headerBgColor,\n headerTextColor,\n headerIcon,\n headerIconColor,\n bodyBgColor,\n bodyTextColor,\n borderStyle,\n borderWidth,\n borderColor,\n borderRadius,\n marginBottom,\n collapsedAll,\n isPreview,\n } = attributes;\n\n const accordionsClassName = [\n id,\n 'advgb-accordions-wrapper'\n ].filter(Boolean).join(' ');\n\n return (\n isPreview ?\n <img alt={__('Advanced Accordion', 'advanced-gutenberg')} width='100%' src={previewImageData}/>\n :\n <Fragment>\n <BlockControls>\n <ToolbarGroup>\n <ToolbarButton\n icon=\"update\"\n onClick={ () => this.resyncAccordions() }\n label={__('Refresh', 'advanced-gutenberg')}\n />\n </ToolbarGroup>\n </BlockControls>\n <InspectorControls>\n <PanelBody title={ __( 'Accordion Settings', 'advanced-gutenberg' ) }>\n <RangeControl\n label={ __( 'Bottom spacing', 'advanced-gutenberg' ) }\n value={ marginBottom }\n help={ __( 'Define space between each accordion (Frontend view only)', 'advanced-gutenberg' ) }\n min={ 0 }\n max={ 50 }\n onChange={ ( value ) => this.updateAccordionAttrs( { marginBottom: value } ) }\n />\n <ToggleControl\n label={ __( 'Initial Collapsed', 'advanced-gutenberg' ) }\n help={ __( 'Make all accordions collapsed by default.', 'advanced-gutenberg' ) }\n checked={ collapsedAll }\n onChange={ () => {\n setAttributes( { collapsedAll: !collapsedAll } );\n this.props.updateAccordionAttributes( {collapsedAll: !collapsedAll} );\n } }\n />\n </PanelBody>\n <PanelBody title={ __( 'Header Settings', 'advanced-gutenberg' ) }>\n <BaseControl label={ __( 'Header Icon Style', 'advanced-gutenberg' ) }>\n <div className=\"advgb-icon-items-wrapper\">\n {Object.keys( HEADER_ICONS ).map( ( key, index ) => (\n <div className=\"advgb-icon-item\" key={ index }>\n <span className={ key === headerIcon ? 'active' : '' }\n onClick={ () => this.updateAccordionAttrs( { headerIcon: key } ) }>\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\">\n { HEADER_ICONS[key] }\n </svg>\n </span>\n </div>\n ) ) }\n </div>\n </BaseControl>\n <PanelColorSettings\n title={ __( 'Color Settings', 'advanced-gutenberg' ) }\n initialOpen={ false }\n colorSettings={ [\n {\n label: __( 'Background Color', 'advanced-gutenberg' ),\n value: headerBgColor,\n onChange: ( value ) => this.updateAccordionAttrs( { headerBgColor: value === undefined ? '#000' : value } ),\n },\n {\n label: __( 'Text Color', 'advanced-gutenberg' ),\n value: headerTextColor,\n onChange: ( value ) => this.updateAccordionAttrs( { headerTextColor: value === undefined ? '#eee' : value } ),\n },\n {\n label: __( 'Icon Color', 'advanced-gutenberg' ),\n value: headerIconColor,\n onChange: ( value ) => this.updateAccordionAttrs( { headerIconColor: value === undefined ? '#fff' : value } ),\n },\n ] }\n />\n </PanelBody>\n <PanelColorSettings\n title={ __( 'Body Color Settings', 'advanced-gutenberg' ) }\n initialOpen={ false }\n colorSettings={ [\n {\n label: __( 'Background Color', 'advanced-gutenberg' ),\n value: bodyBgColor,\n onChange: ( value ) => this.updateAccordionAttrs( { bodyBgColor: value } ),\n },\n {\n label: __( 'Text Color', 'advanced-gutenberg' ),\n value: bodyTextColor,\n onChange: ( value ) => this.updateAccordionAttrs( { bodyTextColor: value } ),\n },\n ] }\n />\n <PanelBody title={ __( 'Border Settings', 'advanced-gutenberg' ) } initialOpen={ false }>\n <SelectControl\n label={ __( 'Border Style', 'advanced-gutenberg' ) }\n value={ borderStyle }\n options={ [\n { label: __( 'Solid', 'advanced-gutenberg' ), value: 'solid' },\n { label: __( 'Dashed', 'advanced-gutenberg' ), value: 'dashed' },\n { label: __( 'Dotted', 'advanced-gutenberg' ), value: 'dotted' },\n ] }\n onChange={ ( value ) => this.updateAccordionAttrs( { borderStyle: value } ) }\n />\n <PanelColorSettings\n title={ __( 'Color Settings', 'advanced-gutenberg' ) }\n initialOpen={ false }\n colorSettings={ [\n {\n label: __( 'Border Color', 'advanced-gutenberg' ),\n value: borderColor,\n onChange: ( value ) => this.updateAccordionAttrs( { borderColor: value } ),\n },\n ] }\n />\n <RangeControl\n label={ __( 'Border width', 'advanced-gutenberg' ) }\n value={ borderWidth }\n min={ 0 }\n max={ 10 }\n onChange={ ( value ) => this.updateAccordionAttrs( { borderWidth: value } ) }\n />\n <RangeControl\n label={ __( 'Border radius', 'advanced-gutenberg' ) }\n value={ borderRadius }\n min={ 0 }\n max={ 100 }\n onChange={ ( value ) => this.updateAccordionAttrs( { borderRadius: value } ) }\n />\n </PanelBody>\n </InspectorControls>\n <div className={ accordionsClassName }>\n <InnerBlocks\n template={ [ ['advgb/accordion-item'] ] }\n templateLock={ false }\n allowedBlocks={ [ 'advgb/accordion-item' ] }\n />\n </div>\n </Fragment>\n )\n }\n }\n\n const accordionBlockIcon = (\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"20\" height=\"20\" viewBox=\"2 2 22 22\">\n <path d=\"M0 0h24v24H0z\" fill=\"none\"/>\n <path d=\"M2 20h20v-4H2v4zm2-3h2v2H4v-2zM2 4v4h20V4H2zm4 3H4V5h2v2zm-4 7h20v-4H2v4zm2-3h2v2H4v-2z\"/>\n </svg>\n );\n\n const blockAttrs = {\n id: {\n type: 'string',\n },\n headerBgColor: {\n type: 'string',\n default: '#000',\n },\n headerTextColor: {\n type: 'string',\n default: '#eee',\n },\n headerIcon: {\n type: 'string',\n default: 'unfold',\n },\n headerIconColor: {\n type: 'string',\n default: '#fff',\n },\n bodyBgColor: {\n type: 'string',\n },\n bodyTextColor: {\n type: 'string',\n },\n borderStyle: {\n type: 'string',\n default: 'solid',\n },\n borderWidth: {\n type: 'number',\n default: 1,\n },\n borderColor: {\n type: 'string',\n },\n borderRadius: {\n type: 'number',\n default: 2,\n },\n marginBottom: {\n type: 'number',\n default: 15,\n },\n collapsedAll: {\n type: 'boolean',\n default: false,\n },\n changed: {\n type: 'boolean',\n default: false,\n },\n needUpdate: {\n type: 'boolean',\n default: true,\n },\n isPreview: {\n type: 'boolean',\n default: false,\n },\n rootBlockId: {\n type: 'string',\n default: ''\n }\n };\n\n registerBlockType( 'advgb/accordions', {\n title: __( 'Accordion - PublishPress', 'advanced-gutenberg' ),\n description: __( 'Create a sliding accordion display for your content.', 'advanced-gutenberg' ),\n icon: {\n src: accordionBlockIcon,\n foreground: typeof advgbBlocks !== 'undefined' ? advgbBlocks.color : undefined,\n },\n category: 'advgb-category',\n keywords: [ __( 'accordion', 'advanced-gutenberg' ), __( 'advanced accordion', 'advanced-gutenberg' ), __( 'list', 'advanced-gutenberg' ), __( 'faq', 'advanced-gutenberg' ) ],\n attributes: blockAttrs,\n example: {\n attributes: {\n isPreview: true\n },\n },\n edit: compose(\n withDispatch( (dispatch, { clientId }, { select }) => {\n const {\n getBlock,\n } = select( 'core/block-editor' );\n const {\n updateBlockAttributes,\n } = dispatch( 'core/block-editor' );\n const block = getBlock( clientId );\n return {\n updateAccordionAttributes( attrs ) {\n times( block.innerBlocks.length, n => {\n updateBlockAttributes( block.innerBlocks[ n ].clientId, attrs );\n } );\n },\n };\n })\n )(AccordionsEdit),\n save: function ( { attributes } ) {\n const { collapsedAll, id } = attributes;\n\n const accordionsClassName = [\n id,\n 'advgb-accordion-wrapper'\n ].filter(Boolean).join(' ');\n\n return (\n <div className={ accordionsClassName } data-collapsed={ collapsedAll ? collapsedAll : undefined }>\n <InnerBlocks.Content />\n </div>\n );\n },\n deprecated: [\n {\n attributes: {\n headerBgColor: {\n type: 'string',\n default: '#000',\n },\n headerTextColor: {\n type: 'string',\n default: '#eee',\n },\n headerIcon: {\n type: 'string',\n default: 'unfold',\n },\n headerIconColor: {\n type: 'string',\n default: '#fff',\n },\n bodyBgColor: {\n type: 'string',\n },\n bodyTextColor: {\n type: 'string',\n },\n borderStyle: {\n type: 'string',\n default: 'solid',\n },\n borderWidth: {\n type: 'number',\n default: 1,\n },\n borderColor: {\n type: 'string',\n },\n borderRadius: {\n type: 'number',\n default: 2,\n },\n marginBottom: {\n type: 'number',\n default: 15,\n },\n collapsedAll: {\n type: 'boolean',\n default: false,\n },\n changed: {\n type: 'boolean',\n default: false,\n },\n needUpdate: {\n type: 'boolean',\n default: true,\n },\n isPreview: {\n type: 'boolean',\n default: false,\n },\n rootBlockId: {\n type: 'string',\n default: ''\n }\n },\n save: function ( { attributes } ) {\n const { collapsedAll } = attributes;\n\n return (\n <div className=\"advgb-accordion-wrapper\" data-collapsed={ collapsedAll ? collapsedAll : undefined }>\n <InnerBlocks.Content />\n </div>\n );\n }\n },\n {\n attributes: {\n ...blockAttrs,\n borderWidth: {\n type: 'number',\n default: 0,\n }\n },\n save: function ( { attributes } ) {\n const { collapsedAll } = attributes;\n\n return (\n <div className=\"advgb-accordion-wrapper\" data-collapsed={ collapsedAll ? collapsedAll : undefined }>\n <InnerBlocks.Content />\n </div>\n );\n },\n },\n {\n attributes: {\n ...blockAttrs,\n rootBlockId: {\n type: 'string',\n default: ''\n }\n },\n save: function ( { attributes } ) {\n const { collapsedAll } = attributes;\n\n return (\n <div className=\"advgb-accordion-wrapper\" data-collapsed={ collapsedAll ? collapsedAll : undefined }>\n <InnerBlocks.Content />\n </div>\n );\n }\n }\n ]\n } )\n})( wp.i18n, wp.blocks, wp.element, wp.blockEditor, wp.components, wp.compose, lodash );\n","import {AdvColorControl} from \"../0-adv-components/components.jsx\";\nimport {IconListPopupHook} from \"../0-adv-components/icon-class.jsx\";\n\n(function ( wpI18n, wpBlocks, wpElement, wpBlockEditor, wpComponents ) {\n wpBlockEditor = wp.blockEditor || wp.editor;\n const { __ } = wpI18n;\n const { Component, Fragment } = wpElement;\n const { registerBlockType, createBlock } = wpBlocks;\n const { InspectorControls, RichText, PanelColorSettings, URLInput } = wpBlockEditor;\n const { BaseControl, RangeControl, PanelBody, ToggleControl, SelectControl, Button } = wpComponents;\n\n // Preview style images\n let previewImageData = '';\n const previewImageDataDefault = 'data:image/png;base64,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';\n const previewImageDataOutlined = 'data:image/png;base64,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';\n const previewImageDataSquaredOutline = 'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAPoAAABoCAYAAADYQu11AAAE1ElEQVR4nO3d4VHrOhCG4T13bgO0EErYlHAoIZSQlEBKgBJICaSEnBJQCaSFlHDPiLuZ8YhVbDkOTLLvM8OfYBJs9FnSWjYCAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACAmH5Nudeq+h/tCJhOSmmSjP7D3wS4ff9eaA8nHSkAAU06OqZHBwIg6EAABB0IgKADARB0IACCDgRA0IEACDoQAEEHAiDoQAAEHQiAoAMBEHQgAIIOBEDQgQAIOhAAQQcCIOhAAAQdCICgAwEQdCCASz0F9toMfeLmQUReRGSfUtrWNlLVnYj8Ll5+SCn9OfEzTyLyXLy8Tim92PdnIvJx5nH9k1J6UNVXEVme+V59+5P3X+1zZsW387FLIrJJKR2GfFjxPwP29vn7YhvvR/Mx637+2v6GoRD0NnfHMKpqbqiPZWOLzgL+bCGvWdjXs6pu7IQ2KPAmB/dNRObRj/dQDN3Hyw15p6p317oDU1PVHPBdT8hLucf/sBNEC1XVt2s6Pj+JoFfkf4XT/bLeIxVbzyYYAt8Emw48jdyXOztptpwgsoVNedCDoftAKaWkqmvrsboW3zHnsynCl/+AU5m7f87FT7zXSkRWznt5c/eTc3H7uWXlhJdPjNtjnaHz+y6ceoRY2O8bh/F5+J/3tzwJo4MevUGlwYceutvUxQttLrTNuyEXO2HZa3MrqnXV3qvPzk4gqCDo52vpfW7R0jnZ7W3UUGU9sLfNckTd486Kc6gg6A0qBaOTw9oAFs4uDprK2AjJO37ee5bKE6yOHA2EQNAHUtXc+F6LrfcRr8kWvAJadY2Bwwv6kKLcixP2pzMKgjeNYlxFsUDDkxvzqrFwdFMq8+J94zHximhD5tv5M3LB8b14/dlOHhTnOujRx9naNDP6/PxH2Tx/7fwOb9GLpCWCPs5xVdcH1d6fZRX8cqowcy6DhkbQK8oFM7Zopuw9QjeoyvLfWWPV3JuPNy0rTik9OkP1Y3Eu/BJlIehtar2HFeq6vMbV1/i971/D1MCbCw+pmh95VzLGzK8fK8W51tV2N4mgt/Ma4ZfryM42fQ1uqgb/3bwK+6DKt12u9Pa7pWr/yUYX3nX58HN1IegX410yWtbm87ZeuzwRHK5kWefG6Ulntpy2yo6Ft83gW1cd20pxLjyC3q6357WAlmHPPcu7rQv/lOeydseXt9DjKq7PWyi9cOUT23t500kOuL1W3icudsI4N6je9Co8rqMP1FnTXQa9dkPF2rnGm9/jta+3s6H/5uI7NZGU0sbuPCtvbFG7nXToirWHiS5ZruyzuSJiCHrFgAUzYj2Qu6bb7nZbVYanp+wnbPDfJq9tV9XDyJVpB3uIx1RTlYMV53bM0f/H0H283Cjnp54wk3s6W7019BLP1ntE0rVIKa1tf1sCm4/Rfd+tsCPUbpoJiR693brvmXFd1oDvbW4+c3q843PobuKeatvf+dTPjBvpWJwLf7PLlwcZnKMz3J30fYGAPrNkC7XOxtAdCICgAwEQdCAAgg4EQNCBAAg6EABBBwIg6EAABB0IgKADARB0IACCDgRA0IEACDoQAEEHAiDoQAAEHQjgUo+SGvJgRQDfhB4dAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABgPBH5CxnLf2zPqO7iAAAAAElFTkSuQmCC';\n const previewImageDataSquared = 'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAPoAAABoCAYAAADYQu11AAAFXklEQVR4nO3c6ytsURzG8XUOUUSIXCNEFK/M//8XjFcUEUWuESKKyOmZ0z5nz7L22WuNfWjm9/3UlMbc9p71rPtsBwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAJt+VHnU9Xr9nXIEVKdWq1WS0Z98J0DnI+iAAQQdMICgAwYQdMAAgg4YQNABAwg6YABBBwwg6IABBB0wgKADBhB0wACCDhhA0AEDCDpgAEEHDCDogAEEHTCAoAMGEHTAAIIOGEDQAQO6+ZKd29jYiHrc29ubu7y8dM/Pz+7m5qbwccvLy25gYKDpvv39fXd/f1/4nMnJSTc1NdV039nZmTs/P2/83dvb69bW1qI+Z5GHhwe3t7fn5ubm3Ojo6Kdeq+x4BgcHXX9/f+N9enp6mv53d3fnnp6e3NXVlXt9fY16v/x39PLy0jgOfQ9l1tfXm94/f04tIegJurq6/oRxfHzcHR4eRhU2SxTw6elp19fXV3jUQ0NDjZvO5fX1tTs9PY0OvCi4CwsLbmdnx/rpjkbXvUUqyGq5u7upKzMzMzNuaWnpnyH3qcVXT0UVRAq9x+Li4lcdWtujlBbY3Nxs+oe6obOzs02FWC3L2NiYya6g7zPDAfWUVEHs7u66x8fH6OepV6AhD+e/HEGPpAKoLqYKZJ4K21cUNA0R/MrHFYzds7F4kaOjo8bNFwpr2VhcVNmFQq5xuMbj+fOjzzsyMvJhPkJ0bre3t5O68Xodfb6UCsIiuu4JQgXeetddx68xuU9jb42h/UpQFZbuU+utSbU8teyh1yqjCkIVCIoR9E9KaX06kVpzBTRPAQ71GPLUAoceo55BauWp99fkHIoR9AShCSN1ky3T0MV3cXERdUbUQwqdv+Hh4dLnaqkzT3MnmgxEGEGPpHGlxrB5arliC3WnCs2w397eRh9tKOgxs/baz+CHXUuempzDR0zGFSjbRKNJJnU9LXfdQ+NiVX4p5yQ0iRYz3tZ7aKJwZWWl6X4m58Jo0VuQ7eyyPj7/bgqzdrr5NF63PknqI+gtyHZ1aXsls73fSzP4qnjztL/BXwa1jmqvQGjN2t+PrgKl3XFbW1vf/nm/Q2j7r86JWtPY3o42IvlStxUfHBy41dXVprF9Njmn1/L32ltEi56gqPXQRF1eqKCWdSX9JSrXJkt3GsL4YmbNM/6Pf4pes4x+dxCanEvZjtvJCHqiUCEMrSP7ygpcVQX+q/kVn0xMTER9Ci1Xho47ZdY+o8r1+Pj4w/2hCtQigv4fhHbQaSNI0XheQwK/IlDr1A4zx/qpqd+SqpfjL0X6dC5Cj9GOulZ7MvrpcGhyDgQ9WUzLq4D668NqWTSO1E6yjLrzGkeG9n1rnbgdKJT6DYBPFZuO11/XVsB1n/bn+2NnVRih10oRGl6Bybho2Z5uP+gKdKjlVYH113gVdv0CTrd/UddfLWW70GdVj8T/YYvu0y1UkYVoXbyKeQntb9D7Mgn3F0EvEHPVGbVARXu6FX6NGctC7cuuntJua/Q6DzofmgBLpedpMq2qoYrOnV5PS2yM0X8j6C1Sd73sCjNq6fR/jUVjWhd1OU9OTtr2qjX67JqfKLvCTF4rV5iJkVW08/Pzlb5uuyLoiTTZU3bNuDwVfK2za2yu8anf4mXXoeuUbZs6Dt2qvmZcK/Qd6ZzHDh062Y8qj61er79bP6FAlWq1WiUZZdYdMICgAwYQdMAAgg4YQNABAwg6YABBBwwg6IABBB0wgKADBhB0wACCDhhA0AEDCDpgAEEHDCDogAEEHTCAoAMGEHQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIDWOed+AS3cOPlbAUbbAAAAAElFTkSuQmCC';\n\n function advgb_relAttribute(attributes) {\n let values = [\n attributes.noreferrer ? 'noreferrer' : '',\n attributes.nofollow ? 'nofollow' : ''\n ].filter( Boolean ).join(' ');\n\n return values;\n }\n\n class AdvButton extends Component {\n constructor() {\n super( ...arguments );\n this.state = {\n showPopup: false,\n iconSelected: '',\n selectedIcon: false,\n iconThemeSelected: 'outlined',\n selectedIconTheme: false,\n };\n this.togglePopup = this.togglePopup.bind(this);\n this.handleIcon = this.handleIcon.bind(this);\n this.handleIconTheme = this.handleIconTheme.bind(this);\n }\n\n componentWillMount() {\n const { attributes, setAttributes } = this.props;\n const currentBlockConfig = advgbDefaultConfig['advgb-button'];\n\n // No override attributes of blocks inserted before\n if (attributes.changed !== true) {\n if (typeof currentBlockConfig === 'object' && currentBlockConfig !== null) {\n Object.keys(currentBlockConfig).map((attribute) => {\n if (typeof attributes[attribute] === 'boolean') {\n attributes[attribute] = !!currentBlockConfig[attribute];\n } else {\n attributes[attribute] = currentBlockConfig[attribute];\n }\n });\n }\n\n // Finally set changed attribute to true, so we don't modify anything again\n setAttributes( { changed: true } );\n }\n }\n\n componentDidMount() {\n const { attributes, setAttributes, clientId } = this.props;\n setAttributes( { id: 'advgbbtn-' + clientId } );\n\n // Reset attributes when Pro is not available\n if( advgbBlocks.advgb_pro !== 'undefined' && advgbBlocks.advgb_pro !== '1' ) {\n setAttributes( {\n noreferrer: true,\n nofollow: false\n } );\n }\n }\n\n componentDidUpdate() {\n const {iconSelected, selectedIcon, iconThemeSelected, selectedIconTheme} = this.state;\n const {attributes, setAttributes} = this.props;\n if(selectedIcon) {\n\n this.setState({\n selectedIcon: false\n });\n setAttributes({\n icon: iconSelected,\n iconTheme: iconThemeSelected\n });\n }\n\n if(selectedIconTheme) {\n this.setState({\n selectedIconTheme: false\n });\n setAttributes({\n iconTheme: iconThemeSelected\n });\n }\n }\n\n togglePopup() {\n const {showPopup} = this.state;\n\n this.setState( {\n showPopup: !showPopup\n } );\n }\n\n handleIcon(iconValue) {\n this.setState({\n iconSelected: iconValue,\n selectedIcon: true,\n });\n }\n\n handleIconTheme(iconThemeValue) {\n this.setState({\n iconThemeSelected: iconThemeValue,\n selectedIconTheme: true,\n });\n }\n\n render() {\n const listBorderStyles = [\n { label: __( 'None', 'advanced-gutenberg' ), value: 'none' },\n { label: __( 'Solid', 'advanced-gutenberg' ), value: 'solid' },\n { label: __( 'Dotted', 'advanced-gutenberg' ), value: 'dotted' },\n { label: __( 'Dashed', 'advanced-gutenberg' ), value: 'dashed' },\n { label: __( 'Double', 'advanced-gutenberg' ), value: 'double' },\n { label: __( 'Groove', 'advanced-gutenberg' ), value: 'groove' },\n { label: __( 'Ridge', 'advanced-gutenberg' ), value: 'ridge' },\n { label: __( 'Inset', 'advanced-gutenberg' ), value: 'inset' },\n { label: __( 'Outset', 'advanced-gutenberg' ), value: 'outset' },\n ];\n const {\n attributes,\n setAttributes,\n isSelected,\n className,\n clientId: blockID,\n } = this.props;\n const {showPopup} = this.state;\n const {\n id, align, url, urlOpenNewTab, title, text, bgColor, textColor, textSize,\n marginTop, marginRight, marginBottom, marginLeft,\n paddingTop, paddingRight, paddingBottom, paddingLeft,\n borderWidth, borderColor, borderRadius, borderStyle,\n hoverTextColor, hoverBgColor, hoverShadowColor, hoverShadowH, hoverShadowV, hoverShadowBlur, hoverShadowSpread,\n hoverOpacity, transitionSpeed, iconDisplay, icon, iconSize, iconColor, iconTheme, iconPosition, iconSpacing,\n noreferrer, nofollow, isPreview\n } = attributes;\n\n const isStyleSquared = className.indexOf('-squared') > -1;\n const isStyleOutlined = className.indexOf('-outlined') > -1;\n const isStyleSquaredOutline = className.indexOf('-squared-outline') > -1;\n const hoverColorSettings = [\n {\n label: __( 'Background Color', 'advanced-gutenberg' ),\n value: hoverBgColor,\n onChange: ( value ) => setAttributes( { hoverBgColor: value === undefined ? '#2196f3' : value } ),\n },\n {\n label: __( 'Text Color', 'advanced-gutenberg' ),\n value: hoverTextColor,\n onChange: ( value ) => setAttributes( { hoverTextColor: value === undefined ? '#fff' : value } ),\n },\n {\n label: __( 'Shadow Color', 'advanced-gutenberg' ),\n value: hoverShadowColor,\n onChange: ( value ) => setAttributes( { hoverShadowColor: value === undefined ? '#ccc' : value } ),\n },\n ];\n\n if (isStyleSquaredOutline) {\n hoverColorSettings.shift();\n previewImageData = previewImageDataSquaredOutline;\n } else if (isStyleOutlined) {\n hoverColorSettings.shift();\n previewImageData = previewImageDataOutlined;\n } else if (isStyleSquared) {\n previewImageData = previewImageDataSquared;\n } else {\n previewImageData = previewImageDataDefault;\n }\n\n const iconClass = [\n 'material-icons',\n iconTheme !== '' && `-${iconTheme}`\n ].filter( Boolean ).join('');\n\n return (\n isPreview ?\n <img alt={__('Advanced Button', 'advanced-gutenberg')} width='100%' src={previewImageData}/>\n :\n <Fragment>\n <span className={`${className} align${align}`}\n style={ { display: 'inline-block' } }\n >\n <span className={ `wp-block-advgb-button_link ${id}` } rel={ advgb_relAttribute(attributes) }>\n { iconDisplay && (\n <i className={iconClass}>\n {icon}\n </i>\n ) }\n <RichText\n tagName=\"span\"\n placeholder={ __( 'Add text…', 'advanced-gutenberg' ) }\n value={ text }\n onChange={ ( value ) => setAttributes( { text: value } ) }\n allowedFormats={ [ 'core/bold', 'core/italic', 'core/strikethrough' ] }\n isSelected={ isSelected }\n keepPlaceholderOnFocus\n />\n </span>\n </span>\n <style>\n {`.${id} {\n font-size: ${textSize}px;\n color: ${textColor} !important;\n background-color: ${bgColor} !important;\n margin: ${marginTop}px ${marginRight}px ${marginBottom}px ${marginLeft}px;\n padding: ${paddingTop}px ${paddingRight}px ${paddingBottom}px ${paddingLeft}px;\n border-width: ${borderWidth}px !important;\n border-color: ${borderColor} !important;\n border-radius: ${borderRadius}px !important;\n border-style: ${borderStyle} ${borderStyle !== 'none' && '!important'};\n }\n .${id}:hover {\n color: ${hoverTextColor} !important;\n background-color: ${hoverBgColor} !important;\n box-shadow: ${hoverShadowH}px ${hoverShadowV}px ${hoverShadowBlur}px ${hoverShadowSpread}px ${hoverShadowColor};\n transition: all ${transitionSpeed}s ease;\n opacity: ${hoverOpacity/100}\n }\n .${id} i {\n font-size: ${iconSize}px;\n float: ${iconPosition};\n }`}\n { iconColor && (\n `.${id} i {\n color: ${iconColor};\n }`\n ) }\n { iconPosition === 'left' && (\n `.${id} i {\n margin-right: ${iconSpacing}px;\n }`\n ) }\n { iconPosition === 'right' && (\n `.${id} i {\n margin-left: ${iconSpacing}px;\n }`\n ) }\n { advgbBlocks.advgb_pro !== '1' && (\n `.${id} i {\n display: none !important;\n }`\n ) }\n </style>\n {\n showPopup ?\n <IconListPopupHook\n content='iconpopup'\n closePopup={ () => {\n if(showPopup) {\n this.togglePopup();\n }\n }\n }\n onSelectIcon={ this.handleIcon }\n onSelectIconTheme={ this.handleIconTheme }\n selectedIcon={icon}\n selectedIconTheme={iconTheme}\n />\n :\n null\n }\n <InspectorControls>\n <PanelBody title={ __( 'Button link', 'advanced-gutenberg' ) }>\n <BaseControl\n label={ [\n __( 'Link URL', 'advanced-gutenberg' ),\n (url && <a href={ url || '#' } key=\"link_url\" target=\"_blank\" style={ { float: 'right' } }>\n { __( 'Preview', 'advanced-gutenberg' ) }\n </a>)\n ] }\n >\n <URLInput\n value={url}\n onChange={ (value) => setAttributes( { url: value } ) }\n autoFocus={false}\n isFullWidth\n hasBorder\n />\n </BaseControl>\n <ToggleControl\n label={ __( 'Open in new tab', 'advanced-gutenberg' ) }\n checked={ !!urlOpenNewTab }\n onChange={ () => setAttributes( { urlOpenNewTab: !attributes.urlOpenNewTab } ) }\n />\n </PanelBody>\n <PanelBody title={ __( 'Text/Color', 'advanced-gutenberg' ) }>\n <RangeControl\n label={ __( 'Text size', 'advanced-gutenberg' ) }\n value={ textSize || '' }\n onChange={ ( size ) => setAttributes( { textSize: size } ) }\n min={ 10 }\n max={ 100 }\n beforeIcon=\"editor-textcolor\"\n allowReset\n />\n {!isStyleOutlined && (\n <AdvColorControl\n label={ __('Background Color', 'advanced-gutenberg') }\n value={ bgColor }\n onChange={ (value) => setAttributes( { bgColor: value } ) }\n />\n )}\n <AdvColorControl\n label={ __('Text Color', 'advanced-gutenberg') }\n value={ textColor }\n onChange={ (value) => setAttributes( { textColor: value } ) }\n />\n </PanelBody>\n <PanelBody title={ __( 'Border', 'advanced-gutenberg' ) } initialOpen={ false } >\n {!isStyleSquared && (\n <RangeControl\n label={ __( 'Border radius', 'advanced-gutenberg' ) }\n value={ borderRadius || '' }\n onChange={ ( value ) => setAttributes( { borderRadius: value } ) }\n min={ 0 }\n max={ 100 }\n />\n ) }\n <SelectControl\n label={ __( 'Border style', 'advanced-gutenberg' ) }\n value={ borderStyle }\n options={ listBorderStyles }\n onChange={ ( value ) => setAttributes( { borderStyle: value } ) }\n />\n {borderStyle !== 'none' && (\n <Fragment>\n <PanelColorSettings\n title={ __( 'Border Color', 'advanced-gutenberg' ) }\n initialOpen={ false }\n colorSettings={ [\n {\n label: __( 'Border Color', 'advanced-gutenberg' ),\n value: borderColor,\n onChange: ( value ) => setAttributes( { borderColor: value === undefined ? '#2196f3' : value } ),\n },\n ] }\n />\n <RangeControl\n label={ __( 'Border width', 'advanced-gutenberg' ) }\n value={ borderWidth || '' }\n onChange={ ( value ) => setAttributes( { borderWidth: value } ) }\n min={ 0 }\n max={ 100 }\n />\n </Fragment>\n ) }\n </PanelBody>\n <PanelBody title={ __( 'Margin', 'advanced-gutenberg' ) } initialOpen={ false } >\n <RangeControl\n label={ __( 'Margin top', 'advanced-gutenberg' ) }\n value={ marginTop || '' }\n onChange={ ( value ) => setAttributes( { marginTop: value } ) }\n min={ 0 }\n max={ 100 }\n />\n <RangeControl\n label={ __( 'Margin right', 'advanced-gutenberg' ) }\n value={ marginRight || '' }\n onChange={ ( value ) => setAttributes( { marginRight: value } ) }\n min={ 0 }\n max={ 100 }\n />\n <RangeControl\n label={ __( 'Margin bottom', 'advanced-gutenberg' ) }\n value={ marginBottom || '' }\n onChange={ ( value ) => setAttributes( { marginBottom: value } ) }\n min={ 0 }\n max={ 100 }\n />\n <RangeControl\n label={ __( 'Margin left', 'advanced-gutenberg' ) }\n value={ marginLeft || '' }\n onChange={ ( value ) => setAttributes( { marginLeft: value } ) }\n min={ 0 }\n max={ 100 }\n />\n </PanelBody>\n <PanelBody title={ __( 'Padding', 'advanced-gutenberg' ) } initialOpen={ false } >\n <RangeControl\n label={ __( 'Padding top', 'advanced-gutenberg' ) }\n value={ paddingTop || '' }\n onChange={ ( value ) => setAttributes( { paddingTop: value } ) }\n min={ 0 }\n max={ 100 }\n />\n <RangeControl\n label={ __( 'Padding right', 'advanced-gutenberg' ) }\n value={ paddingRight || '' }\n onChange={ ( value ) => setAttributes( { paddingRight: value } ) }\n min={ 0 }\n max={ 100 }\n />\n <RangeControl\n label={ __( 'Padding bottom', 'advanced-gutenberg' ) }\n value={ paddingBottom || '' }\n onChange={ ( value ) => setAttributes( { paddingBottom: value } ) }\n min={ 0 }\n max={ 100 }\n />\n <RangeControl\n label={ __( 'Padding left', 'advanced-gutenberg' ) }\n value={ paddingLeft || '' }\n onChange={ ( value ) => setAttributes( { paddingLeft: value } ) }\n min={ 0 }\n max={ 100 }\n />\n </PanelBody>\n <PanelBody title={ __( 'Hover', 'advanced-gutenberg' ) } initialOpen={ false } >\n <PanelColorSettings\n title={ __( 'Color Settings', 'advanced-gutenberg' ) }\n initialOpen={ false }\n colorSettings={ hoverColorSettings }\n />\n <PanelBody title={ __( 'Shadow', 'advanced-gutenberg' ) } initialOpen={ false } >\n <RangeControl\n label={ __('Opacity (%)', 'advanced-gutenberg') }\n value={ hoverOpacity }\n onChange={ ( value ) => setAttributes( { hoverOpacity: value } ) }\n min={ 0 }\n max={ 100 }\n />\n <RangeControl\n label={ __('Transition speed (ms)', 'advanced-gutenberg') }\n value={ transitionSpeed || '' }\n onChange={ ( value ) => setAttributes( { transitionSpeed: value } ) }\n min={ 0 }\n max={ 3000 }\n />\n <RangeControl\n label={ __( 'Shadow H offset', 'advanced-gutenberg' ) }\n value={ hoverShadowH || '' }\n onChange={ ( value ) => setAttributes( { hoverShadowH: value } ) }\n min={ -50 }\n max={ 50 }\n />\n <RangeControl\n label={ __( 'Shadow V offset', 'advanced-gutenberg' ) }\n value={ hoverShadowV || '' }\n onChange={ ( value ) => setAttributes( { hoverShadowV: value } ) }\n min={ -50 }\n max={ 50 }\n />\n <RangeControl\n label={ __( 'Shadow blur', 'advanced-gutenberg' ) }\n value={ hoverShadowBlur || '' }\n onChange={ ( value ) => setAttributes( { hoverShadowBlur: value } ) }\n min={ 0 }\n max={ 50 }\n />\n <RangeControl\n label={ __( 'Shadow spread', 'advanced-gutenberg' ) }\n value={ hoverShadowSpread || '' }\n onChange={ ( value ) => setAttributes( { hoverShadowSpread: value } ) }\n min={ 0 }\n max={ 50 }\n />\n </PanelBody>\n </PanelBody>\n {advgbBlocks.advgb_pro === '1' && (\n <Fragment>\n <PanelBody title={ __( 'Icon', 'advanced-gutenberg' ) } initialOpen={ false } className=\"advgb-pro-icon\">\n <ToggleControl\n label={ __( 'Display icon', 'advanced-gutenberg' ) }\n checked={ iconDisplay }\n onChange={ () => setAttributes( { iconDisplay: !iconDisplay } ) }\n className=\"advgb-child-toggle\"\n />\n { iconDisplay && (\n <Fragment>\n <BaseControl\n label={ __( 'Icon Library (Material Icon)', 'advanced-gutenberg' )}\n >\n <Button\n className=\"button button-large advgb-browse-icon-btn\"\n onClick={ () => {\n if(!showPopup) {\n this.togglePopup();\n }\n } }\n >\n { __( 'Icon Selection', 'advanced-gutenberg' ) }\n </Button>\n </BaseControl>\n <RangeControl\n label={ __( 'Icon Size (px)', 'advanced-gutenberg' ) }\n value={iconSize}\n min={1}\n max={200}\n onChange={( value ) => setAttributes( { iconSize: value } )}\n />\n <AdvColorControl\n label={ __( 'Icon Color', 'advanced-gutenberg' ) }\n value={ iconColor }\n onChange={ (value) => setAttributes( {iconColor: value} ) }\n />\n <SelectControl\n label={ __( 'Icon Position', 'advanced-gutenberg' ) }\n value={iconPosition}\n options={[\n { label: __( 'Left', 'advanced-gutenberg' ), value: 'left' },\n { label: __( 'Right', 'advanced-gutenberg' ), value: 'right' },\n ]}\n onChange={ ( value ) => setAttributes( { iconPosition: value } ) }\n />\n <RangeControl\n label={ __( 'Icon Spacing (px)', 'advanced-gutenberg' ) }\n value={iconSpacing}\n min={0}\n max={100}\n help={ __( 'Spacing between icon and text', 'advanced-gutenberg' ) }\n onChange={( value ) => setAttributes( { iconSpacing: value } )}\n />\n </Fragment>\n ) }\n </PanelBody>\n </Fragment>\n ) }\n </InspectorControls>\n </Fragment>\n )\n }\n }\n\n const buttonBlockIcon = (\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"20\" height=\"20\" viewBox=\"2 2 22 22\">\n <path fill=\"none\" d=\"M0 0h24v24H0V0z\"/>\n <path d=\"M19 7H5c-1.1 0-2 .9-2 2v6c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V9c0-1.1-.9-2-2-2zm0 8H5V9h14v6z\"/>\n </svg>\n );\n const blockAttrs = {\n id: {\n type: 'string',\n },\n url: {\n type: 'string',\n },\n urlOpenNewTab: {\n type: 'boolean',\n default: true,\n },\n title: {\n type: 'string',\n },\n text: {\n selector: 'a',\n default: 'PUSH THE BUTTON',\n },\n bgColor: {\n type: 'string',\n },\n textColor: {\n type: 'string',\n },\n textSize: {\n type: 'number',\n default: 18,\n },\n marginTop: {\n type: 'number',\n default: 0,\n },\n marginRight: {\n type: 'number',\n default: 0,\n },\n marginBottom: {\n type: 'number',\n default: 0,\n },\n marginLeft: {\n type: 'number',\n default: 0,\n },\n paddingTop: {\n type: 'number',\n default: 10,\n },\n paddingRight: {\n type: 'number',\n default: 30,\n },\n paddingBottom: {\n type: 'number',\n default: 10,\n },\n paddingLeft: {\n type: 'number',\n default: 30,\n },\n borderWidth: {\n type: 'number',\n default: 1,\n },\n borderColor: {\n type: 'string',\n },\n borderStyle: {\n type: 'string',\n default: 'none',\n },\n borderRadius: {\n type: 'number',\n default: 50\n },\n hoverTextColor: {\n type: 'string',\n },\n hoverBgColor: {\n type: 'string',\n },\n hoverShadowColor: {\n type: 'string',\n default: '#ccc'\n },\n hoverShadowH: {\n type: 'number',\n default: 1,\n },\n hoverShadowV: {\n type: 'number',\n default: 1,\n },\n hoverShadowBlur: {\n type: 'number',\n default: 12,\n },\n hoverShadowSpread: {\n type: 'number',\n default: 0,\n },\n hoverOpacity: {\n type: 'number',\n default: 100,\n },\n transitionSpeed: {\n type: 'number',\n default: 200,\n },\n align: {\n type: 'string',\n default: 'none',\n },\n iconDisplay: {\n type: 'boolean',\n default: false,\n },\n icon: {\n type: 'string',\n default: 'insert_link'\n },\n iconSize: {\n type: 'number',\n default: 30\n },\n iconColor: {\n type: 'string',\n },\n iconTheme: {\n type: 'string',\n default: 'outlined'\n },\n iconPosition: {\n type: 'string',\n default: 'left',\n },\n iconSpacing: {\n type: 'number',\n default: 7,\n },\n noreferrer: {\n type: 'boolean',\n default: true,\n },\n nofollow: {\n type: 'boolean',\n default: false,\n },\n changed: {\n type: 'boolean',\n default: false,\n },\n isPreview: {\n type: 'boolean',\n default: false,\n },\n };\n\n registerBlockType( 'advgb/button', {\n title: __( 'Button - PublishPress', 'advanced-gutenberg' ),\n description: __( 'Button block with more options and styles.', 'advanced-gutenberg' ),\n icon: {\n src: buttonBlockIcon,\n foreground: typeof advgbBlocks !== 'undefined' ? advgbBlocks.color : undefined,\n },\n category: 'advgb-category',\n keywords: [ __( 'button', 'advanced-gutenberg' ), __( 'advanced button', 'advanced-gutenberg' ), __( 'link', 'advanced-gutenberg' ) ],\n attributes: blockAttrs,\n example: {\n attributes: {\n isPreview: true\n },\n },\n transforms: {\n from: [\n {\n type: 'block',\n blocks: [ 'core/button' ],\n transform: ( attributes ) => {\n return createBlock( 'advgb/button', {\n ...attributes,\n bgColor: attributes.color,\n } )\n }\n }\n ],\n to: [\n {\n type: 'block',\n blocks: [ 'core/button' ],\n transform: ( attributes ) => {\n return createBlock( 'core/button', {\n ...attributes,\n color: attributes.bgColor,\n } )\n }\n }\n ]\n },\n styles: [\n { name: 'default', label: __( 'Default', 'advanced-gutenberg' ), isDefault: true },\n { name: 'outlined', label: __( 'Outlined', 'advanced-gutenberg' ) },\n { name: 'squared', label: __( 'Squared', 'advanced-gutenberg' ) },\n { name: 'squared-outline', label: __( 'Squared Outline', 'advanced-gutenberg' ) },\n ],\n supports: {\n anchor: true,\n align: ['right', 'left', 'center', 'full'],\n },\n edit: AdvButton,\n save: function ( { attributes } ) {\n const {\n id,\n align,\n url,\n urlOpenNewTab,\n title,\n text,\n iconDisplay,\n icon,\n iconSize,\n iconColor,\n iconTheme,\n iconPosition,\n iconSpacing,\n noreferrer,\n nofollow\n } = attributes;\n\n const iconClass = [\n 'material-icons',\n iconTheme !== '' && `-${iconTheme}`\n ].filter( Boolean ).join('');\n\n\n return (\n <div className={ `align${align}` }>\n <a className={ `wp-block-advgb-button_link ${id}` }\n href={ url || '#' }\n title={ title }\n target={ !urlOpenNewTab ? '_self' : '_blank' }\n rel={ 'noopener ' + advgb_relAttribute(attributes) }>\n { iconDisplay && (\n <i className={iconClass}>\n {icon}\n </i>\n ) }\n <RichText.Content\n tagName=\"span\"\n value={ text }\n />\n </a>\n </div>\n );\n },\n getEditWrapperProps( attributes ) {\n const { align } = attributes;\n const props = { 'data-resized': true };\n\n if ( 'left' === align || 'right' === align || 'center' === align ) {\n props[ 'data-align' ] = align;\n }\n\n return props;\n },\n deprecated: [\n {\n attributes: {\n ...blockAttrs,\n text: {\n source: 'children',\n selector: 'a',\n default: 'PUSH THE BUTTON',\n }\n },\n supports: {\n anchor: true,\n align: ['right', 'left', 'center', 'full'],\n },\n save: function ( { attributes } ) {\n const {\n id,\n align,\n url,\n urlOpenNewTab,\n title,\n text,\n icon,\n iconSize,\n iconColor,\n iconTheme\n } = attributes;\n\n return (\n <div className={ `align${align}` }>\n <RichText.Content\n tagName=\"a\"\n className={ `wp-block-advgb-button_link ${id}` }\n href={ url || '#' }\n title={ title }\n target={ !urlOpenNewTab ? '_self' : '_blank' }\n value={ text }\n rel=\"noopener noreferrer\"\n />\n </div>\n );\n }\n },\n {\n attributes: {\n ...blockAttrs,\n transitionSpeed: {\n type: 'number',\n default: 0.2,\n }\n },\n migrate: function( attributes ) {\n const transitionSpeed = attributes.transitionSpeed * 1000;\n return {\n ...attributes,\n transitionSpeed,\n }\n },\n save: function ( { attributes } ) {\n const {\n id,\n align,\n url,\n urlOpenNewTab,\n title,\n text,\n } = attributes;\n\n return (\n <div className={ `align${align}` }>\n <RichText.Content\n tagName=\"a\"\n className={ `wp-block-advgb-button_link ${id}` }\n href={ url || '#' }\n title={ title }\n target={ !urlOpenNewTab ? '_self' : '_blank' }\n value={ text }\n rel=\"noopener noreferrer\"\n />\n </div>\n );\n },\n },\n ],\n } );\n})( wp.i18n, wp.blocks, wp.element, wp.blockEditor, wp.components );\n","import {AdvColorControl} from \"../0-adv-components/components.jsx\";\nimport {IconListPopupHook} from \"../0-adv-components/icon-class.jsx\";\n\n(function ( wpI18n, wpBlocks, wpElement, wpBlockEditor, wpComponents, lodash ) {\n wpBlockEditor = wp.blockEditor || wp.editor;\n const { __ } = wpI18n;\n const { Component, Fragment } = wpElement;\n const { registerBlockType } = wpBlocks;\n const { InspectorControls, BlockControls, AlignmentToolbar, URLInput } = wpBlockEditor;\n const { BaseControl, PanelBody, RangeControl, SelectControl, TextControl, Button } = wpComponents;\n const { times } = lodash;\n\n const previewImageData = 'data:image/png;base64,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';\n\n const MARGIN_PADDING_CONTROLS = [\n {\n label:'Top',\n icon: (<svg width=\"20px\" height=\"20px\" viewBox=\"0 0 20 20\" xmlns=\"http://www.w3.org/2000/svg\" fill-rule=\"evenodd\" clip-rule=\"evenodd\" stroke-linejoin=\"round\" stroke-miterlimit=\"1.414\"><rect x=\"2.714\" y=\"5.492\" width=\"1.048\" height=\"9.017\" fill=\"#555d66\"></rect><rect x=\"16.265\" y=\"5.498\" width=\"1.023\" height=\"9.003\" fill=\"#555d66\"></rect><rect x=\"5.518\" y=\"2.186\" width=\"8.964\" height=\"2.482\" fill=\"#272b2f\"></rect><rect x=\"5.487\" y=\"16.261\" width=\"9.026\" height=\"1.037\" fill=\"#555d66\"></rect></svg>)\n },\n {\n label:'Right',\n icon: (<svg width=\"20px\" height=\"20px\" viewBox=\"0 0 20 20\" xmlns=\"http://www.w3.org/2000/svg\" fill-rule=\"evenodd\" clip-rule=\"evenodd\" stroke-linejoin=\"round\" stroke-miterlimit=\"1.414\"><rect x=\"2.714\" y=\"5.492\" width=\"1.046\" height=\"9.017\" fill=\"#555d66\"></rect><rect x=\"15.244\" y=\"5.498\" width=\"2.518\" height=\"9.003\" fill=\"#272b2f\"></rect><rect x=\"5.518\" y=\"2.719\" width=\"8.964\" height=\"0.954\" fill=\"#555d66\"></rect><rect x=\"5.487\" y=\"16.308\" width=\"9.026\" height=\"0.99\" fill=\"#555d66\"></rect></svg>)\n },\n {\n label:'Bottom',\n icon: (<svg width=\"20px\" height=\"20px\" viewBox=\"0 0 20 20\" xmlns=\"http://www.w3.org/2000/svg\" fill-rule=\"evenodd\" clip-rule=\"evenodd\" stroke-linejoin=\"round\" stroke-miterlimit=\"1.414\"><rect x=\"2.714\" y=\"5.492\" width=\"1\" height=\"9.017\" fill=\"#555d66\"></rect><rect x=\"16.261\" y=\"5.498\" width=\"1.027\" height=\"9.003\" fill=\"#555d66\"></rect><rect x=\"5.518\" y=\"2.719\" width=\"8.964\" height=\"0.968\" fill=\"#555d66\"></rect><rect x=\"5.487\" y=\"15.28\" width=\"9.026\" height=\"2.499\" fill=\"#272b2f\"></rect></svg>)\n },\n {\n label:'Left',\n icon: (<svg width=\"20px\" height=\"20px\" viewBox=\"0 0 20 20\" xmlns=\"http://www.w3.org/2000/svg\" fill-rule=\"evenodd\" clip-rule=\"evenodd\" stroke-linejoin=\"round\" stroke-miterlimit=\"1.414\"><rect x=\"2.202\" y=\"5.492\" width=\"2.503\" height=\"9.017\" fill=\"#272b2f\"></rect><rect x=\"16.276\" y=\"5.498\" width=\"1.012\" height=\"9.003\" fill=\"#555d66\"></rect><rect x=\"5.518\" y=\"2.719\" width=\"8.964\" height=\"0.966\" fill=\"#555d66\"></rect><rect x=\"5.487\" y=\"16.303\" width=\"9.026\" height=\"0.995\" fill=\"#555d66\"></rect></svg>)\n },\n ];\n\n const blockIcon = (\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\"><path fill=\"none\" d=\"M0 0h24v24H0V0z\"/><path d=\"M19 1H5c-1.1 0-1.99.9-1.99 2L3 15.93c0 .69.35 1.3.88 1.66L12 23l8.11-5.41c.53-.36.88-.97.88-1.66L21 3c0-1.1-.9-2-2-2zm-7 19.6l-7-4.66V3h14v12.93l-7 4.67zm-2.01-7.42l-2.58-2.59L6 12l4 4 8-8-1.42-1.42z\"/></svg>\n );\n\n class AdvIconEdit extends Component {\n\n constructor() {\n super( ...arguments );\n this.state = {\n showPopup: false,\n currentItem: 0,\n iconSelected: '',\n selectedIcon: false,\n iconThemeSelected: 'outlined',\n selectedIconTheme: false,\n };\n this.togglePopup = this.togglePopup.bind(this);\n this.handleIcon = this.handleIcon.bind(this);\n this.handleIconTheme = this.handleIconTheme.bind(this);\n }\n\n componentWillMount() {\n const { attributes, setAttributes } = this.props;\n const currentBlockConfig = advgbDefaultConfig['advgb-icon'];\n\n // No override attributes of blocks inserted before\n if (attributes.changed !== true) {\n if (typeof currentBlockConfig === 'object' && currentBlockConfig !== null) {\n Object.keys(currentBlockConfig).map((attribute) => {\n if (typeof attributes[attribute] === 'boolean') {\n attributes[attribute] = !!currentBlockConfig[attribute];\n } else {\n attributes[attribute] = currentBlockConfig[attribute];\n }\n });\n }\n\n // Finally set changed attribute to true, so we don't modify anything again\n setAttributes( { changed: true } );\n }\n }\n\n componentDidMount() {\n const { attributes, setAttributes, clientId } = this.props;\n const { blockIDX } = attributes;\n\n setAttributes( { blockIDX: `advgb-icon-${clientId}` } );\n }\n\n componentDidUpdate() {\n const {currentItem, iconSelected, selectedIcon, iconThemeSelected} = this.state;\n if(selectedIcon) {\n this.setState({\n selectedIcon: false,\n selectedIconTheme: false\n });\n this.updateItems(parseInt(currentItem), {icon: iconSelected, iconTheme: iconThemeSelected});\n }\n }\n\n handleIcon(iconValue) {\n this.setState({\n iconSelected: iconValue,\n selectedIcon: true,\n });\n }\n\n handleIconTheme(iconThemeValue) {\n this.setState({\n iconThemeSelected: iconThemeValue,\n selectedIconTheme: true,\n });\n }\n\n updateItems(idx, data) {\n const { attributes, setAttributes } = this.props;\n const { items } = attributes;\n\n const newItems = items.map( (item, index) => {\n if (idx === index) {\n item = { ...item, ...data };\n }\n return item;\n } );\n\n setAttributes( { items: newItems } );\n this.setState( { searchedText: '' } )\n }\n\n getItemData(idx, dataName) {\n const { attributes } = this.props;\n const { items } = attributes;\n\n let data = '';\n\n items.map( (item, index) => {\n if (parseInt(idx) === index) {\n for (let key in item){\n if( (dataName === key) && item.hasOwnProperty(key) ) {\n data = item[key];\n }\n }\n }\n } );\n\n return data;\n }\n\n togglePopup() {\n const {showPopup} = this.state;\n\n this.setState( {\n showPopup: !showPopup\n } );\n }\n\n render() {\n const { attributes, setAttributes } = this.props;\n const {\n blockIDX,\n items,\n numberItem,\n tAlign,\n isPreview\n } = attributes;\n\n const { showPopup, currentItem } = this.state;\n\n const blockWrapClass = [\n 'advgb-icon-wrapper'\n ].filter( Boolean ).join( ' ' );\n\n const blockClass = [\n 'advgb-icons',\n ].filter( Boolean ).join( ' ' );\n\n let i = 0;\n let j = 0;\n\n return (\n isPreview ?\n <img alt={__('Advanced Icon', 'advanced-gutenberg')} width='100%' src={previewImageData}/>\n :\n <Fragment>\n <BlockControls>\n <AlignmentToolbar\n value={ tAlign }\n onChange={ ( value ) => setAttributes( { tAlign: value } ) }\n />\n </BlockControls>\n <InspectorControls>\n <PanelBody title={ __( 'Icon Count', 'advanced-gutenberg' ) }>\n <RangeControl\n label={ __( 'Number of Icons', 'advanced-gutenberg' ) }\n min={ 1 }\n max={ 10 }\n value={ numberItem }\n onChange={ (value) => setAttributes( { numberItem: value } ) }\n />\n </PanelBody>\n {items.map( (item, idx) => {\n i++;\n if (i > numberItem) return false;\n return (\n <Fragment>\n <PanelBody\n title={ __( `Icon ${i} Settings`, 'advanced-gutenberg' ) }\n initialOpen={ false }\n >\n\n <BaseControl\n label={ __( 'Icon Library (Material Icon)', 'advanced-gutenberg' )}\n >\n <Button\n className=\"button button-large advgb-browse-image-btn\"\n data-currentItem={idx}\n onClick={ (event) => {\n if(!showPopup) {\n this.togglePopup();\n this.setState({ currentItem: event.target.attributes.getNamedItem('data-currentItem').value });\n }\n }\n }\n >\n { __( 'Icon Selection', 'advanced-gutenberg' ) }\n </Button>\n </BaseControl>\n\n <SelectControl\n label={ __('Icon Style', 'advanced-gutenberg') }\n value={ item.style }\n options={ [\n { label: __('Default', 'advanced-gutenberg'), value: 'default' },\n { label: __('Stacked', 'advanced-gutenberg'), value: 'stacked' },\n ] }\n onChange={ ( value ) => this.updateItems(idx, { style: value } ) }\n />\n <RangeControl\n label={ __( 'Icon Size', 'advanced-gutenberg' ) }\n min={ 10 }\n max={ 250 }\n value={ item.size }\n onChange={ (value) => this.updateItems(idx, { size: value } ) }\n />\n <AdvColorControl\n label={ __('Icon Color', 'advanced-gutenberg') }\n value={ item.color }\n onChange={ (value) => this.updateItems(idx, { color: value } ) }\n />\n <AdvColorControl\n label={ __('Icon Background', 'advanced-gutenberg') }\n value={ item.bgColor }\n onChange={ (value) => this.updateItems(idx, { bgColor: value } ) }\n />\n {item.style && item.style === 'stacked' &&\n <Fragment>\n <BaseControl\n label={ __( 'Border', 'advanced-gutenberg' ) }\n className=\"advgb-control-header\"\n />\n <AdvColorControl\n label={__( 'Border Color', 'advanced-gutenberg' )}\n value={item.borderColor}\n onChange={( value ) => this.updateItems( idx, { borderColor: value } )}\n />\n <RangeControl\n label={__( 'Border Size(px)', 'advanced-gutenberg' )}\n min={0}\n max={20}\n value={item.borderSize}\n onChange={( value ) => this.updateItems( idx, { borderSize: value } )}\n />\n <RangeControl\n label={__( 'Border Radius(%)', 'advanced-gutenberg' )}\n min={0}\n max={50}\n value={item.borderRadius}\n onChange={( value ) => this.updateItems( idx, { borderRadius: value } )}\n />\n </Fragment>\n }\n <BaseControl\n label={ __( 'Link', 'advanced-gutenberg' ) }\n className=\"advgb-control-header\"\n />\n <BaseControl\n label={ __( 'Link', 'advanced-gutenberg' ) }\n >\n <URLInput\n value={item.link}\n onChange={ (value) => this.updateItems(idx, { link: value } ) }\n autoFocus={false}\n isFullWidth\n hasBorder\n />\n </BaseControl>\n <SelectControl\n label={ __('Link Target', 'advanced-gutenberg') }\n value={ item.linkTarget }\n options={ [\n { label: __('Same Window', 'advanced-gutenberg'), value: '_self' },\n { label: __('New Window', 'advanced-gutenberg'), value: '_blank' },\n ] }\n onChange={ ( value ) => this.updateItems(idx, { linkTarget: value } ) }\n />\n <TextControl\n label={ __('Title for Accessibility', 'advanced-gutenberg') }\n value={ item.title }\n onChange={ ( value ) => this.updateItems(idx, { title: value } ) }\n />\n {item.style && item.style === 'stacked' &&\n <Fragment>\n <BaseControl\n label={ __( 'Padding', 'advanced-gutenberg' ) }\n className=\"advgb-control-header\"\n />\n <div className=\"advgb-controls-title\">\n <span>{__( 'Unit', 'advanced-gutenberg' )}</span>\n <div className=\"advgb-unit-wrapper\" key=\"unit\">\n {[ 'px', 'em', 'vh', '%' ].map( ( unit, uIdx ) => (\n <span\n className={`advgb-unit ${item.paddingUnit === unit ? 'selected' : ''}`}\n key={uIdx}\n onClick={() => this.updateItems( idx, { paddingUnit: unit } )}\n >\n {unit}\n </span>\n ) )}\n </div>\n </div>\n {\n MARGIN_PADDING_CONTROLS.map((pos, mpIdx) => (\n <RangeControl\n className=\"advgb-padding-margin-control\"\n key={mpIdx}\n label={pos.icon}\n beforeIcon={pos.icon}\n value={item['padding' + pos.label]}\n min={0}\n max={180}\n onChange={( value ) => this.updateItems( idx, { ['padding' + pos.label]: value } )}\n />\n ) )\n }\n </Fragment>\n }\n <BaseControl\n label={ __( 'Margin', 'advanced-gutenberg' ) }\n className=\"advgb-control-header\"\n />\n <div className=\"advgb-controls-title\">\n <span>{__( 'Unit', 'advanced-gutenberg' )}</span>\n <div className=\"advgb-unit-wrapper\" key=\"unit\">\n {[ 'px', 'em', 'vh', '%' ].map( ( unit, uIdx ) => (\n <span\n className={`advgb-unit ${item.marginUnit === unit ? 'selected' : ''}`}\n key={uIdx}\n onClick={() => this.updateItems( idx, { marginUnit: unit } )}\n >\n {unit}\n </span>\n ) )}\n </div>\n </div>\n {\n MARGIN_PADDING_CONTROLS.map((pos, mpIdx) => (\n <RangeControl\n className=\"advgb-padding-margin-control\"\n key={mpIdx}\n label={pos.icon}\n beforeIcon={pos.icon}\n value={item['margin' + pos.label]}\n min={0}\n max={180}\n onChange={( value ) => this.updateItems( idx, { ['margin' + pos.label]: value } )}\n />\n ) )\n }\n </PanelBody>\n </Fragment>\n );\n }\n )}\n </InspectorControls>\n <div className={blockWrapClass} id={blockIDX}>\n <div className={ blockClass } style={ {textAlign: tAlign} }>\n {items.map( (item, idx) => {\n j++;\n if (j > numberItem) return false;\n const advgbIconClass = [\n `advgb-icon-style-${item.style}`,\n 'advgb-icon-wrap',\n `advgb-item-${idx}`,\n ].filter( Boolean ).join( ' ' );\n\n const iconWrapClass = [\n 'advgb-icon',\n `advgb-icon-${item.icon}`\n ].filter( Boolean ).join(' ');\n\n const iconClass = [\n item.iconType === 'material' && 'material-icons',\n item.iconTheme !== '' && `-${item.iconTheme}`\n ].filter( Boolean ).join('');\n\n const iconWrapStyles = {\n display: 'flex',\n alignItems: 'center',\n marginTop: item.marginTop + item.marginUnit,\n marginBottom: item.marginBottom + item.marginUnit,\n marginLeft: item.marginLeft + item.marginUnit,\n marginRight: item.marginRight + item.marginUnit,\n paddingTop: item.style !== 'default' ? item.paddingTop + item.paddingUnit : 0,\n paddingBottom: item.style !== 'default' ? item.paddingBottom + item.paddingUnit : 0,\n paddingLeft: item.style !== 'default' ? item.paddingLeft + item.paddingUnit : 0,\n paddingRight: item.style !== 'default' ? item.paddingRight + item.paddingUnit : 0,\n borderWidth: item.style !== 'default' ? item.borderSize + 'px' : 0,\n borderStyle: 'solid',\n borderColor: item.borderColor,\n background: item.bgColor,\n borderRadius: item.borderRadius + '%'\n };\n\n const iconStyles = {\n fontSize: item.size + 'px',\n color: item.color\n };\n\n return (\n <Fragment>\n <div className={advgbIconClass}>\n <div className={iconWrapClass} style={iconWrapStyles}>\n <i className={iconClass} style={iconStyles}>{item.icon}</i>\n </div>\n </div>\n </Fragment>\n );\n })}\n </div>\n {\n showPopup ?\n <IconListPopupHook\n content='iconpopup'\n closePopup={ () => {\n if(showPopup) {\n this.togglePopup();\n }\n } }\n onSelectIcon={ this.handleIcon }\n onSelectIconTheme={ this.handleIconTheme }\n selectedIcon={this.getItemData(currentItem, 'icon')}\n selectedIconTheme={this.getItemData(currentItem, 'iconTheme')}\n />\n :\n null\n }\n </div>\n </Fragment>\n );\n }\n }\n\n const blockAttrs = {\n blockIDX: {\n type: 'string',\n },\n items: {\n type: 'array',\n default: times(10, () => (\n {\n icon: 'beenhere',\n iconType: 'material',\n iconTheme: 'outlined',\n size: 120,\n color: '#111111',\n style: 'default',\n bgColor: '',\n borderColor: '#111',\n borderSize: 2,\n borderRadius: 0,\n paddingTop: 20,\n paddingBottom: 20,\n paddingLeft: 20,\n paddingRight: 20,\n marginTop: 0,\n marginBottom: 0,\n marginLeft: 0,\n marginRight: 40,\n paddingUnit: 'px',\n marginUnit: 'px',\n link: '',\n linkTarget: '_self',\n title: ''\n }\n ))\n },\n numberItem: {\n type: 'number',\n default: 2,\n },\n changed: {\n type: 'boolean',\n default: false,\n },\n tAlign: {\n type: 'string',\n default: 'center',\n },\n isPreview: {\n type: 'boolean',\n default: false,\n }\n };\n\n registerBlockType( 'advgb/icon', {\n title: __( 'Icon - PublishPress', 'advanced-gutenberg' ),\n description: __( 'Icon block with more options and styles.', 'advanced-gutenberg' ),\n icon: {\n src: blockIcon,\n foreground: typeof advgbBlocks !== 'undefined' ? advgbBlocks.color : undefined,\n },\n category: 'advgb-category',\n keywords: [ __( 'icon', 'advanced-gutenberg' ), __( 'advanced icon', 'advanced-gutenberg' ), ],\n attributes: blockAttrs,\n supports: {\n align: [\"left\", \"center\", \"right\"],\n },\n example: {\n attributes: {\n isPreview: true\n },\n },\n edit: AdvIconEdit,\n save: ( { attributes } ) => {\n const {\n blockIDX,\n className,\n items,\n numberItem\n } = attributes;\n\n const blockWrapClass = [\n 'wp-block-advgb-icon',\n 'icon-wrapper',\n className,\n blockIDX\n ].filter( Boolean ).join( ' ' );\n\n const blockClass = [\n 'advgb-icons',\n ].filter( Boolean ).join( ' ' );\n\n let i = 0;\n return (\n <Fragment>\n <div className={blockWrapClass}>\n <div className={ blockClass }>\n {items.map( (item, idx) => {\n i++;\n if (i > numberItem) return false;\n\n let itemLink = item.link;\n if (!item.link.match(/^[a-zA-Z]+:\\/\\//))\n {\n itemLink = 'http://' + item.link;\n }\n const advgbIconClass = [\n `advgb-icon-style-${item.style}`,\n 'advgb-icon-wrap',\n `advgb-item-${idx}`,\n ].filter( Boolean ).join( ' ' );\n\n const iconWrapClass = [\n 'advgb-icon',\n `advgb-icon-${item.icon}`\n ].filter( Boolean ).join(' ');\n\n const iconClass = [\n item.iconType === 'material' && 'material-icons',\n item.iconTheme !== '' && `-${item.iconTheme}`\n ].filter( Boolean ).join('');\n\n return (\n <Fragment>\n <div className={advgbIconClass}>\n {item.link !== '' && <a href={itemLink} target={item.linkTarget} title={item.title} rel=\"noopener noreferrer\">\n <span className={iconWrapClass}>\n <i className={iconClass}>{item.icon}</i>\n </span>\n </a>\n }\n {item.link === '' &&\n <span className={iconWrapClass}>\n <i className={iconClass}>{item.icon}</i>\n </span>\n }\n </div>\n </Fragment>\n );\n })}\n </div>\n </div>\n </Fragment>\n )\n },\n deprecated: [\n {\n attributes: blockAttrs,\n save: ( { attributes } ) => {\n const {\n blockIDX,\n items,\n numberItem\n } = attributes;\n\n const blockWrapClass = [\n 'wp-block-advgb-icon',\n 'icon-wrapper',\n blockIDX\n ].filter( Boolean ).join( ' ' );\n\n const blockClass = [\n 'advgb-icons',\n ].filter( Boolean ).join( ' ' );\n\n let i = 0;\n return (\n <Fragment>\n <div className={blockWrapClass}>\n <div className={ blockClass }>\n {items.map( (item, idx) => {\n i++;\n if (i > numberItem) return false;\n const advgbIconClass = [\n `advgb-icon-style-${item.style}`,\n 'advgb-icon-wrap',\n `advgb-item-${idx}`,\n ].filter( Boolean ).join( ' ' );\n\n const iconWrapClass = [\n 'advgb-icon',\n `advgb-icon-${item.icon}`\n ].filter( Boolean ).join(' ');\n\n const iconClass = [\n item.iconType === 'material' && 'material-icons',\n item.iconTheme !== '' && `-${item.iconTheme}`\n ].filter( Boolean ).join('');\n\n return (\n <Fragment>\n <div className={advgbIconClass}>\n {item.link !== '' && <a href={item.link} title={item.title}>\n <div className={iconWrapClass}>\n <i className={iconClass}>{item.icon}</i>\n </div>\n </a>\n }\n {item.link === '' &&\n <div className={iconWrapClass}>\n <i className={iconClass}>{item.icon}</i>\n </div>\n }\n </div>\n </Fragment>\n );\n })}\n </div>\n </div>\n </Fragment>\n )\n },\n },\n {\n attributes: blockAttrs,\n save: ( { attributes } ) => {\n const {\n blockIDX,\n items,\n numberItem\n } = attributes;\n\n const blockWrapClass = [\n 'wp-block-advgb-icon',\n 'icon-wrapper',\n ].filter( Boolean ).join( ' ' );\n\n const blockClass = [\n 'advgb-icons',\n ].filter( Boolean ).join( ' ' );\n\n let i = 0;\n return (\n <Fragment>\n <div className={blockWrapClass} id={blockIDX}>\n <div className={ blockClass }>\n {items.map( (item, idx) => {\n i++;\n if (i > numberItem) return false;\n const advgbIconClass = [\n `advgb-icon-style-${item.style}`,\n 'advgb-icon-wrap',\n `advgb-item-${idx}`,\n ].filter( Boolean ).join( ' ' );\n\n const iconWrapClass = [\n 'advgb-icon',\n `advgb-icon-${item.icon}`\n ].filter( Boolean ).join(' ');\n\n const iconClass = [\n item.iconType === 'material' && 'material-icons',\n item.iconTheme !== '' && `-${item.iconTheme}`\n ].filter( Boolean ).join('');\n\n return (\n <Fragment>\n <div className={advgbIconClass}>\n {item.link !== '' && <a href={item.link} title={item.title}>\n <div className={iconWrapClass}>\n <i className={iconClass}>{item.icon}</i>\n </div>\n </a>\n }\n {item.link === '' &&\n <div className={iconWrapClass}>\n <i className={iconClass}>{item.icon}</i>\n </div>\n }\n </div>\n </Fragment>\n );\n })}\n </div>\n </div>\n </Fragment>\n )\n }\n }\n ]\n });\n}) ( wp.i18n, wp.blocks, wp.element, wp.blockEditor, wp.components, lodash );\n","(function ( wpI18n, wpBlocks, wpElement, wpBlockEditor, wpComponents ) {\n wpBlockEditor = wp.blockEditor || wp.editor;\n const { __ } = wpI18n;\n const { Component, Fragment } = wpElement;\n const { registerBlockType } = wpBlocks;\n const { InspectorControls, BlockControls, RichText, PanelColorSettings, MediaUpload } = wpBlockEditor;\n const { RangeControl, PanelBody, ToggleControl, SelectControl, TextControl, Button, ToolbarGroup, ToolbarButton, FocalPointPicker } = wpComponents;\n\n const previewImageData = 'data:image/png;base64,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';\n class AdvImage extends Component {\n constructor() {\n super(...arguments);\n this.state = {\n currentEdit: '',\n }\n }\n\n componentWillMount() {\n const { attributes, setAttributes } = this.props;\n const currentBlockConfig = advgbDefaultConfig['advgb-image'];\n\n // No override attributes of blocks inserted before\n if (attributes.changed !== true) {\n if (typeof currentBlockConfig === 'object' && currentBlockConfig !== null) {\n Object.keys(currentBlockConfig).map((attribute) => {\n if (typeof attributes[attribute] === 'boolean') {\n attributes[attribute] = !!currentBlockConfig[attribute];\n } else {\n attributes[attribute] = currentBlockConfig[attribute];\n }\n });\n }\n\n // Finally set changed attribute to true, so we don't modify anything again\n setAttributes( { changed: true } );\n }\n }\n\n componentDidMount() {\n const { attributes, setAttributes, clientId } = this.props;\n const { blockIDX } = attributes;\n\n setAttributes({blockIDX: `advgb-img-${clientId}`});\n\n // Reset attributes when Pro is not available\n if( advgbBlocks.advgb_pro !== 'undefined' && advgbBlocks.advgb_pro !== '1' ) {\n setAttributes( {\n titleTag: 'h4',\n subtitleTag: 'p'\n } );\n }\n }\n\n render() {\n const { currentEdit } = this.state;\n const { attributes, setAttributes, isSelected } = this.props;\n const {\n blockIDX, openOnClick, openUrl, linkInNewTab, imageUrl, imageID,\n title, titleColor, subtitle, subtitleColor, overlayColor, defaultOpacity,\n fullWidth, width, height, vAlign, hAlign, overlayOpacity, focalPoint,\n isPreview, titleTag, subtitleTag\n } = attributes;\n const blockClassName = [\n 'advgb-image-block',\n fullWidth && 'full-width',\n blockIDX,\n ].filter( Boolean ).join( ' ' );\n\n return (\n isPreview ?\n <img alt={__('Advanced Image', 'advanced-gutenberg')} width='100%' src={previewImageData}/>\n :\n <Fragment>\n {imageID && (\n <BlockControls>\n <ToolbarGroup>\n <MediaUpload\n allowedTypes={ ['image'] }\n value={ imageID }\n onSelect={ (image) => setAttributes( { imageUrl: image.url, imageID: image.id } ) }\n render={ ( { open } ) => (\n <ToolbarButton\n label={ __( 'Change image', 'advanced-gutenberg' ) }\n icon=\"edit\"\n onClick={ open }\n />\n ) }\n />\n <ToolbarButton\n label={ __( 'Remove image', 'advanced-gutenberg' ) }\n icon=\"no\"\n onClick={ () => setAttributes( { imageUrl: undefined, imageID: undefined } ) }\n />\n </ToolbarGroup>\n </BlockControls>\n ) }\n <InspectorControls>\n <PanelBody title={ __( 'Advanced Image', 'advanced-gutenberg' ) }>\n <SelectControl\n label={ __( 'Action on click', 'advanced-gutenberg' ) }\n value={ openOnClick }\n options={ [\n { label: __( 'None', 'advanced-gutenberg' ), value: 'none' },\n { label: __( 'Open image in lightbox', 'advanced-gutenberg' ), value: 'lightbox' },\n { label: __( 'Open custom URL', 'advanced-gutenberg' ), value: 'url' },\n ] }\n onChange={ (value) => setAttributes( { openOnClick: value } ) }\n />\n {openOnClick === 'url' &&\n <Fragment>\n <TextControl\n label={ [\n __( 'Link URL', 'advanced-gutenberg' ),\n (openUrl && <a href={ openUrl || '#' } key=\"advgb_image_link_url\" target=\"_blank\" style={ { float: 'right' } }>\n { __( 'Preview', 'advanced-gutenberg' ) }\n </a>)\n ] }\n value={ openUrl }\n placeholder={ __( 'Enter URL…', 'advanced-gutenberg' ) }\n onChange={ ( text ) => setAttributes( { openUrl: text } ) }\n />\n <ToggleControl\n label={ __( 'Open link in new tab', 'advanced-gutenberg' ) }\n checked={ linkInNewTab }\n onChange={ () => setAttributes( { linkInNewTab: !linkInNewTab } ) }\n />\n </Fragment>\n }\n <PanelBody title={ __( 'Image Size', 'advanced-gutenberg' ) }>\n <ToggleControl\n label={ __( 'Full width', 'advanced-gutenberg' ) }\n checked={ fullWidth }\n onChange={ () => setAttributes( { fullWidth: !fullWidth } ) }\n />\n <RangeControl\n label={ __( 'Height', 'advanced-gutenberg' ) }\n value={ height }\n min={ 100 }\n max={ 1000 }\n onChange={ (value) => setAttributes( { height: value } ) }\n />\n {!fullWidth &&\n <RangeControl\n label={ __( 'Width', 'advanced-gutenberg' ) }\n value={ width }\n min={ 200 }\n max={ 1300 }\n onChange={ (value) => setAttributes( { width: value } ) }\n />}\n {imageUrl && (\n <FocalPointPicker\n label={ __( 'Focal Point Picker', 'advanced-gutenberg' ) }\n url={ imageUrl }\n value={ focalPoint }\n onChange={ ( value ) => setAttributes( { focalPoint: value } ) }\n />\n ) }\n <RangeControl\n label={ __( 'Overlay opacity default', 'advanced-gutenberg' ) }\n value={ defaultOpacity }\n min={ 0 }\n max={ 100 }\n onChange={ (value) => setAttributes( { defaultOpacity: value } ) }\n />\n <RangeControl\n label={ __( 'Overlay opacity hover', 'advanced-gutenberg' ) }\n value={ overlayOpacity }\n min={ 0 }\n max={ 100 }\n onChange={ (value) => setAttributes( { overlayOpacity: value } ) }\n />\n </PanelBody>\n <PanelColorSettings\n title={ __( 'Color Settings', 'advanced-gutenberg' ) }\n initialOpen={ false }\n colorSettings={ [\n {\n label: __( 'Title Color', 'advanced-gutenberg' ),\n value: titleColor,\n onChange: ( value ) => setAttributes( { titleColor: value === undefined ? '#fff' : value } ),\n },\n {\n label: __( 'Subtitle Color', 'advanced-gutenberg' ),\n value: subtitleColor,\n onChange: ( value ) => setAttributes( { subtitleColor: value === undefined ? '#fff' : value } ),\n },\n {\n label: __( 'Overlay Color', 'advanced-gutenberg' ),\n value: overlayColor,\n onChange: ( value ) => setAttributes( { overlayColor: value === undefined ? '#000' : value } ),\n },\n ] }\n />\n <PanelBody title={ __( 'Text Alignment', 'advanced-gutenberg' ) } initialOpen={false}>\n <SelectControl\n label={ __( 'Vertical Alignment', 'advanced-gutenberg' ) }\n value={vAlign}\n options={ [\n { label: __( 'Top', 'advanced-gutenberg' ), value: 'flex-start' },\n { label: __( 'Center', 'advanced-gutenberg' ), value: 'center' },\n { label: __( 'Bottom', 'advanced-gutenberg' ), value: 'flex-end' },\n ] }\n onChange={ (value) => setAttributes( { vAlign: value } ) }\n />\n <SelectControl\n label={ __( 'Horizontal Alignment', 'advanced-gutenberg' ) }\n value={hAlign}\n options={ [\n { label: __( 'Left', 'advanced-gutenberg' ), value: 'flex-start' },\n { label: __( 'Center', 'advanced-gutenberg' ), value: 'center' },\n { label: __( 'Right', 'advanced-gutenberg' ), value: 'flex-end' },\n ] }\n onChange={ (value) => setAttributes( { hAlign: value } ) }\n />\n </PanelBody>\n </PanelBody>\n </InspectorControls>\n <div className={ blockClassName }\n style={ {\n backgroundImage: `url(${imageUrl || advgbBlocks.image_holder})`,\n backgroundPosition: focalPoint ? `${ focalPoint.x * 100 }% ${ focalPoint.y * 100 }%` : undefined,\n height: height,\n width: width,\n justifyContent: vAlign,\n alignItems: hAlign,\n } }\n >\n <span className=\"advgb-image-overlay\"\n style={ { backgroundColor: overlayColor, opacity: defaultOpacity/100 } }\n />\n {!imageID &&\n <MediaUpload\n allowedTypes={ ['image'] }\n value={ imageID }\n onSelect={ (image) => setAttributes( { imageUrl: image.url, imageID: image.id, focalPoint: {\"x\":\"0.50\",\"y\":\"0.50\"} } ) }\n render={ ( { open } ) => (\n <Button\n className=\"button button-large advgb-browse-image-btn\"\n onClick={ open }\n >\n { __( 'Open media library', 'advanced-gutenberg' ) }\n </Button>\n ) }\n />\n }\n <RichText\n tagName={ titleTag }\n className=\"advgb-image-title\"\n value={ title }\n onChange={ (value) => setAttributes( { title: value.trim() } ) }\n style={ { color: titleColor } }\n isSelected={ isSelected && currentEdit === 'title' }\n unstableOnFocus={ () => this.setState( { currentEdit: 'title' } ) }\n unstableOnSplit={ () => null }\n placeholder={ __( 'Enter title…', 'advanced-gutenberg' ) }\n allowedFormats={ [] }\n />\n <RichText\n tagName={ subtitleTag }\n className=\"advgb-image-subtitle\"\n value={ subtitle }\n onChange={ (value) => setAttributes( { subtitle: value.trim() } ) }\n style={ { color: subtitleColor } }\n isSelected={ isSelected && currentEdit === 'subtitle' }\n unstableOnFocus={ () => this.setState( { currentEdit: 'subtitle' } ) }\n unstableOnSplit={ () => null }\n placeholder={ __( 'Enter subtitle…', 'advanced-gutenberg' ) }\n allowedFormats={ [] }\n />\n <style>\n {`.${blockIDX}.advgb-image-block:hover .advgb-image-overlay {opacity: ${overlayOpacity/100} !important;}`}\n </style>\n </div>\n </Fragment>\n );\n }\n }\n\n const advImageBlockIcon = (\n <svg height=\"20\" viewBox=\"2 2 22 22\" width=\"20\" xmlns=\"http://www.w3.org/2000/svg\">\n <path d=\"M0 0h24v24H0V0z\" fill=\"none\"/>\n <path d=\"M1 5h2v14H1zm4 0h2v14H5zm17 0H10c-.55 0-1 .45-1 1v12c0 .55.45 1 1 1h12c.55 0 1-.45 1-1V6c0-.55-.45-1-1-1zM11 17l2.5-3.15L15.29 16l2.5-3.22L21 17H11z\"/>\n </svg>\n );\n\n const blockAttrs = {\n blockIDX: {\n type: 'string',\n },\n openOnClick: {\n type: 'string',\n default: 'none',\n },\n linkInNewTab: {\n type: 'boolean',\n default: true,\n },\n openUrl: {\n type: 'string',\n },\n imageUrl: {\n type: 'string',\n },\n imageID: {\n type: 'number',\n },\n title: {\n type: 'string',\n default: 'Image title',\n },\n titleColor: {\n type: 'string',\n default: '#fff',\n },\n subtitle: {\n type: 'string',\n default: 'Your subtitle here',\n },\n subtitleColor: {\n type: 'string',\n default: '#fff'\n },\n overlayColor: {\n type: 'string',\n default: '#000'\n },\n fullWidth: {\n type: 'boolean',\n default: true,\n },\n width: {\n type: 'number',\n default: 500,\n },\n height: {\n type: 'number',\n default: 500,\n },\n vAlign: {\n type: 'string',\n default: 'center',\n },\n hAlign: {\n type: 'string',\n default: 'center',\n },\n overlayOpacity: {\n type: 'number',\n default: 20,\n },\n defaultOpacity: {\n type: 'number',\n default: 40,\n },\n focalPoint: {\n type: 'object',\n },\n changed: {\n type: 'boolean',\n default: false,\n },\n isPreview: {\n type: 'boolean',\n default: false,\n },\n titleTag: {\n type: 'string',\n default: 'h4'\n },\n subtitleTag: {\n type: 'string',\n default: 'p'\n }\n };\n\n registerBlockType( 'advgb/image', {\n title: __( 'Image - PublishPress', 'advanced-gutenberg' ),\n description: __( 'Image/photo block with more options and styles.', 'advanced-gutenberg' ),\n icon: {\n src: advImageBlockIcon,\n foreground: typeof advgbBlocks !== 'undefined' ? advgbBlocks.color : undefined,\n },\n category: 'advgb-category',\n keywords: [ __( 'image', 'advanced-gutenberg' ), __( 'advanced image', 'advanced-gutenberg' ), __( 'photo', 'advanced-gutenberg' ), __( 'box', 'advanced-gutenberg' ) ],\n attributes: blockAttrs,\n example: {\n attributes: {\n isPreview: true\n },\n },\n supports: {\n align: true,\n anchor: true\n },\n edit: AdvImage,\n save: ( { attributes } ) => {\n const {\n blockIDX,\n openOnClick,\n openUrl,\n linkInNewTab,\n imageUrl,\n title,\n titleColor,\n subtitle,\n subtitleColor,\n overlayColor,\n fullWidth,\n width,\n height,\n vAlign,\n hAlign,\n focalPoint,\n titleTag,\n subtitleTag\n } = attributes;\n const linkURL = ( openOnClick === 'url' && !!openUrl ) ? openUrl : undefined;\n const blockClassName = [\n 'advgb-image-block',\n fullWidth && 'full-width',\n openOnClick === 'lightbox' && !!imageUrl && 'advgb-lightbox',\n blockIDX,\n ].filter( Boolean ).join( ' ' );\n\n return (\n <div className={ blockClassName }\n style={ {\n backgroundImage: `url(${imageUrl})`,\n backgroundPosition: focalPoint ? `${ focalPoint.x * 100 }% ${ focalPoint.y * 100 }%` : undefined,\n height: height,\n width: width,\n justifyContent: vAlign,\n alignItems: hAlign,\n } }\n data-image={ imageUrl }\n >\n <a className=\"advgb-image-overlay\"\n style={ { backgroundColor: overlayColor } }\n target={ linkInNewTab ? '_blank' : '_self' }\n rel=\"noopener noreferrer\"\n href={ linkURL }\n />\n {title && (\n <RichText.Content\n tagName={ titleTag }\n className=\"advgb-image-title\"\n style={ { color: titleColor } }\n value={ title }\n />\n ) }\n {subtitle && (\n <RichText.Content\n tagName={ subtitleTag }\n className=\"advgb-image-subtitle\"\n style={ { color: subtitleColor } }\n value={ subtitle }\n />\n ) }\n </div>\n );\n },\n deprecated: [\n {\n attributes: {\n ...blockAttrs,\n overlayColor: {\n type: 'string',\n default: '#2196f3',\n },\n fullWidth: {\n type: 'boolean',\n default: false,\n },\n },\n save: ( { attributes } ) => {\n const {\n blockIDX,\n openOnClick,\n openUrl,\n linkInNewTab,\n imageUrl,\n title,\n titleColor,\n subtitle,\n subtitleColor,\n overlayColor,\n fullWidth,\n width,\n height,\n vAlign,\n hAlign,\n focalPoint,\n } = attributes;\n const linkURL = ( openOnClick === 'url' && !!openUrl ) ? openUrl : undefined;\n const blockClassName = [\n 'advgb-image-block',\n fullWidth && 'full-width',\n openOnClick === 'lightbox' && !!imageUrl && 'advgb-lightbox',\n blockIDX,\n ].filter( Boolean ).join( ' ' );\n\n return (\n <div className={ blockClassName }\n style={ {\n backgroundImage: `url(${imageUrl})`,\n backgroundPosition: focalPoint ? `${ focalPoint.x * 100 }% ${ focalPoint.y * 100 }%` : undefined,\n height: height,\n width: width,\n justifyContent: vAlign,\n alignItems: hAlign,\n } }\n data-image={ imageUrl }\n >\n <a className=\"advgb-image-overlay\"\n style={ { backgroundColor: overlayColor } }\n target={ linkInNewTab ? '_blank' : '_self' }\n rel=\"noopener noreferrer\"\n href={ linkURL }\n />\n {title && (\n <h4 className=\"advgb-image-title\" style={ { color: titleColor } }>\n {title}\n </h4>\n ) }\n {subtitle && (\n <p className=\"advgb-image-subtitle\" style={ { color: subtitleColor } }>\n {subtitle}\n </p>\n ) }\n </div>\n );\n }\n },\n {\n attributes: blockAttrs,\n save: ( { attributes } ) => {\n const {\n openOnClick,\n openUrl,\n linkInNewTab,\n imageUrl,\n title,\n titleColor,\n subtitle,\n subtitleColor,\n overlayColor,\n fullWidth,\n width,\n height,\n vAlign,\n hAlign,\n } = attributes;\n const linkURL = ( openOnClick === 'url' && !!openUrl ) ? openUrl : undefined;\n const blockClassName = [\n 'advgb-image-block',\n fullWidth && 'full-width',\n openOnClick === 'lightbox' && !!imageUrl && 'advgb-lightbox',\n ].filter( Boolean ).join( ' ' );\n\n return (\n <div className={ blockClassName }\n style={ {\n backgroundImage: `url(${imageUrl})`,\n height: height,\n width: width,\n justifyContent: vAlign,\n alignItems: hAlign,\n } }\n data-image={ imageUrl }\n >\n <a className=\"advgb-image-overlay\"\n style={ { backgroundColor: overlayColor } }\n target={ linkInNewTab ? '_blank' : '_self' }\n rel=\"noopener noreferrer\"\n href={ linkURL }\n />\n {title && (\n <h4 className=\"advgb-image-title\" style={ { color: titleColor } }>\n {title}\n </h4>\n ) }\n {subtitle && (\n <p className=\"advgb-image-subtitle\" style={ { color: subtitleColor } }>\n {subtitle}\n </p>\n ) }\n </div>\n );\n },\n }\n ]\n } );\n})( wp.i18n, wp.blocks, wp.element, wp.blockEditor, wp.components );\n","(function (wpI18n, wpBlocks, wpElement, wpBlockEditor, wpComponents, wpData) {\n wpBlockEditor = wp.blockEditor || wp.editor;\n const {__} = wpI18n;\n const { Component, Fragment, renderToString, createElement } = wpElement;\n const { registerBlockType, createBlock } = wpBlocks;\n const { InspectorControls, RichText, ColorPalette, BlockControls, InnerBlocks } = wpBlockEditor;\n const { BaseControl, RangeControl, PanelBody, Dashicon, ToolbarGroup, ToolbarButton } = wpComponents;\n const { select, dispatch } = wpData;\n\n var parse = require('html-react-parser');\n\n const previewImageData = 'data:image/png;base64,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';\n\n let INNER_BLOCKS_TEMPLATE = [ [ 'advgb/list-item' ] ];\n\n class AdvList extends Component {\n constructor() {\n super(...arguments);\n\n this.state = {\n migrateValues: [],\n migrateStatus: null // Status to migrate from <li> to innerBlocks. true: initialized, false: finished\n }\n }\n\n componentWillMount() {\n const { attributes, setAttributes } = this.props;\n const currentBlockConfig = advgbDefaultConfig['advgb-list'];\n\n // No override attributes of blocks inserted before\n if (attributes.changed !== true) {\n if (typeof currentBlockConfig === 'object' && currentBlockConfig !== null) {\n Object.keys(currentBlockConfig).map((attribute) => {\n if (typeof attributes[attribute] === 'boolean') {\n attributes[attribute] = !!currentBlockConfig[attribute];\n } else {\n attributes[attribute] = currentBlockConfig[attribute];\n }\n });\n }\n\n // Finally set changed attribute to true, so we don't modify anything again\n setAttributes({changed: true});\n }\n\n // Copy values into a state to migrate to innerBlocks\n if( attributes.values.length\n && attributes.values[0].hasOwnProperty( 'type' )\n && attributes.values[0].type === 'li'\n ) {\n this.setState( {\n migrateValues: attributes.values,\n migrateStatus: true\n } );\n\n // Empty template to avoid adding an empty List item at the end of each migrated List\n INNER_BLOCKS_TEMPLATE = [];\n }\n }\n\n componentDidMount() {\n const { setAttributes, clientId } = this.props;\n\n setAttributes({\n id: 'advgblist-' + clientId\n });\n\n // Reset values attribute to default\n if( this.state.migrateStatus === true ) {\n setAttributes( {\n values: []\n } );\n }\n }\n\n componentDidUpdate( prevProps ) {\n const { clientId } = this.props;\n\n const { getBlockOrder } = select( 'core/block-editor' );\n const innerBlocks = getBlockOrder( clientId );\n\n if( this.state.migrateStatus === true\n && ! prevProps.attributes.values.length\n && this.state.migrateValues.length\n ) {\n\n // Migrate static HTML <li> elements to innerBlocks - since 3.1.3\n this.migrateToInnerBlocks( this.state.migrateValues );\n\n } else if( ! innerBlocks.length ) {\n\n // If no inner blocks, we add one\n const { insertBlock } = dispatch( 'core/block-editor' );\n\n insertBlock(\n createBlock( 'advgb/list-item' ),\n 0,\n clientId\n );\n\n } else {\n // Nothing to do here\n }\n }\n\n /**\n * Migrate static content from <li> tags to advgb/list-item innerBlocks\n *\n * @since 3.1.3\n *\n * @param {array} values Array of objects with list values\n *\n * @return {bool}\n */\n migrateToInnerBlocks( values ) {\n const { setAttributes, attributes, clientId } = this.props;\n const { insertBlock } = dispatch( 'core/block-editor' );\n\n let cancel = false;\n\n /* Convert from objects to HTML strings\n *\n * From:\n * {\n * \"type\": \"li\",\n * \"props\": {\n * \"children\": [\n * \"Lorem \",\n * {\n * \"type\": \"strong\",\n * \"props\": {\n * \"children\": [\n * \"ipsum\"\n * ]\n * }\n * },\n * \" dolor\"\n * ]\n * }\n * }\n *\n * To:\n * \"Lorem <strong>ipsum</strong> dolor\"\n */\n const parsedValues = values.map( ( item, n ) => {\n\n // Check if migration to innerBlocks was done before\n if( item.props === undefined ) {\n cancel = true;\n return;\n }\n\n return(\n item.props.children.map( ( child ) => {\n if ( typeof child === 'string' ) {\n return child;\n } else {\n return renderToString( createElement( child.type, child.props, child.props.children ) );\n }\n } )\n );\n } );\n\n // Don't continue. Migration to innerBlocks was done before\n if( cancel === true ) {\n return;\n }\n\n /* Convert each array value into a merged string\n *\n * From:\n * [\n * \"Lorem \",\n * \"<strong>ipsum</strong>\",\n * \" dolor\"\n * ]\n *\n * To:\n * \"Lorem <strong>ipsum</strong> dolor\"\n */\n const stringValues = parsedValues.map( ( item ) => {\n return item.join( '' );\n } );\n\n // Insert content as advgb/list-item blocks\n stringValues.forEach( ( item, index ) => {\n\n insertBlock(\n createBlock( 'advgb/list-item', {\n content: item\n } ),\n index,\n clientId\n );\n\n } );\n\n this.setState( { migrateStatus: false } );\n }\n\n render() {\n const listIcons = [\n {label: __('None', 'advanced-gutenberg'), value: ''},\n {label: __('Pushpin', 'advanced-gutenberg'), value: 'admin-post'},\n {label: __('Configuration', 'advanced-gutenberg'), value: 'admin-generic'},\n {label: __('Flag', 'advanced-gutenberg'), value: 'flag'},\n {label: __('Star', 'advanced-gutenberg'), value: 'star-filled'},\n {label: __('Checkmark', 'advanced-gutenberg'), value: 'yes'},\n {label: __('Checkmark 2', 'advanced-gutenberg'), value: 'yes-alt'},\n {label: __('Checkmark 3', 'advanced-gutenberg'), value: 'saved'},\n {label: __('Minus', 'advanced-gutenberg'), value: 'minus'},\n {label: __('Minus 2', 'advanced-gutenberg'), value: 'remove'},\n {label: __('Plus', 'advanced-gutenberg'), value: 'plus'},\n {label: __('Plus 2', 'advanced-gutenberg'), value: 'insert'},\n {label: __('Play', 'advanced-gutenberg'), value: 'controls-play'},\n {label: __('Arrow right', 'advanced-gutenberg'), value: 'arrow-right-alt'},\n {label: __('Arrow right 2', 'advanced-gutenberg'), value: 'arrow-right-alt2'},\n {label: __('X Cross 2', 'advanced-gutenberg'), value: 'no'},\n {label: __('X Cross', 'advanced-gutenberg'), value: 'dismiss'},\n {label: __('Warning', 'advanced-gutenberg'), value: 'warning'},\n {label: __('Help', 'advanced-gutenberg'), value: 'editor-help'},\n {label: __('Info', 'advanced-gutenberg'), value: 'info'},\n {label: __('Info 2', 'advanced-gutenberg'), value: 'info-outline'},\n {label: __('Circle', 'advanced-gutenberg'), value: 'marker'},\n ];\n const {\n attributes,\n setAttributes,\n className,\n clientId: blockID,\n } = this.props;\n const {\n id,\n values,\n icon,\n iconSize,\n iconColor,\n margin,\n padding,\n lineHeight,\n fontSize,\n isPreview,\n } = attributes;\n const listClassName = [\n className,\n id,\n icon && 'advgb-list',\n icon && `advgb-list-${icon}`\n ].filter(Boolean).join(' ');\n const size = typeof iconSize != 'undefined' ? parseInt(iconSize) : 16;\n const marg = typeof margin != 'undefined' ? parseInt(margin) : 2;\n const padd = typeof padding != 'undefined' ? parseInt(padding) * 2 : 4;\n\n return (\n isPreview ?\n <img alt={__('Advanced List', 'advanced-gutenberg')} width='100%' src={previewImageData}/>\n :\n <Fragment>\n <BlockControls>\n <ToolbarGroup>\n <ToolbarButton\n label={__('Refresh this list when it conflict with other lists styles', 'advanced-gutenberg')}\n icon=\"update\"\n onClick={() => setAttributes({id: 'advgblist-' + blockID})}\n />\n </ToolbarGroup>\n </BlockControls>\n <InspectorControls>\n <PanelBody title={__('Text Settings', 'advanced-gutenberg')} initialOpen={false}>\n <RangeControl\n label={__('Text size', 'advanced-gutenberg')}\n value={fontSize || ''}\n onChange={(size) => setAttributes({fontSize: size})}\n min={10}\n max={100}\n beforeIcon=\"editor-textcolor\"\n allowReset\n />\n </PanelBody>\n <PanelBody title={__('Icon Settings', 'advanced-gutenberg')}>\n <BaseControl label={__('List icon', 'advanced-gutenberg')}>\n <div className=\"advgb-icon-items-wrapper\">\n {listIcons.map((item, index) => (\n <div className=\"advgb-icon-item h20\" key={index}>\n <span onClick={() => setAttributes({icon: item.value})}\n className={[\n item.value === icon && 'active',\n item.value === '' && 'remove-icon',\n ].filter(Boolean).join(' ')}\n >\n <Dashicon icon={item.value}/>\n </span>\n </div>\n ))}\n </div>\n </BaseControl>\n {icon && (\n <Fragment>\n <PanelBody\n title={[\n __('Icon color', 'advanced-gutenberg'),\n <span key=\"advgb-list-icon-color\"\n className={`dashicons dashicons-${icon}`}\n style={{color: iconColor, marginLeft: '10px'}}/>\n ]}\n initialOpen={false}\n >\n <ColorPalette\n value={iconColor}\n onChange={(value) => setAttributes({iconColor: value === undefined ? '#000' : value})}\n />\n </PanelBody>\n <RangeControl\n label={__('Icon size', 'advanced-gutenberg')}\n value={iconSize || ''}\n onChange={(size) => setAttributes({iconSize: size})}\n min={10}\n max={100}\n allowReset\n />\n <RangeControl\n label={__('Line height', 'advanced-gutenberg')}\n value={lineHeight || ''}\n onChange={(size) => setAttributes({lineHeight: size})}\n min={0}\n max={100}\n allowReset\n />\n <RangeControl\n label={__('Margin', 'advanced-gutenberg')}\n value={margin || ''}\n onChange={(size) => setAttributes({margin: size})}\n min={0}\n max={100}\n allowReset\n />\n <RangeControl\n label={__('Padding', 'advanced-gutenberg')}\n value={padding || ''}\n onChange={(size) => setAttributes({padding: size})}\n min={0}\n max={100}\n allowReset\n />\n </Fragment>\n )}\n </PanelBody>\n </InspectorControls>\n <ul className={ listClassName }>\n <InnerBlocks\n template={ INNER_BLOCKS_TEMPLATE }\n templateLock={ false }\n allowedBlocks={ [\n 'advgb/list-item',\n ] }\n className={ listClassName }\n />\n </ul>\n <div>\n <style>\n {`.${id} li { font-size: ${fontSize}px; }`}\n </style>\n {icon &&\n <style>\n {`.${id} li {\n padding-left: ${size + padd}px;\n margin-left: 0;\n }\n .${id} li:before {\n font-size: ${iconSize}px;\n color: ${iconColor};\n line-height: ${lineHeight}px;\n margin: ${margin}px;\n padding: ${padding}px;\n margin-left: -${size + padd + marg}px\n }`}\n </style>\n }\n </div>\n </Fragment>\n )\n }\n }\n\n const listBlockIcon = (\n <svg height=\"20\" viewBox=\"2 2 22 22\" width=\"20\" xmlns=\"http://www.w3.org/2000/svg\">\n <path d=\"M3 13h2v-2H3v2zm0 4h2v-2H3v2zm0-8h2V7H3v2zm4 4h14v-2H7v2zm0 4h14v-2H7v2zM7 7v2h14V7H7z\"/>\n <path d=\"M0 0h24v24H0z\" fill=\"none\"/>\n </svg>\n );\n\n const listBlockAttrs = {\n id: {\n type: 'string'\n },\n icon: {\n type: 'string'\n },\n iconSize: {\n type: 'number',\n default: 16,\n },\n iconColor: {\n type: 'string',\n default: '#000',\n },\n fontSize: {\n type: 'number',\n default: 16,\n },\n lineHeight: {\n type: 'number',\n default: 18,\n },\n margin: {\n type: 'number',\n default: 2,\n },\n padding: {\n type: 'number',\n default: 2,\n },\n changed: {\n type: 'boolean',\n default: false,\n },\n isPreview: {\n type: 'boolean',\n default: false,\n },\n // Deprecated since 3.1.3\n values: {\n type: 'array',\n source: 'children',\n selector: 'ul',\n default: [],\n },\n };\n\n registerBlockType('advgb/list', {\n title: __('List - PublishPress', 'advanced-gutenberg'),\n description: __('List block with custom icons and styles.', 'advanced-gutenberg'),\n icon: {\n src: listBlockIcon,\n foreground: typeof advgbBlocks !== 'undefined' ? advgbBlocks.color : undefined,\n },\n category: 'advgb-category',\n keywords: [__('list', 'advanced-gutenberg'), __( 'advanced list', 'advanced-gutenberg' ), __('icon', 'advanced-gutenberg')],\n attributes: listBlockAttrs,\n example: {\n attributes: {\n isPreview: true\n },\n },\n transforms: {\n from: [\n {\n type: 'block',\n blocks: [ 'core/list' ],\n transform: ( attributes, innerBlocks ) => {\n\n const list = innerBlocks.map( ( item, index ) => {\n return createBlock(\n 'advgb/list-item',\n { ...attributes, content: innerBlocks[index].attributes.content }\n );\n } );\n\n return createBlock(\n 'advgb/list',\n { ...attributes, changed: false },\n list,\n )\n }\n }\n ],\n to: [\n {\n type: 'block',\n blocks: [ 'core/list' ],\n transform: ( attributes, innerBlocks ) => {\n\n const list = innerBlocks.map( ( item, index ) => {\n return createBlock(\n 'core/list-item',\n { ...attributes, content: innerBlocks[index].attributes.content }\n );\n } );\n\n return createBlock(\n 'core/list',\n { attributes },\n list,\n )\n }\n }\n ]\n },\n supports: {\n anchor: true,\n },\n edit: AdvList,\n save: function ({attributes}) {\n const {\n id,\n values,\n icon,\n } = attributes;\n const listClassName = [\n id,\n icon && 'advgb-list',\n icon && `advgb-list-${icon}`\n ].filter(Boolean).join(' ');\n\n return <div>\n <ul className={ listClassName }>\n <InnerBlocks.Content />\n </ul>\n </div>\n },\n deprecated: [\n {\n attributes: listBlockAttrs,\n supports: {\n anchor: true\n },\n save: ( { attributes } ) => {\n const {\n id,\n values,\n icon,\n } = attributes;\n const listClassName = [\n id,\n icon && 'advgb-list',\n icon && `advgb-list-${icon}`\n ].filter(Boolean).join(' ');\n\n return <div>\n <ul className={listClassName}>\n {values}\n </ul>\n </div>\n }\n }\n ]\n });\n})(wp.i18n, wp.blocks, wp.element, wp.blockEditor, wp.components, wp.data);\n","var domToReact = require('./lib/dom-to-react');\nvar htmlToDOM = require('html-dom-parser');\n\n// decode HTML entities by default for `htmlparser2`\nvar domParserOptions = { decodeEntities: true, lowerCaseAttributeNames: false };\n\n/**\n * Converts HTML string to React elements.\n *\n * @param {String} html - The HTML string to parse to React.\n * @param {Object} [options] - The parser options.\n * @param {Function} [options.replace] - The replace method.\n * @return {JSX.Element|JSX.Element[]|String} - Returns React element(s), string, or empty array.\n */\nfunction HTMLReactParser(html, options) {\n if (typeof html !== 'string') {\n throw new TypeError('First argument must be a string');\n }\n return domToReact(htmlToDOM(html, domParserOptions), options);\n}\n\nHTMLReactParser.domToReact = domToReact;\nHTMLReactParser.htmlToDOM = htmlToDOM;\n\n// support CommonJS and ES Modules\nmodule.exports = HTMLReactParser;\nmodule.exports.default = HTMLReactParser;\n","var attributesToProps = require('./attributes-to-props');\nvar utilities = require('./utilities');\n\n/**\n * Converts DOM nodes to React elements.\n *\n * @param {DomElement[]} nodes - The DOM nodes.\n * @param {Object} [options={}] - The additional options.\n * @param {Function} [options.replace] - The replacer.\n * @param {Object} [options.library] - The library (React, Preact, etc.).\n * @return {String|ReactElement|ReactElement[]}\n */\nfunction domToReact(nodes, options) {\n options = options || {};\n\n var React = options.library || require('react');\n var cloneElement = React.cloneElement;\n var createElement = React.createElement;\n var isValidElement = React.isValidElement;\n\n var result = [];\n var node;\n var hasReplace = typeof options.replace === 'function';\n var replaceElement;\n var props;\n var children;\n\n for (var i = 0, len = nodes.length; i < len; i++) {\n node = nodes[i];\n\n // replace with custom React element (if present)\n if (hasReplace) {\n replaceElement = options.replace(node);\n\n if (isValidElement(replaceElement)) {\n // specify a \"key\" prop if element has siblings\n // https://fb.me/react-warning-keys\n if (len > 1) {\n replaceElement = cloneElement(replaceElement, {\n key: replaceElement.key || i\n });\n }\n result.push(replaceElement);\n continue;\n }\n }\n\n if (node.type === 'text') {\n result.push(node.data);\n continue;\n }\n\n props = node.attribs;\n if (!shouldPassAttributesUnaltered(node)) {\n // update values\n props = attributesToProps(node.attribs);\n }\n\n children = null;\n\n // node type for <script> is \"script\"\n // node type for <style> is \"style\"\n if (node.type === 'script' || node.type === 'style') {\n // prevent text in <script> or <style> from being escaped\n // https://facebook.github.io/react/tips/dangerously-set-inner-html.html\n if (node.children[0]) {\n props.dangerouslySetInnerHTML = {\n __html: node.children[0].data\n };\n }\n } else if (node.type === 'tag') {\n // setting textarea value in children is an antipattern in React\n // https://reactjs.org/docs/forms.html#the-textarea-tag\n if (node.name === 'textarea' && node.children[0]) {\n props.defaultValue = node.children[0].data;\n\n // continue recursion of creating React elements (if applicable)\n } else if (node.children && node.children.length) {\n children = domToReact(node.children, options);\n }\n\n // skip all other cases (e.g., comment)\n } else {\n continue;\n }\n\n // specify a \"key\" prop if element has siblings\n // https://fb.me/react-warning-keys\n if (len > 1) {\n props.key = i;\n }\n\n result.push(createElement(node.name, props, children));\n }\n\n return result.length === 1 ? result[0] : result;\n}\n\n/**\n * @param {React.ReactElement} node\n * @return {Boolean}\n */\nfunction shouldPassAttributesUnaltered(node) {\n return (\n utilities.PRESERVE_CUSTOM_ATTRIBUTES &&\n node.type === 'tag' &&\n utilities.isCustomComponent(node.name, node.attribs)\n );\n}\n\nmodule.exports = domToReact;\n","var reactProperty = require('react-property');\nvar styleToObject = require('style-to-object');\nvar utilities = require('./utilities');\n\nvar camelCase = utilities.camelCase;\n\nvar htmlProperties = reactProperty.html;\nvar svgProperties = reactProperty.svg;\nvar isCustomAttribute = reactProperty.isCustomAttribute;\n\nvar hasOwnProperty = Object.prototype.hasOwnProperty;\n\n/**\n * Converts HTML/SVG DOM attributes to React props.\n *\n * @param {Object} [attributes={}] - The HTML/SVG DOM attributes.\n * @return {Object} - The React props.\n */\nfunction attributesToProps(attributes) {\n attributes = attributes || {};\n\n var attributeName;\n var attributeNameLowerCased;\n var attributeValue;\n var property;\n var props = {};\n\n for (attributeName in attributes) {\n attributeValue = attributes[attributeName];\n\n // ARIA (aria-*) or custom data (data-*) attribute\n if (isCustomAttribute(attributeName)) {\n props[attributeName] = attributeValue;\n continue;\n }\n\n // convert HTML attribute to React prop\n attributeNameLowerCased = attributeName.toLowerCase();\n if (hasOwnProperty.call(htmlProperties, attributeNameLowerCased)) {\n property = htmlProperties[attributeNameLowerCased];\n props[property.propertyName] =\n property.hasBooleanValue ||\n (property.hasOverloadedBooleanValue && !attributeValue)\n ? true\n : attributeValue;\n continue;\n }\n\n // convert SVG attribute to React prop\n if (hasOwnProperty.call(svgProperties, attributeName)) {\n property = svgProperties[attributeName];\n props[property.propertyName] = attributeValue;\n continue;\n }\n\n // preserve custom attribute if React >=16\n if (utilities.PRESERVE_CUSTOM_ATTRIBUTES) {\n props[attributeName] = attributeValue;\n }\n }\n\n // convert inline style to object\n if (attributes.style != null) {\n props.style = cssToJs(attributes.style);\n }\n\n return props;\n}\n\n/**\n * Converts inline CSS style to POJO (Plain Old JavaScript Object).\n *\n * @param {String} style - The inline CSS style.\n * @return {Object} - The style object.\n */\nfunction cssToJs(style) {\n var styleObject = {};\n\n if (style) {\n styleToObject(style, function (property, value) {\n // skip CSS comment\n if (property && value) {\n styleObject[camelCase(property)] = value;\n }\n });\n }\n\n return styleObject;\n}\n\nmodule.exports = attributesToProps;\n","var HTMLDOMPropertyConfig = require('./lib/HTMLDOMPropertyConfig');\nvar SVGDOMPropertyConfig = require('./lib/SVGDOMPropertyConfig');\nvar injection = require('./lib/injection');\n\nvar MUST_USE_PROPERTY = injection.MUST_USE_PROPERTY;\nvar HAS_BOOLEAN_VALUE = injection.HAS_BOOLEAN_VALUE;\nvar HAS_NUMERIC_VALUE = injection.HAS_NUMERIC_VALUE;\nvar HAS_POSITIVE_NUMERIC_VALUE = injection.HAS_POSITIVE_NUMERIC_VALUE;\nvar HAS_OVERLOADED_BOOLEAN_VALUE = injection.HAS_OVERLOADED_BOOLEAN_VALUE;\n\n/**\n * @see https://github.com/facebook/react/blob/15-stable/src/renderers/dom/shared/DOMProperty.js#L14-L16\n *\n * @param {Number} value\n * @param {Number} bitmask\n * @return {Boolean}\n */\nfunction checkMask(value, bitmask) {\n return (value & bitmask) === bitmask;\n}\n\n/**\n * @see https://github.com/facebook/react/blob/15-stable/src/renderers/dom/shared/DOMProperty.js#L57\n *\n * @param {Object} domPropertyConfig - HTMLDOMPropertyConfig or SVGDOMPropertyConfig\n * @param {Object} config - The object to be mutated\n * @param {Boolean} isSVG - Whether the injected config is HTML or SVG (it assumes the default is HTML)\n */\nfunction injectDOMPropertyConfig(domPropertyConfig, config, isSVG) {\n var Properties = domPropertyConfig.Properties;\n var DOMAttributeNames = domPropertyConfig.DOMAttributeNames;\n var attributeName;\n var propertyName;\n var propConfig;\n\n for (propertyName in Properties) {\n attributeName =\n DOMAttributeNames[propertyName] ||\n (isSVG ? propertyName : propertyName.toLowerCase());\n propConfig = Properties[propertyName];\n\n config[attributeName] = {\n attributeName: attributeName,\n propertyName: propertyName,\n mustUseProperty: checkMask(propConfig, MUST_USE_PROPERTY),\n hasBooleanValue: checkMask(propConfig, HAS_BOOLEAN_VALUE),\n hasNumericValue: checkMask(propConfig, HAS_NUMERIC_VALUE),\n hasPositiveNumericValue: checkMask(\n propConfig,\n HAS_POSITIVE_NUMERIC_VALUE\n ),\n hasOverloadedBooleanValue: checkMask(\n propConfig,\n HAS_OVERLOADED_BOOLEAN_VALUE\n )\n };\n }\n}\n\n/**\n * HTML properties config.\n *\n * @type {Object}\n */\nvar html = {};\ninjectDOMPropertyConfig(HTMLDOMPropertyConfig, html);\n\n/**\n * SVG properties config.\n *\n * @type {Object}\n */\nvar svg = {};\ninjectDOMPropertyConfig(SVGDOMPropertyConfig, svg, true);\n\n/**\n * HTML and SVG properties config.\n *\n * @type {Object}\n */\nvar properties = {};\ninjectDOMPropertyConfig(HTMLDOMPropertyConfig, properties);\ninjectDOMPropertyConfig(SVGDOMPropertyConfig, properties, true);\n\nvar ATTRIBUTE_NAME_START_CHAR =\n ':A-Z_a-z\\\\u00C0-\\\\u00D6\\\\u00D8-\\\\u00F6\\\\u00F8-\\\\u02FF\\\\u0370-\\\\u037D\\\\u037F-\\\\u1FFF\\\\u200C-\\\\u200D\\\\u2070-\\\\u218F\\\\u2C00-\\\\u2FEF\\\\u3001-\\\\uD7FF\\\\uF900-\\\\uFDCF\\\\uFDF0-\\\\uFFFD';\nvar ATTRIBUTE_NAME_CHAR =\n ATTRIBUTE_NAME_START_CHAR + '\\\\-.0-9\\\\u00B7\\\\u0300-\\\\u036F\\\\u203F-\\\\u2040';\n\nmodule.exports = {\n html: html,\n svg: svg,\n properties: properties,\n\n /**\n * Checks whether a property name is a custom attribute.\n *\n * @see https://github.com/facebook/react/blob/15-stable/src/renderers/dom/shared/HTMLDOMPropertyConfig.js#L23-L25\n *\n * @param {String}\n * @return {Boolean}\n */\n isCustomAttribute: RegExp.prototype.test.bind(\n new RegExp('^(data|aria)-[' + ATTRIBUTE_NAME_CHAR + ']*$')\n )\n};\n","module.exports = {\n Properties: {\n autoFocus: 4,\n accept: 0,\n acceptCharset: 0,\n accessKey: 0,\n action: 0,\n allowFullScreen: 4,\n allowTransparency: 0,\n alt: 0,\n as: 0,\n async: 4,\n autoComplete: 0,\n autoPlay: 4,\n capture: 4,\n cellPadding: 0,\n cellSpacing: 0,\n charSet: 0,\n challenge: 0,\n checked: 5,\n cite: 0,\n classID: 0,\n className: 0,\n cols: 24,\n colSpan: 0,\n content: 0,\n contentEditable: 0,\n contextMenu: 0,\n controls: 4,\n controlsList: 0,\n coords: 0,\n crossOrigin: 0,\n data: 0,\n dateTime: 0,\n default: 4,\n defer: 4,\n dir: 0,\n disabled: 4,\n download: 32,\n draggable: 0,\n encType: 0,\n form: 0,\n formAction: 0,\n formEncType: 0,\n formMethod: 0,\n formNoValidate: 4,\n formTarget: 0,\n frameBorder: 0,\n headers: 0,\n height: 0,\n hidden: 4,\n high: 0,\n href: 0,\n hrefLang: 0,\n htmlFor: 0,\n httpEquiv: 0,\n icon: 0,\n id: 0,\n inputMode: 0,\n integrity: 0,\n is: 0,\n keyParams: 0,\n keyType: 0,\n kind: 0,\n label: 0,\n lang: 0,\n list: 0,\n loop: 4,\n low: 0,\n manifest: 0,\n marginHeight: 0,\n marginWidth: 0,\n max: 0,\n maxLength: 0,\n media: 0,\n mediaGroup: 0,\n method: 0,\n min: 0,\n minLength: 0,\n multiple: 5,\n muted: 5,\n name: 0,\n nonce: 0,\n noValidate: 4,\n open: 4,\n optimum: 0,\n pattern: 0,\n placeholder: 0,\n playsInline: 4,\n poster: 0,\n preload: 0,\n profile: 0,\n radioGroup: 0,\n readOnly: 4,\n referrerPolicy: 0,\n rel: 0,\n required: 4,\n reversed: 4,\n role: 0,\n rows: 24,\n rowSpan: 8,\n sandbox: 0,\n scope: 0,\n scoped: 4,\n scrolling: 0,\n seamless: 4,\n selected: 5,\n shape: 0,\n size: 24,\n sizes: 0,\n span: 24,\n spellCheck: 0,\n src: 0,\n srcDoc: 0,\n srcLang: 0,\n srcSet: 0,\n start: 8,\n step: 0,\n style: 0,\n summary: 0,\n tabIndex: 0,\n target: 0,\n title: 0,\n type: 0,\n useMap: 0,\n value: 0,\n width: 0,\n wmode: 0,\n wrap: 0,\n about: 0,\n datatype: 0,\n inlist: 0,\n prefix: 0,\n property: 0,\n resource: 0,\n typeof: 0,\n vocab: 0,\n autoCapitalize: 0,\n autoCorrect: 0,\n autoSave: 0,\n color: 0,\n itemProp: 0,\n itemScope: 4,\n itemType: 0,\n itemID: 0,\n itemRef: 0,\n results: 0,\n security: 0,\n unselectable: 0\n },\n DOMAttributeNames: {\n acceptCharset: 'accept-charset',\n className: 'class',\n htmlFor: 'for',\n httpEquiv: 'http-equiv'\n }\n};\n","module.exports = {\n Properties: {\n accentHeight: 0,\n accumulate: 0,\n additive: 0,\n alignmentBaseline: 0,\n allowReorder: 0,\n alphabetic: 0,\n amplitude: 0,\n arabicForm: 0,\n ascent: 0,\n attributeName: 0,\n attributeType: 0,\n autoReverse: 0,\n azimuth: 0,\n baseFrequency: 0,\n baseProfile: 0,\n baselineShift: 0,\n bbox: 0,\n begin: 0,\n bias: 0,\n by: 0,\n calcMode: 0,\n capHeight: 0,\n clip: 0,\n clipPath: 0,\n clipRule: 0,\n clipPathUnits: 0,\n colorInterpolation: 0,\n colorInterpolationFilters: 0,\n colorProfile: 0,\n colorRendering: 0,\n contentScriptType: 0,\n contentStyleType: 0,\n cursor: 0,\n cx: 0,\n cy: 0,\n d: 0,\n decelerate: 0,\n descent: 0,\n diffuseConstant: 0,\n direction: 0,\n display: 0,\n divisor: 0,\n dominantBaseline: 0,\n dur: 0,\n dx: 0,\n dy: 0,\n edgeMode: 0,\n elevation: 0,\n enableBackground: 0,\n end: 0,\n exponent: 0,\n externalResourcesRequired: 0,\n fill: 0,\n fillOpacity: 0,\n fillRule: 0,\n filter: 0,\n filterRes: 0,\n filterUnits: 0,\n floodColor: 0,\n floodOpacity: 0,\n focusable: 0,\n fontFamily: 0,\n fontSize: 0,\n fontSizeAdjust: 0,\n fontStretch: 0,\n fontStyle: 0,\n fontVariant: 0,\n fontWeight: 0,\n format: 0,\n from: 0,\n fx: 0,\n fy: 0,\n g1: 0,\n g2: 0,\n glyphName: 0,\n glyphOrientationHorizontal: 0,\n glyphOrientationVertical: 0,\n glyphRef: 0,\n gradientTransform: 0,\n gradientUnits: 0,\n hanging: 0,\n horizAdvX: 0,\n horizOriginX: 0,\n ideographic: 0,\n imageRendering: 0,\n in: 0,\n in2: 0,\n intercept: 0,\n k: 0,\n k1: 0,\n k2: 0,\n k3: 0,\n k4: 0,\n kernelMatrix: 0,\n kernelUnitLength: 0,\n kerning: 0,\n keyPoints: 0,\n keySplines: 0,\n keyTimes: 0,\n lengthAdjust: 0,\n letterSpacing: 0,\n lightingColor: 0,\n limitingConeAngle: 0,\n local: 0,\n markerEnd: 0,\n markerMid: 0,\n markerStart: 0,\n markerHeight: 0,\n markerUnits: 0,\n markerWidth: 0,\n mask: 0,\n maskContentUnits: 0,\n maskUnits: 0,\n mathematical: 0,\n mode: 0,\n numOctaves: 0,\n offset: 0,\n opacity: 0,\n operator: 0,\n order: 0,\n orient: 0,\n orientation: 0,\n origin: 0,\n overflow: 0,\n overlinePosition: 0,\n overlineThickness: 0,\n paintOrder: 0,\n panose1: 0,\n pathLength: 0,\n patternContentUnits: 0,\n patternTransform: 0,\n patternUnits: 0,\n pointerEvents: 0,\n points: 0,\n pointsAtX: 0,\n pointsAtY: 0,\n pointsAtZ: 0,\n preserveAlpha: 0,\n preserveAspectRatio: 0,\n primitiveUnits: 0,\n r: 0,\n radius: 0,\n refX: 0,\n refY: 0,\n renderingIntent: 0,\n repeatCount: 0,\n repeatDur: 0,\n requiredExtensions: 0,\n requiredFeatures: 0,\n restart: 0,\n result: 0,\n rotate: 0,\n rx: 0,\n ry: 0,\n scale: 0,\n seed: 0,\n shapeRendering: 0,\n slope: 0,\n spacing: 0,\n specularConstant: 0,\n specularExponent: 0,\n speed: 0,\n spreadMethod: 0,\n startOffset: 0,\n stdDeviation: 0,\n stemh: 0,\n stemv: 0,\n stitchTiles: 0,\n stopColor: 0,\n stopOpacity: 0,\n strikethroughPosition: 0,\n strikethroughThickness: 0,\n string: 0,\n stroke: 0,\n strokeDasharray: 0,\n strokeDashoffset: 0,\n strokeLinecap: 0,\n strokeLinejoin: 0,\n strokeMiterlimit: 0,\n strokeOpacity: 0,\n strokeWidth: 0,\n surfaceScale: 0,\n systemLanguage: 0,\n tableValues: 0,\n targetX: 0,\n targetY: 0,\n textAnchor: 0,\n textDecoration: 0,\n textRendering: 0,\n textLength: 0,\n to: 0,\n transform: 0,\n u1: 0,\n u2: 0,\n underlinePosition: 0,\n underlineThickness: 0,\n unicode: 0,\n unicodeBidi: 0,\n unicodeRange: 0,\n unitsPerEm: 0,\n vAlphabetic: 0,\n vHanging: 0,\n vIdeographic: 0,\n vMathematical: 0,\n values: 0,\n vectorEffect: 0,\n version: 0,\n vertAdvY: 0,\n vertOriginX: 0,\n vertOriginY: 0,\n viewBox: 0,\n viewTarget: 0,\n visibility: 0,\n widths: 0,\n wordSpacing: 0,\n writingMode: 0,\n x: 0,\n xHeight: 0,\n x1: 0,\n x2: 0,\n xChannelSelector: 0,\n xlinkActuate: 0,\n xlinkArcrole: 0,\n xlinkHref: 0,\n xlinkRole: 0,\n xlinkShow: 0,\n xlinkTitle: 0,\n xlinkType: 0,\n xmlBase: 0,\n xmlns: 0,\n xmlnsXlink: 0,\n xmlLang: 0,\n xmlSpace: 0,\n y: 0,\n y1: 0,\n y2: 0,\n yChannelSelector: 0,\n z: 0,\n zoomAndPan: 0\n },\n DOMAttributeNames: {\n accentHeight: 'accent-height',\n alignmentBaseline: 'alignment-baseline',\n arabicForm: 'arabic-form',\n baselineShift: 'baseline-shift',\n capHeight: 'cap-height',\n clipPath: 'clip-path',\n clipRule: 'clip-rule',\n colorInterpolation: 'color-interpolation',\n colorInterpolationFilters: 'color-interpolation-filters',\n colorProfile: 'color-profile',\n colorRendering: 'color-rendering',\n dominantBaseline: 'dominant-baseline',\n enableBackground: 'enable-background',\n fillOpacity: 'fill-opacity',\n fillRule: 'fill-rule',\n floodColor: 'flood-color',\n floodOpacity: 'flood-opacity',\n fontFamily: 'font-family',\n fontSize: 'font-size',\n fontSizeAdjust: 'font-size-adjust',\n fontStretch: 'font-stretch',\n fontStyle: 'font-style',\n fontVariant: 'font-variant',\n fontWeight: 'font-weight',\n glyphName: 'glyph-name',\n glyphOrientationHorizontal: 'glyph-orientation-horizontal',\n glyphOrientationVertical: 'glyph-orientation-vertical',\n horizAdvX: 'horiz-adv-x',\n horizOriginX: 'horiz-origin-x',\n imageRendering: 'image-rendering',\n letterSpacing: 'letter-spacing',\n lightingColor: 'lighting-color',\n markerEnd: 'marker-end',\n markerMid: 'marker-mid',\n markerStart: 'marker-start',\n overlinePosition: 'overline-position',\n overlineThickness: 'overline-thickness',\n paintOrder: 'paint-order',\n panose1: 'panose-1',\n pointerEvents: 'pointer-events',\n renderingIntent: 'rendering-intent',\n shapeRendering: 'shape-rendering',\n stopColor: 'stop-color',\n stopOpacity: 'stop-opacity',\n strikethroughPosition: 'strikethrough-position',\n strikethroughThickness: 'strikethrough-thickness',\n strokeDasharray: 'stroke-dasharray',\n strokeDashoffset: 'stroke-dashoffset',\n strokeLinecap: 'stroke-linecap',\n strokeLinejoin: 'stroke-linejoin',\n strokeMiterlimit: 'stroke-miterlimit',\n strokeOpacity: 'stroke-opacity',\n strokeWidth: 'stroke-width',\n textAnchor: 'text-anchor',\n textDecoration: 'text-decoration',\n textRendering: 'text-rendering',\n underlinePosition: 'underline-position',\n underlineThickness: 'underline-thickness',\n unicodeBidi: 'unicode-bidi',\n unicodeRange: 'unicode-range',\n unitsPerEm: 'units-per-em',\n vAlphabetic: 'v-alphabetic',\n vHanging: 'v-hanging',\n vIdeographic: 'v-ideographic',\n vMathematical: 'v-mathematical',\n vectorEffect: 'vector-effect',\n vertAdvY: 'vert-adv-y',\n vertOriginX: 'vert-origin-x',\n vertOriginY: 'vert-origin-y',\n wordSpacing: 'word-spacing',\n writingMode: 'writing-mode',\n xHeight: 'x-height',\n xlinkActuate: 'xlink:actuate',\n xlinkArcrole: 'xlink:arcrole',\n xlinkHref: 'xlink:href',\n xlinkRole: 'xlink:role',\n xlinkShow: 'xlink:show',\n xlinkTitle: 'xlink:title',\n xlinkType: 'xlink:type',\n xmlBase: 'xml:base',\n xmlnsXlink: 'xmlns:xlink',\n xmlLang: 'xml:lang',\n xmlSpace: 'xml:space'\n }\n};\n","module.exports = {\n MUST_USE_PROPERTY: 1,\n HAS_BOOLEAN_VALUE: 4,\n HAS_NUMERIC_VALUE: 8,\n HAS_POSITIVE_NUMERIC_VALUE: 24,\n HAS_OVERLOADED_BOOLEAN_VALUE: 32\n};\n","var parse = require('inline-style-parser');\n\n/**\n * Parses inline style to object.\n *\n * @example\n * // returns { 'line-height': '42' }\n * StyleToObject('line-height: 42;');\n *\n * @param {String} style - The inline style.\n * @param {Function} [iterator] - The iterator function.\n * @return {null|Object}\n */\nfunction StyleToObject(style, iterator) {\n var output = null;\n if (!style || typeof style !== 'string') {\n return output;\n }\n\n var declaration;\n var declarations = parse(style);\n var hasIterator = typeof iterator === 'function';\n var property;\n var value;\n\n for (var i = 0, len = declarations.length; i < len; i++) {\n declaration = declarations[i];\n property = declaration.property;\n value = declaration.value;\n\n if (hasIterator) {\n iterator(property, value, declaration);\n } else if (value) {\n output || (output = {});\n output[property] = value;\n }\n }\n\n return output;\n}\n\nmodule.exports = StyleToObject;\n","// http://www.w3.org/TR/CSS21/grammar.html\n// https://github.com/visionmedia/css-parse/pull/49#issuecomment-30088027\nvar COMMENT_REGEX = /\\/\\*[^*]*\\*+([^/*][^*]*\\*+)*\\//g;\n\nvar NEWLINE_REGEX = /\\n/g;\nvar WHITESPACE_REGEX = /^\\s*/;\n\n// declaration\nvar PROPERTY_REGEX = /^(\\*?[-#/*\\\\\\w]+(\\[[0-9a-z_-]+\\])?)\\s*/;\nvar COLON_REGEX = /^:\\s*/;\nvar VALUE_REGEX = /^((?:'(?:\\\\'|.)*?'|\"(?:\\\\\"|.)*?\"|\\([^)]*?\\)|[^};])+)/;\nvar SEMICOLON_REGEX = /^[;\\s]*/;\n\n// https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/String/Trim#Polyfill\nvar TRIM_REGEX = /^\\s+|\\s+$/g;\n\n// strings\nvar NEWLINE = '\\n';\nvar FORWARD_SLASH = '/';\nvar ASTERISK = '*';\nvar EMPTY_STRING = '';\n\n// types\nvar TYPE_COMMENT = 'comment';\nvar TYPE_DECLARATION = 'declaration';\n\n/**\n * @param {String} style\n * @param {Object} [options]\n * @return {Object[]}\n * @throws {TypeError}\n * @throws {Error}\n */\nmodule.exports = function(style, options) {\n if (typeof style !== 'string') {\n throw new TypeError('First argument must be a string');\n }\n\n if (!style) return [];\n\n options = options || {};\n\n /**\n * Positional.\n */\n var lineno = 1;\n var column = 1;\n\n /**\n * Update lineno and column based on `str`.\n *\n * @param {String} str\n */\n function updatePosition(str) {\n var lines = str.match(NEWLINE_REGEX);\n if (lines) lineno += lines.length;\n var i = str.lastIndexOf(NEWLINE);\n column = ~i ? str.length - i : column + str.length;\n }\n\n /**\n * Mark position and patch `node.position`.\n *\n * @return {Function}\n */\n function position() {\n var start = { line: lineno, column: column };\n return function(node) {\n node.position = new Position(start);\n whitespace();\n return node;\n };\n }\n\n /**\n * Store position information for a node.\n *\n * @constructor\n * @property {Object} start\n * @property {Object} end\n * @property {undefined|String} source\n */\n function Position(start) {\n this.start = start;\n this.end = { line: lineno, column: column };\n this.source = options.source;\n }\n\n /**\n * Non-enumerable source string.\n */\n Position.prototype.content = style;\n\n var errorsList = [];\n\n /**\n * Error `msg`.\n *\n * @param {String} msg\n * @throws {Error}\n */\n function error(msg) {\n var err = new Error(\n options.source + ':' + lineno + ':' + column + ': ' + msg\n );\n err.reason = msg;\n err.filename = options.source;\n err.line = lineno;\n err.column = column;\n err.source = style;\n\n if (options.silent) {\n errorsList.push(err);\n } else {\n throw err;\n }\n }\n\n /**\n * Match `re` and return captures.\n *\n * @param {RegExp} re\n * @return {undefined|Array}\n */\n function match(re) {\n var m = re.exec(style);\n if (!m) return;\n var str = m[0];\n updatePosition(str);\n style = style.slice(str.length);\n return m;\n }\n\n /**\n * Parse whitespace.\n */\n function whitespace() {\n match(WHITESPACE_REGEX);\n }\n\n /**\n * Parse comments.\n *\n * @param {Object[]} [rules]\n * @return {Object[]}\n */\n function comments(rules) {\n var c;\n rules = rules || [];\n while ((c = comment())) {\n if (c !== false) {\n rules.push(c);\n }\n }\n return rules;\n }\n\n /**\n * Parse comment.\n *\n * @return {Object}\n * @throws {Error}\n */\n function comment() {\n var pos = position();\n if (FORWARD_SLASH != style.charAt(0) || ASTERISK != style.charAt(1)) return;\n\n var i = 2;\n while (\n EMPTY_STRING != style.charAt(i) &&\n (ASTERISK != style.charAt(i) || FORWARD_SLASH != style.charAt(i + 1))\n ) {\n ++i;\n }\n i += 2;\n\n if (EMPTY_STRING === style.charAt(i - 1)) {\n return error('End of comment missing');\n }\n\n var str = style.slice(2, i - 2);\n column += 2;\n updatePosition(str);\n style = style.slice(i);\n column += 2;\n\n return pos({\n type: TYPE_COMMENT,\n comment: str\n });\n }\n\n /**\n * Parse declaration.\n *\n * @return {Object}\n * @throws {Error}\n */\n function declaration() {\n var pos = position();\n\n // prop\n var prop = match(PROPERTY_REGEX);\n if (!prop) return;\n comment();\n\n // :\n if (!match(COLON_REGEX)) return error(\"property missing ':'\");\n\n // val\n var val = match(VALUE_REGEX);\n\n var ret = pos({\n type: TYPE_DECLARATION,\n property: trim(prop[0].replace(COMMENT_REGEX, EMPTY_STRING)),\n value: val\n ? trim(val[0].replace(COMMENT_REGEX, EMPTY_STRING))\n : EMPTY_STRING\n });\n\n // ;\n match(SEMICOLON_REGEX);\n\n return ret;\n }\n\n /**\n * Parse declarations.\n *\n * @return {Object[]}\n */\n function declarations() {\n var decls = [];\n\n comments(decls);\n\n // declarations\n var decl;\n while ((decl = declaration())) {\n if (decl !== false) {\n decls.push(decl);\n comments(decls);\n }\n }\n\n return decls;\n }\n\n whitespace();\n return declarations();\n};\n\n/**\n * Trim `str`.\n *\n * @param {String} str\n * @return {String}\n */\nfunction trim(str) {\n return str ? str.replace(TRIM_REGEX, EMPTY_STRING) : EMPTY_STRING;\n}\n","/** @license React v16.14.0\n * react.production.min.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';var l=require(\"object-assign\"),n=\"function\"===typeof Symbol&&Symbol.for,p=n?Symbol.for(\"react.element\"):60103,q=n?Symbol.for(\"react.portal\"):60106,r=n?Symbol.for(\"react.fragment\"):60107,t=n?Symbol.for(\"react.strict_mode\"):60108,u=n?Symbol.for(\"react.profiler\"):60114,v=n?Symbol.for(\"react.provider\"):60109,w=n?Symbol.for(\"react.context\"):60110,x=n?Symbol.for(\"react.forward_ref\"):60112,y=n?Symbol.for(\"react.suspense\"):60113,z=n?Symbol.for(\"react.memo\"):60115,A=n?Symbol.for(\"react.lazy\"):\n60116,B=\"function\"===typeof Symbol&&Symbol.iterator;function C(a){for(var b=\"https://reactjs.org/docs/error-decoder.html?invariant=\"+a,c=1;c<arguments.length;c++)b+=\"&args[]=\"+encodeURIComponent(arguments[c]);return\"Minified React error #\"+a+\"; visit \"+b+\" for the full message or use the non-minified dev environment for full errors and additional helpful warnings.\"}\nvar D={isMounted:function(){return!1},enqueueForceUpdate:function(){},enqueueReplaceState:function(){},enqueueSetState:function(){}},E={};function F(a,b,c){this.props=a;this.context=b;this.refs=E;this.updater=c||D}F.prototype.isReactComponent={};F.prototype.setState=function(a,b){if(\"object\"!==typeof a&&\"function\"!==typeof a&&null!=a)throw Error(C(85));this.updater.enqueueSetState(this,a,b,\"setState\")};F.prototype.forceUpdate=function(a){this.updater.enqueueForceUpdate(this,a,\"forceUpdate\")};\nfunction G(){}G.prototype=F.prototype;function H(a,b,c){this.props=a;this.context=b;this.refs=E;this.updater=c||D}var I=H.prototype=new G;I.constructor=H;l(I,F.prototype);I.isPureReactComponent=!0;var J={current:null},K=Object.prototype.hasOwnProperty,L={key:!0,ref:!0,__self:!0,__source:!0};\nfunction M(a,b,c){var e,d={},g=null,k=null;if(null!=b)for(e in void 0!==b.ref&&(k=b.ref),void 0!==b.key&&(g=\"\"+b.key),b)K.call(b,e)&&!L.hasOwnProperty(e)&&(d[e]=b[e]);var f=arguments.length-2;if(1===f)d.children=c;else if(1<f){for(var h=Array(f),m=0;m<f;m++)h[m]=arguments[m+2];d.children=h}if(a&&a.defaultProps)for(e in f=a.defaultProps,f)void 0===d[e]&&(d[e]=f[e]);return{$$typeof:p,type:a,key:g,ref:k,props:d,_owner:J.current}}\nfunction N(a,b){return{$$typeof:p,type:a.type,key:b,ref:a.ref,props:a.props,_owner:a._owner}}function O(a){return\"object\"===typeof a&&null!==a&&a.$$typeof===p}function escape(a){var b={\"=\":\"=0\",\":\":\"=2\"};return\"$\"+(\"\"+a).replace(/[=:]/g,function(a){return b[a]})}var P=/\\/+/g,Q=[];function R(a,b,c,e){if(Q.length){var d=Q.pop();d.result=a;d.keyPrefix=b;d.func=c;d.context=e;d.count=0;return d}return{result:a,keyPrefix:b,func:c,context:e,count:0}}\nfunction S(a){a.result=null;a.keyPrefix=null;a.func=null;a.context=null;a.count=0;10>Q.length&&Q.push(a)}\nfunction T(a,b,c,e){var d=typeof a;if(\"undefined\"===d||\"boolean\"===d)a=null;var g=!1;if(null===a)g=!0;else switch(d){case \"string\":case \"number\":g=!0;break;case \"object\":switch(a.$$typeof){case p:case q:g=!0}}if(g)return c(e,a,\"\"===b?\".\"+U(a,0):b),1;g=0;b=\"\"===b?\".\":b+\":\";if(Array.isArray(a))for(var k=0;k<a.length;k++){d=a[k];var f=b+U(d,k);g+=T(d,f,c,e)}else if(null===a||\"object\"!==typeof a?f=null:(f=B&&a[B]||a[\"@@iterator\"],f=\"function\"===typeof f?f:null),\"function\"===typeof f)for(a=f.call(a),k=\n0;!(d=a.next()).done;)d=d.value,f=b+U(d,k++),g+=T(d,f,c,e);else if(\"object\"===d)throw c=\"\"+a,Error(C(31,\"[object Object]\"===c?\"object with keys {\"+Object.keys(a).join(\", \")+\"}\":c,\"\"));return g}function V(a,b,c){return null==a?0:T(a,\"\",b,c)}function U(a,b){return\"object\"===typeof a&&null!==a&&null!=a.key?escape(a.key):b.toString(36)}function W(a,b){a.func.call(a.context,b,a.count++)}\nfunction aa(a,b,c){var e=a.result,d=a.keyPrefix;a=a.func.call(a.context,b,a.count++);Array.isArray(a)?X(a,e,c,function(a){return a}):null!=a&&(O(a)&&(a=N(a,d+(!a.key||b&&b.key===a.key?\"\":(\"\"+a.key).replace(P,\"$&/\")+\"/\")+c)),e.push(a))}function X(a,b,c,e,d){var g=\"\";null!=c&&(g=(\"\"+c).replace(P,\"$&/\")+\"/\");b=R(b,g,e,d);V(a,aa,b);S(b)}var Y={current:null};function Z(){var a=Y.current;if(null===a)throw Error(C(321));return a}\nvar ba={ReactCurrentDispatcher:Y,ReactCurrentBatchConfig:{suspense:null},ReactCurrentOwner:J,IsSomeRendererActing:{current:!1},assign:l};exports.Children={map:function(a,b,c){if(null==a)return a;var e=[];X(a,e,null,b,c);return e},forEach:function(a,b,c){if(null==a)return a;b=R(null,null,b,c);V(a,W,b);S(b)},count:function(a){return V(a,function(){return null},null)},toArray:function(a){var b=[];X(a,b,null,function(a){return a});return b},only:function(a){if(!O(a))throw Error(C(143));return a}};\nexports.Component=F;exports.Fragment=r;exports.Profiler=u;exports.PureComponent=H;exports.StrictMode=t;exports.Suspense=y;exports.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED=ba;\nexports.cloneElement=function(a,b,c){if(null===a||void 0===a)throw Error(C(267,a));var e=l({},a.props),d=a.key,g=a.ref,k=a._owner;if(null!=b){void 0!==b.ref&&(g=b.ref,k=J.current);void 0!==b.key&&(d=\"\"+b.key);if(a.type&&a.type.defaultProps)var f=a.type.defaultProps;for(h in b)K.call(b,h)&&!L.hasOwnProperty(h)&&(e[h]=void 0===b[h]&&void 0!==f?f[h]:b[h])}var h=arguments.length-2;if(1===h)e.children=c;else if(1<h){f=Array(h);for(var m=0;m<h;m++)f[m]=arguments[m+2];e.children=f}return{$$typeof:p,type:a.type,\nkey:d,ref:g,props:e,_owner:k}};exports.createContext=function(a,b){void 0===b&&(b=null);a={$$typeof:w,_calculateChangedBits:b,_currentValue:a,_currentValue2:a,_threadCount:0,Provider:null,Consumer:null};a.Provider={$$typeof:v,_context:a};return a.Consumer=a};exports.createElement=M;exports.createFactory=function(a){var b=M.bind(null,a);b.type=a;return b};exports.createRef=function(){return{current:null}};exports.forwardRef=function(a){return{$$typeof:x,render:a}};exports.isValidElement=O;\nexports.lazy=function(a){return{$$typeof:A,_ctor:a,_status:-1,_result:null}};exports.memo=function(a,b){return{$$typeof:z,type:a,compare:void 0===b?null:b}};exports.useCallback=function(a,b){return Z().useCallback(a,b)};exports.useContext=function(a,b){return Z().useContext(a,b)};exports.useDebugValue=function(){};exports.useEffect=function(a,b){return Z().useEffect(a,b)};exports.useImperativeHandle=function(a,b,c){return Z().useImperativeHandle(a,b,c)};\nexports.useLayoutEffect=function(a,b){return Z().useLayoutEffect(a,b)};exports.useMemo=function(a,b){return Z().useMemo(a,b)};exports.useReducer=function(a,b,c){return Z().useReducer(a,b,c)};exports.useRef=function(a){return Z().useRef(a)};exports.useState=function(a){return Z().useState(a)};exports.version=\"16.14.0\";\n","/*\nobject-assign\n(c) Sindre Sorhus\n@license MIT\n*/\n\n'use strict';\n/* eslint-disable no-unused-vars */\nvar getOwnPropertySymbols = Object.getOwnPropertySymbols;\nvar hasOwnProperty = Object.prototype.hasOwnProperty;\nvar propIsEnumerable = Object.prototype.propertyIsEnumerable;\n\nfunction toObject(val) {\n\tif (val === null || val === undefined) {\n\t\tthrow new TypeError('Object.assign cannot be called with null or undefined');\n\t}\n\n\treturn Object(val);\n}\n\nfunction shouldUseNative() {\n\ttry {\n\t\tif (!Object.assign) {\n\t\t\treturn false;\n\t\t}\n\n\t\t// Detect buggy property enumeration order in older V8 versions.\n\n\t\t// https://bugs.chromium.org/p/v8/issues/detail?id=4118\n\t\tvar test1 = new String('abc'); // eslint-disable-line no-new-wrappers\n\t\ttest1[5] = 'de';\n\t\tif (Object.getOwnPropertyNames(test1)[0] === '5') {\n\t\t\treturn false;\n\t\t}\n\n\t\t// https://bugs.chromium.org/p/v8/issues/detail?id=3056\n\t\tvar test2 = {};\n\t\tfor (var i = 0; i < 10; i++) {\n\t\t\ttest2['_' + String.fromCharCode(i)] = i;\n\t\t}\n\t\tvar order2 = Object.getOwnPropertyNames(test2).map(function (n) {\n\t\t\treturn test2[n];\n\t\t});\n\t\tif (order2.join('') !== '0123456789') {\n\t\t\treturn false;\n\t\t}\n\n\t\t// https://bugs.chromium.org/p/v8/issues/detail?id=3056\n\t\tvar test3 = {};\n\t\t'abcdefghijklmnopqrst'.split('').forEach(function (letter) {\n\t\t\ttest3[letter] = letter;\n\t\t});\n\t\tif (Object.keys(Object.assign({}, test3)).join('') !==\n\t\t\t\t'abcdefghijklmnopqrst') {\n\t\t\treturn false;\n\t\t}\n\n\t\treturn true;\n\t} catch (err) {\n\t\t// We don't expect any of the above to throw, but better to be safe.\n\t\treturn false;\n\t}\n}\n\nmodule.exports = shouldUseNative() ? Object.assign : function (target, source) {\n\tvar from;\n\tvar to = toObject(target);\n\tvar symbols;\n\n\tfor (var s = 1; s < arguments.length; s++) {\n\t\tfrom = Object(arguments[s]);\n\n\t\tfor (var key in from) {\n\t\t\tif (hasOwnProperty.call(from, key)) {\n\t\t\t\tto[key] = from[key];\n\t\t\t}\n\t\t}\n\n\t\tif (getOwnPropertySymbols) {\n\t\t\tsymbols = getOwnPropertySymbols(from);\n\t\t\tfor (var i = 0; i < symbols.length; i++) {\n\t\t\t\tif (propIsEnumerable.call(from, symbols[i])) {\n\t\t\t\t\tto[symbols[i]] = from[symbols[i]];\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\treturn to;\n};\n","var domparser = require('./domparser');\nvar utilities = require('./utilities');\n\nvar formatDOM = utilities.formatDOM;\nvar isIE9 = utilities.isIE(9);\n\nvar DIRECTIVE_REGEX = /<(![a-zA-Z\\s]+)>/; // e.g., <!doctype html>\n\n/**\n * Parses HTML and reformats DOM nodes output.\n *\n * @param {String} html - The HTML string.\n * @return {Array} - The formatted DOM nodes.\n */\nfunction parseDOM(html) {\n if (typeof html !== 'string') {\n throw new TypeError('First argument must be a string');\n }\n\n if (!html) {\n return [];\n }\n\n // match directive\n var match = html.match(DIRECTIVE_REGEX);\n var directive;\n\n if (match && match[1]) {\n directive = match[1];\n\n // remove directive in IE9 because DOMParser uses\n // MIME type 'text/xml' instead of 'text/html'\n if (isIE9) {\n html = html.replace(match[0], '');\n }\n }\n\n return formatDOM(domparser(html), null, directive);\n}\n\nmodule.exports = parseDOM;\n","var utilities = require('./utilities');\n\n// constants\nvar HTML = 'html';\nvar HEAD = 'head';\nvar BODY = 'body';\nvar FIRST_TAG_REGEX = /<([a-zA-Z]+[0-9]?)/; // e.g., <h1>\nvar HEAD_TAG_REGEX = /<head.*>/i;\nvar BODY_TAG_REGEX = /<body.*>/i;\n// http://www.w3.org/TR/html/syntax.html#void-elements\nvar VOID_ELEMENTS_REGEX = /<(area|base|br|col|embed|hr|img|input|keygen|link|menuitem|meta|param|source|track|wbr)(.*?)\\/?>/gi;\n\n// detect IE browser\nvar isIE9 = utilities.isIE(9);\nvar isIE = isIE9 || utilities.isIE();\n\n/**\n * DOMParser (performance: slow).\n *\n * @see https://developer.mozilla.org/docs/Web/API/DOMParser#Parsing_an_SVG_or_HTML_document\n */\nvar parseFromString;\n\nif (typeof window.DOMParser === 'function') {\n var domParser = new window.DOMParser();\n\n // IE9 does not support 'text/html' MIME type\n // https://msdn.microsoft.com/en-us/library/ff975278(v=vs.85).aspx\n var mimeType = isIE9 ? 'text/xml' : 'text/html';\n\n /**\n * Creates an HTML document using `DOMParser.parseFromString`.\n *\n * @param {string} html - The HTML string.\n * @param {string} [tagName] - The element to render the HTML (with 'body' as fallback).\n * @return {HTMLDocument}\n */\n parseFromString = function domStringParser(html, tagName) {\n if (tagName) {\n html = '<' + tagName + '>' + html + '</' + tagName + '>';\n }\n\n // because IE9 only supports MIME type 'text/xml', void elements need to be self-closed\n if (isIE9) {\n html = html.replace(VOID_ELEMENTS_REGEX, '<$1$2$3/>');\n }\n\n return domParser.parseFromString(html, mimeType);\n };\n}\n\n/**\n * DOMImplementation (performance: fair).\n *\n * @see https://developer.mozilla.org/docs/Web/API/DOMImplementation/createHTMLDocument\n */\nvar parseFromDocument;\n\nif (typeof document.implementation === 'object') {\n // title parameter is required in IE\n // https://msdn.microsoft.com/en-us/library/ff975457(v=vs.85).aspx\n var doc = document.implementation.createHTMLDocument(\n isIE ? 'HTML_DOM_PARSER_TITLE' : undefined\n );\n\n /**\n * Use HTML document created by `document.implementation.createHTMLDocument`.\n *\n * @param {string} html - The HTML string.\n * @param {string} [tagName] - The element to render the HTML (with 'body' as fallback).\n * @return {HTMLDocument}\n */\n parseFromDocument = function createHTMLDocument(html, tagName) {\n if (tagName) {\n doc.documentElement.getElementsByTagName(tagName)[0].innerHTML = html;\n return doc;\n }\n\n try {\n doc.documentElement.innerHTML = html;\n return doc;\n // fallback when certain elements in `documentElement` are read-only (IE9)\n } catch (err) {\n if (parseFromString) {\n return parseFromString(html);\n }\n }\n };\n}\n\n/**\n * Template (performance: fast).\n *\n * @see https://developer.mozilla.org/docs/Web/HTML/Element/template\n */\nvar parseFromTemplate;\nvar template = document.createElement('template');\n\nif (template.content) {\n /**\n * Uses a template element (content fragment) to parse HTML.\n *\n * @param {string} html - The HTML string.\n * @return {NodeList}\n */\n parseFromTemplate = function templateParser(html) {\n template.innerHTML = html;\n return template.content.childNodes;\n };\n}\n\n// fallback document parser\nvar parseWithFallback = parseFromDocument || parseFromString;\n\n/**\n * Parses HTML string to DOM nodes.\n *\n * @param {string} html - The HTML string.\n * @return {NodeList|Array}\n */\nfunction domparser(html) {\n var firstTagName;\n var match = html.match(FIRST_TAG_REGEX);\n\n if (match && match[1]) {\n firstTagName = match[1].toLowerCase();\n }\n\n var doc;\n var element;\n var elements;\n\n switch (firstTagName) {\n case HTML:\n if (parseFromString) {\n doc = parseFromString(html);\n\n // the created document may come with filler head/body elements,\n // so make sure to remove them if they don't actually exist\n if (!HEAD_TAG_REGEX.test(html)) {\n element = doc.getElementsByTagName(HEAD)[0];\n if (element) {\n element.parentNode.removeChild(element);\n }\n }\n\n if (!BODY_TAG_REGEX.test(html)) {\n element = doc.getElementsByTagName(BODY)[0];\n if (element) {\n element.parentNode.removeChild(element);\n }\n }\n\n return doc.getElementsByTagName(HTML);\n }\n break;\n\n case HEAD:\n case BODY:\n if (parseWithFallback) {\n elements = parseWithFallback(html).getElementsByTagName(firstTagName);\n\n // account for possibility of sibling\n if (BODY_TAG_REGEX.test(html) && HEAD_TAG_REGEX.test(html)) {\n return elements[0].parentNode.childNodes;\n }\n\n return elements;\n }\n break;\n\n // low-level tag or text\n default:\n if (parseFromTemplate) {\n return parseFromTemplate(html);\n }\n\n if (parseWithFallback) {\n return parseWithFallback(html, BODY).getElementsByTagName(BODY)[0]\n .childNodes;\n }\n\n break;\n }\n\n return [];\n}\n\nmodule.exports = domparser;\n","/**\n * SVG elements are case-sensitive.\n *\n * @see {@link https://developer.mozilla.org/docs/Web/SVG/Element#SVG_elements_A_to_Z}\n */\nvar CASE_SENSITIVE_TAG_NAMES = [\n 'animateMotion',\n 'animateTransform',\n 'clipPath',\n 'feBlend',\n 'feColorMatrix',\n 'feComponentTransfer',\n 'feComposite',\n 'feConvolveMatrix',\n 'feDiffuseLighting',\n 'feDisplacementMap',\n 'feDropShadow',\n 'feFlood',\n 'feFuncA',\n 'feFuncB',\n 'feFuncG',\n 'feFuncR',\n 'feGaussainBlur',\n 'feImage',\n 'feMerge',\n 'feMergeNode',\n 'feMorphology',\n 'feOffset',\n 'fePointLight',\n 'feSpecularLighting',\n 'feSpotLight',\n 'feTile',\n 'feTurbulence',\n 'foreignObject',\n 'linearGradient',\n 'radialGradient',\n 'textPath'\n];\n\nmodule.exports = {\n CASE_SENSITIVE_TAG_NAMES: CASE_SENSITIVE_TAG_NAMES\n};\n","( function ( wpI18n, wpBlocks, wpElement, wpBlockEditor, wpData ) {\n wpBlockEditor = wp.blockEditor || wp.editor;\n const { __ } = wpI18n;\n const { Fragment, Component } = wpElement;\n const { registerBlockType, createBlock } = wpBlocks;\n const { RichText } = wpBlockEditor;\n const { select, dispatch } = wpData;\n\n const previewImageData = 'data:image/png;base64,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';\n\n class itemEdit extends Component {\n\n constructor() {\n super( ...arguments );\n }\n\n /**\n * Remove empty spaces and breaklines\n *\n * @since 3.1.3\n * @param {string} content The string to check\n *\n * @return {string}\n */\n cleanContent( content ) {\n return content.replace( '<br>', '' ).trim();\n }\n\n render() {\n const { attributes, setAttributes, clientId } = this.props;\n const { isPreview, content } = attributes;\n\n const insertBlockOnEnter = event => {\n\n // No insert new block when key is different to enter or is Enter + Shift\n if ( event.key !== 'Enter' || ( event.key === 'Enter' && event.shiftKey ) ) {\n return;\n }\n\n const { getBlockRootClientId, getBlock } = select( 'core/block-editor' );\n const { insertBlock } = dispatch( 'core/block-editor' );\n\n const parentId = getBlockRootClientId( clientId );\n\n if( parentId === null ) {\n return;\n }\n\n const parentBlock = getBlock( parentId );\n\n // Find the current list-item position\n const itemIndex = parentBlock.innerBlocks.findIndex( el => el.clientId === clientId ) || 0;\n let currentContent, newContent = '';\n\n if( ! this.cleanContent( content ).length ) {\n\n // Found only empty spaces in content. Let's save as empty string\n setAttributes( { content: '' } );\n } else if( content.includes( '<br>' ) && content.length ) {\n\n /* If <br> exists between words/string,\n * get the last one and split the content between current and the new item\n */\n const lastIndex = content.lastIndexOf( '<br>' );\n\n currentContent = content.slice( 0, lastIndex );\n newContent = content.slice( lastIndex + 4 ); // 4 is the char length of '<br>'\n\n setAttributes( { content: currentContent } );\n } else {\n // Nothing to do here\n }\n\n // Insert a new List item\n insertBlock(\n createBlock( 'advgb/list-item', {\n content: newContent\n } ),\n parentBlock.innerBlocks.length !== itemIndex // Insert after current item position\n ? itemIndex + 1 // After current item\n : parentBlock.innerBlocks.length + 1, // After the last item in the list\n parentId\n );\n }\n\n return (\n isPreview ?\n <img alt={ __( 'List item', 'advanced-gutenberg' ) } width='100%' src={ previewImageData }/>\n :\n <Fragment>\n <li onKeyDown={ insertBlockOnEnter }>\n <RichText\n tagName=\"span\"\n onChange={ ( value ) =>\n setAttributes( { content: value } )\n }\n value={ content }\n placeholder={ __( 'Type a list item', 'advanced-gutenberg' ) }\n allowedFormats={ [\n 'core/bold',\n 'core/italic',\n 'core/text-color',\n 'core/link'\n ] }\n />\n </li>\n </Fragment>\n );\n }\n }\n\n const blockIcon = (\n <svg height=\"20\" viewBox=\"2 2 22 22\" width=\"20\" xmlns=\"http://www.w3.org/2000/svg\">\n <path d=\"M 3,13 H 5 V 11 H 3 Z m 4,0 H 21 V 11 H 7 Z\"/>\n </svg>\n );\n\n const blockAttrs = {\n content: {\n type: 'string',\n source: 'html',\n selector: 'li',\n default: '',\n },\n isPreview: {\n type: 'boolean',\n default: false,\n },\n };\n\n registerBlockType( 'advgb/list-item', {\n title: __( 'List item - PublishPress', 'advanced-gutenberg' ),\n description: __( 'Insert a list item inside List block.', 'advanced-gutenberg'),\n icon: {\n src: blockIcon,\n foreground: typeof advgbBlocks !== 'undefined' ? advgbBlocks.color : undefined,\n },\n parent: [ 'advgb/list' ],\n category: 'advgb-category',\n attributes: blockAttrs,\n supports: {\n className: false\n },\n edit: itemEdit,\n save: function ( { attributes } ) {\n const { content } = attributes;\n\n return (\n <RichText.Content\n tagName=\"li\"\n value={ content }\n />\n );\n },\n } );\n} )( wp.i18n, wp.blocks, wp.element, wp.blockEditor, wp.data );\n","(function (wpI18n, wpBlocks, wpElement, wpBlockEditor, wpComponents, lodash) {\n wpBlockEditor = wp.blockEditor || wp.editor;\n const {__} = wpI18n;\n const {Component, Fragment} = wpElement;\n const {registerBlockType, createBlock} = wpBlocks;\n const {InspectorControls, BlockControls, RichText, PanelColorSettings} = wpBlockEditor;\n const {PanelBody, BaseControl, RangeControl, SelectControl, ToggleControl, TextControl, Button, ToolbarGroup, ToolbarButton, DropdownMenu, Tooltip} = wpComponents;\n const {times} = lodash;\n\n const tableBlockIcon = (\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"20\" height=\"20\" viewBox=\"2 2 22 22\">\n <path d=\"M3 3v18h18V3H3zm8 16H5v-6h6v6zm0-8H5V5h6v6zm8 8h-6v-6h6v6zm0-8h-6V5h6v6z\"/>\n <path d=\"M0 0h24v24H0z\" fill=\"none\"/>\n </svg>\n );\n\n let willSetContent = null;\n let lastValue = '';\n\n const previewImageData = 'data:image/png;base64,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';\n\n class AdvTable extends Component {\n constructor() {\n super(...arguments);\n this.state = {\n initRow: 3,\n initCol: 3,\n selectedCell: null,\n rangeSelected: null,\n multiSelected: null,\n sectionSelected: null,\n updated: false,\n };\n\n this.calculateRealColIndex = this.calculateRealColIndex.bind(this);\n this.isMultiSelected = this.isMultiSelected.bind(this);\n this.isRangeSelected = this.isRangeSelected.bind(this);\n }\n\n componentWillMount() {\n const {attributes, setAttributes} = this.props;\n const currentBlockConfig = advgbDefaultConfig['advgb-table'];\n\n // No override attributes of blocks inserted before\n if (attributes.changed !== true) {\n if (typeof currentBlockConfig === 'object' && currentBlockConfig !== null) {\n Object.keys(currentBlockConfig).map((attribute) => {\n if (typeof attributes[attribute] === 'boolean') {\n attributes[attribute] = !!currentBlockConfig[attribute];\n } else {\n attributes[attribute] = currentBlockConfig[attribute];\n }\n });\n }\n\n // Finally set changed attribute to true, so we don't modify anything again\n setAttributes({changed: true});\n }\n }\n\n componentDidMount() {\n this.calculateRealColIndex('head');\n }\n\n componentDidUpdate() {\n const {isSelected} = this.props;\n const {selectedCell, updated} = this.state;\n\n if (!isSelected && selectedCell) {\n this.setState({\n selectedCell: null,\n rangeSelected: null,\n multiSelected: null,\n });\n }\n\n if (updated) {\n this.calculateRealColIndex();\n this.setState({updated: false});\n }\n }\n\n createTable() {\n const {setAttributes} = this.props;\n const {initRow, initCol} = this.state;\n\n this.setState({updated: true});\n return setAttributes({\n body: times(parseInt(initRow), () => ({\n cells: times(parseInt(initCol), () => ({\n content: '',\n }))\n }))\n });\n }\n\n // Check if is multi cells selected\n isMultiSelected() {\n const {multiSelected} = this.state;\n return (multiSelected && multiSelected.length > 1);\n }\n\n // Check if is range cells selected\n isRangeSelected() {\n const {rangeSelected} = this.state;\n return (rangeSelected && rangeSelected.toCell);\n }\n\n calculateRealColIndex() {\n const {attributes, setAttributes} = this.props;\n\n ['head', 'body', 'foot'].forEach((section) => {\n if (!attributes[section].length) return null;\n\n const newSection = attributes[section].map((row, cRow) => {\n return {\n cells: row.cells.map((cell, cCol) => {\n cell.cI = cCol;\n for (let i = 0; i < cRow; i++) {\n for (let j = 0; j < attributes[section][i].cells.length; j++) {\n if (attributes[section][i].cells[j] && attributes[section][i].cells[j].colSpan) {\n if (attributes[section][i].cells[j].rowSpan && i + parseInt(attributes[section][i].cells[j].rowSpan) > cRow) {\n if (cCol === 0) {\n if (attributes[section][i].cells[j].cI <= cell.cI) {\n cell.cI += parseInt(attributes[section][i].cells[j].colSpan);\n }\n } else {\n const lastColSpan = !isNaN(parseInt(row.cells[cCol - 1].colSpan)) ? parseInt(row.cells[cCol - 1].colSpan) : 0;\n if (attributes[section][i].cells[j].cI === row.cells[cCol - 1].cI + 1\n || attributes[section][i].cells[j].cI <= row.cells[cCol - 1].cI + lastColSpan\n ) {\n cell.cI += parseInt(attributes[section][i].cells[j].colSpan);\n }\n }\n }\n }\n }\n }\n\n for (let j = 0; j < cCol; j++) {\n if (row.cells[j]) {\n if (row.cells[j].colSpan) {\n cell.cI += parseInt(row.cells[j].colSpan) - 1;\n }\n }\n }\n\n return cell;\n })\n }\n });\n\n setAttributes({[section]: newSection});\n })\n }\n\n insertRow(offset) {\n const {selectedCell, sectionSelected} = this.state;\n\n if (!selectedCell) {\n return null;\n }\n\n const {attributes, setAttributes} = this.props;\n const currentSection = attributes[sectionSelected];\n const {rowIndex} = selectedCell;\n const newRow = jQuery.extend(true, {}, currentSection[rowIndex]);\n newRow.cells.map((cell) => {\n cell.content = '';\n\n return cell;\n });\n newRow.cells = newRow.cells.filter((cCell) => !cCell.rowSpan);\n\n const newSection = [\n ...currentSection.slice(0, rowIndex + offset),\n newRow,\n ...currentSection.slice(rowIndex + offset),\n ].map((row, rowIdx) => ({\n cells: row.cells.map((cell) => {\n if (cell.rowSpan) {\n if (rowIdx <= rowIndex && ((rowIdx + parseInt(cell.rowSpan) - 1) >= rowIndex)) {\n cell.rowSpan = parseInt(cell.rowSpan) + 1;\n }\n }\n return cell;\n })\n }));\n\n this.setState({\n selectedCell: null,\n sectionSelected: null,\n updated: true,\n });\n setAttributes({[sectionSelected]: newSection});\n }\n\n deleteRow() {\n const {selectedCell, sectionSelected} = this.state;\n\n if (!selectedCell) {\n return null;\n }\n\n const {attributes, setAttributes} = this.props;\n const currentSection = attributes[sectionSelected];\n const {rowIndex} = selectedCell;\n\n const newSection = currentSection.map((row, cRowIdx) => ({\n cells: row.cells.map((cell) => {\n if (cell.rowSpan) {\n if (cRowIdx <= rowIndex && parseInt(cell.rowSpan) + cRowIdx > rowIndex) {\n cell.rowSpan = parseInt(cell.rowSpan) - 1;\n if (cRowIdx === rowIndex) {\n const findColIdx = currentSection[cRowIdx + 1].cells.findIndex((elm) => elm.cI === cell.cI || elm.cI > cell.cI);\n currentSection[cRowIdx + 1].cells.splice(findColIdx, 0, cell);\n }\n }\n }\n\n return cell;\n })\n }));\n\n this.setState({\n selectedCell: null,\n sectionSelected: null,\n updated: true,\n });\n\n if (newSection.length < 2) {\n alert(__('At least 1 row of current section must present.', 'advanced-gutenberg'));\n return false;\n }\n\n setAttributes({\n [sectionSelected]: newSection.filter((row, index) => index !== rowIndex),\n });\n }\n\n insertColumn(offset) {\n const {selectedCell} = this.state;\n\n if (!selectedCell) {\n return null;\n }\n\n const {attributes, setAttributes} = this.props;\n const {cI} = selectedCell;\n let countRowSpan = 0;\n\n this.setState({selectedCell: null, updated: true});\n ['head', 'body', 'foot'].forEach((section) => (\n setAttributes({\n [section]: attributes[section].map((row) => {\n if (countRowSpan > 0) { // Skip if previous cell has row span\n countRowSpan--;\n return row;\n }\n\n let findColIdx = row.cells.findIndex((cell, idx) => cell.cI === cI || (row.cells[idx + 1] && row.cells[idx + 1].cI > cI));\n if (findColIdx === -1) {\n findColIdx = row.cells.length - 1;\n }\n\n if (row.cells[findColIdx].colSpan\n && row.cells[findColIdx].cI < cI + offset\n && row.cells[findColIdx].cI + parseInt(row.cells[findColIdx].colSpan) > cI + offset\n ) {\n row.cells[findColIdx].colSpan++;\n\n if (row.cells[findColIdx].rowSpan) {\n countRowSpan = parseInt(row.cells[findColIdx].rowSpan) - 1;\n }\n\n return row;\n } else {\n let realOffset = offset;\n if (row.cells[findColIdx].cI > cI && offset === 1) {\n realOffset = 0;\n } else if (row.cells[findColIdx].cI < cI && offset === 0) {\n realOffset = 1;\n }\n\n return {\n cells: [\n ...row.cells.slice(0, findColIdx + realOffset),\n {content: ''},\n ...row.cells.slice(findColIdx + realOffset),\n ],\n }\n }\n }),\n })\n ))\n }\n\n deleteColumn() {\n const {selectedCell} = this.state;\n\n if (!selectedCell) {\n return null;\n }\n\n const {attributes, setAttributes} = this.props;\n const {cI} = selectedCell;\n let countRowSpan = 0;\n\n this.setState({selectedCell: null, updated: true});\n ['head', 'body', 'foot'].forEach((section) => (\n setAttributes({\n [section]: attributes[section].map((row) => {\n if (countRowSpan > 0) {\n countRowSpan--;\n return row;\n }\n\n const findColIdx = row.cells.findIndex((cell, idx) => cell.cI === cI || (row.cells[idx + 1] && row.cells[idx + 1].cI > cI));\n\n if (row.cells[findColIdx].rowSpan) {\n countRowSpan = parseInt(row.cells[findColIdx].rowSpan) - 1;\n }\n\n if (row.cells[findColIdx].colSpan) {\n row.cells[findColIdx].colSpan--;\n if (row.cells[findColIdx].colSpan <= 1) {\n delete row.cells[findColIdx].colSpan;\n }\n\n return row;\n }\n\n return {\n cells: row.cells.filter((cell, index) => index !== findColIdx),\n }\n }),\n })\n ))\n }\n\n mergeCells() {\n const {rangeSelected, sectionSelected} = this.state;\n\n if (!this.isRangeSelected()) {\n return null;\n }\n\n const {attributes, setAttributes} = this.props;\n const {fromCell, toCell} = rangeSelected;\n const currentSection = attributes[sectionSelected];\n const fCell = currentSection[fromCell.rowIdx].cells[fromCell.colIdx];\n const tCell = currentSection[toCell.rowIdx].cells[toCell.colIdx];\n const fcSpan = typeof fCell.colSpan === 'undefined' ? 0 : parseInt(fCell.colSpan) - 1;\n const frSpan = typeof fCell.rowSpan === 'undefined' ? 0 : parseInt(fCell.rowSpan) - 1;\n const tcSpan = typeof tCell.colSpan === 'undefined' ? 0 : parseInt(tCell.colSpan) - 1;\n const trSpan = typeof tCell.rowSpan === 'undefined' ? 0 : parseInt(tCell.rowSpan) - 1;\n const minRowIdx = Math.min(fromCell.rowIdx, toCell.rowIdx);\n const maxRowIdx = Math.max(fromCell.rowIdx + frSpan, toCell.rowIdx + trSpan);\n const minColIdx = Math.min(fromCell.RCI, toCell.RCI);\n const maxColIdx = Math.max(fromCell.RCI + fcSpan, toCell.RCI + tcSpan);\n\n const newSection = currentSection.map((row, curRowIndex) => {\n if (curRowIndex < minRowIdx || curRowIndex > maxRowIdx) {\n return row;\n }\n\n return {\n cells: row.cells.map((cell, curColIndex) => {\n if (curColIndex === Math.min(fromCell.colIdx, toCell.colIdx)\n && curRowIndex === Math.min(fromCell.rowIdx, toCell.rowIdx)\n ) {\n const rowSpan = Math.abs(maxRowIdx - minRowIdx) + 1;\n const colSpan = Math.abs(maxColIdx - minColIdx) + 1;\n\n return {\n ...cell,\n rowSpan: rowSpan > 1 ? rowSpan : undefined,\n colSpan: colSpan > 1 ? colSpan : undefined,\n }\n }\n\n return cell;\n }).filter((cell, cCol) =>\n cell.cI < minColIdx\n || (cCol === Math.min(fromCell.colIdx, toCell.colIdx) && curRowIndex === Math.min(fromCell.rowIdx, toCell.rowIdx))\n || cell.cI > maxColIdx\n )\n }\n });\n\n setAttributes({[sectionSelected]: newSection});\n this.setState({\n selectedCell: null,\n sectionSelected: null,\n rangeSelected: null,\n updated: true,\n });\n }\n\n splitMergedCells() {\n const {selectedCell, sectionSelected} = this.state;\n\n if (!selectedCell) {\n return null;\n }\n\n const {attributes, setAttributes} = this.props;\n const {colIndex, rowIndex, cI} = selectedCell;\n\n const cellColSpan = attributes[sectionSelected][rowIndex].cells[colIndex].colSpan ? parseInt(attributes[sectionSelected][rowIndex].cells[colIndex].colSpan) : 1;\n const cellRowSpan = attributes[sectionSelected][rowIndex].cells[colIndex].rowSpan ? parseInt(attributes[sectionSelected][rowIndex].cells[colIndex].rowSpan) : 1;\n attributes[sectionSelected][rowIndex].cells[colIndex].colSpan = undefined;\n attributes[sectionSelected][rowIndex].cells[colIndex].rowSpan = undefined;\n\n const newSection = attributes[sectionSelected].map((row, curRowIndex) => {\n if (curRowIndex >= rowIndex && curRowIndex < (rowIndex + cellRowSpan)) {\n const findColIdx = row.cells.findIndex((cell) => cell.cI >= cI);\n let startRowFix = 0;\n if (curRowIndex === rowIndex) {\n startRowFix = 1;\n }\n\n return {\n cells: [\n ...row.cells.slice(0, findColIdx + startRowFix),\n ...times(cellColSpan - startRowFix, () => ({content: ''})),\n ...row.cells.slice(findColIdx + startRowFix),\n ],\n }\n }\n\n return row;\n });\n\n setAttributes({[sectionSelected]: newSection});\n this.setState({\n selectedCell: null,\n sectionSelected: null,\n updated: true,\n });\n }\n\n // Parse styles from HTML form to React styles object\n static parseStyles(styles) {\n if (typeof styles !== 'string') {\n return styles;\n }\n\n return styles\n .split(';')\n .filter(style => style.split(':')[0] && style.split(':')[1])\n .map(style => [\n style.split(':')[0].trim().replace(/-./g, c => c.substr(1).toUpperCase()),\n style.split(':')[1].trim()\n ])\n .reduce((styleObj, style) => ({\n ...styleObj,\n [style[0]]: style[1],\n }), {});\n }\n\n getCellStyles(style) {\n const {selectedCell, sectionSelected} = this.state;\n const section = this.props.attributes[sectionSelected];\n\n if (!selectedCell) return undefined;\n\n const {rowIndex, colIndex} = selectedCell;\n\n if (style === 'borderColor') {\n return section[rowIndex].cells[colIndex].borderColorSaved;\n }\n const styles = AdvTable.parseStyles(section[rowIndex].cells[colIndex].styles);\n\n if (typeof styles === 'object') {\n let convertedStyles = styles[style];\n\n if (convertedStyles && typeof convertedStyles !== 'number' && convertedStyles.indexOf('px')) {\n convertedStyles = styles[style].replace(/px/g, '');\n }\n\n return typeof convertedStyles === 'undefined' && style === 'borderStyle' ? 'solid' : convertedStyles;\n } else {\n if (typeof styles !== 'undefined') {\n let convertedStyles = styles[style];\n }\n\n return typeof convertedStyles === 'undefined' && style === 'borderStyle' ? 'solid' : undefined;\n }\n }\n\n updateCellsStyles(style) {\n const {selectedCell, rangeSelected, multiSelected, sectionSelected} = this.state;\n if (!selectedCell && !this.isRangeSelected() && !this.isMultiSelected()) {\n return null;\n }\n\n const {attributes, setAttributes} = this.props;\n const {rowIndex, colIndex} = selectedCell;\n const section = attributes[sectionSelected];\n let minRowIdx, maxRowIdx, minColIdx, maxColIdx;\n\n if (this.isRangeSelected()) {\n const {fromCell, toCell} = rangeSelected;\n const fCell = section[fromCell.rowIdx].cells[fromCell.colIdx];\n const tCell = section[toCell.rowIdx].cells[toCell.colIdx];\n const fcSpan = typeof fCell.colSpan === 'undefined' ? 0 : parseInt(fCell.colSpan) - 1;\n const frSpan = typeof fCell.rowSpan === 'undefined' ? 0 : parseInt(fCell.rowSpan) - 1;\n const tcSpan = typeof tCell.colSpan === 'undefined' ? 0 : parseInt(tCell.colSpan) - 1;\n const trSpan = typeof tCell.rowSpan === 'undefined' ? 0 : parseInt(tCell.rowSpan) - 1;\n minRowIdx = Math.min(fromCell.rowIdx, toCell.rowIdx);\n maxRowIdx = Math.max(fromCell.rowIdx + frSpan, toCell.rowIdx + trSpan);\n minColIdx = Math.min(fromCell.RCI, toCell.RCI);\n maxColIdx = Math.max(fromCell.RCI + fcSpan, toCell.RCI + tcSpan);\n }\n\n const newSection = section.map((row, curRowIndex) => {\n if (!this.isRangeSelected() && !this.isMultiSelected() && curRowIndex !== rowIndex\n || (this.isRangeSelected() && (curRowIndex < minRowIdx || curRowIndex > maxRowIdx))\n || (this.isMultiSelected() && multiSelected.findIndex((c) => c.rowIndex === curRowIndex) === -1)\n ) {\n return row;\n }\n\n return {\n cells: row.cells.map((cell, curColIndex) => {\n if (!this.isRangeSelected() && !this.isMultiSelected() && curColIndex === colIndex\n || (this.isRangeSelected() && (cell.cI >= minColIdx && cell.cI <= maxColIdx))\n || (this.isMultiSelected() && multiSelected.findIndex((c) => c.colIndex === curColIndex && c.rowIndex === curRowIndex) > -1)\n ) {\n cell.styles = AdvTable.parseStyles(cell.styles);\n\n if (style.borderColor) {\n // Set border color\n if (cell.styles.borderTopColor) {\n cell.styles = {...cell.styles, borderTopColor: style.borderColor};\n }\n if (cell.styles.borderRightColor) {\n cell.styles = {...cell.styles, borderRightColor: style.borderColor};\n }\n if (cell.styles.borderBottomColor) {\n cell.styles = {...cell.styles, borderBottomColor: style.borderColor};\n }\n if (cell.styles.borderLeftColor) {\n cell.styles = {...cell.styles, borderLeftColor: style.borderColor};\n }\n\n cell.borderColorSaved = style.borderColor;\n } else if (style.setBorder) {\n // Set border\n const cellBorderColor = cell.borderColorSaved || '#000';\n const cellColSpan = !cell.colSpan ? 0 : parseInt(cell.colSpan) - 1;\n const cellRowSpan = !cell.rowSpan ? 0 : parseInt(cell.rowSpan) - 1;\n switch (style.setBorder) {\n case 'top':\n cell.styles = {...cell.styles, borderTopColor: cellBorderColor};\n break;\n case 'right':\n cell.styles = {...cell.styles, borderRightColor: cellBorderColor};\n break;\n case 'bottom':\n cell.styles = {...cell.styles, borderBottomColor: cellBorderColor};\n break;\n case 'left':\n cell.styles = {...cell.styles, borderLeftColor: cellBorderColor};\n break;\n case 'all':\n cell.styles = {\n ...cell.styles,\n borderTopColor: cellBorderColor,\n borderRightColor: cellBorderColor,\n borderBottomColor: cellBorderColor,\n borderLeftColor: cellBorderColor,\n };\n break;\n case 'none':\n cell.styles = {\n ...cell.styles,\n borderTopColor: undefined,\n borderRightColor: undefined,\n borderBottomColor: undefined,\n borderLeftColor: undefined,\n };\n break;\n case 'vert':\n if (cell.cI === minColIdx) {\n cell.styles = {\n ...cell.styles,\n borderRightColor: cellBorderColor,\n };\n } else if (cell.cI + cellColSpan === maxColIdx) {\n cell.styles = {\n ...cell.styles,\n borderLeftColor: cellBorderColor,\n };\n } else {\n cell.styles = {\n ...cell.styles,\n borderRightColor: cellBorderColor,\n borderLeftColor: cellBorderColor,\n };\n }\n break;\n case 'horz':\n if (curRowIndex === minRowIdx) {\n cell.styles = {\n ...cell.styles,\n borderBottomColor: cellBorderColor,\n };\n } else if (curRowIndex + cellRowSpan === maxRowIdx) {\n cell.styles = {\n ...cell.styles,\n borderTopColor: cellBorderColor,\n };\n } else {\n cell.styles = {\n ...cell.styles,\n borderTopColor: cellBorderColor,\n borderBottomColor: cellBorderColor,\n };\n }\n break;\n case 'inner':\n if (curRowIndex === minRowIdx) {\n cell.styles = {\n ...cell.styles,\n borderBottomColor: cellBorderColor,\n };\n } else if (curRowIndex + cellRowSpan === maxRowIdx) {\n cell.styles = {\n ...cell.styles,\n borderTopColor: cellBorderColor,\n };\n } else {\n cell.styles = {\n ...cell.styles,\n borderTopColor: cellBorderColor,\n borderBottomColor: cellBorderColor,\n };\n }\n\n if (cell.cI === minColIdx) {\n cell.styles = {\n ...cell.styles,\n borderRightColor: cellBorderColor,\n };\n } else if (cell.cI + cellColSpan === maxColIdx) {\n cell.styles = {\n ...cell.styles,\n borderLeftColor: cellBorderColor,\n };\n } else {\n cell.styles = {\n ...cell.styles,\n borderRightColor: cellBorderColor,\n borderLeftColor: cellBorderColor,\n };\n }\n break;\n case 'outer':\n if (curRowIndex === minRowIdx) {\n cell.styles = {\n ...cell.styles,\n borderTopColor: cellBorderColor,\n };\n } else if (curRowIndex + cellRowSpan === maxRowIdx) {\n cell.styles = {\n ...cell.styles,\n borderBottomColor: cellBorderColor,\n };\n }\n\n if (cell.cI === minColIdx) {\n cell.styles = {\n ...cell.styles,\n borderLeftColor: cellBorderColor,\n };\n } else if (cell.cI + cellColSpan === maxColIdx) {\n cell.styles = {\n ...cell.styles,\n borderRightColor: cellBorderColor,\n };\n }\n break;\n default: // Nothing\n break;\n }\n } else {\n cell.styles = {...cell.styles, ...style};\n }\n }\n\n return cell;\n })\n }\n });\n\n setAttributes({[section]: newSection});\n }\n\n updateCellContent(content, cell = null) {\n const {selectedCell, sectionSelected} = this.state;\n if (!selectedCell && !cell) {\n return null;\n }\n\n let rowIndex, colIndex;\n if (cell) {\n rowIndex = cell.rowIndex;\n colIndex = cell.colIndex;\n } else {\n rowIndex = selectedCell.rowIndex;\n colIndex = selectedCell.colIndex;\n }\n\n const {attributes, setAttributes} = this.props;\n\n const newSection = attributes[sectionSelected].map((row, curRowIndex) => {\n if (curRowIndex !== rowIndex) {\n return row;\n }\n\n return {\n cells: row.cells.map((cell, curColIndex) => {\n if (curColIndex !== colIndex) {\n return cell;\n }\n\n return {\n ...cell,\n content,\n }\n })\n }\n });\n\n setAttributes({[sectionSelected]: newSection});\n }\n\n toggleSection(section) {\n const {attributes, setAttributes} = this.props;\n const {sectionSelected} = this.state;\n const {body} = attributes;\n const cellsToAdd = [{cells: body[0].cells.map((cell) => ({cI: cell.cI, colSpan: cell.colSpan}))}];\n\n if (sectionSelected === section) {\n this.setState({\n selectedCell: null,\n sectionSelected: null,\n })\n }\n\n if (!attributes[section].length) {\n return setAttributes({[section]: cellsToAdd});\n }\n\n return setAttributes({[section]: []});\n }\n\n renderSection(section) {\n const {attributes} = this.props;\n const {selectedCell, multiSelected, rangeSelected, sectionSelected} = this.state;\n\n return attributes[section].map(({cells}, rowIndex) => (\n <tr key={rowIndex}>\n {cells.map(({content, styles, colSpan, rowSpan, cI}, colIndex) => {\n const cell = {rowIndex, colIndex, cI, section};\n\n let isSelected = selectedCell\n && selectedCell.rowIndex === rowIndex\n && selectedCell.colIndex === colIndex\n && sectionSelected === section;\n\n if (this.isRangeSelected()) {\n const {fromCell, toCell} = rangeSelected;\n if (attributes[sectionSelected][fromCell.rowIdx] && attributes[sectionSelected][toCell.rowIdx]) {\n const fCell = attributes[sectionSelected][fromCell.rowIdx].cells[fromCell.colIdx];\n const tCell = attributes[sectionSelected][toCell.rowIdx].cells[toCell.colIdx];\n const fcSpan = typeof fCell.colSpan === 'undefined' ? 0 : parseInt(fCell.colSpan) - 1;\n const frSpan = typeof fCell.rowSpan === 'undefined' ? 0 : parseInt(fCell.rowSpan) - 1;\n const tcSpan = typeof tCell.colSpan === 'undefined' ? 0 : parseInt(tCell.colSpan) - 1;\n const trSpan = typeof tCell.rowSpan === 'undefined' ? 0 : parseInt(tCell.rowSpan) - 1;\n\n isSelected = rowIndex >= Math.min(fromCell.rowIdx, toCell.rowIdx)\n && rowIndex <= Math.max(fromCell.rowIdx + frSpan, toCell.rowIdx + trSpan)\n && cI >= Math.min(fromCell.RCI, toCell.RCI)\n && cI <= Math.max(fromCell.RCI + fcSpan, toCell.RCI + tcSpan)\n && section === sectionSelected;\n }\n }\n\n if (this.isMultiSelected()) {\n isSelected = multiSelected.findIndex((c) => c.rowIndex === rowIndex && c.colIndex === colIndex) > -1\n && multiSelected[0].section === section;\n }\n\n\n const cellClassName = [\n isSelected && 'cell-selected',\n ].filter(Boolean).join(' ');\n\n styles = AdvTable.parseStyles(styles);\n\n return (\n <td key={colIndex}\n className={cellClassName}\n style={styles}\n colSpan={colSpan}\n rowSpan={rowSpan}\n onClick={(e) => {\n if (e.shiftKey) {\n if (!rangeSelected) return;\n if (!rangeSelected.fromCell) return;\n\n const {fromCell} = rangeSelected;\n if (section !== fromCell.section) {\n alert(__('Cannot select multi cells from difference section!', 'advanced-gutenberg'));\n return;\n }\n const toCell = {\n rowIdx: rowIndex,\n colIdx: colIndex,\n RCI: cI,\n section: section,\n };\n\n this.setState({\n rangeSelected: {fromCell, toCell},\n multiSelected: null,\n });\n } else if (e.ctrlKey || e.metaKey) {\n const multiCells = multiSelected ? multiSelected : [];\n const existCell = multiCells.findIndex((cel) => cel.rowIndex === rowIndex && cel.colIndex === colIndex);\n\n if (multiCells.length && section !== multiCells[0].section) {\n alert(__('Cannot select multi cells from difference section!', 'advanced-gutenberg'));\n return;\n }\n\n if (existCell === -1) {\n multiCells.push(cell);\n } else {\n multiCells.splice(existCell, 1);\n }\n\n this.setState({\n multiSelected: multiCells,\n rangeSelected: null,\n });\n } else {\n this.setState({\n rangeSelected: {\n fromCell: {\n rowIdx: rowIndex,\n colIdx: colIndex,\n RCI: cI,\n section: section,\n },\n },\n multiSelected: [cell],\n });\n }\n }}\n >\n <RichText\n className=\"wp-block-table__cell-content\"\n value={content}\n onChange={(value) => {\n if (willSetContent) clearTimeout(willSetContent);\n lastValue = value;\n willSetContent = setTimeout(() => this.updateCellContent(value, selectedCell), 10);\n }}\n unstableOnFocus={() => {\n if (willSetContent) {\n this.updateCellContent(lastValue, selectedCell);\n clearTimeout(willSetContent);\n willSetContent = null;\n }\n this.setState({\n selectedCell: cell,\n sectionSelected: section,\n });\n }}\n /* onClick jump to the rescue in case unstableOnFocus\n * doesn't work due the cell is not focused */\n onClick={() => {\n if (willSetContent) {\n this.updateCellContent(lastValue, selectedCell);\n clearTimeout(willSetContent);\n willSetContent = null;\n }\n this.setState({\n selectedCell: cell,\n sectionSelected: section,\n });\n }}\n />\n </td>\n )\n })}\n </tr>\n ));\n }\n\n render() {\n const {attributes, setAttributes, className} = this.props;\n const {head, body, foot, maxWidth, tableCollapsed, hasFixedLayout, isPreview} = attributes;\n const {initRow, initCol, selectedCell, rangeSelected, multiSelected} = this.state;\n const maxWidthVal = !!maxWidth ? maxWidth : undefined;\n const currentCell = selectedCell ? body[selectedCell.rowIndex].cells[selectedCell.colIndex] : null;\n\n // First time insert block, let user determine the table\n if (!body.length) {\n return (\n isPreview ?\n <img alt={__('Advanced Table', 'advanced-gutenberg')} width='100%' src={previewImageData}/>\n :\n <Fragment>\n <div className=\"advgb-init-table\">\n <TextControl\n type=\"number\"\n label={__('Column Count', 'advanced-gutenberg')}\n value={initCol}\n onChange={(value) => this.setState({initCol: value})}\n min=\"1\"\n />\n <TextControl\n type=\"number\"\n label={__('Row Count', 'advanced-gutenberg')}\n value={initRow}\n onChange={(value) => this.setState({initRow: value})}\n min=\"1\"\n />\n <Button isPrimary\n onClick={() => this.createTable()}>{__('Create', 'advanced-gutenberg')}</Button>\n <div style={{marginTop: 10}}>\n <small>{__('Hint: Hold CTRL key for multi cells selection. Hold SHIFT key for range cells selection.', 'advanced-gutenberg')}</small>\n </div>\n </div>\n </Fragment>\n )\n }\n\n const TABLE_CONTROLS = [\n {\n icon: 'table-row-before',\n title: __('Add Row Before', 'advanced-gutenberg'),\n isDisabled: !selectedCell || this.isRangeSelected() || this.isMultiSelected(),\n onClick: () => this.insertRow(0),\n },\n {\n icon: 'table-row-after',\n title: __('Add Row After', 'advanced-gutenberg'),\n isDisabled: !selectedCell || this.isRangeSelected() || this.isMultiSelected(),\n onClick: () => this.insertRow(1),\n },\n {\n icon: 'table-row-delete',\n title: __('Delete Row', 'advanced-gutenberg'),\n isDisabled: !selectedCell || this.isRangeSelected() || this.isMultiSelected(),\n onClick: () => this.deleteRow(),\n },\n {\n icon: 'table-col-before',\n title: __('Add Column Before', 'advanced-gutenberg'),\n isDisabled: !selectedCell || this.isRangeSelected() || this.isMultiSelected(),\n onClick: () => this.insertColumn(0),\n },\n {\n icon: 'table-col-after',\n title: __('Add Column After', 'advanced-gutenberg'),\n isDisabled: !selectedCell || this.isRangeSelected() || this.isMultiSelected(),\n onClick: () => this.insertColumn(1),\n },\n {\n icon: 'table-col-delete',\n title: __('Delete Column', 'advanced-gutenberg'),\n isDisabled: !selectedCell || this.isRangeSelected() || this.isMultiSelected(),\n onClick: () => this.deleteColumn(),\n },\n {\n icon: (\n <svg width=\"20\" height=\"20\" viewBox=\"4 2 18 18\" className=\"dashicon\">\n <path fill=\"none\" d=\"M0,0h24v24H0V0z\"/>\n <path d=\"M4,5v13h17V5H4z M14,7v9h-3V7H14z M6,7h3v9H6V7z M19,16h-3V7h3V16z\"/>\n </svg>\n ),\n title: __('Split Merged Cells', 'advanced-gutenberg'),\n isDisabled: !selectedCell\n || (currentCell && !currentCell.rowSpan && !currentCell.colSpan)\n || this.isRangeSelected()\n || this.isMultiSelected(),\n onClick: () => this.splitMergedCells(),\n },\n {\n icon: (\n <svg width=\"20\" height=\"20\" className=\"dashicon\" viewBox=\"2 2 22 22\">\n <path fill=\"none\" d=\"M0,0h24v24H0V0z\"/>\n <polygon points=\"21,18 2,18 2,20 21,20 21,18\"/>\n <path\n d=\"M19,10v4H4v-4H19 M20,8H3C2.45,8,2,8.45,2,9v6c0,0.55,0.45,1,1,1h17c0.55,0,1-0.45,1-1V9C21,8.45,20.55,8,20,8L20,8z\"/>\n <polygon points=\"21,4 2,4 2,6 21,6 21,4\"/>\n </svg>\n ),\n title: __('Merge Cells', 'advanced-gutenberg'),\n isDisabled: !this.isRangeSelected(),\n onClick: () => this.mergeCells(),\n },\n ];\n\n let BORDER_SELECT = [\n {\n title: __('Border Top', 'advanced-gutenberg'),\n icon: (\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\">\n <path\n d=\"M7 21h2v-2H7v2zm0-8h2v-2H7v2zm4 0h2v-2h-2v2zm0 8h2v-2h-2v2zm-8-4h2v-2H3v2zm0 4h2v-2H3v2zm0-8h2v-2H3v2zm0-4h2V7H3v2zm8 8h2v-2h-2v2zm8-8h2V7h-2v2zm0 4h2v-2h-2v2zM3 3v2h18V3H3zm16 14h2v-2h-2v2zm-4 4h2v-2h-2v2zM11 9h2V7h-2v2zm8 12h2v-2h-2v2zm-4-8h2v-2h-2v2z\"/>\n <path d=\"M0 0h24v24H0z\" fill=\"none\"/>\n </svg>\n ),\n onClick: () => this.updateCellsStyles({setBorder: 'top'}),\n },\n {\n title: __('Border Right', 'advanced-gutenberg'),\n icon: (\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\">\n <path\n d=\"M7 21h2v-2H7v2zM3 5h2V3H3v2zm4 0h2V3H7v2zm0 8h2v-2H7v2zm-4 8h2v-2H3v2zm8 0h2v-2h-2v2zm-8-8h2v-2H3v2zm0 4h2v-2H3v2zm0-8h2V7H3v2zm8 8h2v-2h-2v2zm4-4h2v-2h-2v2zm4-10v18h2V3h-2zm-4 18h2v-2h-2v2zm0-16h2V3h-2v2zm-4 8h2v-2h-2v2zm0-8h2V3h-2v2zm0 4h2V7h-2v2z\"/>\n <path d=\"M0 0h24v24H0z\" fill=\"none\"/>\n </svg>\n ),\n onClick: () => this.updateCellsStyles({setBorder: 'right'}),\n },\n {\n title: __('Border Bottom', 'advanced-gutenberg'),\n icon: (\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\">\n <path\n d=\"M9 11H7v2h2v-2zm4 4h-2v2h2v-2zM9 3H7v2h2V3zm4 8h-2v2h2v-2zM5 3H3v2h2V3zm8 4h-2v2h2V7zm4 4h-2v2h2v-2zm-4-8h-2v2h2V3zm4 0h-2v2h2V3zm2 10h2v-2h-2v2zm0 4h2v-2h-2v2zM5 7H3v2h2V7zm14-4v2h2V3h-2zm0 6h2V7h-2v2zM5 11H3v2h2v-2zM3 21h18v-2H3v2zm2-6H3v2h2v-2z\"/>\n <path d=\"M0 0h24v24H0z\" fill=\"none\"/>\n </svg>\n ),\n onClick: () => this.updateCellsStyles({setBorder: 'bottom'}),\n },\n {\n title: __('Border Left', 'advanced-gutenberg'),\n icon: (\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\">\n <path\n d=\"M11 21h2v-2h-2v2zm0-4h2v-2h-2v2zm0-12h2V3h-2v2zm0 4h2V7h-2v2zm0 4h2v-2h-2v2zm-4 8h2v-2H7v2zM7 5h2V3H7v2zm0 8h2v-2H7v2zm-4 8h2V3H3v18zM19 9h2V7h-2v2zm-4 12h2v-2h-2v2zm4-4h2v-2h-2v2zm0-14v2h2V3h-2zm0 10h2v-2h-2v2zm0 8h2v-2h-2v2zm-4-8h2v-2h-2v2zm0-8h2V3h-2v2z\"/>\n <path d=\"M0 0h24v24H0z\" fill=\"none\"/>\n </svg>\n ),\n onClick: () => this.updateCellsStyles({setBorder: 'left'}),\n },\n {\n title: __('Border All', 'advanced-gutenberg'),\n icon: (\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\">\n <path d=\"M3 3v18h18V3H3zm8 16H5v-6h6v6zm0-8H5V5h6v6zm8 8h-6v-6h6v6zm0-8h-6V5h6v6z\"/>\n <path d=\"M0 0h24v24H0z\" fill=\"none\"/>\n </svg>\n ),\n onClick: () => this.updateCellsStyles({setBorder: 'all'}),\n },\n {\n title: __('Border None', 'advanced-gutenberg'),\n icon: (\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\">\n <path\n d=\"M7 5h2V3H7v2zm0 8h2v-2H7v2zm0 8h2v-2H7v2zm4-4h2v-2h-2v2zm0 4h2v-2h-2v2zm-8 0h2v-2H3v2zm0-4h2v-2H3v2zm0-4h2v-2H3v2zm0-4h2V7H3v2zm0-4h2V3H3v2zm8 8h2v-2h-2v2zm8 4h2v-2h-2v2zm0-4h2v-2h-2v2zm0 8h2v-2h-2v2zm0-12h2V7h-2v2zm-8 0h2V7h-2v2zm8-6v2h2V3h-2zm-8 2h2V3h-2v2zm4 16h2v-2h-2v2zm0-8h2v-2h-2v2zm0-8h2V3h-2v2z\"/>\n <path d=\"M0 0h24v24H0z\" fill=\"none\"/>\n </svg>\n ),\n onClick: () => this.updateCellsStyles({setBorder: 'none'}),\n },\n ];\n\n if (this.isRangeSelected()) {\n const EXTRA_BORDER_SELECT = [\n {\n title: __('Border Vertical', 'advanced-gutenberg'),\n icon: (\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\">\n <path\n d=\"M3 9h2V7H3v2zm0-4h2V3H3v2zm4 16h2v-2H7v2zm0-8h2v-2H7v2zm-4 0h2v-2H3v2zm0 8h2v-2H3v2zm0-4h2v-2H3v2zM7 5h2V3H7v2zm12 12h2v-2h-2v2zm-8 4h2V3h-2v18zm8 0h2v-2h-2v2zm0-8h2v-2h-2v2zm0-10v2h2V3h-2zm0 6h2V7h-2v2zm-4-4h2V3h-2v2zm0 16h2v-2h-2v2zm0-8h2v-2h-2v2z\"/>\n <path d=\"M0 0h24v24H0z\" fill=\"none\"/>\n </svg>\n ),\n onClick: () => this.updateCellsStyles({setBorder: 'vert'}),\n },\n {\n title: __('Border Horizontal', 'advanced-gutenberg'),\n icon: (\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\">\n <path\n d=\"M3 21h2v-2H3v2zM5 7H3v2h2V7zM3 17h2v-2H3v2zm4 4h2v-2H7v2zM5 3H3v2h2V3zm4 0H7v2h2V3zm8 0h-2v2h2V3zm-4 4h-2v2h2V7zm0-4h-2v2h2V3zm6 14h2v-2h-2v2zm-8 4h2v-2h-2v2zm-8-8h18v-2H3v2zM19 3v2h2V3h-2zm0 6h2V7h-2v2zm-8 8h2v-2h-2v2zm4 4h2v-2h-2v2zm4 0h2v-2h-2v2z\"/>\n <path d=\"M0 0h24v24H0z\" fill=\"none\"/>\n </svg>\n ),\n onClick: () => this.updateCellsStyles({setBorder: 'horz'}),\n },\n {\n title: __('Border Inner', 'advanced-gutenberg'),\n icon: (\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\">\n <path\n d=\"M3 21h2v-2H3v2zm4 0h2v-2H7v2zM5 7H3v2h2V7zM3 17h2v-2H3v2zM9 3H7v2h2V3zM5 3H3v2h2V3zm12 0h-2v2h2V3zm2 6h2V7h-2v2zm0-6v2h2V3h-2zm-4 18h2v-2h-2v2zM13 3h-2v8H3v2h8v8h2v-8h8v-2h-8V3zm6 18h2v-2h-2v2zm0-4h2v-2h-2v2z\"/>\n <path d=\"M0 0h24v24H0z\" fill=\"none\"/>\n </svg>\n ),\n onClick: () => this.updateCellsStyles({setBorder: 'inner'}),\n },\n {\n title: __('Border Outer', 'advanced-gutenberg'),\n icon: (\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\">\n <path\n d=\"M13 7h-2v2h2V7zm0 4h-2v2h2v-2zm4 0h-2v2h2v-2zM3 3v18h18V3H3zm16 16H5V5h14v14zm-6-4h-2v2h2v-2zm-4-4H7v2h2v-2z\"/>\n <path d=\"M0 0h24v24H0z\" fill=\"none\"/>\n </svg>\n ),\n onClick: () => this.updateCellsStyles({setBorder: 'outer'}),\n },\n ];\n\n BORDER_SELECT = [...BORDER_SELECT, ...EXTRA_BORDER_SELECT];\n }\n\n const HORZ_ALIGNMENT_CONTROLS = [\n {\n icon: 'editor-alignleft',\n title: __('Align left', 'advanced-gutenberg'),\n align: 'left',\n },\n {\n icon: 'editor-aligncenter',\n title: __('Align center', 'advanced-gutenberg'),\n align: 'center',\n },\n {\n icon: 'editor-alignright',\n title: __('Align right', 'advanced-gutenberg'),\n align: 'right',\n },\n {\n icon: 'editor-justify',\n title: __('Align justify', 'advanced-gutenberg'),\n align: 'justify',\n },\n ];\n\n const VERT_ALIGNMENT_CONTROLS = [\n {\n icon: (\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"20\" height=\"20\" viewBox=\"0 0 24 24\">\n <path d=\"M8 11h3v10h2V11h3l-4-4-4 4zM4 3v2h16V3H4z\"/>\n <path d=\"M0 0h24v24H0z\" fill=\"none\"/>\n </svg>\n ),\n title: __('Align top', 'advanced-gutenberg'),\n align: 'top',\n },\n {\n icon: (\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"20\" height=\"20\" viewBox=\"0 0 24 24\">\n <path d=\"M8 19h3v4h2v-4h3l-4-4-4 4zm8-14h-3V1h-2v4H8l4 4 4-4zM4 11v2h16v-2H4z\"/>\n <path d=\"M0 0h24v24H0z\" fill=\"none\"/>\n </svg>\n ),\n title: __('Align middle', 'advanced-gutenberg'),\n align: 'middle',\n },\n {\n icon: (\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"20\" height=\"20\" viewBox=\"0 0 24 24\">\n <path d=\"M16 13h-3V3h-2v10H8l4 4 4-4zM4 19v2h16v-2H4z\"/>\n <path d=\"M0 0h24v24H0z\" fill=\"none\"/>\n </svg>\n ),\n title: __('Align bottom', 'advanced-gutenberg'),\n align: 'bottom',\n },\n ];\n\n return (\n isPreview ?\n <img alt={__('Advanced Table', 'advanced-gutenberg')} width='100%' src={previewImageData}/>\n :\n <Fragment>\n <BlockControls>\n <ToolbarGroup>\n <DropdownMenu\n hasArrowIndicator\n icon=\"editor-table\"\n label={__('Edit Table', 'advanced-gutenberg')}\n controls={TABLE_CONTROLS}\n />\n <ToolbarButton\n icon=\"update\"\n label={__('Refresh table (Use this after using undo or redo)', 'advanced-gutenberg')}\n onClick={() => this.calculateRealColIndex()}\n />\n </ToolbarGroup>\n </BlockControls>\n <InspectorControls>\n <PanelBody title={__('Table Settings', 'advanced-gutenberg')}>\n <RangeControl\n label={__('Max width (px)', 'advanced-gutenberg')}\n help={__('Set this to 0 to make max-width is 100%', 'advanced-gutenberg')}\n min={0}\n max={1999}\n value={maxWidth}\n onChange={(value) => setAttributes({maxWidth: value})}\n />\n <ToggleControl\n label={__('Fixed width table cells', 'advanced-gutenberg')}\n checked={hasFixedLayout}\n onChange={() => setAttributes({hasFixedLayout: !hasFixedLayout})}\n />\n <ToggleControl\n label={__('Table header', 'advanced-gutenberg')}\n checked={head && head.length}\n onChange={() => this.toggleSection('head')}\n />\n <ToggleControl\n label={__('Table footer', 'advanced-gutenberg')}\n checked={foot && foot.length}\n onChange={() => this.toggleSection('foot')}\n />\n <ToggleControl\n label={__('Border collapsed', 'advanced-gutenberg')}\n checked={tableCollapsed}\n onChange={() => setAttributes({tableCollapsed: !tableCollapsed})}\n />\n </PanelBody>\n <PanelBody title={__('Cell Settings', 'advanced-gutenberg')}>\n <PanelColorSettings\n title={__('Color Settings', 'advanced-gutenberg')}\n colorSettings={[\n {\n label: __('Background Color', 'advanced-gutenberg'),\n value: this.getCellStyles('backgroundColor'),\n onChange: (value) => this.updateCellsStyles({backgroundColor: value}),\n },\n {\n label: __('Text Color', 'advanced-gutenberg'),\n value: this.getCellStyles('color'),\n onChange: (value) => this.updateCellsStyles({color: value}),\n },\n ]}\n />\n <PanelBody title={__('Border', 'advanced-gutenberg')} initialOpen={false}>\n <div className=\"advgb-border-item-wrapper\">\n {BORDER_SELECT.map((item, index) => (\n <div className=\"advgb-border-item\" key={index}>\n <Tooltip text={item.title}>\n <span onClick={item.onClick}>{item.icon}</span>\n </Tooltip>\n </div>\n ))}\n </div>\n <SelectControl\n label={__('Border Style', 'advanced-gutenberg')}\n value={this.getCellStyles('borderStyle')}\n options={[\n {label: __('Solid', 'advanced-gutenberg'), value: 'solid'},\n {label: __('Dashed', 'advanced-gutenberg'), value: 'dashed'},\n {label: __('Dotted', 'advanced-gutenberg'), value: 'dotted'},\n {label: __('None', 'advanced-gutenberg'), value: 'none'},\n ]}\n onChange={(value) => this.updateCellsStyles({borderStyle: value})}\n />\n <RangeControl\n label={__('Border width', 'advanced-gutenberg')}\n value={this.getCellStyles('borderWidth') || 0}\n min={0}\n max={10}\n onChange={(value) => this.updateCellsStyles({borderWidth: value})}\n />\n <PanelColorSettings\n title={__('Border Color', 'advanced-gutenberg')}\n colorSettings={[\n {\n label: __('Border Color', 'advanced-gutenberg'),\n value: this.getCellStyles('borderColor'),\n onChange: (value) => this.updateCellsStyles({borderColor: value}),\n },\n ]}\n />\n </PanelBody>\n <PanelBody title={__('Padding', 'advanced-gutenberg')} initialOpen={false}>\n <RangeControl\n label={__('Padding Top', 'advanced-gutenberg')}\n value={this.getCellStyles('paddingTop') || 0}\n min={0}\n max={100}\n onChange={(value) => this.updateCellsStyles({paddingTop: value})}\n />\n <RangeControl\n label={__('Padding Right', 'advanced-gutenberg')}\n value={this.getCellStyles('paddingRight') || 0}\n min={0}\n max={100}\n onChange={(value) => this.updateCellsStyles({paddingRight: value})}\n />\n <RangeControl\n label={__('Padding Bottom', 'advanced-gutenberg')}\n value={this.getCellStyles('paddingBottom') || 0}\n min={0}\n max={100}\n onChange={(value) => this.updateCellsStyles({paddingBottom: value})}\n />\n <RangeControl\n label={__('Padding Left', 'advanced-gutenberg')}\n value={this.getCellStyles('paddingLeft') || 0}\n min={0}\n max={100}\n onChange={(value) => this.updateCellsStyles({paddingLeft: value})}\n />\n </PanelBody>\n <PanelBody title={__('Text Alignment', 'advanced-gutenberg')} initialOpen={false}>\n <BaseControl help={__('Horizontal Align', 'advanced-gutenberg')}>\n <ToolbarGroup\n controls={HORZ_ALIGNMENT_CONTROLS.map((control) => {\n const isActive = (this.getCellStyles('textAlign') === control.align);\n\n return {\n ...control,\n isActive,\n onClick: () => this.updateCellsStyles({textAlign: isActive ? undefined : control.align}),\n };\n })}\n />\n </BaseControl>\n <BaseControl help={__('Vertical Align', 'advanced-gutenberg')}>\n <ToolbarGroup\n controls={VERT_ALIGNMENT_CONTROLS.map((control) => {\n const isActive = (this.getCellStyles('verticalAlign') === control.align);\n\n return {\n ...control,\n isActive,\n onClick: () => this.updateCellsStyles({verticalAlign: isActive ? undefined : control.align}),\n };\n })}\n />\n </BaseControl>\n </PanelBody>\n </PanelBody>\n </InspectorControls>\n <table className={className}\n style={{\n maxWidth: maxWidthVal,\n borderCollapse: tableCollapsed ? 'collapse' : undefined,\n tableLayout: hasFixedLayout ? 'fixed' : undefined,\n }}\n >\n {!!head.length && (\n <thead>{this.renderSection('head')}</thead>\n )}\n <tbody>{this.renderSection('body')}</tbody>\n {!!foot.length && (\n <tfoot>{this.renderSection('foot')}</tfoot>\n )}\n </table>\n </Fragment>\n )\n }\n }\n\n registerBlockType('advgb/table', {\n title: __('Table - PublishPress', 'advanced-gutenberg'),\n description: __('Table block with more styles and functions.', 'advanced-gutenberg'),\n icon: {\n src: tableBlockIcon,\n foreground: typeof advgbBlocks !== 'undefined' ? advgbBlocks.color : undefined,\n },\n category: 'advgb-category',\n keywords: [__('table', 'advanced-gutenberg'), __( 'advanced table', 'advanced-gutenberg' ), __('cell', 'advanced-gutenberg'), __('data', 'advanced-gutenberg')],\n attributes: {\n head: {\n type: 'array',\n default: [],\n source: 'query',\n selector: 'thead tr',\n query: {\n cells: {\n type: 'array',\n default: [],\n source: 'query',\n selector: 'td, th',\n query: {\n content: {\n source: 'html',\n },\n styles: {\n type: 'string',\n source: 'attribute',\n attribute: 'style',\n },\n colSpan: {\n type: 'string',\n source: 'attribute',\n attribute: 'colspan',\n },\n borderColorSaved: {\n type: 'string',\n source: 'attribute',\n attribute: 'data-border-color',\n }\n },\n },\n },\n },\n body: {\n type: 'array',\n default: [],\n source: 'query',\n selector: 'tbody tr',\n query: {\n cells: {\n type: 'array',\n default: [],\n source: 'query',\n selector: 'td',\n query: {\n content: {\n source: 'html',\n },\n styles: {\n type: 'string',\n source: 'attribute',\n attribute: 'style',\n },\n colSpan: {\n type: 'string',\n source: 'attribute',\n attribute: 'colspan',\n },\n rowSpan: {\n type: 'string',\n source: 'attribute',\n attribute: 'rowspan',\n },\n borderColorSaved: {\n type: 'string',\n source: 'attribute',\n attribute: 'data-border-color',\n }\n },\n },\n },\n },\n foot: {\n type: 'array',\n default: [],\n source: 'query',\n selector: 'tfoot tr',\n query: {\n cells: {\n type: 'array',\n default: [],\n source: 'query',\n selector: 'td, th',\n query: {\n content: {\n source: 'html',\n },\n styles: {\n type: 'string',\n source: 'attribute',\n attribute: 'style',\n },\n colSpan: {\n type: 'string',\n source: 'attribute',\n attribute: 'colspan',\n },\n borderColorSaved: {\n type: 'string',\n source: 'attribute',\n attribute: 'data-border-color',\n }\n },\n },\n },\n },\n maxWidth: {\n type: 'number',\n default: 0\n },\n hasFixedLayout: {\n type: 'boolean',\n default: false,\n },\n tableCollapsed: {\n type: 'boolean',\n default: false,\n },\n changed: {\n type: 'boolean',\n default: false,\n },\n isPreview: {\n type: 'boolean',\n default: false,\n },\n },\n example: {\n attributes: {\n isPreview: true\n },\n },\n supports: {\n align: true,\n anchor: true\n },\n styles: [\n {name: 'default', label: __('Default', 'advanced-gutenberg'), isDefault: true},\n {name: 'stripes', label: __('Stripes', 'advanced-gutenberg')},\n ],\n edit: AdvTable,\n save: function ({attributes}) {\n const {head, body, foot, maxWidth, tableCollapsed, hasFixedLayout} = attributes;\n const maxWidthVal = !!maxWidth ? maxWidth : undefined;\n\n function renderSection(section) {\n let sectionTagName = section === 'head' ? 'th' : 'td';\n return attributes[section].map(({cells}, rowIndex) => (\n <tr key={rowIndex}>\n {cells.map(({content, styles, colSpan, rowSpan, borderColorSaved}, colIndex) => (\n <RichText.Content\n tagName={sectionTagName}\n value={content}\n key={colIndex}\n style={styles}\n colSpan={colSpan}\n rowSpan={rowSpan}\n data-border-color={borderColorSaved}\n />\n ))}\n </tr>\n ))\n }\n\n return (\n <table className=\"advgb-table-frontend\"\n style={{\n maxWidth: maxWidthVal,\n borderCollapse: tableCollapsed ? 'collapse' : undefined,\n tableLayout: hasFixedLayout ? 'fixed' : undefined,\n }}\n >\n {!!head.length && (\n <thead>{renderSection('head')}</thead>\n )}\n <tbody>{renderSection('body')}</tbody>\n {!!foot.length && (\n <tfoot>{renderSection('foot')}</tfoot>\n )}\n </table>\n );\n },\n transforms: {\n from: [\n {\n type: 'block',\n blocks: ['core/table'],\n transform: (attributes) => {\n return createBlock('advgb/table', {\n body: attributes.body,\n })\n }\n },\n ],\n },\n deprecated: [\n {\n attributes: {\n head: {\n type: 'array',\n default: [],\n source: 'query',\n selector: 'thead tr',\n query: {\n cells: {\n type: 'array',\n default: [],\n source: 'query',\n selector: 'td, th',\n query: {\n content: {\n source: 'html',\n },\n styles: {\n type: 'string',\n source: 'attribute',\n attribute: 'style',\n },\n colSpan: {\n type: 'string',\n source: 'attribute',\n attribute: 'colspan',\n },\n borderColorSaved: {\n type: 'string',\n source: 'attribute',\n attribute: 'data-border-color',\n }\n },\n },\n },\n },\n body: {\n type: 'array',\n default: [],\n source: 'query',\n selector: 'tbody tr',\n query: {\n cells: {\n type: 'array',\n default: [],\n source: 'query',\n selector: 'td',\n query: {\n content: {\n source: 'html',\n },\n styles: {\n type: 'string',\n source: 'attribute',\n attribute: 'style',\n },\n colSpan: {\n type: 'string',\n source: 'attribute',\n attribute: 'colspan',\n },\n rowSpan: {\n type: 'string',\n source: 'attribute',\n attribute: 'rowspan',\n },\n borderColorSaved: {\n type: 'string',\n source: 'attribute',\n attribute: 'data-border-color',\n }\n },\n },\n },\n },\n foot: {\n type: 'array',\n default: [],\n source: 'query',\n selector: 'tfoot tr',\n query: {\n cells: {\n type: 'array',\n default: [],\n source: 'query',\n selector: 'td, th',\n query: {\n content: {\n source: 'html',\n },\n styles: {\n type: 'string',\n source: 'attribute',\n attribute: 'style',\n },\n colSpan: {\n type: 'string',\n source: 'attribute',\n attribute: 'colspan',\n },\n borderColorSaved: {\n type: 'string',\n source: 'attribute',\n attribute: 'data-border-color',\n }\n },\n },\n },\n },\n maxWidth: {\n type: 'number',\n default: 0\n },\n hasFixedLayout: {\n type: 'boolean',\n default: false,\n },\n tableCollapsed: {\n type: 'boolean',\n default: false,\n },\n changed: {\n type: 'boolean',\n default: false,\n },\n isPreview: {\n type: 'boolean',\n default: false,\n },\n },\n save: function ({attributes}) {\n const {head, body, foot, maxWidth, tableCollapsed, hasFixedLayout} = attributes;\n const maxWidthVal = !!maxWidth ? maxWidth : undefined;\n\n function renderSection(section) {\n return attributes[section].map(({cells}, rowIndex) => (\n <tr key={rowIndex}>\n {cells.map(({content, styles, colSpan, rowSpan, borderColorSaved}, colIndex) => (\n <RichText.Content\n tagName=\"td\"\n value={content}\n key={colIndex}\n style={styles}\n colSpan={colSpan}\n rowSpan={rowSpan}\n data-border-color={borderColorSaved}\n />\n ))}\n </tr>\n ))\n }\n\n return (\n <table className=\"advgb-table-frontend\"\n style={{\n maxWidth: maxWidthVal,\n borderCollapse: tableCollapsed ? 'collapse' : undefined,\n tableLayout: hasFixedLayout ? 'fixed' : undefined,\n }}\n >\n {!!head.length && (\n <thead>{renderSection('head')}</thead>\n )}\n <tbody>{renderSection('body')}</tbody>\n {!!foot.length && (\n <tfoot>{renderSection('foot')}</tfoot>\n )}\n </table>\n );\n },\n }\n ]\n });\n})(wp.i18n, wp.blocks, wp.element, wp.blockEditor, wp.components, lodash);\n","(function ( wpI18n, wpBlocks, wpElement, wpBlockEditor, wpComponents, wpCompose, lodash ) {\n wpBlockEditor = wp.blockEditor || wp.editor;\n const { __ } = wpI18n;\n const { Component, Fragment } = wpElement;\n const { registerBlockType, createBlock, cloneBlock } = wpBlocks;\n const { InspectorControls, RichText, PanelColorSettings, InnerBlocks } = wpBlockEditor;\n const { Dashicon, Tooltip, PanelBody, RangeControl, SelectControl, Button, TextControl } = wpComponents;\n const { withDispatch, withSelect, select, dispatch } = wp.data;\n const { compose } = wpCompose;\n const { times } = lodash;\n\n const svgPath = (\n <Fragment>\n <path fill=\"currentColor\" d=\"M491.2,474.55a1.93,1.93,0,0,1,0-2.84Z\"/>\n <path fill=\"none\" stroke=\"currentColor\" strokeMiterlimit=\"10\" strokeWidth=\"7.43\"\n d=\"M248.71,475.78H34.46c-10.59,0-11.37-.8-11.37-11.22q0-206.92,0-413.84c0-4.89-.2-9.78-.08-14.66.21-8.43,3.91-12,12.18-12,41.14,0,82.29.08,123.44-.12,4.38,0,6.31,1.52,8,5.29,14.32,31.05,28.91,62,43.22,93,1.7,3.69,3.65,5,7.74,5q122.26-.18,244.52-.09c12.73,0,12.73,0,12.73,12.59V463.22c0,12.14-.4,12.56-12.39,12.56Z\"/>\n <path fill=\"currentColor\"\n d=\"M257,24.15c23,0,46,.11,69-.09,4.67,0,6.33,1.24,6.29,6.12q-.33,37.57,0,75.17c0,4.52-1.39,6-5.93,6q-49.17-.24-98.34,0c-4.29,0-6.49-1.5-8.24-5.32C208,80.21,196,54.53,184.06,28.81c-2.08-4.48-2-4.64,3-4.65Q222.05,24.13,257,24.15Z\"/>\n <path fill=\"currentColor\"\n d=\"M411.32,111.22c-18.92,0-37.85-.12-56.77.08-4.59,0-6.39-1.09-6.35-6q.33-37.6,0-75.21c0-4.53,1.41-6,5.95-6,36.43.15,72.85.07,109.27.1,6.91,0,9.69,2.29,11.09,9.08a27.87,27.87,0,0,1,.53,5.62q0,33.12,0,66.23c0,6.05-.13,6.13-6.05,6.13Z\"/>\n </Fragment>\n );\n\n const tabHorizontalIcon = (\n <svg color=\"#5954d6\" xmlns=\"http://www.w3.org/2000/svg\" width=\"50\" height=\"50\" viewBox=\"0 0 500 500\" style={{backgroundColor: \"#fff\"}}>\n {svgPath}\n </svg>\n );\n\n const tabVerticalIcon = (\n <svg color=\"#5954d6\" xmlns=\"http://www.w3.org/2000/svg\" width=\"50\" height=\"50\" viewBox=\"0 0 500 500\" style={{backgroundColor: \"#fff\"}} transform=\"rotate(-90) scale(-1, 1)\">\n {svgPath}\n </svg>\n );\n\n const TABS_STYLES = [\n {name: 'horz', label: __('Horizontal', 'advanced-gutenberg'), icon: tabHorizontalIcon},\n {name: 'vert', label: __('Vertical', 'advanced-gutenberg'), icon: tabVerticalIcon},\n ];\n\n const previewImageData = 'data:image/png;base64,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';\n\n /**\n * This allows for checking to see if the block needs to generate a new ID.\n */\n const advgbTabsUniqueIDs = [];\n\n class AdvTabsWrapper extends Component {\n constructor() {\n super( ...arguments );\n this.state = {\n viewport: 'desktop',\n };\n }\n\n componentWillMount() {\n const { attributes, setAttributes } = this.props;\n const currentBlockConfig = advgbDefaultConfig['advgb-adv-tabs'];\n // No override attributes of blocks inserted before\n if (attributes.changed !== true) {\n if (typeof currentBlockConfig === 'object' && currentBlockConfig !== null) {\n Object.keys(currentBlockConfig).map((attribute) => {\n if (typeof attributes[attribute] === 'boolean') {\n attributes[attribute] = !!currentBlockConfig[attribute];\n } else {\n attributes[attribute] = currentBlockConfig[attribute];\n }\n });\n }\n\n // Finally set changed attribute to true, so we don't modify anything again\n setAttributes( { changed: true } );\n }\n }\n\n componentDidUpdate( prevProps ) {\n const { attributes, setAttributes, innerBlocks } = this.props;\n const { isTransform } = attributes;\n\n if(isTransform) {\n setAttributes( {\n isTransform: false\n } );\n this.props.updateTabActive( 0 );\n }\n\n // Add consecutive id attributes to each child block, starting from 0\n if( ! prevProps.innerBlocks.length ) {\n this.updateTabIds( innerBlocks );\n } else if( advgbBlocks.advgb_pro === '1' ) {\n\n // Be sure ids are consecutive, starting from 0\n const ids = innerBlocks.map( ( item ) => item.attributes.id );\n const consecutive = ids.every( ( val, i ) => i === 0 || val - 1 === ids[i - 1] );\n\n if( ! consecutive ) {\n this.updateTabIds( innerBlocks );\n }\n } else {\n // Nothing to do here\n }\n }\n\n componentDidMount() {\n if ( ! this.props.attributes.uniqueID ) {\n this.props.setAttributes( {\n uniqueID: '_' + this.props.clientId.substr( 2, 9 ),\n } );\n advgbTabsUniqueIDs.push( '_' + this.props.clientId.substr( 2, 9 ) );\n } else if ( advgbTabsUniqueIDs.includes( this.props.attributes.uniqueID ) ) {\n this.props.setAttributes( {\n uniqueID: '_' + this.props.clientId.substr( 2, 9 ),\n } );\n advgbTabsUniqueIDs.push( '_' + this.props.clientId.substr( 2, 9 ) );\n } else {\n advgbTabsUniqueIDs.push( this.props.attributes.uniqueID );\n }\n this.props.setAttributes( {\n pid: `advgb-tabs-${this.props.clientId}`,\n } );\n this.updateTabHeaders();\n this.updateTabAnchors();\n this.props.resetOrder();\n }\n\n /**\n * Update id attributes for child blocks, so right content is displayed\n * matching its active header\n * https://github.com/publishpress/PublishPress-Blocks/issues/1117\n *\n * @since 3.1.3\n *\n * @param {array} innerBlocks Array of inner blocks objects\n *\n * @return {void}\n */\n updateTabIds( innerBlocks ) {\n const { updateBlockAttributes } = dispatch( 'core/block-editor' );\n\n times( innerBlocks.length, n => {\n updateBlockAttributes( innerBlocks[ n ].clientId, {\n id: n,\n } );\n } );\n }\n\n updateTabsAttr( attrs ) {\n const { setAttributes, clientId } = this.props;\n const { updateBlockAttributes } = !wp.blockEditor ? dispatch( 'core/editor' ) : dispatch( 'core/block-editor' );\n const { getBlockOrder } = !wp.blockEditor ? select( 'core/editor' ) : select( 'core/block-editor' );\n const childBlocks = getBlockOrder(clientId);\n\n setAttributes( attrs );\n childBlocks.forEach( childBlockId => updateBlockAttributes( childBlockId, attrs ) );\n this.props.resetOrder();\n }\n\n updateTabsHeader(header, index) {\n const { attributes, setAttributes, clientId } = this.props;\n const { tabHeaders } = attributes;\n const { updateBlockAttributes } = !wp.blockEditor ? dispatch( 'core/editor' ) : dispatch( 'core/block-editor' );\n const { getBlockOrder } = !wp.blockEditor ? select( 'core/editor' ) : select( 'core/block-editor' );\n const childBlocks = getBlockOrder(clientId);\n\n let newHeaders = tabHeaders.map( ( item, idx ) => {\n if ( index === idx ) {\n item = header;\n }\n return item;\n } );\n\n setAttributes( { tabHeaders: newHeaders} );\n updateBlockAttributes(childBlocks[index], {header: header});\n this.updateTabHeaders();\n }\n\n updateTabHeaders() {\n const { attributes, clientId } = this.props;\n const { tabHeaders } = attributes;\n const { updateBlockAttributes } = !wp.blockEditor ? dispatch( 'core/editor' ) : dispatch( 'core/block-editor' );\n const { getBlockOrder } = !wp.blockEditor ? select( 'core/editor' ) : select( 'core/block-editor' );\n const childBlocks = getBlockOrder(clientId);\n\n childBlocks.forEach( childBlockId => updateBlockAttributes( childBlockId, {tabHeaders: tabHeaders} ) );\n }\n\n updateTabsAnchor(anchor, index) {\n const { attributes, setAttributes, clientId } = this.props;\n const { tabAnchors } = attributes;\n const { updateBlockAttributes } = !wp.blockEditor ? dispatch( 'core/editor' ) : dispatch( 'core/block-editor' );\n const { getBlockOrder } = !wp.blockEditor ? select( 'core/editor' ) : select( 'core/block-editor' );\n const childBlocks = getBlockOrder(clientId);\n\n let newAnchors = tabAnchors.map( ( item, idx ) => {\n if ( index === idx ) {\n item = anchor;\n }\n return item;\n } );\n\n setAttributes( { tabAnchors: newAnchors} );\n updateBlockAttributes(childBlocks[index], {anchor: anchor});\n this.updateTabAnchors();\n }\n\n updateTabAnchors() {\n const { attributes, clientId } = this.props;\n const { tabAnchors } = attributes;\n const { updateBlockAttributes } = !wp.blockEditor ? dispatch( 'core/editor' ) : dispatch( 'core/block-editor' );\n const { getBlockOrder } = !wp.blockEditor ? select( 'core/editor' ) : select( 'core/block-editor' );\n const childBlocks = getBlockOrder(clientId);\n\n childBlocks.forEach( childBlockId => updateBlockAttributes( childBlockId, {tabAnchors: tabAnchors} ) );\n }\n\n duplicateTab(index) {\n const { attributes, setAttributes, clientId } = this.props;\n const { insertBlock } = !wp.blockEditor ? dispatch( 'core/editor' ) : dispatch( 'core/block-editor' );\n const { getBlockOrder, getBlock } = !wp.blockEditor ? select( 'core/editor' ) : select( 'core/block-editor' );\n const childBlocks = getBlockOrder(clientId);\n const blockTab = getBlock(childBlocks[index]);\n const clonedTab = cloneBlock(blockTab);\n\n insertBlock(clonedTab, attributes.tabHeaders.length, clientId);\n setAttributes( {\n tabHeaders: [\n ...attributes.tabHeaders,\n `${attributes.tabHeaders[index]} (${__('copy', 'advanced-gutenberg')})`\n ],\n tabAnchors: [\n ...attributes.tabAnchors,\n ''\n ]\n } );\n this.props.resetOrder();\n }\n\n addTab() {\n const { attributes, setAttributes, clientId } = this.props;\n const { insertBlock } = !wp.blockEditor ? dispatch( 'core/editor' ) : dispatch( 'core/block-editor' );\n const tabItemBlock = createBlock('advgb/tab');\n\n insertBlock(tabItemBlock, attributes.tabHeaders.length, clientId);\n setAttributes( {\n tabHeaders: [\n ...attributes.tabHeaders,\n __( 'Tab Header', 'advanced-gutenberg' )\n ],\n tabAnchors: [\n ...attributes.tabAnchors,\n ''\n ]\n } );\n this.props.resetOrder();\n }\n\n removeTab(index) {\n const { attributes, setAttributes, clientId } = this.props;\n const { removeBlock } = !wp.blockEditor ? dispatch( 'core/editor' ) : dispatch( 'core/block-editor' );\n const { getBlockOrder } = !wp.blockEditor ? select( 'core/editor' ) : select( 'core/block-editor' );\n const childBlocks = getBlockOrder(clientId);\n\n removeBlock(childBlocks[index], false);\n setAttributes( {\n tabHeaders: attributes.tabHeaders.filter( (vl, idx) => idx !== index ),\n tabAnchors: attributes.tabAnchors.filter( (vl, idx) => idx !== index )\n } );\n this.updateTabsAttr({tabActive: 0});\n this.props.resetOrder();\n }\n\n moveTab(index, direction) {\n const { attributes } = this.props;\n const headers = attributes.tabHeaders;\n const header = headers.splice( index, 1 );\n const anchors = attributes.tabAnchors;\n const anchor = anchors.splice( index, 1 );\n\n switch(direction){\n case 'back':\n if(index === 0) {\n return;\n }\n this.onMove(index, index - 1, headers, header, anchors, anchor);\n break;\n case 'forward':\n if(index === headers.length) {\n return;\n }\n this.onMove(index, index + 1, headers, header, anchors, anchor);\n break;\n }\n }\n\n onMove(index, newIndex, headers, header, anchors, anchor){\n const { attributes, setAttributes, clientId } = this.props;\n const { moveBlockToPosition } = !wp.blockEditor ? dispatch( 'core/editor' ) : dispatch( 'core/block-editor' );\n const { getBlockOrder } = !wp.blockEditor ? select( 'core/editor' ) : select( 'core/block-editor' );\n const childBlocks = getBlockOrder(clientId);\n\n headers.splice( newIndex, 0, header[0] );\n this.updateTabsHeader(attributes.tabHeaders[index], newIndex);\n this.updateTabsHeader(attributes.tabHeaders[newIndex], newIndex);\n anchors.splice( newIndex, 0, anchor[0] );\n\n moveBlockToPosition(\n childBlocks[index],\n clientId,\n clientId,\n newIndex\n );\n\n this.updateTabHeaders();\n this.updateTabAnchors();\n this.props.resetOrder();\n this.props.updateTabActive( newIndex );\n }\n\n translatableText(text) {\n switch(text){\n case 'desktop':\n return __('desktop', 'advanced-gutenberg');\n break;\n case 'tablet':\n return __('tablet', 'advanced-gutenberg');\n break;\n case 'mobile':\n return __('mobile', 'advanced-gutenberg');\n break;\n }\n }\n\n render() {\n const { attributes, setAttributes, clientId } = this.props;\n const { viewport } = this.state;\n const {\n tabHeaders,\n tabAnchors,\n tabActive,\n tabActiveFrontend,\n tabsStyleD,\n tabsStyleT,\n tabsStyleM,\n headerBgColor,\n headerTextColor,\n bodyBgColor,\n bodyTextColor,\n borderStyle,\n borderWidth,\n borderColor,\n borderRadius,\n pid,\n activeTabBgColor,\n activeTabTextColor,\n isPreview,\n } = attributes;\n const blockClass = [\n `advgb-tabs-wrapper`,\n `advgb-tab-${tabsStyleD}-desktop`,\n `advgb-tab-${tabsStyleT}-tablet`,\n `advgb-tab-${tabsStyleM}-mobile`,\n ].filter( Boolean ).join( ' ' );\n\n let deviceLetter = 'D';\n if (viewport === 'tablet') deviceLetter = 'T';\n if (viewport === 'mobile') deviceLetter = 'M';\n\n return (\n isPreview ?\n <img alt={__('Advanced Tabs', 'advanced-gutenberg')} width='100%' src={previewImageData}/>\n :\n <Fragment>\n <InspectorControls>\n <PanelBody title={ __( 'Tabs Style', 'advanced-gutenberg' ) }>\n <div className=\"advgb-columns-responsive-items\">\n {['desktop', 'tablet', 'mobile'].map( (device, index) => {\n const itemClasses = [\n \"advgb-columns-responsive-item\",\n viewport === device && 'is-selected',\n ].filter( Boolean ).join( ' ' );\n\n return (\n <div className={ itemClasses }\n key={ index }\n onClick={ () => this.setState( { viewport: device } ) }\n >\n {this.translatableText(device)}\n </div>\n )\n } ) }\n </div>\n <div className=\"advgb-tabs-styles\">\n {TABS_STYLES.map( (style, index) => (\n <Tooltip key={index} text={style.label}>\n <Button className={ 'advgb-tabs-style' + (style.name === attributes[`tabsStyle${deviceLetter}`] ? ' is-style-selected' : '') }\n isToggled={ style.name === attributes[`tabsStyle${deviceLetter}`] }\n onClick={ () => setAttributes( { [`tabsStyle${deviceLetter}`]: style.name } ) }\n >\n {style.icon}\n </Button>\n </Tooltip>\n ) ) }\n {viewport === 'mobile' && (\n <Tooltip text={ __( 'Stacked', 'advanced-gutenberg' ) }>\n <Button className={ 'advgb-tabs-style' + (tabsStyleM === 'stack' ? ' is-style-selected' : '') }\n isToggled={ tabsStyleM === 'stack' }\n onClick={ () => setAttributes( { tabsStyleM: 'stack' } ) }\n >\n <svg color=\"#5954d6\" width=\"50px\" height=\"50px\" viewBox=\"0 0 26 26\" xmlns=\"http://www.w3.org/2000/svg\" style={{backgroundColor: \"#fff\"}}>\n <path fill=\"currentColor\" d=\"M24.2480469,18.5H1.75C1.3359375,18.5,1,18.8359375,1,19.25v5C1,24.6640625,1.3359375,25,1.75,25 h22.4980469c0.4140625,0,0.75-0.3359375,0.75-0.75v-5C24.9980469,18.8359375,24.6621094,18.5,24.2480469,18.5z M23.4980469,23.5 H2.5V20h20.9980469V23.5z\"/>\n <path fill=\"currentColor\" d=\"M24.25,9.75H1.75C1.3359375,9.75,1,10.0859375,1,10.5v5c0,0.4140625,0.3359375,0.75,0.75,0.75h22.5 c0.4140625,0,0.75-0.3359375,0.75-0.75v-5C25,10.0859375,24.6640625,9.75,24.25,9.75z M23.5,14.75h-21v-3.5h21V14.75z\"/>\n <path fill=\"currentColor\" d=\"M1.75,7.5h22.4980469c0.4140625,0,0.75-0.3359375,0.75-0.75v-5c0-0.4140625-0.3359375-0.75-0.75-0.75H1.75 C1.3359375,1,1,1.3359375,1,1.75v5C1,7.1640625,1.3359375,7.5,1.75,7.5z M2.5,2.5h20.9980469V6H2.5V2.5z\"/>\n </svg>\n </Button>\n </Tooltip>\n )}\n </div>\n </PanelBody>\n <PanelBody title={ __( 'Tabs Settings', 'advanced-gutenberg' ) }>\n <SelectControl\n label={ __( 'Initial Open Tab', 'advanced-gutenberg' ) }\n value={ tabActiveFrontend }\n options={ tabHeaders.map((tab, index) => {\n return {value: index, label: tab};\n } ) }\n onChange={ (value) => setAttributes( { tabActiveFrontend: parseInt(value) } ) }\n />\n </PanelBody>\n <PanelColorSettings\n title={ __( 'Tab Colors', 'advanced-gutenberg' ) }\n initialOpen={ false }\n colorSettings={ [\n {\n label: __( 'Background Color', 'advanced-gutenberg' ),\n value: headerBgColor,\n onChange: ( value ) => setAttributes( { headerBgColor: value === undefined ? '#e0e0e0' : value } ),\n },\n {\n label: __( 'Text Color', 'advanced-gutenberg' ),\n value: headerTextColor,\n onChange: ( value ) => setAttributes( { headerTextColor: value === undefined ? '#fff' : value } ),\n },\n {\n label: __( 'Active Tab Background Color', 'advanced-gutenberg' ),\n value: activeTabBgColor,\n onChange: ( value ) => setAttributes( { activeTabBgColor: value } ),\n },\n {\n label: __( 'Active Tab Text Color', 'advanced-gutenberg' ),\n value: activeTabTextColor,\n onChange: ( value ) => setAttributes( { activeTabTextColor: value } ),\n },\n ] }\n />\n <PanelColorSettings\n title={ __( 'Body Colors', 'advanced-gutenberg' ) }\n initialOpen={ false }\n colorSettings={ [\n {\n label: __( 'Background Color', 'advanced-gutenberg' ),\n value: bodyBgColor,\n onChange: ( value ) => setAttributes( { bodyBgColor: value } ),\n },\n {\n label: __( 'Text Color', 'advanced-gutenberg' ),\n value: bodyTextColor,\n onChange: ( value ) => setAttributes( { bodyTextColor: value } ),\n },\n ] }\n />\n <PanelBody title={ __( 'Border Settings', 'advanced-gutenberg' ) } initialOpen={ false }>\n <SelectControl\n label={ __( 'Border Style', 'advanced-gutenberg' ) }\n value={ borderStyle }\n options={ [\n { label: __( 'None', 'advanced-gutenberg' ), value: 'none' },\n { label: __( 'Solid', 'advanced-gutenberg' ), value: 'solid' },\n { label: __( 'Dashed', 'advanced-gutenberg' ), value: 'dashed' },\n { label: __( 'Dotted', 'advanced-gutenberg' ), value: 'dotted' },\n ] }\n onChange={ ( value ) => setAttributes( { borderStyle: value } ) }\n />\n <PanelColorSettings\n title={ __( 'Border Color', 'advanced-gutenberg' ) }\n initialOpen={ false }\n colorSettings={ [\n {\n label: __( 'Border Color', 'advanced-gutenberg' ),\n value: borderColor,\n onChange: ( value ) => setAttributes( { borderColor: value } ),\n },\n ] }\n />\n <RangeControl\n label={ __( 'Border width', 'advanced-gutenberg' ) }\n value={ borderWidth }\n min={ 1 }\n max={ 10 }\n onChange={ ( value ) => setAttributes( { borderWidth: value } ) }\n />\n <RangeControl\n label={ __( 'Border radius', 'advanced-gutenberg' ) }\n value={ borderRadius }\n min={ 0 }\n max={ 100 }\n onChange={ ( value ) => setAttributes( { borderRadius: value } ) }\n />\n </PanelBody>\n </InspectorControls>\n <div className={blockClass} style={ { border: 'none' } }>\n <ul className=\"advgb-tabs-panel\">\n {tabHeaders.map( ( item, index ) => (\n <li key={ index }\n className={`advgb-tab ${tabActive === index ? 'advgb-tab-active' : ''}`}\n style={ {\n backgroundColor: headerBgColor,\n borderStyle: borderStyle,\n borderWidth: borderWidth + 'px',\n borderColor: borderColor,\n borderRadius: borderRadius + 'px',\n } }\n >\n <a id={tabAnchors[index]} style={ { color: headerTextColor } }\n onClick={ () => {\n this.props.updateTabActive( index );\n } }\n >\n <RichText\n tagName=\"p\"\n value={ item }\n onChange={ ( value ) => this.updateTabsHeader(value, index) }\n unstableOnSplit={ () => null }\n placeholder={ __( 'Title…', 'advanced-gutenberg' ) }\n />\n </a>\n { advgbBlocks.advgb_pro === '1' && (\n <Fragment>\n <TextControl\n placeholder={ __( 'HTML Anchor', 'advanced-gutenberg' ) }\n value={ tabAnchors[index] }\n onChange={ ( value ) => this.updateTabsAnchor(value, index) }\n className=\"advgb-floating-anchor-field\"\n style={ { display: tabActive === index ? 'block' : 'none' } }\n />\n { index > 0 && (\n <Tooltip text={ __( 'Move back', 'advanced-gutenberg' ) }>\n <span className=\"advgb-tab-move-back\"\n onClick={ () => this.moveTab(index,'back') }\n style={ { display: tabActive === index ? 'block' : 'none' } }\n >\n <Dashicon icon=\"arrow-left-alt2\"/>\n </span>\n </Tooltip>\n ) }\n { index < tabHeaders.length - 1 && (\n <Tooltip text={ __( 'Move forward', 'advanced-gutenberg' ) }>\n <span className=\"advgb-tab-move-forward\"\n onClick={ () => this.moveTab(index,'forward') }\n style={ { display: tabActive === index ? 'block' : 'none' } }\n >\n <Dashicon icon=\"arrow-right-alt2\"/>\n </span>\n </Tooltip>\n ) }\n <Tooltip text={ __( 'Duplicate tab', 'advanced-gutenberg' ) }>\n <span className=\"advgb-tab-duplicate\"\n onClick={ () => this.duplicateTab(index) }\n style={ { display: tabActive === index ? 'block' : 'none' } }\n >\n <Dashicon icon=\"admin-page\"/>\n </span>\n </Tooltip>\n </Fragment>\n ) }\n {tabHeaders.length > 1 && (\n <Tooltip text={ __( 'Remove tab', 'advanced-gutenberg' ) }>\n <span className=\"advgb-tab-remove\"\n onClick={ () => this.removeTab(index) }\n style={ { display: tabActive === index ? 'block' : 'none' } }\n >\n <Dashicon icon=\"no\"/>\n </span>\n </Tooltip>\n )}\n </li>\n ) ) }\n <li className=\"advgb-tab advgb-add-tab\"\n style={ {\n borderRadius: borderRadius + 'px',\n borderWidth: borderWidth + 'px',\n } }\n >\n <Tooltip text={ __( 'Add tab', 'advanced-gutenberg' ) }>\n <span onClick={ () => this.addTab() }>\n <Dashicon icon=\"plus\"/>\n </span>\n </Tooltip>\n </li>\n </ul>\n <div className=\"advgb-tab-body-wrapper\"\n style={ {\n backgroundColor: bodyBgColor,\n color: bodyTextColor,\n borderStyle: borderStyle,\n borderWidth: borderWidth + 'px',\n borderColor: borderColor,\n borderRadius: borderRadius + 'px',\n } }\n >\n <InnerBlocks\n template={ [ ['advgb/tab'], ['advgb/tab'], ['advgb/tab']] }\n templateLock={false}\n allowedBlocks={ [ 'advgb/tab' ] }\n />\n </div>\n </div>\n {!!pid &&\n <style>\n {activeTabBgColor && `#block-${clientId} li.advgb-tab.advgb-tab-active, #block-${clientId} li.advgb-tab.ui-tabs-active {\n background-color: ${activeTabBgColor} !important;\n }`}\n {activeTabTextColor && `#block-${clientId} li.advgb-tab.advgb-tab-active a, #block-${clientId} li.advgb-tab.ui-tabs-active a {\n color: ${activeTabTextColor} !important;\n }`}\n </style>\n }\n </Fragment>\n )\n }\n }\n\n const tabsBlockIcon = (\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"20\" height=\"20\" viewBox=\"0 0 24 24\">\n <path fill=\"none\" d=\"M0,0h24v24H0V0z\"/>\n <path fill=\"none\" d=\"M0,0h24v24H0V0z\"/>\n <path d=\"M21,3H3C1.9,3,1,3.9,1,5v14c0,1.1,0.9,2,2,2h18c1.1,0,2-0.9,2-2V5C23,3.9,22.1,3,21,3z M21,19H3V5h10v4h8V19z\"/>\n </svg>\n );\n\n const tabBlockAttrs = {\n tabHeaders: {\n type: 'array',\n default: [\n __( 'Tab 1', 'advanced-gutenberg' ),\n __( 'Tab 2', 'advanced-gutenberg' ),\n __( 'Tab 3', 'advanced-gutenberg' ),\n ]\n },\n tabActive: {\n type: 'number',\n default: 0,\n },\n tabActiveFrontend: {\n type: 'number',\n default: 0,\n },\n tabsStyleD: {\n type: 'string',\n default: 'horz'\n },\n tabsStyleT: {\n type: 'string',\n default: 'vert'\n },\n tabsStyleM: {\n type: 'string',\n default: 'stack'\n },\n headerBgColor: {\n type: 'string',\n default: '#e0e0e0',\n },\n headerTextColor: {\n type: 'string',\n default: '#fff',\n },\n bodyBgColor: {\n type: 'string',\n },\n bodyTextColor: {\n type: 'string',\n },\n borderStyle: {\n type: 'string',\n default: 'solid',\n },\n borderWidth: {\n type: 'number',\n default: 1,\n },\n borderColor: {\n type: 'string',\n },\n borderRadius: {\n type: 'number',\n default: 10,\n },\n pid: {\n type: 'string',\n },\n activeTabBgColor: {\n type: 'string',\n },\n activeTabTextColor: {\n type: 'string',\n },\n changed: {\n type: 'boolean',\n default: false,\n },\n isPreview: {\n type: 'boolean',\n default: false,\n },\n uniqueID: {\n type: 'string',\n default: ''\n },\n isTransform: {\n type: 'boolean',\n default: false\n },\n tabAnchors: {\n type: 'array',\n default: [\n '',\n '',\n ''\n ]\n },\n };\n\n registerBlockType( 'advgb/adv-tabs', {\n title: __( 'Tabs - PublishPress', 'advanced-gutenberg' ),\n description: __( 'Create horizontal or vertical tabs to display your content.', 'advanced-gutenberg' ),\n icon: {\n src: tabsBlockIcon,\n foreground: typeof advgbBlocks !== 'undefined' ? advgbBlocks.color : undefined,\n },\n category: \"advgb-category\",\n keywords: [ __( 'tabs', 'advanced-gutenberg' ), __( 'advanced tabs', 'advanced-gutenberg' ), __( 'cards', 'advanced-gutenberg' ) ],\n attributes: tabBlockAttrs,\n example: {\n attributes: {\n isPreview: true\n },\n },\n supports: {\n anchor: true\n },\n edit: compose(\n withSelect( (select, ownProps ) => {\n const { clientId } = ownProps;\n const { getBlock } = select( 'core/block-editor' );\n\n return {\n innerBlocks: getBlock( clientId ).innerBlocks\n };\n } ),\n withDispatch( (dispatch, { clientId, innerBlocks }, { select } ) => {\n const { updateBlockAttributes } = dispatch( 'core/block-editor' );\n\n return {\n resetOrder() {\n times( innerBlocks.length, n => {\n updateBlockAttributes( innerBlocks[ n ].clientId, {\n id: n,\n } );\n } );\n },\n updateTabActive(tabActive) {\n updateBlockAttributes( clientId, {\n tabActive: tabActive,\n } );\n times( innerBlocks.length, n => {\n updateBlockAttributes( innerBlocks[ n ].clientId, {\n tabActive: tabActive,\n } );\n } );\n this.resetOrder();\n },\n };\n\n }),\n )( AdvTabsWrapper ),\n save: function ( { attributes } ) {\n const {\n tabHeaders,\n tabAnchors,\n tabActiveFrontend,\n tabsStyleD,\n tabsStyleT,\n tabsStyleM,\n headerBgColor,\n headerTextColor,\n bodyBgColor,\n bodyTextColor,\n borderStyle,\n borderWidth,\n borderColor,\n borderRadius,\n pid,\n } = attributes;\n const blockClass = [\n `advgb-tabs-wrapper`,\n `advgb-tab-${tabsStyleD}-desktop`,\n `advgb-tab-${tabsStyleT}-tablet`,\n `advgb-tab-${tabsStyleM}-mobile`,\n pid\n ].filter( Boolean ).join( ' ' );\n\n return (\n <div className={blockClass} data-tab-active={tabActiveFrontend}>\n <ul className=\"advgb-tabs-panel\">\n {tabHeaders.map( ( header, index ) => (\n <li key={ index } className=\"advgb-tab\"\n style={ {\n backgroundColor: headerBgColor,\n borderStyle: borderStyle,\n borderWidth: borderWidth + 'px',\n borderColor: borderColor,\n borderRadius: borderRadius + 'px',\n } }\n >\n <a id={tabAnchors[index]} href={`#advgb-tabs-tab${index}`}\n style={ { color: headerTextColor } }\n >\n <RichText.Content\n tagName=\"span\"\n value={ header }\n />\n </a>\n </li>\n ) ) }\n </ul>\n <div className=\"advgb-tab-body-wrapper\"\n style={ {\n backgroundColor: bodyBgColor,\n color: bodyTextColor,\n borderStyle: borderStyle,\n borderWidth: borderWidth + 'px',\n borderColor: borderColor,\n borderRadius: borderRadius + 'px',\n } }\n >\n <InnerBlocks.Content />\n </div>\n </div>\n );\n },\n deprecated: [\n {\n attributes: {\n ...tabBlockAttrs,\n },\n save: function ( { attributes } ) {\n const {\n tabHeaders,\n tabActiveFrontend,\n tabsStyleD,\n tabsStyleT,\n tabsStyleM,\n headerBgColor,\n headerTextColor,\n bodyBgColor,\n bodyTextColor,\n borderStyle,\n borderWidth,\n borderColor,\n borderRadius,\n pid\n } = attributes;\n const blockClass = [\n `advgb-tabs-wrapper`,\n `advgb-tab-${tabsStyleD}-desktop`,\n `advgb-tab-${tabsStyleT}-tablet`,\n `advgb-tab-${tabsStyleM}-mobile`,\n pid\n ].filter( Boolean ).join( ' ' );\n\n return (\n <div className={blockClass} data-tab-active={tabActiveFrontend}>\n <ul className=\"advgb-tabs-panel\">\n {tabHeaders.map( ( header, index ) => (\n <li key={ index } className=\"advgb-tab\"\n style={ {\n backgroundColor: headerBgColor,\n borderStyle: borderStyle,\n borderWidth: borderWidth + 'px',\n borderColor: borderColor,\n borderRadius: borderRadius + 'px',\n } }\n >\n <a href={`#advgb-tabs-tab${index}`}\n style={ { color: headerTextColor } }\n >\n <RichText.Content\n tagName=\"span\"\n value={ header }\n />\n </a>\n </li>\n ) ) }\n </ul>\n <div className=\"advgb-tab-body-wrapper\"\n style={ {\n backgroundColor: bodyBgColor,\n color: bodyTextColor,\n borderStyle: borderStyle,\n borderWidth: borderWidth + 'px',\n borderColor: borderColor,\n borderRadius: borderRadius + 'px',\n } }\n >\n <InnerBlocks.Content />\n </div>\n </div>\n );\n }\n },\n {\n attributes: {\n ...tabBlockAttrs,\n isTransform: {\n type: 'boolean',\n default: false\n }\n },\n save: function ( { attributes } ) {\n const {\n tabHeaders,\n tabActiveFrontend,\n tabsStyleD,\n tabsStyleT,\n tabsStyleM,\n headerBgColor,\n headerTextColor,\n bodyBgColor,\n bodyTextColor,\n borderStyle,\n borderWidth,\n borderColor,\n borderRadius,\n pid\n } = attributes;\n const blockClass = [\n `advgb-tabs-wrapper`,\n `advgb-tab-${tabsStyleD}-desktop`,\n `advgb-tab-${tabsStyleT}-tablet`,\n `advgb-tab-${tabsStyleM}-mobile`,\n pid\n ].filter( Boolean ).join( ' ' );\n\n return (\n <div className={blockClass} data-tab-active={tabActiveFrontend}>\n <ul className=\"advgb-tabs-panel\">\n {tabHeaders.map( ( header, index ) => (\n <li key={ index } className=\"advgb-tab\"\n style={ {\n backgroundColor: headerBgColor,\n borderStyle: borderStyle,\n borderWidth: borderWidth + 'px',\n borderColor: borderColor,\n borderRadius: borderRadius + 'px',\n } }\n >\n <a href={`#advgb-tabs-tab${index}`}\n style={ { color: headerTextColor } }\n >\n <span>{header}</span>\n </a>\n </li>\n ) ) }\n </ul>\n <div className=\"advgb-tab-body-wrapper\"\n style={ {\n backgroundColor: bodyBgColor,\n color: bodyTextColor,\n borderStyle: borderStyle,\n borderWidth: borderWidth + 'px',\n borderColor: borderColor,\n borderRadius: borderRadius + 'px',\n } }\n >\n <InnerBlocks.Content />\n </div>\n </div>\n );\n }\n },\n {\n attributes: {\n ...tabBlockAttrs,\n uniqueID: {\n type: 'string',\n default: ''\n }\n },\n save: function ( { attributes } ) {\n const {\n tabHeaders,\n tabActiveFrontend,\n tabsStyleD,\n tabsStyleT,\n tabsStyleM,\n headerBgColor,\n headerTextColor,\n bodyBgColor,\n bodyTextColor,\n borderStyle,\n borderWidth,\n borderColor,\n borderRadius,\n pid,\n } = attributes;\n const blockClass = [\n `advgb-tabs-wrapper`,\n `advgb-tab-${tabsStyleD}-desktop`,\n `advgb-tab-${tabsStyleT}-tablet`,\n `advgb-tab-${tabsStyleM}-mobile`,\n ].filter( Boolean ).join( ' ' );\n\n return (\n <div id={pid} className={blockClass} data-tab-active={tabActiveFrontend}>\n <ul className=\"advgb-tabs-panel\">\n {tabHeaders.map( ( header, index ) => (\n <li key={ index } className=\"advgb-tab\"\n style={ {\n backgroundColor: headerBgColor,\n borderStyle: borderStyle,\n borderWidth: borderWidth + 'px',\n borderColor: borderColor,\n borderRadius: borderRadius + 'px',\n } }\n >\n <a href={`#${pid}-${index}`}\n style={ { color: headerTextColor } }\n >\n <span>{header}</span>\n </a>\n </li>\n ) ) }\n </ul>\n <div className=\"advgb-tab-body-wrapper\"\n style={ {\n backgroundColor: bodyBgColor,\n color: bodyTextColor,\n borderStyle: borderStyle,\n borderWidth: borderWidth + 'px',\n borderColor: borderColor,\n borderRadius: borderRadius + 'px',\n } }\n >\n <InnerBlocks.Content />\n </div>\n </div>\n );\n },\n }\n ]\n } );\n})( wp.i18n, wp.blocks, wp.element, wp.blockEditor, wp.components, wp.compose, lodash );\n","( function(wpI18n, wpBlocks, wpElement, wpBlockEditor, wpComponents) {\n wpBlockEditor = wp.blockEditor || wp.editor;\n const { __ } = wpI18n;\n const { Component, Fragment } = wpElement;\n const { registerBlockType } = wpBlocks;\n const { InnerBlocks } = wpBlockEditor;\n const { select } = wp.data;\n\n const tabsBlockIcon = (\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"20\" height=\"20\" viewBox=\"0 0 24 24\">\n <path fill=\"none\" d=\"M0,0h24v24H0V0z\"/>\n <path fill=\"none\" d=\"M0,0h24v24H0V0z\"/>\n <path d=\"M21,3H3C1.9,3,1,3.9,1,5v14c0,1.1,0.9,2,2,2h18c1.1,0,2-0.9,2-2V5C23,3.9,22.1,3,21,3z M21,19H3V5h10v4h8V19z\"/>\n </svg>\n );\n\n /**\n * This allows for checking to see if the block needs to generate a new ID.\n */\n const advgbTabsUniqueIDs = [];\n\n class TabItemEdit extends Component {\n constructor() {\n super( ...arguments );\n }\n\n componentWillMount() {\n const { attributes, setAttributes, clientId } = this.props;\n\n const { getBlockRootClientId, getBlockAttributes } = !wp.blockEditor ? select( 'core/editor' ) : select( 'core/block-editor' );\n const rootBlockId = getBlockRootClientId( clientId );\n const rootBlockAttrs = getBlockAttributes( rootBlockId );\n\n // Apply parent style if newly inserted\n if (attributes.changed !== true) {\n if (rootBlockAttrs !== null && rootBlockAttrs.needUpdate !== false) {\n Object.keys(rootBlockAttrs).map((attribute) => {\n attributes[attribute] = rootBlockAttrs[attribute];\n });\n\n // Done applied, we will not do this again\n setAttributes( { changed: true } );\n }\n }\n }\n\n componentDidMount() {\n const { attributes, setAttributes } = this.props;\n const {id, tabHeaders, tabAnchors} = attributes;\n\n if ( ! this.props.attributes.uniqueID ) {\n this.props.setAttributes( {\n uniqueID: '_' + this.props.clientId.substr( 2, 9 ),\n } );\n advgbTabsUniqueIDs.push( '_' + this.props.clientId.substr( 2, 9 ) );\n } else if ( advgbTabsUniqueIDs.includes( this.props.attributes.uniqueID ) ) {\n this.props.setAttributes( {\n uniqueID: '_' + this.props.clientId.substr( 2, 9 ),\n } );\n advgbTabsUniqueIDs.push( '_' + this.props.clientId.substr( 2, 9 ) );\n } else {\n advgbTabsUniqueIDs.push( this.props.attributes.uniqueID );\n }\n\n setAttributes({\n header: tabHeaders[id]\n })\n\n if(typeof tabAnchors !== 'undefined'){\n setAttributes({\n anchor: tabAnchors[id]\n });\n }\n\n }\n\n render() {\n const { attributes } = this.props;\n const {tabActive, id, uniqueID} = attributes;\n\n const ALLOWED_BLOCKS = wp.blocks.getBlockTypes().map(block => block.name).filter(\n blockName => ( blockName !== 'advgb/adv-tabs' && blockName !== 'advgb/tab' )\n );\n\n const tabClassName = [\n `advgb-tab-${uniqueID}`,\n 'advgb-tab-body'\n ].filter(Boolean).join(' ');\n return (\n <Fragment>\n <div className={tabClassName}\n style={{\n display: id === tabActive ? 'block' : 'none',\n }}\n >\n <InnerBlocks\n template={[ [ 'core/paragraph' ] ]}\n templateLock={false}\n allowedBlocks={ ALLOWED_BLOCKS }\n />\n </div>\n </Fragment>\n );\n }\n }\n\n registerBlockType( 'advgb/tab', {\n title: __( 'Tab Item - PublishPress', 'advanced-gutenberg' ),\n parent: [ 'advgb/adv-tabs' ],\n icon: {\n src: tabsBlockIcon,\n foreground: typeof advgbBlocks !== 'undefined' ? advgbBlocks.color : undefined,\n },\n category: 'advgb-category',\n attributes: {\n id: {\n type: 'number',\n default: 0\n },\n pid: {\n type: 'string',\n },\n header: {\n type: 'html',\n },\n anchor: {\n type: 'string',\n },\n tabActive: {\n type: 'number',\n default: 0,\n },\n changed: {\n type: 'boolean',\n default: false,\n },\n tabHeaders: {\n type: 'array',\n default: [\n __( 'Tab 1', 'advanced-gutenberg' ),\n __( 'Tab 2', 'advanced-gutenberg' ),\n __( 'Tab 3', 'advanced-gutenberg' ),\n ]\n },\n tabAnchors: {\n type: 'array',\n default: [\n '',\n '',\n ''\n ]\n },\n uniqueID: {\n type: 'string',\n default: '',\n }\n },\n supports: {\n reusable: false,\n },\n keywords: [ __( 'tab', 'advanced-gutenberg' ) ],\n edit: TabItemEdit,\n save: function( { attributes } ) {\n const {id, uniqueID, header, anchor } = attributes;\n\n const tabClassName = [\n `advgb-tab-${uniqueID}`,\n 'advgb-tab-body'\n ].filter(Boolean).join(' ');\n\n return (\n <div className=\"advgb-tab-body-container\">\n <div className={`advgb-tab-body-header advgb-tab-class-${anchor}`}>{header}</div>\n <div className={tabClassName} aria-labelledby={`advgb-tabs-tab${id}`}>\n <InnerBlocks.Content />\n </div>\n </div>\n );\n },\n deprecated: [\n {\n attributes: {\n id: {\n type: 'number',\n default: 0\n },\n pid: {\n type: 'string',\n },\n header: {\n type: 'html',\n },\n tabActive: {\n type: 'number',\n default: 0,\n },\n changed: {\n type: 'boolean',\n default: false,\n },\n tabHeaders: {\n type: 'array',\n default: [\n __( 'Tab 1', 'advanced-gutenberg' ),\n __( 'Tab 2', 'advanced-gutenberg' ),\n __( 'Tab 3', 'advanced-gutenberg' ),\n ]\n },\n uniqueID: {\n type: 'string',\n default: '',\n }\n },\n supports: {\n reusable: false,\n },\n save: function( { attributes } ) {\n const {id, uniqueID, header} = attributes;\n\n const tabClassName = [\n `advgb-tab-${uniqueID}`,\n 'advgb-tab-body'\n ].filter(Boolean).join(' ');\n\n return (\n <div className=\"advgb-tab-body-container\">\n <div className=\"advgb-tab-body-header\">{header}</div>\n <div className={tabClassName} aria-labelledby={`advgb-tabs-tab${id}`}>\n <InnerBlocks.Content />\n </div>\n </div>\n );\n }\n },\n {\n attributes: {\n pid: {\n type: 'string',\n },\n header: {\n type: 'html',\n },\n tabActive: {\n type: 'number',\n default: 0,\n },\n changed: {\n type: 'boolean',\n default: false,\n },\n tabHeaders: {\n type: 'array',\n default: [\n __( 'Tab 1', 'advanced-gutenberg' ),\n __( 'Tab 2', 'advanced-gutenberg' ),\n __( 'Tab 3', 'advanced-gutenberg' ),\n ]\n },\n uniqueID: {\n type: 'string',\n default: '',\n }\n },\n save: function( { attributes } ) {\n const {pid, header} = attributes;\n\n return (\n <div className=\"advgb-tab-body-container\">\n <div className=\"advgb-tab-body-header\">{header}</div>\n <div className=\"advgb-tab-body\" id={pid}>\n <InnerBlocks.Content />\n </div>\n </div>\n );\n }\n }\n ]\n });\n\n} ) ( wp.i18n, wp.blocks, wp.element, wp.blockEditor, wp.components );\n","(function ( wpI18n, wpBlocks, wpElement, wpBlockEditor, wpComponents ) {\n wpBlockEditor = wp.blockEditor || wp.editor;\n const { __ } = wpI18n;\n const { Component, Fragment } = wpElement;\n const { registerBlockType } = wpBlocks;\n const { InspectorControls, BlockControls, PanelColorSettings, MediaUpload } = wpBlockEditor;\n const {\n RangeControl,\n PanelBody,\n ToggleControl,\n BaseControl,\n TextControl,\n SelectControl,\n Button,\n Dashicon,\n Spinner,\n Toolbar,\n ToolbarGroup,\n ToolbarButton,\n Disabled\n } = wpComponents;\n\n const PLAY_BUTTON_STYLE = {\n normal: [\n <path key=\"x\" d=\"M8 5v14l11-7z\"/>,\n <path key=\"y\" d=\"M0 0h24v24H0z\" fill=\"none\"/>\n ],\n circleFill: [\n <path key=\"x\" d=\"M0 0h24v24H0z\" fill=\"none\"/>,\n <path key=\"y\" d=\"M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm-2 14.5v-9l6 4.5-6 4.5z\"/>\n ],\n circleOutline: [\n <path key=\"x\" d=\"M0 0h24v24H0z\" fill=\"none\"/>,\n <path key=\"y\" d=\"M10 16.5l6-4.5-6-4.5v9zM12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm0 18c-4.41 0-8-3.59-8-8s3.59-8 8-8 8 3.59 8 8-3.59 8-8 8z\"/>\n ],\n videoCam: [\n <path key=\"x\" d=\"M0 0h24v24H0z\" fill=\"none\"/>,\n <path key=\"y\" d=\"M17 10.5V7c0-.55-.45-1-1-1H4c-.55 0-1 .45-1 1v10c0 .55.45 1 1 1h12c.55 0 1-.45 1-1v-3.5l4 4v-11l-4 4z\"/>\n ],\n squareCurved: [\n <path key=\"x\" d=\"M20 8H4V6h16v2zm-2-6H6v2h12V2zm4 10v8c0 1.1-.9 2-2 2H4c-1.1 0-2-.9-2-2v-8c0-1.1.9-2 2-2h16c1.1 0 2 .9 2 2zm-6 4l-6-3.27v6.53L16 16z\"/>,\n <path key=\"y\" fill=\"none\" d=\"M0 0h24v24H0z\"/>\n ],\n starSticker: [\n <path key=\"x\" d=\"M0 0h24v24H0z\" fill=\"none\"/>,\n <path key=\"y\" d=\"M20 12c0-1.1.9-2 2-2V6c0-1.1-.9-2-2-2H4c-1.1 0-1.99.9-1.99 2v4c1.1 0 1.99.9 1.99 2s-.89 2-2 2v4c0 1.1.9 2 2 2h16c1.1 0 2-.9 2-2v-4c-1.1 0-2-.9-2-2zm-4.42 4.8L12 14.5l-3.58 2.3 1.08-4.12-3.29-2.69 4.24-.25L12 5.8l1.54 3.95 4.24.25-3.29 2.69 1.09 4.11z\"/>\n ],\n };\n\n const previewImageData = 'data:image/png;base64,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';\n\n class AdvVideo extends Component {\n constructor() {\n super( ...arguments );\n this.state = {\n fetching: false,\n };\n\n this.fetchVideoInfo = this.fetchVideoInfo.bind( this );\n }\n\n componentWillMount() {\n const { attributes, setAttributes } = this.props;\n const currentBlockConfig = advgbDefaultConfig['advgb-video'];\n\n // No override attributes of blocks inserted before\n if (attributes.changed !== true) {\n if (typeof currentBlockConfig === 'object' && currentBlockConfig !== null) {\n Object.keys(currentBlockConfig).map((attribute) => {\n if (typeof attributes[attribute] === 'boolean') {\n attributes[attribute] = !!currentBlockConfig[attribute];\n } else {\n attributes[attribute] = currentBlockConfig[attribute];\n }\n });\n }\n\n // Finally set changed attribute to true, so we don't modify anything again\n setAttributes( { changed: true } );\n }\n }\n\n fetchVideoInfo() {\n const { attributes, setAttributes } = this.props;\n const { videoID, poster, posterID } = attributes;\n let realID = videoID;\n\n if (!!videoID) {\n this.setState( { fetching: true } );\n\n let url = '';\n if (videoID.match( /^\\d+$/g )) {\n url = `https://vimeo.com/${videoID}`\n } else {\n url = `https://www.youtube.com/watch?v=${videoID}`\n }\n\n if (videoID.indexOf( 'http' ) > -1) {\n url = videoID;\n }\n\n if (videoID.match( /youtube.com/ )) {\n realID = videoID.split( 'v=' );\n realID = realID[1];\n } else if (videoID.match( /youtu.be|vimeo.com/ )) {\n realID = videoID.split( '/' );\n realID = realID[ realID.length - 1 ];\n }\n\n if (!realID) realID = '';\n\n if (realID.indexOf( '&' ) > -1)\n realID = realID.substring( 0, realID.indexOf( '&' ) );\n\n wp.apiFetch( { path: wp.url.addQueryArgs(`/oembed/1.0/proxy?url=${ encodeURIComponent( url ) }`) } ).then(\n (obj) => {\n this.setState( { fetching: false } );\n if (!!obj.title && !!obj.provider_name) {\n setAttributes( {\n videoTitle: obj.title,\n poster: !!posterID ? poster : obj.thumbnail_url,\n } );\n\n switch (obj.provider_name) {\n case 'YouTube':\n setAttributes( {\n videoSourceType: 'youtube',\n videoURL: `https://www.youtube.com/embed/${realID}?rel=0&wmode=transparent`,\n } );\n break;\n case 'Vimeo':\n setAttributes( {\n videoSourceType: 'vimeo',\n videoURL: `https://player.vimeo.com/video/${realID}`,\n } );\n break;\n default:\n break;\n }\n } else {\n setAttributes( {\n videoTitle: 'ADVGB_FAIL_TO_LOAD',\n poster: '',\n } );\n }\n }\n ).catch( ( error ) => {\n this.setState( { fetching: false } );\n setAttributes( {\n videoTitle: 'ADVGB_FAIL_TO_LOAD',\n poster: '',\n } );\n } )\n }\n }\n\n loadLocalVideo(video, blockId) {\n this.props.setAttributes(\n {\n videoURL: video.url,\n videoID: video.id,\n videoTitle: video.title,\n videoSourceType: 'local',\n openInLightbox: false,\n }\n );\n if(document.querySelector('#'+blockId+' video') != null) {\n document.querySelector( '#' + blockId + ' video' ).pause();\n document.querySelector( '#' + blockId + ' video' ).load();\n }\n }\n\n render() {\n const { isSelected, attributes, clientId, setAttributes } = this.props;\n const {\n videoURL,\n videoID,\n videoSourceType,\n videoTitle,\n videoFullWidth,\n videoWidth,\n videoHeight,\n playButtonIcon,\n playButtonSize,\n playButtonColor,\n overlayColor,\n poster,\n posterID,\n openInLightbox,\n autoPlay,\n loop,\n muted,\n playback,\n playsinline,\n preload,\n isPreview,\n } = attributes;\n\n const blockClassName = [\n 'advgb-video-block',\n !!openInLightbox && !!videoURL && 'advgb-video-lightbox',\n ].filter( Boolean ).join( ' ' );\n\n const videoWrapperClass = [\n 'advgb-video-wrapper',\n !!videoFullWidth && 'full-width',\n !openInLightbox && 'no-lightbox',\n ].filter( Boolean ).join( ' ' );\n\n const blockId = 'advgb-video-' + clientId;\n\n const videoHostIcon = {\n youtube: (\n <svg id=\"Social_Icons\" version=\"1.1\" viewBox=\"0 0 128 128\" xmlns=\"http://www.w3.org/2000/svg\">\n <g id=\"_x34__stroke\">\n <g id=\"Youtube_1_\">\n <rect clipRule=\"evenodd\" fill=\"none\" height=\"128\" width=\"128\"/>\n <path clipRule=\"evenodd\" d=\"M126.72,38.224c0,0-1.252-8.883-5.088-12.794 c-4.868-5.136-10.324-5.16-12.824-5.458c-17.912-1.305-44.78-1.305-44.78-1.305h-0.056c0,0-26.868,0-44.78,1.305 c-2.504,0.298-7.956,0.322-12.828,5.458C2.528,29.342,1.28,38.224,1.28,38.224S0,48.658,0,59.087v9.781 c0,10.433,1.28,20.863,1.28,20.863s1.248,8.883,5.084,12.794c4.872,5.136,11.268,4.975,14.116,5.511 c10.24,0.991,43.52,1.297,43.52,1.297s26.896-0.04,44.808-1.345c2.5-0.302,7.956-0.326,12.824-5.462 c3.836-3.912,5.088-12.794,5.088-12.794S128,79.302,128,68.868v-9.781C128,48.658,126.72,38.224,126.72,38.224z M50.784,80.72 L50.78,44.501l34.584,18.172L50.784,80.72z\" fill=\"#CE1312\" fillRule=\"evenodd\" id=\"Youtube\"/>\n </g>\n </g>\n </svg>\n ),\n vimeo: (\n <svg height=\"25\" viewBox=\"0 0 32 32\" width=\"25\" xmlns=\"http://www.w3.org/2000/svg\">\n <g>\n <circle cx=\"16\" cy=\"16\" id=\"BG\" r=\"16\" fill=\"#5FCCFF\"/>\n <path d=\"M24,12.4c-0.1,1.6-1.2,3.7-3.3,6.4c-2.2,2.8-4,4.2-5.5,4.2 c-0.9,0-1.7-0.9-2.4-2.6c-0.4-1.6-0.9-3.2-1.3-4.7c-0.5-1.7-1-2.6-1.5-2.6c-0.1,0-0.5,0.3-1.3,0.8l-0.8-1 c0.8-0.7,1.6-1.4,2.3-2.1c1.1-0.9,1.8-1.4,2.4-1.4c1.2-0.1,2,0.7,2.3,2.5c0.3,2,0.5,3.2,0.6,3.7c0.4,1.6,0.8,2.4,1.2,2.4 c0.3,0,0.8-0.5,1.5-1.6c0.7-1.1,1-1.9,1.1-2.4c0.1-0.9-0.3-1.4-1.1-1.4c-0.4,0-0.8,0.1-1.2,0.3c0.8-2.6,2.3-3.8,4.5-3.7 C23.3,9.2,24.1,10.3,24,12.4\" id=\"Vimeo\" fill=\"#FFFFFF\"/>\n </g>\n </svg>\n ),\n local: (\n <svg height=\"25\" id=\"Layer_1\" version=\"1.1\" viewBox=\"0 0 24 24\" width=\"25\" xmlns=\"http://www.w3.org/2000/svg\">\n <path clipRule=\"evenodd\" d=\"M22.506,21v0.016L17,15.511V19c0,1.105-0.896,2-2,2h-1.5H3H2c-1.104,0-2-0.895-2-2 v-1l0,0V6l0,0V5c0-1.104,0.896-1.999,2-1.999h1l0,0h10.5l0,0H15c1.104,0,2,0.895,2,1.999v3.516l5.5-5.5V3.001 c0.828,0,1.5,0.671,1.5,1.499v15C24,20.327,23.331,20.996,22.506,21z\" fillRule=\"evenodd\"/>\n </svg>\n ),\n };\n\n return (\n isPreview ?\n <img alt={__('Advanced Video', 'advanced-gutenberg')} width='100%' src={previewImageData}/>\n :\n <Fragment>\n { ( (!!poster && openInLightbox) || ( !openInLightbox && videoSourceType === 'local' ) ) &&\n <BlockControls>\n <ToolbarGroup>\n <MediaUpload\n allowedTypes={ [\"image\"] }\n value={ posterID }\n onSelect={ (image) => setAttributes( { poster: image.url, posterID: image.id } ) }\n render={ ( { open } ) => (\n <ToolbarButton\n className=\"components-toolbar__control\"\n label={ __( 'Change image preview', 'advanced-gutenberg' ) }\n icon=\"edit\"\n onClick={ open }\n />\n ) }\n />\n <ToolbarButton\n className=\"components-toolbar__control\"\n label={ __( 'Remove image preview', 'advanced-gutenberg' ) }\n icon=\"no\"\n onClick={ () => setAttributes( { poster: undefined, posterID: undefined } ) }\n />\n </ToolbarGroup>\n </BlockControls>\n }\n <InspectorControls>\n <PanelBody title={ __( 'Video Settings', 'advanced-gutenberg' ) }>\n <ToggleControl\n label={ __( 'Open video in light box', 'advanced-gutenberg' ) }\n help={ __( 'Lightbox offers additional display options.', 'advanced-gutenberg' ) }\n checked={ openInLightbox }\n onChange={ () => setAttributes( { openInLightbox: !openInLightbox } ) }\n />\n\n { videoSourceType === 'local' &&\n <Fragment>\n <ToggleControl\n label={ __( 'Autoplay', 'advanced-gutenberg' ) }\n checked={ autoPlay }\n onChange={ () => setAttributes( { autoPlay: !autoPlay } ) }\n />\n\n <ToggleControl\n label={ __( 'Loop', 'advanced-gutenberg' ) }\n checked={ loop }\n onChange={ () => setAttributes( { loop: !loop } ) }\n />\n\n <ToggleControl\n label={ __( 'Muted', 'advanced-gutenberg' ) }\n checked={ muted }\n onChange={ () => setAttributes( { muted: !muted } ) }\n />\n\n <ToggleControl\n label={ __( 'Playback Controls', 'advanced-gutenberg' ) }\n checked={ playback }\n onChange={ () => setAttributes( { playback: !playback } ) }\n />\n\n <ToggleControl\n label={ __( 'Play inline', 'advanced-gutenberg' ) }\n checked={ playsinline }\n onChange={ () => setAttributes( { playsinline: !playsinline } ) }\n />\n\n <SelectControl\n label={ __( 'Video preloading', 'advanced-gutenberg' ) }\n value={ preload }\n options={ [\n { label: __( 'Auto', 'advanced-gutenberg' ), value: 'auto' },\n { label: __( 'Metadata', 'advanced-gutenberg' ), value: 'metadata' },\n { label: __( 'None', 'advanced-gutenberg' ), value: 'none' },\n ] }\n onChange={ ( value ) => setAttributes( { preload: value } ) }\n />\n </Fragment>\n }\n\n <ToggleControl\n label={ __( 'Full width', 'advanced-gutenberg' ) }\n checked={ videoFullWidth }\n onChange={ () => setAttributes( { videoFullWidth: !videoFullWidth } ) }\n />\n {!videoFullWidth &&\n <RangeControl\n label={ __( 'Video width', 'advanced-gutenberg' ) }\n value={ videoWidth }\n min={ 100 }\n max={ 1000 }\n onChange={ (value) => setAttributes( { videoWidth: value } ) }\n />\n }\n <RangeControl\n label={ __( 'Video height', 'advanced-gutenberg' ) }\n value={ videoHeight }\n min={ 300 }\n max={ 700 }\n onChange={ (value) => setAttributes( { videoHeight: value } ) }\n />\n {!!openInLightbox &&\n <Fragment>\n <PanelColorSettings\n title={ __( 'Color Settings', 'advanced-gutenberg' ) }\n initialOpen={ false }\n colorSettings={ [\n {\n label: __( 'Overlay Color', 'advanced-gutenberg' ),\n value: overlayColor,\n onChange: ( value ) => setAttributes( { overlayColor: value === undefined ? '#EEEEEE' : value } ),\n },\n {\n label: __( 'Play Button Color', 'advanced-gutenberg' ),\n value: playButtonColor,\n onChange: ( value ) => setAttributes( { playButtonColor: value === undefined ? '#fff' : value } ),\n },\n ] }\n />\n <PanelBody title={ __( 'Play Button', 'advanced-gutenberg' ) }>\n <BaseControl label={ __( 'Icon Style', 'advanced-gutenberg' ) }>\n <div className=\"advgb-icon-items-wrapper\">\n {Object.keys( PLAY_BUTTON_STYLE ).map( ( key, index ) => (\n <div className=\"advgb-icon-item\" key={ index }>\n <span className={ key === playButtonIcon ? 'active' : '' }\n onClick={ () => setAttributes( { playButtonIcon: key } ) }>\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\">\n { PLAY_BUTTON_STYLE[key] }\n </svg>\n </span>\n </div>\n ) ) }\n </div>\n </BaseControl>\n <RangeControl\n label={ __( 'Play Button Size', 'advanced-gutenberg' ) }\n value={ playButtonSize }\n min={ 40 }\n max={ 200 }\n onChange={ (value) => setAttributes( { playButtonSize: value } ) }\n />\n </PanelBody>\n </Fragment>\n }\n </PanelBody>\n </InspectorControls>\n <div className={ blockClassName } id={ blockId }>\n {!!openInLightbox &&\n <div className={ videoWrapperClass } style={ { backgroundColor: overlayColor, width: videoWidth } }>\n <div className=\"advgb-video-poster\" style={ { backgroundImage: `url(${poster})` } }/>\n <div className=\"advgb-button-wrapper\" style={ { height: videoHeight } }>\n {!poster &&\n <MediaUpload\n allowedTypes={ [\"image\"] }\n onSelect={ (media) => setAttributes( { poster: media.url, posterID: media.id } ) }\n value={ posterID }\n render={ ( { open } ) => (\n <Button\n className=\"button button-large\"\n onClick={ open }\n >\n { __( 'Select image preview', 'advanced-gutenberg' ) }\n </Button>\n ) }\n />\n }\n <div className=\"advgb-play-button\" style={ { color: playButtonColor } }>\n <svg xmlns=\"http://www.w3.org/2000/svg\"\n width={ playButtonSize }\n height={ playButtonSize }\n viewBox=\"0 0 24 24\"\n >\n {PLAY_BUTTON_STYLE[playButtonIcon]}\n </svg>\n </div>\n </div>\n </div>\n }\n {!openInLightbox && (\n <div className={ videoWrapperClass }>\n {( (videoSourceType === 'youtube' || videoSourceType === 'vimeo') &&\n <iframe src={videoURL}\n frameBorder=\"0\"\n allowFullScreen\n style={ { width: videoWidth, height: videoHeight } }\n />\n )\n || (videoSourceType === 'local' && (\n <Disabled>\n <video width={videoWidth}\n height={videoHeight}\n poster={poster}\n controls={playback}\n muted={muted}\n >\n <source src={videoURL}/>\n { 'Your browser does not support HTML5 video.' }\n </video>\n </Disabled>\n ))\n || !videoSourceType && <div style={ { width: videoWidth, height: videoHeight } } />}\n </div>\n ) }\n {isSelected &&\n <div className=\"advgb-video-input-block\">\n <div className=\"advgb-video-input\">\n <Dashicon className=\"advgb-video-link-icon\" icon=\"admin-links\" />\n <TextControl\n placeholder={ __( 'Youtube/Vimeo video URL/ID…', 'advanced-gutenberg' ) }\n value={ videoID }\n onChange={ (value) => {\n setAttributes( { videoID: value, videoURL: '', videoTitle: undefined, videoSourceType: '' } );\n } }\n />\n <Button\n className=\"button button-large\"\n disabled={ !videoID || videoSourceType === 'local' }\n style={ { height: '31px' } }\n onClick={ this.fetchVideoInfo }\n >\n { __( 'Fetch video content', 'advanced-gutenberg' ) }\n </Button>\n <MediaUpload\n allowedTypes={ [\"video\"] }\n value={ videoID }\n onSelect={ (video) => this.loadLocalVideo(video, blockId) }\n render={ ( { open } ) => (\n <Button\n className=\"button button-large is-primary\"\n onClick={ open }\n style={ {marginLeft: '5px'} }\n >\n { __( 'Load local video', 'advanced-gutenberg' ) }\n </Button>\n ) }\n />\n </div>\n <div className=\"advgb-current-video-desc\"\n style={ { minWidth: '50%', margin: '10px auto', textAlign: 'center' } }\n >\n <strong>{ __( 'Current Video', 'advanced-gutenberg' ) }:</strong>\n <span title={videoSourceType}\n style={ {\n width: '25px',\n height: '25px',\n margin: '-1px 5px 0',\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center'\n } }\n >\n {videoHostIcon[videoSourceType] || ( this.state.fetching && <Spinner /> ) }\n </span>\n <span>\n {\n ( videoTitle === 'ADVGB_FAIL_TO_LOAD' && <strong style={ { color: 'red' } }>{ __( 'Wrong video URL/ID. Please try another.', 'advanced-gutenberg' ) }</strong> )\n || videoTitle\n || __( 'Not selected yet.', 'advanced-gutenberg' )\n }\n </span>\n </div>\n </div>\n }\n </div>\n </Fragment>\n )\n }\n }\n\n const advVideoBlockIcon = (\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"20\" height=\"20\" viewBox=\"2 2 22 22\">\n <path d=\"M0 0h24v24H0z\" fill=\"none\"/>\n <path d=\"M10 16.5l6-4.5-6-4.5v9zM12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm0 18c-4.41 0-8-3.59-8-8s3.59-8 8-8 8 3.59 8 8-3.59 8-8 8z\"/>\n </svg>\n );\n const blockAttrs = {\n videoURL: {\n type: 'string',\n },\n videoID: {\n type: 'string',\n },\n videoSourceType: {\n type: 'string',\n },\n videoTitle: {\n type: 'string',\n },\n videoFullWidth: {\n type: 'boolean',\n default: true,\n },\n videoWidth: {\n type: 'number',\n },\n videoHeight: {\n type: 'number',\n default: 450,\n },\n playButtonIcon: {\n type: 'string',\n default: 'normal'\n },\n playButtonSize: {\n type: 'number',\n default: 80,\n },\n playButtonColor: {\n type: 'string',\n default: '#fff',\n },\n overlayColor: {\n type: 'string',\n default: '#EEEEEE',\n },\n poster: {\n type: 'string',\n },\n posterID: {\n type: 'number',\n },\n openInLightbox: {\n type: 'boolean',\n default: true,\n },\n changed: {\n type: 'boolean',\n default: false,\n },\n autoPlay: {\n type: 'boolean',\n default: false\n },\n loop: {\n type: 'boolean',\n default: false\n },\n muted: {\n type: 'boolean',\n default: false\n },\n playback: {\n type: 'boolean',\n default: true\n },\n playsinline: {\n type: 'boolean',\n default: true\n },\n preload: {\n type: 'string',\n default: 'metadata'\n },\n isPreview: {\n type: 'boolean',\n default: false,\n },\n };\n\n registerBlockType( 'advgb/video', {\n title: __( 'Video - PublishPress', 'advanced-gutenberg' ),\n description: __( 'Add more options and styles for videos in your Media Library.', 'advanced-gutenberg' ),\n icon: {\n src: advVideoBlockIcon,\n foreground: typeof advgbBlocks !== 'undefined' ? advgbBlocks.color : undefined,\n },\n category: 'advgb-category',\n keywords: [\n __( 'video', 'advanced-gutenberg' ),\n __( 'advanced video', 'advanced-gutenberg' ),\n __( 'embed', 'advanced-gutenberg' ),\n __( 'media', 'advanced-gutenberg' )\n ],\n attributes: blockAttrs,\n example: {\n attributes: {\n isPreview: true\n },\n },\n supports: {\n anchor: true\n },\n edit: AdvVideo,\n save: function ( { attributes } ) {\n const {\n videoURL,\n videoSourceType,\n videoTitle,\n videoFullWidth,\n videoWidth,\n videoHeight,\n playButtonIcon,\n playButtonSize,\n playButtonColor,\n overlayColor,\n poster,\n openInLightbox,\n autoPlay,\n loop,\n muted,\n playback,\n playsinline,\n preload\n } = attributes;\n\n const blockClassName = [\n 'advgb-video-block',\n !!videoFullWidth && 'full-width',\n !!openInLightbox && !!videoURL && 'advgb-video-lightbox',\n ].filter( Boolean ).join( ' ' );\n\n const videoWrapperClass = [\n 'advgb-video-wrapper',\n !!videoFullWidth && 'full-width',\n !openInLightbox && 'no-lightbox',\n ].filter( Boolean ).join( ' ' );\n\n let videoAttributes = [];\n if (loop) videoAttributes.push( 'loop' );\n if (muted) videoAttributes.push( 'muted' );\n if (autoPlay) videoAttributes.push( 'autoplay' );\n if (playback) videoAttributes.push( 'controls' );\n if (playsinline) videoAttributes.push( 'playsinline' );\n\n return (\n <div className={ blockClassName }\n data-video={ videoURL }\n data-source={ videoSourceType }\n data-video-attr={videoAttributes.join(',')}\n data-video-preload={preload}\n >\n {!openInLightbox && (\n <div className={ videoWrapperClass }>\n {( (videoSourceType === 'youtube' || videoSourceType === 'vimeo') &&\n <iframe src={videoURL}\n width={videoWidth}\n height={videoHeight}\n frameBorder=\"0\"\n allowFullScreen\n />\n )\n || (videoSourceType === 'local' &&\n <video className={ videoFullWidth && 'full-width' }\n width={videoWidth}\n height={videoHeight}\n poster={poster}\n controls={playback}\n loop={loop}\n muted={muted}\n autoPlay={autoPlay}\n preload={preload}\n playsInline={playsinline}\n >\n <source src={videoURL}/>\n { 'Your browser does not support HTML5 video.' }\n </video>\n )\n || !videoSourceType && <div style={ { width: videoWidth, height: videoHeight } } />}\n </div>\n ) }\n {!!openInLightbox &&\n <div className={ videoWrapperClass } style={ { backgroundColor: overlayColor, width: videoWidth } }>\n <div className=\"advgb-video-poster\" style={ { backgroundImage: `url(${poster})` } }/>\n <div className=\"advgb-button-wrapper\" style={ { height: videoHeight } }>\n <div className=\"advgb-play-button\" style={ { color: playButtonColor } }>\n <svg xmlns=\"http://www.w3.org/2000/svg\"\n width={ playButtonSize }\n height={ playButtonSize }\n viewBox=\"0 0 24 24\"\n >\n {PLAY_BUTTON_STYLE[playButtonIcon]}\n </svg>\n </div>\n </div>\n </div>\n }\n </div>\n );\n },\n deprecated: [\n {\n attributes: blockAttrs,\n save: function ( { attributes } ) {\n const {\n videoURL,\n videoSourceType,\n videoTitle,\n videoFullWidth,\n videoWidth,\n videoHeight,\n playButtonIcon,\n playButtonSize,\n playButtonColor,\n overlayColor,\n poster,\n openInLightbox,\n } = attributes;\n\n const blockClassName = [\n 'advgb-video-block',\n !!videoFullWidth && 'full-width',\n !!openInLightbox && !!videoURL && 'advgb-video-lightbox',\n ].filter( Boolean ).join( ' ' );\n\n const videoWrapperClass = [\n 'advgb-video-wrapper',\n !!videoFullWidth && 'full-width',\n !openInLightbox && 'no-lightbox',\n ].filter( Boolean ).join( ' ' );\n\n return (\n <div className={ blockClassName }\n data-video={ videoURL }\n data-source={ videoSourceType }\n >\n {!openInLightbox && (\n <div className={ videoWrapperClass }>\n {( (videoSourceType === 'youtube' || videoSourceType === 'vimeo') &&\n <iframe src={videoURL}\n width={videoWidth}\n height={videoHeight}\n frameBorder=\"0\"\n allowFullScreen\n />\n )\n || (videoSourceType === 'local' &&\n <video className={ videoFullWidth && 'full-width' }\n width={videoWidth}\n height={videoHeight}\n poster={poster}\n controls\n >\n <source src={videoURL}/>\n { 'Your browser does not support HTML5 video.' }\n </video>\n )\n || !videoSourceType && <div style={ { width: videoWidth, height: videoHeight } } />}\n </div>\n ) }\n {!!openInLightbox &&\n <div className={ videoWrapperClass } style={ { backgroundColor: overlayColor, width: videoWidth } }>\n <div className=\"advgb-video-poster\" style={ { backgroundImage: `url(${poster})` } }/>\n <div className=\"advgb-button-wrapper\" style={ { height: videoHeight } }>\n <div className=\"advgb-play-button\" style={ { color: playButtonColor } }>\n <svg xmlns=\"http://www.w3.org/2000/svg\"\n width={ playButtonSize }\n height={ playButtonSize }\n viewBox=\"0 0 24 24\"\n >\n {PLAY_BUTTON_STYLE[playButtonIcon]}\n </svg>\n </div>\n </div>\n </div>\n }\n </div>\n );\n },\n }]\n } );\n})( wp.i18n, wp.blocks, wp.element, wp.blockEditor, wp.components );\n","\n(function ( wpI18n, wpBlocks, wpElement, wpBlockEditor, wpComponents, lodash ) {\n wpBlockEditor = wp.blockEditor || wp.editor;\n const { __ } = wpI18n;\n const { Component, Fragment } = wpElement;\n const { registerBlockType } = wpBlocks;\n const { InspectorControls, BlockControls, PanelColorSettings, InnerBlocks } = wpBlockEditor;\n const { PanelBody, RangeControl, SelectControl, ToggleControl, Tooltip, ToolbarGroup } = wpComponents;\n const { times } = lodash;\n const { dispatch, select } = wp.data;\n\n const COLUMNS_LAYOUTS = [\n { columns: 1, layout: '100', icon: '100', title: __( 'One column', 'advanced-gutenberg' ), description: __( '100', 'advanced-gutenberg' ) },\n { columns: 2, layout: '12-12', icon: '12-12', title: __( 'Two columns; equal split', 'advanced-gutenberg' ), description: __( '50 / 50', 'advanced-gutenberg' ) },\n { columns: 2, layout: '23-13', icon: '23-13', title: __( 'Two columns; two-thirds, one-third split', 'advanced-gutenberg' ), description: __( '66 / 33', 'advanced-gutenberg' ) },\n { columns: 2, layout: '13-23', icon: '13-23', title: __( 'Two columns; one-third, two-thirds split', 'advanced-gutenberg' ), description: __( '33 / 66', 'advanced-gutenberg' ) },\n { columns: 2, layout: '14-34', icon: '14-34', title: __( 'Two columns; one-quarter, three-quarters split', 'advanced-gutenberg' ), description: __( '25 / 75', 'advanced-gutenberg' ) },\n { columns: 2, layout: '34-14', icon: '34-14', title: __( 'Two columns; three-quarters, one-quarter split', 'advanced-gutenberg' ), description: __( '75 / 25', 'advanced-gutenberg' ) },\n { columns: 2, layout: '15-45', icon: '15-45', title: __( 'Two columns; one-fifth, four-fifths split', 'advanced-gutenberg' ), description: __( '20 / 80', 'advanced-gutenberg' ) },\n { columns: 2, layout: '45-15', icon: '45-15', title: __( 'Two columns; four-fifths, one-fifth split', 'advanced-gutenberg' ), description: __( '80 / 20', 'advanced-gutenberg' ) },\n { columns: 3, layout: '13-13-13', icon: '13-13-13', title: __( 'Three columns; equal split', 'advanced-gutenberg' ), description: __( '33 / 33 / 33', 'advanced-gutenberg' ) },\n { columns: 3, layout: '12-14-14', icon: '12-14-14', title: __( 'Three columns; wider one-half left column', 'advanced-gutenberg' ), description: __( '50 / 25 / 25', 'advanced-gutenberg' ) },\n { columns: 3, layout: '14-14-12', icon: '14-14-12', title: __( 'Three columns; wider one-half right column', 'advanced-gutenberg' ), description: __( '25 / 25 / 50', 'advanced-gutenberg' ) },\n { columns: 3, layout: '14-12-14', icon: '14-12-14', title: __( 'Three columns; wider one-half center column', 'advanced-gutenberg' ), description: __( '25 / 50 / 25', 'advanced-gutenberg' ) },\n { columns: 3, layout: '15-35-15', icon: '15-35-15', title: __( 'Three columns; wider three-fifths center column', 'advanced-gutenberg' ), description: __( '20 / 60 / 20', 'advanced-gutenberg' ) },\n { columns: 3, layout: '35-15-15', icon: '35-15-15', title: __( 'Three columns; wider three-fifths left column', 'advanced-gutenberg' ), description: __( '60 / 20 / 20', 'advanced-gutenberg' ) },\n { columns: 3, layout: '15-15-35', icon: '15-15-35', title: __( 'Three columns; wider three-fifths right column', 'advanced-gutenberg' ), description: __( '20 / 20 / 60', 'advanced-gutenberg' ) },\n { columns: 3, layout: '16-46-16', icon: '16-46-16', title: __( 'Three columns; wider four-sixths center column', 'advanced-gutenberg' ), description: __( '16.6 / 66.6 / 16.6', 'advanced-gutenberg' ) },\n { columns: 4, layout: '14-14-14-14', icon: '14-14-14-14', title: __( 'Four columns; equal split', 'advanced-gutenberg' ), description: __( '25 / 25 / 25 / 25', 'advanced-gutenberg' ) },\n { columns: 4, layout: '36-16-16-16', icon: '36-16-16-16', title: __( 'Four columns; wider one-half left column', 'advanced-gutenberg' ), description: __( '50 / 16.6 / 16.6 / 16.6', 'advanced-gutenberg' ) },\n { columns: 4, layout: '16-16-16-36', icon: '16-16-16-36', title: __( 'Four columns; wider one-half right column', 'advanced-gutenberg' ), description: __( '16.6 / 16.6 / 16.6 / 50', 'advanced-gutenberg' ) },\n { columns: 4, layout: '15-15-15-25', icon: '15-15-15-25', title: __( 'Four columns; wider two-fifths right column', 'advanced-gutenberg' ), description: __( '20 / 20 / 20 / 40', 'advanced-gutenberg' ) },\n { columns: 4, layout: '25-15-15-15', icon: '25-15-15-15', title: __( 'Four columns; wider two-fifths left column', 'advanced-gutenberg' ), description: __( '40 / 20 / 20 / 20', 'advanced-gutenberg' ) },\n { columns: 5, layout: 'five', icon: '15-15-15-15-15', title: __( 'Five columns; equal split', 'advanced-gutenberg' ), description: __( '20 / 20 / 20 / 20 / 20', 'advanced-gutenberg' ) },\n { columns: 6, layout: 'six', icon: '16-16-16-16-16-16', title: __( 'Six columns; equal split', 'advanced-gutenberg' ), description: __( '16.6 / 16.6 / 16.6 / 16.6 / 16.6 / 16.6', 'advanced-gutenberg' ) },\n ];\n const COLUMNS_LAYOUTS_RESPONSIVE = [\n { columns: 3, layout: '1-12-12', icon: '100-12-12', title: __( 'Three: 100 - 1/2 - 1/2', 'advanced-gutenberg' ) },\n { columns: 3, layout: '12-12-1', icon: '12-12-100', title: __( 'Three: 1/2 - 1/2 - 100', 'advanced-gutenberg' ) },\n { columns: 4, layout: '12x4', icon: '12-12-12-12', title: __( 'Four: Two Columns', 'advanced-gutenberg' ) },\n { columns: 6, layout: '12x6', icon: '12-12-12-12', title: __( 'Six: Two Columns', 'advanced-gutenberg' ) },\n { columns: 6, layout: '13x6', icon: '13-13-13-13-13-13', title: __( 'Six: Three Columns', 'advanced-gutenberg' ) },\n ];\n const COLUMNS_LAYOUTS_STACKED = {\n columns: 1, layout: 'stacked', icon: 'stacked', title: __( 'Stacked', 'advanced-gutenberg' )\n };\n const GUTTER_OPTIONS = [\n {label: __( 'None', 'advanced-gutenberg' ), value: 0},\n {label: '10px', value: 10},\n {label: '20px', value: 20},\n {label: '30px', value: 30},\n {label: '40px', value: 40},\n {label: '50px', value: 50},\n {label: '70px', value: 70},\n {label: '90px', value: 90},\n ];\n\n const previewImageData = 'data:image/png;base64,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';\n\n class AdvColumnsEdit extends Component {\n constructor() {\n super( ...arguments );\n this.state = {\n tabSelected: 'desktop',\n }\n }\n\n componentWillMount() {\n const { attributes, setAttributes } = this.props;\n const currentBlockConfig = advgbDefaultConfig['advgb-columns'];\n\n // No override attributes of blocks inserted before\n if (attributes.changed !== true) {\n if (typeof currentBlockConfig === 'object' && currentBlockConfig !== null) {\n Object.keys(currentBlockConfig).map((attribute) => {\n if (typeof attributes[attribute] === 'boolean') {\n attributes[attribute] = !!currentBlockConfig[attribute];\n } else {\n attributes[attribute] = currentBlockConfig[attribute];\n }\n });\n }\n\n // Finally set changed attribute to true, so we don't modify anything again\n setAttributes( { changed: true } );\n }\n }\n\n componentDidMount() {\n const { attributes, setAttributes, clientId } = this.props;\n\n if ( !attributes.id ) {\n setAttributes( { colId: 'advgb-cols-' + clientId, } )\n }\n }\n\n componentDidUpdate( prevProps ) {\n const {\n columnsLayout: prevLayout,\n columnsLayoutT: prevLayoutT,\n columnsLayoutM: prevLayoutM,\n } = prevProps.attributes;\n const { attributes, clientId } = this.props;\n const { columns, columnsLayout, columnsLayoutT, columnsLayoutM } = attributes;\n const { getBlockOrder } = !wp.blockEditor ? select( 'core/editor' ) : select( 'core/block-editor' );\n const { updateBlockAttributes } = !wp.blockEditor ? dispatch( 'core/editor' ) : dispatch( 'core/block-editor' );\n const childBlocks = getBlockOrder(clientId);\n let shouldUpdate = false;\n let classes = times( 6, () => [] );\n\n const extraClassD = !!columnsLayoutT ? '-desktop' : '-tablet';\n const extraClassT = '-tablet';\n const extraClassM = '-mobile';\n\n if (prevLayout !== columnsLayout\n || prevLayoutT !== columnsLayoutT\n || prevLayoutM !== columnsLayoutM\n ) {\n shouldUpdate = true;\n classes = AdvColumnsEdit.prepareColumnClass(columnsLayout, extraClassD, classes);\n classes = AdvColumnsEdit.prepareColumnClass(columnsLayoutT, extraClassT, classes);\n classes = AdvColumnsEdit.prepareColumnClass(columnsLayoutM, extraClassM, classes);\n }\n\n if (shouldUpdate) {\n classes = classes.map((cls) => cls.filter( Boolean ).join( ' ' ));\n classes.map(\n ( cls, idx ) =>\n (!!childBlocks[idx]) && updateBlockAttributes( childBlocks[idx], { columnClasses: cls, width: 0 } )\n );\n }\n }\n\n translatableText(text) {\n switch(text){\n case 'desktop':\n return __('desktop', 'advanced-gutenberg');\n break;\n case 'tablet':\n return __('tablet', 'advanced-gutenberg');\n break;\n case 'mobile':\n return __('mobile', 'advanced-gutenberg');\n break;\n }\n }\n\n static prepareColumnClass(layout, extraClass, classObj) {\n switch (layout) {\n case '12-12':\n for ( let i = 0; i < 2; i++) {\n classObj[i].push('advgb-is-half' + extraClass);\n }\n break;\n case '13-13-13':\n for ( let i = 0; i < 3; i++) {\n classObj[i].push('advgb-is-one-third' + extraClass);\n }\n break;\n case '14-14-14-14':\n for ( let i = 0; i < 4; i++) {\n classObj[i].push('advgb-is-one-quarter' + extraClass);\n }\n break;\n case 'five':\n for ( let i = 0; i < 5; i++) {\n classObj[i].push('advgb-is-one-fifth' + extraClass);\n }\n break;\n case 'six':\n for ( let i = 0; i < 6; i++) {\n classObj[i].push('advgb-is-2' + extraClass);\n }\n break;\n case '23-13':\n classObj[0].push('advgb-is-two-thirds' + extraClass);\n classObj[1].push('advgb-is-one-third' + extraClass);\n break;\n case '13-23':\n classObj[0].push('advgb-is-one-third' + extraClass);\n classObj[1].push('advgb-is-two-thirds' + extraClass);\n break;\n case '34-14':\n classObj[0].push('advgb-is-three-quarters' + extraClass);\n classObj[1].push('advgb-is-one-quarter' + extraClass);\n break;\n case '14-34':\n classObj[0].push('advgb-is-one-quarter' + extraClass);\n classObj[1].push('advgb-is-three-quarters' + extraClass);\n break;\n case '45-15':\n classObj[0].push('advgb-is-four-fifths' + extraClass);\n classObj[1].push('advgb-is-one-fifth' + extraClass);\n break;\n case '15-45':\n classObj[0].push('advgb-is-one-fifth' + extraClass);\n classObj[1].push('advgb-is-four-fifths' + extraClass);\n break;\n case '12-14-14':\n classObj[0].push('advgb-is-half' + extraClass);\n classObj[1].push('advgb-is-one-quarter' + extraClass);\n classObj[2].push('advgb-is-one-quarter' + extraClass);\n break;\n case '14-14-12':\n classObj[0].push('advgb-is-one-quarter' + extraClass);\n classObj[1].push('advgb-is-one-quarter' + extraClass);\n classObj[2].push('advgb-is-half' + extraClass);\n break;\n case '14-12-14':\n classObj[0].push('advgb-is-one-quarter' + extraClass);\n classObj[1].push('advgb-is-half' + extraClass);\n classObj[2].push('advgb-is-one-quarter' + extraClass);\n break;\n case '15-35-15':\n classObj[0].push('advgb-is-one-fifth' + extraClass);\n classObj[1].push('advgb-is-three-fifths' + extraClass);\n classObj[2].push('advgb-is-one-fifth' + extraClass);\n break;\n case '35-15-15':\n classObj[0].push('advgb-is-three-fifths' + extraClass);\n classObj[1].push('advgb-is-one-fifth' + extraClass);\n classObj[2].push('advgb-is-one-fifth' + extraClass);\n break;\n case '15-15-35':\n classObj[0].push('advgb-is-one-fifth' + extraClass);\n classObj[1].push('advgb-is-one-fifth' + extraClass);\n classObj[2].push('advgb-is-three-fifths' + extraClass);\n break;\n case '16-46-16':\n classObj[0].push('advgb-is-2' + extraClass);\n classObj[1].push('advgb-is-8' + extraClass);\n classObj[2].push('advgb-is-2' + extraClass);\n break;\n case '1-12-12':\n classObj[0].push('advgb-is-full' + extraClass);\n classObj[1].push('advgb-is-half' + extraClass);\n classObj[2].push('advgb-is-half' + extraClass);\n break;\n case '12-12-1':\n classObj[0].push('advgb-is-half' + extraClass);\n classObj[1].push('advgb-is-half' + extraClass);\n classObj[2].push('advgb-is-full' + extraClass);\n break;\n case '36-16-16-16':\n classObj[0].push('advgb-is-half' + extraClass);\n classObj[1].push('advgb-is-2' + extraClass);\n classObj[2].push('advgb-is-2' + extraClass);\n classObj[3].push('advgb-is-2' + extraClass);\n break;\n case '16-16-16-36':\n classObj[0].push('advgb-is-2' + extraClass);\n classObj[1].push('advgb-is-2' + extraClass);\n classObj[2].push('advgb-is-2' + extraClass);\n classObj[3].push('advgb-is-half' + extraClass);\n break;\n case '25-15-15-15':\n classObj[0].push('advgb-is-two-fifths' + extraClass);\n classObj[1].push('advgb-is-one-fifth' + extraClass);\n classObj[2].push('advgb-is-one-fifth' + extraClass);\n classObj[3].push('advgb-is-one-fifth' + extraClass);\n break;\n case '15-15-15-25':\n classObj[0].push('advgb-is-one-fifth' + extraClass);\n classObj[1].push('advgb-is-one-fifth' + extraClass);\n classObj[2].push('advgb-is-one-fifth' + extraClass);\n classObj[3].push('advgb-is-two-fifths' + extraClass);\n break;\n case '12x4':\n for ( let i = 0; i < 4; i++) {\n classObj[i].push('advgb-is-half' + extraClass);\n }\n break;\n case '12x6':\n for ( let i = 0; i < 6; i++) {\n classObj[i].push('advgb-is-half' + extraClass);\n }\n break;\n case '13x6':\n for ( let i = 0; i < 6; i++) {\n classObj[i].push('advgb-is-one-third' + extraClass);\n }\n break;\n case 'stacked':\n for ( let i = 0; i < 6; i++) {\n classObj[i].push('advgb-is-full' + extraClass);\n }\n break;\n default:\n break;\n }\n\n return classObj;\n }\n\n static jsUcfirst(string) {\n return string.charAt(0).toUpperCase() + string.slice(1);\n }\n\n render() {\n const { attributes, setAttributes, clientId, className } = this.props;\n const { tabSelected } = this.state;\n const {\n columns,\n columnsLayout, columnsLayoutT, columnsLayoutM,\n marginUnit,\n marginTop, marginRight, marginBottom, marginLeft,\n marginTopM, marginRightM, marginBottomM, marginLeftM,\n paddingUnit,\n paddingTop, paddingRight, paddingBottom, paddingLeft,\n paddingTopM, paddingRightM, paddingBottomM, paddingLeftM,\n vAlign,\n gutter,\n collapsedGutter,\n collapsedRtl,\n columnsWrapped,\n contentMaxWidth,\n contentMaxWidthUnit,\n contentMinHeight,\n contentMinHeightUnit,\n contentMaxHeight,\n contentMaxHeightUnit,\n wrapperTag,\n isPreview,\n } = attributes;\n\n const blockClasses = [\n 'advgb-columns',\n className,\n vAlign && `columns-valign-${vAlign}`,\n columns && `advgb-columns-${columns}`,\n columnsLayout && `layout-${columnsLayout}`,\n columnsLayoutT && `tbl-layout-${columnsLayoutT}`,\n columnsLayoutM && `mbl-layout-${columnsLayoutM}`,\n !!gutter && `gutter-${gutter}`,\n !!collapsedGutter && `vgutter-${collapsedGutter}`,\n collapsedRtl && 'order-rtl',\n columnsWrapped && 'columns-wrapped',\n ].filter( Boolean ).join( ' ' );\n\n if (!columns) {\n return (\n isPreview ?\n <img alt={__('Columns Manager', 'advanced-gutenberg')} width='100%' src={previewImageData}/>\n :\n <div className=\"advgb-columns-select-wrapper\">\n <div className=\"advgb-columns-select-title\">\n { __( 'Choose a columns layout', 'advanced-gutenberg' ) }\n </div>\n <div className=\"advgb-columns-select-layout\">\n {COLUMNS_LAYOUTS.map( (layout, index) => {\n return (\n <Tooltip text={ layout.title } key={ index }>\n <div className=\"advgb-columns-layout\"\n onClick={ () => setAttributes( {\n columns: layout.columns,\n columnsLayout: layout.layout\n } ) }\n >\n <img src={advgbBlocks.pluginUrl + '/assets/blocks/columns/icons/' + layout.icon + '.png'}\n alt={ layout.layout }\n />\n <div className=\"advgb-columns-layout-description\">\n { layout.description }\n </div>\n </div>\n </Tooltip>\n )\n } ) }\n </div>\n </div>\n )\n }\n\n const COLUMNS_LAYOUTS_FILTERED = COLUMNS_LAYOUTS.filter( (item) => item.columns === columns );\n const COLUMNS_LAYOUTS_RESPONSIVE_FILTERED = COLUMNS_LAYOUTS_RESPONSIVE.filter( (item) => item.columns === columns );\n COLUMNS_LAYOUTS_RESPONSIVE_FILTERED.push( COLUMNS_LAYOUTS_STACKED );\n const VERT_ALIGNMENT_CONTROLS = [\n {\n icon: (\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"20\" height=\"20\" viewBox=\"0 0 24 24\">\n <path d=\"M8 11h3v10h2V11h3l-4-4-4 4zM4 3v2h16V3H4z\"/>\n <path d=\"M0 0h24v24H0z\" fill=\"none\"/>\n </svg>\n ),\n title: __( 'Vertical Align Top', 'advanced-gutenberg' ),\n isActive: vAlign === 'top',\n onClick: () => setAttributes( { vAlign: 'top' } )\n },\n {\n icon: (\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"20\" height=\"20\" viewBox=\"0 0 24 24\">\n <path d=\"M8 19h3v4h2v-4h3l-4-4-4 4zm8-14h-3V1h-2v4H8l4 4 4-4zM4 11v2h16v-2H4z\"/>\n <path d=\"M0 0h24v24H0z\" fill=\"none\"/>\n </svg>\n ),\n title: __( 'Vertical Align Middle', 'advanced-gutenberg' ),\n isActive: vAlign === 'middle',\n onClick: () => setAttributes( { vAlign: 'middle' } )\n },\n {\n icon: (\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"20\" height=\"20\" viewBox=\"0 0 24 24\">\n <path d=\"M16 13h-3V3h-2v10H8l4 4 4-4zM4 19v2h16v-2H4z\"/>\n <path d=\"M0 0h24v24H0z\" fill=\"none\"/>\n </svg>\n ),\n title: __( 'Vertical Align Bottom', 'advanced-gutenberg' ),\n isActive: vAlign === 'bottom',\n onClick: () => setAttributes( { vAlign: 'bottom' } )\n },\n {\n icon: (\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"20\" height=\"20\" viewBox=\"0 0 12 32\">\n <polygon points=\"8,20 8,26 12,26 6,32 0,26 4,26 4,20\"/>\n <polygon points=\"4,12 4,6 0,6 6,0 12,6 8,6 8,12\"/>\n </svg>\n ),\n title: __( 'Inner Columns Full Height', 'advanced-gutenberg' ),\n isActive: vAlign === 'full',\n onClick: () => setAttributes( { vAlign: 'full' } )\n },\n ];\n const MARGIN_PADDING_CONTROLS = [\n {label:'Top', icon: 'arrow-up-alt2'},\n {label:'Right', icon: 'arrow-right-alt2'},\n {label:'Bottom', icon: 'arrow-down-alt2'},\n {label:'Left', icon: 'arrow-left-alt2'},\n ];\n\n let deviceLetter = '';\n if (tabSelected === 'tablet') deviceLetter = 'T';\n if (tabSelected === 'mobile') deviceLetter = 'M';\n\n return (\n isPreview ?\n <img alt={__('Columns Manager ', 'advanced-gutenberg')} width='100%' src={previewImageData}/>\n :\n <Fragment>\n <BlockControls>\n <ToolbarGroup controls={ VERT_ALIGNMENT_CONTROLS } />\n </BlockControls>\n <InspectorControls>\n <PanelBody title={ __( 'Columns Settings', 'advanced-gutenberg' ) }>\n <PanelBody title={ __( 'Responsive Settings', 'advanced-gutenberg' ) }>\n <div className=\"advgb-columns-responsive-items\">\n {['desktop', 'tablet', 'mobile'].map( (device, index) => {\n const itemClasses = [\n \"advgb-columns-responsive-item\",\n tabSelected === device && 'is-selected',\n ].filter( Boolean ).join( ' ' );\n\n return (\n <div className={ itemClasses }\n key={ index }\n onClick={ () => this.setState( { tabSelected: device } ) }\n >\n {this.translatableText(device)}\n </div>\n )\n } ) }\n </div>\n <div className=\"advgb-columns-select-layout on-inspector\">\n {COLUMNS_LAYOUTS_FILTERED.map( (layout, index) => {\n const layoutClasses = [\n 'advgb-columns-layout',\n tabSelected === 'desktop' && layout.layout === columnsLayout && 'is-selected',\n tabSelected === 'tablet' && layout.layout === columnsLayoutT && 'is-selected',\n tabSelected === 'mobile' && layout.layout === columnsLayoutM && 'is-selected',\n ].filter( Boolean ).join( ' ' );\n\n return (\n <Tooltip text={ layout.title } key={ index }>\n <div className={ layoutClasses }\n onClick={ () => {\n setAttributes( {\n ['columnsLayout' + deviceLetter]: layout.layout\n } );\n this.setState( { random: Math.random() } );\n } }\n >\n <img src={advgbBlocks.pluginUrl + '/assets/blocks/columns/icons/' + layout.icon + '.png'}\n alt={ layout.layout }\n />\n </div>\n </Tooltip>\n )\n } ) }\n {tabSelected !== 'desktop' && COLUMNS_LAYOUTS_RESPONSIVE_FILTERED.map( (layout, index) => {\n const layoutClasses = [\n 'advgb-columns-layout',\n tabSelected === 'tablet' && layout.layout === columnsLayoutT && 'is-selected',\n tabSelected === 'mobile' && layout.layout === columnsLayoutM && 'is-selected',\n ].filter( Boolean ).join( ' ' );\n\n return (\n <Tooltip text={ layout.title } key={ index }>\n <div className={ layoutClasses }\n onClick={ () => {\n setAttributes( {\n ['columnsLayout' + deviceLetter]: layout.layout\n } );\n this.setState( { random: Math.random() } );\n } }\n >\n <img src={advgbBlocks.pluginUrl + '/assets/blocks/columns/icons/' + layout.icon + '.png'}\n alt={ layout.layout }\n />\n </div>\n </Tooltip>\n )\n } ) }\n </div>\n {tabSelected === 'desktop' && (\n <SelectControl\n label={ __( 'Space between columns', 'advanced-gutenberg' ) }\n value={ gutter }\n options={ GUTTER_OPTIONS }\n onChange={ (value) => setAttributes( { gutter: parseInt(value) } ) }\n />\n ) }\n {tabSelected === 'mobile' && columnsLayoutM === 'stacked' && (\n <Fragment>\n <SelectControl\n label={ __( 'Vertical space when collapsed', 'advanced-gutenberg' ) }\n value={ collapsedGutter }\n options={ GUTTER_OPTIONS }\n onChange={ (value) => setAttributes( { collapsedGutter: parseInt(value) } ) }\n />\n <ToggleControl\n label={ __( 'Collapsed Order RTL', 'advanced-gutenberg' ) }\n checked={ collapsedRtl }\n onChange={ () => setAttributes( { collapsedRtl: !collapsedRtl } ) }\n />\n </Fragment>\n ) }\n <PanelBody title={ tabSelected !== 'desktop' ? AdvColumnsEdit.jsUcfirst(tabSelected) + __(' Padding', 'advanced-gutenberg') : __('Padding', 'advanced-gutenberg') }\n initialOpen={false}\n >\n <div className=\"advgb-controls-title\">\n <span>{ __( 'Unit', 'advanced-gutenberg' ) }</span>\n <div className=\"advgb-unit-wrapper\" key=\"unit\">\n { ['px', 'em', 'vh', '%'].map( (unit, idx) => (\n <span className={`advgb-unit ${paddingUnit === unit ? 'selected' : ''}`} key={idx}\n onClick={ () => setAttributes( { paddingUnit: unit } ) }\n >\n {unit}\n </span>\n ) ) }\n </div>\n </div>\n {MARGIN_PADDING_CONTROLS.map((pos, idx) => (\n <RangeControl\n key={ idx }\n beforeIcon={ pos.icon }\n value={ attributes['padding' + pos.label + deviceLetter] || 0 }\n min={ 0 }\n max={ 200 }\n onChange={ (value) => setAttributes( { ['padding' + pos.label + deviceLetter]: value } ) }\n />\n ) ) }\n </PanelBody>\n <PanelBody title={ tabSelected !== 'desktop' ? AdvColumnsEdit.jsUcfirst(tabSelected) + __(' Margin', 'advanced-gutenberg') : __('Margin', 'advanced-gutenberg') }\n initialOpen={false}\n >\n <div className=\"advgb-controls-title\">\n <span>{ __( 'Unit', 'advanced-gutenberg' ) }</span>\n <div className=\"advgb-unit-wrapper\" key=\"unit\">\n { ['px', 'em', 'vh', '%'].map( (unit, idx) => (\n <span className={`advgb-unit ${marginUnit === unit ? 'selected' : ''}`} key={idx}\n onClick={ () => setAttributes( { marginUnit: unit } ) }\n >\n {unit}\n </span>\n ) ) }\n </div>\n </div>\n {MARGIN_PADDING_CONTROLS.map((pos, idx) => (\n <RangeControl\n key={ idx }\n beforeIcon={ pos.icon }\n value={ attributes['margin' + pos.label + deviceLetter] || 0 }\n min={ 0 }\n max={ 200 }\n onChange={ (value) => setAttributes( { ['margin' + pos.label + deviceLetter]: value } ) }\n />\n ) ) }\n </PanelBody>\n </PanelBody>\n <PanelBody title={ __( 'Row Settings', 'advanced-gutenberg' ) } initialOpen={ false }>\n <ToggleControl\n label={ __( 'Columns Wrapped', 'advanced-gutenberg' ) }\n help={ __( 'If your columns overflow they available space, they will be placed on a new line.', 'advanced-gutenberg' ) }\n checked={ columnsWrapped }\n onChange={ () => setAttributes( { columnsWrapped: !columnsWrapped } ) }\n />\n <SelectControl\n label={ __( 'Wrapper Tag', 'advanced-gutenberg' ) }\n value={ wrapperTag }\n options={ [\n { label: 'Div', value: 'div' },\n { label: 'Header', value: 'header' },\n { label: 'Section', value: 'section' },\n { label: 'Main', value: 'main' },\n { label: 'Article', value: 'article' },\n { label: 'Aside', value: 'aside' },\n { label: 'Footer', value: 'footer' },\n ] }\n onChange={ (value) => setAttributes( { wrapperTag: value } ) }\n />\n <RangeControl\n label={ [\n __( 'Content Max Width', 'advanced-gutenberg' ),\n <div className=\"advgb-unit-wrapper\" key=\"unit\">\n { ['px', 'vw', '%'].map( (unit, idx) => (\n <span className={`advgb-unit ${contentMaxWidthUnit === unit ? 'selected' : ''}`} key={idx}\n onClick={ () => setAttributes( { contentMaxWidthUnit: unit } ) }\n >\n {unit}\n </span>\n ) ) }\n </div>\n ] }\n value={ contentMaxWidth }\n min={ 0 }\n max={ contentMaxWidthUnit === 'px' ? 2000 : 100 }\n onChange={ (value) => setAttributes( { contentMaxWidth: value } ) }\n />\n <RangeControl\n label={ [\n __( 'Content Min Height', 'advanced-gutenberg' ),\n <div className=\"advgb-unit-wrapper\" key=\"unit\">\n { ['px', 'vw', 'vh'].map( (unit, idx) => (\n <span className={`advgb-unit ${contentMinHeightUnit === unit ? 'selected' : ''}`} key={idx}\n onClick={ () => setAttributes( { contentMinHeightUnit: unit } ) }\n >\n {unit}\n </span>\n ) ) }\n </div>\n ] }\n value={ contentMinHeight }\n min={ 0 }\n max={ contentMinHeightUnit === 'px' ? 2000 : 200 }\n onChange={ (value) => setAttributes( { contentMinHeight: value } ) }\n />\n <RangeControl\n label={ [\n __( 'Content Max Height', 'advanced-gutenberg' ),\n <div className=\"advgb-unit-wrapper\" key=\"unit\">\n { ['px', 'vw', 'vh'].map( (unit, idx) => (\n <span className={`advgb-unit ${contentMaxHeightUnit === unit ? 'selected' : ''}`} key={idx}\n onClick={ () => setAttributes( { contentMaxHeightUnit: unit } ) }\n >\n {unit}\n </span>\n ) ) }\n </div>\n ] }\n value={ contentMaxHeight }\n min={ 0 }\n max={ contentMaxHeightUnit === 'px' ? 2000 : 200 }\n onChange={ (value) => setAttributes( { contentMaxHeight: value } ) }\n />\n </PanelBody>\n </PanelBody>\n </InspectorControls>\n <span className=\"advgb-columns-spacing\"> </span>\n <div className=\"advgb-columns-wrapper\">\n <div className={ blockClasses }\n style={ {\n maxWidth: !!contentMaxWidth ? `${contentMaxWidth}${contentMaxWidthUnit}` : undefined,\n minHeight: !!contentMinHeight ? `${contentMinHeight}${contentMinHeightUnit}` : undefined,\n maxHeight: !!contentMaxHeight ? `${contentMaxHeight}${contentMaxHeightUnit}` : undefined,\n } }\n >\n <InnerBlocks\n template={ times( parseInt(columns), () => [ 'advgb/column' ] ) }\n templateLock=\"all\"\n allowedBlocks={ [ 'advgb/column' ] }\n random={ this.state.random }\n />\n </div>\n </div>\n <style>\n {`#block-${clientId} .advgb-columns-wrapper .advgb-columns {\n margin-top: ${marginTop + marginUnit};\n margin-right: ${marginRight + marginUnit};\n margin-bottom: ${marginBottom + marginUnit};\n margin-left: ${marginLeft + marginUnit};\n padding-top: ${paddingTop + paddingUnit};\n padding-right: ${paddingRight + paddingUnit};\n padding-bottom: ${paddingBottom + paddingUnit};\n padding-left: ${paddingLeft + paddingUnit};\n }\n @media screen and (max-width: 767px) {\n #block-${clientId} .advgb-columns-wrapper .advgb-columns {\n margin-top: ${marginTopM + marginUnit};\n margin-right: ${marginRightM + marginUnit};\n margin-bottom: ${marginBottomM + marginUnit};\n margin-left: ${marginLeftM + marginUnit};\n padding-top: ${paddingTopM + paddingUnit};\n padding-right: ${paddingRightM + paddingUnit};\n padding-bottom: ${paddingBottomM + paddingUnit};\n padding-left: ${paddingLeftM + paddingUnit};\n }\n }`}\n </style>\n </Fragment>\n )\n }\n }\n\n const blockAttrs = {\n columns: {\n type: 'number',\n },\n columnsLayout: {\n type: 'string',\n },\n columnsLayoutT: {\n type: 'string',\n },\n columnsLayoutM: {\n type: 'string',\n default: 'stacked',\n },\n marginTop: {\n type: 'number',\n },\n marginTopT: {\n type: 'number',\n },\n marginTopM: {\n type: 'number',\n },\n marginRight: {\n type: 'number',\n },\n marginRightT: {\n type: 'number',\n },\n marginRightM: {\n type: 'number',\n },\n marginBottom: {\n type: 'number',\n },\n marginBottomT: {\n type: 'number',\n },\n marginBottomM: {\n type: 'number',\n },\n marginLeft: {\n type: 'number',\n },\n marginLeftT: {\n type: 'number',\n },\n marginLeftM: {\n type: 'number',\n },\n marginUnit: {\n type: 'string',\n default: 'px',\n },\n paddingTop: {\n type: 'number',\n },\n paddingTopT: {\n type: 'number',\n },\n paddingTopM: {\n type: 'number',\n },\n paddingRight: {\n type: 'number',\n },\n paddingRightT: {\n type: 'number',\n },\n paddingRightM: {\n type: 'number',\n },\n paddingBottom: {\n type: 'number',\n },\n paddingBottomT: {\n type: 'number',\n },\n paddingBottomM: {\n type: 'number',\n },\n paddingLeft: {\n type: 'number',\n },\n paddingLeftT: {\n type: 'number',\n },\n paddingLeftM: {\n type: 'number',\n },\n paddingUnit: {\n type: 'string',\n default: 'px',\n },\n gutter: {\n type: 'number',\n default: 0,\n },\n collapsedGutter: {\n type: 'number',\n default: 10,\n },\n collapsedRtl: {\n type: 'boolean',\n default: false,\n },\n vAlign: {\n type: 'string',\n },\n columnsWrapped: {\n type: 'boolean',\n default: false,\n },\n contentMaxWidth: {\n type: 'number',\n },\n contentMaxWidthUnit: {\n type: 'string',\n default: 'px',\n },\n contentMinHeight: {\n type: 'number',\n },\n contentMinHeightUnit: {\n type: 'string',\n default: 'px',\n },\n contentMaxHeight: {\n type: 'number',\n },\n contentMaxHeightUnit: {\n type: 'string',\n default: 'px',\n },\n wrapperTag: {\n type: 'string',\n default: 'div',\n },\n colId: {\n type: 'string',\n },\n changed: {\n type: 'boolean',\n default: false,\n },\n isPreview: {\n type: 'boolean',\n default: false,\n },\n };\n\n registerBlockType( 'advgb/columns', {\n title: __( 'Columns - PublishPress', 'advanced-gutenberg' ),\n description: __( 'Create flexible layouts for your content with advanced options and styles.', 'advanced-gutenberg' ),\n icon: {\n src: 'layout',\n foreground: typeof advgbBlocks !== 'undefined' ? advgbBlocks.color : undefined,\n },\n category: 'advgb-category',\n keywords: [ __( 'columns', 'advanced-gutenberg' ), __( 'columns manager', 'advanced-gutenberg' ), __( 'row', 'advanced-gutenberg' ), __( 'layout', 'advanced-gutenberg' ) ],\n supports: {\n align: [ 'wide', 'full' ],\n html: false,\n },\n attributes: blockAttrs,\n example: {\n attributes: {\n isPreview: true\n },\n },\n edit: AdvColumnsEdit,\n save: function ( { attributes } ) {\n const {\n columns,\n columnsLayout, columnsLayoutT, columnsLayoutM,\n vAlign,\n gutter,\n collapsedGutter,\n collapsedRtl,\n columnsWrapped,\n contentMaxWidth,\n contentMaxWidthUnit,\n contentMinHeight,\n contentMinHeightUnit,\n contentMaxHeight,\n contentMaxHeightUnit,\n wrapperTag,\n colId,\n } = attributes;\n const Tag = wrapperTag;\n\n const blockClasses = [\n 'advgb-columns',\n 'advgb-columns-row',\n 'advgb-is-mobile',\n vAlign && `columns-valign-${vAlign}`,\n columns && `advgb-columns-${columns}`,\n columnsLayout && `layout-${columnsLayout}`,\n columnsLayoutT && `tbl-layout-${columnsLayoutT}`,\n columnsLayoutM && `mbl-layout-${columnsLayoutM}`,\n !!gutter && `gutter-${gutter}`,\n !!collapsedGutter && `vgutter-${collapsedGutter}`,\n collapsedRtl && 'order-rtl',\n columnsWrapped && 'columns-wrapped',\n ].filter( Boolean ).join( ' ' );\n\n return (\n <Tag className=\"advgb-columns-wrapper\" id={ colId }>\n <div className=\"advgb-columns-container\">\n <div className={ blockClasses }\n style={ {\n maxWidth: !!contentMaxWidth ? `${contentMaxWidth}${contentMaxWidthUnit}` : undefined,\n minHeight: !!contentMinHeight ? `${contentMinHeight}${contentMinHeightUnit}` : undefined,\n maxHeight: !!contentMaxHeight ? `${contentMaxHeight}${contentMaxHeightUnit}` : undefined,\n } }\n >\n <InnerBlocks.Content />\n </div>\n </div>\n </Tag>\n );\n },\n deprecated: [\n {\n attributes: blockAttrs,\n save: function ( { attributes } ) {\n const {\n columns,\n columnsLayout, columnsLayoutT, columnsLayoutM,\n vAlign,\n gutter,\n collapsedGutter,\n collapsedRtl,\n columnsWrapped,\n contentMaxWidth,\n contentMaxWidthUnit,\n contentMinHeight,\n contentMinHeightUnit,\n contentMaxHeight,\n contentMaxHeightUnit,\n wrapperTag,\n colId,\n } = attributes;\n const Tag = wrapperTag;\n\n const blockClasses = [\n 'advgb-columns',\n 'advgb-is-mobile',\n vAlign && `columns-valign-${vAlign}`,\n columns && `advgb-columns-${columns}`,\n columnsLayout && `layout-${columnsLayout}`,\n columnsLayoutT && `tbl-layout-${columnsLayoutT}`,\n columnsLayoutM && `mbl-layout-${columnsLayoutM}`,\n !!gutter && `gutter-${gutter}`,\n !!collapsedGutter && `vgutter-${collapsedGutter}`,\n collapsedRtl && 'order-rtl',\n columnsWrapped && 'columns-wrapped',\n ].filter( Boolean ).join( ' ' );\n\n return (\n <Tag className=\"advgb-columns-wrapper\">\n <div className={ blockClasses } id={ colId }\n style={ {\n maxWidth: !!contentMaxWidth ? `${contentMaxWidth}${contentMaxWidthUnit}` : undefined,\n minHeight: !!contentMinHeight ? `${contentMinHeight}${contentMinHeightUnit}` : undefined,\n maxHeight: !!contentMaxHeight ? `${contentMaxHeight}${contentMaxHeightUnit}` : undefined,\n } }\n >\n <InnerBlocks.Content />\n </div>\n </Tag>\n );\n }\n },\n {\n attributes: blockAttrs,\n save: function ( { attributes } ) {\n const {\n columns,\n columnsLayout, columnsLayoutT, columnsLayoutM,\n vAlign,\n gutter,\n collapsedGutter,\n collapsedRtl,\n columnsWrapped,\n contentMaxWidth,\n contentMaxWidthUnit,\n contentMinHeight,\n contentMinHeightUnit,\n wrapperTag,\n colId,\n } = attributes;\n const Tag = wrapperTag;\n\n const blockClasses = [\n 'advgb-columns',\n 'columns is-mobile',\n vAlign && `columns-valign-${vAlign}`,\n columns && `advgb-columns-${columns}`,\n columnsLayout && `layout-${columnsLayout}`,\n columnsLayoutT && `tbl-layout-${columnsLayoutT}`,\n columnsLayoutM && `mbl-layout-${columnsLayoutM}`,\n !!gutter && `gutter-${gutter}`,\n !!collapsedGutter && `vgutter-${collapsedGutter}`,\n collapsedRtl && 'order-rtl',\n columnsWrapped && 'columns-wrapped',\n ].filter( Boolean ).join( ' ' );\n\n return (\n <Tag className=\"advgb-columns-wrapper\">\n <div className={ blockClasses } id={ colId }\n style={ {\n maxWidth: !!contentMaxWidth ? `${contentMaxWidth}${contentMaxWidthUnit}` : undefined,\n minHeight: !!contentMinHeight ? `${contentMinHeight}${contentMinHeightUnit}` : undefined,\n } }\n >\n <InnerBlocks.Content />\n </div>\n </Tag>\n );\n },\n }\n ]\n } );\n})( wp.i18n, wp.blocks, wp.element, wp.blockEditor, wp.components, lodash );\n","(function ( wpI18n, wpBlocks, wpElement, wpBlockEditor, wpComponents ) {\n wpBlockEditor = wp.blockEditor || wp.editor;\n const { __ } = wpI18n;\n const { Component, Fragment } = wpElement;\n const { registerBlockType } = wpBlocks;\n const { InspectorControls, PanelColorSettings, AlignmentToolbar, InnerBlocks } = wpBlockEditor;\n const { PanelBody, RangeControl, BaseControl, SelectControl } = wpComponents;\n const { select } = wp.data;\n\n const columnsBlockIcon = (\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"20\" height=\"20\" viewBox=\"0 0 24 24\">\n <path d=\"M10 18h5V5h-5v13zm-6 0h5V5H4v13zM16 5v13h5V5h-5z\"/>\n <path d=\"M0 0h24v24H0z\" fill=\"none\"/>\n </svg>\n );\n const listBorderStyles = [\n { label: __( 'None', 'advanced-gutenberg' ), value: 'none' },\n { label: __( 'Solid', 'advanced-gutenberg' ), value: 'solid' },\n { label: __( 'Dotted', 'advanced-gutenberg' ), value: 'dotted' },\n { label: __( 'Dashed', 'advanced-gutenberg' ), value: 'dashed' },\n { label: __( 'Double', 'advanced-gutenberg' ), value: 'double' },\n { label: __( 'Groove', 'advanced-gutenberg' ), value: 'groove' },\n { label: __( 'Ridge', 'advanced-gutenberg' ), value: 'ridge' },\n { label: __( 'Inset', 'advanced-gutenberg' ), value: 'inset' },\n { label: __( 'Outset', 'advanced-gutenberg' ), value: 'outset' },\n ];\n const MARGIN_PADDING_CONTROLS = [\n {label:'Top', icon: 'arrow-up-alt2'},\n {label:'Right', icon: 'arrow-right-alt2'},\n {label:'Bottom', icon: 'arrow-down-alt2'},\n {label:'Left', icon: 'arrow-left-alt2'},\n ];\n\n class AdvColumnEdit extends Component {\n constructor() {\n super( ...arguments );\n this.state = {\n tabSelected: 'desktop',\n };\n }\n\n componentWillMount() {\n const { attributes, setAttributes } = this.props;\n const currentBlockConfig = advgbDefaultConfig['advgb-column'];\n\n // No override attributes of blocks inserted before\n if (attributes.changed !== true) {\n if (typeof currentBlockConfig === 'object' && currentBlockConfig !== null) {\n Object.keys(currentBlockConfig).map((attribute) => {\n if (typeof attributes[attribute] === 'boolean') {\n attributes[attribute] = !!currentBlockConfig[attribute];\n } else {\n attributes[attribute] = currentBlockConfig[attribute];\n }\n });\n }\n\n // Finally set changed attribute to true, so we don't modify anything again\n setAttributes( { changed: true } );\n }\n }\n\n componentDidMount() {\n const { attributes, setAttributes, clientId } = this.props;\n\n if ( !attributes.id ) {\n setAttributes( { colId: 'advgb-col-' + clientId, } )\n }\n }\n\n static jsUcfirst(string) {\n return string.charAt(0).toUpperCase() + string.slice(1);\n }\n\n render() {\n const { tabSelected } = this.state;\n const { attributes, setAttributes, clientId, className } = this.props;\n const {\n width,\n borderColor, borderStyle, borderWidth, borderRadius,\n textAlign, textAlignM,\n marginTop, marginRight, marginBottom, marginLeft,\n marginTopM, marginRightM, marginBottomM, marginLeftM,\n paddingTop, paddingRight, paddingBottom, paddingLeft,\n paddingTopM, paddingRightM, paddingBottomM, paddingLeftM,\n } = attributes;\n const { getBlockOrder, getBlockRootClientId, getBlockAttributes } = !wp.blockEditor ? select( 'core/editor' ) : select( 'core/block-editor' );\n const hasChildBlocks = getBlockOrder( clientId ).length > 0;\n const rootBlockId = getBlockRootClientId( clientId );\n const rootChildBlocks = getBlockOrder(rootBlockId).filter( blockId => blockId !== clientId );\n let avaiWidth = 100;\n rootChildBlocks.map( ( blockId ) => {\n const width = getBlockAttributes(blockId).width || 0;\n avaiWidth -= parseInt(width);\n } );\n\n const blockClasses = [\n 'advgb-column',\n className,\n ].filter( Boolean ).join( ' ' );\n\n let deviceLetter = '';\n if (tabSelected === 'mobile') deviceLetter = 'M';\n\n return (\n <Fragment>\n <InspectorControls>\n <PanelBody title={ __( 'Column Settings', 'advanced-gutenberg' ) }>\n <RangeControl\n label={ [\n __( 'Width (%)', 'advanced-gutenberg' ),\n <span key=\"width\" style={ { color: '#555d66', marginLeft: 10 } }>{ __( 'Available: ', 'advanced-gutenberg' ) + avaiWidth + '%' }</span>\n ] }\n help={ __( 'Set to 0 = auto. This will override predefine layout styles. Recommend for experience users!', 'advanced-gutenberg' ) }\n value={ width }\n min={ 0 }\n max={ avaiWidth }\n onChange={ (value) => setAttributes( { width: value } ) }\n />\n <PanelBody title={ __( 'Border Settings', 'advanced-gutenberg' ) }>\n <SelectControl\n label={ __( 'Border style', 'advanced-gutenberg' ) }\n value={ borderStyle }\n options={ listBorderStyles }\n onChange={ ( value ) => setAttributes( { borderStyle: value } ) }\n />\n {borderStyle !== 'none' && (\n <Fragment>\n <PanelColorSettings\n title={ __( 'Border Color', 'advanced-gutenberg' ) }\n initialOpen={ false }\n colorSettings={ [\n {\n label: __( 'Border Color', 'advanced-gutenberg' ),\n value: borderColor,\n onChange: ( value ) => setAttributes( { borderColor: value } ),\n },\n ] }\n />\n <RangeControl\n label={ __( 'Border width', 'advanced-gutenberg' ) }\n value={ borderWidth || '' }\n onChange={ ( value ) => setAttributes( { borderWidth: value } ) }\n min={ 0 }\n max={ 20 }\n />\n <RangeControl\n label={ __( 'Border radius (px)', 'advanced-gutenberg' ) }\n value={ borderRadius || '' }\n onChange={ ( value ) => setAttributes( { borderRadius: value } ) }\n min={ 0 }\n max={ 100 }\n />\n </Fragment>\n ) }\n </PanelBody>\n\n <div className=\"advgb-columns-responsive-items\"\n style={ { borderTop: '2px solid #aaa', paddingTop: 10 } }\n >\n {['desktop', 'mobile'].map( (device, index) => {\n const itemClasses = [\n \"advgb-columns-responsive-item\",\n tabSelected === device && 'is-selected',\n ].filter( Boolean ).join( ' ' );\n\n return (\n <div className={ itemClasses }\n key={ index }\n onClick={ () => this.setState( { tabSelected: device } ) }\n >\n {device}\n </div>\n )\n } ) }\n </div>\n <BaseControl\n label={ AdvColumnEdit.jsUcfirst(tabSelected) + __( ' text alignment', 'advanced-gutenberg' ) }\n >\n <AlignmentToolbar\n isCollapsed={ false }\n value={ attributes[ 'textAlign' + deviceLetter ] }\n onChange={ (align) => setAttributes( { ['textAlign' + deviceLetter]: align } ) }\n />\n </BaseControl>\n <PanelBody title={ tabSelected !== 'desktop' ? AdvColumnEdit.jsUcfirst(tabSelected) + __(' Padding', 'advanced-gutenberg') : __('Padding', 'advanced-gutenberg') }\n initialOpen={false}\n >\n <div className=\"advgb-controls-title\">{ __( 'Unit (px)', 'advanced-gutenberg' ) }</div>\n {MARGIN_PADDING_CONTROLS.map((pos, idx) => (\n <RangeControl\n key={ idx }\n beforeIcon={ pos.icon }\n value={ attributes['padding' + pos.label + deviceLetter] || '' }\n min={ 0 }\n max={ 200 }\n onChange={ (value) => setAttributes( { ['padding' + pos.label + deviceLetter]: value } ) }\n />\n ) ) }\n </PanelBody>\n <PanelBody title={ tabSelected !== 'desktop' ? AdvColumnEdit.jsUcfirst(tabSelected) + __(' Margin', 'advanced-gutenberg') : __('Margin', 'advanced-gutenberg') }\n initialOpen={false}\n >\n <div className=\"advgb-controls-title\">{ __( 'Unit (px)', 'advanced-gutenberg' ) }</div>\n {MARGIN_PADDING_CONTROLS.map((pos, idx) => (\n <RangeControl\n key={ idx }\n beforeIcon={ pos.icon }\n value={ attributes['margin' + pos.label + deviceLetter] || '' }\n min={ 0 }\n max={ 200 }\n onChange={ (value) => setAttributes( { ['margin' + pos.label + deviceLetter]: value } ) }\n />\n ) ) }\n </PanelBody>\n </PanelBody>\n </InspectorControls>\n <div className={ blockClasses }>\n <div className=\"advgb-column-inner\"\n style={ {\n borderStyle, borderColor, borderWidth, borderRadius,\n } }\n >\n <InnerBlocks\n templateLock={ false }\n renderAppender={ (\n hasChildBlocks ?\n undefined :\n () => <InnerBlocks.ButtonBlockAppender />\n ) }\n />\n </div>\n </div>\n <style>\n {`#block-${clientId} .advgb-column > .advgb-column-inner {\n text-align: ${textAlign};\n margin-top: ${marginTop}px;\n margin-right: ${marginRight}px;\n margin-bottom: ${marginBottom}px;\n margin-left: ${marginLeft}px;\n padding-top: ${paddingTop}px;\n padding-right: ${paddingRight}px;\n padding-bottom: ${paddingBottom}px;\n padding-left: ${paddingLeft}px;\n }\n @media screen and (max-width: 767px) {\n #block-${clientId} .advgb-column > .advgb-column-inner {\n text-align: ${textAlignM};\n margin-top: ${marginTopM}px;\n margin-right: ${marginRightM}px;\n margin-bottom: ${marginBottomM}px;\n margin-left: ${marginLeftM}px;\n padding-top: ${paddingTopM}px;\n padding-right: ${paddingRightM}px;\n padding-bottom: ${paddingBottomM}px;\n padding-left: ${paddingLeftM}px;\n }\n }\n ${width ?\n `#block-${clientId} {flex-basis: ${width}%;}` : ''}`\n }\n </style>\n </Fragment>\n )\n }\n }\n\n const blockAttrs = {\n width: {\n type: 'number',\n },\n columnClasses: {\n type: 'string',\n },\n colId: {\n type: 'string',\n },\n borderStyle: {\n type: 'string',\n default: 'none',\n },\n borderColor: {\n type: 'string',\n },\n borderWidth: {\n type: 'number',\n default: 1,\n },\n borderRadius: {\n type: 'number',\n },\n textAlign: {\n type: 'string',\n },\n textAlignM: {\n type: 'string',\n },\n marginTop: {\n type: 'number',\n },\n marginTopM: {\n type: 'number',\n },\n marginRight: {\n type: 'number',\n },\n marginRightM: {\n type: 'number',\n },\n marginBottom: {\n type: 'number',\n },\n marginBottomM: {\n type: 'number',\n },\n marginLeft: {\n type: 'number',\n },\n marginLeftM: {\n type: 'number',\n },\n paddingTop: {\n type: 'number',\n },\n paddingTopM: {\n type: 'number',\n },\n paddingRight: {\n type: 'number',\n },\n paddingRightM: {\n type: 'number',\n },\n paddingBottom: {\n type: 'number',\n },\n paddingBottomM: {\n type: 'number',\n },\n paddingLeft: {\n type: 'number',\n },\n paddingLeftM: {\n type: 'number',\n },\n changed: {\n type: 'boolean',\n default: false,\n }\n };\n\n registerBlockType( 'advgb/column', {\n title: __( 'Column - PublishPress', 'advanced-gutenberg' ),\n parent: [ 'advgb/columns' ],\n description: __( 'Column in row.', 'advanced-gutenberg' ),\n icon: {\n src: columnsBlockIcon,\n foreground: typeof advgbBlocks !== 'undefined' ? advgbBlocks.color : undefined,\n },\n category: 'advgb-category',\n keywords: [ __( 'columns', 'advanced-gutenberg' ), __( 'row', 'advanced-gutenberg' ), __( 'layout', 'advanced-gutenberg' ) ],\n supports: {\n inserter: false,\n reusable: false,\n html: false,\n },\n attributes: blockAttrs,\n edit: AdvColumnEdit,\n save: function ( { attributes } ) {\n const {\n width,\n columnClasses, colId,\n borderColor, borderStyle, borderWidth, borderRadius,\n } = attributes;\n\n const blockClasses = [\n 'advgb-column',\n columnClasses,\n ].filter( Boolean ).join( ' ' );\n\n return (\n <div className={ blockClasses }\n id={ colId }\n style={ {\n flex: width ? 'none' : undefined,\n } }\n >\n <div className=\"advgb-column-inner\"\n style={ { borderStyle, borderColor, borderWidth, borderRadius, } }\n >\n <InnerBlocks.Content />\n </div>\n </div>\n );\n },\n deprecated: [\n {\n attributes: blockAttrs,\n save: function ( { attributes } ) {\n const {\n width,\n columnClasses, colId,\n borderColor, borderStyle, borderWidth, borderRadius,\n } = attributes;\n\n const blockClasses = [\n 'advgb-column',\n columnClasses,\n ].filter( Boolean ).join( ' ' );\n\n return (\n <div className={ blockClasses }\n id={ colId }\n style={ {\n width: width ? width + '%' : undefined,\n flex: width ? 'none' : undefined,\n } }\n >\n <div className=\"advgb-column-inner\"\n style={ { borderStyle, borderColor, borderWidth, borderRadius, } }\n >\n <InnerBlocks.Content />\n </div>\n </div>\n );\n },\n },\n {\n attributes: blockAttrs,\n save: function ( { attributes } ) {\n const {\n width,\n columnClasses, colId,\n borderColor, borderStyle, borderWidth, borderRadius,\n } = attributes;\n\n const blockClasses = [\n 'advgb-column',\n 'column',\n columnClasses,\n ].filter( Boolean ).join( ' ' );\n\n return (\n <div className={ blockClasses }\n id={ colId }\n style={ {\n width: width ? width + '%' : undefined,\n flex: width ? 'none' : undefined,\n } }\n >\n <div className=\"advgb-column-inner\"\n style={ { borderStyle, borderColor, borderWidth, borderRadius, } }\n >\n <InnerBlocks.Content />\n </div>\n </div>\n );\n },\n }\n ]\n } );\n})( wp.i18n, wp.blocks, wp.element, wp.blockEditor, wp.components );\n","(function ( wpI18n, wpBlocks, wpElement, wpBlockEditor, wpComponents ) {\n wpBlockEditor = wp.blockEditor || wp.editor;\n const { __ } = wpI18n;\n const { Component, Fragment } = wpElement;\n const { registerBlockType } = wpBlocks;\n const { InspectorControls, PanelColorSettings } = wpBlockEditor;\n const { PanelBody, RangeControl, SelectControl, TextControl } = wpComponents;\n\n const contactBlockIcon = (\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"20\" height=\"20\" viewBox=\"0 0 24 24\">\n <path fill=\"none\" d=\"M0 0h24v24H0V0z\"/>\n <path d=\"M22 6c0-1.1-.9-2-2-2H4c-1.1 0-2 .9-2 2v12c0 1.1.9 2 2 2h16c1.1 0 2-.9 2-2V6zm-2 0l-8 4.99L4 6h16zm0 12H4V8l8 5 8-5v10z\"/>\n </svg>\n );\n\n const previewImageData = 'data:image/png;base64,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';\n\n class AdvContactForm extends Component {\n constructor() {\n super( ...arguments );\n }\n\n componentWillMount() {\n const { attributes, setAttributes } = this.props;\n const currentBlockConfig = advgbDefaultConfig['advgb-contact-form'];\n\n // No override attributes of blocks inserted before\n if (attributes.changed !== true) {\n if (typeof currentBlockConfig === 'object' && currentBlockConfig !== null) {\n Object.keys(currentBlockConfig).map((attribute) => {\n if (typeof attributes[attribute] === 'boolean') {\n attributes[attribute] = !!currentBlockConfig[attribute];\n } else {\n attributes[attribute] = currentBlockConfig[attribute];\n }\n });\n }\n\n // Finally set changed attribute to true, so we don't modify anything again\n setAttributes( { changed: true } );\n }\n }\n\n render() {\n const { attributes, setAttributes } = this.props;\n const {\n nameLabel,\n emailLabel,\n msgLabel,\n submitLabel,\n successLabel,\n alertLabel,\n bgColor,\n textColor,\n borderColor,\n borderStyle,\n borderRadius,\n submitColor,\n submitBgColor,\n submitRadius,\n submitPosition,\n isPreview\n } = attributes;\n\n return (\n isPreview ?\n <img alt={__('Contact Form', 'advanced-gutenberg')} width='100%' src={previewImageData}/>\n :\n <Fragment>\n <InspectorControls>\n <PanelBody title={ __( 'Form Settings', 'advanced-gutenberg' ) }>\n {(typeof advgbBlocks !== 'undefined' && !parseInt(advgbBlocks.captchaEnabled)) && (\n <PanelBody title={ __( 'Notice', 'advanced-gutenberg' ) }>\n <p style={ { fontStyle: 'italic' } }>\n { __( 'We strongly recommend to enable Google reCAPTCHA to avoid spam.', 'advanced-gutenberg' ) }\n <br/><a href={advgbBlocks.config_url + '&tab=recaptcha'} target=\"_blank\">{ __( 'You can enable it in Settings', 'advanced-gutenberg' ) }</a>\n </p>\n </PanelBody>\n ) }\n <PanelBody title={ __( 'Email sender', 'advanced-gutenberg' ) } initialOpen={ false }>\n <p style={ { fontStyle: 'italic' } }>\n { __('An email will be sent to the admin email (by default) whenever a contact form is submitted. You can change it in ', 'advanced-gutenberg') }\n <a href={advgbBlocks.config_url + '&tab=forms'} target=\"_blank\"> { __( 'settings', 'advanced-gutenberg' ) }.</a>\n </p>\n </PanelBody>\n <PanelBody title={ __( 'Text Label', 'advanced-gutenberg' ) }>\n <TextControl\n label={ __( 'Name input placeholder', 'advanced-gutenberg' ) }\n value={ nameLabel }\n onChange={ (value) => setAttributes( { nameLabel: value } ) }\n />\n <TextControl\n label={ __( 'Email input placeholder', 'advanced-gutenberg' ) }\n value={ emailLabel }\n onChange={ (value) => setAttributes( { emailLabel: value } ) }\n />\n <TextControl\n label={ __( 'Message input placeholder', 'advanced-gutenberg' ) }\n value={ msgLabel }\n onChange={ (value) => setAttributes( { msgLabel: value } ) }\n />\n <TextControl\n label={ __( 'Submit text', 'advanced-gutenberg' ) }\n value={ submitLabel }\n onChange={ (value) => setAttributes( { submitLabel: value } ) }\n />\n <TextControl\n label={ __( 'Empty field warning text', 'advanced-gutenberg' ) }\n value={ alertLabel }\n onChange={ (value) => setAttributes( { alertLabel: value } ) }\n />\n <TextControl\n label={ __( 'Submit success text', 'advanced-gutenberg' ) }\n value={ successLabel }\n onChange={ (value) => setAttributes( { successLabel: value } ) }\n />\n </PanelBody>\n <PanelColorSettings\n title={ __( 'Input Color', 'advanced-gutenberg' ) }\n colorSettings={ [\n {\n label: __( 'Background color', 'advanced-gutenberg' ),\n value: bgColor,\n onChange: (value) => setAttributes( { bgColor: value } ),\n },\n {\n label: __( 'Text color', 'advanced-gutenberg' ),\n value: textColor,\n onChange: (value) => setAttributes( { textColor: value } ),\n },\n ] }\n />\n <PanelBody title={ __( 'Border Settings', 'advanced-gutenberg' ) } initialOpen={ false }>\n <PanelColorSettings\n title={ __( 'Border Color', 'advanced-gutenberg' ) }\n initialOpen={ false }\n colorSettings={ [\n {\n label: __( 'Border color', 'advanced-gutenberg' ),\n value: borderColor,\n onChange: (value) => setAttributes( { borderColor: value } ),\n },\n ] }\n />\n <SelectControl\n label={ __( 'Border Style', 'advanced-gutenberg' ) }\n value={ borderStyle }\n options={ [\n { label: __( 'Solid', 'advanced-gutenberg' ), value: 'solid' },\n { label: __( 'Dashed', 'advanced-gutenberg' ), value: 'dashed' },\n { label: __( 'Dotted', 'advanced-gutenberg' ), value: 'dotted' },\n ] }\n onChange={ (value) => setAttributes( { borderStyle: value } ) }\n />\n <RangeControl\n label={ __( 'Border radius (px)', 'advanced-gutenberg' ) }\n value={ borderRadius }\n onChange={ (value) => setAttributes( { borderRadius: value } ) }\n min={ 0 }\n max={ 50 }\n />\n </PanelBody>\n <PanelBody title={ __( 'Submit Button Settings', 'advanced-gutenberg' ) }>\n <PanelColorSettings\n title={ __( 'Color Settings', 'advanced-gutenberg' ) }\n initialOpen={ false }\n colorSettings={ [\n {\n label: __( 'Border and Text', 'advanced-gutenberg' ),\n value: submitColor,\n onChange: (value) => setAttributes( { submitColor: value } ),\n },\n {\n label: __( 'Background', 'advanced-gutenberg' ),\n value: submitBgColor,\n onChange: (value) => setAttributes( { submitBgColor: value } ),\n },\n ] }\n />\n <RangeControl\n label={ __( 'Button border radius', 'advanced-gutenberg' ) }\n value={ submitRadius }\n onChange={ (value) => setAttributes( { submitRadius: value } ) }\n min={ 0 }\n max={ 50 }\n />\n <SelectControl\n label={ __( 'Button position', 'advanced-gutenberg' ) }\n value={ submitPosition }\n options={ [\n { label: __( 'Center', 'advanced-gutenberg' ), value: 'center' },\n { label: __( 'Left', 'advanced-gutenberg' ), value: 'left' },\n { label: __( 'Right', 'advanced-gutenberg' ), value: 'right' },\n ] }\n onChange={ (value) => setAttributes( { submitPosition: value } ) }\n />\n </PanelBody>\n </PanelBody>\n </InspectorControls>\n <div className=\"advgb-contact-form\">\n <div className=\"advgb-form-field advgb-form-field-half\">\n <input type=\"text\" disabled={ true }\n className=\"advgb-form-input\"\n value={ nameLabel ? nameLabel : 'Name' }\n style={ {\n backgroundColor: bgColor,\n color: textColor,\n borderColor: borderColor,\n borderStyle: borderStyle,\n borderRadius: borderRadius,\n } }\n />\n </div>\n <div className=\"advgb-form-field advgb-form-field-half\">\n <input type=\"text\" disabled={ true }\n className=\"advgb-form-input\"\n value={ emailLabel ? emailLabel : 'Email address' }\n style={ {\n backgroundColor: bgColor,\n color: textColor,\n borderColor: borderColor,\n borderStyle: borderStyle,\n borderRadius: borderRadius,\n } }\n />\n </div>\n <div className=\"advgb-form-field advgb-form-field-full\">\n <textarea className=\"advgb-form-input\"\n disabled={ true }\n value={ msgLabel ? msgLabel : 'Message' }\n style={ {\n backgroundColor: bgColor,\n color: textColor,\n borderColor: borderColor,\n borderStyle: borderStyle,\n borderRadius: borderRadius,\n } }\n />\n </div>\n <div className=\"advgb-form-submit-wrapper\"\n style={ { textAlign: submitPosition } }\n >\n <button className=\"advgb-form-submit\"\n style={ {\n borderColor: submitColor,\n color: submitColor,\n backgroundColor: submitBgColor,\n borderRadius: submitRadius,\n } }\n >\n { submitLabel ? submitLabel : 'Submit' }\n </button>\n </div>\n </div>\n </Fragment>\n )\n }\n }\n\n const contactBlockAttrs = {\n nameLabel: {\n type: 'string',\n },\n emailLabel: {\n type: 'string',\n },\n msgLabel: {\n type: 'string',\n },\n submitLabel: {\n type: 'string',\n },\n successLabel: {\n type: 'string',\n },\n alertLabel: {\n type: 'string',\n },\n bgColor: {\n type: 'string',\n },\n textColor: {\n type: 'string',\n },\n borderStyle: {\n type: 'string',\n },\n borderColor: {\n type: 'string',\n },\n borderRadius: {\n type: 'number',\n },\n submitColor: {\n type: 'string',\n },\n submitBgColor: {\n type: 'string',\n },\n submitRadius: {\n type: 'number',\n },\n submitPosition: {\n type: 'string',\n default: 'right',\n },\n changed: {\n type: 'boolean',\n default: false,\n },\n isPreview: {\n type: 'boolean',\n default: false,\n },\n };\n\n registerBlockType( 'advgb/contact-form', {\n title: __( 'Contact Form - PublishPress', 'advanced-gutenberg' ),\n description: __( 'Fastest way to create a contact form for your page.', 'advanced-gutenberg' ),\n icon: {\n src: contactBlockIcon,\n foreground: typeof advgbBlocks !== 'undefined' ? advgbBlocks.color : undefined,\n },\n category: 'advgb-category',\n keywords: [ __( 'contact', 'advanced-gutenberg' ), __( 'form', 'advanced-gutenberg' ) ],\n attributes: contactBlockAttrs,\n example: {\n attributes: {\n isPreview: true\n },\n },\n supports: {\n anchor: true\n },\n edit: AdvContactForm,\n save: function ( { attributes } ) {\n const {\n nameLabel,\n emailLabel,\n msgLabel,\n submitLabel,\n successLabel,\n alertLabel,\n bgColor,\n textColor,\n borderColor,\n borderStyle,\n borderRadius,\n submitColor,\n submitBgColor,\n submitRadius,\n submitPosition,\n } = attributes;\n\n return (\n <div className=\"advgb-contact-form\">\n <form method=\"POST\">\n <div className=\"advgb-form-field advgb-form-field-half\">\n <input type=\"text\"\n className=\"advgb-form-input advgb-form-input-name\"\n placeholder={ nameLabel ? nameLabel : 'Name' }\n name=\"contact_name\"\n style={ {\n backgroundColor: bgColor,\n color: textColor,\n borderColor: borderColor,\n borderStyle: borderStyle,\n borderRadius: borderRadius,\n } }\n />\n </div>\n <div className=\"advgb-form-field advgb-form-field-half\">\n <input type=\"email\"\n className=\"advgb-form-input advgb-form-input-email\"\n placeholder={ emailLabel ? emailLabel : 'Email address' }\n name=\"contact_email\"\n style={ {\n backgroundColor: bgColor,\n color: textColor,\n borderColor: borderColor,\n borderStyle: borderStyle,\n borderRadius: borderRadius,\n } }\n />\n </div>\n <div className=\"advgb-form-field advgb-form-field-full\">\n <textarea className=\"advgb-form-input advgb-form-input-msg\"\n placeholder={ msgLabel ? msgLabel : 'Message' }\n name=\"contact_message\"\n style={ {\n backgroundColor: bgColor,\n color: textColor,\n borderColor: borderColor,\n borderStyle: borderStyle,\n borderRadius: borderRadius,\n } }\n />\n </div>\n <div className={`advgb-grecaptcha clearfix position-${submitPosition}`}/>\n <div className=\"advgb-form-submit-wrapper\"\n style={ { textAlign: submitPosition } }\n >\n <button className=\"advgb-form-submit\"\n type=\"submit\"\n data-success={ successLabel ? successLabel : undefined }\n data-alert={ alertLabel ? alertLabel : undefined }\n style={ {\n borderColor: submitColor,\n color: submitColor,\n backgroundColor: submitBgColor,\n borderRadius: submitRadius,\n } }\n >\n { submitLabel ? submitLabel : 'Submit' }\n </button>\n </div>\n </form>\n </div>\n );\n },\n } );\n})( wp.i18n, wp.blocks, wp.element, wp.blockEditor, wp.components );\n","(function ( wpI18n, wpBlocks, wpBlockEditor ) {\n wpBlockEditor = wp.blockEditor || wp.editor;\n const { __ } = wpI18n;\n const { Fragment } = wp.element;\n const { registerBlockType, createBlock } = wpBlocks;\n const { InnerBlocks, InspectorControls } = wpBlockEditor;\n const { PanelBody, SelectControl } = wp.components;\n\n const containerBlockIcon = (\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"20\" height=\"20\" viewBox=\"2 2 22 22\">\n <path fill=\"none\" d=\"M0 0h24v24H0V0z\"/>\n <path d=\"M3 5v14h19V5H3zm2 2h15v4H5V7zm0 10v-4h4v4H5zm6 0v-4h9v4h-9z\"/>\n </svg>\n );\n\n registerBlockType( 'advgb/container', {\n title: __( 'Container - PublishPress', 'advanced-gutenberg' ),\n description: __( 'Block for containing other blocks.', 'advanced-gutenberg' ),\n icon: {\n src: containerBlockIcon,\n foreground: typeof advgbBlocks !== 'undefined' ? advgbBlocks.color : undefined,\n },\n category: 'advgb-category',\n keywords: [ __( 'container', 'advanced-gutenberg' ), __( 'row', 'advanced-gutenberg' ), __( 'box', 'advanced-gutenberg' ) ],\n attributes: {\n wrapperTag: {\n type: 'string',\n default: 'div',\n }\n },\n supports: {\n align: true,\n className: true,\n },\n transforms: {\n to: [\n {\n type: 'block',\n blocks: [ 'advgb/columns' ],\n transform: ( attributes, innerBlocks ) => {\n const { className, wrapperTag } = attributes;\n const columnBlock = createBlock(\n 'advgb/column',\n {},\n innerBlocks,\n );\n\n return createBlock(\n 'advgb/columns',\n { columns: 1, className, wrapperTag },\n [ columnBlock ],\n )\n }\n }\n ]\n },\n edit: function ( props ) {\n const { attributes, setAttributes, className } = props;\n const { wrapperTag } = attributes;\n\n return (\n <Fragment>\n <InspectorControls>\n <PanelBody title={ __( 'Container Settings', 'advanced-gutenberg' ) }>\n <SelectControl\n label={ __( 'Wrapper Tag', 'advanced-gutenberg' ) }\n value={ wrapperTag }\n options={ [\n { label: 'Div', value: 'div' },\n { label: 'Header', value: 'header' },\n { label: 'Section', value: 'section' },\n { label: 'Main', value: 'main' },\n { label: 'Article', value: 'article' },\n { label: 'Aside', value: 'aside' },\n { label: 'Footer', value: 'footer' },\n ] }\n onChange={ (value) => setAttributes( { wrapperTag: value } ) }\n />\n </PanelBody>\n </InspectorControls>\n <div className={`advgb-blocks-container ${className}`}>\n <InnerBlocks />\n </div>\n </Fragment>\n )\n },\n save: function ( { attributes } ) {\n const { wrapperTag : Tag } = attributes;\n\n return (\n <Tag className=\"advgb-blocks-container\">\n <InnerBlocks.Content />\n </Tag>\n );\n },\n } );\n})( wp.i18n, wp.blocks, wp.blockEditor );\n","(function ( wpI18n, wpBlocks, wpElement, wpBlockEditor, wpComponents ) {\n wpBlockEditor = wp.blockEditor || wp.editor;\n const { __ } = wpI18n;\n const { Component, Fragment } = wpElement;\n const { registerBlockType } = wpBlocks;\n const { InspectorControls, RichText, PanelColorSettings } = wpBlockEditor;\n const { RangeControl, PanelBody, TextControl, FormToggle } = wpComponents;\n\n const previewImageData = 'data:image/png;base64,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';\n\n class AdvCountUp extends Component {\n constructor() {\n super(...arguments);\n this.state = {\n currentEdit: '',\n };\n }\n\n componentWillMount() {\n const { attributes, setAttributes } = this.props;\n const currentBlockConfig = advgbDefaultConfig['advgb-count-up'];\n\n // No override attributes of blocks inserted before\n if (attributes.changed !== true) {\n if (typeof currentBlockConfig === 'object' && currentBlockConfig !== null) {\n Object.keys(currentBlockConfig).map((attribute) => {\n if (typeof attributes[attribute] === 'boolean') {\n attributes[attribute] = !!currentBlockConfig[attribute];\n } else {\n attributes[attribute] = currentBlockConfig[attribute];\n }\n });\n }\n\n // Finally set changed attribute to true, so we don't modify anything again\n setAttributes( { changed: true } );\n }\n }\n\n componentDidMount() {\n const { attributes, setAttributes, clientId } = this.props;\n setAttributes( { id: 'count-up-' + clientId } );\n }\n\n render() {\n const { currentEdit } = this.state;\n const { attributes, setAttributes, isSelected } = this.props;\n const {\n id,\n headerText,\n headerText2,\n headerText3,\n headerTextColor,\n countUpNumber,\n countUpNumber2,\n countUpNumber3,\n countUpNumberColor,\n countUpNumberSize,\n countUpSymbol,\n countUpSymbol2,\n countUpSymbol3,\n countUpSymbolAfter,\n countUpSymbolAfter2,\n countUpSymbolAfter3,\n descText,\n descText2,\n descText3,\n descTextColor,\n columns,\n isPreview,\n } = attributes;\n\n const countUpNameClass = [\n `advgb-count-up advgb-column-${columns}`,\n id\n ].filter( Boolean ).join(' ');\n\n return (\n isPreview ?\n <img alt={__('Count Up', 'advanced-gutenberg')} width='100%' src={previewImageData}/>\n :\n <Fragment>\n <InspectorControls>\n <PanelBody title={ __( 'Count Up Settings', 'advanced-gutenberg' ) }>\n <PanelColorSettings\n title={ __( 'Color Settings', 'advanced-gutenberg' ) }\n initialOpen={ false }\n colorSettings={ [\n {\n label: __( 'Header Color', 'advanced-gutenberg' ),\n value: headerTextColor,\n onChange: ( value ) => setAttributes( { headerTextColor: value } ),\n },\n {\n label: __( 'Count Up Color', 'advanced-gutenberg' ),\n value: countUpNumberColor,\n onChange: ( value ) => setAttributes( { countUpNumberColor: value } ),\n },\n {\n label: __( 'Description Color', 'advanced-gutenberg' ),\n value: descTextColor,\n onChange: ( value ) => setAttributes( { descTextColor: value } ),\n },\n ] }\n />\n <RangeControl\n label={ __( 'Columns', 'advanced-gutenberg' ) }\n min={ 1 }\n max={ 3 }\n value={ columns }\n onChange={ (value) => setAttributes( { columns: value } ) }\n />\n <RangeControl\n label={ __( 'Counter Number Size', 'advanced-gutenberg' ) }\n min={ 10 }\n max={ 100 }\n value={ countUpNumberSize }\n onChange={ (value) => setAttributes( { countUpNumberSize: value } ) }\n />\n <div>{ __( 'Counter Up Symbol', 'advanced-gutenberg' ) }</div>\n {\n <div className=\"advgb-col-3\">\n <TextControl\n value={ countUpSymbol }\n onChange={ (value) => setAttributes( { countUpSymbol: value } ) }\n />\n <FormToggle\n checked={ countUpSymbolAfter }\n onChange={ () => setAttributes( { countUpSymbolAfter: !countUpSymbolAfter } ) }\n title={ !!countUpSymbolAfter ? __( 'After', 'advanced-gutenberg' ) : __( 'Before', 'advanced-gutenberg' ) }\n />\n </div>\n }\n {parseInt(columns) > 1 &&\n <div className=\"advgb-col-3\">\n <TextControl\n value={ countUpSymbol2 }\n onChange={ (value) => setAttributes( { countUpSymbol2: value } ) }\n />\n <FormToggle\n checked={ countUpSymbolAfter2 }\n onChange={ () => setAttributes( { countUpSymbolAfter2: !countUpSymbolAfter2 } ) }\n title={ !!countUpSymbolAfter2 ? __( 'After', 'advanced-gutenberg' ) : __( 'Before', 'advanced-gutenberg' ) }\n />\n </div>\n }\n {parseInt(columns) > 2 &&\n <div className=\"advgb-col-3\">\n <TextControl\n value={ countUpSymbol3 }\n onChange={ (value) => setAttributes( { countUpSymbol3: value } ) }\n />\n <FormToggle\n checked={ countUpSymbolAfter3 }\n onChange={ () => setAttributes( { countUpSymbolAfter3: !countUpSymbolAfter3 } ) }\n title={ !!countUpSymbolAfter3 ? __( 'After', 'advanced-gutenberg' ) : __( 'Before', 'advanced-gutenberg' ) }\n />\n </div>\n }\n <p className={'components-base-control__help'} style={ { clear: 'both' } }>\n { __( 'Use toggle buttons above to define symbol placement before/after the number (toggle on is after).', 'advanced-gutenberg' ) }\n </p>\n </PanelBody>\n </InspectorControls>\n <div className={countUpNameClass} style={ { display: 'flex' } }>\n <div className=\"advgb-count-up-columns-one\">\n <RichText\n tagName=\"h4\"\n value={ headerText }\n onChange={ (value) => setAttributes( { headerText: value } ) }\n isSelected={ isSelected && currentEdit === 'header' }\n unstableOnFocus={ () => this.setState( { currentEdit: 'header' } ) }\n style={ { color: headerTextColor } }\n placeholder={ __( 'Enter text…', 'advanced-gutenberg' ) }\n className=\"advgb-count-up-header\"\n />\n <div className=\"advgb-counter\">\n {countUpSymbol && !countUpSymbolAfter && (\n <span className=\"advgb-counter-symbol\"\n style={ {\n fontSize: countUpNumberSize,\n color: countUpNumberColor,\n } }\n >\n { countUpSymbol }\n </span>\n ) }\n <RichText\n tagName=\"div\"\n value={ countUpNumber }\n onChange={ (value) => setAttributes( { countUpNumber: value } ) }\n isSelected={ isSelected && currentEdit === 'countUp' }\n unstableOnFocus={ () => this.setState( { currentEdit: 'countUp' } ) }\n style={ { fontSize: countUpNumberSize + 'px', color: countUpNumberColor } }\n className=\"advgb-counter-number\"\n />\n {countUpSymbol && countUpSymbolAfter && (\n <span className=\"advgb-counter-symbol\"\n style={ {\n fontSize: countUpNumberSize,\n color: countUpNumberColor,\n } }\n >\n { countUpSymbol }\n </span>\n ) }\n </div>\n <RichText\n tagName=\"p\"\n value={ descText }\n onChange={ (value) => setAttributes( { descText: value } ) }\n isSelected={ isSelected && currentEdit === 'desc' }\n unstableOnFocus={ () => this.setState( { currentEdit: 'desc' } ) }\n style={ { color: descTextColor } }\n placeholder={ __( 'Enter text…', 'advanced-gutenberg' ) }\n className=\"advgb-count-up-desc\"\n />\n </div>\n <div className=\"advgb-count-up-columns-two\">\n <RichText\n tagName=\"h4\"\n value={ headerText2 }\n onChange={ (value) => setAttributes( { headerText2: value } ) }\n isSelected={ isSelected && currentEdit === 'header2' }\n unstableOnFocus={ () => this.setState( { currentEdit: 'header2' } ) }\n style={ { color: headerTextColor } }\n placeholder={ __( 'Enter text…', 'advanced-gutenberg' ) }\n className=\"advgb-count-up-header\"\n />\n <div className=\"advgb-counter\">\n {countUpSymbol2 && !countUpSymbolAfter2 && (\n <span className=\"advgb-counter-symbol\"\n style={ {\n fontSize: countUpNumberSize,\n color: countUpNumberColor,\n } }\n >\n { countUpSymbol2 }\n </span>\n ) }\n <RichText\n tagName=\"div\"\n value={ countUpNumber2 }\n onChange={ (value) => setAttributes( { countUpNumber2: value } ) }\n isSelected={ isSelected && currentEdit === 'countUp2' }\n unstableOnFocus={ () => this.setState( { currentEdit: 'countUp2' } ) }\n style={ { fontSize: countUpNumberSize + 'px', color: countUpNumberColor } }\n className=\"advgb-counter-number\"\n />\n {countUpSymbol2 && countUpSymbolAfter2 && (\n <span className=\"advgb-counter-symbol\"\n style={ {\n fontSize: countUpNumberSize,\n color: countUpNumberColor,\n } }\n >\n { countUpSymbol2 }\n </span>\n ) }\n </div>\n <RichText\n tagName=\"p\"\n value={ descText2 }\n onChange={ (value) => setAttributes( { descText2: value } ) }\n isSelected={ isSelected && currentEdit === 'desc2' }\n unstableOnFocus={ () => this.setState( { currentEdit: 'desc2' } ) }\n style={ { color: descTextColor } }\n placeholder={ __( 'Enter text…', 'advanced-gutenberg' ) }\n className=\"advgb-count-up-desc\"\n />\n </div>\n <div className=\"advgb-count-up-columns-three\">\n <RichText\n tagName=\"h4\"\n value={ headerText3 }\n onChange={ (value) => setAttributes( { headerText3: value } ) }\n isSelected={ isSelected && currentEdit === 'header3' }\n unstableOnFocus={ () => this.setState( { currentEdit: 'header3' } ) }\n style={ { color: headerTextColor } }\n placeholder={ __( 'Enter text…', 'advanced-gutenberg' ) }\n className=\"advgb-count-up-header\"\n />\n <div className=\"advgb-counter\">\n {countUpSymbol3 && !countUpSymbolAfter3 && (\n <span className=\"advgb-counter-symbol\"\n style={ {\n fontSize: countUpNumberSize,\n color: countUpNumberColor,\n } }\n >\n { countUpSymbol3 }\n </span>\n ) }\n <RichText\n tagName=\"div\"\n value={ countUpNumber3 }\n onChange={ (value) => setAttributes( { countUpNumber3: value } ) }\n isSelected={ isSelected && currentEdit === 'countUp3' }\n unstableOnFocus={ () => this.setState( { currentEdit: 'countUp3' } ) }\n style={ { fontSize: countUpNumberSize + 'px', color: countUpNumberColor } }\n className=\"advgb-counter-number\"\n />\n {countUpSymbol3 && countUpSymbolAfter3 && (\n <span className=\"advgb-counter-symbol\"\n style={ {\n fontSize: countUpNumberSize,\n color: countUpNumberColor,\n } }\n >\n { countUpSymbol3 }\n </span>\n ) }\n </div>\n <RichText\n tagName=\"p\"\n value={ descText3 }\n onChange={ (value) => setAttributes( { descText3: value } ) }\n isSelected={ isSelected && currentEdit === 'desc3' }\n unstableOnFocus={ () => this.setState( { currentEdit: 'desc3' } ) }\n style={ { color: descTextColor } }\n placeholder={ __( 'Enter text…', 'advanced-gutenberg' ) }\n className=\"advgb-count-up-desc\"\n />\n </div>\n </div>\n </Fragment>\n )\n }\n }\n\n const countUpBlockIcon = (\n <svg height=\"20\" viewBox=\"2 2 22 22\" width=\"20\" xmlns=\"http://www.w3.org/2000/svg\">\n <path d=\"M0 0h24v24H0zm0 0h24v24H0z\" fill=\"none\"/>\n <path d=\"M16.05 16.29l2.86-3.07c.38-.39.72-.79 1.04-1.18.32-.39.59-.78.82-1.17.23-.39.41-.78.54-1.17.13-.39.19-.79.19-1.18 0-.53-.09-1.02-.27-1.46-.18-.44-.44-.81-.78-1.11-.34-.31-.77-.54-1.26-.71-.51-.16-1.08-.24-1.72-.24-.69 0-1.31.11-1.85.32-.54.21-1 .51-1.36.88-.37.37-.65.8-.84 1.3-.18.47-.27.97-.28 1.5h2.14c.01-.31.05-.6.13-.87.09-.29.23-.54.4-.75.18-.21.41-.37.68-.49.27-.12.6-.18.96-.18.31 0 .58.05.81.15.23.1.43.25.59.43.16.18.28.4.37.65.08.25.13.52.13.81 0 .22-.03.43-.08.65-.06.22-.15.45-.29.7-.14.25-.32.53-.56.83-.23.3-.52.65-.88 1.03l-4.17 4.55V18H22v-1.71h-5.95zM8 7H6v4H2v2h4v4h2v-4h4v-2H8V7z\"/>\n </svg>\n );\n\n const blockAttrs = {\n id: {\n type: 'string',\n },\n headerText: {\n type: 'string',\n default: 'Header text',\n },\n headerText2: {\n type: 'string',\n default: 'Header text',\n },\n headerText3: {\n type: 'string',\n default: 'Header text',\n },\n headerTextColor: {\n type: 'string',\n },\n countUpNumber: {\n type: 'string',\n default: '56789'\n },\n countUpNumber2: {\n type: 'string',\n default: '56789'\n },\n countUpNumber3: {\n type: 'string',\n default: '56789'\n },\n countUpNumberColor: {\n type: 'string',\n },\n countUpNumberSize: {\n type: 'number',\n default: 55,\n },\n countUpSymbol: {\n type: 'string',\n },\n countUpSymbol2: {\n type: 'string',\n },\n countUpSymbol3: {\n type: 'string',\n },\n countUpSymbolAfter: {\n type: 'boolean',\n default: false,\n },\n countUpSymbolAfter2: {\n type: 'boolean',\n default: false,\n },\n countUpSymbolAfter3: {\n type: 'boolean',\n default: false,\n },\n descText: {\n type: 'string',\n default: 'and description',\n },\n descText2: {\n type: 'string',\n default: 'and description',\n },\n descText3: {\n type: 'string',\n default: 'and description',\n },\n descTextColor: {\n type: 'string',\n },\n columns: {\n type: 'number',\n default: 1,\n },\n changed: {\n type: 'boolean',\n default: false,\n },\n isPreview: {\n type: 'boolean',\n default: false,\n },\n };\n\n registerBlockType( 'advgb/count-up', {\n title: __( 'Count Up - PublishPress', 'advanced-gutenberg' ),\n description: __( 'Create an animated display for important numbers.', 'advanced-gutenberg' ),\n icon: {\n src: countUpBlockIcon,\n foreground: typeof advgbBlocks !== 'undefined' ? advgbBlocks.color : undefined,\n },\n category: 'advgb-category',\n keywords: [ __( 'numbers', 'advanced-gutenberg' ), __( 'count', 'advanced-gutenberg' ), __( 'increase', 'advanced-gutenberg' ) ],\n attributes: blockAttrs,\n example: {\n attributes: {\n isPreview: true\n },\n },\n supports: {\n anchor: true\n },\n edit: AdvCountUp,\n save: function ({attributes}) {\n const {\n id,\n headerText,\n headerText2,\n headerText3,\n headerTextColor,\n countUpNumber,\n countUpNumber2,\n countUpNumber3,\n countUpNumberColor,\n countUpNumberSize,\n countUpSymbol,\n countUpSymbol2,\n countUpSymbol3,\n countUpSymbolAfter,\n countUpSymbolAfter2,\n countUpSymbolAfter3,\n descText,\n descText2,\n descText3,\n descTextColor,\n columns,\n } = attributes;\n\n const countSymbolElm = countUpSymbol ? <span className=\"advgb-counter-symbol\">{ countUpSymbol }</span> : '';\n const countSymbolElm2 = countUpSymbol2 ? <span className=\"advgb-counter-symbol\">{ countUpSymbol2 }</span> : '';\n const countSymbolElm3 = countUpSymbol3 ? <span className=\"advgb-counter-symbol\">{ countUpSymbol3 }</span> : '';\n\n const countUpNameClass = [\n 'advgb-count-up',\n id\n ].filter( Boolean ).join(' ');\n\n return (\n <div className={countUpNameClass} style={ { display: 'flex' } }>\n <div className=\"advgb-count-up-columns-one\">\n <RichText.Content\n tagName=\"h4\"\n value={ headerText }\n style={ { color: headerTextColor } }\n className=\"advgb-count-up-header\"\n />\n <div className=\"advgb-counter\"\n style={ { color: countUpNumberColor, fontSize: countUpNumberSize + 'px' } }\n >\n {!countUpSymbolAfter && countSymbolElm}\n <RichText.Content\n tagName=\"span\"\n value={ countUpNumber }\n className=\"advgb-counter-number\"\n />\n {!!countUpSymbolAfter && countSymbolElm}\n </div>\n <RichText.Content\n tagName=\"p\"\n value={ descText }\n style={ { color: descTextColor } }\n className=\"advgb-count-up-desc\"\n />\n </div>\n {parseInt(columns) > 1 && (\n <div className=\"advgb-count-up-columns-two\">\n <RichText.Content\n tagName=\"h4\"\n value={ headerText2 }\n style={ { color: headerTextColor } }\n className=\"advgb-count-up-header\"\n />\n <div className=\"advgb-counter\"\n style={ { color: countUpNumberColor, fontSize: countUpNumberSize + 'px' } }\n >\n {!countUpSymbolAfter2 && countSymbolElm2}\n <RichText.Content\n tagName=\"span\"\n value={ countUpNumber2 }\n className=\"advgb-counter-number\"\n />\n {!!countUpSymbolAfter2 && countSymbolElm2}\n </div>\n <RichText.Content\n tagName=\"p\"\n value={ descText2 }\n style={ { color: descTextColor } }\n className=\"advgb-count-up-desc\"\n />\n </div>\n ) }\n {parseInt(columns) > 2 && (\n <div className=\"advgb-count-up-columns-three\">\n <RichText.Content\n tagName=\"h4\"\n value={ headerText3 }\n style={ { color: headerTextColor } }\n className=\"advgb-count-up-header\"\n />\n <div className=\"advgb-counter\"\n style={ { color: countUpNumberColor, fontSize: countUpNumberSize + 'px' } }\n >\n {!countUpSymbolAfter3 && countSymbolElm3}\n <RichText.Content\n tagName=\"span\"\n value={ countUpNumber3 }\n className=\"advgb-counter-number\"\n />\n {!!countUpSymbolAfter3 && countSymbolElm3}\n </div>\n <RichText.Content\n tagName=\"p\"\n value={ descText3 }\n style={ { color: descTextColor } }\n className=\"advgb-count-up-desc\"\n />\n </div>\n ) }\n </div>\n );\n },\n deprecated: [\n {\n attributes: blockAttrs,\n save: ( { attributes } ) => {\n const {\n headerText,\n headerText2,\n headerText3,\n headerTextColor,\n countUpNumber,\n countUpNumber2,\n countUpNumber3,\n countUpNumberColor,\n countUpNumberSize,\n countUpSymbol,\n countUpSymbol2,\n countUpSymbol3,\n countUpSymbolAfter,\n countUpSymbolAfter2,\n countUpSymbolAfter3,\n descText,\n descText2,\n descText3,\n descTextColor,\n columns,\n } = attributes;\n\n const countSymbolElm = countUpSymbol ? <span className=\"advgb-counter-symbol\">{ countUpSymbol }</span> : '';\n const countSymbolElm2 = countUpSymbol2 ? <span className=\"advgb-counter-symbol\">{ countUpSymbol2 }</span> : '';\n const countSymbolElm3 = countUpSymbol3 ? <span className=\"advgb-counter-symbol\">{ countUpSymbol3 }</span> : '';\n\n return (\n <div className=\"advgb-count-up\" style={ { display: 'flex' } }>\n <div className=\"advgb-count-up-columns-one\" style={ { textAlign: 'center' } }>\n <RichText.Content\n tagName=\"h4\"\n value={ headerText }\n style={ { color: headerTextColor } }\n className=\"advgb-count-up-header\"\n />\n <div className=\"advgb-counter\"\n style={ { color: countUpNumberColor, fontSize: countUpNumberSize + 'px' } }\n >\n {!countUpSymbolAfter && countSymbolElm}\n <span className=\"advgb-counter-number\">{ countUpNumber }</span>\n {!!countUpSymbolAfter && countSymbolElm}\n </div>\n <RichText.Content\n tagName=\"p\"\n value={ descText }\n style={ { color: descTextColor } }\n className=\"advgb-count-up-desc\"\n />\n </div>\n {parseInt(columns) > 1 && (\n <div className=\"advgb-count-up-columns-two\" style={ { textAlign: 'center' } }>\n <RichText.Content\n tagName=\"h4\"\n value={ headerText2 }\n style={ { color: headerTextColor } }\n className=\"advgb-count-up-header\"\n />\n <div className=\"advgb-counter\"\n style={ { color: countUpNumberColor, fontSize: countUpNumberSize + 'px' } }\n >\n {!countUpSymbolAfter2 && countSymbolElm2}\n <span className=\"advgb-counter-number\">{ countUpNumber2 }</span>\n {!!countUpSymbolAfter2 && countSymbolElm2}\n </div>\n <RichText.Content\n tagName=\"p\"\n value={ descText2 }\n style={ { color: descTextColor } }\n className=\"advgb-count-up-desc\"\n />\n </div>\n ) }\n {parseInt(columns) > 2 && (\n <div className=\"advgb-count-up-columns-three\" style={ { textAlign: 'center' } }>\n <RichText.Content\n tagName=\"h4\"\n value={ headerText3 }\n style={ { color: headerTextColor } }\n className=\"advgb-count-up-header\"\n />\n <div className=\"advgb-counter\"\n style={ { color: countUpNumberColor, fontSize: countUpNumberSize + 'px' } }\n >\n {!countUpSymbolAfter3 && countSymbolElm3}\n <span className=\"advgb-counter-number\">{ countUpNumber3 }</span>\n {!!countUpSymbolAfter3 && countSymbolElm3}\n </div>\n <RichText.Content\n tagName=\"p\"\n value={ descText3 }\n style={ { color: descTextColor } }\n className=\"advgb-count-up-desc\"\n />\n </div>\n ) }\n </div>\n );\n }\n }\n ]\n } );\n})( wp.i18n, wp.blocks, wp.element, wp.blockEditor, wp.components );\n","(function (wpI18n, wpBlocks, wpElement, wpBlockEditor, wpComponents) {\n wpBlockEditor = wp.blockEditor || wp.editor;\n const {__} = wpI18n;\n const {Component, Fragment} = wpElement;\n const {registerBlockType} = wpBlocks;\n const {InspectorControls, PanelColorSettings, MediaUpload, RichText} = wpBlockEditor;\n const {PanelBody, RangeControl, ToggleControl, SelectControl, TextControl, TextareaControl, Button, Placeholder, Tooltip} = wpComponents;\n const $ = jQuery;\n\n const imageSliderBlockIcon = (\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"20\" height=\"20\" viewBox=\"2 2 22 22\" className=\"dashicon\">\n <path fill=\"none\" d=\"M0 0h24v24H0V0z\"/>\n <path\n d=\"M20 4h-3.17L15 2H9L7.17 4H4c-1.1 0-2 .9-2 2v12c0 1.1.9 2 2 2h16c1.1 0 2-.9 2-2V6c0-1.1-.9-2-2-2zM9.88 4h4.24l1.83 2H20v12H4V6h4.05\"/>\n <path d=\"M15 11H9V8.5L5.5 12 9 15.5V13h6v2.5l3.5-3.5L15 8.5z\"/>\n </svg>\n );\n\n const previewImageData = 'data:image/png;base64,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';\n\n class AdvImageSlider extends Component {\n constructor() {\n super(...arguments);\n this.state = {\n currentSelected: 0,\n imageLoaded: false,\n };\n\n this.initSlider = this.initSlider.bind(this);\n }\n\n componentWillMount() {\n const {attributes, setAttributes} = this.props;\n const currentBlockConfig = advgbDefaultConfig['advgb-images-slider'];\n\n // No override attributes of blocks inserted before\n if (attributes.changed !== true) {\n if (typeof currentBlockConfig === 'object' && currentBlockConfig !== null) {\n Object.keys(currentBlockConfig).map((attribute) => {\n if (typeof attributes[attribute] === 'boolean') {\n attributes[attribute] = !!currentBlockConfig[attribute];\n } else {\n attributes[attribute] = currentBlockConfig[attribute];\n }\n });\n }\n\n // Finally set changed attribute to true, so we don't modify anything again\n setAttributes({changed: true});\n }\n }\n\n componentDidMount() {\n const {attributes, setAttributes, clientId} = this.props;\n\n setAttributes( { id: 'advg-images-slider-' + clientId } );\n\n if (attributes.images.length) {\n this.initSlider();\n }\n\n // Reset attributes when Pro is not available\n if( advgbBlocks.advgb_pro !== 'undefined' && advgbBlocks.advgb_pro !== '1' ) {\n setAttributes( {\n titleTag: 'h4',\n titleShow: true,\n textTag: 'p'\n } );\n }\n\n }\n\n componentWillUpdate(nextProps) {\n const {clientId, attributes} = this.props;\n const {images} = attributes;\n const {images: nextImages} = nextProps.attributes;\n\n if (images.length !== nextImages.length) {\n $(`#block-${clientId} .advgb-images-slider.slick-initialized`).slick('unslick');\n $(`#block-${clientId} .advgb-image-slider-item`)\n .removeAttr('tabindex')\n .removeAttr('role')\n .removeAttr('aria-describedby');\n }\n }\n\n componentDidUpdate(prevProps) {\n const {attributes, clientId} = this.props;\n const {images, autoplay, autoplaySpeed} = attributes;\n const {images: prevImages} = prevProps.attributes;\n\n if (images.length !== prevImages.length) {\n if (images.length) {\n this.initSlider();\n }\n }\n\n // Autoplay\n if( autoplay && advgbBlocks.advgb_pro !== 'undefined' && advgbBlocks.advgb_pro === '1' ) {\n $(`#block-${clientId} .advgb-images-slider.slick-initialized`).slick('slickSetOption', 'autoplay', true, true);\n } else {\n $(`#block-${clientId} .advgb-images-slider.slick-initialized`).slick('slickSetOption', 'autoplay', false, true);\n }\n\n // Autoplay speed\n if( autoplay && autoplaySpeed && advgbBlocks.advgb_pro !== 'undefined' && advgbBlocks.advgb_pro === '1' ) {\n $(`#block-${clientId} .advgb-images-slider.slick-initialized`).slick('slickSetOption', 'autoplaySpeed', autoplaySpeed, true);\n } else {\n $(`#block-${clientId} .advgb-images-slider.slick-initialized`).slick('slickSetOption', 'autoplaySpeed', 3000, true);\n }\n\n if (this.state.imageLoaded) {\n $(`#block-${clientId} .advgb-image-slider-image-list `)\n .find('.advgb-image-slider-image-list-item:first-child')\n .find('.advgb-image-slider-image-list-img')\n .trigger('click');\n\n this.setState({imageLoaded: null})\n }\n }\n\n initSlider() {\n const {clientId} = this.props;\n\n $(`#block-${clientId} .advgb-images-slider:not(.slick-initialized)`).slick({\n dots: true,\n adaptiveHeight: true,\n });\n\n $(`#block-${clientId} .advgb-images-slider`).on('afterChange', (e, s, currentSlide) => {\n if (this.state.currentSelected !== currentSlide) {\n this.setState({currentSelected: currentSlide});\n }\n });\n }\n\n moveImage(currentIndex, newIndex) {\n const {setAttributes, attributes} = this.props;\n const {images} = attributes;\n\n const image = images[currentIndex];\n setAttributes({\n images: [\n ...images.filter((img, idx) => idx !== currentIndex).slice(0, newIndex),\n image,\n ...images.filter((img, idx) => idx !== currentIndex).slice(newIndex),\n ]\n });\n }\n\n updateImagesData(data) {\n const {currentSelected} = this.state;\n if (typeof currentSelected !== 'number') {\n return null;\n }\n\n const {attributes, setAttributes} = this.props;\n const {images} = attributes;\n\n const newImages = images.map((image, index) => {\n if (index === currentSelected) {\n image = {...image, ...data};\n }\n\n return image;\n });\n\n setAttributes({images: newImages});\n }\n\n render() {\n const {attributes, setAttributes, isSelected, clientId} = this.props;\n const {currentSelected, imageLoaded} = this.state;\n const {\n images,\n actionOnClick,\n fullWidth,\n autoHeight,\n width,\n height,\n alwaysShowOverlay,\n rtl,\n hoverColor,\n titleColor,\n textColor,\n hAlign,\n vAlign,\n isPreview,\n autoplay,\n autoplaySpeed,\n id,\n titleTag,\n titleShow,\n textTag\n } = attributes;\n if (images.length === 0) {\n return (\n isPreview ?\n <img alt={__('Images Slider', 'advanced-gutenberg')} width='100%' src={previewImageData}/>\n :\n <Placeholder\n icon={imageSliderBlockIcon}\n label={__('Image Slider Block', 'advanced-gutenberg')}\n instructions={__('No images selected. Adding images to start using this block.', 'advanced-gutenberg')}\n >\n <MediaUpload\n allowedTypes={['image']}\n value={null}\n multiple\n onSelect={(image) => {\n const imgInsert = image.map((img) => ({\n url: img.url,\n id: img.id,\n title: img.title || img.alt,\n text: img.caption || img.description,\n }));\n\n setAttributes({\n images: [\n ...images,\n ...imgInsert,\n ]\n })\n }}\n render={({open}) => (\n <Button className=\"button button-large button-primary\" onClick={open}>\n {__('Add images', 'advanced-gutenberg')}\n </Button>\n )}\n />\n </Placeholder>\n )\n }\n\n const blockClass = [\n 'advgb-images-slider-block',\n imageLoaded === false && 'advgb-ajax-loading',\n id\n ].filter(Boolean).join(' ');\n\n return (\n isPreview ?\n <img alt={__('Images Slider', 'advanced-gutenberg')} width='100%' src={previewImageData}/>\n :\n <Fragment>\n <InspectorControls>\n <PanelBody title={__('Image Settings', 'advanced-gutenberg')}>\n <SelectControl\n label={__('Action on click', 'advanced-gutenberg')}\n value={actionOnClick}\n options={[\n {label: __('None', 'advanced-gutenberg'), value: ''},\n {label: __('Open image in lightbox', 'advanced-gutenberg'), value: 'lightbox'},\n {label: __('Open custom link', 'advanced-gutenberg'), value: 'link'},\n ]}\n onChange={(value) => setAttributes({actionOnClick: value})}\n />\n <ToggleControl\n label={__('Full width', 'advanced-gutenberg')}\n checked={fullWidth}\n onChange={() => setAttributes({fullWidth: !fullWidth})}\n />\n <ToggleControl\n label={__('Auto height', 'advanced-gutenberg')}\n checked={autoHeight}\n onChange={() => setAttributes({autoHeight: !autoHeight})}\n />\n {!fullWidth && (\n <RangeControl\n label={__('Width', 'advanced-gutenberg')}\n value={width}\n onChange={(value) => setAttributes({width: value})}\n min={200}\n max={1300}\n />\n )}\n {!autoHeight && (\n <RangeControl\n label={__('Height', 'advanced-gutenberg')}\n value={height}\n onChange={(value) => setAttributes({height: value})}\n min={100}\n max={1000}\n />\n )}\n <ToggleControl\n label={__('Always show overlay', 'advanced-gutenberg')}\n checked={alwaysShowOverlay}\n onChange={() => setAttributes({alwaysShowOverlay: !alwaysShowOverlay})}\n />\n <ToggleControl\n label={__('Enable RTL', 'advanced-gutenberg')}\n checked={rtl}\n onChange={() => setAttributes({rtl: !rtl})}\n />\n </PanelBody>\n <PanelColorSettings\n title={__('Color Settings', 'advanced-gutenberg')}\n colorSettings={[\n {\n label: __('Hover Color', 'advanced-gutenberg'),\n value: hoverColor,\n onChange: (value) => setAttributes({hoverColor: value}),\n },\n {\n label: __('Title Color', 'advanced-gutenberg'),\n value: titleColor,\n onChange: (value) => setAttributes({titleColor: value}),\n },\n {\n label: __('Text Color', 'advanced-gutenberg'),\n value: textColor,\n onChange: (value) => setAttributes({textColor: value}),\n },\n ]}\n />\n <PanelBody title={__('Text Alignment', 'advanced-gutenberg')} initialOpen={false}>\n <SelectControl\n label={__('Vertical Alignment', 'advanced-gutenberg')}\n value={vAlign}\n options={[\n {label: __('Top', 'advanced-gutenberg'), value: 'flex-start'},\n {label: __('Center', 'advanced-gutenberg'), value: 'center'},\n {label: __('Bottom', 'advanced-gutenberg'), value: 'flex-end'},\n ]}\n onChange={(value) => setAttributes({vAlign: value})}\n />\n <SelectControl\n label={__('Horizontal Alignment', 'advanced-gutenberg')}\n value={hAlign}\n options={[\n {label: __('Left', 'advanced-gutenberg'), value: 'flex-start'},\n {label: __('Center', 'advanced-gutenberg'), value: 'center'},\n {label: __('Right', 'advanced-gutenberg'), value: 'flex-end'},\n ]}\n onChange={(value) => setAttributes({hAlign: value})}\n />\n </PanelBody>\n </InspectorControls>\n <div className={blockClass}>\n <div className=\"advgb-images-slider\" dir={ rtl ? 'rtl' : 'ltr' }>\n {images.map((image, index) => (\n <div className=\"advgb-image-slider-item\" key={index}>\n <img src={image.url}\n className=\"advgb-image-slider-img\"\n alt={image.title}\n style={{\n width: fullWidth ? '100%' : width,\n height: autoHeight ? 'auto' : height,\n }}\n onLoad={() => {\n if (index === 0) {\n if (this.state.imageLoaded === false) {\n this.setState({imageLoaded: true})\n }\n }\n }}\n onError={() => {\n if (index === 0) {\n if (this.state.imageLoaded === false) {\n this.setState({imageLoaded: true})\n }\n }\n }}\n />\n <div className=\"advgb-image-slider-item-info\"\n style={{\n justifyContent: vAlign,\n alignItems: hAlign,\n }}\n >\n {(actionOnClick !== '' || alwaysShowOverlay) && (\n <span className=\"advgb-image-slider-overlay\"\n style={{\n backgroundColor: hoverColor,\n opacity: alwaysShowOverlay ? 0.5 : undefined,\n }}\n />)}\n {image.title && titleShow && (\n <RichText\n tagName={ titleTag }\n className=\"advgb-image-slider-title\"\n style={{color: titleColor}}\n value={ image.title }\n onChange={ (value) => this.updateImagesData({title: value || ''}) }\n allowedFormats={ [] }\n />\n )}\n {image.text && (\n <RichText\n tagName={ textTag }\n className=\"advgb-image-slider-text\"\n style={{color: textColor}}\n value={ image.text }\n onChange={ (value) => this.updateImagesData({text: value || ''}) }\n allowedFormats={ [] }\n />\n )}\n </div>\n </div>\n ))}\n </div>\n {isSelected && (\n <div className=\"advgb-image-slider-controls\">\n <div className=\"advgb-image-slider-control\">\n <TextControl\n label={__('Title', 'advanced-gutenberg')}\n value={images[currentSelected] ? images[currentSelected].title || '' : ''}\n onChange={(value) => this.updateImagesData({title: value || ''})}\n />\n </div>\n <div className=\"advgb-image-slider-control\">\n <TextareaControl\n label={__('Text', 'advanced-gutenberg')}\n value={images[currentSelected] ? images[currentSelected].text || '' : ''}\n onChange={(value) => this.updateImagesData({text: value || ''})}\n />\n </div>\n {actionOnClick === 'link' && (\n <div className=\"advgb-image-slider-control\">\n <TextControl\n label={__('Link', 'advanced-gutenberg')}\n value={images[currentSelected] ? images[currentSelected].link || '' : ''}\n onChange={(value) => this.updateImagesData({link: value || ''})}\n />\n </div>\n )}\n <div className=\"advgb-image-slider-image-list\">\n {images.map((image, index) => (\n <div className=\"advgb-image-slider-image-list-item\" key={index}>\n {index > 0 && (\n <Tooltip text={__('Move Left', 'advanced-gutenberg')}>\n <span className=\"advgb-move-arrow advgb-move-left\"\n onClick={() => this.moveImage(index, index - 1)}\n >\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\"\n viewBox=\"0 0 24 24\">\n <path fill=\"none\" d=\"M0 0h24v24H0V0z\"/>\n <path\n d=\"M15.41 16.59L10.83 12l4.58-4.59L14 6l-6 6 6 6 1.41-1.41z\"/>\n </svg>\n </span>\n </Tooltip>\n )}\n <img src={image.url}\n className=\"advgb-image-slider-image-list-img\"\n alt={__('Image', 'advanced-gutenberg')}\n onClick={() => {\n $(`#block-${clientId} .advgb-images-slider`).slick('slickGoTo', index, false);\n this.setState({currentSelected: index})\n }}\n />\n {index + 1 < images.length && (\n <Tooltip text={__('Move Right', 'advanced-gutenberg')}>\n <span className=\"advgb-move-arrow advgb-move-right\"\n onClick={() => this.moveImage(index, index + 1)}\n >\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\"\n viewBox=\"0 0 24 24\">\n <path fill=\"none\" d=\"M0 0h24v24H0V0z\"/>\n <path\n d=\"M8.59 16.59L13.17 12 8.59 7.41 10 6l6 6-6 6-1.41-1.41z\"/>\n </svg>\n </span>\n </Tooltip>\n )}\n <Tooltip text={__('Remove image', 'advanced-gutenberg')}>\n <Button\n className=\"advgb-image-slider-image-list-item-remove\"\n icon=\"no\"\n onClick={() => {\n if (index === currentSelected) this.setState({currentSelected: null});\n setAttributes({images: images.filter((img, idx) => idx !== index)})\n }}\n />\n </Tooltip>\n </div>\n ))}\n <div className=\"advgb-image-slider-add-item\">\n <MediaUpload\n allowedTypes={['image']}\n value={currentSelected}\n multiple\n onSelect={\n (imgs) => {\n setAttributes({\n images: [\n ...images,\n ...imgs.map((img) => ({\n url: img.url,\n id: img.id,\n title: img.title || img.alt,\n text: img.caption || img.description,\n }))\n ],\n });\n }\n }\n render={({open}) => (\n <Button\n label={__('Add image', 'advanced-gutenberg')}\n icon=\"plus\"\n onClick={open}\n />\n )}\n />\n </div>\n </div>\n </div>\n )}\n </div>\n </Fragment>\n )\n }\n }\n\n const blockAttrs = {\n images: {\n type: 'array',\n default: [], // [ { id: int, url, title, text, link: string } ]\n },\n actionOnClick: {\n type: 'string',\n default: '',\n },\n fullWidth: {\n type: 'boolean',\n default: true,\n },\n autoHeight: {\n type: 'boolean',\n default: true,\n },\n width: {\n type: 'number',\n default: 700,\n },\n height: {\n type: 'number',\n default: 500,\n },\n alwaysShowOverlay: {\n type: 'boolean',\n default: false,\n },\n rtl: {\n type: 'boolean',\n default: false,\n },\n hoverColor: {\n type: 'string',\n },\n titleColor: {\n type: 'string',\n },\n textColor: {\n type: 'string',\n },\n vAlign: {\n type: 'string',\n default: 'center',\n },\n hAlign: {\n type: 'string',\n default: 'center',\n },\n autoplay: {\n type: 'boolean',\n default: false,\n },\n autoplaySpeed: {\n type: 'number',\n default: 3000,\n },\n changed: {\n type: 'boolean',\n default: false,\n },\n id: {\n type: 'string',\n },\n isPreview: {\n type: 'boolean',\n default: false,\n },\n titleTag: {\n type: 'string',\n default: 'h4'\n },\n titleShow: {\n type: 'boolean',\n default: true,\n },\n textTag: {\n type: 'string',\n default: 'p'\n }\n };\n\n registerBlockType('advgb/images-slider', {\n title: __('Images Slider - PublishPress', 'advanced-gutenberg'),\n description: __('Display your images in a slider.', 'advanced-gutenberg'),\n icon: {\n src: imageSliderBlockIcon,\n foreground: typeof advgbBlocks !== 'undefined' ? advgbBlocks.color : undefined,\n },\n category: 'advgb-category',\n keywords: [__('slide', 'advanced-gutenberg'), __('gallery', 'advanced-gutenberg'), __('photos', 'advanced-gutenberg')],\n attributes: blockAttrs,\n example: {\n attributes: {\n isPreview: true\n },\n },\n supports: {\n anchor: true\n },\n edit: AdvImageSlider,\n save: function ({attributes}) {\n const {\n images,\n actionOnClick,\n fullWidth,\n autoHeight,\n width,\n height,\n alwaysShowOverlay,\n rtl,\n hoverColor,\n titleColor,\n textColor,\n hAlign,\n vAlign,\n id,\n titleTag,\n titleShow,\n textTag\n } = attributes;\n const blockClassName = [\n 'advgb-images-slider-block',\n actionOnClick === 'lightbox' && 'advgb-images-slider-lightbox',\n id\n ].filter(Boolean).join(' ');\n\n return (\n <div className={blockClassName}>\n <div className=\"advgb-images-slider\" dir={ rtl ? 'rtl' : 'ltr' }>\n {images.map((image, index) => (\n <div className=\"advgb-image-slider-item\" key={index}>\n <img src={image.url}\n className=\"advgb-image-slider-img\"\n alt={image.title}\n style={{\n width: fullWidth ? '100%' : width,\n height: autoHeight ? 'auto' : height,\n }}\n />\n <div className=\"advgb-image-slider-item-info\"\n style={{\n justifyContent: vAlign,\n alignItems: hAlign,\n }}\n >\n {(actionOnClick !== '' || alwaysShowOverlay) && (\n <a className=\"advgb-image-slider-overlay\"\n target={actionOnClick !== '' ? '_blank' : false}\n rel=\"noopener noreferrer\"\n href={(actionOnClick === 'link' && !!image.link) ? image.link : '#'}\n style={{\n backgroundColor: hoverColor,\n opacity: alwaysShowOverlay ? 0.5 : undefined,\n }}\n />)}\n {image.title && titleShow && (\n <RichText.Content\n tagName={ titleTag }\n className=\"advgb-image-slider-title\"\n style={{color: titleColor}}\n value={ image.title }\n />\n )}\n {image.text && (\n <RichText.Content\n tagName={ textTag }\n className=\"advgb-image-slider-text\"\n style={{color: textColor}}\n value={ image.text }\n />\n )}\n </div>\n </div>\n ))}\n </div>\n </div>\n );\n },\n deprecated: [\n {\n attributes: blockAttrs,\n supports: {\n anchor: true\n },\n save: function ({attributes}) {\n const {\n images,\n actionOnClick,\n fullWidth,\n autoHeight,\n width,\n height,\n alwaysShowOverlay,\n rtl,\n hoverColor,\n titleColor,\n textColor,\n hAlign,\n vAlign,\n } = attributes;\n const blockClassName = [\n 'advgb-images-slider-block',\n actionOnClick === 'lightbox' && 'advgb-images-slider-lightbox',\n ].filter(Boolean).join(' ');\n\n return (\n <div className={blockClassName}>\n <div className=\"advgb-images-slider\" data-slick={`{\"rtl\": ${rtl}}`}>\n {images.map((image, index) => (\n <div className=\"advgb-image-slider-item\" key={index}>\n <img src={image.url}\n className=\"advgb-image-slider-img\"\n alt={image.title}\n style={{\n width: fullWidth ? '100%' : width,\n height: autoHeight ? 'auto' : height,\n }}\n />\n <div className=\"advgb-image-slider-item-info\"\n style={{\n justifyContent: vAlign,\n alignItems: hAlign,\n }}\n >\n {(actionOnClick !== '' || alwaysShowOverlay) && (\n <a className=\"advgb-image-slider-overlay\"\n target={actionOnClick !== '' ? '_blank' : false}\n rel=\"noopener noreferrer\"\n href={(actionOnClick === 'link' && !!image.link) ? image.link : '#'}\n style={{\n backgroundColor: hoverColor,\n opacity: alwaysShowOverlay ? 0.5 : undefined,\n }}\n />)}\n {image.title && (\n <h4 className=\"advgb-image-slider-title\"\n style={{color: titleColor}}\n >\n {image.title}\n </h4>\n )}\n {image.text && (\n <p className=\"advgb-image-slider-text\"\n style={{color: textColor}}\n >\n {image.text}\n </p>\n )}\n </div>\n </div>\n ))}\n </div>\n </div>\n );\n },\n },\n {\n attributes: blockAttrs,\n save: function ({attributes}) {\n const {\n images,\n actionOnClick,\n fullWidth,\n autoHeight,\n width,\n height,\n alwaysShowOverlay,\n rtl,\n hoverColor,\n titleColor,\n textColor,\n hAlign,\n vAlign,\n } = attributes;\n const blockClassName = [\n 'advgb-images-slider-block',\n actionOnClick === 'lightbox' && 'advgb-images-slider-lightbox',\n ].filter(Boolean).join(' ');\n\n return (\n <div className={blockClassName}>\n <div className=\"advgb-images-slider\" data-slick={`{\"rtl\": ${rtl}}`}>\n {images.map((image, index) => (\n <div className=\"advgb-image-slider-item\" key={index}>\n <img src={image.url}\n className=\"advgb-image-slider-img\"\n alt={'Slider image'}\n style={{\n width: fullWidth ? '100%' : width,\n height: autoHeight ? 'auto' : height,\n }}\n />\n <div className=\"advgb-image-slider-item-info\"\n style={{\n justifyContent: vAlign,\n alignItems: hAlign,\n }}\n >\n <a className=\"advgb-image-slider-overlay\"\n target=\"_blank\"\n rel=\"noopener noreferrer\"\n href={(actionOnClick === 'link' && !!image.link) ? image.link : '#'}\n style={{\n backgroundColor: hoverColor,\n opacity: alwaysShowOverlay ? 0.5 : undefined,\n }}\n />\n {image.title && (\n <h4 className=\"advgb-image-slider-title\"\n style={{color: titleColor}}\n >\n {image.title}\n </h4>\n )}\n {image.text && (\n <p className=\"advgb-image-slider-text\"\n style={{color: textColor}}\n >\n {image.text}\n </p>\n )}\n </div>\n </div>\n ))}\n </div>\n </div>\n );\n },\n },\n {\n attributes: blockAttrs,\n save: function ({attributes}) {\n const {\n images,\n actionOnClick,\n fullWidth,\n autoHeight,\n width,\n height,\n alwaysShowOverlay,\n hoverColor,\n titleColor,\n textColor,\n hAlign,\n vAlign,\n } = attributes;\n const blockClassName = [\n 'advgb-images-slider-block',\n actionOnClick === 'lightbox' && 'advgb-images-slider-lightbox',\n ].filter(Boolean).join(' ');\n\n return (\n <div className={blockClassName}>\n <div className=\"advgb-images-slider\">\n {images.map((image, index) => (\n <div className=\"advgb-image-slider-item\" key={index}>\n <img src={image.url}\n className=\"advgb-image-slider-img\"\n alt={'Slider image'}\n style={{\n width: fullWidth ? '100%' : width,\n height: autoHeight ? 'auto' : height,\n }}\n />\n <div className=\"advgb-image-slider-item-info\"\n style={{\n justifyContent: vAlign,\n alignItems: hAlign,\n }}\n >\n <a className=\"advgb-image-slider-overlay\"\n target=\"_blank\"\n rel=\"noopener noreferrer\"\n href={(actionOnClick === 'link' && !!image.link) ? image.link : '#'}\n style={{\n backgroundColor: hoverColor,\n opacity: alwaysShowOverlay ? 0.5 : undefined,\n }}\n />\n {image.title && (\n <h4 className=\"advgb-image-slider-title\"\n style={{color: titleColor}}\n >\n {image.title}\n </h4>\n )}\n {image.text && (\n <p className=\"advgb-image-slider-text\"\n style={{color: textColor}}\n >\n {image.text}\n </p>\n )}\n </div>\n </div>\n ))}\n </div>\n </div>\n );\n },\n },\n {\n attributes: blockAttrs,\n save: function ({attributes}) {\n const {\n images,\n actionOnClick,\n fullWidth,\n autoHeight,\n width,\n height,\n alwaysShowOverlay,\n hoverColor,\n titleColor,\n textColor,\n hAlign,\n vAlign,\n } = attributes;\n const blockClassName = [\n 'advgb-images-slider-block',\n actionOnClick === 'lightbox' && 'advgb-images-slider-lightbox',\n ].filter(Boolean).join(' ');\n\n return (\n <div className={blockClassName}>\n <div className=\"advgb-images-slider\">\n {images.map((image, index) => (\n <div className=\"advgb-image-slider-item\" key={index}>\n <img src={image.url}\n className=\"advgb-image-slider-img\"\n alt={'Slider image'}\n style={{\n width: fullWidth ? '100%' : width,\n height: autoHeight ? 'auto' : height,\n }}\n />\n <div className=\"advgb-image-slider-item-info\"\n style={{\n justifyContent: vAlign,\n alignItems: hAlign,\n }}\n >\n <a className=\"advgb-image-slider-overlay\"\n target=\"_blank\"\n rel=\"noopener noreferrer\"\n href={(actionOnClick === 'link' && !!image.link) ? image.link : undefined}\n style={{\n backgroundColor: hoverColor,\n opacity: alwaysShowOverlay ? 0.5 : undefined,\n }}\n />\n <h4 className=\"advgb-image-slider-title\"\n style={{color: titleColor}}\n >\n {image.title}\n </h4>\n <p className=\"advgb-image-slider-text\"\n style={{color: textColor}}\n >\n {image.text}\n </p>\n </div>\n </div>\n ))}\n </div>\n </div>\n );\n },\n }\n ]\n });\n})(wp.i18n, wp.blocks, wp.element, wp.blockEditor, wp.components);\n","import {AdvColorControl} from \"../0-adv-components/components.jsx\";\nimport {IconListPopupHook} from \"../0-adv-components/icon-class.jsx\";\n\n(function ( wpI18n, wpBlocks, wpElement, wpBlockEditor, wpComponents ) {\n wpBlockEditor = wp.blockEditor || wp.editor;\n const { __ } = wpI18n;\n const { Component, Fragment } = wpElement;\n const { registerBlockType } = wpBlocks;\n const { InspectorControls, BlockControls, AlignmentToolbar, RichText } = wpBlockEditor;\n const { BaseControl, PanelBody, RangeControl, SelectControl, Button } = wpComponents;\n\n const previewImageData = 'data:image/png;base64,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';\n\n const blockIcon = (\n <svg version=\"1.1\" id=\"Layer_1\" xmlns=\"http://www.w3.org/2000/svg\" x=\"0px\" y=\"0px\" viewBox=\"0 0 250 250\"><path d=\"M114,110h23v69.1h-23V110z M114,63.9v23h23v-23H114z M225,22v11v177v11h-11H37H26v-11V33V22h11h177H225z M214,33H37v177h177V33z\"/></svg>\n );\n\n const MARGIN_PADDING_CONTROLS = [\n {\n label:'Top',\n icon: (<svg width=\"20px\" height=\"20px\" viewBox=\"0 0 20 20\" xmlns=\"http://www.w3.org/2000/svg\" fill-rule=\"evenodd\" clip-rule=\"evenodd\" stroke-linejoin=\"round\" stroke-miterlimit=\"1.414\"><rect x=\"2.714\" y=\"5.492\" width=\"1.048\" height=\"9.017\" fill=\"#555d66\"></rect><rect x=\"16.265\" y=\"5.498\" width=\"1.023\" height=\"9.003\" fill=\"#555d66\"></rect><rect x=\"5.518\" y=\"2.186\" width=\"8.964\" height=\"2.482\" fill=\"#272b2f\"></rect><rect x=\"5.487\" y=\"16.261\" width=\"9.026\" height=\"1.037\" fill=\"#555d66\"></rect></svg>)\n },\n {\n label:'Right',\n icon: (<svg width=\"20px\" height=\"20px\" viewBox=\"0 0 20 20\" xmlns=\"http://www.w3.org/2000/svg\" fill-rule=\"evenodd\" clip-rule=\"evenodd\" stroke-linejoin=\"round\" stroke-miterlimit=\"1.414\"><rect x=\"2.714\" y=\"5.492\" width=\"1.046\" height=\"9.017\" fill=\"#555d66\"></rect><rect x=\"15.244\" y=\"5.498\" width=\"2.518\" height=\"9.003\" fill=\"#272b2f\"></rect><rect x=\"5.518\" y=\"2.719\" width=\"8.964\" height=\"0.954\" fill=\"#555d66\"></rect><rect x=\"5.487\" y=\"16.308\" width=\"9.026\" height=\"0.99\" fill=\"#555d66\"></rect></svg>)\n },\n {\n label:'Bottom',\n icon: (<svg width=\"20px\" height=\"20px\" viewBox=\"0 0 20 20\" xmlns=\"http://www.w3.org/2000/svg\" fill-rule=\"evenodd\" clip-rule=\"evenodd\" stroke-linejoin=\"round\" stroke-miterlimit=\"1.414\"><rect x=\"2.714\" y=\"5.492\" width=\"1\" height=\"9.017\" fill=\"#555d66\"></rect><rect x=\"16.261\" y=\"5.498\" width=\"1.027\" height=\"9.003\" fill=\"#555d66\"></rect><rect x=\"5.518\" y=\"2.719\" width=\"8.964\" height=\"0.968\" fill=\"#555d66\"></rect><rect x=\"5.487\" y=\"15.28\" width=\"9.026\" height=\"2.499\" fill=\"#272b2f\"></rect></svg>)\n },\n {\n label:'Left',\n icon: (<svg width=\"20px\" height=\"20px\" viewBox=\"0 0 20 20\" xmlns=\"http://www.w3.org/2000/svg\" fill-rule=\"evenodd\" clip-rule=\"evenodd\" stroke-linejoin=\"round\" stroke-miterlimit=\"1.414\"><rect x=\"2.202\" y=\"5.492\" width=\"2.503\" height=\"9.017\" fill=\"#272b2f\"></rect><rect x=\"16.276\" y=\"5.498\" width=\"1.012\" height=\"9.003\" fill=\"#555d66\"></rect><rect x=\"5.518\" y=\"2.719\" width=\"8.964\" height=\"0.966\" fill=\"#555d66\"></rect><rect x=\"5.487\" y=\"16.303\" width=\"9.026\" height=\"0.995\" fill=\"#555d66\"></rect></svg>)\n },\n ];\n\n class InfoBoxEdit extends Component {\n\n constructor() {\n super( ...arguments );\n this.state = {\n showPopup: false,\n iconSelected: '',\n selectedIcon: false,\n iconThemeSelected: 'outlined',\n selectedIconTheme: false,\n };\n this.togglePopup = this.togglePopup.bind(this);\n this.handleIcon = this.handleIcon.bind(this);\n this.handleIconTheme = this.handleIconTheme.bind(this);\n }\n\n componentWillMount() {\n const { attributes, setAttributes } = this.props;\n const currentBlockConfig = advgbDefaultConfig['advgb-infobox'];\n\n // No override attributes of blocks inserted before\n if (attributes.changed !== true) {\n if (typeof currentBlockConfig === 'object' && currentBlockConfig !== null) {\n Object.keys(currentBlockConfig).map((attribute) => {\n if (typeof attributes[attribute] === 'boolean') {\n attributes[attribute] = !!currentBlockConfig[attribute];\n } else {\n attributes[attribute] = currentBlockConfig[attribute];\n }\n });\n }\n\n // Finally set changed attribute to true, so we don't modify anything again\n setAttributes( { changed: true } );\n }\n }\n\n componentDidMount() {\n const { attributes, setAttributes, clientId } = this.props;\n const { blockIDX } = attributes;\n\n setAttributes( { blockIDX: `advgb-infobox-${clientId}` } );\n }\n\n componentDidUpdate() {\n const {iconSelected, selectedIcon, iconThemeSelected, selectedIconTheme} = this.state;\n const {attributes, setAttributes} = this.props;\n if(selectedIcon) {\n\n this.setState({\n selectedIcon: false\n });\n setAttributes({\n icon: iconSelected,\n iconTheme: iconThemeSelected\n });\n }\n\n if(selectedIconTheme) {\n this.setState({\n selectedIconTheme: false\n });\n setAttributes({\n iconTheme: iconThemeSelected\n });\n }\n }\n\n togglePopup() {\n const {showPopup} = this.state;\n\n this.setState( {\n showPopup: !showPopup\n } );\n }\n\n handleIcon(iconValue) {\n this.setState({\n iconSelected: iconValue,\n selectedIcon: true,\n });\n }\n\n handleIconTheme(iconThemeValue) {\n this.setState({\n iconThemeSelected: iconThemeValue,\n selectedIconTheme: true,\n });\n }\n\n render() {\n const {attributes, setAttributes} = this.props;\n const {\n blockIDX,\n isPreview,\n align,\n containerBorderWidth,\n containerBorderRadius,\n containerPaddingTop,\n containerPaddingBottom,\n containerPaddingLeft,\n containerPaddingRight,\n containerBackground,\n containerBorderBackground,\n containerPaddingUnit,\n iconBorderWidth,\n iconBorderRadius,\n iconPaddingTop,\n iconPaddingBottom,\n iconPaddingLeft,\n iconPaddingRight,\n iconMarginTop,\n iconMarginBottom,\n iconMarginLeft,\n iconMarginRight,\n iconBackground,\n iconBorderBackground,\n iconPaddingUnit,\n iconMarginUnit,\n icon,\n iconSize,\n iconColor,\n iconTheme,\n title,\n titleColor,\n titleSize,\n titleSizeUnit,\n titleLineHeight,\n titleLineHeightUnit,\n titleHtmlTag,\n titlePaddingTop,\n titlePaddingBottom,\n titlePaddingLeft,\n titlePaddingRight,\n titleMarginTop,\n titleMarginBottom,\n titleMarginLeft,\n titleMarginRight,\n titlePaddingUnit,\n titleMarginUnit,\n text,\n textColor,\n textSize,\n textSizeUnit,\n textLineHeight,\n textLineHeightUnit,\n textPaddingTop,\n textPaddingBottom,\n textPaddingLeft,\n textPaddingRight,\n textMarginTop,\n textMarginBottom,\n textMarginLeft,\n textMarginRight,\n textPaddingUnit,\n textMarginUnit,\n } = attributes;\n\n const {showPopup} = this.state;\n\n const blockWrapClass = [\n 'advgb-infobox-wrapper',\n `has-text-align-${align}`\n ].filter( Boolean ).join( ' ' );\n\n const blockClass = [\n 'advgb-infobox-wrap',\n ].filter( Boolean ).join( ' ' );\n\n const iconClass = [\n 'material-icons',\n iconTheme !== '' && `-${iconTheme}`\n ].filter( Boolean ).join('');\n\n const containerPadding = containerPaddingTop + containerPaddingUnit + ' ' + containerPaddingRight + containerPaddingUnit + ' ' + containerPaddingBottom + containerPaddingUnit + ' ' + containerPaddingLeft + containerPaddingUnit;\n const iconPadding = iconPaddingTop + iconPaddingUnit + ' ' + iconPaddingRight + iconPaddingUnit + ' ' + iconPaddingBottom + iconPaddingUnit + ' ' + iconPaddingLeft + iconPaddingUnit;\n const iconMargin = iconMarginTop + iconMarginUnit + ' ' + iconMarginRight + iconMarginUnit + ' ' + iconMarginBottom + iconMarginUnit + ' ' + iconMarginLeft + iconMarginUnit;\n const titlePadding = titlePaddingTop + titlePaddingUnit + ' ' + titlePaddingRight + titlePaddingUnit + ' ' + titlePaddingBottom + titlePaddingUnit + ' ' + titlePaddingLeft + titlePaddingUnit;\n const titleMargin = titleMarginTop + titleMarginUnit + ' ' + titleMarginRight + titleMarginUnit + ' ' + titleMarginBottom + titleMarginUnit + ' ' + titleMarginLeft + titleMarginUnit;\n const textPadding = textPaddingTop + textPaddingUnit + ' ' + textPaddingRight + textPaddingUnit + ' ' + textPaddingBottom + textPaddingUnit + ' ' + textPaddingLeft + textPaddingUnit;\n const textMargin = textMarginTop + textMarginUnit + ' ' + textMarginRight + textMarginUnit + ' ' + textMarginBottom + textMarginUnit + ' ' + textMarginLeft + textMarginUnit;\n\n return (\n isPreview ?\n <img alt={__('Info Box', 'advanced-gutenberg')} width='100%' src={previewImageData}/>\n :\n <Fragment>\n <BlockControls>\n <AlignmentToolbar\n value={ align }\n onChange={ ( newAlign ) => setAttributes( { align: newAlign } ) }\n />\n </BlockControls>\n <InspectorControls>\n <PanelBody\n title={ __( 'Container Settings', 'advanced-gutenberg' ) }\n >\n <AdvColorControl\n label={ __('Background', 'advanced-gutenberg') }\n value={ containerBackground }\n onChange={ (value) => setAttributes( {containerBackground: value} ) }\n />\n <AdvColorControl\n label={ __('Border Color', 'advanced-gutenberg') }\n value={ containerBorderBackground }\n onChange={ (value) => setAttributes( {containerBorderBackground: value} ) }\n />\n <RangeControl\n label={ __( 'Border Width (px)', 'advanced-gutenberg' ) }\n min={ 0 }\n max={ 40 }\n value={ containerBorderWidth }\n onChange={ (value) => setAttributes( { containerBorderWidth: value } ) }\n />\n <RangeControl\n label={ __( 'Border Radius (px)', 'advanced-gutenberg' ) }\n min={ 0 }\n max={ 200 }\n value={ containerBorderRadius }\n onChange={ (value) => setAttributes( { containerBorderRadius: value } ) }\n />\n <BaseControl\n label={ __( 'Padding', 'advanced-gutenberg' ) }\n className=\"advgb-control-header\"\n />\n <div className=\"advgb-controls-title\">\n <span>{__( 'Unit', 'advanced-gutenberg' )}</span>\n <div className=\"advgb-unit-wrapper\" key=\"unit\">\n {[ 'px', 'em', 'vh', '%' ].map( ( unit, uIdx ) => (\n <span\n className={`advgb-unit ${containerPaddingUnit === unit ? 'selected' : ''}`}\n key={uIdx}\n onClick={() => setAttributes( { containerPaddingUnit: unit } )}\n >\n {unit}\n </span>\n ) )}\n </div>\n </div>\n {\n MARGIN_PADDING_CONTROLS.map((pos, mpIdx) => (\n <RangeControl\n className=\"advgb-padding-margin-control\"\n key={mpIdx}\n beforeIcon={pos.icon}\n value={attributes['containerPadding' + pos.label]}\n min={0}\n max={180}\n onChange={( value ) => setAttributes( { ['containerPadding' + pos.label]: value } )}\n />\n ) )\n }\n </PanelBody>\n <PanelBody\n title={ __( 'Icon Settings', 'advanced-gutenberg' ) }\n initialOpen={false}\n >\n <BaseControl\n label={ __( 'Icon Library (Material Icon)', 'advanced-gutenberg' )}\n >\n <Button\n className=\"button button-large advgb-browse-icon-btn\"\n onClick={ () => {\n if(!showPopup) {\n this.togglePopup();\n }\n } }\n >\n { __( 'Icon Selection', 'advanced-gutenberg' ) }\n </Button>\n </BaseControl>\n <AdvColorControl\n label={ __( 'Icon Color', 'advanced-gutenberg' ) }\n value={ iconColor }\n onChange={ (value) => setAttributes( {iconColor: value} ) }\n />\n <RangeControl\n label={ __( 'Icon Size (px)', 'advanced-gutenberg' ) }\n value={iconSize}\n min={1}\n max={200}\n onChange={( value ) => setAttributes( { iconSize: value } )}\n />\n <AdvColorControl\n label={ __('Background', 'advanced-gutenberg') }\n value={ iconBackground }\n onChange={ (value) => setAttributes( {iconBackground: value} ) }\n />\n <AdvColorControl\n label={ __('Border Color', 'advanced-gutenberg') }\n value={ iconBorderBackground }\n onChange={ (value) => setAttributes( {iconBorderBackground: value} ) }\n />\n <RangeControl\n label={ __( 'Border Width (px)', 'advanced-gutenberg' ) }\n min={ 0 }\n max={ 40 }\n value={ iconBorderWidth }\n onChange={ (value) => setAttributes( { iconBorderWidth: value } ) }\n />\n <RangeControl\n label={ __( 'Border Radius (px)', 'advanced-gutenberg' ) }\n min={ 0 }\n max={ 200 }\n value={ iconBorderRadius }\n onChange={ (value) => setAttributes( { iconBorderRadius: value } ) }\n />\n <BaseControl\n label={ __( 'Padding', 'advanced-gutenberg' ) }\n className=\"advgb-control-header\"\n />\n <div className=\"advgb-controls-title\">\n <span>{__( 'Unit', 'advanced-gutenberg' )}</span>\n <div className=\"advgb-unit-wrapper\" key=\"unit\">\n {[ 'px', 'em', 'vh', '%' ].map( ( unit, uIdx ) => (\n <span\n className={`advgb-unit ${iconPaddingUnit === unit ? 'selected' : ''}`}\n key={uIdx}\n onClick={() => setAttributes( { iconPaddingUnit: unit } )}\n >\n {unit}\n </span>\n ) )}\n </div>\n </div>\n {\n MARGIN_PADDING_CONTROLS.map((pos, mpIdx) => (\n <RangeControl\n className=\"advgb-padding-margin-control\"\n key={mpIdx}\n beforeIcon={pos.icon}\n value={attributes['iconPadding' + pos.label]}\n min={0}\n max={180}\n onChange={( value ) => setAttributes( { ['iconPadding' + pos.label]: value } )}\n />\n ) )\n }\n <BaseControl\n label={ __( 'Margin', 'advanced-gutenberg' ) }\n className=\"advgb-control-header\"\n />\n <div className=\"advgb-controls-title\">\n <span>{__( 'Unit', 'advanced-gutenberg' )}</span>\n <div className=\"advgb-unit-wrapper\" key=\"unit\">\n {[ 'px', 'em', 'vh', '%' ].map( ( unit, uIdx ) => (\n <span\n className={`advgb-unit ${iconMarginUnit === unit ? 'selected' : ''}`}\n key={uIdx}\n onClick={() => setAttributes( { iconMarginUnit: unit } )}\n >\n {unit}\n </span>\n ) )}\n </div>\n </div>\n {\n MARGIN_PADDING_CONTROLS.map((pos, mpIdx) => (\n <RangeControl\n className=\"advgb-padding-margin-control\"\n key={mpIdx}\n beforeIcon={pos.icon}\n value={attributes['iconMargin' + pos.label]}\n min={0}\n max={180}\n onChange={( value ) => setAttributes( { ['iconMargin' + pos.label]: value } )}\n />\n ) )\n }\n </PanelBody>\n <PanelBody\n title={ __( 'Title Settings', 'advanced-gutenberg' ) }\n initialOpen={false}\n >\n <AdvColorControl\n label={ __( 'Color', 'advanced-gutenberg' ) }\n value={ titleColor }\n onChange={ (value) => setAttributes( {titleColor: value} ) }\n />\n <div className=\"advgb-controls-title\">\n <div className=\"advgb-unit-wrapper advgb-unit-2\" key=\"unit\">\n {[ 'px', 'em' ].map( ( unit, uIdx ) => (\n <span\n className={`advgb-unit ${titleSizeUnit === unit ? 'selected' : ''}`}\n key={uIdx}\n onClick={() => setAttributes( { titleSizeUnit: unit } )}\n >\n {unit}\n </span>\n ) )}\n </div>\n </div>\n <RangeControl\n label={ __( 'Font Size', 'advanced-gutenberg' ) }\n value={titleSize}\n min={ titleSizeUnit === 'px' ? 1 : 0.2 }\n max={ titleSizeUnit === 'px' ? 200 : 12.0 }\n step={ titleSizeUnit === 'px' ? 1 : 0.1 }\n onChange={( value ) => setAttributes( { titleSize: value } )}\n />\n <div className=\"advgb-controls-title\">\n <div className=\"advgb-unit-wrapper advgb-unit-2\" key=\"unit\">\n {[ 'px', 'em' ].map( ( unit, uIdx ) => (\n <span\n className={`advgb-unit ${titleLineHeightUnit === unit ? 'selected' : ''}`}\n key={uIdx}\n onClick={() => setAttributes( { titleLineHeightUnit: unit } )}\n >\n {unit}\n </span>\n ) )}\n </div>\n </div>\n <RangeControl\n label={ __( 'Line Height', 'advanced-gutenberg' ) }\n value={titleLineHeight}\n min={ titleLineHeightUnit === 'px' ? 1 : 0.2 }\n max={ titleLineHeightUnit === 'px' ? 200 : 12.0 }\n step={ titleLineHeightUnit === 'px' ? 1 : 0.1 }\n onChange={( value ) => setAttributes( { titleLineHeight: value } )}\n />\n <SelectControl\n label={ __('HTML Tag', 'advanced-gutenberg') }\n value={ titleHtmlTag }\n options={ [\n { label: __('H1', 'advanced-gutenberg'), value: 'h1' },\n { label: __('H2', 'advanced-gutenberg'), value: 'h2' },\n { label: __('H3', 'advanced-gutenberg'), value: 'h3' },\n { label: __('H4', 'advanced-gutenberg'), value: 'h4' },\n { label: __('H5', 'advanced-gutenberg'), value: 'h5' },\n { label: __('H6', 'advanced-gutenberg'), value: 'h6' },\n ] }\n onChange={ ( value ) => setAttributes( { titleHtmlTag: value } ) }\n />\n <BaseControl\n label={ __( 'Padding', 'advanced-gutenberg' ) }\n className=\"advgb-control-header\"\n />\n <div className=\"advgb-controls-title\">\n <span>{__( 'Unit', 'advanced-gutenberg' )}</span>\n <div className=\"advgb-unit-wrapper\" key=\"unit\">\n {[ 'px', 'em', 'vh', '%' ].map( ( unit, uIdx ) => (\n <span\n className={`advgb-unit ${titlePaddingUnit === unit ? 'selected' : ''}`}\n key={uIdx}\n onClick={() => setAttributes( { titlePaddingUnit: unit } )}\n >\n {unit}\n </span>\n ) )}\n </div>\n </div>\n {\n MARGIN_PADDING_CONTROLS.map((pos, mpIdx) => (\n <RangeControl\n className=\"advgb-padding-margin-control\"\n key={mpIdx}\n beforeIcon={pos.icon}\n value={attributes['titlePadding' + pos.label]}\n min={0}\n max={180}\n onChange={( value ) => setAttributes( { ['titlePadding' + pos.label]: value } )}\n />\n ) )\n }\n <BaseControl\n label={ __( 'Margin', 'advanced-gutenberg' ) }\n className=\"advgb-control-header\"\n />\n <div className=\"advgb-controls-title\">\n <span>{__( 'Unit', 'advanced-gutenberg' )}</span>\n <div className=\"advgb-unit-wrapper\" key=\"unit\">\n {[ 'px', 'em', 'vh', '%' ].map( ( unit, uIdx ) => (\n <span\n className={`advgb-unit ${titleMarginUnit === unit ? 'selected' : ''}`}\n key={uIdx}\n onClick={() => setAttributes( { titleMarginUnit: unit } )}\n >\n {unit}\n </span>\n ) )}\n </div>\n </div>\n {\n MARGIN_PADDING_CONTROLS.map((pos, mpIdx) => (\n <RangeControl\n className=\"advgb-padding-margin-control\"\n key={mpIdx}\n beforeIcon={pos.icon}\n value={attributes['titleMargin' + pos.label]}\n min={0}\n max={180}\n onChange={( value ) => setAttributes( { ['titleMargin' + pos.label]: value } )}\n />\n ) )\n }\n </PanelBody>\n <PanelBody\n title={ __( 'Text Settings', 'advanced-gutenberg' ) }\n initialOpen={false}\n >\n <AdvColorControl\n label={ __( 'Color', 'advanced-gutenberg' ) }\n value={ textColor }\n onChange={ (value) => setAttributes( {textColor: value} ) }\n />\n <div className=\"advgb-controls-title\">\n <div className=\"advgb-unit-wrapper advgb-unit-2\" key=\"unit\">\n {[ 'px', 'em' ].map( ( unit, uIdx ) => (\n <span\n className={`advgb-unit ${textSizeUnit === unit ? 'selected' : ''}`}\n key={uIdx}\n onClick={() => setAttributes( { textSizeUnit: unit } )}\n >\n {unit}\n </span>\n ) )}\n </div>\n </div>\n <RangeControl\n label={ __( 'Font Size', 'advanced-gutenberg' ) }\n value={textSize}\n min={ textSizeUnit === 'px' ? 1 : 0.2 }\n max={ textSizeUnit === 'px' ? 200 : 12.0 }\n step={ textSizeUnit === 'px' ? 1 : 0.1 }\n onChange={( value ) => setAttributes( { textSize: value } )}\n />\n <div className=\"advgb-controls-title\">\n <div className=\"advgb-unit-wrapper advgb-unit-2\" key=\"unit\">\n {[ 'px', 'em' ].map( ( unit, uIdx ) => (\n <span\n className={`advgb-unit ${textLineHeightUnit === unit ? 'selected' : ''}`}\n key={uIdx}\n onClick={() => setAttributes( { textLineHeightUnit: unit } )}\n >\n {unit}\n </span>\n ) )}\n </div>\n </div>\n <RangeControl\n label={ __( 'Line Height', 'advanced-gutenberg' ) }\n value={textLineHeight}\n min={ textLineHeightUnit === 'px' ? 1 : 0.2 }\n max={ textLineHeightUnit === 'px' ? 200 : 12.0 }\n step={ textLineHeightUnit === 'px' ? 1 : 0.1 }\n onChange={( value ) => setAttributes( { textLineHeight: value } )}\n />\n <BaseControl\n label={ __( 'Padding', 'advanced-gutenberg' ) }\n className=\"advgb-control-header\"\n />\n <div className=\"advgb-controls-title\">\n <span>{__( 'Unit', 'advanced-gutenberg' )}</span>\n <div className=\"advgb-unit-wrapper\" key=\"unit\">\n {[ 'px', 'em', 'vh', '%' ].map( ( unit, uIdx ) => (\n <span\n className={`advgb-unit ${textPaddingUnit === unit ? 'selected' : ''}`}\n key={uIdx}\n onClick={() => setAttributes( { textPaddingUnit: unit } )}\n >\n {unit}\n </span>\n ) )}\n </div>\n </div>\n {\n MARGIN_PADDING_CONTROLS.map((pos, mpIdx) => (\n <RangeControl\n className=\"advgb-padding-margin-control\"\n key={mpIdx}\n beforeIcon={pos.icon}\n value={attributes['textPadding' + pos.label]}\n min={0}\n max={180}\n onChange={( value ) => setAttributes( { ['textPadding' + pos.label]: value } )}\n />\n ) )\n }\n <BaseControl\n label={ __( 'Margin', 'advanced-gutenberg' ) }\n className=\"advgb-control-header\"\n />\n <div className=\"advgb-controls-title\">\n <span>{__( 'Unit', 'advanced-gutenberg' )}</span>\n <div className=\"advgb-unit-wrapper\" key=\"unit\">\n {[ 'px', 'em', 'vh', '%' ].map( ( unit, uIdx ) => (\n <span\n className={`advgb-unit ${textMarginUnit === unit ? 'selected' : ''}`}\n key={uIdx}\n onClick={() => setAttributes( { textMarginUnit: unit } )}\n >\n {unit}\n </span>\n ) )}\n </div>\n </div>\n {\n MARGIN_PADDING_CONTROLS.map((pos, mpIdx) => (\n <RangeControl\n className=\"advgb-padding-margin-control\"\n key={mpIdx}\n beforeIcon={pos.icon}\n value={attributes['textMargin' + pos.label]}\n min={0}\n max={180}\n onChange={( value ) => setAttributes( { ['textMargin' + pos.label]: value } )}\n />\n ) )\n }\n </PanelBody>\n </InspectorControls>\n <div className={blockWrapClass}\n style={ {\n backgroundColor: containerBackground,\n padding: containerPadding,\n border: `${containerBorderWidth}px solid ${containerBorderBackground}`,\n borderRadius: `${containerBorderRadius}px`,\n } }\n id={blockIDX}\n >\n <div className={ blockClass }>\n <div\n className=\"advgb-infobox-icon-container\"\n style={ {\n backgroundColor: iconBackground,\n padding: iconPadding,\n margin: iconMargin,\n border: `${iconBorderWidth}px solid ${iconBorderBackground}`,\n borderRadius: `${iconBorderRadius}px`,\n } }\n >\n <div className=\"advgb-infobox-icon-inner-container\">\n <i className={iconClass} style={ {color: iconColor, fontSize: iconSize, display: 'block'} }>{icon}</i>\n </div>\n </div>\n <div className=\"advgb-infobox-textcontent\">\n <RichText\n tagName={titleHtmlTag}\n className=\"advgb-infobox-title\"\n onChange={ (value) => setAttributes({ title: value}) }\n value={ title }\n style={ {\n color: titleColor,\n fontSize: titleSize+titleSizeUnit,\n lineHeight: titleLineHeight+titleLineHeightUnit,\n padding: titlePadding,\n margin: titleMargin,\n whiteSpace: 'pre-wrap'\n } }\n />\n <RichText\n tagName=\"p\"\n className=\"advgb-infobox-text\"\n onChange={ (value) => setAttributes({ text: value}) }\n value={ text }\n style={ {\n color: textColor,\n fontSize: textSize+textSizeUnit,\n lineHeight: textLineHeight+textLineHeightUnit,\n padding: textPadding,\n margin: textMargin,\n whiteSpace: 'pre-wrap'\n } }\n />\n </div>\n </div>\n {\n showPopup ?\n <IconListPopupHook\n content='iconpopup'\n closePopup={ () => {\n if(showPopup) {\n this.togglePopup();\n }\n }\n }\n onSelectIcon={ this.handleIcon }\n onSelectIconTheme={ this.handleIconTheme }\n selectedIcon={icon}\n selectedIconTheme={iconTheme}\n />\n :\n null\n }\n </div>\n </Fragment>\n );\n }\n }\n\n const blockAttrs = {\n blockIDX: {\n type: 'string',\n },\n align: {\n type: 'string',\n default: 'center'\n },\n containerBorderWidth: {\n type: 'number',\n default: 0\n },\n containerBorderRadius: {\n type: 'number',\n default: 0\n },\n containerPaddingTop: {\n type: 'number',\n default: 20\n },\n containerPaddingBottom: {\n type: 'number',\n default: 20\n },\n containerPaddingLeft: {\n type: 'number',\n default: 20\n },\n containerPaddingRight: {\n type: 'number',\n default: 20\n },\n containerPaddingUnit: {\n type: 'string',\n default: 'px',\n },\n containerBackground: {\n type: 'string',\n default: '#f5f5f5'\n },\n containerBorderBackground: {\n type: 'string',\n default: '#e8e8e8'\n },\n iconBorderWidth: {\n type: 'number',\n default: 0\n },\n iconBorderRadius: {\n type: 'number',\n default: 0\n },\n iconPaddingTop: {\n type: 'number',\n default: 0\n },\n iconPaddingBottom: {\n type: 'number',\n default: 0\n },\n iconPaddingLeft: {\n type: 'number',\n default: 0\n },\n iconPaddingRight: {\n type: 'number',\n default: 0\n },\n iconMarginTop: {\n type: 'number',\n default: 0\n },\n iconMarginBottom: {\n type: 'number',\n default: 0\n },\n iconMarginLeft: {\n type: 'number',\n default: 0\n },\n iconMarginRight: {\n type: 'number',\n default: 0\n },\n iconPaddingUnit: {\n type: 'string',\n default: 'px',\n },\n iconMarginUnit: {\n type: 'string',\n default: 'px',\n },\n iconBackground: {\n type: 'string',\n default: '#f5f5f5'\n },\n iconBorderBackground: {\n type: 'string',\n default: '#e8e8e8'\n },\n icon: {\n type: 'string',\n default: 'beenhere'\n },\n iconSize: {\n type: 'number',\n default: 70\n },\n iconColor: {\n type: 'string',\n default: '#333'\n },\n iconTheme: {\n type: 'string',\n default: 'outlined'\n },\n title: {\n type: 'string',\n default: 'Title',\n },\n titleColor: {\n type: 'string',\n default: '#333'\n },\n titleSize: {\n type: 'number'\n },\n titleSizeUnit: {\n type: 'string',\n default: 'px'\n },\n titleLineHeight: {\n type: 'number'\n },\n titleLineHeightUnit: {\n type: 'string',\n default: 'px'\n },\n titleHtmlTag: {\n type: 'string',\n default: 'h3'\n },\n titlePaddingTop: {\n type: 'number',\n default: 0\n },\n titlePaddingBottom: {\n type: 'number',\n default: 0\n },\n titlePaddingLeft: {\n type: 'number',\n default: 0\n },\n titlePaddingRight: {\n type: 'number',\n default: 0\n },\n titleMarginTop: {\n type: 'number',\n default: 5\n },\n titleMarginBottom: {\n type: 'number',\n default: 10\n },\n titleMarginLeft: {\n type: 'number',\n default: 0\n },\n titleMarginRight: {\n type: 'number',\n default: 0\n },\n titlePaddingUnit: {\n type: 'string',\n default: 'px',\n },\n titleMarginUnit: {\n type: 'string',\n default: 'px',\n },\n text: {\n type: 'string',\n default: 'Lorem ipsum dolor sit amet, consectetur adipiscing elit. Aenean diam dolor, accumsan sed rutrum vel, dapibus et leo.',\n },\n textColor: {\n type: 'string',\n default: '#333'\n },\n textSize: {\n type: 'number'\n },\n textSizeUnit: {\n type: 'string',\n default: 'px'\n },\n textLineHeight: {\n type: 'number'\n },\n textLineHeightUnit: {\n type: 'string',\n default: 'px'\n },\n textPaddingTop: {\n type: 'number',\n default: 0\n },\n textPaddingBottom: {\n type: 'number',\n default: 0\n },\n textPaddingLeft: {\n type: 'number',\n default: 0\n },\n textPaddingRight: {\n type: 'number',\n default: 0\n },\n textMarginTop: {\n type: 'number',\n default: 0\n },\n textMarginBottom: {\n type: 'number',\n default: 0\n },\n textMarginLeft: {\n type: 'number',\n default: 0\n },\n textMarginRight: {\n type: 'number',\n default: 0\n },\n textPaddingUnit: {\n type: 'string',\n default: 'px',\n },\n textMarginUnit: {\n type: 'string',\n default: 'px',\n },\n changed: {\n type: 'boolean',\n default: false,\n },\n isPreview: {\n type: 'boolean',\n default: false,\n }\n };\n\n registerBlockType( 'advgb/infobox', {\n title: __( 'Info Box - PublishPress', 'advanced-gutenberg' ),\n description: __( 'Icon block with more options and styles.', 'advanced-gutenberg' ),\n icon: {\n src: blockIcon,\n foreground: typeof advgbBlocks !== 'undefined' ? advgbBlocks.color : undefined,\n },\n category: 'advgb-category',\n keywords: [ __( 'info', 'advanced-gutenberg' ), __( 'icon', 'advanced-gutenberg') , __( 'box', 'advanced-gutenberg' ) ],\n attributes: blockAttrs,\n example: {\n attributes: {\n isPreview: true\n },\n },\n edit: InfoBoxEdit,\n save: ( { attributes } ) => {\n const {\n blockIDX,\n className,\n title,\n titleHtmlTag,\n text,\n icon,\n iconTheme,\n align,\n } = attributes;\n\n const blockWrapClass = [\n 'wp-block-advgb-infobox',\n 'advgb-infobox-wrapper',\n `has-text-align-${align}`,\n className,\n blockIDX\n ].filter( Boolean ).join( ' ' );\n\n const blockClass = [\n 'advgb-infobox-wrap',\n ].filter( Boolean ).join( ' ' );\n\n const iconClass = [\n 'material-icons',\n iconTheme !== '' && `-${iconTheme}`\n ].filter( Boolean ).join('');\n\n return (\n <Fragment>\n <div className={blockWrapClass}>\n <div className={ blockClass }>\n <div className=\"advgb-infobox-icon-container\">\n <div className=\"advgb-infobox-icon-inner-container\">\n <i className={iconClass}>{icon}</i>\n </div>\n </div>\n <div className=\"advgb-infobox-textcontent\">\n <RichText.Content\n tagName={titleHtmlTag}\n className=\"advgb-infobox-title\"\n value={ title }\n />\n <RichText.Content\n tagName=\"p\"\n className=\"advgb-infobox-text\"\n value={ text }\n />\n </div>\n </div>\n </div>\n </Fragment>\n )\n },\n deprecated: [\n {\n attributes: blockAttrs,\n save: ( { attributes } ) => {\n const {\n blockIDX,\n title,\n titleHtmlTag,\n text,\n icon,\n iconTheme,\n align,\n } = attributes;\n\n const blockWrapClass = [\n 'wp-block-advgb-infobox',\n 'advgb-infobox-wrapper',\n `has-text-align-${align}`,\n ].filter( Boolean ).join( ' ' );\n\n const blockClass = [\n 'advgb-infobox-wrap',\n ].filter( Boolean ).join( ' ' );\n\n const iconClass = [\n 'material-icons',\n iconTheme !== '' && `-${iconTheme}`\n ].filter( Boolean ).join('');\n\n return (\n <Fragment>\n <div className={blockWrapClass} id={blockIDX}>\n <div className={ blockClass }>\n <div className=\"advgb-infobox-icon-container\">\n <div className=\"advgb-infobox-icon-inner-container\">\n <i className={iconClass}>{icon}</i>\n </div>\n </div>\n <div className=\"advgb-infobox-textcontent\">\n <RichText.Content\n tagName={titleHtmlTag}\n className=\"advgb-infobox-title\"\n value={ title }\n />\n <RichText.Content\n tagName=\"p\"\n className=\"advgb-infobox-text\"\n value={ text }\n />\n </div>\n </div>\n </div>\n </Fragment>\n )\n }\n }\n ]\n });\n}) ( wp.i18n, wp.blocks, wp.element, wp.blockEditor, wp.components );\n","import {AdvColorControl} from \"../0-adv-components/components.jsx\";\n\n(function ( wpI18n, wpBlocks, wpElement, wpBlockEditor, wpComponents ) {\n wpBlockEditor = wp.blockEditor || wp.editor;\n const { __ } = wpI18n;\n const { Component, Fragment } = wpElement;\n const { registerBlockType } = wpBlocks;\n const { InspectorControls, BlockControls, RichText, PanelColorSettings, MediaUpload } = wpBlockEditor;\n const { RangeControl, PanelBody, TextControl , SelectControl, ToggleControl, Tooltip, ToolbarGroup, ToolbarButton, Placeholder } = wpComponents;\n\n const userIcon = (\n <svg fill=\"currentColor\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" xmlns=\"http://www.w3.org/2000/svg\">\n <path d=\"M12 5.9c1.16 0 2.1.94 2.1 2.1s-.94 2.1-2.1 2.1S9.9 9.16 9.9 8s.94-2.1 2.1-2.1m0 9c2.97 0 6.1 1.46 6.1 2.1v1.1H5.9V17c0-.64 3.13-2.1 6.1-2.1M12 4C9.79 4 8 5.79 8 8s1.79 4 4 4 4-1.79 4-4-1.79-4-4-4zm0 9c-2.67 0-8 1.34-8 4v3h16v-3c0-2.66-5.33-4-8-4z\"/>\n <path d=\"M0 0h24v24H0z\" fill=\"none\"/>\n </svg>\n );\n const emailIcon = (\n <svg fill=\"currentColor\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" xmlns=\"http://www.w3.org/2000/svg\">\n <path d=\"M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10h5v-2h-5c-4.34 0-8-3.66-8-8s3.66-8 8-8 8 3.66 8 8v1.43c0 .79-.71 1.57-1.5 1.57s-1.5-.78-1.5-1.57V12c0-2.76-2.24-5-5-5s-5 2.24-5 5 2.24 5 5 5c1.38 0 2.64-.56 3.54-1.47.65.89 1.77 1.47 2.96 1.47 1.97 0 3.5-1.6 3.5-3.57V12c0-5.52-4.48-10-10-10zm0 13c-1.66 0-3-1.34-3-3s1.34-3 3-3 3 1.34 3 3-1.34 3-3 3z\"/>\n <path fill=\"none\" d=\"M0 0h24v24H0z\"/>\n </svg>\n );\n const passwordIcon = (\n <svg fill=\"currentColor\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" xmlns=\"http://www.w3.org/2000/svg\">\n <g fill=\"none\">\n <path d=\"M0 0h24v24H0V0z\"/>\n <path opacity=\".87\" d=\"M0 0h24v24H0V0z\"/>\n </g>\n <path d=\"M18 8h-1V6c0-2.76-2.24-5-5-5S7 3.24 7 6v2H6c-1.1 0-2 .9-2 2v10c0 1.1.9 2 2 2h12c1.1 0 2-.9 2-2V10c0-1.1-.9-2-2-2zM9 6c0-1.66 1.34-3 3-3s3 1.34 3 3v2H9V6zm9 14H6V10h12v10zm-6-3c1.1 0 2-.9 2-2s-.9-2-2-2-2 .9-2 2 .9 2 2 2z\"/>\n </svg>\n );\n\n const previewImageData = 'data:image/png;base64,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';\n\n class LoginFormEdit extends Component {\n constructor() {\n super( ...arguments );\n this.state = {\n registerView: false,\n }\n }\n\n componentWillMount() {\n const { attributes, setAttributes } = this.props;\n const currentBlockConfig = advgbDefaultConfig['advgb-login-form'];\n\n // No override attributes of blocks inserted before\n if (attributes.changed !== true) {\n if (typeof currentBlockConfig === 'object' && currentBlockConfig !== null) {\n Object.keys(currentBlockConfig).map((attribute) => {\n if (typeof attributes[attribute] === 'boolean') {\n attributes[attribute] = !!currentBlockConfig[attribute];\n } else {\n attributes[attribute] = currentBlockConfig[attribute];\n }\n });\n }\n\n // Finally set changed attribute to true, so we don't modify anything again\n setAttributes( { changed: true } );\n }\n\n // Change view to Register form regard to initial form option\n this.setState( { registerView: attributes.formType === 'register' } );\n }\n\n componentDidMount() {\n const { clientId, attributes, setAttributes } = this.props;\n const { submitButtonId } = attributes;\n\n if (!submitButtonId) {\n setAttributes( { submitButtonId: `advgb-submit-btn-${clientId}` } )\n }\n }\n\n render() {\n const { registerView } = this.state;\n const { attributes, setAttributes } = this.props;\n const {\n formType, formWidth, redirect, redirectLink, showLogo, showInputFieldIcon,\n showRegisterLink, showLostPasswordLink, logoImg, logoID, registerLogoImg, registerLogoID,\n logoWidth, welcomeText, loginLabel, loginText, passwordText, usernameLabel, userText,\n emailLabel, emailText, rememberMeText, loginSubmitLabel, registerSubmitLabel,\n registerText, registerLinkText, registerWelcome, backToLoginText, lostPasswordText,\n headerBgColor, bgColor, textColor, inputColor, borderColor, borderStyle, borderWidth,\n submitColor, submitBgColor, submitRadius, submitPosition, submitButtonId,\n submitHoverColor, submitHoverBgColor, submitHoverShadow, submitHoverShadowH, submitHoverShadowV,\n submitHoverShadowBlur, submitHoverShadowSpread, submitHoverOpacity, submitHoverTranSpeed,\n isPreview,\n } = attributes;\n\n const logoElm = (\n <MediaUpload\n allowedTypes={ [\"image\"] }\n onSelect={ (media) => setAttributes( {\n logoImg: media.sizes.medium ? media.sizes.medium.url : media.sizes.full.url,\n logoID: media.id\n } ) }\n value={ logoID }\n render={ ( { open } ) => (\n <div className=\"advgb-lores-form-logo-wrapper\">\n <Tooltip text={ __( 'Click to change logo', 'advanced-gutenberg' ) }>\n <span style={ {\n display: 'block',\n } }>\n <img className=\"advgb-lores-form-logo\"\n onClick={ open }\n src={ logoImg }\n alt={ 'Site logo' }\n style={ {\n width: logoWidth ? logoWidth + 'px' : undefined,\n cursor: 'pointer',\n } }\n />\n </span>\n </Tooltip>\n </div>\n ) }\n />\n );\n\n const regLogoElm = (\n <MediaUpload\n allowedTypes={ [\"image\"] }\n onSelect={ (media) => setAttributes( {\n registerLogoImg: media.sizes.medium ? media.sizes.medium.url : media.sizes.full.url,\n registerLogoID: media.id\n } ) }\n value={ registerLogoID }\n render={ ( { open } ) => (\n <div className=\"advgb-lores-form-logo-wrapper\">\n <Tooltip text={ __( 'Click to change logo', 'advanced-gutenberg' ) }>\n <span style={ {\n display: 'block',\n } }>\n <img className=\"advgb-lores-form-logo\"\n onClick={ open }\n src={ registerLogoImg }\n alt={ 'Site logo' }\n style={ {\n width: logoWidth ? logoWidth + 'px' : undefined,\n cursor: 'pointer',\n } }\n />\n </span>\n </Tooltip>\n </div>\n ) }\n />\n );\n\n const loginForm = (\n <div className=\"advgb-login-form-wrapper advgb-lores-form\">\n {!!showRegisterLink && (\n <div className=\"advgb-register-link-wrapper advgb-header-navigation\"\n style={ { backgroundColor: headerBgColor } }\n >\n <RichText\n tagName=\"span\"\n value={ registerText }\n className=\"advgb-register-text\"\n onChange={ (value) => setAttributes( { registerText: value.trim() } ) }\n style={ { color: textColor } }\n onReplace={ () => null }\n onSplit={ () => null }\n placeholder={ __( 'Text…', 'advanced-gutenberg' ) }\n keepPlaceholderOnFocus\n allowedFormats={ [ 'core/bold', 'core/italic' ] }\n />\n <RichText\n tagName=\"a\"\n value={ registerLinkText }\n className=\"advgb-register-link\"\n onChange={ (value) => setAttributes( { registerLinkText: value.trim() } ) }\n style={ { color: submitBgColor } }\n onReplace={ () => null }\n onSplit={ () => null }\n placeholder={ __( 'Register…', 'advanced-gutenberg' ) }\n keepPlaceholderOnFocus\n allowedFormats={ [ 'core/bold', 'core/italic' ] }\n />\n </div>\n ) }\n <div className=\"advgb-login-form advgb-form-inner\">\n <div className=\"advgb-lores-form-header\">\n {!!showLogo && logoElm}\n <RichText\n tagName=\"h3\"\n value={ welcomeText }\n className=\"advgb-lores-form-welcome\"\n onChange={ (value) => setAttributes( { welcomeText: value.trim() } ) }\n style={ { color: textColor } }\n placeholder={ __( 'Welcome text…', 'advanced-gutenberg' ) }\n keepPlaceholderOnFocus\n allowedFormats={ [ 'core/bold', 'core/italic' ] }\n />\n </div>\n <div className=\"advgb-lores-field advgb-login-user\">\n <div className=\"advgb-lores-field-label\">\n <RichText\n tagName=\"label\"\n value={ loginText }\n onChange={ (value) => setAttributes( { loginText: value.trim() } ) }\n style={ { color: textColor } }\n onReplace={ () => null }\n onSplit={ () => null }\n placeholder={ __( 'Username label…', 'advanced-gutenberg' ) }\n keepPlaceholderOnFocus\n allowedFormats={ [ 'core/bold', 'core/italic' ] }\n />\n </div>\n <div className=\"advgb-lores-field-input\"\n style={ {\n backgroundColor: bgColor,\n color: inputColor,\n borderBottomColor: borderColor,\n borderStyle: borderStyle,\n borderWidth: borderWidth,\n } }\n >\n {!!showInputFieldIcon && (\n <span className=\"advgb-lores-input-icon\"\n style={ { color: textColor } }\n >\n { emailIcon }\n </span>\n ) }\n <input type=\"text\" disabled={ true }\n className=\"advgb-lores-input\"\n style={ { color: inputColor } }\n value={ loginLabel ? loginLabel : 'user@email.com' }\n />\n </div>\n </div>\n <div className=\"advgb-lores-field advgb-login-password\">\n <div className=\"advgb-lores-field-label\">\n <RichText\n tagName=\"label\"\n value={ passwordText }\n onChange={ (value) => setAttributes( { passwordText: value.trim() } ) }\n style={ { color: textColor } }\n onReplace={ () => null }\n onSplit={ () => null }\n placeholder={ __( 'Password label…', 'advanced-gutenberg' ) }\n keepPlaceholderOnFocus\n allowedFormats={ [ 'core/bold', 'core/italic' ] }\n />\n </div>\n <div className=\"advgb-lores-field-input\"\n style={ {\n backgroundColor: bgColor,\n color: inputColor,\n borderBottomColor: borderColor,\n borderStyle: borderStyle,\n borderWidth: borderWidth,\n } }\n >\n {!!showInputFieldIcon && (\n <span className=\"advgb-lores-input-icon\"\n style={ { color: textColor } }\n >\n { passwordIcon }\n </span>\n ) }\n <input type=\"password\" disabled={ true }\n className=\"advgb-lores-input\"\n style={ { color: inputColor } }\n value=\"password\"\n />\n </div>\n </div>\n <div className={`advgb-lores-field advgb-lores-submit-wrapper advgb-submit-align-${submitPosition}`}>\n <label htmlFor=\"rememberme\" className=\"remember-me-label\">\n <input type=\"checkbox\"\n checked={ true }\n className=\"advgb-lores-checkbox\"\n style={ { color: submitBgColor } }\n />\n <div className=\"remember-me-switch\" style={ { color: submitBgColor } }>\n <span>\n <RichText\n tagName=\"span\"\n value={ rememberMeText }\n onChange={ (value) => setAttributes( { passwordText: value.trim() } ) }\n style={ { color: textColor } }\n onReplace={ () => null }\n onSplit={ () => null }\n placeholder={ __( 'Remember me…', 'advanced-gutenberg' ) }\n keepPlaceholderOnFocus\n allowedFormats={ [ 'core/bold', 'core/italic' ] }\n />\n </span>\n </div>\n </label>\n <div className=\"advgb-lores-submit advgb-login-submit\">\n <span className={`advgb-lores-submit-button ${submitButtonId}`}\n style={ {\n borderColor: submitColor,\n color: submitColor,\n backgroundColor: submitBgColor,\n borderRadius: submitRadius,\n } }\n >\n <RichText\n tagName=\"span\"\n value={ loginSubmitLabel }\n onChange={ (value) => setAttributes( { loginSubmitLabel: value.trim() } ) }\n onReplace={ () => null }\n onSplit={ () => null }\n placeholder={ __( 'Login…', 'advanced-gutenberg' ) }\n keepPlaceholderOnFocus\n allowedFormats={ [ 'core/bold', 'core/italic' ] }\n />\n </span>\n </div>\n </div>\n {!!showLostPasswordLink && (\n <div className=\"advgb-lores-field advgb-lost-password-field\">\n <div className=\"advgb-lost-password\">\n <RichText\n tagName=\"a\"\n value={ lostPasswordText }\n className=\"advgb-lost-password-link\"\n onChange={ (value) => setAttributes( { lostPasswordText: value.trim() } ) }\n style={ { color: submitBgColor } }\n onReplace={ () => null }\n onSplit={ () => null }\n placeholder={ __( 'Lost password…', 'advanced-gutenberg' ) }\n keepPlaceholderOnFocus\n allowedFormats={ [ 'core/bold', 'core/italic' ] }\n />\n </div>\n </div>\n ) }\n </div>\n </div>\n );\n\n const registerForm = (\n <div className=\"advgb-register-form-wrapper advgb-lores-form\">\n {!!showRegisterLink && (\n <div className=\"advgb-header-navigation advgb-back-to-login\"\n style={ { backgroundColor: headerBgColor } }\n >\n <div className=\"advgb-back-to-login-link\"\n style={ { color: submitBgColor } }\n >\n <RichText\n tagName=\"span\"\n value={ backToLoginText }\n className=\"advgb-register-text\"\n onChange={ (value) => setAttributes( { backToLoginText: value.trim() } ) }\n style={ { color: submitBgColor } }\n onReplace={ () => null }\n onSplit={ () => null }\n placeholder={ __( 'Back…', 'advanced-gutenberg' ) }\n keepPlaceholderOnFocus\n allowedFormats={ [ 'core/bold', 'core/italic' ] }\n />\n </div>\n </div>\n ) }\n <div className=\"advgb-register-form advgb-form-inner\">\n <div className=\"advgb-lores-form-header\">\n {!!showLogo && regLogoElm}\n <RichText\n tagName=\"h3\"\n value={ registerWelcome }\n className=\"advgb-lores-form-welcome\"\n onChange={ (value) => setAttributes( { registerWelcome: value.trim() } ) }\n style={ { color: textColor } }\n placeholder={ __( 'Register…', 'advanced-gutenberg' ) }\n keepPlaceholderOnFocus\n allowedFormats={ [ 'core/bold', 'core/italic' ] }\n />\n </div>\n <div className=\"advgb-lores-field advgb-register-username\">\n <div className=\"advgb-lores-field-label\">\n <RichText\n tagName=\"label\"\n value={ userText }\n onChange={ (value) => setAttributes( { userText: value.trim() } ) }\n style={ { color: textColor } }\n onReplace={ () => null }\n onSplit={ () => null }\n placeholder={ __( 'Username label…', 'advanced-gutenberg' ) }\n keepPlaceholderOnFocus\n allowedFormats={ [ 'core/bold', 'core/italic' ] }\n />\n </div>\n <div className=\"advgb-lores-field-input\"\n style={ {\n backgroundColor: bgColor,\n color: inputColor,\n borderBottomColor: borderColor,\n borderStyle: borderStyle,\n borderWidth: borderWidth,\n } }\n >\n {!!showInputFieldIcon && (\n <span className=\"advgb-lores-input-icon\"\n style={ { color: textColor } }\n >\n { userIcon }\n </span>\n ) }\n <input type=\"text\" disabled={ true }\n className=\"advgb-lores-input\"\n style={ { color: inputColor } }\n value={ usernameLabel ? usernameLabel : 'username' }\n />\n </div>\n </div>\n <div className=\"advgb-lores-field advgb-register-email\">\n <div className=\"advgb-lores-field-label\">\n <RichText\n tagName=\"label\"\n value={ emailText }\n onChange={ (value) => setAttributes( { emailText: value.trim() } ) }\n style={ { color: textColor } }\n onReplace={ () => null }\n onSplit={ () => null }\n placeholder={ __( 'Email label…', 'advanced-gutenberg' ) }\n keepPlaceholderOnFocus\n allowedFormats={ [ 'core/bold', 'core/italic' ] }\n />\n </div>\n <div className=\"advgb-lores-field-input\"\n style={ {\n backgroundColor: bgColor,\n color: inputColor,\n borderBottomColor: borderColor,\n borderStyle: borderStyle,\n borderWidth: borderWidth,\n } }\n >\n {!!showInputFieldIcon && (\n <span className=\"advgb-lores-input-icon\"\n style={ { color: textColor } }\n >\n { emailIcon }\n </span>\n ) }\n <input type=\"text\" disabled={ true }\n className=\"advgb-lores-input\"\n style={ { color: inputColor } }\n value={ emailLabel ? emailLabel : 'user@email.com' }\n />\n </div>\n </div>\n <div className={`advgb-lores-field advgb-lores-submit-wrapper advgb-submit-align-${submitPosition}`}>\n <div className=\"advgb-lores-submit advgb-register-submit\">\n <span className={`advgb-lores-submit-button ${submitButtonId}`}\n style={ {\n borderColor: submitColor,\n color: submitColor,\n backgroundColor: submitBgColor,\n borderRadius: submitRadius,\n } }\n >\n <RichText\n tagName=\"span\"\n value={ registerSubmitLabel }\n onChange={ (value) => setAttributes( { registerSubmitLabel: value.trim() } ) }\n onReplace={ () => null }\n onSplit={ () => null }\n placeholder={ __( 'Register…', 'advanced-gutenberg' ) }\n keepPlaceholderOnFocus\n allowedFormats={ [ 'core/bold', 'core/italic' ] }\n />\n </span>\n </div>\n </div>\n </div>\n </div>\n );\n\n return (\n isPreview ?\n <img alt={__('Login/Register Form', 'advanced-gutenberg')} width='100%' src={previewImageData}/>\n :\n <Fragment>\n <BlockControls>\n <ToolbarGroup label={ __( 'Options', 'advanced-gutenberg' ) }>\n <ToolbarButton\n icon=\"image-flip-horizontal\"\n label={ __( 'Switch View', 'advanced-gutenberg' ) }\n onClick={ () => this.setState( { registerView: !registerView } ) }\n />\n </ToolbarGroup>\n </BlockControls>\n <InspectorControls>\n <PanelBody title={ __( 'Form State', 'advanced-gutenberg' ) }>\n <SelectControl\n label={ __( 'Initial Form', 'advanced-gutenberg' ) }\n help={ __( 'Form that show on load.', 'advanced-gutenberg' ) }\n value={ formType }\n options={ [\n { label: __( 'Login', 'advanced-gutenberg' ), value: 'login' },\n { label: __( 'Register', 'advanced-gutenberg' ), value: 'register' },\n ] }\n onChange={ (value) => {\n setAttributes( { formType: value } );\n this.setState( { registerView: value === 'register' } );\n } }\n />\n <SelectControl\n label={ __( 'Redirect After Login', 'advanced-gutenberg' ) }\n value={ redirect }\n options={ [\n { label: __( 'Home', 'advanced-gutenberg' ), value: 'home' },\n { label: __( 'Dashboard', 'advanced-gutenberg' ), value: 'dashboard' },\n { label: __( 'Custom', 'advanced-gutenberg' ), value: 'custom' },\n ] }\n onChange={ (value) => setAttributes( { redirect: value } ) }\n />\n {redirect === 'custom' && (\n <TextControl\n label={ __( 'Custom redirect link', 'advanced-gutenberg' ) }\n value={ redirectLink }\n onChange={ (value) => setAttributes( { redirectLink: value } ) }\n />\n ) }\n <RangeControl\n label={ __( 'Form Width (px)', 'advanced-gutenberg' ) }\n value={ formWidth }\n onChange={ ( value ) => setAttributes( { formWidth: value } ) }\n min={ 300 }\n max={ 1500 }\n />\n <ToggleControl\n label={ __( 'Show Logo', 'advanced-gutenberg' ) }\n checked={ !!showLogo }\n onChange={ () => setAttributes( { showLogo: !showLogo } ) }\n />\n {!!showLogo && (\n <RangeControl\n label={ __( 'Logo Width (px)', 'advanced-gutenberg' ) }\n value={ logoWidth }\n onChange={ ( value ) => setAttributes( { logoWidth: value } ) }\n min={ 100 }\n max={ 1500 }\n />\n ) }\n <ToggleControl\n label={ __( 'Show input field icon', 'advanced-gutenberg' ) }\n checked={ !!showInputFieldIcon }\n onChange={ () => setAttributes( { showInputFieldIcon: !showInputFieldIcon } ) }\n />\n <ToggleControl\n label={ __( 'Show register/header link', 'advanced-gutenberg' ) }\n checked={ !!showRegisterLink }\n onChange={ () => setAttributes( { showRegisterLink: !showRegisterLink } ) }\n />\n {!!showRegisterLink && (\n <PanelColorSettings\n title={ __( 'Header Color', 'advanced-gutenberg' ) }\n initialOpen={ false }\n colorSettings={ [\n {\n label: __( 'Header color', 'advanced-gutenberg' ),\n value: headerBgColor,\n onChange: (value) => setAttributes( { headerBgColor: value } ),\n },\n ] }\n />\n ) }\n <ToggleControl\n label={ __( 'Show lost password link', 'advanced-gutenberg' ) }\n checked={ !!showLostPasswordLink }\n onChange={ () => setAttributes( { showLostPasswordLink: !showLostPasswordLink } ) }\n />\n </PanelBody>\n <PanelBody title={ __( 'Input placeholder', 'advanced-gutenberg' ) } initialOpen={ false }>\n <TextControl\n label={ __( 'Login input placeholder', 'advanced-gutenberg' ) }\n value={ loginLabel }\n onChange={ (value) => setAttributes( { loginLabel: value } ) }\n />\n <TextControl\n label={ __( 'Username input placeholder', 'advanced-gutenberg' ) }\n help={ __( 'Use in register form', 'advanced-gutenberg' ) }\n value={ usernameLabel }\n onChange={ (value) => setAttributes( { usernameLabel: value } ) }\n />\n <TextControl\n label={ __( 'Email input placeholder', 'advanced-gutenberg' ) }\n help={ __( 'Use in register form', 'advanced-gutenberg' ) }\n value={ emailLabel }\n onChange={ (value) => setAttributes( { emailLabel: value } ) }\n />\n </PanelBody>\n <PanelColorSettings\n title={ __( 'Text/Input Color', 'advanced-gutenberg' ) }\n initialOpen={ false }\n colorSettings={ [\n {\n label: __( 'Input background color', 'advanced-gutenberg' ),\n value: bgColor,\n onChange: (value) => setAttributes( { bgColor: value } ),\n },\n {\n label: __( 'Input color', 'advanced-gutenberg' ),\n value: inputColor,\n onChange: (value) => setAttributes( { inputColor: value } ),\n },\n {\n label: __( 'Text color', 'advanced-gutenberg' ),\n value: textColor,\n onChange: (value) => setAttributes( { textColor: value } ),\n },\n ] }\n />\n <PanelBody title={ __( 'Border Settings', 'advanced-gutenberg' ) } initialOpen={ false }>\n <PanelColorSettings\n title={ __( 'Border Color', 'advanced-gutenberg' ) }\n initialOpen={ false }\n colorSettings={ [\n {\n label: __( 'Border color', 'advanced-gutenberg' ),\n value: borderColor,\n onChange: (value) => setAttributes( { borderColor: value } ),\n },\n ] }\n />\n <SelectControl\n label={ __( 'Border Style', 'advanced-gutenberg' ) }\n value={ borderStyle }\n options={ [\n { label: __( 'Solid', 'advanced-gutenberg' ), value: 'solid' },\n { label: __( 'Dashed', 'advanced-gutenberg' ), value: 'dashed' },\n { label: __( 'Dotted', 'advanced-gutenberg' ), value: 'dotted' },\n ] }\n onChange={ (value) => setAttributes( { borderStyle: value } ) }\n />\n <RangeControl\n label={ __( 'Border width', 'advanced-gutenberg' ) }\n value={ borderWidth }\n onChange={ (value) => setAttributes( { borderWidth: value } ) }\n min={ 0 }\n max={ 10 }\n />\n </PanelBody>\n <PanelBody title={ __( 'Submit Button Settings', 'advanced-gutenberg' ) }>\n <AdvColorControl\n label={ __('Border and Text', 'advanced-gutenberg') }\n value={ submitColor }\n onChange={ (value) => setAttributes( { submitColor: value } ) }\n />\n <AdvColorControl\n label={ __('Background', 'advanced-gutenberg') }\n value={ submitBgColor }\n onChange={ (value) => setAttributes({submitBgColor: value}) }\n />\n <RangeControl\n label={ __( 'Button border radius', 'advanced-gutenberg' ) }\n value={ submitRadius }\n onChange={ (value) => setAttributes( { submitRadius: value } ) }\n min={ 0 }\n max={ 50 }\n />\n <SelectControl\n label={ __( 'Button position', 'advanced-gutenberg' ) }\n value={ submitPosition }\n options={ [\n { label: __( 'Center', 'advanced-gutenberg' ), value: 'center' },\n { label: __( 'Left', 'advanced-gutenberg' ), value: 'left' },\n { label: __( 'Right', 'advanced-gutenberg' ), value: 'right' },\n ] }\n onChange={ (value) => setAttributes( { submitPosition: value } ) }\n />\n </PanelBody>\n <PanelBody title={ __( 'Submit Button Hover', 'advanced-gutenberg' ) } initialOpen={false}>\n <PanelColorSettings\n title={ __( 'Hover Colors', 'advanced-gutenberg' ) }\n initialOpen={ false }\n colorSettings={ [\n {\n label: __( 'Background color', 'advanced-gutenberg' ),\n value: submitHoverBgColor,\n onChange: (value) => setAttributes( { submitHoverBgColor: value } ),\n },\n {\n label: __( 'Text color', 'advanced-gutenberg' ),\n value: submitHoverColor,\n onChange: (value) => setAttributes( { submitHoverColor: value } ),\n },\n {\n label: __( 'Shadow color', 'advanced-gutenberg' ),\n value: submitHoverShadow,\n onChange: (value) => setAttributes( { submitHoverShadow: value } ),\n },\n ] }\n />\n <PanelBody title={ __( 'Shadow', 'advanced-gutenberg' ) } initialOpen={false}>\n <RangeControl\n label={ __('Opacity (%)', 'advanced-gutenberg') }\n value={ submitHoverOpacity }\n onChange={ ( value ) => setAttributes( { submitHoverOpacity: value } ) }\n min={ 0 }\n max={ 100 }\n />\n <RangeControl\n label={ __('Transition speed (ms)', 'advanced-gutenberg') }\n value={ submitHoverTranSpeed || '' }\n onChange={ ( value ) => setAttributes( { submitHoverTranSpeed: value } ) }\n min={ 0 }\n max={ 3000 }\n />\n <RangeControl\n label={ __( 'Shadow H offset', 'advanced-gutenberg' ) }\n value={ submitHoverShadowH || '' }\n onChange={ ( value ) => setAttributes( { submitHoverShadowH: value } ) }\n min={ -50 }\n max={ 50 }\n />\n <RangeControl\n label={ __( 'Shadow V offset', 'advanced-gutenberg' ) }\n value={ submitHoverShadowV || '' }\n onChange={ ( value ) => setAttributes( { submitHoverShadowV: value } ) }\n min={ -50 }\n max={ 50 }\n />\n <RangeControl\n label={ __( 'Shadow blur', 'advanced-gutenberg' ) }\n value={ submitHoverShadowBlur || '' }\n onChange={ ( value ) => setAttributes( { submitHoverShadowBlur: value } ) }\n min={ 0 }\n max={ 50 }\n />\n <RangeControl\n label={ __( 'Shadow spread', 'advanced-gutenberg' ) }\n value={ submitHoverShadowSpread || '' }\n onChange={ ( value ) => setAttributes( { submitHoverShadowSpread: value } ) }\n min={ 0 }\n max={ 50 }\n />\n </PanelBody>\n </PanelBody>\n {(typeof advgbBlocks !== 'undefined' && !parseInt(advgbBlocks.captchaEnabled)) && (\n <PanelBody title={ __( 'Notice', 'advanced-gutenberg' ) }>\n <p style={ { fontStyle: 'italic' } }>\n { __( 'We strongly recommend to enable Google reCAPTCHA to avoid spam.', 'advanced-gutenberg' ) }\n <br/><a href={advgbBlocks.config_url + '&tab=recaptcha'} target=\"_blank\">{ __( 'You can enable it in Settings', 'advanced-gutenberg' ) }</a>\n </p>\n </PanelBody>\n ) }\n </InspectorControls>\n <div className=\"advgb-lores-form-wrapper\" style={ { width: formWidth } }>\n {!registerView\n ? loginForm\n : (typeof advgbBlocks !== 'undefined' && !parseInt(advgbBlocks.registerEnabled))\n ? (\n <Placeholder\n icon={userIcon}\n label={ __( 'Registration Form', 'advanced-gutenberg' ) }\n instructions={ __( 'Registration for your website is currently disabled, enable it in WordPress General settings to use registration form', 'advanced-gutenberg' ) }\n />\n )\n : registerForm\n }\n <style>\n {`.${submitButtonId}:hover {\n color: ${submitHoverColor} !important;\n background-color: ${submitHoverBgColor} !important;\n box-shadow: ${submitHoverShadowH}px ${submitHoverShadowV}px ${submitHoverShadowBlur}px ${submitHoverShadowSpread}px ${submitHoverShadow};\n transition: all ${submitHoverTranSpeed}s ease;\n opacity: ${submitHoverOpacity/100}\n }`}\n </style>\n </div>\n </Fragment>\n )\n }\n }\n\n const loginFormBlockIcon = (\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"20\" height=\"20\" viewBox=\"2 2 22 22\">\n <path fill=\"none\" d=\"M0 0h24v24H0V0z\"/>\n <path d=\"M11 12c2.21 0 4-1.79 4-4s-1.79-4-4-4-4 1.79-4 4 1.79 4 4 4zm0-6c1.1 0 2 .9 2 2s-.9 2-2 2-2-.9-2-2 .9-2 2-2zM5 18c.2-.63 2.57-1.68 4.96-1.94l2.04-2c-.39-.04-.68-.06-1-.06-2.67 0-8 1.34-8 4v2h9l-2-2H5zm15.6-5.5l-5.13 5.17-2.07-2.08L12 17l3.47 3.5L22 13.91z\"/>\n </svg>\n );\n\n const blockAttrs = {\n formType: {\n type: 'string',\n default: 'login',\n },\n formWidth: {\n type: 'number',\n default: 500,\n },\n redirect: {\n type: 'string',\n default: 'home',\n },\n redirectLink: {\n type: 'string',\n },\n showLogo: {\n type: 'boolean',\n default: true,\n },\n showInputFieldIcon: {\n type: 'boolean',\n default: true,\n },\n showRegisterLink: {\n type: 'boolean',\n default: true,\n },\n showLostPasswordLink: {\n type: 'boolean',\n default: true,\n },\n logoImg: {\n type: 'string',\n default: advgbBlocks.login_logo,\n },\n logoID: {\n type: 'number',\n },\n registerLogoImg: {\n type: 'string',\n default: advgbBlocks.reg_logo,\n },\n registerLogoID: {\n type: 'number',\n },\n logoWidth: {\n type: 'number',\n default: 150,\n },\n welcomeText: {\n type: 'string',\n default: 'Welcome back',\n },\n loginLabel: {\n type: 'string',\n },\n loginText: {\n type: 'string',\n default: 'Username or Email',\n },\n passwordText: {\n type: 'string',\n default: 'Password',\n },\n usernameLabel: {\n type: 'string',\n },\n userText: {\n type: 'string',\n default: 'Username',\n },\n emailLabel: {\n type: 'string',\n },\n emailText: {\n type: 'string',\n default: 'Email',\n },\n rememberMeText: {\n type: 'string',\n default: 'Remember me',\n },\n loginSubmitLabel: {\n type: 'string',\n default: 'LOGIN',\n },\n registerSubmitLabel: {\n type: 'string',\n default: 'REGISTER',\n },\n registerText: {\n type: 'string',\n default: \"Don't have an account?\",\n },\n registerLinkText: {\n type: 'string',\n default: 'Register now',\n },\n registerWelcome: {\n type: 'string',\n default: 'Register new account',\n },\n backToLoginText: {\n type: 'string',\n default: 'Login',\n },\n lostPasswordText: {\n type: 'string',\n default: 'Lost your password?',\n },\n headerBgColor: {\n type: 'string',\n },\n bgColor: {\n type: 'string',\n },\n textColor: {\n type: 'string',\n },\n inputColor: {\n type: 'string',\n },\n borderStyle: {\n type: 'string',\n },\n borderColor: {\n type: 'string',\n },\n borderWidth: {\n type: 'number',\n },\n submitButtonId : {\n type: 'string',\n },\n submitColor: {\n type: 'string',\n },\n submitBgColor: {\n type: 'string',\n },\n submitRadius: {\n type: 'number',\n },\n submitPosition: {\n type: 'string',\n default: 'right',\n },\n submitHoverColor: {\n type: 'string',\n },\n submitHoverBgColor: {\n type: 'string',\n },\n submitHoverShadow: {\n type: 'string',\n },\n submitHoverShadowH: {\n type: 'number',\n default: 1,\n },\n submitHoverShadowV: {\n type: 'number',\n default: 1,\n },\n submitHoverShadowBlur: {\n type: 'number',\n default: 12,\n },\n submitHoverShadowSpread: {\n type: 'number',\n default: 0,\n },\n submitHoverOpacity: {\n type: 'number',\n default: 100,\n },\n submitHoverTranSpeed: {\n type: 'number',\n default: 200,\n },\n changed: {\n type: 'boolean',\n default: false,\n },\n isPreview: {\n type: 'boolean',\n default: false,\n },\n };\n\n registerBlockType( 'advgb/login-form', {\n title: __( 'Login and Register - PublishPress', 'advanced-gutenberg' ),\n description: __( 'Create a login form for your post/page.', 'advanced-gutenberg' ),\n icon: {\n src: loginFormBlockIcon,\n foreground: typeof advgbBlocks !== 'undefined' ? advgbBlocks.color : undefined,\n },\n category: 'advgb-category',\n keywords: [ __( 'accordion', 'advanced-gutenberg' ), __( 'list', 'advanced-gutenberg' ), __( 'faq', 'advanced-gutenberg' ) ],\n attributes: blockAttrs,\n example: {\n attributes: {\n isPreview: true\n },\n },\n supports: {\n anchor: true,\n\n },\n edit: LoginFormEdit,\n save: function ( { attributes } ) {\n const {\n formType, formWidth, redirect, redirectLink, showLogo, showInputFieldIcon,\n showRegisterLink, showLostPasswordLink, logoImg, registerLogoImg, logoWidth,\n welcomeText, loginLabel, loginText, passwordText, usernameLabel, userText,\n emailLabel, emailText, rememberMeText, loginSubmitLabel, registerSubmitLabel, registerText,\n registerLinkText, registerWelcome, backToLoginText, lostPasswordText,\n headerBgColor, bgColor, textColor, inputColor, borderColor, borderStyle, borderWidth,\n submitColor, submitBgColor, submitRadius, submitPosition, submitButtonId,\n } = attributes;\n\n const logoElmSave = (\n <div className=\"advgb-lores-form-logo-wrapper\">\n <span style={ {display: 'block',} }>\n <img className=\"advgb-lores-form-logo\"\n src={ logoImg }\n alt={ 'Site logo' }\n style={ {\n width: logoWidth ? logoWidth + 'px' : undefined,\n cursor: 'pointer',\n } }\n />\n </span>\n </div>\n );\n\n const regLogoElmSave = (\n <div className=\"advgb-lores-form-logo-wrapper\">\n <span style={ {display: 'block',} }>\n <img className=\"advgb-lores-form-logo\"\n src={ registerLogoImg }\n alt={ 'Site logo' }\n style={ {\n width: logoWidth ? logoWidth + 'px' : undefined,\n cursor: 'pointer',\n } }\n />\n </span>\n </div>\n );\n\n const loginFormSave = (\n <div className=\"advgb-login-form-wrapper advgb-lores-form\"\n style={ {\n display: formType === 'login' ? 'block' : 'none',\n } }\n >\n {!!showRegisterLink && (\n <div className=\"advgb-register-link-wrapper advgb-header-navigation\"\n style={ { backgroundColor: headerBgColor } }\n >\n <RichText.Content\n tagName=\"span\"\n className=\"advgb-register-text\"\n value={ registerText }\n style={ { color: textColor } }\n />\n <RichText.Content\n tagName=\"a\"\n href=\"#\"\n className=\"advgb-register-link\"\n value={ registerLinkText }\n style={ { color: submitBgColor } }\n />\n </div>\n ) }\n <form action=\"\" className=\"advgb-form-login\" method=\"post\">\n <div className=\"advgb-login-form advgb-form-inner\">\n <div className=\"advgb-lores-form-header\">\n {!!showLogo && logoElmSave}\n <RichText.Content\n tagName=\"h3\"\n className=\"advgb-lores-form-welcome\"\n value={ welcomeText }\n style={ { color: textColor } }\n />\n </div>\n <div className=\"advgb-lores-field advgb-login-user\"\n style={ { borderColor: textColor } }\n >\n <div className=\"advgb-lores-field-label\">\n <RichText.Content\n tagName=\"label\"\n htmlFor=\"advgb-login-user\"\n value={ loginText }\n style={ { color: textColor } }\n />\n </div>\n <div className=\"advgb-lores-field-input\"\n style={ {\n backgroundColor: bgColor,\n color: inputColor,\n borderBottomColor: borderColor,\n borderStyle: borderStyle,\n borderWidth: borderWidth,\n } }\n >\n {!!showInputFieldIcon && (\n <span className=\"advgb-lores-input-icon\"\n style={ { color: textColor } }\n >\n { emailIcon }\n </span>\n ) }\n <input type=\"text\"\n id=\"advgb-login-user\"\n className=\"advgb-lores-input\"\n name=\"log\"\n style={ { color: inputColor } }\n placeholder={ loginLabel ? loginLabel : 'user@email.com' }\n />\n </div>\n </div>\n <div className=\"advgb-lores-field advgb-login-password\"\n style={ { borderColor: textColor } }\n >\n <div className=\"advgb-lores-field-label\">\n <RichText.Content\n tagName=\"label\"\n htmlFor=\"advgb-login-password\"\n value={ passwordText }\n style={ { color: textColor } }\n />\n </div>\n <div className=\"advgb-lores-field-input\"\n style={ {\n backgroundColor: bgColor,\n color: inputColor,\n borderBottomColor: borderColor,\n borderStyle: borderStyle,\n borderWidth: borderWidth,\n } }\n >\n {!!showInputFieldIcon && (\n <span className=\"advgb-lores-input-icon\"\n style={ { color: textColor } }\n >\n { passwordIcon }\n </span>\n ) }\n <input type=\"password\"\n id=\"advgb-login-password\"\n className=\"advgb-lores-input\"\n name=\"pwd\"\n style={ { color: inputColor } }\n placeholder=\"password\"\n />\n </div>\n </div>\n <div className={`advgb-grecaptcha clearfix position-${submitPosition}`}/>\n <div className={`advgb-lores-field advgb-lores-submit-wrapper advgb-submit-align-${submitPosition}`}>\n <label htmlFor=\"rememberme\" className=\"remember-me-label\">\n <input type=\"checkbox\"\n value=\"forever\"\n id=\"rememberme\"\n name=\"rememberme\"\n className=\"advgb-lores-checkbox\"\n />\n <div style={ { color: submitBgColor } } className=\"remember-me-switch\">\n <RichText.Content\n tagName=\"span\"\n style={ { color: textColor } }\n value={ rememberMeText }\n />\n </div>\n </label>\n <div className=\"advgb-lores-submit advgb-login-submit\">\n <RichText.Content\n tagName=\"button\"\n value={ loginSubmitLabel }\n className={`advgb-lores-submit-button ${submitButtonId}`}\n type=\"submit\"\n name=\"wp-submit\"\n style={ {\n borderColor: submitColor,\n color: submitColor,\n backgroundColor: submitBgColor,\n borderRadius: submitRadius,\n } }\n />\n <input type=\"hidden\" name=\"redirect_to\" data-redirect={redirect} className=\"redirect_to\" value={redirectLink} />\n <input type=\"hidden\" name=\"testcookie\" value=\"1\" />\n <input type=\"hidden\" name=\"advgb_login_form\" value=\"1\" />\n </div>\n </div>\n {!!showLostPasswordLink && (\n <div className=\"advgb-lores-field advgb-lost-password-field\">\n <div className=\"advgb-lost-password\">\n <RichText.Content\n tagName=\"a\"\n href=\"#\"\n className=\"advgb-lost-password\"\n style={ { color: submitBgColor } }\n value={ lostPasswordText }\n />\n </div>\n </div>\n ) }\n </div>\n </form>\n </div>\n );\n\n const registerFormSave = (\n <div className=\"advgb-register-form-wrapper advgb-lores-form\"\n style={ {\n display: formType === 'register' ? 'block' : 'none',\n } }\n >\n {!!showRegisterLink && (\n <div className=\"advgb-header-navigation advgb-back-to-login\"\n style={ { backgroundColor: headerBgColor } }\n >\n <div className=\"advgb-back-to-login-link\"\n style={ { color: submitBgColor } }\n >\n <RichText.Content\n tagName=\"span\"\n className=\"advgb-register-text\"\n style={ { color: submitBgColor } }\n value={ backToLoginText }\n />\n </div>\n </div>\n ) }\n <form action=\"\" className=\"advgb-form-register\" method=\"post\">\n <div className=\"advgb-register-form advgb-form-inner\">\n <div className=\"advgb-lores-form-header\">\n {!!showLogo && regLogoElmSave}\n <RichText.Content\n tagName=\"h3\"\n className=\"advgb-lores-form-welcome\"\n style={ { color: textColor } }\n value={ registerWelcome }\n />\n </div>\n <div className=\"advgb-lores-field advgb-register-username\"\n style={ { borderColor: textColor } }\n >\n <div className=\"advgb-lores-field-label\">\n <RichText.Content\n tagName=\"label\"\n htmlFor=\"advgb-register-username\"\n style={ { color: textColor } }\n value={ userText }\n />\n </div>\n <div className=\"advgb-lores-field-input\"\n style={ {\n backgroundColor: bgColor,\n color: inputColor,\n borderBottomColor: borderColor,\n borderStyle: borderStyle,\n borderWidth: borderWidth,\n } }\n >\n {!!showInputFieldIcon && (\n <span className=\"advgb-lores-input-icon\"\n style={ { color: textColor } }\n >\n { userIcon }\n </span>\n ) }\n <input type=\"text\"\n id=\"advgb-register-username\"\n className=\"advgb-lores-input\"\n name=\"user_login\"\n style={ { color: inputColor } }\n placeholder={ usernameLabel ? usernameLabel : 'username' }\n />\n </div>\n </div>\n <div className=\"advgb-lores-field advgb-register-email\"\n style={ { borderColor: textColor } }\n >\n <div className=\"advgb-lores-field-label\">\n <RichText.Content\n tagName=\"label\"\n htmlFor=\"advgb-register-email\"\n style={ { color: textColor } }\n value={ emailText }\n />\n </div>\n <div className=\"advgb-lores-field-input\"\n style={ {\n backgroundColor: bgColor,\n color: inputColor,\n borderBottomColor: borderColor,\n borderStyle: borderStyle,\n borderWidth: borderWidth,\n } }\n >\n {!!showInputFieldIcon && (\n <span className=\"advgb-lores-input-icon\"\n style={ { color: textColor } }\n >\n { emailIcon }\n </span>\n ) }\n <input type=\"email\"\n id=\"advgb-register-email\"\n className=\"advgb-lores-input\"\n name=\"user_email\"\n style={ { color: inputColor } }\n placeholder={ emailLabel ? emailLabel : 'user@email.com' }\n />\n </div>\n </div>\n <div className={`advgb-grecaptcha clearfix position-${submitPosition}`}/>\n <div className={`advgb-lores-field advgb-lores-submit-wrapper advgb-submit-align-${submitPosition}`}>\n <div className=\"advgb-lores-submit advgb-register-submit\">\n <RichText.Content\n tagName=\"button\"\n value={ registerSubmitLabel }\n className={`advgb-lores-submit-button ${submitButtonId}`}\n type=\"submit\"\n name=\"wp-submit\"\n style={ {\n borderColor: submitColor,\n color: submitColor,\n backgroundColor: submitBgColor,\n borderRadius: submitRadius,\n } }\n />\n </div>\n </div>\n </div>\n </form>\n </div>\n );\n\n return (\n <div className=\"advgb-lores-form-wrapper\" style={ { width: formWidth } }>\n { loginFormSave }\n { registerFormSave }\n </div>\n );\n }\n } );\n})( wp.i18n, wp.blocks, wp.element, wp.blockEditor, wp.components );\n","(function ( wpI18n, wpBlocks, wpElement, wpBlockEditor, wpComponents ) {\n wpBlockEditor = wp.blockEditor || wp.editor;\n const { __ } = wpI18n;\n const { Component, Fragment } = wpElement;\n const { registerBlockType } = wpBlocks;\n const { InspectorControls, MediaUpload } = wpBlockEditor;\n const { PanelBody, TextControl, TextareaControl, RangeControl, SelectControl, ToggleControl, BaseControl, Button, Placeholder, Spinner } = wpComponents;\n\n let mapWillUpdate = null;\n const mapBlockIcon = (\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"20\" height=\"20\" viewBox=\"2 2 22 22\" className=\"dashicon\">\n <path d=\"M20.5 3l-.16.03L15 5.1 9 3 3.36 4.9c-.21.07-.36.25-.36.48V20.5c0 .28.22.5.5.5l.16-.03L9 18.9l6 2.1 5.64-1.9c.21-.07.36-.25.36-.48V3.5c0-.28-.22-.5-.5-.5zM15 19l-6-2.11V5l6 2.11V19z\"/>\n <path d=\"M0 0h24v24H0z\" fill=\"none\"/>\n </svg>\n );\n const MAP_STYLES = {\n silver: [\n {\n \"elementType\": \"geometry\",\n \"stylers\": [\n {\n \"color\": \"#f5f5f5\"\n }\n ]\n },\n {\n \"elementType\": \"labels.icon\",\n \"stylers\": [\n {\n \"visibility\": \"off\"\n }\n ]\n },\n {\n \"elementType\": \"labels.text.fill\",\n \"stylers\": [\n {\n \"color\": \"#616161\"\n }\n ]\n },\n {\n \"elementType\": \"labels.text.stroke\",\n \"stylers\": [\n {\n \"color\": \"#f5f5f5\"\n }\n ]\n },\n {\n \"featureType\": \"administrative.land_parcel\",\n \"elementType\": \"labels.text.fill\",\n \"stylers\": [\n {\n \"color\": \"#bdbdbd\"\n }\n ]\n },\n {\n \"featureType\": \"poi\",\n \"elementType\": \"geometry\",\n \"stylers\": [\n {\n \"color\": \"#eeeeee\"\n }\n ]\n },\n {\n \"featureType\": \"poi\",\n \"elementType\": \"labels.text.fill\",\n \"stylers\": [\n {\n \"color\": \"#757575\"\n }\n ]\n },\n {\n \"featureType\": \"poi.park\",\n \"elementType\": \"geometry\",\n \"stylers\": [\n {\n \"color\": \"#e5e5e5\"\n }\n ]\n },\n {\n \"featureType\": \"poi.park\",\n \"elementType\": \"labels.text.fill\",\n \"stylers\": [\n {\n \"color\": \"#9e9e9e\"\n }\n ]\n },\n {\n \"featureType\": \"road\",\n \"elementType\": \"geometry\",\n \"stylers\": [\n {\n \"color\": \"#ffffff\"\n }\n ]\n },\n {\n \"featureType\": \"road.arterial\",\n \"elementType\": \"labels.text.fill\",\n \"stylers\": [\n {\n \"color\": \"#757575\"\n }\n ]\n },\n {\n \"featureType\": \"road.highway\",\n \"elementType\": \"geometry\",\n \"stylers\": [\n {\n \"color\": \"#dadada\"\n }\n ]\n },\n {\n \"featureType\": \"road.highway\",\n \"elementType\": \"labels.text.fill\",\n \"stylers\": [\n {\n \"color\": \"#616161\"\n }\n ]\n },\n {\n \"featureType\": \"road.local\",\n \"elementType\": \"labels.text.fill\",\n \"stylers\": [\n {\n \"color\": \"#9e9e9e\"\n }\n ]\n },\n {\n \"featureType\": \"transit.line\",\n \"elementType\": \"geometry\",\n \"stylers\": [\n {\n \"color\": \"#e5e5e5\"\n }\n ]\n },\n {\n \"featureType\": \"transit.station\",\n \"elementType\": \"geometry\",\n \"stylers\": [\n {\n \"color\": \"#eeeeee\"\n }\n ]\n },\n {\n \"featureType\": \"water\",\n \"elementType\": \"geometry\",\n \"stylers\": [\n {\n \"color\": \"#c9c9c9\"\n }\n ]\n },\n {\n \"featureType\": \"water\",\n \"elementType\": \"labels.text.fill\",\n \"stylers\": [\n {\n \"color\": \"#9e9e9e\"\n }\n ]\n }\n ],\n retro: [\n {\n \"elementType\": \"geometry\",\n \"stylers\": [\n {\n \"color\": \"#ebe3cd\"\n }\n ]\n },\n {\n \"elementType\": \"labels.text.fill\",\n \"stylers\": [\n {\n \"color\": \"#523735\"\n }\n ]\n },\n {\n \"elementType\": \"labels.text.stroke\",\n \"stylers\": [\n {\n \"color\": \"#f5f1e6\"\n }\n ]\n },\n {\n \"featureType\": \"administrative\",\n \"elementType\": \"geometry.stroke\",\n \"stylers\": [\n {\n \"color\": \"#c9b2a6\"\n }\n ]\n },\n {\n \"featureType\": \"administrative.land_parcel\",\n \"elementType\": \"geometry.stroke\",\n \"stylers\": [\n {\n \"color\": \"#dcd2be\"\n }\n ]\n },\n {\n \"featureType\": \"administrative.land_parcel\",\n \"elementType\": \"labels.text.fill\",\n \"stylers\": [\n {\n \"color\": \"#ae9e90\"\n }\n ]\n },\n {\n \"featureType\": \"landscape.natural\",\n \"elementType\": \"geometry\",\n \"stylers\": [\n {\n \"color\": \"#dfd2ae\"\n }\n ]\n },\n {\n \"featureType\": \"poi\",\n \"elementType\": \"geometry\",\n \"stylers\": [\n {\n \"color\": \"#dfd2ae\"\n }\n ]\n },\n {\n \"featureType\": \"poi\",\n \"elementType\": \"labels.text.fill\",\n \"stylers\": [\n {\n \"color\": \"#93817c\"\n }\n ]\n },\n {\n \"featureType\": \"poi.park\",\n \"elementType\": \"geometry.fill\",\n \"stylers\": [\n {\n \"color\": \"#a5b076\"\n }\n ]\n },\n {\n \"featureType\": \"poi.park\",\n \"elementType\": \"labels.text.fill\",\n \"stylers\": [\n {\n \"color\": \"#447530\"\n }\n ]\n },\n {\n \"featureType\": \"road\",\n \"elementType\": \"geometry\",\n \"stylers\": [\n {\n \"color\": \"#f5f1e6\"\n }\n ]\n },\n {\n \"featureType\": \"road.arterial\",\n \"elementType\": \"geometry\",\n \"stylers\": [\n {\n \"color\": \"#fdfcf8\"\n }\n ]\n },\n {\n \"featureType\": \"road.highway\",\n \"elementType\": \"geometry\",\n \"stylers\": [\n {\n \"color\": \"#f8c967\"\n }\n ]\n },\n {\n \"featureType\": \"road.highway\",\n \"elementType\": \"geometry.stroke\",\n \"stylers\": [\n {\n \"color\": \"#e9bc62\"\n }\n ]\n },\n {\n \"featureType\": \"road.highway.controlled_access\",\n \"elementType\": \"geometry\",\n \"stylers\": [\n {\n \"color\": \"#e98d58\"\n }\n ]\n },\n {\n \"featureType\": \"road.highway.controlled_access\",\n \"elementType\": \"geometry.stroke\",\n \"stylers\": [\n {\n \"color\": \"#db8555\"\n }\n ]\n },\n {\n \"featureType\": \"road.local\",\n \"elementType\": \"labels.text.fill\",\n \"stylers\": [\n {\n \"color\": \"#806b63\"\n }\n ]\n },\n {\n \"featureType\": \"transit.line\",\n \"elementType\": \"geometry\",\n \"stylers\": [\n {\n \"color\": \"#dfd2ae\"\n }\n ]\n },\n {\n \"featureType\": \"transit.line\",\n \"elementType\": \"labels.text.fill\",\n \"stylers\": [\n {\n \"color\": \"#8f7d77\"\n }\n ]\n },\n {\n \"featureType\": \"transit.line\",\n \"elementType\": \"labels.text.stroke\",\n \"stylers\": [\n {\n \"color\": \"#ebe3cd\"\n }\n ]\n },\n {\n \"featureType\": \"transit.station\",\n \"elementType\": \"geometry\",\n \"stylers\": [\n {\n \"color\": \"#dfd2ae\"\n }\n ]\n },\n {\n \"featureType\": \"water\",\n \"elementType\": \"geometry.fill\",\n \"stylers\": [\n {\n \"color\": \"#b9d3c2\"\n }\n ]\n },\n {\n \"featureType\": \"water\",\n \"elementType\": \"labels.text.fill\",\n \"stylers\": [\n {\n \"color\": \"#92998d\"\n }\n ]\n }\n ],\n dark: [\n {\n \"elementType\": \"geometry\",\n \"stylers\": [\n {\n \"color\": \"#212121\"\n }\n ]\n },\n {\n \"elementType\": \"labels.icon\",\n \"stylers\": [\n {\n \"visibility\": \"off\"\n }\n ]\n },\n {\n \"elementType\": \"labels.text.fill\",\n \"stylers\": [\n {\n \"color\": \"#757575\"\n }\n ]\n },\n {\n \"elementType\": \"labels.text.stroke\",\n \"stylers\": [\n {\n \"color\": \"#212121\"\n }\n ]\n },\n {\n \"featureType\": \"administrative\",\n \"elementType\": \"geometry\",\n \"stylers\": [\n {\n \"color\": \"#757575\"\n }\n ]\n },\n {\n \"featureType\": \"administrative.country\",\n \"elementType\": \"labels.text.fill\",\n \"stylers\": [\n {\n \"color\": \"#9e9e9e\"\n }\n ]\n },\n {\n \"featureType\": \"administrative.land_parcel\",\n \"stylers\": [\n {\n \"visibility\": \"off\"\n }\n ]\n },\n {\n \"featureType\": \"administrative.locality\",\n \"elementType\": \"labels.text.fill\",\n \"stylers\": [\n {\n \"color\": \"#bdbdbd\"\n }\n ]\n },\n {\n \"featureType\": \"poi\",\n \"elementType\": \"labels.text.fill\",\n \"stylers\": [\n {\n \"color\": \"#757575\"\n }\n ]\n },\n {\n \"featureType\": \"poi.park\",\n \"elementType\": \"geometry\",\n \"stylers\": [\n {\n \"color\": \"#181818\"\n }\n ]\n },\n {\n \"featureType\": \"poi.park\",\n \"elementType\": \"labels.text.fill\",\n \"stylers\": [\n {\n \"color\": \"#616161\"\n }\n ]\n },\n {\n \"featureType\": \"poi.park\",\n \"elementType\": \"labels.text.stroke\",\n \"stylers\": [\n {\n \"color\": \"#1b1b1b\"\n }\n ]\n },\n {\n \"featureType\": \"road\",\n \"elementType\": \"geometry.fill\",\n \"stylers\": [\n {\n \"color\": \"#2c2c2c\"\n }\n ]\n },\n {\n \"featureType\": \"road\",\n \"elementType\": \"labels.text.fill\",\n \"stylers\": [\n {\n \"color\": \"#8a8a8a\"\n }\n ]\n },\n {\n \"featureType\": \"road.arterial\",\n \"elementType\": \"geometry\",\n \"stylers\": [\n {\n \"color\": \"#373737\"\n }\n ]\n },\n {\n \"featureType\": \"road.highway\",\n \"elementType\": \"geometry\",\n \"stylers\": [\n {\n \"color\": \"#3c3c3c\"\n }\n ]\n },\n {\n \"featureType\": \"road.highway.controlled_access\",\n \"elementType\": \"geometry\",\n \"stylers\": [\n {\n \"color\": \"#4e4e4e\"\n }\n ]\n },\n {\n \"featureType\": \"road.local\",\n \"elementType\": \"labels.text.fill\",\n \"stylers\": [\n {\n \"color\": \"#616161\"\n }\n ]\n },\n {\n \"featureType\": \"transit\",\n \"elementType\": \"labels.text.fill\",\n \"stylers\": [\n {\n \"color\": \"#757575\"\n }\n ]\n },\n {\n \"featureType\": \"water\",\n \"elementType\": \"geometry\",\n \"stylers\": [\n {\n \"color\": \"#000000\"\n }\n ]\n },\n {\n \"featureType\": \"water\",\n \"elementType\": \"labels.text.fill\",\n \"stylers\": [\n {\n \"color\": \"#3d3d3d\"\n }\n ]\n }\n ],\n night: [\n {\n \"elementType\": \"geometry\",\n \"stylers\": [\n {\n \"color\": \"#242f3e\"\n }\n ]\n },\n {\n \"elementType\": \"labels.text.fill\",\n \"stylers\": [\n {\n \"color\": \"#746855\"\n }\n ]\n },\n {\n \"elementType\": \"labels.text.stroke\",\n \"stylers\": [\n {\n \"color\": \"#242f3e\"\n }\n ]\n },\n {\n \"featureType\": \"administrative.locality\",\n \"elementType\": \"labels.text.fill\",\n \"stylers\": [\n {\n \"color\": \"#d59563\"\n }\n ]\n },\n {\n \"featureType\": \"poi\",\n \"elementType\": \"labels.text.fill\",\n \"stylers\": [\n {\n \"color\": \"#d59563\"\n }\n ]\n },\n {\n \"featureType\": \"poi.park\",\n \"elementType\": \"geometry\",\n \"stylers\": [\n {\n \"color\": \"#263c3f\"\n }\n ]\n },\n {\n \"featureType\": \"poi.park\",\n \"elementType\": \"labels.text.fill\",\n \"stylers\": [\n {\n \"color\": \"#6b9a76\"\n }\n ]\n },\n {\n \"featureType\": \"road\",\n \"elementType\": \"geometry\",\n \"stylers\": [\n {\n \"color\": \"#38414e\"\n }\n ]\n },\n {\n \"featureType\": \"road\",\n \"elementType\": \"geometry.stroke\",\n \"stylers\": [\n {\n \"color\": \"#212a37\"\n }\n ]\n },\n {\n \"featureType\": \"road\",\n \"elementType\": \"labels.text.fill\",\n \"stylers\": [\n {\n \"color\": \"#9ca5b3\"\n }\n ]\n },\n {\n \"featureType\": \"road.highway\",\n \"elementType\": \"geometry\",\n \"stylers\": [\n {\n \"color\": \"#746855\"\n }\n ]\n },\n {\n \"featureType\": \"road.highway\",\n \"elementType\": \"geometry.stroke\",\n \"stylers\": [\n {\n \"color\": \"#1f2835\"\n }\n ]\n },\n {\n \"featureType\": \"road.highway\",\n \"elementType\": \"labels.text.fill\",\n \"stylers\": [\n {\n \"color\": \"#f3d19c\"\n }\n ]\n },\n {\n \"featureType\": \"transit\",\n \"elementType\": \"geometry\",\n \"stylers\": [\n {\n \"color\": \"#2f3948\"\n }\n ]\n },\n {\n \"featureType\": \"transit.station\",\n \"elementType\": \"labels.text.fill\",\n \"stylers\": [\n {\n \"color\": \"#d59563\"\n }\n ]\n },\n {\n \"featureType\": \"water\",\n \"elementType\": \"geometry\",\n \"stylers\": [\n {\n \"color\": \"#17263c\"\n }\n ]\n },\n {\n \"featureType\": \"water\",\n \"elementType\": \"labels.text.fill\",\n \"stylers\": [\n {\n \"color\": \"#515c6d\"\n }\n ]\n },\n {\n \"featureType\": \"water\",\n \"elementType\": \"labels.text.stroke\",\n \"stylers\": [\n {\n \"color\": \"#17263c\"\n }\n ]\n }\n ],\n aubergine: [\n {\n \"elementType\": \"geometry\",\n \"stylers\": [\n {\n \"color\": \"#1d2c4d\"\n }\n ]\n },\n {\n \"elementType\": \"labels.text.fill\",\n \"stylers\": [\n {\n \"color\": \"#8ec3b9\"\n }\n ]\n },\n {\n \"elementType\": \"labels.text.stroke\",\n \"stylers\": [\n {\n \"color\": \"#1a3646\"\n }\n ]\n },\n {\n \"featureType\": \"administrative.country\",\n \"elementType\": \"geometry.stroke\",\n \"stylers\": [\n {\n \"color\": \"#4b6878\"\n }\n ]\n },\n {\n \"featureType\": \"administrative.land_parcel\",\n \"elementType\": \"labels.text.fill\",\n \"stylers\": [\n {\n \"color\": \"#64779e\"\n }\n ]\n },\n {\n \"featureType\": \"administrative.province\",\n \"elementType\": \"geometry.stroke\",\n \"stylers\": [\n {\n \"color\": \"#4b6878\"\n }\n ]\n },\n {\n \"featureType\": \"landscape.man_made\",\n \"elementType\": \"geometry.stroke\",\n \"stylers\": [\n {\n \"color\": \"#334e87\"\n }\n ]\n },\n {\n \"featureType\": \"landscape.natural\",\n \"elementType\": \"geometry\",\n \"stylers\": [\n {\n \"color\": \"#023e58\"\n }\n ]\n },\n {\n \"featureType\": \"poi\",\n \"elementType\": \"geometry\",\n \"stylers\": [\n {\n \"color\": \"#283d6a\"\n }\n ]\n },\n {\n \"featureType\": \"poi\",\n \"elementType\": \"labels.text.fill\",\n \"stylers\": [\n {\n \"color\": \"#6f9ba5\"\n }\n ]\n },\n {\n \"featureType\": \"poi\",\n \"elementType\": \"labels.text.stroke\",\n \"stylers\": [\n {\n \"color\": \"#1d2c4d\"\n }\n ]\n },\n {\n \"featureType\": \"poi.park\",\n \"elementType\": \"geometry.fill\",\n \"stylers\": [\n {\n \"color\": \"#023e58\"\n }\n ]\n },\n {\n \"featureType\": \"poi.park\",\n \"elementType\": \"labels.text.fill\",\n \"stylers\": [\n {\n \"color\": \"#3C7680\"\n }\n ]\n },\n {\n \"featureType\": \"road\",\n \"elementType\": \"geometry\",\n \"stylers\": [\n {\n \"color\": \"#304a7d\"\n }\n ]\n },\n {\n \"featureType\": \"road\",\n \"elementType\": \"labels.text.fill\",\n \"stylers\": [\n {\n \"color\": \"#98a5be\"\n }\n ]\n },\n {\n \"featureType\": \"road\",\n \"elementType\": \"labels.text.stroke\",\n \"stylers\": [\n {\n \"color\": \"#1d2c4d\"\n }\n ]\n },\n {\n \"featureType\": \"road.highway\",\n \"elementType\": \"geometry\",\n \"stylers\": [\n {\n \"color\": \"#2c6675\"\n }\n ]\n },\n {\n \"featureType\": \"road.highway\",\n \"elementType\": \"geometry.stroke\",\n \"stylers\": [\n {\n \"color\": \"#255763\"\n }\n ]\n },\n {\n \"featureType\": \"road.highway\",\n \"elementType\": \"labels.text.fill\",\n \"stylers\": [\n {\n \"color\": \"#b0d5ce\"\n }\n ]\n },\n {\n \"featureType\": \"road.highway\",\n \"elementType\": \"labels.text.stroke\",\n \"stylers\": [\n {\n \"color\": \"#023e58\"\n }\n ]\n },\n {\n \"featureType\": \"transit\",\n \"elementType\": \"labels.text.fill\",\n \"stylers\": [\n {\n \"color\": \"#98a5be\"\n }\n ]\n },\n {\n \"featureType\": \"transit\",\n \"elementType\": \"labels.text.stroke\",\n \"stylers\": [\n {\n \"color\": \"#1d2c4d\"\n }\n ]\n },\n {\n \"featureType\": \"transit.line\",\n \"elementType\": \"geometry.fill\",\n \"stylers\": [\n {\n \"color\": \"#283d6a\"\n }\n ]\n },\n {\n \"featureType\": \"transit.station\",\n \"elementType\": \"geometry\",\n \"stylers\": [\n {\n \"color\": \"#3a4762\"\n }\n ]\n },\n {\n \"featureType\": \"water\",\n \"elementType\": \"geometry\",\n \"stylers\": [\n {\n \"color\": \"#0e1626\"\n }\n ]\n },\n {\n \"featureType\": \"water\",\n \"elementType\": \"labels.text.fill\",\n \"stylers\": [\n {\n \"color\": \"#4e6d70\"\n }\n ]\n }\n ],\n };\n\n const previewImageData = 'data:image/png;base64,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';\n\n class AdvMap extends Component {\n constructor() {\n super( ...arguments );\n this.state = {\n currentAddress: '',\n currentMap: null,\n currentMarker: null,\n currentInfo: null,\n fetching: false,\n invalidStyle: false,\n };\n\n this.initMap = this.initMap.bind(this);\n this.fetchLocation = this.fetchLocation.bind(this);\n }\n\n componentWillMount() {\n const { attributes, setAttributes } = this.props;\n const currentBlockConfig = advgbDefaultConfig['advgb-map'];\n\n // No override attributes of blocks inserted before\n if (attributes.changed !== true) {\n if (typeof currentBlockConfig === 'object' && currentBlockConfig !== null) {\n Object.keys(currentBlockConfig).map((attribute) => {\n if (typeof attributes[attribute] === 'boolean') {\n attributes[attribute] = !!currentBlockConfig[attribute];\n } else {\n attributes[attribute] = currentBlockConfig[attribute];\n }\n });\n }\n\n // Finally set changed attribute to true, so we don't modify anything again\n setAttributes( { changed: true } );\n }\n }\n\n componentDidMount() {\n const { attributes, setAttributes, clientId } = this.props;\n\n if (!attributes.mapID) {\n setAttributes( { mapID: 'advgbmap-' + clientId } );\n }\n\n this.initMap();\n }\n\n componentDidUpdate( prevProps, prevState ) {\n const { address: prevAddr, useLatLng: prevUseLatLng } = prevProps.attributes;\n const { address, useLatLng } = this.props.attributes;\n\n if (prevAddr !== address || prevUseLatLng !== useLatLng || prevState !== this.state)\n return null;\n\n if (prevProps.attributes !== this.props.attributes) {\n clearTimeout(mapWillUpdate);\n mapWillUpdate = setTimeout(this.initMap, 1000);\n }\n }\n\n initMap() {\n if (typeof google === \"undefined\" || !this.props.attributes.mapID)\n return null;\n\n const DEFAULT_MARKER = 'https://maps.gstatic.com/mapfiles/api-3/images/spotlight-poi2.png';\n const { currentMap, currentMarker, currentInfo, invalidStyle } = this.state;\n const { mapID, lat, lng, zoom, markerTitle, markerIcon, markerDesc, mapStyle, mapStyleCustom, infoWindowDefaultShown } = this.props.attributes;\n const location = { lat: parseFloat(lat), lng: parseFloat(lng) };\n const that = this;\n const formattedDesc = markerDesc.replace(/\\n/g, '<br/>');\n let map = currentMap;\n let marker = currentMarker;\n let infoWindow = currentInfo;\n let customStyleParsed = '';\n\n if (mapStyle === 'custom') {\n try {\n customStyleParsed = JSON.parse(mapStyleCustom);\n if (invalidStyle) that.setState( { invalidStyle: false } );\n } catch (e) {\n that.setState( { invalidStyle: true } )\n }\n }\n\n if (!map) {\n map = new google.maps.Map(document.getElementById(mapID), {\n zoom: zoom,\n center: location,\n gestureHandling: 'cooperative',\n });\n this.setState( { currentMap: map } );\n }\n\n map.setCenter( location );\n map.setZoom( zoom );\n map.setOptions( { styles: !!mapStyle ? mapStyle !== 'custom' ? MAP_STYLES[mapStyle] : customStyleParsed : undefined } );\n\n if (!infoWindow) {\n infoWindow = new google.maps.InfoWindow( {\n content: `<div class=\"advgbmap-wrapper\">\n <h3 class=\"advgbmap-title\">${markerTitle}</h3>\n <p class=\"advgbmap-desc\">${formattedDesc || ''}</p>\n </div>`,\n maxWidth: 500,\n } );\n this.setState( { currentInfo: infoWindow } );\n }\n\n infoWindow.setContent(\n `<div class=\"advgbmap-wrapper\">\n <h3 class=\"advgbmap-title\">${markerTitle}</h3>\n <p class=\"advgbmap-desc\">${formattedDesc || ''}</p>\n </div>`\n );\n\n if (!marker) {\n marker = new google.maps.Marker( {\n position: location,\n map: map,\n title: markerTitle,\n draggable: true,\n animation: google.maps.Animation.DROP,\n icon: {\n url: markerIcon || DEFAULT_MARKER,\n scaledSize: new google.maps.Size( 27, 43 ),\n },\n } );\n this.setState( { currentMarker: marker } );\n }\n\n marker.setPosition( location );\n marker.setTitle( markerTitle );\n marker.setIcon( {\n url: markerIcon || DEFAULT_MARKER,\n scaledSize: new google.maps.Size( 27, 43 ),\n } );\n\n if (!!markerTitle || !!markerDesc) {\n marker.addListener('click', function() {\n infoWindow.open(map, marker);\n });\n\n if (infoWindowDefaultShown) {\n infoWindow.open(map, marker);\n }\n } else {\n infoWindow.close();\n }\n\n marker.addListener( 'dragend', function() {\n const newLocation = marker.getPosition();\n const newLat = newLocation.lat();\n const newLng = newLocation.lng();\n\n that.props.setAttributes( { lat: newLat, lng: newLng } );\n } );\n }\n\n fetchLocation() {\n if (typeof google === \"undefined\")\n return null;\n\n const { attributes, setAttributes } = this.props;\n const { address } = attributes;\n const geoCoder = new google.maps.Geocoder();\n const { OK, ZERO_RESULTS } = google.maps.GeocoderStatus;\n const that = this;\n\n if (geoCoder) {\n that.setState( { fetching: true } );\n geoCoder.geocode( { address }, function ( res, stt ) {\n if (stt === OK) {\n const { location } = res[0].geometry;\n\n setAttributes( {\n lat: location.lat().toString(),\n lng: location.lng().toString(),\n currentAddress: res[0].formatted_address,\n } );\n } else if (stt === ZERO_RESULTS) {\n setAttributes( { currentAddress: __( 'No matching address found!', 'advanced-gutenberg' ) } );\n } else {\n setAttributes( { currentAddress: stt } );\n }\n\n that.setState( { fetching: false } );\n } )\n }\n }\n\n render() {\n const { fetching, invalidStyle } = this.state;\n const { attributes, setAttributes } = this.props;\n const {\n mapID,\n useLatLng,\n address,\n currentAddress,\n lat,\n lng,\n zoom,\n height,\n markerIcon,\n markerIconID,\n markerTitle,\n markerDesc,\n mapStyle,\n mapStyleCustom,\n infoWindowDefaultShown,\n isPreview,\n } = attributes;\n\n const listStyles = Object.keys(MAP_STYLES).map( (style) => {\n return {label: style[0].toUpperCase() + style.slice(1), value: style};\n } );\n\n return (\n isPreview ?\n <img alt={__('Map', 'advanced-gutenberg')} width='100%' src={previewImageData}/>\n :\n <Fragment>\n {typeof google !== 'undefined' &&\n <InspectorControls>\n <PanelBody title={ __( 'Map settings', 'advanced-gutenberg' ) }>\n {!useLatLng &&\n <Fragment>\n <TextControl\n label={ [\n __( 'Address', 'advanced-gutenberg' ),\n <a key=\"switch-type\"\n style={ { marginLeft: '10px' } }\n onClick={ () => setAttributes( { useLatLng: !useLatLng } ) }\n >\n { __( 'Use Lat/Lng', 'advanced-gutenberg' ) }\n </a>\n ] }\n value={ address }\n placeholder={ __( 'Enter address…', 'advanced-gutenberg' ) }\n onChange={ (value) => setAttributes( { address: value } ) }\n />\n <div>\n <Button className=\"button button-large\" onClick={ this.fetchLocation }>\n { __( 'Fetch Location', 'advanced-gutenberg' ) }\n </Button>\n {fetching && <Spinner /> }\n <div style={ { margin: '10px auto' } }>\n <strong style={ { marginRight: '5px' } }>{ __( 'Current', 'advanced-gutenberg' ) }:</strong>\n <span>{ currentAddress }</span>\n </div>\n </div>\n </Fragment>\n }\n {!!useLatLng &&\n <Fragment>\n <TextControl\n label={ [\n __( 'Location', 'advanced-gutenberg' ),\n <a key=\"switch-type\"\n style={ { marginLeft: '10px' } }\n onClick={ () => setAttributes( { useLatLng: !useLatLng } ) }\n >\n { __( 'Use Address', 'advanced-gutenberg' ) }\n </a>\n ] }\n value={ lat }\n placeholder={ __( 'Enter latitude…', 'advanced-gutenberg' ) }\n title={ __( 'Latitude', 'advanced-gutenberg' ) }\n onChange={ (value) => setAttributes( { lat: value } ) }\n />\n <TextControl\n value={ lng }\n placeholder={ __( 'Enter longitude…', 'advanced-gutenberg' ) }\n title={ __( 'Longitude', 'advanced-gutenberg' ) }\n onChange={ (value) => setAttributes( { lng: value } ) }\n />\n </Fragment>\n }\n <RangeControl\n label={ __( 'Zoom level', 'advanced-gutenberg' ) }\n value={ zoom }\n min={ 0 }\n max={ 25 }\n onChange={ (value) => setAttributes( { zoom: value } ) }\n />\n <RangeControl\n label={ __( 'Height', 'advanced-gutenberg' ) }\n value={ height }\n min={ 300 }\n max={ 1000 }\n onChange={ (value) => setAttributes( { height: value } ) }\n />\n <MediaUpload\n allowedTypes={ [\"image\"] }\n value={ markerIconID }\n onSelect={ (image) => setAttributes( {\n markerIcon: image.sizes.thumbnail ? image.sizes.thumbnail.url : image.sizes.full.url,\n markerIconID: image.id\n } ) }\n render={ ( { open } ) => {\n return (\n <BaseControl label={ [\n __( 'Marker Icon (27x43 px)', 'advanced-gutenberg' ),\n markerIcon && (\n <a key=\"marker-icon-remove\"\n style={ { marginLeft: '10px', cursor: 'pointer' } }\n onClick={ () => setAttributes( {\n markerIcon: undefined,\n markerIconID: undefined,\n } ) }\n >\n { __( 'Remove', 'advanced-gutenberg' ) }\n </a>\n )\n ] }\n >\n <Button className=\"button button-large\"\n onClick={ open }\n >\n { __( 'Choose icon', 'advanced-gutenberg' ) }\n </Button>\n {!!markerIcon &&\n <img style={ { maxHeight: '30px', marginLeft: '10px' } }\n src={ markerIcon }\n alt={ __( 'Marker icon', 'advanced-gutenberg' ) }/>\n }\n </BaseControl>\n )\n } }\n />\n <TextControl\n label={ __( 'Marker Title', 'advanced-gutenberg' ) }\n value={ markerTitle }\n placeholder={ __( 'Enter custom title…', 'advanced-gutenberg' ) }\n onChange={ (value) => setAttributes( { markerTitle: value } ) }\n />\n <TextareaControl\n label={ __( 'Marker description', 'advanced-gutenberg' ) }\n value={ markerDesc }\n placeholder={ __( 'Enter custom description…', 'advanced-gutenberg' ) }\n onChange={ (value) => setAttributes( { markerDesc: value } ) }\n />\n <ToggleControl\n label={ __( 'Open marker tooltip', 'advanced-gutenberg' ) }\n checked={ infoWindowDefaultShown }\n onChange={ () => setAttributes({infoWindowDefaultShown: !infoWindowDefaultShown}) }\n />\n <SelectControl\n label={ __( 'Map styles', 'advanced-gutenberg' ) }\n help={ __( 'Custom map style is recommended for experienced users only.', 'advanced-gutenberg' ) }\n value={ mapStyle }\n onChange={ (value) => setAttributes( { mapStyle: value } ) }\n options={ [\n { label: __( 'Standard', 'advanced-gutenberg' ), value: '' },\n ...listStyles,\n { label: __( 'Custom', 'advanced-gutenberg' ), value: 'custom' },\n ] }\n />\n {mapStyle === 'custom' && (\n <TextareaControl\n label={ [\n __( 'Custom code', 'advanced-gutenberg' ),\n invalidStyle && (\n <span key=\"invalid-json\"\n style={ { fontWeight: 'bold', color: '#ff0000', marginLeft: 5 } }\n >\n { __( 'Invalid JSON', 'advanced-gutenberg' ) }\n </span>\n )\n ] }\n help={ [\n __( 'Paste your custom map styles in json format into the text field. You can create your own map styles by follow one of these links: ', 'advanced-gutenberg' ),\n <a href=\"https://mapstyle.withgoogle.com/\" target=\"_blank\" key=\"gg-map\">Google Map</a>,\n ' - ',\n <a href=\"https://snazzymaps.com/\" target=\"_blank\" key=\"snazzy-map\">Snazzy Map</a>\n ] }\n value={ mapStyleCustom }\n placeholder={ __( 'Enter your json code here…', 'advanced-gutenberg' ) }\n onChange={ (value) => setAttributes( { mapStyleCustom: value } ) }\n />\n ) }\n </PanelBody>\n </InspectorControls>\n }\n {typeof google !== 'undefined' ?\n <div className=\"advgb-map-block\">\n <div className=\"advgb-map-content\" id={ mapID } style={ { height: height } }/>\n </div>\n :\n <Placeholder\n icon={ mapBlockIcon }\n label={ __( 'No API Key Provided!', 'advanced-gutenberg' ) }\n instructions={ __( 'Opps! Look like you have not configured your Google API Key yet. ' +\n 'Add an API Key and refresh the page to start using Map Block. ' +\n 'This is a requirement enforced by Google.' ) }\n >\n <a target=\"_blank\"\n className=\"button button-large\"\n href={advgbBlocks.config_url + '&tab=maps'}\n >\n { __( 'Add Google API Key in Settings', 'advanced-gutenberg' ) }\n </a>\n </Placeholder>\n }\n </Fragment>\n )\n }\n }\n\n const mapBlockAttrs = {\n mapID: {\n type: 'string',\n },\n useLatLng: {\n type: 'boolean',\n default: false,\n },\n address: {\n type: 'string',\n default: '',\n },\n currentAddress: {\n type: 'string',\n },\n lat: {\n type: 'string',\n default: '48.858370',\n },\n lng: {\n type: 'string',\n default: '2.294471',\n },\n zoom: {\n type: 'number',\n default: 14,\n },\n height: {\n type: 'number',\n default: 350,\n },\n markerIcon: {\n type: 'string',\n },\n markerIconID: {\n type: 'number',\n },\n markerTitle: {\n type: 'string',\n default: 'Eiffel Tower',\n },\n markerDesc: {\n type: 'string',\n default: '',\n },\n changed: {\n type: 'boolean',\n default: false,\n },\n isPreview: {\n type: 'boolean',\n default: false,\n },\n };\n\n registerBlockType( 'advgb/map', {\n title: __( 'Map - PublishPress', 'advanced-gutenberg' ),\n description: __( 'Display a location using Google Maps.', 'advanced-gutenberg' ),\n icon: {\n src: mapBlockIcon,\n foreground: typeof advgbBlocks !== 'undefined' ? advgbBlocks.color : undefined,\n },\n category: 'advgb-category',\n keywords: [ __( 'google map', 'advanced-gutenberg' ), __( 'location', 'advanced-gutenberg' ), __( 'address', 'advanced-gutenberg' ) ],\n attributes: {\n ...mapBlockAttrs,\n mapStyle: {\n type: 'string',\n },\n mapStyleCustom: {\n type: 'string',\n },\n infoWindowDefaultShown: {\n type: 'boolean',\n default: true,\n },\n },\n example: {\n attributes: {\n isPreview: true\n },\n },\n supports: {\n anchor: true\n },\n edit: AdvMap,\n save: function ( { attributes } ) {\n const {\n mapID,\n lat,\n lng,\n zoom,\n height,\n markerIcon,\n markerTitle,\n markerDesc,\n mapStyle,\n mapStyleCustom,\n infoWindowDefaultShown,\n } = attributes;\n\n const formattedDesc = markerDesc.replace( /\\n/g, '<br/>' ).replace( /'/, '\\\\\\'' );\n const formattedTitle = markerTitle.replace( /'/, '\\\\\\'' );\n const DEFAULT_MARKER = 'https://maps.gstatic.com/mapfiles/api-3/images/spotlight-poi2.png';\n let mapStyleApply = MAP_STYLES[mapStyle];\n if (mapStyle === 'custom') {\n try {\n mapStyleApply = JSON.parse(mapStyleCustom);\n } catch (e) {\n mapStyleApply = '';\n }\n }\n if (mapStyleApply) {\n mapStyleApply = JSON.stringify(mapStyleApply);\n } else {\n mapStyleApply = '';\n }\n\n return (\n <div className=\"advgb-map-block\" style={ { margin: '10px auto' } }>\n <div className=\"advgb-map-content\"\n id={ mapID }\n style={ { height: height } }\n data-default={ DEFAULT_MARKER }\n data-lat={ lat }\n data-lng={ lng }\n data-zoom={ zoom }\n data-title={ formattedTitle }\n data-desc={ formattedDesc }\n data-icon={ markerIcon }\n data-shown={ infoWindowDefaultShown }\n data-style={ encodeURIComponent(mapStyleApply) }\n />\n </div>\n );\n },\n deprecated: [\n {\n attributes: {\n ...mapBlockAttrs,\n mapStyle: {\n type: 'string',\n },\n mapStyleCustom: {\n type: 'string',\n }\n },\n save: function ( { attributes } ) {\n const {\n mapID,\n lat,\n lng,\n zoom,\n height,\n markerIcon,\n markerTitle,\n markerDesc,\n mapStyle,\n mapStyleCustom,\n } = attributes;\n\n const formattedDesc = markerDesc.replace( /\\n/g, '<br/>' ).replace( /'/, '\\\\\\'' );\n const formattedTitle = markerTitle.replace( /'/, '\\\\\\'' );\n const DEFAULT_MARKER = 'https://maps.gstatic.com/mapfiles/api-3/images/spotlight-poi2.png';\n let mapStyleApply = MAP_STYLES[mapStyle];\n if (mapStyle === 'custom') {\n try {\n mapStyleApply = JSON.parse(mapStyleCustom);\n } catch (e) {\n mapStyleApply = '';\n }\n }\n if (mapStyleApply) {\n mapStyleApply = JSON.stringify(mapStyleApply);\n } else {\n mapStyleApply = '';\n }\n\n return (\n <div className=\"advgb-map-block\" style={ { margin: '10px auto' } }>\n <div className=\"advgb-map-content\"\n id={ mapID }\n style={ { height: height } }\n data-default={ DEFAULT_MARKER }\n data-lat={ lat }\n data-lng={ lng }\n data-zoom={ zoom }\n data-title={ formattedTitle }\n data-desc={ formattedDesc }\n data-icon={ markerIcon }\n data-style={ encodeURIComponent(mapStyleApply) }\n />\n </div>\n );\n },\n },\n ]\n } );\n})( wp.i18n, wp.blocks, wp.element, wp.blockEditor, wp.components );\n","(function ( wpI18n, wpBlocks, wpElement, wpBlockEditor, wpComponents ) {\n wpBlockEditor = wp.blockEditor || wp.editor;\n const { __ } = wpI18n;\n const { Component, Fragment } = wpElement;\n const { registerBlockType } = wpBlocks;\n const { InspectorControls, PanelColorSettings } = wpBlockEditor;\n const { PanelBody, RangeControl, SelectControl, TextControl } = wpComponents;\n\n const newsletterBlockIcon = (\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"20\" height=\"20\" viewBox=\"0 0 24 24\">\n <path fill=\"none\" d=\"M0 0h24v24H0V0z\"/>\n <path fill-opacity=\".9\" d=\"M12 1.95c-5.52 0-10 4.48-10 10s4.48 10 10 10h5v-2h-5c-4.34 0-8-3.66-8-8s3.66-8 8-8 8 3.66 8 8v1.43c0 .79-.71 1.57-1.5 1.57s-1.5-.78-1.5-1.57v-1.43c0-2.76-2.24-5-5-5s-5 2.24-5 5 2.24 5 5 5c1.38 0 2.64-.56 3.54-1.47.65.89 1.77 1.47 2.96 1.47 1.97 0 3.5-1.6 3.5-3.57v-1.43c0-5.52-4.48-10-10-10zm0 13c-1.66 0-3-1.34-3-3s1.34-3 3-3 3 1.34 3 3-1.34 3-3 3z\"/>\n </svg>\n );\n\n const previewImageData = 'data:image/png;base64,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';\n\n class AdvNewsletter extends Component {\n constructor() {\n super( ...arguments );\n }\n\n componentWillMount() {\n const { attributes, setAttributes } = this.props;\n const currentBlockConfig = advgbDefaultConfig['advgb-newsletter'];\n\n // No override attributes of blocks inserted before\n if (attributes.changed !== true) {\n if (typeof currentBlockConfig === 'object' && currentBlockConfig !== null) {\n Object.keys(currentBlockConfig).map((attribute) => {\n if (typeof attributes[attribute] === 'boolean') {\n attributes[attribute] = !!currentBlockConfig[attribute];\n } else {\n attributes[attribute] = currentBlockConfig[attribute];\n }\n });\n }\n\n // Finally set changed attribute to true, so we don't modify anything again\n setAttributes( { changed: true } );\n }\n }\n\n render() {\n const { attributes, setAttributes } = this.props;\n const {\n formStyle,\n formWidth,\n fnameLabel,\n lnameLabel,\n emailLabel,\n submitLabel,\n successLabel,\n alertLabel,\n bgColor,\n textColor,\n borderColor,\n borderStyle,\n borderRadius,\n submitColor,\n submitBgColor,\n submitRadius,\n isPreview\n } = attributes;\n\n return (\n isPreview ?\n <img alt={__('Newsletter', 'advanced-gutenberg')} width='100%' src={previewImageData}/>\n :\n <Fragment>\n <InspectorControls>\n <PanelBody title={ __( 'Newsletter Settings', 'advanced-gutenberg' ) }>\n {(typeof advgbBlocks !== 'undefined' && !parseInt(advgbBlocks.captchaEnabled)) && (\n <PanelBody title={ __( 'Notice', 'advanced-gutenberg' ) }>\n <p style={ { fontStyle: 'italic' } }>\n { __( 'We strongly recommend to enable Google reCAPTCHA to avoid spam.', 'advanced-gutenberg' ) }\n <br/><a href={advgbBlocks.config_url + '&tab=recaptcha'} target=\"_blank\">{ __( 'You can enable it in Settings', 'advanced-gutenberg' ) }</a>\n </p>\n </PanelBody>\n ) }\n <PanelBody title={ __( 'Form Settings', 'advanced-gutenberg' ) }>\n <SelectControl\n label={ __( 'Form style', 'advanced-gutenberg' ) }\n value={ formStyle }\n options={ [\n { label: __( 'Default', 'advanced-gutenberg' ), value: 'default' },\n { label: __( 'Alternative', 'advanced-gutenberg' ), value: 'alt' },\n ] }\n onChange={ (value) => setAttributes( { formStyle: value } ) }\n />\n <RangeControl\n label={ __( 'Form width (px)', 'advanced-gutenberg' ) }\n value={ formWidth }\n onChange={ (value) => setAttributes( { formWidth: value } ) }\n min={ 200 }\n max={ 1000 }\n />\n </PanelBody>\n <PanelBody title={ __( 'Text Label', 'advanced-gutenberg' ) }>\n {formStyle === 'alt' && (\n <Fragment>\n <TextControl\n label={ __( 'First Name input placeholder', 'advanced-gutenberg' ) }\n value={ fnameLabel }\n onChange={ (value) => setAttributes( { fnameLabel: value } ) }\n />\n <TextControl\n label={ __( 'Last Name input placeholder', 'advanced-gutenberg' ) }\n value={ lnameLabel }\n onChange={ (value) => setAttributes( { lnameLabel: value } ) }\n />\n </Fragment>\n ) }\n <TextControl\n label={ __( 'Email input placeholder', 'advanced-gutenberg' ) }\n value={ emailLabel }\n onChange={ (value) => setAttributes( { emailLabel: value } ) }\n />\n <TextControl\n label={ __( 'Submit text', 'advanced-gutenberg' ) }\n value={ submitLabel }\n onChange={ (value) => setAttributes( { submitLabel: value } ) }\n />\n <TextControl\n label={ __( 'Empty field warning text', 'advanced-gutenberg' ) }\n value={ alertLabel }\n onChange={ (value) => setAttributes( { alertLabel: value } ) }\n />\n <TextControl\n label={ __( 'Submit success text', 'advanced-gutenberg' ) }\n value={ successLabel }\n onChange={ (value) => setAttributes( { successLabel: value } ) }\n />\n </PanelBody>\n <PanelColorSettings\n title={ __( 'Input Color', 'advanced-gutenberg' ) }\n colorSettings={ [\n {\n label: __( 'Background color', 'advanced-gutenberg' ),\n value: bgColor,\n onChange: (value) => setAttributes( { bgColor: value } ),\n },\n {\n label: __( 'Text color', 'advanced-gutenberg' ),\n value: textColor,\n onChange: (value) => setAttributes( { textColor: value } ),\n },\n ] }\n />\n <PanelBody title={ __( 'Border Settings', 'advanced-gutenberg' ) } initialOpen={ false }>\n <PanelColorSettings\n title={ __( 'Border Color', 'advanced-gutenberg' ) }\n initialOpen={ false }\n colorSettings={ [\n {\n label: __( 'Border color', 'advanced-gutenberg' ),\n value: borderColor,\n onChange: (value) => setAttributes( { borderColor: value } ),\n },\n ] }\n />\n <SelectControl\n label={ __( 'Border Style', 'advanced-gutenberg' ) }\n value={ borderStyle }\n options={ [\n { label: __( 'Solid', 'advanced-gutenberg' ), value: 'solid' },\n { label: __( 'Dashed', 'advanced-gutenberg' ), value: 'dashed' },\n { label: __( 'Dotted', 'advanced-gutenberg' ), value: 'dotted' },\n ] }\n onChange={ (value) => setAttributes( { borderStyle: value } ) }\n />\n <RangeControl\n label={ __( 'Border radius (px)', 'advanced-gutenberg' ) }\n value={ borderRadius }\n onChange={ (value) => setAttributes( { borderRadius: value } ) }\n min={ 0 }\n max={ 50 }\n />\n </PanelBody>\n <PanelBody title={ __( 'Submit Button Settings', 'advanced-gutenberg' ) }>\n <PanelColorSettings\n title={ __( 'Color Settings', 'advanced-gutenberg' ) }\n initialOpen={ false }\n colorSettings={ [\n {\n label: __( 'Border and Text', 'advanced-gutenberg' ),\n value: submitColor,\n onChange: (value) => setAttributes( { submitColor: value } ),\n },\n {\n label: __( 'Background', 'advanced-gutenberg' ),\n value: submitBgColor,\n onChange: (value) => setAttributes( { submitBgColor: value } ),\n },\n ] }\n />\n <RangeControl\n label={ __( 'Button border radius', 'advanced-gutenberg' ) }\n value={ submitRadius }\n onChange={ (value) => setAttributes( { submitRadius: value } ) }\n min={ 0 }\n max={ 50 }\n />\n </PanelBody>\n </PanelBody>\n </InspectorControls>\n <div className=\"advgb-newsletter-wrapper\">\n <div className={ `advgb-newsletter clearfix style-${formStyle}` } style={ { maxWidth: formWidth } }>\n {formStyle === 'default' && (\n <div className=\"advgb-form-field\">\n <input type=\"text\" disabled={ true }\n className=\"advgb-form-input\"\n value={ emailLabel ? emailLabel : 'Email address' }\n style={ {\n backgroundColor: bgColor,\n color: textColor,\n borderColor: borderColor,\n borderStyle: borderStyle,\n borderRadius: borderRadius,\n } }\n />\n <div className=\"advgb-form-submit-wrapper\">\n <button className=\"advgb-form-submit\"\n type=\"button\"\n style={ {\n borderColor: submitColor,\n color: submitColor,\n backgroundColor: submitBgColor,\n borderRadius: submitRadius,\n } }\n >\n { submitLabel ? submitLabel : 'Submit' }\n </button>\n </div>\n </div>\n ) }\n\n {formStyle === 'alt' && (\n <Fragment>\n <div className=\"advgb-form-field advgb-form-field-full\">\n <input type=\"text\" disabled={ true }\n className=\"advgb-form-input\"\n value={ fnameLabel ? fnameLabel : __( 'First Name', 'advanced-gutenberg' ) }\n style={ {\n backgroundColor: bgColor,\n color: textColor,\n borderColor: borderColor,\n borderStyle: borderStyle,\n borderRadius: borderRadius,\n } }\n />\n </div>\n <div className=\"advgb-form-field advgb-form-field-full\">\n <input type=\"text\" disabled={ true }\n className=\"advgb-form-input\"\n value={ lnameLabel ? lnameLabel : __( 'Last Name', 'advanced-gutenberg' ) }\n style={ {\n backgroundColor: bgColor,\n color: textColor,\n borderColor: borderColor,\n borderStyle: borderStyle,\n borderRadius: borderRadius,\n } }\n />\n </div>\n <div className=\"advgb-form-field advgb-form-field-full\">\n <input type=\"text\" disabled={ true }\n className=\"advgb-form-input\"\n value={ emailLabel ? emailLabel : 'Email address' }\n style={ {\n backgroundColor: bgColor,\n color: textColor,\n borderColor: borderColor,\n borderStyle: borderStyle,\n borderRadius: borderRadius,\n } }\n />\n </div>\n <div className=\"advgb-form-submit-wrapper\">\n <button className=\"advgb-form-submit\"\n type=\"button\"\n style={ {\n borderColor: submitColor,\n color: submitColor,\n backgroundColor: submitBgColor,\n borderRadius: submitRadius,\n } }\n >\n { submitLabel ? submitLabel : 'Submit' }\n </button>\n </div>\n </Fragment>\n ) }\n </div>\n </div>\n </Fragment>\n )\n }\n }\n\n registerBlockType( 'advgb/newsletter', {\n title: __( 'Newsletter - PublishPress', 'advanced-gutenberg' ),\n description: __( 'Fastest way to create a newsletter form for your page.', 'advanced-gutenberg' ),\n icon: {\n src: newsletterBlockIcon,\n foreground: typeof advgbBlocks !== 'undefined' ? advgbBlocks.color : undefined,\n },\n category: 'advgb-category',\n keywords: [ __( 'newsletter', 'advanced-gutenberg' ), __( 'form', 'advanced-gutenberg' ), __( 'email', 'advanced-gutenberg' ) ],\n attributes: {\n formStyle: {\n type: 'string',\n default: 'default',\n },\n formWidth: {\n type: 'number',\n default: 400,\n },\n fnameLabel: {\n type: 'string',\n },\n lnameLabel: {\n type: 'string',\n },\n emailLabel: {\n type: 'string',\n },\n submitLabel: {\n type: 'string',\n },\n successLabel: {\n type: 'string',\n },\n alertLabel: {\n type: 'string',\n },\n bgColor: {\n type: 'string',\n },\n textColor: {\n type: 'string',\n },\n borderStyle: {\n type: 'string',\n },\n borderColor: {\n type: 'string',\n },\n borderRadius: {\n type: 'number',\n },\n submitColor: {\n type: 'string',\n },\n submitBgColor: {\n type: 'string',\n },\n submitRadius: {\n type: 'number',\n },\n changed: {\n type: 'boolean',\n default: false,\n },\n isPreview: {\n type: 'boolean',\n default: false,\n },\n },\n example: {\n attributes: {\n isPreview: true\n },\n },\n supports: {\n anchor: true\n },\n edit: AdvNewsletter,\n save: function ( { attributes } ) {\n const {\n formStyle,\n formWidth,\n fnameLabel,\n lnameLabel,\n emailLabel,\n submitLabel,\n successLabel,\n alertLabel,\n bgColor,\n textColor,\n borderColor,\n borderStyle,\n borderRadius,\n submitColor,\n submitBgColor,\n submitRadius,\n } = attributes;\n\n return (\n <div className={`advgb-newsletter clearfix style-${formStyle}`} style={ { maxWidth: formWidth } }>\n <form method=\"POST\" className=\"clearfix\">\n {formStyle === 'default' && (\n <div className=\"advgb-form-field\">\n <input type=\"email\"\n className=\"advgb-form-input advgb-form-input-email\"\n placeholder={ emailLabel ? emailLabel : 'Email address' }\n style={ {\n backgroundColor: bgColor,\n color: textColor,\n borderColor: borderColor,\n borderStyle: borderStyle,\n borderRadius: borderRadius,\n } }\n />\n <div className=\"advgb-form-submit-wrapper\">\n <button className=\"advgb-form-submit\"\n type=\"submit\"\n data-success={ successLabel ? successLabel : undefined }\n data-alert={ alertLabel ? alertLabel : undefined }\n style={ {\n borderColor: submitColor,\n color: submitColor,\n backgroundColor: submitBgColor,\n borderRadius: submitRadius,\n } }\n >\n { submitLabel ? submitLabel : 'Submit' }\n </button>\n </div>\n </div>\n ) }\n\n {formStyle === 'alt' && (\n <Fragment>\n <div className=\"advgb-form-field advgb-form-field-full\">\n <input type=\"text\"\n className=\"advgb-form-input advgb-form-input-fname\"\n placeholder={ fnameLabel ? fnameLabel : __( 'First Name', 'advanced-gutenberg' ) }\n style={ {\n backgroundColor: bgColor,\n color: textColor,\n borderColor: borderColor,\n borderStyle: borderStyle,\n borderRadius: borderRadius,\n } }\n />\n </div>\n <div className=\"advgb-form-field advgb-form-field-full\">\n <input type=\"text\"\n className=\"advgb-form-input advgb-form-input-lname\"\n placeholder={ lnameLabel ? lnameLabel : __( 'Last Name', 'advanced-gutenberg' ) }\n style={ {\n backgroundColor: bgColor,\n color: textColor,\n borderColor: borderColor,\n borderStyle: borderStyle,\n borderRadius: borderRadius,\n } }\n />\n </div>\n <div className=\"advgb-form-field advgb-form-field-full\">\n <input type=\"email\"\n className=\"advgb-form-input advgb-form-input-email\"\n placeholder={ emailLabel ? emailLabel : 'Email address' }\n style={ {\n backgroundColor: bgColor,\n color: textColor,\n borderColor: borderColor,\n borderStyle: borderStyle,\n borderRadius: borderRadius,\n } }\n />\n </div>\n <div className=\"advgb-form-submit-wrapper\">\n <button className=\"advgb-form-submit\"\n type=\"submit\"\n data-success={ successLabel ? successLabel : undefined }\n data-alert={ alertLabel ? alertLabel : undefined }\n style={ {\n borderColor: submitColor,\n color: submitColor,\n backgroundColor: submitBgColor,\n borderRadius: submitRadius,\n } }\n >\n { submitLabel ? submitLabel : 'Submit' }\n </button>\n </div>\n </Fragment>\n ) }\n <div className=\"advgb-grecaptcha clearfix\"/>\n </form>\n </div>\n );\n }\n } );\n})( wp.i18n, wp.blocks, wp.element, wp.blockEditor, wp.components );\n","import AdvQueryControls from './query-controls.jsx';\nimport { AuthorSelect } from './query-controls.jsx';\nimport { AdvColorControl } from \"../0-adv-components/components.jsx\";\n\n(function ( wpI18n, wpBlocks, wpElement, wpBlockEditor, wpComponents, wpData, lodash, wpHtmlEntities, wpDate ) {\n wpBlockEditor = wp.blockEditor || wp.editor;\n const { __ } = wpI18n;\n const { Component, Fragment, RawHTML } = wpElement;\n const { registerBlockType } = wpBlocks;\n const { InspectorControls, BlockControls } = wpBlockEditor;\n const { PanelBody, RangeControl, ToggleControl, TextControl, TextareaControl, FormTokenField, Spinner, ToolbarGroup, ToolbarButton, Placeholder, Tooltip, SelectControl } = wpComponents;\n const { withSelect } = wpData;\n const { pickBy, isUndefined, isArray, isNull, uniqWith, isEqual, omit, union, sortBy, unset, set, find } = lodash;\n const { decodeEntities } = wpHtmlEntities;\n const { dateI18n } = wpDate;\n\n const advRecentPostsBlockIcon = (\n <svg width=\"20\" height=\"20\" viewBox=\"2 2 22 22\">\n <path fill=\"none\" d=\"M0,0h24v24H0V0z\"/>\n <rect x=\"13\" y=\"7.5\" width=\"5\" height=\"2\"/>\n <rect x=\"13\" y=\"14.5\" width=\"5\" height=\"2\"/>\n <path d=\"M19,3H5C3.9,3,3,3.9,3,5v14c0,1.1,0.9,2,2,2h14c1.1,0,2-0.9,2-2V5C21,3.9,20.1,3,19,3z M19,19H5V5h14V19z\"/>\n <path d=\"M11,6H6v5h5V6z M10,10H7V7h3V10z\"/>\n <path d=\"M11,13H6v5h5V13z M10,17H7v-3h3V17z\"/>\n </svg>\n );\n\n const INBUILT_POST_TYPES = [ 'page', 'post' ];\n const PP_SERIES_POST_TYPES = typeof advgbBlocks.pp_series_post_types !== 'undefined' ? advgbBlocks.pp_series_post_types : [ 'post' ];\n\n const MAX_CATEGORIES_SUGGESTIONS = 20;\n\n const previewImageData = 'data:image/png;base64,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';\n\n const FRONTPAGE_LAYOUTS = [\n { layout: '1-2', icon: '1-2', title: __( 'The leading post on top, the rest in 2 columns below', 'advanced-gutenberg' ) },\n { layout: '1-3', icon: '1-3', title: __( 'The leading post on top, the rest in 3 columns below', 'advanced-gutenberg' ) },\n { layout: '1-4', icon: '1-4', title: __( 'The leading post on top, the rest in 4 columns below', 'advanced-gutenberg' ) },\n { layout: '1-5', icon: '1-5', title: __( 'The leading post on top, the rest in 5 columns below', 'advanced-gutenberg' ) },\n { layout: 'stacked', icon: 'stacked', title: __( 'Stacked', 'advanced-gutenberg' ) },\n { layout: '2-2', icon: '2-2', title: __( 'All posts in 2 columns grid', 'advanced-gutenberg' ) },\n { layout: '3-3', icon: '3-3', title: __( 'All posts in 3 columns grid', 'advanced-gutenberg' ) },\n { layout: '4-4', icon: '4-4', title: __( 'All posts in 4 columns grid', 'advanced-gutenberg' ) },\n { layout: '5-5', icon: '5-5', title: __( 'All posts in 5 columns grid', 'advanced-gutenberg' ) },\n ];\n\n // @TODO fix duplicated code from FRONTPAGE_LAYOUTS\n const FRONTPAGE_LAYOUTS_TABLET = [\n { layout: '1-2', icon: '1-2', title: __( 'The leading post on top, the rest in 2 columns below', 'advanced-gutenberg' ) },\n { layout: '1-3', icon: '1-3', title: __( 'The leading post on top, the rest in 3 columns below', 'advanced-gutenberg' ) },\n { layout: '1-4', icon: '1-4', title: __( 'The leading post on top, the rest in 4 columns below', 'advanced-gutenberg' ) },\n { layout: '1-5', icon: '1-5', title: __( 'The leading post on top, the rest in 5 columns below', 'advanced-gutenberg' ) },\n { layout: 'stacked', icon: 'stacked', title: __( 'Stacked', 'advanced-gutenberg' ) },\n { layout: '2-2', icon: '2-2', title: __( 'All posts in 2 columns grid', 'advanced-gutenberg' ) },\n { layout: '3-3', icon: '3-3', title: __( 'All posts in 3 columns grid', 'advanced-gutenberg' ) },\n { layout: '4-4', icon: '4-4', title: __( 'All posts in 4 columns grid', 'advanced-gutenberg' ) },\n { layout: '5-5', icon: '5-5', title: __( 'All posts in 5 columns grid', 'advanced-gutenberg' ) },\n ];\n\n const FRONTPAGE_LAYOUTS_MOBILE = [\n { layout: '1-2', icon: '1-2', title: __( 'The leading post on top, the rest in 2 columns below', 'advanced-gutenberg' ) },\n { layout: 'stacked', icon: 'stacked', title: __( 'Stacked', 'advanced-gutenberg' ) },\n { layout: '2-2', icon: '2-2', title: __( 'All posts in 2 columns grid', 'advanced-gutenberg' ) },\n ];\n\n const GAP_OPTIONS = [\n { label: __( 'None', 'advanced-gutenberg' ), value: 0},\n { label: '5px', value: 5 },\n { label: '10px', value: 10 },\n { label: '20px', value: 20 },\n { label: '30px', value: 30 },\n { label: '40px', value: 40 },\n { label: '50px', value: 50 },\n ];\n\n const NEWSPAPER_LAYOUTS = [\n { layout: 'np-1-1', icon: 'np-1-1', items: 2, title: __( 'The leading post in the left, 1 post in the right', 'advanced-gutenberg' ) },\n { layout: 'np-1-2', icon: 'np-1-2', items: 3, title: __( 'The leading post in the left, 2 posts in the right', 'advanced-gutenberg' ) },\n { layout: 'np-1-3', icon: 'np-1-3', items: 4, title: __( 'The leading post in the left, 3 posts in the right', 'advanced-gutenberg' ) },\n { layout: 'np-1-4', icon: 'np-1-4', items: 5, title: __( 'The leading post in the left, 4 posts in the right', 'advanced-gutenberg' ) },\n { layout: 'np-1-5', icon: 'np-1-5', items: 6, title: __( 'The leading post in the left, 5 posts in the right', 'advanced-gutenberg' ) },\n { layout: 'np-1-1-r', icon: 'np-1-1-r', items: 2, title: __( 'The leading post in the right, 1 post in the left', 'advanced-gutenberg' ) },\n { layout: 'np-1-2-r', icon: 'np-1-2-r', items: 3, title: __( 'The leading post in the right, 2 posts in the left', 'advanced-gutenberg' ) },\n { layout: 'np-1-3-r', icon: 'np-1-3-r', items: 4, title: __( 'The leading post in the right, 3 posts in the left', 'advanced-gutenberg' ) },\n { layout: 'np-1-4-r', icon: 'np-1-4-r', items: 5, title: __( 'The leading post in the right, 4 posts in the left', 'advanced-gutenberg' ) },\n { layout: 'np-1-5-r', icon: 'np-1-5-r', items: 6, title: __( 'The leading post in the right, 5 posts in the left', 'advanced-gutenberg' ) },\n { layout: 'np-2', icon: 'np-2', items: 3, title: __( 'The leading post on top, the rest of posts below', 'advanced-gutenberg' ) },\n { layout: 'np-3-1', icon: 'np-3-1', items: 3, title: __( 'The leading post on top, below 2 columns with 1 post in the left and 1 post in the right', 'advanced-gutenberg' ) },\n { layout: 'np-3-2', icon: 'np-3-2', items: 4, title: __( 'The leading post on top, below 2 columns with 1 post in the left and 2 posts in the right', 'advanced-gutenberg' ) },\n { layout: 'np-3-3', icon: 'np-3-3', items: 5, title: __( 'The leading post on top, below 2 columns with 1 post in the left and 3 posts in the right', 'advanced-gutenberg' ) },\n ];\n\n const ORDER_SECTIONS = [\n { label: 'Default', value: 'default' },\n { label: 'Title, Image, Info, Text', value: 'title-image-info-text' },\n { label: 'Image, Title, Text, Info', value: 'image-title-text-info' },\n { label: 'Title, Image, Text, Info', value: 'title-image-text-info' },\n { label: 'Title, Info, Text, Image', value: 'title-info-text-image' },\n { label: 'Title, Text, Info, Image', value: 'title-text-info-image' },\n { label: 'Title, Text, Image, Info', value: 'title-text-image-info' },\n ];\n\n const DISPLAY_FOR = [\n { label: __( 'For all posts', 'advanced-gutenberg' ), value: 'all' },\n { label: __( 'For the first post', 'advanced-gutenberg' ), value: 1 },\n { label: __( 'For the first 2 posts', 'advanced-gutenberg' ), value: 2 },\n { label: __( 'For the first 3 posts', 'advanced-gutenberg' ), value: 3 },\n { label: __( 'For the first 4 posts', 'advanced-gutenberg' ), value: 4 },\n { label: __( 'For the first 5 posts', 'advanced-gutenberg' ), value: 5 },\n ];\n\n const CUSTOM_TAX_PREFIX = 'custom-tax-';\n\n let initSlider = null;\n let initMasonry = null;\n\n class RecentPostsEdit extends Component {\n constructor() {\n super( ...arguments );\n\n this.state = {\n categoriesList: [],\n tagsList: [],\n catIdVsName: [],\n tagNameVsId: [],\n postTypeList: [],\n updating: false,\n tabSelected: 'desktop',\n updatePostSuggestions: true, // Backward compatibility 2.13.2 and lower\n authorList: [],\n }\n\n this.selectCategories = this.selectCategories.bind(this);\n this.selectTags = this.selectTags.bind(this);\n this.getTagIdsForTags = this.getTagIdsForTags.bind(this);\n this.getCategoryForBkwrdCompat = this.getCategoryForBkwrdCompat.bind(this);\n this.selectPostByTitle = this.selectPostByTitle.bind(this); // Backward compatibility 2.13.1 and lower\n this.updatePostType = this.updatePostType.bind(this);\n this.getPostIds = this.getPostIds.bind(this);\n this.getPostTitles = this.getPostTitles.bind(this);\n }\n\n componentWillMount() {\n const { attributes, setAttributes } = this.props;\n const currentBlockConfig = advgbDefaultConfig['advgb-recent-posts'];\n\n const tagsAndcategoriesListQuery = {\n per_page: -1,\n hide_empty: true,\n };\n\n // No override attributes of blocks inserted before\n if (attributes.changed !== true) {\n if (typeof currentBlockConfig === 'object' && currentBlockConfig !== null) {\n Object.keys(currentBlockConfig).map((attribute) => {\n if (typeof attributes[attribute] === 'boolean') {\n attributes[attribute] = !!currentBlockConfig[attribute];\n } else {\n attributes[attribute] = currentBlockConfig[attribute];\n }\n });\n }\n\n // Finally set changed attribute to true, so we don't modify anything again\n setAttributes( { changed: true } );\n }\n\n if ( !attributes.searchString ) {\n setAttributes( { searchString: '' } );\n }\n\n wp.apiFetch( {\n path: wp.url.addQueryArgs( 'advgb/v1/exclude_post_types' ),\n } ).then( ( excludePostTypes ) => {\n wp.apiFetch( {\n path: wp.url.addQueryArgs( 'wp/v2/types', { context: 'edit' } ),\n } ).then( ( list ) => {\n let types = [];\n Object.keys(list).forEach(type => {\n if(list[ type ].viewable && ! excludePostTypes.includes( type ) ){\n types.push( {label: list[ type ].name, value: list[ type ].slug } );\n }\n });\n this.setState( { postTypeList: types } );\n } );\n } );\n\n wp.apiFetch( {\n path: wp.url.addQueryArgs( 'wp/v2/categories', tagsAndcategoriesListQuery ),\n } ).then( ( list ) => {\n let suggestions = [];\n let catIdVsName = [];\n list.forEach(cat => {\n suggestions[ cat.name ] = cat;\n catIdVsName[ cat.id ] = cat.name;\n });\n this.setState( { categoriesList: suggestions, catIdVsName: catIdVsName } );\n\n // for backward compatibility, extract the (single select) category and set it as the (mutli select) categories\n // and make the (single select) category empty\n const categories = attributes.category && attributes.category !== undefined && attributes.category.length > 0 ? [ this.getCategoryForBkwrdCompat( attributes.category ) ] : attributes.categories;\n setAttributes({\n categories: categories,\n category: ''\n });\n } );\n\n wp.apiFetch( {\n path: wp.url.addQueryArgs( 'wp/v2/tags', tagsAndcategoriesListQuery ),\n } ).then( ( list ) => {\n let suggestions = [];\n let tagNameVsId = [];\n list.forEach(tag => {\n suggestions.push(tag.name);\n tagNameVsId[ tag.name ] = tag.id;\n });\n\n this.setState( { tagsList: suggestions, tagNameVsId: tagNameVsId } );\n\n const tagIds = attributes.tags && attributes.tags.length > 0 ? this.getTagIdsForTags( attributes.tags ) : [];\n setAttributes({\n tagIds: tagIds,\n });\n\n } );\n\n wp.apiFetch( {\n path: wp.url.addQueryArgs( 'advgb/v1/authors' ),\n } ).then( ( list ) => {\n this.setState( { authorList: list } );\n } );\n\n // migrate from displayDate to postDate\n let postDateDisplay = attributes.displayDate ? 'created' : attributes.postDate;\n setAttributes({\n postDate: postDateDisplay,\n displayDate: false,\n });\n\n const postType = attributes.postType === undefined ? 'post' : attributes.postType;\n this.generateTaxFilters( postType );\n }\n\n componentWillUpdate( nextProps ) {\n const { recentPosts: nextPosts } = nextProps;\n const { postView: nextView } = nextProps.attributes;\n const { attributes, clientId, recentPosts } = this.props;\n const $ = jQuery;\n\n if (nextView !== 'slider' || (nextPosts && recentPosts && nextPosts.length !== recentPosts.length) ) {\n $(`#block-${clientId} .advgb-recent-posts.slick-initialized`).slick('unslick');\n $(`#block-${clientId} .advgb-recent-post`)\n .removeAttr('tabindex')\n .removeAttr('role')\n .removeAttr('aria-describedby');\n\n if (nextView === 'slider' && (nextPosts && recentPosts && nextPosts.length !== recentPosts.length)) {\n if (!this.state.updating) {\n this.setState( { updating: true } );\n }\n }\n\n if (initSlider) {\n clearTimeout(initSlider);\n }\n }\n\n if (nextView !== 'masonry' || (nextPosts && recentPosts && nextPosts.length !== recentPosts.length) ) {\n $(`#block-${clientId} .masonry-view .advgb-recent-posts`).isotope('destroy');\n\n if (nextView === 'masonry' && (nextPosts && recentPosts && nextPosts.length !== recentPosts.length)) {\n if (!this.state.updating) {\n this.setState( { updating: true } );\n }\n }\n\n if (initMasonry) {\n clearTimeout(initMasonry);\n }\n }\n\n }\n\n componentDidMount() {\n const { attributes, setAttributes, clientId } = this.props;\n setAttributes( { id: 'recent-posts-' + clientId } );\n\n // Reset attributes when Pro is not available\n if( !this.isPro() && this.checkIncludeEnabled() ) {\n setAttributes( { includePosts: [] } );\n }\n }\n\n componentDidUpdate( prevProps ) {\n const that = this;\n const { attributes, clientId, postList } = this.props;\n const { postView, sliderAutoplay, sliderAutoplaySpeed } = attributes;\n const $ = jQuery;\n\n if (postView === 'slider') {\n\n // Autoplay\n initSlider = setTimeout(function () {\n $(`#block-${clientId} .advgb-recent-posts-block.slider-view .advgb-recent-posts:not(.slick-initialized)`).slick( {\n dots: true,\n adaptiveHeight: true,\n autoplay: sliderAutoplay,\n } );\n\n $(`#block-${clientId} .advgb-recent-posts-block.slider-view .advgb-recent-posts.slick-initialized`).slick('slickSetOption', 'autoplay', sliderAutoplay, true);\n\n if (that.state.updating) {\n that.setState( { updating: false } );\n }\n }, 100 );\n\n // Autoplay speed\n if( sliderAutoplay && sliderAutoplaySpeed && advgbBlocks.advgb_pro !== 'undefined' && advgbBlocks.advgb_pro === '1' ) {\n $(`#block-${clientId} .advgb-recent-posts-block.slider-view .advgb-recent-posts.slick-initialized`).slick('slickSetOption', 'autoplaySpeed', sliderAutoplaySpeed, true);\n } else {\n $(`#block-${clientId} .advgb-recent-posts-block.slider-view .advgb-recent-posts.slick-initialized`).slick('slickSetOption', 'autoplaySpeed', 3000, true);\n }\n\n } else {\n $(`#block-${clientId} .advgb-recent-posts.slick-initialized`).slick('unslick');\n }\n\n if (postView === 'masonry') {\n\n initMasonry = setTimeout(function () {\n var $masonry = $(`#block-${clientId} .masonry-view .advgb-recent-posts`);\n $masonry.isotope({\n itemSelector: '.advgb-recent-post',\n percentPosition: true\n });\n $(window).resize(function(){\n $masonry.isotope();\n });\n\n if (that.state.updating) {\n that.setState( { updating: false } );\n }\n }, 100 );\n\n } else {\n $(`#block-${clientId} .masonry-view .advgb-recent-posts`).isotope('destroy');\n }\n\n // Backward compatibility 2.13.1 and lower\n if( this.state.updatePostSuggestions && attributes.exclude && attributes.exclude.length > 0 && postList ) {\n let postSuggestions = [];\n let postTitleVsIdMap = [];\n postList.forEach( post => {\n postSuggestions.push(post.title.raw);\n postTitleVsIdMap[ post.title.raw ] = post.id;\n });\n this.setState( { postTitleVsIdMap: postTitleVsIdMap, updatePostSuggestions: false }, function(){\n if( !attributes.excludeIds ){\n this.selectPostByTitle( attributes.exclude, 'exclude' );\n }\n });\n }\n }\n\n translatableText(text) {\n switch(text){\n case 'desktop':\n return __('desktop', 'advanced-gutenberg');\n break;\n case 'tablet':\n return __('tablet', 'advanced-gutenberg');\n break;\n case 'mobile':\n return __('mobile', 'advanced-gutenberg');\n break;\n }\n }\n\n isPro() {\n return advgbBlocks.advgb_pro !== 'undefined' && advgbBlocks.advgb_pro === '1';\n }\n\n checkIncludeEnabled() {\n return typeof this.props.attributes.includePosts !== 'undefined' && this.props.attributes.includePosts.length > 0;\n }\n\n render() {\n const { categoriesList, tagsList, postTypeList, tabSelected, authorList, postSuggestions, taxonomyList } = this.state;\n const { attributes, setAttributes, recentPosts: recentPostsList, postsToSearch, postsToSearchResolved, postsToInclude, postsToIncludeResolved, postsToExclude, postsToExcludeResolved, postList } = this.props;\n const {\n id,\n postView,\n order,\n orderBy,\n numberOfPosts,\n columns,\n columnsT,\n columnsM,\n displayFeaturedImage,\n displayFeaturedImageFor,\n displayFeaturedImageCaption,\n enablePlaceholderImage,\n imageOpacity,\n imageOverlayColor,\n displayAuthor,\n displayAuthorFor,\n authorLinkNewTab,\n displayDate,\n postDate,\n postDateFor,\n postDateFormat,\n displayTime,\n displayExcerpt,\n displayExcerptFor,\n postTextAsExcerpt,\n postTextExcerptLength,\n displayReadMore,\n displayReadMoreFor,\n readMoreLbl,\n isPreview,\n categories,\n tags,\n frontpageLayout, frontpageLayoutT, frontpageLayoutM,\n gap,\n frontpageStyle,\n sliderStyle,\n newspaperLayout,\n excludeCurrentPost,\n showCategories,\n showCategoriesFor,\n showTags,\n showTagsFor,\n displayCommentCount,\n displayCommentCountFor,\n textAfterTitle,\n textBeforeReadmore,\n includePosts,\n excludePosts,\n offset,\n author: selectedAuthorId,\n sliderAutoplay,\n linkCustomTax,\n showCustomTaxList,\n showCustomTaxListFor,\n imagePosition,\n onlyFromCurrentUser,\n orderSections,\n } = attributes;\n\n let recentPosts = this.props.recentPosts;\n let mergedPosts = this.getMergedPosts();\n let postSuggestionsExclude = this.getPostSuggestions( postList, 'exclude' );\n let postSuggestionsInclude = this.getPostSuggestions( mergedPosts, 'include' );\n\n // We need to check if we're in post edit or widgets screen\n const isInPost = wp.data.select('core/editor') && wp.data.select('core/editor').getCurrentPostType() === 'post';\n\n let postType = attributes.postType;\n if(postType === undefined){\n postType = 'post';\n }\n\n let deviceLetter = '';\n if (tabSelected === 'tablet') deviceLetter = 'T';\n if (tabSelected === 'mobile') deviceLetter = 'M';\n\n const inspectorControls = (\n <InspectorControls>\n {postView === 'slider' &&\n <PanelBody title={ __( 'Slider View Settings', 'advanced-gutenberg' ) }>\n <SelectControl\n label={ __( 'Style', 'advanced-gutenberg' ) }\n value={ sliderStyle }\n options={ [\n { label: __( 'Default', 'advanced-gutenberg' ), value: 'default' },\n { label: __( 'Headline', 'advanced-gutenberg' ), value: 'headline' },\n ] }\n onChange={ ( value ) => setAttributes( { sliderStyle: value } ) }\n />\n <ToggleControl\n label={ __( 'Autoplay', 'advanced-gutenberg' ) }\n checked={ sliderAutoplay }\n onChange={ () => setAttributes( { sliderAutoplay: !sliderAutoplay } ) }\n />\n </PanelBody>\n }\n {postView === 'frontpage' &&\n <PanelBody title={ __( 'Frontpage View Settings', 'advanced-gutenberg' ) }>\n <div className=\"advgb-recent-posts-responsive-items\">\n {['desktop', 'tablet', 'mobile'].map( (device, index) => {\n const itemClasses = [\n \"advgb-recent-posts-responsive-item\",\n tabSelected === device && 'is-selected',\n ].filter( Boolean ).join( ' ' );\n\n return (\n <div className={ itemClasses }\n key={ index }\n onClick={ () => this.setState( { tabSelected: device } ) }\n >\n {this.translatableText(device)}\n </div>\n )\n } ) }\n </div>\n <div className=\"advgb-recent-posts-select-layout on-inspector\">\n {tabSelected === 'desktop' && FRONTPAGE_LAYOUTS.map( (layout, index) => {\n const layoutClasses = [\n 'advgb-recent-posts-layout',\n tabSelected === 'desktop' && layout.layout === frontpageLayout && 'is-selected',\n ].filter( Boolean ).join( ' ' );\n\n return (\n <Tooltip text={ layout.title } key={ index }>\n <div\n className={ layoutClasses }\n onClick={ () => {\n setAttributes( {\n ['frontpageLayout' + deviceLetter]: layout.layout\n } );\n this.setState( { random: Math.random() } );\n } }\n >\n <img src={advgbBlocks.pluginUrl + '/assets/blocks/recent-posts/icons/' + layout.icon + '.png'}\n alt={ layout.layout }\n />\n </div>\n </Tooltip>\n )\n } ) }\n {tabSelected === 'tablet' && FRONTPAGE_LAYOUTS_TABLET.map( (layout, index) => {\n const layoutClasses = [\n 'advgb-recent-posts-layout',\n tabSelected === 'tablet' && layout.layout === frontpageLayoutT && 'is-selected',\n ].filter( Boolean ).join( ' ' );\n\n return (\n <Tooltip text={ layout.title } key={ index }>\n <div className={ layoutClasses }\n onClick={ () => {\n setAttributes( {\n ['frontpageLayout' + deviceLetter]: layout.layout\n } );\n this.setState( { random: Math.random() } );\n } }\n >\n <img src={advgbBlocks.pluginUrl + '/assets/blocks/recent-posts/icons/' + layout.icon + '.png'}\n alt={ layout.layout }\n />\n </div>\n </Tooltip>\n )\n } ) }\n {tabSelected === 'mobile' && FRONTPAGE_LAYOUTS_MOBILE.map( (layout, index) => {\n const layoutClasses = [\n 'advgb-recent-posts-layout',\n tabSelected === 'mobile' && layout.layout === frontpageLayoutM && 'is-selected',\n ].filter( Boolean ).join( ' ' );\n\n return (\n <Tooltip text={ layout.title } key={ index }>\n <div className={ layoutClasses }\n onClick={ () => {\n setAttributes( {\n ['frontpageLayout' + deviceLetter]: layout.layout\n } );\n this.setState( { random: Math.random() } );\n } }\n >\n <img src={advgbBlocks.pluginUrl + '/assets/blocks/recent-posts/icons/' + layout.icon + '.png'}\n alt={ layout.layout }\n />\n </div>\n </Tooltip>\n )\n } ) }\n </div>\n <SelectControl\n label={ __( 'Style', 'advanced-gutenberg' ) }\n value={ frontpageStyle }\n options={ [\n { label: __( 'Default', 'advanced-gutenberg' ), value: 'default' },\n { label: __( 'Headline', 'advanced-gutenberg' ), value: 'headline' },\n { label: __( 'Boxed', 'advanced-gutenberg' ), value: 'boxed' },\n ] }\n onChange={ ( value ) => setAttributes( { frontpageStyle: value } ) }\n />\n <SelectControl\n label={ __( 'Space between columns and rows', 'advanced-gutenberg' ) }\n value={ gap }\n options={ GAP_OPTIONS }\n onChange={ (value) => setAttributes( { gap: parseInt(value) } ) }\n />\n </PanelBody>\n }\n\n {postView === 'newspaper' &&\n <PanelBody title={ __( 'Newspaper View Settings', 'advanced-gutenberg' ) }>\n <div className=\"advgb-recent-posts-select-layout on-inspector\">\n {NEWSPAPER_LAYOUTS.map( (layout, index) => {\n const layoutClasses = [\n 'advgb-recent-posts-layout',\n layout.layout === newspaperLayout && 'is-selected',\n ].filter( Boolean ).join( ' ' );\n\n return (\n <Tooltip text={ layout.title } key={ index }>\n <div\n className={ layoutClasses }\n onClick={ () => {\n setAttributes( {\n newspaperLayout: layout.layout\n } );\n this.setState( { random: Math.random() } );\n this.newspaperOnChangeLayout(layout.layout);\n } }\n >\n <img src={advgbBlocks.pluginUrl + '/assets/blocks/recent-posts/icons/' + layout.icon + '.png'}\n alt={ layout.layout }\n />\n </div>\n </Tooltip>\n )\n } ) }\n </div>\n </PanelBody>\n }\n\n {postView === 'masonry' &&\n <PanelBody title={ __( 'Masonry View Settings', 'advanced-gutenberg' ) }>\n <SelectControl\n label={ __( 'Space between columns and rows', 'advanced-gutenberg' ) }\n value={ gap }\n options={ GAP_OPTIONS }\n onChange={ (value) => setAttributes( { gap: parseInt(value) } ) }\n />\n </PanelBody>\n }\n <PanelBody title={ __( 'Post Settings', 'advanced-gutenberg' ) }>\n <SelectControl\n label={ __( 'Post Type', 'advanced-gutenberg' ) }\n value={ postType }\n options={ postTypeList }\n onChange={ (value) => this.updatePostType(value) }\n />\n <AdvQueryControls\n { ...{ order, orderBy, postType } }\n numberOfItems={ numberOfPosts }\n onOrderChange={ ( value ) => setAttributes( { order: value } ) }\n onOrderByChange={ ( value ) => setAttributes( { orderBy: value } ) }\n onNumberOfItemsChange={ (value) => this.refreshOnChangeItems(value) }\n />\n </PanelBody>\n <PanelBody title={ __( 'Filters', 'advanced-gutenberg' ) }>\n { this.isPro() && this.checkIncludeEnabled() &&\n <div className=\"advgb-wrapper-disabled-msg notice notice-info\">\n <p>\n { __('To enable filters, clear Advanced Filters > Display these posts only', 'advanced-gutenberg') }\n </p>\n </div>\n }\n <Fragment>\n <div className={ this.isPro() && this.checkIncludeEnabled() ? 'advgb-wrapper-disabled' : '' }>\n { this.isPro() && this.checkIncludeEnabled() &&\n <div className=\"advgb-wrapper-disabled-overlay\"></div>\n }\n { postType === 'post' &&\n <Fragment>\n <FormTokenField\n key=\"query-controls-categories-select\"\n label={__('Show content with these Categories', 'advanced-gutenberg')}\n value={\n categories &&\n categories.map((item) => ({\n id: item.id,\n value: item.name || item.value,\n }))\n }\n suggestions={Object.keys(categoriesList)}\n onChange={ ( value ) => { this.selectCategories(value); } }\n maxSuggestions={ MAX_CATEGORIES_SUGGESTIONS }\n />\n <FormTokenField\n multiple\n suggestions={ tagsList }\n value={ tags }\n label={ __( 'Show content with these Tags', 'advanced-gutenberg' ) }\n placeholder={ __( 'Type a tag', 'advanced-gutenberg' ) }\n onChange={ ( value ) => {\n this.selectTags(value);\n }\n }\n />\n </Fragment>\n }\n { taxonomyList && taxonomyList.length > 0 &&\n taxonomyList.map( (tax) =>\n (\n <FormTokenField\n multiple\n suggestions={ tax.suggestions }\n value={ this.populateTaxTerms( tax ) }\n onChange={ (value) => this.selectTaxTerms( tax, value ) }\n key=\"query-controls-`${tax.slug}`-select\"\n label={__('Show content with these ', 'advanced-gutenberg') + decodeEntities(`${tax.name}`)}\n />\n )\n )\n }\n { !onlyFromCurrentUser &&\n <AuthorSelect\n key=\"query-controls-author-select\"\n authorList={authorList}\n label={__('Author', 'advanced-gutenberg')}\n noOptionLabel={__('All', 'advanced-gutenberg')}\n selectedAuthorId={selectedAuthorId}\n onChange={ ( value ) => setAttributes( { author: value } ) }\n />\n }\n <ToggleControl\n label={ __( 'Only shows posts written by the user viewing the block', 'advanced-gutenberg' ) }\n checked={ onlyFromCurrentUser }\n onChange={ () => setAttributes( { onlyFromCurrentUser: !onlyFromCurrentUser } ) }\n />\n {isInPost && postType === 'post' &&\n <ToggleControl\n label={ __( 'Exclude current post', 'advanced-gutenberg' ) }\n help={ __( 'If this post is listed in the block, you can exclude it.', 'advanced-gutenberg' ) }\n checked={ excludeCurrentPost }\n onChange={ () => setAttributes( { excludeCurrentPost: !excludeCurrentPost } ) }\n />\n }\n <FormTokenField\n multiple\n suggestions={ postSuggestionsExclude }\n value={ this.getPostTitles( excludePosts, postList ) }\n label={ __( 'Exclude these posts', 'advanced-gutenberg' ) }\n placeholder={ __( 'Search by title', 'advanced-gutenberg' ) }\n onChange={ ( excludePosts ) => this.getPostIds( excludePosts, postList, 'exclude' ) }\n />\n <RangeControl\n label={ __( 'Offset the first posts', 'advanced-gutenberg' ) }\n value={ offset }\n min={ 0 }\n max={ 10 }\n onChange={ ( value ) => setAttributes( { offset: value } ) }\n />\n </div>\n </Fragment>\n </PanelBody>\n { this.isPro() && (\n <Fragment>\n <PanelBody title={ __( 'Advanced Filters', 'advanced-gutenberg' ) } className=\"advgb-pro-icon\">\n <FormTokenField\n multiple\n suggestions={ postSuggestionsInclude }\n onInputChange={ ( value ) => {\n setAttributes( { searchString: value } )\n } }\n maxSuggestions={ 10 }\n value={ this.getPostTitles( includePosts, mergedPosts ) }\n label={ __( 'Display these posts only', 'advanced-gutenberg' ) }\n placeholder={ __( 'Search by title', 'advanced-gutenberg' ) }\n onChange={ ( includePosts ) => this.getPostIds( includePosts, mergedPosts, 'include' ) }\n />\n </PanelBody>\n </Fragment>\n ) }\n <PanelBody title={ __( 'Display Settings', 'advanced-gutenberg' ) }>\n { ( ( postView === 'grid' ) || ( postView === 'masonry' ) ) &&\n <RangeControl\n label={ __( 'Columns', 'advanced-gutenberg' ) }\n value={ columns }\n min={ 1 }\n max={ 4 }\n onChange={ (value) => setAttributes( { columns: value } ) }\n />\n }\n { postView === 'masonry' &&\n <Fragment>\n <RangeControl\n label={ __( 'Columns (Tablet)', 'advanced-gutenberg' ) }\n value={ columnsT }\n min={ 1 }\n max={ 4 }\n onChange={ (value) => setAttributes( { columnsT: value } ) }\n />\n <RangeControl\n label={ __( 'Columns (Mobile)', 'advanced-gutenberg' ) }\n value={ columnsM }\n min={ 1 }\n max={ 4 }\n onChange={ (value) => setAttributes( { columnsM: value } ) }\n />\n </Fragment>\n }\n <ToggleControl\n label={ __( 'Display Featured Image', 'advanced-gutenberg' ) }\n checked={ displayFeaturedImage }\n onChange={ () => setAttributes( { displayFeaturedImage: !displayFeaturedImage } ) }\n />\n {displayFeaturedImage &&\n <Fragment>\n <SelectControl\n value={ displayFeaturedImageFor }\n options={ DISPLAY_FOR }\n onChange={ ( value ) => { setAttributes( { displayFeaturedImageFor: value } ) } }\n className=\"advgb-child-select\"\n />\n <ToggleControl\n label={ __( 'Enable Placeholder Image', 'advanced-gutenberg' ) }\n checked={ enablePlaceholderImage }\n onChange={ () => setAttributes( { enablePlaceholderImage: !enablePlaceholderImage } ) }\n className=\"advgb-child-toggle\"\n help={ __( 'If a post doesn\\'t have a featured image, the placeholder image will be displayed instead', 'advanced-gutenberg' ) }\n />\n {postView === 'list' &&\n <SelectControl\n label={ __( 'Position', 'advanced-gutenberg' ) }\n value={ imagePosition }\n options={ [\n { label: __( 'Left', 'advanced-gutenberg' ), value: 'left' },\n { label: __( 'Right', 'advanced-gutenberg' ), value: 'right' },\n ] }\n onChange={ ( value ) => setAttributes( { imagePosition: value } ) }\n className=\"advgb-child-select\"\n />\n }\n { ( ( postView === 'frontpage' && frontpageStyle === 'headline' )\n || ( postView === 'slider' && sliderStyle === 'headline' ) ) &&\n <Fragment>\n <RangeControl\n label={ __( 'Image opacity', 'advanced-gutenberg' ) }\n value={ imageOpacity }\n min={ 0 }\n max={ 1 }\n step={ 0.1 }\n onChange={ ( value ) => setAttributes( { imageOpacity: value } ) }\n className=\"advgb-child-range\"\n />\n <div className=\"advgb-child-advcolor\">\n <AdvColorControl\n label={ __('Overlay Color', 'advanced-gutenberg') }\n value={ imageOverlayColor }\n onChange={ ( value ) => setAttributes( { imageOverlayColor: value } ) }\n />\n </div>\n </Fragment>\n }\n <ToggleControl\n label={ __( 'Display Caption', 'advanced-gutenberg' ) }\n checked={ displayFeaturedImageCaption }\n onChange={ () => setAttributes( { displayFeaturedImageCaption: !displayFeaturedImageCaption } ) }\n className=\"advgb-child-toggle\"\n />\n </Fragment>\n }\n <ToggleControl\n label={ __( 'Display Post Author', 'advanced-gutenberg' ) }\n checked={ displayAuthor }\n onChange={ () => setAttributes( { displayAuthor: !displayAuthor } ) }\n />\n { displayAuthor &&\n <Fragment>\n <SelectControl\n value={ displayAuthorFor }\n options={ DISPLAY_FOR }\n onChange={ ( value ) => { setAttributes( { displayAuthorFor: value } ) } }\n className=\"advgb-child-select\"\n />\n <ToggleControl\n label={ __( 'Open link in new tab', 'advanced-gutenberg' ) }\n checked={ !!authorLinkNewTab }\n onChange={ () => setAttributes( { authorLinkNewTab: !authorLinkNewTab } ) }\n className=\"advgb-child-toggle\"\n />\n </Fragment>\n }\n <SelectControl\n label={ __( 'Display Post Date', 'advanced-gutenberg' ) }\n value={ postDate }\n options={ [\n { label: __( 'Hide', 'advanced-gutenberg' ), value: 'hide' },\n { label: __( 'Created Date', 'advanced-gutenberg' ), value: 'created' },\n { label: __( 'Updated Date', 'advanced-gutenberg' ), value: 'updated' },\n ] }\n onChange={ ( value ) => { setAttributes( { postDate: value } ) } }\n />\n { postDate !== 'hide' &&\n <Fragment>\n <SelectControl\n value={ postDateFor }\n options={ DISPLAY_FOR }\n onChange={ ( value ) => { setAttributes( { postDateFor: value } ) } }\n className=\"advgb-child-select\"\n />\n <SelectControl\n label={ __( 'Post Date Format', 'advanced-gutenberg' ) }\n value={ postDateFormat }\n options={ [\n { label: __( 'Absolute', 'advanced-gutenberg' ), value: 'absolute' },\n { label: __( 'Relative', 'advanced-gutenberg' ), value: 'relative' },\n ] }\n onChange={ ( value ) => { setAttributes( { postDateFormat: value } ) } }\n className=\"advgb-child-select\"\n />\n { postDateFormat === 'absolute' &&\n <ToggleControl\n label={ __( 'Display Post Time', 'advanced-gutenberg' ) }\n checked={ displayTime }\n onChange={ () => setAttributes( { displayTime: !displayTime } ) }\n className=\"advgb-child-toggle\"\n />\n }\n </Fragment>\n }\n { postType === 'post' &&\n <Fragment>\n <ToggleControl\n label={ __( 'Display Comment Counts', 'advanced-gutenberg' ) }\n checked={ displayCommentCount }\n onChange={ () => setAttributes( { displayCommentCount: !displayCommentCount } ) }\n />\n { displayCommentCount &&\n <SelectControl\n value={ displayCommentCountFor }\n options={ DISPLAY_FOR }\n onChange={ ( value ) => { setAttributes( { displayCommentCountFor: value } ) } }\n className=\"advgb-child-select\"\n />\n }\n </Fragment>\n }\n { postType === 'post' &&\n <Fragment>\n <SelectControl\n label={ __( 'Display Category', 'advanced-gutenberg' ) }\n value={ showCategories }\n options={ [\n { label: __( 'Hide', 'advanced-gutenberg' ), value: 'hide' },\n { label: __( 'Show', 'advanced-gutenberg' ), value: 'show' },\n { label: __( 'Show & Link', 'advanced-gutenberg' ), value: 'link' },\n ] }\n onChange={ ( value ) => { setAttributes( { showCategories: value } ) } }\n />\n { showCategories !== 'hide' &&\n <SelectControl\n value={ showCategoriesFor }\n options={ DISPLAY_FOR }\n onChange={ ( value ) => { setAttributes( { showCategoriesFor: value } ) } }\n className=\"advgb-child-select\"\n />\n }\n <SelectControl\n label={ __( 'Display Tags', 'advanced-gutenberg' ) }\n value={ showTags }\n options={ [\n { label: __( 'Hide', 'advanced-gutenberg' ), value: 'hide' },\n { label: __( 'Show', 'advanced-gutenberg' ), value: 'show' },\n { label: __( 'Show & Link', 'advanced-gutenberg' ), value: 'link' },\n ] }\n onChange={ ( value ) => { setAttributes( { showTags: value } ) } }\n />\n { showTags !== 'hide' &&\n <SelectControl\n value={ showTagsFor }\n options={ DISPLAY_FOR }\n onChange={ ( value ) => { setAttributes( { showTagsFor: value } ) } }\n className=\"advgb-child-select\"\n />\n }\n </Fragment>\n }\n { ! INBUILT_POST_TYPES.includes(postType) && taxonomyList && taxonomyList.length > 0 &&\n <Fragment>\n <FormTokenField\n multiple\n suggestions={ taxonomyList && taxonomyList.length > 0 && taxonomyList.map( (tax) => decodeEntities(tax.name) ) }\n value={ showCustomTaxList }\n label={ __( 'Display these taxonomies', 'advanced-gutenberg' ) }\n onChange={ ( value ) => { this.selectTaxonomies(value); } }\n />\n { showCustomTaxList.length > 0 &&\n <Fragment>\n <SelectControl\n value={ showCustomTaxListFor }\n options={ DISPLAY_FOR }\n onChange={ ( value ) => { setAttributes( { showCustomTaxListFor: value } ) } }\n className=\"advgb-child-select\"\n />\n <ToggleControl\n label={ __( 'Link above taxonomies', 'advanced-gutenberg' ) }\n checked={ linkCustomTax }\n onChange={ () => setAttributes( { linkCustomTax: !linkCustomTax } ) }\n className=\"advgb-child-toggle\"\n />\n </Fragment>\n }\n </Fragment>\n\n }\n <ToggleControl\n label={ __( 'Display Read More Link', 'advanced-gutenberg' ) }\n checked={ displayReadMore }\n onChange={ () => setAttributes( { displayReadMore: !displayReadMore } ) }\n />\n { displayReadMore &&\n <Fragment>\n <SelectControl\n value={ displayReadMoreFor }\n options={ DISPLAY_FOR }\n onChange={ ( value ) => { setAttributes( { displayReadMoreFor: value } ) } }\n className=\"advgb-child-select\"\n />\n <TextControl\n label={ __('Read more text', 'advanced-gutenberg') }\n value={ readMoreLbl }\n onChange={ (value) => setAttributes( { readMoreLbl: value } ) }\n className=\"advgb-child-select\"\n />\n </Fragment>\n }\n <ToggleControl\n label={ __( 'Display Post Excerpt', 'advanced-gutenberg' ) }\n checked={ displayExcerpt }\n onChange={ () => setAttributes( { displayExcerpt: !displayExcerpt } ) }\n />\n { displayExcerpt &&\n <Fragment>\n <SelectControl\n value={ displayExcerptFor }\n options={ DISPLAY_FOR }\n onChange={ ( value ) => { setAttributes( { displayExcerptFor: value } ) } }\n className=\"advgb-child-select\"\n />\n <ToggleControl\n label={ __( 'First Post text as Excerpt', 'advanced-gutenberg' ) }\n help={ __( 'Display some part of first text found in post as excerpt.', 'advanced-gutenberg' ) }\n checked={ postTextAsExcerpt }\n onChange={ () => setAttributes( { postTextAsExcerpt: !postTextAsExcerpt } ) }\n className=\"advgb-child-toggle\"\n />\n { postTextAsExcerpt &&\n <RangeControl\n label={ __( 'Post Text Excerpt length', 'advanced-gutenberg' ) }\n min={ 50 }\n max={ 300 }\n value={ postTextExcerptLength }\n onChange={ ( value ) => setAttributes( { postTextExcerptLength: value } ) }\n className=\"advgb-child-range\"\n />\n }\n </Fragment>\n }\n <TextareaControl\n label={ __( 'Text after title', 'advanced-gutenberg' ) }\n help={ __( 'Include text/HTML after title', 'advanced-gutenberg' ) }\n value={ textAfterTitle }\n onChange={ ( value ) => setAttributes( { textAfterTitle: value } ) }\n />\n <TextareaControl\n label={ __( 'Text before read more', 'advanced-gutenberg' ) }\n help={ __( 'Include text/HTML before read more', 'advanced-gutenberg' ) }\n value={ textBeforeReadmore }\n onChange={ ( value ) => setAttributes( { textBeforeReadmore: value } ) }\n />\n </PanelBody>\n { this.isPro() && (\n <Fragment>\n <PanelBody title={ __( 'Reorder Sections', 'advanced-gutenberg' ) } initialOpen={ false } className=\"advgb-pro-icon\">\n <SelectControl\n label={ __( 'Sections order', 'advanced-gutenberg' ) }\n help={ __( 'When the image in desktop floats next to the content, or is displayed as background, the image order is ignored. Also the image order in mobile can be ignored for some views.', 'advanced-gutenberg' ) }\n value={ orderSections }\n options={ ORDER_SECTIONS }\n onChange={ (value) => setAttributes( { orderSections: value } ) }\n />\n </PanelBody>\n </Fragment>\n ) }\n </InspectorControls>\n );\n\n const hasPosts = Array.isArray( recentPosts ) && recentPosts.length;\n\n // If no posts found we show this notice\n if (!hasPosts) {\n return (\n isPreview ?\n <img alt={__('Content Display', 'advanced-gutenberg')} width='100%' src={previewImageData}/>\n :\n <Fragment>\n { inspectorControls }\n <Placeholder\n icon={ advRecentPostsBlockIcon }\n label={ __( 'Content Display Block', 'advanced-gutenberg' ) }\n >\n { ! Array.isArray( recentPosts ) ?\n <Spinner /> :\n __( 'No posts found! Try to change filters or publish posts.', 'advanced-gutenberg' )\n }\n </Placeholder>\n </Fragment>\n )\n }\n\n const postViewControls = [\n {\n icon: 'grid-view',\n title: __( 'Grid View', 'advanced-gutenberg' ),\n onClick: () => setAttributes( { postView: 'grid' } ),\n isActive: postView === 'grid',\n },\n {\n icon: 'list-view',\n title: __( 'List View', 'advanced-gutenberg' ),\n onClick: () => setAttributes( { postView: 'list' } ),\n isActive: postView === 'list',\n },\n {\n icon: 'slides',\n title: __( 'Slider View', 'advanced-gutenberg' ),\n onClick: () => setAttributes( { postView: 'slider' } ),\n isActive: postView === 'slider',\n },\n {\n icon: 'table-row-before',\n title: __( 'Frontpage View', 'advanced-gutenberg' ),\n onClick: () => setAttributes( { postView: 'frontpage' } ),\n isActive: postView === 'frontpage',\n },\n {\n icon: 'admin-site-alt3',\n title: __( 'Newspaper View', 'advanced-gutenberg' ),\n onClick: () => {\n setAttributes( { postView: 'newspaper' } );\n this.newspaperOnChangeLayout(newspaperLayout);\n },\n isActive: postView === 'newspaper',\n },\n {\n icon: 'tagcloud',\n title: __( 'Masonry View', 'advanced-gutenberg' ),\n onClick: () => setAttributes( { postView: 'masonry' } ),\n isActive: postView === 'masonry',\n },\n ];\n\n const blockClassName = [\n id,\n 'advgb-recent-posts-block',\n this.state.updating && 'loading',\n postView && postView + '-view',\n postView === 'list' && imagePosition !== 'left' && 'image-' + imagePosition,\n ( ( postView === 'grid' ) || ( postView === 'masonry' ) ) && 'columns-' + columns,\n postView === 'masonry' && 'tbl-columns-' + columnsT + ' ' + 'mbl-columns-' + columnsM,\n postView === 'slider' && sliderStyle && 'style-' + sliderStyle,\n postView === 'frontpage' && frontpageLayout && 'layout-' + frontpageLayout,\n postView === 'frontpage' && frontpageLayoutT && 'tbl-layout-' + frontpageLayoutT,\n postView === 'frontpage' && frontpageLayoutM && 'mbl-layout-' + frontpageLayoutM,\n ( ( postView === 'frontpage' ) || ( postView === 'masonry' ) ) && gap && 'gap-' + gap,\n postView === 'frontpage' && frontpageStyle && 'style-' + frontpageStyle,\n postView === 'newspaper' && newspaperLayout && 'layout-' + newspaperLayout,\n advgbBlocks.advgb_pro === '1' && orderSections && 'sections-' + orderSections,\n ].filter( Boolean ).join( ' ' );\n\n return (\n isPreview ?\n <img alt={__('Content Display', 'advanced-gutenberg')} width='100%' src={previewImageData}/>\n :\n <Fragment>\n { inspectorControls }\n <BlockControls>\n <ToolbarGroup controls={ postViewControls } />\n <ToolbarGroup>\n <ToolbarButton\n icon=\"update\"\n label={ __( 'Refresh', 'advanced-gutenberg' ) }\n onClick={ () => setAttributes( { myToken: Math.floor(Math.random() * Math.floor(999)) } ) }\n />\n </ToolbarGroup>\n </BlockControls>\n <div className={ blockClassName }>\n {this.state.updating && <div className=\"advgb-recent-posts-loading\" />}\n <div className=\"advgb-recent-posts\">\n {recentPosts.map( ( post, index ) => (\n <article key={ index }\n className={`advgb-recent-post ${ this.checkElementDisplay( 'image', index ) && ( post.featured_img || enablePlaceholderImage ) ? \"\" : \"advgb-recent-post--no-image\"}` }\n >\n { /* Output image's HTML inside .advgb-recent-post; orderSections is not allowed for images */ }\n {(() => {\n if(\n this.checkElementDisplay( 'image', index )\n && ( post.featured_img || enablePlaceholderImage )\n && this.getDisplayImageVsOrder( attributes, index ) === 'ignore-order'\n ) {\n return(\n <div className=\"advgb-post-thumbnail\">\n <a href={ post.link } target=\"_blank\">\n <img src={ post.featured_img ? post.featured_img : advgbBlocks.post_thumb } alt={ __( 'Post Image', 'advanced-gutenberg' ) } />\n {displayFeaturedImageCaption && post.featured_img_caption.length > 0 && (\n <span class=\"advgb-post-caption\">\n { post.featured_img_caption }\n </span>\n )}\n </a>\n </div>\n )\n } else if(\n ( postView === 'frontpage' && frontpageStyle === 'headline' )\n || ( postView === 'slider' && sliderStyle === 'headline' )\n && this.getDisplayImageVsOrder( attributes, index ) === 'ignore-order'\n ) {\n return (\n <div className=\"advgb-post-thumbnail advgb-post-thumbnail-no-image\">\n <a href={ post.link } target=\"_blank\"></a>\n </div>\n )\n } else {\n { /* Nothing to do here */ }\n }\n })()}\n\n <div className=\"advgb-post-wrapper\">\n\n { /* Output image's HTML inside .advgb-post-wrapper to allow orderSections for images */ }\n {(() => {\n if(\n this.checkElementDisplay( 'image', index )\n && ( post.featured_img || enablePlaceholderImage )\n && this.getDisplayImageVsOrder( attributes, index ) === 'apply-order'\n ) {\n return(\n <div className=\"advgb-post-thumbnail\">\n <a href={ post.link } target=\"_blank\">\n <img src={ post.featured_img ? post.featured_img : advgbBlocks.post_thumb } alt={ __( 'Post Image', 'advanced-gutenberg' ) } />\n {displayFeaturedImageCaption && post.featured_img_caption.length > 0 && (\n <span class=\"advgb-post-caption\">\n { post.featured_img_caption }\n </span>\n )}\n </a>\n </div>\n )\n }\n })()}\n\n <h2 className=\"advgb-post-title\">\n <a href={ post.link } target=\"_blank\">{ decodeEntities( post.title.rendered ) }</a>\n </h2>\n { textAfterTitle &&\n <RawHTML className=\"advgb-text-after-title\">{ textAfterTitle }</RawHTML>\n }\n { (\n ( this.checkElementDisplay( 'author', index ) && (\n (post.coauthors && post.coauthors.length > 0)\n || (!post.coauthors || post.coauthors.length === 0))\n )\n || this.checkElementDisplay( 'date', index )\n || ( postType === 'post' && this.checkElementDisplay( 'comments', index ) )\n ) && (\n <Fragment>\n <div className=\"advgb-post-info\">\n { this.checkElementDisplay( 'author', index ) && post.coauthors && post.coauthors.length > 0 && post.coauthors.map( ( coauthor, coauthor_indx ) => (\n <Fragment>\n <a href={ coauthor.link }\n target=\"_blank\"\n className=\"advgb-post-author\"\n >\n { coauthor.display_name }\n </a>\n {coauthor_indx < post.coauthors.length - 1 && (\n <span>, </span>\n ) }\n </Fragment>\n ) )\n }\n { this.checkElementDisplay( 'author', index ) && (!post.coauthors || post.coauthors.length === 0) && (\n <a href={ post.author_meta.author_link }\n target=\"_blank\"\n className=\"advgb-post-author\"\n >\n { post.author_meta.display_name }\n </a>\n )\n }\n { this.checkElementDisplay( 'date', index ) && (\n <span className=\"advgb-post-datetime\" >\n { this.getDateTime(post) }\n </span>\n ) }\n { postType === 'post' && this.checkElementDisplay( 'comments', index ) && (\n <span className=\"advgb-post-comments\" >\n <span class=\"dashicons dashicons-admin-comments\"></span>\n ({ post.comment_count })\n </span>\n ) }\n </div>\n </Fragment>\n ) }\n { (\n ( this.checkElementDisplay( 'categories', index ) && post.tax_additional && post.tax_additional.categories)\n || ( this.checkElementDisplay( 'tags', index ) && post.tax_additional && post.tax_additional.tags)\n || ( !INBUILT_POST_TYPES.includes( postType ) && post.tax_additional && this.checkElementDisplay( 'customtax', index ) )\n ) && (\n <Fragment>\n <div className=\"advgb-post-tax-info\">\n { this.checkElementDisplay( 'categories', index ) && post.tax_additional && post.tax_additional.categories && (\n <div className=\"advgb-post-tax advgb-post-category\">\n {showCategories === 'show' && post.tax_additional.categories.unlinked.map( ( cat, index ) => (\n <RawHTML>{ cat }</RawHTML>\n ) )}\n {showCategories === 'link' && post.tax_additional.categories.linked.map( ( cat, index ) => (\n <RawHTML>{ cat }</RawHTML>\n ) )}\n </div>\n ) }\n { this.checkElementDisplay( 'tags', index ) && post.tax_additional && post.tax_additional.tags && (\n <div className=\"advgb-post-tax advgb-post-tag\">\n {showTags === 'show' && post.tax_additional.tags.unlinked.map( ( tag, index ) => (\n <RawHTML>{ tag }</RawHTML>\n ) )}\n {showTags === 'link' && post.tax_additional.tags.linked.map( ( tag, index ) => (\n <RawHTML>{ tag }</RawHTML>\n ) )}\n </div>\n ) }\n {! INBUILT_POST_TYPES.includes( postType ) && post.tax_additional && this.getTaxSlugs().map( (taxSlug) => (\n <div className={\"advgb-post-tax advgb-post-cpt advgb-post-\" + taxSlug}>\n {!linkCustomTax && post.tax_additional[taxSlug] && post.tax_additional[taxSlug].unlinked.map( ( tag, index ) => (\n <RawHTML>{ tag }</RawHTML>\n ) )}\n {linkCustomTax && post.tax_additional[taxSlug] && post.tax_additional[taxSlug].linked.map( ( tag, index ) => (\n <RawHTML>{ tag }</RawHTML>\n ) )}\n </div>\n ))}\n </div>\n </Fragment>\n ) }\n <div className=\"advgb-post-content\">\n { this.checkElementDisplay( 'excerpt', index ) && (\n <div className=\"advgb-post-excerpt\"\n dangerouslySetInnerHTML={ {\n __html: postTextAsExcerpt ? RecentPostsEdit.extractContent(post.content.rendered, postTextExcerptLength) : (post.excerpt ? post.excerpt.raw : '')\n } } />\n ) }\n { textBeforeReadmore &&\n <div className=\"advgb-text-before-readmore\"><RawHTML>{ textBeforeReadmore }</RawHTML></div>\n }\n { this.checkElementDisplay( 'readmore', index ) && (\n <div className=\"advgb-post-readmore\">\n <a href={ post.link } target=\"_blank\">{ readMoreLbl ? readMoreLbl : __( 'Read More', 'advanced-gutenberg' ) }</a>\n </div>\n ) }\n </div>\n </div>\n </article>\n ) ) }\n </div>\n </div>\n <div>\n <style>\n {`.${id}.advgb-recent-posts-block.style-headline .advgb-recent-posts .advgb-recent-post .advgb-post-thumbnail {\n background: ${imageOverlayColor};\n }\n .${id}.advgb-recent-posts-block.style-headline .advgb-recent-posts .advgb-recent-post .advgb-post-thumbnail a img {\n opacity: ${imageOpacity};\n }`}\n </style>\n </div>\n </Fragment>\n )\n }\n\n /**\n * Get current include/exclude posts merged with the ones from search\n */\n getMergedPosts() {\n const {\n postsToSearch,\n postsToSearchResolved,\n postsToInclude,\n postsToIncludeResolved,\n postsToExclude,\n postsToExcludeResolved\n } = this.props;\n\n let mergedPosts = null;\n if( postsToSearchResolved && !postsToIncludeResolved && !postsToExcludeResolved ) {\n // Get only searchString\n mergedPosts = postsToSearch;\n } else if ( postsToSearchResolved && postsToIncludeResolved && !postsToExcludeResolved ) {\n // Get searchString and includePosts\n mergedPosts = postsToSearch.concat(postsToInclude);\n } else if ( postsToSearchResolved && !postsToIncludeResolved && postsToExcludeResolved ) {\n // Get searchString and excludePosts\n mergedPosts = postsToSearch.concat(postsToExclude);\n } else if( !postsToSearchResolved && postsToIncludeResolved && !postsToExcludeResolved ) {\n // Get only includePosts\n mergedPosts = postsToInclude;\n } else if( !postsToSearchResolved && !postsToIncludeResolved && postsToExcludeResolved ) {\n // Get only excludePosts\n mergedPosts = postsToExclude;\n } else {\n // Nothing to do here. mergedPosts is null\n }\n return mergedPosts;\n }\n\n /**\n * Get post titles for include and exclude\n */\n getPostSuggestions( posts, type ) {\n const { postsToSearchResolved, postsToIncludeResolved, postsToExcludeResolved } = this.props;\n\n if ( 'exclude' === type ) {\n return posts !== null ? posts.map( ( post ) => post.title.raw ) : [];\n } else if( 'include' === type && this.isPro() ) {\n return posts !== null && ( postsToSearchResolved || postsToIncludeResolved ) ? posts.map( ( post ) => post.title.raw ) : [];\n } else {\n return null;\n }\n }\n\n static extractContent(html, length) {\n const span= document.createElement('span');\n span.innerHTML= html;\n\n // Remove script tag\n const scripts = span.getElementsByTagName('script');\n let j = scripts.length;\n while (j--) {\n scripts[j].parentNode.removeChild(scripts[j]);\n }\n\n // Remove style tag\n const styles = span.getElementsByTagName('style');\n let k = styles.length;\n while (k--) {\n styles[k].parentNode.removeChild(styles[k]);\n }\n\n // Remove PublishPress Series box\n const seriesbox = span.getElementsByClassName('seriesmeta');\n if(seriesbox.length === 1) {\n seriesbox[0].parentNode.removeChild(seriesbox[0]);\n }\n\n const children= span.querySelectorAll('*');\n for(let i = 0 ; i < children.length ; i++) {\n if(children[i].textContent)\n children[i].textContent += ' ';\n else\n children[i].innerText += ' ';\n }\n\n let text = [span.textContent || span.innerText].toString().replace(/\\s\\s+/g,' ');\n text = text.slice(0, length).trim();\n\n if (text.length) text += '…' ;\n\n return text;\n };\n\n selectCategories(tokens) {\n const { categoriesList } = this.state;\n\n var hasNoSuggestion = tokens.some(function (token) {\n return typeof token === 'string' && !categoriesList[token];\n });\n\n if (hasNoSuggestion) {\n return;\n }\n\n var categories = tokens.map(function (token) {\n return typeof token === 'string' ? categoriesList[token] : token;\n })\n\n this.props.setAttributes({\n categories: categories,\n });\n }\n\n selectTags(tokens) {\n const { tagsList, tagNameVsId } = this.state;\n\n var hasNoSuggestion = tokens.some(function (token) {\n return typeof token === 'string' && !tagNameVsId[token];\n });\n\n if (hasNoSuggestion) {\n return;\n }\n\n var tags = tokens.map(function (token) {\n return typeof token === 'string' && tagNameVsId[token] ? token : token;\n })\n\n var tagIds = tokens.map(function (token) {\n return typeof token === 'string' ? tagNameVsId[token] : token.id;\n })\n\n this.props.setAttributes({\n tags: tags,\n tagIds: tagIds,\n });\n }\n\n getTagIdsForTags(tags) {\n const { tagNameVsId } = this.state;\n return tags.map( (tag) => {\n return tagNameVsId[tag];\n });\n }\n\n getCategoryForBkwrdCompat(id) {\n const { catIdVsName } = this.state;\n return {\n id: id,\n name: catIdVsName[id]\n };\n }\n\n getPostTitles( posts, postsToSelect ) {\n let field_value = [];\n if ( typeof posts !== 'undefined' && postsToSelect !== null ) {\n field_value = posts.map( ( post_id ) => {\n let find_post = postsToSelect.find( ( post ) => {\n return post.id === post_id;\n } );\n if ( find_post === undefined || ! find_post ) {\n return post_id; // It should return false but creates empty selections\n }\n return find_post.title.raw;\n } );\n }\n return field_value;\n }\n\n getPostIds( posts, postsToSelect, type ) {\n let posts_array = [];\n posts.map(\n ( post_title ) => {\n const matching_post = postsToSelect.find( ( post ) => {\n return post.title.raw === post_title;\n } );\n if ( matching_post !== undefined ) {\n posts_array.push( matching_post.id );\n }\n }\n )\n const selectType = type + 'Posts';\n this.props.setAttributes( { [selectType]: posts_array } );\n\n if( 'include' === type ) {\n this.props.setAttributes( { excludePosts: [], showCustomTaxList: [], taxonomies: {}, categories: [], tags: [], author: '', onlyFromCurrentUser: false, offset: 0 } );\n }\n }\n\n selectPostByTitle(tokens, type) {\n const { postTitleVsIdMap } = this.state;\n\n var hasNoSuggestion = tokens.some(function (token) {\n return typeof token === 'string' && (\n typeof postTitleVsIdMap === 'undefined' || !postTitleVsIdMap[token]\n );\n });\n\n if (hasNoSuggestion) {\n return;\n }\n\n var ids = tokens.map(function (token) {\n return typeof token === 'string' ? postTitleVsIdMap[token] : token.id;\n })\n\n const typeForQuery = type + 'Ids';\n\n this.props.setAttributes({ [type]: tokens, [typeForQuery]: ids });\n\n // Exclude posts, backward compatibility 2.13.1 and lower\n this.props.setAttributes( { exclude: [], excludeIds: [], excludePosts: ids } );\n }\n\n updatePostType(postType) {\n this.setState( { taxonomyList: null } );\n this.generateTaxFilters( postType );\n\n this.props.setAttributes( { postType: postType, excludePosts: [], includePosts: [], offset: 0, showCustomTaxList: [], taxonomies: {}, categories: [] } );\n }\n\n /* Check if PP Series plugin is active and enabled for current postType or if is a CPT to call sidebar filters */\n generateTaxFilters( postType ) {\n if(\n typeof advgbBlocks.pp_series_active !== 'undefined' && parseInt(advgbBlocks.pp_series_active)\n && (postType === 'post' || postType === 'page')\n && PP_SERIES_POST_TYPES.includes( postType )\n ) {\n // Enable PublishPress Series taxonomy filter in post/page when enabled through Series plugin\n this.generateSeriesTax( postType );\n } else if( ! INBUILT_POST_TYPES.includes( postType ) ){\n // Enable CPT taxonomy filters (may include Series taxonomy)\n this.generateTaxTerms( postType );\n } else {\n // Nothing to do here\n }\n }\n\n /**\n * Generates PublishPress Series taxonomy list for 'post' and sets it in the state as \"taxonomyList\".\n */\n generateSeriesTax( postType ) {\n if(! postType){\n return;\n }\n\n // fetch series taxonomy\n wp.apiFetch( {\n path: wp.url.addQueryArgs( `wp/v2/types/${postType}`, { context: 'edit' } ),\n } ).then( ( typeAttributes ) => {\n let taxonomy = [];\n let taxId = {};\n const seriesSlug = typeof advgbBlocks.pp_series_slug !== 'undefined' ? advgbBlocks.pp_series_slug : 'series';\n\n wp.apiFetch( {\n path: wp.url.addQueryArgs( `wp/v2/taxonomies/${seriesSlug}`, { context: 'edit' } ),\n } ).then( ( taxAttributes ) => {\n // fetch all terms\n wp.apiFetch( {\n path: wp.url.addQueryArgs( `wp/v2/${taxAttributes.rest_base}?per_page=-1&hide_empty=true`, { context: 'edit' } ),\n } ).then( ( terms ) => {\n let suggestions = [];\n let map = [];\n terms.forEach(term => {\n suggestions.push(decodeEntities(term.name));\n map[ decodeEntities(term.name) ] = term.id;\n });\n\n const preselectedName = this.props.attributes.taxonomies ? this.props.attributes.taxonomies[ seriesSlug ] : [];\n if(preselectedName){\n let preselectedId = preselectedName.map(name => map[ name ] );\n set( taxId, seriesSlug, preselectedId );\n this.props.setAttributes( { taxIds: taxId } );\n }\n\n taxonomy.push({ slug: seriesSlug, name: decodeEntities(taxAttributes.name), suggestions: suggestions, map: map, hierarchical: taxAttributes.hierarchical });\n\n this.setState( { updating: true } );\n // length === 1 due we only get the series taxonomy\n if(taxonomy.length === 1){\n this.setState( { taxonomyList: taxonomy, updating: false } );\n }\n } );\n } );\n } );\n }\n\n /**\n * Generates taxonomy list for a post type and sets it in the state as \"taxonomyList\".\n */\n generateTaxTerms( postType ) {\n if(! postType){\n return;\n }\n\n // fetch all taxonomies\n wp.apiFetch( {\n path: wp.url.addQueryArgs( `wp/v2/types/${postType}`, { context: 'edit' } ),\n } ).then( ( typeAttributes ) => {\n let taxonomies = [];\n let taxIds = {};\n typeAttributes.taxonomies.forEach(tax => {\n // fetch taxonomy attributes\n wp.apiFetch( {\n path: wp.url.addQueryArgs( `wp/v2/taxonomies/${tax}`, { context: 'edit' } ),\n } ).then( ( taxAttributes ) => {\n // fetch all terms\n wp.apiFetch( {\n path: wp.url.addQueryArgs( `wp/v2/${taxAttributes.rest_base}?per_page=-1&hide_empty=true`, { context: 'edit' } ),\n } ).then( ( terms ) => {\n let suggestions = [];\n let map = [];\n terms.forEach(term => {\n suggestions.push(decodeEntities(term.name));\n map[ decodeEntities(term.name) ] = term.id;\n });\n\n const preselectedNames = this.props.attributes.taxonomies ? this.props.attributes.taxonomies[ tax ] : [];\n if(preselectedNames){\n let preselectedIds = preselectedNames.map(name => map[ name ] );\n set( taxIds, tax, preselectedIds );\n this.props.setAttributes( { taxIds: taxIds } );\n }\n\n taxonomies.push({ slug: tax, name: decodeEntities(taxAttributes.name), suggestions: suggestions, map: map, hierarchical: taxAttributes.hierarchical });\n\n this.setState( { updating: true } );\n if(typeAttributes.taxonomies.length === taxonomies.length){\n // set state only when all taxonomies have been fetched\n // otherwise the taxonomy boxes will appear one at a time making the page jittery\n // we will sort the taxonomies so that the boxes are always in a predictable, consistent order\n this.setState( { taxonomyList: sortBy(taxonomies, ['slug']), updating: false } );\n }\n } );\n } );\n } );\n } );\n }\n\n /**\n * Populates the taxonomy terms in the suggestions box.\n */\n populateTaxTerms( tax ) {\n const { taxonomies } = this.props.attributes;\n return taxonomies && taxonomies[tax.slug];\n }\n\n /**\n * Selects the correct the taxonomy term from the suggestions and updates the \"taxonomies\" attribute.\n */\n selectTaxTerms( tax, tokens ) {\n var hasNoSuggestion = tokens.some(function (token) {\n return typeof token === 'string' && !tax.map[token];\n });\n\n if (hasNoSuggestion) {\n return;\n }\n\n var suggestions = tokens.map(function (token) {\n return typeof token === 'string' && tax.map[token] ? token : token;\n })\n\n var ids = tokens.map(function (token) {\n return typeof token === 'string' ? tax.map[token] : token.id;\n })\n\n let taxonomies = this.props.attributes.taxonomies || {};\n unset( taxonomies, tax.slug );\n if(suggestions){\n set( taxonomies, tax.slug, suggestions );\n }\n\n let taxIds = this.props.attributes.taxIds || {};\n unset( taxIds, tax.slug );\n if(ids){\n set( taxIds, tax.slug, ids );\n }\n\n this.props.setAttributes({\n taxonomies: taxonomies, // to save in the attributes\n [tax.slug]: suggestions, // to show in the select list\n taxIds: taxIds, // to send in the query\n });\n }\n\n /**\n * Selects the correct taxonomy from the suggestions and updates the \"showCustomTaxList\" attribute.\n */\n selectTaxonomies(tokens) {\n const { taxonomyList } = this.state;\n\n if( ! taxonomyList ) {\n return;\n }\n\n let taxList = taxonomyList && taxonomyList.length > 0 && taxonomyList.map( (tax) => decodeEntities(tax.name) );\n\n var hasNoSuggestion = tokens.some(function (token) {\n return typeof token === 'string' && !taxList.includes(token);\n });\n\n if (hasNoSuggestion) {\n return;\n }\n\n var taxes = tokens.map(function (token) {\n return typeof token === 'string' && taxList[token] ? token : token;\n })\n\n this.props.setAttributes({\n showCustomTaxList: taxes,\n });\n }\n\n /**\n * Returns the tax slugs corresponding to the tax names that appear in the suggestions.\n */\n getTaxSlugs() {\n const { taxonomyList } = this.state;\n const { showCustomTaxList } = this.props.attributes;\n if( ! taxonomyList || ! showCustomTaxList || showCustomTaxList.length === 0 ) {\n return [];\n }\n\n var slugs = showCustomTaxList.map( (taxName) => {\n var tax = find(taxonomyList, {name: decodeEntities(taxName)});\n if(tax){\n return tax.slug;\n }\n });\n return slugs;\n }\n\n /**\n * Check if elementFor is within the index range.\n */\n checkElementForDisplay( elementFor, index ) {\n return(\n elementFor === 'all' || index < elementFor\n );\n }\n\n /**\n * Check if an element is enabled for each post.\n */\n checkElementDisplay( element, index ) {\n const {\n displayFeaturedImage,\n displayFeaturedImageFor,\n displayAuthor,\n displayAuthorFor,\n displayReadMore,\n displayReadMoreFor,\n displayExcerpt,\n displayExcerptFor,\n displayCommentCount,\n displayCommentCountFor,\n postDate,\n postDateFor,\n showCategories,\n showCategoriesFor,\n showTags,\n showTagsFor,\n showCustomTaxList,\n showCustomTaxListFor\n } = this.props.attributes;\n\n switch( element ) {\n case 'image':\n return(\n displayFeaturedImage && this.checkElementForDisplay( displayFeaturedImageFor, index )\n );\n case 'author':\n return(\n displayAuthor && this.checkElementForDisplay( displayAuthorFor, index )\n );\n break;\n case 'readmore':\n return(\n displayReadMore && this.checkElementForDisplay( displayReadMoreFor, index )\n );\n break;\n case 'excerpt':\n return(\n displayExcerpt && this.checkElementForDisplay( displayExcerptFor, index )\n );\n break;\n case 'comments':\n return(\n displayCommentCount && this.checkElementForDisplay( displayCommentCountFor, index )\n );\n break;\n case 'date':\n return(\n postDate !== 'hide' && this.checkElementForDisplay( postDateFor, index )\n );\n break;\n case 'categories':\n return(\n showCategories !== 'hide' && this.checkElementForDisplay( showCategoriesFor, index )\n );\n break;\n case 'tags':\n return(\n showTags !== 'hide' && this.checkElementForDisplay( showTagsFor, index )\n );\n break;\n case 'customtax':\n return(\n this.getTaxSlugs().length > 0 && this.checkElementForDisplay( showCustomTaxListFor, index )\n );\n break;\n default:\n return false;\n break;\n }\n }\n\n // Skip images floating on left or right, and with headline style\n getDisplayImageVsOrder( attributes, index ){\n if(\n (\n (\n attributes.orderSections === 'default'\n || attributes.orderSections === 'image-title-info-text'\n )\n || (\n ( attributes.postView === 'frontpage' && attributes.frontpageStyle === 'headline' )\n || ( attributes.postView === 'slider' && attributes.sliderStyle === 'headline' )\n || attributes.postView === 'list'\n )\n || (\n attributes.postView === 'newspaper'\n && (\n ( ['np-2','np-3-1','np-3-2','np-3-3'].indexOf(attributes.newspaperLayout) > -1 )\n || index > 0\n )\n )\n ) || advgbBlocks.advgb_pro === '0'\n ) {\n return 'ignore-order';\n } else {\n return 'apply-order';\n }\n }\n\n refreshOnChangeItems(numberOfPosts) {\n const { postView, myToken } = this.props.attributes;\n this.props.setAttributes( { numberOfPosts: numberOfPosts } );\n\n if( postView === 'masonry' ){\n this.props.setAttributes( { myToken: Math.floor(Math.random() * Math.floor(999)) } );\n }\n }\n\n newspaperOnChangeLayout(newspaperLayout) {\n const { numberOfPosts } = this.props.attributes;\n const currentLayout = NEWSPAPER_LAYOUTS.find( layout => layout.layout === newspaperLayout );\n this.props.setAttributes( { numberOfPosts: currentLayout.items } );\n }\n\n getDateTime(post) {\n const { postDate, postDateFormat, displayTime } = this.props.attributes;\n\n if( postDateFormat === 'absolute' ) {\n if( postDate === 'created' ) {\n return ( displayTime ? post.absolute_dates_time.created : post.absolute_dates.created );\n } else {\n return ( displayTime ? post.absolute_dates_time.modified : post.absolute_dates.modified );\n }\n } else {\n return ( postDate === 'created' ? post.relative_dates.created : post.relative_dates.modified );\n }\n }\n\n }\n\n registerBlockType( 'advgb/recent-posts', {\n title: __( 'Content Display - PublishPress', 'advanced-gutenberg' ),\n description: __( 'Displays your content in grid, list, slider, frontpage, newspaper, and masonry views with beautiful layouts and styles.', 'advanced-gutenberg' ),\n icon: {\n src: advRecentPostsBlockIcon,\n foreground: typeof advgbBlocks !== 'undefined' ? advgbBlocks.color : undefined,\n },\n category: 'advgb-category',\n keywords: [\n __( 'recent posts', 'advanced-gutenberg' ),\n __( 'latest posts', 'advanced-gutenberg' ),\n __( 'posts slide', 'advanced-gutenberg' ),\n __( 'posts grid', 'advanced-gutenberg' ),\n __( 'posts', 'advanced-gutenberg' ),\n __( 'pages', 'advanced-gutenberg' )\n ],\n supports: {\n html: false,\n },\n example: {\n attributes: {\n isPreview: true\n },\n },\n edit: withSelect( ( select, props ) => {\n const { getEntityRecords, hasFinishedResolution } = select( 'core' );\n const { categories, tagIds, tags, category, order, orderBy, numberOfPosts, myToken, postType, excludeCurrentPost, excludePosts, includePosts, offset, author, taxonomies, taxIds, onlyFromCurrentUser, searchString } = props.attributes;\n\n const catIds = categories && categories.length > 0 ? categories.map( ( cat ) => cat.id ) : [];\n\n // We need to check if we're in post edit or widgets screen\n const postId = wp.data.select('core/editor') && wp.data.select('core/editor').getCurrentPostId();\n const recentPostsQuery = pickBy( {\n categories: catIds,\n tags: tagIds,\n order,\n orderby: orderBy,\n per_page: numberOfPosts,\n token: myToken,\n exclude: excludeCurrentPost ? (excludePosts ? union( excludePosts, [ postId ] ) : postId ) : excludePosts,\n include: includePosts,\n offset,\n author: onlyFromCurrentUser ? wp.data.select('core').getCurrentUser().id : author,\n }, ( value ) => !isUndefined( value ) && !(isArray(value) && (isNull(value) || value.length === 0)) );\n\n let filterTaxNames = [];\n if(taxIds){\n Object.keys(taxIds).map(taxSlug => {\n filterTaxNames.push(taxSlug);\n recentPostsQuery[ taxSlug ] = taxIds[ taxSlug ];\n });\n }\n\n const queryFields = [ 'id', 'title' ];\n\n // Search posts\n const postsToSearchQuery = pickBy( { _fields: queryFields, per_page: 10, search: `\"${searchString}\"`, orderby: 'title', order: 'desc' }, ( value ) => ! isUndefined( value ) );\n const postsToSearch = advgbBlocks.advgb_pro !== 'undefined' && advgbBlocks.advgb_pro === '1' && typeof searchString !== 'undefined' && searchString.length > 0\n ? getEntityRecords(\n 'postType',\n postType ? postType : 'post',\n postsToSearchQuery\n ) : null;\n const postsToSearchResolved = hasFinishedResolution( 'getEntityRecords', [\n \t\t\t'postType',\n \t\t\tpostType ? postType : 'post',\n \t\t\tpostsToSearchQuery\n \t\t] );\n\n // Include posts\n const postsToIncludeQuery = pickBy( { _fields: queryFields, per_page: -1, include: includePosts }, ( value ) => ! isUndefined( value ) );\n const postsToInclude = advgbBlocks.advgb_pro !== 'undefined' && advgbBlocks.advgb_pro === '1' && typeof includePosts !== 'undefined' && includePosts.length > 0\n ? getEntityRecords(\n 'postType',\n postType ? postType : 'post',\n postsToIncludeQuery\n ) : null;\n const postsToIncludeResolved = hasFinishedResolution( 'getEntityRecords', [\n \t\t\t'postType',\n \t\t\tpostType ? postType : 'post',\n \t\t\tpostsToIncludeQuery\n \t\t] );\n\n // Exclude posts\n const postsToExcludeQuery = pickBy( { _fields: queryFields, per_page: -1, include: excludePosts }, ( value ) => ! isUndefined( value ) );\n const postsToExclude = typeof excludePosts !== 'undefined' && excludePosts.length > 0\n ? getEntityRecords(\n 'postType',\n postType ? postType : 'post',\n postsToExcludeQuery\n ) : null;\n const postsToExcludeResolved = hasFinishedResolution( 'getEntityRecords', [\n \t\t\t'postType',\n \t\t\tpostType ? postType : 'post',\n \t\t\tpostsToExcludeQuery\n \t\t] );\n\n // Modifying filters from main query for Exclude post suggestions\n let postSuggestionsQuery = omit( recentPostsQuery, [ 'exclude' ] );\n postSuggestionsQuery.per_page = typeof excludePosts !== 'undefined' && excludePosts.length > 0 ? numberOfPosts + excludePosts.length : numberOfPosts;\n postSuggestionsQuery._fields = queryFields;\n\n return {\n recentPosts: getEntityRecords( 'postType', postType ? postType : 'post', recentPostsQuery ),\n postList: getEntityRecords( 'postType', postType ? postType : 'post', postSuggestionsQuery ),\n postsToSearch,\n postsToSearchResolved,\n postsToInclude,\n postsToIncludeResolved,\n postsToExclude,\n postsToExcludeResolved\n }\n } )( RecentPostsEdit ),\n save: function () { // Render in PHP\n return null;\n },\n } )\n})( wp.i18n, wp.blocks, wp.element, wp.blockEditor, wp.components, wp.data, lodash, wp.htmlEntities, wp.date );\n","import {AdvColorControl} from \"../0-adv-components/components.jsx\";\n\n(function ( wpI18n, wpBlocks, wpElement, wpBlockEditor, wpComponents ) {\n wpBlockEditor = wp.blockEditor || wp.editor;\n const { __ } = wpI18n;\n const { Component, Fragment } = wpElement;\n const { registerBlockType } = wpBlocks;\n const { InspectorControls, RichText, PanelColorSettings } = wpBlockEditor;\n const { RangeControl, PanelBody, TextControl , ToggleControl } = wpComponents;\n\n const searchBlockIcon = (\n <svg fill=\"none\" height=\"20\" width=\"20\" stroke=\"currentColor\" strokeWidth=\"2\" viewBox=\"0 0 24 24\" xmlns=\"http://www.w3.org/2000/svg\">\n <circle fill=\"none\" cx=\"11\" cy=\"11\" r=\"8\"/>\n <line x1=\"21\" x2=\"16.65\" y1=\"21\" y2=\"16.65\"/>\n </svg>\n );\n\n const SEARCH_ICONS = {\n icon1: searchBlockIcon,\n icon2: (\n <svg fill=\"currentColor\" xmlns=\"http://www.w3.org/2000/svg\" width=\"20\" height=\"20\" viewBox=\"0 0 24 24\">\n <path fill=\"none\" d=\"M0 0h24v24H0V0zm0 0h24v24H0V0z\"/>\n <path d=\"M17.01 14h-.8l-.27-.27c.98-1.14 1.57-2.61 1.57-4.23 0-3.59-2.91-6.5-6.5-6.5s-6.5 3-6.5 6.5H2l3.84 4 4.16-4H6.51C6.51 7 8.53 5 11.01 5s4.5 2.01 4.5 4.5c0 2.48-2.02 4.5-4.5 4.5-.65 0-1.26-.14-1.82-.38L7.71 15.1c.97.57 2.09.9 3.3.9 1.61 0 3.08-.59 4.22-1.57l.27.27v.79l5.01 4.99L22 19l-4.99-5z\"/>\n </svg>\n ),\n icon3: (\n <svg fill=\"currentColor\" xmlns=\"http://www.w3.org/2000/svg\" width=\"20\" height=\"20\" viewBox=\"0 0 24 24\">\n <path d=\"M0 0h24v24H0z\" fill=\"none\"/>\n <path d=\"M20.94 11c-.46-4.17-3.77-7.48-7.94-7.94V1h-2v2.06C6.83 3.52 3.52 6.83 3.06 11H1v2h2.06c.46 4.17 3.77 7.48 7.94 7.94V23h2v-2.06c4.17-.46 7.48-3.77 7.94-7.94H23v-2h-2.06zM12 19c-3.87 0-7-3.13-7-7s3.13-7 7-7 7 3.13 7 7-3.13 7-7 7z\"/>\n </svg>\n ),\n icon4: (\n <svg fill=\"currentColor\" xmlns=\"http://www.w3.org/2000/svg\" width=\"20\" height=\"20\" viewBox=\"0 0 24 24\">\n <path fill=\"none\" d=\"M0 0h24v24H0V0z\"/>\n <path d=\"M18 13v7H4V6h5.02c.05-.71.22-1.38.48-2H4c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2v-5l-2-2zm-1.5 5h-11l2.75-3.53 1.96 2.36 2.75-3.54zm2.8-9.11c.44-.7.7-1.51.7-2.39C20 4.01 17.99 2 15.5 2S11 4.01 11 6.5s2.01 4.5 4.49 4.5c.88 0 1.7-.26 2.39-.7L21 13.42 22.42 12 19.3 8.89zM15.5 9C14.12 9 13 7.88 13 6.5S14.12 4 15.5 4 18 5.12 18 6.5 16.88 9 15.5 9z\"/>\n <path fill=\"none\" d=\"M0 0h24v24H0z\"/>\n </svg>\n ),\n icon5: (\n <svg fill=\"currentColor\" xmlns=\"http://www.w3.org/2000/svg\" width=\"20\" height=\"20\" viewBox=\"2 2 22 22\">\n <path d=\"M15.5 14h-.79l-.28-.27C15.41 12.59 16 11.11 16 9.5 16 5.91 13.09 3 9.5 3S3 5.91 3 9.5 5.91 16 9.5 16c1.61 0 3.09-.59 4.23-1.57l.27.28v.79l5 4.99L20.49 19l-4.99-5zm-6 0C7.01 14 5 11.99 5 9.5S7.01 5 9.5 5 14 7.01 14 9.5 11.99 14 9.5 14z\"/>\n <path d=\"M0 0h24v24H0z\" fill=\"none\"/>\n </svg>\n ),\n icon6: (\n <svg width=\"20\" height=\"20\" viewBox=\"0 0 26 26\" xmlns=\"http://www.w3.org/2000/svg\">\n <path d=\"M14.9462891,1C9.4033203,1,4.8935547,5.5097656,4.8935547,11.0532227 c0,2.5022583,0.9248047,4.7885132,2.4428101,6.5498657l-6.1166382,6.1166382c-0.2929688,0.2929688-0.2929688,0.7675781,0,1.0605469 C1.3662109,24.9267578,1.5576172,25,1.75,25s0.3837891-0.0732422,0.5302734-0.2197266l6.1165771-6.1165771 c1.7612305,1.5180054,4.0474243,2.442749,6.5494385,2.442749C20.4902344,21.1064453,25,16.5966797,25,11.0532227 S20.4902344,1,14.9462891,1z M14.9462891,19.6064453c-4.7158203,0-8.5527344-3.8369141-8.5527344-8.5532227 S10.2304688,2.5,14.9462891,2.5C19.6630859,2.5,23.5,6.3369141,23.5,11.0532227S19.6630859,19.6064453,14.9462891,19.6064453z\" fill=\"currentColor\"/>\n </svg>\n )\n };\n\n const previewImageData = 'data:image/png;base64,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';\n\n class SearchBarEdit extends Component {\n constructor() {\n super( ...arguments );\n }\n\n componentWillMount() {\n const { attributes, setAttributes } = this.props;\n const currentBlockConfig = advgbDefaultConfig['advgb-search-bar'];\n\n // No override attributes of blocks inserted before\n if (attributes.changed !== true) {\n if (typeof currentBlockConfig === 'object' && currentBlockConfig !== null) {\n Object.keys(currentBlockConfig).map((attribute) => {\n if (typeof attributes[attribute] === 'boolean') {\n attributes[attribute] = !!currentBlockConfig[attribute];\n } else {\n attributes[attribute] = currentBlockConfig[attribute];\n }\n });\n }\n\n // Finally set changed attribute to true, so we don't modify anything again\n setAttributes( { changed: true } );\n }\n }\n\n componentDidMount() {\n const { clientId, attributes, setAttributes } = this.props;\n const { searchBtnId } = attributes;\n\n setAttributes( { searchBtnId: `advgb-search-btn-${clientId}` } );\n }\n\n\n render() {\n const { attributes, setAttributes, className } = this.props;\n const {\n fullWidth, width, textColor, backgroundColor, searchIcon, searchIconOnRight,\n searchPlaceholder, searchButtonEnabled, searchButtonText, searchButtonTextColor,\n searchButtonBgColor, searchButtonRadius, searchButtonOnLeft, searchBtnId,\n searchBtnHoverColor, searchBtnHoverBgColor, searchBtnHoverShadow, searchBtnHoverShadowH, searchBtnHoverShadowV,\n searchBtnHoverShadowBlur, searchBtnHoverShadowSpread, searchBtnHoverOpacity, searchBtnHoverTranSpeed,\n isPreview,\n } = attributes;\n\n const searchBarIcon = (\n <span className=\"advgb-search-bar-icon\">\n {searchIcon ? SEARCH_ICONS[searchIcon] : searchBlockIcon}\n </span>\n );\n\n const searchBarButton = !searchButtonEnabled ? '' : (\n <div className=\"advgb-search-button-wrapper\">\n <span className=\"advgb-search-bar-button\"\n style={ {\n color: searchButtonTextColor,\n borderColor: searchButtonTextColor,\n backgroundColor: searchButtonBgColor,\n borderRadius: searchButtonRadius,\n } }\n >\n <RichText\n tagName=\"span\"\n value={ searchButtonText }\n onChange={ (value) => setAttributes( { searchButtonText: value.trim() } ) }\n onReplace={ () => null }\n onSplit={ () => null }\n placeholder={ 'Search' }\n keepPlaceholderOnFocus\n />\n </span>\n </div>\n );\n\n return (\n isPreview ?\n <img alt={__('Search Bar', 'advanced-gutenberg')} width='100%' src={previewImageData}/>\n :\n <Fragment>\n <InspectorControls>\n <PanelBody title={ __( 'Search Bar State', 'advanced-gutenberg' ) }>\n <ToggleControl\n label={ __( 'Full width', 'advanced-gutenberg' ) }\n checked={ fullWidth }\n onChange={ () => setAttributes( { fullWidth: !fullWidth } ) }\n />\n {!fullWidth && (\n <RangeControl\n label={ __( 'Width', 'advanced-gutenberg' ) }\n value={ width }\n onChange={ (value) => setAttributes( { width: value } ) }\n min={ 300 }\n max={ 2000 }\n />\n ) }\n </PanelBody>\n <PanelBody title={ __( 'Search Icon Settings', 'advanced-gutenberg' ) }>\n <ToggleControl\n label={ __( 'Search icon on the right', 'advanced-gutenberg' ) }\n checked={ searchIconOnRight }\n onChange={ () => setAttributes( { searchIconOnRight: !searchIconOnRight } ) }\n />\n <div className=\"advgb-icon-items\">\n <div className=\"advgb-icon-items-header\">\n { __( 'Search icon', 'advanced-gutenberg' ) }\n </div>\n <div className=\"advgb-icon-items-wrapper\">\n {Object.keys(SEARCH_ICONS).map((icon, idx) => (\n <div className=\"advgb-icon-item\" key={idx}>\n <span className={ icon === searchIcon ? 'active' : '' }\n onClick={ () => setAttributes( { searchIcon: icon } ) }\n >\n {SEARCH_ICONS[icon]}\n </span>\n </div>\n ))}\n </div>\n </div>\n </PanelBody>\n <PanelBody title={ __( 'Search Input Settings', 'advanced-gutenberg' ) } initialOpen={false}>\n <TextControl\n label={ __( 'Search placeholder', 'advanced-gutenberg' ) }\n value={ searchPlaceholder }\n onChange={ (value) => setAttributes( { searchPlaceholder: value } ) }\n />\n <PanelColorSettings\n title={ __( 'Input Color', 'advanced-gutenberg' ) }\n initialOpen={ false }\n colorSettings={ [\n {\n label: __( 'Background color', 'advanced-gutenberg' ),\n value: backgroundColor,\n onChange: (value) => setAttributes( { backgroundColor: value } ),\n },\n {\n label: __( 'Text color', 'advanced-gutenberg' ),\n value: textColor,\n onChange: (value) => setAttributes( { textColor: value } ),\n },\n ] }\n />\n </PanelBody>\n <PanelBody title={ __( 'Search Button Settings', 'advanced-gutenberg' ) } initialOpen={false}>\n <ToggleControl\n label={ __( 'Show submit button', 'advanced-gutenberg' ) }\n checked={ searchButtonEnabled }\n onChange={ () => setAttributes( { searchButtonEnabled: !searchButtonEnabled } ) }\n />\n <ToggleControl\n label={ __( 'Search button on the left', 'advanced-gutenberg' ) }\n checked={ searchButtonOnLeft }\n onChange={ () => setAttributes( { searchButtonOnLeft: !searchButtonOnLeft } ) }\n />\n {searchButtonEnabled && (\n <Fragment>\n <AdvColorControl\n label={ __('Background color', 'advanced-gutenberg') }\n value={ searchButtonBgColor }\n onChange={ (value) => setAttributes( { searchButtonBgColor: value } ) }\n />\n <AdvColorControl\n label={ __('Text color', 'advanced-gutenberg') }\n value={ searchButtonTextColor }\n onChange={ (value) => setAttributes( { searchButtonTextColor: value } ) }\n />\n <RangeControl\n label={ __( 'Border radius (px)', 'advanced-gutenberg' ) }\n help={ __( 'Affect both input and button.', 'advanced-gutenberg' ) }\n value={ searchButtonRadius }\n onChange={ (value) => setAttributes( { searchButtonRadius: value } ) }\n min={ 0 }\n max={ 100 }\n />\n <PanelColorSettings\n title={ __( 'Hover Colors', 'advanced-gutenberg' ) }\n initialOpen={ false }\n colorSettings={ [\n {\n label: __( 'Background color', 'advanced-gutenberg' ),\n value: searchBtnHoverBgColor,\n onChange: (value) => setAttributes( { searchBtnHoverBgColor: value } ),\n },\n {\n label: __( 'Text color', 'advanced-gutenberg' ),\n value: searchBtnHoverColor,\n onChange: (value) => setAttributes( { searchBtnHoverColor: value } ),\n },\n {\n label: __( 'Shadow color', 'advanced-gutenberg' ),\n value: searchBtnHoverShadow,\n onChange: (value) => setAttributes( { searchBtnHoverShadow: value } ),\n },\n ] }\n />\n <PanelBody title={ __( 'Hover Shadow', 'advanced-gutenberg' ) } initialOpen={false}>\n <RangeControl\n label={ __('Opacity (%)', 'advanced-gutenberg') }\n value={ searchBtnHoverOpacity }\n onChange={ ( value ) => setAttributes( { searchBtnHoverOpacity: value } ) }\n min={ 0 }\n max={ 100 }\n />\n <RangeControl\n label={ __('Transition speed (ms)', 'advanced-gutenberg') }\n value={ searchBtnHoverTranSpeed || '' }\n onChange={ ( value ) => setAttributes( { searchBtnHoverTranSpeed: value } ) }\n min={ 0 }\n max={ 3000 }\n />\n <RangeControl\n label={ __( 'Shadow H offset', 'advanced-gutenberg' ) }\n value={ searchBtnHoverShadowH || '' }\n onChange={ ( value ) => setAttributes( { searchBtnHoverShadowH: value } ) }\n min={ -50 }\n max={ 50 }\n />\n <RangeControl\n label={ __( 'Shadow V offset', 'advanced-gutenberg' ) }\n value={ searchBtnHoverShadowV || '' }\n onChange={ ( value ) => setAttributes( { searchBtnHoverShadowV: value } ) }\n min={ -50 }\n max={ 50 }\n />\n <RangeControl\n label={ __( 'Shadow blur', 'advanced-gutenberg' ) }\n value={ searchBtnHoverShadowBlur || '' }\n onChange={ ( value ) => setAttributes( { searchBtnHoverShadowBlur: value } ) }\n min={ 0 }\n max={ 50 }\n />\n <RangeControl\n label={ __( 'Shadow spread', 'advanced-gutenberg' ) }\n value={ searchBtnHoverShadowSpread || '' }\n onChange={ ( value ) => setAttributes( { searchBtnHoverShadowSpread: value } ) }\n min={ 0 }\n max={ 50 }\n />\n </PanelBody>\n </Fragment>\n ) }\n </PanelBody>\n </InspectorControls>\n <div className={`advgb-search-bar-wrapper ${className}`}>\n <div className=\"advgb-search-bar-inner\" style={ { width: fullWidth ? '100%' : width } }>\n {searchButtonOnLeft && searchBarButton}\n <div className=\"advgb-search-bar\"\n style={ {\n backgroundColor: backgroundColor,\n color: textColor,\n borderRadius: searchButtonRadius,\n } }\n >\n {!searchIconOnRight && searchBarIcon}\n <input type=\"text\" disabled={true}\n className=\"advgb-search-bar-input\"\n value={ searchPlaceholder ? searchPlaceholder : 'Type to search…' }\n />\n {searchIconOnRight && searchBarIcon}\n </div>\n {!searchButtonOnLeft && searchBarButton}\n </div>\n <style>\n {`.${searchBtnId}:hover {\n color: ${searchBtnHoverColor} !important;\n background-color: ${searchBtnHoverBgColor} !important;\n box-shadow: ${searchBtnHoverShadowH}px ${searchBtnHoverShadowV}px ${searchBtnHoverShadowBlur}px ${searchBtnHoverShadowSpread}px ${searchBtnHoverShadow};\n transition: all ${searchBtnHoverTranSpeed}s ease;\n opacity: ${searchBtnHoverOpacity/100}\n }`}\n </style>\n </div>\n </Fragment>\n )\n }\n }\n\n const blockAttrs = {\n fullWidth: {\n type: 'boolean',\n default: false,\n },\n width: {\n type: 'number',\n default: 500,\n },\n textColor: {\n type: 'string',\n },\n backgroundColor: {\n type: 'string',\n },\n searchIcon: {\n type: 'string',\n default: 'icon1',\n },\n searchIconOnRight: {\n type: 'boolean',\n },\n searchPlaceholder: {\n type: 'string',\n },\n searchButtonEnabled: {\n type: 'boolean',\n default: true,\n },\n searchButtonText: {\n type: 'string',\n default: 'SEARCH',\n },\n searchButtonTextColor: {\n type: 'string',\n },\n searchButtonBgColor: {\n type: 'string',\n },\n searchButtonRadius: {\n type: 'number',\n default: 0,\n },\n searchButtonOnLeft: {\n type: 'boolean',\n default: false,\n },\n searchBtnId : {\n type: 'string',\n },\n searchBtnHoverColor: {\n type: 'string',\n },\n searchBtnHoverBgColor: {\n type: 'string',\n },\n searchBtnHoverShadow: {\n type: 'string',\n },\n searchBtnHoverShadowH: {\n type: 'number',\n default: 1,\n },\n searchBtnHoverShadowV: {\n type: 'number',\n default: 1,\n },\n searchBtnHoverShadowBlur: {\n type: 'number',\n default: 12,\n },\n searchBtnHoverShadowSpread: {\n type: 'number',\n default: 0,\n },\n searchBtnHoverOpacity: {\n type: 'number',\n default: 100,\n },\n searchBtnHoverTranSpeed: {\n type: 'number',\n default: 200,\n },\n changed: {\n type: 'boolean',\n default: false,\n },\n isPreview: {\n type: 'boolean',\n default: false,\n },\n };\n\n registerBlockType('advgb/search-bar', {\n title: __( 'Search Bar - PublishPress', 'advanced-gutenberg' ),\n description: __( 'Easy to create a search bar for your site.', 'advanced-gutenberg' ),\n icon: {\n src: searchBlockIcon,\n foreground: typeof advgbBlocks !== 'undefined' ? advgbBlocks.color : undefined,\n },\n category: 'advgb-category',\n keywords: [ __( 'accordion', 'advanced-gutenberg' ), __( 'list', 'advanced-gutenberg' ), __( 'faq', 'advanced-gutenberg' ) ],\n attributes: blockAttrs,\n example: {\n attributes: {\n isPreview: true\n },\n },\n supports: {\n align: true,\n anchor: true\n },\n styles: [\n { name: 'default', label: __( 'Default', 'advanced-gutenberg' ), isDefault: true },\n { name: 'classic', label: __( 'Classic', 'advanced-gutenberg' ) },\n ],\n edit: SearchBarEdit,\n save: function ( { attributes, className } ) {\n const {\n fullWidth, width, textColor, backgroundColor, searchIcon, searchIconOnRight,\n searchPlaceholder, searchButtonEnabled, searchButtonText, searchButtonTextColor,\n searchButtonBgColor, searchButtonRadius, searchButtonOnLeft, searchBtnId,\n } = attributes;\n\n const searchBarIcon = (\n <span className=\"advgb-search-bar-icon\">\n {searchIcon ? SEARCH_ICONS[searchIcon] : searchBlockIcon}\n </span>\n );\n\n const searchBarButton = !searchButtonEnabled ? '' : (\n <div className=\"advgb-search-button-wrapper\">\n <button\n type=\"submit\"\n className={`advgb-search-bar-button ${searchBtnId}`}\n style={ {\n color: searchButtonTextColor,\n borderColor: searchButtonTextColor,\n backgroundColor: searchButtonBgColor,\n borderRadius: searchButtonRadius,\n } }\n >\n {searchButtonText}\n </button>\n </div>\n );\n\n return (\n <div className={`advgb-search-bar-wrapper ${className}`}>\n <form method=\"get\"\n action={advgbBlocks.home_url}\n className=\"advgb-search-bar-form\"\n role=\"search\"\n >\n <div className=\"advgb-search-bar-inner\" style={ { width: fullWidth ? '100%' : width } }>\n {searchButtonOnLeft && searchBarButton}\n <div className=\"advgb-search-bar\"\n style={ {\n backgroundColor: backgroundColor,\n color: textColor,\n borderRadius: searchButtonRadius,\n } }\n >\n {!searchIconOnRight && searchBarIcon}\n <input type=\"text\"\n className=\"advgb-search-bar-input\"\n name=\"s\"\n placeholder={ searchPlaceholder ? searchPlaceholder : 'Type to search…' }\n />\n {searchIconOnRight && searchBarIcon}\n </div>\n {!searchButtonOnLeft && searchBarButton}\n </div>\n </form>\n </div>\n );\n }\n } );\n})( wp.i18n, wp.blocks, wp.element, wp.blockEditor, wp.components );\n","(function ( wpI18n, wpBlocks, wpElement, wpBlockEditor, wpComponents ) {\n wpBlockEditor = wp.blockEditor || wp.editor;\n const { __ } = wpI18n;\n const { Component, Fragment } = wpElement;\n const { registerBlockType } = wpBlocks;\n const { InspectorControls, BlockControls, MediaUpload, AlignmentToolbar, PanelColorSettings } = wpBlockEditor;\n const { RangeControl, BaseControl, PanelBody, TextControl, ToolbarButton, Button, ToolbarGroup, Tooltip } = wpComponents;\n\n const socialBlockIconContent = (\n <g fill=\"currentColor\">\n <path fill=\"none\" d=\"M0,0h24v24H0V0z\"/>\n <path d=\"M18,16.08c-0.76,0-1.44,0.3-1.96,0.77L8.91,12.7C8.96,12.47,9,12.24,9,12s-0.04-0.47-0.09-0.7l7.05-4.11 C16.5,7.69,17.21,8,18,8c1.66,0,3-1.34,3-3c0-1.66-1.34-3-3-3s-3,1.34-3,3c0,0.24,0.04,0.47,0.09,0.7L8.04,9.81 C7.5,9.31,6.79,9,6,9c-1.66,0-3,1.34-3,3c0,1.66,1.34,3,3,3c0.79,0,1.5-0.31,2.04-0.81l7.12,4.16c-0.05,0.21-0.08,0.43-0.08,0.65 c0,1.61,1.31,2.92,2.92,2.92s2.92-1.31,2.92-2.92C20.92,17.39,19.61,16.08,18,16.08z M18,4c0.55,0,1,0.45,1,1s-0.45,1-1,1 s-1-0.45-1-1S17.45,4,18,4z M6,13c-0.55,0-1-0.45-1-1s0.45-1,1-1s1,0.45,1,1S6.55,13,6,13z M18,20.02c-0.55,0-1-0.45-1-1 s0.45-1,1-1s1,0.45,1,1S18.55,20.02,18,20.02z\"/>\n </g>\n );\n\n const previewImageData = 'data:image/png;base64,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';\n\n const socialBlockIcon = <svg width=\"20\" height=\"20\" viewBox=\"0 0 24 24\">{socialBlockIconContent}</svg>;\n\n const ICONS_SET_NEW = {\n blogger: (\n <Fragment>\n <g fill=\"currentColor\" fill-rule=\"evenodd\" stroke=\"none\" stroke-width=\"1\">\n <path d=\"M50,25 C50,11.1928806 38.8071194,0 25,0 C11.1928806,0 0,11.1928806 0,25 C0,38.8071194 11.1928806,50 25,50 C38.8071194,50 50,38.8071194 50,25 Z M47,25 C47,12.8497349 37.1502651,3 25,3 C12.8497349,3 3,12.8497349 3,25 C3,37.1502651 12.8497349,47 25,47 C37.1502651,47 47,37.1502651 47,25 Z M14,28.8986406 C14,32.8228477 17.2049102,36 21.1539531,36 L28.8544258,36 C32.8063906,36 36,32.8228477 36,28.8986406 L36,23.8630898 C36,23.0788672 35.3675,22.4423281 34.5776484,22.4423281 L33.3700977,22.4423281 C32.5888398,22.4423281 31.9736563,21.8570938 31.9220508,21.121082 C31.9136289,17.1796445 28.7112969,14 24.7595898,14 L21.1539531,14 C17.2049102,14 14.002793,17.1796875 14,21.1041523 L14,28.8986406 Z M27,21.5001179 C27,22.3263074 26.3641346,23 25.5840879,23 L21.4159121,23 C20.6359096,23 20,22.3264017 20,21.5001179 C19.9999116,20.6705805 20.6358212,20 21.4159121,20 L25.5840879,20 C26.3641346,20 27,20.6705805 27,21.5001179 Z M31,28.4932201 C31,29.3206654 30.3988164,30 29.6624116,30 L21.3288673,30 C20.5925066,30 20,29.3206654 20,28.4932201 C20,27.6657749 20.5925947,27 21.3288673,27 L29.6624116,27 C30.3988164,27 31,27.665725 31,28.4932201 Z M31,28.4932201\"/>\n </g>\n </Fragment>\n ),\n facebook: (\n <Fragment>\n <g fill=\"currentColor\" fill-rule=\"evenodd\" stroke=\"none\" stroke-width=\"1\">\n <path d=\"M25,50 C38.8071194,50 50,38.8071194 50,25 C50,11.1928806 38.8071194,0 25,0 C11.1928806,0 0,11.1928806 0,25 C0,38.8071194 11.1928806,50 25,50 Z M25,47 C37.1502651,47 47,37.1502651 47,25 C47,12.8497349 37.1502651,3 25,3 C12.8497349,3 3,12.8497349 3,25 C3,37.1502651 12.8497349,47 25,47 Z M26.8145197,36 L26.8145197,24.998712 L30.0687449,24.998712 L30.5,21.2076072 L26.8145197,21.2076072 L26.8200486,19.3101227 C26.8200486,18.3213442 26.9207209,17.7915341 28.4425538,17.7915341 L30.4769629,17.7915341 L30.4769629,14 L27.2222769,14 C23.3128757,14 21.9368678,15.8390937 21.9368678,18.9318709 L21.9368678,21.2080366 L19.5,21.2080366 L19.5,24.9991413 L21.9368678,24.9991413 L21.9368678,36 L26.8145197,36 Z M26.8145197,36\"/>\n </g>\n </Fragment>\n ),\n flickr: (\n <Fragment>\n <g fill=\"currentColor\" fill-rule=\"evenodd\" stroke=\"none\" stroke-width=\"1\">\n <path d=\"M0,25 C0,38.8071194 11.1928806,50 25,50 C38.8071194,50 50,38.8071194 50,25 C50,11.1928806 38.8071194,0 25,0 C11.1928806,0 0,11.1928806 0,25 Z M3,25 C3,37.1502651 12.8497349,47 25,47 C37.1502651,47 47,37.1502651 47,25 C47,12.8497349 37.1502651,3 25,3 C12.8497349,3 3,12.8497349 3,25 Z M11,24.3933898 C11,27.9245881 13.8664452,30.7868324 17.4026552,30.7868852 C20.9389182,30.7868852 23.8053634,27.9245881 23.8053634,24.3933898 C23.8053634,20.8622443 20.9389711,17.9999472 17.4026552,18 C13.8664452,18 11,20.8622443 11,24.3933898 Z M33.4026552,30.7868852 C36.9389711,30.7868852 39.8053634,27.9245881 39.8053634,24.3933898 C39.8053634,20.8622971 36.9389182,18 33.4026552,18 C29.8663923,18 27,20.8622971 27,24.3933898 C27,27.9245881 29.8664452,30.7868852 33.4026552,30.7868852 Z M33.394864,19.9672131 C35.8394032,19.9672131 37.8210935,21.9489034 37.8210935,24.3934426 C37.8210935,26.8379818 35.8394032,28.8196721 33.394864,28.8196721 C30.9503248,28.8196721 28.9686345,26.8379818 28.9686345,24.3934426 C28.9686345,21.9489034 30.9503248,19.9672131 33.394864,19.9672131 Z M33.394864,19.9672131\"/>\n </g>\n </Fragment>\n ),\n instagram: (\n <Fragment>\n <g fill=\"currentColor\" fill-rule=\"evenodd\" stroke=\"none\" stroke-width=\"1\">\n <path d=\"M25,0 C11.1928806,0 0,11.1928806 0,25 C0,38.8071194 11.1928806,50 25,50 C38.8071194,50 50,38.8071194 50,25 C50,11.1928806 38.8071194,0 25,0 Z M25,3 C12.8497349,3 3,12.8497349 3,25 C3,37.1502651 12.8497349,47 25,47 C37.1502651,47 47,37.1502651 47,25 C47,12.8497349 37.1502651,3 25,3 Z M35.9513128,34.5096659 C35.9701595,34.4075385 35.9839804,34.3037693 36,34.2013135 L36,15.7986865 C35.9846086,15.6978726 35.9714159,15.5967304 35.9525693,15.496245 C35.7600194,14.4654483 34.9467868,13.6655054 33.9482288,13.5226585 C33.9067662,13.517076 33.8662459,13.5075528 33.8254116,13.5 L16.1745884,13.5 C16.0681049,13.5200314 15.9609932,13.5351371 15.8560802,13.5600942 C14.8813947,13.7922616 14.1601965,14.6128926 14.0213595,15.6453312 C14.0157055,15.6883495 14.0072245,15.7310394 14,15.7740577 L14,34.2269275 C14.0201031,34.3438321 14.0361227,34.4617219 14.0612516,34.5779697 C14.2767315,35.5742861 15.0902783,36.3466448 16.0580534,36.4766848 C16.1048559,36.4825957 16.1519725,36.4921188 16.198775,36.5 L33.801225,36.5 C33.9155613,36.4796402 34.0302117,36.4628926 34.1432916,36.4372787 C35.0416482,36.2379497 35.775725,35.454426 35.9513128,34.5096659 Z M16.380331,33.0989292 C16.380331,33.5885494 16.7858479,34.0095374 17.254187,34.0095374 C22.4169106,34.0098658 27.5793201,34.0098658 32.7420437,34.0095374 C33.2147803,34.0095374 33.6180985,33.5892062 33.6180985,33.0959737 C33.6184126,29.6962164 33.6180985,26.2967875 33.6180985,22.8973587 L33.6180985,22.8267561 L31.5179543,22.8267561 C31.8144748,23.81749 31.9055669,24.8252998 31.7893459,25.8524843 C31.6724968,26.8799971 31.3558732,27.8362507 30.8401034,28.7192747 C30.3240195,29.6032838 29.6549637,30.3355797 28.8357629,30.9184609 C26.7123745,32.4303398 23.9167892,32.5633352 21.6636731,31.2412621 C20.5247077,30.5736579 19.6304345,29.6426899 19.0069247,28.4431039 C18.0768429,26.653084 17.9282685,24.7744003 18.4738788,22.8251142 C17.7771813,22.825771 17.0833107,22.825771 16.3800168,22.825771 L16.3800168,22.8878355 C16.3800168,26.2915334 16.3797027,29.6952313 16.380331,33.0989292 Z M24.897757,29.6581239 C27.3886549,29.7139492 29.403361,27.6333095 29.4558175,25.1027841 C29.5095304,22.4931182 27.4960808,20.3376071 25.0001571,20.339249 C22.5601451,20.3376071 20.5765359,22.3900057 20.5422979,24.9293975 C20.5071175,27.5370931 22.5039192,29.604269 24.897757,29.6581239 Z M33.6177844,18.481582 C33.6180985,17.7555254 33.6180985,17.0291405 33.6177844,16.303084 C33.6177844,15.7822673 33.2235754,15.3678469 32.7260241,15.3675186 C32.03341,15.3671902 31.3407958,15.3668618 30.6478676,15.3675186 C30.1515727,15.3681753 29.7561073,15.7835808 29.7557932,16.3043975 C29.7554791,17.0242147 29.7535944,17.744032 29.7583061,18.4641776 C29.7589343,18.5715591 29.7784092,18.6832096 29.8110767,18.7850086 C29.9354645,19.1682324 30.2712489,19.4033552 30.6824198,19.4053255 C31.0166336,19.4059823 31.3508474,19.4049971 31.6853753,19.4049971 C32.0472308,19.4007282 32.4103428,19.4079526 32.7725125,19.3987579 C33.2383386,19.3866077 33.6177844,18.9692319 33.6177844,18.481582 Z M33.6177844,18.481582\"/>\n </g>\n </Fragment>\n ),\n linkedin: (\n <Fragment>\n <g fill=\"currentColor\" fill-rule=\"evenodd\" stroke=\"none\" stroke-width=\"1\">\n <path d=\"M25,50 C38.8071194,50 50,38.8071194 50,25 C50,11.1928806 38.8071194,0 25,0 C11.1928806,0 0,11.1928806 0,25 C0,38.8071194 11.1928806,50 25,50 Z M25,47 C37.1502651,47 47,37.1502651 47,25 C47,12.8497349 37.1502651,3 25,3 C12.8497349,3 3,12.8497349 3,25 C3,37.1502651 12.8497349,47 25,47 Z M14,20.1180479 L14,34.6581834 L18.7100851,34.6581834 L18.7100851,20.1180479 L14,20.1180479 Z M16.6646962,13 C15.0534058,13 14,14.0858611 14,15.5115122 C14,16.9076331 15.0222711,18.0247614 16.6035556,18.0247614 L16.6336556,18.0247614 C18.2759867,18.0247614 19.2988222,16.9076331 19.2988222,15.5115122 C19.2682519,14.0858611 18.2759867,13 16.6646962,13 Z M30.5769213,20.1180479 C28.076176,20.1180479 26.9565501,21.5293199 26.3314108,22.5193527 L26.3314108,20.4598644 L21.6207614,20.4598644 C21.6828427,21.8242356 21.6207614,35 21.6207614,35 L26.3314108,35 L26.3314108,26.8795887 C26.3314108,26.445032 26.3619812,26.0115368 26.4865199,25.7004084 C26.826932,24.83226 27.6020069,23.9334233 28.9032674,23.9334233 C30.6083381,23.9334233 31.2899149,25.2667202 31.2899149,27.2206333 L31.2899149,34.999614 L35.9998119,34.999614 L36,26.6627446 C36,22.1966439 33.6763743,20.1180479 30.5769213,20.1180479 Z M30.5769213,20.1180479\"/>\n </g>\n </Fragment>\n ),\n mail: (\n <Fragment>\n <g fill=\"currentColor\" fill-rule=\"evenodd\" stroke=\"none\" stroke-width=\"1\">\n <path d=\"M25,0 C11.1928806,0 0,11.1928806 0,25 C0,38.8071194 11.1928806,50 25,50 C38.8071194,50 50,38.8071194 50,25 C50,11.1928806 38.8071194,0 25,0 Z M25,3 C12.8497349,3 3,12.8497349 3,25 C3,37.1502651 12.8497349,47 25,47 C37.1502651,47 47,37.1502651 47,25 C47,12.8497349 37.1502651,3 25,3 Z M37,31.9646738 L37,17 L28.262875,25.4642914 L37,31.9646738 Z M13,31.9646738 L21.7369375,25.4633812 L13,17 L13,31.9646738 Z M22.9140156,26.604743 L13,33 L37,33 L27.08575,26.604743 L25,28.625083 L22.9140156,26.604743 Z M13.72,17 L25,26.0581312 L36.28,17 L13.72,17 Z M13.72,17\"/>\n </g>\n </Fragment>\n ),\n picasa: (\n <Fragment>\n <g fill=\"currentColor\" fill-rule=\"evenodd\" stroke=\"none\" stroke-width=\"1\">\n <path d=\"M25,50 C38.8071194,50 50,38.8071194 50,25 C50,11.1928806 38.8071194,0 25,0 C11.1928806,0 0,11.1928806 0,25 C0,38.8071194 11.1928806,50 25,50 Z M25,47 C37.1502651,47 47,37.1502651 47,25 C47,12.8497349 37.1502651,3 25,3 C12.8497349,3 3,12.8497349 3,25 C3,37.1502651 12.8497349,47 25,47 Z M18.3081608,24.9268242 L18.3081608,36.1026094 C15.8801013,34.6339648 13.9785429,32.4174648 12.9377792,29.8090352 L18.3081608,24.9268242 Z M20.4591064,12.8520586 C21.9243514,12.297832 23.4480966,12 24.9979941,12 C26.8609587,12 28.6590247,12.3973125 30.3579148,13.1656836 L30.3579148,21.8322148 L20.4591064,12.8520586 Z M12.4719619,28.3769023 C12.1682386,27.2530625 12,26.1186602 12,25 C12,20.096918 14.7097944,15.6850937 19.0744513,13.4426953 L23.9947578,17.9067734 L12.4719619,28.3769023 Z M36.6723724,30.6506328 C34.5083252,35.1147617 29.9554726,38 24.9979941,38 C23.1521937,38 21.3633699,37.6133008 19.6735189,36.8500586 L19.6735189,30.6506328 L36.6723724,30.6506328 Z M37.257729,29.2811133 L31.727437,29.2811133 L31.727437,13.9131836 C35.5955539,16.2654219 38.0001016,20.483668 38,25.0000508 C38,26.4583867 37.7438081,27.8959531 37.257729,29.2811133 Z M37.257729,29.2811133\"/>\n </g>\n </Fragment>\n ),\n pinterest: (\n <Fragment>\n <g fill=\"currentColor\" fill-rule=\"evenodd\" stroke=\"none\" stroke-width=\"1\">\n <path d=\"M25,0 C11.1928806,0 0,11.1928806 0,25 C0,38.8071194 11.1928806,50 25,50 C38.8071194,50 50,38.8071194 50,25 C50,11.1928806 38.8071194,0 25,0 Z M25,3 C12.8497349,3 3,12.8497349 3,25 C3,37.1502651 12.8497349,47 25,47 C37.1502651,47 47,37.1502651 47,25 C47,12.8497349 37.1502651,3 25,3 Z M15.5,21.3293651 C15.5,23.8979841 16.4179886,26.1831362 18.3868965,27.0346983 C18.7097504,27.1745243 18.9989411,27.0395084 19.0925718,26.6608336 C19.1577063,26.3987635 19.3117743,25.737617 19.3805099,25.4622774 C19.4749236,25.0877494 19.4382854,24.9563826 19.1777477,24.629956 C18.6100133,23.9205421 18.2472332,23.0021355 18.2472332,21.7012393 C18.2472332,17.9270976 20.9127352,14.5483833 25.1881227,14.5483833 C28.9739058,14.5483833 31.0538241,16.9989049 31.0538241,20.2716301 C31.0538241,24.5777078 29.2549547,28.2120235 26.5844424,28.2120235 C25.1096795,28.2120235 24.005682,26.9199182 24.3595374,25.3352232 C24.7832244,23.4433422 25.6039811,21.4015173 25.6039811,20.0359328 C25.6039811,18.8134918 24.9845775,17.7939063 23.7027128,17.7939063 C22.1950696,17.7939063 20.983976,19.4461092 20.983976,21.6594407 C20.983976,23.0691459 21.4336542,24.0225504 21.4336542,24.0225504 C21.4336542,24.0225504 19.890782,30.9476708 19.6203801,32.1604915 C19.0817683,34.5758493 19.5394317,37.5367443 19.5781053,37.8358028 C19.6008084,38.0129489 19.8157834,38.0550792 19.9131719,37.9212244 C20.0522089,37.7289843 21.8477903,35.3806369 22.4582691,33.0341139 C22.6309694,32.36965 23.4498471,28.9290673 23.4498471,28.9290673 C23.9396081,29.9187967 25.3711567,30.7905945 26.8935179,30.7905945 C31.4253723,30.7905945 34.5,26.4138574 34.5,20.5554288 C34.5,16.1256142 30.9581579,12 25.575015,12 C18.8771271,12 15.5,17.0871462 15.5,21.3293651 Z M15.5,21.3293651\"/>\n </g>\n </Fragment>\n ),\n reddit: (\n <Fragment>\n <g fill=\"currentColor\" fill-rule=\"evenodd\" stroke=\"none\" stroke-width=\"1\">\n <path d=\"M50,25 C50,11.1928806 38.8071194,0 25,0 C11.1928806,0 0,11.1928806 0,25 C0,38.8071194 11.1928806,50 25,50 C38.8071194,50 50,38.8071194 50,25 Z M47,25 C47,12.8497349 37.1502651,3 25,3 C12.8497349,3 3,12.8497349 3,25 C3,37.1502651 12.8497349,47 25,47 C37.1502651,47 47,37.1502651 47,25 Z M29.285672,25.1142857 C28.1613122,25.1142857 27.25,26.0886553 27.25,27.2907328 C27.25,28.4931237 28.1613122,29.4676812 29.285672,29.4676812 C30.4097389,29.4676812 31.3211097,28.4931237 31.3211097,27.2907328 C31.3211097,26.0886553 30.4097389,25.1142857 29.285672,25.1142857 L29.285672,25.1142857 Z M40,25.1842541 C40,23.1661499 38.4647792,21.5245722 36.5778773,21.5245722 C35.7246903,21.5245722 34.9441013,21.8609333 34.344099,22.4154154 C32.0204962,20.8025988 29.01275,19.8611259 25.7938312,19.7275339 L27.4944043,13.7975395 L32.4418455,14.9819468 C32.4417283,14.9962334 32.4399119,15.0100187 32.4399119,15.0243053 C32.4399119,16.6918871 33.7087059,18.0486732 35.2680089,18.0486732 C36.8273118,18.0486732 38.0961058,16.6919498 38.0961058,15.0243053 C38.0961058,13.3566608 36.827429,12 35.2680089,12 C34.0961293,12 33.0888402,12.7662743 32.6602252,13.8548112 L27.2437392,12.5581164 C26.969285,12.4923856 26.6939519,12.6634486 26.6115688,12.9510599 L24.6717565,19.7148765 C21.2781691,19.773088 18.0911839,20.7250878 15.6557838,22.4155407 C15.0558987,21.8611213 14.2751339,21.5246975 13.4220056,21.5246975 C11.5351037,21.5246975 10,23.1663379 10,25.1843795 C10,26.5078929 10.6604127,27.6694291 11.6472525,28.3122624 C11.5968617,28.6558922 11.5703186,29.0034695 11.5703186,29.3544932 C11.5703186,31.9771452 12.997375,34.4258518 15.5885179,36.2485809 C18.110227,38.0226854 21.4524861,39 24.9999414,39 C28.5471037,39 31.8895972,38.0224974 34.4113063,36.2485809 C37.0025078,34.4256639 38.429447,31.9771452 38.429447,29.3544932 C38.429447,29.0034695 38.4030211,28.6560801 38.3525131,28.3122624 C39.3394701,27.6693665 40,26.5077049 40,25.1842541 L40,25.1842541 Z M35.2678917,13.1509466 C36.2337548,13.1509466 37.0196173,13.9912229 37.0196173,15.0242426 C37.0196173,16.0570117 36.2337548,16.8975386 35.2678917,16.8975386 C34.3021457,16.8975386 33.5161661,16.0570117 33.5161661,15.0242426 C33.5161075,13.9912856 34.3019699,13.1509466 35.2678917,13.1509466 L35.2678917,13.1509466 Z M11.076137,25.1842541 C11.076137,23.8009626 12.1284263,22.6755815 13.4218884,22.6755815 C13.9116754,22.6755815 14.3665405,22.8374333 14.7430654,23.1128259 C13.3654038,24.2769312 12.4090914,25.6430537 11.9283278,27.1170775 C11.4083063,26.6566487 11.076137,25.9612434 11.076137,25.1842541 L11.076137,25.1842541 Z M24.9999414,37.8488654 C18.1882742,37.8488654 12.6466314,34.0382971 12.6466314,29.3543679 C12.6466314,29.15304 12.6575885,28.9535918 12.6776862,28.7556476 C12.7167684,28.3727297 12.7922961,27.9965165 12.9030387,27.6288878 C13.3168294,26.2557474 14.2139618,25.0028522 15.4665839,23.9584283 C15.7443779,23.7265221 16.0403361,23.5054561 16.3517045,23.295293 C18.5818499,21.7901897 21.6355923,20.8602464 24.9999414,20.8602464 C28.3641147,20.8602464 31.4179743,21.790315 33.6479439,23.295293 C33.9593123,23.5054561 34.2553877,23.7265847 34.5331232,23.9584283 C35.7858039,25.0027895 36.6829949,26.2557474 37.0967269,27.6288878 C37.2075282,27.9965165 37.2830558,28.3727297 37.3220794,28.7556476 C37.3423529,28.9534039 37.3530756,29.15304 37.3530756,29.3543679 C37.3530756,34.0383598 31.8114915,37.8488654 24.9999414,37.8488654 L24.9999414,37.8488654 Z M38.071555,27.1172028 C37.5909086,25.6432417 36.6344204,24.2769312 35.2567588,23.1128886 C35.6332837,22.837496 36.0880902,22.6756441 36.5778773,22.6756441 C37.8713979,22.6756441 38.9236872,23.8009626 38.9236872,25.1843168 C38.9236872,25.9612434 38.5916937,26.6566487 38.071555,27.1172028 L38.071555,27.1172028 Z M29.1000551,33.0352917 C28.0801683,33.929456 26.815593,34.3281642 24.9999414,34.3281642 C23.1841726,34.3281642 21.9196559,33.929456 20.8995934,33.0352917 C20.6583619,32.8238128 20.3022277,32.8616597 20.1045317,33.1195073 C19.9066598,33.3776056 19.9419334,33.7583304 20.183282,33.9699346 C21.4026227,35.0389841 22.9330974,35.5366958 24.9999414,35.5366958 C27.0667854,35.5366958 28.5972016,35.0389841 29.8166008,33.9699346 C30.0578323,33.7583304 30.093223,33.3776056 29.8953512,33.1195073 C29.6971863,32.8611584 29.3412865,32.8238128 29.1000551,33.0352917 L29.1000551,33.0352917 Z M22.3208167,27.2907328 C22.3208167,26.0886553 21.4096217,25.1142857 20.2855548,25.1142857 C19.1613122,25.1142857 18.25,26.0886553 18.25,27.2907328 C18.25,28.4931237 19.1613707,29.4676812 20.2855548,29.4676812 C21.4096217,29.4675559 22.3208167,28.4931237 22.3208167,27.2907328 L22.3208167,27.2907328 Z M22.3208167,27.2907328\"/>\n </g>\n </Fragment>\n ),\n skype: (\n <Fragment>\n <g fill=\"currentColor\" fill-rule=\"evenodd\" stroke=\"none\" stroke-width=\"1\">\n <path d=\"M50,25 C50,11.1928806 38.8071194,0 25,0 C11.1928806,0 0,11.1928806 0,25 C0,38.8071194 11.1928806,50 25,50 C38.8071194,50 50,38.8071194 50,25 Z M47,25 C47,12.8497349 37.1502651,3 25,3 C12.8497349,3 3,12.8497349 3,25 C3,37.1502651 12.8497349,47 25,47 C37.1502651,47 47,37.1502651 47,25 Z M25.4397706,13.975276 C24.8096937,13.975276 24.1919703,14.0277875 23.5908485,14.1278564 C22.5130674,13.4152862 21.2304038,13 19.8499866,13 C16.0647401,13 13,16.1114511 13,19.9506313 C13,21.3475345 13.4052238,22.6452605 14.1030252,23.7348727 C14.0090312,24.330184 13.9609845,24.939812 13.9609845,25.5608835 C13.9609845,31.9601448 19.0985232,37.1471351 25.4397218,37.1471351 C26.1553942,37.1471351 26.8521702,37.0764923 27.5293662,36.9523474 C28.5816102,37.6146354 29.8210609,38 31.1497692,38 C34.9340392,38 38,34.8877563 38,31.0489724 C37.9998535,29.5978238 37.5625009,28.2486268 36.8112328,27.1332542 C36.879885,26.6180477 36.9193869,26.0942709 36.9193869,25.5610817 C36.9193869,19.1628112 31.7792114,13.975276 25.4397706,13.975276 Z M19.9677886,28.6935701 C21.3911596,28.5966276 22.2458078,30.338952 23.0054897,30.8236149 C23.7642429,31.3064835 26.6513076,32.4065946 28.1762921,30.6288326 C29.836859,28.6935701 27.0719846,27.6921461 25.0453354,27.3890074 C22.1517212,26.9520931 18.4983763,25.3558056 18.7825911,22.210082 C19.0669036,19.066352 21.4014725,17.454464 23.8583783,17.2270851 C26.9902148,16.9371546 29.0290341,17.7109007 30.6416535,19.1141006 C32.5063271,20.7354087 31.497377,22.5479106 30.3093446,22.693748 C29.1260044,22.8387382 27.7969155,20.0270054 25.187565,19.9847394 C22.4980576,19.941676 20.6803539,22.8387382 24.000559,23.6622764 C27.3224748,24.4849175 30.8798758,24.8228956 32.1609683,27.9196246 C33.4429406,31.0166527 30.1690701,34.305622 26.5147477,34.4997563 C22.8634067,34.6936913 21.1547457,33.8699039 19.5894873,32.3719545 C17.8414321,30.6988605 18.5436356,28.7905625 19.9677886,28.6935701 Z M19.9677886,28.6935701\"/>\n </g>\n </Fragment>\n ),\n soundcloud: (\n <Fragment>\n <g fill=\"currentColor\" fill-rule=\"evenodd\" stroke=\"none\" stroke-width=\"1\">\n <path d=\"M25,0 C11.1928806,0 0,11.1928806 0,25 C0,38.8071194 11.1928806,50 25,50 C38.8071194,50 50,38.8071194 50,25 C50,11.1928806 38.8071194,0 25,0 Z M25,3 C12.8497349,3 3,12.8497349 3,25 C3,37.1502651 12.8497349,47 25,47 C37.1502651,47 47,37.1502651 47,25 C47,12.8497349 37.1502651,3 25,3 Z M11.2046957,26.4994198 L11,28.2899843 L11.2046957,30.0498224 C11.2122973,30.1238678 11.258563,30.1755611 11.3170241,30.1755611 C11.3736257,30.1755611 11.4197274,30.1243715 11.4286961,30.0505779 L11.6713997,28.2899843 L11.4286961,26.4989161 C11.4200555,26.4251226 11.3733523,26.3731145 11.3170241,26.3731145 C11.2586177,26.3731145 11.2122426,26.4251226 11.2046957,26.4994198 Z M12.8503005,25.3946571 C12.8503005,25.3952867 12.5750031,28.2897324 12.5750031,28.2897324 L12.8503005,31.1207736 C12.8580661,31.1967079 12.9071756,31.2514864 12.9668398,31.2514864 C13.0253555,31.2514864 13.0733712,31.1979672 13.0829963,31.1215921 L13.3961375,28.2897324 L13.0833791,25.3946571 C13.0737541,25.3177153 13.0258477,25.2645739 12.9668398,25.2645739 C12.9075037,25.2645739 12.8583943,25.3194783 12.8503005,25.3946571 Z M14.396866,24.761745 L14.1500608,28.2908658 L14.396866,31.7053294 C14.4034832,31.8110456 14.4745771,31.8908837 14.5613116,31.8908837 C14.6470618,31.8908837 14.7178823,31.8109197 14.7254838,31.7053294 L15.0061953,28.2908658 L14.7254838,24.7609894 C14.7179369,24.6552103 14.6471712,24.5753722 14.5613116,24.5753722 C14.4745771,24.5753722 14.403866,24.6552732 14.396866,24.761745 Z M15.9578691,25.0172521 L15.7251733,28.2909287 L15.9578691,31.7335372 C15.9645956,31.8549944 16.0449317,31.9468586 16.1461038,31.9468586 C16.2457993,31.9468586 16.3264635,31.8549314 16.3339557,31.733852 L16.5983703,28.2909287 L16.3339557,25.0157409 C16.3268463,24.8947875 16.2460727,24.8036159 16.1461038,24.8036159 C16.044877,24.8036159 15.9642128,24.8955431 15.9578691,25.0172521 Z M17.5195284,22.9658916 L17.3001764,28.292251 L17.5195284,31.7345446 C17.5252159,31.8690983 17.6326223,31.9751293 17.7456069,31.9751293 C17.85799,31.9751293 17.972123,31.8685946 17.972123,31.7337261 L18.205475,28.292251 L17.950412,22.9658916 C17.9436307,22.8306454 17.8434977,22.7241106 17.7311147,22.7241106 C17.6182395,22.7241106 17.5248877,22.8305824 17.5195284,22.9658916 Z M19.0799298,21.7485496 C19.0799298,21.7489903 18.8752888,28.2933213 18.8752888,28.2933213 L19.0803673,31.7138925 C19.085508,31.8633686 19.1890863,31.9816775 19.3161256,31.9816775 C19.4420165,31.9816775 19.5458683,31.8633686 19.5518839,31.7126332 L19.7832125,28.2933213 L19.5518839,21.7485496 C19.5455948,21.5974994 19.4419618,21.4795682 19.3160709,21.4795682 C19.1890863,21.4795682 19.085508,21.5977513 19.0799298,21.7485496 Z M20.6267141,20.9640207 L20.4502919,28.2940139 L20.6269329,31.6585473 C20.6312532,31.8388756 20.7830113,31.9814257 20.9374491,31.9814257 C21.0916135,31.9814257 21.2481294,31.8388756 21.2481294,31.657477 L21.4195204,28.2942028 L21.2073871,20.9639577 C21.2024652,20.7820553 21.064215,20.6391905 20.9103787,20.6391905 C20.7556128,20.6391905 20.6309251,20.7816146 20.6267141,20.9640207 Z M22.1736078,21.4133933 L22.025459,28.2954621 L22.1736078,31.6071059 C22.1771625,31.8179717 22.3266784,31.9846998 22.5091162,31.9846998 C22.6910072,31.9846998 22.8440778,31.8182235 22.8440778,31.6048392 L23.0066094,28.2958399 L22.8385544,21.4128896 C22.8341794,21.1998201 22.6872885,21.032966 22.5053975,21.032966 C22.3232331,21.032966 22.1771625,21.1997571 22.1736078,21.4133933 Z M23.7558296,19.3647403 L23.6005168,28.2972251 L23.7562671,31.5388532 C23.7590015,31.7759119 23.947455,31.9709107 24.1542288,31.9709107 C24.3605652,31.9709107 24.5521358,31.7757859 24.5521358,31.5353272 L24.7023627,28.2972251 L24.5239717,19.3640477 C24.5209639,19.1245334 24.341862,18.9290938 24.1355257,18.9290938 C23.9286971,18.9290938 23.7589468,19.1245334 23.7558296,19.3647403 Z M34.2236391,24.3767843 C33.9495448,20.8031482 31.3466882,18 28.1717992,18 C27.3948523,18 26.641093,18.1759838 25.9723183,18.4738655 C25.7124428,18.589593 25.6441927,18.7089094 25.6441927,18.9399865 L25.6441927,31.5248122 C25.6441927,31.7674747 25.8069977,31.9696515 26.0125684,31.9933888 C26.0213184,31.9945221 35.4956182,32 35.5570323,32 C37.4589032,32 39,30.2245469 39,28.0346031 C39,25.8446593 37.4574267,24.0688914 35.5556651,24.0688914 C35.0838752,24.0688914 34.6335774,24.1788262 34.2236391,24.3767843 Z M34.2236391,24.3767843\"/>\n </g>\n </Fragment>\n ),\n tumblr: (\n <Fragment>\n <g fill=\"currentColor\" fill-rule=\"evenodd\" stroke=\"none\" stroke-width=\"1\">\n <path d=\"M25,50 C38.8071194,50 50,38.8071194 50,25 C50,11.1928806 38.8071194,0 25,0 C11.1928806,0 0,11.1928806 0,25 C0,38.8071194 11.1928806,50 25,50 Z M25,47 C37.1502651,47 47,37.1502651 47,25 C47,12.8497349 37.1502651,3 25,3 C12.8497349,3 3,12.8497349 3,25 C3,37.1502651 12.8497349,47 25,47 Z M20.1212122,23.428572 L20.1212122,29.5776397 C20.2888032,34.6055735 23.1493975,35.6536697 26.4848488,36 C28.4239345,35.9068215 30.7994507,35.2128501 32,34.291925 L32,30.807453 C30.4550907,32.2576564 26.3092334,33.6801939 25.5656572,29.5776397 L25.4949496,23.3602485 L32,23.428572 L32,19.2608705 L25.4949496,19.2608705 L25.6363634,14 L23.0202023,14.0683235 C23.2002807,18.5559785 20.7320276,19.156712 18,19.3291926 L18,23.428572 L20.1212122,23.428572 Z M20.1212122,23.428572\"/>\n </g>\n </Fragment>\n ),\n twitter: (\n <Fragment>\n <g fill=\"currentColor\" fill-rule=\"evenodd\" stroke=\"none\" stroke-width=\"1\">\n <path d=\"M25,50 C38.8071194,50 50,38.8071194 50,25 C50,11.1928806 38.8071194,0 25,0 C11.1928806,0 0,11.1928806 0,25 C0,38.8071194 11.1928806,50 25,50 Z M25,47 C37.1502651,47 47,37.1502651 47,25 C47,12.8497349 37.1502651,3 25,3 C12.8497349,3 3,12.8497349 3,25 C3,37.1502651 12.8497349,47 25,47 Z M24.6822554,20.5542975 L24.729944,21.3761011 L23.9351333,21.2754721 C21.0420225,20.8897275 18.5145246,19.5815504 16.3685358,17.3844837 L15.3193857,16.2943361 L15.0491501,17.0993681 C14.4768864,18.8939188 14.8424993,20.7890985 16.0347153,22.0637326 C16.6705638,22.7681357 16.5274979,22.8687647 15.4306592,22.4494772 C15.0491501,22.3153051 14.7153296,22.2146761 14.6835371,22.2649907 C14.5722637,22.3823912 14.9537728,23.9085978 15.2558008,24.5123719 C15.6691024,25.350947 16.5116017,26.1727505 17.433582,26.6591241 L18.2124965,27.0448686 L17.2905161,27.0616401 C16.4003282,27.0616401 16.3685358,27.0784116 16.4639131,27.4306131 C16.7818374,28.5207608 18.0376382,29.6779944 19.436505,30.1811394 L20.4220701,30.533341 L19.5636746,31.070029 C18.2919776,31.8415181 16.7977335,32.2775772 15.3034895,32.3111202 C14.5881599,32.3278916 14,32.3949776 14,32.4452922 C14,32.6130071 15.939338,33.5522113 17.0679692,33.9211843 C20.4538626,35.0113319 24.4756046,34.5417298 27.4958851,32.6800932 C29.6418739,31.3551445 31.7878628,28.7220188 32.7893242,26.1727505 C33.3297954,24.8142589 33.8702667,22.3320767 33.8702667,21.1413 C33.8702667,20.369811 33.9179553,20.269182 34.8081432,19.3467494 C35.3327183,18.8100613 35.8255009,18.2230588 35.9208782,18.0553437 C36.0798403,17.7366852 36.0639442,17.7366852 35.2532373,18.0218007 C33.9020591,18.5249458 33.7113045,18.4578598 34.3789455,17.7031422 C34.8717281,17.1664541 35.459888,16.1937071 35.459888,15.9085915 C35.459888,15.858277 35.2214448,15.9421346 34.9512092,16.093078 C34.6650773,16.2607931 34.0292288,16.5123656 33.5523424,16.6633091 L32.6939469,16.9484246 L31.9150324,16.394965 C31.4858346,16.093078 30.8817786,15.757648 30.5638543,15.657019 C29.7531474,15.422218 28.5132428,15.455761 27.7820169,15.724105 C25.7949903,16.4788226 24.5391894,18.4243168 24.6822554,20.5542975 C24.6822554,20.5542975 24.5391894,18.4243168 24.6822554,20.5542975 Z M24.6822554,20.5542975\"/>\n </g>\n </Fragment>\n ),\n vimeo: (\n <Fragment>\n <g fill=\"currentColor\" fill-rule=\"evenodd\" stroke=\"none\" stroke-width=\"1\">\n <path d=\"M50,25 C50,11.1928806 38.8071194,0 25,0 C11.1928806,0 0,11.1928806 0,25 C0,38.8071194 11.1928806,50 25,50 C38.8071194,50 50,38.8071194 50,25 Z M47,25 C47,12.8497349 37.1502651,3 25,3 C12.8497349,3 3,12.8497349 3,25 C3,37.1502651 12.8497349,47 25,47 C37.1502651,47 47,37.1502651 47,25 Z M17.315812,20.9060694 C17.9328006,21.6627251 20.2884417,30.7991385 21.0747632,32.4845455 C21.7610734,33.9625783 23.6542105,35.9166045 25.7302773,34.5211721 C27.8051355,33.1256949 34.7049271,27.0158598 35.9400265,19.8005667 C37.1740468,12.5875569 27.6369679,14.0985404 26.6267538,20.382799 C29.1516416,18.8105703 30.4993563,21.0216204 29.2073234,23.5249731 C27.9176213,26.0259082 26.7391965,27.657054 26.1221216,27.657054 C25.5062553,27.657054 25.0324423,25.9834215 24.3267945,23.0582023 C23.5973201,20.0339521 23.6018092,14.5864425 20.5690087,15.204043 C17.7089081,15.7862753 13.95,20.4417609 13.95,20.4417609 L14.8476851,21.6627251 C14.8476851,21.6627251 16.6987803,20.1493241 17.315812,20.9060694 Z M17.315812,20.9060694\"/>\n </g>\n </Fragment>\n ),\n youtube: (\n <Fragment>\n <g fill=\"currentColor\" fill-rule=\"evenodd\" stroke=\"none\" stroke-width=\"1\">\n <path d=\"M50,25 C50,11.1928806 38.8071194,0 25,0 C11.1928806,0 0,11.1928806 0,25 C0,38.8071194 11.1928806,50 25,50 C38.8071194,50 50,38.8071194 50,25 Z M47,25 C47,12.8497349 37.1502651,3 25,3 C12.8497349,3 3,12.8497349 3,25 C3,37.1502651 12.8497349,47 25,47 C37.1502651,47 47,37.1502651 47,25 Z M36.768327,30.7654774 C36.4698281,32.0627028 35.4087162,33.0191862 34.1319129,33.1618614 C31.1074781,33.4998058 28.0463955,33.5014844 24.9984613,33.4998058 C21.9508068,33.5014844 18.8894444,33.4998058 15.8652894,33.1618614 C14.5882064,33.0191862 13.5276539,32.0627028 13.2294348,30.7654774 C12.8047662,28.9179732 12.8047662,26.9020564 12.8047662,25.0002798 C12.8047662,23.0982233 12.8098018,21.0820268 13.2341906,19.2345226 C13.5326895,17.9372972 14.5932419,16.980534 15.8700452,16.8381386 C18.89448,16.5001942 21.9555627,16.4985156 25.0034969,16.5001942 C28.0511513,16.4985156 31.1125137,16.5001942 34.1366687,16.8381386 C35.4137518,16.980534 36.4748637,17.9372972 36.7730829,19.2345226 C37.1977514,21.0820268 37.1952336,23.0982233 37.1952336,25.0002798 C37.1952336,26.9020564 37.1927158,28.9179732 36.768327,30.7654774 Z M22.8047662,20.5 L29.5547662,24.3971143 L22.8047662,28.2942286 L22.8047662,20.5 Z M22.8047662,20.5\"/>\n </g>\n </Fragment>\n ),\n };\n\n class AdvSocialBlock extends Component {\n constructor() {\n super( ...arguments );\n this.state = {\n currentSelected: 0,\n searchedText: '',\n }\n }\n\n componentWillMount() {\n const { attributes, setAttributes } = this.props;\n const currentBlockConfig = advgbDefaultConfig['advgb-social-links'];\n\n // No override attributes of blocks inserted before\n if (attributes.changed !== true) {\n if (typeof currentBlockConfig === 'object' && currentBlockConfig !== null) {\n Object.keys(currentBlockConfig).map((attribute) => {\n if (typeof attributes[attribute] === 'boolean') {\n attributes[attribute] = !!currentBlockConfig[attribute];\n } else {\n attributes[attribute] = currentBlockConfig[attribute];\n }\n });\n }\n\n // Finally set changed attribute to true, so we don't modify anything again\n setAttributes( { changed: true } );\n }\n }\n\n render() {\n const { attributes, setAttributes, isSelected } = this.props;\n const { items, align, iconSize, iconSpace, isPreview } = attributes;\n const { currentSelected, searchedText } = this.state;\n const matchedIcons = Object.keys( ICONS_SET_NEW ).filter( (key) => key.indexOf( searchedText.toLowerCase().trim() ) > -1 );\n\n return (\n isPreview ?\n <img alt={__('Social Links', 'advanced-gutenberg')} width='100%' src={previewImageData}/>\n :\n <Fragment>\n <BlockControls>\n <ToolbarGroup>\n <ToolbarButton\n className=\"components-toolbar__control\"\n icon=\"plus\"\n label={ __( 'Add item', 'advanced-gutenberg' ) }\n onClick={ () => setAttributes( { items: [ ...items, { icon: '', iconID: '', link: '#' } ] } ) }\n />\n <ToolbarButton\n className=\"components-toolbar__control\"\n icon=\"no\"\n label={ __( 'Remove selected item', 'advanced-gutenberg' ) }\n onClick={ () => {\n this.setState( { currentSelected: Math.max(currentSelected - 1, 0) } );\n if (items.length > 1) {\n setAttributes( {\n items: items.filter( (item, index) => index !== currentSelected ),\n } )\n } else {\n setAttributes( {\n items: [ { icon: '', iconID: '', iconColor: '', link: '#' } ]\n } )\n }\n } }\n />\n </ToolbarGroup>\n <AlignmentToolbar value={ align } onChange={ ( value ) => setAttributes( { align: value === undefined ? 'center' : value } ) } />\n </BlockControls>\n <InspectorControls>\n <PanelBody title={ __( 'Preset Icons', 'advanced-gutenberg' ) }>\n <TextControl\n placeholder={ __( 'Type here to search…', 'advanced-gutenberg' ) }\n value={ searchedText }\n onChange={ (value) => this.setState( { searchedText: value } ) }\n />\n <div className=\"advgb-icon-items-wrapper\">\n {matchedIcons.map( ( key, index ) => (\n <div className=\"advgb-icon-item\" key={ index }>\n <Tooltip text={ key }>\n <span className={ key === items[currentSelected].icon ? 'active' : '' }\n onClick={ () => {\n let newItems = items.map( (item, index) => {\n if (index === currentSelected) {\n item = {\n ...item,\n icon: key,\n iconID: '',\n };\n }\n return item;\n } );\n\n setAttributes( { items: newItems } )\n } }>\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 50 50\">\n { ICONS_SET_NEW[key] }\n </svg>\n </span>\n </Tooltip>\n </div>\n ) ) }\n </div>\n <BaseControl label={ __( 'Custom icon', 'advanced-gutenberg' ) }>\n <MediaUpload\n allowedTypes={ [\"image\"] }\n value={ items[currentSelected].iconID }\n onSelect={ (media) => {\n let newItems = items.map( (item, index) => {\n if (index === currentSelected) {\n item = {\n ...item,\n icon: media.sizes.thumbnail ? media.sizes.thumbnail.url : media.sizes.full.url,\n iconID: media.id,\n };\n }\n return item;\n } );\n\n setAttributes( { items: newItems } )\n } }\n render={ ( { open } ) => (\n <Button\n className=\"button button-large\"\n onClick={ open }\n >\n { __( 'Upload/Choose', 'advanced-gutenberg' ) }\n </Button>\n ) }\n />\n </BaseControl>\n <PanelColorSettings\n title={ __( 'Preset Icon Color', 'advanced-gutenberg' ) }\n initialOpen={ false }\n colorSettings={ [\n {\n label: __( 'Preset Icon Color', 'advanced-gutenberg' ),\n value: items[currentSelected].iconColor,\n onChange: (value) => {\n let newItems = items.map( (item, index) => {\n if (index === currentSelected) {\n item = {\n ...item,\n iconColor: value,\n };\n }\n return item;\n } );\n\n setAttributes( { items: newItems } )\n },\n },\n ] }\n />\n </PanelBody>\n <PanelBody title={ __( 'Icons settings', 'advanced-gutenberg' ) }>\n <RangeControl\n label={ __( 'Icon size', 'advanced-gutenberg' ) }\n value={ iconSize }\n min={ 20 }\n max={ 60 }\n onChange={ (value) => setAttributes( { iconSize: value } ) }\n />\n <RangeControl\n label={ __( 'Icon space', 'advanced-gutenberg' ) }\n value={ iconSpace }\n min={ 0 }\n max={ 30 }\n onChange={ (value) => setAttributes( { iconSpace: value } ) }\n />\n </PanelBody>\n </InspectorControls>\n <div className=\"advgb-social-links-block\" style={ { textAlign: align } }>\n <div className=\"advgb-social-icons\">\n {items.map( ( item, index ) => (\n <span key={ index }\n className={ `advgb-social-icon ${ currentSelected === index ? 'selected' : '' }` }\n onClick={ () => this.setState( { currentSelected: index } ) }\n style={ {\n width: iconSize + 'px',\n height: iconSize + 'px',\n marginLeft: iconSpace + 'px',\n marginRight: iconSpace + 'px',\n color: item.iconColor,\n } }\n >\n {!!item.icon\n ? (item.icon in ICONS_SET_NEW)\n ? <svg width={iconSize-6} height={iconSize-6} viewBox=\"0 0 50 50\">{ICONS_SET_NEW[item.icon]}</svg>\n : <img src={ item.icon } alt={ __( 'Social link icon', 'advanced-gutenberg' ) } />\n : <svg width={iconSize-6} height={iconSize-6} viewBox=\"0 0 24 24\">\n {socialBlockIconContent}\n </svg>\n }\n </span>\n ) ) }\n </div>\n {isSelected && (\n <Fragment>\n <div className=\"advgb-social-link\">\n <strong>{ __( 'Social link:', 'advanced-gutenberg' ) }</strong>\n <TextControl\n placeholder={ __( 'Enter social link…', 'advanced-gutenberg' ) }\n value={ items[currentSelected].link }\n onChange={ ( value ) => {\n let newItems = items.map( (vl, idx) => {\n if (idx === parseInt(currentSelected)) vl = { ...vl, link: value };\n return vl;\n } );\n return setAttributes( { items: newItems } );\n } }\n />\n </div>\n </Fragment>\n ) }\n </div>\n </Fragment>\n )\n }\n }\n\n const socialBlockAttrs = {\n items: {\n type: 'array',\n default: [\n { icon: '', iconID: '', iconColor: '', link: '#' },\n { icon: '', iconID: '', iconColor: '', link: '#' },\n { icon: '', iconID: '', iconColor: '', link: '#' },\n ],\n },\n align: {\n type: 'string',\n },\n iconSize: {\n type: 'number',\n default: 48,\n },\n iconSpace: {\n type: 'number',\n default: 5,\n },\n changed: {\n type: 'boolean',\n default: false,\n },\n isPreview: {\n type: 'boolean',\n default: false,\n },\n };\n\n registerBlockType( 'advgb/social-links', {\n title: __( 'Social Links - PublishPress', 'advanced-gutenberg' ),\n description: __( 'Create a styling display of links to your social media profiles.', 'advanced-gutenberg' ),\n icon: {\n src: socialBlockIcon,\n foreground: typeof advgbBlocks !== 'undefined' ? advgbBlocks.color : undefined,\n },\n category: 'advgb-category',\n keywords: [ __( 'social icons', 'advanced-gutenberg' ), __( 'shares', 'advanced-gutenberg' ), __( 'icon link', 'advanced-gutenberg' ) ],\n attributes: socialBlockAttrs,\n example: {\n attributes: {\n isPreview: true\n },\n },\n supports: {\n anchor: true\n },\n edit: AdvSocialBlock,\n save: function ( { attributes } ) {\n const { items, align, iconSize, iconSpace } = attributes;\n\n return (\n <div className=\"advgb-social-links-block\" style={ { textAlign: align } }>\n <div className=\"advgb-social-icons\">\n {items.map( ( item, index ) => (\n <a key={ index }\n className={ `advgb-social-icon` }\n href={ item.link || '#' }\n target=\"_blank\"\n rel=\"noopener noreferrer\"\n style={ {\n width: iconSize + 'px',\n height: iconSize + 'px',\n marginLeft: iconSpace + 'px',\n marginRight: iconSpace + 'px',\n color: item.iconColor,\n } }\n >\n {!!item.icon\n ? (item.icon in ICONS_SET_NEW)\n ? <svg width={iconSize-6} height={iconSize-6} viewBox=\"0 0 50 50\">{ICONS_SET_NEW[item.icon]}</svg>\n : <img src={ item.icon } alt={ __( 'Social link icon', 'advanced-gutenberg' ) } />\n : <svg width={iconSize-6} height={iconSize-6} viewBox=\"0 0 24 24\">\n {socialBlockIconContent}\n </svg>\n }\n </a>\n ) ) }\n </div>\n </div>\n );\n },\n deprecated: [\n {\n attributes: {\n ...socialBlockAttrs,\n iconSize: {\n type: \"number\",\n default: 24,\n }\n },\n save: function ( { attributes } ) {\n const { items, align, iconSize, iconSpace } = attributes;\n\n return (\n <div className=\"advgb-social-links-block\" style={ { textAlign: align } }>\n <div className=\"advgb-social-icons\">\n {items.map( ( item, index ) => (\n <a key={ index }\n className={ `advgb-social-icon` }\n href={ item.link || '#' }\n target=\"_blank\"\n rel=\"noopener noreferrer\"\n style={ {\n width: iconSize + 'px',\n height: iconSize + 'px',\n marginLeft: iconSpace + 'px',\n marginRight: iconSpace + 'px',\n color: item.iconColor,\n } }\n >\n {!!item.icon\n ? (item.icon in ICONS_SET_NEW)\n ? <svg width={iconSize-6} height={iconSize-6} viewBox=\"0 0 50 50\">{ICONS_SET_NEW[item.icon]}</svg>\n : <img src={ item.icon } alt={ __( 'Social link icon', 'advanced-gutenberg' ) } />\n : <svg width={iconSize-6} height={iconSize-6} viewBox=\"0 0 24 24\">\n {React.createElement(\n Fragment,\n null,\n React.createElement(\"path\", { fill: \"none\", d: \"M0,0h24v24H0V0z\" }),\n React.createElement(\"path\", { d: \"M18,16.08c-0.76,0-1.44,0.3-1.96,0.77L8.91,12.7C8.96,12.47,9,12.24,9,12s-0.04-0.47-0.09-0.7l7.05-4.11\\r C16.5,7.69,17.21,8,18,8c1.66,0,3-1.34,3-3c0-1.66-1.34-3-3-3s-3,1.34-3,3c0,0.24,0.04,0.47,0.09,0.7L8.04,9.81\\r C7.5,9.31,6.79,9,6,9c-1.66,0-3,1.34-3,3c0,1.66,1.34,3,3,3c0.79,0,1.5-0.31,2.04-0.81l7.12,4.16c-0.05,0.21-0.08,0.43-0.08,0.65\\r c0,1.61,1.31,2.92,2.92,2.92s2.92-1.31,2.92-2.92C20.92,17.39,19.61,16.08,18,16.08z M18,4c0.55,0,1,0.45,1,1s-0.45,1-1,1\\r s-1-0.45-1-1S17.45,4,18,4z M6,13c-0.55,0-1-0.45-1-1s0.45-1,1-1s1,0.45,1,1S6.55,13,6,13z M18,20.02c-0.55,0-1-0.45-1-1\\r s0.45-1,1-1s1,0.45,1,1S18.55,20.02,18,20.02z\" })\n )}\n </svg>\n }\n </a>\n ) ) }\n </div>\n </div>\n );\n }\n }\n ]\n } )\n})( wp.i18n, wp.blocks, wp.element, wp.blockEditor, wp.components );\n","import latinize from \"latinize\";\n\n(function ( wpI18n, wpBlocks, wpElement, wpBlockEditor, wpComponents, wpData, wpHooks ) {\n wpBlockEditor = wp.blockEditor || wp.editor;\n const { __ } = wpI18n;\n const { Component, Fragment } = wpElement;\n const { registerBlockType, getBlockContent, createBlock } = wpBlocks;\n const { BlockControls, InspectorControls, InspectorAdvancedControls, PanelColorSettings, BlockAlignmentToolbar } = wpBlockEditor;\n const { ToolbarButton, Placeholder, Button, ToolbarGroup, ToggleControl, TextControl, PanelBody } = wpComponents;\n const { select, dispatch } = wpData;\n const { addFilter } = wpHooks;\n\n const summaryBlockIcon = (\n <svg height=\"20\" viewBox=\"2 2 22 22\" width=\"20\" xmlns=\"http://www.w3.org/2000/svg\">\n <path d=\"M14 17H4v2h10v-2zm6-8H4v2h16V9zM4 15h16v-2H4v2zM4 5v2h16V5H4z\"/>\n <path d=\"M0 0h24v24H0z\" fill=\"none\"/>\n </svg>\n );\n\n const previewImageData = 'data:image/png;base64,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';\n\n const summaryBlockTitle = __( 'Table of Contents - PublishPress', 'advanced-gutenberg' );\n\n // Add button to insert summary inside table of contents component\n ( function () {\n jQuery( window ).on( 'load', function () {\n if (!dispatch( 'core/editor' ) || typeof dispatch( 'core/editor' ) === 'undefined') {\n return false;\n }\n\n const $ = jQuery;\n const { insertBlock } = dispatch( 'core/editor' );\n if ( select( 'core/blocks' ).getBlockType( 'advgb/summary' ) ) {\n const summaryBlock = createBlock( 'advgb/summary' );\n }\n\n $( '#editor' ).find( '.table-of-contents' ).click( function () {\n const allBlocks = select( 'core/block-editor' ).getBlocks();\n const summaryBlockExist = !!allBlocks.filter( ( block ) => ( block.name === 'advgb/summary' ) ).length;\n setTimeout( function () {\n const summaryButton = $(\n '<button class=\"button\" style=\"position: absolute; bottom: 10px; right: 15px\">'\n + __( 'Insert Table of Contents', 'advanced-gutenberg' ) +\n '</button>'\n );\n\n $( '#editor' ).find( '.table-of-contents__popover' ).find( '.document-outline' )\n .append( summaryButton );\n summaryButton.unbind( 'click' ).click( function () {\n insertBlock( summaryBlock, 0 );\n $('.table-of-contents__popover').hide();\n } );\n\n if (summaryBlockExist) {\n summaryButton.prop( 'disabled', true );\n }\n }, 100 )\n } )\n } );\n } )();\n\n // Add notice for user to refresh summary if manually change heading anchor\n addFilter( 'editor.BlockEdit', 'advgb/addHeadingNotice', function ( BlockEdit ) {\n return ( props ) => {\n const { isSelected, name: blockType, attributes } = props;\n\n return ( [\n <BlockEdit key=\"block-edit-summary\" {...props} />,\n isSelected && blockType === 'core/heading' && attributes.nodeName !== 'H1' &&\n <InspectorAdvancedControls key=\"advgb-summary-controls-hint\">\n <p style={{ color: 'red', fontStyle: 'italic' }}>\n {__( 'After manually changing the anchor, remember to refresh Table of Contents block to make the links work!', 'advanced-gutenberg' )}\n </p>\n </InspectorAdvancedControls>,\n ] )\n }\n } );\n\n class SummaryBlock extends Component {\n constructor() {\n super( ...arguments );\n this.updateSummary = this.updateSummary.bind( this );\n this.latinise = this.latinise.bind(this);\n }\n\n componentWillMount() {\n const { attributes, setAttributes } = this.props;\n const currentBlockConfig = advgbDefaultConfig['advgb-summary'];\n\n // No override attributes of blocks inserted before\n if (attributes.changed !== true) {\n if (typeof currentBlockConfig === 'object' && currentBlockConfig !== null) {\n Object.keys(currentBlockConfig).map((attribute) => {\n if (typeof attributes[attribute] === 'boolean') {\n attributes[attribute] = !!currentBlockConfig[attribute];\n } else {\n attributes[attribute] = currentBlockConfig[attribute];\n }\n });\n }\n\n // Finally set changed attribute to true, so we don't modify anything again\n setAttributes( { changed: true } );\n }\n }\n\n componentDidMount() {\n this.updateSummary();\n };\n\n\n /**\n * Function to get heading blocks from columns blocks\n *\n * @param block array Columns block to get data\n * @param storeData array Data array to store heading blocks\n *\n * @returns array array Heading blocks from block given\n */\n static getHeadingBlocksFromColumns( block, storeData )\n {\n if (\n block.name === 'core/columns' || block.name === 'core/column'\n || block.name === 'core/cover' || block.name === 'core/group'\n ) {\n block.innerBlocks.map(function ( bl ) {\n SummaryBlock.getHeadingBlocksFromColumns( bl, storeData );\n return bl;\n } )\n } else if ( block.name === 'core/heading' ) {\n storeData.push( block );\n }\n\n return storeData;\n }\n\n /**\n * Function to get headings from accordions blocks\n *\n * @since 3.1.2\n *\n * @param block array Columns block to get data\n * @param storeData array Data array to store heading blocks\n *\n * @returns array array Headings from block given\n */\n static getHeadingsfromAccordion( block, storeData )\n {\n block.innerBlocks.map( (item) => {\n if( item.name === 'advgb/accordion-item' ) {\n const content = item.attributes.header || null;\n const level = item.attributes.headerTag\n ? parseInt( item.attributes.headerTag.substring( 1 ) )\n : 3;\n\n if( content ) {\n\n // Create a valid heading block\n let block_ = wp.blocks.createBlock('core/heading', {\n content: content,\n level: level\n });\n\n // Add anchor attribute\n if( item.attributes.anchor ) {\n block_.attributes = Object.assign( block_.attributes, {\n anchor: item.attributes.anchor\n } );\n }\n\n storeData.push( block_ );\n }\n }\n });\n }\n\n latinise(str) {\n let lettersArr = str.split('');\n let result = [];\n lettersArr.map(letter => {\n if(typeof latinMap[letter] === \"undefined\") {\n result.push(letter);\n } else {\n result.push(latinMap[letter]);\n }\n\n });\n return result.join('');\n }\n\n updateSummary() {\n let headingDatas = [];\n let headingBlocks = [];\n const allBlocks = select( 'core/block-editor' ).getBlocks();\n const filteredBlocks = allBlocks.filter( ( block ) => (\n block.name === 'core/heading' || block.name === 'core/columns'\n || block.name === 'core/cover' || block.name === 'core/group'\n || block.name === 'advgb/accordions'\n ) );\n filteredBlocks.map(function ( block ) {\n if (block.name === 'core/columns' || block.name === 'core/cover' || block.name === 'core/group') {\n SummaryBlock.getHeadingBlocksFromColumns( block, headingBlocks );\n } else if( block.name === 'advgb/accordions'\n && advgbBlocks.advgb_pro === '1' // Only in Pro\n ) {\n SummaryBlock.getHeadingsfromAccordion( block, headingBlocks );\n } else {\n headingBlocks.push( block );\n }\n\n return block;\n });\n\n headingBlocks.map( ( heading ) => {\n let thisHead = {};\n thisHead[ 'level' ] = parseInt( heading.attributes.level );\n\n // We only get heading from h2\n if (thisHead[ 'level' ] > 1) {\n thisHead[ 'level' ] -= 1;\n thisHead[ 'content' ] = heading.attributes.content.length\n ? getBlockContent( heading ).replace( /<(?:.|\\n)*?>/gm, '' )\n : '';\n let lowerHead = unescape(thisHead[ 'content' ].toLowerCase());\n let headId = lowerHead.replace(/[!@#$%^&*()\\/\\\\,?\":{}|<>]/g, \"\");\n headId = headId.replace(/(amp;)+/g, \"\");\n headId = latinize(headId).replace(/\\./g, ' ').replace(/[^\\w ]+/g,'').replace(/ +/g,'-');\n headId = headId + '-' + heading.clientId;\n\n thisHead[ 'clientId' ] = heading.clientId;\n if (heading.attributes.anchor) {\n thisHead[ 'anchor' ] = heading.attributes.anchor;\n } else {\n // Generate a random anchor for headings without it\n thisHead[ 'anchor' ] = headId;\n heading.attributes.anchor = thisHead[ 'anchor' ];\n }\n\n headingDatas.push( thisHead );\n }\n\n return heading;\n } );\n\n this.props.setAttributes( {\n headings: headingDatas\n } );\n }\n\n render() {\n const { attributes, isSelected, setAttributes } = this.props;\n const { headings, loadMinimized, anchorColor, align, headerTitle, isPreview } = attributes;\n\n // No heading blocks\n let summaryContent = (\n isPreview ?\n <img alt={__('Table of Contents', 'advanced-gutenberg')} width='100%' src={previewImageData}/>\n :\n <Placeholder\n icon={summaryBlockIcon}\n label={summaryBlockTitle}\n instructions={__( 'Your current post/page has no headings. Try add some headings and update this block later', 'advanced-gutenberg' )}\n >\n <Button onClick={this.updateSummary}\n className={'button'}\n >\n {__( 'Update', 'advanced-gutenberg' )}\n </Button>\n </Placeholder>\n );\n\n // Having heading blocks\n if (headings.length > 0) {\n const { selectBlock } = dispatch( 'core/block-editor' );\n summaryContent = (\n <ul className=\"advgb-toc\">\n {headings.map( ( heading ) => {\n return (\n <li className={'toc-level-' + heading.level}\n style={{ marginLeft: heading.level * 20 }}\n key={heading.anchor}\n >\n <a href={'#' + heading.anchor}\n onClick={() => selectBlock( heading.clientId )}\n style={ { color: anchorColor } }\n >\n {heading.content}\n </a>\n </li>\n )\n } )}\n </ul>\n )\n }\n\n return (\n <Fragment>\n {!!headings.length && (\n <BlockControls>\n <BlockAlignmentToolbar value={ align } onChange={ ( align ) => setAttributes( { align: align } ) } />\n <ToolbarGroup>\n <ToolbarButton className={'components-icon-button components-toolbar__control'}\n icon={'update'}\n label={__( 'Update Table of Contents', 'advanced-gutenberg' )}\n onClick={this.updateSummary}\n />\n </ToolbarGroup>\n </BlockControls>\n ) }\n <InspectorControls>\n <PanelBody title={ __( 'Table of Contents settings', 'advanced-gutenberg' ) } >\n <ToggleControl\n label={ __( 'Load minimized', 'advanced-gutenberg' ) }\n checked={ !!loadMinimized }\n onChange={ () => setAttributes( { loadMinimized: !loadMinimized, postTitle: select('core/editor').getEditedPostAttribute('title') } ) }\n />\n {loadMinimized &&\n <TextControl\n label={ __( 'Table of Contents header title', 'advanced-gutenberg' ) }\n value={ headerTitle || '' }\n placeholder={ __( 'Enter header…', 'advanced-gutenberg' ) }\n onChange={ (value) => setAttributes( { headerTitle: value } ) }\n />\n }\n <PanelColorSettings\n title={ __( 'Anchor Color', 'advanced-gutenberg' ) }\n initialOpen={ false }\n colorSettings={ [\n {\n label: __( 'Anchor Color', 'advanced-gutenberg' ),\n value: anchorColor,\n onChange: ( value ) => setAttributes( { anchorColor: value } ),\n },\n ] }\n />\n </PanelBody>\n </InspectorControls>\n {summaryContent}\n </Fragment>\n )\n }\n }\n\n const blockAttrs = {\n headings: {\n type: 'array',\n default: [],\n },\n loadMinimized: {\n type: 'boolean',\n default: false,\n },\n anchorColor: {\n type: 'string',\n },\n align: {\n type: 'string',\n default: 'none',\n },\n postTitle: {\n type: 'string',\n },\n headerTitle: {\n type: 'string',\n },\n changed: {\n type: 'boolean',\n default: false,\n },\n isPreview: {\n type: 'boolean',\n default: false,\n },\n };\n\n registerBlockType( 'advgb/summary', {\n title: summaryBlockTitle,\n description: __( 'Show the table of contents of current post/page.', 'advanced-gutenberg' ),\n icon: {\n src: summaryBlockIcon,\n foreground: typeof advgbBlocks !== 'undefined' ? advgbBlocks.color : undefined,\n },\n category: 'advgb-category',\n keywords: [ __( 'summary', 'advanced-gutenberg' ), __( 'table of content', 'advanced-gutenberg' ), __( 'table of contents', 'advanced-gutenberg' ), __( 'list', 'advanced-gutenberg' ) ],\n attributes: blockAttrs,\n example: {\n attributes: {\n isPreview: true\n },\n },\n supports: {\n multiple: false,\n anchor: true\n },\n edit: SummaryBlock,\n save: ( { attributes } ) => {\n const { headings, loadMinimized, anchorColor, align = 'none', postTitle, headerTitle } = attributes;\n // No heading blocks\n if (headings.length < 1) {\n return null;\n }\n\n let blockStyle = undefined;\n if (loadMinimized) blockStyle = { display: 'none' };\n\n const summary = (\n <ul className={`advgb-toc align${align}`} style={ blockStyle }>\n {headings.map( ( heading, index ) => {\n return (\n <li className={'toc-level-' + heading.level}\n key={`summary-save-${index}`}\n >\n <a href={'#' + heading.anchor}\n style={ { color: anchorColor } }\n >\n {heading.content}\n </a>\n </li>\n )\n } ) }\n </ul>\n );\n\n if ( loadMinimized ) {\n return (\n <div className={`align${align}`}>\n <div className={'advgb-toc-header collapsed'}>{ headerTitle || postTitle }</div>\n {summary}\n </div>\n );\n }\n\n return summary;\n },\n getEditWrapperProps( attributes ) {\n const { align } = attributes;\n const props = { 'data-resized': true };\n\n if ( 'left' === align || 'right' === align || 'center' === align ) {\n props[ 'data-align' ] = align;\n }\n\n return props;\n },\n deprecated: [\n {\n attributes: blockAttrs,\n save: function ( { attributes } ) {\n const { headings, loadMinimized, anchorColor, align = 'none', postTitle, headerTitle } = attributes;\n // No heading blocks\n if (headings.length < 1) {\n return null;\n }\n\n let blockStyle = undefined;\n if (loadMinimized) blockStyle = { display: 'none' };\n\n const summary = (\n <ul className={`advgb-toc align${align}`} style={ blockStyle }>\n {headings.map( ( heading, index ) => {\n return (\n <li className={'toc-level-' + heading.level}\n key={`summary-save-${index}`}\n style={{ marginLeft: heading.level * 20 }}\n >\n <a href={'#' + heading.anchor}>{heading.content}</a>\n </li>\n )\n } ) }\n { anchorColor &&\n <style>\n {`.advgb-toc li a {\n color: ${anchorColor};\n }`}\n </style>\n }\n </ul>\n );\n\n if ( loadMinimized ) {\n return (\n <div className={`align${align}`}>\n <div className={'advgb-toc-header collapsed'}>{ headerTitle || postTitle }</div>\n {summary}\n </div>\n );\n }\n\n return summary;\n },\n },\n {\n attributes: blockAttrs,\n save: ( { attributes } ) => {\n\n const summary = (\n <ul className={`advgb-toc align${align}`} style={ blockStyle }>\n {headings.map( ( heading, index ) => {\n return (\n <li className={'toc-level-' + heading.level}\n key={`summary-save-${index}`}\n style={{ marginLeft: heading.level * 20 }}\n >\n <a href={'#' + heading.anchor}\n style={ { color: anchorColor } }\n >\n {heading.content}\n </a>\n </li>\n )\n } ) }\n </ul>\n );\n },\n }\n ]\n } );\n})( wp.i18n, wp.blocks, wp.element, wp.blockEditor, wp.components, wp.data, wp.hooks );\n","(function(root, factory) {\n if (typeof define === 'function' && define.amd) {\n // AMD. Register as an anonymous module.\n define(factory);\n } else if (typeof exports === 'object') {\n // CommonJS\n module.exports = factory();\n } else {\n // running in browser\n root.latinize = factory();\n }\n})(this, function() {\n\n function latinize(str) {\n if (typeof str === 'string') {\n return str.replace(/[^A-Za-z0-9]/g, function(x) {\n return latinize.characters[x] || x;\n });\n } else {\n return str;\n }\n }\n\n latinize.characters = {\n 'Á': 'A',\n 'Ă': 'A',\n 'Ắ': 'A',\n 'Ặ': 'A',\n 'Ằ': 'A',\n 'Ẳ': 'A',\n 'Ẵ': 'A',\n 'Ǎ': 'A',\n 'Â': 'A',\n 'Ấ': 'A',\n 'Ậ': 'A',\n 'Ầ': 'A',\n 'Ẩ': 'A',\n 'Ẫ': 'A',\n 'Ä': 'A',\n 'Ǟ': 'A',\n 'Ȧ': 'A',\n 'Ǡ': 'A',\n 'Ạ': 'A',\n 'Ȁ': 'A',\n 'À': 'A',\n 'Ả': 'A',\n 'Ȃ': 'A',\n 'Ā': 'A',\n 'Ą': 'A',\n 'Å': 'A',\n 'Ǻ': 'A',\n 'Ḁ': 'A',\n 'Ⱥ': 'A',\n 'Ã': 'A',\n 'Ꜳ': 'AA',\n 'Æ': 'AE',\n 'Ǽ': 'AE',\n 'Ǣ': 'AE',\n 'Ꜵ': 'AO',\n 'Ꜷ': 'AU',\n 'Ꜹ': 'AV',\n 'Ꜻ': 'AV',\n 'Ꜽ': 'AY',\n 'Ḃ': 'B',\n 'Ḅ': 'B',\n 'Ɓ': 'B',\n 'Ḇ': 'B',\n 'Ƀ': 'B',\n 'Ƃ': 'B',\n 'Ć': 'C',\n 'Č': 'C',\n 'Ç': 'C',\n 'Ḉ': 'C',\n 'Ĉ': 'C',\n 'Ċ': 'C',\n 'Ƈ': 'C',\n 'Ȼ': 'C',\n 'Ď': 'D',\n 'Ḑ': 'D',\n 'Ḓ': 'D',\n 'Ḋ': 'D',\n 'Ḍ': 'D',\n 'Ɗ': 'D',\n 'Ḏ': 'D',\n 'Dz': 'D',\n 'Dž': 'D',\n 'Đ': 'D',\n 'Ð': 'D',\n 'Ƌ': 'D',\n 'DZ': 'DZ',\n 'DŽ': 'DZ',\n 'É': 'E',\n 'Ĕ': 'E',\n 'Ě': 'E',\n 'Ȩ': 'E',\n 'Ḝ': 'E',\n 'Ê': 'E',\n 'Ế': 'E',\n 'Ệ': 'E',\n 'Ề': 'E',\n 'Ể': 'E',\n 'Ễ': 'E',\n 'Ḙ': 'E',\n 'Ë': 'E',\n 'Ė': 'E',\n 'Ẹ': 'E',\n 'Ȅ': 'E',\n 'È': 'E',\n 'Ẻ': 'E',\n 'Ȇ': 'E',\n 'Ē': 'E',\n 'Ḗ': 'E',\n 'Ḕ': 'E',\n 'Ę': 'E',\n 'Ɇ': 'E',\n 'Ẽ': 'E',\n 'Ḛ': 'E',\n 'Ꝫ': 'ET',\n 'Ḟ': 'F',\n 'Ƒ': 'F',\n 'Ǵ': 'G',\n 'Ğ': 'G',\n 'Ǧ': 'G',\n 'Ģ': 'G',\n 'Ĝ': 'G',\n 'Ġ': 'G',\n 'Ɠ': 'G',\n 'Ḡ': 'G',\n 'Ǥ': 'G',\n 'Ḫ': 'H',\n 'Ȟ': 'H',\n 'Ḩ': 'H',\n 'Ĥ': 'H',\n 'Ⱨ': 'H',\n 'Ḧ': 'H',\n 'Ḣ': 'H',\n 'Ḥ': 'H',\n 'Ħ': 'H',\n 'Í': 'I',\n 'Ĭ': 'I',\n 'Ǐ': 'I',\n 'Î': 'I',\n 'Ï': 'I',\n 'Ḯ': 'I',\n 'İ': 'I',\n 'Ị': 'I',\n 'Ȉ': 'I',\n 'Ì': 'I',\n 'Ỉ': 'I',\n 'Ȋ': 'I',\n 'Ī': 'I',\n 'Į': 'I',\n 'Ɨ': 'I',\n 'Ĩ': 'I',\n 'Ḭ': 'I',\n 'Ꝺ': 'D',\n 'Ꝼ': 'F',\n 'Ᵹ': 'G',\n 'Ꞃ': 'R',\n 'Ꞅ': 'S',\n 'Ꞇ': 'T',\n 'Ꝭ': 'IS',\n 'Ĵ': 'J',\n 'Ɉ': 'J',\n 'Ḱ': 'K',\n 'Ǩ': 'K',\n 'Ķ': 'K',\n 'Ⱪ': 'K',\n 'Ꝃ': 'K',\n 'Ḳ': 'K',\n 'Ƙ': 'K',\n 'Ḵ': 'K',\n 'Ꝁ': 'K',\n 'Ꝅ': 'K',\n 'Ĺ': 'L',\n 'Ƚ': 'L',\n 'Ľ': 'L',\n 'Ļ': 'L',\n 'Ḽ': 'L',\n 'Ḷ': 'L',\n 'Ḹ': 'L',\n 'Ⱡ': 'L',\n 'Ꝉ': 'L',\n 'Ḻ': 'L',\n 'Ŀ': 'L',\n 'Ɫ': 'L',\n 'Lj': 'L',\n 'Ł': 'L',\n 'LJ': 'LJ',\n 'Ḿ': 'M',\n 'Ṁ': 'M',\n 'Ṃ': 'M',\n 'Ɱ': 'M',\n 'Ń': 'N',\n 'Ň': 'N',\n 'Ņ': 'N',\n 'Ṋ': 'N',\n 'Ṅ': 'N',\n 'Ṇ': 'N',\n 'Ǹ': 'N',\n 'Ɲ': 'N',\n 'Ṉ': 'N',\n 'Ƞ': 'N',\n 'Nj': 'N',\n 'Ñ': 'N',\n 'NJ': 'NJ',\n 'Ó': 'O',\n 'Ŏ': 'O',\n 'Ǒ': 'O',\n 'Ô': 'O',\n 'Ố': 'O',\n 'Ộ': 'O',\n 'Ồ': 'O',\n 'Ổ': 'O',\n 'Ỗ': 'O',\n 'Ö': 'O',\n 'Ȫ': 'O',\n 'Ȯ': 'O',\n 'Ȱ': 'O',\n 'Ọ': 'O',\n 'Ő': 'O',\n 'Ȍ': 'O',\n 'Ò': 'O',\n 'Ỏ': 'O',\n 'Ơ': 'O',\n 'Ớ': 'O',\n 'Ợ': 'O',\n 'Ờ': 'O',\n 'Ở': 'O',\n 'Ỡ': 'O',\n 'Ȏ': 'O',\n 'Ꝋ': 'O',\n 'Ꝍ': 'O',\n 'Ō': 'O',\n 'Ṓ': 'O',\n 'Ṑ': 'O',\n 'Ɵ': 'O',\n 'Ǫ': 'O',\n 'Ǭ': 'O',\n 'Ø': 'O',\n 'Ǿ': 'O',\n 'Õ': 'O',\n 'Ṍ': 'O',\n 'Ṏ': 'O',\n 'Ȭ': 'O',\n 'Ƣ': 'OI',\n 'Ꝏ': 'OO',\n 'Ɛ': 'E',\n 'Ɔ': 'O',\n 'Ȣ': 'OU',\n 'Ṕ': 'P',\n 'Ṗ': 'P',\n 'Ꝓ': 'P',\n 'Ƥ': 'P',\n 'Ꝕ': 'P',\n 'Ᵽ': 'P',\n 'Ꝑ': 'P',\n 'Ꝙ': 'Q',\n 'Ꝗ': 'Q',\n 'Ŕ': 'R',\n 'Ř': 'R',\n 'Ŗ': 'R',\n 'Ṙ': 'R',\n 'Ṛ': 'R',\n 'Ṝ': 'R',\n 'Ȑ': 'R',\n 'Ȓ': 'R',\n 'Ṟ': 'R',\n 'Ɍ': 'R',\n 'Ɽ': 'R',\n 'Ꜿ': 'C',\n 'Ǝ': 'E',\n 'Ś': 'S',\n 'Ṥ': 'S',\n 'Š': 'S',\n 'Ṧ': 'S',\n 'Ş': 'S',\n 'Ŝ': 'S',\n 'Ș': 'S',\n 'Ṡ': 'S',\n 'Ṣ': 'S',\n 'Ṩ': 'S',\n 'ß': 'ss',\n 'Ť': 'T',\n 'Ţ': 'T',\n 'Ṱ': 'T',\n 'Ț': 'T',\n 'Ⱦ': 'T',\n 'Ṫ': 'T',\n 'Ṭ': 'T',\n 'Ƭ': 'T',\n 'Ṯ': 'T',\n 'Ʈ': 'T',\n 'Ŧ': 'T',\n 'Ɐ': 'A',\n 'Ꞁ': 'L',\n 'Ɯ': 'M',\n 'Ʌ': 'V',\n 'Ꜩ': 'TZ',\n 'Ú': 'U',\n 'Ŭ': 'U',\n 'Ǔ': 'U',\n 'Û': 'U',\n 'Ṷ': 'U',\n 'Ü': 'U',\n 'Ǘ': 'U',\n 'Ǚ': 'U',\n 'Ǜ': 'U',\n 'Ǖ': 'U',\n 'Ṳ': 'U',\n 'Ụ': 'U',\n 'Ű': 'U',\n 'Ȕ': 'U',\n 'Ù': 'U',\n 'Ủ': 'U',\n 'Ư': 'U',\n 'Ứ': 'U',\n 'Ự': 'U',\n 'Ừ': 'U',\n 'Ử': 'U',\n 'Ữ': 'U',\n 'Ȗ': 'U',\n 'Ū': 'U',\n 'Ṻ': 'U',\n 'Ų': 'U',\n 'Ů': 'U',\n 'Ũ': 'U',\n 'Ṹ': 'U',\n 'Ṵ': 'U',\n 'Ꝟ': 'V',\n 'Ṿ': 'V',\n 'Ʋ': 'V',\n 'Ṽ': 'V',\n 'Ꝡ': 'VY',\n 'Ẃ': 'W',\n 'Ŵ': 'W',\n 'Ẅ': 'W',\n 'Ẇ': 'W',\n 'Ẉ': 'W',\n 'Ẁ': 'W',\n 'Ⱳ': 'W',\n 'Ẍ': 'X',\n 'Ẋ': 'X',\n 'Ý': 'Y',\n 'Ŷ': 'Y',\n 'Ÿ': 'Y',\n 'Ẏ': 'Y',\n 'Ỵ': 'Y',\n 'Ỳ': 'Y',\n 'Ƴ': 'Y',\n 'Ỷ': 'Y',\n 'Ỿ': 'Y',\n 'Ȳ': 'Y',\n 'Ɏ': 'Y',\n 'Ỹ': 'Y',\n 'Ź': 'Z',\n 'Ž': 'Z',\n 'Ẑ': 'Z',\n 'Ⱬ': 'Z',\n 'Ż': 'Z',\n 'Ẓ': 'Z',\n 'Ȥ': 'Z',\n 'Ẕ': 'Z',\n 'Ƶ': 'Z',\n 'Þ': 'TH',\n 'IJ': 'IJ',\n 'Œ': 'OE',\n 'ᴀ': 'A',\n 'ᴁ': 'AE',\n 'ʙ': 'B',\n 'ᴃ': 'B',\n 'ᴄ': 'C',\n 'ᴅ': 'D',\n 'ᴇ': 'E',\n 'ꜰ': 'F',\n 'ɢ': 'G',\n 'ʛ': 'G',\n 'ʜ': 'H',\n 'ɪ': 'I',\n 'ʁ': 'R',\n 'ᴊ': 'J',\n 'ᴋ': 'K',\n 'ʟ': 'L',\n 'ᴌ': 'L',\n 'ᴍ': 'M',\n 'ɴ': 'N',\n 'ᴏ': 'O',\n 'ɶ': 'OE',\n 'ᴐ': 'O',\n 'ᴕ': 'OU',\n 'ᴘ': 'P',\n 'ʀ': 'R',\n 'ᴎ': 'N',\n 'ᴙ': 'R',\n 'ꜱ': 'S',\n 'ᴛ': 'T',\n 'ⱻ': 'E',\n 'ᴚ': 'R',\n 'ᴜ': 'U',\n 'ᴠ': 'V',\n 'ᴡ': 'W',\n 'ʏ': 'Y',\n 'ᴢ': 'Z',\n 'á': 'a',\n 'ă': 'a',\n 'ắ': 'a',\n 'ặ': 'a',\n 'ằ': 'a',\n 'ẳ': 'a',\n 'ẵ': 'a',\n 'ǎ': 'a',\n 'â': 'a',\n 'ấ': 'a',\n 'ậ': 'a',\n 'ầ': 'a',\n 'ẩ': 'a',\n 'ẫ': 'a',\n 'ä': 'a',\n 'ǟ': 'a',\n 'ȧ': 'a',\n 'ǡ': 'a',\n 'ạ': 'a',\n 'ȁ': 'a',\n 'à': 'a',\n 'ả': 'a',\n 'ȃ': 'a',\n 'ā': 'a',\n 'ą': 'a',\n 'ᶏ': 'a',\n 'ẚ': 'a',\n 'å': 'a',\n 'ǻ': 'a',\n 'ḁ': 'a',\n 'ⱥ': 'a',\n 'ã': 'a',\n 'ꜳ': 'aa',\n 'æ': 'ae',\n 'ǽ': 'ae',\n 'ǣ': 'ae',\n 'ꜵ': 'ao',\n 'ꜷ': 'au',\n 'ꜹ': 'av',\n 'ꜻ': 'av',\n 'ꜽ': 'ay',\n 'ḃ': 'b',\n 'ḅ': 'b',\n 'ɓ': 'b',\n 'ḇ': 'b',\n 'ᵬ': 'b',\n 'ᶀ': 'b',\n 'ƀ': 'b',\n 'ƃ': 'b',\n 'ɵ': 'o',\n 'ć': 'c',\n 'č': 'c',\n 'ç': 'c',\n 'ḉ': 'c',\n 'ĉ': 'c',\n 'ɕ': 'c',\n 'ċ': 'c',\n 'ƈ': 'c',\n 'ȼ': 'c',\n 'ď': 'd',\n 'ḑ': 'd',\n 'ḓ': 'd',\n 'ȡ': 'd',\n 'ḋ': 'd',\n 'ḍ': 'd',\n 'ɗ': 'd',\n 'ᶑ': 'd',\n 'ḏ': 'd',\n 'ᵭ': 'd',\n 'ᶁ': 'd',\n 'đ': 'd',\n 'ɖ': 'd',\n 'ƌ': 'd',\n 'ð': 'd',\n 'ı': 'i',\n 'ȷ': 'j',\n 'ɟ': 'j',\n 'ʄ': 'j',\n 'dz': 'dz',\n 'dž': 'dz',\n 'é': 'e',\n 'ĕ': 'e',\n 'ě': 'e',\n 'ȩ': 'e',\n 'ḝ': 'e',\n 'ê': 'e',\n 'ế': 'e',\n 'ệ': 'e',\n 'ề': 'e',\n 'ể': 'e',\n 'ễ': 'e',\n 'ḙ': 'e',\n 'ë': 'e',\n 'ė': 'e',\n 'ẹ': 'e',\n 'ȅ': 'e',\n 'è': 'e',\n 'ẻ': 'e',\n 'ȇ': 'e',\n 'ē': 'e',\n 'ḗ': 'e',\n 'ḕ': 'e',\n 'ⱸ': 'e',\n 'ę': 'e',\n 'ᶒ': 'e',\n 'ɇ': 'e',\n 'ẽ': 'e',\n 'ḛ': 'e',\n 'ꝫ': 'et',\n 'ḟ': 'f',\n 'ƒ': 'f',\n 'ᵮ': 'f',\n 'ᶂ': 'f',\n 'ǵ': 'g',\n 'ğ': 'g',\n 'ǧ': 'g',\n 'ģ': 'g',\n 'ĝ': 'g',\n 'ġ': 'g',\n 'ɠ': 'g',\n 'ḡ': 'g',\n 'ᶃ': 'g',\n 'ǥ': 'g',\n 'ḫ': 'h',\n 'ȟ': 'h',\n 'ḩ': 'h',\n 'ĥ': 'h',\n 'ⱨ': 'h',\n 'ḧ': 'h',\n 'ḣ': 'h',\n 'ḥ': 'h',\n 'ɦ': 'h',\n 'ẖ': 'h',\n 'ħ': 'h',\n 'ƕ': 'hv',\n 'í': 'i',\n 'ĭ': 'i',\n 'ǐ': 'i',\n 'î': 'i',\n 'ï': 'i',\n 'ḯ': 'i',\n 'ị': 'i',\n 'ȉ': 'i',\n 'ì': 'i',\n 'ỉ': 'i',\n 'ȋ': 'i',\n 'ī': 'i',\n 'į': 'i',\n 'ᶖ': 'i',\n 'ɨ': 'i',\n 'ĩ': 'i',\n 'ḭ': 'i',\n 'ꝺ': 'd',\n 'ꝼ': 'f',\n 'ᵹ': 'g',\n 'ꞃ': 'r',\n 'ꞅ': 's',\n 'ꞇ': 't',\n 'ꝭ': 'is',\n 'ǰ': 'j',\n 'ĵ': 'j',\n 'ʝ': 'j',\n 'ɉ': 'j',\n 'ḱ': 'k',\n 'ǩ': 'k',\n 'ķ': 'k',\n 'ⱪ': 'k',\n 'ꝃ': 'k',\n 'ḳ': 'k',\n 'ƙ': 'k',\n 'ḵ': 'k',\n 'ᶄ': 'k',\n 'ꝁ': 'k',\n 'ꝅ': 'k',\n 'ĺ': 'l',\n 'ƚ': 'l',\n 'ɬ': 'l',\n 'ľ': 'l',\n 'ļ': 'l',\n 'ḽ': 'l',\n 'ȴ': 'l',\n 'ḷ': 'l',\n 'ḹ': 'l',\n 'ⱡ': 'l',\n 'ꝉ': 'l',\n 'ḻ': 'l',\n 'ŀ': 'l',\n 'ɫ': 'l',\n 'ᶅ': 'l',\n 'ɭ': 'l',\n 'ł': 'l',\n 'lj': 'lj',\n 'ſ': 's',\n 'ẜ': 's',\n 'ẛ': 's',\n 'ẝ': 's',\n 'ḿ': 'm',\n 'ṁ': 'm',\n 'ṃ': 'm',\n 'ɱ': 'm',\n 'ᵯ': 'm',\n 'ᶆ': 'm',\n 'ń': 'n',\n 'ň': 'n',\n 'ņ': 'n',\n 'ṋ': 'n',\n 'ȵ': 'n',\n 'ṅ': 'n',\n 'ṇ': 'n',\n 'ǹ': 'n',\n 'ɲ': 'n',\n 'ṉ': 'n',\n 'ƞ': 'n',\n 'ᵰ': 'n',\n 'ᶇ': 'n',\n 'ɳ': 'n',\n 'ñ': 'n',\n 'nj': 'nj',\n 'ó': 'o',\n 'ŏ': 'o',\n 'ǒ': 'o',\n 'ô': 'o',\n 'ố': 'o',\n 'ộ': 'o',\n 'ồ': 'o',\n 'ổ': 'o',\n 'ỗ': 'o',\n 'ö': 'o',\n 'ȫ': 'o',\n 'ȯ': 'o',\n 'ȱ': 'o',\n 'ọ': 'o',\n 'ő': 'o',\n 'ȍ': 'o',\n 'ò': 'o',\n 'ỏ': 'o',\n 'ơ': 'o',\n 'ớ': 'o',\n 'ợ': 'o',\n 'ờ': 'o',\n 'ở': 'o',\n 'ỡ': 'o',\n 'ȏ': 'o',\n 'ꝋ': 'o',\n 'ꝍ': 'o',\n 'ⱺ': 'o',\n 'ō': 'o',\n 'ṓ': 'o',\n 'ṑ': 'o',\n 'ǫ': 'o',\n 'ǭ': 'o',\n 'ø': 'o',\n 'ǿ': 'o',\n 'õ': 'o',\n 'ṍ': 'o',\n 'ṏ': 'o',\n 'ȭ': 'o',\n 'ƣ': 'oi',\n 'ꝏ': 'oo',\n 'ɛ': 'e',\n 'ᶓ': 'e',\n 'ɔ': 'o',\n 'ᶗ': 'o',\n 'ȣ': 'ou',\n 'ṕ': 'p',\n 'ṗ': 'p',\n 'ꝓ': 'p',\n 'ƥ': 'p',\n 'ᵱ': 'p',\n 'ᶈ': 'p',\n 'ꝕ': 'p',\n 'ᵽ': 'p',\n 'ꝑ': 'p',\n 'ꝙ': 'q',\n 'ʠ': 'q',\n 'ɋ': 'q',\n 'ꝗ': 'q',\n 'ŕ': 'r',\n 'ř': 'r',\n 'ŗ': 'r',\n 'ṙ': 'r',\n 'ṛ': 'r',\n 'ṝ': 'r',\n 'ȑ': 'r',\n 'ɾ': 'r',\n 'ᵳ': 'r',\n 'ȓ': 'r',\n 'ṟ': 'r',\n 'ɼ': 'r',\n 'ᵲ': 'r',\n 'ᶉ': 'r',\n 'ɍ': 'r',\n 'ɽ': 'r',\n 'ↄ': 'c',\n 'ꜿ': 'c',\n 'ɘ': 'e',\n 'ɿ': 'r',\n 'ś': 's',\n 'ṥ': 's',\n 'š': 's',\n 'ṧ': 's',\n 'ş': 's',\n 'ŝ': 's',\n 'ș': 's',\n 'ṡ': 's',\n 'ṣ': 's',\n 'ṩ': 's',\n 'ʂ': 's',\n 'ᵴ': 's',\n 'ᶊ': 's',\n 'ȿ': 's',\n 'ɡ': 'g',\n 'ᴑ': 'o',\n 'ᴓ': 'o',\n 'ᴝ': 'u',\n 'ť': 't',\n 'ţ': 't',\n 'ṱ': 't',\n 'ț': 't',\n 'ȶ': 't',\n 'ẗ': 't',\n 'ⱦ': 't',\n 'ṫ': 't',\n 'ṭ': 't',\n 'ƭ': 't',\n 'ṯ': 't',\n 'ᵵ': 't',\n 'ƫ': 't',\n 'ʈ': 't',\n 'ŧ': 't',\n 'ᵺ': 'th',\n 'ɐ': 'a',\n 'ᴂ': 'ae',\n 'ǝ': 'e',\n 'ᵷ': 'g',\n 'ɥ': 'h',\n 'ʮ': 'h',\n 'ʯ': 'h',\n 'ᴉ': 'i',\n 'ʞ': 'k',\n 'ꞁ': 'l',\n 'ɯ': 'm',\n 'ɰ': 'm',\n 'ᴔ': 'oe',\n 'ɹ': 'r',\n 'ɻ': 'r',\n 'ɺ': 'r',\n 'ⱹ': 'r',\n 'ʇ': 't',\n 'ʌ': 'v',\n 'ʍ': 'w',\n 'ʎ': 'y',\n 'ꜩ': 'tz',\n 'ú': 'u',\n 'ŭ': 'u',\n 'ǔ': 'u',\n 'û': 'u',\n 'ṷ': 'u',\n 'ü': 'u',\n 'ǘ': 'u',\n 'ǚ': 'u',\n 'ǜ': 'u',\n 'ǖ': 'u',\n 'ṳ': 'u',\n 'ụ': 'u',\n 'ű': 'u',\n 'ȕ': 'u',\n 'ù': 'u',\n 'ủ': 'u',\n 'ư': 'u',\n 'ứ': 'u',\n 'ự': 'u',\n 'ừ': 'u',\n 'ử': 'u',\n 'ữ': 'u',\n 'ȗ': 'u',\n 'ū': 'u',\n 'ṻ': 'u',\n 'ų': 'u',\n 'ᶙ': 'u',\n 'ů': 'u',\n 'ũ': 'u',\n 'ṹ': 'u',\n 'ṵ': 'u',\n 'ᵫ': 'ue',\n 'ꝸ': 'um',\n 'ⱴ': 'v',\n 'ꝟ': 'v',\n 'ṿ': 'v',\n 'ʋ': 'v',\n 'ᶌ': 'v',\n 'ⱱ': 'v',\n 'ṽ': 'v',\n 'ꝡ': 'vy',\n 'ẃ': 'w',\n 'ŵ': 'w',\n 'ẅ': 'w',\n 'ẇ': 'w',\n 'ẉ': 'w',\n 'ẁ': 'w',\n 'ⱳ': 'w',\n 'ẘ': 'w',\n 'ẍ': 'x',\n 'ẋ': 'x',\n 'ᶍ': 'x',\n 'ý': 'y',\n 'ŷ': 'y',\n 'ÿ': 'y',\n 'ẏ': 'y',\n 'ỵ': 'y',\n 'ỳ': 'y',\n 'ƴ': 'y',\n 'ỷ': 'y',\n 'ỿ': 'y',\n 'ȳ': 'y',\n 'ẙ': 'y',\n 'ɏ': 'y',\n 'ỹ': 'y',\n 'ź': 'z',\n 'ž': 'z',\n 'ẑ': 'z',\n 'ʑ': 'z',\n 'ⱬ': 'z',\n 'ż': 'z',\n 'ẓ': 'z',\n 'ȥ': 'z',\n 'ẕ': 'z',\n 'ᵶ': 'z',\n 'ᶎ': 'z',\n 'ʐ': 'z',\n 'ƶ': 'z',\n 'ɀ': 'z',\n 'þ': 'th',\n 'ff': 'ff',\n 'ffi': 'ffi',\n 'ffl': 'ffl',\n 'fi': 'fi',\n 'fl': 'fl',\n 'ij': 'ij',\n 'œ': 'oe',\n 'st': 'st',\n 'ₐ': 'a',\n 'ₑ': 'e',\n 'ᵢ': 'i',\n 'ⱼ': 'j',\n 'ₒ': 'o',\n 'ᵣ': 'r',\n 'ᵤ': 'u',\n 'ᵥ': 'v',\n 'ₓ': 'x',\n 'Ё': 'YO',\n 'Й': 'I',\n 'Ц': 'TS',\n 'У': 'U',\n 'К': 'K',\n 'Е': 'E',\n 'Н': 'N',\n 'Г': 'G',\n 'Ш': 'SH',\n 'Щ': 'SCH',\n 'З': 'Z',\n 'Х': 'H',\n 'Ъ': \"'\",\n 'ё': 'yo',\n 'й': 'i',\n 'ц': 'ts',\n 'у': 'u',\n 'к': 'k',\n 'е': 'e',\n 'н': 'n',\n 'г': 'g',\n 'ш': 'sh',\n 'щ': 'sch',\n 'з': 'z',\n 'х': 'h',\n 'ъ': \"'\",\n 'Ф': 'F',\n 'Ы': 'I',\n 'В': 'V',\n 'А': 'a',\n 'П': 'P',\n 'Р': 'R',\n 'О': 'O',\n 'Л': 'L',\n 'Д': 'D',\n 'Ж': 'ZH',\n 'Э': 'E',\n 'ф': 'f',\n 'ы': 'i',\n 'в': 'v',\n 'а': 'a',\n 'п': 'p',\n 'р': 'r',\n 'о': 'o',\n 'л': 'l',\n 'д': 'd',\n 'ж': 'zh',\n 'э': 'e',\n 'Я': 'Ya',\n 'Ч': 'CH',\n 'С': 'S',\n 'М': 'M',\n 'И': 'I',\n 'Т': 'T',\n 'Ь': \"'\",\n 'Б': 'B',\n 'Ю': 'YU',\n 'я': 'ya',\n 'ч': 'ch',\n 'с': 's',\n 'м': 'm',\n 'и': 'i',\n 'т': 't',\n 'ь': \"'\",\n 'б': 'b',\n 'ю': 'yu'\n };\n\n return latinize;\n});\n","(function ( wpI18n, wpBlocks, wpElement, wpBlockEditor, wpComponents ) {\n wpBlockEditor = wp.blockEditor || wp.editor;\n const { __ } = wpI18n;\n const { Component, Fragment } = wpElement;\n const { registerBlockType, createBlock } = wpBlocks;\n const { InspectorControls, RichText, PanelColorSettings } = wpBlockEditor;\n const { Dashicon, Tooltip, PanelBody, RangeControl, SelectControl } = wpComponents;\n\n class AdvTabsBlock extends Component {\n constructor() {\n super( ...arguments );\n }\n\n componentWillMount() {\n const { attributes, setAttributes } = this.props;\n const currentBlockConfig = advgbDefaultConfig['advgb-tabs'];\n\n // No override attributes of blocks inserted before\n if (attributes.changed !== true) {\n if (typeof currentBlockConfig === 'object' && currentBlockConfig !== null) {\n Object.keys(currentBlockConfig).map((attribute) => {\n if (typeof attributes[attribute] === 'boolean') {\n attributes[attribute] = !!currentBlockConfig[attribute];\n } else {\n attributes[attribute] = currentBlockConfig[attribute];\n }\n });\n }\n\n // Finally set changed attribute to true, so we don't modify anything again\n setAttributes( { changed: true } );\n }\n }\n\n componentDidMount() {\n setTimeout(() => this.initTabs(), 100);\n if (!this.props.attributes.blockID) {\n this.props.setAttributes( { blockID: this.props.clientId } );\n }\n }\n\n componentDidUpdate( prevProps ) {\n const { tabItems: prevItems } = prevProps.attributes;\n const { tabItems } = this.props.attributes;\n\n if (prevItems !== tabItems) {\n this.initTabs( true );\n }\n\n if (tabItems.length === 0) {\n this.props.setAttributes( {\n tabItems: [\n {\n header: 'Tab 1',\n body: 'At least one tab must remaining, to remove block use \"Remove Block\" button from right menu.',\n },\n ],\n } );\n }\n }\n\n initTabs( refresh = false ) {\n if (typeof jQuery !== \"undefined\") {\n if (!refresh) {\n jQuery(`#block-${this.props.clientId} .advgb-tabs-block`).tabs();\n } else {\n jQuery(`#block-${this.props.clientId} .advgb-tabs-block`).tabs('refresh');\n }\n\n jQuery(`#block-${this.props.clientId} .advgb-tabs-block a`).on( 'keydown', function ( e ) {\n e.stopPropagation();\n } )\n }\n }\n\n updateTabs( value, index ) {\n const { attributes, setAttributes } = this.props;\n const { tabItems } = attributes;\n\n let newItems = tabItems.map( ( item, thisIndex ) => {\n if ( index === thisIndex ) {\n item = { ...item, ...value };\n }\n\n return item;\n } );\n\n setAttributes( { tabItems: newItems } );\n }\n\n render() {\n const { attributes, setAttributes, clientId } = this.props;\n const {\n tabItems,\n headerBgColor,\n headerTextColor,\n bodyBgColor,\n bodyTextColor,\n borderStyle,\n borderWidth,\n borderColor,\n borderRadius,\n blockID,\n activeTabBgColor,\n activeTabTextColor,\n } = attributes;\n\n return (\n <Fragment>\n <InspectorControls>\n <PanelColorSettings\n title={ __( 'Tab Colors', 'advanced-gutenberg' ) }\n initialOpen={ false }\n colorSettings={ [\n {\n label: __( 'Background Color', 'advanced-gutenberg' ),\n value: headerBgColor,\n onChange: ( value ) => setAttributes( { headerBgColor: value === undefined ? '#000' : value } ),\n },\n {\n label: __( 'Text Color', 'advanced-gutenberg' ),\n value: headerTextColor,\n onChange: ( value ) => setAttributes( { headerTextColor: value === undefined ? '#fff' : value } ),\n },\n {\n label: __( 'Active Tab Background Color', 'advanced-gutenberg' ),\n value: activeTabBgColor,\n onChange: ( value ) => setAttributes( { activeTabBgColor: value } ),\n },\n {\n label: __( 'Active Tab Text Color', 'advanced-gutenberg' ),\n value: activeTabTextColor,\n onChange: ( value ) => setAttributes( { activeTabTextColor: value } ),\n },\n ] }\n />\n <PanelColorSettings\n title={ __( 'Body Colors', 'advanced-gutenberg' ) }\n initialOpen={ false }\n colorSettings={ [\n {\n label: __( 'Background Color', 'advanced-gutenberg' ),\n value: bodyBgColor,\n onChange: ( value ) => setAttributes( { bodyBgColor: value } ),\n },\n {\n label: __( 'Text Color', 'advanced-gutenberg' ),\n value: bodyTextColor,\n onChange: ( value ) => setAttributes( { bodyTextColor: value } ),\n },\n ] }\n />\n <PanelBody title={ __( 'Border Settings', 'advanced-gutenberg' ) } initialOpen={ false }>\n <SelectControl\n label={ __( 'Border Style', 'advanced-gutenberg' ) }\n value={ borderStyle }\n options={ [\n { label: __( 'Solid', 'advanced-gutenberg' ), value: 'solid' },\n { label: __( 'Dashed', 'advanced-gutenberg' ), value: 'dashed' },\n { label: __( 'Dotted', 'advanced-gutenberg' ), value: 'dotted' },\n ] }\n onChange={ ( value ) => setAttributes( { borderStyle: value } ) }\n />\n <PanelColorSettings\n title={ __( 'Border Color', 'advanced-gutenberg' ) }\n initialOpen={ false }\n colorSettings={ [\n {\n label: __( 'Border Color', 'advanced-gutenberg' ),\n value: borderColor,\n onChange: ( value ) => setAttributes( { borderColor: value } ),\n },\n ] }\n />\n <RangeControl\n label={ __( 'Border width', 'advanced-gutenberg' ) }\n value={ borderWidth }\n min={ 1 }\n max={ 10 }\n onChange={ ( value ) => setAttributes( { borderWidth: value } ) }\n />\n <RangeControl\n label={ __( 'Border radius', 'advanced-gutenberg' ) }\n value={ borderRadius }\n min={ 0 }\n max={ 100 }\n onChange={ ( value ) => setAttributes( { borderRadius: value } ) }\n />\n </PanelBody>\n </InspectorControls>\n <div className=\"advgb-tabs-block\" style={ { border: 'none' } }>\n <ul className=\"advgb-tabs-panel\">\n {tabItems.map( ( item, index ) => (\n <li key={ index }\n className=\"advgb-tab\"\n style={ {\n backgroundColor: headerBgColor,\n borderStyle: borderStyle,\n borderWidth: borderWidth + 'px',\n borderColor: borderColor,\n borderRadius: borderRadius + 'px',\n margin: `-${borderWidth}px 0 -${borderWidth}px -${borderWidth}px`,\n } }\n >\n <a href={`#advgb-tab-${blockID}-${index}`}\n style={ { color: headerTextColor } }\n >\n <RichText\n tagName=\"p\"\n value={ item.header }\n onChange={ ( value ) => this.updateTabs( { header: value || '' }, index ) }\n unstableOnSplit={ () => null }\n placeholder={ __( 'Title…', 'advanced-gutenberg' ) }\n />\n </a>\n <Tooltip text={ __( 'Remove tab', 'advanced-gutenberg' ) }>\n <span className=\"advgb-tab-remove\"\n onClick={ () => setAttributes( {\n tabItems: tabItems.filter( (vl, idx) => idx !== index )\n } ) }\n >\n <Dashicon icon=\"no\"/>\n </span>\n </Tooltip>\n </li>\n ) ) }\n <li className=\"advgb-tab advgb-add-tab ui-state-default\"\n style={ {\n borderRadius: borderRadius + 'px',\n borderWidth: borderWidth + 'px',\n margin: `-${borderWidth}px 0 -${borderWidth}px -${borderWidth}px`,\n } }\n >\n <Tooltip text={ __( 'Add tab', 'advanced-gutenberg' ) }>\n <span onClick={ () => setAttributes( {\n tabItems: [\n ...tabItems,\n { header: __( 'New Tab', 'advanced-gutenberg' ), body: __( 'Enter your content.', 'advanced-gutenberg' ) }\n ]\n } ) }>\n <Dashicon icon=\"plus-alt\"/>\n </span>\n </Tooltip>\n </li>\n </ul>\n {tabItems.map( ( item, index ) => (\n <div key={ index }\n id={`advgb-tab-${blockID}-${index}`}\n className=\"advgb-tab-body\"\n style={ {\n backgroundColor: bodyBgColor,\n color: bodyTextColor,\n borderStyle: borderStyle,\n borderWidth: borderWidth + 'px',\n borderColor: borderColor,\n borderRadius: borderRadius + 'px',\n } }\n >\n <RichText\n tagName=\"p\"\n value={ item.body }\n onChange={ ( value ) => this.updateTabs( { body: value }, index ) }\n placeholder={ __( 'Enter text…', 'advanced-gutenberg' ) }\n />\n </div>\n ) ) }\n </div>\n {!!blockID &&\n <style>\n {activeTabBgColor && `#block-${clientId} li.advgb-tab.ui-tabs-active {\n background-color: ${activeTabBgColor} !important;\n }`}\n {activeTabTextColor && `#block-${clientId} li.advgb-tab.ui-tabs-active a {\n color: ${activeTabTextColor} !important;\n }`}\n </style>\n }\n </Fragment>\n )\n }\n }\n\n const tabsBlockIcon = (\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"20\" height=\"20\" viewBox=\"0 0 24 24\">\n <path fill=\"none\" d=\"M0,0h24v24H0V0z\"/>\n <path fill=\"none\" d=\"M0,0h24v24H0V0z\"/>\n <path d=\"M21,3H3C1.9,3,1,3.9,1,5v14c0,1.1,0.9,2,2,2h18c1.1,0,2-0.9,2-2V5C23,3.9,22.1,3,21,3z M21,19H3V5h10v4h8V19z\"/>\n </svg>\n );\n\n const tabBlockAttrs = {\n tabItems: {\n type: \"array\",\n default: [\n {\n header: __( 'Tab 1', 'advanced-gutenberg' ),\n body: __( 'Filler text (also placeholder text or dummy text) is text that shares some characteristics of a real written text, but is random or otherwise generated.', 'advanced-gutenberg' )\n },\n {\n header: __( 'Tab 2', 'advanced-gutenberg' ),\n body: __( 'Filler text (also placeholder text or dummy text) is text that shares some characteristics of a real written text, but is random or otherwise generated.', 'advanced-gutenberg' )\n },\n {\n header: __( 'Tab 3', 'advanced-gutenberg' ),\n body: __( 'Filler text (also placeholder text or dummy text) is text that shares some characteristics of a real written text, but is random or otherwise generated.', 'advanced-gutenberg' )\n },\n ]\n },\n headerBgColor: {\n type: 'string',\n default: '#000',\n },\n headerTextColor: {\n type: 'string',\n default: '#fff',\n },\n bodyBgColor: {\n type: 'string',\n },\n bodyTextColor: {\n type: 'string',\n },\n borderStyle: {\n type: 'string',\n default: 'solid',\n },\n borderWidth: {\n type: 'number',\n default: 1,\n },\n borderColor: {\n type: 'string',\n },\n borderRadius: {\n type: 'number',\n default: 2,\n },\n blockID: {\n type: 'string',\n },\n activeTabBgColor: {\n type: 'string',\n },\n activeTabTextColor: {\n type: 'string',\n },\n changed: {\n type: 'boolean',\n default: false,\n },\n };\n\n registerBlockType( 'advgb/tabs', {\n title: __( 'Tabs (deprecated) - PublishPress', 'advanced-gutenberg' ),\n description: __( 'Create horizontal or vertical tabs to display your content.', 'advanced-gutenberg' ),\n icon: {\n src: tabsBlockIcon,\n foreground: typeof advgbBlocks !== 'undefined' ? advgbBlocks.color : undefined,\n },\n category: \"advgb-category\",\n keywords: [ __( 'tabs', 'advanced-gutenberg' ), __( 'cards', 'advanced-gutenberg' ) ],\n attributes: tabBlockAttrs,\n supports: {\n inserter: false,\n },\n edit: AdvTabsBlock,\n save: function ( { attributes } ) {\n const {\n tabItems,\n headerBgColor,\n headerTextColor,\n bodyBgColor,\n bodyTextColor,\n borderStyle,\n borderWidth,\n borderColor,\n borderRadius,\n blockID,\n activeTabBgColor,\n activeTabTextColor,\n } = attributes;\n\n return (\n <div id={`advgb-tabs-${blockID}`} className=\"advgb-tabs-block\" style={ { border: 'none' } }>\n <ul className=\"advgb-tabs-panel\">\n {tabItems.map( ( item, index ) => (\n <li key={ index } className=\"advgb-tab\"\n style={ {\n backgroundColor: headerBgColor,\n borderStyle: borderStyle,\n borderWidth: borderWidth + 'px',\n borderColor: borderColor,\n borderRadius: borderRadius + 'px',\n margin: `-${borderWidth}px 0 -${borderWidth}px -${borderWidth}px`,\n } }\n >\n <a href={`#advgb-tab-${blockID}-${index}`}\n style={ { color: headerTextColor } }\n >\n <RichText.Content tagName=\"span\" value={ item.header }/>\n </a>\n </li>\n ) ) }\n </ul>\n {tabItems.map( ( item, index ) => (\n <div key={ index }\n id={`advgb-tab-${blockID}-${index}`}\n className=\"advgb-tab-body\"\n style={ {\n backgroundColor: bodyBgColor,\n color: bodyTextColor,\n borderStyle: borderStyle,\n borderWidth: borderWidth + 'px',\n borderColor: borderColor,\n borderRadius: borderRadius + 'px',\n } }\n >\n <RichText.Content tagName=\"p\" value={ item.body }/>\n </div>\n ) ) }\n {!!blockID &&\n <style>\n {activeTabBgColor && `#advgb-tabs-${blockID} li.advgb-tab.ui-tabs-active {\n background-color: ${activeTabBgColor} !important;\n }\n `}\n {activeTabTextColor && `#advgb-tabs-${blockID} li.advgb-tab.ui-tabs-active a {\n color: ${activeTabTextColor} !important;\n }`}\n </style>\n }\n </div>\n );\n },\n transforms: {\n to: [\n {\n type: 'block',\n blocks: [ 'advgb/adv-tabs' ],\n transform: ( attributes ) => {\n const innerTabs = [];\n const tabHeaders = [];\n\n attributes.tabItems.map(item => {\n const tabContent = createBlock(\n 'core/paragraph',\n {content: item.body}\n );\n\n const tab = createBlock(\n 'advgb/tab',\n { tabActive: 0 },\n [ tabContent ]\n );\n\n tabHeaders.push(item.header);\n innerTabs.push(tab);\n });\n\n attributes.tabItems = undefined;\n return createBlock(\n 'advgb/adv-tabs',\n { ...attributes,\n tabHeaders: tabHeaders,\n pid: `advgb-tabs-${attributes.blockID}`,\n changed: false,\n isTransform: true,\n },\n innerTabs,\n )\n }\n }\n ]\n },\n } );\n})( wp.i18n, wp.blocks, wp.element, wp.blockEditor, wp.components );\n","(function ( wpI18n, wpBlocks, wpElement, wpBlockEditor, wpComponents, lodash ) {\n wpBlockEditor = wp.blockEditor || wp.editor;\n const { __ } = wpI18n;\n const { Component, Fragment } = wpElement;\n const { registerBlockType } = wpBlocks;\n const { InspectorControls, RichText, PanelColorSettings, MediaUpload } = wpBlockEditor;\n const { RangeControl, ToggleControl, SelectControl, PanelBody, Tooltip } = wpComponents;\n const { times } = lodash;\n\n const PREV_ARROW = (\n <svg fill=\"currentColor\" xmlns=\"http://www.w3.org/2000/svg\" width=\"100%\" height=\"100%\" viewBox=\"0 0 24 24\">\n <path d=\"M15.41 16.59L10.83 12l4.58-4.59L14 6l-6 6 6 6 1.41-1.41z\"/>\n <path fill=\"none\" d=\"M0 0h24v24H0V0z\"/>\n </svg>\n );\n\n const NEXT_ARROW = (\n <svg fill=\"currentColor\" xmlns=\"http://www.w3.org/2000/svg\" width=\"100%\" height=\"100%\" viewBox=\"0 0 24 24\">\n <path d=\"M8.59 16.59L13.17 12 8.59 7.41 10 6l6 6-6 6-1.41-1.41z\"/>\n <path fill=\"none\" d=\"M0 0h24v24H0V0z\"/>\n </svg>\n );\n\n const previewImageData = 'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAPoAAACECAYAAAC5xDaMAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAB2tJREFUeNrs3c9rFGccx/FndmYTVzdiE5cQEVEoiPTQU3to8FAogrQUL9VbLyXn2kPv/hVCSU+C4CVCS/HQij2m1BakF6FQk0OqqCSGTdxhs9mZ7nc7I8+OM7szs7M7++P9gseJu5NdneQz3+d55scqBQAAAAAAAAAAAAAAAEwRo59vtiwrk9cB0JMrfxweHg4v6F7AjS6vQ/CBDIId8Xc3aeCNFAH3v8+I+JqgA9kG3dWa/lzswBsJQ64HuaCF3IgIPID+gu6GNCdp2I0UIS9oQddbMOwA+g+7Hm69+Y/FCruVsItvaCE3r1y5Mnvz5s0v5ubmPjZN85Q8Js+7rsuPCOiDYRjKcZxqrVb749GjRz9eunTpby/YTS+D/tLVlukrulbN3wRc2v37999dXl5ebT3/IT8WYKAOnzx5snL+/PkfvIAfesum3pXvVtULMau53lU3b926tXTx4sWfCDkwFNa5c+e+29jY+Kr1ddFrZpIhsxmzmvshlwes1dXVr0ul0qdsf2BoXXmzXC5/YNv2nfX1dVuFzMoXCgXp7qeq6MEZ9UKlUim2xuRfsumB4WoF+Z2VlZXPvIpuqfAjX6m77h1V/cGDB5+03vAUmx0YvoWFhY+8nrip3j7ild0YvfVG77O5gXwUi8VFr5oHg676DXow7DNsbiA3esBjT8YlHqO7rssJMUBOvPwVIrrtycfo2nntHaEn6EDuIifgQnL7/+MJXtjfo7CZx5Acdtnf31f1er3dfEePHlUzMzOqXC6zkcYv6Cpu191KEHLOYx9TOzs76tWrV6HHWG3bbi+LxaI6efIkgR/PsPdkJX11Kvr4kMr9/PnzjgoepdFoqGfPnqnjx4+rSqUix2zZgKMd8kSsYbwJ8gn51tZWRxWfnZ1VJ06cUKVSqV3BZR2p6Nvb22/Wq1ar7cdPnz5N2CeIxSaYzPG4VGc95FKpFxcXO9aT4EuT52Sn4Fd+Wb58+fKt9TG+2GVPIOmuS1fcJ+PubqGVyi0VXKq8Tyq7NBB0jCDpisvsuk4m2Xr+IrTCPj8/3/GYVPWoiyRA0JGj3d3dt7rneqXuJjjjLiGnqhN0jBjprgereZIJtbB1CTpBxwh227MmE3P6eB8EHSMY9DjH0HutO4gdCAg6+ui6ByUZZwfH9760nw4Cgo4BiKrIMnveq7J3O5yWpFcAgo4BizoUJo/LCTFhQZbn5Fx4OfYepdlssnHHHGfGTdFOQMIsofbPiKvVau1qzbFyKjrGSK/j5fK8XK8sFVpCLiTwvcRZB1R0DOuH2QpxcEJOToI5duxYe9ntmLp83+vXr99c1KIzTZONS9AxKuQmEv6hMAm2nPoa96w4WU+ubJMmr6FP4MnVbqDrjhEhgZSqLRewLC0txQ552OucOXOmfVWbvB5Bp6JjxIIuV6FlNaaWHYZUeFDRMWKynjhjIo6gAyDoAAg6AIIOgKADIOgACDpA0AEQdAAEHQBBB0DQARB0AAQdQDiuR8+R3L5pb29vKv6vwQ9wBEGfGvLBCNvb2wQddN0BEHQABB0AQQemBJNxOZIbL8pdWwGCPsndKe6ZDrruAAg6AIIOgKADBB0AQQdA0AEQdAAEHQBBB0DQARB0YEpxUcuYqVar7ZanSqXSvvIOBB0DIveZs20713+D4zj8IOi6AyDoAOi6o7u5ubncb1bB+JygY8CKxWK7AXTdARB0gKADIOgACDqAETRRs+7T9DHEGDw5jDkp992fqKBP08cQY/AWFhYmJuh03QHG6ADouo/af8ay2t0tIKsxOkEfQXJq6Pz8PL+hAF13gKADIOgApiXoLpsNmPCgO47TYLMB+XBd10lTbOME3dXb48ePf2NzA/mwbfvfQC6DX2dT0a9evfpno9HYZJMDw7e5ufl7SMjTV3Q5bzysou/t7TWfPn16h00ODFez2dy9fv36z8FM6mHXcpuooruBr2V84Fy+fPn7g4ODDTY9MLSxeePevXvfPnz4sObn0Guxuu9m13JfKBjaDsHwlubOzo4yDOPXCxculMrl8nvecwAGoF6vb929e/eba9eurUvR9lrDWza1wLtRH67RNaCWZRneOqbX5PajM347e/Zs6fbt25+3lstHjhxZ7LXjABBfqxu+/+LFi7/W1tZ+uXHjxj9esA+8kMuyrgVfAu+2vsdNE3SlBV2queWFvKgtLa/5VZ/qDmTUY9eGzH6Y9aAfeI/5Vd2JGqNbKd/QD7T+eEELO4Dsg+532Rt6uFWMw2tWj66DX9X9NzO8NwgG3QwEnbAD2YTc1ap2Uwv8YTDkUdU8bkXX9xTBkb6j/UOCFZ2wA+lDrhdYvzVV5wRc7IoeK4zepJy/vh9ovYrrjZAD2YVdL6Z64DsOr0VNwqUZoxvaHsbfgwS76wYVHci0oruBsboTyKFSMc6Oix1GbQZehQSbkAODHadHnQ3ndhubq7SBjAh88LUIOpBNVQ+r8LED3ncgA4En4MCQQp8k4JkG0ws9YQcGFPA04QYAAAAAAAAAAAAAAAAAAAAAAAAAAAD69J8AAwDy4cOYWRT5RgAAAABJRU5ErkJggg==';\n\n class AdvTestimonial extends Component {\n constructor() {\n super( ...arguments );\n this.state = {\n currentEdit: '',\n }\n }\n\n componentWillMount() {\n const { attributes, setAttributes } = this.props;\n const currentBlockConfig = advgbDefaultConfig['advgb-testimonial'];\n\n // No override attributes of blocks inserted before\n if (attributes.changed !== true) {\n if (typeof currentBlockConfig === 'object' && currentBlockConfig !== null) {\n Object.keys(currentBlockConfig).map((attribute) => {\n if (typeof attributes[attribute] === 'boolean') {\n attributes[attribute] = !!currentBlockConfig[attribute];\n } else {\n attributes[attribute] = currentBlockConfig[attribute];\n }\n });\n }\n\n // Finally set changed attribute to true, so we don't modify anything again\n setAttributes( { changed: true } );\n }\n }\n\n componentDidMount() {\n const { attributes, setAttributes, clientId } = this.props;\n const { pid, sliderView, sliderColumn, sliderCenterMode, sliderPauseOnHover, sliderInfiniteLoop,\n sliderDotsShown, sliderSpeed, sliderArrowShown, sliderItemsToScroll,\n } = attributes;\n\n setAttributes( { pid: `advgb-testimonial-${clientId}` } );\n\n if (sliderView) {\n jQuery(`#block-${clientId} .advgb-testimonial.slider-view`).slick({\n infinite: sliderInfiniteLoop,\n centerMode: sliderCenterMode,\n slidesToShow: sliderColumn,\n slidesToScroll: Math.min(sliderItemsToScroll, sliderColumn),\n pauseOnHover: sliderPauseOnHover,\n dots: sliderDotsShown,\n arrows: sliderArrowShown,\n speed: sliderSpeed,\n prevArrow: jQuery(`#block-${clientId} .advgb-slider-prev`),\n nextArrow: jQuery(`#block-${clientId} .advgb-slider-next`),\n });\n }\n }\n\n componentWillUpdate(nextProps) {\n const { attributes, clientId } = this.props;\n const { sliderView } = attributes;\n\n if (this.sliderNeedReload(nextProps.attributes, this.props.attributes)) {\n if (sliderView) {\n jQuery(`#block-${clientId} .advgb-testimonial.slick-initialized`).slick('unslick');\n jQuery(`#block-${clientId} .advgb-testimonial`)\n .removeAttr('tabindex')\n .removeAttr('role')\n .removeAttr('aria-describedby');\n }\n }\n }\n\n componentDidUpdate(prevProps) {\n const { attributes, clientId } = this.props;\n const { sliderView, sliderColumn, sliderCenterMode, sliderPauseOnHover, sliderInfiniteLoop,\n sliderDotsShown, sliderSpeed, sliderArrowShown, sliderItemsToScroll,\n } = attributes;\n const needReload = this.sliderNeedReload(prevProps.attributes, this.props.attributes);\n const needUpdate = this.sliderNeedUpdate(prevProps.attributes, this.props.attributes);\n const slider = jQuery(`#block-${clientId} .advgb-testimonial.slider-view`);\n const prevElm = jQuery(`#block-${clientId} .advgb-slider-prev`);\n const nextElm = jQuery(`#block-${clientId} .advgb-slider-next`);\n\n if (needReload) {\n if (sliderView) {\n slider.slick({\n infinite: sliderInfiniteLoop,\n centerMode: sliderCenterMode,\n slidesToShow: sliderColumn,\n slidesToScroll: Math.min(sliderItemsToScroll, sliderColumn),\n pauseOnHover: sliderPauseOnHover,\n dots: sliderDotsShown,\n arrows: sliderArrowShown,\n speed: sliderSpeed,\n prevArrow: prevElm,\n nextArrow: nextElm,\n });\n }\n }\n\n if (needUpdate && sliderView) {\n slider.slick('slickSetOption', 'slidesToShow', sliderColumn);\n slider.slick('slickSetOption', 'slidesToScroll', sliderItemsToScroll);\n slider.slick('slickSetOption', 'centerMode', sliderCenterMode);\n slider.slick('slickSetOption', 'pauseOnHover', sliderPauseOnHover);\n slider.slick('slickSetOption', 'infinite', sliderInfiniteLoop);\n slider.slick('slickSetOption', 'dots', sliderDotsShown);\n slider.slick('slickSetOption', 'arrows', sliderArrowShown);\n slider.slick('slickSetOption', 'speed', sliderSpeed);\n slider.slick('slickSetOption', 'prevArrow', prevElm);\n slider.slick('slickSetOption', 'nextArrow', nextElm, true);\n }\n }\n\n sliderNeedReload(pa, ca) {\n const checkReload = ['sliderView', 'columns', 'avatarPosition', 'sliderCenterMode'];\n let reload = false;\n\n for (let checkProp of checkReload) {\n if (pa[checkProp] !== ca[checkProp]) {\n reload = true;\n break;\n }\n }\n\n return reload;\n }\n\n sliderNeedUpdate(pa, ca) {\n const checkUpdate = [\n 'sliderColumn', 'sliderItemsToScroll', 'sliderPauseOnHover', 'sliderAutoPlay', 'sliderInfiniteLoop',\n 'sliderDotsShown', 'sliderSpeed', 'sliderAutoPlaySpeed', 'sliderArrowShown',\n ];\n let update = false;\n\n for (let checkItem of checkUpdate) {\n if (pa[checkItem] !== ca[checkItem]) {\n update = true;\n break;\n }\n }\n\n return update;\n }\n\n updateItems(idx, data) {\n const { attributes, setAttributes } = this.props;\n const { items } = attributes;\n\n const newItems = items.map( (item, index) => {\n if (idx === index) item = { ...item, ...data };\n\n return item;\n } );\n\n setAttributes( { items: newItems } );\n }\n\n render() {\n const { currentEdit } = this.state;\n const { attributes, setAttributes, isSelected } = this.props;\n const {\n pid, items, sliderView, enableAvatar, avatarColor, avatarBorderRadius, avatarBorderWidth, avatarBorderColor, avatarSize,\n nameColor, positionColor, descColor, columns, sliderColumn, sliderItemsToScroll, sliderCenterMode, sliderPauseOnHover,\n sliderAutoPlay, sliderInfiniteLoop, sliderDotsShown, sliderDotsColor, sliderSpeed, sliderAutoPlaySpeed,\n sliderArrowShown, sliderArrowSize, sliderArrowBorderSize, sliderArrowBorderRadius, sliderArrowColor, avatarPosition,\n isPreview\n } = attributes;\n\n const blockClass = [\n 'advgb-testimonial',\n sliderView && 'slider-view',\n `advgb-avatar-${avatarPosition}`\n ].filter( Boolean ).join( ' ' );\n\n const maxCols = sliderView ? 10 : 3;\n const minCols = sliderView ? 4 : 1;\n let i = 0;\n let validCols = columns;\n if (columns < 1) {\n validCols = 1;\n } else if (columns > 3 && !sliderView) {\n validCols = 3;\n setAttributes( { columns: 3 } );\n } else if (columns < 4 && sliderView) {\n validCols = 4;\n setAttributes( { columns: 4 } );\n } else if (columns > 10) {\n validCols = 10;\n setAttributes( { columns: 10 } );\n } else if (columns === '' || !columns) {\n validCols = sliderView ? 4 : 1;\n }\n\n const arrowStyle = {\n color: sliderArrowColor,\n borderColor: sliderArrowColor,\n borderWidth: sliderArrowBorderSize,\n borderRadius: sliderArrowBorderRadius ? `${sliderArrowBorderRadius}%` : undefined,\n width: sliderArrowSize,\n };\n\n return (\n isPreview ?\n <img alt={__('Testimonial', 'advanced-gutenberg')} width='100%' src={previewImageData}/>\n :\n <Fragment>\n <InspectorControls>\n <PanelBody title={ __( 'Testimonial Settings', 'advanced-gutenberg' ) }>\n <ToggleControl\n label={ __( 'Slider view', 'advanced-gutenberg' ) }\n checked={ sliderView }\n onChange={ () => setAttributes( { sliderView: !sliderView } ) }\n />\n <RangeControl\n label={ !sliderView ? __( 'Columns', 'advanced-gutenberg' ) : __( 'Number of items', 'advanced-gutenberg' ) }\n help={ __( 'Range in Normal view is 1-3, and in Slider view is 4-10.', 'advanced-gutenberg' ) }\n min={ minCols }\n max={ maxCols }\n value={ columns }\n onChange={ (value) => setAttributes( { columns: value } ) }\n />\n {sliderView && (\n <Fragment>\n <RangeControl\n label={ __( 'Items to show', 'advanced-gutenberg' ) }\n min={ 1 }\n max={ columns }\n value={ sliderColumn }\n onChange={ (value) => setAttributes( { sliderColumn: value } ) }\n />\n <RangeControl\n label={ __( 'Items to scroll', 'advanced-gutenberg' ) }\n min={ 1 }\n max={ sliderColumn }\n value={ sliderItemsToScroll }\n onChange={ (value) => setAttributes( { sliderItemsToScroll: value } ) }\n />\n <PanelBody title={ __( 'Slider Settings', 'advanced-gutenberg' ) } initialOpen={ false }>\n <ToggleControl\n label={ __( 'Center mode', 'advanced-gutenberg' ) }\n checked={ sliderCenterMode }\n onChange={ () => setAttributes( { sliderCenterMode: !sliderCenterMode } ) }\n />\n <ToggleControl\n label={ __( 'Pause on hover', 'advanced-gutenberg' ) }\n checked={ sliderPauseOnHover }\n onChange={ () => setAttributes( { sliderPauseOnHover: !sliderPauseOnHover } ) }\n />\n <ToggleControl\n label={ __( 'Auto play', 'advanced-gutenberg' ) }\n checked={ sliderAutoPlay }\n onChange={ () => setAttributes( { sliderAutoPlay: !sliderAutoPlay } ) }\n />\n {sliderAutoPlay && (\n <RangeControl\n label={ __( 'Autoplay speed (ms)', 'advanced-gutenberg' ) }\n min={ 0 }\n max={ 10000 }\n value={ sliderAutoPlaySpeed }\n onChange={ (value) => setAttributes( { sliderAutoPlaySpeed: value } ) }\n />\n )}\n <ToggleControl\n label={ __( 'Infinite Loop', 'advanced-gutenberg' ) }\n checked={ sliderInfiniteLoop }\n onChange={ () => setAttributes( { sliderInfiniteLoop: !sliderInfiniteLoop } ) }\n />\n <RangeControl\n label={ __( 'Transition speed (ms)', 'advanced-gutenberg' ) }\n min={ 0 }\n max={ 5000 }\n value={ sliderSpeed }\n onChange={ (value) => setAttributes( { sliderSpeed: value } ) }\n />\n <ToggleControl\n label={ __( 'Show dots', 'advanced-gutenberg' ) }\n checked={ sliderDotsShown }\n onChange={ () => setAttributes( { sliderDotsShown: !sliderDotsShown } ) }\n />\n <ToggleControl\n label={ __( 'Show arrows', 'advanced-gutenberg' ) }\n checked={ sliderArrowShown }\n onChange={ () => setAttributes( { sliderArrowShown: !sliderArrowShown } ) }\n />\n {sliderArrowShown && (\n <Fragment>\n <RangeControl\n label={ __( 'Arrow size', 'advanced-gutenberg' ) }\n min={ 40 }\n max={ 150 }\n value={ sliderArrowSize }\n onChange={ (value) => setAttributes( { sliderArrowSize: value } ) }\n />\n <RangeControl\n label={ __( 'Arrow border size', 'advanced-gutenberg' ) }\n min={ 0 }\n max={ 15 }\n value={ sliderArrowBorderSize }\n onChange={ (value) => setAttributes( { sliderArrowBorderSize: value } ) }\n />\n <RangeControl\n label={ __( 'Arrow border radius (%)', 'advanced-gutenberg' ) }\n min={ 0 }\n max={ 100 }\n value={ sliderArrowBorderRadius }\n onChange={ (value) => setAttributes( { sliderArrowBorderRadius: value } ) }\n />\n </Fragment>\n )}\n </PanelBody>\n <PanelColorSettings\n title={ __( 'Slider Colors', 'advanced-gutenberg' ) }\n initialOpen={ false }\n colorSettings={ [\n {\n label: __( 'Arrow and Border Color', 'advanced-gutenberg' ),\n value: sliderArrowColor,\n onChange: ( value ) => setAttributes( { sliderArrowColor: value } ),\n },\n {\n label: __( 'Dots Color', 'advanced-gutenberg' ),\n value: sliderDotsColor,\n onChange: ( value ) => setAttributes( { sliderDotsColor: value } ),\n },\n ] }\n />\n </Fragment>\n )}\n <PanelBody title={ __( 'Avatar', 'advanced-gutenberg' ) } initialOpen={ false }>\n <ToggleControl\n label={ __( 'Display Avatar', 'advanced-gutenberg' ) }\n checked={ enableAvatar }\n onChange={ () => setAttributes( { enableAvatar: !enableAvatar } ) }\n />\n { enableAvatar &&\n <Fragment>\n <PanelColorSettings\n title={ __( 'Avatar Colors', 'advanced-gutenberg' ) }\n initialOpen={ false }\n colorSettings={ [\n {\n label: __( 'Background Color', 'advanced-gutenberg' ),\n value: avatarColor,\n onChange: ( value ) => setAttributes( { avatarColor: value } ),\n },\n {\n label: __( 'Border Color', 'advanced-gutenberg' ),\n value: avatarBorderColor,\n onChange: ( value ) => setAttributes( { avatarBorderColor: value } ),\n },\n ] }\n />\n <RangeControl\n label={ __( 'Border Radius (%)', 'advanced-gutenberg' ) }\n min={ 0 }\n max={ 50 }\n value={ avatarBorderRadius }\n onChange={ (value) => setAttributes( { avatarBorderRadius: value } ) }\n />\n <RangeControl\n label={ __( 'Border Width', 'advanced-gutenberg' ) }\n min={ 0 }\n max={ 5 }\n value={ avatarBorderWidth }\n onChange={ (value) => setAttributes( { avatarBorderWidth: value } ) }\n />\n <RangeControl\n label={ __( 'Avatar Size', 'advanced-gutenberg' ) }\n min={ 50 }\n max={ 130 }\n value={ avatarSize }\n onChange={ (value) => setAttributes( { avatarSize: value } ) }\n />\n <SelectControl\n label={ __( 'Avatar Position', 'advanced-gutenberg' ) }\n value={ avatarPosition }\n options={ [\n {label: __( 'Top', 'advanced-gutenberg' ), value: 'top'},\n {label: __( 'Bottom', 'advanced-gutenberg' ), value: 'bottom'},\n {label: __( 'Left', 'advanced-gutenberg' ), value: 'left'},\n {label: __( 'right', 'advanced-gutenberg' ), value: 'right'},\n ] }\n onChange={ (value) => setAttributes( { avatarPosition: value } ) }\n />\n </Fragment>\n }\n </PanelBody>\n <PanelColorSettings\n title={ __( 'Text Colors', 'advanced-gutenberg' ) }\n initialOpen={ false }\n colorSettings={ [\n {\n label: __( 'Name Color', 'advanced-gutenberg' ),\n value: nameColor,\n onChange: ( value ) => setAttributes( { nameColor: value } ),\n },\n {\n label: __( 'Position Color', 'advanced-gutenberg' ),\n value: positionColor,\n onChange: ( value ) => setAttributes( { positionColor: value } ),\n },\n {\n label: __( 'Description Color', 'advanced-gutenberg' ),\n value: descColor,\n onChange: ( value ) => setAttributes( { descColor: value } ),\n },\n ] }\n />\n </PanelBody>\n </InspectorControls>\n <div className=\"advgb-testimonial-wrapper\" id={pid}>\n <div className={ blockClass }>\n {items.map( (item, idx) => {\n i++;\n if (i > validCols) return false;\n return (\n <div className=\"advgb-testimonial-item\" key={idx}>\n { enableAvatar &&\n <MediaUpload\n allowedTypes={ [\"image\"] }\n onSelect={ (media) => this.updateItems(idx, {\n avatarUrl: media.sizes.thumbnail ? media.sizes.thumbnail.url : media.sizes.full.url,\n avatarID: media.id\n } ) }\n value={ item.avatarID }\n render={ ( { open } ) => (\n <div className=\"advgb-testimonial-avatar-group\">\n <Tooltip text={ __( 'Click to change avatar', 'advanced-gutenberg' ) }>\n <div className=\"advgb-testimonial-avatar\"\n onClick={ open }\n style={ {\n backgroundImage: `url(${item.avatarUrl ? item.avatarUrl : advgbBlocks.avatarHolder})`,\n backgroundColor: avatarColor,\n borderRadius: avatarBorderRadius + '%',\n borderWidth: avatarBorderWidth + 'px',\n borderColor: avatarBorderColor,\n width: avatarSize + 'px',\n height: avatarSize + 'px',\n } }\n />\n </Tooltip>\n <Tooltip text={ __( 'Show default avatar', 'advanced-gutenberg' ) }>\n <span className=\"dashicons dashicons-update-alt advgb-testimonial-avatar-clear\"\n onClick={ () => this.updateItems(idx, { avatarUrl: undefined, avatarID: undefined } ) }\n />\n </Tooltip>\n </div>\n ) }\n />\n }\n <div className=\"advgb-testimonial-info\">\n <RichText\n tagName=\"h4\"\n className=\"advgb-testimonial-name\"\n value={ item.name }\n isSelected={ isSelected && currentEdit === 'name' + idx }\n unstableOnFocus={ () => this.setState( { currentEdit: 'name' + idx } ) }\n onChange={ (value) => this.updateItems(idx, { name: value } ) }\n style={ { color: nameColor } }\n placeholder={ __( 'Text…', 'advanced-gutenberg' ) }\n allowedFormats={ [ 'core/bold', 'core/italic' ] }\n />\n <RichText\n tagName=\"p\"\n className=\"advgb-testimonial-position\"\n value={ item.position }\n isSelected={ isSelected && currentEdit === 'pos' + idx }\n unstableOnFocus={ () => this.setState( { currentEdit: 'pos' + idx } ) }\n onChange={ (value) => this.updateItems(idx, { position: value } ) }\n style={ { color: positionColor } }\n placeholder={ __( 'Text…', 'advanced-gutenberg' ) }\n allowedFormats={ [ 'core/bold', 'core/italic' ] }\n />\n <RichText\n tagName=\"p\"\n className=\"advgb-testimonial-desc\"\n value={ item.desc }\n isSelected={ isSelected && currentEdit === 'desc' + idx }\n unstableOnFocus={ () => this.setState( { currentEdit: 'desc' + idx } ) }\n onChange={ (value) => this.updateItems(idx, { desc: value } ) }\n style={ { color: descColor } }\n placeholder={ __( 'Text…', 'advanced-gutenberg' ) }\n />\n </div>\n </div>\n ) } ) }\n </div>\n {sliderView && (\n <Fragment>\n {sliderArrowShown && (\n <Fragment>\n <button className=\"advgb-slider-arrow advgb-slider-prev\"\n style={ arrowStyle }\n >\n {PREV_ARROW}\n </button>\n <button className=\"advgb-slider-arrow advgb-slider-next\"\n style={ arrowStyle }\n >\n {NEXT_ARROW}\n </button>\n </Fragment>\n )}\n <style>\n {`#${pid} .slick-dots li.slick-active button:before {color: ${sliderDotsColor}}`}\n {`#${pid} .slick-dots li button:before {color: ${sliderDotsColor}}`}\n </style>\n </Fragment>\n )}\n </div>\n </Fragment>\n )\n }\n }\n\n const testimonialBlockIcon = (\n <svg height=\"20\" viewBox=\"2 2 22 22\" width=\"20\" xmlns=\"http://www.w3.org/2000/svg\">\n <path d=\"M19 2H5c-1.11 0-2 .9-2 2v14c0 1.1.89 2 2 2h4l3 3 3-3h4c1.1 0 2-.9 2-2V4c0-1.1-.9-2-2-2zm-7 3.3c1.49 0 2.7 1.21 2.7 2.7 0 1.49-1.21 2.7-2.7 2.7-1.49 0-2.7-1.21-2.7-2.7 0-1.49 1.21-2.7 2.7-2.7zM18 16H6v-.9c0-2 4-3.1 6-3.1s6 1.1 6 3.1v.9z\"/>\n <path d=\"M0 0h24v24H0z\" fill=\"none\"/>\n </svg>\n );\n\n const blockAttrs = {\n items: {\n type: 'array',\n default: times(10, () => ( {\n avatarUrl: advgbBlocks.avatarHolder,\n avatarID: undefined,\n name: 'Person Name',\n position: 'Job Position',\n desc: 'A little description about this person will show up here.',\n } ) ),\n },\n pid: {\n type: 'string',\n },\n sliderView: {\n type: 'boolean',\n default: false,\n },\n enableAvatar: {\n type: 'boolean',\n default: true,\n },\n avatarColor: {\n type: 'string',\n },\n avatarBorderRadius: {\n type: 'number',\n default: 50,\n },\n avatarBorderWidth: {\n type: 'number',\n },\n avatarBorderColor: {\n type: 'string',\n },\n avatarSize: {\n type: 'number',\n default: 120,\n },\n avatarPosition: {\n type: 'string',\n default: 'top',\n },\n nameColor: {\n type: 'string',\n },\n positionColor: {\n type: 'string'\n },\n descColor: {\n type: 'string',\n },\n columns: {\n type: 'number',\n default: 1,\n },\n sliderColumn: {\n type: 'number',\n default: 1,\n },\n sliderItemsToScroll: {\n type: 'number',\n default: 1,\n },\n sliderCenterMode: {\n type: 'boolean',\n default: false,\n },\n sliderPauseOnHover: {\n type: 'boolean',\n default: true,\n },\n sliderAutoPlay: {\n type: 'boolean',\n default: true,\n },\n sliderAutoPlaySpeed: {\n type: 'number',\n default: 2500,\n },\n sliderInfiniteLoop: {\n type: 'boolean',\n default: true,\n },\n sliderDotsShown: {\n type: 'boolean',\n default: true,\n },\n sliderDotsColor: {\n type: 'string',\n },\n sliderArrowShown: {\n type: 'boolean',\n default: true,\n },\n sliderArrowSize: {\n type: 'number',\n default: 50,\n },\n sliderArrowBorderSize: {\n type: 'number',\n },\n sliderArrowBorderRadius: {\n type: 'number',\n },\n sliderArrowColor: {\n type: 'string',\n },\n sliderSpeed: {\n type: 'number',\n default: 500,\n },\n changed: {\n type: 'boolean',\n default: false,\n },\n isPreview: {\n type: 'boolean',\n default: false,\n },\n };\n\n registerBlockType( 'advgb/testimonial', {\n title: __( 'Testimonial - PublishPress', 'advanced-gutenberg' ),\n description: __( 'Block for creating personal or team/group information.', 'advanced-gutenberg' ),\n icon: {\n src: testimonialBlockIcon,\n foreground: typeof advgbBlocks !== 'undefined' ? advgbBlocks.color : undefined,\n },\n category: 'advgb-category',\n keywords: [ __( 'testimonial', 'advanced-gutenberg' ), __( 'personal', 'advanced-gutenberg' ), __( 'about', 'advanced-gutenberg' ) ],\n attributes: blockAttrs,\n example: {\n attributes: {\n isPreview: true\n },\n },\n edit: AdvTestimonial,\n save: function ( { attributes } ) {\n const {\n pid, items, sliderView, enableAvatar, avatarColor, avatarBorderRadius, avatarBorderWidth, avatarBorderColor, avatarSize,\n nameColor, positionColor, descColor, columns, sliderColumn, sliderItemsToScroll, sliderCenterMode, sliderPauseOnHover,\n sliderAutoPlay, sliderInfiniteLoop, sliderDotsShown, avatarPosition, sliderSpeed, sliderAutoPlaySpeed,\n sliderArrowShown, sliderArrowSize, sliderArrowBorderSize, sliderArrowBorderRadius, sliderArrowColor,\n } = attributes;\n\n const blockClass = [\n 'advgb-testimonial',\n sliderView && 'slider-view',\n `advgb-avatar-${avatarPosition}`\n ].filter( Boolean ).join( ' ' );\n\n let i = 0;\n let validCols = columns;\n if (columns < 1) {\n validCols = 1;\n } else if (columns > 3 && !sliderView) {\n validCols = 3;\n } else if (columns < 4 && sliderView) {\n validCols = 4;\n } else if (columns > 10) {\n validCols = 10;\n }\n\n const arrowStyle = {\n color: sliderArrowColor,\n borderColor: sliderArrowColor,\n borderWidth: sliderArrowBorderSize,\n borderRadius: sliderArrowBorderRadius ? `${sliderArrowBorderRadius}%` : undefined,\n width: sliderArrowSize,\n };\n\n return (\n <div className=\"advgb-testimonial-wrapper\" id={pid}\n data-col={ sliderView ? sliderColumn : undefined }\n data-scroll={ sliderView ? sliderItemsToScroll : undefined }\n data-pause={ sliderView ? sliderPauseOnHover : undefined }\n data-autoplay={ sliderView ? sliderAutoPlay : undefined }\n data-apspeed={ sliderView ? sliderAutoPlaySpeed : undefined }\n data-loop={ sliderView ? sliderInfiniteLoop : undefined }\n data-dots={ sliderView ? sliderDotsShown : undefined }\n data-speed={ sliderView ? sliderSpeed : undefined }\n data-arrows={ sliderView ? sliderArrowShown : undefined }\n data-center={ sliderView ? sliderCenterMode : undefined }\n >\n <div className={ blockClass }>\n {items.map( (item, idx) => {\n i++;\n if (i > validCols) return false;\n return (\n <div className=\"advgb-testimonial-item\" key={idx}>\n { enableAvatar &&\n <div className=\"advgb-testimonial-avatar-group\">\n <div className=\"advgb-testimonial-avatar\"\n style={ {\n backgroundImage: `url(${item.avatarUrl ? item.avatarUrl : advgbBlocks.avatarHolder})`,\n backgroundColor: avatarColor,\n borderRadius: avatarBorderRadius + '%',\n borderWidth: avatarBorderWidth + 'px',\n borderColor: avatarBorderColor,\n width: avatarSize + 'px',\n height: avatarSize + 'px',\n } }\n />\n </div>\n }\n <div className=\"advgb-testimonial-info\">\n <RichText.Content\n tagName=\"h4\"\n className=\"advgb-testimonial-name\"\n style={ { color: nameColor } }\n value={ item.name }\n />\n <RichText.Content\n tagName=\"p\"\n className=\"advgb-testimonial-position\"\n style={ { color: positionColor } }\n value={ item.position }\n />\n <RichText.Content\n tagName=\"p\"\n className=\"advgb-testimonial-desc\"\n style={ { color: descColor } }\n value={ item.desc }\n />\n </div>\n </div>\n ) } ) }\n </div>\n {sliderView && (\n <Fragment>\n <button className=\"advgb-slider-arrow advgb-slider-prev\"\n style={ arrowStyle }\n >\n {PREV_ARROW}\n </button>\n <button className=\"advgb-slider-arrow advgb-slider-next\"\n style={ arrowStyle }\n >\n {NEXT_ARROW}\n </button>\n </Fragment>\n )}\n </div>\n );\n },\n deprecated: [\n {\n attributes: {\n ...blockAttrs,\n avatarSize: {\n type: 'number',\n default: 70\n }\n },\n save: function ( { attributes } ) {\n const {\n items,\n sliderView,\n avatarColor,\n avatarBorderRadius,\n avatarBorderWidth,\n avatarBorderColor,\n avatarSize,\n nameColor,\n positionColor,\n descColor,\n columns,\n } = attributes;\n\n const blockClass = [\n 'advgb-testimonial',\n sliderView && 'slider-view',\n ].filter( Boolean ).join( ' ' );\n\n let i = 0;\n let validCols = columns;\n if (columns < 1) {\n validCols = 1;\n } else if (columns > 3 && !sliderView) {\n validCols = 3;\n } else if (columns < 4 && sliderView) {\n validCols = 4;\n } else if (columns > 10) {\n validCols = 10;\n }\n\n return (\n <div className={ blockClass }>\n {items.map( (item, idx) => {\n i++;\n if (i > validCols) return false;\n return (\n <div className=\"advgb-testimonial-item\" key={idx}>\n <div className=\"advgb-testimonial-avatar-group\">\n <div className=\"advgb-testimonial-avatar\"\n style={ {\n backgroundImage: `url(${item.avatarUrl ? item.avatarUrl : advgbBlocks.avatarHolder})`,\n backgroundColor: avatarColor,\n borderRadius: avatarBorderRadius + '%',\n borderWidth: avatarBorderWidth + 'px',\n borderColor: avatarBorderColor,\n width: avatarSize + 'px',\n height: avatarSize + 'px',\n } }\n />\n </div>\n <h4 className=\"advgb-testimonial-name\"\n style={ { color: nameColor } }\n >\n { item.name }\n </h4>\n <p className=\"advgb-testimonial-position\"\n style={ { color: positionColor } }\n >\n { item.position }\n </p>\n <p className=\"advgb-testimonial-desc\"\n style={ { color: descColor } }\n >\n { item.desc }\n </p>\n </div>\n ) } ) }\n </div>\n );\n }\n }\n ]\n } );\n})( wp.i18n, wp.blocks, wp.element, wp.blockEditor, wp.components, lodash );\n","( function ( wpI18n, wpBlocks, wpElement, wpBlockEditor, wpComponents ) {\n wpBlockEditor = wp.blockEditor || wp.editor;\n const { __ } = wpI18n;\n const { Component, Fragment } = wpElement;\n const { registerBlockType } = wpBlocks;\n const { InspectorControls, BlockControls } = wpBlockEditor;\n const { RangeControl, PanelBody, CheckboxControl, SelectControl, Spinner, ToolbarGroup, Placeholder, Button } = wpComponents;\n const { addQueryArgs } = wp.url;\n\n let fetchingQueue = null;\n let initSlider = null;\n\n const previewImageData = 'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAPoAAAD8CAYAAABetbkgAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAEtNJREFUeNrsnc9rHOcZx2d217Zix7EdYwXbiZ3QuBAcamwoOeQSCDaUuufQU26lvfR/aG4NuaWGQA+FnnrsoRBICRRDcXIpxhAamoAV21hEiWwpkhzF0u5W3+mOOx7P7M7Mvjt6f3w+MKyktXfnnff5vs/zPu+vKAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABombitL+r1eq1+H4AjDLe3t90R+kjIVT8TwUPwAq/yvqlGIDYk8HjM5yJqgPrCH5r0+vGUAi8TdZz7GW8OMF7cwwmvUwk+nkLkeYHnRR7j3QFqi32YE/kTwm8i9nhKkReJW1enoncHQOhPinzcFY367sOZCb1A5PEYkXcmeHcARF4u8kHu9QlvX8ez96bo25eJu7OwsPDz+fn5X+80DD+N4/gA9QlQovThcGNra+vG0tLSn95+++2/Xr169eFI3J3Ra5wTfdowxDv6qiz2yh62wJs/Ju6dq/vxxx//6PXXX/9zt9v9CVUIUI/BYHDn+vXrv3rttdc+GYk6vfolHr5yCF9H6PmQvZMV+aeffvrquXPn/rgj8lepMoDGYl++du3aL994441/jQTez4n9iVC+ilfv1PDmZWF79+LFi/vOnj37O0QOMB2dTufojkf/wwcffHBa2hpdnag451XZWXdq3kehV79y5crFffv2XaKaAKZnx7H++M0337wY/S+H1s1Fz3GJ4I0IvWjM/NGXz8/PX6Z6AMwx0lS3wKt38gLPRdzFjUdNb16YZd/5opNUDYA55ubmLowEnh1uG+R0WHksvUnonvfoupm9VA2A0b76/pwn70bFE9EqhfCdKe7l0ZcMh0NqBmAGep+2b95E6PGECwBmI/R8l3lmybhJogcA8xTpLG7aYoxlQkaP0B3AAbF3Kn5R2Rc3bmEAYCqRx6aFPkn0ANCe8Bvpr9PwCyIED9C6sBtrr9PSzQDAdOH7VJrr8BwB/AehAwRAz5Yb+e6776I2NrK3iYMHD0Z79uzBCiEsoX///fdBPfynnnoKoQOhOwAgdABA6ACA0AEQOgAgdABA6ACA0AGgZayZMPP8889TGwB4dABA6ACA0AEQOgAgdABA6ACA0AEAoQMAQgcAhA4ACB0AEDpAIPRcvXHtGqvLFma9KOebb76JfvjhByvKum/fvujYsWMz/547d+5YU7/PPPNMciH0ltEe8CFtDy2Rh7Ydtk3l3b9/P6E7ACB0AEDoAIDQAQChAwBCBwCEDoDQAcATejyCMa1gp5PMhnr66aeTCSsrKyvR1taWt+XVWe2HDx9OZr6tr68nMw8Hg4HXdawz6lXHquuNjQ2rZlsi9JZE/tJLLyWvWYO4e/eulzPUVL4TJ048Vt6jR49GN2/e9FbsKt+zzz776Hc16AcOHIgWFxcJ3UNBRpAafVb8zz33nJfl1dz1ovK2Mad9t6KXrMizYnd5TjtCr4nC1zIDobwehLK93thGAKEHjq9hbFm5+v1+cHXsY5mDEroSTVVDbyXeinApWXP8+PHKYWhZudbW1twx5p2uxqlTp0qjkyzKsxQt+1WDp6QcQne4T6Z+d9V1xco6aw141tNJ/MvLy06UV31NXepjVzF8lTXbuKnc+puegyuoflVWNeb5fEMRSrplE6saUdEaeB9HVoLJumcrXz+rNZ+0kYMMX5cy0Pq3roTt2aShfpZnv3Xr1sT7l7B1qbyujSyoUVPEluYbVP5J2fNU2HICek62bOyBR5+ipZfxZtGOMFVa/TTMc6lvnvdoMmQNnVXFNZEXjYZkhT8JCd5nkQchdLXuRcMoMo46xu8K6QSfPGrofB0qKwvVVd58Ax8q3gt9XPJtnPG3tS+a6TzEuHuWhytqBNIGwsXx4zQXUYYa87Lhsqr5C4TuQMg+qSJl/HkDl3dQaF/0noueLf9v8s9EDZ7+7prhV5nAlOYo8s9FtpGOwlTtwiF0h0L2SS17KvK08vWeCxMoZLRVwtRUHGn5VO60C5N/z4eGrSg6U+Od2obek+gRuoche1mrL0FL5Fmvlr5ne8hex1jTrLRe80lJVwx/Ushe1DVJI7S8bYzr0viCl8NrVUL2IrFoskWRh0g9goaeXPZseaFoC+Oi/yfDV+bd1jH0pmsOVIdloyfpkKuvqxO98+h1QvYiAxoXGtvY6lcN2euWV4Zva5dlmu5F2f9zIXJD6A1D9iafbZPx1w3Z6wrCRsOvG7LXdRK+DkF6JfQmIXsbIaONns1Fw2/j+U8TISF0y0P2OqQbMrgcsrtq+G2NCGQ34EDoAYXsedSg7KbxzzJkt9XwZxmyF0UOvs2a9ELosw7ZbTP+tse6d9vwd6PLZEvkZgovhtc0DPTgwYMoFFxZKmsS7dXXNj5tMuKF0H1feZQntOOTJbjQykzoDgAIHQA8Ct21i2dIa41tWlXW1r3YVL/jdo1F6DPE1fXTTfF1xtY4tOAGAhe6kjM2JWhmPVlHu7Rub29b493aaGTv3btnTf0qunA5gnRa6DYNM7UhdFsatvR4qlljU/0W7TvoEiTjAAIAoQPQR7cXhcptLGKxhRATU2fOnEGheHQAQOgA4H7oXgft9dZkPryr+37rmKGQugeq2yb7+fm8o0yQQpchNBmacnX1EotegNAdgNDdT5qG365uJxTaeWOqpyZlDuU4pmCEHto88dCG4tKDKCBQoQ+HQyOfE8cx5aXMCN02VldXk8yzKSPodrvRiy++GM3NzVlpEIuLi8kCEFPllYdUeW0+c+7LL7+MNjc3jX2e5rLPz88ndY3QHUEi1yIQ059po/FL3AsLC0Y/c21tLdlx1dYDF9WQmz4eSyMzBw4ciA4ePOild/cu6y7DN+XZ8obQ7/e9DV3zaLjK1uHFWZRZdasIYVbPE48+Q0wspZQBbGxs2F+RvV5yaKKJBs2VzTbVxTCROdcOwr4KPAihnz17durPUBfgs88+s76sErmJ8qqLcvv2bSfqV31qE9l21a8LjTlCH1OBJjy6C8grmSivS1tnLy0tJf11E8/Od7wWuumEnM1om6mQymu6m+Frtj2FKbAAAeCdR9fQiDakUAbVZNbY1jF03ZPGgBXCmpw8oiSXrcNMykdoKMzkOLqGTeXVfZ0442XoriSNjOHhw4fGPlNzqW2cQCLDPH36dHL+nKl8gj5TQrJ1rr/q4eWXX04SaCYnRWnuAEJ3qVC9XnTo0CHj0yNtNQJ537179wZTXt1Xuv2yyTL7PA3W22Sc7xVHee1ujGyDZBwAQgcAQvddRKu1bDrJY9ZbE2vGmk0ntbSx/vuLL76wpn41suHy9uJ4dABCdwBA6ACA0AEAoQMAQgcAhA4ACB0AEDpAUPR4BOVoBtjhw4eT5YvayUSz8bQc1FdUTs3+0mo4lXNlZcXrwwu1DPfIkSPJFs9apqoyaxtpVw/XxKM3ID3mR8af/n78+PFE+D6icql86a6qKrfK7/P5ZNq3Xg2b1rdL9No1+NSpU86euYfQG1A2r1lznn0Vep3n4ENDnjbiWSR6E9uEI3RHKNss0MfWPjXwOs/Bh7C9bt0jdIcqt6pQy7Zl2tracl68dcrlUnnrlHlcP9y1MiP0grC76vJKJd7q/N1G1OeuemR0WbmUkHNJ5OpjF4XkeZRcLUqslv0doTtCmkFX30xJmCqGcOvWraTS1frrd51a6sre6WrUVFaVuUqfU+VS+dIsu8qt8rt0oIMaNkVsqt8qScT0FFqVUXWsZ6B1/z5m3YMYXlPlnzhx4tHvMnwZ9CTRpuJ2DRl5Nokmr17lsAOJ21VvljZsaX1L7FVEq81LbNrABI8+BUXH/1Zt9V1s1PIRi/6WejsfyTds6d+qRG6h4L3Q1V8r67P5aPxZz5bvv2ajGt8a8rK693XeA0Kf4N2qGn86ecLFPMS498vmAeg5VU3cudCwZbstKneRbVRN3CF0B0P2IuPPG3ga9unVFeOf1KilKMTNG3easEun+7ocshehxjw/7JbWr15tPIEHoRsI2fNkM9Pp1Nfse0UewUbPVtVgs/kJlTvbmLlk+FX74Pkchf5fahtVG0iE7rB3y4d46fzufBQgj2BzX35SyF72fCTyosSdC4Y/KWQv8v6qY1354cZxXRqE7njIPqnVz79nayKrqTDHZaVtN/yqIXtR3mXcnH4XIjeE3iBkr+s1bTT+OiF7HWw2/FlFHLZHbgi9pbDTNuOvG7L7YPh1Q/a69uPrEKRXQm8Sstv4HTY0ajYaftOQ3abGE6FbGrLnUZhsQ7JqViG7zYbf1nNXws63WZNeCL3tTPFuz7hqW3w2GP4sQ/YifJs16UVJZIhtV4q+c7fGm3cjopDh7xZ6zm3vdKPvdHGmYBlerF77+uuvkysUFhYWopDQRhA2HaGMRwcAhA4ACB0A6KM/Tgjzk7No+ub+/fvtMJpeO2ZjU/26Pj3WaaH7PDe5SOih4eue8gi9BtrvzaaNGqvuLtsUHRVky0aNba3T155vNjW0Lje2zgp9e3vb63PB8kjkIZVX2FReW7pNTSEZB0DobvGN93pB9dFtmnvd1r3YVL9tJSARumd9prr4NB2zKrPOe4QEoTsAQgcA+uiOoGGaJhlchY4u5gGaLgA5c+aMk/Wrum0yFKe6DaV7gEcHQOgAQOjuCE3nibs6pBLSGoC0npqU2fUhM4ReIPSQCG2O+G7sQIPQLWE4HCaXCeI4fuyV8tpR3uyriTLbXF6EXsDdu3ejr776ytjndbvdJCN96NAhKzcM/Pzzz6P79+8b+7y9e/dGr7zySpKVttH4tc7hxo0bRhf5KPQ/ffq0d7u/pniZjLt3757Rz+v3+9Hi4mJiYDZ6NpMiFw8fPkxWyw0GAyvrd2Njw/hKvtXV1Wh9fd1YhIDQWwrpTCOjt9HwZ1VeNW62Gv0s7kufaXOZCd3H8MILL0z9GZubm4l3sx2FnPPz80Y8m03r/MehJKu6U9OytLRkZbSG0CtiYtaTjN4VoZua5eWK0CVyE2VW44bQHebatWtRKEicIZVX3L59O7lMoISrzzAzDiAAEHpFfB5jpbz+0/PRQE+ePJmMpWuYyNRnKvFjY3ine9P477fffptkjU2FsTpI0tZDBlUXOn9ubW3N2EiI5g7o8rWB87KPriTN3NxccmaXKTHJCGycG617U7ZdZTYldAlcyT1bha770oiKxtJNCV2Nm8qM0F3qj+wYgmZ1SewhhLFqgHSZngJrM5rfriukMiN0+pnB9qvJJVR0fjwCAIQOAAgdABA6ACB0AEDoAGAIK4bXNOnBliOBAabB1olGVghdIrfpLGyApth66AehOwB9dACgj26qtRnNTQdw3nNauhDICqGb3AYJAAjdAQjddwutG9cmAgDeCazXs+JIMCuErh04l5eXsQrwDuWebBA6oTsAfXQAoI9usB8T2pneEE4fHaGP4HxrAEJ3APDBo7N6LRCvMtpGGgIVOqvXwkBDTcyAJHQHAIQOAE6H7gyvBWJsvR4PIWShM7wGQOgOAAgdABA6ACB0AIQOAAgdABA6AEzPcHTtutCN3AgA1NJc0c9TC3047kMHg8Emzx7AHP1+f9WkA23q0YfZa3Nz8xZVA2COlZWVa0Vaa+LNqwp9OOH36MaNG3+jagDMcfPmzasThFzL208UurZinuTVL1269Mny8vJfqB6A6VldXf3n+++//4+Rvgajq8yrV6JbqTXodOLRj/Ho6mRek+vIkSP/uXDhwvk9e/Ycp6oAmrHjWO+/9957v71y5criSOD90TXIvA4zjUCCdmkaR1zly3u9XpwTdnd0afXbnvT1/PnzBz788MPfHz169BdUGUA91tfXr7/11lu/+eijj1ZGolY4vTW6tjNXPy/6nQZiaFLocYHQs2JP/vbuu++euXz58s+OHTt2bica2F/1ewAC9OAPdrq9/95xkH9/5513/rMTtmfFnBV3Vuypd0+9+nBMF7ux0OOM0LNiz17pe53c/0PwAP8nO2yd7Y/3c2Lfyv0+yPfdJwm9V/OGsr8PRsLtF4g4vfFsXz5C6ACF2ioSej8Xqhcl5dKoYLKznvLmBiMRpzeXijkr9E6mUYgQPMAT3jzKeel+rh8+KBB6kQOeTuhqMUb7fQ1zHj3KCDzbAHRH73dLQneEDgj9Sac5jB7Prm8XiH3YROy9mjcWF9zkoOTmOxmPnxc4QgeEXhy6D6Mnh9P6uYbgkdCrhO21hF7g1aMCkXdzITveHKCZVx+UhO2N6DW4sbhE7HGJyDt4c4DKXr1I8IXz3SeNnWepLbqRV8/PlMtf44bVEDrAeKFPupL/UzVsbyy6ErFHY0J1vDlAudCjqDjJVpZ4qyXyqYSXE3uZly/6DsQOUCz0Ii//xL+rK3IjohvNmotKBI/AAaqLvUz0jQVuVHyZM7XiWX0HQKiin0bgMxdhgacHgApiNyFsAAAAAAAAAAAAAAAAAAAAAAAAAAAAx/mvAAMAfkZbyu3sQ/cAAAAASUVORK5CYII=';\n\n const advProductsBlockIcon = (\n <svg width=\"20\" height=\"20\" viewBox=\"0 0 24 24\">\n <path fill=\"none\" d=\"M0,0h24v24H0V0z\"/>\n <path d=\"M15.55,13c0.75,0,1.41-0.41,1.75-1.03l3.58-6.49C21.25,4.82,20.77,4,20.01,4H5.21L4.27,2H1v2h2l3.6,7.59l-1.35,2.44 C4.52,15.37,5.48,17,7,17h12v-2H7l1.1-2H15.55z M6.16,6h12.15l-2.76,5H8.53L6.16,6z\"/>\n <path d=\"M7,18c-1.1,0-1.99,0.9-1.99,2c0,1.1,0.89,2,1.99,2c1.1,0,2-0.9,2-2C9,18.9,8.1,18,7,18z\"/>\n <path d=\"M17,18c-1.1,0-1.99,0.9-1.99,2c0,1.1,0.89,2,1.99,2c1.1,0,2-0.9,2-2C19,18.9,18.1,18,17,18z\"/>\n </svg>\n );\n\n class AdvProductsEdit extends Component {\n constructor() {\n super( ...arguments );\n this.state = {\n categoriesList: [],\n productsList: [],\n loading: true,\n error: false,\n };\n\n this.fetchProducts = this.fetchProducts.bind(this);\n }\n\n componentWillMount() {\n const { attributes, setAttributes } = this.props;\n const currentBlockConfig = advgbDefaultConfig['advgb-woo-products'];\n\n // No override attributes of blocks inserted before\n if (attributes.changed !== true) {\n if (typeof currentBlockConfig === 'object' && currentBlockConfig !== null) {\n Object.keys(currentBlockConfig).map((attribute) => {\n if (typeof attributes[attribute] === 'boolean') {\n attributes[attribute] = !!currentBlockConfig[attribute];\n } else {\n attributes[attribute] = currentBlockConfig[attribute];\n }\n });\n }\n\n // Finally set changed attribute to true, so we don't modify anything again\n setAttributes( { changed: true } );\n }\n\n this.fetchProducts();\n }\n\n componentWillUpdate( nextProps, nextState ) {\n const { clientId } = this.props;\n const $ = jQuery;\n\n if (this.checkAttrChanged(nextProps.attributes, this.props.attributes)) {\n $(`#block-${clientId} .advgb-products-wrapper.slick-initialized`).slick('unslick');\n $(`#block-${clientId} .advgb-product`)\n .removeAttr('tabindex')\n .removeAttr('role')\n .removeAttr('aria-describedby');\n\n if (initSlider) {\n clearTimeout(initSlider);\n }\n }\n }\n\n componentDidUpdate( prevProps ) {\n const { categoriesList } = this.state;\n const { attributes } = this.props;\n const { category } = attributes;\n\n if (category === 'selected' && categoriesList.length === 0) {\n wp.apiFetch( { path: addQueryArgs('/wc/v2/products/categories', {per_page:-1} ) } ).then(\n (obj) => {\n this.setState( { categoriesList: obj } );\n }\n );\n }\n\n if (this.checkAttrChanged( prevProps.attributes, attributes )) {\n this.fetchProducts();\n }\n }\n\n checkAttrChanged( prevAttrs, curAttrs ) {\n const {\n viewType: prevView,\n category: prevCat,\n categories: prevCats,\n status: prevStatus,\n order: prevOrder,\n orderBy: prevOrderBy,\n numberOfProducts: prevLength\n } = prevAttrs;\n const { viewType, category, categories, status, order, orderBy, numberOfProducts } = curAttrs;\n\n return (\n category !== prevCat\n || categories !== prevCats\n || status !== prevStatus\n || order !== prevOrder\n || orderBy !== prevOrderBy\n || numberOfProducts !== prevLength\n || prevView !== viewType\n )\n }\n\n fetchProducts() {\n const self = this;\n const {\n viewType,\n category,\n categories,\n status,\n order,\n orderBy,\n numberOfProducts,\n } = this.props.attributes;\n\n const query = addQueryArgs(\n '/agwc/v1/products',\n {\n order: order || undefined,\n orderby: orderBy || undefined,\n per_page: numberOfProducts,\n category: category === 'selected' ? categories.join(',') : undefined,\n featured: status === 'featured' ? 1 : undefined,\n on_sale: status === 'on_sale' ? 1 : undefined,\n }\n );\n\n if (fetchingQueue) {\n clearTimeout(fetchingQueue);\n }\n\n if (this.state.error) {\n this.setState( { error: false } );\n }\n\n fetchingQueue = setTimeout(function () {\n if (!self.state.loading) {\n self.setState( { loading: true } );\n }\n wp.apiFetch( { path: query } ).then( (obj) => {\n self.setState( {\n productsList: obj,\n loading: false,\n } )\n } ).catch( (error) => {\n self.setState( {\n loading: false,\n error: true,\n } )\n } ).then( () => {\n if (viewType === 'slider') {\n const $ = jQuery;\n initSlider = setTimeout(function () {\n $(`#block-${self.props.clientId} .advgb-products-block.slider-view .advgb-products-wrapper:not(.slick-initialized)`).slick( {\n dots: true,\n adaptiveHeight: true,\n } );\n }, 100 );\n }\n } )\n }, 500 );\n }\n\n setCategories( catID, willAdd ) {\n const { attributes, setAttributes } = this.props;\n const { categories } = attributes;\n\n if (willAdd) {\n setAttributes( { categories: [ ...categories, catID ] } );\n } else {\n setAttributes( { categories: categories.filter( (cat) => cat !== catID ) } )\n }\n\n this.fetchProducts();\n }\n\n render() {\n const { categoriesList, productsList, loading, error } = this.state;\n const { attributes, setAttributes } = this.props;\n const {\n viewType,\n category,\n categories,\n status,\n order,\n orderBy,\n numberOfProducts,\n columns,\n isPreview,\n } = attributes;\n\n const viewControls = [\n {\n icon: 'grid-view',\n title: __( 'Normal View', 'advanced-gutenberg' ),\n onClick: () => setAttributes( { viewType: 'normal' } ),\n isActive: viewType === 'normal',\n },\n {\n icon: 'slides',\n title: __( 'Slider View', 'advanced-gutenberg' ),\n onClick: () => setAttributes( { viewType: 'slider' } ),\n isActive: viewType === 'slider',\n },\n ];\n\n const blockClassName = [\n \"advgb-products-block\",\n viewType === 'slider' && 'slider-view',\n ].filter( Boolean ).join( ' ' );\n\n const blockWrapperClassName = [\n \"advgb-products-wrapper\",\n viewType === 'normal' && `columns-${columns}`,\n ].filter( Boolean ).join( ' ' );\n\n return (\n isPreview ?\n <img alt={__('Woo Products', 'advanced-gutenberg')} width='100%' src={previewImageData}/>\n :\n <Fragment>\n <BlockControls>\n <ToolbarGroup controls={ viewControls } />\n </BlockControls>\n <InspectorControls>\n <PanelBody title={ __( 'Products Settings', 'advanced-gutenberg' ) }>\n <SelectControl\n label={ __( 'Product Status', 'advanced-gutenberg' ) }\n value={ status }\n options={ [\n { label: __( 'All', 'advanced-gutenberg' ), value: '' },\n { label: __( 'Featured', 'advanced-gutenberg' ), value: 'featured' },\n { label: __( 'On Sale', 'advanced-gutenberg' ), value: 'on_sale' },\n ] }\n onChange={ ( value ) => setAttributes( { status: value } ) }\n />\n <SelectControl\n label={ __( 'Category', 'advanced-gutenberg' ) }\n value={ category }\n options={ [\n { label: __( 'All', 'advanced-gutenberg' ), value: '' },\n { label: __( 'Selected', 'advanced-gutenberg' ), value: 'selected' },\n ] }\n onChange={ ( value ) => setAttributes( { category: value } ) }\n />\n {category === 'selected' &&\n <div className=\"advgb-woo-categories-list\">\n {categoriesList.map( (cat, index) => (\n <CheckboxControl\n key={ index }\n label={ [\n cat.name,\n <span key=\"cat-count\" style={ { fontSize: 'small', color: '#999', marginLeft: 5 } }>\n ({cat.count})\n </span>\n ] }\n checked={ jQuery.inArray(cat.id, categories) > -1 }\n onChange={ (checked) => this.setCategories( cat.id, checked ) }\n />\n ) ) }\n </div>\n }\n </PanelBody>\n <PanelBody title={ __( 'Layout Settings', 'advanced-gutenberg' ) }>\n {viewType !== 'slider' &&\n <RangeControl\n label={ __( 'Columns', 'advanced-gutenberg' ) }\n value={ columns }\n min={ 1 }\n max={ 4 }\n onChange={ ( value ) => setAttributes( { columns: value } ) }\n />\n }\n <RangeControl\n label={ __( 'Number of Products', 'advanced-gutenberg' ) }\n value={ numberOfProducts }\n min={ 1 }\n max={ 48 }\n onChange={ (value) => setAttributes( { numberOfProducts: value } ) }\n />\n <SelectControl\n label={ __( 'Order', 'advanced-gutenberg' ) }\n value={ `${orderBy}-${order}` }\n options={ [\n { label: __( 'Newest to oldest', 'advanced-gutenberg' ), value: 'date-desc' },\n { label: __( 'Oldest to newest', 'advanced-gutenberg' ), value: 'date-asc' },\n { label: __( 'Price: high to low', 'advanced-gutenberg' ), value: 'price-desc' },\n { label: __( 'Price: low to high', 'advanced-gutenberg' ), value: 'price-asc' },\n { label: __( 'Highest Rating first', 'advanced-gutenberg' ), value: 'rating-desc' },\n { label: __( 'Most sale first', 'advanced-gutenberg' ), value: 'popularity-desc' },\n { label: __( 'Title: Alphabetical', 'advanced-gutenberg' ), value: 'title-asc' },\n { label: __( 'Title: Alphabetical reversed', 'advanced-gutenberg' ), value: 'title-desc' },\n ] }\n onChange={ (value) => {\n const splitedVal = value.split('-');\n return setAttributes( {\n orderBy: splitedVal[0],\n order: splitedVal[1],\n } )\n } }\n />\n </PanelBody>\n </InspectorControls>\n <div className={ blockClassName }>\n {!error ? !loading ? productsList.length > 0 ?\n <div className={ blockWrapperClassName }>\n {productsList.map( (product, idx) => (\n <div key={idx} className=\"advgb-product\">\n <div className=\"advgb-product-img\">\n <img src={product.images.length ? product.images[0].src : advgbBlocks.post_thumb} alt={product.name} />\n </div>\n <div className=\"advgb-product-title\">{ product.name }</div>\n <div className=\"advgb-product-price\" dangerouslySetInnerHTML={ { __html: product.price_html } } />\n <div className=\"advgb-product-add-to-cart\">\n <span>{ __( 'Add to cart', 'advanced-gutenberg' ) }</span>\n </div>\n </div>\n ) ) }\n </div>\n : ( // When no products found\n <div>{ __( 'No products found.', 'advanced-gutenberg' ) }</div>\n )\n : ( // When products is fetching\n <div>\n <span>{ __( 'Loading', 'advanced-gutenberg' ) }</span>\n <Spinner/>\n </div>\n )\n : ( // When error\n <Placeholder\n icon={ advProductsBlockIcon }\n label={ __( 'Woo Products Block', 'advanced-gutenberg' ) }\n >\n <div style={ { marginBottom: 10 } }>\n { __( 'WooCommerce has not been detected, make sure WooCommerce is installed and activated.', 'advanced-gutenberg' ) }\n </div>\n <Button\n className=\"button button-large\"\n onClick={ () => this.fetchProducts() }\n >\n { __( 'Try again', 'advanced-gutenberg' ) }\n </Button>\n </Placeholder>\n )\n }\n </div>\n </Fragment>\n )\n }\n }\n\n const attributes = {\n viewType: {\n type: 'string',\n default: 'normal',\n },\n category: {\n type: 'string',\n },\n categories: {\n type: 'array',\n default: [],\n },\n status: {\n type: 'string',\n },\n order: {\n type: 'string',\n default: 'desc',\n },\n orderBy: {\n type: 'string',\n default: 'date',\n },\n numberOfProducts: {\n type: 'number',\n default: 6,\n },\n columns: {\n type: 'number',\n default: 3,\n },\n changed: {\n type: 'boolean',\n default: false,\n },\n isPreview: {\n type: 'boolean',\n default: false,\n },\n };\n\n registerBlockType( 'advgb/woo-products', {\n title: __( 'Woo Products - PublishPress', 'advanced-gutenberg' ),\n description: __( 'Listing your products in a easy way.', 'advanced-gutenberg' ),\n icon: {\n src: advProductsBlockIcon,\n foreground: typeof advgbBlocks !== 'undefined' ? advgbBlocks.color : undefined,\n },\n category: 'advgb-category',\n keywords: [ __( 'woo commerce', 'advanced-gutenberg' ), __( 'products list', 'advanced-gutenberg' ), __( 'price list', 'advanced-gutenberg' ) ],\n attributes,\n example: {\n attributes: {\n isPreview: true\n },\n },\n supports: {\n anchor: true\n },\n edit: AdvProductsEdit,\n save: function ( { attributes } ) {\n const {\n viewType,\n category,\n categories,\n status,\n order,\n orderBy,\n numberOfProducts,\n columns,\n } = attributes;\n\n const listCats = categories.join(',');\n const shortCode = [\n '[products',\n `limit=\"${numberOfProducts}\"`,\n `columns=\"${columns}\"`,\n `orderby=\"${orderBy}\"`,\n `order=\"${order}\"`,\n category === 'selected' && `category=\"${listCats}\"`,\n status === 'featured' && 'visibility=\"featured\"',\n status === 'on_sale' && 'on_sale=\"1\"',\n ']',\n ].filter( Boolean ).join( ' ' );\n\n const blockClassName = [\n 'advgb-woo-products',\n viewType === 'slider' && 'slider-view',\n ].filter( Boolean ).join( ' ' );\n\n return (\n <div className={ blockClassName }>\n {shortCode}\n </div>\n );\n },\n deprecated: [\n {\n attributes,\n save: function ( { attributes } ) {\n const {\n viewType,\n category,\n categories,\n status,\n order,\n orderBy,\n numberOfProducts,\n columns,\n } = attributes;\n\n const listCats = categories.join(',');\n const shortCode = [\n '[products',\n `limit=\"${numberOfProducts}\"`,\n `columns=\"${columns}\"`,\n `orderby=\"${orderBy}\"`,\n `order=\"${order}\"`,\n category === 'selected' && `category=\"${listCats}\"`,\n status === 'featured' && 'featured=\"1\"',\n status === 'on_sale' && 'on_sale=\"1\"',\n ']',\n ].filter( Boolean ).join( ' ' );\n\n const blockClassName = [\n 'advgb-woo-products',\n viewType === 'slider' && 'slider-view',\n ].filter( Boolean ).join( ' ' );\n\n return (\n <div className={ blockClassName }>\n {shortCode}\n </div>\n );\n },\n },\n ],\n } )\n} )( wp.i18n, wp.blocks, wp.element, wp.blockEditor, wp.components );\n"],"sourceRoot":""}
| ver. 1.4 |
Github
|
.
| PHP 5.4.45 | Generation time: 0.05 |
proxy
|
phpinfo
|
Settings