text: !function(modules){function __webpack_require__(moduleId){if(installedModules[moduleId])return installedModules[moduleId].exports;var module=installedModules[moduleId]={exports:{},id:moduleId,loaded:!1};return modules[moduleId].call(module.exports,module,module.exports,__webpack_require__),module.loaded=!0,module.exports}var installedModules={};return __webpack_require__.m=modules,__webpack_require__.c=installedModules,__webpack_require__.p="",__webpack_require__(0)}([function(module,exports,__webpack_require__){var Defaults,Framer,_;_=__webpack_require__(1)._,Framer={},Framer._=_,Framer.Utils=__webpack_require__(4),Framer.Color=__webpack_require__(11).Color,Framer.Gradient=__webpack_require__(14).Gradient,Framer.Layer=__webpack_require__(15).Layer,Framer._Layer=Framer.Layer,Framer.BackgroundLayer=__webpack_require__(42).BackgroundLayer,Framer.VideoLayer=__webpack_require__(43).VideoLayer,Framer.SVGLayer=__webpack_require__(44).SVGLayer,Framer.SVGPath=__webpack_require__(47).SVGPath,Framer.SVGGroup=__webpack_require__(45).SVGGroup,Framer.TextLayer=__webpack_require__(48).TextLayer,Framer.Events=__webpack_require__(17).Events,Framer.Gestures=__webpack_require__(18).Gestures,Framer.Animation=__webpack_require__(20).Animation,Framer.AnimationGroup=__webpack_require__(49).AnimationGroup,Framer.AnimationStateGroup=__webpack_require__(49).AnimationStateGroup,Framer.Screen=__webpack_require__(5).Screen,Framer.Align=__webpack_require__(50).Align,Framer.Blending=__webpack_require__(51).Blending,Framer.print=__webpack_require__(52).print,Framer.ScrollComponent=__webpack_require__(55).ScrollComponent,Framer.PageComponent=__webpack_require__(56).PageComponent,Framer.SliderComponent=__webpack_require__(57).SliderComponent,Framer.RangeSliderComponent=__webpack_require__(58).RangeSliderComponent,Framer.DeviceComponent=__webpack_require__(59).DeviceComponent,Framer.GridComponent=__webpack_require__(60).GridComponent,Framer.FlowComponent=__webpack_require__(61).FlowComponent,Framer.CircularProgressComponent=__webpack_require__(62).CircularProgressComponent,Framer.MIDIComponent=__webpack_require__(63).MIDIComponent,Framer.DeviceView=Framer.DeviceComponent,window&&_.extend(window,Framer),Framer.Context=__webpack_require__(53).Context,Framer.Config=__webpack_require__(16).Config,Framer.EventEmitter=__webpack_require__(7).EventEmitter,Framer.BaseClass=__webpack_require__(6).BaseClass,Framer.LayerStyle=__webpack_require__(29).LayerStyle,Framer.AnimationLoop=__webpack_require__(65).AnimationLoop,Framer.LinearAnimator=__webpack_require__(22).LinearAnimator,Framer.BezierCurveAnimator=__webpack_require__(25).BezierCurveAnimator,Framer.SpringDHOAnimator=__webpack_require__(66).SpringDHOAnimator,Framer.SpringRK4Animator=__webpack_require__(27).SpringRK4Animator,Framer.LayerDraggable=__webpack_require__(33).LayerDraggable,Framer.Curves=__webpack_require__(24),window.Bezier=Framer.Curves.Bezier,window.Spring=Framer.Curves.Spring,Framer.Importer=__webpack_require__(67).Importer,Framer.Extras=__webpack_require__(68),Framer.GestureInputRecognizer=new(__webpack_require__(75).GestureInputRecognizer),Framer.Version=__webpack_require__(76),Framer.Loop=new Framer.AnimationLoop,Framer.Info={},window&&(window.Framer=Framer),Defaults=__webpack_require__(19).Defaults,Defaults.setup(),Framer.resetDefaults=Defaults.reset,Framer.DefaultContext=new Framer.Context({name:"Default"}),Framer.DefaultContext.backgroundColor="white",Framer.CurrentContext=Framer.DefaultContext,window.Canvas=new(__webpack_require__(77).Canvas),Utils.isMobile()&&Framer.Extras.MobileScrollFix.enable(),Utils.isTouch()||Framer.Extras.TouchEmulator.enable(),Utils.isFramerStudio()||Framer.Extras.ErrorDisplay.enable(),Utils.isFramerStudio()||Framer.Extras.Preloader.enable(),Utils.isFramerStudio()||Framer.Extras.Hints.enable(),Utils.domComplete(Framer.Loop.start)},function(module,exports,__webpack_require__){exports._=__webpack_require__(2),_.pluck=_.map},function(module,exports,__webpack_require__){var __WEBPACK_AMD_DEFINE_RESULT__;(function(global,module){(function(){function apply(func,thisArg,args){switch(args.length){case 0:return func.call(thisArg);case 1:return func.call(thisArg,args[0]);case 2:return func.call(thisArg,args[0],args[1]);case 3:return func.call(thisArg,args[0],args[1],args[2])}return func.apply(thisArg,args)}function arrayAggregator(array,setter,iteratee,accumulator){for(var index=-1,length=null==array?0:array.length;++index<length;){var value=array[index];setter(accumulator,value,iteratee(value),array)}return accumulator}function arrayEach(array,iteratee){for(var index=-1,length=null==array?0:array.length;++index<length&&iteratee(array[index],index,array)!==!1;);return array}function arrayEachRight(array,iteratee){for(var length=null==array?0:array.length;length--&&iteratee(array[length],length,array)!==!1;);return array}function arrayEvery(array,predicate){for(var index=-1,length=null==array?0:array.length;++index<length;)if(!predicate(array[index],index,array))return!1;return!0}function arrayFilter(array,predicate){for(var index=-1,length=null==array?0:array.length,resIndex=0,result=[];++index<length;){var value=array[index];predicate(value,index,array)&&(result[resIndex++]=value)}return result}function arrayIncludes(array,value){var length=null==array?0:array.length;return!!length&&baseIndexOf(array,value,0)>-1}function arrayIncludesWith(array,value,comparator){for(var index=-1,length=null==array?0:array.length;++index<length;)if(comparator(value,array[index]))return!0;return!1}function arrayMap(array,iteratee){for(var index=-1,length=null==array?0:array.length,result=Array(length);++index<length;)result[index]=iteratee(array[index],index,array);return result}function arrayPush(array,values){for(var index=-1,length=values.length,offset=array.length;++index<length;)array[offset+index]=values[index];return array}function arrayReduce(array,iteratee,accumulator,initAccum){var index=-1,length=null==array?0:array.length;for(initAccum&&length&&(accumulator=array[++index]);++index<length;)accumulator=iteratee(accumulator,array[index],index,array);return accumulator}function arrayReduceRight(array,iteratee,accumulator,initAccum){var length=null==array?0:array.length;for(initAccum&&length&&(accumulator=array[--length]);length--;)accumulator=iteratee(accumulator,array[length],length,array);return accumulator}function arraySome(array,predicate){for(var index=-1,length=null==array?0:array.length;++index<length;)if(predicate(array[index],index,array))return!0;return!1}function asciiToArray(string){return string.split("")}function asciiWords(string){return string.match(reAsciiWord)||[]}function baseFindKey(collection,predicate,eachFunc){var result;return eachFunc(collection,function(value,key,collection){if(predicate(value,key,collection))return result=key,!1}),result}function baseFindIndex(array,predicate,fromIndex,fromRight){for(var length=array.length,index=fromIndex+(fromRight?1:-1);fromRight?index--:++index<length;)if(predicate(array[index],index,array))return index;return-1}function baseIndexOf(array,value,fromIndex){return value===value?strictIndexOf(array,value,fromIndex):baseFindIndex(array,baseIsNaN,fromIndex)}function baseIndexOfWith(array,value,fromIndex,comparator){for(var index=fromIndex-1,length=array.length;++index<length;)if(comparator(array[index],value))return index;return-1}function baseIsNaN(value){return value!==value}function baseMean(array,iteratee){var length=null==array?0:array.length;return length?baseSum(array,iteratee)/length:NAN}function baseProperty(key){return function(object){return null==object?undefined:object[key]}}function basePropertyOf(object){return function(key){return null==object?undefined:object[key]}}function baseReduce(collection,iteratee,accumulator,initAccum,eachFunc){return eachFunc(collection,function(value,index,collection){accumulator=initAccum?(initAccum=!1,value):iteratee(accumulator,value,index,collection)}),accumulator}function baseSortBy(array,comparer){var length=array.length;for(array.sort(comparer);length--;)array[length]=array[length].value;return array}function baseSum(array,iteratee){for(var result,index=-1,length=array.length;++index<length;){var current=iteratee(array[index]);current!==undefined&&(result=result===undefined?current:result+current)}return result}function baseTimes(n,iteratee){for(var index=-1,result=Array(n);++index<n;)result[index]=iteratee(index);return result}function baseToPairs(object,props){return arrayMap(props,function(key){return[key,object[key]]})}function baseUnary(func){return function(value){return func(value)}}function baseValues(object,props){return arrayMap(props,function(key){return object[key]})}function cacheHas(cache,key){return cache.has(key)}function charsStartIndex(strSymbols,chrSymbols){for(var index=-1,length=strSymbols.length;++index<length&&baseIndexOf(chrSymbols,strSymbols[index],0)>-1;);return index}function charsEndIndex(strSymbols,chrSymbols){for(var index=strSymbols.length;index--&&baseIndexOf(chrSymbols,strSymbols[index],0)>-1;);return index}function countHolders(array,placeholder){for(var length=array.length,result=0;length--;)array[length]===placeholder&&++result;return result}function escapeStringChar(chr){return"\\"+stringEscapes[chr]}function getValue(object,key){return null==object?undefined:object[key]}function hasUnicode(string){return reHasUnicode.test(string)}function hasUnicodeWord(string){return reHasUnicodeWord.test(string)}function iteratorToArray(iterator){for(var data,result=[];!(data=iterator.next()).done;)result.push(data.value);return result}function mapToArray(map){var index=-1,result=Array(map.size);return map.forEach(function(value,key){result[++index]=[key,value]}),result}function overArg(func,transform){return function(arg){return func(transform(arg))}}function replaceHolders(array,placeholder){for(var index=-1,length=array.length,resIndex=0,result=[];++index<length;){var value=array[index];value!==placeholder&&value!==PLACEHOLDER||(array[index]=PLACEHOLDER,result[resIndex++]=index)}return result}function safeGet(object,key){return"__proto__"==key?undefined:object[key]}function setToArray(set){var index=-1,result=Array(set.size);return set.forEach(function(value){result[++index]=value}),result}function setToPairs(set){var index=-1,result=Array(set.size);return set.forEach(function(value){result[++index]=[value,value]}),result}function strictIndexOf(array,value,fromIndex){for(var index=fromIndex-1,length=array.length;++index<length;)if(array[index]===value)return index;return-1}function strictLastIndexOf(array,value,fromIndex){for(var index=fromIndex+1;index--;)if(array[index]===value)return index;return index}function stringSize(string){return hasUnicode(string)?unicodeSize(string):asciiSize(string)}function stringToArray(string){return hasUnicode(string)?unicodeToArray(string):asciiToArray(string)}function unicodeSize(string){for(var result=reUnicode.lastIndex=0;reUnicode.test(string);)++result;return result}function unicodeToArray(string){return string.match(reUnicode)||[]}function unicodeWords(string){return string.match(reUnicodeWord)||[]}var undefined,VERSION="4.17.5",LARGE_ARRAY_SIZE=200,CORE_ERROR_TEXT="Unsupported core-js use. Try https://npms.io/search?q=ponyfill.",FUNC_ERROR_TEXT="Expected a function",HASH_UNDEFINED="__lodash_hash_undefined__",MAX_MEMOIZE_SIZE=500,PLACEHOLDER="__lodash_placeholder__",CLONE_DEEP_FLAG=1,CLONE_FLAT_FLAG=2,CLONE_SYMBOLS_FLAG=4,COMPARE_PARTIAL_FLAG=1,COMPARE_UNORDERED_FLAG=2,WRAP_BIND_FLAG=1,WRAP_BIND_KEY_FLAG=2,WRAP_CURRY_BOUND_FLAG=4,WRAP_CURRY_FLAG=8,WRAP_CURRY_RIGHT_FLAG=16,WRAP_PARTIAL_FLAG=32,WRAP_PARTIAL_RIGHT_FLAG=64,WRAP_ARY_FLAG=128,WRAP_REARG_FLAG=256,WRAP_FLIP_FLAG=512,DEFAULT_TRUNC_LENGTH=30,DEFAULT_TRUNC_OMISSION="...",HOT_COUNT=800,HOT_SPAN=16,LAZY_FILTER_FLAG=1,LAZY_MAP_FLAG=2,LAZY_WHILE_FLAG=3,INFINITY=1/0,MAX_SAFE_INTEGER=9007199254740991,MAX_INTEGER=1.7976931348623157e308,NAN=NaN,MAX_ARRAY_LENGTH=4294967295,MAX_ARRAY_INDEX=MAX_ARRAY_LENGTH-1,HALF_MAX_ARRAY_LENGTH=MAX_ARRAY_LENGTH>>>1,wrapFlags=[["ary",WRAP_ARY_FLAG],["bind",WRAP_BIND_FLAG],["bindKey",WRAP_BIND_KEY_FLAG],["curry",WRAP_CURRY_FLAG],["curryRight",WRAP_CURRY_RIGHT_FLAG],["flip",WRAP_FLIP_FLAG],["partial",WRAP_PARTIAL_FLAG],["partialRight",WRAP_PARTIAL_RIGHT_FLAG],["rearg",WRAP_REARG_FLAG]],argsTag="[object Arguments]",arrayTag="[object Array]",asyncTag="[object AsyncFunction]",boolTag="[object Boolean]",dateTag="[object Date]",domExcTag="[object DOMException]",errorTag="[object Error]",funcTag="[object Function]",genTag="[object GeneratorFunction]",mapTag="[object Map]",numberTag="[object Number]",nullTag="[object Null]",objectTag="[object Object]",promiseTag="[object Promise]",proxyTag="[object Proxy]",regexpTag="[object RegExp]",setTag="[object Set]",stringTag="[object String]",symbolTag="[object Symbol]",undefinedTag="[object Undefined]",weakMapTag="[object WeakMap]",weakSetTag="[object WeakSet]",arrayBufferTag="[object ArrayBuffer]",dataViewTag="[object DataView]",float32Tag="[object Float32Array]",float64Tag="[object Float64Array]",int8Tag="[object Int8Array]",int16Tag="[object Int16Array]",int32Tag="[object Int32Array]",uint8Tag="[object Uint8Array]",uint8ClampedTag="[object Uint8ClampedArray]",uint16Tag="[object Uint16Array]",uint32Tag="[object Uint32Array]",reEmptyStringLeading=/\b__p \+= '';/g,reEmptyStringMiddle=/\b(__p \+=) '' \+/g,reEmptyStringTrailing=/(__e\(.*?\)|\b__t\)) \+\n'';/g,reEscapedHtml=/&(?:amp|lt|gt|quot|#39);/g,reUnescapedHtml=/[&<>"']/g,reHasEscapedHtml=RegExp(reEscapedHtml.source),reHasUnescapedHtml=RegExp(reUnescapedHtml.source),reEscape=/<%-([\s\S]+?)%>/g,reEvaluate=/<%([\s\S]+?)%>/g,reInterpolate=/<%=([\s\S]+?)%>/g,reIsDeepProp=/\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/,reIsPlainProp=/^\w*$/,rePropName=/[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|$))/g,reRegExpChar=/[\\^$.*+?()[\]{}|]/g,reHasRegExpChar=RegExp(reRegExpChar.source),reTrim=/^\s+|\s+$/g,reTrimStart=/^\s+/,reTrimEnd=/\s+$/,reWrapComment=/\{(?:\n\/\* \[wrapped with .+\] \*\/)?\n?/,reWrapDetails=/\{\n\/\* \[wrapped with (.+)\] \*/,reSplitDetails=/,? & /,reAsciiWord=/[^\x00-\x2f\x3a-\x40\x5b-\x60\x7b-\x7f]+/g,reEscapeChar=/\\(\\)?/g,reEsTemplate=/\$\{([^\\}]*(?:\\.[^\\}]*)*)\}/g,reFlags=/\w*$/,reIsBadHex=/^[-+]0x[0-9a-f]+$/i,reIsBinary=/^0b[01]+$/i,reIsHostCtor=/^\[object .+?Constructor\]$/,reIsOctal=/^0o[0-7]+$/i,reIsUint=/^(?:0|[1-9]\d*)$/,reLatin=/[\xc0-\xd6\xd8-\xf6\xf8-\xff\u0100-\u017f]/g,reNoMatch=/($^)/,reUnescapedString=/['\n\r\u2028\u2029\\]/g,rsAstralRange="\\ud800-\\udfff",rsComboMarksRange="\\u0300-\\u036f",reComboHalfMarksRange="\\ufe20-\\ufe2f",rsComboSymbolsRange="\\u20d0-\\u20ff",rsComboRange=rsComboMarksRange+reComboHalfMarksRange+rsComboSymbolsRange,rsDingbatRange="\\u2700-\\u27bf",rsLowerRange="a-z\\xdf-\\xf6\\xf8-\\xff",rsMathOpRange="\\xac\\xb1\\xd7\\xf7",rsNonCharRange="\\x00-\\x2f\\x3a-\\x40\\x5b-\\x60\\x7b-\\xbf",rsPunctuationRange="\\u2000-\\u206f",rsSpaceRange=" \\t\\x0b\\f\\xa0\\ufeff\\n\\r\\u2028\\u2029\\u1680\\u180e\\u2000\\u2001\\u2002\\u2003\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200a\\u202f\\u205f\\u3000",rsUpperRange="A-Z\\xc0-\\xd6\\xd8-\\xde",rsVarRange="\\ufe0e\\ufe0f",rsBreakRange=rsMathOpRange+rsNonCharRange+rsPunctuationRange+rsSpaceRange,rsApos="['’]",rsAstral="["+rsAstralRange+"]",rsBreak="["+rsBreakRange+"]",rsCombo="["+rsComboRange+"]",rsDigits="\\d+",rsDingbat="["+rsDingbatRange+"]",rsLower="["+rsLowerRange+"]",rsMisc="[^"+rsAstralRange+rsBreakRange+rsDigits+rsDingbatRange+rsLowerRange+rsUpperRange+"]",rsFitz="\\ud83c[\\udffb-\\udfff]",rsModifier="(?:"+rsCombo+"|"+rsFitz+")",rsNonAstral="[^"+rsAstralRange+"]",rsRegional="(?:\\ud83c[\\udde6-\\uddff]){2}",rsSurrPair="[\\ud800-\\udbff][\\udc00-\\udfff]",rsUpper="["+rsUpperRange+"]",rsZWJ="\\u200d",rsMiscLower="(?:"+rsLower+"|"+rsMisc+")",rsMiscUpper="(?:"+rsUpper+"|"+rsMisc+")",rsOptContrLower="(?:"+rsApos+"(?:d|ll|m|re|s|t|ve))?",rsOptContrUpper="(?:"+rsApos+"(?:D|LL|M|RE|S|T|VE))?",reOptMod=rsModifier+"?",rsOptVar="["+rsVarRange+"]?",rsOptJoin="(?:"+rsZWJ+"(?:"+[rsNonAstral,rsRegional,rsSurrPair].join("|")+")"+rsOptVar+reOptMod+")*",rsOrdLower="\\d*(?:1st|2nd|3rd|(?![123])\\dth)(?=\\b|[A-Z_])",rsOrdUpper="\\d*(?:1ST|2ND|3RD|(?![123])\\dTH)(?=\\b|[a-z_])",rsSeq=rsOptVar+reOptMod+rsOptJoin,rsEmoji="(?:"+[rsDingbat,rsRegional,rsSurrPair].join("|")+")"+rsSeq,rsSymbol="(?:"+[rsNonAstral+rsCombo+"?",rsCombo,rsRegional,rsSurrPair,rsAstral].join("|")+")",reApos=RegExp(rsApos,"g"),reComboMark=RegExp(rsCombo,"g"),reUnicode=RegExp(rsFitz+"(?="+rsFitz+")|"+rsSymbol+rsSeq,"g"),reUnicodeWord=RegExp([rsUpper+"?"+rsLower+"+"+rsOptContrLower+"(?="+[rsBreak,rsUpper,"$"].join("|")+")",rsMiscUpper+"+"+rsOptContrUpper+"(?="+[rsBreak,rsUpper+rsMiscLower,"$"].join("|")+")",rsUpper+"?"+rsMiscLower+"+"+rsOptContrLower,rsUpper+"+"+rsOptContrUpper,rsOrdUpper,rsOrdLower,rsDigits,rsEmoji].join("|"),"g"),reHasUnicode=RegExp("["+rsZWJ+rsAstralRange+rsComboRange+rsVarRange+"]"),reHasUnicodeWord=/[a-z][A-Z]|[A-Z]{2,}[a-z]|[0-9][a-zA-Z]|[a-zA-Z][0-9]|[^a-zA-Z0-9 ]/,contextProps=["Array","Buffer","DataView","Date","Error","Float32Array","Float64Array","Function","Int8Array","Int16Array","Int32Array","Map","Math","Object","Promise","RegExp","Set","String","Symbol","TypeError","Uint8Array","Uint8ClampedArray","Uint16Array","Uint32Array","WeakMap","_","clearTimeout","isFinite","parseInt","setTimeout"],templateCounter=-1,typedArrayTags={};typedArrayTags[float32Tag]=typedArrayTags[float64Tag]=typedArrayTags[int8Tag]=typedArrayTags[int16Tag]=typedArrayTags[int32Tag]=typedArrayTags[uint8Tag]=typedArrayTags[uint8ClampedTag]=typedArrayTags[uint16Tag]=typedArrayTags[uint32Tag]=!0,typedArrayTags[argsTag]=typedArrayTags[arrayTag]=typedArrayTags[arrayBufferTag]=typedArrayTags[boolTag]=typedArrayTags[dataViewTag]=typedArrayTags[dateTag]=typedArrayTags[errorTag]=typedArrayTags[funcTag]=typedArrayTags[mapTag]=typedArrayTags[numberTag]=typedArrayTags[objectTag]=typedArrayTags[regexpTag]=typedArrayTags[setTag]=typedArrayTags[stringTag]=typedArrayTags[weakMapTag]=!1;var cloneableTags={};cloneableTags[argsTag]=cloneableTags[arrayTag]=cloneableTags[arrayBufferTag]=cloneableTags[dataViewTag]=cloneableTags[boolTag]=cloneableTags[dateTag]=cloneableTags[float32Tag]=cloneableTags[float64Tag]=cloneableTags[int8Tag]=cloneableTags[int16Tag]=cloneableTags[int32Tag]=cloneableTags[mapTag]=cloneableTags[numberTag]=cloneableTags[objectTag]=cloneableTags[regexpTag]=cloneableTags[setTag]=cloneableTags[stringTag]=cloneableTags[symbolTag]=cloneableTags[uint8Tag]=cloneableTags[uint8ClampedTag]=cloneableTags[uint16Tag]=cloneableTags[uint32Tag]=!0,cloneableTags[errorTag]=cloneableTags[funcTag]=cloneableTags[weakMapTag]=!1;var deburredLetters={"À":"A","Á":"A","Â":"A","Ã":"A","Ä":"A","Å":"A","à":"a","á":"a","â":"a","ã":"a","ä":"a","å":"a","Ç":"C","ç":"c","Ð":"D","ð":"d","È":"E","É":"E","Ê":"E","Ë":"E","è":"e","é":"e","ê":"e","ë":"e","Ì":"I","Í":"I","Î":"I","Ï":"I","ì":"i","í":"i","î":"i","ï":"i","Ñ":"N","ñ":"n","Ò":"O","Ó":"O","Ô":"O","Õ":"O","Ö":"O","Ø":"O","ò":"o","ó":"o","ô":"o","õ":"o","ö":"o","ø":"o","Ù":"U","Ú":"U","Û":"U","Ü":"U","ù":"u","ú":"u","û":"u","ü":"u","Ý":"Y","ý":"y","ÿ":"y","Æ":"Ae","æ":"ae","Þ":"Th","þ":"th","ß":"ss","Ā":"A","Ă":"A","Ą":"A","ā":"a","ă":"a","ą":"a","Ć":"C","Ĉ":"C","Ċ":"C","Č":"C","ć":"c","ĉ":"c","ċ":"c","č":"c","Ď":"D","Đ":"D","ď":"d","đ":"d","Ē":"E","Ĕ":"E","Ė":"E","Ę":"E","Ě":"E","ē":"e","ĕ":"e","ė":"e","ę":"e","ě":"e","Ĝ":"G","Ğ":"G","Ġ":"G","Ģ":"G","ĝ":"g","ğ":"g","ġ":"g","ģ":"g","Ĥ":"H","Ħ":"H","ĥ":"h","ħ":"h","Ĩ":"I","Ī":"I","Ĭ":"I","Į":"I","İ":"I","ĩ":"i","ī":"i","ĭ":"i","į":"i","ı":"i","Ĵ":"J","ĵ":"j","Ķ":"K","ķ":"k","ĸ":"k","Ĺ":"L","Ļ":"L","Ľ":"L","Ŀ":"L","Ł":"L","ĺ":"l","ļ":"l","ľ":"l","ŀ":"l","ł":"l","Ń":"N","Ņ":"N","Ň":"N","Ŋ":"N","ń":"n","ņ":"n","ň":"n","ŋ":"n","Ō":"O","Ŏ":"O","Ő":"O","ō":"o","ŏ":"o","ő":"o","Ŕ":"R","Ŗ":"R","Ř":"R","ŕ":"r","ŗ":"r","ř":"r","Ś":"S","Ŝ":"S","Ş":"S","Š":"S","ś":"s","ŝ":"s","ş":"s","š":"s","Ţ":"T","Ť":"T","Ŧ":"T","ţ":"t","ť":"t","ŧ":"t","Ũ":"U","Ū":"U","Ŭ":"U","Ů":"U","Ű":"U","Ų":"U","ũ":"u","ū":"u","ŭ":"u","ů":"u","ű":"u","ų":"u","Ŵ":"W","ŵ":"w","Ŷ":"Y","ŷ":"y","Ÿ":"Y","Ź":"Z","Ż":"Z","Ž":"Z","ź":"z","ż":"z","ž":"z","Ĳ":"IJ","ĳ":"ij","Œ":"Oe","œ":"oe","ŉ":"'n","ſ":"s"},htmlEscapes={"&":"&amp;","<":"&lt;",">":"&gt;",'"':"&quot;","'":"&#39;"},htmlUnescapes={"&amp;":"&","&lt;":"<","&gt;":">","&quot;":'"',"&#39;":"'"},stringEscapes={"\\":"\\","'":"'","\n":"n","\r":"r","\u2028":"u2028","\u2029":"u2029"},freeParseFloat=parseFloat,freeParseInt=parseInt,freeGlobal="object"==typeof global&&global&&global.Object===Object&&global,freeSelf="object"==typeof self&&self&&self.Object===Object&&self,root=freeGlobal||freeSelf||Function("return this")(),freeExports="object"==typeof exports&&exports&&!exports.nodeType&&exports,freeModule=freeExports&&"object"==typeof module&&module&&!module.nodeType&&module,moduleExports=freeModule&&freeModule.exports===freeExports,freeProcess=moduleExports&&freeGlobal.process,nodeUtil=function(){try{return freeProcess&&freeProcess.binding&&freeProcess.binding("util")}catch(e){}}(),nodeIsArrayBuffer=nodeUtil&&nodeUtil.isArrayBuffer,nodeIsDate=nodeUtil&&nodeUtil.isDate,nodeIsMap=nodeUtil&&nodeUtil.isMap,nodeIsRegExp=nodeUtil&&nodeUtil.isRegExp,nodeIsSet=nodeUtil&&nodeUtil.isSet,nodeIsTypedArray=nodeUtil&&nodeUtil.isTypedArray,asciiSize=baseProperty("length"),deburrLetter=basePropertyOf(deburredLetters),escapeHtmlChar=basePropertyOf(htmlEscapes),unescapeHtmlChar=basePropertyOf(htmlUnescapes),runInContext=function runInContext(context){function lodash(value){if(isObjectLike(value)&&!isArray(value)&&!(value instanceof LazyWrapper)){if(value instanceof LodashWrapper)return value;if(hasOwnProperty.call(value,"__wrapped__"))return wrapperClone(value)}return new LodashWrapper(value)}function baseLodash(){}function LodashWrapper(value,chainAll){this.__wrapped__=value,this.__actions__=[],this.__chain__=!!chainAll,this.__index__=0,this.__values__=undefined}function LazyWrapper(value){this.__wrapped__=value,this.__actions__=[],this.__dir__=1,this.__filtered__=!1,this.__iteratees__=[],this.__takeCount__=MAX_ARRAY_LENGTH,this.__views__=[]}function lazyClone(){var result=new LazyWrapper(this.__wrapped__);return result.__actions__=copyArray(this.__actions__),result.__dir__=this.__dir__,result.__filtered__=this.__filtered__,result.__iteratees__=copyArray(this.__iteratees__),result.__takeCount__=this.__takeCount__,result.__views__=copyArray(this.__views__),result}function lazyReverse(){if(this.__filtered__){var result=new LazyWrapper(this);result.__dir__=-1,result.__filtered__=!0}else result=this.clone(),result.__dir__*=-1;return result}function lazyValue(){var array=this.__wrapped__.value(),dir=this.__dir__,isArr=isArray(array),isRight=dir<0,arrLength=isArr?array.length:0,view=getView(0,arrLength,this.__views__),start=view.start,end=view.end,length=end-start,index=isRight?end:start-1,iteratees=this.__iteratees__,iterLength=iteratees.length,resIndex=0,takeCount=nativeMin(length,this.__takeCount__);if(!isArr||!isRight&&arrLength==length&&takeCount==length)return baseWrapperValue(array,this.__actions__);var result=[];outer:for(;length--&&resIndex<takeCount;){index+=dir;for(var iterIndex=-1,value=array[index];++iterIndex<iterLength;){var data=iteratees[iterIndex],iteratee=data.iteratee,type=data.type,computed=iteratee(value);if(type==LAZY_MAP_FLAG)value=computed;else if(!computed){if(type==LAZY_FILTER_FLAG)continue outer;break outer}}result[resIndex++]=value}return result}function Hash(entries){var index=-1,length=null==entries?0:entries.length;for(this.clear();++index<length;){var entry=entries[index];this.set(entry[0],entry[1])}}function hashClear(){this.__data__=nativeCreate?nativeCreate(null):{},this.size=0}function hashDelete(key){var result=this.has(key)&&delete this.__data__[key];return this.size-=result?1:0,result}function hashGet(key){var data=this.__data__;if(nativeCreate){var result=data[key];return result===HASH_UNDEFINED?undefined:result}return hasOwnProperty.call(data,key)?data[key]:undefined}function hashHas(key){var data=this.__data__;return nativeCreate?data[key]!==undefined:hasOwnProperty.call(data,key)}function hashSet(key,value){var data=this.__data__;return this.size+=this.has(key)?0:1,data[key]=nativeCreate&&value===undefined?HASH_UNDEFINED:value,this}function ListCache(entries){var index=-1,length=null==entries?0:entries.length;for(this.clear();++index<length;){var entry=entries[index];this.set(entry[0],entry[1])}}function listCacheClear(){this.__data__=[],this.size=0}function listCacheDelete(key){var data=this.__data__,index=assocIndexOf(data,key);if(index<0)return!1;var lastIndex=data.length-1;return index==lastIndex?data.pop():splice.call(data,index,1),--this.size,!0}function listCacheGet(key){var data=this.__data__,index=assocIndexOf(data,key);return index<0?undefined:data[index][1]}function listCacheHas(key){return assocIndexOf(this.__data__,key)>-1}function listCacheSet(key,value){var data=this.__data__,index=assocIndexOf(data,key);return index<0?(++this.size,data.push([key,value])):data[index][1]=value,this}function MapCache(entries){var index=-1,length=null==entries?0:entries.length;for(this.clear();++index<length;){var entry=entries[index];this.set(entry[0],entry[1])}}function mapCacheClear(){this.size=0,this.__data__={hash:new Hash,map:new(Map||ListCache),string:new Hash}}function mapCacheDelete(key){var result=getMapData(this,key).delete(key);return this.size-=result?1:0,result}function mapCacheGet(key){return getMapData(this,key).get(key)}function mapCacheHas(key){return getMapData(this,key).has(key)}function mapCacheSet(key,value){var data=getMapData(this,key),size=data.size;return data.set(key,value),this.size+=data.size==size?0:1,this}function SetCache(values){var index=-1,length=null==values?0:values.length;for(this.__data__=new MapCache;++index<length;)this.add(values[index])}function setCacheAdd(value){return this.__data__.set(value,HASH_UNDEFINED),this}function setCacheHas(value){return this.__data__.has(value)}function Stack(entries){var data=this.__data__=new ListCache(entries);this.size=data.size}function stackClear(){this.__data__=new ListCache,this.size=0}function stackDelete(key){var data=this.__data__,result=data.delete(key);return this.size=data.size,result}function stackGet(key){return this.__data__.get(key)}function stackHas(key){return this.__data__.has(key)}function stackSet(key,value){var data=this.__data__;if(data instanceof ListCache){var pairs=data.__data__;if(!Map||pairs.length<LARGE_ARRAY_SIZE-1)return pairs.push([key,value]),this.size=++data.size,this;data=this.__data__=new MapCache(pairs)}return data.set(key,value),this.size=data.size,this}function arrayLikeKeys(value,inherited){var isArr=isArray(value),isArg=!isArr&&isArguments(value),isBuff=!isArr&&!isArg&&isBuffer(value),isType=!isArr&&!isArg&&!isBuff&&isTypedArray(value),skipIndexes=isArr||isArg||isBuff||isType,result=skipIndexes?baseTimes(value.length,String):[],length=result.length;for(var key in value)!inherited&&!hasOwnProperty.call(value,key)||skipIndexes&&("length"==key||isBuff&&("offset"==key||"parent"==key)||isType&&("buffer"==key||"byteLength"==key||"byteOffset"==key)||isIndex(key,length))||result.push(key);return result}function arraySample(array){var length=array.length;return length?array[baseRandom(0,length-1)]:undefined}function arraySampleSize(array,n){return shuffleSelf(copyArray(array),baseClamp(n,0,array.length))}function arrayShuffle(array){return shuffleSelf(copyArray(array))}function assignMergeValue(object,key,value){(value===undefined||eq(object[key],value))&&(value!==undefined||key in object)||baseAssignValue(object,key,value)}function assignValue(object,key,value){var objValue=object[key];hasOwnProperty.call(object,key)&&eq(objValue,value)&&(value!==undefined||key in object)||baseAssignValue(object,key,value)}function assocIndexOf(array,key){for(var length=array.length;length--;)if(eq(array[length][0],key))return length;return-1}function baseAggregator(collection,setter,iteratee,accumulator){return baseEach(collection,function(value,key,collection){setter(accumulator,value,iteratee(value),collection)}),accumulator}function baseAssign(object,source){return object&&copyObject(source,keys(source),object)}function baseAssignIn(object,source){return object&&copyObject(source,keysIn(source),object)}function baseAssignValue(object,key,value){"__proto__"==key&&defineProperty?defineProperty(object,key,{configurable:!0,enumerable:!0,value:value,writable:!0}):object[key]=value}function baseAt(object,paths){for(var index=-1,length=paths.length,result=Array(length),skip=null==object;++index<length;)result[index]=skip?undefined:get(object,paths[index]);return result}function baseClamp(number,lower,upper){return number===number&&(upper!==undefined&&(number=number<=upper?number:upper),lower!==undefined&&(number=number>=lower?number:lower)),number}function baseClone(value,bitmask,customizer,key,object,stack){var result,isDeep=bitmask&CLONE_DEEP_FLAG,isFlat=bitmask&CLONE_FLAT_FLAG,isFull=bitmask&CLONE_SYMBOLS_FLAG;if(customizer&&(result=object?customizer(value,key,object,stack):customizer(value)),result!==undefined)return result;if(!isObject(value))return value;var isArr=isArray(value);if(isArr){if(result=initCloneArray(value),!isDeep)return copyArray(value,result)}else{var tag=getTag(value),isFunc=tag==funcTag||tag==genTag;if(isBuffer(value))return cloneBuffer(value,isDeep);if(tag==objectTag||tag==argsTag||isFunc&&!object){if(result=isFlat||isFunc?{}:initCloneObject(value),!isDeep)return isFlat?copySymbolsIn(value,baseAssignIn(result,value)):copySymbols(value,baseAssign(result,value))}else{if(!cloneableTags[tag])return object?value:{};result=initCloneByTag(value,tag,isDeep)}}stack||(stack=new Stack);var stacked=stack.get(value);if(stacked)return stacked;if(stack.set(value,result),isSet(value))return value.forEach(function(subValue){result.add(baseClone(subValue,bitmask,customizer,subValue,value,stack))}),result;if(isMap(value))return value.forEach(function(subValue,key){result.set(key,baseClone(subValue,bitmask,customizer,key,value,stack))}),result;var keysFunc=isFull?isFlat?getAllKeysIn:getAllKeys:isFlat?keysIn:keys,props=isArr?undefined:keysFunc(value);return arrayEach(props||value,function(subValue,key){props&&(key=subValue,subValue=value[key]),assignValue(result,key,baseClone(subValue,bitmask,customizer,key,value,stack))}),result}function baseConforms(source){var props=keys(source);return function(object){return baseConformsTo(object,source,props)}}function baseConformsTo(object,source,props){var length=props.length;if(null==object)return!length;for(object=Object(object);length--;){var key=props[length],predicate=source[key],value=object[key];if(value===undefined&&!(key in object)||!predicate(value))return!1}return!0}function baseDelay(func,wait,args){if("function"!=typeof func)throw new TypeError(FUNC_ERROR_TEXT);return setTimeout(function(){func.apply(undefined,args)},wait)}function baseDifference(array,values,iteratee,comparator){var index=-1,includes=arrayIncludes,isCommon=!0,length=array.length,result=[],valuesLength=values.length;if(!length)return result;iteratee&&(values=arrayMap(values,baseUnary(iteratee))),comparator?(includes=arrayIncludesWith,isCommon=!1):values.length>=LARGE_ARRAY_SIZE&&(includes=cacheHas,isCommon=!1,values=new SetCache(values));outer:for(;++index<length;){var value=array[index],computed=null==iteratee?value:iteratee(value);if(value=comparator||0!==value?value:0,isCommon&&computed===computed){for(var valuesIndex=valuesLength;valuesIndex--;)if(values[valuesIndex]===computed)continue outer;result.push(value)}else includes(values,computed,comparator)||result.push(value)}return result}function baseEvery(collection,predicate){var result=!0;return baseEach(collection,function(value,index,collection){return result=!!predicate(value,index,collection)}),result}function baseExtremum(array,iteratee,comparator){for(var index=-1,length=array.length;++index<length;){
  var value=array[index],current=iteratee(value);if(null!=current&&(computed===undefined?current===current&&!isSymbol(current):comparator(current,computed)))var computed=current,result=value}return result}function baseFill(array,value,start,end){var length=array.length;for(start=toInteger(start),start<0&&(start=-start>length?0:length+start),end=end===undefined||end>length?length:toInteger(end),end<0&&(end+=length),end=start>end?0:toLength(end);start<end;)array[start++]=value;return array}function baseFilter(collection,predicate){var result=[];return baseEach(collection,function(value,index,collection){predicate(value,index,collection)&&result.push(value)}),result}function baseFlatten(array,depth,predicate,isStrict,result){var index=-1,length=array.length;for(predicate||(predicate=isFlattenable),result||(result=[]);++index<length;){var value=array[index];depth>0&&predicate(value)?depth>1?baseFlatten(value,depth-1,predicate,isStrict,result):arrayPush(result,value):isStrict||(result[result.length]=value)}return result}function baseForOwn(object,iteratee){return object&&baseFor(object,iteratee,keys)}function baseForOwnRight(object,iteratee){return object&&baseForRight(object,iteratee,keys)}function baseFunctions(object,props){return arrayFilter(props,function(key){return isFunction(object[key])})}function baseGet(object,path){path=castPath(path,object);for(var index=0,length=path.length;null!=object&&index<length;)object=object[toKey(path[index++])];return index&&index==length?object:undefined}function baseGetAllKeys(object,keysFunc,symbolsFunc){var result=keysFunc(object);return isArray(object)?result:arrayPush(result,symbolsFunc(object))}function baseGetTag(value){return null==value?value===undefined?undefinedTag:nullTag:symToStringTag&&symToStringTag in Object(value)?getRawTag(value):objectToString(value)}function baseGt(value,other){return value>other}function baseHas(object,key){return null!=object&&hasOwnProperty.call(object,key)}function baseHasIn(object,key){return null!=object&&key in Object(object)}function baseInRange(number,start,end){return number>=nativeMin(start,end)&&number<nativeMax(start,end)}function baseIntersection(arrays,iteratee,comparator){for(var includes=comparator?arrayIncludesWith:arrayIncludes,length=arrays[0].length,othLength=arrays.length,othIndex=othLength,caches=Array(othLength),maxLength=1/0,result=[];othIndex--;){var array=arrays[othIndex];othIndex&&iteratee&&(array=arrayMap(array,baseUnary(iteratee))),maxLength=nativeMin(array.length,maxLength),caches[othIndex]=!comparator&&(iteratee||length>=120&&array.length>=120)?new SetCache(othIndex&&array):undefined}array=arrays[0];var index=-1,seen=caches[0];outer:for(;++index<length&&result.length<maxLength;){var value=array[index],computed=iteratee?iteratee(value):value;if(value=comparator||0!==value?value:0,!(seen?cacheHas(seen,computed):includes(result,computed,comparator))){for(othIndex=othLength;--othIndex;){var cache=caches[othIndex];if(!(cache?cacheHas(cache,computed):includes(arrays[othIndex],computed,comparator)))continue outer}seen&&seen.push(computed),result.push(value)}}return result}function baseInverter(object,setter,iteratee,accumulator){return baseForOwn(object,function(value,key,object){setter(accumulator,iteratee(value),key,object)}),accumulator}function baseInvoke(object,path,args){path=castPath(path,object),object=parent(object,path);var func=null==object?object:object[toKey(last(path))];return null==func?undefined:apply(func,object,args)}function baseIsArguments(value){return isObjectLike(value)&&baseGetTag(value)==argsTag}function baseIsArrayBuffer(value){return isObjectLike(value)&&baseGetTag(value)==arrayBufferTag}function baseIsDate(value){return isObjectLike(value)&&baseGetTag(value)==dateTag}function baseIsEqual(value,other,bitmask,customizer,stack){return value===other||(null==value||null==other||!isObjectLike(value)&&!isObjectLike(other)?value!==value&&other!==other:baseIsEqualDeep(value,other,bitmask,customizer,baseIsEqual,stack))}function baseIsEqualDeep(object,other,bitmask,customizer,equalFunc,stack){var objIsArr=isArray(object),othIsArr=isArray(other),objTag=objIsArr?arrayTag:getTag(object),othTag=othIsArr?arrayTag:getTag(other);objTag=objTag==argsTag?objectTag:objTag,othTag=othTag==argsTag?objectTag:othTag;var objIsObj=objTag==objectTag,othIsObj=othTag==objectTag,isSameTag=objTag==othTag;if(isSameTag&&isBuffer(object)){if(!isBuffer(other))return!1;objIsArr=!0,objIsObj=!1}if(isSameTag&&!objIsObj)return stack||(stack=new Stack),objIsArr||isTypedArray(object)?equalArrays(object,other,bitmask,customizer,equalFunc,stack):equalByTag(object,other,objTag,bitmask,customizer,equalFunc,stack);if(!(bitmask&COMPARE_PARTIAL_FLAG)){var objIsWrapped=objIsObj&&hasOwnProperty.call(object,"__wrapped__"),othIsWrapped=othIsObj&&hasOwnProperty.call(other,"__wrapped__");if(objIsWrapped||othIsWrapped){var objUnwrapped=objIsWrapped?object.value():object,othUnwrapped=othIsWrapped?other.value():other;return stack||(stack=new Stack),equalFunc(objUnwrapped,othUnwrapped,bitmask,customizer,stack)}}return!!isSameTag&&(stack||(stack=new Stack),equalObjects(object,other,bitmask,customizer,equalFunc,stack))}function baseIsMap(value){return isObjectLike(value)&&getTag(value)==mapTag}function baseIsMatch(object,source,matchData,customizer){var index=matchData.length,length=index,noCustomizer=!customizer;if(null==object)return!length;for(object=Object(object);index--;){var data=matchData[index];if(noCustomizer&&data[2]?data[1]!==object[data[0]]:!(data[0]in object))return!1}for(;++index<length;){data=matchData[index];var key=data[0],objValue=object[key],srcValue=data[1];if(noCustomizer&&data[2]){if(objValue===undefined&&!(key in object))return!1}else{var stack=new Stack;if(customizer)var result=customizer(objValue,srcValue,key,object,source,stack);if(!(result===undefined?baseIsEqual(srcValue,objValue,COMPARE_PARTIAL_FLAG|COMPARE_UNORDERED_FLAG,customizer,stack):result))return!1}}return!0}function baseIsNative(value){if(!isObject(value)||isMasked(value))return!1;var pattern=isFunction(value)?reIsNative:reIsHostCtor;return pattern.test(toSource(value))}function baseIsRegExp(value){return isObjectLike(value)&&baseGetTag(value)==regexpTag}function baseIsSet(value){return isObjectLike(value)&&getTag(value)==setTag}function baseIsTypedArray(value){return isObjectLike(value)&&isLength(value.length)&&!!typedArrayTags[baseGetTag(value)]}function baseIteratee(value){return"function"==typeof value?value:null==value?identity:"object"==typeof value?isArray(value)?baseMatchesProperty(value[0],value[1]):baseMatches(value):property(value)}function baseKeys(object){if(!isPrototype(object))return nativeKeys(object);var result=[];for(var key in Object(object))hasOwnProperty.call(object,key)&&"constructor"!=key&&result.push(key);return result}function baseKeysIn(object){if(!isObject(object))return nativeKeysIn(object);var isProto=isPrototype(object),result=[];for(var key in object)("constructor"!=key||!isProto&&hasOwnProperty.call(object,key))&&result.push(key);return result}function baseLt(value,other){return value<other}function baseMap(collection,iteratee){var index=-1,result=isArrayLike(collection)?Array(collection.length):[];return baseEach(collection,function(value,key,collection){result[++index]=iteratee(value,key,collection)}),result}function baseMatches(source){var matchData=getMatchData(source);return 1==matchData.length&&matchData[0][2]?matchesStrictComparable(matchData[0][0],matchData[0][1]):function(object){return object===source||baseIsMatch(object,source,matchData)}}function baseMatchesProperty(path,srcValue){return isKey(path)&&isStrictComparable(srcValue)?matchesStrictComparable(toKey(path),srcValue):function(object){var objValue=get(object,path);return objValue===undefined&&objValue===srcValue?hasIn(object,path):baseIsEqual(srcValue,objValue,COMPARE_PARTIAL_FLAG|COMPARE_UNORDERED_FLAG)}}function baseMerge(object,source,srcIndex,customizer,stack){object!==source&&baseFor(source,function(srcValue,key){if(isObject(srcValue))stack||(stack=new Stack),baseMergeDeep(object,source,key,srcIndex,baseMerge,customizer,stack);else{var newValue=customizer?customizer(safeGet(object,key),srcValue,key+"",object,source,stack):undefined;newValue===undefined&&(newValue=srcValue),assignMergeValue(object,key,newValue)}},keysIn)}function baseMergeDeep(object,source,key,srcIndex,mergeFunc,customizer,stack){var objValue=safeGet(object,key),srcValue=safeGet(source,key),stacked=stack.get(srcValue);if(stacked)return void assignMergeValue(object,key,stacked);var newValue=customizer?customizer(objValue,srcValue,key+"",object,source,stack):undefined,isCommon=newValue===undefined;if(isCommon){var isArr=isArray(srcValue),isBuff=!isArr&&isBuffer(srcValue),isTyped=!isArr&&!isBuff&&isTypedArray(srcValue);newValue=srcValue,isArr||isBuff||isTyped?isArray(objValue)?newValue=objValue:isArrayLikeObject(objValue)?newValue=copyArray(objValue):isBuff?(isCommon=!1,newValue=cloneBuffer(srcValue,!0)):isTyped?(isCommon=!1,newValue=cloneTypedArray(srcValue,!0)):newValue=[]:isPlainObject(srcValue)||isArguments(srcValue)?(newValue=objValue,isArguments(objValue)?newValue=toPlainObject(objValue):(!isObject(objValue)||srcIndex&&isFunction(objValue))&&(newValue=initCloneObject(srcValue))):isCommon=!1}isCommon&&(stack.set(srcValue,newValue),mergeFunc(newValue,srcValue,srcIndex,customizer,stack),stack.delete(srcValue)),assignMergeValue(object,key,newValue)}function baseNth(array,n){var length=array.length;if(length)return n+=n<0?length:0,isIndex(n,length)?array[n]:undefined}function baseOrderBy(collection,iteratees,orders){var index=-1;iteratees=arrayMap(iteratees.length?iteratees:[identity],baseUnary(getIteratee()));var result=baseMap(collection,function(value,key,collection){var criteria=arrayMap(iteratees,function(iteratee){return iteratee(value)});return{criteria:criteria,index:++index,value:value}});return baseSortBy(result,function(object,other){return compareMultiple(object,other,orders)})}function basePick(object,paths){return basePickBy(object,paths,function(value,path){return hasIn(object,path)})}function basePickBy(object,paths,predicate){for(var index=-1,length=paths.length,result={};++index<length;){var path=paths[index],value=baseGet(object,path);predicate(value,path)&&baseSet(result,castPath(path,object),value)}return result}function basePropertyDeep(path){return function(object){return baseGet(object,path)}}function basePullAll(array,values,iteratee,comparator){var indexOf=comparator?baseIndexOfWith:baseIndexOf,index=-1,length=values.length,seen=array;for(array===values&&(values=copyArray(values)),iteratee&&(seen=arrayMap(array,baseUnary(iteratee)));++index<length;)for(var fromIndex=0,value=values[index],computed=iteratee?iteratee(value):value;(fromIndex=indexOf(seen,computed,fromIndex,comparator))>-1;)seen!==array&&splice.call(seen,fromIndex,1),splice.call(array,fromIndex,1);return array}function basePullAt(array,indexes){for(var length=array?indexes.length:0,lastIndex=length-1;length--;){var index=indexes[length];if(length==lastIndex||index!==previous){var previous=index;isIndex(index)?splice.call(array,index,1):baseUnset(array,index)}}return array}function baseRandom(lower,upper){return lower+nativeFloor(nativeRandom()*(upper-lower+1))}function baseRange(start,end,step,fromRight){for(var index=-1,length=nativeMax(nativeCeil((end-start)/(step||1)),0),result=Array(length);length--;)result[fromRight?length:++index]=start,start+=step;return result}function baseRepeat(string,n){var result="";if(!string||n<1||n>MAX_SAFE_INTEGER)return result;do n%2&&(result+=string),n=nativeFloor(n/2),n&&(string+=string);while(n);return result}function baseRest(func,start){return setToString(overRest(func,start,identity),func+"")}function baseSample(collection){return arraySample(values(collection))}function baseSampleSize(collection,n){var array=values(collection);return shuffleSelf(array,baseClamp(n,0,array.length))}function baseSet(object,path,value,customizer){if(!isObject(object))return object;path=castPath(path,object);for(var index=-1,length=path.length,lastIndex=length-1,nested=object;null!=nested&&++index<length;){var key=toKey(path[index]),newValue=value;if(index!=lastIndex){var objValue=nested[key];newValue=customizer?customizer(objValue,key,nested):undefined,newValue===undefined&&(newValue=isObject(objValue)?objValue:isIndex(path[index+1])?[]:{})}assignValue(nested,key,newValue),nested=nested[key]}return object}function baseShuffle(collection){return shuffleSelf(values(collection))}function baseSlice(array,start,end){var index=-1,length=array.length;start<0&&(start=-start>length?0:length+start),end=end>length?length:end,end<0&&(end+=length),length=start>end?0:end-start>>>0,start>>>=0;for(var result=Array(length);++index<length;)result[index]=array[index+start];return result}function baseSome(collection,predicate){var result;return baseEach(collection,function(value,index,collection){return result=predicate(value,index,collection),!result}),!!result}function baseSortedIndex(array,value,retHighest){var low=0,high=null==array?low:array.length;if("number"==typeof value&&value===value&&high<=HALF_MAX_ARRAY_LENGTH){for(;low<high;){var mid=low+high>>>1,computed=array[mid];null!==computed&&!isSymbol(computed)&&(retHighest?computed<=value:computed<value)?low=mid+1:high=mid}return high}return baseSortedIndexBy(array,value,identity,retHighest)}function baseSortedIndexBy(array,value,iteratee,retHighest){value=iteratee(value);for(var low=0,high=null==array?0:array.length,valIsNaN=value!==value,valIsNull=null===value,valIsSymbol=isSymbol(value),valIsUndefined=value===undefined;low<high;){var mid=nativeFloor((low+high)/2),computed=iteratee(array[mid]),othIsDefined=computed!==undefined,othIsNull=null===computed,othIsReflexive=computed===computed,othIsSymbol=isSymbol(computed);if(valIsNaN)var setLow=retHighest||othIsReflexive;else setLow=valIsUndefined?othIsReflexive&&(retHighest||othIsDefined):valIsNull?othIsReflexive&&othIsDefined&&(retHighest||!othIsNull):valIsSymbol?othIsReflexive&&othIsDefined&&!othIsNull&&(retHighest||!othIsSymbol):!othIsNull&&!othIsSymbol&&(retHighest?computed<=value:computed<value);setLow?low=mid+1:high=mid}return nativeMin(high,MAX_ARRAY_INDEX)}function baseSortedUniq(array,iteratee){for(var index=-1,length=array.length,resIndex=0,result=[];++index<length;){var value=array[index],computed=iteratee?iteratee(value):value;if(!index||!eq(computed,seen)){var seen=computed;result[resIndex++]=0===value?0:value}}return result}function baseToNumber(value){return"number"==typeof value?value:isSymbol(value)?NAN:+value}function baseToString(value){if("string"==typeof value)return value;if(isArray(value))return arrayMap(value,baseToString)+"";if(isSymbol(value))return symbolToString?symbolToString.call(value):"";var result=value+"";return"0"==result&&1/value==-INFINITY?"-0":result}function baseUniq(array,iteratee,comparator){var index=-1,includes=arrayIncludes,length=array.length,isCommon=!0,result=[],seen=result;if(comparator)isCommon=!1,includes=arrayIncludesWith;else if(length>=LARGE_ARRAY_SIZE){var set=iteratee?null:createSet(array);if(set)return setToArray(set);isCommon=!1,includes=cacheHas,seen=new SetCache}else seen=iteratee?[]:result;outer:for(;++index<length;){var value=array[index],computed=iteratee?iteratee(value):value;if(value=comparator||0!==value?value:0,isCommon&&computed===computed){for(var seenIndex=seen.length;seenIndex--;)if(seen[seenIndex]===computed)continue outer;iteratee&&seen.push(computed),result.push(value)}else includes(seen,computed,comparator)||(seen!==result&&seen.push(computed),result.push(value))}return result}function baseUnset(object,path){return path=castPath(path,object),object=parent(object,path),null==object||delete object[toKey(last(path))]}function baseUpdate(object,path,updater,customizer){return baseSet(object,path,updater(baseGet(object,path)),customizer)}function baseWhile(array,predicate,isDrop,fromRight){for(var length=array.length,index=fromRight?length:-1;(fromRight?index--:++index<length)&&predicate(array[index],index,array););return isDrop?baseSlice(array,fromRight?0:index,fromRight?index+1:length):baseSlice(array,fromRight?index+1:0,fromRight?length:index)}function baseWrapperValue(value,actions){var result=value;return result instanceof LazyWrapper&&(result=result.value()),arrayReduce(actions,function(result,action){return action.func.apply(action.thisArg,arrayPush([result],action.args))},result)}function baseXor(arrays,iteratee,comparator){var length=arrays.length;if(length<2)return length?baseUniq(arrays[0]):[];for(var index=-1,result=Array(length);++index<length;)for(var array=arrays[index],othIndex=-1;++othIndex<length;)othIndex!=index&&(result[index]=baseDifference(result[index]||array,arrays[othIndex],iteratee,comparator));return baseUniq(baseFlatten(result,1),iteratee,comparator)}function baseZipObject(props,values,assignFunc){for(var index=-1,length=props.length,valsLength=values.length,result={};++index<length;){var value=index<valsLength?values[index]:undefined;assignFunc(result,props[index],value)}return result}function castArrayLikeObject(value){return isArrayLikeObject(value)?value:[]}function castFunction(value){return"function"==typeof value?value:identity}function castPath(value,object){return isArray(value)?value:isKey(value,object)?[value]:stringToPath(toString(value))}function castSlice(array,start,end){var length=array.length;return end=end===undefined?length:end,!start&&end>=length?array:baseSlice(array,start,end)}function cloneBuffer(buffer,isDeep){if(isDeep)return buffer.slice();var length=buffer.length,result=allocUnsafe?allocUnsafe(length):new buffer.constructor(length);return buffer.copy(result),result}function cloneArrayBuffer(arrayBuffer){var result=new arrayBuffer.constructor(arrayBuffer.byteLength);return new Uint8Array(result).set(new Uint8Array(arrayBuffer)),result}function cloneDataView(dataView,isDeep){var buffer=isDeep?cloneArrayBuffer(dataView.buffer):dataView.buffer;return new dataView.constructor(buffer,dataView.byteOffset,dataView.byteLength)}function cloneRegExp(regexp){var result=new regexp.constructor(regexp.source,reFlags.exec(regexp));return result.lastIndex=regexp.lastIndex,result}function cloneSymbol(symbol){return symbolValueOf?Object(symbolValueOf.call(symbol)):{}}function cloneTypedArray(typedArray,isDeep){var buffer=isDeep?cloneArrayBuffer(typedArray.buffer):typedArray.buffer;return new typedArray.constructor(buffer,typedArray.byteOffset,typedArray.length)}function compareAscending(value,other){if(value!==other){var valIsDefined=value!==undefined,valIsNull=null===value,valIsReflexive=value===value,valIsSymbol=isSymbol(value),othIsDefined=other!==undefined,othIsNull=null===other,othIsReflexive=other===other,othIsSymbol=isSymbol(other);if(!othIsNull&&!othIsSymbol&&!valIsSymbol&&value>other||valIsSymbol&&othIsDefined&&othIsReflexive&&!othIsNull&&!othIsSymbol||valIsNull&&othIsDefined&&othIsReflexive||!valIsDefined&&othIsReflexive||!valIsReflexive)return 1;if(!valIsNull&&!valIsSymbol&&!othIsSymbol&&value<other||othIsSymbol&&valIsDefined&&valIsReflexive&&!valIsNull&&!valIsSymbol||othIsNull&&valIsDefined&&valIsReflexive||!othIsDefined&&valIsReflexive||!othIsReflexive)return-1}return 0}function compareMultiple(object,other,orders){for(var index=-1,objCriteria=object.criteria,othCriteria=other.criteria,length=objCriteria.length,ordersLength=orders.length;++index<length;){var result=compareAscending(objCriteria[index],othCriteria[index]);if(result){if(index>=ordersLength)return result;var order=orders[index];return result*("desc"==order?-1:1)}}return object.index-other.index}function composeArgs(args,partials,holders,isCurried){for(var argsIndex=-1,argsLength=args.length,holdersLength=holders.length,leftIndex=-1,leftLength=partials.length,rangeLength=nativeMax(argsLength-holdersLength,0),result=Array(leftLength+rangeLength),isUncurried=!isCurried;++leftIndex<leftLength;)result[leftIndex]=partials[leftIndex];for(;++argsIndex<holdersLength;)(isUncurried||argsIndex<argsLength)&&(result[holders[argsIndex]]=args[argsIndex]);for(;rangeLength--;)result[leftIndex++]=args[argsIndex++];return result}function composeArgsRight(args,partials,holders,isCurried){for(var argsIndex=-1,argsLength=args.length,holdersIndex=-1,holdersLength=holders.length,rightIndex=-1,rightLength=partials.length,rangeLength=nativeMax(argsLength-holdersLength,0),result=Array(rangeLength+rightLength),isUncurried=!isCurried;++argsIndex<rangeLength;)result[argsIndex]=args[argsIndex];for(var offset=argsIndex;++rightIndex<rightLength;)result[offset+rightIndex]=partials[rightIndex];for(;++holdersIndex<holdersLength;)(isUncurried||argsIndex<argsLength)&&(result[offset+holders[holdersIndex]]=args[argsIndex++]);return result}function copyArray(source,array){var index=-1,length=source.length;for(array||(array=Array(length));++index<length;)array[index]=source[index];return array}function copyObject(source,props,object,customizer){var isNew=!object;object||(object={});for(var index=-1,length=props.length;++index<length;){var key=props[index],newValue=customizer?customizer(object[key],source[key],key,object,source):undefined;newValue===undefined&&(newValue=source[key]),isNew?baseAssignValue(object,key,newValue):assignValue(object,key,newValue)}return object}function copySymbols(source,object){return copyObject(source,getSymbols(source),object)}function copySymbolsIn(source,object){return copyObject(source,getSymbolsIn(source),object)}function createAggregator(setter,initializer){return function(collection,iteratee){var func=isArray(collection)?arrayAggregator:baseAggregator,accumulator=initializer?initializer():{};return func(collection,setter,getIteratee(iteratee,2),accumulator)}}function createAssigner(assigner){return baseRest(function(object,sources){var index=-1,length=sources.length,customizer=length>1?sources[length-1]:undefined,guard=length>2?sources[2]:undefined;for(customizer=assigner.length>3&&"function"==typeof customizer?(length--,customizer):undefined,guard&&isIterateeCall(sources[0],sources[1],guard)&&(customizer=length<3?undefined:customizer,length=1),object=Object(object);++index<length;){var source=sources[index];source&&assigner(object,source,index,customizer)}return object})}function createBaseEach(eachFunc,fromRight){return function(collection,iteratee){if(null==collection)return collection;if(!isArrayLike(collection))return eachFunc(collection,iteratee);for(var length=collection.length,index=fromRight?length:-1,iterable=Object(collection);(fromRight?index--:++index<length)&&iteratee(iterable[index],index,iterable)!==!1;);return collection}}function createBaseFor(fromRight){return function(object,iteratee,keysFunc){for(var index=-1,iterable=Object(object),props=keysFunc(object),length=props.length;length--;){var key=props[fromRight?length:++index];if(iteratee(iterable[key],key,iterable)===!1)break}return object}}function createBind(func,bitmask,thisArg){function wrapper(){var fn=this&&this!==root&&this instanceof wrapper?Ctor:func;return fn.apply(isBind?thisArg:this,arguments)}var isBind=bitmask&WRAP_BIND_FLAG,Ctor=createCtor(func);return wrapper}function createCaseFirst(methodName){return function(string){string=toString(string);var strSymbols=hasUnicode(string)?stringToArray(string):undefined,chr=strSymbols?strSymbols[0]:string.charAt(0),trailing=strSymbols?castSlice(strSymbols,1).join(""):string.slice(1);return chr[methodName]()+trailing}}function createCompounder(callback){return function(string){return arrayReduce(words(deburr(string).replace(reApos,"")),callback,"")}}function createCtor(Ctor){return function(){var args=arguments;switch(args.length){case 0:return new Ctor;case 1:return new Ctor(args[0]);case 2:return new Ctor(args[0],args[1]);case 3:return new Ctor(args[0],args[1],args[2]);case 4:return new Ctor(args[0],args[1],args[2],args[3]);case 5:return new Ctor(args[0],args[1],args[2],args[3],args[4]);case 6:return new Ctor(args[0],args[1],args[2],args[3],args[4],args[5]);case 7:return new Ctor(args[0],args[1],args[2],args[3],args[4],args[5],args[6])}var thisBinding=baseCreate(Ctor.prototype),result=Ctor.apply(thisBinding,args);return isObject(result)?result:thisBinding}}function createCurry(func,bitmask,arity){function wrapper(){for(var length=arguments.length,args=Array(length),index=length,placeholder=getHolder(wrapper);index--;)args[index]=arguments[index];var holders=length<3&&args[0]!==placeholder&&args[length-1]!==placeholder?[]:replaceHolders(args,placeholder);if(length-=holders.length,length<arity)return createRecurry(func,bitmask,createHybrid,wrapper.placeholder,undefined,args,holders,undefined,undefined,arity-length);var fn=this&&this!==root&&this instanceof wrapper?Ctor:func;return apply(fn,this,args)}var Ctor=createCtor(func);return wrapper}function createFind(findIndexFunc){return function(collection,predicate,fromIndex){var iterable=Object(collection);if(!isArrayLike(collection)){var iteratee=getIteratee(predicate,3);collection=keys(collection),predicate=function(key){return iteratee(iterable[key],key,iterable)}}var index=findIndexFunc(collection,predicate,fromIndex);return index>-1?iterable[iteratee?collection[index]:index]:undefined}}function createFlow(fromRight){return flatRest(function(funcs){var length=funcs.length,index=length,prereq=LodashWrapper.prototype.thru;for(fromRight&&funcs.reverse();index--;){var func=funcs[index];if("function"!=typeof func)throw new TypeError(FUNC_ERROR_TEXT);if(prereq&&!wrapper&&"wrapper"==getFuncName(func))var wrapper=new LodashWrapper([],!0)}for(index=wrapper?index:length;++index<length;){func=funcs[index];var funcName=getFuncName(func),data="wrapper"==funcName?getData(func):undefined;wrapper=data&&isLaziable(data[0])&&data[1]==(WRAP_ARY_FLAG|WRAP_CURRY_FLAG|WRAP_PARTIAL_FLAG|WRAP_REARG_FLAG)&&!data[4].length&&1==data[9]?wrapper[getFuncName(data[0])].apply(wrapper,data[3]):1==func.length&&isLaziable(func)?wrapper[funcName]():wrapper.thru(func)}return function(){var args=arguments,value=args[0];if(wrapper&&1==args.length&&isArray(value))return wrapper.plant(value).value();for(var index=0,result=length?funcs[index].apply(this,args):value;++index<length;)result=funcs[index].call(this,result);return result}})}function createHybrid(func,bitmask,thisArg,partials,holders,partialsRight,holdersRight,argPos,ary,arity){function wrapper(){for(var length=arguments.length,args=Array(length),index=length;index--;)args[index]=arguments[index];if(isCurried)var placeholder=getHolder(wrapper),holdersCount=countHolders(args,placeholder);if(partials&&(args=composeArgs(args,partials,holders,isCurried)),partialsRight&&(args=composeArgsRight(args,partialsRight,holdersRight,isCurried)),length-=holdersCount,isCurried&&length<arity){var newHolders=replaceHolders(args,placeholder);return createRecurry(func,bitmask,createHybrid,wrapper.placeholder,thisArg,args,newHolders,argPos,ary,arity-length)}var thisBinding=isBind?thisArg:this,fn=isBindKey?thisBinding[func]:func;return length=args.length,argPos?args=reorder(args,argPos):isFlip&&length>1&&args.reverse(),isAry&&ary<length&&(args.length=ary),this&&this!==root&&this instanceof wrapper&&(fn=Ctor||createCtor(fn)),fn.apply(thisBinding,args)}var isAry=bitmask&WRAP_ARY_FLAG,isBind=bitmask&WRAP_BIND_FLAG,isBindKey=bitmask&WRAP_BIND_KEY_FLAG,isCurried=bitmask&(WRAP_CURRY_FLAG|WRAP_CURRY_RIGHT_FLAG),isFlip=bitmask&WRAP_FLIP_FLAG,Ctor=isBindKey?undefined:createCtor(func);return wrapper}function createInverter(setter,toIteratee){return function(object,iteratee){return baseInverter(object,setter,toIteratee(iteratee),{})}}function createMathOperation(operator,defaultValue){return function(value,other){var result;if(value===undefined&&other===undefined)return defaultValue;if(value!==undefined&&(result=value),other!==undefined){if(result===undefined)return other;"string"==typeof value||"string"==typeof other?(value=baseToString(value),other=baseToString(other)):(value=baseToNumber(value),other=baseToNumber(other)),result=operator(value,other)}return result}}function createOver(arrayFunc){return flatRest(function(iteratees){return iteratees=arrayMap(iteratees,baseUnary(getIteratee())),baseRest(function(args){var thisArg=this;return arrayFunc(iteratees,function(iteratee){return apply(iteratee,thisArg,args)})})})}function createPadding(length,chars){chars=chars===undefined?" ":baseToString(chars);var charsLength=chars.length;if(charsLength<2)return charsLength?baseRepeat(chars,length):chars;var result=baseRepeat(chars,nativeCeil(length/stringSize(chars)));return hasUnicode(chars)?castSlice(stringToArray(result),0,length).join(""):result.slice(0,length)}function createPartial(func,bitmask,thisArg,partials){function wrapper(){for(var argsIndex=-1,argsLength=arguments.length,leftIndex=-1,leftLength=partials.length,args=Array(leftLength+argsLength),fn=this&&this!==root&&this instanceof wrapper?Ctor:func;++leftIndex<leftLength;)args[leftIndex]=partials[leftIndex];for(;argsLength--;)args[leftIndex++]=arguments[++argsIndex];return apply(fn,isBind?thisArg:this,args)}var isBind=bitmask&WRAP_BIND_FLAG,Ctor=createCtor(func);return wrapper}function createRange(fromRight){return function(start,end,step){return step&&"number"!=typeof step&&isIterateeCall(start,end,step)&&(end=step=undefined),start=toFinite(start),end===undefined?(end=start,start=0):end=toFinite(end),step=step===undefined?start<end?1:-1:toFinite(step),baseRange(start,end,step,fromRight)}}function createRelationalOperation(operator){return function(value,other){return"string"==typeof value&&"string"==typeof other||(value=toNumber(value),other=toNumber(other)),operator(value,other)}}function createRecurry(func,bitmask,wrapFunc,placeholder,thisArg,partials,holders,argPos,ary,arity){var isCurry=bitmask&WRAP_CURRY_FLAG,newHolders=isCurry?holders:undefined,newHoldersRight=isCurry?undefined:holders,newPartials=isCurry?partials:undefined,newPartialsRight=isCurry?undefined:partials;bitmask|=isCurry?WRAP_PARTIAL_FLAG:WRAP_PARTIAL_RIGHT_FLAG,bitmask&=~(isCurry?WRAP_PARTIAL_RIGHT_FLAG:WRAP_PARTIAL_FLAG),bitmask&WRAP_CURRY_BOUND_FLAG||(bitmask&=~(WRAP_BIND_FLAG|WRAP_BIND_KEY_FLAG));var newData=[func,bitmask,thisArg,newPartials,newHolders,newPartialsRight,newHoldersRight,argPos,ary,arity],result=wrapFunc.apply(undefined,newData);return isLaziable(func)&&setData(result,newData),result.placeholder=placeholder,setWrapToString(result,func,bitmask)}function createRound(methodName){var func=Math[methodName];return function(number,precision){if(number=toNumber(number),precision=null==precision?0:nativeMin(toInteger(precision),292)){var pair=(toString(number)+"e").split("e"),value=func(pair[0]+"e"+(+pair[1]+precision));return pair=(toString(value)+"e").split("e"),+(pair[0]+"e"+(+pair[1]-precision))}return func(number)}}function createToPairs(keysFunc){return function(object){var tag=getTag(object);return tag==mapTag?mapToArray(object):tag==setTag?setToPairs(object):baseToPairs(object,keysFunc(object))}}function createWrap(func,bitmask,thisArg,partials,holders,argPos,ary,arity){var isBindKey=bitmask&WRAP_BIND_KEY_FLAG;if(!isBindKey&&"function"!=typeof func)throw new TypeError(FUNC_ERROR_TEXT);var length=partials?partials.length:0;if(length||(bitmask&=~(WRAP_PARTIAL_FLAG|WRAP_PARTIAL_RIGHT_FLAG),partials=holders=undefined),ary=ary===undefined?ary:nativeMax(toInteger(ary),0),arity=arity===undefined?arity:toInteger(arity),length-=holders?holders.length:0,bitmask&WRAP_PARTIAL_RIGHT_FLAG){var partialsRight=partials,holdersRight=holders;partials=holders=undefined}var data=isBindKey?undefined:getData(func),newData=[func,bitmask,thisArg,partials,holders,partialsRight,holdersRight,argPos,ary,arity];if(data&&mergeData(newData,data),func=newData[0],bitmask=newData[1],thisArg=newData[2],partials=newData[3],holders=newData[4],arity=newData[9]=newData[9]===undefined?isBindKey?0:func.length:nativeMax(newData[9]-length,0),!arity&&bitmask&(WRAP_CURRY_FLAG|WRAP_CURRY_RIGHT_FLAG)&&(bitmask&=~(WRAP_CURRY_FLAG|WRAP_CURRY_RIGHT_FLAG)),
  bitmask&&bitmask!=WRAP_BIND_FLAG)result=bitmask==WRAP_CURRY_FLAG||bitmask==WRAP_CURRY_RIGHT_FLAG?createCurry(func,bitmask,arity):bitmask!=WRAP_PARTIAL_FLAG&&bitmask!=(WRAP_BIND_FLAG|WRAP_PARTIAL_FLAG)||holders.length?createHybrid.apply(undefined,newData):createPartial(func,bitmask,thisArg,partials);else var result=createBind(func,bitmask,thisArg);var setter=data?baseSetData:setData;return setWrapToString(setter(result,newData),func,bitmask)}function customDefaultsAssignIn(objValue,srcValue,key,object){return objValue===undefined||eq(objValue,objectProto[key])&&!hasOwnProperty.call(object,key)?srcValue:objValue}function customDefaultsMerge(objValue,srcValue,key,object,source,stack){return isObject(objValue)&&isObject(srcValue)&&(stack.set(srcValue,objValue),baseMerge(objValue,srcValue,undefined,customDefaultsMerge,stack),stack.delete(srcValue)),objValue}function customOmitClone(value){return isPlainObject(value)?undefined:value}function equalArrays(array,other,bitmask,customizer,equalFunc,stack){var isPartial=bitmask&COMPARE_PARTIAL_FLAG,arrLength=array.length,othLength=other.length;if(arrLength!=othLength&&!(isPartial&&othLength>arrLength))return!1;var stacked=stack.get(array);if(stacked&&stack.get(other))return stacked==other;var index=-1,result=!0,seen=bitmask&COMPARE_UNORDERED_FLAG?new SetCache:undefined;for(stack.set(array,other),stack.set(other,array);++index<arrLength;){var arrValue=array[index],othValue=other[index];if(customizer)var compared=isPartial?customizer(othValue,arrValue,index,other,array,stack):customizer(arrValue,othValue,index,array,other,stack);if(compared!==undefined){if(compared)continue;result=!1;break}if(seen){if(!arraySome(other,function(othValue,othIndex){if(!cacheHas(seen,othIndex)&&(arrValue===othValue||equalFunc(arrValue,othValue,bitmask,customizer,stack)))return seen.push(othIndex)})){result=!1;break}}else if(arrValue!==othValue&&!equalFunc(arrValue,othValue,bitmask,customizer,stack)){result=!1;break}}return stack.delete(array),stack.delete(other),result}function equalByTag(object,other,tag,bitmask,customizer,equalFunc,stack){switch(tag){case dataViewTag:if(object.byteLength!=other.byteLength||object.byteOffset!=other.byteOffset)return!1;object=object.buffer,other=other.buffer;case arrayBufferTag:return!(object.byteLength!=other.byteLength||!equalFunc(new Uint8Array(object),new Uint8Array(other)));case boolTag:case dateTag:case numberTag:return eq(+object,+other);case errorTag:return object.name==other.name&&object.message==other.message;case regexpTag:case stringTag:return object==other+"";case mapTag:var convert=mapToArray;case setTag:var isPartial=bitmask&COMPARE_PARTIAL_FLAG;if(convert||(convert=setToArray),object.size!=other.size&&!isPartial)return!1;var stacked=stack.get(object);if(stacked)return stacked==other;bitmask|=COMPARE_UNORDERED_FLAG,stack.set(object,other);var result=equalArrays(convert(object),convert(other),bitmask,customizer,equalFunc,stack);return stack.delete(object),result;case symbolTag:if(symbolValueOf)return symbolValueOf.call(object)==symbolValueOf.call(other)}return!1}function equalObjects(object,other,bitmask,customizer,equalFunc,stack){var isPartial=bitmask&COMPARE_PARTIAL_FLAG,objProps=getAllKeys(object),objLength=objProps.length,othProps=getAllKeys(other),othLength=othProps.length;if(objLength!=othLength&&!isPartial)return!1;for(var index=objLength;index--;){var key=objProps[index];if(!(isPartial?key in other:hasOwnProperty.call(other,key)))return!1}var stacked=stack.get(object);if(stacked&&stack.get(other))return stacked==other;var result=!0;stack.set(object,other),stack.set(other,object);for(var skipCtor=isPartial;++index<objLength;){key=objProps[index];var objValue=object[key],othValue=other[key];if(customizer)var compared=isPartial?customizer(othValue,objValue,key,other,object,stack):customizer(objValue,othValue,key,object,other,stack);if(!(compared===undefined?objValue===othValue||equalFunc(objValue,othValue,bitmask,customizer,stack):compared)){result=!1;break}skipCtor||(skipCtor="constructor"==key)}if(result&&!skipCtor){var objCtor=object.constructor,othCtor=other.constructor;objCtor!=othCtor&&"constructor"in object&&"constructor"in other&&!("function"==typeof objCtor&&objCtor instanceof objCtor&&"function"==typeof othCtor&&othCtor instanceof othCtor)&&(result=!1)}return stack.delete(object),stack.delete(other),result}function flatRest(func){return setToString(overRest(func,undefined,flatten),func+"")}function getAllKeys(object){return baseGetAllKeys(object,keys,getSymbols)}function getAllKeysIn(object){return baseGetAllKeys(object,keysIn,getSymbolsIn)}function getFuncName(func){for(var result=func.name+"",array=realNames[result],length=hasOwnProperty.call(realNames,result)?array.length:0;length--;){var data=array[length],otherFunc=data.func;if(null==otherFunc||otherFunc==func)return data.name}return result}function getHolder(func){var object=hasOwnProperty.call(lodash,"placeholder")?lodash:func;return object.placeholder}function getIteratee(){var result=lodash.iteratee||iteratee;return result=result===iteratee?baseIteratee:result,arguments.length?result(arguments[0],arguments[1]):result}function getMapData(map,key){var data=map.__data__;return isKeyable(key)?data["string"==typeof key?"string":"hash"]:data.map}function getMatchData(object){for(var result=keys(object),length=result.length;length--;){var key=result[length],value=object[key];result[length]=[key,value,isStrictComparable(value)]}return result}function getNative(object,key){var value=getValue(object,key);return baseIsNative(value)?value:undefined}function getRawTag(value){var isOwn=hasOwnProperty.call(value,symToStringTag),tag=value[symToStringTag];try{value[symToStringTag]=undefined;var unmasked=!0}catch(e){}var result=nativeObjectToString.call(value);return unmasked&&(isOwn?value[symToStringTag]=tag:delete value[symToStringTag]),result}function getView(start,end,transforms){for(var index=-1,length=transforms.length;++index<length;){var data=transforms[index],size=data.size;switch(data.type){case"drop":start+=size;break;case"dropRight":end-=size;break;case"take":end=nativeMin(end,start+size);break;case"takeRight":start=nativeMax(start,end-size)}}return{start:start,end:end}}function getWrapDetails(source){var match=source.match(reWrapDetails);return match?match[1].split(reSplitDetails):[]}function hasPath(object,path,hasFunc){path=castPath(path,object);for(var index=-1,length=path.length,result=!1;++index<length;){var key=toKey(path[index]);if(!(result=null!=object&&hasFunc(object,key)))break;object=object[key]}return result||++index!=length?result:(length=null==object?0:object.length,!!length&&isLength(length)&&isIndex(key,length)&&(isArray(object)||isArguments(object)))}function initCloneArray(array){var length=array.length,result=new array.constructor(length);return length&&"string"==typeof array[0]&&hasOwnProperty.call(array,"index")&&(result.index=array.index,result.input=array.input),result}function initCloneObject(object){return"function"!=typeof object.constructor||isPrototype(object)?{}:baseCreate(getPrototype(object))}function initCloneByTag(object,tag,isDeep){var Ctor=object.constructor;switch(tag){case arrayBufferTag:return cloneArrayBuffer(object);case boolTag:case dateTag:return new Ctor(+object);case dataViewTag:return cloneDataView(object,isDeep);case float32Tag:case float64Tag:case int8Tag:case int16Tag:case int32Tag:case uint8Tag:case uint8ClampedTag:case uint16Tag:case uint32Tag:return cloneTypedArray(object,isDeep);case mapTag:return new Ctor;case numberTag:case stringTag:return new Ctor(object);case regexpTag:return cloneRegExp(object);case setTag:return new Ctor;case symbolTag:return cloneSymbol(object)}}function insertWrapDetails(source,details){var length=details.length;if(!length)return source;var lastIndex=length-1;return details[lastIndex]=(length>1?"& ":"")+details[lastIndex],details=details.join(length>2?", ":" "),source.replace(reWrapComment,"{\n/* [wrapped with "+details+"] */\n")}function isFlattenable(value){return isArray(value)||isArguments(value)||!!(spreadableSymbol&&value&&value[spreadableSymbol])}function isIndex(value,length){var type=typeof value;return length=null==length?MAX_SAFE_INTEGER:length,!!length&&("number"==type||"symbol"!=type&&reIsUint.test(value))&&value>-1&&value%1==0&&value<length}function isIterateeCall(value,index,object){if(!isObject(object))return!1;var type=typeof index;return!!("number"==type?isArrayLike(object)&&isIndex(index,object.length):"string"==type&&index in object)&&eq(object[index],value)}function isKey(value,object){if(isArray(value))return!1;var type=typeof value;return!("number"!=type&&"symbol"!=type&&"boolean"!=type&&null!=value&&!isSymbol(value))||(reIsPlainProp.test(value)||!reIsDeepProp.test(value)||null!=object&&value in Object(object))}function isKeyable(value){var type=typeof value;return"string"==type||"number"==type||"symbol"==type||"boolean"==type?"__proto__"!==value:null===value}function isLaziable(func){var funcName=getFuncName(func),other=lodash[funcName];if("function"!=typeof other||!(funcName in LazyWrapper.prototype))return!1;if(func===other)return!0;var data=getData(other);return!!data&&func===data[0]}function isMasked(func){return!!maskSrcKey&&maskSrcKey in func}function isPrototype(value){var Ctor=value&&value.constructor,proto="function"==typeof Ctor&&Ctor.prototype||objectProto;return value===proto}function isStrictComparable(value){return value===value&&!isObject(value)}function matchesStrictComparable(key,srcValue){return function(object){return null!=object&&(object[key]===srcValue&&(srcValue!==undefined||key in Object(object)))}}function memoizeCapped(func){var result=memoize(func,function(key){return cache.size===MAX_MEMOIZE_SIZE&&cache.clear(),key}),cache=result.cache;return result}function mergeData(data,source){var bitmask=data[1],srcBitmask=source[1],newBitmask=bitmask|srcBitmask,isCommon=newBitmask<(WRAP_BIND_FLAG|WRAP_BIND_KEY_FLAG|WRAP_ARY_FLAG),isCombo=srcBitmask==WRAP_ARY_FLAG&&bitmask==WRAP_CURRY_FLAG||srcBitmask==WRAP_ARY_FLAG&&bitmask==WRAP_REARG_FLAG&&data[7].length<=source[8]||srcBitmask==(WRAP_ARY_FLAG|WRAP_REARG_FLAG)&&source[7].length<=source[8]&&bitmask==WRAP_CURRY_FLAG;if(!isCommon&&!isCombo)return data;srcBitmask&WRAP_BIND_FLAG&&(data[2]=source[2],newBitmask|=bitmask&WRAP_BIND_FLAG?0:WRAP_CURRY_BOUND_FLAG);var value=source[3];if(value){var partials=data[3];data[3]=partials?composeArgs(partials,value,source[4]):value,data[4]=partials?replaceHolders(data[3],PLACEHOLDER):source[4]}return value=source[5],value&&(partials=data[5],data[5]=partials?composeArgsRight(partials,value,source[6]):value,data[6]=partials?replaceHolders(data[5],PLACEHOLDER):source[6]),value=source[7],value&&(data[7]=value),srcBitmask&WRAP_ARY_FLAG&&(data[8]=null==data[8]?source[8]:nativeMin(data[8],source[8])),null==data[9]&&(data[9]=source[9]),data[0]=source[0],data[1]=newBitmask,data}function nativeKeysIn(object){var result=[];if(null!=object)for(var key in Object(object))result.push(key);return result}function objectToString(value){return nativeObjectToString.call(value)}function overRest(func,start,transform){return start=nativeMax(start===undefined?func.length-1:start,0),function(){for(var args=arguments,index=-1,length=nativeMax(args.length-start,0),array=Array(length);++index<length;)array[index]=args[start+index];index=-1;for(var otherArgs=Array(start+1);++index<start;)otherArgs[index]=args[index];return otherArgs[start]=transform(array),apply(func,this,otherArgs)}}function parent(object,path){return path.length<2?object:baseGet(object,baseSlice(path,0,-1))}function reorder(array,indexes){for(var arrLength=array.length,length=nativeMin(indexes.length,arrLength),oldArray=copyArray(array);length--;){var index=indexes[length];array[length]=isIndex(index,arrLength)?oldArray[index]:undefined}return array}function setWrapToString(wrapper,reference,bitmask){var source=reference+"";return setToString(wrapper,insertWrapDetails(source,updateWrapDetails(getWrapDetails(source),bitmask)))}function shortOut(func){var count=0,lastCalled=0;return function(){var stamp=nativeNow(),remaining=HOT_SPAN-(stamp-lastCalled);if(lastCalled=stamp,remaining>0){if(++count>=HOT_COUNT)return arguments[0]}else count=0;return func.apply(undefined,arguments)}}function shuffleSelf(array,size){var index=-1,length=array.length,lastIndex=length-1;for(size=size===undefined?length:size;++index<size;){var rand=baseRandom(index,lastIndex),value=array[rand];array[rand]=array[index],array[index]=value}return array.length=size,array}function toKey(value){if("string"==typeof value||isSymbol(value))return value;var result=value+"";return"0"==result&&1/value==-INFINITY?"-0":result}function toSource(func){if(null!=func){try{return funcToString.call(func)}catch(e){}try{return func+""}catch(e){}}return""}function updateWrapDetails(details,bitmask){return arrayEach(wrapFlags,function(pair){var value="_."+pair[0];bitmask&pair[1]&&!arrayIncludes(details,value)&&details.push(value)}),details.sort()}function wrapperClone(wrapper){if(wrapper instanceof LazyWrapper)return wrapper.clone();var result=new LodashWrapper(wrapper.__wrapped__,wrapper.__chain__);return result.__actions__=copyArray(wrapper.__actions__),result.__index__=wrapper.__index__,result.__values__=wrapper.__values__,result}function chunk(array,size,guard){size=(guard?isIterateeCall(array,size,guard):size===undefined)?1:nativeMax(toInteger(size),0);var length=null==array?0:array.length;if(!length||size<1)return[];for(var index=0,resIndex=0,result=Array(nativeCeil(length/size));index<length;)result[resIndex++]=baseSlice(array,index,index+=size);return result}function compact(array){for(var index=-1,length=null==array?0:array.length,resIndex=0,result=[];++index<length;){var value=array[index];value&&(result[resIndex++]=value)}return result}function concat(){var length=arguments.length;if(!length)return[];for(var args=Array(length-1),array=arguments[0],index=length;index--;)args[index-1]=arguments[index];return arrayPush(isArray(array)?copyArray(array):[array],baseFlatten(args,1))}function drop(array,n,guard){var length=null==array?0:array.length;return length?(n=guard||n===undefined?1:toInteger(n),baseSlice(array,n<0?0:n,length)):[]}function dropRight(array,n,guard){var length=null==array?0:array.length;return length?(n=guard||n===undefined?1:toInteger(n),n=length-n,baseSlice(array,0,n<0?0:n)):[]}function dropRightWhile(array,predicate){return array&&array.length?baseWhile(array,getIteratee(predicate,3),!0,!0):[]}function dropWhile(array,predicate){return array&&array.length?baseWhile(array,getIteratee(predicate,3),!0):[]}function fill(array,value,start,end){var length=null==array?0:array.length;return length?(start&&"number"!=typeof start&&isIterateeCall(array,value,start)&&(start=0,end=length),baseFill(array,value,start,end)):[]}function findIndex(array,predicate,fromIndex){var length=null==array?0:array.length;if(!length)return-1;var index=null==fromIndex?0:toInteger(fromIndex);return index<0&&(index=nativeMax(length+index,0)),baseFindIndex(array,getIteratee(predicate,3),index)}function findLastIndex(array,predicate,fromIndex){var length=null==array?0:array.length;if(!length)return-1;var index=length-1;return fromIndex!==undefined&&(index=toInteger(fromIndex),index=fromIndex<0?nativeMax(length+index,0):nativeMin(index,length-1)),baseFindIndex(array,getIteratee(predicate,3),index,!0)}function flatten(array){var length=null==array?0:array.length;return length?baseFlatten(array,1):[]}function flattenDeep(array){var length=null==array?0:array.length;return length?baseFlatten(array,INFINITY):[]}function flattenDepth(array,depth){var length=null==array?0:array.length;return length?(depth=depth===undefined?1:toInteger(depth),baseFlatten(array,depth)):[]}function fromPairs(pairs){for(var index=-1,length=null==pairs?0:pairs.length,result={};++index<length;){var pair=pairs[index];result[pair[0]]=pair[1]}return result}function head(array){return array&&array.length?array[0]:undefined}function indexOf(array,value,fromIndex){var length=null==array?0:array.length;if(!length)return-1;var index=null==fromIndex?0:toInteger(fromIndex);return index<0&&(index=nativeMax(length+index,0)),baseIndexOf(array,value,index)}function initial(array){var length=null==array?0:array.length;return length?baseSlice(array,0,-1):[]}function join(array,separator){return null==array?"":nativeJoin.call(array,separator)}function last(array){var length=null==array?0:array.length;return length?array[length-1]:undefined}function lastIndexOf(array,value,fromIndex){var length=null==array?0:array.length;if(!length)return-1;var index=length;return fromIndex!==undefined&&(index=toInteger(fromIndex),index=index<0?nativeMax(length+index,0):nativeMin(index,length-1)),value===value?strictLastIndexOf(array,value,index):baseFindIndex(array,baseIsNaN,index,!0)}function nth(array,n){return array&&array.length?baseNth(array,toInteger(n)):undefined}function pullAll(array,values){return array&&array.length&&values&&values.length?basePullAll(array,values):array}function pullAllBy(array,values,iteratee){return array&&array.length&&values&&values.length?basePullAll(array,values,getIteratee(iteratee,2)):array}function pullAllWith(array,values,comparator){return array&&array.length&&values&&values.length?basePullAll(array,values,undefined,comparator):array}function remove(array,predicate){var result=[];if(!array||!array.length)return result;var index=-1,indexes=[],length=array.length;for(predicate=getIteratee(predicate,3);++index<length;){var value=array[index];predicate(value,index,array)&&(result.push(value),indexes.push(index))}return basePullAt(array,indexes),result}function reverse(array){return null==array?array:nativeReverse.call(array)}function slice(array,start,end){var length=null==array?0:array.length;return length?(end&&"number"!=typeof end&&isIterateeCall(array,start,end)?(start=0,end=length):(start=null==start?0:toInteger(start),end=end===undefined?length:toInteger(end)),baseSlice(array,start,end)):[]}function sortedIndex(array,value){return baseSortedIndex(array,value)}function sortedIndexBy(array,value,iteratee){return baseSortedIndexBy(array,value,getIteratee(iteratee,2))}function sortedIndexOf(array,value){var length=null==array?0:array.length;if(length){var index=baseSortedIndex(array,value);if(index<length&&eq(array[index],value))return index}return-1}function sortedLastIndex(array,value){return baseSortedIndex(array,value,!0)}function sortedLastIndexBy(array,value,iteratee){return baseSortedIndexBy(array,value,getIteratee(iteratee,2),!0)}function sortedLastIndexOf(array,value){var length=null==array?0:array.length;if(length){var index=baseSortedIndex(array,value,!0)-1;if(eq(array[index],value))return index}return-1}function sortedUniq(array){return array&&array.length?baseSortedUniq(array):[]}function sortedUniqBy(array,iteratee){return array&&array.length?baseSortedUniq(array,getIteratee(iteratee,2)):[]}function tail(array){var length=null==array?0:array.length;return length?baseSlice(array,1,length):[]}function take(array,n,guard){return array&&array.length?(n=guard||n===undefined?1:toInteger(n),baseSlice(array,0,n<0?0:n)):[]}function takeRight(array,n,guard){var length=null==array?0:array.length;return length?(n=guard||n===undefined?1:toInteger(n),n=length-n,baseSlice(array,n<0?0:n,length)):[]}function takeRightWhile(array,predicate){return array&&array.length?baseWhile(array,getIteratee(predicate,3),!1,!0):[]}function takeWhile(array,predicate){return array&&array.length?baseWhile(array,getIteratee(predicate,3)):[]}function uniq(array){return array&&array.length?baseUniq(array):[]}function uniqBy(array,iteratee){return array&&array.length?baseUniq(array,getIteratee(iteratee,2)):[]}function uniqWith(array,comparator){return comparator="function"==typeof comparator?comparator:undefined,array&&array.length?baseUniq(array,undefined,comparator):[]}function unzip(array){if(!array||!array.length)return[];var length=0;return array=arrayFilter(array,function(group){if(isArrayLikeObject(group))return length=nativeMax(group.length,length),!0}),baseTimes(length,function(index){return arrayMap(array,baseProperty(index))})}function unzipWith(array,iteratee){if(!array||!array.length)return[];var result=unzip(array);return null==iteratee?result:arrayMap(result,function(group){return apply(iteratee,undefined,group)})}function zipObject(props,values){return baseZipObject(props||[],values||[],assignValue)}function zipObjectDeep(props,values){return baseZipObject(props||[],values||[],baseSet)}function chain(value){var result=lodash(value);return result.__chain__=!0,result}function tap(value,interceptor){return interceptor(value),value}function thru(value,interceptor){return interceptor(value)}function wrapperChain(){return chain(this)}function wrapperCommit(){return new LodashWrapper(this.value(),this.__chain__)}function wrapperNext(){this.__values__===undefined&&(this.__values__=toArray(this.value()));var done=this.__index__>=this.__values__.length,value=done?undefined:this.__values__[this.__index__++];return{done:done,value:value}}function wrapperToIterator(){return this}function wrapperPlant(value){for(var result,parent=this;parent instanceof baseLodash;){var clone=wrapperClone(parent);clone.__index__=0,clone.__values__=undefined,result?previous.__wrapped__=clone:result=clone;var previous=clone;parent=parent.__wrapped__}return previous.__wrapped__=value,result}function wrapperReverse(){var value=this.__wrapped__;if(value instanceof LazyWrapper){var wrapped=value;return this.__actions__.length&&(wrapped=new LazyWrapper(this)),wrapped=wrapped.reverse(),wrapped.__actions__.push({func:thru,args:[reverse],thisArg:undefined}),new LodashWrapper(wrapped,this.__chain__)}return this.thru(reverse)}function wrapperValue(){return baseWrapperValue(this.__wrapped__,this.__actions__)}function every(collection,predicate,guard){var func=isArray(collection)?arrayEvery:baseEvery;return guard&&isIterateeCall(collection,predicate,guard)&&(predicate=undefined),func(collection,getIteratee(predicate,3))}function filter(collection,predicate){var func=isArray(collection)?arrayFilter:baseFilter;return func(collection,getIteratee(predicate,3))}function flatMap(collection,iteratee){return baseFlatten(map(collection,iteratee),1)}function flatMapDeep(collection,iteratee){return baseFlatten(map(collection,iteratee),INFINITY)}function flatMapDepth(collection,iteratee,depth){return depth=depth===undefined?1:toInteger(depth),baseFlatten(map(collection,iteratee),depth)}function forEach(collection,iteratee){var func=isArray(collection)?arrayEach:baseEach;return func(collection,getIteratee(iteratee,3))}function forEachRight(collection,iteratee){var func=isArray(collection)?arrayEachRight:baseEachRight;return func(collection,getIteratee(iteratee,3))}function includes(collection,value,fromIndex,guard){collection=isArrayLike(collection)?collection:values(collection),fromIndex=fromIndex&&!guard?toInteger(fromIndex):0;var length=collection.length;return fromIndex<0&&(fromIndex=nativeMax(length+fromIndex,0)),isString(collection)?fromIndex<=length&&collection.indexOf(value,fromIndex)>-1:!!length&&baseIndexOf(collection,value,fromIndex)>-1}function map(collection,iteratee){var func=isArray(collection)?arrayMap:baseMap;return func(collection,getIteratee(iteratee,3))}function orderBy(collection,iteratees,orders,guard){return null==collection?[]:(isArray(iteratees)||(iteratees=null==iteratees?[]:[iteratees]),orders=guard?undefined:orders,isArray(orders)||(orders=null==orders?[]:[orders]),baseOrderBy(collection,iteratees,orders))}function reduce(collection,iteratee,accumulator){var func=isArray(collection)?arrayReduce:baseReduce,initAccum=arguments.length<3;return func(collection,getIteratee(iteratee,4),accumulator,initAccum,baseEach)}function reduceRight(collection,iteratee,accumulator){var func=isArray(collection)?arrayReduceRight:baseReduce,initAccum=arguments.length<3;return func(collection,getIteratee(iteratee,4),accumulator,initAccum,baseEachRight)}function reject(collection,predicate){var func=isArray(collection)?arrayFilter:baseFilter;return func(collection,negate(getIteratee(predicate,3)))}function sample(collection){var func=isArray(collection)?arraySample:baseSample;return func(collection)}function sampleSize(collection,n,guard){n=(guard?isIterateeCall(collection,n,guard):n===undefined)?1:toInteger(n);var func=isArray(collection)?arraySampleSize:baseSampleSize;return func(collection,n)}function shuffle(collection){var func=isArray(collection)?arrayShuffle:baseShuffle;return func(collection)}function size(collection){if(null==collection)return 0;if(isArrayLike(collection))return isString(collection)?stringSize(collection):collection.length;var tag=getTag(collection);return tag==mapTag||tag==setTag?collection.size:baseKeys(collection).length}function some(collection,predicate,guard){var func=isArray(collection)?arraySome:baseSome;return guard&&isIterateeCall(collection,predicate,guard)&&(predicate=undefined),func(collection,getIteratee(predicate,3))}function after(n,func){if("function"!=typeof func)throw new TypeError(FUNC_ERROR_TEXT);return n=toInteger(n),function(){if(--n<1)return func.apply(this,arguments)}}function ary(func,n,guard){return n=guard?undefined:n,n=func&&null==n?func.length:n,createWrap(func,WRAP_ARY_FLAG,undefined,undefined,undefined,undefined,n)}function before(n,func){var result;if("function"!=typeof func)throw new TypeError(FUNC_ERROR_TEXT);return n=toInteger(n),function(){return--n>0&&(result=func.apply(this,arguments)),n<=1&&(func=undefined),result}}function curry(func,arity,guard){arity=guard?undefined:arity;var result=createWrap(func,WRAP_CURRY_FLAG,undefined,undefined,undefined,undefined,undefined,arity);return result.placeholder=curry.placeholder,result}function curryRight(func,arity,guard){arity=guard?undefined:arity;var result=createWrap(func,WRAP_CURRY_RIGHT_FLAG,undefined,undefined,undefined,undefined,undefined,arity);return result.placeholder=curryRight.placeholder,result}function debounce(func,wait,options){function invokeFunc(time){var args=lastArgs,thisArg=lastThis;return lastArgs=lastThis=undefined,lastInvokeTime=time,result=func.apply(thisArg,args)}function leadingEdge(time){return lastInvokeTime=time,timerId=setTimeout(timerExpired,wait),leading?invokeFunc(time):result}function remainingWait(time){var timeSinceLastCall=time-lastCallTime,timeSinceLastInvoke=time-lastInvokeTime,timeWaiting=wait-timeSinceLastCall;return maxing?nativeMin(timeWaiting,maxWait-timeSinceLastInvoke):timeWaiting}function shouldInvoke(time){var timeSinceLastCall=time-lastCallTime,timeSinceLastInvoke=time-lastInvokeTime;return lastCallTime===undefined||timeSinceLastCall>=wait||timeSinceLastCall<0||maxing&&timeSinceLastInvoke>=maxWait}function timerExpired(){var time=now();return shouldInvoke(time)?trailingEdge(time):void(timerId=setTimeout(timerExpired,remainingWait(time)))}function trailingEdge(time){return timerId=undefined,trailing&&lastArgs?invokeFunc(time):(lastArgs=lastThis=undefined,result)}function cancel(){timerId!==undefined&&clearTimeout(timerId),lastInvokeTime=0,lastArgs=lastCallTime=lastThis=timerId=undefined}function flush(){return timerId===undefined?result:trailingEdge(now())}function debounced(){var time=now(),isInvoking=shouldInvoke(time);if(lastArgs=arguments,lastThis=this,lastCallTime=time,isInvoking){if(timerId===undefined)return leadingEdge(lastCallTime);if(maxing)return timerId=setTimeout(timerExpired,wait),invokeFunc(lastCallTime)}return timerId===undefined&&(timerId=setTimeout(timerExpired,wait)),result}var lastArgs,lastThis,maxWait,result,timerId,lastCallTime,lastInvokeTime=0,leading=!1,maxing=!1,trailing=!0;if("function"!=typeof func)throw new TypeError(FUNC_ERROR_TEXT);return wait=toNumber(wait)||0,isObject(options)&&(leading=!!options.leading,maxing="maxWait"in options,maxWait=maxing?nativeMax(toNumber(options.maxWait)||0,wait):maxWait,trailing="trailing"in options?!!options.trailing:trailing),debounced.cancel=cancel,debounced.flush=flush,debounced}function flip(func){return createWrap(func,WRAP_FLIP_FLAG)}function memoize(func,resolver){if("function"!=typeof func||null!=resolver&&"function"!=typeof resolver)throw new TypeError(FUNC_ERROR_TEXT);var memoized=function(){var args=arguments,key=resolver?resolver.apply(this,args):args[0],cache=memoized.cache;if(cache.has(key))return cache.get(key);var result=func.apply(this,args);return memoized.cache=cache.set(key,result)||cache,result};return memoized.cache=new(memoize.Cache||MapCache),memoized}function negate(predicate){if("function"!=typeof predicate)throw new TypeError(FUNC_ERROR_TEXT);return function(){var args=arguments;switch(args.length){case 0:return!predicate.call(this);case 1:return!predicate.call(this,args[0]);case 2:return!predicate.call(this,args[0],args[1]);case 3:return!predicate.call(this,args[0],args[1],args[2])}return!predicate.apply(this,args)}}function once(func){return before(2,func)}function rest(func,start){if("function"!=typeof func)throw new TypeError(FUNC_ERROR_TEXT);return start=start===undefined?start:toInteger(start),baseRest(func,start)}function spread(func,start){if("function"!=typeof func)throw new TypeError(FUNC_ERROR_TEXT);return start=null==start?0:nativeMax(toInteger(start),0),baseRest(function(args){var array=args[start],otherArgs=castSlice(args,0,start);return array&&arrayPush(otherArgs,array),apply(func,this,otherArgs)})}function throttle(func,wait,options){var leading=!0,trailing=!0;if("function"!=typeof func)throw new TypeError(FUNC_ERROR_TEXT);return isObject(options)&&(leading="leading"in options?!!options.leading:leading,trailing="trailing"in options?!!options.trailing:trailing),debounce(func,wait,{leading:leading,maxWait:wait,trailing:trailing})}function unary(func){return ary(func,1)}function wrap(value,wrapper){return partial(castFunction(wrapper),value)}function castArray(){if(!arguments.length)return[];var value=arguments[0];return isArray(value)?value:[value]}function clone(value){return baseClone(value,CLONE_SYMBOLS_FLAG)}function cloneWith(value,customizer){return customizer="function"==typeof customizer?customizer:undefined,baseClone(value,CLONE_SYMBOLS_FLAG,customizer)}function cloneDeep(value){return baseClone(value,CLONE_DEEP_FLAG|CLONE_SYMBOLS_FLAG)}function cloneDeepWith(value,customizer){return customizer="function"==typeof customizer?customizer:undefined,baseClone(value,CLONE_DEEP_FLAG|CLONE_SYMBOLS_FLAG,customizer)}function conformsTo(object,source){return null==source||baseConformsTo(object,source,keys(source))}function eq(value,other){return value===other||value!==value&&other!==other}function isArrayLike(value){return null!=value&&isLength(value.length)&&!isFunction(value)}function isArrayLikeObject(value){return isObjectLike(value)&&isArrayLike(value)}function isBoolean(value){return value===!0||value===!1||isObjectLike(value)&&baseGetTag(value)==boolTag}function isElement(value){return isObjectLike(value)&&1===value.nodeType&&!isPlainObject(value)}function isEmpty(value){if(null==value)return!0;if(isArrayLike(value)&&(isArray(value)||"string"==typeof value||"function"==typeof value.splice||isBuffer(value)||isTypedArray(value)||isArguments(value)))return!value.length;var tag=getTag(value);if(tag==mapTag||tag==setTag)return!value.size;if(isPrototype(value))return!baseKeys(value).length;for(var key in value)if(hasOwnProperty.call(value,key))return!1;return!0}function isEqual(value,other){return baseIsEqual(value,other)}function isEqualWith(value,other,customizer){customizer="function"==typeof customizer?customizer:undefined;var result=customizer?customizer(value,other):undefined;return result===undefined?baseIsEqual(value,other,undefined,customizer):!!result}function isError(value){if(!isObjectLike(value))return!1;var tag=baseGetTag(value);return tag==errorTag||tag==domExcTag||"string"==typeof value.message&&"string"==typeof value.name&&!isPlainObject(value)}function isFinite(value){return"number"==typeof value&&nativeIsFinite(value);
  }function isFunction(value){if(!isObject(value))return!1;var tag=baseGetTag(value);return tag==funcTag||tag==genTag||tag==asyncTag||tag==proxyTag}function isInteger(value){return"number"==typeof value&&value==toInteger(value)}function isLength(value){return"number"==typeof value&&value>-1&&value%1==0&&value<=MAX_SAFE_INTEGER}function isObject(value){var type=typeof value;return null!=value&&("object"==type||"function"==type)}function isObjectLike(value){return null!=value&&"object"==typeof value}function isMatch(object,source){return object===source||baseIsMatch(object,source,getMatchData(source))}function isMatchWith(object,source,customizer){return customizer="function"==typeof customizer?customizer:undefined,baseIsMatch(object,source,getMatchData(source),customizer)}function isNaN(value){return isNumber(value)&&value!=+value}function isNative(value){if(isMaskable(value))throw new Error(CORE_ERROR_TEXT);return baseIsNative(value)}function isNull(value){return null===value}function isNil(value){return null==value}function isNumber(value){return"number"==typeof value||isObjectLike(value)&&baseGetTag(value)==numberTag}function isPlainObject(value){if(!isObjectLike(value)||baseGetTag(value)!=objectTag)return!1;var proto=getPrototype(value);if(null===proto)return!0;var Ctor=hasOwnProperty.call(proto,"constructor")&&proto.constructor;return"function"==typeof Ctor&&Ctor instanceof Ctor&&funcToString.call(Ctor)==objectCtorString}function isSafeInteger(value){return isInteger(value)&&value>=-MAX_SAFE_INTEGER&&value<=MAX_SAFE_INTEGER}function isString(value){return"string"==typeof value||!isArray(value)&&isObjectLike(value)&&baseGetTag(value)==stringTag}function isSymbol(value){return"symbol"==typeof value||isObjectLike(value)&&baseGetTag(value)==symbolTag}function isUndefined(value){return value===undefined}function isWeakMap(value){return isObjectLike(value)&&getTag(value)==weakMapTag}function isWeakSet(value){return isObjectLike(value)&&baseGetTag(value)==weakSetTag}function toArray(value){if(!value)return[];if(isArrayLike(value))return isString(value)?stringToArray(value):copyArray(value);if(symIterator&&value[symIterator])return iteratorToArray(value[symIterator]());var tag=getTag(value),func=tag==mapTag?mapToArray:tag==setTag?setToArray:values;return func(value)}function toFinite(value){if(!value)return 0===value?value:0;if(value=toNumber(value),value===INFINITY||value===-INFINITY){var sign=value<0?-1:1;return sign*MAX_INTEGER}return value===value?value:0}function toInteger(value){var result=toFinite(value),remainder=result%1;return result===result?remainder?result-remainder:result:0}function toLength(value){return value?baseClamp(toInteger(value),0,MAX_ARRAY_LENGTH):0}function toNumber(value){if("number"==typeof value)return value;if(isSymbol(value))return NAN;if(isObject(value)){var other="function"==typeof value.valueOf?value.valueOf():value;value=isObject(other)?other+"":other}if("string"!=typeof value)return 0===value?value:+value;value=value.replace(reTrim,"");var isBinary=reIsBinary.test(value);return isBinary||reIsOctal.test(value)?freeParseInt(value.slice(2),isBinary?2:8):reIsBadHex.test(value)?NAN:+value}function toPlainObject(value){return copyObject(value,keysIn(value))}function toSafeInteger(value){return value?baseClamp(toInteger(value),-MAX_SAFE_INTEGER,MAX_SAFE_INTEGER):0===value?value:0}function toString(value){return null==value?"":baseToString(value)}function create(prototype,properties){var result=baseCreate(prototype);return null==properties?result:baseAssign(result,properties)}function findKey(object,predicate){return baseFindKey(object,getIteratee(predicate,3),baseForOwn)}function findLastKey(object,predicate){return baseFindKey(object,getIteratee(predicate,3),baseForOwnRight)}function forIn(object,iteratee){return null==object?object:baseFor(object,getIteratee(iteratee,3),keysIn)}function forInRight(object,iteratee){return null==object?object:baseForRight(object,getIteratee(iteratee,3),keysIn)}function forOwn(object,iteratee){return object&&baseForOwn(object,getIteratee(iteratee,3))}function forOwnRight(object,iteratee){return object&&baseForOwnRight(object,getIteratee(iteratee,3))}function functions(object){return null==object?[]:baseFunctions(object,keys(object))}function functionsIn(object){return null==object?[]:baseFunctions(object,keysIn(object))}function get(object,path,defaultValue){var result=null==object?undefined:baseGet(object,path);return result===undefined?defaultValue:result}function has(object,path){return null!=object&&hasPath(object,path,baseHas)}function hasIn(object,path){return null!=object&&hasPath(object,path,baseHasIn)}function keys(object){return isArrayLike(object)?arrayLikeKeys(object):baseKeys(object)}function keysIn(object){return isArrayLike(object)?arrayLikeKeys(object,!0):baseKeysIn(object)}function mapKeys(object,iteratee){var result={};return iteratee=getIteratee(iteratee,3),baseForOwn(object,function(value,key,object){baseAssignValue(result,iteratee(value,key,object),value)}),result}function mapValues(object,iteratee){var result={};return iteratee=getIteratee(iteratee,3),baseForOwn(object,function(value,key,object){baseAssignValue(result,key,iteratee(value,key,object))}),result}function omitBy(object,predicate){return pickBy(object,negate(getIteratee(predicate)))}function pickBy(object,predicate){if(null==object)return{};var props=arrayMap(getAllKeysIn(object),function(prop){return[prop]});return predicate=getIteratee(predicate),basePickBy(object,props,function(value,path){return predicate(value,path[0])})}function result(object,path,defaultValue){path=castPath(path,object);var index=-1,length=path.length;for(length||(length=1,object=undefined);++index<length;){var value=null==object?undefined:object[toKey(path[index])];value===undefined&&(index=length,value=defaultValue),object=isFunction(value)?value.call(object):value}return object}function set(object,path,value){return null==object?object:baseSet(object,path,value)}function setWith(object,path,value,customizer){return customizer="function"==typeof customizer?customizer:undefined,null==object?object:baseSet(object,path,value,customizer)}function transform(object,iteratee,accumulator){var isArr=isArray(object),isArrLike=isArr||isBuffer(object)||isTypedArray(object);if(iteratee=getIteratee(iteratee,4),null==accumulator){var Ctor=object&&object.constructor;accumulator=isArrLike?isArr?new Ctor:[]:isObject(object)&&isFunction(Ctor)?baseCreate(getPrototype(object)):{}}return(isArrLike?arrayEach:baseForOwn)(object,function(value,index,object){return iteratee(accumulator,value,index,object)}),accumulator}function unset(object,path){return null==object||baseUnset(object,path)}function update(object,path,updater){return null==object?object:baseUpdate(object,path,castFunction(updater))}function updateWith(object,path,updater,customizer){return customizer="function"==typeof customizer?customizer:undefined,null==object?object:baseUpdate(object,path,castFunction(updater),customizer)}function values(object){return null==object?[]:baseValues(object,keys(object))}function valuesIn(object){return null==object?[]:baseValues(object,keysIn(object))}function clamp(number,lower,upper){return upper===undefined&&(upper=lower,lower=undefined),upper!==undefined&&(upper=toNumber(upper),upper=upper===upper?upper:0),lower!==undefined&&(lower=toNumber(lower),lower=lower===lower?lower:0),baseClamp(toNumber(number),lower,upper)}function inRange(number,start,end){return start=toFinite(start),end===undefined?(end=start,start=0):end=toFinite(end),number=toNumber(number),baseInRange(number,start,end)}function random(lower,upper,floating){if(floating&&"boolean"!=typeof floating&&isIterateeCall(lower,upper,floating)&&(upper=floating=undefined),floating===undefined&&("boolean"==typeof upper?(floating=upper,upper=undefined):"boolean"==typeof lower&&(floating=lower,lower=undefined)),lower===undefined&&upper===undefined?(lower=0,upper=1):(lower=toFinite(lower),upper===undefined?(upper=lower,lower=0):upper=toFinite(upper)),lower>upper){var temp=lower;lower=upper,upper=temp}if(floating||lower%1||upper%1){var rand=nativeRandom();return nativeMin(lower+rand*(upper-lower+freeParseFloat("1e-"+((rand+"").length-1))),upper)}return baseRandom(lower,upper)}function capitalize(string){return upperFirst(toString(string).toLowerCase())}function deburr(string){return string=toString(string),string&&string.replace(reLatin,deburrLetter).replace(reComboMark,"")}function endsWith(string,target,position){string=toString(string),target=baseToString(target);var length=string.length;position=position===undefined?length:baseClamp(toInteger(position),0,length);var end=position;return position-=target.length,position>=0&&string.slice(position,end)==target}function escape(string){return string=toString(string),string&&reHasUnescapedHtml.test(string)?string.replace(reUnescapedHtml,escapeHtmlChar):string}function escapeRegExp(string){return string=toString(string),string&&reHasRegExpChar.test(string)?string.replace(reRegExpChar,"\\$&"):string}function pad(string,length,chars){string=toString(string),length=toInteger(length);var strLength=length?stringSize(string):0;if(!length||strLength>=length)return string;var mid=(length-strLength)/2;return createPadding(nativeFloor(mid),chars)+string+createPadding(nativeCeil(mid),chars)}function padEnd(string,length,chars){string=toString(string),length=toInteger(length);var strLength=length?stringSize(string):0;return length&&strLength<length?string+createPadding(length-strLength,chars):string}function padStart(string,length,chars){string=toString(string),length=toInteger(length);var strLength=length?stringSize(string):0;return length&&strLength<length?createPadding(length-strLength,chars)+string:string}function parseInt(string,radix,guard){return guard||null==radix?radix=0:radix&&(radix=+radix),nativeParseInt(toString(string).replace(reTrimStart,""),radix||0)}function repeat(string,n,guard){return n=(guard?isIterateeCall(string,n,guard):n===undefined)?1:toInteger(n),baseRepeat(toString(string),n)}function replace(){var args=arguments,string=toString(args[0]);return args.length<3?string:string.replace(args[1],args[2])}function split(string,separator,limit){return limit&&"number"!=typeof limit&&isIterateeCall(string,separator,limit)&&(separator=limit=undefined),(limit=limit===undefined?MAX_ARRAY_LENGTH:limit>>>0)?(string=toString(string),string&&("string"==typeof separator||null!=separator&&!isRegExp(separator))&&(separator=baseToString(separator),!separator&&hasUnicode(string))?castSlice(stringToArray(string),0,limit):string.split(separator,limit)):[]}function startsWith(string,target,position){return string=toString(string),position=null==position?0:baseClamp(toInteger(position),0,string.length),target=baseToString(target),string.slice(position,position+target.length)==target}function template(string,options,guard){var settings=lodash.templateSettings;guard&&isIterateeCall(string,options,guard)&&(options=undefined),string=toString(string),options=assignInWith({},options,settings,customDefaultsAssignIn);var isEscaping,isEvaluating,imports=assignInWith({},options.imports,settings.imports,customDefaultsAssignIn),importsKeys=keys(imports),importsValues=baseValues(imports,importsKeys),index=0,interpolate=options.interpolate||reNoMatch,source="__p += '",reDelimiters=RegExp((options.escape||reNoMatch).source+"|"+interpolate.source+"|"+(interpolate===reInterpolate?reEsTemplate:reNoMatch).source+"|"+(options.evaluate||reNoMatch).source+"|$","g"),sourceURL="//# sourceURL="+("sourceURL"in options?options.sourceURL:"lodash.templateSources["+ ++templateCounter+"]")+"\n";string.replace(reDelimiters,function(match,escapeValue,interpolateValue,esTemplateValue,evaluateValue,offset){return interpolateValue||(interpolateValue=esTemplateValue),source+=string.slice(index,offset).replace(reUnescapedString,escapeStringChar),escapeValue&&(isEscaping=!0,source+="' +\n__e("+escapeValue+") +\n'"),evaluateValue&&(isEvaluating=!0,source+="';\n"+evaluateValue+";\n__p += '"),interpolateValue&&(source+="' +\n((__t = ("+interpolateValue+")) == null ? '' : __t) +\n'"),index=offset+match.length,match}),source+="';\n";var variable=options.variable;variable||(source="with (obj) {\n"+source+"\n}\n"),source=(isEvaluating?source.replace(reEmptyStringLeading,""):source).replace(reEmptyStringMiddle,"$1").replace(reEmptyStringTrailing,"$1;"),source="function("+(variable||"obj")+") {\n"+(variable?"":"obj || (obj = {});\n")+"var __t, __p = ''"+(isEscaping?", __e = _.escape":"")+(isEvaluating?", __j = Array.prototype.join;\nfunction print() { __p += __j.call(arguments, '') }\n":";\n")+source+"return __p\n}";var result=attempt(function(){return Function(importsKeys,sourceURL+"return "+source).apply(undefined,importsValues)});if(result.source=source,isError(result))throw result;return result}function toLower(value){return toString(value).toLowerCase()}function toUpper(value){return toString(value).toUpperCase()}function trim(string,chars,guard){if(string=toString(string),string&&(guard||chars===undefined))return string.replace(reTrim,"");if(!string||!(chars=baseToString(chars)))return string;var strSymbols=stringToArray(string),chrSymbols=stringToArray(chars),start=charsStartIndex(strSymbols,chrSymbols),end=charsEndIndex(strSymbols,chrSymbols)+1;return castSlice(strSymbols,start,end).join("")}function trimEnd(string,chars,guard){if(string=toString(string),string&&(guard||chars===undefined))return string.replace(reTrimEnd,"");if(!string||!(chars=baseToString(chars)))return string;var strSymbols=stringToArray(string),end=charsEndIndex(strSymbols,stringToArray(chars))+1;return castSlice(strSymbols,0,end).join("")}function trimStart(string,chars,guard){if(string=toString(string),string&&(guard||chars===undefined))return string.replace(reTrimStart,"");if(!string||!(chars=baseToString(chars)))return string;var strSymbols=stringToArray(string),start=charsStartIndex(strSymbols,stringToArray(chars));return castSlice(strSymbols,start).join("")}function truncate(string,options){var length=DEFAULT_TRUNC_LENGTH,omission=DEFAULT_TRUNC_OMISSION;if(isObject(options)){var separator="separator"in options?options.separator:separator;length="length"in options?toInteger(options.length):length,omission="omission"in options?baseToString(options.omission):omission}string=toString(string);var strLength=string.length;if(hasUnicode(string)){var strSymbols=stringToArray(string);strLength=strSymbols.length}if(length>=strLength)return string;var end=length-stringSize(omission);if(end<1)return omission;var result=strSymbols?castSlice(strSymbols,0,end).join(""):string.slice(0,end);if(separator===undefined)return result+omission;if(strSymbols&&(end+=result.length-end),isRegExp(separator)){if(string.slice(end).search(separator)){var match,substring=result;for(separator.global||(separator=RegExp(separator.source,toString(reFlags.exec(separator))+"g")),separator.lastIndex=0;match=separator.exec(substring);)var newEnd=match.index;result=result.slice(0,newEnd===undefined?end:newEnd)}}else if(string.indexOf(baseToString(separator),end)!=end){var index=result.lastIndexOf(separator);index>-1&&(result=result.slice(0,index))}return result+omission}function unescape(string){return string=toString(string),string&&reHasEscapedHtml.test(string)?string.replace(reEscapedHtml,unescapeHtmlChar):string}function words(string,pattern,guard){return string=toString(string),pattern=guard?undefined:pattern,pattern===undefined?hasUnicodeWord(string)?unicodeWords(string):asciiWords(string):string.match(pattern)||[]}function cond(pairs){var length=null==pairs?0:pairs.length,toIteratee=getIteratee();return pairs=length?arrayMap(pairs,function(pair){if("function"!=typeof pair[1])throw new TypeError(FUNC_ERROR_TEXT);return[toIteratee(pair[0]),pair[1]]}):[],baseRest(function(args){for(var index=-1;++index<length;){var pair=pairs[index];if(apply(pair[0],this,args))return apply(pair[1],this,args)}})}function conforms(source){return baseConforms(baseClone(source,CLONE_DEEP_FLAG))}function constant(value){return function(){return value}}function defaultTo(value,defaultValue){return null==value||value!==value?defaultValue:value}function identity(value){return value}function iteratee(func){return baseIteratee("function"==typeof func?func:baseClone(func,CLONE_DEEP_FLAG))}function matches(source){return baseMatches(baseClone(source,CLONE_DEEP_FLAG))}function matchesProperty(path,srcValue){return baseMatchesProperty(path,baseClone(srcValue,CLONE_DEEP_FLAG))}function mixin(object,source,options){var props=keys(source),methodNames=baseFunctions(source,props);null!=options||isObject(source)&&(methodNames.length||!props.length)||(options=source,source=object,object=this,methodNames=baseFunctions(source,keys(source)));var chain=!(isObject(options)&&"chain"in options&&!options.chain),isFunc=isFunction(object);return arrayEach(methodNames,function(methodName){var func=source[methodName];object[methodName]=func,isFunc&&(object.prototype[methodName]=function(){var chainAll=this.__chain__;if(chain||chainAll){var result=object(this.__wrapped__),actions=result.__actions__=copyArray(this.__actions__);return actions.push({func:func,args:arguments,thisArg:object}),result.__chain__=chainAll,result}return func.apply(object,arrayPush([this.value()],arguments))})}),object}function noConflict(){return root._===this&&(root._=oldDash),this}function noop(){}function nthArg(n){return n=toInteger(n),baseRest(function(args){return baseNth(args,n)})}function property(path){return isKey(path)?baseProperty(toKey(path)):basePropertyDeep(path)}function propertyOf(object){return function(path){return null==object?undefined:baseGet(object,path)}}function stubArray(){return[]}function stubFalse(){return!1}function stubObject(){return{}}function stubString(){return""}function stubTrue(){return!0}function times(n,iteratee){if(n=toInteger(n),n<1||n>MAX_SAFE_INTEGER)return[];var index=MAX_ARRAY_LENGTH,length=nativeMin(n,MAX_ARRAY_LENGTH);iteratee=getIteratee(iteratee),n-=MAX_ARRAY_LENGTH;for(var result=baseTimes(length,iteratee);++index<n;)iteratee(index);return result}function toPath(value){return isArray(value)?arrayMap(value,toKey):isSymbol(value)?[value]:copyArray(stringToPath(toString(value)))}function uniqueId(prefix){var id=++idCounter;return toString(prefix)+id}function max(array){return array&&array.length?baseExtremum(array,identity,baseGt):undefined}function maxBy(array,iteratee){return array&&array.length?baseExtremum(array,getIteratee(iteratee,2),baseGt):undefined}function mean(array){return baseMean(array,identity)}function meanBy(array,iteratee){return baseMean(array,getIteratee(iteratee,2))}function min(array){return array&&array.length?baseExtremum(array,identity,baseLt):undefined}function minBy(array,iteratee){return array&&array.length?baseExtremum(array,getIteratee(iteratee,2),baseLt):undefined}function sum(array){return array&&array.length?baseSum(array,identity):0}function sumBy(array,iteratee){return array&&array.length?baseSum(array,getIteratee(iteratee,2)):0}context=null==context?root:_.defaults(root.Object(),context,_.pick(root,contextProps));var Array=context.Array,Date=context.Date,Error=context.Error,Function=context.Function,Math=context.Math,Object=context.Object,RegExp=context.RegExp,String=context.String,TypeError=context.TypeError,arrayProto=Array.prototype,funcProto=Function.prototype,objectProto=Object.prototype,coreJsData=context["__core-js_shared__"],funcToString=funcProto.toString,hasOwnProperty=objectProto.hasOwnProperty,idCounter=0,maskSrcKey=function(){var uid=/[^.]+$/.exec(coreJsData&&coreJsData.keys&&coreJsData.keys.IE_PROTO||"");return uid?"Symbol(src)_1."+uid:""}(),nativeObjectToString=objectProto.toString,objectCtorString=funcToString.call(Object),oldDash=root._,reIsNative=RegExp("^"+funcToString.call(hasOwnProperty).replace(reRegExpChar,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$"),Buffer=moduleExports?context.Buffer:undefined,Symbol=context.Symbol,Uint8Array=context.Uint8Array,allocUnsafe=Buffer?Buffer.allocUnsafe:undefined,getPrototype=overArg(Object.getPrototypeOf,Object),objectCreate=Object.create,propertyIsEnumerable=objectProto.propertyIsEnumerable,splice=arrayProto.splice,spreadableSymbol=Symbol?Symbol.isConcatSpreadable:undefined,symIterator=Symbol?Symbol.iterator:undefined,symToStringTag=Symbol?Symbol.toStringTag:undefined,defineProperty=function(){try{var func=getNative(Object,"defineProperty");return func({},"",{}),func}catch(e){}}(),ctxClearTimeout=context.clearTimeout!==root.clearTimeout&&context.clearTimeout,ctxNow=Date&&Date.now!==root.Date.now&&Date.now,ctxSetTimeout=context.setTimeout!==root.setTimeout&&context.setTimeout,nativeCeil=Math.ceil,nativeFloor=Math.floor,nativeGetSymbols=Object.getOwnPropertySymbols,nativeIsBuffer=Buffer?Buffer.isBuffer:undefined,nativeIsFinite=context.isFinite,nativeJoin=arrayProto.join,nativeKeys=overArg(Object.keys,Object),nativeMax=Math.max,nativeMin=Math.min,nativeNow=Date.now,nativeParseInt=context.parseInt,nativeRandom=Math.random,nativeReverse=arrayProto.reverse,DataView=getNative(context,"DataView"),Map=getNative(context,"Map"),Promise=getNative(context,"Promise"),Set=getNative(context,"Set"),WeakMap=getNative(context,"WeakMap"),nativeCreate=getNative(Object,"create"),metaMap=WeakMap&&new WeakMap,realNames={},dataViewCtorString=toSource(DataView),mapCtorString=toSource(Map),promiseCtorString=toSource(Promise),setCtorString=toSource(Set),weakMapCtorString=toSource(WeakMap),symbolProto=Symbol?Symbol.prototype:undefined,symbolValueOf=symbolProto?symbolProto.valueOf:undefined,symbolToString=symbolProto?symbolProto.toString:undefined,baseCreate=function(){function object(){}return function(proto){if(!isObject(proto))return{};if(objectCreate)return objectCreate(proto);object.prototype=proto;var result=new object;return object.prototype=undefined,result}}();lodash.templateSettings={escape:reEscape,evaluate:reEvaluate,interpolate:reInterpolate,variable:"",imports:{_:lodash}},lodash.prototype=baseLodash.prototype,lodash.prototype.constructor=lodash,LodashWrapper.prototype=baseCreate(baseLodash.prototype),LodashWrapper.prototype.constructor=LodashWrapper,LazyWrapper.prototype=baseCreate(baseLodash.prototype),LazyWrapper.prototype.constructor=LazyWrapper,Hash.prototype.clear=hashClear,Hash.prototype.delete=hashDelete,Hash.prototype.get=hashGet,Hash.prototype.has=hashHas,Hash.prototype.set=hashSet,ListCache.prototype.clear=listCacheClear,ListCache.prototype.delete=listCacheDelete,ListCache.prototype.get=listCacheGet,ListCache.prototype.has=listCacheHas,ListCache.prototype.set=listCacheSet,MapCache.prototype.clear=mapCacheClear,MapCache.prototype.delete=mapCacheDelete,MapCache.prototype.get=mapCacheGet,MapCache.prototype.has=mapCacheHas,MapCache.prototype.set=mapCacheSet,SetCache.prototype.add=SetCache.prototype.push=setCacheAdd,SetCache.prototype.has=setCacheHas,Stack.prototype.clear=stackClear,Stack.prototype.delete=stackDelete,Stack.prototype.get=stackGet,Stack.prototype.has=stackHas,Stack.prototype.set=stackSet;var baseEach=createBaseEach(baseForOwn),baseEachRight=createBaseEach(baseForOwnRight,!0),baseFor=createBaseFor(),baseForRight=createBaseFor(!0),baseSetData=metaMap?function(func,data){return metaMap.set(func,data),func}:identity,baseSetToString=defineProperty?function(func,string){return defineProperty(func,"toString",{configurable:!0,enumerable:!1,value:constant(string),writable:!0})}:identity,castRest=baseRest,clearTimeout=ctxClearTimeout||function(id){return root.clearTimeout(id)},createSet=Set&&1/setToArray(new Set([,-0]))[1]==INFINITY?function(values){return new Set(values)}:noop,getData=metaMap?function(func){return metaMap.get(func)}:noop,getSymbols=nativeGetSymbols?function(object){return null==object?[]:(object=Object(object),arrayFilter(nativeGetSymbols(object),function(symbol){return propertyIsEnumerable.call(object,symbol)}))}:stubArray,getSymbolsIn=nativeGetSymbols?function(object){for(var result=[];object;)arrayPush(result,getSymbols(object)),object=getPrototype(object);return result}:stubArray,getTag=baseGetTag;(DataView&&getTag(new DataView(new ArrayBuffer(1)))!=dataViewTag||Map&&getTag(new Map)!=mapTag||Promise&&getTag(Promise.resolve())!=promiseTag||Set&&getTag(new Set)!=setTag||WeakMap&&getTag(new WeakMap)!=weakMapTag)&&(getTag=function(value){var result=baseGetTag(value),Ctor=result==objectTag?value.constructor:undefined,ctorString=Ctor?toSource(Ctor):"";if(ctorString)switch(ctorString){case dataViewCtorString:return dataViewTag;case mapCtorString:return mapTag;case promiseCtorString:return promiseTag;case setCtorString:return setTag;case weakMapCtorString:return weakMapTag}return result});var isMaskable=coreJsData?isFunction:stubFalse,setData=shortOut(baseSetData),setTimeout=ctxSetTimeout||function(func,wait){return root.setTimeout(func,wait)},setToString=shortOut(baseSetToString),stringToPath=memoizeCapped(function(string){var result=[];return 46===string.charCodeAt(0)&&result.push(""),string.replace(rePropName,function(match,number,quote,subString){result.push(quote?subString.replace(reEscapeChar,"$1"):number||match)}),result}),difference=baseRest(function(array,values){return isArrayLikeObject(array)?baseDifference(array,baseFlatten(values,1,isArrayLikeObject,!0)):[]}),differenceBy=baseRest(function(array,values){var iteratee=last(values);return isArrayLikeObject(iteratee)&&(iteratee=undefined),isArrayLikeObject(array)?baseDifference(array,baseFlatten(values,1,isArrayLikeObject,!0),getIteratee(iteratee,2)):[]}),differenceWith=baseRest(function(array,values){var comparator=last(values);return isArrayLikeObject(comparator)&&(comparator=undefined),isArrayLikeObject(array)?baseDifference(array,baseFlatten(values,1,isArrayLikeObject,!0),undefined,comparator):[]}),intersection=baseRest(function(arrays){var mapped=arrayMap(arrays,castArrayLikeObject);return mapped.length&&mapped[0]===arrays[0]?baseIntersection(mapped):[]}),intersectionBy=baseRest(function(arrays){var iteratee=last(arrays),mapped=arrayMap(arrays,castArrayLikeObject);return iteratee===last(mapped)?iteratee=undefined:mapped.pop(),mapped.length&&mapped[0]===arrays[0]?baseIntersection(mapped,getIteratee(iteratee,2)):[]}),intersectionWith=baseRest(function(arrays){var comparator=last(arrays),mapped=arrayMap(arrays,castArrayLikeObject);return comparator="function"==typeof comparator?comparator:undefined,comparator&&mapped.pop(),mapped.length&&mapped[0]===arrays[0]?baseIntersection(mapped,undefined,comparator):[]}),pull=baseRest(pullAll),pullAt=flatRest(function(array,indexes){var length=null==array?0:array.length,result=baseAt(array,indexes);return basePullAt(array,arrayMap(indexes,function(index){return isIndex(index,length)?+index:index}).sort(compareAscending)),result}),union=baseRest(function(arrays){return baseUniq(baseFlatten(arrays,1,isArrayLikeObject,!0))}),unionBy=baseRest(function(arrays){var iteratee=last(arrays);return isArrayLikeObject(iteratee)&&(iteratee=undefined),baseUniq(baseFlatten(arrays,1,isArrayLikeObject,!0),getIteratee(iteratee,2))}),unionWith=baseRest(function(arrays){var comparator=last(arrays);return comparator="function"==typeof comparator?comparator:undefined,baseUniq(baseFlatten(arrays,1,isArrayLikeObject,!0),undefined,comparator)}),without=baseRest(function(array,values){return isArrayLikeObject(array)?baseDifference(array,values):[]}),xor=baseRest(function(arrays){return baseXor(arrayFilter(arrays,isArrayLikeObject))}),xorBy=baseRest(function(arrays){var iteratee=last(arrays);return isArrayLikeObject(iteratee)&&(iteratee=undefined),baseXor(arrayFilter(arrays,isArrayLikeObject),getIteratee(iteratee,2))}),xorWith=baseRest(function(arrays){var comparator=last(arrays);return comparator="function"==typeof comparator?comparator:undefined,baseXor(arrayFilter(arrays,isArrayLikeObject),undefined,comparator)}),zip=baseRest(unzip),zipWith=baseRest(function(arrays){var length=arrays.length,iteratee=length>1?arrays[length-1]:undefined;return iteratee="function"==typeof iteratee?(arrays.pop(),iteratee):undefined,unzipWith(arrays,iteratee)}),wrapperAt=flatRest(function(paths){var length=paths.length,start=length?paths[0]:0,value=this.__wrapped__,interceptor=function(object){return baseAt(object,paths)};return!(length>1||this.__actions__.length)&&value instanceof LazyWrapper&&isIndex(start)?(value=value.slice(start,+start+(length?1:0)),value.__actions__.push({func:thru,args:[interceptor],thisArg:undefined}),new LodashWrapper(value,this.__chain__).thru(function(array){return length&&!array.length&&array.push(undefined),array})):this.thru(interceptor)}),countBy=createAggregator(function(result,value,key){hasOwnProperty.call(result,key)?++result[key]:baseAssignValue(result,key,1)}),find=createFind(findIndex),findLast=createFind(findLastIndex),groupBy=createAggregator(function(result,value,key){hasOwnProperty.call(result,key)?result[key].push(value):baseAssignValue(result,key,[value])}),invokeMap=baseRest(function(collection,path,args){var index=-1,isFunc="function"==typeof path,result=isArrayLike(collection)?Array(collection.length):[];return baseEach(collection,function(value){result[++index]=isFunc?apply(path,value,args):baseInvoke(value,path,args)}),result}),keyBy=createAggregator(function(result,value,key){baseAssignValue(result,key,value)}),partition=createAggregator(function(result,value,key){result[key?0:1].push(value)},function(){return[[],[]]}),sortBy=baseRest(function(collection,iteratees){if(null==collection)return[];var length=iteratees.length;return length>1&&isIterateeCall(collection,iteratees[0],iteratees[1])?iteratees=[]:length>2&&isIterateeCall(iteratees[0],iteratees[1],iteratees[2])&&(iteratees=[iteratees[0]]),baseOrderBy(collection,baseFlatten(iteratees,1),[])}),now=ctxNow||function(){return root.Date.now()},bind=baseRest(function(func,thisArg,partials){var bitmask=WRAP_BIND_FLAG;if(partials.length){var holders=replaceHolders(partials,getHolder(bind));bitmask|=WRAP_PARTIAL_FLAG}return createWrap(func,bitmask,thisArg,partials,holders)}),bindKey=baseRest(function(object,key,partials){var bitmask=WRAP_BIND_FLAG|WRAP_BIND_KEY_FLAG;if(partials.length){var holders=replaceHolders(partials,getHolder(bindKey));bitmask|=WRAP_PARTIAL_FLAG}return createWrap(key,bitmask,object,partials,holders)}),defer=baseRest(function(func,args){return baseDelay(func,1,args)}),delay=baseRest(function(func,wait,args){return baseDelay(func,toNumber(wait)||0,args)});memoize.Cache=MapCache;var overArgs=castRest(function(func,transforms){transforms=1==transforms.length&&isArray(transforms[0])?arrayMap(transforms[0],baseUnary(getIteratee())):arrayMap(baseFlatten(transforms,1),baseUnary(getIteratee()));var funcsLength=transforms.length;return baseRest(function(args){for(var index=-1,length=nativeMin(args.length,funcsLength);++index<length;)args[index]=transforms[index].call(this,args[index]);return apply(func,this,args)})}),partial=baseRest(function(func,partials){var holders=replaceHolders(partials,getHolder(partial));return createWrap(func,WRAP_PARTIAL_FLAG,undefined,partials,holders)}),partialRight=baseRest(function(func,partials){var holders=replaceHolders(partials,getHolder(partialRight));return createWrap(func,WRAP_PARTIAL_RIGHT_FLAG,undefined,partials,holders)}),rearg=flatRest(function(func,indexes){return createWrap(func,WRAP_REARG_FLAG,undefined,undefined,undefined,indexes)}),gt=createRelationalOperation(baseGt),gte=createRelationalOperation(function(value,other){return value>=other}),isArguments=baseIsArguments(function(){return arguments}())?baseIsArguments:function(value){return isObjectLike(value)&&hasOwnProperty.call(value,"callee")&&!propertyIsEnumerable.call(value,"callee")},isArray=Array.isArray,isArrayBuffer=nodeIsArrayBuffer?baseUnary(nodeIsArrayBuffer):baseIsArrayBuffer,isBuffer=nativeIsBuffer||stubFalse,isDate=nodeIsDate?baseUnary(nodeIsDate):baseIsDate,isMap=nodeIsMap?baseUnary(nodeIsMap):baseIsMap,isRegExp=nodeIsRegExp?baseUnary(nodeIsRegExp):baseIsRegExp,isSet=nodeIsSet?baseUnary(nodeIsSet):baseIsSet,isTypedArray=nodeIsTypedArray?baseUnary(nodeIsTypedArray):baseIsTypedArray,lt=createRelationalOperation(baseLt),lte=createRelationalOperation(function(value,other){
  return value<=other}),assign=createAssigner(function(object,source){if(isPrototype(source)||isArrayLike(source))return void copyObject(source,keys(source),object);for(var key in source)hasOwnProperty.call(source,key)&&assignValue(object,key,source[key])}),assignIn=createAssigner(function(object,source){copyObject(source,keysIn(source),object)}),assignInWith=createAssigner(function(object,source,srcIndex,customizer){copyObject(source,keysIn(source),object,customizer)}),assignWith=createAssigner(function(object,source,srcIndex,customizer){copyObject(source,keys(source),object,customizer)}),at=flatRest(baseAt),defaults=baseRest(function(object,sources){object=Object(object);var index=-1,length=sources.length,guard=length>2?sources[2]:undefined;for(guard&&isIterateeCall(sources[0],sources[1],guard)&&(length=1);++index<length;)for(var source=sources[index],props=keysIn(source),propsIndex=-1,propsLength=props.length;++propsIndex<propsLength;){var key=props[propsIndex],value=object[key];(value===undefined||eq(value,objectProto[key])&&!hasOwnProperty.call(object,key))&&(object[key]=source[key])}return object}),defaultsDeep=baseRest(function(args){return args.push(undefined,customDefaultsMerge),apply(mergeWith,undefined,args)}),invert=createInverter(function(result,value,key){null!=value&&"function"!=typeof value.toString&&(value=nativeObjectToString.call(value)),result[value]=key},constant(identity)),invertBy=createInverter(function(result,value,key){null!=value&&"function"!=typeof value.toString&&(value=nativeObjectToString.call(value)),hasOwnProperty.call(result,value)?result[value].push(key):result[value]=[key]},getIteratee),invoke=baseRest(baseInvoke),merge=createAssigner(function(object,source,srcIndex){baseMerge(object,source,srcIndex)}),mergeWith=createAssigner(function(object,source,srcIndex,customizer){baseMerge(object,source,srcIndex,customizer)}),omit=flatRest(function(object,paths){var result={};if(null==object)return result;var isDeep=!1;paths=arrayMap(paths,function(path){return path=castPath(path,object),isDeep||(isDeep=path.length>1),path}),copyObject(object,getAllKeysIn(object),result),isDeep&&(result=baseClone(result,CLONE_DEEP_FLAG|CLONE_FLAT_FLAG|CLONE_SYMBOLS_FLAG,customOmitClone));for(var length=paths.length;length--;)baseUnset(result,paths[length]);return result}),pick=flatRest(function(object,paths){return null==object?{}:basePick(object,paths)}),toPairs=createToPairs(keys),toPairsIn=createToPairs(keysIn),camelCase=createCompounder(function(result,word,index){return word=word.toLowerCase(),result+(index?capitalize(word):word)}),kebabCase=createCompounder(function(result,word,index){return result+(index?"-":"")+word.toLowerCase()}),lowerCase=createCompounder(function(result,word,index){return result+(index?" ":"")+word.toLowerCase()}),lowerFirst=createCaseFirst("toLowerCase"),snakeCase=createCompounder(function(result,word,index){return result+(index?"_":"")+word.toLowerCase()}),startCase=createCompounder(function(result,word,index){return result+(index?" ":"")+upperFirst(word)}),upperCase=createCompounder(function(result,word,index){return result+(index?" ":"")+word.toUpperCase()}),upperFirst=createCaseFirst("toUpperCase"),attempt=baseRest(function(func,args){try{return apply(func,undefined,args)}catch(e){return isError(e)?e:new Error(e)}}),bindAll=flatRest(function(object,methodNames){return arrayEach(methodNames,function(key){key=toKey(key),baseAssignValue(object,key,bind(object[key],object))}),object}),flow=createFlow(),flowRight=createFlow(!0),method=baseRest(function(path,args){return function(object){return baseInvoke(object,path,args)}}),methodOf=baseRest(function(object,args){return function(path){return baseInvoke(object,path,args)}}),over=createOver(arrayMap),overEvery=createOver(arrayEvery),overSome=createOver(arraySome),range=createRange(),rangeRight=createRange(!0),add=createMathOperation(function(augend,addend){return augend+addend},0),ceil=createRound("ceil"),divide=createMathOperation(function(dividend,divisor){return dividend/divisor},1),floor=createRound("floor"),multiply=createMathOperation(function(multiplier,multiplicand){return multiplier*multiplicand},1),round=createRound("round"),subtract=createMathOperation(function(minuend,subtrahend){return minuend-subtrahend},0);return lodash.after=after,lodash.ary=ary,lodash.assign=assign,lodash.assignIn=assignIn,lodash.assignInWith=assignInWith,lodash.assignWith=assignWith,lodash.at=at,lodash.before=before,lodash.bind=bind,lodash.bindAll=bindAll,lodash.bindKey=bindKey,lodash.castArray=castArray,lodash.chain=chain,lodash.chunk=chunk,lodash.compact=compact,lodash.concat=concat,lodash.cond=cond,lodash.conforms=conforms,lodash.constant=constant,lodash.countBy=countBy,lodash.create=create,lodash.curry=curry,lodash.curryRight=curryRight,lodash.debounce=debounce,lodash.defaults=defaults,lodash.defaultsDeep=defaultsDeep,lodash.defer=defer,lodash.delay=delay,lodash.difference=difference,lodash.differenceBy=differenceBy,lodash.differenceWith=differenceWith,lodash.drop=drop,lodash.dropRight=dropRight,lodash.dropRightWhile=dropRightWhile,lodash.dropWhile=dropWhile,lodash.fill=fill,lodash.filter=filter,lodash.flatMap=flatMap,lodash.flatMapDeep=flatMapDeep,lodash.flatMapDepth=flatMapDepth,lodash.flatten=flatten,lodash.flattenDeep=flattenDeep,lodash.flattenDepth=flattenDepth,lodash.flip=flip,lodash.flow=flow,lodash.flowRight=flowRight,lodash.fromPairs=fromPairs,lodash.functions=functions,lodash.functionsIn=functionsIn,lodash.groupBy=groupBy,lodash.initial=initial,lodash.intersection=intersection,lodash.intersectionBy=intersectionBy,lodash.intersectionWith=intersectionWith,lodash.invert=invert,lodash.invertBy=invertBy,lodash.invokeMap=invokeMap,lodash.iteratee=iteratee,lodash.keyBy=keyBy,lodash.keys=keys,lodash.keysIn=keysIn,lodash.map=map,lodash.mapKeys=mapKeys,lodash.mapValues=mapValues,lodash.matches=matches,lodash.matchesProperty=matchesProperty,lodash.memoize=memoize,lodash.merge=merge,lodash.mergeWith=mergeWith,lodash.method=method,lodash.methodOf=methodOf,lodash.mixin=mixin,lodash.negate=negate,lodash.nthArg=nthArg,lodash.omit=omit,lodash.omitBy=omitBy,lodash.once=once,lodash.orderBy=orderBy,lodash.over=over,lodash.overArgs=overArgs,lodash.overEvery=overEvery,lodash.overSome=overSome,lodash.partial=partial,lodash.partialRight=partialRight,lodash.partition=partition,lodash.pick=pick,lodash.pickBy=pickBy,lodash.property=property,lodash.propertyOf=propertyOf,lodash.pull=pull,lodash.pullAll=pullAll,lodash.pullAllBy=pullAllBy,lodash.pullAllWith=pullAllWith,lodash.pullAt=pullAt,lodash.range=range,lodash.rangeRight=rangeRight,lodash.rearg=rearg,lodash.reject=reject,lodash.remove=remove,lodash.rest=rest,lodash.reverse=reverse,lodash.sampleSize=sampleSize,lodash.set=set,lodash.setWith=setWith,lodash.shuffle=shuffle,lodash.slice=slice,lodash.sortBy=sortBy,lodash.sortedUniq=sortedUniq,lodash.sortedUniqBy=sortedUniqBy,lodash.split=split,lodash.spread=spread,lodash.tail=tail,lodash.take=take,lodash.takeRight=takeRight,lodash.takeRightWhile=takeRightWhile,lodash.takeWhile=takeWhile,lodash.tap=tap,lodash.throttle=throttle,lodash.thru=thru,lodash.toArray=toArray,lodash.toPairs=toPairs,lodash.toPairsIn=toPairsIn,lodash.toPath=toPath,lodash.toPlainObject=toPlainObject,lodash.transform=transform,lodash.unary=unary,lodash.union=union,lodash.unionBy=unionBy,lodash.unionWith=unionWith,lodash.uniq=uniq,lodash.uniqBy=uniqBy,lodash.uniqWith=uniqWith,lodash.unset=unset,lodash.unzip=unzip,lodash.unzipWith=unzipWith,lodash.update=update,lodash.updateWith=updateWith,lodash.values=values,lodash.valuesIn=valuesIn,lodash.without=without,lodash.words=words,lodash.wrap=wrap,lodash.xor=xor,lodash.xorBy=xorBy,lodash.xorWith=xorWith,lodash.zip=zip,lodash.zipObject=zipObject,lodash.zipObjectDeep=zipObjectDeep,lodash.zipWith=zipWith,lodash.entries=toPairs,lodash.entriesIn=toPairsIn,lodash.extend=assignIn,lodash.extendWith=assignInWith,mixin(lodash,lodash),lodash.add=add,lodash.attempt=attempt,lodash.camelCase=camelCase,lodash.capitalize=capitalize,lodash.ceil=ceil,lodash.clamp=clamp,lodash.clone=clone,lodash.cloneDeep=cloneDeep,lodash.cloneDeepWith=cloneDeepWith,lodash.cloneWith=cloneWith,lodash.conformsTo=conformsTo,lodash.deburr=deburr,lodash.defaultTo=defaultTo,lodash.divide=divide,lodash.endsWith=endsWith,lodash.eq=eq,lodash.escape=escape,lodash.escapeRegExp=escapeRegExp,lodash.every=every,lodash.find=find,lodash.findIndex=findIndex,lodash.findKey=findKey,lodash.findLast=findLast,lodash.findLastIndex=findLastIndex,lodash.findLastKey=findLastKey,lodash.floor=floor,lodash.forEach=forEach,lodash.forEachRight=forEachRight,lodash.forIn=forIn,lodash.forInRight=forInRight,lodash.forOwn=forOwn,lodash.forOwnRight=forOwnRight,lodash.get=get,lodash.gt=gt,lodash.gte=gte,lodash.has=has,lodash.hasIn=hasIn,lodash.head=head,lodash.identity=identity,lodash.includes=includes,lodash.indexOf=indexOf,lodash.inRange=inRange,lodash.invoke=invoke,lodash.isArguments=isArguments,lodash.isArray=isArray,lodash.isArrayBuffer=isArrayBuffer,lodash.isArrayLike=isArrayLike,lodash.isArrayLikeObject=isArrayLikeObject,lodash.isBoolean=isBoolean,lodash.isBuffer=isBuffer,lodash.isDate=isDate,lodash.isElement=isElement,lodash.isEmpty=isEmpty,lodash.isEqual=isEqual,lodash.isEqualWith=isEqualWith,lodash.isError=isError,lodash.isFinite=isFinite,lodash.isFunction=isFunction,lodash.isInteger=isInteger,lodash.isLength=isLength,lodash.isMap=isMap,lodash.isMatch=isMatch,lodash.isMatchWith=isMatchWith,lodash.isNaN=isNaN,lodash.isNative=isNative,lodash.isNil=isNil,lodash.isNull=isNull,lodash.isNumber=isNumber,lodash.isObject=isObject,lodash.isObjectLike=isObjectLike,lodash.isPlainObject=isPlainObject,lodash.isRegExp=isRegExp,lodash.isSafeInteger=isSafeInteger,lodash.isSet=isSet,lodash.isString=isString,lodash.isSymbol=isSymbol,lodash.isTypedArray=isTypedArray,lodash.isUndefined=isUndefined,lodash.isWeakMap=isWeakMap,lodash.isWeakSet=isWeakSet,lodash.join=join,lodash.kebabCase=kebabCase,lodash.last=last,lodash.lastIndexOf=lastIndexOf,lodash.lowerCase=lowerCase,lodash.lowerFirst=lowerFirst,lodash.lt=lt,lodash.lte=lte,lodash.max=max,lodash.maxBy=maxBy,lodash.mean=mean,lodash.meanBy=meanBy,lodash.min=min,lodash.minBy=minBy,lodash.stubArray=stubArray,lodash.stubFalse=stubFalse,lodash.stubObject=stubObject,lodash.stubString=stubString,lodash.stubTrue=stubTrue,lodash.multiply=multiply,lodash.nth=nth,lodash.noConflict=noConflict,lodash.noop=noop,lodash.now=now,lodash.pad=pad,lodash.padEnd=padEnd,lodash.padStart=padStart,lodash.parseInt=parseInt,lodash.random=random,lodash.reduce=reduce,lodash.reduceRight=reduceRight,lodash.repeat=repeat,lodash.replace=replace,lodash.result=result,lodash.round=round,lodash.runInContext=runInContext,lodash.sample=sample,lodash.size=size,lodash.snakeCase=snakeCase,lodash.some=some,lodash.sortedIndex=sortedIndex,lodash.sortedIndexBy=sortedIndexBy,lodash.sortedIndexOf=sortedIndexOf,lodash.sortedLastIndex=sortedLastIndex,lodash.sortedLastIndexBy=sortedLastIndexBy,lodash.sortedLastIndexOf=sortedLastIndexOf,lodash.startCase=startCase,lodash.startsWith=startsWith,lodash.subtract=subtract,lodash.sum=sum,lodash.sumBy=sumBy,lodash.template=template,lodash.times=times,lodash.toFinite=toFinite,lodash.toInteger=toInteger,lodash.toLength=toLength,lodash.toLower=toLower,lodash.toNumber=toNumber,lodash.toSafeInteger=toSafeInteger,lodash.toString=toString,lodash.toUpper=toUpper,lodash.trim=trim,lodash.trimEnd=trimEnd,lodash.trimStart=trimStart,lodash.truncate=truncate,lodash.unescape=unescape,lodash.uniqueId=uniqueId,lodash.upperCase=upperCase,lodash.upperFirst=upperFirst,lodash.each=forEach,lodash.eachRight=forEachRight,lodash.first=head,mixin(lodash,function(){var source={};return baseForOwn(lodash,function(func,methodName){hasOwnProperty.call(lodash.prototype,methodName)||(source[methodName]=func)}),source}(),{chain:!1}),lodash.VERSION=VERSION,arrayEach(["bind","bindKey","curry","curryRight","partial","partialRight"],function(methodName){lodash[methodName].placeholder=lodash}),arrayEach(["drop","take"],function(methodName,index){LazyWrapper.prototype[methodName]=function(n){n=n===undefined?1:nativeMax(toInteger(n),0);var result=this.__filtered__&&!index?new LazyWrapper(this):this.clone();return result.__filtered__?result.__takeCount__=nativeMin(n,result.__takeCount__):result.__views__.push({size:nativeMin(n,MAX_ARRAY_LENGTH),type:methodName+(result.__dir__<0?"Right":"")}),result},LazyWrapper.prototype[methodName+"Right"]=function(n){return this.reverse()[methodName](n).reverse()}}),arrayEach(["filter","map","takeWhile"],function(methodName,index){var type=index+1,isFilter=type==LAZY_FILTER_FLAG||type==LAZY_WHILE_FLAG;LazyWrapper.prototype[methodName]=function(iteratee){var result=this.clone();return result.__iteratees__.push({iteratee:getIteratee(iteratee,3),type:type}),result.__filtered__=result.__filtered__||isFilter,result}}),arrayEach(["head","last"],function(methodName,index){var takeName="take"+(index?"Right":"");LazyWrapper.prototype[methodName]=function(){return this[takeName](1).value()[0]}}),arrayEach(["initial","tail"],function(methodName,index){var dropName="drop"+(index?"":"Right");LazyWrapper.prototype[methodName]=function(){return this.__filtered__?new LazyWrapper(this):this[dropName](1)}}),LazyWrapper.prototype.compact=function(){return this.filter(identity)},LazyWrapper.prototype.find=function(predicate){return this.filter(predicate).head()},LazyWrapper.prototype.findLast=function(predicate){return this.reverse().find(predicate)},LazyWrapper.prototype.invokeMap=baseRest(function(path,args){return"function"==typeof path?new LazyWrapper(this):this.map(function(value){return baseInvoke(value,path,args)})}),LazyWrapper.prototype.reject=function(predicate){return this.filter(negate(getIteratee(predicate)))},LazyWrapper.prototype.slice=function(start,end){start=toInteger(start);var result=this;return result.__filtered__&&(start>0||end<0)?new LazyWrapper(result):(start<0?result=result.takeRight(-start):start&&(result=result.drop(start)),end!==undefined&&(end=toInteger(end),result=end<0?result.dropRight(-end):result.take(end-start)),result)},LazyWrapper.prototype.takeRightWhile=function(predicate){return this.reverse().takeWhile(predicate).reverse()},LazyWrapper.prototype.toArray=function(){return this.take(MAX_ARRAY_LENGTH)},baseForOwn(LazyWrapper.prototype,function(func,methodName){var checkIteratee=/^(?:filter|find|map|reject)|While$/.test(methodName),isTaker=/^(?:head|last)$/.test(methodName),lodashFunc=lodash[isTaker?"take"+("last"==methodName?"Right":""):methodName],retUnwrapped=isTaker||/^find/.test(methodName);lodashFunc&&(lodash.prototype[methodName]=function(){var value=this.__wrapped__,args=isTaker?[1]:arguments,isLazy=value instanceof LazyWrapper,iteratee=args[0],useLazy=isLazy||isArray(value),interceptor=function(value){var result=lodashFunc.apply(lodash,arrayPush([value],args));return isTaker&&chainAll?result[0]:result};useLazy&&checkIteratee&&"function"==typeof iteratee&&1!=iteratee.length&&(isLazy=useLazy=!1);var chainAll=this.__chain__,isHybrid=!!this.__actions__.length,isUnwrapped=retUnwrapped&&!chainAll,onlyLazy=isLazy&&!isHybrid;if(!retUnwrapped&&useLazy){value=onlyLazy?value:new LazyWrapper(this);var result=func.apply(value,args);return result.__actions__.push({func:thru,args:[interceptor],thisArg:undefined}),new LodashWrapper(result,chainAll)}return isUnwrapped&&onlyLazy?func.apply(this,args):(result=this.thru(interceptor),isUnwrapped?isTaker?result.value()[0]:result.value():result)})}),arrayEach(["pop","push","shift","sort","splice","unshift"],function(methodName){var func=arrayProto[methodName],chainName=/^(?:push|sort|unshift)$/.test(methodName)?"tap":"thru",retUnwrapped=/^(?:pop|shift)$/.test(methodName);lodash.prototype[methodName]=function(){var args=arguments;if(retUnwrapped&&!this.__chain__){var value=this.value();return func.apply(isArray(value)?value:[],args)}return this[chainName](function(value){return func.apply(isArray(value)?value:[],args)})}}),baseForOwn(LazyWrapper.prototype,function(func,methodName){var lodashFunc=lodash[methodName];if(lodashFunc){var key=lodashFunc.name+"",names=realNames[key]||(realNames[key]=[]);names.push({name:methodName,func:lodashFunc})}}),realNames[createHybrid(undefined,WRAP_BIND_KEY_FLAG).name]=[{name:"wrapper",func:undefined}],LazyWrapper.prototype.clone=lazyClone,LazyWrapper.prototype.reverse=lazyReverse,LazyWrapper.prototype.value=lazyValue,lodash.prototype.at=wrapperAt,lodash.prototype.chain=wrapperChain,lodash.prototype.commit=wrapperCommit,lodash.prototype.next=wrapperNext,lodash.prototype.plant=wrapperPlant,lodash.prototype.reverse=wrapperReverse,lodash.prototype.toJSON=lodash.prototype.valueOf=lodash.prototype.value=wrapperValue,lodash.prototype.first=lodash.prototype.head,symIterator&&(lodash.prototype[symIterator]=wrapperToIterator),lodash},_=runInContext();root._=_,__WEBPACK_AMD_DEFINE_RESULT__=function(){return _}.call(exports,__webpack_require__,exports,module),!(__WEBPACK_AMD_DEFINE_RESULT__!==undefined&&(module.exports=__WEBPACK_AMD_DEFINE_RESULT__))}).call(this)}).call(exports,function(){return this}(),__webpack_require__(3)(module))},function(module,exports){module.exports=function(module){return module.webpackPolyfill||(module.deprecate=function(){},module.paths=[],module.children=[],module.webpackPolyfill=1),module}},function(module,exports,__webpack_require__){var Matrix,Screen,Utils,WebFont,_,__domComplete,__domCompleteState,__domReady,_isFontLoadedResults,_textSizeNode,fontsFromConfig,getWidth,monoWidth,sansWidth,serifWidth,indexOf=[].indexOf||function(item){for(var i=0,l=this.length;i<l;i++)if(i in this&&this[i]===item)return i;return-1},slice=[].slice;_=__webpack_require__(1)._,Screen=__webpack_require__(5).Screen,Matrix=__webpack_require__(9).Matrix,WebFont=__webpack_require__(10),Utils={},Utils.reset=function(){return Framer.CurrentContext.reset()},Utils.getValue=function(value){return _.isFunction(value)?value():value},Utils.getValueForKeyPath=function(obj,key){var len,o,ref,ref1,result;if(result=obj,ref=!1,indexOf.call(key,ref)>=0)return obj[key];for(ref1=key.split("."),o=0,len=ref1.length;o<len;o++)key=ref1[o],result=result[key];return result},Utils.setValueForKeyPath=function(obj,path,val){var currentValue,field,fields,i,n,result;for(fields=path.split("."),result=obj,i=0,n=fields.length;i<n&&void 0!==result;)field=fields[i],i===n-1?(currentValue=result[field],_.isObject(currentValue)&&_.isObject(val)&&Object.getPrototypeOf(currentValue)===Object.prototype&&Object.getPrototypeOf(val)===Object.prototype?_.extend(currentValue,val):result[field]=val):("undefined"!=typeof result[field]&&_.isObject(result[field])||(result[field]={}),result=result[field]),i++},Utils.valueOrDefault=function(value,defaultValue){return void 0!==value&&null!==value||(value=defaultValue),value},Utils.arrayNext=function(arr,item){return arr[arr.indexOf(item)+1]||_.head(arr)},Utils.arrayPrev=function(arr,item){return arr[arr.indexOf(item)-1]||_.last(arr)},Utils.webkitPerspectiveForValue=function(value){return"none"===value||null===value||0===value?"none":_.isNumber(value)?value:null},Utils.sum=function(arr){return _.reduce(arr,function(a,b){return a+b})},Utils.average=function(arr){return Utils.sum(arr)/arr.length},Utils.mean=Utils.average,Utils.median=function(x){var sorted;return 0===x.length?null:(sorted=x.slice().sort(function(a,b){return a-b}),sorted.length%2===1?sorted[(sorted.length-1)/2]:(sorted[sorted.length/2-1]+sorted[sorted.length/2])/2)},Utils.nearestIncrement=function(x,increment){return increment?Math.round(x*(1/increment))/(1/increment):x},null==window.requestAnimationFrame&&(window.requestAnimationFrame=window.webkitRequestAnimationFrame),null==window.requestAnimationFrame&&(window.requestAnimationFrame=function(f){return Utils.delay(1/60,f)}),window.performance?Utils.getTime=function(){return window.performance.now()/1e3}:Utils.getTime=function(){return Date.now()/1e3},Utils.delay=function(time,f){var timer;return timer=setTimeout(f,1e3*time),Framer.CurrentContext.addTimer(timer),timer},Utils.interval=function(time,f){var timer;return timer=setInterval(f,1e3*time),Framer.CurrentContext.addInterval(timer),timer},Utils.debounce=function(threshold,fn,immediate){var timeout;return null==threshold&&(threshold=.1),timeout=null,threshold*=1e3,function(){var args,delayed,obj;return args=1<=arguments.length?slice.call(arguments,0):[],obj=this,delayed=function(){return immediate||fn.apply(obj,args),timeout=null},timeout?clearTimeout(timeout):immediate&&fn.apply(obj,args),timeout=setTimeout(delayed,threshold)}},Utils.throttle=function(delay,fn){var timer;return 0===delay?fn:(delay*=1e3,timer=!1,function(){if(!timer)return timer=!0,delay!==-1&&setTimeout(function(){return timer=!1},delay),fn.apply(null,arguments)})},Utils.memoize=function(fn){return function(){var args,currentArg,hash,i;for(args=Array.prototype.slice.call(arguments),hash="",i=args.length,currentArg=null;i--;)currentArg=args[i],hash+=currentArg===Object(currentArg)?JSON.stringify(currentArg):currentArg,fn.memoize||(fn.memoize={});return hash in fn.memoize?fn.memoize[hash]:fn.memoize[hash]=fn.apply(this,args)}},Utils.randomColor=function(alpha){return null==alpha&&(alpha=1),Color.random(alpha)},Utils.randomChoice=function(arr){return arr[Math.floor(Math.random()*arr.length)]},Utils.randomNumber=function(a,b){return null==a&&(a=0),null==b&&(b=1),Utils.mapRange(Math.random(),0,1,a,b)},Utils.randomImage=function(layer){var increment,photo,photos,size;return _.isNumber(layer)&&(layer={id:layer}),photos=["1417733403748-83bbc7c05140","1423841265803-dfac59ebf718","1433689056001-018e493576bc","1430812411929-de4cf1d1fe73","1457269449834-928af64c684d","1443616839562-036bb2afd9a2","1461535676131-2de1f7054d3f","1462393582935-1ac76b85dcf1","1414589530802-cb54ce0575d9","1422908132590-117a051fc5cd","1438522014717-d7ce32b9bab9","1462058164249-2dcdcda67ce7","1456757014009-0614a080ff7f","1434238255348-4fb0d9caa0a4","1448071792026-7064a01897e7","1458681842652-019f4eeda5e5","1460919920543-d8c45f4bd621","1447767961238-038617b84a2b","1449089299624-89ce41e8306c","1414777410116-81e404502b52","1433994349623-0a18966ee9c0","1452567772283-91d67178f409","1458245229726-a8ba04cb5969","1422246719650-cb30d19825e3","1417392639864-2c88dd07f460","1442328166075-47fe7153c128","1448467258552-6b3982373a13","1447023362548-250f3a7b80ed","1451486242265-24b0c0ef9a51","1414339372428-797ec111646d"],photo=Utils.randomChoice(photos),(null!=layer?layer.id:void 0)&&(photo=photos[layer.id%photos.length]),increment=100,size=1024,layer&&(size=Math.max(layer.width,layer.height),size=Math.ceil(size/increment)*increment,size<increment&&(size=increment),size=Utils.devicePixelRatio()*size,size=parseInt(size)),"https://images.unsplash.com/photo-"+photo+"?ixlib=rb-0.3.5&q=80&fm=jpg&crop=entropy&w="+size+"&h="+size+"&fit=max"},Utils.defineEnum=function(names,offset,geometric){var Enum,i,j,len,name,o;for(null==names&&(names=[]),null==offset&&(offset=0),null==geometric&&(geometric=0),Enum={},i=o=0,len=names.length;o<len;i=++o)name=names[i],j=i,j=offset?j+offset:j,j=geometric?Math.pow(geometric,j):j,Enum[Enum[name]=j]=name;return Enum},Utils.labelLayer=function(layer,text,style){var fontSize;if(null==style&&(style={}),text&&""!==text&&"string"==typeof text)return fontSize=Math.max(Math.min(48,parseInt(layer.height/3.2)),14),style=_.extend({font:fontSize+"px/1em "+Utils.deviceFont(),lineHeight:layer.height+"px",textAlign:"center",color:"#fff"},style),layer.style=style,layer.html=text},Utils.stringify=function(obj){try{if(_.isObject(obj))return JSON.stringify(obj)}catch(error1){}return null===obj?"null":void 0===obj?"undefined":obj.toString?obj.toString():obj},Utils.inspectObjectType=function(item){var className,extract,ref,ref1,ref2,ref3;return null!=(null!=(ref=item.constructor)?ref.name:void 0)&&"Object"!==(null!=(ref1=item.constructor)?ref1.name:void 0)?item.constructor.name:(extract=function(str){var match,regex;return str?(regex=/\[object (\w+)\]/,match=regex.exec(str),match?match[1]:null):null},item.toString&&(className=extract(item.toString()))?className:(null!=(ref2=item.constructor)?ref2.toString:void 0)&&(className=extract(null!=(ref3=item.constructor)?ref3.toString():void 0))?className.replace("Constructor",""):"Object")},Utils.inspect=function(item,max,l){var code,limit,objectInfo,objectType;return null==max&&(max=5),null==l&&(l=0),null===item?"null":void 0===item?"undefined":_.isFunction(item.toInspect)?item.toInspect():_.isString(item)?'"'+item+'"':_.isNumber(item)?""+item:_.isFunction(item)?(code=item.toString().slice("function ".length).replace(/\n/g,"").replace(/\s+/g," "),limit=50,code.length>limit&&l>0&&(code=_.trimEnd(code.slice(0,+limit+1||9e9))+"… }"),"<Function "+code+">"):_.isArray(item)?l>max?"[...]":"["+_.map(item,function(i){return Utils.inspect(i,max,l+1)}).join(", ")+"]":_.isObject(item)?(objectType=Utils.inspectObjectType(item),/HTML\w+?Element/.test(objectType)?"<"+objectType+">":(objectInfo=l>max?"{...}":"{"+_.map(item,function(v,k){return k+":"+Utils.inspect(v,max,l+1)}).join(", ")+"}","Object"===objectType?objectInfo:"<"+objectType+" "+objectInfo+">")):""+item},Utils.uuid=function(){var chars,digit,o,output,r,random;for(chars="0123456789abcdefghijklmnopqrstuvwxyz".split(""),output=new Array(36),random=0,digit=o=1;o<=32;digit=++o)random<=2&&(random=33554432+16777216*Math.random()|0),r=15&random,random>>=4,output[digit]=chars[19===digit?3&r|8:r];return output.join("")},Utils.findLayer=function(layers,selector){return _.find(layers,function(layer){return Utils.layerMatchesSelector(layer,selector)})},Utils.filterLayers=function(layers,selector){return _.filter(layers,function(layer){return Utils.layerMatchesSelector(layer,selector)})},Utils.layerMatchesSelector=function(layer,selector){var getHierarchyString,hierarchy,hierarchyMatch;if(getHierarchyString=function(l){var nameArr;return nameArr=_.pluck(l.ancestors().reverse(),"name"),nameArr.join(">")+(">"+layer.name)},hierarchyMatch=function(hierarchy,string){var regExp,regexString;return string=string.replace(/\s*>\s*/g,">"),string=string.split("*").join("[^>]*"),string=string.split(" ").join("(?:.*)>"),string=string.split(",").join("$|"),regexString="(^|>)"+string+"$",regExp=new RegExp(regexString),regExp.test(hierarchy)},selector)return hierarchy=getHierarchyString(layer,selector),hierarchyMatch(hierarchy,selector)},Utils.arrayFromArguments=function(args){return _.isArray(args[0])?args[0]:Array.prototype.slice.call(args)},Utils.cycle=function(){var args,curr;return args=Utils.arrayFromArguments(arguments),curr=-1,function(){return curr++,curr>=args.length&&(curr=0),args[curr]}},Utils.toggle=Utils.cycle,Utils.callAfterCount=function(total,callback){var callAfterCount,count;return count=0,callAfterCount=function(){if(count+=1,count===total)return"function"==typeof callback?callback():void 0}},Utils.equal=function(a,b){return _.isFunction(null!=a?a.isEqual:void 0)?a.isEqual(b):_.isFunction(null!=b?b.isEqual:void 0)?b.isEqual(a):_.isEqual(a,b)},Utils.isWebKit=function(){return void 0!==window.WebKitCSSMatrix&&!Utils.isEdge()},Utils.webkitVersion=function(){var regexp,result,version;return version=-1,regexp=/AppleWebKit\/([\d.]+)/,result=regexp.exec(navigator.userAgent),result&&(version=parseFloat(result[1])),version},Utils.isChrome=function(){return/Chrome/.test(navigator.userAgent)&&/Google Inc/.test(navigator.vendor)},Utils.isSafari=function(){return/Safari/.test(navigator.userAgent)&&/Apple Computer/.test(navigator.vendor)},Utils.isFirefox=function(){return/^Mozilla.*Firefox\/\d+\.\d+$/.test(navigator.userAgent)},Utils.isEdge=function(){return/Edge/.test(navigator.userAgent)},Utils.isAndroid=function(){return/(android)/i.test(navigator.userAgent)},Utils.isIOS=function(){return/(iPhone|iPod|iPad)/i.test(navigator.platform)},Utils.isMacOS=function(){return/Mac/.test(navigator.platform)},Utils.isWindows=function(){return/Win/.test(navigator.platform)},Utils.isTouch=function(){return null===window.ontouchstart&&null===window.ontouchmove&&null===window.ontouchend},Utils.isDesktop=function(){return"desktop"===Utils.deviceType()},Utils.isPhone=function(){return"phone"===Utils.deviceType()},Utils.isTablet=function(){return"tablet"===Utils.deviceType()},Utils.isMobile=function(){return Utils.isPhone()||Utils.isTablet()},Utils.isFileUrl=function(url){return _.startsWith(url,"file://")},Utils.isDataUrl=function(url){return _.startsWith(url,"data:")},Utils.isRelativeUrl=function(url){return!/^([a-zA-Z]{1,8}:\/\/).*$/.test(url)},Utils.isLocalServerUrl=function(url){return/[a-zA-Z]{1,8}:\/\/127\.0\.0\.1/.test(url)||/[a-zA-Z]{1,8}:\/\/localhost/.test(url)},Utils.isLocalUrl=function(url){return!!Utils.isFileUrl(url)||!!Utils.isLocalServerUrl(url)},Utils.isLocalAssetUrl=function(url,baseUrl){return null==baseUrl&&(baseUrl=window.location.href),!Utils.isDataUrl(url)&&(!!Utils.isLocalUrl(url)||!(!Utils.isRelativeUrl(url)||!Utils.isLocalUrl(baseUrl)))},Utils.isFramerStudio=function(){return navigator.userAgent.indexOf("FramerStudio")!==-1},Utils.framerStudioVersion=function(){var isBeta,isFuture,isLocal,matches,version;if(Utils.isFramerStudio()){if(isBeta=navigator.userAgent.indexOf("FramerStudio/beta")>=0,isLocal=navigator.userAgent.indexOf("FramerStudio/local")>=0,isFuture=navigator.userAgent.indexOf("FramerStudio/future")>=0,isBeta||isLocal||isFuture)return Number.MAX_VALUE;if(matches=navigator.userAgent.match(/\d+$/),matches&&matches.length>0&&(version=parseInt(matches[0])),_.isNumber(version))return version}return Number.MAX_VALUE},Utils.devicePixelRatio=function(){return window.devicePixelRatio},Utils.isJP2Supported=function(){return!Utils.isFirefox()&&(Utils.isWebKit()&&!Utils.isChrome())},Utils.isWebPSupported=function(){return Utils.isChrome()},Utils.deviceType=function(){return/(tablet)|(iPad)|(Nexus 9)/i.test(navigator.userAgent)?"tablet":/(mobi)/i.test(navigator.userAgent)?"phone":"desktop"},Utils.pathJoin=function(){return Utils.arrayFromArguments(arguments).join("/")},Utils.deviceFont=function(os){var appleFont,googleFont,microsoftFont;switch(os||(Utils.isMacOS()&&(os="macOS"),Utils.isIOS()&&(os="iOS"),Utils.isAndroid()&&(os="Android"),Utils.isWindows()&&(os="Windows")),appleFont="-apple-system, BlinkMacSystemFont, SF UI Text, Helvetica Neue",googleFont="Roboto, Helvetica Neue",microsoftFont="Segoe UI, Helvetica Neue",os){case"Android":return googleFont;case"iOS":case"watchOS":case"macOS":return appleFont;case"Windows":return microsoftFont}return appleFont},_isFontLoadedResults={},getWidth=function(fontFamily){return Utils.textSize("BESbswy",{fontFamily:fontFamily,fontSize:300}).width},monoWidth=null,serifWidth=null,sansWidth=null,Utils.isFontAvailable=function(fonts){return _isFontLoadedResults[fonts]===!0||(null==monoWidth&&(monoWidth=getWidth("monospace")),null==serifWidth&&(serifWidth=getWidth("serif")),null==sansWidth&&(sansWidth=getWidth("sans-serif")),(monoWidth!==getWidth(fonts+",monospace")||serifWidth!==getWidth(fonts+",serif")||sansWidth!==getWidth(fonts+",sans-serif"))&&(_isFontLoadedResults[fonts]=!0,!0))},Utils.isFontFamilyLoaded=function(fonts,timeout){var unavailableFonts;return null==timeout&&(timeout=1e3),_.isArray(fonts)||(fonts=[fonts]),unavailableFonts=fonts.filter(function(font){return!Utils.isFontAvailable(font)}),0===unavailableFonts.length||Utils.loadWebFontConfig({custom:{families:unavailableFonts},timeout:timeout})},fontsFromConfig=function(config){var ref,ref1,ref2,ref3,result;return result=[],_.isArray(null!=config&&null!=(ref=config.custom)?ref.families:void 0)&&(result=result.concat(null!=config&&null!=(ref1=config.custom)?ref1.families:void 0)),_.isArray(null!=config&&null!=(ref2=config.google)?ref2.families:void 0)&&(result=result.concat(null!=config&&null!=(ref3=config.google)?ref3.families:void 0)),result},Utils.loadWebFontConfig=function(config){var allLoadedResult,currentFont,currentFontLoaded,customActive,customFontactive,customFontinactive,customInactive,fonts,len,o,promise;for(fonts=fontsFromConfig(config),
  allLoadedResult=null,o=0,len=fonts.length;o<len;o++){if(currentFont=fonts[o],currentFontLoaded=_isFontLoadedResults[currentFont],null==currentFontLoaded){allLoadedResult=null;break}null==allLoadedResult&&(allLoadedResult=currentFontLoaded),allLoadedResult=allLoadedResult&&currentFontLoaded}return null!=allLoadedResult?allLoadedResult:(customActive=config.active,customInactive=config.inactive,customFontactive=config.fontactive,customFontinactive=config.fontinactive,promise=new Promise(function(resolve,reject){return config.fontactive=function(font){if(_isFontLoadedResults[font]=!0,"function"==typeof customFontactive&&customFontactive(font),1===fonts.length)return resolve()},config.fontinactive=function(font){var error;if(console.warn("Tried to load unavailable font: '"+font+"'"),_isFontLoadedResults[font]=!1,"function"==typeof customFontinactive&&customFontinactive(font),1===fonts.length)return error=new Error(font+" failed to load"),reject(error)},config.active=function(){return"function"==typeof customActive&&customActive(),resolve()},config.inactive=function(){var error;return"function"==typeof customInactive&&customInactive(),error=new Error(fonts.join(", ")+" failed to load"),reject(error)},WebFont.load(config)}))},Utils.loadWebFont=function(font,weight,source){var config,fontToLoad;return null==source&&(source="google"),null!=_isFontLoadedResults[font]&&_isFontLoadedResults[font]!==!1||(delete _isFontLoadedResults[font],config={},"google"===source&&(fontToLoad=font,null!=weight&&(fontToLoad+=":"+weight),config.google={families:[fontToLoad]}),Utils.loadWebFontConfig(config)),{fontFamily:font,fontWeight:weight}},Utils.round=function(value,decimals,increment,min,max){var d;return null==decimals&&(decimals=0),null==increment&&(increment=null),null==min&&(min=null),null==max&&(max=null),d=Math.pow(10,decimals),increment&&(value=Math.round(value/increment)*increment),value=Math.round(value*d)/d,min&&value<min?min:max&&value>max?max:value},Utils.roundWhole=function(value,decimals){return null==decimals&&(decimals=1),parseInt(value)===value?parseInt(value):Utils.round(value,decimals)},Utils.clamp=function(value,a,b){var max,min;return min=Math.min(a,b),max=Math.max(a,b),value<min&&(value=min),value>max&&(value=max),value},Utils.mapRange=function(value,fromLow,fromHigh,toLow,toHigh){return toLow+(value-fromLow)/(fromHigh-fromLow)*(toHigh-toLow)},Utils.modulate=function(value,rangeA,rangeB,limit){var fromHigh,fromLow,result,toHigh,toLow;if(null==limit&&(limit=!1),fromLow=rangeA[0],fromHigh=rangeA[1],toLow=rangeB[0],toHigh=rangeB[1],result=toLow+(value-fromLow)/(fromHigh-fromLow)*(toHigh-toLow),limit===!0)if(toLow<toHigh){if(result<toLow)return toLow;if(result>toHigh)return toHigh}else{if(result>toLow)return toLow;if(result<toHigh)return toHigh}return result},Utils.parseFunction=function(str){var result;return result={name:"",args:[]},_.endsWith(str,")")?(result.name=str.split("(")[0],result.args=str.split("(")[1].split(",").map(function(a){return _.trim(_.trimEnd(a,")"))})):result.name=str,result},__domCompleteState="interactive",__domComplete=[],__domReady=!1,"undefined"!=typeof document&&null!==document&&(document.onreadystatechange=function(event){var f,results;if(document.readyState===__domCompleteState){for(__domReady=!0,results=[];__domComplete.length;)results.push(f=__domComplete.shift()());return results}}),Utils.domComplete=function(f){return __domReady?f():__domComplete.push(f)},Utils.domCompleteCancel=function(f){return __domComplete=_.without(__domComplete,f)},Utils.domValidEvent=function(element,eventName){if(eventName)return"touchstart"===eventName||"touchmove"===eventName||"touchend"===eventName||"undefined"!=typeof element["on"+eventName.toLowerCase()]},Utils.domLoadScript=function(url,callback){var head,script;return script=document.createElement("script"),script.type="text/javascript",script.src=url,script.onload=callback,head=document.getElementsByTagName("head")[0],head.appendChild(script),script},Utils.domLoadData=function(path,callback){var request;return request=new XMLHttpRequest,request.addEventListener("load",function(){return callback(null,request.responseText)},!1),request.addEventListener("error",function(){return callback(!0,null)},!1),request.open("GET",path,!0),request.send(null)},Utils.domLoadJSON=function(path,callback){return Utils.domLoadData(path,function(err,data){return callback(err,JSON.parse(data))})},Utils.domLoadDataSync=function(path){var e,handleError,ref,request;request=new XMLHttpRequest,request.open("GET",path,!1);try{request.send(null)}catch(error1){e=error1,console.debug("XMLHttpRequest.error",e)}return handleError=function(){throw Error("Utils.domLoadDataSync: "+path+" -> ["+request.status+" "+request.statusText+"]")},request.onerror=handleError,200!==(ref=request.status)&&0!==ref&&handleError(),request.responseText||handleError(),request.responseText},Utils.domLoadJSONSync=function(path){return JSON.parse(Utils.domLoadDataSync(path))},Utils.domLoadScriptSync=function(path){var scriptData;return scriptData=Utils.domLoadDataSync(path),eval(scriptData),scriptData},Utils.insertCSS=function(css){var styleElement;return styleElement=document.createElement("style"),styleElement.type="text/css",styleElement.innerHTML=css,Utils.domComplete(function(){return document.body.appendChild(styleElement)})},Utils.loadImage=function(url,callback,context){var element;return element=new Image,null==context&&(context=Framer.CurrentContext),context.domEventManager.wrap(element).addEventListener("load",function(event){return callback()}),context.domEventManager.wrap(element).addEventListener("error",function(event){return callback(!0)}),element.src=url},Utils.isInsideIframe=function(){return!Utils.isInsideFramerCloud()&&window!==window.top},Utils.isInsideFramerCloud=function(){return"1"===Utils.getQueryParameters().cloud},Utils.getQueryParameters=function(){return _.fromPairs(window.location.search.slice(1).split("&").map(function(val){return val.split("=")}))},Utils.point=function(input){var k,len,o,ref,result;if(_.isNumber(input))return Utils.pointZero(input);if(!input)return Utils.pointZero();for(result=Utils.pointZero(),ref=["x","y"],o=0,len=ref.length;o<len;o++)k=ref[o],_.isNumber(input[k])&&(result[k]=input[k]);return result},Utils.pointZero=function(n){return null==n&&(n=0),{x:n,y:n}},Utils.pointDivide=function(point,fraction){return point={x:point.x/fraction,y:point.y/fraction}},Utils.pointAdd=function(pointA,pointB){var point;return point={x:pointA.x+pointB.x,y:pointA.y+pointB.y}},Utils.pointSubtract=function(pointA,pointB){var point;return point={x:pointA.x-pointB.x,y:pointA.y-pointB.y}},Utils.pointMin=function(){var point,points;return points=Utils.arrayFromArguments(arguments),point={x:_.min(points.map(function(size){return size.x})),y:_.min(points.map(function(size){return size.y}))}},Utils.pointMax=function(){var point,points;return points=Utils.arrayFromArguments(arguments),point={x:_.max(points.map(function(size){return size.x})),y:_.max(points.map(function(size){return size.y}))}},Utils.pointDelta=function(pointA,pointB){var delta;return delta={x:pointB.x-pointA.x,y:pointB.y-pointA.y}},Utils.pointDistance=function(pointA,pointB){var a,b;return a=pointA.x-pointB.x,b=pointA.y-pointB.y,Math.sqrt(a*a+b*b)},Utils.pointInvert=function(point){return point={x:0-point.x,y:0-point.y}},Utils.pointTotal=function(point){return point.x+point.y},Utils.pointAbs=function(point){return point={x:Math.abs(point.x),y:Math.abs(point.y)}},Utils.pointInFrame=function(point,frame){return!(point.x<Utils.frameGetMinX(frame)||point.x>Utils.frameGetMaxX(frame))&&!(point.y<Utils.frameGetMinY(frame)||point.y>Utils.frameGetMaxY(frame))},Utils.pointCenter=function(pointA,pointB){var point;return point={x:(pointA.x+pointB.x)/2,y:(pointA.y+pointB.y)/2}},Utils.pointAngle=function(pointA,pointB){return 180*Math.atan2(pointB.y-pointA.y,pointB.x-pointA.x)/Math.PI},Utils.divideFrame=function(frame,scale){return frame.x/=scale,frame.y/=scale,frame.width/=scale,frame.height/=scale,frame},Utils.scaleFrames=function(layer,scale){if(layer instanceof Layer&&(layer.constraintValues=null,layer.children.map(function(l){return Utils.scaleFrames(l,scale)}),layer.frame=Utils.divideFrame(layer.frame,scale)),_.isArray(layer))return layer.map(function(l){return Utils.scaleFrames(l,scale)})},Utils.size=function(input){var k,len,o,ref,result;if(_.isNumber(input))return Utils.sizeZero(input);if(!input)return Utils.sizeZero();for(result=Utils.sizeZero(),ref=["width","height"],o=0,len=ref.length;o<len;o++)k=ref[o],_.isNumber(input[k])&&(result[k]=input[k]);return result},Utils.sizeZero=function(n){return null==n&&(n=0),{width:n,height:n}},Utils.sizeMin=function(){var size,sizes;return sizes=Utils.arrayFromArguments(arguments),size={width:_.min(sizes.map(function(size){return size.width})),height:_.min(sizes.map(function(size){return size.height}))}},Utils.sizeMax=function(){var size,sizes;return sizes=Utils.arrayFromArguments(arguments),size={width:_.max(sizes.map(function(size){return size.width})),height:_.max(sizes.map(function(size){return size.height}))}},Utils.rectZero=function(args){return null==args&&(args={}),_.defaults(args,{top:0,right:0,bottom:0,left:0})},Utils.parseRect=function(args){if(_.isArray(args)&&_.isNumber(args[0])){if(1===args.length)return Utils.parseRect({top:args[0]});if(2===args.length)return Utils.parseRect({top:args[0],right:args[1]});if(3===args.length)return Utils.parseRect({top:args[0],right:args[1],bottom:args[2]});if(4===args.length)return Utils.parseRect({top:args[0],right:args[1],bottom:args[2],left:args[3]})}return _.isArray(args)&&_.isObject(args[0])?args[0]:_.isObject(args)?args:_.isNumber(args)?{top:args,right:args,bottom:args,left:args}:{}},Utils.frameGetMinX=function(frame){return frame.x},Utils.frameSetMinX=function(frame,value){return frame.x=value},Utils.frameGetMidX=function(frame){return 0===frame.width?frame.x:frame.x+frame.width/2},Utils.frameSetMidX=function(frame,value){return frame.x=0===frame.width?value:value-frame.width/2},Utils.frameGetMaxX=function(frame){return 0===frame.width?0:frame.x+frame.width},Utils.frameSetMaxX=function(frame,value){return frame.x=0===frame.width?0:value-frame.width},Utils.frameGetMinY=function(frame){return frame.y},Utils.frameSetMinY=function(frame,value){return frame.y=value},Utils.frameGetMidY=function(frame){return 0===frame.height?frame.y:frame.y+frame.height/2},Utils.frameSetMidY=function(frame,value){return frame.y=0===frame.height?value:value-frame.height/2},Utils.frameGetMaxY=function(frame){return 0===frame.height?0:frame.y+frame.height},Utils.frameSetMaxY=function(frame,value){return frame.y=0===frame.height?0:value-frame.height},Utils.frame=function(input){var k,len,o,ref,result;if(_.isNumber(input))return Utils.frameZero(input);if(!input)return Utils.frameZero();for(result=Utils.frameZero(),ref=["x","y","width","height"],o=0,len=ref.length;o<len;o++)k=ref[o],_.isNumber(input[k])&&(result[k]=input[k]);return result},Utils.frameZero=function(n){return null==n&&(n=0),{x:n,y:n}},Utils.frameSize=function(frame){var size;return size={width:frame.width,height:frame.height}},Utils.framePoint=function(frame){var point;return point={x:frame.x,y:frame.y}},Utils.pointsFromFrame=function(frame){var corner1,corner2,corner3,corner4,maxX,maxY,minX,minY;return minX=Utils.frameGetMinX(frame),maxX=Utils.frameGetMaxX(frame),minY=Utils.frameGetMinY(frame),maxY=Utils.frameGetMaxY(frame),corner1={x:minX,y:minY},corner2={x:minX,y:maxY},corner3={x:maxX,y:maxY},corner4={x:maxX,y:minY},[corner1,corner2,corner3,corner4]},Utils.frameFromPoints=function(points){var frame,maxX,maxY,minX,minY,xValues,yValues;return xValues=_.map(points,"x"),yValues=_.map(points,"y"),minX=_.min(xValues),maxX=_.max(xValues),minY=_.min(yValues),maxY=_.max(yValues),frame={x:minX,y:minY,width:maxX-minX,height:maxY-minY}},Utils.pixelAlignedFrame=function(frame){var height,maxX,maxY,width,x,y;return x=Math.round(frame.x),y=Math.round(frame.y),maxX=Math.round(frame.x+frame.width),maxY=Math.round(frame.y+frame.height),width=Math.max(maxX-x,0),height=Math.max(maxY-y,0),{x:x,y:y,width:width,height:height}},Utils.calculateLayoutFrame=function(parentFrame,child){var constraintValues,height,ratio,width,x,y;return constraintValues=child.constraintValues,x=constraintValues.left||0,y=constraintValues.top||0,width=constraintValues.width,height=constraintValues.height,null===parentFrame?Utils.pixelAlignedFrame({x:x,y:y,width:width,height:height}):(ratio=width/height,null!==constraintValues.widthFactor&&(width=parentFrame.width*constraintValues.widthFactor,constraintValues.aspectRatioLocked&&(height=width/ratio)),null!==constraintValues.heightFactor&&(height=parentFrame.height*constraintValues.heightFactor,constraintValues.aspectRatioLocked&&(width=height*ratio)),null!==constraintValues.left&&null!==constraintValues.right&&(width=parentFrame.width-constraintValues.right-constraintValues.left,constraintValues.aspectRatioLocked&&(height=width/ratio)),null!==constraintValues.top&&null!==constraintValues.bottom&&(height=parentFrame.height-constraintValues.bottom-constraintValues.top,constraintValues.aspectRatioLocked&&(width=height*ratio)),x=Utils.calculateLayoutX(parentFrame,constraintValues,width),y=Utils.calculateLayoutY(parentFrame,constraintValues,height),Utils.pixelAlignedFrame({x:x,y:y,width:width,height:height}))},Utils.calculateLayoutX=function(parentFrame,constraintValues,width){var x;return x=constraintValues.left||0,x=null!==constraintValues.left?constraintValues.left:null!==constraintValues.right?parentFrame.width-constraintValues.right-width:constraintValues.centerAnchorX*parentFrame.width-width/2},Utils.calculateLayoutY=function(parentFrame,constraintValues,height){var y;return y=constraintValues.top||0,y=null!==constraintValues.top?constraintValues.top:null!==constraintValues.bottom?parentFrame.height-constraintValues.bottom-height:constraintValues.centerAnchorY*parentFrame.height-height/2},Utils.frameMerge=function(){var frame,frames;return frames=Utils.arrayFromArguments(arguments),frame={x:_.min(frames.map(Utils.frameGetMinX)),y:_.min(frames.map(Utils.frameGetMinY))},frame.width=_.max(frames.map(Utils.frameGetMaxX))-frame.x,frame.height=_.max(frames.map(Utils.frameGetMaxY))-frame.y,frame},Utils.frameInFrame=function(frameA,frameB){var len,o,point,ref;for(ref=Utils.pointsFromFrame(frameA),o=0,len=ref.length;o<len;o++)if(point=ref[o],!Utils.pointInFrame(point,frameB))return!1;return!0},Utils.framePointForOrigin=function(frame,originX,originY){return frame={x:frame.x+originX*frame.width,y:frame.y+originY*frame.height,width:frame.width,height:frame.height}},Utils.frameInset=function(frame,inset){return _.isNumber(inset)&&(inset={top:inset,right:inset,bottom:inset,left:inset}),frame=Utils.frame(frame),frame={x:frame.x+inset.left,y:frame.y+inset.top,width:frame.width-inset.left-inset.right,height:frame.height-inset.top-inset.bottom}},Utils.frameSortByAbsoluteDistance=function(point,frames,originX,originY){var distance;return null==originX&&(originX=0),null==originY&&(originY=0),distance=function(frame){var result;return result=Utils.pointDelta(point,Utils.framePointForOrigin(frame,originX,originY)),result=Utils.pointAbs(result),result=Utils.pointTotal(result)},frames.sort(function(a,b){return distance(a)-distance(b)})},Utils.pointInPolygon=function(point,vs){var i,inside,intersect,j,x,xi,xj,y,yi,yj;for(x=point[0],y=point[1],inside=!1,i=0,j=vs.length-1;i<vs.length;)xi=vs[i][0],yi=vs[i][1],xj=vs[j][0],yj=vs[j][1],intersect=yi>y&&y!==yj&&yj>y&&x<(xj-xi)*(y-yi)/(yj-yi)+xi,intersect&&(inside=!inside),j=i++;return inside},Utils.frameIntersection=function(rectA,rect){var x1,x2,y1,y2;return x1=rect.x,y1=rect.y,x2=x1+rect.width,y2=y1+rect.height,rectA.x>x1&&(x1=rectA.x),rectA.y>y1&&(y1=rectA.y),rectA.x+rectA.width<x2&&(x2=rectA.x+rectA.width),rectA.y+rectA.height<y2&&(y2=rectA.y+rectA.height),x2<=x1||y2<=y1?null:rect={x:x1,y:y1,width:x2-x1,height:y2-y1}},Utils.frameCenterPoint=function(frame){var point;return point={x:Utils.frameGetMidX(frame),y:Utils.frameGetMidY(frame)}},Utils.frameInFrame=function(frameA,frameB){var len,o,point,ref;for(ref=Utils.pointsFromFrame(frameA),o=0,len=ref.length;o<len;o++)if(point=ref[o],!Utils.pointInFrame(point,frameB))return!1;return!0},Utils.rotationNormalizer=function(){var lastValue;return lastValue=null,function(value){var diff,maxDiff,nTimes;return null==lastValue&&(lastValue=value),diff=lastValue-value,maxDiff=Math.abs(diff)+180,nTimes=Math.floor(maxDiff/360),diff<180&&(value-=360*nTimes),diff>180&&(value+=360*nTimes),lastValue=value,value}},Utils.convertPointToContext=function(point,layer,rootContext,includeLayer){var container,containers,len,o;for(null==point&&(point={}),null==rootContext&&(rootContext=!1),null==includeLayer&&(includeLayer=!0),point=_.defaults(point,{x:0,y:0,z:0}),containers=layer.containers(rootContext),includeLayer&&containers.unshift(layer),o=0,len=containers.length;o<len;o++)container=containers[o],(container.flat||container.clip)&&(point.z=0),null!=container.matrix3d?point=container.matrix3d.point(point):null!=container.scale&&(point={x:point.x*container.scale,y:point.y*container.scale}),container.parent||(point.z=0);return point},Utils.convertFrameToContext=function(frame,layer,rootContext,includeLayer){var convertedCorners,corners;return null==frame&&(frame={}),null==rootContext&&(rootContext=!1),null==includeLayer&&(includeLayer=!0),frame=_.defaults(frame,{x:0,y:0,width:Framer.Defaults.Layer.width,height:Framer.Defaults.Layer.height}),corners=Utils.pointsFromFrame(frame),convertedCorners=corners.map(function(point){return Utils.convertPointToContext(point,layer,rootContext,includeLayer)}),Utils.frameFromPoints(convertedCorners)},Utils.convertPointFromContext=function(point,layer,rootContext,includeLayer){var container,containers,context,len,node,o,parent,ref;if(null==point&&(point={}),null==rootContext&&(rootContext=!1),null==includeLayer&&(includeLayer=!0),point=_.defaults(point,{x:0,y:0,z:0}),rootContext&&"undefined"!=typeof webkitConvertPointFromPageToNode&&null!==webkitConvertPointFromPageToNode)return includeLayer?node=layer._element:(parent=layer.parent||layer.context,node=parent._element),point=Utils.point(webkitConvertPointFromPageToNode(node,new WebKitPoint(point.x,point.y))),context=null!=(ref=layer.context)?ref:layer,point={x:point.x/context.scale,y:point.y/context.scale};for(containers=layer.containers(rootContext),containers.reverse(),includeLayer&&containers.push(layer),o=0,len=containers.length;o<len;o++)container=containers[o],null!=container.matrix3d?point=container.matrix3d.inverse().point(point):null!=container.scale&&(point={x:point.x/container.scale,y:point.y/container.scale});return point},Utils.convertFrameFromContext=function(frame,layer,rootContext,includeLayer){var convertedCorners,corners;return null==frame&&(frame={}),null==rootContext&&(rootContext=!1),null==includeLayer&&(includeLayer=!0),frame=_.defaults(frame,{x:0,y:0,width:Framer.Defaults.Layer.width,height:Framer.Defaults.Layer.height}),corners=Utils.pointsFromFrame(frame),convertedCorners=corners.map(function(point){return Utils.convertPointFromContext(point,layer,rootContext,includeLayer)}),Utils.frameFromPoints(convertedCorners)},Utils.convertPoint=function(input,layerA,layerB,rootContext){var node,point;return null==rootContext&&(rootContext=!1),point=_.defaults(input,{x:0,y:0,z:0}),layerA&&(point=Utils.convertPointToContext(point,layerA,rootContext)),null!=layerB?Utils.convertPointFromContext(point,layerB,rootContext):null!=layerA&&rootContext&&"undefined"!=typeof webkitConvertPointFromPageToNode&&null!==webkitConvertPointFromPageToNode?(node=layerA.context._element,Utils.point(webkitConvertPointFromPageToNode(node,new WebKitPoint(point.x,point.y)))):point},Utils.boundingFrame=function(layer,rootContext){var boundingFrame,contextCornerPoints,cornerPoints,frame;return null==rootContext&&(rootContext=!0),frame={x:0,y:0,width:layer.width,height:layer.height},cornerPoints=Utils.pointsFromFrame(frame),contextCornerPoints=cornerPoints.map(function(point){return Utils.convertPointToContext(point,layer,rootContext)}),boundingFrame=Utils.frameFromPoints(contextCornerPoints),Utils.pixelAlignedFrame(boundingFrame)},Utils.perspectiveProjectionMatrix=function(element){var m,p;return p=element.perspective,m=new Matrix,null!=p&&0!==p&&(m.m34=-1/p),m},Utils.perspectiveMatrix=function(element){var ox,oy,ppm;return ox=element.perspectiveOriginX*element.width,oy=element.perspectiveOriginY*element.height,ppm=Utils.perspectiveProjectionMatrix(element),(new Matrix).translate(ox,oy).multiply(ppm).translate(-ox,-oy)},Utils.globalLayers=function(importedLayers){var layer,layerName;for(layerName in importedLayers)layer=importedLayers[layerName],layerName=layerName.replace(/\s/g,""),window.hasOwnProperty(layerName)&&!window.Framer._globalWarningGiven?print("Warning: Cannot make layer '"+layerName+"' a global, a variable with that name already exists"):window[layerName]=layer;return window.Framer._globalWarningGiven=!0},_textSizeNode=null,Utils.textSize=function(text,style,constraints){var frame,rect,shouldCreateNode;return null==style&&(style={}),null==constraints&&(constraints={}),shouldCreateNode=!_textSizeNode,shouldCreateNode&&(_textSizeNode=document.createElement("div"),_textSizeNode.id="_textSizeNode"),_textSizeNode.removeAttribute("style"),_textSizeNode.innerHTML=text,style=_.extend(_.clone(style),{position:"fixed",display:"inline",visibility:"hidden",top:"-10000px",left:"-10000px"}),delete style.width,delete style.height,delete style.bottom,delete style.right,constraints.max?(constraints.width&&(style.maxWidth=constraints.width+"px"),constraints.height&&(style.maxHeight=constraints.height+"px")):(constraints.width&&(style.width=constraints.width+"px"),constraints.height&&(style.height=constraints.height+"px")),_.extend(_textSizeNode.style,style),shouldCreateNode&&(window.document.body?window.document.body.appendChild(_textSizeNode):(document.write(_textSizeNode.outerHTML),_textSizeNode=document.getElementById("_textSizeNode"))),rect=_textSizeNode.getBoundingClientRect(),frame={width:rect.right-rect.left,height:rect.bottom-rect.top}},Utils.throwInStudioOrWarnInProduction=function(message){if(Utils.isFramerStudio())throw new Error(message);return console.warn(message),null},Utils.getIdAttributesFromString=function(string){var id,m,matches,regex;for(regex=/id=['"]([^'"]+)["']/g,matches=[];m=regex.exec(string);)id=m[1],null!=id&&matches.push(id);return matches},Utils.getUniqueId=function(prefix){var count,existingElement,id;for(null==prefix&&(prefix="id"),id=prefix,count=1,existingElement=document.querySelector("[id='"+id+"']");null!=existingElement;)id=""+prefix+count,existingElement=document.querySelector("[id='"+id+"']"),count++;return id},Utils.escapeForRegex=function(string){return string.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")},_.extend(exports,Utils)},function(module,exports,__webpack_require__){var BaseClass,ScreenClass,extend=function(child,parent){function ctor(){this.constructor=child}for(var key in parent)hasProp.call(parent,key)&&(child[key]=parent[key]);return ctor.prototype=parent.prototype,child.prototype=new ctor,child.__super__=parent.prototype,child},hasProp={}.hasOwnProperty;BaseClass=__webpack_require__(6).BaseClass,ScreenClass=function(superClass){function ScreenClass(){return ScreenClass.__super__.constructor.apply(this,arguments)}return extend(ScreenClass,superClass),ScreenClass.define("width",{get:function(){return this.device?this.device.screenSize.width:Canvas.width}}),ScreenClass.define("height",{get:function(){return this.device?this.device.screenSize.height:Canvas.height}}),ScreenClass.define("canvasFrame",{get:function(){return this.device?this.device.context.canvasFrame:this.frame}}),ScreenClass.define("midX",{get:function(){return Utils.frameGetMidX(this.frame)}}),ScreenClass.define("midY",{get:function(){return Utils.frameGetMidY(this.frame)}}),ScreenClass.define("size",{get:function(){return Utils.size(this)}}),ScreenClass.define("frame",{get:function(){return Utils.frame(this)}}),ScreenClass.define("device",{get:function(){return Framer.CurrentContext.device}}),ScreenClass.define("backgroundColor",ScreenClass.proxyProperty("device.screen.backgroundColor")),ScreenClass.define("perspective",ScreenClass.proxyProperty("device.context.perspective")),ScreenClass.define("perspectiveOriginX",ScreenClass.proxyProperty("device.context.perspectiveOriginX")),ScreenClass.define("perspectiveOriginY",ScreenClass.proxyProperty("device.context.perspectiveOriginY")),ScreenClass.prototype.toInspect=function(){return"<Screen "+Utils.roundWhole(this.width)+"x"+Utils.roundWhole(this.height)+">"},ScreenClass.prototype.onResize=function(cb){return this.on("resize",cb)},ScreenClass.prototype.convertPointToLayer=function(point,layer){return Utils.convertPointFromContext(point,layer,!1,!0)},ScreenClass.prototype.convertPointToCanvas=function(point){var ctx;return ctx=Framer.Device.context,Utils.convertPointToContext(point,ctx,!0,!1)},ScreenClass.prototype.onEdgeSwipe=function(cb){return this.on(Events.EdgeSwipe,cb)},ScreenClass.prototype.onEdgeSwipeStart=function(cb){return this.on(Events.EdgeSwipeStart,cb)},ScreenClass.prototype.onEdgeSwipeEnd=function(cb){return this.on(Events.EdgeSwipeEnd,cb)},ScreenClass.prototype.onEdgeSwipeTop=function(cb){return this.on(Events.EdgeSwipeTop,cb)},ScreenClass.prototype.onEdgeSwipeTopStart=function(cb){return this.on(Events.EdgeSwipeTopStart,cb)},ScreenClass.prototype.onEdgeSwipeTopEnd=function(cb){return this.on(Events.EdgeSwipeTopEnd,cb)},ScreenClass.prototype.onEdgeSwipeRight=function(cb){return this.on(Events.EdgeSwipeRight,cb)},ScreenClass.prototype.onEdgeSwipeRightStart=function(cb){return this.on(Events.EdgeSwipeRightStart,cb)},ScreenClass.prototype.onEdgeSwipeRightEnd=function(cb){return this.on(Events.EdgeSwipeRightEnd,cb)},ScreenClass.prototype.onEdgeSwipeBottom=function(cb){return this.on(Events.EdgeSwipeBottom,cb)},ScreenClass.prototype.onEdgeSwipeBottomStart=function(cb){return this.on(Events.EdgeSwipeBottomStart,cb)},ScreenClass.prototype.onEdgeSwipeBottomEnd=function(cb){return this.on(Events.EdgeSwipeBottomEnd,cb)},ScreenClass.prototype.onEdgeSwipeLeft=function(cb){return this.on(Events.EdgeSwipeLeft,cb)},ScreenClass.prototype.onEdgeSwipeLeftStart=function(cb){return this.on(Events.EdgeSwipeLeftStart,cb)},ScreenClass.prototype.onEdgeSwipeLeftEnd=function(cb){return this.on(Events.EdgeSwipeLeftEnd,cb)},ScreenClass}(BaseClass),exports.Screen=new ScreenClass},function(module,exports,__webpack_require__){var CounterKey,DefaultPropertyOrder,DefinedPropertiesValuesKey,EventEmitter,ObjectDescriptors,ObjectDescriptorsChanged,Utils,_,bind=function(fn,me){return function(){return fn.apply(me,arguments)}},extend=function(child,parent){function ctor(){this.constructor=child}for(var key in parent)hasProp.call(parent,key)&&(child[key]=parent[key]);return ctor.prototype=parent.prototype,child.prototype=new ctor,child.__super__=parent.prototype,child},hasProp={}.hasOwnProperty,indexOf=[].indexOf||function(item){for(var i=0,l=this.length;i<l;i++)if(i in this&&this[i]===item)return i;return-1};_=__webpack_require__(1)._,Utils=__webpack_require__(4),EventEmitter=__webpack_require__(7).EventEmitter,CounterKey="_ObjectCounter",DefinedPropertiesValuesKey="_DefinedPropertiesValuesKey",ObjectDescriptors=[],ObjectDescriptorsChanged=!0,DefaultPropertyOrder=[],exports.BaseClass=function(superClass){function BaseClass(options){this.toInspect=bind(this.toInspect,this),this._getPropertyValue=bind(this._getPropertyValue,this),this._setPropertyValue=bind(this._setPropertyValue,this);var base;BaseClass.__super__.constructor.apply(this,arguments),this._context="undefined"!=typeof Framer&&null!==Framer?Framer.CurrentContext:void 0,this[DefinedPropertiesValuesKey]={},this._applyDefaults(options),null==(base=this.constructor)[CounterKey]&&(base[CounterKey]=0),this.constructor[CounterKey]+=1,this._id=this.constructor[CounterKey]}return extend(BaseClass,superClass),BaseClass.define=function(propertyName,descriptor){return this!==BaseClass&&this._addDescriptor(propertyName,descriptor),descriptor.readonly&&(descriptor.set=function(value){throw Error(this.constructor.name+"."+propertyName+" is readonly")}),Object.defineProperty(this.prototype,propertyName,descriptor)},BaseClass.undefine=function(propertyName){return _.isArray(propertyName)?propertyName.map(function(_this){return function(prop){return _this.undefine(prop)}}(this)):this.define(propertyName,this.simpleProperty(propertyName,void 0,{importable:!1,exportable:!1,enumerable:!1}))},BaseClass._addDescriptor=function(propertyName,descriptor){var depend,i,index,len,ref;if(descriptor.propertyName=propertyName,null==descriptor.enumerable&&(descriptor.enumerable=!0),null==descriptor.exportable&&(descriptor.exportable=!0),null==descriptor.importable&&(descriptor.importable=!0),null==descriptor.readonly&&(descriptor.readonly=null==descriptor.set),descriptor.importable=descriptor.importable&&!descriptor.readonly,descriptor.exportable=descriptor.exportable&&!descriptor.readonly,!_.startsWith(propertyName,"_")&&(ObjectDescriptors.push([this,propertyName,descriptor]),ObjectDescriptorsChanged=!0,descriptor.exportable||descriptor.importable)){if(descriptor.depends){for(ref=descriptor.depends,i=0,len=ref.length;i<len;i++)depend=ref[i],indexOf.call(DefaultPropertyOrder,depend)<0&&DefaultPropertyOrder.push(depend);index=DefaultPropertyOrder.indexOf(propertyName),index!==-1&&(DefaultPropertyOrder.splice(index,1),DefaultPropertyOrder.push(propertyName))}if(indexOf.call(DefaultPropertyOrder,propertyName)<0)return DefaultPropertyOrder.push(propertyName)}},BaseClass.simpleProperty=function(name,fallback,options){return null==options&&(options={}),_.extend(options,{default:fallback,get:function(){return this._getPropertyValue(name)},set:function(value){return this._setPropertyValue(name,value),null!=options&&"function"==typeof options.didSet?options.didSet(this,value):void 0}})},BaseClass.proxyProperty=function(keyPath,options){var descriptor,objectKey;return null==options&&(options={}),objectKey=keyPath.split(".")[0],descriptor=_.extend(options,{get:function(){if(_.isObject(this[objectKey]))return Utils.getValueForKeyPath(this,keyPath)},set:function(value){if(_.isObject(this[objectKey]))return Utils.setValueForKeyPath(this,keyPath,value),null!=options&&"function"==typeof options.didSet?options.didSet(this,value):void 0},proxy:!0})},BaseClass.prototype._setPropertyValue=function(k,v){return this[DefinedPropertiesValuesKey][k]=v},BaseClass.prototype._getPropertyValue=function(k){return Utils.valueOrDefault(this[DefinedPropertiesValuesKey][k],this._getPropertyDefaultValue(k))},BaseClass.prototype._getPropertyDefaultValue=function(k){var ref;return null!=(ref=this._propertyList()[k])?ref.default:void 0},BaseClass.prototype._propertyList=function(){return this._propertyListCache&&!ObjectDescriptorsChanged||(this._propertyListCache=this.__propertyList(),ObjectDescriptorsChanged=!1),this._propertyListCache},BaseClass.prototype.__propertyList=function(){var Class,descriptor,i,k,len,name,result;for(result={},i=0,len=ObjectDescriptors.length;i<len;i++)k=ObjectDescriptors[i],Class=k[0],name=k[1],descriptor=k[2],this instanceof Class&&(descriptor.exportable||descriptor.importable?result[name]=descriptor:delete result[name]);return result},BaseClass.prototype.keys=function(){return _.keys(this.props)},BaseClass.define("props",{importable:!1,exportable:!1,get:function(){var descriptor,key,keys,propertyList;keys=[],propertyList=this._propertyList();for(key in propertyList)descriptor=propertyList[key],descriptor.exportable&&keys.push(key);return _.pick(this,keys)},set:function(value){var k,propertyList,ref,results,v;propertyList=this._propertyList(),results=[];for(k in value)v=value[k],(null!=(ref=propertyList[k])?ref.importable:void 0)?results.push(this[k]=v):results.push(void 0);return results}}),BaseClass.define("id",{
  get:function(){return this._id}}),BaseClass.prototype.toInspect=function(){return"<"+this.constructor.name+" id:"+(this.id||null)+">"},BaseClass.prototype.onChange=function(name,cb){return this.on("change:"+name,cb)},BaseClass.prototype._applyDefaults=function(options,proxy){var descriptor,i,k,len,propertyList,results;if(null==proxy&&(proxy=!1),options){for(propertyList=this._propertyList(),results=[],i=0,len=DefaultPropertyOrder.length;i<len;i++)if(k=DefaultPropertyOrder[i],descriptor=propertyList[k],null!=descriptor){if(proxy&&descriptor.proxy!==!0)continue;results.push(this._applyDefault(descriptor,k,options[k]))}else results.push(void 0);return results}},BaseClass.prototype._applyProxyDefaults=function(options){return this._applyDefaults(options,!0)},BaseClass.prototype._applyDefault=function(descriptor,key,optionValue){var value;if(!descriptor.readonly&&(descriptor.importable&&(value=optionValue),value=Utils.valueOrDefault(optionValue,this._getPropertyDefaultValue(key)),null!==value&&void 0!==value))return this[key]=value},BaseClass}(EventEmitter)},function(module,exports,__webpack_require__){var EventEmitter3,EventKey,_,extend=function(child,parent){function ctor(){this.constructor=child}for(var key in parent)hasProp.call(parent,key)&&(child[key]=parent[key]);return ctor.prototype=parent.prototype,child.prototype=new ctor,child.__super__=parent.prototype,child},hasProp={}.hasOwnProperty;_=__webpack_require__(1)._,EventEmitter3=__webpack_require__(8),EventKey="_events",exports.EventEmitter=function(superClass){function EventEmitter(){return EventEmitter.__super__.constructor.apply(this,arguments)}return extend(EventEmitter,superClass),EventEmitter.prototype.listenerEvents=function(){return _.keys(this[EventKey])},EventEmitter.prototype.removeAllListeners=function(eventName){var eventNames,i,len,listener,results;for(eventNames=eventName?[eventName]:this.listenerEvents(),results=[],i=0,len=eventNames.length;i<len;i++)eventName=eventNames[i],results.push(function(){var j,len1,ref,results1;for(ref=this.listeners(eventName),results1=[],j=0,len1=ref.length;j<len1;j++)listener=ref[j],results1.push(this.removeListener(eventName,listener));return results1}.call(this));return results},EventEmitter}(EventEmitter3)},function(module,exports,__webpack_require__){"use strict";function EE(fn,context,once){this.fn=fn,this.context=context,this.once=once||!1}function EventEmitter(){}var has=Object.prototype.hasOwnProperty,prefix="function"!=typeof Object.create&&"~";EventEmitter.prototype._events=void 0,EventEmitter.prototype.eventNames=function(){var name,events=this._events,names=[];if(!events)return names;for(name in events)has.call(events,name)&&names.push(prefix?name.slice(1):name);return Object.getOwnPropertySymbols?names.concat(Object.getOwnPropertySymbols(events)):names},EventEmitter.prototype.listeners=function(event,exists){var evt=prefix?prefix+event:event,available=this._events&&this._events[evt];if(exists)return!!available;if(!available)return[];if(available.fn)return[available.fn];for(var i=0,l=available.length,ee=new Array(l);i<l;i++)ee[i]=available[i].fn;return ee},EventEmitter.prototype.emit=function(event,a1,a2,a3,a4,a5){var evt=prefix?prefix+event:event;if(!this._events||!this._events[evt])return!1;var args,i,listeners=this._events[evt],len=arguments.length;if("function"==typeof listeners.fn){switch(listeners.once&&this.removeListener(event,listeners.fn,void 0,!0),len){case 1:return listeners.fn.call(listeners.context),!0;case 2:return listeners.fn.call(listeners.context,a1),!0;case 3:return listeners.fn.call(listeners.context,a1,a2),!0;case 4:return listeners.fn.call(listeners.context,a1,a2,a3),!0;case 5:return listeners.fn.call(listeners.context,a1,a2,a3,a4),!0;case 6:return listeners.fn.call(listeners.context,a1,a2,a3,a4,a5),!0}for(i=1,args=new Array(len-1);i<len;i++)args[i-1]=arguments[i];listeners.fn.apply(listeners.context,args)}else{var j,length=listeners.length;for(i=0;i<length;i++)switch(listeners[i].once&&this.removeListener(event,listeners[i].fn,void 0,!0),len){case 1:listeners[i].fn.call(listeners[i].context);break;case 2:listeners[i].fn.call(listeners[i].context,a1);break;case 3:listeners[i].fn.call(listeners[i].context,a1,a2);break;default:if(!args)for(j=1,args=new Array(len-1);j<len;j++)args[j-1]=arguments[j];listeners[i].fn.apply(listeners[i].context,args)}}return!0},EventEmitter.prototype.on=function(event,fn,context){var listener=new EE(fn,context||this),evt=prefix?prefix+event:event;return this._events||(this._events=prefix?{}:Object.create(null)),this._events[evt]?this._events[evt].fn?this._events[evt]=[this._events[evt],listener]:this._events[evt].push(listener):this._events[evt]=listener,this},EventEmitter.prototype.once=function(event,fn,context){var listener=new EE(fn,context||this,!0),evt=prefix?prefix+event:event;return this._events||(this._events=prefix?{}:Object.create(null)),this._events[evt]?this._events[evt].fn?this._events[evt]=[this._events[evt],listener]:this._events[evt].push(listener):this._events[evt]=listener,this},EventEmitter.prototype.removeListener=function(event,fn,context,once){var evt=prefix?prefix+event:event;if(!this._events||!this._events[evt])return this;var listeners=this._events[evt],events=[];if(fn)if(listeners.fn)(listeners.fn!==fn||once&&!listeners.once||context&&listeners.context!==context)&&events.push(listeners);else for(var i=0,length=listeners.length;i<length;i++)(listeners[i].fn!==fn||once&&!listeners[i].once||context&&listeners[i].context!==context)&&events.push(listeners[i]);return events.length?this._events[evt]=1===events.length?events[0]:events:delete this._events[evt],this},EventEmitter.prototype.removeAllListeners=function(event){return this._events?(event?delete this._events[prefix?prefix+event:event]:this._events=prefix?{}:Object.create(null),this):this},EventEmitter.prototype.off=EventEmitter.prototype.removeListener,EventEmitter.prototype.addListener=EventEmitter.prototype.on,EventEmitter.prototype.setMaxListeners=function(){return this},EventEmitter.prefixed=prefix,module.exports=EventEmitter},function(module,exports){WebKitCSSMatrix.prototype.skew=function(skew){var m,rad,value;return skew?(rad=skew*Math.PI/180,value=Math.tan(rad),m=new WebKitCSSMatrix,m.m12=value,m.m21=value,this.multiply(m)):this},WebKitCSSMatrix.prototype.point=function(point){var ref,w,x,y,z;return null==point&&(point={}),ref=_.defaults(point,{x:0,y:0,z:0}),x=ref.x,y=ref.y,z=ref.z,w=this.m14*x+this.m24*y+this.m34*z+this.m44,w=w||1,point={x:(this.m11*x+this.m21*y+this.m31*z+this.m41)/w,y:(this.m12*x+this.m22*y+this.m32*z+this.m42)/w,z:(this.m13*x+this.m23*y+this.m33*z+this.m43)/w}},exports.Matrix=WebKitCSSMatrix},function(module,exports,__webpack_require__){var __WEBPACK_AMD_DEFINE_RESULT__;!function(){function aa(a,b,c){return a.call.apply(a.bind,arguments)}function ba(a,b,c){if(!a)throw Error();if(2<arguments.length){var d=Array.prototype.slice.call(arguments,2);return function(){var c=Array.prototype.slice.call(arguments);return Array.prototype.unshift.apply(c,d),a.apply(b,c)}}return function(){return a.apply(b,arguments)}}function p(a,b,c){return p=Function.prototype.bind&&-1!=Function.prototype.bind.toString().indexOf("native code")?aa:ba,p.apply(null,arguments)}function ca(a,b){this.a=a,this.o=b||a,this.c=this.o.document}function t(a,b,c,d){if(b=a.c.createElement(b),c)for(var e in c)c.hasOwnProperty(e)&&("style"==e?b.style.cssText=c[e]:b.setAttribute(e,c[e]));return d&&b.appendChild(a.c.createTextNode(d)),b}function u(a,b,c){a=a.c.getElementsByTagName(b)[0],a||(a=document.documentElement),a.insertBefore(c,a.lastChild)}function v(a){a.parentNode&&a.parentNode.removeChild(a)}function w(a,b,c){b=b||[],c=c||[];for(var d=a.className.split(/\s+/),e=0;e<b.length;e+=1){for(var f=!1,g=0;g<d.length;g+=1)if(b[e]===d[g]){f=!0;break}f||d.push(b[e])}for(b=[],e=0;e<d.length;e+=1){for(f=!1,g=0;g<c.length;g+=1)if(d[e]===c[g]){f=!0;break}f||b.push(d[e])}a.className=b.join(" ").replace(/\s+/g," ").replace(/^\s+|\s+$/,"")}function y(a,b){for(var c=a.className.split(/\s+/),d=0,e=c.length;d<e;d++)if(c[d]==b)return!0;return!1}function ea(a){return a.o.location.hostname||a.a.location.hostname}function z(a,b,c){function d(){m&&e&&f&&(m(g),m=null)}b=t(a,"link",{rel:"stylesheet",href:b,media:"all"});var e=!1,f=!0,g=null,m=c||null;da?(b.onload=function(){e=!0,d()},b.onerror=function(){e=!0,g=Error("Stylesheet failed to load"),d()}):setTimeout(function(){e=!0,d()},0),u(a,"head",b)}function A(a,b,c,d){var e=a.c.getElementsByTagName("head")[0];if(e){var f=t(a,"script",{src:b}),g=!1;return f.onload=f.onreadystatechange=function(){g||this.readyState&&"loaded"!=this.readyState&&"complete"!=this.readyState||(g=!0,c&&c(null),f.onload=f.onreadystatechange=null,"HEAD"==f.parentNode.tagName&&e.removeChild(f))},e.appendChild(f),setTimeout(function(){g||(g=!0,c&&c(Error("Script load timeout")))},d||5e3),f}return null}function B(){this.a=0,this.c=null}function C(a){return a.a++,function(){a.a--,D(a)}}function E(a,b){a.c=b,D(a)}function D(a){0==a.a&&a.c&&(a.c(),a.c=null)}function F(a){this.a=a||"-"}function G(a,b){this.c=a,this.f=4,this.a="n";var c=(b||"n4").match(/^([nio])([1-9])$/i);c&&(this.a=c[1],this.f=parseInt(c[2],10))}function fa(a){return H(a)+" "+(a.f+"00")+" 300px "+I(a.c)}function I(a){var b=[];a=a.split(/,\s*/);for(var c=0;c<a.length;c++){var d=a[c].replace(/['"]/g,"");-1!=d.indexOf(" ")||/^\d/.test(d)?b.push("'"+d+"'"):b.push(d)}return b.join(",")}function J(a){return a.a+a.f}function H(a){var b="normal";return"o"===a.a?b="oblique":"i"===a.a&&(b="italic"),b}function ga(a){var b=4,c="n",d=null;return a&&((d=a.match(/(normal|oblique|italic)/i))&&d[1]&&(c=d[1].substr(0,1).toLowerCase()),(d=a.match(/([1-9]00|normal|bold)/i))&&d[1]&&(/bold/i.test(d[1])?b=7:/[1-9]00/.test(d[1])&&(b=parseInt(d[1].substr(0,1),10)))),c+b}function ha(a,b){this.c=a,this.f=a.o.document.documentElement,this.h=b,this.a=new F("-"),this.j=!1!==b.events,this.g=!1!==b.classes}function ia(a){a.g&&w(a.f,[a.a.c("wf","loading")]),K(a,"loading")}function L(a){if(a.g){var b=y(a.f,a.a.c("wf","active")),c=[],d=[a.a.c("wf","loading")];b||c.push(a.a.c("wf","inactive")),w(a.f,c,d)}K(a,"inactive")}function K(a,b,c){a.j&&a.h[b]&&(c?a.h[b](c.c,J(c)):a.h[b]())}function ja(){this.c={}}function ka(a,b,c){var e,d=[];for(e in b)if(b.hasOwnProperty(e)){var f=a.c[e];f&&d.push(f(b[e],c))}return d}function M(a,b){this.c=a,this.f=b,this.a=t(this.c,"span",{"aria-hidden":"true"},this.f)}function N(a){u(a.c,"body",a.a)}function O(a){return"display:block;position:absolute;top:-9999px;left:-9999px;font-size:300px;width:auto;height:auto;line-height:normal;margin:0;padding:0;font-variant:normal;white-space:nowrap;font-family:"+I(a.c)+";"+("font-style:"+H(a)+";font-weight:"+(a.f+"00")+";")}function P(a,b,c,d,e,f){this.g=a,this.j=b,this.a=d,this.c=c,this.f=e||3e3,this.h=f||void 0}function Q(a,b,c,d,e,f,g){this.v=a,this.B=b,this.c=c,this.a=d,this.s=g||"BESbswy",this.f={},this.w=e||3e3,this.u=f||null,this.m=this.j=this.h=this.g=null,this.g=new M(this.c,this.s),this.h=new M(this.c,this.s),this.j=new M(this.c,this.s),this.m=new M(this.c,this.s),a=new G(this.a.c+",serif",J(this.a)),a=O(a),this.g.a.style.cssText=a,a=new G(this.a.c+",sans-serif",J(this.a)),a=O(a),this.h.a.style.cssText=a,a=new G("serif",J(this.a)),a=O(a),this.j.a.style.cssText=a,a=new G("sans-serif",J(this.a)),a=O(a),this.m.a.style.cssText=a,N(this.g),N(this.h),N(this.j),N(this.m)}function T(){if(null===S){var a=/AppleWebKit\/([0-9]+)(?:\.([0-9]+))/.exec(window.navigator.userAgent);S=!!a&&(536>parseInt(a[1],10)||536===parseInt(a[1],10)&&11>=parseInt(a[2],10))}return S}function la(a,b,c){for(var d in R)if(R.hasOwnProperty(d)&&b===a.f[R[d]]&&c===a.f[R[d]])return!0;return!1}function U(a){var d,b=a.g.a.offsetWidth,c=a.h.a.offsetWidth;(d=b===a.f.serif&&c===a.f["sans-serif"])||(d=T()&&la(a,b,c)),d?q()-a.A>=a.w?T()&&la(a,b,c)&&(null===a.u||a.u.hasOwnProperty(a.a.c))?V(a,a.v):V(a,a.B):ma(a):V(a,a.v)}function ma(a){setTimeout(p(function(){U(this)},a),50)}function V(a,b){setTimeout(p(function(){v(this.g.a),v(this.h.a),v(this.j.a),v(this.m.a),b(this.a)},a),0)}function W(a,b,c){this.c=a,this.a=b,this.f=0,this.m=this.j=!1,this.s=c}function na(a){0==--a.f&&a.j&&(a.m?(a=a.a,a.g&&w(a.f,[a.a.c("wf","active")],[a.a.c("wf","loading"),a.a.c("wf","inactive")]),K(a,"active")):L(a.a))}function oa(a){this.j=a,this.a=new ja,this.h=0,this.f=this.g=!0}function qa(a,b,c,d,e){var f=0==--a.h;(a.f||a.g)&&setTimeout(function(){var a=e||null,m=d||null||{};if(0===c.length&&f)L(b.a);else{b.f+=c.length,f&&(b.j=f);var h,l=[];for(h=0;h<c.length;h++){var k=c[h],n=m[k.c],r=b.a,x=k;if(r.g&&w(r.f,[r.a.c("wf",x.c,J(x).toString(),"loading")]),K(r,"fontloading",x),r=null,null===X)if(window.FontFace){var x=/Gecko.*Firefox\/(\d+)/.exec(window.navigator.userAgent),xa=/OS X.*Version\/10\..*Safari/.exec(window.navigator.userAgent)&&/Apple/.exec(window.navigator.vendor);X=x?42<parseInt(x[1],10):!xa}else X=!1;r=X?new P(p(b.g,b),p(b.h,b),b.c,k,b.s,n):new Q(p(b.g,b),p(b.h,b),b.c,k,b.s,a,n),l.push(r)}for(h=0;h<l.length;h++)l[h].start()}},0)}function pa(a,b,c){var d=[],e=c.timeout;ia(b);var d=ka(a.a,c,a.c),f=new W(a.c,b,e);for(a.h=d.length,b=0,c=d.length;b<c;b++)d[b].load(function(b,d,c){qa(a,f,b,d,c)})}function ra(a,b){this.c=a,this.a=b}function sa(a,b){this.c=a,this.a=b}function ta(a,b){a?this.c=a:this.c=ua,this.a=[],this.f=[],this.g=b||""}function va(a,b){for(var c=b.length,d=0;d<c;d++){var e=b[d].split(":");3==e.length&&a.f.push(e.pop());var f="";2==e.length&&""!=e[1]&&(f=":"),a.a.push(e.join(f))}}function wa(a){if(0==a.a.length)throw Error("No fonts to load!");if(-1!=a.c.indexOf("kit="))return a.c;for(var b=a.a.length,c=[],d=0;d<b;d++)c.push(a.a[d].replace(/ /g,"+"));return b=a.c+"?family="+c.join("%7C"),0<a.f.length&&(b+="&subset="+a.f.join(",")),0<a.g.length&&(b+="&text="+encodeURIComponent(a.g)),b}function ya(a){this.f=a,this.a=[],this.c={}}function Da(a){for(var b=a.f.length,c=0;c<b;c++){var d=a.f[c].split(":"),e=d[0].replace(/\+/g," "),f=["n4"];if(2<=d.length){var g,m=d[1];if(g=[],m)for(var m=m.split(","),h=m.length,l=0;l<h;l++){var k;if(k=m[l],k.match(/^[\w-]+$/)){var n=Ca.exec(k.toLowerCase());if(null==n)k="";else{if(k=n[2],k=null==k||""==k?"n":Ba[k],n=n[1],null==n||""==n)n="4";else var r=Aa[n],n=r?r:isNaN(n)?"4":n.substr(0,1);k=[k,n].join("")}}else k="";k&&g.push(k)}0<g.length&&(f=g),3==d.length&&(d=d[2],g=[],d=d?d.split(","):g,0<d.length&&(d=za[d[0]])&&(a.c[e]=d))}for(a.c[e]||(d=za[e])&&(a.c[e]=d),d=0;d<f.length;d+=1)a.a.push(new G(e,f[d]))}}function Ea(a,b){this.c=a,this.a=b}function Ga(a,b){this.c=a,this.a=b}function Ha(a,b){this.c=a,this.f=b,this.a=[]}var q=Date.now||function(){return+new Date},da=!!window.FontFace;F.prototype.c=function(a){for(var b=[],c=0;c<arguments.length;c++)b.push(arguments[c].replace(/[\W_]+/g,"").toLowerCase());return b.join(this.a)},P.prototype.start=function(){var a=this.c.o.document,b=this,c=q(),d=new Promise(function(d,e){function f(){q()-c>=b.f?e():a.fonts.load(fa(b.a),b.h).then(function(a){1<=a.length?d():setTimeout(f,25)},function(){e()})}f()}),e=null,f=new Promise(function(a,d){e=setTimeout(d,b.f)});Promise.race([f,d]).then(function(){e&&(clearTimeout(e),e=null),b.g(b.a)},function(){b.j(b.a)})};var R={D:"serif",C:"sans-serif"},S=null;Q.prototype.start=function(){this.f.serif=this.j.a.offsetWidth,this.f["sans-serif"]=this.m.a.offsetWidth,this.A=q(),U(this)};var X=null;W.prototype.g=function(a){var b=this.a;b.g&&w(b.f,[b.a.c("wf",a.c,J(a).toString(),"active")],[b.a.c("wf",a.c,J(a).toString(),"loading"),b.a.c("wf",a.c,J(a).toString(),"inactive")]),K(b,"fontactive",a),this.m=!0,na(this)},W.prototype.h=function(a){var b=this.a;if(b.g){var c=y(b.f,b.a.c("wf",a.c,J(a).toString(),"active")),d=[],e=[b.a.c("wf",a.c,J(a).toString(),"loading")];c||d.push(b.a.c("wf",a.c,J(a).toString(),"inactive")),w(b.f,d,e)}K(b,"fontinactive",a),na(this)},oa.prototype.load=function(a){this.c=new ca(this.j,a.context||this.j),this.g=!1!==a.events,this.f=!1!==a.classes,pa(this,new ha(this.c,a),a)},ra.prototype.load=function(a){function b(){if(f["__mti_fntLst"+d]){var h,c=f["__mti_fntLst"+d](),e=[];if(c)for(var l=0;l<c.length;l++){var k=c[l].fontfamily;void 0!=c[l].fontStyle&&void 0!=c[l].fontWeight?(h=c[l].fontStyle+c[l].fontWeight,e.push(new G(k,h))):e.push(new G(k))}a(e)}else setTimeout(function(){b()},50)}var c=this,d=c.a.projectId,e=c.a.version;if(d){var f=c.c.o;A(this.c,(c.a.api||"https://fast.fonts.net/jsapi")+"/"+d+".js"+(e?"?v="+e:""),function(e){e?a([]):(f["__MonotypeConfiguration__"+d]=function(){return c.a},b())}).id="__MonotypeAPIScript__"+d}else a([])},sa.prototype.load=function(a){var b,c,d=this.a.urls||[],e=this.a.families||[],f=this.a.testStrings||{},g=new B;for(b=0,c=d.length;b<c;b++)z(this.c,d[b],C(g));var m=[];for(b=0,c=e.length;b<c;b++)if(d=e[b].split(":"),d[1])for(var h=d[1].split(","),l=0;l<h.length;l+=1)m.push(new G(d[0],h[l]));else m.push(new G(d[0]));E(g,function(){a(m,f)})};var ua="https://fonts.googleapis.com/css",za={latin:"BESbswy","latin-ext":"çöüğş",cyrillic:"йяЖ",greek:"αβΣ",khmer:"កខគ",Hanuman:"កខគ"},Aa={thin:"1",extralight:"2","extra-light":"2",ultralight:"2","ultra-light":"2",light:"3",regular:"4",book:"4",medium:"5","semi-bold":"6",semibold:"6","demi-bold":"6",demibold:"6",bold:"7","extra-bold":"8",extrabold:"8","ultra-bold":"8",ultrabold:"8",black:"9",heavy:"9",l:"3",r:"4",b:"7"},Ba={i:"i",italic:"i",n:"n",normal:"n"},Ca=/^(thin|(?:(?:extra|ultra)-?)?light|regular|book|medium|(?:(?:semi|demi|extra|ultra)-?)?bold|black|heavy|l|r|b|[1-9]00)?(n|i|normal|italic)?$/,Fa={Arimo:!0,Cousine:!0,Tinos:!0};Ea.prototype.load=function(a){var b=new B,c=this.c,d=new ta(this.a.api,this.a.text),e=this.a.families;va(d,e);var f=new ya(e);Da(f),z(c,wa(d),C(b)),E(b,function(){a(f.a,f.c,Fa)})},Ga.prototype.load=function(a){var b=this.a.id,c=this.c.o;b?A(this.c,(this.a.api||"https://use.typekit.net")+"/"+b+".js",function(b){if(b)a([]);else if(c.Typekit&&c.Typekit.config&&c.Typekit.config.fn){b=c.Typekit.config.fn;for(var e=[],f=0;f<b.length;f+=2)for(var g=b[f],m=b[f+1],h=0;h<m.length;h++)e.push(new G(g,m[h]));try{c.Typekit.load({events:!1,classes:!1,async:!0})}catch(l){}a(e)}},2e3):a([])},Ha.prototype.load=function(a){var b=this.f.id,c=this.c.o,d=this;b?(c.__webfontfontdeckmodule__||(c.__webfontfontdeckmodule__={}),c.__webfontfontdeckmodule__[b]=function(b,c){for(var g=0,m=c.fonts.length;g<m;++g){var h=c.fonts[g];d.a.push(new G(h.name,ga("font-weight:"+h.weight+";font-style:"+h.style)))}a(d.a)},A(this.c,(this.f.api||"https://f.fontdeck.com/s/css/js/")+ea(this.c)+"/"+b+".js",function(b){b&&a([])})):a([])};var Y=new oa(window);Y.a.c.custom=function(a,b){return new sa(b,a)},Y.a.c.fontdeck=function(a,b){return new Ha(b,a)},Y.a.c.monotype=function(a,b){return new ra(b,a)},Y.a.c.typekit=function(a,b){return new Ga(b,a)},Y.a.c.google=function(a,b){return new Ea(b,a)};var Z={load:p(Y.load,Y)};__WEBPACK_AMD_DEFINE_RESULT__=function(){return Z}.call(exports,__webpack_require__,exports,module),!(void 0!==__WEBPACK_AMD_DEFINE_RESULT__&&(module.exports=__WEBPACK_AMD_DEFINE_RESULT__))}()},function(module,exports,__webpack_require__){var BaseClass,ColorModel,ColorType,_,bound01,convertToPercentage,correctAlpha,cssNames,hslToRgb,inputData,isNumeric,isOnePointZero,isPercentage,libhusl,matchers,numberFromString,pad2,percentToFraction,rgbToHex,rgbToHsl,rgbToRgb,rgbaFromHusl,stringToObject,bind=function(fn,me){return function(){return fn.apply(me,arguments)}},extend=function(child,parent){function ctor(){this.constructor=child}for(var key in parent)hasProp.call(parent,key)&&(child[key]=parent[key]);return ctor.prototype=parent.prototype,child.prototype=new ctor,child.__super__=parent.prototype,child},hasProp={}.hasOwnProperty,slice=[].slice;_=__webpack_require__(1)._,BaseClass=__webpack_require__(6).BaseClass,libhusl=__webpack_require__(12),ColorType={RGB:"rgb",HSL:"hsl",HEX:"hex",NAME:"name"},exports.Color=function(superClass){function Color(color1,r,g,b){var color,input;return this.color=color1,this.toInspect=bind(this.toInspect,this),""===this.color&&(this.color=null),color=this.color,Color.isColorObject(color)?color:(input=inputData(color,r,g,b),this._type=input.type,this._r=input.r,this._g=input.g,this._b=input.b,this._a=input.a,this._h=input.h,this._s=input.s,this._l=input.l,void(this._roundA=Math.round(100*this._a)/100))}return extend(Color,superClass),Color.define("r",{get:function(){return this._r}}),Color.define("g",{get:function(){return this._g}}),Color.define("b",{get:function(){return this._b}}),Color.define("a",{get:function(){return this._a}}),Color.define("h",{get:function(){return this._h}}),Color.define("s",{get:function(){return this._s}}),Color.define("l",{get:function(){return this._l}}),Color.prototype.toHex=function(allow3Char){return rgbToHex(this._r,this._g,this._b,allow3Char)},Color.prototype.toHexString=function(allow3Char){return"#"+this.toHex(allow3Char)},Color.prototype.toRgb=function(){return void 0===this._rgb&&(this._rgb={r:Math.round(this._r),g:Math.round(this._g),b:Math.round(this._b),a:this._a}),_.clone(this._rgb)},Color.prototype.toRgbString=function(){return 1===this._a?"rgb("+Utils.round(this._r,0)+", "+Utils.round(this._g,0)+", "+Utils.round(this._b,0)+")":"rgba("+Utils.round(this._r,0)+", "+Utils.round(this._g,0)+", "+Utils.round(this._b,0)+", "+this._roundA+")"},Color.prototype.toHsl=function(){return void 0===this._hsl&&(this._hsl={h:this.h,s:this.s,l:this.l,a:this.a}),_.clone(this._hsl)},Color.prototype.toHusl=function(){var c,husl;return void 0===this._husl&&(c=libhusl._conv,husl=c.lch.husl(c.luv.lch(c.xyz.luv(c.rgb.xyz([this.r/255,this.g/255,this.b/255])))),this._husl={h:husl[0],s:husl[1],l:husl[2]}),_.clone(this._husl)},Color.prototype.toHslString=function(){var h,hsl,l,s;return void 0===this._hslString&&(hsl=this.toHsl(),h=Math.round(hsl.h),s=Math.round(100*hsl.s),l=Math.round(100*hsl.l),1===this._a?this._hslString="hsl("+h+", "+s+"%, "+l+"%)":this._hslString="hsla("+h+", "+s+"%, "+l+"%, "+this._roundA+")"),this._hslString},Color.prototype.toName=function(){var hex,i,key,len,ref,value;if(0===this._a)return"transparent";if(this._a<1)return!1;for(hex=rgbToHex(this._r,this._g,this._b,!0),ref=_.keys(cssNames),i=0,len=ref.length;i<len;i++)if(key=ref[i],value=cssNames[key],value===hex)return key;return!1},Color.prototype.lighten=function(amount){var hsl;return null==amount&&(amount=10),hsl=this.toHsl(),hsl.l+=amount/100,hsl.l=Math.min(1,Math.max(0,hsl.l)),new Color(hsl)},Color.prototype.brighten=function(amount){var rgb;return null==amount&&(amount=10),rgb=this.toRgb(),rgb.r=Math.max(0,Math.min(255,rgb.r-Math.round(255*-(amount/100)))),rgb.g=Math.max(0,Math.min(255,rgb.g-Math.round(255*-(amount/100)))),rgb.b=Math.max(0,Math.min(255,rgb.b-Math.round(255*-(amount/100)))),new Color(rgb)},Color.prototype.darken=function(amount){var hsl;return null==amount&&(amount=10),hsl=this.toHsl(),hsl.l-=amount/100,hsl.l=Math.min(1,Math.max(0,hsl.l)),new Color(hsl)},Color.prototype.desaturate=function(amount){var hsl;return null==amount&&(amount=10),hsl=this.toHsl(),hsl.s-=amount/100,hsl.s=Math.min(1,Math.max(0,hsl.s)),new Color(hsl)},Color.prototype.saturate=function(amount){var hsl;return null==amount&&(amount=10),hsl=this.toHsl(),hsl.s+=amount/100,hsl.s=Math.min(1,Math.max(0,hsl.s)),new Color(hsl)},Color.prototype.grayscale=function(){var hsl;return hsl=this.toHsl(),new Color(hsl).desaturate(100)},Color.prototype.toString=function(){return this.toRgbString()},Color.prototype.alpha=function(alpha){var result;return null==alpha&&(alpha=1),result=new Color({r:this.r,g:this.g,b:this.b,a:alpha})},Color.prototype.multiplyAlpha=function(alpha){return this.alpha(this.a*alpha)},Color.prototype.transparent=function(){return this.alpha(0)},Color.prototype.mix=function(colorB,fraction,limit,model){return null==limit&&(limit=!1),Color.mix(this,colorB,fraction,limit,model)},Color.prototype.copy=function(){return new Color(this)},Color.prototype.isEqual=function(colorB){return Color.equal(this,colorB)},Color.prototype.toInspect=function(){return this._type===ColorType.HSL?"<"+this.constructor.name+" h:"+this.h+" s:"+this.s+" l:"+this.l+" a:"+this.a+">":this._type===ColorType.HEX||this._type===ColorType.NAME?"<"+this.constructor.name+' "'+this.color+'">':"<"+this.constructor.name+" r:"+this.r+" g:"+this.g+" b:"+this.b+" a:"+this.a+">"},Color.mix=function(colorA,colorB,fraction,limit,model){var deltaH,fromH,hslA,hslB,result,toH,tween;return null==fraction&&(fraction=.5),null==limit&&(limit=!1),result=null,"string"==typeof colorA&&this.isColorString(colorA)&&(colorA=new Color(colorA)),"string"==typeof colorB&&this.isColorString(colorB)&&(colorB=new Color(colorB)),!(colorA instanceof Color)&&colorB instanceof Color?colorA=colorB.transparent():colorA instanceof Color&&0===colorA._a&&colorB instanceof Color&&0!==colorB._a?colorA=colorB.transparent():!(colorB instanceof Color)&&colorA instanceof Color?colorB=colorA.transparent():colorB instanceof Color&&0===colorB._a&&colorA instanceof Color&&0!==colorA._a&&(colorB=colorA.transparent()),colorB instanceof Color&&(ColorModel.isRGB(model)?result=new Color({r:Utils.modulate(fraction,[0,1],[colorA._r,colorB._r],limit),g:Utils.modulate(fraction,[0,1],[colorA._g,colorB._g],limit),b:Utils.modulate(fraction,[0,1],[colorA._b,colorB._b],limit),a:Utils.modulate(fraction,[0,1],[colorA._a,colorB._a],limit)}):(ColorModel.isHSL(model)?(hslA=colorA.toHsl(),hslB=colorB.toHsl()):(hslA=colorA.toHusl(),hslB=colorB.toHusl()),0===hslA.s?hslA.h=hslB.h:0===hslB.s&&(hslB.h=hslA.h),fromH=hslA.h,toH=hslB.h,deltaH=toH-fromH,deltaH>180?deltaH=toH-360-fromH:deltaH<-180&&(deltaH=toH+360-fromH),tween={h:Utils.modulate(fraction,[0,1],[fromH,fromH+deltaH],limit),s:Utils.modulate(fraction,[0,1],[hslA.s,hslB.s],limit),l:Utils.modulate(fraction,[0,1],[hslA.l,hslB.l],limit),a:Utils.modulate(fraction,[0,1],[colorA.a,colorB.a],limit)},result=new Color(ColorModel.isHSL(model)?tween:rgbaFromHusl(tween)))),result},Color.random=function(alpha){var c;return null==alpha&&(alpha=1),c=function(){return parseInt(255*Math.random())},new Color("rgba("+c()+", "+c()+", "+c()+", "+alpha+")")},Color.grey=function(g,alpha){return null==g&&(g=.5),null==alpha&&(alpha=1),g=parseInt(255*g),new Color("rgba("+g+", "+g+", "+g+", "+alpha+")")},Color.gray=function(){var args;return args=1<=arguments.length?slice.call(arguments,0):[],this.grey.apply(this,args)},Color.toColor=function(color){return new Color(color)},Color.validColorValue=function(color){return color instanceof Color||null===color},Color.isColor=function(color){return _.isString(color)?Color.isColorString(color):Color.isColorObject(color)},Color.isColorObject=function(color){return color instanceof Color},Color.isColorString=function(colorString){return!!_.isString(colorString)&&stringToObject(colorString)!==!1},Color.isValidColorProperty=function(name,value){var isColorKey;return isColorKey=_.endsWith(name.toLowerCase(),"color")||"fill"===name||"stroke"===name,!!(isColorKey&&_.isString(value)&&Color.isColorString(value))},Color.equal=function(colorA,colorB){var tolerance;return!(!this.validColorValue(colorA)&&!Color.isColorString(colorA))&&(!(!this.validColorValue(colorB)&&!Color.isColorString(colorB))&&(colorA=new Color(colorA),colorB=new Color(colorB),tolerance=.01,!(Math.abs(colorA.r-colorB.r)>=tolerance)&&(!(Math.abs(colorA.g-colorB.g)>=tolerance)&&(!(Math.abs(colorA.b-colorB.b)>=tolerance)&&!(Math.abs(colorA.a-colorB.a)>=tolerance)))))},Color.rgbToHsl=function(a,b,c){return rgbToHsl(a,b,c)},Color}(BaseClass),ColorModel={RGB:"rgb",RGBA:"rgba",HSL:"hsl",HSLA:"hsla"},ColorModel.isRGB=function(colorModel){var ref;return!!_.isString(colorModel)&&((ref=colorModel.toLowerCase())===ColorModel.RGB||ref===ColorModel.RGBA)},ColorModel.isHSL=function(colorModel){var ref;return!!_.isString(colorModel)&&((ref=colorModel.toLowerCase())===ColorModel.HSL||ref===ColorModel.HSLA)},rgbaFromHusl=function(husl){var c,rgb,rgba;return c=libhusl._conv,rgb=c.xyz.rgb(c.luv.xyz(c.lch.luv(c.husl.lch([husl.h,husl.s,husl.l])))),rgba={r:255*rgb[0],g:255*rgb[1],b:255*rgb[2],a:husl.a}},inputData=function(color,g,b,alpha){var a,h,hsl,l,ok,rgb,s,type;return rgb={r:0,g:0,b:0},hsl={h:0,s:0,l:0},a=1,ok=!1,type=ColorType.RGB,null===color?a=0:_.isNumber(color)?(rgb.r=color,_.isNumber(g)&&(rgb.g=g),_.isNumber(b)&&(rgb.b=b),_.isNumber(alpha)&&(a=alpha)):("string"==typeof color&&(color=stringToObject(color),color||(color={r:0,g:0,b:0,a:0}),color.hasOwnProperty("type")&&(type=color.type)),"object"==typeof color&&(color.hasOwnProperty("r")||color.hasOwnProperty("g")||color.hasOwnProperty("b")?rgb=rgbToRgb(color.r,color.g,color.b):(color.hasOwnProperty("h")||color.hasOwnProperty("s")||color.hasOwnProperty("l"))&&(h=isNumeric(color.h)?parseFloat(color.h):0,h=(h+360)%360,s=isNumeric(color.s)?color.s:1,_.isString(color.s)&&(s=numberFromString(color.s)),l=isNumeric(color.l)?color.l:.5,_.isString(color.l)&&(l=numberFromString(color.l)),rgb=hslToRgb(h,s,l),type=ColorType.HSL,hsl={h:h,s:s,l:l}),color.hasOwnProperty("a")&&(a=color.a))),a=correctAlpha(a),type!==ColorType.HSL&&(hsl=rgbToHsl(rgb.r,rgb.g,rgb.b)),{type:type,r:Math.min(255,Math.max(rgb.r,0)),g:Math.min(255,Math.max(rgb.g,0)),b:Math.min(255,Math.max(rgb.b,0)),h:Utils.clamp(hsl.h,0,360),s:Utils.clamp(hsl.s,0,1),l:Utils.clamp(hsl.l,0,1),a:a}},numberFromString=function(string){return string.match(/\d+/)[0]},rgbToRgb=function(r,g,b){return{r:isNumeric(r)?255*bound01(r,255):0,g:isNumeric(g)?255*bound01(g,255):0,b:isNumeric(b)?255*bound01(b,255):0}},rgbToHex=function(r,g,b,allow3Char){var hex;return hex=[pad2(Math.round(r).toString(16)),pad2(Math.round(g).toString(16)),pad2(Math.round(b).toString(16))],allow3Char&&hex[0].charAt(0)===hex[0].charAt(1)&&hex[1].charAt(0)===hex[1].charAt(1)&&hex[2].charAt(0)===hex[2].charAt(1)?hex[0].charAt(0)+hex[1].charAt(0)+hex[2].charAt(0):hex.join("")},rgbToHsl=function(r,g,b){var d,h,l,max,min,s;if(r=bound01(r,255),g=bound01(g,255),b=bound01(b,255),max=Math.max(r,g,b),min=Math.min(r,g,b),h=s=l=(max+min)/2,max===min)h=s=0;else{switch(d=max-min,s=l>.5?d/(2-max-min):d/(max+min),max){case r:h=(g-b)/d+(g<b?6:0);break;case g:h=(b-r)/d+2;break;case b:h=(r-g)/d+4}h/=6}return{h:360*h,s:s,l:l}},hslToRgb=function(h,s,l){var b,g,hue2rgb,p,q,r;return r=void 0,g=void 0,b=void 0,h=bound01(h,360),s=bound01(100*s,100),l=bound01(100*l,100),hue2rgb=function(p,q,t){return t<0&&(t+=1),t>1&&(t-=1),t<1/6?p+6*(q-p)*t:t<.5?q:t<2/3?p+(q-p)*(2/3-t)*6:p},0===s?r=g=b=l:(q=l<.5?l*(1+s):l+s-l*s,p=2*l-q,r=hue2rgb(p,q,h+1/3),g=hue2rgb(p,q,h),b=hue2rgb(p,q,h-1/3)),{r:255*r,g:255*g,b:255*b}},convertToPercentage=function(n){return n<=1&&(n=100*n+"%"),n},correctAlpha=function(a){return a=parseFloat(a),a<0&&(a=0),(isNaN(a)||a>1)&&(a=1),a},bound01=function(n,max){var processPercent;return isOnePointZero(n)&&(n="100%"),processPercent=isPercentage(n),n=Math.min(max,Math.max(0,parseFloat(n))),processPercent&&(n=parseInt(n*max,10)/100),Math.abs(n-max)<1e-6?1:n%max/parseFloat(max)},isOnePointZero=function(n){return"string"==typeof n&&n.indexOf(".")!==-1&&1===parseFloat(n)},isPercentage=function(n){return"string"==typeof n&&n.indexOf("%")!==-1},pad2=function(char){return 1===char.length?"0"+char:""+char},matchers=function(){var css_integer,css_number,css_unit,permissive_match3,permissive_match4;return css_integer="[-\\+]?\\d+%?",css_number="[-\\+]?\\d*\\.\\d+%?",css_unit="(?:"+css_number+")|(?:"+css_integer+")",permissive_match3="[\\s|\\(]+("+css_unit+")[,|\\s]+("+css_unit+")[,|\\s]+("+css_unit+")\\s*\\)?",permissive_match4="[\\s|\\(]+("+css_unit+")[,|\\s]+("+css_unit+")[,|\\s]+("+css_unit+")[,|\\s]+("+css_unit+")\\s*\\)?",{rgb:new RegExp("rgb"+permissive_match3),rgba:new RegExp("rgba"+permissive_match4),hsl:new RegExp("hsl"+permissive_match3),hsla:new RegExp("hsla"+permissive_match4),hex3:/^([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})$/,hex6:/^([0-9a-fA-F]{2})([0-9a-fA-F]{2})([0-9a-fA-F]{2})$/}}(),isNumeric=function(value){return!isNaN(value)&&isFinite(value)},percentToFraction=function(percentage){return numberFromString(percentage)/100},stringToObject=function(color){
  var match,named,trimLeft,trimRight;if(trimLeft=/^[\s,#]+/,trimRight=/\s+$/,color=color.replace(trimLeft,"").replace(trimRight,"").toLowerCase(),named=!1,cssNames[color])color=cssNames[color],named=!0,{type:ColorType.NAME};else if("transparent"===color)return{r:0,g:0,b:0,a:0,type:ColorType.NAME};return match=void 0,(match=matchers.rgb.exec(color))?{r:match[1],g:match[2],b:match[3]}:(match=matchers.rgba.exec(color))?{r:match[1],g:match[2],b:match[3],a:match[4]}:(match=matchers.hsl.exec(color))?{h:match[1],s:percentToFraction(match[2]),l:percentToFraction(match[3])}:(match=matchers.hsla.exec(color))?{h:match[1],s:percentToFraction(match[2]),l:percentToFraction(match[3]),a:match[4]}:(match=matchers.hex6.exec(color)||(match=matchers.hex6.exec(cssNames[color])))?{r:parseInt(match[1],16),g:parseInt(match[2],16),b:parseInt(match[3],16),a:1,type:ColorType.HEX}:!!(match=matchers.hex3.exec(color)||(match=matchers.hex3.exec(cssNames[color])))&&{r:parseInt(match[1]+""+match[1],16),g:parseInt(match[2]+""+match[2],16),b:parseInt(match[3]+""+match[3],16),type:ColorType.HEX}},cssNames={aliceblue:"f0f8ff",antiquewhite:"faebd7",aqua:"0ff",aquamarine:"7fffd4",azure:"f0ffff",beige:"f5f5dc",bisque:"ffe4c4",black:"000",blanchedalmond:"ffebcd",blue:"00f",blueviolet:"8a2be2",brown:"a52a2a",burlywood:"deb887",burntsienna:"ea7e5d",cadetblue:"5f9ea0",chartreuse:"7fff00",chocolate:"d2691e",coral:"ff7f50",cornflowerblue:"6495ed",cornsilk:"fff8dc",crimson:"dc143c",cyan:"0ff",darkblue:"00008b",darkcyan:"008b8b",darkgoldenrod:"b8860b",darkgray:"a9a9a9",darkgreen:"006400",darkgrey:"a9a9a9",darkkhaki:"bdb76b",darkmagenta:"8b008b",darkolivegreen:"556b2f",darkorange:"ff8c00",darkorchid:"9932cc",darkred:"8b0000",darksalmon:"e9967a",darkseagreen:"8fbc8f",darkslateblue:"483d8b",darkslategray:"2f4f4f",darkslategrey:"2f4f4f",darkturquoise:"00ced1",darkviolet:"9400d3",deeppink:"ff1493",deepskyblue:"00bfff",dimgray:"696969",dimgrey:"696969",dodgerblue:"1e90ff",firebrick:"b22222",floralwhite:"fffaf0",forestgreen:"228b22",fuchsia:"f0f",gainsboro:"dcdcdc",ghostwhite:"f8f8ff",gold:"ffd700",goldenrod:"daa520",gray:"808080",green:"008000",greenyellow:"adff2f",grey:"808080",honeydew:"f0fff0",hotpink:"ff69b4",indianred:"cd5c5c",indigo:"4b0082",ivory:"fffff0",khaki:"f0e68c",lavender:"e6e6fa",lavenderblush:"fff0f5",lawngreen:"7cfc00",lemonchiffon:"fffacd",lightblue:"add8e6",lightcoral:"f08080",lightcyan:"e0ffff",lightgoldenrodyellow:"fafad2",lightgray:"d3d3d3",lightgreen:"90ee90",lightgrey:"d3d3d3",lightpink:"ffb6c1",lightsalmon:"ffa07a",lightseagreen:"20b2aa",lightskyblue:"87cefa",lightslategray:"789",lightslategrey:"789",lightsteelblue:"b0c4de",lightyellow:"ffffe0",lime:"0f0",limegreen:"32cd32",linen:"faf0e6",magenta:"f0f",maroon:"800000",mediumaquamarine:"66cdaa",mediumblue:"0000cd",mediumorchid:"ba55d3",mediumpurple:"9370db",mediumseagreen:"3cb371",mediumslateblue:"7b68ee",mediumspringgreen:"00fa9a",mediumturquoise:"48d1cc",mediumvioletred:"c71585",midnightblue:"191970",mintcream:"f5fffa",mistyrose:"ffe4e1",moccasin:"ffe4b5",navajowhite:"ffdead",navy:"000080",oldlace:"fdf5e6",olive:"808000",olivedrab:"6b8e23",orange:"ffa500",orangered:"ff4500",orchid:"da70d6",palegoldenrod:"eee8aa",palegreen:"98fb98",paleturquoise:"afeeee",palevioletred:"db7093",papayawhip:"ffefd5",peachpuff:"ffdab9",peru:"cd853f",pink:"ffc0cb",plum:"dda0dd",powderblue:"b0e0e6",purple:"800080",rebeccapurple:"663399",red:"f00",rosybrown:"bc8f8f",royalblue:"4169e1",saddlebrown:"8b4513",salmon:"fa8072",sandybrown:"f4a460",seagreen:"2e8b57",seashell:"fff5ee",sienna:"a0522d",silver:"c0c0c0",skyblue:"87ceeb",slateblue:"6a5acd",slategray:"708090",slategrey:"708090",snow:"fffafa",springgreen:"00ff7f",steelblue:"4682b4",tan:"d2b48c",teal:"008080",thistle:"d8bfd8",tomato:"ff6347",turquoise:"40e0d0",violet:"ee82ee",wheat:"f5deb3",white:"fff",whitesmoke:"f5f5f5",yellow:"ff0",yellowgreen:"9acd32"}},function(module,exports,__webpack_require__){var __WEBPACK_AMD_DEFINE_FACTORY__,__WEBPACK_AMD_DEFINE_RESULT__;(function(module){(function(){var L_to_Y,Y_to_L,conv,distanceFromPole,dotProduct,epsilon,fromLinear,getBounds,intersectLineLine,kappa,lengthOfRayUntilIntersect,m,m_inv,maxChromaForLH,maxSafeChromaForL,refU,refV,root,toLinear;m={R:[3.2409699419045213,-1.5373831775700935,-.4986107602930033],G:[-.9692436362808798,1.8759675015077206,.04155505740717561],B:[.05563007969699361,-.20397695888897657,1.0569715142428786]},m_inv={X:[.4123907992659595,.35758433938387796,.1804807884018343],Y:[.21263900587151036,.7151686787677559,.07219231536073371],Z:[.01933081871559185,.11919477979462599,.9505321522496606]},refU=.19783000664283681,refV=.468319994938791,kappa=903.2962962962963,epsilon=.008856451679035631,getBounds=function(L){var bottom,channel,j,k,len1,len2,m1,m2,m3,ref,ref1,ref2,ret,sub1,sub2,t,top1,top2;for(sub1=Math.pow(L+16,3)/1560896,sub2=sub1>epsilon?sub1:L/kappa,ret=[],ref=["R","G","B"],j=0,len1=ref.length;j<len1;j++)for(channel=ref[j],ref1=m[channel],m1=ref1[0],m2=ref1[1],m3=ref1[2],ref2=[0,1],k=0,len2=ref2.length;k<len2;k++)t=ref2[k],top1=(284517*m1-94839*m3)*sub2,top2=(838422*m3+769860*m2+731718*m1)*L*sub2-769860*t*L,bottom=(632260*m3-126452*m2)*sub2+126452*t,ret.push([top1/bottom,top2/bottom]);return ret},intersectLineLine=function(line1,line2){return(line1[1]-line2[1])/(line2[0]-line1[0])},distanceFromPole=function(point){return Math.sqrt(Math.pow(point[0],2)+Math.pow(point[1],2))},lengthOfRayUntilIntersect=function(theta,line){var b1,len,m1;return m1=line[0],b1=line[1],len=b1/(Math.sin(theta)-m1*Math.cos(theta)),len<0?null:len},maxSafeChromaForL=function(L){var b1,j,len1,lengths,m1,ref,ref1,x;for(lengths=[],ref=getBounds(L),j=0,len1=ref.length;j<len1;j++)ref1=ref[j],m1=ref1[0],b1=ref1[1],x=intersectLineLine([m1,b1],[-1/m1,0]),lengths.push(distanceFromPole([x,b1+x*m1]));return Math.min.apply(Math,lengths)},maxChromaForLH=function(L,H){var hrad,j,l,len1,lengths,line,ref;for(hrad=H/360*Math.PI*2,lengths=[],ref=getBounds(L),j=0,len1=ref.length;j<len1;j++)line=ref[j],l=lengthOfRayUntilIntersect(hrad,line),null!==l&&lengths.push(l);return Math.min.apply(Math,lengths)},dotProduct=function(a,b){var i,j,ref,ret;for(ret=0,i=j=0,ref=a.length-1;0<=ref?j<=ref:j>=ref;i=0<=ref?++j:--j)ret+=a[i]*b[i];return ret},fromLinear=function(c){return c<=.0031308?12.92*c:1.055*Math.pow(c,1/2.4)-.055},toLinear=function(c){var a;return a=.055,c>.04045?Math.pow((c+a)/(1+a),2.4):c/12.92},conv={xyz:{},luv:{},lch:{},husl:{},huslp:{},rgb:{},hex:{}},conv.xyz.rgb=function(tuple){var B,G,R;return R=fromLinear(dotProduct(m.R,tuple)),G=fromLinear(dotProduct(m.G,tuple)),B=fromLinear(dotProduct(m.B,tuple)),[R,G,B]},conv.rgb.xyz=function(tuple){var B,G,R,X,Y,Z,rgbl;return R=tuple[0],G=tuple[1],B=tuple[2],rgbl=[toLinear(R),toLinear(G),toLinear(B)],X=dotProduct(m_inv.X,rgbl),Y=dotProduct(m_inv.Y,rgbl),Z=dotProduct(m_inv.Z,rgbl),[X,Y,Z]},Y_to_L=function(Y){return Y<=epsilon?Y*kappa:116*Math.pow(Y,1/3)-16},L_to_Y=function(L){return L<=8?L/kappa:Math.pow((L+16)/116,3)},conv.xyz.luv=function(tuple){var L,U,V,X,Y,Z,varU,varV;return X=tuple[0],Y=tuple[1],Z=tuple[2],0===Y?[0,0,0]:(L=Y_to_L(Y),varU=4*X/(X+15*Y+3*Z),varV=9*Y/(X+15*Y+3*Z),U=13*L*(varU-refU),V=13*L*(varV-refV),[L,U,V])},conv.luv.xyz=function(tuple){var L,U,V,X,Y,Z,varU,varV;return L=tuple[0],U=tuple[1],V=tuple[2],0===L?[0,0,0]:(varU=U/(13*L)+refU,varV=V/(13*L)+refV,Y=L_to_Y(L),X=0-9*Y*varU/((varU-4)*varV-varU*varV),Z=(9*Y-15*varV*Y-varV*X)/(3*varV),[X,Y,Z])},conv.luv.lch=function(tuple){var C,H,Hrad,L,U,V;return L=tuple[0],U=tuple[1],V=tuple[2],C=Math.sqrt(Math.pow(U,2)+Math.pow(V,2)),C<1e-8?H=0:(Hrad=Math.atan2(V,U),H=360*Hrad/2/Math.PI,H<0&&(H=360+H)),[L,C,H]},conv.lch.luv=function(tuple){var C,H,Hrad,L,U,V;return L=tuple[0],C=tuple[1],H=tuple[2],Hrad=H/360*2*Math.PI,U=Math.cos(Hrad)*C,V=Math.sin(Hrad)*C,[L,U,V]},conv.husl.lch=function(tuple){var C,H,L,S,max;return H=tuple[0],S=tuple[1],L=tuple[2],L>99.9999999||L<1e-8?C=0:(max=maxChromaForLH(L,H),C=max/100*S),[L,C,H]},conv.lch.husl=function(tuple){var C,H,L,S,max;return L=tuple[0],C=tuple[1],H=tuple[2],L>99.9999999||L<1e-8?S=0:(max=maxChromaForLH(L,H),S=C/max*100),[H,S,L]},conv.huslp.lch=function(tuple){var C,H,L,S,max;return H=tuple[0],S=tuple[1],L=tuple[2],L>99.9999999||L<1e-8?C=0:(max=maxSafeChromaForL(L),C=max/100*S),[L,C,H]},conv.lch.huslp=function(tuple){var C,H,L,S,max;return L=tuple[0],C=tuple[1],H=tuple[2],L>99.9999999||L<1e-8?S=0:(max=maxSafeChromaForL(L),S=C/max*100),[H,S,L]},conv.rgb.hex=function(tuple){var ch,hex,j,len1;for(hex="#",j=0,len1=tuple.length;j<len1;j++){if(ch=tuple[j],ch=Math.round(1e6*ch)/1e6,ch<0||ch>1)throw new Error("Illegal rgb value: "+ch);ch=Math.round(255*ch).toString(16),1===ch.length&&(ch="0"+ch),hex+=ch}return hex},conv.hex.rgb=function(hex){var b,g,j,len1,n,r,ref,results;for("#"===hex.charAt(0)&&(hex=hex.substring(1,7)),r=hex.substring(0,2),g=hex.substring(2,4),b=hex.substring(4,6),ref=[r,g,b],results=[],j=0,len1=ref.length;j<len1;j++)n=ref[j],results.push(parseInt(n,16)/255);return results},conv.lch.rgb=function(tuple){return conv.xyz.rgb(conv.luv.xyz(conv.lch.luv(tuple)))},conv.rgb.lch=function(tuple){return conv.luv.lch(conv.xyz.luv(conv.rgb.xyz(tuple)))},conv.husl.rgb=function(tuple){return conv.lch.rgb(conv.husl.lch(tuple))},conv.rgb.husl=function(tuple){return conv.lch.husl(conv.rgb.lch(tuple))},conv.huslp.rgb=function(tuple){return conv.lch.rgb(conv.huslp.lch(tuple))},conv.rgb.huslp=function(tuple){return conv.lch.huslp(conv.rgb.lch(tuple))},root={},root.fromRGB=function(R,G,B){return conv.rgb.husl([R,G,B])},root.fromHex=function(hex){return conv.rgb.husl(conv.hex.rgb(hex))},root.toRGB=function(H,S,L){return conv.husl.rgb([H,S,L])},root.toHex=function(H,S,L){return conv.rgb.hex(conv.husl.rgb([H,S,L]))},root.p={},root.p.toRGB=function(H,S,L){return conv.xyz.rgb(conv.luv.xyz(conv.lch.luv(conv.huslp.lch([H,S,L]))))},root.p.toHex=function(H,S,L){return conv.rgb.hex(conv.xyz.rgb(conv.luv.xyz(conv.lch.luv(conv.huslp.lch([H,S,L])))))},root.p.fromRGB=function(R,G,B){return conv.lch.huslp(conv.luv.lch(conv.xyz.luv(conv.rgb.xyz([R,G,B]))))},root.p.fromHex=function(hex){return conv.lch.huslp(conv.luv.lch(conv.xyz.luv(conv.rgb.xyz(conv.hex.rgb(hex)))))},root._conv=conv,root._getBounds=getBounds,root._maxChromaForLH=maxChromaForLH,root._maxSafeChromaForL=maxSafeChromaForL,"undefined"!=typeof module&&null!==module||"undefined"!=typeof jQuery&&null!==jQuery||"undefined"!=typeof requirejs&&null!==requirejs||(this.HUSL=root),"undefined"!=typeof module&&null!==module&&(module.exports=root),"undefined"!=typeof jQuery&&null!==jQuery&&(jQuery.husl=root),"undefined"!=typeof requirejs&&null!==requirejs&&null!==__webpack_require__(13)&&(__WEBPACK_AMD_DEFINE_FACTORY__=root,__WEBPACK_AMD_DEFINE_RESULT__="function"==typeof __WEBPACK_AMD_DEFINE_FACTORY__?__WEBPACK_AMD_DEFINE_FACTORY__.call(exports,__webpack_require__,exports,module):__WEBPACK_AMD_DEFINE_FACTORY__,!(void 0!==__WEBPACK_AMD_DEFINE_RESULT__&&(module.exports=__WEBPACK_AMD_DEFINE_RESULT__)))}).call(this)}).call(exports,__webpack_require__(3)(module))},function(module,exports){module.exports=function(){throw new Error("define cannot be used indirect")}},function(module,exports,__webpack_require__){var BaseClass,Color,_,extend=function(child,parent){function ctor(){this.constructor=child}for(var key in parent)hasProp.call(parent,key)&&(child[key]=parent[key]);return ctor.prototype=parent.prototype,child.prototype=new ctor,child.__super__=parent.prototype,child},hasProp={}.hasOwnProperty;_=__webpack_require__(1)._,BaseClass=__webpack_require__(6).BaseClass,Color=__webpack_require__(11).Color,exports.Gradient=function(superClass){function Gradient(options){null==options&&(options={}),null==options.start&&(options.start="black"),null==options.end&&(options.end="white"),null==options.angle&&(options.angle=0),Gradient.__super__.constructor.call(this,options)}return extend(Gradient,superClass),Gradient.define("start",{get:function(){return this._start},set:function(value){return this._start=new Color(value)}}),Gradient.define("end",{get:function(){return this._end},set:function(value){return this._end=new Color(value)}}),Gradient.define("angle",{get:function(){return this._angle},set:function(value){if(_.isNumber(value))return this._angle=value}}),Gradient.prototype.toCSS=function(){return"linear-gradient("+this.angle+"deg, "+this.start+", "+this.end+")"},Gradient.prototype.mix=function(gradientB,fraction,model){return Gradient.mix(this,gradientB,fraction,model)},Gradient.prototype.isEqual=function(gradientB){return Gradient.equal(this,gradientB)},Gradient.prototype.toInspect=function(){return"<"+this.constructor.name+" start:"+this.start+" end:"+this.end+" angle:"+this.angle+">"},Gradient.mix=function(gradientA,gradientB,fraction,model){var angle,end,endAngle,start,startAngle;return null==fraction&&(fraction=.5),fraction=Utils.clamp(fraction,0,1),start=Color.mix(gradientA.start,gradientB.start,fraction,!1,model),end=Color.mix(gradientA.end,gradientB.end,fraction,!1,model),startAngle=gradientA.angle,endAngle=gradientB.angle,angle=startAngle+(endAngle-startAngle)*fraction,new Gradient({start:start,end:end,angle:angle})},Gradient.random=function(){var colorA,colorB,hue;return hue=360*Math.random(),colorA=new Color({h:hue}),colorB=new Color({h:hue+40}),new Gradient({start:colorA,end:colorB,angle:Math.round(360*Math.random())})},Gradient.isGradient=function(gradient){return!_.isEmpty(this._asPlainObject(gradient))},Gradient.isGradientObject=function(gradient){return gradient instanceof Gradient},Gradient.equal=function(gradientA,gradientB){var equalAngle,equalEnd,equalStart;return!!Gradient.isGradient(gradientA)&&(!!Gradient.isGradient(gradientB)&&(equalAngle=Math.abs(gradientA.angle-gradientB.angle)%360===0,equalStart=Color.equal(gradientA.start,gradientB.start),equalEnd=Color.equal(gradientA.end,gradientB.end),equalAngle&&equalStart&&equalEnd))},Gradient.multiplyAlpha=function(gradient,alpha){return this.isGradientObject(gradient)||(gradient=new Gradient(gradient)),new Gradient({start:gradient.start.multiplyAlpha(alpha),end:gradient.end.multiplyAlpha(alpha),angle:gradient.angle})},Gradient._asPlainObject=function(gradient){return _.pick(gradient,["start","end","angle"])},Gradient}(BaseClass)},function(module,exports,__webpack_require__){var Animation,BaseClass,Color,Config,Defaults,EventEmitter,Events,Gestures,Gradient,LayerDraggable,LayerPinchable,LayerPropertyProxy,LayerStates,LayerStyle,Matrix,NoCacheDateKey,Utils,_,asBorderRadius,asBorderWidth,delayedStyles,layerProperty,layerPropertyIgnore,layerPropertyPointTransformer,layerProxiedValue,layerValueTypeError,parentOrContext,proxiedShadowValue,indexOf=[].indexOf||function(item){for(var i=0,l=this.length;i<l;i++)if(i in this&&this[i]===item)return i;return-1},bind=function(fn,me){return function(){return fn.apply(me,arguments)}},extend=function(child,parent){function ctor(){this.constructor=child}for(var key in parent)hasProp.call(parent,key)&&(child[key]=parent[key]);return ctor.prototype=parent.prototype,child.prototype=new ctor,child.__super__=parent.prototype,child},hasProp={}.hasOwnProperty,slice=[].slice;_=__webpack_require__(1)._,Utils=__webpack_require__(4),Config=__webpack_require__(16).Config,Events=__webpack_require__(17).Events,Defaults=__webpack_require__(19).Defaults,BaseClass=__webpack_require__(6).BaseClass,EventEmitter=__webpack_require__(7).EventEmitter,Color=__webpack_require__(11).Color,Gradient=__webpack_require__(14).Gradient,Matrix=__webpack_require__(9).Matrix,Animation=__webpack_require__(20).Animation,LayerStyle=__webpack_require__(29).LayerStyle,LayerStates=__webpack_require__(30).LayerStates,LayerDraggable=__webpack_require__(33).LayerDraggable,LayerPinchable=__webpack_require__(40).LayerPinchable,Gestures=__webpack_require__(18).Gestures,LayerPropertyProxy=__webpack_require__(41).LayerPropertyProxy,NoCacheDateKey=Date.now(),delayedStyles=["webkitTransform","webkitFilter","webkitPerspectiveOrigin","webkitTransformOrigin","webkitBackdropFilter"],layerValueTypeError=function(name,value){throw new Error("Layer."+name+": value '"+value+"' of type '"+typeof value+"' is not valid")},layerProperty=function(obj,name,cssProperty,fallback,validator,transformer,options,set,targetElement,includeMainElement,useSubpropertyProxy){var result;return null==options&&(options={}),result={default:fallback,get:function(){var value;return this._properties.hasOwnProperty(name)&&(value=this._properties[name]),null==value&&(value=fallback),useSubpropertyProxy?layerProxiedValue(value,this,name):value},set:function(value){var elementContainer,mainElement,oldValue,style,subElement;if(transformer&&(value=transformer(value,this,name)),oldValue=this._properties[name],value!==oldValue&&(value&&validator&&!validator(value)&&layerValueTypeError(name,value),this._properties[name]=value,null!==cssProperty&&(elementContainer=this,indexOf.call(this._stylesAppliedToParent,cssProperty)>=0&&(elementContainer=this._parent,this._parent._properties[name]=fallback),!includeMainElement&&targetElement||(mainElement=elementContainer._element),null!=targetElement&&(subElement=elementContainer[targetElement]),name===cssProperty&&null==LayerStyle[cssProperty]?(null!=mainElement&&(mainElement.style[cssProperty]=this._properties[name]),null!=subElement&&(subElement.style[cssProperty]=this._properties[name])):(!this.__applyingDefaults||indexOf.call(delayedStyles,cssProperty)<0)&&(style=LayerStyle[cssProperty](this),null!=mainElement&&(mainElement.style[cssProperty]=style),null!=subElement&&(subElement.style[cssProperty]=style))),"function"==typeof set&&set(this,value),!this.__constructor))return this.emit("change:"+name,value,oldValue),"x"!==name&&"y"!==name||this.emit("change:point",value),"width"!==name&&"height"!==name||this.emit("change:size",value),"x"!==name&&"y"!==name&&"width"!==name&&"height"!==name||this.emit("change:frame",value),"rotationZ"===name?this.emit("change:rotation",value):void 0}},result=_.extend(result,options)},exports.layerProperty=layerProperty,layerProxiedValue=function(value,layer,property){return _.isObject(value)?new LayerPropertyProxy(value,function(proxiedValue,subProperty,subValue){return proxiedValue[subProperty]=subValue,layer[property]=proxiedValue}):value},exports.layerProxiedValue=layerProxiedValue,layerPropertyPointTransformer=function(value,layer,property){return _.isFunction(value)&&(value=value(layer,property)),value},layerPropertyIgnore=function(options,propertyName,properties){var j,len,p;if(!options.hasOwnProperty(propertyName))return options;for(j=0,len=properties.length;j<len;j++)if(p=properties[j],options.hasOwnProperty(p))return delete options[propertyName],options;return options},asBorderRadius=function(value){var isValidObject,j,key,len,ref,ref1,result;if(_.isNumber(value))return value;if(_.isString(value))return _.endsWith(value,"%")||console.error("Layer.borderRadius only correctly supports percentages in strings"),value;if(!_.isObject(value))return 0;for(result={},isValidObject=!1,ref=["topLeft","topRight","bottomRight","bottomLeft"],j=0,len=ref.length;j<len;j++)key=ref[j],isValidObject||(isValidObject=_.has(value,key)),result[key]=null!=(ref1=value[key])?ref1:0;return isValidObject?result:0},asBorderWidth=function(value){var isValidObject,j,key,len,ref,ref1,result;if(_.isNumber(value))return value;if(!_.isObject(value))return 0;for(result={},isValidObject=!1,ref=["left","right","bottom","top"],j=0,len=ref.length;j<len;j++)key=ref[j],isValidObject||(isValidObject=_.has(value,key)),result[key]=null!=(ref1=value[key])?ref1:0;return isValidObject?result:0},parentOrContext=function(layerOrContext){return null!=layerOrContext.parent?layerOrContext.parent:layerOrContext.context},proxiedShadowValue=function(layer,value,index){var v;return null==index&&(index=0),v=_.defaults(_.clone(value),Framer.Defaults.Shadow),null!==v.color&&null!=v&&(v.color=new Color(v.color)),layerProxiedValue(v,layer,"shadow"+(index+1))},exports.Layer=function(superClass){function Layer(options){var cssProperty,element,j,len,len1,m,p,ref;if(null==options&&(options={}),this.addListener=bind(this.addListener,this),this.once=bind(this.once,this),this.updateForSizeChange=bind(this.updateForSizeChange,this),this.updateForDevicePixelRatioChange=bind(this.updateForDevicePixelRatioChange,this),this.convertPointToLayer=bind(this.convertPointToLayer,this),this.convertPointToCanvas=bind(this.convertPointToCanvas,this),this.convertPointToScreen=bind(this.convertPointToScreen,this),this.layout=bind(this.layout,this),this._layoutY=bind(this._layoutY,this),this._layoutX=bind(this._layoutX,this),this.parentChanged=bind(this.parentChanged,this),this.__constructorCalled)throw Error("Layer.constructor "+this.toInspect()+" called twice");for(this.__constructorCalled=!0,this.__constructor=!0,this._properties={},this._style={},this._children=[],null==this._stylesAppliedToParent&&(this._stylesAppliedToParent=[]),this._prefer2d=!1,this._alwaysUseImageCache=!1,this._cancelClickEventInDragSession=!0,this._createElement(),options.createHTMLElement&&this._createHTMLElementIfNeeded(),this._createBorderElement(),layerPropertyIgnore(options,"point",["x","y"]),layerPropertyIgnore(options,"midPoint",["midX","midY"]),layerPropertyIgnore(options,"size",["width","height"]),layerPropertyIgnore(options,"frame",["x","y","width","height"]),!options.hasOwnProperty("parent")&&options.hasOwnProperty("superLayer")&&(options.parent=options.superLayer,delete options.superLayer),this.__applyingDefaults=!0,Layer.__super__.constructor.call(this,Defaults.getDefaults("Layer",options)),delete this.__applyingDefaults,j=0,len=delayedStyles.length;j<len;j++)cssProperty=delayedStyles[j],element=this._element,indexOf.call(this._stylesAppliedToParent,cssProperty)>=0&&(element=this._parent._element),element.style[cssProperty]=LayerStyle[cssProperty](this);for(this._context.addLayer(this),this._id=this._context.layerCounter,options.parent?this.parent=options.parent:options.shadow||this._insertElement(),options.hasOwnProperty("index")&&(this.index=options.index),ref=["x","y","width","height"],m=0,len1=ref.length;m<len1;m++)p=ref[m],options.hasOwnProperty(p)&&(this[p]=options[p]);this._context.emit("layer:create",this),this.label=this.label,delete this.__constructor,this.updateShadowStyle(),this.onChange("size",this.updateForSizeChange)}var fn,fn1,i,j,len,m,ref,shadowProp;for(extend(Layer,superClass),Layer.ExistingIdMessage=function(type,id){return"Can not set "+type+": There's already an element with id '"+id+"' in this document'"},Layer.define("context",{get:function(){return this._context}}),Layer.define("label",{get:function(){return this._label},set:function(value){if(value!==this._label)return this._label=value,Utils.labelLayer(this,this._label)}}),Layer.define("custom",Layer.simpleProperty("custom",void 0)),Layer.define("animationOptions",Layer.simpleProperty("animationOptions",{})),Layer.define("ignoreEvents",layerProperty(Layer,"ignoreEvents","pointerEvents",!0,_.isBoolean)),Layer.define("width",layerProperty(Layer,"width","width",100,_.isNumber,null,{},function(layer,value){if(null!=layer.constraintValues&&!layer.isLayouting)return layer.constraintValues.width=value,layer.constraintValues.aspectRatioLocked=!1,layer.constraintValues.widthFactor=null,layer._layoutX()})),Layer.define("height",layerProperty(Layer,"height","height",100,_.isNumber,null,{},function(layer,value){if(null!=layer.constraintValues&&!layer.isLayouting)return layer.constraintValues.height=value,layer.constraintValues.aspectRatioLocked=!1,layer.constraintValues.heightFactor=null,layer._layoutY()})),Layer.define("visible",layerProperty(Layer,"visible","display",!0,_.isBoolean)),Layer.define("opacity",layerProperty(Layer,"opacity","opacity",1,_.isNumber,parseFloat)),Layer.define("index",layerProperty(Layer,"index","zIndex",0,_.isNumber,null,{importable:!1,exportable:!1})),Layer.define("clip",layerProperty(Layer,"clip","overflow",!1,_.isBoolean,null,{},null,"_elementHTML",!0)),Layer.define("scrollHorizontal",layerProperty(Layer,"scrollHorizontal","overflowX",!1,_.isBoolean,null,{},function(layer,value){if(value===!0)return layer.ignoreEvents=!1})),Layer.define("scrollVertical",layerProperty(Layer,"scrollVertical","overflowY",!1,_.isBoolean,null,{},function(layer,value){if(value===!0)return layer.ignoreEvents=!1})),Layer.define("scroll",{get:function(){return this.scrollHorizontal===!0||this.scrollVertical===!0},set:function(value){return this.scrollHorizontal=this.scrollVertical=value}}),Layer.define("x",layerProperty(Layer,"x","webkitTransform",0,_.isNumber,layerPropertyPointTransformer,{depends:["width","height"]},function(layer){if(!layer.isLayouting)return layer.constraintValues=null})),Layer.define("y",layerProperty(Layer,"y","webkitTransform",0,_.isNumber,layerPropertyPointTransformer,{depends:["width","height"]},function(layer){if(!layer.isLayouting)return layer.constraintValues=null})),Layer.define("z",layerProperty(Layer,"z","webkitTransform",0,_.isNumber)),Layer.define("scaleX",layerProperty(Layer,"scaleX","webkitTransform",1,_.isNumber)),Layer.define("scaleY",layerProperty(Layer,"scaleY","webkitTransform",1,_.isNumber)),Layer.define("scaleZ",layerProperty(Layer,"scaleZ","webkitTransform",1,_.isNumber)),Layer.define("scale",layerProperty(Layer,"scale","webkitTransform",1,_.isNumber)),Layer.define("skewX",layerProperty(Layer,"skewX","webkitTransform",0,_.isNumber)),Layer.define("skewY",layerProperty(Layer,"skewY","webkitTransform",0,_.isNumber)),Layer.define("skew",layerProperty(Layer,"skew","webkitTransform",0,_.isNumber)),Layer.define("originX",layerProperty(Layer,"originX","webkitTransformOrigin",.5,_.isNumber)),Layer.define("originY",layerProperty(Layer,"originY","webkitTransformOrigin",.5,_.isNumber)),Layer.define("originZ",layerProperty(Layer,"originZ",null,0,_.isNumber)),Layer.define("perspective",layerProperty(Layer,"perspective","webkitPerspective",0,function(v){return null!==Utils.webkitPerspectiveForValue(v)})),Layer.define("perspectiveOriginX",layerProperty(Layer,"perspectiveOriginX","webkitPerspectiveOrigin",.5,_.isNumber)),Layer.define("perspectiveOriginY",layerProperty(Layer,"perspectiveOriginY","webkitPerspectiveOrigin",.5,_.isNumber)),Layer.define("rotationX",layerProperty(Layer,"rotationX","webkitTransform",0,_.isNumber)),Layer.define("rotationY",layerProperty(Layer,"rotationY","webkitTransform",0,_.isNumber)),Layer.define("rotationZ",layerProperty(Layer,"rotationZ","webkitTransform",0,_.isNumber)),Layer.define("rotation",{get:function(){return this.rotationZ},set:function(value){return this.rotationZ=value}}),Layer.define("blur",layerProperty(Layer,"blur","webkitFilter",0,_.isNumber)),Layer.define("brightness",layerProperty(Layer,"brightness","webkitFilter",100,_.isNumber)),Layer.define("saturate",layerProperty(Layer,"saturate","webkitFilter",100,_.isNumber)),Layer.define("hueRotate",layerProperty(Layer,"hueRotate","webkitFilter",0,_.isNumber)),Layer.define("contrast",layerProperty(Layer,"contrast","webkitFilter",100,_.isNumber)),Layer.define("invert",layerProperty(Layer,"invert","webkitFilter",0,_.isNumber)),Layer.define("grayscale",layerProperty(Layer,"grayscale","webkitFilter",0,_.isNumber)),Layer.define("sepia",layerProperty(Layer,"sepia","webkitFilter",0,_.isNumber)),Layer.define("blending",layerProperty(Layer,"blending","mixBlendMode",null,_.isString)),Layer.define("backgroundBlur",layerProperty(Layer,"backgroundBlur","webkitBackdropFilter",0,_.isNumber)),Layer.define("backgroundBrightness",layerProperty(Layer,"backgroundBrightness","webkitBackdropFilter",100,_.isNumber)),Layer.define("backgroundSaturate",layerProperty(Layer,"backgroundSaturate","webkitBackdropFilter",100,_.isNumber)),Layer.define("backgroundHueRotate",layerProperty(Layer,"backgroundHueRotate","webkitBackdropFilter",0,_.isNumber)),Layer.define("backgroundContrast",layerProperty(Layer,"backgroundContrast","webkitBackdropFilter",100,_.isNumber)),Layer.define("backgroundInvert",layerProperty(Layer,"backgroundInvert","webkitBackdropFilter",0,_.isNumber)),Layer.define("backgroundGrayscale",layerProperty(Layer,"backgroundGrayscale","webkitBackdropFilter",0,_.isNumber)),Layer.define("backgroundSepia",layerProperty(Layer,"backgroundSepia","webkitBackdropFilter",0,_.isNumber)),fn=function(i){return Layer.define("shadow"+(i+1),{exportable:!1,depends:["shadowX","shadowY","shadowBlur","shadowSpread","shadowColor","shadowType"],get:function(){var base;return null==this.shadows&&(this.shadows=[]),null==(base=this.shadows)[i]&&(base[i]=proxiedShadowValue(this,{},i)),this.shadows[i]},set:function(value){return null==this.shadows&&(this.shadows=[]),this.shadows[i]=proxiedShadowValue(this,value,i),this.updateShadowStyle()}})},i=j=0;j<=8;i=++j)fn(i);for(Layer.prototype.updateShadowsProperty=function(prop,value){var len,m,ref,shadow;for(null==this.shadows&&(this.shadows=[]),0===this.shadows.filter(function(s){return null!==s}).length&&(this.shadows[0]=proxiedShadowValue(this,Framer.Defaults.Shadow)),ref=this.shadows,m=0,len=ref.length;m<len;m++)shadow=ref[m],null!=shadow&&(shadow[prop]=value);return this.updateShadowStyle()},ref=["X","Y","Blur","Spread","Color","Type"],fn1=function(shadowProp){return Layer.define("shadow"+shadowProp,{get:function(){return null==this.shadows||0===this.shadows.length?null:this.shadows[0][shadowProp.toLowerCase()]},set:function(value){return this.updateShadowsProperty(shadowProp.toLowerCase(),value)}})},m=0,len=ref.length;m<len;m++)shadowProp=ref[m],fn1(shadowProp);return Layer.define("shadows",{default:null,get:function(){return this._getPropertyValue("shadows")},set:function(value){var index,len1,n,shadow,shadows;for(null==value&&(value=[]),shadows=[],index=n=0,len1=value.length;n<len1;index=++n)shadow=value[index],null===shadow?shadows.push(null):shadows.push(proxiedShadowValue(this,shadow,index));return this._setPropertyValue("shadows",shadows),this.updateShadowStyle()}}),Layer.prototype.updateShadowStyle=function(){if(!this.__constructor)return this._element.style.boxShadow=LayerStyle.boxShadow(this),this._element.style.textShadow=LayerStyle.textShadow(this),this._element.style.webkitFilter=LayerStyle.webkitFilter(this)},Layer.define("backgroundColor",layerProperty(Layer,"backgroundColor","backgroundColor",null,Color.validColorValue,Color.toColor)),Layer.define("color",layerProperty(Layer,"color","color",null,Color.validColorValue,Color.toColor,null,null,"_elementHTML",!0)),Layer.define("borderRadius",layerProperty(Layer,"borderRadius","borderRadius",0,null,asBorderRadius,null,null,"_elementBorder",!0,!0)),Layer.define("borderColor",layerProperty(Layer,"borderColor","borderColor",null,Color.validColorValue,Color.toColor,null,null,"_elementBorder")),Layer.define("borderWidth",layerProperty(Layer,"borderWidth","borderWidth",0,null,asBorderWidth,null,null,"_elementBorder",!1,!0)),Layer.define("borderStyle",layerProperty(Layer,"borderStyle","borderStyle","solid",_.isString,null,null,null,"_elementBorder")),Layer.define("force2d",layerProperty(Layer,"force2d","webkitTransform",!1,_.isBoolean)),Layer.define("flat",layerProperty(Layer,"flat","webkitTransformStyle",!1,_.isBoolean)),Layer.define("backfaceVisible",layerProperty(Layer,"backfaceVisible","webkitBackfaceVisibility",!0,_.isBoolean)),Layer.define("name",{default:"",get:function(){var name;return name=this._getPropertyValue("name"),null!=name?""+name:""},set:function(value){return this._setPropertyValue("name",value),this._element.setAttribute("name",value)}}),Layer.define("matrix",{get:function(){return this.force2d?this._matrix2d:(new Matrix).translate(this.x,this.y,this.z).scale(this.scale).scale(this.scaleX,this.scaleY,this.scaleZ).skew(this.skew).skewX(this.skewX).skewY(this.skewY).translate(0,0,this.originZ).rotate(this.rotationX,0,0).rotate(0,this.rotationY,0).rotate(0,0,this.rotationZ).translate(0,0,-this.originZ)}}),Layer.define("_matrix2d",{get:function(){return(new Matrix).translate(this.x,this.y).scale(this.scale).scale(this.scaleX,this.scaleY).skewX(this.skew).skewY(this.skew).rotate(0,0,this.rotationZ);
  }}),Layer.define("transformMatrix",{get:function(){return(new Matrix).translate(this.originX*this.width,this.originY*this.height).multiply(this.matrix).translate(-this.originX*this.width,-this.originY*this.height)}}),Layer.define("matrix3d",{get:function(){var parent,ppm;return parent=this.parent||this.context,ppm=Utils.perspectiveMatrix(parent),(new Matrix).multiply(ppm).multiply(this.transformMatrix)}}),Layer.define("cornerRadius",{importable:!1,exportable:!1,get:function(){return this.borderRadius},set:function(value){return this.borderRadius=value}}),Layer.prototype._setGeometryValues=function(input,keys){var k,len1,len2,n,o,results,results1;if(_.isNumber(input)){for(results=[],n=0,len1=keys.length;n<len1;n++)k=keys[n],this[k]!==input?results.push(this[k]=input):results.push(void 0);return results}if(input){for(results1=[],o=0,len2=keys.length;o<len2;o++)k=keys[o],_.isNumber(input[k])&&this[k]!==input[k]?results1.push(this[k]=input[k]):results1.push(void 0);return results1}},Layer.define("point",{importable:!0,exportable:!1,depends:["width","height","size","parent"],get:function(){return Utils.point(this)},set:function(input){return input=layerPropertyPointTransformer(input,this,"point"),this._setGeometryValues(input,["x","y"])}}),Layer.define("midPoint",{importable:!0,exportable:!1,depends:["width","height","size","parent","point"],get:function(){return{x:this.midX,y:this.midY}},set:function(input){return input=layerPropertyPointTransformer(input,this,"midPoint"),_.isNumber(input)||(input=_.pick(input,["x","y","midX","midY"]),null!=input.x&&null==input.midX&&(input.midX=input.x,delete input.x),null!=input.y&&null==input.midY&&(input.midY=input.y,delete input.y)),this._setGeometryValues(input,["midX","midY"])}}),Layer.define("size",{importable:!0,exportable:!1,get:function(){return Utils.size(this)},set:function(input){return this._setGeometryValues(input,["width","height"])}}),Layer.define("frame",{importable:!0,exportable:!1,get:function(){return Utils.frame(this)},set:function(input){return this._setGeometryValues(input,["x","y","width","height"])}}),Layer.define("minX",{importable:!0,exportable:!1,get:function(){return this.x},set:function(value){return this.x=value}}),Layer.define("midX",{importable:!0,exportable:!1,get:function(){return Utils.frameGetMidX(this)},set:function(value){return Utils.frameSetMidX(this,value)}}),Layer.define("maxX",{importable:!0,exportable:!1,get:function(){return Utils.frameGetMaxX(this)},set:function(value){return Utils.frameSetMaxX(this,value)}}),Layer.define("minY",{importable:!0,exportable:!1,get:function(){return this.y},set:function(value){return this.y=value}}),Layer.define("midY",{importable:!0,exportable:!1,get:function(){return Utils.frameGetMidY(this)},set:function(value){return Utils.frameSetMidY(this,value)}}),Layer.define("maxY",{importable:!0,exportable:!1,get:function(){return Utils.frameGetMaxY(this)},set:function(value){return Utils.frameSetMaxY(this,value)}}),Layer.define("constraintValues",{importable:!0,exportable:!1,default:null,get:function(){return this._getPropertyValue("constraintValues")},set:function(value){var newValue,ref1,ref2,ref3,ref4;return null===value?(newValue=null,this.off("change:parent",this.parentChanged),Screen.off("resize",this.layout)):(newValue=_.defaults(_.clone(value),{left:0,right:null,top:0,bottom:null,centerAnchorX:0,centerAnchorY:0,widthFactor:null,heightFactor:null,aspectRatioLocked:!1,width:this.width,height:this.height}),null!=this.parent?(ref1=this.layout,indexOf.call(this.parent.listeners("change:width"),ref1)>=0||this.parent.on("change:width",this.layout),ref2=this.layout,indexOf.call(this.parent.listeners("change:height"),ref2)>=0||this.parent.on("change:height",this.layout)):(ref3=this.layout,indexOf.call(Screen.listeners("resize"),ref3)>=0||Screen.on("resize",this.layout)),ref4=this.parentChanged,indexOf.call(this.listeners("change:parent"),ref4)>=0||this.on("change:parent",this.parentChanged)),this._setPropertyValue("constraintValues",newValue)}}),Layer.define("htmlIntrinsicSize",{importable:!0,exportable:!0,default:null,get:function(){return this._getPropertyValue("htmlIntrinsicSize")},set:function(value){if(null===value)return this._setPropertyValue("htmlIntrinsicSize",value);if(_.isFinite(value.width)&&_.isFinite(value.height))return this._setPropertyValue("htmlIntrinsicSize",{width:value.width,height:value.height})}}),Layer.prototype.parentChanged=function(newParent,oldParent){return null!=oldParent?(oldParent.off("change:width",this.layout),oldParent.off("change:height",this.layout)):Screen.off("resize",this.layout),this.constraintValues=null},Layer.prototype.setParentPreservingConstraintValues=function(parent){var tmp;return tmp=this.constraintValues,this.parent=parent,this.constraintValues=tmp,this.layout()},Layer.prototype._layoutX=function(){var parentFrame,ref1,ref2;if(null!=this.constraintValues&&(null!=this.parent||this.context.autoLayout))return parentFrame=null!=(ref1=null!=(ref2=this.parent)?ref2.frame:void 0)?ref1:this.context.innerFrame,this.isLayouting=!0,this.x=Utils.calculateLayoutX(parentFrame,this.constraintValues,this.width),this.isLayouting=!1},Layer.prototype._layoutY=function(){var parentFrame,ref1,ref2;if(null!=this.constraintValues&&(null!=this.parent||this.context.autoLayout))return parentFrame=null!=(ref1=null!=(ref2=this.parent)?ref2.frame:void 0)?ref1:this.context.innerFrame,this.isLayouting=!0,this.y=Utils.calculateLayoutY(parentFrame,this.constraintValues,this.height),this.isLayouting=!1},Layer.prototype.layout=function(){var parentFrame,ref1,ref2;if(null!=this.constraintValues&&(null!=this.parent||this.context.autoLayout))return parentFrame=null!=(ref1=null!=(ref2=this.parent)?ref2.frame:void 0)?ref1:this.context.innerFrame,this.isLayouting=!0,this.frame=Utils.calculateLayoutFrame(parentFrame,this),this.isLayouting=!1},Layer.prototype.convertPointToScreen=function(point){return Utils.convertPointToContext(point,this,!1)},Layer.prototype.convertPointToCanvas=function(point){return Utils.convertPointToContext(point,this,!0)},Layer.prototype.convertPointToLayer=function(point,layer,rootContext){return null==rootContext&&(rootContext=!0),Utils.convertPoint(point,this,layer,rootContext)},Layer.define("canvasFrame",{importable:!0,exportable:!1,get:function(){return Utils.boundingFrame(this)},set:function(frame){return this.frame=Utils.convertFrameFromContext(frame,this,!0,!1)}}),Layer.define("screenFrame",{importable:!0,exportable:!1,get:function(){return Utils.boundingFrame(this,!1)},set:function(frame){return this.frame=Utils.convertFrameFromContext(frame,this,!1,!1)}}),Layer.prototype.contentFrame=function(){return this._children.length?Utils.frameMerge(_.map(this._children,"frame")):{x:0,y:0,width:0,height:0}},Layer.prototype.totalFrame=function(){return Utils.frameMerge(this.frame,this.contentFrame())},Layer.prototype.centerFrame=function(){var frame;return this.parent?(frame=this.frame,Utils.frameSetMidX(frame,parseInt(this.parent.width/2-this.parent.borderWidth)),Utils.frameSetMidY(frame,parseInt(this.parent.height/2-this.parent.borderWidth)),frame):(frame=this.frame,Utils.frameSetMidX(frame,parseInt(this._context.innerWidth/2)),Utils.frameSetMidY(frame,parseInt(this._context.innerHeight/2)),frame)},Layer.prototype.center=function(){return null!=this.constraintValues?(this.constraintValues.left=null,this.constraintValues.right=null,this.constraintValues.top=null,this.constraintValues.bottom=null,this.constraintValues.centerAnchorX=.5,this.constraintValues.centerAnchorY=.5,this._layoutX(),this._layoutY()):this.frame=this.centerFrame(),this},Layer.prototype.centerX=function(offset){return null==offset&&(offset=0),null!=this.constraintValues?(this.constraintValues.left=null,this.constraintValues.right=null,this.constraintValues.centerAnchorX=.5,this._layoutX()):this.x=this.centerFrame().x+offset,this},Layer.prototype.centerY=function(offset){return null==offset&&(offset=0),null!=this.constraintValues?(this.constraintValues.top=null,this.constraintValues.bottom=null,this.constraintValues.centerAnchorY=.5,this._layoutY()):this.y=this.centerFrame().y+offset,this},Layer.prototype.pixelAlign=function(){return this.x=parseInt(this.x),this.y=parseInt(this.y)},Layer.prototype.updateForDevicePixelRatioChange=function(){var cssProperty,len1,n,ref1,results;for(ref1=["width","height","webkitTransform","boxShadow","textShadow","webkitFilter","borderRadius","borderWidth","fontSize","letterSpacing","wordSpacing","textIndent"],results=[],n=0,len1=ref1.length;n<len1;n++)cssProperty=ref1[n],results.push(this._element.style[cssProperty]=LayerStyle[cssProperty](this));return results},Layer.prototype.updateForSizeChange=function(){return this._elementBorder.style.borderWidth=LayerStyle.borderWidth(this)},Layer.prototype.canvasScaleX=function(self){var len1,n,parent,ref1,scale;for(null==self&&(self=!0),scale=1,self&&(scale=this.scale*this.scaleX),ref1=this.containers(!0),n=0,len1=ref1.length;n<len1;n++)parent=ref1[n],scale*=parent.scale,null!=parent.scaleX&&(scale*=parent.scaleX);return scale},Layer.prototype.canvasScaleY=function(self){var len1,n,parent,ref1,scale;for(null==self&&(self=!0),scale=1,self&&(scale=this.scale*this.scaleY),ref1=this.containers(!0),n=0,len1=ref1.length;n<len1;n++)parent=ref1[n],scale*=parent.scale,null!=parent.scaleY&&(scale*=parent.scaleY);return scale},Layer.prototype.screenScaleX=function(self){var len1,n,parent,ref1,scale;for(null==self&&(self=!0),scale=1,self&&(scale=this.scale*this.scaleX),ref1=this.containers(!1),n=0,len1=ref1.length;n<len1;n++)parent=ref1[n],scale*=parent.scale*parent.scaleX;return scale},Layer.prototype.screenScaleY=function(self){var len1,n,parent,ref1,scale;for(null==self&&(self=!0),scale=1,self&&(scale=this.scale*this.scaleY),ref1=this.containers(!1),n=0,len1=ref1.length;n<len1;n++)parent=ref1[n],scale*=parent.scale*parent.scaleY;return scale},Layer.prototype.screenScaledFrame=function(){var factorX,factorY,frame,layerScaledFrame,layers,len1,n,p,parent,ref1,ref2,ref3;for(frame={x:0,y:0,width:this.width*this.screenScaleX(),height:this.height*this.screenScaleY()},layers=this.containers(!0),layers.push(this),layers.reverse(),n=0,len1=layers.length;n<len1;n++)parent=layers[n],p=parentOrContext(parent),factorX=null!=(ref1=null!=p&&"function"==typeof p.screenScaleX?p.screenScaleX():void 0)?ref1:1,factorY=null!=(ref2=null!=p&&"function"==typeof p.screenScaleY?p.screenScaleY():void 0)?ref2:1,layerScaledFrame=null!=(ref3="function"==typeof parent.scaledFrame?parent.scaledFrame():void 0)?ref3:{x:0,y:0},frame.x+=layerScaledFrame.x*factorX,frame.y+=layerScaledFrame.y*factorY;return frame},Layer.prototype.scaledFrame=function(){var frame,scaleX,scaleY;return frame=this.frame,scaleX=this.scale*this.scaleX,scaleY=this.scale*this.scaleY,frame.width*=scaleX,frame.height*=scaleY,frame.x+=(1-scaleX)*this.originX*this.width,frame.y+=(1-scaleY)*this.originY*this.height,frame},Layer.define("style",{importable:!0,exportable:!1,get:function(){return this._element.style},set:function(value){return _.extend(this._element.style,value),this.emit("change:style")}}),Layer.prototype.computedStyle=function(){var getComputedStyle;return getComputedStyle=document.defaultView.getComputedStyle,null==getComputedStyle&&(getComputedStyle=window.getComputedStyle),getComputedStyle(this._element)},Layer.define("classList",{importable:!0,exportable:!1,get:function(){return this._element.classList}}),Layer.prototype._createElement=function(){if(null==this._element)return this._element=document.createElement("div"),this._element.classList.add("framerLayer")},Layer.prototype._createBorderElement=function(){if(null==this._elementBorder)return this._elementBorder=document.createElement("div"),this._elementBorder.style.position="absolute",this._elementBorder.style.top="0",this._elementBorder.style.bottom="0",this._elementBorder.style.left="0",this._elementBorder.style.right="0",this._elementBorder.style.boxSizing="border-box",this._elementBorder.style.zIndex="1000",this._elementBorder.style.pointerEvents="none",this._element.appendChild(this._elementBorder)},Layer.prototype._insertElement=function(){return this.bringToFront(),this._context.element.appendChild(this._element)},Layer.prototype.elementInsertedIntoDocument=function(){},Layer.prototype._createHTMLElementIfNeeded=function(){if(!this._elementHTML)return this._elementHTML=document.createElement("div"),this._element.insertBefore(this._elementHTML,this._elementBorder)},Layer.define("html",{get:function(){var ref1;return(null!=(ref1=this._elementHTML)?ref1.innerHTML:void 0)||""},set:function(value){var existingElement,id,ids,len1,n;for(this._createHTMLElementIfNeeded(),ids=Utils.getIdAttributesFromString(value),n=0,len1=ids.length;n<len1;n++)if(id=ids[n],existingElement=document.querySelector("[id='"+id+"']"),null!=existingElement)return void Utils.throwInStudioOrWarnInProduction(Layer.ExistingIdMessage("html",id));return this._elementHTML.innerHTML=value,this._updateHTMLScale(),this.emit("change:html")}}),Layer.prototype._updateHTMLScale=function(){if(null!=this._elementHTML)return null==this.htmlIntrinsicSize?this._elementHTML.style.zoom=this.context.scale:(this._elementHTML.style.transformOrigin="0 0",this._elementHTML.style.transform="scale("+this.context.scale*this.width/this.htmlIntrinsicSize.width+", "+this.context.scale*this.height/this.htmlIntrinsicSize.height+")",this._elementHTML.style.width=this.htmlIntrinsicSize.width+"px",this._elementHTML.style.height=this.htmlIntrinsicSize.height+"px")},Layer.prototype.querySelector=function(query){return this._element.querySelector(query)},Layer.prototype.querySelectorAll=function(query){return this._element.querySelectorAll(query)},Layer.prototype.selectChild=function(selector){return Utils.findLayer(this.descendants,selector)},Layer.prototype.selectAllChildren=function(selector){return Utils.filterLayers(this.descendants,selector)},Layer.select=function(selector){return Framer.CurrentContext.selectLayer(selector)},Layer.selectAll=function(selector){return Framer.CurrentContext.selectAllLayers(selector)},Layer.prototype.destroy=function(){var ref1;return this.parent&&(this.parent._children=_.without(this.parent._children,this)),null!=(ref1=this._element.parentNode)&&ref1.removeChild(this._element),this.removeAllListeners(),this._context.removeLayer(this),this._context.emit("layer:destroy",this),this._context.domEventManager.remove(this._element)},Layer.prototype.copy=function(){var child,copiedChild,layer,len1,n,ref1;for(layer=this.copySingle(),ref1=this._children,n=0,len1=ref1.length;n<len1;n++)child=ref1[n],copiedChild=child.copy(),null!==copiedChild&&(copiedChild.parent=layer);return layer},Layer.prototype.copySingle=function(){var copy;return copy=new this.constructor(this.props),copy.style=this.style,copy},Layer.prototype._cleanupImageLoader=function(){var ref1;return null!=(ref1=this._imageEventManager)&&ref1.removeAllListeners(),this._imageEventManager=null,this._imageLoader=null},Layer.define("image",{default:"",get:function(){return this._getPropertyValue("image")},set:function(value){var currentValue,defaults,imageUrl,isBackgroundColorDefault,ref1;return currentValue=this._getPropertyValue("image"),defaults=Defaults.getDefaults("Layer",{}),isBackgroundColorDefault=null!=(ref1=this.backgroundColor)?ref1.isEqual(defaults.backgroundColor):void 0,Gradient.isGradientObject(value)?(this.emit("change:gradient",value,currentValue),this.emit("change:image",value,currentValue),this._setPropertyValue("image",value),this.style["background-image"]=value.toCSS(),void(isBackgroundColorDefault&&(this.backgroundColor=null))):(_.isString(value)||null===value||layerValueTypeError("image",value),currentValue===value?this.emit("load"):(isBackgroundColorDefault&&(this.backgroundColor=null),this._setPropertyValue("image",value),null===value||""===value?(null!=this._imageLoader&&(this._imageEventManager.removeAllListeners(),this._imageLoader.src=null),this.style["background-image"]=null,void(null!=this._imageLoader&&(this.emit(Events.ImageLoadCancelled,this._imageLoader),this._cleanupImageLoader()))):!_.endsWith("function"==typeof value.toLowerCase?value.toLowerCase():void 0,".pdf")||Utils.isWebKit()&&!Utils.isChrome()?(imageUrl=value,this._alwaysUseImageCache===!1&&Utils.isLocalAssetUrl(imageUrl)&&(imageUrl+=/\?/.test(imageUrl)?"&":"?",imageUrl+="nocache="+NoCacheDateKey),this.listeners(Events.ImageLoaded,!0)||this.listeners(Events.ImageLoadError,!0)||this.listeners(Events.ImageLoadCancelled,!0)?(this._imageLoader=new Image,this._imageLoader.name=imageUrl,this._imageLoader.src=imageUrl,this._imageEventManager=this._context.domEventManager.wrap(this._imageLoader),this._imageEventManager.addEventListener("load",function(_this){return function(){return _this.style["background-image"]="url('"+imageUrl+"')",_this.emit(Events.ImageLoaded,_this._imageLoader),_this._cleanupImageLoader()}}(this)),this._imageEventManager.addEventListener("error",function(_this){return function(){return _this.emit(Events.ImageLoadError,_this._imageLoader),_this._cleanupImageLoader()}}(this))):this.style["background-image"]="url('"+imageUrl+"')"):void(this.style["background-image"]="url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADAAAAAwCAYAAABXAvmHAAAAAXNSR0IArs4c6QAAAVlJREFUaAXtlwEOwiAMRdF4Cr3/0fQaSre9ZFSYLCrQpSSG/FLW9v92agghXJdP3KZlCp/J2up+WiUuzMt6zNukzPDYvALCsKme1/maV8BnQHqw9/IZ6KmAz0BP9ontMwATPXafgR6s65g+A5qRlrhmBu6FhG6LXf9/+JU/YclROkVWEs/8r9FLrChb2apSqVqWZgKmtRKz9/f+CdPxoVl8CAWylcWKUQZGwfhjB3OOHcw5djDn2MH6fBNLC42yaEnyoTXB2V36+lPlz+zN9x6HKfxrZwZ/HUbf5/lJviMpoBPWBWWxFJCtLNqplItIWuvPffx5Dphz7GB9vonNv4X2zICWuMTM3p7Gv/b5iVLmFaiZgb3M/Ns/Ud68AvIGkJ6ir8xh8wrQrzAve9Jjo2PzCsC8z4Aw0WP5DPRgXcf07wHNSEvsM9CS7VIsn4ESMy3sPgMtWN6K8QKfubDo2UqVogAAAABJRU5ErkJggg==')")))}}),Layer.define("gradient",{get:function(){return Gradient.isGradientObject(this.image)?layerProxiedValue(this.image,this,"gradient"):null},set:function(value){return Gradient.isGradient(value)?this.image=new Gradient(value):!value&&Gradient.isGradientObject(this.image)?this.image=null:void 0}}),Layer.define("parent",{enumerable:!1,exportable:!1,importable:!0,get:function(){return this._parent||null},set:function(layer){var oldParent;if(layer!==this._parent){if(layer===this)throw Error("Layer.parent: a layer cannot be it's own parent.");if(!layer instanceof Layer)throw Error("Layer.parent needs to be a Layer object");return Utils.domCompleteCancel(this.__insertElement),this._parent&&(this._parent._children=_.pull(this._parent._children,this),this._parent._element.removeChild(this._element),this._parent.emit("change:children",{added:[],removed:[this]}),this._parent.emit("change:subLayers",{added:[],removed:[this]})),layer?(layer._element.appendChild(this._element),layer._children.push(this),layer.emit("change:children",{added:[this],removed:[]}),layer.emit("change:subLayers",{added:[this],removed:[]})):this._insertElement(),oldParent=this._parent,this._parent=layer,this.bringToFront(),this.emit("change:parent",this._parent,oldParent),this.emit("change:superLayer",this._parent,oldParent)}}}),Layer.define("children",{enumerable:!1,exportable:!1,importable:!1,get:function(){return this._children.map(function(c){return c instanceof SVGLayer&&1===c.children.length&&_.startsWith(c.name,".")?c.children[0]:c})}}),Layer.define("siblings",{enumerable:!1,exportable:!1,importable:!1,get:function(){return null===this.parent?_.filter(this._context.layers,function(_this){return function(layer){return layer!==_this&&null===layer.parent}}(this)):_.without(this.parent.children,this)}}),Layer.define("descendants",{enumerable:!1,exportable:!1,importable:!1,get:function(){var f,result;return result=[],f=function(layer){return result.push(layer),layer.children.map(f)},this.children.map(f),result}}),Layer.prototype.addChild=function(layer){return layer.parent=this},Layer.prototype.removeChild=function(layer){if(!(indexOf.call(this._children,layer)<0))return layer.parent=null},Layer.prototype.childrenWithName=function(name){return _.filter(this.children,function(layer){return layer.name===name})},Layer.prototype.siblingsWithName=function(name){return _.filter(this.siblingLayers,function(layer){return layer.name===name})},Layer.prototype.containers=function(toRoot,result){return null==toRoot&&(toRoot=!1),null==result&&(result=[]),null!=this.parent?(result.push(this.parent),this.parent.containers(toRoot,result)):toRoot?(result.push(this.context),this.context.containers(!0,result)):result},Layer.prototype.ancestors=function(){return this.containers()},Layer.prototype.root=function(){return null===this.parent?this:_.last(this.ancestors())},Layer.prototype.childrenAbove=function(point,originX,originY){return null==originX&&(originX=0),null==originY&&(originY=0),_.filter(this.children,function(layer){return Utils.framePointForOrigin(layer.frame,originX,originY).y<point.y})},Layer.prototype.childrenBelow=function(point,originX,originY){return null==originX&&(originX=0),null==originY&&(originY=0),_.filter(this.children,function(layer){return Utils.framePointForOrigin(layer.frame,originX,originY).y>point.y})},Layer.prototype.childrenLeft=function(point,originX,originY){return null==originX&&(originX=0),null==originY&&(originY=0),_.filter(this.children,function(layer){return Utils.framePointForOrigin(layer.frame,originX,originY).x<point.x})},Layer.prototype.childrenRight=function(point,originX,originY){return null==originX&&(originX=0),null==originY&&(originY=0),_.filter(this.children,function(layer){return Utils.framePointForOrigin(layer.frame,originX,originY).x>point.x})},Layer.prototype._parentOrContext=function(){return this.parent?this.parent:this._context._parent?this._context._parent:void 0},Layer.define("superLayer",{enumerable:!1,exportable:!1,importable:!1,get:function(){return this.parent},set:function(value){return this.parent=value}}),Layer.define("subLayers",{enumerable:!1,exportable:!1,importable:!1,get:function(){return this.children}}),Layer.define("siblingLayers",{enumerable:!1,exportable:!1,importable:!1,get:function(){return this.siblings}}),Layer.prototype.addSubLayer=function(layer){return this.addChild(layer)},Layer.prototype.removeSubLayer=function(layer){return this.removeChild(layer)},Layer.prototype.subLayersByName=function(name){return this.childrenWithName(name)},Layer.prototype.siblingLayersByName=function(name){return this.siblingsWithName(name)},Layer.prototype.subLayersAbove=function(point,originX,originY){return null==originX&&(originX=0),null==originY&&(originY=0),this.childrenAbove(point,originX,originY)},Layer.prototype.subLayersBelow=function(point,originX,originY){return null==originX&&(originX=0),null==originY&&(originY=0),this.childrenBelow(point,originX,originY)},Layer.prototype.subLayersLeft=function(point,originX,originY){return null==originX&&(originX=0),null==originY&&(originY=0),this.childrenLeft(point,originX,originY)},Layer.prototype.subLayersRight=function(point,originX,originY){return null==originX&&(originX=0),null==originY&&(originY=0),this.childrenRight(point,originX,originY)},Layer.prototype.animate=function(properties,options){var animation,stateName;return null==options&&(options={}),_.isString(properties)?(stateName=properties,null!=options.options&&(options=options.options),this.states.machine.switchTo(stateName,options)):(properties=_.clone(properties),null!=properties.properties&&(options=properties,properties=options.properties,delete options.properties),null!=properties.options&&(options=_.defaults({},options,properties.options),delete properties.options),options=_.defaults({},options,this.animationOptions),null==options.start&&(options.start=!0),animation=new Animation(this,properties,options),options.start&&animation.start(),animation)},Layer.prototype.stateCycle=function(){var args,options,states;return args=1<=arguments.length?slice.call(arguments,0):[],states=_.flatten(args),_.isObject(_.last(states))&&(options=states.pop()),this.animate(this.states.machine.next(states),options)},Layer.prototype.stateSwitch=function(stateName,options){if(null==options&&(options={}),null==stateName)throw new Error("Missing required argument 'stateName' in stateSwitch()");return options.animate===!0?this.animate(stateName,options):this.animate(stateName,_.defaults({},options,{instant:!0}))},Layer.prototype.animations=function(includePending){return null==includePending&&(includePending=!1),_.filter(this._context.animations,function(_this){return function(animation){return animation.layer===_this&&(includePending||!animation.isPending)}}(this))},Layer.prototype.animatingProperties=function(){var animation,len1,len2,n,o,properties,propertyName,ref1,ref2;for(properties={},ref1=this.animations(),n=0,len1=ref1.length;n<len1;n++)for(animation=ref1[n],ref2=animation.animatingProperties(),o=0,len2=ref2.length;o<len2;o++)propertyName=ref2[o],properties[propertyName]=animation;return properties},Layer.define("isAnimating",{enumerable:!1,exportable:!1,get:function(){return 0!==this.animations().length}}),Layer.prototype.animateStop=function(){var ref1;return _.invokeMap(this.animations(),"stop"),null!=(ref1=this._draggable)?ref1.animateStop():void 0},Layer.prototype.bringToFront=function(){var layer,len1,maxIndex,n,ref1,ref2,siblings;if(maxIndex=null,siblings=null!=(ref1=null!=(ref2=this.parent)?ref2._children:void 0)?ref1:this.context._layers,!(siblings.count<=1)){for(n=0,len1=siblings.length;n<len1;n++)layer=siblings[n],layer!==this&&(null==maxIndex&&(maxIndex=layer.index),layer.index>maxIndex&&(maxIndex=layer.index));return null!=maxIndex?this.index=maxIndex+1:void 0}},Layer.prototype.sendToBack=function(){var layer,len1,minIndex,n,ref1,ref2,siblings;if(minIndex=null,siblings=null!=(ref1=null!=(ref2=this.parent)?ref2._children:void 0)?ref1:this.context._layers,!(siblings.count<=1)){for(n=0,len1=siblings.length;n<len1;n++)layer=siblings[n],layer!==this&&(null==minIndex&&(minIndex=layer.index),layer.index<minIndex&&(minIndex=layer.index));return null!=minIndex?this.index=minIndex-1:void 0}},Layer.prototype.placeBefore=function(layer){var l,len1,n,ref1;if(!(indexOf.call(this.siblingLayers,layer)<0)){for(ref1=this.siblingLayers,n=0,len1=ref1.length;n<len1;n++)l=ref1[n],l.index<=layer.index&&(l.index-=1);return this.index=layer.index+1}},Layer.prototype.placeBehind=function(layer){var l,len1,n,ref1;if(!(indexOf.call(this.siblingLayers,layer)<0)){for(ref1=this.siblingLayers,n=0,len1=ref1.length;n<len1;n++)l=ref1[n],l.index>=layer.index&&(l.index+=1);return this.index=layer.index-1}},Layer.define("states",{enumerable:!1,exportable:!1,importable:!1,get:function(){return null==this._states&&(this._states=new LayerStates(this)),this._states},set:function(states){return this.states.machine.reset(),_.extend(this.states,states)}}),Layer.define("stateNames",{enumerable:!1,exportable:!1,importable:!1,get:function(){return this.states.machine.stateNames}}),Layer.define("draggable",{importable:!1,exportable:!1,get:function(){return null!=this._draggable?this._draggable:this._draggable=new LayerDraggable(this)},set:function(value){if(_.isBoolean(value))return this.draggable.enabled=value}}),Layer.define("pinchable",{importable:!1,exportable:!1,get:function(){return null!=this._pinchable?this._pinchable:this._pinchable=new LayerPinchable(this)},set:function(value){if(_.isBoolean(value))return this.pinchable.enabled=value}}),Layer.define("scrollFrame",{importable:!1,get:function(){var frame;return frame={x:this.scrollX,y:this.scrollY,width:this.width,height:this.height}},set:function(frame){return this.scrollX=frame.x,this.scrollY=frame.y}}),Layer.define("scrollX",{get:function(){return this._element.scrollLeft},set:function(value){return _.isNumber(value)||layerValueTypeError("scrollX",value),this._element.scrollLeft=value}}),Layer.define("scrollY",{get:function(){return this._element.scrollTop},set:function(value){return _.isNumber(value)||layerValueTypeError("scrollY",value),this._element.scrollTop=value}}),Layer.define("_domEventManager",{get:function(){return this._context.domEventManager.wrap(this._element)}}),Layer.prototype.emit=function(){var args,event,eventName,len1,n,point,ref1,ref2,ref3,touch;if(eventName=arguments[0],args=2<=arguments.length?slice.call(arguments,1):[],!this._cancelClickEventInDragSession||this._draggable||eventName!==Events.Click&&eventName!==Events.Tap&&eventName!==Events.TapStart&&eventName!==Events.TapEnd&&eventName!==Events.LongPress&&eventName!==Events.LongPressStart&&eventName!==Events.LongPressEnd||LayerDraggable._globalDidDrag!==!0){if((null!=(null!=(ref1=args[0])?ref1.clientX:void 0)||null!=(null!=(ref2=args[0])?ref2.clientY:void 0))&&(event=args[0],point={x:event.clientX,y:event.clientY},event.point=Utils.convertPointFromContext(point,this,!0),event.contextPoint=Utils.convertPointFromContext(point,this.context,!0),null!=event.touches))for(ref3=event.touches,n=0,len1=ref3.length;n<len1;n++)touch=ref3[n],point={x:touch.clientX,y:touch.clientY},touch.point=Utils.convertPointFromContext(point,this,!0),touch.contextPoint=Utils.convertPointFromContext(point,this.context,!0);return Layer.__super__.emit.apply(this,[eventName].concat(slice.call(args),[this]))}},Layer.prototype.once=function(eventName,listener){return Layer.__super__.once.call(this,eventName,listener),this._addListener(eventName,listener)},Layer.prototype.addListener=function(eventName,listener){if(!eventName)throw Error("Layer.on needs a valid event name");if(!listener)throw Error("Layer.on needs an event listener");return Layer.__super__.addListener.call(this,eventName,listener),this._addListener(eventName,listener)},Layer.prototype.removeListener=function(eventName,listener){if(!eventName)throw Error("Layer.off needs a valid event name");return Layer.__super__.removeListener.call(this,eventName,listener),this._removeListener(eventName,listener)},Layer.prototype._addListener=function(eventName,listener){if(_.startsWith(eventName,"change:")||(this.ignoreEvents=!1),(Utils.domValidEvent(this._element,eventName)||indexOf.call(_.values(Gestures),eventName)>=0)&&!this._domEventManager.listeners(eventName).length)return this._domEventManager.addEventListener(eventName,function(_this){return function(event){return _this.emit(eventName,event)}}(this))},Layer.prototype._removeListener=function(eventName,listener){if(!this.listeners(eventName).length)return this._domEventManager.removeAllListeners(eventName)},Layer.prototype._parentDraggableLayer=function(){var layer,len1,n,ref1,ref2;for(ref1=this.ancestors(),n=0,len1=ref1.length;n<len1;n++)if(layer=ref1[n],null!=(ref2=layer._draggable)?ref2.enabled:void 0)return layer;return null},Layer.prototype.on=Layer.prototype.addListener,Layer.prototype.off=Layer.prototype.removeListener,Layer.prototype.onClick=function(cb){return this.on(Events.Click,cb)},Layer.prototype.onDoubleClick=function(cb){return this.on(Events.DoubleClick,cb)},Layer.prototype.onScrollStart=function(cb){return this.on(Events.ScrollStart,cb)},Layer.prototype.onScroll=function(cb){return this.on(Events.Scroll,cb)},Layer.prototype.onScrollEnd=function(cb){return this.on(Events.ScrollEnd,cb)},Layer.prototype.onScrollAnimationDidStart=function(cb){return this.on(Events.ScrollAnimationDidStart,cb)},Layer.prototype.onScrollAnimationDidEnd=function(cb){return this.on(Events.ScrollAnimationDidEnd,cb)},Layer.prototype.onTouchStart=function(cb){return this.on(Events.TouchStart,cb)},Layer.prototype.onTouchEnd=function(cb){return this.on(Events.TouchEnd,cb)},Layer.prototype.onTouchMove=function(cb){return this.on(Events.TouchMove,cb)},Layer.prototype.onMouseUp=function(cb){return this.on(Events.MouseUp,cb)},Layer.prototype.onMouseDown=function(cb){return this.on(Events.MouseDown,cb)},Layer.prototype.onMouseOver=function(cb){return this.on(Events.MouseOver,cb)},Layer.prototype.onMouseOut=function(cb){return this.on(Events.MouseOut,cb)},Layer.prototype.onMouseEnter=function(cb){return this.on(Events.MouseEnter,cb)},Layer.prototype.onMouseLeave=function(cb){return this.on(Events.MouseLeave,cb);
  },Layer.prototype.onMouseMove=function(cb){return this.on(Events.MouseMove,cb)},Layer.prototype.onMouseWheel=function(cb){return this.on(Events.MouseWheel,cb)},Layer.prototype.onAnimationStart=function(cb){return this.on(Events.AnimationStart,cb)},Layer.prototype.onAnimationStop=function(cb){return this.on(Events.AnimationStop,cb)},Layer.prototype.onAnimationEnd=function(cb){return this.on(Events.AnimationEnd,cb)},Layer.prototype.onAnimationDidStart=function(cb){return this.on(Events.AnimationDidStart,cb)},Layer.prototype.onAnimationDidStop=function(cb){return this.on(Events.AnimationDidStop,cb)},Layer.prototype.onAnimationDidEnd=function(cb){return this.on(Events.AnimationDidEnd,cb)},Layer.prototype.onImageLoaded=function(cb){return this.on(Events.ImageLoaded,cb)},Layer.prototype.onImageLoadError=function(cb){return this.on(Events.ImageLoadError,cb)},Layer.prototype.onImageLoadCancelled=function(cb){return this.on(Events.ImageLoadCancelled,cb)},Layer.prototype.onMove=function(cb){return this.on(Events.Move,cb)},Layer.prototype.onDragStart=function(cb){return this.on(Events.DragStart,cb)},Layer.prototype.onDragWillMove=function(cb){return this.on(Events.DragWillMove,cb)},Layer.prototype.onDragMove=function(cb){return this.on(Events.DragMove,cb)},Layer.prototype.onDragDidMove=function(cb){return this.on(Events.DragDidMove,cb)},Layer.prototype.onDrag=function(cb){return this.on(Events.Drag,cb)},Layer.prototype.onDragEnd=function(cb){return this.on(Events.DragEnd,cb)},Layer.prototype.onDragAnimationStart=function(cb){return this.on(Events.DragAnimationStart,cb)},Layer.prototype.onDragAnimationEnd=function(cb){return this.on(Events.DragAnimationEnd,cb)},Layer.prototype.onDirectionLockStart=function(cb){return this.on(Events.DirectionLockStart,cb)},Layer.prototype.onStateSwitchStart=function(cb){return this.on(Events.StateSwitchStart,cb)},Layer.prototype.onStateSwitchStop=function(cb){return this.on(Events.StateSwitchStop,cb)},Layer.prototype.onStateSwitchEnd=function(cb){return this.on(Events.StateSwitchEnd,cb)},Layer.prototype.onStateWillSwitch=function(cb){return this.on(Events.StateSwitchStart,cb)},Layer.prototype.onStateDidSwitch=function(cb){return this.on(Events.StateSwitchEnd,cb)},Layer.prototype.onTap=function(cb){return this.on(Events.Tap,cb)},Layer.prototype.onTapStart=function(cb){return this.on(Events.TapStart,cb)},Layer.prototype.onTapEnd=function(cb){return this.on(Events.TapEnd,cb)},Layer.prototype.onDoubleTap=function(cb){return this.on(Events.DoubleTap,cb)},Layer.prototype.onForceTap=function(cb){return this.on(Events.ForceTap,cb)},Layer.prototype.onForceTapChange=function(cb){return this.on(Events.ForceTapChange,cb)},Layer.prototype.onForceTapStart=function(cb){return this.on(Events.ForceTapStart,cb)},Layer.prototype.onForceTapEnd=function(cb){return this.on(Events.ForceTapEnd,cb)},Layer.prototype.onLongPress=function(cb){return this.on(Events.LongPress,cb)},Layer.prototype.onLongPressStart=function(cb){return this.on(Events.LongPressStart,cb)},Layer.prototype.onLongPressEnd=function(cb){return this.on(Events.LongPressEnd,cb)},Layer.prototype.onSwipe=function(cb){return this.on(Events.Swipe,cb)},Layer.prototype.onSwipeStart=function(cb){return this.on(Events.SwipeStart,cb)},Layer.prototype.onSwipeEnd=function(cb){return this.on(Events.SwipeEnd,cb)},Layer.prototype.onSwipeUp=function(cb){return this.on(Events.SwipeUp,cb)},Layer.prototype.onSwipeUpStart=function(cb){return this.on(Events.SwipeUpStart,cb)},Layer.prototype.onSwipeUpEnd=function(cb){return this.on(Events.SwipeUpEnd,cb)},Layer.prototype.onSwipeDown=function(cb){return this.on(Events.SwipeDown,cb)},Layer.prototype.onSwipeDownStart=function(cb){return this.on(Events.SwipeDownStart,cb)},Layer.prototype.onSwipeDownEnd=function(cb){return this.on(Events.SwipeDownEnd,cb)},Layer.prototype.onSwipeLeft=function(cb){return this.on(Events.SwipeLeft,cb)},Layer.prototype.onSwipeLeftStart=function(cb){return this.on(Events.SwipeLeftStart,cb)},Layer.prototype.onSwipeLeftEnd=function(cb){return this.on(Events.SwipeLeftEnd,cb)},Layer.prototype.onSwipeRight=function(cb){return this.on(Events.SwipeRight,cb)},Layer.prototype.onSwipeRightStart=function(cb){return this.on(Events.SwipeRightStart,cb)},Layer.prototype.onSwipeRightEnd=function(cb){return this.on(Events.SwipeRightEnd,cb)},Layer.prototype.onPan=function(cb){return this.on(Events.Pan,cb)},Layer.prototype.onPanStart=function(cb){return this.on(Events.PanStart,cb)},Layer.prototype.onPanEnd=function(cb){return this.on(Events.PanEnd,cb)},Layer.prototype.onPanLeft=function(cb){return this.on(Events.PanLeft,cb)},Layer.prototype.onPanRight=function(cb){return this.on(Events.PanRight,cb)},Layer.prototype.onPanUp=function(cb){return this.on(Events.PanUp,cb)},Layer.prototype.onPanDown=function(cb){return this.on(Events.PanDown,cb)},Layer.prototype.onPinch=function(cb){return this.on(Events.Pinch,cb)},Layer.prototype.onPinchStart=function(cb){return this.on(Events.PinchStart,cb)},Layer.prototype.onPinchEnd=function(cb){return this.on(Events.PinchEnd,cb)},Layer.prototype.onScale=function(cb){return this.on(Events.Scale,cb)},Layer.prototype.onScaleStart=function(cb){return this.on(Events.ScaleStart,cb)},Layer.prototype.onScaleEnd=function(cb){return this.on(Events.ScaleEnd,cb)},Layer.prototype.onRotate=function(cb){return this.on(Events.Rotate,cb)},Layer.prototype.onRotateStart=function(cb){return this.on(Events.RotateStart,cb)},Layer.prototype.onRotateEnd=function(cb){return this.on(Events.RotateEnd,cb)},Layer.prototype._showHint=function(targetLayer){var frame,layer,len1,len2,n,o,parent,ref1,ref2;if(this.visible&&0!==this.opacity){if(!this.shouldShowHint(targetLayer)){for(ref1=this.children,n=0,len1=ref1.length;n<len1;n++)layer=ref1[n],layer._showHint(targetLayer);return null}for(frame=this.canvasFrame,ref2=this.ancestors(),o=0,len2=ref2.length;o<len2;o++)if(parent=ref2[o],parent.clip&&(frame=Utils.frameIntersection(frame,parent.canvasFrame)),!frame)return;return this.showHint(frame),_.invokeMap(this.children,"_showHint")}},Layer.prototype.willSeemToDoSomething=function(){return!this.ignoreEvents&&(!this._draggable||this._draggable.isDragging!==!1||this._draggable.isMoving!==!1)},Layer.prototype.shouldShowHint=function(){var eventName,len1,len2,n,o,parent,ref1,ref2;if(this.ignoreEvents===!0)return!1;if(this.isAnimating)return!1;for(ref1=this.ancestors(),n=0,len1=ref1.length;n<len1;n++)if(parent=ref1[n],parent.isAnimating)return!1;if(this._draggable&&this._draggable.horizontal===!1&&this._draggable.vertical===!1)return!1;if(0===this.opacity)return!1;for(ref2=this.listenerEvents(),o=0,len2=ref2.length;o<len2;o++)if(eventName=ref2[o],Events.isInteractive(eventName))return!0;return!1},Layer.prototype.showHint=function(highlightFrame){var animation,layer;return layer=new Layer({frame:Utils.frameInset(highlightFrame,-1),backgroundColor:null,borderColor:Framer.Defaults.Hints.color,borderRadius:this.borderRadius*Utils.average([this.canvasScaleX(),this.canvasScaleY()]),borderWidth:3}),this._draggable&&(layer.backgroundColor=null),Utils.frameInFrame(this.context.canvasFrame,highlightFrame)&&(layer.backgroundColor=null),animation=layer.animate({properties:{opacity:0},curve:"ease-out",time:.5}),animation.onAnimationEnd(function(){return layer.destroy()})},Layer.prototype.toName=function(){var ref1;return this.name?name:(null!=(ref1=this.__framerInstanceInfo)?ref1.name:void 0)||""},Layer.prototype.toInspect=function(constructor){var name;return null==constructor&&(constructor=this.constructor.name),name=this.name?"name:"+this.name+" ":"","<"+constructor+" "+this.toName()+" id:"+this.id+" "+name+" ("+Utils.roundWhole(this.x)+", "+Utils.roundWhole(this.y)+") "+Utils.roundWhole(this.width)+"x"+Utils.roundWhole(this.height)+">"},Layer}(BaseClass)},function(module,exports,__webpack_require__){var FramerCSS,Utils;Utils=__webpack_require__(4),FramerCSS="body {\n\tmargin: 0;\n}\n\n.framerContext {\n\tposition: absolute;\n\tleft: 0;\n\ttop: 0;\n\tright: 0;\n\tbottom: 0;\n\tpointer-events: none;\n}\n\n.framerLayer {\n\tdisplay: block;\n\tposition: absolute;\n\tleft: 0;\n\ttop: 0;\n\tbackground-repeat: no-repeat;\n\tbackground-position: center;\n\tbackground-size: cover;\n\t-webkit-overflow-scrolling: touch;\n\t-webkit-box-sizing: border-box;\n\t-webkit-user-select: none;\n}\n\n.framerLayer input,\n.framerLayer textarea,\n.framerLayer select,\n.framerLayer option,\n.framerLayer div[contenteditable=true]\n{\n\tpointer-events: auto;\n\t-webkit-user-select: auto;\n}\n\n.framerLayer svg {\n\toverflow: visible;\n\tdisplay: block;\n\t-webkit-font-smoothing: antialiased;\n}\n\n.framerDebug {\n\tpadding: 6px;\n\tcolor: #fff;\n\tfont: 10px/1em Monaco;\n}\n",Utils.domComplete(function(){return Utils.insertCSS(FramerCSS)})},function(module,exports,__webpack_require__){var Events,Gestures,Utils,_,interactiveEvents,supportsPointerEvents,indexOf=[].indexOf||function(item){for(var i=0,l=this.length;i<l;i++)if(i in this&&this[i]===item)return i;return-1};Utils=__webpack_require__(4),_=__webpack_require__(1)._,Gestures=__webpack_require__(18).Gestures,Events={},Events.MouseUp="mouseup",Events.MouseDown="mousedown",Events.MouseOver="mouseover",Events.MouseOut="mouseout",Events.MouseEnter="mouseenter",Events.MouseLeave="mouseleave",Events.MouseMove="mousemove",Events.MouseWheel="mousewheel",Events.DoubleClick="dblclick",Events.MouseDoubleClick="dblclick",supportsPointerEvents=null===window.onpointerdown&&null===window.onpointermove&&null===window.onpointerup,Events.PointerUp="pointerup",Events.PointerDown="pointerdown",Events.PointerOver="pointerover",Events.PointerOut="pointerout",Events.PointerMove="pointermove",Events.enableEmulatedTouchEvents=function(enable){if(null==enable&&(enable=!0),!supportsPointerEvents)return enable?(Events.TouchStart=Events.MouseDown,Events.TouchEnd=Events.MouseUp,Events.TouchMove=Events.MouseMove,Events.Click="touchend"):(Events.TouchStart="touchstart",Events.TouchEnd="touchend",Events.TouchMove="touchmove",Events.Click=Utils.isTouch()?"touchend":"mouseup")},Events.enableEmulatedTouchEvents(!Utils.isTouch()),supportsPointerEvents&&(Events.MouseUp=Events.PointerUp,Events.MouseDown=Events.PointerDown,Events.MouseOver=Events.PointerOver,Events.MouseOut=Events.PointerOut,Events.MouseMove=Events.PointerMove,Events.TouchStart=Events.PointerDown,Events.TouchEnd=Events.PointerUp,Events.TouchMove=Events.PointerMove,Events.Click=Events.PointerUp),Events.AnimationStart="start",Events.AnimationHalt="halt",Events.AnimationStop="stop",Events.AnimationEnd="end",Events.AnimationDidStart=Events.AnimationStart,Events.AnimationDidStop=Events.AnimationStop,Events.AnimationDidEnd=Events.AnimationEnd,Events.StateSwitchStart="stateswitchstart",Events.StateSwitchStop="stateswitchstop",Events.StateSwitchEnd="stateswitchend",Events.StateWillSwitch=Events.StateSwitchStart,Events.StateDidSwitch=Events.StateSwitchEnd,Events.Scroll="scroll",Events.ImageLoaded="imageload",Events.ImageLoadError="imageerror",Events.ImageLoadCancelled="imagecancelled",Events.DeviceOrientation="deviceorientation",Events.DeviceMotion="devicemotion",_.extend(Events,Gestures),Events.touchEvent=function(event){var ref,ref1,touchEvent;return touchEvent=null!=(ref=event.touches)?ref[0]:void 0,null==touchEvent&&(touchEvent=null!=(ref1=event.changedTouches)?ref1[0]:void 0),null==touchEvent&&(touchEvent=event),touchEvent},Events.wrap=function(element){return Framer.CurrentContext.domEventManager.wrap(element)},Events.isGesture=function(eventName){return indexOf.call(Gestures,eventName)>=0},interactiveEvents=_.values(Gestures).concat([Events.TouchStart,Events.TouchEnd,Events.MouseUp,Events.MouseDown,Events.MouseWheel,Events.DoubleClick]),Events.isInteractive=function(eventName){return indexOf.call(interactiveEvents,eventName)>=0},exports.Events=Events},function(module,exports){var Gestures;Gestures={},Gestures.Tap="tap",Gestures.TapStart="tapstart",Gestures.TapEnd="tapend",Gestures.DoubleTap="doubletap",Gestures.ForceTap="forcetap",Gestures.ForceTapChange="forcetapchange",Gestures.ForceTapStart="forcetapstart",Gestures.ForceTapEnd="forcetapend",Gestures.LongPress="longpress",Gestures.LongPressStart="longpressstart",Gestures.LongPressEnd="longpressend",Gestures.Swipe="swipe",Gestures.SwipeStart="swipestart",Gestures.SwipeEnd="swipeend",Gestures.SwipeUp="swipeup",Gestures.SwipeUpStart="swipeupstart",Gestures.SwipeUpEnd="swipeupend",Gestures.SwipeDown="swipedown",Gestures.SwipeDownStart="swipedownstart",Gestures.SwipeDownEnd="swipedownend",Gestures.SwipeLeft="swipeleft",Gestures.SwipeLeftStart="swipeleftstart",Gestures.SwipeLeftEnd="swipeleftend",Gestures.SwipeRight="swiperight",Gestures.SwipeRightStart="swiperightstart",Gestures.SwipeRightEnd="swiperightend",Gestures.EdgeSwipe="edgeswipe",Gestures.EdgeSwipeStart="edgeswipestart",Gestures.EdgeSwipeEnd="edgeswipeend",Gestures.EdgeSwipeTop="edgeswipetop",Gestures.EdgeSwipeTopStart="edgeswipetopstart",Gestures.EdgeSwipeTopEnd="edgeswipetopend",Gestures.EdgeSwipeRight="edgeswiperight",Gestures.EdgeSwipeRightStart="edgeswiperightstart",Gestures.EdgeSwipeRightEnd="edgeswiperightend",Gestures.EdgeSwipeBottom="edgeswipebottom",Gestures.EdgeSwipeBottomStart="edgeswipebottomstart",Gestures.EdgeSwipeBottomEnd="edgeswipebottomend",Gestures.EdgeSwipeLeft="edgeswipeleft",Gestures.EdgeSwipeLeftStart="edgeswipeleftstart",Gestures.EdgeSwipeLeftEnd="edgeswipeleftend",Gestures.Pan="pan",Gestures.PanStart="panstart",Gestures.PanEnd="panend",Gestures.PanLeft="panleft",Gestures.PanRight="panright",Gestures.PanUp="panup",Gestures.PanDown="pandown",Gestures.Pinch="pinch",Gestures.PinchStart="pinchstart",Gestures.PinchEnd="pinchend",Gestures.Scale="scale",Gestures.ScaleStart="scalestart",Gestures.ScaleEnd="scaleend",Gestures.Rotate="rotate",Gestures.RotateStart="rotatestart",Gestures.RotateEnd="rotateend",exports.Gestures=Gestures},function(module,exports,__webpack_require__){var Originals,Utils,_;_=__webpack_require__(1)._,Utils=__webpack_require__(4),Originals={Layer:{backgroundColor:"rgba(123, 123, 123, 0.5)",color:"white",borderColor:"rgba(123, 123, 123, 0.5)",width:200,height:200},Animation:{curve:"ease",time:1,repeat:0,delay:0,debug:!1,colorModel:"husl",animate:!0,looping:!1},Context:{perspective:0,perspectiveOriginX:.5,perspectiveOriginY:.5,parent:null,name:null},DeviceComponent:{fullScreen:!1,padding:50,deviceType:"apple-iphone-8-silver",deviceZoom:"fit",contentZoom:1,orientation:"portrait",keyboard:!1,animationOptions:{time:.3,curve:"ease-in-out"}},LayerDraggable:{momentum:!0,momentumOptions:{friction:2.1,tolerance:1},bounce:!0,bounceOptions:{friction:40,tension:200,tolerance:1},directionLock:!1,directionLockThreshold:{x:10,y:10},overdrag:!0,overdragScale:.5,pixelAlign:!0,velocityTimeout:100,velocityScale:890},FrictionSimulator:{friction:2,tolerance:.1},Spring:{dampingRatio:.5,mass:1,velocity:0},SpringSimulator:{tension:500,friction:10,tolerance:1e-4},MomentumBounceSimulator:{momentum:{friction:2,tolerance:10},bounce:{tension:500,friction:10,tolerance:1}},GridComponent:{rows:3,columns:3,spacing:0,backgroundColor:"transparent"},ScrollComponent:{clip:!0,mouseWheelEnabled:!1,backgroundColor:null},Hints:{color:"rgba(144, 19, 254, 0.8)"},Shadow:{x:0,y:0,color:"rgba(123, 123, 123, 0.5)",type:"box",blur:0,spread:0}},exports.Defaults={getDefaults:function(className,options){var defaults,k,ref,v;if(!Originals.hasOwnProperty(className))return{};if(!Framer.Defaults.hasOwnProperty(className))return{};options=_.clone(options),defaults=_.cloneDeep(Originals[className]),ref=Framer.Defaults[className];for(k in ref)v=ref[k],!_.isFunction(v)||"Animation"===className&&"curve"===k?defaults[k]=v:defaults[k]=v();for(k in defaults)v=defaults[k],options.hasOwnProperty(k)||(options[k]=v);return options},setup:function(){var className,classValues,k,ref,v;if(window.FramerDefaults){ref=window.FramerDefaults;for(className in ref){classValues=ref[className];for(k in classValues)v=classValues[k],Originals[className][k]=v}}return exports.Defaults.reset()},reset:function(){return window.Framer.Defaults=_.cloneDeep(Originals)}}},function(module,exports,__webpack_require__){var Animator,BaseClass,Config,Curves,Defaults,LinearAnimator,SVG,Utils,_,evaluateRelativeProperty,isRelativeProperty,numberRE,relativePropertyRE,slice=[].slice,bind=function(fn,me){return function(){return fn.apply(me,arguments)}},extend=function(child,parent){function ctor(){this.constructor=child}for(var key in parent)hasProp.call(parent,key)&&(child[key]=parent[key]);return ctor.prototype=parent.prototype,child.prototype=new ctor,child.__super__=parent.prototype,child},hasProp={}.hasOwnProperty,indexOf=[].indexOf||function(item){for(var i=0,l=this.length;i<l;i++)if(i in this&&this[i]===item)return i;return-1};_=__webpack_require__(1)._,Utils=__webpack_require__(4),Config=__webpack_require__(16).Config,Defaults=__webpack_require__(19).Defaults,BaseClass=__webpack_require__(6).BaseClass,Animator=__webpack_require__(21).Animator,LinearAnimator=__webpack_require__(22).LinearAnimator,SVG=__webpack_require__(23).SVG,Curves=__webpack_require__(24),numberRE=/[+-]?(?:\d*\.|)\d+(?:[eE][+-]?\d+|)/,relativePropertyRE=new RegExp("^(?:([+-])=|)("+numberRE.source+")([a-z%]*)$","i"),isRelativeProperty=function(v){return _.isString(v)&&relativePropertyRE.test(v)},evaluateRelativeProperty=function(target,k,v){var match,number,ref,rest,sign,unit;return ref=relativePropertyRE.exec(v),match=ref[0],sign=ref[1],number=ref[2],unit=ref[3],rest=5<=ref.length?slice.call(ref,4):[],sign?target[k]+(sign+1)*number:+number},exports.Animation=function(superClass){function Animation(){var args,layer,options,properties;if(args=1<=arguments.length?slice.call(arguments,0):[],this._updateTemplateValue=bind(this._updateTemplateValue,this),this._updateShadows=bind(this._updateShadows,this),this._updateGradientValue=bind(this._updateGradientValue,this),this._updateColorValue=bind(this._updateColorValue,this),this._updateNumericObjectValue=bind(this._updateNumericObjectValue,this),this._calculateNumericObjectValue=bind(this._calculateNumericObjectValue,this),this._updateNumberValue=bind(this._updateNumberValue,this),this._updateValues=bind(this._updateValues,this),this._prepareUpdateValues=bind(this._prepareUpdateValues,this),this._update=bind(this._update,this),this.finish=bind(this.finish,this),this._start=bind(this._start,this),this._noop=bind(this._noop,this),this._instant=bind(this._instant,this),this.start=bind(this.start,this),layer=null,properties={},options={},3===arguments.length&&(layer=args[0],properties=args[1],options={},null!=properties.options&&(options=_.clone(properties.options)),args[2]&&(options=_.extend({},options,args[2]))),2===arguments.length&&(layer=args[0],properties=null!=args[1].properties?args[1].properties:args[1],null!=args[1].options&&(options=args[1].options)),1===arguments.length&&(layer=args[0].layer,properties=args[0].properties,options=null!=args[0].options?args[0].options:args[0]),delete options.layer,delete options.properties,delete options.options,this.options=_.cloneDeep(Defaults.getDefaults("Animation",options)),Animation.__super__.constructor.apply(this,arguments),this._layer=layer,!(layer instanceof _Layer))throw Error("Animation: missing layer");this.properties=Animation.filterAnimatableProperties(properties,layer),properties.origin&&console.warn("Animation.origin: please use layer.originX and layer.originY"),_.isString(this.options.curve)&&(this.options.curve=Curves.fromString(this.options.curve)),this.options.curve!==Curves.Spring&&this.options.curve!==Curves.Bezier||(this.options.curve=this.options.curve.call()),this._originalState=this._currentState(),this._repeatCounter=this.options.repeat}return extend(Animation,superClass),Animation.define("layer",{get:function(){return this._layer}}),Animation.define("isPending",{get:function(){return null!=this._delayTimer}}),Animation.define("isAnimating",{get:function(){return indexOf.call(this.layer.animations(),this)>=0}}),Animation.define("looping",{get:function(){return this.options.looping},set:function(value){var ref,ref1;if(null!=(ref=this.options)&&(ref.looping=value),(null!=(ref1=this.options)?ref1.looping:void 0)&&null!=this.layer&&!this.isAnimating)return this.restart()}}),Animation.define("isNoop",Animation.simpleProperty("isNoop",!1)),Animation.prototype.start=function(){var animation,k,property,ref,ref1,ref2,start,v;this._animator=this.options.curve(this.options),this._target=this.layer,this._stateA=this._currentState(),this._stateB={},ref=this.properties;for(k in ref)v=ref[k],this._stateA[k]!==v&&(_.isFunction(v)?v=v(this.layer,k):isRelativeProperty(v)&&(v=evaluateRelativeProperty(this._target,k,v)),this._stateA[k]!==v&&(this._stateB[k]=v));if(0===_.keys(this._stateA).length)return console.warn("Animation: nothing to animate, no animatable properties"),this._noop();if(_.isEqual(this._stateA,this._stateB))return console.warn("Animation: nothing to animate, all properties are equal to what it is now"),this._noop();if(0===_.keys(this._stateB).length)return this._noop();ref1=this._target.animatingProperties();for(property in ref1)animation=ref1[property],this._stateA.hasOwnProperty(property)&&animation.stop(),"x"===property&&(this._stateA.hasOwnProperty("minX")||this._stateA.hasOwnProperty("midX")||this._stateA.hasOwnProperty("maxX"))&&animation.stop(),"y"===property&&(this._stateA.hasOwnProperty("minY")||this._stateA.hasOwnProperty("midY")||this._stateA.hasOwnProperty("maxY"))&&animation.stop();if(this.options.debug){console.log("Animation.start"),ref2=this._stateB;for(k in ref2)v=ref2[k],console.log("\t"+k+": "+this._stateA[k]+" -> "+this._stateB[k])}return _.isFunction(this.options.onStart)&&this.on(Events.AnimationStart,this.options.onStart),_.isFunction(this.options.onHalt)&&this.on(Events.AnimationHalt,this.options.onHalt),_.isFunction(this.options.onStop)&&this.on(Events.AnimationStop,this.options.onStop),_.isFunction(this.options.onEnd)&&this.on(Events.AnimationEnd,this.options.onEnd),this.once("end",function(_this){return function(){if((_this._repeatCounter>0||_this.looping)&&(_this.restart(),!_this.looping))return _this._repeatCounter--}}(this)),this._prepareUpdateValues(),start=this.options.animate===!1||this.options.instant===!0?this._instant:this._start,this.layer.context.addAnimation(this),this.options.delay?this._delayTimer=Utils.delay(this.options.delay,start):start(),!0},Animation.prototype.stop=function(emit){return null==emit&&(emit=!0),null!=this._delayTimer&&(Framer.CurrentContext.removeTimer(this._delayTimer),this._delayTimer=null),this.layer.context.removeAnimation(this),emit&&this.emit(Events.AnimationHalt),emit&&this.emit(Events.AnimationStop),Framer.Loop.off("update",this._update)},Animation.prototype.reverse=function(){var key,options,properties,ref,value;properties=_.clone(this._originalState),ref=this.properties;for(key in ref)value=ref[key],SVG.isPath(value)&&(value.reversed=!value.reversed,properties[key]=value);return options=_.clone(this.options),new Animation(this.layer,properties,options)},Animation.prototype.reset=function(){var k,ref,results,v;ref=this._stateA,results=[];for(k in ref)v=ref[k],results.push(this._target[k]=v);return results},Animation.prototype.restart=function(){return this.reset(),this.start()},Animation.prototype.copy=function(){var options,properties;return properties=_.clone(this.properties),options=_.clone(this.options),new Animation(this.layer,properties,options)},Animation.prototype.revert=function(){return this.reverse()},Animation.prototype.inverse=function(){return this.reverse()},Animation.prototype.invert=function(){return this.reverse()},Animation.prototype.emit=function(event){return Animation.__super__.emit.apply(this,arguments),this.layer.emit(event,this)},Animation.prototype.animatingProperties=function(){return _.keys(this._stateA)},Animation.prototype._instant=function(){return this.emit(Events.AnimationStart),this._updateValues(1),this.emit(Events.AnimationStop),this.emit(Events.AnimationEnd)},Animation.prototype._noop=function(){return this.isNoop=!0,!this.isNoop},Animation.prototype._start=function(){return this._delayTimer=null,this.emit(Events.AnimationStart),this._previousValue=0,Framer.Loop.on("update",this._update)},Animation.prototype.finish=function(){return this.stop(),this._updateValues(1)},Animation.prototype._update=function(delta){var emit;return this._animator.finished()?(this._updateValues(1),this.stop(emit=!1),this.emit(Events.AnimationStop),this.emit(Events.AnimationEnd)):this._updateValues(this._animator.next(delta))},Animation.prototype._prepareUpdateValues=function(){var base,direction,end,k,path,ref,results,start,v;this._valueUpdaters={},ref=this._stateB,results=[];for(k in ref)if(v=ref[k],SVG.isPath(v)){switch(path=v,direction=null,start=null,end=null,k){case"x":case"minX":case"midX":case"maxX":case"width":direction="horizontal";break;case"y":case"minY":case"midY":case"maxY":case"height":direction="vertical";break;case"rotation":case"rotationZ":case"rotationX":case"rotationY":direction="angle"}results.push(this._valueUpdaters[k]=path.valueUpdater(direction,this._target,this._target[k]))}else Color.isColorObject(v)||Color.isColorObject(this._stateA[k])?results.push(this._valueUpdaters[k]=this._updateColorValue):Gradient.isGradient(v)||Gradient.isGradient(this._stateA[k])?(this._valueUpdaters[k]=this._updateGradientValue,results.push(null!=(base=this._stateA)[k]?base[k]:base[k]=Gradient.multiplyAlpha(v,0))):"borderWidth"===k?results.push(this._valueUpdaters[k]=this._updateNumericObjectValue.bind(this,["top","left","bottom","right"])):"borderRadius"===k?results.push(this._valueUpdaters[k]=this._updateNumericObjectValue.bind(this,["topLeft","topRight","bottomRight","bottomLeft"])):"template"===k?results.push(this._valueUpdaters[k]=this._updateTemplateValue):"shadows"===k?results.push(this._valueUpdaters[k]=this._updateShadows):results.push(this._valueUpdaters[k]=this._updateNumberValue);return results},Animation.prototype._updateValues=function(value){var delta,k,ref,v;delta=value-this._previousValue,this._previousValue=value,ref=this._stateB;for(k in ref)v=ref[k],this._valueUpdaters[k](k,value,delta);return null},Animation.prototype._updateNumberValue=function(key,value){return this._target[key]=Utils.mapRange(value,0,1,this._stateA[key],this._stateB[key])},Animation.prototype._interpolateNumericObjectValues=function(propKeys,valueA,valueB,value,flatten){var i,keyValueA,keyValueB,len,propKey,result;for(null==flatten&&(flatten=!0),result={},i=0,len=propKeys.length;i<len;i++)propKey=propKeys[i],keyValueA=_.isNumber(valueA)?valueA:null!=valueA?valueA[propKey]:void 0,keyValueB=_.isNumber(valueB)?valueB:null!=valueB?valueB[propKey]:void 0,null==keyValueA&&(keyValueA=keyValueB),null==keyValueB&&(keyValueB=keyValueA),result[propKey]=Utils.mapRange(value,0,1,keyValueA,keyValueB);return flatten&&1===_.uniq(_.values(result)).length&&(result=result[propKeys[0]]),result},Animation.prototype._calculateNumericObjectValue=function(propKeys,key,value,flatten){var valueA,valueB;return null==flatten&&(flatten=!0),valueA=this._stateA[key],valueB=this._stateB[key],this._interpolateNumericObjectValues(propKeys,valueA,valueB,value,flatten)},Animation.prototype._updateNumericObjectValue=function(propKeys,key,value,flatten){var result;return null==flatten&&(flatten=!0),result=this._calculateNumericObjectValue(propKeys,key,value,flatten),this._target[key]=result},Animation.prototype._updateColorValue=function(key,value){return this._target[key]=Color.mix(this._stateA[key],this._stateB[key],value,!1,this.options.colorModel)},Animation.prototype._updateGradientValue=function(key,value){var gradientA,gradientB,ref;return this._stateB[key]||1!==value?(gradientA=Gradient._asPlainObject(this._stateA[key]),gradientB=Gradient._asPlainObject(null!=(ref=this._stateB[key])?ref:Gradient.multiplyAlpha(gradientA,0)),this._target[key]=Gradient.mix(_.defaults(gradientA,gradientB),_.defaults(gradientB,gradientA),value,this.options.colorModel)):void(this._target[key]=this._stateB[key])},Animation.prototype._updateShadows=function(key,value){var fromShadow,i,index,numShadows,ref,ref1,ref2,ref3,ref4,ref5,ref6,ref7,ref8,result,toShadow,type;if(1===value)return void(this._target[key]=this._stateB[key]);for(result=[],numShadows=Math.max(null!=(ref=null!=(ref1=this._stateA[key])?ref1.length:void 0)?ref:0,null!=(ref2=null!=(ref3=this._stateB[key])?ref3.length:void 0)?ref2:0),index=i=0,ref4=numShadows;0<=ref4?i<ref4:i>ref4;index=0<=ref4?++i:--i)fromShadow=null!=(ref5=this._stateA[key])?ref5[index]:void 0,toShadow=null!=(ref6=this._stateB[key])?ref6[index]:void 0,null==toShadow&&null==fromShadow||(type=null!=(ref7=null!=(ref8=null!=toShadow?toShadow.type:void 0)?ref8:null!=fromShadow?fromShadow.type:void 0)?ref7:Framer.Defaults.Shadow.type,null==fromShadow&&(fromShadow=_.defaults({color:null,type:type},Framer.Defaults.Shadow)),null==toShadow&&(toShadow=_.defaults({color:null,type:type},Framer.Defaults.Shadow)),_.defaults(fromShadow,Framer.Defaults.Shadow),_.defaults(toShadow,Framer.Defaults.Shadow),result[index]=this._interpolateNumericObjectValues(["x","y","blur","spread"],fromShadow,toShadow,value,!1),result[index].color=Color.mix(fromShadow.color,toShadow.color,value,!1,this.options.colorModel),result[index].type=type);return this._target[key]=result},Animation.prototype._updateTemplateValue=function(key,value){var fromData,k,ref,targetData,toData,valueA,valueB;if(fromData=this._stateA[key],toData=this._stateB[key],targetData={},!_.isObject(toData)){if(k=null!=(ref=this._target._styledText)?ref.buildTemplate():void 0,!k)return;return valueB=toData,_.isNumber(valueB)&&(valueA=_.isObject(fromData)?fromData[k]:fromData,_.isNumber(valueA)||(valueA=0),valueB=Utils.mapRange(value,0,1,valueA,valueB)),targetData[k]=valueB,void(this._target.template=targetData)}for(k in toData)valueB=toData[k],_.isNumber(valueB)&&(valueA=_.isObject(fromData)?fromData[k]:fromData,_.isNumber(valueA)||(valueA=0),valueB=Utils.mapRange(value,0,1,valueA,valueB)),targetData[k]=valueB;return this._target.template=targetData},Animation.prototype._currentState=function(){return _.pick(this.layer,_.keys(this.properties))},Animation.isAnimatable=function(v){return _.isNumber(v)||_.isFunction(v)||isRelativeProperty(v)||Color.isColorObject(v)||Gradient.isGradientObject(v)||SVG.isPath(v)},Animation.isAnimatableKey=function(k){return"gradient"===k||"borderWidth"===k||"borderRadius"===k||"template"===k||"shadows"===k},Animation.filterAnimatableProperties=function(properties,layer){var animatableProperties,derivedKey,derivedKeys,i,j,k,len,len1,matches,ref,shadowIndex,v;animatableProperties={};for(k in properties)if(v=properties[k],"frame"===k||"size"===k||"point"===k||"midPoint"===k||"path"===k){switch(k){case"frame":derivedKeys=["x","y","width","height"];break;case"size":derivedKeys=["width","height"];break;case"point":derivedKeys=["x","y"];break;case"midPoint":derivedKeys=["midX","midY"];break;case"path":derivedKeys=["x","y","rotation"];break;default:derivedKeys=[]}if(SVG.isPath(v))for("path"===k&&(layer.midPoint=v.start),i=0,len=derivedKeys.length;i<len;i++)derivedKey=derivedKeys[i],animatableProperties[derivedKey]=v;else if(_.isObject(v))_.defaults(animatableProperties,_.pick(v,derivedKeys));else if(_.isNumber(v))for(j=0,len1=derivedKeys.length;j<len1;j++)derivedKey=derivedKeys[j],animatableProperties[derivedKey]=v}else this.isAnimatable(v)?animatableProperties[k]=v:Color.isValidColorProperty(k,v)?animatableProperties[k]=new Color(v):this.isAnimatableKey(k)?animatableProperties[k]=v:(matches=k.match(/^shadow([1-9])$/))&&(null==animatableProperties.shadows&&(animatableProperties.shadows=null!=(ref=_.clone(layer.shadows))?ref:[]),shadowIndex=parseInt(matches[1])-1,null!=animatableProperties.shadows[shadowIndex]&&_.defaults(v,animatableProperties.shadows[shadowIndex]),animatableProperties.shadows[shadowIndex]=v);return animatableProperties},Animation.prototype.toInspect=function(){var ref;return"<"+this.constructor.name+" id:"+this.id+" layer:"+(null!=(ref=this.layer)?ref.toName():void 0)+" ["+_.keys(this.properties).join(", ")+"] isAnimating:"+this.isAnimating+">";
  },Animation.prototype.onAnimationStart=function(cb){return this.on(Events.AnimationStart,cb)},Animation.prototype.onAnimationHalt=function(cb){return this.on(Events.AnimationHalt,cb)},Animation.prototype.onAnimationStop=function(cb){return this.on(Events.AnimationStop,cb)},Animation.prototype.onAnimationEnd=function(cb){return this.on(Events.AnimationEnd,cb)},Animation.prototype.onAnimationDidStart=function(cb){return this.on(Events.AnimationDidStart,cb)},Animation.prototype.onAnimationDidStop=function(cb){return this.on(Events.AnimationDidStop,cb)},Animation.prototype.onAnimationDidEnd=function(cb){return this.on(Events.AnimationDidEnd,cb)},Animation}(BaseClass)},function(module,exports){exports.Animator=function(){function Animator(options){null==options&&(options={}),this.setup(options)}return Animator.prototype.setup=function(options){throw Error("Not implemented")},Animator.prototype.next=function(delta){throw Error("Not implemented")},Animator.prototype.finished=function(){throw Error("Not implemented")},Animator.prototype.values=function(delta,limit){var i,j,ref,values;for(null==delta&&(delta=1/60),null==limit&&(limit=100),values=[],i=j=0,ref=limit;(0<=ref?j<=ref:j>=ref)&&(values.push(this.next(delta)),!this.finished());i=0<=ref?++j:--j);return values},Animator}()},function(module,exports,__webpack_require__){var Animator,extend=function(child,parent){function ctor(){this.constructor=child}for(var key in parent)hasProp.call(parent,key)&&(child[key]=parent[key]);return ctor.prototype=parent.prototype,child.prototype=new ctor,child.__super__=parent.prototype,child},hasProp={}.hasOwnProperty;Animator=__webpack_require__(21).Animator,exports.LinearAnimator=function(superClass){function LinearAnimator(){return LinearAnimator.__super__.constructor.apply(this,arguments)}return extend(LinearAnimator,superClass),LinearAnimator.prototype.setup=function(options){return this.options=_.defaults(options,{time:1,precision:.001}),this._time=0},LinearAnimator.prototype.next=function(delta){return this._time+=delta,this.finished()?1:this._time/this.options.time},LinearAnimator.prototype.finished=function(){return this._time>=this.options.time-this.options.precision},LinearAnimator}(Animator)},function(module,exports,__webpack_require__){var Color,_;_=__webpack_require__(1)._,Color=__webpack_require__(11).Color,exports.SVG=function(){function SVG(){}return SVG.validFill=function(value){return Color.validColorValue(value)||_.startsWith(value,"url(")},SVG.toFill=function(value){return _.startsWith(value,"url(")?value:Color.toColor(value)},SVG.updateGradientSVG=function(svgLayer){var id,ref;if(!svgLayer.__constructor)return Gradient.isGradient(svgLayer.gradient)?(svgLayer._elementGradientSVG||(svgLayer._elementGradientSVG=document.createElementNS("http://www.w3.org/2000/svg","svg"),svgLayer._element.appendChild(svgLayer._elementGradientSVG)),id=svgLayer.id+"-gradient",svgLayer._elementGradientSVG.innerHTML="<linearGradient id='"+id+"' gradientTransform='rotate("+(svgLayer.gradient.angle-90)+", 0.5, 0.5)' >\n\t<stop offset=\"0\" stop-color='#"+svgLayer.gradient.start.toHex()+"' stop-opacity='"+svgLayer.gradient.start.a+"' />\n\t<stop offset=\"1\" stop-color='#"+svgLayer.gradient.end.toHex()+"' stop-opacity='"+svgLayer.gradient.end.a+"' />\n</linearGradient>",svgLayer.fill="url(#"+id+")"):void(null!=(ref=svgLayer._elementGradientSVG)&&(ref.innerHTML=""))},SVG.constructSVGElements=function(root,elements,PathClass,GroupClass){var children,defsResult,element,group,i,id,len,name,options,path,targets;if(targets={},children=[],null!=elements)for(i=0,len=elements.length;i<len;i++)if(element=elements[i],element instanceof SVGElement)if(name=element.getAttribute("name"),null!=name)options={},options.name=name,options.parent=root,element instanceof SVGGElement?(group=new GroupClass(element,options),children.push(group),_.extend(targets,group.elements),null!=element.id&&""!==element.id&&(targets[element.id]=group)):(element instanceof SVGPathElement||element instanceof SVGUseElement)&&(path=new PathClass(element,options),children.push(path),null!=path._path.id&&""!==path._path.id&&(id=path._path.id,targets[id]=path));else if(element instanceof SVGGElement){defsResult=this.constructSVGElements(root,element.childNodes,PathClass,GroupClass),_.extend(targets,defsResult.targets),children=children.concat(defsResult.children);continue}return{targets:targets,children:children}},SVG.isPath=function(path){return path instanceof Framer.SVGPath},SVG}()},function(module,exports,__webpack_require__){var Bezier,BezierCurveAnimator,BezierDefaults,Defaults,Spring,SpringRK4Animator,computeDampingRatio,computeDerivedCurveOptions,computeDuration,fromDefinition,parseFunction,ref,slice=[].slice;BezierCurveAnimator=__webpack_require__(25).BezierCurveAnimator,ref=__webpack_require__(26),computeDerivedCurveOptions=ref.computeDerivedCurveOptions,computeDuration=ref.computeDuration,computeDampingRatio=ref.computeDampingRatio,SpringRK4Animator=__webpack_require__(27).SpringRK4Animator,Defaults=__webpack_require__(19).Defaults,Bezier=function(){var values;return values=1<=arguments.length?slice.call(arguments,0):[],function(options){return null==options&&(options={}),values.length>0&&(options.values=values),new BezierCurveAnimator(options)}},BezierDefaults={linear:function(options){return null==options&&(options={}),Bezier(0,0,1,1)(options)},ease:function(options){return null==options&&(options={}),Bezier(.25,.1,.25,1)(options)},easeIn:function(options){return null==options&&(options={}),Bezier(.42,0,1,1)(options)},easeOut:function(options){return null==options&&(options={}),Bezier(0,0,.58,1)(options)},easeInOut:function(options){return null==options&&(options={}),Bezier(.42,0,.58,1)(options)}},Spring=function(dampingRatio,mass,velocity){var curveOptions;return curveOptions={},null!=dampingRatio&&_.isFinite(dampingRatio)&&(curveOptions.dampingRatio=dampingRatio),null!=mass&&(curveOptions.mass=mass),null!=velocity&&(curveOptions.velocity=velocity),_.isFinite(dampingRatio)||"object"!=typeof dampingRatio||(curveOptions=dampingRatio,null!=curveOptions.damping&&null==curveOptions.dampingRatio&&(curveOptions.dampingRatio=curveOptions.damping)),null==curveOptions.tension&&null==curveOptions.friction&&(curveOptions=Defaults.getDefaults("Spring",curveOptions)),function(options){var animator,derivedOptions,duration,ref1;return null!=curveOptions.dampingRatio?(duration=null!=(ref1=null!=options?options.time:void 0)?ref1:1,derivedOptions=computeDerivedCurveOptions(curveOptions.dampingRatio,duration,curveOptions.velocity,curveOptions.mass),curveOptions=_.defaults(derivedOptions,curveOptions)):null!=options&&delete options.time,options=_.defaults(curveOptions,options),animator=new SpringRK4Animator(options),null!=duration&&(animator.time=duration),animator}},_.assign(Bezier,BezierDefaults),Spring.computeDerivedCurveOptions=computeDerivedCurveOptions,Spring.computeDuration=computeDuration,Spring.computeDampingRatio=computeDampingRatio,exports.Spring=Spring,exports.Bezier=Bezier,parseFunction=function(string){var args,argumentObject,argumentsRegex,match,matches,numbers,numbersRegex,prop,property,regex,result,type,value;if(!_.isString(string))return null;if(regex=/.*(Spring|Bezier)(?:\(\s*{?([\w:\s,.]*)}?\s*\)|\.(\w+))?/,matches=regex.exec(string),null==matches)return null;if(match=matches[0],type=matches[1],args=matches[2],prop=matches[3],result={name:type,property:null,arguments:null},null!=prop)return result.property=prop,result;if(null==args)return result;for(0===args.length&&(result.arguments=[]),argumentsRegex=/\s*([\w]+)\s*:\s*([\d.]+)\s*,?/g,argumentObject={};matches=argumentsRegex.exec(args);)match=matches[0],property=matches[1],value=matches[2],value=parseFloat(value),isNaN(value)||(argumentObject[property]=value);if(_.size(argumentObject)>0)return result.arguments=argumentObject,result;for(numbersRegex=/\s*([.\d]+)\s*/g,numbers=[];matches=numbersRegex.exec(args);)match=matches[0],value=matches[1],value=parseFloat(value),numbers.push(value);return result.arguments=numbers,result},fromDefinition=function(definition){var curve;return null==definition?null:(curve=Framer.Curves[definition.name],null==curve?null:null!=definition.property?curve[definition.property]:null==definition.arguments?curve:_.isArray(definition.arguments)?curve.apply(null,definition.arguments):curve(definition.arguments))},exports.parseFunction=parseFunction,exports.fromDefinition=fromDefinition,exports.fromString=function(string){var args,func,object,pairs;if(!_.isString(string))return null;if(func=fromDefinition(parseFunction(string)),null!=func)return func;switch(func=Utils.parseFunction(string),args=func.args.map(parseFloat),func.name){case"linear":return Bezier.linear;case"ease":return Bezier.ease;case"ease-in":return Bezier.easeIn;case"ease-out":return Bezier.easeOut;case"ease-in-out":return Bezier.easeInOut;case"bezier-curve":case"cubic-bezier":return Bezier.apply(null,args);case"spring":case"spring-rk4":case"spring-dho":return pairs=_.zipWith(["tension","friction","velocity","tolerance"],args,[250,25,0,.01],function(key,value,defaults){return[key,null!=value?value:defaults]}),object=_.fromPairs(pairs),Spring(object);default:return Bezier.linear}}},function(module,exports,__webpack_require__){var Animator,BezierCurveDefaults,UnitBezier,extend=function(child,parent){function ctor(){this.constructor=child}for(var key in parent)hasProp.call(parent,key)&&(child[key]=parent[key]);return ctor.prototype=parent.prototype,child.prototype=new ctor,child.__super__=parent.prototype,child},hasProp={}.hasOwnProperty;Animator=__webpack_require__(21).Animator,BezierCurveDefaults={linear:[0,0,1,1],ease:[.25,.1,.25,1],"ease-in":[.42,0,1,1],"ease-out":[0,0,.58,1],"ease-in-out":[.42,0,.58,1]},exports.BezierCurveAnimator=function(superClass){function BezierCurveAnimator(){return BezierCurveAnimator.__super__.constructor.apply(this,arguments)}return extend(BezierCurveAnimator,superClass),BezierCurveAnimator.prototype.setup=function(options){return _.isString(options)&&BezierCurveDefaults.hasOwnProperty(options.toLowerCase())&&(options={values:BezierCurveDefaults[options.toLowerCase()]}),options.values&&_.isString(options.values)&&BezierCurveDefaults.hasOwnProperty(options.values.toLowerCase())&&(options={values:BezierCurveDefaults[options.values.toLowerCase()],time:options.time}),_.isArray(options)&&4===options.length&&(options={values:options}),this.options=_.defaults(options,{values:BezierCurveDefaults.ease,time:1,precision:.001}),this._unitBezier=new UnitBezier(this.options.values[0],this.options.values[1],this.options.values[2],this.options.values[3],this._time=0)},BezierCurveAnimator.prototype.next=function(delta){return this._time+=delta,this.finished()?1:this._unitBezier.solve(this._time/this.options.time)},BezierCurveAnimator.prototype.finished=function(){return this._time>=this.options.time-this.options.precision},BezierCurveAnimator}(Animator),UnitBezier=function(){function UnitBezier(p1x,p1y,p2x,p2y){this.cx=3*p1x,this.bx=3*(p2x-p1x)-this.cx,this.ax=1-this.cx-this.bx,this.cy=3*p1y,this.by=3*(p2y-p1y)-this.cy,this.ay=1-this.cy-this.by}return UnitBezier.prototype.epsilon=1e-6,UnitBezier.prototype.sampleCurveX=function(t){return((this.ax*t+this.bx)*t+this.cx)*t},UnitBezier.prototype.sampleCurveY=function(t){return((this.ay*t+this.by)*t+this.cy)*t},UnitBezier.prototype.sampleCurveDerivativeX=function(t){return(3*this.ax*t+2*this.bx)*t+this.cx},UnitBezier.prototype.solveCurveX=function(x){var d2,i,t0,t1,t2,x2;for(t2=x,i=0;i<8;){if(x2=this.sampleCurveX(t2)-x,Math.abs(x2)<this.epsilon)return t2;if(d2=this.sampleCurveDerivativeX(t2),Math.abs(d2)<this.epsilon)break;t2-=x2/d2,i++}if(t0=0,t1=1,t2=x,t2<t0)return t0;if(t2>t1)return t1;for(;t0<t1;){if(x2=this.sampleCurveX(t2),Math.abs(x2-x)<this.epsilon)return t2;x>x2?t0=t2:t1=t2,t2=.5*(t1-t0)+t0}return t2},UnitBezier.prototype.solve=function(x){return this.sampleCurveY(this.solveCurveX(x))},UnitBezier}()},function(module,exports){var angularFrequency,approximateRoot,computeDampingRatio,epsilon,maxDamping,maxDuration,minDamping,minDuration;epsilon=.001,minDuration=.01,maxDuration=10,minDamping=Number.MIN_VALUE,maxDamping=1,approximateRoot=function(func,derivative,initialGuess,times){var i,j,ref,result;for(null==times&&(times=12),result=initialGuess,i=j=1,ref=times;1<=ref?j<ref:j>ref;i=1<=ref?++j:--j)result-=func(result)/derivative(result);return result},angularFrequency=function(undampedFrequency,dampingRatio){return undampedFrequency*Math.sqrt(1-Math.pow(dampingRatio,2))},exports.computeDampingRatio=computeDampingRatio=function(tension,friction,mass){return null==mass&&(mass=1),friction/(2*Math.sqrt(mass*tension))},exports.computeDuration=function(tension,friction,velocity,mass){var a,b,c,d,dampingRatio,duration,undampedFrequency;return null==velocity&&(velocity=0),null==mass&&(mass=1),dampingRatio=computeDampingRatio(tension,friction),undampedFrequency=Math.sqrt(tension/mass),dampingRatio<1?(a=Math.sqrt(1-Math.pow(dampingRatio,2)),b=velocity/(a*undampedFrequency),c=dampingRatio/a,d=-((b-c)/epsilon),d<=0?null:duration=Math.log(d)/(dampingRatio*undampedFrequency)):null},exports.computeDerivedCurveOptions=function(dampingRatio,duration,velocity,mass){var derivative,envelope,initialGuess,result,undampedFrequency;return null==velocity&&(velocity=0),null==mass&&(mass=1),dampingRatio=Math.max(Math.min(dampingRatio,maxDamping),minDamping),duration=Math.max(Math.min(duration,maxDuration),minDuration),dampingRatio<1?(envelope=function(undampedFrequency){var a,b,c,currentDisplacement,exponentialDecay;return exponentialDecay=undampedFrequency*dampingRatio,currentDisplacement=exponentialDecay*duration,a=exponentialDecay-velocity,b=angularFrequency(undampedFrequency,dampingRatio),c=Math.exp(-currentDisplacement),epsilon-a/b*c},derivative=function(undampedFrequency){var currentDisplacement,d,e,exponentialDecay,f,factor,g;return exponentialDecay=undampedFrequency*dampingRatio,currentDisplacement=exponentialDecay*duration,d=currentDisplacement*velocity+velocity,e=Math.pow(dampingRatio,2)*Math.pow(undampedFrequency,2)*duration,f=Math.exp(-currentDisplacement),g=angularFrequency(Math.pow(undampedFrequency,2),dampingRatio),factor=-envelope(undampedFrequency)+epsilon>0?-1:1,factor*((d-e)*f)/g}):(envelope=function(undampedFrequency){var a,b;return a=Math.exp(-undampedFrequency*duration),b=(undampedFrequency-velocity)*duration+1,-epsilon+a*b},derivative=function(undampedFrequency){var a,b;return a=Math.exp(-undampedFrequency*duration),b=(velocity-undampedFrequency)*Math.pow(duration,2),a*b}),result={tension:100,friction:10,velocity:velocity},initialGuess=5/duration,undampedFrequency=approximateRoot(envelope,derivative,initialGuess),isNaN(undampedFrequency)||(result.tension=Math.pow(undampedFrequency,2)*mass,result.friction=2*dampingRatio*Math.sqrt(mass*result.tension)),result}},function(module,exports,__webpack_require__){var Animator,Integrator,bind=function(fn,me){return function(){return fn.apply(me,arguments)}},extend=function(child,parent){function ctor(){this.constructor=child}for(var key in parent)hasProp.call(parent,key)&&(child[key]=parent[key]);return ctor.prototype=parent.prototype,child.prototype=new ctor,child.__super__=parent.prototype,child},hasProp={}.hasOwnProperty;Animator=__webpack_require__(21).Animator,Integrator=__webpack_require__(28).Integrator,exports.SpringRK4Animator=function(superClass){function SpringRK4Animator(){return this.finished=bind(this.finished,this),SpringRK4Animator.__super__.constructor.apply(this,arguments)}return extend(SpringRK4Animator,superClass),SpringRK4Animator.prototype.setup=function(options){return this.options=_.defaults(options,{tension:250,friction:25,velocity:0,tolerance:.001}),this._time=0,this._value=0,this._velocity=this.options.velocity,this._stopSpring=!1,this._integrator=new Integrator(function(_this){return function(state){return-_this.options.tension*state.x-_this.options.friction*state.v}}(this))},SpringRK4Animator.prototype.next=function(delta){var finalVelocity,net1DVelocity,netFloat,netValueIsLow,netVelocityIsLow,stateAfter,stateBefore;return this.finished()?1:(this._time+=delta,stateBefore={},stateAfter={},stateBefore.x=this._value-1,stateBefore.v=this._velocity,stateAfter=this._integrator.integrateState(stateBefore,delta),this._value=1+stateAfter.x,finalVelocity=stateAfter.v,netFloat=stateAfter.x,net1DVelocity=stateAfter.v,netValueIsLow=Math.abs(netFloat)<this.options.tolerance,netVelocityIsLow=Math.abs(net1DVelocity)<this.options.tolerance,this._stopSpring=netValueIsLow&&netVelocityIsLow,this._velocity=finalVelocity,this._value)},SpringRK4Animator.prototype.finished=function(){return this._stopSpring},SpringRK4Animator}(Animator)},function(module,exports){exports.Integrator=function(){function Integrator(_accelerationForState){this._accelerationForState=_accelerationForState,_.isFunction(this._accelerationForState)||(console.warn("Integrator: an integrator must be constructed with an acceleration function"),this._accelerationForState=function(){return 0})}return Integrator.prototype.integrateState=function(state,dt){var a,b,c,d,dvdt,dxdt;return a=this._evaluateState(state),b=this._evaluateStateWithDerivative(state,.5*dt,a),c=this._evaluateStateWithDerivative(state,.5*dt,b),d=this._evaluateStateWithDerivative(state,dt,c),dxdt=1/6*(a.dx+2*(b.dx+c.dx)+d.dx),dvdt=1/6*(a.dv+2*(b.dv+c.dv)+d.dv),state.x=state.x+dxdt*dt,state.v=state.v+dvdt*dt,state},Integrator.prototype._evaluateState=function(initialState){var output;return output={},output.dx=initialState.v,output.dv=this._accelerationForState(initialState),output},Integrator.prototype._evaluateStateWithDerivative=function(initialState,dt,derivative){var output,state;return state={},state.x=initialState.x+derivative.dx*dt,state.v=initialState.v+derivative.dv*dt,output={},output.dx=state.v,output.dv=this._accelerationForState(state),output},Integrator}()},function(module,exports){var _BackdropProperties,_Force2DProperties,_WebkitProperties,filterFormat,getShadowStrings,roundToZero,indexOf=[].indexOf||function(item){for(var i=0,l=this.length;i<l;i++)if(i in this&&this[i]===item)return i;return-1};filterFormat=function(name,value,unit,pixelMultiplier){return"px"===unit&&(value*=pixelMultiplier),name+"("+Utils.round(value,2)+unit+")"},roundToZero=function(num){return-1e-6<num&&num<1e-6?0:num},_WebkitProperties=[["blur","blur",0,"px"],["brightness","brightness",100,"%"],["saturate","saturate",100,"%"],["hue-rotate","hueRotate",0,"deg"],["contrast","contrast",100,"%"],["invert","invert",0,"%"],["grayscale","grayscale",0,"%"],["sepia","sepia",0,"%"]],_BackdropProperties=[["blur","backgroundBlur",0,"px"],["brightness","backgroundBrightness",100,"%"],["saturate","backgroundSaturate",100,"%"],["hue-rotate","backgroundHueRotate",0,"deg"],["contrast","backgroundContrast",100,"%"],["invert","backgroundInvert",0,"%"],["grayscale","backgroundGrayscale",0,"%"],["sepia","backgroundSepia",0,"%"]],_Force2DProperties={z:0,scaleZ:1,skewX:0,skewY:0,rotationX:0,rotationY:0},getShadowStrings=function(layer,types,createString){var dpr,i,len,ref,ref1,ref2,result,shadow,shadowString;if(_.isArray(types)||(types=[types]),result=[],null!=layer.shadows)for(ref=layer.shadows,i=0,len=ref.length;i<len;i++)shadow=ref[i],null!==shadow&&(shadow=_.defaults(_.clone(shadow),Framer.Defaults.Shadow),"inner"===shadow.type?shadow.type="inset":"outer"===shadow.type&&(null!=layer.image&&""!==layer.image?shadow.type="drop":shadow.type="box"),ref1=shadow.type,indexOf.call(types,ref1)>=0&&(0!==shadow.x||0!==shadow.y||0!==shadow.blur||0!==shadow.spread)&&(null===shadow.color&&(shadow.color=new Color(null)),dpr=null!=(ref2=layer._pixelMultiplierOverride)?ref2:layer.context.pixelMultiplier,shadowString=createString(shadow,dpr),result.push(shadowString)));return result},exports.LayerStyle={width:function(layer){var dpr,ref;return layer._updateHTMLScale(),dpr=null!=(ref=layer._pixelMultiplierOverride)?ref:layer.context.pixelMultiplier,layer._properties.width*dpr+"px"},height:function(layer){var dpr,ref;return layer._updateHTMLScale(),dpr=null!=(ref=layer._pixelMultiplierOverride)?ref:layer.context.pixelMultiplier,layer._properties.height*dpr+"px"},display:function(layer){return layer._properties.visible===!0?"block":"none"},opacity:function(layer){return layer._properties.opacity},webkitTransformStyle:function(layer){return layer._properties.flat?"flat":"preserve-3d"},webkitBackfaceVisibility:function(layer){return layer._properties.backfaceVisible?"visible":"hidden"},overflow:function(layer){return layer._properties.scrollHorizontal===!0||layer._properties.scrollVertical===!0?"auto":layer._properties.clip===!0?"hidden":"visible"},overflowX:function(layer){return layer._properties.scrollHorizontal===!0?"scroll":layer._properties.clip===!0?"hidden":"visible"},overflowY:function(layer){return layer._properties.scrollVertical===!0?"scroll":layer._properties.clip===!0?"hidden":"visible"},zIndex:function(layer){return layer._properties.index},webkitFilter:function(layer){var css,cssName,dpr,fallback,filter,i,layerPropertyName,len,ref,ref1,shadowStrings,unit;for(css=[],dpr=null!=(ref=layer._pixelMultiplierOverride)?ref:layer.context.pixelMultiplier,i=0,len=_WebkitProperties.length;i<len;i++)ref1=_WebkitProperties[i],cssName=ref1[0],layerPropertyName=ref1[1],fallback=ref1[2],unit=ref1[3],layer._properties.hasOwnProperty(layerPropertyName)&&layer[layerPropertyName]!==fallback&&(filter=filterFormat(cssName,layer[layerPropertyName],unit,dpr),css.push(filter));return shadowStrings=getShadowStrings(layer,"drop",function(shadow,pixelMultiplier){return"drop-shadow("+shadow.x*pixelMultiplier+"px "+shadow.y*pixelMultiplier+"px "+shadow.blur*pixelMultiplier+"px "+shadow.color+")"}),css=css.concat(shadowStrings),css.join(" ")},webkitBackdropFilter:function(layer){var css,cssName,dpr,fallback,filter,i,layerPropertyName,len,ref,ref1,unit;for(css=[],dpr=null!=(ref=layer._pixelMultiplierOverride)?ref:layer.context.pixelMultiplier,i=0,len=_BackdropProperties.length;i<len;i++)ref1=_BackdropProperties[i],cssName=ref1[0],layerPropertyName=ref1[1],fallback=ref1[2],unit=ref1[3],layer._properties.hasOwnProperty(layerPropertyName)&&layer[layerPropertyName]!==fallback&&(filter=filterFormat(cssName,layer[layerPropertyName],unit,dpr),css.push(filter));return css.join(" ")},webkitTransform:function(layer){var dpr,ref;return layer._prefer2d||layer._properties.force2d?exports.LayerStyle.webkitTransformForce2d(layer):(dpr=null!=(ref=layer._pixelMultiplierOverride)?ref:layer.context.pixelMultiplier,"translate3d( "+roundToZero(layer._properties.x*dpr)+"px, "+roundToZero(layer._properties.y*dpr)+"px, "+roundToZero(layer._properties.z*dpr)+"px) scale3d( "+roundToZero(layer._properties.scaleX*layer._properties.scale)+", "+roundToZero(layer._properties.scaleY*layer._properties.scale)+", "+roundToZero(layer._properties.scaleZ)+") skew("+roundToZero(layer._properties.skew)+"deg,"+roundToZero(layer._properties.skew)+"deg) skewX("+roundToZero(layer._properties.skewX)+"deg) skewY("+roundToZero(layer._properties.skewY)+"deg) translateZ("+roundToZero(layer._properties.originZ*dpr)+"px) rotateX("+roundToZero(layer._properties.rotationX)+"deg) rotateY("+roundToZero(layer._properties.rotationY)+"deg) rotateZ("+roundToZero(layer._properties.rotationZ)+"deg) translateZ("+roundToZero(-layer._properties.originZ*dpr)+"px)")},webkitTransformForce2d:function(layer){var css,dpr,p,ref,v;css=[];for(p in _Force2DProperties)v=_Force2DProperties[p],layer._properties[p]!==v&&console.warn("Layer property '"+p+"'' will be ignored with force2d enabled");return dpr=null!=(ref=layer._pixelMultiplierOverride)?ref:layer.context.pixelMultiplier,css.push("translate("+roundToZero(layer._properties.x*dpr)+"px,"+roundToZero(layer._properties.y*dpr)+"px)"),css.push("scale("+roundToZero(layer._properties.scaleX*layer._properties.scale)+",\t"+roundToZero(layer._properties.scaleY*layer._properties.scale)+")"),css.push("skew("+roundToZero(layer._properties.skew)+"deg,"+roundToZero(layer._properties.skew)+"deg)"),css.push("rotate("+roundToZero(layer._properties.rotationZ)+"deg)"),css.join(" ")},webkitTransformOrigin:function(layer){return 100*layer._properties.originX+"% "+100*layer._properties.originY+"%"},webkitPerspective:function(layer){var dpr,ref,ref1,value;return value=null!=(ref=Utils.webkitPerspectiveForValue(layer._properties.perspective))?ref:"",_.isNumber(value)?(dpr=null!=(ref1=layer._pixelMultiplierOverride)?ref1:layer.context.pixelMultiplier,""+value*dpr):value},webkitPerspectiveOrigin:function(layer){return 100*layer._properties.perspectiveOriginX+"% "+100*layer._properties.perspectiveOriginY+"%"},mixBlendMode:function(layer){var ref;return ref=layer._properties.blending,indexOf.call(_.values(Blending),ref)>=0?layer._properties.blending:""},pointerEvents:function(layer){return layer._properties.ignoreEvents?"none":"auto"},boxShadow:function(layer){var shadowStrings;return shadowStrings=getShadowStrings(layer,["box","inset"],function(shadow,pixelMultiplier){var insetString;return insetString="inset"===shadow.type?"inset ":"",""+insetString+shadow.x*pixelMultiplier+"px "+shadow.y*pixelMultiplier+"px "+shadow.blur*pixelMultiplier+"px "+shadow.spread*pixelMultiplier+"px "+shadow.color}),shadowStrings.join(", ")},textShadow:function(layer){var shadowStrings;return shadowStrings=getShadowStrings(layer,"text",function(shadow,pixelMultiplier){return shadow.x*pixelMultiplier+"px "+shadow.y*pixelMultiplier+"px "+shadow.blur*pixelMultiplier+"px "+shadow.color}),shadowStrings.join(", ")},backgroundColor:function(layer){return layer._properties.backgroundColor},fill:function(layer){return layer._properties.fill},strokeWidth:function(layer){var factor,ref;return factor=null!=(ref=layer.strokeWidthMultiplier)?ref:1,layer._properties.strokeWidth*factor},strokeDasharray:function(layer){return layer._properties.strokeDasharray.join(",")},color:function(layer){return layer._properties.color},borderRadius:function(layer){var dpr,radius,ref,ref1,ref2,ref3,ref4;return radius=layer._properties.borderRadius,dpr=null!=(ref=layer._pixelMultiplierOverride)?ref:layer.context.pixelMultiplier,_.isNumber(radius)?radius*dpr+"px":_.isObject(layer._properties.borderRadius)?(null!=(ref1=radius.topLeft)?ref1:0)*dpr+"px "+(null!=(ref2=radius.topRight)?ref2:0)*dpr+"px "+(null!=(ref3=radius.bottomRight)?ref3:0)*dpr+"px "+(null!=(ref4=radius.bottomLeft)?ref4:0)*dpr+"px":layer._properties.borderRadius},borderWidth:function(layer){var borderBottom,borderLeft,borderRight,borderRightLeft,borderTop,borderTopBottom,borderWidth,dpr,leftRatio,ref,ref1,ref2,ref3,ref4,ref5,ref6,topRatio;return borderWidth=layer._properties.borderWidth,dpr=null!=(ref=layer._pixelMultiplierOverride)?ref:layer.context.pixelMultiplier,_.isNumber(borderWidth)?(borderTopBottom=(null!=(ref1=Math.min(borderWidth,layer.height/2))?ref1:0)*dpr,borderRightLeft=(null!=(ref2=Math.min(borderWidth,layer.width/2))?ref2:0)*dpr,borderTopBottom+"px "+borderRightLeft+"px "+borderTopBottom+"px "+borderRightLeft+"px"):_.isObject(borderWidth)?(borderTop=null!=(ref3=borderWidth.top)?ref3:0,borderBottom=null!=(ref4=borderWidth.bottom)?ref4:0,borderLeft=null!=(ref5=borderWidth.left)?ref5:0,borderRight=null!=(ref6=borderWidth.right)?ref6:0,borderTop+borderBottom>layer.height&&(topRatio=borderTop/(borderTop+borderBottom),borderTop=Math.round(topRatio*layer.height),borderBottom=layer.height-borderTop),borderLeft+borderRight>layer.width&&(leftRatio=borderLeft/(borderLeft+borderRight),borderLeft=Math.round(leftRatio*layer.width),borderRight=layer.width-borderLeft),borderTop*dpr+"px "+borderRight*dpr+"px "+borderBottom*dpr+"px "+borderLeft*dpr+"px"):borderWidth},fontSize:function(layer){return layer._properties.fontSize+"px"},letterSpacing:function(layer){return layer._properties.letterSpacing+"px"},wordSpacing:function(layer){return layer._properties.wordSpacing+"px"},textIndent:function(layer){return layer._properties.textIndent+"px"},textAlign:function(layer){var value;return value=layer._properties.textAlign,value===Align.left?"left":value===Align.center?"center":value===Align.right?"right":value},direction:function(layer){var value;switch(value=layer._properties.direction){case"right-to-left":return"rtl";case"left-to-right":return"ltr";default:return value}},padding:function(layer){var dpr,padding,ref;return padding=Utils.rectZero(Utils.parseRect(layer.padding)),dpr=null!=(ref=layer._pixelMultiplierOverride)?ref:layer.context.pixelMultiplier,padding.top*dpr+"px "+padding.right*dpr+"px "+padding.bottom*dpr+"px "+padding.left*dpr+"px"}}},function(module,exports,__webpack_require__){var BaseClass,Defaults,Events,LayerStateMachine,LayerStates,LayerStatesIgnoredKeys,StyledText,_,deprecatedWarning,namedState,reservedStateError,indexOf=[].indexOf||function(item){for(var i=0,l=this.length;i<l;i++)if(i in this&&this[i]===item)return i;return-1},slice=[].slice;_=__webpack_require__(1)._,Events=__webpack_require__(17).Events,BaseClass=__webpack_require__(6).BaseClass,Defaults=__webpack_require__(19).Defaults,LayerStateMachine=__webpack_require__(31).LayerStateMachine,StyledText=__webpack_require__(32).StyledText,LayerStatesIgnoredKeys=["ignoreEvents","name","id"],reservedStateError=function(name){throw Error("The state '"+name+"' is a reserved name.")},deprecatedWarning=function(name,suggestion){var message;return message="layer.states."+name+" is deprecated",null!=suggestion&&(message+=", use '"+suggestion+"' instead."),console.warn(message)},namedState=function(state,name){return _.extend({},{name:name},state)},LayerStates=function(){function LayerStates(layer){var _machine;_machine=new LayerStateMachine(layer,this),Object.defineProperty(this,"machine",{enumerable:!1,configurable:!1,get:function(){return _machine},set:function(){return reservedStateError("machine")}}),this.capture("default")}var capture,methods;return LayerStates.defineReserved=function(propertyName,descriptor){return descriptor.configurable=!0,null==descriptor.enumerable&&(descriptor.enumerable=!1),null==descriptor.set&&(descriptor.set=function(){return reservedStateError(propertyName)}),Object.defineProperty(this.prototype,propertyName,descriptor)},LayerStates.defineReserved("previous",{get:function(){return namedState(this[this.machine.previousName],this.machine.previousName)}}),LayerStates.defineReserved("current",{get:function(){return namedState(this[this.machine.currentName],this.machine.currentName)}}),capture=function(name){return this[name]=LayerStates.filterStateProperties(this.machine.layer.props)},LayerStates.defineReserved("capture",{get:function(){return capture}}),LayerStates.filterStateProperties=function(properties){var k,stateProperties,v;stateProperties={};for(k in properties)v=properties[k],indexOf.call(LayerStatesIgnoredKeys,k)>=0||(Color.isValidColorProperty(k,v)?stateProperties[k]=new Color(v):Gradient.isGradient(v)?stateProperties[k]=v:this._isValidProperty(k,v)&&(stateProperties[k]=v));return stateProperties},LayerStates._isValidProperty=function(k,v){var ref;return!!_.isNumber(v)||(!!_.isFunction(v)||(!!_.isBoolean(v)||(!!_.isString(v)||(!!Color.isColorObject(v)||(!!Gradient.isGradient(v)||(null===v||("Layer"===(null!=v&&null!=(ref=v.constructor)?ref.name:void 0)||("template"===k||"shadows"===k))))))))},methods={add:function(states,object){return null==object&&(object={}),deprecatedWarning("add","layer.states = "),_.isString(states)?this[states]=object:this.machine.layer.states=states},remove:function(stateName){return deprecatedWarning("remove","delete layer.states.a"),delete this[stateName]},switch:function(stateName,options){return deprecatedWarning("switch",'layer.animate("state")'),this.machine.switchTo(stateName,options)},switchInstant:function(stateName){return deprecatedWarning("switchInstant",'layer.animate("state", {instant: true})'),this.machine.switchTo(stateName,{instant:!0})},next:function(){var options;return options=1<=arguments.length?slice.call(arguments,0):[],
  deprecatedWarning("next","layer.stateCycle()"),options=_.flatten(options),this.machine.layer.stateCycle(options)}},LayerStates.defineReserved("add",{get:function(){return methods.add}}),LayerStates.defineReserved("remove",{get:function(){return methods.remove}}),LayerStates.defineReserved("switch",{get:function(){return methods.switch}}),LayerStates.defineReserved("switchInstant",{get:function(){return methods.switchInstant}}),LayerStates.defineReserved("next",{get:function(){return methods.next}}),LayerStates.defineReserved("animationOptions",{get:function(){return this.machine.layer.animationOptions},set:function(options){return this.machine.layer.animationOptions=options}}),LayerStates}(),exports.LayerStates=LayerStates},function(module,exports,__webpack_require__){var BaseClass,extend=function(child,parent){function ctor(){this.constructor=child}for(var key in parent)hasProp.call(parent,key)&&(child[key]=parent[key]);return ctor.prototype=parent.prototype,child.prototype=new ctor,child.__super__=parent.prototype,child},hasProp={}.hasOwnProperty,slice=[].slice;BaseClass=__webpack_require__(6).BaseClass,exports.LayerStateMachine=function(superClass){function LayerStateMachine(_layer,_states){this._layer=_layer,this._states=_states,LayerStateMachine.__super__.constructor.apply(this,arguments),this.reset()}return extend(LayerStateMachine,superClass),LayerStateMachine.define("layer",{get:function(){return this._layer}}),LayerStateMachine.define("current",{get:function(){return this.currentName}}),LayerStateMachine.define("previous",{get:function(){return this.previousName}}),LayerStateMachine.define("currentName",{get:function(){return this._currentName}}),LayerStateMachine.define("previousName",{get:function(){return _.last(this._previousNames)||"default"}}),LayerStateMachine.define("stateNames",{get:function(){return Object.keys(this.states)}}),LayerStateMachine.define("states",{get:function(){return this._states}}),LayerStateMachine.prototype.switchInstant=function(stateName){return this.switchTo(stateName,{instant:!0})},LayerStateMachine.prototype.switchTo=function(stateName,options){var animation,onEnd,onStart,onStop,properties,ref,startAnimation,started,stateNameA,stateNameB,stateSwitched,switchState;if(null==options&&(options={}),!this.states[stateName])throw Error("No such state: '"+stateName+"'");return"previous"===stateName&&(stateName=this.previousName),properties=_.clone(this.states[stateName]),options=_.clone(options),properties.animationOptions&&(options=_.defaults({},options,properties.animationOptions)),delete properties.animationOptions,stateNameA=this.currentName,stateNameB=stateName,startAnimation=null==(ref=options.start)||ref,options.start=!1,animation=this.layer.animate(properties,options),stateSwitched=!1,switchState=function(_this){return function(){if(!stateSwitched)return stateSwitched=!0,_this._previousNames.push(stateNameA),_this._currentName=stateNameB}}(this),onStart=function(_this){return function(){return _this.emit(Events.StateSwitchStart,stateNameA,stateNameB,_this),switchState()}}(this),onStop=function(_this){return function(){return _this.emit(Events.StateSwitchStop,stateNameA,stateNameB,_this)}}(this),onEnd=function(_this){return function(){var i,instantProperties,k,len;for(instantProperties=_.difference(_.keys(properties),_.keys(animation.properties)),i=0,len=instantProperties.length;i<len;i++)k=instantProperties[i],_this.layer[k]=properties[k];return _this.emit(Events.StateSwitchEnd,stateNameA,stateNameB,_this)}}(this),animation.on(Events.AnimationStart,onStart),animation.on(Events.AnimationStop,onStop),animation.on(Events.AnimationEnd,onEnd),startAnimation&&(started=animation.start(),started||(onStart(),onStop(),onEnd())),switchState(),animation},LayerStateMachine.prototype.next=function(states){return states.length||(states=this.stateNames),Utils.arrayNext(states,this.currentName)},LayerStateMachine.prototype.emit=function(){var args,ref;return args=1<=arguments.length?slice.call(arguments,0):[],LayerStateMachine.__super__.emit.apply(this,arguments),(ref=this._layer).emit.apply(ref,args)},LayerStateMachine.prototype.reset=function(){var i,k,len,ref;for(ref=_.keys(this.states),i=0,len=ref.length;i<len;i++)k=ref[i],"default"!==k&&delete this.states[k];return this._previousNames=[],this._currentName="default"},LayerStateMachine.prototype.toInspect=function(constructor){return"<"+this.constructor.name+" id:"+this.id+" layer:"+this.layer.id+" current:'"+this.currentName+"'>"},LayerStateMachine}(BaseClass)},function(module,exports){var InlineStyle,StyledTextBlock,_measureElement,getMeasureElement;_measureElement=null,getMeasureElement=function(constraints){var shouldCreateElement;for(null==constraints&&(constraints={}),shouldCreateElement=!_measureElement,shouldCreateElement&&(_measureElement=document.createElement("div"),_measureElement.id="_measureElement",_measureElement.style.position="fixed",_measureElement.style.visibility="hidden",_measureElement.style.top="-10000px",_measureElement.style.left="-10000px",window.document.body?window.document.body.appendChild(_measureElement):(document.write(_measureElement.outerHTML),_measureElement=document.getElementById("_measureElement")));_measureElement.hasChildNodes();)_measureElement.removeChild(_measureElement.lastChild);return _measureElement.style.width="10000px",constraints.max?(constraints.width&&(_measureElement.style.maxWidth=constraints.width+"px"),constraints.height&&(_measureElement.style.maxHeight=constraints.height+"px")):(constraints.width&&(_measureElement.style.width=constraints.width+"px"),constraints.height&&(_measureElement.style.height=constraints.height+"px")),_measureElement},InlineStyle=function(){function InlineStyle(configuration,text){_.isString(configuration)?(this.text=configuration,this.startIndex=0,this.endIndex=this.text.length,this.css=text):(this.startIndex=configuration.startIndex,this.endIndex=configuration.endIndex,this.css=configuration.css,this.text=text.substring(this.startIndex,this.endIndex))}return InlineStyle.prototype.startIndex=0,InlineStyle.prototype.endIndex=0,InlineStyle.prototype.css=null,InlineStyle.prototype.text="",InlineStyle.prototype.element=null,InlineStyle.prototype.copy=function(){var c;return c=new InlineStyle(this.text,this.css),c.startIndex=this.startIndex,c.endIndex=this.endIndex,c},InlineStyle.prototype.getOptions=function(){return{startIndex:this.startIndex,endIndex:this.endIndex,css:_.clone(this.css)}},InlineStyle.prototype.createElement=function(maybeLineBreak){var prop,ref,span,value;span=document.createElement("span"),ref=this.css;for(prop in ref)value=ref[prop],span.style[prop]=value;return""===this.text&&maybeLineBreak?span.innerHTML="<br/>":span.textContent=this.text,span},InlineStyle.prototype.setText=function(text){return this.text=text,this.endIndex=this.startIndex+text.length},InlineStyle.prototype.resetStyle=function(style){if(delete this.css[style],"color"===style)return delete this.css.WebkitTextFillColor},InlineStyle.prototype.setStyle=function(style,value){var ref;return this.css[style]=value,null!=(ref=this.element)?ref.style[style]=value:void 0},InlineStyle.prototype.getStyle=function(style){var ref;return"color"===style?null!=(ref=this.css.color)?ref:this.css.WebkitTextFillColor:this.css[style]},InlineStyle.prototype.measure=function(){var rect,size;return rect=this.element.getBoundingClientRect(),size={width:rect.right-rect.left,height:rect.bottom-rect.top}},InlineStyle.prototype.replaceText=function(search,replace){var regex;if(regex=null,_.isString(search)?regex=new RegExp(Utils.escapeForRegex(search),"g"):search instanceof RegExp&&(regex=search),null!=regex)return this.text=this.text.replace(regex,replace),this.endIndex=this.startIndex+this.text.length},InlineStyle.prototype.addRangesFrom=function(regex,block,inline,templateRanges){var m,name,text;for(text=this.text,regex.lastIndex=0;;){if(m=regex.exec(text),!m)return;if(name=m[1],!name)return;templateRanges[name]||(templateRanges[name]={block:block,inline:inline,start:m.index,length:m[0].length,name:name})}},InlineStyle.prototype.replaceRange=function(start,length,text){return this.text=this.text.slice(0,start)+text+this.text.slice(start+length),this.endIndex=this.startIndex+this.text.length},InlineStyle.prototype.validate=function(){return this.startIndex!==this.endIndex&&this.endIndex===this.startIndex+this.text.length},InlineStyle}(),StyledTextBlock=function(){function StyledTextBlock(configuration){var inlineStyle,text;if(text=configuration.text,this.text=text,null!=configuration.inlineStyles)this.inlineStyles=configuration.inlineStyles.map(function(i){return new InlineStyle(i,text)});else{if(null==configuration.css)throw new Error("Should specify inlineStyles or css");inlineStyle=new InlineStyle(this.text,configuration.css),this.inlineStyles=[inlineStyle]}}return StyledTextBlock.prototype.text="",StyledTextBlock.prototype.inlineStyles=[],StyledTextBlock.prototype.element=null,StyledTextBlock.prototype.copy=function(){var c;return c=new StyledTextBlock({text:this.text,inlineStyles:[]}),c.inlineStyles=this.inlineStyles.map(function(inline){return inline.copy()}),c},StyledTextBlock.prototype.getOptions=function(){return{text:this.text,inlineStyles:this.inlineStyles.map(function(i){return i.getOptions()})}},StyledTextBlock.prototype.createElement=function(){var div,j,len,maybeLineBreak,ref,span,style;for(div=document.createElement("div"),div.style.fontSize="1px",div.style.webkitFontSmoothing="antialiased",maybeLineBreak=1===this.inlineStyles.length,ref=this.inlineStyles,j=0,len=ref.length;j<len;j++)style=ref[j],span=style.createElement(maybeLineBreak),style.element=span,div.appendChild(span);return div},StyledTextBlock.prototype.measure=function(){var j,len,rect,ref,size,style,totalWidth;for(totalWidth=0,ref=this.inlineStyles,j=0,len=ref.length;j<len;j++)style=ref[j],totalWidth+=style.measure().width;return rect=this.element.getBoundingClientRect(),size={width:totalWidth,height:rect.bottom-rect.top}},StyledTextBlock.prototype.clone=function(){return new StyledTextBlock({text:"",css:_.clone(_.first(this.inlineStyles).css)})},StyledTextBlock.prototype.setText=function(text){var firstStyle;return this.text=text,firstStyle=_.first(this.inlineStyles),firstStyle.setText(text),this.inlineStyles=[firstStyle]},StyledTextBlock.prototype.setTextOverflow=function(textOverflow,maxLines){var multiLineOverflow;return null==maxLines&&(maxLines=1),"ellipsis"===textOverflow||"clip"===textOverflow?(this.setStyle("overflow","hidden"),multiLineOverflow="ellipsis"===textOverflow,multiLineOverflow?(this.setStyle("WebkitLineClamp",maxLines),this.setStyle("WebkitBoxOrient","vertical"),this.setStyle("display","-webkit-box")):(this.resetStyle("WebkitLineClamp"),this.resetStyle("WebkitBoxOrient"),this.setStyle("display","block"),this.setStyle("whiteSpace","nowrap"),this.setStyle("textOverflow",textOverflow))):(this.resetStyle("whiteSpace"),this.resetStyle("textOverflow"),this.resetStyle("display"),this.resetStyle("overflow"),this.resetStyle("WebkitLineClamp"),this.resetStyle("WebkitBoxOrient"))},StyledTextBlock.prototype.resetStyle=function(style){return this.inlineStyles.map(function(inlineStyle){return inlineStyle.resetStyle(style)})},StyledTextBlock.prototype.setStyle=function(style,value){return this.inlineStyles.map(function(inlineStyle){return inlineStyle.setStyle(style,value)})},StyledTextBlock.prototype.getStyle=function(style){return _.first(this.inlineStyles).getStyle(style)},StyledTextBlock.prototype.getFonts=function(){var font,fonts,j,len,ref,style;for(fonts=[],ref=this.inlineStyles,j=0,len=ref.length;j<len;j++)style=ref[j],font=style.getStyle("fontFamily"),null!=font&&fonts.push(font);return fonts},StyledTextBlock.prototype.replaceText=function(search,replace){var currentIndex,j,len,newText,ref,style;for(currentIndex=0,ref=this.inlineStyles,j=0,len=ref.length;j<len;j++)style=ref[j],style.startIndex=currentIndex,style.replaceText(search,replace),currentIndex=style.endIndex;return newText=this.inlineStyles.map(function(i){return i.text}).join(""),this.text=newText,newText!==this.text},StyledTextBlock.prototype.addRangesFrom=function(regex,block,templateRanges){return this.inlineStyles.forEach(function(inline,index){return inline.addRangesFrom(regex,block,index,templateRanges)})},StyledTextBlock.prototype.replaceRange=function(inline,start,length,text){var currentIndex,index,j,len,newText,ref,style;for(currentIndex=0,ref=this.inlineStyles,index=j=0,len=ref.length;j<len;index=++j)style=ref[index],style.startIndex=currentIndex,index===inline&&style.replaceRange(start,length,text),currentIndex+=style.text.length,style.endIndex=currentIndex;return newText=this.inlineStyles.map(function(i){return i.text}).join(""),this.text=newText},StyledTextBlock.prototype.validate=function(){var combinedText,currentIndex,j,len,ref,style;for(combinedText="",currentIndex=0,ref=this.inlineStyles,j=0,len=ref.length;j<len;j++){if(style=ref[j],currentIndex!==style.startIndex)return!1;if(!style.validate())return!1;currentIndex=style.endIndex,combinedText+=style.text}return this.text===combinedText},StyledTextBlock}(),exports.StyledText=function(){function StyledText(configuration){var ref;this.textAlign=null!=(ref=null!=configuration?configuration.alignment:void 0)?ref:"left",null!=(null!=configuration?configuration.blocks:void 0)?this.blocks=configuration.blocks.map(function(b){return new StyledTextBlock(b)}):this.blocks=[]}return StyledText.prototype.blocks=null,StyledText.prototype.textAlign=null,StyledText.prototype.element=null,StyledText.prototype.autoWidth=!1,StyledText.prototype.autoHeight=!1,StyledText.prototype.textOverflow=null,StyledText.defaultStyles={fontStyle:"normal",fontVariantCaps:"normal",fontWeight:"normal",fontSize:"16px",lineHeight:"normal",fontFamily:"-apple-system, BlinkMacSystemFont",outline:"none",whiteSpace:"pre-wrap",wordWrap:"break-word"},StyledText.prototype.getOptions=function(){return{blocks:this.blocks.map(function(b){return b.getOptions()}),alignment:this.textAlign}},StyledText.isStyledText=function(styledText){return null!=(null!=styledText?styledText.blocks:void 0)&&null!=(null!=styledText?styledText.alignment:void 0)&&_.isArray(styledText.blocks)&&_.isString(styledText.alignment)},StyledText.prototype.setElement=function(element){var ref,style,value;if(null!=element){this.element=element,ref=StyledText.defaultStyles;for(style in ref)value=ref[style],this.element.style[style]||(this.element.style[style]=value);return null==this.textAlign||this.element.style.textAlign?void 0:this.element.style.textAlign=this.textAlign}},StyledText.prototype.render=function(){var block,blockDiv,j,len,ref,results;if(null!=this.element){for(;this.element.hasChildNodes();)this.element.removeChild(this.element.lastChild);for(ref=this.blocks,results=[],j=0,len=ref.length;j<len;j++)block=ref[j],blockDiv=block.createElement(),block.element=blockDiv,results.push(this.element.appendChild(blockDiv));return results}},StyledText.prototype.addBlock=function(text,css){var block;return null==css&&(css=null),null!=css?block=new StyledTextBlock({text:text,css:css}):this.blocks.length>0?(block=_.last(this.blocks).clone(),block.setText(text)):block=new StyledTextBlock({text:text,css:{}}),this.blocks.push(block)},StyledText.prototype.getText=function(){return this.blocks.map(function(b){return b.text}).join("\n")},StyledText.prototype.setText=function(text){var block,index,j,len,results,value,values;for(values=text.split("\n"),this.blocks=this.blocks.slice(0,values.length),results=[],index=j=0,len=values.length;j<len;index=++j)value=values[index],null!=this.blocks[index]?(block=this.blocks[index],results.push(block.setText(value))):results.push(this.addBlock(value));return results},StyledText.prototype.setTextOverflow=function(textOverflow){return this.textOverflow=textOverflow},StyledText.prototype.setStyle=function(style,value){return this.blocks.map(function(block){return block.setStyle(style,value)})},StyledText.prototype.resetStyle=function(style){return this.blocks.map(function(block){return block.resetStyle(style)})},StyledText.prototype.getStyle=function(style,block){var ref,ref1,ref2;return null==block&&(block=null),null!=(ref=null!=(ref1=null!=block?block:_.first(this.blocks))?ref1.getStyle(style):void 0)?ref:null!=(ref2=this.element)?ref2.style[style]:void 0},StyledText.prototype.getFonts=function(){var block,elementFont,fonts,j,len,ref,ref1;for(fonts=[],elementFont=null!=(ref=this.element)?ref.style.fontFamily:void 0,null!=elementFont&&fonts.push(elementFont),ref1=this.blocks,j=0,len=ref1.length;j<len;j++)block=ref1[j],fonts=fonts.concat(block.getFonts());return _.uniq(fonts)},StyledText.prototype.measure=function(currentSize){var availableHeight,block,constrainedHeight,constraints,fontSize,j,len,lineHeight,m,measuredHeight,measuredWidth,parent,ref,ref1,result,size,visibleLines;for(constraints={},constraints.width=currentSize.width*currentSize.multiplier,constraints.height=currentSize.height*currentSize.multiplier,m=getMeasureElement(constraints),measuredWidth=0,measuredHeight=0,parent=this.element.parentNode,m.appendChild(this.element),ref=this.blocks,j=0,len=ref.length;j<len;j++)block=ref[j],size=block.measure(),measuredWidth=Math.max(measuredWidth,size.width),constrainedHeight=null!=constraints.height?constraints.height/currentSize.multiplier:null,!this.autoWidth&&null!=this.textOverflow&&("clip"===(ref1=this.textOverflow)||"ellipsis"===ref1)&&null!=constrainedHeight&&measuredHeight+size.height>constrainedHeight?(fontSize=parseFloat(this.getStyle("fontSize",block)),lineHeight=parseFloat(this.getStyle("lineHeight",block)),availableHeight=constrainedHeight-measuredHeight,availableHeight>0?(visibleLines=Math.max(1,Math.floor(availableHeight/(fontSize*lineHeight))),block.setTextOverflow(this.textOverflow,visibleLines)):block.setStyle("visibility","hidden"),size.height=availableHeight):block.setTextOverflow(null),measuredHeight+=size.height;return m.removeChild(this.element),null!=parent&&parent.appendChild(this.element),result={},this.autoWidth&&(result.width=Math.ceil(measuredWidth)),this.autoHeight&&(result.height=Math.ceil(measuredHeight)),result},StyledText.prototype.textReplace=function(search,replace){return this.blocks.map(function(b){return b.replaceText(search,replace)})},StyledText.prototype.buildTemplate=function(){var firstRange,regex,templateRanges;return this._templateRanges?this._firstTemplateName:(regex=/\{\s*(\w+)\s*\}/g,templateRanges={},this.blocks.forEach(function(b,index){return b.addRangesFrom(regex,index,templateRanges)}),this._templateRanges=Object.keys(templateRanges).map(function(k){return templateRanges[k]}).sort(function(l,r){var b,i;return b=r.block-l.block,0!==b?b:(i=r.inline-l.inline,0!==i?i:r.start-l.start)}),firstRange=this._templateRanges[this._templateRanges.length-1],this._firstTemplateName=firstRange?firstRange.name:null,this._templateBlocks=this.blocks.map(function(b){return b.copy()}),this._firstTemplateName)},StyledText.prototype.template=function(data){var block,j,len,range,ref,results,text;for(this.blocks=this._templateBlocks.map(function(b){return b.copy()}),ref=this._templateRanges,results=[],j=0,len=ref.length;j<len;j++)range=ref[j],text=data[range.name],null!=text&&(_.isFunction(range.formatter)&&(text=range.formatter.call(this,text)),block=this.blocks[range.block],results.push(block.replaceRange(range.inline,range.start,range.length,text)));return results},StyledText.prototype.templateFormatter=function(data){var formatter,j,len,range,ref,results;for(ref=this._templateRanges,results=[],j=0,len=ref.length;j<len;j++)range=ref[j],formatter=data[range.name],null!=formatter&&results.push(range.formatter=formatter);return results},StyledText.prototype.validate=function(){var block,j,len,ref;for(ref=this.blocks,j=0,len=ref.length;j<len;j++)if(block=ref[j],!block.validate())return!1;return!0},StyledText}()},function(module,exports,__webpack_require__){var BaseClass,Defaults,EventBuffer,Events,Gestures,Simulation,Utils,_,bind=function(fn,me){return function(){return fn.apply(me,arguments)}},extend=function(child,parent){function ctor(){this.constructor=child}for(var key in parent)hasProp.call(parent,key)&&(child[key]=parent[key]);return ctor.prototype=parent.prototype,child.prototype=new ctor,child.__super__=parent.prototype,child},hasProp={}.hasOwnProperty;_=__webpack_require__(1)._,Utils=__webpack_require__(4),BaseClass=__webpack_require__(6).BaseClass,Events=__webpack_require__(17).Events,Simulation=__webpack_require__(34).Simulation,Defaults=__webpack_require__(19).Defaults,EventBuffer=__webpack_require__(39).EventBuffer,Gestures=__webpack_require__(18).Gestures,Events.Move="move",Events.DragStart="dragstart",Events.DragWillMove="dragwillmove",Events.DragMove="dragmove",Events.DragDidMove="dragmove",Events.Drag="dragmove",Events.DragEnd="dragend",Events.DragAnimationStart="draganimationstart",Events.DragAnimationEnd="draganimationend",Events.DirectionLockStart="directionlockstart",Events.DragSessionStart="dragsessionstart",Events.DragSessionMove="dragsessionmove",Events.DragSessionEnd="dragsessionend",Events.DragAnimationDidStart=Events.DragAnimationStart,Events.DragAnimationDidEnd=Events.DragAnimationEnd,Events.DirectionLockDidStart=Events.DirectionLockStart,exports.LayerDraggable=function(superClass){function LayerDraggable(layer){var options;this.layer=layer,this._stopSimulation=bind(this._stopSimulation,this),this._onSimulationStop=bind(this._onSimulationStop,this),this._onSimulationStep=bind(this._onSimulationStep,this),this._panEnd=bind(this._panEnd,this),this._tapEnd=bind(this._tapEnd,this),this._panMove=bind(this._panMove,this),this._panStart=bind(this._panStart,this),this._updateLayerPosition=bind(this._updateLayerPosition,this),this.tapStart=bind(this.tapStart,this),this.touchStart=bind(this.touchStart,this),this.panStart=bind(this.panStart,this),options=Defaults.getDefaults("LayerDraggable",{}),LayerDraggable.__super__.constructor.call(this,options),_.extend(this,options),this.enabled=!0,this._eventBuffer=new EventBuffer,this._constraints=null,this._ignoreUpdateLayerPosition=!0,this.attach()}return extend(LayerDraggable,superClass),LayerDraggable._globalDidDrag=!1,LayerDraggable.define("speedX",LayerDraggable.simpleProperty("speedX",1)),LayerDraggable.define("speedY",LayerDraggable.simpleProperty("speedY",1)),LayerDraggable.define("horizontal",LayerDraggable.simpleProperty("horizontal",!0)),LayerDraggable.define("vertical",LayerDraggable.simpleProperty("vertical",!0)),LayerDraggable.define("momentumVelocityMultiplier",LayerDraggable.simpleProperty("momentumVelocityMultiplier",800)),LayerDraggable.define("directionLock",LayerDraggable.simpleProperty("directionLock",!0)),LayerDraggable.define("directionLockThreshold",LayerDraggable.simpleProperty("directionLockThreshold",{x:10,y:10})),LayerDraggable.define("propagateEvents",LayerDraggable.simpleProperty("propagateEvents",!0)),LayerDraggable.define("constraints",{get:function(){return this._constraints},set:function(value){if(value&&_.isObject(value)?(value=_.pick(value,["x","y","width","height"]),value=_.defaults(value,{x:0,y:0,width:0,height:0}),this._constraints=value):this._constraints={x:0,y:0,width:0,height:0},this._constraints)return this._updateSimulationConstraints(this._constraints)}}),LayerDraggable.define("isDragging",{get:function(){return this._isDragging||!1}}),LayerDraggable.define("isAnimating",{get:function(){return this._isAnimating||!1}}),LayerDraggable.define("isMoving",{get:function(){return this._isMoving||!1}}),LayerDraggable.define("layerStartPoint",{get:function(){return this._layerStartPoint||this.layer.point}}),LayerDraggable.define("cursorStartPoint",{get:function(){return this._cursorStartPoint||{x:0,y:0}}}),LayerDraggable.define("layerCursorOffset",{get:function(){return this._layerCursorOffset||{x:0,y:0}}}),LayerDraggable.define("offset",{get:function(){var offset;return this._correctedLayerStartPoint?offset={x:this.layer.x-this._correctedLayerStartPoint.x,y:this.layer.y-this._correctedLayerStartPoint.y}:{x:0,y:0}}}),LayerDraggable.prototype.attach=function(){return this.layer.on(Gestures.TapStart,this.tapStart),this.layer.on(Gestures.PanStart,this.panStart),this.layer.on("change:x",this._updateLayerPosition),this.layer.on("change:y",this._updateLayerPosition)},LayerDraggable.prototype.remove=function(){return this.layer.off(Gestures.TapStart,this.tapStart),this.layer.off(Gestures.PanStart,this.panStart),this.layer.off(Gestures.Pan,this._panMove),this.layer.off(Gestures.TapEnd,this._tapEnd)},LayerDraggable.prototype.updatePosition=function(point){return point},LayerDraggable.prototype.panStart=function(event){return this.touchStart(event)},LayerDraggable.prototype.touchStart=function(event){return this._panStart(event)},LayerDraggable.prototype.tapStart=function(event){var ref,ref1;if(this._isAnimating)return null!=(ref=Framer.GestureInputRecognizer)&&null!=(ref1=ref.session)&&(ref1.cancelTap=!0),this._panStart(event)},LayerDraggable.prototype._updateLayerPosition=function(){if(this._ignoreUpdateLayerPosition!==!0)return this._point=this.layer.point},LayerDraggable.prototype._panStart=function(event){var animation,i,len,properties,ref,touchEvent;for(LayerDraggable._globalDidDrag=!1,Events.wrap(document).addEventListener(Gestures.Pan,this._panMove),Events.wrap(document).addEventListener(Gestures.TapEnd,this._tapEnd),this._isMoving=this._isAnimating,ref=this.layer.animations(),i=0,len=ref.length;i<len;i++)animation=ref[i],properties=animation.properties,(properties.hasOwnProperty("x")||properties.hasOwnProperty("y"))&&animation.stop();return this._stopSimulation(),this._resetdirectionLock(),event.preventDefault(),this.propagateEvents===!1&&event.stopPropagation(),touchEvent=Events.touchEvent(event),this._eventBuffer.push({x:touchEvent.clientX,y:touchEvent.clientY,t:Date.now()}),this._layerStartPoint=this.layer.point,this._correctedLayerStartPoint=this.layer.point,this.constraints&&this.bounce&&(this._correctedLayerStartPoint=this._constrainPosition(this._correctedLayerStartPoint,this.constraints,1/this.overdragScale)),this._cursorStartPoint={x:touchEvent.clientX,y:touchEvent.clientY},this._layerCursorOffset={x:touchEvent.clientX-this._correctedLayerStartPoint.x,y:touchEvent.clientY-this._correctedLayerStartPoint.y},this._point=this._correctedLayerStartPoint,this._ignoreUpdateLayerPosition=!1,this.emit(Events.DragSessionStart,event)},LayerDraggable.prototype._panMove=function(event){var offset,point,touchEvent;if(this.enabled){if(this._point||this.touchStart(event),event.preventDefault(),this.propagateEvents===!1&&event.stopPropagation(),touchEvent=Events.touchEvent(event),this._lastEvent=touchEvent,this._eventBuffer.push({x:touchEvent.clientX,y:touchEvent.clientY,t:Date.now()}),point=_.clone(this._point),this.horizontal&&(point.x=this._point.x+event.delta.x*this.speedX*(1/this.layer.screenScaleX(!1))),this.vertical&&(point.y=this._point.y+event.delta.y*this.speedY*(1/this.layer.screenScaleY(!1))),this._point=_.clone(point),this._constraints&&(point=this._constrainPosition(point,this._constraints,this.overdragScale)),this.directionLock){if(!this._directionLockEnabledX&&!this._directionLockEnabledY)return offset=event.offset,offset.x=offset.x*this.speedX*(1/this.layer.canvasScaleX())*this.layer.scaleX*this.layer.scale,offset.y=offset.y*this.speedY*(1/this.layer.canvasScaleY())*this.layer.scaleY*this.layer.scale,void this._updatedirectionLock(offset);this._directionLockEnabledX&&(point.x=this._layerStartPoint.x),this._directionLockEnabledY&&(point.y=this._layerStartPoint.y)}return point.x===this._layerStartPoint.x&&point.y===this._layerStartPoint.y||(LayerDraggable._globalDidDrag=!0,this._isDragging||(this._isDragging=!0,this._isMoving=!0,this.emit(Events.DragStart,event))),this.isDragging&&this.emit(Events.DragWillMove,event),this.pixelAlign&&(this.horizontal&&(point.x=Math.round(point.x)),this.vertical&&(point.y=Math.round(point.y))),this._ignoreUpdateLayerPosition=!0,this.layer.point=this.updatePosition(point),this._ignoreUpdateLayerPosition=!1,this.isDragging&&(this.emit(Events.Move,this.layer.point),this.emit(Events.DragDidMove,event)),this.emit(Events.DragSessionMove,event)}},LayerDraggable.prototype._tapEnd=function(event){return this._panEnd(event)},LayerDraggable.prototype._panEnd=function(event){return LayerDraggable._globalDidDrag=!1,Events.wrap(document).removeEventListener(Gestures.Pan,this._panMove),Events.wrap(document).removeEventListener(Gestures.TapEnd,this._tapEnd),event.stopPropagation(),this.propagateEvents===!1&&event.stopPropagation(),this._startSimulation(),this.emit(Events.DragSessionEnd,event),this._isDragging&&this.emit(Events.DragEnd,event),this._isDragging=!1,this._isMoving=this._isAnimating,this._ignoreUpdateLayerPosition=!0,this._lastEvent=null,this._eventBuffer.reset()},LayerDraggable.define("constraintsOffset",{get:function(){var constrainedPoint,maxX,maxY,minX,minY,offset,point,ref;return this.constraints?(ref=this._calculateConstraints(this.constraints),minX=ref.minX,maxX=ref.maxX,minY=ref.minY,maxY=ref.maxY,point=this.layer.point,constrainedPoint={x:Utils.clamp(point.x,minX,maxX),y:Utils.clamp(point.y,minY,maxY)},offset={x:point.x-constrainedPoint.x,y:point.y-constrainedPoint.y}):{x:0,y:0}}}),LayerDraggable.define("isBeyondConstraints",{get:function(){var constraintsOffset;return constraintsOffset=this.constraintsOffset,0!==constraintsOffset.x||0!==constraintsOffset.y}}),LayerDraggable.prototype._clampAndScale=function(value,min,max,scale){return value<min&&(value=min+(value-min)*scale),value>max&&(value=max+(value-max)*scale),value},LayerDraggable.prototype._calculateConstraints=function(bounds){var constraints;return bounds?(bounds.width<this.layer.width&&(bounds.width=this.layer.width),bounds.height<this.layer.height&&(bounds.height=this.layer.height),constraints={minX:Utils.frameGetMinX(bounds),maxX:Utils.frameGetMaxX(bounds),minY:Utils.frameGetMinY(bounds),maxY:Utils.frameGetMaxY(bounds)},constraints.maxX-=this.layer.width,constraints.maxY-=this.layer.height,constraints):constraints={minX:Infinity,maxX:Infinity,minY:Infinity,maxY:Infinity}},LayerDraggable.prototype._constrainPosition=function(proposedPoint,bounds,scale){var maxX,maxY,minX,minY,point,ref;return ref=this._calculateConstraints(this._constraints),minX=ref.minX,maxX=ref.maxX,minY=ref.minY,maxY=ref.maxY,point=this.overdrag?{x:this._clampAndScale(proposedPoint.x,minX,maxX,scale),y:this._clampAndScale(proposedPoint.y,minY,maxY,scale)}:{x:Utils.clamp(proposedPoint.x,minX,maxX),y:Utils.clamp(proposedPoint.y,minY,maxY)},0!==this.speedX&&this.horizontal!==!1||(point.x=proposedPoint.x),0!==this.speedY&&this.vertical!==!1||(point.y=proposedPoint.y),point},LayerDraggable.define("velocity",{get:function(){return this.isAnimating?this._calculateSimulationVelocity():this._eventBuffer.velocity}}),LayerDraggable.define("angle",{get:function(){return this._eventBuffer.angle}}),LayerDraggable.define("direction",{get:function(){var delta,ref,velocity;return velocity=this.velocity,0===velocity.x&&0===velocity.y?(delta=null!=(ref=this._lastEvent)?ref.delta:void 0,delta?Math.abs(delta.x)>Math.abs(delta.y)?delta.x>0?"right":"left":delta.y>0?"down":"up":null):Math.abs(velocity.x)>Math.abs(velocity.y)?velocity.x>0?"right":"left":velocity.y>0?"down":"up"}}),LayerDraggable.prototype.calculateVelocity=function(){return this.velocity},LayerDraggable.prototype._calculateSimulationVelocity=function(){var velocity,xFinished,yFinished;return xFinished=this._simulation.x.finished(),yFinished=this._simulation.y.finished(),velocity={x:0,y:0},xFinished||(velocity.x=this._simulation.x.simulator.state.v/this.momentumVelocityMultiplier),yFinished||(velocity.y=this._simulation.y.simulator.state.v/this.momentumVelocityMultiplier),velocity},LayerDraggable.prototype.emit=function(eventName,event){return this.layer.emit(eventName,event),LayerDraggable.__super__.emit.call(this,eventName,event)},LayerDraggable.prototype._updatedirectionLock=function(correctedDelta){
  if(this._directionLockEnabledX=Math.abs(correctedDelta.y)>this.directionLockThreshold.y,this._directionLockEnabledY=Math.abs(correctedDelta.x)>this.directionLockThreshold.x,this._directionLockEnabledX||this._directionLockEnabledY)return this.emit(Events.DirectionLockStart,{x:this._directionLockEnabledX,y:this._directionLockEnabledY})},LayerDraggable.prototype._resetdirectionLock=function(){return this._directionLockEnabledX=!1,this._directionLockEnabledY=!1},LayerDraggable.prototype._setupSimulation=function(){if(!this._simulation)return this._simulation={x:this._setupSimulationForAxis("x"),y:this._setupSimulationForAxis("y")},this._updateSimulationConstraints(this.constraints)},LayerDraggable.prototype._setupSimulationForAxis=function(axis){var properties,simulation;return properties={},properties[axis]=!0,simulation=new Simulation({layer:this.layer,properties:properties,model:"inertial-scroll",modelOptions:{momentum:this.momentumOptions,bounce:this.bounceOptions}}),simulation.on(Events.SimulationStep,function(_this){return function(state){return _this._onSimulationStep(axis,state)}}(this)),simulation.on(Events.SimulationStop,function(_this){return function(state){return _this._onSimulationStop(axis,state)}}(this)),simulation},LayerDraggable.prototype._updateSimulationConstraints=function(constraints){var maxX,maxY,minX,minY,ref;if(this._simulation)return constraints?(ref=this._calculateConstraints(this._constraints),minX=ref.minX,maxX=ref.maxX,minY=ref.minY,maxY=ref.maxY,this._simulation.x.simulator.options={min:minX,max:maxX},this._simulation.y.simulator.options={min:minY,max:maxY}):(this._simulation.x.simulator.options={min:-Infinity,max:Infinity},this._simulation.y.simulator.options={min:-Infinity,max:Infinity})},LayerDraggable.prototype._onSimulationStep=function(axis,state){var delta,maxX,maxY,minX,minY,ref,updatePoint;if(!("x"===axis&&this.horizontal===!1||"y"===axis&&this.vertical===!1))return this.constraints?this.bounce?delta=state.x-this.layer[axis]:(ref=this._calculateConstraints(this._constraints),minX=ref.minX,maxX=ref.maxX,minY=ref.minY,maxY=ref.maxY,"x"===axis&&(delta=Utils.clamp(state.x,minX,maxX)-this.layer[axis]),"y"===axis&&(delta=Utils.clamp(state.x,minY,maxY)-this.layer[axis])):delta=state.x-this.layer[axis],updatePoint=this.layer.point,"x"===axis&&(updatePoint[axis]=updatePoint[axis]+delta),"y"===axis&&(updatePoint[axis]=updatePoint[axis]+delta),this.updatePosition(updatePoint),this.layer[axis]=this.updatePosition(updatePoint)[axis],this.emit(Events.Move,this.layer.point)},LayerDraggable.prototype._onSimulationStop=function(axis,state){if(("x"!==axis||this.horizontal!==!1)&&("y"!==axis||this.vertical!==!1)&&this._simulation)return this.pixelAlign&&(this.layer[axis]=Math.round(this.layer[axis])),this._simulation.x.finished()&&this._simulation.y.finished()?this._stopSimulation():void 0},LayerDraggable.prototype._startSimulation=function(){var maxX,maxY,minX,minY,ref,startSimulationX,startSimulationY,velocity,velocityX,velocityY;if((this.momentum||this.bounce)&&!(this.isBeyondConstraints===!1&&this.momentum===!1||this.isBeyondConstraints===!1&&this.isDragging===!1||(ref=this._calculateConstraints(this._constraints),minX=ref.minX,maxX=ref.maxX,minY=ref.minY,maxY=ref.maxY,startSimulationX=this.overdrag===!0||this.layer.x>minX&&this.layer.x<maxX,startSimulationY=this.overdrag===!0||this.layer.y>minY&&this.layer.y<maxY,startSimulationX===startSimulationY&&startSimulationY===!1)))return velocity=this.velocity,velocityX=velocity.x*this.momentumVelocityMultiplier*this.speedX*(1/this.layer.canvasScaleX())*this.layer.scaleX*this.layer.scale,velocityY=velocity.y*this.momentumVelocityMultiplier*this.speedY*(1/this.layer.canvasScaleY())*this.layer.scaleY*this.layer.scale,this._setupSimulation(),this._isAnimating=!0,this._isMoving=!0,this._simulation.x.simulator.setState({x:this.layer.x,v:velocityX}),startSimulationX&&this._simulation.x.start(),this._simulation.y.simulator.setState({x:this.layer.y,v:velocityY}),startSimulationY&&this._simulation.y.start(),this.emit(Events.DragAnimationStart)},LayerDraggable.prototype._stopSimulation=function(){var ref,ref1;if(this._isMoving&&this.emit(Events.Move,this.layer.point),this._isAnimating=!1,this._isMoving=!1,this._simulation)return null!=(ref=this._simulation)&&ref.x.stop(),null!=(ref1=this._simulation)&&ref1.y.stop(),this._simulation=null,this.emit(Events.DragAnimationEnd)},LayerDraggable.prototype.animateStop=function(){return this._stopSimulation()},LayerDraggable.prototype.onMove=function(cb){return this.on(Events.Move,cb)},LayerDraggable.prototype.onDragStart=function(cb){return this.on(Events.DragStart,cb)},LayerDraggable.prototype.onDragWillMove=function(cb){return this.on(Events.DragWillMove,cb)},LayerDraggable.prototype.onDragMove=function(cb){return this.on(Events.DragMove,cb)},LayerDraggable.prototype.onDragDidMove=function(cb){return this.on(Events.DragDidMove,cb)},LayerDraggable.prototype.onDrag=function(cb){return this.on(Events.Drag,cb)},LayerDraggable.prototype.onDragEnd=function(cb){return this.on(Events.DragEnd,cb)},LayerDraggable.prototype.onDragAnimationStart=function(cb){return this.on(Events.DragAnimationStart,cb)},LayerDraggable.prototype.onDragAnimationEnd=function(cb){return this.on(Events.DragAnimationEnd,cb)},LayerDraggable.prototype.onDirectionLockStart=function(cb){return this.on(Events.DirectionLockStart,cb)},LayerDraggable}(BaseClass)},function(module,exports,__webpack_require__){var BaseClass,Config,Defaults,Events,FrictionSimulator,MomentumBounceSimulator,SimulatorClasses,SpringSimulator,Utils,_,bind=function(fn,me){return function(){return fn.apply(me,arguments)}},extend=function(child,parent){function ctor(){this.constructor=child}for(var key in parent)hasProp.call(parent,key)&&(child[key]=parent[key]);return ctor.prototype=parent.prototype,child.prototype=new ctor,child.__super__=parent.prototype,child},hasProp={}.hasOwnProperty,indexOf=[].indexOf||function(item){for(var i=0,l=this.length;i<l;i++)if(i in this&&this[i]===item)return i;return-1};_=__webpack_require__(1)._,Utils=__webpack_require__(4),Config=__webpack_require__(16).Config,Defaults=__webpack_require__(19).Defaults,BaseClass=__webpack_require__(6).BaseClass,Events=__webpack_require__(17).Events,SpringSimulator=__webpack_require__(35).SpringSimulator,FrictionSimulator=__webpack_require__(37).FrictionSimulator,MomentumBounceSimulator=__webpack_require__(38).MomentumBounceSimulator,Events.SimulationStart="simulationStart",Events.SimulationStep="simulationStep",Events.SimulationStop="simulationStop",SimulatorClasses={spring:SpringSimulator,friction:FrictionSimulator,"inertial-scroll":MomentumBounceSimulator},exports.Simulation=function(superClass){function Simulation(options){var SimulatorClass;null==options&&(options={}),this._update=bind(this._update,this),this._start=bind(this._start,this),this.start=bind(this.start,this),Simulation.__super__.constructor.call(this,options),this.options=_.defaults(options,{layer:null,properties:{},model:"spring",modelOptions:{},delay:0,debug:!1}),this.layer=this.options.layer,this.properties=this.options.properties,this._running=!1,SimulatorClass=SimulatorClasses[this.options.model]||SpringSimulator,this._simulator=new SimulatorClass(this.options.modelOptions)}return extend(Simulation,superClass),Simulation.prototype.animatingProperties=function(){return _.keys(this.properties)},Simulation.prototype.start=function(){var animatingProperties,animation,property,ref;null===this.layer&&console.error("Simulation: missing layer"),this.options.debug&&console.log("Simulation.start "+this._simulator.constructor.name,this.options.modelOptions),animatingProperties=this.animatingProperties(),ref=this.layer.animatingProperties();for(property in ref)animation=ref[property],indexOf.call(animatingProperties,property)>=0&&animation.stop();return this.options.delay?Utils.delay(this.options.delay,this._start):this._start(),!0},Simulation.prototype.stop=function(emit){if(null==emit&&(emit=!0),this._running)return this._running=!1,this.layer.context.removeAnimation(this),emit&&this.emit(Events.SimulationStop),Framer.Loop.off("update",this._update)},Simulation.prototype.emit=function(event){return Simulation.__super__.emit.apply(this,arguments),this.layer.emit(event,this)},Simulation.prototype._start=function(){if(!this._running)return this._running=!0,this.layer.context.addAnimation(this),this.emit(Events.SimulationStart),Framer.Loop.on("update",this._update)},Simulation.prototype._update=function(delta){var emit,result;return this._simulator.finished()?(this.stop(emit=!1),this.emit("end"),this.emit(Events.SimulationStop)):(result=this._simulator.next(delta),this.emit(Events.SimulationStep,result,delta))},Simulation.define("simulator",{get:function(){return this._simulator}}),Simulation.prototype.finished=function(){return this._simulator.finished()},Simulation}(BaseClass)},function(module,exports,__webpack_require__){var Defaults,Integrator,Simulator,Utils,bind=function(fn,me){return function(){return fn.apply(me,arguments)}},extend=function(child,parent){function ctor(){this.constructor=child}for(var key in parent)hasProp.call(parent,key)&&(child[key]=parent[key]);return ctor.prototype=parent.prototype,child.prototype=new ctor,child.__super__=parent.prototype,child},hasProp={}.hasOwnProperty;Utils=__webpack_require__(4),Defaults=__webpack_require__(19).Defaults,Simulator=__webpack_require__(36).Simulator,Integrator=__webpack_require__(28).Integrator,exports.SpringSimulator=function(superClass){function SpringSimulator(){return this.finished=bind(this.finished,this),SpringSimulator.__super__.constructor.apply(this,arguments)}return extend(SpringSimulator,superClass),SpringSimulator.prototype.setup=function(options){return this.options=Defaults.getDefaults("SpringSimulator",options),this.options=_.defaults(options,{velocity:0,position:0,offset:0}),this._state={x:this.options.position,v:this.options.velocity},this._integrator=new Integrator(function(_this){return function(state){return-_this.options.tension*state.x-_this.options.friction*state.v}}(this))},SpringSimulator.prototype.next=function(delta){return this._state=this._integrator.integrateState(this._state,delta),this.getState()},SpringSimulator.prototype.finished=function(){var positionNearZero,velocityNearZero;return positionNearZero=Math.abs(this._state.x)<this.options.tolerance,velocityNearZero=Math.abs(this._state.v)<this.options.tolerance,positionNearZero&&velocityNearZero},SpringSimulator.prototype.setState=function(state){return this._state={x:state.x-this.options.offset,v:state.v}},SpringSimulator.prototype.getState=function(){var state;return state={x:this._state.x+this.options.offset,v:this._state.v}},SpringSimulator}(Simulator)},function(module,exports,__webpack_require__){var BaseClass,Config,Utils,_,extend=function(child,parent){function ctor(){this.constructor=child}for(var key in parent)hasProp.call(parent,key)&&(child[key]=parent[key]);return ctor.prototype=parent.prototype,child.prototype=new ctor,child.__super__=parent.prototype,child},hasProp={}.hasOwnProperty;Utils=__webpack_require__(4),_=__webpack_require__(1)._,Config=__webpack_require__(16).Config,BaseClass=__webpack_require__(6).BaseClass,exports.Simulator=function(superClass){function Simulator(options){null==options&&(options={}),this._state={x:0,v:0},this.options=null,this.setup(options)}return extend(Simulator,superClass),Simulator.define("state",{get:function(){return _.clone(this._state)},set:function(state){return this._state=_.clone(state)}}),Simulator.prototype.setup=function(options){throw Error("Not implemented")},Simulator.prototype.next=function(delta){throw Error("Not implemented")},Simulator.prototype.finished=function(){throw Error("Not implemented")},Simulator.prototype.setState=function(state){return this._state=state},Simulator}(BaseClass)},function(module,exports,__webpack_require__){var Defaults,Integrator,Simulator,Utils,bind=function(fn,me){return function(){return fn.apply(me,arguments)}},extend=function(child,parent){function ctor(){this.constructor=child}for(var key in parent)hasProp.call(parent,key)&&(child[key]=parent[key]);return ctor.prototype=parent.prototype,child.prototype=new ctor,child.__super__=parent.prototype,child},hasProp={}.hasOwnProperty;Utils=__webpack_require__(4),Defaults=__webpack_require__(19).Defaults,Simulator=__webpack_require__(36).Simulator,Integrator=__webpack_require__(28).Integrator,exports.FrictionSimulator=function(superClass){function FrictionSimulator(){return this.finished=bind(this.finished,this),FrictionSimulator.__super__.constructor.apply(this,arguments)}return extend(FrictionSimulator,superClass),FrictionSimulator.prototype.setup=function(options){return this.options=Defaults.getDefaults("FrictionSimulator",options),this.options=_.defaults(options,{velocity:0,position:0}),this._state={x:this.options.position,v:this.options.velocity},this._integrator=new Integrator(function(_this){return function(state){return-(_this.options.friction*state.v)}}(this))},FrictionSimulator.prototype.next=function(delta){return this._state=this._integrator.integrateState(this._state,delta),this._state},FrictionSimulator.prototype.finished=function(){return Math.abs(this._state.v)<this.options.tolerance},FrictionSimulator}(Simulator)},function(module,exports,__webpack_require__){var Defaults,FrictionSimulator,Simulator,SpringSimulator,Utils,bind=function(fn,me){return function(){return fn.apply(me,arguments)}},extend=function(child,parent){function ctor(){this.constructor=child}for(var key in parent)hasProp.call(parent,key)&&(child[key]=parent[key]);return ctor.prototype=parent.prototype,child.prototype=new ctor,child.__super__=parent.prototype,child},hasProp={}.hasOwnProperty;Utils=__webpack_require__(4),Defaults=__webpack_require__(19).Defaults,Simulator=__webpack_require__(36).Simulator,SpringSimulator=__webpack_require__(35).SpringSimulator,FrictionSimulator=__webpack_require__(37).FrictionSimulator,exports.MomentumBounceSimulator=function(superClass){function MomentumBounceSimulator(){return this.finished=bind(this.finished,this),MomentumBounceSimulator.__super__.constructor.apply(this,arguments)}return extend(MomentumBounceSimulator,superClass),MomentumBounceSimulator.prototype.setup=function(options){return this.options=Defaults.getDefaults("MomentumBounceSimulator",options),this.options=_.defaults(options,{velocity:0,position:0,min:0,max:0}),this._frictionSimulator=new FrictionSimulator({friction:this.options.momentum.friction,tolerance:this.options.momentum.tolerance,velocity:this.options.velocity,position:this.options.position}),this._springSimulator=new SpringSimulator({tension:this.options.bounce.tension,friction:this.options.bounce.friction,tolerance:this.options.bounce.tolerance,velocity:this.options.velocity,position:this.options.position}),this._state={x:this.options.position,v:this.options.velocity},this._useSpring=!1},MomentumBounceSimulator.prototype.next=function(delta){return this._useSpring?this._state=this._springSimulator.next(delta):(this._state=this._frictionSimulator.next(delta),this._tryTransitionToSpring(this._state)),this._state},MomentumBounceSimulator.prototype.finished=function(){return this._useSpring?this._springSimulator.finished():this._frictionSimulator.finished()},MomentumBounceSimulator.prototype.setState=function(state){var bound;return this._state={x:state.x,v:state.v},this._frictionSimulator.setState(this._state),this._isValidState()?this._tryTransitionToSpring():(this._state.x<=this.options.min&&(bound=this.options.min),this._state.x>=this.options.max&&(bound=this.options.max),this._transitionToSpring(bound))},MomentumBounceSimulator.prototype._tryTransitionToSpring=function(force){var aboveMaxWithVelocity,belowMinWithVelocity,bound;return belowMinWithVelocity=this._state.x<this.options.min&&this._state.v<=0,aboveMaxWithVelocity=this._state.x>this.options.max&&this._state.v>=0,belowMinWithVelocity||aboveMaxWithVelocity?(belowMinWithVelocity&&(bound=this.options.min),aboveMaxWithVelocity&&(bound=this.options.max),this._transitionToSpring(bound)):this._useSpring=!1},MomentumBounceSimulator.prototype._transitionToSpring=function(bound){return this._useSpring=!0,this._springSimulator.options.offset=bound,this._springSimulator.setState(this._state)},MomentumBounceSimulator.prototype._isValidState=function(){var aboveMaxTravelingBack,belowMinTravelingBack,bound,check,friction,solution;return belowMinTravelingBack=this._state.x<this.options.min&&this._state.v>0,aboveMaxTravelingBack=this._state.x>this.options.max&&this._state.v<0,check=!1,belowMinTravelingBack?(bound=this.options.min,check=!0):aboveMaxTravelingBack&&(bound=this.options.max,check=!0),!check||(friction=this._frictionSimulator.options.friction,solution=1-friction*(bound-this._state.x)/this._state.v,solution>0)},MomentumBounceSimulator}(Simulator)},function(module,exports,__webpack_require__){var BaseClass,Events,Utils,_,extend=function(child,parent){function ctor(){this.constructor=child}for(var key in parent)hasProp.call(parent,key)&&(child[key]=parent[key]);return ctor.prototype=parent.prototype,child.prototype=new ctor,child.__super__=parent.prototype,child},hasProp={}.hasOwnProperty;_=__webpack_require__(1)._,Utils=__webpack_require__(4),BaseClass=__webpack_require__(6).BaseClass,Events=__webpack_require__(17).Events,Events.EventBufferReset="eventbufferreset",Events.EventBufferUpdated="eventbufferupdated",exports.EventBuffer=function(superClass){function EventBuffer(options){null==options&&(options={}),this.options=_.defaults(options,{velocityTimeout:100}),this._events=[]}return extend(EventBuffer,superClass),EventBuffer.prototype.push=function(event){return this._events.push(event),this.emit(Events.EventBufferUpdated,event)},EventBuffer.prototype.reset=function(){return this._events.length=0,this.emit(Events.EventBufferReset)},EventBuffer.define("length",{get:function(){return this._events.length}}),EventBuffer.define("first",{get:function(){return this._events[0]}}),EventBuffer.define("offset",{get:function(){var current,first,offset;return events.length<2?{x:0,y:0}:(current=events[events.length-1],first=events[0],offset={x:current.x-first.x,y:current.y-first.y})}}),EventBuffer.define("events",{get:function(){var timeout;return timeout=Date.now()-this.options.velocityTimeout,_.filter(this._events,function(event){return event.t>timeout})}}),EventBuffer.define("angle",{get:function(){var events,p1,p2;return events=this.events,events.length<2?0:(p1=events[0],p2=events[1],180*Math.atan2(p2.y-p1.y,p2.x-p1.x)/Math.PI)}}),EventBuffer.define("velocity",{get:function(){var current,events,first,time,velocity;return events=this.events,events.length<2?{x:0,y:0}:(current=events[events.length-1],first=events[0],time=current.t-first.t,velocity={x:(current.x-first.x)/time,y:(current.y-first.y)/time},Infinity===velocity.x&&(velocity.x=0),Infinity===velocity.y&&(velocity.y=0),velocity)}}),EventBuffer}(BaseClass)},function(module,exports,__webpack_require__){var BaseClass,Events,Gestures,Utils,bind=function(fn,me){return function(){return fn.apply(me,arguments)}},extend=function(child,parent){function ctor(){this.constructor=child}for(var key in parent)hasProp.call(parent,key)&&(child[key]=parent[key]);return ctor.prototype=parent.prototype,child.prototype=new ctor,child.__super__=parent.prototype,child},hasProp={}.hasOwnProperty;Utils=__webpack_require__(4),BaseClass=__webpack_require__(6).BaseClass,Events=__webpack_require__(17).Events,Gestures=__webpack_require__(18).Gestures,Events.PinchStart="pinchstart",Events.Pinch="pinch",Events.PinchEnd="pinchend",Events.RotateStart="rotatestart",Events.Rotate="rotate",Events.RotateEnd="rotateend",Events.ScaleStart="scalestart",Events.Scale="scale",Events.ScaleEnd="scaleend",exports.LayerPinchable=function(superClass){function LayerPinchable(layer){this.layer=layer,this._pinchEnd=bind(this._pinchEnd,this),this._pinch=bind(this._pinch,this),this._pinchStart=bind(this._pinchStart,this),this._centerOrigin=bind(this._centerOrigin,this),LayerPinchable.__super__.constructor.apply(this,arguments),this._attach()}return extend(LayerPinchable,superClass),LayerPinchable.define("enabled",LayerPinchable.simpleProperty("enabled",!0)),LayerPinchable.define("threshold",LayerPinchable.simpleProperty("threshold",0)),LayerPinchable.define("centerOrigin",LayerPinchable.simpleProperty("centerOrigin",!0)),LayerPinchable.define("scale",LayerPinchable.simpleProperty("scale",!0)),LayerPinchable.define("scaleIncrements",LayerPinchable.simpleProperty("scaleIncrements",0)),LayerPinchable.define("minScale",LayerPinchable.simpleProperty("minScale",0)),LayerPinchable.define("maxScale",LayerPinchable.simpleProperty("maxScale",Number.MAX_VALUE)),LayerPinchable.define("scaleFactor",LayerPinchable.simpleProperty("scaleFactor",1)),LayerPinchable.define("rotate",LayerPinchable.simpleProperty("rotate",!0)),LayerPinchable.define("rotateIncrements",LayerPinchable.simpleProperty("rotateIncrements",0)),LayerPinchable.define("rotateMin",LayerPinchable.simpleProperty("rotateMin",0)),LayerPinchable.define("rotateMax",LayerPinchable.simpleProperty("rotateMax",0)),LayerPinchable.define("rotateFactor",LayerPinchable.simpleProperty("rotateFactor",1)),LayerPinchable.prototype._attach=function(){return this.layer.on(Gestures.PinchStart,this._pinchStart),this.layer.on(Gestures.Pinch,this._pinch),this.layer.on(Gestures.PinchEnd,this._pinchEnd),this.layer.on(Gestures.TapStart,this._tapStart)},LayerPinchable.prototype._reset=function(){return this._scaleStart=null,this._rotationStart=null,this._rotationOffset=null},LayerPinchable.prototype._tapStart=function(event){},LayerPinchable.prototype._centerOrigin=function(event){var originDelta,pinchLocation,topInSuperAfter,topInSuperBefore;return topInSuperBefore=Utils.convertPoint({},this.layer,this.layer.superLayer),pinchLocation=Utils.convertPointFromContext(event.touchCenter,this.layer,!0,!0),this.layer.originX=pinchLocation.x/this.layer.width,this.layer.originY=pinchLocation.y/this.layer.height,topInSuperAfter=Utils.convertPoint({},this.layer,this.layer.superLayer),originDelta={x:topInSuperAfter.x-topInSuperBefore.x,y:topInSuperAfter.y-topInSuperBefore.y},this.layer.x-=originDelta.x,this.layer.y-=originDelta.y},LayerPinchable.prototype._pinchStart=function(event){return this._reset(),this.centerOrigin&&this._centerOrigin(event),this.normalizeRotation=Utils.rotationNormalizer()},LayerPinchable.prototype._pinch=function(event){var rotation,scale;if(2===event.fingers&&this.enabled&&event.touchDistance>this.threshold)return this.scale&&(null==this._scaleStart&&(this._scaleStart=this.layer.scale),scale=((event.scale-1)*this.scaleFactor+1)*this._scaleStart,this.minScale&&this.maxScale?scale=Utils.clamp(scale,this.minScale,this.maxScale):this.minScale?scale=Utils.clamp(scale,this.minScale,1e6):this.maxScale&&(scale=Utils.clamp(scale,1e-5,this.maxScale)),this.scaleIncrements&&(scale=Utils.nearestIncrement(scale,this.scaleIncrements)),this.layer.scale=scale,this.emit(Events.Scale,event)),this.rotate?(null==this._rotationStart&&(this._rotationStart=this.layer.rotation),null==this._rotationOffset&&(this._rotationOffset=event.rotation),rotation=event.rotation-this._rotationOffset+this._rotationStart,rotation*=this.rotateFactor,rotation=this.normalizeRotation(rotation),this.rotateMin&&this.rotateMax&&(rotation=Utils.clamp(rotation,this.rotateMin,this.rotateMax)),this.rotateIncrements&&(rotation=Utils.nearestIncrement(rotation,this.rotateIncrements)),this.layer.rotation=rotation):void 0},LayerPinchable.prototype._pinchEnd=function(event){return this._reset()},LayerPinchable}(BaseClass)},function(module,exports){exports.LayerPropertyProxy=function(){function LayerPropertyProxy(target,callback){var desc,getter,i,len,prop,proxy,ref,setter,targetDesc;for(proxy=this,getter=function(prop){return this[prop]},setter=function(prop,value){return callback(this,prop,value,proxy)},ref=Object.getOwnPropertyNames(target),i=0,len=ref.length;i<len;i++)prop=ref[i],targetDesc=Object.getOwnPropertyDescriptor(target,prop),desc={enumerable:targetDesc.enumerable,get:getter.bind(target,prop),set:setter.bind(target,prop)},Object.defineProperty(proxy,prop,desc);proxy.__proto__=target.__proto__}return LayerPropertyProxy}()},function(module,exports,__webpack_require__){var Layer,bind=function(fn,me){return function(){return fn.apply(me,arguments)}},extend=function(child,parent){function ctor(){this.constructor=child}for(var key in parent)hasProp.call(parent,key)&&(child[key]=parent[key]);return ctor.prototype=parent.prototype,child.prototype=new ctor,child.__super__=parent.prototype,child},hasProp={}.hasOwnProperty;Layer=__webpack_require__(15).Layer,exports.BackgroundLayer=function(superClass){function BackgroundLayer(options){var ref;null==options&&(options={}),this.layout=bind(this.layout,this),null==options.backgroundColor&&(options.backgroundColor="#fff"),console.warn('BackgroundLayer is deprecated, please use\n\nScreen.backgroundColor = "'+options.backgroundColor+'"\n\ninstead.'),BackgroundLayer.__super__.constructor.call(this,options),this.sendToBack(),this.layout(),this._context.domEventManager.wrap(window).addEventListener("resize",this.layout),null!=(ref=Framer.Device)&&ref.on("change:orientation",this.layout)}return extend(BackgroundLayer,superClass),BackgroundLayer.prototype.layout=function(){return this.parent?this.frame=this.parent.frame:this.frame=this._context.frame},BackgroundLayer}(Layer)},function(module,exports,__webpack_require__){var Layer,extend=function(child,parent){function ctor(){this.constructor=child}for(var key in parent)hasProp.call(parent,key)&&(child[key]=parent[key]);return ctor.prototype=parent.prototype,child.prototype=new ctor,child.__super__=parent.prototype,child},hasProp={}.hasOwnProperty;Layer=__webpack_require__(15).Layer,exports.VideoLayer=function(superClass){function VideoLayer(options){null==options&&(options={}),this.player=document.createElement("video"),this.player.setAttribute("webkit-playsinline","true"),this.player.setAttribute("playsinline",""),this.player.style.width="100%",this.player.style.height="100%",VideoLayer.__super__.constructor.call(this,options),this.player.on=this._context.domEventManager.wrap(this.player).addEventListener,this.player.off=this._context.domEventManager.wrap(this.player).removeEventListener,this.video=options.video,this._element.appendChild(this.player)}return extend(VideoLayer,superClass),VideoLayer.define("video",{get:function(){return this.player.src},set:function(video){return this.player.src=video}}),VideoLayer}(Layer)},function(module,exports,__webpack_require__){var Color,Layer,SVG,SVGGroup,SVGPath,Utils,_,layerProperty,layerProxiedValue,ref,updateIdsToBeUnique,extend=function(child,parent){function ctor(){this.constructor=child}for(var key in parent)hasProp.call(parent,key)&&(child[key]=parent[key]);return ctor.prototype=parent.prototype,child.prototype=new ctor,child.__super__=parent.prototype,child},hasProp={}.hasOwnProperty;_=__webpack_require__(1)._,Color=__webpack_require__(11).Color,ref=__webpack_require__(15),Layer=ref.Layer,layerProperty=ref.layerProperty,layerProxiedValue=ref.layerProxiedValue,SVG=__webpack_require__(23).SVG,SVGGroup=__webpack_require__(45).SVGGroup,SVGPath=__webpack_require__(47).SVGPath,Utils=__webpack_require__(4),updateIdsToBeUnique=function(htmlString){var i,id,ids,len,uniqueId;for(ids=Utils.getIdAttributesFromString(htmlString),i=0,len=ids.length;i<len;i++)id=ids[i],uniqueId=Utils.getUniqueId(id),id!==uniqueId&&(id=Utils.escapeForRegex(id),htmlString=htmlString.replace(RegExp("((id|xlink:href)=[\"'']\\#?)"+id+"([\"'])","g"),"$1"+uniqueId+"$3"),htmlString=htmlString.replace(RegExp("([\"'']url\\(\\#)"+id+"(\\)[\"'])","g"),"$1"+uniqueId+"$2"));return htmlString},exports.SVGLayer=function(superClass){function SVGLayer(options){var children,ref1,svg,targets;null==options&&(options={}),null!=options.htmlIntrinsicSize&&null!=options.backgroundColor&&(null==options.color&&(options.color=options.backgroundColor),options.backgroundColor=null),null==options.clip&&(options.clip=!1),null==options.svg&&null==options.html||null==options.backgroundColor&&(options.backgroundColor=null),SVGLayer.__super__.constructor.call(this,options),svg=this.svg,null!=svg?(ref1=SVG.constructSVGElements(this,svg.childNodes,SVGPath,SVGGroup),targets=ref1.targets,children=ref1.children,this.elements=targets,this._children=children):this.elements=[],SVG.updateGradientSVG(this)}return extend(SVGLayer,superClass),SVGLayer.define("elements",SVGLayer.simpleProperty("elements",{})),SVGLayer.define("fill",layerProperty(SVGLayer,"fill","fill",null,SVG.validFill,SVG.toFill)),SVGLayer.define("stroke",layerProperty(SVGLayer,"stroke","stroke",null,SVG.validFill,SVG.toFill)),SVGLayer.define("strokeWidthMultiplier",layerProperty(SVGLayer,"strokeWidthMultiplier",null,null,_.isNumber)),SVGLayer.define("strokeWidth",layerProperty(SVGLayer,"strokeWidth","strokeWidth",null,_.isNumber,null,{depends:["strokeWidthMultiplier"]})),SVGLayer.define("color",layerProperty(SVGLayer,"color","color",null,Color.validColorValue,Color.toColor,null,function(layer,value){return layer.fill=value},"_elementHTML",!0)),SVGLayer.define("gradient",{get:function(){return Gradient.isGradientObject(this._gradient)?layerProxiedValue(this._gradient,this,"gradient"):null},set:function(value){return Gradient.isGradient(value)?this._gradient=new Gradient(value):!value&&Gradient.isGradientObject(this._gradient)&&(this._gradient=null),SVG.updateGradientSVG(this)}}),SVGLayer.define("svg",{get:function(){var ref1,svgNode;return svgNode=_.first(null!=(ref1=this._elementHTML)?ref1.children:void 0),svgNode instanceof SVGElement?svgNode:null},set:function(value){var element,existingElement,i,idElements,len;if("string"==typeof value)return this.html=updateIdsToBeUnique(value);if(value instanceof SVGElement){for(idElements=value.querySelectorAll("[id]"),i=0,len=idElements.length;i<len;i++)if(element=idElements[i],existingElement=document.querySelector("[id='"+element.id+"']"),null!=existingElement)return void Utils.throwInStudioOrWarnInProduction(Layer.ExistingIdMessage("svg",element.id));for(this._createHTMLElementIfNeeded();this._elementHTML.firstChild;)this._elementHTML.removeChild(this._elementHTML.firstChild);return null!=value.parentNode&&(value=value.cloneNode(!0)),this._elementHTML.appendChild(value)}}}),SVGLayer.prototype.copy=function(){var layer;return layer=this.copySingle()},SVGLayer.prototype.copySingle=function(){var copy,props;return props=this.props,null!=props.html&&null!=props.svg&&delete props.svg,props.html=updateIdsToBeUnique(props.html),copy=new this.constructor(props),copy.style=this.style,copy},SVGLayer}(Layer)},function(module,exports,__webpack_require__){var Color,Layer,SVG,SVGBaseLayer,SVGGroup,SVGPath,layerProperty,ref,extend=function(child,parent){function ctor(){this.constructor=child}for(var key in parent)hasProp.call(parent,key)&&(child[key]=parent[key]);return ctor.prototype=parent.prototype,child.prototype=new ctor,child.__super__=parent.prototype,child},hasProp={}.hasOwnProperty;ref=__webpack_require__(15),Layer=ref.Layer,layerProperty=ref.layerProperty,Color=__webpack_require__(11).Color,SVG=__webpack_require__(23).SVG,SVGBaseLayer=__webpack_require__(46).SVGBaseLayer,SVGPath=__webpack_require__(47).SVGPath,SVGGroup=function(superClass){function SVGGroup(group,options){var children,ref1,targets;options.element=group,SVGGroup.__super__.constructor.call(this,options),ref1=SVG.constructSVGElements(this,this._element.childNodes,SVGPath,SVGGroup),children=ref1.children,targets=ref1.targets,this._children=children,this.elements=targets,SVG.updateGradientSVG(this)}return extend(SVGGroup,superClass),SVGGroup.defineGroupProxyProp=function(propertyName,validator,transformer){var privateProp;return null==validator&&(validator=SVG.validFill),null==transformer&&(transformer=SVG.toFill),privateProp="_"+propertyName,this.define(propertyName,{
  get:function(){var child,childPropertyValue,i,len,ref1,ref2,value;if(null!=this[privateProp])return this[privateProp];for(value=null,ref1=this._children,i=0,len=ref1.length;i<len;i++)if(child=ref1[i],childPropertyValue=child[propertyName],null===value)value=childPropertyValue;else if(!Utils.equal(childPropertyValue,value))return null!=(ref2=this[privateProp])?ref2:null;return value},set:function(value){var child,i,len,persistedValue,ref1,results;for(validator(value)||(value=transformer(value)),validator(value)?this[privateProp]=value:this[privateProp]=null,persistedValue=this[privateProp],ref1=this._children,results=[],i=0,len=ref1.length;i<len;i++)child=ref1[i],results.push(child[propertyName]=persistedValue);return results}})},SVGGroup.defineGroupProxyProp("fill"),SVGGroup.defineGroupProxyProp("stroke"),SVGGroup.defineGroupProxyProp("strokeWidth",_.isNumber,parseInt),SVGGroup.defineGroupProxyProp("strokeWidthMultiplier",_.isNumber,parseInt),SVGGroup.defineGroupProxyProp("ignoreEvents",_.isBoolean,function(value){return!!value}),SVGGroup}(SVGBaseLayer),exports.SVGGroup=SVGGroup},function(module,exports,__webpack_require__){var Color,Layer,LayerStyle,Utils,_svgMeasureElement,denyCopy,getSVGMeasureElement,layerProperty,originTransform,ref,bind=function(fn,me){return function(){return fn.apply(me,arguments)}},extend=function(child,parent){function ctor(){this.constructor=child}for(var key in parent)hasProp.call(parent,key)&&(child[key]=parent[key]);return ctor.prototype=parent.prototype,child.prototype=new ctor,child.__super__=parent.prototype,child},hasProp={}.hasOwnProperty;LayerStyle=__webpack_require__(29).LayerStyle,ref=__webpack_require__(15),Layer=ref.Layer,layerProperty=ref.layerProperty,Color=__webpack_require__(11).Color,Utils=__webpack_require__(4),_svgMeasureElement=null,denyCopy=function(){return Utils.throwInStudioOrWarnInProduction("SVGGroup and SVGPath do not support the `copy` method")},getSVGMeasureElement=function(constraints){for(null==constraints&&(constraints={}),null==_svgMeasureElement&&(_svgMeasureElement=document.createElementNS("http://www.w3.org/2000/svg","svg"),_svgMeasureElement.id="_svgMeasure",_svgMeasureElement.style.position="fixed",_svgMeasureElement.style.visibility="hidden",_svgMeasureElement.style.top="-10000px",_svgMeasureElement.style.left="-10000px",window.document.body?window.document.body.appendChild(_svgMeasureElement):(document.write(_svgMeasureElement.outerHTML),_svgMeasureElement=document.getElementById("_svgMeasure")));_svgMeasureElement.hasChildNodes();)_svgMeasureElement.removeChild(_svgMeasureElement.lastChild);return _svgMeasureElement},originTransform=function(value,layer,name){var layerSize,sizeProp,svgSize;switch(sizeProp=void 0,name){case"originX":sizeProp="width";break;case"originY":sizeProp="height"}return null==sizeProp?value:(layerSize=layer[sizeProp],svgSize=layer._svgSize[sizeProp],layerSize>=0&&svgSize>0?layerSize/svgSize*value:value)},exports.SVGBaseLayer=function(superClass){function SVGBaseLayer(options){this.resetViewbox=bind(this.resetViewbox,this),this.updateForDevicePixelRatioChange=bind(this.updateForDevicePixelRatioChange,this);var element,index,indicesToRemove,k,l,len,len1,len2,m,matrix,n,pathProperties,prop,ref1,ref2,ref3,ref4,svgLayer,transform;if(element=options.element,this._element=element,this._elementBorder=element,this._elementHTML=element,this._parent=options.parent,delete options.parent,delete options.element,this._parent instanceof SVGLayer)for(this._stylesAppliedToParent=["webkitTransform","webkitTransformOrigin"],ref1=["x","y","z","scaleX","scaleY","scaleZ","scale","skewX","skewY","skew","rotationX","rotationY","rotationZ","force2d","originX","originY"],k=0,len=ref1.length;k<len;k++)prop=ref1[k],null==options[prop]&&(options[prop]=this._parent[prop]);else this._pixelMultiplierOverride=1;for(svgLayer=this._parent;null!=svgLayer&&!(svgLayer instanceof SVGLayer);)svgLayer=svgLayer._parent;if(this._svgLayer=svgLayer,this._svg=this._svgLayer.svg,this._svgSize=svgLayer.size,pathProperties=["fill","stroke","stroke-width","stroke-linecap","stroke-linejoin","stroke-miterlimit","stroke-opacity","stroke-dasharray","stroke-dashoffset","name","opacity"],_.defaults(options,this.constructor.attributesFromElement(pathProperties,element)),this._element.transform.baseVal.numberOfItems>0){for(null==options.x&&(options.x=0),null==options.y&&(options.y=0),null==options.rotationZ&&(options.rotationZ=0),indicesToRemove=[],i=l=0,ref2=this._element.transform.baseVal.numberOfItems;0<=ref2?l<ref2:l>ref2;i=0<=ref2?++l:--l)switch(transform=this._element.transform.baseVal.getItem(i),matrix=transform.matrix,transform.type){case 2:options.x+=matrix.e,options.y+=matrix.f,indicesToRemove.push(i);break;case 4:options.rotationZ+=180*-(Math.atan2(matrix.c,matrix.d)/Math.PI),indicesToRemove.push(i)}for(ref3=indicesToRemove.reverse(),m=0,len1=ref3.length;m<len1;m++)index=ref3[m],this._element.transform.baseVal.removeItem(index)}for(this.calculateSize(),SVGBaseLayer.__super__.constructor.call(this,options),this.resetViewbox(),ref4=["frame","stroke","strokeWidth","strokeLinecap","strokeLinejoin","strokeMiterlimit","strokeDasharray","strokeDashoffset","rotation","scale"],n=0,len2=ref4.length;n<len2;n++)prop=ref4[n],this.on("change:"+prop,this.resetViewbox)}var fn,i,j;for(extend(SVGBaseLayer,superClass),SVGBaseLayer.define("parent",{enumerable:!1,exportable:!1,importable:!1,get:function(){return this._parent instanceof SVGLayer?this._parent.parent:this._parent||null}}),SVGBaseLayer.define("html",{get:function(){return this._element.outerHTML||""}}),SVGBaseLayer.define("width",{get:function(){return this._width}}),SVGBaseLayer.define("height",{get:function(){return this._height}}),SVGBaseLayer.define("originX",layerProperty(SVGBaseLayer,"originX","webkitTransformOrigin",.5,_.isNumber,originTransform)),SVGBaseLayer.define("originY",layerProperty(SVGBaseLayer,"originY","webkitTransformOrigin",.5,_.isNumber,originTransform)),SVGBaseLayer.undefine(["label","blending","image"]),SVGBaseLayer.undefine(["blur","brightness","saturate","hueRotate","contrast","invert","grayscale","sepia"]),SVGBaseLayer.undefine(["backgroundBlur","backgroundBrightness","backgroundSaturate","backgroundHueRotate","backgroundContrast","backgroundInvert","backgroundGrayscale","backgroundSepia"]),fn=function(i){return SVGBaseLayer.undefine("shadow"+(i+1))},i=j=0;j<=8;i=++j)fn(i);return SVGBaseLayer.undefine("shadows"),SVGBaseLayer.undefine(["borderRadius","cornerRadius","borderStyle"]),SVGBaseLayer.undefine(["constraintValues","htmlIntrinsicSize"]),SVGBaseLayer.undefine("gradient"),SVGBaseLayer.alias=function(propertyName,proxiedName){return this.define(propertyName,{get:function(){return this[proxiedName]},set:function(value){if(!this.__applyingDefaults)return this[proxiedName]=value}})},SVGBaseLayer.alias("borderColor","stroke"),SVGBaseLayer.alias("strokeColor","stroke"),SVGBaseLayer.alias("borderWidth","strokeWidth"),SVGBaseLayer.alias("backgroundColor","fill"),SVGBaseLayer.alias("color","fill"),SVGBaseLayer.prototype._insertElement=function(){},SVGBaseLayer.prototype.updateForSizeChange=function(){},SVGBaseLayer.prototype.updateForDevicePixelRatioChange=function(){var cssProperty,k,len,ref1,results;for(ref1=["width","height","webkitTransform"],results=[],k=0,len=ref1.length;k<len;k++)cssProperty=ref1[k],results.push(this._element.style[cssProperty]=LayerStyle[cssProperty](this));return results},SVGBaseLayer.prototype.addChild=void 0,SVGBaseLayer.prototype.removeChild=void 0,SVGBaseLayer.prototype.addSubLayer=void 0,SVGBaseLayer.prototype.removeSubLayer=void 0,SVGBaseLayer.prototype.bringToFront=void 0,SVGBaseLayer.prototype.sendToBack=void 0,SVGBaseLayer.prototype.placeBefore=void 0,SVGBaseLayer.prototype.placeBehind=void 0,SVGBaseLayer.attributesFromElement=function(attributes,element){var attribute,k,key,len,options;for(options={},k=0,len=attributes.length;k<len;k++)attribute=attributes[k],key=_.camelCase(attribute),options[key]=element.getAttribute(attribute);return options},SVGBaseLayer.prototype.calculateSize=function(){var element,measuredElement,parent,rect,reference,scaleX,scaleY,svgMeasure;if(element=this._element,measuredElement=null,scaleX=1,scaleY=1,("undefined"!=typeof Framer&&null!==Framer?Framer.CurrentContext.elementInDOM:void 0)?(scaleX=this._parent.canvasScaleX(),scaleY=this._parent.canvasScaleY()):(parent=this._element.parentElement,reference=this._element.nextSibling,svgMeasure=getSVGMeasureElement(),svgMeasure.appendChild(this._element),measuredElement=svgMeasure.firstChild,element=measuredElement),rect=element.getBoundingClientRect(),this._width=rect.width/scaleX,this._height=rect.height/scaleY,null!=measuredElement)return null!=reference?parent.insertBefore(measuredElement,reference):parent.appendChild(measuredElement)},SVGBaseLayer.prototype.resetViewbox=function(){return this._svg.setAttribute("viewBox","0,0,"+this.width+","+this.height),this._svg.removeAttribute("viewBox")},SVGBaseLayer.prototype.copy=function(){return denyCopy()},SVGBaseLayer.prototype.copySingle=function(){return denyCopy()},SVGBaseLayer}(Layer)},function(module,exports,__webpack_require__){var Color,Layer,SVG,SVGBaseLayer,dasharrayTransform,dashoffsetTransform,layerProperty,ref,bind=function(fn,me){return function(){return fn.apply(me,arguments)}},extend=function(child,parent){function ctor(){this.constructor=child}for(var key in parent)hasProp.call(parent,key)&&(child[key]=parent[key]);return ctor.prototype=parent.prototype,child.prototype=new ctor,child.__super__=parent.prototype,child},hasProp={}.hasOwnProperty;ref=__webpack_require__(15),Layer=ref.Layer,layerProperty=ref.layerProperty,Color=__webpack_require__(11).Color,SVGBaseLayer=__webpack_require__(46).SVGBaseLayer,SVG=__webpack_require__(23).SVG,dasharrayTransform=function(value){var values;return _.isString(value)?(values=[],values=value.indexOf(",")!==-1?value.split(","):value.split(" "),values=values.map(function(v){return v.trim()}).filter(function(v){return v.length>0}).map(function(v){return parseFloat(v)})):value},dashoffsetTransform=function(value){var v;return v=parseFloat(value),isNaN(v)?null:v},exports.SVGPath=function(superClass){function SVGPath(path,options){this.valueUpdater=bind(this.valueUpdater,this),this.end=bind(this.end,this),this.start=bind(this.start,this);var link;path instanceof SVGPath&&(path=path.element),options.element=path,SVGPath.__super__.constructor.call(this,options),path instanceof SVGPathElement?this._path=path:path instanceof SVGUseElement&&(link=path.getAttribute("xlink:href"),this._path=this._svg.querySelector(link)),this._length=this._path.getTotalLength()}return extend(SVGPath,superClass),SVGPath.prototype.updateStroke=function(){var dasharray,endLength,gap,length,ref1,ref2,remaining,startLength;return startLength=null!=(ref1=this.strokeStart)?ref1:0,endLength=null!=(ref2=this.strokeEnd)?ref2:this.length,dasharray=[],endLength===startLength?(0!==startLength&&(dasharray.push(0),dasharray.push(startLength)),remaining=this.length-endLength,0!==remaining&&(dasharray.push(0),dasharray.push(remaining))):endLength<startLength?(gap=startLength-endLength,remaining=this.length-startLength,dasharray.push(endLength),dasharray.push(gap),0!==remaining&&(dasharray.push(remaining),dasharray.push(0))):(length=endLength-startLength,remaining=this.length-endLength,0!==startLength&&(dasharray.push(0),dasharray.push(startLength)),length===this.length||0===length&&0!==startLength||(dasharray.push(length),length!==remaining&&0!==remaining&&dasharray.push(remaining))),this.reversed&&(dasharray.length%2===0&&dasharray.push(0),dasharray.reverse()),this.strokeDasharray=dasharray},SVGPath.define("fill",layerProperty(SVGPath,"fill","fill",null,SVG.validFill,SVG.toFill)),SVGPath.define("stroke",layerProperty(SVGPath,"stroke","stroke",null,SVG.validFill,SVG.toFill)),SVGPath.define("strokeWidth",layerProperty(SVGPath,"strokeWidth","strokeWidth",null,_.isNumber,parseFloat)),SVGPath.define("strokeLinecap",layerProperty(SVGPath,"strokeLinecap","strokeLinecap",null,_.isString)),SVGPath.define("strokeLinejoin",layerProperty(SVGPath,"strokeLinejoin","strokeLinejoin",null,_.isString)),SVGPath.define("strokeMiterlimit",layerProperty(SVGPath,"strokeMiterlimit","strokeMiterlimit",null,_.isNumber,parseFloat)),SVGPath.define("strokeOpacity",layerProperty(SVGPath,"strokeOpacity","strokeOpacity",null,_.isNumber,parseFloat)),SVGPath.define("strokeDasharray",layerProperty(SVGPath,"strokeDasharray","strokeDasharray",[],_.isArray,dasharrayTransform)),SVGPath.define("strokeDashoffset",layerProperty(SVGPath,"strokeDashoffset","strokeDashoffset",null,_.isNumber,dashoffsetTransform)),SVGPath.define("strokeLength",layerProperty(SVGPath,"strokeLength",null,void 0,_.isNumber,function(value,path){return Math.max(0,Math.min(value,path.length))},{},function(path,value){var ref1,strokeEnd,strokeStart;return strokeStart=null!=(ref1=path.strokeStart)?ref1:0,strokeEnd=strokeStart+value,strokeEnd>path.length&&(strokeEnd-=path.length),path._properties.strokeStart=strokeStart,path._properties.strokeEnd=strokeEnd,path._properties.strokeFraction=value/path.length,path.updateStroke()})),SVGPath.define("strokeFraction",layerProperty(SVGPath,"strokeFraction",null,void 0,_.isNumber,function(value,path){return Math.max(0,Math.min(value,1))},{},function(path,value){return path.strokeLength=path.length*value})),SVGPath.define("strokeStart",layerProperty(SVGPath,"strokeStart",null,void 0,_.isNumber,function(value,path){return Math.max(0,Math.min(value,path.length))},{},function(path,value){var ref1,ref2,strokeEnd,strokeStart;return strokeStart=value,strokeEnd=null!=(ref1=null!=(ref2=path.strokeEnd)?ref2:path.strokeLength)?ref1:path.length,strokeEnd>=strokeStart?path.strokeLength=strokeEnd-strokeStart:path.strokeLength=path.length-strokeStart+strokeEnd})),SVGPath.define("strokeEnd",layerProperty(SVGPath,"strokeEnd",null,void 0,_.isNumber,function(value,path){return Math.max(0,Math.min(value,path.length))},{},function(path,value){var ref1,strokeEnd,strokeStart;return strokeStart=null!=(ref1=path.strokeStart)?ref1:0,strokeEnd=value,strokeEnd>=strokeStart?path.strokeLength=strokeEnd-strokeStart:path.strokeLength=path.length-strokeStart+strokeEnd})),SVGPath.define("length",{get:function(){return this._length}}),SVGPath.define("reversed",SVGPath.simpleProperty("reversed",!1)),SVGPath.prototype.pointAtFraction=function(fraction){return this.reversed&&(fraction=1-fraction),this._path.getPointAtLength(this.length*fraction)},SVGPath.prototype.rotationAtFraction=function(fraction,delta){var angle,fromPoint,toPoint;return null==delta&&(delta=.01),this.reversed&&(fraction=1-fraction),delta<=0&&(delta=.01),fromPoint=this.pointAtFraction(Math.max(fraction-delta,0)),toPoint=this.pointAtFraction(Math.min(fraction+delta,1)),angle=180*Math.atan2(fromPoint.y-toPoint.y,fromPoint.x-toPoint.x)/Math.PI-90,this.reversed&&(angle=360-angle),angle},SVGPath.prototype.start=function(relativeToLayer){var point;return null==relativeToLayer&&(relativeToLayer=null),point=this.pointAtFraction(0),point=this.convertPointToLayer(point,null!=relativeToLayer?relativeToLayer.parent:void 0,!1),point.rotation=this.rotationAtFraction(0),point},SVGPath.prototype.end=function(relativeToLayer){var point;return null==relativeToLayer&&(relativeToLayer=null),point=this.pointAtFraction(0),point=this.convertPointToLayer(point,null!=relativeToLayer?relativeToLayer.parent:void 0,!1),point.rotation=this.rotationAtFraction(1),point},SVGPath.prototype.valueUpdater=function(axis,target,offset){switch(axis){case"horizontal":return offset-=this.pointAtFraction(0).x,function(_this){return function(key,value){return target[key]=offset+_this.pointAtFraction(value).x}}(this);case"vertical":return offset-=this.pointAtFraction(0).y,function(_this){return function(key,value){return target[key]=offset+_this.pointAtFraction(value).y}}(this);case"angle":return offset-=this.rotationAtFraction(0),function(_this){return function(key,value,delta){if(null==delta&&(delta=0),0!==delta)return target[key]=offset+_this.rotationAtFraction(value,delta)}}(this)}},SVGPath}(SVGBaseLayer)},function(module,exports,__webpack_require__){var Layer,LayerStyle,StyledText,asPadding,fontFamilyFromObject,layerProperty,ref,textProperty,validateFont,bind=function(fn,me){return function(){return fn.apply(me,arguments)}},extend=function(child,parent){function ctor(){this.constructor=child}for(var key in parent)hasProp.call(parent,key)&&(child[key]=parent[key]);return ctor.prototype=parent.prototype,child.prototype=new ctor,child.__super__=parent.prototype,child},hasProp={}.hasOwnProperty;ref=__webpack_require__(15),Layer=ref.Layer,layerProperty=ref.layerProperty,LayerStyle=__webpack_require__(29).LayerStyle,StyledText=__webpack_require__(32).StyledText,validateFont=function(arg){return _.isString(arg)||_.isObject(arg)},fontFamilyFromObject=function(font){return _.isObject(font)?font.fontFamily:font},textProperty=function(obj,name,fallback,validator,transformer,set){return layerProperty(obj,name,name,fallback,validator,transformer,{},set,"_elementHTML")},asPadding=function(value){var i,isValidObject,key,len,ref1,ref2,result;if(_.isNumber(value))return value;if(!_.isObject(value))return 0;for(result={},isValidObject=!1,null!=value.horizontal&&(null==value.left&&(value.left=value.horizontal),null==value.right&&(value.right=value.horizontal)),null!=value.vertical&&(null==value.top&&(value.top=value.vertical),null==value.bottom&&(value.bottom=value.vertical)),ref1=["left","right","bottom","top"],i=0,len=ref1.length;i<len;i++)key=ref1[i],isValidObject||(isValidObject=_.has(value,key)),result[key]=null!=(ref2=value[key])?ref2:0;return isValidObject?result:0},exports.TextLayer=function(superClass){function TextLayer(options){var constraintValues,explicitHeight,explicitWidth,fn,fontWeight,heightFactor,i,key,len,lineHeight,property,ref1,ref2,ref3,ref4,ref5,text,topAndBottom,value;null==options&&(options={}),this.renderText=bind(this.renderText,this),this.updateAutoHeight=bind(this.updateAutoHeight,this),this.updateAutoWidth=bind(this.updateAutoWidth,this),_.defaults(options,{shadowType:"text",clip:!1,createHTMLElement:!0}),null!=options.styledText?(this.styledTextOptions=options.styledText,null==options.color&&(options.color=this._styledText.getStyle("color")),null==options.fontSize&&(options.fontSize=parseFloat(this._styledText.getStyle("fontSize"))),null==options.fontFamily&&(options.fontFamily=this._styledText.getStyle("fontFamily")),null==options.letterSpacing&&(options.letterSpacing=parseFloat(this._styledText.getStyle("letterSpacing"))),null==options.textAlign&&(options.textAlign=this._styledText.textAlign),fontWeight=this._styledText.getStyle("fontWeight"),null!=fontWeight&&(options.fontWeight=parseFloat(fontWeight)),lineHeight=this._styledText.getStyle("lineHeight"),lineHeight=null==lineHeight||"normal"===lineHeight?1.25:parseFloat(lineHeight),null==options.lineHeight&&(options.lineHeight=lineHeight)):(_.defaults(options,{backgroundColor:"transparent",text:"Hello World",color:"#888",fontSize:40,fontWeight:400,lineHeight:1.25,padding:0}),null==options.font&&null==options.fontFamily&&(options.fontFamily=this.defaultFont()),text=options.text,_.isString(text)||(text=String(text)),this._styledText.addBlock(text,{fontSize:options.fontSize+"px"})),TextLayer.__super__.constructor.call(this,options),this.__constructor=!0,options.autoSize?(this.autoWidth=!0,this.autoHeight=!0):options.autoSize===!1||options.truncate||(null==options.autoWidth&&(explicitWidth=null!=options.width||_.isNumber(options.size)||null!=(null!=(ref1=options.size)?ref1.width:void 0)||null!=(null!=(ref2=options.frame)?ref2.width:void 0),this.autoWidth=!explicitWidth),null==options.autoHeight&&(explicitHeight=null!=options.height||_.isNumber(options.size)||null!=(null!=(ref3=options.size)?ref3.height:void 0)||null!=(null!=(ref4=options.frame)?ref4.height:void 0),this.autoHeight=!explicitHeight)),constraintValues=options.constraintValues,constraintValues&&(topAndBottom=_.isNumber(constraintValues.top)&&_.isNumber(constraintValues.bottom),heightFactor=_.isNumber(constraintValues.heightFactor),this.autoHeight=!(heightFactor||topAndBottom)),null==options.styledText&&null==this.font&&(this.font=this.fontFamily),this._styledText.setElement(this._elementHTML),delete this.__constructor,this.renderText();for(key in options)value=options[key],_.isFunction(value)&&null!=this[key]&&(this[key]=value);for(ref5=TextLayer._textStyleProperties,fn=function(_this){return function(property){return _this.on("change:"+property,function(value){if(null!==value)return"fontSize"!==property&&"font"!==property&&_this._styledText.resetStyle(property),_this.renderText()})}}(this),i=0,len=ref5.length;i<len;i++)property=ref5[i],fn(property);this.on("change:width",this.updateAutoWidth),this.on("change:height",this.updateAutoHeight),this.on("change:parent",this.renderText)}return extend(TextLayer,superClass),TextLayer._textProperties=["text","fontFamily","fontSize","fontWeight","fontStyle","lineHeight","letterSpacing","wordSpacing","textAlign","textTransform","textIndent","textDecoration","textOverflow","whiteSpace","direction","font","borderWidth","padding"],TextLayer._textStyleProperties=_.pull(_.clone(TextLayer._textProperties),"text").concat(["color","shadowX","shadowY","shadowBlur","shadowColor"]),TextLayer.prototype.updateAutoWidth=function(value){if(!this.disableAutosizeUpdating)return this.autoWidth=!1},TextLayer.prototype.updateAutoHeight=function(value){if(!this.disableAutosizeUpdating)return this.autoHeight=!1},TextLayer.prototype.copySingle=function(){var copy,props;return props=this.props,this.autoWidth&&delete props.width,this.autoHeight&&delete props.height,copy=new this.constructor(props),copy.style=this.style,copy},TextLayer.define("_styledText",{get:function(){return null==this.__styledText&&(this.__styledText=new StyledText),this.__styledText},set:function(value){if(value instanceof StyledText)return this.__styledText=value}}),TextLayer.define("styledTextOptions",{get:function(){var ref1;return null!=(ref1=this._styledText)?ref1.getOptions():void 0},set:function(value){var fonts,promise;if(this._styledText=new StyledText(value),this._styledText.setElement(this._elementHTML),fonts=this._styledText.getFonts(),promise=Utils.isFontFamilyLoaded(fonts),_.isObject(promise))return promise.then(function(_this){return function(){return _this.renderText()}}(this))}}),TextLayer.define("autoWidth",TextLayer.proxyProperty("_styledText.autoWidth",{didSet:function(layer,value){return layer.renderText()}})),TextLayer.define("autoHeight",TextLayer.proxyProperty("_styledText.autoHeight",{didSet:function(layer,value){return layer.renderText()}})),TextLayer.define("autoSize",{get:function(){return this.autoWidth&&this.autoHeight},set:function(value){return this.autoWidth=value,this.autoHeight=value,this.renderText()}}),TextLayer.define("fontFamily",textProperty(TextLayer,"fontFamily",null,_.isString,fontFamilyFromObject,function(layer,value){var promise;if(null!==value)return layer.font=value,promise=Utils.isFontFamilyLoaded(value),_.isObject(promise)?promise.then(function(){return setTimeout(layer.renderText,0)}):void 0})),TextLayer.define("fontWeight",textProperty(TextLayer,"fontWeight",null)),TextLayer.define("fontStyle",textProperty(TextLayer,"fontStyle","normal",_.isString)),TextLayer.define("textDecoration",textProperty(TextLayer,"textDecoration",null,_.isString)),TextLayer.define("fontSize",textProperty(TextLayer,"fontSize",null,_.isNumber,null,function(layer,value){var style;if(null!==value&&!layer.__constructor)return style=LayerStyle.fontSize(layer),layer._styledText.setStyle("fontSize",style)})),TextLayer.define("textAlign",textProperty(TextLayer,"textAlign",null)),TextLayer.define("letterSpacing",textProperty(TextLayer,"letterSpacing",null,_.isNumber)),TextLayer.define("lineHeight",textProperty(TextLayer,"lineHeight",null,_.isNumber)),TextLayer.define("wordSpacing",textProperty(TextLayer,"wordSpacing",null,_.isNumber)),TextLayer.define("textTransform",textProperty(TextLayer,"textTransform","none",_.isString)),TextLayer.define("textIndent",textProperty(TextLayer,"textIndent",null,_.isNumber)),TextLayer.define("wordWrap",textProperty(TextLayer,"wordWrap",null,_.isString)),TextLayer.define("textOverflow",{get:function(){return this._styledText.textOverflow},set:function(value){return this.clip=_.isString(value),this._styledText.setTextOverflow(value),this.renderText(!0)}}),TextLayer.define("truncate",{get:function(){return"ellipsis"===this.textOverflow},set:function(truncate){return truncate?(this.autoSize=!1,this.textOverflow="ellipsis"):this.textOverflow=null}}),TextLayer.define("whiteSpace",textProperty(TextLayer,"whiteSpace",null,_.isString)),TextLayer.define("direction",textProperty(TextLayer,"direction",null,_.isString)),TextLayer.define("html",{get:function(){var ref1;return(null!=(ref1=this._elementHTML)?ref1.innerHTML:void 0)||""}}),TextLayer.define("font",layerProperty(TextLayer,"font",null,null,validateFont,null,{},function(layer,value){if(null!==value)return _.isObject(value)?(layer.fontFamily=value.fontFamily,void(layer.fontWeight=value.fontWeight)):/\d/.test(value)?layer._styledText.setStyle("font",value):layer.fontFamily=value},"_elementHTML")),TextLayer.define("textDirection",{get:function(){return this.direction},set:function(value){return this.direction=value}}),TextLayer.define("padding",layerProperty(TextLayer,"padding","padding",0,null,asPadding)),TextLayer.define("text",{get:function(){return this._styledText.getText()},set:function(value){return _.isString(value)||(value=String(value)),this._styledText.setText(value),this.renderText(),this.emit("change:text",value)}}),TextLayer.prototype.renderText=function(forceRender){var calculatedSize,constrainedHeight,constrainedWidth,constraints,padding;if(null==forceRender&&(forceRender=!1),!this.__constructor&&(this._styledText.render(),this._updateHTMLScale(),this.autoSize||(this.width<this._elementHTML.clientWidth||this.height<this._elementHTML.clientHeight)&&(this.clip=!0),forceRender||this.autoHeight||this.autoWidth||null!==this.textOverflow))return padding=Utils.rectZero(Utils.parseRect(this.padding)),constrainedWidth=this.autoWidth?null:this.size.width-(padding.left+padding.right),constrainedHeight=this.autoHeight?null:this.size.height-(padding.top+padding.bottom),constraints={width:constrainedWidth,height:constrainedHeight,multiplier:this.context.pixelMultiplier},calculatedSize=this._styledText.measure(constraints),this.disableAutosizeUpdating=!0,null!=calculatedSize.width&&(this.width=calculatedSize.width+padding.left+padding.right),null!=calculatedSize.height&&(this.height=calculatedSize.height+padding.top+padding.bottom),this.disableAutosizeUpdating=!1},TextLayer.prototype.defaultFont=function(){return Utils.deviceFont(Framer.Device.platform())},TextLayer.prototype.textReplace=function(search,replace){var oldText;if(oldText=this.text,this._styledText.textReplace(search,replace),this.text!==oldText)return this.renderText(),this.emit("change:text",this.text)},TextLayer.define("template",{get:function(){return _.clone(this._templateData)},set:function(data){var firstName,oldText;if(this._templateData||(this._templateData={}),firstName=this._styledText.buildTemplate(),_.isObject(data))_.assign(this._templateData,data);else{if(!firstName)return;this._templateData[firstName]=data}if(oldText=this.text,this._styledText.template(this._templateData),this.text!==oldText)return this.renderText(),this.emit("change:text",this.text)}}),TextLayer.define("templateFormatter",{get:function(){return this._templateFormatter},set:function(data){var firstName,tmp;if(firstName=this._styledText.buildTemplate(),_.isFunction(data)||!_.isObject(data)){if(!firstName)return;tmp={},tmp[firstName]=data,data=tmp}return this._styledText.templateFormatter(data)}}),TextLayer}(Layer)},function(module,exports,__webpack_require__){var AnimationGroup,AnimationStateGroup,BaseClass,_,extend=function(child,parent){function ctor(){this.constructor=child}for(var key in parent)hasProp.call(parent,key)&&(child[key]=parent[key]);return ctor.prototype=parent.prototype,child.prototype=new ctor,child.__super__=parent.prototype,child},hasProp={}.hasOwnProperty,slice=[].slice,indexOf=[].indexOf||function(item){for(var i=0,l=this.length;i<l;i++)if(i in this&&this[i]===item)return i;return-1};_=__webpack_require__(1)._,BaseClass=__webpack_require__(6).BaseClass,AnimationGroup=function(superClass){function AnimationGroup(){var args;args=1<=arguments.length?slice.call(arguments,0):[],AnimationGroup.__super__.constructor.apply(this,arguments),this._animations=_.flatten(args),this.stopAnimations=!0,this.stop()}return extend(AnimationGroup,superClass),AnimationGroup.prototype.start=function(){return this._start(this._animations)},AnimationGroup.prototype.stop=function(){return this._stop(),this._started=[],this._halted=[],this._stopped=[],this._ended=[]},AnimationGroup.prototype._start=function(animations){return this.stop(),this._onStart(),animations.map(function(_this){return function(animation){return _this._started.push(animation),animation.onAnimationHalt(function(){if(_this._halted.push(animation),!(_this._halted.length>1))return _this._stop(),_this._onHalt()}),animation.onAnimationStop(function(){if(_this._stopped.push(animation),_this._stopped.length===_this._started.length)return _this._onStop()}),animation.onAnimationEnd(function(){if(_this._ended.push(animation),_this._ended.length===_this._started.length)return _this._onEnd()}),animation.start()}}(this))},AnimationGroup.prototype._stop=function(){if(this._started&&this.stopAnimations===!0)return this._started.map(function(a){if(a.isAnimating)return a.stop()})},AnimationGroup.prototype._onStart=function(){return this.emit(Events.AnimationStart)},AnimationGroup.prototype._onHalt=function(){return this.emit(Events.AnimationHalt)},AnimationGroup.prototype._onStop=function(){return this.emit(Events.AnimationStop)},AnimationGroup.prototype._onEnd=function(){return this.emit(Events.AnimationEnd)},AnimationGroup.prototype.onAnimationStart=function(cb){return this.on(Events.AnimationStart,cb)},AnimationGroup.prototype.onAnimationHalt=function(cb){return this.on(Events.AnimationHalt,cb)},AnimationGroup.prototype.onAnimationStop=function(cb){return this.on(Events.AnimationStop,cb)},AnimationGroup.prototype.onAnimationEnd=function(cb){return this.on(Events.AnimationEnd,cb)},AnimationGroup.prototype.onStart=function(cb){return this.onAnimationStart(cb)},AnimationGroup.prototype.onHalt=function(cb){return this.onAnimationHalt(cb)},AnimationGroup.prototype.onStop=function(cb){return this.onAnimationStop(cb)},AnimationGroup.prototype.onEnd=function(cb){return this.onAnimationEnd(cb)},AnimationGroup}(BaseClass),AnimationStateGroup=function(superClass){function AnimationStateGroup(){var layers;layers=1<=arguments.length?slice.call(arguments,0):[],AnimationStateGroup.__super__.constructor.apply(this,arguments),this._layers=_.flatten(layers),this._state="default"}return extend(AnimationStateGroup,superClass),AnimationStateGroup.prototype.animate=function(state){var animations,i,layer,len,ref;for(animations=[],ref=this._layers,i=0,len=ref.length;i<len;i++)layer=ref[i],layer.states[state]&&animations.push(layer.animate(state,{start:!1}));if(animations)return this._start(animations),this._state=state},AnimationStateGroup.define("state",{get:function(){return this._state}}),AnimationStateGroup.define("states",{get:function(){var i,j,layer,len,len1,ref,ref1,state,states;for(states=[],ref=this._layers,i=0,len=ref.length;i<len;i++)for(layer=ref[i],ref1=_.keys(layer.states),j=0,len1=ref1.length;j<len1;j++)state=ref1[j],indexOf.call(states,state)<0&&states.push(state);return states}}),AnimationStateGroup.prototype.stateCycle=function(){var args,states;return args=1<=arguments.length?slice.call(arguments,0):[],states=_.flatten(args),states.length||(states=this.states),
  this.animate(Utils.arrayNext(states,this.state))},AnimationStateGroup}(AnimationGroup),exports.AnimationGroup=AnimationGroup,exports.AnimationStateGroup=AnimationStateGroup},function(module,exports){var bottom,center,left,pixelRound,right,top,wrapper;pixelRound=parseInt,center=function(layer,property,offset){var borderWidth,parent,x,y;return null==offset&&(offset=0),parent=Screen,layer.parent&&(parent=layer.parent),borderWidth=parent.borderWidth,null==borderWidth&&(borderWidth=0),x=pixelRound(parent.width/2-layer.width/2-borderWidth+offset),y=pixelRound(parent.height/2-layer.height/2-borderWidth+offset),"x"===property?x:"y"===property?y:"point"===property?{x:x,y:y}:0},left=function(layer,property,offset){var parent;if(null==offset&&(offset=0),"x"!==property)throw Error("Align.left only works for x");return parent=Screen,layer.parent&&(parent=layer.parent),pixelRound(0+offset)},right=function(layer,property,offset){var borderWidth,parent;if(null==offset&&(offset=0),"x"!==property)throw Error("Align.right only works for x");return parent=Screen,layer.parent&&(parent=layer.parent),borderWidth=parent.borderWidth,null==borderWidth&&(borderWidth=0),pixelRound(parent.width-2*borderWidth-layer.width+offset)},top=function(layer,property,offset){var parent;if(null==offset&&(offset=0),"y"!==property)throw Error("Align.top only works for y");return parent=Screen,layer.parent&&(parent=layer.parent),pixelRound(0+offset)},bottom=function(layer,property,offset){var borderWidth,parent;if(null==offset&&(offset=0),"y"!==property)throw Error("Align.bottom only works for y");return parent=Screen,layer.parent&&(parent=layer.parent),borderWidth=parent.borderWidth,null==borderWidth&&(borderWidth=0),pixelRound(parent.height-2*borderWidth-layer.height+offset)},wrapper=function(f,name){var align;return align=function(a,b){return null==a||_.isNumber(a)?function(l,p){return f(l,p,a)}:f(a,b,0)},align.toInspect=function(){return"Align."+name},align},exports.Align={center:wrapper(center,"center"),left:wrapper(left,"left"),right:wrapper(right,"right"),top:wrapper(top,"top"),bottom:wrapper(bottom,"bottom")}},function(module,exports){exports.Blending={normal:"normal",multiply:"multiply",screen:"screen",overlay:"overlay",darken:"darken",lighten:"lighten",colorDodge:"color-dodge",colorBurn:"color-burn",hardLight:"hard-light",softLight:"soft-light",difference:"difference",exclusion:"exclusion",hue:"hue",saturation:"saturation",color:"color",luminosity:"luminosity"}},function(module,exports,__webpack_require__){var Context,Printer,Utils,_printer,bind=function(fn,me){return function(){return fn.apply(me,arguments)}},slice=[].slice;Utils=__webpack_require__(4),Context=__webpack_require__(53).Context,Printer=function(){function Printer(){this.scrollToBottom=bind(this.scrollToBottom,this),this.print=bind(this.print,this),this.resize=bind(this.resize,this),this.createLayer=bind(this.createLayer,this),this._context=new Context({name:"PrintConsole"}),this._context.run(function(_this){return function(){return Events.wrap(window).addEventListener("resize",_this.resize)}}(this))}return Printer.prototype.createLayer=function(){return this._printLayer?this._printLayer:(this._context.run(function(_this){return function(){return _this._container=new Layer({backgroundColor:null}),_this._container.style.zIndex=999,_this._printLayer=new Layer({parent:_this._container}),_this._printLayer.scrollVertical=!0,_this._printLayer.ignoreEvents=!1,_this._printLayer.html="",_this._printLayer.style={font:"12px/1.35em Menlo, Consolas, monospace",color:"rgba(0, 0, 0, .7)",padding:"8px","padding-bottom":"30px","border-top":"1px solid #d9d9d9"},_this._printLayer.opacity=.9,_this._printLayer.visible=!0,_this._printLayer.backgroundColor="white",_this._closeButton=new Layer({parent:_this._container,html:'<svg><g stroke="#B8B8B8"><path d="M1,1 L8,8"></path><path d="M1,8 L8,1"></path></g></svg>',y:9,width:9,height:9,backgroundColor:null}),_this._closeButton.style.cursor="auto",_this._closeButton.onClick(function(){return _this.hide()})}}(this)),this.resize(),this._printLayer)},Printer.prototype.resize=function(){if(this._printLayer)return this._container.width=window.innerWidth,this._container.height=160,this._container.maxY=window.innerHeight,this._printLayer.size=this._container.size,this._closeButton.maxX=this._container.maxX-this._closeButton.y+1},Printer.prototype.hide=function(){return this._context.visible=!1},Printer.prototype.print=function(){var args,printNode,printPrefix;return args=1<=arguments.length?slice.call(arguments,0):[],this.createLayer(),this._context.visible=!0,printPrefix="» ",printNode=document.createElement("div"),printNode.style["-webkit-user-select"]="text",printNode.style.cursor="auto",printNode.innerHTML=_.escape(printPrefix+args.map(function(obj){return Utils.inspect(obj)}).join(", "))+"<br>",this._printLayer._element.appendChild(printNode),this.scrollToBottom(),Utils.delay(0,this.scrollToBottom)},Printer.prototype.scrollToBottom=function(){if(this._printLayer)return this._printLayer._element.scrollTop=this._printLayer._element.scrollHeight},Printer}(),_printer=null,exports.print=function(){var args;return args=1<=arguments.length?slice.call(arguments,0):[],null==_printer&&(_printer=new Printer),_printer.print.apply(_printer,args)}},function(module,exports,__webpack_require__){var BaseClass,Config,Contexts,DOMEventManager,Defaults,Utils,_,bind=function(fn,me){return function(){return fn.apply(me,arguments)}},extend=function(child,parent){function ctor(){this.constructor=child}for(var key in parent)hasProp.call(parent,key)&&(child[key]=parent[key]);return ctor.prototype=parent.prototype,child.prototype=new ctor,child.__super__=parent.prototype,child},hasProp={}.hasOwnProperty,indexOf=[].indexOf||function(item){for(var i=0,l=this.length;i<l;i++)if(i in this&&this[i]===item)return i;return-1};_=__webpack_require__(1)._,Utils=__webpack_require__(4),Config=__webpack_require__(16).Config,Defaults=__webpack_require__(19).Defaults,BaseClass=__webpack_require__(6).BaseClass,DOMEventManager=__webpack_require__(54).DOMEventManager,Contexts=[],exports.Context=function(superClass){function Context(options){if(null==options&&(options={}),this.layout=bind(this.layout,this),options=Defaults.getDefaults("Context",options),Context.__super__.constructor.apply(this,arguments),!options.name)throw Error("Contexts need a name");this._parent=options.parent,this._name=options.name,this.perspective=options.perspective,this.perspectiveOriginX=options.perspectiveOriginX,this.perspectiveOriginY=options.perspectiveOriginY,this.elementInDOM=!1,this.reset(),options.hasOwnProperty("index")?this.index=options.index:this.index=this.id,Contexts.push(this)}return extend(Context,superClass),Context.all=function(){return _.clone(Contexts)},Context.define("parent",{get:function(){return this._parent}}),Context.define("element",{get:function(){return this._element}}),Context.define("devicePixelRatio",{get:function(){var ref;return null!=(ref=this._devicePixelRatio)?ref:1},set:function(value){var i,l,len,ref,results;if(value!==this._devicePixelRatio){for(this._devicePixelRatio=value,ref=this._layers,results=[],i=0,len=ref.length;i<len;i++)l=ref[i],results.push(l.updateForDevicePixelRatioChange());return results}}}),Context.define("renderUsingNativePixelRatio",Context.simpleProperty("renderUsingNativePixelRatio",!1)),Context.define("autoLayout",Context.simpleProperty("autoLayout",!0)),Context.define("pixelMultiplier",{get:function(){return this.renderUsingNativePixelRatio?1:this.devicePixelRatio}}),Context.define("scale",{get:function(){return this.pixelMultiplier}}),Context.prototype.reset=function(){return this._createDOMEventManager(),this._createRootElement(),this.resetFrozenEvents(),this.resetLayers(),this.resetAnimations(),this.resetTimers(),this.resetIntervals(),this.emit("reset",this)},Context.prototype.destroy=function(){return this.reset(),this._destroyRootElement(),_.remove(Contexts,this)},Context.define("layers",{get:function(){return _.clone(this._layers)}}),Context.define("layerCounter",{get:function(){return this._layerCounter}}),Context.define("rootLayers",{get:function(){return _.filter(this._layers,function(layer){return null===layer.parent})}}),Context.define("visible",{get:function(){return this._visible||!0},set:function(value){var ref;if(value!==this._visible)return null!=(ref=this._element)&&(ref.style.visibility=value?"visible":"hidden"),this._visible=value}}),Context.prototype.addLayer=function(layer){if(!(indexOf.call(this._layers,layer)>=0))return this._layerCounter++,this._layers.push(layer)},Context.prototype.removeLayer=function(layer){return this._layers=_.without(this._layers,layer)},Context.prototype.resetLayers=function(){return this.resetGestures(),this._layers=[],this._layerCounter=0},Context.prototype.layerForId=function(layerId){var i,layer,len,ref;for(ref=this._layers,i=0,len=ref.length;i<len;i++)if(layer=ref[i],layer.id===layerId)return layer;return null},Context.prototype._layerForElement=function(element){var i,layer,len,ref;for(ref=this._layers,i=0,len=ref.length;i<len;i++)if(layer=ref[i],layer._element===element)return layer;return null},Context.prototype.layerForElement=function(element){var layer;return element?(layer=this._layerForElement(element),layer?layer:this.layerForElement(element.parentNode)):null},Context.prototype.selectLayer=function(selector){return Utils.findLayer(this._layers,selector)},Context.prototype.selectAllLayers=function(selector){return Utils.filterLayers(this._layers,selector)},Context.prototype.layout=function(){return this.rootLayers.map(function(l){return l.layout()})},Context.define("animations",{get:function(){return _.clone(this._animations)}}),Context.prototype.addAnimation=function(animation){if(!(indexOf.call(this._animations,animation)>=0))return this._animations.push(animation)},Context.prototype.removeAnimation=function(animation){return this._animations=_.without(this._animations,animation)},Context.prototype.resetAnimations=function(){return this.stopAnimations(),this._animations=[]},Context.prototype.stopAnimations=function(){if(this._animations)return this._animations.map(function(animation){return animation.stop(!0)})},Context.prototype.resetFrozenEvents=function(){return delete this._frozenEvents},Context.define("timers",{get:function(){return _.clone(this._timers)}}),Context.prototype.addTimer=function(timer){if(!(indexOf.call(this._timers,timer)>=0))return this._timers.push(timer)},Context.prototype.removeTimer=function(timer){return window.clearTimeout(timer),this._timers=_.without(this._timers,timer)},Context.prototype.resetTimers=function(){return this._timers&&this._timers.map(window.clearTimeout),this._timers=[]},Context.define("intervals",{get:function(){return _.clone(this._intervals)}}),Context.prototype.addInterval=function(interval){if(!(indexOf.call(this._intervals,interval)>=0))return this._intervals.push(interval)},Context.prototype.removeInterval=function(interval){return this._intervals=_.without(this._intervals,interval)},Context.prototype.resetIntervals=function(){return this._intervals&&this._intervals.map(window.clearInterval),this._intervals=[]},Context.prototype.resetGestures=function(){var i,layer,len,ref;if(this._layers)for(ref=this._layers,i=0,len=ref.length;i<len;i++)layer=ref[i],layer._gestures&&layer._gestures.destroy()},Context.prototype.run=function(fn){var previousContext;return previousContext=Framer.CurrentContext,Framer.CurrentContext=this,fn(),Framer.CurrentContext=previousContext},Context.prototype.freeze=function(){var eventName,i,j,layer,layerId,layerListeners,len,len1,ref,ref1;if(null!=this._frozenEvents)throw new Error("Context is already frozen");for(this._frozenEvents={},ref=this._layers,i=0,len=ref.length;i<len;i++){for(layer=ref[i],layerListeners={},ref1=layer.listenerEvents(),j=0,len1=ref1.length;j<len1;j++)eventName=ref1[j],layerListeners[eventName]=layer.listeners(eventName);layer.removeAllListeners(),layerId=this._layers.indexOf(layer),this._frozenEvents[layerId]=layerListeners}return this.stopAnimations(),this.resetTimers(),this.resetIntervals()},Context.prototype.resume=function(){var eventName,events,i,layer,layerId,len,listener,listeners,ref;if(null==this._frozenEvents)throw new Error("Context is not frozen, cannot resume");ref=this._frozenEvents;for(layerId in ref){events=ref[layerId],layer=this._layers[layerId];for(eventName in events)for(listeners=events[eventName],i=0,len=listeners.length;i<len;i++)listener=listeners[i],layer.on(eventName,listener)}return this.resetFrozenEvents()},Context.prototype._createDOMEventManager=function(){var ref;return null!=(ref=this.domEventManager)&&ref.reset(),this.domEventManager=new DOMEventManager},Context.prototype._createRootElement=function(){var webkitPerspective;return this._destroyRootElement(),this._element=document.createElement("div"),this._element.id="FramerContextRoot-"+this._name,this._element.classList.add("framerContext"),webkitPerspective=Utils.webkitPerspectiveForValue(this.perspective),null!=webkitPerspective&&(this._element.style.webkitPerspective=webkitPerspective),this._element.style.backgroundColor=this.backgroundColor,this.__pendingElementAppend=function(_this){return function(){var parentElement,ref,ref1;return parentElement=null!=(ref=_this._parent)?ref._element:void 0,null==parentElement&&(parentElement=document.body),parentElement.appendChild(_this._element),_this.elementInDOM=!0,null!=(ref1=_this._layers)?ref1.map(function(l){return l.elementInsertedIntoDocument()}):void 0}}(this),Utils.domComplete(this.__pendingElementAppend)},Context.prototype._destroyRootElement=function(){var ref;return(null!=(ref=this._element)?ref.parentNode:void 0)&&(this._element.parentNode.removeChild(this._element),this.elementInDOM=!1),this.__pendingElementAppend&&(Utils.domCompleteCancel(this.__pendingElementAppend),this.__pendingElementAppend=null),this._element=null},Context.define("width",{get:function(){return null!=this.parent?this.parent.width:window.innerWidth}}),Context.define("height",{get:function(){return null!=this.parent?this.parent.height:window.innerHeight}}),Context.define("innerWidth",{get:function(){return null!=this.parent?this.parent.width/this.devicePixelRatio:window.innerWidth}}),Context.define("innerHeight",{get:function(){return null!=this.parent?this.parent.height/this.devicePixelRatio:window.innerHeight}}),Context.define("frame",{get:function(){return{x:0,y:0,width:this.width,height:this.height}}}),Context.define("innerFrame",{get:function(){return{x:0,y:0,width:this.innerWidth,height:this.innerHeight}}}),Context.define("size",{get:function(){return _.pick(this.frame,["width","height"])}}),Context.define("point",{get:function(){return _.pick(this.frame,["x","y"])}}),Context.define("canvasFrame",{get:function(){return null==this.parent?this.frame:this.parent.canvasFrame}}),Context.define("backgroundColor",{get:function(){return Color.isColor(this._backgroundColor)?this._backgroundColor:"transparent"},set:function(value){var ref;if(Color.isColor(value))return this._backgroundColor=value,null!=(ref=this._element)?ref.style.backgroundColor=new Color(value.toString()):void 0}}),Context.define("perspective",{get:function(){return this._perspective},set:function(value){var ref,webkitPerspective;if(webkitPerspective=Utils.webkitPerspectiveForValue(value),null!=webkitPerspective)return this._perspective=value,null!=(ref=this._element)?ref.style.webkitPerspective=webkitPerspective:void 0}}),Context.prototype._updatePerspective=function(){var ref;return null!=(ref=this._element)?ref.style.webkitPerspectiveOrigin=100*this.perspectiveOriginX+"% "+100*this.perspectiveOriginY+"%":void 0},Context.define("perspectiveOriginX",{get:function(){return _.isNumber(this._perspectiveOriginX)?this._perspectiveOriginX:.5},set:function(value){if(_.isNumber(value))return this._perspectiveOriginX=value,this._updatePerspective()}}),Context.define("perspectiveOriginY",{get:function(){return _.isNumber(this._perspectiveOriginY)?this._perspectiveOriginY:.5},set:function(value){if(_.isNumber(value))return this._perspectiveOriginY=value,this._updatePerspective()}}),Context.define("index",{get:function(){var ref;return(null!=(ref=this._element)?ref.style["z-index"]:void 0)||0||0},set:function(value){if(this._element)return this._element.style["z-index"]=value}}),Context.prototype.containers=function(ignoredArgument,result){var ref;return null==ignoredArgument&&(ignoredArgument=!0),null==result&&(result=[]),null!=this._parent?(result.push(this._parent),null!=(ref=this._parent)?ref.containers(!0,result):void 0):result},Context.prototype.toInspect=function(){var round;return round=function(value){return parseInt(value)===value?parseInt(value):Utils.round(value,1)},"<"+this.constructor.name+" id:"+this.id+" name:"+this._name+" "+round(this.width)+"x"+round(this.height)+">"},Context}(BaseClass)},function(module,exports,__webpack_require__){var DOMEventManagerElement,EventEmitter,EventManagerIdCounter,Utils,_,extend=function(child,parent){function ctor(){this.constructor=child}for(var key in parent)hasProp.call(parent,key)&&(child[key]=parent[key]);return ctor.prototype=parent.prototype,child.prototype=new ctor,child.__super__=parent.prototype,child},hasProp={}.hasOwnProperty,bind=function(fn,me){return function(){return fn.apply(me,arguments)}};_=__webpack_require__(1)._,EventEmitter=__webpack_require__(7).EventEmitter,Utils=__webpack_require__(4),EventManagerIdCounter=1,DOMEventManagerElement=function(superClass){function DOMEventManagerElement(element1){this.element=element1}return extend(DOMEventManagerElement,superClass),DOMEventManagerElement.prototype.addListener=function(eventName,listener,capture){return null==capture&&(capture=!1),listener.capture=capture,DOMEventManagerElement.__super__.addListener.call(this,eventName,listener),this.element.addEventListener(eventName,listener,capture)},DOMEventManagerElement.prototype.removeListener=function(eventName,listener,capture){return null==capture&&(capture=!1),DOMEventManagerElement.__super__.removeListener.call(this,eventName,listener),this.element.removeEventListener(eventName,listener,listener.capture)},DOMEventManagerElement.prototype.addEventListener=DOMEventManagerElement.prototype.addListener,DOMEventManagerElement.prototype.removeEventListener=DOMEventManagerElement.prototype.removeListener,DOMEventManagerElement.prototype.on=DOMEventManagerElement.prototype.addListener,DOMEventManagerElement.prototype.off=DOMEventManagerElement.prototype.removeListener,DOMEventManagerElement}(EventEmitter),exports.DOMEventManager=function(){function DOMEventManager(element){this.remove=bind(this.remove,this),this.wrap=bind(this.wrap,this),this._elements={}}return DOMEventManager.prototype.wrap=function(element){return element._eventManagerId||(element._eventManagerId=EventManagerIdCounter++),this._elements[element._eventManagerId]||(this._elements[element._eventManagerId]=new DOMEventManagerElement(element)),this._elements[element._eventManagerId]},DOMEventManager.prototype.remove=function(element){if(element._eventManagerId)return delete this._elements[element._eventManagerId],element._eventManagerId=0},DOMEventManager.prototype.reset=function(){var element,elementEventManager,ref,results;ref=this._elements,results=[];for(element in ref)elementEventManager=ref[element],results.push(elementEventManager.removeAllListeners());return results},DOMEventManager}()},function(module,exports,__webpack_require__){var Defaults,EventMappers,Events,Layer,Utils,_,wrapComponent,bind=function(fn,me){return function(){return fn.apply(me,arguments)}},extend=function(child,parent){function ctor(){this.constructor=child}for(var key in parent)hasProp.call(parent,key)&&(child[key]=parent[key]);return ctor.prototype=parent.prototype,child.prototype=new ctor,child.__super__=parent.prototype,child},hasProp={}.hasOwnProperty,slice=[].slice,indexOf=[].indexOf||function(item){for(var i=0,l=this.length;i<l;i++)if(i in this&&this[i]===item)return i;return-1};_=__webpack_require__(1)._,Utils=__webpack_require__(4),Layer=__webpack_require__(15).Layer,Events=__webpack_require__(17).Events,Defaults=__webpack_require__(19).Defaults,Events.ScrollStart="scrollstart",Events.Scroll="scroll",Events.ScrollMove=Events.Scroll,Events.ScrollEnd="scrollend",Events.ScrollAnimationDidStart="scrollanimationdidstart",Events.ScrollAnimationDidEnd="scrollanimationdidend",EventMappers={},EventMappers[Events.Move]=Events.Move,EventMappers[Events.ScrollStart]=Events.DragStart,EventMappers[Events.ScrollMove]=Events.DragMove,EventMappers[Events.ScrollEnd]=Events.DragEnd,EventMappers[Events.ScrollAnimationDidStart]=Events.DragAnimationStart,EventMappers[Events.ScrollAnimationDidEnd]=Events.DragAnimationEnd,EventMappers[Events.DirectionLockStart]=Events.DirectionLockStart,exports.ScrollComponent=function(superClass){function ScrollComponent(options){null==options&&(options={}),this._onMouseWheel=bind(this._onMouseWheel,this),this._onAnimationStop=bind(this._onAnimationStop,this),this._onAnimationStep=bind(this._onAnimationStep,this),this._onAnimationStart=bind(this._onAnimationStart,this),this.updateContent=bind(this.updateContent,this),ScrollComponent.__super__.constructor.call(this,Defaults.getDefaults("ScrollComponent",options)),this._contentInset=options.contentInset||Utils.rectZero(),this.setContentLayer(new Layer),this._applyProxyDefaults(options),this._enableMouseWheelHandling(options.mouseWheelEnabled),options.hasOwnProperty("wrap")&&wrapComponent(this,options.wrap)}return extend(ScrollComponent,superClass),ScrollComponent.define("velocity",ScrollComponent.proxyProperty("content.draggable.velocity",{importable:!1,exportable:!1})),ScrollComponent.define("scrollHorizontal",ScrollComponent.proxyProperty("content.draggable.horizontal")),ScrollComponent.define("scrollVertical",ScrollComponent.proxyProperty("content.draggable.vertical")),ScrollComponent.define("speedX",ScrollComponent.proxyProperty("content.draggable.speedX")),ScrollComponent.define("speedY",ScrollComponent.proxyProperty("content.draggable.speedY")),ScrollComponent.define("isDragging",ScrollComponent.proxyProperty("content.draggable.isDragging",{importable:!1,exportable:!1})),ScrollComponent.define("isMoving",ScrollComponent.proxyProperty("content.draggable.isMoving",{importable:!1,exportable:!1})),ScrollComponent.define("isAnimating",ScrollComponent.proxyProperty("content.draggable.isAnimating",{importable:!1,exportable:!1})),ScrollComponent.define("propagateEvents",ScrollComponent.proxyProperty("content.draggable.propagateEvents")),ScrollComponent.define("directionLock",ScrollComponent.proxyProperty("content.draggable.directionLock")),ScrollComponent.define("directionLockThreshold",ScrollComponent.proxyProperty("content.draggable.directionLockThreshold")),ScrollComponent.define("content",{importable:!1,exportable:!1,get:function(){return this._content}}),ScrollComponent.define("mouseWheelSpeedMultiplier",ScrollComponent.simpleProperty("mouseWheelSpeedMultiplier",1)),ScrollComponent.prototype.calculateContentFrame=function(){var contentFrame,size;return this.content?(contentFrame=this.content.contentFrame(),size={x:0,y:0,width:Math.max(this.width,contentFrame.x+contentFrame.width),height:Math.max(this.height,contentFrame.y+contentFrame.height)}):Utils.rectZero()},ScrollComponent.prototype.setContentLayer=function(layer){return this.content&&(this._onAnimationStop(),this.content.off(Events.AnimationStart,this._onAnimationStart),this.content.off(Events.AnimationStop,this._onAnimationStop),this._content.destroy()),this._content=layer,this._content.parent=this,this._content.name="content",this._content.clip=!0,this._content.draggable.enabled=!0,this._content.draggable.momentum=!0,this._content.on("change:children",this.updateContent),this.on("change:width",this.updateContent),this.on("change:height",this.updateContent),this.updateContent(),this.scrollPoint={x:0,y:0},this.content.on(Events.AnimationStart,this._onAnimationStart),this.content.on(Events.AnimationStop,this._onAnimationStop),this._content},ScrollComponent.prototype.updateContent=function(){var constraintsFrame,contentFrame,ref;if(this.content)return contentFrame=this.calculateContentFrame(),this.content.width=contentFrame.width,this.content.height=contentFrame.height,constraintsFrame=this.calculateContentFrame(),constraintsFrame={x:-constraintsFrame.width+this.width-this._contentInset.right,y:-constraintsFrame.height+this.height-this._contentInset.bottom,width:constraintsFrame.width+constraintsFrame.width-this.width+this._contentInset.left+this._contentInset.right,height:constraintsFrame.height+constraintsFrame.height-this.height+this._contentInset.top+this._contentInset.bottom},this.content.draggable.constraints=constraintsFrame,this.scrollPoint=this.scrollPoint,this.content.children.length&&(null!=(ref=this.content.backgroundColor)?ref.isEqual(Framer.Defaults.Layer.backgroundColor):void 0)?this.content.backgroundColor=null:void 0},ScrollComponent.define("scroll",{exportable:!1,get:function(){return this.scrollHorizontal===!0||this.scrollVertical===!0},set:function(value){if(this.content)return value===!1&&this.content.animateStop(),this.scrollHorizontal=this.scrollVertical=value}}),ScrollComponent.prototype._calculateContentPoint=function(scrollPoint){var point;return scrollPoint=_.defaults(scrollPoint,{x:0,y:0}),scrollPoint.x-=this.contentInset.left,scrollPoint.y-=this.contentInset.top,point=this._pointInConstraints(scrollPoint),Utils.pointInvert(point)},ScrollComponent.define("scrollX",{get:function(){return this.content?0-this.content.x+this.contentInset.left:0},set:function(value){if(this.content)return this.content.draggable.animateStop(),this.content.x=this._calculateContentPoint({x:value,y:0}).x}}),ScrollComponent.define("scrollY",{get:function(){return this.content?0-this.content.y+this.contentInset.top:0},set:function(value){if(this.content)return this.content.draggable.animateStop(),this.content.y=this._calculateContentPoint({x:0,y:value}).y}}),ScrollComponent.define("scrollPoint",{importable:!0,exportable:!1,get:function(){var point;return point={x:this.scrollX,y:this.scrollY}},set:function(point){if(this.content)return this.scrollX=point.x,this.scrollY=point.y}}),ScrollComponent.define("scrollFrame",{importable:!0,exportable:!1,get:function(){var rect;return rect=this.scrollPoint,rect.width=this.width,rect.height=this.height,rect},set:function(value){return this.scrollPoint=value}}),ScrollComponent.define("contentInset",{get:function(){return _.clone(this._contentInset)},set:function(contentInset){var contentFrame;if(this._contentInset=Utils.rectZero(Utils.parseRect(contentInset)),this.content)return contentFrame=this.calculateContentFrame(),contentFrame.x=contentFrame.x+this._contentInset.left,contentFrame.y=contentFrame.y+this._contentInset.top,this.content.frame=contentFrame,this.updateContent()}}),ScrollComponent.define("direction",{importable:!1,exportable:!1,get:function(){var direction;return direction=this.content.draggable.direction,"down"===direction?"up":"up"===direction?"down":"right"===direction?"left":"left"===direction?"right":direction}}),ScrollComponent.define("angle",{importable:!1,exportable:!1,get:function(){return this.content?-this.content.draggable.angle:0}}),ScrollComponent.prototype.scrollToPoint=function(point,animate,animationOptions){var contentPoint;return null==animate&&(animate=!0),null==animationOptions&&(animationOptions={curve:"spring(500, 50, 0)"}),contentPoint=this._calculateContentPoint(point),this.content.draggable.animateStop(),animate?(point={},contentPoint.hasOwnProperty("x")&&(point.x=contentPoint.x),contentPoint.hasOwnProperty("y")&&(point.y=contentPoint.y),this.content.animateStop(),this.content.animate(point,animationOptions)):this.content.point=contentPoint},ScrollComponent.prototype.scrollToTop=function(animate,animationOptions){return null==animate&&(animate=!0),null==animationOptions&&(animationOptions={curve:"spring(500, 50, 0)"}),this.scrollToPoint({x:0,y:0},animate,animationOptions)},ScrollComponent.prototype.scrollToLayer=function(contentLayer,originX,originY,animate,animationOptions){var scrollPoint;if(null==originX&&(originX=0),null==originY&&(originY=0),null==animate&&(animate=!0),null==animationOptions&&(animationOptions={curve:"spring(500, 50, 0)"}),contentLayer&&contentLayer.parent!==this.content)throw Error("Can't scroll to this layer because it's not in the ScrollComponent. Add it to the content like layer.parent = scroll.content.");return contentLayer&&0!==this.content.children.length?(scrollPoint=this._scrollPointForLayer(contentLayer,originX,originY),scrollPoint.x-=this.width*originX,scrollPoint.y-=this.height*originY):scrollPoint={x:0,y:0},this.scrollToPoint(scrollPoint,animate,animationOptions),contentLayer},ScrollComponent.prototype.scrollToClosestLayer=function(originX,originY,animate,animationOptions){var closestLayer;return null==originX&&(originX=0),null==originY&&(originY=0),null==animate&&(animate=!0),null==animationOptions&&(animationOptions={curve:"spring(500, 50, 0)"}),closestLayer=this.closestContentLayer(originX,originY,animate,animationOptions),closestLayer?(this.scrollToLayer(closestLayer,originX,originY),closestLayer):(closestLayer||this.scrollToPoint({x:0,y:0}),null)},ScrollComponent.prototype.closestContentLayer=function(originX,originY){var scrollPoint;return null==originX&&(originX=0),null==originY&&(originY=0),scrollPoint=Utils.framePointForOrigin(this.scrollFrame,originX,originY),this.closestContentLayerForScrollPoint(scrollPoint,originX,originY)},ScrollComponent.prototype.closestContentLayerForScrollPoint=function(scrollPoint,originX,originY){return null==originX&&(originX=0),null==originY&&(originY=0),_.head(this._contentLayersSortedByDistanceForScrollPoint(scrollPoint,originX,originY))},ScrollComponent.prototype._onAnimationStart=function(event){return this.content.on("change:frame",this._onAnimationStep)},ScrollComponent.prototype._onAnimationStep=function(event){return this.content.emit(Events.Move,this.content.point),this.emit(Events.Scroll,event)},ScrollComponent.prototype._onAnimationStop=function(){return this.content.off("change:frame",this._onAnimationStep)},ScrollComponent.prototype._scrollPointForLayer=function(layer,originX,originY,clamp){return null==originX&&(originX=0),null==originY&&(originY=0),null==clamp&&(clamp=!0),Utils.framePointForOrigin(layer,originX,originY)},ScrollComponent.prototype._contentLayersSortedByDistanceForScrollPoint=function(scrollPoint,originX,originY){return null==originX&&(originX=0),null==originY&&(originY=0),Utils.frameSortByAbsoluteDistance(scrollPoint,this.content.children,originX,originY)},ScrollComponent.prototype._pointInConstraints=function(point){var maxX,maxY,minX,minY,ref;return ref=this.content.draggable._calculateConstraints(this.content.draggable.constraints),minX=ref.minX,maxX=ref.maxX,minY=ref.minY,maxY=ref.maxY,point={x:-Utils.clamp(-point.x,minX,maxX),y:-Utils.clamp(-point.y,minY,maxY)}},ScrollComponent.prototype.addListener=function(){var eventName,eventNames,i,j,len,listener,results;for(eventNames=2<=arguments.length?slice.call(arguments,0,i=arguments.length-1):(i=0,[]),listener=arguments[i++],ScrollComponent.__super__.addListener.apply(this,arguments),results=[],j=0,len=eventNames.length;j<len;j++)eventName=eventNames[j],indexOf.call(_.keys(EventMappers),eventName)>=0?results.push(this.content.on(EventMappers[eventName],listener)):results.push(void 0);return results},ScrollComponent.prototype.removeListener=function(){var eventName,eventNames,i,j,len,listener,results;for(eventNames=2<=arguments.length?slice.call(arguments,0,i=arguments.length-1):(i=0,[]),listener=arguments[i++],ScrollComponent.__super__.removeListener.apply(this,arguments),results=[],j=0,len=eventNames.length;j<len;j++)eventName=eventNames[j],indexOf.call(_.keys(EventMappers),eventName)>=0?results.push(this.content.off(EventMappers[eventName],listener)):results.push(void 0);
  return results},ScrollComponent.prototype.on=ScrollComponent.prototype.addListener,ScrollComponent.prototype.off=ScrollComponent.prototype.removeListener,ScrollComponent.define("mouseWheelEnabled",{get:function(){return this._mouseWheelEnabled},set:function(value){return this._mouseWheelEnabled=value,this._enableMouseWheelHandling(value)}}),ScrollComponent.prototype._enableMouseWheelHandling=function(enable){return enable?this.on(Events.MouseWheel,this._onMouseWheel):this.off(Events.MouseWheel,this._onMouseWheel)},ScrollComponent.prototype._onMouseWheel=function(event){var deltaX,deltaY,maxX,maxY,minX,minY,point,ref;if(deltaX=0,deltaY=0,this.scrollHorizontal&&(deltaX=event.wheelDeltaX),this.scrollVertical&&(deltaY=event.wheelDeltaY),0!==deltaX||0!==deltaY)return this._mouseWheelScrolling||(this._mouseWheelScrolling=!0,this.emit(Events.ScrollStart,event)),this.content.animateStop(),ref=this.content.draggable._calculateConstraints(this.content.draggable.constraints),minX=ref.minX,maxX=ref.maxX,minY=ref.minY,maxY=ref.maxY,point={x:Utils.clamp(this.content.x+deltaX*this.mouseWheelSpeedMultiplier,minX,maxX),y:Utils.clamp(this.content.y+deltaY*this.mouseWheelSpeedMultiplier,minY,maxY)},this.content.point=point,this.content.emit(Events.Move,point),this.emit(Events.Scroll,event),this._onMouseWheelEnd(event)},ScrollComponent.prototype._onMouseWheelEnd=Utils.debounce(.3,function(event){return this.emit(Events.ScrollEnd,event),this._mouseWheelScrolling=!1}),ScrollComponent.prototype.copy=function(){var contentLayer,copy;return copy=ScrollComponent.__super__.copy.apply(this,arguments),contentLayer=_.head(_.without(copy.children,copy.content)),copy.setContentLayer(contentLayer),copy.props=this.props,copy},ScrollComponent.wrap=function(layer,options){return wrapComponent(new this(options),layer,options)},ScrollComponent}(Layer),wrapComponent=function(instance,layer,options){var isPageComponent,ref,screenFrame,scroll,wrapper;if(null==options&&(options={correct:!0}),!(layer instanceof Layer))throw new Error("ScrollComponent.wrap expects a layer, not "+layer+". Are you sure the layer exists?");return scroll=instance,isPageComponent="PageComponent"===instance.constructor.name,options.correct===!0&&(0!==layer.children.length||isPageComponent||(wrapper=new Layer,wrapper.frame=layer.frame,layer.parent=wrapper,layer.x=layer.y=0,layer=wrapper)),scroll.frame=layer.frame,scroll.parent=layer.parent,scroll.index=layer.index,null==layer.name||isPageComponent||(scroll.name=layer.name),null==scroll.__framerInstanceInfo&&(scroll.__framerInstanceInfo={}),null!=(ref=scroll.__framerInstanceInfo)&&(ref.name=instance.constructor.name),layer.image&&!isPageComponent&&(scroll.image=layer.image,layer.image=null),isPageComponent?scroll.addPage(layer):scroll.setContentLayer(layer),options.correct===!0&&(screenFrame=scroll.screenFrame,screenFrame.x<Screen.width&&screenFrame.x+screenFrame.width>Screen.width&&(scroll.width=Screen.width-screenFrame.x),screenFrame.y<Screen.height&&screenFrame.y+screenFrame.height>Screen.height&&(scroll.height=Screen.height-screenFrame.y)),scroll}},function(module,exports,__webpack_require__){var Events,ScrollComponent,bind=function(fn,me){return function(){return fn.apply(me,arguments)}},extend=function(child,parent){function ctor(){this.constructor=child}for(var key in parent)hasProp.call(parent,key)&&(child[key]=parent[key]);return ctor.prototype=parent.prototype,child.prototype=new ctor,child.__super__=parent.prototype,child},hasProp={}.hasOwnProperty,indexOf=[].indexOf||function(item){for(var i=0,l=this.length;i<l;i++)if(i in this&&this[i]===item)return i;return-1};Events=__webpack_require__(17).Events,ScrollComponent=__webpack_require__(55).ScrollComponent,exports.PageComponent=function(superClass){function PageComponent(options){this._resetHistory=bind(this._resetHistory,this),this._scrollEnd=bind(this._scrollEnd,this),this._scrollMove=bind(this._scrollMove,this),this._scrollStart=bind(this._scrollStart,this),PageComponent.__super__.constructor.call(this,_.defaults(options,{animationOptions:{curve:"spring(500, 50, 0)"}})),this.content.draggable.momentum=!1,this.content.draggable.bounce=!1,this.content.on(Events.DragSessionStart,this._scrollStart),this.content.on(Events.DragSessionEnd,this._scrollEnd),this.content.on("change:frame",_.debounce(this._scrollMove,16)),this.content.on("change:children",this._resetHistory),this._resetHistory()}return extend(PageComponent,superClass),PageComponent.define("originX",PageComponent.simpleProperty("originX",.5)),PageComponent.define("originY",PageComponent.simpleProperty("originY",.5)),PageComponent.define("velocityThreshold",PageComponent.simpleProperty("velocityThreshold",.1)),PageComponent.define("closestPage",{get:function(){return this.closestContentLayerForScrollPoint(this._originScrollPoint(),this.originX,this.originY)}}),PageComponent.define("currentPage",{get:function(){return _.last(this._previousPages)}}),PageComponent.define("previousPage",{get:function(){return this._previousPages[this._previousPages.length-2]}}),PageComponent.prototype.nextPage=function(direction,currentPage,withoutCurrentPage){var layers,point;return null==direction&&(direction="right"),null==currentPage&&(currentPage=null),null==withoutCurrentPage&&(withoutCurrentPage=!0),null==currentPage&&(currentPage=this.currentPage),point={x:0,y:0},currentPage&&(point=Utils.framePointForOrigin(currentPage,this.originX,this.originY)),withoutCurrentPage||(point={x:this.scrollX+this.originX*this.width,y:this.scrollY+this.originY*this.height}),"up"!==direction&&"top"!==direction&&"north"!==direction||(layers=this.content.childrenAbove(point,this.originX,this.originY)),"down"!==direction&&"bottom"!==direction&&"south"!==direction||(layers=this.content.childrenBelow(point,this.originX,this.originY)),"left"!==direction&&"west"!==direction||(layers=this.content.childrenLeft(point,this.originX,this.originY)),"right"!==direction&&"east"!==direction||(layers=this.content.childrenRight(point,this.originX,this.originY)),withoutCurrentPage&&(layers=_.without(layers,currentPage)),layers=Utils.frameSortByAbsoluteDistance(point,layers,this.originX,this.originY),_.head(layers)},PageComponent.prototype.snapToPage=function(page,animate,animationOptions){if(null==animate&&(animate=!0),null==animationOptions&&(animationOptions=null),this.scrollToLayer(page,this.originX,this.originY,animate,animationOptions),this.currentPage!==page)return this._previousPages.push(page),this.emit("change:previousPage",this.previousPage),this.emit("change:currentPage",this.currentPage)},PageComponent.prototype.snapToNextPage=function(direction,animate,animationOptions){var nextPage;return null==direction&&(direction="right"),null==animate&&(animate=!0),null==animationOptions&&(animationOptions=null),null==animationOptions&&(animationOptions=this.animationOptions),nextPage=this.nextPage(direction),null==nextPage&&(nextPage=this.closestPage),this.snapToPage(nextPage,animate,animationOptions)},PageComponent.prototype.snapToPreviousPage=function(animate,animationOptions){if(null==animate&&(animate=!0),null==animationOptions&&(animationOptions=null),this.previousPage)return null==animationOptions&&(animationOptions=this.animationOptions),this.snapToPage(this.previousPage,animate,animationOptions),this._previousPages=this._previousPages.slice(0,+(this._previousPages.length-3)+1||9e9)},PageComponent.prototype.addPage=function(page,direction){var directions,point,ref;if(null==direction&&(direction="right"),directions=["down","bottom","south"]+["right","east"],ref=!direction,indexOf.call(directions,ref)>=0)throw direction="right",new Error(direction+" should be in "+directions);return point={x:0,y:0},this.content.children.length&&("right"!==direction&&"east"!==direction||(point.x=Utils.frameGetMaxX(this.content.contentFrame())),"down"!==direction&&"bottom"!==direction&&"south"!==direction||(point.y=Utils.frameGetMaxY(this.content.contentFrame()))),page.point=point,page.parent!==this.content?page.parent=this.content:this.updateContent()},PageComponent.prototype.horizontalPageIndex=function(page){return _.sortBy(this.content.children,function(l){return l.x}).indexOf(page)},PageComponent.prototype.verticalPageIndex=function(page){return _.sortBy(this.content.children,function(l){return l.y}).indexOf(page)},PageComponent.prototype._scrollStart=function(){return this._currentPage=this.currentPage},PageComponent.prototype._scrollMove=function(){var currentPage;if(currentPage=this.currentPage,currentPage!==_.last(this._previousPages)&&void 0!==currentPage)return this._previousPages.push(currentPage),this.emit("change:currentPage",{old:this.previousPage,new:currentPage})},PageComponent.prototype._scrollEnd=function(){var maximumVelocity,nextPage,velocity,xDisabled,xLock,yDisabled,yLock;if(!this.content.isAnimating)return velocity=this.content.draggable.velocity,xDisabled=!this.scrollHorizontal&&("right"===this.direction||"left"===this.direction),yDisabled=!this.scrollVertical&&("down"===this.direction||"up"===this.direction),xLock=this.content.draggable._directionLockEnabledX&&("right"===this.direction||"left"===this.direction),yLock=this.content.draggable._directionLockEnabledY&&("down"===this.direction||"up"===this.direction),maximumVelocity=Math.max(Math.abs(velocity.x),Math.abs(velocity.y)),maximumVelocity<this.velocityThreshold||xLock||yLock||xDisabled||yDisabled?this.snapToPage(this.closestPage,!0,this.animationOptions):(nextPage=this.nextPage(this.direction,this._currentPage,!1),null==nextPage&&(nextPage=this.closestPage),this.snapToPage(nextPage,!0,this.animationOptions))},PageComponent.prototype._originScrollPoint=function(){var scrollPoint;return scrollPoint=this.scrollPoint,scrollPoint.x+=this.width*this.originX,scrollPoint.y+=this.height*this.originY,scrollPoint},PageComponent.prototype._resetHistory=function(){return this._currentPage=this.closestPage,this._previousPages=[this._currentPage]},PageComponent}(ScrollComponent)},function(module,exports,__webpack_require__){var Events,Knob,Layer,Utils,extend=function(child,parent){function ctor(){this.constructor=child}for(var key in parent)hasProp.call(parent,key)&&(child[key]=parent[key]);return ctor.prototype=parent.prototype,child.prototype=new ctor,child.__super__=parent.prototype,child},hasProp={}.hasOwnProperty,bind=function(fn,me){return function(){return fn.apply(me,arguments)}};Utils=__webpack_require__(4),Layer=__webpack_require__(15).Layer,Events=__webpack_require__(17).Events,Events.SliderValueChange="sliderValueChange",Knob=function(superClass){function Knob(options){Knob.__super__.constructor.call(this,options)}return extend(Knob,superClass),Knob}(Layer),exports.SliderComponent=function(superClass){function SliderComponent(options){null==options&&(options={}),this._updateValue=bind(this._updateValue,this),this._knobDidMove=bind(this._knobDidMove,this),this._setRadius=bind(this._setRadius,this),this._updateFrame=bind(this._updateFrame,this),this._updateKnob=bind(this._updateKnob,this),this._updateFill=bind(this._updateFill,this),this._tapEnd=bind(this._tapEnd,this),this._tapStart=bind(this._tapStart,this),_.defaults(options,{backgroundColor:"#ccc",borderRadius:50,clip:!1,width:300,height:10,value:0,knobSize:30}),null==options.hitArea&&(options.hitArea=options.knobSize),this.knob=new Knob({backgroundColor:"#fff",shadowY:2,shadowBlur:4,shadowColor:"rgba(0, 0, 0, 0.3)",name:"knob"}),this.fill=new Layer({backgroundColor:"#333",width:0,force2d:!0,name:"fill"}),this.sliderOverlay=new Layer({backgroundColor:null,name:"sliderOverlay"}),SliderComponent.__super__.constructor.call(this,options),this.knobSize=options.knobSize,this.knob.parent=this.fill.parent=this.sliderOverlay.parent=this,this.width>this.height?this.fill.height=this.height:this.fill.width=this.width,this.fill.borderRadius=this.sliderOverlay.borderRadius=this.borderRadius,this.knob.draggable.enabled=!0,this.knob.draggable.overdrag=!1,this.knob.draggable.momentum=!0,this.knob.draggable.momentumOptions={friction:5,tolerance:.25},this.knob.draggable.bounce=!1,this.knob.borderRadius=this.knobSize/2,this._updateFrame(),this._updateKnob(),this._updateFill(),this.on("change:frame",this._updateFrame),this.on("change:borderRadius",this._setRadius),this.knob.on("change:size",this._updateKnob),this.knob.on("change:frame",this._updateFill),this.knob.on("change:frame",this._knobDidMove),this.sliderOverlay.on(Events.TapStart,this._tapStart),this.sliderOverlay.on(Events.TapEnd,this._tapEnd)}return extend(SliderComponent,superClass),SliderComponent.prototype._tapStart=function(event){var scaleX,scaleY,touchX,touchY;return event.preventDefault(),this.width>this.height?(touchX=Events.touchEvent(event).clientX-Screen.canvasFrame.x,scaleX=this.canvasScaleX(),this.value=this.valueForPoint(touchX/scaleX-this.screenFrame.x)):(touchY=Events.touchEvent(event).clientY-Screen.canvasFrame.y,scaleY=this.canvasScaleY(),this.value=this.valueForPoint(touchY/scaleY-this.screenFrame.y)),this.knob.draggable._panStart(event),this._updateValue()},SliderComponent.prototype._tapEnd=function(event){return this._updateValue()},SliderComponent.prototype._updateFill=function(){return this.width>this.height?this.fill.width=this.knob.midX:this.fill.height=this.knob.midY},SliderComponent.prototype._updateKnob=function(){return this.width>this.height?(this.knob.midX=this.fill.width,this.knob.centerY()):(this.knob.midY=this.fill.height,this.knob.centerX())},SliderComponent.prototype._updateFrame=function(){return this.knob.draggable.constraints={x:-this.knob.width/2,y:-this.knob.height/2,width:this.width+this.knob.width,height:this.height+this.knob.height},this.constrained&&(this.knob.draggable.constraints={x:0,y:0,width:this.width,height:this.height}),this.hitArea=this.hitArea,this.width>this.height?(this.fill.height=this.height,this.knob.midX=this.pointForValue(this.value),this.knob.centerY()):(this.fill.width=this.width,this.knob.midY=this.pointForValue(this.value),this.knob.centerX()),this.width>this.height?(this.knob.draggable.speedY=0,this.knob.draggable.speedX=1):(this.knob.draggable.speedX=0,this.knob.draggable.speedY=1),this.sliderOverlay.center()},SliderComponent.prototype._setRadius=function(){var radius;return radius=this.borderRadius,this.fill.borderRadius={topLeft:radius,bottomLeft:radius}},SliderComponent.define("constrained",SliderComponent.simpleProperty("constrained",!1)),SliderComponent.define("knobSize",{get:function(){return this._knobSize},set:function(value){var isRound;return isRound=2*this.knob.borderRadius===this._knobSize,this._knobSize=value,this.knob.width=this._knobSize,this.knob.height=this._knobSize,isRound&&(this.knob.borderRadius=this._knobSize/2),this._updateFrame()}}),SliderComponent.define("hitArea",{get:function(){return this._hitArea},set:function(value){return this._hitArea=value,this.width>this.height?(this.sliderOverlay.width=this.width+this.hitArea,this.sliderOverlay.height=this.hitArea):(this.sliderOverlay.width=this.hitArea,this.sliderOverlay.height=this.height+this.hitArea)}}),SliderComponent.define("min",{get:function(){return this._min||0},set:function(value){if(_.isFinite(value))return this._min=value}}),SliderComponent.define("max",{get:function(){return this._max||1},set:function(value){if(_.isFinite(value))return this._max=value}}),SliderComponent.define("value",{get:function(){return this._value},set:function(value){if(_.isFinite(value))return this._value=Utils.clamp(value,this.min,this.max),this.width>this.height?this.knob.midX=this.pointForValue(value):this.knob.midY=this.pointForValue(value),this._updateFill(),this._updateValue()}}),SliderComponent.prototype._knobDidMove=function(){return this.width>this.height?this.value=this.valueForPoint(this.knob.midX):this.value=this.valueForPoint(this.knob.midY)},SliderComponent.prototype._updateValue=function(){if(this._lastUpdatedValue!==this.value)return this._lastUpdatedValue=this.value,this.emit("change:value",this.value),this.emit(Events.SliderValueChange,this.value)},SliderComponent.prototype.pointForValue=function(value){return this.width>this.height?this.constrained?Utils.modulate(value,[this.min,this.max],[0+this.knob.width/2,this.width-this.knob.width/2],!0):Utils.modulate(value,[this.min,this.max],[0,this.width],!0):this.constrained?Utils.modulate(value,[this.min,this.max],[0+this.knob.height/2,this.height-this.knob.height/2],!0):Utils.modulate(value,[this.min,this.max],[0,this.height],!0)},SliderComponent.prototype.valueForPoint=function(value){return this.width>this.height?this.constrained?Utils.modulate(value,[0+this.knob.width/2,this.width-this.knob.width/2],[this.min,this.max],!0):Utils.modulate(value,[0,this.width],[this.min,this.max],!0):this.constrained?Utils.modulate(value,[0+this.knob.height/2,this.height-this.knob.height/2],[this.min,this.max],!0):Utils.modulate(value,[0,this.height],[this.min,this.max],!0)},SliderComponent.prototype.animateToValue=function(value,animationOptions){if(null==animationOptions&&(animationOptions={curve:"spring(300, 25, 0)"}),_.isFinite(value))return this.width>this.height?animationOptions.properties={x:this.pointForValue(value)-this.knob.width/2}:animationOptions.properties={y:this.pointForValue(value)-this.knob.height/2},this.knob.animate(animationOptions)},SliderComponent.prototype.onValueChange=function(cb){return this.on(Events.SliderValueChange,cb)},SliderComponent}(Layer)},function(module,exports,__webpack_require__){var Events,Knob,Layer,Utils,extend=function(child,parent){function ctor(){this.constructor=child}for(var key in parent)hasProp.call(parent,key)&&(child[key]=parent[key]);return ctor.prototype=parent.prototype,child.prototype=new ctor,child.__super__=parent.prototype,child},hasProp={}.hasOwnProperty,bind=function(fn,me){return function(){return fn.apply(me,arguments)}};Utils=__webpack_require__(4),Layer=__webpack_require__(15).Layer,Events=__webpack_require__(17).Events,Events.SliderValueChange="sliderValueChange",Events.SliderMinValueChange="sliderMinValueChange",Events.SliderMaxValueChange="sliderMaxValueChange",Knob=function(superClass){function Knob(options){null==options&&(options={}),_.defaults(options,{backgroundColor:"#fff",shadowY:2,shadowBlur:4,shadowColor:"rgba(0, 0, 0, 0.3)"}),Knob.__super__.constructor.call(this,options)}return extend(Knob,superClass),Knob}(Layer),exports.RangeSliderComponent=function(superClass){function RangeSliderComponent(options){var i,knob,len,ref;for(null==options&&(options={}),this._updateValue=bind(this._updateValue,this),this._knobDidMove=bind(this._knobDidMove,this),this._setRadius=bind(this._setRadius,this),this._updateFrame=bind(this._updateFrame,this),this._updateKnob=bind(this._updateKnob,this),this._updateFill=bind(this._updateFill,this),this._styleKnob=bind(this._styleKnob,this),this._tapEnd=bind(this._tapEnd,this),this._tapStart=bind(this._tapStart,this),_.defaults(options,{backgroundColor:"#ccc",borderRadius:50,clip:!1,width:300,height:10,value:0,knobSize:30}),null==options.hitArea&&(options.hitArea=options.knobSize),this.minKnob=new Knob({name:"minKnob",size:this.knobSize||30}),this.maxKnob=new Knob({name:"maxKnob",size:this.knobSize||30}),this.fill=new Layer({backgroundColor:"#333",width:0,force2d:!0,name:"fill"}),this.sliderOverlay=new Layer({backgroundColor:null,name:"sliderOverlay"}),RangeSliderComponent.__super__.constructor.call(this,options),this.width>this.height?this.fill.height=this.height:this.fill.width=this.width,this.fill.borderRadius=this.sliderOverlay.borderRadius=this.borderRadius,this.knobSize=options.knobSize,this._styleKnob(this.minKnob),this._styleKnob(this.maxKnob),this._updateFrame(),this._updateFill(),this._updateKnob(),this.on("change:frame",this._updateFrame),this.on("change:borderRadius",this._setRadius),ref=[this.minKnob,this.maxKnob],i=0,len=ref.length;i<len;i++)knob=ref[i],knob.on("change:size",this._updateKnob),knob.on("change:frame",this._updateFill),knob.on("change:frame",this._knobDidMove),knob.on("change:frame",this._updateFrame);this.sliderOverlay.on(Events.TapStart,this._tapStart),this.sliderOverlay.on(Events.TapEnd,this._tapEnd)}return extend(RangeSliderComponent,superClass),RangeSliderComponent.prototype._tapStart=function(event){var clickedValue,scaleX,scaleY,touchX,touchY;return event.preventDefault(),this.width>this.height?(touchX=Events.touchEvent(event).clientX-Screen.canvasFrame.x,scaleX=this.canvasScaleX(),clickedValue=this.valueForPoint(touchX/scaleX-this.x),clickedValue>this.maxValue&&(this.maxValue=clickedValue,this.maxKnob.draggable._panStart(event),this.emit(Events.SliderMaxValueChange,this.maxValue)),clickedValue<this.minValue&&(this.minValue=clickedValue,this.minKnob.draggable._panStart(event),this.emit(Events.SliderMinValueChange,this.minValue))):(touchY=Events.touchEvent(event).clientY-Screen.canvasFrame.y,scaleY=this.canvasScaleY(),clickedValue=this.valueForPoint(touchY/scaleY-this.y),clickedValue>this.maxValue&&(this.maxValue=clickedValue,this.maxKnob.draggable._panStart(event),this.emit(Events.SliderMaxValueChange,this.maxValue)),clickedValue<this.minValue&&(this.minValue=clickedValue,this.minKnob.draggable._panStart(event),this.emit(Events.SliderMinValueChange,this.minValue))),this._updateValue()},RangeSliderComponent.prototype._tapEnd=function(event){return this._updateValue()},RangeSliderComponent.prototype._styleKnob=function(knob){return knob.parent=this.fill.parent=this.sliderOverlay.parent=this,knob.borderRadius=this.knobSize/2,_.extend(knob.draggable,{enabled:!0,overdrag:!1,momentum:!0,bounce:!1,momentumOptions:{friction:5,tolerance:.25}})},RangeSliderComponent.prototype._updateFill=function(){return this.width>this.height?(this.fill.x=this.minKnob.midX,this.fill.width=this.maxKnob.midX-this.minKnob.midX):(this.fill.y=this.minKnob.midY,this.fill.height=this.maxKnob.midY-this.minKnob.midY)},RangeSliderComponent.prototype._updateKnob=function(){return this.width>this.height?(this.minKnob.midX=this.fill.x,this.minKnob.centerY(),this.maxKnob.midX=this.fill.x+this.fill.width,this.maxKnob.centerY()):(this.minKnob.midY=this.fill.y,this.minKnob.centerX(),this.maxKnob.midY=this.fill.y+this.fill.height,this.maxKnob.centerX())},RangeSliderComponent.prototype._updateFrame=function(){var i,j,knob,len,len1,ref,ref1;if(this.minKnob.draggable.constraints={x:-this.minKnob.width/2,y:-this.minKnob.height/2,width:this.maxKnob.midX,height:this.maxKnob.midY},this.maxKnob.draggable.constraints={x:this.minKnob.maxX,y:this.minKnob.maxY,width:this.width+this.maxKnob.width,height:this.height+this.maxKnob.height},this.hitArea=this.hitArea,this.width>this.height?(this.fill.height=this.height,this.minKnob.midX=this.pointForValue(this.minValue),this.maxKnob.midX=this.pointForValue(this.maxValue),this.minKnob.centerY()):(this.fill.width=this.width,this.minKnob.midY=this.pointForValue(this.minValue),this.maxKnob.midY=this.pointForValue(this.maxValue),this.minKnob.centerX()),this.width>this.height)for(ref=[this.minKnob,this.maxKnob],i=0,len=ref.length;i<len;i++)knob=ref[i],knob.draggable.speedY=0,knob.draggable.speedX=1;else for(ref1=[this.minKnob,this.maxKnob],j=0,len1=ref1.length;j<len1;j++)knob=ref1[j],knob.draggable.speedX=0,knob.draggable.speedY=1;return this.sliderOverlay.center()},RangeSliderComponent.prototype._setRadius=function(){var radius;return radius=this.borderRadius,this.fill.borderRadius={topLeft:radius,bottomLeft:radius}},RangeSliderComponent.define("constrained",RangeSliderComponent.simpleProperty("constrained",!1)),RangeSliderComponent.define("knobSize",{get:function(){return this._knobSize},set:function(value){var i,isRound,knob,len,ref;for(ref=[this.minKnob,this.maxKnob],i=0,len=ref.length;i<len;i++)knob=ref[i],isRound=2*knob.borderRadius===this._knobSize,this._knobSize=value,knob.size=this._knobSize,isRound&&(knob.borderRadius=this._knobSize/2);return this._updateFrame()}}),RangeSliderComponent.define("hitArea",{get:function(){return this._hitArea},set:function(value){return this._hitArea=value,this.width>this.height?(this.sliderOverlay.width=this.width+this.hitArea,this.sliderOverlay.height=this.hitArea):(this.sliderOverlay.width=this.hitArea,this.sliderOverlay.height=this.height+this.hitArea)}}),RangeSliderComponent.define("min",{get:function(){return this._min||0},set:function(value){if(_.isFinite(value))return this._min=value}}),RangeSliderComponent.define("max",{get:function(){return this._max||1},set:function(value){if(_.isFinite(value))return this._max=value}}),RangeSliderComponent.define("minValue",{get:function(){return this._minValue||0},set:function(value){if(_.isFinite(value))return this._minValue=value,this.width>this.height?this.minKnob.midX=this.pointForValue(value):this.minKnob.midY=this.pointForValue(value),this._updateFill(),this._updateValue()}}),RangeSliderComponent.define("maxValue",{get:function(){return this._maxValue||.5},set:function(value){if(_.isFinite(value))return this._maxValue=value,this.width>this.height?this.maxKnob.midX=this.pointForValue(value):this.maxKnob.midY=this.pointForValue(value),this._updateFill(),this._updateValue()}}),RangeSliderComponent.prototype._knobDidMove=function(){return this.width>this.height?(this.minValue=this.valueForPoint(this.minKnob.midX),this.maxValue=this.valueForPoint(this.maxKnob.midX)):(this.minValue=this.valueForPoint(this.minKnob.midY),this.maxValue=this.valueForPoint(this.maxKnob.midY))},RangeSliderComponent.prototype._updateValue=function(){if(this.emit(Events.SliderValueChange),this.minKnob.draggable.isMoving&&this.emit(Events.SliderMinValueChange,this.minValue),this.maxKnob.draggable.isMoving)return this.emit(Events.SliderMaxValueChange,this.maxValue)},RangeSliderComponent.prototype.pointForValue=function(value){var i,knob,len,ref;for(ref=[this.minKnob,this.maxKnob],i=0,len=ref.length;i<len;i++)return knob=ref[i],this.width>this.height?this.constrained?Utils.modulate(value,[this.min,this.max],[0+knob.width/2,this.width-knob.width/2],!0):Utils.modulate(value,[this.min,this.max],[0,this.width],!0):this.constrained?Utils.modulate(value,[this.min,this.max],[0+knob.height/2,this.height-knob.height/2],!0):Utils.modulate(value,[this.min,this.max],[0,this.height],!0)},RangeSliderComponent.prototype.valueForPoint=function(value){var i,knob,len,ref;for(ref=[this.minKnob,this.maxKnob],i=0,len=ref.length;i<len;i++)return knob=ref[i],this.width>this.height?this.constrained?Utils.modulate(value,[0+knob.width/2,this.width-knob.width/2],[this.min,this.max],!0):Utils.modulate(value,[0,this.width],[this.min,this.max],!0):this.constrained?Utils.modulate(value,[0+knob.height/2,this.height-knob.height/2],[this.min,this.max],!0):Utils.modulate(value,[0,this.height],[this.min,this.max],!0)},RangeSliderComponent.prototype.animateToMinValue=function(value,animationOptions){if(null==animationOptions&&(animationOptions={curve:"spring(250, 25, 0)"}),_.isFinite(value))return this.width>this.height?animationOptions.properties={x:this.pointForValue(value)-this.minKnob.width/2}:animationOptions.properties={y:this.pointForValue(value)-this.minKnob.height/2},this.minKnob.animate(animationOptions)},RangeSliderComponent.prototype.animateToMaxValue=function(value,animationOptions){if(null==animationOptions&&(animationOptions={curve:"spring(250, 25, 0)"}),_.isFinite(value))return this.width>this.height?animationOptions.properties={x:this.pointForValue(value)-this.maxKnob.width/2}:animationOptions.properties={y:this.pointForValue(value)-this.maxKnob.height/2},this.maxKnob.animate(animationOptions)},RangeSliderComponent.prototype.onValueChange=function(cb){return this.on(Events.SliderValueChange,cb)},RangeSliderComponent.prototype.onMinValueChange=function(cb){return this.on(Events.SliderMinValueChange,cb)},RangeSliderComponent.prototype.onMaxValueChange=function(cb){return this.on(Events.SliderMaxValueChange,cb)},RangeSliderComponent}(Layer)},function(module,exports,__webpack_require__){var AppleIMac,AppleMacBook,AppleMacBookAir,AppleMacBookPro,AppleThunderboltDisplay,AppleWatch38BlackLeatherDevice,AppleWatch38Device,AppleWatch42Device,AppleWatchSeries238Device,AppleWatchSeries242Device,BaseClass,BuiltInDevices,Defaults,DellXPS,Devices,Events,HTCa9BaseDevice,HTCm8BaseDevice,Layer,MSFTLumia950BaseDevice,MicrosoftSurfaceBook,MicrosoftSurfacePro3,MicrosoftSurfacePro4,Nexus4BaseDevice,Nexus5BaseDevice,Nexus6BaseDevice,Nexus9BaseDevice,Pixel2BaseDevice,Pixel2XLBaseDevice,PixelBaseDevice,SamsungGalaxyNote5BaseDevice,SamsungGalaxyS8BaseDevice,SonySmartwatch3Base,SonyW85OC,Utils,_,centerLayer,desktopReleaseVersion,googlePixelReleaseVersion,iPadAir2BaseDevice,iPadMini4BaseDevice,iPadProBaseDevice,iPhone5BaseDevice,iPhone5CBaseDevice,iPhone6BaseDevice,iPhone6PlusBaseDevice,iPhone7BaseDevice,iPhone7PlusBaseDevice,iPhone8BaseDevice,iPhone8PlusBaseDevice,iPhoneSEBaseDevice,iPhoneXBaseDevice,iPhoneXReleaseVersion,newDeviceMinVersion,oldDeviceMaxVersion,old_AppleWatch38Device,old_AppleWatch42Device,old_Nexus5BaseDevice,old_Nexus5BaseDeviceHand,old_Nexus9BaseDevice,old_iPadAirBaseDevice,old_iPadAirBaseDeviceHand,old_iPadMiniBaseDevice,old_iPadMiniBaseDeviceHand,old_iPhone5BaseDevice,old_iPhone5BaseDeviceHand,old_iPhone5CBaseDevice,old_iPhone5CBaseDeviceHand,old_iPhone6BaseDevice,old_iPhone6BaseDeviceHand,old_iPhone6PlusBaseDevice,old_iPhone6PlusBaseDeviceHand,redesignMaxVersion,bind=function(fn,me){return function(){return fn.apply(me,arguments)}},extend=function(child,parent){function ctor(){this.constructor=child}for(var key in parent)hasProp.call(parent,key)&&(child[key]=parent[key]);return ctor.prototype=parent.prototype,child.prototype=new ctor,child.__super__=parent.prototype,child},hasProp={}.hasOwnProperty,indexOf=[].indexOf||function(item){for(var i=0,l=this.length;i<l;i++)if(i in this&&this[i]===item)return i;return-1};Utils=__webpack_require__(4),_=__webpack_require__(1)._,BaseClass=__webpack_require__(6).BaseClass,Layer=__webpack_require__(15).Layer,Defaults=__webpack_require__(19).Defaults,Events=__webpack_require__(17).Events,centerLayer=function(layer,snapToPixels){var frame;return null==snapToPixels&&(snapToPixels=!1),frame=layer.frame,layer.parent?(Utils.frameSetMidX(frame,layer.parent.width/2-layer.parent.borderWidth),Utils.frameSetMidY(frame,layer.parent.height/2-layer.parent.borderWidth)):(Utils.frameSetMidX(frame,layer._context.innerWidth/2),Utils.frameSetMidY(frame,layer._context.innerHeight/2)),snapToPixels&&(frame.x=Math.round(frame.x),frame.y=Math.round(frame.y)),layer.frame=frame},exports.DeviceComponent=function(superClass){function DeviceComponent(options){var defaults;null==options&&(options={}),this._orientationChange=bind(this._orientationChange,this),this._viewportOrientationOffset=bind(this._viewportOrientationOffset,this),this._updateMaskImage=bind(this._updateMaskImage,this),this._updateDeviceImage=bind(this._updateDeviceImage,this),this.customize=bind(this.customize,this),this._update=bind(this._update,this),defaults=Defaults.getDefaults("DeviceComponent",options),Framer.Defaults.hasOwnProperty("DeviceView")&&(defaults=_.extend(defaults,Framer.Defaults.DeviceView)),this._setup(),this.animationOptions=defaults.animationOptions,this.deviceType=defaults.deviceType,_.extend(this,_.defaults(options,defaults)),this.Type={Tablet:"tablet",Phone:"phone",Computer:"computer"}}return extend(DeviceComponent,superClass),DeviceComponent.define("context",{get:function(){return this._context}}),DeviceComponent.prototype._setup=function(){var i,layer,len,ref;if(!this._setupDone){for(this._setupDone=!0,this.background=new Layer,this.background.clip=!0,this.background.backgroundColor="transparent",this.background.classList.add("DeviceBackground"),this.hands=new Layer({name:"hands"}),this.handsImageLayer=new Layer({parent:this.hands,name:"handsImage"}),this.phone=new Layer({parent:this.hands,name:"phone"}),this.screenBackground=new Layer({parent:this.hands,name:"screenBackground",backgroundColor:"black"}),this.screen=new Layer({parent:this.hands,name:"phone"}),this.viewport=new Layer({parent:this.screen,name:"screen"}),this.content=new Layer({parent:this.viewport,
  name:"viewport"}),this.screenMask=new Layer({parent:this.screen,name:"mask",backgroundColor:null}),this.content.classList.add("DeviceContent"),this.hands.backgroundColor="transparent",this.hands._alwaysUseImageCache=!0,this.handsImageLayer.backgroundColor="transparent",this.hands.classList.add("DeviceHands"),this.phone.backgroundColor="transparent",this.phone.classList.add("DevicePhone"),this.screen.classList.add("DeviceScreen"),this.screen.clip=!0,this.viewport.backgroundColor="transparent",this.viewport.classList.add("DeviceComponentPort"),this.content.backgroundColor="transparent",this.content.classList.add("DeviceContent"),this.content.originX=0,this.content.originY=0,Utils.isMobile()||Framer.CurrentContext.domEventManager.wrap(window).addEventListener("resize",this._update),Utils.isMobile()&&Framer.CurrentContext.domEventManager.wrap(window).addEventListener("resize",this._orientationChange),ref=[this.background,this.phone,this.viewport,this.content,this.screen,this.screenMask],i=0,len=ref.length;i<len;i++)layer=ref[i],layer.on("touchmove",function(event){return event.preventDefault()});return this.screenMask.ignoreEvents=!0,this.phone.ignoreEvents=!0,this._context=new Framer.Context({parent:this.content,name:"DeviceScreen"}),this._context.perspective=1200,this._context.device=this,this.on("change:orientation",function(){if(Screen.size!==Screen.height)return Screen.emit("resize")})}},DeviceComponent.prototype._update=function(){var backgroundOverlap,contentScaleFactor,height,i,layer,len,pixelRatio,ref,ref1,ref2,screenSizeChanged,width;if(contentScaleFactor=this.contentScale,contentScaleFactor>1&&(contentScaleFactor=1),screenSizeChanged=!1,this._shouldRenderFullScreen()){for(width=document.documentElement.clientWidth/contentScaleFactor,height=document.documentElement.clientHeight/contentScaleFactor,screenSizeChanged=this.content.width!==width||this.content.height!==height,ref=[this.background,this.hands,this.phone,this.viewport,this.content,this.screen,this.screenMask],i=0,len=ref.length;i<len;i++)layer=ref[i],layer.x=layer.y=0,layer.width=width,layer.height=height,layer.scale=1;this.content.scale=contentScaleFactor,("fullscreen"!==this.deviceType||Utils.isMobile())&&(screenSizeChanged=screenSizeChanged||this._context.devicePixelRatio!==window.devicePixelRatio,this._context.devicePixelRatio=window.devicePixelRatio),this.screenBackground.visible="fullscreen"!==this.deviceType,Utils.isMobile()?this.screenMask.visible=!1:this._updateMaskImage()}else{if(backgroundOverlap=100,this.background.x=0-backgroundOverlap,this.background.y=0-backgroundOverlap,this.background.width=window.innerWidth+2*backgroundOverlap,this.background.height=window.innerHeight+2*backgroundOverlap,this.disableSizeUpdates)return;this._updateDeviceImage(),this._updateMaskImage(),this.screenMask.visible=this.hideBezel,this.hands.scale=this._calculatePhoneScale(),centerLayer(this.hands,!0),centerLayer(this.phone),ref1=this._getOrientationDimensions(this._device.screenWidth/contentScaleFactor,this._device.screenHeight/contentScaleFactor),width=ref1[0],height=ref1[1],this.screenMask.width=this.screen.width=this.viewport.width=this._device.screenWidth,this.screenMask.height=this.screen.height=this.viewport.height=this._device.screenHeight,screenSizeChanged=this.content.width!==width||this.content.height!==height,this.content.width=width,this.content.height=height,this.screenBackground.width=this.screen.width+40,this.screenBackground.height=this.screen.height+40,this.selectedHand&&0===this._orientation&&this.setHand(this.selectedHand),centerLayer(this.screenBackground,!0),centerLayer(this.screen,!0),centerLayer(this.screenMask,!0),pixelRatio=null!=(ref2=this._device.devicePixelRatio)?ref2:1,screenSizeChanged=screenSizeChanged||this._context.devicePixelRatio!==pixelRatio,this._context.devicePixelRatio=pixelRatio,window.devicePixelRatio===pixelRatio&&Utils.isDesktop()?(this._context.renderUsingNativePixelRatio=!0,this.content.scale=pixelRatio):(this._context.renderUsingNativePixelRatio=!1,this.content.scale=1)}if(screenSizeChanged)return Screen.emit("resize")},DeviceComponent.prototype._shouldRenderFullScreen=function(){return!this._device||(this.fullScreen===!0||("fullscreen"===this.deviceType||!Utils.isInsideIframe()&&("phone"===Utils.deviceType()&&Utils.deviceType()===this._device.deviceType||("tablet"===Utils.deviceType()&&Utils.deviceType()===this._device.deviceType||"phone"===Utils.deviceType()&&"tablet"===this._device.deviceType))))},DeviceComponent.prototype.setupContext=function(){return Framer.CurrentContext=this._context},DeviceComponent.prototype.platform=function(){return/google|nexus|htc|samsung|sony-smartwatch/.test(this.deviceType)?"Android":/iphone|ipad/.test(this.deviceType)?"iOS":/apple-watch|applewatch/.test(this.deviceType)?"watchOS":/apple|safari/.test(this.deviceType)?"macOS":/microsoft|dell/.test(this.deviceType)?"Windows":null},DeviceComponent.define("fullScreen",{get:function(){return this._fullScreen},set:function(fullScreen){return this._setFullScreen(fullScreen)}}),DeviceComponent.prototype._setFullScreen=function(fullScreen){if("fullscreen"!==this._deviceType&&_.isBoolean(fullScreen)&&fullScreen!==this._fullScreen)return this._fullScreen=fullScreen,fullScreen===!0?(this.phone.image="",this.hands.image=""):this._updateDeviceImage(),this._updateMaskImage(),this._update(),this.emit("change:fullScreen")},DeviceComponent.define("screenSize",{get:function(){var size;return size=this._shouldRenderFullScreen()?Canvas.size:this.isLandscape?{width:this._device.screenHeight,height:this._device.screenWidth}:{width:this._device.screenWidth,height:this._device.screenHeight},size.width/=this._context.devicePixelRatio,size.height/=this._context.devicePixelRatio,size}}),DeviceComponent.prototype.customize=function(deviceProps){return Devices.custom=_.defaults(deviceProps,Devices.custom),this.deviceType="custom",this._update()},DeviceComponent.define("deviceType",{get:function(){return this._deviceType},set:function(deviceType){var device,i,key,lDevicetype,lKey,len,ref,shouldZoomToFit;if(deviceType!==this._deviceType||"custom"===deviceType){if(device=null,_.isString(deviceType))for(lDevicetype=deviceType.toLowerCase(),ref=_.keys(Devices),i=0,len=ref.length;i<len;i++)key=ref[i],lKey=key.toLowerCase(),lDevicetype===lKey&&(device=Devices[key]);if(!device)throw Error("No device named "+deviceType+". Options are: "+_.keys(Devices));if(this._device!==device)return shouldZoomToFit="fullscreen"===this._deviceType,this.screen.backgroundColor="black",null!=device.backgroundColor&&(this.screen.backgroundColor=device.backgroundColor),"computer"===device.deviceType&&Utils.domComplete(function(){return document.body.style.cursor="auto"}),this._device=_.clone(device),this._deviceType=deviceType,this.fullscreen=!1,this._updateDeviceImage(),this._updateMaskImage(),this._update(),this.emit("change:deviceType"),this.viewport.point=this._viewportOrientationOffset(),shouldZoomToFit?this.deviceScale="fit":void 0}}}),DeviceComponent.prototype._updateDeviceImage=function(){if(!/PhantomJS/.test(navigator.userAgent))return this._shouldRenderFullScreen()||this.hideBezel?(this.phone.image="",this.hands.image=""):this._deviceImageUrl(this._deviceImageName())?(this.phone._alwaysUseImageCache=!0,this.phone.image=this._deviceImageUrl(this._deviceImageName()),this.phone.width=this._device.deviceImageWidth,this.phone.height=this._device.deviceImageHeight,this.hands.width=this.phone.width,this.hands.height=this.phone.height):this.phone.image=""},DeviceComponent.prototype._updateMaskImage=function(){return this._device.screenMask?(this.phone.bringToFront(),this.screenMask.image=this._deviceImageUrl(this._device.screenMask),this.screenMask.visible=!0):(this.screenMask.image=null,this.screenMask.visible=!1,this.phone.placeBehind(this.screen))},DeviceComponent.prototype._deviceImageName=function(){return this._device.hasOwnProperty("deviceImage")?this._device.deviceImage:this._deviceType+".png"},DeviceComponent.prototype._deviceImageUrl=function(name){var ref,resourceUrl;if(!name)return null;if(_.startsWith(name,"http://")||_.startsWith(name,"https://"))return name;if(ref=this._deviceType,indexOf.call(BuiltInDevices,ref)<0||"custom"===this._deviceType)return name;if(resourceUrl="//resources.framerjs.com/static/DeviceResources",Utils.isFileUrl(window.location.href)&&(resourceUrl="http:"+resourceUrl),Utils.isFramerStudio()&&window.FramerStudioInfo&&(this._device.minStudioVersion&&Utils.framerStudioVersion()>=this._device.minStudioVersion||!this._device.minStudioVersion)&&(this._device.maxStudioVersion&&Utils.framerStudioVersion()<=this._device.maxStudioVersion||!this._device.maxStudioVersion))return resourceUrl=window.FramerStudioInfo.deviceImagesUrl,resourceUrl+"/"+name.replace(".png",".jp2");if(this._device.deviceImageCompression===!0){if(Utils.isWebPSupported())return resourceUrl+"/"+name.replace(".png",".webp");if(Utils.isJP2Supported())return resourceUrl+"/"+name.replace(".png",".jp2")}return resourceUrl+"/"+name},DeviceComponent.define("hideBezel",{get:function(){var ref;return!!Utils.isFramerStudio()&&(null!=(ref=this._hideBezel)&&ref)},set:function(hideBezel){if(Utils.isFramerStudio())return this._hideBezel=hideBezel,this._update()}}),DeviceComponent.define("deviceScale",{get:function(){return this._shouldRenderFullScreen()?1:this._deviceScale||1},set:function(deviceScale){return this.setDeviceScale(deviceScale,!1)}}),DeviceComponent.prototype.setDeviceScale=function(deviceScale,animate){var phoneScale;if(null==animate&&(animate=!1),deviceScale="fit"===deviceScale||deviceScale<0?"fit":parseFloat(deviceScale),deviceScale!==this._deviceScale&&(this._deviceScale=deviceScale,!this._shouldRenderFullScreen()))return phoneScale="fit"===deviceScale?this._calculatePhoneScale():deviceScale,this.hands.animateStop(),animate?this.hands.animate(_.extend(this.animationOptions,{properties:{scale:phoneScale}})):(this.hands.scale=phoneScale,centerLayer(this.hands,!0)),this.emit("change:deviceScale")},DeviceComponent.prototype._calculatePhoneScale=function(windowWidth,windowHeight){var dimension,height,padding,paddingOffset,phoneScale,ref,ref1,width;return dimension=this.hideBezel?this.screen:this.phone,ref=this._getOrientationDimensions(dimension.width,dimension.height),width=ref[0],height=ref[1],this.hideBezel?padding=0:(paddingOffset=(null!=(ref1=this._device)?ref1.paddingOffset:void 0)||0,padding=2*(this.padding+paddingOffset)),null==windowWidth&&(windowWidth=window.innerWidth),null==windowHeight&&(windowHeight=window.innerHeight),phoneScale=_.min([(windowWidth-padding)/width,(windowHeight-padding)/height]),phoneScale=Math.floor(1024*phoneScale)/1024,phoneScale<1/64&&(phoneScale=1/64),Utils.isFramerStudio()&&this.hideBezel||(30/64<phoneScale&&phoneScale<35/64?phoneScale=.5:15/64<phoneScale&&phoneScale<18/64&&(phoneScale=.25)),phoneScale>1&&!this.hideBezel&&(phoneScale=1),this.emit("change:phoneScale",phoneScale),this._deviceScale&&"fit"!==this._deviceScale?this._deviceScale:phoneScale},DeviceComponent.define("contentScale",{get:function(){return this._contentScale||1},set:function(contentScale){return this.setContentScale(contentScale,!1)}}),DeviceComponent.prototype.setContentScale=function(contentScale,animate){if(null==animate&&(animate=!1),contentScale=parseFloat(contentScale),!(contentScale<=0)&&contentScale!==this._contentScale)return this._contentScale=contentScale,animate?this.content.animate(_.extend(this.animationOptions,{properties:{scale:this._contentScale}})):this.content.scale=this._contentScale,this._update(),this.emit("change:contentScale")},DeviceComponent.define("orientation",{get:function(){return Utils.isMobile()?window.orientation:this._orientation||0},set:function(orientation){return this.setOrientation(orientation,!1)}}),DeviceComponent.prototype.setOrientation=function(orientation,animate,suggestedSize){var animation,contentProperties,handsProperties,options,previousBackgroundColor,previousScreenBackgroundVisiblity,scale;if(null==animate&&(animate=!1),null==suggestedSize&&(suggestedSize=null),Utils.framerStudioVersion()===oldDeviceMaxVersion&&(orientation*=-1),"portrait"===orientation&&(orientation=0),"landscape"===orientation&&(orientation=90),!this._shouldRenderFullScreen()&&(orientation=parseInt(orientation),(0===orientation||90===orientation||orientation===-90)&&orientation!==this._orientation))return this._orientation=orientation,handsProperties={rotationZ:-this._orientation},options=_.clone(this.animationOptions),null!=suggestedSize?(scale=this._calculatePhoneScale(suggestedSize.width,suggestedSize.height),handsProperties.x=suggestedSize.width/2-this.hands.width/2,handsProperties.y=suggestedSize.height/2-this.hands.height/2,options.time=null,options.curve=Spring({tension:342.10059,friction:28.97662})):scale=this._calculatePhoneScale(),handsProperties.scale=scale,contentProperties=this._viewportOrientationOffset(),this.hands.animateStop(),this.viewport.animateStop(),animate?(previousBackgroundColor=this.background.backgroundColor,previousScreenBackgroundVisiblity=this.screenBackground.visible,this.hideBezel&&(this.screenBackground.visible=!1,this.background.backgroundColor=this.screen.backgroundColor,this.disableSizeUpdates=!0),animation=this.hands.animate(_.extend(options,{properties:handsProperties})),this.viewport.animate(_.extend(options,{properties:contentProperties})),animation.on(Events.AnimationEnd,function(_this){return function(){return _this._update()}}(this)),animation.on(Events.AnimationStop,function(_this){return function(){return _this.disableSizeUpdates=!1,_this.background.backgroundColor=previousBackgroundColor,_this.screenBackground.visible=previousScreenBackgroundVisiblity}}(this))):(this.hands.props=handsProperties,this.viewport.props=contentProperties,this._update()),0!==this._orientation&&(this.handsImageLayer.image=""),this.emit("change:orientation",this._orientation)},DeviceComponent.prototype._viewportOrientationOffset=function(){var contentProperties,height,offset,ref,ref1,width,x,y;return ref=this._getOrientationDimensions(this._device.screenWidth,this._device.screenHeight),width=ref[0],height=ref[1],this.content.width=width,this.content.height=height,offset=(this.screen.width-width)/2,this._orientation===-90&&(offset*=-1),ref1=[0,0],x=ref1[0],y=ref1[1],this.isLandscape&&(x=offset,y=offset),contentProperties={rotationZ:this._orientation,x:x,y:y}},DeviceComponent.prototype._orientationChange=function(){return this._orientation=window.orientation,this._update(),this.emit("change:orientation",window.orientation)},DeviceComponent.define("isPortrait",{get:function(){return Math.abs(this.orientation)%180===0}}),DeviceComponent.define("isLandscape",{get:function(){return!this.isPortrait}}),DeviceComponent.define("orientationName",{get:function(){return this.isPortrait?"portrait":this.isLandscape?"landscape":void 0},set:function(orientationName){return this.setOrientation(orientationName,!1)}}),DeviceComponent.prototype.rotateLeft=function(animate){if(null==animate&&(animate=!0),90!==this.orientation)return this.setOrientation(this.orientation+90,animate)},DeviceComponent.prototype.rotateRight=function(animate){if(null==animate&&(animate=!0),this.orientation!==-90)return this.setOrientation(this.orientation-90,animate)},DeviceComponent.prototype._getOrientationDimensions=function(width,height){return this.isLandscape?[height,width]:[width,height]},DeviceComponent.prototype.handSwitchingSupported=function(){return void 0!==this._device.hands&&!this.hideBezel},DeviceComponent.prototype.nextHand=function(){var hand,hands,nextHand,nextHandIndex;if(0===this.hands.rotationZ)return!!(this.handSwitchingSupported()&&(hands=_.keys(this._device.hands),hands.length>0))&&(nextHandIndex=hands.indexOf(this.selectedHand)+1,nextHand="",nextHandIndex<hands.length&&(nextHand=hands[nextHandIndex]),hand=this.setHand(nextHand),this._update(),hand)},DeviceComponent.prototype.setHand=function(hand){var handData;return this.selectedHand=hand,hand&&this.handSwitchingSupported()?(handData=this._device.hands[hand],handData?(this.hands.width=handData.width,this.hands.height=handData.height,centerLayer(this.hands,!0),centerLayer(this.phone),this.handsImageLayer.size=this.hands.size,this.handsImageLayer.y=0,handData.offset&&(this.handsImageLayer.y=handData.offset),this.handsImageLayer.image=this.handImageUrl(hand),hand):void 0):this.handsImageLayer.image=""},DeviceComponent.prototype.handImageUrl=function(hand){var resourceUrl;return resourceUrl="//resources.framerjs.com/static/DeviceResources",Utils.isFileUrl(window.location.href)&&(resourceUrl="http://"+resourceUrl),Utils.isFramerStudio()&&window.FramerStudioInfo&&Utils.framerStudioVersion()>=newDeviceMinVersion?(resourceUrl=window.FramerStudioInfo.deviceImagesUrl,resourceUrl+"/"+hand+".png"):Utils.isWebPSupported()?resourceUrl+"/"+hand+".webp":Utils.isJP2Supported()?resourceUrl+"/"+hand+".jp2":resourceUrl+"/"+hand+".png"},DeviceComponent.prototype.toInspect=function(){return"<Device '"+this.deviceType+"' "+this.screenSize.width+"x"+this.screenSize.height+">"},DeviceComponent.prototype.prepareForSnapshot=function(){return this.hideBezel=!0,this.setDeviceScale(-1,!0),this.screenMask.visible=!1,this.screenBackground.visible=!1,this.background.backgroundColor=null},DeviceComponent}(BaseClass),iPhoneXReleaseVersion=105,googlePixelReleaseVersion=75,desktopReleaseVersion=70,newDeviceMinVersion=53,oldDeviceMaxVersion=52,redesignMaxVersion=92,iPadAir2BaseDevice={deviceImageWidth:1856,deviceImageHeight:2608,deviceImageCompression:!0,screenWidth:1536,screenHeight:2048,devicePixelRatio:2,deviceType:"tablet",minStudioVersion:newDeviceMinVersion},iPadMini4BaseDevice={deviceImageWidth:1936,deviceImageHeight:2688,deviceImageCompression:!0,screenWidth:1536,screenHeight:2048,devicePixelRatio:2,deviceType:"tablet",minStudioVersion:newDeviceMinVersion},iPadProBaseDevice={deviceImageWidth:2448,deviceImageHeight:3432,deviceImageCompression:!0,screenWidth:2048,screenHeight:2732,devicePixelRatio:2,deviceType:"tablet",minStudioVersion:newDeviceMinVersion},iPhoneXBaseDevice={deviceImageWidth:1405,deviceImageHeight:2796,deviceImageCompression:!0,screenWidth:1125,screenHeight:2436,devicePixelRatio:3,deviceType:"phone",minStudioVersion:iPhoneXReleaseVersion,screenMask:"apple-iphone-x-mask.svg",hands:{"iphone-hands-2":{width:3567,height:5558,offset:-15},"iphone-hands-1":{width:3567,height:5558,offset:-15}}},iPhone8BaseDevice={deviceImageWidth:871,deviceImageHeight:1776,deviceImageCompression:!0,screenWidth:750,screenHeight:1334,devicePixelRatio:2,deviceType:"phone",minStudioVersion:iPhoneXReleaseVersion,hands:{"iphone-hands-2":{width:2399,height:3738},"iphone-hands-1":{width:2399,height:3738}}},iPhone8PlusBaseDevice={deviceImageWidth:1436,deviceImageHeight:2876,deviceImageCompression:!0,screenWidth:1242,screenHeight:2208,devicePixelRatio:3,deviceType:"phone",minStudioVersion:iPhoneXReleaseVersion,hands:{"iphone-hands-2":{width:3949,height:6154,offset:-15},"iphone-hands-1":{width:3949,height:6154,offset:-15}}},iPhone7BaseDevice={deviceImageWidth:874,deviceImageHeight:1792,deviceImageCompression:!0,screenWidth:750,screenHeight:1334,devicePixelRatio:2,deviceType:"phone",minStudioVersion:71,maxStudioVersion:iPhoneXReleaseVersion-1,hands:{"iphone-hands-2":{width:2400,height:3740},"iphone-hands-1":{width:2400,height:3740}}},iPhone7PlusBaseDevice={deviceImageWidth:1452,deviceImageHeight:2968,deviceImageCompression:!0,screenWidth:1242,screenHeight:2208,devicePixelRatio:3,deviceType:"phone",minStudioVersion:71,maxStudioVersion:iPhoneXReleaseVersion-1,hands:{"iphone-hands-2":{width:3987,height:6212},"iphone-hands-1":{width:3987,height:6212}}},iPhone6BaseDevice={deviceImageWidth:874,deviceImageHeight:1792,deviceImageCompression:!0,screenWidth:750,screenHeight:1334,devicePixelRatio:2,deviceType:"phone",minStudioVersion:newDeviceMinVersion,maxStudioVersion:redesignMaxVersion,hands:{"iphone-hands-2":{width:2400,height:3740},"iphone-hands-1":{width:2400,height:3740}}},iPhone6PlusBaseDevice={deviceImageWidth:1452,deviceImageHeight:2968,deviceImageCompression:!0,screenWidth:1242,screenHeight:2208,devicePixelRatio:3,deviceType:"phone",minStudioVersion:newDeviceMinVersion,maxStudioVersion:redesignMaxVersion,hands:{"iphone-hands-2":{width:3987,height:6212},"iphone-hands-1":{width:3987,height:6212}}},iPhoneSEBaseDevice={deviceImageWidth:768,deviceImageHeight:1610,deviceImageCompression:!0,screenWidth:640,screenHeight:1136,devicePixelRatio:2,deviceType:"phone",minStudioVersion:iPhoneXReleaseVersion,hands:{"iphone-hands-2":{width:2098,height:3269,offset:19},"iphone-hands-1":{width:2098,height:3269,offset:19}}},iPhone5BaseDevice={deviceImageWidth:768,deviceImageHeight:1612,deviceImageCompression:!0,screenWidth:640,screenHeight:1136,devicePixelRatio:2,deviceType:"phone",minStudioVersion:newDeviceMinVersion,hands:{"iphone-hands-2":{width:2098,height:3269,offset:19},"iphone-hands-1":{width:2098,height:3269,offset:19}}},iPhone5CBaseDevice={deviceImageWidth:776,deviceImageHeight:1620,deviceImageCompression:!0,screenWidth:640,screenHeight:1136,devicePixelRatio:2,deviceType:"phone",minStudioVersion:newDeviceMinVersion,hands:{"iphone-hands-2":{width:2098,height:3269,offset:28},"iphone-hands-1":{width:2098,height:3269,offset:28}}},Nexus4BaseDevice={deviceImageWidth:860,deviceImageHeight:1668,deviceImageCompression:!0,screenWidth:768,screenHeight:1280,devicePixelRatio:2,deviceType:"phone",minStudioVersion:newDeviceMinVersion,maxStudioVersion:iPhoneXReleaseVersion-1,hands:{"iphone-hands-2":{width:2362,height:3681,offset:-52},"iphone-hands-1":{width:2362,height:3681,offset:-52}}},Nexus5BaseDevice={deviceImageWidth:1204,deviceImageHeight:2432,deviceImageCompression:!0,screenWidth:1080,screenHeight:1920,devicePixelRatio:3,deviceType:"phone",minStudioVersion:newDeviceMinVersion,hands:{"iphone-hands-2":{width:3292,height:5130,offset:8},"iphone-hands-1":{width:3292,height:5130,offset:8}}},Nexus6BaseDevice={deviceImageWidth:1576,deviceImageHeight:3220,deviceImageCompression:!0,screenWidth:1440,screenHeight:2560,devicePixelRatio:3.5,deviceType:"phone",minStudioVersion:newDeviceMinVersion,hands:{"iphone-hands-2":{width:4304,height:6707,offset:8},"iphone-hands-1":{width:4304,height:6707,offset:8}}},PixelBaseDevice={deviceImageWidth:1224,deviceImageHeight:2492,deviceImageCompression:!0,screenWidth:1080,screenHeight:1920,devicePixelRatio:2.627,deviceType:"phone",minStudioVersion:googlePixelReleaseVersion,maxStudioVersion:iPhoneXReleaseVersion-1,hands:{"iphone-hands-2":{width:3344,height:5211,offset:23},"iphone-hands-1":{width:3344,height:5211,offset:23}}},Pixel2BaseDevice={deviceImageWidth:1210,deviceImageHeight:2513,deviceImageCompression:!0,screenWidth:1080,screenHeight:1920,devicePixelRatio:2.627,deviceType:"phone",minStudioVersion:iPhoneXReleaseVersion,hands:{"iphone-hands-2":{width:3316,height:5167},"iphone-hands-1":{width:3316,height:5167}}},Pixel2XLBaseDevice={deviceImageWidth:1650,deviceImageHeight:3364,deviceImageCompression:!0,screenWidth:1440,screenHeight:2880,devicePixelRatio:4,deviceType:"phone",minStudioVersion:iPhoneXReleaseVersion,screenMask:"google-pixel-2-xl-mask.svg",hands:{"iphone-hands-2":{width:4530,height:7059},"iphone-hands-1":{width:4521,height:7045}}},Nexus9BaseDevice={deviceImageWidth:1896,deviceImageHeight:2648,deviceImageCompression:!0,screenWidth:1536,screenHeight:2048,devicePixelRatio:2,deviceType:"tablet",minStudioVersion:newDeviceMinVersion},HTCa9BaseDevice={deviceImageWidth:1252,deviceImageHeight:2592,deviceImageCompression:!0,screenWidth:1080,screenHeight:1920,devicePixelRatio:3,deviceType:"phone",minStudioVersion:newDeviceMinVersion,hands:{"iphone-hands-2":{width:3436,height:5354,offset:36},"iphone-hands-1":{width:3436,height:5354,offset:36}}},HTCm8BaseDevice={deviceImageWidth:1232,deviceImageHeight:2572,deviceImageCompression:!0,screenWidth:1080,screenHeight:1920,devicePixelRatio:3,deviceType:"phone",minStudioVersion:newDeviceMinVersion,hands:{"iphone-hands-2":{width:3436,height:5354,offset:12},"iphone-hands-1":{width:3436,height:5354,offset:12}}},MSFTLumia950BaseDevice={deviceImageWidth:1660,deviceImageHeight:3292,deviceImageCompression:!0,screenWidth:1440,screenHeight:2560,devicePixelRatio:4,deviceType:"phone",minStudioVersion:newDeviceMinVersion,hands:{"iphone-hands-2":{width:4494,height:7003,offset:-84},"iphone-hands-1":{width:4494,height:7003,offset:-84}}},SamsungGalaxyNote5BaseDevice={deviceImageWidth:1572,deviceImageHeight:3140,deviceImageCompression:!0,screenWidth:1440,screenHeight:2560,devicePixelRatio:4,deviceType:"phone",minStudioVersion:newDeviceMinVersion,hands:{"iphone-hands-2":{width:4279,height:6668,offset:-24},"iphone-hands-1":{width:4279,height:6668,offset:-84}}},SamsungGalaxyS8BaseDevice={deviceImageWidth:1536,deviceImageHeight:3334,deviceImageCompression:!0,screenWidth:1440,screenHeight:2960,devicePixelRatio:4,deviceType:"phone",minStudioVersion:iPhoneXReleaseVersion,screenMask:"samsung-galaxy-s8-mask.svg",hands:{"iphone-hands-2":{width:4210,height:6560},"iphone-hands-1":{width:4210,height:6560}}},AppleWatchSeries242Device={deviceImageWidth:512,deviceImageHeight:990,deviceImageCompression:!0,screenWidth:312,screenHeight:390,devicePixelRatio:2,minStudioVersion:71},AppleWatchSeries238Device={deviceImageWidth:472,deviceImageHeight:772,deviceImageCompression:!0,screenWidth:272,screenHeight:340,devicePixelRatio:2,minStudioVersion:71},AppleWatch42Device={deviceImageWidth:512,deviceImageHeight:990,deviceImageCompression:!0,screenWidth:312,screenHeight:390,devicePixelRatio:2,minStudioVersion:newDeviceMinVersion,maxStudioVersion:redesignMaxVersion},AppleWatch38Device={deviceImageWidth:472,deviceImageHeight:772,deviceImageCompression:!0,screenWidth:272,screenHeight:340,devicePixelRatio:2,minStudioVersion:newDeviceMinVersion,maxStudioVersion:redesignMaxVersion},AppleWatch38BlackLeatherDevice={deviceImageWidth:472,deviceImageHeight:796,deviceImageCompression:!0,screenWidth:272,screenHeight:340,devicePixelRatio:2,minStudioVersion:newDeviceMinVersion,maxStudioVersion:redesignMaxVersion},SonySmartwatch3Base={deviceImageWidth:444,deviceImageHeight:780,deviceImageCompression:!0,screenWidth:320,screenHeight:320,devicePixelRatio:1.5,minStudioVersion:iPhoneXReleaseVersion},AppleMacBook={deviceImageWidth:3084,deviceImageHeight:1860,deviceImageCompression:!0,screenWidth:2304,screenHeight:1440,devicePixelRatio:2,deviceType:"computer",minStudioVersion:desktopReleaseVersion},AppleMacBookAir={deviceImageWidth:2e3,deviceImageHeight:1220,deviceImageCompression:!0,screenWidth:1440,screenHeight:900,devicePixelRatio:1,deviceType:"computer",minStudioVersion:desktopReleaseVersion},AppleMacBookPro={deviceImageWidth:3820,deviceImageHeight:2320,deviceImageCompression:!0,screenWidth:2880,screenHeight:1800,devicePixelRatio:2,deviceType:"computer",minStudioVersion:desktopReleaseVersion},AppleIMac={deviceImageWidth:5600,deviceImageHeight:5880,deviceImageCompression:!0,screenWidth:5120,screenHeight:2880,devicePixelRatio:2,deviceType:"computer",minStudioVersion:desktopReleaseVersion},AppleThunderboltDisplay={deviceImageWidth:2788,deviceImageHeight:2580,deviceImageCompression:!0,screenWidth:2560,screenHeight:1440,devicePixelRatio:1,deviceType:"computer",minStudioVersion:iPhoneXReleaseVersion},DellXPS={deviceImageWidth:5200,deviceImageHeight:3040,deviceImageCompression:!0,screenWidth:3840,screenHeight:2160,devicePixelRatio:2,deviceType:"computer",minStudioVersion:desktopReleaseVersion},SonyW85OC={deviceImageWidth:1320,deviceImageHeight:860,deviceImageCompression:!0,screenWidth:1280,screenHeight:720,devicePixelRatio:1,minStudioVersion:desktopReleaseVersion},MicrosoftSurfaceBook={deviceImageWidth:4102,deviceImageHeight:2474,deviceImageCompression:!0,screenWidth:3e3,screenHeight:2e3,devicePixelRatio:2,deviceType:"computer",minStudioVersion:iPhoneXReleaseVersion},MicrosoftSurfacePro3={deviceImageWidth:2472,deviceImageHeight:1704,deviceImageCompression:!0,screenWidth:2160,screenHeight:1440,devicePixelRatio:1.5,deviceType:"tablet",minStudioVersion:iPhoneXReleaseVersion},MicrosoftSurfacePro4={deviceImageWidth:3064,deviceImageHeight:2120,deviceImageCompression:!0,screenWidth:2736,screenHeight:1824,devicePixelRatio:2,deviceType:"tablet",minStudioVersion:iPhoneXReleaseVersion},old_iPhone6BaseDevice={deviceImageWidth:870,deviceImageHeight:1738,deviceImageCompression:!0,screenWidth:750,screenHeight:1334,devicePixelRatio:2,deviceType:"phone",maxStudioVersion:oldDeviceMaxVersion},old_iPhone6BaseDeviceHand=_.extend({},old_iPhone6BaseDevice,{deviceImageWidth:1988,deviceImageHeight:2368,deviceImageCompression:!0,paddingOffset:-150,maxStudioVersion:oldDeviceMaxVersion}),old_iPhone6PlusBaseDevice={deviceImageWidth:1460,deviceImageHeight:2900,deviceImageCompression:!0,screenWidth:1242,screenHeight:2208,devicePixelRatio:3,deviceType:"phone",maxStudioVersion:oldDeviceMaxVersion},old_iPhone6PlusBaseDeviceHand=_.extend({},old_iPhone6PlusBaseDevice,{deviceImageWidth:3128,deviceImageHeight:3487,deviceImageCompression:!0,paddingOffset:-150,maxStudioVersion:oldDeviceMaxVersion}),old_iPhone5BaseDevice={deviceImageWidth:780,deviceImageHeight:1608,deviceImageCompression:!0,screenWidth:640,screenHeight:1136,devicePixelRatio:2,deviceType:"phone",maxStudioVersion:oldDeviceMaxVersion},old_iPhone5BaseDeviceHand=_.extend({},old_iPhone5BaseDevice,{deviceImageWidth:1884,deviceImageHeight:2234,deviceImageCompression:!0,paddingOffset:-200,maxStudioVersion:oldDeviceMaxVersion}),old_iPhone5CBaseDevice={deviceImageWidth:776,deviceImageHeight:1612,deviceImageCompression:!0,screenWidth:640,screenHeight:1136,devicePixelRatio:2,deviceType:"phone",maxStudioVersion:oldDeviceMaxVersion},old_iPhone5CBaseDeviceHand=_.extend({},old_iPhone5CBaseDevice,{deviceImageWidth:1894,deviceImageHeight:2244,deviceImageCompression:!0,paddingOffset:-200,maxStudioVersion:oldDeviceMaxVersion}),old_iPadMiniBaseDevice={deviceImageWidth:872,deviceImageHeight:1292,deviceImageCompression:!0,screenWidth:768,screenHeight:1024,devicePixelRatio:1,deviceType:"tablet",maxStudioVersion:oldDeviceMaxVersion},old_iPadMiniBaseDeviceHand=_.extend({},old_iPadMiniBaseDevice,{deviceImageWidth:1380,deviceImageHeight:2072,deviceImageCompression:!0,paddingOffset:-120,maxStudioVersion:oldDeviceMaxVersion}),old_iPadAirBaseDevice={deviceImageWidth:1769,deviceImageHeight:2509,deviceImageCompression:!0,screenWidth:1536,screenHeight:2048,devicePixelRatio:2,deviceType:"tablet",maxStudioVersion:oldDeviceMaxVersion},old_iPadAirBaseDeviceHand=_.extend({},old_iPadAirBaseDevice,{deviceImageWidth:4744,deviceImageHeight:4101,deviceImageCompression:!0,paddingOffset:-120,maxStudioVersion:oldDeviceMaxVersion}),old_Nexus5BaseDevice={deviceImageWidth:1208,deviceImageHeight:2440,deviceImageCompression:!0,screenWidth:1080,screenHeight:1920,devicePixelRatio:3,deviceType:"phone",maxStudioVersion:oldDeviceMaxVersion},old_Nexus5BaseDeviceHand=_.extend({},old_Nexus5BaseDevice,{deviceImageWidth:2692,deviceImageHeight:2996,deviceImageCompression:!0,paddingOffset:-120,maxStudioVersion:oldDeviceMaxVersion}),old_Nexus9BaseDevice={deviceImageWidth:1733,deviceImageHeight:2575,deviceImageCompression:!0,screenWidth:1536,screenHeight:2048,devicePixelRatio:2,deviceType:"tablet",maxStudioVersion:oldDeviceMaxVersion},old_AppleWatch42Device={deviceImageWidth:552,deviceImageHeight:938,deviceImageCompression:!0,screenWidth:312,screenHeight:390,devicePixelRatio:2,maxStudioVersion:oldDeviceMaxVersion},old_AppleWatch38Device={deviceImageWidth:508,deviceImageHeight:900,deviceImageCompression:!0,screenWidth:272,screenHeight:340,devicePixelRatio:2,maxStudioVersion:oldDeviceMaxVersion},Devices={fullscreen:{name:"Fullscreen",deviceType:"desktop",backgroundColor:"transparent"},custom:{name:"Custom",deviceImageWidth:874,deviceImageHeight:1792,screenWidth:750,screenHeight:1334,devicePixelRatio:2,deviceType:"phone"},"apple-ipad-air-2-silver":_.clone(iPadAir2BaseDevice),"apple-ipad-air-2-gold":_.clone(iPadAir2BaseDevice),"apple-ipad-air-2-space-gray":_.clone(iPadAir2BaseDevice),"apple-ipad-mini-4-silver":_.clone(iPadMini4BaseDevice),
  "apple-ipad-mini-4-gold":_.clone(iPadMini4BaseDevice),"apple-ipad-mini-4-space-gray":_.clone(iPadMini4BaseDevice),"apple-ipad-pro-silver":_.clone(iPadProBaseDevice),"apple-ipad-pro-gold":_.clone(iPadProBaseDevice),"apple-ipad-pro-space-gray":_.clone(iPadProBaseDevice),"apple-iphone-x-silver":_.clone(iPhoneXBaseDevice),"apple-iphone-x-space-gray":_.clone(iPhoneXBaseDevice),"apple-iphone-8-silver":_.clone(iPhone8BaseDevice),"apple-iphone-8-gold":_.clone(iPhone8BaseDevice),"apple-iphone-8-space-gray":_.clone(iPhone8BaseDevice),"apple-iphone-8-plus-silver":_.clone(iPhone8PlusBaseDevice),"apple-iphone-8-plus-gold":_.clone(iPhone8PlusBaseDevice),"apple-iphone-8-plus-space-gray":_.clone(iPhone8PlusBaseDevice),"apple-iphone-7-gold":_.clone(iPhone7BaseDevice),"apple-iphone-7-rose-gold":_.clone(iPhone7BaseDevice),"apple-iphone-7-silver":_.clone(iPhone7BaseDevice),"apple-iphone-7-black":_.clone(iPhone7BaseDevice),"apple-iphone-7-jet-black":_.clone(iPhone7BaseDevice),"apple-iphone-7-plus-gold":_.clone(iPhone7PlusBaseDevice),"apple-iphone-7-plus-rose-gold":_.clone(iPhone7PlusBaseDevice),"apple-iphone-7-plus-silver":_.clone(iPhone7PlusBaseDevice),"apple-iphone-7-plus-black":_.clone(iPhone7PlusBaseDevice),"apple-iphone-7-plus-jet-black":_.clone(iPhone7PlusBaseDevice),"apple-iphone-6s-gold":_.clone(iPhone6BaseDevice),"apple-iphone-6s-rose-gold":_.clone(iPhone6BaseDevice),"apple-iphone-6s-silver":_.clone(iPhone6BaseDevice),"apple-iphone-6s-space-gray":_.clone(iPhone6BaseDevice),"apple-iphone-6s-plus-gold":_.clone(iPhone6PlusBaseDevice),"apple-iphone-6s-plus-rose-gold":_.clone(iPhone6PlusBaseDevice),"apple-iphone-6s-plus-silver":_.clone(iPhone6PlusBaseDevice),"apple-iphone-6s-plus-space-gray":_.clone(iPhone6PlusBaseDevice),"apple-iphone-se-gold":_.clone(iPhoneSEBaseDevice),"apple-iphone-se-silver":_.clone(iPhoneSEBaseDevice),"apple-iphone-se-space-gray":_.clone(iPhoneSEBaseDevice),"apple-iphone-se-rose-gold":_.clone(iPhoneSEBaseDevice),"apple-iphone-5s-gold":_.clone(iPhone5BaseDevice),"apple-iphone-5s-silver":_.clone(iPhone5BaseDevice),"apple-iphone-5s-space-gray":_.clone(iPhone5BaseDevice),"apple-iphone-5c-blue":_.clone(iPhone5CBaseDevice),"apple-iphone-5c-green":_.clone(iPhone5CBaseDevice),"apple-iphone-5c-red":_.clone(iPhone5CBaseDevice),"apple-iphone-5c-white":_.clone(iPhone5CBaseDevice),"apple-iphone-5c-yellow":_.clone(iPhone5CBaseDevice),"apple-watch-series-2-38mm-black-steel-black":_.clone(AppleWatchSeries238Device),"apple-watch-series-2-38mm-edition":_.clone(AppleWatchSeries238Device),"apple-watch-series-2-38mm-rose-gold-aluminum-midnight-blue":_.clone(AppleWatchSeries238Device),"apple-watch-series-2-38mm-silver-aluminum-cocoa":_.clone(AppleWatchSeries238Device),"apple-watch-series-2-38mm-silver-aluminum-concrete":_.clone(AppleWatchSeries238Device),"apple-watch-series-2-38mm-silver-aluminum-ocean-blue":_.clone(AppleWatchSeries238Device),"apple-watch-series-2-38mm-silver-aluminum-red":_.clone(AppleWatchSeries238Device),"apple-watch-series-2-38mm-silver-aluminum-turquoise":_.clone(AppleWatchSeries238Device),"apple-watch-series-2-38mm-silver-aluminum-white":_.clone(AppleWatchSeries238Device),"apple-watch-series-2-38mm-silver-aluminum-yellow":_.clone(AppleWatchSeries238Device),"apple-watch-series-2-38mm-space-gray-aluminum-black":_.clone(AppleWatchSeries238Device),"apple-watch-series-2-38mm-sport-aluminum-walnut":_.clone(AppleWatchSeries238Device),"apple-watch-series-2-38mm-steel-white":_.clone(AppleWatchSeries238Device),"apple-watch-series-2-42mm-edition":_.clone(AppleWatchSeries242Device),"apple-watch-series-2-42mm-gold-aluminum-cocoa":_.clone(AppleWatchSeries242Device),"apple-watch-series-2-42mm-rose-gold-aluminum-midnight-blue":_.clone(AppleWatchSeries242Device),"apple-watch-series-2-42mm-silver-aluminum-concrete":_.clone(AppleWatchSeries242Device),"apple-watch-series-2-42mm-silver-aluminum-green":_.clone(AppleWatchSeries242Device),"apple-watch-series-2-42mm-silver-aluminum-light-pink":_.clone(AppleWatchSeries242Device),"apple-watch-series-2-42mm-silver-aluminum-ocean-blue":_.clone(AppleWatchSeries242Device),"apple-watch-series-2-42mm-silver-aluminum-pink-sand":_.clone(AppleWatchSeries242Device),"apple-watch-series-2-42mm-silver-aluminum-red":_.clone(AppleWatchSeries242Device),"apple-watch-series-2-42mm-silver-aluminum-turquoise":_.clone(AppleWatchSeries242Device),"apple-watch-series-2-42mm-silver-aluminum-white":_.clone(AppleWatchSeries242Device),"apple-watch-series-2-42mm-silver-aluminum-yellow":_.clone(AppleWatchSeries242Device),"apple-watch-series-2-42mm-space-black-steel-black":_.clone(AppleWatchSeries242Device),"apple-watch-series-2-42mm-space-gray-aluminum-black":_.clone(AppleWatchSeries242Device),"apple-watch-series-2-42mm-steel-white":_.clone(AppleWatchSeries242Device),"apple-watch-nike-plus-38mm-silver-aluminum-flat-silver-volt":_.clone(AppleWatchSeries238Device),"apple-watch-nike-plus-38mm-silver-aluminum-flat-silver-white":_.clone(AppleWatchSeries238Device),"apple-watch-nike-plus-38mm-space-gray-aluminum-black-cool-gray":_.clone(AppleWatchSeries238Device),"apple-watch-nike-plus-38mm-space-gray-aluminum-black-volt":_.clone(AppleWatchSeries238Device),"apple-watch-nike-plus-42mm-silver-aluminum-flat-silver-volt":_.clone(AppleWatchSeries242Device),"apple-watch-nike-plus-42mm-silver-aluminum-flat-silver-white":_.clone(AppleWatchSeries242Device),"apple-watch-nike-plus-42mm-space-gray-aluminum-black-cool-gray":_.clone(AppleWatchSeries242Device),"apple-watch-nike-plus-42mm-space-gray-aluminum-black-volt":_.clone(AppleWatchSeries242Device),"apple-watch-38mm-gold-black-leather-closed":_.clone(AppleWatch38BlackLeatherDevice),"apple-watch-38mm-rose-gold-black-leather-closed":_.clone(AppleWatch38BlackLeatherDevice),"apple-watch-38mm-stainless-steel-black-leather-closed":_.clone(AppleWatch38BlackLeatherDevice),"apple-watch-38mm-black-steel-black-closed":_.clone(AppleWatch38Device),"apple-watch-38mm-gold-midnight-blue-closed":_.clone(AppleWatch38Device),"apple-watch-38mm-rose-gold-lavender-closed":_.clone(AppleWatch38Device),"apple-watch-38mm-sport-aluminum-blue-closed":_.clone(AppleWatch38Device),"apple-watch-38mm-sport-aluminum-fog-closed":_.clone(AppleWatch38Device),"apple-watch-38mm-sport-aluminum-green-closed":_.clone(AppleWatch38Device),"apple-watch-38mm-sport-aluminum-red-closed":_.clone(AppleWatch38Device),"apple-watch-38mm-sport-aluminum-walnut-closed":_.clone(AppleWatch38Device),"apple-watch-38mm-sport-aluminum-white-closed":_.clone(AppleWatch38Device),"apple-watch-38mm-sport-aluminum-gold-antique-white-closed":_.clone(AppleWatch38Device),"apple-watch-38mm-sport-aluminum-rose-gold-stone-closed":_.clone(AppleWatch38Device),"apple-watch-38mm-sport-space-gray-black-closed":_.clone(AppleWatch38Device),"apple-watch-42mm-black-steel-black-closed":_.clone(AppleWatch42Device),"apple-watch-42mm-gold-black-leather-closed":_.clone(AppleWatch42Device),"apple-watch-42mm-gold-midnight-blue-closed":_.clone(AppleWatch42Device),"apple-watch-42mm-rose-gold-black-leather-closed":_.clone(AppleWatch42Device),"apple-watch-42mm-rose-gold-lavender-closed":_.clone(AppleWatch42Device),"apple-watch-42mm-sport-aluminum-blue-closed":_.clone(AppleWatch42Device),"apple-watch-42mm-sport-aluminum-fog-closed":_.clone(AppleWatch42Device),"apple-watch-42mm-sport-aluminum-green-closed":_.clone(AppleWatch42Device),"apple-watch-42mm-sport-aluminum-red-closed":_.clone(AppleWatch42Device),"apple-watch-42mm-sport-aluminum-walnut-closed":_.clone(AppleWatch42Device),"apple-watch-42mm-sport-aluminum-white-closed":_.clone(AppleWatch42Device),"apple-watch-42mm-sport-aluminum-gold-antique-white-closed":_.clone(AppleWatch42Device),"apple-watch-42mm-sport-aluminum-rose-gold-stone-closed":_.clone(AppleWatch42Device),"apple-watch-42mm-sport-space-gray-black-closed":_.clone(AppleWatch42Device),"apple-watch-42mm-stainless-steel-black-leather-closed":_.clone(AppleWatch42Device),"sony-smartwatch-3-black":_.clone(SonySmartwatch3Base),"sony-smartwatch-3-white":_.clone(SonySmartwatch3Base),"google-nexus-4":_.clone(Nexus4BaseDevice),"google-nexus-5x":_.clone(Nexus5BaseDevice),"google-nexus-6p":_.clone(Nexus6BaseDevice),"google-nexus-9":_.clone(Nexus9BaseDevice),"google-pixel-quite-black":_.clone(PixelBaseDevice),"google-pixel-really-blue":_.clone(PixelBaseDevice),"google-pixel-very-silver":_.clone(PixelBaseDevice),"google-pixel-2-clearly-white":_.clone(Pixel2BaseDevice),"google-pixel-2-just-black":_.clone(Pixel2BaseDevice),"google-pixel-2-kinda-blue":_.clone(Pixel2BaseDevice),"google-pixel-2-xl-black-and-white":_.clone(Pixel2XLBaseDevice),"google-pixel-2-xl-just-black":_.clone(Pixel2XLBaseDevice),"htc-one-a9-black":_.clone(HTCa9BaseDevice),"htc-one-a9-white":_.clone(HTCa9BaseDevice),"htc-one-m8-black":_.clone(HTCm8BaseDevice),"htc-one-m8-gold":_.clone(HTCm8BaseDevice),"htc-one-m8-silver":_.clone(HTCm8BaseDevice),"microsoft-lumia-950-black":_.clone(MSFTLumia950BaseDevice),"microsoft-lumia-950-white":_.clone(MSFTLumia950BaseDevice),"samsung-galaxy-note-5-black":_.clone(SamsungGalaxyNote5BaseDevice),"samsung-galaxy-note-5-gold":_.clone(SamsungGalaxyNote5BaseDevice),"samsung-galaxy-note-5-pink":_.clone(SamsungGalaxyNote5BaseDevice),"samsung-galaxy-note-5-silver-titanium":_.clone(SamsungGalaxyNote5BaseDevice),"samsung-galaxy-note-5-white":_.clone(SamsungGalaxyNote5BaseDevice),"samsung-galaxy-s8-orchid-gray":_.clone(SamsungGalaxyS8BaseDevice),"samsung-galaxy-s8-midnight-black":_.clone(SamsungGalaxyS8BaseDevice),"samsung-galaxy-s8-maple-gold":_.clone(SamsungGalaxyS8BaseDevice),"samsung-galaxy-s8-coral-blue":_.clone(SamsungGalaxyS8BaseDevice),"samsung-galaxy-s8-arctic-silver":_.clone(SamsungGalaxyS8BaseDevice),"apple-macbook":_.clone(AppleMacBook),"apple-macbook-air":_.clone(AppleMacBookAir),"apple-macbook-pro":_.clone(AppleMacBookPro),"dell-xps":_.clone(DellXPS),"apple-imac":_.clone(AppleIMac),"apple-thunderbolt-display":_.clone(AppleThunderboltDisplay),"microsoft-surface-book":_.clone(MicrosoftSurfaceBook),"microsoft-surface-pro-3":_.clone(MicrosoftSurfacePro3),"microsoft-surface-pro-4":_.clone(MicrosoftSurfacePro4),"sony-w85Oc":_.clone(SonyW85OC),"desktop-safari-1024-600":{deviceType:"browser",name:"Desktop Safari 1024 x 600",screenWidth:1024,screenHeight:600,devicePixelRatio:1,deviceImageWidth:1136,deviceImageHeight:760,deviceImageCompression:!0,backgroundColor:"white"},"desktop-safari-1280-800":{deviceType:"browser",name:"Desktop Safari 1280 x 800",screenWidth:1280,screenHeight:800,devicePixelRatio:1,deviceImageWidth:1392,deviceImageHeight:960,deviceImageCompression:!0,backgroundColor:"white"},"desktop-safari-1440-900":{deviceType:"browser",name:"Desktop Safari 1440 x 900",screenWidth:1440,screenHeight:900,devicePixelRatio:1,deviceImageWidth:1552,deviceImageHeight:1060,deviceImageCompression:!0,backgroundColor:"white"},"iphone-6-spacegray":_.clone(old_iPhone6BaseDevice),"iphone-6-spacegray-hand":_.clone(old_iPhone6BaseDeviceHand),"iphone-6-silver":_.clone(old_iPhone6BaseDevice),"iphone-6-silver-hand":_.clone(old_iPhone6BaseDeviceHand),"iphone-6-gold":_.clone(old_iPhone6BaseDevice),"iphone-6-gold-hand":_.clone(old_iPhone6BaseDeviceHand),"iphone-6plus-spacegray":_.clone(old_iPhone6PlusBaseDevice),"iphone-6plus-spacegray-hand":_.clone(old_iPhone6PlusBaseDeviceHand),"iphone-6plus-silver":_.clone(old_iPhone6PlusBaseDevice),"iphone-6plus-silver-hand":_.clone(old_iPhone6PlusBaseDeviceHand),"iphone-6plus-gold":_.clone(old_iPhone6PlusBaseDevice),"iphone-6plus-gold-hand":_.clone(old_iPhone6PlusBaseDeviceHand),"iphone-5s-spacegray":_.clone(old_iPhone5BaseDevice),"iphone-5s-spacegray-hand":_.clone(old_iPhone5BaseDeviceHand),"iphone-5s-silver":_.clone(old_iPhone5BaseDevice),"iphone-5s-silver-hand":_.clone(old_iPhone5BaseDeviceHand),"iphone-5s-gold":_.clone(old_iPhone5BaseDevice),"iphone-5s-gold-hand":_.clone(old_iPhone5BaseDeviceHand),"iphone-5c-green":_.clone(old_iPhone5CBaseDevice),"iphone-5c-green-hand":_.clone(old_iPhone5CBaseDeviceHand),"iphone-5c-blue":_.clone(old_iPhone5CBaseDevice),"iphone-5c-blue-hand":_.clone(old_iPhone5CBaseDeviceHand),"iphone-5c-pink":_.clone(old_iPhone5CBaseDevice),"iphone-5c-pink-hand":_.clone(old_iPhone5CBaseDeviceHand),"iphone-5c-white":_.clone(old_iPhone5CBaseDevice),"iphone-5c-white-hand":_.clone(old_iPhone5CBaseDeviceHand),"iphone-5c-yellow":_.clone(old_iPhone5CBaseDevice),"iphone-5c-yellow-hand":_.clone(old_iPhone5CBaseDeviceHand),"ipad-mini-spacegray":_.clone(old_iPadMiniBaseDevice),"ipad-mini-spacegray-hand":_.clone(old_iPadMiniBaseDeviceHand),"ipad-mini-silver":_.clone(old_iPadMiniBaseDevice),"ipad-mini-silver-hand":_.clone(old_iPadMiniBaseDeviceHand),"ipad-air-spacegray":_.clone(old_iPadAirBaseDevice),"ipad-air-spacegray-hand":_.clone(old_iPadAirBaseDeviceHand),"ipad-air-silver":_.clone(old_iPadAirBaseDevice),"ipad-air-silver-hand":_.clone(old_iPadAirBaseDeviceHand),"nexus-5-black":_.clone(old_Nexus5BaseDevice),"nexus-5-black-hand":_.clone(old_Nexus5BaseDeviceHand),"nexus-9":_.clone(old_Nexus9BaseDevice),"applewatchsport-38-aluminum-sportband-black":_.clone(old_AppleWatch38Device),"applewatchsport-38-aluminum-sportband-blue":_.clone(old_AppleWatch38Device),"applewatchsport-38-aluminum-sportband-green":_.clone(old_AppleWatch38Device),"applewatchsport-38-aluminum-sportband-pink":_.clone(old_AppleWatch38Device),"applewatchsport-38-aluminum-sportband-white":_.clone(old_AppleWatch38Device),"applewatch-38-black-bracelet":_.clone(old_AppleWatch38Device),"applewatch-38-steel-bracelet":_.clone(old_AppleWatch38Device),"applewatchedition-38-gold-buckle-blue":_.clone(old_AppleWatch38Device),"applewatchedition-38-gold-buckle-gray":_.clone(old_AppleWatch38Device),"applewatchedition-38-gold-buckle-red":_.clone(old_AppleWatch38Device),"applewatchedition-38-gold-sportband-black":_.clone(old_AppleWatch38Device),"applewatchedition-38-gold-sportband-white":_.clone(old_AppleWatch38Device),"applewatchsport-42-aluminum-sportband-black":_.clone(old_AppleWatch42Device),"applewatchsport-42-aluminum-sportband-blue":_.clone(old_AppleWatch42Device),"applewatchsport-42-aluminum-sportband-green":_.clone(old_AppleWatch42Device),"applewatchsport-42-aluminum-sportband-pink":_.clone(old_AppleWatch42Device),"applewatchsport-42-aluminum-sportband-white":_.clone(old_AppleWatch42Device),"applewatch-42-black-bracelet":_.clone(old_AppleWatch42Device),"applewatch-42-steel-bracelet":_.clone(old_AppleWatch42Device),"applewatchedition-42-gold-buckle-blue":_.clone(old_AppleWatch42Device),"applewatchedition-42-gold-buckle-gray":_.clone(old_AppleWatch42Device),"applewatchedition-42-gold-buckle-red":_.clone(old_AppleWatch42Device),"applewatchedition-42-gold-sportband-black":_.clone(old_AppleWatch42Device),"applewatchedition-42-gold-sportband-white":_.clone(old_AppleWatch42Device)},exports.DeviceComponent.Devices=Devices,BuiltInDevices=_.keys(Devices)},function(module,exports,__webpack_require__){var Defaults,Layer,Utils,extend=function(child,parent){function ctor(){this.constructor=child}for(var key in parent)hasProp.call(parent,key)&&(child[key]=parent[key]);return ctor.prototype=parent.prototype,child.prototype=new ctor,child.__super__=parent.prototype,child},hasProp={}.hasOwnProperty;Utils=__webpack_require__(4),Defaults=__webpack_require__(19).Defaults,Layer=__webpack_require__(15).Layer,exports.GridComponent=function(superClass){function GridComponent(options){null==options&&(options={}),GridComponent.__super__.constructor.call(this,Defaults.getDefaults("GridComponent",options))}return extend(GridComponent,superClass),GridComponent.define("rows",{get:function(){return this._rows},set:function(value){return this._rows=value,this._render()}}),GridComponent.define("columns",{get:function(){return this._columns},set:function(value){return this._columns=value,this._render()}}),GridComponent.define("spacing",{get:function(){return this._spacing||{horizontal:0,vertical:0}},set:function(value){return _.isNumber(value)&&(value={horizontal:value,vertical:value}),this._spacing=value,this._render()}}),GridComponent.define("renderCell",{get:function(){return this._renderCell||this._defaultRenderCell},set:function(f){if(f!==this._renderCell){if(!_.isFunction(f))throw Error("GridComponent.renderCell should be a function, not "+typeof f);return this._renderCell=f,this.render()}}}),GridComponent.define("cellWidth",{get:function(){return(this.width-this.spacing.horizontal*(this.columns-1))/this.columns}}),GridComponent.define("cellHeight",{get:function(){return(this.height-this.spacing.vertical*(this.rows-1))/this.rows}}),GridComponent.define("cells",{get:function(){return _.values(this._cells)}}),GridComponent.prototype.cellX=function(row){return row*(this.cellWidth+this.spacing.horizontal)},GridComponent.prototype.cellY=function(column){return column*(this.cellHeight+this.spacing.vertical)},GridComponent.prototype.cellFrame=function(column,row){var frame;return frame={x:this.cellX(column),y:this.cellY(row),width:this.cellWidth,height:this.cellHeight}},GridComponent.prototype.cell=function(column,row){return this._cells[column+":"+row]},GridComponent.prototype.render=function(){return this._render()},GridComponent.prototype._render=function(){var cell,column,frame,i,ref,results,row;for(this._reset(),results=[],row=i=ref=this.rows-1;ref<=0?i<=0:i>=0;row=ref<=0?++i:--i)results.push(function(){var j,ref1,results1;for(results1=[],column=j=ref1=this.columns-1;ref1<=0?j<=0:j>=0;column=ref1<=0?++j:--j)frame=this.cellFrame(column,row),cell=new Layer({parent:this,frame:frame,name:"Cell "+column+":"+row}),this.renderCell(cell,row,column),results1.push(this._cells[column+":"+row]=cell);return results1}.call(this));return results},GridComponent.prototype._defaultRenderCell=function(cell,column,row){var fraction;return fraction=column/this.columns+row/this.rows/2,cell.backgroundColor="#28affa",cell.hueRotate=20*column+row%this.columns*(20/(this.columns+1)),Utils.labelLayer(cell,row+":"+column),cell.style.fontSize="30px"},GridComponent.prototype._reset=function(){return _.invokeMap(this.cells,"destroy"),this._cells={}},GridComponent}(Layer)},function(module,exports,__webpack_require__){var AnimationGroup,Events,FlowComponentLayerScrollKey,Layer,LayerStateMachine,LayerStates,Transitions,Utils,findBody,findFooter,findHeader,findPossibleFooter,findPossibleHeader,guessBodyFrame,layoutPage,layoutScroll,bind=function(fn,me){return function(){return fn.apply(me,arguments)}},extend=function(child,parent){function ctor(){this.constructor=child}for(var key in parent)hasProp.call(parent,key)&&(child[key]=parent[key]);return ctor.prototype=parent.prototype,child.prototype=new ctor,child.__super__=parent.prototype,child},hasProp={}.hasOwnProperty,indexOf=[].indexOf||function(item){for(var i=0,l=this.length;i<l;i++)if(i in this&&this[i]===item)return i;return-1},slice=[].slice;Utils=__webpack_require__(4),Layer=__webpack_require__(15).Layer,Events=__webpack_require__(17).Events,LayerStates=__webpack_require__(30).LayerStates,LayerStateMachine=__webpack_require__(31).LayerStateMachine,AnimationGroup=__webpack_require__(49).AnimationGroup,FlowComponentLayerScrollKey="_flowComponentWrapped",Events.TransitionStart="transitionstart",Events.TransitionHalt="transitionhalt",Events.TransitionStop="transitionstop",Events.TransitionEnd="transitionend",exports.FlowComponent=function(superClass){function FlowComponent(layerOrOptions,options){var layer;null==layerOrOptions&&(layerOrOptions={}),null==options&&(options={}),this._runTransition=bind(this._runTransition,this),this._forwardScrollEvents=bind(this._forwardScrollEvents,this),this._handleOverlayTap=bind(this._handleOverlayTap,this),this.showPrevious=bind(this.showPrevious,this),layer=null,layerOrOptions instanceof Layer?(layer=layerOrOptions,options=options):options=layerOrOptions,options=_.defaults({},options,{backgroundColor:"black"}),options.size||(null==options.width&&(options.width=Screen.width),null==options.height&&(options.height=Screen.height)),null==options.clip&&(options.clip=!0),FlowComponent.__super__.constructor.call(this,options),this.reset(),this.overlay=new Layer({name:"overlay",parent:this,size:0,backgroundColor:"black",visible:!1}),this.overlay.onTap(this._handleOverlayTap),layer?this.showNext(layer):this._tempScroll=new ScrollComponent({name:"scrollComponent",parent:this,width:this.width,height:this.height})}return extend(FlowComponent,superClass),FlowComponent.prototype.reset=function(){var i,item,len,ref;if(this._stack)for(ref=this._stack,i=0,len=ref.length;i<len;i++)item=ref[i],item.layer!==this._initial&&(item.layer.visible=!1);if(this._stack=[],this._seen=[],this._current=null,this._isModal=!1,this._initial)return this.showNext(this._initial,{animate:!1})},FlowComponent.define("isModal",{get:function(){return this._isModal}}),FlowComponent.define("stack",{get:function(){return this._stack.map(function(item){return item.layer})}}),FlowComponent.define("current",{get:function(){var ref;return null!=(ref=this._stack[this._stack.length-1])?ref.layer:void 0}}),FlowComponent.define("previous",{get:function(){var ref;return null!=(ref=this._stack[this._stack.length-2])?ref.layer:void 0}}),FlowComponent.define("scroll",{get:function(){var ref;return null!=(ref=this.current)?ref._flowScroll:void 0}}),FlowComponent.define("header",{get:function(){return this._header},set:function(layer){if(layer instanceof Layer)return this._header=layer,this._header.name="header",this._header.width=this.width,this._header.setParentPreservingConstraintValues(this),null==this._header.constraintValues&&(this._header.x=Align.center,this._header.y=Align.top),this.current?this._wrapLayer(this.current):void 0}}),FlowComponent.define("footer",{get:function(){return this._footer},set:function(layer){if(layer instanceof Layer)return this._footer=layer,this._footer.name="footer",this._footer.width=this.width,this._footer.setParentPreservingConstraintValues(this),null==this._footer.constraintValues&&(this._footer.x=Align.center,this._footer.y=Align.bottom),this.current?this._wrapLayer(this.current):void 0}}),FlowComponent.prototype.transition=function(layer,transitionFunction,options){var layerA,layerB,overlay,ref,template,transition,wrappedLayer;if(null==options&&(options={}),!(layer instanceof Layer))throw new Error("FlowComponent.transition expects a layer");if(!transitionFunction)throw new Error("FlowComponent.transition expects transitionFunction");if(layer!==this.current)return null!=(ref=this._tempScroll)&&ref.destroy(),options=_.defaults({},options,{animate:this._firstTransition===!0,scroll:!0,wrap:!0,modal:!1}),this._isModal=options.modal,layer.visible=!0,layer.opacity=1,layer.ignoreEvents=!1,wrappedLayer=layer,options.scroll&&options.wrap&&(wrappedLayer=this._wrapLayer(layer)),wrappedLayer.parent=this,wrappedLayer.visible=!options.animate,layerA=this.current,layerB=wrappedLayer,overlay=this.overlay,template=transitionFunction(this,layerA,layerB,overlay),transition=this._buildTransition(template,layerA,layerB,overlay),this._runTransition(transition,"forward",options.animate,this.current,layer),this._stack.push({layer:layer,transition:transition})},FlowComponent.prototype.showNext=function(layer,options){return null==options&&(options={}),null==this._initial&&(this._initial=layer),this.transition(layer,Transitions.show,options)},FlowComponent.prototype.showPrevious=function(options){var count,i,n,previous,ref;if(null==options&&(options={}),this.previous&&!this.isTransitioning){if(options instanceof Framer._Layer&&(options={}),options=_.defaults({},options,{count:1,animate:!0}),options.count>1)for(count=options.count,n=i=2,ref=count;2<=ref?i<=ref:i>=ref;n=2<=ref?++i:--i)this.showPrevious({animate:!1,count:1});return previous=this._stack.pop(),this._runTransition(null!=previous?previous.transition:void 0,"back",options.animate,this.current,previous.layer)}},FlowComponent.prototype.showOverlayCenter=function(layer,options){return null==options&&(options={}),this._showOverlay(layer,Transitions.overlayCenter,options)},FlowComponent.prototype.showOverlayTop=function(layer,options){return null==options&&(options={}),this._showOverlay(layer,Transitions.overlayTop,options)},FlowComponent.prototype.showOverlayRight=function(layer,options){return null==options&&(options={}),this._showOverlay(layer,Transitions.overlayRight,options)},FlowComponent.prototype.showOverlayBottom=function(layer,options){return null==options&&(options={}),this._showOverlay(layer,Transitions.overlayBottom,options)},FlowComponent.prototype.showOverlayLeft=function(layer,options){return null==options&&(options={}),this._showOverlay(layer,Transitions.overlayLeft,options)},FlowComponent.prototype._showOverlay=function(layer,transition,options){return null==options&&(options={}),this.transition(layer,transition,_.defaults({},options,{animate:!0,scroll:!1,modal:!1}))},FlowComponent.prototype._handleOverlayTap=function(){if(!this.isModal)return this.showPrevious()},FlowComponent.prototype._wrapLayer=function(flowLayer){var content,i,inset,layer,len,previousWrappingContent,previousWrappingScroll,ref,ref1,ref2,scroll,size;if(flowLayer._flowLayer=flowLayer,flowLayer instanceof ScrollComponent)return flowLayer;if(flowLayer._flowWrapped)return flowLayer;for(flowLayer.width=Math.max(flowLayer.width,this.width),flowLayer.height=Math.max(flowLayer.height,this.height),size=this.size,indexOf.call(flowLayer.ancestors(),this)>=0&&(content=null!=flowLayer?flowLayer.parent:void 0,scroll=null!=content?content.parent:void 0,scroll instanceof ScrollComponent&&(previousWrappingScroll=scroll,previousWrappingContent=content)),layer=layoutPage(flowLayer,size),layer=layoutScroll(layer,size),flowLayer!==layer&&0===(null!=previousWrappingContent?previousWrappingContent.children.length:void 0)&&1===(null!=previousWrappingScroll?previousWrappingScroll.children.length:void 0)&&(null!=previousWrappingScroll?previousWrappingScroll.children[0]:void 0)===previousWrappingContent&&previousWrappingScroll.destroy(),layer._flowLayer=flowLayer,ref=[layer].concat(slice.call(layer.children)),i=0,len=ref.length;i<len;i++)scroll=ref[i],this._forwardScrollEvents(scroll),scroll instanceof ScrollComponent&&(inset={},0===scroll.y&&(inset.top=(null!=(ref1=this.header)?ref1.height:void 0)||0),scroll.maxY===this.height&&(inset.bottom=(null!=(ref2=this.footer)?ref2.height:void 0)||0),scroll.contentInset=inset,flowLayer._flowScroll=scroll);return layer instanceof ScrollComponent&&(layer.backgroundColor=this.backgroundColor),layer},FlowComponent.prototype._forwardScrollEvents=function(scroll){var event,fn,i,len,ref;if(scroll instanceof ScrollComponent&&scroll._flowForward!==!0){for(ref=[Events.Move,Events.ScrollStart,Events.ScrollMove,Events.ScrollEnd,Events.ScrollAnimationDidStart,Events.ScrollAnimationDidEnd],fn=function(_this){return function(event){return scroll.on(event,function(){return _this.emit(event,scroll)})}}(this),i=0,len=ref.length;i<len;i++)event=ref[i],fn(event);return scroll._flowForward=!0}},FlowComponent.prototype._runTransition=function(transition,direction,animate,from,to){var a,b;return"forward"===direction?(a=from,b=to):(a=to,b=from),this.emit(Events.TransitionStart,a,b,direction),Utils.delay(0,function(_this){return function(){return _this._firstTransition=!0,transition[direction](animate)}}(this))},FlowComponent.prototype._buildTransition=function(template,layerA,layerB,overlay){var transition;return transition={},transition.forward=function(_this){return function(animate,callback){var animations,forwardEvents,group,options;return null==animate&&(animate=!0),forwardEvents=function(group,direction){return group.once(Events.AnimationHalt,function(){return _this.emit(Events.TransitionHalt,layerA,layerB,direction)}),group.once(Events.AnimationStop,function(){return _this.emit(Events.TransitionStop,layerA,layerB,direction)}),group.once(Events.AnimationEnd,function(){return _this.emit(Events.TransitionEnd,layerA,layerB,direction)})},animations=[],options={instant:!animate},layerA&&template.layerA&&(layerA.visible=!0,animations.push(new Animation(layerA,template.layerA.hide,options))),layerB&&template.layerB&&(layerB.props=template.layerB.hide,layerB.bringToFront(),layerB.visible=!0,animations.push(new Animation(layerB,template.layerB.show,options))),overlay&&template.overlay&&(overlay.visible=!0,overlay.ignoreEvents=!1,overlay.placeBehind(layerB),overlay.props=template.overlay.hide,animations.push(new Animation(overlay,template.overlay.show,options))),overlay&&template.overlay?(_this.header&&_this.header.placeBehind(overlay),_this.footer&&_this.footer.placeBehind(overlay)):(_this.header&&_this.header.bringToFront(),_this.footer&&_this.footer.bringToFront()),group=new AnimationGroup(animations),forwardEvents(group,"forward"),group.once(Events.AnimationEnd,function(){if(layerA&&template.layerA&&(!overlay||!template.overlay))return layerA.visible=!1}),group.start()}}(this),transition.back=function(_this){return function(animate,callback){var animations,forwardEvents,group,options;return null==animate&&(animate=!0),forwardEvents=function(group,direction){return group.once(Events.AnimationHalt,function(){return _this.emit(Events.TransitionHalt,layerB,layerA,direction)}),group.once(Events.AnimationStop,function(){return _this.emit(Events.TransitionStop,layerB,layerA,direction)}),group.once(Events.AnimationEnd,function(){return _this.emit(Events.TransitionEnd,layerB,layerA,direction)})},animations=[],options={instant:!animate},overlay&&template.overlay&&(overlay.visible=!0,overlay.ignoreEvents=!0,animations.push(new Animation(overlay,template.overlay.hide,options))),layerA&&template.layerA&&(layerA.visible=!0,animations.push(new Animation(layerA,template.layerA.show,options))),layerB&&template.layerB&&(layerB.visible=!0,animations.push(new Animation(layerB,template.layerB.hide,options))),group=new AnimationGroup(animations),group.stopAnimations=!1,forwardEvents(group,"back"),group.once(Events.AnimationEnd,function(){if(layerB&&template.layerB)return layerB.visible=!1}),group.start()}}(this),transition},FlowComponent.prototype.onTransitionStart=function(cb){return this.on(Events.TransitionStart,cb)},FlowComponent.prototype.onTransitionHalt=function(cb){return this.on(Events.TransitionHalt,cb)},FlowComponent.prototype.onTransitionStop=function(cb){return this.on(Events.TransitionStop,cb)},FlowComponent.prototype.onTransitionEnd=function(cb){return this.on(Events.TransitionEnd,cb)},FlowComponent.prototype.onStart=function(cb){return this.onTransitionStart(cb)},FlowComponent.prototype.onHalt=function(cb){return this.onTransitionHalt(cb)},FlowComponent.prototype.onStop=function(cb){return this.onTransitionStop(cb)},FlowComponent.prototype.onEnd=function(cb){return this.onTransitionEnd(cb)},FlowComponent}(Layer),findPossibleHeader=function(layer){var attachedLeft,attachedTop,atttachedRight,candidate,child,i,j,len,len1,ref,ref1,ref2,ref3,ref4;for(candidate=null,ref=layer.children,i=0,len=ref.length;i<len;i++)if(child=ref[i],attachedLeft=0===child.x||0===(null!=(ref1=child.constraintValues)?ref1.left:void 0),atttachedRight=child.width===layer.width||0===(null!=(ref2=child.constraintValues)?ref2.right:void 0),attachedTop=0===child.y||0===(null!=(ref3=child.constraintValues)?ref3.top:void 0),attachedLeft&&atttachedRight&&attachedTop){if(candidate)return;candidate=child}if(candidate){for(ref4=layer.children,j=0,len1=ref4.length;j<len1;j++)if(child=ref4[j],candidate!==child&&child.minY<candidate.maxY)return;return candidate}},findPossibleFooter=function(layer){var attachedBottom,attachedLeft,atttachedRight,candidate,child,i,j,len,len1,ref,ref1,ref2,ref3,ref4;for(candidate=null,ref=layer.children,i=0,len=ref.length;i<len;i++)if(child=ref[i],attachedLeft=0===child.x||0===(null!=(ref1=child.constraintValues)?ref1.left:void 0),atttachedRight=child.width===layer.width||0===(null!=(ref2=child.constraintValues)?ref2.right:void 0),attachedBottom=child.maxY===layer.height||0===(null!=(ref3=child.constraintValues)?ref3.bottom:void 0),attachedLeft&&atttachedRight&&attachedBottom){if(candidate)return;candidate=child}if(candidate){for(ref4=layer.children,j=0,len1=ref4.length;j<len1;j++)if(child=ref4[j],
  candidate!==child&&child.maxY>candidate.minY)return;return candidate}},findHeader=function(layer){var footer,header;if(header=findPossibleHeader(layer),footer=findPossibleFooter(layer),!(header&&footer&&header.maxY===footer.minY&&header.height>=footer.height))return header},findFooter=function(layer){var footer,header;if(header=findPossibleHeader(layer),footer=findPossibleFooter(layer),!(header&&footer&&header.maxY===footer.minY&&footer.height>=header.height))return footer},findBody=function(layer,header,footer){var child,i,len,ref;if(header||footer)for(ref=layer.children,i=0,len=ref.length;i<len;i++)if(child=ref[i],child!==header&&child!==footer&&0===child.x&&child.width===layer.width){if(header&&footer&&child.minY===header.maxY&&child.maxY===footer.minY)return child;if(header&&child.minY===header.maxY&&child.maxY===layer.height)return child;if(footer&&0===child.minY&&child.maxY===footer.minY)return child}},guessBodyFrame=function(layer,header,footer){var frame;if((header||footer)&&(null!=header?header.maxY:void 0)!==(null!=footer?footer.minY:void 0)){if(header&&footer)frame={x:0,y:header.height,width:layer.width,height:layer.height-header.height-footer.height};else if(header)frame={x:0,y:header.height,width:layer.width,height:layer.height-header.height};else{if(!footer)return;frame={x:0,y:0,width:layer.width,height:layer.height-footer.height}}if(!(((null!=header?header.height:void 0)||0)>frame.height||((null!=footer?footer.height:void 0)||0)>frame.height))return frame}},layoutPage=function(layer,size){var body,bodyFrame,child,footer,header,headerHeight,i,len,ref,ref1,ref2,scroll;if(header=findHeader(layer),footer=findFooter(layer),!header&&!footer)return layer;if(body=findBody(layer,header,footer),!body&&(bodyFrame=guessBodyFrame(layer,header,footer)))for(body=new Layer({frame:bodyFrame,backgroundColor:null}),ref=layer.children,i=0,len=ref.length;i<len;i++)child=ref[i],child!==header&&child!==footer&&(child.setParentPreservingConstraintValues(body),headerHeight=(null!=header?header.height:void 0)||0,null!=child.constraintValues?null!=(null!=(ref1=child.constraintValues)?ref1.top:void 0)&&(null!=(ref2=child.constraintValues)&&(ref2.top-=headerHeight),child.layout()):child.y-=headerHeight);return body?(bodyFrame=body.frame,bodyFrame.width=size.width,bodyFrame.height=size.height-((null!=header?header.height:void 0)||0)-((null!=footer?footer.height:void 0)||0),body.point=0,body.width=size.width,scroll=layoutScroll(body,bodyFrame),scroll.parent=layer,scroll.frame=bodyFrame,layer.size=size,(null!=footer?footer.maxY:void 0)>size.height&&(footer.maxY=size.height),null!=header&&header.bringToFront(),null!=footer&&footer.bringToFront(),layer):layer},layoutScroll=function(layer,size){var constraints,height,scroll;return layer.width<=size.width&&layer.height<=size.height?layer:(scroll=new ScrollComponent({size:size,name:"scroll"}),height=layer.height,scroll.propagateEvents=!1,constraints=layer.constraintValues,layer.point=0,layer.parent=scroll.content,layer.constraintValues=constraints,scroll.scrollHorizontal=layer.maxX>size.width,scroll.scrollVertical=layer.maxY>size.height,scroll)},Transitions={},Transitions.show=function(nav,layerA,layerB,overlay){var options,transition;return options={curve:"spring(300, 35, 0)"},transition={layerA:{show:{options:options,x:0,y:0},hide:{options:options,x:0-(null!=layerA?layerA.width:void 0)/2,y:0}},layerB:{show:{options:options,x:0,y:0},hide:{options:options,x:layerB.width,y:0}}}},Transitions.overlayCenter=function(nav,layerA,layerB,overlay){var transition;return transition={layerB:{show:{options:{curve:"spring(500, 35, 0)"},x:Align.center,y:Align.center,scale:1,opacity:1},hide:{options:{curve:"spring(500, 35, 0)"},x:Align.center,y:Align.center,scale:.5,opacity:0}},overlay:{show:{options:{time:.1},opacity:.5,x:0,y:0,size:nav.size},hide:{options:{time:.1},opacity:0,x:0,y:0,size:nav.size}}}},Transitions.overlayLeft=function(nav,layerA,layerB,overlay){var transition;return transition={layerB:{show:{options:{curve:"spring(300, 35, 0)"},y:0,x:0},hide:{options:{curve:"spring(300, 35, 0)"},y:0,x:0-(null!=layerB?layerB.width:void 0)}},overlay:{show:{options:{time:.1},opacity:.5,x:0,y:0,size:nav.size},hide:{options:{time:.1},opacity:0,x:0,y:0,size:nav.size}}}},Transitions.overlayRight=function(nav,layerA,layerB,overlay){var transition;return transition={layerB:{show:{options:{curve:"spring(300, 35, 0)"},y:0,x:(null!=nav?nav.width:void 0)-(null!=layerB?layerB.width:void 0)},hide:{options:{curve:"spring(300, 35, 0)"},y:0,x:null!=nav?nav.width:void 0}},overlay:{show:{options:{time:.1},opacity:.5,x:0,y:0,size:nav.size},hide:{options:{time:.1},opacity:0,x:0,y:0,size:nav.size}}}},Transitions.overlayTop=function(nav,layerA,layerB,overlay){var transition;return transition={layerB:{show:{options:{curve:"spring(300, 35, 0)"},x:Align.center,y:0},hide:{options:{curve:"spring(300, 35, 0)"},x:Align.center,maxY:0}},overlay:{show:{options:{time:.1},opacity:.5,x:0,y:0,size:nav.size},hide:{options:{time:.1},opacity:0,x:0,y:0,size:nav.size}}}},Transitions.overlayBottom=function(nav,layerA,layerB,overlay){var transition;return transition={layerB:{show:{options:{curve:"spring(300, 35, 0)"},x:Align.center,y:(null!=nav?nav.height:void 0)-(null!=layerB?layerB.height:void 0)},hide:{options:{curve:"spring(300, 35, 0)"},x:Align.center,y:null!=nav?nav.height:void 0}},overlay:{show:{options:{time:.1},opacity:.5,x:0,y:0,size:nav.size},hide:{options:{time:.1},opacity:0,x:0,y:0,size:nav.size}}}}},function(module,exports,__webpack_require__){var Layer,extend=function(child,parent){function ctor(){this.constructor=child}for(var key in parent)hasProp.call(parent,key)&&(child[key]=parent[key]);return ctor.prototype=parent.prototype,child.prototype=new ctor,child.__super__=parent.prototype,child},hasProp={}.hasOwnProperty;Layer=__webpack_require__(15).Layer,exports.CircularProgressComponent=function(superClass){function CircularProgressComponent(options){null==options&&(options={}),CircularProgressComponent.__super__.constructor.apply(this,arguments),this.svg=document.createElementNS("http://www.w3.org/2000/svg","svg"),this.svg.setAttribute("width","100%"),this.svg.setAttribute("height","100%"),this.svg.setAttributeNS("http://www.w3.org/2000/xmlns/","xmlns:xlink","http://www.w3.org/1999/xlink"),this.backgroundColor=null,this.rotation=-90,this.rails=this.addShape("circle"),this.rails.setAttribute("fill","transparent"),this.circle=this.addShape("circle"),this.circle.setAttribute("fill","transparent"),this.strokeWidth=1,this.progress=0,this.railsColor=Color.grey(.2),this.progressColor=Color.grey(1),this._element.appendChild(this.svg)}return extend(CircularProgressComponent,superClass),CircularProgressComponent.prototype.addShape=function(type){var shape;return shape=document.createElementNS("http://www.w3.org/2000/svg","circle"),this.svg.appendChild(shape),shape},CircularProgressComponent.define("radius",{get:function(){return this.width/2-this.strokeWidth/2}}),CircularProgressComponent.define("strokeWidth",{get:function(){return this._strokeWidth||1},set:function(value){return this._strokeWidth=value,this.rails.cx.baseVal.value=this.width/2,this.rails.cy.baseVal.value=this.width/2,this.rails.r.baseVal.value=this.radius,this.rails.setAttribute("stroke-width",value),this.circle.cx.baseVal.value=this.width/2,this.circle.cy.baseVal.value=this.width/2,this.circle.r.baseVal.value=this.radius,this.circle.setAttribute("stroke-width",value)}}),CircularProgressComponent.define("progressColor",{get:function(){return this._progressColor||Color.grey(1)},set:function(value){return this.circle.setAttribute("stroke",value)}}),CircularProgressComponent.define("railsColor",{get:function(){return this._progressColor||Color.grey(.1)},set:function(value){return this.rails.setAttribute("stroke",value)}}),CircularProgressComponent.define("progress",{get:function(){return this._progress||0},set:function(value){var strokeDashArray,strokeDashOffset;return this._progress=Utils.clamp(value,0,1),strokeDashArray=this.radius*Math.PI*2,strokeDashOffset=(1-this.progress)*strokeDashArray,this.circle.setAttribute("stroke-dasharray",strokeDashArray),this.circle.setAttribute("stroke-dashoffset",strokeDashOffset)}}),CircularProgressComponent.prototype.setProgress=function(value,animated,animationOptions){var animationProperties,dynamicTime;return null==animated&&(animated=!0),null==animationOptions&&(animationOptions={}),animated?(dynamicTime=.3*Math.abs(this.progress-value),animationOptions=_.defaults(animationOptions,{curve:"linear",time:dynamicTime}),animationProperties={progress:Utils.clamp(value,0,1)},this.animate(animationProperties,animationOptions)):this.progress=value},CircularProgressComponent}(Layer)},function(module,exports,__webpack_require__){var BaseClass,Events,MIDIComponent,MIDIInput,_,extend=function(child,parent){function ctor(){this.constructor=child}for(var key in parent)hasProp.call(parent,key)&&(child[key]=parent[key]);return ctor.prototype=parent.prototype,child.prototype=new ctor,child.__super__=parent.prototype,child},hasProp={}.hasOwnProperty;_=__webpack_require__(1)._,BaseClass=__webpack_require__(6).BaseClass,Events=__webpack_require__(17).Events,MIDIInput=__webpack_require__(64).MIDIInput,Events.MIDIComponentValueChange="MIDIComponentValueChange",MIDIComponent=function(superClass){function MIDIComponent(options){null==options&&(options={}),MIDIComponent.__super__.constructor.call(this,options),MIDIInput.enabled=!0,MIDIInput.onCommand(function(_this){return function(source,timeStamp,data){var b1,b2,b3,channel,command,data1,data2,info;if(b1=data[0],b2=data[1],b3=data[2],command=240&b1,channel=(15&b1)+1,data1=127&b2,data2=127&b3,!(176!==command&&144!==command&&128!==command||null!=_this.source&&_this.source!==source||null!=_this.channel&&_this.channel!==channel||null!=_this.control&&_this.control!==data1))return info={source:source,channel:channel,control:data1},144!==command&&128!==command||(info=_.defaults(info,{type:"note"})),_this.emit(Events.MIDIComponentValueChange,_this._modulate(data2),info)}}(this))}return extend(MIDIComponent,superClass),MIDIComponent.define("min",MIDIComponent.simpleProperty("min",0)),MIDIComponent.define("max",MIDIComponent.simpleProperty("max",127)),MIDIComponent.define("control",MIDIComponent.simpleProperty("control",null)),MIDIComponent.define("channel",MIDIComponent.simpleProperty("channel",null)),MIDIComponent.define("source",MIDIComponent.simpleProperty("source",null)),MIDIComponent.prototype._modulate=function(value){return Utils.modulate(value,[0,127],[this.min,this.max])},MIDIComponent.prototype.onValueChange=function(cb){return this.on(Events.MIDIComponentValueChange,cb)},MIDIComponent}(BaseClass),exports.MIDIComponent=MIDIComponent},function(module,exports,__webpack_require__){var BaseClass,Events,MIDIInput,bind=function(fn,me){return function(){return fn.apply(me,arguments)}},extend=function(child,parent){function ctor(){this.constructor=child}for(var key in parent)hasProp.call(parent,key)&&(child[key]=parent[key]);return ctor.prototype=parent.prototype,child.prototype=new ctor,child.__super__=parent.prototype,child},hasProp={}.hasOwnProperty;BaseClass=__webpack_require__(6).BaseClass,Events=__webpack_require__(17).Events,Events.MIDICommand="midiCommand",MIDIInput=function(superClass){function MIDIInput(){return this._onmidimessage=bind(this._onmidimessage,this),this._requestResolved=bind(this._requestResolved,this),MIDIInput.__super__.constructor.apply(this,arguments)}return extend(MIDIInput,superClass),MIDIInput.define("enabled",{get:function(){var ref;return(null!=(ref=this._inputs)?ref.length:void 0)||this._request},set:function(value){var ref;if(value!==this.enabled)return window.parent.navigator.requestMIDIAccess?value?this._request=window.parent.navigator.requestMIDIAccess().then(this._requestResolved,this._requestRejected):(null!=(ref=this._inputs)&&ref.map(close),this._request=null,this._inputs=[]):this._requestRejected()}}),MIDIInput.prototype._requestResolved=function(access){return null==this._inputs&&(this._inputs=[]),access.inputs.forEach(function(_this){return function(input){return _this._inputs.push(input),input.onmidimessage=_this._onmidimessage(input.id)}}(this))},MIDIInput.prototype._requestRejected=function(error){throw Error("Requesting MIDI access failed: "+(null!=error?error:"not supported by browser"))},MIDIInput.prototype._onmidimessage=function(sourceID){return function(_this){return function(message){return _this.emit(Events.MIDICommand,sourceID,message.timeStamp,message.data)}}(this)},MIDIInput.prototype.onCommand=function(cb){return this.on(Events.MIDICommand,cb)},MIDIInput}(BaseClass),exports.MIDIInput=new MIDIInput},function(module,exports,__webpack_require__){var Config,EventEmitter,Utils,_,getTime,bind=function(fn,me){return function(){return fn.apply(me,arguments)}},extend=function(child,parent){function ctor(){this.constructor=child}for(var key in parent)hasProp.call(parent,key)&&(child[key]=parent[key]);return ctor.prototype=parent.prototype,child.prototype=new ctor,child.__super__=parent.prototype,child},hasProp={}.hasOwnProperty;_=__webpack_require__(1)._,Utils=__webpack_require__(4),Config=__webpack_require__(16).Config,EventEmitter=__webpack_require__(7).EventEmitter,getTime=function(){return 1e3*Utils.getTime()},exports.AnimationLoop=function(superClass){function AnimationLoop(){this.start=bind(this.start,this),this.delta=1/60,this.raf=!0,Utils.webkitVersion()>600&&Utils.webkitVersion()<601&&(Utils.isFramerStudio()||Utils.isDesktop())&&(this.raf=!1),this.maximumListeners=Infinity}return extend(AnimationLoop,superClass),AnimationLoop.prototype.start=function(){var _timestamp,animationLoop,tick,update;return animationLoop=this,_timestamp=getTime(),update=function(){var delta,timestamp;return animationLoop.delta?delta=animationLoop.delta:(timestamp=getTime(),delta=(timestamp-_timestamp)/1e3,_timestamp=timestamp),animationLoop.emit("update",delta),animationLoop.emit("render",delta)},(tick=function(timestamp){return animationLoop.raf?(window.requestAnimationFrame(tick),update()):window.setTimeout(function(){return window.requestAnimationFrame(tick),update()},0)})()},AnimationLoop}(EventEmitter)},function(module,exports,__webpack_require__){var Animator,bind=function(fn,me){return function(){return fn.apply(me,arguments)}},extend=function(child,parent){function ctor(){this.constructor=child}for(var key in parent)hasProp.call(parent,key)&&(child[key]=parent[key]);return ctor.prototype=parent.prototype,child.prototype=new ctor,child.__super__=parent.prototype,child},hasProp={}.hasOwnProperty;Animator=__webpack_require__(21).Animator,exports.SpringDHOAnimator=function(superClass){function SpringDHOAnimator(){return this.finished=bind(this.finished,this),SpringDHOAnimator.__super__.constructor.apply(this,arguments)}return extend(SpringDHOAnimator,superClass),SpringDHOAnimator.prototype.setup=function(options){return this.options=_.defaults(options,{velocity:0,tolerance:1e-4,stiffness:50,damping:2,mass:.2,time:null}),this._time=0,this._value=0,this._velocity=this.options.velocity},SpringDHOAnimator.prototype.next=function(delta){var F_damper,F_spring,b,k;return this.finished()?1:(this._time+=delta,k=0-this.options.stiffness,b=0-this.options.damping,F_spring=k*(this._value-1),F_damper=b*this._velocity,this._velocity+=(F_spring+F_damper)/this.options.mass*delta,this._value+=this._velocity*delta,this._value)},SpringDHOAnimator.prototype.finished=function(){return this._time>0&&Math.abs(this._velocity)<this.options.tolerance},SpringDHOAnimator}(Animator)},function(module,exports,__webpack_require__){var ChromeAlert,Utils,_,resizeFrame,sanitizeLayerName,startsWithNumber;_=__webpack_require__(1)._,Utils=__webpack_require__(4),ChromeAlert="Importing layers is currently only supported on Safari. If you really want it to work with Chrome quit it, open a terminal and run:\nopen -a Google Chrome -–allow-file-access-from-files",resizeFrame=function(scale,frame){var i,key,len,ref,result;if(1===scale)return frame;for(result={},ref=["x","y","width","height"],i=0,len=ref.length;i<len;i++)key=ref[i],frame.hasOwnProperty(key)&&(result[key]=frame[key]*scale);return result},startsWithNumber=function(str){return new RegExp("^[0-9]").test(str)},sanitizeLayerName=function(name){var i,len,ref,suffix;for(ref=["*","-",".png",".jpg",".pdf"],i=0,len=ref.length;i<len;i++)suffix=ref[i],_.endsWith(name.toLowerCase(),suffix)&&(name=name.slice(0,+(name.length-suffix.length-1)+1||9e9));return name},exports.Importer=function(){function Importer(path1,options,extraLayerProperties){var ref;this.path=path1,this.options=null!=options?options:{},this.extraLayerProperties=null!=extraLayerProperties?extraLayerProperties:{},this.paths={layerInfo:Utils.pathJoin(this.path,"layers.json"),images:Utils.pathJoin(this.path,"images"),documentName:decodeURIComponent(this.path.split("/").pop())},this._createdLayers=[],this._createdLayersByName={},this.scale=null!=(ref=this.options.scale)?ref:1}return Importer.prototype.load=function(){var i,j,layer,layerInfo,layersByName,len,len1,ref,ref1;if(layersByName={},layerInfo=this._loadlayerInfo(),0===layerInfo.length)throw new Error("Importer: no layers. Do you have at least one layer group?");for(layerInfo.map(function(_this){return function(layerItemInfo){return _this._createLayer(layerItemInfo)}}(this)),ref=this._createdLayers,i=0,len=ref.length;i<len;i++)layer=ref[i],this._correctLayer(layer);for(this._correctArtboards(this._createdLayers),ref1=this._createdLayers,j=0,len1=ref1.length;j<len1;j++)layer=ref1[j],layer.parent||(layer.parent=null);return this._createdLayersByName},Importer.prototype._loadlayerInfo=function(){var importedKey,ref;return importedKey=this.paths.documentName+"/layers.json.js",(null!=(ref=window.__imported__)?ref.hasOwnProperty(importedKey):void 0)?_.cloneDeep(window.__imported__[importedKey]):Framer.Utils.domLoadJSONSync(this.paths.layerInfo)},Importer.prototype._createLayer=function(info,parent){var LayerClass,layer,layerInfo,ref,ref1;if(info.layerFrame&&(info.layerFrame=resizeFrame(this.scale,info.layerFrame)),info.maskFrame&&(info.maskFrame=resizeFrame(this.scale,info.maskFrame)),null!=(null!=(ref=info.image)?ref.frame:void 0)&&(info.image.frame=resizeFrame(this.scale,info.image.frame)),info.children||(info.children=[]),LayerClass=Layer,layerInfo={shadow:!0,name:sanitizeLayerName(info.name),frame:info.layerFrame,clip:!1,backgroundColor:null,visible:null==(ref1=info.visible)||ref1},_.extend(layerInfo,this.extraLayerProperties),info.image&&(layerInfo.frame=info.image.frame,layerInfo.image=Utils.pathJoin(this.path,info.image.path)),info.maskFrame&&(layerInfo.clip=!0),"artboard"===info.kind&&(layerInfo.backgroundColor=info.backgroundColor),(null!=parent?parent.contentLayer:void 0)?layerInfo.parent=parent.contentLayer:parent&&(layerInfo.parent=parent),startsWithNumber(layerInfo.name))throw new Error("Layer or Artboard names can not start with a number: '"+layerInfo.name+"'");return layer=new LayerClass(layerInfo),layer.name=layerInfo.name,layer.__framerImportedFromPath=this.path,layerInfo.name.toLowerCase().indexOf("scroll")!==-1&&(layer.scroll=!0),layerInfo.name.toLowerCase().indexOf("draggable")!==-1&&(layer.draggable.enabled=!0),layer.image||info.children.length||info.maskFrame||(layer.frame=Utils.frameZero()),_.clone(info.children).reverse().map(function(_this){return function(info){return _this._createLayer(info,layer)}}(this)),"artboard"===info.kind?layer.point={x:0,y:0}:layer.image||info.maskFrame||(layer.frame=layer.contentFrame()),layer._info=info,this._createdLayers.push(layer),this._createdLayersByName[layer.name]=layer},Importer.prototype._correctArtboards=function(layers){var i,j,layer,leftMostLayer,len,len1,pointOffset,results;for(leftMostLayer=null,i=0,len=layers.length;i<len;i++)layer=layers[i],"artboard"===layer._info.kind&&(layer.point=layer._info.layerFrame,layer.visible=!0,(null===leftMostLayer||layer.x<leftMostLayer.x)&&(leftMostLayer=layer));if(leftMostLayer){for(pointOffset=leftMostLayer.point,results=[],j=0,len1=layers.length;j<len1;j++)layer=layers[j],"artboard"===layer._info.kind?(layer.x-=pointOffset.x,results.push(layer.y-=pointOffset.y)):results.push(void 0);return results}},Importer.prototype._correctLayer=function(layer){var traverse;if(traverse=function(layer){var child,i,len,ref,results;for(layer.parent&&(layer.frame=Utils.convertPoint(layer.frame,null,layer.parent)),ref=layer.children,results=[],i=0,len=ref.length;i<len;i++)child=ref[i],results.push(traverse(child));return results},!layer.parent)return traverse(layer)},Importer}(),exports.Importer.load=function(path,scale){var importer;return null==scale&&(scale=1),importer=new exports.Importer(path,scale),importer.load()}},function(module,exports,__webpack_require__){exports.TouchEmulator=__webpack_require__(69),exports.MobileScrollFix=__webpack_require__(70),exports.ErrorDisplay=__webpack_require__(71),exports.OmitNew=__webpack_require__(72),exports.Hints=__webpack_require__(73),exports.Preloader=__webpack_require__(74)},function(module,exports,__webpack_require__){var BaseClass,TouchEmulator,Utils,cancelEvent,createTouch,dispatchTouchEvent,touchEmulator,bind=function(fn,me){return function(){return fn.apply(me,arguments)}},extend=function(child,parent){function ctor(){this.constructor=child}for(var key in parent)hasProp.call(parent,key)&&(child[key]=parent[key]);return ctor.prototype=parent.prototype,child.prototype=new ctor,child.__super__=parent.prototype,child},hasProp={}.hasOwnProperty;Utils=__webpack_require__(4),BaseClass=__webpack_require__(6).BaseClass,createTouch=function(event,identifier,offset){var touch;return null==offset&&(offset={x:0,y:0}),touch={identifier:identifier,target:event.target,pageX:event.pageX-offset.x,pageY:event.pageY-offset.y,clientX:event.clientX-offset.x,clientY:event.clientY-offset.y,screenX:event.screenX-offset.x,screenY:event.screenY-offset.y},touch.point={x:touch.pageX,y:touch.pageY},touch},dispatchTouchEvent=function(type,target,event,offset){var touchEvent,touches;return null==target&&(target=event.target),touchEvent=document.createEvent("MouseEvent"),touchEvent.initMouseEvent(type,!0,!0,window,event.detail,event.screenX,event.screenY,event.clientX,event.clientY,event.ctrlKey,event.shiftKey,event.altKey,event.metaKey,event.button,event.relatedTarget),touches=[],touches.push(createTouch(event,1)),offset&&touches.push(createTouch(event,2,offset)),touchEvent.touches=touchEvent.changedTouches=touchEvent.targetTouches=touches,target.dispatchEvent(touchEvent)},cancelEvent=function(event){return event.preventDefault(),event.stopPropagation()},TouchEmulator=function(superClass){function TouchEmulator(){this.mousemovePosition=bind(this.mousemovePosition,this),this.mouseout=bind(this.mouseout,this),this.mouseup=bind(this.mouseup,this),this.mousemove=bind(this.mousemove,this),this.mousedown=bind(this.mousedown,this),this.keyup=bind(this.keyup,this),this.keydown=bind(this.keydown,this);var touchPointerInitialOffset;this.touchPointerImage="url('framer/images/cursor@2x.png')",this.touchPointerImageActive="url('framer/images/cursor-active@2x.png')",this.touchPointerImageSize=64,this.touchPointerInitialOffset={x:0,y:0},this.keyPinchCode=18,this.keyPanCode=91,this.context=new Framer.Context({name:"TouchEmulator"}),this.context._element.style.zIndex=1e4,this.wrap=this.context.domEventManager.wrap,this.wrap(document).addEventListener("mousedown",this.mousedown,!0),this.wrap(document).addEventListener("mousemove",this.mousemove,!0),this.wrap(document).addEventListener("mouseup",this.mouseup,!0),this.wrap(document).addEventListener("keydown",this.keydown,!0),this.wrap(document).addEventListener("keyup",this.keyup,!0),this.wrap(document).addEventListener("mouseout",this.mouseout,!0),this.isMouseDown=!1,this.isPinchKeyDown=!1,this.isPanKeyDown=!1,touchPointerInitialOffset=this.touchPointerInitialOffset,this.context.run(function(_this){return function(){return _this.touchPointLayer=new Layer({width:_this.touchPointerImageSize,height:_this.touchPointerImageSize,backgroundColor:null,opacity:0}),_this.touchPointLayer.style.backgroundImage=_this.touchPointerImage}}(this))}return extend(TouchEmulator,superClass),TouchEmulator.prototype.destroy=function(){return this.context.reset(),this.context=null},TouchEmulator.prototype.keydown=function(event){if(event.keyCode===this.keyPinchCode&&(this.isPinchKeyDown=!0,this.startPoint=this.centerPoint=null,this.showTouchCursor(),this.touchPointLayer.midX=this.point.x,this.touchPointLayer.midY=this.point.y),event.keyCode===this.keyPanCode)return this.isPanKeyDown=!0,cancelEvent(event)},TouchEmulator.prototype.keyup=function(event){if(event.keyCode===this.keyPinchCode&&(cancelEvent(event),this.isPinchKeyDown=!1,this.hideTouchCursor()),event.keyCode===this.keyPanCode&&(cancelEvent(event),this.touchPoint&&this.point))return this.centerPoint=Utils.pointCenter(this.touchPoint,this.point),this.isPanKeyDown=!1},TouchEmulator.prototype.mousedown=function(event){return this.isMouseDown=!0,this.target=event.target,this.isPinchKeyDown?dispatchTouchEvent("touchstart",this.target,event,this.touchPointDelta):dispatchTouchEvent("touchstart",this.target,event),this.touchPointLayer.style.backgroundImage=this.touchPointerImageActive},TouchEmulator.prototype.mousemove=function(event){if(this.point={x:event.pageX,y:event.pageY},null==this.startPoint&&(this.startPoint=this.point),null==this.centerPoint&&(this.centerPoint=this.point),this.isPinchKeyDown&&!this.isPanKeyDown&&this.touchPointerInitialOffset&&this.centerPoint&&(this.touchPoint=Utils.pointAdd(this.touchPointerInitialOffset,this.pinchPoint(this.point,this.centerPoint)),this.touchPointDelta=Utils.pointSubtract(this.point,this.touchPoint)),this.isPinchKeyDown&&this.isPanKeyDown&&this.touchPoint&&this.touchPointDelta&&(this.touchPoint=this.panPoint(this.point,this.touchPointDelta)),(this.isPinchKeyDown||this.isPanKeyDown)&&this.touchPoint&&(this.touchPointLayer.visible=!0,this.touchPointLayer.midX=this.touchPoint.x,this.touchPointLayer.midY=this.touchPoint.y),this.isMouseDown)return(this.isPinchKeyDown||this.isPanKeyDown)&&this.touchPointDelta?dispatchTouchEvent("touchmove",this.target,event,this.touchPointDelta):dispatchTouchEvent("touchmove",this.target,event)},TouchEmulator.prototype.mouseup=function(event){return this.isPinchKeyDown||this.isPanKeyDown?dispatchTouchEvent("touchend",this.target,event,this.touchPointDelta):dispatchTouchEvent("touchend",this.target,event),this.endMultiTouch()},TouchEmulator.prototype.mouseout=function(event){var fromElement;if(!this.isMouseDown)return fromElement=event.relatedTarget||event.toElement,fromElement&&"HTML"!==fromElement.nodeName?void 0:this.endMultiTouch()},TouchEmulator.prototype.showTouchCursor=function(){return this.point||(this.point={x:event.pageX,y:event.pageY}),this.touchPointLayer.animateStop(),this.touchPointLayer.midX=this.point.x,this.touchPointLayer.midY=this.point.y,this.touchPointLayer.scale=1.8,this.touchPointLayer.animate({opacity:1,scale:1,options:{time:.1,curve:"ease-out"}})},TouchEmulator.prototype.hideTouchCursor=function(){if(this.touchPointLayer.opacity>0)return this.touchPointLayer.animateStop(),this.touchPointLayer.animate({opacity:0,scale:1.2,options:{time:.08}})},TouchEmulator.prototype.mousemovePosition=function(event){return this.point={x:event.pageX,y:event.pageY}},TouchEmulator.prototype.endMultiTouch=function(){return this.isMouseDown=!1,this.touchPointLayer.style.backgroundImage=this.touchPointerImage,this.hideTouchCursor()},TouchEmulator.prototype.pinchPoint=function(point,centerPoint){return Utils.pointSubtract(centerPoint,Utils.pointSubtract(point,centerPoint))},TouchEmulator.prototype.panPoint=function(point,offsetPoint){return Utils.pointSubtract(point,offsetPoint)},TouchEmulator}(BaseClass),touchEmulator=null,exports.enable=function(){if(!Utils.isTouch())return null==touchEmulator&&(touchEmulator=new TouchEmulator),Events.enableEmulatedTouchEvents(!0)},exports.disable=function(){if(touchEmulator)return touchEmulator.destroy(),touchEmulator=null,Events.enableEmulatedTouchEvents(!1)},exports.reset=function(){if(touchEmulator)return touchEmulator.endMultiTouch()}},function(module,exports,__webpack_require__){var Utils,bind=function(fn,me){return function(){return fn.apply(me,arguments)}},extend=function(child,parent){function ctor(){this.constructor=child}for(var key in parent)hasProp.call(parent,key)&&(child[key]=parent[key]);return ctor.prototype=parent.prototype,child.prototype=new ctor,child.__super__=parent.prototype,child},hasProp={}.hasOwnProperty;Utils=__webpack_require__(4),exports.enable=function(){var MobileScrollFixLayer,handleScrollingLayerTouchMove,handleScrollingLayerTouchStart;return document.ontouchmove=function(event){if(event.target===document.body)return event.preventDefault()},handleScrollingLayerTouchMove=function(event){return event.stopPropagation()},handleScrollingLayerTouchStart=function(event){var element,startTopScroll;if(element=this._element,startTopScroll=element.scrollTop,startTopScroll<=0&&(element.scrollTop=1),startTopScroll+element.offsetHeight>=element.scrollHeight)return element.scrollTop=element.scrollHeight-element.offsetHeight-1},MobileScrollFixLayer=function(superClass){function MobileScrollFixLayer(options){this._updateScrollListeners=bind(this._updateScrollListeners,this),MobileScrollFixLayer.__super__.constructor.call(this,options),"Layer"===this.constructor.name&&(this.on("change:scrollVertical",this._updateScrollListeners),this._updateScrollListeners())}return extend(MobileScrollFixLayer,superClass),MobileScrollFixLayer.prototype._updateScrollListeners=function(){return this.scrollVertical===!0?(this.on("touchmove",handleScrollingLayerTouchMove),this.on("touchstart",handleScrollingLayerTouchStart)):(this.off("touchmove",handleScrollingLayerTouchMove),this.off("touchstart",handleScrollingLayerTouchStart))},MobileScrollFixLayer.prototype.toInspect=function(){return"MobileScrollFixLayer"===this.constructor.name?MobileScrollFixLayer.__super__.toInspect.call(this,"Layer"):MobileScrollFixLayer.__super__.toInspect.apply(this,arguments)},MobileScrollFixLayer}(Framer.Layer),window.Layer=window.Framer.Layer=MobileScrollFixLayer}},function(module,exports,__webpack_require__){var BaseClass,Config,Context,ErrorDisplay,Layer,Utils,_context,_error,_errorDisplay,bind=function(fn,me){return function(){return fn.apply(me,arguments)}},extend=function(child,parent){function ctor(){this.constructor=child}for(var key in parent)hasProp.call(parent,key)&&(child[key]=parent[key]);return ctor.prototype=parent.prototype,child.prototype=new ctor,child.__super__=parent.prototype,child},hasProp={}.hasOwnProperty;Utils=__webpack_require__(4),BaseClass=__webpack_require__(6).BaseClass,Context=__webpack_require__(53).Context,Layer=__webpack_require__(15).Layer,_error=null,_context=null,Config={},Utils.isMobile()?(Config.height=100,Config.textInset=20,Config.fontSize=32):(Config.height=40,Config.textInset=12,Config.fontSize=14),ErrorDisplay=function(superClass){function ErrorDisplay(){this.resize=bind(this.resize,this),null==this._context&&(this._context=new Context({name:"ErrorDisplay"})),this._context.index=1e3,this._context.run(function(_this){return function(){return Events.wrap(window).addEventListener("error",function(e){return _this.showError(e.message)}),Events.wrap(window).addEventListener("resize",function(e){return _this.resize()})}}(this))}return extend(ErrorDisplay,superClass),ErrorDisplay.prototype.createLayer=function(){return this._errorLayer?this._errorLayer:(this._context.run(function(_this){return function(){var error;return error=new Layer({name:"error",y:Align.bottom,width:Canvas.width,height:Config.height,backgroundColor:"rgba(255, 0, 0, 1)"}),error.text=new Layer({name:"text",parent:error,size:Utils.frameInset(error,Config.textInset),point:Align.center,backgroundColor:null,clip:!0}),error.text.style={font:Config.fontSize+"px/1em "+Utils.deviceFont(),
  lineHeight:parseInt(error.text.height-2)+"px",textAlign:"center",wordWrap:"break-word",textOverflow:"ellipsis"},error.onTap(function(){var ref;return null!=(ref=_this._errorLayer)&&ref.destroy(),_this._errorLayer=null}),_this._errorLayer=error,_this.resize()}}(this)),this._errorLayer)},ErrorDisplay.prototype.resize=function(){if(this._errorLayer)return this._errorLayer.width=Canvas.width,this._errorLayer.y=Canvas.height-this._errorLayer.height,this._errorLayer.text.size=Utils.frameInset(this._errorLayer,Config.textInset),this._errorLayer.text.point=Align.center},ErrorDisplay.prototype.showError=function(message){var animation,error;return error=this.createLayer(),error.scale=1.1,error.text.html=message,animation=error.animate({scale:1,options:{curve:"spring(800, 55, 10)"}})},ErrorDisplay.prototype.destroy=function(){var ref;return null!=(ref=this._context)?ref.destroy():void 0},ErrorDisplay}(BaseClass),_errorDisplay=null,exports.enable=function(){if(!_errorDisplay)return _errorDisplay=new ErrorDisplay},exports.disable=function(){if(_errorDisplay)return _errorDisplay.destroy(),_errorDisplay=null}},function(module,exports){var slice=[].slice;exports.enable=function(module){var ClassWrapper;return null==module&&(module=window),ClassWrapper=function(Klass){return function(){var args;return args=1<=arguments.length?slice.call(arguments,0):[],this.prototype=function(func,args,ctor){ctor.prototype=func.prototype;var child=new ctor,result=func.apply(child,args);return Object(result)===result?result:child}(Klass,args,function(){})}},module.Frame=ClassWrapper(Framer.Frame),module.Layer=ClassWrapper(Framer.Layer),module.BackgroundLayer=ClassWrapper(Framer.BackgroundLayer),module.VideoLayer=ClassWrapper(Framer.VideoLayer),module.Animation=ClassWrapper(Framer.Animation)}},function(module,exports,__webpack_require__){var Context,Hints,hints,bind=function(fn,me){return function(){return fn.apply(me,arguments)}};Context=__webpack_require__(53).Context,Hints=function(){function Hints(){this._handleUp=bind(this._handleUp,this),this._handleDown=bind(this._handleDown,this),this._context=new Framer.Context({name:"Hints"}),this._context.index=1e4,this._context.run(function(_this){return function(){var capture;return Events.wrap(document).addEventListener(Events.TouchStart,_this._handleDown,capture=!0),Events.wrap(document).addEventListener(Events.TouchEnd,_this._handleUp,capture=!0)}}(this))}return Hints.prototype._handleDown=function(event){if(!this._isPreloading())return this._target=event.target},Hints.prototype._handleUp=function(event){var context,i,layer,len,ref;if(!this._isPreloading()){if(layer=Framer.CurrentContext.layerForElement(this._target),!layer)for(ref=Context.all(),i=0,len=ref.length;i<len;i++)if(context=ref[i],context!==Framer.DefaultContext&&context!==Framer.CurrentContext&&context.layerForElement(this._target))return;if(!layer||!layer.willSeemToDoSomething())return this.showHints()}},Hints.prototype._isPreloading=function(){var ref;return(null!=(ref=Framer.Preloader)?ref.isLoading:void 0)===!0},Hints.prototype.showHints=function(){var context;return context=Framer.CurrentContext,this._context.run(function(){return _.invokeMap(context.rootLayers,"_showHint")})},Hints.prototype.destroy=function(){return this._context.destroy()},Hints}(),hints=null,exports.enable=function(){return null!=hints?hints:hints=new Hints(Framer.CurrentContext)},exports.disable=function(){if(hints)return hints.destroy(),hints=null},exports.showHints=function(){if(hints)return Utils.delay(.5,function(){return hints.showHints()})}},function(module,exports,__webpack_require__){var BaseClass,Context,Preloader,bind=function(fn,me){return function(){return fn.apply(me,arguments)}},extend=function(child,parent){function ctor(){this.constructor=child}for(var key in parent)hasProp.call(parent,key)&&(child[key]=parent[key]);return ctor.prototype=parent.prototype,child.prototype=new ctor,child.__super__=parent.prototype,child},hasProp={}.hasOwnProperty,indexOf=[].indexOf||function(item){for(var i=0,l=this.length;i<l;i++)if(i in this&&this[i]===item)return i;return-1};BaseClass=__webpack_require__(6).BaseClass,Context=__webpack_require__(53).Context,Preloader=function(superClass){function Preloader(options){null==options&&(options={}),this._setupContext=bind(this._setupContext,this),this._handleTimeout=bind(this._handleTimeout,this),this._handleProgress=bind(this._handleProgress,this),this._end=bind(this._end,this),this.end=bind(this.end,this),this._start=bind(this._start,this),this.start=bind(this.start,this),this.addPlayer=bind(this.addPlayer,this),this.addImage=bind(this.addImage,this),this.setLogo=bind(this.setLogo,this),this._media=[],this._mediaLoaded=[],this._isLoading=!1,this.timeout=30,this.start()}return extend(Preloader,superClass),Preloader.prototype.setupContext=function(){return this.context=new Context({name:"Preloader"}),this.context.run(this._setupContext)},Preloader.define("progress",{get:function(){return this._mediaLoaded.length/this._media.length||0}}),Preloader.define("time",{get:function(){return(Date.now()-this._startTime)/1e3}}),Preloader.define("isLoading",{get:function(){return this._isLoading}}),Preloader.define("isReady",{get:function(){return!!this.isLoading&&this._mediaLoaded.length===this._media.length}}),Preloader.prototype.setLogo=function(url){if(this._logo=url,this.brand)return this.brand.style["background-image"]="url('"+url+"')"},Preloader.prototype.addImagesFromContext=function(context){return _.map(context.layers,"image").map(this.addImage)},Preloader.prototype.addPlayersFromContext=function(context){return _.map(context.layers,"player").map(this.addPlayer)},Preloader.prototype.addImage=function(image){if(!(image instanceof Gradient))return image&&indexOf.call(this._media,image)<0?(this._media.push(image),Utils.loadImage(image,function(_this){return function(error){return _this._mediaLoaded.push(image),_this._handleProgress()}}(this))):void 0},Preloader.prototype.addPlayer=function(player){if(player&&indexOf.call(this._media,player)<0&&null!=player.src&&"undefined"!==player.getAttribute("src")&&null!=player.readyState&&player.readyState<3)return this._media.push(player),Events.wrap(player).addEventListener("canplaythrough",function(_this){return function(){return _this._mediaLoaded.push(player),_this._handleProgress()}}(this))},Preloader.prototype.start=function(){if(!this.isLoading)return this._isLoading=!0,this._startTime=Date.now(),this.emit("start"),this.setupContext(),Utils.delay(.2,this._start)},Preloader.prototype._start=function(){return Utils.delay(.2,function(_this){return function(){return _this.progressIndicator.visible=!0,_this.brand.visible=!0}}(this)),this.addImagesFromContext(Framer.DefaultContext),this.addImagesFromContext(Framer.CurrentContext),this.addPlayersFromContext(Framer.DefaultContext),this.addPlayersFromContext(Framer.CurrentContext),this._media.length?Utils.delay(this.timeout,this._handleTimeout):this.end()},Preloader.prototype.end=function(){if(this.isLoading)return this._end()},Preloader.prototype._end=function(animated){var finalize,ref,ref1;return null==animated&&(animated=!0),Framer.DefaultContext.visible=!0,finalize=function(_this){return function(){var ref;return _this.emit("end"),_this._isLoading=!1,null!=(ref=_this.context)?ref.destroy():void 0}}(this),(null!=(ref=this.progressIndicator)?ref.visible:void 0)&&animated?(null!=(ref1=this.cover)&&ref1.animate({properties:{opacity:0},time:.13}),this.cover.onAnimationDidEnd(finalize)):finalize()},Preloader.prototype._handleProgress=function(){var ref;if(this.emit("progress",this.progress),null!=(ref=this.progressIndicator)&&ref.setProgress(this.progress),this.isReady)return this._handleLoaded()},Preloader.prototype._handleLoaded=function(){return this.time>.5?Utils.delay(.2,this.end):this.end()},Preloader.prototype._handleTimeout=function(){if(this.isLoading)return console.warn("Preloader timeout, ending"),this.end()},Preloader.prototype._setupContext=function(){var layout,logoUrl;return this.cover=new Layer({frame:Canvas,backgroundColor:"white"}),this.progressIndicator=new CircularProgressComponent({size:160,point:Align.center,parent:this.cover,visible:!1}),this.progressIndicator.railsColor=Color.grey(0,.1),this.progressIndicator.progressColor="rgb(75, 169, 248)",this.progressIndicator.setProgress(this.progress),this.brand=new Layer({size:96,parent:this.cover,backgroundColor:null,visible:!1,style:{backgroundSize:"50%"}}),Utils.isMobile()&&(this.progressIndicator.scale=1.25,this.brand.scale=1.25),this._logo?this.setLogo(this._logo):(logoUrl="//resources.framerjs.com/static/images/preloader/framer-logo.png",_.startsWith(window.location.href,"file://")&&(logoUrl="http:"+logoUrl),this.setLogo(logoUrl)),(layout=function(_this){return function(){return _this.cover.frame=Canvas,_this.progressIndicator.point=Align.center,_this.brand.x=Align.center,_this.brand.y=Align.center(2)}}(this))(),Canvas.onResize(layout)},Preloader}(BaseClass),exports.enable=function(){return null!=Framer.Preloader?Framer.Preloader:Framer.Preloader=new Preloader},exports.disable=function(){if(Framer.Preloader)return Framer.Preloader._end(!1),Framer.Preloader=null},exports.addImage=function(url){var ref;return null!=(ref=Framer.Preloader)?ref.addImage(url):void 0},exports.setLogo=function(url){var ref;return null!=(ref=Framer.Preloader)?ref.setLogo(url):void 0}},function(module,exports,__webpack_require__){var DOMEventManager,GestureInputDoubleTapTime,GestureInputEdgeSwipeDistance,GestureInputForceTapDesktop,GestureInputForceTapMobile,GestureInputForceTapMobilePollTime,GestureInputLongPressTime,GestureInputMinimumFingerDistance,GestureInputSwipeThreshold,GestureInputVelocityTime,Utils,bind=function(fn,me){return function(){return fn.apply(me,arguments)}};Utils=__webpack_require__(4),GestureInputLongPressTime=.5,GestureInputDoubleTapTime=.25,GestureInputSwipeThreshold=30,GestureInputEdgeSwipeDistance=30,GestureInputVelocityTime=.1,GestureInputForceTapDesktop=MouseEvent.WEBKIT_FORCE_AT_FORCE_MOUSE_DOWN,GestureInputForceTapMobile=.7,GestureInputForceTapMobilePollTime=1/30,GestureInputMinimumFingerDistance=30,DOMEventManager=__webpack_require__(54).DOMEventManager,exports.GestureInputRecognizer=function(){function GestureInputRecognizer(){this._process=bind(this._process,this),this.edgeswipedirectionend=bind(this.edgeswipedirectionend,this),this.edgeswipedirectionstart=bind(this.edgeswipedirectionstart,this),this.edgeswipedirection=bind(this.edgeswipedirection,this),this.swipedirectionend=bind(this.swipedirectionend,this),this.swipedirection=bind(this.swipedirection,this),this.swipedirectionstart=bind(this.swipedirectionstart,this),this.swipeend=bind(this.swipeend,this),this.swipe=bind(this.swipe,this),this.swipestart=bind(this.swipestart,this),this.rotateend=bind(this.rotateend,this),this.rotate=bind(this.rotate,this),this.rotatestart=bind(this.rotatestart,this),this.scaleend=bind(this.scaleend,this),this.scale=bind(this.scale,this),this.scalestart=bind(this.scalestart,this),this.pinchend=bind(this.pinchend,this),this.pinch=bind(this.pinch,this),this.pinchstart=bind(this.pinchstart,this),this.panright=bind(this.panright,this),this.panleft=bind(this.panleft,this),this.pandown=bind(this.pandown,this),this.panup=bind(this.panup,this),this.panend=bind(this.panend,this),this.pan=bind(this.pan,this),this.panstart=bind(this.panstart,this),this.forcetapend=bind(this.forcetapend,this),this.forcetapstart=bind(this.forcetapstart,this),this.forcetapchange=bind(this.forcetapchange,this),this._updateMacForce=bind(this._updateMacForce,this),this._updateTouchForce=bind(this._updateTouchForce,this),this.longpressend=bind(this.longpressend,this),this.longpressstart=bind(this.longpressstart,this),this.doubletap=bind(this.doubletap,this),this.tapend=bind(this.tapend,this),this.tapstart=bind(this.tapstart,this),this.tap=bind(this.tap,this),this.reset=bind(this.reset,this),this.touchend=bind(this.touchend,this),this.touchmove=bind(this.touchmove,this),this.touchstart=bind(this.touchstart,this),this.startTouch=bind(this.startTouch,this),this.startMouse=bind(this.startMouse,this),this.em=new DOMEventManager,this.em.wrap(window).addEventListener("mousedown",this.startMouse),this.em.wrap(window).addEventListener("touchstart",this.startTouch),this.session=null}return GestureInputRecognizer.prototype.destroy=function(){return this.em.removeAllListeners()},GestureInputRecognizer.prototype.cancel=function(){return window.clearTimeout(this.session.pressTimer),this.session=null},GestureInputRecognizer.prototype.startMouse=function(event){if(!this.session)return this.em.wrap(window).addEventListener("mousemove",this.touchmove),this.em.wrap(window).addEventListener("mouseup",this.touchend),this.touchstart(event)},GestureInputRecognizer.prototype.startTouch=function(event){if(!this.session)return this.em.wrap(window).addEventListener("touchmove",this.touchmove),this.em.wrap(window).addEventListener("touchend",this.touchend),this.touchstart(event)},GestureInputRecognizer.prototype.touchstart=function(event){if(!this.session)return this.em.wrap(window).addEventListener("webkitmouseforcechanged",this._updateMacForce),this.session={startEvent:this._getGestureEvent(event),lastEvent:null,startMultiEvent:null,startTime:Date.now(),pressTimer:window.setTimeout(this.longpressstart,1e3*GestureInputLongPressTime),started:{},events:[],eventCount:0,cancelTap:!1},event=this._getGestureEvent(event),this.tapstart(event),Date.now()-this.doubleTapTime<1e3*GestureInputDoubleTapTime?this.doubletap(event):this.doubleTapTime=Date.now(),this._process(event),Utils.isTouch()?this._updateTouchForce():void 0},GestureInputRecognizer.prototype.touchmove=function(event){return this._process(this._getGestureEvent(event))},GestureInputRecognizer.prototype.touchend=function(event){var eventName,ref,value;if(null!=event.touches)if(Utils.isTouch()){if(0!==event.touches.length)return}else if(event.touches.length!==event.changedTouches.length)return;this.em.wrap(window).removeEventListener("mousemove",this.touchmove),this.em.wrap(window).removeEventListener("mouseup",this.touchend),this.em.wrap(window).removeEventListener("touchmove",this.touchmove),this.em.wrap(window).removeEventListener("touchend",this.touchend),this.em.wrap(window).removeEventListener("webkitmouseforcechanged",this._updateMacForce),event=this._getGestureEvent(event),ref=this.session.started;for(eventName in ref)value=ref[eventName],value&&this[eventName+"end"](event);return this.shouldFireTapEvent(event)&&this.tap(event),this.tapend(event),this.cancel()},GestureInputRecognizer.prototype.reset=function(){if(this.session)return this.touchend(this.session.lastEvent)},GestureInputRecognizer.prototype.shouldFireTapEvent=function(event){var isSameTarget,isShortDistance,isShortSession,ref,startEvent;return startEvent=null!=(ref=this.session)?ref.startEvent:void 0,null==startEvent||(isSameTarget=startEvent.target===event.target,isShortSession=event.time-this.session.startTime<750,isShortDistance=Utils.pointDistance(startEvent.touchCenter,event.touchCenter)<45,isSameTarget&&isShortSession&&isShortDistance&&!this.session.cancelTap)},GestureInputRecognizer.prototype.tap=function(event){return this._dispatchEvent("tap",event)},GestureInputRecognizer.prototype.tapstart=function(event){return this._dispatchEvent("tapstart",event)},GestureInputRecognizer.prototype.tapend=function(event){return this._dispatchEvent("tapend",event)},GestureInputRecognizer.prototype.doubletap=function(event){return this._dispatchEvent("doubletap",event)},GestureInputRecognizer.prototype.longpressstart=function(){var event;if(this.session&&!this.session.started.longpress)return event=this._getGestureEvent(this.session.startEvent),this.session.started.longpress=event,this._dispatchEvent("longpressstart",event),this._dispatchEvent("longpress",event)},GestureInputRecognizer.prototype.longpressend=function(event){return this._dispatchEvent("longpressend",event)},GestureInputRecognizer.prototype._updateTouchForce=function(){var event,ref,ref1,ref2;if(null!=(ref=this.session)&&null!=(ref1=ref.lastEvent)&&null!=(ref2=ref1.touches)?ref2.length:void 0)return this.session.force=this.session.lastEvent.touches[0].force||0,event=this._getGestureEvent(this.session.lastEvent),this.forcetapchange(event),this.session.force>=GestureInputForceTapMobile?this.forcetapstart(event):this.forcetapend(event),setTimeout(this._updateTouchForce,GestureInputForceTapMobilePollTime)},GestureInputRecognizer.prototype._updateMacForce=function(event){if(this.session)return this.session.force=Utils.modulate(event.webkitForce,[0,3],[0,1]),this.forcetapchange(this._getGestureEvent(event)),event.webkitForce>=GestureInputForceTapDesktop?this.forcetapstart(event):this.forcetapend(event)},GestureInputRecognizer.prototype.forcetapchange=function(event){return this._dispatchEvent("forcetapchange",event)},GestureInputRecognizer.prototype.forcetapstart=function(event){if(this.session&&!this.session.started.forcetap)return this.session.started.forcetap=event,this._dispatchEvent("forcetapstart",event),this._dispatchEvent("forcetap",event)},GestureInputRecognizer.prototype.forcetapend=function(event){if(this.session&&this.session.started.forcetap)return this.session.started.forcetap=null,this._dispatchEvent("forcetapend",event)},GestureInputRecognizer.prototype.panstart=function(event){return this.session.started.pan=event,this._dispatchEvent("panstart",event,this.session.started.pan.target)},GestureInputRecognizer.prototype.pan=function(event){var direction;if(this._dispatchEvent("pan",event,this.session.started.pan.target),direction=this._getDirection(event.delta))return this["pan"+direction](event)},GestureInputRecognizer.prototype.panend=function(event){return this._dispatchEvent("panend",event,this.session.started.pan.target),this.session.started.pan=null},GestureInputRecognizer.prototype.panup=function(event){return this._dispatchEvent("panup",event,this.session.started.pan.target)},GestureInputRecognizer.prototype.pandown=function(event){return this._dispatchEvent("pandown",event,this.session.started.pan.target)},GestureInputRecognizer.prototype.panleft=function(event){return this._dispatchEvent("panleft",event,this.session.started.pan.target)},GestureInputRecognizer.prototype.panright=function(event){return this._dispatchEvent("panright",event,this.session.started.pan.target)},GestureInputRecognizer.prototype.pinchstart=function(event){return this.session.started.pinch=event,this.scalestart(event,this.session.started.pinch.target),this.rotatestart(event,this.session.started.pinch.target),this._dispatchEvent("pinchstart",event)},GestureInputRecognizer.prototype.pinch=function(event){return this._dispatchEvent("pinch",event),this.scale(event,this.session.started.pinch.target),this.rotate(event,this.session.started.pinch.target)},GestureInputRecognizer.prototype.pinchend=function(event){return this._dispatchEvent("pinchend",event),this.scaleend(event,this.session.started.pinch.target),this.rotateend(event,this.session.started.pinch.target),this.session.started.pinch=null},GestureInputRecognizer.prototype.scalestart=function(event){return this._dispatchEvent("scalestart",event)},GestureInputRecognizer.prototype.scale=function(event){return this._dispatchEvent("scale",event)},GestureInputRecognizer.prototype.scaleend=function(event){return this._dispatchEvent("scaleend",event)},GestureInputRecognizer.prototype.rotatestart=function(event){return this._dispatchEvent("rotatestart",event)},GestureInputRecognizer.prototype.rotate=function(event){return this._dispatchEvent("rotate",event)},GestureInputRecognizer.prototype.rotateend=function(event){return this._dispatchEvent("rotateend",event)},GestureInputRecognizer.prototype.swipestart=function(event){return this._dispatchEvent("swipestart",event),this.session.started.swipe=event,this.swipedirectionstart(event)},GestureInputRecognizer.prototype.swipe=function(event){return this._dispatchEvent("swipe",event),this.swipedirection(event)},GestureInputRecognizer.prototype.swipeend=function(event){return this._dispatchEvent("swipeend",event)},GestureInputRecognizer.prototype.swipedirectionstart=function(event){var direction,ref,ref1,ref2,ref3,swipeEdge;if(event.offsetDirection&&!this.session.started.swipedirection)return this.session.started.swipedirection=event,direction=this.session.started.swipedirection.offsetDirection,this._dispatchEvent("swipe"+direction+"start",event),swipeEdge=this._edgeForSwipeDirection(direction),"top"===swipeEdge&&0<(ref=event.start.y)&&ref<GestureInputEdgeSwipeDistance&&this.edgeswipedirectionstart(event),"right"===swipeEdge&&Screen.width-GestureInputEdgeSwipeDistance<(ref1=event.start.x)&&ref1<Screen.width&&this.edgeswipedirectionstart(event),"bottom"===swipeEdge&&Screen.height-GestureInputEdgeSwipeDistance<(ref2=event.start.y)&&ref2<Screen.height&&this.edgeswipedirectionstart(event),"left"===swipeEdge&&0<(ref3=event.start.x)&&ref3<GestureInputEdgeSwipeDistance?this.edgeswipedirectionstart(event):void 0},GestureInputRecognizer.prototype.swipedirection=function(event){var direction;if(this.session.started.swipedirection)return direction=this.session.started.swipedirection.offsetDirection,this._dispatchEvent("swipe"+direction,event),this.session.started.edgeswipedirection?this.edgeswipedirection(event):void 0},GestureInputRecognizer.prototype.swipedirectionend=function(event){var direction;if(this.session.started.swipedirection)return direction=this.session.started.swipedirection.offsetDirection,this._dispatchEvent("swipe"+direction+"end",event)},GestureInputRecognizer.prototype.edgeswipedirection=function(event){var swipeEdge;return swipeEdge=this._edgeForSwipeDirection(this.session.started.edgeswipedirection.offsetDirection),Screen.emit("edgeswipe",this._createEvent("edgeswipe",event)),Screen.emit("edgeswipe"+swipeEdge,this._createEvent("edgeswipe"+swipeEdge,event))},GestureInputRecognizer.prototype.edgeswipedirectionstart=function(event){var swipeEdge;if(!this.session.started.edgeswipedirection)return this.session.started.edgeswipedirection=event,swipeEdge=this._edgeForSwipeDirection(this.session.started.edgeswipedirection.offsetDirection),Screen.emit("edgeswipestart",this._createEvent("edgeswipestart",event)),Screen.emit("edgeswipe"+swipeEdge+"start",this._createEvent("edgeswipe"+swipeEdge+"start",event))},GestureInputRecognizer.prototype.edgeswipedirectionend=function(event){var swipeEdge;return swipeEdge=this._edgeForSwipeDirection(this.session.started.edgeswipedirection.offsetDirection),Screen.emit("edgeswipeend",this._createEvent("edgeswipeend",event)),Screen.emit("edgeswipe"+swipeEdge+"end",this._createEvent("edgeswipe"+swipeEdge+"end",event))},GestureInputRecognizer.prototype._process=function(event){if(this.session)return this.session.events.push(event),event.eventCount=this.session.eventCount++,(Math.abs(event.delta.x)>0||Math.abs(event.delta.y)>0)&&(this.session.started.pan?this.pan(event):this.panstart(event)),this.session.started.pinch&&1===event.fingers?this.pinchend(event):this.session.started.pinch||2!==event.fingers?this.session.started.pinch&&this.pinch(event):this.pinchstart(event),!this.session.started.swipe&&(Math.abs(event.offset.x)>GestureInputSwipeThreshold||Math.abs(event.offset.y)>GestureInputSwipeThreshold)?this.swipestart(event):this.session.started.swipe&&this.swipe(event),this.session.lastEvent=event},GestureInputRecognizer.prototype._getEventPoint=function(event){var ref;return(null!=(ref=event.touches)?ref.length:void 0)?this._getTouchPoint(event,0):{x:event.pageX,y:event.pageY}},GestureInputRecognizer.prototype._getGestureEvent=function(event){var eventPoint,events,i,len,pointKey,ref,ref1,ref2,ref3,ref4,ref5,ref6,ref7,ref8,ref9,touchPointA,touchPointB;for(eventPoint=Utils.convertPointFromContext(this._getEventPoint(event),Framer.CurrentContext,!0,!0),_.extend(event,{time:Date.now(),point:eventPoint,start:eventPoint,previous:eventPoint,offset:{x:0,y:0},offsetTime:0,offsetAngle:0,offsetDirection:null,delta:{x:0,y:0},deltaTime:0,deltaAngle:0,deltaDirection:null,force:0,velocity:{x:0,y:0},fingers:(null!=(ref=event.touches)?ref.length:void 0)||0,touchCenter:eventPoint,touchOffset:{x:0,y:0},touchDistance:0,scale:1,scaleDirection:null,rotation:0}),(null!=(ref1=this.session)?ref1.startEvent:void 0)&&(event.start=this.session.startEvent.point,event.offset=Utils.pointSubtract(event.point,event.start),event.offsetTime=event.time-this.session.startEvent.time,event.offsetAngle=Utils.pointAngle(this.session.startEvent.point,event.point),event.offsetDirection=this._getDirection(event.offset),event.touchCenterStart=this.session.startEvent.touchCenter),(null!=(ref2=this.session)?ref2.lastEvent:void 0)&&(event.previous=this.session.lastEvent.point,event.deltaTime=event.time-this.session.lastEvent.time,event.delta=Utils.pointSubtract(event.point,this.session.lastEvent.point),event.deltaAngle=Utils.pointAngle(event.point,this.session.lastEvent.point),event.deltaDirection=this._getDirection(event.delta)),event.fingers>1&&(touchPointA=this._getTouchPoint(event,0),touchPointB=this._getTouchPoint(event,1),event.touchCenter=Utils.pointCenter(touchPointB,touchPointA),event.touchOffset=Utils.pointSubtract(touchPointB,touchPointA),event.touchDistance=_.max([GestureInputMinimumFingerDistance,Utils.pointDistance(touchPointA,touchPointB)]),event.rotation=Utils.pointAngle(touchPointA,touchPointB)),(null!=(ref3=this.session)?ref3.events:void 0)&&(events=_.filter(this.session.events,function(e){return 0!==e.eventCount&&e.time>event.time-1e3*GestureInputVelocityTime}),event.velocity=this._getVelocity(events)),(null!=(ref4=this.session)?ref4.started.pinch:void 0)&&(event.scale=event.touchDistance/this.session.started.pinch.touchDistance,event.scaleDirection=this._getScaleDirection(event.scale-this.session.lastEvent.scale),!event.scaleDirection&&(null!=(ref5=this.session)?ref5.lastEvent:void 0)&&(event.scaleDirection=this.session.lastEvent.scaleDirection)),(null!=(ref6=this.session)?ref6.lastEvent:void 0)&&(event.fingers!==(ref7=this.session.lastEvent.fingers)&&2===ref7&&(event.delta={x:0,y:0}),2===event.fingers&&2===this.session.lastEvent.fingers&&(event.delta=Utils.pointSubtract(event.touchCenter,this.session.lastEvent.touchCenter))),(null!=(ref8=this.session)?ref8.lastEvent:void 0)&&this.session.force&&(event.force=this.session.force),ref9=["point","start","previous","offset","delta","velocity","touchCenter","touchOffset"],i=0,len=ref9.length;i<len;i++)pointKey=ref9[i],event[pointKey+"X"]=event[pointKey].x,event[pointKey+"Y"]=event[pointKey].y;return event},GestureInputRecognizer.prototype._getTouchPoint=function(event,index){var point;return point={x:event.touches[index].pageX,y:event.touches[index].pageY}},GestureInputRecognizer.prototype._getDirection=function(offset){if(Math.abs(offset.x)>Math.abs(offset.y)){if(offset.x>0)return"right";if(offset.x<0)return"left"}if(Math.abs(offset.x)<Math.abs(offset.y)){if(offset.y<0)return"up";if(offset.y>0)return"down"}return null},GestureInputRecognizer.prototype._edgeForSwipeDirection=function(direction){return"down"===direction?"top":"left"===direction?"right":"up"===direction?"bottom":"right"===direction?"left":null},GestureInputRecognizer.prototype._getScaleDirection=function(offset){return offset>0?"up":offset<0?"down":null},GestureInputRecognizer.prototype._createEvent=function(type,event){var k,touchEvent,v;touchEvent=document.createEvent("MouseEvent"),touchEvent.initMouseEvent(type,!0,!0,window,event.detail,event.screenX,event.screenY,event.clientX,event.clientY,event.ctrlKey,event.shiftKey,event.altKey,event.metaKey,event.button,event.relatedTarget),touchEvent.touches=event.touches,touchEvent.changedTouches=event.touches,touchEvent.targetTouches=event.touches;for(k in event)v=event[k],touchEvent[k]=v;return touchEvent},GestureInputRecognizer.prototype._dispatchEvent=function(type,event,target){var ref,ref1,touchEvent;return touchEvent=this._createEvent(type,event),null==target&&(target=null!=(ref=this.session)&&null!=(ref1=ref.startEvent)?ref1.target:void 0),null==target&&(target=event.target),target.dispatchEvent(touchEvent)},GestureInputRecognizer.prototype._getVelocity=function(events){var current,first,time,velocity;return events.length<2?{x:0,y:0}:(current=events[events.length-1],first=events[0],time=current.time-first.time,velocity={x:(current.point.x-first.point.x)/time,y:(current.point.y-first.point.y)/time},Infinity===velocity.x&&(velocity.x=0),Infinity===velocity.y&&(velocity.y=0),velocity)},GestureInputRecognizer}()},function(module,exports){exports.date=1519128445,exports.branch="master",exports.hash="f32dd1f",exports.build=3269,exports.version=exports.branch+"/"+exports.hash},function(module,exports,__webpack_require__){var BaseClass,Canvas,Events,bind=function(fn,me){return function(){return fn.apply(me,arguments)}},extend=function(child,parent){function ctor(){this.constructor=child}for(var key in parent)hasProp.call(parent,key)&&(child[key]=parent[key]);return ctor.prototype=parent.prototype,child.prototype=new ctor,child.__super__=parent.prototype,child},hasProp={}.hasOwnProperty;BaseClass=__webpack_require__(6).BaseClass,Events=__webpack_require__(17).Events,Canvas=function(superClass){function Canvas(options){null==options&&(options={}),this._handleResize=bind(this._handleResize,this),Canvas.__super__.constructor.call(this,options),Events.wrap(window).addEventListener("resize",this._handleResize)}return extend(Canvas,superClass),Canvas.define("width",{get:function(){return window.innerWidth}}),Canvas.define("height",{get:function(){return window.innerHeight}}),Canvas.define("size",{get:function(){return Utils.size(this)}}),Canvas.define("frame",{get:function(){return Utils.frame(this)}}),Canvas.define("backgroundColor",{importable:!1,exportable:!1,get:function(){return Framer.Device.background.backgroundColor},set:function(value){return Framer.Device.background.backgroundColor=value}}),Canvas.define("image",{importable:!1,exportable:!1,get:function(){return Framer.Device.background.image},set:function(value){return Framer.Device.background.image=value}}),Canvas.prototype.onResize=function(cb){return this.on("resize",cb)},Canvas.prototype._handleResize=function(event){return null==Screen.device&&Screen.emit("resize"),this.emit("resize"),this.emit("change:width"),this.emit("change:height"),this.emit("change:size"),this.emit("change:frame")},Canvas.prototype.toInspect=function(){return"<"+this.constructor.name+" "+this.width+"x"+this.height+">"},Canvas.prototype.convertPointToLayer=function(point,layer){return Utils.convertPointFromContext(point,layer,!0,!0)},Canvas.prototype.convertPointToScreen=function(point){var ctx;return ctx=Framer.Device.context,Utils.convertPointFromContext(point,ctx,!0,!0)},Canvas}(BaseClass),exports.Canvas=Canvas}]);
  //# sourceMappingURL=framer.js.map
  