{"version":3,"file":"glamorous.umd.js","sources":["../src/should-forward-property.js","../src/dom-elements.js","../src/react-compat.js","../node_modules/brcast/dist/brcast.es.js","../src/theme-provider.js","../src/index.js","../src/umd-entry.js"],"sourcesContent":["/* eslint max-lines:0, func-style:0 */\n// copied from:\n// https://github.com/styled-components/styled-components/tree/\n// 956e8210b6277860c89404f9cb08735f97eaa7e1/src/utils/validAttr.js\n/* Trying to avoid the unknown-prop errors on glamorous components\n by filtering by React's attribute whitelist.\n */\n\n/* Logic copied from ReactDOMUnknownPropertyHook */\nconst reactProps = [\n  'children',\n  'dangerouslySetInnerHTML',\n  'key',\n  'ref',\n  'autoFocus',\n  'defaultValue',\n  'valueLink',\n  'defaultChecked',\n  'checkedLink',\n  'innerHTML',\n  'suppressContentEditableWarning',\n  'onFocusIn',\n  'onFocusOut',\n  'className',\n\n  /* List copied from https://facebook.github.io/react/docs/events.html */\n  'onCopy',\n  'onCut',\n  'onPaste',\n  'onCompositionEnd',\n  'onCompositionStart',\n  'onCompositionUpdate',\n  'onKeyDown',\n  'onKeyPress',\n  'onKeyUp',\n  'onFocus',\n  'onBlur',\n  'onChange',\n  'onInput',\n  'onSubmit',\n  'onClick',\n  'onContextMenu',\n  'onDoubleClick',\n  'onDrag',\n  'onDragEnd',\n  'onDragEnter',\n  'onDragExit',\n  'onDragLeave',\n  'onDragOver',\n  'onDragStart',\n  'onDrop',\n  'onMouseDown',\n  'onMouseEnter',\n  'onMouseLeave',\n  'onMouseMove',\n  'onMouseOut',\n  'onMouseOver',\n  'onMouseUp',\n  'onSelect',\n  'onTouchCancel',\n  'onTouchEnd',\n  'onTouchMove',\n  'onTouchStart',\n  'onScroll',\n  'onWheel',\n  'onAbort',\n  'onCanPlay',\n  'onCanPlayThrough',\n  'onDurationChange',\n  'onEmptied',\n  'onEncrypted',\n  'onEnded',\n  'onError',\n  'onLoadedData',\n  'onLoadedMetadata',\n  'onLoadStart',\n  'onPause',\n  'onPlay',\n  'onPlaying',\n  'onProgress',\n  'onRateChange',\n  'onSeeked',\n  'onSeeking',\n  'onStalled',\n  'onSuspend',\n  'onTimeUpdate',\n  'onVolumeChange',\n  'onWaiting',\n  'onLoad',\n  'onAnimationStart',\n  'onAnimationEnd',\n  'onAnimationIteration',\n  'onTransitionEnd',\n\n  'onCopyCapture',\n  'onCutCapture',\n  'onPasteCapture',\n  'onCompositionEndCapture',\n  'onCompositionStartCapture',\n  'onCompositionUpdateCapture',\n  'onKeyDownCapture',\n  'onKeyPressCapture',\n  'onKeyUpCapture',\n  'onFocusCapture',\n  'onBlurCapture',\n  'onChangeCapture',\n  'onInputCapture',\n  'onSubmitCapture',\n  'onClickCapture',\n  'onContextMenuCapture',\n  'onDoubleClickCapture',\n  'onDragCapture',\n  'onDragEndCapture',\n  'onDragEnterCapture',\n  'onDragExitCapture',\n  'onDragLeaveCapture',\n  'onDragOverCapture',\n  'onDragStartCapture',\n  'onDropCapture',\n  'onMouseDownCapture',\n  'onMouseEnterCapture',\n  'onMouseLeaveCapture',\n  'onMouseMoveCapture',\n  'onMouseOutCapture',\n  'onMouseOverCapture',\n  'onMouseUpCapture',\n  'onSelectCapture',\n  'onTouchCancelCapture',\n  'onTouchEndCapture',\n  'onTouchMoveCapture',\n  'onTouchStartCapture',\n  'onScrollCapture',\n  'onWheelCapture',\n  'onAbortCapture',\n  'onCanPlayCapture',\n  'onCanPlayThroughCapture',\n  'onDurationChangeCapture',\n  'onEmptiedCapture',\n  'onEncryptedCapture',\n  'onEndedCapture',\n  'onErrorCapture',\n  'onLoadedDataCapture',\n  'onLoadedMetadataCapture',\n  'onLoadStartCapture',\n  'onPauseCapture',\n  'onPlayCapture',\n  'onPlayingCapture',\n  'onProgressCapture',\n  'onRateChangeCapture',\n  'onSeekedCapture',\n  'onSeekingCapture',\n  'onStalledCapture',\n  'onSuspendCapture',\n  'onTimeUpdateCapture',\n  'onVolumeChangeCapture',\n  'onWaitingCapture',\n  'onLoadCapture',\n  'onAnimationStartCapture',\n  'onAnimationEndCapture',\n  'onAnimationIterationCapture',\n  'onTransitionEndCapture',\n]\n\n/* From HTMLDOMPropertyConfig */\nconst htmlProps = [\n  /**\n   * Standard Properties\n   */\n  'accept',\n  'acceptCharset',\n  'accessKey',\n  'action',\n  'allowFullScreen',\n  'allowTransparency',\n  'alt',\n  // specifies target context for links with `preload` type\n  'as',\n  'async',\n  'autoComplete',\n  // autoFocus is polyfilled/normalized by AutoFocusUtils\n  '// autoFocus',\n  'autoPlay',\n  'capture',\n  'cellPadding',\n  'cellSpacing',\n  'charSet',\n  'challenge',\n  'checked',\n  'cite',\n  'classID',\n  'className',\n  'cols',\n  'colSpan',\n  'content',\n  'contentEditable',\n  'contextMenu',\n  'controls',\n  'coords',\n  'crossOrigin',\n  'data', // For `<object />` acts as `src`.\n  'dateTime',\n  'default',\n  'defer',\n  'dir',\n  'disabled',\n  'download',\n  'draggable',\n  'encType',\n  'form',\n  'formAction',\n  'formEncType',\n  'formMethod',\n  'formNoValidate',\n  'formTarget',\n  'frameBorder',\n  'headers',\n  'height',\n  'hidden',\n  'high',\n  'href',\n  'hrefLang',\n  'htmlFor',\n  'httpEquiv',\n  'icon',\n  'id',\n  'inputMode',\n  'integrity',\n  'is',\n  'keyParams',\n  'keyType',\n  'kind',\n  'label',\n  'lang',\n  'list',\n  'loop',\n  'low',\n  'manifest',\n  'marginHeight',\n  'marginWidth',\n  'max',\n  'maxLength',\n  'media',\n  'mediaGroup',\n  'method',\n  'min',\n  'minLength',\n  // Caution; `option.selected` is not updated if `select.multiple` is\n  // disabled with `removeAttribute`.\n  'multiple',\n  'muted',\n  'name',\n  'nonce',\n  'noValidate',\n  'open',\n  'optimum',\n  'pattern',\n  'placeholder',\n  'playsInline',\n  'poster',\n  'preload',\n  'profile',\n  'radioGroup',\n  'readOnly',\n  'referrerPolicy',\n  'rel',\n  'required',\n  'reversed',\n  'role',\n  'rows',\n  'rowSpan',\n  'sandbox',\n  'scope',\n  'scoped',\n  'scrolling',\n  'seamless',\n  'selected',\n  'shape',\n  'size',\n  'sizes',\n  'span',\n  'spellCheck',\n  'src',\n  'srcDoc',\n  'srcLang',\n  'srcSet',\n  'start',\n  'step',\n  'style',\n  'summary',\n  'tabIndex',\n  'target',\n  'title',\n  // Setting .type throws on non-<input> tags\n  'type',\n  'useMap',\n  'value',\n  'width',\n  'wmode',\n  'wrap',\n\n  /**\n   * RDFa Properties\n   */\n  'about',\n  'datatype',\n  'inlist',\n  'prefix',\n  // property is also supported for OpenGraph in meta tags.\n  'property',\n  'resource',\n  'typeof',\n  'vocab',\n\n  /**\n   * Non-standard Properties\n   */\n  // autoCapitalize and autoCorrect are supported in Mobile Safari for\n  // keyboard hints.\n  'autoCapitalize',\n  'autoCorrect',\n  // autoSave allows WebKit/Blink to persist values of\n  // input fields on page reloads\n  'autoSave',\n  // color is for Safari mask-icon link\n  'color',\n  // itemProp, itemScope, itemType are for\n  // Microdata support. See http://schema.org/docs/gs.html\n  'itemProp',\n  'itemScope',\n  'itemType',\n  // itemID and itemRef are for Microdata support as well but\n  // only specified in the WHATWG spec document. See\n  // https://html.spec.whatwg.org/multipage/microdata.html#microdata-dom-api\n  'itemID',\n  'itemRef',\n  // results show looking glass icon and recent searches on input\n  // search fields in WebKit/Blink\n  'results',\n  // IE-only attribute that specifies security restrictions on an iframe\n  // as an alternative to the sandbox attribute on IE<10\n  'security',\n  // IE-only attribute that controls focus behavior\n  'unselectable',\n]\n\nconst svgProps = [\n  'accentHeight',\n  'accumulate',\n  'additive',\n  'alignmentBaseline',\n  'allowReorder',\n  'alphabetic',\n  'amplitude',\n  'arabicForm',\n  'ascent',\n  'attributeName',\n  'attributeType',\n  'autoReverse',\n  'azimuth',\n  'baseFrequency',\n  'baseProfile',\n  'baselineShift',\n  'bbox',\n  'begin',\n  'bias',\n  'by',\n  'calcMode',\n  'capHeight',\n  'clip',\n  'clipPath',\n  'clipRule',\n  'clipPathUnits',\n  'colorInterpolation',\n  'colorInterpolationFilters',\n  'colorProfile',\n  'colorRendering',\n  'contentScriptType',\n  'contentStyleType',\n  'cursor',\n  'cx',\n  'cy',\n  'd',\n  'decelerate',\n  'descent',\n  'diffuseConstant',\n  'direction',\n  'display',\n  'divisor',\n  'dominantBaseline',\n  'dur',\n  'dx',\n  'dy',\n  'edgeMode',\n  'elevation',\n  'enableBackground',\n  'end',\n  'exponent',\n  'externalResourcesRequired',\n  'fill',\n  'fillOpacity',\n  'fillRule',\n  'filter',\n  'filterRes',\n  'filterUnits',\n  'floodColor',\n  'floodOpacity',\n  'focusable',\n  'fontFamily',\n  'fontSize',\n  'fontSizeAdjust',\n  'fontStretch',\n  'fontStyle',\n  'fontVariant',\n  'fontWeight',\n  'format',\n  'from',\n  'fx',\n  'fy',\n  'g1',\n  'g2',\n  'glyphName',\n  'glyphOrientationHorizontal',\n  'glyphOrientationVertical',\n  'glyphRef',\n  'gradientTransform',\n  'gradientUnits',\n  'hanging',\n  'horizAdvX',\n  'horizOriginX',\n  'ideographic',\n  'imageRendering',\n  'in',\n  'in2',\n  'intercept',\n  'k',\n  'k1',\n  'k2',\n  'k3',\n  'k4',\n  'kernelMatrix',\n  'kernelUnitLength',\n  'kerning',\n  'keyPoints',\n  'keySplines',\n  'keyTimes',\n  'lengthAdjust',\n  'letterSpacing',\n  'lightingColor',\n  'limitingConeAngle',\n  'local',\n  'markerEnd',\n  'markerMid',\n  'markerStart',\n  'markerHeight',\n  'markerUnits',\n  'markerWidth',\n  'mask',\n  'maskContentUnits',\n  'maskUnits',\n  'mathematical',\n  'mode',\n  'numOctaves',\n  'offset',\n  'opacity',\n  'operator',\n  'order',\n  'orient',\n  'orientation',\n  'origin',\n  'overflow',\n  'overlinePosition',\n  'overlineThickness',\n  'paintOrder',\n  'panose1',\n  'pathLength',\n  'patternContentUnits',\n  'patternTransform',\n  'patternUnits',\n  'pointerEvents',\n  'points',\n  'pointsAtX',\n  'pointsAtY',\n  'pointsAtZ',\n  'preserveAlpha',\n  'preserveAspectRatio',\n  'primitiveUnits',\n  'r',\n  'radius',\n  'refX',\n  'refY',\n  'renderingIntent',\n  'repeatCount',\n  'repeatDur',\n  'requiredExtensions',\n  'requiredFeatures',\n  'restart',\n  'result',\n  'rotate',\n  'rx',\n  'ry',\n  'scale',\n  'seed',\n  'shapeRendering',\n  'slope',\n  'spacing',\n  'specularConstant',\n  'specularExponent',\n  'speed',\n  'spreadMethod',\n  'startOffset',\n  'stdDeviation',\n  'stemh',\n  'stemv',\n  'stitchTiles',\n  'stopColor',\n  'stopOpacity',\n  'strikethroughPosition',\n  'strikethroughThickness',\n  'string',\n  'stroke',\n  'strokeDasharray',\n  'strokeDashoffset',\n  'strokeLinecap',\n  'strokeLinejoin',\n  'strokeMiterlimit',\n  'strokeOpacity',\n  'strokeWidth',\n  'surfaceScale',\n  'systemLanguage',\n  'tableValues',\n  'targetX',\n  'targetY',\n  'textAnchor',\n  'textDecoration',\n  'textRendering',\n  'textLength',\n  'to',\n  'transform',\n  'u1',\n  'u2',\n  'underlinePosition',\n  'underlineThickness',\n  'unicode',\n  'unicodeBidi',\n  'unicodeRange',\n  'unitsPerEm',\n  'vAlphabetic',\n  'vHanging',\n  'vIdeographic',\n  'vMathematical',\n  'values',\n  'vectorEffect',\n  'version',\n  'vertAdvY',\n  'vertOriginX',\n  'vertOriginY',\n  'viewBox',\n  'viewTarget',\n  'visibility',\n  'widths',\n  'wordSpacing',\n  'writingMode',\n  'x',\n  'xHeight',\n  'x1',\n  'x2',\n  'xChannelSelector',\n  'xlinkActuate',\n  'xlinkArcrole',\n  'xlinkHref',\n  'xlinkRole',\n  'xlinkShow',\n  'xlinkTitle',\n  'xlinkType',\n  'xmlBase',\n  'xmlns',\n  'xmlnsXlink',\n  'xmlLang',\n  'xmlSpace',\n  'y',\n  'y1',\n  'y2',\n  'yChannelSelector',\n  'z',\n  'zoomAndPan',\n]\n\n// these are valid attributes that have the\n// same name as CSS properties, and is used\n// for css overrides API\nconst cssProps = ['color', 'height', 'width']\n\n/* From DOMProperty */\n// eslint-disable-next-line max-len\nconst ATTRIBUTE_NAME_START_CHAR = ':A-Z_a-z\\\\u00C0-\\\\u00D6\\\\u00D8-\\\\u00F6\\\\u00F8-\\\\u02FF\\\\u0370-\\\\u037D\\\\u037F-\\\\u1FFF\\\\u200C-\\\\u200D\\\\u2070-\\\\u218F\\\\u2C00-\\\\u2FEF\\\\u3001-\\\\uD7FF\\\\uF900-\\\\uFDCF\\\\uFDF0-\\\\uFFFD'\n// eslint-disable-next-line max-len\nconst ATTRIBUTE_NAME_CHAR = `${ATTRIBUTE_NAME_START_CHAR}\\\\-.0-9\\\\u00B7\\\\u0300-\\\\u036F\\\\u203F-\\\\u2040`\nconst isCustomAttribute = RegExp.prototype.test.bind(\n  new RegExp(`^(data|aria)-[${ATTRIBUTE_NAME_CHAR}]*$`),\n)\n\nconst hasItem = (list, name) => list.indexOf(name) !== -1\nconst isHtmlProp = name => hasItem(htmlProps, name)\nconst isCssProp = name => hasItem(cssProps, name)\nconst isSvgProp = (tagName, name) =>\n  tagName === 'svg' && hasItem(svgProps, name)\nconst isReactProp = name => hasItem(reactProps, name)\n\n// eslint-disable-next-line complexity\nconst shouldForwardProperty = (tagName, name) =>\n  typeof tagName !== 'string' ||\n  ((isHtmlProp(name) ||\n    isSvgProp(tagName, name) ||\n    isCustomAttribute(name.toLowerCase()) ||\n    isReactProp(name)) &&\n    (tagName === 'svg' || !isCssProp(name)))\n\nexport default shouldForwardProperty\n","import htmlTagNames from 'html-tag-names'\nimport svgTagNames from 'svg-tag-names'\n\nconst domElements = htmlTagNames\n  .concat(svgTagNames)\n  .filter((tag, index, array) => array.indexOf(tag) === index)\n\nexport default domElements\n","/* eslint import/no-mutable-exports:0, import/prefer-default-export:0 */\nimport React from 'react'\n\nlet PropTypes\n\n/* istanbul ignore next */\nif (React.version.slice(0, 4) === '15.5') {\n  /* istanbul ignore next */\n  try {\n    PropTypes = require('prop-types')\n    /* istanbul ignore next */\n  } catch (error) {\n    // ignore\n  }\n}\n/* istanbul ignore next */\nPropTypes = PropTypes || React.PropTypes\n\nexport {PropTypes}\n","/** Mitt: Tiny (~200b) functional event emitter / pubsub.\n *  @name mitt\n *  @returns {Mitt}\n */\nfunction mitt(all) {\n\tall = all || Object.create(null);\n\n\treturn {\n\t\t/**\n\t\t * Register an event handler for the given type.\n\t\t *\n\t\t * @param  {String} type    Type of event to listen for, or `\"*\"` for all events\n\t\t * @param  {Function} handler Function to call in response to given event\n\t\t * @return {Object} the `mitt` instance for chaining\n\t\t * @memberOf mitt\n\t\t */\n\t\ton: function on(type, handler) {\n\t\t\t(all[type] || (all[type] = [])).push(handler);\n\t\t},\n\n\t\t/**\n\t\t * Remove an event handler for the given type.\n\t\t *\n\t\t * @param  {String} type    Type of event to unregister `handler` from, or `\"*\"`\n\t\t * @param  {Function} handler Handler function to remove\n\t\t * @return {Object} the `mitt` instance for chaining\n\t\t * @memberOf mitt\n\t\t */\n\t\toff: function off(type, handler) {\n\t\t\tvar e = all[type] || (all[type] = []);\n\t\t\te.splice(e.indexOf(handler) >>> 0, 1);\n\t\t},\n\n\t\t/**\n\t\t * Invoke all handlers for the given type.\n\t\t * If present, `\"*\"` handlers are invoked prior to type-matched handlers.\n\t\t *\n\t\t * @param {String} type  The event type to invoke\n\t\t * @param {Any} [evt]  Any value (object is recommended and powerful), passed to each handler\n\t\t * @return {Object} the `mitt` instance for chaining\n\t\t * @memberof mitt\n\t\t */\n\t\temit: function emit(type, evt) {\n\t\t\t(all[type] || []).map(function (handler) { handler(evt); });\n\t\t\t(all['*'] || []).map(function (handler) { handler(type, evt); });\n\t\t}\n\t};\n}\n\nfunction createBroadcast (initialState, channel) {\n  if ( channel === void 0 ) channel = '__brcast__';\n\n  var emitter = mitt();\n  var currentState = initialState;\n\n  var getState = function () { return currentState; };\n\n  var setState = function (state) {\n    currentState = state;\n    emitter.emit(channel, currentState);\n  };\n\n  var subscribe = function (listener) {\n    emitter.on(channel, listener);\n\n    return function unsubscribe () {\n      emitter.off(channel, listener);\n    }\n  };\n\n  return {getState: getState, setState: setState, subscribe: subscribe}\n}\n\nexport default createBroadcast;\n","import React, {Component} from 'react'\nimport brcast from 'brcast'\nimport {PropTypes} from './react-compat'\n\nexport const CHANNEL = '__glamorous__'\n\n/**\n * This is a component which will provide a theme to the entire tree\n * via context and event listener\n * (because pure components block context updates)\n * inspired by the styled-components implementation\n * https://github.com/styled-components/styled-components\n * @param {Object} theme the theme object..\n */\nclass ThemeProvider extends Component {\n  broadcast = brcast(this.props.theme)\n\n  // create theme, by merging with outer theme, if present\n  getTheme(passedTheme) {\n    const theme = passedTheme || this.props.theme\n    return {...this.outerTheme, ...theme}\n  }\n\n  getChildContext() {\n    return {\n      [CHANNEL]: this.broadcast,\n    }\n  }\n\n  setOuterTheme = theme => {\n    this.outerTheme = theme\n  }\n\n  componentDidMount() {\n    // create a new subscription for keeping track of outer theme, if present\n    if (this.context[CHANNEL]) {\n      this.unsubscribe = this.context[CHANNEL].subscribe(this.setOuterTheme)\n    }\n  }\n\n  componentWillMount() {\n    // set broadcast state by merging outer theme with own\n    if (this.context[CHANNEL]) {\n      this.setOuterTheme(this.context[CHANNEL].getState())\n      this.broadcast.setState(this.getTheme())\n    }\n  }\n\n  componentWillReceiveProps(nextProps) {\n    if (this.props.theme !== nextProps.theme) {\n      this.broadcast.setState(this.getTheme(nextProps.theme))\n    }\n  }\n\n  componentWillUnmount() {\n    this.unsubscribe && this.unsubscribe()\n  }\n\n  render() {\n    return this.props.children ?\n      React.Children.only(this.props.children) :\n      null\n  }\n}\n\nThemeProvider.childContextTypes = {\n  [CHANNEL]: PropTypes.object.isRequired,\n}\n\nThemeProvider.contextTypes = {\n  [CHANNEL]: PropTypes.object,\n}\n\nThemeProvider.propTypes = {\n  theme: PropTypes.object.isRequired,\n  children: PropTypes.node,\n}\n\nexport default ThemeProvider\n","/*\n * This is a relatively small abstraction that's ripe for open sourcing.\n * Documentation is in the README.md\n */\nimport React, {Component} from 'react'\nimport {css, styleSheet} from 'glamor'\nimport shouldForwardProperty from './should-forward-property'\nimport domElements from './dom-elements'\nimport {PropTypes} from './react-compat'\nimport ThemeProvider, {CHANNEL} from './theme-provider'\n\n/**\n * This is the main export and the function that people\n * interact with most directly.\n *\n * It accepts a component which can be a string or a React Component and returns\n * a \"glamorousComponentFactory\"\n * @param {String|ReactComponent} comp the component to render\n * @param {Object} options helpful info for the GlamorousComponents\n * @return {Function} the glamorousComponentFactory\n */\nfunction glamorous(comp, {rootEl, displayName} = {}) {\n  return glamorousComponentFactory\n\n  /**\n   * This returns a React Component that renders the comp (closure)\n   * with a className based on the given glamor styles object(s)\n   * @param {...Object|Function} styles the styles to create with glamor.\n   *   If any of these are functions, they are invoked with the component\n   *   props and the return value is used.\n   * @return {ReactComponent} the ReactComponent function\n   */\n  function glamorousComponentFactory(...styles) {\n    /**\n     * This is a component which will render the comp (closure)\n     * with the glamorous styles (closure). Forwards any valid\n     * props to the underlying component.\n     * @param {Object} theme the theme object\n     * @return {ReactElement} React.createElement\n     */\n    class GlamorousComponent extends Component {\n      state = {theme: null}\n      setTheme = theme => this.setState({theme})\n\n      componentWillMount() {\n        const {theme} = this.props\n        if (this.context[CHANNEL]) {\n          // if a theme is provided via props, it takes precedence over context\n          this.setTheme(theme ? theme : this.context[CHANNEL].getState())\n        } else {\n          this.setTheme(theme || {})\n        }\n      }\n\n      componentWillReceiveProps(nextProps) {\n        if (this.props.theme !== nextProps.theme) {\n          this.setTheme(nextProps.theme)\n        }\n      }\n\n      componentDidMount() {\n        if (this.context[CHANNEL] && !this.props.theme) {\n          // subscribe to future theme changes\n          this.unsubscribe = this.context[CHANNEL].subscribe(this.setTheme)\n        }\n      }\n\n      componentWillUnmount() {\n        // cleanup subscription\n        this.unsubscribe && this.unsubscribe()\n      }\n\n      render() {\n        const {className, ...rest} = this.props\n        const {toForward, cssOverrides} = splitProps(rest, GlamorousComponent)\n        // create className to apply\n        const mappedArgs = GlamorousComponent.styles.map(glamorRules => {\n          if (typeof glamorRules === 'function') {\n            return glamorRules(this.props, {...this.state.theme})\n          }\n          return glamorRules\n        })\n        const {\n          glamorStyles: parentGlamorStyles,\n          glamorlessClassName,\n        } = extractGlamorStyles(className)\n        const glamorClassName = css(\n          ...mappedArgs,\n          ...parentGlamorStyles,\n          cssOverrides,\n        ).toString()\n        const fullClassName = joinClasses(glamorlessClassName, glamorClassName)\n\n        return React.createElement(GlamorousComponent.comp, {\n          className: fullClassName,\n          ...toForward,\n        })\n      }\n    }\n\n    GlamorousComponent.propTypes = {\n      className: PropTypes.string,\n      cssOverrides: PropTypes.object,\n      theme: PropTypes.object,\n    }\n\n    GlamorousComponent.contextTypes = {\n      [CHANNEL]: PropTypes.object,\n    }\n\n    Object.assign(\n      GlamorousComponent,\n      getGlamorousComponentMetadata({comp, styles, rootEl, displayName}),\n    )\n    return GlamorousComponent\n  }\n}\n\nfunction getGlamorousComponentMetadata({comp, styles, rootEl, displayName}) {\n  const componentsComp = comp.comp ? comp.comp : comp\n  return {\n    // join styles together (for anyone doing: glamorous(glamorous.a({}), {}))\n    styles: comp.styles ? comp.styles.concat(styles) : styles,\n    // keep track of the ultimate rootEl to render (we never\n    // actually render anything but\n    // the base component, even when people wrap a glamorous\n    // component in glamorous\n    comp: componentsComp,\n    rootEl: rootEl || componentsComp,\n    // set the displayName to something that's slightly more\n    // helpful than `GlamorousComponent` :)\n    displayName: displayName || `glamorous(${getDisplayName(comp)})`,\n  }\n}\n\nfunction getDisplayName(comp) {\n  return typeof comp === 'string' ?\n    comp :\n    comp.displayName || comp.name || 'unknown'\n}\n\n/*\n * This creates a glamorousComponentFactory for every DOM element so you can\n * simply do:\n * const GreenButton = glamorous.button({\n *   backgroundColor: 'green',\n *   padding: 20,\n * })\n * <GreenButton>Click Me!</GreenButton>\n */\nObject.assign(\n  glamorous,\n  domElements.reduce(\n    (getters, tag) => {\n      getters[tag] = glamorous(tag)\n      return getters\n    },\n    {},\n  ),\n)\n\n/*\n * This creates a glamorous component for each DOM element so you can\n * simply do:\n * <glamorous.Div\n *   color=\"green\"\n *   marginLeft={20}\n * >\n *   I'm green!\n * </glamorous.Div>\n */\nObject.assign(\n  glamorous,\n  domElements.reduce(\n    (comps, tag) => {\n      const capitalTag = capitalize(tag)\n      comps[capitalTag] = glamorous[tag]()\n      comps[capitalTag].displayName = `glamorous.${capitalTag}`\n      comps[capitalTag].propsAreCssOverrides = true\n      return comps\n    },\n    {},\n  ),\n)\n\n/**\n * This function takes a className string and gets all the\n * associated glamor styles. It's used to merge glamor styles\n * from a className to make sure that specificity is not\n * a problem when passing a className to a component.\n * @param {String} [className=''] the className string\n * @return {Object} { glamorStyles, glamorlessClassName }\n *   - glamorStyles is an array of all the glamor styles objects\n *   - glamorlessClassName is the rest of the className string\n *     without the glamor classNames\n */\nfunction extractGlamorStyles(className = '') {\n  return className.toString().split(' ').reduce((groups, name) => {\n    if (name.indexOf('css-') === 0) {\n      const id = name.slice('css-'.length)\n      const {style} = styleSheet.registered[id]\n      groups.glamorStyles.push(style)\n    } else {\n      groups.glamorlessClassName = joinClasses(\n        groups.glamorlessClassName,\n        name,\n      )\n    }\n    return groups\n  }, {glamorlessClassName: '', glamorStyles: []})\n}\n\nfunction splitProps(\n  {css: cssOverrides = {}, ...rest},\n  {propsAreCssOverrides, rootEl},\n) {\n  const returnValue = {toForward: {}, cssOverrides: {}}\n  if (!propsAreCssOverrides) {\n    returnValue.cssOverrides = cssOverrides\n    if (typeof rootEl !== 'string') {\n      // if it's not a string, then we can forward everything\n      // (because it's a component)\n      returnValue.toForward = rest\n      return returnValue\n    }\n  }\n  return Object.keys(rest).reduce(\n    (split, propName) => {\n      if (shouldForwardProperty(rootEl, propName)) {\n        split.toForward[propName] = rest[propName]\n      } else if (propsAreCssOverrides) {\n        split.cssOverrides[propName] = rest[propName]\n      }\n      return split\n    },\n    returnValue,\n  )\n}\n\nfunction capitalize(s) {\n  return s.slice(0, 1).toUpperCase() + s.slice(1)\n}\n\nfunction joinClasses(...classes) {\n  return classes.filter(Boolean).join(' ')\n}\n\nexport default glamorous\nexport {ThemeProvider}\n","import * as glamorousStar from './'\n\nconst glamorous = glamorousStar.default\n\nObject.assign(\n  glamorous,\n  Object.keys(glamorousStar).reduce(\n    (e, prop) => {\n      if (prop !== 'default') {\n        // eslint-disable-next-line import/namespace\n        e[prop] = glamorousStar[prop]\n      }\n      return e\n    },\n    {},\n  ),\n)\n\nexport default glamorous\n"],"names":["reactProps","htmlProps","svgProps","cssProps","ATTRIBUTE_NAME_START_CHAR","ATTRIBUTE_NAME_CHAR","isCustomAttribute","RegExp","prototype","test","bind","hasItem","list","name","indexOf","isHtmlProp","isCssProp","isSvgProp","tagName","isReactProp","shouldForwardProperty","toLowerCase","domElements","htmlTagNames","concat","svgTagNames","filter","tag","index","array","PropTypes","React","version","slice","require","error","CHANNEL","ThemeProvider","broadcast","brcast","props","theme","setOuterTheme","outerTheme","passedTheme","context","unsubscribe","subscribe","getState","setState","getTheme","nextProps","children","Children","only","Component","childContextTypes","object","isRequired","contextTypes","propTypes","node","glamorous","comp","rootEl","displayName","glamorousComponentFactory","styles","GlamorousComponent","state","setTheme","className","rest","splitProps","toForward","cssOverrides","mappedArgs","map","glamorRules","extractGlamorStyles","parentGlamorStyles","glamorStyles","glamorlessClassName","glamorClassName","css","toString","fullClassName","joinClasses","createElement","string","assign","getGlamorousComponentMetadata","componentsComp","getDisplayName","Object","reduce","getters","comps","capitalTag","capitalize","propsAreCssOverrides","split","groups","id","length","style","styleSheet","registered","push","returnValue","keys","propName","s","toUpperCase","classes","Boolean","join","glamorousStar","e","prop"],"mappings":";;;;;;;;AAAA;;;;;;;;;AASA,IAAMA,aAAa,CACjB,UADiB,EAEjB,yBAFiB,EAGjB,KAHiB,EAIjB,KAJiB,EAKjB,WALiB,EAMjB,cANiB,EAOjB,WAPiB,EAQjB,gBARiB,EASjB,aATiB,EAUjB,WAViB,EAWjB,gCAXiB,EAYjB,WAZiB,EAajB,YAbiB,EAcjB,WAdiB;;;AAiBjB,QAjBiB,EAkBjB,OAlBiB,EAmBjB,SAnBiB,EAoBjB,kBApBiB,EAqBjB,oBArBiB,EAsBjB,qBAtBiB,EAuBjB,WAvBiB,EAwBjB,YAxBiB,EAyBjB,SAzBiB,EA0BjB,SA1BiB,EA2BjB,QA3BiB,EA4BjB,UA5BiB,EA6BjB,SA7BiB,EA8BjB,UA9BiB,EA+BjB,SA/BiB,EAgCjB,eAhCiB,EAiCjB,eAjCiB,EAkCjB,QAlCiB,EAmCjB,WAnCiB,EAoCjB,aApCiB,EAqCjB,YArCiB,EAsCjB,aAtCiB,EAuCjB,YAvCiB,EAwCjB,aAxCiB,EAyCjB,QAzCiB,EA0CjB,aA1CiB,EA2CjB,cA3CiB,EA4CjB,cA5CiB,EA6CjB,aA7CiB,EA8CjB,YA9CiB,EA+CjB,aA/CiB,EAgDjB,WAhDiB,EAiDjB,UAjDiB,EAkDjB,eAlDiB,EAmDjB,YAnDiB,EAoDjB,aApDiB,EAqDjB,cArDiB,EAsDjB,UAtDiB,EAuDjB,SAvDiB,EAwDjB,SAxDiB,EAyDjB,WAzDiB,EA0DjB,kBA1DiB,EA2DjB,kBA3DiB,EA4DjB,WA5DiB,EA6DjB,aA7DiB,EA8DjB,SA9DiB,EA+DjB,SA/DiB,EAgEjB,cAhEiB,EAiEjB,kBAjEiB,EAkEjB,aAlEiB,EAmEjB,SAnEiB,EAoEjB,QApEiB,EAqEjB,WArEiB,EAsEjB,YAtEiB,EAuEjB,cAvEiB,EAwEjB,UAxEiB,EAyEjB,WAzEiB,EA0EjB,WA1EiB,EA2EjB,WA3EiB,EA4EjB,cA5EiB,EA6EjB,gBA7EiB,EA8EjB,WA9EiB,EA+EjB,QA/EiB,EAgFjB,kBAhFiB,EAiFjB,gBAjFiB,EAkFjB,sBAlFiB,EAmFjB,iBAnFiB,EAqFjB,eArFiB,EAsFjB,cAtFiB,EAuFjB,gBAvFiB,EAwFjB,yBAxFiB,EAyFjB,2BAzFiB,EA0FjB,4BA1FiB,EA2FjB,kBA3FiB,EA4FjB,mBA5FiB,EA6FjB,gBA7FiB,EA8FjB,gBA9FiB,EA+FjB,eA/FiB,EAgGjB,iBAhGiB,EAiGjB,gBAjGiB,EAkGjB,iBAlGiB,EAmGjB,gBAnGiB,EAoGjB,sBApGiB,EAqGjB,sBArGiB,EAsGjB,eAtGiB,EAuGjB,kBAvGiB,EAwGjB,oBAxGiB,EAyGjB,mBAzGiB,EA0GjB,oBA1GiB,EA2GjB,mBA3GiB,EA4GjB,oBA5GiB,EA6GjB,eA7GiB,EA8GjB,oBA9GiB,EA+GjB,qBA/GiB,EAgHjB,qBAhHiB,EAiHjB,oBAjHiB,EAkHjB,mBAlHiB,EAmHjB,oBAnHiB,EAoHjB,kBApHiB,EAqHjB,iBArHiB,EAsHjB,sBAtHiB,EAuHjB,mBAvHiB,EAwHjB,oBAxHiB,EAyHjB,qBAzHiB,EA0HjB,iBA1HiB,EA2HjB,gBA3HiB,EA4HjB,gBA5HiB,EA6HjB,kBA7HiB,EA8HjB,yBA9HiB,EA+HjB,yBA/HiB,EAgIjB,kBAhIiB,EAiIjB,oBAjIiB,EAkIjB,gBAlIiB,EAmIjB,gBAnIiB,EAoIjB,qBApIiB,EAqIjB,yBArIiB,EAsIjB,oBAtIiB,EAuIjB,gBAvIiB,EAwIjB,eAxIiB,EAyIjB,kBAzIiB,EA0IjB,mBA1IiB,EA2IjB,qBA3IiB,EA4IjB,iBA5IiB,EA6IjB,kBA7IiB,EA8IjB,kBA9IiB,EA+IjB,kBA/IiB,EAgJjB,qBAhJiB,EAiJjB,uBAjJiB,EAkJjB,kBAlJiB,EAmJjB,eAnJiB,EAoJjB,yBApJiB,EAqJjB,uBArJiB,EAsJjB,6BAtJiB,EAuJjB,wBAvJiB,CAAnB;;;AA2JA,IAAMC,YAAY;;;;AAIhB,QAJgB,EAKhB,eALgB,EAMhB,WANgB,EAOhB,QAPgB,EAQhB,iBARgB,EAShB,mBATgB,EAUhB,KAVgB;;AAYhB,IAZgB,EAahB,OAbgB,EAchB,cAdgB;;AAgBhB,cAhBgB,EAiBhB,UAjBgB,EAkBhB,SAlBgB,EAmBhB,aAnBgB,EAoBhB,aApBgB,EAqBhB,SArBgB,EAsBhB,WAtBgB,EAuBhB,SAvBgB,EAwBhB,MAxBgB,EAyBhB,SAzBgB,EA0BhB,WA1BgB,EA2BhB,MA3BgB,EA4BhB,SA5BgB,EA6BhB,SA7BgB,EA8BhB,iBA9BgB,EA+BhB,aA/BgB,EAgChB,UAhCgB,EAiChB,QAjCgB,EAkChB,aAlCgB,EAmChB,MAnCgB;AAoChB,UApCgB,EAqChB,SArCgB,EAsChB,OAtCgB,EAuChB,KAvCgB,EAwChB,UAxCgB,EAyChB,UAzCgB,EA0ChB,WA1CgB,EA2ChB,SA3CgB,EA4ChB,MA5CgB,EA6ChB,YA7CgB,EA8ChB,aA9CgB,EA+ChB,YA/CgB,EAgDhB,gBAhDgB,EAiDhB,YAjDgB,EAkDhB,aAlDgB,EAmDhB,SAnDgB,EAoDhB,QApDgB,EAqDhB,QArDgB,EAsDhB,MAtDgB,EAuDhB,MAvDgB,EAwDhB,UAxDgB,EAyDhB,SAzDgB,EA0DhB,WA1DgB,EA2DhB,MA3DgB,EA4DhB,IA5DgB,EA6DhB,WA7DgB,EA8DhB,WA9DgB,EA+DhB,IA/DgB,EAgEhB,WAhEgB,EAiEhB,SAjEgB,EAkEhB,MAlEgB,EAmEhB,OAnEgB,EAoEhB,MApEgB,EAqEhB,MArEgB,EAsEhB,MAtEgB,EAuEhB,KAvEgB,EAwEhB,UAxEgB,EAyEhB,cAzEgB,EA0EhB,aA1EgB,EA2EhB,KA3EgB,EA4EhB,WA5EgB,EA6EhB,OA7EgB,EA8EhB,YA9EgB,EA+EhB,QA/EgB,EAgFhB,KAhFgB,EAiFhB,WAjFgB;;;AAoFhB,UApFgB,EAqFhB,OArFgB,EAsFhB,MAtFgB,EAuFhB,OAvFgB,EAwFhB,YAxFgB,EAyFhB,MAzFgB,EA0FhB,SA1FgB,EA2FhB,SA3FgB,EA4FhB,aA5FgB,EA6FhB,aA7FgB,EA8FhB,QA9FgB,EA+FhB,SA/FgB,EAgGhB,SAhGgB,EAiGhB,YAjGgB,EAkGhB,UAlGgB,EAmGhB,gBAnGgB,EAoGhB,KApGgB,EAqGhB,UArGgB,EAsGhB,UAtGgB,EAuGhB,MAvGgB,EAwGhB,MAxGgB,EAyGhB,SAzGgB,EA0GhB,SA1GgB,EA2GhB,OA3GgB,EA4GhB,QA5GgB,EA6GhB,WA7GgB,EA8GhB,UA9GgB,EA+GhB,UA/GgB,EAgHhB,OAhHgB,EAiHhB,MAjHgB,EAkHhB,OAlHgB,EAmHhB,MAnHgB,EAoHhB,YApHgB,EAqHhB,KArHgB,EAsHhB,QAtHgB,EAuHhB,SAvHgB,EAwHhB,QAxHgB,EAyHhB,OAzHgB,EA0HhB,MA1HgB,EA2HhB,OA3HgB,EA4HhB,SA5HgB,EA6HhB,UA7HgB,EA8HhB,QA9HgB,EA+HhB,OA/HgB;;AAiIhB,MAjIgB,EAkIhB,QAlIgB,EAmIhB,OAnIgB,EAoIhB,OApIgB,EAqIhB,OArIgB,EAsIhB,MAtIgB;;;;;AA2IhB,OA3IgB,EA4IhB,UA5IgB,EA6IhB,QA7IgB,EA8IhB,QA9IgB;;AAgJhB,UAhJgB,EAiJhB,UAjJgB,EAkJhB,QAlJgB,EAmJhB,OAnJgB;;;;;;;AA0JhB,gBA1JgB,EA2JhB,aA3JgB;;;AA8JhB,UA9JgB;;AAgKhB,OAhKgB;;;AAmKhB,UAnKgB,EAoKhB,WApKgB,EAqKhB,UArKgB;;;;AAyKhB,QAzKgB,EA0KhB,SA1KgB;;;AA6KhB,SA7KgB;;;AAgLhB,UAhLgB;;AAkLhB,cAlLgB,CAAlB;;AAqLA,IAAMC,WAAW,CACf,cADe,EAEf,YAFe,EAGf,UAHe,EAIf,mBAJe,EAKf,cALe,EAMf,YANe,EAOf,WAPe,EAQf,YARe,EASf,QATe,EAUf,eAVe,EAWf,eAXe,EAYf,aAZe,EAaf,SAbe,EAcf,eAde,EAef,aAfe,EAgBf,eAhBe,EAiBf,MAjBe,EAkBf,OAlBe,EAmBf,MAnBe,EAoBf,IApBe,EAqBf,UArBe,EAsBf,WAtBe,EAuBf,MAvBe,EAwBf,UAxBe,EAyBf,UAzBe,EA0Bf,eA1Be,EA2Bf,oBA3Be,EA4Bf,2BA5Be,EA6Bf,cA7Be,EA8Bf,gBA9Be,EA+Bf,mBA/Be,EAgCf,kBAhCe,EAiCf,QAjCe,EAkCf,IAlCe,EAmCf,IAnCe,EAoCf,GApCe,EAqCf,YArCe,EAsCf,SAtCe,EAuCf,iBAvCe,EAwCf,WAxCe,EAyCf,SAzCe,EA0Cf,SA1Ce,EA2Cf,kBA3Ce,EA4Cf,KA5Ce,EA6Cf,IA7Ce,EA8Cf,IA9Ce,EA+Cf,UA/Ce,EAgDf,WAhDe,EAiDf,kBAjDe,EAkDf,KAlDe,EAmDf,UAnDe,EAoDf,2BApDe,EAqDf,MArDe,EAsDf,aAtDe,EAuDf,UAvDe,EAwDf,QAxDe,EAyDf,WAzDe,EA0Df,aA1De,EA2Df,YA3De,EA4Df,cA5De,EA6Df,WA7De,EA8Df,YA9De,EA+Df,UA/De,EAgEf,gBAhEe,EAiEf,aAjEe,EAkEf,WAlEe,EAmEf,aAnEe,EAoEf,YApEe,EAqEf,QArEe,EAsEf,MAtEe,EAuEf,IAvEe,EAwEf,IAxEe,EAyEf,IAzEe,EA0Ef,IA1Ee,EA2Ef,WA3Ee,EA4Ef,4BA5Ee,EA6Ef,0BA7Ee,EA8Ef,UA9Ee,EA+Ef,mBA/Ee,EAgFf,eAhFe,EAiFf,SAjFe,EAkFf,WAlFe,EAmFf,cAnFe,EAoFf,aApFe,EAqFf,gBArFe,EAsFf,IAtFe,EAuFf,KAvFe,EAwFf,WAxFe,EAyFf,GAzFe,EA0Ff,IA1Fe,EA2Ff,IA3Fe,EA4Ff,IA5Fe,EA6Ff,IA7Fe,EA8Ff,cA9Fe,EA+Ff,kBA/Fe,EAgGf,SAhGe,EAiGf,WAjGe,EAkGf,YAlGe,EAmGf,UAnGe,EAoGf,cApGe,EAqGf,eArGe,EAsGf,eAtGe,EAuGf,mBAvGe,EAwGf,OAxGe,EAyGf,WAzGe,EA0Gf,WA1Ge,EA2Gf,aA3Ge,EA4Gf,cA5Ge,EA6Gf,aA7Ge,EA8Gf,aA9Ge,EA+Gf,MA/Ge,EAgHf,kBAhHe,EAiHf,WAjHe,EAkHf,cAlHe,EAmHf,MAnHe,EAoHf,YApHe,EAqHf,QArHe,EAsHf,SAtHe,EAuHf,UAvHe,EAwHf,OAxHe,EAyHf,QAzHe,EA0Hf,aA1He,EA2Hf,QA3He,EA4Hf,UA5He,EA6Hf,kBA7He,EA8Hf,mBA9He,EA+Hf,YA/He,EAgIf,SAhIe,EAiIf,YAjIe,EAkIf,qBAlIe,EAmIf,kBAnIe,EAoIf,cApIe,EAqIf,eArIe,EAsIf,QAtIe,EAuIf,WAvIe,EAwIf,WAxIe,EAyIf,WAzIe,EA0If,eA1Ie,EA2If,qBA3Ie,EA4If,gBA5Ie,EA6If,GA7Ie,EA8If,QA9Ie,EA+If,MA/Ie,EAgJf,MAhJe,EAiJf,iBAjJe,EAkJf,aAlJe,EAmJf,WAnJe,EAoJf,oBApJe,EAqJf,kBArJe,EAsJf,SAtJe,EAuJf,QAvJe,EAwJf,QAxJe,EAyJf,IAzJe,EA0Jf,IA1Je,EA2Jf,OA3Je,EA4Jf,MA5Je,EA6Jf,gBA7Je,EA8Jf,OA9Je,EA+Jf,SA/Je,EAgKf,kBAhKe,EAiKf,kBAjKe,EAkKf,OAlKe,EAmKf,cAnKe,EAoKf,aApKe,EAqKf,cArKe,EAsKf,OAtKe,EAuKf,OAvKe,EAwKf,aAxKe,EAyKf,WAzKe,EA0Kf,aA1Ke,EA2Kf,uBA3Ke,EA4Kf,wBA5Ke,EA6Kf,QA7Ke,EA8Kf,QA9Ke,EA+Kf,iBA/Ke,EAgLf,kBAhLe,EAiLf,eAjLe,EAkLf,gBAlLe,EAmLf,kBAnLe,EAoLf,eApLe,EAqLf,aArLe,EAsLf,cAtLe,EAuLf,gBAvLe,EAwLf,aAxLe,EAyLf,SAzLe,EA0Lf,SA1Le,EA2Lf,YA3Le,EA4Lf,gBA5Le,EA6Lf,eA7Le,EA8Lf,YA9Le,EA+Lf,IA/Le,EAgMf,WAhMe,EAiMf,IAjMe,EAkMf,IAlMe,EAmMf,mBAnMe,EAoMf,oBApMe,EAqMf,SArMe,EAsMf,aAtMe,EAuMf,cAvMe,EAwMf,YAxMe,EAyMf,aAzMe,EA0Mf,UA1Me,EA2Mf,cA3Me,EA4Mf,eA5Me,EA6Mf,QA7Me,EA8Mf,cA9Me,EA+Mf,SA/Me,EAgNf,UAhNe,EAiNf,aAjNe,EAkNf,aAlNe,EAmNf,SAnNe,EAoNf,YApNe,EAqNf,YArNe,EAsNf,QAtNe,EAuNf,aAvNe,EAwNf,aAxNe,EAyNf,GAzNe,EA0Nf,SA1Ne,EA2Nf,IA3Ne,EA4Nf,IA5Ne,EA6Nf,kBA7Ne,EA8Nf,cA9Ne,EA+Nf,cA/Ne,EAgOf,WAhOe,EAiOf,WAjOe,EAkOf,WAlOe,EAmOf,YAnOe,EAoOf,WApOe,EAqOf,SArOe,EAsOf,OAtOe,EAuOf,YAvOe,EAwOf,SAxOe,EAyOf,UAzOe,EA0Of,GA1Oe,EA2Of,IA3Oe,EA4Of,IA5Oe,EA6Of,kBA7Oe,EA8Of,GA9Oe,EA+Of,YA/Oe,CAAjB;;;;;AAqPA,IAAMC,WAAW,CAAC,OAAD,EAAU,QAAV,EAAoB,OAApB,CAAjB;;;;AAIA,IAAMC,4BAA4B,+KAAlC;;AAEA,IAAMC,sBAAyBD,yBAAzB,iDAAN;AACA,IAAME,oBAAoBC,OAAOC,SAAP,CAAiBC,IAAjB,CAAsBC,IAAtB,CACxB,IAAIH,MAAJ,oBAA4BF,mBAA5B,SADwB,CAA1B;;AAIA,IAAMM,UAAU,SAAVA,OAAU,CAACC,IAAD,EAAOC,IAAP;SAAgBD,KAAKE,OAAL,CAAaD,IAAb,MAAuB,CAAC,CAAxC;CAAhB;AACA,IAAME,aAAa,SAAbA,UAAa;SAAQJ,QAAQV,SAAR,EAAmBY,IAAnB,CAAR;CAAnB;AACA,IAAMG,YAAY,SAAZA,SAAY;SAAQL,QAAQR,QAAR,EAAkBU,IAAlB,CAAR;CAAlB;AACA,IAAMI,YAAY,SAAZA,SAAY,CAACC,OAAD,EAAUL,IAAV;SAChBK,YAAY,KAAZ,IAAqBP,QAAQT,QAAR,EAAkBW,IAAlB,CADL;CAAlB;AAEA,IAAMM,cAAc,SAAdA,WAAc;SAAQR,QAAQX,UAAR,EAAoBa,IAApB,CAAR;CAApB;;;AAGA,IAAMO,wBAAwB,SAAxBA,qBAAwB,CAACF,OAAD,EAAUL,IAAV;SAC5B,OAAOK,OAAP,KAAmB,QAAnB,IACC,CAACH,WAAWF,IAAX,KACAI,UAAUC,OAAV,EAAmBL,IAAnB,CADA,IAEAP,kBAAkBO,KAAKQ,WAAL,EAAlB,CAFA,IAGAF,YAAYN,IAAZ,CAHD,MAIEK,YAAY,KAAZ,IAAqB,CAACF,UAAUH,IAAV,CAJxB,CAF2B;CAA9B,CAQA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACtmBA,IAAMS,cAAcC,aACjBC,MADiB,CACVC,WADU,EAEjBC,MAFiB,CAEV,UAACC,GAAD,EAAMC,KAAN,EAAaC,KAAb;SAAuBA,MAAMf,OAAN,CAAca,GAAd,MAAuBC,KAA9C;CAFU,CAApB,CAIA;;ACPA;AACA,AAEA,IAAIE,kBAAJ;;;AAGA,IAAIC,eAAMC,OAAN,CAAcC,KAAd,CAAoB,CAApB,EAAuB,CAAvB,MAA8B,MAAlC,EAA0C;;MAEpC;gBACUC,QAAQ,YAAR,CAAZ;;GADF,CAGE,OAAOC,KAAP,EAAc;;;;;AAKlBL,YAAYA,aAAaC,eAAMD,SAA/B,CAEA;;AClBA;;;;AAIA,SAAS,IAAI,CAAC,GAAG,EAAE;CAClB,GAAG,GAAG,GAAG,IAAI,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;;CAEjC,OAAO;;;;;;;;;EASN,EAAE,EAAE,SAAS,EAAE,CAAC,IAAI,EAAE,OAAO,EAAE;GAC9B,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,GAAG,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC;GAC9C;;;;;;;;;;EAUD,GAAG,EAAE,SAAS,GAAG,CAAC,IAAI,EAAE,OAAO,EAAE;GAChC,IAAI,CAAC,GAAG,GAAG,CAAC,IAAI,CAAC,KAAK,GAAG,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC;GACtC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC;GACtC;;;;;;;;;;;EAWD,IAAI,EAAE,SAAS,IAAI,CAAC,IAAI,EAAE,GAAG,EAAE;GAC9B,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,EAAE,EAAE,GAAG,CAAC,UAAU,OAAO,EAAE,EAAE,OAAO,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC;GAC5D,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,EAAE,EAAE,GAAG,CAAC,UAAU,OAAO,EAAE,EAAE,OAAO,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC;GACjE;EACD,CAAC;CACF;;AAED,SAAS,eAAe,EAAE,YAAY,EAAE,OAAO,EAAE;EAC/C,KAAK,OAAO,KAAK,KAAK,CAAC,GAAG,OAAO,GAAG,YAAY,CAAC;;EAEjD,IAAI,OAAO,GAAG,IAAI,EAAE,CAAC;EACrB,IAAI,YAAY,GAAG,YAAY,CAAC;;EAEhC,IAAI,QAAQ,GAAG,YAAY,EAAE,OAAO,YAAY,CAAC,EAAE,CAAC;;EAEpD,IAAI,QAAQ,GAAG,UAAU,KAAK,EAAE;IAC9B,YAAY,GAAG,KAAK,CAAC;IACrB,OAAO,CAAC,IAAI,CAAC,OAAO,EAAE,YAAY,CAAC,CAAC;GACrC,CAAC;;EAEF,IAAI,SAAS,GAAG,UAAU,QAAQ,EAAE;IAClC,OAAO,CAAC,EAAE,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC;;IAE9B,OAAO,SAAS,WAAW,IAAI;MAC7B,OAAO,CAAC,GAAG,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC;KAChC;GACF,CAAC;;EAEF,OAAO,CAAC,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,SAAS,EAAE,SAAS,CAAC;CACtE,AAED,AAA+B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACrExB,IAAMM,UAAU,eAAhB;;;;;;;;;;;IAUDC;;;;;;;;;;;;;;mMACJC,YAAYC,gBAAO,MAAKC,KAAL,CAAWC,KAAlB,SAcZC,gBAAgB,iBAAS;YAClBC,UAAL,GAAkBF,KAAlB;;;;;;;;;6BAZOG,aAAa;UACdH,QAAQG,eAAe,KAAKJ,KAAL,CAAWC,KAAxC;0BACW,KAAKE,UAAhB,EAA+BF,KAA/B;;;;sCAGgB;gCAEbL,OADH,EACa,KAAKE,SADlB;;;;wCASkB;;UAEd,KAAKO,OAAL,CAAaT,OAAb,CAAJ,EAA2B;aACpBU,WAAL,GAAmB,KAAKD,OAAL,CAAaT,OAAb,EAAsBW,SAAtB,CAAgC,KAAKL,aAArC,CAAnB;;;;;yCAIiB;;UAEf,KAAKG,OAAL,CAAaT,OAAb,CAAJ,EAA2B;aACpBM,aAAL,CAAmB,KAAKG,OAAL,CAAaT,OAAb,EAAsBY,QAAtB,EAAnB;aACKV,SAAL,CAAeW,QAAf,CAAwB,KAAKC,QAAL,EAAxB;;;;;8CAIsBC,WAAW;UAC/B,KAAKX,KAAL,CAAWC,KAAX,KAAqBU,UAAUV,KAAnC,EAA0C;aACnCH,SAAL,CAAeW,QAAf,CAAwB,KAAKC,QAAL,CAAcC,UAAUV,KAAxB,CAAxB;;;;;2CAImB;WAChBK,WAAL,IAAoB,KAAKA,WAAL,EAApB;;;;6BAGO;aACA,KAAKN,KAAL,CAAWY,QAAX,GACLrB,eAAMsB,QAAN,CAAeC,IAAf,CAAoB,KAAKd,KAAL,CAAWY,QAA/B,CADK,GAEL,IAFF;;;;EA7CwBG;;AAmD5BlB,cAAcmB,iBAAd,sBACGpB,OADH,EACaN,UAAU2B,MAAV,CAAiBC,UAD9B;;AAIArB,cAAcsB,YAAd,sBACGvB,OADH,EACaN,UAAU2B,MADvB;;AAIApB,cAAcuB,SAAd,GAA0B;SACjB9B,UAAU2B,MAAV,CAAiBC,UADA;YAEd5B,UAAU+B;CAFtB,CAKA;;AC9EA;;;;AAIA,AACA,AACA,AACA,AACA,AACA,AAEA;;;;;;;;;;AAUA,SAASC,WAAT,CAAmBC,IAAnB,EAAqD;iFAAJ,EAAI;MAA3BC,MAA2B,QAA3BA,MAA2B;MAAnBC,WAAmB,QAAnBA,WAAmB;;SAC5CC,yBAAP;;;;;;;;;;WAUSA,yBAAT,GAA8C;sCAARC,MAAQ;YAAA;;;;;;;;;;QAQtCC,kBARsC;;;;;;;;;;;;;;mNAS1CC,KAT0C,GASlC,EAAC5B,OAAO,IAAR,EATkC,QAU1C6B,QAV0C,GAU/B;iBAAS,MAAKrB,QAAL,CAAc,EAACR,YAAD,EAAd,CAAT;SAV+B;;;;;6CAYrB;cACZA,KADY,GACH,KAAKD,KADF,CACZC,KADY;;cAEf,KAAKI,OAAL,CAAaT,OAAb,CAAJ,EAA2B;;iBAEpBkC,QAAL,CAAc7B,QAAQA,KAAR,GAAgB,KAAKI,OAAL,CAAaT,OAAb,EAAsBY,QAAtB,EAA9B;WAFF,MAGO;iBACAsB,QAAL,CAAc7B,SAAS,EAAvB;;;;;kDAIsBU,SAtBgB,EAsBL;cAC/B,KAAKX,KAAL,CAAWC,KAAX,KAAqBU,UAAUV,KAAnC,EAA0C;iBACnC6B,QAAL,CAAcnB,UAAUV,KAAxB;;;;;4CAIgB;cACd,KAAKI,OAAL,CAAaT,OAAb,KAAyB,CAAC,KAAKI,KAAL,CAAWC,KAAzC,EAAgD;;iBAEzCK,WAAL,GAAmB,KAAKD,OAAL,CAAaT,OAAb,EAAsBW,SAAtB,CAAgC,KAAKuB,QAArC,CAAnB;;;;;+CAImB;;eAEhBxB,WAAL,IAAoB,KAAKA,WAAL,EAApB;;;;iCAGO;;;uBACsB,KAAKN,KAD3B;cACA+B,SADA,UACAA,SADA;cACcC,IADd;;4BAE2BC,WAAWD,IAAX,EAAiBJ,kBAAjB,CAF3B;cAEAM,SAFA,eAEAA,SAFA;cAEWC,YAFX,eAEWA,YAFX;;;;cAIDC,aAAaR,mBAAmBD,MAAnB,CAA0BU,GAA1B,CAA8B,uBAAe;gBAC1D,OAAOC,WAAP,KAAuB,UAA3B,EAAuC;qBAC9BA,YAAY,OAAKtC,KAAjB,eAA4B,OAAK6B,KAAL,CAAW5B,KAAvC,EAAP;;mBAEKqC,WAAP;WAJiB,CAAnB;;qCASIC,oBAAoBR,SAApB,CAbG;cAWSS,kBAXT,wBAWLC,YAXK;cAYLC,mBAZK,wBAYLA,mBAZK;;cAcDC,kBAAkBC,8CACnBR,UADmB,2BAEnBI,kBAFmB,IAGtBL,YAHsB,IAItBU,QAJsB,EAAxB;cAKMC,gBAAgBC,YAAYL,mBAAZ,EAAiCC,eAAjC,CAAtB;;iBAEOpD,eAAMyD,aAAN,CAAoBpB,mBAAmBL,IAAvC;uBACMuB;aACRZ,SAFE,EAAP;;;;MArD6BnB,eARW;;uBAoEzBK,SAAnB,GAA+B;iBAClB9B,UAAU2D,MADQ;oBAEf3D,UAAU2B,MAFK;aAGtB3B,UAAU2B;KAHnB;;uBAMmBE,YAAnB,sBACGvB,OADH,EACaN,UAAU2B,MADvB;;WAIOiC,MAAP,CACEtB,kBADF,EAEEuB,8BAA8B,EAAC5B,UAAD,EAAOI,cAAP,EAAeH,cAAf,EAAuBC,wBAAvB,EAA9B,CAFF;WAIOG,kBAAP;;;;AAIJ,SAASuB,6BAAT,QAA4E;MAApC5B,IAAoC,SAApCA,IAAoC;MAA9BI,MAA8B,SAA9BA,MAA8B;MAAtBH,MAAsB,SAAtBA,MAAsB;MAAdC,WAAc,SAAdA,WAAc;;MACpE2B,iBAAiB7B,KAAKA,IAAL,GAAYA,KAAKA,IAAjB,GAAwBA,IAA/C;SACO;;YAEGA,KAAKI,MAAL,GAAcJ,KAAKI,MAAL,CAAY3C,MAAZ,CAAmB2C,MAAnB,CAAd,GAA2CA,MAF9C;;;;;UAOCyB,cAPD;YAQG5B,UAAU4B,cARb;;;iBAWQ3B,8BAA4B4B,eAAe9B,IAAf,CAA5B;GAXf;;;AAeF,SAAS8B,cAAT,CAAwB9B,IAAxB,EAA8B;SACrB,OAAOA,IAAP,KAAgB,QAAhB,GACLA,IADK,GAELA,KAAKE,WAAL,IAAoBF,KAAKlD,IAAzB,IAAiC,SAFnC;;;;;;;;;;;;AAcFiF,OAAOJ,MAAP,CACE5B,WADF,EAEExC,YAAYyE,MAAZ,CACE,UAACC,OAAD,EAAUrE,GAAV,EAAkB;UACRA,GAAR,IAAemC,YAAUnC,GAAV,CAAf;SACOqE,OAAP;CAHJ,EAKE,EALF,CAFF;;;;;;;;;;;;AAqBAF,OAAOJ,MAAP,CACE5B,WADF,EAEExC,YAAYyE,MAAZ,CACE,UAACE,KAAD,EAAQtE,GAAR,EAAgB;MACRuE,aAAaC,WAAWxE,GAAX,CAAnB;QACMuE,UAAN,IAAoBpC,YAAUnC,GAAV,GAApB;QACMuE,UAAN,EAAkBjC,WAAlB,kBAA6CiC,UAA7C;QACMA,UAAN,EAAkBE,oBAAlB,GAAyC,IAAzC;SACOH,KAAP;CANJ,EAQE,EARF,CAFF;;;;;;;;;;;;;AAyBA,SAASlB,mBAAT,GAA6C;MAAhBR,SAAgB,uEAAJ,EAAI;;SACpCA,UAAUc,QAAV,GAAqBgB,KAArB,CAA2B,GAA3B,EAAgCN,MAAhC,CAAuC,UAACO,MAAD,EAASzF,IAAT,EAAkB;QAC1DA,KAAKC,OAAL,CAAa,MAAb,MAAyB,CAA7B,EAAgC;UACxByF,KAAK1F,KAAKoB,KAAL,CAAW,OAAOuE,MAAlB,CAAX;UACOC,KAFuB,GAEdC,kBAAWC,UAAX,CAAsBJ,EAAtB,CAFc,CAEvBE,KAFuB;;aAGvBxB,YAAP,CAAoB2B,IAApB,CAAyBH,KAAzB;KAHF,MAIO;aACEvB,mBAAP,GAA6BK,YAC3Be,OAAOpB,mBADoB,EAE3BrE,IAF2B,CAA7B;;WAKKyF,MAAP;GAXK,EAYJ,EAACpB,qBAAqB,EAAtB,EAA0BD,cAAc,EAAxC,EAZI,CAAP;;;AAeF,SAASR,UAAT,eAGE;MADC2B,oBACD,SADCA,oBACD;MADuBpC,MACvB,SADuBA,MACvB;wBAFCoB,GAED;MAFMT,YAEN,6BAFqB,EAErB;MAF4BH,IAE5B;;MACMqC,cAAc,EAACnC,WAAW,EAAZ,EAAgBC,cAAc,EAA9B,EAApB;MACI,CAACyB,oBAAL,EAA2B;gBACbzB,YAAZ,GAA2BA,YAA3B;QACI,OAAOX,MAAP,KAAkB,QAAtB,EAAgC;;;kBAGlBU,SAAZ,GAAwBF,IAAxB;aACOqC,WAAP;;;SAGGf,OAAOgB,IAAP,CAAYtC,IAAZ,EAAkBuB,MAAlB,CACL,UAACM,KAAD,EAAQU,QAAR,EAAqB;QACf3F,sBAAsB4C,MAAtB,EAA8B+C,QAA9B,CAAJ,EAA6C;YACrCrC,SAAN,CAAgBqC,QAAhB,IAA4BvC,KAAKuC,QAAL,CAA5B;KADF,MAEO,IAAIX,oBAAJ,EAA0B;YACzBzB,YAAN,CAAmBoC,QAAnB,IAA+BvC,KAAKuC,QAAL,CAA/B;;WAEKV,KAAP;GAPG,EASLQ,WATK,CAAP;;;AAaF,SAASV,UAAT,CAAoBa,CAApB,EAAuB;SACdA,EAAE/E,KAAF,CAAQ,CAAR,EAAW,CAAX,EAAcgF,WAAd,KAA8BD,EAAE/E,KAAF,CAAQ,CAAR,CAArC;;;AAGF,SAASsD,WAAT,GAAiC;qCAAT2B,OAAS;WAAA;;;SACxBA,QAAQxF,MAAR,CAAeyF,OAAf,EAAwBC,IAAxB,CAA6B,GAA7B,CAAP;;;AAGF,AACA;;;;;;;ACtPA,IAAMtD,YAAYuD,WAAlB;;AAEAvB,OAAOJ,MAAP,CACE5B,SADF,EAEEgC,OAAOgB,IAAP,CAAYO,aAAZ,EAA2BtB,MAA3B,CACE,UAACuB,CAAD,EAAIC,IAAJ,EAAa;MACPA,SAAS,SAAb,EAAwB;;MAEpBA,IAAF,IAAUF,cAAcE,IAAd,CAAV;;SAEKD,CAAP;CANJ,EAQE,EARF,CAFF,EAcA;;;;"}