forked from AkkomaGang/akkoma
1 line
No EOL
236 KiB
Text
1 line
No EOL
236 KiB
Text
{"version":3,"sources":["webpack:///containers/media_container.js","webpack:///./node_modules/react-intl/lib/index.es.js","webpack:///./app/javascript/mastodon/components/media_gallery.js","webpack:///./app/javascript/mastodon/containers/media_container.js","webpack:///./app/javascript/mastodon/features/status/components/card.js","webpack:///./node_modules/node-libs-browser/node_modules/punycode/punycode.js"],"names":["webpackJsonp","7","module","__webpack_exports__","__webpack_require__","addLocaleData","data","arguments","length","undefined","Array","isArray","forEach","localeData","locale","__WEBPACK_IMPORTED_MODULE_1_intl_messageformat___default","a","__addLocaleData","__WEBPACK_IMPORTED_MODULE_2_intl_relativeformat___default","hasLocaleData","localeParts","split","hasIMFAndIRFLocaleData","join","pop","normalizedLocale","toLowerCase","__localeData__","escape","str","replace","UNSAFE_CHARS_REGEX","match","ESCAPED_CHARS","filterProps","props","whitelist","defaults$$1","reduce","filtered","name","hasOwnProperty","invariantIntlContext","_ref","intl","__WEBPACK_IMPORTED_MODULE_5_invariant___default","shallowEquals","objA","objB","_typeof","keysA","Object","keys","keysB","bHasOwnProperty","prototype","bind","i","shouldIntlComponentUpdate","_ref2","nextProps","nextState","state","_ref2$context","context","nextContext","_context$intl","_nextContext$intl","nextIntl","intlConfigPropNames","getDisplayName","Component$$1","displayName","injectIntl","WrappedComponent","options","_options$intlPropName","intlPropName","_options$withRef","withRef","InjectIntl","_Component","classCallCheck","this","_this","possibleConstructorReturn","__proto__","getPrototypeOf","call","inherits","createClass","key","value","refs","wrappedInstance","__WEBPACK_IMPORTED_MODULE_4_react___default","createElement","_extends","defineProperty","ref","__WEBPACK_IMPORTED_MODULE_4_react__","contextTypes","intlShape","defineMessages","messageDescriptors","resolveLocale","locales","_resolveLocale","findPluralFunction","_findPluralRuleFunction","updateRelativeFormatThresholds","newThresholds","thresholds","second","minute","hour","day","month","getNamedFormat","formats","type","format","formatDate","config","date","Date","filteredOptions","DATE_TIME_FORMAT_OPTIONS","getDateTimeFormat","e","String","formatTime","formatRelative","now","RELATIVE_FORMAT_OPTIONS","oldThresholds","RELATIVE_FORMAT_THRESHOLDS","getRelativeFormat","isFinite","formatNumber","NUMBER_FORMAT_OPTIONS","getNumberFormat","formatPlural","PLURAL_FORMAT_OPTIONS","getPluralFormat","formatMessage","messageDescriptor","values","messages","defaultLocale","defaultFormats","id","defaultMessage","message","formattedMessage","getMessageFormat","formatHTMLMessage","rawValues","escaped","selectUnits","delta","absDelta","Math","abs","MINUTE","HOUR","DAY","getUnitDelay","units","SECOND","MAX_TIMER_DELAY","isSameDate","b","aTime","getTime","bTime","d","IntlProvider","FormattedDate","FormattedNumber","FormattedMessage","__WEBPACK_IMPORTED_MODULE_0__locale_data_index_js__","__WEBPACK_IMPORTED_MODULE_0__locale_data_index_js___default","n","__WEBPACK_IMPORTED_MODULE_1_intl_messageformat__","__WEBPACK_IMPORTED_MODULE_2_intl_relativeformat__","__WEBPACK_IMPORTED_MODULE_3_prop_types__","__WEBPACK_IMPORTED_MODULE_3_prop_types___default","__WEBPACK_IMPORTED_MODULE_5_invariant__","__WEBPACK_IMPORTED_MODULE_6_intl_format_cache__","__WEBPACK_IMPORTED_MODULE_6_intl_format_cache___default","defaultLocaleData","pluralRuleFunction","ord","s","v0","t0","Number","n10","slice","n100","fields","year","relative","0","1","-1","relativeTime","future","one","other","past","Symbol","iterator","obj","constructor","instance","Constructor","TypeError","defineProperties","target","descriptor","enumerable","configurable","writable","protoProps","staticProps","assign","source","subClass","superClass","create","setPrototypeOf","objectWithoutProperties","indexOf","self","ReferenceError","toConsumableArray","arr","arr2","from","bool","number","string","func","object","oneOf","shape","any","oneOfType","localeMatcher","narrowShortLong","numeric2digit","funcReq","isRequired","intlConfigPropTypes","textComponent","intlFormatPropTypes","formatters","dateTimeFormatPropTypes","formatMatcher","timeZone","hour12","weekday","era","timeZoneName","numberFormatPropTypes","style","currency","currencyDisplay","useGrouping","minimumIntegerDigits","minimumFractionDigits","maximumFractionDigits","minimumSignificantDigits","maximumSignificantDigits","relativeFormatPropTypes","pluralFormatPropTypes","&",">","<","\"","'","IntlPluralFormat","useOrdinal","pluralFn","freeze","intlConfigPropNames$1","intlFormatPropNames","defaultProps","Intl","intlContext","initialNow","_ref$formatters","DateTimeFormat","NumberFormat","_didDisplay","propName","_config","boundFormatFns","getConfig","getBoundFormatFns","_state","_len","next","_key","apply","concat","only","children","childContextTypes","Text","_props","formattedDate","FormattedTime","formattedTime","FormattedRelative","_this2","clearTimeout","_timer","updateInterval","time","unitDelay","unitRemainder","delay","max","setTimeout","setState","scheduleNextUpdate","formattedRelative","formattedNumber","FormattedPlural","pluralCategory","formattedPlural","nextPropsToCheck","description","_props$tagName","tagName","tokenDelimiter","tokenizedValues","elements","uid","floor","random","toString","generateToken","counter","token","nodes","filter","part","map","FormattedHTMLMessage","formattedHTMLMessage","html","__html","dangerouslySetInnerHTML","820","MediaGallery","_class","_temp2","_class2","_class3","_temp4","__WEBPACK_IMPORTED_MODULE_0_babel_runtime_helpers_jsx__","__WEBPACK_IMPORTED_MODULE_0_babel_runtime_helpers_jsx___default","__WEBPACK_IMPORTED_MODULE_1_babel_runtime_helpers_classCallCheck__","__WEBPACK_IMPORTED_MODULE_1_babel_runtime_helpers_classCallCheck___default","__WEBPACK_IMPORTED_MODULE_2_babel_runtime_helpers_possibleConstructorReturn__","__WEBPACK_IMPORTED_MODULE_2_babel_runtime_helpers_possibleConstructorReturn___default","__WEBPACK_IMPORTED_MODULE_3_babel_runtime_helpers_inherits__","__WEBPACK_IMPORTED_MODULE_3_babel_runtime_helpers_inherits___default","__WEBPACK_IMPORTED_MODULE_5_immutable__","__WEBPACK_IMPORTED_MODULE_6__icon_button__","__WEBPACK_IMPORTED_MODULE_7_react_intl__","__WEBPACK_IMPORTED_MODULE_8__is_mobile__","__WEBPACK_IMPORTED_MODULE_9_classnames__","__WEBPACK_IMPORTED_MODULE_9_classnames___default","__WEBPACK_IMPORTED_MODULE_10__initial_state__","toggle_visible","Item","_React$PureComponent","_temp","_ret","args","handleMouseEnter","hoverToPlay","play","handleMouseLeave","pause","currentTime","handleClick","_this$props","index","onClick","button","preventDefault","stopPropagation","attachment","get","render","size","standalone","displayWidth","width","height","top","left","bottom","right","thumbnail","previewUrl","previewWidth","getIn","originalUrl","originalWidth","hasSize","srcSet","sizes","focusX","focusY","x","y","className","href","src","alt","title","objectPosition","aria-label","role","loop","controls","autoPlay","autoplay","onMouseEnter","onMouseLeave","muted","PureComponent","_React$PureComponent2","_temp3","_ret2","_len2","_key2","visible","sensitive","handleOpen","onOpenMedia","media","handleRef","node","offsetWidth","componentWillReceiveProps","isStandaloneEligible","_props2","_this3","_props3","take","warning","spoiler-button--visible","icon","overlay","854","MediaContainer","__WEBPACK_IMPORTED_MODULE_0_babel_runtime_helpers_extends__","__WEBPACK_IMPORTED_MODULE_0_babel_runtime_helpers_extends___default","__WEBPACK_IMPORTED_MODULE_1_babel_runtime_helpers_objectWithoutProperties__","__WEBPACK_IMPORTED_MODULE_1_babel_runtime_helpers_objectWithoutProperties___default","__WEBPACK_IMPORTED_MODULE_2_babel_runtime_helpers_jsx__","__WEBPACK_IMPORTED_MODULE_2_babel_runtime_helpers_jsx___default","__WEBPACK_IMPORTED_MODULE_3_babel_runtime_helpers_classCallCheck__","__WEBPACK_IMPORTED_MODULE_3_babel_runtime_helpers_classCallCheck___default","__WEBPACK_IMPORTED_MODULE_4_babel_runtime_helpers_possibleConstructorReturn__","__WEBPACK_IMPORTED_MODULE_4_babel_runtime_helpers_possibleConstructorReturn___default","__WEBPACK_IMPORTED_MODULE_5_babel_runtime_helpers_inherits__","__WEBPACK_IMPORTED_MODULE_5_babel_runtime_helpers_inherits___default","__WEBPACK_IMPORTED_MODULE_6_react__","__WEBPACK_IMPORTED_MODULE_6_react___default","__WEBPACK_IMPORTED_MODULE_7_react_dom__","__WEBPACK_IMPORTED_MODULE_7_react_dom___default","__WEBPACK_IMPORTED_MODULE_8_react_intl__","__WEBPACK_IMPORTED_MODULE_9__locales__","__WEBPACK_IMPORTED_MODULE_10__components_media_gallery__","__WEBPACK_IMPORTED_MODULE_11__features_video__","__WEBPACK_IMPORTED_MODULE_12__features_status_components_card__","__WEBPACK_IMPORTED_MODULE_13__components_modal_root__","__WEBPACK_IMPORTED_MODULE_14__features_ui_components_media_modal__","__WEBPACK_IMPORTED_MODULE_15_immutable__","_getLocale","MEDIA_COMPONENTS","Video","Card","_PureComponent","handleOpenMedia","document","body","classList","add","handleOpenVideo","video","handleCloseMedia","remove","components","component","componentName","getAttribute","Component","_JSON$parse","JSON","parse","card","onOpenVideo","createPortal","onClose","912","__WEBPACK_IMPORTED_MODULE_5_immutable___default","__WEBPACK_IMPORTED_MODULE_6_punycode__","__WEBPACK_IMPORTED_MODULE_6_punycode___default","__WEBPACK_IMPORTED_MODULE_7_classnames__","__WEBPACK_IMPORTED_MODULE_7_classnames___default","decodeIDNA","domain","decode","getHostname","url","parser","hostname","trim","text","len","cut","substring","domParser","DOMParser","addAutoPlay","parseFromString","documentElement","iframe","querySelector","innerHTML","embedded","handlePhotoClick","fromJS","meta","original","handleEmbedClick","setRef","c","renderVideo","content","ratio","maxDescription","provider","horizontal","interactive","rel","embed","backgroundImage","iconVariant","913","exports","global","__WEBPACK_AMD_DEFINE_RESULT__","root","error","RangeError","errors","array","fn","result","mapDomain","parts","regexSeparators","ucs2decode","extra","output","charCodeAt","push","ucs2encode","stringFromCharCode","basicToDigit","codePoint","base","digitToBasic","digit","flag","adapt","numPoints","firstTime","k","damp","baseMinusTMin","tMax","skew","input","out","basic","j","oldi","w","t","baseMinusT","inputLength","initialN","bias","initialBias","lastIndexOf","delimiter","maxInt","tMin","splice","encode","handledCPCount","basicLength","m","q","currentValue","handledCPCountPlusOne","qMinusT","toUnicode","regexPunycode","test","toASCII","regexNonASCII","freeGlobal","nodeType","punycode","overflow","not-basic","invalid-input","fromCharCode","version","ucs2"],"mappings":"AAAAA,cAAc,GAAG,KAEXC,EACA,SAAUC,EAAQC,EAAqBC,GAE7C,YCwBA,SAASC,KACP,GAAIC,GAAOC,UAAUC,OAAS,OAAsBC,KAAjBF,UAAU,GAAmBA,UAAU,OAE5DG,MAAMC,QAAQL,GAAQA,GAAQA,IAEpCM,QAAQ,SAAUC,GACpBA,GAAcA,EAAWC,SAC3BC,EAAAC,EAAkBC,gBAAgBJ,GAClCK,EAAAF,EAAmBC,gBAAgBJ,MAKzC,QAASM,GAAcL,GAGrB,IAFA,GAAIM,IAAeN,GAAU,IAAIO,MAAM,KAEhCD,EAAYZ,OAAS,GAAG,CAC7B,GAAIc,EAAuBF,EAAYG,KAAK,MAC1C,OAAO,CAGTH,GAAYI,MAGd,OAAO,EAGT,QAASF,GAAuBR,GAC9B,GAAIW,GAAmBX,GAAUA,EAAOY,aAExC,UAAUX,EAAAC,EAAkBW,eAAeF,KAAqBP,EAAAF,EAAmBW,eAAeF,IA2QpG,QAASG,GAAOC,GACd,OAAQ,GAAKA,GAAKC,QAAQC,GAAoB,SAAUC,GACtD,MAAOC,IAAcD,KAIzB,QAASE,GAAYC,EAAOC,GAC1B,GAAIC,GAAc9B,UAAUC,OAAS,OAAsBC,KAAjBF,UAAU,GAAmBA,UAAU,KAEjF,OAAO6B,GAAUE,OAAO,SAAUC,EAAUC,GAO1C,MANIL,GAAMM,eAAeD,GACvBD,EAASC,GAAQL,EAAMK,GACdH,EAAYI,eAAeD,KACpCD,EAASC,GAAQH,EAAYG,IAGxBD,OAIX,QAASG,KACP,GAAIC,GAAOpC,UAAUC,OAAS,OAAsBC,KAAjBF,UAAU,GAAmBA,UAAU,MACtEqC,EAAOD,EAAKC,IAEhBC,KAAUD,EAAM,gHAGlB,QAASE,GAAcC,EAAMC,GAC3B,GAAID,IAASC,EACX,OAAO,CAGT,IAAoE,gBAA/C,KAATD,EAAuB,YAAcE,EAAQF,KAAgC,OAATA,GAAiF,gBAA/C,KAATC,EAAuB,YAAcC,EAAQD,KAAgC,OAATA,EAC3K,OAAO,CAGT,IAAIE,GAAQC,OAAOC,KAAKL,GACpBM,EAAQF,OAAOC,KAAKJ,EAExB,IAAIE,EAAM1C,SAAW6C,EAAM7C,OACzB,OAAO,CAKT,KAAK,GADD8C,GAAkBH,OAAOI,UAAUd,eAAee,KAAKR,GAClDS,EAAI,EAAGA,EAAIP,EAAM1C,OAAQiD,IAChC,IAAKH,EAAgBJ,EAAMO,KAAOV,EAAKG,EAAMO,MAAQT,EAAKE,EAAMO,IAC9D,OAAO,CAIX,QAAO,EAGT,QAASC,GAA0BC,EAAOC,EAAWC,GACnD,GAAI1B,GAAQwB,EAAMxB,MACd2B,EAAQH,EAAMG,MACdC,EAAgBJ,EAAMK,QACtBA,MAA4BvD,KAAlBsD,KAAmCA,EAC7CE,EAAc1D,UAAUC,OAAS,OAAsBC,KAAjBF,UAAU,GAAmBA,UAAU,MAC7E2D,EAAgBF,EAAQpB,KACxBA,MAAyBnC,KAAlByD,KAAmCA,EAC1CC,EAAoBF,EAAYrB,KAChCwB,MAAiC3D,KAAtB0D,KAAuCA,CAGtD,QAAQrB,EAAcc,EAAWzB,KAAWW,EAAce,EAAWC,MAAYM,IAAaxB,GAAQE,EAAcZ,EAAYkC,EAAUC,IAAsBnC,EAAYU,EAAMyB,MAYpL,QAASC,GAAeC,GACtB,MAAOA,GAAaC,aAAeD,EAAa/B,MAAQ,YAG1D,QAASiC,GAAWC,GAClB,GAAIC,GAAUpE,UAAUC,OAAS,OAAsBC,KAAjBF,UAAU,GAAmBA,UAAU,MACzEqE,EAAwBD,EAAQE,aAChCA,MAAyCpE,KAA1BmE,EAAsC,OAASA,EAC9DE,EAAmBH,EAAQI,QAC3BA,MAA+BtE,KAArBqE,GAAyCA,EAEnDE,EAAa,SAAUC,GAGzB,QAASD,GAAW7C,EAAO6B,GACzBkB,EAAeC,KAAMH,EAErB,IAAII,GAAQC,EAA0BF,MAAOH,EAAWM,WAAanC,OAAOoC,eAAeP,IAAaQ,KAAKL,KAAMhD,EAAO6B,GAG1H,OADAtB,GAAqBsB,GACdoB,EAkBT,MA1BAK,GAAST,EAAYC,GAWrBS,EAAYV,IACVW,IAAK,qBACLC,MAAO,WAGL,MAFA/C,KAAUkC,EAAS,sHAEZI,KAAKU,KAAKC,mBAGnBH,IAAK,SACLC,MAAO,WACL,MAAOG,GAAA/E,EAAMgF,cAActB,EAAkBuB,KAAad,KAAKhD,MAAO+D,KAAmBrB,EAAcM,KAAKnB,QAAQpB,OAClHuD,IAAKpB,EAAU,kBAAoB,YAIlCC,GACPoB,EAAA,UASF,OAPApB,GAAWR,YAAc,cAAgBF,EAAeI,GAAoB,IAC5EM,EAAWqB,cACTzD,KAAM0D,IAERtB,EAAWN,iBAAmBA,EAGvBM,EAST,QAASuB,GAAeC,GAGtB,MAAOA,GAWT,QAASC,GAAcC,GAErB,MAAO3F,GAAAC,EAAkBuC,UAAUoD,eAAeD,GAGpD,QAASE,GAAmB9F,GAE1B,MAAOC,GAAAC,EAAkBuC,UAAUsD,wBAAwB/F,GAkC7D,QAASgG,GAA+BC,GACtC,GAAIC,GAAa9F,EAAAF,EAAmBgG,UACpCA,GAAWC,OAASF,EAAcE,OAClCD,EAAWE,OAASH,EAAcG,OAClCF,EAAWG,KAAOJ,EAAcI,KAChCH,EAAWI,IAAML,EAAcK,IAC/BJ,EAAWK,MAAQN,EAAcM,MAGnC,QAASC,GAAeC,EAASC,EAAMhF,GACrC,GAAIiF,GAASF,GAAWA,EAAQC,IAASD,EAAQC,GAAMhF,EACvD,IAAIiF,EACF,MAAOA,GAQX,QAASC,GAAWC,EAAQ7D,EAAO8B,GACjC,GAAIjB,GAAUpE,UAAUC,OAAS,OAAsBC,KAAjBF,UAAU,GAAmBA,UAAU,MACzEO,EAAS6G,EAAO7G,OAChByG,EAAUI,EAAOJ,QACjBE,EAAS9C,EAAQ8C,OAGjBG,EAAO,GAAIC,MAAKjC,GAChBvD,EAAcoF,GAAUH,EAAeC,EAAS,OAAQE,GACxDK,EAAkB5F,EAAYyC,EAASoD,GAA0B1F,EAErE,KACE,MAAOyB,GAAMkE,kBAAkBlH,EAAQgH,GAAiBL,OAAOG,GAC/D,MAAOK,IAMT,MAAOC,QAAON,GAGhB,QAASO,GAAWR,EAAQ7D,EAAO8B,GACjC,GAAIjB,GAAUpE,UAAUC,OAAS,OAAsBC,KAAjBF,UAAU,GAAmBA,UAAU,MACzEO,EAAS6G,EAAO7G,OAChByG,EAAUI,EAAOJ,QACjBE,EAAS9C,EAAQ8C,OAGjBG,EAAO,GAAIC,MAAKjC,GAChBvD,EAAcoF,GAAUH,EAAeC,EAAS,OAAQE,GACxDK,EAAkB5F,EAAYyC,EAASoD,GAA0B1F,EAEhEyF,GAAgBX,MAASW,EAAgBZ,QAAWY,EAAgBb,SAEvEa,EAAkB7B,KAAa6B,GAAmBX,KAAM,UAAWD,OAAQ,YAG7E,KACE,MAAOpD,GAAMkE,kBAAkBlH,EAAQgH,GAAiBL,OAAOG,GAC/D,MAAOK,IAMT,MAAOC,QAAON,GAGhB,QAASQ,GAAeT,EAAQ7D,EAAO8B,GACrC,GAAIjB,GAAUpE,UAAUC,OAAS,OAAsBC,KAAjBF,UAAU,GAAmBA,UAAU,MACzEO,EAAS6G,EAAO7G,OAChByG,EAAUI,EAAOJ,QACjBE,EAAS9C,EAAQ8C,OAGjBG,EAAO,GAAIC,MAAKjC,GAChByC,EAAM,GAAIR,MAAKlD,EAAQ0D,KACvBhG,EAAcoF,GAAUH,EAAeC,EAAS,WAAYE,GAC5DK,EAAkB5F,EAAYyC,EAAS2D,GAAyBjG,GAIhEkG,EAAgBtC,KAAa/E,EAAAF,EAAmBgG,WACpDF,GAA+B0B,GAE/B,KACE,MAAO1E,GAAM2E,kBAAkB3H,EAAQgH,GAAiBL,OAAOG,GAC7DS,IAAKK,SAASL,GAAOA,EAAMvE,EAAMuE,QAEnC,MAAOJ,IAJT,QASEnB,EAA+ByB,GAGjC,MAAOL,QAAON,GAGhB,QAASe,GAAahB,EAAQ7D,EAAO8B,GACnC,GAAIjB,GAAUpE,UAAUC,OAAS,OAAsBC,KAAjBF,UAAU,GAAmBA,UAAU,MACzEO,EAAS6G,EAAO7G,OAChByG,EAAUI,EAAOJ,QACjBE,EAAS9C,EAAQ8C,OAGjBpF,EAAcoF,GAAUH,EAAeC,EAAS,SAAUE,GAC1DK,EAAkB5F,EAAYyC,EAASiE,GAAuBvG,EAElE,KACE,MAAOyB,GAAM+E,gBAAgB/H,EAAQgH,GAAiBL,OAAO7B,GAC7D,MAAOqC,IAMT,MAAOC,QAAOtC,GAGhB,QAASkD,GAAanB,EAAQ7D,EAAO8B,GACnC,GAAIjB,GAAUpE,UAAUC,OAAS,OAAsBC,KAAjBF,UAAU,GAAmBA,UAAU,MACzEO,EAAS6G,EAAO7G,OAGhBgH,EAAkB5F,EAAYyC,EAASoE,GAE3C,KACE,MAAOjF,GAAMkF,gBAAgBlI,EAAQgH,GAAiBL,OAAO7B,GAC7D,MAAOqC,IAMT,MAAO,QAGT,QAASgB,GAActB,EAAQ7D,GAC7B,GAAIoF,GAAoB3I,UAAUC,OAAS,OAAsBC,KAAjBF,UAAU,GAAmBA,UAAU,MACnF4I,EAAS5I,UAAUC,OAAS,OAAsBC,KAAjBF,UAAU,GAAmBA,UAAU,MACxEO,EAAS6G,EAAO7G,OAChByG,EAAUI,EAAOJ,QACjB6B,EAAWzB,EAAOyB,SAClBC,EAAgB1B,EAAO0B,cACvBC,EAAiB3B,EAAO2B,eACxBC,EAAKL,EAAkBK,GACvBC,EAAiBN,EAAkBM,cAIvC3G,KAAU0G,EAAI,6DAEd,IAAIE,GAAUL,GAAYA,EAASG,EAKnC,MAJgBpG,OAAOC,KAAK+F,GAAQ3I,OAAS,GAK3C,MAAOiJ,IAAWD,GAAkBD,CAGtC,IAAIG,OAAmB,EAEvB,IAAID,EACF,IAGEC,EAFgB5F,EAAM6F,iBAAiBF,EAAS3I,EAAQyG,GAE3BE,OAAO0B,GACpC,MAAOlB,IAgBX,IAAKyB,GAAoBF,EACvB,IAGEE,EAFiB5F,EAAM6F,iBAAiBH,EAAgBH,EAAeC,GAEzC7B,OAAO0B,GACrC,MAAOlB,IAaX,MAAOyB,IAAoBD,GAAWD,GAAkBD,EAG1D,QAASK,GAAkBjC,EAAQ7D,EAAOoF,GACxC,GAAIW,GAAYtJ,UAAUC,OAAS,OAAsBC,KAAjBF,UAAU,GAAmBA,UAAU,KAW/E,OAAO0I,GAActB,EAAQ7D,EAAOoF,EANhB/F,OAAOC,KAAKyG,GAAWvH,OAAO,SAAUwH,EAAStH,GACnE,GAAIoD,GAAQiE,EAAUrH,EAEtB,OADAsH,GAAQtH,GAAyB,gBAAVoD,GAAqBhE,EAAOgE,GAASA,EACrDkE,QAmVX,QAASC,GAAYC,GACnB,GAAIC,GAAWC,KAAKC,IAAIH,EAExB,OAAIC,GAAWG,GACN,SAGLH,EAAWI,GACN,SAGLJ,EAAWK,GACN,OAKF,MAGT,QAASC,GAAaC,GACpB,OAAQA,GACN,IAAK,SACH,MAAOC,GACT,KAAK,SACH,MAAOL,GACT,KAAK,OACH,MAAOC,GACT,KAAK,MACH,MAAOC,GACT,SACE,MAAOI,KAIb,QAASC,GAAW3J,EAAG4J,GACrB,GAAI5J,IAAM4J,EACR,OAAO,CAGT,IAAIC,GAAQ,GAAIhD,MAAK7G,GAAG8J,UACpBC,EAAQ,GAAIlD,MAAK+C,GAAGE,SAExB,OAAOpC,UAASmC,IAAUnC,SAASqC,IAAUF,IAAUE,EDrlC1B3K,EAAoB4K,EAAE7K,EAAqB,IAAK,WAAa,MAAOE,KAEpED,EAAoB4K,EAAE7K,EAAqB,IAAK,WAAa,MAAOsE,KACpErE,EAAoB4K,EAAE7K,EAAqB,IAAK,WAAa,MAAOoG,KACpEnG,EAAoB4K,EAAE7K,EAAqB,IAAK,WAAa,MAAO8K,MACpE7K,EAAoB4K,EAAE7K,EAAqB,IAAK,WAAa,MAAO+K,MAGpE9K,EAAoB4K,EAAE7K,EAAqB,IAAK,WAAa,MAAOgL,MAEpE/K,EAAoB4K,EAAE7K,EAAqB,IAAK,WAAa,MAAOiL,KAE9E,IAAIC,GAAsDjL,EAAoB,KAC1EkL,EAA8DlL,EAAoBmL,EAAEF,GACpFG,EAAmDpL,EAAoB,IACvEW,EAA2DX,EAAoBmL,EAAEC,GACjFC,EAAoDrL,EAAoB,IACxEc,EAA4Dd,EAAoBmL,EAAEE,GAClFC,EAA2CtL,EAAoB,GAC/DuL,EAAmDvL,EAAoBmL,EAAEG,GACzEtF,EAAsChG,EAAoB,GAC1D2F,EAA8C3F,EAAoBmL,EAAEnF,GACpEwF,EAA0CxL,EAAoB,IAC9DyC,EAAkDzC,EAAoBmL,EAAEK,GC7BjGC,EAAAzL,EAAA,KAAA0L,EAAA1L,EAAAmL,EAAAM,GAeIE,GAAsBjL,OAAU,KAAMkL,mBAAsB,SAA4BT,EAAGU,GAC3F,GAAIC,GAAIhE,OAAOqD,GAAGlK,MAAM,KACpB8K,GAAMD,EAAE,GACRE,EAAKC,OAAOH,EAAE,KAAOX,EACrBe,EAAMF,GAAMF,EAAE,GAAGK,OAAO,GACxBC,EAAOJ,GAAMF,EAAE,GAAGK,OAAO,EAAG,OAAIN,GAAmB,GAAPK,GAAoB,IAARE,EAAa,MAAe,GAAPF,GAAoB,IAARE,EAAa,MAAe,GAAPF,GAAoB,IAARE,EAAa,MAAQ,QAAoB,GAALjB,GAAUY,EAAK,MAAQ,SACxLM,QAAYC,MAAUlI,YAAe,OAAQmI,UAAcC,EAAK,YAAaC,EAAK,YAAaC,KAAM,aAAeC,cAAkBC,QAAYC,IAAO,cAAeC,MAAS,gBAAkBC,MAAUF,IAAO,eAAgBC,MAAS,mBAAuB7F,OAAW7C,YAAe,QAASmI,UAAcC,EAAK,aAAcC,EAAK,aAAcC,KAAM,cAAgBC,cAAkBC,QAAYC,IAAO,eAAgBC,MAAS,iBAAmBC,MAAUF,IAAO,gBAAiBC,MAAS,oBAAwB9F,KAAS5C,YAAe,MAAOmI,UAAcC,EAAK,QAASC,EAAK,WAAYC,KAAM,aAAeC,cAAkBC,QAAYC,IAAO,aAAcC,MAAS,eAAiBC,MAAUF,IAAO,cAAeC,MAAS,kBAAsB/F,MAAU3C,YAAe,OAAQmI,UAAcC,EAAK,aAAeG,cAAkBC,QAAYC,IAAO,cAAeC,MAAS,gBAAkBC,MAAUF,IAAO,eAAgBC,MAAS,mBAAuBhG,QAAY1C,YAAe,SAAUmI,UAAcC,EAAK,eAAiBG,cAAkBC,QAAYC,IAAO,gBAAiBC,MAAS,kBAAoBC,MAAUF,IAAO,iBAAkBC,MAAS,qBAAyBjG,QAAYzC,YAAe,SAAUmI,UAAcC,EAAK,OAASG,cAAkBC,QAAYC,IAAO,gBAAiBC,MAAS,kBAAoBC,MAAUF,IAAO,iBAAkBC,MAAS,uBAyCv2CjK,EAA4B,kBAAXmK,SAAoD,gBAApBA,QAAOC,SAAwB,SAAUC,GAC5F,aAAcA,IACZ,SAAUA,GACZ,MAAOA,IAAyB,kBAAXF,SAAyBE,EAAIC,cAAgBH,QAAUE,IAAQF,OAAO7J,UAAY,eAAkB+J,IAavHpI,EAAiB,SAAUsI,EAAUC,GACvC,KAAMD,YAAoBC,IACxB,KAAM,IAAIC,WAAU,sCAIpBhI,EAAc,WAChB,QAASiI,GAAiBC,EAAQzL,GAChC,IAAK,GAAIsB,GAAI,EAAGA,EAAItB,EAAM3B,OAAQiD,IAAK,CACrC,GAAIoK,GAAa1L,EAAMsB,EACvBoK,GAAWC,WAAaD,EAAWC,aAAc,EACjDD,EAAWE,cAAe,EACtB,SAAWF,KAAYA,EAAWG,UAAW,GACjD7K,OAAO+C,eAAe0H,EAAQC,EAAWlI,IAAKkI,IAIlD,MAAO,UAAUJ,EAAaQ,EAAYC,GAGxC,MAFID,IAAYN,EAAiBF,EAAYlK,UAAW0K,GACpDC,GAAaP,EAAiBF,EAAaS,GACxCT,MAQPvH,EAAiB,SAAUoH,EAAK3H,EAAKC,GAYvC,MAXID,KAAO2H,GACTnK,OAAO+C,eAAeoH,EAAK3H,GACzBC,MAAOA,EACPkI,YAAY,EACZC,cAAc,EACdC,UAAU,IAGZV,EAAI3H,GAAOC,EAGN0H,GAGLrH,EAAW9C,OAAOgL,QAAU,SAAUP,GACxC,IAAK,GAAInK,GAAI,EAAGA,EAAIlD,UAAUC,OAAQiD,IAAK,CACzC,GAAI2K,GAAS7N,UAAUkD,EAEvB,KAAK,GAAIkC,KAAOyI,GACVjL,OAAOI,UAAUd,eAAe+C,KAAK4I,EAAQzI,KAC/CiI,EAAOjI,GAAOyI,EAAOzI,IAK3B,MAAOiI,IAKLnI,EAAW,SAAU4I,EAAUC,GACjC,GAA0B,kBAAfA,IAA4C,OAAfA,EACtC,KAAM,IAAIZ,WAAU,iEAAoEY,GAG1FD,GAAS9K,UAAYJ,OAAOoL,OAAOD,GAAcA,EAAW/K,WAC1DgK,aACE3H,MAAOyI,EACPP,YAAY,EACZE,UAAU,EACVD,cAAc,KAGdO,IAAYnL,OAAOqL,eAAiBrL,OAAOqL,eAAeH,EAAUC,GAAcD,EAAS/I,UAAYgJ,IAWzGG,EAA0B,SAAUnB,EAAKlK,GAC3C,GAAIwK,KAEJ,KAAK,GAAInK,KAAK6J,GACRlK,EAAKsL,QAAQjL,IAAM,GAClBN,OAAOI,UAAUd,eAAe+C,KAAK8H,EAAK7J,KAC/CmK,EAAOnK,GAAK6J,EAAI7J,GAGlB,OAAOmK,IAGLvI,EAA4B,SAAUsJ,EAAMnJ,GAC9C,IAAKmJ,EACH,KAAM,IAAIC,gBAAe,4DAG3B,QAAOpJ,GAAyB,gBAATA,IAAqC,kBAATA,GAA8BmJ,EAAPnJ,GAqBxEqJ,EAAoB,SAAUC,GAChC,GAAIpO,MAAMC,QAAQmO,GAAM,CACtB,IAAK,GAAIrL,GAAI,EAAGsL,EAAOrO,MAAMoO,EAAItO,QAASiD,EAAIqL,EAAItO,OAAQiD,IAAKsL,EAAKtL,GAAKqL,EAAIrL,EAE7E,OAAOsL,GAEP,MAAOrO,OAAMsO,KAAKF,IAUlBG,EAAOtD,EAAA3K,EAAUiO,KACjBC,EAASvD,EAAA3K,EAAUkO,OACnBC,GAASxD,EAAA3K,EAAUmO,OACnBC,GAAOzD,EAAA3K,EAAUoO,KACjBC,GAAS1D,EAAA3K,EAAUqO,OACnBC,GAAQ3D,EAAA3K,EAAUsO,MAClBC,GAAQ5D,EAAA3K,EAAUuO,MAClBC,GAAM7D,EAAA3K,EAAUwO,IAChBC,GAAY9D,EAAA3K,EAAUyO,UAEtBC,GAAgBJ,IAAO,WAAY,WACnCK,GAAkBL,IAAO,SAAU,QAAS,SAC5CM,GAAgBN,IAAO,UAAW,YAClCO,GAAUT,GAAKU,WAEfC,IACFjP,OAAQqO,GACR5H,QAAS8H,GACTjG,SAAUiG,GACVW,cAAeR,GAEfnG,cAAe8F,GACf7F,eAAgB+F,IAGdY,IACFvI,WAAYmI,GACZ1H,WAAY0H,GACZzH,eAAgByH,GAChBlH,aAAckH,GACd/G,aAAc+G,GACd5G,cAAe4G,GACfjG,kBAAmBiG,IAGjBvJ,GAAYiJ,GAAMtJ,KAAa8J,GAAqBE,IACtDC,WAAYb,GACZhH,IAAKwH,MASHM,IALEhB,GAAOW,WACEL,IAAWN,GAAQE,MAKhCK,cAAeA,GACfU,cAAed,IAAO,QAAS,aAE/Be,SAAUlB,GACVmB,OAAQrB,EAERsB,QAASZ,GACTa,IAAKb,GACLjD,KAAMkD,GACNvI,MAAOiI,IAAO,UAAW,UAAW,SAAU,QAAS,SACvDlI,IAAKwI,GACLzI,KAAMyI,GACN1I,OAAQ0I,GACR3I,OAAQ2I,GACRa,aAAcnB,IAAO,QAAS,WAG5BoB,IACFhB,cAAeA,GAEfiB,MAAOrB,IAAO,UAAW,WAAY,YACrCsB,SAAUzB,GACV0B,gBAAiBvB,IAAO,SAAU,OAAQ,SAC1CwB,YAAa7B,EAEb8B,qBAAsB7B,EACtB8B,sBAAuB9B,EACvB+B,sBAAuB/B,EACvBgC,yBAA0BhC,EAC1BiC,yBAA0BjC,GAGxBkC,IACFT,MAAOrB,IAAO,WAAY,YAC1B9E,MAAO8E,IAAO,SAAU,SAAU,OAAQ,MAAO,QAAS,UAGxD+B,IACFV,MAAOrB,IAAO,WAAY,aAcxBjL,GAAsBlB,OAAOC,KAAK2M,IAElC9N,IACFqP,IAAK,QACLC,IAAK,OACLC,IAAK,OACLC,IAAK,SACLC,IAAK,UAGH3P,GAAqB,WAiKrB4P,GAAmB,QAASA,GAAiBjL,GAC/C,GAAI/B,GAAUpE,UAAUC,OAAS,OAAsBC,KAAjBF,UAAU,GAAmBA,UAAU,KAC7E2E,GAAeC,KAAMwM,EAErB,IAAIC,GAA+B,YAAlBjN,EAAQgM,MACrBkB,EAAWjL,EAAmBH,EAAcC,GAEhDvB,MAAKsC,OAAS,SAAU7B,GACtB,MAAOiM,GAASjM,EAAOgM,KAUvB7J,GAA2B5E,OAAOC,KAAK+M,IACvCvH,GAAwBzF,OAAOC,KAAKsN,IACpCpI,GAA0BnF,OAAOC,KAAKgO,IACtCrI,GAAwB5F,OAAOC,KAAKiO,IAEpC7I,IACFvB,OAAQ,GACRC,OAAQ,GACRC,KAAM,GACNC,IAAK,GACLC,MAAO,IAoOLI,GAAStE,OAAO2O,QACnBpK,WAAYA,EACZS,WAAYA,EACZC,eAAgBA,EAChBO,aAAcA,EACdG,aAAcA,EACdG,cAAeA,EACfW,kBAAmBA,IAShBmI,GAAwB5O,OAAOC,KAAK2M,IACpCiC,GAAsB7O,OAAOC,KAAK6M,IAIlCgC,IACF1K,WACA6B,YACA4G,cAAe,OAEf3G,cAAe,KACfC,mBAGE2B,GAAe,SAAUhG,GAG3B,QAASgG,GAAa9I,GACpB,GAAI6B,GAAUzD,UAAUC,OAAS,OAAsBC,KAAjBF,UAAU,GAAmBA,UAAU,KAC7E2E,GAAeC,KAAM8F,EAErB,IAAI7F,GAAQC,EAA0BF,MAAO8F,EAAa3F,WAAanC,OAAOoC,eAAe0F,IAAezF,KAAKL,KAAMhD,EAAO6B,GAE9HnB,KAA0B,mBAATqP,MAAsB,8LAEvC,IAAIC,GAAcnO,EAAQpB,KAKtBwP,MAAa,EAEfA,GADE1J,SAASvG,EAAMiQ,YACJ/F,OAAOlK,EAAMiQ,YAKbD,EAAcA,EAAY9J,MAAQR,KAAKQ,KAQtD,IAAI1F,GAAOwP,MACPE,EAAkB1P,EAAKuN,WACvBA,MAAiCzP,KAApB4R,GACfrK,kBAAmB8D,IAAuBoG,KAAKI,gBAC/CzJ,gBAAiBiD,IAAuBoG,KAAKK,cAC7C5I,iBAAkBmC,IAAuB/K,EAAAC,GACzCyH,kBAAmBqD,IAAuB5K,EAAAF,GAC1CgI,gBAAiB8C,IAAuB6F,KACtCU,CASJ,OAPAjN,GAAMtB,MAAQmC,KAAaiK,GAGzB7H,IAAK,WACH,MAAOjD,GAAMoN,YAAc3K,KAAKQ,MAAQ+J,KAGrChN,EA+FT,MA9IAK,GAASwF,EAAchG,GAkDvBS,EAAYuF,IACVtF,IAAK,YACLC,MAAO,WACL,GAAIuM,GAAchN,KAAKnB,QAAQpB,KAK3B+E,EAASzF,EAAYiD,KAAKhD,MAAO4P,GAAuBI,EAK5D,KAAK,GAAIM,KAAYR,QACMxR,KAArBkH,EAAO8K,KACT9K,EAAO8K,GAAYR,GAAaQ,GAIpC,KAAKtR,EAAcwG,EAAO7G,QAAS,CACjC,GAAI4R,GAAU/K,EAEV0B,GADSqJ,EAAQ5R,OACD4R,EAAQrJ,eACxBC,EAAiBoJ,EAAQpJ,cAY7B3B,GAAS1B,KAAa0B,GACpB7G,OAAQuI,EACR9B,QAAS+B,EACTF,SAAU6I,GAAa7I,WAI3B,MAAOzB,MAGThC,IAAK,oBACLC,MAAO,SAA2B+B,EAAQ7D,GACxC,MAAOkO,IAAoB1P,OAAO,SAAUqQ,EAAgBnQ,GAE1D,MADAmQ,GAAenQ,GAAQiF,GAAOjF,GAAMgB,KAAK,KAAMmE,EAAQ7D,GAChD6O,UAIXhN,IAAK,kBACLC,MAAO,WACL,GAAI+B,GAASxC,KAAKyN,YAGdD,EAAiBxN,KAAK0N,kBAAkBlL,EAAQxC,KAAKrB,OAErDgP,EAAS3N,KAAKrB,MACduE,EAAMyK,EAAOzK,IACb6H,EAAazB,EAAwBqE,GAAS,OAGlD,QACElQ,KAAMqD,KAAa0B,EAAQgL,GACzBzC,WAAYA,EACZ7H,IAAKA,QAKX1C,IAAK,wBACLC,MAAO,WACL,IAAK,GAAImN,GAAOxS,UAAUC,OAAQwS,EAAOtS,MAAMqS,GAAOE,EAAO,EAAGA,EAAOF,EAAME,IAC3ED,EAAKC,GAAQ1S,UAAU0S,EAGzB,OAAOvP,GAA0BwP,UAAMzS,IAAY0E,MAAMgO,OAAOH,OAGlErN,IAAK,oBACLC,MAAO,WACLT,KAAKqN,aAAc,KAGrB7M,IAAK,SACLC,MAAO,WACL,MAAOQ,GAAA,SAASgN,KAAKjO,KAAKhD,MAAMkR,cAG7BpI,GACP7E,EAAA,UAEF6E,IAAazG,YAAc,eAC3ByG,GAAa5E,cACXzD,KAAM0D,IAER2E,GAAaqI,mBACX1Q,KAAM0D,GAAUwJ,WAalB,IAAI5E,IAAgB,SAAUjG,GAG5B,QAASiG,GAAc/I,EAAO6B,GAC5BkB,EAAeC,KAAM+F,EAErB,IAAI9F,GAAQC,EAA0BF,MAAO+F,EAAc5F,WAAanC,OAAOoC,eAAe2F,IAAgB1F,KAAKL,KAAMhD,EAAO6B,GAGhI,OADAtB,GAAqBsB,GACdoB,EAoCT,MA5CAK,GAASyF,EAAejG,GAWxBS,EAAYwF,IACVvF,IAAK,wBACLC,MAAO,WACL,IAAK,GAAImN,GAAOxS,UAAUC,OAAQwS,EAAOtS,MAAMqS,GAAOE,EAAO,EAAGA,EAAOF,EAAME,IAC3ED,EAAKC,GAAQ1S,UAAU0S,EAGzB,OAAOvP,GAA0BwP,UAAMzS,IAAY0E,MAAMgO,OAAOH,OAGlErN,IAAK,SACLC,MAAO,WACL,GAAI1B,GAAgBiB,KAAKnB,QAAQpB,KAC7B8E,EAAaxD,EAAcwD,WAC3B6L,EAAOrP,EAAc8L,cACrBwD,EAASrO,KAAKhD,MACdyD,EAAQ4N,EAAO5N,MACfyN,EAAWG,EAAOH,SAGlBI,EAAgB/L,EAAW9B,EAAOT,KAAKhD,MAE3C,OAAwB,kBAAbkR,GACFA,EAASI,GAGX1N,EAAA/E,EAAMgF,cACXuN,EACA,KACAE,OAICvI,GACP9E,EAAA,UAEF8E,IAAc1G,YAAc,gBAC5B0G,GAAc7E,cACZzD,KAAM0D,GAcR,IAAIoN,IAAgB,SAAUzO,GAG5B,QAASyO,GAAcvR,EAAO6B,GAC5BkB,EAAeC,KAAMuO,EAErB,IAAItO,GAAQC,EAA0BF,MAAOuO,EAAcpO,WAAanC,OAAOoC,eAAemO,IAAgBlO,KAAKL,KAAMhD,EAAO6B,GAGhI,OADAtB,GAAqBsB,GACdoB,EAoCT,MA5CAK,GAASiO,EAAezO,GAWxBS,EAAYgO,IACV/N,IAAK,wBACLC,MAAO,WACL,IAAK,GAAImN,GAAOxS,UAAUC,OAAQwS,EAAOtS,MAAMqS,GAAOE,EAAO,EAAGA,EAAOF,EAAME,IAC3ED,EAAKC,GAAQ1S,UAAU0S,EAGzB,OAAOvP,GAA0BwP,UAAMzS,IAAY0E,MAAMgO,OAAOH,OAGlErN,IAAK,SACLC,MAAO,WACL,GAAI1B,GAAgBiB,KAAKnB,QAAQpB,KAC7BuF,EAAajE,EAAciE,WAC3BoL,EAAOrP,EAAc8L,cACrBwD,EAASrO,KAAKhD,MACdyD,EAAQ4N,EAAO5N,MACfyN,EAAWG,EAAOH,SAGlBM,EAAgBxL,EAAWvC,EAAOT,KAAKhD,MAE3C,OAAwB,kBAAbkR,GACFA,EAASM,GAGX5N,EAAA/E,EAAMgF,cACXuN,EACA,KACAI,OAICD,GACPtN,EAAA,UAEFsN,IAAclP,YAAc,gBAC5BkP,GAAcrN,cACZzD,KAAM0D,GAcR,IAAImE,IAAS,IACTL,GAAS,IACTC,GAAO,KACPC,GAAM,MAINI,GAAkB,WAgDlBkJ,GAAoB,SAAU3O,GAGhC,QAAS2O,GAAkBzR,EAAO6B,GAChCkB,EAAeC,KAAMyO,EAErB,IAAIxO,GAAQC,EAA0BF,MAAOyO,EAAkBtO,WAAanC,OAAOoC,eAAeqO,IAAoBpO,KAAKL,KAAMhD,EAAO6B,GAExItB,GAAqBsB,EAErB,IAAIqE,GAAMK,SAASvG,EAAMiQ,YAAc/F,OAAOlK,EAAMiQ,YAAcpO,EAAQpB,KAAKyF,KAK/E,OADAjD,GAAMtB,OAAUuE,IAAKA,GACdjD,EAiGT,MA/GAK,GAASmO,EAAmB3O,GAiB5BS,EAAYkO,IACVjO,IAAK,qBACLC,MAAO,SAA4BzD,EAAO2B,GACxC,GAAI+P,GAAS1O,IAGb2O,cAAa3O,KAAK4O,OAElB,IAAInO,GAAQzD,EAAMyD,MACd4E,EAAQrI,EAAMqI,MACdwJ,EAAiB7R,EAAM6R,eAEvBC,EAAO,GAAIpM,MAAKjC,GAAOkF,SAK3B,IAAKkJ,GAAmBtL,SAASuL,GAAjC,CAIA,GAAIjK,GAAQiK,EAAOnQ,EAAMuE,IACrB6L,EAAY3J,EAAaC,GAAST,EAAYC,IAC9CmK,EAAgBjK,KAAKC,IAAIH,EAAQkK,GAMjCE,EAAQpK,EAAQ,EAAIE,KAAKmK,IAAIL,EAAgBE,EAAYC,GAAiBjK,KAAKmK,IAAIL,EAAgBG,EAEvGhP,MAAK4O,OAASO,WAAW,WACvBT,EAAOU,UAAWlM,IAAKwL,EAAO7P,QAAQpB,KAAKyF,SAC1C+L,OAGLzO,IAAK,oBACLC,MAAO,WACLT,KAAKqP,mBAAmBrP,KAAKhD,MAAOgD,KAAKrB,UAG3C6B,IAAK,4BACLC,MAAO,SAAmCjD,GAKnCgI,EAJWhI,EAAKiD,MAIMT,KAAKhD,MAAMyD,QACpCT,KAAKoP,UAAWlM,IAAKlD,KAAKnB,QAAQpB,KAAKyF,WAI3C1C,IAAK,wBACLC,MAAO,WACL,IAAK,GAAImN,GAAOxS,UAAUC,OAAQwS,EAAOtS,MAAMqS,GAAOE,EAAO,EAAGA,EAAOF,EAAME,IAC3ED,EAAKC,GAAQ1S,UAAU0S,EAGzB,OAAOvP,GAA0BwP,UAAMzS,IAAY0E,MAAMgO,OAAOH,OAGlErN,IAAK,sBACLC,MAAO,SAA6BhC,EAAWC,GAC7CsB,KAAKqP,mBAAmB5Q,EAAWC,MAGrC8B,IAAK,uBACLC,MAAO,WACLkO,aAAa3O,KAAK4O,WAGpBpO,IAAK,SACLC,MAAO,WACL,GAAI1B,GAAgBiB,KAAKnB,QAAQpB,KAC7BwF,EAAiBlE,EAAckE,eAC/BmL,EAAOrP,EAAc8L,cACrBwD,EAASrO,KAAKhD,MACdyD,EAAQ4N,EAAO5N,MACfyN,EAAWG,EAAOH,SAGlBoB,EAAoBrM,EAAexC,EAAOK,KAAad,KAAKhD,MAAOgD,KAAKrB,OAE5E,OAAwB,kBAAbuP,GACFA,EAASoB,GAGX1O,EAAA/E,EAAMgF,cACXuN,EACA,KACAkB,OAICb,GACPxN,EAAA,UAEFwN,IAAkBpP,YAAc,oBAChCoP,GAAkBvN,cAChBzD,KAAM0D,IAERsN,GAAkB3B,cAChB+B,eAAgB,IAgBlB,IAAI7I,IAAkB,SAAUlG,GAG9B,QAASkG,GAAgBhJ,EAAO6B,GAC9BkB,EAAeC,KAAMgG,EAErB,IAAI/F,GAAQC,EAA0BF,MAAOgG,EAAgB7F,WAAanC,OAAOoC,eAAe4F,IAAkB3F,KAAKL,KAAMhD,EAAO6B,GAGpI,OADAtB,GAAqBsB,GACdoB,EAoCT,MA5CAK,GAAS0F,EAAiBlG,GAW1BS,EAAYyF,IACVxF,IAAK,wBACLC,MAAO,WACL,IAAK,GAAImN,GAAOxS,UAAUC,OAAQwS,EAAOtS,MAAMqS,GAAOE,EAAO,EAAGA,EAAOF,EAAME,IAC3ED,EAAKC,GAAQ1S,UAAU0S,EAGzB,OAAOvP,GAA0BwP,UAAMzS,IAAY0E,MAAMgO,OAAOH,OAGlErN,IAAK,SACLC,MAAO,WACL,GAAI1B,GAAgBiB,KAAKnB,QAAQpB,KAC7B+F,EAAezE,EAAcyE,aAC7B4K,EAAOrP,EAAc8L,cACrBwD,EAASrO,KAAKhD,MACdyD,EAAQ4N,EAAO5N,MACfyN,EAAWG,EAAOH,SAGlBqB,EAAkB/L,EAAa/C,EAAOT,KAAKhD,MAE/C,OAAwB,kBAAbkR,GACFA,EAASqB,GAGX3O,EAAA/E,EAAMgF,cACXuN,EACA,KACAmB,OAICvJ,GACP/E,EAAA,UAEF+E,IAAgB3G,YAAc,kBAC9B2G,GAAgB9E,cACdzD,KAAM0D,GAcR,IAAIqO,IAAkB,SAAU1P,GAG9B,QAAS0P,GAAgBxS,EAAO6B,GAC9BkB,EAAeC,KAAMwP,EAErB,IAAIvP,GAAQC,EAA0BF,MAAOwP,EAAgBrP,WAAanC,OAAOoC,eAAeoP,IAAkBnP,KAAKL,KAAMhD,EAAO6B,GAGpI,OADAtB,GAAqBsB,GACdoB,EAsCT,MA9CAK,GAASkP,EAAiB1P,GAW1BS,EAAYiP,IACVhP,IAAK,wBACLC,MAAO,WACL,IAAK,GAAImN,GAAOxS,UAAUC,OAAQwS,EAAOtS,MAAMqS,GAAOE,EAAO,EAAGA,EAAOF,EAAME,IAC3ED,EAAKC,GAAQ1S,UAAU0S,EAGzB,OAAOvP,GAA0BwP,UAAMzS,IAAY0E,MAAMgO,OAAOH,OAGlErN,IAAK,SACLC,MAAO,WACL,GAAI1B,GAAgBiB,KAAKnB,QAAQpB,KAC7BkG,EAAe5E,EAAc4E,aAC7ByK,EAAOrP,EAAc8L,cACrBwD,EAASrO,KAAKhD,MACdyD,EAAQ4N,EAAO5N,MACfsH,EAAQsG,EAAOtG,MACfmG,EAAWG,EAAOH,SAGlBuB,EAAiB9L,EAAalD,EAAOT,KAAKhD,OAC1C0S,EAAkB1P,KAAKhD,MAAMyS,IAAmB1H,CAEpD,OAAwB,kBAAbmG,GACFA,EAASwB,GAGX9O,EAAA/E,EAAMgF,cACXuN,EACA,KACAsB,OAICF,GACPvO,EAAA,UAEFuO,IAAgBnQ,YAAc,kBAC9BmQ,GAAgBtO,cACdzD,KAAM0D,IAERqO,GAAgB1C,cACdtB,MAAO,WAqBT,IAAIvF,IAAmB,SAAUnG,GAG/B,QAASmG,GAAiBjJ,EAAO6B,GAC/BkB,EAAeC,KAAMiG,EAErB,IAAIhG,GAAQC,EAA0BF,MAAOiG,EAAiB9F,WAAanC,OAAOoC,eAAe6F,IAAmB5F,KAAKL,KAAMhD,EAAO6B,GAGtI,OADAtB,GAAqBsB,GACdoB,EAkHT,MA1HAK,GAAS2F,EAAkBnG,GAW3BS,EAAY0F,IACVzF,IAAK,wBACLC,MAAO,SAA+BhC,GACpC,GAAIuF,GAAShE,KAAKhD,MAAMgH,MAIxB,KAAKrG,EAHYc,EAAUuF,OAGIA,GAC7B,OAAO,CAUT,KAAK,GAJD2L,GAAmB7O,KAAarC,GAClCuF,OAAQA,IAGD4J,EAAOxS,UAAUC,OAAQwS,EAAOtS,MAAMqS,EAAO,EAAIA,EAAO,EAAI,GAAIE,EAAO,EAAGA,EAAOF,EAAME,IAC9FD,EAAKC,EAAO,GAAK1S,UAAU0S,EAG7B,OAAOvP,GAA0BwP,UAAMzS,IAAY0E,KAAM2P,GAAkB3B,OAAOH,OAGpFrN,IAAK,SACLC,MAAO,WACL,GAAI1B,GAAgBiB,KAAKnB,QAAQpB,KAC7BqG,EAAgB/E,EAAc+E,cAC9BsK,EAAOrP,EAAc8L,cACrBwD,EAASrO,KAAKhD,MACdoH,EAAKiK,EAAOjK,GACZwL,EAAcvB,EAAOuB,YACrBvL,EAAiBgK,EAAOhK,eACxBL,EAASqK,EAAOrK,OAChB6L,EAAiBxB,EAAOyB,QACxB1Q,MAAkC9D,KAAnBuU,EAA+BzB,EAAOyB,EACrD3B,EAAWG,EAAOH,SAGlB6B,MAAiB,GACjBC,MAAkB,GAClBC,MAAW,EAGf,IADgBjM,GAAUhG,OAAOC,KAAK+F,GAAQ3I,OAAS,EACxC,CAGb,GAAI6U,GAAMnL,KAAKoL,MAAsB,cAAhBpL,KAAKqL,UAA0BC,SAAS,IAEzDC,EAAgB,WAClB,GAAIC,GAAU,CACd,OAAO,YACL,MAAO,WAAaL,EAAM,KAAOK,GAAW,MAOhDR,GAAiB,MAAQG,EAAM,MAC/BF,KACAC,KAOAjS,OAAOC,KAAK+F,GAAQvI,QAAQ,SAAU4B,GACpC,GAAIoD,GAAQuD,EAAO3G,EAEnB,IAAIW,OAAAiD,EAAA,gBAAeR,GAAQ,CACzB,GAAI+P,GAAQF,GACZN,GAAgB3S,GAAQ0S,EAAiBS,EAAQT,EACjDE,EAASO,GAAS/P,MAElBuP,GAAgB3S,GAAQoD,IAK9B,GAAIiI,IAAetE,GAAIA,EAAIwL,YAAaA,EAAavL,eAAgBA,GACjEE,EAAmBT,EAAc4E,EAAYsH,GAAmBhM,GAEhEyM,MAAQ,EAiBZ,OATEA,GANgBR,GAAYjS,OAAOC,KAAKgS,GAAU5U,OAAS,EAMnDkJ,EAAiBrI,MAAM6T,GAAgBW,OAAO,SAAUC,GAC9D,QAASA,IACRC,IAAI,SAAUD,GACf,MAAOV,GAASU,IAASA,KAGlBpM,GAGa,kBAAb2J,GACFA,EAASH,UAAMzS,GAAWoO,EAAkB+G,IAK9CxP,EAAA,cAAc8M,UAAMzS,IAAY8D,EAAc,MAAM4O,OAAOtE,EAAkB+G,SAGjFxK,GACPhF,EAAA,UAEFgF,IAAiB5G,YAAc,mBAC/B4G,GAAiB/E,cACfzD,KAAM0D,IAER8E,GAAiB6G,cACf9I,UAcF,IAAI6M,IAAuB,SAAU/Q,GAGnC,QAAS+Q,GAAqB7T,EAAO6B,GACnCkB,EAAeC,KAAM6Q,EAErB,IAAI5Q,GAAQC,EAA0BF,MAAO6Q,EAAqB1Q,WAAanC,OAAOoC,eAAeyQ,IAAuBxQ,KAAKL,KAAMhD,EAAO6B,GAG9I,OADAtB,GAAqBsB,GACdoB,EA8DT,MAtEAK,GAASuQ,EAAsB/Q,GAW/BS,EAAYsQ,IACVrQ,IAAK,wBACLC,MAAO,SAA+BhC,GACpC,GAAIuF,GAAShE,KAAKhD,MAAMgH,MAIxB,KAAKrG,EAHYc,EAAUuF,OAGIA,GAC7B,OAAO,CAUT,KAAK,GAJD2L,GAAmB7O,KAAarC,GAClCuF,OAAQA,IAGD4J,EAAOxS,UAAUC,OAAQwS,EAAOtS,MAAMqS,EAAO,EAAIA,EAAO,EAAI,GAAIE,EAAO,EAAGA,EAAOF,EAAME,IAC9FD,EAAKC,EAAO,GAAK1S,UAAU0S,EAG7B,OAAOvP,GAA0BwP,UAAMzS,IAAY0E,KAAM2P,GAAkB3B,OAAOH,OAGpFrN,IAAK,SACLC,MAAO,WACL,GAAI1B,GAAgBiB,KAAKnB,QAAQpB,KAC7BgH,EAAoB1F,EAAc0F,kBAClC2J,EAAOrP,EAAc8L,cACrBwD,EAASrO,KAAKhD,MACdoH,EAAKiK,EAAOjK,GACZwL,EAAcvB,EAAOuB,YACrBvL,EAAiBgK,EAAOhK,eACxBK,EAAY2J,EAAOrK,OACnB6L,EAAiBxB,EAAOyB,QACxB1Q,MAAkC9D,KAAnBuU,EAA+BzB,EAAOyB,EACrD3B,EAAWG,EAAOH,SAGlBxF,GAAetE,GAAIA,EAAIwL,YAAaA,EAAavL,eAAgBA,GACjEyM,EAAuBrM,EAAkBiE,EAAYhE,EAEzD,IAAwB,kBAAbwJ,GACT,MAAOA,GAAS4C,EAWlB,IAAIC,IAASC,OAAQF,EACrB,OAAOlQ,GAAA/E,EAAMgF,cAAczB,GAAgB6R,wBAAyBF,QAGjEF,GACP5P,EAAA,UAEF4P,IAAqBxR,YAAc,uBACnCwR,GAAqB3P,cACnBzD,KAAM0D,IAER0P,GAAqB/D,cACnB9I,WAcF9I,EAAc0L,GAQd1L,EAAciL,EAAAtK,ID7ERqV,IACA,SAAUnW,EAAQC,EAAqBC,GAE7C,YACA+C,QAAO+C,eAAe/F,EAAqB,cAAgByF,OAAO,IACnCxF,EAAoB4K,EAAE7K,EAAqB,UAAW,WAAa,MAAOmW,IACpF,IAuBjBC,GAAQC,EAAQC,EAASC,EAASC,EAvBbC,EAA0DxW,EAAoB,GAC9EyW,EAAkEzW,EAAoBmL,EAAEqL,GACxFE,EAAqE1W,EAAoB,GACzF2W,EAA6E3W,EAAoBmL,EAAEuL,GACnGE,EAAgF5W,EAAoB,GACpG6W,EAAwF7W,EAAoBmL,EAAEyL,GAC9GE,EAA+D9W,EAAoB,GACnF+W,EAAuE/W,EAAoBmL,EAAE2L,GAC7F9Q,EAAsChG,EAAoB,GAC1D2F,EAA8C3F,EAAoBmL,EAAEnF,GACpEgR,EAA0ChX,EAAoB,GAE9DiX,GADkDjX,EAAoBmL,EAAE6L,GAC3BhX,EAAoB,KACjEkX,EAA2ClX,EAAoB,GAC/DmX,EAA2CnX,EAAoB,IAC/DoX,EAA2CpX,EAAoB,IAC/DqX,EAAmDrX,EAAoBmL,EAAEiM,GACzEE,EAAgDtX,EAAoB,IExiDvFgJ,EAAWjG,OAAAmU,EAAA,IACfK,gBAAApO,GAAA,+BAAAC,eAAA,uBAGIoO,GF4jDMpB,EAASD,EAAS,SAAUsB,GAGtC,QAASD,KACP,GAAIE,GAAO1S,EAAO2S,CAElBhB,KAA6E5R,KAAMyS,EAEnF,KAAK,GAAI7E,GAAOxS,UAAUC,OAAQwX,EAAOtX,MAAMqS,GAAOE,EAAO,EAAGA,EAAOF,EAAME,IAC3E+E,EAAK/E,GAAQ1S,UAAU0S,EAGzB,OAAe6E,GAAS1S,EAAQ6R,IAAwF9R,KAAM0S,EAAqBrS,KAAK0N,MAAM2E,GAAuB1S,MAAMgO,OAAO6E,KAAiB5S,EEvjDrN6S,iBAAmB,SAAChQ,GACd7C,EAAK8S,eACPjQ,EAAE2F,OAAOuK,QFyjDR/S,EErjDLgT,iBAAmB,SAACnQ,GACd7C,EAAK8S,gBACPjQ,EAAE2F,OAAOyK,QACTpQ,EAAE2F,OAAO0K,YAAc,IFujDtBlT,EE9iDLmT,YAAc,SAACtQ,GAAM,GAAAuQ,GACQpT,EAAKjD,MAAxBsW,EADWD,EACXC,MAAOC,EADIF,EACJE,OAEE,KAAbzQ,EAAE0Q,SACJ1Q,EAAE2Q,iBACFF,EAAQD,IAGVxQ,EAAE4Q,mBF6hDKd,EAqBJD,EAAQb,IAAwF7R,EAAO2S,GAyI5G,MAzKAZ,KAAuES,EAAMC,GAmC7ED,EAAKrU,UElkDL2U,YFkkD6B,WElkDd,GACLY,GAAe3T,KAAKhD,MAApB2W,UACR,QAAQpB,EAAA,GAA0C,SAA3BoB,EAAWC,IAAI,SFskDxCnB,EAAKrU,UExjDLyV,OFwjDwB,WExjDd,GAAAxF,GACsDrO,KAAKhD,MAA3D2W,EADAtF,EACAsF,WAAYL,EADZjF,EACYiF,MAAOQ,EADnBzF,EACmByF,KAAMC,EADzB1F,EACyB0F,WAAYC,EADrC3F,EACqC2F,aAEzCC,EAAS,GACTC,EAAS,IACTC,EAAS,OACTC,EAAS,OACTC,EAAS,OACTC,EAAS,MAEA,KAATR,IACFG,EAAQ,MAGG,IAATH,GAAwB,IAATA,GAAcR,EAAQ,KACvCY,EAAS,IAGE,IAATJ,EACY,IAAVR,EACFgB,EAAQ,MAERF,EAAO,MAES,IAATN,GACK,IAAVR,EACFgB,EAAQ,MACChB,EAAQ,IACjBc,EAAO,OAGK,IAAVd,EACFe,EAAS,MACAf,EAAQ,IACjBa,EAAM,QAEU,IAATL,IACK,IAAVR,GAAyB,IAAVA,IACjBgB,EAAQ,OAGI,IAAVhB,GAAyB,IAAVA,IACjBc,EAAO,OAGLd,EAAQ,EACVe,EAAS,MAETF,EAAM,MAIV,IAAII,GAAY,EAEhB,IAA+B,UAA3BZ,EAAWC,IAAI,QAAqB,CACtC,GAAMY,GAAeb,EAAWC,IAAI,eAC9Ba,EAAed,EAAWe,OAAO,OAAQ,QAAS,UAElDC,EAAiBhB,EAAWC,IAAI,OAChCgB,EAAiBjB,EAAWe,OAAO,OAAQ,WAAY,UAEvDG,EAAmC,gBAAlBD,IAAsD,gBAAjBH,GAEtDK,EAASD,EAAaF,EAAb,IAA4BC,EAA5B,MAA+CJ,EAA/C,IAA6DC,EAA7D,IAA+E,KACxFM,EAASF,EAAab,GAAgBC,EAAQ,KAArC,KAAgD,KAEzDe,EAASrB,EAAWe,OAAO,OAAQ,QAAS,OAAS,EACrDO,EAAStB,EAAWe,OAAO,OAAQ,QAAS,OAAS,EACrDQ,EAAgC,KAArBF,EAAU,EAAK,IAC1BG,EAAgC,KAArBF,GAAU,EAAK,GAEhCV,GAAA7C,IAAA6C,KAAAa,UAEc,gCAFdC,KAGU1B,EAAWC,IAAI,eAAiBe,EAH1CpB,QAIavT,KAAKoT,YAJlB3K,OAKW,cALX,GAAAiJ,IAAA,OAAA4D,IAQWd,EARXM,OAScA,EATdC,MAUaA,EAVbQ,IAWW5B,EAAWC,IAAI,eAX1B4B,MAYa7B,EAAWC,IAAI,eAZ5BpI,OAaeiK,eAAmBP,EAAnB,KAAyBC,EAAzB,YAIV,IAA+B,UAA3BxB,EAAWC,IAAI,QACxBW,EAAA7C,IAAA6C,OAAAa,UACiB,4BADjB,GAAA1D,IAAA,SAAA0D,UAGgB,sCAHhBM,aAIkB/B,EAAWC,IAAI,eAJjC+B,KAKW,cALXL,IAMW3B,EAAWC,IAAI,OAN1BgC,MAAA,EAAAC,UAAA,SAYK,IAA+B,SAA3BlC,EAAWC,IAAI,QAAoB,CAC5C,GAAMkC,IAAY9X,OAAAoU,EAAA,MAAWG,EAAA,CAE7BgC,GAAA7C,IAAA6C,OAAAa,UACkB9C,IAAW,uBAAyByD,SAAUD,SADhE,GAAApE,IAAA,SAAA0D,UAGgB,qCAHhBM,aAIkB/B,EAAWC,IAAI,eAJjC+B,KAKW,cALXL,IAMW3B,EAAWC,IAAI,OAN1BL,QAOevT,KAAKoT,YAPpB4C,aAQoBhW,KAAK8S,iBARzBmD,aASoBjW,KAAKiT,iBATzB6C,SAUgBA,EAVhBF,MAAA,EAAAM,OAAA,IAAAxE,IAAA,QAAA0D,UAeoB,kCAfpB,WAoBF,MAAA1D,KAAA,OAAA0D,UACkB9C,IAAW,uBAAyByB,eADtDvI,OACyG4I,KAAMA,EAAMD,IAAKA,EAAKG,MAAOA,EAAOD,OAAQA,EAAQJ,MAAUA,EAAV,IAAoBC,OAAWA,EAAX,MAAvGP,EAAWC,IAAI,MACpFW,IF0jDA9B,GEtuDU7R,EAAA/E,EAAMsa,eFuuDuC/E,EE5tDvDtE,cACLiH,YAAY,EACZT,MAAO,EACPQ,KAAM,GF6tDPzC,GEvjDkBF,EADpBnT,OAAAmU,EAAA,IF0jDoGX,EAASD,EAAU,SAAU6E,GAGhI,QAASjF,KACP,GAAIkF,GAAQ3H,EAAQ4H,CAEpB1E,KAA6E5R,KAAMmR,EAEnF,KAAK,GAAIoF,GAAQnb,UAAUC,OAAQwX,EAAOtX,MAAMgb,GAAQC,EAAQ,EAAGA,EAAQD,EAAOC,IAChF3D,EAAK2D,GAASpb,UAAUob,EAG1B,OAAgBH,GAAU3H,EAASoD,IAAwF9R,KAAMoW,EAAsB/V,KAAK0N,MAAMqI,GAAwBpW,MAAMgO,OAAO6E,KAAkBnE,EErjD3N/P,OACE8X,SAAU/H,EAAK1R,MAAM0Z,WAAanE,EAAA,GFsjD/B7D,EE7iDLiI,WAAa,WACXjI,EAAKU,UAAWqH,SAAU/H,EAAK/P,MAAM8X,WF8iDlC/H,EE3iDL0E,YAAc,SAACE,GACb5E,EAAK1R,MAAM4Z,YAAYlI,EAAK1R,MAAM6Z,MAAOvD,IF4iDtC5E,EEziDLoI,UAAY,SAACC,GACPA,GAEFrI,EAAKU,UACH6E,MAAO8C,EAAKC,eF+hDTV,EAaJD,EAASvE,IAAwFpD,EAAQ4H,GA8G9G,MAtIAtE,KAAuEb,EAAciF,GA2BrFjF,EAAa/S,UEjkDb6Y,0BFikDmD,SEjkDxBxY,GACpBT,OAAAiU,EAAA,IAAGxT,EAAUoY,MAAO7W,KAAKhD,MAAM6Z,QAClC7W,KAAKoP,UAAWqH,SAAUhY,EAAUiY,aFqkDxCvF,EAAa/S,UEhjDb8Y,qBFgjD8C,WEhjDvB,GAAAC,GACSnX,KAAKhD,MAA3B6Z,EADaM,EACbN,KACR,OAFqBM,GACNpD,YACqB,IAAf8C,EAAM/C,MAAc+C,EAAMnC,OAAO,EAAG,OAAQ,QAAS,YFsjD5EvD,EAAa/S,UEnjDbyV,OFmjDgC,WEnjDtB,GAAAuD,GAAApX,KAAAqX,EACmCrX,KAAKhD,MAAxC6Z,EADAQ,EACAR,MAAOpZ,EADP4Z,EACO5Z,KAAMiZ,EADbW,EACaX,UAAWxC,EADxBmD,EACwBnD,OADxBvG,EAEmB3N,KAAKrB,MAAxBsV,EAFAtG,EAEAsG,MAAOwC,EAFP9I,EAEO8I,QAEXvI,SAEE1C,IAYN,IAVIxL,KAAKkX,uBACHjD,IACFzI,EAAM0I,OAASD,EAAQjU,KAAKhD,MAAM6Z,MAAMnC,OAAO,EAAG,OAAQ,QAAS,YAGrElJ,EAAM0I,OADGD,EACMA,GAAS,GAAG,GAEZC,EAGZuC,EAeE,CACL,GAAM3C,GAAO+C,EAAMS,KAAK,GAAGxD,IAGzB5F,GADElO,KAAKkX,uBACPxF,IAAYe,GAAZsB,YAAA,EAAAR,QAAqCvT,KAAKoT,YAA1CO,WAAmEkD,EAAMjD,IAAI,GAA7EI,aAA+FC,IAEpF4C,EAAMS,KAAK,GAAG1G,IAAI,SAAC+C,EAAYrV,GAAb,MAAAoT,KAAoBe,GAApBc,QAA6D6D,EAAKhE,YAAlEO,WAA2FA,EAA3FL,MAA8GhV,EAA9GwV,KAAuHA,EAAvHE,aAA2IC,GAA7GN,EAAWC,IAAI,aArBhE,CACZ,GAAI2D,SAGFA,GADEb,EACFhF,IAAWS,EAAA,GAAX/N,GAA+B,2BAA/BC,eAAyE,sBAEzEqN,IAAWS,EAAA,GAAX/N,GAA+B,sBAA/BC,eAAoE,iBAGtE6J,EACEtN,EAAA/E,EAAAgF,cAAA,UAAQwB,KAAK,SAAS+S,UAAU,gBAAgB7B,QAASvT,KAAK2W,WAAYnL,MAAOA,EAAOxK,IAAKhB,KAAK8W,WAAlGpF,IAAA,QAAA0D,UACkB,8BADlB,GAC4CmC,GAD5C7F,IAAA,QAAA0D,UAEkB,8BAFlB,GAAA1D,IAE4CS,EAAA,GAF5C/N,GAEgE,0BAFhEC,eAEyG,oBAa7G,MACEzD,GAAA/E,EAAAgF,cAAA,OAAKuU,UAAU,gBAAgB5J,MAAOA,EAAOxK,IAAKhB,KAAK8W,WAAvDpF,IAAA,OAAA0D,UACkB9C,IAAW,kBAAoBkF,0BAA2Bf,SAD5E,GAAA/E,IAEKQ,EAAA,GAFLsD,MAEuB/X,EAAKqG,cAAcG,EAASuO,gBAFnDiF,KAE0EhB,EAAU,MAAQ,YAF5FiB,SAAA,EAAAnE,QAE0HvT,KAAK2W,cAG5HzI,IF+lDAiD,GEhsDiCvQ,EAAA/E,EAAMsa,eFisDgB5E,EErrDvDzE,cACLiH,YAAY,GF4iD0EzC,EA0IvFE,KAAYF,GAMTqG,IACA,SAAU5c,EAAQC,EAAqBC,GAE7C,YACA+C,QAAO+C,eAAe/F,EAAqB,cAAgByF,OAAO,IACnCxF,EAAoB4K,EAAE7K,EAAqB,UAAW,WAAa,MAAO4c,IACpF,IAAIC,GAA8D5c,EAAoB,IAClF6c,EAAsE7c,EAAoBmL,EAAEyR,GAC5FE,EAA8E9c,EAAoB,IAClG+c,EAAsF/c,EAAoBmL,EAAE2R,GAC5GE,EAA0Dhd,EAAoB,GAC9Eid,EAAkEjd,EAAoBmL,EAAE6R,GACxFE,EAAqEld,EAAoB,GACzFmd,EAA6End,EAAoBmL,EAAE+R,GACnGE,EAAgFpd,EAAoB,GACpGqd,EAAwFrd,EAAoBmL,EAAEiS,GAC9GE,EAA+Dtd,EAAoB,GACnFud,EAAuEvd,EAAoBmL,EAAEmS,GAC7FE,EAAsCxd,EAAoB,GAC1Dyd,EAA8Czd,EAAoBmL,EAAEqS,GACpEE,EAA0C1d,EAAoB,IAC9D2d,EAAkD3d,EAAoBmL,EAAEuS,GACxEE,EAA2C5d,EAAoB,GAC/D6d,EAAyC7d,EAAoB,GAC7D8d,EAA2D9d,EAAoB,KAC/E+d,EAAiD/d,EAAoB,IACrEge,EAAkEhe,EAAoB,KACtFie,EAAwDje,EAAoB,KAC5Eke,EAAqEle,EAAoB,KACzFme,EAA2Cne,EAAoB,GAoBpFoe,GAnBwEpe,EAAoBmL,EAAEgT,GG75DjEpb,OAAA8a,EAAA,cAAzBpd,EHi7DS2d,EGj7DT3d,WAAYuI,EHk7DLoV,EGl7DKpV,QACpBjG,QAAA6a,EAAA,GAAcnd,EAEd,IAAM4d,IAAqBnI,aAAA4H,EAAA,QAAcQ,MAAAP,EAAA,QAAOQ,KAAAP,EAAA,GAE3BrB,EHm7DA,SAAU6B,GAG7B,QAAS7B,KACP,GAAIjF,GAAO1S,EAAO2S,CAElBwF,KAA6EpY,KAAM4X,EAEnF,KAAK,GAAIhK,GAAOxS,UAAUC,OAAQwX,EAAOtX,MAAMqS,GAAOE,EAAO,EAAGA,EAAOF,EAAME,IAC3E+E,EAAK/E,GAAQ1S,UAAU0S,EAGzB,OAAe6E,GAAS1S,EAAQqY,IAAwFtY,KAAMyZ,EAAepZ,KAAK0N,MAAM0L,GAAiBzZ,MAAMgO,OAAO6E,KAAiB5S,EGx7DzMtB,OACEkY,MAAO,KACPvD,MAAO,KACPxE,KAAM,MHy7DH7O,EGt7DLyZ,gBAAkB,SAAC7C,EAAOvD,GACxBqG,SAASC,KAAKC,UAAUC,IAAI,0BAC5B7Z,EAAKmP,UAAWyH,QAAOvD,WHu7DpBrT,EGp7DL8Z,gBAAkB,SAACC,EAAOlL,GACxB,GAAM+H,GAAQ7Y,OAAAob,EAAA,OAAeY,GAE7BL,UAASC,KAAKC,UAAUC,IAAI,0BAC5B7Z,EAAKmP,UAAWyH,QAAO/H,UHq7DpB7O,EGl7DLga,iBAAmB,WACjBN,SAASC,KAAKC,UAAUK,OAAO,0BAC/Bja,EAAKmP,UAAWyH,MAAO,KAAMvD,MAAO,KAAMxE,KAAM,QHo6DzC8D,EAeJD,EAAQ2F,IAAwFrY,EAAO2S,GAwC5G,MAlEA4F,KAAuEZ,EAAgB6B,GA6BvF7B,EAAexZ,UGn7DfyV,OHm7DkC,WGn7DxB,GAAAnF,GAAA1O,KAAAqO,EACuBrO,KAAKhD,MAA5BrB,EADA0S,EACA1S,OAAQwe,EADR9L,EACQ8L,UAEhB,OAAAjC,KACGW,EAAA,GADHld,OACwBA,EADxBsI,SAC0CA,OAD1C,GAAAiU,IAEKO,EAAA,gBAFL,MAGU7H,IAAIvQ,KAAK8Z,EAAY,SAACC,EAAW9b,GACnC,GAAM+b,GAAgBD,EAAUE,aAAa,kBACvCC,EAAYjB,EAAiBe,GAFMG,EAGPC,KAAKC,MAAMN,EAAUE,aAAa,eAA5DzD,EAHiC2D,EAGjC3D,MAAO8D,EAH0BH,EAG1BG,KAAS3d,EAHiBgb,IAAAwC,GAAA,gBAgBzC,OAXAxc,QAAOgL,OAAOhM,EAAdgB,OAAAgL,UACM6N,GAAUA,MAAO7Y,OAAAob,EAAA,QAAOvC,OACxB8D,GAAUA,KAAO3c,OAAAob,EAAA,QAAOuB,OAEN,UAAlBN,GACFO,YAAalM,EAAKqL,kBAElBnD,YAAalI,EAAKgL,mBAIfd,EAAA/c,EAASgf,aACdnC,EAAA7c,EAAAgF,cAAC0Z,EAADzC,OAAe9a,GAAOwD,IAAA,SAAclC,KACpC8b,KArBVlC,IAwBOgB,EAAA,GAxBP4B,QAwB0B9a,KAAKia,sBAxB/B,GAyBSja,KAAKrB,MAAMkY,OAAXqB,IACEiB,EAAA,GADFtC,MAEU7W,KAAKrB,MAAMkY,MAFrBvD,MAGUtT,KAAKrB,MAAM2U,OAAS,EAH9BxE,KAIS9O,KAAKrB,MAAMmQ,KAJpBgM,QAKY9a,KAAKia,uBHu7DrBrC,GGt/DmCa,EAAA,gBH6/DtCsC,IACA,SAAUhgB,EAAQC,EAAqBC,GAE7C,YAC+BA,GAAoB4K,EAAE7K,EAAqB,IAAK,WAAa,MAAOwe,IAC9E,IAqBjBpI,GAAQC,EArBaI,EAA0DxW,EAAoB,GAC9EyW,EAAkEzW,EAAoBmL,EAAEqL,GACxFE,EAAqE1W,EAAoB,GACzF2W,EAA6E3W,EAAoBmL,EAAEuL,GACnGE,EAAgF5W,EAAoB,GACpG6W,EAAwF7W,EAAoBmL,EAAEyL,GAC9GE,EAA+D9W,EAAoB,GACnF+W,EAAuE/W,EAAoBmL,EAAE2L,GAC7F9Q,EAAsChG,EAAoB,GAC1D2F,EAA8C3F,EAAoBmL,EAAEnF,GACpEgR,EAA0ChX,EAAoB,GAC9D+f,EAAkD/f,EAAoBmL,EAAE6L,GACxEgJ,EAAyChgB,EAAoB,KAC7DigB,EAAiDjgB,EAAoBmL,EAAE6U,GACvEE,EAA2ClgB,EAAoB,IAC/DmgB,EAAmDngB,EAAoBmL,EAAE+U,GIzhE5FE,EAAa,SAAAC,GACjB,MAAOA,GACJpf,MAAM,KACN0U,IAAI,SAAAD,GAAA,MAAsC,KAA9BA,EAAKpH,QALF,QAK+B2R,EAAArf,EAAS0f,OAAO5K,EAAKvJ,MALpD,OAKsE/L,SAAWsV,IAChGvU,KAAK,MAGJof,EAAc,SAAAC,GAClB,GAAMC,GAAS/B,SAAS9Y,cAAc,IAEtC,OADA6a,GAAOrG,KAAOoG,EACPC,EAAOC,UAGVC,EAAO,SAACC,EAAMC,GAClB,GAAMC,GAAMF,EAAKtS,QAAQ,IAAKuS,EAE9B,QAAa,IAATC,EACKF,EAGFA,EAAKG,UAAU,EAAGD,IAAQF,EAAKxgB,OAASygB,EAAM,IAAM,KAGvDG,EAAY,GAAIC,WAEhBC,EAAc,SAAApL,GAClB,GAAM4I,GAAWsC,EAAUG,gBAAgBrL,EAAM,aAAasL,gBACxDC,EAAS3C,EAAS4C,cAAc,SAEtC,OAAID,KAC+B,IAA7BA,EAAOhH,IAAI/L,QAAQ,KACrB+S,EAAOhH,KAAO,IAEdgH,EAAOhH,KAAO,IAGhBgH,EAAOhH,KAAO,yBAIPqE,EAAS4C,cAAc,QAAQC,WAGjCzL,GAGYyI,GJyiETnI,EAASD,EAAS,SAAUsB,GAGtC,QAAS8G,KACP,GAAI7G,GAAO1S,EAAO2S,CAElBhB,KAA6E5R,KAAMwZ,EAEnF,KAAK,GAAI5L,GAAOxS,UAAUC,OAAQwX,EAAOtX,MAAMqS,GAAOE,EAAO,EAAGA,EAAOF,EAAME,IAC3E+E,EAAK/E,GAAQ1S,UAAU0S,EAGzB,OAAe6E,GAAS1S,EAAQ6R,IAAwF9R,KAAM0S,EAAqBrS,KAAK0N,MAAM2E,GAAuB1S,MAAMgO,OAAO6E,KAAiB5S,EIziErNtB,OACEsV,MAAO,IACPwI,UAAU,GJ0iEPxc,EIjiELyc,iBAAmB,WAAM,GAAArJ,GACOpT,EAAKjD,MAA3B2d,EADetH,EACfsH,MAER/D,EAHuBvD,EACTuD,aAGZoE,EAAAnf,EAAU8gB,SAENta,KAAM,QACNoZ,IAAKd,EAAK/G,IAAI,aACdhE,YAAa+K,EAAK/G,IAAI,SACtBgJ,MACEC,UACE5I,MAAO0G,EAAK/G,IAAI,SAChBM,OAAQyG,EAAK/G,IAAI,eAKzB,IJiiEC3T,EI7hEL6c,iBAAmB,WAGQ,UAFR7c,EAAKjD,MAAd2d,KAEC/G,IAAI,QACX3T,EAAKyc,mBAELzc,EAAKmP,UAAWqN,UAAU,KJgiEzBxc,EI5hEL8c,OAAS,SAAAC,GACHA,GACF/c,EAAKmP,UAAW6E,MAAO+I,EAAEhG,eJ6/DpBpE,EAiCJD,EAAQb,IAAwF7R,EAAO2S,GAqH5G,MAjKAZ,KAAuEwH,EAAM9G,GA+C7E8G,EAAKpb,UIxkEL6Y,0BJwkE2C,SIxkEhBxY,GACrBuB,KAAKhD,MAAM2d,OAASlc,EAAUkc,MAChC3a,KAAKoP,UAAWqN,UAAU,KJ4kE9BjD,EAAKpb,UIniEL6e,YJmiE6B,WIniEd,GACLtC,GAAU3a,KAAKhD,MAAf2d,KACFuC,GAAclM,OAAQmL,EAAYxB,EAAK/G,IAAI,UACzCK,EAAUjU,KAAKrB,MAAfsV,MACFkJ,EAAYxC,EAAK/G,IAAI,SAAW+G,EAAK/G,IAAI,UACzCM,EAAYyG,EAAK/G,IAAI,SAAW+G,EAAK/G,IAAI,UAAaK,EAAQkJ,EAAUlJ,EAAQkJ,CAEtF,OACEvc,GAAA/E,EAAAgF,cAAA,OACEG,IAAKhB,KAAK+c,OACV3H,UAAU,uCACVnE,wBAAyBiM,EACzB1R,OAAS0I,aJwiEfsF,EAAKpb,UIniELyV,OJmiEwB,WIniEd,GAAAxF,GACyBrO,KAAKhD,MAA9B2d,EADAtM,EACAsM,KAAMyC,EADN/O,EACM+O,eADNzP,EAEyB3N,KAAKrB,MAA9BsV,EAFAtG,EAEAsG,MAAOwI,EAFP9O,EAEO8O,QAEf,IAAa,OAAT9B,EACF,MAAO,KAGT,IAAM0C,GAAmD,IAArC1C,EAAK/G,IAAI,iBAAiBvY,OAAeggB,EAAWG,EAAYb,EAAK/G,IAAI,SAAW+G,EAAK/G,IAAI,iBAC3G0J,EAAc3C,EAAK/G,IAAI,SAAW+G,EAAK/G,IAAI,WAAc+G,EAAK/G,IAAI,SAAW,KAAOK,GAA+B,SAArB0G,EAAK/G,IAAI,QACvGwB,EAAcgG,IAAW,eAAiBkC,eAC1CC,EAAmC,SAArB5C,EAAK/G,IAAI,QACvB4B,EAAc+H,EAAA7L,IAAA6L,KAAAnI,UAA2B,qBAA3BC,KAAsDsF,EAAK/G,IAAI,OAA/D4B,MAA8EmF,EAAK/G,IAAI,SAAvF4J,IAAqG,WAArG/U,OAAuH,cAAvH,GAAAiJ,IAAA,mBAAyIiJ,EAAK/G,IAAI,WAAlJlC,IAAA,UAAA0D,UAA6L,qBAA7LI,MAAyNmF,EAAK/G,IAAI,cAAlO,GAA6O+G,EAAK/G,IAAI,UACpQuJ,EAAcxC,EAAK/G,IAAI,SAAW+G,EAAK/G,IAAI,UAC3CM,EAAcyG,EAAK/G,IAAI,SAAW+G,EAAK/G,IAAI,UAAaK,EAAQkJ,EAAUlJ,EAAQkJ,EAElFvN,EAAA8B,IAAA9B,OAAAwF,UACW,4BADX,GAEDI,GACC8H,GAAD5L,IAAA,KAAA0D,UAA4B,gCAA5B,GAAwDwG,EAAKjB,EAAK/G,IAAI,gBAAkB,GAAIwJ,IAH3F1L,IAAA,QAAA0D,UAIc,yBAJd,GAImCiI,IAIrCI,EAAY,GACZlJ,EAAA7C,IAAA6C,OAAA/I,OAA0BkS,uBAAwB/C,EAAK/G,IAAI,SAAjC,IAA8CK,MAAOqJ,EAAarJ,EAAQ,KAAMC,OAAQoJ,EAAapJ,EAAS,MAAxIkB,UAA0J,4BAE9J,IAAImI,EAAa,CACf,GAAId,EACFgB,EAAQzd,KAAKid,kBACR,CACL,GAAIU,GAAc,MAEO,WAArBhD,EAAK/G,IAAI,UACX+J,EAAc,eAGhBF,EAAA/L,IAAA+L,OAAArI,UACiB,0BADjB,GAEKb,EAFL7C,IAAA,OAAA0D,UAImB,4BAJnB,GAAA1D,IAAA,gBAAAA,IAAA,UAAA6B,QAMyBvT,KAAK8c,sBAN9B,GAAApL,IAAA,KAAA0D,UAAA,SAMuEuI,KANvEjM,IAAA,KAAA2D,KAOiBsF,EAAK/G,IAAI,OAP1BnL,OAOyC,SAPzC+U,IAOsD,gBAPtD,GAAA9L,IAAA,KAAA0D,UAO8E,4BAOhF,MACExU,GAAA/E,EAAAgF,cAAA,OAAKuU,UAAWA,EAAWpU,IAAKhB,KAAK+c,QAClCU,EACA7N,GAWP,MARW+K,GAAK/G,IAAI,WAClB6J,EAAA/L,IAAA+L,OAAArI,UACiB,0BADjB,GAEKb,IAML3T,EAAA/E,EAAAgF,cAAA,KAAGwU,KAAMsF,EAAK/G,IAAI,OAAQwB,UAAWA,EAAW3M,OAAO,SAAS+U,IAAI,WAAWxc,IAAKhB,KAAK+c,QACtFU,EACA7N,IJ0jEA4J,GI3sEyB5Y,EAAA/E,EAAMsa,eJ4sEwB/E,EIpsEvDtE,cACLsQ,eAAgB,IJqsEjB/L,IAKGuM,IACA,SAAU7iB,EAAQ8iB,EAAS5iB,IAEL,SAASF,EAAQ+iB,GK7wE7C,GAAAC,IACE,SAASC,GAgEV,QAASC,GAAM5b,GACd,KAAM,IAAI6b,YAAWC,EAAO9b,IAW7B,QAASuO,GAAIwN,EAAOC,GAGnB,IAFA,GAAIhjB,GAAS+iB,EAAM/iB,OACfijB,KACGjjB,KACNijB,EAAOjjB,GAAUgjB,EAAGD,EAAM/iB,GAE3B,OAAOijB,GAaR,QAASC,GAAUvU,EAAQqU,GAC1B,GAAIG,GAAQxU,EAAO9N,MAAM,KACrBoiB,EAAS,EAWb,OAVIE,GAAMnjB,OAAS,IAGlBijB,EAASE,EAAM,GAAK,IACpBxU,EAASwU,EAAM,IAGhBxU,EAASA,EAAOrN,QAAQ8hB,EAAiB,KAGlCH,EADO1N,EADD5G,EAAO9N,MAAM,KACAmiB,GAAIjiB,KAAK,KAiBpC,QAASsiB,GAAW1U,GAMnB,IALA,GAGIvJ,GACAke,EAJAC,KACArO,EAAU,EACVlV,EAAS2O,EAAO3O,OAGbkV,EAAUlV,GAChBoF,EAAQuJ,EAAO6U,WAAWtO,KACtB9P,GAAS,OAAUA,GAAS,OAAU8P,EAAUlV,GAEnDsjB,EAAQ3U,EAAO6U,WAAWtO,KACF,QAAX,MAARoO,GACJC,EAAOE,OAAe,KAARre,IAAkB,KAAe,KAARke,GAAiB,QAIxDC,EAAOE,KAAKre,GACZ8P,MAGDqO,EAAOE,KAAKre,EAGd,OAAOme,GAWR,QAASG,GAAWX,GACnB,MAAOxN,GAAIwN,EAAO,SAAS3d,GAC1B,GAAIme,GAAS,EAOb,OANIne,GAAQ,QACXA,GAAS,MACTme,GAAUI,EAAmBve,IAAU,GAAK,KAAQ,OACpDA,EAAQ,MAAiB,KAARA,GAElBme,GAAUI,EAAmBve,KAE3BrE,KAAK,IAYT,QAAS6iB,GAAaC,GACrB,MAAIA,GAAY,GAAK,GACbA,EAAY,GAEhBA,EAAY,GAAK,GACbA,EAAY,GAEhBA,EAAY,GAAK,GACbA,EAAY,GAEbC,EAcR,QAASC,GAAaC,EAAOC,GAG5B,MAAOD,GAAQ,GAAK,IAAMA,EAAQ,MAAgB,GAARC,IAAc,GAQzD,QAASC,GAAM1a,EAAO2a,EAAWC,GAChC,GAAIC,GAAI,CAGR,KAFA7a,EAAQ4a,EAAYtP,EAAMtL,EAAQ8a,GAAQ9a,GAAS,EACnDA,GAASsL,EAAMtL,EAAQ2a,GACO3a,EAAQ+a,EAAgBC,GAAQ,EAAGH,GAAKP,EACrEta,EAAQsL,EAAMtL,EAAQ+a,EAEvB,OAAOzP,GAAMuP,GAAKE,EAAgB,GAAK/a,GAASA,EAAQib,IAUzD,QAASvE,GAAOwE,GAEf,GAEIC,GAIAC,EACAC,EACA5M,EACA6M,EACAC,EACAV,EACAL,EACAgB,EAEAC,EAfA1B,KACA2B,EAAcR,EAAM1kB,OAEpBiD,EAAI,EACJ8H,EAAIoa,EACJC,EAAOC,CAqBX,KALAT,EAAQF,EAAMY,YAAYC,GACtBX,EAAQ,IACXA,EAAQ,GAGJC,EAAI,EAAGA,EAAID,IAASC,EAEpBH,EAAMlB,WAAWqB,IAAM,KAC1BjC,EAAM,aAEPW,EAAOE,KAAKiB,EAAMlB,WAAWqB,GAM9B,KAAK5M,EAAQ2M,EAAQ,EAAIA,EAAQ,EAAI,EAAG3M,EAAQiN,GAAwC,CAOvF,IAAKJ,EAAO7hB,EAAG8hB,EAAI,EAAGV,EAAIP,EAErB7L,GAASiN,GACZtC,EAAM,iBAGPoB,EAAQJ,EAAac,EAAMlB,WAAWvL,OAElC+L,GAASF,GAAQE,EAAQlP,GAAO0Q,EAASviB,GAAK8hB,KACjDnC,EAAM,YAGP3f,GAAK+gB,EAAQe,EACbC,EAAIX,GAAKe,EAAOK,EAAQpB,GAAKe,EAAOZ,EAAOA,EAAOH,EAAIe,IAElDpB,EAAQgB,GAfuCX,GAAKP,EAmBxDmB,EAAanB,EAAOkB,EAChBD,EAAIjQ,EAAM0Q,EAASP,IACtBrC,EAAM,YAGPmC,GAAKE,CAINN,GAAMpB,EAAOvjB,OAAS,EACtBolB,EAAOlB,EAAMjhB,EAAI6hB,EAAMH,EAAa,GAARG,GAIxBhQ,EAAM7R,EAAI0hB,GAAOa,EAASza,GAC7B6X,EAAM,YAGP7X,GAAK+J,EAAM7R,EAAI0hB,GACf1hB,GAAK0hB,EAGLpB,EAAOmC,OAAOziB,IAAK,EAAG8H,GAIvB,MAAO2Y,GAAWH,GAUnB,QAASoC,GAAOjB,GACf,GAAI3Z,GACAvB,EACAoc,EACAC,EACAT,EACAP,EACAiB,EACAC,EACA1B,EACAW,EACAgB,EAGAd,EAEAe,EACAhB,EACAiB,EANA3C,IAoBJ,KAXAmB,EAAQrB,EAAWqB,GAGnBQ,EAAcR,EAAM1kB,OAGpB+K,EAAIoa,EACJ3b,EAAQ,EACR4b,EAAOC,EAGFR,EAAI,EAAGA,EAAIK,IAAeL,GAC9BmB,EAAetB,EAAMG,IACF,KAClBtB,EAAOE,KAAKE,EAAmBqC,GAejC,KAXAJ,EAAiBC,EAActC,EAAOvjB,OAMlC6lB,GACHtC,EAAOE,KAAK8B,GAINK,EAAiBV,GAAa,CAIpC,IAAKY,EAAIN,EAAQX,EAAI,EAAGA,EAAIK,IAAeL,GAC1CmB,EAAetB,EAAMG,KACD9Z,GAAKib,EAAeF,IACvCA,EAAIE,EAcN,KARAC,EAAwBL,EAAiB,EACrCE,EAAI/a,EAAI+J,GAAO0Q,EAAShc,GAASyc,IACpCrD,EAAM,YAGPpZ,IAAUsc,EAAI/a,GAAKkb,EACnBlb,EAAI+a,EAECjB,EAAI,EAAGA,EAAIK,IAAeL,EAO9B,GANAmB,EAAetB,EAAMG,GAEjBmB,EAAejb,KAAOvB,EAAQgc,GACjC5C,EAAM,YAGHoD,GAAgBjb,EAAG,CAEtB,IAAKgb,EAAIvc,EAAO6a,EAAIP,EACnBkB,EAAIX,GAAKe,EAAOK,EAAQpB,GAAKe,EAAOZ,EAAOA,EAAOH,EAAIe,IAClDW,EAAIf,GAFqCX,GAAKP,EAKlDoC,EAAUH,EAAIf,EACdC,EAAanB,EAAOkB,EACpBzB,EAAOE,KACNE,EAAmBI,EAAaiB,EAAIkB,EAAUjB,EAAY,KAE3Dc,EAAIjR,EAAMoR,EAAUjB,EAGrB1B,GAAOE,KAAKE,EAAmBI,EAAagC,EAAG,KAC/CX,EAAOlB,EAAM1a,EAAOyc,EAAuBL,GAAkBC,GAC7Drc,EAAQ,IACNoc,IAIFpc,IACAuB,EAGH,MAAOwY,GAAOxiB,KAAK,IAcpB,QAASolB,GAAUzB,GAClB,MAAOxB,GAAUwB,EAAO,SAAS/V,GAChC,MAAOyX,GAAcC,KAAK1X,GACvBuR,EAAOvR,EAAO5C,MAAM,GAAG7K,eACvByN,IAeL,QAAS2X,GAAQ5B,GAChB,MAAOxB,GAAUwB,EAAO,SAAS/V,GAChC,MAAO4X,GAAcF,KAAK1X,GACvB,OAASgX,EAAOhX,GAChBA,IAvdL,GAII6X,IAJgC,gBAAXhE,IAAuBA,GAC9CA,EAAQiE,SACwB,gBAAV/mB,IAAsBA,GAC5CA,EAAO+mB,SACyB,gBAAVhE,IAAsBA,EAc9C,IAAIiE,GAGJlB,EAAS,WAGT1B,EAAO,GACP2B,EAAO,EACPjB,EAAO,GACPC,EAAO,GACPH,EAAO,IACPe,EAAc,GACdF,EAAW,IACXI,EAAY,IAGZa,EAAgB,QAChBG,EAAgB,eAChBnD,EAAkB,4BAGlBN,GACC6D,SAAY,kDACZC,YAAa,iDACbC,gBAAiB,iBAIlBtC,EAAgBT,EAAO2B,EACvB3Q,EAAQpL,KAAKoL,MACb6O,EAAqBjc,OAAOof,YA8a5BJ,IAMCK,QAAW,QAQXC,MACC9G,OAAUmD,EACVsC,OAAUjC,GAEXxD,OAAUA,EACVyF,OAAUA,EACVW,QAAWA,EACXH,UAAaA,OAWblmB,MAAAyiB,EAAA,WACC,MAAOgE,IADR1hB,KAAAwd,EAAA5iB,EAAA4iB,EAAA9iB,QAAA8iB,QAAAE,QLyxE2B1d,KAAKwd,EAAS5iB,EAAoB,KAAKF,GAASE,EAAoB","file":"containers/media_container.js","sourcesContent":["webpackJsonp([34,33],{\n\n/***/ 7:\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"e\", function() { return addLocaleData; });\n/* unused harmony export intlShape */\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"g\", function() { return injectIntl; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"f\", function() { return defineMessages; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"d\", function() { return IntlProvider; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"a\", function() { return FormattedDate; });\n/* unused harmony export FormattedTime */\n/* unused harmony export FormattedRelative */\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"c\", function() { return FormattedNumber; });\n/* unused harmony export FormattedPlural */\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"b\", function() { return FormattedMessage; });\n/* unused harmony export FormattedHTMLMessage */\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__locale_data_index_js__ = __webpack_require__(107);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__locale_data_index_js___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_0__locale_data_index_js__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_intl_messageformat__ = __webpack_require__(59);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_intl_messageformat___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_1_intl_messageformat__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2_intl_relativeformat__ = __webpack_require__(76);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2_intl_relativeformat___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_2_intl_relativeformat__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3_prop_types__ = __webpack_require__(5);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3_prop_types___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_3_prop_types__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_4_react__ = __webpack_require__(0);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_4_react___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_4_react__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_5_invariant__ = __webpack_require__(18);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_5_invariant___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_5_invariant__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_6_intl_format_cache__ = __webpack_require__(108);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_6_intl_format_cache___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_6_intl_format_cache__);\n/*\n * Copyright 2017, Yahoo Inc.\n * Copyrights licensed under the New BSD License.\n * See the accompanying LICENSE file for terms.\n */\n\n\n\n\n\n\n\n\n\n// GENERATED FILE\nvar defaultLocaleData = { \"locale\": \"en\", \"pluralRuleFunction\": function pluralRuleFunction(n, ord) {\n var s = String(n).split(\".\"),\n v0 = !s[1],\n t0 = Number(s[0]) == n,\n n10 = t0 && s[0].slice(-1),\n n100 = t0 && s[0].slice(-2);if (ord) return n10 == 1 && n100 != 11 ? \"one\" : n10 == 2 && n100 != 12 ? \"two\" : n10 == 3 && n100 != 13 ? \"few\" : \"other\";return n == 1 && v0 ? \"one\" : \"other\";\n }, \"fields\": { \"year\": { \"displayName\": \"year\", \"relative\": { \"0\": \"this year\", \"1\": \"next year\", \"-1\": \"last year\" }, \"relativeTime\": { \"future\": { \"one\": \"in {0} year\", \"other\": \"in {0} years\" }, \"past\": { \"one\": \"{0} year ago\", \"other\": \"{0} years ago\" } } }, \"month\": { \"displayName\": \"month\", \"relative\": { \"0\": \"this month\", \"1\": \"next month\", \"-1\": \"last month\" }, \"relativeTime\": { \"future\": { \"one\": \"in {0} month\", \"other\": \"in {0} months\" }, \"past\": { \"one\": \"{0} month ago\", \"other\": \"{0} months ago\" } } }, \"day\": { \"displayName\": \"day\", \"relative\": { \"0\": \"today\", \"1\": \"tomorrow\", \"-1\": \"yesterday\" }, \"relativeTime\": { \"future\": { \"one\": \"in {0} day\", \"other\": \"in {0} days\" }, \"past\": { \"one\": \"{0} day ago\", \"other\": \"{0} days ago\" } } }, \"hour\": { \"displayName\": \"hour\", \"relative\": { \"0\": \"this hour\" }, \"relativeTime\": { \"future\": { \"one\": \"in {0} hour\", \"other\": \"in {0} hours\" }, \"past\": { \"one\": \"{0} hour ago\", \"other\": \"{0} hours ago\" } } }, \"minute\": { \"displayName\": \"minute\", \"relative\": { \"0\": \"this minute\" }, \"relativeTime\": { \"future\": { \"one\": \"in {0} minute\", \"other\": \"in {0} minutes\" }, \"past\": { \"one\": \"{0} minute ago\", \"other\": \"{0} minutes ago\" } } }, \"second\": { \"displayName\": \"second\", \"relative\": { \"0\": \"now\" }, \"relativeTime\": { \"future\": { \"one\": \"in {0} second\", \"other\": \"in {0} seconds\" }, \"past\": { \"one\": \"{0} second ago\", \"other\": \"{0} seconds ago\" } } } } };\n\n/*\n * Copyright 2015, Yahoo Inc.\n * Copyrights licensed under the New BSD License.\n * See the accompanying LICENSE file for terms.\n */\n\nfunction addLocaleData() {\n var data = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];\n\n var locales = Array.isArray(data) ? data : [data];\n\n locales.forEach(function (localeData) {\n if (localeData && localeData.locale) {\n __WEBPACK_IMPORTED_MODULE_1_intl_messageformat___default.a.__addLocaleData(localeData);\n __WEBPACK_IMPORTED_MODULE_2_intl_relativeformat___default.a.__addLocaleData(localeData);\n }\n });\n}\n\nfunction hasLocaleData(locale) {\n var localeParts = (locale || '').split('-');\n\n while (localeParts.length > 0) {\n if (hasIMFAndIRFLocaleData(localeParts.join('-'))) {\n return true;\n }\n\n localeParts.pop();\n }\n\n return false;\n}\n\nfunction hasIMFAndIRFLocaleData(locale) {\n var normalizedLocale = locale && locale.toLowerCase();\n\n return !!(__WEBPACK_IMPORTED_MODULE_1_intl_messageformat___default.a.__localeData__[normalizedLocale] && __WEBPACK_IMPORTED_MODULE_2_intl_relativeformat___default.a.__localeData__[normalizedLocale]);\n}\n\nvar _typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) {\n return typeof obj;\n} : function (obj) {\n return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n};\n\nvar classCallCheck = function (instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n};\n\nvar createClass = function () {\n function defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n }\n\n return function (Constructor, protoProps, staticProps) {\n if (protoProps) defineProperties(Constructor.prototype, protoProps);\n if (staticProps) defineProperties(Constructor, staticProps);\n return Constructor;\n };\n}();\n\nvar defineProperty = function (obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\n};\n\nvar _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n\n return target;\n};\n\nvar inherits = function (subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass);\n }\n\n subClass.prototype = Object.create(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n enumerable: false,\n writable: true,\n configurable: true\n }\n });\n if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass;\n};\n\nvar objectWithoutProperties = function (obj, keys) {\n var target = {};\n\n for (var i in obj) {\n if (keys.indexOf(i) >= 0) continue;\n if (!Object.prototype.hasOwnProperty.call(obj, i)) continue;\n target[i] = obj[i];\n }\n\n return target;\n};\n\nvar possibleConstructorReturn = function (self, call) {\n if (!self) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n\n return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self;\n};\n\nvar toConsumableArray = function (arr) {\n if (Array.isArray(arr)) {\n for (var i = 0, arr2 = Array(arr.length); i < arr.length; i++) arr2[i] = arr[i];\n\n return arr2;\n } else {\n return Array.from(arr);\n }\n};\n\n/*\n * Copyright 2015, Yahoo Inc.\n * Copyrights licensed under the New BSD License.\n * See the accompanying LICENSE file for terms.\n */\n\nvar bool = __WEBPACK_IMPORTED_MODULE_3_prop_types___default.a.bool;\nvar number = __WEBPACK_IMPORTED_MODULE_3_prop_types___default.a.number;\nvar string = __WEBPACK_IMPORTED_MODULE_3_prop_types___default.a.string;\nvar func = __WEBPACK_IMPORTED_MODULE_3_prop_types___default.a.func;\nvar object = __WEBPACK_IMPORTED_MODULE_3_prop_types___default.a.object;\nvar oneOf = __WEBPACK_IMPORTED_MODULE_3_prop_types___default.a.oneOf;\nvar shape = __WEBPACK_IMPORTED_MODULE_3_prop_types___default.a.shape;\nvar any = __WEBPACK_IMPORTED_MODULE_3_prop_types___default.a.any;\nvar oneOfType = __WEBPACK_IMPORTED_MODULE_3_prop_types___default.a.oneOfType;\n\nvar localeMatcher = oneOf(['best fit', 'lookup']);\nvar narrowShortLong = oneOf(['narrow', 'short', 'long']);\nvar numeric2digit = oneOf(['numeric', '2-digit']);\nvar funcReq = func.isRequired;\n\nvar intlConfigPropTypes = {\n locale: string,\n formats: object,\n messages: object,\n textComponent: any,\n\n defaultLocale: string,\n defaultFormats: object\n};\n\nvar intlFormatPropTypes = {\n formatDate: funcReq,\n formatTime: funcReq,\n formatRelative: funcReq,\n formatNumber: funcReq,\n formatPlural: funcReq,\n formatMessage: funcReq,\n formatHTMLMessage: funcReq\n};\n\nvar intlShape = shape(_extends({}, intlConfigPropTypes, intlFormatPropTypes, {\n formatters: object,\n now: funcReq\n}));\n\nvar messageDescriptorPropTypes = {\n id: string.isRequired,\n description: oneOfType([string, object]),\n defaultMessage: string\n};\n\nvar dateTimeFormatPropTypes = {\n localeMatcher: localeMatcher,\n formatMatcher: oneOf(['basic', 'best fit']),\n\n timeZone: string,\n hour12: bool,\n\n weekday: narrowShortLong,\n era: narrowShortLong,\n year: numeric2digit,\n month: oneOf(['numeric', '2-digit', 'narrow', 'short', 'long']),\n day: numeric2digit,\n hour: numeric2digit,\n minute: numeric2digit,\n second: numeric2digit,\n timeZoneName: oneOf(['short', 'long'])\n};\n\nvar numberFormatPropTypes = {\n localeMatcher: localeMatcher,\n\n style: oneOf(['decimal', 'currency', 'percent']),\n currency: string,\n currencyDisplay: oneOf(['symbol', 'code', 'name']),\n useGrouping: bool,\n\n minimumIntegerDigits: number,\n minimumFractionDigits: number,\n maximumFractionDigits: number,\n minimumSignificantDigits: number,\n maximumSignificantDigits: number\n};\n\nvar relativeFormatPropTypes = {\n style: oneOf(['best fit', 'numeric']),\n units: oneOf(['second', 'minute', 'hour', 'day', 'month', 'year'])\n};\n\nvar pluralFormatPropTypes = {\n style: oneOf(['cardinal', 'ordinal'])\n};\n\n/*\nHTML escaping and shallow-equals implementations are the same as React's\n(on purpose.) Therefore, it has the following Copyright and Licensing:\n\nCopyright 2013-2014, Facebook, Inc.\nAll rights reserved.\n\nThis source code is licensed under the BSD-style license found in the LICENSE\nfile in the root directory of React's source tree.\n*/\n\nvar intlConfigPropNames = Object.keys(intlConfigPropTypes);\n\nvar ESCAPED_CHARS = {\n '&': '&',\n '>': '>',\n '<': '<',\n '\"': '"',\n \"'\": '''\n};\n\nvar UNSAFE_CHARS_REGEX = /[&><\"']/g;\n\nfunction escape(str) {\n return ('' + str).replace(UNSAFE_CHARS_REGEX, function (match) {\n return ESCAPED_CHARS[match];\n });\n}\n\nfunction filterProps(props, whitelist) {\n var defaults$$1 = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n\n return whitelist.reduce(function (filtered, name) {\n if (props.hasOwnProperty(name)) {\n filtered[name] = props[name];\n } else if (defaults$$1.hasOwnProperty(name)) {\n filtered[name] = defaults$$1[name];\n }\n\n return filtered;\n }, {});\n}\n\nfunction invariantIntlContext() {\n var _ref = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},\n intl = _ref.intl;\n\n __WEBPACK_IMPORTED_MODULE_5_invariant___default()(intl, '[React Intl] Could not find required `intl` object. ' + '<IntlProvider> needs to exist in the component ancestry.');\n}\n\nfunction shallowEquals(objA, objB) {\n if (objA === objB) {\n return true;\n }\n\n if ((typeof objA === 'undefined' ? 'undefined' : _typeof(objA)) !== 'object' || objA === null || (typeof objB === 'undefined' ? 'undefined' : _typeof(objB)) !== 'object' || objB === null) {\n return false;\n }\n\n var keysA = Object.keys(objA);\n var keysB = Object.keys(objB);\n\n if (keysA.length !== keysB.length) {\n return false;\n }\n\n // Test for A's keys different from B.\n var bHasOwnProperty = Object.prototype.hasOwnProperty.bind(objB);\n for (var i = 0; i < keysA.length; i++) {\n if (!bHasOwnProperty(keysA[i]) || objA[keysA[i]] !== objB[keysA[i]]) {\n return false;\n }\n }\n\n return true;\n}\n\nfunction shouldIntlComponentUpdate(_ref2, nextProps, nextState) {\n var props = _ref2.props,\n state = _ref2.state,\n _ref2$context = _ref2.context,\n context = _ref2$context === undefined ? {} : _ref2$context;\n var nextContext = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : {};\n var _context$intl = context.intl,\n intl = _context$intl === undefined ? {} : _context$intl;\n var _nextContext$intl = nextContext.intl,\n nextIntl = _nextContext$intl === undefined ? {} : _nextContext$intl;\n\n return !shallowEquals(nextProps, props) || !shallowEquals(nextState, state) || !(nextIntl === intl || shallowEquals(filterProps(nextIntl, intlConfigPropNames), filterProps(intl, intlConfigPropNames)));\n}\n\n/*\n * Copyright 2015, Yahoo Inc.\n * Copyrights licensed under the New BSD License.\n * See the accompanying LICENSE file for terms.\n */\n\n// Inspired by react-redux's `connect()` HOC factory function implementation:\n// https://github.com/rackt/react-redux\n\nfunction getDisplayName(Component$$1) {\n return Component$$1.displayName || Component$$1.name || 'Component';\n}\n\nfunction injectIntl(WrappedComponent) {\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n var _options$intlPropName = options.intlPropName,\n intlPropName = _options$intlPropName === undefined ? 'intl' : _options$intlPropName,\n _options$withRef = options.withRef,\n withRef = _options$withRef === undefined ? false : _options$withRef;\n\n var InjectIntl = function (_Component) {\n inherits(InjectIntl, _Component);\n\n function InjectIntl(props, context) {\n classCallCheck(this, InjectIntl);\n\n var _this = possibleConstructorReturn(this, (InjectIntl.__proto__ || Object.getPrototypeOf(InjectIntl)).call(this, props, context));\n\n invariantIntlContext(context);\n return _this;\n }\n\n createClass(InjectIntl, [{\n key: 'getWrappedInstance',\n value: function getWrappedInstance() {\n __WEBPACK_IMPORTED_MODULE_5_invariant___default()(withRef, '[React Intl] To access the wrapped instance, ' + 'the `{withRef: true}` option must be set when calling: ' + '`injectIntl()`');\n\n return this.refs.wrappedInstance;\n }\n }, {\n key: 'render',\n value: function render() {\n return __WEBPACK_IMPORTED_MODULE_4_react___default.a.createElement(WrappedComponent, _extends({}, this.props, defineProperty({}, intlPropName, this.context.intl), {\n ref: withRef ? 'wrappedInstance' : null\n }));\n }\n }]);\n return InjectIntl;\n }(__WEBPACK_IMPORTED_MODULE_4_react__[\"Component\"]);\n\n InjectIntl.displayName = 'InjectIntl(' + getDisplayName(WrappedComponent) + ')';\n InjectIntl.contextTypes = {\n intl: intlShape\n };\n InjectIntl.WrappedComponent = WrappedComponent;\n\n return InjectIntl;\n}\n\n/*\n * Copyright 2015, Yahoo Inc.\n * Copyrights licensed under the New BSD License.\n * See the accompanying LICENSE file for terms.\n */\n\nfunction defineMessages(messageDescriptors) {\n // This simply returns what's passed-in because it's meant to be a hook for\n // babel-plugin-react-intl.\n return messageDescriptors;\n}\n\n/*\n * Copyright 2015, Yahoo Inc.\n * Copyrights licensed under the New BSD License.\n * See the accompanying LICENSE file for terms.\n */\n\n// This is a \"hack\" until a proper `intl-pluralformat` package is created.\n\nfunction resolveLocale(locales) {\n // IntlMessageFormat#_resolveLocale() does not depend on `this`.\n return __WEBPACK_IMPORTED_MODULE_1_intl_messageformat___default.a.prototype._resolveLocale(locales);\n}\n\nfunction findPluralFunction(locale) {\n // IntlMessageFormat#_findPluralFunction() does not depend on `this`.\n return __WEBPACK_IMPORTED_MODULE_1_intl_messageformat___default.a.prototype._findPluralRuleFunction(locale);\n}\n\nvar IntlPluralFormat = function IntlPluralFormat(locales) {\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n classCallCheck(this, IntlPluralFormat);\n\n var useOrdinal = options.style === 'ordinal';\n var pluralFn = findPluralFunction(resolveLocale(locales));\n\n this.format = function (value) {\n return pluralFn(value, useOrdinal);\n };\n};\n\n/*\n * Copyright 2015, Yahoo Inc.\n * Copyrights licensed under the New BSD License.\n * See the accompanying LICENSE file for terms.\n */\n\nvar DATE_TIME_FORMAT_OPTIONS = Object.keys(dateTimeFormatPropTypes);\nvar NUMBER_FORMAT_OPTIONS = Object.keys(numberFormatPropTypes);\nvar RELATIVE_FORMAT_OPTIONS = Object.keys(relativeFormatPropTypes);\nvar PLURAL_FORMAT_OPTIONS = Object.keys(pluralFormatPropTypes);\n\nvar RELATIVE_FORMAT_THRESHOLDS = {\n second: 60, // seconds to minute\n minute: 60, // minutes to hour\n hour: 24, // hours to day\n day: 30, // days to month\n month: 12 // months to year\n};\n\nfunction updateRelativeFormatThresholds(newThresholds) {\n var thresholds = __WEBPACK_IMPORTED_MODULE_2_intl_relativeformat___default.a.thresholds;\n thresholds.second = newThresholds.second;\n thresholds.minute = newThresholds.minute;\n thresholds.hour = newThresholds.hour;\n thresholds.day = newThresholds.day;\n thresholds.month = newThresholds.month;\n}\n\nfunction getNamedFormat(formats, type, name) {\n var format = formats && formats[type] && formats[type][name];\n if (format) {\n return format;\n }\n\n if (false) {\n console.error('[React Intl] No ' + type + ' format named: ' + name);\n }\n}\n\nfunction formatDate(config, state, value) {\n var options = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : {};\n var locale = config.locale,\n formats = config.formats;\n var format = options.format;\n\n var date = new Date(value);\n var defaults$$1 = format && getNamedFormat(formats, 'date', format);\n var filteredOptions = filterProps(options, DATE_TIME_FORMAT_OPTIONS, defaults$$1);\n\n try {\n return state.getDateTimeFormat(locale, filteredOptions).format(date);\n } catch (e) {\n if (false) {\n console.error('[React Intl] Error formatting date.\\n' + e);\n }\n }\n\n return String(date);\n}\n\nfunction formatTime(config, state, value) {\n var options = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : {};\n var locale = config.locale,\n formats = config.formats;\n var format = options.format;\n\n var date = new Date(value);\n var defaults$$1 = format && getNamedFormat(formats, 'time', format);\n var filteredOptions = filterProps(options, DATE_TIME_FORMAT_OPTIONS, defaults$$1);\n\n if (!filteredOptions.hour && !filteredOptions.minute && !filteredOptions.second) {\n // Add default formatting options if hour, minute, or second isn't defined.\n filteredOptions = _extends({}, filteredOptions, { hour: 'numeric', minute: 'numeric' });\n }\n\n try {\n return state.getDateTimeFormat(locale, filteredOptions).format(date);\n } catch (e) {\n if (false) {\n console.error('[React Intl] Error formatting time.\\n' + e);\n }\n }\n\n return String(date);\n}\n\nfunction formatRelative(config, state, value) {\n var options = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : {};\n var locale = config.locale,\n formats = config.formats;\n var format = options.format;\n\n var date = new Date(value);\n var now = new Date(options.now);\n var defaults$$1 = format && getNamedFormat(formats, 'relative', format);\n var filteredOptions = filterProps(options, RELATIVE_FORMAT_OPTIONS, defaults$$1);\n\n // Capture the current threshold values, then temporarily override them with\n // specific values just for this render.\n var oldThresholds = _extends({}, __WEBPACK_IMPORTED_MODULE_2_intl_relativeformat___default.a.thresholds);\n updateRelativeFormatThresholds(RELATIVE_FORMAT_THRESHOLDS);\n\n try {\n return state.getRelativeFormat(locale, filteredOptions).format(date, {\n now: isFinite(now) ? now : state.now()\n });\n } catch (e) {\n if (false) {\n console.error('[React Intl] Error formatting relative time.\\n' + e);\n }\n } finally {\n updateRelativeFormatThresholds(oldThresholds);\n }\n\n return String(date);\n}\n\nfunction formatNumber(config, state, value) {\n var options = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : {};\n var locale = config.locale,\n formats = config.formats;\n var format = options.format;\n\n var defaults$$1 = format && getNamedFormat(formats, 'number', format);\n var filteredOptions = filterProps(options, NUMBER_FORMAT_OPTIONS, defaults$$1);\n\n try {\n return state.getNumberFormat(locale, filteredOptions).format(value);\n } catch (e) {\n if (false) {\n console.error('[React Intl] Error formatting number.\\n' + e);\n }\n }\n\n return String(value);\n}\n\nfunction formatPlural(config, state, value) {\n var options = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : {};\n var locale = config.locale;\n\n var filteredOptions = filterProps(options, PLURAL_FORMAT_OPTIONS);\n\n try {\n return state.getPluralFormat(locale, filteredOptions).format(value);\n } catch (e) {\n if (false) {\n console.error('[React Intl] Error formatting plural.\\n' + e);\n }\n }\n\n return 'other';\n}\n\nfunction formatMessage(config, state) {\n var messageDescriptor = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n var values = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : {};\n var locale = config.locale,\n formats = config.formats,\n messages = config.messages,\n defaultLocale = config.defaultLocale,\n defaultFormats = config.defaultFormats;\n var id = messageDescriptor.id,\n defaultMessage = messageDescriptor.defaultMessage;\n\n // `id` is a required field of a Message Descriptor.\n\n __WEBPACK_IMPORTED_MODULE_5_invariant___default()(id, '[React Intl] An `id` must be provided to format a message.');\n\n var message = messages && messages[id];\n var hasValues = Object.keys(values).length > 0;\n\n // Avoid expensive message formatting for simple messages without values. In\n // development messages will always be formatted in case of missing values.\n if (!hasValues && \"production\" === 'production') {\n return message || defaultMessage || id;\n }\n\n var formattedMessage = void 0;\n\n if (message) {\n try {\n var formatter = state.getMessageFormat(message, locale, formats);\n\n formattedMessage = formatter.format(values);\n } catch (e) {\n if (false) {\n console.error('[React Intl] Error formatting message: \"' + id + '\" for locale: \"' + locale + '\"' + (defaultMessage ? ', using default message as fallback.' : '') + ('\\n' + e));\n }\n }\n } else {\n if (false) {\n // This prevents warnings from littering the console in development\n // when no `messages` are passed into the <IntlProvider> for the\n // default locale, and a default message is in the source.\n if (!defaultMessage || locale && locale.toLowerCase() !== defaultLocale.toLowerCase()) {\n console.error('[React Intl] Missing message: \"' + id + '\" for locale: \"' + locale + '\"' + (defaultMessage ? ', using default message as fallback.' : ''));\n }\n }\n }\n\n if (!formattedMessage && defaultMessage) {\n try {\n var _formatter = state.getMessageFormat(defaultMessage, defaultLocale, defaultFormats);\n\n formattedMessage = _formatter.format(values);\n } catch (e) {\n if (false) {\n console.error('[React Intl] Error formatting the default message for: \"' + id + '\"' + ('\\n' + e));\n }\n }\n }\n\n if (!formattedMessage) {\n if (false) {\n console.error('[React Intl] Cannot format message: \"' + id + '\", ' + ('using message ' + (message || defaultMessage ? 'source' : 'id') + ' as fallback.'));\n }\n }\n\n return formattedMessage || message || defaultMessage || id;\n}\n\nfunction formatHTMLMessage(config, state, messageDescriptor) {\n var rawValues = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : {};\n\n // Process all the values before they are used when formatting the ICU\n // Message string. Since the formatted message might be injected via\n // `innerHTML`, all String-based values need to be HTML-escaped.\n var escapedValues = Object.keys(rawValues).reduce(function (escaped, name) {\n var value = rawValues[name];\n escaped[name] = typeof value === 'string' ? escape(value) : value;\n return escaped;\n }, {});\n\n return formatMessage(config, state, messageDescriptor, escapedValues);\n}\n\nvar format = Object.freeze({\n formatDate: formatDate,\n formatTime: formatTime,\n formatRelative: formatRelative,\n formatNumber: formatNumber,\n formatPlural: formatPlural,\n formatMessage: formatMessage,\n formatHTMLMessage: formatHTMLMessage\n});\n\n/*\n * Copyright 2015, Yahoo Inc.\n * Copyrights licensed under the New BSD License.\n * See the accompanying LICENSE file for terms.\n */\n\nvar intlConfigPropNames$1 = Object.keys(intlConfigPropTypes);\nvar intlFormatPropNames = Object.keys(intlFormatPropTypes);\n\n// These are not a static property on the `IntlProvider` class so the intl\n// config values can be inherited from an <IntlProvider> ancestor.\nvar defaultProps = {\n formats: {},\n messages: {},\n textComponent: 'span',\n\n defaultLocale: 'en',\n defaultFormats: {}\n};\n\nvar IntlProvider = function (_Component) {\n inherits(IntlProvider, _Component);\n\n function IntlProvider(props) {\n var context = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n classCallCheck(this, IntlProvider);\n\n var _this = possibleConstructorReturn(this, (IntlProvider.__proto__ || Object.getPrototypeOf(IntlProvider)).call(this, props, context));\n\n __WEBPACK_IMPORTED_MODULE_5_invariant___default()(typeof Intl !== 'undefined', '[React Intl] The `Intl` APIs must be available in the runtime, ' + 'and do not appear to be built-in. An `Intl` polyfill should be loaded.\\n' + 'See: http://formatjs.io/guides/runtime-environments/');\n\n var intlContext = context.intl;\n\n // Used to stabilize time when performing an initial rendering so that\n // all relative times use the same reference \"now\" time.\n\n var initialNow = void 0;\n if (isFinite(props.initialNow)) {\n initialNow = Number(props.initialNow);\n } else {\n // When an `initialNow` isn't provided via `props`, look to see an\n // <IntlProvider> exists in the ancestry and call its `now()`\n // function to propagate its value for \"now\".\n initialNow = intlContext ? intlContext.now() : Date.now();\n }\n\n // Creating `Intl*` formatters is expensive. If there's a parent\n // `<IntlProvider>`, then its formatters will be used. Otherwise, this\n // memoize the `Intl*` constructors and cache them for the lifecycle of\n // this IntlProvider instance.\n\n var _ref = intlContext || {},\n _ref$formatters = _ref.formatters,\n formatters = _ref$formatters === undefined ? {\n getDateTimeFormat: __WEBPACK_IMPORTED_MODULE_6_intl_format_cache___default()(Intl.DateTimeFormat),\n getNumberFormat: __WEBPACK_IMPORTED_MODULE_6_intl_format_cache___default()(Intl.NumberFormat),\n getMessageFormat: __WEBPACK_IMPORTED_MODULE_6_intl_format_cache___default()(__WEBPACK_IMPORTED_MODULE_1_intl_messageformat___default.a),\n getRelativeFormat: __WEBPACK_IMPORTED_MODULE_6_intl_format_cache___default()(__WEBPACK_IMPORTED_MODULE_2_intl_relativeformat___default.a),\n getPluralFormat: __WEBPACK_IMPORTED_MODULE_6_intl_format_cache___default()(IntlPluralFormat)\n } : _ref$formatters;\n\n _this.state = _extends({}, formatters, {\n\n // Wrapper to provide stable \"now\" time for initial render.\n now: function now() {\n return _this._didDisplay ? Date.now() : initialNow;\n }\n });\n return _this;\n }\n\n createClass(IntlProvider, [{\n key: 'getConfig',\n value: function getConfig() {\n var intlContext = this.context.intl;\n\n // Build a whitelisted config object from `props`, defaults, and\n // `context.intl`, if an <IntlProvider> exists in the ancestry.\n\n var config = filterProps(this.props, intlConfigPropNames$1, intlContext);\n\n // Apply default props. This must be applied last after the props have\n // been resolved and inherited from any <IntlProvider> in the ancestry.\n // This matches how React resolves `defaultProps`.\n for (var propName in defaultProps) {\n if (config[propName] === undefined) {\n config[propName] = defaultProps[propName];\n }\n }\n\n if (!hasLocaleData(config.locale)) {\n var _config = config,\n locale = _config.locale,\n defaultLocale = _config.defaultLocale,\n defaultFormats = _config.defaultFormats;\n\n if (false) {\n console.error('[React Intl] Missing locale data for locale: \"' + locale + '\". ' + ('Using default locale: \"' + defaultLocale + '\" as fallback.'));\n }\n\n // Since there's no registered locale data for `locale`, this will\n // fallback to the `defaultLocale` to make sure things can render.\n // The `messages` are overridden to the `defaultProps` empty object\n // to maintain referential equality across re-renders. It's assumed\n // each <FormattedMessage> contains a `defaultMessage` prop.\n config = _extends({}, config, {\n locale: defaultLocale,\n formats: defaultFormats,\n messages: defaultProps.messages\n });\n }\n\n return config;\n }\n }, {\n key: 'getBoundFormatFns',\n value: function getBoundFormatFns(config, state) {\n return intlFormatPropNames.reduce(function (boundFormatFns, name) {\n boundFormatFns[name] = format[name].bind(null, config, state);\n return boundFormatFns;\n }, {});\n }\n }, {\n key: 'getChildContext',\n value: function getChildContext() {\n var config = this.getConfig();\n\n // Bind intl factories and current config to the format functions.\n var boundFormatFns = this.getBoundFormatFns(config, this.state);\n\n var _state = this.state,\n now = _state.now,\n formatters = objectWithoutProperties(_state, ['now']);\n\n return {\n intl: _extends({}, config, boundFormatFns, {\n formatters: formatters,\n now: now\n })\n };\n }\n }, {\n key: 'shouldComponentUpdate',\n value: function shouldComponentUpdate() {\n for (var _len = arguments.length, next = Array(_len), _key = 0; _key < _len; _key++) {\n next[_key] = arguments[_key];\n }\n\n return shouldIntlComponentUpdate.apply(undefined, [this].concat(next));\n }\n }, {\n key: 'componentDidMount',\n value: function componentDidMount() {\n this._didDisplay = true;\n }\n }, {\n key: 'render',\n value: function render() {\n return __WEBPACK_IMPORTED_MODULE_4_react__[\"Children\"].only(this.props.children);\n }\n }]);\n return IntlProvider;\n}(__WEBPACK_IMPORTED_MODULE_4_react__[\"Component\"]);\n\nIntlProvider.displayName = 'IntlProvider';\nIntlProvider.contextTypes = {\n intl: intlShape\n};\nIntlProvider.childContextTypes = {\n intl: intlShape.isRequired\n};\n false ? IntlProvider.propTypes = _extends({}, intlConfigPropTypes, {\n children: PropTypes.element.isRequired,\n initialNow: PropTypes.any\n}) : void 0;\n\n/*\n * Copyright 2015, Yahoo Inc.\n * Copyrights licensed under the New BSD License.\n * See the accompanying LICENSE file for terms.\n */\n\nvar FormattedDate = function (_Component) {\n inherits(FormattedDate, _Component);\n\n function FormattedDate(props, context) {\n classCallCheck(this, FormattedDate);\n\n var _this = possibleConstructorReturn(this, (FormattedDate.__proto__ || Object.getPrototypeOf(FormattedDate)).call(this, props, context));\n\n invariantIntlContext(context);\n return _this;\n }\n\n createClass(FormattedDate, [{\n key: 'shouldComponentUpdate',\n value: function shouldComponentUpdate() {\n for (var _len = arguments.length, next = Array(_len), _key = 0; _key < _len; _key++) {\n next[_key] = arguments[_key];\n }\n\n return shouldIntlComponentUpdate.apply(undefined, [this].concat(next));\n }\n }, {\n key: 'render',\n value: function render() {\n var _context$intl = this.context.intl,\n formatDate = _context$intl.formatDate,\n Text = _context$intl.textComponent;\n var _props = this.props,\n value = _props.value,\n children = _props.children;\n\n var formattedDate = formatDate(value, this.props);\n\n if (typeof children === 'function') {\n return children(formattedDate);\n }\n\n return __WEBPACK_IMPORTED_MODULE_4_react___default.a.createElement(Text, null, formattedDate);\n }\n }]);\n return FormattedDate;\n}(__WEBPACK_IMPORTED_MODULE_4_react__[\"Component\"]);\n\nFormattedDate.displayName = 'FormattedDate';\nFormattedDate.contextTypes = {\n intl: intlShape\n};\n false ? void 0 : void 0;\n\n/*\n * Copyright 2015, Yahoo Inc.\n * Copyrights licensed under the New BSD License.\n * See the accompanying LICENSE file for terms.\n */\n\nvar FormattedTime = function (_Component) {\n inherits(FormattedTime, _Component);\n\n function FormattedTime(props, context) {\n classCallCheck(this, FormattedTime);\n\n var _this = possibleConstructorReturn(this, (FormattedTime.__proto__ || Object.getPrototypeOf(FormattedTime)).call(this, props, context));\n\n invariantIntlContext(context);\n return _this;\n }\n\n createClass(FormattedTime, [{\n key: 'shouldComponentUpdate',\n value: function shouldComponentUpdate() {\n for (var _len = arguments.length, next = Array(_len), _key = 0; _key < _len; _key++) {\n next[_key] = arguments[_key];\n }\n\n return shouldIntlComponentUpdate.apply(undefined, [this].concat(next));\n }\n }, {\n key: 'render',\n value: function render() {\n var _context$intl = this.context.intl,\n formatTime = _context$intl.formatTime,\n Text = _context$intl.textComponent;\n var _props = this.props,\n value = _props.value,\n children = _props.children;\n\n var formattedTime = formatTime(value, this.props);\n\n if (typeof children === 'function') {\n return children(formattedTime);\n }\n\n return __WEBPACK_IMPORTED_MODULE_4_react___default.a.createElement(Text, null, formattedTime);\n }\n }]);\n return FormattedTime;\n}(__WEBPACK_IMPORTED_MODULE_4_react__[\"Component\"]);\n\nFormattedTime.displayName = 'FormattedTime';\nFormattedTime.contextTypes = {\n intl: intlShape\n};\n false ? void 0 : void 0;\n\n/*\n * Copyright 2015, Yahoo Inc.\n * Copyrights licensed under the New BSD License.\n * See the accompanying LICENSE file for terms.\n */\n\nvar SECOND = 1000;\nvar MINUTE = 1000 * 60;\nvar HOUR = 1000 * 60 * 60;\nvar DAY = 1000 * 60 * 60 * 24;\n\n// The maximum timer delay value is a 32-bit signed integer.\n// See: https://mdn.io/setTimeout\nvar MAX_TIMER_DELAY = 2147483647;\n\nfunction selectUnits(delta) {\n var absDelta = Math.abs(delta);\n\n if (absDelta < MINUTE) {\n return 'second';\n }\n\n if (absDelta < HOUR) {\n return 'minute';\n }\n\n if (absDelta < DAY) {\n return 'hour';\n }\n\n // The maximum scheduled delay will be measured in days since the maximum\n // timer delay is less than the number of milliseconds in 25 days.\n return 'day';\n}\n\nfunction getUnitDelay(units) {\n switch (units) {\n case 'second':\n return SECOND;\n case 'minute':\n return MINUTE;\n case 'hour':\n return HOUR;\n case 'day':\n return DAY;\n default:\n return MAX_TIMER_DELAY;\n }\n}\n\nfunction isSameDate(a, b) {\n if (a === b) {\n return true;\n }\n\n var aTime = new Date(a).getTime();\n var bTime = new Date(b).getTime();\n\n return isFinite(aTime) && isFinite(bTime) && aTime === bTime;\n}\n\nvar FormattedRelative = function (_Component) {\n inherits(FormattedRelative, _Component);\n\n function FormattedRelative(props, context) {\n classCallCheck(this, FormattedRelative);\n\n var _this = possibleConstructorReturn(this, (FormattedRelative.__proto__ || Object.getPrototypeOf(FormattedRelative)).call(this, props, context));\n\n invariantIntlContext(context);\n\n var now = isFinite(props.initialNow) ? Number(props.initialNow) : context.intl.now();\n\n // `now` is stored as state so that `render()` remains a function of\n // props + state, instead of accessing `Date.now()` inside `render()`.\n _this.state = { now: now };\n return _this;\n }\n\n createClass(FormattedRelative, [{\n key: 'scheduleNextUpdate',\n value: function scheduleNextUpdate(props, state) {\n var _this2 = this;\n\n // Cancel and pending update because we're scheduling a new update.\n clearTimeout(this._timer);\n\n var value = props.value,\n units = props.units,\n updateInterval = props.updateInterval;\n\n var time = new Date(value).getTime();\n\n // If the `updateInterval` is falsy, including `0` or we don't have a\n // valid date, then auto updates have been turned off, so we bail and\n // skip scheduling an update.\n if (!updateInterval || !isFinite(time)) {\n return;\n }\n\n var delta = time - state.now;\n var unitDelay = getUnitDelay(units || selectUnits(delta));\n var unitRemainder = Math.abs(delta % unitDelay);\n\n // We want the largest possible timer delay which will still display\n // accurate information while reducing unnecessary re-renders. The delay\n // should be until the next \"interesting\" moment, like a tick from\n // \"1 minute ago\" to \"2 minutes ago\" when the delta is 120,000ms.\n var delay = delta < 0 ? Math.max(updateInterval, unitDelay - unitRemainder) : Math.max(updateInterval, unitRemainder);\n\n this._timer = setTimeout(function () {\n _this2.setState({ now: _this2.context.intl.now() });\n }, delay);\n }\n }, {\n key: 'componentDidMount',\n value: function componentDidMount() {\n this.scheduleNextUpdate(this.props, this.state);\n }\n }, {\n key: 'componentWillReceiveProps',\n value: function componentWillReceiveProps(_ref) {\n var nextValue = _ref.value;\n\n // When the `props.value` date changes, `state.now` needs to be updated,\n // and the next update can be rescheduled.\n if (!isSameDate(nextValue, this.props.value)) {\n this.setState({ now: this.context.intl.now() });\n }\n }\n }, {\n key: 'shouldComponentUpdate',\n value: function shouldComponentUpdate() {\n for (var _len = arguments.length, next = Array(_len), _key = 0; _key < _len; _key++) {\n next[_key] = arguments[_key];\n }\n\n return shouldIntlComponentUpdate.apply(undefined, [this].concat(next));\n }\n }, {\n key: 'componentWillUpdate',\n value: function componentWillUpdate(nextProps, nextState) {\n this.scheduleNextUpdate(nextProps, nextState);\n }\n }, {\n key: 'componentWillUnmount',\n value: function componentWillUnmount() {\n clearTimeout(this._timer);\n }\n }, {\n key: 'render',\n value: function render() {\n var _context$intl = this.context.intl,\n formatRelative = _context$intl.formatRelative,\n Text = _context$intl.textComponent;\n var _props = this.props,\n value = _props.value,\n children = _props.children;\n\n var formattedRelative = formatRelative(value, _extends({}, this.props, this.state));\n\n if (typeof children === 'function') {\n return children(formattedRelative);\n }\n\n return __WEBPACK_IMPORTED_MODULE_4_react___default.a.createElement(Text, null, formattedRelative);\n }\n }]);\n return FormattedRelative;\n}(__WEBPACK_IMPORTED_MODULE_4_react__[\"Component\"]);\n\nFormattedRelative.displayName = 'FormattedRelative';\nFormattedRelative.contextTypes = {\n intl: intlShape\n};\nFormattedRelative.defaultProps = {\n updateInterval: 1000 * 10\n};\n false ? void 0 : void 0;\n\n/*\n * Copyright 2015, Yahoo Inc.\n * Copyrights licensed under the New BSD License.\n * See the accompanying LICENSE file for terms.\n */\n\nvar FormattedNumber = function (_Component) {\n inherits(FormattedNumber, _Component);\n\n function FormattedNumber(props, context) {\n classCallCheck(this, FormattedNumber);\n\n var _this = possibleConstructorReturn(this, (FormattedNumber.__proto__ || Object.getPrototypeOf(FormattedNumber)).call(this, props, context));\n\n invariantIntlContext(context);\n return _this;\n }\n\n createClass(FormattedNumber, [{\n key: 'shouldComponentUpdate',\n value: function shouldComponentUpdate() {\n for (var _len = arguments.length, next = Array(_len), _key = 0; _key < _len; _key++) {\n next[_key] = arguments[_key];\n }\n\n return shouldIntlComponentUpdate.apply(undefined, [this].concat(next));\n }\n }, {\n key: 'render',\n value: function render() {\n var _context$intl = this.context.intl,\n formatNumber = _context$intl.formatNumber,\n Text = _context$intl.textComponent;\n var _props = this.props,\n value = _props.value,\n children = _props.children;\n\n var formattedNumber = formatNumber(value, this.props);\n\n if (typeof children === 'function') {\n return children(formattedNumber);\n }\n\n return __WEBPACK_IMPORTED_MODULE_4_react___default.a.createElement(Text, null, formattedNumber);\n }\n }]);\n return FormattedNumber;\n}(__WEBPACK_IMPORTED_MODULE_4_react__[\"Component\"]);\n\nFormattedNumber.displayName = 'FormattedNumber';\nFormattedNumber.contextTypes = {\n intl: intlShape\n};\n false ? void 0 : void 0;\n\n/*\n * Copyright 2015, Yahoo Inc.\n * Copyrights licensed under the New BSD License.\n * See the accompanying LICENSE file for terms.\n */\n\nvar FormattedPlural = function (_Component) {\n inherits(FormattedPlural, _Component);\n\n function FormattedPlural(props, context) {\n classCallCheck(this, FormattedPlural);\n\n var _this = possibleConstructorReturn(this, (FormattedPlural.__proto__ || Object.getPrototypeOf(FormattedPlural)).call(this, props, context));\n\n invariantIntlContext(context);\n return _this;\n }\n\n createClass(FormattedPlural, [{\n key: 'shouldComponentUpdate',\n value: function shouldComponentUpdate() {\n for (var _len = arguments.length, next = Array(_len), _key = 0; _key < _len; _key++) {\n next[_key] = arguments[_key];\n }\n\n return shouldIntlComponentUpdate.apply(undefined, [this].concat(next));\n }\n }, {\n key: 'render',\n value: function render() {\n var _context$intl = this.context.intl,\n formatPlural = _context$intl.formatPlural,\n Text = _context$intl.textComponent;\n var _props = this.props,\n value = _props.value,\n other = _props.other,\n children = _props.children;\n\n var pluralCategory = formatPlural(value, this.props);\n var formattedPlural = this.props[pluralCategory] || other;\n\n if (typeof children === 'function') {\n return children(formattedPlural);\n }\n\n return __WEBPACK_IMPORTED_MODULE_4_react___default.a.createElement(Text, null, formattedPlural);\n }\n }]);\n return FormattedPlural;\n}(__WEBPACK_IMPORTED_MODULE_4_react__[\"Component\"]);\n\nFormattedPlural.displayName = 'FormattedPlural';\nFormattedPlural.contextTypes = {\n intl: intlShape\n};\nFormattedPlural.defaultProps = {\n style: 'cardinal'\n};\n false ? void 0 : void 0;\n\n/*\n * Copyright 2015, Yahoo Inc.\n * Copyrights licensed under the New BSD License.\n * See the accompanying LICENSE file for terms.\n */\n\nvar FormattedMessage = function (_Component) {\n inherits(FormattedMessage, _Component);\n\n function FormattedMessage(props, context) {\n classCallCheck(this, FormattedMessage);\n\n var _this = possibleConstructorReturn(this, (FormattedMessage.__proto__ || Object.getPrototypeOf(FormattedMessage)).call(this, props, context));\n\n invariantIntlContext(context);\n return _this;\n }\n\n createClass(FormattedMessage, [{\n key: 'shouldComponentUpdate',\n value: function shouldComponentUpdate(nextProps) {\n var values = this.props.values;\n var nextValues = nextProps.values;\n\n if (!shallowEquals(nextValues, values)) {\n return true;\n }\n\n // Since `values` has already been checked, we know they're not\n // different, so the current `values` are carried over so the shallow\n // equals comparison on the other props isn't affected by the `values`.\n var nextPropsToCheck = _extends({}, nextProps, {\n values: values\n });\n\n for (var _len = arguments.length, next = Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n next[_key - 1] = arguments[_key];\n }\n\n return shouldIntlComponentUpdate.apply(undefined, [this, nextPropsToCheck].concat(next));\n }\n }, {\n key: 'render',\n value: function render() {\n var _context$intl = this.context.intl,\n formatMessage = _context$intl.formatMessage,\n Text = _context$intl.textComponent;\n var _props = this.props,\n id = _props.id,\n description = _props.description,\n defaultMessage = _props.defaultMessage,\n values = _props.values,\n _props$tagName = _props.tagName,\n Component$$1 = _props$tagName === undefined ? Text : _props$tagName,\n children = _props.children;\n\n var tokenDelimiter = void 0;\n var tokenizedValues = void 0;\n var elements = void 0;\n\n var hasValues = values && Object.keys(values).length > 0;\n if (hasValues) {\n // Creates a token with a random UID that should not be guessable or\n // conflict with other parts of the `message` string.\n var uid = Math.floor(Math.random() * 0x10000000000).toString(16);\n\n var generateToken = function () {\n var counter = 0;\n return function () {\n return 'ELEMENT-' + uid + '-' + (counter += 1);\n };\n }();\n\n // Splitting with a delimiter to support IE8. When using a regex\n // with a capture group IE8 does not include the capture group in\n // the resulting array.\n tokenDelimiter = '@__' + uid + '__@';\n tokenizedValues = {};\n elements = {};\n\n // Iterates over the `props` to keep track of any React Element\n // values so they can be represented by the `token` as a placeholder\n // when the `message` is formatted. This allows the formatted\n // message to then be broken-up into parts with references to the\n // React Elements inserted back in.\n Object.keys(values).forEach(function (name) {\n var value = values[name];\n\n if (Object(__WEBPACK_IMPORTED_MODULE_4_react__[\"isValidElement\"])(value)) {\n var token = generateToken();\n tokenizedValues[name] = tokenDelimiter + token + tokenDelimiter;\n elements[token] = value;\n } else {\n tokenizedValues[name] = value;\n }\n });\n }\n\n var descriptor = { id: id, description: description, defaultMessage: defaultMessage };\n var formattedMessage = formatMessage(descriptor, tokenizedValues || values);\n\n var nodes = void 0;\n\n var hasElements = elements && Object.keys(elements).length > 0;\n if (hasElements) {\n // Split the message into parts so the React Element values captured\n // above can be inserted back into the rendered message. This\n // approach allows messages to render with React Elements while\n // keeping React's virtual diffing working properly.\n nodes = formattedMessage.split(tokenDelimiter).filter(function (part) {\n return !!part;\n }).map(function (part) {\n return elements[part] || part;\n });\n } else {\n nodes = [formattedMessage];\n }\n\n if (typeof children === 'function') {\n return children.apply(undefined, toConsumableArray(nodes));\n }\n\n // Needs to use `createElement()` instead of JSX, otherwise React will\n // warn about a missing `key` prop with rich-text message formatting.\n return __WEBPACK_IMPORTED_MODULE_4_react__[\"createElement\"].apply(undefined, [Component$$1, null].concat(toConsumableArray(nodes)));\n }\n }]);\n return FormattedMessage;\n}(__WEBPACK_IMPORTED_MODULE_4_react__[\"Component\"]);\n\nFormattedMessage.displayName = 'FormattedMessage';\nFormattedMessage.contextTypes = {\n intl: intlShape\n};\nFormattedMessage.defaultProps = {\n values: {}\n};\n false ? FormattedMessage.propTypes = _extends({}, messageDescriptorPropTypes, {\n values: PropTypes.object,\n tagName: PropTypes.string,\n children: PropTypes.func\n}) : void 0;\n\n/*\n * Copyright 2015, Yahoo Inc.\n * Copyrights licensed under the New BSD License.\n * See the accompanying LICENSE file for terms.\n */\n\nvar FormattedHTMLMessage = function (_Component) {\n inherits(FormattedHTMLMessage, _Component);\n\n function FormattedHTMLMessage(props, context) {\n classCallCheck(this, FormattedHTMLMessage);\n\n var _this = possibleConstructorReturn(this, (FormattedHTMLMessage.__proto__ || Object.getPrototypeOf(FormattedHTMLMessage)).call(this, props, context));\n\n invariantIntlContext(context);\n return _this;\n }\n\n createClass(FormattedHTMLMessage, [{\n key: 'shouldComponentUpdate',\n value: function shouldComponentUpdate(nextProps) {\n var values = this.props.values;\n var nextValues = nextProps.values;\n\n if (!shallowEquals(nextValues, values)) {\n return true;\n }\n\n // Since `values` has already been checked, we know they're not\n // different, so the current `values` are carried over so the shallow\n // equals comparison on the other props isn't affected by the `values`.\n var nextPropsToCheck = _extends({}, nextProps, {\n values: values\n });\n\n for (var _len = arguments.length, next = Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n next[_key - 1] = arguments[_key];\n }\n\n return shouldIntlComponentUpdate.apply(undefined, [this, nextPropsToCheck].concat(next));\n }\n }, {\n key: 'render',\n value: function render() {\n var _context$intl = this.context.intl,\n formatHTMLMessage = _context$intl.formatHTMLMessage,\n Text = _context$intl.textComponent;\n var _props = this.props,\n id = _props.id,\n description = _props.description,\n defaultMessage = _props.defaultMessage,\n rawValues = _props.values,\n _props$tagName = _props.tagName,\n Component$$1 = _props$tagName === undefined ? Text : _props$tagName,\n children = _props.children;\n\n var descriptor = { id: id, description: description, defaultMessage: defaultMessage };\n var formattedHTMLMessage = formatHTMLMessage(descriptor, rawValues);\n\n if (typeof children === 'function') {\n return children(formattedHTMLMessage);\n }\n\n // Since the message presumably has HTML in it, we need to set\n // `innerHTML` in order for it to be rendered and not escaped by React.\n // To be safe, all string prop values were escaped when formatting the\n // message. It is assumed that the message is not UGC, and came from the\n // developer making it more like a template.\n //\n // Note: There's a perf impact of using this component since there's no\n // way for React to do its virtual DOM diffing.\n var html = { __html: formattedHTMLMessage };\n return __WEBPACK_IMPORTED_MODULE_4_react___default.a.createElement(Component$$1, { dangerouslySetInnerHTML: html });\n }\n }]);\n return FormattedHTMLMessage;\n}(__WEBPACK_IMPORTED_MODULE_4_react__[\"Component\"]);\n\nFormattedHTMLMessage.displayName = 'FormattedHTMLMessage';\nFormattedHTMLMessage.contextTypes = {\n intl: intlShape\n};\nFormattedHTMLMessage.defaultProps = {\n values: {}\n};\n false ? void 0 : void 0;\n\n/*\n * Copyright 2015, Yahoo Inc.\n * Copyrights licensed under the New BSD License.\n * See the accompanying LICENSE file for terms.\n */\n\naddLocaleData(defaultLocaleData);\n\n/*\n * Copyright 2015, Yahoo Inc.\n * Copyrights licensed under the New BSD License.\n * See the accompanying LICENSE file for terms.\n */\n\naddLocaleData(__WEBPACK_IMPORTED_MODULE_0__locale_data_index_js___default.a);\n\n\n\n/***/ }),\n\n/***/ 820:\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\nObject.defineProperty(__webpack_exports__, \"__esModule\", { value: true });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"default\", function() { return MediaGallery; });\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_babel_runtime_helpers_jsx__ = __webpack_require__(2);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_babel_runtime_helpers_jsx___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_0_babel_runtime_helpers_jsx__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_babel_runtime_helpers_classCallCheck__ = __webpack_require__(1);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_babel_runtime_helpers_classCallCheck___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_1_babel_runtime_helpers_classCallCheck__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2_babel_runtime_helpers_possibleConstructorReturn__ = __webpack_require__(3);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2_babel_runtime_helpers_possibleConstructorReturn___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_2_babel_runtime_helpers_possibleConstructorReturn__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3_babel_runtime_helpers_inherits__ = __webpack_require__(4);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3_babel_runtime_helpers_inherits___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_3_babel_runtime_helpers_inherits__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_4_react__ = __webpack_require__(0);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_4_react___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_4_react__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_5_immutable__ = __webpack_require__(8);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_5_immutable___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_5_immutable__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_6__icon_button__ = __webpack_require__(23);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_7_react_intl__ = __webpack_require__(7);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_8__is_mobile__ = __webpack_require__(43);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_9_classnames__ = __webpack_require__(10);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_9_classnames___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_9_classnames__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_10__initial_state__ = __webpack_require__(13);\n\n\n\n\n\nvar _class, _temp2, _class2, _class3, _temp4;\n\n\n\n\n\n\n\n\n\n\nvar messages = Object(__WEBPACK_IMPORTED_MODULE_7_react_intl__[\"f\" /* defineMessages */])({\n toggle_visible: {\n 'id': 'media_gallery.toggle_visible',\n 'defaultMessage': 'Toggle visibility'\n }\n});\n\nvar Item = (_temp2 = _class = function (_React$PureComponent) {\n __WEBPACK_IMPORTED_MODULE_3_babel_runtime_helpers_inherits___default()(Item, _React$PureComponent);\n\n function Item() {\n var _temp, _this, _ret;\n\n __WEBPACK_IMPORTED_MODULE_1_babel_runtime_helpers_classCallCheck___default()(this, Item);\n\n for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n return _ret = (_temp = (_this = __WEBPACK_IMPORTED_MODULE_2_babel_runtime_helpers_possibleConstructorReturn___default()(this, _React$PureComponent.call.apply(_React$PureComponent, [this].concat(args))), _this), _this.handleMouseEnter = function (e) {\n if (_this.hoverToPlay()) {\n e.target.play();\n }\n }, _this.handleMouseLeave = function (e) {\n if (_this.hoverToPlay()) {\n e.target.pause();\n e.target.currentTime = 0;\n }\n }, _this.handleClick = function (e) {\n var _this$props = _this.props,\n index = _this$props.index,\n onClick = _this$props.onClick;\n\n\n if (e.button === 0) {\n e.preventDefault();\n onClick(index);\n }\n\n e.stopPropagation();\n }, _temp), __WEBPACK_IMPORTED_MODULE_2_babel_runtime_helpers_possibleConstructorReturn___default()(_this, _ret);\n }\n\n Item.prototype.hoverToPlay = function hoverToPlay() {\n var attachment = this.props.attachment;\n\n return !__WEBPACK_IMPORTED_MODULE_10__initial_state__[\"a\" /* autoPlayGif */] && attachment.get('type') === 'gifv';\n };\n\n Item.prototype.render = function render() {\n var _props = this.props,\n attachment = _props.attachment,\n index = _props.index,\n size = _props.size,\n standalone = _props.standalone,\n displayWidth = _props.displayWidth;\n\n\n var width = 50;\n var height = 100;\n var top = 'auto';\n var left = 'auto';\n var bottom = 'auto';\n var right = 'auto';\n\n if (size === 1) {\n width = 100;\n }\n\n if (size === 4 || size === 3 && index > 0) {\n height = 50;\n }\n\n if (size === 2) {\n if (index === 0) {\n right = '2px';\n } else {\n left = '2px';\n }\n } else if (size === 3) {\n if (index === 0) {\n right = '2px';\n } else if (index > 0) {\n left = '2px';\n }\n\n if (index === 1) {\n bottom = '2px';\n } else if (index > 1) {\n top = '2px';\n }\n } else if (size === 4) {\n if (index === 0 || index === 2) {\n right = '2px';\n }\n\n if (index === 1 || index === 3) {\n left = '2px';\n }\n\n if (index < 2) {\n bottom = '2px';\n } else {\n top = '2px';\n }\n }\n\n var thumbnail = '';\n\n if (attachment.get('type') === 'image') {\n var previewUrl = attachment.get('preview_url');\n var previewWidth = attachment.getIn(['meta', 'small', 'width']);\n\n var originalUrl = attachment.get('url');\n var originalWidth = attachment.getIn(['meta', 'original', 'width']);\n\n var hasSize = typeof originalWidth === 'number' && typeof previewWidth === 'number';\n\n var srcSet = hasSize ? originalUrl + ' ' + originalWidth + 'w, ' + previewUrl + ' ' + previewWidth + 'w' : null;\n var sizes = hasSize ? displayWidth * (width / 100) + 'px' : null;\n\n var focusX = attachment.getIn(['meta', 'focus', 'x']) || 0;\n var focusY = attachment.getIn(['meta', 'focus', 'y']) || 0;\n var x = (focusX / 2 + .5) * 100;\n var y = (focusY / -2 + .5) * 100;\n\n thumbnail = __WEBPACK_IMPORTED_MODULE_0_babel_runtime_helpers_jsx___default()('a', {\n className: 'media-gallery__item-thumbnail',\n href: attachment.get('remote_url') || originalUrl,\n onClick: this.handleClick,\n target: '_blank'\n }, void 0, __WEBPACK_IMPORTED_MODULE_0_babel_runtime_helpers_jsx___default()('img', {\n src: previewUrl,\n srcSet: srcSet,\n sizes: sizes,\n alt: attachment.get('description'),\n title: attachment.get('description'),\n style: { objectPosition: x + '% ' + y + '%' }\n }));\n } else if (attachment.get('type') === 'audio') {\n thumbnail = __WEBPACK_IMPORTED_MODULE_0_babel_runtime_helpers_jsx___default()('div', {\n className: 'media-gallery__audio'\n }, void 0, __WEBPACK_IMPORTED_MODULE_0_babel_runtime_helpers_jsx___default()('audio', {\n className: 'media-gallery__item-audio-thumbnail',\n 'aria-label': attachment.get('description'),\n role: 'application',\n src: attachment.get('url'),\n loop: true,\n controls: true\n }));\n } else if (attachment.get('type') === 'gifv') {\n var autoPlay = !Object(__WEBPACK_IMPORTED_MODULE_8__is_mobile__[\"a\" /* isIOS */])() && __WEBPACK_IMPORTED_MODULE_10__initial_state__[\"a\" /* autoPlayGif */];\n\n thumbnail = __WEBPACK_IMPORTED_MODULE_0_babel_runtime_helpers_jsx___default()('div', {\n className: __WEBPACK_IMPORTED_MODULE_9_classnames___default()('media-gallery__gifv', { autoplay: autoPlay })\n }, void 0, __WEBPACK_IMPORTED_MODULE_0_babel_runtime_helpers_jsx___default()('video', {\n className: 'media-gallery__item-gifv-thumbnail',\n 'aria-label': attachment.get('description'),\n role: 'application',\n src: attachment.get('url'),\n onClick: this.handleClick,\n onMouseEnter: this.handleMouseEnter,\n onMouseLeave: this.handleMouseLeave,\n autoPlay: autoPlay,\n loop: true,\n muted: true\n }), __WEBPACK_IMPORTED_MODULE_0_babel_runtime_helpers_jsx___default()('span', {\n className: 'media-gallery__gifv__label'\n }, void 0, 'GIF'));\n }\n\n return __WEBPACK_IMPORTED_MODULE_0_babel_runtime_helpers_jsx___default()('div', {\n className: __WEBPACK_IMPORTED_MODULE_9_classnames___default()('media-gallery__item', { standalone: standalone }),\n style: { left: left, top: top, right: right, bottom: bottom, width: width + '%', height: height + '%' }\n }, attachment.get('id'), thumbnail);\n };\n\n return Item;\n}(__WEBPACK_IMPORTED_MODULE_4_react___default.a.PureComponent), _class.defaultProps = {\n standalone: false,\n index: 0,\n size: 1\n}, _temp2);\n\nvar MediaGallery = Object(__WEBPACK_IMPORTED_MODULE_7_react_intl__[\"g\" /* injectIntl */])(_class2 = (_temp4 = _class3 = function (_React$PureComponent2) {\n __WEBPACK_IMPORTED_MODULE_3_babel_runtime_helpers_inherits___default()(MediaGallery, _React$PureComponent2);\n\n function MediaGallery() {\n var _temp3, _this2, _ret2;\n\n __WEBPACK_IMPORTED_MODULE_1_babel_runtime_helpers_classCallCheck___default()(this, MediaGallery);\n\n for (var _len2 = arguments.length, args = Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {\n args[_key2] = arguments[_key2];\n }\n\n return _ret2 = (_temp3 = (_this2 = __WEBPACK_IMPORTED_MODULE_2_babel_runtime_helpers_possibleConstructorReturn___default()(this, _React$PureComponent2.call.apply(_React$PureComponent2, [this].concat(args))), _this2), _this2.state = {\n visible: !_this2.props.sensitive || __WEBPACK_IMPORTED_MODULE_10__initial_state__[\"f\" /* displaySensitiveMedia */]\n }, _this2.handleOpen = function () {\n _this2.setState({ visible: !_this2.state.visible });\n }, _this2.handleClick = function (index) {\n _this2.props.onOpenMedia(_this2.props.media, index);\n }, _this2.handleRef = function (node) {\n if (node /*&& this.isStandaloneEligible()*/) {\n // offsetWidth triggers a layout, so only calculate when we need to\n _this2.setState({\n width: node.offsetWidth\n });\n }\n }, _temp3), __WEBPACK_IMPORTED_MODULE_2_babel_runtime_helpers_possibleConstructorReturn___default()(_this2, _ret2);\n }\n\n MediaGallery.prototype.componentWillReceiveProps = function componentWillReceiveProps(nextProps) {\n if (!Object(__WEBPACK_IMPORTED_MODULE_5_immutable__[\"is\"])(nextProps.media, this.props.media)) {\n this.setState({ visible: !nextProps.sensitive });\n }\n };\n\n MediaGallery.prototype.isStandaloneEligible = function isStandaloneEligible() {\n var _props2 = this.props,\n media = _props2.media,\n standalone = _props2.standalone;\n\n return standalone && media.size === 1 && media.getIn([0, 'meta', 'small', 'aspect']);\n };\n\n MediaGallery.prototype.render = function render() {\n var _this3 = this;\n\n var _props3 = this.props,\n media = _props3.media,\n intl = _props3.intl,\n sensitive = _props3.sensitive,\n height = _props3.height;\n var _state = this.state,\n width = _state.width,\n visible = _state.visible;\n\n\n var children = void 0;\n\n var style = {};\n\n if (this.isStandaloneEligible()) {\n if (width) {\n style.height = width / this.props.media.getIn([0, 'meta', 'small', 'aspect']);\n }\n } else if (width) {\n style.height = width / (16 / 9);\n } else {\n style.height = height;\n }\n\n if (!visible) {\n var warning = void 0;\n\n if (sensitive) {\n warning = __WEBPACK_IMPORTED_MODULE_0_babel_runtime_helpers_jsx___default()(__WEBPACK_IMPORTED_MODULE_7_react_intl__[\"b\" /* FormattedMessage */], {\n id: 'status.sensitive_warning',\n defaultMessage: 'Sensitive content'\n });\n } else {\n warning = __WEBPACK_IMPORTED_MODULE_0_babel_runtime_helpers_jsx___default()(__WEBPACK_IMPORTED_MODULE_7_react_intl__[\"b\" /* FormattedMessage */], {\n id: 'status.media_hidden',\n defaultMessage: 'Media hidden'\n });\n }\n\n children = __WEBPACK_IMPORTED_MODULE_4_react___default.a.createElement(\n 'button',\n { type: 'button', className: 'media-spoiler', onClick: this.handleOpen, style: style, ref: this.handleRef },\n __WEBPACK_IMPORTED_MODULE_0_babel_runtime_helpers_jsx___default()('span', {\n className: 'media-spoiler__warning'\n }, void 0, warning),\n __WEBPACK_IMPORTED_MODULE_0_babel_runtime_helpers_jsx___default()('span', {\n className: 'media-spoiler__trigger'\n }, void 0, __WEBPACK_IMPORTED_MODULE_0_babel_runtime_helpers_jsx___default()(__WEBPACK_IMPORTED_MODULE_7_react_intl__[\"b\" /* FormattedMessage */], {\n id: 'status.sensitive_toggle',\n defaultMessage: 'Click to view'\n }))\n );\n } else {\n var size = media.take(4).size;\n\n if (this.isStandaloneEligible()) {\n children = __WEBPACK_IMPORTED_MODULE_0_babel_runtime_helpers_jsx___default()(Item, {\n standalone: true,\n onClick: this.handleClick,\n attachment: media.get(0),\n displayWidth: width\n });\n } else {\n children = media.take(4).map(function (attachment, i) {\n return __WEBPACK_IMPORTED_MODULE_0_babel_runtime_helpers_jsx___default()(Item, {\n onClick: _this3.handleClick,\n attachment: attachment,\n index: i,\n size: size,\n displayWidth: width\n }, attachment.get('id'));\n });\n }\n }\n\n return __WEBPACK_IMPORTED_MODULE_4_react___default.a.createElement(\n 'div',\n { className: 'media-gallery', style: style, ref: this.handleRef },\n __WEBPACK_IMPORTED_MODULE_0_babel_runtime_helpers_jsx___default()('div', {\n className: __WEBPACK_IMPORTED_MODULE_9_classnames___default()('spoiler-button', { 'spoiler-button--visible': visible })\n }, void 0, __WEBPACK_IMPORTED_MODULE_0_babel_runtime_helpers_jsx___default()(__WEBPACK_IMPORTED_MODULE_6__icon_button__[\"a\" /* default */], {\n title: intl.formatMessage(messages.toggle_visible),\n icon: visible ? 'eye' : 'eye-slash',\n overlay: true,\n onClick: this.handleOpen\n })),\n children\n );\n };\n\n return MediaGallery;\n}(__WEBPACK_IMPORTED_MODULE_4_react___default.a.PureComponent), _class3.defaultProps = {\n standalone: false\n}, _temp4)) || _class2;\n\n\n\n/***/ }),\n\n/***/ 854:\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\nObject.defineProperty(__webpack_exports__, \"__esModule\", { value: true });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"default\", function() { return MediaContainer; });\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_babel_runtime_helpers_extends__ = __webpack_require__(34);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_babel_runtime_helpers_extends___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_0_babel_runtime_helpers_extends__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_babel_runtime_helpers_objectWithoutProperties__ = __webpack_require__(55);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_babel_runtime_helpers_objectWithoutProperties___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_1_babel_runtime_helpers_objectWithoutProperties__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2_babel_runtime_helpers_jsx__ = __webpack_require__(2);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2_babel_runtime_helpers_jsx___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_2_babel_runtime_helpers_jsx__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3_babel_runtime_helpers_classCallCheck__ = __webpack_require__(1);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3_babel_runtime_helpers_classCallCheck___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_3_babel_runtime_helpers_classCallCheck__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_4_babel_runtime_helpers_possibleConstructorReturn__ = __webpack_require__(3);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_4_babel_runtime_helpers_possibleConstructorReturn___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_4_babel_runtime_helpers_possibleConstructorReturn__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_5_babel_runtime_helpers_inherits__ = __webpack_require__(4);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_5_babel_runtime_helpers_inherits___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_5_babel_runtime_helpers_inherits__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_6_react__ = __webpack_require__(0);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_6_react___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_6_react__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_7_react_dom__ = __webpack_require__(20);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_7_react_dom___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_7_react_dom__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_8_react_intl__ = __webpack_require__(7);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_9__locales__ = __webpack_require__(6);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_10__components_media_gallery__ = __webpack_require__(820);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_11__features_video__ = __webpack_require__(74);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_12__features_status_components_card__ = __webpack_require__(912);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_13__components_modal_root__ = __webpack_require__(340);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_14__features_ui_components_media_modal__ = __webpack_require__(341);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_15_immutable__ = __webpack_require__(8);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_15_immutable___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_15_immutable__);\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nvar _getLocale = Object(__WEBPACK_IMPORTED_MODULE_9__locales__[\"getLocale\"])(),\n localeData = _getLocale.localeData,\n messages = _getLocale.messages;\n\nObject(__WEBPACK_IMPORTED_MODULE_8_react_intl__[\"e\" /* addLocaleData */])(localeData);\n\nvar MEDIA_COMPONENTS = { MediaGallery: __WEBPACK_IMPORTED_MODULE_10__components_media_gallery__[\"default\"], Video: __WEBPACK_IMPORTED_MODULE_11__features_video__[\"default\"], Card: __WEBPACK_IMPORTED_MODULE_12__features_status_components_card__[\"a\" /* default */] };\n\nvar MediaContainer = function (_PureComponent) {\n __WEBPACK_IMPORTED_MODULE_5_babel_runtime_helpers_inherits___default()(MediaContainer, _PureComponent);\n\n function MediaContainer() {\n var _temp, _this, _ret;\n\n __WEBPACK_IMPORTED_MODULE_3_babel_runtime_helpers_classCallCheck___default()(this, MediaContainer);\n\n for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n return _ret = (_temp = (_this = __WEBPACK_IMPORTED_MODULE_4_babel_runtime_helpers_possibleConstructorReturn___default()(this, _PureComponent.call.apply(_PureComponent, [this].concat(args))), _this), _this.state = {\n media: null,\n index: null,\n time: null\n }, _this.handleOpenMedia = function (media, index) {\n document.body.classList.add('media-standalone__body');\n _this.setState({ media: media, index: index });\n }, _this.handleOpenVideo = function (video, time) {\n var media = Object(__WEBPACK_IMPORTED_MODULE_15_immutable__[\"List\"])([video]);\n\n document.body.classList.add('media-standalone__body');\n _this.setState({ media: media, time: time });\n }, _this.handleCloseMedia = function () {\n document.body.classList.remove('media-standalone__body');\n _this.setState({ media: null, index: null, time: null });\n }, _temp), __WEBPACK_IMPORTED_MODULE_4_babel_runtime_helpers_possibleConstructorReturn___default()(_this, _ret);\n }\n\n MediaContainer.prototype.render = function render() {\n var _this2 = this;\n\n var _props = this.props,\n locale = _props.locale,\n components = _props.components;\n\n\n return __WEBPACK_IMPORTED_MODULE_2_babel_runtime_helpers_jsx___default()(__WEBPACK_IMPORTED_MODULE_8_react_intl__[\"d\" /* IntlProvider */], {\n locale: locale,\n messages: messages\n }, void 0, __WEBPACK_IMPORTED_MODULE_2_babel_runtime_helpers_jsx___default()(__WEBPACK_IMPORTED_MODULE_6_react__[\"Fragment\"], {}, void 0, [].map.call(components, function (component, i) {\n var componentName = component.getAttribute('data-component');\n var Component = MEDIA_COMPONENTS[componentName];\n\n var _JSON$parse = JSON.parse(component.getAttribute('data-props')),\n media = _JSON$parse.media,\n card = _JSON$parse.card,\n props = __WEBPACK_IMPORTED_MODULE_1_babel_runtime_helpers_objectWithoutProperties___default()(_JSON$parse, ['media', 'card']);\n\n Object.assign(props, Object.assign({}, media ? { media: Object(__WEBPACK_IMPORTED_MODULE_15_immutable__[\"fromJS\"])(media) } : {}, card ? { card: Object(__WEBPACK_IMPORTED_MODULE_15_immutable__[\"fromJS\"])(card) } : {}, componentName === 'Video' ? {\n onOpenVideo: _this2.handleOpenVideo\n } : {\n onOpenMedia: _this2.handleOpenMedia\n }));\n\n return __WEBPACK_IMPORTED_MODULE_7_react_dom___default.a.createPortal(__WEBPACK_IMPORTED_MODULE_6_react___default.a.createElement(Component, __WEBPACK_IMPORTED_MODULE_0_babel_runtime_helpers_extends___default()({}, props, { key: 'media-' + i })), component);\n }), __WEBPACK_IMPORTED_MODULE_2_babel_runtime_helpers_jsx___default()(__WEBPACK_IMPORTED_MODULE_13__components_modal_root__[\"a\" /* default */], {\n onClose: this.handleCloseMedia\n }, void 0, this.state.media && __WEBPACK_IMPORTED_MODULE_2_babel_runtime_helpers_jsx___default()(__WEBPACK_IMPORTED_MODULE_14__features_ui_components_media_modal__[\"a\" /* default */], {\n media: this.state.media,\n index: this.state.index || 0,\n time: this.state.time,\n onClose: this.handleCloseMedia\n }))));\n };\n\n return MediaContainer;\n}(__WEBPACK_IMPORTED_MODULE_6_react__[\"PureComponent\"]);\n\n\n\n/***/ }),\n\n/***/ 912:\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"a\", function() { return Card; });\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_babel_runtime_helpers_jsx__ = __webpack_require__(2);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_babel_runtime_helpers_jsx___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_0_babel_runtime_helpers_jsx__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_babel_runtime_helpers_classCallCheck__ = __webpack_require__(1);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_babel_runtime_helpers_classCallCheck___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_1_babel_runtime_helpers_classCallCheck__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2_babel_runtime_helpers_possibleConstructorReturn__ = __webpack_require__(3);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2_babel_runtime_helpers_possibleConstructorReturn___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_2_babel_runtime_helpers_possibleConstructorReturn__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3_babel_runtime_helpers_inherits__ = __webpack_require__(4);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3_babel_runtime_helpers_inherits___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_3_babel_runtime_helpers_inherits__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_4_react__ = __webpack_require__(0);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_4_react___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_4_react__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_5_immutable__ = __webpack_require__(8);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_5_immutable___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_5_immutable__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_6_punycode__ = __webpack_require__(913);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_6_punycode___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_6_punycode__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_7_classnames__ = __webpack_require__(10);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_7_classnames___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_7_classnames__);\n\n\n\n\n\nvar _class, _temp2;\n\n\n\n\n\n\n\n\nvar IDNA_PREFIX = 'xn--';\n\nvar decodeIDNA = function decodeIDNA(domain) {\n return domain.split('.').map(function (part) {\n return part.indexOf(IDNA_PREFIX) === 0 ? __WEBPACK_IMPORTED_MODULE_6_punycode___default.a.decode(part.slice(IDNA_PREFIX.length)) : part;\n }).join('.');\n};\n\nvar getHostname = function getHostname(url) {\n var parser = document.createElement('a');\n parser.href = url;\n return parser.hostname;\n};\n\nvar trim = function trim(text, len) {\n var cut = text.indexOf(' ', len);\n\n if (cut === -1) {\n return text;\n }\n\n return text.substring(0, cut) + (text.length > len ? '…' : '');\n};\n\nvar domParser = new DOMParser();\n\nvar addAutoPlay = function addAutoPlay(html) {\n var document = domParser.parseFromString(html, 'text/html').documentElement;\n var iframe = document.querySelector('iframe');\n\n if (iframe) {\n if (iframe.src.indexOf('?') !== -1) {\n iframe.src += '&';\n } else {\n iframe.src += '?';\n }\n\n iframe.src += 'autoplay=1&auto_play=1';\n\n // DOM parser creates html/body elements around original HTML fragment,\n // so we need to get innerHTML out of the body and not the entire document\n return document.querySelector('body').innerHTML;\n }\n\n return html;\n};\n\nvar Card = (_temp2 = _class = function (_React$PureComponent) {\n __WEBPACK_IMPORTED_MODULE_3_babel_runtime_helpers_inherits___default()(Card, _React$PureComponent);\n\n function Card() {\n var _temp, _this, _ret;\n\n __WEBPACK_IMPORTED_MODULE_1_babel_runtime_helpers_classCallCheck___default()(this, Card);\n\n for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n return _ret = (_temp = (_this = __WEBPACK_IMPORTED_MODULE_2_babel_runtime_helpers_possibleConstructorReturn___default()(this, _React$PureComponent.call.apply(_React$PureComponent, [this].concat(args))), _this), _this.state = {\n width: 280,\n embedded: false\n }, _this.handlePhotoClick = function () {\n var _this$props = _this.props,\n card = _this$props.card,\n onOpenMedia = _this$props.onOpenMedia;\n\n\n onOpenMedia(__WEBPACK_IMPORTED_MODULE_5_immutable___default.a.fromJS([{\n type: 'image',\n url: card.get('embed_url'),\n description: card.get('title'),\n meta: {\n original: {\n width: card.get('width'),\n height: card.get('height')\n }\n }\n }]), 0);\n }, _this.handleEmbedClick = function () {\n var card = _this.props.card;\n\n\n if (card.get('type') === 'photo') {\n _this.handlePhotoClick();\n } else {\n _this.setState({ embedded: true });\n }\n }, _this.setRef = function (c) {\n if (c) {\n _this.setState({ width: c.offsetWidth });\n }\n }, _temp), __WEBPACK_IMPORTED_MODULE_2_babel_runtime_helpers_possibleConstructorReturn___default()(_this, _ret);\n }\n\n Card.prototype.componentWillReceiveProps = function componentWillReceiveProps(nextProps) {\n if (this.props.card !== nextProps.card) {\n this.setState({ embedded: false });\n }\n };\n\n Card.prototype.renderVideo = function renderVideo() {\n var card = this.props.card;\n\n var content = { __html: addAutoPlay(card.get('html')) };\n var width = this.state.width;\n\n var ratio = card.get('width') / card.get('height');\n var height = card.get('width') > card.get('height') ? width / ratio : width * ratio;\n\n return __WEBPACK_IMPORTED_MODULE_4_react___default.a.createElement('div', {\n ref: this.setRef,\n className: 'status-card__image status-card-video',\n dangerouslySetInnerHTML: content,\n style: { height: height }\n });\n };\n\n Card.prototype.render = function render() {\n var _props = this.props,\n card = _props.card,\n maxDescription = _props.maxDescription;\n var _state = this.state,\n width = _state.width,\n embedded = _state.embedded;\n\n\n if (card === null) {\n return null;\n }\n\n var provider = card.get('provider_name').length === 0 ? decodeIDNA(getHostname(card.get('url'))) : card.get('provider_name');\n var horizontal = card.get('width') > card.get('height') && card.get('width') + 100 >= width || card.get('type') !== 'link';\n var className = __WEBPACK_IMPORTED_MODULE_7_classnames___default()('status-card', { horizontal: horizontal });\n var interactive = card.get('type') !== 'link';\n var title = interactive ? __WEBPACK_IMPORTED_MODULE_0_babel_runtime_helpers_jsx___default()('a', {\n className: 'status-card__title',\n href: card.get('url'),\n title: card.get('title'),\n rel: 'noopener',\n target: '_blank'\n }, void 0, __WEBPACK_IMPORTED_MODULE_0_babel_runtime_helpers_jsx___default()('strong', {}, void 0, card.get('title'))) : __WEBPACK_IMPORTED_MODULE_0_babel_runtime_helpers_jsx___default()('strong', {\n className: 'status-card__title',\n title: card.get('title')\n }, void 0, card.get('title'));\n var ratio = card.get('width') / card.get('height');\n var height = card.get('width') > card.get('height') ? width / ratio : width * ratio;\n\n var description = __WEBPACK_IMPORTED_MODULE_0_babel_runtime_helpers_jsx___default()('div', {\n className: 'status-card__content'\n }, void 0, title, !horizontal && __WEBPACK_IMPORTED_MODULE_0_babel_runtime_helpers_jsx___default()('p', {\n className: 'status-card__description'\n }, void 0, trim(card.get('description') || '', maxDescription)), __WEBPACK_IMPORTED_MODULE_0_babel_runtime_helpers_jsx___default()('span', {\n className: 'status-card__host'\n }, void 0, provider));\n\n var embed = '';\n var thumbnail = __WEBPACK_IMPORTED_MODULE_0_babel_runtime_helpers_jsx___default()('div', {\n style: { backgroundImage: 'url(' + card.get('image') + ')', width: horizontal ? width : null, height: horizontal ? height : null },\n className: 'status-card__image-image'\n });\n\n if (interactive) {\n if (embedded) {\n embed = this.renderVideo();\n } else {\n var iconVariant = 'play';\n\n if (card.get('type') === 'photo') {\n iconVariant = 'search-plus';\n }\n\n embed = __WEBPACK_IMPORTED_MODULE_0_babel_runtime_helpers_jsx___default()('div', {\n className: 'status-card__image'\n }, void 0, thumbnail, __WEBPACK_IMPORTED_MODULE_0_babel_runtime_helpers_jsx___default()('div', {\n className: 'status-card__actions'\n }, void 0, __WEBPACK_IMPORTED_MODULE_0_babel_runtime_helpers_jsx___default()('div', {}, void 0, __WEBPACK_IMPORTED_MODULE_0_babel_runtime_helpers_jsx___default()('button', {\n onClick: this.handleEmbedClick\n }, void 0, __WEBPACK_IMPORTED_MODULE_0_babel_runtime_helpers_jsx___default()('i', {\n className: 'fa fa-' + iconVariant\n })), __WEBPACK_IMPORTED_MODULE_0_babel_runtime_helpers_jsx___default()('a', {\n href: card.get('url'),\n target: '_blank',\n rel: 'noopener'\n }, void 0, __WEBPACK_IMPORTED_MODULE_0_babel_runtime_helpers_jsx___default()('i', {\n className: 'fa fa-external-link'\n })))));\n }\n\n return __WEBPACK_IMPORTED_MODULE_4_react___default.a.createElement(\n 'div',\n { className: className, ref: this.setRef },\n embed,\n description\n );\n } else if (card.get('image')) {\n embed = __WEBPACK_IMPORTED_MODULE_0_babel_runtime_helpers_jsx___default()('div', {\n className: 'status-card__image'\n }, void 0, thumbnail);\n }\n\n return __WEBPACK_IMPORTED_MODULE_4_react___default.a.createElement(\n 'a',\n { href: card.get('url'), className: className, target: '_blank', rel: 'noopener', ref: this.setRef },\n embed,\n description\n );\n };\n\n return Card;\n}(__WEBPACK_IMPORTED_MODULE_4_react___default.a.PureComponent), _class.defaultProps = {\n maxDescription: 50\n}, _temp2);\n\n\n/***/ }),\n\n/***/ 913:\n/***/ (function(module, exports, __webpack_require__) {\n\n/* WEBPACK VAR INJECTION */(function(module, global) {var __WEBPACK_AMD_DEFINE_RESULT__;/*! https://mths.be/punycode v1.4.1 by @mathias */\n;(function (root) {\n\n\t/** Detect free variables */\n\tvar freeExports = typeof exports == 'object' && exports && !exports.nodeType && exports;\n\tvar freeModule = typeof module == 'object' && module && !module.nodeType && module;\n\tvar freeGlobal = typeof global == 'object' && global;\n\tif (freeGlobal.global === freeGlobal || freeGlobal.window === freeGlobal || freeGlobal.self === freeGlobal) {\n\t\troot = freeGlobal;\n\t}\n\n\t/**\n * The `punycode` object.\n * @name punycode\n * @type Object\n */\n\tvar punycode,\n\n\n\t/** Highest positive signed 32-bit float value */\n\tmaxInt = 2147483647,\n\t // aka. 0x7FFFFFFF or 2^31-1\n\n\t/** Bootstring parameters */\n\tbase = 36,\n\t tMin = 1,\n\t tMax = 26,\n\t skew = 38,\n\t damp = 700,\n\t initialBias = 72,\n\t initialN = 128,\n\t // 0x80\n\tdelimiter = '-',\n\t // '\\x2D'\n\n\t/** Regular expressions */\n\tregexPunycode = /^xn--/,\n\t regexNonASCII = /[^\\x20-\\x7E]/,\n\t // unprintable ASCII chars + non-ASCII chars\n\tregexSeparators = /[\\x2E\\u3002\\uFF0E\\uFF61]/g,\n\t // RFC 3490 separators\n\n\t/** Error messages */\n\terrors = {\n\t\t'overflow': 'Overflow: input needs wider integers to process',\n\t\t'not-basic': 'Illegal input >= 0x80 (not a basic code point)',\n\t\t'invalid-input': 'Invalid input'\n\t},\n\n\n\t/** Convenience shortcuts */\n\tbaseMinusTMin = base - tMin,\n\t floor = Math.floor,\n\t stringFromCharCode = String.fromCharCode,\n\n\n\t/** Temporary variable */\n\tkey;\n\n\t/*--------------------------------------------------------------------------*/\n\n\t/**\n * A generic error utility function.\n * @private\n * @param {String} type The error type.\n * @returns {Error} Throws a `RangeError` with the applicable error message.\n */\n\tfunction error(type) {\n\t\tthrow new RangeError(errors[type]);\n\t}\n\n\t/**\n * A generic `Array#map` utility function.\n * @private\n * @param {Array} array The array to iterate over.\n * @param {Function} callback The function that gets called for every array\n * item.\n * @returns {Array} A new array of values returned by the callback function.\n */\n\tfunction map(array, fn) {\n\t\tvar length = array.length;\n\t\tvar result = [];\n\t\twhile (length--) {\n\t\t\tresult[length] = fn(array[length]);\n\t\t}\n\t\treturn result;\n\t}\n\n\t/**\n * A simple `Array#map`-like wrapper to work with domain name strings or email\n * addresses.\n * @private\n * @param {String} domain The domain name or email address.\n * @param {Function} callback The function that gets called for every\n * character.\n * @returns {Array} A new string of characters returned by the callback\n * function.\n */\n\tfunction mapDomain(string, fn) {\n\t\tvar parts = string.split('@');\n\t\tvar result = '';\n\t\tif (parts.length > 1) {\n\t\t\t// In email addresses, only the domain name should be punycoded. Leave\n\t\t\t// the local part (i.e. everything up to `@`) intact.\n\t\t\tresult = parts[0] + '@';\n\t\t\tstring = parts[1];\n\t\t}\n\t\t// Avoid `split(regex)` for IE8 compatibility. See #17.\n\t\tstring = string.replace(regexSeparators, '\\x2E');\n\t\tvar labels = string.split('.');\n\t\tvar encoded = map(labels, fn).join('.');\n\t\treturn result + encoded;\n\t}\n\n\t/**\n * Creates an array containing the numeric code points of each Unicode\n * character in the string. While JavaScript uses UCS-2 internally,\n * this function will convert a pair of surrogate halves (each of which\n * UCS-2 exposes as separate characters) into a single code point,\n * matching UTF-16.\n * @see `punycode.ucs2.encode`\n * @see <https://mathiasbynens.be/notes/javascript-encoding>\n * @memberOf punycode.ucs2\n * @name decode\n * @param {String} string The Unicode input string (UCS-2).\n * @returns {Array} The new array of code points.\n */\n\tfunction ucs2decode(string) {\n\t\tvar output = [],\n\t\t counter = 0,\n\t\t length = string.length,\n\t\t value,\n\t\t extra;\n\t\twhile (counter < length) {\n\t\t\tvalue = string.charCodeAt(counter++);\n\t\t\tif (value >= 0xD800 && value <= 0xDBFF && counter < length) {\n\t\t\t\t// high surrogate, and there is a next character\n\t\t\t\textra = string.charCodeAt(counter++);\n\t\t\t\tif ((extra & 0xFC00) == 0xDC00) {\n\t\t\t\t\t// low surrogate\n\t\t\t\t\toutput.push(((value & 0x3FF) << 10) + (extra & 0x3FF) + 0x10000);\n\t\t\t\t} else {\n\t\t\t\t\t// unmatched surrogate; only append this code unit, in case the next\n\t\t\t\t\t// code unit is the high surrogate of a surrogate pair\n\t\t\t\t\toutput.push(value);\n\t\t\t\t\tcounter--;\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\toutput.push(value);\n\t\t\t}\n\t\t}\n\t\treturn output;\n\t}\n\n\t/**\n * Creates a string based on an array of numeric code points.\n * @see `punycode.ucs2.decode`\n * @memberOf punycode.ucs2\n * @name encode\n * @param {Array} codePoints The array of numeric code points.\n * @returns {String} The new Unicode string (UCS-2).\n */\n\tfunction ucs2encode(array) {\n\t\treturn map(array, function (value) {\n\t\t\tvar output = '';\n\t\t\tif (value > 0xFFFF) {\n\t\t\t\tvalue -= 0x10000;\n\t\t\t\toutput += stringFromCharCode(value >>> 10 & 0x3FF | 0xD800);\n\t\t\t\tvalue = 0xDC00 | value & 0x3FF;\n\t\t\t}\n\t\t\toutput += stringFromCharCode(value);\n\t\t\treturn output;\n\t\t}).join('');\n\t}\n\n\t/**\n * Converts a basic code point into a digit/integer.\n * @see `digitToBasic()`\n * @private\n * @param {Number} codePoint The basic numeric code point value.\n * @returns {Number} The numeric value of a basic code point (for use in\n * representing integers) in the range `0` to `base - 1`, or `base` if\n * the code point does not represent a value.\n */\n\tfunction basicToDigit(codePoint) {\n\t\tif (codePoint - 48 < 10) {\n\t\t\treturn codePoint - 22;\n\t\t}\n\t\tif (codePoint - 65 < 26) {\n\t\t\treturn codePoint - 65;\n\t\t}\n\t\tif (codePoint - 97 < 26) {\n\t\t\treturn codePoint - 97;\n\t\t}\n\t\treturn base;\n\t}\n\n\t/**\n * Converts a digit/integer into a basic code point.\n * @see `basicToDigit()`\n * @private\n * @param {Number} digit The numeric value of a basic code point.\n * @returns {Number} The basic code point whose value (when used for\n * representing integers) is `digit`, which needs to be in the range\n * `0` to `base - 1`. If `flag` is non-zero, the uppercase form is\n * used; else, the lowercase form is used. The behavior is undefined\n * if `flag` is non-zero and `digit` has no uppercase form.\n */\n\tfunction digitToBasic(digit, flag) {\n\t\t// 0..25 map to ASCII a..z or A..Z\n\t\t// 26..35 map to ASCII 0..9\n\t\treturn digit + 22 + 75 * (digit < 26) - ((flag != 0) << 5);\n\t}\n\n\t/**\n * Bias adaptation function as per section 3.4 of RFC 3492.\n * https://tools.ietf.org/html/rfc3492#section-3.4\n * @private\n */\n\tfunction adapt(delta, numPoints, firstTime) {\n\t\tvar k = 0;\n\t\tdelta = firstTime ? floor(delta / damp) : delta >> 1;\n\t\tdelta += floor(delta / numPoints);\n\t\tfor (; /* no initialization */delta > baseMinusTMin * tMax >> 1; k += base) {\n\t\t\tdelta = floor(delta / baseMinusTMin);\n\t\t}\n\t\treturn floor(k + (baseMinusTMin + 1) * delta / (delta + skew));\n\t}\n\n\t/**\n * Converts a Punycode string of ASCII-only symbols to a string of Unicode\n * symbols.\n * @memberOf punycode\n * @param {String} input The Punycode string of ASCII-only symbols.\n * @returns {String} The resulting string of Unicode symbols.\n */\n\tfunction decode(input) {\n\t\t// Don't use UCS-2\n\t\tvar output = [],\n\t\t inputLength = input.length,\n\t\t out,\n\t\t i = 0,\n\t\t n = initialN,\n\t\t bias = initialBias,\n\t\t basic,\n\t\t j,\n\t\t index,\n\t\t oldi,\n\t\t w,\n\t\t k,\n\t\t digit,\n\t\t t,\n\n\t\t/** Cached calculation results */\n\t\tbaseMinusT;\n\n\t\t// Handle the basic code points: let `basic` be the number of input code\n\t\t// points before the last delimiter, or `0` if there is none, then copy\n\t\t// the first basic code points to the output.\n\n\t\tbasic = input.lastIndexOf(delimiter);\n\t\tif (basic < 0) {\n\t\t\tbasic = 0;\n\t\t}\n\n\t\tfor (j = 0; j < basic; ++j) {\n\t\t\t// if it's not a basic code point\n\t\t\tif (input.charCodeAt(j) >= 0x80) {\n\t\t\t\terror('not-basic');\n\t\t\t}\n\t\t\toutput.push(input.charCodeAt(j));\n\t\t}\n\n\t\t// Main decoding loop: start just after the last delimiter if any basic code\n\t\t// points were copied; start at the beginning otherwise.\n\n\t\tfor (index = basic > 0 ? basic + 1 : 0; index < inputLength;) /* no final expression */{\n\n\t\t\t// `index` is the index of the next character to be consumed.\n\t\t\t// Decode a generalized variable-length integer into `delta`,\n\t\t\t// which gets added to `i`. The overflow checking is easier\n\t\t\t// if we increase `i` as we go, then subtract off its starting\n\t\t\t// value at the end to obtain `delta`.\n\t\t\tfor (oldi = i, w = 1, k = base;; /* no condition */k += base) {\n\n\t\t\t\tif (index >= inputLength) {\n\t\t\t\t\terror('invalid-input');\n\t\t\t\t}\n\n\t\t\t\tdigit = basicToDigit(input.charCodeAt(index++));\n\n\t\t\t\tif (digit >= base || digit > floor((maxInt - i) / w)) {\n\t\t\t\t\terror('overflow');\n\t\t\t\t}\n\n\t\t\t\ti += digit * w;\n\t\t\t\tt = k <= bias ? tMin : k >= bias + tMax ? tMax : k - bias;\n\n\t\t\t\tif (digit < t) {\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\n\t\t\t\tbaseMinusT = base - t;\n\t\t\t\tif (w > floor(maxInt / baseMinusT)) {\n\t\t\t\t\terror('overflow');\n\t\t\t\t}\n\n\t\t\t\tw *= baseMinusT;\n\t\t\t}\n\n\t\t\tout = output.length + 1;\n\t\t\tbias = adapt(i - oldi, out, oldi == 0);\n\n\t\t\t// `i` was supposed to wrap around from `out` to `0`,\n\t\t\t// incrementing `n` each time, so we'll fix that now:\n\t\t\tif (floor(i / out) > maxInt - n) {\n\t\t\t\terror('overflow');\n\t\t\t}\n\n\t\t\tn += floor(i / out);\n\t\t\ti %= out;\n\n\t\t\t// Insert `n` at position `i` of the output\n\t\t\toutput.splice(i++, 0, n);\n\t\t}\n\n\t\treturn ucs2encode(output);\n\t}\n\n\t/**\n * Converts a string of Unicode symbols (e.g. a domain name label) to a\n * Punycode string of ASCII-only symbols.\n * @memberOf punycode\n * @param {String} input The string of Unicode symbols.\n * @returns {String} The resulting Punycode string of ASCII-only symbols.\n */\n\tfunction encode(input) {\n\t\tvar n,\n\t\t delta,\n\t\t handledCPCount,\n\t\t basicLength,\n\t\t bias,\n\t\t j,\n\t\t m,\n\t\t q,\n\t\t k,\n\t\t t,\n\t\t currentValue,\n\t\t output = [],\n\n\t\t/** `inputLength` will hold the number of code points in `input`. */\n\t\tinputLength,\n\n\t\t/** Cached calculation results */\n\t\thandledCPCountPlusOne,\n\t\t baseMinusT,\n\t\t qMinusT;\n\n\t\t// Convert the input in UCS-2 to Unicode\n\t\tinput = ucs2decode(input);\n\n\t\t// Cache the length\n\t\tinputLength = input.length;\n\n\t\t// Initialize the state\n\t\tn = initialN;\n\t\tdelta = 0;\n\t\tbias = initialBias;\n\n\t\t// Handle the basic code points\n\t\tfor (j = 0; j < inputLength; ++j) {\n\t\t\tcurrentValue = input[j];\n\t\t\tif (currentValue < 0x80) {\n\t\t\t\toutput.push(stringFromCharCode(currentValue));\n\t\t\t}\n\t\t}\n\n\t\thandledCPCount = basicLength = output.length;\n\n\t\t// `handledCPCount` is the number of code points that have been handled;\n\t\t// `basicLength` is the number of basic code points.\n\n\t\t// Finish the basic string - if it is not empty - with a delimiter\n\t\tif (basicLength) {\n\t\t\toutput.push(delimiter);\n\t\t}\n\n\t\t// Main encoding loop:\n\t\twhile (handledCPCount < inputLength) {\n\n\t\t\t// All non-basic code points < n have been handled already. Find the next\n\t\t\t// larger one:\n\t\t\tfor (m = maxInt, j = 0; j < inputLength; ++j) {\n\t\t\t\tcurrentValue = input[j];\n\t\t\t\tif (currentValue >= n && currentValue < m) {\n\t\t\t\t\tm = currentValue;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// Increase `delta` enough to advance the decoder's <n,i> state to <m,0>,\n\t\t\t// but guard against overflow\n\t\t\thandledCPCountPlusOne = handledCPCount + 1;\n\t\t\tif (m - n > floor((maxInt - delta) / handledCPCountPlusOne)) {\n\t\t\t\terror('overflow');\n\t\t\t}\n\n\t\t\tdelta += (m - n) * handledCPCountPlusOne;\n\t\t\tn = m;\n\n\t\t\tfor (j = 0; j < inputLength; ++j) {\n\t\t\t\tcurrentValue = input[j];\n\n\t\t\t\tif (currentValue < n && ++delta > maxInt) {\n\t\t\t\t\terror('overflow');\n\t\t\t\t}\n\n\t\t\t\tif (currentValue == n) {\n\t\t\t\t\t// Represent delta as a generalized variable-length integer\n\t\t\t\t\tfor (q = delta, k = base;; /* no condition */k += base) {\n\t\t\t\t\t\tt = k <= bias ? tMin : k >= bias + tMax ? tMax : k - bias;\n\t\t\t\t\t\tif (q < t) {\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tqMinusT = q - t;\n\t\t\t\t\t\tbaseMinusT = base - t;\n\t\t\t\t\t\toutput.push(stringFromCharCode(digitToBasic(t + qMinusT % baseMinusT, 0)));\n\t\t\t\t\t\tq = floor(qMinusT / baseMinusT);\n\t\t\t\t\t}\n\n\t\t\t\t\toutput.push(stringFromCharCode(digitToBasic(q, 0)));\n\t\t\t\t\tbias = adapt(delta, handledCPCountPlusOne, handledCPCount == basicLength);\n\t\t\t\t\tdelta = 0;\n\t\t\t\t\t++handledCPCount;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t++delta;\n\t\t\t++n;\n\t\t}\n\t\treturn output.join('');\n\t}\n\n\t/**\n * Converts a Punycode string representing a domain name or an email address\n * to Unicode. Only the Punycoded parts of the input will be converted, i.e.\n * it doesn't matter if you call it on a string that has already been\n * converted to Unicode.\n * @memberOf punycode\n * @param {String} input The Punycoded domain name or email address to\n * convert to Unicode.\n * @returns {String} The Unicode representation of the given Punycode\n * string.\n */\n\tfunction toUnicode(input) {\n\t\treturn mapDomain(input, function (string) {\n\t\t\treturn regexPunycode.test(string) ? decode(string.slice(4).toLowerCase()) : string;\n\t\t});\n\t}\n\n\t/**\n * Converts a Unicode string representing a domain name or an email address to\n * Punycode. Only the non-ASCII parts of the domain name will be converted,\n * i.e. it doesn't matter if you call it with a domain that's already in\n * ASCII.\n * @memberOf punycode\n * @param {String} input The domain name or email address to convert, as a\n * Unicode string.\n * @returns {String} The Punycode representation of the given domain name or\n * email address.\n */\n\tfunction toASCII(input) {\n\t\treturn mapDomain(input, function (string) {\n\t\t\treturn regexNonASCII.test(string) ? 'xn--' + encode(string) : string;\n\t\t});\n\t}\n\n\t/*--------------------------------------------------------------------------*/\n\n\t/** Define the public API */\n\tpunycode = {\n\t\t/**\n * A string representing the current Punycode.js version number.\n * @memberOf punycode\n * @type String\n */\n\t\t'version': '1.4.1',\n\t\t/**\n * An object of methods to convert from JavaScript's internal character\n * representation (UCS-2) to Unicode code points, and back.\n * @see <https://mathiasbynens.be/notes/javascript-encoding>\n * @memberOf punycode\n * @type Object\n */\n\t\t'ucs2': {\n\t\t\t'decode': ucs2decode,\n\t\t\t'encode': ucs2encode\n\t\t},\n\t\t'decode': decode,\n\t\t'encode': encode,\n\t\t'toASCII': toASCII,\n\t\t'toUnicode': toUnicode\n\t};\n\n\t/** Expose `punycode` */\n\t// Some AMD build optimizers, like r.js, check for specific condition patterns\n\t// like the following:\n\tif (true) {\n\t\t!(__WEBPACK_AMD_DEFINE_RESULT__ = (function () {\n\t\t\treturn punycode;\n\t\t}).call(exports, __webpack_require__, exports, module),\n\t\t\t\t__WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));\n\t} else if (freeExports && freeModule) {\n\t\tif (module.exports == freeExports) {\n\t\t\t// in Node.js, io.js, or RingoJS v0.8.0+\n\t\t\tfreeModule.exports = punycode;\n\t\t} else {\n\t\t\t// in Narwhal or RingoJS v0.7.0-\n\t\t\tfor (key in punycode) {\n\t\t\t\tpunycode.hasOwnProperty(key) && (freeExports[key] = punycode[key]);\n\t\t\t}\n\t\t}\n\t} else {\n\t\t// in Rhino or a web browser\n\t\troot.punycode = punycode;\n\t}\n})(this);\n/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(101)(module), __webpack_require__(57)))\n\n/***/ })\n\n});\n\n\n// WEBPACK FOOTER //\n// containers/media_container.js","/*\n * Copyright 2017, Yahoo Inc.\n * Copyrights licensed under the New BSD License.\n * See the accompanying LICENSE file for terms.\n */\n\nimport allLocaleData from '../locale-data/index.js';\nimport IntlMessageFormat from 'intl-messageformat';\nimport IntlRelativeFormat from 'intl-relativeformat';\nimport PropTypes from 'prop-types';\nimport React, { Children, Component, createElement, isValidElement } from 'react';\nimport invariant from 'invariant';\nimport memoizeIntlConstructor from 'intl-format-cache';\n\n// GENERATED FILE\nvar defaultLocaleData = { \"locale\": \"en\", \"pluralRuleFunction\": function pluralRuleFunction(n, ord) {\n var s = String(n).split(\".\"),\n v0 = !s[1],\n t0 = Number(s[0]) == n,\n n10 = t0 && s[0].slice(-1),\n n100 = t0 && s[0].slice(-2);if (ord) return n10 == 1 && n100 != 11 ? \"one\" : n10 == 2 && n100 != 12 ? \"two\" : n10 == 3 && n100 != 13 ? \"few\" : \"other\";return n == 1 && v0 ? \"one\" : \"other\";\n }, \"fields\": { \"year\": { \"displayName\": \"year\", \"relative\": { \"0\": \"this year\", \"1\": \"next year\", \"-1\": \"last year\" }, \"relativeTime\": { \"future\": { \"one\": \"in {0} year\", \"other\": \"in {0} years\" }, \"past\": { \"one\": \"{0} year ago\", \"other\": \"{0} years ago\" } } }, \"month\": { \"displayName\": \"month\", \"relative\": { \"0\": \"this month\", \"1\": \"next month\", \"-1\": \"last month\" }, \"relativeTime\": { \"future\": { \"one\": \"in {0} month\", \"other\": \"in {0} months\" }, \"past\": { \"one\": \"{0} month ago\", \"other\": \"{0} months ago\" } } }, \"day\": { \"displayName\": \"day\", \"relative\": { \"0\": \"today\", \"1\": \"tomorrow\", \"-1\": \"yesterday\" }, \"relativeTime\": { \"future\": { \"one\": \"in {0} day\", \"other\": \"in {0} days\" }, \"past\": { \"one\": \"{0} day ago\", \"other\": \"{0} days ago\" } } }, \"hour\": { \"displayName\": \"hour\", \"relative\": { \"0\": \"this hour\" }, \"relativeTime\": { \"future\": { \"one\": \"in {0} hour\", \"other\": \"in {0} hours\" }, \"past\": { \"one\": \"{0} hour ago\", \"other\": \"{0} hours ago\" } } }, \"minute\": { \"displayName\": \"minute\", \"relative\": { \"0\": \"this minute\" }, \"relativeTime\": { \"future\": { \"one\": \"in {0} minute\", \"other\": \"in {0} minutes\" }, \"past\": { \"one\": \"{0} minute ago\", \"other\": \"{0} minutes ago\" } } }, \"second\": { \"displayName\": \"second\", \"relative\": { \"0\": \"now\" }, \"relativeTime\": { \"future\": { \"one\": \"in {0} second\", \"other\": \"in {0} seconds\" }, \"past\": { \"one\": \"{0} second ago\", \"other\": \"{0} seconds ago\" } } } } };\n\n/*\n * Copyright 2015, Yahoo Inc.\n * Copyrights licensed under the New BSD License.\n * See the accompanying LICENSE file for terms.\n */\n\nfunction addLocaleData() {\n var data = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];\n\n var locales = Array.isArray(data) ? data : [data];\n\n locales.forEach(function (localeData) {\n if (localeData && localeData.locale) {\n IntlMessageFormat.__addLocaleData(localeData);\n IntlRelativeFormat.__addLocaleData(localeData);\n }\n });\n}\n\nfunction hasLocaleData(locale) {\n var localeParts = (locale || '').split('-');\n\n while (localeParts.length > 0) {\n if (hasIMFAndIRFLocaleData(localeParts.join('-'))) {\n return true;\n }\n\n localeParts.pop();\n }\n\n return false;\n}\n\nfunction hasIMFAndIRFLocaleData(locale) {\n var normalizedLocale = locale && locale.toLowerCase();\n\n return !!(IntlMessageFormat.__localeData__[normalizedLocale] && IntlRelativeFormat.__localeData__[normalizedLocale]);\n}\n\nvar _typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) {\n return typeof obj;\n} : function (obj) {\n return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n};\n\n\n\n\n\n\n\n\n\n\n\nvar classCallCheck = function (instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n};\n\nvar createClass = function () {\n function defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n }\n\n return function (Constructor, protoProps, staticProps) {\n if (protoProps) defineProperties(Constructor.prototype, protoProps);\n if (staticProps) defineProperties(Constructor, staticProps);\n return Constructor;\n };\n}();\n\n\n\n\n\nvar defineProperty = function (obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\n};\n\nvar _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n\n return target;\n};\n\n\n\nvar inherits = function (subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass);\n }\n\n subClass.prototype = Object.create(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n enumerable: false,\n writable: true,\n configurable: true\n }\n });\n if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass;\n};\n\n\n\n\n\n\n\n\n\nvar objectWithoutProperties = function (obj, keys) {\n var target = {};\n\n for (var i in obj) {\n if (keys.indexOf(i) >= 0) continue;\n if (!Object.prototype.hasOwnProperty.call(obj, i)) continue;\n target[i] = obj[i];\n }\n\n return target;\n};\n\nvar possibleConstructorReturn = function (self, call) {\n if (!self) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n\n return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self;\n};\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nvar toConsumableArray = function (arr) {\n if (Array.isArray(arr)) {\n for (var i = 0, arr2 = Array(arr.length); i < arr.length; i++) arr2[i] = arr[i];\n\n return arr2;\n } else {\n return Array.from(arr);\n }\n};\n\n/*\n * Copyright 2015, Yahoo Inc.\n * Copyrights licensed under the New BSD License.\n * See the accompanying LICENSE file for terms.\n */\n\nvar bool = PropTypes.bool;\nvar number = PropTypes.number;\nvar string = PropTypes.string;\nvar func = PropTypes.func;\nvar object = PropTypes.object;\nvar oneOf = PropTypes.oneOf;\nvar shape = PropTypes.shape;\nvar any = PropTypes.any;\nvar oneOfType = PropTypes.oneOfType;\n\nvar localeMatcher = oneOf(['best fit', 'lookup']);\nvar narrowShortLong = oneOf(['narrow', 'short', 'long']);\nvar numeric2digit = oneOf(['numeric', '2-digit']);\nvar funcReq = func.isRequired;\n\nvar intlConfigPropTypes = {\n locale: string,\n formats: object,\n messages: object,\n textComponent: any,\n\n defaultLocale: string,\n defaultFormats: object\n};\n\nvar intlFormatPropTypes = {\n formatDate: funcReq,\n formatTime: funcReq,\n formatRelative: funcReq,\n formatNumber: funcReq,\n formatPlural: funcReq,\n formatMessage: funcReq,\n formatHTMLMessage: funcReq\n};\n\nvar intlShape = shape(_extends({}, intlConfigPropTypes, intlFormatPropTypes, {\n formatters: object,\n now: funcReq\n}));\n\nvar messageDescriptorPropTypes = {\n id: string.isRequired,\n description: oneOfType([string, object]),\n defaultMessage: string\n};\n\nvar dateTimeFormatPropTypes = {\n localeMatcher: localeMatcher,\n formatMatcher: oneOf(['basic', 'best fit']),\n\n timeZone: string,\n hour12: bool,\n\n weekday: narrowShortLong,\n era: narrowShortLong,\n year: numeric2digit,\n month: oneOf(['numeric', '2-digit', 'narrow', 'short', 'long']),\n day: numeric2digit,\n hour: numeric2digit,\n minute: numeric2digit,\n second: numeric2digit,\n timeZoneName: oneOf(['short', 'long'])\n};\n\nvar numberFormatPropTypes = {\n localeMatcher: localeMatcher,\n\n style: oneOf(['decimal', 'currency', 'percent']),\n currency: string,\n currencyDisplay: oneOf(['symbol', 'code', 'name']),\n useGrouping: bool,\n\n minimumIntegerDigits: number,\n minimumFractionDigits: number,\n maximumFractionDigits: number,\n minimumSignificantDigits: number,\n maximumSignificantDigits: number\n};\n\nvar relativeFormatPropTypes = {\n style: oneOf(['best fit', 'numeric']),\n units: oneOf(['second', 'minute', 'hour', 'day', 'month', 'year'])\n};\n\nvar pluralFormatPropTypes = {\n style: oneOf(['cardinal', 'ordinal'])\n};\n\n/*\nHTML escaping and shallow-equals implementations are the same as React's\n(on purpose.) Therefore, it has the following Copyright and Licensing:\n\nCopyright 2013-2014, Facebook, Inc.\nAll rights reserved.\n\nThis source code is licensed under the BSD-style license found in the LICENSE\nfile in the root directory of React's source tree.\n*/\n\nvar intlConfigPropNames = Object.keys(intlConfigPropTypes);\n\nvar ESCAPED_CHARS = {\n '&': '&',\n '>': '>',\n '<': '<',\n '\"': '"',\n \"'\": '''\n};\n\nvar UNSAFE_CHARS_REGEX = /[&><\"']/g;\n\nfunction escape(str) {\n return ('' + str).replace(UNSAFE_CHARS_REGEX, function (match) {\n return ESCAPED_CHARS[match];\n });\n}\n\nfunction filterProps(props, whitelist) {\n var defaults$$1 = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n\n return whitelist.reduce(function (filtered, name) {\n if (props.hasOwnProperty(name)) {\n filtered[name] = props[name];\n } else if (defaults$$1.hasOwnProperty(name)) {\n filtered[name] = defaults$$1[name];\n }\n\n return filtered;\n }, {});\n}\n\nfunction invariantIntlContext() {\n var _ref = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},\n intl = _ref.intl;\n\n invariant(intl, '[React Intl] Could not find required `intl` object. ' + '<IntlProvider> needs to exist in the component ancestry.');\n}\n\nfunction shallowEquals(objA, objB) {\n if (objA === objB) {\n return true;\n }\n\n if ((typeof objA === 'undefined' ? 'undefined' : _typeof(objA)) !== 'object' || objA === null || (typeof objB === 'undefined' ? 'undefined' : _typeof(objB)) !== 'object' || objB === null) {\n return false;\n }\n\n var keysA = Object.keys(objA);\n var keysB = Object.keys(objB);\n\n if (keysA.length !== keysB.length) {\n return false;\n }\n\n // Test for A's keys different from B.\n var bHasOwnProperty = Object.prototype.hasOwnProperty.bind(objB);\n for (var i = 0; i < keysA.length; i++) {\n if (!bHasOwnProperty(keysA[i]) || objA[keysA[i]] !== objB[keysA[i]]) {\n return false;\n }\n }\n\n return true;\n}\n\nfunction shouldIntlComponentUpdate(_ref2, nextProps, nextState) {\n var props = _ref2.props,\n state = _ref2.state,\n _ref2$context = _ref2.context,\n context = _ref2$context === undefined ? {} : _ref2$context;\n var nextContext = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : {};\n var _context$intl = context.intl,\n intl = _context$intl === undefined ? {} : _context$intl;\n var _nextContext$intl = nextContext.intl,\n nextIntl = _nextContext$intl === undefined ? {} : _nextContext$intl;\n\n\n return !shallowEquals(nextProps, props) || !shallowEquals(nextState, state) || !(nextIntl === intl || shallowEquals(filterProps(nextIntl, intlConfigPropNames), filterProps(intl, intlConfigPropNames)));\n}\n\n/*\n * Copyright 2015, Yahoo Inc.\n * Copyrights licensed under the New BSD License.\n * See the accompanying LICENSE file for terms.\n */\n\n// Inspired by react-redux's `connect()` HOC factory function implementation:\n// https://github.com/rackt/react-redux\n\nfunction getDisplayName(Component$$1) {\n return Component$$1.displayName || Component$$1.name || 'Component';\n}\n\nfunction injectIntl(WrappedComponent) {\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n var _options$intlPropName = options.intlPropName,\n intlPropName = _options$intlPropName === undefined ? 'intl' : _options$intlPropName,\n _options$withRef = options.withRef,\n withRef = _options$withRef === undefined ? false : _options$withRef;\n\n var InjectIntl = function (_Component) {\n inherits(InjectIntl, _Component);\n\n function InjectIntl(props, context) {\n classCallCheck(this, InjectIntl);\n\n var _this = possibleConstructorReturn(this, (InjectIntl.__proto__ || Object.getPrototypeOf(InjectIntl)).call(this, props, context));\n\n invariantIntlContext(context);\n return _this;\n }\n\n createClass(InjectIntl, [{\n key: 'getWrappedInstance',\n value: function getWrappedInstance() {\n invariant(withRef, '[React Intl] To access the wrapped instance, ' + 'the `{withRef: true}` option must be set when calling: ' + '`injectIntl()`');\n\n return this.refs.wrappedInstance;\n }\n }, {\n key: 'render',\n value: function render() {\n return React.createElement(WrappedComponent, _extends({}, this.props, defineProperty({}, intlPropName, this.context.intl), {\n ref: withRef ? 'wrappedInstance' : null\n }));\n }\n }]);\n return InjectIntl;\n }(Component);\n\n InjectIntl.displayName = 'InjectIntl(' + getDisplayName(WrappedComponent) + ')';\n InjectIntl.contextTypes = {\n intl: intlShape\n };\n InjectIntl.WrappedComponent = WrappedComponent;\n\n\n return InjectIntl;\n}\n\n/*\n * Copyright 2015, Yahoo Inc.\n * Copyrights licensed under the New BSD License.\n * See the accompanying LICENSE file for terms.\n */\n\nfunction defineMessages(messageDescriptors) {\n // This simply returns what's passed-in because it's meant to be a hook for\n // babel-plugin-react-intl.\n return messageDescriptors;\n}\n\n/*\n * Copyright 2015, Yahoo Inc.\n * Copyrights licensed under the New BSD License.\n * See the accompanying LICENSE file for terms.\n */\n\n// This is a \"hack\" until a proper `intl-pluralformat` package is created.\n\nfunction resolveLocale(locales) {\n // IntlMessageFormat#_resolveLocale() does not depend on `this`.\n return IntlMessageFormat.prototype._resolveLocale(locales);\n}\n\nfunction findPluralFunction(locale) {\n // IntlMessageFormat#_findPluralFunction() does not depend on `this`.\n return IntlMessageFormat.prototype._findPluralRuleFunction(locale);\n}\n\nvar IntlPluralFormat = function IntlPluralFormat(locales) {\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n classCallCheck(this, IntlPluralFormat);\n\n var useOrdinal = options.style === 'ordinal';\n var pluralFn = findPluralFunction(resolveLocale(locales));\n\n this.format = function (value) {\n return pluralFn(value, useOrdinal);\n };\n};\n\n/*\n * Copyright 2015, Yahoo Inc.\n * Copyrights licensed under the New BSD License.\n * See the accompanying LICENSE file for terms.\n */\n\nvar DATE_TIME_FORMAT_OPTIONS = Object.keys(dateTimeFormatPropTypes);\nvar NUMBER_FORMAT_OPTIONS = Object.keys(numberFormatPropTypes);\nvar RELATIVE_FORMAT_OPTIONS = Object.keys(relativeFormatPropTypes);\nvar PLURAL_FORMAT_OPTIONS = Object.keys(pluralFormatPropTypes);\n\nvar RELATIVE_FORMAT_THRESHOLDS = {\n second: 60, // seconds to minute\n minute: 60, // minutes to hour\n hour: 24, // hours to day\n day: 30, // days to month\n month: 12 // months to year\n};\n\nfunction updateRelativeFormatThresholds(newThresholds) {\n var thresholds = IntlRelativeFormat.thresholds;\n thresholds.second = newThresholds.second;\n thresholds.minute = newThresholds.minute;\n thresholds.hour = newThresholds.hour;\n thresholds.day = newThresholds.day;\n thresholds.month = newThresholds.month;\n}\n\nfunction getNamedFormat(formats, type, name) {\n var format = formats && formats[type] && formats[type][name];\n if (format) {\n return format;\n }\n\n if (process.env.NODE_ENV !== 'production') {\n console.error('[React Intl] No ' + type + ' format named: ' + name);\n }\n}\n\nfunction formatDate(config, state, value) {\n var options = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : {};\n var locale = config.locale,\n formats = config.formats;\n var format = options.format;\n\n\n var date = new Date(value);\n var defaults$$1 = format && getNamedFormat(formats, 'date', format);\n var filteredOptions = filterProps(options, DATE_TIME_FORMAT_OPTIONS, defaults$$1);\n\n try {\n return state.getDateTimeFormat(locale, filteredOptions).format(date);\n } catch (e) {\n if (process.env.NODE_ENV !== 'production') {\n console.error('[React Intl] Error formatting date.\\n' + e);\n }\n }\n\n return String(date);\n}\n\nfunction formatTime(config, state, value) {\n var options = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : {};\n var locale = config.locale,\n formats = config.formats;\n var format = options.format;\n\n\n var date = new Date(value);\n var defaults$$1 = format && getNamedFormat(formats, 'time', format);\n var filteredOptions = filterProps(options, DATE_TIME_FORMAT_OPTIONS, defaults$$1);\n\n if (!filteredOptions.hour && !filteredOptions.minute && !filteredOptions.second) {\n // Add default formatting options if hour, minute, or second isn't defined.\n filteredOptions = _extends({}, filteredOptions, { hour: 'numeric', minute: 'numeric' });\n }\n\n try {\n return state.getDateTimeFormat(locale, filteredOptions).format(date);\n } catch (e) {\n if (process.env.NODE_ENV !== 'production') {\n console.error('[React Intl] Error formatting time.\\n' + e);\n }\n }\n\n return String(date);\n}\n\nfunction formatRelative(config, state, value) {\n var options = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : {};\n var locale = config.locale,\n formats = config.formats;\n var format = options.format;\n\n\n var date = new Date(value);\n var now = new Date(options.now);\n var defaults$$1 = format && getNamedFormat(formats, 'relative', format);\n var filteredOptions = filterProps(options, RELATIVE_FORMAT_OPTIONS, defaults$$1);\n\n // Capture the current threshold values, then temporarily override them with\n // specific values just for this render.\n var oldThresholds = _extends({}, IntlRelativeFormat.thresholds);\n updateRelativeFormatThresholds(RELATIVE_FORMAT_THRESHOLDS);\n\n try {\n return state.getRelativeFormat(locale, filteredOptions).format(date, {\n now: isFinite(now) ? now : state.now()\n });\n } catch (e) {\n if (process.env.NODE_ENV !== 'production') {\n console.error('[React Intl] Error formatting relative time.\\n' + e);\n }\n } finally {\n updateRelativeFormatThresholds(oldThresholds);\n }\n\n return String(date);\n}\n\nfunction formatNumber(config, state, value) {\n var options = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : {};\n var locale = config.locale,\n formats = config.formats;\n var format = options.format;\n\n\n var defaults$$1 = format && getNamedFormat(formats, 'number', format);\n var filteredOptions = filterProps(options, NUMBER_FORMAT_OPTIONS, defaults$$1);\n\n try {\n return state.getNumberFormat(locale, filteredOptions).format(value);\n } catch (e) {\n if (process.env.NODE_ENV !== 'production') {\n console.error('[React Intl] Error formatting number.\\n' + e);\n }\n }\n\n return String(value);\n}\n\nfunction formatPlural(config, state, value) {\n var options = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : {};\n var locale = config.locale;\n\n\n var filteredOptions = filterProps(options, PLURAL_FORMAT_OPTIONS);\n\n try {\n return state.getPluralFormat(locale, filteredOptions).format(value);\n } catch (e) {\n if (process.env.NODE_ENV !== 'production') {\n console.error('[React Intl] Error formatting plural.\\n' + e);\n }\n }\n\n return 'other';\n}\n\nfunction formatMessage(config, state) {\n var messageDescriptor = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n var values = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : {};\n var locale = config.locale,\n formats = config.formats,\n messages = config.messages,\n defaultLocale = config.defaultLocale,\n defaultFormats = config.defaultFormats;\n var id = messageDescriptor.id,\n defaultMessage = messageDescriptor.defaultMessage;\n\n // `id` is a required field of a Message Descriptor.\n\n invariant(id, '[React Intl] An `id` must be provided to format a message.');\n\n var message = messages && messages[id];\n var hasValues = Object.keys(values).length > 0;\n\n // Avoid expensive message formatting for simple messages without values. In\n // development messages will always be formatted in case of missing values.\n if (!hasValues && process.env.NODE_ENV === 'production') {\n return message || defaultMessage || id;\n }\n\n var formattedMessage = void 0;\n\n if (message) {\n try {\n var formatter = state.getMessageFormat(message, locale, formats);\n\n formattedMessage = formatter.format(values);\n } catch (e) {\n if (process.env.NODE_ENV !== 'production') {\n console.error('[React Intl] Error formatting message: \"' + id + '\" for locale: \"' + locale + '\"' + (defaultMessage ? ', using default message as fallback.' : '') + ('\\n' + e));\n }\n }\n } else {\n if (process.env.NODE_ENV !== 'production') {\n // This prevents warnings from littering the console in development\n // when no `messages` are passed into the <IntlProvider> for the\n // default locale, and a default message is in the source.\n if (!defaultMessage || locale && locale.toLowerCase() !== defaultLocale.toLowerCase()) {\n console.error('[React Intl] Missing message: \"' + id + '\" for locale: \"' + locale + '\"' + (defaultMessage ? ', using default message as fallback.' : ''));\n }\n }\n }\n\n if (!formattedMessage && defaultMessage) {\n try {\n var _formatter = state.getMessageFormat(defaultMessage, defaultLocale, defaultFormats);\n\n formattedMessage = _formatter.format(values);\n } catch (e) {\n if (process.env.NODE_ENV !== 'production') {\n console.error('[React Intl] Error formatting the default message for: \"' + id + '\"' + ('\\n' + e));\n }\n }\n }\n\n if (!formattedMessage) {\n if (process.env.NODE_ENV !== 'production') {\n console.error('[React Intl] Cannot format message: \"' + id + '\", ' + ('using message ' + (message || defaultMessage ? 'source' : 'id') + ' as fallback.'));\n }\n }\n\n return formattedMessage || message || defaultMessage || id;\n}\n\nfunction formatHTMLMessage(config, state, messageDescriptor) {\n var rawValues = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : {};\n\n // Process all the values before they are used when formatting the ICU\n // Message string. Since the formatted message might be injected via\n // `innerHTML`, all String-based values need to be HTML-escaped.\n var escapedValues = Object.keys(rawValues).reduce(function (escaped, name) {\n var value = rawValues[name];\n escaped[name] = typeof value === 'string' ? escape(value) : value;\n return escaped;\n }, {});\n\n return formatMessage(config, state, messageDescriptor, escapedValues);\n}\n\n\n\nvar format = Object.freeze({\n\tformatDate: formatDate,\n\tformatTime: formatTime,\n\tformatRelative: formatRelative,\n\tformatNumber: formatNumber,\n\tformatPlural: formatPlural,\n\tformatMessage: formatMessage,\n\tformatHTMLMessage: formatHTMLMessage\n});\n\n/*\n * Copyright 2015, Yahoo Inc.\n * Copyrights licensed under the New BSD License.\n * See the accompanying LICENSE file for terms.\n */\n\nvar intlConfigPropNames$1 = Object.keys(intlConfigPropTypes);\nvar intlFormatPropNames = Object.keys(intlFormatPropTypes);\n\n// These are not a static property on the `IntlProvider` class so the intl\n// config values can be inherited from an <IntlProvider> ancestor.\nvar defaultProps = {\n formats: {},\n messages: {},\n textComponent: 'span',\n\n defaultLocale: 'en',\n defaultFormats: {}\n};\n\nvar IntlProvider = function (_Component) {\n inherits(IntlProvider, _Component);\n\n function IntlProvider(props) {\n var context = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n classCallCheck(this, IntlProvider);\n\n var _this = possibleConstructorReturn(this, (IntlProvider.__proto__ || Object.getPrototypeOf(IntlProvider)).call(this, props, context));\n\n invariant(typeof Intl !== 'undefined', '[React Intl] The `Intl` APIs must be available in the runtime, ' + 'and do not appear to be built-in. An `Intl` polyfill should be loaded.\\n' + 'See: http://formatjs.io/guides/runtime-environments/');\n\n var intlContext = context.intl;\n\n // Used to stabilize time when performing an initial rendering so that\n // all relative times use the same reference \"now\" time.\n\n var initialNow = void 0;\n if (isFinite(props.initialNow)) {\n initialNow = Number(props.initialNow);\n } else {\n // When an `initialNow` isn't provided via `props`, look to see an\n // <IntlProvider> exists in the ancestry and call its `now()`\n // function to propagate its value for \"now\".\n initialNow = intlContext ? intlContext.now() : Date.now();\n }\n\n // Creating `Intl*` formatters is expensive. If there's a parent\n // `<IntlProvider>`, then its formatters will be used. Otherwise, this\n // memoize the `Intl*` constructors and cache them for the lifecycle of\n // this IntlProvider instance.\n\n var _ref = intlContext || {},\n _ref$formatters = _ref.formatters,\n formatters = _ref$formatters === undefined ? {\n getDateTimeFormat: memoizeIntlConstructor(Intl.DateTimeFormat),\n getNumberFormat: memoizeIntlConstructor(Intl.NumberFormat),\n getMessageFormat: memoizeIntlConstructor(IntlMessageFormat),\n getRelativeFormat: memoizeIntlConstructor(IntlRelativeFormat),\n getPluralFormat: memoizeIntlConstructor(IntlPluralFormat)\n } : _ref$formatters;\n\n _this.state = _extends({}, formatters, {\n\n // Wrapper to provide stable \"now\" time for initial render.\n now: function now() {\n return _this._didDisplay ? Date.now() : initialNow;\n }\n });\n return _this;\n }\n\n createClass(IntlProvider, [{\n key: 'getConfig',\n value: function getConfig() {\n var intlContext = this.context.intl;\n\n // Build a whitelisted config object from `props`, defaults, and\n // `context.intl`, if an <IntlProvider> exists in the ancestry.\n\n var config = filterProps(this.props, intlConfigPropNames$1, intlContext);\n\n // Apply default props. This must be applied last after the props have\n // been resolved and inherited from any <IntlProvider> in the ancestry.\n // This matches how React resolves `defaultProps`.\n for (var propName in defaultProps) {\n if (config[propName] === undefined) {\n config[propName] = defaultProps[propName];\n }\n }\n\n if (!hasLocaleData(config.locale)) {\n var _config = config,\n locale = _config.locale,\n defaultLocale = _config.defaultLocale,\n defaultFormats = _config.defaultFormats;\n\n\n if (process.env.NODE_ENV !== 'production') {\n console.error('[React Intl] Missing locale data for locale: \"' + locale + '\". ' + ('Using default locale: \"' + defaultLocale + '\" as fallback.'));\n }\n\n // Since there's no registered locale data for `locale`, this will\n // fallback to the `defaultLocale` to make sure things can render.\n // The `messages` are overridden to the `defaultProps` empty object\n // to maintain referential equality across re-renders. It's assumed\n // each <FormattedMessage> contains a `defaultMessage` prop.\n config = _extends({}, config, {\n locale: defaultLocale,\n formats: defaultFormats,\n messages: defaultProps.messages\n });\n }\n\n return config;\n }\n }, {\n key: 'getBoundFormatFns',\n value: function getBoundFormatFns(config, state) {\n return intlFormatPropNames.reduce(function (boundFormatFns, name) {\n boundFormatFns[name] = format[name].bind(null, config, state);\n return boundFormatFns;\n }, {});\n }\n }, {\n key: 'getChildContext',\n value: function getChildContext() {\n var config = this.getConfig();\n\n // Bind intl factories and current config to the format functions.\n var boundFormatFns = this.getBoundFormatFns(config, this.state);\n\n var _state = this.state,\n now = _state.now,\n formatters = objectWithoutProperties(_state, ['now']);\n\n\n return {\n intl: _extends({}, config, boundFormatFns, {\n formatters: formatters,\n now: now\n })\n };\n }\n }, {\n key: 'shouldComponentUpdate',\n value: function shouldComponentUpdate() {\n for (var _len = arguments.length, next = Array(_len), _key = 0; _key < _len; _key++) {\n next[_key] = arguments[_key];\n }\n\n return shouldIntlComponentUpdate.apply(undefined, [this].concat(next));\n }\n }, {\n key: 'componentDidMount',\n value: function componentDidMount() {\n this._didDisplay = true;\n }\n }, {\n key: 'render',\n value: function render() {\n return Children.only(this.props.children);\n }\n }]);\n return IntlProvider;\n}(Component);\n\nIntlProvider.displayName = 'IntlProvider';\nIntlProvider.contextTypes = {\n intl: intlShape\n};\nIntlProvider.childContextTypes = {\n intl: intlShape.isRequired\n};\nprocess.env.NODE_ENV !== \"production\" ? IntlProvider.propTypes = _extends({}, intlConfigPropTypes, {\n children: PropTypes.element.isRequired,\n initialNow: PropTypes.any\n}) : void 0;\n\n/*\n * Copyright 2015, Yahoo Inc.\n * Copyrights licensed under the New BSD License.\n * See the accompanying LICENSE file for terms.\n */\n\nvar FormattedDate = function (_Component) {\n inherits(FormattedDate, _Component);\n\n function FormattedDate(props, context) {\n classCallCheck(this, FormattedDate);\n\n var _this = possibleConstructorReturn(this, (FormattedDate.__proto__ || Object.getPrototypeOf(FormattedDate)).call(this, props, context));\n\n invariantIntlContext(context);\n return _this;\n }\n\n createClass(FormattedDate, [{\n key: 'shouldComponentUpdate',\n value: function shouldComponentUpdate() {\n for (var _len = arguments.length, next = Array(_len), _key = 0; _key < _len; _key++) {\n next[_key] = arguments[_key];\n }\n\n return shouldIntlComponentUpdate.apply(undefined, [this].concat(next));\n }\n }, {\n key: 'render',\n value: function render() {\n var _context$intl = this.context.intl,\n formatDate = _context$intl.formatDate,\n Text = _context$intl.textComponent;\n var _props = this.props,\n value = _props.value,\n children = _props.children;\n\n\n var formattedDate = formatDate(value, this.props);\n\n if (typeof children === 'function') {\n return children(formattedDate);\n }\n\n return React.createElement(\n Text,\n null,\n formattedDate\n );\n }\n }]);\n return FormattedDate;\n}(Component);\n\nFormattedDate.displayName = 'FormattedDate';\nFormattedDate.contextTypes = {\n intl: intlShape\n};\nprocess.env.NODE_ENV !== \"production\" ? FormattedDate.propTypes = _extends({}, dateTimeFormatPropTypes, {\n value: PropTypes.any.isRequired,\n format: PropTypes.string,\n children: PropTypes.func\n}) : void 0;\n\n/*\n * Copyright 2015, Yahoo Inc.\n * Copyrights licensed under the New BSD License.\n * See the accompanying LICENSE file for terms.\n */\n\nvar FormattedTime = function (_Component) {\n inherits(FormattedTime, _Component);\n\n function FormattedTime(props, context) {\n classCallCheck(this, FormattedTime);\n\n var _this = possibleConstructorReturn(this, (FormattedTime.__proto__ || Object.getPrototypeOf(FormattedTime)).call(this, props, context));\n\n invariantIntlContext(context);\n return _this;\n }\n\n createClass(FormattedTime, [{\n key: 'shouldComponentUpdate',\n value: function shouldComponentUpdate() {\n for (var _len = arguments.length, next = Array(_len), _key = 0; _key < _len; _key++) {\n next[_key] = arguments[_key];\n }\n\n return shouldIntlComponentUpdate.apply(undefined, [this].concat(next));\n }\n }, {\n key: 'render',\n value: function render() {\n var _context$intl = this.context.intl,\n formatTime = _context$intl.formatTime,\n Text = _context$intl.textComponent;\n var _props = this.props,\n value = _props.value,\n children = _props.children;\n\n\n var formattedTime = formatTime(value, this.props);\n\n if (typeof children === 'function') {\n return children(formattedTime);\n }\n\n return React.createElement(\n Text,\n null,\n formattedTime\n );\n }\n }]);\n return FormattedTime;\n}(Component);\n\nFormattedTime.displayName = 'FormattedTime';\nFormattedTime.contextTypes = {\n intl: intlShape\n};\nprocess.env.NODE_ENV !== \"production\" ? FormattedTime.propTypes = _extends({}, dateTimeFormatPropTypes, {\n value: PropTypes.any.isRequired,\n format: PropTypes.string,\n children: PropTypes.func\n}) : void 0;\n\n/*\n * Copyright 2015, Yahoo Inc.\n * Copyrights licensed under the New BSD License.\n * See the accompanying LICENSE file for terms.\n */\n\nvar SECOND = 1000;\nvar MINUTE = 1000 * 60;\nvar HOUR = 1000 * 60 * 60;\nvar DAY = 1000 * 60 * 60 * 24;\n\n// The maximum timer delay value is a 32-bit signed integer.\n// See: https://mdn.io/setTimeout\nvar MAX_TIMER_DELAY = 2147483647;\n\nfunction selectUnits(delta) {\n var absDelta = Math.abs(delta);\n\n if (absDelta < MINUTE) {\n return 'second';\n }\n\n if (absDelta < HOUR) {\n return 'minute';\n }\n\n if (absDelta < DAY) {\n return 'hour';\n }\n\n // The maximum scheduled delay will be measured in days since the maximum\n // timer delay is less than the number of milliseconds in 25 days.\n return 'day';\n}\n\nfunction getUnitDelay(units) {\n switch (units) {\n case 'second':\n return SECOND;\n case 'minute':\n return MINUTE;\n case 'hour':\n return HOUR;\n case 'day':\n return DAY;\n default:\n return MAX_TIMER_DELAY;\n }\n}\n\nfunction isSameDate(a, b) {\n if (a === b) {\n return true;\n }\n\n var aTime = new Date(a).getTime();\n var bTime = new Date(b).getTime();\n\n return isFinite(aTime) && isFinite(bTime) && aTime === bTime;\n}\n\nvar FormattedRelative = function (_Component) {\n inherits(FormattedRelative, _Component);\n\n function FormattedRelative(props, context) {\n classCallCheck(this, FormattedRelative);\n\n var _this = possibleConstructorReturn(this, (FormattedRelative.__proto__ || Object.getPrototypeOf(FormattedRelative)).call(this, props, context));\n\n invariantIntlContext(context);\n\n var now = isFinite(props.initialNow) ? Number(props.initialNow) : context.intl.now();\n\n // `now` is stored as state so that `render()` remains a function of\n // props + state, instead of accessing `Date.now()` inside `render()`.\n _this.state = { now: now };\n return _this;\n }\n\n createClass(FormattedRelative, [{\n key: 'scheduleNextUpdate',\n value: function scheduleNextUpdate(props, state) {\n var _this2 = this;\n\n // Cancel and pending update because we're scheduling a new update.\n clearTimeout(this._timer);\n\n var value = props.value,\n units = props.units,\n updateInterval = props.updateInterval;\n\n var time = new Date(value).getTime();\n\n // If the `updateInterval` is falsy, including `0` or we don't have a\n // valid date, then auto updates have been turned off, so we bail and\n // skip scheduling an update.\n if (!updateInterval || !isFinite(time)) {\n return;\n }\n\n var delta = time - state.now;\n var unitDelay = getUnitDelay(units || selectUnits(delta));\n var unitRemainder = Math.abs(delta % unitDelay);\n\n // We want the largest possible timer delay which will still display\n // accurate information while reducing unnecessary re-renders. The delay\n // should be until the next \"interesting\" moment, like a tick from\n // \"1 minute ago\" to \"2 minutes ago\" when the delta is 120,000ms.\n var delay = delta < 0 ? Math.max(updateInterval, unitDelay - unitRemainder) : Math.max(updateInterval, unitRemainder);\n\n this._timer = setTimeout(function () {\n _this2.setState({ now: _this2.context.intl.now() });\n }, delay);\n }\n }, {\n key: 'componentDidMount',\n value: function componentDidMount() {\n this.scheduleNextUpdate(this.props, this.state);\n }\n }, {\n key: 'componentWillReceiveProps',\n value: function componentWillReceiveProps(_ref) {\n var nextValue = _ref.value;\n\n // When the `props.value` date changes, `state.now` needs to be updated,\n // and the next update can be rescheduled.\n if (!isSameDate(nextValue, this.props.value)) {\n this.setState({ now: this.context.intl.now() });\n }\n }\n }, {\n key: 'shouldComponentUpdate',\n value: function shouldComponentUpdate() {\n for (var _len = arguments.length, next = Array(_len), _key = 0; _key < _len; _key++) {\n next[_key] = arguments[_key];\n }\n\n return shouldIntlComponentUpdate.apply(undefined, [this].concat(next));\n }\n }, {\n key: 'componentWillUpdate',\n value: function componentWillUpdate(nextProps, nextState) {\n this.scheduleNextUpdate(nextProps, nextState);\n }\n }, {\n key: 'componentWillUnmount',\n value: function componentWillUnmount() {\n clearTimeout(this._timer);\n }\n }, {\n key: 'render',\n value: function render() {\n var _context$intl = this.context.intl,\n formatRelative = _context$intl.formatRelative,\n Text = _context$intl.textComponent;\n var _props = this.props,\n value = _props.value,\n children = _props.children;\n\n\n var formattedRelative = formatRelative(value, _extends({}, this.props, this.state));\n\n if (typeof children === 'function') {\n return children(formattedRelative);\n }\n\n return React.createElement(\n Text,\n null,\n formattedRelative\n );\n }\n }]);\n return FormattedRelative;\n}(Component);\n\nFormattedRelative.displayName = 'FormattedRelative';\nFormattedRelative.contextTypes = {\n intl: intlShape\n};\nFormattedRelative.defaultProps = {\n updateInterval: 1000 * 10\n};\nprocess.env.NODE_ENV !== \"production\" ? FormattedRelative.propTypes = _extends({}, relativeFormatPropTypes, {\n value: PropTypes.any.isRequired,\n format: PropTypes.string,\n updateInterval: PropTypes.number,\n initialNow: PropTypes.any,\n children: PropTypes.func\n}) : void 0;\n\n/*\n * Copyright 2015, Yahoo Inc.\n * Copyrights licensed under the New BSD License.\n * See the accompanying LICENSE file for terms.\n */\n\nvar FormattedNumber = function (_Component) {\n inherits(FormattedNumber, _Component);\n\n function FormattedNumber(props, context) {\n classCallCheck(this, FormattedNumber);\n\n var _this = possibleConstructorReturn(this, (FormattedNumber.__proto__ || Object.getPrototypeOf(FormattedNumber)).call(this, props, context));\n\n invariantIntlContext(context);\n return _this;\n }\n\n createClass(FormattedNumber, [{\n key: 'shouldComponentUpdate',\n value: function shouldComponentUpdate() {\n for (var _len = arguments.length, next = Array(_len), _key = 0; _key < _len; _key++) {\n next[_key] = arguments[_key];\n }\n\n return shouldIntlComponentUpdate.apply(undefined, [this].concat(next));\n }\n }, {\n key: 'render',\n value: function render() {\n var _context$intl = this.context.intl,\n formatNumber = _context$intl.formatNumber,\n Text = _context$intl.textComponent;\n var _props = this.props,\n value = _props.value,\n children = _props.children;\n\n\n var formattedNumber = formatNumber(value, this.props);\n\n if (typeof children === 'function') {\n return children(formattedNumber);\n }\n\n return React.createElement(\n Text,\n null,\n formattedNumber\n );\n }\n }]);\n return FormattedNumber;\n}(Component);\n\nFormattedNumber.displayName = 'FormattedNumber';\nFormattedNumber.contextTypes = {\n intl: intlShape\n};\nprocess.env.NODE_ENV !== \"production\" ? FormattedNumber.propTypes = _extends({}, numberFormatPropTypes, {\n value: PropTypes.any.isRequired,\n format: PropTypes.string,\n children: PropTypes.func\n}) : void 0;\n\n/*\n * Copyright 2015, Yahoo Inc.\n * Copyrights licensed under the New BSD License.\n * See the accompanying LICENSE file for terms.\n */\n\nvar FormattedPlural = function (_Component) {\n inherits(FormattedPlural, _Component);\n\n function FormattedPlural(props, context) {\n classCallCheck(this, FormattedPlural);\n\n var _this = possibleConstructorReturn(this, (FormattedPlural.__proto__ || Object.getPrototypeOf(FormattedPlural)).call(this, props, context));\n\n invariantIntlContext(context);\n return _this;\n }\n\n createClass(FormattedPlural, [{\n key: 'shouldComponentUpdate',\n value: function shouldComponentUpdate() {\n for (var _len = arguments.length, next = Array(_len), _key = 0; _key < _len; _key++) {\n next[_key] = arguments[_key];\n }\n\n return shouldIntlComponentUpdate.apply(undefined, [this].concat(next));\n }\n }, {\n key: 'render',\n value: function render() {\n var _context$intl = this.context.intl,\n formatPlural = _context$intl.formatPlural,\n Text = _context$intl.textComponent;\n var _props = this.props,\n value = _props.value,\n other = _props.other,\n children = _props.children;\n\n\n var pluralCategory = formatPlural(value, this.props);\n var formattedPlural = this.props[pluralCategory] || other;\n\n if (typeof children === 'function') {\n return children(formattedPlural);\n }\n\n return React.createElement(\n Text,\n null,\n formattedPlural\n );\n }\n }]);\n return FormattedPlural;\n}(Component);\n\nFormattedPlural.displayName = 'FormattedPlural';\nFormattedPlural.contextTypes = {\n intl: intlShape\n};\nFormattedPlural.defaultProps = {\n style: 'cardinal'\n};\nprocess.env.NODE_ENV !== \"production\" ? FormattedPlural.propTypes = _extends({}, pluralFormatPropTypes, {\n value: PropTypes.any.isRequired,\n\n other: PropTypes.node.isRequired,\n zero: PropTypes.node,\n one: PropTypes.node,\n two: PropTypes.node,\n few: PropTypes.node,\n many: PropTypes.node,\n\n children: PropTypes.func\n}) : void 0;\n\n/*\n * Copyright 2015, Yahoo Inc.\n * Copyrights licensed under the New BSD License.\n * See the accompanying LICENSE file for terms.\n */\n\nvar FormattedMessage = function (_Component) {\n inherits(FormattedMessage, _Component);\n\n function FormattedMessage(props, context) {\n classCallCheck(this, FormattedMessage);\n\n var _this = possibleConstructorReturn(this, (FormattedMessage.__proto__ || Object.getPrototypeOf(FormattedMessage)).call(this, props, context));\n\n invariantIntlContext(context);\n return _this;\n }\n\n createClass(FormattedMessage, [{\n key: 'shouldComponentUpdate',\n value: function shouldComponentUpdate(nextProps) {\n var values = this.props.values;\n var nextValues = nextProps.values;\n\n\n if (!shallowEquals(nextValues, values)) {\n return true;\n }\n\n // Since `values` has already been checked, we know they're not\n // different, so the current `values` are carried over so the shallow\n // equals comparison on the other props isn't affected by the `values`.\n var nextPropsToCheck = _extends({}, nextProps, {\n values: values\n });\n\n for (var _len = arguments.length, next = Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n next[_key - 1] = arguments[_key];\n }\n\n return shouldIntlComponentUpdate.apply(undefined, [this, nextPropsToCheck].concat(next));\n }\n }, {\n key: 'render',\n value: function render() {\n var _context$intl = this.context.intl,\n formatMessage = _context$intl.formatMessage,\n Text = _context$intl.textComponent;\n var _props = this.props,\n id = _props.id,\n description = _props.description,\n defaultMessage = _props.defaultMessage,\n values = _props.values,\n _props$tagName = _props.tagName,\n Component$$1 = _props$tagName === undefined ? Text : _props$tagName,\n children = _props.children;\n\n\n var tokenDelimiter = void 0;\n var tokenizedValues = void 0;\n var elements = void 0;\n\n var hasValues = values && Object.keys(values).length > 0;\n if (hasValues) {\n // Creates a token with a random UID that should not be guessable or\n // conflict with other parts of the `message` string.\n var uid = Math.floor(Math.random() * 0x10000000000).toString(16);\n\n var generateToken = function () {\n var counter = 0;\n return function () {\n return 'ELEMENT-' + uid + '-' + (counter += 1);\n };\n }();\n\n // Splitting with a delimiter to support IE8. When using a regex\n // with a capture group IE8 does not include the capture group in\n // the resulting array.\n tokenDelimiter = '@__' + uid + '__@';\n tokenizedValues = {};\n elements = {};\n\n // Iterates over the `props` to keep track of any React Element\n // values so they can be represented by the `token` as a placeholder\n // when the `message` is formatted. This allows the formatted\n // message to then be broken-up into parts with references to the\n // React Elements inserted back in.\n Object.keys(values).forEach(function (name) {\n var value = values[name];\n\n if (isValidElement(value)) {\n var token = generateToken();\n tokenizedValues[name] = tokenDelimiter + token + tokenDelimiter;\n elements[token] = value;\n } else {\n tokenizedValues[name] = value;\n }\n });\n }\n\n var descriptor = { id: id, description: description, defaultMessage: defaultMessage };\n var formattedMessage = formatMessage(descriptor, tokenizedValues || values);\n\n var nodes = void 0;\n\n var hasElements = elements && Object.keys(elements).length > 0;\n if (hasElements) {\n // Split the message into parts so the React Element values captured\n // above can be inserted back into the rendered message. This\n // approach allows messages to render with React Elements while\n // keeping React's virtual diffing working properly.\n nodes = formattedMessage.split(tokenDelimiter).filter(function (part) {\n return !!part;\n }).map(function (part) {\n return elements[part] || part;\n });\n } else {\n nodes = [formattedMessage];\n }\n\n if (typeof children === 'function') {\n return children.apply(undefined, toConsumableArray(nodes));\n }\n\n // Needs to use `createElement()` instead of JSX, otherwise React will\n // warn about a missing `key` prop with rich-text message formatting.\n return createElement.apply(undefined, [Component$$1, null].concat(toConsumableArray(nodes)));\n }\n }]);\n return FormattedMessage;\n}(Component);\n\nFormattedMessage.displayName = 'FormattedMessage';\nFormattedMessage.contextTypes = {\n intl: intlShape\n};\nFormattedMessage.defaultProps = {\n values: {}\n};\nprocess.env.NODE_ENV !== \"production\" ? FormattedMessage.propTypes = _extends({}, messageDescriptorPropTypes, {\n values: PropTypes.object,\n tagName: PropTypes.string,\n children: PropTypes.func\n}) : void 0;\n\n/*\n * Copyright 2015, Yahoo Inc.\n * Copyrights licensed under the New BSD License.\n * See the accompanying LICENSE file for terms.\n */\n\nvar FormattedHTMLMessage = function (_Component) {\n inherits(FormattedHTMLMessage, _Component);\n\n function FormattedHTMLMessage(props, context) {\n classCallCheck(this, FormattedHTMLMessage);\n\n var _this = possibleConstructorReturn(this, (FormattedHTMLMessage.__proto__ || Object.getPrototypeOf(FormattedHTMLMessage)).call(this, props, context));\n\n invariantIntlContext(context);\n return _this;\n }\n\n createClass(FormattedHTMLMessage, [{\n key: 'shouldComponentUpdate',\n value: function shouldComponentUpdate(nextProps) {\n var values = this.props.values;\n var nextValues = nextProps.values;\n\n\n if (!shallowEquals(nextValues, values)) {\n return true;\n }\n\n // Since `values` has already been checked, we know they're not\n // different, so the current `values` are carried over so the shallow\n // equals comparison on the other props isn't affected by the `values`.\n var nextPropsToCheck = _extends({}, nextProps, {\n values: values\n });\n\n for (var _len = arguments.length, next = Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n next[_key - 1] = arguments[_key];\n }\n\n return shouldIntlComponentUpdate.apply(undefined, [this, nextPropsToCheck].concat(next));\n }\n }, {\n key: 'render',\n value: function render() {\n var _context$intl = this.context.intl,\n formatHTMLMessage = _context$intl.formatHTMLMessage,\n Text = _context$intl.textComponent;\n var _props = this.props,\n id = _props.id,\n description = _props.description,\n defaultMessage = _props.defaultMessage,\n rawValues = _props.values,\n _props$tagName = _props.tagName,\n Component$$1 = _props$tagName === undefined ? Text : _props$tagName,\n children = _props.children;\n\n\n var descriptor = { id: id, description: description, defaultMessage: defaultMessage };\n var formattedHTMLMessage = formatHTMLMessage(descriptor, rawValues);\n\n if (typeof children === 'function') {\n return children(formattedHTMLMessage);\n }\n\n // Since the message presumably has HTML in it, we need to set\n // `innerHTML` in order for it to be rendered and not escaped by React.\n // To be safe, all string prop values were escaped when formatting the\n // message. It is assumed that the message is not UGC, and came from the\n // developer making it more like a template.\n //\n // Note: There's a perf impact of using this component since there's no\n // way for React to do its virtual DOM diffing.\n var html = { __html: formattedHTMLMessage };\n return React.createElement(Component$$1, { dangerouslySetInnerHTML: html });\n }\n }]);\n return FormattedHTMLMessage;\n}(Component);\n\nFormattedHTMLMessage.displayName = 'FormattedHTMLMessage';\nFormattedHTMLMessage.contextTypes = {\n intl: intlShape\n};\nFormattedHTMLMessage.defaultProps = {\n values: {}\n};\nprocess.env.NODE_ENV !== \"production\" ? FormattedHTMLMessage.propTypes = _extends({}, messageDescriptorPropTypes, {\n values: PropTypes.object,\n tagName: PropTypes.string,\n children: PropTypes.func\n}) : void 0;\n\n/*\n * Copyright 2015, Yahoo Inc.\n * Copyrights licensed under the New BSD License.\n * See the accompanying LICENSE file for terms.\n */\n\naddLocaleData(defaultLocaleData);\n\n/*\n * Copyright 2015, Yahoo Inc.\n * Copyrights licensed under the New BSD License.\n * See the accompanying LICENSE file for terms.\n */\n\naddLocaleData(allLocaleData);\n\nexport { addLocaleData, intlShape, injectIntl, defineMessages, IntlProvider, FormattedDate, FormattedTime, FormattedRelative, FormattedNumber, FormattedPlural, FormattedMessage, FormattedHTMLMessage };\n\n\n\n// WEBPACK FOOTER //\n// ./node_modules/react-intl/lib/index.es.js","import React from 'react';\nimport ImmutablePropTypes from 'react-immutable-proptypes';\nimport PropTypes from 'prop-types';\nimport { is } from 'immutable';\nimport IconButton from './icon_button';\nimport { defineMessages, injectIntl, FormattedMessage } from 'react-intl';\nimport { isIOS } from '../is_mobile';\nimport classNames from 'classnames';\nimport { autoPlayGif, displaySensitiveMedia } from '../initial_state';\n\nconst messages = defineMessages({\n toggle_visible: { id: 'media_gallery.toggle_visible', defaultMessage: 'Toggle visibility' },\n});\n\nclass Item extends React.PureComponent {\n\n static propTypes = {\n attachment: ImmutablePropTypes.map.isRequired,\n standalone: PropTypes.bool,\n index: PropTypes.number.isRequired,\n size: PropTypes.number.isRequired,\n onClick: PropTypes.func.isRequired,\n displayWidth: PropTypes.number,\n };\n\n static defaultProps = {\n standalone: false,\n index: 0,\n size: 1,\n };\n\n handleMouseEnter = (e) => {\n if (this.hoverToPlay()) {\n e.target.play();\n }\n }\n\n handleMouseLeave = (e) => {\n if (this.hoverToPlay()) {\n e.target.pause();\n e.target.currentTime = 0;\n }\n }\n\n hoverToPlay () {\n const { attachment } = this.props;\n return !autoPlayGif && attachment.get('type') === 'gifv';\n }\n\n handleClick = (e) => {\n const { index, onClick } = this.props;\n\n if (e.button === 0) {\n e.preventDefault();\n onClick(index);\n }\n\n e.stopPropagation();\n }\n\n render () {\n const { attachment, index, size, standalone, displayWidth } = this.props;\n\n let width = 50;\n let height = 100;\n let top = 'auto';\n let left = 'auto';\n let bottom = 'auto';\n let right = 'auto';\n\n if (size === 1) {\n width = 100;\n }\n\n if (size === 4 || (size === 3 && index > 0)) {\n height = 50;\n }\n\n if (size === 2) {\n if (index === 0) {\n right = '2px';\n } else {\n left = '2px';\n }\n } else if (size === 3) {\n if (index === 0) {\n right = '2px';\n } else if (index > 0) {\n left = '2px';\n }\n\n if (index === 1) {\n bottom = '2px';\n } else if (index > 1) {\n top = '2px';\n }\n } else if (size === 4) {\n if (index === 0 || index === 2) {\n right = '2px';\n }\n\n if (index === 1 || index === 3) {\n left = '2px';\n }\n\n if (index < 2) {\n bottom = '2px';\n } else {\n top = '2px';\n }\n }\n\n let thumbnail = '';\n\n if (attachment.get('type') === 'image') {\n const previewUrl = attachment.get('preview_url');\n const previewWidth = attachment.getIn(['meta', 'small', 'width']);\n\n const originalUrl = attachment.get('url');\n const originalWidth = attachment.getIn(['meta', 'original', 'width']);\n\n const hasSize = typeof originalWidth === 'number' && typeof previewWidth === 'number';\n\n const srcSet = hasSize ? `${originalUrl} ${originalWidth}w, ${previewUrl} ${previewWidth}w` : null;\n const sizes = hasSize ? `${displayWidth * (width / 100)}px` : null;\n\n const focusX = attachment.getIn(['meta', 'focus', 'x']) || 0;\n const focusY = attachment.getIn(['meta', 'focus', 'y']) || 0;\n const x = ((focusX / 2) + .5) * 100;\n const y = ((focusY / -2) + .5) * 100;\n\n thumbnail = (\n <a\n className='media-gallery__item-thumbnail'\n href={attachment.get('remote_url') || originalUrl}\n onClick={this.handleClick}\n target='_blank'\n >\n <img\n src={previewUrl}\n srcSet={srcSet}\n sizes={sizes}\n alt={attachment.get('description')}\n title={attachment.get('description')}\n style={{ objectPosition: `${x}% ${y}%` }}\n />\n </a>\n );\n } else if (attachment.get('type') === 'audio') {\n thumbnail = (\n <div className='media-gallery__audio'>\n <audio\n className='media-gallery__item-audio-thumbnail'\n aria-label={attachment.get('description')}\n role='application'\n src={attachment.get('url')}\n loop\n controls\n />\n </div>\n );\n } else if (attachment.get('type') === 'gifv') {\n const autoPlay = !isIOS() && autoPlayGif;\n\n thumbnail = (\n <div className={classNames('media-gallery__gifv', { autoplay: autoPlay })}>\n <video\n className='media-gallery__item-gifv-thumbnail'\n aria-label={attachment.get('description')}\n role='application'\n src={attachment.get('url')}\n onClick={this.handleClick}\n onMouseEnter={this.handleMouseEnter}\n onMouseLeave={this.handleMouseLeave}\n autoPlay={autoPlay}\n loop\n muted\n />\n\n <span className='media-gallery__gifv__label'>GIF</span>\n </div>\n );\n }\n\n return (\n <div className={classNames('media-gallery__item', { standalone })} key={attachment.get('id')} style={{ left: left, top: top, right: right, bottom: bottom, width: `${width}%`, height: `${height}%` }}>\n {thumbnail}\n </div>\n );\n }\n\n}\n\n@injectIntl\nexport default class MediaGallery extends React.PureComponent {\n\n static propTypes = {\n sensitive: PropTypes.bool,\n standalone: PropTypes.bool,\n media: ImmutablePropTypes.list.isRequired,\n size: PropTypes.object,\n height: PropTypes.number.isRequired,\n onOpenMedia: PropTypes.func.isRequired,\n intl: PropTypes.object.isRequired,\n };\n\n static defaultProps = {\n standalone: false,\n };\n\n state = {\n visible: !this.props.sensitive || displaySensitiveMedia,\n };\n\n componentWillReceiveProps (nextProps) {\n if (!is(nextProps.media, this.props.media)) {\n this.setState({ visible: !nextProps.sensitive });\n }\n }\n\n handleOpen = () => {\n this.setState({ visible: !this.state.visible });\n }\n\n handleClick = (index) => {\n this.props.onOpenMedia(this.props.media, index);\n }\n\n handleRef = (node) => {\n if (node /*&& this.isStandaloneEligible()*/) {\n // offsetWidth triggers a layout, so only calculate when we need to\n this.setState({\n width: node.offsetWidth,\n });\n }\n }\n\n isStandaloneEligible() {\n const { media, standalone } = this.props;\n return standalone && media.size === 1 && media.getIn([0, 'meta', 'small', 'aspect']);\n }\n\n render () {\n const { media, intl, sensitive, height } = this.props;\n const { width, visible } = this.state;\n\n let children;\n\n const style = {};\n\n if (this.isStandaloneEligible()) {\n if (width) {\n style.height = width / this.props.media.getIn([0, 'meta', 'small', 'aspect']);\n }\n } else if (width) {\n style.height = width / (16/9);\n } else {\n style.height = height;\n }\n\n if (!visible) {\n let warning;\n\n if (sensitive) {\n warning = <FormattedMessage id='status.sensitive_warning' defaultMessage='Sensitive content' />;\n } else {\n warning = <FormattedMessage id='status.media_hidden' defaultMessage='Media hidden' />;\n }\n\n children = (\n <button type='button' className='media-spoiler' onClick={this.handleOpen} style={style} ref={this.handleRef}>\n <span className='media-spoiler__warning'>{warning}</span>\n <span className='media-spoiler__trigger'><FormattedMessage id='status.sensitive_toggle' defaultMessage='Click to view' /></span>\n </button>\n );\n } else {\n const size = media.take(4).size;\n\n if (this.isStandaloneEligible()) {\n children = <Item standalone onClick={this.handleClick} attachment={media.get(0)} displayWidth={width} />;\n } else {\n children = media.take(4).map((attachment, i) => <Item key={attachment.get('id')} onClick={this.handleClick} attachment={attachment} index={i} size={size} displayWidth={width} />);\n }\n }\n\n return (\n <div className='media-gallery' style={style} ref={this.handleRef}>\n <div className={classNames('spoiler-button', { 'spoiler-button--visible': visible })}>\n <IconButton title={intl.formatMessage(messages.toggle_visible)} icon={visible ? 'eye' : 'eye-slash'} overlay onClick={this.handleOpen} />\n </div>\n\n {children}\n </div>\n );\n }\n\n}\n\n\n\n// WEBPACK FOOTER //\n// ./app/javascript/mastodon/components/media_gallery.js","import React, { PureComponent, Fragment } from 'react';\nimport ReactDOM from 'react-dom';\nimport PropTypes from 'prop-types';\nimport { IntlProvider, addLocaleData } from 'react-intl';\nimport { getLocale } from '../locales';\nimport MediaGallery from '../components/media_gallery';\nimport Video from '../features/video';\nimport Card from '../features/status/components/card';\nimport ModalRoot from '../components/modal_root';\nimport MediaModal from '../features/ui/components/media_modal';\nimport { List as ImmutableList, fromJS } from 'immutable';\n\nconst { localeData, messages } = getLocale();\naddLocaleData(localeData);\n\nconst MEDIA_COMPONENTS = { MediaGallery, Video, Card };\n\nexport default class MediaContainer extends PureComponent {\n\n static propTypes = {\n locale: PropTypes.string.isRequired,\n components: PropTypes.object.isRequired,\n };\n\n state = {\n media: null,\n index: null,\n time: null,\n };\n\n handleOpenMedia = (media, index) => {\n document.body.classList.add('media-standalone__body');\n this.setState({ media, index });\n }\n\n handleOpenVideo = (video, time) => {\n const media = ImmutableList([video]);\n\n document.body.classList.add('media-standalone__body');\n this.setState({ media, time });\n }\n\n handleCloseMedia = () => {\n document.body.classList.remove('media-standalone__body');\n this.setState({ media: null, index: null, time: null });\n }\n\n render () {\n const { locale, components } = this.props;\n\n return (\n <IntlProvider locale={locale} messages={messages}>\n <Fragment>\n {[].map.call(components, (component, i) => {\n const componentName = component.getAttribute('data-component');\n const Component = MEDIA_COMPONENTS[componentName];\n const { media, card, ...props } = JSON.parse(component.getAttribute('data-props'));\n\n Object.assign(props, {\n ...(media ? { media: fromJS(media) } : {}),\n ...(card ? { card: fromJS(card) } : {}),\n\n ...(componentName === 'Video' ? {\n onOpenVideo: this.handleOpenVideo,\n } : {\n onOpenMedia: this.handleOpenMedia,\n }),\n });\n\n return ReactDOM.createPortal(\n <Component {...props} key={`media-${i}`} />,\n component,\n );\n })}\n <ModalRoot onClose={this.handleCloseMedia}>\n {this.state.media && (\n <MediaModal\n media={this.state.media}\n index={this.state.index || 0}\n time={this.state.time}\n onClose={this.handleCloseMedia}\n />\n )}\n </ModalRoot>\n </Fragment>\n </IntlProvider>\n );\n }\n\n}\n\n\n\n// WEBPACK FOOTER //\n// ./app/javascript/mastodon/containers/media_container.js","import React from 'react';\nimport PropTypes from 'prop-types';\nimport Immutable from 'immutable';\nimport ImmutablePropTypes from 'react-immutable-proptypes';\nimport punycode from 'punycode';\nimport classnames from 'classnames';\n\nconst IDNA_PREFIX = 'xn--';\n\nconst decodeIDNA = domain => {\n return domain\n .split('.')\n .map(part => part.indexOf(IDNA_PREFIX) === 0 ? punycode.decode(part.slice(IDNA_PREFIX.length)) : part)\n .join('.');\n};\n\nconst getHostname = url => {\n const parser = document.createElement('a');\n parser.href = url;\n return parser.hostname;\n};\n\nconst trim = (text, len) => {\n const cut = text.indexOf(' ', len);\n\n if (cut === -1) {\n return text;\n }\n\n return text.substring(0, cut) + (text.length > len ? '…' : '');\n};\n\nconst domParser = new DOMParser();\n\nconst addAutoPlay = html => {\n const document = domParser.parseFromString(html, 'text/html').documentElement;\n const iframe = document.querySelector('iframe');\n\n if (iframe) {\n if (iframe.src.indexOf('?') !== -1) {\n iframe.src += '&';\n } else {\n iframe.src += '?';\n }\n\n iframe.src += 'autoplay=1&auto_play=1';\n\n // DOM parser creates html/body elements around original HTML fragment,\n // so we need to get innerHTML out of the body and not the entire document\n return document.querySelector('body').innerHTML;\n }\n\n return html;\n};\n\nexport default class Card extends React.PureComponent {\n\n static propTypes = {\n card: ImmutablePropTypes.map,\n maxDescription: PropTypes.number,\n onOpenMedia: PropTypes.func.isRequired,\n };\n\n static defaultProps = {\n maxDescription: 50,\n };\n\n state = {\n width: 280,\n embedded: false,\n };\n\n componentWillReceiveProps (nextProps) {\n if (this.props.card !== nextProps.card) {\n this.setState({ embedded: false });\n }\n }\n\n handlePhotoClick = () => {\n const { card, onOpenMedia } = this.props;\n\n onOpenMedia(\n Immutable.fromJS([\n {\n type: 'image',\n url: card.get('embed_url'),\n description: card.get('title'),\n meta: {\n original: {\n width: card.get('width'),\n height: card.get('height'),\n },\n },\n },\n ]),\n 0\n );\n };\n\n handleEmbedClick = () => {\n const { card } = this.props;\n\n if (card.get('type') === 'photo') {\n this.handlePhotoClick();\n } else {\n this.setState({ embedded: true });\n }\n }\n\n setRef = c => {\n if (c) {\n this.setState({ width: c.offsetWidth });\n }\n }\n\n renderVideo () {\n const { card } = this.props;\n const content = { __html: addAutoPlay(card.get('html')) };\n const { width } = this.state;\n const ratio = card.get('width') / card.get('height');\n const height = card.get('width') > card.get('height') ? (width / ratio) : (width * ratio);\n\n return (\n <div\n ref={this.setRef}\n className='status-card__image status-card-video'\n dangerouslySetInnerHTML={content}\n style={{ height }}\n />\n );\n }\n\n render () {\n const { card, maxDescription } = this.props;\n const { width, embedded } = this.state;\n\n if (card === null) {\n return null;\n }\n\n const provider = card.get('provider_name').length === 0 ? decodeIDNA(getHostname(card.get('url'))) : card.get('provider_name');\n const horizontal = card.get('width') > card.get('height') && (card.get('width') + 100 >= width) || card.get('type') !== 'link';\n const className = classnames('status-card', { horizontal });\n const interactive = card.get('type') !== 'link';\n const title = interactive ? <a className='status-card__title' href={card.get('url')} title={card.get('title')} rel='noopener' target='_blank'><strong>{card.get('title')}</strong></a> : <strong className='status-card__title' title={card.get('title')}>{card.get('title')}</strong>;\n const ratio = card.get('width') / card.get('height');\n const height = card.get('width') > card.get('height') ? (width / ratio) : (width * ratio);\n\n const description = (\n <div className='status-card__content'>\n {title}\n {!horizontal && <p className='status-card__description'>{trim(card.get('description') || '', maxDescription)}</p>}\n <span className='status-card__host'>{provider}</span>\n </div>\n );\n\n let embed = '';\n let thumbnail = <div style={{ backgroundImage: `url(${card.get('image')})`, width: horizontal ? width : null, height: horizontal ? height : null }} className='status-card__image-image' />;\n\n if (interactive) {\n if (embedded) {\n embed = this.renderVideo();\n } else {\n let iconVariant = 'play';\n\n if (card.get('type') === 'photo') {\n iconVariant = 'search-plus';\n }\n\n embed = (\n <div className='status-card__image'>\n {thumbnail}\n\n <div className='status-card__actions'>\n <div>\n <button onClick={this.handleEmbedClick}><i className={`fa fa-${iconVariant}`} /></button>\n <a href={card.get('url')} target='_blank' rel='noopener'><i className='fa fa-external-link' /></a>\n </div>\n </div>\n </div>\n );\n }\n\n return (\n <div className={className} ref={this.setRef}>\n {embed}\n {description}\n </div>\n );\n } else if (card.get('image')) {\n embed = (\n <div className='status-card__image'>\n {thumbnail}\n </div>\n );\n }\n\n return (\n <a href={card.get('url')} className={className} target='_blank' rel='noopener' ref={this.setRef}>\n {embed}\n {description}\n </a>\n );\n }\n\n}\n\n\n\n// WEBPACK FOOTER //\n// ./app/javascript/mastodon/features/status/components/card.js","/*! https://mths.be/punycode v1.4.1 by @mathias */\n;(function(root) {\n\n\t/** Detect free variables */\n\tvar freeExports = typeof exports == 'object' && exports &&\n\t\t!exports.nodeType && exports;\n\tvar freeModule = typeof module == 'object' && module &&\n\t\t!module.nodeType && module;\n\tvar freeGlobal = typeof global == 'object' && global;\n\tif (\n\t\tfreeGlobal.global === freeGlobal ||\n\t\tfreeGlobal.window === freeGlobal ||\n\t\tfreeGlobal.self === freeGlobal\n\t) {\n\t\troot = freeGlobal;\n\t}\n\n\t/**\n\t * The `punycode` object.\n\t * @name punycode\n\t * @type Object\n\t */\n\tvar punycode,\n\n\t/** Highest positive signed 32-bit float value */\n\tmaxInt = 2147483647, // aka. 0x7FFFFFFF or 2^31-1\n\n\t/** Bootstring parameters */\n\tbase = 36,\n\ttMin = 1,\n\ttMax = 26,\n\tskew = 38,\n\tdamp = 700,\n\tinitialBias = 72,\n\tinitialN = 128, // 0x80\n\tdelimiter = '-', // '\\x2D'\n\n\t/** Regular expressions */\n\tregexPunycode = /^xn--/,\n\tregexNonASCII = /[^\\x20-\\x7E]/, // unprintable ASCII chars + non-ASCII chars\n\tregexSeparators = /[\\x2E\\u3002\\uFF0E\\uFF61]/g, // RFC 3490 separators\n\n\t/** Error messages */\n\terrors = {\n\t\t'overflow': 'Overflow: input needs wider integers to process',\n\t\t'not-basic': 'Illegal input >= 0x80 (not a basic code point)',\n\t\t'invalid-input': 'Invalid input'\n\t},\n\n\t/** Convenience shortcuts */\n\tbaseMinusTMin = base - tMin,\n\tfloor = Math.floor,\n\tstringFromCharCode = String.fromCharCode,\n\n\t/** Temporary variable */\n\tkey;\n\n\t/*--------------------------------------------------------------------------*/\n\n\t/**\n\t * A generic error utility function.\n\t * @private\n\t * @param {String} type The error type.\n\t * @returns {Error} Throws a `RangeError` with the applicable error message.\n\t */\n\tfunction error(type) {\n\t\tthrow new RangeError(errors[type]);\n\t}\n\n\t/**\n\t * A generic `Array#map` utility function.\n\t * @private\n\t * @param {Array} array The array to iterate over.\n\t * @param {Function} callback The function that gets called for every array\n\t * item.\n\t * @returns {Array} A new array of values returned by the callback function.\n\t */\n\tfunction map(array, fn) {\n\t\tvar length = array.length;\n\t\tvar result = [];\n\t\twhile (length--) {\n\t\t\tresult[length] = fn(array[length]);\n\t\t}\n\t\treturn result;\n\t}\n\n\t/**\n\t * A simple `Array#map`-like wrapper to work with domain name strings or email\n\t * addresses.\n\t * @private\n\t * @param {String} domain The domain name or email address.\n\t * @param {Function} callback The function that gets called for every\n\t * character.\n\t * @returns {Array} A new string of characters returned by the callback\n\t * function.\n\t */\n\tfunction mapDomain(string, fn) {\n\t\tvar parts = string.split('@');\n\t\tvar result = '';\n\t\tif (parts.length > 1) {\n\t\t\t// In email addresses, only the domain name should be punycoded. Leave\n\t\t\t// the local part (i.e. everything up to `@`) intact.\n\t\t\tresult = parts[0] + '@';\n\t\t\tstring = parts[1];\n\t\t}\n\t\t// Avoid `split(regex)` for IE8 compatibility. See #17.\n\t\tstring = string.replace(regexSeparators, '\\x2E');\n\t\tvar labels = string.split('.');\n\t\tvar encoded = map(labels, fn).join('.');\n\t\treturn result + encoded;\n\t}\n\n\t/**\n\t * Creates an array containing the numeric code points of each Unicode\n\t * character in the string. While JavaScript uses UCS-2 internally,\n\t * this function will convert a pair of surrogate halves (each of which\n\t * UCS-2 exposes as separate characters) into a single code point,\n\t * matching UTF-16.\n\t * @see `punycode.ucs2.encode`\n\t * @see <https://mathiasbynens.be/notes/javascript-encoding>\n\t * @memberOf punycode.ucs2\n\t * @name decode\n\t * @param {String} string The Unicode input string (UCS-2).\n\t * @returns {Array} The new array of code points.\n\t */\n\tfunction ucs2decode(string) {\n\t\tvar output = [],\n\t\t counter = 0,\n\t\t length = string.length,\n\t\t value,\n\t\t extra;\n\t\twhile (counter < length) {\n\t\t\tvalue = string.charCodeAt(counter++);\n\t\t\tif (value >= 0xD800 && value <= 0xDBFF && counter < length) {\n\t\t\t\t// high surrogate, and there is a next character\n\t\t\t\textra = string.charCodeAt(counter++);\n\t\t\t\tif ((extra & 0xFC00) == 0xDC00) { // low surrogate\n\t\t\t\t\toutput.push(((value & 0x3FF) << 10) + (extra & 0x3FF) + 0x10000);\n\t\t\t\t} else {\n\t\t\t\t\t// unmatched surrogate; only append this code unit, in case the next\n\t\t\t\t\t// code unit is the high surrogate of a surrogate pair\n\t\t\t\t\toutput.push(value);\n\t\t\t\t\tcounter--;\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\toutput.push(value);\n\t\t\t}\n\t\t}\n\t\treturn output;\n\t}\n\n\t/**\n\t * Creates a string based on an array of numeric code points.\n\t * @see `punycode.ucs2.decode`\n\t * @memberOf punycode.ucs2\n\t * @name encode\n\t * @param {Array} codePoints The array of numeric code points.\n\t * @returns {String} The new Unicode string (UCS-2).\n\t */\n\tfunction ucs2encode(array) {\n\t\treturn map(array, function(value) {\n\t\t\tvar output = '';\n\t\t\tif (value > 0xFFFF) {\n\t\t\t\tvalue -= 0x10000;\n\t\t\t\toutput += stringFromCharCode(value >>> 10 & 0x3FF | 0xD800);\n\t\t\t\tvalue = 0xDC00 | value & 0x3FF;\n\t\t\t}\n\t\t\toutput += stringFromCharCode(value);\n\t\t\treturn output;\n\t\t}).join('');\n\t}\n\n\t/**\n\t * Converts a basic code point into a digit/integer.\n\t * @see `digitToBasic()`\n\t * @private\n\t * @param {Number} codePoint The basic numeric code point value.\n\t * @returns {Number} The numeric value of a basic code point (for use in\n\t * representing integers) in the range `0` to `base - 1`, or `base` if\n\t * the code point does not represent a value.\n\t */\n\tfunction basicToDigit(codePoint) {\n\t\tif (codePoint - 48 < 10) {\n\t\t\treturn codePoint - 22;\n\t\t}\n\t\tif (codePoint - 65 < 26) {\n\t\t\treturn codePoint - 65;\n\t\t}\n\t\tif (codePoint - 97 < 26) {\n\t\t\treturn codePoint - 97;\n\t\t}\n\t\treturn base;\n\t}\n\n\t/**\n\t * Converts a digit/integer into a basic code point.\n\t * @see `basicToDigit()`\n\t * @private\n\t * @param {Number} digit The numeric value of a basic code point.\n\t * @returns {Number} The basic code point whose value (when used for\n\t * representing integers) is `digit`, which needs to be in the range\n\t * `0` to `base - 1`. If `flag` is non-zero, the uppercase form is\n\t * used; else, the lowercase form is used. The behavior is undefined\n\t * if `flag` is non-zero and `digit` has no uppercase form.\n\t */\n\tfunction digitToBasic(digit, flag) {\n\t\t// 0..25 map to ASCII a..z or A..Z\n\t\t// 26..35 map to ASCII 0..9\n\t\treturn digit + 22 + 75 * (digit < 26) - ((flag != 0) << 5);\n\t}\n\n\t/**\n\t * Bias adaptation function as per section 3.4 of RFC 3492.\n\t * https://tools.ietf.org/html/rfc3492#section-3.4\n\t * @private\n\t */\n\tfunction adapt(delta, numPoints, firstTime) {\n\t\tvar k = 0;\n\t\tdelta = firstTime ? floor(delta / damp) : delta >> 1;\n\t\tdelta += floor(delta / numPoints);\n\t\tfor (/* no initialization */; delta > baseMinusTMin * tMax >> 1; k += base) {\n\t\t\tdelta = floor(delta / baseMinusTMin);\n\t\t}\n\t\treturn floor(k + (baseMinusTMin + 1) * delta / (delta + skew));\n\t}\n\n\t/**\n\t * Converts a Punycode string of ASCII-only symbols to a string of Unicode\n\t * symbols.\n\t * @memberOf punycode\n\t * @param {String} input The Punycode string of ASCII-only symbols.\n\t * @returns {String} The resulting string of Unicode symbols.\n\t */\n\tfunction decode(input) {\n\t\t// Don't use UCS-2\n\t\tvar output = [],\n\t\t inputLength = input.length,\n\t\t out,\n\t\t i = 0,\n\t\t n = initialN,\n\t\t bias = initialBias,\n\t\t basic,\n\t\t j,\n\t\t index,\n\t\t oldi,\n\t\t w,\n\t\t k,\n\t\t digit,\n\t\t t,\n\t\t /** Cached calculation results */\n\t\t baseMinusT;\n\n\t\t// Handle the basic code points: let `basic` be the number of input code\n\t\t// points before the last delimiter, or `0` if there is none, then copy\n\t\t// the first basic code points to the output.\n\n\t\tbasic = input.lastIndexOf(delimiter);\n\t\tif (basic < 0) {\n\t\t\tbasic = 0;\n\t\t}\n\n\t\tfor (j = 0; j < basic; ++j) {\n\t\t\t// if it's not a basic code point\n\t\t\tif (input.charCodeAt(j) >= 0x80) {\n\t\t\t\terror('not-basic');\n\t\t\t}\n\t\t\toutput.push(input.charCodeAt(j));\n\t\t}\n\n\t\t// Main decoding loop: start just after the last delimiter if any basic code\n\t\t// points were copied; start at the beginning otherwise.\n\n\t\tfor (index = basic > 0 ? basic + 1 : 0; index < inputLength; /* no final expression */) {\n\n\t\t\t// `index` is the index of the next character to be consumed.\n\t\t\t// Decode a generalized variable-length integer into `delta`,\n\t\t\t// which gets added to `i`. The overflow checking is easier\n\t\t\t// if we increase `i` as we go, then subtract off its starting\n\t\t\t// value at the end to obtain `delta`.\n\t\t\tfor (oldi = i, w = 1, k = base; /* no condition */; k += base) {\n\n\t\t\t\tif (index >= inputLength) {\n\t\t\t\t\terror('invalid-input');\n\t\t\t\t}\n\n\t\t\t\tdigit = basicToDigit(input.charCodeAt(index++));\n\n\t\t\t\tif (digit >= base || digit > floor((maxInt - i) / w)) {\n\t\t\t\t\terror('overflow');\n\t\t\t\t}\n\n\t\t\t\ti += digit * w;\n\t\t\t\tt = k <= bias ? tMin : (k >= bias + tMax ? tMax : k - bias);\n\n\t\t\t\tif (digit < t) {\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\n\t\t\t\tbaseMinusT = base - t;\n\t\t\t\tif (w > floor(maxInt / baseMinusT)) {\n\t\t\t\t\terror('overflow');\n\t\t\t\t}\n\n\t\t\t\tw *= baseMinusT;\n\n\t\t\t}\n\n\t\t\tout = output.length + 1;\n\t\t\tbias = adapt(i - oldi, out, oldi == 0);\n\n\t\t\t// `i` was supposed to wrap around from `out` to `0`,\n\t\t\t// incrementing `n` each time, so we'll fix that now:\n\t\t\tif (floor(i / out) > maxInt - n) {\n\t\t\t\terror('overflow');\n\t\t\t}\n\n\t\t\tn += floor(i / out);\n\t\t\ti %= out;\n\n\t\t\t// Insert `n` at position `i` of the output\n\t\t\toutput.splice(i++, 0, n);\n\n\t\t}\n\n\t\treturn ucs2encode(output);\n\t}\n\n\t/**\n\t * Converts a string of Unicode symbols (e.g. a domain name label) to a\n\t * Punycode string of ASCII-only symbols.\n\t * @memberOf punycode\n\t * @param {String} input The string of Unicode symbols.\n\t * @returns {String} The resulting Punycode string of ASCII-only symbols.\n\t */\n\tfunction encode(input) {\n\t\tvar n,\n\t\t delta,\n\t\t handledCPCount,\n\t\t basicLength,\n\t\t bias,\n\t\t j,\n\t\t m,\n\t\t q,\n\t\t k,\n\t\t t,\n\t\t currentValue,\n\t\t output = [],\n\t\t /** `inputLength` will hold the number of code points in `input`. */\n\t\t inputLength,\n\t\t /** Cached calculation results */\n\t\t handledCPCountPlusOne,\n\t\t baseMinusT,\n\t\t qMinusT;\n\n\t\t// Convert the input in UCS-2 to Unicode\n\t\tinput = ucs2decode(input);\n\n\t\t// Cache the length\n\t\tinputLength = input.length;\n\n\t\t// Initialize the state\n\t\tn = initialN;\n\t\tdelta = 0;\n\t\tbias = initialBias;\n\n\t\t// Handle the basic code points\n\t\tfor (j = 0; j < inputLength; ++j) {\n\t\t\tcurrentValue = input[j];\n\t\t\tif (currentValue < 0x80) {\n\t\t\t\toutput.push(stringFromCharCode(currentValue));\n\t\t\t}\n\t\t}\n\n\t\thandledCPCount = basicLength = output.length;\n\n\t\t// `handledCPCount` is the number of code points that have been handled;\n\t\t// `basicLength` is the number of basic code points.\n\n\t\t// Finish the basic string - if it is not empty - with a delimiter\n\t\tif (basicLength) {\n\t\t\toutput.push(delimiter);\n\t\t}\n\n\t\t// Main encoding loop:\n\t\twhile (handledCPCount < inputLength) {\n\n\t\t\t// All non-basic code points < n have been handled already. Find the next\n\t\t\t// larger one:\n\t\t\tfor (m = maxInt, j = 0; j < inputLength; ++j) {\n\t\t\t\tcurrentValue = input[j];\n\t\t\t\tif (currentValue >= n && currentValue < m) {\n\t\t\t\t\tm = currentValue;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// Increase `delta` enough to advance the decoder's <n,i> state to <m,0>,\n\t\t\t// but guard against overflow\n\t\t\thandledCPCountPlusOne = handledCPCount + 1;\n\t\t\tif (m - n > floor((maxInt - delta) / handledCPCountPlusOne)) {\n\t\t\t\terror('overflow');\n\t\t\t}\n\n\t\t\tdelta += (m - n) * handledCPCountPlusOne;\n\t\t\tn = m;\n\n\t\t\tfor (j = 0; j < inputLength; ++j) {\n\t\t\t\tcurrentValue = input[j];\n\n\t\t\t\tif (currentValue < n && ++delta > maxInt) {\n\t\t\t\t\terror('overflow');\n\t\t\t\t}\n\n\t\t\t\tif (currentValue == n) {\n\t\t\t\t\t// Represent delta as a generalized variable-length integer\n\t\t\t\t\tfor (q = delta, k = base; /* no condition */; k += base) {\n\t\t\t\t\t\tt = k <= bias ? tMin : (k >= bias + tMax ? tMax : k - bias);\n\t\t\t\t\t\tif (q < t) {\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tqMinusT = q - t;\n\t\t\t\t\t\tbaseMinusT = base - t;\n\t\t\t\t\t\toutput.push(\n\t\t\t\t\t\t\tstringFromCharCode(digitToBasic(t + qMinusT % baseMinusT, 0))\n\t\t\t\t\t\t);\n\t\t\t\t\t\tq = floor(qMinusT / baseMinusT);\n\t\t\t\t\t}\n\n\t\t\t\t\toutput.push(stringFromCharCode(digitToBasic(q, 0)));\n\t\t\t\t\tbias = adapt(delta, handledCPCountPlusOne, handledCPCount == basicLength);\n\t\t\t\t\tdelta = 0;\n\t\t\t\t\t++handledCPCount;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t++delta;\n\t\t\t++n;\n\n\t\t}\n\t\treturn output.join('');\n\t}\n\n\t/**\n\t * Converts a Punycode string representing a domain name or an email address\n\t * to Unicode. Only the Punycoded parts of the input will be converted, i.e.\n\t * it doesn't matter if you call it on a string that has already been\n\t * converted to Unicode.\n\t * @memberOf punycode\n\t * @param {String} input The Punycoded domain name or email address to\n\t * convert to Unicode.\n\t * @returns {String} The Unicode representation of the given Punycode\n\t * string.\n\t */\n\tfunction toUnicode(input) {\n\t\treturn mapDomain(input, function(string) {\n\t\t\treturn regexPunycode.test(string)\n\t\t\t\t? decode(string.slice(4).toLowerCase())\n\t\t\t\t: string;\n\t\t});\n\t}\n\n\t/**\n\t * Converts a Unicode string representing a domain name or an email address to\n\t * Punycode. Only the non-ASCII parts of the domain name will be converted,\n\t * i.e. it doesn't matter if you call it with a domain that's already in\n\t * ASCII.\n\t * @memberOf punycode\n\t * @param {String} input The domain name or email address to convert, as a\n\t * Unicode string.\n\t * @returns {String} The Punycode representation of the given domain name or\n\t * email address.\n\t */\n\tfunction toASCII(input) {\n\t\treturn mapDomain(input, function(string) {\n\t\t\treturn regexNonASCII.test(string)\n\t\t\t\t? 'xn--' + encode(string)\n\t\t\t\t: string;\n\t\t});\n\t}\n\n\t/*--------------------------------------------------------------------------*/\n\n\t/** Define the public API */\n\tpunycode = {\n\t\t/**\n\t\t * A string representing the current Punycode.js version number.\n\t\t * @memberOf punycode\n\t\t * @type String\n\t\t */\n\t\t'version': '1.4.1',\n\t\t/**\n\t\t * An object of methods to convert from JavaScript's internal character\n\t\t * representation (UCS-2) to Unicode code points, and back.\n\t\t * @see <https://mathiasbynens.be/notes/javascript-encoding>\n\t\t * @memberOf punycode\n\t\t * @type Object\n\t\t */\n\t\t'ucs2': {\n\t\t\t'decode': ucs2decode,\n\t\t\t'encode': ucs2encode\n\t\t},\n\t\t'decode': decode,\n\t\t'encode': encode,\n\t\t'toASCII': toASCII,\n\t\t'toUnicode': toUnicode\n\t};\n\n\t/** Expose `punycode` */\n\t// Some AMD build optimizers, like r.js, check for specific condition patterns\n\t// like the following:\n\tif (\n\t\ttypeof define == 'function' &&\n\t\ttypeof define.amd == 'object' &&\n\t\tdefine.amd\n\t) {\n\t\tdefine('punycode', function() {\n\t\t\treturn punycode;\n\t\t});\n\t} else if (freeExports && freeModule) {\n\t\tif (module.exports == freeExports) {\n\t\t\t// in Node.js, io.js, or RingoJS v0.8.0+\n\t\t\tfreeModule.exports = punycode;\n\t\t} else {\n\t\t\t// in Narwhal or RingoJS v0.7.0-\n\t\t\tfor (key in punycode) {\n\t\t\t\tpunycode.hasOwnProperty(key) && (freeExports[key] = punycode[key]);\n\t\t\t}\n\t\t}\n\t} else {\n\t\t// in Rhino or a web browser\n\t\troot.punycode = punycode;\n\t}\n\n}(this));\n\n\n\n// WEBPACK FOOTER //\n// ./node_modules/node-libs-browser/node_modules/punycode/punycode.js"],"sourceRoot":""} |