{"version":3,"sources":["webpack:///./src/views/About.vue?7531","webpack:///./src/views/About.vue?d61c","webpack:///./src/views/About.vue","webpack:///./node_modules/gsap/utils/paths.js","webpack:///./node_modules/gsap/MorphSVGPlugin.js","webpack:///./node_modules/gsap/DrawSVGPlugin.js","webpack:///src/views/About.vue","webpack:///./src/views/About.vue?55f7","webpack:///./src/views/About.vue?1006"],"names":["render","_vm","this","_c","_self","staticClass","_l","meetClement","meetClementSingle","index","key","attrs","meetClementStore","bigImage","section","_e","_v","_s","headline","par1","par2","on","$event","slideToNext","button","backToTop","staticRenderFns","_svgPathExp","_numbersExp","_scientific","_selectorExp","_DEG2RAD","Math","PI","_sin","sin","_cos","cos","_abs","abs","_sqrt","sqrt","_isString","atan2","value","_isNumber","_roundingNum","_round","round","getRawPath","test","document","querySelector","rawPath","e","getAttribute","_gsPath","_dirty","stringToRawPath","console","warn","reverseSegment","segment","y","i","reverse","length","reversed","_createPath","ignore","name","path","createElementNS","attr","slice","call","attributes","nodeName","toLowerCase","indexOf","setAttributeNS","nodeValue","_typeAttrs","rect","circle","ellipse","line","_attrToObj","props","split","obj","element","swap","data","x","r","ry","rcirc","rycirc","points","w","h","x2","x3","x4","x5","x6","y2","y3","y4","y5","y6","type","tagName","circ","getBBox","rx","width","height","join","cx","cy","x1","y1","match","shift","setAttribute","rawPathToString","_gsRawPath","parentNode","insertBefore","removeChild","arcToSegment","lastX","lastY","angle","largeArcFlag","sweepFlag","angleRad","cosAngle","sinAngle","TWOPI","dx2","dy2","x1_sq","y1_sq","radiiCheck","rx_sq","ry_sq","sq","coef","cx1","cy1","sx2","sy2","ux","uy","vx","vy","temp","angleStart","acos","angleExtent","isNaN","segments","ceil","angleIncrement","controlLength","ma","mb","mc","md","push","d","j","command","isRelative","startX","startY","difX","difY","beziers","prevCommand","flag1","flag2","a","replace","m","n","relativeX","relativeY","twoThirds","elements","errorMessage","sx","sy","ex","ey","log","toUpperCase","closed","substr","charAt","pop","totalPoints","sl","s","result","l","gsap","_toArray","_lastLinkedAnchor","_coreInitted","PluginClass","_getGSAP","window","registerPlugin","_isFunction","_PI","_2PI","_angleMin","_angleMax","_bigNum","_numExp","_commands","_log","message","_bonusValidated","_getAverageXY","_getSize","xMax","xMin","yMax","yMin","centerX","centerY","size","_getTotalSize","samplesPerBezier","k","t","inv","inc","left","top","_sortByComplexity","b","_sortBySize","sizeA","sizeB","_offsetSegment","shapeIndex","wrap","_getTotalMovement","sb","eb","offsetX","offsetY","checkReverse","copy","sCenter","eCenter","min","minIndex","_getClosestAnchor","dx","dy","closestDistance","closestX","closestY","_getClosestSegment","bezier","pool","startIndex","sortRatio","minSize","splice","_subdivideSegmentQty","quantity","ax","ay","cp1x","cp1y","cp2x","cp2y","bx","by","tally","max","newPointsPerSegment","floor","start","end","map","fillSafe","dif","longer","shorter","added","sortMethod","shapeIndices","sort","precompile","_offsetPoints","text","offset","parseInt","_equalizePointQuantity","factor","nextX","nextY","parseFloat","toFixed","_pointsFilter","startNums","endNums","_buildPointsFilter","shape","forcePath","target","isString","getAttributeNS","_populateSmoothData","tolerance","smooth","a2","isSmooth","smoothData","limit","_parseOriginFactors","v","trim","_shortAngle","_morphMessage","_tweenRotation","linkedPT","angleDif","_short","so","_origin","eo","_eOrigin","sa","ca","_anchorPT","_next","cl","_initCore","required","plugins","morphSVG","utils","toArray","prototype","MorphSVGPlugin","version","rawVars","register","core","Plugin","init","tween","targets","p","pt","isPoly","startSmooth","endSmooth","startSeg","endSeg","precompiled","sData","eData","originFactors","useRotation","cs","nodeType","getComputedStyle","fill","fillRule","origins","origin","prop","defaultMap","_prop","_render","defaultRender","_apply","updateTarget","defaultUpdateTarget","_rnd","pow","precision","_tween","_target","defaultType","smoothTolerance","_rawPath","_controlPT","l1s","l1c","l2s","l2c","add","_props","endProp","ratio","space","easeInOut","controlPT","anchorPT","rnd","_pt","kill","property","pathFilter","pointsFilter","getTotalSize","equalizeSegmentQuantity","convertToPath","_win","_isEdge","_windowExists","_types","_parseNum","_getAttributeAsNumber","_getDistance","scaleX","scaleY","_warn","_hasNonScalingStroke","_parse","defaultStart","undefined","_getLength","bbox","prevPoint","style","getScreenCTM","c","_ref","strokeDasharray","getTotalLength","_getPosition","dash","strokeDashoffset","navigator","userAgent","DrawSVGPlugin","overage","_style","_length","_dash","_offset","_offsetPT","_dashPT","strokeLinecap","strokeLinejoin","strokeMiterlimit","_live","lengthRatio","getLength","getPosition","metaInfo","title","meta","content","methods","transitionProgress","setTimeout","startSVG","delay","tl","to","opacity","staggerFrom","rotation","transformOrigin","from","scale","ease","drawSVG","repeat","yoyo","onComplete","watch","el","CMS","beforeCreate","then","showSVGContent","lastSection","transitionInProgress","computed","component"],"mappings":"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,gBAAkBA,EAAO,MAAQ1X,EAAS,QAM3I2Y,UAAW3B,GACX4B,YAAanB,IAEf,MAAc,GAAKnO,eAAewO,I,iBChDlC/O,QAAKA,eAAeA,GAAgBA,IAIpC,IAEe,IAEf8P,UACAC,qCACAC,MACA,CAEA3Y,mBACA4Y,QACA,kQAQAC,SACA5b,uBACA,4BACA,4GACA,4BAIAE,qBACA,4BACA,4BACA,4BAIA2b,8BAAA,WACA,6BACAC,uBACA,4BACA,MAGAC,oBAKA,wBAAAC,UAIAC,EACAC,gBACA1Z,SACA2Z,YAGAC,YACA,iBACA,IACAD,UACA3Z,MACA6Z,iBACAC,2BAEA,IAEAC,KACA,QACA,CACAJ,YAGAC,YACA,eACA,GACAD,UACAK,SACAF,0BACAG,iCACAja,QAEA,GACA,OAEA+Z,KACA,YACA,GACAG,kBACAnY,KACAkY,kCAEA,OAEAF,KACA,0BACA,IACAG,YACAvG,oBAEA,OAEAoG,KACA,gBACA,IACAG,YACAvG,oBAEA,OAEAoG,KACA,0BACA,IACAG,aAEA,SAEAH,KACA,0BACA,IACAG,aAEA,SAEAN,YACA,eACA,IACAM,YACAvG,oBAEA,GACA,SAEAoG,oCAAAG,YAAAvG,oBAAA,QACAoG,KACA,UACA,IACAG,aAEA,SAEAH,oBACAJ,WACA,OAWAI,kBACAJ,WACA,OACAD,iBACA3X,KACAoY,UACAC,SACA,OACAV,iBACA3X,MACAoY,UACAC,SACA,OAEAL,kBACAJ,UACA3Z,OACA,OACA0Z,GACA,UACA,GACA3H,qBACAhQ,KACAoY,UACAC,SAEA,OAEAV,GACA,UACA,GACA3H,qBACAhQ,MACAoY,UACAC,SAEA,OAEAV,GACA,UACA,GACA3H,qBACAhQ,KACAoY,UACAC,SAEA,OAEAV,GACA,UACA,GACA3H,qBACAhQ,MACAoY,UACAC,SAEA,OAEAL,iBAAAG,aAAA,SACAH,sBAAAG,aAAA,SACAH,qBAAAG,aAAA,SACAH,sBAAAG,aAAA,SACAR,iBAAAW,sBACA,0FAaAC,OACAvd,mBAAA,WACA,iBACAuc,uBACA,eACA,KAEA,wDACA,gCACAla,kGACA,0BACAA,4FAEA,kBACAA,kFACAA,2EACAka,uBACAla,wEACAmb,yCAEA,OAEAnb,+FACAA,yFAGA,+BAGAob,eAAA,WACA,4CACA,oBACArd,sDACAC,qDACAC,qDACAI,8DAMAgd,wBAAA,WAEA,wCACAC,kBACA,iBAIA5Y,gBACA,OACA6Y,kBACAC,cACAC,wBACAre,eACAge,WAIAM,UACAje,4BACA,sCAGAE,mBACA,oCC9jB+U,M,mCCS3Uge,GAAY,gBACd,GACA9e,EACA0B,GACA,EACA,KACA,WACA,MAIa,aAAAod,G","file":"js/chunk-3b345841.1c0905f0.js","sourcesContent":["export * from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--10-oneOf-1-0!../../node_modules/css-loader/dist/cjs.js??ref--10-oneOf-1-1!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--10-oneOf-1-2!../../node_modules/sass-loader/dist/cjs.js??ref--10-oneOf-1-3!../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./About.vue?vue&type=style&index=0&id=7df6e6c6&prod&lang=sass&\"","export * from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--10-oneOf-1-0!../../node_modules/css-loader/dist/cjs.js??ref--10-oneOf-1-1!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--10-oneOf-1-2!../../node_modules/sass-loader/dist/cjs.js??ref--10-oneOf-1-3!../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./About.vue?vue&type=style&index=1&id=7df6e6c6&prod&lang=sass&scoped=true&\"","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',{staticClass:\"aboutContainer\"},_vm._l((_vm.meetClement),function(meetClementSingle,index){return _c('div',{key:index,staticClass:\"section aboutSection\"},[_c('div',{staticClass:\"part1\"},[(index != 0)?_c('img',{staticClass:\"clementAbout\",attrs:{\"src\":_vm.meetClementStore[index].bigImage}}):_c('div',{staticClass:\"revealContent\"},[_c('div',{staticClass:\"reveal\"}),_c('transition',{attrs:{\"name\":\"opacitySwitch\"}},[(_vm.section == 2)?_c('svg',{attrs:{\"x\":\"0\",\"y\":\"0\",\"viewBox\":\"0 0 1024 768\"}},[_c('defs',[_c('pattern',{attrs:{\"id\":\"disco-gif\",\"width\":\"1.8\",\"height\":\"1.8\",\"viewBox\":\"0 0 300 300\",\"preserveAspectRatio\":\"xMidYMid slice\"}},[_c('image',{staticClass:\"twombly\",attrs:{\"xlink:href\":\"https://s3.amazonaws.com/space-jam/disco.gif\",\"width\":\"300\",\"height\":\"300\"}})])]),_c('filter',{attrs:{\"id\":\"glow\",\"x\":\"-40%\",\"y\":\"-40%\",\"width\":\"200%\",\"height\":\"200%\"}},[_c('feGaussianBlur',{attrs:{\"in\":\"SourceAlpha\",\"stdDeviation\":\"4\",\"result\":\"blurred\"}}),_c('feFlood',{attrs:{\"flood-color\":\"#fff\",\"result\":\"colored\"}}),_c('feComposite',{attrs:{\"in\":\"colored\",\"in2\":\"blurred\",\"operator\":\"in\",\"result\":\"softGlow_colored\"}}),_c('feMerge',[_c('feMergeNode',{attrs:{\"in\":\"softGlow_colored\"}}),_c('feMergeNode',{attrs:{\"in\":\"SourceGraphic\"}})],1)],1),_c('g',{attrs:{\"id\":\"Clouds\"}},[_c('path',{staticClass:\"BasicFill\",attrs:{\"id\":\"Cloud_2\",\"stroke\":\"red\",\"d\":\"M506.445,345.087c0.712-1.616,1.103-3.343,1.103-5.14c0-8.953-9.568-16.211-21.37-16.211 c-2.511,0-4.92,0.331-7.158,0.935c-5.561-8.408-17.223-14.199-30.713-14.199c-10.617,0-20.103,3.586-26.373,9.211 c-4.588-2.093-10.121-3.316-16.076-3.316c-15.872,0-28.739,8.683-28.739,19.394c0,3.381,1.285,6.559,3.538,9.326H506.445z\"}}),_c('path',{staticClass:\"BasicFill\",attrs:{\"id\":\"Cloud_1\",\"d\":\"M231.037,260.659H318.6c0.007-0.006,0.014-0.011,0.021-0.017 c0.003,0.006,0.007,0.011,0.01,0.017h44.46c1.415-2.652,2.209-5.599,2.209-8.707c0-11.576-10.942-20.961-24.44-20.961 c-7.236,0-13.736,2.699-18.211,6.986c-4.64-6.813-14.302-11.5-25.475-11.5c-3.017,0-5.922,0.344-8.65,0.977 c-2.905-7.659-11.746-13.231-22.206-13.231c-12.823,0-23.218,8.374-23.218,18.703c0,1.093,0.123,2.162,0.346,3.204 c-10.251,2.483-17.454,8.342-17.454,15.177C225.993,254.782,227.86,258.004,231.037,260.659z\"}})]),_c('g',{attrs:{\"id\":\"Stars\"}},[_c('polygon',{attrs:{\"id\":\"star_8\",\"points\":\"873.717,205.952 873.43,208.748 875.571,210.57 872.823,211.161 871.752,213.76 \\n 870.34,211.329 867.538,211.113 869.414,209.02 868.753,206.287 871.323,207.425\"}}),_c('polygon',{attrs:{\"id\":\"star_7\",\"points\":\"862.807,90.731 865.556,93.98 869.792,93.557 867.551,97.176 869.263,101.073 \\n 865.129,100.061 861.951,102.892 861.636,98.648 857.961,96.501 861.901,94.89\"}}),_c('polygon',{attrs:{\"id\":\"star_6\",\"points\":\"731.852,110.904 729.874,108.364 726.66,108.552 728.465,105.886 727.292,102.888 \\n 730.386,103.781 732.875,101.739 732.982,104.957 735.693,106.693 732.665,107.789\"}}),_c('polygon',{attrs:{\"id\":\"star_5\",\"points\":\"496.969,140.654 498.013,144.781 502.004,146.26 498.402,148.528 498.229,152.78 \\n 494.959,150.056 490.861,151.205 492.441,147.253 490.082,143.711 494.329,143.993\"}}),_c('polygon',{attrs:{\"id\":\"srar_4\",\"points\":\"217.801,319.11 217.534,321.71 219.524,323.403 216.969,323.952 215.974,326.368 \\n 214.662,324.108 212.057,323.908 213.8,321.962 213.186,319.422 215.575,320.479\"}}),_c('polygon',{attrs:{\"id\":\"star_3\",\"points\":\"295.451,107.324 295.189,109.874 297.141,111.535 294.635,112.073 293.659,114.443 \\n 292.372,112.227 289.817,112.03 291.527,110.121 290.925,107.631 293.268,108.667\"}}),_c('polygon',{attrs:{\"id\":\"star_2\",\"points\":\"126.527,327.528 126.24,330.325 128.38,332.146 125.632,332.737 124.561,335.336 123.15,332.905 120.347,332.69 122.223,330.596 121.562,327.864 124.133,329.001\"}}),_c('polygon',{attrs:{\"id\":\"star_1\",\"points\":\"176.634,237.079 176.199,241.313 179.441,244.072 175.28,244.967 173.658,248.902 171.521,245.221 167.277,244.894 170.118,241.725 169.117,237.588 173.009,239.31\"}})]),_c('g',{attrs:{\"id\":\"Stars-glow\"}},[_c('use',{attrs:{\"id\":\"star_8_dup\",\"href\":\"#star_8\"}}),_c('use',{attrs:{\"id\":\"star_7_dup\",\"href\":\"#star_7\"}}),_c('use',{attrs:{\"id\":\"star_6_dup\",\"href\":\"#star_6\"}}),_c('use',{attrs:{\"id\":\"star_5_dup\",\"href\":\"#star_5\"}}),_c('use',{attrs:{\"id\":\"star_4_dup\",\"href\":\"#star_4\"}}),_c('use',{attrs:{\"id\":\"star_3_dup\",\"href\":\"#star_3\"}}),_c('use',{attrs:{\"id\":\"star_2_dup\",\"href\":\"#star_2\"}}),_c('use',{attrs:{\"id\":\"star_1_dup\",\"href\":\"#star_1\"}})]),_c('g',{attrs:{\"id\":\"Moon\"}},[_c('circle',{staticClass:\"BasicFill\",attrs:{\"cx\":\"191.377\",\"cy\":\"133.172\",\"r\":\"32.083\"}}),_c('circle',{staticClass:\"BasicFill\",attrs:{\"cx\":\"211.218\",\"cy\":\"149.636\",\"r\":\"2.111\"}}),_c('circle',{staticClass:\"BasicFill\",attrs:{\"cx\":\"170.27\",\"cy\":\"117.975\",\"r\":\"3.377\"}}),_c('ellipse',{staticClass:\"BasicFill\",attrs:{\"cx\":\"210.796\",\"cy\":\"141.615\",\"rx\":\"4.221\",\"ry\":\"5\"}})]),_c('g',{attrs:{\"id\":\"BackgroundBuildings\"}},[_c('rect',{staticClass:\"bg-building BasicFill\",attrs:{\"id\":\"BuildingB_6\",\"x\":\"491.098\",\"y\":\"505.501\",\"width\":\"69.653\",\"height\":\"102.58\"}}),_c('rect',{staticClass:\"bg-building BasicFill\",attrs:{\"id\":\"BuildingB_5\",\"x\":\"709.345\",\"y\":\"492.837\",\"width\":\"40.526\",\"height\":\"115.245\"}}),_c('rect',{staticClass:\"bg-building BasicFill\",attrs:{\"id\":\"BuildingB_4\",\"x\":\"364.878\",\"y\":\"479.751\",\"width\":\"57.411\",\"height\":\"128.331\"}}),_c('g',{staticClass:\"bg-building\",attrs:{\"id\":\"BuildingB_3\"}},[_c('line',{staticClass:\"BasicStroke\",attrs:{\"x1\":\"475.479\",\"y1\":\"412.63\",\"x2\":\"475.479\",\"y2\":\"455.689\"}}),_c('rect',{staticClass:\"BasicFill\",attrs:{\"x\":\"443.396\",\"y\":\"455.266\",\"width\":\"64.166\",\"height\":\"152.815\"}}),_c('rect',{staticClass:\"BasicFill\",attrs:{\"x\":\"466.192\",\"y\":\"428.671\",\"width\":\"19.419\",\"height\":\"12.664\"}})]),_c('g',{staticClass:\"bg-building\",attrs:{\"id\":\"BuildingB_2\"}},[_c('rect',{staticClass:\"BasicFill\",attrs:{\"x\":\"309.999\",\"y\":\"452.734\",\"width\":\"57.411\",\"height\":\"155.348\"}}),_c('line',{staticClass:\"BasicStroke\",attrs:{\"x1\":\"309.999\",\"y1\":\"466.242\",\"x2\":\"366.566\",\"y2\":\"466.242\"}})]),_c('g',{staticClass:\"bg-building\",attrs:{\"id\":\"BuildingB_1\"}},[_c('rect',{staticClass:\"BasicFill\",attrs:{\"x\":\"544.393\",\"y\":\"487.654\",\"width\":\"48.019\",\"height\":\"120.428\"}}),_c('rect',{staticClass:\"BasicFill\",attrs:{\"x\":\"547.194\",\"y\":\"472.215\",\"width\":\"42.416\",\"height\":\"15.439\"}}),_c('rect',{staticClass:\"BasicFill\",attrs:{\"x\":\"550.396\",\"y\":\"456.775\",\"width\":\"36.014\",\"height\":\"15.439\"}}),_c('rect',{staticClass:\"BasicFill\",attrs:{\"x\":\"555.998\",\"y\":\"441.336\",\"width\":\"24.81\",\"height\":\"15.439\"}})])]),_c('g',{attrs:{\"id\":\"OldCityHall\"}},[_c('rect',{staticClass:\"BasicFill\",attrs:{\"id\":\"tower_body\",\"x\":\"778.401\",\"y\":\"459.488\",\"width\":\"41.421\",\"height\":\"148.594\"}}),_c('path',{staticClass:\"BasicFill\",attrs:{\"id\":\"tower_roof\",\"d\":\"M824.237,458.04l-24.232-48.33c-0.369-0.736-1.419-0.736-1.788,0l-24.232,48.33 c-0.333,0.665,0.15,1.448,0.894,1.448h48.464C824.087,459.488,824.571,458.705,824.237,458.04z\"}}),_c('path',{staticClass:\"BasicFill\",attrs:{\"id\":\"tower_door\",\"d\":\"M808.394,564.266c0-4.711-4.124-8.53-9.211-8.53s-9.211,3.819-9.211,8.53 c0,0.131,0.015,0.258,0.021,0.388h-0.021v43.427h18.421v-43.427h-0.021C808.379,564.525,808.394,564.397,808.394,564.266z\"}}),_c('circle',{staticClass:\"BasicFill\",attrs:{\"id\":\"tower_clock\",\"cx\":\"798.839\",\"cy\":\"479.328\",\"r\":\"9.709\"}}),_c('rect',{staticClass:\"BasicFill\",attrs:{\"id\":\"lower_building\",\"x\":\"673.885\",\"y\":\"555.314\",\"width\":\"104.691\",\"height\":\"52.768\"}}),_c('path',{staticClass:\"BasicFill\",attrs:{\"id\":\"window_3\",\"d\":\"M763.647,582.641c0-2.736-4.124-4.953-9.211-4.953s-9.211,2.218-9.211,4.953 c0,0.076,0.015,0.15,0.021,0.225h-0.021v25.216h18.421v-25.216h-0.021C763.632,582.791,763.647,582.717,763.647,582.641z\"}}),_c('path',{staticClass:\"BasicFill\",attrs:{\"id\":\"window_2\",\"d\":\"M735.786,582.641c0-2.736-4.124-4.953-9.211-4.953c-5.087,0-9.211,2.218-9.211,4.953 c0,0.076,0.015,0.15,0.021,0.225h-0.021v25.216h18.421v-25.216h-0.021C735.771,582.791,735.786,582.717,735.786,582.641z\"}}),_c('path',{staticClass:\"BasicFill\",attrs:{\"id\":\"window_1\",\"d\":\"M707.924,582.641c0-2.736-4.124-4.953-9.211-4.953s-9.211,2.218-9.211,4.953 c0,0.076,0.015,0.15,0.021,0.225h-0.021v25.216h18.421v-25.216h-0.021C707.909,582.791,707.924,582.717,707.924,582.641z\"}}),_c('path',{staticClass:\"BasicFill\",attrs:{\"id\":\"lower_roof\",\"d\":\"M778.138,527.415l-105.39,0.074c-0.366,0-0.688,0.246-0.792,0.604l-8.58,29.556 c-0.157,0.541,0.24,1.085,0.793,1.084l122.591-0.086c0.553,0,0.949-0.544,0.792-1.085l-8.621-29.544 C778.826,527.66,778.504,527.415,778.138,527.415z\"}})]),_c('g',{attrs:{\"id\":\"CNTower\"}},[_c('path',{staticClass:\"cn-tower\",attrs:{\"id\":\"cn_base_l\",\"d\":\"M360.76,289.317c0,0-3.41,241.954-15.831,318.765c0,0,12.565,0,26.182,0V289.317H360.76z\"}}),_c('path',{staticClass:\"cn-tower\",attrs:{\"id\":\"cn_base_r\",\"d\":\"M381.097,289.317h-9.986v318.765c9.526,0,19.566,0,26.182,0 C385.115,531.271,381.097,289.317,381.097,289.317z\"}}),_c('path',{staticClass:\"cn-tower\",attrs:{\"id\":\"lower_deck\",\"d\":\"M396.017,261.503h-49.813v-7.287c0-1.105,0.895-2,2-2h45.813c1.105,0,2,0.895,2,2 V261.503z\"}}),_c('path',{staticClass:\"cn-tower\",attrs:{\"id\":\"main_deck\",\"d\":\"M398.661,282.61h-55.1c-1.105,0-2-0.895-2-2v-17.107c0-1.105,0.895-2,2-2h55.1 c1.105,0,2,0.895,2,2v17.107C400.661,281.715,399.765,282.61,398.661,282.61z\"}}),_c('rect',{staticClass:\"cn-tower\",attrs:{\"id\":\"inner_deck\",\"x\":\"341.561\",\"y\":\"267\",\"width\":\"59.1\",\"height\":\"10.012\"}}),_c('path',{staticClass:\"cn-tower\",attrs:{\"id\":\"upper_deck\",\"d\":\"M393.595,289.365h-44.968c-1.105,0-2-0.895-2-2v-4.754h48.968v4.754 C395.595,288.469,394.7,289.365,393.595,289.365z\"}}),_c('rect',{staticClass:\"cn-tower\",attrs:{\"id\":\"needle_base_1\",\"x\":\"364.779\",\"y\":\"242.929\",\"width\":\"12.664\",\"height\":\"9.287\"}}),_c('rect',{staticClass:\"cn-tower\",attrs:{\"id\":\"needle_base_2\",\"x\":\"366.89\",\"y\":\"208.314\",\"width\":\"8.443\",\"height\":\"34.616\"}}),_c('line',{attrs:{\"id\":\"needle\",\"x1\":\"371.111\",\"y1\":\"96.868\",\"x2\":\"371.111\",\"y2\":\"207.469\"}})]),_c('g',{attrs:{\"id\":\"CityHallL\"}},[_c('polygon',{staticClass:\"CityHallBody BasicFill\",attrs:{\"id\":\"city_hall_body_left\",\"points\":\"589.879,608.082 651.321,608.082 651.321,464.11 589.879,421.451 \\t\\t\"}}),_c('line',{staticClass:\"BasicStroke\",attrs:{\"x1\":\"639.801\",\"y1\":\"477.657\",\"x2\":\"639.801\",\"y2\":\"608.082\"}}),_c('line',{staticClass:\"BasicStroke\",attrs:{\"x1\":\"630.008\",\"y1\":\"470.451\",\"x2\":\"630.008\",\"y2\":\"608.082\"}}),_c('line',{staticClass:\"BasicStroke\",attrs:{\"x1\":\"620.216\",\"y1\":\"463.245\",\"x2\":\"620.216\",\"y2\":\"608.082\"}}),_c('line',{staticClass:\"BasicStroke\",attrs:{\"x1\":\"610.424\",\"y1\":\"455.319\",\"x2\":\"610.424\",\"y2\":\"608.082\"}}),_c('line',{staticClass:\"BasicStroke\",attrs:{\"x1\":\"600.631\",\"y1\":\"446.672\",\"x2\":\"600.631\",\"y2\":\"608.082\"}})]),_c('g',{attrs:{\"id\":\"CityHallR\"}},[_c('polygon',{staticClass:\"CityHallBody BasicFill\",attrs:{\"id\":\"city_hall_body_right\",\"points\":\"708.923,608.082 647.481,608.082 647.481,487.296 708.923,451.508\"}}),_c('line',{staticClass:\"BasicStroke\",attrs:{\"x1\":\"659.001\",\"y1\":\"498.661\",\"x2\":\"659.001\",\"y2\":\"608.082\"}}),_c('line',{staticClass:\"BasicStroke\",attrs:{\"x1\":\"668.794\",\"y1\":\"492.616\",\"x2\":\"668.794\",\"y2\":\"608.082\"}}),_c('line',{staticClass:\"BasicStroke\",attrs:{\"x1\":\"678.586\",\"y1\":\"486.571\",\"x2\":\"678.586\",\"y2\":\"608.082\"}}),_c('line',{staticClass:\"BasicStroke\",attrs:{\"x1\":\"688.378\",\"y1\":\"479.921\",\"x2\":\"688.378\",\"y2\":\"608.082\"}}),_c('line',{staticClass:\"BasicStroke\",attrs:{\"x1\":\"698.171\",\"y1\":\"472.667\",\"x2\":\"698.171\",\"y2\":\"608.082\"}})]),_c('g',{staticClass:\"bg-building\",attrs:{\"id\":\"Building\"}},[_c('rect',{staticClass:\"BasicFill\",attrs:{\"x\":\"400.76\",\"y\":\"496.636\",\"width\":\"48.124\",\"height\":\"111.445\"}}),_c('rect',{staticClass:\"BasicFill\",attrs:{\"x\":\"400.76\",\"y\":\"496.636\",\"width\":\"48.124\",\"height\":\"12.664\"}}),_c('line',{staticClass:\"BasicStroke\",attrs:{\"x1\":\"408.358\",\"y1\":\"520.276\",\"x2\":\"441.285\",\"y2\":\"520.276\"}}),_c('line',{staticClass:\"BasicStroke\",attrs:{\"x1\":\"408.358\",\"y1\":\"528.438\",\"x2\":\"441.285\",\"y2\":\"528.438\"}}),_c('line',{staticClass:\"BasicStroke\",attrs:{\"x1\":\"408.358\",\"y1\":\"536.599\",\"x2\":\"441.285\",\"y2\":\"536.599\"}}),_c('line',{staticClass:\"BasicStroke\",attrs:{\"x1\":\"408.358\",\"y1\":\"544.76\",\"x2\":\"441.285\",\"y2\":\"544.76\"}}),_c('line',{staticClass:\"BasicStroke\",attrs:{\"x1\":\"408.358\",\"y1\":\"552.922\",\"x2\":\"441.285\",\"y2\":\"552.922\"}}),_c('line',{staticClass:\"BasicStroke\",attrs:{\"x1\":\"408.358\",\"y1\":\"561.083\",\"x2\":\"441.285\",\"y2\":\"561.083\"}}),_c('line',{staticClass:\"BasicStroke\",attrs:{\"x1\":\"408.358\",\"y1\":\"569.245\",\"x2\":\"441.285\",\"y2\":\"569.245\"}}),_c('line',{staticClass:\"BasicStroke\",attrs:{\"x1\":\"408.358\",\"y1\":\"577.406\",\"x2\":\"441.285\",\"y2\":\"577.406\"}}),_c('line',{staticClass:\"BasicStroke\",attrs:{\"x1\":\"408.358\",\"y1\":\"585.567\",\"x2\":\"441.285\",\"y2\":\"585.567\"}}),_c('line',{staticClass:\"BasicStroke\",attrs:{\"x1\":\"408.358\",\"y1\":\"593.729\",\"x2\":\"441.285\",\"y2\":\"593.729\"}})]),_c('g',{attrs:{\"id\":\"ROM\"}},[_c('polygon',{staticClass:\"BasicFill\",attrs:{\"points\":\"465.386,530.177 439.597,574.234 466.132,608.082 515.143,608.082 531.47,565.637\"}}),_c('polygon',{staticClass:\"BasicFill\",attrs:{\"points\":\"560.483,519.432 525.56,554.355 528.246,608.082 587.137,608.082 623.881,565.637\"}}),_c('polygon',{staticClass:\"BasicFill\",attrs:{\"points\":\"552.424,560.265 496.01,536.625 504.069,608.082 534.156,608.082\"}}),_c('polygon',{staticClass:\"BasicFill\",attrs:{\"points\":\"457.046,544.424 492.249,577.994 487.951,595.724 452.633,551.963\"}}),_c('polygon',{staticClass:\"BasicFill\",attrs:{\"points\":\"554.579,608.082 570.691,569.398 581.436,572.622 566.222,608.082\"}}),_c('polygon',{staticClass:\"BasicFill\",attrs:{\"points\":\"516.964,587.128 516.964,608.082 525.56,608.082 531.47,577.994\"}}),_c('polygon',{staticClass:\"BasicFill\",attrs:{\"points\":\"541.173,538.742 564.244,554.892 551.81,561.871 529.017,550.456\"}})]),_c('g',{attrs:{\"id\":\"Waves\"}},[_c('path',{staticClass:\"BasicStroke\",attrs:{\"id\":\"wave_4\",\"d\":\"M648.979,664c5.217,0,9.695-1.813,11.628-4.402c1.933,2.588,6.411,4.402,11.628,4.402 c5.217,0,9.695-1.813,11.628-4.402c1.933,2.588,6.411,4.402,11.628,4.402c5.217,0,9.695-1.813,11.628-4.402 c1.933,2.588,6.411,4.402,11.628,4.402c5.217,0,9.695-1.813,11.628-4.402c1.933,2.588,6.411,4.402,11.628,4.402 c5.217,0,9.695-1.813,11.628-4.402c1.933,2.588,6.411,4.402,11.628,4.402c5.217,0,9.695-1.813,11.628-4.402 c1.933,2.588,6.411,4.402,11.628,4.402c5.217,0,9.695-1.813,11.628-4.402c1.933,2.588,6.411,4.402,11.628,4.402 c5.217,0,9.695-1.813,11.628-4.402c1.933,2.588,6.411,4.402,11.628,4.402c5.217,0,9.695-1.813,11.628-4.402 c1.933,2.588,6.411,4.402,11.628,4.402c5.217,0,9.695-1.813,11.628-4.402c1.933,2.588,6.411,4.402,11.628,4.402 c5.217,0,9.695-1.813,11.628-4.402c1.933,2.588,6.411,4.402,11.628,4.402\"}}),_c('path',{staticClass:\"BasicStroke\",attrs:{\"id\":\"wave_3\",\"d\":\"M502.074,639.938c5.217,0,9.695-1.813,11.628-4.402c1.933,2.588,6.411,4.402,11.628,4.402 c5.217,0,9.695-1.813,11.628-4.402c1.933,2.588,6.411,4.402,11.628,4.402c5.217,0,9.695-1.813,11.628-4.402\\n c1.933,2.588,6.411,4.402,11.628,4.402c5.217,0,9.695-1.813,11.628-4.402c1.933,2.588,6.411,4.402,11.628,4.402 c5.217,0,9.695-1.813,11.628-4.402c1.933,2.588,6.411,4.402,11.628,4.402c5.217,0,9.695-1.813,11.628-4.402\\n c1.933,2.588,6.411,4.402,11.628,4.402c5.217,0,9.695-1.813,11.628-4.402c1.933,2.588,6.411,4.402,11.628,4.402 c5.217,0,9.695-1.813,11.628-4.402c1.933,2.588,6.411,4.402,11.628,4.402c5.217,0,9.695-1.813,11.628-4.402\\n c1.933,2.588,6.411,4.402,11.628,4.402c5.217,0,9.695-1.813,11.628-4.402c1.933,2.588,6.411,4.402,11.628,4.402 c5.217,0,9.695-1.813,11.628-4.402c1.933,2.588,6.411,4.402,11.628,4.402\"}}),_c('path',{staticClass:\"BasicStroke\",attrs:{\"id\":\"wave_2\",\"d\":\"M298.601,664c5.217,0,9.695-1.813,11.628-4.402c1.933,2.588,6.411,4.402,11.628,4.402 c5.217,0,9.695-1.813,11.628-4.402c1.933,2.588,6.411,4.402,11.628,4.402c5.217,0,9.695-1.813,11.628-4.402 c1.933,2.588,6.411,4.402,11.628,4.402s9.695-1.813,11.628-4.402c1.933,2.588,6.411,4.402,11.628,4.402 c5.217,0,9.695-1.813,11.628-4.402c1.933,2.588,6.411,4.402,11.628,4.402c5.217,0,9.695-1.813,11.628-4.402\\n c1.933,2.588,6.411,4.402,11.628,4.402c5.217,0,9.695-1.813,11.628-4.402c1.933,2.588,6.411,4.402,11.628,4.402 s9.695-1.813,11.628-4.402c1.933,2.588,6.411,4.402,11.628,4.402c5.217,0,9.695-1.813,11.628-4.402\\n c1.933,2.588,6.411,4.402,11.628,4.402c5.217,0,9.695-1.813,11.628-4.402c1.933,2.588,6.411,4.402,11.628,4.402 s9.695-1.813,11.628-4.402c1.933,2.588,6.411,4.402,11.628,4.402\"}}),_c('path',{staticClass:\"BasicStroke\",attrs:{\"id\":\"wave_1\",\"d\":\"M139.032,639.938c5.217,0,9.695-1.813,11.628-4.402c1.933,2.588,6.411,4.402,11.628,4.402 c5.217,0,9.695-1.813,11.628-4.402c1.933,2.588,6.411,4.402,11.628,4.402c5.217,0,9.695-1.813,11.628-4.402\\n c1.933,2.588,6.411,4.402,11.628,4.402c5.217,0,9.695-1.813,11.628-4.402c1.933,2.588,6.411,4.402,11.628,4.402 c5.217,0,9.695-1.813,11.628-4.402c1.933,2.588,6.411,4.402,11.628,4.402c5.217,0,9.695-1.813,11.628-4.402\\n c1.933,2.588,6.411,4.402,11.628,4.402c5.217,0,9.695-1.813,11.628-4.402c1.933,2.588,6.411,4.402,11.628,4.402 c5.217,0,9.695-1.813,11.628-4.402c1.933,2.588,6.411,4.402,11.628,4.402s9.695-1.813,11.628-4.402\\n c1.933,2.588,6.411,4.402,11.628,4.402c5.217,0,9.695-1.813,11.628-4.402c1.933,2.588,6.411,4.402,11.628,4.402 c5.217,0,9.695-1.813,11.628-4.402c1.933,2.588,6.411,4.402,11.628,4.402\"}})]),_c('g',{attrs:{\"id\":\"Waves-I\"}},[_c('path',{staticClass:\"BasicStroke\",attrs:{\"id\":\"wave_i_4\",\"d\":\"M649,659.6c5.22,0,9.69,1.81,11.63,4.4,1.93-2.59,6.41-4.4,11.63-4.4s9.69,1.81,11.62,4.4c1.94-2.59,6.41-4.4,11.63-4.4s9.7,1.81,11.63,4.4c1.93-2.59,6.41-4.4,11.63-4.4s9.69,1.81,11.63,4.4c1.93-2.59,6.41-4.4,11.62-4.4s9.7,1.81,11.63,4.4c1.93-2.59,6.41-4.4,11.63-4.4s9.69,1.81,11.63,4.4c1.93-2.59,6.41-4.4,11.63-4.4s9.69,1.81,11.62,4.4c1.94-2.59,6.42-4.4,11.63-4.4s9.7,1.81,11.63,4.4c1.93-2.59,6.41-4.4,11.63-4.4s9.69,1.81,11.63,4.4c1.93-2.59,6.41-4.4,11.62-4.4s9.7,1.81,11.63,4.4c1.94-2.59,6.41-4.4,11.63-4.4s9.7,1.81,11.63,4.4c1.93-2.59,6.41-4.4,11.63-4.4\"}}),_c('path',{staticClass:\"BasicStroke\",attrs:{\"id\":\"wave_i_3\",\"d\":\"M502.07,635.54c5.22,0,9.7,1.81,11.63,4.4,1.93-2.59,6.41-4.4,11.63-4.4s9.69,1.81,11.63,4.4c1.93-2.59,6.41-4.4,11.63-4.4s9.69,1.81,11.62,4.4c1.94-2.59,6.42-4.4,11.63-4.4s9.7,1.81,11.63,4.4c1.93-2.59,6.41-4.4,11.63-4.4s9.69,1.81,11.63,4.4c1.93-2.59,6.41-4.4,11.62-4.4s9.7,1.81,11.63,4.4c1.94-2.59,6.41-4.4,11.63-4.4s9.7,1.81,11.63,4.4c1.93-2.59,6.41-4.4,11.63-4.4s9.69,1.81,11.62,4.4c1.94-2.59,6.42-4.4,11.63-4.4s9.7,1.81,11.63,4.4c1.93-2.59,6.41-4.4,11.63-4.4s9.69,1.81,11.63,4.4c1.93-2.59,6.41-4.4,11.63-4.4s9.69,1.81,11.62,4.4c1.94-2.59,6.41-4.4,11.63-4.4\"}}),_c('path',{staticClass:\"BasicStroke\",attrs:{\"id\":\"wave_i_2\",\"d\":\"M298.6,659.6c5.22,0,9.7,1.81,11.63,4.4,1.93-2.59,6.41-4.4,11.63-4.4s9.69,1.81,11.63,4.4c1.93-2.59,6.41-4.4,11.62-4.4s9.7,1.81,11.63,4.4c1.93-2.59,6.41-4.4,11.63-4.4s9.69,1.81,11.63,4.4c1.93-2.59,6.41-4.4,11.63-4.4s9.69,1.81,11.62,4.4c1.94-2.59,6.42-4.4,11.63-4.4s9.7,1.81,11.63,4.4c1.93-2.59,6.41-4.4,11.63-4.4s9.69,1.81,11.63,4.4c1.93-2.59,6.41-4.4,11.62-4.4s9.7,1.81,11.63,4.4c1.94-2.59,6.41-4.4,11.63-4.4s9.7,1.81,11.63,4.4c1.93-2.59,6.41-4.4,11.63-4.4s9.69,1.81,11.62,4.4c1.94-2.59,6.42-4.4,11.63-4.4s9.7,1.81,11.63,4.4c1.93-2.59,6.41-4.4,11.63-4.4\"}}),_c('path',{staticClass:\"BasicStroke\",attrs:{\"id\":\"wave_i_1\",\"d\":\"M139,635.54c5.22,0,9.7,1.81,11.63,4.4,1.93-2.59,6.41-4.4,11.63-4.4s9.69,1.81,11.63,4.4c1.93-2.59,6.41-4.4,11.62-4.4s9.7,1.81,11.63,4.4c1.94-2.59,6.41-4.4,11.63-4.4s9.7,1.81,11.63,4.4c1.93-2.59,6.41-4.4,11.63-4.4s9.69,1.81,11.62,4.4c1.94-2.59,6.42-4.4,11.63-4.4s9.7,1.81,11.63,4.4c1.93-2.59,6.41-4.4,11.63-4.4s9.69,1.81,11.63,4.4c1.93-2.59,6.41-4.4,11.62-4.4s9.7,1.81,11.63,4.4c1.94-2.59,6.41-4.4,11.63-4.4s9.7,1.81,11.63,4.4c1.93-2.59,6.41-4.4,11.63-4.4s9.69,1.81,11.63,4.4c1.93-2.59,6.41-4.4,11.62-4.4s9.7,1.81,11.63,4.4c1.93-2.59,6.41-4.4,11.63-4.4\"}})]),_c('g',{attrs:{\"id\":\"RogersCentre\"}},[_c('rect',{staticClass:\"BasicFill\",attrs:{\"id\":\"building\",\"x\":\"163.447\",\"y\":\"584.442\",\"width\":\"224.579\",\"height\":\"23.64\"}}),_c('rect',{staticClass:\"BasicFill\",attrs:{\"id\":\"building_inner\",\"x\":\"201.018\",\"y\":\"596.262\",\"width\":\"149.438\",\"height\":\"11.82\"}}),_c('path',{staticClass:\"BasicFill\",attrs:{\"id\":\"dome_big\",\"d\":\"M396.173,584.442c1.208,0,2.037-1.237,1.558-2.346 c-17.883-41.467-55.935-76.188-119.745-77.016c-71.333-0.926-117.273,36.203-124.355,77.338c-0.182,1.055,0.612,2.024,1.683,2.024 H396.173z\"}}),_c('path',{staticClass:\"BasicFill\",attrs:{\"id\":\"dome_small\",\"d\":\"M364.955,584.442c0.895,0,1.509-0.868,1.154-1.647 c-13.248-29.109-41.436-53.482-88.706-54.064c-52.842-0.65-86.875,25.414-92.121,54.29c-0.135,0.741,0.453,1.421,1.247,1.421 H364.955z\"}})]),_c('g',{attrs:{\"id\":\"Streetcar\"}},[_c('path',{staticClass:\"streetcar_white\",attrs:{\"d\":\"M760.844,606.082h-82.329c-3.13,0-5.21-2.945-3.908-5.533l15.06-29.961c1.099-2.186,3.499-3.588,6.142-3.588 h65.035V606.082z\"}}),_c('rect',{staticClass:\"streetcar_window\",attrs:{\"x\":\"760.844\",\"y\":\"567\",\"width\":\"6.753\",\"height\":\"39.082\"}}),_c('rect',{staticClass:\"streetcar_window\",attrs:{\"x\":\"830.831\",\"y\":\"567\",\"width\":\"6.753\",\"height\":\"39.082\"}}),_c('polygon',{staticClass:\"streetcar_window\",attrs:{\"points\":\"695.462,580 760.537,580 760.537,592.845 688.709,592.845\"}}),_c('rect',{staticClass:\"streetcar_white\",attrs:{\"x\":\"767.597\",\"y\":\"567\",\"width\":\"63.234\",\"height\":\"39.082\"}}),_c('rect',{staticClass:\"streetcar_window\",attrs:{\"x\":\"767.877\",\"y\":\"580\",\"width\":\"62.674\",\"height\":\"12.845\"}}),_c('rect',{staticClass:\"streetcar_red\",attrs:{\"x\":\"767.597\",\"y\":\"567\",\"width\":\"63.234\",\"height\":\"7\"}}),_c('path',{staticClass:\"streetcar_white\",attrs:{\"d\":\"M837.584,606.082h82.329c3.13,0,5.21-2.945,3.908-5.533l-15.06-29.961c-1.099-2.186-3.499-3.588-6.142-3.588 h-65.035V606.082z\"}}),_c('polygon',{staticClass:\"streetcar_window\",attrs:{\"points\":\"902.967,580 837.891,580 837.891,592.845 909.72,592.845\"}}),_c('path',{staticClass:\"streetcar_red\",attrs:{\"d\":\"M688.402,574h72.443v-7h-63.316C690.223,567,689.63,571.455,688.402,574L688.402,574z\"}}),_c('path',{staticClass:\"streetcar_red\",attrs:{\"d\":\"M676.11,597.707h84.734v8.375h-82.301c-3.122,0-5.187-2.97-3.867-5.561L676.11,597.707z\"}}),_c('rect',{staticClass:\"streetcar_red\",attrs:{\"x\":\"767.597\",\"y\":\"597.707\",\"width\":\"63.234\",\"height\":\"8.375\"}}),_c('path',{staticClass:\"streetcar_red\",attrs:{\"d\":\"M910.027,574h-72.443v-7H900.9C908.205,567,908.799,571.455,910.027,574L910.027,574z\"}}),_c('path',{staticClass:\"streetcar_red\",attrs:{\"d\":\"M922.318,597.707h-84.734v8.375h82.301c3.122,0,5.187-2.97,3.867-5.561L922.318,597.707z\"}})]),_c('g',{attrs:{\"id\":\"Text\"}},[_c('g',{attrs:{\"id\":\"Toronto\"}},[_c('path',{staticClass:\"BasicStroke\",attrs:{\"id\":\"Toronto_1\",\"d\":\"M537.999,296.089c0,0-3.005,7.339,14.777,5.323c18.585-2.107,193.846-50.147,190.289-31.092\"}}),_c('path',{staticClass:\"BasicStroke\",attrs:{\"id\":\"Toronto_2\",\"d\":\"M640.259,281.632c0,0-26.736,58.43-19.106,60.124c6.099,1.354,40.771-33.128,39.075-24.789 c-0.387,1.9-12.663,17.492-6.069,22.77c5.041,4.034,16.052-11.731,14.623-20.666c-0.693-4.334-11.766-6.13-11.316-1.122 c0.367,4.09,24.42-3.746,28.941-4.316c4.629-0.584-4.687,20.731-5.229,26.653c-0.542,5.922,5.435-15.776,10.048-21.883 c4.922-6.516,10.217-8.37,10.713-4.343c0.242,1.966,0.323,5.052,2.212,4.184c1.806-0.83,12.113-2.826,11.308-2.465 c-2.317,1.039-11.825,18.822-7.211,23.264c4.179,4.022,15.338-8.29,15.666-18.19c0.328-9.901-7.744-9.668-14.588-2.19 c-3.579,3.911,19.444-3.713,23.47-5.607c6.132-2.884,10.86-1.147,11.447,1.893c0.348,1.805-5.815,17.098-8.9,21.955 c-0.592,0.932,0.312,1.907,0.819,0.913c7.14-14.001,21.339-26.733,21.565-22.422c0.315,6.001-4.005,23.4,1.232,22.885 s29.969-28.763,39.041-41.127c8.896-12.124,12.505-21.69,13.815-26.546c1.31-4.856-4.945-6.653-11.854,2.668 c-6.909,9.32-23.645,48.703-23.195,62.678s21.745-9.066,21.745-9.066s14.223-13.627,10.702-12.954 c-5.469,1.045-11.813,24.097-5.105,27.401c4.966,2.445,15.397-7.547,17.339-19.313c0.645-3.908-2.437-11.171-6.907-9.59 c-4.47,1.581-3.026,4.699-3.026,4.699s3.16,3.275,17.247,0.584s45.286-12.772,50.929-8.274\"}}),_c('path',{staticClass:\"BasicStroke\",attrs:{\"id\":\"Toronto_3\",\"d\":\"M747.76,295.697c0,0,10.787,7.599,32.36,5.066c21.573-2.533,65.618-13.509,64.719-9.287\"}})]),_c('path',{staticClass:\"BasicStroke\",attrs:{\"id\":\"Hello\",\"d\":\"M516.426,212.404c0,0,14.83,20.772,34.224,12.017c19.393-8.755,61.267-42.654,68.067-55.964 c7.986-15.631,2.438-24.149-17.492-5.493c-20.724,19.399-33.912,85.835-33.912,85.835s3.116-8.819,5.603-13.906 c3.022-6.18,13.099-20.085,15.381-7.726c2.281,12.36,3.949,25.473,15.949,16.857c12-8.616,20.094-20.566,21.167-23.552 c1.48-4.12-2.893-10.3-9.738-4.635c-6.844,5.666-20.111,37.179,2.852,29.871c22.963-7.308,35.312-26.05,38.407-30.557 c5.894-8.583,15.78-33.991-1.331-19.57c-14.523,12.239-21.105,41.372-18.253,48.067c2.852,6.696,17.677,10.273,35.647-8.511 c17.969-18.784,25.385-42.99,16.259-40.415c-9.126,2.575-38.669,44.359-19.584,52.36c10.647,4.463,25.67-9.705,29.472-15.324 c3.801-5.619-0.905-5.104-4.898,3.136c-3.938,8.127,2.852,16.351,11.693,7.339c8.948-9.122,1.907-17.53-3.28-15.064 c-2.691,1.279-18.552,11.347-3.993,7.726c13.975-3.476,56.595-11.565,65.738-12.747c9.143-1.182,27.236-1.931,20.106,5.536\"}})]),_c('line',{staticClass:\"BasicStroke\",attrs:{\"id\":\"Baseline\",\"x1\":\"87.953\",\"y1\":\"608.082\",\"x2\":\"952.499\",\"y2\":\"608.082\"}})]):_vm._e()])],1),_c('div',[_c('h1',[_vm._v(_vm._s(meetClementSingle.headline))]),_c('span',[_vm._v(\" \"+_vm._s(meetClementSingle.par1)+\" \")]),_c('span',[_vm._v(\" \"+_vm._s(meetClementSingle.par2)+\" \")]),_c('div',{staticClass:\"goToClementLabs\",on:{\"click\":function($event){return _vm.slideToNext()}}},[_c('h3',[_vm._v(_vm._s(meetClementSingle.button))]),_c('img',{attrs:{\"src\":\"https://ik.imagekit.io/nnol5se8mol/tr:h-50,w-50/downbtn_LWLlPOQ9nq.png\"}})])])]),_c('div',{staticClass:\"part2\"},[_c('div',[_c('h1',[_vm._v(_vm._s(meetClementSingle.headline))]),_c('span',[_vm._v(\" \"+_vm._s(meetClementSingle.par1)+\" \")]),_c('span',[_vm._v(\" \"+_vm._s(meetClementSingle.par2)+\" \")]),_c('div',{staticClass:\"goToClementLabs\",on:{\"click\":function($event){index == 0 ? _vm.backToTop() : _vm.slideToNext()}}},[_c('h3',[_vm._v(_vm._s(meetClementSingle.button))]),_c('img',{attrs:{\"src\":\"https://ik.imagekit.io/nnol5se8mol/tr:h-50,w-50/downbtn_LWLlPOQ9nq.png\"}})])])])])}),0)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","/*!\n * paths 3.5.1\n * https://greensock.com\n *\n * Copyright 2008-2020, GreenSock. All rights reserved.\n * Subject to the terms at https://greensock.com/standard-license or for\n * Club GreenSock members, the agreement issued with that membership.\n * @author: Jack Doyle, jack@greensock.com\n*/\n\n/* eslint-disable */\nvar _svgPathExp = /[achlmqstvz]|(-?\\d*\\.?\\d*(?:e[\\-+]?\\d+)?)[0-9]/ig,\n _numbersExp = /(?:(-)?\\d*\\.?\\d*(?:e[\\-+]?\\d+)?)[0-9]/ig,\n _scientific = /[\\+\\-]?\\d*\\.?\\d+e[\\+\\-]?\\d+/ig,\n _selectorExp = /(^[#\\.][a-z]|[a-y][a-z])/i,\n _DEG2RAD = Math.PI / 180,\n _RAD2DEG = 180 / Math.PI,\n _sin = Math.sin,\n _cos = Math.cos,\n _abs = Math.abs,\n _sqrt = Math.sqrt,\n _atan2 = Math.atan2,\n _largeNum = 1e8,\n _isString = function _isString(value) {\n return typeof value === \"string\";\n},\n _isNumber = function _isNumber(value) {\n return typeof value === \"number\";\n},\n _isUndefined = function _isUndefined(value) {\n return typeof value === \"undefined\";\n},\n _temp = {},\n _temp2 = {},\n _roundingNum = 1e5,\n _wrapProgress = function _wrapProgress(progress) {\n return Math.round((progress + _largeNum) % 1 * _roundingNum) / _roundingNum || (progress < 0 ? 0 : 1);\n},\n //if progress lands on 1, the % will make it 0 which is why we || 1, but not if it's negative because it makes more sense for motion to end at 0 in that case.\n_round = function _round(value) {\n return Math.round(value * _roundingNum) / _roundingNum || 0;\n},\n _splitSegment = function _splitSegment(rawPath, segIndex, i, t) {\n var segment = rawPath[segIndex],\n shift = t === 1 ? 6 : subdivideSegment(segment, i, t);\n\n if (shift && shift + i + 2 < segment.length) {\n rawPath.splice(segIndex, 0, segment.slice(0, i + shift + 2));\n segment.splice(0, i + shift);\n return 1;\n }\n},\n _reverseRawPath = function _reverseRawPath(rawPath, skipOuter) {\n var i = rawPath.length;\n\n if (!skipOuter) {\n rawPath.reverse();\n }\n\n while (i--) {\n if (!rawPath[i].reversed) {\n reverseSegment(rawPath[i]);\n }\n }\n},\n _copyMetaData = function _copyMetaData(source, copy) {\n copy.totalLength = source.totalLength;\n\n if (source.samples) {\n //segment\n copy.samples = source.samples.slice(0);\n copy.lookup = source.lookup.slice(0);\n copy.minLength = source.minLength;\n copy.resolution = source.resolution;\n } else {\n //rawPath\n copy.totalPoints = source.totalPoints;\n }\n\n return copy;\n},\n //pushes a new segment into a rawPath, but if its starting values match the ending values of the last segment, it'll merge it into that same segment (to reduce the number of segments)\n_appendOrMerge = function _appendOrMerge(rawPath, segment) {\n var index = rawPath.length,\n prevSeg = rawPath[index - 1] || [],\n l = prevSeg.length;\n\n if (segment[0] === prevSeg[l - 2] && segment[1] === prevSeg[l - 1]) {\n segment = prevSeg.concat(segment.slice(2));\n index--;\n }\n\n rawPath[index] = segment;\n},\n _bestDistance;\n/* TERMINOLOGY\n - RawPath - an array of arrays, one for each Segment. A single RawPath could have multiple \"M\" commands, defining Segments (paths aren't always connected).\n - Segment - an array containing a sequence of Cubic Bezier coordinates in alternating x, y, x, y format. Starting anchor, then control point 1, control point 2, and ending anchor, then the next control point 1, control point 2, anchor, etc. Uses less memory than an array with a bunch of {x, y} points.\n - Bezier - a single cubic Bezier with a starting anchor, two control points, and an ending anchor.\n - the variable \"t\" is typically the position along an individual Bezier path (time) and it's NOT linear, meaning it could accelerate/decelerate based on the control points whereas the \"p\" or \"progress\" value is linearly mapped to the whole path, so it shouldn't really accelerate/decelerate based on control points. So a progress of 0.2 would be almost exactly 20% along the path. \"t\" is ONLY in an individual Bezier piece.\n */\n//accepts basic selector text, a path instance, a RawPath instance, or a Segment and returns a RawPath (makes it easy to homogenize things). If an element or selector text is passed in, it'll also cache the value so that if it's queried again, it'll just take the path data from there instead of parsing it all over again (as long as the path data itself hasn't changed - it'll check).\n\n\nexport function getRawPath(value) {\n value = _isString(value) && _selectorExp.test(value) ? document.querySelector(value) || value : value;\n var e = value.getAttribute ? value : 0,\n rawPath;\n\n if (e && (value = value.getAttribute(\"d\"))) {\n //implements caching\n if (!e._gsPath) {\n e._gsPath = {};\n }\n\n rawPath = e._gsPath[value];\n return rawPath && !rawPath._dirty ? rawPath : e._gsPath[value] = stringToRawPath(value);\n }\n\n return !value ? console.warn(\"Expecting a element or an SVG path data string\") : _isString(value) ? stringToRawPath(value) : _isNumber(value[0]) ? [value] : value;\n} //copies a RawPath WITHOUT the length meta data (for speed)\n\nexport function copyRawPath(rawPath) {\n var a = [],\n i = 0;\n\n for (; i < rawPath.length; i++) {\n a[i] = _copyMetaData(rawPath[i], rawPath[i].slice(0));\n }\n\n return _copyMetaData(rawPath, a);\n}\nexport function reverseSegment(segment) {\n var i = 0,\n y;\n segment.reverse(); //this will invert the order y, x, y, x so we must flip it back.\n\n for (; i < segment.length; i += 2) {\n y = segment[i];\n segment[i] = segment[i + 1];\n segment[i + 1] = y;\n }\n\n segment.reversed = !segment.reversed;\n}\n\nvar _createPath = function _createPath(e, ignore) {\n var path = document.createElementNS(\"http://www.w3.org/2000/svg\", \"path\"),\n attr = [].slice.call(e.attributes),\n i = attr.length,\n name;\n ignore = \",\" + ignore + \",\";\n\n while (--i > -1) {\n name = attr[i].nodeName.toLowerCase(); //in Microsoft Edge, if you don't set the attribute with a lowercase name, it doesn't render correctly! Super weird.\n\n if (ignore.indexOf(\",\" + name + \",\") < 0) {\n path.setAttributeNS(null, name, attr[i].nodeValue);\n }\n }\n\n return path;\n},\n _typeAttrs = {\n rect: \"rx,ry,x,y,width,height\",\n circle: \"r,cx,cy\",\n ellipse: \"rx,ry,cx,cy\",\n line: \"x1,x2,y1,y2\"\n},\n _attrToObj = function _attrToObj(e, attrs) {\n var props = attrs ? attrs.split(\",\") : [],\n obj = {},\n i = props.length;\n\n while (--i > -1) {\n obj[props[i]] = +e.getAttribute(props[i]) || 0;\n }\n\n return obj;\n}; //converts an SVG shape like , , , , , etc. to a , swapping it in and copying the attributes to match.\n\n\nexport function convertToPath(element, swap) {\n var type = element.tagName.toLowerCase(),\n circ = 0.552284749831,\n data,\n x,\n y,\n r,\n ry,\n path,\n rcirc,\n rycirc,\n points,\n w,\n h,\n x2,\n x3,\n x4,\n x5,\n x6,\n y2,\n y3,\n y4,\n y5,\n y6,\n attr;\n\n if (type === \"path\" || !element.getBBox) {\n return element;\n }\n\n path = _createPath(element, \"x,y,width,height,cx,cy,rx,ry,r,x1,x2,y1,y2,points\");\n attr = _attrToObj(element, _typeAttrs[type]);\n\n if (type === \"rect\") {\n r = attr.rx;\n ry = attr.ry || r;\n x = attr.x;\n y = attr.y;\n w = attr.width - r * 2;\n h = attr.height - ry * 2;\n\n if (r || ry) {\n //if there are rounded corners, render cubic beziers\n x2 = x + r * (1 - circ);\n x3 = x + r;\n x4 = x3 + w;\n x5 = x4 + r * circ;\n x6 = x4 + r;\n y2 = y + ry * (1 - circ);\n y3 = y + ry;\n y4 = y3 + h;\n y5 = y4 + ry * circ;\n y6 = y4 + ry;\n data = \"M\" + x6 + \",\" + y3 + \" V\" + y4 + \" C\" + [x6, y5, x5, y6, x4, y6, x4 - (x4 - x3) / 3, y6, x3 + (x4 - x3) / 3, y6, x3, y6, x2, y6, x, y5, x, y4, x, y4 - (y4 - y3) / 3, x, y3 + (y4 - y3) / 3, x, y3, x, y2, x2, y, x3, y, x3 + (x4 - x3) / 3, y, x4 - (x4 - x3) / 3, y, x4, y, x5, y, x6, y2, x6, y3].join(\",\") + \"z\";\n } else {\n data = \"M\" + (x + w) + \",\" + y + \" v\" + h + \" h\" + -w + \" v\" + -h + \" h\" + w + \"z\";\n }\n } else if (type === \"circle\" || type === \"ellipse\") {\n if (type === \"circle\") {\n r = ry = attr.r;\n rycirc = r * circ;\n } else {\n r = attr.rx;\n ry = attr.ry;\n rycirc = ry * circ;\n }\n\n x = attr.cx;\n y = attr.cy;\n rcirc = r * circ;\n data = \"M\" + (x + r) + \",\" + y + \" C\" + [x + r, y + rycirc, x + rcirc, y + ry, x, y + ry, x - rcirc, y + ry, x - r, y + rycirc, x - r, y, x - r, y - rycirc, x - rcirc, y - ry, x, y - ry, x + rcirc, y - ry, x + r, y - rycirc, x + r, y].join(\",\") + \"z\";\n } else if (type === \"line\") {\n data = \"M\" + attr.x1 + \",\" + attr.y1 + \" L\" + attr.x2 + \",\" + attr.y2; //previously, we just converted to \"Mx,y Lx,y\" but Safari has bugs that cause that not to render properly when using a stroke-dasharray that's not fully visible! Using a cubic bezier fixes that issue.\n } else if (type === \"polyline\" || type === \"polygon\") {\n points = (element.getAttribute(\"points\") + \"\").match(_numbersExp) || [];\n x = points.shift();\n y = points.shift();\n data = \"M\" + x + \",\" + y + \" L\" + points.join(\",\");\n\n if (type === \"polygon\") {\n data += \",\" + x + \",\" + y + \"z\";\n }\n }\n\n path.setAttribute(\"d\", rawPathToString(path._gsRawPath = stringToRawPath(data)));\n\n if (swap && element.parentNode) {\n element.parentNode.insertBefore(path, element);\n element.parentNode.removeChild(element);\n }\n\n return path;\n} //returns the rotation (in degrees) at a particular progress on a rawPath (the slope of the tangent)\n\nexport function getRotationAtProgress(rawPath, progress) {\n var d = getProgressData(rawPath, progress >= 1 ? 1 - 1e-9 : progress ? progress : 1e-9);\n return getRotationAtBezierT(d.segment, d.i, d.t);\n}\n\nfunction getRotationAtBezierT(segment, i, t) {\n var a = segment[i],\n b = segment[i + 2],\n c = segment[i + 4],\n x;\n a += (b - a) * t;\n b += (c - b) * t;\n a += (b - a) * t;\n x = b + (c + (segment[i + 6] - c) * t - b) * t - a;\n a = segment[i + 1];\n b = segment[i + 3];\n c = segment[i + 5];\n a += (b - a) * t;\n b += (c - b) * t;\n a += (b - a) * t;\n return _round(_atan2(b + (c + (segment[i + 7] - c) * t - b) * t - a, x) * _RAD2DEG);\n}\n\nexport function sliceRawPath(rawPath, start, end) {\n if (_isUndefined(end)) {\n end = 1;\n }\n\n start = start || 0;\n var reverse = start > end,\n loops = Math.max(0, ~~(_abs(end - start) - 1e-8));\n\n if (reverse) {\n reverse = end;\n end = start;\n start = reverse;\n reverse = 1;\n loops -= loops ? 1 : 0;\n }\n\n if (start < 0 || end < 0) {\n var offset = ~~Math.min(start, end) + 1;\n start += offset;\n end += offset;\n }\n\n var path = copyRawPath(rawPath.totalLength ? rawPath : cacheRawPathMeasurements(rawPath)),\n wrap = end > 1,\n s = getProgressData(path, start, _temp, true),\n e = getProgressData(path, end, _temp2),\n eSeg = e.segment,\n sSeg = s.segment,\n eSegIndex = e.segIndex,\n sSegIndex = s.segIndex,\n ei = e.i,\n si = s.i,\n sameSegment = sSegIndex === eSegIndex,\n sameBezier = ei === si && sameSegment,\n invertedOrder = sameSegment && si > ei || sameBezier && s.t > e.t,\n sShift,\n eShift,\n i,\n copy,\n totalSegments,\n l,\n j;\n\n if (wrap || loops) {\n if (_splitSegment(path, sSegIndex, si, s.t)) {\n sShift = 1;\n sSegIndex++;\n\n if (sameBezier) {\n if (invertedOrder) {\n e.t /= s.t;\n } else {\n e.t = (e.t - s.t) / (1 - s.t);\n eSegIndex++;\n ei = 0;\n }\n } else if (sSegIndex <= eSegIndex + 1 && !invertedOrder) {\n eSegIndex++;\n\n if (sameSegment) {\n ei -= si;\n }\n }\n }\n\n if (!e.t) {\n eSegIndex--;\n reverse && sSegIndex--;\n } else if (_splitSegment(path, eSegIndex, ei, e.t)) {\n invertedOrder && sShift && sSegIndex++;\n reverse && eSegIndex++;\n }\n\n copy = [];\n totalSegments = path.length;\n l = 1 + totalSegments * loops;\n j = sSegIndex;\n\n if (reverse) {\n eSegIndex = (eSegIndex || totalSegments) - 1;\n l += (totalSegments - eSegIndex + sSegIndex) % totalSegments;\n\n for (i = 0; i < l; i++) {\n _appendOrMerge(copy, path[j]);\n\n j = (j || totalSegments) - 1;\n }\n } else {\n l += (totalSegments - sSegIndex + eSegIndex) % totalSegments;\n\n for (i = 0; i < l; i++) {\n _appendOrMerge(copy, path[j++ % totalSegments]);\n }\n }\n\n path = copy;\n } else {\n eShift = e.t === 1 ? 6 : subdivideSegment(eSeg, ei, e.t);\n\n if (start !== end) {\n sShift = subdivideSegment(sSeg, si, sameBezier ? s.t / e.t : s.t);\n\n if (sameSegment) {\n eShift += sShift;\n }\n\n eSeg.splice(ei + eShift + 2);\n\n if (sShift || si) {\n sSeg.splice(0, si + sShift);\n }\n\n i = path.length;\n\n while (i--) {\n //chop off any extra segments\n if (i < sSegIndex || i > eSegIndex) {\n path.splice(i, 1);\n }\n }\n } else {\n eSeg.angle = getRotationAtBezierT(eSeg, ei + eShift, 0); //record the value before we chop because it'll be impossible to determine the angle after its length is 0!\n\n ei += eShift;\n s = eSeg[ei];\n e = eSeg[ei + 1];\n eSeg.length = eSeg.totalLength = 0;\n eSeg.totalPoints = path.totalPoints = 8;\n eSeg.push(s, e, s, e, s, e, s, e);\n }\n }\n\n reverse && _reverseRawPath(path, wrap || loops);\n path.totalLength = 0;\n return path;\n} //measures a Segment according to its resolution (so if segment.resolution is 6, for example, it'll take 6 samples equally across each Bezier) and create/populate a \"samples\" Array that has the length up to each of those sample points (always increasing from the start) as well as a \"lookup\" array that's broken up according to the smallest distance between 2 samples. This gives us a very fast way of looking up a progress position rather than looping through all the points/Beziers. You can optionally have it only measure a subset, starting at startIndex and going for a specific number of beziers (remember, there are 3 x/y pairs each, for a total of 6 elements for each Bezier). It will also populate a \"totalLength\" property, but that's not generally super accurate because by default it'll only take 6 samples per Bezier. But for performance reasons, it's perfectly adequate for measuring progress values along the path. If you need a more accurate totalLength, either increase the resolution or use the more advanced bezierToPoints() method which keeps adding points until they don't deviate by more than a certain precision value.\n\nfunction measureSegment(segment, startIndex, bezierQty) {\n startIndex = startIndex || 0;\n\n if (!segment.samples) {\n segment.samples = [];\n segment.lookup = [];\n }\n\n var resolution = ~~segment.resolution || 12,\n inc = 1 / resolution,\n endIndex = bezierQty ? startIndex + bezierQty * 6 + 1 : segment.length,\n x1 = segment[startIndex],\n y1 = segment[startIndex + 1],\n samplesIndex = startIndex ? startIndex / 6 * resolution : 0,\n samples = segment.samples,\n lookup = segment.lookup,\n min = (startIndex ? segment.minLength : _largeNum) || _largeNum,\n prevLength = samples[samplesIndex + bezierQty * resolution - 1],\n length = startIndex ? samples[samplesIndex - 1] : 0,\n i,\n j,\n x4,\n x3,\n x2,\n xd,\n xd1,\n y4,\n y3,\n y2,\n yd,\n yd1,\n inv,\n t,\n lengthIndex,\n l,\n segLength;\n samples.length = lookup.length = 0;\n\n for (j = startIndex + 2; j < endIndex; j += 6) {\n x4 = segment[j + 4] - x1;\n x3 = segment[j + 2] - x1;\n x2 = segment[j] - x1;\n y4 = segment[j + 5] - y1;\n y3 = segment[j + 3] - y1;\n y2 = segment[j + 1] - y1;\n xd = xd1 = yd = yd1 = 0;\n\n if (_abs(x4) < 1e-5 && _abs(y4) < 1e-5 && _abs(x2) + _abs(y2) < 1e-5) {\n //dump points that are sufficiently close (basically right on top of each other, making a bezier super tiny or 0 length)\n if (segment.length > 8) {\n segment.splice(j, 6);\n j -= 6;\n endIndex -= 6;\n }\n } else {\n for (i = 1; i <= resolution; i++) {\n t = inc * i;\n inv = 1 - t;\n xd = xd1 - (xd1 = (t * t * x4 + 3 * inv * (t * x3 + inv * x2)) * t);\n yd = yd1 - (yd1 = (t * t * y4 + 3 * inv * (t * y3 + inv * y2)) * t);\n l = _sqrt(yd * yd + xd * xd);\n\n if (l < min) {\n min = l;\n }\n\n length += l;\n samples[samplesIndex++] = length;\n }\n }\n\n x1 += x4;\n y1 += y4;\n }\n\n if (prevLength) {\n prevLength -= length;\n\n for (; samplesIndex < samples.length; samplesIndex++) {\n samples[samplesIndex] += prevLength;\n }\n }\n\n if (samples.length && min) {\n segment.totalLength = segLength = samples[samples.length - 1] || 0;\n segment.minLength = min;\n l = lengthIndex = 0;\n\n for (i = 0; i < segLength; i += min) {\n lookup[l++] = samples[lengthIndex] < i ? ++lengthIndex : lengthIndex;\n }\n } else {\n segment.totalLength = samples[0] = 0;\n }\n\n return startIndex ? length - samples[startIndex / 2 - 1] : length;\n}\n\nexport function cacheRawPathMeasurements(rawPath, resolution) {\n var pathLength, points, i;\n\n for (i = pathLength = points = 0; i < rawPath.length; i++) {\n rawPath[i].resolution = ~~resolution || 12; //steps per Bezier curve (anchor, 2 control points, to anchor)\n\n points += rawPath[i].length;\n pathLength += measureSegment(rawPath[i]);\n }\n\n rawPath.totalPoints = points;\n rawPath.totalLength = pathLength;\n return rawPath;\n} //divide segment[i] at position t (value between 0 and 1, progress along that particular cubic bezier segment that starts at segment[i]). Returns how many elements were spliced into the segment array (either 0 or 6)\n\nexport function subdivideSegment(segment, i, t) {\n if (t <= 0 || t >= 1) {\n return 0;\n }\n\n var ax = segment[i],\n ay = segment[i + 1],\n cp1x = segment[i + 2],\n cp1y = segment[i + 3],\n cp2x = segment[i + 4],\n cp2y = segment[i + 5],\n bx = segment[i + 6],\n by = segment[i + 7],\n x1a = ax + (cp1x - ax) * t,\n x2 = cp1x + (cp2x - cp1x) * t,\n y1a = ay + (cp1y - ay) * t,\n y2 = cp1y + (cp2y - cp1y) * t,\n x1 = x1a + (x2 - x1a) * t,\n y1 = y1a + (y2 - y1a) * t,\n x2a = cp2x + (bx - cp2x) * t,\n y2a = cp2y + (by - cp2y) * t;\n x2 += (x2a - x2) * t;\n y2 += (y2a - y2) * t;\n segment.splice(i + 2, 4, _round(x1a), //first control point\n _round(y1a), _round(x1), //second control point\n _round(y1), _round(x1 + (x2 - x1) * t), //new fabricated anchor on line\n _round(y1 + (y2 - y1) * t), _round(x2), //third control point\n _round(y2), _round(x2a), //fourth control point\n _round(y2a));\n segment.samples && segment.samples.splice(i / 6 * segment.resolution | 0, 0, 0, 0, 0, 0, 0, 0);\n return 6;\n} // returns an object {path, segment, segIndex, i, t}\n\nfunction getProgressData(rawPath, progress, decoratee, pushToNextIfAtEnd) {\n decoratee = decoratee || {};\n rawPath.totalLength || cacheRawPathMeasurements(rawPath);\n\n if (progress < 0 || progress > 1) {\n progress = _wrapProgress(progress);\n }\n\n var segIndex = 0,\n segment = rawPath[0],\n samples,\n resolution,\n length,\n min,\n max,\n i,\n t;\n\n if (rawPath.length > 1) {\n //speed optimization: most of the time, there's only one segment so skip the recursion.\n length = rawPath.totalLength * progress;\n max = i = 0;\n\n while ((max += rawPath[i++].totalLength) < length) {\n segIndex = i;\n }\n\n segment = rawPath[segIndex];\n min = max - segment.totalLength;\n progress = (length - min) / (max - min) || 0;\n }\n\n samples = segment.samples;\n resolution = segment.resolution; //how many samples per cubic bezier chunk\n\n length = segment.totalLength * progress;\n i = segment.lookup[~~(length / segment.minLength)] || 0;\n min = i ? samples[i - 1] : 0;\n max = samples[i];\n\n if (max < length) {\n min = max;\n max = samples[++i];\n }\n\n t = 1 / resolution * ((length - min) / (max - min) + i % resolution);\n i = ~~(i / resolution) * 6;\n\n if (pushToNextIfAtEnd && t === 1) {\n if (i + 6 < segment.length) {\n i += 6;\n t = 0;\n } else if (segIndex + 1 < rawPath.length) {\n i = t = 0;\n segment = rawPath[++segIndex];\n }\n }\n\n decoratee.t = t;\n decoratee.i = i;\n decoratee.path = rawPath;\n decoratee.segment = segment;\n decoratee.segIndex = segIndex;\n return decoratee;\n}\n\nexport function getPositionOnPath(rawPath, progress, includeAngle, point) {\n var segment = rawPath[0],\n result = point || {},\n samples,\n resolution,\n length,\n min,\n max,\n i,\n t,\n a,\n inv;\n\n if (progress < 0 || progress > 1) {\n progress = _wrapProgress(progress);\n }\n\n if (rawPath.length > 1) {\n //speed optimization: most of the time, there's only one segment so skip the recursion.\n length = rawPath.totalLength * progress;\n max = i = 0;\n\n while ((max += rawPath[i++].totalLength) < length) {\n segment = rawPath[i];\n }\n\n min = max - segment.totalLength;\n progress = (length - min) / (max - min) || 0;\n }\n\n samples = segment.samples;\n resolution = segment.resolution;\n length = segment.totalLength * progress;\n i = segment.lookup[~~(length / segment.minLength)] || 0;\n min = i ? samples[i - 1] : 0;\n max = samples[i];\n\n if (max < length) {\n min = max;\n max = samples[++i];\n }\n\n t = 1 / resolution * ((length - min) / (max - min) + i % resolution) || 0;\n inv = 1 - t;\n i = ~~(i / resolution) * 6;\n a = segment[i];\n result.x = _round((t * t * (segment[i + 6] - a) + 3 * inv * (t * (segment[i + 4] - a) + inv * (segment[i + 2] - a))) * t + a);\n result.y = _round((t * t * (segment[i + 7] - (a = segment[i + 1])) + 3 * inv * (t * (segment[i + 5] - a) + inv * (segment[i + 3] - a))) * t + a);\n\n if (includeAngle) {\n result.angle = segment.totalLength ? getRotationAtBezierT(segment, i, t >= 1 ? 1 - 1e-9 : t ? t : 1e-9) : segment.angle || 0;\n }\n\n return result;\n} //applies a matrix transform to RawPath (or a segment in a RawPath) and returns whatever was passed in (it transforms the values in the array(s), not a copy).\n\nexport function transformRawPath(rawPath, a, b, c, d, tx, ty) {\n var j = rawPath.length,\n segment,\n l,\n i,\n x,\n y;\n\n while (--j > -1) {\n segment = rawPath[j];\n l = segment.length;\n\n for (i = 0; i < l; i += 2) {\n x = segment[i];\n y = segment[i + 1];\n segment[i] = x * a + y * c + tx;\n segment[i + 1] = x * b + y * d + ty;\n }\n }\n\n rawPath._dirty = 1;\n return rawPath;\n} // translates SVG arc data into a segment (cubic beziers). Angle is in degrees.\n\nfunction arcToSegment(lastX, lastY, rx, ry, angle, largeArcFlag, sweepFlag, x, y) {\n if (lastX === x && lastY === y) {\n return;\n }\n\n rx = _abs(rx);\n ry = _abs(ry);\n\n var angleRad = angle % 360 * _DEG2RAD,\n cosAngle = _cos(angleRad),\n sinAngle = _sin(angleRad),\n PI = Math.PI,\n TWOPI = PI * 2,\n dx2 = (lastX - x) / 2,\n dy2 = (lastY - y) / 2,\n x1 = cosAngle * dx2 + sinAngle * dy2,\n y1 = -sinAngle * dx2 + cosAngle * dy2,\n x1_sq = x1 * x1,\n y1_sq = y1 * y1,\n radiiCheck = x1_sq / (rx * rx) + y1_sq / (ry * ry);\n\n if (radiiCheck > 1) {\n rx = _sqrt(radiiCheck) * rx;\n ry = _sqrt(radiiCheck) * ry;\n }\n\n var rx_sq = rx * rx,\n ry_sq = ry * ry,\n sq = (rx_sq * ry_sq - rx_sq * y1_sq - ry_sq * x1_sq) / (rx_sq * y1_sq + ry_sq * x1_sq);\n\n if (sq < 0) {\n sq = 0;\n }\n\n var coef = (largeArcFlag === sweepFlag ? -1 : 1) * _sqrt(sq),\n cx1 = coef * (rx * y1 / ry),\n cy1 = coef * -(ry * x1 / rx),\n sx2 = (lastX + x) / 2,\n sy2 = (lastY + y) / 2,\n cx = sx2 + (cosAngle * cx1 - sinAngle * cy1),\n cy = sy2 + (sinAngle * cx1 + cosAngle * cy1),\n ux = (x1 - cx1) / rx,\n uy = (y1 - cy1) / ry,\n vx = (-x1 - cx1) / rx,\n vy = (-y1 - cy1) / ry,\n temp = ux * ux + uy * uy,\n angleStart = (uy < 0 ? -1 : 1) * Math.acos(ux / _sqrt(temp)),\n angleExtent = (ux * vy - uy * vx < 0 ? -1 : 1) * Math.acos((ux * vx + uy * vy) / _sqrt(temp * (vx * vx + vy * vy)));\n\n isNaN(angleExtent) && (angleExtent = PI); //rare edge case. Math.cos(-1) is NaN.\n\n if (!sweepFlag && angleExtent > 0) {\n angleExtent -= TWOPI;\n } else if (sweepFlag && angleExtent < 0) {\n angleExtent += TWOPI;\n }\n\n angleStart %= TWOPI;\n angleExtent %= TWOPI;\n\n var segments = Math.ceil(_abs(angleExtent) / (TWOPI / 4)),\n rawPath = [],\n angleIncrement = angleExtent / segments,\n controlLength = 4 / 3 * _sin(angleIncrement / 2) / (1 + _cos(angleIncrement / 2)),\n ma = cosAngle * rx,\n mb = sinAngle * rx,\n mc = sinAngle * -ry,\n md = cosAngle * ry,\n i;\n\n for (i = 0; i < segments; i++) {\n angle = angleStart + i * angleIncrement;\n x1 = _cos(angle);\n y1 = _sin(angle);\n ux = _cos(angle += angleIncrement);\n uy = _sin(angle);\n rawPath.push(x1 - controlLength * y1, y1 + controlLength * x1, ux + controlLength * uy, uy - controlLength * ux, ux, uy);\n } //now transform according to the actual size of the ellipse/arc (the beziers were noramlized, between 0 and 1 on a circle).\n\n\n for (i = 0; i < rawPath.length; i += 2) {\n x1 = rawPath[i];\n y1 = rawPath[i + 1];\n rawPath[i] = x1 * ma + y1 * mc + cx;\n rawPath[i + 1] = x1 * mb + y1 * md + cy;\n }\n\n rawPath[i - 2] = x; //always set the end to exactly where it's supposed to be\n\n rawPath[i - 1] = y;\n return rawPath;\n} //Spits back a RawPath with absolute coordinates. Each segment starts with a \"moveTo\" command (x coordinate, then y) and then 2 control points (x, y, x, y), then anchor. The goal is to minimize memory and maximize speed.\n\n\nexport function stringToRawPath(d) {\n var a = (d + \"\").replace(_scientific, function (m) {\n var n = +m;\n return n < 0.0001 && n > -0.0001 ? 0 : n;\n }).match(_svgPathExp) || [],\n //some authoring programs spit out very small numbers in scientific notation like \"1e-5\", so make sure we round that down to 0 first.\n path = [],\n relativeX = 0,\n relativeY = 0,\n twoThirds = 2 / 3,\n elements = a.length,\n points = 0,\n errorMessage = \"ERROR: malformed path: \" + d,\n i,\n j,\n x,\n y,\n command,\n isRelative,\n segment,\n startX,\n startY,\n difX,\n difY,\n beziers,\n prevCommand,\n flag1,\n flag2,\n line = function line(sx, sy, ex, ey) {\n difX = (ex - sx) / 3;\n difY = (ey - sy) / 3;\n segment.push(sx + difX, sy + difY, ex - difX, ey - difY, ex, ey);\n };\n\n if (!d || !isNaN(a[0]) || isNaN(a[1])) {\n console.log(errorMessage);\n return path;\n }\n\n for (i = 0; i < elements; i++) {\n prevCommand = command;\n\n if (isNaN(a[i])) {\n command = a[i].toUpperCase();\n isRelative = command !== a[i]; //lower case means relative\n } else {\n //commands like \"C\" can be strung together without any new command characters between.\n i--;\n }\n\n x = +a[i + 1];\n y = +a[i + 2];\n\n if (isRelative) {\n x += relativeX;\n y += relativeY;\n }\n\n if (!i) {\n startX = x;\n startY = y;\n } // \"M\" (move)\n\n\n if (command === \"M\") {\n if (segment) {\n if (segment.length < 8) {\n //if the path data was funky and just had a M with no actual drawing anywhere, skip it.\n path.length -= 1;\n } else {\n points += segment.length;\n }\n }\n\n relativeX = startX = x;\n relativeY = startY = y;\n segment = [x, y];\n path.push(segment);\n i += 2;\n command = \"L\"; //an \"M\" with more than 2 values gets interpreted as \"lineTo\" commands (\"L\").\n // \"C\" (cubic bezier)\n } else if (command === \"C\") {\n if (!segment) {\n segment = [0, 0];\n }\n\n if (!isRelative) {\n relativeX = relativeY = 0;\n } //note: \"*1\" is just a fast/short way to cast the value as a Number. WAAAY faster in Chrome, slightly slower in Firefox.\n\n\n segment.push(x, y, relativeX + a[i + 3] * 1, relativeY + a[i + 4] * 1, relativeX += a[i + 5] * 1, relativeY += a[i + 6] * 1);\n i += 6; // \"S\" (continuation of cubic bezier)\n } else if (command === \"S\") {\n difX = relativeX;\n difY = relativeY;\n\n if (prevCommand === \"C\" || prevCommand === \"S\") {\n difX += relativeX - segment[segment.length - 4];\n difY += relativeY - segment[segment.length - 3];\n }\n\n if (!isRelative) {\n relativeX = relativeY = 0;\n }\n\n segment.push(difX, difY, x, y, relativeX += a[i + 3] * 1, relativeY += a[i + 4] * 1);\n i += 4; // \"Q\" (quadratic bezier)\n } else if (command === \"Q\") {\n difX = relativeX + (x - relativeX) * twoThirds;\n difY = relativeY + (y - relativeY) * twoThirds;\n\n if (!isRelative) {\n relativeX = relativeY = 0;\n }\n\n relativeX += a[i + 3] * 1;\n relativeY += a[i + 4] * 1;\n segment.push(difX, difY, relativeX + (x - relativeX) * twoThirds, relativeY + (y - relativeY) * twoThirds, relativeX, relativeY);\n i += 4; // \"T\" (continuation of quadratic bezier)\n } else if (command === \"T\") {\n difX = relativeX - segment[segment.length - 4];\n difY = relativeY - segment[segment.length - 3];\n segment.push(relativeX + difX, relativeY + difY, x + (relativeX + difX * 1.5 - x) * twoThirds, y + (relativeY + difY * 1.5 - y) * twoThirds, relativeX = x, relativeY = y);\n i += 2; // \"H\" (horizontal line)\n } else if (command === \"H\") {\n line(relativeX, relativeY, relativeX = x, relativeY);\n i += 1; // \"V\" (vertical line)\n } else if (command === \"V\") {\n //adjust values because the first (and only one) isn't x in this case, it's y.\n line(relativeX, relativeY, relativeX, relativeY = x + (isRelative ? relativeY - relativeX : 0));\n i += 1; // \"L\" (line) or \"Z\" (close)\n } else if (command === \"L\" || command === \"Z\") {\n if (command === \"Z\") {\n x = startX;\n y = startY;\n segment.closed = true;\n }\n\n if (command === \"L\" || _abs(relativeX - x) > 0.5 || _abs(relativeY - y) > 0.5) {\n line(relativeX, relativeY, x, y);\n\n if (command === \"L\") {\n i += 2;\n }\n }\n\n relativeX = x;\n relativeY = y; // \"A\" (arc)\n } else if (command === \"A\") {\n flag1 = a[i + 4];\n flag2 = a[i + 5];\n difX = a[i + 6];\n difY = a[i + 7];\n j = 7;\n\n if (flag1.length > 1) {\n // for cases when the flags are merged, like \"a8 8 0 018 8\" (the 0 and 1 flags are WITH the x value of 8, but it could also be \"a8 8 0 01-8 8\" so it may include x or not)\n if (flag1.length < 3) {\n difY = difX;\n difX = flag2;\n j--;\n } else {\n difY = flag2;\n difX = flag1.substr(2);\n j -= 2;\n }\n\n flag2 = flag1.charAt(1);\n flag1 = flag1.charAt(0);\n }\n\n beziers = arcToSegment(relativeX, relativeY, +a[i + 1], +a[i + 2], +a[i + 3], +flag1, +flag2, (isRelative ? relativeX : 0) + difX * 1, (isRelative ? relativeY : 0) + difY * 1);\n i += j;\n\n if (beziers) {\n for (j = 0; j < beziers.length; j++) {\n segment.push(beziers[j]);\n }\n }\n\n relativeX = segment[segment.length - 2];\n relativeY = segment[segment.length - 1];\n } else {\n console.log(errorMessage);\n }\n }\n\n i = segment.length;\n\n if (i < 6) {\n //in case there's odd SVG like a M0,0 command at the very end.\n path.pop();\n i = 0;\n } else if (segment[0] === segment[i - 2] && segment[1] === segment[i - 1]) {\n segment.closed = true;\n }\n\n path.totalPoints = points + i;\n return path;\n} //populates the points array in alternating x/y values (like [x, y, x, y...] instead of individual point objects [{x, y}, {x, y}...] to conserve memory and stay in line with how we're handling segment arrays\n\nexport function bezierToPoints(x1, y1, x2, y2, x3, y3, x4, y4, threshold, points, index) {\n var x12 = (x1 + x2) / 2,\n y12 = (y1 + y2) / 2,\n x23 = (x2 + x3) / 2,\n y23 = (y2 + y3) / 2,\n x34 = (x3 + x4) / 2,\n y34 = (y3 + y4) / 2,\n x123 = (x12 + x23) / 2,\n y123 = (y12 + y23) / 2,\n x234 = (x23 + x34) / 2,\n y234 = (y23 + y34) / 2,\n x1234 = (x123 + x234) / 2,\n y1234 = (y123 + y234) / 2,\n dx = x4 - x1,\n dy = y4 - y1,\n d2 = _abs((x2 - x4) * dy - (y2 - y4) * dx),\n d3 = _abs((x3 - x4) * dy - (y3 - y4) * dx),\n length;\n\n if (!points) {\n points = [x1, y1, x4, y4];\n index = 2;\n }\n\n points.splice(index || points.length - 2, 0, x1234, y1234);\n\n if ((d2 + d3) * (d2 + d3) > threshold * (dx * dx + dy * dy)) {\n length = points.length;\n bezierToPoints(x1, y1, x12, y12, x123, y123, x1234, y1234, threshold, points, index);\n bezierToPoints(x1234, y1234, x234, y234, x34, y34, x4, y4, threshold, points, index + 2 + (points.length - length));\n }\n\n return points;\n}\n/*\nfunction getAngleBetweenPoints(x0, y0, x1, y1, x2, y2) { //angle between 3 points in radians\n\tvar dx1 = x1 - x0,\n\t\tdy1 = y1 - y0,\n\t\tdx2 = x2 - x1,\n\t\tdy2 = y2 - y1,\n\t\tdx3 = x2 - x0,\n\t\tdy3 = y2 - y0,\n\t\ta = dx1 * dx1 + dy1 * dy1,\n\t\tb = dx2 * dx2 + dy2 * dy2,\n\t\tc = dx3 * dx3 + dy3 * dy3;\n\treturn Math.acos( (a + b - c) / _sqrt(4 * a * b) );\n},\n*/\n//pointsToSegment() doesn't handle flat coordinates (where y is always 0) the way we need (the resulting control points are always right on top of the anchors), so this function basically makes the control points go directly up and down, varying in length based on the curviness (more curvy, further control points)\n\nexport function flatPointsToSegment(points, curviness) {\n if (curviness === void 0) {\n curviness = 1;\n }\n\n var x = points[0],\n y = 0,\n segment = [x, y],\n i = 2;\n\n for (; i < points.length; i += 2) {\n segment.push(x, y, points[i], y = (points[i] - x) * curviness / 2, x = points[i], -y);\n }\n\n return segment;\n} //points is an array of x/y points, like [x, y, x, y, x, y]\n\nexport function pointsToSegment(points, curviness, cornerThreshold) {\n //points = simplifyPoints(points, tolerance);\n var l = points.length - 2,\n x = +points[0],\n y = +points[1],\n nextX = +points[2],\n nextY = +points[3],\n segment = [x, y, x, y],\n dx2 = nextX - x,\n dy2 = nextY - y,\n closed = Math.abs(points[l] - x) < 0.001 && Math.abs(points[l + 1] - y) < 0.001,\n prevX,\n prevY,\n angle,\n slope,\n i,\n dx1,\n dx3,\n dy1,\n dy3,\n d1,\n d2,\n a,\n b,\n c;\n\n if (isNaN(cornerThreshold)) {\n cornerThreshold = Math.PI / 10;\n }\n\n if (closed) {\n // if the start and end points are basically on top of each other, close the segment by adding the 2nd point to the end, and the 2nd-to-last point to the beginning (we'll remove them at the end, but this allows the curvature to look perfect)\n points.push(nextX, nextY);\n nextX = x;\n nextY = y;\n x = points[l - 2];\n y = points[l - 1];\n points.unshift(x, y);\n l += 4;\n }\n\n curviness = curviness || curviness === 0 ? +curviness : 1;\n\n for (i = 2; i < l; i += 2) {\n prevX = x;\n prevY = y;\n x = nextX;\n y = nextY;\n nextX = +points[i + 2];\n nextY = +points[i + 3];\n dx1 = dx2;\n dy1 = dy2;\n dx2 = nextX - x;\n dy2 = nextY - y;\n dx3 = nextX - prevX;\n dy3 = nextY - prevY;\n a = dx1 * dx1 + dy1 * dy1;\n b = dx2 * dx2 + dy2 * dy2;\n c = dx3 * dx3 + dy3 * dy3;\n angle = Math.acos((a + b - c) / _sqrt(4 * a * b)); //angle between the 3 points\n\n d2 = angle / Math.PI * curviness; //temporary precalculation for speed (reusing d2 variable)\n\n d1 = _sqrt(a) * d2; //the tighter the angle, the shorter we make the handles in proportion.\n\n d2 *= _sqrt(b);\n\n if (x !== prevX || y !== prevY) {\n if (angle > cornerThreshold) {\n slope = _atan2(dy3, dx3);\n segment.push(_round(x - _cos(slope) * d1), //first control point\n _round(y - _sin(slope) * d1), _round(x), //anchor\n _round(y), _round(x + _cos(slope) * d2), //second control point\n _round(y + _sin(slope) * d2));\n } else {\n slope = _atan2(dy1, dx1);\n segment.push(_round(x - _cos(slope) * d1), //first control point\n _round(y - _sin(slope) * d1));\n slope = _atan2(dy2, dx2);\n segment.push(_round(x), //anchor\n _round(y), _round(x + _cos(slope) * d2), //second control point\n _round(y + _sin(slope) * d2));\n }\n }\n }\n\n segment.push(_round(nextX), _round(nextY), _round(nextX), _round(nextY));\n\n if (closed) {\n segment.splice(0, 6);\n segment.length = segment.length - 6;\n }\n\n return segment;\n} //returns the squared distance between an x/y coordinate and a segment between x1/y1 and x2/y2\n\nfunction pointToSegDist(x, y, x1, y1, x2, y2) {\n var dx = x2 - x1,\n dy = y2 - y1,\n t;\n\n if (dx || dy) {\n t = ((x - x1) * dx + (y - y1) * dy) / (dx * dx + dy * dy);\n\n if (t > 1) {\n x1 = x2;\n y1 = y2;\n } else if (t > 0) {\n x1 += dx * t;\n y1 += dy * t;\n }\n }\n\n return Math.pow(x - x1, 2) + Math.pow(y - y1, 2);\n}\n\nfunction simplifyStep(points, first, last, tolerance, simplified) {\n var maxSqDist = tolerance,\n firstX = points[first],\n firstY = points[first + 1],\n lastX = points[last],\n lastY = points[last + 1],\n index,\n i,\n d;\n\n for (i = first + 2; i < last; i += 2) {\n d = pointToSegDist(points[i], points[i + 1], firstX, firstY, lastX, lastY);\n\n if (d > maxSqDist) {\n index = i;\n maxSqDist = d;\n }\n }\n\n if (maxSqDist > tolerance) {\n if (index - first > 2) {\n simplifyStep(points, first, index, tolerance, simplified);\n }\n\n simplified.push(points[index], points[index + 1]);\n\n if (last - index > 2) {\n simplifyStep(points, index, last, tolerance, simplified);\n }\n }\n} //points is an array of x/y values like [x, y, x, y, x, y]\n\n\nexport function simplifyPoints(points, tolerance) {\n var prevX = parseFloat(points[0]),\n prevY = parseFloat(points[1]),\n temp = [prevX, prevY],\n l = points.length - 2,\n i,\n x,\n y,\n dx,\n dy,\n result,\n last;\n tolerance = Math.pow(tolerance || 1, 2);\n\n for (i = 2; i < l; i += 2) {\n x = parseFloat(points[i]);\n y = parseFloat(points[i + 1]);\n dx = prevX - x;\n dy = prevY - y;\n\n if (dx * dx + dy * dy > tolerance) {\n temp.push(x, y);\n prevX = x;\n prevY = y;\n }\n }\n\n temp.push(parseFloat(points[l]), parseFloat(points[l + 1]));\n last = temp.length - 2;\n result = [temp[0], temp[1]];\n simplifyStep(temp, 0, last, tolerance, result);\n result.push(temp[last], temp[last + 1]);\n return result;\n}\n\nfunction getClosestProgressOnBezier(iterations, px, py, start, end, slices, x0, y0, x1, y1, x2, y2, x3, y3) {\n var inc = (end - start) / slices,\n best = 0,\n t = start,\n x,\n y,\n d,\n dx,\n dy,\n inv;\n _bestDistance = _largeNum;\n\n while (t <= end) {\n inv = 1 - t;\n x = inv * inv * inv * x0 + 3 * inv * inv * t * x1 + 3 * inv * t * t * x2 + t * t * t * x3;\n y = inv * inv * inv * y0 + 3 * inv * inv * t * y1 + 3 * inv * t * t * y2 + t * t * t * y3;\n dx = x - px;\n dy = y - py;\n d = dx * dx + dy * dy;\n\n if (d < _bestDistance) {\n _bestDistance = d;\n best = t;\n }\n\n t += inc;\n }\n\n return iterations > 1 ? getClosestProgressOnBezier(iterations - 1, px, py, Math.max(best - inc, 0), Math.min(best + inc, 1), slices, x0, y0, x1, y1, x2, y2, x3, y3) : best;\n}\n\nexport function getClosestData(rawPath, x, y, slices) {\n //returns an object with the closest j, i, and t (j is the segment index, i is the index of the point in that segment, and t is the time/progress along that bezier)\n var closest = {\n j: 0,\n i: 0,\n t: 0\n },\n bestDistance = _largeNum,\n i,\n j,\n t,\n segment;\n\n for (j = 0; j < rawPath.length; j++) {\n segment = rawPath[j];\n\n for (i = 0; i < segment.length; i += 6) {\n t = getClosestProgressOnBezier(1, x, y, 0, 1, slices || 20, segment[i], segment[i + 1], segment[i + 2], segment[i + 3], segment[i + 4], segment[i + 5], segment[i + 6], segment[i + 7]);\n\n if (bestDistance > _bestDistance) {\n bestDistance = _bestDistance;\n closest.j = j;\n closest.i = i;\n closest.t = t;\n }\n }\n }\n\n return closest;\n} //subdivide a Segment closest to a specific x,y coordinate\n\nexport function subdivideSegmentNear(x, y, segment, slices, iterations) {\n var l = segment.length,\n bestDistance = _largeNum,\n bestT = 0,\n bestSegmentIndex = 0,\n t,\n i;\n slices = slices || 20;\n iterations = iterations || 3;\n\n for (i = 0; i < l; i += 6) {\n t = getClosestProgressOnBezier(1, x, y, 0, 1, slices, segment[i], segment[i + 1], segment[i + 2], segment[i + 3], segment[i + 4], segment[i + 5], segment[i + 6], segment[i + 7]);\n\n if (bestDistance > _bestDistance) {\n bestDistance = _bestDistance;\n bestT = t;\n bestSegmentIndex = i;\n }\n }\n\n t = getClosestProgressOnBezier(iterations, x, y, bestT - 0.05, bestT + 0.05, slices, segment[bestSegmentIndex], segment[bestSegmentIndex + 1], segment[bestSegmentIndex + 2], segment[bestSegmentIndex + 3], segment[bestSegmentIndex + 4], segment[bestSegmentIndex + 5], segment[bestSegmentIndex + 6], segment[bestSegmentIndex + 7]);\n subdivideSegment(segment, bestSegmentIndex, t);\n return bestSegmentIndex + 6;\n}\n/*\nTakes any of the following and converts it to an all Cubic Bezier SVG data string:\n- A data string like \"M0,0 L2,4 v20,15 H100\"\n- A RawPath, like [[x, y, x, y, x, y, x, y][[x, y, x, y, x, y, x, y]]\n- A Segment, like [x, y, x, y, x, y, x, y]\n\nNote: all numbers are rounded down to the closest 0.001 to minimize memory, maximize speed, and avoid odd numbers like 1e-13\n*/\n\nexport function rawPathToString(rawPath) {\n if (_isNumber(rawPath[0])) {\n //in case a segment is passed in instead\n rawPath = [rawPath];\n }\n\n var result = \"\",\n l = rawPath.length,\n sl,\n s,\n i,\n segment;\n\n for (s = 0; s < l; s++) {\n segment = rawPath[s];\n result += \"M\" + _round(segment[0]) + \",\" + _round(segment[1]) + \" C\";\n sl = segment.length;\n\n for (i = 2; i < sl; i++) {\n result += _round(segment[i++]) + \",\" + _round(segment[i++]) + \" \" + _round(segment[i++]) + \",\" + _round(segment[i++]) + \" \" + _round(segment[i++]) + \",\" + _round(segment[i]) + \" \";\n }\n\n if (segment.closed) {\n result += \"z\";\n }\n }\n\n return result;\n}\n/*\n// takes a segment with coordinates [x, y, x, y, ...] and converts the control points into angles and lengths [x, y, angle, length, angle, length, x, y, angle, length, ...] so that it animates more cleanly and avoids odd breaks/kinks. For example, if you animate from 1 o'clock to 6 o'clock, it'd just go directly/linearly rather than around. So the length would be very short in the middle of the tween.\nexport function cpCoordsToAngles(segment, copy) {\n\tvar result = copy ? segment.slice(0) : segment,\n\t\tx, y, i;\n\tfor (i = 0; i < segment.length; i+=6) {\n\t\tx = segment[i+2] - segment[i];\n\t\ty = segment[i+3] - segment[i+1];\n\t\tresult[i+2] = Math.atan2(y, x);\n\t\tresult[i+3] = Math.sqrt(x * x + y * y);\n\t\tx = segment[i+6] - segment[i+4];\n\t\ty = segment[i+7] - segment[i+5];\n\t\tresult[i+4] = Math.atan2(y, x);\n\t\tresult[i+5] = Math.sqrt(x * x + y * y);\n\t}\n\treturn result;\n}\n\n// takes a segment that was converted with cpCoordsToAngles() to have angles and lengths instead of coordinates for the control points, and converts it BACK into coordinates.\nexport function cpAnglesToCoords(segment, copy) {\n\tvar result = copy ? segment.slice(0) : segment,\n\t\tlength = segment.length,\n\t\trnd = 1000,\n\t\tangle, l, i, j;\n\tfor (i = 0; i < length; i+=6) {\n\t\tangle = segment[i+2];\n\t\tl = segment[i+3]; //length\n\t\tresult[i+2] = (((segment[i] + Math.cos(angle) * l) * rnd) | 0) / rnd;\n\t\tresult[i+3] = (((segment[i+1] + Math.sin(angle) * l) * rnd) | 0) / rnd;\n\t\tangle = segment[i+4];\n\t\tl = segment[i+5]; //length\n\t\tresult[i+4] = (((segment[i+6] - Math.cos(angle) * l) * rnd) | 0) / rnd;\n\t\tresult[i+5] = (((segment[i+7] - Math.sin(angle) * l) * rnd) | 0) / rnd;\n\t}\n\treturn result;\n}\n\n//adds an \"isSmooth\" array to each segment and populates it with a boolean value indicating whether or not it's smooth (the control points have basically the same slope). For any smooth control points, it converts the coordinates into angle (x, in radians) and length (y) and puts them into the same index value in a smoothData array.\nexport function populateSmoothData(rawPath) {\n\tlet j = rawPath.length,\n\t\tsmooth, segment, x, y, x2, y2, i, l, a, a2, isSmooth, smoothData;\n\twhile (--j > -1) {\n\t\tsegment = rawPath[j];\n\t\tisSmooth = segment.isSmooth = segment.isSmooth || [0, 0, 0, 0];\n\t\tsmoothData = segment.smoothData = segment.smoothData || [0, 0, 0, 0];\n\t\tisSmooth.length = 4;\n\t\tl = segment.length - 2;\n\t\tfor (i = 6; i < l; i += 6) {\n\t\t\tx = segment[i] - segment[i - 2];\n\t\t\ty = segment[i + 1] - segment[i - 1];\n\t\t\tx2 = segment[i + 2] - segment[i];\n\t\t\ty2 = segment[i + 3] - segment[i + 1];\n\t\t\ta = _atan2(y, x);\n\t\t\ta2 = _atan2(y2, x2);\n\t\t\tsmooth = (Math.abs(a - a2) < 0.09);\n\t\t\tif (smooth) {\n\t\t\t\tsmoothData[i - 2] = a;\n\t\t\t\tsmoothData[i + 2] = a2;\n\t\t\t\tsmoothData[i - 1] = _sqrt(x * x + y * y);\n\t\t\t\tsmoothData[i + 3] = _sqrt(x2 * x2 + y2 * y2);\n\t\t\t}\n\t\t\tisSmooth.push(smooth, smooth, 0, 0, smooth, smooth);\n\t\t}\n\t\t//if the first and last points are identical, check to see if there's a smooth transition. We must handle this a bit differently due to their positions in the array.\n\t\tif (segment[l] === segment[0] && segment[l+1] === segment[1]) {\n\t\t\tx = segment[0] - segment[l-2];\n\t\t\ty = segment[1] - segment[l-1];\n\t\t\tx2 = segment[2] - segment[0];\n\t\t\ty2 = segment[3] - segment[1];\n\t\t\ta = _atan2(y, x);\n\t\t\ta2 = _atan2(y2, x2);\n\t\t\tif (Math.abs(a - a2) < 0.09) {\n\t\t\t\tsmoothData[l-2] = a;\n\t\t\t\tsmoothData[2] = a2;\n\t\t\t\tsmoothData[l-1] = _sqrt(x * x + y * y);\n\t\t\t\tsmoothData[3] = _sqrt(x2 * x2 + y2 * y2);\n\t\t\t\tisSmooth[l-2] = isSmooth[l-1] = true; //don't change indexes 2 and 3 because we'll trigger everything from the END, and this will optimize file size a bit.\n\t\t\t}\n\t\t}\n\t}\n\treturn rawPath;\n}\nexport function pointToScreen(svgElement, point) {\n\tif (arguments.length < 2) { //by default, take the first set of coordinates in the path as the point\n\t\tlet rawPath = getRawPath(svgElement);\n\t\tpoint = svgElement.ownerSVGElement.createSVGPoint();\n\t\tpoint.x = rawPath[0][0];\n\t\tpoint.y = rawPath[0][1];\n\t}\n\treturn point.matrixTransform(svgElement.getScreenCTM());\n}\n\n*/","/*!\n * MorphSVGPlugin 3.5.1\n * https://greensock.com\n *\n * @license Copyright 2008-2020, GreenSock. All rights reserved.\n * Subject to the terms at https://greensock.com/standard-license or for\n * Club GreenSock members, the agreement issued with that membership.\n * @author: Jack Doyle, jack@greensock.com\n*/\n\n/* eslint-disable */\nimport { getRawPath, reverseSegment, stringToRawPath, rawPathToString, convertToPath as _convertToPath } from \"./utils/paths.js\";\n\nvar gsap,\n _toArray,\n _lastLinkedAnchor,\n _doc,\n _coreInitted,\n PluginClass,\n _getGSAP = function _getGSAP() {\n return gsap || typeof window !== \"undefined\" && (gsap = window.gsap) && gsap.registerPlugin && gsap;\n},\n _isFunction = function _isFunction(value) {\n return typeof value === \"function\";\n},\n _atan2 = Math.atan2,\n _cos = Math.cos,\n _sin = Math.sin,\n _sqrt = Math.sqrt,\n _PI = Math.PI,\n _2PI = _PI * 2,\n _angleMin = _PI * 0.3,\n _angleMax = _PI * 0.7,\n _bigNum = 1e20,\n _numExp = /[-+=\\.]*\\d+[\\.e\\-\\+]*\\d*[e\\-\\+]*\\d*/gi,\n //finds any numbers, including ones that start with += or -=, negative numbers, and ones in scientific notation like 1e-8.\n_selectorExp = /(^[#\\.][a-z]|[a-y][a-z])/gi,\n _commands = /[achlmqstvz]/ig,\n _log = function _log(message) {\n return console && console.warn(message);\n},\n _bonusValidated = 1,\n //MorphSVGPlugin\n_getAverageXY = function _getAverageXY(segment) {\n var l = segment.length,\n x = 0,\n y = 0,\n i;\n\n for (i = 0; i < l; i++) {\n x += segment[i++];\n y += segment[i];\n }\n\n return [x / (l / 2), y / (l / 2)];\n},\n _getSize = function _getSize(segment) {\n //rough estimate of the bounding box (based solely on the anchors) of a single segment. sets \"size\", \"centerX\", and \"centerY\" properties on the bezier array itself, and returns the size (width * height)\n var l = segment.length,\n xMax = segment[0],\n xMin = xMax,\n yMax = segment[1],\n yMin = yMax,\n x,\n y,\n i;\n\n for (i = 6; i < l; i += 6) {\n x = segment[i];\n y = segment[i + 1];\n\n if (x > xMax) {\n xMax = x;\n } else if (x < xMin) {\n xMin = x;\n }\n\n if (y > yMax) {\n yMax = y;\n } else if (y < yMin) {\n yMin = y;\n }\n }\n\n segment.centerX = (xMax + xMin) / 2;\n segment.centerY = (yMax + yMin) / 2;\n return segment.size = (xMax - xMin) * (yMax - yMin);\n},\n _getTotalSize = function _getTotalSize(rawPath, samplesPerBezier) {\n if (samplesPerBezier === void 0) {\n samplesPerBezier = 3;\n }\n\n //rough estimate of the bounding box of the entire list of Bezier segments (based solely on the anchors). sets \"size\", \"centerX\", and \"centerY\" properties on the bezier array itself, and returns the size (width * height)\n var j = rawPath.length,\n xMax = rawPath[0][0],\n xMin = xMax,\n yMax = rawPath[0][1],\n yMin = yMax,\n inc = 1 / samplesPerBezier,\n l,\n x,\n y,\n i,\n segment,\n k,\n t,\n inv,\n x1,\n y1,\n x2,\n x3,\n x4,\n y2,\n y3,\n y4;\n\n while (--j > -1) {\n segment = rawPath[j];\n l = segment.length;\n\n for (i = 6; i < l; i += 6) {\n x1 = segment[i];\n y1 = segment[i + 1];\n x2 = segment[i + 2] - x1;\n y2 = segment[i + 3] - y1;\n x3 = segment[i + 4] - x1;\n y3 = segment[i + 5] - y1;\n x4 = segment[i + 6] - x1;\n y4 = segment[i + 7] - y1;\n k = samplesPerBezier;\n\n while (--k > -1) {\n t = inc * k;\n inv = 1 - t;\n x = (t * t * x4 + 3 * inv * (t * x3 + inv * x2)) * t + x1;\n y = (t * t * y4 + 3 * inv * (t * y3 + inv * y2)) * t + y1;\n\n if (x > xMax) {\n xMax = x;\n } else if (x < xMin) {\n xMin = x;\n }\n\n if (y > yMax) {\n yMax = y;\n } else if (y < yMin) {\n yMin = y;\n }\n }\n }\n }\n\n rawPath.centerX = (xMax + xMin) / 2;\n rawPath.centerY = (yMax + yMin) / 2;\n rawPath.left = xMin;\n rawPath.width = xMax - xMin;\n rawPath.top = yMin;\n rawPath.height = yMax - yMin;\n return rawPath.size = (xMax - xMin) * (yMax - yMin);\n},\n _sortByComplexity = function _sortByComplexity(a, b) {\n return b.length - a.length;\n},\n _sortBySize = function _sortBySize(a, b) {\n var sizeA = a.size || _getSize(a),\n sizeB = b.size || _getSize(b);\n\n return Math.abs(sizeB - sizeA) < (sizeA + sizeB) / 20 ? b.centerX - a.centerX || b.centerY - a.centerY : sizeB - sizeA; //if the size is within 10% of each other, prioritize position from left to right, then top to bottom.\n},\n _offsetSegment = function _offsetSegment(segment, shapeIndex) {\n var a = segment.slice(0),\n l = segment.length,\n wrap = l - 2,\n i,\n index;\n shapeIndex = shapeIndex | 0;\n\n for (i = 0; i < l; i++) {\n index = (i + shapeIndex) % wrap;\n segment[i++] = a[index];\n segment[i] = a[index + 1];\n }\n},\n _getTotalMovement = function _getTotalMovement(sb, eb, shapeIndex, offsetX, offsetY) {\n var l = sb.length,\n d = 0,\n wrap = l - 2,\n index,\n i,\n x,\n y;\n shapeIndex *= 6;\n\n for (i = 0; i < l; i += 6) {\n index = (i + shapeIndex) % wrap;\n y = sb[index] - (eb[i] - offsetX);\n x = sb[index + 1] - (eb[i + 1] - offsetY);\n d += _sqrt(x * x + y * y);\n }\n\n return d;\n},\n _getClosestShapeIndex = function _getClosestShapeIndex(sb, eb, checkReverse) {\n //finds the index in a closed cubic bezier array that's closest to the angle provided (angle measured from the center or average x/y).\n var l = sb.length,\n sCenter = _getAverageXY(sb),\n //when comparing distances, adjust the coordinates as if the shapes are centered with each other.\n eCenter = _getAverageXY(eb),\n offsetX = eCenter[0] - sCenter[0],\n offsetY = eCenter[1] - sCenter[1],\n min = _getTotalMovement(sb, eb, 0, offsetX, offsetY),\n minIndex = 0,\n copy,\n d,\n i;\n\n for (i = 6; i < l; i += 6) {\n d = _getTotalMovement(sb, eb, i / 6, offsetX, offsetY);\n\n if (d < min) {\n min = d;\n minIndex = i;\n }\n }\n\n if (checkReverse) {\n copy = sb.slice(0);\n reverseSegment(copy);\n\n for (i = 6; i < l; i += 6) {\n d = _getTotalMovement(copy, eb, i / 6, offsetX, offsetY);\n\n if (d < min) {\n min = d;\n minIndex = -i;\n }\n }\n }\n\n return minIndex / 6;\n},\n _getClosestAnchor = function _getClosestAnchor(rawPath, x, y) {\n //finds the x/y of the anchor that's closest to the provided x/y coordinate (returns an array, like [x, y]). The bezier should be the top-level type that contains an array for each segment.\n var j = rawPath.length,\n closestDistance = _bigNum,\n closestX = 0,\n closestY = 0,\n segment,\n dx,\n dy,\n d,\n i,\n l;\n\n while (--j > -1) {\n segment = rawPath[j];\n l = segment.length;\n\n for (i = 0; i < l; i += 6) {\n dx = segment[i] - x;\n dy = segment[i + 1] - y;\n d = _sqrt(dx * dx + dy * dy);\n\n if (d < closestDistance) {\n closestDistance = d;\n closestX = segment[i];\n closestY = segment[i + 1];\n }\n }\n }\n\n return [closestX, closestY];\n},\n _getClosestSegment = function _getClosestSegment(bezier, pool, startIndex, sortRatio, offsetX, offsetY) {\n //matches the bezier to the closest one in a pool (array) of beziers, assuming they are in order of size and we shouldn't drop more than 20% of the size, otherwise prioritizing location (total distance to the center). Extracts the segment out of the pool array and returns it.\n var l = pool.length,\n index = 0,\n minSize = Math.min(bezier.size || _getSize(bezier), pool[startIndex].size || _getSize(pool[startIndex])) * sortRatio,\n //limit things based on a percentage of the size of either the bezier or the next element in the array, whichever is smaller.\n min = _bigNum,\n cx = bezier.centerX + offsetX,\n cy = bezier.centerY + offsetY,\n size,\n i,\n dx,\n dy,\n d;\n\n for (i = startIndex; i < l; i++) {\n size = pool[i].size || _getSize(pool[i]);\n\n if (size < minSize) {\n break;\n }\n\n dx = pool[i].centerX - cx;\n dy = pool[i].centerY - cy;\n d = _sqrt(dx * dx + dy * dy);\n\n if (d < min) {\n index = i;\n min = d;\n }\n }\n\n d = pool[index];\n pool.splice(index, 1);\n return d;\n},\n _subdivideSegmentQty = function _subdivideSegmentQty(segment, quantity) {\n var tally = 0,\n max = 0.999999,\n l = segment.length,\n newPointsPerSegment = quantity / ((l - 2) / 6),\n ax,\n ay,\n cp1x,\n cp1y,\n cp2x,\n cp2y,\n bx,\n by,\n x1,\n y1,\n x2,\n y2,\n i,\n t;\n\n for (i = 2; i < l; i += 6) {\n tally += newPointsPerSegment;\n\n while (tally > max) {\n //compare with 0.99999 instead of 1 in order to prevent rounding errors\n ax = segment[i - 2];\n ay = segment[i - 1];\n cp1x = segment[i];\n cp1y = segment[i + 1];\n cp2x = segment[i + 2];\n cp2y = segment[i + 3];\n bx = segment[i + 4];\n by = segment[i + 5];\n t = 1 / ((Math.floor(tally) || 1) + 1); //progress along the bezier (value between 0 and 1)\n\n x1 = ax + (cp1x - ax) * t;\n x2 = cp1x + (cp2x - cp1x) * t;\n x1 += (x2 - x1) * t;\n x2 += (cp2x + (bx - cp2x) * t - x2) * t;\n y1 = ay + (cp1y - ay) * t;\n y2 = cp1y + (cp2y - cp1y) * t;\n y1 += (y2 - y1) * t;\n y2 += (cp2y + (by - cp2y) * t - y2) * t;\n segment.splice(i, 4, ax + (cp1x - ax) * t, //first control point\n ay + (cp1y - ay) * t, x1, //second control point\n y1, x1 + (x2 - x1) * t, //new fabricated anchor on line\n y1 + (y2 - y1) * t, x2, //third control point\n y2, cp2x + (bx - cp2x) * t, //fourth control point\n cp2y + (by - cp2y) * t);\n i += 6;\n l += 6;\n tally--;\n }\n }\n\n return segment;\n},\n _equalizeSegmentQuantity = function _equalizeSegmentQuantity(start, end, shapeIndex, map, fillSafe) {\n //returns an array of shape indexes, 1 for each segment.\n var dif = end.length - start.length,\n longer = dif > 0 ? end : start,\n shorter = dif > 0 ? start : end,\n added = 0,\n sortMethod = map === \"complexity\" ? _sortByComplexity : _sortBySize,\n sortRatio = map === \"position\" ? 0 : typeof map === \"number\" ? map : 0.8,\n i = shorter.length,\n shapeIndices = typeof shapeIndex === \"object\" && shapeIndex.push ? shapeIndex.slice(0) : [shapeIndex],\n reverse = shapeIndices[0] === \"reverse\" || shapeIndices[0] < 0,\n log = shapeIndex === \"log\",\n eb,\n sb,\n b,\n x,\n y,\n offsetX,\n offsetY;\n\n if (!shorter[0]) {\n return;\n }\n\n if (longer.length > 1) {\n start.sort(sortMethod);\n end.sort(sortMethod);\n offsetX = longer.size || _getTotalSize(longer); //ensures centerX and centerY are defined (used below).\n\n offsetX = shorter.size || _getTotalSize(shorter);\n offsetX = longer.centerX - shorter.centerX;\n offsetY = longer.centerY - shorter.centerY;\n\n if (sortMethod === _sortBySize) {\n for (i = 0; i < shorter.length; i++) {\n longer.splice(i, 0, _getClosestSegment(shorter[i], longer, i, sortRatio, offsetX, offsetY));\n }\n }\n }\n\n if (dif) {\n if (dif < 0) {\n dif = -dif;\n }\n\n if (longer[0].length > shorter[0].length) {\n //since we use shorter[0] as the one to map the origination point of any brand new fabricated segments, do any subdividing first so that there are more points to choose from (if necessary)\n _subdivideSegmentQty(shorter[0], (longer[0].length - shorter[0].length) / 6 | 0);\n }\n\n i = shorter.length;\n\n while (added < dif) {\n x = longer[i].size || _getSize(longer[i]); //just to ensure centerX and centerY are calculated which we use on the next line.\n\n b = _getClosestAnchor(shorter, longer[i].centerX, longer[i].centerY);\n x = b[0];\n y = b[1];\n shorter[i++] = [x, y, x, y, x, y, x, y];\n shorter.totalPoints += 8;\n added++;\n }\n }\n\n for (i = 0; i < start.length; i++) {\n eb = end[i];\n sb = start[i];\n dif = eb.length - sb.length;\n\n if (dif < 0) {\n _subdivideSegmentQty(eb, -dif / 6 | 0);\n } else if (dif > 0) {\n _subdivideSegmentQty(sb, dif / 6 | 0);\n }\n\n if (reverse && fillSafe !== false && !sb.reversed) {\n reverseSegment(sb);\n }\n\n shapeIndex = shapeIndices[i] || shapeIndices[i] === 0 ? shapeIndices[i] : \"auto\";\n\n if (shapeIndex) {\n //if start shape is closed, find the closest point to the start/end, and re-organize the bezier points accordingly so that the shape morphs in a more intuitive way.\n if (sb.closed || Math.abs(sb[0] - sb[sb.length - 2]) < 0.5 && Math.abs(sb[1] - sb[sb.length - 1]) < 0.5) {\n if (shapeIndex === \"auto\" || shapeIndex === \"log\") {\n shapeIndices[i] = shapeIndex = _getClosestShapeIndex(sb, eb, !i || fillSafe === false);\n\n if (shapeIndex < 0) {\n reverse = true;\n reverseSegment(sb);\n shapeIndex = -shapeIndex;\n }\n\n _offsetSegment(sb, shapeIndex * 6);\n } else if (shapeIndex !== \"reverse\") {\n if (i && shapeIndex < 0) {\n //only happens if an array is passed as shapeIndex and a negative value is defined for an index beyond 0. Very rare, but helpful sometimes.\n reverseSegment(sb);\n }\n\n _offsetSegment(sb, (shapeIndex < 0 ? -shapeIndex : shapeIndex) * 6);\n } //otherwise, if it's not a closed shape, consider reversing it if that would make the overall travel less\n\n } else if (!reverse && (shapeIndex === \"auto\" && Math.abs(eb[0] - sb[0]) + Math.abs(eb[1] - sb[1]) + Math.abs(eb[eb.length - 2] - sb[sb.length - 2]) + Math.abs(eb[eb.length - 1] - sb[sb.length - 1]) > Math.abs(eb[0] - sb[sb.length - 2]) + Math.abs(eb[1] - sb[sb.length - 1]) + Math.abs(eb[eb.length - 2] - sb[0]) + Math.abs(eb[eb.length - 1] - sb[1]) || shapeIndex % 2)) {\n reverseSegment(sb);\n shapeIndices[i] = -1;\n reverse = true;\n } else if (shapeIndex === \"auto\") {\n shapeIndices[i] = 0;\n } else if (shapeIndex === \"reverse\") {\n shapeIndices[i] = -1;\n }\n\n if (sb.closed !== eb.closed) {\n //if one is closed and one isn't, don't close either one otherwise the tweening will look weird (but remember, the beginning and final states will honor the actual values, so this only affects the inbetween state)\n sb.closed = eb.closed = false;\n }\n }\n }\n\n if (log) {\n _log(\"shapeIndex:[\" + shapeIndices.join(\",\") + \"]\");\n }\n\n start.shapeIndex = shapeIndices;\n return shapeIndices;\n},\n _pathFilter = function _pathFilter(a, shapeIndex, map, precompile, fillSafe) {\n var start = stringToRawPath(a[0]),\n end = stringToRawPath(a[1]);\n\n if (!_equalizeSegmentQuantity(start, end, shapeIndex || shapeIndex === 0 ? shapeIndex : \"auto\", map, fillSafe)) {\n return; //malformed path data or null target\n }\n\n a[0] = rawPathToString(start);\n a[1] = rawPathToString(end);\n\n if (precompile === \"log\" || precompile === true) {\n _log('precompile:[\"' + a[0] + '\",\"' + a[1] + '\"]');\n }\n},\n _offsetPoints = function _offsetPoints(text, offset) {\n if (!offset) {\n return text;\n }\n\n var a = text.match(_numExp) || [],\n l = a.length,\n s = \"\",\n inc,\n i,\n j;\n\n if (offset === \"reverse\") {\n i = l - 1;\n inc = -2;\n } else {\n i = ((parseInt(offset, 10) || 0) * 2 + 1 + l * 100) % l;\n inc = 2;\n }\n\n for (j = 0; j < l; j += 2) {\n s += a[i - 1] + \",\" + a[i] + \" \";\n i = (i + inc) % l;\n }\n\n return s;\n},\n //adds a certain number of points while maintaining the polygon/polyline shape (so that the start/end values can have a matching quantity of points to animate). Returns the revised string.\n_equalizePointQuantity = function _equalizePointQuantity(a, quantity) {\n var tally = 0,\n x = parseFloat(a[0]),\n y = parseFloat(a[1]),\n s = x + \",\" + y + \" \",\n max = 0.999999,\n newPointsPerSegment,\n i,\n l,\n j,\n factor,\n nextX,\n nextY;\n l = a.length;\n newPointsPerSegment = quantity * 0.5 / (l * 0.5 - 1);\n\n for (i = 0; i < l - 2; i += 2) {\n tally += newPointsPerSegment;\n nextX = parseFloat(a[i + 2]);\n nextY = parseFloat(a[i + 3]);\n\n if (tally > max) {\n //compare with 0.99999 instead of 1 in order to prevent rounding errors\n factor = 1 / (Math.floor(tally) + 1);\n j = 1;\n\n while (tally > max) {\n s += (x + (nextX - x) * factor * j).toFixed(2) + \",\" + (y + (nextY - y) * factor * j).toFixed(2) + \" \";\n tally--;\n j++;\n }\n }\n\n s += nextX + \",\" + nextY + \" \";\n x = nextX;\n y = nextY;\n }\n\n return s;\n},\n _pointsFilter = function _pointsFilter(a) {\n var startNums = a[0].match(_numExp) || [],\n endNums = a[1].match(_numExp) || [],\n dif = endNums.length - startNums.length;\n\n if (dif > 0) {\n a[0] = _equalizePointQuantity(startNums, dif);\n } else {\n a[1] = _equalizePointQuantity(endNums, -dif);\n }\n},\n _buildPointsFilter = function _buildPointsFilter(shapeIndex) {\n return !isNaN(shapeIndex) ? function (a) {\n _pointsFilter(a);\n\n a[1] = _offsetPoints(a[1], parseInt(shapeIndex, 10));\n } : _pointsFilter;\n},\n _parseShape = function _parseShape(shape, forcePath, target) {\n var isString = typeof shape === \"string\",\n e,\n type;\n\n if (!isString || _selectorExp.test(shape) || (shape.match(_numExp) || []).length < 3) {\n e = _toArray(shape)[0];\n\n if (e) {\n type = (e.nodeName + \"\").toUpperCase();\n\n if (forcePath && type !== \"PATH\") {\n //if we were passed an element (or selector text for an element) that isn't a path, convert it.\n e = _convertToPath(e, false);\n type = \"PATH\";\n }\n\n shape = e.getAttribute(type === \"PATH\" ? \"d\" : \"points\") || \"\";\n\n if (e === target) {\n //if the shape matches the target element, the user wants to revert to the original which should have been stored in the data-original attribute\n shape = e.getAttributeNS(null, \"data-original\") || shape;\n }\n } else {\n _log(\"WARNING: invalid morph to: \" + shape);\n\n shape = false;\n }\n }\n\n return shape;\n},\n //adds an \"isSmooth\" array to each segment and populates it with a boolean value indicating whether or not it's smooth (the control points have basically the same slope). For any smooth control points, it converts the coordinates into angle (x, in radians) and length (y) and puts them into the same index value in a smoothData array.\n_populateSmoothData = function _populateSmoothData(rawPath, tolerance) {\n var j = rawPath.length,\n limit = 0.2 * (tolerance || 1),\n smooth,\n segment,\n x,\n y,\n x2,\n y2,\n i,\n l,\n a,\n a2,\n isSmooth,\n smoothData;\n\n while (--j > -1) {\n segment = rawPath[j];\n isSmooth = segment.isSmooth = segment.isSmooth || [0, 0, 0, 0];\n smoothData = segment.smoothData = segment.smoothData || [0, 0, 0, 0];\n isSmooth.length = 4;\n l = segment.length - 2;\n\n for (i = 6; i < l; i += 6) {\n x = segment[i] - segment[i - 2];\n y = segment[i + 1] - segment[i - 1];\n x2 = segment[i + 2] - segment[i];\n y2 = segment[i + 3] - segment[i + 1];\n a = _atan2(y, x);\n a2 = _atan2(y2, x2);\n smooth = Math.abs(a - a2) < limit;\n\n if (smooth) {\n smoothData[i - 2] = a;\n smoothData[i + 2] = a2;\n smoothData[i - 1] = _sqrt(x * x + y * y);\n smoothData[i + 3] = _sqrt(x2 * x2 + y2 * y2);\n }\n\n isSmooth.push(smooth, smooth, 0, 0, smooth, smooth);\n } //if the first and last points are identical, check to see if there's a smooth transition. We must handle this a bit differently due to their positions in the array.\n\n\n if (segment[l] === segment[0] && segment[l + 1] === segment[1]) {\n x = segment[0] - segment[l - 2];\n y = segment[1] - segment[l - 1];\n x2 = segment[2] - segment[0];\n y2 = segment[3] - segment[1];\n a = _atan2(y, x);\n a2 = _atan2(y2, x2);\n\n if (Math.abs(a - a2) < limit) {\n smoothData[l - 2] = a;\n smoothData[2] = a2;\n smoothData[l - 1] = _sqrt(x * x + y * y);\n smoothData[3] = _sqrt(x2 * x2 + y2 * y2);\n isSmooth[l - 2] = isSmooth[l - 1] = true; //don't change indexes 2 and 3 because we'll trigger everything from the END, and this will optimize file size a bit.\n }\n }\n }\n\n return rawPath;\n},\n _parseOriginFactors = function _parseOriginFactors(v) {\n var a = v.trim().split(\" \"),\n x = ~v.indexOf(\"left\") ? 0 : ~v.indexOf(\"right\") ? 100 : isNaN(parseFloat(a[0])) ? 50 : parseFloat(a[0]),\n y = ~v.indexOf(\"top\") ? 0 : ~v.indexOf(\"bottom\") ? 100 : isNaN(parseFloat(a[1])) ? 50 : parseFloat(a[1]);\n return {\n x: x / 100,\n y: y / 100\n };\n},\n _shortAngle = function _shortAngle(dif) {\n return dif !== dif % _PI ? dif + (dif < 0 ? _2PI : -_2PI) : dif;\n},\n _morphMessage = \"Use MorphSVGPlugin.convertToPath() to convert to a path before morphing.\",\n _tweenRotation = function _tweenRotation(start, end, i, linkedPT) {\n var so = this._origin,\n //starting origin\n eo = this._eOrigin,\n //ending origin\n dx = start[i] - so.x,\n dy = start[i + 1] - so.y,\n d = _sqrt(dx * dx + dy * dy),\n //length from starting origin to starting point\n sa = _atan2(dy, dx),\n angleDif,\n _short;\n\n dx = end[i] - eo.x;\n dy = end[i + 1] - eo.y;\n angleDif = _atan2(dy, dx) - sa;\n _short = _shortAngle(angleDif); //in the case of control points, we ALWAYS link them to their anchor so that they don't get torn apart and rotate the opposite direction. If it's not a control point, we look at the most recently linked point as long as they're within a certain rotational range of each other.\n\n if (!linkedPT && _lastLinkedAnchor && Math.abs(_short + _lastLinkedAnchor.ca) < _angleMin) {\n linkedPT = _lastLinkedAnchor;\n }\n\n return this._anchorPT = _lastLinkedAnchor = {\n _next: this._anchorPT,\n t: start,\n sa: sa,\n //starting angle\n ca: linkedPT && _short * linkedPT.ca < 0 && Math.abs(_short) > _angleMax ? angleDif : _short,\n //change in angle\n sl: d,\n //starting length\n cl: _sqrt(dx * dx + dy * dy) - d,\n //change in length\n i: i\n };\n},\n _initCore = function _initCore(required) {\n gsap = _getGSAP();\n PluginClass = PluginClass || gsap && gsap.plugins.morphSVG;\n\n if (gsap && PluginClass) {\n _toArray = gsap.utils.toArray;\n _doc = document;\n PluginClass.prototype._tweenRotation = _tweenRotation;\n _coreInitted = 1;\n } else if (required) {\n _log(\"Please gsap.registerPlugin(MorphSVGPlugin)\");\n }\n};\n\nexport var MorphSVGPlugin = {\n version: \"3.5.1\",\n name: \"morphSVG\",\n rawVars: 1,\n // otherwise \"render\" would be interpreted as a function-based value.\n register: function register(core, Plugin) {\n gsap = core;\n PluginClass = Plugin;\n\n _initCore();\n },\n init: function init(target, value, tween, index, targets) {\n _coreInitted || _initCore(1);\n\n if (!value) {\n _log(\"invalid shape\");\n\n return false;\n }\n\n _isFunction(value) && (value = value.call(tween, index, target, targets));\n var type, p, pt, shape, isPoly, shapeIndex, map, startSmooth, endSmooth, start, end, i, j, l, startSeg, endSeg, precompiled, sData, eData, originFactors, useRotation, offset;\n\n if (typeof value === \"string\" || value.getBBox || value[0]) {\n value = {\n shape: value\n };\n } else if (typeof value === \"object\") {\n // if there are any function-based values, parse them here (and make a copy of the object so we're not modifying the original)\n type = {};\n\n for (p in value) {\n type[p] = _isFunction(value[p]) && p !== \"render\" ? value[p].call(tween, index, target, targets) : value[p];\n }\n\n value = type;\n }\n\n var cs = target.nodeType ? window.getComputedStyle(target) : {},\n fill = cs.fill + \"\",\n fillSafe = !(fill === \"none\" || (fill.match(_numExp) || [])[3] === \"0\" || cs.fillRule === \"evenodd\"),\n origins = (value.origin || \"50 50\").split(\",\");\n type = (target.nodeName + \"\").toUpperCase();\n isPoly = type === \"POLYLINE\" || type === \"POLYGON\";\n\n if (type !== \"PATH\" && !isPoly && !value.prop) {\n _log(\"Cannot morph a <\" + type + \"> element. \" + _morphMessage);\n\n return false;\n }\n\n p = type === \"PATH\" ? \"d\" : \"points\";\n\n if (!value.prop && !_isFunction(target.setAttribute)) {\n return false;\n }\n\n shape = _parseShape(value.shape || value.d || value.points || \"\", p === \"d\", target);\n\n if (isPoly && _commands.test(shape)) {\n _log(\"A <\" + type + \"> cannot accept path data. \" + _morphMessage);\n\n return false;\n }\n\n shapeIndex = value.shapeIndex || value.shapeIndex === 0 ? value.shapeIndex : \"auto\";\n map = value.map || MorphSVGPlugin.defaultMap;\n this._prop = value.prop;\n this._render = value.render || MorphSVGPlugin.defaultRender;\n this._apply = \"updateTarget\" in value ? value.updateTarget : MorphSVGPlugin.defaultUpdateTarget;\n this._rnd = Math.pow(10, isNaN(value.precision) ? 2 : +value.precision);\n this._tween = tween;\n\n if (shape) {\n this._target = target;\n precompiled = typeof value.precompile === \"object\";\n start = this._prop ? target[this._prop] : target.getAttribute(p);\n\n if (!this._prop && !target.getAttributeNS(null, \"data-original\")) {\n target.setAttributeNS(null, \"data-original\", start); //record the original state in a data-original attribute so that we can revert to it later.\n }\n\n if (p === \"d\" || this._prop) {\n start = stringToRawPath(precompiled ? value.precompile[0] : start);\n end = stringToRawPath(precompiled ? value.precompile[1] : shape);\n\n if (!precompiled && !_equalizeSegmentQuantity(start, end, shapeIndex, map, fillSafe)) {\n return false; //malformed path data or null target\n }\n\n if (value.precompile === \"log\" || value.precompile === true) {\n _log('precompile:[\"' + rawPathToString(start) + '\",\"' + rawPathToString(end) + '\"]');\n }\n\n useRotation = (value.type || MorphSVGPlugin.defaultType) !== \"linear\";\n\n if (useRotation) {\n start = _populateSmoothData(start, value.smoothTolerance);\n end = _populateSmoothData(end, value.smoothTolerance);\n\n if (!start.size) {\n _getTotalSize(start); //adds top/left/width/height values\n\n }\n\n if (!end.size) {\n _getTotalSize(end);\n }\n\n originFactors = _parseOriginFactors(origins[0]);\n this._origin = start.origin = {\n x: start.left + originFactors.x * start.width,\n y: start.top + originFactors.y * start.height\n };\n\n if (origins[1]) {\n originFactors = _parseOriginFactors(origins[1]);\n }\n\n this._eOrigin = {\n x: end.left + originFactors.x * end.width,\n y: end.top + originFactors.y * end.height\n };\n }\n\n this._rawPath = target._gsRawPath = start;\n j = start.length;\n\n while (--j > -1) {\n startSeg = start[j];\n endSeg = end[j];\n startSmooth = startSeg.isSmooth || [];\n endSmooth = endSeg.isSmooth || [];\n l = startSeg.length;\n _lastLinkedAnchor = 0; //reset; we use _lastLinkedAnchor in the _tweenRotation() method to help make sure that close points don't get ripped apart and rotate opposite directions. Typically we want to go the shortest direction, but if the previous anchor is going a different direction, we override this logic (within certain thresholds)\n\n for (i = 0; i < l; i += 2) {\n if (endSeg[i] !== startSeg[i] || endSeg[i + 1] !== startSeg[i + 1]) {\n if (useRotation) {\n if (startSmooth[i] && endSmooth[i]) {\n //if BOTH starting and ending values are smooth (meaning control points have basically the same slope), interpolate the rotation and length instead of the coordinates (this is what makes things smooth).\n sData = startSeg.smoothData;\n eData = endSeg.smoothData;\n offset = i + (i === l - 4 ? 7 - l : 5); //helps us accommodate wrapping (like if the end and start anchors are identical and the control points are smooth).\n\n this._controlPT = {\n _next: this._controlPT,\n i: i,\n j: j,\n l1s: sData[i + 1],\n l1c: eData[i + 1] - sData[i + 1],\n l2s: sData[offset],\n l2c: eData[offset] - sData[offset]\n };\n pt = this._tweenRotation(startSeg, endSeg, i + 2);\n\n this._tweenRotation(startSeg, endSeg, i, pt);\n\n this._tweenRotation(startSeg, endSeg, offset - 1, pt);\n\n i += 4;\n } else {\n this._tweenRotation(startSeg, endSeg, i);\n }\n } else {\n pt = this.add(startSeg, i, startSeg[i], endSeg[i]);\n pt = this.add(startSeg, i + 1, startSeg[i + 1], endSeg[i + 1]) || pt;\n }\n }\n }\n }\n } else {\n pt = this.add(target, \"setAttribute\", target.getAttribute(p) + \"\", shape + \"\", index, targets, 0, _buildPointsFilter(shapeIndex), p);\n }\n\n if (useRotation) {\n this.add(this._origin, \"x\", this._origin.x, this._eOrigin.x);\n pt = this.add(this._origin, \"y\", this._origin.y, this._eOrigin.y);\n }\n\n if (pt) {\n this._props.push(\"morphSVG\");\n\n pt.end = shape;\n pt.endProp = p;\n }\n }\n\n return _bonusValidated;\n },\n render: function render(ratio, data) {\n var rawPath = data._rawPath,\n controlPT = data._controlPT,\n anchorPT = data._anchorPT,\n rnd = data._rnd,\n target = data._target,\n pt = data._pt,\n s,\n space,\n easeInOut,\n segment,\n l,\n angle,\n i,\n j,\n x,\n y,\n sin,\n cos,\n offset;\n\n while (pt) {\n pt.r(ratio, pt.d);\n pt = pt._next;\n }\n\n if (ratio === 1 && data._apply) {\n pt = data._pt;\n\n while (pt) {\n if (pt.end) {\n if (data._prop) {\n target[data._prop] = pt.end;\n } else {\n target.setAttribute(pt.endProp, pt.end); //make sure the end value is exactly as specified (in case we had to add fabricated points during the tween)\n }\n }\n\n pt = pt._next;\n }\n } else if (rawPath) {\n //rotationally position the anchors\n while (anchorPT) {\n angle = anchorPT.sa + ratio * anchorPT.ca;\n l = anchorPT.sl + ratio * anchorPT.cl; //length\n\n anchorPT.t[anchorPT.i] = data._origin.x + _cos(angle) * l;\n anchorPT.t[anchorPT.i + 1] = data._origin.y + _sin(angle) * l;\n anchorPT = anchorPT._next;\n } //smooth out the control points\n\n\n easeInOut = ratio < 0.5 ? 2 * ratio * ratio : (4 - 2 * ratio) * ratio - 1;\n\n while (controlPT) {\n i = controlPT.i;\n segment = rawPath[controlPT.j];\n offset = i + (i === segment.length - 4 ? 7 - segment.length : 5); //accommodates wrapping around of smooth points, like if the start and end anchors are on top of each other and their handles are smooth.\n\n angle = _atan2(segment[offset] - segment[i + 1], segment[offset - 1] - segment[i]); //average the angles\n\n sin = _sin(angle);\n cos = _cos(angle);\n x = segment[i + 2];\n y = segment[i + 3];\n l = controlPT.l1s + easeInOut * controlPT.l1c; //length\n\n segment[i] = x - cos * l;\n segment[i + 1] = y - sin * l;\n l = controlPT.l2s + easeInOut * controlPT.l2c;\n segment[offset - 1] = x + cos * l;\n segment[offset] = y + sin * l;\n controlPT = controlPT._next;\n }\n\n target._gsRawPath = rawPath;\n\n if (data._apply) {\n s = \"\";\n space = \" \";\n\n for (j = 0; j < rawPath.length; j++) {\n segment = rawPath[j];\n l = segment.length;\n s += \"M\" + (segment[0] * rnd | 0) / rnd + space + (segment[1] * rnd | 0) / rnd + \" C\";\n\n for (i = 2; i < l; i++) {\n //this is actually faster than just doing a join() on the array, possibly because the numbers have so many decimal places\n s += (segment[i] * rnd | 0) / rnd + space;\n }\n }\n\n if (data._prop) {\n target[data._prop] = s;\n } else {\n target.setAttribute(\"d\", s);\n }\n }\n }\n\n data._render && rawPath && data._render.call(data._tween, rawPath, target);\n },\n kill: function kill(property) {\n this._pt = this._rawPath = 0;\n },\n getRawPath: getRawPath,\n stringToRawPath: stringToRawPath,\n rawPathToString: rawPathToString,\n pathFilter: _pathFilter,\n pointsFilter: _pointsFilter,\n getTotalSize: _getTotalSize,\n equalizeSegmentQuantity: _equalizeSegmentQuantity,\n convertToPath: function convertToPath(targets, swap) {\n return _toArray(targets).map(function (target) {\n return _convertToPath(target, swap !== false);\n });\n },\n defaultType: \"linear\",\n defaultUpdateTarget: true,\n defaultMap: \"size\"\n};\n_getGSAP() && gsap.registerPlugin(MorphSVGPlugin);\nexport { MorphSVGPlugin as default };","/*!\n * DrawSVGPlugin 3.5.1\n * https://greensock.com\n *\n * @license Copyright 2008-2020, GreenSock. All rights reserved.\n * Subject to the terms at https://greensock.com/standard-license or for\n * Club GreenSock members, the agreement issued with that membership.\n * @author: Jack Doyle, jack@greensock.com\n*/\n\n/* eslint-disable */\nvar gsap,\n _toArray,\n _doc,\n _win,\n _isEdge,\n _coreInitted,\n _windowExists = function _windowExists() {\n return typeof window !== \"undefined\";\n},\n _getGSAP = function _getGSAP() {\n return gsap || _windowExists() && (gsap = window.gsap) && gsap.registerPlugin && gsap;\n},\n _numExp = /[-+=\\.]*\\d+[\\.e\\-\\+]*\\d*[e\\-\\+]*\\d*/gi,\n //finds any numbers, including ones that start with += or -=, negative numbers, and ones in scientific notation like 1e-8.\n_types = {\n rect: [\"width\", \"height\"],\n circle: [\"r\", \"r\"],\n ellipse: [\"rx\", \"ry\"],\n line: [\"x2\", \"y2\"]\n},\n _round = function _round(value) {\n return Math.round(value * 10000) / 10000;\n},\n _parseNum = function _parseNum(value) {\n return parseFloat(value || 0);\n},\n _getAttributeAsNumber = function _getAttributeAsNumber(target, attr) {\n return _parseNum(target.getAttribute(attr));\n},\n _sqrt = Math.sqrt,\n _getDistance = function _getDistance(x1, y1, x2, y2, scaleX, scaleY) {\n return _sqrt(Math.pow((_parseNum(x2) - _parseNum(x1)) * scaleX, 2) + Math.pow((_parseNum(y2) - _parseNum(y1)) * scaleY, 2));\n},\n _warn = function _warn(message) {\n return console.warn(message);\n},\n _hasNonScalingStroke = function _hasNonScalingStroke(target) {\n return target.getAttribute(\"vector-effect\") === \"non-scaling-stroke\";\n},\n _bonusValidated = 1,\n //DrawSVGPlugin\n//accepts values like \"100%\" or \"20% 80%\" or \"20 50\" and parses it into an absolute start and end position on the line/stroke based on its length. Returns an an array with the start and end values, like [0, 243]\n_parse = function _parse(value, length, defaultStart) {\n var i = value.indexOf(\" \"),\n s,\n e;\n\n if (i < 0) {\n s = defaultStart !== undefined ? defaultStart + \"\" : value;\n e = value;\n } else {\n s = value.substr(0, i);\n e = value.substr(i + 1);\n }\n\n s = ~s.indexOf(\"%\") ? _parseNum(s) / 100 * length : _parseNum(s);\n e = ~e.indexOf(\"%\") ? _parseNum(e) / 100 * length : _parseNum(e);\n return s > e ? [e, s] : [s, e];\n},\n _getLength = function _getLength(target) {\n target = _toArray(target)[0];\n\n if (!target) {\n return 0;\n }\n\n var type = target.tagName.toLowerCase(),\n style = target.style,\n scaleX = 1,\n scaleY = 1,\n length,\n bbox,\n points,\n prevPoint,\n i,\n rx,\n ry;\n\n if (_hasNonScalingStroke(target)) {\n //non-scaling-stroke basically scales the shape and then strokes it at the screen-level (after transforms), thus we need to adjust the length accordingly.\n scaleY = target.getScreenCTM();\n scaleX = _sqrt(scaleY.a * scaleY.a + scaleY.b * scaleY.b);\n scaleY = _sqrt(scaleY.d * scaleY.d + scaleY.c * scaleY.c);\n }\n\n try {\n //IE bug: calling .getTotalLength() locks the repaint area of the stroke to whatever its current dimensions are on that frame/tick. To work around that, we must call getBBox() to force IE to recalculate things.\n bbox = target.getBBox(); //solely for fixing bug in IE - we don't actually use the bbox.\n } catch (e) {\n //firefox has a bug that throws an error if the element isn't visible.\n _warn(\"Some browsers won't measure invisible elements (like display:none or masks inside defs).\");\n }\n\n var _ref = bbox || {\n x: 0,\n y: 0,\n width: 0,\n height: 0\n },\n x = _ref.x,\n y = _ref.y,\n width = _ref.width,\n height = _ref.height;\n\n if ((!bbox || !width && !height) && _types[type]) {\n //if the element isn't visible, try to discern width/height using its attributes.\n width = _getAttributeAsNumber(target, _types[type][0]);\n height = _getAttributeAsNumber(target, _types[type][1]);\n\n if (type !== \"rect\" && type !== \"line\") {\n //double the radius for circles and ellipses\n width *= 2;\n height *= 2;\n }\n\n if (type === \"line\") {\n x = _getAttributeAsNumber(target, \"x1\");\n y = _getAttributeAsNumber(target, \"y1\");\n width = Math.abs(width - x);\n height = Math.abs(height - y);\n }\n }\n\n if (type === \"path\") {\n prevPoint = style.strokeDasharray;\n style.strokeDasharray = \"none\";\n length = target.getTotalLength() || 0;\n\n if (scaleX !== scaleY) {\n _warn(\"Warning: length cannot be measured when vector-effect is non-scaling-stroke and the element isn't proportionally scaled.\");\n }\n\n length *= (scaleX + scaleY) / 2;\n style.strokeDasharray = prevPoint;\n } else if (type === \"rect\") {\n length = width * 2 * scaleX + height * 2 * scaleY;\n } else if (type === \"line\") {\n length = _getDistance(x, y, x + width, y + height, scaleX, scaleY);\n } else if (type === \"polyline\" || type === \"polygon\") {\n points = target.getAttribute(\"points\").match(_numExp) || [];\n\n if (type === \"polygon\") {\n points.push(points[0], points[1]);\n }\n\n length = 0;\n\n for (i = 2; i < points.length; i += 2) {\n length += _getDistance(points[i - 2], points[i - 1], points[i], points[i + 1], scaleX, scaleY) || 0;\n }\n } else if (type === \"circle\" || type === \"ellipse\") {\n rx = width / 2 * scaleX;\n ry = height / 2 * scaleY;\n length = Math.PI * (3 * (rx + ry) - _sqrt((3 * rx + ry) * (rx + 3 * ry)));\n }\n\n return length || 0;\n},\n _getPosition = function _getPosition(target, length) {\n target = _toArray(target)[0];\n\n if (!target) {\n return [0, 0];\n }\n\n if (!length) {\n length = _getLength(target) + 1;\n }\n\n var cs = _win.getComputedStyle(target),\n dash = cs.strokeDasharray || \"\",\n offset = _parseNum(cs.strokeDashoffset),\n i = dash.indexOf(\",\");\n\n if (i < 0) {\n i = dash.indexOf(\" \");\n }\n\n dash = i < 0 ? length : _parseNum(dash.substr(0, i)) || 1e-5;\n\n if (dash > length) {\n dash = length;\n }\n\n return [Math.max(0, -offset), Math.max(0, dash - offset)];\n},\n _initCore = function _initCore() {\n if (_windowExists()) {\n _doc = document;\n _win = window;\n _coreInitted = gsap = _getGSAP();\n _toArray = gsap.utils.toArray;\n _isEdge = ((_win.navigator || {}).userAgent || \"\").indexOf(\"Edge\") !== -1; //Microsoft Edge has a bug that causes it not to redraw the path correctly if the stroke-linecap is anything other than \"butt\" (like \"round\") and it doesn't match the stroke-linejoin. A way to trigger it is to change the stroke-miterlimit, so we'll only do that if/when we have to (to maximize performance)\n }\n};\n\nexport var DrawSVGPlugin = {\n version: \"3.5.1\",\n name: \"drawSVG\",\n register: function register(core) {\n gsap = core;\n\n _initCore();\n },\n init: function init(target, value, tween, index, targets) {\n if (!target.getBBox) {\n return false;\n }\n\n _coreInitted || _initCore();\n var length = _getLength(target) + 1,\n start,\n end,\n overage,\n cs;\n this._style = target.style;\n this._target = target;\n\n if (value + \"\" === \"true\") {\n value = \"0 100%\";\n } else if (!value) {\n value = \"0 0\";\n } else if ((value + \"\").indexOf(\" \") === -1) {\n value = \"0 \" + value;\n }\n\n start = _getPosition(target, length);\n end = _parse(value, length, start[0]);\n this._length = _round(length + 10);\n\n if (start[0] === 0 && end[0] === 0) {\n overage = Math.max(0.00001, end[1] - length); //allow people to go past the end, like values of 105% because for some paths, Firefox doesn't return an accurate getTotalLength(), so it could end up coming up short.\n\n this._dash = _round(length + overage);\n this._offset = _round(length - start[1] + overage);\n this._offsetPT = this.add(this, \"_offset\", this._offset, _round(length - end[1] + overage));\n } else {\n this._dash = _round(start[1] - start[0]) || 0.000001; //some browsers render artifacts if dash is 0, so we use a very small number in that case.\n\n this._offset = _round(-start[0]);\n this._dashPT = this.add(this, \"_dash\", this._dash, _round(end[1] - end[0]) || 0.00001);\n this._offsetPT = this.add(this, \"_offset\", this._offset, _round(-end[0]));\n }\n\n if (_isEdge) {\n //to work around a bug in Microsoft Edge, animate the stroke-miterlimit by 0.0001 just to trigger the repaint (unnecessary if it's \"round\" and stroke-linejoin is also \"round\"). Imperceptible, relatively high-performance, and effective. Another option was to set the \"d\" attribute to its current value on every tick, but that seems like it'd be much less performant.\n cs = _win.getComputedStyle(target);\n\n if (cs.strokeLinecap !== cs.strokeLinejoin) {\n end = _parseNum(cs.strokeMiterlimit);\n this.add(target.style, \"strokeMiterlimit\", end, end + 0.01);\n }\n }\n\n this._live = _hasNonScalingStroke(target) || ~(value + \"\").indexOf(\"live\");\n\n this._props.push(\"drawSVG\");\n\n return _bonusValidated;\n },\n render: function render(ratio, data) {\n var pt = data._pt,\n style = data._style,\n length,\n lengthRatio,\n dash,\n offset;\n\n if (pt) {\n //when the element has vector-effect=\"non-scaling-stroke\" and the SVG is resized (like on a window resize), it actually changes the length of the stroke! So we must sense that and make the proper adjustments.\n if (data._live) {\n length = _getLength(data._target) + 11;\n\n if (length !== data._length) {\n lengthRatio = length / data._length;\n data._length = length;\n data._offsetPT.s *= lengthRatio;\n data._offsetPT.c *= lengthRatio;\n\n if (data._dashPT) {\n data._dashPT.s *= lengthRatio;\n data._dashPT.c *= lengthRatio;\n } else {\n data._dash *= lengthRatio;\n }\n }\n }\n\n while (pt) {\n pt.r(ratio, pt.d);\n pt = pt._next;\n }\n\n dash = data._dash;\n offset = data._offset;\n length = data._length;\n style.strokeDashoffset = data._offset;\n\n if (ratio === 1 || !ratio) {\n if (dash - offset < 0.001 && length - dash <= 10) {\n //works around a bug in Safari that caused strokes with rounded ends to still show initially when they shouldn't.\n style.strokeDashoffset = offset + 1;\n }\n\n style.strokeDasharray = offset < 0.001 && length - dash <= 10 ? \"none\" : offset === dash ? \"0px, 999999px\" : dash + \"px,\" + length + \"px\";\n } else {\n style.strokeDasharray = dash + \"px,\" + length + \"px\";\n }\n }\n },\n getLength: _getLength,\n getPosition: _getPosition\n};\n_getGSAP() && gsap.registerPlugin(DrawSVGPlugin);\nexport { DrawSVGPlugin as default };","\n\n\n\n\n\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./About.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./About.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./About.vue?vue&type=template&id=7df6e6c6&scoped=true&\"\nimport script from \"./About.vue?vue&type=script&lang=js&\"\nexport * from \"./About.vue?vue&type=script&lang=js&\"\nimport style0 from \"./About.vue?vue&type=style&index=0&id=7df6e6c6&prod&lang=sass&\"\nimport style1 from \"./About.vue?vue&type=style&index=1&id=7df6e6c6&prod&lang=sass&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"7df6e6c6\",\n null\n \n)\n\nexport default component.exports"],"sourceRoot":""}