diff --git a/dist/grapesjs-mjml.min.js b/dist/grapesjs-mjml.min.js index 27e94b2..bdc9b59 100644 --- a/dist/grapesjs-mjml.min.js +++ b/dist/grapesjs-mjml.min.js @@ -1,3010 +1,2 @@ -/*! grapesjs-mjml - 0.1.3 */ -!function(e,n){"object"==typeof exports&&"object"==typeof module?module.exports=n():"function"==typeof define&&define.amd?define([],n):"object"==typeof exports?exports["grapesjs-mjml"]=n():e["grapesjs-mjml"]=n()}("undefined"!=typeof self?self:this,function(){return function(e){function n(r){if(t[r])return t[r].exports;var a=t[r]={i:r,l:!1,exports:{}};return e[r].call(a.exports,a,a.exports,n),a.l=!0,a.exports}var t={};return n.m=e,n.c=t,n.d=function(e,t,r){n.o(e,t)||Object.defineProperty(e,t,{configurable:!1,enumerable:!0,get:r})},n.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return n.d(t,"a",t),t},n.o=function(e,n){return Object.prototype.hasOwnProperty.call(e,n)},n.p="",n(n.s=1)}([function(module,exports,__webpack_require__){!function(e,n){module.exports=n()}(window,function(){return function(e){function n(r){if(t[r])return t[r].exports;var a=t[r]={i:r,l:!1,exports:{}};return e[r].call(a.exports,a,a.exports,n),a.l=!0,a.exports}var t={};return n.m=e,n.c=t,n.d=function(e,t,r){n.o(e,t)||Object.defineProperty(e,t,{enumerable:!0,get:r})},n.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},n.t=function(e,t){if(1&t&&(e=n(e)),8&t)return e;if(4&t&&"object"==typeof e&&e&&e.__esModule)return e;var r=Object.create(null);if(n.r(r),Object.defineProperty(r,"default",{enumerable:!0,value:e}),2&t&&"string"!=typeof e)for(var a in e)n.d(r,a,function(n){return e[n]}.bind(null,a));return r},n.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return n.d(t,"a",t),t},n.o=function(e,n){return Object.prototype.hasOwnProperty.call(e,n)},n.p="",n(n.s=0)}({"./index.js":/*!******************!*\ - !*** ./index.js ***! - \******************/ -/*! exports provided: defaultSkeleton, components, dependencies, registerDependencies, registerComponent, BodyComponent, HeadComponent, default */ -function(module,__webpack_exports__,__webpack_require__){"use strict";eval('__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var mjml_core__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! mjml-core */ "./mjml/packages/mjml-core/src/index.js");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "components", function() { return mjml_core__WEBPACK_IMPORTED_MODULE_0__["components"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "registerComponent", function() { return mjml_core__WEBPACK_IMPORTED_MODULE_0__["registerComponent"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "BodyComponent", function() { return mjml_core__WEBPACK_IMPORTED_MODULE_0__["BodyComponent"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "HeadComponent", function() { return mjml_core__WEBPACK_IMPORTED_MODULE_0__["HeadComponent"]; });\n\n/* harmony import */ var mjml_validator__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! mjml-validator */ "./mjml/packages/mjml-validator/src/index.js");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "dependencies", function() { return mjml_validator__WEBPACK_IMPORTED_MODULE_1__["dependencies"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "registerDependencies", function() { return mjml_validator__WEBPACK_IMPORTED_MODULE_1__["registerDependencies"]; });\n\n/* harmony import */ var mjml_core_helpers_skeleton__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! mjml-core/helpers/skeleton */ "./mjml/packages/mjml-core/src/helpers/skeleton.js");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "defaultSkeleton", function() { return mjml_core_helpers_skeleton__WEBPACK_IMPORTED_MODULE_2__["default"]; });\n\n/* harmony import */ var mjml_social__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! mjml-social */ "./mjml/packages/mjml-social/src/index.js");\n/* harmony import */ var mjml_navbar__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! mjml-navbar */ "./mjml/packages/mjml-navbar/src/index.js");\n/* harmony import */ var mjml_carousel__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! mjml-carousel */ "./mjml/packages/mjml-carousel/src/index.js");\n/* harmony import */ var mjml_accordion__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! mjml-accordion */ "./mjml/packages/mjml-accordion/src/index.js");\n\n\n\n\n\n\n\nObject(mjml_core__WEBPACK_IMPORTED_MODULE_0__["registerComponent"])(__webpack_require__(/*! mjml-body */ "./mjml/packages/mjml-body/src/index.js").default);\nObject(mjml_core__WEBPACK_IMPORTED_MODULE_0__["registerComponent"])(__webpack_require__(/*! mjml-head */ "./mjml/packages/mjml-head/src/index.js").default);\nObject(mjml_core__WEBPACK_IMPORTED_MODULE_0__["registerComponent"])(__webpack_require__(/*! mjml-head-attributes */ "./mjml/packages/mjml-head-attributes/src/index.js").default);\nObject(mjml_core__WEBPACK_IMPORTED_MODULE_0__["registerComponent"])(__webpack_require__(/*! mjml-head-breakpoint */ "./mjml/packages/mjml-head-breakpoint/src/index.js").default);\nObject(mjml_core__WEBPACK_IMPORTED_MODULE_0__["registerComponent"])(__webpack_require__(/*! mjml-head-font */ "./mjml/packages/mjml-head-font/src/index.js").default);\nObject(mjml_core__WEBPACK_IMPORTED_MODULE_0__["registerComponent"])(__webpack_require__(/*! mjml-head-preview */ "./mjml/packages/mjml-head-preview/src/index.js").default);\nObject(mjml_core__WEBPACK_IMPORTED_MODULE_0__["registerComponent"])(__webpack_require__(/*! mjml-head-style */ "./mjml/packages/mjml-head-style/src/index.js").default);\nObject(mjml_core__WEBPACK_IMPORTED_MODULE_0__["registerComponent"])(__webpack_require__(/*! mjml-head-title */ "./mjml/packages/mjml-head-title/src/index.js").default);\nObject(mjml_core__WEBPACK_IMPORTED_MODULE_0__["registerComponent"])(__webpack_require__(/*! mjml-hero */ "./mjml/packages/mjml-hero/src/index.js").default);\nObject(mjml_core__WEBPACK_IMPORTED_MODULE_0__["registerComponent"])(__webpack_require__(/*! mjml-button */ "./mjml/packages/mjml-button/src/index.js").default);\nObject(mjml_core__WEBPACK_IMPORTED_MODULE_0__["registerComponent"])(__webpack_require__(/*! mjml-column */ "./mjml/packages/mjml-column/src/index.js").default);\nObject(mjml_core__WEBPACK_IMPORTED_MODULE_0__["registerComponent"])(__webpack_require__(/*! mjml-divider */ "./mjml/packages/mjml-divider/src/index.js").default);\nObject(mjml_core__WEBPACK_IMPORTED_MODULE_0__["registerComponent"])(__webpack_require__(/*! mjml-group */ "./mjml/packages/mjml-group/src/index.js").default);\nObject(mjml_core__WEBPACK_IMPORTED_MODULE_0__["registerComponent"])(__webpack_require__(/*! mjml-image */ "./mjml/packages/mjml-image/src/index.js").default);\nObject(mjml_core__WEBPACK_IMPORTED_MODULE_0__["registerComponent"])(__webpack_require__(/*! mjml-raw */ "./mjml/packages/mjml-raw/src/index.js").default);\nObject(mjml_core__WEBPACK_IMPORTED_MODULE_0__["registerComponent"])(__webpack_require__(/*! mjml-section */ "./mjml/packages/mjml-section/src/index.js").default);\nObject(mjml_core__WEBPACK_IMPORTED_MODULE_0__["registerComponent"])(__webpack_require__(/*! mjml-spacer */ "./mjml/packages/mjml-spacer/src/index.js").default);\nObject(mjml_core__WEBPACK_IMPORTED_MODULE_0__["registerComponent"])(__webpack_require__(/*! mjml-text */ "./mjml/packages/mjml-text/src/index.js").default);\nObject(mjml_core__WEBPACK_IMPORTED_MODULE_0__["registerComponent"])(__webpack_require__(/*! mjml-table */ "./mjml/packages/mjml-table/src/index.js").default);\nObject(mjml_core__WEBPACK_IMPORTED_MODULE_0__["registerComponent"])(__webpack_require__(/*! mjml-wrapper */ "./mjml/packages/mjml-wrapper/src/index.js").default);\nObject(mjml_core__WEBPACK_IMPORTED_MODULE_0__["registerComponent"])(mjml_social__WEBPACK_IMPORTED_MODULE_3__["Social"]);\nObject(mjml_core__WEBPACK_IMPORTED_MODULE_0__["registerComponent"])(mjml_social__WEBPACK_IMPORTED_MODULE_3__["SocialElement"]);\nObject(mjml_core__WEBPACK_IMPORTED_MODULE_0__["registerComponent"])(mjml_navbar__WEBPACK_IMPORTED_MODULE_4__["Navbar"]);\nObject(mjml_core__WEBPACK_IMPORTED_MODULE_0__["registerComponent"])(mjml_navbar__WEBPACK_IMPORTED_MODULE_4__["NavbarLink"]);\nObject(mjml_core__WEBPACK_IMPORTED_MODULE_0__["registerComponent"])(mjml_accordion__WEBPACK_IMPORTED_MODULE_6__["Accordion"]);\nObject(mjml_core__WEBPACK_IMPORTED_MODULE_0__["registerComponent"])(mjml_accordion__WEBPACK_IMPORTED_MODULE_6__["AccordionElement"]);\nObject(mjml_core__WEBPACK_IMPORTED_MODULE_0__["registerComponent"])(mjml_accordion__WEBPACK_IMPORTED_MODULE_6__["AccordionText"]);\nObject(mjml_core__WEBPACK_IMPORTED_MODULE_0__["registerComponent"])(mjml_accordion__WEBPACK_IMPORTED_MODULE_6__["AccordionTitle"]);\nObject(mjml_core__WEBPACK_IMPORTED_MODULE_0__["registerComponent"])(mjml_carousel__WEBPACK_IMPORTED_MODULE_5__["Carousel"]);\nObject(mjml_core__WEBPACK_IMPORTED_MODULE_0__["registerComponent"])(mjml_carousel__WEBPACK_IMPORTED_MODULE_5__["CarouselImage"]);\nObject(mjml_validator__WEBPACK_IMPORTED_MODULE_1__["registerDependencies"])(__webpack_require__(/*! ./mjml/packages/mjml/src/dependencies */ "./mjml/packages/mjml/src/dependencies.js").default);\n\n/* harmony default export */ __webpack_exports__["default"] = (mjml_core__WEBPACK_IMPORTED_MODULE_0__["default"]);\n\n//# sourceURL=webpack://mjml/./index.js?')},"./mjml/packages/mjml-accordion/src/Accordion.js":/*!*******************************************************!*\ - !*** ./mjml/packages/mjml-accordion/src/Accordion.js ***! - \*******************************************************/ -/*! exports provided: default */ -function(module,__webpack_exports__,__webpack_require__){"use strict";eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"default\", function() { return MjAccordion; });\n/* harmony import */ var mjml_core__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! mjml-core */ \"./mjml/packages/mjml-core/src/index.js\");\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; var ownKeys = Object.keys(source); if (typeof Object.getOwnPropertySymbols === 'function') { ownKeys = ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function (sym) { return Object.getOwnPropertyDescriptor(source, sym).enumerable; })); } ownKeys.forEach(function (key) { _defineProperty(target, key, source[key]); }); } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\n\nclass MjAccordion extends mjml_core__WEBPACK_IMPORTED_MODULE_0__[\"BodyComponent\"] {\n constructor() {\n super(...arguments);\n\n this.headStyle = () => `\n noinput.mj-accordion-checkbox { display:block!important; }\n\n @media yahoo, only screen and (min-width:0) {\n .mj-accordion-element { display:block; }\n input.mj-accordion-checkbox, .mj-accordion-less { display:none!important; }\n input.mj-accordion-checkbox + * .mj-accordion-title { cursor:pointer; touch-action:manipulation; -webkit-user-select:none; -moz-user-select:none; user-select:none; }\n input.mj-accordion-checkbox + * .mj-accordion-content { overflow:hidden; display:none; }\n input.mj-accordion-checkbox + * .mj-accordion-more { display:block!important; }\n input.mj-accordion-checkbox:checked + * .mj-accordion-content { display:block; }\n input.mj-accordion-checkbox:checked + * .mj-accordion-more { display:none!important; }\n input.mj-accordion-checkbox:checked + * .mj-accordion-less { display:block!important; }\n }\n\n @goodbye { @gmail }\n `;\n }\n\n getStyles() {\n return {\n table: {\n width: '100%',\n 'border-collapse': 'collapse',\n border: this.getAttribute('border'),\n 'border-bottom': 'none',\n 'font-family': this.getAttribute('font-family')\n }\n };\n }\n\n render() {\n var childrenAttr = ['border', 'icon-align', 'icon-width', 'icon-height', 'icon-position', 'icon-wrapped-url', 'icon-wrapped-alt', 'icon-unwrapped-url', 'icon-unwrapped-alt'].reduce((res, val) => _objectSpread({}, res, {\n [val]: this.getAttribute(val)\n }), {});\n return `\n \n \n ${this.renderChildren(this.props.children, {\n attributes: childrenAttr\n })}\n \n \n `;\n }\n\n}\nMjAccordion.allowedAttributes = {\n 'container-background-color': 'color',\n border: 'string',\n 'font-family': 'string',\n 'icon-align': 'enum(top,middle,bottom)',\n 'icon-width': 'unit(px,%)',\n 'icon-height': 'unit(px,%)',\n 'icon-wrapped-url': 'string',\n 'icon-wrapped-alt': 'string',\n 'icon-unwrapped-url': 'string',\n 'icon-unwrapped-alt': 'string',\n 'icon-position': 'enum(left,right)',\n 'padding-bottom': 'unit(px,%)',\n 'padding-left': 'unit(px,%)',\n 'padding-right': 'unit(px,%)',\n 'padding-top': 'unit(px,%)',\n padding: 'unit(px,%){1,4}'\n};\nMjAccordion.defaultAttributes = {\n border: '2px solid black',\n 'font-family': 'Ubuntu, Helvetica, Arial, sans-serif',\n 'icon-align': 'middle',\n 'icon-wrapped-url': 'http://i.imgur.com/bIXv1bk.png',\n 'icon-wrapped-alt': '+',\n 'icon-unwrapped-url': 'http://i.imgur.com/w4uTygT.png',\n 'icon-unwrapped-alt': '-',\n 'icon-position': 'right',\n 'icon-height': '32px',\n 'icon-width': '32px',\n padding: '10px 25px'\n};\n\n//# sourceURL=webpack://mjml/./mjml/packages/mjml-accordion/src/Accordion.js?")},"./mjml/packages/mjml-accordion/src/AccordionElement.js":/*!**************************************************************!*\ - !*** ./mjml/packages/mjml-accordion/src/AccordionElement.js ***! - \**************************************************************/ -/*! exports provided: default */ -function(module,__webpack_exports__,__webpack_require__){"use strict";eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"default\", function() { return MjAccordionElement; });\n/* harmony import */ var mjml_core__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! mjml-core */ \"./mjml/packages/mjml-core/src/index.js\");\n/* harmony import */ var lodash__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! lodash */ \"./node_modules/lodash/lodash.js\");\n/* harmony import */ var lodash__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(lodash__WEBPACK_IMPORTED_MODULE_1__);\n/* harmony import */ var mjml_core_lib_helpers_conditionalTag__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! mjml-core/lib/helpers/conditionalTag */ \"./mjml/packages/mjml-core/src/helpers/conditionalTag.js\");\n/* harmony import */ var _AccordionText__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./AccordionText */ \"./mjml/packages/mjml-accordion/src/AccordionText.js\");\n/* harmony import */ var _AccordionTitle__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./AccordionTitle */ \"./mjml/packages/mjml-accordion/src/AccordionTitle.js\");\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; var ownKeys = Object.keys(source); if (typeof Object.getOwnPropertySymbols === 'function') { ownKeys = ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function (sym) { return Object.getOwnPropertyDescriptor(source, sym).enumerable; })); } ownKeys.forEach(function (key) { _defineProperty(target, key, source[key]); }); } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\n\n\n\n\n\nclass MjAccordionElement extends mjml_core__WEBPACK_IMPORTED_MODULE_0__[\"BodyComponent\"] {\n getStyles() {\n return {\n td: {\n padding: '0px',\n 'background-color': this.getAttribute('background-color')\n },\n label: {\n 'font-size': '13px',\n 'font-family': this.getAttribute('font-family')\n },\n input: {\n display: 'none'\n }\n };\n }\n\n handleMissingChildren() {\n var children = this.props.children;\n var childrenAttr = ['border', 'icon-align', 'icon-width', 'icon-height', 'icon-position', 'icon-wrapped-url', 'icon-wrapped-alt', 'icon-unwrapped-url', 'icon-unwrapped-alt'].reduce((res, val) => _objectSpread({}, res, {\n [val]: this.getAttribute(val)\n }), {});\n var result = [];\n\n if (!Object(lodash__WEBPACK_IMPORTED_MODULE_1__[\"find\"])(children, {\n tagName: 'mj-accordion-title'\n })) {\n result.push(new _AccordionTitle__WEBPACK_IMPORTED_MODULE_4__[\"default\"]({\n attributes: childrenAttr,\n context: this.getChildContext()\n }).render());\n }\n\n result.push(this.renderChildren(children, {\n attributes: childrenAttr\n }));\n\n if (!Object(lodash__WEBPACK_IMPORTED_MODULE_1__[\"find\"])(children, {\n tagName: 'mj-accordion-text'\n })) {\n result.push(new _AccordionText__WEBPACK_IMPORTED_MODULE_3__[\"default\"]({\n attributes: childrenAttr,\n context: this.getChildContext()\n }).render());\n }\n\n return result.join('\\n');\n }\n\n render() {\n return `\n \n \n \n ${Object(mjml_core_lib_helpers_conditionalTag__WEBPACK_IMPORTED_MODULE_2__[\"default\"])(`\n \n `, true)}\n
\n ${this.handleMissingChildren()}\n
\n \n \n \n `;\n }\n\n}\nMjAccordionElement.allowedAttributes = {\n 'background-color': 'color',\n 'font-family': 'string',\n 'icon-align': 'enum(top,middle,bottom)',\n 'icon-width': 'unit(px,%)',\n 'icon-height': 'unit(px,%)',\n 'icon-wrapped-url': 'string',\n 'icon-wrapped-alt': 'string',\n 'icon-unwrapped-url': 'string',\n 'icon-unwrapped-alt': 'string',\n 'icon-position': 'enum(left,right)'\n};\nMjAccordionElement.defaultAttributes = {\n title: {\n img: {\n width: '32px',\n height: '32px'\n }\n }\n};\n\n//# sourceURL=webpack://mjml/./mjml/packages/mjml-accordion/src/AccordionElement.js?")},"./mjml/packages/mjml-accordion/src/AccordionText.js":/*!***********************************************************!*\ - !*** ./mjml/packages/mjml-accordion/src/AccordionText.js ***! - \***********************************************************/ -/*! exports provided: default */ -function(module,__webpack_exports__,__webpack_require__){"use strict";eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"default\", function() { return MjAccordionText; });\n/* harmony import */ var mjml_core__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! mjml-core */ \"./mjml/packages/mjml-core/src/index.js\");\n\nclass MjAccordionText extends mjml_core__WEBPACK_IMPORTED_MODULE_0__[\"BodyComponent\"] {\n getStyles() {\n return {\n td: {\n background: this.getAttribute('background-color'),\n 'font-size': this.getAttribute('font-size'),\n 'font-family': this.getAttribute('font-family'),\n color: this.getAttribute('color'),\n 'padding-bottom': this.getAttribute('padding-bottom'),\n 'padding-left': this.getAttribute('padding-left'),\n 'padding-right': this.getAttribute('padding-right'),\n 'padding-top': this.getAttribute('padding-top'),\n padding: this.getAttribute('padding')\n },\n table: {\n width: '100%',\n 'border-bottom': this.getAttribute('border')\n }\n };\n }\n\n renderContent() {\n return `\n \n ${this.getContent()}\n \n `;\n }\n\n render() {\n return `\n \n \n \n \n ${this.renderContent()}\n \n \n \n \n `;\n }\n\n}\nMjAccordionText.endingTag = true;\nMjAccordionText.allowedAttributes = {\n 'background-color': 'color',\n 'font-size': 'unit(px)',\n 'font-family': 'string',\n color: 'color',\n 'padding-bottom': 'unit(px,%)',\n 'padding-left': 'unit(px,%)',\n 'padding-right': 'unit(px,%)',\n 'padding-top': 'unit(px,%)',\n padding: 'unit(px,%){1,4}'\n};\nMjAccordionText.defaultAttributes = {\n 'font-size': '13px',\n padding: '16px'\n};\n\n//# sourceURL=webpack://mjml/./mjml/packages/mjml-accordion/src/AccordionText.js?")},"./mjml/packages/mjml-accordion/src/AccordionTitle.js":/*!************************************************************!*\ - !*** ./mjml/packages/mjml-accordion/src/AccordionTitle.js ***! - \************************************************************/ -/*! exports provided: default */ -function(module,__webpack_exports__,__webpack_require__){"use strict";eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"default\", function() { return MjAccordionTitle; });\n/* harmony import */ var mjml_core__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! mjml-core */ \"./mjml/packages/mjml-core/src/index.js\");\n/* harmony import */ var mjml_core_lib_helpers_conditionalTag__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! mjml-core/lib/helpers/conditionalTag */ \"./mjml/packages/mjml-core/src/helpers/conditionalTag.js\");\n\n\nclass MjAccordionTitle extends mjml_core__WEBPACK_IMPORTED_MODULE_0__[\"BodyComponent\"] {\n getStyles() {\n return {\n td: {\n width: '100%',\n 'background-color': this.getAttribute('background-color'),\n color: this.getAttribute('color'),\n 'font-size': this.getAttribute('font-size'),\n 'font-family': this.getAttribute('font-family'),\n 'padding-bottom': this.getAttribute('padding-bottom'),\n 'padding-left': this.getAttribute('padding-left'),\n 'padding-right': this.getAttribute('padding-right'),\n 'padding-top': this.getAttribute('padding-top'),\n padding: this.getAttribute('padding')\n },\n table: {\n width: '100%',\n 'border-bottom': this.getAttribute('border')\n },\n td2: {\n padding: '16px',\n background: this.getAttribute('background-color'),\n 'vertical-align': this.getAttribute('icon-align')\n },\n img: {\n display: 'none',\n width: this.getAttribute('icon-width'),\n height: this.getAttribute('icon-height')\n }\n };\n }\n\n renderTitle() {\n return `\n \n ${this.getContent()}\n \n `;\n }\n\n renderIcons() {\n return Object(mjml_core_lib_helpers_conditionalTag__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(`\n \n \n \n \n `, true);\n }\n\n render() {\n var contentElements = [this.renderTitle(), this.renderIcons()];\n var content = (this.getAttribute('icon-position') === 'right' ? contentElements : contentElements.reverse()).join('\\n');\n return `\n
\n \n \n \n ${content}\n \n \n \n
\n `;\n }\n\n}\nMjAccordionTitle.endingTag = true;\nMjAccordionTitle.allowedAttributes = {\n 'background-color': 'color',\n color: 'color',\n 'font-size': 'unit(px)',\n 'font-family': 'string',\n 'padding-bottom': 'unit(px,%)',\n 'padding-left': 'unit(px,%)',\n 'padding-right': 'unit(px,%)',\n 'padding-top': 'unit(px,%)',\n padding: 'unit(px,%){1,4}'\n};\nMjAccordionTitle.defaultAttributes = {\n 'font-size': '13px',\n padding: '16px'\n};\n\n//# sourceURL=webpack://mjml/./mjml/packages/mjml-accordion/src/AccordionTitle.js?")},"./mjml/packages/mjml-accordion/src/index.js":/*!***************************************************!*\ - !*** ./mjml/packages/mjml-accordion/src/index.js ***! - \***************************************************/ -/*! exports provided: Accordion, AccordionElement, AccordionText, AccordionTitle */ -function(module,__webpack_exports__,__webpack_require__){"use strict";eval('__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _Accordion__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./Accordion */ "./mjml/packages/mjml-accordion/src/Accordion.js");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "Accordion", function() { return _Accordion__WEBPACK_IMPORTED_MODULE_0__["default"]; });\n\n/* harmony import */ var _AccordionElement__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./AccordionElement */ "./mjml/packages/mjml-accordion/src/AccordionElement.js");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "AccordionElement", function() { return _AccordionElement__WEBPACK_IMPORTED_MODULE_1__["default"]; });\n\n/* harmony import */ var _AccordionText__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./AccordionText */ "./mjml/packages/mjml-accordion/src/AccordionText.js");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "AccordionText", function() { return _AccordionText__WEBPACK_IMPORTED_MODULE_2__["default"]; });\n\n/* harmony import */ var _AccordionTitle__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./AccordionTitle */ "./mjml/packages/mjml-accordion/src/AccordionTitle.js");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "AccordionTitle", function() { return _AccordionTitle__WEBPACK_IMPORTED_MODULE_3__["default"]; });\n\n\n\n\n\n\n\n\n\n\n//# sourceURL=webpack://mjml/./mjml/packages/mjml-accordion/src/index.js?')},"./mjml/packages/mjml-body/src/index.js":/*!**********************************************!*\ - !*** ./mjml/packages/mjml-body/src/index.js ***! - \**********************************************/ -/*! exports provided: default */ -function(module,__webpack_exports__,__webpack_require__){"use strict";eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"default\", function() { return MjBody; });\n/* harmony import */ var mjml_core__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! mjml-core */ \"./mjml/packages/mjml-core/src/index.js\");\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; var ownKeys = Object.keys(source); if (typeof Object.getOwnPropertySymbols === 'function') { ownKeys = ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function (sym) { return Object.getOwnPropertyDescriptor(source, sym).enumerable; })); } ownKeys.forEach(function (key) { _defineProperty(target, key, source[key]); }); } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\n\nclass MjBody extends mjml_core__WEBPACK_IMPORTED_MODULE_0__[\"BodyComponent\"] {\n getChildContext() {\n return _objectSpread({}, this.context, {\n containerWidth: this.getAttribute('width')\n });\n }\n\n getStyles() {\n return {\n div: {\n 'background-color': this.getAttribute('background-color')\n }\n };\n }\n\n render() {\n var setBackgroundColor = this.context.setBackgroundColor;\n setBackgroundColor(this.getAttribute('background-color'));\n return `\n \n ${this.renderChildren()}\n \n `;\n }\n\n}\nMjBody.allowedAttributes = {\n width: 'unit(px,%)',\n 'background-color': 'color'\n};\nMjBody.defaultAttributes = {\n width: '600px'\n};\n\n//# sourceURL=webpack://mjml/./mjml/packages/mjml-body/src/index.js?")},"./mjml/packages/mjml-button/src/index.js":/*!************************************************!*\ - !*** ./mjml/packages/mjml-button/src/index.js ***! - \************************************************/ -/*! exports provided: default */ -function(module,__webpack_exports__,__webpack_require__){"use strict";eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"default\", function() { return MjButton; });\n/* harmony import */ var mjml_core__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! mjml-core */ \"./mjml/packages/mjml-core/src/index.js\");\n\nclass MjButton extends mjml_core__WEBPACK_IMPORTED_MODULE_0__[\"BodyComponent\"] {\n getStyles() {\n return {\n table: {\n 'border-collapse': 'separate',\n width: this.getAttribute('width'),\n 'line-height': '100%'\n },\n td: {\n border: this.getAttribute('border'),\n 'border-bottom': this.getAttribute('border-bottom'),\n 'border-left': this.getAttribute('border-left'),\n 'border-radius': this.getAttribute('border-radius'),\n 'border-right': this.getAttribute('border-right'),\n 'border-top': this.getAttribute('border-top'),\n cursor: 'auto',\n 'font-style': this.getAttribute('font-style'),\n height: this.getAttribute('height'),\n padding: this.getAttribute('inner-padding'),\n 'text-align': this.getAttribute('text-align'),\n background: this.getAttribute('background-color')\n },\n content: {\n background: this.getAttribute('background-color'),\n color: this.getAttribute('color'),\n 'font-family': this.getAttribute('font-family'),\n 'font-size': this.getAttribute('font-size'),\n 'font-style': this.getAttribute('font-style'),\n 'font-weight': this.getAttribute('font-weight'),\n 'line-height': this.getAttribute('line-height'),\n Margin: '0',\n 'text-decoration': this.getAttribute('text-decoration'),\n 'text-transform': this.getAttribute('text-transform')\n }\n };\n }\n\n render() {\n var tag = this.getAttribute('href') ? 'a' : 'p';\n return `\n \n \n \n <${tag}\n ${this.htmlAttributes({\n href: this.getAttribute('href'),\n rel: this.getAttribute('rel'),\n name: this.getAttribute('name'),\n style: 'content',\n target: tag === 'a' ? this.getAttribute('target') : undefined\n })}\n >\n ${this.getContent()}\n \n \n \n \n `;\n }\n\n}\nMjButton.endingTag = true;\nMjButton.allowedAttributes = {\n align: 'enum(left,center,right)',\n 'background-color': 'color',\n 'border-bottom': 'string',\n 'border-left': 'string',\n 'border-radius': 'string',\n 'border-right': 'string',\n 'border-top': 'string',\n border: 'string',\n color: 'color',\n 'container-background-color': 'color',\n 'font-family': 'string',\n 'font-size': 'unit(px)',\n 'font-style': 'string',\n 'font-weight': 'string',\n height: 'unit(px,%)',\n href: 'string',\n name: 'string',\n 'inner-padding': 'unit(px,%)',\n 'line-height': 'unit(px,%)',\n 'padding-bottom': 'unit(px,%)',\n 'padding-left': 'unit(px,%)',\n 'padding-right': 'unit(px,%)',\n 'padding-top': 'unit(px,%)',\n padding: 'unit(px,%){1,4}',\n rel: 'string',\n target: 'string',\n 'text-decoration': 'string',\n 'text-transform': 'string',\n 'vertical-align': 'enum(top,bottom,middle)',\n 'text-align': 'enum(left,right,center)',\n width: 'unit(px,%)'\n};\nMjButton.defaultAttributes = {\n align: 'center',\n 'background-color': '#414141',\n border: 'none',\n 'border-radius': '3px',\n color: '#ffffff',\n 'font-family': 'Ubuntu, Helvetica, Arial, sans-serif',\n 'font-size': '13px',\n 'font-weight': 'normal',\n 'inner-padding': '10px 25px',\n 'line-height': '120%',\n padding: '10px 25px',\n target: '_blank',\n 'text-decoration': 'none',\n 'text-transform': 'none',\n 'vertical-align': 'middle'\n};\n\n//# sourceURL=webpack://mjml/./mjml/packages/mjml-button/src/index.js?")},"./mjml/packages/mjml-carousel/src/Carousel.js":/*!*****************************************************!*\ - !*** ./mjml/packages/mjml-carousel/src/Carousel.js ***! - \*****************************************************/ -/*! exports provided: default */ -function(module,__webpack_exports__,__webpack_require__){"use strict";eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"default\", function() { return MjCarousel; });\n/* harmony import */ var mjml_core__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! mjml-core */ \"./mjml/packages/mjml-core/src/index.js\");\n/* harmony import */ var lodash_range__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! lodash/range */ \"./node_modules/lodash/range.js\");\n/* harmony import */ var lodash_range__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(lodash_range__WEBPACK_IMPORTED_MODULE_1__);\n/* harmony import */ var lodash_repeat__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! lodash/repeat */ \"./node_modules/lodash/repeat.js\");\n/* harmony import */ var lodash_repeat__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(lodash_repeat__WEBPACK_IMPORTED_MODULE_2__);\n/* harmony import */ var lodash_min__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! lodash/min */ \"./node_modules/lodash/min.js\");\n/* harmony import */ var lodash_min__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(lodash_min__WEBPACK_IMPORTED_MODULE_3__);\n/* harmony import */ var lodash_map__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! lodash/map */ \"./node_modules/lodash/map.js\");\n/* harmony import */ var lodash_map__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(lodash_map__WEBPACK_IMPORTED_MODULE_4__);\n/* harmony import */ var crypto__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! crypto */ \"./node_modules/crypto-browserify/index.js\");\n/* harmony import */ var crypto__WEBPACK_IMPORTED_MODULE_5___default = /*#__PURE__*/__webpack_require__.n(crypto__WEBPACK_IMPORTED_MODULE_5__);\n/* harmony import */ var mjml_core_lib_helpers_conditionalTag__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! mjml-core/lib/helpers/conditionalTag */ \"./mjml/packages/mjml-core/src/helpers/conditionalTag.js\");\n\n\n\n\n\n\n\nclass MjCarousel extends mjml_core__WEBPACK_IMPORTED_MODULE_0__[\"BodyComponent\"] {\n constructor() {\n var initialDatas = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n super(initialDatas);\n\n this.componentHeadStyle = () => {\n var length = this.props.children.length;\n var carouselId = this.carouselId;\n if (!length) return '';\n var carouselCss = `\n .mj-carousel {\n -webkit-user-select: none;\n -moz-user-select: none;\n user-select: none;\n }\n\n .mj-carousel-${this.carouselId}-icons-cell {\n display: table-cell !important;\n width: ${this.getAttribute('icon-width')} !important;\n }\n\n .mj-carousel-radio,\n .mj-carousel-next,\n .mj-carousel-previous {\n display: none !important;\n }\n\n .mj-carousel-thumbnail,\n .mj-carousel-next,\n .mj-carousel-previous {\n touch-action: manipulation;\n }\n\n ${lodash_range__WEBPACK_IMPORTED_MODULE_1___default()(0, length).map(i => `.mj-carousel-${carouselId}-radio:checked ${lodash_repeat__WEBPACK_IMPORTED_MODULE_2___default()('+ * ', i)}+ .mj-carousel-content .mj-carousel-image`).join(',')} {\n display: none !important;\n }\n\n ${lodash_range__WEBPACK_IMPORTED_MODULE_1___default()(0, length).map(i => `.mj-carousel-${carouselId}-radio-${i + 1}:checked ${lodash_repeat__WEBPACK_IMPORTED_MODULE_2___default()('+ * ', length - i - 1)}+ .mj-carousel-content .mj-carousel-image-${i + 1}`).join(',')} {\n display: block !important;\n }\n\n .mj-carousel-previous-icons,\n .mj-carousel-next-icons,\n ${lodash_range__WEBPACK_IMPORTED_MODULE_1___default()(0, length).map(i => `.mj-carousel-${carouselId}-radio-${i + 1}:checked ${lodash_repeat__WEBPACK_IMPORTED_MODULE_2___default()('+ * ', length - i - 1)}+ .mj-carousel-content .mj-carousel-next-${(i + 1 % length + length) % length + 1}`)},\n ${lodash_range__WEBPACK_IMPORTED_MODULE_1___default()(0, length).map(i => `.mj-carousel-${carouselId}-radio-${i + 1}:checked ${lodash_repeat__WEBPACK_IMPORTED_MODULE_2___default()('+ * ', length - i - 1)}+ .mj-carousel-content .mj-carousel-previous-${(i - 1 % length + length) % length + 1}`)} {\n display: block !important;\n }\n\n ${lodash_range__WEBPACK_IMPORTED_MODULE_1___default()(0, length).map(i => `.mj-carousel-${carouselId}-radio-${i + 1}:checked ${lodash_repeat__WEBPACK_IMPORTED_MODULE_2___default()('+ * ', length - i - 1)}+ .mj-carousel-content .mj-carousel-${carouselId}-thumbnail-${i + 1}`).join(',')} {\n border-color: ${this.getAttribute('tb-selected-border-color')} !important;\n }\n\n .mj-carousel-image img + div,\n .mj-carousel-thumbnail img + div {\n display: none !important;\n }\n\n ${lodash_range__WEBPACK_IMPORTED_MODULE_1___default()(0, length).map(i => `.mj-carousel-${carouselId}-thumbnail:hover ${lodash_repeat__WEBPACK_IMPORTED_MODULE_2___default()('+ * ', length - i - 1)}+ .mj-carousel-main .mj-carousel-image`).join(',')} {\n display: none !important;\n }\n\n .mj-carousel-thumbnail:hover {\n border-color: ${this.getAttribute('tb-hover-border-color')} !important;\n }\n\n ${lodash_range__WEBPACK_IMPORTED_MODULE_1___default()(0, length).map(i => `.mj-carousel-${carouselId}-thumbnail-${i + 1}:hover ${lodash_repeat__WEBPACK_IMPORTED_MODULE_2___default()('+ * ', length - i - 1)}+ .mj-carousel-main .mj-carousel-image-${i + 1}`).join(',')} {\n display: block !important;\n }\n `;\n var fallback = `\n .mj-carousel noinput { display:block !important; }\n .mj-carousel noinput .mj-carousel-image-1 { display: block !important; }\n .mj-carousel noinput .mj-carousel-arrows,\n .mj-carousel noinput .mj-carousel-thumbnails { display: none !important; }\n\n [owa] .mj-carousel-thumbnail { display: none !important; }\n\n @media screen yahoo {\n .mj-carousel-${this.carouselId}-icons-cell,\n .mj-carousel-previous-icons,\n .mj-carousel-next-icons {\n display: none !important;\n }\n\n .mj-carousel-${carouselId}-radio-1:checked ${lodash_repeat__WEBPACK_IMPORTED_MODULE_2___default()('+ *', length - 1)}+ .mj-carousel-content .mj-carousel-${carouselId}-thumbnail-1 {\n border-color: transparent;\n }\n }\n `;\n return `${carouselCss}\\n${fallback}`;\n };\n\n this.carouselId = crypto__WEBPACK_IMPORTED_MODULE_5___default.a.randomBytes(6).toString('hex');\n }\n\n getStyles() {\n // eslint-disable-line class-methods-use-this\n return {\n carousel: {\n div: {\n display: 'table',\n width: '100%',\n 'table-layout': 'fixed',\n 'text-align': 'center',\n 'font-size': '0px'\n },\n table: {\n 'caption-side': 'top',\n display: 'table-caption',\n 'table-layout': 'fixed',\n width: '100%'\n }\n },\n images: {\n td: {\n padding: '0px'\n }\n },\n controls: {\n div: {\n display: 'none',\n 'mso-hide': 'all'\n },\n img: {\n display: 'block',\n width: this.getAttribute('icon-width'),\n height: 'auto'\n },\n td: {\n 'font-size': '0px',\n display: 'none',\n 'mso-hide': 'all',\n padding: '0px'\n }\n }\n };\n }\n\n thumbnailsWidth() {\n if (!this.props.children.length) return 0;\n return this.getAttribute('tb-width') || `${lodash_min__WEBPACK_IMPORTED_MODULE_3___default()([this.context.parentWidth / this.props.children.length, 110])}px`;\n }\n\n imagesAttributes() {\n return lodash_map__WEBPACK_IMPORTED_MODULE_4___default()(this.children, 'attributes');\n }\n\n generateRadios() {\n return this.renderChildren(this.props.children, {\n renderer: component => component.renderRadio(),\n attributes: {\n carouselId: this.carouselId\n }\n });\n }\n\n generateThumbnails() {\n if (this.getAttribute('thumbnails') !== 'visible') return '';\n return this.renderChildren(this.props.children, {\n attributes: {\n 'tb-border': this.getAttribute('tb-border'),\n 'tb-border-radius': this.getAttribute('tb-border-radius'),\n 'tb-width': this.thumbnailsWidth(),\n carouselId: this.carouselId\n },\n renderer: component => component.renderThumbnail()\n });\n }\n\n generateControls(direction, icon) {\n var iconWidth = parseInt(this.getAttribute('icon-width'), 10);\n return `\n \n \n ${lodash_range__WEBPACK_IMPORTED_MODULE_1___default()(1, this.props.children.length + 1).map(i => `\n \n \n \n `).join('')}\n \n \n `;\n }\n\n generateImages() {\n return `\n \n \n ${this.renderChildren(this.props.children, {\n attributes: {\n 'border-radius': this.getAttribute('border-radius')\n }\n })}\n \n \n `;\n }\n\n generateCarousel() {\n return `\n \n \n \n ${this.generateControls('previous', this.getAttribute('left-icon'))}\n ${this.generateImages()}\n ${this.generateControls('next', this.getAttribute('right-icon'))}\n \n \n \n `;\n }\n\n renderFallback() {\n var children = this.props.children;\n if (children.length === 0) return '';\n return Object(mjml_core_lib_helpers_conditionalTag__WEBPACK_IMPORTED_MODULE_6__[\"msoConditionalTag\"])(this.renderChildren([children[0]], {\n attributes: {\n 'border-radius': this.getAttribute('border-radius')\n }\n }));\n }\n\n render() {\n return `\n ${Object(mjml_core_lib_helpers_conditionalTag__WEBPACK_IMPORTED_MODULE_6__[\"msoConditionalTag\"])(`\n \n ${this.generateRadios()}\n \n ${this.generateThumbnails()}\n ${this.generateCarousel()}\n \n \n `, true)}\n ${this.renderFallback()}\n `;\n }\n\n}\nMjCarousel.allowedAttributes = {\n align: 'enum(left,center,right)',\n 'border-radius': 'unit(px,%)',\n 'icon-width': 'unit(px,%)',\n 'left-icon': 'string',\n padding: 'unit(px,%){1,4}',\n 'padding-top': 'unit(px,%)',\n 'padding-bottom': 'unit(px,%)',\n 'padding-left': 'unit(px,%)',\n 'padding-right': 'unit(px,%)',\n 'right-icon': 'string',\n thumbnails: 'enum(visible,hidden)',\n 'tb-border': 'string',\n 'tb-border-radius': 'unit(px,%)',\n 'tb-hover-border-color': 'color',\n 'tb-selected-border-color': 'color',\n 'tb-width': 'unit(px,%)'\n};\nMjCarousel.defaultAttributes = {\n align: 'center',\n 'border-radius': '6px',\n 'icon-width': '44px',\n 'left-icon': 'http://i.imgur.com/xTh3hln.png',\n 'right-icon': 'http://i.imgur.com/os7o9kz.png',\n thumbnails: 'visible',\n 'tb-border': '2px solid transparent',\n 'tb-border-radius': '6px',\n 'tb-hover-border-color': '#fead0d',\n 'tb-selected-border-color': '#ccc'\n};\n\n//# sourceURL=webpack://mjml/./mjml/packages/mjml-carousel/src/Carousel.js?")},"./mjml/packages/mjml-carousel/src/CarouselImage.js":/*!**********************************************************!*\ - !*** ./mjml/packages/mjml-carousel/src/CarouselImage.js ***! - \**********************************************************/ -/*! exports provided: default */ -function(module,__webpack_exports__,__webpack_require__){"use strict";eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"default\", function() { return MjCarouselImage; });\n/* harmony import */ var mjml_core__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! mjml-core */ \"./mjml/packages/mjml-core/src/index.js\");\n\nclass MjCarouselImage extends mjml_core__WEBPACK_IMPORTED_MODULE_0__[\"BodyComponent\"] {\n getStyles() {\n return {\n images: {\n img: {\n 'border-radius': this.getAttribute('border-radius'),\n display: 'block',\n width: this.context.containerWidth,\n 'max-width': '100%',\n height: 'auto'\n },\n firstImageDiv: {},\n otherImageDiv: {\n display: 'none',\n 'mso-hide': 'all'\n }\n },\n radio: {\n input: {\n display: 'none',\n 'mso-hide': 'all'\n }\n },\n thumbnails: {\n a: {\n border: this.getAttribute('tb-border'),\n 'border-radius': this.getAttribute('tb-border-radius'),\n display: 'inline-block',\n overflow: 'hidden',\n width: this.getAttribute('tb-width')\n },\n img: {\n display: 'block',\n width: '100%',\n height: 'auto'\n }\n }\n };\n }\n\n renderThumbnail() {\n var _this$attributes = this.attributes,\n carouselId = _this$attributes.carouselId,\n src = _this$attributes.src,\n alt = _this$attributes.alt,\n width = _this$attributes['tb-width'],\n target = _this$attributes.target;\n var imgIndex = this.props.index + 1;\n var cssClass = Object(mjml_core__WEBPACK_IMPORTED_MODULE_0__[\"suffixCssClasses\"])(this.getAttribute('css-class'), 'thumbnail');\n return `\n \n \n \n `;\n }\n\n renderRadio() {\n var index = this.props.index;\n var carouselId = this.getAttribute('carouselId');\n return `\n \n `;\n }\n\n render() {\n var _this$attributes2 = this.attributes,\n src = _this$attributes2.src,\n alt = _this$attributes2.alt,\n href = _this$attributes2.href,\n rel = _this$attributes2.rel,\n title = _this$attributes2.title;\n var index = this.props.index;\n var image = `\n \n `;\n var cssClass = this.getAttribute('css-class') || '';\n return `\n \n ${href ? `${image}` : image}\n \n `;\n }\n\n}\nMjCarouselImage.endingTag = true;\nMjCarouselImage.allowedAttributes = {\n alt: 'string',\n href: 'string',\n rel: 'string',\n title: 'string',\n src: 'string',\n 'thumbnails-src': 'string',\n 'border-radius': 'unit(px,%){1,4}',\n 'tb-border': 'string',\n 'tb-border-radius': 'unit(px,%){1,4}'\n};\nMjCarouselImage.defaultAttributes = {\n target: '_blank'\n};\n\n//# sourceURL=webpack://mjml/./mjml/packages/mjml-carousel/src/CarouselImage.js?")},"./mjml/packages/mjml-carousel/src/index.js":/*!**************************************************!*\ - !*** ./mjml/packages/mjml-carousel/src/index.js ***! - \**************************************************/ -/*! exports provided: Carousel, CarouselImage */ -function(module,__webpack_exports__,__webpack_require__){"use strict";eval('__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _Carousel__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./Carousel */ "./mjml/packages/mjml-carousel/src/Carousel.js");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "Carousel", function() { return _Carousel__WEBPACK_IMPORTED_MODULE_0__["default"]; });\n\n/* harmony import */ var _CarouselImage__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./CarouselImage */ "./mjml/packages/mjml-carousel/src/CarouselImage.js");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "CarouselImage", function() { return _CarouselImage__WEBPACK_IMPORTED_MODULE_1__["default"]; });\n\n\n\n\n\n\n//# sourceURL=webpack://mjml/./mjml/packages/mjml-carousel/src/index.js?')},"./mjml/packages/mjml-column/src/index.js":/*!************************************************!*\ - !*** ./mjml/packages/mjml-column/src/index.js ***! - \************************************************/ -/*! exports provided: default */ -function(module,__webpack_exports__,__webpack_require__){"use strict";eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"default\", function() { return MjColumn; });\n/* harmony import */ var mjml_core__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! mjml-core */ \"./mjml/packages/mjml-core/src/index.js\");\n/* harmony import */ var mjml_core_lib_helpers_widthParser__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! mjml-core/lib/helpers/widthParser */ \"./mjml/packages/mjml-core/src/helpers/widthParser.js\");\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; var ownKeys = Object.keys(source); if (typeof Object.getOwnPropertySymbols === 'function') { ownKeys = ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function (sym) { return Object.getOwnPropertyDescriptor(source, sym).enumerable; })); } ownKeys.forEach(function (key) { _defineProperty(target, key, source[key]); }); } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\n\n\nclass MjColumn extends mjml_core__WEBPACK_IMPORTED_MODULE_0__[\"BodyComponent\"] {\n getChildContext() {\n var parentWidth = this.context.containerWidth;\n var nonRawSiblings = this.props.nonRawSiblings;\n\n var _this$getBoxWidths = this.getBoxWidths(),\n borders = _this$getBoxWidths.borders,\n paddings = _this$getBoxWidths.paddings;\n\n var allPaddings = paddings + borders;\n var containerWidth = this.getAttribute('width') || `${parseFloat(parentWidth) / nonRawSiblings}px`;\n\n var _widthParser = Object(mjml_core_lib_helpers_widthParser__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(containerWidth, {\n parseFloatToInt: false\n }),\n unit = _widthParser.unit,\n parsedWidth = _widthParser.parsedWidth;\n\n if (unit === '%') {\n containerWidth = `${parseFloat(parentWidth) * parsedWidth / 100 - allPaddings}px`;\n } else {\n containerWidth = `${parsedWidth - allPaddings}px`;\n }\n\n return _objectSpread({}, this.context, {\n containerWidth\n });\n }\n\n getStyles() {\n var tableStyle = {\n 'background-color': this.getAttribute('background-color'),\n border: this.getAttribute('border'),\n 'border-bottom': this.getAttribute('border-bottom'),\n 'border-left': this.getAttribute('border-left'),\n 'border-radius': this.getAttribute('border-radius'),\n 'border-right': this.getAttribute('border-right'),\n 'border-top': this.getAttribute('border-top'),\n 'vertical-align': this.getAttribute('vertical-align')\n };\n return {\n div: {\n 'font-size': '13px',\n 'text-align': 'left',\n direction: this.getAttribute('direction'),\n display: 'inline-block',\n 'vertical-align': this.getAttribute('vertical-align'),\n width: this.getMobileWidth()\n },\n table: _objectSpread({}, this.hasGutter() ? {} : tableStyle),\n tdOutlook: {\n 'vertical-align': this.getAttribute('vertical-align'),\n width: this.getWidthAsPixel()\n },\n gutter: _objectSpread({}, tableStyle, {\n padding: this.getAttribute('padding'),\n 'padding-top': this.getAttribute('padding-top'),\n 'padding-right': this.getAttribute('padding-right'),\n 'padding-bottom': this.getAttribute('padding-bottom'),\n 'padding-left': this.getAttribute('padding-left')\n })\n };\n }\n\n getMobileWidth() {\n var _this$context = this.context,\n nonRawSiblings = _this$context.nonRawSiblings,\n containerWidth = _this$context.containerWidth;\n var width = this.getAttribute('width');\n var mobileWidth = this.getAttribute('mobileWidth');\n\n if (mobileWidth !== 'mobileWidth') {\n return '100%';\n } else if (width === undefined) {\n return `${parseInt(100 / nonRawSiblings, 10)}%`;\n }\n\n var _widthParser2 = Object(mjml_core_lib_helpers_widthParser__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(width, {\n parseFloatToInt: false\n }),\n unit = _widthParser2.unit,\n parsedWidth = _widthParser2.parsedWidth;\n\n switch (unit) {\n case '%':\n return width;\n\n case 'px':\n default:\n return `${parsedWidth / parseInt(containerWidth, 10)}%`;\n }\n }\n\n getWidthAsPixel() {\n var containerWidth = this.context.containerWidth;\n\n var _widthParser3 = Object(mjml_core_lib_helpers_widthParser__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(this.getParsedWidth(true), {\n parseFloatToInt: false\n }),\n unit = _widthParser3.unit,\n parsedWidth = _widthParser3.parsedWidth;\n\n if (unit === '%') {\n return `${parseFloat(containerWidth) * parsedWidth / 100}px`;\n }\n\n return `${parsedWidth}px`;\n }\n\n getParsedWidth(toString) {\n var nonRawSiblings = this.props.nonRawSiblings;\n var width = this.getAttribute('width') || `${100 / nonRawSiblings}%`;\n\n var _widthParser4 = Object(mjml_core_lib_helpers_widthParser__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(width, {\n parseFloatToInt: false\n }),\n unit = _widthParser4.unit,\n parsedWidth = _widthParser4.parsedWidth;\n\n if (toString) {\n return `${parsedWidth}${unit}`;\n }\n\n return {\n unit,\n parsedWidth\n };\n }\n\n getColumnClass() {\n var addMediaQuery = this.context.addMediaQuery;\n var className = '';\n\n var _this$getParsedWidth = this.getParsedWidth(),\n parsedWidth = _this$getParsedWidth.parsedWidth,\n unit = _this$getParsedWidth.unit;\n\n switch (unit) {\n case '%':\n className = `mj-column-per-${parseInt(parsedWidth, 10)}`;\n break;\n\n case 'px':\n default:\n className = `mj-column-px-${parseInt(parsedWidth, 10)}`;\n break;\n } // Add className to media queries\n\n\n addMediaQuery(className, {\n parsedWidth,\n unit\n });\n return className;\n }\n\n hasGutter() {\n return ['padding', 'padding-bottom', 'padding-left', 'padding-right', 'padding-top'].some(attr => this.getAttribute(attr) != null);\n }\n\n renderGutter() {\n return `\n \n \n \n \n ${this.renderColumn()}\n \n \n \n \n `;\n }\n\n renderColumn() {\n var children = this.props.children;\n return `\n \n ${this.renderChildren(children, {\n renderer: component => // eslint-disable-line no-confusing-arrow\n component.constructor.isRawElement() ? component.render() : `\n \n \n ${component.render()}\n \n \n `\n })}\n \n `;\n }\n\n render() {\n var classesName = `${this.getColumnClass()} outlook-group-fix`;\n\n if (this.getAttribute('css-class')) {\n classesName += ` ${this.getAttribute('css-class')}`;\n }\n\n return `\n \n ${this.hasGutter() ? this.renderGutter() : this.renderColumn()}\n \n `;\n }\n\n}\nMjColumn.allowedAttributes = {\n 'background-color': 'color',\n border: 'string',\n 'border-bottom': 'string',\n 'border-left': 'string',\n 'border-radius': 'unit(px,%)',\n 'border-right': 'string',\n 'border-top': 'string',\n direction: 'enum(ltr,rtl)',\n 'padding-bottom': 'unit(px,%)',\n 'padding-left': 'unit(px,%)',\n 'padding-right': 'unit(px,%)',\n 'padding-top': 'unit(px,%)',\n padding: 'unit(px,%){1,4}',\n 'vertical-align': 'enum(top,bottom,middle)',\n width: 'unit(px,%)'\n};\nMjColumn.defaultAttributes = {\n direction: 'ltr',\n 'vertical-align': 'top'\n};\n\n//# sourceURL=webpack://mjml/./mjml/packages/mjml-column/src/index.js?")},"./mjml/packages/mjml-core/src sync recursive":/*!******************************************!*\ - !*** ./mjml/packages/mjml-core/src sync ***! - \******************************************/ -/*! no static exports found */ -function(module,exports){eval('function webpackEmptyContext(req) {\n\tvar e = new Error("Cannot find module \'" + req + "\'");\n\te.code = \'MODULE_NOT_FOUND\';\n\tthrow e;\n}\nwebpackEmptyContext.keys = function() { return []; };\nwebpackEmptyContext.resolve = webpackEmptyContext;\nmodule.exports = webpackEmptyContext;\nwebpackEmptyContext.id = "./mjml/packages/mjml-core/src sync recursive";\n\n//# sourceURL=webpack://mjml/./mjml/packages/mjml-core/src_sync?')},"./mjml/packages/mjml-core/src/components.js":/*!***************************************************!*\ - !*** ./mjml/packages/mjml-core/src/components.js ***! - \***************************************************/ -/*! exports provided: registerComponent, initComponent, default */ -function(module,__webpack_exports__,__webpack_require__){"use strict";eval('__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "registerComponent", function() { return registerComponent; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "initComponent", function() { return initComponent; });\n/* harmony import */ var lodash_kebabCase__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! lodash/kebabCase */ "./node_modules/lodash/kebabCase.js");\n/* harmony import */ var lodash_kebabCase__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(lodash_kebabCase__WEBPACK_IMPORTED_MODULE_0__);\n\nvar components = {};\nfunction registerComponent(Component) {\n components[lodash_kebabCase__WEBPACK_IMPORTED_MODULE_0___default()(Component.name)] = Component;\n}\nfunction initComponent(_ref) {\n var initialDatas = _ref.initialDatas,\n name = _ref.name;\n var Component = components[name];\n\n if (Component) {\n var component = new Component(initialDatas);\n\n if (component.headStyle) {\n component.context.addHeadSyle(name, component.headStyle);\n }\n\n if (component.componentHeadStyle) {\n component.context.addComponentHeadSyle(component.componentHeadStyle);\n }\n\n return component;\n }\n\n return null;\n}\n/* harmony default export */ __webpack_exports__["default"] = (components);\n\n//# sourceURL=webpack://mjml/./mjml/packages/mjml-core/src/components.js?')},"./mjml/packages/mjml-core/src/createComponent.js":/*!********************************************************!*\ - !*** ./mjml/packages/mjml-core/src/createComponent.js ***! - \********************************************************/ -/*! exports provided: BodyComponent, HeadComponent */ -function(module,__webpack_exports__,__webpack_require__){"use strict";eval('__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "BodyComponent", function() { return BodyComponent; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "HeadComponent", function() { return HeadComponent; });\n/* harmony import */ var lodash__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! lodash */ "./node_modules/lodash/lodash.js");\n/* harmony import */ var lodash__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(lodash__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var mjml_parser_xml__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! mjml-parser-xml */ "./mjml/packages/mjml-parser-xml/src/index.js");\n/* harmony import */ var _helpers_shorthandParser__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./helpers/shorthandParser */ "./mjml/packages/mjml-core/src/helpers/shorthandParser.js");\n/* harmony import */ var _helpers_formatAttributes__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./helpers/formatAttributes */ "./mjml/packages/mjml-core/src/helpers/formatAttributes.js");\n/* harmony import */ var _helpers_jsonToXML__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./helpers/jsonToXML */ "./mjml/packages/mjml-core/src/helpers/jsonToXML.js");\n/* harmony import */ var _components__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./components */ "./mjml/packages/mjml-core/src/components.js");\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; var ownKeys = Object.keys(source); if (typeof Object.getOwnPropertySymbols === \'function\') { ownKeys = ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function (sym) { return Object.getOwnPropertyDescriptor(source, sym).enumerable; })); } ownKeys.forEach(function (key) { _defineProperty(target, key, source[key]); }); } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\n\n\n\n\n\n\n\nclass Component {\n static getTagName() {\n return Object(lodash__WEBPACK_IMPORTED_MODULE_0__["kebabCase"])(this.name);\n }\n\n static isRawElement() {\n return !!this.rawElement;\n }\n\n constructor() {\n var initialDatas = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n var _initialDatas$attribu = initialDatas.attributes,\n attributes = _initialDatas$attribu === void 0 ? {} : _initialDatas$attribu,\n _initialDatas$childre = initialDatas.children,\n children = _initialDatas$childre === void 0 ? [] : _initialDatas$childre,\n _initialDatas$content = initialDatas.content,\n content = _initialDatas$content === void 0 ? \'\' : _initialDatas$content,\n _initialDatas$context = initialDatas.context,\n context = _initialDatas$context === void 0 ? {} : _initialDatas$context,\n _initialDatas$props = initialDatas.props,\n props = _initialDatas$props === void 0 ? {} : _initialDatas$props,\n _initialDatas$globalA = initialDatas.globalAttributes,\n globalAttributes = _initialDatas$globalA === void 0 ? {} : _initialDatas$globalA;\n this.props = _objectSpread({}, props, {\n children,\n content\n });\n this.attributes = Object(_helpers_formatAttributes__WEBPACK_IMPORTED_MODULE_3__["default"])(_objectSpread({}, this.constructor.defaultAttributes, globalAttributes, attributes), this.constructor.allowedAttributes);\n this.context = context;\n return this;\n }\n\n getChildContext() {\n return this.context;\n }\n\n getAttribute(name) {\n return this.attributes[name];\n }\n\n getContent() {\n return this.props.content.trim();\n }\n\n renderMJML(mjml) {\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n\n if (typeof mjml === \'string\') {\n mjml = Object(mjml_parser_xml__WEBPACK_IMPORTED_MODULE_1__["default"])(mjml, _objectSpread({}, options, {\n components: _components__WEBPACK_IMPORTED_MODULE_5__["default"],\n ignoreIncludes: true\n }));\n }\n\n return this.context.processing(mjml, this.context);\n }\n\n}\n\nComponent.defaultAttributes = {};\nclass BodyComponent extends Component {\n // eslint-disable-next-line class-methods-use-this\n getStyles() {\n return {};\n }\n\n getShorthandAttrValue(attribute, direction) {\n var mjAttributeDirection = this.getAttribute(`${attribute}-${direction}`);\n var mjAttribute = this.getAttribute(attribute);\n\n if (mjAttributeDirection) {\n return parseInt(mjAttributeDirection, 10);\n }\n\n if (!mjAttribute) {\n return 0;\n }\n\n return Object(_helpers_shorthandParser__WEBPACK_IMPORTED_MODULE_2__["default"])(mjAttribute, direction);\n }\n\n getShorthandBorderValue(direction) {\n var borderDirection = direction && this.getAttribute(`border-${direction}`);\n var border = this.getAttribute(\'border\');\n return Object(_helpers_shorthandParser__WEBPACK_IMPORTED_MODULE_2__["borderParser"])(borderDirection || border || \'0\', 10);\n }\n\n getBoxWidths() {\n var containerWidth = this.context.containerWidth;\n var parsedWidth = parseInt(containerWidth, 10);\n var paddings = this.getShorthandAttrValue(\'padding\', \'right\') + this.getShorthandAttrValue(\'padding\', \'left\');\n var borders = this.getShorthandBorderValue(\'right\') + this.getShorthandBorderValue(\'left\');\n return {\n totalWidth: parsedWidth,\n borders,\n paddings,\n box: parsedWidth - paddings - borders\n };\n }\n\n htmlAttributes(attributes) {\n var specialAttributes = {\n style: v => this.styles(v),\n default: lodash__WEBPACK_IMPORTED_MODULE_0__["identity"]\n };\n return Object(lodash__WEBPACK_IMPORTED_MODULE_0__["reduce"])(attributes, (output, v, name) => {\n var value = (specialAttributes[name] || specialAttributes.default)(v);\n\n if (!Object(lodash__WEBPACK_IMPORTED_MODULE_0__["isNil"])(value)) {\n return `${output} ${name}="${value}"`;\n }\n\n return output;\n }, \'\');\n }\n\n styles(styles) {\n var stylesObject;\n\n if (styles) {\n if (typeof styles === \'string\') {\n stylesObject = Object(lodash__WEBPACK_IMPORTED_MODULE_0__["get"])(this.getStyles(), styles);\n } else {\n stylesObject = styles;\n }\n }\n\n return Object(lodash__WEBPACK_IMPORTED_MODULE_0__["reduce"])(stylesObject, (output, value, name) => {\n if (!Object(lodash__WEBPACK_IMPORTED_MODULE_0__["isNil"])(value)) {\n return `${output}${name}:${value};`;\n }\n\n return output;\n }, \'\');\n }\n\n renderChildren(childrens) {\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n var _options$props = options.props,\n props = _options$props === void 0 ? {} : _options$props,\n _options$renderer = options.renderer,\n renderer = _options$renderer === void 0 ? component => component.render() : _options$renderer,\n _options$attributes = options.attributes,\n attributes = _options$attributes === void 0 ? {} : _options$attributes,\n _options$rawXML = options.rawXML,\n rawXML = _options$rawXML === void 0 ? false : _options$rawXML;\n childrens = childrens || this.props.children;\n\n if (rawXML) {\n return childrens.map(child => Object(_helpers_jsonToXML__WEBPACK_IMPORTED_MODULE_4__["default"])(child)).join(\'\\n\');\n }\n\n var sibling = childrens.length;\n var rawComponents = Object(lodash__WEBPACK_IMPORTED_MODULE_0__["filter"])(_components__WEBPACK_IMPORTED_MODULE_5__["default"], c => c.isRawElement());\n var nonRawSiblings = childrens.filter(child => !Object(lodash__WEBPACK_IMPORTED_MODULE_0__["find"])(rawComponents, c => c.getTagName() === child.tagName)).length;\n var output = \'\';\n var index = 0;\n Object(lodash__WEBPACK_IMPORTED_MODULE_0__["forEach"])(childrens, children => {\n var component = Object(_components__WEBPACK_IMPORTED_MODULE_5__["initComponent"])({\n name: children.tagName,\n initialDatas: _objectSpread({}, children, {\n attributes: _objectSpread({}, attributes, children.attributes),\n context: this.getChildContext(),\n props: _objectSpread({}, props, {\n first: index === 0,\n index,\n last: index + 1 === sibling,\n sibling,\n nonRawSiblings\n })\n })\n });\n\n if (component !== null) {\n output += renderer(component);\n }\n\n index++; // eslint-disable-line no-plusplus\n });\n return output;\n }\n\n}\nclass HeadComponent extends Component {\n static getTagName() {\n return Object(lodash__WEBPACK_IMPORTED_MODULE_0__["kebabCase"])(this.name);\n }\n\n handlerChildren() {\n var childrens = this.props.children;\n return childrens.map(children => {\n var component = Object(_components__WEBPACK_IMPORTED_MODULE_5__["initComponent"])({\n name: children.tagName,\n initialDatas: _objectSpread({}, children, {\n context: this.getChildContext()\n })\n });\n\n if (!component) {\n // eslint-disable-next-line no-console\n console.error(`No matching component for tag : ${children.tagName}`);\n return null;\n }\n\n if (component.handler) {\n component.handler();\n }\n\n if (component.render) {\n return component.render();\n }\n\n return null;\n });\n }\n\n}\n\n//# sourceURL=webpack://mjml/./mjml/packages/mjml-core/src/createComponent.js?')},"./mjml/packages/mjml-core/src/helpers sync recursive":/*!**************************************************!*\ - !*** ./mjml/packages/mjml-core/src/helpers sync ***! - \**************************************************/ -/*! no static exports found */ -function(module,exports){eval('function webpackEmptyContext(req) {\n\tvar e = new Error("Cannot find module \'" + req + "\'");\n\te.code = \'MODULE_NOT_FOUND\';\n\tthrow e;\n}\nwebpackEmptyContext.keys = function() { return []; };\nwebpackEmptyContext.resolve = webpackEmptyContext;\nmodule.exports = webpackEmptyContext;\nwebpackEmptyContext.id = "./mjml/packages/mjml-core/src/helpers sync recursive";\n\n//# sourceURL=webpack://mjml/./mjml/packages/mjml-core/src/helpers_sync?')},"./mjml/packages/mjml-core/src/helpers/conditionalTag.js":/*!***************************************************************!*\ - !*** ./mjml/packages/mjml-core/src/helpers/conditionalTag.js ***! - \***************************************************************/ -/*! exports provided: startConditionalTag, startMsoConditionalTag, endConditionalTag, startNegationConditionalTag, startMsoNegationConditionalTag, endNegationConditionalTag, default, msoConditionalTag */ -function(module,__webpack_exports__,__webpack_require__){"use strict";eval('__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "startConditionalTag", function() { return startConditionalTag; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "startMsoConditionalTag", function() { return startMsoConditionalTag; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "endConditionalTag", function() { return endConditionalTag; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "startNegationConditionalTag", function() { return startNegationConditionalTag; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "startMsoNegationConditionalTag", function() { return startMsoNegationConditionalTag; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "endNegationConditionalTag", function() { return endNegationConditionalTag; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "default", function() { return conditionalTag; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "msoConditionalTag", function() { return msoConditionalTag; });\nvar startConditionalTag = \'\x3c!--[if mso | IE]>\';\nvar startMsoConditionalTag = \'\x3c!--[if mso]>\';\nvar endConditionalTag = \'\x3c!--\x3e\';\nvar startMsoNegationConditionalTag = \'\x3c!--[if !mso>\x3c!--\x3e\';\nvar endNegationConditionalTag = \'\x3c!-- 1 && arguments[1] !== undefined ? arguments[1] : false;\n return `\n ${negation ? startNegationConditionalTag : startConditionalTag}\n ${content}\n ${negation ? endNegationConditionalTag : endConditionalTag}\n `;\n}\nfunction msoConditionalTag(content) {\n var negation = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n return `\n ${negation ? startMsoNegationConditionalTag : startMsoConditionalTag}\n ${content}\n ${negation ? endNegationConditionalTag : endConditionalTag}\n `;\n}\n\n//# sourceURL=webpack://mjml/./mjml/packages/mjml-core/src/helpers/conditionalTag.js?')},"./mjml/packages/mjml-core/src/helpers/fonts.js":/*!******************************************************!*\ - !*** ./mjml/packages/mjml-core/src/helpers/fonts.js ***! - \******************************************************/ -/*! exports provided: buildFontsTags */ -function(module,__webpack_exports__,__webpack_require__){"use strict";eval('__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "buildFontsTags", function() { return buildFontsTags; });\n/* harmony import */ var lodash_forEach__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! lodash/forEach */ "./node_modules/lodash/forEach.js");\n/* harmony import */ var lodash_forEach__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(lodash_forEach__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var lodash_map__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! lodash/map */ "./node_modules/lodash/map.js");\n/* harmony import */ var lodash_map__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(lodash_map__WEBPACK_IMPORTED_MODULE_1__);\n\n // eslint-disable-next-line import/prefer-default-export\n\nfunction buildFontsTags(content, inlineStyle) {\n var fonts = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n var toImport = [];\n lodash_forEach__WEBPACK_IMPORTED_MODULE_0___default()(fonts, (url, name) => {\n var regex = new RegExp(`"[^"]*font-family:[^"]*${name}[^"]*"`, \'gmi\');\n var inlineRegex = new RegExp(`font-family:[^;}]*${name}`, \'gmi\');\n\n if (content.match(regex) || inlineStyle.some(s => s.match(inlineRegex))) {\n toImport.push(url);\n }\n });\n\n if (toImport.length > 0) {\n return `\n \x3c!--[if !mso]>\x3c!--\x3e\n ${lodash_map__WEBPACK_IMPORTED_MODULE_1___default()(toImport, url => ``).join(\'\\n\')}\n \n \x3c!-- Object(lodash__WEBPACK_IMPORTED_MODULE_0__["reduce"])(attributes, (acc, val, attrName) => {\n if (allowedAttributes && allowedAttributes[attrName]) {\n var TypeConstructor = Object(_types_type__WEBPACK_IMPORTED_MODULE_1__["initializeType"])(allowedAttributes[attrName]);\n\n if (TypeConstructor) {\n var type = new TypeConstructor(val);\n return _objectSpread({}, acc, {\n [attrName]: type.getValue()\n });\n }\n }\n\n return _objectSpread({}, acc, {\n [attrName]: val\n });\n}, {}));\n\n//# sourceURL=webpack://mjml/./mjml/packages/mjml-core/src/helpers/formatAttributes.js?')},"./mjml/packages/mjml-core/src/helpers/jsonToXML.js":/*!**********************************************************!*\ - !*** ./mjml/packages/mjml-core/src/helpers/jsonToXML.js ***! - \**********************************************************/ -/*! exports provided: default */ -function(module,__webpack_exports__,__webpack_require__){"use strict";eval("__webpack_require__.r(__webpack_exports__);\nvar jsonToXML = (_ref) => {\n var tagName = _ref.tagName,\n attributes = _ref.attributes,\n children = _ref.children,\n content = _ref.content;\n var subNode = children && children.length > 0 ? children.map(jsonToXML).join('\\n') : content || '';\n var stringAttrs = Object.keys(attributes).map(attr => `${attr}=\"${attributes[attr]}\"`).join(' ');\n return `<${tagName}${stringAttrs === '' ? '>' : ` ${stringAttrs}>`}${subNode}`;\n};\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (jsonToXML);\n\n//# sourceURL=webpack://mjml/./mjml/packages/mjml-core/src/helpers/jsonToXML.js?")},"./mjml/packages/mjml-core/src/helpers/mediaQueries.js":/*!*************************************************************!*\ - !*** ./mjml/packages/mjml-core/src/helpers/mediaQueries.js ***! - \*************************************************************/ -/*! exports provided: default */ -function(module,__webpack_exports__,__webpack_require__){"use strict";eval('__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "default", function() { return buildMediaQueriesTags; });\n/* harmony import */ var lodash__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! lodash */ "./node_modules/lodash/lodash.js");\n/* harmony import */ var lodash__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(lodash__WEBPACK_IMPORTED_MODULE_0__);\n // eslint-disable-next-line import/prefer-default-export\n\nfunction buildMediaQueriesTags(breakpoint) {\n var mediaQueries = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n var forceOWADesktop = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;\n\n if (Object(lodash__WEBPACK_IMPORTED_MODULE_0__["isEmpty"])(mediaQueries)) {\n return \'\';\n }\n\n var baseMediaQueries = Object(lodash__WEBPACK_IMPORTED_MODULE_0__["map"])(mediaQueries, (mediaQuery, className) => `.${className} ${mediaQuery}`);\n var owaQueries = Object(lodash__WEBPACK_IMPORTED_MODULE_0__["map"])(baseMediaQueries, mq => `[owa] ${mq}`);\n return `\n \n ${forceOWADesktop ? `` : ``}\n `;\n}\n\n//# sourceURL=webpack://mjml/./mjml/packages/mjml-core/src/helpers/mediaQueries.js?')},"./mjml/packages/mjml-core/src/helpers/mergeOutlookConditionnals.js":/*!**************************************************************************!*\ - !*** ./mjml/packages/mjml-core/src/helpers/mergeOutlookConditionnals.js ***! - \**************************************************************************/ -/*! exports provided: default */ -function(module,__webpack_exports__,__webpack_require__){"use strict";eval("__webpack_require__.r(__webpack_exports__);\n// # OPTIMIZE ME: — check if previous conditionnal is `\x3c!--[if mso | I`]>` too\n/* harmony default export */ __webpack_exports__[\"default\"] = (content => content.replace(/()/gm, ''));\n\n//# sourceURL=webpack://mjml/./mjml/packages/mjml-core/src/helpers/mergeOutlookConditionnals.js?")},"./mjml/packages/mjml-core/src/helpers/minifyOutlookConditionnals.js":/*!***************************************************************************!*\ - !*** ./mjml/packages/mjml-core/src/helpers/minifyOutlookConditionnals.js ***! - \***************************************************************************/ -/*! exports provided: default */ -function(module,__webpack_exports__,__webpack_require__){"use strict";eval("__webpack_require__.r(__webpack_exports__);\n/* harmony default export */ __webpack_exports__[\"default\"] = (content => // find conditionnal comment blocks\ncontent.replace(/(\x3c!--\\[if\\s[^\\]]+]>)([\\s\\S]*?)( {\n // find spaces between tags\n var processedContent = content.replace(/(^|>)(\\s+)*(<|$)/gm, (match, prefix, content, suffix) => `${prefix}${suffix}`).replace(/\\s{2,}/gm, ' ');\n return `${prefix}${processedContent}${suffix}`;\n}));\n\n//# sourceURL=webpack://mjml/./mjml/packages/mjml-core/src/helpers/minifyOutlookConditionnals.js?")},"./mjml/packages/mjml-core/src/helpers/mjmlconfig.js":/*!***********************************************************!*\ - !*** ./mjml/packages/mjml-core/src/helpers/mjmlconfig.js ***! - \***********************************************************/ -/*! exports provided: readMjmlConfig, resolveComponentPath, registerCustomComponent, default */ -function(module,__webpack_exports__,__webpack_require__){"use strict";eval('__webpack_require__.r(__webpack_exports__);\n/* WEBPACK VAR INJECTION */(function(process) {/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "readMjmlConfig", function() { return readMjmlConfig; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "resolveComponentPath", function() { return resolveComponentPath; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "registerCustomComponent", function() { return registerCustomComponent; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "default", function() { return handleMjmlConfig; });\n/* harmony import */ var path__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! path */ "./node_modules/path-browserify/index.js");\n/* harmony import */ var path__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(path__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var fs__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! fs */ "./mocks/fs.js");\n/* harmony import */ var mjml_validator__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! mjml-validator */ "./mjml/packages/mjml-validator/src/index.js");\n/* harmony import */ var _components__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../components */ "./mjml/packages/mjml-core/src/components.js");\n\n\n\n\nfunction readMjmlConfig() {\n var configPathOrDir = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : process.cwd();\n var componentRootPath = process.cwd();\n var mjmlConfigPath = configPathOrDir;\n\n try {\n mjmlConfigPath = path__WEBPACK_IMPORTED_MODULE_0___default.a.basename(configPathOrDir) === \'.mjmlconfig\' ? path__WEBPACK_IMPORTED_MODULE_0___default.a.resolve(configPathOrDir) : path__WEBPACK_IMPORTED_MODULE_0___default.a.resolve(configPathOrDir, \'.mjmlconfig\');\n componentRootPath = path__WEBPACK_IMPORTED_MODULE_0___default.a.dirname(mjmlConfigPath);\n var mjmlConfig = JSON.parse(fs__WEBPACK_IMPORTED_MODULE_1__["default"].readFileSync(path__WEBPACK_IMPORTED_MODULE_0___default.a.resolve(mjmlConfigPath), \'utf8\'));\n return {\n mjmlConfig,\n componentRootPath\n };\n } catch (e) {\n if (e.code !== \'ENOENT\') {\n console.error(\'Error reading mjmlconfig : \', e); // eslint-disable-line no-console\n }\n\n return {\n mjmlConfig: {\n packages: []\n },\n mjmlConfigPath,\n componentRootPath,\n error: e\n };\n }\n}\nfunction resolveComponentPath(compPath, componentRootPath) {\n if (!compPath) {\n return null;\n }\n\n if (!compPath.startsWith(\'.\') && !path__WEBPACK_IMPORTED_MODULE_0___default.a.isAbsolute(compPath)) {\n try {\n return /*require.resolve*/(__webpack_require__("./mjml/packages/mjml-core/src/helpers sync recursive").resolve(compPath));\n } catch (e) {\n if (e.code !== \'MODULE_NOT_FOUND\') {\n console.error(\'Error resolving custom component path : \', e); // eslint-disable-line no-console\n\n return null;\n } // we got a \'MODULE_NOT_FOUND\' error\n\n\n try {\n // try again as relative path to node_modules: (this may be necessary if mjml is installed globally or by npm link)\n return resolveComponentPath(`./node_modules/${compPath}`, componentRootPath);\n } catch (e) {\n // try again as a plain local path:\n return resolveComponentPath(`./${compPath}`, componentRootPath);\n }\n }\n }\n\n return /*require.resolve*/(__webpack_require__("./mjml/packages/mjml-core/src/helpers sync recursive").resolve(path__WEBPACK_IMPORTED_MODULE_0___default.a.resolve(componentRootPath, compPath)));\n}\nfunction registerCustomComponent(comp) {\n var registerCompFn = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : _components__WEBPACK_IMPORTED_MODULE_3__["registerComponent"];\n\n if (comp instanceof Function) {\n registerCompFn(comp);\n } else {\n var compNames = Object.keys(comp); // this approach handles both an array and an object (like the mjml-accordion default export)\n\n compNames.forEach(compName => {\n registerCustomComponent(comp[compName], registerCompFn);\n });\n }\n}\nfunction handleMjmlConfig() {\n var configPathOrDir = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : process.cwd();\n var registerCompFn = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : _components__WEBPACK_IMPORTED_MODULE_3__["registerComponent"];\n\n var _readMjmlConfig = readMjmlConfig(configPathOrDir),\n packages = _readMjmlConfig.mjmlConfig.packages,\n componentRootPath = _readMjmlConfig.componentRootPath,\n error = _readMjmlConfig.error;\n\n if (error) return {\n error\n };\n var result = {\n success: [],\n failures: []\n };\n packages.forEach(compPath => {\n var resolvedPath = compPath;\n\n try {\n resolvedPath = resolveComponentPath(compPath, componentRootPath);\n\n if (resolvedPath) {\n var requiredComp = __webpack_require__("./mjml/packages/mjml-core/src/helpers sync recursive")(resolvedPath); // eslint-disable-line global-require, import/no-dynamic-require\n\n\n registerCustomComponent(requiredComp.default || requiredComp, registerCompFn);\n Object(mjml_validator__WEBPACK_IMPORTED_MODULE_2__["registerDependencies"])((requiredComp.default || requiredComp).dependencies);\n result.success.push(compPath);\n }\n } catch (e) {\n result.failures.push({\n error: e,\n compPath\n });\n\n if (e.code === \'ENOENT\' || e.code === \'MODULE_NOT_FOUND\') {\n console.error(\'Missing or unreadable custom component : \', resolvedPath); // eslint-disable-line no-console\n } else {\n console.error(\'Error when registering custom component : \', resolvedPath, e); // eslint-disable-line no-console\n }\n }\n });\n return result;\n}\n/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(/*! ./../../../../../node_modules/process/browser.js */ "./node_modules/process/browser.js")))\n\n//# sourceURL=webpack://mjml/./mjml/packages/mjml-core/src/helpers/mjmlconfig.js?')},"./mjml/packages/mjml-core/src/helpers/preview.js":/*!********************************************************!*\ - !*** ./mjml/packages/mjml-core/src/helpers/preview.js ***! - \********************************************************/ -/*! exports provided: default */ -function(module,__webpack_exports__,__webpack_require__){"use strict";eval("__webpack_require__.r(__webpack_exports__);\n/* harmony default export */ __webpack_exports__[\"default\"] = (function (content) {\n if (content === '') {\n return '';\n }\n\n return `\n
\n ${content}\n
\n `;\n});\n\n//# sourceURL=webpack://mjml/./mjml/packages/mjml-core/src/helpers/preview.js?")},"./mjml/packages/mjml-core/src/helpers/shorthandParser.js":/*!****************************************************************!*\ - !*** ./mjml/packages/mjml-core/src/helpers/shorthandParser.js ***! - \****************************************************************/ -/*! exports provided: default, borderParser */ -function(module,__webpack_exports__,__webpack_require__){"use strict";eval('__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "borderParser", function() { return borderParser; });\n/* harmony import */ var lodash__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! lodash */ "./node_modules/lodash/lodash.js");\n/* harmony import */ var lodash__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(lodash__WEBPACK_IMPORTED_MODULE_0__);\n\n/* harmony default export */ __webpack_exports__["default"] = (function (cssValue, direction) {\n var splittedCssValue = cssValue.split(\' \');\n var directions = {};\n\n switch (splittedCssValue.length) {\n case 2:\n directions = {\n top: 0,\n bottom: 0,\n left: 1,\n right: 1\n };\n break;\n\n case 3:\n directions = {\n top: 0,\n left: 1,\n right: 1,\n bottom: 2\n };\n break;\n\n case 4:\n directions = {\n top: 0,\n right: 1,\n bottom: 2,\n left: 3\n };\n break;\n\n case 1:\n default:\n return parseInt(cssValue, 10);\n }\n\n return parseInt(splittedCssValue[directions[direction]] || 0, 10);\n});\nfunction borderParser(border) {\n return parseInt(Object(lodash__WEBPACK_IMPORTED_MODULE_0__["get"])(border.match(/(?:(?:^| )(\\d+))/), 1), 10) || 0;\n}\n\n//# sourceURL=webpack://mjml/./mjml/packages/mjml-core/src/helpers/shorthandParser.js?')},"./mjml/packages/mjml-core/src/helpers/skeleton.js":/*!*********************************************************!*\ - !*** ./mjml/packages/mjml-core/src/helpers/skeleton.js ***! - \*********************************************************/ -/*! exports provided: default */ -function(module,__webpack_exports__,__webpack_require__){"use strict";eval('__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "default", function() { return skeleton; });\n/* harmony import */ var lodash__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! lodash */ "./node_modules/lodash/lodash.js");\n/* harmony import */ var lodash__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(lodash__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var _preview__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./preview */ "./mjml/packages/mjml-core/src/helpers/preview.js");\n/* harmony import */ var _fonts__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./fonts */ "./mjml/packages/mjml-core/src/helpers/fonts.js");\n/* harmony import */ var _mediaQueries__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./mediaQueries */ "./mjml/packages/mjml-core/src/helpers/mediaQueries.js");\n\n\n\n\nfunction skeleton(options) {\n var _options$backgroundCo = options.backgroundColor,\n backgroundColor = _options$backgroundCo === void 0 ? \'\' : _options$backgroundCo,\n _options$breakpoint = options.breakpoint,\n breakpoint = _options$breakpoint === void 0 ? \'480px\' : _options$breakpoint,\n _options$content = options.content,\n content = _options$content === void 0 ? \'\' : _options$content,\n _options$fonts = options.fonts,\n fonts = _options$fonts === void 0 ? {} : _options$fonts,\n _options$mediaQueries = options.mediaQueries,\n mediaQueries = _options$mediaQueries === void 0 ? {} : _options$mediaQueries,\n _options$headStyle = options.headStyle,\n headStyle = _options$headStyle === void 0 ? [] : _options$headStyle,\n _options$componentsHe = options.componentsHeadStyle,\n componentsHeadStyle = _options$componentsHe === void 0 ? {} : _options$componentsHe,\n _options$headRaw = options.headRaw,\n headRaw = _options$headRaw === void 0 ? [] : _options$headRaw,\n preview = options.preview,\n _options$title = options.title,\n title = _options$title === void 0 ? \'\' : _options$title,\n style = options.style,\n forceOWADesktop = options.forceOWADesktop,\n inlineStyle = options.inlineStyle,\n lang = options.lang;\n var langAttribute = lang ? `lang="${lang}" ` : \'\';\n return `\n \n \n \n \n ${title}\n \n \x3c!--[if !mso]>\x3c!-- --\x3e\n \n \x3c!--\n \n \n \x3c!--[if !mso]>\x3c!--\x3e\n \n \x3c!--\n \n \n \n 96\n \n \n \n \n \n ${Object(lodash__WEBPACK_IMPORTED_MODULE_0__["reduce"])(componentsHeadStyle, (result, compHeadStyle) => `${result}\\n${compHeadStyle(breakpoint)}`, \'\')}\n ${Object(lodash__WEBPACK_IMPORTED_MODULE_0__["reduce"])(headStyle, (result, headStyle) => `${result}\\n${headStyle(breakpoint)}`, \'\')}\n \n ${style && style.length > 0 ? `` : \'\'}\n ${headRaw.filter(Object(lodash__WEBPACK_IMPORTED_MODULE_0__["negate"])(lodash__WEBPACK_IMPORTED_MODULE_0__["isNil"])).join(\'\\n\')}\n \n \n ${Object(_preview__WEBPACK_IMPORTED_MODULE_1__["default"])(preview)}\n ${content}\n \n \n `;\n}\n\n//# sourceURL=webpack://mjml/./mjml/packages/mjml-core/src/helpers/skeleton.js?')},"./mjml/packages/mjml-core/src/helpers/suffixCssClasses.js":/*!*****************************************************************!*\ - !*** ./mjml/packages/mjml-core/src/helpers/suffixCssClasses.js ***! - \*****************************************************************/ -/*! exports provided: default */ -function(module,__webpack_exports__,__webpack_require__){"use strict";eval("__webpack_require__.r(__webpack_exports__);\n/* harmony default export */ __webpack_exports__[\"default\"] = ((classes, suffix) => classes ? classes.split(' ').map(c => `${c}-${suffix}`).join(' ') : '');\n\n//# sourceURL=webpack://mjml/./mjml/packages/mjml-core/src/helpers/suffixCssClasses.js?")},"./mjml/packages/mjml-core/src/helpers/widthParser.js":/*!************************************************************!*\ - !*** ./mjml/packages/mjml-core/src/helpers/widthParser.js ***! - \************************************************************/ -/*! exports provided: default */ -function(module,__webpack_exports__,__webpack_require__){"use strict";eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"default\", function() { return widthParser; });\nvar unitRegex = /[\\d.,]*(\\D*)$/;\nfunction widthParser(width) {\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n var _options$parseFloatTo = options.parseFloatToInt,\n parseFloatToInt = _options$parseFloatTo === void 0 ? true : _options$parseFloatTo;\n var widthUnit = unitRegex.exec(width.toString())[1];\n var unitParsers = {\n default: parseInt,\n px: parseInt,\n '%': parseFloatToInt ? parseInt : parseFloat\n };\n var parser = unitParsers[widthUnit] || unitParsers.default;\n return {\n parsedWidth: parser(width),\n unit: widthUnit || 'px'\n };\n}\n\n//# sourceURL=webpack://mjml/./mjml/packages/mjml-core/src/helpers/widthParser.js?")},"./mjml/packages/mjml-core/src/index.js":/*!**********************************************!*\ - !*** ./mjml/packages/mjml-core/src/index.js ***! - \**********************************************/ -/*! exports provided: default, components, initComponent, registerComponent, suffixCssClasses, handleMjmlConfig, initializeType, BodyComponent, HeadComponent */ -function(module,__webpack_exports__,__webpack_require__){"use strict";eval('__webpack_require__.r(__webpack_exports__);\n/* WEBPACK VAR INJECTION */(function(process) {/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "default", function() { return mjml2html; });\n/* harmony import */ var lodash__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! lodash */ "./node_modules/lodash/lodash.js");\n/* harmony import */ var lodash__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(lodash__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var path__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! path */ "./node_modules/path-browserify/index.js");\n/* harmony import */ var path__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(path__WEBPACK_IMPORTED_MODULE_1__);\n/* harmony import */ var juice__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! juice */ "./node_modules/juice/client.js");\n/* harmony import */ var juice__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(juice__WEBPACK_IMPORTED_MODULE_2__);\n/* harmony import */ var js_beautify__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! js-beautify */ "./node_modules/js-beautify/js/index.js");\n/* harmony import */ var js_beautify__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(js_beautify__WEBPACK_IMPORTED_MODULE_3__);\n/* harmony import */ var html_minifier__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! html-minifier */ "./node_modules/html-minifier/src/htmlminifier.js");\n/* harmony import */ var html_minifier__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(html_minifier__WEBPACK_IMPORTED_MODULE_4__);\n/* harmony import */ var mjml_parser_xml__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! mjml-parser-xml */ "./mjml/packages/mjml-parser-xml/src/index.js");\n/* harmony import */ var mjml_validator__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! mjml-validator */ "./mjml/packages/mjml-validator/src/index.js");\n/* harmony import */ var mjml_migrate__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! mjml-migrate */ "./mjml/packages/mjml-migrate/src/migrate.js");\n/* harmony import */ var _components__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ./components */ "./mjml/packages/mjml-core/src/components.js");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "components", function() { return _components__WEBPACK_IMPORTED_MODULE_8__["default"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "initComponent", function() { return _components__WEBPACK_IMPORTED_MODULE_8__["initComponent"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "registerComponent", function() { return _components__WEBPACK_IMPORTED_MODULE_8__["registerComponent"]; });\n\n/* harmony import */ var _helpers_suffixCssClasses__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ./helpers/suffixCssClasses */ "./mjml/packages/mjml-core/src/helpers/suffixCssClasses.js");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "suffixCssClasses", function() { return _helpers_suffixCssClasses__WEBPACK_IMPORTED_MODULE_9__["default"]; });\n\n/* harmony import */ var _helpers_mergeOutlookConditionnals__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ./helpers/mergeOutlookConditionnals */ "./mjml/packages/mjml-core/src/helpers/mergeOutlookConditionnals.js");\n/* harmony import */ var _helpers_minifyOutlookConditionnals__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! ./helpers/minifyOutlookConditionnals */ "./mjml/packages/mjml-core/src/helpers/minifyOutlookConditionnals.js");\n/* harmony import */ var _helpers_skeleton__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! ./helpers/skeleton */ "./mjml/packages/mjml-core/src/helpers/skeleton.js");\n/* harmony import */ var _types_type__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(/*! ./types/type */ "./mjml/packages/mjml-core/src/types/type.js");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "initializeType", function() { return _types_type__WEBPACK_IMPORTED_MODULE_13__["initializeType"]; });\n\n/* harmony import */ var _helpers_mjmlconfig__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__(/*! ./helpers/mjmlconfig */ "./mjml/packages/mjml-core/src/helpers/mjmlconfig.js");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "handleMjmlConfig", function() { return _helpers_mjmlconfig__WEBPACK_IMPORTED_MODULE_14__["default"]; });\n\n/* harmony import */ var _createComponent__WEBPACK_IMPORTED_MODULE_15__ = __webpack_require__(/*! ./createComponent */ "./mjml/packages/mjml-core/src/createComponent.js");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "BodyComponent", function() { return _createComponent__WEBPACK_IMPORTED_MODULE_15__["BodyComponent"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "HeadComponent", function() { return _createComponent__WEBPACK_IMPORTED_MODULE_15__["HeadComponent"]; });\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; var ownKeys = Object.keys(source); if (typeof Object.getOwnPropertySymbols === \'function\') { ownKeys = ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function (sym) { return Object.getOwnPropertyDescriptor(source, sym).enumerable; })); } ownKeys.forEach(function (key) { _defineProperty(target, key, source[key]); }); } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nclass ValidationError extends Error {\n constructor(message, errors) {\n super(message);\n this.errors = errors;\n }\n\n}\n\nfunction mjml2html(mjml) {\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n var content = \'\';\n var errors = [];\n\n if (typeof options.skeleton === \'string\') {\n /* eslint-disable global-require */\n\n /* eslint-disable import/no-dynamic-require */\n options.skeleton = __webpack_require__("./mjml/packages/mjml-core/src sync recursive")(options.skeleton.charAt(0) === \'.\' ? path__WEBPACK_IMPORTED_MODULE_1___default.a.resolve(process.cwd(), options.skeleton) : options.skeleton);\n /* eslint-enable global-require */\n\n /* eslint-enable import/no-dynamic-require */\n }\n\n var _options$beautify = options.beautify,\n beautify = _options$beautify === void 0 ? false : _options$beautify,\n _options$fonts = options.fonts,\n fonts = _options$fonts === void 0 ? {\n \'Open Sans\': \'https://fonts.googleapis.com/css?family=Open+Sans:300,400,500,700\',\n \'Droid Sans\': \'https://fonts.googleapis.com/css?family=Droid+Sans:300,400,500,700\',\n Lato: \'https://fonts.googleapis.com/css?family=Lato:300,400,500,700\',\n Roboto: \'https://fonts.googleapis.com/css?family=Roboto:300,400,500,700\',\n Ubuntu: \'https://fonts.googleapis.com/css?family=Ubuntu:300,400,500,700\'\n } : _options$fonts,\n keepComments = options.keepComments,\n _options$minify = options.minify,\n minify = _options$minify === void 0 ? false : _options$minify,\n _options$minifyOption = options.minifyOptions,\n minifyOptions = _options$minifyOption === void 0 ? {} : _options$minifyOption,\n _options$skeleton = options.skeleton,\n skeleton = _options$skeleton === void 0 ? _helpers_skeleton__WEBPACK_IMPORTED_MODULE_12__["default"] : _options$skeleton,\n _options$validationLe = options.validationLevel,\n validationLevel = _options$validationLe === void 0 ? \'soft\' : _options$validationLe,\n _options$filePath = options.filePath,\n filePath = _options$filePath === void 0 ? \'.\' : _options$filePath,\n _options$mjmlConfigPa = options.mjmlConfigPath,\n mjmlConfigPath = _options$mjmlConfigPa === void 0 ? null : _options$mjmlConfigPa; // if mjmlConfigPath is specified then we need to handle it on each call\n\n if (mjmlConfigPath) Object(_helpers_mjmlconfig__WEBPACK_IMPORTED_MODULE_14__["default"])(mjmlConfigPath, _components__WEBPACK_IMPORTED_MODULE_8__["registerComponent"]);\n\n if (typeof mjml === \'string\') {\n mjml = Object(mjml_parser_xml__WEBPACK_IMPORTED_MODULE_5__["default"])(mjml, {\n keepComments,\n components: _components__WEBPACK_IMPORTED_MODULE_8__["default"],\n filePath\n });\n }\n\n mjml = Object(mjml_migrate__WEBPACK_IMPORTED_MODULE_7__["handleMjml3"])(mjml);\n var globalDatas = {\n backgroundColor: \'\',\n breakpoint: \'480px\',\n classes: {},\n classesDefault: {},\n defaultAttributes: {},\n fonts,\n inlineStyle: [],\n headStyle: {},\n componentsHeadStyle: [],\n headRaw: [],\n mediaQueries: {},\n preview: \'\',\n style: [],\n title: \'\',\n forceOWADesktop: Object(lodash__WEBPACK_IMPORTED_MODULE_0__["get"])(mjml, \'attributes.owa\', \'mobile\') === \'desktop\',\n lang: Object(lodash__WEBPACK_IMPORTED_MODULE_0__["get"])(mjml, \'attributes.lang\')\n };\n var validatorOptions = {\n components: _components__WEBPACK_IMPORTED_MODULE_8__["default"],\n initializeType: _types_type__WEBPACK_IMPORTED_MODULE_13__["initializeType"]\n };\n\n switch (validationLevel) {\n case \'skip\':\n break;\n\n case \'strict\':\n errors = Object(mjml_validator__WEBPACK_IMPORTED_MODULE_6__["default"])(mjml, validatorOptions);\n\n if (errors.length > 0) {\n throw new ValidationError(`ValidationError: \\n ${errors.map(e => e.formattedMessage).join(\'\\n\')}`, errors);\n }\n\n break;\n\n case \'soft\':\n default:\n errors = Object(mjml_validator__WEBPACK_IMPORTED_MODULE_6__["default"])(mjml, validatorOptions);\n break;\n }\n\n var mjBody = Object(lodash__WEBPACK_IMPORTED_MODULE_0__["find"])(mjml.children, {\n tagName: \'mj-body\'\n });\n var mjHead = Object(lodash__WEBPACK_IMPORTED_MODULE_0__["find"])(mjml.children, {\n tagName: \'mj-head\'\n });\n\n var _processing = function processing(node, context) {\n var parseMJML = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : lodash__WEBPACK_IMPORTED_MODULE_0__["identity"];\n\n if (!node) {\n return;\n }\n\n var component = Object(_components__WEBPACK_IMPORTED_MODULE_8__["initComponent"])({\n name: node.tagName,\n initialDatas: _objectSpread({}, parseMJML(node), {\n context\n })\n });\n\n if (component !== null) {\n if (\'handler\' in component) {\n return component.handler(); // eslint-disable-line consistent-return\n }\n\n if (\'render\' in component) {\n return component.render(); // eslint-disable-line consistent-return\n }\n }\n };\n\n var applyAttributes = mjml => {\n var parse = function parse(mjml) {\n var parentMjClass = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : \'\';\n var attributes = mjml.attributes,\n tagName = mjml.tagName,\n children = mjml.children;\n var classes = Object(lodash__WEBPACK_IMPORTED_MODULE_0__["get"])(mjml.attributes, \'mj-class\', \'\').split(\' \');\n var attributesClasses = Object(lodash__WEBPACK_IMPORTED_MODULE_0__["reduce"])(classes, (acc, value) => {\n var mjClassValues = globalDatas.classes[value];\n var multipleClasses = {};\n\n if (acc[\'css-class\'] && Object(lodash__WEBPACK_IMPORTED_MODULE_0__["get"])(mjClassValues, \'css-class\')) {\n multipleClasses = {\n \'css-class\': `${acc[\'css-class\']} ${mjClassValues[\'css-class\']}`\n };\n }\n\n return _objectSpread({}, acc, mjClassValues, multipleClasses);\n }, {});\n var defaultAttributesForClasses = Object(lodash__WEBPACK_IMPORTED_MODULE_0__["reduce"])(parentMjClass.split(\' \'), (acc, value) => _objectSpread({}, acc, Object(lodash__WEBPACK_IMPORTED_MODULE_0__["get"])(globalDatas.classesDefault, `${value}.${tagName}`)), {});\n var nextParentMjClass = Object(lodash__WEBPACK_IMPORTED_MODULE_0__["get"])(attributes, \'mj-class\', parentMjClass);\n return _objectSpread({}, mjml, {\n attributes: _objectSpread({}, globalDatas.defaultAttributes[tagName], attributesClasses, defaultAttributesForClasses, Object(lodash__WEBPACK_IMPORTED_MODULE_0__["omit"])(attributes, [\'mj-class\'])),\n globalAttributes: _objectSpread({}, globalDatas.defaultAttributes[\'mj-all\']),\n children: Object(lodash__WEBPACK_IMPORTED_MODULE_0__["map"])(children, mjml => parse(mjml, nextParentMjClass))\n });\n };\n\n return parse(mjml);\n };\n\n var bodyHelpers = {\n addMediaQuery(className, _ref) {\n var parsedWidth = _ref.parsedWidth,\n unit = _ref.unit;\n globalDatas.mediaQueries[className] = `{ width:${parsedWidth}${unit} !important; max-width: ${parsedWidth}${unit}; }`;\n },\n\n addHeadSyle(identifier, headStyle) {\n globalDatas.headStyle[identifier] = headStyle;\n },\n\n addComponentHeadSyle(headStyle) {\n globalDatas.componentsHeadStyle.push(headStyle);\n },\n\n setBackgroundColor: color => {\n globalDatas.backgroundColor = color;\n },\n processing: (node, context) => _processing(node, context, applyAttributes)\n };\n var headHelpers = {\n add(attr) {\n for (var _len = arguments.length, params = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n params[_key - 1] = arguments[_key];\n }\n\n if (Array.isArray(globalDatas[attr])) {\n globalDatas[attr].push(...params);\n } else if (Object.prototype.hasOwnProperty.call(globalDatas, attr)) {\n if (params.length > 1) {\n if (Object(lodash__WEBPACK_IMPORTED_MODULE_0__["isObject"])(globalDatas[attr][params[0]])) {\n globalDatas[attr][params[0]] = _objectSpread({}, globalDatas[attr][params[0]], params[1]);\n } else {\n globalDatas[attr][params[0]] = params[1];\n }\n } else {\n globalDatas[attr] = params[0];\n }\n } else {\n throw Error(`An mj-head element add an unkown head attribute : ${attr} with params ${Array.isArray(params) ? params.join(\'\') : params}`);\n }\n }\n\n };\n globalDatas.headRaw = _processing(mjHead, headHelpers);\n content = _processing(mjBody, bodyHelpers, applyAttributes);\n\n if (minify && minify !== \'false\') {\n content = Object(_helpers_minifyOutlookConditionnals__WEBPACK_IMPORTED_MODULE_11__["default"])(content);\n }\n\n content = skeleton(_objectSpread({\n content\n }, globalDatas));\n\n if (globalDatas.inlineStyle.length > 0) {\n content = juice__WEBPACK_IMPORTED_MODULE_2___default()(content, {\n applyStyleTags: false,\n extraCss: globalDatas.inlineStyle.join(\'\'),\n insertPreservedExtraCss: false,\n removeStyleTags: false\n });\n }\n\n content = beautify && beautify !== \'false\' ? Object(js_beautify__WEBPACK_IMPORTED_MODULE_3__["html"])(content, {\n indent_size: 2,\n wrap_attributes_indent_size: 2,\n max_preserve_newline: 0,\n preserve_newlines: false\n }) : content;\n\n if (minify && minify !== \'false\') {\n content = Object(html_minifier__WEBPACK_IMPORTED_MODULE_4__["minify"])(content, _objectSpread({\n collapseWhitespace: true,\n minifyCSS: false,\n removeEmptyAttributes: true\n }, minifyOptions));\n }\n\n content = Object(_helpers_mergeOutlookConditionnals__WEBPACK_IMPORTED_MODULE_10__["default"])(content);\n return {\n html: content,\n errors\n };\n}\nObject(_helpers_mjmlconfig__WEBPACK_IMPORTED_MODULE_14__["default"])(process.cwd(), _components__WEBPACK_IMPORTED_MODULE_8__["registerComponent"]);\n\n\n/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(/*! ./../../../../node_modules/process/browser.js */ "./node_modules/process/browser.js")))\n\n//# sourceURL=webpack://mjml/./mjml/packages/mjml-core/src/index.js?')},"./mjml/packages/mjml-core/src/types/boolean.js":/*!******************************************************!*\ - !*** ./mjml/packages/mjml-core/src/types/boolean.js ***! - \******************************************************/ -/*! exports provided: matcher, default */ -function(module,__webpack_exports__,__webpack_require__){"use strict";eval('__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "matcher", function() { return matcher; });\n/* harmony import */ var _type__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./type */ "./mjml/packages/mjml-core/src/types/type.js");\n\nvar matcher = /^boolean/gim;\n/* harmony default export */ __webpack_exports__["default"] = (() => class Boolean extends _type__WEBPACK_IMPORTED_MODULE_0__["default"] {\n constructor(boolean) {\n super(boolean);\n this.matchers = [/^true$/i, /^false$/i];\n }\n\n isValid() {\n return this.value === true || this.value === false;\n }\n\n});\n\n//# sourceURL=webpack://mjml/./mjml/packages/mjml-core/src/types/boolean.js?')},"./mjml/packages/mjml-core/src/types/color.js":/*!****************************************************!*\ - !*** ./mjml/packages/mjml-core/src/types/color.js ***! - \****************************************************/ -/*! exports provided: matcher, default */ -function(module,__webpack_exports__,__webpack_require__){"use strict";eval('__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "matcher", function() { return matcher; });\n/* harmony import */ var _type__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./type */ "./mjml/packages/mjml-core/src/types/type.js");\n/* harmony import */ var _helpers_colors__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./helpers/colors */ "./mjml/packages/mjml-core/src/types/helpers/colors.js");\n\n\nvar matcher = /^color/gim;\nvar shorthandRegex = /^#\\w{3}$/;\nvar replaceInputRegex = /^#(\\w)(\\w)(\\w)$/;\nvar replaceOutput = \'#$1$1$2$2$3$3\';\n/* harmony default export */ __webpack_exports__["default"] = (() => class Color extends _type__WEBPACK_IMPORTED_MODULE_0__["default"] {\n constructor(color) {\n super(color);\n this.matchers = [/rgba\\(\\d{1,3},\\s?\\d{1,3},\\s?\\d{1,3},\\s?\\d(\\.\\d{1,3})?\\)/gi, /rgb\\(\\d{1,3},\\s?\\d{1,3},\\s?\\d{1,3}\\)/gi, /^#([0-9a-f]{3}){1,2}$/gi, new RegExp(`^(${_helpers_colors__WEBPACK_IMPORTED_MODULE_1__["default"].join(\'|\')})$`)];\n }\n\n getValue() {\n if (this.value.match(shorthandRegex)) {\n return this.value.replace(replaceInputRegex, replaceOutput);\n }\n\n return this.value;\n }\n\n});\n\n//# sourceURL=webpack://mjml/./mjml/packages/mjml-core/src/types/color.js?')},"./mjml/packages/mjml-core/src/types/enum.js":/*!***************************************************!*\ - !*** ./mjml/packages/mjml-core/src/types/enum.js ***! - \***************************************************/ -/*! exports provided: matcher, default */ -function(module,__webpack_exports__,__webpack_require__){"use strict";eval('__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "matcher", function() { return matcher; });\n/* harmony import */ var lodash_escapeRegExp__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! lodash/escapeRegExp */ "./node_modules/lodash/escapeRegExp.js");\n/* harmony import */ var lodash_escapeRegExp__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(lodash_escapeRegExp__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var _type__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./type */ "./mjml/packages/mjml-core/src/types/type.js");\n\n\nvar matcher = /^enum/gim;\n/* harmony default export */ __webpack_exports__["default"] = (params => {\n var _class, _temp;\n\n var matchers = params.match(/\\(([^)]+)\\)/)[1].split(\',\');\n return _temp = _class = class Enum extends _type__WEBPACK_IMPORTED_MODULE_1__["default"] {\n constructor(value) {\n super(value);\n this.matchers = matchers.map(m => new RegExp(`^${lodash_escapeRegExp__WEBPACK_IMPORTED_MODULE_0___default()(m)}$`));\n }\n\n }, _class.errorMessage = `has invalid value: $value for type Enum, only accepts ${matchers.join(\', \')}`, _temp;\n});\n\n//# sourceURL=webpack://mjml/./mjml/packages/mjml-core/src/types/enum.js?')},"./mjml/packages/mjml-core/src/types/helpers/colors.js":/*!*************************************************************!*\ - !*** ./mjml/packages/mjml-core/src/types/helpers/colors.js ***! - \*************************************************************/ -/*! exports provided: default */ -function(module,__webpack_exports__,__webpack_require__){"use strict";eval("__webpack_require__.r(__webpack_exports__);\n/* harmony default export */ __webpack_exports__[\"default\"] = (['aliceblue', 'antiquewhite', 'aqua', 'aquamarine', 'azure', 'beige', 'bisque', 'black', 'blanchedalmond', 'blue', 'blueviolet', 'brown', 'burlywood', 'cadetblue', 'chartreuse', 'chocolate', 'coral', 'cornflowerblue', 'cornsilk', 'crimson', 'cyan', 'darkblue', 'darkcyan', 'darkgoldenrod', 'darkgray', 'darkgreen', 'darkgrey', 'darkkhaki', 'darkmagenta', 'darkolivegreen', 'darkorange', 'darkorchid', 'darkred', 'darksalmon', 'darkseagreen', 'darkslateblue', 'darkslategray', 'darkslategrey', 'darkturquoise', 'darkviolet', 'deeppink', 'deepskyblue', 'dimgray', 'dimgrey', 'dodgerblue', 'firebrick', 'floralwhite', 'forestgreen', 'fuchsia', 'gainsboro', 'ghostwhite', 'gold', 'goldenrod', 'gray', 'green', 'greenyellow', 'grey', 'honeydew', 'hotpink', 'indianred', 'indigo', 'ivory', 'khaki', 'lavender', 'lavenderblush', 'lawngreen', 'lemonchiffon', 'lightblue', 'lightcoral', 'lightcyan', 'lightgoldenrodyellow', 'lightgray', 'lightgreen', 'lightgrey', 'lightpink', 'lightsalmon', 'lightseagreen', 'lightskyblue', 'lightslategray', 'lightslategrey', 'lightsteelblue', 'lightyellow', 'lime', 'limegreen', 'linen', 'magenta', 'maroon', 'mediumaquamarine', 'mediumblue', 'mediumorchid', 'mediumpurple', 'mediumseagreen', 'mediumslateblue', 'mediumspringgreen', 'mediumturquoise', 'mediumvioletred', 'midnightblue', 'mintcream', 'mistyrose', 'moccasin', 'navajowhite', 'navy', 'oldlace', 'olive', 'olivedrab', 'orange', 'orangered', 'orchid', 'palegoldenrod', 'palegreen', 'paleturquoise', 'palevioletred', 'papayawhip', 'peachpuff', 'peru', 'pink', 'plum', 'powderblue', 'purple', 'rebeccapurple', 'red', 'rosybrown', 'royalblue', 'saddlebrown', 'salmon', 'sandybrown', 'seagreen', 'seashell', 'sienna', 'silver', 'skyblue', 'slateblue', 'slategray', 'slategrey', 'snow', 'springgreen', 'steelblue', 'tan', 'teal', 'thistle', 'tomato', 'transparent', 'turquoise', 'violet', 'wheat', 'white', 'whitesmoke', 'yellow', 'yellowgreen']);\n\n//# sourceURL=webpack://mjml/./mjml/packages/mjml-core/src/types/helpers/colors.js?")},"./mjml/packages/mjml-core/src/types/index.js":/*!****************************************************!*\ - !*** ./mjml/packages/mjml-core/src/types/index.js ***! - \****************************************************/ -/*! exports provided: default */ -function(module,__webpack_exports__,__webpack_require__){"use strict";eval('__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _boolean__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./boolean */ "./mjml/packages/mjml-core/src/types/boolean.js");\n/* harmony import */ var _color__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./color */ "./mjml/packages/mjml-core/src/types/color.js");\n/* harmony import */ var _enum__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./enum */ "./mjml/packages/mjml-core/src/types/enum.js");\n/* harmony import */ var _unit__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./unit */ "./mjml/packages/mjml-core/src/types/unit.js");\n/* harmony import */ var _string__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./string */ "./mjml/packages/mjml-core/src/types/string.js");\n/* harmony import */ var _integer__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./integer */ "./mjml/packages/mjml-core/src/types/integer.js");\n\n\n\n\n\n\n/* harmony default export */ __webpack_exports__["default"] = ({\n boolean: {\n matcher: _boolean__WEBPACK_IMPORTED_MODULE_0__["matcher"],\n typeConstructor: _boolean__WEBPACK_IMPORTED_MODULE_0__["default"]\n },\n enum: {\n matcher: _enum__WEBPACK_IMPORTED_MODULE_2__["matcher"],\n typeConstructor: _enum__WEBPACK_IMPORTED_MODULE_2__["default"]\n },\n color: {\n matcher: _color__WEBPACK_IMPORTED_MODULE_1__["matcher"],\n typeConstructor: _color__WEBPACK_IMPORTED_MODULE_1__["default"]\n },\n unit: {\n matcher: _unit__WEBPACK_IMPORTED_MODULE_3__["matcher"],\n typeConstructor: _unit__WEBPACK_IMPORTED_MODULE_3__["default"]\n },\n string: {\n matcher: _string__WEBPACK_IMPORTED_MODULE_4__["matcher"],\n typeConstructor: _string__WEBPACK_IMPORTED_MODULE_4__["default"]\n },\n integer: {\n matcher: _integer__WEBPACK_IMPORTED_MODULE_5__["matcher"],\n typeConstructor: _integer__WEBPACK_IMPORTED_MODULE_5__["default"]\n }\n});\n\n//# sourceURL=webpack://mjml/./mjml/packages/mjml-core/src/types/index.js?')},"./mjml/packages/mjml-core/src/types/integer.js":/*!******************************************************!*\ - !*** ./mjml/packages/mjml-core/src/types/integer.js ***! - \******************************************************/ -/*! exports provided: matcher, default */ -function(module,__webpack_exports__,__webpack_require__){"use strict";eval('__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "matcher", function() { return matcher; });\n/* harmony import */ var _type__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./type */ "./mjml/packages/mjml-core/src/types/type.js");\n\nvar matcher = /^integer/gim;\n/* harmony default export */ __webpack_exports__["default"] = (() => class NInteger extends _type__WEBPACK_IMPORTED_MODULE_0__["default"] {\n constructor(value) {\n super(value);\n this.matchers = [/\\d+/];\n }\n\n});\n\n//# sourceURL=webpack://mjml/./mjml/packages/mjml-core/src/types/integer.js?')},"./mjml/packages/mjml-core/src/types/string.js":/*!*****************************************************!*\ - !*** ./mjml/packages/mjml-core/src/types/string.js ***! - \*****************************************************/ -/*! exports provided: matcher, default */ -function(module,__webpack_exports__,__webpack_require__){"use strict";eval('__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "matcher", function() { return matcher; });\n/* harmony import */ var _type__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./type */ "./mjml/packages/mjml-core/src/types/type.js");\n\nvar matcher = /^string/gim;\n/* harmony default export */ __webpack_exports__["default"] = (() => class NString extends _type__WEBPACK_IMPORTED_MODULE_0__["default"] {\n constructor(value) {\n super(value);\n this.matchers = [/.*/];\n }\n\n});\n\n//# sourceURL=webpack://mjml/./mjml/packages/mjml-core/src/types/string.js?')},"./mjml/packages/mjml-core/src/types/type.js":/*!***************************************************!*\ - !*** ./mjml/packages/mjml-core/src/types/type.js ***! - \***************************************************/ -/*! exports provided: types, initializeType, default */ -function(module,__webpack_exports__,__webpack_require__){"use strict";eval('__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "types", function() { return types; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "initializeType", function() { return initializeType; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "default", function() { return Type; });\n/* harmony import */ var lodash_some__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! lodash/some */ "./node_modules/lodash/some.js");\n/* harmony import */ var lodash_some__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(lodash_some__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var lodash_find__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! lodash/find */ "./node_modules/lodash/find.js");\n/* harmony import */ var lodash_find__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(lodash_find__WEBPACK_IMPORTED_MODULE_1__);\n/* harmony import */ var _index__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./index */ "./mjml/packages/mjml-core/src/types/index.js");\n\n\n // Avoid recreate existing types\n\nvar types = {};\nvar initializeType = typeConfig => {\n if (types[typeConfig]) {\n return types[typeConfig];\n }\n\n var _ref = lodash_find__WEBPACK_IMPORTED_MODULE_1___default()(_index__WEBPACK_IMPORTED_MODULE_2__["default"], type => !!typeConfig.match(type.matcher)) || {},\n typeConstructor = _ref.typeConstructor;\n\n if (!typeConstructor) {\n throw new Error(`No type found for ${typeConfig}`);\n }\n\n types[typeConfig] = typeConstructor(typeConfig);\n return types[typeConfig];\n};\nclass Type {\n constructor(value) {\n this.value = value;\n }\n\n isValid() {\n return lodash_some__WEBPACK_IMPORTED_MODULE_0___default()(this.matchers, matcher => `${this.value}`.match(matcher));\n }\n\n getErrorMessage() {\n if (this.isValid()) {\n return;\n }\n\n var errorMessage = this.constructor.errorMessage || `has invalid value: ${this.value} for type ${this.constructor.name} `;\n return errorMessage.replace(/\\$value/g, this.value);\n }\n\n static check(type) {\n return !!type.match(this.constructor.typeChecker);\n }\n\n getValue() {\n return this.value;\n }\n\n}\n\n//# sourceURL=webpack://mjml/./mjml/packages/mjml-core/src/types/type.js?')},"./mjml/packages/mjml-core/src/types/unit.js":/*!***************************************************!*\ - !*** ./mjml/packages/mjml-core/src/types/unit.js ***! - \***************************************************/ -/*! exports provided: matcher, default */ -function(module,__webpack_exports__,__webpack_require__){"use strict";eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"matcher\", function() { return matcher; });\n/* harmony import */ var lodash_escapeRegExp__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! lodash/escapeRegExp */ \"./node_modules/lodash/escapeRegExp.js\");\n/* harmony import */ var lodash_escapeRegExp__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(lodash_escapeRegExp__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var _type__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./type */ \"./mjml/packages/mjml-core/src/types/type.js\");\n\n\nvar matcher = /^unit\\(.*\\)/gim;\n/* harmony default export */ __webpack_exports__[\"default\"] = (params => {\n var _class, _temp;\n\n var units = params.match(/\\(([^)]+)\\)/)[1].split(',');\n var argsMatch = params.match(/\\{([^}]+)\\}/);\n var args = argsMatch && argsMatch[1] && argsMatch[1].split(',') || ['1']; // defaults to 1\n\n return _temp = _class = class Unit extends _type__WEBPACK_IMPORTED_MODULE_1__[\"default\"] {\n constructor(value) {\n super(value);\n this.matchers = [new RegExp(`^(((\\\\d|,|.){1,}(${units.map(lodash_escapeRegExp__WEBPACK_IMPORTED_MODULE_0___default.a).join('|')})|0)( )?){${args.join(',')}}$`)];\n }\n\n }, _class.errorMessage = `has invalid value: $value for type Unit, only accepts (${units.join(', ')}) units and ${args.join(' to ')} value(s)`, _temp;\n});\n\n//# sourceURL=webpack://mjml/./mjml/packages/mjml-core/src/types/unit.js?")},"./mjml/packages/mjml-divider/src/index.js":/*!*************************************************!*\ - !*** ./mjml/packages/mjml-divider/src/index.js ***! - \*************************************************/ -/*! exports provided: default */ -function(module,__webpack_exports__,__webpack_require__){"use strict";eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"default\", function() { return MjDivider; });\n/* harmony import */ var mjml_core__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! mjml-core */ \"./mjml/packages/mjml-core/src/index.js\");\n/* harmony import */ var mjml_core_lib_helpers_widthParser__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! mjml-core/lib/helpers/widthParser */ \"./mjml/packages/mjml-core/src/helpers/widthParser.js\");\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; var ownKeys = Object.keys(source); if (typeof Object.getOwnPropertySymbols === 'function') { ownKeys = ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function (sym) { return Object.getOwnPropertyDescriptor(source, sym).enumerable; })); } ownKeys.forEach(function (key) { _defineProperty(target, key, source[key]); }); } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\n\n\nclass MjDivider extends mjml_core__WEBPACK_IMPORTED_MODULE_0__[\"BodyComponent\"] {\n getStyles() {\n var p = {\n 'border-top': ['style', 'width', 'color'].map(attr => this.getAttribute(`border-${attr}`)).join(' '),\n 'font-size': 1,\n margin: '0px auto',\n width: this.getAttribute('width')\n };\n return {\n p,\n outlook: _objectSpread({}, p, {\n width: this.getOutlookWidth()\n })\n };\n }\n\n getOutlookWidth() {\n var containerWidth = this.context.containerWidth;\n var paddingSize = this.getShorthandAttrValue('padding', 'left') + this.getShorthandAttrValue('padding', 'right');\n var width = this.getAttribute('width');\n\n var _widthParser = Object(mjml_core_lib_helpers_widthParser__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(width),\n parsedWidth = _widthParser.parsedWidth,\n unit = _widthParser.unit;\n\n switch (unit) {\n case '%':\n return `${parseInt(containerWidth, 10) * parseInt(parsedWidth, 10) / 100 - paddingSize}px`;\n\n case 'px':\n return width;\n\n default:\n return `${parseInt(containerWidth, 10) - paddingSize}px`;\n }\n }\n\n renderAfter() {\n return `\n \x3c!--[if mso | IE]>\n \n \n \n  \n \n \n \n \n

\n ${this.renderAfter()}\n `;\n }\n\n}\nMjDivider.tagOmission = true;\nMjDivider.allowedAttributes = {\n 'border-color': 'color',\n 'border-style': 'string',\n 'border-width': 'unit(px)',\n 'container-background-color': 'color',\n padding: 'unit(px,%){1,4}',\n 'padding-bottom': 'unit(px,%)',\n 'padding-left': 'unit(px,%)',\n 'padding-right': 'unit(px,%)',\n 'padding-top': 'unit(px,%)',\n width: 'unit(px,%)'\n};\nMjDivider.defaultAttributes = {\n 'border-color': '#000000',\n 'border-style': 'solid',\n 'border-width': '4px',\n padding: '10px 25px',\n width: '100%'\n};\n\n//# sourceURL=webpack://mjml/./mjml/packages/mjml-divider/src/index.js?")},"./mjml/packages/mjml-group/src/index.js":/*!***********************************************!*\ - !*** ./mjml/packages/mjml-group/src/index.js ***! - \***********************************************/ -/*! exports provided: default */ -function(module,__webpack_exports__,__webpack_require__){"use strict";eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"default\", function() { return MjGroup; });\n/* harmony import */ var mjml_core__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! mjml-core */ \"./mjml/packages/mjml-core/src/index.js\");\n/* harmony import */ var mjml_core_lib_helpers_widthParser__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! mjml-core/lib/helpers/widthParser */ \"./mjml/packages/mjml-core/src/helpers/widthParser.js\");\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; var ownKeys = Object.keys(source); if (typeof Object.getOwnPropertySymbols === 'function') { ownKeys = ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function (sym) { return Object.getOwnPropertyDescriptor(source, sym).enumerable; })); } ownKeys.forEach(function (key) { _defineProperty(target, key, source[key]); }); } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\n\n\nclass MjGroup extends mjml_core__WEBPACK_IMPORTED_MODULE_0__[\"BodyComponent\"] {\n getChildContext() {\n var parentWidth = this.context.containerWidth;\n var _this$props = this.props,\n nonRawSiblings = _this$props.nonRawSiblings,\n children = _this$props.children;\n var paddingSize = this.getShorthandAttrValue('padding', 'left') + this.getShorthandAttrValue('padding', 'right');\n var containerWidth = this.getAttribute('width') || `${parseFloat(parentWidth) / nonRawSiblings}px`;\n\n var _widthParser = Object(mjml_core_lib_helpers_widthParser__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(containerWidth, {\n parseFloatToInt: false\n }),\n unit = _widthParser.unit,\n parsedWidth = _widthParser.parsedWidth;\n\n if (unit === '%') {\n containerWidth = `${parseFloat(parentWidth) * parsedWidth / 100 - paddingSize}px`;\n } else {\n containerWidth = `${parsedWidth - paddingSize}px`;\n }\n\n return _objectSpread({}, this.context, {\n containerWidth,\n nonRawSiblings: children.length\n });\n }\n\n getStyles() {\n return {\n div: {\n 'font-size': '0',\n 'line-height': '0',\n 'text-align': 'left',\n display: 'inline-block',\n width: '100%',\n direction: this.getAttribute('direction'),\n 'vertical-align': this.getAttribute('vertical-align'),\n 'background-color': this.getAttribute('background-color')\n },\n tdOutlook: {\n 'vertical-align': this.getAttribute('vertical-align'),\n width: this.getWidthAsPixel()\n }\n };\n }\n\n getParsedWidth(toString) {\n var nonRawSiblings = this.props.nonRawSiblings;\n var width = this.getAttribute('width') || `${100 / nonRawSiblings}%`;\n\n var _widthParser2 = Object(mjml_core_lib_helpers_widthParser__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(width, {\n parseFloatToInt: false\n }),\n unit = _widthParser2.unit,\n parsedWidth = _widthParser2.parsedWidth;\n\n if (toString) {\n return `${parsedWidth}${unit}`;\n }\n\n return {\n unit,\n parsedWidth\n };\n }\n\n getWidthAsPixel() {\n var containerWidth = this.context.containerWidth;\n\n var _widthParser3 = Object(mjml_core_lib_helpers_widthParser__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(this.getParsedWidth(true), {\n parseFloatToInt: false\n }),\n unit = _widthParser3.unit,\n parsedWidth = _widthParser3.parsedWidth;\n\n if (unit === '%') {\n return `${parseFloat(containerWidth) * parsedWidth / 100}px`;\n }\n\n return `${parsedWidth}px`;\n }\n\n getColumnClass() {\n var addMediaQuery = this.context.addMediaQuery;\n var className = '';\n\n var _this$getParsedWidth = this.getParsedWidth(),\n parsedWidth = _this$getParsedWidth.parsedWidth,\n unit = _this$getParsedWidth.unit;\n\n switch (unit) {\n case '%':\n className = `mj-column-per-${parseInt(parsedWidth, 10)}`;\n break;\n\n case 'px':\n default:\n className = `mj-column-px-${parseInt(parsedWidth, 10)}`;\n break;\n } // Add className to media queries\n\n\n addMediaQuery(className, {\n parsedWidth,\n unit\n });\n return className;\n }\n\n render() {\n var _this$props2 = this.props,\n children = _this$props2.children,\n nonRawSiblings = _this$props2.nonRawSiblings;\n\n var _this$getChildContext = this.getChildContext(),\n groupWidth = _this$getChildContext.containerWidth;\n\n var containerWidth = this.context.containerWidth;\n\n var getElementWidth = width => {\n if (!width) {\n return `${parseInt(containerWidth, 10) / parseInt(nonRawSiblings, 10)}px`;\n }\n\n var _widthParser4 = Object(mjml_core_lib_helpers_widthParser__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(width, {\n parseFloatToInt: false\n }),\n unit = _widthParser4.unit,\n parsedWidth = _widthParser4.parsedWidth;\n\n if (unit === '%') {\n return `${100 * parsedWidth / groupWidth}px`;\n }\n\n return `${parsedWidth}${unit}`;\n };\n\n var classesName = `${this.getColumnClass()} outlook-group-fix`;\n\n if (this.getAttribute('css-class')) {\n classesName += ` ${this.getAttribute('css-class')}`;\n }\n\n return `\n \n \x3c!--[if mso | IE]>\n \n \n component.constructor.isRawElement() ? component.render() : `\n \x3c!--[if mso | IE]>\n \n \n \n \n \n
\n \n `;\n }\n\n}\nMjGroup.allowedAttributes = {\n 'background-color': 'color',\n direction: 'enum(ltr,rtl)',\n 'vertical-align': 'enum(top,bottom,middle)',\n width: 'unit(px,%)'\n};\nMjGroup.defaultAttributes = {\n direction: 'ltr'\n};\n\n//# sourceURL=webpack://mjml/./mjml/packages/mjml-group/src/index.js?")},"./mjml/packages/mjml-head-attributes/src/index.js":/*!*********************************************************!*\ - !*** ./mjml/packages/mjml-head-attributes/src/index.js ***! - \*********************************************************/ -/*! exports provided: default */ -function(module,__webpack_exports__,__webpack_require__){"use strict";eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"default\", function() { return MjAttributes; });\n/* harmony import */ var lodash_forEach__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! lodash/forEach */ \"./node_modules/lodash/forEach.js\");\n/* harmony import */ var lodash_forEach__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(lodash_forEach__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var lodash_omit__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! lodash/omit */ \"./node_modules/lodash/omit.js\");\n/* harmony import */ var lodash_omit__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(lodash_omit__WEBPACK_IMPORTED_MODULE_1__);\n/* harmony import */ var lodash_reduce__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! lodash/reduce */ \"./node_modules/lodash/reduce.js\");\n/* harmony import */ var lodash_reduce__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(lodash_reduce__WEBPACK_IMPORTED_MODULE_2__);\n/* harmony import */ var mjml_core__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! mjml-core */ \"./mjml/packages/mjml-core/src/index.js\");\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; var ownKeys = Object.keys(source); if (typeof Object.getOwnPropertySymbols === 'function') { ownKeys = ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function (sym) { return Object.getOwnPropertyDescriptor(source, sym).enumerable; })); } ownKeys.forEach(function (key) { _defineProperty(target, key, source[key]); }); } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\n\n\n\n\nclass MjAttributes extends mjml_core__WEBPACK_IMPORTED_MODULE_3__[\"HeadComponent\"] {\n handler() {\n var add = this.context.add;\n var children = this.props.children;\n lodash_forEach__WEBPACK_IMPORTED_MODULE_0___default()(children, child => {\n var tagName = child.tagName,\n attributes = child.attributes,\n children = child.children;\n\n if (tagName === 'mj-class') {\n add('classes', attributes.name, lodash_omit__WEBPACK_IMPORTED_MODULE_1___default()(attributes, ['name']));\n add('classesDefault', attributes.name, lodash_reduce__WEBPACK_IMPORTED_MODULE_2___default()(children, (acc, _ref) => {\n var tagName = _ref.tagName,\n attributes = _ref.attributes;\n return _objectSpread({}, acc, {\n [tagName]: attributes\n });\n }, {}));\n } else {\n add('defaultAttributes', tagName, attributes);\n }\n });\n }\n\n}\n\n//# sourceURL=webpack://mjml/./mjml/packages/mjml-head-attributes/src/index.js?")},"./mjml/packages/mjml-head-breakpoint/src/index.js":/*!*********************************************************!*\ - !*** ./mjml/packages/mjml-head-breakpoint/src/index.js ***! - \*********************************************************/ -/*! exports provided: default */ -function(module,__webpack_exports__,__webpack_require__){"use strict";eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"default\", function() { return MjBreakpoint; });\n/* harmony import */ var mjml_core__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! mjml-core */ \"./mjml/packages/mjml-core/src/index.js\");\n\nclass MjBreakpoint extends mjml_core__WEBPACK_IMPORTED_MODULE_0__[\"HeadComponent\"] {\n handler() {\n var add = this.context.add;\n add('breakpoint', this.getAttribute('width'));\n }\n\n}\nMjBreakpoint.endingTag = true;\nMjBreakpoint.allowedAttributes = {\n width: 'unit(px)'\n};\n\n//# sourceURL=webpack://mjml/./mjml/packages/mjml-head-breakpoint/src/index.js?")},"./mjml/packages/mjml-head-font/src/index.js":/*!***************************************************!*\ - !*** ./mjml/packages/mjml-head-font/src/index.js ***! - \***************************************************/ -/*! exports provided: default */ -function(module,__webpack_exports__,__webpack_require__){"use strict";eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"default\", function() { return MjFont; });\n/* harmony import */ var mjml_core__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! mjml-core */ \"./mjml/packages/mjml-core/src/index.js\");\n\nclass MjFont extends mjml_core__WEBPACK_IMPORTED_MODULE_0__[\"HeadComponent\"] {\n handler() {\n var add = this.context.add;\n add('fonts', this.getAttribute('name'), this.getAttribute('href'));\n }\n\n}\nMjFont.tagOmission = true;\nMjFont.allowedAttributes = {\n name: 'string',\n href: 'string'\n};\n\n//# sourceURL=webpack://mjml/./mjml/packages/mjml-head-font/src/index.js?")},"./mjml/packages/mjml-head-preview/src/index.js":/*!******************************************************!*\ - !*** ./mjml/packages/mjml-head-preview/src/index.js ***! - \******************************************************/ -/*! exports provided: default */ -function(module,__webpack_exports__,__webpack_require__){"use strict";eval('__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "default", function() { return MjPreview; });\n/* harmony import */ var mjml_core__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! mjml-core */ "./mjml/packages/mjml-core/src/index.js");\n\nclass MjPreview extends mjml_core__WEBPACK_IMPORTED_MODULE_0__["HeadComponent"] {\n handler() {\n var add = this.context.add;\n add(\'preview\', this.getContent());\n }\n\n}\nMjPreview.endingTag = true;\n\n//# sourceURL=webpack://mjml/./mjml/packages/mjml-head-preview/src/index.js?')},"./mjml/packages/mjml-head-style/src/index.js":/*!****************************************************!*\ - !*** ./mjml/packages/mjml-head-style/src/index.js ***! - \****************************************************/ -/*! exports provided: default */ -function(module,__webpack_exports__,__webpack_require__){"use strict";eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"default\", function() { return MjStyle; });\n/* harmony import */ var mjml_core__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! mjml-core */ \"./mjml/packages/mjml-core/src/index.js\");\n\nclass MjStyle extends mjml_core__WEBPACK_IMPORTED_MODULE_0__[\"HeadComponent\"] {\n handler() {\n var add = this.context.add;\n add(this.getAttribute('inline') === 'inline' ? 'inlineStyle' : 'style', this.getContent());\n }\n\n}\nMjStyle.endingTag = true;\nMjStyle.allowedAttributes = {\n inline: 'string'\n};\n\n//# sourceURL=webpack://mjml/./mjml/packages/mjml-head-style/src/index.js?")},"./mjml/packages/mjml-head-title/src/index.js":/*!****************************************************!*\ - !*** ./mjml/packages/mjml-head-title/src/index.js ***! - \****************************************************/ -/*! exports provided: default */ -function(module,__webpack_exports__,__webpack_require__){"use strict";eval('__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "default", function() { return MjTitle; });\n/* harmony import */ var mjml_core__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! mjml-core */ "./mjml/packages/mjml-core/src/index.js");\n\nclass MjTitle extends mjml_core__WEBPACK_IMPORTED_MODULE_0__["HeadComponent"] {\n handler() {\n var add = this.context.add;\n add(\'title\', this.getContent());\n }\n\n}\nMjTitle.endingTag = true;\n\n//# sourceURL=webpack://mjml/./mjml/packages/mjml-head-title/src/index.js?')},"./mjml/packages/mjml-head/src/index.js":/*!**********************************************!*\ - !*** ./mjml/packages/mjml-head/src/index.js ***! - \**********************************************/ -/*! exports provided: default */ -function(module,__webpack_exports__,__webpack_require__){"use strict";eval('__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "default", function() { return MjHead; });\n/* harmony import */ var mjml_core__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! mjml-core */ "./mjml/packages/mjml-core/src/index.js");\n\nclass MjHead extends mjml_core__WEBPACK_IMPORTED_MODULE_0__["HeadComponent"] {\n handler() {\n return this.handlerChildren();\n }\n\n}\n\n//# sourceURL=webpack://mjml/./mjml/packages/mjml-head/src/index.js?')},"./mjml/packages/mjml-hero/src/index.js":/*!**********************************************!*\ - !*** ./mjml/packages/mjml-hero/src/index.js ***! - \**********************************************/ -/*! exports provided: default */ -function(module,__webpack_exports__,__webpack_require__){"use strict";eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"default\", function() { return MjHero; });\n/* harmony import */ var mjml_core__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! mjml-core */ \"./mjml/packages/mjml-core/src/index.js\");\n/* harmony import */ var lodash_fp__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! lodash/fp */ \"./node_modules/lodash/fp.js\");\n/* harmony import */ var lodash_fp__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(lodash_fp__WEBPACK_IMPORTED_MODULE_1__);\n/* harmony import */ var mjml_core_lib_helpers_widthParser__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! mjml-core/lib/helpers/widthParser */ \"./mjml/packages/mjml-core/src/helpers/widthParser.js\");\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; var ownKeys = Object.keys(source); if (typeof Object.getOwnPropertySymbols === 'function') { ownKeys = ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function (sym) { return Object.getOwnPropertyDescriptor(source, sym).enumerable; })); } ownKeys.forEach(function (key) { _defineProperty(target, key, source[key]); }); } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\n\n\n\nvar makeBackgroundString = Object(lodash_fp__WEBPACK_IMPORTED_MODULE_1__[\"flow\"])(Object(lodash_fp__WEBPACK_IMPORTED_MODULE_1__[\"filter\"])(lodash_fp__WEBPACK_IMPORTED_MODULE_1__[\"identity\"]), Object(lodash_fp__WEBPACK_IMPORTED_MODULE_1__[\"join\"])(' '));\nclass MjHero extends mjml_core__WEBPACK_IMPORTED_MODULE_0__[\"BodyComponent\"] {\n constructor() {\n super(...arguments);\n\n this.getBackground = () => makeBackgroundString([this.getAttribute('background-color'), ...(this.getAttribute('background-url') ? [`url(${this.getAttribute('background-url')})`, 'no-repeat', `${this.getAttribute('background-position')} / cover`] : [])]);\n }\n\n getChildContext() {\n // Refactor -- removePaddingFor(width, ['padding', 'inner-padding'])\n var containerWidth = this.context.containerWidth;\n var paddingSize = this.getShorthandAttrValue('padding', 'left') + this.getShorthandAttrValue('padding', 'right');\n var currentContainerWidth = `${parseFloat(containerWidth)}px`;\n\n var _widthParser = Object(mjml_core_lib_helpers_widthParser__WEBPACK_IMPORTED_MODULE_2__[\"default\"])(currentContainerWidth, {\n parseFloatToInt: false\n }),\n unit = _widthParser.unit,\n parsedWidth = _widthParser.parsedWidth;\n\n if (unit === '%') {\n currentContainerWidth = `${parseFloat(containerWidth) * parsedWidth / 100 - paddingSize}px`;\n } else {\n currentContainerWidth = `${parsedWidth - paddingSize}px`;\n }\n\n return _objectSpread({}, this.context, {\n containerWidth: currentContainerWidth\n });\n }\n\n getStyles() {\n var containerWidth = this.context.containerWidth;\n var backgroundRatio = Math.round(parseInt(this.getAttribute('background-height'), 10) / parseInt(this.getAttribute('background-width'), 10) * 100);\n return {\n div: {\n margin: '0 auto',\n 'max-width': containerWidth\n },\n table: {\n width: '100%'\n },\n tr: {\n 'vertical-align': 'top'\n },\n 'td-fluid': {\n width: `0.01%`,\n 'padding-bottom': `${backgroundRatio}%`,\n 'mso-padding-bottom-alt': '0'\n },\n hero: {\n background: this.getBackground(),\n 'background-position': this.getAttribute('background-position'),\n 'background-repeat': 'no-repeat',\n padding: this.getAttribute('padding'),\n 'padding-top': this.getAttribute('padding-top'),\n 'padding-left': this.getAttribute('padding-left'),\n 'padding-right': this.getAttribute('padding-right'),\n 'padding-bottom': this.getAttribute('padding-bottom'),\n 'vertical-align': this.getAttribute('vertical-align')\n },\n 'outlook-table': {\n width: containerWidth\n },\n 'outlook-td': {\n 'line-height': 0,\n 'font-size': 0,\n 'mso-line-height-rule': 'exactly'\n },\n 'outlook-inner-table': {\n width: containerWidth\n },\n 'outlook-image': {\n border: '0',\n height: this.getAttribute('background-height'),\n 'mso-position-horizontal': 'center',\n position: 'absolute',\n top: 0,\n width: this.getAttribute('background-width'),\n 'z-index': '-3'\n },\n 'outlook-inner-td': {\n 'background-color': this.getAttribute('inner-background-color'),\n padding: this.getAttribute('inner-padding'),\n 'padding-top': this.getAttribute('inner-padding-top'),\n 'padding-left': this.getAttribute('inner-padding-left'),\n 'padding-right': this.getAttribute('inner-padding-right'),\n 'padding-bottom': this.getAttribute('inner-padding-bottom')\n },\n 'inner-table': {\n width: '100%',\n margin: '0px'\n },\n 'inner-div': {\n 'background-color': this.getAttribute('inner-background-color'),\n float: this.getAttribute('align'),\n margin: '0px auto',\n width: this.getAttribute('width')\n }\n };\n }\n\n renderContent() {\n var containerWidth = this.context.containerWidth;\n var children = this.props.children;\n return `\n \x3c!--[if mso | IE]>\n \n \n \n \n \n \n \n \n ${this.renderChildren(children, {\n renderer: component => // eslint-disable-line no-confusing-arrow\n component.constructor.isRawElement() ? component.render() : `\n \n \n ${component.render()}\n \n \n `\n })}\n \n \n \n \n \n \x3c!--[if mso | IE]>\n \n \n \n \n \n ${this.renderContent()}\n \n \n `;\n\n case 'fixed-height':\n default:\n var height = parseInt(this.getAttribute('height'), 10) - this.getShorthandAttrValue('padding', 'top') - this.getShorthandAttrValue('padding', 'bottom');\n return `\n \n ${this.renderContent()}\n \n `;\n }\n /* eslint-enable no-alert, no-case-declarations */\n\n }\n\n render() {\n var containerWidth = this.context.containerWidth;\n return `\n \x3c!--[if mso | IE]>\n \n \n \n \n \n \n \n ${this.renderMode()}\n \n \n \n \x3c!--[if mso | IE]>\n \n \n \n `\n @media only screen and (max-width:${breakpoint}) {\n table.full-width-mobile { width: 100% !important; }\n td.full-width-mobile { width: auto !important; }\n }\n `;\n }\n\n getStyles() {\n var width = this.getContentWidth();\n var fullWidth = this.getAttribute('full-width') === 'full-width';\n\n var _widthParser = Object(mjml_core_lib_helpers_widthParser__WEBPACK_IMPORTED_MODULE_2__[\"default\"])(width),\n parsedWidth = _widthParser.parsedWidth,\n unit = _widthParser.unit;\n\n return {\n img: {\n border: this.getAttribute('border'),\n 'border-left': this.getAttribute('left'),\n 'border-right': this.getAttribute('right'),\n 'border-top': this.getAttribute('top'),\n 'border-bottom': this.getAttribute('bottom'),\n 'border-radius': this.getAttribute('border-radius'),\n display: 'block',\n outline: 'none',\n 'text-decoration': 'none',\n height: this.getAttribute('height'),\n 'min-width': fullWidth ? '100%' : null,\n width: '100%',\n 'max-width': fullWidth ? '100%' : null\n },\n td: {\n width: fullWidth ? null : `${parsedWidth}${unit}`\n },\n table: {\n 'min-width': fullWidth ? '100%' : null,\n 'max-width': fullWidth ? '100%' : null,\n width: fullWidth ? `${parsedWidth}${unit}` : null,\n 'border-collapse': 'collapse',\n 'border-spacing': '0px'\n }\n };\n }\n\n getContentWidth() {\n var width = this.getAttribute('width') ? parseInt(this.getAttribute('width'), 10) : Infinity;\n\n var _this$getBoxWidths = this.getBoxWidths(),\n box = _this$getBoxWidths.box;\n\n return lodash_min__WEBPACK_IMPORTED_MODULE_0___default()([box, width]);\n }\n\n renderImage() {\n var height = this.getAttribute('height');\n var img = `\n \n `;\n\n if (this.getAttribute('href')) {\n return `\n \n ${img}\n \n `;\n }\n\n return img;\n }\n\n render() {\n return `\n \n \n \n \n ${this.renderImage()}\n \n \n \n \n `;\n }\n\n}\nMjImage.tagOmission = true;\nMjImage.allowedAttributes = {\n alt: 'string',\n href: 'string',\n name: 'string',\n src: 'string',\n srcset: 'string',\n title: 'string',\n rel: 'string',\n align: 'enum(left,center,right)',\n border: 'string',\n 'border-bottom': 'string',\n 'border-left': 'string',\n 'border-right': 'string',\n 'border-top': 'string',\n 'border-radius': 'unit(px,%){1,4}',\n 'container-background-color': 'color',\n 'fluid-on-mobile': 'boolean',\n padding: 'unit(px,%){1,4}',\n 'padding-bottom': 'unit(px,%)',\n 'padding-left': 'unit(px,%)',\n 'padding-right': 'unit(px,%)',\n 'padding-top': 'unit(px,%)',\n target: 'string',\n width: 'unit(px)',\n height: 'unit(px)'\n};\nMjImage.defaultAttributes = {\n align: 'center',\n border: '0',\n height: 'auto',\n padding: '10px 25px',\n target: '_blank'\n};\n\n//# sourceURL=webpack://mjml/./mjml/packages/mjml-image/src/index.js?")},"./mjml/packages/mjml-migrate/src/config.js":/*!**************************************************!*\ - !*** ./mjml/packages/mjml-migrate/src/config.js ***! - \**************************************************/ -/*! no static exports found */ -function(module,exports){eval("var unavailableTags = ['mj-html', 'mj-invoice', 'mj-list', 'mj-location'];\nvar attributesWithUnit = ['background-size', 'border-radius', 'border-width', 'cellpadding', 'cellspacing', 'font-size', 'height', 'icon-height', 'ico-padding', 'ico-padding-bottom', 'ico-font-size', 'ico-line-height', 'ico-padding-left', 'ico-padding-right', 'ico-padding-top', 'icon-size', 'icon-width', 'inner-padding', 'letter-spacing', 'padding', 'padding-bottom', 'padding-left', 'padding-right', 'padding-left', 'tb-border-radius', 'tb-width', 'width'];\nmodule.exports = {\n unavailableTags,\n attributesWithUnit\n};\n\n//# sourceURL=webpack://mjml/./mjml/packages/mjml-migrate/src/config.js?")},"./mjml/packages/mjml-migrate/src/migrate.js":/*!***************************************************!*\ - !*** ./mjml/packages/mjml-migrate/src/migrate.js ***! - \***************************************************/ -/*! exports provided: default, handleMjml3 */ -function(module,__webpack_exports__,__webpack_require__){"use strict";eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"default\", function() { return migrate; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"handleMjml3\", function() { return handleMjml3; });\n/* harmony import */ var lodash__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! lodash */ \"./node_modules/lodash/lodash.js\");\n/* harmony import */ var lodash__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(lodash__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var mjml_parser_xml__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! mjml-parser-xml */ \"./mjml/packages/mjml-parser-xml/src/index.js\");\n/* harmony import */ var mjml_core__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! mjml-core */ \"./mjml/packages/mjml-core/src/index.js\");\n/* harmony import */ var js_beautify__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! js-beautify */ \"./node_modules/js-beautify/js/index.js\");\n/* harmony import */ var js_beautify__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(js_beautify__WEBPACK_IMPORTED_MODULE_3__);\n/* harmony import */ var _config__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./config */ \"./mjml/packages/mjml-migrate/src/config.js\");\n/* harmony import */ var _config__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(_config__WEBPACK_IMPORTED_MODULE_4__);\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; var ownKeys = Object.keys(source); if (typeof Object.getOwnPropertySymbols === 'function') { ownKeys = ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function (sym) { return Object.getOwnPropertyDescriptor(source, sym).enumerable; })); } ownKeys.forEach(function (key) { _defineProperty(target, key, source[key]); }); } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\n/* eslint-disable no-console */\n\n\n\n\n\nvar beautifyOptions = {\n indent_size: 2,\n wrap_attributes_indent_size: 2,\n max_preserve_newline: 0,\n preserve_newlines: false\n};\n\nfunction removeContainerTag(bodyTag) {\n if (bodyTag.children[0].tagName === 'mj-container') {\n bodyTag.attributes = bodyTag.children[0].attributes;\n bodyTag.children = bodyTag.children[0].children;\n }\n\n return bodyTag;\n}\n\nvar listAttributes = tag => tag.attributes;\n\nfunction addPx(value) {\n if (!isNaN(value)) {\n return `${value}px`;\n }\n\n return value;\n}\n\nfunction fixUnits(attribute, value) {\n var length = _config__WEBPACK_IMPORTED_MODULE_4__[\"attributesWithUnit\"].length;\n\n for (var i = 0; i < length; i += 1) {\n if (_config__WEBPACK_IMPORTED_MODULE_4__[\"attributesWithUnit\"][i] === attribute) {\n return addPx(value);\n }\n }\n\n return value;\n}\n\nfunction cleanAttributes(attributes) {\n Object(lodash__WEBPACK_IMPORTED_MODULE_0__[\"keys\"])(attributes).forEach(key => {\n attributes[key] = fixUnits(key, attributes[key]);\n });\n return attributes;\n}\n\nvar DEFAULT_SOCIAL_DISPLAY = 'facebook twitter google';\n\nfunction migrateSocialSyntax(socialTag) {\n var listAllNetworks = tag => {\n var attributes = (tag.attributes.display || DEFAULT_SOCIAL_DISPLAY).split(' ');\n delete tag.attributes.display;\n return attributes;\n };\n\n var attributes = listAttributes(socialTag);\n var networks = listAllNetworks(socialTag);\n socialTag.children = []; // migrate all attributes to their child attributes\n\n Object(lodash__WEBPACK_IMPORTED_MODULE_0__[\"keys\"])(networks).forEach(network => {\n var nameMigrated = networks[network].replace(':url', '-noshare').replace(':share', '');\n var nameWithoutOpts = nameMigrated.replace('-noshare', '');\n socialTag.children.push({\n tagName: `mj-social-element`,\n attributes: {\n name: nameMigrated\n },\n content: attributes[`${nameWithoutOpts}-content`] || ''\n });\n Object(lodash__WEBPACK_IMPORTED_MODULE_0__[\"keys\"])(attributes).forEach(attribute => {\n if (attribute.match(nameWithoutOpts) && !attribute.match('content')) {\n socialTag.children[network].attributes[attribute.replace(`${nameWithoutOpts}-`, '')] = socialTag.attributes[attribute];\n delete socialTag.attributes[attribute];\n }\n });\n }); // delete all content attributes from the root tag after they've been migrated\n\n Object(lodash__WEBPACK_IMPORTED_MODULE_0__[\"keys\"])(attributes).forEach(attribute => {\n if (attribute.match('content')) {\n delete attributes[attribute];\n }\n });\n return socialTag;\n}\n\nfunction migrateNavbarSyntax(navbarTag) {\n navbarTag.tagName = 'mj-section';\n navbarTag.attributes['full-width'] = 'full-width';\n return navbarTag;\n}\n\nfunction migrateHeroSyntax(heroTag) {\n var child = Object(lodash__WEBPACK_IMPORTED_MODULE_0__[\"find\"])(heroTag.children, {\n tagName: 'mj-hero-content'\n });\n return _objectSpread({}, heroTag, {\n children: child.children,\n attributes: _objectSpread({}, heroTag.attributes, child.attributes)\n });\n}\n\nfunction isSupportedTag(tag) {\n return _config__WEBPACK_IMPORTED_MODULE_4__[\"unavailableTags\"].indexOf(tag) === -1;\n}\n\nfunction loopThrough(tree) {\n Object(lodash__WEBPACK_IMPORTED_MODULE_0__[\"keys\"])(tree).forEach(key => {\n if (key === 'children') {\n for (var i = 0; i < tree.children.length; i += 1) {\n if (isSupportedTag(tree.children[i].tagName)) {\n switch (tree.children[i].tagName) {\n case 'mj-body':\n tree.children[i] = removeContainerTag(tree.children[i]);\n break;\n\n case 'mj-social':\n tree.children[i] = migrateSocialSyntax(tree.children[i]);\n break;\n\n case 'mj-navbar':\n tree.children[i] = migrateNavbarSyntax(tree.children[i]);\n break;\n\n case 'mj-inline-links':\n tree.children[i].tagName = 'mj-navbar';\n break;\n\n case 'mj-link':\n tree.children[i].tagName = 'mj-navbar-link';\n break;\n\n case 'mj-hero':\n tree.children[i] = migrateHeroSyntax(tree.children[i]);\n break;\n // no default\n }\n\n tree.children[i].attributes = cleanAttributes(tree.children[i].attributes);\n loopThrough(tree.children[i]);\n } else {\n console.error(`Ignoring unsupported tag : ${tree.children[i].tagName} on line ${tree.children[i].line}`);\n delete tree.children[i];\n }\n }\n }\n });\n return tree;\n}\n\nfunction checkV3Through(node) {\n if (node.tagName === 'mj-container') return true;\n if (!node.children || !node.children.length) return false;\n return node.children.some(checkV3Through);\n}\n\nvar jsonToXML = (_ref) => {\n var tagName = _ref.tagName,\n attributes = _ref.attributes,\n children = _ref.children,\n content = _ref.content;\n var subNode = children && children.length > 0 ? children.map(jsonToXML).join('\\n') : content || '';\n var stringAttrs = Object.keys(attributes).map(attr => `${attr}=\"${attributes[attr]}\"`).join(' ');\n return `<${tagName}${stringAttrs === '' ? '>' : ` ${stringAttrs}>`}${subNode}`;\n};\n\nfunction migrate(input) {\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n var beautify = options.beautify;\n if (typeof input === 'object') return loopThrough(input);\n var mjmlJson = Object(mjml_parser_xml__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(input, {\n components: mjml_core__WEBPACK_IMPORTED_MODULE_2__[\"components\"],\n ignoreIncludes: true\n });\n loopThrough(mjmlJson);\n return beautify ? Object(js_beautify__WEBPACK_IMPORTED_MODULE_3__[\"html\"])(jsonToXML(mjmlJson), beautifyOptions) : jsonToXML(mjmlJson);\n}\nfunction handleMjml3(mjml) {\n var isV3Synthax = checkV3Through(mjml);\n if (!isV3Synthax) return mjml;\n console.error('MJML v3 syntax detected, migrating to MJML v4 syntax. Use mjml -m to get the migrated MJML.');\n return migrate(mjml);\n}\n/* eslint-enable no-console */\n\n//# sourceURL=webpack://mjml/./mjml/packages/mjml-migrate/src/migrate.js?")},"./mjml/packages/mjml-navbar/src/Navbar.js":/*!*************************************************!*\ - !*** ./mjml/packages/mjml-navbar/src/Navbar.js ***! - \*************************************************/ -/*! exports provided: default */ -function(module,__webpack_exports__,__webpack_require__){"use strict";eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"default\", function() { return MjNavbar; });\n/* harmony import */ var mjml_core__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! mjml-core */ \"./mjml/packages/mjml-core/src/index.js\");\n/* harmony import */ var crypto__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! crypto */ \"./node_modules/crypto-browserify/index.js\");\n/* harmony import */ var crypto__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(crypto__WEBPACK_IMPORTED_MODULE_1__);\n/* harmony import */ var mjml_core_lib_helpers_conditionalTag__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! mjml-core/lib/helpers/conditionalTag */ \"./mjml/packages/mjml-core/src/helpers/conditionalTag.js\");\n\n\n\nclass MjNavbar extends mjml_core__WEBPACK_IMPORTED_MODULE_0__[\"BodyComponent\"] {\n constructor() {\n super(...arguments);\n\n this.headStyle = breakpoint => `\n noinput.mj-menu-checkbox { display:block!important; max-height:none!important; visibility:visible!important; }\n\n @media only screen and (max-width:${breakpoint}) {\n .mj-menu-checkbox[type=\"checkbox\"] ~ .mj-inline-links { display:none!important; }\n .mj-menu-checkbox[type=\"checkbox\"]:checked ~ .mj-inline-links,\n .mj-menu-checkbox[type=\"checkbox\"] ~ .mj-menu-trigger { display:block!important; max-width:none!important; max-height:none!important; font-size:inherit!important; }\n .mj-menu-checkbox[type=\"checkbox\"] ~ .mj-inline-links > a { display:block!important; }\n .mj-menu-checkbox[type=\"checkbox\"]:checked ~ .mj-menu-trigger .mj-menu-icon-close { display:block!important; }\n .mj-menu-checkbox[type=\"checkbox\"]:checked ~ .mj-menu-trigger .mj-menu-icon-open { display:none!important; }\n }\n `;\n }\n\n getStyles() {\n return {\n div: {\n align: this.getAttribute('align'),\n width: '100%'\n },\n label: {\n display: 'block',\n cursor: 'pointer',\n 'mso-hide': 'all',\n '-moz-user-select': 'none',\n 'user-select': 'none',\n align: this.getAttribute('ico-align'),\n color: this.getAttribute('ico-color'),\n 'font-size': this.getAttribute('ico-font-size'),\n 'font-family': this.getAttribute('ico-font-family'),\n 'text-transform': this.getAttribute('ico-text-transform'),\n 'text-decoration': this.getAttribute('ico-text-decoration'),\n 'line-height': this.getAttribute('ico-line-height'),\n 'padding-top': this.getAttribute('ico-padding-top'),\n 'padding-right': this.getAttribute('ico-padding-right'),\n 'padding-bottom': this.getAttribute('ico-padding-bottom'),\n 'padding-left': this.getAttribute('ico-padding-left'),\n padding: this.getAttribute('ico-padding')\n },\n trigger: {\n display: 'none',\n 'max-height': '0px',\n 'max-width': '0px',\n 'font-size': '0px',\n overflow: 'hidden'\n },\n icoOpen: {\n 'mso-hide': 'all'\n },\n icoClose: {\n display: 'none',\n 'mso-hide': 'all'\n }\n };\n }\n\n renderHamburger() {\n var key = crypto__WEBPACK_IMPORTED_MODULE_1___default.a.randomBytes(8).toString('hex');\n return `\n ${Object(mjml_core_lib_helpers_conditionalTag__WEBPACK_IMPORTED_MODULE_2__[\"msoConditionalTag\"])(`\n \n `, true)}\n \n \n \n ${this.getAttribute('ico-open')}\n \n \n ${this.getAttribute('ico-close')}\n \n \n \n `;\n }\n\n render() {\n return `\n ${this.getAttribute('hamburger') === 'hamburger' ? this.renderHamburger() : ''}\n \n ${Object(mjml_core_lib_helpers_conditionalTag__WEBPACK_IMPORTED_MODULE_2__[\"default\"])(`\n \n \n `)}\n ${this.renderChildren(this.props.children, {\n attributes: {\n navbarBaseUrl: this.getAttribute('base-url')\n }\n })}\n ${Object(mjml_core_lib_helpers_conditionalTag__WEBPACK_IMPORTED_MODULE_2__[\"default\"])(`\n
\n `)}\n \n `;\n }\n\n}\nMjNavbar.allowedAttributes = {\n align: 'enum(left,center,right)',\n 'base-url': 'string',\n hamburger: 'string',\n 'ico-align': 'enum(left,center,right)',\n 'ico-open': 'string',\n 'ico-close': 'string',\n 'ico-color': 'color',\n 'ico-font-size': 'unit(px,%)',\n 'ico-font-family': 'string',\n 'ico-text-transform': 'string',\n 'ico-padding': 'unit(px,%){1,4}',\n 'ico-padding-left': 'unit(px,%)',\n 'ico-padding-top': 'unit(px,%)',\n 'ico-padding-right': 'unit(px,%)',\n 'ico-padding-bottom': 'unit(px,%)',\n 'ico-text-decoration': 'string',\n 'ico-line-height': 'unit(px,%)'\n};\nMjNavbar.defaultAttributes = {\n align: 'center',\n 'base-url': null,\n hamburger: null,\n 'ico-align': 'center',\n 'ico-open': '☰',\n 'ico-close': '⊗',\n 'ico-color': '#000000',\n 'ico-font-size': '30px',\n 'ico-font-family': 'Ubuntu, Helvetica, Arial, sans-serif',\n 'ico-text-transform': 'uppercase',\n 'ico-padding': '10px',\n 'ico-text-decoration': 'none',\n 'ico-line-height': '30px'\n};\n\n//# sourceURL=webpack://mjml/./mjml/packages/mjml-navbar/src/Navbar.js?")},"./mjml/packages/mjml-navbar/src/NavbarLink.js":/*!*****************************************************!*\ - !*** ./mjml/packages/mjml-navbar/src/NavbarLink.js ***! - \*****************************************************/ -/*! exports provided: default */ -function(module,__webpack_exports__,__webpack_require__){"use strict";eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"default\", function() { return MjNavbarLink; });\n/* harmony import */ var mjml_core__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! mjml-core */ \"./mjml/packages/mjml-core/src/index.js\");\n/* harmony import */ var url__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! url */ \"./node_modules/url/url.js\");\n/* harmony import */ var url__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(url__WEBPACK_IMPORTED_MODULE_1__);\n/* harmony import */ var mjml_core_lib_helpers_conditionalTag__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! mjml-core/lib/helpers/conditionalTag */ \"./mjml/packages/mjml-core/src/helpers/conditionalTag.js\");\n\n\n\nclass MjNavbarLink extends mjml_core__WEBPACK_IMPORTED_MODULE_0__[\"BodyComponent\"] {\n getStyles() {\n return {\n a: {\n display: 'inline-block',\n color: this.getAttribute('color'),\n 'font-family': this.getAttribute('font-family'),\n 'font-size': this.getAttribute('font-size'),\n 'font-weight': this.getAttribute('font-weight'),\n 'line-height': this.getAttribute('line-height'),\n 'text-decoration': this.getAttribute('text-decoration'),\n 'text-transform': this.getAttribute('text-transform'),\n padding: this.getAttribute('padding'),\n 'padding-top': this.getAttribute('padding-top'),\n 'padding-left': this.getAttribute('padding-left'),\n 'padding-right': this.getAttribute('padding-right'),\n 'padding-bottom': this.getAttribute('padding-bottom')\n },\n td: {\n padding: this.getAttribute('padding'),\n 'padding-top': this.getAttribute('padding-top'),\n 'padding-left': this.getAttribute('padding-left'),\n 'padding-right': this.getAttribute('padding-right'),\n 'padding-bottom': this.getAttribute('padding-bottom')\n }\n };\n }\n\n renderContent() {\n var href = this.getAttribute('href');\n var navbarBaseUrl = this.getAttribute('navbarBaseUrl');\n var link = navbarBaseUrl ? url__WEBPACK_IMPORTED_MODULE_1___default.a.resolve(navbarBaseUrl, href) : href;\n var cssClass = this.getAttribute('css-class') ? ` ${this.getAttribute('css-class')}` : '';\n return `\n \n ${this.getContent()}\n \n `;\n }\n\n render() {\n return `\n ${Object(mjml_core_lib_helpers_conditionalTag__WEBPACK_IMPORTED_MODULE_2__[\"default\"])(`\n \n `)}\n ${this.renderContent()}\n ${Object(mjml_core_lib_helpers_conditionalTag__WEBPACK_IMPORTED_MODULE_2__[\"default\"])(`\n \n `)}\n `;\n }\n\n}\nMjNavbarLink.endingTag = true;\nMjNavbarLink.allowedAttributes = {\n color: 'color',\n 'font-family': 'string',\n 'font-size': 'unit(px)',\n 'font-weight': 'string',\n href: 'string',\n name: 'string',\n target: 'string',\n rel: 'string',\n 'line-height': 'unit(px,%)',\n 'padding-bottom': 'unit(px,%)',\n 'padding-left': 'unit(px,%)',\n 'padding-right': 'unit(px,%)',\n 'padding-top': 'unit(px,%)',\n padding: 'unit(px,%){1,4}',\n 'text-decoration': 'string',\n 'text-transform': 'string'\n};\nMjNavbarLink.defaultAttributes = {\n color: '#000000',\n 'font-family': 'Ubuntu, Helvetica, Arial, sans-serif',\n 'font-size': '13px',\n 'font-weight': 'normal',\n 'line-height': '22px',\n padding: '15px 10px',\n target: '_blank',\n 'text-decoration': 'none',\n 'text-transform': 'uppercase'\n};\n\n//# sourceURL=webpack://mjml/./mjml/packages/mjml-navbar/src/NavbarLink.js?")},"./mjml/packages/mjml-navbar/src/index.js":/*!************************************************!*\ - !*** ./mjml/packages/mjml-navbar/src/index.js ***! - \************************************************/ -/*! exports provided: Navbar, NavbarLink */ -function(module,__webpack_exports__,__webpack_require__){"use strict";eval('__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _Navbar__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./Navbar */ "./mjml/packages/mjml-navbar/src/Navbar.js");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "Navbar", function() { return _Navbar__WEBPACK_IMPORTED_MODULE_0__["default"]; });\n\n/* harmony import */ var _NavbarLink__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./NavbarLink */ "./mjml/packages/mjml-navbar/src/NavbarLink.js");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "NavbarLink", function() { return _NavbarLink__WEBPACK_IMPORTED_MODULE_1__["default"]; });\n\n\n\n\n\n\n//# sourceURL=webpack://mjml/./mjml/packages/mjml-navbar/src/index.js?')},"./mjml/packages/mjml-parser-xml/src/helpers/cleanNode.js":/*!****************************************************************!*\ - !*** ./mjml/packages/mjml-parser-xml/src/helpers/cleanNode.js ***! - \****************************************************************/ -/*! exports provided: default */ -function(module,__webpack_exports__,__webpack_require__){"use strict";eval('__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "default", function() { return cleanNode; });\n/* harmony import */ var lodash__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! lodash */ "./node_modules/lodash/lodash.js");\n/* harmony import */ var lodash__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(lodash__WEBPACK_IMPORTED_MODULE_0__);\n\nfunction cleanNode(node) {\n delete node.parent; // Delete children if needed\n\n if (node.children && node.children.length) {\n lodash__WEBPACK_IMPORTED_MODULE_0___default.a.forEach(node.children, cleanNode);\n } else {\n delete node.children;\n } // Delete attributes if needed\n\n\n if (node.attributes && Object.keys(node.attributes).length === 0) {\n delete node.attributes;\n }\n}\n\n//# sourceURL=webpack://mjml/./mjml/packages/mjml-parser-xml/src/helpers/cleanNode.js?')},"./mjml/packages/mjml-parser-xml/src/helpers/convertBooleansOnAttrs.js":/*!*****************************************************************************!*\ - !*** ./mjml/packages/mjml-parser-xml/src/helpers/convertBooleansOnAttrs.js ***! - \*****************************************************************************/ -/*! exports provided: default */ -function(module,__webpack_exports__,__webpack_require__){"use strict";eval('__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "default", function() { return convertBooleansOnAttrs; });\n/* harmony import */ var lodash_mapValues__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! lodash/mapValues */ "./node_modules/lodash/mapValues.js");\n/* harmony import */ var lodash_mapValues__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(lodash_mapValues__WEBPACK_IMPORTED_MODULE_0__);\n\n/**\n * Convert "true" and "false" string attributes values\n * to corresponding Booleans\n */\n\nfunction convertBooleansOnAttrs(attrs) {\n return lodash_mapValues__WEBPACK_IMPORTED_MODULE_0___default()(attrs, val => {\n if (val === \'true\') {\n return true;\n }\n\n if (val === \'false\') {\n return false;\n }\n\n return val;\n });\n}\n\n//# sourceURL=webpack://mjml/./mjml/packages/mjml-parser-xml/src/helpers/convertBooleansOnAttrs.js?')},"./mjml/packages/mjml-parser-xml/src/helpers/setEmptyAttributes.js":/*!*************************************************************************!*\ - !*** ./mjml/packages/mjml-parser-xml/src/helpers/setEmptyAttributes.js ***! - \*************************************************************************/ -/*! exports provided: default */ -function(module,__webpack_exports__,__webpack_require__){"use strict";eval('__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "default", function() { return setEmptyAttributes; });\n/* harmony import */ var lodash_forEach__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! lodash/forEach */ "./node_modules/lodash/forEach.js");\n/* harmony import */ var lodash_forEach__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(lodash_forEach__WEBPACK_IMPORTED_MODULE_0__);\n\nfunction setEmptyAttributes(node) {\n if (!node.attributes) {\n node.attributes = {};\n }\n\n if (node.children) {\n lodash_forEach__WEBPACK_IMPORTED_MODULE_0___default()(node.children, setEmptyAttributes);\n }\n}\n\n//# sourceURL=webpack://mjml/./mjml/packages/mjml-parser-xml/src/helpers/setEmptyAttributes.js?')},"./mjml/packages/mjml-parser-xml/src/index.js":/*!****************************************************!*\ - !*** ./mjml/packages/mjml-parser-xml/src/index.js ***! - \****************************************************/ -/*! exports provided: default */ -function(module,__webpack_exports__,__webpack_require__){"use strict";eval('__webpack_require__.r(__webpack_exports__);\n/* WEBPACK VAR INJECTION */(function(process) {/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "default", function() { return MJMLParser; });\n/* harmony import */ var htmlparser2__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! htmlparser2 */ "./node_modules/htmlparser2/lib/index.js");\n/* harmony import */ var htmlparser2__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(htmlparser2__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var lodash_isObject__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! lodash/isObject */ "./node_modules/lodash/isObject.js");\n/* harmony import */ var lodash_isObject__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(lodash_isObject__WEBPACK_IMPORTED_MODULE_1__);\n/* harmony import */ var lodash_findLastIndex__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! lodash/findLastIndex */ "./node_modules/lodash/findLastIndex.js");\n/* harmony import */ var lodash_findLastIndex__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(lodash_findLastIndex__WEBPACK_IMPORTED_MODULE_2__);\n/* harmony import */ var lodash_find__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! lodash/find */ "./node_modules/lodash/find.js");\n/* harmony import */ var lodash_find__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(lodash_find__WEBPACK_IMPORTED_MODULE_3__);\n/* harmony import */ var path__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! path */ "./node_modules/path-browserify/index.js");\n/* harmony import */ var path__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(path__WEBPACK_IMPORTED_MODULE_4__);\n/* harmony import */ var fs__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! fs */ "./mocks/fs.js");\n/* harmony import */ var lodash_fp_filter__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! lodash/fp/filter */ "./node_modules/lodash/fp/filter.js");\n/* harmony import */ var lodash_fp_filter__WEBPACK_IMPORTED_MODULE_6___default = /*#__PURE__*/__webpack_require__.n(lodash_fp_filter__WEBPACK_IMPORTED_MODULE_6__);\n/* harmony import */ var lodash_fp_map__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! lodash/fp/map */ "./node_modules/lodash/fp/map.js");\n/* harmony import */ var lodash_fp_map__WEBPACK_IMPORTED_MODULE_7___default = /*#__PURE__*/__webpack_require__.n(lodash_fp_map__WEBPACK_IMPORTED_MODULE_7__);\n/* harmony import */ var lodash_fp_flow__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! lodash/fp/flow */ "./node_modules/lodash/fp/flow.js");\n/* harmony import */ var lodash_fp_flow__WEBPACK_IMPORTED_MODULE_8___default = /*#__PURE__*/__webpack_require__.n(lodash_fp_flow__WEBPACK_IMPORTED_MODULE_8__);\n/* harmony import */ var _helpers_cleanNode__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ./helpers/cleanNode */ "./mjml/packages/mjml-parser-xml/src/helpers/cleanNode.js");\n/* harmony import */ var _helpers_convertBooleansOnAttrs__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ./helpers/convertBooleansOnAttrs */ "./mjml/packages/mjml-parser-xml/src/helpers/convertBooleansOnAttrs.js");\n/* harmony import */ var _helpers_setEmptyAttributes__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! ./helpers/setEmptyAttributes */ "./mjml/packages/mjml-parser-xml/src/helpers/setEmptyAttributes.js");\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; var ownKeys = Object.keys(source); if (typeof Object.getOwnPropertySymbols === \'function\') { ownKeys = ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function (sym) { return Object.getOwnPropertyDescriptor(source, sym).enumerable; })); } ownKeys.forEach(function (key) { _defineProperty(target, key, source[key]); }); } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nvar indexesForNewLine = xml => {\n var regex = /\\n/gi;\n var indexes = [0];\n\n while (regex.exec(xml)) {\n indexes.push(regex.lastIndex);\n }\n\n return indexes;\n};\n\nvar isSelfClosing = (indexes, parser) => indexes.startIndex === parser.startIndex && indexes.endIndex === parser.endIndex;\n\nfunction MJMLParser(xml) {\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n var includedIn = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : [];\n var _options$addEmptyAttr = options.addEmptyAttributes,\n addEmptyAttributes = _options$addEmptyAttr === void 0 ? true : _options$addEmptyAttr,\n _options$components = options.components,\n components = _options$components === void 0 ? {} : _options$components,\n _options$convertBoole = options.convertBooleans,\n convertBooleans = _options$convertBoole === void 0 ? true : _options$convertBoole,\n _options$keepComments = options.keepComments,\n keepComments = _options$keepComments === void 0 ? true : _options$keepComments,\n _options$filePath = options.filePath,\n filePath = _options$filePath === void 0 ? \'.\' : _options$filePath,\n _options$ignoreInclud = options.ignoreIncludes,\n ignoreIncludes = _options$ignoreInclud === void 0 ? false : _options$ignoreInclud;\n var endingTags = lodash_fp_flow__WEBPACK_IMPORTED_MODULE_8___default()(lodash_fp_filter__WEBPACK_IMPORTED_MODULE_6___default()(component => component.endingTag), lodash_fp_map__WEBPACK_IMPORTED_MODULE_7___default()(component => component.getTagName()))(_objectSpread({}, components));\n var cwd = filePath ? path__WEBPACK_IMPORTED_MODULE_4___default.a.dirname(filePath) : process.cwd();\n var mjml = null;\n var cur = null;\n var inInclude = !!includedIn.length;\n var inEndingTag = 0;\n var currentEndingTagIndexes = {\n startIndex: 0,\n endIndex: 0\n };\n\n var findTag = (tagName, tree) => lodash_find__WEBPACK_IMPORTED_MODULE_3___default()(tree.children, {\n tagName\n });\n\n var lineIndexes = indexesForNewLine(xml);\n\n var handleInclude = (file, line) => {\n var partialPath = path__WEBPACK_IMPORTED_MODULE_4___default.a.resolve(cwd, file);\n if (lodash_find__WEBPACK_IMPORTED_MODULE_3___default()(cur.includedIn, {\n file: partialPath\n })) throw new Error(`Circular inclusion detected on file : ${partialPath}`);\n var content;\n\n try {\n content = fs__WEBPACK_IMPORTED_MODULE_5__["default"].readFileSync(partialPath, \'utf8\');\n } catch (e) {\n var newNode = {\n line,\n file,\n absoluteFilePath: path__WEBPACK_IMPORTED_MODULE_4___default.a.resolve(cwd, filePath),\n parent: cur,\n tagName: \'mj-raw\',\n content: `\x3c!-- mj-include fails to read file : ${file} at ${partialPath} --\x3e`,\n children: []\n };\n cur.children.push(newNode);\n cur = newNode;\n return;\n }\n\n content = content.indexOf(\'\') === -1 ? `${content}` : content;\n var partialMjml = MJMLParser(content, _objectSpread({}, options, {\n filePath: partialPath\n }), [...cur.includedIn, {\n file: cur.absoluteFilePath,\n line\n }]);\n\n var bindToTree = function bindToTree(children) {\n var tree = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : cur;\n return children.map(c => _objectSpread({}, c, {\n parent: tree\n }));\n };\n\n if (partialMjml.tagName !== \'mjml\') {\n return;\n }\n\n var body = findTag(\'mj-body\', partialMjml);\n var head = findTag(\'mj-head\', partialMjml);\n\n if (body) {\n var boundChildren = bindToTree(body.children);\n cur.children = [...cur.children, ...boundChildren];\n cur = boundChildren[boundChildren.length - 1];\n }\n\n if (head) {\n var curHead = findTag(\'mj-head\', mjml);\n\n if (!curHead) {\n mjml.children.push({\n file: filePath,\n absoluteFilePath: path__WEBPACK_IMPORTED_MODULE_4___default.a.resolve(cwd, filePath),\n parent: mjml,\n tagName: \'mj-head\',\n children: []\n });\n curHead = findTag(\'mj-head\', mjml);\n }\n\n var _boundChildren = bindToTree(head.children, curHead);\n\n curHead.children = [...curHead.children, ..._boundChildren];\n cur = _boundChildren[_boundChildren.length - 1];\n }\n };\n\n var parser = new htmlparser2__WEBPACK_IMPORTED_MODULE_0___default.a.Parser({\n onopentag: (name, attrs) => {\n var isAnEndingTag = endingTags.indexOf(name) !== -1;\n\n if (inEndingTag > 0) {\n if (isAnEndingTag) inEndingTag += 1;\n return;\n }\n\n if (isAnEndingTag) {\n inEndingTag += 1;\n\n if (inEndingTag === 1) {\n // we\'re entering endingTag\n currentEndingTagIndexes.startIndex = parser.startIndex;\n currentEndingTagIndexes.endIndex = parser.endIndex;\n }\n }\n\n var line = lodash_findLastIndex__WEBPACK_IMPORTED_MODULE_2___default()(lineIndexes, i => i <= parser.startIndex) + 1;\n\n if (name === \'mj-include\' && !ignoreIncludes) {\n inInclude = true;\n handleInclude(decodeURIComponent(attrs.path), line);\n return;\n }\n\n if (convertBooleans) {\n // "true" and "false" will be converted to bools\n attrs = Object(_helpers_convertBooleansOnAttrs__WEBPACK_IMPORTED_MODULE_10__["default"])(attrs);\n }\n\n var newNode = {\n file: filePath,\n absoluteFilePath: path__WEBPACK_IMPORTED_MODULE_4___default.a.resolve(cwd, filePath),\n line,\n includedIn,\n parent: cur,\n tagName: name,\n attributes: attrs,\n children: []\n };\n\n if (cur) {\n cur.children.push(newNode);\n } else {\n mjml = newNode;\n }\n\n cur = newNode;\n },\n onclosetag: name => {\n if (endingTags.indexOf(name) !== -1) {\n inEndingTag -= 1;\n\n if (!inEndingTag) {\n // we\'re getting out of endingTag\n // if self-closing tag we don\'t get the content\n if (!isSelfClosing(currentEndingTagIndexes, parser)) {\n var partialVal = xml.substring(currentEndingTagIndexes.endIndex + 1, parser.endIndex).trim();\n var val = partialVal.substring(0, partialVal.lastIndexOf(` 0) return;\n\n if (inInclude) {\n inInclude = false;\n }\n\n cur = cur && cur.parent || null;\n },\n ontext: text => {\n if (inEndingTag > 0) return;\n\n if (text && text.trim() && cur) {\n cur.content = `${cur && cur.content || \'\'}${text.trim()}`.trim();\n }\n },\n oncomment: data => {\n if (inEndingTag > 0) return;\n\n if (cur && keepComments) {\n cur.children.push({\n line: lodash_findLastIndex__WEBPACK_IMPORTED_MODULE_2___default()(lineIndexes, i => i <= parser.startIndex) + 1,\n tagName: \'mj-raw\',\n content: `\x3c!-- ${data.trim()} --\x3e`\n });\n }\n }\n }, {\n recognizeCDATA: true,\n decodeEntities: false,\n recognizeSelfClosing: true,\n lowerCaseAttributeNames: false\n });\n parser.write(xml);\n parser.end();\n\n if (!lodash_isObject__WEBPACK_IMPORTED_MODULE_1___default()(mjml)) {\n throw new Error(\'Parsing failed. Check your mjml.\');\n }\n\n Object(_helpers_cleanNode__WEBPACK_IMPORTED_MODULE_9__["default"])(mjml); // Assign "attributes" property if not set\n\n if (addEmptyAttributes) {\n Object(_helpers_setEmptyAttributes__WEBPACK_IMPORTED_MODULE_11__["default"])(mjml);\n }\n\n return mjml;\n}\n/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(/*! ./../../../../node_modules/process/browser.js */ "./node_modules/process/browser.js")))\n\n//# sourceURL=webpack://mjml/./mjml/packages/mjml-parser-xml/src/index.js?')},"./mjml/packages/mjml-raw/src/index.js":/*!*********************************************!*\ - !*** ./mjml/packages/mjml-raw/src/index.js ***! - \*********************************************/ -/*! exports provided: default */ -function(module,__webpack_exports__,__webpack_require__){"use strict";eval('__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "default", function() { return MjRaw; });\n/* harmony import */ var mjml_core__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! mjml-core */ "./mjml/packages/mjml-core/src/index.js");\n\nclass MjRaw extends mjml_core__WEBPACK_IMPORTED_MODULE_0__["BodyComponent"] {\n render() {\n return this.getContent();\n }\n\n}\nMjRaw.endingTag = true;\nMjRaw.rawElement = true;\n\n//# sourceURL=webpack://mjml/./mjml/packages/mjml-raw/src/index.js?')},"./mjml/packages/mjml-section/src/index.js":/*!*************************************************!*\ - !*** ./mjml/packages/mjml-section/src/index.js ***! - \*************************************************/ -/*! exports provided: default */ -function(module,__webpack_exports__,__webpack_require__){"use strict";eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"default\", function() { return MjSection; });\n/* harmony import */ var mjml_core__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! mjml-core */ \"./mjml/packages/mjml-core/src/index.js\");\n/* harmony import */ var lodash_fp__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! lodash/fp */ \"./node_modules/lodash/fp.js\");\n/* harmony import */ var lodash_fp__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(lodash_fp__WEBPACK_IMPORTED_MODULE_1__);\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; var ownKeys = Object.keys(source); if (typeof Object.getOwnPropertySymbols === 'function') { ownKeys = ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function (sym) { return Object.getOwnPropertyDescriptor(source, sym).enumerable; })); } ownKeys.forEach(function (key) { _defineProperty(target, key, source[key]); }); } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\n\n\nvar makeBackgroundString = Object(lodash_fp__WEBPACK_IMPORTED_MODULE_1__[\"flow\"])(Object(lodash_fp__WEBPACK_IMPORTED_MODULE_1__[\"filter\"])(lodash_fp__WEBPACK_IMPORTED_MODULE_1__[\"identity\"]), Object(lodash_fp__WEBPACK_IMPORTED_MODULE_1__[\"join\"])(' '));\nclass MjSection extends mjml_core__WEBPACK_IMPORTED_MODULE_0__[\"BodyComponent\"] {\n constructor() {\n super(...arguments);\n\n this.getBackground = () => makeBackgroundString([this.getAttribute('background-color'), ...(this.hasBackground() ? [`url(${this.getAttribute('background-url')})`, `top center / ${this.getAttribute('background-size')}`, this.getAttribute('background-repeat')] : [])]);\n }\n\n getChildContext() {\n var _this$getBoxWidths = this.getBoxWidths(),\n box = _this$getBoxWidths.box;\n\n return _objectSpread({}, this.context, {\n containerWidth: `${box}px`\n });\n }\n\n getStyles() {\n var containerWidth = this.context.containerWidth;\n var fullWidth = this.isFullWidth();\n var background = this.getAttribute('background-url') ? {\n background: this.getBackground()\n } : {\n background: this.getAttribute('background-color'),\n 'background-color': this.getAttribute('background-color')\n };\n return {\n tableFullwidth: _objectSpread({}, fullWidth ? background : {}, {\n width: '100%',\n 'border-radius': this.getAttribute('border-radius')\n }),\n table: _objectSpread({}, fullWidth ? {} : background, {\n width: '100%',\n 'border-radius': this.getAttribute('border-radius')\n }),\n td: {\n border: this.getAttribute('border'),\n 'border-bottom': this.getAttribute('border-bottom'),\n 'border-left': this.getAttribute('border-left'),\n 'border-right': this.getAttribute('border-right'),\n 'border-top': this.getAttribute('border-top'),\n direction: this.getAttribute('direction'),\n 'font-size': '0px',\n padding: this.getAttribute('padding'),\n 'padding-bottom': this.getAttribute('padding-bottom'),\n 'padding-left': this.getAttribute('padding-left'),\n 'padding-right': this.getAttribute('padding-right'),\n 'padding-top': this.getAttribute('padding-top'),\n 'text-align': this.getAttribute('text-align'),\n 'vertical-align': this.getAttribute('vertical-align')\n },\n div: _objectSpread({}, fullWidth ? {} : background, {\n Margin: '0px auto',\n 'border-radius': this.getAttribute('border-radius'),\n 'max-width': containerWidth\n }),\n innerDiv: {\n 'line-height': '0',\n 'font-size': '0'\n }\n };\n }\n\n hasBackground() {\n return this.getAttribute('background-url') != null;\n }\n\n isFullWidth() {\n return this.getAttribute('full-width') === 'full-width';\n }\n\n renderBefore() {\n var containerWidth = this.context.containerWidth;\n return `\n \x3c!--[if mso | IE]>\n \n \n \n \n \n \n \n \n \n component.constructor.isRawElement() ? component.render() : `\n \x3c!--[if mso | IE]>\n \n \n \n \n \n \n \n \n \n \n \n \n \n ${hasBackground ? `
` : ''}\n \n \n \n \n \x3c!--[if mso | IE]>\n \n \n
\n \n \n \n \n ${hasBackground ? '
' : ''}\n \n `;\n }\n\n renderFullWidth() {\n var content = this.hasBackground() ? this.renderWithBackground(`\n ${this.renderBefore()}\n ${this.renderSection()}\n ${this.renderAfter()}\n `) : `\n ${this.renderBefore()}\n ${this.renderSection()}\n ${this.renderAfter()}\n `;\n return `\n \n \n \n \n ${content}\n \n \n \n \n `;\n }\n\n renderSimple() {\n var section = this.renderSection();\n return `\n ${this.renderBefore()}\n ${this.hasBackground() ? this.renderWithBackground(section) : section}\n ${this.renderAfter()}\n `;\n }\n\n render() {\n return this.isFullWidth() ? this.renderFullWidth() : this.renderSimple();\n }\n\n}\nMjSection.allowedAttributes = {\n 'background-color': 'color',\n 'background-url': 'string',\n 'background-repeat': 'enum(repeat,no-repeat)',\n 'background-size': 'string',\n border: 'string',\n 'border-bottom': 'string',\n 'border-left': 'string',\n 'border-radius': 'string',\n 'border-right': 'string',\n 'border-top': 'string',\n direction: 'enum(ltr,rtl)',\n 'full-width': 'enum(full-width)',\n padding: 'unit(px,%){1,4}',\n 'padding-top': 'unit(px,%)',\n 'padding-bottom': 'unit(px,%)',\n 'padding-left': 'unit(px,%)',\n 'padding-right': 'unit(px,%)',\n 'text-align': 'enum(left,center,right)',\n 'text-padding': 'unit(px,%){1,4}',\n 'vertical-align': 'enum(bottom,middle,top)'\n};\nMjSection.defaultAttributes = {\n 'background-repeat': 'repeat',\n 'background-size': 'auto',\n direction: 'ltr',\n padding: '20px 0',\n 'text-align': 'center',\n 'text-padding': '4px 4px 4px 0',\n 'vertical-align': 'top'\n};\n\n//# sourceURL=webpack://mjml/./mjml/packages/mjml-section/src/index.js?")},"./mjml/packages/mjml-social/src/Social.js":/*!*************************************************!*\ - !*** ./mjml/packages/mjml-social/src/Social.js ***! - \*************************************************/ -/*! exports provided: default */ -function(module,__webpack_exports__,__webpack_require__){"use strict";eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"default\", function() { return MjSocial; });\n/* harmony import */ var mjml_core__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! mjml-core */ \"./mjml/packages/mjml-core/src/index.js\");\n\nclass MjSocial extends mjml_core__WEBPACK_IMPORTED_MODULE_0__[\"BodyComponent\"] {\n getStyles() {\n // eslint-disable-line class-methods-use-this\n return {\n tableVertical: {\n margin: '0px'\n }\n };\n }\n\n getSocialElementAttributes() {\n var base = {};\n\n if (this.getAttribute('inner-padding')) {\n base.padding = this.getAttribute('inner-padding');\n }\n\n return ['border-radius', 'color', 'font-family', 'font-size', 'font-weight', 'font-style', 'icon-size', 'icon-height', 'icon-padding', 'text-padding', 'line-height', 'text-decoration'].reduce((res, attr) => {\n res[attr] = this.getAttribute(attr);\n return res;\n }, base);\n }\n\n renderHorizontal() {\n var children = this.props.children;\n return `\n \x3c!--[if mso | IE]>\n \n \n `\n \x3c!--[if mso | IE]>\n \n \n ${component.render()}\n \n \x3c!--[if mso | IE]>\n \n \n \n \n \n ${this.renderChildren(children, {\n attributes: this.getSocialElementAttributes()\n })}\n \n `;\n }\n\n render() {\n return `\n ${this.getAttribute('mode') === 'horizontal' ? this.renderHorizontal() : this.renderVertical()}\n `;\n }\n\n}\nMjSocial.allowedAttributes = {\n align: 'enum(left,right,center)',\n 'border-radius': 'unit(px)',\n 'container-background-color': 'color',\n color: 'color',\n 'font-family': 'string',\n 'font-size': 'unit(px)',\n 'font-style': 'string',\n 'font-weight': 'string',\n 'icon-size': 'unit(px,%)',\n 'icon-height': 'unit(px,%)',\n 'icon-padding': 'unit(px,%){1,4}',\n 'inner-padding': 'unit(px,%)',\n 'line-height': 'unit(px,%)',\n mode: 'enum(horizontal,vertical)',\n 'padding-bottom': 'unit(px,%)',\n 'padding-left': 'unit(px,%)',\n 'padding-right': 'unit(px,%)',\n 'padding-top': 'unit(px,%)',\n padding: 'unit(px,%){1,4}',\n 'table-layout': 'enum(auto,fixed)',\n 'text-padding': 'unit(px,%){1,4}',\n 'text-decoration': 'string',\n 'vertical-align': 'enum(top,bottom,middle)'\n};\nMjSocial.defaultAttributes = {\n align: 'center',\n 'border-radius': '3px',\n color: '#333333',\n 'font-family': 'Ubuntu, Helvetica, Arial, sans-serif',\n 'font-size': '13px',\n 'icon-size': '20px',\n 'inner-padding': null,\n 'line-height': '22px',\n mode: 'horizontal',\n padding: '10px 25px',\n 'text-decoration': 'none'\n};\n\n//# sourceURL=webpack://mjml/./mjml/packages/mjml-social/src/Social.js?")},"./mjml/packages/mjml-social/src/SocialElement.js":/*!********************************************************!*\ - !*** ./mjml/packages/mjml-social/src/SocialElement.js ***! - \********************************************************/ -/*! exports provided: default */ -function(module,__webpack_exports__,__webpack_require__){"use strict";eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"default\", function() { return MjSocialElement; });\n/* harmony import */ var mjml_core__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! mjml-core */ \"./mjml/packages/mjml-core/src/index.js\");\n/* harmony import */ var lodash__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! lodash */ \"./node_modules/lodash/lodash.js\");\n/* harmony import */ var lodash__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(lodash__WEBPACK_IMPORTED_MODULE_1__);\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; var ownKeys = Object.keys(source); if (typeof Object.getOwnPropertySymbols === 'function') { ownKeys = ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function (sym) { return Object.getOwnPropertyDescriptor(source, sym).enumerable; })); } ownKeys.forEach(function (key) { _defineProperty(target, key, source[key]); }); } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\n\n\nvar IMG_BASE_URL = 'https://www.mailjet.com/images/theme/v1/icons/ico-social/';\nvar defaultSocialNetworks = {\n facebook: {\n 'share-url': 'https://www.facebook.com/sharer/sharer.php?u=[[URL]]',\n 'background-color': '#3b5998',\n src: `${IMG_BASE_URL}facebook.png`\n },\n twitter: {\n 'share-url': 'https://twitter.com/home?status=[[URL]]',\n 'background-color': '#55acee',\n src: `${IMG_BASE_URL}twitter.png`\n },\n google: {\n 'share-url': 'https://plus.google.com/share?url=[[URL]]',\n 'background-color': '#dc4e41',\n src: `${IMG_BASE_URL}google-plus.png`\n },\n pinterest: {\n 'share-url': 'https://pinterest.com/pin/create/button/?url=[[URL]]&media=&description=',\n 'background-color': '#bd081c',\n src: `${IMG_BASE_URL}pinterest.png`\n },\n linkedin: {\n 'share-url': 'https://www.linkedin.com/shareArticle?mini=true&url=[[URL]]&title=&summary=&source=',\n 'background-color': '#0077b5',\n src: `${IMG_BASE_URL}linkedin.png`\n },\n instagram: {\n 'background-color': '#3f729b',\n src: `${IMG_BASE_URL}instagram.png`\n },\n web: {\n src: `${IMG_BASE_URL}web.png`,\n 'background-color': '#4BADE9'\n },\n snapchat: {\n src: `${IMG_BASE_URL}snapchat.png`,\n 'background-color': '#FFFA54'\n },\n youtube: {\n src: `${IMG_BASE_URL}youtube.png`,\n 'background-color': '#EB3323'\n },\n tumblr: {\n src: `${IMG_BASE_URL}tumblr.png`,\n 'share-url': 'https://www.tumblr.com/widgets/share/tool?canonicalUrl=[[URL]]',\n 'background-color': '#344356'\n },\n github: {\n src: `${IMG_BASE_URL}github.png`,\n 'background-color': '#000000'\n },\n xing: {\n src: `${IMG_BASE_URL}xing.png`,\n 'share-url': 'https://www.xing.com/app/user?op=share&url=[[URL]]',\n 'background-color': '#296366'\n },\n vimeo: {\n src: `${IMG_BASE_URL}vimeo.png`,\n 'background-color': '#53B4E7'\n },\n medium: {\n src: `${IMG_BASE_URL}medium.png`,\n 'background-color': '#000000'\n },\n soundcloud: {\n src: `${IMG_BASE_URL}soundcloud.png`,\n 'background-color': '#EF7F31'\n },\n dribbble: {\n src: `${IMG_BASE_URL}dribbble.png`,\n 'background-color': '#D95988'\n }\n};\nObject(lodash__WEBPACK_IMPORTED_MODULE_1__[\"each\"])(defaultSocialNetworks, (val, key) => {\n defaultSocialNetworks[`${key}-noshare`] = _objectSpread({}, val, {\n 'share-url': '[[URL]]'\n });\n});\nclass MjSocialElement extends mjml_core__WEBPACK_IMPORTED_MODULE_0__[\"BodyComponent\"] {\n getStyles() {\n var _this$getSocialAttrib = this.getSocialAttributes(),\n iconSize = _this$getSocialAttrib['icon-size'],\n iconHeight = _this$getSocialAttrib['icon-height'],\n backgroundColor = _this$getSocialAttrib['background-color'];\n\n return {\n td: {\n padding: this.getAttribute('padding')\n },\n table: {\n background: backgroundColor,\n 'border-radius': this.getAttribute('border-radius'),\n width: iconSize\n },\n icon: {\n padding: this.getAttribute('icon-padding'),\n 'font-size': '0',\n height: iconHeight || iconSize,\n 'vertical-align': 'middle',\n width: iconSize\n },\n img: {\n 'border-radius': this.getAttribute('border-radius')\n },\n tdText: {\n 'vertical-align': 'middle',\n padding: this.getAttribute('text-padding')\n },\n text: {\n color: this.getAttribute('color'),\n 'font-size': this.getAttribute('font-size'),\n 'font-weight': this.getAttribute('font-weight'),\n 'font-style': this.getAttribute('font-style'),\n 'font-family': this.getAttribute('font-family'),\n 'line-height': this.getAttribute('line-height'),\n 'text-decoration': this.getAttribute('text-decoration')\n }\n };\n }\n\n getSocialAttributes() {\n var socialNetwork = defaultSocialNetworks[this.getAttribute('name')] || {};\n var href = this.getAttribute('href');\n\n if (Object(lodash__WEBPACK_IMPORTED_MODULE_1__[\"get\"])(socialNetwork, 'share-url')) {\n href = socialNetwork['share-url'].replace('[[URL]]', href);\n }\n\n var attrs = ['icon-size', 'icon-height', 'src', 'background-color'].reduce((r, attr) => _objectSpread({}, r, {\n [attr]: this.getAttribute(attr) || socialNetwork[attr]\n }), {});\n return _objectSpread({\n href\n }, attrs);\n }\n\n render() {\n var _this$getSocialAttrib2 = this.getSocialAttributes(),\n src = _this$getSocialAttrib2.src,\n href = _this$getSocialAttrib2.href,\n iconSize = _this$getSocialAttrib2['icon-size'],\n iconHeight = _this$getSocialAttrib2['icon-height'];\n\n return `\n \n \n \n \n \n \n \n \n \n \n \n \n ${this.getContent() ? `\n \n \n ${this.getContent()}\n \n \n ` : ''}\n \n `;\n }\n\n}\nMjSocialElement.endingTag = true;\nMjSocialElement.allowedAttributes = {\n align: 'enum(left,center,right)',\n 'background-color': 'color',\n color: 'color',\n 'border-radius': 'unit(px)',\n 'font-family': 'string',\n 'font-size': 'unit(px)',\n 'font-style': 'string',\n 'font-weight': 'string',\n href: 'string',\n 'icon-size': 'unit(px,%)',\n 'icon-height': 'unit(px,%)',\n 'icon-padding': 'unit(px,%){1,4}',\n 'line-height': 'unit(px,%)',\n name: 'string',\n 'padding-bottom': 'unit(px,%)',\n 'padding-left': 'unit(px,%)',\n 'padding-right': 'unit(px,%)',\n 'padding-top': 'unit(px,%)',\n padding: 'unit(px,%){1,4}',\n 'text-padding': 'unit(px,%){1,4}',\n src: 'string',\n alt: 'string',\n title: 'string',\n target: 'string',\n 'text-decoration': 'string'\n};\nMjSocialElement.defaultAttributes = {\n align: 'left',\n color: '#000',\n 'border-radius': '3px',\n 'font-family': 'Ubuntu, Helvetica, Arial, sans-serif',\n 'font-size': '13px',\n 'line-height': '1',\n padding: '4px',\n 'text-padding': '4px 4px 4px 0',\n target: '_blank',\n 'text-decoration': 'none',\n href: '[[SHORT_PERMALINK]]'\n};\n\n//# sourceURL=webpack://mjml/./mjml/packages/mjml-social/src/SocialElement.js?")},"./mjml/packages/mjml-social/src/index.js":/*!************************************************!*\ - !*** ./mjml/packages/mjml-social/src/index.js ***! - \************************************************/ -/*! exports provided: Social, SocialElement */ -function(module,__webpack_exports__,__webpack_require__){"use strict";eval('__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _Social__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./Social */ "./mjml/packages/mjml-social/src/Social.js");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "Social", function() { return _Social__WEBPACK_IMPORTED_MODULE_0__["default"]; });\n\n/* harmony import */ var _SocialElement__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./SocialElement */ "./mjml/packages/mjml-social/src/SocialElement.js");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "SocialElement", function() { return _SocialElement__WEBPACK_IMPORTED_MODULE_1__["default"]; });\n\n\n\n\n\n\n//# sourceURL=webpack://mjml/./mjml/packages/mjml-social/src/index.js?')},"./mjml/packages/mjml-spacer/src/index.js":/*!************************************************!*\ - !*** ./mjml/packages/mjml-spacer/src/index.js ***! - \************************************************/ -/*! exports provided: default */ -function(module,__webpack_exports__,__webpack_require__){"use strict";eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"default\", function() { return MjSpacer; });\n/* harmony import */ var mjml_core__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! mjml-core */ \"./mjml/packages/mjml-core/src/index.js\");\n/* harmony import */ var mjml_core_lib_helpers_conditionalTag__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! mjml-core/lib/helpers/conditionalTag */ \"./mjml/packages/mjml-core/src/helpers/conditionalTag.js\");\n\n\nclass MjSpacer extends mjml_core__WEBPACK_IMPORTED_MODULE_0__[\"BodyComponent\"] {\n getStyles() {\n return {\n div: {\n height: this.getAttribute('height')\n }\n };\n }\n\n render() {\n var height = this.getAttribute('height');\n return `\n ${Object(mjml_core_lib_helpers_conditionalTag__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(`\n
\n `)}\n \n  \n \n ${Object(mjml_core_lib_helpers_conditionalTag__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(`\n
\n `)}\n `;\n }\n\n}\nMjSpacer.allowedAttributes = {\n border: 'string',\n 'border-bottom': 'string',\n 'border-left': 'string',\n 'border-right': 'string',\n 'border-top': 'string',\n 'container-background-color': 'color',\n 'padding-bottom': 'unit(px,%)',\n 'padding-left': 'unit(px,%)',\n 'padding-right': 'unit(px,%)',\n 'padding-top': 'unit(px,%)',\n padding: 'unit(px,%){1,4}',\n 'vertical-align': 'enum(top,bottom,middle)',\n width: 'unit(px,%)',\n height: 'unit(px,%)'\n};\nMjSpacer.defaultAttributes = {\n height: '20px'\n};\n\n//# sourceURL=webpack://mjml/./mjml/packages/mjml-spacer/src/index.js?")},"./mjml/packages/mjml-table/src/index.js":/*!***********************************************!*\ - !*** ./mjml/packages/mjml-table/src/index.js ***! - \***********************************************/ -/*! exports provided: default */ -function(module,__webpack_exports__,__webpack_require__){"use strict";eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"default\", function() { return MjTable; });\n/* harmony import */ var mjml_core_lib_helpers_widthParser__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! mjml-core/lib/helpers/widthParser */ \"./mjml/packages/mjml-core/src/helpers/widthParser.js\");\n/* harmony import */ var mjml_core__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! mjml-core */ \"./mjml/packages/mjml-core/src/index.js\");\n/* harmony import */ var lodash__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! lodash */ \"./node_modules/lodash/lodash.js\");\n/* harmony import */ var lodash__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(lodash__WEBPACK_IMPORTED_MODULE_2__);\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; var ownKeys = Object.keys(source); if (typeof Object.getOwnPropertySymbols === 'function') { ownKeys = ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function (sym) { return Object.getOwnPropertyDescriptor(source, sym).enumerable; })); } ownKeys.forEach(function (key) { _defineProperty(target, key, source[key]); }); } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\n\n\n\nclass MjTable extends mjml_core__WEBPACK_IMPORTED_MODULE_1__[\"BodyComponent\"] {\n getStyles() {\n return {\n table: {\n cellpadding: this.getAttribute('cellspadding'),\n cellspacing: this.getAttribute('cellspacing'),\n color: this.getAttribute('color'),\n 'font-family': this.getAttribute('font-family'),\n 'font-size': this.getAttribute('font-size'),\n 'line-height': this.getAttribute('line-height'),\n 'table-layout': this.getAttribute('table-layout'),\n width: this.getAttribute('width')\n }\n };\n }\n\n getWidth() {\n var width = this.getAttribute('width');\n\n var _widthParser = Object(mjml_core_lib_helpers_widthParser__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(width),\n parsedWidth = _widthParser.parsedWidth,\n unit = _widthParser.unit;\n\n return unit === '%' ? width : parsedWidth;\n }\n\n render() {\n var tableAttributes = Object(lodash__WEBPACK_IMPORTED_MODULE_2__[\"reduce\"])(['cellpadding', 'cellspacing'], (acc, v) => _objectSpread({}, acc, {\n [v]: this.getAttribute(v)\n }), {});\n return `\n \n ${this.getContent()}\n \n `;\n }\n\n}\nMjTable.endingTag = true;\nMjTable.allowedAttributes = {\n align: 'enum(left,right,center)',\n cellpadding: 'integer',\n cellspacing: 'integer',\n 'container-background-color': 'color',\n color: 'color',\n 'font-family': 'string',\n 'font-size': 'unit(px)',\n 'font-weight': 'string',\n 'line-height': 'unit(px,%)',\n 'padding-bottom': 'unit(px,%)',\n 'padding-left': 'unit(px,%)',\n 'padding-right': 'unit(px,%)',\n 'padding-top': 'unit(px,%)',\n padding: 'unit(px,%){1,4}',\n 'table-layout': 'enum(auto,fixed,initial,inherit)',\n 'vertical-align': 'enum(top,bottom,middle)',\n width: 'unit(px,%)'\n};\nMjTable.defaultAttributes = {\n align: 'left',\n cellpadding: '0',\n cellspacing: '0',\n color: '#000000',\n 'font-family': 'Ubuntu, Helvetica, Arial, sans-serif',\n 'font-size': '13px',\n 'line-height': '22px',\n padding: '10px 25px',\n 'table-layout': 'auto',\n width: '100%'\n};\n\n//# sourceURL=webpack://mjml/./mjml/packages/mjml-table/src/index.js?")},"./mjml/packages/mjml-text/src/index.js":/*!**********************************************!*\ - !*** ./mjml/packages/mjml-text/src/index.js ***! - \**********************************************/ -/*! exports provided: default */ -function(module,__webpack_exports__,__webpack_require__){"use strict";eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"default\", function() { return MjText; });\n/* harmony import */ var mjml_core__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! mjml-core */ \"./mjml/packages/mjml-core/src/index.js\");\n/* harmony import */ var mjml_core_lib_helpers_conditionalTag__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! mjml-core/lib/helpers/conditionalTag */ \"./mjml/packages/mjml-core/src/helpers/conditionalTag.js\");\n\n\nclass MjText extends mjml_core__WEBPACK_IMPORTED_MODULE_0__[\"BodyComponent\"] {\n getStyles() {\n return {\n text: {\n 'font-family': this.getAttribute('font-family'),\n 'font-size': this.getAttribute('font-size'),\n 'font-style': this.getAttribute('font-style'),\n 'font-weight': this.getAttribute('font-weight'),\n 'letter-spacing': this.getAttribute('letter-spacing'),\n 'line-height': this.getAttribute('line-height'),\n 'text-align': this.getAttribute('align'),\n 'text-decoration': this.getAttribute('text-decoration'),\n 'text-transform': this.getAttribute('text-transform'),\n color: this.getAttribute('color'),\n height: this.getAttribute('height')\n }\n };\n }\n\n renderContent() {\n return `\n \n ${this.getContent()}\n \n `;\n }\n\n render() {\n var height = this.getAttribute('height');\n return height ? `\n ${Object(mjml_core_lib_helpers_conditionalTag__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(`\n
\n `)}\n ${this.renderContent()}\n ${Object(mjml_core_lib_helpers_conditionalTag__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(`\n
\n `)}\n ` : this.renderContent();\n }\n\n}\nMjText.endingTag = true;\nMjText.allowedAttributes = {\n align: 'enum(left,right,center,justify)',\n 'background-color': 'color',\n color: 'color',\n 'container-background-color': 'color',\n 'font-family': 'string',\n 'font-size': 'unit(px)',\n 'font-style': 'string',\n 'font-weight': 'string',\n height: 'unit(px,%)',\n 'letter-spacing': 'unit(px,%)',\n 'line-height': 'unit(px,%)',\n 'padding-bottom': 'unit(px,%)',\n 'padding-left': 'unit(px,%)',\n 'padding-right': 'unit(px,%)',\n 'padding-top': 'unit(px,%)',\n padding: 'unit(px,%){1,4}',\n 'text-decoration': 'string',\n 'text-transform': 'string',\n 'vertical-align': 'enum(top,bottom,middle)'\n};\nMjText.defaultAttributes = {\n align: 'left',\n color: '#000000',\n 'font-family': 'Ubuntu, Helvetica, Arial, sans-serif',\n 'font-size': '13px',\n 'line-height': '1',\n padding: '10px 25px'\n};\n\n//# sourceURL=webpack://mjml/./mjml/packages/mjml-text/src/index.js?")},"./mjml/packages/mjml-validator/src/MJMLRulesCollection.js":/*!*****************************************************************!*\ - !*** ./mjml/packages/mjml-validator/src/MJMLRulesCollection.js ***! - \*****************************************************************/ -/*! exports provided: registerRule, default */ -function(module,__webpack_exports__,__webpack_require__){"use strict";eval('__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "registerRule", function() { return registerRule; });\n/* harmony import */ var warning__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! warning */ "./node_modules/warning/warning.js");\n/* harmony import */ var warning__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(warning__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var lodash__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! lodash */ "./node_modules/lodash/lodash.js");\n/* harmony import */ var lodash__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(lodash__WEBPACK_IMPORTED_MODULE_1__);\n/* harmony import */ var _rules__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./rules */ "./mjml/packages/mjml-validator/src/rules/index.js");\n\n\n\nvar MJMLRulesCollection = {};\nfunction registerRule(rule, name) {\n if (typeof rule !== \'function\') {\n return warning__WEBPACK_IMPORTED_MODULE_0___default()(false, \'Your rule must be a function\');\n }\n\n if (name) {\n MJMLRulesCollection[name] = rule;\n } else {\n MJMLRulesCollection[rule.name] = rule;\n }\n\n return true;\n}\nObject(lodash__WEBPACK_IMPORTED_MODULE_1__["mapKeys"])(_rules__WEBPACK_IMPORTED_MODULE_2__, (func, name) => registerRule(func, name));\n/* harmony default export */ __webpack_exports__["default"] = (MJMLRulesCollection);\n\n//# sourceURL=webpack://mjml/./mjml/packages/mjml-validator/src/MJMLRulesCollection.js?')},"./mjml/packages/mjml-validator/src/dependencies.js":/*!**********************************************************!*\ - !*** ./mjml/packages/mjml-validator/src/dependencies.js ***! - \**********************************************************/ -/*! exports provided: registerDependencies, default */ -function(module,__webpack_exports__,__webpack_require__){"use strict";eval('__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "registerDependencies", function() { return registerDependencies; });\n/* harmony import */ var lodash__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! lodash */ "./node_modules/lodash/lodash.js");\n/* harmony import */ var lodash__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(lodash__WEBPACK_IMPORTED_MODULE_0__);\n // eslint-disable-next-line consistent-return\n\nfunction mergeArrays(objValue, srcValue) {\n if (Object(lodash__WEBPACK_IMPORTED_MODULE_0__["isArray"])(objValue) && Object(lodash__WEBPACK_IMPORTED_MODULE_0__["isArray"])(srcValue)) {\n return objValue.concat(srcValue);\n }\n}\n\nvar dependencies = {};\nvar registerDependencies = dep => Object(lodash__WEBPACK_IMPORTED_MODULE_0__["mergeWith"])(dependencies, dep, mergeArrays);\n/* harmony default export */ __webpack_exports__["default"] = (dependencies);\n\n//# sourceURL=webpack://mjml/./mjml/packages/mjml-validator/src/dependencies.js?')},"./mjml/packages/mjml-validator/src/index.js":/*!***************************************************!*\ - !*** ./mjml/packages/mjml-validator/src/index.js ***! - \***************************************************/ -/*! exports provided: formatValidationError, rulesCollection, registerRule, dependencies, registerDependencies, default */ -function(module,__webpack_exports__,__webpack_require__){"use strict";eval('__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "formatValidationError", function() { return formatValidationError; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "default", function() { return MJMLValidator; });\n/* harmony import */ var lodash__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! lodash */ "./node_modules/lodash/lodash.js");\n/* harmony import */ var lodash__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(lodash__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var _rules_ruleError__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./rules/ruleError */ "./mjml/packages/mjml-validator/src/rules/ruleError.js");\n/* harmony import */ var _MJMLRulesCollection__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./MJMLRulesCollection */ "./mjml/packages/mjml-validator/src/MJMLRulesCollection.js");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "rulesCollection", function() { return _MJMLRulesCollection__WEBPACK_IMPORTED_MODULE_2__["default"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "registerRule", function() { return _MJMLRulesCollection__WEBPACK_IMPORTED_MODULE_2__["registerRule"]; });\n\n/* harmony import */ var _dependencies__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./dependencies */ "./mjml/packages/mjml-validator/src/dependencies.js");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "dependencies", function() { return _dependencies__WEBPACK_IMPORTED_MODULE_3__["default"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "registerDependencies", function() { return _dependencies__WEBPACK_IMPORTED_MODULE_3__["registerDependencies"]; });\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; var ownKeys = Object.keys(source); if (typeof Object.getOwnPropertySymbols === \'function\') { ownKeys = ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function (sym) { return Object.getOwnPropertyDescriptor(source, sym).enumerable; })); } ownKeys.forEach(function (key) { _defineProperty(target, key, source[key]); }); } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\n\n\n\nvar SKIP_ELEMENTS = [\'mjml\'];\nvar formatValidationError = _rules_ruleError__WEBPACK_IMPORTED_MODULE_1__["default"];\n\n\n\n\nfunction MJMLValidator(element) {\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n var children = element.children,\n tagName = element.tagName;\n var errors;\n var skipElements = options.skipElements || SKIP_ELEMENTS;\n\n if (!Object(lodash__WEBPACK_IMPORTED_MODULE_0__["includes"])(skipElements, tagName)) {\n errors = Object(lodash__WEBPACK_IMPORTED_MODULE_0__["flatten"])(Object(lodash__WEBPACK_IMPORTED_MODULE_0__["concat"])(errors, ...Object(lodash__WEBPACK_IMPORTED_MODULE_0__["values"])(_MJMLRulesCollection__WEBPACK_IMPORTED_MODULE_2__["default"]).map(rule => rule(element, _objectSpread({\n skipElements\n }, options)))));\n }\n\n if (children && children.length > 0) {\n errors = Object(lodash__WEBPACK_IMPORTED_MODULE_0__["flatten"])(Object(lodash__WEBPACK_IMPORTED_MODULE_0__["concat"])(errors, ...children.map(child => MJMLValidator(child, options))));\n }\n\n return Object(lodash__WEBPACK_IMPORTED_MODULE_0__["filter"])(errors);\n}\n\n//# sourceURL=webpack://mjml/./mjml/packages/mjml-validator/src/index.js?')},"./mjml/packages/mjml-validator/src/rules/index.js":/*!*********************************************************!*\ - !*** ./mjml/packages/mjml-validator/src/rules/index.js ***! - \*********************************************************/ -/*! exports provided: validAttributes, validChildren, validTag, validTypes */ -function(module,__webpack_exports__,__webpack_require__){"use strict";eval('__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _validAttributes__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./validAttributes */ "./mjml/packages/mjml-validator/src/rules/validAttributes.js");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "validAttributes", function() { return _validAttributes__WEBPACK_IMPORTED_MODULE_0__["default"]; });\n\n/* harmony import */ var _validChildren__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./validChildren */ "./mjml/packages/mjml-validator/src/rules/validChildren.js");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "validChildren", function() { return _validChildren__WEBPACK_IMPORTED_MODULE_1__["default"]; });\n\n/* harmony import */ var _validTag__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./validTag */ "./mjml/packages/mjml-validator/src/rules/validTag.js");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "validTag", function() { return _validTag__WEBPACK_IMPORTED_MODULE_2__["default"]; });\n\n/* harmony import */ var _validTypes__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./validTypes */ "./mjml/packages/mjml-validator/src/rules/validTypes.js");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "validTypes", function() { return _validTypes__WEBPACK_IMPORTED_MODULE_3__["default"]; });\n\n\n\n\n\n\n\n\n\n\n//# sourceURL=webpack://mjml/./mjml/packages/mjml-validator/src/rules/index.js?')},"./mjml/packages/mjml-validator/src/rules/ruleError.js":/*!*************************************************************!*\ - !*** ./mjml/packages/mjml-validator/src/rules/ruleError.js ***! - \*************************************************************/ -/*! exports provided: default */ -function(module,__webpack_exports__,__webpack_require__){"use strict";eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"default\", function() { return ruleError; });\nfunction formatInclude(element) {\n var includedIn = element.includedIn;\n if (!(includedIn && includedIn.length)) return '';\n var formattedIncluded = includedIn.slice().reverse().map((_ref) => {\n var line = _ref.line,\n file = _ref.file;\n return `line ${line} of file ${file}`;\n }).join(', itself included at ');\n return `, included at ${formattedIncluded}`;\n}\n\nfunction ruleError(message, element) {\n var line = element.line,\n tagName = element.tagName,\n absoluteFilePath = element.absoluteFilePath;\n return {\n line,\n message,\n tagName,\n formattedMessage: `Line ${line} of ${absoluteFilePath}${formatInclude(element)} (${tagName}) — ${message}`\n };\n}\n\n//# sourceURL=webpack://mjml/./mjml/packages/mjml-validator/src/rules/ruleError.js?")},"./mjml/packages/mjml-validator/src/rules/validAttributes.js":/*!*******************************************************************!*\ - !*** ./mjml/packages/mjml-validator/src/rules/validAttributes.js ***! - \*******************************************************************/ -/*! exports provided: default */ -function(module,__webpack_exports__,__webpack_require__){"use strict";eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"default\", function() { return validateAttribute; });\n/* harmony import */ var lodash_concat__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! lodash/concat */ \"./node_modules/lodash/concat.js\");\n/* harmony import */ var lodash_concat__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(lodash_concat__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var lodash_keys__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! lodash/keys */ \"./node_modules/lodash/keys.js\");\n/* harmony import */ var lodash_keys__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(lodash_keys__WEBPACK_IMPORTED_MODULE_1__);\n/* harmony import */ var lodash_includes__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! lodash/includes */ \"./node_modules/lodash/includes.js\");\n/* harmony import */ var lodash_includes__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(lodash_includes__WEBPACK_IMPORTED_MODULE_2__);\n/* harmony import */ var lodash_filter__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! lodash/filter */ \"./node_modules/lodash/filter.js\");\n/* harmony import */ var lodash_filter__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(lodash_filter__WEBPACK_IMPORTED_MODULE_3__);\n/* harmony import */ var _ruleError__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./ruleError */ \"./mjml/packages/mjml-validator/src/rules/ruleError.js\");\n\n\n\n\n\nvar WHITELIST = ['mj-class', 'css-class'];\nfunction validateAttribute(element, _ref) {\n var components = _ref.components;\n var attributes = element.attributes,\n tagName = element.tagName;\n var Component = components[tagName];\n\n if (!Component) {\n return null;\n }\n\n var availableAttributes = lodash_concat__WEBPACK_IMPORTED_MODULE_0___default()(lodash_keys__WEBPACK_IMPORTED_MODULE_1___default()(Component.allowedAttributes), WHITELIST);\n var unknownAttributes = lodash_filter__WEBPACK_IMPORTED_MODULE_3___default()(lodash_keys__WEBPACK_IMPORTED_MODULE_1___default()(attributes), attribute => !lodash_includes__WEBPACK_IMPORTED_MODULE_2___default()(availableAttributes, attribute));\n\n if (unknownAttributes.length === 0) {\n return null;\n }\n\n var _attribute$illegal = {\n attribute: unknownAttributes.length > 1 ? 'Attributes' : 'Attribute',\n illegal: unknownAttributes.length > 1 ? 'are illegal' : 'is illegal'\n },\n attribute = _attribute$illegal.attribute,\n illegal = _attribute$illegal.illegal;\n return Object(_ruleError__WEBPACK_IMPORTED_MODULE_4__[\"default\"])(`${attribute} ${unknownAttributes.join(', ')} ${illegal}`, element);\n}\n\n//# sourceURL=webpack://mjml/./mjml/packages/mjml-validator/src/rules/validAttributes.js?")},"./mjml/packages/mjml-validator/src/rules/validChildren.js":/*!*****************************************************************!*\ - !*** ./mjml/packages/mjml-validator/src/rules/validChildren.js ***! - \*****************************************************************/ -/*! exports provided: default */ -function(module,__webpack_exports__,__webpack_require__){"use strict";eval('__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "default", function() { return validChildren; });\n/* harmony import */ var lodash_filter__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! lodash/filter */ "./node_modules/lodash/filter.js");\n/* harmony import */ var lodash_filter__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(lodash_filter__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var lodash_includes__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! lodash/includes */ "./node_modules/lodash/includes.js");\n/* harmony import */ var lodash_includes__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(lodash_includes__WEBPACK_IMPORTED_MODULE_1__);\n/* harmony import */ var lodash_keys__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! lodash/keys */ "./node_modules/lodash/keys.js");\n/* harmony import */ var lodash_keys__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(lodash_keys__WEBPACK_IMPORTED_MODULE_2__);\n/* harmony import */ var _dependencies__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../dependencies */ "./mjml/packages/mjml-validator/src/dependencies.js");\n/* harmony import */ var _ruleError__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./ruleError */ "./mjml/packages/mjml-validator/src/rules/ruleError.js");\n\n\n\n\n\nfunction validChildren(element, _ref) {\n var components = _ref.components,\n skipElements = _ref.skipElements;\n var children = element.children,\n tagName = element.tagName;\n var Component = components[tagName];\n\n if (!Component || !children || !children.length) {\n return null;\n }\n\n return lodash_filter__WEBPACK_IMPORTED_MODULE_0___default()(children.map(child => {\n var childTagName = child.tagName;\n var ChildComponent = components[childTagName];\n var parentDependencies = _dependencies__WEBPACK_IMPORTED_MODULE_3__["default"][tagName] || [];\n\n if (!ChildComponent || lodash_includes__WEBPACK_IMPORTED_MODULE_1___default()(skipElements, childTagName) || lodash_includes__WEBPACK_IMPORTED_MODULE_1___default()(parentDependencies, childTagName) || parentDependencies.some(dep => dep instanceof RegExp && dep.test(childTagName))) {\n return null;\n }\n\n var allowedDependencies = lodash_keys__WEBPACK_IMPORTED_MODULE_2___default()(_dependencies__WEBPACK_IMPORTED_MODULE_3__["default"]).filter(key => lodash_includes__WEBPACK_IMPORTED_MODULE_1___default()(_dependencies__WEBPACK_IMPORTED_MODULE_3__["default"][key], childTagName) || _dependencies__WEBPACK_IMPORTED_MODULE_3__["default"][key].some(dep => dep instanceof RegExp && dep.test(childTagName)));\n return Object(_ruleError__WEBPACK_IMPORTED_MODULE_4__["default"])(`${childTagName} cannot be used inside ${tagName}, only inside: ${allowedDependencies.join(\', \')}`, child);\n }));\n}\n\n//# sourceURL=webpack://mjml/./mjml/packages/mjml-validator/src/rules/validChildren.js?')},"./mjml/packages/mjml-validator/src/rules/validTag.js":/*!************************************************************!*\ - !*** ./mjml/packages/mjml-validator/src/rules/validTag.js ***! - \************************************************************/ -/*! exports provided: default */ -function(module,__webpack_exports__,__webpack_require__){"use strict";eval('__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "default", function() { return validateTag; });\n/* harmony import */ var lodash__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! lodash */ "./node_modules/lodash/lodash.js");\n/* harmony import */ var lodash__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(lodash__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var _ruleError__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./ruleError */ "./mjml/packages/mjml-validator/src/rules/ruleError.js");\n\n // Tags that have no associated components but are allowed even so\n\nvar componentLessTags = [\'mj-all\', \'mj-class\'];\nfunction validateTag(element, _ref) {\n var components = _ref.components;\n var tagName = element.tagName;\n if (Object(lodash__WEBPACK_IMPORTED_MODULE_0__["includes"])(componentLessTags, tagName)) return null;\n var Component = components[tagName];\n\n if (!Component) {\n return Object(_ruleError__WEBPACK_IMPORTED_MODULE_1__["default"])(`Element ${tagName} doesn\'t exist or is not registered`, element);\n }\n\n return null;\n}\n\n//# sourceURL=webpack://mjml/./mjml/packages/mjml-validator/src/rules/validTag.js?')},"./mjml/packages/mjml-validator/src/rules/validTypes.js":/*!**************************************************************!*\ - !*** ./mjml/packages/mjml-validator/src/rules/validTypes.js ***! - \**************************************************************/ -/*! exports provided: default */ -function(module,__webpack_exports__,__webpack_require__){"use strict";eval('__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "default", function() { return validateType; });\n/* harmony import */ var lodash__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! lodash */ "./node_modules/lodash/lodash.js");\n/* harmony import */ var lodash__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(lodash__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var _ruleError__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./ruleError */ "./mjml/packages/mjml-validator/src/rules/ruleError.js");\n\n\nfunction validateType(element, _ref) {\n var components = _ref.components,\n initializeType = _ref.initializeType;\n var attributes = element.attributes,\n tagName = element.tagName;\n var Component = components[tagName];\n\n if (!Component) {\n return null;\n }\n\n return Object(lodash__WEBPACK_IMPORTED_MODULE_0__["compact"])(Object(lodash__WEBPACK_IMPORTED_MODULE_0__["map"])(attributes, (value, attr) => {\n var attrType = Component.allowedAttributes && Component.allowedAttributes[attr];\n if (!attrType) return null; // attribute not allowed\n\n var TypeChecker = initializeType(attrType);\n var result = new TypeChecker(value);\n if (result.isValid()) return null;\n return Object(_ruleError__WEBPACK_IMPORTED_MODULE_1__["default"])(`Attribute ${attr} ${result.getErrorMessage()}`, element);\n }));\n}\n\n//# sourceURL=webpack://mjml/./mjml/packages/mjml-validator/src/rules/validTypes.js?')},"./mjml/packages/mjml-wrapper/src/index.js":/*!*************************************************!*\ - !*** ./mjml/packages/mjml-wrapper/src/index.js ***! - \*************************************************/ -/*! exports provided: default */ -function(module,__webpack_exports__,__webpack_require__){"use strict";eval('__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "default", function() { return MjWrapper; });\n/* harmony import */ var mjml_section__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! mjml-section */ "./mjml/packages/mjml-section/src/index.js");\n/* harmony import */ var mjml_core__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! mjml-core */ "./mjml/packages/mjml-core/src/index.js");\n\n\nclass MjWrapper extends mjml_section__WEBPACK_IMPORTED_MODULE_0__["default"] {\n renderWrappedChildren() {\n var children = this.props.children;\n var containerWidth = this.context.containerWidth;\n return `\n ${this.renderChildren(children, {\n renderer: component => component.constructor.isRawElement() ? component.render() : `\n \x3c!--[if mso | IE]>\n \n \n \n \n \n {\n if (filename === '/.mjmlconfig') {\n return '{ \"packages\": [] }';\n } else {\n console.log('readFileSync - unknown file name \"' + filename + '\"');\n }\n }\n});\n\n//# sourceURL=webpack://mjml/./mocks/fs.js?")},"./mocks/uglify-js.js":/*!****************************!*\ - !*** ./mocks/uglify-js.js ***! - \****************************/ -/*! exports provided: default */ -function(module,__webpack_exports__,__webpack_require__){"use strict";eval('__webpack_require__.r(__webpack_exports__);\n/* harmony default export */ __webpack_exports__["default"] = ({});\n\n//# sourceURL=webpack://mjml/./mocks/uglify-js.js?')},"./node_modules/asn1.js/lib/asn1.js":/*!******************************************!*\ - !*** ./node_modules/asn1.js/lib/asn1.js ***! - \******************************************/ -/*! no static exports found */ -function(module,exports,__webpack_require__){eval('var asn1 = exports;\n\nasn1.bignum = __webpack_require__(/*! bn.js */ "./node_modules/bn.js/lib/bn.js");\n\nasn1.define = __webpack_require__(/*! ./asn1/api */ "./node_modules/asn1.js/lib/asn1/api.js").define;\nasn1.base = __webpack_require__(/*! ./asn1/base */ "./node_modules/asn1.js/lib/asn1/base/index.js");\nasn1.constants = __webpack_require__(/*! ./asn1/constants */ "./node_modules/asn1.js/lib/asn1/constants/index.js");\nasn1.decoders = __webpack_require__(/*! ./asn1/decoders */ "./node_modules/asn1.js/lib/asn1/decoders/index.js");\nasn1.encoders = __webpack_require__(/*! ./asn1/encoders */ "./node_modules/asn1.js/lib/asn1/encoders/index.js");\n\n\n//# sourceURL=webpack://mjml/./node_modules/asn1.js/lib/asn1.js?')},"./node_modules/asn1.js/lib/asn1/api.js":/*!**********************************************!*\ - !*** ./node_modules/asn1.js/lib/asn1/api.js ***! - \**********************************************/ -/*! no static exports found */ -function(module,exports,__webpack_require__){eval("var asn1 = __webpack_require__(/*! ../asn1 */ \"./node_modules/asn1.js/lib/asn1.js\");\nvar inherits = __webpack_require__(/*! inherits */ \"./node_modules/inherits/inherits_browser.js\");\n\nvar api = exports;\n\napi.define = function define(name, body) {\n return new Entity(name, body);\n};\n\nfunction Entity(name, body) {\n this.name = name;\n this.body = body;\n\n this.decoders = {};\n this.encoders = {};\n};\n\nEntity.prototype._createNamed = function createNamed(base) {\n var named;\n try {\n named = __webpack_require__(/*! vm */ \"./node_modules/vm-browserify/index.js\").runInThisContext(\n '(function ' + this.name + '(entity) {\\n' +\n ' this._initNamed(entity);\\n' +\n '})'\n );\n } catch (e) {\n named = function (entity) {\n this._initNamed(entity);\n };\n }\n inherits(named, base);\n named.prototype._initNamed = function initnamed(entity) {\n base.call(this, entity);\n };\n\n return new named(this);\n};\n\nEntity.prototype._getDecoder = function _getDecoder(enc) {\n enc = enc || 'der';\n // Lazily create decoder\n if (!this.decoders.hasOwnProperty(enc))\n this.decoders[enc] = this._createNamed(asn1.decoders[enc]);\n return this.decoders[enc];\n};\n\nEntity.prototype.decode = function decode(data, enc, options) {\n return this._getDecoder(enc).decode(data, options);\n};\n\nEntity.prototype._getEncoder = function _getEncoder(enc) {\n enc = enc || 'der';\n // Lazily create encoder\n if (!this.encoders.hasOwnProperty(enc))\n this.encoders[enc] = this._createNamed(asn1.encoders[enc]);\n return this.encoders[enc];\n};\n\nEntity.prototype.encode = function encode(data, enc, /* internal */ reporter) {\n return this._getEncoder(enc).encode(data, reporter);\n};\n\n\n//# sourceURL=webpack://mjml/./node_modules/asn1.js/lib/asn1/api.js?")},"./node_modules/asn1.js/lib/asn1/base/buffer.js":/*!******************************************************!*\ - !*** ./node_modules/asn1.js/lib/asn1/base/buffer.js ***! - \******************************************************/ -/*! no static exports found */ -function(module,exports,__webpack_require__){eval("var inherits = __webpack_require__(/*! inherits */ \"./node_modules/inherits/inherits_browser.js\");\nvar Reporter = __webpack_require__(/*! ../base */ \"./node_modules/asn1.js/lib/asn1/base/index.js\").Reporter;\nvar Buffer = __webpack_require__(/*! buffer */ \"./node_modules/buffer/index.js\").Buffer;\n\nfunction DecoderBuffer(base, options) {\n Reporter.call(this, options);\n if (!Buffer.isBuffer(base)) {\n this.error('Input not Buffer');\n return;\n }\n\n this.base = base;\n this.offset = 0;\n this.length = base.length;\n}\ninherits(DecoderBuffer, Reporter);\nexports.DecoderBuffer = DecoderBuffer;\n\nDecoderBuffer.prototype.save = function save() {\n return { offset: this.offset, reporter: Reporter.prototype.save.call(this) };\n};\n\nDecoderBuffer.prototype.restore = function restore(save) {\n // Return skipped data\n var res = new DecoderBuffer(this.base);\n res.offset = save.offset;\n res.length = this.offset;\n\n this.offset = save.offset;\n Reporter.prototype.restore.call(this, save.reporter);\n\n return res;\n};\n\nDecoderBuffer.prototype.isEmpty = function isEmpty() {\n return this.offset === this.length;\n};\n\nDecoderBuffer.prototype.readUInt8 = function readUInt8(fail) {\n if (this.offset + 1 <= this.length)\n return this.base.readUInt8(this.offset++, true);\n else\n return this.error(fail || 'DecoderBuffer overrun');\n}\n\nDecoderBuffer.prototype.skip = function skip(bytes, fail) {\n if (!(this.offset + bytes <= this.length))\n return this.error(fail || 'DecoderBuffer overrun');\n\n var res = new DecoderBuffer(this.base);\n\n // Share reporter state\n res._reporterState = this._reporterState;\n\n res.offset = this.offset;\n res.length = this.offset + bytes;\n this.offset += bytes;\n return res;\n}\n\nDecoderBuffer.prototype.raw = function raw(save) {\n return this.base.slice(save ? save.offset : this.offset, this.length);\n}\n\nfunction EncoderBuffer(value, reporter) {\n if (Array.isArray(value)) {\n this.length = 0;\n this.value = value.map(function(item) {\n if (!(item instanceof EncoderBuffer))\n item = new EncoderBuffer(item, reporter);\n this.length += item.length;\n return item;\n }, this);\n } else if (typeof value === 'number') {\n if (!(0 <= value && value <= 0xff))\n return reporter.error('non-byte EncoderBuffer value');\n this.value = value;\n this.length = 1;\n } else if (typeof value === 'string') {\n this.value = value;\n this.length = Buffer.byteLength(value);\n } else if (Buffer.isBuffer(value)) {\n this.value = value;\n this.length = value.length;\n } else {\n return reporter.error('Unsupported type: ' + typeof value);\n }\n}\nexports.EncoderBuffer = EncoderBuffer;\n\nEncoderBuffer.prototype.join = function join(out, offset) {\n if (!out)\n out = new Buffer(this.length);\n if (!offset)\n offset = 0;\n\n if (this.length === 0)\n return out;\n\n if (Array.isArray(this.value)) {\n this.value.forEach(function(item) {\n item.join(out, offset);\n offset += item.length;\n });\n } else {\n if (typeof this.value === 'number')\n out[offset] = this.value;\n else if (typeof this.value === 'string')\n out.write(this.value, offset);\n else if (Buffer.isBuffer(this.value))\n this.value.copy(out, offset);\n offset += this.length;\n }\n\n return out;\n};\n\n\n//# sourceURL=webpack://mjml/./node_modules/asn1.js/lib/asn1/base/buffer.js?")},"./node_modules/asn1.js/lib/asn1/base/index.js":/*!*****************************************************!*\ - !*** ./node_modules/asn1.js/lib/asn1/base/index.js ***! - \*****************************************************/ -/*! no static exports found */ -function(module,exports,__webpack_require__){eval('var base = exports;\n\nbase.Reporter = __webpack_require__(/*! ./reporter */ "./node_modules/asn1.js/lib/asn1/base/reporter.js").Reporter;\nbase.DecoderBuffer = __webpack_require__(/*! ./buffer */ "./node_modules/asn1.js/lib/asn1/base/buffer.js").DecoderBuffer;\nbase.EncoderBuffer = __webpack_require__(/*! ./buffer */ "./node_modules/asn1.js/lib/asn1/base/buffer.js").EncoderBuffer;\nbase.Node = __webpack_require__(/*! ./node */ "./node_modules/asn1.js/lib/asn1/base/node.js");\n\n\n//# sourceURL=webpack://mjml/./node_modules/asn1.js/lib/asn1/base/index.js?')},"./node_modules/asn1.js/lib/asn1/base/node.js":/*!****************************************************!*\ - !*** ./node_modules/asn1.js/lib/asn1/base/node.js ***! - \****************************************************/ -/*! no static exports found */ -function(module,exports,__webpack_require__){eval("var Reporter = __webpack_require__(/*! ../base */ \"./node_modules/asn1.js/lib/asn1/base/index.js\").Reporter;\nvar EncoderBuffer = __webpack_require__(/*! ../base */ \"./node_modules/asn1.js/lib/asn1/base/index.js\").EncoderBuffer;\nvar DecoderBuffer = __webpack_require__(/*! ../base */ \"./node_modules/asn1.js/lib/asn1/base/index.js\").DecoderBuffer;\nvar assert = __webpack_require__(/*! minimalistic-assert */ \"./node_modules/minimalistic-assert/index.js\");\n\n// Supported tags\nvar tags = [\n 'seq', 'seqof', 'set', 'setof', 'objid', 'bool',\n 'gentime', 'utctime', 'null_', 'enum', 'int', 'objDesc',\n 'bitstr', 'bmpstr', 'charstr', 'genstr', 'graphstr', 'ia5str', 'iso646str',\n 'numstr', 'octstr', 'printstr', 't61str', 'unistr', 'utf8str', 'videostr'\n];\n\n// Public methods list\nvar methods = [\n 'key', 'obj', 'use', 'optional', 'explicit', 'implicit', 'def', 'choice',\n 'any', 'contains'\n].concat(tags);\n\n// Overrided methods list\nvar overrided = [\n '_peekTag', '_decodeTag', '_use',\n '_decodeStr', '_decodeObjid', '_decodeTime',\n '_decodeNull', '_decodeInt', '_decodeBool', '_decodeList',\n\n '_encodeComposite', '_encodeStr', '_encodeObjid', '_encodeTime',\n '_encodeNull', '_encodeInt', '_encodeBool'\n];\n\nfunction Node(enc, parent) {\n var state = {};\n this._baseState = state;\n\n state.enc = enc;\n\n state.parent = parent || null;\n state.children = null;\n\n // State\n state.tag = null;\n state.args = null;\n state.reverseArgs = null;\n state.choice = null;\n state.optional = false;\n state.any = false;\n state.obj = false;\n state.use = null;\n state.useDecoder = null;\n state.key = null;\n state['default'] = null;\n state.explicit = null;\n state.implicit = null;\n state.contains = null;\n\n // Should create new instance on each method\n if (!state.parent) {\n state.children = [];\n this._wrap();\n }\n}\nmodule.exports = Node;\n\nvar stateProps = [\n 'enc', 'parent', 'children', 'tag', 'args', 'reverseArgs', 'choice',\n 'optional', 'any', 'obj', 'use', 'alteredUse', 'key', 'default', 'explicit',\n 'implicit', 'contains'\n];\n\nNode.prototype.clone = function clone() {\n var state = this._baseState;\n var cstate = {};\n stateProps.forEach(function(prop) {\n cstate[prop] = state[prop];\n });\n var res = new this.constructor(cstate.parent);\n res._baseState = cstate;\n return res;\n};\n\nNode.prototype._wrap = function wrap() {\n var state = this._baseState;\n methods.forEach(function(method) {\n this[method] = function _wrappedMethod() {\n var clone = new this.constructor(this);\n state.children.push(clone);\n return clone[method].apply(clone, arguments);\n };\n }, this);\n};\n\nNode.prototype._init = function init(body) {\n var state = this._baseState;\n\n assert(state.parent === null);\n body.call(this);\n\n // Filter children\n state.children = state.children.filter(function(child) {\n return child._baseState.parent === this;\n }, this);\n assert.equal(state.children.length, 1, 'Root node can have only one child');\n};\n\nNode.prototype._useArgs = function useArgs(args) {\n var state = this._baseState;\n\n // Filter children and args\n var children = args.filter(function(arg) {\n return arg instanceof this.constructor;\n }, this);\n args = args.filter(function(arg) {\n return !(arg instanceof this.constructor);\n }, this);\n\n if (children.length !== 0) {\n assert(state.children === null);\n state.children = children;\n\n // Replace parent to maintain backward link\n children.forEach(function(child) {\n child._baseState.parent = this;\n }, this);\n }\n if (args.length !== 0) {\n assert(state.args === null);\n state.args = args;\n state.reverseArgs = args.map(function(arg) {\n if (typeof arg !== 'object' || arg.constructor !== Object)\n return arg;\n\n var res = {};\n Object.keys(arg).forEach(function(key) {\n if (key == (key | 0))\n key |= 0;\n var value = arg[key];\n res[value] = key;\n });\n return res;\n });\n }\n};\n\n//\n// Overrided methods\n//\n\noverrided.forEach(function(method) {\n Node.prototype[method] = function _overrided() {\n var state = this._baseState;\n throw new Error(method + ' not implemented for encoding: ' + state.enc);\n };\n});\n\n//\n// Public methods\n//\n\ntags.forEach(function(tag) {\n Node.prototype[tag] = function _tagMethod() {\n var state = this._baseState;\n var args = Array.prototype.slice.call(arguments);\n\n assert(state.tag === null);\n state.tag = tag;\n\n this._useArgs(args);\n\n return this;\n };\n});\n\nNode.prototype.use = function use(item) {\n assert(item);\n var state = this._baseState;\n\n assert(state.use === null);\n state.use = item;\n\n return this;\n};\n\nNode.prototype.optional = function optional() {\n var state = this._baseState;\n\n state.optional = true;\n\n return this;\n};\n\nNode.prototype.def = function def(val) {\n var state = this._baseState;\n\n assert(state['default'] === null);\n state['default'] = val;\n state.optional = true;\n\n return this;\n};\n\nNode.prototype.explicit = function explicit(num) {\n var state = this._baseState;\n\n assert(state.explicit === null && state.implicit === null);\n state.explicit = num;\n\n return this;\n};\n\nNode.prototype.implicit = function implicit(num) {\n var state = this._baseState;\n\n assert(state.explicit === null && state.implicit === null);\n state.implicit = num;\n\n return this;\n};\n\nNode.prototype.obj = function obj() {\n var state = this._baseState;\n var args = Array.prototype.slice.call(arguments);\n\n state.obj = true;\n\n if (args.length !== 0)\n this._useArgs(args);\n\n return this;\n};\n\nNode.prototype.key = function key(newKey) {\n var state = this._baseState;\n\n assert(state.key === null);\n state.key = newKey;\n\n return this;\n};\n\nNode.prototype.any = function any() {\n var state = this._baseState;\n\n state.any = true;\n\n return this;\n};\n\nNode.prototype.choice = function choice(obj) {\n var state = this._baseState;\n\n assert(state.choice === null);\n state.choice = obj;\n this._useArgs(Object.keys(obj).map(function(key) {\n return obj[key];\n }));\n\n return this;\n};\n\nNode.prototype.contains = function contains(item) {\n var state = this._baseState;\n\n assert(state.use === null);\n state.contains = item;\n\n return this;\n};\n\n//\n// Decoding\n//\n\nNode.prototype._decode = function decode(input, options) {\n var state = this._baseState;\n\n // Decode root node\n if (state.parent === null)\n return input.wrapResult(state.children[0]._decode(input, options));\n\n var result = state['default'];\n var present = true;\n\n var prevKey = null;\n if (state.key !== null)\n prevKey = input.enterKey(state.key);\n\n // Check if tag is there\n if (state.optional) {\n var tag = null;\n if (state.explicit !== null)\n tag = state.explicit;\n else if (state.implicit !== null)\n tag = state.implicit;\n else if (state.tag !== null)\n tag = state.tag;\n\n if (tag === null && !state.any) {\n // Trial and Error\n var save = input.save();\n try {\n if (state.choice === null)\n this._decodeGeneric(state.tag, input, options);\n else\n this._decodeChoice(input, options);\n present = true;\n } catch (e) {\n present = false;\n }\n input.restore(save);\n } else {\n present = this._peekTag(input, tag, state.any);\n\n if (input.isError(present))\n return present;\n }\n }\n\n // Push object on stack\n var prevObj;\n if (state.obj && present)\n prevObj = input.enterObject();\n\n if (present) {\n // Unwrap explicit values\n if (state.explicit !== null) {\n var explicit = this._decodeTag(input, state.explicit);\n if (input.isError(explicit))\n return explicit;\n input = explicit;\n }\n\n var start = input.offset;\n\n // Unwrap implicit and normal values\n if (state.use === null && state.choice === null) {\n if (state.any)\n var save = input.save();\n var body = this._decodeTag(\n input,\n state.implicit !== null ? state.implicit : state.tag,\n state.any\n );\n if (input.isError(body))\n return body;\n\n if (state.any)\n result = input.raw(save);\n else\n input = body;\n }\n\n if (options && options.track && state.tag !== null)\n options.track(input.path(), start, input.length, 'tagged');\n\n if (options && options.track && state.tag !== null)\n options.track(input.path(), input.offset, input.length, 'content');\n\n // Select proper method for tag\n if (state.any)\n result = result;\n else if (state.choice === null)\n result = this._decodeGeneric(state.tag, input, options);\n else\n result = this._decodeChoice(input, options);\n\n if (input.isError(result))\n return result;\n\n // Decode children\n if (!state.any && state.choice === null && state.children !== null) {\n state.children.forEach(function decodeChildren(child) {\n // NOTE: We are ignoring errors here, to let parser continue with other\n // parts of encoded data\n child._decode(input, options);\n });\n }\n\n // Decode contained/encoded by schema, only in bit or octet strings\n if (state.contains && (state.tag === 'octstr' || state.tag === 'bitstr')) {\n var data = new DecoderBuffer(result);\n result = this._getUse(state.contains, input._reporterState.obj)\n ._decode(data, options);\n }\n }\n\n // Pop object\n if (state.obj && present)\n result = input.leaveObject(prevObj);\n\n // Set key\n if (state.key !== null && (result !== null || present === true))\n input.leaveKey(prevKey, state.key, result);\n else if (prevKey !== null)\n input.exitKey(prevKey);\n\n return result;\n};\n\nNode.prototype._decodeGeneric = function decodeGeneric(tag, input, options) {\n var state = this._baseState;\n\n if (tag === 'seq' || tag === 'set')\n return null;\n if (tag === 'seqof' || tag === 'setof')\n return this._decodeList(input, tag, state.args[0], options);\n else if (/str$/.test(tag))\n return this._decodeStr(input, tag, options);\n else if (tag === 'objid' && state.args)\n return this._decodeObjid(input, state.args[0], state.args[1], options);\n else if (tag === 'objid')\n return this._decodeObjid(input, null, null, options);\n else if (tag === 'gentime' || tag === 'utctime')\n return this._decodeTime(input, tag, options);\n else if (tag === 'null_')\n return this._decodeNull(input, options);\n else if (tag === 'bool')\n return this._decodeBool(input, options);\n else if (tag === 'objDesc')\n return this._decodeStr(input, tag, options);\n else if (tag === 'int' || tag === 'enum')\n return this._decodeInt(input, state.args && state.args[0], options);\n\n if (state.use !== null) {\n return this._getUse(state.use, input._reporterState.obj)\n ._decode(input, options);\n } else {\n return input.error('unknown tag: ' + tag);\n }\n};\n\nNode.prototype._getUse = function _getUse(entity, obj) {\n\n var state = this._baseState;\n // Create altered use decoder if implicit is set\n state.useDecoder = this._use(entity, obj);\n assert(state.useDecoder._baseState.parent === null);\n state.useDecoder = state.useDecoder._baseState.children[0];\n if (state.implicit !== state.useDecoder._baseState.implicit) {\n state.useDecoder = state.useDecoder.clone();\n state.useDecoder._baseState.implicit = state.implicit;\n }\n return state.useDecoder;\n};\n\nNode.prototype._decodeChoice = function decodeChoice(input, options) {\n var state = this._baseState;\n var result = null;\n var match = false;\n\n Object.keys(state.choice).some(function(key) {\n var save = input.save();\n var node = state.choice[key];\n try {\n var value = node._decode(input, options);\n if (input.isError(value))\n return false;\n\n result = { type: key, value: value };\n match = true;\n } catch (e) {\n input.restore(save);\n return false;\n }\n return true;\n }, this);\n\n if (!match)\n return input.error('Choice not matched');\n\n return result;\n};\n\n//\n// Encoding\n//\n\nNode.prototype._createEncoderBuffer = function createEncoderBuffer(data) {\n return new EncoderBuffer(data, this.reporter);\n};\n\nNode.prototype._encode = function encode(data, reporter, parent) {\n var state = this._baseState;\n if (state['default'] !== null && state['default'] === data)\n return;\n\n var result = this._encodeValue(data, reporter, parent);\n if (result === undefined)\n return;\n\n if (this._skipDefault(result, reporter, parent))\n return;\n\n return result;\n};\n\nNode.prototype._encodeValue = function encode(data, reporter, parent) {\n var state = this._baseState;\n\n // Decode root node\n if (state.parent === null)\n return state.children[0]._encode(data, reporter || new Reporter());\n\n var result = null;\n\n // Set reporter to share it with a child class\n this.reporter = reporter;\n\n // Check if data is there\n if (state.optional && data === undefined) {\n if (state['default'] !== null)\n data = state['default']\n else\n return;\n }\n\n // Encode children first\n var content = null;\n var primitive = false;\n if (state.any) {\n // Anything that was given is translated to buffer\n result = this._createEncoderBuffer(data);\n } else if (state.choice) {\n result = this._encodeChoice(data, reporter);\n } else if (state.contains) {\n content = this._getUse(state.contains, parent)._encode(data, reporter);\n primitive = true;\n } else if (state.children) {\n content = state.children.map(function(child) {\n if (child._baseState.tag === 'null_')\n return child._encode(null, reporter, data);\n\n if (child._baseState.key === null)\n return reporter.error('Child should have a key');\n var prevKey = reporter.enterKey(child._baseState.key);\n\n if (typeof data !== 'object')\n return reporter.error('Child expected, but input is not object');\n\n var res = child._encode(data[child._baseState.key], reporter, data);\n reporter.leaveKey(prevKey);\n\n return res;\n }, this).filter(function(child) {\n return child;\n });\n content = this._createEncoderBuffer(content);\n } else {\n if (state.tag === 'seqof' || state.tag === 'setof') {\n // TODO(indutny): this should be thrown on DSL level\n if (!(state.args && state.args.length === 1))\n return reporter.error('Too many args for : ' + state.tag);\n\n if (!Array.isArray(data))\n return reporter.error('seqof/setof, but data is not Array');\n\n var child = this.clone();\n child._baseState.implicit = null;\n content = this._createEncoderBuffer(data.map(function(item) {\n var state = this._baseState;\n\n return this._getUse(state.args[0], data)._encode(item, reporter);\n }, child));\n } else if (state.use !== null) {\n result = this._getUse(state.use, parent)._encode(data, reporter);\n } else {\n content = this._encodePrimitive(state.tag, data);\n primitive = true;\n }\n }\n\n // Encode data itself\n var result;\n if (!state.any && state.choice === null) {\n var tag = state.implicit !== null ? state.implicit : state.tag;\n var cls = state.implicit === null ? 'universal' : 'context';\n\n if (tag === null) {\n if (state.use === null)\n reporter.error('Tag could be omitted only for .use()');\n } else {\n if (state.use === null)\n result = this._encodeComposite(tag, primitive, cls, content);\n }\n }\n\n // Wrap in explicit\n if (state.explicit !== null)\n result = this._encodeComposite(state.explicit, false, 'context', result);\n\n return result;\n};\n\nNode.prototype._encodeChoice = function encodeChoice(data, reporter) {\n var state = this._baseState;\n\n var node = state.choice[data.type];\n if (!node) {\n assert(\n false,\n data.type + ' not found in ' +\n JSON.stringify(Object.keys(state.choice)));\n }\n return node._encode(data.value, reporter);\n};\n\nNode.prototype._encodePrimitive = function encodePrimitive(tag, data) {\n var state = this._baseState;\n\n if (/str$/.test(tag))\n return this._encodeStr(data, tag);\n else if (tag === 'objid' && state.args)\n return this._encodeObjid(data, state.reverseArgs[0], state.args[1]);\n else if (tag === 'objid')\n return this._encodeObjid(data, null, null);\n else if (tag === 'gentime' || tag === 'utctime')\n return this._encodeTime(data, tag);\n else if (tag === 'null_')\n return this._encodeNull();\n else if (tag === 'int' || tag === 'enum')\n return this._encodeInt(data, state.args && state.reverseArgs[0]);\n else if (tag === 'bool')\n return this._encodeBool(data);\n else if (tag === 'objDesc')\n return this._encodeStr(data, tag);\n else\n throw new Error('Unsupported tag: ' + tag);\n};\n\nNode.prototype._isNumstr = function isNumstr(str) {\n return /^[0-9 ]*$/.test(str);\n};\n\nNode.prototype._isPrintstr = function isPrintstr(str) {\n return /^[A-Za-z0-9 '\\(\\)\\+,\\-\\.\\/:=\\?]*$/.test(str);\n};\n\n\n//# sourceURL=webpack://mjml/./node_modules/asn1.js/lib/asn1/base/node.js?")},"./node_modules/asn1.js/lib/asn1/base/reporter.js":/*!********************************************************!*\ - !*** ./node_modules/asn1.js/lib/asn1/base/reporter.js ***! - \********************************************************/ -/*! no static exports found */ -function(module,exports,__webpack_require__){eval("var inherits = __webpack_require__(/*! inherits */ \"./node_modules/inherits/inherits_browser.js\");\n\nfunction Reporter(options) {\n this._reporterState = {\n obj: null,\n path: [],\n options: options || {},\n errors: []\n };\n}\nexports.Reporter = Reporter;\n\nReporter.prototype.isError = function isError(obj) {\n return obj instanceof ReporterError;\n};\n\nReporter.prototype.save = function save() {\n var state = this._reporterState;\n\n return { obj: state.obj, pathLen: state.path.length };\n};\n\nReporter.prototype.restore = function restore(data) {\n var state = this._reporterState;\n\n state.obj = data.obj;\n state.path = state.path.slice(0, data.pathLen);\n};\n\nReporter.prototype.enterKey = function enterKey(key) {\n return this._reporterState.path.push(key);\n};\n\nReporter.prototype.exitKey = function exitKey(index) {\n var state = this._reporterState;\n\n state.path = state.path.slice(0, index - 1);\n};\n\nReporter.prototype.leaveKey = function leaveKey(index, key, value) {\n var state = this._reporterState;\n\n this.exitKey(index);\n if (state.obj !== null)\n state.obj[key] = value;\n};\n\nReporter.prototype.path = function path() {\n return this._reporterState.path.join('/');\n};\n\nReporter.prototype.enterObject = function enterObject() {\n var state = this._reporterState;\n\n var prev = state.obj;\n state.obj = {};\n return prev;\n};\n\nReporter.prototype.leaveObject = function leaveObject(prev) {\n var state = this._reporterState;\n\n var now = state.obj;\n state.obj = prev;\n return now;\n};\n\nReporter.prototype.error = function error(msg) {\n var err;\n var state = this._reporterState;\n\n var inherited = msg instanceof ReporterError;\n if (inherited) {\n err = msg;\n } else {\n err = new ReporterError(state.path.map(function(elem) {\n return '[' + JSON.stringify(elem) + ']';\n }).join(''), msg.message || msg, msg.stack);\n }\n\n if (!state.options.partial)\n throw err;\n\n if (!inherited)\n state.errors.push(err);\n\n return err;\n};\n\nReporter.prototype.wrapResult = function wrapResult(result) {\n var state = this._reporterState;\n if (!state.options.partial)\n return result;\n\n return {\n result: this.isError(result) ? null : result,\n errors: state.errors\n };\n};\n\nfunction ReporterError(path, msg) {\n this.path = path;\n this.rethrow(msg);\n};\ninherits(ReporterError, Error);\n\nReporterError.prototype.rethrow = function rethrow(msg) {\n this.message = msg + ' at: ' + (this.path || '(shallow)');\n if (Error.captureStackTrace)\n Error.captureStackTrace(this, ReporterError);\n\n if (!this.stack) {\n try {\n // IE only adds stack when thrown\n throw new Error(this.message);\n } catch (e) {\n this.stack = e.stack;\n }\n }\n return this;\n};\n\n\n//# sourceURL=webpack://mjml/./node_modules/asn1.js/lib/asn1/base/reporter.js?")},"./node_modules/asn1.js/lib/asn1/constants/der.js":/*!********************************************************!*\ - !*** ./node_modules/asn1.js/lib/asn1/constants/der.js ***! - \********************************************************/ -/*! no static exports found */ -function(module,exports,__webpack_require__){eval("var constants = __webpack_require__(/*! ../constants */ \"./node_modules/asn1.js/lib/asn1/constants/index.js\");\n\nexports.tagClass = {\n 0: 'universal',\n 1: 'application',\n 2: 'context',\n 3: 'private'\n};\nexports.tagClassByName = constants._reverse(exports.tagClass);\n\nexports.tag = {\n 0x00: 'end',\n 0x01: 'bool',\n 0x02: 'int',\n 0x03: 'bitstr',\n 0x04: 'octstr',\n 0x05: 'null_',\n 0x06: 'objid',\n 0x07: 'objDesc',\n 0x08: 'external',\n 0x09: 'real',\n 0x0a: 'enum',\n 0x0b: 'embed',\n 0x0c: 'utf8str',\n 0x0d: 'relativeOid',\n 0x10: 'seq',\n 0x11: 'set',\n 0x12: 'numstr',\n 0x13: 'printstr',\n 0x14: 't61str',\n 0x15: 'videostr',\n 0x16: 'ia5str',\n 0x17: 'utctime',\n 0x18: 'gentime',\n 0x19: 'graphstr',\n 0x1a: 'iso646str',\n 0x1b: 'genstr',\n 0x1c: 'unistr',\n 0x1d: 'charstr',\n 0x1e: 'bmpstr'\n};\nexports.tagByName = constants._reverse(exports.tag);\n\n\n//# sourceURL=webpack://mjml/./node_modules/asn1.js/lib/asn1/constants/der.js?")},"./node_modules/asn1.js/lib/asn1/constants/index.js":/*!**********************************************************!*\ - !*** ./node_modules/asn1.js/lib/asn1/constants/index.js ***! - \**********************************************************/ -/*! no static exports found */ -function(module,exports,__webpack_require__){eval('var constants = exports;\n\n// Helper\nconstants._reverse = function reverse(map) {\n var res = {};\n\n Object.keys(map).forEach(function(key) {\n // Convert key to integer if it is stringified\n if ((key | 0) == key)\n key = key | 0;\n\n var value = map[key];\n res[value] = key;\n });\n\n return res;\n};\n\nconstants.der = __webpack_require__(/*! ./der */ "./node_modules/asn1.js/lib/asn1/constants/der.js");\n\n\n//# sourceURL=webpack://mjml/./node_modules/asn1.js/lib/asn1/constants/index.js?')},"./node_modules/asn1.js/lib/asn1/decoders/der.js":/*!*******************************************************!*\ - !*** ./node_modules/asn1.js/lib/asn1/decoders/der.js ***! - \*******************************************************/ -/*! no static exports found */ -function(module,exports,__webpack_require__){eval("var inherits = __webpack_require__(/*! inherits */ \"./node_modules/inherits/inherits_browser.js\");\n\nvar asn1 = __webpack_require__(/*! ../../asn1 */ \"./node_modules/asn1.js/lib/asn1.js\");\nvar base = asn1.base;\nvar bignum = asn1.bignum;\n\n// Import DER constants\nvar der = asn1.constants.der;\n\nfunction DERDecoder(entity) {\n this.enc = 'der';\n this.name = entity.name;\n this.entity = entity;\n\n // Construct base tree\n this.tree = new DERNode();\n this.tree._init(entity.body);\n};\nmodule.exports = DERDecoder;\n\nDERDecoder.prototype.decode = function decode(data, options) {\n if (!(data instanceof base.DecoderBuffer))\n data = new base.DecoderBuffer(data, options);\n\n return this.tree._decode(data, options);\n};\n\n// Tree methods\n\nfunction DERNode(parent) {\n base.Node.call(this, 'der', parent);\n}\ninherits(DERNode, base.Node);\n\nDERNode.prototype._peekTag = function peekTag(buffer, tag, any) {\n if (buffer.isEmpty())\n return false;\n\n var state = buffer.save();\n var decodedTag = derDecodeTag(buffer, 'Failed to peek tag: \"' + tag + '\"');\n if (buffer.isError(decodedTag))\n return decodedTag;\n\n buffer.restore(state);\n\n return decodedTag.tag === tag || decodedTag.tagStr === tag ||\n (decodedTag.tagStr + 'of') === tag || any;\n};\n\nDERNode.prototype._decodeTag = function decodeTag(buffer, tag, any) {\n var decodedTag = derDecodeTag(buffer,\n 'Failed to decode tag of \"' + tag + '\"');\n if (buffer.isError(decodedTag))\n return decodedTag;\n\n var len = derDecodeLen(buffer,\n decodedTag.primitive,\n 'Failed to get length of \"' + tag + '\"');\n\n // Failure\n if (buffer.isError(len))\n return len;\n\n if (!any &&\n decodedTag.tag !== tag &&\n decodedTag.tagStr !== tag &&\n decodedTag.tagStr + 'of' !== tag) {\n return buffer.error('Failed to match tag: \"' + tag + '\"');\n }\n\n if (decodedTag.primitive || len !== null)\n return buffer.skip(len, 'Failed to match body of: \"' + tag + '\"');\n\n // Indefinite length... find END tag\n var state = buffer.save();\n var res = this._skipUntilEnd(\n buffer,\n 'Failed to skip indefinite length body: \"' + this.tag + '\"');\n if (buffer.isError(res))\n return res;\n\n len = buffer.offset - state.offset;\n buffer.restore(state);\n return buffer.skip(len, 'Failed to match body of: \"' + tag + '\"');\n};\n\nDERNode.prototype._skipUntilEnd = function skipUntilEnd(buffer, fail) {\n while (true) {\n var tag = derDecodeTag(buffer, fail);\n if (buffer.isError(tag))\n return tag;\n var len = derDecodeLen(buffer, tag.primitive, fail);\n if (buffer.isError(len))\n return len;\n\n var res;\n if (tag.primitive || len !== null)\n res = buffer.skip(len)\n else\n res = this._skipUntilEnd(buffer, fail);\n\n // Failure\n if (buffer.isError(res))\n return res;\n\n if (tag.tagStr === 'end')\n break;\n }\n};\n\nDERNode.prototype._decodeList = function decodeList(buffer, tag, decoder,\n options) {\n var result = [];\n while (!buffer.isEmpty()) {\n var possibleEnd = this._peekTag(buffer, 'end');\n if (buffer.isError(possibleEnd))\n return possibleEnd;\n\n var res = decoder.decode(buffer, 'der', options);\n if (buffer.isError(res) && possibleEnd)\n break;\n result.push(res);\n }\n return result;\n};\n\nDERNode.prototype._decodeStr = function decodeStr(buffer, tag) {\n if (tag === 'bitstr') {\n var unused = buffer.readUInt8();\n if (buffer.isError(unused))\n return unused;\n return { unused: unused, data: buffer.raw() };\n } else if (tag === 'bmpstr') {\n var raw = buffer.raw();\n if (raw.length % 2 === 1)\n return buffer.error('Decoding of string type: bmpstr length mismatch');\n\n var str = '';\n for (var i = 0; i < raw.length / 2; i++) {\n str += String.fromCharCode(raw.readUInt16BE(i * 2));\n }\n return str;\n } else if (tag === 'numstr') {\n var numstr = buffer.raw().toString('ascii');\n if (!this._isNumstr(numstr)) {\n return buffer.error('Decoding of string type: ' +\n 'numstr unsupported characters');\n }\n return numstr;\n } else if (tag === 'octstr') {\n return buffer.raw();\n } else if (tag === 'objDesc') {\n return buffer.raw();\n } else if (tag === 'printstr') {\n var printstr = buffer.raw().toString('ascii');\n if (!this._isPrintstr(printstr)) {\n return buffer.error('Decoding of string type: ' +\n 'printstr unsupported characters');\n }\n return printstr;\n } else if (/str$/.test(tag)) {\n return buffer.raw().toString();\n } else {\n return buffer.error('Decoding of string type: ' + tag + ' unsupported');\n }\n};\n\nDERNode.prototype._decodeObjid = function decodeObjid(buffer, values, relative) {\n var result;\n var identifiers = [];\n var ident = 0;\n while (!buffer.isEmpty()) {\n var subident = buffer.readUInt8();\n ident <<= 7;\n ident |= subident & 0x7f;\n if ((subident & 0x80) === 0) {\n identifiers.push(ident);\n ident = 0;\n }\n }\n if (subident & 0x80)\n identifiers.push(ident);\n\n var first = (identifiers[0] / 40) | 0;\n var second = identifiers[0] % 40;\n\n if (relative)\n result = identifiers;\n else\n result = [first, second].concat(identifiers.slice(1));\n\n if (values) {\n var tmp = values[result.join(' ')];\n if (tmp === undefined)\n tmp = values[result.join('.')];\n if (tmp !== undefined)\n result = tmp;\n }\n\n return result;\n};\n\nDERNode.prototype._decodeTime = function decodeTime(buffer, tag) {\n var str = buffer.raw().toString();\n if (tag === 'gentime') {\n var year = str.slice(0, 4) | 0;\n var mon = str.slice(4, 6) | 0;\n var day = str.slice(6, 8) | 0;\n var hour = str.slice(8, 10) | 0;\n var min = str.slice(10, 12) | 0;\n var sec = str.slice(12, 14) | 0;\n } else if (tag === 'utctime') {\n var year = str.slice(0, 2) | 0;\n var mon = str.slice(2, 4) | 0;\n var day = str.slice(4, 6) | 0;\n var hour = str.slice(6, 8) | 0;\n var min = str.slice(8, 10) | 0;\n var sec = str.slice(10, 12) | 0;\n if (year < 70)\n year = 2000 + year;\n else\n year = 1900 + year;\n } else {\n return buffer.error('Decoding ' + tag + ' time is not supported yet');\n }\n\n return Date.UTC(year, mon - 1, day, hour, min, sec, 0);\n};\n\nDERNode.prototype._decodeNull = function decodeNull(buffer) {\n return null;\n};\n\nDERNode.prototype._decodeBool = function decodeBool(buffer) {\n var res = buffer.readUInt8();\n if (buffer.isError(res))\n return res;\n else\n return res !== 0;\n};\n\nDERNode.prototype._decodeInt = function decodeInt(buffer, values) {\n // Bigint, return as it is (assume big endian)\n var raw = buffer.raw();\n var res = new bignum(raw);\n\n if (values)\n res = values[res.toString(10)] || res;\n\n return res;\n};\n\nDERNode.prototype._use = function use(entity, obj) {\n if (typeof entity === 'function')\n entity = entity(obj);\n return entity._getDecoder('der').tree;\n};\n\n// Utility methods\n\nfunction derDecodeTag(buf, fail) {\n var tag = buf.readUInt8(fail);\n if (buf.isError(tag))\n return tag;\n\n var cls = der.tagClass[tag >> 6];\n var primitive = (tag & 0x20) === 0;\n\n // Multi-octet tag - load\n if ((tag & 0x1f) === 0x1f) {\n var oct = tag;\n tag = 0;\n while ((oct & 0x80) === 0x80) {\n oct = buf.readUInt8(fail);\n if (buf.isError(oct))\n return oct;\n\n tag <<= 7;\n tag |= oct & 0x7f;\n }\n } else {\n tag &= 0x1f;\n }\n var tagStr = der.tag[tag];\n\n return {\n cls: cls,\n primitive: primitive,\n tag: tag,\n tagStr: tagStr\n };\n}\n\nfunction derDecodeLen(buf, primitive, fail) {\n var len = buf.readUInt8(fail);\n if (buf.isError(len))\n return len;\n\n // Indefinite form\n if (!primitive && len === 0x80)\n return null;\n\n // Definite form\n if ((len & 0x80) === 0) {\n // Short form\n return len;\n }\n\n // Long form\n var num = len & 0x7f;\n if (num > 4)\n return buf.error('length octect is too long');\n\n len = 0;\n for (var i = 0; i < num; i++) {\n len <<= 8;\n var j = buf.readUInt8(fail);\n if (buf.isError(j))\n return j;\n len |= j;\n }\n\n return len;\n}\n\n\n//# sourceURL=webpack://mjml/./node_modules/asn1.js/lib/asn1/decoders/der.js?")},"./node_modules/asn1.js/lib/asn1/decoders/index.js":/*!*********************************************************!*\ - !*** ./node_modules/asn1.js/lib/asn1/decoders/index.js ***! - \*********************************************************/ -/*! no static exports found */ -function(module,exports,__webpack_require__){eval('var decoders = exports;\n\ndecoders.der = __webpack_require__(/*! ./der */ "./node_modules/asn1.js/lib/asn1/decoders/der.js");\ndecoders.pem = __webpack_require__(/*! ./pem */ "./node_modules/asn1.js/lib/asn1/decoders/pem.js");\n\n\n//# sourceURL=webpack://mjml/./node_modules/asn1.js/lib/asn1/decoders/index.js?')},"./node_modules/asn1.js/lib/asn1/decoders/pem.js":/*!*******************************************************!*\ - !*** ./node_modules/asn1.js/lib/asn1/decoders/pem.js ***! - \*******************************************************/ -/*! no static exports found */ -function(module,exports,__webpack_require__){eval("var inherits = __webpack_require__(/*! inherits */ \"./node_modules/inherits/inherits_browser.js\");\nvar Buffer = __webpack_require__(/*! buffer */ \"./node_modules/buffer/index.js\").Buffer;\n\nvar DERDecoder = __webpack_require__(/*! ./der */ \"./node_modules/asn1.js/lib/asn1/decoders/der.js\");\n\nfunction PEMDecoder(entity) {\n DERDecoder.call(this, entity);\n this.enc = 'pem';\n};\ninherits(PEMDecoder, DERDecoder);\nmodule.exports = PEMDecoder;\n\nPEMDecoder.prototype.decode = function decode(data, options) {\n var lines = data.toString().split(/[\\r\\n]+/g);\n\n var label = options.label.toUpperCase();\n\n var re = /^-----(BEGIN|END) ([^-]+)-----$/;\n var start = -1;\n var end = -1;\n for (var i = 0; i < lines.length; i++) {\n var match = lines[i].match(re);\n if (match === null)\n continue;\n\n if (match[2] !== label)\n continue;\n\n if (start === -1) {\n if (match[1] !== 'BEGIN')\n break;\n start = i;\n } else {\n if (match[1] !== 'END')\n break;\n end = i;\n break;\n }\n }\n if (start === -1 || end === -1)\n throw new Error('PEM section not found for: ' + label);\n\n var base64 = lines.slice(start + 1, end).join('');\n // Remove excessive symbols\n base64.replace(/[^a-z0-9\\+\\/=]+/gi, '');\n\n var input = new Buffer(base64, 'base64');\n return DERDecoder.prototype.decode.call(this, input, options);\n};\n\n\n//# sourceURL=webpack://mjml/./node_modules/asn1.js/lib/asn1/decoders/pem.js?")},"./node_modules/asn1.js/lib/asn1/encoders/der.js":/*!*******************************************************!*\ - !*** ./node_modules/asn1.js/lib/asn1/encoders/der.js ***! - \*******************************************************/ -/*! no static exports found */ -function(module,exports,__webpack_require__){eval("var inherits = __webpack_require__(/*! inherits */ \"./node_modules/inherits/inherits_browser.js\");\nvar Buffer = __webpack_require__(/*! buffer */ \"./node_modules/buffer/index.js\").Buffer;\n\nvar asn1 = __webpack_require__(/*! ../../asn1 */ \"./node_modules/asn1.js/lib/asn1.js\");\nvar base = asn1.base;\n\n// Import DER constants\nvar der = asn1.constants.der;\n\nfunction DEREncoder(entity) {\n this.enc = 'der';\n this.name = entity.name;\n this.entity = entity;\n\n // Construct base tree\n this.tree = new DERNode();\n this.tree._init(entity.body);\n};\nmodule.exports = DEREncoder;\n\nDEREncoder.prototype.encode = function encode(data, reporter) {\n return this.tree._encode(data, reporter).join();\n};\n\n// Tree methods\n\nfunction DERNode(parent) {\n base.Node.call(this, 'der', parent);\n}\ninherits(DERNode, base.Node);\n\nDERNode.prototype._encodeComposite = function encodeComposite(tag,\n primitive,\n cls,\n content) {\n var encodedTag = encodeTag(tag, primitive, cls, this.reporter);\n\n // Short form\n if (content.length < 0x80) {\n var header = new Buffer(2);\n header[0] = encodedTag;\n header[1] = content.length;\n return this._createEncoderBuffer([ header, content ]);\n }\n\n // Long form\n // Count octets required to store length\n var lenOctets = 1;\n for (var i = content.length; i >= 0x100; i >>= 8)\n lenOctets++;\n\n var header = new Buffer(1 + 1 + lenOctets);\n header[0] = encodedTag;\n header[1] = 0x80 | lenOctets;\n\n for (var i = 1 + lenOctets, j = content.length; j > 0; i--, j >>= 8)\n header[i] = j & 0xff;\n\n return this._createEncoderBuffer([ header, content ]);\n};\n\nDERNode.prototype._encodeStr = function encodeStr(str, tag) {\n if (tag === 'bitstr') {\n return this._createEncoderBuffer([ str.unused | 0, str.data ]);\n } else if (tag === 'bmpstr') {\n var buf = new Buffer(str.length * 2);\n for (var i = 0; i < str.length; i++) {\n buf.writeUInt16BE(str.charCodeAt(i), i * 2);\n }\n return this._createEncoderBuffer(buf);\n } else if (tag === 'numstr') {\n if (!this._isNumstr(str)) {\n return this.reporter.error('Encoding of string type: numstr supports ' +\n 'only digits and space');\n }\n return this._createEncoderBuffer(str);\n } else if (tag === 'printstr') {\n if (!this._isPrintstr(str)) {\n return this.reporter.error('Encoding of string type: printstr supports ' +\n 'only latin upper and lower case letters, ' +\n 'digits, space, apostrophe, left and rigth ' +\n 'parenthesis, plus sign, comma, hyphen, ' +\n 'dot, slash, colon, equal sign, ' +\n 'question mark');\n }\n return this._createEncoderBuffer(str);\n } else if (/str$/.test(tag)) {\n return this._createEncoderBuffer(str);\n } else if (tag === 'objDesc') {\n return this._createEncoderBuffer(str);\n } else {\n return this.reporter.error('Encoding of string type: ' + tag +\n ' unsupported');\n }\n};\n\nDERNode.prototype._encodeObjid = function encodeObjid(id, values, relative) {\n if (typeof id === 'string') {\n if (!values)\n return this.reporter.error('string objid given, but no values map found');\n if (!values.hasOwnProperty(id))\n return this.reporter.error('objid not found in values map');\n id = values[id].split(/[\\s\\.]+/g);\n for (var i = 0; i < id.length; i++)\n id[i] |= 0;\n } else if (Array.isArray(id)) {\n id = id.slice();\n for (var i = 0; i < id.length; i++)\n id[i] |= 0;\n }\n\n if (!Array.isArray(id)) {\n return this.reporter.error('objid() should be either array or string, ' +\n 'got: ' + JSON.stringify(id));\n }\n\n if (!relative) {\n if (id[1] >= 40)\n return this.reporter.error('Second objid identifier OOB');\n id.splice(0, 2, id[0] * 40 + id[1]);\n }\n\n // Count number of octets\n var size = 0;\n for (var i = 0; i < id.length; i++) {\n var ident = id[i];\n for (size++; ident >= 0x80; ident >>= 7)\n size++;\n }\n\n var objid = new Buffer(size);\n var offset = objid.length - 1;\n for (var i = id.length - 1; i >= 0; i--) {\n var ident = id[i];\n objid[offset--] = ident & 0x7f;\n while ((ident >>= 7) > 0)\n objid[offset--] = 0x80 | (ident & 0x7f);\n }\n\n return this._createEncoderBuffer(objid);\n};\n\nfunction two(num) {\n if (num < 10)\n return '0' + num;\n else\n return num;\n}\n\nDERNode.prototype._encodeTime = function encodeTime(time, tag) {\n var str;\n var date = new Date(time);\n\n if (tag === 'gentime') {\n str = [\n two(date.getFullYear()),\n two(date.getUTCMonth() + 1),\n two(date.getUTCDate()),\n two(date.getUTCHours()),\n two(date.getUTCMinutes()),\n two(date.getUTCSeconds()),\n 'Z'\n ].join('');\n } else if (tag === 'utctime') {\n str = [\n two(date.getFullYear() % 100),\n two(date.getUTCMonth() + 1),\n two(date.getUTCDate()),\n two(date.getUTCHours()),\n two(date.getUTCMinutes()),\n two(date.getUTCSeconds()),\n 'Z'\n ].join('');\n } else {\n this.reporter.error('Encoding ' + tag + ' time is not supported yet');\n }\n\n return this._encodeStr(str, 'octstr');\n};\n\nDERNode.prototype._encodeNull = function encodeNull() {\n return this._createEncoderBuffer('');\n};\n\nDERNode.prototype._encodeInt = function encodeInt(num, values) {\n if (typeof num === 'string') {\n if (!values)\n return this.reporter.error('String int or enum given, but no values map');\n if (!values.hasOwnProperty(num)) {\n return this.reporter.error('Values map doesn\\'t contain: ' +\n JSON.stringify(num));\n }\n num = values[num];\n }\n\n // Bignum, assume big endian\n if (typeof num !== 'number' && !Buffer.isBuffer(num)) {\n var numArray = num.toArray();\n if (!num.sign && numArray[0] & 0x80) {\n numArray.unshift(0);\n }\n num = new Buffer(numArray);\n }\n\n if (Buffer.isBuffer(num)) {\n var size = num.length;\n if (num.length === 0)\n size++;\n\n var out = new Buffer(size);\n num.copy(out);\n if (num.length === 0)\n out[0] = 0\n return this._createEncoderBuffer(out);\n }\n\n if (num < 0x80)\n return this._createEncoderBuffer(num);\n\n if (num < 0x100)\n return this._createEncoderBuffer([0, num]);\n\n var size = 1;\n for (var i = num; i >= 0x100; i >>= 8)\n size++;\n\n var out = new Array(size);\n for (var i = out.length - 1; i >= 0; i--) {\n out[i] = num & 0xff;\n num >>= 8;\n }\n if(out[0] & 0x80) {\n out.unshift(0);\n }\n\n return this._createEncoderBuffer(new Buffer(out));\n};\n\nDERNode.prototype._encodeBool = function encodeBool(value) {\n return this._createEncoderBuffer(value ? 0xff : 0);\n};\n\nDERNode.prototype._use = function use(entity, obj) {\n if (typeof entity === 'function')\n entity = entity(obj);\n return entity._getEncoder('der').tree;\n};\n\nDERNode.prototype._skipDefault = function skipDefault(dataBuffer, reporter, parent) {\n var state = this._baseState;\n var i;\n if (state['default'] === null)\n return false;\n\n var data = dataBuffer.join();\n if (state.defaultBuffer === undefined)\n state.defaultBuffer = this._encodeValue(state['default'], reporter, parent).join();\n\n if (data.length !== state.defaultBuffer.length)\n return false;\n\n for (i=0; i < data.length; i++)\n if (data[i] !== state.defaultBuffer[i])\n return false;\n\n return true;\n};\n\n// Utility methods\n\nfunction encodeTag(tag, primitive, cls, reporter) {\n var res;\n\n if (tag === 'seqof')\n tag = 'seq';\n else if (tag === 'setof')\n tag = 'set';\n\n if (der.tagByName.hasOwnProperty(tag))\n res = der.tagByName[tag];\n else if (typeof tag === 'number' && (tag | 0) === tag)\n res = tag;\n else\n return reporter.error('Unknown tag: ' + tag);\n\n if (res >= 0x1f)\n return reporter.error('Multi-octet tag encoding unsupported');\n\n if (!primitive)\n res |= 0x20;\n\n res |= (der.tagClassByName[cls || 'universal'] << 6);\n\n return res;\n}\n\n\n//# sourceURL=webpack://mjml/./node_modules/asn1.js/lib/asn1/encoders/der.js?")},"./node_modules/asn1.js/lib/asn1/encoders/index.js":/*!*********************************************************!*\ - !*** ./node_modules/asn1.js/lib/asn1/encoders/index.js ***! - \*********************************************************/ -/*! no static exports found */ -function(module,exports,__webpack_require__){eval('var encoders = exports;\n\nencoders.der = __webpack_require__(/*! ./der */ "./node_modules/asn1.js/lib/asn1/encoders/der.js");\nencoders.pem = __webpack_require__(/*! ./pem */ "./node_modules/asn1.js/lib/asn1/encoders/pem.js");\n\n\n//# sourceURL=webpack://mjml/./node_modules/asn1.js/lib/asn1/encoders/index.js?')},"./node_modules/asn1.js/lib/asn1/encoders/pem.js":/*!*******************************************************!*\ - !*** ./node_modules/asn1.js/lib/asn1/encoders/pem.js ***! - \*******************************************************/ -/*! no static exports found */ -function(module,exports,__webpack_require__){eval("var inherits = __webpack_require__(/*! inherits */ \"./node_modules/inherits/inherits_browser.js\");\n\nvar DEREncoder = __webpack_require__(/*! ./der */ \"./node_modules/asn1.js/lib/asn1/encoders/der.js\");\n\nfunction PEMEncoder(entity) {\n DEREncoder.call(this, entity);\n this.enc = 'pem';\n};\ninherits(PEMEncoder, DEREncoder);\nmodule.exports = PEMEncoder;\n\nPEMEncoder.prototype.encode = function encode(data, options) {\n var buf = DEREncoder.prototype.encode.call(this, data);\n\n var p = buf.toString('base64');\n var out = [ '-----BEGIN ' + options.label + '-----' ];\n for (var i = 0; i < p.length; i += 64)\n out.push(p.slice(i, i + 64));\n out.push('-----END ' + options.label + '-----');\n return out.join('\\n');\n};\n\n\n//# sourceURL=webpack://mjml/./node_modules/asn1.js/lib/asn1/encoders/pem.js?")},"./node_modules/base64-js/index.js":/*!*****************************************!*\ - !*** ./node_modules/base64-js/index.js ***! - \*****************************************/ -/*! no static exports found */ -function(module,exports,__webpack_require__){"use strict";eval("\n\nexports.byteLength = byteLength\nexports.toByteArray = toByteArray\nexports.fromByteArray = fromByteArray\n\nvar lookup = []\nvar revLookup = []\nvar Arr = typeof Uint8Array !== 'undefined' ? Uint8Array : Array\n\nvar code = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/'\nfor (var i = 0, len = code.length; i < len; ++i) {\n lookup[i] = code[i]\n revLookup[code.charCodeAt(i)] = i\n}\n\n// Support decoding URL-safe base64 strings, as Node.js does.\n// See: https://en.wikipedia.org/wiki/Base64#URL_applications\nrevLookup['-'.charCodeAt(0)] = 62\nrevLookup['_'.charCodeAt(0)] = 63\n\nfunction getLens (b64) {\n var len = b64.length\n\n if (len % 4 > 0) {\n throw new Error('Invalid string. Length must be a multiple of 4')\n }\n\n // Trim off extra bytes after placeholder bytes are found\n // See: https://github.com/beatgammit/base64-js/issues/42\n var validLen = b64.indexOf('=')\n if (validLen === -1) validLen = len\n\n var placeHoldersLen = validLen === len\n ? 0\n : 4 - (validLen % 4)\n\n return [validLen, placeHoldersLen]\n}\n\n// base64 is 4/3 + up to two characters of the original data\nfunction byteLength (b64) {\n var lens = getLens(b64)\n var validLen = lens[0]\n var placeHoldersLen = lens[1]\n return ((validLen + placeHoldersLen) * 3 / 4) - placeHoldersLen\n}\n\nfunction _byteLength (b64, validLen, placeHoldersLen) {\n return ((validLen + placeHoldersLen) * 3 / 4) - placeHoldersLen\n}\n\nfunction toByteArray (b64) {\n var tmp\n var lens = getLens(b64)\n var validLen = lens[0]\n var placeHoldersLen = lens[1]\n\n var arr = new Arr(_byteLength(b64, validLen, placeHoldersLen))\n\n var curByte = 0\n\n // if there are placeholders, only get up to the last complete 4 chars\n var len = placeHoldersLen > 0\n ? validLen - 4\n : validLen\n\n for (var i = 0; i < len; i += 4) {\n tmp =\n (revLookup[b64.charCodeAt(i)] << 18) |\n (revLookup[b64.charCodeAt(i + 1)] << 12) |\n (revLookup[b64.charCodeAt(i + 2)] << 6) |\n revLookup[b64.charCodeAt(i + 3)]\n arr[curByte++] = (tmp >> 16) & 0xFF\n arr[curByte++] = (tmp >> 8) & 0xFF\n arr[curByte++] = tmp & 0xFF\n }\n\n if (placeHoldersLen === 2) {\n tmp =\n (revLookup[b64.charCodeAt(i)] << 2) |\n (revLookup[b64.charCodeAt(i + 1)] >> 4)\n arr[curByte++] = tmp & 0xFF\n }\n\n if (placeHoldersLen === 1) {\n tmp =\n (revLookup[b64.charCodeAt(i)] << 10) |\n (revLookup[b64.charCodeAt(i + 1)] << 4) |\n (revLookup[b64.charCodeAt(i + 2)] >> 2)\n arr[curByte++] = (tmp >> 8) & 0xFF\n arr[curByte++] = tmp & 0xFF\n }\n\n return arr\n}\n\nfunction tripletToBase64 (num) {\n return lookup[num >> 18 & 0x3F] +\n lookup[num >> 12 & 0x3F] +\n lookup[num >> 6 & 0x3F] +\n lookup[num & 0x3F]\n}\n\nfunction encodeChunk (uint8, start, end) {\n var tmp\n var output = []\n for (var i = start; i < end; i += 3) {\n tmp =\n ((uint8[i] << 16) & 0xFF0000) +\n ((uint8[i + 1] << 8) & 0xFF00) +\n (uint8[i + 2] & 0xFF)\n output.push(tripletToBase64(tmp))\n }\n return output.join('')\n}\n\nfunction fromByteArray (uint8) {\n var tmp\n var len = uint8.length\n var extraBytes = len % 3 // if we have 1 byte left, pad 2 bytes\n var parts = []\n var maxChunkLength = 16383 // must be multiple of 3\n\n // go through the array every three bytes, we'll deal with trailing stuff later\n for (var i = 0, len2 = len - extraBytes; i < len2; i += maxChunkLength) {\n parts.push(encodeChunk(\n uint8, i, (i + maxChunkLength) > len2 ? len2 : (i + maxChunkLength)\n ))\n }\n\n // pad the end with zeros, but make sure to not forget the extra bytes\n if (extraBytes === 1) {\n tmp = uint8[len - 1]\n parts.push(\n lookup[tmp >> 2] +\n lookup[(tmp << 4) & 0x3F] +\n '=='\n )\n } else if (extraBytes === 2) {\n tmp = (uint8[len - 2] << 8) + uint8[len - 1]\n parts.push(\n lookup[tmp >> 10] +\n lookup[(tmp >> 4) & 0x3F] +\n lookup[(tmp << 2) & 0x3F] +\n '='\n )\n }\n\n return parts.join('')\n}\n\n\n//# sourceURL=webpack://mjml/./node_modules/base64-js/index.js?")},"./node_modules/bn.js/lib/bn.js":/*!**************************************!*\ - !*** ./node_modules/bn.js/lib/bn.js ***! - \**************************************/ -/*! no static exports found */ -function(module,exports,__webpack_require__){eval("/* WEBPACK VAR INJECTION */(function(module) {(function (module, exports) {\n 'use strict';\n\n // Utils\n function assert (val, msg) {\n if (!val) throw new Error(msg || 'Assertion failed');\n }\n\n // Could use `inherits` module, but don't want to move from single file\n // architecture yet.\n function inherits (ctor, superCtor) {\n ctor.super_ = superCtor;\n var TempCtor = function () {};\n TempCtor.prototype = superCtor.prototype;\n ctor.prototype = new TempCtor();\n ctor.prototype.constructor = ctor;\n }\n\n // BN\n\n function BN (number, base, endian) {\n if (BN.isBN(number)) {\n return number;\n }\n\n this.negative = 0;\n this.words = null;\n this.length = 0;\n\n // Reduction context\n this.red = null;\n\n if (number !== null) {\n if (base === 'le' || base === 'be') {\n endian = base;\n base = 10;\n }\n\n this._init(number || 0, base || 10, endian || 'be');\n }\n }\n if (typeof module === 'object') {\n module.exports = BN;\n } else {\n exports.BN = BN;\n }\n\n BN.BN = BN;\n BN.wordSize = 26;\n\n var Buffer;\n try {\n Buffer = __webpack_require__(/*! buffer */ 6).Buffer;\n } catch (e) {\n }\n\n BN.isBN = function isBN (num) {\n if (num instanceof BN) {\n return true;\n }\n\n return num !== null && typeof num === 'object' &&\n num.constructor.wordSize === BN.wordSize && Array.isArray(num.words);\n };\n\n BN.max = function max (left, right) {\n if (left.cmp(right) > 0) return left;\n return right;\n };\n\n BN.min = function min (left, right) {\n if (left.cmp(right) < 0) return left;\n return right;\n };\n\n BN.prototype._init = function init (number, base, endian) {\n if (typeof number === 'number') {\n return this._initNumber(number, base, endian);\n }\n\n if (typeof number === 'object') {\n return this._initArray(number, base, endian);\n }\n\n if (base === 'hex') {\n base = 16;\n }\n assert(base === (base | 0) && base >= 2 && base <= 36);\n\n number = number.toString().replace(/\\s+/g, '');\n var start = 0;\n if (number[0] === '-') {\n start++;\n }\n\n if (base === 16) {\n this._parseHex(number, start);\n } else {\n this._parseBase(number, base, start);\n }\n\n if (number[0] === '-') {\n this.negative = 1;\n }\n\n this.strip();\n\n if (endian !== 'le') return;\n\n this._initArray(this.toArray(), base, endian);\n };\n\n BN.prototype._initNumber = function _initNumber (number, base, endian) {\n if (number < 0) {\n this.negative = 1;\n number = -number;\n }\n if (number < 0x4000000) {\n this.words = [ number & 0x3ffffff ];\n this.length = 1;\n } else if (number < 0x10000000000000) {\n this.words = [\n number & 0x3ffffff,\n (number / 0x4000000) & 0x3ffffff\n ];\n this.length = 2;\n } else {\n assert(number < 0x20000000000000); // 2 ^ 53 (unsafe)\n this.words = [\n number & 0x3ffffff,\n (number / 0x4000000) & 0x3ffffff,\n 1\n ];\n this.length = 3;\n }\n\n if (endian !== 'le') return;\n\n // Reverse the bytes\n this._initArray(this.toArray(), base, endian);\n };\n\n BN.prototype._initArray = function _initArray (number, base, endian) {\n // Perhaps a Uint8Array\n assert(typeof number.length === 'number');\n if (number.length <= 0) {\n this.words = [ 0 ];\n this.length = 1;\n return this;\n }\n\n this.length = Math.ceil(number.length / 3);\n this.words = new Array(this.length);\n for (var i = 0; i < this.length; i++) {\n this.words[i] = 0;\n }\n\n var j, w;\n var off = 0;\n if (endian === 'be') {\n for (i = number.length - 1, j = 0; i >= 0; i -= 3) {\n w = number[i] | (number[i - 1] << 8) | (number[i - 2] << 16);\n this.words[j] |= (w << off) & 0x3ffffff;\n this.words[j + 1] = (w >>> (26 - off)) & 0x3ffffff;\n off += 24;\n if (off >= 26) {\n off -= 26;\n j++;\n }\n }\n } else if (endian === 'le') {\n for (i = 0, j = 0; i < number.length; i += 3) {\n w = number[i] | (number[i + 1] << 8) | (number[i + 2] << 16);\n this.words[j] |= (w << off) & 0x3ffffff;\n this.words[j + 1] = (w >>> (26 - off)) & 0x3ffffff;\n off += 24;\n if (off >= 26) {\n off -= 26;\n j++;\n }\n }\n }\n return this.strip();\n };\n\n function parseHex (str, start, end) {\n var r = 0;\n var len = Math.min(str.length, end);\n for (var i = start; i < len; i++) {\n var c = str.charCodeAt(i) - 48;\n\n r <<= 4;\n\n // 'a' - 'f'\n if (c >= 49 && c <= 54) {\n r |= c - 49 + 0xa;\n\n // 'A' - 'F'\n } else if (c >= 17 && c <= 22) {\n r |= c - 17 + 0xa;\n\n // '0' - '9'\n } else {\n r |= c & 0xf;\n }\n }\n return r;\n }\n\n BN.prototype._parseHex = function _parseHex (number, start) {\n // Create possibly bigger array to ensure that it fits the number\n this.length = Math.ceil((number.length - start) / 6);\n this.words = new Array(this.length);\n for (var i = 0; i < this.length; i++) {\n this.words[i] = 0;\n }\n\n var j, w;\n // Scan 24-bit chunks and add them to the number\n var off = 0;\n for (i = number.length - 6, j = 0; i >= start; i -= 6) {\n w = parseHex(number, i, i + 6);\n this.words[j] |= (w << off) & 0x3ffffff;\n // NOTE: `0x3fffff` is intentional here, 26bits max shift + 24bit hex limb\n this.words[j + 1] |= w >>> (26 - off) & 0x3fffff;\n off += 24;\n if (off >= 26) {\n off -= 26;\n j++;\n }\n }\n if (i + 6 !== start) {\n w = parseHex(number, start, i + 6);\n this.words[j] |= (w << off) & 0x3ffffff;\n this.words[j + 1] |= w >>> (26 - off) & 0x3fffff;\n }\n this.strip();\n };\n\n function parseBase (str, start, end, mul) {\n var r = 0;\n var len = Math.min(str.length, end);\n for (var i = start; i < len; i++) {\n var c = str.charCodeAt(i) - 48;\n\n r *= mul;\n\n // 'a'\n if (c >= 49) {\n r += c - 49 + 0xa;\n\n // 'A'\n } else if (c >= 17) {\n r += c - 17 + 0xa;\n\n // '0' - '9'\n } else {\n r += c;\n }\n }\n return r;\n }\n\n BN.prototype._parseBase = function _parseBase (number, base, start) {\n // Initialize as zero\n this.words = [ 0 ];\n this.length = 1;\n\n // Find length of limb in base\n for (var limbLen = 0, limbPow = 1; limbPow <= 0x3ffffff; limbPow *= base) {\n limbLen++;\n }\n limbLen--;\n limbPow = (limbPow / base) | 0;\n\n var total = number.length - start;\n var mod = total % limbLen;\n var end = Math.min(total, total - mod) + start;\n\n var word = 0;\n for (var i = start; i < end; i += limbLen) {\n word = parseBase(number, i, i + limbLen, base);\n\n this.imuln(limbPow);\n if (this.words[0] + word < 0x4000000) {\n this.words[0] += word;\n } else {\n this._iaddn(word);\n }\n }\n\n if (mod !== 0) {\n var pow = 1;\n word = parseBase(number, i, number.length, base);\n\n for (i = 0; i < mod; i++) {\n pow *= base;\n }\n\n this.imuln(pow);\n if (this.words[0] + word < 0x4000000) {\n this.words[0] += word;\n } else {\n this._iaddn(word);\n }\n }\n };\n\n BN.prototype.copy = function copy (dest) {\n dest.words = new Array(this.length);\n for (var i = 0; i < this.length; i++) {\n dest.words[i] = this.words[i];\n }\n dest.length = this.length;\n dest.negative = this.negative;\n dest.red = this.red;\n };\n\n BN.prototype.clone = function clone () {\n var r = new BN(null);\n this.copy(r);\n return r;\n };\n\n BN.prototype._expand = function _expand (size) {\n while (this.length < size) {\n this.words[this.length++] = 0;\n }\n return this;\n };\n\n // Remove leading `0` from `this`\n BN.prototype.strip = function strip () {\n while (this.length > 1 && this.words[this.length - 1] === 0) {\n this.length--;\n }\n return this._normSign();\n };\n\n BN.prototype._normSign = function _normSign () {\n // -0 = 0\n if (this.length === 1 && this.words[0] === 0) {\n this.negative = 0;\n }\n return this;\n };\n\n BN.prototype.inspect = function inspect () {\n return (this.red ? '';\n };\n\n /*\n\n var zeros = [];\n var groupSizes = [];\n var groupBases = [];\n\n var s = '';\n var i = -1;\n while (++i < BN.wordSize) {\n zeros[i] = s;\n s += '0';\n }\n groupSizes[0] = 0;\n groupSizes[1] = 0;\n groupBases[0] = 0;\n groupBases[1] = 0;\n var base = 2 - 1;\n while (++base < 36 + 1) {\n var groupSize = 0;\n var groupBase = 1;\n while (groupBase < (1 << BN.wordSize) / base) {\n groupBase *= base;\n groupSize += 1;\n }\n groupSizes[base] = groupSize;\n groupBases[base] = groupBase;\n }\n\n */\n\n var zeros = [\n '',\n '0',\n '00',\n '000',\n '0000',\n '00000',\n '000000',\n '0000000',\n '00000000',\n '000000000',\n '0000000000',\n '00000000000',\n '000000000000',\n '0000000000000',\n '00000000000000',\n '000000000000000',\n '0000000000000000',\n '00000000000000000',\n '000000000000000000',\n '0000000000000000000',\n '00000000000000000000',\n '000000000000000000000',\n '0000000000000000000000',\n '00000000000000000000000',\n '000000000000000000000000',\n '0000000000000000000000000'\n ];\n\n var groupSizes = [\n 0, 0,\n 25, 16, 12, 11, 10, 9, 8,\n 8, 7, 7, 7, 7, 6, 6,\n 6, 6, 6, 6, 6, 5, 5,\n 5, 5, 5, 5, 5, 5, 5,\n 5, 5, 5, 5, 5, 5, 5\n ];\n\n var groupBases = [\n 0, 0,\n 33554432, 43046721, 16777216, 48828125, 60466176, 40353607, 16777216,\n 43046721, 10000000, 19487171, 35831808, 62748517, 7529536, 11390625,\n 16777216, 24137569, 34012224, 47045881, 64000000, 4084101, 5153632,\n 6436343, 7962624, 9765625, 11881376, 14348907, 17210368, 20511149,\n 24300000, 28629151, 33554432, 39135393, 45435424, 52521875, 60466176\n ];\n\n BN.prototype.toString = function toString (base, padding) {\n base = base || 10;\n padding = padding | 0 || 1;\n\n var out;\n if (base === 16 || base === 'hex') {\n out = '';\n var off = 0;\n var carry = 0;\n for (var i = 0; i < this.length; i++) {\n var w = this.words[i];\n var word = (((w << off) | carry) & 0xffffff).toString(16);\n carry = (w >>> (24 - off)) & 0xffffff;\n if (carry !== 0 || i !== this.length - 1) {\n out = zeros[6 - word.length] + word + out;\n } else {\n out = word + out;\n }\n off += 2;\n if (off >= 26) {\n off -= 26;\n i--;\n }\n }\n if (carry !== 0) {\n out = carry.toString(16) + out;\n }\n while (out.length % padding !== 0) {\n out = '0' + out;\n }\n if (this.negative !== 0) {\n out = '-' + out;\n }\n return out;\n }\n\n if (base === (base | 0) && base >= 2 && base <= 36) {\n // var groupSize = Math.floor(BN.wordSize * Math.LN2 / Math.log(base));\n var groupSize = groupSizes[base];\n // var groupBase = Math.pow(base, groupSize);\n var groupBase = groupBases[base];\n out = '';\n var c = this.clone();\n c.negative = 0;\n while (!c.isZero()) {\n var r = c.modn(groupBase).toString(base);\n c = c.idivn(groupBase);\n\n if (!c.isZero()) {\n out = zeros[groupSize - r.length] + r + out;\n } else {\n out = r + out;\n }\n }\n if (this.isZero()) {\n out = '0' + out;\n }\n while (out.length % padding !== 0) {\n out = '0' + out;\n }\n if (this.negative !== 0) {\n out = '-' + out;\n }\n return out;\n }\n\n assert(false, 'Base should be between 2 and 36');\n };\n\n BN.prototype.toNumber = function toNumber () {\n var ret = this.words[0];\n if (this.length === 2) {\n ret += this.words[1] * 0x4000000;\n } else if (this.length === 3 && this.words[2] === 0x01) {\n // NOTE: at this stage it is known that the top bit is set\n ret += 0x10000000000000 + (this.words[1] * 0x4000000);\n } else if (this.length > 2) {\n assert(false, 'Number can only safely store up to 53 bits');\n }\n return (this.negative !== 0) ? -ret : ret;\n };\n\n BN.prototype.toJSON = function toJSON () {\n return this.toString(16);\n };\n\n BN.prototype.toBuffer = function toBuffer (endian, length) {\n assert(typeof Buffer !== 'undefined');\n return this.toArrayLike(Buffer, endian, length);\n };\n\n BN.prototype.toArray = function toArray (endian, length) {\n return this.toArrayLike(Array, endian, length);\n };\n\n BN.prototype.toArrayLike = function toArrayLike (ArrayType, endian, length) {\n var byteLength = this.byteLength();\n var reqLength = length || Math.max(1, byteLength);\n assert(byteLength <= reqLength, 'byte array longer than desired length');\n assert(reqLength > 0, 'Requested array length <= 0');\n\n this.strip();\n var littleEndian = endian === 'le';\n var res = new ArrayType(reqLength);\n\n var b, i;\n var q = this.clone();\n if (!littleEndian) {\n // Assume big-endian\n for (i = 0; i < reqLength - byteLength; i++) {\n res[i] = 0;\n }\n\n for (i = 0; !q.isZero(); i++) {\n b = q.andln(0xff);\n q.iushrn(8);\n\n res[reqLength - i - 1] = b;\n }\n } else {\n for (i = 0; !q.isZero(); i++) {\n b = q.andln(0xff);\n q.iushrn(8);\n\n res[i] = b;\n }\n\n for (; i < reqLength; i++) {\n res[i] = 0;\n }\n }\n\n return res;\n };\n\n if (Math.clz32) {\n BN.prototype._countBits = function _countBits (w) {\n return 32 - Math.clz32(w);\n };\n } else {\n BN.prototype._countBits = function _countBits (w) {\n var t = w;\n var r = 0;\n if (t >= 0x1000) {\n r += 13;\n t >>>= 13;\n }\n if (t >= 0x40) {\n r += 7;\n t >>>= 7;\n }\n if (t >= 0x8) {\n r += 4;\n t >>>= 4;\n }\n if (t >= 0x02) {\n r += 2;\n t >>>= 2;\n }\n return r + t;\n };\n }\n\n BN.prototype._zeroBits = function _zeroBits (w) {\n // Short-cut\n if (w === 0) return 26;\n\n var t = w;\n var r = 0;\n if ((t & 0x1fff) === 0) {\n r += 13;\n t >>>= 13;\n }\n if ((t & 0x7f) === 0) {\n r += 7;\n t >>>= 7;\n }\n if ((t & 0xf) === 0) {\n r += 4;\n t >>>= 4;\n }\n if ((t & 0x3) === 0) {\n r += 2;\n t >>>= 2;\n }\n if ((t & 0x1) === 0) {\n r++;\n }\n return r;\n };\n\n // Return number of used bits in a BN\n BN.prototype.bitLength = function bitLength () {\n var w = this.words[this.length - 1];\n var hi = this._countBits(w);\n return (this.length - 1) * 26 + hi;\n };\n\n function toBitArray (num) {\n var w = new Array(num.bitLength());\n\n for (var bit = 0; bit < w.length; bit++) {\n var off = (bit / 26) | 0;\n var wbit = bit % 26;\n\n w[bit] = (num.words[off] & (1 << wbit)) >>> wbit;\n }\n\n return w;\n }\n\n // Number of trailing zero bits\n BN.prototype.zeroBits = function zeroBits () {\n if (this.isZero()) return 0;\n\n var r = 0;\n for (var i = 0; i < this.length; i++) {\n var b = this._zeroBits(this.words[i]);\n r += b;\n if (b !== 26) break;\n }\n return r;\n };\n\n BN.prototype.byteLength = function byteLength () {\n return Math.ceil(this.bitLength() / 8);\n };\n\n BN.prototype.toTwos = function toTwos (width) {\n if (this.negative !== 0) {\n return this.abs().inotn(width).iaddn(1);\n }\n return this.clone();\n };\n\n BN.prototype.fromTwos = function fromTwos (width) {\n if (this.testn(width - 1)) {\n return this.notn(width).iaddn(1).ineg();\n }\n return this.clone();\n };\n\n BN.prototype.isNeg = function isNeg () {\n return this.negative !== 0;\n };\n\n // Return negative clone of `this`\n BN.prototype.neg = function neg () {\n return this.clone().ineg();\n };\n\n BN.prototype.ineg = function ineg () {\n if (!this.isZero()) {\n this.negative ^= 1;\n }\n\n return this;\n };\n\n // Or `num` with `this` in-place\n BN.prototype.iuor = function iuor (num) {\n while (this.length < num.length) {\n this.words[this.length++] = 0;\n }\n\n for (var i = 0; i < num.length; i++) {\n this.words[i] = this.words[i] | num.words[i];\n }\n\n return this.strip();\n };\n\n BN.prototype.ior = function ior (num) {\n assert((this.negative | num.negative) === 0);\n return this.iuor(num);\n };\n\n // Or `num` with `this`\n BN.prototype.or = function or (num) {\n if (this.length > num.length) return this.clone().ior(num);\n return num.clone().ior(this);\n };\n\n BN.prototype.uor = function uor (num) {\n if (this.length > num.length) return this.clone().iuor(num);\n return num.clone().iuor(this);\n };\n\n // And `num` with `this` in-place\n BN.prototype.iuand = function iuand (num) {\n // b = min-length(num, this)\n var b;\n if (this.length > num.length) {\n b = num;\n } else {\n b = this;\n }\n\n for (var i = 0; i < b.length; i++) {\n this.words[i] = this.words[i] & num.words[i];\n }\n\n this.length = b.length;\n\n return this.strip();\n };\n\n BN.prototype.iand = function iand (num) {\n assert((this.negative | num.negative) === 0);\n return this.iuand(num);\n };\n\n // And `num` with `this`\n BN.prototype.and = function and (num) {\n if (this.length > num.length) return this.clone().iand(num);\n return num.clone().iand(this);\n };\n\n BN.prototype.uand = function uand (num) {\n if (this.length > num.length) return this.clone().iuand(num);\n return num.clone().iuand(this);\n };\n\n // Xor `num` with `this` in-place\n BN.prototype.iuxor = function iuxor (num) {\n // a.length > b.length\n var a;\n var b;\n if (this.length > num.length) {\n a = this;\n b = num;\n } else {\n a = num;\n b = this;\n }\n\n for (var i = 0; i < b.length; i++) {\n this.words[i] = a.words[i] ^ b.words[i];\n }\n\n if (this !== a) {\n for (; i < a.length; i++) {\n this.words[i] = a.words[i];\n }\n }\n\n this.length = a.length;\n\n return this.strip();\n };\n\n BN.prototype.ixor = function ixor (num) {\n assert((this.negative | num.negative) === 0);\n return this.iuxor(num);\n };\n\n // Xor `num` with `this`\n BN.prototype.xor = function xor (num) {\n if (this.length > num.length) return this.clone().ixor(num);\n return num.clone().ixor(this);\n };\n\n BN.prototype.uxor = function uxor (num) {\n if (this.length > num.length) return this.clone().iuxor(num);\n return num.clone().iuxor(this);\n };\n\n // Not ``this`` with ``width`` bitwidth\n BN.prototype.inotn = function inotn (width) {\n assert(typeof width === 'number' && width >= 0);\n\n var bytesNeeded = Math.ceil(width / 26) | 0;\n var bitsLeft = width % 26;\n\n // Extend the buffer with leading zeroes\n this._expand(bytesNeeded);\n\n if (bitsLeft > 0) {\n bytesNeeded--;\n }\n\n // Handle complete words\n for (var i = 0; i < bytesNeeded; i++) {\n this.words[i] = ~this.words[i] & 0x3ffffff;\n }\n\n // Handle the residue\n if (bitsLeft > 0) {\n this.words[i] = ~this.words[i] & (0x3ffffff >> (26 - bitsLeft));\n }\n\n // And remove leading zeroes\n return this.strip();\n };\n\n BN.prototype.notn = function notn (width) {\n return this.clone().inotn(width);\n };\n\n // Set `bit` of `this`\n BN.prototype.setn = function setn (bit, val) {\n assert(typeof bit === 'number' && bit >= 0);\n\n var off = (bit / 26) | 0;\n var wbit = bit % 26;\n\n this._expand(off + 1);\n\n if (val) {\n this.words[off] = this.words[off] | (1 << wbit);\n } else {\n this.words[off] = this.words[off] & ~(1 << wbit);\n }\n\n return this.strip();\n };\n\n // Add `num` to `this` in-place\n BN.prototype.iadd = function iadd (num) {\n var r;\n\n // negative + positive\n if (this.negative !== 0 && num.negative === 0) {\n this.negative = 0;\n r = this.isub(num);\n this.negative ^= 1;\n return this._normSign();\n\n // positive + negative\n } else if (this.negative === 0 && num.negative !== 0) {\n num.negative = 0;\n r = this.isub(num);\n num.negative = 1;\n return r._normSign();\n }\n\n // a.length > b.length\n var a, b;\n if (this.length > num.length) {\n a = this;\n b = num;\n } else {\n a = num;\n b = this;\n }\n\n var carry = 0;\n for (var i = 0; i < b.length; i++) {\n r = (a.words[i] | 0) + (b.words[i] | 0) + carry;\n this.words[i] = r & 0x3ffffff;\n carry = r >>> 26;\n }\n for (; carry !== 0 && i < a.length; i++) {\n r = (a.words[i] | 0) + carry;\n this.words[i] = r & 0x3ffffff;\n carry = r >>> 26;\n }\n\n this.length = a.length;\n if (carry !== 0) {\n this.words[this.length] = carry;\n this.length++;\n // Copy the rest of the words\n } else if (a !== this) {\n for (; i < a.length; i++) {\n this.words[i] = a.words[i];\n }\n }\n\n return this;\n };\n\n // Add `num` to `this`\n BN.prototype.add = function add (num) {\n var res;\n if (num.negative !== 0 && this.negative === 0) {\n num.negative = 0;\n res = this.sub(num);\n num.negative ^= 1;\n return res;\n } else if (num.negative === 0 && this.negative !== 0) {\n this.negative = 0;\n res = num.sub(this);\n this.negative = 1;\n return res;\n }\n\n if (this.length > num.length) return this.clone().iadd(num);\n\n return num.clone().iadd(this);\n };\n\n // Subtract `num` from `this` in-place\n BN.prototype.isub = function isub (num) {\n // this - (-num) = this + num\n if (num.negative !== 0) {\n num.negative = 0;\n var r = this.iadd(num);\n num.negative = 1;\n return r._normSign();\n\n // -this - num = -(this + num)\n } else if (this.negative !== 0) {\n this.negative = 0;\n this.iadd(num);\n this.negative = 1;\n return this._normSign();\n }\n\n // At this point both numbers are positive\n var cmp = this.cmp(num);\n\n // Optimization - zeroify\n if (cmp === 0) {\n this.negative = 0;\n this.length = 1;\n this.words[0] = 0;\n return this;\n }\n\n // a > b\n var a, b;\n if (cmp > 0) {\n a = this;\n b = num;\n } else {\n a = num;\n b = this;\n }\n\n var carry = 0;\n for (var i = 0; i < b.length; i++) {\n r = (a.words[i] | 0) - (b.words[i] | 0) + carry;\n carry = r >> 26;\n this.words[i] = r & 0x3ffffff;\n }\n for (; carry !== 0 && i < a.length; i++) {\n r = (a.words[i] | 0) + carry;\n carry = r >> 26;\n this.words[i] = r & 0x3ffffff;\n }\n\n // Copy rest of the words\n if (carry === 0 && i < a.length && a !== this) {\n for (; i < a.length; i++) {\n this.words[i] = a.words[i];\n }\n }\n\n this.length = Math.max(this.length, i);\n\n if (a !== this) {\n this.negative = 1;\n }\n\n return this.strip();\n };\n\n // Subtract `num` from `this`\n BN.prototype.sub = function sub (num) {\n return this.clone().isub(num);\n };\n\n function smallMulTo (self, num, out) {\n out.negative = num.negative ^ self.negative;\n var len = (self.length + num.length) | 0;\n out.length = len;\n len = (len - 1) | 0;\n\n // Peel one iteration (compiler can't do it, because of code complexity)\n var a = self.words[0] | 0;\n var b = num.words[0] | 0;\n var r = a * b;\n\n var lo = r & 0x3ffffff;\n var carry = (r / 0x4000000) | 0;\n out.words[0] = lo;\n\n for (var k = 1; k < len; k++) {\n // Sum all words with the same `i + j = k` and accumulate `ncarry`,\n // note that ncarry could be >= 0x3ffffff\n var ncarry = carry >>> 26;\n var rword = carry & 0x3ffffff;\n var maxJ = Math.min(k, num.length - 1);\n for (var j = Math.max(0, k - self.length + 1); j <= maxJ; j++) {\n var i = (k - j) | 0;\n a = self.words[i] | 0;\n b = num.words[j] | 0;\n r = a * b + rword;\n ncarry += (r / 0x4000000) | 0;\n rword = r & 0x3ffffff;\n }\n out.words[k] = rword | 0;\n carry = ncarry | 0;\n }\n if (carry !== 0) {\n out.words[k] = carry | 0;\n } else {\n out.length--;\n }\n\n return out.strip();\n }\n\n // TODO(indutny): it may be reasonable to omit it for users who don't need\n // to work with 256-bit numbers, otherwise it gives 20% improvement for 256-bit\n // multiplication (like elliptic secp256k1).\n var comb10MulTo = function comb10MulTo (self, num, out) {\n var a = self.words;\n var b = num.words;\n var o = out.words;\n var c = 0;\n var lo;\n var mid;\n var hi;\n var a0 = a[0] | 0;\n var al0 = a0 & 0x1fff;\n var ah0 = a0 >>> 13;\n var a1 = a[1] | 0;\n var al1 = a1 & 0x1fff;\n var ah1 = a1 >>> 13;\n var a2 = a[2] | 0;\n var al2 = a2 & 0x1fff;\n var ah2 = a2 >>> 13;\n var a3 = a[3] | 0;\n var al3 = a3 & 0x1fff;\n var ah3 = a3 >>> 13;\n var a4 = a[4] | 0;\n var al4 = a4 & 0x1fff;\n var ah4 = a4 >>> 13;\n var a5 = a[5] | 0;\n var al5 = a5 & 0x1fff;\n var ah5 = a5 >>> 13;\n var a6 = a[6] | 0;\n var al6 = a6 & 0x1fff;\n var ah6 = a6 >>> 13;\n var a7 = a[7] | 0;\n var al7 = a7 & 0x1fff;\n var ah7 = a7 >>> 13;\n var a8 = a[8] | 0;\n var al8 = a8 & 0x1fff;\n var ah8 = a8 >>> 13;\n var a9 = a[9] | 0;\n var al9 = a9 & 0x1fff;\n var ah9 = a9 >>> 13;\n var b0 = b[0] | 0;\n var bl0 = b0 & 0x1fff;\n var bh0 = b0 >>> 13;\n var b1 = b[1] | 0;\n var bl1 = b1 & 0x1fff;\n var bh1 = b1 >>> 13;\n var b2 = b[2] | 0;\n var bl2 = b2 & 0x1fff;\n var bh2 = b2 >>> 13;\n var b3 = b[3] | 0;\n var bl3 = b3 & 0x1fff;\n var bh3 = b3 >>> 13;\n var b4 = b[4] | 0;\n var bl4 = b4 & 0x1fff;\n var bh4 = b4 >>> 13;\n var b5 = b[5] | 0;\n var bl5 = b5 & 0x1fff;\n var bh5 = b5 >>> 13;\n var b6 = b[6] | 0;\n var bl6 = b6 & 0x1fff;\n var bh6 = b6 >>> 13;\n var b7 = b[7] | 0;\n var bl7 = b7 & 0x1fff;\n var bh7 = b7 >>> 13;\n var b8 = b[8] | 0;\n var bl8 = b8 & 0x1fff;\n var bh8 = b8 >>> 13;\n var b9 = b[9] | 0;\n var bl9 = b9 & 0x1fff;\n var bh9 = b9 >>> 13;\n\n out.negative = self.negative ^ num.negative;\n out.length = 19;\n /* k = 0 */\n lo = Math.imul(al0, bl0);\n mid = Math.imul(al0, bh0);\n mid = (mid + Math.imul(ah0, bl0)) | 0;\n hi = Math.imul(ah0, bh0);\n var w0 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w0 >>> 26)) | 0;\n w0 &= 0x3ffffff;\n /* k = 1 */\n lo = Math.imul(al1, bl0);\n mid = Math.imul(al1, bh0);\n mid = (mid + Math.imul(ah1, bl0)) | 0;\n hi = Math.imul(ah1, bh0);\n lo = (lo + Math.imul(al0, bl1)) | 0;\n mid = (mid + Math.imul(al0, bh1)) | 0;\n mid = (mid + Math.imul(ah0, bl1)) | 0;\n hi = (hi + Math.imul(ah0, bh1)) | 0;\n var w1 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w1 >>> 26)) | 0;\n w1 &= 0x3ffffff;\n /* k = 2 */\n lo = Math.imul(al2, bl0);\n mid = Math.imul(al2, bh0);\n mid = (mid + Math.imul(ah2, bl0)) | 0;\n hi = Math.imul(ah2, bh0);\n lo = (lo + Math.imul(al1, bl1)) | 0;\n mid = (mid + Math.imul(al1, bh1)) | 0;\n mid = (mid + Math.imul(ah1, bl1)) | 0;\n hi = (hi + Math.imul(ah1, bh1)) | 0;\n lo = (lo + Math.imul(al0, bl2)) | 0;\n mid = (mid + Math.imul(al0, bh2)) | 0;\n mid = (mid + Math.imul(ah0, bl2)) | 0;\n hi = (hi + Math.imul(ah0, bh2)) | 0;\n var w2 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w2 >>> 26)) | 0;\n w2 &= 0x3ffffff;\n /* k = 3 */\n lo = Math.imul(al3, bl0);\n mid = Math.imul(al3, bh0);\n mid = (mid + Math.imul(ah3, bl0)) | 0;\n hi = Math.imul(ah3, bh0);\n lo = (lo + Math.imul(al2, bl1)) | 0;\n mid = (mid + Math.imul(al2, bh1)) | 0;\n mid = (mid + Math.imul(ah2, bl1)) | 0;\n hi = (hi + Math.imul(ah2, bh1)) | 0;\n lo = (lo + Math.imul(al1, bl2)) | 0;\n mid = (mid + Math.imul(al1, bh2)) | 0;\n mid = (mid + Math.imul(ah1, bl2)) | 0;\n hi = (hi + Math.imul(ah1, bh2)) | 0;\n lo = (lo + Math.imul(al0, bl3)) | 0;\n mid = (mid + Math.imul(al0, bh3)) | 0;\n mid = (mid + Math.imul(ah0, bl3)) | 0;\n hi = (hi + Math.imul(ah0, bh3)) | 0;\n var w3 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w3 >>> 26)) | 0;\n w3 &= 0x3ffffff;\n /* k = 4 */\n lo = Math.imul(al4, bl0);\n mid = Math.imul(al4, bh0);\n mid = (mid + Math.imul(ah4, bl0)) | 0;\n hi = Math.imul(ah4, bh0);\n lo = (lo + Math.imul(al3, bl1)) | 0;\n mid = (mid + Math.imul(al3, bh1)) | 0;\n mid = (mid + Math.imul(ah3, bl1)) | 0;\n hi = (hi + Math.imul(ah3, bh1)) | 0;\n lo = (lo + Math.imul(al2, bl2)) | 0;\n mid = (mid + Math.imul(al2, bh2)) | 0;\n mid = (mid + Math.imul(ah2, bl2)) | 0;\n hi = (hi + Math.imul(ah2, bh2)) | 0;\n lo = (lo + Math.imul(al1, bl3)) | 0;\n mid = (mid + Math.imul(al1, bh3)) | 0;\n mid = (mid + Math.imul(ah1, bl3)) | 0;\n hi = (hi + Math.imul(ah1, bh3)) | 0;\n lo = (lo + Math.imul(al0, bl4)) | 0;\n mid = (mid + Math.imul(al0, bh4)) | 0;\n mid = (mid + Math.imul(ah0, bl4)) | 0;\n hi = (hi + Math.imul(ah0, bh4)) | 0;\n var w4 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w4 >>> 26)) | 0;\n w4 &= 0x3ffffff;\n /* k = 5 */\n lo = Math.imul(al5, bl0);\n mid = Math.imul(al5, bh0);\n mid = (mid + Math.imul(ah5, bl0)) | 0;\n hi = Math.imul(ah5, bh0);\n lo = (lo + Math.imul(al4, bl1)) | 0;\n mid = (mid + Math.imul(al4, bh1)) | 0;\n mid = (mid + Math.imul(ah4, bl1)) | 0;\n hi = (hi + Math.imul(ah4, bh1)) | 0;\n lo = (lo + Math.imul(al3, bl2)) | 0;\n mid = (mid + Math.imul(al3, bh2)) | 0;\n mid = (mid + Math.imul(ah3, bl2)) | 0;\n hi = (hi + Math.imul(ah3, bh2)) | 0;\n lo = (lo + Math.imul(al2, bl3)) | 0;\n mid = (mid + Math.imul(al2, bh3)) | 0;\n mid = (mid + Math.imul(ah2, bl3)) | 0;\n hi = (hi + Math.imul(ah2, bh3)) | 0;\n lo = (lo + Math.imul(al1, bl4)) | 0;\n mid = (mid + Math.imul(al1, bh4)) | 0;\n mid = (mid + Math.imul(ah1, bl4)) | 0;\n hi = (hi + Math.imul(ah1, bh4)) | 0;\n lo = (lo + Math.imul(al0, bl5)) | 0;\n mid = (mid + Math.imul(al0, bh5)) | 0;\n mid = (mid + Math.imul(ah0, bl5)) | 0;\n hi = (hi + Math.imul(ah0, bh5)) | 0;\n var w5 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w5 >>> 26)) | 0;\n w5 &= 0x3ffffff;\n /* k = 6 */\n lo = Math.imul(al6, bl0);\n mid = Math.imul(al6, bh0);\n mid = (mid + Math.imul(ah6, bl0)) | 0;\n hi = Math.imul(ah6, bh0);\n lo = (lo + Math.imul(al5, bl1)) | 0;\n mid = (mid + Math.imul(al5, bh1)) | 0;\n mid = (mid + Math.imul(ah5, bl1)) | 0;\n hi = (hi + Math.imul(ah5, bh1)) | 0;\n lo = (lo + Math.imul(al4, bl2)) | 0;\n mid = (mid + Math.imul(al4, bh2)) | 0;\n mid = (mid + Math.imul(ah4, bl2)) | 0;\n hi = (hi + Math.imul(ah4, bh2)) | 0;\n lo = (lo + Math.imul(al3, bl3)) | 0;\n mid = (mid + Math.imul(al3, bh3)) | 0;\n mid = (mid + Math.imul(ah3, bl3)) | 0;\n hi = (hi + Math.imul(ah3, bh3)) | 0;\n lo = (lo + Math.imul(al2, bl4)) | 0;\n mid = (mid + Math.imul(al2, bh4)) | 0;\n mid = (mid + Math.imul(ah2, bl4)) | 0;\n hi = (hi + Math.imul(ah2, bh4)) | 0;\n lo = (lo + Math.imul(al1, bl5)) | 0;\n mid = (mid + Math.imul(al1, bh5)) | 0;\n mid = (mid + Math.imul(ah1, bl5)) | 0;\n hi = (hi + Math.imul(ah1, bh5)) | 0;\n lo = (lo + Math.imul(al0, bl6)) | 0;\n mid = (mid + Math.imul(al0, bh6)) | 0;\n mid = (mid + Math.imul(ah0, bl6)) | 0;\n hi = (hi + Math.imul(ah0, bh6)) | 0;\n var w6 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w6 >>> 26)) | 0;\n w6 &= 0x3ffffff;\n /* k = 7 */\n lo = Math.imul(al7, bl0);\n mid = Math.imul(al7, bh0);\n mid = (mid + Math.imul(ah7, bl0)) | 0;\n hi = Math.imul(ah7, bh0);\n lo = (lo + Math.imul(al6, bl1)) | 0;\n mid = (mid + Math.imul(al6, bh1)) | 0;\n mid = (mid + Math.imul(ah6, bl1)) | 0;\n hi = (hi + Math.imul(ah6, bh1)) | 0;\n lo = (lo + Math.imul(al5, bl2)) | 0;\n mid = (mid + Math.imul(al5, bh2)) | 0;\n mid = (mid + Math.imul(ah5, bl2)) | 0;\n hi = (hi + Math.imul(ah5, bh2)) | 0;\n lo = (lo + Math.imul(al4, bl3)) | 0;\n mid = (mid + Math.imul(al4, bh3)) | 0;\n mid = (mid + Math.imul(ah4, bl3)) | 0;\n hi = (hi + Math.imul(ah4, bh3)) | 0;\n lo = (lo + Math.imul(al3, bl4)) | 0;\n mid = (mid + Math.imul(al3, bh4)) | 0;\n mid = (mid + Math.imul(ah3, bl4)) | 0;\n hi = (hi + Math.imul(ah3, bh4)) | 0;\n lo = (lo + Math.imul(al2, bl5)) | 0;\n mid = (mid + Math.imul(al2, bh5)) | 0;\n mid = (mid + Math.imul(ah2, bl5)) | 0;\n hi = (hi + Math.imul(ah2, bh5)) | 0;\n lo = (lo + Math.imul(al1, bl6)) | 0;\n mid = (mid + Math.imul(al1, bh6)) | 0;\n mid = (mid + Math.imul(ah1, bl6)) | 0;\n hi = (hi + Math.imul(ah1, bh6)) | 0;\n lo = (lo + Math.imul(al0, bl7)) | 0;\n mid = (mid + Math.imul(al0, bh7)) | 0;\n mid = (mid + Math.imul(ah0, bl7)) | 0;\n hi = (hi + Math.imul(ah0, bh7)) | 0;\n var w7 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w7 >>> 26)) | 0;\n w7 &= 0x3ffffff;\n /* k = 8 */\n lo = Math.imul(al8, bl0);\n mid = Math.imul(al8, bh0);\n mid = (mid + Math.imul(ah8, bl0)) | 0;\n hi = Math.imul(ah8, bh0);\n lo = (lo + Math.imul(al7, bl1)) | 0;\n mid = (mid + Math.imul(al7, bh1)) | 0;\n mid = (mid + Math.imul(ah7, bl1)) | 0;\n hi = (hi + Math.imul(ah7, bh1)) | 0;\n lo = (lo + Math.imul(al6, bl2)) | 0;\n mid = (mid + Math.imul(al6, bh2)) | 0;\n mid = (mid + Math.imul(ah6, bl2)) | 0;\n hi = (hi + Math.imul(ah6, bh2)) | 0;\n lo = (lo + Math.imul(al5, bl3)) | 0;\n mid = (mid + Math.imul(al5, bh3)) | 0;\n mid = (mid + Math.imul(ah5, bl3)) | 0;\n hi = (hi + Math.imul(ah5, bh3)) | 0;\n lo = (lo + Math.imul(al4, bl4)) | 0;\n mid = (mid + Math.imul(al4, bh4)) | 0;\n mid = (mid + Math.imul(ah4, bl4)) | 0;\n hi = (hi + Math.imul(ah4, bh4)) | 0;\n lo = (lo + Math.imul(al3, bl5)) | 0;\n mid = (mid + Math.imul(al3, bh5)) | 0;\n mid = (mid + Math.imul(ah3, bl5)) | 0;\n hi = (hi + Math.imul(ah3, bh5)) | 0;\n lo = (lo + Math.imul(al2, bl6)) | 0;\n mid = (mid + Math.imul(al2, bh6)) | 0;\n mid = (mid + Math.imul(ah2, bl6)) | 0;\n hi = (hi + Math.imul(ah2, bh6)) | 0;\n lo = (lo + Math.imul(al1, bl7)) | 0;\n mid = (mid + Math.imul(al1, bh7)) | 0;\n mid = (mid + Math.imul(ah1, bl7)) | 0;\n hi = (hi + Math.imul(ah1, bh7)) | 0;\n lo = (lo + Math.imul(al0, bl8)) | 0;\n mid = (mid + Math.imul(al0, bh8)) | 0;\n mid = (mid + Math.imul(ah0, bl8)) | 0;\n hi = (hi + Math.imul(ah0, bh8)) | 0;\n var w8 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w8 >>> 26)) | 0;\n w8 &= 0x3ffffff;\n /* k = 9 */\n lo = Math.imul(al9, bl0);\n mid = Math.imul(al9, bh0);\n mid = (mid + Math.imul(ah9, bl0)) | 0;\n hi = Math.imul(ah9, bh0);\n lo = (lo + Math.imul(al8, bl1)) | 0;\n mid = (mid + Math.imul(al8, bh1)) | 0;\n mid = (mid + Math.imul(ah8, bl1)) | 0;\n hi = (hi + Math.imul(ah8, bh1)) | 0;\n lo = (lo + Math.imul(al7, bl2)) | 0;\n mid = (mid + Math.imul(al7, bh2)) | 0;\n mid = (mid + Math.imul(ah7, bl2)) | 0;\n hi = (hi + Math.imul(ah7, bh2)) | 0;\n lo = (lo + Math.imul(al6, bl3)) | 0;\n mid = (mid + Math.imul(al6, bh3)) | 0;\n mid = (mid + Math.imul(ah6, bl3)) | 0;\n hi = (hi + Math.imul(ah6, bh3)) | 0;\n lo = (lo + Math.imul(al5, bl4)) | 0;\n mid = (mid + Math.imul(al5, bh4)) | 0;\n mid = (mid + Math.imul(ah5, bl4)) | 0;\n hi = (hi + Math.imul(ah5, bh4)) | 0;\n lo = (lo + Math.imul(al4, bl5)) | 0;\n mid = (mid + Math.imul(al4, bh5)) | 0;\n mid = (mid + Math.imul(ah4, bl5)) | 0;\n hi = (hi + Math.imul(ah4, bh5)) | 0;\n lo = (lo + Math.imul(al3, bl6)) | 0;\n mid = (mid + Math.imul(al3, bh6)) | 0;\n mid = (mid + Math.imul(ah3, bl6)) | 0;\n hi = (hi + Math.imul(ah3, bh6)) | 0;\n lo = (lo + Math.imul(al2, bl7)) | 0;\n mid = (mid + Math.imul(al2, bh7)) | 0;\n mid = (mid + Math.imul(ah2, bl7)) | 0;\n hi = (hi + Math.imul(ah2, bh7)) | 0;\n lo = (lo + Math.imul(al1, bl8)) | 0;\n mid = (mid + Math.imul(al1, bh8)) | 0;\n mid = (mid + Math.imul(ah1, bl8)) | 0;\n hi = (hi + Math.imul(ah1, bh8)) | 0;\n lo = (lo + Math.imul(al0, bl9)) | 0;\n mid = (mid + Math.imul(al0, bh9)) | 0;\n mid = (mid + Math.imul(ah0, bl9)) | 0;\n hi = (hi + Math.imul(ah0, bh9)) | 0;\n var w9 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w9 >>> 26)) | 0;\n w9 &= 0x3ffffff;\n /* k = 10 */\n lo = Math.imul(al9, bl1);\n mid = Math.imul(al9, bh1);\n mid = (mid + Math.imul(ah9, bl1)) | 0;\n hi = Math.imul(ah9, bh1);\n lo = (lo + Math.imul(al8, bl2)) | 0;\n mid = (mid + Math.imul(al8, bh2)) | 0;\n mid = (mid + Math.imul(ah8, bl2)) | 0;\n hi = (hi + Math.imul(ah8, bh2)) | 0;\n lo = (lo + Math.imul(al7, bl3)) | 0;\n mid = (mid + Math.imul(al7, bh3)) | 0;\n mid = (mid + Math.imul(ah7, bl3)) | 0;\n hi = (hi + Math.imul(ah7, bh3)) | 0;\n lo = (lo + Math.imul(al6, bl4)) | 0;\n mid = (mid + Math.imul(al6, bh4)) | 0;\n mid = (mid + Math.imul(ah6, bl4)) | 0;\n hi = (hi + Math.imul(ah6, bh4)) | 0;\n lo = (lo + Math.imul(al5, bl5)) | 0;\n mid = (mid + Math.imul(al5, bh5)) | 0;\n mid = (mid + Math.imul(ah5, bl5)) | 0;\n hi = (hi + Math.imul(ah5, bh5)) | 0;\n lo = (lo + Math.imul(al4, bl6)) | 0;\n mid = (mid + Math.imul(al4, bh6)) | 0;\n mid = (mid + Math.imul(ah4, bl6)) | 0;\n hi = (hi + Math.imul(ah4, bh6)) | 0;\n lo = (lo + Math.imul(al3, bl7)) | 0;\n mid = (mid + Math.imul(al3, bh7)) | 0;\n mid = (mid + Math.imul(ah3, bl7)) | 0;\n hi = (hi + Math.imul(ah3, bh7)) | 0;\n lo = (lo + Math.imul(al2, bl8)) | 0;\n mid = (mid + Math.imul(al2, bh8)) | 0;\n mid = (mid + Math.imul(ah2, bl8)) | 0;\n hi = (hi + Math.imul(ah2, bh8)) | 0;\n lo = (lo + Math.imul(al1, bl9)) | 0;\n mid = (mid + Math.imul(al1, bh9)) | 0;\n mid = (mid + Math.imul(ah1, bl9)) | 0;\n hi = (hi + Math.imul(ah1, bh9)) | 0;\n var w10 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w10 >>> 26)) | 0;\n w10 &= 0x3ffffff;\n /* k = 11 */\n lo = Math.imul(al9, bl2);\n mid = Math.imul(al9, bh2);\n mid = (mid + Math.imul(ah9, bl2)) | 0;\n hi = Math.imul(ah9, bh2);\n lo = (lo + Math.imul(al8, bl3)) | 0;\n mid = (mid + Math.imul(al8, bh3)) | 0;\n mid = (mid + Math.imul(ah8, bl3)) | 0;\n hi = (hi + Math.imul(ah8, bh3)) | 0;\n lo = (lo + Math.imul(al7, bl4)) | 0;\n mid = (mid + Math.imul(al7, bh4)) | 0;\n mid = (mid + Math.imul(ah7, bl4)) | 0;\n hi = (hi + Math.imul(ah7, bh4)) | 0;\n lo = (lo + Math.imul(al6, bl5)) | 0;\n mid = (mid + Math.imul(al6, bh5)) | 0;\n mid = (mid + Math.imul(ah6, bl5)) | 0;\n hi = (hi + Math.imul(ah6, bh5)) | 0;\n lo = (lo + Math.imul(al5, bl6)) | 0;\n mid = (mid + Math.imul(al5, bh6)) | 0;\n mid = (mid + Math.imul(ah5, bl6)) | 0;\n hi = (hi + Math.imul(ah5, bh6)) | 0;\n lo = (lo + Math.imul(al4, bl7)) | 0;\n mid = (mid + Math.imul(al4, bh7)) | 0;\n mid = (mid + Math.imul(ah4, bl7)) | 0;\n hi = (hi + Math.imul(ah4, bh7)) | 0;\n lo = (lo + Math.imul(al3, bl8)) | 0;\n mid = (mid + Math.imul(al3, bh8)) | 0;\n mid = (mid + Math.imul(ah3, bl8)) | 0;\n hi = (hi + Math.imul(ah3, bh8)) | 0;\n lo = (lo + Math.imul(al2, bl9)) | 0;\n mid = (mid + Math.imul(al2, bh9)) | 0;\n mid = (mid + Math.imul(ah2, bl9)) | 0;\n hi = (hi + Math.imul(ah2, bh9)) | 0;\n var w11 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w11 >>> 26)) | 0;\n w11 &= 0x3ffffff;\n /* k = 12 */\n lo = Math.imul(al9, bl3);\n mid = Math.imul(al9, bh3);\n mid = (mid + Math.imul(ah9, bl3)) | 0;\n hi = Math.imul(ah9, bh3);\n lo = (lo + Math.imul(al8, bl4)) | 0;\n mid = (mid + Math.imul(al8, bh4)) | 0;\n mid = (mid + Math.imul(ah8, bl4)) | 0;\n hi = (hi + Math.imul(ah8, bh4)) | 0;\n lo = (lo + Math.imul(al7, bl5)) | 0;\n mid = (mid + Math.imul(al7, bh5)) | 0;\n mid = (mid + Math.imul(ah7, bl5)) | 0;\n hi = (hi + Math.imul(ah7, bh5)) | 0;\n lo = (lo + Math.imul(al6, bl6)) | 0;\n mid = (mid + Math.imul(al6, bh6)) | 0;\n mid = (mid + Math.imul(ah6, bl6)) | 0;\n hi = (hi + Math.imul(ah6, bh6)) | 0;\n lo = (lo + Math.imul(al5, bl7)) | 0;\n mid = (mid + Math.imul(al5, bh7)) | 0;\n mid = (mid + Math.imul(ah5, bl7)) | 0;\n hi = (hi + Math.imul(ah5, bh7)) | 0;\n lo = (lo + Math.imul(al4, bl8)) | 0;\n mid = (mid + Math.imul(al4, bh8)) | 0;\n mid = (mid + Math.imul(ah4, bl8)) | 0;\n hi = (hi + Math.imul(ah4, bh8)) | 0;\n lo = (lo + Math.imul(al3, bl9)) | 0;\n mid = (mid + Math.imul(al3, bh9)) | 0;\n mid = (mid + Math.imul(ah3, bl9)) | 0;\n hi = (hi + Math.imul(ah3, bh9)) | 0;\n var w12 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w12 >>> 26)) | 0;\n w12 &= 0x3ffffff;\n /* k = 13 */\n lo = Math.imul(al9, bl4);\n mid = Math.imul(al9, bh4);\n mid = (mid + Math.imul(ah9, bl4)) | 0;\n hi = Math.imul(ah9, bh4);\n lo = (lo + Math.imul(al8, bl5)) | 0;\n mid = (mid + Math.imul(al8, bh5)) | 0;\n mid = (mid + Math.imul(ah8, bl5)) | 0;\n hi = (hi + Math.imul(ah8, bh5)) | 0;\n lo = (lo + Math.imul(al7, bl6)) | 0;\n mid = (mid + Math.imul(al7, bh6)) | 0;\n mid = (mid + Math.imul(ah7, bl6)) | 0;\n hi = (hi + Math.imul(ah7, bh6)) | 0;\n lo = (lo + Math.imul(al6, bl7)) | 0;\n mid = (mid + Math.imul(al6, bh7)) | 0;\n mid = (mid + Math.imul(ah6, bl7)) | 0;\n hi = (hi + Math.imul(ah6, bh7)) | 0;\n lo = (lo + Math.imul(al5, bl8)) | 0;\n mid = (mid + Math.imul(al5, bh8)) | 0;\n mid = (mid + Math.imul(ah5, bl8)) | 0;\n hi = (hi + Math.imul(ah5, bh8)) | 0;\n lo = (lo + Math.imul(al4, bl9)) | 0;\n mid = (mid + Math.imul(al4, bh9)) | 0;\n mid = (mid + Math.imul(ah4, bl9)) | 0;\n hi = (hi + Math.imul(ah4, bh9)) | 0;\n var w13 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w13 >>> 26)) | 0;\n w13 &= 0x3ffffff;\n /* k = 14 */\n lo = Math.imul(al9, bl5);\n mid = Math.imul(al9, bh5);\n mid = (mid + Math.imul(ah9, bl5)) | 0;\n hi = Math.imul(ah9, bh5);\n lo = (lo + Math.imul(al8, bl6)) | 0;\n mid = (mid + Math.imul(al8, bh6)) | 0;\n mid = (mid + Math.imul(ah8, bl6)) | 0;\n hi = (hi + Math.imul(ah8, bh6)) | 0;\n lo = (lo + Math.imul(al7, bl7)) | 0;\n mid = (mid + Math.imul(al7, bh7)) | 0;\n mid = (mid + Math.imul(ah7, bl7)) | 0;\n hi = (hi + Math.imul(ah7, bh7)) | 0;\n lo = (lo + Math.imul(al6, bl8)) | 0;\n mid = (mid + Math.imul(al6, bh8)) | 0;\n mid = (mid + Math.imul(ah6, bl8)) | 0;\n hi = (hi + Math.imul(ah6, bh8)) | 0;\n lo = (lo + Math.imul(al5, bl9)) | 0;\n mid = (mid + Math.imul(al5, bh9)) | 0;\n mid = (mid + Math.imul(ah5, bl9)) | 0;\n hi = (hi + Math.imul(ah5, bh9)) | 0;\n var w14 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w14 >>> 26)) | 0;\n w14 &= 0x3ffffff;\n /* k = 15 */\n lo = Math.imul(al9, bl6);\n mid = Math.imul(al9, bh6);\n mid = (mid + Math.imul(ah9, bl6)) | 0;\n hi = Math.imul(ah9, bh6);\n lo = (lo + Math.imul(al8, bl7)) | 0;\n mid = (mid + Math.imul(al8, bh7)) | 0;\n mid = (mid + Math.imul(ah8, bl7)) | 0;\n hi = (hi + Math.imul(ah8, bh7)) | 0;\n lo = (lo + Math.imul(al7, bl8)) | 0;\n mid = (mid + Math.imul(al7, bh8)) | 0;\n mid = (mid + Math.imul(ah7, bl8)) | 0;\n hi = (hi + Math.imul(ah7, bh8)) | 0;\n lo = (lo + Math.imul(al6, bl9)) | 0;\n mid = (mid + Math.imul(al6, bh9)) | 0;\n mid = (mid + Math.imul(ah6, bl9)) | 0;\n hi = (hi + Math.imul(ah6, bh9)) | 0;\n var w15 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w15 >>> 26)) | 0;\n w15 &= 0x3ffffff;\n /* k = 16 */\n lo = Math.imul(al9, bl7);\n mid = Math.imul(al9, bh7);\n mid = (mid + Math.imul(ah9, bl7)) | 0;\n hi = Math.imul(ah9, bh7);\n lo = (lo + Math.imul(al8, bl8)) | 0;\n mid = (mid + Math.imul(al8, bh8)) | 0;\n mid = (mid + Math.imul(ah8, bl8)) | 0;\n hi = (hi + Math.imul(ah8, bh8)) | 0;\n lo = (lo + Math.imul(al7, bl9)) | 0;\n mid = (mid + Math.imul(al7, bh9)) | 0;\n mid = (mid + Math.imul(ah7, bl9)) | 0;\n hi = (hi + Math.imul(ah7, bh9)) | 0;\n var w16 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w16 >>> 26)) | 0;\n w16 &= 0x3ffffff;\n /* k = 17 */\n lo = Math.imul(al9, bl8);\n mid = Math.imul(al9, bh8);\n mid = (mid + Math.imul(ah9, bl8)) | 0;\n hi = Math.imul(ah9, bh8);\n lo = (lo + Math.imul(al8, bl9)) | 0;\n mid = (mid + Math.imul(al8, bh9)) | 0;\n mid = (mid + Math.imul(ah8, bl9)) | 0;\n hi = (hi + Math.imul(ah8, bh9)) | 0;\n var w17 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w17 >>> 26)) | 0;\n w17 &= 0x3ffffff;\n /* k = 18 */\n lo = Math.imul(al9, bl9);\n mid = Math.imul(al9, bh9);\n mid = (mid + Math.imul(ah9, bl9)) | 0;\n hi = Math.imul(ah9, bh9);\n var w18 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w18 >>> 26)) | 0;\n w18 &= 0x3ffffff;\n o[0] = w0;\n o[1] = w1;\n o[2] = w2;\n o[3] = w3;\n o[4] = w4;\n o[5] = w5;\n o[6] = w6;\n o[7] = w7;\n o[8] = w8;\n o[9] = w9;\n o[10] = w10;\n o[11] = w11;\n o[12] = w12;\n o[13] = w13;\n o[14] = w14;\n o[15] = w15;\n o[16] = w16;\n o[17] = w17;\n o[18] = w18;\n if (c !== 0) {\n o[19] = c;\n out.length++;\n }\n return out;\n };\n\n // Polyfill comb\n if (!Math.imul) {\n comb10MulTo = smallMulTo;\n }\n\n function bigMulTo (self, num, out) {\n out.negative = num.negative ^ self.negative;\n out.length = self.length + num.length;\n\n var carry = 0;\n var hncarry = 0;\n for (var k = 0; k < out.length - 1; k++) {\n // Sum all words with the same `i + j = k` and accumulate `ncarry`,\n // note that ncarry could be >= 0x3ffffff\n var ncarry = hncarry;\n hncarry = 0;\n var rword = carry & 0x3ffffff;\n var maxJ = Math.min(k, num.length - 1);\n for (var j = Math.max(0, k - self.length + 1); j <= maxJ; j++) {\n var i = k - j;\n var a = self.words[i] | 0;\n var b = num.words[j] | 0;\n var r = a * b;\n\n var lo = r & 0x3ffffff;\n ncarry = (ncarry + ((r / 0x4000000) | 0)) | 0;\n lo = (lo + rword) | 0;\n rword = lo & 0x3ffffff;\n ncarry = (ncarry + (lo >>> 26)) | 0;\n\n hncarry += ncarry >>> 26;\n ncarry &= 0x3ffffff;\n }\n out.words[k] = rword;\n carry = ncarry;\n ncarry = hncarry;\n }\n if (carry !== 0) {\n out.words[k] = carry;\n } else {\n out.length--;\n }\n\n return out.strip();\n }\n\n function jumboMulTo (self, num, out) {\n var fftm = new FFTM();\n return fftm.mulp(self, num, out);\n }\n\n BN.prototype.mulTo = function mulTo (num, out) {\n var res;\n var len = this.length + num.length;\n if (this.length === 10 && num.length === 10) {\n res = comb10MulTo(this, num, out);\n } else if (len < 63) {\n res = smallMulTo(this, num, out);\n } else if (len < 1024) {\n res = bigMulTo(this, num, out);\n } else {\n res = jumboMulTo(this, num, out);\n }\n\n return res;\n };\n\n // Cooley-Tukey algorithm for FFT\n // slightly revisited to rely on looping instead of recursion\n\n function FFTM (x, y) {\n this.x = x;\n this.y = y;\n }\n\n FFTM.prototype.makeRBT = function makeRBT (N) {\n var t = new Array(N);\n var l = BN.prototype._countBits(N) - 1;\n for (var i = 0; i < N; i++) {\n t[i] = this.revBin(i, l, N);\n }\n\n return t;\n };\n\n // Returns binary-reversed representation of `x`\n FFTM.prototype.revBin = function revBin (x, l, N) {\n if (x === 0 || x === N - 1) return x;\n\n var rb = 0;\n for (var i = 0; i < l; i++) {\n rb |= (x & 1) << (l - i - 1);\n x >>= 1;\n }\n\n return rb;\n };\n\n // Performs \"tweedling\" phase, therefore 'emulating'\n // behaviour of the recursive algorithm\n FFTM.prototype.permute = function permute (rbt, rws, iws, rtws, itws, N) {\n for (var i = 0; i < N; i++) {\n rtws[i] = rws[rbt[i]];\n itws[i] = iws[rbt[i]];\n }\n };\n\n FFTM.prototype.transform = function transform (rws, iws, rtws, itws, N, rbt) {\n this.permute(rbt, rws, iws, rtws, itws, N);\n\n for (var s = 1; s < N; s <<= 1) {\n var l = s << 1;\n\n var rtwdf = Math.cos(2 * Math.PI / l);\n var itwdf = Math.sin(2 * Math.PI / l);\n\n for (var p = 0; p < N; p += l) {\n var rtwdf_ = rtwdf;\n var itwdf_ = itwdf;\n\n for (var j = 0; j < s; j++) {\n var re = rtws[p + j];\n var ie = itws[p + j];\n\n var ro = rtws[p + j + s];\n var io = itws[p + j + s];\n\n var rx = rtwdf_ * ro - itwdf_ * io;\n\n io = rtwdf_ * io + itwdf_ * ro;\n ro = rx;\n\n rtws[p + j] = re + ro;\n itws[p + j] = ie + io;\n\n rtws[p + j + s] = re - ro;\n itws[p + j + s] = ie - io;\n\n /* jshint maxdepth : false */\n if (j !== l) {\n rx = rtwdf * rtwdf_ - itwdf * itwdf_;\n\n itwdf_ = rtwdf * itwdf_ + itwdf * rtwdf_;\n rtwdf_ = rx;\n }\n }\n }\n }\n };\n\n FFTM.prototype.guessLen13b = function guessLen13b (n, m) {\n var N = Math.max(m, n) | 1;\n var odd = N & 1;\n var i = 0;\n for (N = N / 2 | 0; N; N = N >>> 1) {\n i++;\n }\n\n return 1 << i + 1 + odd;\n };\n\n FFTM.prototype.conjugate = function conjugate (rws, iws, N) {\n if (N <= 1) return;\n\n for (var i = 0; i < N / 2; i++) {\n var t = rws[i];\n\n rws[i] = rws[N - i - 1];\n rws[N - i - 1] = t;\n\n t = iws[i];\n\n iws[i] = -iws[N - i - 1];\n iws[N - i - 1] = -t;\n }\n };\n\n FFTM.prototype.normalize13b = function normalize13b (ws, N) {\n var carry = 0;\n for (var i = 0; i < N / 2; i++) {\n var w = Math.round(ws[2 * i + 1] / N) * 0x2000 +\n Math.round(ws[2 * i] / N) +\n carry;\n\n ws[i] = w & 0x3ffffff;\n\n if (w < 0x4000000) {\n carry = 0;\n } else {\n carry = w / 0x4000000 | 0;\n }\n }\n\n return ws;\n };\n\n FFTM.prototype.convert13b = function convert13b (ws, len, rws, N) {\n var carry = 0;\n for (var i = 0; i < len; i++) {\n carry = carry + (ws[i] | 0);\n\n rws[2 * i] = carry & 0x1fff; carry = carry >>> 13;\n rws[2 * i + 1] = carry & 0x1fff; carry = carry >>> 13;\n }\n\n // Pad with zeroes\n for (i = 2 * len; i < N; ++i) {\n rws[i] = 0;\n }\n\n assert(carry === 0);\n assert((carry & ~0x1fff) === 0);\n };\n\n FFTM.prototype.stub = function stub (N) {\n var ph = new Array(N);\n for (var i = 0; i < N; i++) {\n ph[i] = 0;\n }\n\n return ph;\n };\n\n FFTM.prototype.mulp = function mulp (x, y, out) {\n var N = 2 * this.guessLen13b(x.length, y.length);\n\n var rbt = this.makeRBT(N);\n\n var _ = this.stub(N);\n\n var rws = new Array(N);\n var rwst = new Array(N);\n var iwst = new Array(N);\n\n var nrws = new Array(N);\n var nrwst = new Array(N);\n var niwst = new Array(N);\n\n var rmws = out.words;\n rmws.length = N;\n\n this.convert13b(x.words, x.length, rws, N);\n this.convert13b(y.words, y.length, nrws, N);\n\n this.transform(rws, _, rwst, iwst, N, rbt);\n this.transform(nrws, _, nrwst, niwst, N, rbt);\n\n for (var i = 0; i < N; i++) {\n var rx = rwst[i] * nrwst[i] - iwst[i] * niwst[i];\n iwst[i] = rwst[i] * niwst[i] + iwst[i] * nrwst[i];\n rwst[i] = rx;\n }\n\n this.conjugate(rwst, iwst, N);\n this.transform(rwst, iwst, rmws, _, N, rbt);\n this.conjugate(rmws, _, N);\n this.normalize13b(rmws, N);\n\n out.negative = x.negative ^ y.negative;\n out.length = x.length + y.length;\n return out.strip();\n };\n\n // Multiply `this` by `num`\n BN.prototype.mul = function mul (num) {\n var out = new BN(null);\n out.words = new Array(this.length + num.length);\n return this.mulTo(num, out);\n };\n\n // Multiply employing FFT\n BN.prototype.mulf = function mulf (num) {\n var out = new BN(null);\n out.words = new Array(this.length + num.length);\n return jumboMulTo(this, num, out);\n };\n\n // In-place Multiplication\n BN.prototype.imul = function imul (num) {\n return this.clone().mulTo(num, this);\n };\n\n BN.prototype.imuln = function imuln (num) {\n assert(typeof num === 'number');\n assert(num < 0x4000000);\n\n // Carry\n var carry = 0;\n for (var i = 0; i < this.length; i++) {\n var w = (this.words[i] | 0) * num;\n var lo = (w & 0x3ffffff) + (carry & 0x3ffffff);\n carry >>= 26;\n carry += (w / 0x4000000) | 0;\n // NOTE: lo is 27bit maximum\n carry += lo >>> 26;\n this.words[i] = lo & 0x3ffffff;\n }\n\n if (carry !== 0) {\n this.words[i] = carry;\n this.length++;\n }\n\n return this;\n };\n\n BN.prototype.muln = function muln (num) {\n return this.clone().imuln(num);\n };\n\n // `this` * `this`\n BN.prototype.sqr = function sqr () {\n return this.mul(this);\n };\n\n // `this` * `this` in-place\n BN.prototype.isqr = function isqr () {\n return this.imul(this.clone());\n };\n\n // Math.pow(`this`, `num`)\n BN.prototype.pow = function pow (num) {\n var w = toBitArray(num);\n if (w.length === 0) return new BN(1);\n\n // Skip leading zeroes\n var res = this;\n for (var i = 0; i < w.length; i++, res = res.sqr()) {\n if (w[i] !== 0) break;\n }\n\n if (++i < w.length) {\n for (var q = res.sqr(); i < w.length; i++, q = q.sqr()) {\n if (w[i] === 0) continue;\n\n res = res.mul(q);\n }\n }\n\n return res;\n };\n\n // Shift-left in-place\n BN.prototype.iushln = function iushln (bits) {\n assert(typeof bits === 'number' && bits >= 0);\n var r = bits % 26;\n var s = (bits - r) / 26;\n var carryMask = (0x3ffffff >>> (26 - r)) << (26 - r);\n var i;\n\n if (r !== 0) {\n var carry = 0;\n\n for (i = 0; i < this.length; i++) {\n var newCarry = this.words[i] & carryMask;\n var c = ((this.words[i] | 0) - newCarry) << r;\n this.words[i] = c | carry;\n carry = newCarry >>> (26 - r);\n }\n\n if (carry) {\n this.words[i] = carry;\n this.length++;\n }\n }\n\n if (s !== 0) {\n for (i = this.length - 1; i >= 0; i--) {\n this.words[i + s] = this.words[i];\n }\n\n for (i = 0; i < s; i++) {\n this.words[i] = 0;\n }\n\n this.length += s;\n }\n\n return this.strip();\n };\n\n BN.prototype.ishln = function ishln (bits) {\n // TODO(indutny): implement me\n assert(this.negative === 0);\n return this.iushln(bits);\n };\n\n // Shift-right in-place\n // NOTE: `hint` is a lowest bit before trailing zeroes\n // NOTE: if `extended` is present - it will be filled with destroyed bits\n BN.prototype.iushrn = function iushrn (bits, hint, extended) {\n assert(typeof bits === 'number' && bits >= 0);\n var h;\n if (hint) {\n h = (hint - (hint % 26)) / 26;\n } else {\n h = 0;\n }\n\n var r = bits % 26;\n var s = Math.min((bits - r) / 26, this.length);\n var mask = 0x3ffffff ^ ((0x3ffffff >>> r) << r);\n var maskedWords = extended;\n\n h -= s;\n h = Math.max(0, h);\n\n // Extended mode, copy masked part\n if (maskedWords) {\n for (var i = 0; i < s; i++) {\n maskedWords.words[i] = this.words[i];\n }\n maskedWords.length = s;\n }\n\n if (s === 0) {\n // No-op, we should not move anything at all\n } else if (this.length > s) {\n this.length -= s;\n for (i = 0; i < this.length; i++) {\n this.words[i] = this.words[i + s];\n }\n } else {\n this.words[0] = 0;\n this.length = 1;\n }\n\n var carry = 0;\n for (i = this.length - 1; i >= 0 && (carry !== 0 || i >= h); i--) {\n var word = this.words[i] | 0;\n this.words[i] = (carry << (26 - r)) | (word >>> r);\n carry = word & mask;\n }\n\n // Push carried bits as a mask\n if (maskedWords && carry !== 0) {\n maskedWords.words[maskedWords.length++] = carry;\n }\n\n if (this.length === 0) {\n this.words[0] = 0;\n this.length = 1;\n }\n\n return this.strip();\n };\n\n BN.prototype.ishrn = function ishrn (bits, hint, extended) {\n // TODO(indutny): implement me\n assert(this.negative === 0);\n return this.iushrn(bits, hint, extended);\n };\n\n // Shift-left\n BN.prototype.shln = function shln (bits) {\n return this.clone().ishln(bits);\n };\n\n BN.prototype.ushln = function ushln (bits) {\n return this.clone().iushln(bits);\n };\n\n // Shift-right\n BN.prototype.shrn = function shrn (bits) {\n return this.clone().ishrn(bits);\n };\n\n BN.prototype.ushrn = function ushrn (bits) {\n return this.clone().iushrn(bits);\n };\n\n // Test if n bit is set\n BN.prototype.testn = function testn (bit) {\n assert(typeof bit === 'number' && bit >= 0);\n var r = bit % 26;\n var s = (bit - r) / 26;\n var q = 1 << r;\n\n // Fast case: bit is much higher than all existing words\n if (this.length <= s) return false;\n\n // Check bit and return\n var w = this.words[s];\n\n return !!(w & q);\n };\n\n // Return only lowers bits of number (in-place)\n BN.prototype.imaskn = function imaskn (bits) {\n assert(typeof bits === 'number' && bits >= 0);\n var r = bits % 26;\n var s = (bits - r) / 26;\n\n assert(this.negative === 0, 'imaskn works only with positive numbers');\n\n if (this.length <= s) {\n return this;\n }\n\n if (r !== 0) {\n s++;\n }\n this.length = Math.min(s, this.length);\n\n if (r !== 0) {\n var mask = 0x3ffffff ^ ((0x3ffffff >>> r) << r);\n this.words[this.length - 1] &= mask;\n }\n\n return this.strip();\n };\n\n // Return only lowers bits of number\n BN.prototype.maskn = function maskn (bits) {\n return this.clone().imaskn(bits);\n };\n\n // Add plain number `num` to `this`\n BN.prototype.iaddn = function iaddn (num) {\n assert(typeof num === 'number');\n assert(num < 0x4000000);\n if (num < 0) return this.isubn(-num);\n\n // Possible sign change\n if (this.negative !== 0) {\n if (this.length === 1 && (this.words[0] | 0) < num) {\n this.words[0] = num - (this.words[0] | 0);\n this.negative = 0;\n return this;\n }\n\n this.negative = 0;\n this.isubn(num);\n this.negative = 1;\n return this;\n }\n\n // Add without checks\n return this._iaddn(num);\n };\n\n BN.prototype._iaddn = function _iaddn (num) {\n this.words[0] += num;\n\n // Carry\n for (var i = 0; i < this.length && this.words[i] >= 0x4000000; i++) {\n this.words[i] -= 0x4000000;\n if (i === this.length - 1) {\n this.words[i + 1] = 1;\n } else {\n this.words[i + 1]++;\n }\n }\n this.length = Math.max(this.length, i + 1);\n\n return this;\n };\n\n // Subtract plain number `num` from `this`\n BN.prototype.isubn = function isubn (num) {\n assert(typeof num === 'number');\n assert(num < 0x4000000);\n if (num < 0) return this.iaddn(-num);\n\n if (this.negative !== 0) {\n this.negative = 0;\n this.iaddn(num);\n this.negative = 1;\n return this;\n }\n\n this.words[0] -= num;\n\n if (this.length === 1 && this.words[0] < 0) {\n this.words[0] = -this.words[0];\n this.negative = 1;\n } else {\n // Carry\n for (var i = 0; i < this.length && this.words[i] < 0; i++) {\n this.words[i] += 0x4000000;\n this.words[i + 1] -= 1;\n }\n }\n\n return this.strip();\n };\n\n BN.prototype.addn = function addn (num) {\n return this.clone().iaddn(num);\n };\n\n BN.prototype.subn = function subn (num) {\n return this.clone().isubn(num);\n };\n\n BN.prototype.iabs = function iabs () {\n this.negative = 0;\n\n return this;\n };\n\n BN.prototype.abs = function abs () {\n return this.clone().iabs();\n };\n\n BN.prototype._ishlnsubmul = function _ishlnsubmul (num, mul, shift) {\n var len = num.length + shift;\n var i;\n\n this._expand(len);\n\n var w;\n var carry = 0;\n for (i = 0; i < num.length; i++) {\n w = (this.words[i + shift] | 0) + carry;\n var right = (num.words[i] | 0) * mul;\n w -= right & 0x3ffffff;\n carry = (w >> 26) - ((right / 0x4000000) | 0);\n this.words[i + shift] = w & 0x3ffffff;\n }\n for (; i < this.length - shift; i++) {\n w = (this.words[i + shift] | 0) + carry;\n carry = w >> 26;\n this.words[i + shift] = w & 0x3ffffff;\n }\n\n if (carry === 0) return this.strip();\n\n // Subtraction overflow\n assert(carry === -1);\n carry = 0;\n for (i = 0; i < this.length; i++) {\n w = -(this.words[i] | 0) + carry;\n carry = w >> 26;\n this.words[i] = w & 0x3ffffff;\n }\n this.negative = 1;\n\n return this.strip();\n };\n\n BN.prototype._wordDiv = function _wordDiv (num, mode) {\n var shift = this.length - num.length;\n\n var a = this.clone();\n var b = num;\n\n // Normalize\n var bhi = b.words[b.length - 1] | 0;\n var bhiBits = this._countBits(bhi);\n shift = 26 - bhiBits;\n if (shift !== 0) {\n b = b.ushln(shift);\n a.iushln(shift);\n bhi = b.words[b.length - 1] | 0;\n }\n\n // Initialize quotient\n var m = a.length - b.length;\n var q;\n\n if (mode !== 'mod') {\n q = new BN(null);\n q.length = m + 1;\n q.words = new Array(q.length);\n for (var i = 0; i < q.length; i++) {\n q.words[i] = 0;\n }\n }\n\n var diff = a.clone()._ishlnsubmul(b, 1, m);\n if (diff.negative === 0) {\n a = diff;\n if (q) {\n q.words[m] = 1;\n }\n }\n\n for (var j = m - 1; j >= 0; j--) {\n var qj = (a.words[b.length + j] | 0) * 0x4000000 +\n (a.words[b.length + j - 1] | 0);\n\n // NOTE: (qj / bhi) is (0x3ffffff * 0x4000000 + 0x3ffffff) / 0x2000000 max\n // (0x7ffffff)\n qj = Math.min((qj / bhi) | 0, 0x3ffffff);\n\n a._ishlnsubmul(b, qj, j);\n while (a.negative !== 0) {\n qj--;\n a.negative = 0;\n a._ishlnsubmul(b, 1, j);\n if (!a.isZero()) {\n a.negative ^= 1;\n }\n }\n if (q) {\n q.words[j] = qj;\n }\n }\n if (q) {\n q.strip();\n }\n a.strip();\n\n // Denormalize\n if (mode !== 'div' && shift !== 0) {\n a.iushrn(shift);\n }\n\n return {\n div: q || null,\n mod: a\n };\n };\n\n // NOTE: 1) `mode` can be set to `mod` to request mod only,\n // to `div` to request div only, or be absent to\n // request both div & mod\n // 2) `positive` is true if unsigned mod is requested\n BN.prototype.divmod = function divmod (num, mode, positive) {\n assert(!num.isZero());\n\n if (this.isZero()) {\n return {\n div: new BN(0),\n mod: new BN(0)\n };\n }\n\n var div, mod, res;\n if (this.negative !== 0 && num.negative === 0) {\n res = this.neg().divmod(num, mode);\n\n if (mode !== 'mod') {\n div = res.div.neg();\n }\n\n if (mode !== 'div') {\n mod = res.mod.neg();\n if (positive && mod.negative !== 0) {\n mod.iadd(num);\n }\n }\n\n return {\n div: div,\n mod: mod\n };\n }\n\n if (this.negative === 0 && num.negative !== 0) {\n res = this.divmod(num.neg(), mode);\n\n if (mode !== 'mod') {\n div = res.div.neg();\n }\n\n return {\n div: div,\n mod: res.mod\n };\n }\n\n if ((this.negative & num.negative) !== 0) {\n res = this.neg().divmod(num.neg(), mode);\n\n if (mode !== 'div') {\n mod = res.mod.neg();\n if (positive && mod.negative !== 0) {\n mod.isub(num);\n }\n }\n\n return {\n div: res.div,\n mod: mod\n };\n }\n\n // Both numbers are positive at this point\n\n // Strip both numbers to approximate shift value\n if (num.length > this.length || this.cmp(num) < 0) {\n return {\n div: new BN(0),\n mod: this\n };\n }\n\n // Very short reduction\n if (num.length === 1) {\n if (mode === 'div') {\n return {\n div: this.divn(num.words[0]),\n mod: null\n };\n }\n\n if (mode === 'mod') {\n return {\n div: null,\n mod: new BN(this.modn(num.words[0]))\n };\n }\n\n return {\n div: this.divn(num.words[0]),\n mod: new BN(this.modn(num.words[0]))\n };\n }\n\n return this._wordDiv(num, mode);\n };\n\n // Find `this` / `num`\n BN.prototype.div = function div (num) {\n return this.divmod(num, 'div', false).div;\n };\n\n // Find `this` % `num`\n BN.prototype.mod = function mod (num) {\n return this.divmod(num, 'mod', false).mod;\n };\n\n BN.prototype.umod = function umod (num) {\n return this.divmod(num, 'mod', true).mod;\n };\n\n // Find Round(`this` / `num`)\n BN.prototype.divRound = function divRound (num) {\n var dm = this.divmod(num);\n\n // Fast case - exact division\n if (dm.mod.isZero()) return dm.div;\n\n var mod = dm.div.negative !== 0 ? dm.mod.isub(num) : dm.mod;\n\n var half = num.ushrn(1);\n var r2 = num.andln(1);\n var cmp = mod.cmp(half);\n\n // Round down\n if (cmp < 0 || r2 === 1 && cmp === 0) return dm.div;\n\n // Round up\n return dm.div.negative !== 0 ? dm.div.isubn(1) : dm.div.iaddn(1);\n };\n\n BN.prototype.modn = function modn (num) {\n assert(num <= 0x3ffffff);\n var p = (1 << 26) % num;\n\n var acc = 0;\n for (var i = this.length - 1; i >= 0; i--) {\n acc = (p * acc + (this.words[i] | 0)) % num;\n }\n\n return acc;\n };\n\n // In-place division by number\n BN.prototype.idivn = function idivn (num) {\n assert(num <= 0x3ffffff);\n\n var carry = 0;\n for (var i = this.length - 1; i >= 0; i--) {\n var w = (this.words[i] | 0) + carry * 0x4000000;\n this.words[i] = (w / num) | 0;\n carry = w % num;\n }\n\n return this.strip();\n };\n\n BN.prototype.divn = function divn (num) {\n return this.clone().idivn(num);\n };\n\n BN.prototype.egcd = function egcd (p) {\n assert(p.negative === 0);\n assert(!p.isZero());\n\n var x = this;\n var y = p.clone();\n\n if (x.negative !== 0) {\n x = x.umod(p);\n } else {\n x = x.clone();\n }\n\n // A * x + B * y = x\n var A = new BN(1);\n var B = new BN(0);\n\n // C * x + D * y = y\n var C = new BN(0);\n var D = new BN(1);\n\n var g = 0;\n\n while (x.isEven() && y.isEven()) {\n x.iushrn(1);\n y.iushrn(1);\n ++g;\n }\n\n var yp = y.clone();\n var xp = x.clone();\n\n while (!x.isZero()) {\n for (var i = 0, im = 1; (x.words[0] & im) === 0 && i < 26; ++i, im <<= 1);\n if (i > 0) {\n x.iushrn(i);\n while (i-- > 0) {\n if (A.isOdd() || B.isOdd()) {\n A.iadd(yp);\n B.isub(xp);\n }\n\n A.iushrn(1);\n B.iushrn(1);\n }\n }\n\n for (var j = 0, jm = 1; (y.words[0] & jm) === 0 && j < 26; ++j, jm <<= 1);\n if (j > 0) {\n y.iushrn(j);\n while (j-- > 0) {\n if (C.isOdd() || D.isOdd()) {\n C.iadd(yp);\n D.isub(xp);\n }\n\n C.iushrn(1);\n D.iushrn(1);\n }\n }\n\n if (x.cmp(y) >= 0) {\n x.isub(y);\n A.isub(C);\n B.isub(D);\n } else {\n y.isub(x);\n C.isub(A);\n D.isub(B);\n }\n }\n\n return {\n a: C,\n b: D,\n gcd: y.iushln(g)\n };\n };\n\n // This is reduced incarnation of the binary EEA\n // above, designated to invert members of the\n // _prime_ fields F(p) at a maximal speed\n BN.prototype._invmp = function _invmp (p) {\n assert(p.negative === 0);\n assert(!p.isZero());\n\n var a = this;\n var b = p.clone();\n\n if (a.negative !== 0) {\n a = a.umod(p);\n } else {\n a = a.clone();\n }\n\n var x1 = new BN(1);\n var x2 = new BN(0);\n\n var delta = b.clone();\n\n while (a.cmpn(1) > 0 && b.cmpn(1) > 0) {\n for (var i = 0, im = 1; (a.words[0] & im) === 0 && i < 26; ++i, im <<= 1);\n if (i > 0) {\n a.iushrn(i);\n while (i-- > 0) {\n if (x1.isOdd()) {\n x1.iadd(delta);\n }\n\n x1.iushrn(1);\n }\n }\n\n for (var j = 0, jm = 1; (b.words[0] & jm) === 0 && j < 26; ++j, jm <<= 1);\n if (j > 0) {\n b.iushrn(j);\n while (j-- > 0) {\n if (x2.isOdd()) {\n x2.iadd(delta);\n }\n\n x2.iushrn(1);\n }\n }\n\n if (a.cmp(b) >= 0) {\n a.isub(b);\n x1.isub(x2);\n } else {\n b.isub(a);\n x2.isub(x1);\n }\n }\n\n var res;\n if (a.cmpn(1) === 0) {\n res = x1;\n } else {\n res = x2;\n }\n\n if (res.cmpn(0) < 0) {\n res.iadd(p);\n }\n\n return res;\n };\n\n BN.prototype.gcd = function gcd (num) {\n if (this.isZero()) return num.abs();\n if (num.isZero()) return this.abs();\n\n var a = this.clone();\n var b = num.clone();\n a.negative = 0;\n b.negative = 0;\n\n // Remove common factor of two\n for (var shift = 0; a.isEven() && b.isEven(); shift++) {\n a.iushrn(1);\n b.iushrn(1);\n }\n\n do {\n while (a.isEven()) {\n a.iushrn(1);\n }\n while (b.isEven()) {\n b.iushrn(1);\n }\n\n var r = a.cmp(b);\n if (r < 0) {\n // Swap `a` and `b` to make `a` always bigger than `b`\n var t = a;\n a = b;\n b = t;\n } else if (r === 0 || b.cmpn(1) === 0) {\n break;\n }\n\n a.isub(b);\n } while (true);\n\n return b.iushln(shift);\n };\n\n // Invert number in the field F(num)\n BN.prototype.invm = function invm (num) {\n return this.egcd(num).a.umod(num);\n };\n\n BN.prototype.isEven = function isEven () {\n return (this.words[0] & 1) === 0;\n };\n\n BN.prototype.isOdd = function isOdd () {\n return (this.words[0] & 1) === 1;\n };\n\n // And first word and num\n BN.prototype.andln = function andln (num) {\n return this.words[0] & num;\n };\n\n // Increment at the bit position in-line\n BN.prototype.bincn = function bincn (bit) {\n assert(typeof bit === 'number');\n var r = bit % 26;\n var s = (bit - r) / 26;\n var q = 1 << r;\n\n // Fast case: bit is much higher than all existing words\n if (this.length <= s) {\n this._expand(s + 1);\n this.words[s] |= q;\n return this;\n }\n\n // Add bit and propagate, if needed\n var carry = q;\n for (var i = s; carry !== 0 && i < this.length; i++) {\n var w = this.words[i] | 0;\n w += carry;\n carry = w >>> 26;\n w &= 0x3ffffff;\n this.words[i] = w;\n }\n if (carry !== 0) {\n this.words[i] = carry;\n this.length++;\n }\n return this;\n };\n\n BN.prototype.isZero = function isZero () {\n return this.length === 1 && this.words[0] === 0;\n };\n\n BN.prototype.cmpn = function cmpn (num) {\n var negative = num < 0;\n\n if (this.negative !== 0 && !negative) return -1;\n if (this.negative === 0 && negative) return 1;\n\n this.strip();\n\n var res;\n if (this.length > 1) {\n res = 1;\n } else {\n if (negative) {\n num = -num;\n }\n\n assert(num <= 0x3ffffff, 'Number is too big');\n\n var w = this.words[0] | 0;\n res = w === num ? 0 : w < num ? -1 : 1;\n }\n if (this.negative !== 0) return -res | 0;\n return res;\n };\n\n // Compare two numbers and return:\n // 1 - if `this` > `num`\n // 0 - if `this` == `num`\n // -1 - if `this` < `num`\n BN.prototype.cmp = function cmp (num) {\n if (this.negative !== 0 && num.negative === 0) return -1;\n if (this.negative === 0 && num.negative !== 0) return 1;\n\n var res = this.ucmp(num);\n if (this.negative !== 0) return -res | 0;\n return res;\n };\n\n // Unsigned comparison\n BN.prototype.ucmp = function ucmp (num) {\n // At this point both numbers have the same sign\n if (this.length > num.length) return 1;\n if (this.length < num.length) return -1;\n\n var res = 0;\n for (var i = this.length - 1; i >= 0; i--) {\n var a = this.words[i] | 0;\n var b = num.words[i] | 0;\n\n if (a === b) continue;\n if (a < b) {\n res = -1;\n } else if (a > b) {\n res = 1;\n }\n break;\n }\n return res;\n };\n\n BN.prototype.gtn = function gtn (num) {\n return this.cmpn(num) === 1;\n };\n\n BN.prototype.gt = function gt (num) {\n return this.cmp(num) === 1;\n };\n\n BN.prototype.gten = function gten (num) {\n return this.cmpn(num) >= 0;\n };\n\n BN.prototype.gte = function gte (num) {\n return this.cmp(num) >= 0;\n };\n\n BN.prototype.ltn = function ltn (num) {\n return this.cmpn(num) === -1;\n };\n\n BN.prototype.lt = function lt (num) {\n return this.cmp(num) === -1;\n };\n\n BN.prototype.lten = function lten (num) {\n return this.cmpn(num) <= 0;\n };\n\n BN.prototype.lte = function lte (num) {\n return this.cmp(num) <= 0;\n };\n\n BN.prototype.eqn = function eqn (num) {\n return this.cmpn(num) === 0;\n };\n\n BN.prototype.eq = function eq (num) {\n return this.cmp(num) === 0;\n };\n\n //\n // A reduce context, could be using montgomery or something better, depending\n // on the `m` itself.\n //\n BN.red = function red (num) {\n return new Red(num);\n };\n\n BN.prototype.toRed = function toRed (ctx) {\n assert(!this.red, 'Already a number in reduction context');\n assert(this.negative === 0, 'red works only with positives');\n return ctx.convertTo(this)._forceRed(ctx);\n };\n\n BN.prototype.fromRed = function fromRed () {\n assert(this.red, 'fromRed works only with numbers in reduction context');\n return this.red.convertFrom(this);\n };\n\n BN.prototype._forceRed = function _forceRed (ctx) {\n this.red = ctx;\n return this;\n };\n\n BN.prototype.forceRed = function forceRed (ctx) {\n assert(!this.red, 'Already a number in reduction context');\n return this._forceRed(ctx);\n };\n\n BN.prototype.redAdd = function redAdd (num) {\n assert(this.red, 'redAdd works only with red numbers');\n return this.red.add(this, num);\n };\n\n BN.prototype.redIAdd = function redIAdd (num) {\n assert(this.red, 'redIAdd works only with red numbers');\n return this.red.iadd(this, num);\n };\n\n BN.prototype.redSub = function redSub (num) {\n assert(this.red, 'redSub works only with red numbers');\n return this.red.sub(this, num);\n };\n\n BN.prototype.redISub = function redISub (num) {\n assert(this.red, 'redISub works only with red numbers');\n return this.red.isub(this, num);\n };\n\n BN.prototype.redShl = function redShl (num) {\n assert(this.red, 'redShl works only with red numbers');\n return this.red.shl(this, num);\n };\n\n BN.prototype.redMul = function redMul (num) {\n assert(this.red, 'redMul works only with red numbers');\n this.red._verify2(this, num);\n return this.red.mul(this, num);\n };\n\n BN.prototype.redIMul = function redIMul (num) {\n assert(this.red, 'redMul works only with red numbers');\n this.red._verify2(this, num);\n return this.red.imul(this, num);\n };\n\n BN.prototype.redSqr = function redSqr () {\n assert(this.red, 'redSqr works only with red numbers');\n this.red._verify1(this);\n return this.red.sqr(this);\n };\n\n BN.prototype.redISqr = function redISqr () {\n assert(this.red, 'redISqr works only with red numbers');\n this.red._verify1(this);\n return this.red.isqr(this);\n };\n\n // Square root over p\n BN.prototype.redSqrt = function redSqrt () {\n assert(this.red, 'redSqrt works only with red numbers');\n this.red._verify1(this);\n return this.red.sqrt(this);\n };\n\n BN.prototype.redInvm = function redInvm () {\n assert(this.red, 'redInvm works only with red numbers');\n this.red._verify1(this);\n return this.red.invm(this);\n };\n\n // Return negative clone of `this` % `red modulo`\n BN.prototype.redNeg = function redNeg () {\n assert(this.red, 'redNeg works only with red numbers');\n this.red._verify1(this);\n return this.red.neg(this);\n };\n\n BN.prototype.redPow = function redPow (num) {\n assert(this.red && !num.red, 'redPow(normalNum)');\n this.red._verify1(this);\n return this.red.pow(this, num);\n };\n\n // Prime numbers with efficient reduction\n var primes = {\n k256: null,\n p224: null,\n p192: null,\n p25519: null\n };\n\n // Pseudo-Mersenne prime\n function MPrime (name, p) {\n // P = 2 ^ N - K\n this.name = name;\n this.p = new BN(p, 16);\n this.n = this.p.bitLength();\n this.k = new BN(1).iushln(this.n).isub(this.p);\n\n this.tmp = this._tmp();\n }\n\n MPrime.prototype._tmp = function _tmp () {\n var tmp = new BN(null);\n tmp.words = new Array(Math.ceil(this.n / 13));\n return tmp;\n };\n\n MPrime.prototype.ireduce = function ireduce (num) {\n // Assumes that `num` is less than `P^2`\n // num = HI * (2 ^ N - K) + HI * K + LO = HI * K + LO (mod P)\n var r = num;\n var rlen;\n\n do {\n this.split(r, this.tmp);\n r = this.imulK(r);\n r = r.iadd(this.tmp);\n rlen = r.bitLength();\n } while (rlen > this.n);\n\n var cmp = rlen < this.n ? -1 : r.ucmp(this.p);\n if (cmp === 0) {\n r.words[0] = 0;\n r.length = 1;\n } else if (cmp > 0) {\n r.isub(this.p);\n } else {\n r.strip();\n }\n\n return r;\n };\n\n MPrime.prototype.split = function split (input, out) {\n input.iushrn(this.n, 0, out);\n };\n\n MPrime.prototype.imulK = function imulK (num) {\n return num.imul(this.k);\n };\n\n function K256 () {\n MPrime.call(\n this,\n 'k256',\n 'ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe fffffc2f');\n }\n inherits(K256, MPrime);\n\n K256.prototype.split = function split (input, output) {\n // 256 = 9 * 26 + 22\n var mask = 0x3fffff;\n\n var outLen = Math.min(input.length, 9);\n for (var i = 0; i < outLen; i++) {\n output.words[i] = input.words[i];\n }\n output.length = outLen;\n\n if (input.length <= 9) {\n input.words[0] = 0;\n input.length = 1;\n return;\n }\n\n // Shift by 9 limbs\n var prev = input.words[9];\n output.words[output.length++] = prev & mask;\n\n for (i = 10; i < input.length; i++) {\n var next = input.words[i] | 0;\n input.words[i - 10] = ((next & mask) << 4) | (prev >>> 22);\n prev = next;\n }\n prev >>>= 22;\n input.words[i - 10] = prev;\n if (prev === 0 && input.length > 10) {\n input.length -= 10;\n } else {\n input.length -= 9;\n }\n };\n\n K256.prototype.imulK = function imulK (num) {\n // K = 0x1000003d1 = [ 0x40, 0x3d1 ]\n num.words[num.length] = 0;\n num.words[num.length + 1] = 0;\n num.length += 2;\n\n // bounded at: 0x40 * 0x3ffffff + 0x3d0 = 0x100000390\n var lo = 0;\n for (var i = 0; i < num.length; i++) {\n var w = num.words[i] | 0;\n lo += w * 0x3d1;\n num.words[i] = lo & 0x3ffffff;\n lo = w * 0x40 + ((lo / 0x4000000) | 0);\n }\n\n // Fast length reduction\n if (num.words[num.length - 1] === 0) {\n num.length--;\n if (num.words[num.length - 1] === 0) {\n num.length--;\n }\n }\n return num;\n };\n\n function P224 () {\n MPrime.call(\n this,\n 'p224',\n 'ffffffff ffffffff ffffffff ffffffff 00000000 00000000 00000001');\n }\n inherits(P224, MPrime);\n\n function P192 () {\n MPrime.call(\n this,\n 'p192',\n 'ffffffff ffffffff ffffffff fffffffe ffffffff ffffffff');\n }\n inherits(P192, MPrime);\n\n function P25519 () {\n // 2 ^ 255 - 19\n MPrime.call(\n this,\n '25519',\n '7fffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffed');\n }\n inherits(P25519, MPrime);\n\n P25519.prototype.imulK = function imulK (num) {\n // K = 0x13\n var carry = 0;\n for (var i = 0; i < num.length; i++) {\n var hi = (num.words[i] | 0) * 0x13 + carry;\n var lo = hi & 0x3ffffff;\n hi >>>= 26;\n\n num.words[i] = lo;\n carry = hi;\n }\n if (carry !== 0) {\n num.words[num.length++] = carry;\n }\n return num;\n };\n\n // Exported mostly for testing purposes, use plain name instead\n BN._prime = function prime (name) {\n // Cached version of prime\n if (primes[name]) return primes[name];\n\n var prime;\n if (name === 'k256') {\n prime = new K256();\n } else if (name === 'p224') {\n prime = new P224();\n } else if (name === 'p192') {\n prime = new P192();\n } else if (name === 'p25519') {\n prime = new P25519();\n } else {\n throw new Error('Unknown prime ' + name);\n }\n primes[name] = prime;\n\n return prime;\n };\n\n //\n // Base reduction engine\n //\n function Red (m) {\n if (typeof m === 'string') {\n var prime = BN._prime(m);\n this.m = prime.p;\n this.prime = prime;\n } else {\n assert(m.gtn(1), 'modulus must be greater than 1');\n this.m = m;\n this.prime = null;\n }\n }\n\n Red.prototype._verify1 = function _verify1 (a) {\n assert(a.negative === 0, 'red works only with positives');\n assert(a.red, 'red works only with red numbers');\n };\n\n Red.prototype._verify2 = function _verify2 (a, b) {\n assert((a.negative | b.negative) === 0, 'red works only with positives');\n assert(a.red && a.red === b.red,\n 'red works only with red numbers');\n };\n\n Red.prototype.imod = function imod (a) {\n if (this.prime) return this.prime.ireduce(a)._forceRed(this);\n return a.umod(this.m)._forceRed(this);\n };\n\n Red.prototype.neg = function neg (a) {\n if (a.isZero()) {\n return a.clone();\n }\n\n return this.m.sub(a)._forceRed(this);\n };\n\n Red.prototype.add = function add (a, b) {\n this._verify2(a, b);\n\n var res = a.add(b);\n if (res.cmp(this.m) >= 0) {\n res.isub(this.m);\n }\n return res._forceRed(this);\n };\n\n Red.prototype.iadd = function iadd (a, b) {\n this._verify2(a, b);\n\n var res = a.iadd(b);\n if (res.cmp(this.m) >= 0) {\n res.isub(this.m);\n }\n return res;\n };\n\n Red.prototype.sub = function sub (a, b) {\n this._verify2(a, b);\n\n var res = a.sub(b);\n if (res.cmpn(0) < 0) {\n res.iadd(this.m);\n }\n return res._forceRed(this);\n };\n\n Red.prototype.isub = function isub (a, b) {\n this._verify2(a, b);\n\n var res = a.isub(b);\n if (res.cmpn(0) < 0) {\n res.iadd(this.m);\n }\n return res;\n };\n\n Red.prototype.shl = function shl (a, num) {\n this._verify1(a);\n return this.imod(a.ushln(num));\n };\n\n Red.prototype.imul = function imul (a, b) {\n this._verify2(a, b);\n return this.imod(a.imul(b));\n };\n\n Red.prototype.mul = function mul (a, b) {\n this._verify2(a, b);\n return this.imod(a.mul(b));\n };\n\n Red.prototype.isqr = function isqr (a) {\n return this.imul(a, a.clone());\n };\n\n Red.prototype.sqr = function sqr (a) {\n return this.mul(a, a);\n };\n\n Red.prototype.sqrt = function sqrt (a) {\n if (a.isZero()) return a.clone();\n\n var mod3 = this.m.andln(3);\n assert(mod3 % 2 === 1);\n\n // Fast case\n if (mod3 === 3) {\n var pow = this.m.add(new BN(1)).iushrn(2);\n return this.pow(a, pow);\n }\n\n // Tonelli-Shanks algorithm (Totally unoptimized and slow)\n //\n // Find Q and S, that Q * 2 ^ S = (P - 1)\n var q = this.m.subn(1);\n var s = 0;\n while (!q.isZero() && q.andln(1) === 0) {\n s++;\n q.iushrn(1);\n }\n assert(!q.isZero());\n\n var one = new BN(1).toRed(this);\n var nOne = one.redNeg();\n\n // Find quadratic non-residue\n // NOTE: Max is such because of generalized Riemann hypothesis.\n var lpow = this.m.subn(1).iushrn(1);\n var z = this.m.bitLength();\n z = new BN(2 * z * z).toRed(this);\n\n while (this.pow(z, lpow).cmp(nOne) !== 0) {\n z.redIAdd(nOne);\n }\n\n var c = this.pow(z, q);\n var r = this.pow(a, q.addn(1).iushrn(1));\n var t = this.pow(a, q);\n var m = s;\n while (t.cmp(one) !== 0) {\n var tmp = t;\n for (var i = 0; tmp.cmp(one) !== 0; i++) {\n tmp = tmp.redSqr();\n }\n assert(i < m);\n var b = this.pow(c, new BN(1).iushln(m - i - 1));\n\n r = r.redMul(b);\n c = b.redSqr();\n t = t.redMul(c);\n m = i;\n }\n\n return r;\n };\n\n Red.prototype.invm = function invm (a) {\n var inv = a._invmp(this.m);\n if (inv.negative !== 0) {\n inv.negative = 0;\n return this.imod(inv).redNeg();\n } else {\n return this.imod(inv);\n }\n };\n\n Red.prototype.pow = function pow (a, num) {\n if (num.isZero()) return new BN(1).toRed(this);\n if (num.cmpn(1) === 0) return a.clone();\n\n var windowSize = 4;\n var wnd = new Array(1 << windowSize);\n wnd[0] = new BN(1).toRed(this);\n wnd[1] = a;\n for (var i = 2; i < wnd.length; i++) {\n wnd[i] = this.mul(wnd[i - 1], a);\n }\n\n var res = wnd[0];\n var current = 0;\n var currentLen = 0;\n var start = num.bitLength() % 26;\n if (start === 0) {\n start = 26;\n }\n\n for (i = num.length - 1; i >= 0; i--) {\n var word = num.words[i];\n for (var j = start - 1; j >= 0; j--) {\n var bit = (word >> j) & 1;\n if (res !== wnd[0]) {\n res = this.sqr(res);\n }\n\n if (bit === 0 && current === 0) {\n currentLen = 0;\n continue;\n }\n\n current <<= 1;\n current |= bit;\n currentLen++;\n if (currentLen !== windowSize && (i !== 0 || j !== 0)) continue;\n\n res = this.mul(res, wnd[current]);\n currentLen = 0;\n current = 0;\n }\n start = 26;\n }\n\n return res;\n };\n\n Red.prototype.convertTo = function convertTo (num) {\n var r = num.umod(this.m);\n\n return r === num ? r.clone() : r;\n };\n\n Red.prototype.convertFrom = function convertFrom (num) {\n var res = num.clone();\n res.red = null;\n return res;\n };\n\n //\n // Montgomery method engine\n //\n\n BN.mont = function mont (num) {\n return new Mont(num);\n };\n\n function Mont (m) {\n Red.call(this, m);\n\n this.shift = this.m.bitLength();\n if (this.shift % 26 !== 0) {\n this.shift += 26 - (this.shift % 26);\n }\n\n this.r = new BN(1).iushln(this.shift);\n this.r2 = this.imod(this.r.sqr());\n this.rinv = this.r._invmp(this.m);\n\n this.minv = this.rinv.mul(this.r).isubn(1).div(this.m);\n this.minv = this.minv.umod(this.r);\n this.minv = this.r.sub(this.minv);\n }\n inherits(Mont, Red);\n\n Mont.prototype.convertTo = function convertTo (num) {\n return this.imod(num.ushln(this.shift));\n };\n\n Mont.prototype.convertFrom = function convertFrom (num) {\n var r = this.imod(num.mul(this.rinv));\n r.red = null;\n return r;\n };\n\n Mont.prototype.imul = function imul (a, b) {\n if (a.isZero() || b.isZero()) {\n a.words[0] = 0;\n a.length = 1;\n return a;\n }\n\n var t = a.imul(b);\n var c = t.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m);\n var u = t.isub(c).iushrn(this.shift);\n var res = u;\n\n if (u.cmp(this.m) >= 0) {\n res = u.isub(this.m);\n } else if (u.cmpn(0) < 0) {\n res = u.iadd(this.m);\n }\n\n return res._forceRed(this);\n };\n\n Mont.prototype.mul = function mul (a, b) {\n if (a.isZero() || b.isZero()) return new BN(0)._forceRed(this);\n\n var t = a.mul(b);\n var c = t.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m);\n var u = t.isub(c).iushrn(this.shift);\n var res = u;\n if (u.cmp(this.m) >= 0) {\n res = u.isub(this.m);\n } else if (u.cmpn(0) < 0) {\n res = u.iadd(this.m);\n }\n\n return res._forceRed(this);\n };\n\n Mont.prototype.invm = function invm (a) {\n // (AR)^-1 * R^2 = (A^-1 * R^-1) * R^2 = A^-1 * R\n var res = this.imod(a._invmp(this.m).mul(this.r2));\n return res._forceRed(this);\n };\n})( false || module, this);\n\n/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(/*! ./../../webpack/buildin/module.js */ \"./node_modules/webpack/buildin/module.js\")(module)))\n\n//# sourceURL=webpack://mjml/./node_modules/bn.js/lib/bn.js?")},"./node_modules/boolbase/index.js":/*!****************************************!*\ - !*** ./node_modules/boolbase/index.js ***! - \****************************************/ -/*! no static exports found */ -function(module,exports){eval("module.exports = {\n\ttrueFunc: function trueFunc(){\n\t\treturn true;\n\t},\n\tfalseFunc: function falseFunc(){\n\t\treturn false;\n\t}\n};\n\n//# sourceURL=webpack://mjml/./node_modules/boolbase/index.js?")},"./node_modules/brorand/index.js":/*!***************************************!*\ - !*** ./node_modules/brorand/index.js ***! - \***************************************/ -/*! no static exports found */ -function(module,exports,__webpack_require__){eval("var r;\n\nmodule.exports = function rand(len) {\n if (!r)\n r = new Rand(null);\n\n return r.generate(len);\n};\n\nfunction Rand(rand) {\n this.rand = rand;\n}\nmodule.exports.Rand = Rand;\n\nRand.prototype.generate = function generate(len) {\n return this._rand(len);\n};\n\n// Emulate crypto API using randy\nRand.prototype._rand = function _rand(n) {\n if (this.rand.getBytes)\n return this.rand.getBytes(n);\n\n var res = new Uint8Array(n);\n for (var i = 0; i < res.length; i++)\n res[i] = this.rand.getByte();\n return res;\n};\n\nif (typeof self === 'object') {\n if (self.crypto && self.crypto.getRandomValues) {\n // Modern browsers\n Rand.prototype._rand = function _rand(n) {\n var arr = new Uint8Array(n);\n self.crypto.getRandomValues(arr);\n return arr;\n };\n } else if (self.msCrypto && self.msCrypto.getRandomValues) {\n // IE\n Rand.prototype._rand = function _rand(n) {\n var arr = new Uint8Array(n);\n self.msCrypto.getRandomValues(arr);\n return arr;\n };\n\n // Safari's WebWorkers do not have `crypto`\n } else if (typeof window === 'object') {\n // Old junk\n Rand.prototype._rand = function() {\n throw new Error('Not implemented yet');\n };\n }\n} else {\n // Node.js or Web worker with no crypto support\n try {\n var crypto = __webpack_require__(/*! crypto */ 7);\n if (typeof crypto.randomBytes !== 'function')\n throw new Error('Not supported');\n\n Rand.prototype._rand = function _rand(n) {\n return crypto.randomBytes(n);\n };\n } catch (e) {\n }\n}\n\n\n//# sourceURL=webpack://mjml/./node_modules/brorand/index.js?")},"./node_modules/browserify-aes/aes.js":/*!********************************************!*\ - !*** ./node_modules/browserify-aes/aes.js ***! - \********************************************/ -/*! no static exports found */ -function(module,exports,__webpack_require__){eval('// based on the aes implimentation in triple sec\n// https://github.com/keybase/triplesec\n// which is in turn based on the one from crypto-js\n// https://code.google.com/p/crypto-js/\n\nvar Buffer = __webpack_require__(/*! safe-buffer */ "./node_modules/safe-buffer/index.js").Buffer\n\nfunction asUInt32Array (buf) {\n if (!Buffer.isBuffer(buf)) buf = Buffer.from(buf)\n\n var len = (buf.length / 4) | 0\n var out = new Array(len)\n\n for (var i = 0; i < len; i++) {\n out[i] = buf.readUInt32BE(i * 4)\n }\n\n return out\n}\n\nfunction scrubVec (v) {\n for (var i = 0; i < v.length; v++) {\n v[i] = 0\n }\n}\n\nfunction cryptBlock (M, keySchedule, SUB_MIX, SBOX, nRounds) {\n var SUB_MIX0 = SUB_MIX[0]\n var SUB_MIX1 = SUB_MIX[1]\n var SUB_MIX2 = SUB_MIX[2]\n var SUB_MIX3 = SUB_MIX[3]\n\n var s0 = M[0] ^ keySchedule[0]\n var s1 = M[1] ^ keySchedule[1]\n var s2 = M[2] ^ keySchedule[2]\n var s3 = M[3] ^ keySchedule[3]\n var t0, t1, t2, t3\n var ksRow = 4\n\n for (var round = 1; round < nRounds; round++) {\n t0 = SUB_MIX0[s0 >>> 24] ^ SUB_MIX1[(s1 >>> 16) & 0xff] ^ SUB_MIX2[(s2 >>> 8) & 0xff] ^ SUB_MIX3[s3 & 0xff] ^ keySchedule[ksRow++]\n t1 = SUB_MIX0[s1 >>> 24] ^ SUB_MIX1[(s2 >>> 16) & 0xff] ^ SUB_MIX2[(s3 >>> 8) & 0xff] ^ SUB_MIX3[s0 & 0xff] ^ keySchedule[ksRow++]\n t2 = SUB_MIX0[s2 >>> 24] ^ SUB_MIX1[(s3 >>> 16) & 0xff] ^ SUB_MIX2[(s0 >>> 8) & 0xff] ^ SUB_MIX3[s1 & 0xff] ^ keySchedule[ksRow++]\n t3 = SUB_MIX0[s3 >>> 24] ^ SUB_MIX1[(s0 >>> 16) & 0xff] ^ SUB_MIX2[(s1 >>> 8) & 0xff] ^ SUB_MIX3[s2 & 0xff] ^ keySchedule[ksRow++]\n s0 = t0\n s1 = t1\n s2 = t2\n s3 = t3\n }\n\n t0 = ((SBOX[s0 >>> 24] << 24) | (SBOX[(s1 >>> 16) & 0xff] << 16) | (SBOX[(s2 >>> 8) & 0xff] << 8) | SBOX[s3 & 0xff]) ^ keySchedule[ksRow++]\n t1 = ((SBOX[s1 >>> 24] << 24) | (SBOX[(s2 >>> 16) & 0xff] << 16) | (SBOX[(s3 >>> 8) & 0xff] << 8) | SBOX[s0 & 0xff]) ^ keySchedule[ksRow++]\n t2 = ((SBOX[s2 >>> 24] << 24) | (SBOX[(s3 >>> 16) & 0xff] << 16) | (SBOX[(s0 >>> 8) & 0xff] << 8) | SBOX[s1 & 0xff]) ^ keySchedule[ksRow++]\n t3 = ((SBOX[s3 >>> 24] << 24) | (SBOX[(s0 >>> 16) & 0xff] << 16) | (SBOX[(s1 >>> 8) & 0xff] << 8) | SBOX[s2 & 0xff]) ^ keySchedule[ksRow++]\n t0 = t0 >>> 0\n t1 = t1 >>> 0\n t2 = t2 >>> 0\n t3 = t3 >>> 0\n\n return [t0, t1, t2, t3]\n}\n\n// AES constants\nvar RCON = [0x00, 0x01, 0x02, 0x04, 0x08, 0x10, 0x20, 0x40, 0x80, 0x1b, 0x36]\nvar G = (function () {\n // Compute double table\n var d = new Array(256)\n for (var j = 0; j < 256; j++) {\n if (j < 128) {\n d[j] = j << 1\n } else {\n d[j] = (j << 1) ^ 0x11b\n }\n }\n\n var SBOX = []\n var INV_SBOX = []\n var SUB_MIX = [[], [], [], []]\n var INV_SUB_MIX = [[], [], [], []]\n\n // Walk GF(2^8)\n var x = 0\n var xi = 0\n for (var i = 0; i < 256; ++i) {\n // Compute sbox\n var sx = xi ^ (xi << 1) ^ (xi << 2) ^ (xi << 3) ^ (xi << 4)\n sx = (sx >>> 8) ^ (sx & 0xff) ^ 0x63\n SBOX[x] = sx\n INV_SBOX[sx] = x\n\n // Compute multiplication\n var x2 = d[x]\n var x4 = d[x2]\n var x8 = d[x4]\n\n // Compute sub bytes, mix columns tables\n var t = (d[sx] * 0x101) ^ (sx * 0x1010100)\n SUB_MIX[0][x] = (t << 24) | (t >>> 8)\n SUB_MIX[1][x] = (t << 16) | (t >>> 16)\n SUB_MIX[2][x] = (t << 8) | (t >>> 24)\n SUB_MIX[3][x] = t\n\n // Compute inv sub bytes, inv mix columns tables\n t = (x8 * 0x1010101) ^ (x4 * 0x10001) ^ (x2 * 0x101) ^ (x * 0x1010100)\n INV_SUB_MIX[0][sx] = (t << 24) | (t >>> 8)\n INV_SUB_MIX[1][sx] = (t << 16) | (t >>> 16)\n INV_SUB_MIX[2][sx] = (t << 8) | (t >>> 24)\n INV_SUB_MIX[3][sx] = t\n\n if (x === 0) {\n x = xi = 1\n } else {\n x = x2 ^ d[d[d[x8 ^ x2]]]\n xi ^= d[d[xi]]\n }\n }\n\n return {\n SBOX: SBOX,\n INV_SBOX: INV_SBOX,\n SUB_MIX: SUB_MIX,\n INV_SUB_MIX: INV_SUB_MIX\n }\n})()\n\nfunction AES (key) {\n this._key = asUInt32Array(key)\n this._reset()\n}\n\nAES.blockSize = 4 * 4\nAES.keySize = 256 / 8\nAES.prototype.blockSize = AES.blockSize\nAES.prototype.keySize = AES.keySize\nAES.prototype._reset = function () {\n var keyWords = this._key\n var keySize = keyWords.length\n var nRounds = keySize + 6\n var ksRows = (nRounds + 1) * 4\n\n var keySchedule = []\n for (var k = 0; k < keySize; k++) {\n keySchedule[k] = keyWords[k]\n }\n\n for (k = keySize; k < ksRows; k++) {\n var t = keySchedule[k - 1]\n\n if (k % keySize === 0) {\n t = (t << 8) | (t >>> 24)\n t =\n (G.SBOX[t >>> 24] << 24) |\n (G.SBOX[(t >>> 16) & 0xff] << 16) |\n (G.SBOX[(t >>> 8) & 0xff] << 8) |\n (G.SBOX[t & 0xff])\n\n t ^= RCON[(k / keySize) | 0] << 24\n } else if (keySize > 6 && k % keySize === 4) {\n t =\n (G.SBOX[t >>> 24] << 24) |\n (G.SBOX[(t >>> 16) & 0xff] << 16) |\n (G.SBOX[(t >>> 8) & 0xff] << 8) |\n (G.SBOX[t & 0xff])\n }\n\n keySchedule[k] = keySchedule[k - keySize] ^ t\n }\n\n var invKeySchedule = []\n for (var ik = 0; ik < ksRows; ik++) {\n var ksR = ksRows - ik\n var tt = keySchedule[ksR - (ik % 4 ? 0 : 4)]\n\n if (ik < 4 || ksR <= 4) {\n invKeySchedule[ik] = tt\n } else {\n invKeySchedule[ik] =\n G.INV_SUB_MIX[0][G.SBOX[tt >>> 24]] ^\n G.INV_SUB_MIX[1][G.SBOX[(tt >>> 16) & 0xff]] ^\n G.INV_SUB_MIX[2][G.SBOX[(tt >>> 8) & 0xff]] ^\n G.INV_SUB_MIX[3][G.SBOX[tt & 0xff]]\n }\n }\n\n this._nRounds = nRounds\n this._keySchedule = keySchedule\n this._invKeySchedule = invKeySchedule\n}\n\nAES.prototype.encryptBlockRaw = function (M) {\n M = asUInt32Array(M)\n return cryptBlock(M, this._keySchedule, G.SUB_MIX, G.SBOX, this._nRounds)\n}\n\nAES.prototype.encryptBlock = function (M) {\n var out = this.encryptBlockRaw(M)\n var buf = Buffer.allocUnsafe(16)\n buf.writeUInt32BE(out[0], 0)\n buf.writeUInt32BE(out[1], 4)\n buf.writeUInt32BE(out[2], 8)\n buf.writeUInt32BE(out[3], 12)\n return buf\n}\n\nAES.prototype.decryptBlock = function (M) {\n M = asUInt32Array(M)\n\n // swap\n var m1 = M[1]\n M[1] = M[3]\n M[3] = m1\n\n var out = cryptBlock(M, this._invKeySchedule, G.INV_SUB_MIX, G.INV_SBOX, this._nRounds)\n var buf = Buffer.allocUnsafe(16)\n buf.writeUInt32BE(out[0], 0)\n buf.writeUInt32BE(out[3], 4)\n buf.writeUInt32BE(out[2], 8)\n buf.writeUInt32BE(out[1], 12)\n return buf\n}\n\nAES.prototype.scrub = function () {\n scrubVec(this._keySchedule)\n scrubVec(this._invKeySchedule)\n scrubVec(this._key)\n}\n\nmodule.exports.AES = AES\n\n\n//# sourceURL=webpack://mjml/./node_modules/browserify-aes/aes.js?')},"./node_modules/browserify-aes/authCipher.js":/*!***************************************************!*\ - !*** ./node_modules/browserify-aes/authCipher.js ***! - \***************************************************/ -/*! no static exports found */ -function(module,exports,__webpack_require__){eval('var aes = __webpack_require__(/*! ./aes */ "./node_modules/browserify-aes/aes.js")\nvar Buffer = __webpack_require__(/*! safe-buffer */ "./node_modules/safe-buffer/index.js").Buffer\nvar Transform = __webpack_require__(/*! cipher-base */ "./node_modules/cipher-base/index.js")\nvar inherits = __webpack_require__(/*! inherits */ "./node_modules/inherits/inherits_browser.js")\nvar GHASH = __webpack_require__(/*! ./ghash */ "./node_modules/browserify-aes/ghash.js")\nvar xor = __webpack_require__(/*! buffer-xor */ "./node_modules/buffer-xor/index.js")\nvar incr32 = __webpack_require__(/*! ./incr32 */ "./node_modules/browserify-aes/incr32.js")\n\nfunction xorTest (a, b) {\n var out = 0\n if (a.length !== b.length) out++\n\n var len = Math.min(a.length, b.length)\n for (var i = 0; i < len; ++i) {\n out += (a[i] ^ b[i])\n }\n\n return out\n}\n\nfunction calcIv (self, iv, ck) {\n if (iv.length === 12) {\n self._finID = Buffer.concat([iv, Buffer.from([0, 0, 0, 1])])\n return Buffer.concat([iv, Buffer.from([0, 0, 0, 2])])\n }\n var ghash = new GHASH(ck)\n var len = iv.length\n var toPad = len % 16\n ghash.update(iv)\n if (toPad) {\n toPad = 16 - toPad\n ghash.update(Buffer.alloc(toPad, 0))\n }\n ghash.update(Buffer.alloc(8, 0))\n var ivBits = len * 8\n var tail = Buffer.alloc(8)\n tail.writeUIntBE(ivBits, 0, 8)\n ghash.update(tail)\n self._finID = ghash.state\n var out = Buffer.from(self._finID)\n incr32(out)\n return out\n}\nfunction StreamCipher (mode, key, iv, decrypt) {\n Transform.call(this)\n\n var h = Buffer.alloc(4, 0)\n\n this._cipher = new aes.AES(key)\n var ck = this._cipher.encryptBlock(h)\n this._ghash = new GHASH(ck)\n iv = calcIv(this, iv, ck)\n\n this._prev = Buffer.from(iv)\n this._cache = Buffer.allocUnsafe(0)\n this._secCache = Buffer.allocUnsafe(0)\n this._decrypt = decrypt\n this._alen = 0\n this._len = 0\n this._mode = mode\n\n this._authTag = null\n this._called = false\n}\n\ninherits(StreamCipher, Transform)\n\nStreamCipher.prototype._update = function (chunk) {\n if (!this._called && this._alen) {\n var rump = 16 - (this._alen % 16)\n if (rump < 16) {\n rump = Buffer.alloc(rump, 0)\n this._ghash.update(rump)\n }\n }\n\n this._called = true\n var out = this._mode.encrypt(this, chunk)\n if (this._decrypt) {\n this._ghash.update(chunk)\n } else {\n this._ghash.update(out)\n }\n this._len += chunk.length\n return out\n}\n\nStreamCipher.prototype._final = function () {\n if (this._decrypt && !this._authTag) throw new Error(\'Unsupported state or unable to authenticate data\')\n\n var tag = xor(this._ghash.final(this._alen * 8, this._len * 8), this._cipher.encryptBlock(this._finID))\n if (this._decrypt && xorTest(tag, this._authTag)) throw new Error(\'Unsupported state or unable to authenticate data\')\n\n this._authTag = tag\n this._cipher.scrub()\n}\n\nStreamCipher.prototype.getAuthTag = function getAuthTag () {\n if (this._decrypt || !Buffer.isBuffer(this._authTag)) throw new Error(\'Attempting to get auth tag in unsupported state\')\n\n return this._authTag\n}\n\nStreamCipher.prototype.setAuthTag = function setAuthTag (tag) {\n if (!this._decrypt) throw new Error(\'Attempting to set auth tag in unsupported state\')\n\n this._authTag = tag\n}\n\nStreamCipher.prototype.setAAD = function setAAD (buf) {\n if (this._called) throw new Error(\'Attempting to set AAD in unsupported state\')\n\n this._ghash.update(buf)\n this._alen += buf.length\n}\n\nmodule.exports = StreamCipher\n\n\n//# sourceURL=webpack://mjml/./node_modules/browserify-aes/authCipher.js?')},"./node_modules/browserify-aes/browser.js":/*!************************************************!*\ - !*** ./node_modules/browserify-aes/browser.js ***! - \************************************************/ -/*! no static exports found */ -function(module,exports,__webpack_require__){eval('var ciphers = __webpack_require__(/*! ./encrypter */ "./node_modules/browserify-aes/encrypter.js")\nvar deciphers = __webpack_require__(/*! ./decrypter */ "./node_modules/browserify-aes/decrypter.js")\nvar modes = __webpack_require__(/*! ./modes/list.json */ "./node_modules/browserify-aes/modes/list.json")\n\nfunction getCiphers () {\n return Object.keys(modes)\n}\n\nexports.createCipher = exports.Cipher = ciphers.createCipher\nexports.createCipheriv = exports.Cipheriv = ciphers.createCipheriv\nexports.createDecipher = exports.Decipher = deciphers.createDecipher\nexports.createDecipheriv = exports.Decipheriv = deciphers.createDecipheriv\nexports.listCiphers = exports.getCiphers = getCiphers\n\n\n//# sourceURL=webpack://mjml/./node_modules/browserify-aes/browser.js?')},"./node_modules/browserify-aes/decrypter.js":/*!**************************************************!*\ - !*** ./node_modules/browserify-aes/decrypter.js ***! - \**************************************************/ -/*! no static exports found */ -function(module,exports,__webpack_require__){eval("var AuthCipher = __webpack_require__(/*! ./authCipher */ \"./node_modules/browserify-aes/authCipher.js\")\nvar Buffer = __webpack_require__(/*! safe-buffer */ \"./node_modules/safe-buffer/index.js\").Buffer\nvar MODES = __webpack_require__(/*! ./modes */ \"./node_modules/browserify-aes/modes/index.js\")\nvar StreamCipher = __webpack_require__(/*! ./streamCipher */ \"./node_modules/browserify-aes/streamCipher.js\")\nvar Transform = __webpack_require__(/*! cipher-base */ \"./node_modules/cipher-base/index.js\")\nvar aes = __webpack_require__(/*! ./aes */ \"./node_modules/browserify-aes/aes.js\")\nvar ebtk = __webpack_require__(/*! evp_bytestokey */ \"./node_modules/evp_bytestokey/index.js\")\nvar inherits = __webpack_require__(/*! inherits */ \"./node_modules/inherits/inherits_browser.js\")\n\nfunction Decipher (mode, key, iv) {\n Transform.call(this)\n\n this._cache = new Splitter()\n this._last = void 0\n this._cipher = new aes.AES(key)\n this._prev = Buffer.from(iv)\n this._mode = mode\n this._autopadding = true\n}\n\ninherits(Decipher, Transform)\n\nDecipher.prototype._update = function (data) {\n this._cache.add(data)\n var chunk\n var thing\n var out = []\n while ((chunk = this._cache.get(this._autopadding))) {\n thing = this._mode.decrypt(this, chunk)\n out.push(thing)\n }\n return Buffer.concat(out)\n}\n\nDecipher.prototype._final = function () {\n var chunk = this._cache.flush()\n if (this._autopadding) {\n return unpad(this._mode.decrypt(this, chunk))\n } else if (chunk) {\n throw new Error('data not multiple of block length')\n }\n}\n\nDecipher.prototype.setAutoPadding = function (setTo) {\n this._autopadding = !!setTo\n return this\n}\n\nfunction Splitter () {\n this.cache = Buffer.allocUnsafe(0)\n}\n\nSplitter.prototype.add = function (data) {\n this.cache = Buffer.concat([this.cache, data])\n}\n\nSplitter.prototype.get = function (autoPadding) {\n var out\n if (autoPadding) {\n if (this.cache.length > 16) {\n out = this.cache.slice(0, 16)\n this.cache = this.cache.slice(16)\n return out\n }\n } else {\n if (this.cache.length >= 16) {\n out = this.cache.slice(0, 16)\n this.cache = this.cache.slice(16)\n return out\n }\n }\n\n return null\n}\n\nSplitter.prototype.flush = function () {\n if (this.cache.length) return this.cache\n}\n\nfunction unpad (last) {\n var padded = last[15]\n if (padded < 1 || padded > 16) {\n throw new Error('unable to decrypt data')\n }\n var i = -1\n while (++i < padded) {\n if (last[(i + (16 - padded))] !== padded) {\n throw new Error('unable to decrypt data')\n }\n }\n if (padded === 16) return\n\n return last.slice(0, 16 - padded)\n}\n\nfunction createDecipheriv (suite, password, iv) {\n var config = MODES[suite.toLowerCase()]\n if (!config) throw new TypeError('invalid suite type')\n\n if (typeof iv === 'string') iv = Buffer.from(iv)\n if (config.mode !== 'GCM' && iv.length !== config.iv) throw new TypeError('invalid iv length ' + iv.length)\n\n if (typeof password === 'string') password = Buffer.from(password)\n if (password.length !== config.key / 8) throw new TypeError('invalid key length ' + password.length)\n\n if (config.type === 'stream') {\n return new StreamCipher(config.module, password, iv, true)\n } else if (config.type === 'auth') {\n return new AuthCipher(config.module, password, iv, true)\n }\n\n return new Decipher(config.module, password, iv)\n}\n\nfunction createDecipher (suite, password) {\n var config = MODES[suite.toLowerCase()]\n if (!config) throw new TypeError('invalid suite type')\n\n var keys = ebtk(password, false, config.key, config.iv)\n return createDecipheriv(suite, keys.key, keys.iv)\n}\n\nexports.createDecipher = createDecipher\nexports.createDecipheriv = createDecipheriv\n\n\n//# sourceURL=webpack://mjml/./node_modules/browserify-aes/decrypter.js?")},"./node_modules/browserify-aes/encrypter.js":/*!**************************************************!*\ - !*** ./node_modules/browserify-aes/encrypter.js ***! - \**************************************************/ -/*! no static exports found */ -function(module,exports,__webpack_require__){eval("var MODES = __webpack_require__(/*! ./modes */ \"./node_modules/browserify-aes/modes/index.js\")\nvar AuthCipher = __webpack_require__(/*! ./authCipher */ \"./node_modules/browserify-aes/authCipher.js\")\nvar Buffer = __webpack_require__(/*! safe-buffer */ \"./node_modules/safe-buffer/index.js\").Buffer\nvar StreamCipher = __webpack_require__(/*! ./streamCipher */ \"./node_modules/browserify-aes/streamCipher.js\")\nvar Transform = __webpack_require__(/*! cipher-base */ \"./node_modules/cipher-base/index.js\")\nvar aes = __webpack_require__(/*! ./aes */ \"./node_modules/browserify-aes/aes.js\")\nvar ebtk = __webpack_require__(/*! evp_bytestokey */ \"./node_modules/evp_bytestokey/index.js\")\nvar inherits = __webpack_require__(/*! inherits */ \"./node_modules/inherits/inherits_browser.js\")\n\nfunction Cipher (mode, key, iv) {\n Transform.call(this)\n\n this._cache = new Splitter()\n this._cipher = new aes.AES(key)\n this._prev = Buffer.from(iv)\n this._mode = mode\n this._autopadding = true\n}\n\ninherits(Cipher, Transform)\n\nCipher.prototype._update = function (data) {\n this._cache.add(data)\n var chunk\n var thing\n var out = []\n\n while ((chunk = this._cache.get())) {\n thing = this._mode.encrypt(this, chunk)\n out.push(thing)\n }\n\n return Buffer.concat(out)\n}\n\nvar PADDING = Buffer.alloc(16, 0x10)\n\nCipher.prototype._final = function () {\n var chunk = this._cache.flush()\n if (this._autopadding) {\n chunk = this._mode.encrypt(this, chunk)\n this._cipher.scrub()\n return chunk\n }\n\n if (!chunk.equals(PADDING)) {\n this._cipher.scrub()\n throw new Error('data not multiple of block length')\n }\n}\n\nCipher.prototype.setAutoPadding = function (setTo) {\n this._autopadding = !!setTo\n return this\n}\n\nfunction Splitter () {\n this.cache = Buffer.allocUnsafe(0)\n}\n\nSplitter.prototype.add = function (data) {\n this.cache = Buffer.concat([this.cache, data])\n}\n\nSplitter.prototype.get = function () {\n if (this.cache.length > 15) {\n var out = this.cache.slice(0, 16)\n this.cache = this.cache.slice(16)\n return out\n }\n return null\n}\n\nSplitter.prototype.flush = function () {\n var len = 16 - this.cache.length\n var padBuff = Buffer.allocUnsafe(len)\n\n var i = -1\n while (++i < len) {\n padBuff.writeUInt8(len, i)\n }\n\n return Buffer.concat([this.cache, padBuff])\n}\n\nfunction createCipheriv (suite, password, iv) {\n var config = MODES[suite.toLowerCase()]\n if (!config) throw new TypeError('invalid suite type')\n\n if (typeof password === 'string') password = Buffer.from(password)\n if (password.length !== config.key / 8) throw new TypeError('invalid key length ' + password.length)\n\n if (typeof iv === 'string') iv = Buffer.from(iv)\n if (config.mode !== 'GCM' && iv.length !== config.iv) throw new TypeError('invalid iv length ' + iv.length)\n\n if (config.type === 'stream') {\n return new StreamCipher(config.module, password, iv)\n } else if (config.type === 'auth') {\n return new AuthCipher(config.module, password, iv)\n }\n\n return new Cipher(config.module, password, iv)\n}\n\nfunction createCipher (suite, password) {\n var config = MODES[suite.toLowerCase()]\n if (!config) throw new TypeError('invalid suite type')\n\n var keys = ebtk(password, false, config.key, config.iv)\n return createCipheriv(suite, keys.key, keys.iv)\n}\n\nexports.createCipheriv = createCipheriv\nexports.createCipher = createCipher\n\n\n//# sourceURL=webpack://mjml/./node_modules/browserify-aes/encrypter.js?")},"./node_modules/browserify-aes/ghash.js":/*!**********************************************!*\ - !*** ./node_modules/browserify-aes/ghash.js ***! - \**********************************************/ -/*! no static exports found */ -function(module,exports,__webpack_require__){eval('var Buffer = __webpack_require__(/*! safe-buffer */ "./node_modules/safe-buffer/index.js").Buffer\nvar ZEROES = Buffer.alloc(16, 0)\n\nfunction toArray (buf) {\n return [\n buf.readUInt32BE(0),\n buf.readUInt32BE(4),\n buf.readUInt32BE(8),\n buf.readUInt32BE(12)\n ]\n}\n\nfunction fromArray (out) {\n var buf = Buffer.allocUnsafe(16)\n buf.writeUInt32BE(out[0] >>> 0, 0)\n buf.writeUInt32BE(out[1] >>> 0, 4)\n buf.writeUInt32BE(out[2] >>> 0, 8)\n buf.writeUInt32BE(out[3] >>> 0, 12)\n return buf\n}\n\nfunction GHASH (key) {\n this.h = key\n this.state = Buffer.alloc(16, 0)\n this.cache = Buffer.allocUnsafe(0)\n}\n\n// from http://bitwiseshiftleft.github.io/sjcl/doc/symbols/src/core_gcm.js.html\n// by Juho Vähä-Herttua\nGHASH.prototype.ghash = function (block) {\n var i = -1\n while (++i < block.length) {\n this.state[i] ^= block[i]\n }\n this._multiply()\n}\n\nGHASH.prototype._multiply = function () {\n var Vi = toArray(this.h)\n var Zi = [0, 0, 0, 0]\n var j, xi, lsbVi\n var i = -1\n while (++i < 128) {\n xi = (this.state[~~(i / 8)] & (1 << (7 - (i % 8)))) !== 0\n if (xi) {\n // Z_i+1 = Z_i ^ V_i\n Zi[0] ^= Vi[0]\n Zi[1] ^= Vi[1]\n Zi[2] ^= Vi[2]\n Zi[3] ^= Vi[3]\n }\n\n // Store the value of LSB(V_i)\n lsbVi = (Vi[3] & 1) !== 0\n\n // V_i+1 = V_i >> 1\n for (j = 3; j > 0; j--) {\n Vi[j] = (Vi[j] >>> 1) | ((Vi[j - 1] & 1) << 31)\n }\n Vi[0] = Vi[0] >>> 1\n\n // If LSB(V_i) is 1, V_i+1 = (V_i >> 1) ^ R\n if (lsbVi) {\n Vi[0] = Vi[0] ^ (0xe1 << 24)\n }\n }\n this.state = fromArray(Zi)\n}\n\nGHASH.prototype.update = function (buf) {\n this.cache = Buffer.concat([this.cache, buf])\n var chunk\n while (this.cache.length >= 16) {\n chunk = this.cache.slice(0, 16)\n this.cache = this.cache.slice(16)\n this.ghash(chunk)\n }\n}\n\nGHASH.prototype.final = function (abl, bl) {\n if (this.cache.length) {\n this.ghash(Buffer.concat([this.cache, ZEROES], 16))\n }\n\n this.ghash(fromArray([0, abl, 0, bl]))\n return this.state\n}\n\nmodule.exports = GHASH\n\n\n//# sourceURL=webpack://mjml/./node_modules/browserify-aes/ghash.js?')},"./node_modules/browserify-aes/incr32.js":/*!***********************************************!*\ - !*** ./node_modules/browserify-aes/incr32.js ***! - \***********************************************/ -/*! no static exports found */ -function(module,exports){eval("function incr32 (iv) {\n var len = iv.length\n var item\n while (len--) {\n item = iv.readUInt8(len)\n if (item === 255) {\n iv.writeUInt8(0, len)\n } else {\n item++\n iv.writeUInt8(item, len)\n break\n }\n }\n}\nmodule.exports = incr32\n\n\n//# sourceURL=webpack://mjml/./node_modules/browserify-aes/incr32.js?")},"./node_modules/browserify-aes/modes/cbc.js":/*!**************************************************!*\ - !*** ./node_modules/browserify-aes/modes/cbc.js ***! - \**************************************************/ -/*! no static exports found */ -function(module,exports,__webpack_require__){eval('var xor = __webpack_require__(/*! buffer-xor */ "./node_modules/buffer-xor/index.js")\n\nexports.encrypt = function (self, block) {\n var data = xor(block, self._prev)\n\n self._prev = self._cipher.encryptBlock(data)\n return self._prev\n}\n\nexports.decrypt = function (self, block) {\n var pad = self._prev\n\n self._prev = block\n var out = self._cipher.decryptBlock(block)\n\n return xor(out, pad)\n}\n\n\n//# sourceURL=webpack://mjml/./node_modules/browserify-aes/modes/cbc.js?')},"./node_modules/browserify-aes/modes/cfb.js":/*!**************************************************!*\ - !*** ./node_modules/browserify-aes/modes/cfb.js ***! - \**************************************************/ -/*! no static exports found */ -function(module,exports,__webpack_require__){eval('var Buffer = __webpack_require__(/*! safe-buffer */ "./node_modules/safe-buffer/index.js").Buffer\nvar xor = __webpack_require__(/*! buffer-xor */ "./node_modules/buffer-xor/index.js")\n\nfunction encryptStart (self, data, decrypt) {\n var len = data.length\n var out = xor(data, self._cache)\n self._cache = self._cache.slice(len)\n self._prev = Buffer.concat([self._prev, decrypt ? data : out])\n return out\n}\n\nexports.encrypt = function (self, data, decrypt) {\n var out = Buffer.allocUnsafe(0)\n var len\n\n while (data.length) {\n if (self._cache.length === 0) {\n self._cache = self._cipher.encryptBlock(self._prev)\n self._prev = Buffer.allocUnsafe(0)\n }\n\n if (self._cache.length <= data.length) {\n len = self._cache.length\n out = Buffer.concat([out, encryptStart(self, data.slice(0, len), decrypt)])\n data = data.slice(len)\n } else {\n out = Buffer.concat([out, encryptStart(self, data, decrypt)])\n break\n }\n }\n\n return out\n}\n\n\n//# sourceURL=webpack://mjml/./node_modules/browserify-aes/modes/cfb.js?')},"./node_modules/browserify-aes/modes/cfb1.js":/*!***************************************************!*\ - !*** ./node_modules/browserify-aes/modes/cfb1.js ***! - \***************************************************/ -/*! no static exports found */ -function(module,exports,__webpack_require__){eval('var Buffer = __webpack_require__(/*! safe-buffer */ "./node_modules/safe-buffer/index.js").Buffer\n\nfunction encryptByte (self, byteParam, decrypt) {\n var pad\n var i = -1\n var len = 8\n var out = 0\n var bit, value\n while (++i < len) {\n pad = self._cipher.encryptBlock(self._prev)\n bit = (byteParam & (1 << (7 - i))) ? 0x80 : 0\n value = pad[0] ^ bit\n out += ((value & 0x80) >> (i % 8))\n self._prev = shiftIn(self._prev, decrypt ? bit : value)\n }\n return out\n}\n\nfunction shiftIn (buffer, value) {\n var len = buffer.length\n var i = -1\n var out = Buffer.allocUnsafe(buffer.length)\n buffer = Buffer.concat([buffer, Buffer.from([value])])\n\n while (++i < len) {\n out[i] = buffer[i] << 1 | buffer[i + 1] >> (7)\n }\n\n return out\n}\n\nexports.encrypt = function (self, chunk, decrypt) {\n var len = chunk.length\n var out = Buffer.allocUnsafe(len)\n var i = -1\n\n while (++i < len) {\n out[i] = encryptByte(self, chunk[i], decrypt)\n }\n\n return out\n}\n\n\n//# sourceURL=webpack://mjml/./node_modules/browserify-aes/modes/cfb1.js?')},"./node_modules/browserify-aes/modes/cfb8.js":/*!***************************************************!*\ - !*** ./node_modules/browserify-aes/modes/cfb8.js ***! - \***************************************************/ -/*! no static exports found */ -function(module,exports,__webpack_require__){eval('var Buffer = __webpack_require__(/*! safe-buffer */ "./node_modules/safe-buffer/index.js").Buffer\n\nfunction encryptByte (self, byteParam, decrypt) {\n var pad = self._cipher.encryptBlock(self._prev)\n var out = pad[0] ^ byteParam\n\n self._prev = Buffer.concat([\n self._prev.slice(1),\n Buffer.from([decrypt ? byteParam : out])\n ])\n\n return out\n}\n\nexports.encrypt = function (self, chunk, decrypt) {\n var len = chunk.length\n var out = Buffer.allocUnsafe(len)\n var i = -1\n\n while (++i < len) {\n out[i] = encryptByte(self, chunk[i], decrypt)\n }\n\n return out\n}\n\n\n//# sourceURL=webpack://mjml/./node_modules/browserify-aes/modes/cfb8.js?')},"./node_modules/browserify-aes/modes/ctr.js":/*!**************************************************!*\ - !*** ./node_modules/browserify-aes/modes/ctr.js ***! - \**************************************************/ -/*! no static exports found */ -function(module,exports,__webpack_require__){eval('var xor = __webpack_require__(/*! buffer-xor */ "./node_modules/buffer-xor/index.js")\nvar Buffer = __webpack_require__(/*! safe-buffer */ "./node_modules/safe-buffer/index.js").Buffer\nvar incr32 = __webpack_require__(/*! ../incr32 */ "./node_modules/browserify-aes/incr32.js")\n\nfunction getBlock (self) {\n var out = self._cipher.encryptBlockRaw(self._prev)\n incr32(self._prev)\n return out\n}\n\nvar blockSize = 16\nexports.encrypt = function (self, chunk) {\n var chunkNum = Math.ceil(chunk.length / blockSize)\n var start = self._cache.length\n self._cache = Buffer.concat([\n self._cache,\n Buffer.allocUnsafe(chunkNum * blockSize)\n ])\n for (var i = 0; i < chunkNum; i++) {\n var out = getBlock(self)\n var offset = start + i * blockSize\n self._cache.writeUInt32BE(out[0], offset + 0)\n self._cache.writeUInt32BE(out[1], offset + 4)\n self._cache.writeUInt32BE(out[2], offset + 8)\n self._cache.writeUInt32BE(out[3], offset + 12)\n }\n var pad = self._cache.slice(0, chunk.length)\n self._cache = self._cache.slice(chunk.length)\n return xor(chunk, pad)\n}\n\n\n//# sourceURL=webpack://mjml/./node_modules/browserify-aes/modes/ctr.js?')},"./node_modules/browserify-aes/modes/ecb.js":/*!**************************************************!*\ - !*** ./node_modules/browserify-aes/modes/ecb.js ***! - \**************************************************/ -/*! no static exports found */ -function(module,exports){eval("exports.encrypt = function (self, block) {\n return self._cipher.encryptBlock(block)\n}\n\nexports.decrypt = function (self, block) {\n return self._cipher.decryptBlock(block)\n}\n\n\n//# sourceURL=webpack://mjml/./node_modules/browserify-aes/modes/ecb.js?")},"./node_modules/browserify-aes/modes/index.js":/*!****************************************************!*\ - !*** ./node_modules/browserify-aes/modes/index.js ***! - \****************************************************/ -/*! no static exports found */ -function(module,exports,__webpack_require__){eval('var modeModules = {\n ECB: __webpack_require__(/*! ./ecb */ "./node_modules/browserify-aes/modes/ecb.js"),\n CBC: __webpack_require__(/*! ./cbc */ "./node_modules/browserify-aes/modes/cbc.js"),\n CFB: __webpack_require__(/*! ./cfb */ "./node_modules/browserify-aes/modes/cfb.js"),\n CFB8: __webpack_require__(/*! ./cfb8 */ "./node_modules/browserify-aes/modes/cfb8.js"),\n CFB1: __webpack_require__(/*! ./cfb1 */ "./node_modules/browserify-aes/modes/cfb1.js"),\n OFB: __webpack_require__(/*! ./ofb */ "./node_modules/browserify-aes/modes/ofb.js"),\n CTR: __webpack_require__(/*! ./ctr */ "./node_modules/browserify-aes/modes/ctr.js"),\n GCM: __webpack_require__(/*! ./ctr */ "./node_modules/browserify-aes/modes/ctr.js")\n}\n\nvar modes = __webpack_require__(/*! ./list.json */ "./node_modules/browserify-aes/modes/list.json")\n\nfor (var key in modes) {\n modes[key].module = modeModules[modes[key].mode]\n}\n\nmodule.exports = modes\n\n\n//# sourceURL=webpack://mjml/./node_modules/browserify-aes/modes/index.js?')},"./node_modules/browserify-aes/modes/list.json":/*!*****************************************************!*\ - !*** ./node_modules/browserify-aes/modes/list.json ***! - \*****************************************************/ -/*! exports provided: aes-128-ecb, aes-192-ecb, aes-256-ecb, aes-128-cbc, aes-192-cbc, aes-256-cbc, aes128, aes192, aes256, aes-128-cfb, aes-192-cfb, aes-256-cfb, aes-128-cfb8, aes-192-cfb8, aes-256-cfb8, aes-128-cfb1, aes-192-cfb1, aes-256-cfb1, aes-128-ofb, aes-192-ofb, aes-256-ofb, aes-128-ctr, aes-192-ctr, aes-256-ctr, aes-128-gcm, aes-192-gcm, aes-256-gcm, default */ -function(module){eval('module.exports = {"aes-128-ecb":{"cipher":"AES","key":128,"iv":0,"mode":"ECB","type":"block"},"aes-192-ecb":{"cipher":"AES","key":192,"iv":0,"mode":"ECB","type":"block"},"aes-256-ecb":{"cipher":"AES","key":256,"iv":0,"mode":"ECB","type":"block"},"aes-128-cbc":{"cipher":"AES","key":128,"iv":16,"mode":"CBC","type":"block"},"aes-192-cbc":{"cipher":"AES","key":192,"iv":16,"mode":"CBC","type":"block"},"aes-256-cbc":{"cipher":"AES","key":256,"iv":16,"mode":"CBC","type":"block"},"aes128":{"cipher":"AES","key":128,"iv":16,"mode":"CBC","type":"block"},"aes192":{"cipher":"AES","key":192,"iv":16,"mode":"CBC","type":"block"},"aes256":{"cipher":"AES","key":256,"iv":16,"mode":"CBC","type":"block"},"aes-128-cfb":{"cipher":"AES","key":128,"iv":16,"mode":"CFB","type":"stream"},"aes-192-cfb":{"cipher":"AES","key":192,"iv":16,"mode":"CFB","type":"stream"},"aes-256-cfb":{"cipher":"AES","key":256,"iv":16,"mode":"CFB","type":"stream"},"aes-128-cfb8":{"cipher":"AES","key":128,"iv":16,"mode":"CFB8","type":"stream"},"aes-192-cfb8":{"cipher":"AES","key":192,"iv":16,"mode":"CFB8","type":"stream"},"aes-256-cfb8":{"cipher":"AES","key":256,"iv":16,"mode":"CFB8","type":"stream"},"aes-128-cfb1":{"cipher":"AES","key":128,"iv":16,"mode":"CFB1","type":"stream"},"aes-192-cfb1":{"cipher":"AES","key":192,"iv":16,"mode":"CFB1","type":"stream"},"aes-256-cfb1":{"cipher":"AES","key":256,"iv":16,"mode":"CFB1","type":"stream"},"aes-128-ofb":{"cipher":"AES","key":128,"iv":16,"mode":"OFB","type":"stream"},"aes-192-ofb":{"cipher":"AES","key":192,"iv":16,"mode":"OFB","type":"stream"},"aes-256-ofb":{"cipher":"AES","key":256,"iv":16,"mode":"OFB","type":"stream"},"aes-128-ctr":{"cipher":"AES","key":128,"iv":16,"mode":"CTR","type":"stream"},"aes-192-ctr":{"cipher":"AES","key":192,"iv":16,"mode":"CTR","type":"stream"},"aes-256-ctr":{"cipher":"AES","key":256,"iv":16,"mode":"CTR","type":"stream"},"aes-128-gcm":{"cipher":"AES","key":128,"iv":12,"mode":"GCM","type":"auth"},"aes-192-gcm":{"cipher":"AES","key":192,"iv":12,"mode":"GCM","type":"auth"},"aes-256-gcm":{"cipher":"AES","key":256,"iv":12,"mode":"GCM","type":"auth"}};\n\n//# sourceURL=webpack://mjml/./node_modules/browserify-aes/modes/list.json?')},"./node_modules/browserify-aes/modes/ofb.js":/*!**************************************************!*\ - !*** ./node_modules/browserify-aes/modes/ofb.js ***! - \**************************************************/ -/*! no static exports found */ -function(module,exports,__webpack_require__){eval('/* WEBPACK VAR INJECTION */(function(Buffer) {var xor = __webpack_require__(/*! buffer-xor */ "./node_modules/buffer-xor/index.js")\n\nfunction getBlock (self) {\n self._prev = self._cipher.encryptBlock(self._prev)\n return self._prev\n}\n\nexports.encrypt = function (self, chunk) {\n while (self._cache.length < chunk.length) {\n self._cache = Buffer.concat([self._cache, getBlock(self)])\n }\n\n var pad = self._cache.slice(0, chunk.length)\n self._cache = self._cache.slice(chunk.length)\n return xor(chunk, pad)\n}\n\n/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(/*! ./../../buffer/index.js */ "./node_modules/buffer/index.js").Buffer))\n\n//# sourceURL=webpack://mjml/./node_modules/browserify-aes/modes/ofb.js?')},"./node_modules/browserify-aes/streamCipher.js":/*!*****************************************************!*\ - !*** ./node_modules/browserify-aes/streamCipher.js ***! - \*****************************************************/ -/*! no static exports found */ -function(module,exports,__webpack_require__){eval('var aes = __webpack_require__(/*! ./aes */ "./node_modules/browserify-aes/aes.js")\nvar Buffer = __webpack_require__(/*! safe-buffer */ "./node_modules/safe-buffer/index.js").Buffer\nvar Transform = __webpack_require__(/*! cipher-base */ "./node_modules/cipher-base/index.js")\nvar inherits = __webpack_require__(/*! inherits */ "./node_modules/inherits/inherits_browser.js")\n\nfunction StreamCipher (mode, key, iv, decrypt) {\n Transform.call(this)\n\n this._cipher = new aes.AES(key)\n this._prev = Buffer.from(iv)\n this._cache = Buffer.allocUnsafe(0)\n this._secCache = Buffer.allocUnsafe(0)\n this._decrypt = decrypt\n this._mode = mode\n}\n\ninherits(StreamCipher, Transform)\n\nStreamCipher.prototype._update = function (chunk) {\n return this._mode.encrypt(this, chunk, this._decrypt)\n}\n\nStreamCipher.prototype._final = function () {\n this._cipher.scrub()\n}\n\nmodule.exports = StreamCipher\n\n\n//# sourceURL=webpack://mjml/./node_modules/browserify-aes/streamCipher.js?')},"./node_modules/browserify-cipher/browser.js":/*!***************************************************!*\ - !*** ./node_modules/browserify-cipher/browser.js ***! - \***************************************************/ -/*! no static exports found */ -function(module,exports,__webpack_require__){eval('var DES = __webpack_require__(/*! browserify-des */ "./node_modules/browserify-des/index.js")\nvar aes = __webpack_require__(/*! browserify-aes/browser */ "./node_modules/browserify-aes/browser.js")\nvar aesModes = __webpack_require__(/*! browserify-aes/modes */ "./node_modules/browserify-aes/modes/index.js")\nvar desModes = __webpack_require__(/*! browserify-des/modes */ "./node_modules/browserify-des/modes.js")\nvar ebtk = __webpack_require__(/*! evp_bytestokey */ "./node_modules/evp_bytestokey/index.js")\n\nfunction createCipher (suite, password) {\n suite = suite.toLowerCase()\n\n var keyLen, ivLen\n if (aesModes[suite]) {\n keyLen = aesModes[suite].key\n ivLen = aesModes[suite].iv\n } else if (desModes[suite]) {\n keyLen = desModes[suite].key * 8\n ivLen = desModes[suite].iv\n } else {\n throw new TypeError(\'invalid suite type\')\n }\n\n var keys = ebtk(password, false, keyLen, ivLen)\n return createCipheriv(suite, keys.key, keys.iv)\n}\n\nfunction createDecipher (suite, password) {\n suite = suite.toLowerCase()\n\n var keyLen, ivLen\n if (aesModes[suite]) {\n keyLen = aesModes[suite].key\n ivLen = aesModes[suite].iv\n } else if (desModes[suite]) {\n keyLen = desModes[suite].key * 8\n ivLen = desModes[suite].iv\n } else {\n throw new TypeError(\'invalid suite type\')\n }\n\n var keys = ebtk(password, false, keyLen, ivLen)\n return createDecipheriv(suite, keys.key, keys.iv)\n}\n\nfunction createCipheriv (suite, key, iv) {\n suite = suite.toLowerCase()\n if (aesModes[suite]) return aes.createCipheriv(suite, key, iv)\n if (desModes[suite]) return new DES({ key: key, iv: iv, mode: suite })\n\n throw new TypeError(\'invalid suite type\')\n}\n\nfunction createDecipheriv (suite, key, iv) {\n suite = suite.toLowerCase()\n if (aesModes[suite]) return aes.createDecipheriv(suite, key, iv)\n if (desModes[suite]) return new DES({ key: key, iv: iv, mode: suite, decrypt: true })\n\n throw new TypeError(\'invalid suite type\')\n}\n\nfunction getCiphers () {\n return Object.keys(desModes).concat(aes.getCiphers())\n}\n\nexports.createCipher = exports.Cipher = createCipher\nexports.createCipheriv = exports.Cipheriv = createCipheriv\nexports.createDecipher = exports.Decipher = createDecipher\nexports.createDecipheriv = exports.Decipheriv = createDecipheriv\nexports.listCiphers = exports.getCiphers = getCiphers\n\n\n//# sourceURL=webpack://mjml/./node_modules/browserify-cipher/browser.js?')},"./node_modules/browserify-des/index.js":/*!**********************************************!*\ - !*** ./node_modules/browserify-des/index.js ***! - \**********************************************/ -/*! no static exports found */ -function(module,exports,__webpack_require__){eval("var CipherBase = __webpack_require__(/*! cipher-base */ \"./node_modules/cipher-base/index.js\")\nvar des = __webpack_require__(/*! des.js */ \"./node_modules/des.js/lib/des.js\")\nvar inherits = __webpack_require__(/*! inherits */ \"./node_modules/inherits/inherits_browser.js\")\nvar Buffer = __webpack_require__(/*! safe-buffer */ \"./node_modules/safe-buffer/index.js\").Buffer\n\nvar modes = {\n 'des-ede3-cbc': des.CBC.instantiate(des.EDE),\n 'des-ede3': des.EDE,\n 'des-ede-cbc': des.CBC.instantiate(des.EDE),\n 'des-ede': des.EDE,\n 'des-cbc': des.CBC.instantiate(des.DES),\n 'des-ecb': des.DES\n}\nmodes.des = modes['des-cbc']\nmodes.des3 = modes['des-ede3-cbc']\nmodule.exports = DES\ninherits(DES, CipherBase)\nfunction DES (opts) {\n CipherBase.call(this)\n var modeName = opts.mode.toLowerCase()\n var mode = modes[modeName]\n var type\n if (opts.decrypt) {\n type = 'decrypt'\n } else {\n type = 'encrypt'\n }\n var key = opts.key\n if (!Buffer.isBuffer(key)) {\n key = Buffer.from(key)\n }\n if (modeName === 'des-ede' || modeName === 'des-ede-cbc') {\n key = Buffer.concat([key, key.slice(0, 8)])\n }\n var iv = opts.iv\n if (!Buffer.isBuffer(iv)) {\n iv = Buffer.from(iv)\n }\n this._des = mode.create({\n key: key,\n iv: iv,\n type: type\n })\n}\nDES.prototype._update = function (data) {\n return Buffer.from(this._des.update(data))\n}\nDES.prototype._final = function () {\n return Buffer.from(this._des.final())\n}\n\n\n//# sourceURL=webpack://mjml/./node_modules/browserify-des/index.js?")},"./node_modules/browserify-des/modes.js":/*!**********************************************!*\ - !*** ./node_modules/browserify-des/modes.js ***! - \**********************************************/ -/*! no static exports found */ -function(module,exports){eval("exports['des-ecb'] = {\n key: 8,\n iv: 0\n}\nexports['des-cbc'] = exports.des = {\n key: 8,\n iv: 8\n}\nexports['des-ede3-cbc'] = exports.des3 = {\n key: 24,\n iv: 8\n}\nexports['des-ede3'] = {\n key: 24,\n iv: 0\n}\nexports['des-ede-cbc'] = {\n key: 16,\n iv: 8\n}\nexports['des-ede'] = {\n key: 16,\n iv: 0\n}\n\n\n//# sourceURL=webpack://mjml/./node_modules/browserify-des/modes.js?")},"./node_modules/browserify-rsa/index.js":/*!**********************************************!*\ - !*** ./node_modules/browserify-rsa/index.js ***! - \**********************************************/ -/*! no static exports found */ -function(module,exports,__webpack_require__){eval('/* WEBPACK VAR INJECTION */(function(Buffer) {var bn = __webpack_require__(/*! bn.js */ "./node_modules/bn.js/lib/bn.js");\nvar randomBytes = __webpack_require__(/*! randombytes */ "./node_modules/randombytes/browser.js");\nmodule.exports = crt;\nfunction blind(priv) {\n var r = getr(priv);\n var blinder = r.toRed(bn.mont(priv.modulus))\n .redPow(new bn(priv.publicExponent)).fromRed();\n return {\n blinder: blinder,\n unblinder:r.invm(priv.modulus)\n };\n}\nfunction crt(msg, priv) {\n var blinds = blind(priv);\n var len = priv.modulus.byteLength();\n var mod = bn.mont(priv.modulus);\n var blinded = new bn(msg).mul(blinds.blinder).umod(priv.modulus);\n var c1 = blinded.toRed(bn.mont(priv.prime1));\n var c2 = blinded.toRed(bn.mont(priv.prime2));\n var qinv = priv.coefficient;\n var p = priv.prime1;\n var q = priv.prime2;\n var m1 = c1.redPow(priv.exponent1);\n var m2 = c2.redPow(priv.exponent2);\n m1 = m1.fromRed();\n m2 = m2.fromRed();\n var h = m1.isub(m2).imul(qinv).umod(p);\n h.imul(q);\n m2.iadd(h);\n return new Buffer(m2.imul(blinds.unblinder).umod(priv.modulus).toArray(false, len));\n}\ncrt.getr = getr;\nfunction getr(priv) {\n var len = priv.modulus.byteLength();\n var r = new bn(randomBytes(len));\n while (r.cmp(priv.modulus) >= 0 || !r.umod(priv.prime1) || !r.umod(priv.prime2)) {\n r = new bn(randomBytes(len));\n }\n return r;\n}\n\n/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(/*! ./../buffer/index.js */ "./node_modules/buffer/index.js").Buffer))\n\n//# sourceURL=webpack://mjml/./node_modules/browserify-rsa/index.js?')},"./node_modules/browserify-sign/algos.js":/*!***********************************************!*\ - !*** ./node_modules/browserify-sign/algos.js ***! - \***********************************************/ -/*! no static exports found */ -function(module,exports,__webpack_require__){eval('module.exports = __webpack_require__(/*! ./browser/algorithms.json */ "./node_modules/browserify-sign/browser/algorithms.json")\n\n\n//# sourceURL=webpack://mjml/./node_modules/browserify-sign/algos.js?')},"./node_modules/browserify-sign/browser/algorithms.json":/*!**************************************************************!*\ - !*** ./node_modules/browserify-sign/browser/algorithms.json ***! - \**************************************************************/ -/*! exports provided: sha224WithRSAEncryption, RSA-SHA224, sha256WithRSAEncryption, RSA-SHA256, sha384WithRSAEncryption, RSA-SHA384, sha512WithRSAEncryption, RSA-SHA512, RSA-SHA1, ecdsa-with-SHA1, sha256, sha224, sha384, sha512, DSA-SHA, DSA-SHA1, DSA, DSA-WITH-SHA224, DSA-SHA224, DSA-WITH-SHA256, DSA-SHA256, DSA-WITH-SHA384, DSA-SHA384, DSA-WITH-SHA512, DSA-SHA512, DSA-RIPEMD160, ripemd160WithRSA, RSA-RIPEMD160, md5WithRSAEncryption, RSA-MD5, default */ -function(module){eval('module.exports = {"sha224WithRSAEncryption":{"sign":"rsa","hash":"sha224","id":"302d300d06096086480165030402040500041c"},"RSA-SHA224":{"sign":"ecdsa/rsa","hash":"sha224","id":"302d300d06096086480165030402040500041c"},"sha256WithRSAEncryption":{"sign":"rsa","hash":"sha256","id":"3031300d060960864801650304020105000420"},"RSA-SHA256":{"sign":"ecdsa/rsa","hash":"sha256","id":"3031300d060960864801650304020105000420"},"sha384WithRSAEncryption":{"sign":"rsa","hash":"sha384","id":"3041300d060960864801650304020205000430"},"RSA-SHA384":{"sign":"ecdsa/rsa","hash":"sha384","id":"3041300d060960864801650304020205000430"},"sha512WithRSAEncryption":{"sign":"rsa","hash":"sha512","id":"3051300d060960864801650304020305000440"},"RSA-SHA512":{"sign":"ecdsa/rsa","hash":"sha512","id":"3051300d060960864801650304020305000440"},"RSA-SHA1":{"sign":"rsa","hash":"sha1","id":"3021300906052b0e03021a05000414"},"ecdsa-with-SHA1":{"sign":"ecdsa","hash":"sha1","id":""},"sha256":{"sign":"ecdsa","hash":"sha256","id":""},"sha224":{"sign":"ecdsa","hash":"sha224","id":""},"sha384":{"sign":"ecdsa","hash":"sha384","id":""},"sha512":{"sign":"ecdsa","hash":"sha512","id":""},"DSA-SHA":{"sign":"dsa","hash":"sha1","id":""},"DSA-SHA1":{"sign":"dsa","hash":"sha1","id":""},"DSA":{"sign":"dsa","hash":"sha1","id":""},"DSA-WITH-SHA224":{"sign":"dsa","hash":"sha224","id":""},"DSA-SHA224":{"sign":"dsa","hash":"sha224","id":""},"DSA-WITH-SHA256":{"sign":"dsa","hash":"sha256","id":""},"DSA-SHA256":{"sign":"dsa","hash":"sha256","id":""},"DSA-WITH-SHA384":{"sign":"dsa","hash":"sha384","id":""},"DSA-SHA384":{"sign":"dsa","hash":"sha384","id":""},"DSA-WITH-SHA512":{"sign":"dsa","hash":"sha512","id":""},"DSA-SHA512":{"sign":"dsa","hash":"sha512","id":""},"DSA-RIPEMD160":{"sign":"dsa","hash":"rmd160","id":""},"ripemd160WithRSA":{"sign":"rsa","hash":"rmd160","id":"3021300906052b2403020105000414"},"RSA-RIPEMD160":{"sign":"rsa","hash":"rmd160","id":"3021300906052b2403020105000414"},"md5WithRSAEncryption":{"sign":"rsa","hash":"md5","id":"3020300c06082a864886f70d020505000410"},"RSA-MD5":{"sign":"rsa","hash":"md5","id":"3020300c06082a864886f70d020505000410"}};\n\n//# sourceURL=webpack://mjml/./node_modules/browserify-sign/browser/algorithms.json?')},"./node_modules/browserify-sign/browser/curves.json":/*!**********************************************************!*\ - !*** ./node_modules/browserify-sign/browser/curves.json ***! - \**********************************************************/ -/*! exports provided: 1.3.132.0.10, 1.3.132.0.33, 1.2.840.10045.3.1.1, 1.2.840.10045.3.1.7, 1.3.132.0.34, 1.3.132.0.35, default */ -function(module){eval('module.exports = {"1.3.132.0.10":"secp256k1","1.3.132.0.33":"p224","1.2.840.10045.3.1.1":"p192","1.2.840.10045.3.1.7":"p256","1.3.132.0.34":"p384","1.3.132.0.35":"p521"};\n\n//# sourceURL=webpack://mjml/./node_modules/browserify-sign/browser/curves.json?')},"./node_modules/browserify-sign/browser/index.js":/*!*******************************************************!*\ - !*** ./node_modules/browserify-sign/browser/index.js ***! - \*******************************************************/ -/*! no static exports found */ -function(module,exports,__webpack_require__){eval('/* WEBPACK VAR INJECTION */(function(Buffer) {var createHash = __webpack_require__(/*! create-hash */ "./node_modules/create-hash/browser.js")\nvar stream = __webpack_require__(/*! stream */ "./node_modules/stream-browserify/index.js")\nvar inherits = __webpack_require__(/*! inherits */ "./node_modules/inherits/inherits_browser.js")\nvar sign = __webpack_require__(/*! ./sign */ "./node_modules/browserify-sign/browser/sign.js")\nvar verify = __webpack_require__(/*! ./verify */ "./node_modules/browserify-sign/browser/verify.js")\n\nvar algorithms = __webpack_require__(/*! ./algorithms.json */ "./node_modules/browserify-sign/browser/algorithms.json")\nObject.keys(algorithms).forEach(function (key) {\n algorithms[key].id = new Buffer(algorithms[key].id, \'hex\')\n algorithms[key.toLowerCase()] = algorithms[key]\n})\n\nfunction Sign (algorithm) {\n stream.Writable.call(this)\n\n var data = algorithms[algorithm]\n if (!data) throw new Error(\'Unknown message digest\')\n\n this._hashType = data.hash\n this._hash = createHash(data.hash)\n this._tag = data.id\n this._signType = data.sign\n}\ninherits(Sign, stream.Writable)\n\nSign.prototype._write = function _write (data, _, done) {\n this._hash.update(data)\n done()\n}\n\nSign.prototype.update = function update (data, enc) {\n if (typeof data === \'string\') data = new Buffer(data, enc)\n\n this._hash.update(data)\n return this\n}\n\nSign.prototype.sign = function signMethod (key, enc) {\n this.end()\n var hash = this._hash.digest()\n var sig = sign(hash, key, this._hashType, this._signType, this._tag)\n\n return enc ? sig.toString(enc) : sig\n}\n\nfunction Verify (algorithm) {\n stream.Writable.call(this)\n\n var data = algorithms[algorithm]\n if (!data) throw new Error(\'Unknown message digest\')\n\n this._hash = createHash(data.hash)\n this._tag = data.id\n this._signType = data.sign\n}\ninherits(Verify, stream.Writable)\n\nVerify.prototype._write = function _write (data, _, done) {\n this._hash.update(data)\n done()\n}\n\nVerify.prototype.update = function update (data, enc) {\n if (typeof data === \'string\') data = new Buffer(data, enc)\n\n this._hash.update(data)\n return this\n}\n\nVerify.prototype.verify = function verifyMethod (key, sig, enc) {\n if (typeof sig === \'string\') sig = new Buffer(sig, enc)\n\n this.end()\n var hash = this._hash.digest()\n return verify(sig, hash, key, this._signType, this._tag)\n}\n\nfunction createSign (algorithm) {\n return new Sign(algorithm)\n}\n\nfunction createVerify (algorithm) {\n return new Verify(algorithm)\n}\n\nmodule.exports = {\n Sign: createSign,\n Verify: createVerify,\n createSign: createSign,\n createVerify: createVerify\n}\n\n/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(/*! ./../../buffer/index.js */ "./node_modules/buffer/index.js").Buffer))\n\n//# sourceURL=webpack://mjml/./node_modules/browserify-sign/browser/index.js?')},"./node_modules/browserify-sign/browser/sign.js":/*!******************************************************!*\ - !*** ./node_modules/browserify-sign/browser/sign.js ***! - \******************************************************/ -/*! no static exports found */ -function(module,exports,__webpack_require__){eval("/* WEBPACK VAR INJECTION */(function(Buffer) {// much of this based on https://github.com/indutny/self-signed/blob/gh-pages/lib/rsa.js\nvar createHmac = __webpack_require__(/*! create-hmac */ \"./node_modules/create-hmac/browser.js\")\nvar crt = __webpack_require__(/*! browserify-rsa */ \"./node_modules/browserify-rsa/index.js\")\nvar EC = __webpack_require__(/*! elliptic */ \"./node_modules/elliptic/lib/elliptic.js\").ec\nvar BN = __webpack_require__(/*! bn.js */ \"./node_modules/bn.js/lib/bn.js\")\nvar parseKeys = __webpack_require__(/*! parse-asn1 */ \"./node_modules/parse-asn1/index.js\")\nvar curves = __webpack_require__(/*! ./curves.json */ \"./node_modules/browserify-sign/browser/curves.json\")\n\nfunction sign (hash, key, hashType, signType, tag) {\n var priv = parseKeys(key)\n if (priv.curve) {\n // rsa keys can be interpreted as ecdsa ones in openssl\n if (signType !== 'ecdsa' && signType !== 'ecdsa/rsa') throw new Error('wrong private key type')\n return ecSign(hash, priv)\n } else if (priv.type === 'dsa') {\n if (signType !== 'dsa') throw new Error('wrong private key type')\n return dsaSign(hash, priv, hashType)\n } else {\n if (signType !== 'rsa' && signType !== 'ecdsa/rsa') throw new Error('wrong private key type')\n }\n hash = Buffer.concat([tag, hash])\n var len = priv.modulus.byteLength()\n var pad = [ 0, 1 ]\n while (hash.length + pad.length + 1 < len) pad.push(0xff)\n pad.push(0x00)\n var i = -1\n while (++i < hash.length) pad.push(hash[i])\n\n var out = crt(pad, priv)\n return out\n}\n\nfunction ecSign (hash, priv) {\n var curveId = curves[priv.curve.join('.')]\n if (!curveId) throw new Error('unknown curve ' + priv.curve.join('.'))\n\n var curve = new EC(curveId)\n var key = curve.keyFromPrivate(priv.privateKey)\n var out = key.sign(hash)\n\n return new Buffer(out.toDER())\n}\n\nfunction dsaSign (hash, priv, algo) {\n var x = priv.params.priv_key\n var p = priv.params.p\n var q = priv.params.q\n var g = priv.params.g\n var r = new BN(0)\n var k\n var H = bits2int(hash, q).mod(q)\n var s = false\n var kv = getKey(x, q, hash, algo)\n while (s === false) {\n k = makeKey(q, kv, algo)\n r = makeR(g, k, p, q)\n s = k.invm(q).imul(H.add(x.mul(r))).mod(q)\n if (s.cmpn(0) === 0) {\n s = false\n r = new BN(0)\n }\n }\n return toDER(r, s)\n}\n\nfunction toDER (r, s) {\n r = r.toArray()\n s = s.toArray()\n\n // Pad values\n if (r[0] & 0x80) r = [ 0 ].concat(r)\n if (s[0] & 0x80) s = [ 0 ].concat(s)\n\n var total = r.length + s.length + 4\n var res = [ 0x30, total, 0x02, r.length ]\n res = res.concat(r, [ 0x02, s.length ], s)\n return new Buffer(res)\n}\n\nfunction getKey (x, q, hash, algo) {\n x = new Buffer(x.toArray())\n if (x.length < q.byteLength()) {\n var zeros = new Buffer(q.byteLength() - x.length)\n zeros.fill(0)\n x = Buffer.concat([ zeros, x ])\n }\n var hlen = hash.length\n var hbits = bits2octets(hash, q)\n var v = new Buffer(hlen)\n v.fill(1)\n var k = new Buffer(hlen)\n k.fill(0)\n k = createHmac(algo, k).update(v).update(new Buffer([ 0 ])).update(x).update(hbits).digest()\n v = createHmac(algo, k).update(v).digest()\n k = createHmac(algo, k).update(v).update(new Buffer([ 1 ])).update(x).update(hbits).digest()\n v = createHmac(algo, k).update(v).digest()\n return { k: k, v: v }\n}\n\nfunction bits2int (obits, q) {\n var bits = new BN(obits)\n var shift = (obits.length << 3) - q.bitLength()\n if (shift > 0) bits.ishrn(shift)\n return bits\n}\n\nfunction bits2octets (bits, q) {\n bits = bits2int(bits, q)\n bits = bits.mod(q)\n var out = new Buffer(bits.toArray())\n if (out.length < q.byteLength()) {\n var zeros = new Buffer(q.byteLength() - out.length)\n zeros.fill(0)\n out = Buffer.concat([ zeros, out ])\n }\n return out\n}\n\nfunction makeKey (q, kv, algo) {\n var t\n var k\n\n do {\n t = new Buffer(0)\n\n while (t.length * 8 < q.bitLength()) {\n kv.v = createHmac(algo, kv.k).update(kv.v).digest()\n t = Buffer.concat([ t, kv.v ])\n }\n\n k = bits2int(t, q)\n kv.k = createHmac(algo, kv.k).update(kv.v).update(new Buffer([ 0 ])).digest()\n kv.v = createHmac(algo, kv.k).update(kv.v).digest()\n } while (k.cmp(q) !== -1)\n\n return k\n}\n\nfunction makeR (g, k, p, q) {\n return g.toRed(BN.mont(p)).redPow(k).fromRed().mod(q)\n}\n\nmodule.exports = sign\nmodule.exports.getKey = getKey\nmodule.exports.makeKey = makeKey\n\n/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(/*! ./../../buffer/index.js */ \"./node_modules/buffer/index.js\").Buffer))\n\n//# sourceURL=webpack://mjml/./node_modules/browserify-sign/browser/sign.js?")},"./node_modules/browserify-sign/browser/verify.js":/*!********************************************************!*\ - !*** ./node_modules/browserify-sign/browser/verify.js ***! - \********************************************************/ -/*! no static exports found */ -function(module,exports,__webpack_require__){eval("/* WEBPACK VAR INJECTION */(function(Buffer) {// much of this based on https://github.com/indutny/self-signed/blob/gh-pages/lib/rsa.js\nvar BN = __webpack_require__(/*! bn.js */ \"./node_modules/bn.js/lib/bn.js\")\nvar EC = __webpack_require__(/*! elliptic */ \"./node_modules/elliptic/lib/elliptic.js\").ec\nvar parseKeys = __webpack_require__(/*! parse-asn1 */ \"./node_modules/parse-asn1/index.js\")\nvar curves = __webpack_require__(/*! ./curves.json */ \"./node_modules/browserify-sign/browser/curves.json\")\n\nfunction verify (sig, hash, key, signType, tag) {\n var pub = parseKeys(key)\n if (pub.type === 'ec') {\n // rsa keys can be interpreted as ecdsa ones in openssl\n if (signType !== 'ecdsa' && signType !== 'ecdsa/rsa') throw new Error('wrong public key type')\n return ecVerify(sig, hash, pub)\n } else if (pub.type === 'dsa') {\n if (signType !== 'dsa') throw new Error('wrong public key type')\n return dsaVerify(sig, hash, pub)\n } else {\n if (signType !== 'rsa' && signType !== 'ecdsa/rsa') throw new Error('wrong public key type')\n }\n hash = Buffer.concat([tag, hash])\n var len = pub.modulus.byteLength()\n var pad = [ 1 ]\n var padNum = 0\n while (hash.length + pad.length + 2 < len) {\n pad.push(0xff)\n padNum++\n }\n pad.push(0x00)\n var i = -1\n while (++i < hash.length) {\n pad.push(hash[i])\n }\n pad = new Buffer(pad)\n var red = BN.mont(pub.modulus)\n sig = new BN(sig).toRed(red)\n\n sig = sig.redPow(new BN(pub.publicExponent))\n sig = new Buffer(sig.fromRed().toArray())\n var out = padNum < 8 ? 1 : 0\n len = Math.min(sig.length, pad.length)\n if (sig.length !== pad.length) out = 1\n\n i = -1\n while (++i < len) out |= sig[i] ^ pad[i]\n return out === 0\n}\n\nfunction ecVerify (sig, hash, pub) {\n var curveId = curves[pub.data.algorithm.curve.join('.')]\n if (!curveId) throw new Error('unknown curve ' + pub.data.algorithm.curve.join('.'))\n\n var curve = new EC(curveId)\n var pubkey = pub.data.subjectPrivateKey.data\n\n return curve.verify(hash, sig, pubkey)\n}\n\nfunction dsaVerify (sig, hash, pub) {\n var p = pub.data.p\n var q = pub.data.q\n var g = pub.data.g\n var y = pub.data.pub_key\n var unpacked = parseKeys.signature.decode(sig, 'der')\n var s = unpacked.s\n var r = unpacked.r\n checkValue(s, q)\n checkValue(r, q)\n var montp = BN.mont(p)\n var w = s.invm(q)\n var v = g.toRed(montp)\n .redPow(new BN(hash).mul(w).mod(q))\n .fromRed()\n .mul(y.toRed(montp).redPow(r.mul(w).mod(q)).fromRed())\n .mod(p)\n .mod(q)\n return v.cmp(r) === 0\n}\n\nfunction checkValue (b, q) {\n if (b.cmpn(0) <= 0) throw new Error('invalid sig')\n if (b.cmp(q) >= q) throw new Error('invalid sig')\n}\n\nmodule.exports = verify\n\n/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(/*! ./../../buffer/index.js */ \"./node_modules/buffer/index.js\").Buffer))\n\n//# sourceURL=webpack://mjml/./node_modules/browserify-sign/browser/verify.js?")},"./node_modules/buffer-xor/index.js":/*!******************************************!*\ - !*** ./node_modules/buffer-xor/index.js ***! - \******************************************/ -/*! no static exports found */ -function(module,exports,__webpack_require__){eval('/* WEBPACK VAR INJECTION */(function(Buffer) {module.exports = function xor (a, b) {\n var length = Math.min(a.length, b.length)\n var buffer = new Buffer(length)\n\n for (var i = 0; i < length; ++i) {\n buffer[i] = a[i] ^ b[i]\n }\n\n return buffer\n}\n\n/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(/*! ./../buffer/index.js */ "./node_modules/buffer/index.js").Buffer))\n\n//# sourceURL=webpack://mjml/./node_modules/buffer-xor/index.js?')},"./node_modules/buffer/index.js":/*!**************************************!*\ - !*** ./node_modules/buffer/index.js ***! - \**************************************/ -/*! no static exports found */ -function(module,exports,__webpack_require__){"use strict";eval("/* WEBPACK VAR INJECTION */(function(global) {/*!\n * The buffer module from node.js, for the browser.\n *\n * @author Feross Aboukhadijeh \n * @license MIT\n */\n/* eslint-disable no-proto */\n\n\n\nvar base64 = __webpack_require__(/*! base64-js */ \"./node_modules/base64-js/index.js\")\nvar ieee754 = __webpack_require__(/*! ieee754 */ \"./node_modules/ieee754/index.js\")\nvar isArray = __webpack_require__(/*! isarray */ \"./node_modules/isarray/index.js\")\n\nexports.Buffer = Buffer\nexports.SlowBuffer = SlowBuffer\nexports.INSPECT_MAX_BYTES = 50\n\n/**\n * If `Buffer.TYPED_ARRAY_SUPPORT`:\n * === true Use Uint8Array implementation (fastest)\n * === false Use Object implementation (most compatible, even IE6)\n *\n * Browsers that support typed arrays are IE 10+, Firefox 4+, Chrome 7+, Safari 5.1+,\n * Opera 11.6+, iOS 4.2+.\n *\n * Due to various browser bugs, sometimes the Object implementation will be used even\n * when the browser supports typed arrays.\n *\n * Note:\n *\n * - Firefox 4-29 lacks support for adding new properties to `Uint8Array` instances,\n * See: https://bugzilla.mozilla.org/show_bug.cgi?id=695438.\n *\n * - Chrome 9-10 is missing the `TypedArray.prototype.subarray` function.\n *\n * - IE10 has a broken `TypedArray.prototype.subarray` function which returns arrays of\n * incorrect length in some situations.\n\n * We detect these buggy browsers and set `Buffer.TYPED_ARRAY_SUPPORT` to `false` so they\n * get the Object implementation, which is slower but behaves correctly.\n */\nBuffer.TYPED_ARRAY_SUPPORT = global.TYPED_ARRAY_SUPPORT !== undefined\n ? global.TYPED_ARRAY_SUPPORT\n : typedArraySupport()\n\n/*\n * Export kMaxLength after typed array support is determined.\n */\nexports.kMaxLength = kMaxLength()\n\nfunction typedArraySupport () {\n try {\n var arr = new Uint8Array(1)\n arr.__proto__ = {__proto__: Uint8Array.prototype, foo: function () { return 42 }}\n return arr.foo() === 42 && // typed array instances can be augmented\n typeof arr.subarray === 'function' && // chrome 9-10 lack `subarray`\n arr.subarray(1, 1).byteLength === 0 // ie10 has broken `subarray`\n } catch (e) {\n return false\n }\n}\n\nfunction kMaxLength () {\n return Buffer.TYPED_ARRAY_SUPPORT\n ? 0x7fffffff\n : 0x3fffffff\n}\n\nfunction createBuffer (that, length) {\n if (kMaxLength() < length) {\n throw new RangeError('Invalid typed array length')\n }\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n // Return an augmented `Uint8Array` instance, for best performance\n that = new Uint8Array(length)\n that.__proto__ = Buffer.prototype\n } else {\n // Fallback: Return an object instance of the Buffer class\n if (that === null) {\n that = new Buffer(length)\n }\n that.length = length\n }\n\n return that\n}\n\n/**\n * The Buffer constructor returns instances of `Uint8Array` that have their\n * prototype changed to `Buffer.prototype`. Furthermore, `Buffer` is a subclass of\n * `Uint8Array`, so the returned instances will have all the node `Buffer` methods\n * and the `Uint8Array` methods. Square bracket notation works as expected -- it\n * returns a single octet.\n *\n * The `Uint8Array` prototype remains unmodified.\n */\n\nfunction Buffer (arg, encodingOrOffset, length) {\n if (!Buffer.TYPED_ARRAY_SUPPORT && !(this instanceof Buffer)) {\n return new Buffer(arg, encodingOrOffset, length)\n }\n\n // Common case.\n if (typeof arg === 'number') {\n if (typeof encodingOrOffset === 'string') {\n throw new Error(\n 'If encoding is specified then the first argument must be a string'\n )\n }\n return allocUnsafe(this, arg)\n }\n return from(this, arg, encodingOrOffset, length)\n}\n\nBuffer.poolSize = 8192 // not used by this implementation\n\n// TODO: Legacy, not needed anymore. Remove in next major version.\nBuffer._augment = function (arr) {\n arr.__proto__ = Buffer.prototype\n return arr\n}\n\nfunction from (that, value, encodingOrOffset, length) {\n if (typeof value === 'number') {\n throw new TypeError('\"value\" argument must not be a number')\n }\n\n if (typeof ArrayBuffer !== 'undefined' && value instanceof ArrayBuffer) {\n return fromArrayBuffer(that, value, encodingOrOffset, length)\n }\n\n if (typeof value === 'string') {\n return fromString(that, value, encodingOrOffset)\n }\n\n return fromObject(that, value)\n}\n\n/**\n * Functionally equivalent to Buffer(arg, encoding) but throws a TypeError\n * if value is a number.\n * Buffer.from(str[, encoding])\n * Buffer.from(array)\n * Buffer.from(buffer)\n * Buffer.from(arrayBuffer[, byteOffset[, length]])\n **/\nBuffer.from = function (value, encodingOrOffset, length) {\n return from(null, value, encodingOrOffset, length)\n}\n\nif (Buffer.TYPED_ARRAY_SUPPORT) {\n Buffer.prototype.__proto__ = Uint8Array.prototype\n Buffer.__proto__ = Uint8Array\n if (typeof Symbol !== 'undefined' && Symbol.species &&\n Buffer[Symbol.species] === Buffer) {\n // Fix subarray() in ES2016. See: https://github.com/feross/buffer/pull/97\n Object.defineProperty(Buffer, Symbol.species, {\n value: null,\n configurable: true\n })\n }\n}\n\nfunction assertSize (size) {\n if (typeof size !== 'number') {\n throw new TypeError('\"size\" argument must be a number')\n } else if (size < 0) {\n throw new RangeError('\"size\" argument must not be negative')\n }\n}\n\nfunction alloc (that, size, fill, encoding) {\n assertSize(size)\n if (size <= 0) {\n return createBuffer(that, size)\n }\n if (fill !== undefined) {\n // Only pay attention to encoding if it's a string. This\n // prevents accidentally sending in a number that would\n // be interpretted as a start offset.\n return typeof encoding === 'string'\n ? createBuffer(that, size).fill(fill, encoding)\n : createBuffer(that, size).fill(fill)\n }\n return createBuffer(that, size)\n}\n\n/**\n * Creates a new filled Buffer instance.\n * alloc(size[, fill[, encoding]])\n **/\nBuffer.alloc = function (size, fill, encoding) {\n return alloc(null, size, fill, encoding)\n}\n\nfunction allocUnsafe (that, size) {\n assertSize(size)\n that = createBuffer(that, size < 0 ? 0 : checked(size) | 0)\n if (!Buffer.TYPED_ARRAY_SUPPORT) {\n for (var i = 0; i < size; ++i) {\n that[i] = 0\n }\n }\n return that\n}\n\n/**\n * Equivalent to Buffer(num), by default creates a non-zero-filled Buffer instance.\n * */\nBuffer.allocUnsafe = function (size) {\n return allocUnsafe(null, size)\n}\n/**\n * Equivalent to SlowBuffer(num), by default creates a non-zero-filled Buffer instance.\n */\nBuffer.allocUnsafeSlow = function (size) {\n return allocUnsafe(null, size)\n}\n\nfunction fromString (that, string, encoding) {\n if (typeof encoding !== 'string' || encoding === '') {\n encoding = 'utf8'\n }\n\n if (!Buffer.isEncoding(encoding)) {\n throw new TypeError('\"encoding\" must be a valid string encoding')\n }\n\n var length = byteLength(string, encoding) | 0\n that = createBuffer(that, length)\n\n var actual = that.write(string, encoding)\n\n if (actual !== length) {\n // Writing a hex string, for example, that contains invalid characters will\n // cause everything after the first invalid character to be ignored. (e.g.\n // 'abxxcd' will be treated as 'ab')\n that = that.slice(0, actual)\n }\n\n return that\n}\n\nfunction fromArrayLike (that, array) {\n var length = array.length < 0 ? 0 : checked(array.length) | 0\n that = createBuffer(that, length)\n for (var i = 0; i < length; i += 1) {\n that[i] = array[i] & 255\n }\n return that\n}\n\nfunction fromArrayBuffer (that, array, byteOffset, length) {\n array.byteLength // this throws if `array` is not a valid ArrayBuffer\n\n if (byteOffset < 0 || array.byteLength < byteOffset) {\n throw new RangeError('\\'offset\\' is out of bounds')\n }\n\n if (array.byteLength < byteOffset + (length || 0)) {\n throw new RangeError('\\'length\\' is out of bounds')\n }\n\n if (byteOffset === undefined && length === undefined) {\n array = new Uint8Array(array)\n } else if (length === undefined) {\n array = new Uint8Array(array, byteOffset)\n } else {\n array = new Uint8Array(array, byteOffset, length)\n }\n\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n // Return an augmented `Uint8Array` instance, for best performance\n that = array\n that.__proto__ = Buffer.prototype\n } else {\n // Fallback: Return an object instance of the Buffer class\n that = fromArrayLike(that, array)\n }\n return that\n}\n\nfunction fromObject (that, obj) {\n if (Buffer.isBuffer(obj)) {\n var len = checked(obj.length) | 0\n that = createBuffer(that, len)\n\n if (that.length === 0) {\n return that\n }\n\n obj.copy(that, 0, 0, len)\n return that\n }\n\n if (obj) {\n if ((typeof ArrayBuffer !== 'undefined' &&\n obj.buffer instanceof ArrayBuffer) || 'length' in obj) {\n if (typeof obj.length !== 'number' || isnan(obj.length)) {\n return createBuffer(that, 0)\n }\n return fromArrayLike(that, obj)\n }\n\n if (obj.type === 'Buffer' && isArray(obj.data)) {\n return fromArrayLike(that, obj.data)\n }\n }\n\n throw new TypeError('First argument must be a string, Buffer, ArrayBuffer, Array, or array-like object.')\n}\n\nfunction checked (length) {\n // Note: cannot use `length < kMaxLength()` here because that fails when\n // length is NaN (which is otherwise coerced to zero.)\n if (length >= kMaxLength()) {\n throw new RangeError('Attempt to allocate Buffer larger than maximum ' +\n 'size: 0x' + kMaxLength().toString(16) + ' bytes')\n }\n return length | 0\n}\n\nfunction SlowBuffer (length) {\n if (+length != length) { // eslint-disable-line eqeqeq\n length = 0\n }\n return Buffer.alloc(+length)\n}\n\nBuffer.isBuffer = function isBuffer (b) {\n return !!(b != null && b._isBuffer)\n}\n\nBuffer.compare = function compare (a, b) {\n if (!Buffer.isBuffer(a) || !Buffer.isBuffer(b)) {\n throw new TypeError('Arguments must be Buffers')\n }\n\n if (a === b) return 0\n\n var x = a.length\n var y = b.length\n\n for (var i = 0, len = Math.min(x, y); i < len; ++i) {\n if (a[i] !== b[i]) {\n x = a[i]\n y = b[i]\n break\n }\n }\n\n if (x < y) return -1\n if (y < x) return 1\n return 0\n}\n\nBuffer.isEncoding = function isEncoding (encoding) {\n switch (String(encoding).toLowerCase()) {\n case 'hex':\n case 'utf8':\n case 'utf-8':\n case 'ascii':\n case 'latin1':\n case 'binary':\n case 'base64':\n case 'ucs2':\n case 'ucs-2':\n case 'utf16le':\n case 'utf-16le':\n return true\n default:\n return false\n }\n}\n\nBuffer.concat = function concat (list, length) {\n if (!isArray(list)) {\n throw new TypeError('\"list\" argument must be an Array of Buffers')\n }\n\n if (list.length === 0) {\n return Buffer.alloc(0)\n }\n\n var i\n if (length === undefined) {\n length = 0\n for (i = 0; i < list.length; ++i) {\n length += list[i].length\n }\n }\n\n var buffer = Buffer.allocUnsafe(length)\n var pos = 0\n for (i = 0; i < list.length; ++i) {\n var buf = list[i]\n if (!Buffer.isBuffer(buf)) {\n throw new TypeError('\"list\" argument must be an Array of Buffers')\n }\n buf.copy(buffer, pos)\n pos += buf.length\n }\n return buffer\n}\n\nfunction byteLength (string, encoding) {\n if (Buffer.isBuffer(string)) {\n return string.length\n }\n if (typeof ArrayBuffer !== 'undefined' && typeof ArrayBuffer.isView === 'function' &&\n (ArrayBuffer.isView(string) || string instanceof ArrayBuffer)) {\n return string.byteLength\n }\n if (typeof string !== 'string') {\n string = '' + string\n }\n\n var len = string.length\n if (len === 0) return 0\n\n // Use a for loop to avoid recursion\n var loweredCase = false\n for (;;) {\n switch (encoding) {\n case 'ascii':\n case 'latin1':\n case 'binary':\n return len\n case 'utf8':\n case 'utf-8':\n case undefined:\n return utf8ToBytes(string).length\n case 'ucs2':\n case 'ucs-2':\n case 'utf16le':\n case 'utf-16le':\n return len * 2\n case 'hex':\n return len >>> 1\n case 'base64':\n return base64ToBytes(string).length\n default:\n if (loweredCase) return utf8ToBytes(string).length // assume utf8\n encoding = ('' + encoding).toLowerCase()\n loweredCase = true\n }\n }\n}\nBuffer.byteLength = byteLength\n\nfunction slowToString (encoding, start, end) {\n var loweredCase = false\n\n // No need to verify that \"this.length <= MAX_UINT32\" since it's a read-only\n // property of a typed array.\n\n // This behaves neither like String nor Uint8Array in that we set start/end\n // to their upper/lower bounds if the value passed is out of range.\n // undefined is handled specially as per ECMA-262 6th Edition,\n // Section 13.3.3.7 Runtime Semantics: KeyedBindingInitialization.\n if (start === undefined || start < 0) {\n start = 0\n }\n // Return early if start > this.length. Done here to prevent potential uint32\n // coercion fail below.\n if (start > this.length) {\n return ''\n }\n\n if (end === undefined || end > this.length) {\n end = this.length\n }\n\n if (end <= 0) {\n return ''\n }\n\n // Force coersion to uint32. This will also coerce falsey/NaN values to 0.\n end >>>= 0\n start >>>= 0\n\n if (end <= start) {\n return ''\n }\n\n if (!encoding) encoding = 'utf8'\n\n while (true) {\n switch (encoding) {\n case 'hex':\n return hexSlice(this, start, end)\n\n case 'utf8':\n case 'utf-8':\n return utf8Slice(this, start, end)\n\n case 'ascii':\n return asciiSlice(this, start, end)\n\n case 'latin1':\n case 'binary':\n return latin1Slice(this, start, end)\n\n case 'base64':\n return base64Slice(this, start, end)\n\n case 'ucs2':\n case 'ucs-2':\n case 'utf16le':\n case 'utf-16le':\n return utf16leSlice(this, start, end)\n\n default:\n if (loweredCase) throw new TypeError('Unknown encoding: ' + encoding)\n encoding = (encoding + '').toLowerCase()\n loweredCase = true\n }\n }\n}\n\n// The property is used by `Buffer.isBuffer` and `is-buffer` (in Safari 5-7) to detect\n// Buffer instances.\nBuffer.prototype._isBuffer = true\n\nfunction swap (b, n, m) {\n var i = b[n]\n b[n] = b[m]\n b[m] = i\n}\n\nBuffer.prototype.swap16 = function swap16 () {\n var len = this.length\n if (len % 2 !== 0) {\n throw new RangeError('Buffer size must be a multiple of 16-bits')\n }\n for (var i = 0; i < len; i += 2) {\n swap(this, i, i + 1)\n }\n return this\n}\n\nBuffer.prototype.swap32 = function swap32 () {\n var len = this.length\n if (len % 4 !== 0) {\n throw new RangeError('Buffer size must be a multiple of 32-bits')\n }\n for (var i = 0; i < len; i += 4) {\n swap(this, i, i + 3)\n swap(this, i + 1, i + 2)\n }\n return this\n}\n\nBuffer.prototype.swap64 = function swap64 () {\n var len = this.length\n if (len % 8 !== 0) {\n throw new RangeError('Buffer size must be a multiple of 64-bits')\n }\n for (var i = 0; i < len; i += 8) {\n swap(this, i, i + 7)\n swap(this, i + 1, i + 6)\n swap(this, i + 2, i + 5)\n swap(this, i + 3, i + 4)\n }\n return this\n}\n\nBuffer.prototype.toString = function toString () {\n var length = this.length | 0\n if (length === 0) return ''\n if (arguments.length === 0) return utf8Slice(this, 0, length)\n return slowToString.apply(this, arguments)\n}\n\nBuffer.prototype.equals = function equals (b) {\n if (!Buffer.isBuffer(b)) throw new TypeError('Argument must be a Buffer')\n if (this === b) return true\n return Buffer.compare(this, b) === 0\n}\n\nBuffer.prototype.inspect = function inspect () {\n var str = ''\n var max = exports.INSPECT_MAX_BYTES\n if (this.length > 0) {\n str = this.toString('hex', 0, max).match(/.{2}/g).join(' ')\n if (this.length > max) str += ' ... '\n }\n return ''\n}\n\nBuffer.prototype.compare = function compare (target, start, end, thisStart, thisEnd) {\n if (!Buffer.isBuffer(target)) {\n throw new TypeError('Argument must be a Buffer')\n }\n\n if (start === undefined) {\n start = 0\n }\n if (end === undefined) {\n end = target ? target.length : 0\n }\n if (thisStart === undefined) {\n thisStart = 0\n }\n if (thisEnd === undefined) {\n thisEnd = this.length\n }\n\n if (start < 0 || end > target.length || thisStart < 0 || thisEnd > this.length) {\n throw new RangeError('out of range index')\n }\n\n if (thisStart >= thisEnd && start >= end) {\n return 0\n }\n if (thisStart >= thisEnd) {\n return -1\n }\n if (start >= end) {\n return 1\n }\n\n start >>>= 0\n end >>>= 0\n thisStart >>>= 0\n thisEnd >>>= 0\n\n if (this === target) return 0\n\n var x = thisEnd - thisStart\n var y = end - start\n var len = Math.min(x, y)\n\n var thisCopy = this.slice(thisStart, thisEnd)\n var targetCopy = target.slice(start, end)\n\n for (var i = 0; i < len; ++i) {\n if (thisCopy[i] !== targetCopy[i]) {\n x = thisCopy[i]\n y = targetCopy[i]\n break\n }\n }\n\n if (x < y) return -1\n if (y < x) return 1\n return 0\n}\n\n// Finds either the first index of `val` in `buffer` at offset >= `byteOffset`,\n// OR the last index of `val` in `buffer` at offset <= `byteOffset`.\n//\n// Arguments:\n// - buffer - a Buffer to search\n// - val - a string, Buffer, or number\n// - byteOffset - an index into `buffer`; will be clamped to an int32\n// - encoding - an optional encoding, relevant is val is a string\n// - dir - true for indexOf, false for lastIndexOf\nfunction bidirectionalIndexOf (buffer, val, byteOffset, encoding, dir) {\n // Empty buffer means no match\n if (buffer.length === 0) return -1\n\n // Normalize byteOffset\n if (typeof byteOffset === 'string') {\n encoding = byteOffset\n byteOffset = 0\n } else if (byteOffset > 0x7fffffff) {\n byteOffset = 0x7fffffff\n } else if (byteOffset < -0x80000000) {\n byteOffset = -0x80000000\n }\n byteOffset = +byteOffset // Coerce to Number.\n if (isNaN(byteOffset)) {\n // byteOffset: it it's undefined, null, NaN, \"foo\", etc, search whole buffer\n byteOffset = dir ? 0 : (buffer.length - 1)\n }\n\n // Normalize byteOffset: negative offsets start from the end of the buffer\n if (byteOffset < 0) byteOffset = buffer.length + byteOffset\n if (byteOffset >= buffer.length) {\n if (dir) return -1\n else byteOffset = buffer.length - 1\n } else if (byteOffset < 0) {\n if (dir) byteOffset = 0\n else return -1\n }\n\n // Normalize val\n if (typeof val === 'string') {\n val = Buffer.from(val, encoding)\n }\n\n // Finally, search either indexOf (if dir is true) or lastIndexOf\n if (Buffer.isBuffer(val)) {\n // Special case: looking for empty string/buffer always fails\n if (val.length === 0) {\n return -1\n }\n return arrayIndexOf(buffer, val, byteOffset, encoding, dir)\n } else if (typeof val === 'number') {\n val = val & 0xFF // Search for a byte value [0-255]\n if (Buffer.TYPED_ARRAY_SUPPORT &&\n typeof Uint8Array.prototype.indexOf === 'function') {\n if (dir) {\n return Uint8Array.prototype.indexOf.call(buffer, val, byteOffset)\n } else {\n return Uint8Array.prototype.lastIndexOf.call(buffer, val, byteOffset)\n }\n }\n return arrayIndexOf(buffer, [ val ], byteOffset, encoding, dir)\n }\n\n throw new TypeError('val must be string, number or Buffer')\n}\n\nfunction arrayIndexOf (arr, val, byteOffset, encoding, dir) {\n var indexSize = 1\n var arrLength = arr.length\n var valLength = val.length\n\n if (encoding !== undefined) {\n encoding = String(encoding).toLowerCase()\n if (encoding === 'ucs2' || encoding === 'ucs-2' ||\n encoding === 'utf16le' || encoding === 'utf-16le') {\n if (arr.length < 2 || val.length < 2) {\n return -1\n }\n indexSize = 2\n arrLength /= 2\n valLength /= 2\n byteOffset /= 2\n }\n }\n\n function read (buf, i) {\n if (indexSize === 1) {\n return buf[i]\n } else {\n return buf.readUInt16BE(i * indexSize)\n }\n }\n\n var i\n if (dir) {\n var foundIndex = -1\n for (i = byteOffset; i < arrLength; i++) {\n if (read(arr, i) === read(val, foundIndex === -1 ? 0 : i - foundIndex)) {\n if (foundIndex === -1) foundIndex = i\n if (i - foundIndex + 1 === valLength) return foundIndex * indexSize\n } else {\n if (foundIndex !== -1) i -= i - foundIndex\n foundIndex = -1\n }\n }\n } else {\n if (byteOffset + valLength > arrLength) byteOffset = arrLength - valLength\n for (i = byteOffset; i >= 0; i--) {\n var found = true\n for (var j = 0; j < valLength; j++) {\n if (read(arr, i + j) !== read(val, j)) {\n found = false\n break\n }\n }\n if (found) return i\n }\n }\n\n return -1\n}\n\nBuffer.prototype.includes = function includes (val, byteOffset, encoding) {\n return this.indexOf(val, byteOffset, encoding) !== -1\n}\n\nBuffer.prototype.indexOf = function indexOf (val, byteOffset, encoding) {\n return bidirectionalIndexOf(this, val, byteOffset, encoding, true)\n}\n\nBuffer.prototype.lastIndexOf = function lastIndexOf (val, byteOffset, encoding) {\n return bidirectionalIndexOf(this, val, byteOffset, encoding, false)\n}\n\nfunction hexWrite (buf, string, offset, length) {\n offset = Number(offset) || 0\n var remaining = buf.length - offset\n if (!length) {\n length = remaining\n } else {\n length = Number(length)\n if (length > remaining) {\n length = remaining\n }\n }\n\n // must be an even number of digits\n var strLen = string.length\n if (strLen % 2 !== 0) throw new TypeError('Invalid hex string')\n\n if (length > strLen / 2) {\n length = strLen / 2\n }\n for (var i = 0; i < length; ++i) {\n var parsed = parseInt(string.substr(i * 2, 2), 16)\n if (isNaN(parsed)) return i\n buf[offset + i] = parsed\n }\n return i\n}\n\nfunction utf8Write (buf, string, offset, length) {\n return blitBuffer(utf8ToBytes(string, buf.length - offset), buf, offset, length)\n}\n\nfunction asciiWrite (buf, string, offset, length) {\n return blitBuffer(asciiToBytes(string), buf, offset, length)\n}\n\nfunction latin1Write (buf, string, offset, length) {\n return asciiWrite(buf, string, offset, length)\n}\n\nfunction base64Write (buf, string, offset, length) {\n return blitBuffer(base64ToBytes(string), buf, offset, length)\n}\n\nfunction ucs2Write (buf, string, offset, length) {\n return blitBuffer(utf16leToBytes(string, buf.length - offset), buf, offset, length)\n}\n\nBuffer.prototype.write = function write (string, offset, length, encoding) {\n // Buffer#write(string)\n if (offset === undefined) {\n encoding = 'utf8'\n length = this.length\n offset = 0\n // Buffer#write(string, encoding)\n } else if (length === undefined && typeof offset === 'string') {\n encoding = offset\n length = this.length\n offset = 0\n // Buffer#write(string, offset[, length][, encoding])\n } else if (isFinite(offset)) {\n offset = offset | 0\n if (isFinite(length)) {\n length = length | 0\n if (encoding === undefined) encoding = 'utf8'\n } else {\n encoding = length\n length = undefined\n }\n // legacy write(string, encoding, offset, length) - remove in v0.13\n } else {\n throw new Error(\n 'Buffer.write(string, encoding, offset[, length]) is no longer supported'\n )\n }\n\n var remaining = this.length - offset\n if (length === undefined || length > remaining) length = remaining\n\n if ((string.length > 0 && (length < 0 || offset < 0)) || offset > this.length) {\n throw new RangeError('Attempt to write outside buffer bounds')\n }\n\n if (!encoding) encoding = 'utf8'\n\n var loweredCase = false\n for (;;) {\n switch (encoding) {\n case 'hex':\n return hexWrite(this, string, offset, length)\n\n case 'utf8':\n case 'utf-8':\n return utf8Write(this, string, offset, length)\n\n case 'ascii':\n return asciiWrite(this, string, offset, length)\n\n case 'latin1':\n case 'binary':\n return latin1Write(this, string, offset, length)\n\n case 'base64':\n // Warning: maxLength not taken into account in base64Write\n return base64Write(this, string, offset, length)\n\n case 'ucs2':\n case 'ucs-2':\n case 'utf16le':\n case 'utf-16le':\n return ucs2Write(this, string, offset, length)\n\n default:\n if (loweredCase) throw new TypeError('Unknown encoding: ' + encoding)\n encoding = ('' + encoding).toLowerCase()\n loweredCase = true\n }\n }\n}\n\nBuffer.prototype.toJSON = function toJSON () {\n return {\n type: 'Buffer',\n data: Array.prototype.slice.call(this._arr || this, 0)\n }\n}\n\nfunction base64Slice (buf, start, end) {\n if (start === 0 && end === buf.length) {\n return base64.fromByteArray(buf)\n } else {\n return base64.fromByteArray(buf.slice(start, end))\n }\n}\n\nfunction utf8Slice (buf, start, end) {\n end = Math.min(buf.length, end)\n var res = []\n\n var i = start\n while (i < end) {\n var firstByte = buf[i]\n var codePoint = null\n var bytesPerSequence = (firstByte > 0xEF) ? 4\n : (firstByte > 0xDF) ? 3\n : (firstByte > 0xBF) ? 2\n : 1\n\n if (i + bytesPerSequence <= end) {\n var secondByte, thirdByte, fourthByte, tempCodePoint\n\n switch (bytesPerSequence) {\n case 1:\n if (firstByte < 0x80) {\n codePoint = firstByte\n }\n break\n case 2:\n secondByte = buf[i + 1]\n if ((secondByte & 0xC0) === 0x80) {\n tempCodePoint = (firstByte & 0x1F) << 0x6 | (secondByte & 0x3F)\n if (tempCodePoint > 0x7F) {\n codePoint = tempCodePoint\n }\n }\n break\n case 3:\n secondByte = buf[i + 1]\n thirdByte = buf[i + 2]\n if ((secondByte & 0xC0) === 0x80 && (thirdByte & 0xC0) === 0x80) {\n tempCodePoint = (firstByte & 0xF) << 0xC | (secondByte & 0x3F) << 0x6 | (thirdByte & 0x3F)\n if (tempCodePoint > 0x7FF && (tempCodePoint < 0xD800 || tempCodePoint > 0xDFFF)) {\n codePoint = tempCodePoint\n }\n }\n break\n case 4:\n secondByte = buf[i + 1]\n thirdByte = buf[i + 2]\n fourthByte = buf[i + 3]\n if ((secondByte & 0xC0) === 0x80 && (thirdByte & 0xC0) === 0x80 && (fourthByte & 0xC0) === 0x80) {\n tempCodePoint = (firstByte & 0xF) << 0x12 | (secondByte & 0x3F) << 0xC | (thirdByte & 0x3F) << 0x6 | (fourthByte & 0x3F)\n if (tempCodePoint > 0xFFFF && tempCodePoint < 0x110000) {\n codePoint = tempCodePoint\n }\n }\n }\n }\n\n if (codePoint === null) {\n // we did not generate a valid codePoint so insert a\n // replacement char (U+FFFD) and advance only 1 byte\n codePoint = 0xFFFD\n bytesPerSequence = 1\n } else if (codePoint > 0xFFFF) {\n // encode to utf16 (surrogate pair dance)\n codePoint -= 0x10000\n res.push(codePoint >>> 10 & 0x3FF | 0xD800)\n codePoint = 0xDC00 | codePoint & 0x3FF\n }\n\n res.push(codePoint)\n i += bytesPerSequence\n }\n\n return decodeCodePointsArray(res)\n}\n\n// Based on http://stackoverflow.com/a/22747272/680742, the browser with\n// the lowest limit is Chrome, with 0x10000 args.\n// We go 1 magnitude less, for safety\nvar MAX_ARGUMENTS_LENGTH = 0x1000\n\nfunction decodeCodePointsArray (codePoints) {\n var len = codePoints.length\n if (len <= MAX_ARGUMENTS_LENGTH) {\n return String.fromCharCode.apply(String, codePoints) // avoid extra slice()\n }\n\n // Decode in chunks to avoid \"call stack size exceeded\".\n var res = ''\n var i = 0\n while (i < len) {\n res += String.fromCharCode.apply(\n String,\n codePoints.slice(i, i += MAX_ARGUMENTS_LENGTH)\n )\n }\n return res\n}\n\nfunction asciiSlice (buf, start, end) {\n var ret = ''\n end = Math.min(buf.length, end)\n\n for (var i = start; i < end; ++i) {\n ret += String.fromCharCode(buf[i] & 0x7F)\n }\n return ret\n}\n\nfunction latin1Slice (buf, start, end) {\n var ret = ''\n end = Math.min(buf.length, end)\n\n for (var i = start; i < end; ++i) {\n ret += String.fromCharCode(buf[i])\n }\n return ret\n}\n\nfunction hexSlice (buf, start, end) {\n var len = buf.length\n\n if (!start || start < 0) start = 0\n if (!end || end < 0 || end > len) end = len\n\n var out = ''\n for (var i = start; i < end; ++i) {\n out += toHex(buf[i])\n }\n return out\n}\n\nfunction utf16leSlice (buf, start, end) {\n var bytes = buf.slice(start, end)\n var res = ''\n for (var i = 0; i < bytes.length; i += 2) {\n res += String.fromCharCode(bytes[i] + bytes[i + 1] * 256)\n }\n return res\n}\n\nBuffer.prototype.slice = function slice (start, end) {\n var len = this.length\n start = ~~start\n end = end === undefined ? len : ~~end\n\n if (start < 0) {\n start += len\n if (start < 0) start = 0\n } else if (start > len) {\n start = len\n }\n\n if (end < 0) {\n end += len\n if (end < 0) end = 0\n } else if (end > len) {\n end = len\n }\n\n if (end < start) end = start\n\n var newBuf\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n newBuf = this.subarray(start, end)\n newBuf.__proto__ = Buffer.prototype\n } else {\n var sliceLen = end - start\n newBuf = new Buffer(sliceLen, undefined)\n for (var i = 0; i < sliceLen; ++i) {\n newBuf[i] = this[i + start]\n }\n }\n\n return newBuf\n}\n\n/*\n * Need to make sure that buffer isn't trying to write out of bounds.\n */\nfunction checkOffset (offset, ext, length) {\n if ((offset % 1) !== 0 || offset < 0) throw new RangeError('offset is not uint')\n if (offset + ext > length) throw new RangeError('Trying to access beyond buffer length')\n}\n\nBuffer.prototype.readUIntLE = function readUIntLE (offset, byteLength, noAssert) {\n offset = offset | 0\n byteLength = byteLength | 0\n if (!noAssert) checkOffset(offset, byteLength, this.length)\n\n var val = this[offset]\n var mul = 1\n var i = 0\n while (++i < byteLength && (mul *= 0x100)) {\n val += this[offset + i] * mul\n }\n\n return val\n}\n\nBuffer.prototype.readUIntBE = function readUIntBE (offset, byteLength, noAssert) {\n offset = offset | 0\n byteLength = byteLength | 0\n if (!noAssert) {\n checkOffset(offset, byteLength, this.length)\n }\n\n var val = this[offset + --byteLength]\n var mul = 1\n while (byteLength > 0 && (mul *= 0x100)) {\n val += this[offset + --byteLength] * mul\n }\n\n return val\n}\n\nBuffer.prototype.readUInt8 = function readUInt8 (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 1, this.length)\n return this[offset]\n}\n\nBuffer.prototype.readUInt16LE = function readUInt16LE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 2, this.length)\n return this[offset] | (this[offset + 1] << 8)\n}\n\nBuffer.prototype.readUInt16BE = function readUInt16BE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 2, this.length)\n return (this[offset] << 8) | this[offset + 1]\n}\n\nBuffer.prototype.readUInt32LE = function readUInt32LE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 4, this.length)\n\n return ((this[offset]) |\n (this[offset + 1] << 8) |\n (this[offset + 2] << 16)) +\n (this[offset + 3] * 0x1000000)\n}\n\nBuffer.prototype.readUInt32BE = function readUInt32BE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 4, this.length)\n\n return (this[offset] * 0x1000000) +\n ((this[offset + 1] << 16) |\n (this[offset + 2] << 8) |\n this[offset + 3])\n}\n\nBuffer.prototype.readIntLE = function readIntLE (offset, byteLength, noAssert) {\n offset = offset | 0\n byteLength = byteLength | 0\n if (!noAssert) checkOffset(offset, byteLength, this.length)\n\n var val = this[offset]\n var mul = 1\n var i = 0\n while (++i < byteLength && (mul *= 0x100)) {\n val += this[offset + i] * mul\n }\n mul *= 0x80\n\n if (val >= mul) val -= Math.pow(2, 8 * byteLength)\n\n return val\n}\n\nBuffer.prototype.readIntBE = function readIntBE (offset, byteLength, noAssert) {\n offset = offset | 0\n byteLength = byteLength | 0\n if (!noAssert) checkOffset(offset, byteLength, this.length)\n\n var i = byteLength\n var mul = 1\n var val = this[offset + --i]\n while (i > 0 && (mul *= 0x100)) {\n val += this[offset + --i] * mul\n }\n mul *= 0x80\n\n if (val >= mul) val -= Math.pow(2, 8 * byteLength)\n\n return val\n}\n\nBuffer.prototype.readInt8 = function readInt8 (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 1, this.length)\n if (!(this[offset] & 0x80)) return (this[offset])\n return ((0xff - this[offset] + 1) * -1)\n}\n\nBuffer.prototype.readInt16LE = function readInt16LE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 2, this.length)\n var val = this[offset] | (this[offset + 1] << 8)\n return (val & 0x8000) ? val | 0xFFFF0000 : val\n}\n\nBuffer.prototype.readInt16BE = function readInt16BE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 2, this.length)\n var val = this[offset + 1] | (this[offset] << 8)\n return (val & 0x8000) ? val | 0xFFFF0000 : val\n}\n\nBuffer.prototype.readInt32LE = function readInt32LE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 4, this.length)\n\n return (this[offset]) |\n (this[offset + 1] << 8) |\n (this[offset + 2] << 16) |\n (this[offset + 3] << 24)\n}\n\nBuffer.prototype.readInt32BE = function readInt32BE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 4, this.length)\n\n return (this[offset] << 24) |\n (this[offset + 1] << 16) |\n (this[offset + 2] << 8) |\n (this[offset + 3])\n}\n\nBuffer.prototype.readFloatLE = function readFloatLE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 4, this.length)\n return ieee754.read(this, offset, true, 23, 4)\n}\n\nBuffer.prototype.readFloatBE = function readFloatBE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 4, this.length)\n return ieee754.read(this, offset, false, 23, 4)\n}\n\nBuffer.prototype.readDoubleLE = function readDoubleLE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 8, this.length)\n return ieee754.read(this, offset, true, 52, 8)\n}\n\nBuffer.prototype.readDoubleBE = function readDoubleBE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 8, this.length)\n return ieee754.read(this, offset, false, 52, 8)\n}\n\nfunction checkInt (buf, value, offset, ext, max, min) {\n if (!Buffer.isBuffer(buf)) throw new TypeError('\"buffer\" argument must be a Buffer instance')\n if (value > max || value < min) throw new RangeError('\"value\" argument is out of bounds')\n if (offset + ext > buf.length) throw new RangeError('Index out of range')\n}\n\nBuffer.prototype.writeUIntLE = function writeUIntLE (value, offset, byteLength, noAssert) {\n value = +value\n offset = offset | 0\n byteLength = byteLength | 0\n if (!noAssert) {\n var maxBytes = Math.pow(2, 8 * byteLength) - 1\n checkInt(this, value, offset, byteLength, maxBytes, 0)\n }\n\n var mul = 1\n var i = 0\n this[offset] = value & 0xFF\n while (++i < byteLength && (mul *= 0x100)) {\n this[offset + i] = (value / mul) & 0xFF\n }\n\n return offset + byteLength\n}\n\nBuffer.prototype.writeUIntBE = function writeUIntBE (value, offset, byteLength, noAssert) {\n value = +value\n offset = offset | 0\n byteLength = byteLength | 0\n if (!noAssert) {\n var maxBytes = Math.pow(2, 8 * byteLength) - 1\n checkInt(this, value, offset, byteLength, maxBytes, 0)\n }\n\n var i = byteLength - 1\n var mul = 1\n this[offset + i] = value & 0xFF\n while (--i >= 0 && (mul *= 0x100)) {\n this[offset + i] = (value / mul) & 0xFF\n }\n\n return offset + byteLength\n}\n\nBuffer.prototype.writeUInt8 = function writeUInt8 (value, offset, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) checkInt(this, value, offset, 1, 0xff, 0)\n if (!Buffer.TYPED_ARRAY_SUPPORT) value = Math.floor(value)\n this[offset] = (value & 0xff)\n return offset + 1\n}\n\nfunction objectWriteUInt16 (buf, value, offset, littleEndian) {\n if (value < 0) value = 0xffff + value + 1\n for (var i = 0, j = Math.min(buf.length - offset, 2); i < j; ++i) {\n buf[offset + i] = (value & (0xff << (8 * (littleEndian ? i : 1 - i)))) >>>\n (littleEndian ? i : 1 - i) * 8\n }\n}\n\nBuffer.prototype.writeUInt16LE = function writeUInt16LE (value, offset, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) checkInt(this, value, offset, 2, 0xffff, 0)\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n this[offset] = (value & 0xff)\n this[offset + 1] = (value >>> 8)\n } else {\n objectWriteUInt16(this, value, offset, true)\n }\n return offset + 2\n}\n\nBuffer.prototype.writeUInt16BE = function writeUInt16BE (value, offset, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) checkInt(this, value, offset, 2, 0xffff, 0)\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n this[offset] = (value >>> 8)\n this[offset + 1] = (value & 0xff)\n } else {\n objectWriteUInt16(this, value, offset, false)\n }\n return offset + 2\n}\n\nfunction objectWriteUInt32 (buf, value, offset, littleEndian) {\n if (value < 0) value = 0xffffffff + value + 1\n for (var i = 0, j = Math.min(buf.length - offset, 4); i < j; ++i) {\n buf[offset + i] = (value >>> (littleEndian ? i : 3 - i) * 8) & 0xff\n }\n}\n\nBuffer.prototype.writeUInt32LE = function writeUInt32LE (value, offset, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) checkInt(this, value, offset, 4, 0xffffffff, 0)\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n this[offset + 3] = (value >>> 24)\n this[offset + 2] = (value >>> 16)\n this[offset + 1] = (value >>> 8)\n this[offset] = (value & 0xff)\n } else {\n objectWriteUInt32(this, value, offset, true)\n }\n return offset + 4\n}\n\nBuffer.prototype.writeUInt32BE = function writeUInt32BE (value, offset, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) checkInt(this, value, offset, 4, 0xffffffff, 0)\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n this[offset] = (value >>> 24)\n this[offset + 1] = (value >>> 16)\n this[offset + 2] = (value >>> 8)\n this[offset + 3] = (value & 0xff)\n } else {\n objectWriteUInt32(this, value, offset, false)\n }\n return offset + 4\n}\n\nBuffer.prototype.writeIntLE = function writeIntLE (value, offset, byteLength, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) {\n var limit = Math.pow(2, 8 * byteLength - 1)\n\n checkInt(this, value, offset, byteLength, limit - 1, -limit)\n }\n\n var i = 0\n var mul = 1\n var sub = 0\n this[offset] = value & 0xFF\n while (++i < byteLength && (mul *= 0x100)) {\n if (value < 0 && sub === 0 && this[offset + i - 1] !== 0) {\n sub = 1\n }\n this[offset + i] = ((value / mul) >> 0) - sub & 0xFF\n }\n\n return offset + byteLength\n}\n\nBuffer.prototype.writeIntBE = function writeIntBE (value, offset, byteLength, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) {\n var limit = Math.pow(2, 8 * byteLength - 1)\n\n checkInt(this, value, offset, byteLength, limit - 1, -limit)\n }\n\n var i = byteLength - 1\n var mul = 1\n var sub = 0\n this[offset + i] = value & 0xFF\n while (--i >= 0 && (mul *= 0x100)) {\n if (value < 0 && sub === 0 && this[offset + i + 1] !== 0) {\n sub = 1\n }\n this[offset + i] = ((value / mul) >> 0) - sub & 0xFF\n }\n\n return offset + byteLength\n}\n\nBuffer.prototype.writeInt8 = function writeInt8 (value, offset, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) checkInt(this, value, offset, 1, 0x7f, -0x80)\n if (!Buffer.TYPED_ARRAY_SUPPORT) value = Math.floor(value)\n if (value < 0) value = 0xff + value + 1\n this[offset] = (value & 0xff)\n return offset + 1\n}\n\nBuffer.prototype.writeInt16LE = function writeInt16LE (value, offset, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) checkInt(this, value, offset, 2, 0x7fff, -0x8000)\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n this[offset] = (value & 0xff)\n this[offset + 1] = (value >>> 8)\n } else {\n objectWriteUInt16(this, value, offset, true)\n }\n return offset + 2\n}\n\nBuffer.prototype.writeInt16BE = function writeInt16BE (value, offset, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) checkInt(this, value, offset, 2, 0x7fff, -0x8000)\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n this[offset] = (value >>> 8)\n this[offset + 1] = (value & 0xff)\n } else {\n objectWriteUInt16(this, value, offset, false)\n }\n return offset + 2\n}\n\nBuffer.prototype.writeInt32LE = function writeInt32LE (value, offset, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) checkInt(this, value, offset, 4, 0x7fffffff, -0x80000000)\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n this[offset] = (value & 0xff)\n this[offset + 1] = (value >>> 8)\n this[offset + 2] = (value >>> 16)\n this[offset + 3] = (value >>> 24)\n } else {\n objectWriteUInt32(this, value, offset, true)\n }\n return offset + 4\n}\n\nBuffer.prototype.writeInt32BE = function writeInt32BE (value, offset, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) checkInt(this, value, offset, 4, 0x7fffffff, -0x80000000)\n if (value < 0) value = 0xffffffff + value + 1\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n this[offset] = (value >>> 24)\n this[offset + 1] = (value >>> 16)\n this[offset + 2] = (value >>> 8)\n this[offset + 3] = (value & 0xff)\n } else {\n objectWriteUInt32(this, value, offset, false)\n }\n return offset + 4\n}\n\nfunction checkIEEE754 (buf, value, offset, ext, max, min) {\n if (offset + ext > buf.length) throw new RangeError('Index out of range')\n if (offset < 0) throw new RangeError('Index out of range')\n}\n\nfunction writeFloat (buf, value, offset, littleEndian, noAssert) {\n if (!noAssert) {\n checkIEEE754(buf, value, offset, 4, 3.4028234663852886e+38, -3.4028234663852886e+38)\n }\n ieee754.write(buf, value, offset, littleEndian, 23, 4)\n return offset + 4\n}\n\nBuffer.prototype.writeFloatLE = function writeFloatLE (value, offset, noAssert) {\n return writeFloat(this, value, offset, true, noAssert)\n}\n\nBuffer.prototype.writeFloatBE = function writeFloatBE (value, offset, noAssert) {\n return writeFloat(this, value, offset, false, noAssert)\n}\n\nfunction writeDouble (buf, value, offset, littleEndian, noAssert) {\n if (!noAssert) {\n checkIEEE754(buf, value, offset, 8, 1.7976931348623157E+308, -1.7976931348623157E+308)\n }\n ieee754.write(buf, value, offset, littleEndian, 52, 8)\n return offset + 8\n}\n\nBuffer.prototype.writeDoubleLE = function writeDoubleLE (value, offset, noAssert) {\n return writeDouble(this, value, offset, true, noAssert)\n}\n\nBuffer.prototype.writeDoubleBE = function writeDoubleBE (value, offset, noAssert) {\n return writeDouble(this, value, offset, false, noAssert)\n}\n\n// copy(targetBuffer, targetStart=0, sourceStart=0, sourceEnd=buffer.length)\nBuffer.prototype.copy = function copy (target, targetStart, start, end) {\n if (!start) start = 0\n if (!end && end !== 0) end = this.length\n if (targetStart >= target.length) targetStart = target.length\n if (!targetStart) targetStart = 0\n if (end > 0 && end < start) end = start\n\n // Copy 0 bytes; we're done\n if (end === start) return 0\n if (target.length === 0 || this.length === 0) return 0\n\n // Fatal error conditions\n if (targetStart < 0) {\n throw new RangeError('targetStart out of bounds')\n }\n if (start < 0 || start >= this.length) throw new RangeError('sourceStart out of bounds')\n if (end < 0) throw new RangeError('sourceEnd out of bounds')\n\n // Are we oob?\n if (end > this.length) end = this.length\n if (target.length - targetStart < end - start) {\n end = target.length - targetStart + start\n }\n\n var len = end - start\n var i\n\n if (this === target && start < targetStart && targetStart < end) {\n // descending copy from end\n for (i = len - 1; i >= 0; --i) {\n target[i + targetStart] = this[i + start]\n }\n } else if (len < 1000 || !Buffer.TYPED_ARRAY_SUPPORT) {\n // ascending copy from start\n for (i = 0; i < len; ++i) {\n target[i + targetStart] = this[i + start]\n }\n } else {\n Uint8Array.prototype.set.call(\n target,\n this.subarray(start, start + len),\n targetStart\n )\n }\n\n return len\n}\n\n// Usage:\n// buffer.fill(number[, offset[, end]])\n// buffer.fill(buffer[, offset[, end]])\n// buffer.fill(string[, offset[, end]][, encoding])\nBuffer.prototype.fill = function fill (val, start, end, encoding) {\n // Handle string cases:\n if (typeof val === 'string') {\n if (typeof start === 'string') {\n encoding = start\n start = 0\n end = this.length\n } else if (typeof end === 'string') {\n encoding = end\n end = this.length\n }\n if (val.length === 1) {\n var code = val.charCodeAt(0)\n if (code < 256) {\n val = code\n }\n }\n if (encoding !== undefined && typeof encoding !== 'string') {\n throw new TypeError('encoding must be a string')\n }\n if (typeof encoding === 'string' && !Buffer.isEncoding(encoding)) {\n throw new TypeError('Unknown encoding: ' + encoding)\n }\n } else if (typeof val === 'number') {\n val = val & 255\n }\n\n // Invalid ranges are not set to a default, so can range check early.\n if (start < 0 || this.length < start || this.length < end) {\n throw new RangeError('Out of range index')\n }\n\n if (end <= start) {\n return this\n }\n\n start = start >>> 0\n end = end === undefined ? this.length : end >>> 0\n\n if (!val) val = 0\n\n var i\n if (typeof val === 'number') {\n for (i = start; i < end; ++i) {\n this[i] = val\n }\n } else {\n var bytes = Buffer.isBuffer(val)\n ? val\n : utf8ToBytes(new Buffer(val, encoding).toString())\n var len = bytes.length\n for (i = 0; i < end - start; ++i) {\n this[i + start] = bytes[i % len]\n }\n }\n\n return this\n}\n\n// HELPER FUNCTIONS\n// ================\n\nvar INVALID_BASE64_RE = /[^+\\/0-9A-Za-z-_]/g\n\nfunction base64clean (str) {\n // Node strips out invalid characters like \\n and \\t from the string, base64-js does not\n str = stringtrim(str).replace(INVALID_BASE64_RE, '')\n // Node converts strings with length < 2 to ''\n if (str.length < 2) return ''\n // Node allows for non-padded base64 strings (missing trailing ===), base64-js does not\n while (str.length % 4 !== 0) {\n str = str + '='\n }\n return str\n}\n\nfunction stringtrim (str) {\n if (str.trim) return str.trim()\n return str.replace(/^\\s+|\\s+$/g, '')\n}\n\nfunction toHex (n) {\n if (n < 16) return '0' + n.toString(16)\n return n.toString(16)\n}\n\nfunction utf8ToBytes (string, units) {\n units = units || Infinity\n var codePoint\n var length = string.length\n var leadSurrogate = null\n var bytes = []\n\n for (var i = 0; i < length; ++i) {\n codePoint = string.charCodeAt(i)\n\n // is surrogate component\n if (codePoint > 0xD7FF && codePoint < 0xE000) {\n // last char was a lead\n if (!leadSurrogate) {\n // no lead yet\n if (codePoint > 0xDBFF) {\n // unexpected trail\n if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD)\n continue\n } else if (i + 1 === length) {\n // unpaired lead\n if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD)\n continue\n }\n\n // valid lead\n leadSurrogate = codePoint\n\n continue\n }\n\n // 2 leads in a row\n if (codePoint < 0xDC00) {\n if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD)\n leadSurrogate = codePoint\n continue\n }\n\n // valid surrogate pair\n codePoint = (leadSurrogate - 0xD800 << 10 | codePoint - 0xDC00) + 0x10000\n } else if (leadSurrogate) {\n // valid bmp char, but last char was a lead\n if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD)\n }\n\n leadSurrogate = null\n\n // encode utf8\n if (codePoint < 0x80) {\n if ((units -= 1) < 0) break\n bytes.push(codePoint)\n } else if (codePoint < 0x800) {\n if ((units -= 2) < 0) break\n bytes.push(\n codePoint >> 0x6 | 0xC0,\n codePoint & 0x3F | 0x80\n )\n } else if (codePoint < 0x10000) {\n if ((units -= 3) < 0) break\n bytes.push(\n codePoint >> 0xC | 0xE0,\n codePoint >> 0x6 & 0x3F | 0x80,\n codePoint & 0x3F | 0x80\n )\n } else if (codePoint < 0x110000) {\n if ((units -= 4) < 0) break\n bytes.push(\n codePoint >> 0x12 | 0xF0,\n codePoint >> 0xC & 0x3F | 0x80,\n codePoint >> 0x6 & 0x3F | 0x80,\n codePoint & 0x3F | 0x80\n )\n } else {\n throw new Error('Invalid code point')\n }\n }\n\n return bytes\n}\n\nfunction asciiToBytes (str) {\n var byteArray = []\n for (var i = 0; i < str.length; ++i) {\n // Node's code seems to be doing this and not & 0x7F..\n byteArray.push(str.charCodeAt(i) & 0xFF)\n }\n return byteArray\n}\n\nfunction utf16leToBytes (str, units) {\n var c, hi, lo\n var byteArray = []\n for (var i = 0; i < str.length; ++i) {\n if ((units -= 2) < 0) break\n\n c = str.charCodeAt(i)\n hi = c >> 8\n lo = c % 256\n byteArray.push(lo)\n byteArray.push(hi)\n }\n\n return byteArray\n}\n\nfunction base64ToBytes (str) {\n return base64.toByteArray(base64clean(str))\n}\n\nfunction blitBuffer (src, dst, offset, length) {\n for (var i = 0; i < length; ++i) {\n if ((i + offset >= dst.length) || (i >= src.length)) break\n dst[i + offset] = src[i]\n }\n return i\n}\n\nfunction isnan (val) {\n return val !== val // eslint-disable-line no-self-compare\n}\n\n/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(/*! ./../webpack/buildin/global.js */ \"./node_modules/webpack/buildin/global.js\")))\n\n//# sourceURL=webpack://mjml/./node_modules/buffer/index.js?")},"./node_modules/builtin-status-codes/browser.js":/*!******************************************************!*\ - !*** ./node_modules/builtin-status-codes/browser.js ***! - \******************************************************/ -/*! no static exports found */ -function(module,exports){eval('module.exports = {\n "100": "Continue",\n "101": "Switching Protocols",\n "102": "Processing",\n "200": "OK",\n "201": "Created",\n "202": "Accepted",\n "203": "Non-Authoritative Information",\n "204": "No Content",\n "205": "Reset Content",\n "206": "Partial Content",\n "207": "Multi-Status",\n "208": "Already Reported",\n "226": "IM Used",\n "300": "Multiple Choices",\n "301": "Moved Permanently",\n "302": "Found",\n "303": "See Other",\n "304": "Not Modified",\n "305": "Use Proxy",\n "307": "Temporary Redirect",\n "308": "Permanent Redirect",\n "400": "Bad Request",\n "401": "Unauthorized",\n "402": "Payment Required",\n "403": "Forbidden",\n "404": "Not Found",\n "405": "Method Not Allowed",\n "406": "Not Acceptable",\n "407": "Proxy Authentication Required",\n "408": "Request Timeout",\n "409": "Conflict",\n "410": "Gone",\n "411": "Length Required",\n "412": "Precondition Failed",\n "413": "Payload Too Large",\n "414": "URI Too Long",\n "415": "Unsupported Media Type",\n "416": "Range Not Satisfiable",\n "417": "Expectation Failed",\n "418": "I\'m a teapot",\n "421": "Misdirected Request",\n "422": "Unprocessable Entity",\n "423": "Locked",\n "424": "Failed Dependency",\n "425": "Unordered Collection",\n "426": "Upgrade Required",\n "428": "Precondition Required",\n "429": "Too Many Requests",\n "431": "Request Header Fields Too Large",\n "451": "Unavailable For Legal Reasons",\n "500": "Internal Server Error",\n "501": "Not Implemented",\n "502": "Bad Gateway",\n "503": "Service Unavailable",\n "504": "Gateway Timeout",\n "505": "HTTP Version Not Supported",\n "506": "Variant Also Negotiates",\n "507": "Insufficient Storage",\n "508": "Loop Detected",\n "509": "Bandwidth Limit Exceeded",\n "510": "Not Extended",\n "511": "Network Authentication Required"\n}\n\n\n//# sourceURL=webpack://mjml/./node_modules/builtin-status-codes/browser.js?')},"./node_modules/cheerio/index.js":/*!***************************************!*\ - !*** ./node_modules/cheerio/index.js ***! - \***************************************/ -/*! no static exports found */ -function(module,exports,__webpack_require__){eval('/**\n * Export cheerio (with )\n */\n\nexports = module.exports = __webpack_require__(/*! ./lib/cheerio */ "./node_modules/cheerio/lib/cheerio.js");\n\n/*\n Export the version\n*/\n\nexports.version = __webpack_require__(/*! ./package.json */ "./node_modules/cheerio/package.json").version;\n\n\n//# sourceURL=webpack://mjml/./node_modules/cheerio/index.js?')},"./node_modules/cheerio/lib/api/attributes.js":/*!****************************************************!*\ - !*** ./node_modules/cheerio/lib/api/attributes.js ***! - \****************************************************/ -/*! no static exports found */ -function(module,exports,__webpack_require__){eval("var $ = __webpack_require__(/*! ../static */ \"./node_modules/cheerio/lib/static.js\"),\n utils = __webpack_require__(/*! ../utils */ \"./node_modules/cheerio/lib/utils.js\"),\n isTag = utils.isTag,\n domEach = utils.domEach,\n hasOwn = Object.prototype.hasOwnProperty,\n camelCase = utils.camelCase,\n cssCase = utils.cssCase,\n rspace = /\\s+/,\n dataAttrPrefix = 'data-',\n _ = {\n forEach: __webpack_require__(/*! lodash.foreach */ \"./node_modules/lodash.foreach/index.js\"),\n extend: __webpack_require__(/*! lodash.assignin */ \"./node_modules/lodash.assignin/index.js\"),\n some: __webpack_require__(/*! lodash.some */ \"./node_modules/lodash.some/index.js\")\n },\n\n // Lookup table for coercing string data-* attributes to their corresponding\n // JavaScript primitives\n primitives = {\n null: null,\n true: true,\n false: false\n },\n\n // Attributes that are booleans\n rboolean = /^(?:autofocus|autoplay|async|checked|controls|defer|disabled|hidden|loop|multiple|open|readonly|required|scoped|selected)$/i,\n // Matches strings that look like JSON objects or arrays\n rbrace = /^(?:\\{[\\w\\W]*\\}|\\[[\\w\\W]*\\])$/;\n\n\nvar getAttr = function(elem, name) {\n if (!elem || !isTag(elem)) return;\n\n if (!elem.attribs) {\n elem.attribs = {};\n }\n\n // Return the entire attribs object if no attribute specified\n if (!name) {\n return elem.attribs;\n }\n\n if (hasOwn.call(elem.attribs, name)) {\n // Get the (decoded) attribute\n return rboolean.test(name) ? name : elem.attribs[name];\n }\n\n // Mimic the DOM and return text content as value for `option's`\n if (elem.name === 'option' && name === 'value') {\n return $.text(elem.children);\n }\n\n // Mimic DOM with default value for radios/checkboxes\n if (elem.name === 'input' &&\n (elem.attribs.type === 'radio' || elem.attribs.type === 'checkbox') &&\n name === 'value') {\n return 'on';\n }\n};\n\nvar setAttr = function(el, name, value) {\n\n if (value === null) {\n removeAttribute(el, name);\n } else {\n el.attribs[name] = value+'';\n }\n};\n\nexports.attr = function(name, value) {\n // Set the value (with attr map support)\n if (typeof name === 'object' || value !== undefined) {\n if (typeof value === 'function') {\n return domEach(this, function(i, el) {\n setAttr(el, name, value.call(el, i, el.attribs[name]));\n });\n }\n return domEach(this, function(i, el) {\n if (!isTag(el)) return;\n\n if (typeof name === 'object') {\n _.forEach(name, function(value, name) {\n setAttr(el, name, value);\n });\n } else {\n setAttr(el, name, value);\n }\n });\n }\n\n return getAttr(this[0], name);\n};\n\nvar getProp = function (el, name) {\n if (!el || !isTag(el)) return;\n \n return el.hasOwnProperty(name)\n ? el[name]\n : rboolean.test(name)\n ? getAttr(el, name) !== undefined\n : getAttr(el, name);\n};\n\nvar setProp = function (el, name, value) {\n el[name] = rboolean.test(name) ? !!value : value;\n};\n\nexports.prop = function (name, value) {\n var i = 0,\n property;\n\n if (typeof name === 'string' && value === undefined) {\n\n switch (name) {\n case 'style':\n property = this.css();\n\n _.forEach(property, function (v, p) {\n property[i++] = p;\n });\n\n property.length = i;\n\n break;\n case 'tagName':\n case 'nodeName':\n property = this[0].name.toUpperCase();\n break;\n default:\n property = getProp(this[0], name);\n }\n\n return property;\n }\n\n if (typeof name === 'object' || value !== undefined) {\n\n if (typeof value === 'function') {\n return domEach(this, function(i, el) {\n setProp(el, name, value.call(el, i, getProp(el, name)));\n });\n }\n\n return domEach(this, function(i, el) {\n if (!isTag(el)) return;\n\n if (typeof name === 'object') {\n\n _.forEach(name, function(val, name) {\n setProp(el, name, val);\n });\n\n } else {\n setProp(el, name, value);\n }\n });\n\n }\n};\n\nvar setData = function(el, name, value) {\n if (!el.data) {\n el.data = {};\n }\n\n if (typeof name === 'object') return _.extend(el.data, name);\n if (typeof name === 'string' && value !== undefined) {\n el.data[name] = value;\n } else if (typeof name === 'object') {\n _.extend(el.data, name);\n }\n};\n\n// Read the specified attribute from the equivalent HTML5 `data-*` attribute,\n// and (if present) cache the value in the node's internal data store. If no\n// attribute name is specified, read *all* HTML5 `data-*` attributes in this\n// manner.\nvar readData = function(el, name) {\n var readAll = arguments.length === 1;\n var domNames, domName, jsNames, jsName, value, idx, length;\n\n if (readAll) {\n domNames = Object.keys(el.attribs).filter(function(attrName) {\n return attrName.slice(0, dataAttrPrefix.length) === dataAttrPrefix;\n });\n jsNames = domNames.map(function(domName) {\n return camelCase(domName.slice(dataAttrPrefix.length));\n });\n } else {\n domNames = [dataAttrPrefix + cssCase(name)];\n jsNames = [name];\n }\n\n for (idx = 0, length = domNames.length; idx < length; ++idx) {\n domName = domNames[idx];\n jsName = jsNames[idx];\n if (hasOwn.call(el.attribs, domName)) {\n value = el.attribs[domName];\n\n if (hasOwn.call(primitives, value)) {\n value = primitives[value];\n } else if (value === String(Number(value))) {\n value = Number(value);\n } else if (rbrace.test(value)) {\n try {\n value = JSON.parse(value);\n } catch(e){ }\n }\n\n el.data[jsName] = value;\n }\n }\n\n return readAll ? el.data : value;\n};\n\nexports.data = function(name, value) {\n var elem = this[0];\n\n if (!elem || !isTag(elem)) return;\n\n if (!elem.data) {\n elem.data = {};\n }\n\n // Return the entire data object if no data specified\n if (!name) {\n return readData(elem);\n }\n\n // Set the value (with attr map support)\n if (typeof name === 'object' || value !== undefined) {\n domEach(this, function(i, el) {\n setData(el, name, value);\n });\n return this;\n } else if (hasOwn.call(elem.data, name)) {\n return elem.data[name];\n }\n\n return readData(elem, name);\n};\n\n/**\n * Get the value of an element\n */\n\nexports.val = function(value) {\n var querying = arguments.length === 0,\n element = this[0];\n\n if(!element) return;\n\n switch (element.name) {\n case 'textarea':\n return this.text(value);\n case 'input':\n switch (this.attr('type')) {\n case 'radio':\n if (querying) {\n return this.attr('value');\n } else {\n this.attr('value', value);\n return this;\n }\n break;\n default:\n return this.attr('value', value);\n }\n return;\n case 'select':\n var option = this.find('option:selected'),\n returnValue;\n if (option === undefined) return undefined;\n if (!querying) {\n if (!this.attr().hasOwnProperty('multiple') && typeof value == 'object') {\n return this;\n }\n if (typeof value != 'object') {\n value = [value];\n }\n this.find('option').removeAttr('selected');\n for (var i = 0; i < value.length; i++) {\n this.find('option[value=\"' + value[i] + '\"]').attr('selected', '');\n }\n return this;\n }\n returnValue = option.attr('value');\n if (this.attr().hasOwnProperty('multiple')) {\n returnValue = [];\n domEach(option, function(i, el) {\n returnValue.push(getAttr(el, 'value'));\n });\n }\n return returnValue;\n case 'option':\n if (!querying) {\n this.attr('value', value);\n return this;\n }\n return this.attr('value');\n }\n};\n\n/**\n * Remove an attribute\n */\n\nvar removeAttribute = function(elem, name) {\n if (!elem.attribs || !hasOwn.call(elem.attribs, name))\n return;\n\n delete elem.attribs[name];\n};\n\n\nexports.removeAttr = function(name) {\n domEach(this, function(i, elem) {\n removeAttribute(elem, name);\n });\n\n return this;\n};\n\nexports.hasClass = function(className) {\n return _.some(this, function(elem) {\n var attrs = elem.attribs,\n clazz = attrs && attrs['class'],\n idx = -1,\n end;\n\n if (clazz) {\n while ((idx = clazz.indexOf(className, idx+1)) > -1) {\n end = idx + className.length;\n\n if ((idx === 0 || rspace.test(clazz[idx-1]))\n && (end === clazz.length || rspace.test(clazz[end]))) {\n return true;\n }\n }\n }\n });\n};\n\nexports.addClass = function(value) {\n // Support functions\n if (typeof value === 'function') {\n return domEach(this, function(i, el) {\n var className = el.attribs['class'] || '';\n exports.addClass.call([el], value.call(el, i, className));\n });\n }\n\n // Return if no value or not a string or function\n if (!value || typeof value !== 'string') return this;\n\n var classNames = value.split(rspace),\n numElements = this.length;\n\n\n for (var i = 0; i < numElements; i++) {\n // If selected element isn't a tag, move on\n if (!isTag(this[i])) continue;\n\n // If we don't already have classes\n var className = getAttr(this[i], 'class'),\n numClasses,\n setClass;\n\n if (!className) {\n setAttr(this[i], 'class', classNames.join(' ').trim());\n } else {\n setClass = ' ' + className + ' ';\n numClasses = classNames.length;\n\n // Check if class already exists\n for (var j = 0; j < numClasses; j++) {\n var appendClass = classNames[j] + ' ';\n if (setClass.indexOf(' ' + appendClass) < 0)\n setClass += appendClass;\n }\n\n setAttr(this[i], 'class', setClass.trim());\n }\n }\n\n return this;\n};\n\nvar splitClass = function(className) {\n return className ? className.trim().split(rspace) : [];\n};\n\nexports.removeClass = function(value) {\n var classes,\n numClasses,\n removeAll;\n\n // Handle if value is a function\n if (typeof value === 'function') {\n return domEach(this, function(i, el) {\n exports.removeClass.call(\n [el], value.call(el, i, el.attribs['class'] || '')\n );\n });\n }\n\n classes = splitClass(value);\n numClasses = classes.length;\n removeAll = arguments.length === 0;\n\n return domEach(this, function(i, el) {\n if (!isTag(el)) return;\n\n if (removeAll) {\n // Short circuit the remove all case as this is the nice one\n el.attribs.class = '';\n } else {\n var elClasses = splitClass(el.attribs.class),\n index,\n changed;\n\n for (var j = 0; j < numClasses; j++) {\n index = elClasses.indexOf(classes[j]);\n\n if (index >= 0) {\n elClasses.splice(index, 1);\n changed = true;\n\n // We have to do another pass to ensure that there are not duplicate\n // classes listed\n j--;\n }\n }\n if (changed) {\n el.attribs.class = elClasses.join(' ');\n }\n }\n });\n};\n\nexports.toggleClass = function(value, stateVal) {\n // Support functions\n if (typeof value === 'function') {\n return domEach(this, function(i, el) {\n exports.toggleClass.call(\n [el],\n value.call(el, i, el.attribs['class'] || '', stateVal),\n stateVal\n );\n });\n }\n\n // Return if no value or not a string or function\n if (!value || typeof value !== 'string') return this;\n\n var classNames = value.split(rspace),\n numClasses = classNames.length,\n state = typeof stateVal === 'boolean' ? stateVal ? 1 : -1 : 0,\n numElements = this.length,\n elementClasses,\n index;\n\n for (var i = 0; i < numElements; i++) {\n // If selected element isn't a tag, move on\n if (!isTag(this[i])) continue;\n\n elementClasses = splitClass(this[i].attribs.class);\n\n // Check if class already exists\n for (var j = 0; j < numClasses; j++) {\n // Check if the class name is currently defined\n index = elementClasses.indexOf(classNames[j]);\n\n // Add if stateValue === true or we are toggling and there is no value\n if (state >= 0 && index < 0) {\n elementClasses.push(classNames[j]);\n } else if (state <= 0 && index >= 0) {\n // Otherwise remove but only if the item exists\n elementClasses.splice(index, 1);\n }\n }\n\n this[i].attribs.class = elementClasses.join(' ');\n }\n\n return this;\n};\n\nexports.is = function (selector) {\n if (selector) {\n return this.filter(selector).length > 0;\n }\n return false;\n};\n\n\n\n//# sourceURL=webpack://mjml/./node_modules/cheerio/lib/api/attributes.js?")},"./node_modules/cheerio/lib/api/css.js":/*!*********************************************!*\ - !*** ./node_modules/cheerio/lib/api/css.js ***! - \*********************************************/ -/*! no static exports found */ -function(module,exports,__webpack_require__){eval("var domEach = __webpack_require__(/*! ../utils */ \"./node_modules/cheerio/lib/utils.js\").domEach,\n _ = {\n pick: __webpack_require__(/*! lodash.pick */ \"./node_modules/lodash.pick/index.js\"),\n };\n\nvar toString = Object.prototype.toString;\n\n/**\n * Set / Get css.\n *\n * @param {String|Object} prop\n * @param {String} val\n * @return {self}\n * @api public\n */\n\nexports.css = function(prop, val) {\n if (arguments.length === 2 ||\n // When `prop` is a \"plain\" object\n (toString.call(prop) === '[object Object]')) {\n return domEach(this, function(idx, el) {\n setCss(el, prop, val, idx);\n });\n } else {\n return getCss(this[0], prop);\n }\n};\n\n/**\n * Set styles of all elements.\n *\n * @param {String|Object} prop\n * @param {String} val\n * @param {Number} idx - optional index within the selection\n * @return {self}\n * @api private\n */\n\nfunction setCss(el, prop, val, idx) {\n if ('string' == typeof prop) {\n var styles = getCss(el);\n if (typeof val === 'function') {\n val = val.call(el, idx, styles[prop]);\n }\n\n if (val === '') {\n delete styles[prop];\n } else if (val != null) {\n styles[prop] = val;\n }\n\n el.attribs.style = stringify(styles);\n } else if ('object' == typeof prop) {\n Object.keys(prop).forEach(function(k){\n setCss(el, k, prop[k]);\n });\n }\n}\n\n/**\n * Get parsed styles of the first element.\n *\n * @param {String} prop\n * @return {Object}\n * @api private\n */\n\nfunction getCss(el, prop) {\n var styles = parse(el.attribs.style);\n if (typeof prop === 'string') {\n return styles[prop];\n } else if (Array.isArray(prop)) {\n return _.pick(styles, prop);\n } else {\n return styles;\n }\n}\n\n/**\n * Stringify `obj` to styles.\n *\n * @param {Object} obj\n * @return {Object}\n * @api private\n */\n\nfunction stringify(obj) {\n return Object.keys(obj || {})\n .reduce(function(str, prop){\n return str += ''\n + (str ? ' ' : '')\n + prop\n + ': '\n + obj[prop]\n + ';';\n }, '');\n}\n\n/**\n * Parse `styles`.\n *\n * @param {String} styles\n * @return {Object}\n * @api private\n */\n\nfunction parse(styles) {\n styles = (styles || '').trim();\n\n if (!styles) return {};\n\n return styles\n .split(';')\n .reduce(function(obj, str){\n var n = str.indexOf(':');\n // skip if there is no :, or if it is the first/last character\n if (n < 1 || n === str.length-1) return obj;\n obj[str.slice(0,n).trim()] = str.slice(n+1).trim();\n return obj;\n }, {});\n}\n\n\n//# sourceURL=webpack://mjml/./node_modules/cheerio/lib/api/css.js?")},"./node_modules/cheerio/lib/api/forms.js":/*!***********************************************!*\ - !*** ./node_modules/cheerio/lib/api/forms.js ***! - \***********************************************/ -/*! no static exports found */ -function(module,exports,__webpack_require__){eval("// https://github.com/jquery/jquery/blob/2.1.3/src/manipulation/var/rcheckableType.js\n// https://github.com/jquery/jquery/blob/2.1.3/src/serialize.js\nvar submittableSelector = 'input,select,textarea,keygen',\n r20 = /%20/g,\n rCRLF = /\\r?\\n/g,\n _ = {\n map: __webpack_require__(/*! lodash.map */ \"./node_modules/lodash.map/index.js\")\n };\n\nexports.serialize = function() {\n // Convert form elements into name/value objects\n var arr = this.serializeArray();\n\n // Serialize each element into a key/value string\n var retArr = _.map(arr, function(data) {\n return encodeURIComponent(data.name) + '=' + encodeURIComponent(data.value);\n });\n\n // Return the resulting serialization\n return retArr.join('&').replace(r20, '+');\n};\n\nexports.serializeArray = function() {\n // Resolve all form elements from either forms or collections of form elements\n var Cheerio = this.constructor;\n return this.map(function() {\n var elem = this;\n var $elem = Cheerio(elem);\n if (elem.name === 'form') {\n return $elem.find(submittableSelector).toArray();\n } else {\n return $elem.filter(submittableSelector).toArray();\n }\n }).filter(\n // Verify elements have a name (`attr.name`) and are not disabled (`:disabled`)\n '[name!=\"\"]:not(:disabled)'\n // and cannot be clicked (`[type=submit]`) or are used in `x-www-form-urlencoded` (`[type=file]`)\n + ':not(:submit, :button, :image, :reset, :file)'\n // and are either checked/don't have a checkable state\n + ':matches([checked], :not(:checkbox, :radio))'\n // Convert each of the elements to its value(s)\n ).map(function(i, elem) {\n var $elem = Cheerio(elem);\n var name = $elem.attr('name');\n var val = $elem.val();\n\n // If there is no value set (e.g. `undefined`, `null`), then return nothing\n if (val == null) {\n return null;\n } else {\n // If we have an array of values (e.g. `