UNPKG

683 kBJavaScriptView Raw
1(function(e, a) { for(var i in a) e[i] = a[i]; }(exports, /******/ (function(modules) { // webpackBootstrap
2/******/ // The module cache
3/******/ var installedModules = {};
4/******/
5/******/ // The require function
6/******/ function __webpack_require__(moduleId) {
7/******/
8/******/ // Check if module is in cache
9/******/ if(installedModules[moduleId]) {
10/******/ return installedModules[moduleId].exports;
11/******/ }
12/******/ // Create a new module (and put it into the cache)
13/******/ var module = installedModules[moduleId] = {
14/******/ i: moduleId,
15/******/ l: false,
16/******/ exports: {}
17/******/ };
18/******/
19/******/ // Execute the module function
20/******/ modules[moduleId].call(module.exports, module, module.exports, __webpack_require__);
21/******/
22/******/ // Flag the module as loaded
23/******/ module.l = true;
24/******/
25/******/ // Return the exports of the module
26/******/ return module.exports;
27/******/ }
28/******/
29/******/
30/******/ // expose the modules object (__webpack_modules__)
31/******/ __webpack_require__.m = modules;
32/******/
33/******/ // expose the module cache
34/******/ __webpack_require__.c = installedModules;
35/******/
36/******/ // define getter function for harmony exports
37/******/ __webpack_require__.d = function(exports, name, getter) {
38/******/ if(!__webpack_require__.o(exports, name)) {
39/******/ Object.defineProperty(exports, name, { enumerable: true, get: getter });
40/******/ }
41/******/ };
42/******/
43/******/ // define __esModule on exports
44/******/ __webpack_require__.r = function(exports) {
45/******/ if(typeof Symbol !== 'undefined' && Symbol.toStringTag) {
46/******/ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
47/******/ }
48/******/ Object.defineProperty(exports, '__esModule', { value: true });
49/******/ };
50/******/
51/******/ // create a fake namespace object
52/******/ // mode & 1: value is a module id, require it
53/******/ // mode & 2: merge all properties of value into the ns
54/******/ // mode & 4: return value when already ns object
55/******/ // mode & 8|1: behave like require
56/******/ __webpack_require__.t = function(value, mode) {
57/******/ if(mode & 1) value = __webpack_require__(value);
58/******/ if(mode & 8) return value;
59/******/ if((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;
60/******/ var ns = Object.create(null);
61/******/ __webpack_require__.r(ns);
62/******/ Object.defineProperty(ns, 'default', { enumerable: true, value: value });
63/******/ if(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));
64/******/ return ns;
65/******/ };
66/******/
67/******/ // getDefaultExport function for compatibility with non-harmony modules
68/******/ __webpack_require__.n = function(module) {
69/******/ var getter = module && module.__esModule ?
70/******/ function getDefault() { return module['default']; } :
71/******/ function getModuleExports() { return module; };
72/******/ __webpack_require__.d(getter, 'a', getter);
73/******/ return getter;
74/******/ };
75/******/
76/******/ // Object.prototype.hasOwnProperty.call
77/******/ __webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };
78/******/
79/******/ // __webpack_public_path__
80/******/ __webpack_require__.p = "";
81/******/
82/******/
83/******/ // Load entry module and return exports
84/******/ return __webpack_require__(__webpack_require__.s = 2);
85/******/ })
86/************************************************************************/
87/******/ ([
88/* 0 */
89/***/ (function(module, exports) {
90
91module.exports = require("graphql-codegen-core");
92
93/***/ }),
94/* 1 */
95/***/ (function(module, exports) {
96
97module.exports = require("graphql-codegen-plugin-helpers");
98
99/***/ }),
100/* 2 */
101/***/ (function(module, exports, __webpack_require__) {
102
103"use strict";
104
105var __assign = (this && this.__assign) || function () {
106 __assign = Object.assign || function(t) {
107 for (var s, i = 1, n = arguments.length; i < n; i++) {
108 s = arguments[i];
109 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
110 t[p] = s[p];
111 }
112 return t;
113 };
114 return __assign.apply(this, arguments);
115};
116var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
117 return new (P || (P = Promise))(function (resolve, reject) {
118 function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
119 function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
120 function step(result) { result.done ? resolve(result.value) : new P(function (resolve) { resolve(result.value); }).then(fulfilled, rejected); }
121 step((generator = generator.apply(thisArg, _arguments || [])).next());
122 });
123};
124var __generator = (this && this.__generator) || function (thisArg, body) {
125 var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
126 return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
127 function verb(n) { return function (v) { return step([n, v]); }; }
128 function step(op) {
129 if (f) throw new TypeError("Generator is already executing.");
130 while (_) try {
131 if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
132 if (y = 0, t) op = [op[0] & 2, t.value];
133 switch (op[0]) {
134 case 0: case 1: t = op; break;
135 case 4: _.label++; return { value: op[1], done: false };
136 case 5: _.label++; y = op[1]; op = [0]; continue;
137 case 7: op = _.ops.pop(); _.trys.pop(); continue;
138 default:
139 if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
140 if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
141 if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
142 if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
143 if (t[2]) _.ops.pop();
144 _.trys.pop(); continue;
145 }
146 op = body.call(thisArg, _);
147 } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
148 if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
149 }
150};
151var _this = this;
152Object.defineProperty(exports, "__esModule", { value: true });
153var graphql_codegen_typescript_common_1 = __webpack_require__(3);
154var graphql_codegen_core_1 = __webpack_require__(0);
155var graphql_codegen_plugin_helpers_1 = __webpack_require__(1);
156var Handlebars = __webpack_require__(4);
157var rootTemplate = __webpack_require__(5);
158var helpers_1 = __webpack_require__(6);
159var path_1 = __webpack_require__(9);
160exports.plugin = function (schema, documents, config) { return __awaiter(_this, void 0, void 0, function () {
161 var _a, templateContext, convert, transformedDocuments, flattenDocuments, hbsContext;
162 return __generator(this, function (_b) {
163 _a = graphql_codegen_typescript_common_1.initCommonTemplate(Handlebars, schema, config), templateContext = _a.templateContext, convert = _a.convert;
164 transformedDocuments = graphql_codegen_core_1.transformDocumentsFiles(schema, documents);
165 flattenDocuments = graphql_codegen_plugin_helpers_1.flattenTypes(transformedDocuments);
166 Handlebars.registerHelper('generateFragments', helpers_1.generateFragments(convert));
167 Handlebars.registerHelper('gql', helpers_1.gql(convert));
168 hbsContext = __assign({}, templateContext, flattenDocuments);
169 return [2 /*return*/, Handlebars.compile(rootTemplate)(hbsContext)];
170 });
171}); };
172exports.validate = function (schema, documents, config, outputFile) { return __awaiter(_this, void 0, void 0, function () {
173 return __generator(this, function (_a) {
174 if (path_1.extname(outputFile) !== '.tsx') {
175 throw new Error("Plugin \"stencil-apollo\" requires extension to be \".tsx\"!");
176 }
177 return [2 /*return*/];
178 });
179}); };
180
181
182/***/ }),
183/* 3 */
184/***/ (function(module, exports, __webpack_require__) {
185
186(function(e, a) { for(var i in a) e[i] = a[i]; }(exports, /******/ (function(modules) { // webpackBootstrap
187/******/ // The module cache
188/******/ var installedModules = {};
189/******/
190/******/ // The require function
191/******/ function __webpack_require__(moduleId) {
192/******/
193/******/ // Check if module is in cache
194/******/ if(installedModules[moduleId]) {
195/******/ return installedModules[moduleId].exports;
196/******/ }
197/******/ // Create a new module (and put it into the cache)
198/******/ var module = installedModules[moduleId] = {
199/******/ i: moduleId,
200/******/ l: false,
201/******/ exports: {}
202/******/ };
203/******/
204/******/ // Execute the module function
205/******/ modules[moduleId].call(module.exports, module, module.exports, __webpack_require__);
206/******/
207/******/ // Flag the module as loaded
208/******/ module.l = true;
209/******/
210/******/ // Return the exports of the module
211/******/ return module.exports;
212/******/ }
213/******/
214/******/
215/******/ // expose the modules object (__webpack_modules__)
216/******/ __webpack_require__.m = modules;
217/******/
218/******/ // expose the module cache
219/******/ __webpack_require__.c = installedModules;
220/******/
221/******/ // define getter function for harmony exports
222/******/ __webpack_require__.d = function(exports, name, getter) {
223/******/ if(!__webpack_require__.o(exports, name)) {
224/******/ Object.defineProperty(exports, name, { enumerable: true, get: getter });
225/******/ }
226/******/ };
227/******/
228/******/ // define __esModule on exports
229/******/ __webpack_require__.r = function(exports) {
230/******/ if(typeof Symbol !== 'undefined' && Symbol.toStringTag) {
231/******/ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
232/******/ }
233/******/ Object.defineProperty(exports, '__esModule', { value: true });
234/******/ };
235/******/
236/******/ // create a fake namespace object
237/******/ // mode & 1: value is a module id, require it
238/******/ // mode & 2: merge all properties of value into the ns
239/******/ // mode & 4: return value when already ns object
240/******/ // mode & 8|1: behave like require
241/******/ __webpack_require__.t = function(value, mode) {
242/******/ if(mode & 1) value = __webpack_require__(value);
243/******/ if(mode & 8) return value;
244/******/ if((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;
245/******/ var ns = Object.create(null);
246/******/ __webpack_require__.r(ns);
247/******/ Object.defineProperty(ns, 'default', { enumerable: true, value: value });
248/******/ if(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));
249/******/ return ns;
250/******/ };
251/******/
252/******/ // getDefaultExport function for compatibility with non-harmony modules
253/******/ __webpack_require__.n = function(module) {
254/******/ var getter = module && module.__esModule ?
255/******/ function getDefault() { return module['default']; } :
256/******/ function getModuleExports() { return module; };
257/******/ __webpack_require__.d(getter, 'a', getter);
258/******/ return getter;
259/******/ };
260/******/
261/******/ // Object.prototype.hasOwnProperty.call
262/******/ __webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };
263/******/
264/******/ // __webpack_public_path__
265/******/ __webpack_require__.p = "";
266/******/
267/******/
268/******/ // Load entry module and return exports
269/******/ return __webpack_require__(__webpack_require__.s = 8);
270/******/ })
271/************************************************************************/
272/******/ ([
273/* 0 */
274/***/ (function(module, exports, __webpack_require__) {
275
276var lowerCase = __webpack_require__(2)
277
278var NON_WORD_REGEXP = __webpack_require__(16)
279var CAMEL_CASE_REGEXP = __webpack_require__(17)
280var CAMEL_CASE_UPPER_REGEXP = __webpack_require__(18)
281
282/**
283 * Sentence case a string.
284 *
285 * @param {string} str
286 * @param {string} locale
287 * @param {string} replacement
288 * @return {string}
289 */
290module.exports = function (str, locale, replacement) {
291 if (str == null) {
292 return ''
293 }
294
295 replacement = typeof replacement !== 'string' ? ' ' : replacement
296
297 function replace (match, index, value) {
298 if (index === 0 || index === (value.length - match.length)) {
299 return ''
300 }
301
302 return replacement
303 }
304
305 str = String(str)
306 // Support camel case ("camelCase" -> "camel Case").
307 .replace(CAMEL_CASE_REGEXP, '$1 $2')
308 // Support odd camel case ("CAMELCase" -> "CAMEL Case").
309 .replace(CAMEL_CASE_UPPER_REGEXP, '$1 $2')
310 // Remove all non-word characters and replace with a single space.
311 .replace(NON_WORD_REGEXP, replace)
312
313 // Lower case the entire string.
314 return lowerCase(str, locale)
315}
316
317
318/***/ }),
319/* 1 */
320/***/ (function(module, exports) {
321
322/**
323 * Special language-specific overrides.
324 *
325 * Source: ftp://ftp.unicode.org/Public/UCD/latest/ucd/SpecialCasing.txt
326 *
327 * @type {Object}
328 */
329var LANGUAGES = {
330 tr: {
331 regexp: /[\u0069]/g,
332 map: {
333 '\u0069': '\u0130'
334 }
335 },
336 az: {
337 regexp: /[\u0069]/g,
338 map: {
339 '\u0069': '\u0130'
340 }
341 },
342 lt: {
343 regexp: /[\u0069\u006A\u012F]\u0307|\u0069\u0307[\u0300\u0301\u0303]/g,
344 map: {
345 '\u0069\u0307': '\u0049',
346 '\u006A\u0307': '\u004A',
347 '\u012F\u0307': '\u012E',
348 '\u0069\u0307\u0300': '\u00CC',
349 '\u0069\u0307\u0301': '\u00CD',
350 '\u0069\u0307\u0303': '\u0128'
351 }
352 }
353}
354
355/**
356 * Upper case a string.
357 *
358 * @param {String} str
359 * @return {String}
360 */
361module.exports = function (str, locale) {
362 var lang = LANGUAGES[locale]
363
364 str = str == null ? '' : String(str)
365
366 if (lang) {
367 str = str.replace(lang.regexp, function (m) { return lang.map[m] })
368 }
369
370 return str.toUpperCase()
371}
372
373
374/***/ }),
375/* 2 */
376/***/ (function(module, exports) {
377
378/**
379 * Special language-specific overrides.
380 *
381 * Source: ftp://ftp.unicode.org/Public/UCD/latest/ucd/SpecialCasing.txt
382 *
383 * @type {Object}
384 */
385var LANGUAGES = {
386 tr: {
387 regexp: /\u0130|\u0049|\u0049\u0307/g,
388 map: {
389 '\u0130': '\u0069',
390 '\u0049': '\u0131',
391 '\u0049\u0307': '\u0069'
392 }
393 },
394 az: {
395 regexp: /[\u0130]/g,
396 map: {
397 '\u0130': '\u0069',
398 '\u0049': '\u0131',
399 '\u0049\u0307': '\u0069'
400 }
401 },
402 lt: {
403 regexp: /[\u0049\u004A\u012E\u00CC\u00CD\u0128]/g,
404 map: {
405 '\u0049': '\u0069\u0307',
406 '\u004A': '\u006A\u0307',
407 '\u012E': '\u012F\u0307',
408 '\u00CC': '\u0069\u0307\u0300',
409 '\u00CD': '\u0069\u0307\u0301',
410 '\u0128': '\u0069\u0307\u0303'
411 }
412 }
413}
414
415/**
416 * Lowercase a string.
417 *
418 * @param {String} str
419 * @return {String}
420 */
421module.exports = function (str, locale) {
422 var lang = LANGUAGES[locale]
423
424 str = str == null ? '' : String(str)
425
426 if (lang) {
427 str = str.replace(lang.regexp, function (m) { return lang.map[m] })
428 }
429
430 return str.toLowerCase()
431}
432
433
434/***/ }),
435/* 3 */
436/***/ (function(module, exports, __webpack_require__) {
437
438var upperCase = __webpack_require__(1)
439
440/**
441 * Upper case the first character of a string.
442 *
443 * @param {String} str
444 * @return {String}
445 */
446module.exports = function (str, locale) {
447 if (str == null) {
448 return ''
449 }
450
451 str = String(str)
452
453 return upperCase(str.charAt(0), locale) + str.substr(1)
454}
455
456
457/***/ }),
458/* 4 */
459/***/ (function(module, exports, __webpack_require__) {
460
461/**!
462
463 @license
464 handlebars v4.0.12
465
466Copyright (C) 2011-2017 by Yehuda Katz
467
468Permission is hereby granted, free of charge, to any person obtaining a copy
469of this software and associated documentation files (the "Software"), to deal
470in the Software without restriction, including without limitation the rights
471to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
472copies of the Software, and to permit persons to whom the Software is
473furnished to do so, subject to the following conditions:
474
475The above copyright notice and this permission notice shall be included in
476all copies or substantial portions of the Software.
477
478THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
479IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
480FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
481AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
482LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
483OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
484THE SOFTWARE.
485
486*/
487(function webpackUniversalModuleDefinition(root, factory) {
488 if(true)
489 module.exports = factory();
490 else {}
491})(this, function() {
492return /******/ (function(modules) { // webpackBootstrap
493/******/ // The module cache
494/******/ var installedModules = {};
495
496/******/ // The require function
497/******/ function __webpack_require__(moduleId) {
498
499/******/ // Check if module is in cache
500/******/ if(installedModules[moduleId])
501/******/ return installedModules[moduleId].exports;
502
503/******/ // Create a new module (and put it into the cache)
504/******/ var module = installedModules[moduleId] = {
505/******/ exports: {},
506/******/ id: moduleId,
507/******/ loaded: false
508/******/ };
509
510/******/ // Execute the module function
511/******/ modules[moduleId].call(module.exports, module, module.exports, __webpack_require__);
512
513/******/ // Flag the module as loaded
514/******/ module.loaded = true;
515
516/******/ // Return the exports of the module
517/******/ return module.exports;
518/******/ }
519
520
521/******/ // expose the modules object (__webpack_modules__)
522/******/ __webpack_require__.m = modules;
523
524/******/ // expose the module cache
525/******/ __webpack_require__.c = installedModules;
526
527/******/ // __webpack_public_path__
528/******/ __webpack_require__.p = "";
529
530/******/ // Load entry module and return exports
531/******/ return __webpack_require__(0);
532/******/ })
533/************************************************************************/
534/******/ ([
535/* 0 */
536/***/ (function(module, exports, __webpack_require__) {
537
538 'use strict';
539
540 var _interopRequireDefault = __webpack_require__(1)['default'];
541
542 exports.__esModule = true;
543
544 var _handlebarsRuntime = __webpack_require__(2);
545
546 var _handlebarsRuntime2 = _interopRequireDefault(_handlebarsRuntime);
547
548 // Compiler imports
549
550 var _handlebarsCompilerAst = __webpack_require__(35);
551
552 var _handlebarsCompilerAst2 = _interopRequireDefault(_handlebarsCompilerAst);
553
554 var _handlebarsCompilerBase = __webpack_require__(36);
555
556 var _handlebarsCompilerCompiler = __webpack_require__(41);
557
558 var _handlebarsCompilerJavascriptCompiler = __webpack_require__(42);
559
560 var _handlebarsCompilerJavascriptCompiler2 = _interopRequireDefault(_handlebarsCompilerJavascriptCompiler);
561
562 var _handlebarsCompilerVisitor = __webpack_require__(39);
563
564 var _handlebarsCompilerVisitor2 = _interopRequireDefault(_handlebarsCompilerVisitor);
565
566 var _handlebarsNoConflict = __webpack_require__(34);
567
568 var _handlebarsNoConflict2 = _interopRequireDefault(_handlebarsNoConflict);
569
570 var _create = _handlebarsRuntime2['default'].create;
571 function create() {
572 var hb = _create();
573
574 hb.compile = function (input, options) {
575 return _handlebarsCompilerCompiler.compile(input, options, hb);
576 };
577 hb.precompile = function (input, options) {
578 return _handlebarsCompilerCompiler.precompile(input, options, hb);
579 };
580
581 hb.AST = _handlebarsCompilerAst2['default'];
582 hb.Compiler = _handlebarsCompilerCompiler.Compiler;
583 hb.JavaScriptCompiler = _handlebarsCompilerJavascriptCompiler2['default'];
584 hb.Parser = _handlebarsCompilerBase.parser;
585 hb.parse = _handlebarsCompilerBase.parse;
586
587 return hb;
588 }
589
590 var inst = create();
591 inst.create = create;
592
593 _handlebarsNoConflict2['default'](inst);
594
595 inst.Visitor = _handlebarsCompilerVisitor2['default'];
596
597 inst['default'] = inst;
598
599 exports['default'] = inst;
600 module.exports = exports['default'];
601
602/***/ }),
603/* 1 */
604/***/ (function(module, exports) {
605
606 "use strict";
607
608 exports["default"] = function (obj) {
609 return obj && obj.__esModule ? obj : {
610 "default": obj
611 };
612 };
613
614 exports.__esModule = true;
615
616/***/ }),
617/* 2 */
618/***/ (function(module, exports, __webpack_require__) {
619
620 'use strict';
621
622 var _interopRequireWildcard = __webpack_require__(3)['default'];
623
624 var _interopRequireDefault = __webpack_require__(1)['default'];
625
626 exports.__esModule = true;
627
628 var _handlebarsBase = __webpack_require__(4);
629
630 var base = _interopRequireWildcard(_handlebarsBase);
631
632 // Each of these augment the Handlebars object. No need to setup here.
633 // (This is done to easily share code between commonjs and browse envs)
634
635 var _handlebarsSafeString = __webpack_require__(21);
636
637 var _handlebarsSafeString2 = _interopRequireDefault(_handlebarsSafeString);
638
639 var _handlebarsException = __webpack_require__(6);
640
641 var _handlebarsException2 = _interopRequireDefault(_handlebarsException);
642
643 var _handlebarsUtils = __webpack_require__(5);
644
645 var Utils = _interopRequireWildcard(_handlebarsUtils);
646
647 var _handlebarsRuntime = __webpack_require__(22);
648
649 var runtime = _interopRequireWildcard(_handlebarsRuntime);
650
651 var _handlebarsNoConflict = __webpack_require__(34);
652
653 var _handlebarsNoConflict2 = _interopRequireDefault(_handlebarsNoConflict);
654
655 // For compatibility and usage outside of module systems, make the Handlebars object a namespace
656 function create() {
657 var hb = new base.HandlebarsEnvironment();
658
659 Utils.extend(hb, base);
660 hb.SafeString = _handlebarsSafeString2['default'];
661 hb.Exception = _handlebarsException2['default'];
662 hb.Utils = Utils;
663 hb.escapeExpression = Utils.escapeExpression;
664
665 hb.VM = runtime;
666 hb.template = function (spec) {
667 return runtime.template(spec, hb);
668 };
669
670 return hb;
671 }
672
673 var inst = create();
674 inst.create = create;
675
676 _handlebarsNoConflict2['default'](inst);
677
678 inst['default'] = inst;
679
680 exports['default'] = inst;
681 module.exports = exports['default'];
682
683/***/ }),
684/* 3 */
685/***/ (function(module, exports) {
686
687 "use strict";
688
689 exports["default"] = function (obj) {
690 if (obj && obj.__esModule) {
691 return obj;
692 } else {
693 var newObj = {};
694
695 if (obj != null) {
696 for (var key in obj) {
697 if (Object.prototype.hasOwnProperty.call(obj, key)) newObj[key] = obj[key];
698 }
699 }
700
701 newObj["default"] = obj;
702 return newObj;
703 }
704 };
705
706 exports.__esModule = true;
707
708/***/ }),
709/* 4 */
710/***/ (function(module, exports, __webpack_require__) {
711
712 'use strict';
713
714 var _interopRequireDefault = __webpack_require__(1)['default'];
715
716 exports.__esModule = true;
717 exports.HandlebarsEnvironment = HandlebarsEnvironment;
718
719 var _utils = __webpack_require__(5);
720
721 var _exception = __webpack_require__(6);
722
723 var _exception2 = _interopRequireDefault(_exception);
724
725 var _helpers = __webpack_require__(10);
726
727 var _decorators = __webpack_require__(18);
728
729 var _logger = __webpack_require__(20);
730
731 var _logger2 = _interopRequireDefault(_logger);
732
733 var VERSION = '4.0.12';
734 exports.VERSION = VERSION;
735 var COMPILER_REVISION = 7;
736
737 exports.COMPILER_REVISION = COMPILER_REVISION;
738 var REVISION_CHANGES = {
739 1: '<= 1.0.rc.2', // 1.0.rc.2 is actually rev2 but doesn't report it
740 2: '== 1.0.0-rc.3',
741 3: '== 1.0.0-rc.4',
742 4: '== 1.x.x',
743 5: '== 2.0.0-alpha.x',
744 6: '>= 2.0.0-beta.1',
745 7: '>= 4.0.0'
746 };
747
748 exports.REVISION_CHANGES = REVISION_CHANGES;
749 var objectType = '[object Object]';
750
751 function HandlebarsEnvironment(helpers, partials, decorators) {
752 this.helpers = helpers || {};
753 this.partials = partials || {};
754 this.decorators = decorators || {};
755
756 _helpers.registerDefaultHelpers(this);
757 _decorators.registerDefaultDecorators(this);
758 }
759
760 HandlebarsEnvironment.prototype = {
761 constructor: HandlebarsEnvironment,
762
763 logger: _logger2['default'],
764 log: _logger2['default'].log,
765
766 registerHelper: function registerHelper(name, fn) {
767 if (_utils.toString.call(name) === objectType) {
768 if (fn) {
769 throw new _exception2['default']('Arg not supported with multiple helpers');
770 }
771 _utils.extend(this.helpers, name);
772 } else {
773 this.helpers[name] = fn;
774 }
775 },
776 unregisterHelper: function unregisterHelper(name) {
777 delete this.helpers[name];
778 },
779
780 registerPartial: function registerPartial(name, partial) {
781 if (_utils.toString.call(name) === objectType) {
782 _utils.extend(this.partials, name);
783 } else {
784 if (typeof partial === 'undefined') {
785 throw new _exception2['default']('Attempting to register a partial called "' + name + '" as undefined');
786 }
787 this.partials[name] = partial;
788 }
789 },
790 unregisterPartial: function unregisterPartial(name) {
791 delete this.partials[name];
792 },
793
794 registerDecorator: function registerDecorator(name, fn) {
795 if (_utils.toString.call(name) === objectType) {
796 if (fn) {
797 throw new _exception2['default']('Arg not supported with multiple decorators');
798 }
799 _utils.extend(this.decorators, name);
800 } else {
801 this.decorators[name] = fn;
802 }
803 },
804 unregisterDecorator: function unregisterDecorator(name) {
805 delete this.decorators[name];
806 }
807 };
808
809 var log = _logger2['default'].log;
810
811 exports.log = log;
812 exports.createFrame = _utils.createFrame;
813 exports.logger = _logger2['default'];
814
815/***/ }),
816/* 5 */
817/***/ (function(module, exports) {
818
819 'use strict';
820
821 exports.__esModule = true;
822 exports.extend = extend;
823 exports.indexOf = indexOf;
824 exports.escapeExpression = escapeExpression;
825 exports.isEmpty = isEmpty;
826 exports.createFrame = createFrame;
827 exports.blockParams = blockParams;
828 exports.appendContextPath = appendContextPath;
829 var escape = {
830 '&': '&amp;',
831 '<': '&lt;',
832 '>': '&gt;',
833 '"': '&quot;',
834 "'": '&#x27;',
835 '`': '&#x60;',
836 '=': '&#x3D;'
837 };
838
839 var badChars = /[&<>"'`=]/g,
840 possible = /[&<>"'`=]/;
841
842 function escapeChar(chr) {
843 return escape[chr];
844 }
845
846 function extend(obj /* , ...source */) {
847 for (var i = 1; i < arguments.length; i++) {
848 for (var key in arguments[i]) {
849 if (Object.prototype.hasOwnProperty.call(arguments[i], key)) {
850 obj[key] = arguments[i][key];
851 }
852 }
853 }
854
855 return obj;
856 }
857
858 var toString = Object.prototype.toString;
859
860 exports.toString = toString;
861 // Sourced from lodash
862 // https://github.com/bestiejs/lodash/blob/master/LICENSE.txt
863 /* eslint-disable func-style */
864 var isFunction = function isFunction(value) {
865 return typeof value === 'function';
866 };
867 // fallback for older versions of Chrome and Safari
868 /* istanbul ignore next */
869 if (isFunction(/x/)) {
870 exports.isFunction = isFunction = function (value) {
871 return typeof value === 'function' && toString.call(value) === '[object Function]';
872 };
873 }
874 exports.isFunction = isFunction;
875
876 /* eslint-enable func-style */
877
878 /* istanbul ignore next */
879 var isArray = Array.isArray || function (value) {
880 return value && typeof value === 'object' ? toString.call(value) === '[object Array]' : false;
881 };
882
883 exports.isArray = isArray;
884 // Older IE versions do not directly support indexOf so we must implement our own, sadly.
885
886 function indexOf(array, value) {
887 for (var i = 0, len = array.length; i < len; i++) {
888 if (array[i] === value) {
889 return i;
890 }
891 }
892 return -1;
893 }
894
895 function escapeExpression(string) {
896 if (typeof string !== 'string') {
897 // don't escape SafeStrings, since they're already safe
898 if (string && string.toHTML) {
899 return string.toHTML();
900 } else if (string == null) {
901 return '';
902 } else if (!string) {
903 return string + '';
904 }
905
906 // Force a string conversion as this will be done by the append regardless and
907 // the regex test will do this transparently behind the scenes, causing issues if
908 // an object's to string has escaped characters in it.
909 string = '' + string;
910 }
911
912 if (!possible.test(string)) {
913 return string;
914 }
915 return string.replace(badChars, escapeChar);
916 }
917
918 function isEmpty(value) {
919 if (!value && value !== 0) {
920 return true;
921 } else if (isArray(value) && value.length === 0) {
922 return true;
923 } else {
924 return false;
925 }
926 }
927
928 function createFrame(object) {
929 var frame = extend({}, object);
930 frame._parent = object;
931 return frame;
932 }
933
934 function blockParams(params, ids) {
935 params.path = ids;
936 return params;
937 }
938
939 function appendContextPath(contextPath, id) {
940 return (contextPath ? contextPath + '.' : '') + id;
941 }
942
943/***/ }),
944/* 6 */
945/***/ (function(module, exports, __webpack_require__) {
946
947 'use strict';
948
949 var _Object$defineProperty = __webpack_require__(7)['default'];
950
951 exports.__esModule = true;
952
953 var errorProps = ['description', 'fileName', 'lineNumber', 'message', 'name', 'number', 'stack'];
954
955 function Exception(message, node) {
956 var loc = node && node.loc,
957 line = undefined,
958 column = undefined;
959 if (loc) {
960 line = loc.start.line;
961 column = loc.start.column;
962
963 message += ' - ' + line + ':' + column;
964 }
965
966 var tmp = Error.prototype.constructor.call(this, message);
967
968 // Unfortunately errors are not enumerable in Chrome (at least), so `for prop in tmp` doesn't work.
969 for (var idx = 0; idx < errorProps.length; idx++) {
970 this[errorProps[idx]] = tmp[errorProps[idx]];
971 }
972
973 /* istanbul ignore else */
974 if (Error.captureStackTrace) {
975 Error.captureStackTrace(this, Exception);
976 }
977
978 try {
979 if (loc) {
980 this.lineNumber = line;
981
982 // Work around issue under safari where we can't directly set the column value
983 /* istanbul ignore next */
984 if (_Object$defineProperty) {
985 Object.defineProperty(this, 'column', {
986 value: column,
987 enumerable: true
988 });
989 } else {
990 this.column = column;
991 }
992 }
993 } catch (nop) {
994 /* Ignore if the browser is very particular */
995 }
996 }
997
998 Exception.prototype = new Error();
999
1000 exports['default'] = Exception;
1001 module.exports = exports['default'];
1002
1003/***/ }),
1004/* 7 */
1005/***/ (function(module, exports, __webpack_require__) {
1006
1007 module.exports = { "default": __webpack_require__(8), __esModule: true };
1008
1009/***/ }),
1010/* 8 */
1011/***/ (function(module, exports, __webpack_require__) {
1012
1013 var $ = __webpack_require__(9);
1014 module.exports = function defineProperty(it, key, desc){
1015 return $.setDesc(it, key, desc);
1016 };
1017
1018/***/ }),
1019/* 9 */
1020/***/ (function(module, exports) {
1021
1022 var $Object = Object;
1023 module.exports = {
1024 create: $Object.create,
1025 getProto: $Object.getPrototypeOf,
1026 isEnum: {}.propertyIsEnumerable,
1027 getDesc: $Object.getOwnPropertyDescriptor,
1028 setDesc: $Object.defineProperty,
1029 setDescs: $Object.defineProperties,
1030 getKeys: $Object.keys,
1031 getNames: $Object.getOwnPropertyNames,
1032 getSymbols: $Object.getOwnPropertySymbols,
1033 each: [].forEach
1034 };
1035
1036/***/ }),
1037/* 10 */
1038/***/ (function(module, exports, __webpack_require__) {
1039
1040 'use strict';
1041
1042 var _interopRequireDefault = __webpack_require__(1)['default'];
1043
1044 exports.__esModule = true;
1045 exports.registerDefaultHelpers = registerDefaultHelpers;
1046
1047 var _helpersBlockHelperMissing = __webpack_require__(11);
1048
1049 var _helpersBlockHelperMissing2 = _interopRequireDefault(_helpersBlockHelperMissing);
1050
1051 var _helpersEach = __webpack_require__(12);
1052
1053 var _helpersEach2 = _interopRequireDefault(_helpersEach);
1054
1055 var _helpersHelperMissing = __webpack_require__(13);
1056
1057 var _helpersHelperMissing2 = _interopRequireDefault(_helpersHelperMissing);
1058
1059 var _helpersIf = __webpack_require__(14);
1060
1061 var _helpersIf2 = _interopRequireDefault(_helpersIf);
1062
1063 var _helpersLog = __webpack_require__(15);
1064
1065 var _helpersLog2 = _interopRequireDefault(_helpersLog);
1066
1067 var _helpersLookup = __webpack_require__(16);
1068
1069 var _helpersLookup2 = _interopRequireDefault(_helpersLookup);
1070
1071 var _helpersWith = __webpack_require__(17);
1072
1073 var _helpersWith2 = _interopRequireDefault(_helpersWith);
1074
1075 function registerDefaultHelpers(instance) {
1076 _helpersBlockHelperMissing2['default'](instance);
1077 _helpersEach2['default'](instance);
1078 _helpersHelperMissing2['default'](instance);
1079 _helpersIf2['default'](instance);
1080 _helpersLog2['default'](instance);
1081 _helpersLookup2['default'](instance);
1082 _helpersWith2['default'](instance);
1083 }
1084
1085/***/ }),
1086/* 11 */
1087/***/ (function(module, exports, __webpack_require__) {
1088
1089 'use strict';
1090
1091 exports.__esModule = true;
1092
1093 var _utils = __webpack_require__(5);
1094
1095 exports['default'] = function (instance) {
1096 instance.registerHelper('blockHelperMissing', function (context, options) {
1097 var inverse = options.inverse,
1098 fn = options.fn;
1099
1100 if (context === true) {
1101 return fn(this);
1102 } else if (context === false || context == null) {
1103 return inverse(this);
1104 } else if (_utils.isArray(context)) {
1105 if (context.length > 0) {
1106 if (options.ids) {
1107 options.ids = [options.name];
1108 }
1109
1110 return instance.helpers.each(context, options);
1111 } else {
1112 return inverse(this);
1113 }
1114 } else {
1115 if (options.data && options.ids) {
1116 var data = _utils.createFrame(options.data);
1117 data.contextPath = _utils.appendContextPath(options.data.contextPath, options.name);
1118 options = { data: data };
1119 }
1120
1121 return fn(context, options);
1122 }
1123 });
1124 };
1125
1126 module.exports = exports['default'];
1127
1128/***/ }),
1129/* 12 */
1130/***/ (function(module, exports, __webpack_require__) {
1131
1132 'use strict';
1133
1134 var _interopRequireDefault = __webpack_require__(1)['default'];
1135
1136 exports.__esModule = true;
1137
1138 var _utils = __webpack_require__(5);
1139
1140 var _exception = __webpack_require__(6);
1141
1142 var _exception2 = _interopRequireDefault(_exception);
1143
1144 exports['default'] = function (instance) {
1145 instance.registerHelper('each', function (context, options) {
1146 if (!options) {
1147 throw new _exception2['default']('Must pass iterator to #each');
1148 }
1149
1150 var fn = options.fn,
1151 inverse = options.inverse,
1152 i = 0,
1153 ret = '',
1154 data = undefined,
1155 contextPath = undefined;
1156
1157 if (options.data && options.ids) {
1158 contextPath = _utils.appendContextPath(options.data.contextPath, options.ids[0]) + '.';
1159 }
1160
1161 if (_utils.isFunction(context)) {
1162 context = context.call(this);
1163 }
1164
1165 if (options.data) {
1166 data = _utils.createFrame(options.data);
1167 }
1168
1169 function execIteration(field, index, last) {
1170 if (data) {
1171 data.key = field;
1172 data.index = index;
1173 data.first = index === 0;
1174 data.last = !!last;
1175
1176 if (contextPath) {
1177 data.contextPath = contextPath + field;
1178 }
1179 }
1180
1181 ret = ret + fn(context[field], {
1182 data: data,
1183 blockParams: _utils.blockParams([context[field], field], [contextPath + field, null])
1184 });
1185 }
1186
1187 if (context && typeof context === 'object') {
1188 if (_utils.isArray(context)) {
1189 for (var j = context.length; i < j; i++) {
1190 if (i in context) {
1191 execIteration(i, i, i === context.length - 1);
1192 }
1193 }
1194 } else {
1195 var priorKey = undefined;
1196
1197 for (var key in context) {
1198 if (context.hasOwnProperty(key)) {
1199 // We're running the iterations one step out of sync so we can detect
1200 // the last iteration without have to scan the object twice and create
1201 // an itermediate keys array.
1202 if (priorKey !== undefined) {
1203 execIteration(priorKey, i - 1);
1204 }
1205 priorKey = key;
1206 i++;
1207 }
1208 }
1209 if (priorKey !== undefined) {
1210 execIteration(priorKey, i - 1, true);
1211 }
1212 }
1213 }
1214
1215 if (i === 0) {
1216 ret = inverse(this);
1217 }
1218
1219 return ret;
1220 });
1221 };
1222
1223 module.exports = exports['default'];
1224
1225/***/ }),
1226/* 13 */
1227/***/ (function(module, exports, __webpack_require__) {
1228
1229 'use strict';
1230
1231 var _interopRequireDefault = __webpack_require__(1)['default'];
1232
1233 exports.__esModule = true;
1234
1235 var _exception = __webpack_require__(6);
1236
1237 var _exception2 = _interopRequireDefault(_exception);
1238
1239 exports['default'] = function (instance) {
1240 instance.registerHelper('helperMissing', function () /* [args, ]options */{
1241 if (arguments.length === 1) {
1242 // A missing field in a {{foo}} construct.
1243 return undefined;
1244 } else {
1245 // Someone is actually trying to call something, blow up.
1246 throw new _exception2['default']('Missing helper: "' + arguments[arguments.length - 1].name + '"');
1247 }
1248 });
1249 };
1250
1251 module.exports = exports['default'];
1252
1253/***/ }),
1254/* 14 */
1255/***/ (function(module, exports, __webpack_require__) {
1256
1257 'use strict';
1258
1259 exports.__esModule = true;
1260
1261 var _utils = __webpack_require__(5);
1262
1263 exports['default'] = function (instance) {
1264 instance.registerHelper('if', function (conditional, options) {
1265 if (_utils.isFunction(conditional)) {
1266 conditional = conditional.call(this);
1267 }
1268
1269 // Default behavior is to render the positive path if the value is truthy and not empty.
1270 // The `includeZero` option may be set to treat the condtional as purely not empty based on the
1271 // behavior of isEmpty. Effectively this determines if 0 is handled by the positive path or negative.
1272 if (!options.hash.includeZero && !conditional || _utils.isEmpty(conditional)) {
1273 return options.inverse(this);
1274 } else {
1275 return options.fn(this);
1276 }
1277 });
1278
1279 instance.registerHelper('unless', function (conditional, options) {
1280 return instance.helpers['if'].call(this, conditional, { fn: options.inverse, inverse: options.fn, hash: options.hash });
1281 });
1282 };
1283
1284 module.exports = exports['default'];
1285
1286/***/ }),
1287/* 15 */
1288/***/ (function(module, exports) {
1289
1290 'use strict';
1291
1292 exports.__esModule = true;
1293
1294 exports['default'] = function (instance) {
1295 instance.registerHelper('log', function () /* message, options */{
1296 var args = [undefined],
1297 options = arguments[arguments.length - 1];
1298 for (var i = 0; i < arguments.length - 1; i++) {
1299 args.push(arguments[i]);
1300 }
1301
1302 var level = 1;
1303 if (options.hash.level != null) {
1304 level = options.hash.level;
1305 } else if (options.data && options.data.level != null) {
1306 level = options.data.level;
1307 }
1308 args[0] = level;
1309
1310 instance.log.apply(instance, args);
1311 });
1312 };
1313
1314 module.exports = exports['default'];
1315
1316/***/ }),
1317/* 16 */
1318/***/ (function(module, exports) {
1319
1320 'use strict';
1321
1322 exports.__esModule = true;
1323
1324 exports['default'] = function (instance) {
1325 instance.registerHelper('lookup', function (obj, field) {
1326 return obj && obj[field];
1327 });
1328 };
1329
1330 module.exports = exports['default'];
1331
1332/***/ }),
1333/* 17 */
1334/***/ (function(module, exports, __webpack_require__) {
1335
1336 'use strict';
1337
1338 exports.__esModule = true;
1339
1340 var _utils = __webpack_require__(5);
1341
1342 exports['default'] = function (instance) {
1343 instance.registerHelper('with', function (context, options) {
1344 if (_utils.isFunction(context)) {
1345 context = context.call(this);
1346 }
1347
1348 var fn = options.fn;
1349
1350 if (!_utils.isEmpty(context)) {
1351 var data = options.data;
1352 if (options.data && options.ids) {
1353 data = _utils.createFrame(options.data);
1354 data.contextPath = _utils.appendContextPath(options.data.contextPath, options.ids[0]);
1355 }
1356
1357 return fn(context, {
1358 data: data,
1359 blockParams: _utils.blockParams([context], [data && data.contextPath])
1360 });
1361 } else {
1362 return options.inverse(this);
1363 }
1364 });
1365 };
1366
1367 module.exports = exports['default'];
1368
1369/***/ }),
1370/* 18 */
1371/***/ (function(module, exports, __webpack_require__) {
1372
1373 'use strict';
1374
1375 var _interopRequireDefault = __webpack_require__(1)['default'];
1376
1377 exports.__esModule = true;
1378 exports.registerDefaultDecorators = registerDefaultDecorators;
1379
1380 var _decoratorsInline = __webpack_require__(19);
1381
1382 var _decoratorsInline2 = _interopRequireDefault(_decoratorsInline);
1383
1384 function registerDefaultDecorators(instance) {
1385 _decoratorsInline2['default'](instance);
1386 }
1387
1388/***/ }),
1389/* 19 */
1390/***/ (function(module, exports, __webpack_require__) {
1391
1392 'use strict';
1393
1394 exports.__esModule = true;
1395
1396 var _utils = __webpack_require__(5);
1397
1398 exports['default'] = function (instance) {
1399 instance.registerDecorator('inline', function (fn, props, container, options) {
1400 var ret = fn;
1401 if (!props.partials) {
1402 props.partials = {};
1403 ret = function (context, options) {
1404 // Create a new partials stack frame prior to exec.
1405 var original = container.partials;
1406 container.partials = _utils.extend({}, original, props.partials);
1407 var ret = fn(context, options);
1408 container.partials = original;
1409 return ret;
1410 };
1411 }
1412
1413 props.partials[options.args[0]] = options.fn;
1414
1415 return ret;
1416 });
1417 };
1418
1419 module.exports = exports['default'];
1420
1421/***/ }),
1422/* 20 */
1423/***/ (function(module, exports, __webpack_require__) {
1424
1425 'use strict';
1426
1427 exports.__esModule = true;
1428
1429 var _utils = __webpack_require__(5);
1430
1431 var logger = {
1432 methodMap: ['debug', 'info', 'warn', 'error'],
1433 level: 'info',
1434
1435 // Maps a given level value to the `methodMap` indexes above.
1436 lookupLevel: function lookupLevel(level) {
1437 if (typeof level === 'string') {
1438 var levelMap = _utils.indexOf(logger.methodMap, level.toLowerCase());
1439 if (levelMap >= 0) {
1440 level = levelMap;
1441 } else {
1442 level = parseInt(level, 10);
1443 }
1444 }
1445
1446 return level;
1447 },
1448
1449 // Can be overridden in the host environment
1450 log: function log(level) {
1451 level = logger.lookupLevel(level);
1452
1453 if (typeof console !== 'undefined' && logger.lookupLevel(logger.level) <= level) {
1454 var method = logger.methodMap[level];
1455 if (!console[method]) {
1456 // eslint-disable-line no-console
1457 method = 'log';
1458 }
1459
1460 for (var _len = arguments.length, message = Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {
1461 message[_key - 1] = arguments[_key];
1462 }
1463
1464 console[method].apply(console, message); // eslint-disable-line no-console
1465 }
1466 }
1467 };
1468
1469 exports['default'] = logger;
1470 module.exports = exports['default'];
1471
1472/***/ }),
1473/* 21 */
1474/***/ (function(module, exports) {
1475
1476 // Build out our basic SafeString type
1477 'use strict';
1478
1479 exports.__esModule = true;
1480 function SafeString(string) {
1481 this.string = string;
1482 }
1483
1484 SafeString.prototype.toString = SafeString.prototype.toHTML = function () {
1485 return '' + this.string;
1486 };
1487
1488 exports['default'] = SafeString;
1489 module.exports = exports['default'];
1490
1491/***/ }),
1492/* 22 */
1493/***/ (function(module, exports, __webpack_require__) {
1494
1495 'use strict';
1496
1497 var _Object$seal = __webpack_require__(23)['default'];
1498
1499 var _interopRequireWildcard = __webpack_require__(3)['default'];
1500
1501 var _interopRequireDefault = __webpack_require__(1)['default'];
1502
1503 exports.__esModule = true;
1504 exports.checkRevision = checkRevision;
1505 exports.template = template;
1506 exports.wrapProgram = wrapProgram;
1507 exports.resolvePartial = resolvePartial;
1508 exports.invokePartial = invokePartial;
1509 exports.noop = noop;
1510
1511 var _utils = __webpack_require__(5);
1512
1513 var Utils = _interopRequireWildcard(_utils);
1514
1515 var _exception = __webpack_require__(6);
1516
1517 var _exception2 = _interopRequireDefault(_exception);
1518
1519 var _base = __webpack_require__(4);
1520
1521 function checkRevision(compilerInfo) {
1522 var compilerRevision = compilerInfo && compilerInfo[0] || 1,
1523 currentRevision = _base.COMPILER_REVISION;
1524
1525 if (compilerRevision !== currentRevision) {
1526 if (compilerRevision < currentRevision) {
1527 var runtimeVersions = _base.REVISION_CHANGES[currentRevision],
1528 compilerVersions = _base.REVISION_CHANGES[compilerRevision];
1529 throw new _exception2['default']('Template was precompiled with an older version of Handlebars than the current runtime. ' + 'Please update your precompiler to a newer version (' + runtimeVersions + ') or downgrade your runtime to an older version (' + compilerVersions + ').');
1530 } else {
1531 // Use the embedded version info since the runtime doesn't know about this revision yet
1532 throw new _exception2['default']('Template was precompiled with a newer version of Handlebars than the current runtime. ' + 'Please update your runtime to a newer version (' + compilerInfo[1] + ').');
1533 }
1534 }
1535 }
1536
1537 function template(templateSpec, env) {
1538 /* istanbul ignore next */
1539 if (!env) {
1540 throw new _exception2['default']('No environment passed to template');
1541 }
1542 if (!templateSpec || !templateSpec.main) {
1543 throw new _exception2['default']('Unknown template object: ' + typeof templateSpec);
1544 }
1545
1546 templateSpec.main.decorator = templateSpec.main_d;
1547
1548 // Note: Using env.VM references rather than local var references throughout this section to allow
1549 // for external users to override these as psuedo-supported APIs.
1550 env.VM.checkRevision(templateSpec.compiler);
1551
1552 function invokePartialWrapper(partial, context, options) {
1553 if (options.hash) {
1554 context = Utils.extend({}, context, options.hash);
1555 if (options.ids) {
1556 options.ids[0] = true;
1557 }
1558 }
1559
1560 partial = env.VM.resolvePartial.call(this, partial, context, options);
1561 var result = env.VM.invokePartial.call(this, partial, context, options);
1562
1563 if (result == null && env.compile) {
1564 options.partials[options.name] = env.compile(partial, templateSpec.compilerOptions, env);
1565 result = options.partials[options.name](context, options);
1566 }
1567 if (result != null) {
1568 if (options.indent) {
1569 var lines = result.split('\n');
1570 for (var i = 0, l = lines.length; i < l; i++) {
1571 if (!lines[i] && i + 1 === l) {
1572 break;
1573 }
1574
1575 lines[i] = options.indent + lines[i];
1576 }
1577 result = lines.join('\n');
1578 }
1579 return result;
1580 } else {
1581 throw new _exception2['default']('The partial ' + options.name + ' could not be compiled when running in runtime-only mode');
1582 }
1583 }
1584
1585 // Just add water
1586 var container = {
1587 strict: function strict(obj, name) {
1588 if (!(name in obj)) {
1589 throw new _exception2['default']('"' + name + '" not defined in ' + obj);
1590 }
1591 return obj[name];
1592 },
1593 lookup: function lookup(depths, name) {
1594 var len = depths.length;
1595 for (var i = 0; i < len; i++) {
1596 if (depths[i] && depths[i][name] != null) {
1597 return depths[i][name];
1598 }
1599 }
1600 },
1601 lambda: function lambda(current, context) {
1602 return typeof current === 'function' ? current.call(context) : current;
1603 },
1604
1605 escapeExpression: Utils.escapeExpression,
1606 invokePartial: invokePartialWrapper,
1607
1608 fn: function fn(i) {
1609 var ret = templateSpec[i];
1610 ret.decorator = templateSpec[i + '_d'];
1611 return ret;
1612 },
1613
1614 programs: [],
1615 program: function program(i, data, declaredBlockParams, blockParams, depths) {
1616 var programWrapper = this.programs[i],
1617 fn = this.fn(i);
1618 if (data || depths || blockParams || declaredBlockParams) {
1619 programWrapper = wrapProgram(this, i, fn, data, declaredBlockParams, blockParams, depths);
1620 } else if (!programWrapper) {
1621 programWrapper = this.programs[i] = wrapProgram(this, i, fn);
1622 }
1623 return programWrapper;
1624 },
1625
1626 data: function data(value, depth) {
1627 while (value && depth--) {
1628 value = value._parent;
1629 }
1630 return value;
1631 },
1632 merge: function merge(param, common) {
1633 var obj = param || common;
1634
1635 if (param && common && param !== common) {
1636 obj = Utils.extend({}, common, param);
1637 }
1638
1639 return obj;
1640 },
1641 // An empty object to use as replacement for null-contexts
1642 nullContext: _Object$seal({}),
1643
1644 noop: env.VM.noop,
1645 compilerInfo: templateSpec.compiler
1646 };
1647
1648 function ret(context) {
1649 var options = arguments.length <= 1 || arguments[1] === undefined ? {} : arguments[1];
1650
1651 var data = options.data;
1652
1653 ret._setup(options);
1654 if (!options.partial && templateSpec.useData) {
1655 data = initData(context, data);
1656 }
1657 var depths = undefined,
1658 blockParams = templateSpec.useBlockParams ? [] : undefined;
1659 if (templateSpec.useDepths) {
1660 if (options.depths) {
1661 depths = context != options.depths[0] ? [context].concat(options.depths) : options.depths;
1662 } else {
1663 depths = [context];
1664 }
1665 }
1666
1667 function main(context /*, options*/) {
1668 return '' + templateSpec.main(container, context, container.helpers, container.partials, data, blockParams, depths);
1669 }
1670 main = executeDecorators(templateSpec.main, main, container, options.depths || [], data, blockParams);
1671 return main(context, options);
1672 }
1673 ret.isTop = true;
1674
1675 ret._setup = function (options) {
1676 if (!options.partial) {
1677 container.helpers = container.merge(options.helpers, env.helpers);
1678
1679 if (templateSpec.usePartial) {
1680 container.partials = container.merge(options.partials, env.partials);
1681 }
1682 if (templateSpec.usePartial || templateSpec.useDecorators) {
1683 container.decorators = container.merge(options.decorators, env.decorators);
1684 }
1685 } else {
1686 container.helpers = options.helpers;
1687 container.partials = options.partials;
1688 container.decorators = options.decorators;
1689 }
1690 };
1691
1692 ret._child = function (i, data, blockParams, depths) {
1693 if (templateSpec.useBlockParams && !blockParams) {
1694 throw new _exception2['default']('must pass block params');
1695 }
1696 if (templateSpec.useDepths && !depths) {
1697 throw new _exception2['default']('must pass parent depths');
1698 }
1699
1700 return wrapProgram(container, i, templateSpec[i], data, 0, blockParams, depths);
1701 };
1702 return ret;
1703 }
1704
1705 function wrapProgram(container, i, fn, data, declaredBlockParams, blockParams, depths) {
1706 function prog(context) {
1707 var options = arguments.length <= 1 || arguments[1] === undefined ? {} : arguments[1];
1708
1709 var currentDepths = depths;
1710 if (depths && context != depths[0] && !(context === container.nullContext && depths[0] === null)) {
1711 currentDepths = [context].concat(depths);
1712 }
1713
1714 return fn(container, context, container.helpers, container.partials, options.data || data, blockParams && [options.blockParams].concat(blockParams), currentDepths);
1715 }
1716
1717 prog = executeDecorators(fn, prog, container, depths, data, blockParams);
1718
1719 prog.program = i;
1720 prog.depth = depths ? depths.length : 0;
1721 prog.blockParams = declaredBlockParams || 0;
1722 return prog;
1723 }
1724
1725 function resolvePartial(partial, context, options) {
1726 if (!partial) {
1727 if (options.name === '@partial-block') {
1728 partial = options.data['partial-block'];
1729 } else {
1730 partial = options.partials[options.name];
1731 }
1732 } else if (!partial.call && !options.name) {
1733 // This is a dynamic partial that returned a string
1734 options.name = partial;
1735 partial = options.partials[partial];
1736 }
1737 return partial;
1738 }
1739
1740 function invokePartial(partial, context, options) {
1741 // Use the current closure context to save the partial-block if this partial
1742 var currentPartialBlock = options.data && options.data['partial-block'];
1743 options.partial = true;
1744 if (options.ids) {
1745 options.data.contextPath = options.ids[0] || options.data.contextPath;
1746 }
1747
1748 var partialBlock = undefined;
1749 if (options.fn && options.fn !== noop) {
1750 (function () {
1751 options.data = _base.createFrame(options.data);
1752 // Wrapper function to get access to currentPartialBlock from the closure
1753 var fn = options.fn;
1754 partialBlock = options.data['partial-block'] = function partialBlockWrapper(context) {
1755 var options = arguments.length <= 1 || arguments[1] === undefined ? {} : arguments[1];
1756
1757 // Restore the partial-block from the closure for the execution of the block
1758 // i.e. the part inside the block of the partial call.
1759 options.data = _base.createFrame(options.data);
1760 options.data['partial-block'] = currentPartialBlock;
1761 return fn(context, options);
1762 };
1763 if (fn.partials) {
1764 options.partials = Utils.extend({}, options.partials, fn.partials);
1765 }
1766 })();
1767 }
1768
1769 if (partial === undefined && partialBlock) {
1770 partial = partialBlock;
1771 }
1772
1773 if (partial === undefined) {
1774 throw new _exception2['default']('The partial ' + options.name + ' could not be found');
1775 } else if (partial instanceof Function) {
1776 return partial(context, options);
1777 }
1778 }
1779
1780 function noop() {
1781 return '';
1782 }
1783
1784 function initData(context, data) {
1785 if (!data || !('root' in data)) {
1786 data = data ? _base.createFrame(data) : {};
1787 data.root = context;
1788 }
1789 return data;
1790 }
1791
1792 function executeDecorators(fn, prog, container, depths, data, blockParams) {
1793 if (fn.decorator) {
1794 var props = {};
1795 prog = fn.decorator(prog, props, container, depths && depths[0], data, blockParams, depths);
1796 Utils.extend(prog, props);
1797 }
1798 return prog;
1799 }
1800
1801/***/ }),
1802/* 23 */
1803/***/ (function(module, exports, __webpack_require__) {
1804
1805 module.exports = { "default": __webpack_require__(24), __esModule: true };
1806
1807/***/ }),
1808/* 24 */
1809/***/ (function(module, exports, __webpack_require__) {
1810
1811 __webpack_require__(25);
1812 module.exports = __webpack_require__(30).Object.seal;
1813
1814/***/ }),
1815/* 25 */
1816/***/ (function(module, exports, __webpack_require__) {
1817
1818 // 19.1.2.17 Object.seal(O)
1819 var isObject = __webpack_require__(26);
1820
1821 __webpack_require__(27)('seal', function($seal){
1822 return function seal(it){
1823 return $seal && isObject(it) ? $seal(it) : it;
1824 };
1825 });
1826
1827/***/ }),
1828/* 26 */
1829/***/ (function(module, exports) {
1830
1831 module.exports = function(it){
1832 return typeof it === 'object' ? it !== null : typeof it === 'function';
1833 };
1834
1835/***/ }),
1836/* 27 */
1837/***/ (function(module, exports, __webpack_require__) {
1838
1839 // most Object methods by ES6 should accept primitives
1840 var $export = __webpack_require__(28)
1841 , core = __webpack_require__(30)
1842 , fails = __webpack_require__(33);
1843 module.exports = function(KEY, exec){
1844 var fn = (core.Object || {})[KEY] || Object[KEY]
1845 , exp = {};
1846 exp[KEY] = exec(fn);
1847 $export($export.S + $export.F * fails(function(){ fn(1); }), 'Object', exp);
1848 };
1849
1850/***/ }),
1851/* 28 */
1852/***/ (function(module, exports, __webpack_require__) {
1853
1854 var global = __webpack_require__(29)
1855 , core = __webpack_require__(30)
1856 , ctx = __webpack_require__(31)
1857 , PROTOTYPE = 'prototype';
1858
1859 var $export = function(type, name, source){
1860 var IS_FORCED = type & $export.F
1861 , IS_GLOBAL = type & $export.G
1862 , IS_STATIC = type & $export.S
1863 , IS_PROTO = type & $export.P
1864 , IS_BIND = type & $export.B
1865 , IS_WRAP = type & $export.W
1866 , exports = IS_GLOBAL ? core : core[name] || (core[name] = {})
1867 , target = IS_GLOBAL ? global : IS_STATIC ? global[name] : (global[name] || {})[PROTOTYPE]
1868 , key, own, out;
1869 if(IS_GLOBAL)source = name;
1870 for(key in source){
1871 // contains in native
1872 own = !IS_FORCED && target && key in target;
1873 if(own && key in exports)continue;
1874 // export native or passed
1875 out = own ? target[key] : source[key];
1876 // prevent global pollution for namespaces
1877 exports[key] = IS_GLOBAL && typeof target[key] != 'function' ? source[key]
1878 // bind timers to global for call from export context
1879 : IS_BIND && own ? ctx(out, global)
1880 // wrap global constructors for prevent change them in library
1881 : IS_WRAP && target[key] == out ? (function(C){
1882 var F = function(param){
1883 return this instanceof C ? new C(param) : C(param);
1884 };
1885 F[PROTOTYPE] = C[PROTOTYPE];
1886 return F;
1887 // make static versions for prototype methods
1888 })(out) : IS_PROTO && typeof out == 'function' ? ctx(Function.call, out) : out;
1889 if(IS_PROTO)(exports[PROTOTYPE] || (exports[PROTOTYPE] = {}))[key] = out;
1890 }
1891 };
1892 // type bitmap
1893 $export.F = 1; // forced
1894 $export.G = 2; // global
1895 $export.S = 4; // static
1896 $export.P = 8; // proto
1897 $export.B = 16; // bind
1898 $export.W = 32; // wrap
1899 module.exports = $export;
1900
1901/***/ }),
1902/* 29 */
1903/***/ (function(module, exports) {
1904
1905 // https://github.com/zloirock/core-js/issues/86#issuecomment-115759028
1906 var global = module.exports = typeof window != 'undefined' && window.Math == Math
1907 ? window : typeof self != 'undefined' && self.Math == Math ? self : Function('return this')();
1908 if(typeof __g == 'number')__g = global; // eslint-disable-line no-undef
1909
1910/***/ }),
1911/* 30 */
1912/***/ (function(module, exports) {
1913
1914 var core = module.exports = {version: '1.2.6'};
1915 if(typeof __e == 'number')__e = core; // eslint-disable-line no-undef
1916
1917/***/ }),
1918/* 31 */
1919/***/ (function(module, exports, __webpack_require__) {
1920
1921 // optional / simple context binding
1922 var aFunction = __webpack_require__(32);
1923 module.exports = function(fn, that, length){
1924 aFunction(fn);
1925 if(that === undefined)return fn;
1926 switch(length){
1927 case 1: return function(a){
1928 return fn.call(that, a);
1929 };
1930 case 2: return function(a, b){
1931 return fn.call(that, a, b);
1932 };
1933 case 3: return function(a, b, c){
1934 return fn.call(that, a, b, c);
1935 };
1936 }
1937 return function(/* ...args */){
1938 return fn.apply(that, arguments);
1939 };
1940 };
1941
1942/***/ }),
1943/* 32 */
1944/***/ (function(module, exports) {
1945
1946 module.exports = function(it){
1947 if(typeof it != 'function')throw TypeError(it + ' is not a function!');
1948 return it;
1949 };
1950
1951/***/ }),
1952/* 33 */
1953/***/ (function(module, exports) {
1954
1955 module.exports = function(exec){
1956 try {
1957 return !!exec();
1958 } catch(e){
1959 return true;
1960 }
1961 };
1962
1963/***/ }),
1964/* 34 */
1965/***/ (function(module, exports) {
1966
1967 /* WEBPACK VAR INJECTION */(function(global) {/* global window */
1968 'use strict';
1969
1970 exports.__esModule = true;
1971
1972 exports['default'] = function (Handlebars) {
1973 /* istanbul ignore next */
1974 var root = typeof global !== 'undefined' ? global : window,
1975 $Handlebars = root.Handlebars;
1976 /* istanbul ignore next */
1977 Handlebars.noConflict = function () {
1978 if (root.Handlebars === Handlebars) {
1979 root.Handlebars = $Handlebars;
1980 }
1981 return Handlebars;
1982 };
1983 };
1984
1985 module.exports = exports['default'];
1986 /* WEBPACK VAR INJECTION */}.call(exports, (function() { return this; }())))
1987
1988/***/ }),
1989/* 35 */
1990/***/ (function(module, exports) {
1991
1992 'use strict';
1993
1994 exports.__esModule = true;
1995 var AST = {
1996 // Public API used to evaluate derived attributes regarding AST nodes
1997 helpers: {
1998 // a mustache is definitely a helper if:
1999 // * it is an eligible helper, and
2000 // * it has at least one parameter or hash segment
2001 helperExpression: function helperExpression(node) {
2002 return node.type === 'SubExpression' || (node.type === 'MustacheStatement' || node.type === 'BlockStatement') && !!(node.params && node.params.length || node.hash);
2003 },
2004
2005 scopedId: function scopedId(path) {
2006 return (/^\.|this\b/.test(path.original)
2007 );
2008 },
2009
2010 // an ID is simple if it only has one part, and that part is not
2011 // `..` or `this`.
2012 simpleId: function simpleId(path) {
2013 return path.parts.length === 1 && !AST.helpers.scopedId(path) && !path.depth;
2014 }
2015 }
2016 };
2017
2018 // Must be exported as an object rather than the root of the module as the jison lexer
2019 // must modify the object to operate properly.
2020 exports['default'] = AST;
2021 module.exports = exports['default'];
2022
2023/***/ }),
2024/* 36 */
2025/***/ (function(module, exports, __webpack_require__) {
2026
2027 'use strict';
2028
2029 var _interopRequireDefault = __webpack_require__(1)['default'];
2030
2031 var _interopRequireWildcard = __webpack_require__(3)['default'];
2032
2033 exports.__esModule = true;
2034 exports.parse = parse;
2035
2036 var _parser = __webpack_require__(37);
2037
2038 var _parser2 = _interopRequireDefault(_parser);
2039
2040 var _whitespaceControl = __webpack_require__(38);
2041
2042 var _whitespaceControl2 = _interopRequireDefault(_whitespaceControl);
2043
2044 var _helpers = __webpack_require__(40);
2045
2046 var Helpers = _interopRequireWildcard(_helpers);
2047
2048 var _utils = __webpack_require__(5);
2049
2050 exports.parser = _parser2['default'];
2051
2052 var yy = {};
2053 _utils.extend(yy, Helpers);
2054
2055 function parse(input, options) {
2056 // Just return if an already-compiled AST was passed in.
2057 if (input.type === 'Program') {
2058 return input;
2059 }
2060
2061 _parser2['default'].yy = yy;
2062
2063 // Altering the shared object here, but this is ok as parser is a sync operation
2064 yy.locInfo = function (locInfo) {
2065 return new yy.SourceLocation(options && options.srcName, locInfo);
2066 };
2067
2068 var strip = new _whitespaceControl2['default'](options);
2069 return strip.accept(_parser2['default'].parse(input));
2070 }
2071
2072/***/ }),
2073/* 37 */
2074/***/ (function(module, exports) {
2075
2076 // File ignored in coverage tests via setting in .istanbul.yml
2077 /* Jison generated parser */
2078 "use strict";
2079
2080 exports.__esModule = true;
2081 var handlebars = (function () {
2082 var parser = { trace: function trace() {},
2083 yy: {},
2084 symbols_: { "error": 2, "root": 3, "program": 4, "EOF": 5, "program_repetition0": 6, "statement": 7, "mustache": 8, "block": 9, "rawBlock": 10, "partial": 11, "partialBlock": 12, "content": 13, "COMMENT": 14, "CONTENT": 15, "openRawBlock": 16, "rawBlock_repetition_plus0": 17, "END_RAW_BLOCK": 18, "OPEN_RAW_BLOCK": 19, "helperName": 20, "openRawBlock_repetition0": 21, "openRawBlock_option0": 22, "CLOSE_RAW_BLOCK": 23, "openBlock": 24, "block_option0": 25, "closeBlock": 26, "openInverse": 27, "block_option1": 28, "OPEN_BLOCK": 29, "openBlock_repetition0": 30, "openBlock_option0": 31, "openBlock_option1": 32, "CLOSE": 33, "OPEN_INVERSE": 34, "openInverse_repetition0": 35, "openInverse_option0": 36, "openInverse_option1": 37, "openInverseChain": 38, "OPEN_INVERSE_CHAIN": 39, "openInverseChain_repetition0": 40, "openInverseChain_option0": 41, "openInverseChain_option1": 42, "inverseAndProgram": 43, "INVERSE": 44, "inverseChain": 45, "inverseChain_option0": 46, "OPEN_ENDBLOCK": 47, "OPEN": 48, "mustache_repetition0": 49, "mustache_option0": 50, "OPEN_UNESCAPED": 51, "mustache_repetition1": 52, "mustache_option1": 53, "CLOSE_UNESCAPED": 54, "OPEN_PARTIAL": 55, "partialName": 56, "partial_repetition0": 57, "partial_option0": 58, "openPartialBlock": 59, "OPEN_PARTIAL_BLOCK": 60, "openPartialBlock_repetition0": 61, "openPartialBlock_option0": 62, "param": 63, "sexpr": 64, "OPEN_SEXPR": 65, "sexpr_repetition0": 66, "sexpr_option0": 67, "CLOSE_SEXPR": 68, "hash": 69, "hash_repetition_plus0": 70, "hashSegment": 71, "ID": 72, "EQUALS": 73, "blockParams": 74, "OPEN_BLOCK_PARAMS": 75, "blockParams_repetition_plus0": 76, "CLOSE_BLOCK_PARAMS": 77, "path": 78, "dataName": 79, "STRING": 80, "NUMBER": 81, "BOOLEAN": 82, "UNDEFINED": 83, "NULL": 84, "DATA": 85, "pathSegments": 86, "SEP": 87, "$accept": 0, "$end": 1 },
2085 terminals_: { 2: "error", 5: "EOF", 14: "COMMENT", 15: "CONTENT", 18: "END_RAW_BLOCK", 19: "OPEN_RAW_BLOCK", 23: "CLOSE_RAW_BLOCK", 29: "OPEN_BLOCK", 33: "CLOSE", 34: "OPEN_INVERSE", 39: "OPEN_INVERSE_CHAIN", 44: "INVERSE", 47: "OPEN_ENDBLOCK", 48: "OPEN", 51: "OPEN_UNESCAPED", 54: "CLOSE_UNESCAPED", 55: "OPEN_PARTIAL", 60: "OPEN_PARTIAL_BLOCK", 65: "OPEN_SEXPR", 68: "CLOSE_SEXPR", 72: "ID", 73: "EQUALS", 75: "OPEN_BLOCK_PARAMS", 77: "CLOSE_BLOCK_PARAMS", 80: "STRING", 81: "NUMBER", 82: "BOOLEAN", 83: "UNDEFINED", 84: "NULL", 85: "DATA", 87: "SEP" },
2086 productions_: [0, [3, 2], [4, 1], [7, 1], [7, 1], [7, 1], [7, 1], [7, 1], [7, 1], [7, 1], [13, 1], [10, 3], [16, 5], [9, 4], [9, 4], [24, 6], [27, 6], [38, 6], [43, 2], [45, 3], [45, 1], [26, 3], [8, 5], [8, 5], [11, 5], [12, 3], [59, 5], [63, 1], [63, 1], [64, 5], [69, 1], [71, 3], [74, 3], [20, 1], [20, 1], [20, 1], [20, 1], [20, 1], [20, 1], [20, 1], [56, 1], [56, 1], [79, 2], [78, 1], [86, 3], [86, 1], [6, 0], [6, 2], [17, 1], [17, 2], [21, 0], [21, 2], [22, 0], [22, 1], [25, 0], [25, 1], [28, 0], [28, 1], [30, 0], [30, 2], [31, 0], [31, 1], [32, 0], [32, 1], [35, 0], [35, 2], [36, 0], [36, 1], [37, 0], [37, 1], [40, 0], [40, 2], [41, 0], [41, 1], [42, 0], [42, 1], [46, 0], [46, 1], [49, 0], [49, 2], [50, 0], [50, 1], [52, 0], [52, 2], [53, 0], [53, 1], [57, 0], [57, 2], [58, 0], [58, 1], [61, 0], [61, 2], [62, 0], [62, 1], [66, 0], [66, 2], [67, 0], [67, 1], [70, 1], [70, 2], [76, 1], [76, 2]],
2087 performAction: function anonymous(yytext, yyleng, yylineno, yy, yystate, $$, _$
2088 /*``*/) {
2089
2090 var $0 = $$.length - 1;
2091 switch (yystate) {
2092 case 1:
2093 return $$[$0 - 1];
2094 break;
2095 case 2:
2096 this.$ = yy.prepareProgram($$[$0]);
2097 break;
2098 case 3:
2099 this.$ = $$[$0];
2100 break;
2101 case 4:
2102 this.$ = $$[$0];
2103 break;
2104 case 5:
2105 this.$ = $$[$0];
2106 break;
2107 case 6:
2108 this.$ = $$[$0];
2109 break;
2110 case 7:
2111 this.$ = $$[$0];
2112 break;
2113 case 8:
2114 this.$ = $$[$0];
2115 break;
2116 case 9:
2117 this.$ = {
2118 type: 'CommentStatement',
2119 value: yy.stripComment($$[$0]),
2120 strip: yy.stripFlags($$[$0], $$[$0]),
2121 loc: yy.locInfo(this._$)
2122 };
2123
2124 break;
2125 case 10:
2126 this.$ = {
2127 type: 'ContentStatement',
2128 original: $$[$0],
2129 value: $$[$0],
2130 loc: yy.locInfo(this._$)
2131 };
2132
2133 break;
2134 case 11:
2135 this.$ = yy.prepareRawBlock($$[$0 - 2], $$[$0 - 1], $$[$0], this._$);
2136 break;
2137 case 12:
2138 this.$ = { path: $$[$0 - 3], params: $$[$0 - 2], hash: $$[$0 - 1] };
2139 break;
2140 case 13:
2141 this.$ = yy.prepareBlock($$[$0 - 3], $$[$0 - 2], $$[$0 - 1], $$[$0], false, this._$);
2142 break;
2143 case 14:
2144 this.$ = yy.prepareBlock($$[$0 - 3], $$[$0 - 2], $$[$0 - 1], $$[$0], true, this._$);
2145 break;
2146 case 15:
2147 this.$ = { open: $$[$0 - 5], path: $$[$0 - 4], params: $$[$0 - 3], hash: $$[$0 - 2], blockParams: $$[$0 - 1], strip: yy.stripFlags($$[$0 - 5], $$[$0]) };
2148 break;
2149 case 16:
2150 this.$ = { path: $$[$0 - 4], params: $$[$0 - 3], hash: $$[$0 - 2], blockParams: $$[$0 - 1], strip: yy.stripFlags($$[$0 - 5], $$[$0]) };
2151 break;
2152 case 17:
2153 this.$ = { path: $$[$0 - 4], params: $$[$0 - 3], hash: $$[$0 - 2], blockParams: $$[$0 - 1], strip: yy.stripFlags($$[$0 - 5], $$[$0]) };
2154 break;
2155 case 18:
2156 this.$ = { strip: yy.stripFlags($$[$0 - 1], $$[$0 - 1]), program: $$[$0] };
2157 break;
2158 case 19:
2159 var inverse = yy.prepareBlock($$[$0 - 2], $$[$0 - 1], $$[$0], $$[$0], false, this._$),
2160 program = yy.prepareProgram([inverse], $$[$0 - 1].loc);
2161 program.chained = true;
2162
2163 this.$ = { strip: $$[$0 - 2].strip, program: program, chain: true };
2164
2165 break;
2166 case 20:
2167 this.$ = $$[$0];
2168 break;
2169 case 21:
2170 this.$ = { path: $$[$0 - 1], strip: yy.stripFlags($$[$0 - 2], $$[$0]) };
2171 break;
2172 case 22:
2173 this.$ = yy.prepareMustache($$[$0 - 3], $$[$0 - 2], $$[$0 - 1], $$[$0 - 4], yy.stripFlags($$[$0 - 4], $$[$0]), this._$);
2174 break;
2175 case 23:
2176 this.$ = yy.prepareMustache($$[$0 - 3], $$[$0 - 2], $$[$0 - 1], $$[$0 - 4], yy.stripFlags($$[$0 - 4], $$[$0]), this._$);
2177 break;
2178 case 24:
2179 this.$ = {
2180 type: 'PartialStatement',
2181 name: $$[$0 - 3],
2182 params: $$[$0 - 2],
2183 hash: $$[$0 - 1],
2184 indent: '',
2185 strip: yy.stripFlags($$[$0 - 4], $$[$0]),
2186 loc: yy.locInfo(this._$)
2187 };
2188
2189 break;
2190 case 25:
2191 this.$ = yy.preparePartialBlock($$[$0 - 2], $$[$0 - 1], $$[$0], this._$);
2192 break;
2193 case 26:
2194 this.$ = { path: $$[$0 - 3], params: $$[$0 - 2], hash: $$[$0 - 1], strip: yy.stripFlags($$[$0 - 4], $$[$0]) };
2195 break;
2196 case 27:
2197 this.$ = $$[$0];
2198 break;
2199 case 28:
2200 this.$ = $$[$0];
2201 break;
2202 case 29:
2203 this.$ = {
2204 type: 'SubExpression',
2205 path: $$[$0 - 3],
2206 params: $$[$0 - 2],
2207 hash: $$[$0 - 1],
2208 loc: yy.locInfo(this._$)
2209 };
2210
2211 break;
2212 case 30:
2213 this.$ = { type: 'Hash', pairs: $$[$0], loc: yy.locInfo(this._$) };
2214 break;
2215 case 31:
2216 this.$ = { type: 'HashPair', key: yy.id($$[$0 - 2]), value: $$[$0], loc: yy.locInfo(this._$) };
2217 break;
2218 case 32:
2219 this.$ = yy.id($$[$0 - 1]);
2220 break;
2221 case 33:
2222 this.$ = $$[$0];
2223 break;
2224 case 34:
2225 this.$ = $$[$0];
2226 break;
2227 case 35:
2228 this.$ = { type: 'StringLiteral', value: $$[$0], original: $$[$0], loc: yy.locInfo(this._$) };
2229 break;
2230 case 36:
2231 this.$ = { type: 'NumberLiteral', value: Number($$[$0]), original: Number($$[$0]), loc: yy.locInfo(this._$) };
2232 break;
2233 case 37:
2234 this.$ = { type: 'BooleanLiteral', value: $$[$0] === 'true', original: $$[$0] === 'true', loc: yy.locInfo(this._$) };
2235 break;
2236 case 38:
2237 this.$ = { type: 'UndefinedLiteral', original: undefined, value: undefined, loc: yy.locInfo(this._$) };
2238 break;
2239 case 39:
2240 this.$ = { type: 'NullLiteral', original: null, value: null, loc: yy.locInfo(this._$) };
2241 break;
2242 case 40:
2243 this.$ = $$[$0];
2244 break;
2245 case 41:
2246 this.$ = $$[$0];
2247 break;
2248 case 42:
2249 this.$ = yy.preparePath(true, $$[$0], this._$);
2250 break;
2251 case 43:
2252 this.$ = yy.preparePath(false, $$[$0], this._$);
2253 break;
2254 case 44:
2255 $$[$0 - 2].push({ part: yy.id($$[$0]), original: $$[$0], separator: $$[$0 - 1] });this.$ = $$[$0 - 2];
2256 break;
2257 case 45:
2258 this.$ = [{ part: yy.id($$[$0]), original: $$[$0] }];
2259 break;
2260 case 46:
2261 this.$ = [];
2262 break;
2263 case 47:
2264 $$[$0 - 1].push($$[$0]);
2265 break;
2266 case 48:
2267 this.$ = [$$[$0]];
2268 break;
2269 case 49:
2270 $$[$0 - 1].push($$[$0]);
2271 break;
2272 case 50:
2273 this.$ = [];
2274 break;
2275 case 51:
2276 $$[$0 - 1].push($$[$0]);
2277 break;
2278 case 58:
2279 this.$ = [];
2280 break;
2281 case 59:
2282 $$[$0 - 1].push($$[$0]);
2283 break;
2284 case 64:
2285 this.$ = [];
2286 break;
2287 case 65:
2288 $$[$0 - 1].push($$[$0]);
2289 break;
2290 case 70:
2291 this.$ = [];
2292 break;
2293 case 71:
2294 $$[$0 - 1].push($$[$0]);
2295 break;
2296 case 78:
2297 this.$ = [];
2298 break;
2299 case 79:
2300 $$[$0 - 1].push($$[$0]);
2301 break;
2302 case 82:
2303 this.$ = [];
2304 break;
2305 case 83:
2306 $$[$0 - 1].push($$[$0]);
2307 break;
2308 case 86:
2309 this.$ = [];
2310 break;
2311 case 87:
2312 $$[$0 - 1].push($$[$0]);
2313 break;
2314 case 90:
2315 this.$ = [];
2316 break;
2317 case 91:
2318 $$[$0 - 1].push($$[$0]);
2319 break;
2320 case 94:
2321 this.$ = [];
2322 break;
2323 case 95:
2324 $$[$0 - 1].push($$[$0]);
2325 break;
2326 case 98:
2327 this.$ = [$$[$0]];
2328 break;
2329 case 99:
2330 $$[$0 - 1].push($$[$0]);
2331 break;
2332 case 100:
2333 this.$ = [$$[$0]];
2334 break;
2335 case 101:
2336 $$[$0 - 1].push($$[$0]);
2337 break;
2338 }
2339 },
2340 table: [{ 3: 1, 4: 2, 5: [2, 46], 6: 3, 14: [2, 46], 15: [2, 46], 19: [2, 46], 29: [2, 46], 34: [2, 46], 48: [2, 46], 51: [2, 46], 55: [2, 46], 60: [2, 46] }, { 1: [3] }, { 5: [1, 4] }, { 5: [2, 2], 7: 5, 8: 6, 9: 7, 10: 8, 11: 9, 12: 10, 13: 11, 14: [1, 12], 15: [1, 20], 16: 17, 19: [1, 23], 24: 15, 27: 16, 29: [1, 21], 34: [1, 22], 39: [2, 2], 44: [2, 2], 47: [2, 2], 48: [1, 13], 51: [1, 14], 55: [1, 18], 59: 19, 60: [1, 24] }, { 1: [2, 1] }, { 5: [2, 47], 14: [2, 47], 15: [2, 47], 19: [2, 47], 29: [2, 47], 34: [2, 47], 39: [2, 47], 44: [2, 47], 47: [2, 47], 48: [2, 47], 51: [2, 47], 55: [2, 47], 60: [2, 47] }, { 5: [2, 3], 14: [2, 3], 15: [2, 3], 19: [2, 3], 29: [2, 3], 34: [2, 3], 39: [2, 3], 44: [2, 3], 47: [2, 3], 48: [2, 3], 51: [2, 3], 55: [2, 3], 60: [2, 3] }, { 5: [2, 4], 14: [2, 4], 15: [2, 4], 19: [2, 4], 29: [2, 4], 34: [2, 4], 39: [2, 4], 44: [2, 4], 47: [2, 4], 48: [2, 4], 51: [2, 4], 55: [2, 4], 60: [2, 4] }, { 5: [2, 5], 14: [2, 5], 15: [2, 5], 19: [2, 5], 29: [2, 5], 34: [2, 5], 39: [2, 5], 44: [2, 5], 47: [2, 5], 48: [2, 5], 51: [2, 5], 55: [2, 5], 60: [2, 5] }, { 5: [2, 6], 14: [2, 6], 15: [2, 6], 19: [2, 6], 29: [2, 6], 34: [2, 6], 39: [2, 6], 44: [2, 6], 47: [2, 6], 48: [2, 6], 51: [2, 6], 55: [2, 6], 60: [2, 6] }, { 5: [2, 7], 14: [2, 7], 15: [2, 7], 19: [2, 7], 29: [2, 7], 34: [2, 7], 39: [2, 7], 44: [2, 7], 47: [2, 7], 48: [2, 7], 51: [2, 7], 55: [2, 7], 60: [2, 7] }, { 5: [2, 8], 14: [2, 8], 15: [2, 8], 19: [2, 8], 29: [2, 8], 34: [2, 8], 39: [2, 8], 44: [2, 8], 47: [2, 8], 48: [2, 8], 51: [2, 8], 55: [2, 8], 60: [2, 8] }, { 5: [2, 9], 14: [2, 9], 15: [2, 9], 19: [2, 9], 29: [2, 9], 34: [2, 9], 39: [2, 9], 44: [2, 9], 47: [2, 9], 48: [2, 9], 51: [2, 9], 55: [2, 9], 60: [2, 9] }, { 20: 25, 72: [1, 35], 78: 26, 79: 27, 80: [1, 28], 81: [1, 29], 82: [1, 30], 83: [1, 31], 84: [1, 32], 85: [1, 34], 86: 33 }, { 20: 36, 72: [1, 35], 78: 26, 79: 27, 80: [1, 28], 81: [1, 29], 82: [1, 30], 83: [1, 31], 84: [1, 32], 85: [1, 34], 86: 33 }, { 4: 37, 6: 3, 14: [2, 46], 15: [2, 46], 19: [2, 46], 29: [2, 46], 34: [2, 46], 39: [2, 46], 44: [2, 46], 47: [2, 46], 48: [2, 46], 51: [2, 46], 55: [2, 46], 60: [2, 46] }, { 4: 38, 6: 3, 14: [2, 46], 15: [2, 46], 19: [2, 46], 29: [2, 46], 34: [2, 46], 44: [2, 46], 47: [2, 46], 48: [2, 46], 51: [2, 46], 55: [2, 46], 60: [2, 46] }, { 13: 40, 15: [1, 20], 17: 39 }, { 20: 42, 56: 41, 64: 43, 65: [1, 44], 72: [1, 35], 78: 26, 79: 27, 80: [1, 28], 81: [1, 29], 82: [1, 30], 83: [1, 31], 84: [1, 32], 85: [1, 34], 86: 33 }, { 4: 45, 6: 3, 14: [2, 46], 15: [2, 46], 19: [2, 46], 29: [2, 46], 34: [2, 46], 47: [2, 46], 48: [2, 46], 51: [2, 46], 55: [2, 46], 60: [2, 46] }, { 5: [2, 10], 14: [2, 10], 15: [2, 10], 18: [2, 10], 19: [2, 10], 29: [2, 10], 34: [2, 10], 39: [2, 10], 44: [2, 10], 47: [2, 10], 48: [2, 10], 51: [2, 10], 55: [2, 10], 60: [2, 10] }, { 20: 46, 72: [1, 35], 78: 26, 79: 27, 80: [1, 28], 81: [1, 29], 82: [1, 30], 83: [1, 31], 84: [1, 32], 85: [1, 34], 86: 33 }, { 20: 47, 72: [1, 35], 78: 26, 79: 27, 80: [1, 28], 81: [1, 29], 82: [1, 30], 83: [1, 31], 84: [1, 32], 85: [1, 34], 86: 33 }, { 20: 48, 72: [1, 35], 78: 26, 79: 27, 80: [1, 28], 81: [1, 29], 82: [1, 30], 83: [1, 31], 84: [1, 32], 85: [1, 34], 86: 33 }, { 20: 42, 56: 49, 64: 43, 65: [1, 44], 72: [1, 35], 78: 26, 79: 27, 80: [1, 28], 81: [1, 29], 82: [1, 30], 83: [1, 31], 84: [1, 32], 85: [1, 34], 86: 33 }, { 33: [2, 78], 49: 50, 65: [2, 78], 72: [2, 78], 80: [2, 78], 81: [2, 78], 82: [2, 78], 83: [2, 78], 84: [2, 78], 85: [2, 78] }, { 23: [2, 33], 33: [2, 33], 54: [2, 33], 65: [2, 33], 68: [2, 33], 72: [2, 33], 75: [2, 33], 80: [2, 33], 81: [2, 33], 82: [2, 33], 83: [2, 33], 84: [2, 33], 85: [2, 33] }, { 23: [2, 34], 33: [2, 34], 54: [2, 34], 65: [2, 34], 68: [2, 34], 72: [2, 34], 75: [2, 34], 80: [2, 34], 81: [2, 34], 82: [2, 34], 83: [2, 34], 84: [2, 34], 85: [2, 34] }, { 23: [2, 35], 33: [2, 35], 54: [2, 35], 65: [2, 35], 68: [2, 35], 72: [2, 35], 75: [2, 35], 80: [2, 35], 81: [2, 35], 82: [2, 35], 83: [2, 35], 84: [2, 35], 85: [2, 35] }, { 23: [2, 36], 33: [2, 36], 54: [2, 36], 65: [2, 36], 68: [2, 36], 72: [2, 36], 75: [2, 36], 80: [2, 36], 81: [2, 36], 82: [2, 36], 83: [2, 36], 84: [2, 36], 85: [2, 36] }, { 23: [2, 37], 33: [2, 37], 54: [2, 37], 65: [2, 37], 68: [2, 37], 72: [2, 37], 75: [2, 37], 80: [2, 37], 81: [2, 37], 82: [2, 37], 83: [2, 37], 84: [2, 37], 85: [2, 37] }, { 23: [2, 38], 33: [2, 38], 54: [2, 38], 65: [2, 38], 68: [2, 38], 72: [2, 38], 75: [2, 38], 80: [2, 38], 81: [2, 38], 82: [2, 38], 83: [2, 38], 84: [2, 38], 85: [2, 38] }, { 23: [2, 39], 33: [2, 39], 54: [2, 39], 65: [2, 39], 68: [2, 39], 72: [2, 39], 75: [2, 39], 80: [2, 39], 81: [2, 39], 82: [2, 39], 83: [2, 39], 84: [2, 39], 85: [2, 39] }, { 23: [2, 43], 33: [2, 43], 54: [2, 43], 65: [2, 43], 68: [2, 43], 72: [2, 43], 75: [2, 43], 80: [2, 43], 81: [2, 43], 82: [2, 43], 83: [2, 43], 84: [2, 43], 85: [2, 43], 87: [1, 51] }, { 72: [1, 35], 86: 52 }, { 23: [2, 45], 33: [2, 45], 54: [2, 45], 65: [2, 45], 68: [2, 45], 72: [2, 45], 75: [2, 45], 80: [2, 45], 81: [2, 45], 82: [2, 45], 83: [2, 45], 84: [2, 45], 85: [2, 45], 87: [2, 45] }, { 52: 53, 54: [2, 82], 65: [2, 82], 72: [2, 82], 80: [2, 82], 81: [2, 82], 82: [2, 82], 83: [2, 82], 84: [2, 82], 85: [2, 82] }, { 25: 54, 38: 56, 39: [1, 58], 43: 57, 44: [1, 59], 45: 55, 47: [2, 54] }, { 28: 60, 43: 61, 44: [1, 59], 47: [2, 56] }, { 13: 63, 15: [1, 20], 18: [1, 62] }, { 15: [2, 48], 18: [2, 48] }, { 33: [2, 86], 57: 64, 65: [2, 86], 72: [2, 86], 80: [2, 86], 81: [2, 86], 82: [2, 86], 83: [2, 86], 84: [2, 86], 85: [2, 86] }, { 33: [2, 40], 65: [2, 40], 72: [2, 40], 80: [2, 40], 81: [2, 40], 82: [2, 40], 83: [2, 40], 84: [2, 40], 85: [2, 40] }, { 33: [2, 41], 65: [2, 41], 72: [2, 41], 80: [2, 41], 81: [2, 41], 82: [2, 41], 83: [2, 41], 84: [2, 41], 85: [2, 41] }, { 20: 65, 72: [1, 35], 78: 26, 79: 27, 80: [1, 28], 81: [1, 29], 82: [1, 30], 83: [1, 31], 84: [1, 32], 85: [1, 34], 86: 33 }, { 26: 66, 47: [1, 67] }, { 30: 68, 33: [2, 58], 65: [2, 58], 72: [2, 58], 75: [2, 58], 80: [2, 58], 81: [2, 58], 82: [2, 58], 83: [2, 58], 84: [2, 58], 85: [2, 58] }, { 33: [2, 64], 35: 69, 65: [2, 64], 72: [2, 64], 75: [2, 64], 80: [2, 64], 81: [2, 64], 82: [2, 64], 83: [2, 64], 84: [2, 64], 85: [2, 64] }, { 21: 70, 23: [2, 50], 65: [2, 50], 72: [2, 50], 80: [2, 50], 81: [2, 50], 82: [2, 50], 83: [2, 50], 84: [2, 50], 85: [2, 50] }, { 33: [2, 90], 61: 71, 65: [2, 90], 72: [2, 90], 80: [2, 90], 81: [2, 90], 82: [2, 90], 83: [2, 90], 84: [2, 90], 85: [2, 90] }, { 20: 75, 33: [2, 80], 50: 72, 63: 73, 64: 76, 65: [1, 44], 69: 74, 70: 77, 71: 78, 72: [1, 79], 78: 26, 79: 27, 80: [1, 28], 81: [1, 29], 82: [1, 30], 83: [1, 31], 84: [1, 32], 85: [1, 34], 86: 33 }, { 72: [1, 80] }, { 23: [2, 42], 33: [2, 42], 54: [2, 42], 65: [2, 42], 68: [2, 42], 72: [2, 42], 75: [2, 42], 80: [2, 42], 81: [2, 42], 82: [2, 42], 83: [2, 42], 84: [2, 42], 85: [2, 42], 87: [1, 51] }, { 20: 75, 53: 81, 54: [2, 84], 63: 82, 64: 76, 65: [1, 44], 69: 83, 70: 77, 71: 78, 72: [1, 79], 78: 26, 79: 27, 80: [1, 28], 81: [1, 29], 82: [1, 30], 83: [1, 31], 84: [1, 32], 85: [1, 34], 86: 33 }, { 26: 84, 47: [1, 67] }, { 47: [2, 55] }, { 4: 85, 6: 3, 14: [2, 46], 15: [2, 46], 19: [2, 46], 29: [2, 46], 34: [2, 46], 39: [2, 46], 44: [2, 46], 47: [2, 46], 48: [2, 46], 51: [2, 46], 55: [2, 46], 60: [2, 46] }, { 47: [2, 20] }, { 20: 86, 72: [1, 35], 78: 26, 79: 27, 80: [1, 28], 81: [1, 29], 82: [1, 30], 83: [1, 31], 84: [1, 32], 85: [1, 34], 86: 33 }, { 4: 87, 6: 3, 14: [2, 46], 15: [2, 46], 19: [2, 46], 29: [2, 46], 34: [2, 46], 47: [2, 46], 48: [2, 46], 51: [2, 46], 55: [2, 46], 60: [2, 46] }, { 26: 88, 47: [1, 67] }, { 47: [2, 57] }, { 5: [2, 11], 14: [2, 11], 15: [2, 11], 19: [2, 11], 29: [2, 11], 34: [2, 11], 39: [2, 11], 44: [2, 11], 47: [2, 11], 48: [2, 11], 51: [2, 11], 55: [2, 11], 60: [2, 11] }, { 15: [2, 49], 18: [2, 49] }, { 20: 75, 33: [2, 88], 58: 89, 63: 90, 64: 76, 65: [1, 44], 69: 91, 70: 77, 71: 78, 72: [1, 79], 78: 26, 79: 27, 80: [1, 28], 81: [1, 29], 82: [1, 30], 83: [1, 31], 84: [1, 32], 85: [1, 34], 86: 33 }, { 65: [2, 94], 66: 92, 68: [2, 94], 72: [2, 94], 80: [2, 94], 81: [2, 94], 82: [2, 94], 83: [2, 94], 84: [2, 94], 85: [2, 94] }, { 5: [2, 25], 14: [2, 25], 15: [2, 25], 19: [2, 25], 29: [2, 25], 34: [2, 25], 39: [2, 25], 44: [2, 25], 47: [2, 25], 48: [2, 25], 51: [2, 25], 55: [2, 25], 60: [2, 25] }, { 20: 93, 72: [1, 35], 78: 26, 79: 27, 80: [1, 28], 81: [1, 29], 82: [1, 30], 83: [1, 31], 84: [1, 32], 85: [1, 34], 86: 33 }, { 20: 75, 31: 94, 33: [2, 60], 63: 95, 64: 76, 65: [1, 44], 69: 96, 70: 77, 71: 78, 72: [1, 79], 75: [2, 60], 78: 26, 79: 27, 80: [1, 28], 81: [1, 29], 82: [1, 30], 83: [1, 31], 84: [1, 32], 85: [1, 34], 86: 33 }, { 20: 75, 33: [2, 66], 36: 97, 63: 98, 64: 76, 65: [1, 44], 69: 99, 70: 77, 71: 78, 72: [1, 79], 75: [2, 66], 78: 26, 79: 27, 80: [1, 28], 81: [1, 29], 82: [1, 30], 83: [1, 31], 84: [1, 32], 85: [1, 34], 86: 33 }, { 20: 75, 22: 100, 23: [2, 52], 63: 101, 64: 76, 65: [1, 44], 69: 102, 70: 77, 71: 78, 72: [1, 79], 78: 26, 79: 27, 80: [1, 28], 81: [1, 29], 82: [1, 30], 83: [1, 31], 84: [1, 32], 85: [1, 34], 86: 33 }, { 20: 75, 33: [2, 92], 62: 103, 63: 104, 64: 76, 65: [1, 44], 69: 105, 70: 77, 71: 78, 72: [1, 79], 78: 26, 79: 27, 80: [1, 28], 81: [1, 29], 82: [1, 30], 83: [1, 31], 84: [1, 32], 85: [1, 34], 86: 33 }, { 33: [1, 106] }, { 33: [2, 79], 65: [2, 79], 72: [2, 79], 80: [2, 79], 81: [2, 79], 82: [2, 79], 83: [2, 79], 84: [2, 79], 85: [2, 79] }, { 33: [2, 81] }, { 23: [2, 27], 33: [2, 27], 54: [2, 27], 65: [2, 27], 68: [2, 27], 72: [2, 27], 75: [2, 27], 80: [2, 27], 81: [2, 27], 82: [2, 27], 83: [2, 27], 84: [2, 27], 85: [2, 27] }, { 23: [2, 28], 33: [2, 28], 54: [2, 28], 65: [2, 28], 68: [2, 28], 72: [2, 28], 75: [2, 28], 80: [2, 28], 81: [2, 28], 82: [2, 28], 83: [2, 28], 84: [2, 28], 85: [2, 28] }, { 23: [2, 30], 33: [2, 30], 54: [2, 30], 68: [2, 30], 71: 107, 72: [1, 108], 75: [2, 30] }, { 23: [2, 98], 33: [2, 98], 54: [2, 98], 68: [2, 98], 72: [2, 98], 75: [2, 98] }, { 23: [2, 45], 33: [2, 45], 54: [2, 45], 65: [2, 45], 68: [2, 45], 72: [2, 45], 73: [1, 109], 75: [2, 45], 80: [2, 45], 81: [2, 45], 82: [2, 45], 83: [2, 45], 84: [2, 45], 85: [2, 45], 87: [2, 45] }, { 23: [2, 44], 33: [2, 44], 54: [2, 44], 65: [2, 44], 68: [2, 44], 72: [2, 44], 75: [2, 44], 80: [2, 44], 81: [2, 44], 82: [2, 44], 83: [2, 44], 84: [2, 44], 85: [2, 44], 87: [2, 44] }, { 54: [1, 110] }, { 54: [2, 83], 65: [2, 83], 72: [2, 83], 80: [2, 83], 81: [2, 83], 82: [2, 83], 83: [2, 83], 84: [2, 83], 85: [2, 83] }, { 54: [2, 85] }, { 5: [2, 13], 14: [2, 13], 15: [2, 13], 19: [2, 13], 29: [2, 13], 34: [2, 13], 39: [2, 13], 44: [2, 13], 47: [2, 13], 48: [2, 13], 51: [2, 13], 55: [2, 13], 60: [2, 13] }, { 38: 56, 39: [1, 58], 43: 57, 44: [1, 59], 45: 112, 46: 111, 47: [2, 76] }, { 33: [2, 70], 40: 113, 65: [2, 70], 72: [2, 70], 75: [2, 70], 80: [2, 70], 81: [2, 70], 82: [2, 70], 83: [2, 70], 84: [2, 70], 85: [2, 70] }, { 47: [2, 18] }, { 5: [2, 14], 14: [2, 14], 15: [2, 14], 19: [2, 14], 29: [2, 14], 34: [2, 14], 39: [2, 14], 44: [2, 14], 47: [2, 14], 48: [2, 14], 51: [2, 14], 55: [2, 14], 60: [2, 14] }, { 33: [1, 114] }, { 33: [2, 87], 65: [2, 87], 72: [2, 87], 80: [2, 87], 81: [2, 87], 82: [2, 87], 83: [2, 87], 84: [2, 87], 85: [2, 87] }, { 33: [2, 89] }, { 20: 75, 63: 116, 64: 76, 65: [1, 44], 67: 115, 68: [2, 96], 69: 117, 70: 77, 71: 78, 72: [1, 79], 78: 26, 79: 27, 80: [1, 28], 81: [1, 29], 82: [1, 30], 83: [1, 31], 84: [1, 32], 85: [1, 34], 86: 33 }, { 33: [1, 118] }, { 32: 119, 33: [2, 62], 74: 120, 75: [1, 121] }, { 33: [2, 59], 65: [2, 59], 72: [2, 59], 75: [2, 59], 80: [2, 59], 81: [2, 59], 82: [2, 59], 83: [2, 59], 84: [2, 59], 85: [2, 59] }, { 33: [2, 61], 75: [2, 61] }, { 33: [2, 68], 37: 122, 74: 123, 75: [1, 121] }, { 33: [2, 65], 65: [2, 65], 72: [2, 65], 75: [2, 65], 80: [2, 65], 81: [2, 65], 82: [2, 65], 83: [2, 65], 84: [2, 65], 85: [2, 65] }, { 33: [2, 67], 75: [2, 67] }, { 23: [1, 124] }, { 23: [2, 51], 65: [2, 51], 72: [2, 51], 80: [2, 51], 81: [2, 51], 82: [2, 51], 83: [2, 51], 84: [2, 51], 85: [2, 51] }, { 23: [2, 53] }, { 33: [1, 125] }, { 33: [2, 91], 65: [2, 91], 72: [2, 91], 80: [2, 91], 81: [2, 91], 82: [2, 91], 83: [2, 91], 84: [2, 91], 85: [2, 91] }, { 33: [2, 93] }, { 5: [2, 22], 14: [2, 22], 15: [2, 22], 19: [2, 22], 29: [2, 22], 34: [2, 22], 39: [2, 22], 44: [2, 22], 47: [2, 22], 48: [2, 22], 51: [2, 22], 55: [2, 22], 60: [2, 22] }, { 23: [2, 99], 33: [2, 99], 54: [2, 99], 68: [2, 99], 72: [2, 99], 75: [2, 99] }, { 73: [1, 109] }, { 20: 75, 63: 126, 64: 76, 65: [1, 44], 72: [1, 35], 78: 26, 79: 27, 80: [1, 28], 81: [1, 29], 82: [1, 30], 83: [1, 31], 84: [1, 32], 85: [1, 34], 86: 33 }, { 5: [2, 23], 14: [2, 23], 15: [2, 23], 19: [2, 23], 29: [2, 23], 34: [2, 23], 39: [2, 23], 44: [2, 23], 47: [2, 23], 48: [2, 23], 51: [2, 23], 55: [2, 23], 60: [2, 23] }, { 47: [2, 19] }, { 47: [2, 77] }, { 20: 75, 33: [2, 72], 41: 127, 63: 128, 64: 76, 65: [1, 44], 69: 129, 70: 77, 71: 78, 72: [1, 79], 75: [2, 72], 78: 26, 79: 27, 80: [1, 28], 81: [1, 29], 82: [1, 30], 83: [1, 31], 84: [1, 32], 85: [1, 34], 86: 33 }, { 5: [2, 24], 14: [2, 24], 15: [2, 24], 19: [2, 24], 29: [2, 24], 34: [2, 24], 39: [2, 24], 44: [2, 24], 47: [2, 24], 48: [2, 24], 51: [2, 24], 55: [2, 24], 60: [2, 24] }, { 68: [1, 130] }, { 65: [2, 95], 68: [2, 95], 72: [2, 95], 80: [2, 95], 81: [2, 95], 82: [2, 95], 83: [2, 95], 84: [2, 95], 85: [2, 95] }, { 68: [2, 97] }, { 5: [2, 21], 14: [2, 21], 15: [2, 21], 19: [2, 21], 29: [2, 21], 34: [2, 21], 39: [2, 21], 44: [2, 21], 47: [2, 21], 48: [2, 21], 51: [2, 21], 55: [2, 21], 60: [2, 21] }, { 33: [1, 131] }, { 33: [2, 63] }, { 72: [1, 133], 76: 132 }, { 33: [1, 134] }, { 33: [2, 69] }, { 15: [2, 12] }, { 14: [2, 26], 15: [2, 26], 19: [2, 26], 29: [2, 26], 34: [2, 26], 47: [2, 26], 48: [2, 26], 51: [2, 26], 55: [2, 26], 60: [2, 26] }, { 23: [2, 31], 33: [2, 31], 54: [2, 31], 68: [2, 31], 72: [2, 31], 75: [2, 31] }, { 33: [2, 74], 42: 135, 74: 136, 75: [1, 121] }, { 33: [2, 71], 65: [2, 71], 72: [2, 71], 75: [2, 71], 80: [2, 71], 81: [2, 71], 82: [2, 71], 83: [2, 71], 84: [2, 71], 85: [2, 71] }, { 33: [2, 73], 75: [2, 73] }, { 23: [2, 29], 33: [2, 29], 54: [2, 29], 65: [2, 29], 68: [2, 29], 72: [2, 29], 75: [2, 29], 80: [2, 29], 81: [2, 29], 82: [2, 29], 83: [2, 29], 84: [2, 29], 85: [2, 29] }, { 14: [2, 15], 15: [2, 15], 19: [2, 15], 29: [2, 15], 34: [2, 15], 39: [2, 15], 44: [2, 15], 47: [2, 15], 48: [2, 15], 51: [2, 15], 55: [2, 15], 60: [2, 15] }, { 72: [1, 138], 77: [1, 137] }, { 72: [2, 100], 77: [2, 100] }, { 14: [2, 16], 15: [2, 16], 19: [2, 16], 29: [2, 16], 34: [2, 16], 44: [2, 16], 47: [2, 16], 48: [2, 16], 51: [2, 16], 55: [2, 16], 60: [2, 16] }, { 33: [1, 139] }, { 33: [2, 75] }, { 33: [2, 32] }, { 72: [2, 101], 77: [2, 101] }, { 14: [2, 17], 15: [2, 17], 19: [2, 17], 29: [2, 17], 34: [2, 17], 39: [2, 17], 44: [2, 17], 47: [2, 17], 48: [2, 17], 51: [2, 17], 55: [2, 17], 60: [2, 17] }],
2341 defaultActions: { 4: [2, 1], 55: [2, 55], 57: [2, 20], 61: [2, 57], 74: [2, 81], 83: [2, 85], 87: [2, 18], 91: [2, 89], 102: [2, 53], 105: [2, 93], 111: [2, 19], 112: [2, 77], 117: [2, 97], 120: [2, 63], 123: [2, 69], 124: [2, 12], 136: [2, 75], 137: [2, 32] },
2342 parseError: function parseError(str, hash) {
2343 throw new Error(str);
2344 },
2345 parse: function parse(input) {
2346 var self = this,
2347 stack = [0],
2348 vstack = [null],
2349 lstack = [],
2350 table = this.table,
2351 yytext = "",
2352 yylineno = 0,
2353 yyleng = 0,
2354 recovering = 0,
2355 TERROR = 2,
2356 EOF = 1;
2357 this.lexer.setInput(input);
2358 this.lexer.yy = this.yy;
2359 this.yy.lexer = this.lexer;
2360 this.yy.parser = this;
2361 if (typeof this.lexer.yylloc == "undefined") this.lexer.yylloc = {};
2362 var yyloc = this.lexer.yylloc;
2363 lstack.push(yyloc);
2364 var ranges = this.lexer.options && this.lexer.options.ranges;
2365 if (typeof this.yy.parseError === "function") this.parseError = this.yy.parseError;
2366 function popStack(n) {
2367 stack.length = stack.length - 2 * n;
2368 vstack.length = vstack.length - n;
2369 lstack.length = lstack.length - n;
2370 }
2371 function lex() {
2372 var token;
2373 token = self.lexer.lex() || 1;
2374 if (typeof token !== "number") {
2375 token = self.symbols_[token] || token;
2376 }
2377 return token;
2378 }
2379 var symbol,
2380 preErrorSymbol,
2381 state,
2382 action,
2383 a,
2384 r,
2385 yyval = {},
2386 p,
2387 len,
2388 newState,
2389 expected;
2390 while (true) {
2391 state = stack[stack.length - 1];
2392 if (this.defaultActions[state]) {
2393 action = this.defaultActions[state];
2394 } else {
2395 if (symbol === null || typeof symbol == "undefined") {
2396 symbol = lex();
2397 }
2398 action = table[state] && table[state][symbol];
2399 }
2400 if (typeof action === "undefined" || !action.length || !action[0]) {
2401 var errStr = "";
2402 if (!recovering) {
2403 expected = [];
2404 for (p in table[state]) if (this.terminals_[p] && p > 2) {
2405 expected.push("'" + this.terminals_[p] + "'");
2406 }
2407 if (this.lexer.showPosition) {
2408 errStr = "Parse error on line " + (yylineno + 1) + ":\n" + this.lexer.showPosition() + "\nExpecting " + expected.join(", ") + ", got '" + (this.terminals_[symbol] || symbol) + "'";
2409 } else {
2410 errStr = "Parse error on line " + (yylineno + 1) + ": Unexpected " + (symbol == 1 ? "end of input" : "'" + (this.terminals_[symbol] || symbol) + "'");
2411 }
2412 this.parseError(errStr, { text: this.lexer.match, token: this.terminals_[symbol] || symbol, line: this.lexer.yylineno, loc: yyloc, expected: expected });
2413 }
2414 }
2415 if (action[0] instanceof Array && action.length > 1) {
2416 throw new Error("Parse Error: multiple actions possible at state: " + state + ", token: " + symbol);
2417 }
2418 switch (action[0]) {
2419 case 1:
2420 stack.push(symbol);
2421 vstack.push(this.lexer.yytext);
2422 lstack.push(this.lexer.yylloc);
2423 stack.push(action[1]);
2424 symbol = null;
2425 if (!preErrorSymbol) {
2426 yyleng = this.lexer.yyleng;
2427 yytext = this.lexer.yytext;
2428 yylineno = this.lexer.yylineno;
2429 yyloc = this.lexer.yylloc;
2430 if (recovering > 0) recovering--;
2431 } else {
2432 symbol = preErrorSymbol;
2433 preErrorSymbol = null;
2434 }
2435 break;
2436 case 2:
2437 len = this.productions_[action[1]][1];
2438 yyval.$ = vstack[vstack.length - len];
2439 yyval._$ = { first_line: lstack[lstack.length - (len || 1)].first_line, last_line: lstack[lstack.length - 1].last_line, first_column: lstack[lstack.length - (len || 1)].first_column, last_column: lstack[lstack.length - 1].last_column };
2440 if (ranges) {
2441 yyval._$.range = [lstack[lstack.length - (len || 1)].range[0], lstack[lstack.length - 1].range[1]];
2442 }
2443 r = this.performAction.call(yyval, yytext, yyleng, yylineno, this.yy, action[1], vstack, lstack);
2444 if (typeof r !== "undefined") {
2445 return r;
2446 }
2447 if (len) {
2448 stack = stack.slice(0, -1 * len * 2);
2449 vstack = vstack.slice(0, -1 * len);
2450 lstack = lstack.slice(0, -1 * len);
2451 }
2452 stack.push(this.productions_[action[1]][0]);
2453 vstack.push(yyval.$);
2454 lstack.push(yyval._$);
2455 newState = table[stack[stack.length - 2]][stack[stack.length - 1]];
2456 stack.push(newState);
2457 break;
2458 case 3:
2459 return true;
2460 }
2461 }
2462 return true;
2463 }
2464 };
2465 /* Jison generated lexer */
2466 var lexer = (function () {
2467 var lexer = { EOF: 1,
2468 parseError: function parseError(str, hash) {
2469 if (this.yy.parser) {
2470 this.yy.parser.parseError(str, hash);
2471 } else {
2472 throw new Error(str);
2473 }
2474 },
2475 setInput: function setInput(input) {
2476 this._input = input;
2477 this._more = this._less = this.done = false;
2478 this.yylineno = this.yyleng = 0;
2479 this.yytext = this.matched = this.match = '';
2480 this.conditionStack = ['INITIAL'];
2481 this.yylloc = { first_line: 1, first_column: 0, last_line: 1, last_column: 0 };
2482 if (this.options.ranges) this.yylloc.range = [0, 0];
2483 this.offset = 0;
2484 return this;
2485 },
2486 input: function input() {
2487 var ch = this._input[0];
2488 this.yytext += ch;
2489 this.yyleng++;
2490 this.offset++;
2491 this.match += ch;
2492 this.matched += ch;
2493 var lines = ch.match(/(?:\r\n?|\n).*/g);
2494 if (lines) {
2495 this.yylineno++;
2496 this.yylloc.last_line++;
2497 } else {
2498 this.yylloc.last_column++;
2499 }
2500 if (this.options.ranges) this.yylloc.range[1]++;
2501
2502 this._input = this._input.slice(1);
2503 return ch;
2504 },
2505 unput: function unput(ch) {
2506 var len = ch.length;
2507 var lines = ch.split(/(?:\r\n?|\n)/g);
2508
2509 this._input = ch + this._input;
2510 this.yytext = this.yytext.substr(0, this.yytext.length - len - 1);
2511 //this.yyleng -= len;
2512 this.offset -= len;
2513 var oldLines = this.match.split(/(?:\r\n?|\n)/g);
2514 this.match = this.match.substr(0, this.match.length - 1);
2515 this.matched = this.matched.substr(0, this.matched.length - 1);
2516
2517 if (lines.length - 1) this.yylineno -= lines.length - 1;
2518 var r = this.yylloc.range;
2519
2520 this.yylloc = { first_line: this.yylloc.first_line,
2521 last_line: this.yylineno + 1,
2522 first_column: this.yylloc.first_column,
2523 last_column: lines ? (lines.length === oldLines.length ? this.yylloc.first_column : 0) + oldLines[oldLines.length - lines.length].length - lines[0].length : this.yylloc.first_column - len
2524 };
2525
2526 if (this.options.ranges) {
2527 this.yylloc.range = [r[0], r[0] + this.yyleng - len];
2528 }
2529 return this;
2530 },
2531 more: function more() {
2532 this._more = true;
2533 return this;
2534 },
2535 less: function less(n) {
2536 this.unput(this.match.slice(n));
2537 },
2538 pastInput: function pastInput() {
2539 var past = this.matched.substr(0, this.matched.length - this.match.length);
2540 return (past.length > 20 ? '...' : '') + past.substr(-20).replace(/\n/g, "");
2541 },
2542 upcomingInput: function upcomingInput() {
2543 var next = this.match;
2544 if (next.length < 20) {
2545 next += this._input.substr(0, 20 - next.length);
2546 }
2547 return (next.substr(0, 20) + (next.length > 20 ? '...' : '')).replace(/\n/g, "");
2548 },
2549 showPosition: function showPosition() {
2550 var pre = this.pastInput();
2551 var c = new Array(pre.length + 1).join("-");
2552 return pre + this.upcomingInput() + "\n" + c + "^";
2553 },
2554 next: function next() {
2555 if (this.done) {
2556 return this.EOF;
2557 }
2558 if (!this._input) this.done = true;
2559
2560 var token, match, tempMatch, index, col, lines;
2561 if (!this._more) {
2562 this.yytext = '';
2563 this.match = '';
2564 }
2565 var rules = this._currentRules();
2566 for (var i = 0; i < rules.length; i++) {
2567 tempMatch = this._input.match(this.rules[rules[i]]);
2568 if (tempMatch && (!match || tempMatch[0].length > match[0].length)) {
2569 match = tempMatch;
2570 index = i;
2571 if (!this.options.flex) break;
2572 }
2573 }
2574 if (match) {
2575 lines = match[0].match(/(?:\r\n?|\n).*/g);
2576 if (lines) this.yylineno += lines.length;
2577 this.yylloc = { first_line: this.yylloc.last_line,
2578 last_line: this.yylineno + 1,
2579 first_column: this.yylloc.last_column,
2580 last_column: lines ? lines[lines.length - 1].length - lines[lines.length - 1].match(/\r?\n?/)[0].length : this.yylloc.last_column + match[0].length };
2581 this.yytext += match[0];
2582 this.match += match[0];
2583 this.matches = match;
2584 this.yyleng = this.yytext.length;
2585 if (this.options.ranges) {
2586 this.yylloc.range = [this.offset, this.offset += this.yyleng];
2587 }
2588 this._more = false;
2589 this._input = this._input.slice(match[0].length);
2590 this.matched += match[0];
2591 token = this.performAction.call(this, this.yy, this, rules[index], this.conditionStack[this.conditionStack.length - 1]);
2592 if (this.done && this._input) this.done = false;
2593 if (token) return token;else return;
2594 }
2595 if (this._input === "") {
2596 return this.EOF;
2597 } else {
2598 return this.parseError('Lexical error on line ' + (this.yylineno + 1) + '. Unrecognized text.\n' + this.showPosition(), { text: "", token: null, line: this.yylineno });
2599 }
2600 },
2601 lex: function lex() {
2602 var r = this.next();
2603 if (typeof r !== 'undefined') {
2604 return r;
2605 } else {
2606 return this.lex();
2607 }
2608 },
2609 begin: function begin(condition) {
2610 this.conditionStack.push(condition);
2611 },
2612 popState: function popState() {
2613 return this.conditionStack.pop();
2614 },
2615 _currentRules: function _currentRules() {
2616 return this.conditions[this.conditionStack[this.conditionStack.length - 1]].rules;
2617 },
2618 topState: function topState() {
2619 return this.conditionStack[this.conditionStack.length - 2];
2620 },
2621 pushState: function begin(condition) {
2622 this.begin(condition);
2623 } };
2624 lexer.options = {};
2625 lexer.performAction = function anonymous(yy, yy_, $avoiding_name_collisions, YY_START
2626 /*``*/) {
2627
2628 function strip(start, end) {
2629 return yy_.yytext = yy_.yytext.substr(start, yy_.yyleng - end);
2630 }
2631
2632 var YYSTATE = YY_START;
2633 switch ($avoiding_name_collisions) {
2634 case 0:
2635 if (yy_.yytext.slice(-2) === "\\\\") {
2636 strip(0, 1);
2637 this.begin("mu");
2638 } else if (yy_.yytext.slice(-1) === "\\") {
2639 strip(0, 1);
2640 this.begin("emu");
2641 } else {
2642 this.begin("mu");
2643 }
2644 if (yy_.yytext) return 15;
2645
2646 break;
2647 case 1:
2648 return 15;
2649 break;
2650 case 2:
2651 this.popState();
2652 return 15;
2653
2654 break;
2655 case 3:
2656 this.begin('raw');return 15;
2657 break;
2658 case 4:
2659 this.popState();
2660 // Should be using `this.topState()` below, but it currently
2661 // returns the second top instead of the first top. Opened an
2662 // issue about it at https://github.com/zaach/jison/issues/291
2663 if (this.conditionStack[this.conditionStack.length - 1] === 'raw') {
2664 return 15;
2665 } else {
2666 yy_.yytext = yy_.yytext.substr(5, yy_.yyleng - 9);
2667 return 'END_RAW_BLOCK';
2668 }
2669
2670 break;
2671 case 5:
2672 return 15;
2673 break;
2674 case 6:
2675 this.popState();
2676 return 14;
2677
2678 break;
2679 case 7:
2680 return 65;
2681 break;
2682 case 8:
2683 return 68;
2684 break;
2685 case 9:
2686 return 19;
2687 break;
2688 case 10:
2689 this.popState();
2690 this.begin('raw');
2691 return 23;
2692
2693 break;
2694 case 11:
2695 return 55;
2696 break;
2697 case 12:
2698 return 60;
2699 break;
2700 case 13:
2701 return 29;
2702 break;
2703 case 14:
2704 return 47;
2705 break;
2706 case 15:
2707 this.popState();return 44;
2708 break;
2709 case 16:
2710 this.popState();return 44;
2711 break;
2712 case 17:
2713 return 34;
2714 break;
2715 case 18:
2716 return 39;
2717 break;
2718 case 19:
2719 return 51;
2720 break;
2721 case 20:
2722 return 48;
2723 break;
2724 case 21:
2725 this.unput(yy_.yytext);
2726 this.popState();
2727 this.begin('com');
2728
2729 break;
2730 case 22:
2731 this.popState();
2732 return 14;
2733
2734 break;
2735 case 23:
2736 return 48;
2737 break;
2738 case 24:
2739 return 73;
2740 break;
2741 case 25:
2742 return 72;
2743 break;
2744 case 26:
2745 return 72;
2746 break;
2747 case 27:
2748 return 87;
2749 break;
2750 case 28:
2751 // ignore whitespace
2752 break;
2753 case 29:
2754 this.popState();return 54;
2755 break;
2756 case 30:
2757 this.popState();return 33;
2758 break;
2759 case 31:
2760 yy_.yytext = strip(1, 2).replace(/\\"/g, '"');return 80;
2761 break;
2762 case 32:
2763 yy_.yytext = strip(1, 2).replace(/\\'/g, "'");return 80;
2764 break;
2765 case 33:
2766 return 85;
2767 break;
2768 case 34:
2769 return 82;
2770 break;
2771 case 35:
2772 return 82;
2773 break;
2774 case 36:
2775 return 83;
2776 break;
2777 case 37:
2778 return 84;
2779 break;
2780 case 38:
2781 return 81;
2782 break;
2783 case 39:
2784 return 75;
2785 break;
2786 case 40:
2787 return 77;
2788 break;
2789 case 41:
2790 return 72;
2791 break;
2792 case 42:
2793 yy_.yytext = yy_.yytext.replace(/\\([\\\]])/g, '$1');return 72;
2794 break;
2795 case 43:
2796 return 'INVALID';
2797 break;
2798 case 44:
2799 return 5;
2800 break;
2801 }
2802 };
2803 lexer.rules = [/^(?:[^\x00]*?(?=(\{\{)))/, /^(?:[^\x00]+)/, /^(?:[^\x00]{2,}?(?=(\{\{|\\\{\{|\\\\\{\{|$)))/, /^(?:\{\{\{\{(?=[^\/]))/, /^(?:\{\{\{\{\/[^\s!"#%-,\.\/;->@\[-\^`\{-~]+(?=[=}\s\/.])\}\}\}\})/, /^(?:[^\x00]*?(?=(\{\{\{\{)))/, /^(?:[\s\S]*?--(~)?\}\})/, /^(?:\()/, /^(?:\))/, /^(?:\{\{\{\{)/, /^(?:\}\}\}\})/, /^(?:\{\{(~)?>)/, /^(?:\{\{(~)?#>)/, /^(?:\{\{(~)?#\*?)/, /^(?:\{\{(~)?\/)/, /^(?:\{\{(~)?\^\s*(~)?\}\})/, /^(?:\{\{(~)?\s*else\s*(~)?\}\})/, /^(?:\{\{(~)?\^)/, /^(?:\{\{(~)?\s*else\b)/, /^(?:\{\{(~)?\{)/, /^(?:\{\{(~)?&)/, /^(?:\{\{(~)?!--)/, /^(?:\{\{(~)?![\s\S]*?\}\})/, /^(?:\{\{(~)?\*?)/, /^(?:=)/, /^(?:\.\.)/, /^(?:\.(?=([=~}\s\/.)|])))/, /^(?:[\/.])/, /^(?:\s+)/, /^(?:\}(~)?\}\})/, /^(?:(~)?\}\})/, /^(?:"(\\["]|[^"])*")/, /^(?:'(\\[']|[^'])*')/, /^(?:@)/, /^(?:true(?=([~}\s)])))/, /^(?:false(?=([~}\s)])))/, /^(?:undefined(?=([~}\s)])))/, /^(?:null(?=([~}\s)])))/, /^(?:-?[0-9]+(?:\.[0-9]+)?(?=([~}\s)])))/, /^(?:as\s+\|)/, /^(?:\|)/, /^(?:([^\s!"#%-,\.\/;->@\[-\^`\{-~]+(?=([=~}\s\/.)|]))))/, /^(?:\[(\\\]|[^\]])*\])/, /^(?:.)/, /^(?:$)/];
2804 lexer.conditions = { "mu": { "rules": [7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44], "inclusive": false }, "emu": { "rules": [2], "inclusive": false }, "com": { "rules": [6], "inclusive": false }, "raw": { "rules": [3, 4, 5], "inclusive": false }, "INITIAL": { "rules": [0, 1, 44], "inclusive": true } };
2805 return lexer;
2806 })();
2807 parser.lexer = lexer;
2808 function Parser() {
2809 this.yy = {};
2810 }Parser.prototype = parser;parser.Parser = Parser;
2811 return new Parser();
2812 })();exports["default"] = handlebars;
2813 module.exports = exports["default"];
2814
2815/***/ }),
2816/* 38 */
2817/***/ (function(module, exports, __webpack_require__) {
2818
2819 'use strict';
2820
2821 var _interopRequireDefault = __webpack_require__(1)['default'];
2822
2823 exports.__esModule = true;
2824
2825 var _visitor = __webpack_require__(39);
2826
2827 var _visitor2 = _interopRequireDefault(_visitor);
2828
2829 function WhitespaceControl() {
2830 var options = arguments.length <= 0 || arguments[0] === undefined ? {} : arguments[0];
2831
2832 this.options = options;
2833 }
2834 WhitespaceControl.prototype = new _visitor2['default']();
2835
2836 WhitespaceControl.prototype.Program = function (program) {
2837 var doStandalone = !this.options.ignoreStandalone;
2838
2839 var isRoot = !this.isRootSeen;
2840 this.isRootSeen = true;
2841
2842 var body = program.body;
2843 for (var i = 0, l = body.length; i < l; i++) {
2844 var current = body[i],
2845 strip = this.accept(current);
2846
2847 if (!strip) {
2848 continue;
2849 }
2850
2851 var _isPrevWhitespace = isPrevWhitespace(body, i, isRoot),
2852 _isNextWhitespace = isNextWhitespace(body, i, isRoot),
2853 openStandalone = strip.openStandalone && _isPrevWhitespace,
2854 closeStandalone = strip.closeStandalone && _isNextWhitespace,
2855 inlineStandalone = strip.inlineStandalone && _isPrevWhitespace && _isNextWhitespace;
2856
2857 if (strip.close) {
2858 omitRight(body, i, true);
2859 }
2860 if (strip.open) {
2861 omitLeft(body, i, true);
2862 }
2863
2864 if (doStandalone && inlineStandalone) {
2865 omitRight(body, i);
2866
2867 if (omitLeft(body, i)) {
2868 // If we are on a standalone node, save the indent info for partials
2869 if (current.type === 'PartialStatement') {
2870 // Pull out the whitespace from the final line
2871 current.indent = /([ \t]+$)/.exec(body[i - 1].original)[1];
2872 }
2873 }
2874 }
2875 if (doStandalone && openStandalone) {
2876 omitRight((current.program || current.inverse).body);
2877
2878 // Strip out the previous content node if it's whitespace only
2879 omitLeft(body, i);
2880 }
2881 if (doStandalone && closeStandalone) {
2882 // Always strip the next node
2883 omitRight(body, i);
2884
2885 omitLeft((current.inverse || current.program).body);
2886 }
2887 }
2888
2889 return program;
2890 };
2891
2892 WhitespaceControl.prototype.BlockStatement = WhitespaceControl.prototype.DecoratorBlock = WhitespaceControl.prototype.PartialBlockStatement = function (block) {
2893 this.accept(block.program);
2894 this.accept(block.inverse);
2895
2896 // Find the inverse program that is involed with whitespace stripping.
2897 var program = block.program || block.inverse,
2898 inverse = block.program && block.inverse,
2899 firstInverse = inverse,
2900 lastInverse = inverse;
2901
2902 if (inverse && inverse.chained) {
2903 firstInverse = inverse.body[0].program;
2904
2905 // Walk the inverse chain to find the last inverse that is actually in the chain.
2906 while (lastInverse.chained) {
2907 lastInverse = lastInverse.body[lastInverse.body.length - 1].program;
2908 }
2909 }
2910
2911 var strip = {
2912 open: block.openStrip.open,
2913 close: block.closeStrip.close,
2914
2915 // Determine the standalone candiacy. Basically flag our content as being possibly standalone
2916 // so our parent can determine if we actually are standalone
2917 openStandalone: isNextWhitespace(program.body),
2918 closeStandalone: isPrevWhitespace((firstInverse || program).body)
2919 };
2920
2921 if (block.openStrip.close) {
2922 omitRight(program.body, null, true);
2923 }
2924
2925 if (inverse) {
2926 var inverseStrip = block.inverseStrip;
2927
2928 if (inverseStrip.open) {
2929 omitLeft(program.body, null, true);
2930 }
2931
2932 if (inverseStrip.close) {
2933 omitRight(firstInverse.body, null, true);
2934 }
2935 if (block.closeStrip.open) {
2936 omitLeft(lastInverse.body, null, true);
2937 }
2938
2939 // Find standalone else statments
2940 if (!this.options.ignoreStandalone && isPrevWhitespace(program.body) && isNextWhitespace(firstInverse.body)) {
2941 omitLeft(program.body);
2942 omitRight(firstInverse.body);
2943 }
2944 } else if (block.closeStrip.open) {
2945 omitLeft(program.body, null, true);
2946 }
2947
2948 return strip;
2949 };
2950
2951 WhitespaceControl.prototype.Decorator = WhitespaceControl.prototype.MustacheStatement = function (mustache) {
2952 return mustache.strip;
2953 };
2954
2955 WhitespaceControl.prototype.PartialStatement = WhitespaceControl.prototype.CommentStatement = function (node) {
2956 /* istanbul ignore next */
2957 var strip = node.strip || {};
2958 return {
2959 inlineStandalone: true,
2960 open: strip.open,
2961 close: strip.close
2962 };
2963 };
2964
2965 function isPrevWhitespace(body, i, isRoot) {
2966 if (i === undefined) {
2967 i = body.length;
2968 }
2969
2970 // Nodes that end with newlines are considered whitespace (but are special
2971 // cased for strip operations)
2972 var prev = body[i - 1],
2973 sibling = body[i - 2];
2974 if (!prev) {
2975 return isRoot;
2976 }
2977
2978 if (prev.type === 'ContentStatement') {
2979 return (sibling || !isRoot ? /\r?\n\s*?$/ : /(^|\r?\n)\s*?$/).test(prev.original);
2980 }
2981 }
2982 function isNextWhitespace(body, i, isRoot) {
2983 if (i === undefined) {
2984 i = -1;
2985 }
2986
2987 var next = body[i + 1],
2988 sibling = body[i + 2];
2989 if (!next) {
2990 return isRoot;
2991 }
2992
2993 if (next.type === 'ContentStatement') {
2994 return (sibling || !isRoot ? /^\s*?\r?\n/ : /^\s*?(\r?\n|$)/).test(next.original);
2995 }
2996 }
2997
2998 // Marks the node to the right of the position as omitted.
2999 // I.e. {{foo}}' ' will mark the ' ' node as omitted.
3000 //
3001 // If i is undefined, then the first child will be marked as such.
3002 //
3003 // If mulitple is truthy then all whitespace will be stripped out until non-whitespace
3004 // content is met.
3005 function omitRight(body, i, multiple) {
3006 var current = body[i == null ? 0 : i + 1];
3007 if (!current || current.type !== 'ContentStatement' || !multiple && current.rightStripped) {
3008 return;
3009 }
3010
3011 var original = current.value;
3012 current.value = current.value.replace(multiple ? /^\s+/ : /^[ \t]*\r?\n?/, '');
3013 current.rightStripped = current.value !== original;
3014 }
3015
3016 // Marks the node to the left of the position as omitted.
3017 // I.e. ' '{{foo}} will mark the ' ' node as omitted.
3018 //
3019 // If i is undefined then the last child will be marked as such.
3020 //
3021 // If mulitple is truthy then all whitespace will be stripped out until non-whitespace
3022 // content is met.
3023 function omitLeft(body, i, multiple) {
3024 var current = body[i == null ? body.length - 1 : i - 1];
3025 if (!current || current.type !== 'ContentStatement' || !multiple && current.leftStripped) {
3026 return;
3027 }
3028
3029 // We omit the last node if it's whitespace only and not preceeded by a non-content node.
3030 var original = current.value;
3031 current.value = current.value.replace(multiple ? /\s+$/ : /[ \t]+$/, '');
3032 current.leftStripped = current.value !== original;
3033 return current.leftStripped;
3034 }
3035
3036 exports['default'] = WhitespaceControl;
3037 module.exports = exports['default'];
3038
3039/***/ }),
3040/* 39 */
3041/***/ (function(module, exports, __webpack_require__) {
3042
3043 'use strict';
3044
3045 var _interopRequireDefault = __webpack_require__(1)['default'];
3046
3047 exports.__esModule = true;
3048
3049 var _exception = __webpack_require__(6);
3050
3051 var _exception2 = _interopRequireDefault(_exception);
3052
3053 function Visitor() {
3054 this.parents = [];
3055 }
3056
3057 Visitor.prototype = {
3058 constructor: Visitor,
3059 mutating: false,
3060
3061 // Visits a given value. If mutating, will replace the value if necessary.
3062 acceptKey: function acceptKey(node, name) {
3063 var value = this.accept(node[name]);
3064 if (this.mutating) {
3065 // Hacky sanity check: This may have a few false positives for type for the helper
3066 // methods but will generally do the right thing without a lot of overhead.
3067 if (value && !Visitor.prototype[value.type]) {
3068 throw new _exception2['default']('Unexpected node type "' + value.type + '" found when accepting ' + name + ' on ' + node.type);
3069 }
3070 node[name] = value;
3071 }
3072 },
3073
3074 // Performs an accept operation with added sanity check to ensure
3075 // required keys are not removed.
3076 acceptRequired: function acceptRequired(node, name) {
3077 this.acceptKey(node, name);
3078
3079 if (!node[name]) {
3080 throw new _exception2['default'](node.type + ' requires ' + name);
3081 }
3082 },
3083
3084 // Traverses a given array. If mutating, empty respnses will be removed
3085 // for child elements.
3086 acceptArray: function acceptArray(array) {
3087 for (var i = 0, l = array.length; i < l; i++) {
3088 this.acceptKey(array, i);
3089
3090 if (!array[i]) {
3091 array.splice(i, 1);
3092 i--;
3093 l--;
3094 }
3095 }
3096 },
3097
3098 accept: function accept(object) {
3099 if (!object) {
3100 return;
3101 }
3102
3103 /* istanbul ignore next: Sanity code */
3104 if (!this[object.type]) {
3105 throw new _exception2['default']('Unknown type: ' + object.type, object);
3106 }
3107
3108 if (this.current) {
3109 this.parents.unshift(this.current);
3110 }
3111 this.current = object;
3112
3113 var ret = this[object.type](object);
3114
3115 this.current = this.parents.shift();
3116
3117 if (!this.mutating || ret) {
3118 return ret;
3119 } else if (ret !== false) {
3120 return object;
3121 }
3122 },
3123
3124 Program: function Program(program) {
3125 this.acceptArray(program.body);
3126 },
3127
3128 MustacheStatement: visitSubExpression,
3129 Decorator: visitSubExpression,
3130
3131 BlockStatement: visitBlock,
3132 DecoratorBlock: visitBlock,
3133
3134 PartialStatement: visitPartial,
3135 PartialBlockStatement: function PartialBlockStatement(partial) {
3136 visitPartial.call(this, partial);
3137
3138 this.acceptKey(partial, 'program');
3139 },
3140
3141 ContentStatement: function ContentStatement() /* content */{},
3142 CommentStatement: function CommentStatement() /* comment */{},
3143
3144 SubExpression: visitSubExpression,
3145
3146 PathExpression: function PathExpression() /* path */{},
3147
3148 StringLiteral: function StringLiteral() /* string */{},
3149 NumberLiteral: function NumberLiteral() /* number */{},
3150 BooleanLiteral: function BooleanLiteral() /* bool */{},
3151 UndefinedLiteral: function UndefinedLiteral() /* literal */{},
3152 NullLiteral: function NullLiteral() /* literal */{},
3153
3154 Hash: function Hash(hash) {
3155 this.acceptArray(hash.pairs);
3156 },
3157 HashPair: function HashPair(pair) {
3158 this.acceptRequired(pair, 'value');
3159 }
3160 };
3161
3162 function visitSubExpression(mustache) {
3163 this.acceptRequired(mustache, 'path');
3164 this.acceptArray(mustache.params);
3165 this.acceptKey(mustache, 'hash');
3166 }
3167 function visitBlock(block) {
3168 visitSubExpression.call(this, block);
3169
3170 this.acceptKey(block, 'program');
3171 this.acceptKey(block, 'inverse');
3172 }
3173 function visitPartial(partial) {
3174 this.acceptRequired(partial, 'name');
3175 this.acceptArray(partial.params);
3176 this.acceptKey(partial, 'hash');
3177 }
3178
3179 exports['default'] = Visitor;
3180 module.exports = exports['default'];
3181
3182/***/ }),
3183/* 40 */
3184/***/ (function(module, exports, __webpack_require__) {
3185
3186 'use strict';
3187
3188 var _interopRequireDefault = __webpack_require__(1)['default'];
3189
3190 exports.__esModule = true;
3191 exports.SourceLocation = SourceLocation;
3192 exports.id = id;
3193 exports.stripFlags = stripFlags;
3194 exports.stripComment = stripComment;
3195 exports.preparePath = preparePath;
3196 exports.prepareMustache = prepareMustache;
3197 exports.prepareRawBlock = prepareRawBlock;
3198 exports.prepareBlock = prepareBlock;
3199 exports.prepareProgram = prepareProgram;
3200 exports.preparePartialBlock = preparePartialBlock;
3201
3202 var _exception = __webpack_require__(6);
3203
3204 var _exception2 = _interopRequireDefault(_exception);
3205
3206 function validateClose(open, close) {
3207 close = close.path ? close.path.original : close;
3208
3209 if (open.path.original !== close) {
3210 var errorNode = { loc: open.path.loc };
3211
3212 throw new _exception2['default'](open.path.original + " doesn't match " + close, errorNode);
3213 }
3214 }
3215
3216 function SourceLocation(source, locInfo) {
3217 this.source = source;
3218 this.start = {
3219 line: locInfo.first_line,
3220 column: locInfo.first_column
3221 };
3222 this.end = {
3223 line: locInfo.last_line,
3224 column: locInfo.last_column
3225 };
3226 }
3227
3228 function id(token) {
3229 if (/^\[.*\]$/.test(token)) {
3230 return token.substr(1, token.length - 2);
3231 } else {
3232 return token;
3233 }
3234 }
3235
3236 function stripFlags(open, close) {
3237 return {
3238 open: open.charAt(2) === '~',
3239 close: close.charAt(close.length - 3) === '~'
3240 };
3241 }
3242
3243 function stripComment(comment) {
3244 return comment.replace(/^\{\{~?!-?-?/, '').replace(/-?-?~?\}\}$/, '');
3245 }
3246
3247 function preparePath(data, parts, loc) {
3248 loc = this.locInfo(loc);
3249
3250 var original = data ? '@' : '',
3251 dig = [],
3252 depth = 0;
3253
3254 for (var i = 0, l = parts.length; i < l; i++) {
3255 var part = parts[i].part,
3256
3257 // If we have [] syntax then we do not treat path references as operators,
3258 // i.e. foo.[this] resolves to approximately context.foo['this']
3259 isLiteral = parts[i].original !== part;
3260 original += (parts[i].separator || '') + part;
3261
3262 if (!isLiteral && (part === '..' || part === '.' || part === 'this')) {
3263 if (dig.length > 0) {
3264 throw new _exception2['default']('Invalid path: ' + original, { loc: loc });
3265 } else if (part === '..') {
3266 depth++;
3267 }
3268 } else {
3269 dig.push(part);
3270 }
3271 }
3272
3273 return {
3274 type: 'PathExpression',
3275 data: data,
3276 depth: depth,
3277 parts: dig,
3278 original: original,
3279 loc: loc
3280 };
3281 }
3282
3283 function prepareMustache(path, params, hash, open, strip, locInfo) {
3284 // Must use charAt to support IE pre-10
3285 var escapeFlag = open.charAt(3) || open.charAt(2),
3286 escaped = escapeFlag !== '{' && escapeFlag !== '&';
3287
3288 var decorator = /\*/.test(open);
3289 return {
3290 type: decorator ? 'Decorator' : 'MustacheStatement',
3291 path: path,
3292 params: params,
3293 hash: hash,
3294 escaped: escaped,
3295 strip: strip,
3296 loc: this.locInfo(locInfo)
3297 };
3298 }
3299
3300 function prepareRawBlock(openRawBlock, contents, close, locInfo) {
3301 validateClose(openRawBlock, close);
3302
3303 locInfo = this.locInfo(locInfo);
3304 var program = {
3305 type: 'Program',
3306 body: contents,
3307 strip: {},
3308 loc: locInfo
3309 };
3310
3311 return {
3312 type: 'BlockStatement',
3313 path: openRawBlock.path,
3314 params: openRawBlock.params,
3315 hash: openRawBlock.hash,
3316 program: program,
3317 openStrip: {},
3318 inverseStrip: {},
3319 closeStrip: {},
3320 loc: locInfo
3321 };
3322 }
3323
3324 function prepareBlock(openBlock, program, inverseAndProgram, close, inverted, locInfo) {
3325 if (close && close.path) {
3326 validateClose(openBlock, close);
3327 }
3328
3329 var decorator = /\*/.test(openBlock.open);
3330
3331 program.blockParams = openBlock.blockParams;
3332
3333 var inverse = undefined,
3334 inverseStrip = undefined;
3335
3336 if (inverseAndProgram) {
3337 if (decorator) {
3338 throw new _exception2['default']('Unexpected inverse block on decorator', inverseAndProgram);
3339 }
3340
3341 if (inverseAndProgram.chain) {
3342 inverseAndProgram.program.body[0].closeStrip = close.strip;
3343 }
3344
3345 inverseStrip = inverseAndProgram.strip;
3346 inverse = inverseAndProgram.program;
3347 }
3348
3349 if (inverted) {
3350 inverted = inverse;
3351 inverse = program;
3352 program = inverted;
3353 }
3354
3355 return {
3356 type: decorator ? 'DecoratorBlock' : 'BlockStatement',
3357 path: openBlock.path,
3358 params: openBlock.params,
3359 hash: openBlock.hash,
3360 program: program,
3361 inverse: inverse,
3362 openStrip: openBlock.strip,
3363 inverseStrip: inverseStrip,
3364 closeStrip: close && close.strip,
3365 loc: this.locInfo(locInfo)
3366 };
3367 }
3368
3369 function prepareProgram(statements, loc) {
3370 if (!loc && statements.length) {
3371 var firstLoc = statements[0].loc,
3372 lastLoc = statements[statements.length - 1].loc;
3373
3374 /* istanbul ignore else */
3375 if (firstLoc && lastLoc) {
3376 loc = {
3377 source: firstLoc.source,
3378 start: {
3379 line: firstLoc.start.line,
3380 column: firstLoc.start.column
3381 },
3382 end: {
3383 line: lastLoc.end.line,
3384 column: lastLoc.end.column
3385 }
3386 };
3387 }
3388 }
3389
3390 return {
3391 type: 'Program',
3392 body: statements,
3393 strip: {},
3394 loc: loc
3395 };
3396 }
3397
3398 function preparePartialBlock(open, program, close, locInfo) {
3399 validateClose(open, close);
3400
3401 return {
3402 type: 'PartialBlockStatement',
3403 name: open.path,
3404 params: open.params,
3405 hash: open.hash,
3406 program: program,
3407 openStrip: open.strip,
3408 closeStrip: close && close.strip,
3409 loc: this.locInfo(locInfo)
3410 };
3411 }
3412
3413/***/ }),
3414/* 41 */
3415/***/ (function(module, exports, __webpack_require__) {
3416
3417 /* eslint-disable new-cap */
3418
3419 'use strict';
3420
3421 var _interopRequireDefault = __webpack_require__(1)['default'];
3422
3423 exports.__esModule = true;
3424 exports.Compiler = Compiler;
3425 exports.precompile = precompile;
3426 exports.compile = compile;
3427
3428 var _exception = __webpack_require__(6);
3429
3430 var _exception2 = _interopRequireDefault(_exception);
3431
3432 var _utils = __webpack_require__(5);
3433
3434 var _ast = __webpack_require__(35);
3435
3436 var _ast2 = _interopRequireDefault(_ast);
3437
3438 var slice = [].slice;
3439
3440 function Compiler() {}
3441
3442 // the foundHelper register will disambiguate helper lookup from finding a
3443 // function in a context. This is necessary for mustache compatibility, which
3444 // requires that context functions in blocks are evaluated by blockHelperMissing,
3445 // and then proceed as if the resulting value was provided to blockHelperMissing.
3446
3447 Compiler.prototype = {
3448 compiler: Compiler,
3449
3450 equals: function equals(other) {
3451 var len = this.opcodes.length;
3452 if (other.opcodes.length !== len) {
3453 return false;
3454 }
3455
3456 for (var i = 0; i < len; i++) {
3457 var opcode = this.opcodes[i],
3458 otherOpcode = other.opcodes[i];
3459 if (opcode.opcode !== otherOpcode.opcode || !argEquals(opcode.args, otherOpcode.args)) {
3460 return false;
3461 }
3462 }
3463
3464 // We know that length is the same between the two arrays because they are directly tied
3465 // to the opcode behavior above.
3466 len = this.children.length;
3467 for (var i = 0; i < len; i++) {
3468 if (!this.children[i].equals(other.children[i])) {
3469 return false;
3470 }
3471 }
3472
3473 return true;
3474 },
3475
3476 guid: 0,
3477
3478 compile: function compile(program, options) {
3479 this.sourceNode = [];
3480 this.opcodes = [];
3481 this.children = [];
3482 this.options = options;
3483 this.stringParams = options.stringParams;
3484 this.trackIds = options.trackIds;
3485
3486 options.blockParams = options.blockParams || [];
3487
3488 // These changes will propagate to the other compiler components
3489 var knownHelpers = options.knownHelpers;
3490 options.knownHelpers = {
3491 'helperMissing': true,
3492 'blockHelperMissing': true,
3493 'each': true,
3494 'if': true,
3495 'unless': true,
3496 'with': true,
3497 'log': true,
3498 'lookup': true
3499 };
3500 if (knownHelpers) {
3501 // the next line should use "Object.keys", but the code has been like this a long time and changing it, might
3502 // cause backwards-compatibility issues... It's an old library...
3503 // eslint-disable-next-line guard-for-in
3504 for (var _name in knownHelpers) {
3505 this.options.knownHelpers[_name] = knownHelpers[_name];
3506 }
3507 }
3508
3509 return this.accept(program);
3510 },
3511
3512 compileProgram: function compileProgram(program) {
3513 var childCompiler = new this.compiler(),
3514 // eslint-disable-line new-cap
3515 result = childCompiler.compile(program, this.options),
3516 guid = this.guid++;
3517
3518 this.usePartial = this.usePartial || result.usePartial;
3519
3520 this.children[guid] = result;
3521 this.useDepths = this.useDepths || result.useDepths;
3522
3523 return guid;
3524 },
3525
3526 accept: function accept(node) {
3527 /* istanbul ignore next: Sanity code */
3528 if (!this[node.type]) {
3529 throw new _exception2['default']('Unknown type: ' + node.type, node);
3530 }
3531
3532 this.sourceNode.unshift(node);
3533 var ret = this[node.type](node);
3534 this.sourceNode.shift();
3535 return ret;
3536 },
3537
3538 Program: function Program(program) {
3539 this.options.blockParams.unshift(program.blockParams);
3540
3541 var body = program.body,
3542 bodyLength = body.length;
3543 for (var i = 0; i < bodyLength; i++) {
3544 this.accept(body[i]);
3545 }
3546
3547 this.options.blockParams.shift();
3548
3549 this.isSimple = bodyLength === 1;
3550 this.blockParams = program.blockParams ? program.blockParams.length : 0;
3551
3552 return this;
3553 },
3554
3555 BlockStatement: function BlockStatement(block) {
3556 transformLiteralToPath(block);
3557
3558 var program = block.program,
3559 inverse = block.inverse;
3560
3561 program = program && this.compileProgram(program);
3562 inverse = inverse && this.compileProgram(inverse);
3563
3564 var type = this.classifySexpr(block);
3565
3566 if (type === 'helper') {
3567 this.helperSexpr(block, program, inverse);
3568 } else if (type === 'simple') {
3569 this.simpleSexpr(block);
3570
3571 // now that the simple mustache is resolved, we need to
3572 // evaluate it by executing `blockHelperMissing`
3573 this.opcode('pushProgram', program);
3574 this.opcode('pushProgram', inverse);
3575 this.opcode('emptyHash');
3576 this.opcode('blockValue', block.path.original);
3577 } else {
3578 this.ambiguousSexpr(block, program, inverse);
3579
3580 // now that the simple mustache is resolved, we need to
3581 // evaluate it by executing `blockHelperMissing`
3582 this.opcode('pushProgram', program);
3583 this.opcode('pushProgram', inverse);
3584 this.opcode('emptyHash');
3585 this.opcode('ambiguousBlockValue');
3586 }
3587
3588 this.opcode('append');
3589 },
3590
3591 DecoratorBlock: function DecoratorBlock(decorator) {
3592 var program = decorator.program && this.compileProgram(decorator.program);
3593 var params = this.setupFullMustacheParams(decorator, program, undefined),
3594 path = decorator.path;
3595
3596 this.useDecorators = true;
3597 this.opcode('registerDecorator', params.length, path.original);
3598 },
3599
3600 PartialStatement: function PartialStatement(partial) {
3601 this.usePartial = true;
3602
3603 var program = partial.program;
3604 if (program) {
3605 program = this.compileProgram(partial.program);
3606 }
3607
3608 var params = partial.params;
3609 if (params.length > 1) {
3610 throw new _exception2['default']('Unsupported number of partial arguments: ' + params.length, partial);
3611 } else if (!params.length) {
3612 if (this.options.explicitPartialContext) {
3613 this.opcode('pushLiteral', 'undefined');
3614 } else {
3615 params.push({ type: 'PathExpression', parts: [], depth: 0 });
3616 }
3617 }
3618
3619 var partialName = partial.name.original,
3620 isDynamic = partial.name.type === 'SubExpression';
3621 if (isDynamic) {
3622 this.accept(partial.name);
3623 }
3624
3625 this.setupFullMustacheParams(partial, program, undefined, true);
3626
3627 var indent = partial.indent || '';
3628 if (this.options.preventIndent && indent) {
3629 this.opcode('appendContent', indent);
3630 indent = '';
3631 }
3632
3633 this.opcode('invokePartial', isDynamic, partialName, indent);
3634 this.opcode('append');
3635 },
3636 PartialBlockStatement: function PartialBlockStatement(partialBlock) {
3637 this.PartialStatement(partialBlock);
3638 },
3639
3640 MustacheStatement: function MustacheStatement(mustache) {
3641 this.SubExpression(mustache);
3642
3643 if (mustache.escaped && !this.options.noEscape) {
3644 this.opcode('appendEscaped');
3645 } else {
3646 this.opcode('append');
3647 }
3648 },
3649 Decorator: function Decorator(decorator) {
3650 this.DecoratorBlock(decorator);
3651 },
3652
3653 ContentStatement: function ContentStatement(content) {
3654 if (content.value) {
3655 this.opcode('appendContent', content.value);
3656 }
3657 },
3658
3659 CommentStatement: function CommentStatement() {},
3660
3661 SubExpression: function SubExpression(sexpr) {
3662 transformLiteralToPath(sexpr);
3663 var type = this.classifySexpr(sexpr);
3664
3665 if (type === 'simple') {
3666 this.simpleSexpr(sexpr);
3667 } else if (type === 'helper') {
3668 this.helperSexpr(sexpr);
3669 } else {
3670 this.ambiguousSexpr(sexpr);
3671 }
3672 },
3673 ambiguousSexpr: function ambiguousSexpr(sexpr, program, inverse) {
3674 var path = sexpr.path,
3675 name = path.parts[0],
3676 isBlock = program != null || inverse != null;
3677
3678 this.opcode('getContext', path.depth);
3679
3680 this.opcode('pushProgram', program);
3681 this.opcode('pushProgram', inverse);
3682
3683 path.strict = true;
3684 this.accept(path);
3685
3686 this.opcode('invokeAmbiguous', name, isBlock);
3687 },
3688
3689 simpleSexpr: function simpleSexpr(sexpr) {
3690 var path = sexpr.path;
3691 path.strict = true;
3692 this.accept(path);
3693 this.opcode('resolvePossibleLambda');
3694 },
3695
3696 helperSexpr: function helperSexpr(sexpr, program, inverse) {
3697 var params = this.setupFullMustacheParams(sexpr, program, inverse),
3698 path = sexpr.path,
3699 name = path.parts[0];
3700
3701 if (this.options.knownHelpers[name]) {
3702 this.opcode('invokeKnownHelper', params.length, name);
3703 } else if (this.options.knownHelpersOnly) {
3704 throw new _exception2['default']('You specified knownHelpersOnly, but used the unknown helper ' + name, sexpr);
3705 } else {
3706 path.strict = true;
3707 path.falsy = true;
3708
3709 this.accept(path);
3710 this.opcode('invokeHelper', params.length, path.original, _ast2['default'].helpers.simpleId(path));
3711 }
3712 },
3713
3714 PathExpression: function PathExpression(path) {
3715 this.addDepth(path.depth);
3716 this.opcode('getContext', path.depth);
3717
3718 var name = path.parts[0],
3719 scoped = _ast2['default'].helpers.scopedId(path),
3720 blockParamId = !path.depth && !scoped && this.blockParamIndex(name);
3721
3722 if (blockParamId) {
3723 this.opcode('lookupBlockParam', blockParamId, path.parts);
3724 } else if (!name) {
3725 // Context reference, i.e. `{{foo .}}` or `{{foo ..}}`
3726 this.opcode('pushContext');
3727 } else if (path.data) {
3728 this.options.data = true;
3729 this.opcode('lookupData', path.depth, path.parts, path.strict);
3730 } else {
3731 this.opcode('lookupOnContext', path.parts, path.falsy, path.strict, scoped);
3732 }
3733 },
3734
3735 StringLiteral: function StringLiteral(string) {
3736 this.opcode('pushString', string.value);
3737 },
3738
3739 NumberLiteral: function NumberLiteral(number) {
3740 this.opcode('pushLiteral', number.value);
3741 },
3742
3743 BooleanLiteral: function BooleanLiteral(bool) {
3744 this.opcode('pushLiteral', bool.value);
3745 },
3746
3747 UndefinedLiteral: function UndefinedLiteral() {
3748 this.opcode('pushLiteral', 'undefined');
3749 },
3750
3751 NullLiteral: function NullLiteral() {
3752 this.opcode('pushLiteral', 'null');
3753 },
3754
3755 Hash: function Hash(hash) {
3756 var pairs = hash.pairs,
3757 i = 0,
3758 l = pairs.length;
3759
3760 this.opcode('pushHash');
3761
3762 for (; i < l; i++) {
3763 this.pushParam(pairs[i].value);
3764 }
3765 while (i--) {
3766 this.opcode('assignToHash', pairs[i].key);
3767 }
3768 this.opcode('popHash');
3769 },
3770
3771 // HELPERS
3772 opcode: function opcode(name) {
3773 this.opcodes.push({ opcode: name, args: slice.call(arguments, 1), loc: this.sourceNode[0].loc });
3774 },
3775
3776 addDepth: function addDepth(depth) {
3777 if (!depth) {
3778 return;
3779 }
3780
3781 this.useDepths = true;
3782 },
3783
3784 classifySexpr: function classifySexpr(sexpr) {
3785 var isSimple = _ast2['default'].helpers.simpleId(sexpr.path);
3786
3787 var isBlockParam = isSimple && !!this.blockParamIndex(sexpr.path.parts[0]);
3788
3789 // a mustache is an eligible helper if:
3790 // * its id is simple (a single part, not `this` or `..`)
3791 var isHelper = !isBlockParam && _ast2['default'].helpers.helperExpression(sexpr);
3792
3793 // if a mustache is an eligible helper but not a definite
3794 // helper, it is ambiguous, and will be resolved in a later
3795 // pass or at runtime.
3796 var isEligible = !isBlockParam && (isHelper || isSimple);
3797
3798 // if ambiguous, we can possibly resolve the ambiguity now
3799 // An eligible helper is one that does not have a complex path, i.e. `this.foo`, `../foo` etc.
3800 if (isEligible && !isHelper) {
3801 var _name2 = sexpr.path.parts[0],
3802 options = this.options;
3803
3804 if (options.knownHelpers[_name2]) {
3805 isHelper = true;
3806 } else if (options.knownHelpersOnly) {
3807 isEligible = false;
3808 }
3809 }
3810
3811 if (isHelper) {
3812 return 'helper';
3813 } else if (isEligible) {
3814 return 'ambiguous';
3815 } else {
3816 return 'simple';
3817 }
3818 },
3819
3820 pushParams: function pushParams(params) {
3821 for (var i = 0, l = params.length; i < l; i++) {
3822 this.pushParam(params[i]);
3823 }
3824 },
3825
3826 pushParam: function pushParam(val) {
3827 var value = val.value != null ? val.value : val.original || '';
3828
3829 if (this.stringParams) {
3830 if (value.replace) {
3831 value = value.replace(/^(\.?\.\/)*/g, '').replace(/\//g, '.');
3832 }
3833
3834 if (val.depth) {
3835 this.addDepth(val.depth);
3836 }
3837 this.opcode('getContext', val.depth || 0);
3838 this.opcode('pushStringParam', value, val.type);
3839
3840 if (val.type === 'SubExpression') {
3841 // SubExpressions get evaluated and passed in
3842 // in string params mode.
3843 this.accept(val);
3844 }
3845 } else {
3846 if (this.trackIds) {
3847 var blockParamIndex = undefined;
3848 if (val.parts && !_ast2['default'].helpers.scopedId(val) && !val.depth) {
3849 blockParamIndex = this.blockParamIndex(val.parts[0]);
3850 }
3851 if (blockParamIndex) {
3852 var blockParamChild = val.parts.slice(1).join('.');
3853 this.opcode('pushId', 'BlockParam', blockParamIndex, blockParamChild);
3854 } else {
3855 value = val.original || value;
3856 if (value.replace) {
3857 value = value.replace(/^this(?:\.|$)/, '').replace(/^\.\//, '').replace(/^\.$/, '');
3858 }
3859
3860 this.opcode('pushId', val.type, value);
3861 }
3862 }
3863 this.accept(val);
3864 }
3865 },
3866
3867 setupFullMustacheParams: function setupFullMustacheParams(sexpr, program, inverse, omitEmpty) {
3868 var params = sexpr.params;
3869 this.pushParams(params);
3870
3871 this.opcode('pushProgram', program);
3872 this.opcode('pushProgram', inverse);
3873
3874 if (sexpr.hash) {
3875 this.accept(sexpr.hash);
3876 } else {
3877 this.opcode('emptyHash', omitEmpty);
3878 }
3879
3880 return params;
3881 },
3882
3883 blockParamIndex: function blockParamIndex(name) {
3884 for (var depth = 0, len = this.options.blockParams.length; depth < len; depth++) {
3885 var blockParams = this.options.blockParams[depth],
3886 param = blockParams && _utils.indexOf(blockParams, name);
3887 if (blockParams && param >= 0) {
3888 return [depth, param];
3889 }
3890 }
3891 }
3892 };
3893
3894 function precompile(input, options, env) {
3895 if (input == null || typeof input !== 'string' && input.type !== 'Program') {
3896 throw new _exception2['default']('You must pass a string or Handlebars AST to Handlebars.precompile. You passed ' + input);
3897 }
3898
3899 options = options || {};
3900 if (!('data' in options)) {
3901 options.data = true;
3902 }
3903 if (options.compat) {
3904 options.useDepths = true;
3905 }
3906
3907 var ast = env.parse(input, options),
3908 environment = new env.Compiler().compile(ast, options);
3909 return new env.JavaScriptCompiler().compile(environment, options);
3910 }
3911
3912 function compile(input, options, env) {
3913 if (options === undefined) options = {};
3914
3915 if (input == null || typeof input !== 'string' && input.type !== 'Program') {
3916 throw new _exception2['default']('You must pass a string or Handlebars AST to Handlebars.compile. You passed ' + input);
3917 }
3918
3919 options = _utils.extend({}, options);
3920 if (!('data' in options)) {
3921 options.data = true;
3922 }
3923 if (options.compat) {
3924 options.useDepths = true;
3925 }
3926
3927 var compiled = undefined;
3928
3929 function compileInput() {
3930 var ast = env.parse(input, options),
3931 environment = new env.Compiler().compile(ast, options),
3932 templateSpec = new env.JavaScriptCompiler().compile(environment, options, undefined, true);
3933 return env.template(templateSpec);
3934 }
3935
3936 // Template is only compiled on first use and cached after that point.
3937 function ret(context, execOptions) {
3938 if (!compiled) {
3939 compiled = compileInput();
3940 }
3941 return compiled.call(this, context, execOptions);
3942 }
3943 ret._setup = function (setupOptions) {
3944 if (!compiled) {
3945 compiled = compileInput();
3946 }
3947 return compiled._setup(setupOptions);
3948 };
3949 ret._child = function (i, data, blockParams, depths) {
3950 if (!compiled) {
3951 compiled = compileInput();
3952 }
3953 return compiled._child(i, data, blockParams, depths);
3954 };
3955 return ret;
3956 }
3957
3958 function argEquals(a, b) {
3959 if (a === b) {
3960 return true;
3961 }
3962
3963 if (_utils.isArray(a) && _utils.isArray(b) && a.length === b.length) {
3964 for (var i = 0; i < a.length; i++) {
3965 if (!argEquals(a[i], b[i])) {
3966 return false;
3967 }
3968 }
3969 return true;
3970 }
3971 }
3972
3973 function transformLiteralToPath(sexpr) {
3974 if (!sexpr.path.parts) {
3975 var literal = sexpr.path;
3976 // Casting to string here to make false and 0 literal values play nicely with the rest
3977 // of the system.
3978 sexpr.path = {
3979 type: 'PathExpression',
3980 data: false,
3981 depth: 0,
3982 parts: [literal.original + ''],
3983 original: literal.original + '',
3984 loc: literal.loc
3985 };
3986 }
3987 }
3988
3989/***/ }),
3990/* 42 */
3991/***/ (function(module, exports, __webpack_require__) {
3992
3993 'use strict';
3994
3995 var _interopRequireDefault = __webpack_require__(1)['default'];
3996
3997 exports.__esModule = true;
3998
3999 var _base = __webpack_require__(4);
4000
4001 var _exception = __webpack_require__(6);
4002
4003 var _exception2 = _interopRequireDefault(_exception);
4004
4005 var _utils = __webpack_require__(5);
4006
4007 var _codeGen = __webpack_require__(43);
4008
4009 var _codeGen2 = _interopRequireDefault(_codeGen);
4010
4011 function Literal(value) {
4012 this.value = value;
4013 }
4014
4015 function JavaScriptCompiler() {}
4016
4017 JavaScriptCompiler.prototype = {
4018 // PUBLIC API: You can override these methods in a subclass to provide
4019 // alternative compiled forms for name lookup and buffering semantics
4020 nameLookup: function nameLookup(parent, name /* , type*/) {
4021 if (JavaScriptCompiler.isValidJavaScriptVariableName(name)) {
4022 return [parent, '.', name];
4023 } else {
4024 return [parent, '[', JSON.stringify(name), ']'];
4025 }
4026 },
4027 depthedLookup: function depthedLookup(name) {
4028 return [this.aliasable('container.lookup'), '(depths, "', name, '")'];
4029 },
4030
4031 compilerInfo: function compilerInfo() {
4032 var revision = _base.COMPILER_REVISION,
4033 versions = _base.REVISION_CHANGES[revision];
4034 return [revision, versions];
4035 },
4036
4037 appendToBuffer: function appendToBuffer(source, location, explicit) {
4038 // Force a source as this simplifies the merge logic.
4039 if (!_utils.isArray(source)) {
4040 source = [source];
4041 }
4042 source = this.source.wrap(source, location);
4043
4044 if (this.environment.isSimple) {
4045 return ['return ', source, ';'];
4046 } else if (explicit) {
4047 // This is a case where the buffer operation occurs as a child of another
4048 // construct, generally braces. We have to explicitly output these buffer
4049 // operations to ensure that the emitted code goes in the correct location.
4050 return ['buffer += ', source, ';'];
4051 } else {
4052 source.appendToBuffer = true;
4053 return source;
4054 }
4055 },
4056
4057 initializeBuffer: function initializeBuffer() {
4058 return this.quotedString('');
4059 },
4060 // END PUBLIC API
4061
4062 compile: function compile(environment, options, context, asObject) {
4063 this.environment = environment;
4064 this.options = options;
4065 this.stringParams = this.options.stringParams;
4066 this.trackIds = this.options.trackIds;
4067 this.precompile = !asObject;
4068
4069 this.name = this.environment.name;
4070 this.isChild = !!context;
4071 this.context = context || {
4072 decorators: [],
4073 programs: [],
4074 environments: []
4075 };
4076
4077 this.preamble();
4078
4079 this.stackSlot = 0;
4080 this.stackVars = [];
4081 this.aliases = {};
4082 this.registers = { list: [] };
4083 this.hashes = [];
4084 this.compileStack = [];
4085 this.inlineStack = [];
4086 this.blockParams = [];
4087
4088 this.compileChildren(environment, options);
4089
4090 this.useDepths = this.useDepths || environment.useDepths || environment.useDecorators || this.options.compat;
4091 this.useBlockParams = this.useBlockParams || environment.useBlockParams;
4092
4093 var opcodes = environment.opcodes,
4094 opcode = undefined,
4095 firstLoc = undefined,
4096 i = undefined,
4097 l = undefined;
4098
4099 for (i = 0, l = opcodes.length; i < l; i++) {
4100 opcode = opcodes[i];
4101
4102 this.source.currentLocation = opcode.loc;
4103 firstLoc = firstLoc || opcode.loc;
4104 this[opcode.opcode].apply(this, opcode.args);
4105 }
4106
4107 // Flush any trailing content that might be pending.
4108 this.source.currentLocation = firstLoc;
4109 this.pushSource('');
4110
4111 /* istanbul ignore next */
4112 if (this.stackSlot || this.inlineStack.length || this.compileStack.length) {
4113 throw new _exception2['default']('Compile completed with content left on stack');
4114 }
4115
4116 if (!this.decorators.isEmpty()) {
4117 this.useDecorators = true;
4118
4119 this.decorators.prepend('var decorators = container.decorators;\n');
4120 this.decorators.push('return fn;');
4121
4122 if (asObject) {
4123 this.decorators = Function.apply(this, ['fn', 'props', 'container', 'depth0', 'data', 'blockParams', 'depths', this.decorators.merge()]);
4124 } else {
4125 this.decorators.prepend('function(fn, props, container, depth0, data, blockParams, depths) {\n');
4126 this.decorators.push('}\n');
4127 this.decorators = this.decorators.merge();
4128 }
4129 } else {
4130 this.decorators = undefined;
4131 }
4132
4133 var fn = this.createFunctionContext(asObject);
4134 if (!this.isChild) {
4135 var ret = {
4136 compiler: this.compilerInfo(),
4137 main: fn
4138 };
4139
4140 if (this.decorators) {
4141 ret.main_d = this.decorators; // eslint-disable-line camelcase
4142 ret.useDecorators = true;
4143 }
4144
4145 var _context = this.context;
4146 var programs = _context.programs;
4147 var decorators = _context.decorators;
4148
4149 for (i = 0, l = programs.length; i < l; i++) {
4150 if (programs[i]) {
4151 ret[i] = programs[i];
4152 if (decorators[i]) {
4153 ret[i + '_d'] = decorators[i];
4154 ret.useDecorators = true;
4155 }
4156 }
4157 }
4158
4159 if (this.environment.usePartial) {
4160 ret.usePartial = true;
4161 }
4162 if (this.options.data) {
4163 ret.useData = true;
4164 }
4165 if (this.useDepths) {
4166 ret.useDepths = true;
4167 }
4168 if (this.useBlockParams) {
4169 ret.useBlockParams = true;
4170 }
4171 if (this.options.compat) {
4172 ret.compat = true;
4173 }
4174
4175 if (!asObject) {
4176 ret.compiler = JSON.stringify(ret.compiler);
4177
4178 this.source.currentLocation = { start: { line: 1, column: 0 } };
4179 ret = this.objectLiteral(ret);
4180
4181 if (options.srcName) {
4182 ret = ret.toStringWithSourceMap({ file: options.destName });
4183 ret.map = ret.map && ret.map.toString();
4184 } else {
4185 ret = ret.toString();
4186 }
4187 } else {
4188 ret.compilerOptions = this.options;
4189 }
4190
4191 return ret;
4192 } else {
4193 return fn;
4194 }
4195 },
4196
4197 preamble: function preamble() {
4198 // track the last context pushed into place to allow skipping the
4199 // getContext opcode when it would be a noop
4200 this.lastContext = 0;
4201 this.source = new _codeGen2['default'](this.options.srcName);
4202 this.decorators = new _codeGen2['default'](this.options.srcName);
4203 },
4204
4205 createFunctionContext: function createFunctionContext(asObject) {
4206 var varDeclarations = '';
4207
4208 var locals = this.stackVars.concat(this.registers.list);
4209 if (locals.length > 0) {
4210 varDeclarations += ', ' + locals.join(', ');
4211 }
4212
4213 // Generate minimizer alias mappings
4214 //
4215 // When using true SourceNodes, this will update all references to the given alias
4216 // as the source nodes are reused in situ. For the non-source node compilation mode,
4217 // aliases will not be used, but this case is already being run on the client and
4218 // we aren't concern about minimizing the template size.
4219 var aliasCount = 0;
4220 for (var alias in this.aliases) {
4221 // eslint-disable-line guard-for-in
4222 var node = this.aliases[alias];
4223
4224 if (this.aliases.hasOwnProperty(alias) && node.children && node.referenceCount > 1) {
4225 varDeclarations += ', alias' + ++aliasCount + '=' + alias;
4226 node.children[0] = 'alias' + aliasCount;
4227 }
4228 }
4229
4230 var params = ['container', 'depth0', 'helpers', 'partials', 'data'];
4231
4232 if (this.useBlockParams || this.useDepths) {
4233 params.push('blockParams');
4234 }
4235 if (this.useDepths) {
4236 params.push('depths');
4237 }
4238
4239 // Perform a second pass over the output to merge content when possible
4240 var source = this.mergeSource(varDeclarations);
4241
4242 if (asObject) {
4243 params.push(source);
4244
4245 return Function.apply(this, params);
4246 } else {
4247 return this.source.wrap(['function(', params.join(','), ') {\n ', source, '}']);
4248 }
4249 },
4250 mergeSource: function mergeSource(varDeclarations) {
4251 var isSimple = this.environment.isSimple,
4252 appendOnly = !this.forceBuffer,
4253 appendFirst = undefined,
4254 sourceSeen = undefined,
4255 bufferStart = undefined,
4256 bufferEnd = undefined;
4257 this.source.each(function (line) {
4258 if (line.appendToBuffer) {
4259 if (bufferStart) {
4260 line.prepend(' + ');
4261 } else {
4262 bufferStart = line;
4263 }
4264 bufferEnd = line;
4265 } else {
4266 if (bufferStart) {
4267 if (!sourceSeen) {
4268 appendFirst = true;
4269 } else {
4270 bufferStart.prepend('buffer += ');
4271 }
4272 bufferEnd.add(';');
4273 bufferStart = bufferEnd = undefined;
4274 }
4275
4276 sourceSeen = true;
4277 if (!isSimple) {
4278 appendOnly = false;
4279 }
4280 }
4281 });
4282
4283 if (appendOnly) {
4284 if (bufferStart) {
4285 bufferStart.prepend('return ');
4286 bufferEnd.add(';');
4287 } else if (!sourceSeen) {
4288 this.source.push('return "";');
4289 }
4290 } else {
4291 varDeclarations += ', buffer = ' + (appendFirst ? '' : this.initializeBuffer());
4292
4293 if (bufferStart) {
4294 bufferStart.prepend('return buffer + ');
4295 bufferEnd.add(';');
4296 } else {
4297 this.source.push('return buffer;');
4298 }
4299 }
4300
4301 if (varDeclarations) {
4302 this.source.prepend('var ' + varDeclarations.substring(2) + (appendFirst ? '' : ';\n'));
4303 }
4304
4305 return this.source.merge();
4306 },
4307
4308 // [blockValue]
4309 //
4310 // On stack, before: hash, inverse, program, value
4311 // On stack, after: return value of blockHelperMissing
4312 //
4313 // The purpose of this opcode is to take a block of the form
4314 // `{{#this.foo}}...{{/this.foo}}`, resolve the value of `foo`, and
4315 // replace it on the stack with the result of properly
4316 // invoking blockHelperMissing.
4317 blockValue: function blockValue(name) {
4318 var blockHelperMissing = this.aliasable('helpers.blockHelperMissing'),
4319 params = [this.contextName(0)];
4320 this.setupHelperArgs(name, 0, params);
4321
4322 var blockName = this.popStack();
4323 params.splice(1, 0, blockName);
4324
4325 this.push(this.source.functionCall(blockHelperMissing, 'call', params));
4326 },
4327
4328 // [ambiguousBlockValue]
4329 //
4330 // On stack, before: hash, inverse, program, value
4331 // Compiler value, before: lastHelper=value of last found helper, if any
4332 // On stack, after, if no lastHelper: same as [blockValue]
4333 // On stack, after, if lastHelper: value
4334 ambiguousBlockValue: function ambiguousBlockValue() {
4335 // We're being a bit cheeky and reusing the options value from the prior exec
4336 var blockHelperMissing = this.aliasable('helpers.blockHelperMissing'),
4337 params = [this.contextName(0)];
4338 this.setupHelperArgs('', 0, params, true);
4339
4340 this.flushInline();
4341
4342 var current = this.topStack();
4343 params.splice(1, 0, current);
4344
4345 this.pushSource(['if (!', this.lastHelper, ') { ', current, ' = ', this.source.functionCall(blockHelperMissing, 'call', params), '}']);
4346 },
4347
4348 // [appendContent]
4349 //
4350 // On stack, before: ...
4351 // On stack, after: ...
4352 //
4353 // Appends the string value of `content` to the current buffer
4354 appendContent: function appendContent(content) {
4355 if (this.pendingContent) {
4356 content = this.pendingContent + content;
4357 } else {
4358 this.pendingLocation = this.source.currentLocation;
4359 }
4360
4361 this.pendingContent = content;
4362 },
4363
4364 // [append]
4365 //
4366 // On stack, before: value, ...
4367 // On stack, after: ...
4368 //
4369 // Coerces `value` to a String and appends it to the current buffer.
4370 //
4371 // If `value` is truthy, or 0, it is coerced into a string and appended
4372 // Otherwise, the empty string is appended
4373 append: function append() {
4374 if (this.isInline()) {
4375 this.replaceStack(function (current) {
4376 return [' != null ? ', current, ' : ""'];
4377 });
4378
4379 this.pushSource(this.appendToBuffer(this.popStack()));
4380 } else {
4381 var local = this.popStack();
4382 this.pushSource(['if (', local, ' != null) { ', this.appendToBuffer(local, undefined, true), ' }']);
4383 if (this.environment.isSimple) {
4384 this.pushSource(['else { ', this.appendToBuffer("''", undefined, true), ' }']);
4385 }
4386 }
4387 },
4388
4389 // [appendEscaped]
4390 //
4391 // On stack, before: value, ...
4392 // On stack, after: ...
4393 //
4394 // Escape `value` and append it to the buffer
4395 appendEscaped: function appendEscaped() {
4396 this.pushSource(this.appendToBuffer([this.aliasable('container.escapeExpression'), '(', this.popStack(), ')']));
4397 },
4398
4399 // [getContext]
4400 //
4401 // On stack, before: ...
4402 // On stack, after: ...
4403 // Compiler value, after: lastContext=depth
4404 //
4405 // Set the value of the `lastContext` compiler value to the depth
4406 getContext: function getContext(depth) {
4407 this.lastContext = depth;
4408 },
4409
4410 // [pushContext]
4411 //
4412 // On stack, before: ...
4413 // On stack, after: currentContext, ...
4414 //
4415 // Pushes the value of the current context onto the stack.
4416 pushContext: function pushContext() {
4417 this.pushStackLiteral(this.contextName(this.lastContext));
4418 },
4419
4420 // [lookupOnContext]
4421 //
4422 // On stack, before: ...
4423 // On stack, after: currentContext[name], ...
4424 //
4425 // Looks up the value of `name` on the current context and pushes
4426 // it onto the stack.
4427 lookupOnContext: function lookupOnContext(parts, falsy, strict, scoped) {
4428 var i = 0;
4429
4430 if (!scoped && this.options.compat && !this.lastContext) {
4431 // The depthed query is expected to handle the undefined logic for the root level that
4432 // is implemented below, so we evaluate that directly in compat mode
4433 this.push(this.depthedLookup(parts[i++]));
4434 } else {
4435 this.pushContext();
4436 }
4437
4438 this.resolvePath('context', parts, i, falsy, strict);
4439 },
4440
4441 // [lookupBlockParam]
4442 //
4443 // On stack, before: ...
4444 // On stack, after: blockParam[name], ...
4445 //
4446 // Looks up the value of `parts` on the given block param and pushes
4447 // it onto the stack.
4448 lookupBlockParam: function lookupBlockParam(blockParamId, parts) {
4449 this.useBlockParams = true;
4450
4451 this.push(['blockParams[', blockParamId[0], '][', blockParamId[1], ']']);
4452 this.resolvePath('context', parts, 1);
4453 },
4454
4455 // [lookupData]
4456 //
4457 // On stack, before: ...
4458 // On stack, after: data, ...
4459 //
4460 // Push the data lookup operator
4461 lookupData: function lookupData(depth, parts, strict) {
4462 if (!depth) {
4463 this.pushStackLiteral('data');
4464 } else {
4465 this.pushStackLiteral('container.data(data, ' + depth + ')');
4466 }
4467
4468 this.resolvePath('data', parts, 0, true, strict);
4469 },
4470
4471 resolvePath: function resolvePath(type, parts, i, falsy, strict) {
4472 // istanbul ignore next
4473
4474 var _this = this;
4475
4476 if (this.options.strict || this.options.assumeObjects) {
4477 this.push(strictLookup(this.options.strict && strict, this, parts, type));
4478 return;
4479 }
4480
4481 var len = parts.length;
4482 for (; i < len; i++) {
4483 /* eslint-disable no-loop-func */
4484 this.replaceStack(function (current) {
4485 var lookup = _this.nameLookup(current, parts[i], type);
4486 // We want to ensure that zero and false are handled properly if the context (falsy flag)
4487 // needs to have the special handling for these values.
4488 if (!falsy) {
4489 return [' != null ? ', lookup, ' : ', current];
4490 } else {
4491 // Otherwise we can use generic falsy handling
4492 return [' && ', lookup];
4493 }
4494 });
4495 /* eslint-enable no-loop-func */
4496 }
4497 },
4498
4499 // [resolvePossibleLambda]
4500 //
4501 // On stack, before: value, ...
4502 // On stack, after: resolved value, ...
4503 //
4504 // If the `value` is a lambda, replace it on the stack by
4505 // the return value of the lambda
4506 resolvePossibleLambda: function resolvePossibleLambda() {
4507 this.push([this.aliasable('container.lambda'), '(', this.popStack(), ', ', this.contextName(0), ')']);
4508 },
4509
4510 // [pushStringParam]
4511 //
4512 // On stack, before: ...
4513 // On stack, after: string, currentContext, ...
4514 //
4515 // This opcode is designed for use in string mode, which
4516 // provides the string value of a parameter along with its
4517 // depth rather than resolving it immediately.
4518 pushStringParam: function pushStringParam(string, type) {
4519 this.pushContext();
4520 this.pushString(type);
4521
4522 // If it's a subexpression, the string result
4523 // will be pushed after this opcode.
4524 if (type !== 'SubExpression') {
4525 if (typeof string === 'string') {
4526 this.pushString(string);
4527 } else {
4528 this.pushStackLiteral(string);
4529 }
4530 }
4531 },
4532
4533 emptyHash: function emptyHash(omitEmpty) {
4534 if (this.trackIds) {
4535 this.push('{}'); // hashIds
4536 }
4537 if (this.stringParams) {
4538 this.push('{}'); // hashContexts
4539 this.push('{}'); // hashTypes
4540 }
4541 this.pushStackLiteral(omitEmpty ? 'undefined' : '{}');
4542 },
4543 pushHash: function pushHash() {
4544 if (this.hash) {
4545 this.hashes.push(this.hash);
4546 }
4547 this.hash = { values: [], types: [], contexts: [], ids: [] };
4548 },
4549 popHash: function popHash() {
4550 var hash = this.hash;
4551 this.hash = this.hashes.pop();
4552
4553 if (this.trackIds) {
4554 this.push(this.objectLiteral(hash.ids));
4555 }
4556 if (this.stringParams) {
4557 this.push(this.objectLiteral(hash.contexts));
4558 this.push(this.objectLiteral(hash.types));
4559 }
4560
4561 this.push(this.objectLiteral(hash.values));
4562 },
4563
4564 // [pushString]
4565 //
4566 // On stack, before: ...
4567 // On stack, after: quotedString(string), ...
4568 //
4569 // Push a quoted version of `string` onto the stack
4570 pushString: function pushString(string) {
4571 this.pushStackLiteral(this.quotedString(string));
4572 },
4573
4574 // [pushLiteral]
4575 //
4576 // On stack, before: ...
4577 // On stack, after: value, ...
4578 //
4579 // Pushes a value onto the stack. This operation prevents
4580 // the compiler from creating a temporary variable to hold
4581 // it.
4582 pushLiteral: function pushLiteral(value) {
4583 this.pushStackLiteral(value);
4584 },
4585
4586 // [pushProgram]
4587 //
4588 // On stack, before: ...
4589 // On stack, after: program(guid), ...
4590 //
4591 // Push a program expression onto the stack. This takes
4592 // a compile-time guid and converts it into a runtime-accessible
4593 // expression.
4594 pushProgram: function pushProgram(guid) {
4595 if (guid != null) {
4596 this.pushStackLiteral(this.programExpression(guid));
4597 } else {
4598 this.pushStackLiteral(null);
4599 }
4600 },
4601
4602 // [registerDecorator]
4603 //
4604 // On stack, before: hash, program, params..., ...
4605 // On stack, after: ...
4606 //
4607 // Pops off the decorator's parameters, invokes the decorator,
4608 // and inserts the decorator into the decorators list.
4609 registerDecorator: function registerDecorator(paramSize, name) {
4610 var foundDecorator = this.nameLookup('decorators', name, 'decorator'),
4611 options = this.setupHelperArgs(name, paramSize);
4612
4613 this.decorators.push(['fn = ', this.decorators.functionCall(foundDecorator, '', ['fn', 'props', 'container', options]), ' || fn;']);
4614 },
4615
4616 // [invokeHelper]
4617 //
4618 // On stack, before: hash, inverse, program, params..., ...
4619 // On stack, after: result of helper invocation
4620 //
4621 // Pops off the helper's parameters, invokes the helper,
4622 // and pushes the helper's return value onto the stack.
4623 //
4624 // If the helper is not found, `helperMissing` is called.
4625 invokeHelper: function invokeHelper(paramSize, name, isSimple) {
4626 var nonHelper = this.popStack(),
4627 helper = this.setupHelper(paramSize, name),
4628 simple = isSimple ? [helper.name, ' || '] : '';
4629
4630 var lookup = ['('].concat(simple, nonHelper);
4631 if (!this.options.strict) {
4632 lookup.push(' || ', this.aliasable('helpers.helperMissing'));
4633 }
4634 lookup.push(')');
4635
4636 this.push(this.source.functionCall(lookup, 'call', helper.callParams));
4637 },
4638
4639 // [invokeKnownHelper]
4640 //
4641 // On stack, before: hash, inverse, program, params..., ...
4642 // On stack, after: result of helper invocation
4643 //
4644 // This operation is used when the helper is known to exist,
4645 // so a `helperMissing` fallback is not required.
4646 invokeKnownHelper: function invokeKnownHelper(paramSize, name) {
4647 var helper = this.setupHelper(paramSize, name);
4648 this.push(this.source.functionCall(helper.name, 'call', helper.callParams));
4649 },
4650
4651 // [invokeAmbiguous]
4652 //
4653 // On stack, before: hash, inverse, program, params..., ...
4654 // On stack, after: result of disambiguation
4655 //
4656 // This operation is used when an expression like `{{foo}}`
4657 // is provided, but we don't know at compile-time whether it
4658 // is a helper or a path.
4659 //
4660 // This operation emits more code than the other options,
4661 // and can be avoided by passing the `knownHelpers` and
4662 // `knownHelpersOnly` flags at compile-time.
4663 invokeAmbiguous: function invokeAmbiguous(name, helperCall) {
4664 this.useRegister('helper');
4665
4666 var nonHelper = this.popStack();
4667
4668 this.emptyHash();
4669 var helper = this.setupHelper(0, name, helperCall);
4670
4671 var helperName = this.lastHelper = this.nameLookup('helpers', name, 'helper');
4672
4673 var lookup = ['(', '(helper = ', helperName, ' || ', nonHelper, ')'];
4674 if (!this.options.strict) {
4675 lookup[0] = '(helper = ';
4676 lookup.push(' != null ? helper : ', this.aliasable('helpers.helperMissing'));
4677 }
4678
4679 this.push(['(', lookup, helper.paramsInit ? ['),(', helper.paramsInit] : [], '),', '(typeof helper === ', this.aliasable('"function"'), ' ? ', this.source.functionCall('helper', 'call', helper.callParams), ' : helper))']);
4680 },
4681
4682 // [invokePartial]
4683 //
4684 // On stack, before: context, ...
4685 // On stack after: result of partial invocation
4686 //
4687 // This operation pops off a context, invokes a partial with that context,
4688 // and pushes the result of the invocation back.
4689 invokePartial: function invokePartial(isDynamic, name, indent) {
4690 var params = [],
4691 options = this.setupParams(name, 1, params);
4692
4693 if (isDynamic) {
4694 name = this.popStack();
4695 delete options.name;
4696 }
4697
4698 if (indent) {
4699 options.indent = JSON.stringify(indent);
4700 }
4701 options.helpers = 'helpers';
4702 options.partials = 'partials';
4703 options.decorators = 'container.decorators';
4704
4705 if (!isDynamic) {
4706 params.unshift(this.nameLookup('partials', name, 'partial'));
4707 } else {
4708 params.unshift(name);
4709 }
4710
4711 if (this.options.compat) {
4712 options.depths = 'depths';
4713 }
4714 options = this.objectLiteral(options);
4715 params.push(options);
4716
4717 this.push(this.source.functionCall('container.invokePartial', '', params));
4718 },
4719
4720 // [assignToHash]
4721 //
4722 // On stack, before: value, ..., hash, ...
4723 // On stack, after: ..., hash, ...
4724 //
4725 // Pops a value off the stack and assigns it to the current hash
4726 assignToHash: function assignToHash(key) {
4727 var value = this.popStack(),
4728 context = undefined,
4729 type = undefined,
4730 id = undefined;
4731
4732 if (this.trackIds) {
4733 id = this.popStack();
4734 }
4735 if (this.stringParams) {
4736 type = this.popStack();
4737 context = this.popStack();
4738 }
4739
4740 var hash = this.hash;
4741 if (context) {
4742 hash.contexts[key] = context;
4743 }
4744 if (type) {
4745 hash.types[key] = type;
4746 }
4747 if (id) {
4748 hash.ids[key] = id;
4749 }
4750 hash.values[key] = value;
4751 },
4752
4753 pushId: function pushId(type, name, child) {
4754 if (type === 'BlockParam') {
4755 this.pushStackLiteral('blockParams[' + name[0] + '].path[' + name[1] + ']' + (child ? ' + ' + JSON.stringify('.' + child) : ''));
4756 } else if (type === 'PathExpression') {
4757 this.pushString(name);
4758 } else if (type === 'SubExpression') {
4759 this.pushStackLiteral('true');
4760 } else {
4761 this.pushStackLiteral('null');
4762 }
4763 },
4764
4765 // HELPERS
4766
4767 compiler: JavaScriptCompiler,
4768
4769 compileChildren: function compileChildren(environment, options) {
4770 var children = environment.children,
4771 child = undefined,
4772 compiler = undefined;
4773
4774 for (var i = 0, l = children.length; i < l; i++) {
4775 child = children[i];
4776 compiler = new this.compiler(); // eslint-disable-line new-cap
4777
4778 var existing = this.matchExistingProgram(child);
4779
4780 if (existing == null) {
4781 this.context.programs.push(''); // Placeholder to prevent name conflicts for nested children
4782 var index = this.context.programs.length;
4783 child.index = index;
4784 child.name = 'program' + index;
4785 this.context.programs[index] = compiler.compile(child, options, this.context, !this.precompile);
4786 this.context.decorators[index] = compiler.decorators;
4787 this.context.environments[index] = child;
4788
4789 this.useDepths = this.useDepths || compiler.useDepths;
4790 this.useBlockParams = this.useBlockParams || compiler.useBlockParams;
4791 child.useDepths = this.useDepths;
4792 child.useBlockParams = this.useBlockParams;
4793 } else {
4794 child.index = existing.index;
4795 child.name = 'program' + existing.index;
4796
4797 this.useDepths = this.useDepths || existing.useDepths;
4798 this.useBlockParams = this.useBlockParams || existing.useBlockParams;
4799 }
4800 }
4801 },
4802 matchExistingProgram: function matchExistingProgram(child) {
4803 for (var i = 0, len = this.context.environments.length; i < len; i++) {
4804 var environment = this.context.environments[i];
4805 if (environment && environment.equals(child)) {
4806 return environment;
4807 }
4808 }
4809 },
4810
4811 programExpression: function programExpression(guid) {
4812 var child = this.environment.children[guid],
4813 programParams = [child.index, 'data', child.blockParams];
4814
4815 if (this.useBlockParams || this.useDepths) {
4816 programParams.push('blockParams');
4817 }
4818 if (this.useDepths) {
4819 programParams.push('depths');
4820 }
4821
4822 return 'container.program(' + programParams.join(', ') + ')';
4823 },
4824
4825 useRegister: function useRegister(name) {
4826 if (!this.registers[name]) {
4827 this.registers[name] = true;
4828 this.registers.list.push(name);
4829 }
4830 },
4831
4832 push: function push(expr) {
4833 if (!(expr instanceof Literal)) {
4834 expr = this.source.wrap(expr);
4835 }
4836
4837 this.inlineStack.push(expr);
4838 return expr;
4839 },
4840
4841 pushStackLiteral: function pushStackLiteral(item) {
4842 this.push(new Literal(item));
4843 },
4844
4845 pushSource: function pushSource(source) {
4846 if (this.pendingContent) {
4847 this.source.push(this.appendToBuffer(this.source.quotedString(this.pendingContent), this.pendingLocation));
4848 this.pendingContent = undefined;
4849 }
4850
4851 if (source) {
4852 this.source.push(source);
4853 }
4854 },
4855
4856 replaceStack: function replaceStack(callback) {
4857 var prefix = ['('],
4858 stack = undefined,
4859 createdStack = undefined,
4860 usedLiteral = undefined;
4861
4862 /* istanbul ignore next */
4863 if (!this.isInline()) {
4864 throw new _exception2['default']('replaceStack on non-inline');
4865 }
4866
4867 // We want to merge the inline statement into the replacement statement via ','
4868 var top = this.popStack(true);
4869
4870 if (top instanceof Literal) {
4871 // Literals do not need to be inlined
4872 stack = [top.value];
4873 prefix = ['(', stack];
4874 usedLiteral = true;
4875 } else {
4876 // Get or create the current stack name for use by the inline
4877 createdStack = true;
4878 var _name = this.incrStack();
4879
4880 prefix = ['((', this.push(_name), ' = ', top, ')'];
4881 stack = this.topStack();
4882 }
4883
4884 var item = callback.call(this, stack);
4885
4886 if (!usedLiteral) {
4887 this.popStack();
4888 }
4889 if (createdStack) {
4890 this.stackSlot--;
4891 }
4892 this.push(prefix.concat(item, ')'));
4893 },
4894
4895 incrStack: function incrStack() {
4896 this.stackSlot++;
4897 if (this.stackSlot > this.stackVars.length) {
4898 this.stackVars.push('stack' + this.stackSlot);
4899 }
4900 return this.topStackName();
4901 },
4902 topStackName: function topStackName() {
4903 return 'stack' + this.stackSlot;
4904 },
4905 flushInline: function flushInline() {
4906 var inlineStack = this.inlineStack;
4907 this.inlineStack = [];
4908 for (var i = 0, len = inlineStack.length; i < len; i++) {
4909 var entry = inlineStack[i];
4910 /* istanbul ignore if */
4911 if (entry instanceof Literal) {
4912 this.compileStack.push(entry);
4913 } else {
4914 var stack = this.incrStack();
4915 this.pushSource([stack, ' = ', entry, ';']);
4916 this.compileStack.push(stack);
4917 }
4918 }
4919 },
4920 isInline: function isInline() {
4921 return this.inlineStack.length;
4922 },
4923
4924 popStack: function popStack(wrapped) {
4925 var inline = this.isInline(),
4926 item = (inline ? this.inlineStack : this.compileStack).pop();
4927
4928 if (!wrapped && item instanceof Literal) {
4929 return item.value;
4930 } else {
4931 if (!inline) {
4932 /* istanbul ignore next */
4933 if (!this.stackSlot) {
4934 throw new _exception2['default']('Invalid stack pop');
4935 }
4936 this.stackSlot--;
4937 }
4938 return item;
4939 }
4940 },
4941
4942 topStack: function topStack() {
4943 var stack = this.isInline() ? this.inlineStack : this.compileStack,
4944 item = stack[stack.length - 1];
4945
4946 /* istanbul ignore if */
4947 if (item instanceof Literal) {
4948 return item.value;
4949 } else {
4950 return item;
4951 }
4952 },
4953
4954 contextName: function contextName(context) {
4955 if (this.useDepths && context) {
4956 return 'depths[' + context + ']';
4957 } else {
4958 return 'depth' + context;
4959 }
4960 },
4961
4962 quotedString: function quotedString(str) {
4963 return this.source.quotedString(str);
4964 },
4965
4966 objectLiteral: function objectLiteral(obj) {
4967 return this.source.objectLiteral(obj);
4968 },
4969
4970 aliasable: function aliasable(name) {
4971 var ret = this.aliases[name];
4972 if (ret) {
4973 ret.referenceCount++;
4974 return ret;
4975 }
4976
4977 ret = this.aliases[name] = this.source.wrap(name);
4978 ret.aliasable = true;
4979 ret.referenceCount = 1;
4980
4981 return ret;
4982 },
4983
4984 setupHelper: function setupHelper(paramSize, name, blockHelper) {
4985 var params = [],
4986 paramsInit = this.setupHelperArgs(name, paramSize, params, blockHelper);
4987 var foundHelper = this.nameLookup('helpers', name, 'helper'),
4988 callContext = this.aliasable(this.contextName(0) + ' != null ? ' + this.contextName(0) + ' : (container.nullContext || {})');
4989
4990 return {
4991 params: params,
4992 paramsInit: paramsInit,
4993 name: foundHelper,
4994 callParams: [callContext].concat(params)
4995 };
4996 },
4997
4998 setupParams: function setupParams(helper, paramSize, params) {
4999 var options = {},
5000 contexts = [],
5001 types = [],
5002 ids = [],
5003 objectArgs = !params,
5004 param = undefined;
5005
5006 if (objectArgs) {
5007 params = [];
5008 }
5009
5010 options.name = this.quotedString(helper);
5011 options.hash = this.popStack();
5012
5013 if (this.trackIds) {
5014 options.hashIds = this.popStack();
5015 }
5016 if (this.stringParams) {
5017 options.hashTypes = this.popStack();
5018 options.hashContexts = this.popStack();
5019 }
5020
5021 var inverse = this.popStack(),
5022 program = this.popStack();
5023
5024 // Avoid setting fn and inverse if neither are set. This allows
5025 // helpers to do a check for `if (options.fn)`
5026 if (program || inverse) {
5027 options.fn = program || 'container.noop';
5028 options.inverse = inverse || 'container.noop';
5029 }
5030
5031 // The parameters go on to the stack in order (making sure that they are evaluated in order)
5032 // so we need to pop them off the stack in reverse order
5033 var i = paramSize;
5034 while (i--) {
5035 param = this.popStack();
5036 params[i] = param;
5037
5038 if (this.trackIds) {
5039 ids[i] = this.popStack();
5040 }
5041 if (this.stringParams) {
5042 types[i] = this.popStack();
5043 contexts[i] = this.popStack();
5044 }
5045 }
5046
5047 if (objectArgs) {
5048 options.args = this.source.generateArray(params);
5049 }
5050
5051 if (this.trackIds) {
5052 options.ids = this.source.generateArray(ids);
5053 }
5054 if (this.stringParams) {
5055 options.types = this.source.generateArray(types);
5056 options.contexts = this.source.generateArray(contexts);
5057 }
5058
5059 if (this.options.data) {
5060 options.data = 'data';
5061 }
5062 if (this.useBlockParams) {
5063 options.blockParams = 'blockParams';
5064 }
5065 return options;
5066 },
5067
5068 setupHelperArgs: function setupHelperArgs(helper, paramSize, params, useRegister) {
5069 var options = this.setupParams(helper, paramSize, params);
5070 options = this.objectLiteral(options);
5071 if (useRegister) {
5072 this.useRegister('options');
5073 params.push('options');
5074 return ['options=', options];
5075 } else if (params) {
5076 params.push(options);
5077 return '';
5078 } else {
5079 return options;
5080 }
5081 }
5082 };
5083
5084 (function () {
5085 var reservedWords = ('break else new var' + ' case finally return void' + ' catch for switch while' + ' continue function this with' + ' default if throw' + ' delete in try' + ' do instanceof typeof' + ' abstract enum int short' + ' boolean export interface static' + ' byte extends long super' + ' char final native synchronized' + ' class float package throws' + ' const goto private transient' + ' debugger implements protected volatile' + ' double import public let yield await' + ' null true false').split(' ');
5086
5087 var compilerWords = JavaScriptCompiler.RESERVED_WORDS = {};
5088
5089 for (var i = 0, l = reservedWords.length; i < l; i++) {
5090 compilerWords[reservedWords[i]] = true;
5091 }
5092 })();
5093
5094 JavaScriptCompiler.isValidJavaScriptVariableName = function (name) {
5095 return !JavaScriptCompiler.RESERVED_WORDS[name] && /^[a-zA-Z_$][0-9a-zA-Z_$]*$/.test(name);
5096 };
5097
5098 function strictLookup(requireTerminal, compiler, parts, type) {
5099 var stack = compiler.popStack(),
5100 i = 0,
5101 len = parts.length;
5102 if (requireTerminal) {
5103 len--;
5104 }
5105
5106 for (; i < len; i++) {
5107 stack = compiler.nameLookup(stack, parts[i], type);
5108 }
5109
5110 if (requireTerminal) {
5111 return [compiler.aliasable('container.strict'), '(', stack, ', ', compiler.quotedString(parts[i]), ')'];
5112 } else {
5113 return stack;
5114 }
5115 }
5116
5117 exports['default'] = JavaScriptCompiler;
5118 module.exports = exports['default'];
5119
5120/***/ }),
5121/* 43 */
5122/***/ (function(module, exports, __webpack_require__) {
5123
5124 /* global define */
5125 'use strict';
5126
5127 exports.__esModule = true;
5128
5129 var _utils = __webpack_require__(5);
5130
5131 var SourceNode = undefined;
5132
5133 try {
5134 /* istanbul ignore next */
5135 if (false) { var SourceMap; }
5136 } catch (err) {}
5137 /* NOP */
5138
5139 /* istanbul ignore if: tested but not covered in istanbul due to dist build */
5140 if (!SourceNode) {
5141 SourceNode = function (line, column, srcFile, chunks) {
5142 this.src = '';
5143 if (chunks) {
5144 this.add(chunks);
5145 }
5146 };
5147 /* istanbul ignore next */
5148 SourceNode.prototype = {
5149 add: function add(chunks) {
5150 if (_utils.isArray(chunks)) {
5151 chunks = chunks.join('');
5152 }
5153 this.src += chunks;
5154 },
5155 prepend: function prepend(chunks) {
5156 if (_utils.isArray(chunks)) {
5157 chunks = chunks.join('');
5158 }
5159 this.src = chunks + this.src;
5160 },
5161 toStringWithSourceMap: function toStringWithSourceMap() {
5162 return { code: this.toString() };
5163 },
5164 toString: function toString() {
5165 return this.src;
5166 }
5167 };
5168 }
5169
5170 function castChunk(chunk, codeGen, loc) {
5171 if (_utils.isArray(chunk)) {
5172 var ret = [];
5173
5174 for (var i = 0, len = chunk.length; i < len; i++) {
5175 ret.push(codeGen.wrap(chunk[i], loc));
5176 }
5177 return ret;
5178 } else if (typeof chunk === 'boolean' || typeof chunk === 'number') {
5179 // Handle primitives that the SourceNode will throw up on
5180 return chunk + '';
5181 }
5182 return chunk;
5183 }
5184
5185 function CodeGen(srcFile) {
5186 this.srcFile = srcFile;
5187 this.source = [];
5188 }
5189
5190 CodeGen.prototype = {
5191 isEmpty: function isEmpty() {
5192 return !this.source.length;
5193 },
5194 prepend: function prepend(source, loc) {
5195 this.source.unshift(this.wrap(source, loc));
5196 },
5197 push: function push(source, loc) {
5198 this.source.push(this.wrap(source, loc));
5199 },
5200
5201 merge: function merge() {
5202 var source = this.empty();
5203 this.each(function (line) {
5204 source.add([' ', line, '\n']);
5205 });
5206 return source;
5207 },
5208
5209 each: function each(iter) {
5210 for (var i = 0, len = this.source.length; i < len; i++) {
5211 iter(this.source[i]);
5212 }
5213 },
5214
5215 empty: function empty() {
5216 var loc = this.currentLocation || { start: {} };
5217 return new SourceNode(loc.start.line, loc.start.column, this.srcFile);
5218 },
5219 wrap: function wrap(chunk) {
5220 var loc = arguments.length <= 1 || arguments[1] === undefined ? this.currentLocation || { start: {} } : arguments[1];
5221
5222 if (chunk instanceof SourceNode) {
5223 return chunk;
5224 }
5225
5226 chunk = castChunk(chunk, this, loc);
5227
5228 return new SourceNode(loc.start.line, loc.start.column, this.srcFile, chunk);
5229 },
5230
5231 functionCall: function functionCall(fn, type, params) {
5232 params = this.generateList(params);
5233 return this.wrap([fn, type ? '.' + type + '(' : '(', params, ')']);
5234 },
5235
5236 quotedString: function quotedString(str) {
5237 return '"' + (str + '').replace(/\\/g, '\\\\').replace(/"/g, '\\"').replace(/\n/g, '\\n').replace(/\r/g, '\\r').replace(/\u2028/g, '\\u2028') // Per Ecma-262 7.3 + 7.8.4
5238 .replace(/\u2029/g, '\\u2029') + '"';
5239 },
5240
5241 objectLiteral: function objectLiteral(obj) {
5242 var pairs = [];
5243
5244 for (var key in obj) {
5245 if (obj.hasOwnProperty(key)) {
5246 var value = castChunk(obj[key], this);
5247 if (value !== 'undefined') {
5248 pairs.push([this.quotedString(key), ':', value]);
5249 }
5250 }
5251 }
5252
5253 var ret = this.generateList(pairs);
5254 ret.prepend('{');
5255 ret.add('}');
5256 return ret;
5257 },
5258
5259 generateList: function generateList(entries) {
5260 var ret = this.empty();
5261
5262 for (var i = 0, len = entries.length; i < len; i++) {
5263 if (i) {
5264 ret.add(',');
5265 }
5266
5267 ret.add(castChunk(entries[i], this));
5268 }
5269
5270 return ret;
5271 },
5272
5273 generateArray: function generateArray(entries) {
5274 var ret = this.generateList(entries);
5275 ret.prepend('[');
5276 ret.add(']');
5277
5278 return ret;
5279 }
5280 };
5281
5282 exports['default'] = CodeGen;
5283 module.exports = exports['default'];
5284
5285/***/ })
5286/******/ ])
5287});
5288;
5289
5290/***/ }),
5291/* 5 */
5292/***/ (function(module, exports, __webpack_require__) {
5293
5294var upperCase = __webpack_require__(1)
5295var noCase = __webpack_require__(0)
5296
5297/**
5298 * Camel case a string.
5299 *
5300 * @param {string} value
5301 * @param {string} [locale]
5302 * @return {string}
5303 */
5304module.exports = function (value, locale, mergeNumbers) {
5305 var result = noCase(value, locale)
5306
5307 // Replace periods between numeric entities with an underscore.
5308 if (!mergeNumbers) {
5309 result = result.replace(/ (?=\d)/g, '_')
5310 }
5311
5312 // Replace spaces between words with an upper cased character.
5313 return result.replace(/ (.)/g, function (m, $1) {
5314 return upperCase($1, locale)
5315 })
5316}
5317
5318
5319/***/ }),
5320/* 6 */
5321/***/ (function(module, exports, __webpack_require__) {
5322
5323var noCase = __webpack_require__(0)
5324
5325/**
5326 * Snake case a string.
5327 *
5328 * @param {string} value
5329 * @param {string} [locale]
5330 * @return {string}
5331 */
5332module.exports = function (value, locale) {
5333 return noCase(value, locale, '_')
5334}
5335
5336
5337/***/ }),
5338/* 7 */
5339/***/ (function(module, exports, __webpack_require__) {
5340
5341"use strict";
5342
5343Object.defineProperty(exports, "__esModule", { value: true });
5344var handlebars_1 = __webpack_require__(4);
5345function getScalarType(type, options) {
5346 var config = options.data.root.config || {};
5347 if (config.scalars && type in config.scalars) {
5348 return config.scalars[type];
5349 }
5350 else {
5351 return 'any';
5352 }
5353}
5354exports.getScalarType = getScalarType;
5355function getEnumValue(type, name, options) {
5356 var config = options.data.root.config || {};
5357 if (config.enums && type in config.enums && name in config.enums[type]) {
5358 return config.enums[type][name];
5359 }
5360 else {
5361 return "\"" + name + "\"";
5362 }
5363}
5364exports.getEnumValue = getEnumValue;
5365function getFieldType(field, realType, options) {
5366 var config = options.data.root.config || {};
5367 var useImmutable = !!config.immutableTypes;
5368 if (field.isArray) {
5369 var result = realType;
5370 var dimension = field.dimensionOfArray + 1;
5371 if (field.isNullableArray && !config.noNamespaces) {
5372 result = useImmutable ? [realType, 'null'].join(' | ') : "(" + [realType, 'null'].join(' | ') + ")";
5373 }
5374 if (useImmutable) {
5375 result = "" + new Array(dimension).join('ReadonlyArray<') + result + new Array(dimension).join('>');
5376 }
5377 else {
5378 result = "" + result + new Array(dimension).join('[]');
5379 }
5380 if (!field.isRequired) {
5381 result = [result, 'null'].join(' | ');
5382 }
5383 return result;
5384 }
5385 else {
5386 if (field.isRequired) {
5387 return realType;
5388 }
5389 else {
5390 return [realType, 'null'].join(' | ');
5391 }
5392 }
5393}
5394exports.getFieldType = getFieldType;
5395function getOptionals(type, options) {
5396 var config = options.data.root.config || {};
5397 if (config.avoidOptionals === '1' ||
5398 config.avoidOptionals === 'true' ||
5399 config.avoidOptionals === true ||
5400 config.avoidOptionals === 1) {
5401 return '';
5402 }
5403 if (!type.isRequired) {
5404 return '?';
5405 }
5406 return '';
5407}
5408exports.getOptionals = getOptionals;
5409exports.getType = function (convert) { return function (type, options) {
5410 if (!type) {
5411 return '';
5412 }
5413 var result = convertedType(type, options, convert);
5414 return new handlebars_1.SafeString(result);
5415}; };
5416function convertedType(type, options, convert, skipConversion) {
5417 if (skipConversion === void 0) { skipConversion = false; }
5418 var baseType = type.type;
5419 var config = options.data.root.config || {};
5420 var realType = options.data.root.primitives[baseType] ||
5421 "" + (type.isScalar ? '' : config.interfacePrefix || '') + (skipConversion ? baseType : convert(baseType));
5422 return getFieldType(type, realType, options);
5423}
5424exports.convertedType = convertedType;
5425
5426
5427/***/ }),
5428/* 8 */
5429/***/ (function(module, exports, __webpack_require__) {
5430
5431"use strict";
5432
5433var __assign = (this && this.__assign) || function () {
5434 __assign = Object.assign || function(t) {
5435 for (var s, i = 1, n = arguments.length; i < n; i++) {
5436 s = arguments[i];
5437 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
5438 t[p] = s[p];
5439 }
5440 return t;
5441 };
5442 return __assign.apply(this, arguments);
5443};
5444var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
5445 return new (P || (P = Promise))(function (resolve, reject) {
5446 function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
5447 function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
5448 function step(result) { result.done ? resolve(result.value) : new P(function (resolve) { resolve(result.value); }).then(fulfilled, rejected); }
5449 step((generator = generator.apply(thisArg, _arguments || [])).next());
5450 });
5451};
5452var __generator = (this && this.__generator) || function (thisArg, body) {
5453 var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
5454 return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
5455 function verb(n) { return function (v) { return step([n, v]); }; }
5456 function step(op) {
5457 if (f) throw new TypeError("Generator is already executing.");
5458 while (_) try {
5459 if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
5460 if (y = 0, t) op = [op[0] & 2, t.value];
5461 switch (op[0]) {
5462 case 0: case 1: t = op; break;
5463 case 4: _.label++; return { value: op[1], done: false };
5464 case 5: _.label++; y = op[1]; op = [0]; continue;
5465 case 7: op = _.ops.pop(); _.trys.pop(); continue;
5466 default:
5467 if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
5468 if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
5469 if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
5470 if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
5471 if (t[2]) _.ops.pop();
5472 _.trys.pop(); continue;
5473 }
5474 op = body.call(thisArg, _);
5475 } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
5476 if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
5477 }
5478};
5479function __export(m) {
5480 for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p];
5481}
5482var _this = this;
5483Object.defineProperty(exports, "__esModule", { value: true });
5484var graphql_codegen_core_1 = __webpack_require__(9);
5485var graphql_codegen_plugin_handlebars_helpers_1 = __webpack_require__(10);
5486var graphql_codegen_plugin_helpers_1 = __webpack_require__(11);
5487var enumTemplate = __webpack_require__(12);
5488var type = __webpack_require__(13);
5489var rootTemplate = __webpack_require__(14);
5490var Handlebars = __webpack_require__(4);
5491var change_case_1 = __webpack_require__(15);
5492var helpers_1 = __webpack_require__(7);
5493__export(__webpack_require__(7));
5494exports.DEFAULT_SCALARS = {
5495 String: 'string',
5496 Int: 'number',
5497 Float: 'number',
5498 Boolean: 'boolean',
5499 ID: 'string'
5500};
5501function initCommonTemplate(hbs, schema, config) {
5502 var scalars = __assign({}, exports.DEFAULT_SCALARS, (config.scalars || {}));
5503 var baseConvertFn = config.namingConvention ? graphql_codegen_plugin_helpers_1.resolveExternalModuleAndFn(config.namingConvention) : change_case_1.pascalCase;
5504 var convert = function (str) {
5505 if (str.charAt(0) === '_') {
5506 var after = str.replace(/^(_*)(.*)/, function (_match, underscorePrefix, typeName) { return "" + underscorePrefix + baseConvertFn(typeName || ''); });
5507 return after;
5508 }
5509 return baseConvertFn(str);
5510 };
5511 hbs.registerPartial('enum', enumTemplate);
5512 hbs.registerPartial('type', type);
5513 hbs.registerHelper('blockComment', graphql_codegen_plugin_handlebars_helpers_1.helpers.blockComment);
5514 hbs.registerHelper('blockCommentIf', graphql_codegen_plugin_handlebars_helpers_1.helpers.blockCommentIf);
5515 hbs.registerHelper('toComment', graphql_codegen_plugin_handlebars_helpers_1.helpers.toComment);
5516 hbs.registerHelper('convert', convert);
5517 hbs.registerHelper('getOptionals', helpers_1.getOptionals);
5518 hbs.registerHelper('getEnumValue', helpers_1.getEnumValue);
5519 hbs.registerHelper('convertedType', helpers_1.getType(convert));
5520 hbs.registerHelper('toLowerCase', graphql_codegen_plugin_handlebars_helpers_1.helpers.toLowerCase);
5521 hbs.registerHelper('toUpperCase', graphql_codegen_plugin_handlebars_helpers_1.helpers.toUpperCase);
5522 hbs.registerHelper('times', graphql_codegen_plugin_handlebars_helpers_1.helpers.times);
5523 hbs.registerHelper('stringify', graphql_codegen_plugin_handlebars_helpers_1.helpers.stringify);
5524 hbs.registerHelper('ifDirective', graphql_codegen_plugin_handlebars_helpers_1.helpers.ifDirective);
5525 hbs.registerHelper('ifCond', graphql_codegen_plugin_handlebars_helpers_1.helpers.ifCond);
5526 hbs.registerHelper('getScalarType', helpers_1.getScalarType);
5527 hbs.registerHelper('unlessDirective', graphql_codegen_plugin_handlebars_helpers_1.helpers.unlessDirective);
5528 hbs.registerHelper('toPrimitive', function (type) { return scalars[type] || type || ''; });
5529 var templateContext = graphql_codegen_core_1.schemaToTemplateContext(schema);
5530 return {
5531 templateContext: __assign({}, templateContext, { config: config, primitives: scalars }),
5532 convert: convert,
5533 scalars: scalars
5534 };
5535}
5536exports.initCommonTemplate = initCommonTemplate;
5537exports.plugin = function (schema, documents, config) { return __awaiter(_this, void 0, void 0, function () {
5538 var templateContext;
5539 return __generator(this, function (_a) {
5540 templateContext = initCommonTemplate(Handlebars, schema, config).templateContext;
5541 return [2 /*return*/, Handlebars.compile(rootTemplate)(templateContext)];
5542 });
5543}); };
5544
5545
5546/***/ }),
5547/* 9 */
5548/***/ (function(module, exports) {
5549
5550module.exports = __webpack_require__(0);
5551
5552/***/ }),
5553/* 10 */
5554/***/ (function(module, exports, __webpack_require__) {
5555
5556(function(e, a) { for(var i in a) e[i] = a[i]; }(exports, /******/ (function(modules) { // webpackBootstrap
5557/******/ // The module cache
5558/******/ var installedModules = {};
5559/******/
5560/******/ // The require function
5561/******/ function __webpack_require__(moduleId) {
5562/******/
5563/******/ // Check if module is in cache
5564/******/ if(installedModules[moduleId]) {
5565/******/ return installedModules[moduleId].exports;
5566/******/ }
5567/******/ // Create a new module (and put it into the cache)
5568/******/ var module = installedModules[moduleId] = {
5569/******/ i: moduleId,
5570/******/ l: false,
5571/******/ exports: {}
5572/******/ };
5573/******/
5574/******/ // Execute the module function
5575/******/ modules[moduleId].call(module.exports, module, module.exports, __webpack_require__);
5576/******/
5577/******/ // Flag the module as loaded
5578/******/ module.l = true;
5579/******/
5580/******/ // Return the exports of the module
5581/******/ return module.exports;
5582/******/ }
5583/******/
5584/******/
5585/******/ // expose the modules object (__webpack_modules__)
5586/******/ __webpack_require__.m = modules;
5587/******/
5588/******/ // expose the module cache
5589/******/ __webpack_require__.c = installedModules;
5590/******/
5591/******/ // define getter function for harmony exports
5592/******/ __webpack_require__.d = function(exports, name, getter) {
5593/******/ if(!__webpack_require__.o(exports, name)) {
5594/******/ Object.defineProperty(exports, name, { enumerable: true, get: getter });
5595/******/ }
5596/******/ };
5597/******/
5598/******/ // define __esModule on exports
5599/******/ __webpack_require__.r = function(exports) {
5600/******/ if(typeof Symbol !== 'undefined' && Symbol.toStringTag) {
5601/******/ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
5602/******/ }
5603/******/ Object.defineProperty(exports, '__esModule', { value: true });
5604/******/ };
5605/******/
5606/******/ // create a fake namespace object
5607/******/ // mode & 1: value is a module id, require it
5608/******/ // mode & 2: merge all properties of value into the ns
5609/******/ // mode & 4: return value when already ns object
5610/******/ // mode & 8|1: behave like require
5611/******/ __webpack_require__.t = function(value, mode) {
5612/******/ if(mode & 1) value = __webpack_require__(value);
5613/******/ if(mode & 8) return value;
5614/******/ if((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;
5615/******/ var ns = Object.create(null);
5616/******/ __webpack_require__.r(ns);
5617/******/ Object.defineProperty(ns, 'default', { enumerable: true, value: value });
5618/******/ if(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));
5619/******/ return ns;
5620/******/ };
5621/******/
5622/******/ // getDefaultExport function for compatibility with non-harmony modules
5623/******/ __webpack_require__.n = function(module) {
5624/******/ var getter = module && module.__esModule ?
5625/******/ function getDefault() { return module['default']; } :
5626/******/ function getModuleExports() { return module; };
5627/******/ __webpack_require__.d(getter, 'a', getter);
5628/******/ return getter;
5629/******/ };
5630/******/
5631/******/ // Object.prototype.hasOwnProperty.call
5632/******/ __webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };
5633/******/
5634/******/ // __webpack_public_path__
5635/******/ __webpack_require__.p = "";
5636/******/
5637/******/
5638/******/ // Load entry module and return exports
5639/******/ return __webpack_require__(__webpack_require__.s = 9);
5640/******/ })
5641/************************************************************************/
5642/******/ ([
5643/* 0 */
5644/***/ (function(module, exports, __webpack_require__) {
5645
5646"use strict";
5647
5648
5649Object.defineProperty(exports, "__esModule", {
5650 value: true
5651});
5652exports.default = undefined;
5653
5654var _TemplateTag = __webpack_require__(12);
5655
5656var _TemplateTag2 = _interopRequireDefault(_TemplateTag);
5657
5658function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
5659
5660exports.default = _TemplateTag2.default;
5661module.exports = exports['default'];
5662//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9UZW1wbGF0ZVRhZy9pbmRleC5qcyJdLCJuYW1lcyI6WyJkZWZhdWx0Il0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7O1FBQU9BLE8iLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgZGVmYXVsdCBmcm9tICcuL1RlbXBsYXRlVGFnJztcbiJdfQ==
5663
5664/***/ }),
5665/* 1 */
5666/***/ (function(module, exports, __webpack_require__) {
5667
5668"use strict";
5669
5670
5671Object.defineProperty(exports, "__esModule", {
5672 value: true
5673});
5674exports.default = undefined;
5675
5676var _trimResultTransformer = __webpack_require__(13);
5677
5678var _trimResultTransformer2 = _interopRequireDefault(_trimResultTransformer);
5679
5680function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
5681
5682exports.default = _trimResultTransformer2.default;
5683module.exports = exports['default'];
5684//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy90cmltUmVzdWx0VHJhbnNmb3JtZXIvaW5kZXguanMiXSwibmFtZXMiOlsiZGVmYXVsdCJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7OztRQUFPQSxPIiwiZmlsZSI6ImluZGV4LmpzIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGRlZmF1bHQgZnJvbSAnLi90cmltUmVzdWx0VHJhbnNmb3JtZXInO1xuIl19
5685
5686/***/ }),
5687/* 2 */
5688/***/ (function(module, exports, __webpack_require__) {
5689
5690"use strict";
5691
5692
5693Object.defineProperty(exports, "__esModule", {
5694 value: true
5695});
5696exports.default = undefined;
5697
5698var _inlineArrayTransformer = __webpack_require__(19);
5699
5700var _inlineArrayTransformer2 = _interopRequireDefault(_inlineArrayTransformer);
5701
5702function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
5703
5704exports.default = _inlineArrayTransformer2.default;
5705module.exports = exports['default'];
5706//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9pbmxpbmVBcnJheVRyYW5zZm9ybWVyL2luZGV4LmpzIl0sIm5hbWVzIjpbImRlZmF1bHQiXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7UUFBT0EsTyIsImZpbGUiOiJpbmRleC5qcyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBkZWZhdWx0IGZyb20gJy4vaW5saW5lQXJyYXlUcmFuc2Zvcm1lcic7XG4iXX0=
5707
5708/***/ }),
5709/* 3 */
5710/***/ (function(module, exports, __webpack_require__) {
5711
5712"use strict";
5713
5714
5715Object.defineProperty(exports, "__esModule", {
5716 value: true
5717});
5718exports.default = undefined;
5719
5720var _stripIndentTransformer = __webpack_require__(14);
5721
5722var _stripIndentTransformer2 = _interopRequireDefault(_stripIndentTransformer);
5723
5724function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
5725
5726exports.default = _stripIndentTransformer2.default;
5727module.exports = exports['default'];
5728//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9zdHJpcEluZGVudFRyYW5zZm9ybWVyL2luZGV4LmpzIl0sIm5hbWVzIjpbImRlZmF1bHQiXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7UUFBT0EsTyIsImZpbGUiOiJpbmRleC5qcyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBkZWZhdWx0IGZyb20gJy4vc3RyaXBJbmRlbnRUcmFuc2Zvcm1lcic7XG4iXX0=
5729
5730/***/ }),
5731/* 4 */
5732/***/ (function(module, exports, __webpack_require__) {
5733
5734"use strict";
5735
5736
5737Object.defineProperty(exports, "__esModule", {
5738 value: true
5739});
5740exports.default = undefined;
5741
5742var _replaceResultTransformer = __webpack_require__(15);
5743
5744var _replaceResultTransformer2 = _interopRequireDefault(_replaceResultTransformer);
5745
5746function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
5747
5748exports.default = _replaceResultTransformer2.default;
5749module.exports = exports['default'];
5750//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9yZXBsYWNlUmVzdWx0VHJhbnNmb3JtZXIvaW5kZXguanMiXSwibmFtZXMiOlsiZGVmYXVsdCJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7OztRQUFPQSxPIiwiZmlsZSI6ImluZGV4LmpzIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGRlZmF1bHQgZnJvbSAnLi9yZXBsYWNlUmVzdWx0VHJhbnNmb3JtZXInO1xuIl19
5751
5752/***/ }),
5753/* 5 */
5754/***/ (function(module, exports, __webpack_require__) {
5755
5756"use strict";
5757
5758
5759Object.defineProperty(exports, "__esModule", {
5760 value: true
5761});
5762exports.default = undefined;
5763
5764var _splitStringTransformer = __webpack_require__(20);
5765
5766var _splitStringTransformer2 = _interopRequireDefault(_splitStringTransformer);
5767
5768function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
5769
5770exports.default = _splitStringTransformer2.default;
5771module.exports = exports['default'];
5772//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9zcGxpdFN0cmluZ1RyYW5zZm9ybWVyL2luZGV4LmpzIl0sIm5hbWVzIjpbImRlZmF1bHQiXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7UUFBT0EsTyIsImZpbGUiOiJpbmRleC5qcyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBkZWZhdWx0IGZyb20gJy4vc3BsaXRTdHJpbmdUcmFuc2Zvcm1lcic7XG4iXX0=
5773
5774/***/ }),
5775/* 6 */
5776/***/ (function(module, exports, __webpack_require__) {
5777
5778"use strict";
5779
5780
5781Object.defineProperty(exports, "__esModule", {
5782 value: true
5783});
5784exports.default = undefined;
5785
5786var _html = __webpack_require__(28);
5787
5788var _html2 = _interopRequireDefault(_html);
5789
5790function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
5791
5792exports.default = _html2.default;
5793module.exports = exports['default'];
5794//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9odG1sL2luZGV4LmpzIl0sIm5hbWVzIjpbImRlZmF1bHQiXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7UUFBT0EsTyIsImZpbGUiOiJpbmRleC5qcyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBkZWZhdWx0IGZyb20gJy4vaHRtbCc7XG4iXX0=
5795
5796/***/ }),
5797/* 7 */
5798/***/ (function(module, exports, __webpack_require__) {
5799
5800"use strict";
5801
5802
5803Object.defineProperty(exports, "__esModule", {
5804 value: true
5805});
5806exports.default = undefined;
5807
5808var _replaceSubstitutionTransformer = __webpack_require__(16);
5809
5810var _replaceSubstitutionTransformer2 = _interopRequireDefault(_replaceSubstitutionTransformer);
5811
5812function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
5813
5814exports.default = _replaceSubstitutionTransformer2.default;
5815module.exports = exports['default'];
5816//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9yZXBsYWNlU3Vic3RpdHV0aW9uVHJhbnNmb3JtZXIvaW5kZXguanMiXSwibmFtZXMiOlsiZGVmYXVsdCJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7OztRQUFPQSxPIiwiZmlsZSI6ImluZGV4LmpzIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGRlZmF1bHQgZnJvbSAnLi9yZXBsYWNlU3Vic3RpdHV0aW9uVHJhbnNmb3JtZXInO1xuIl19
5817
5818/***/ }),
5819/* 8 */
5820/***/ (function(module, exports, __webpack_require__) {
5821
5822"use strict";
5823
5824
5825Object.defineProperty(exports, "__esModule", {
5826 value: true
5827});
5828exports.default = undefined;
5829
5830var _removeNonPrintingValuesTransformer = __webpack_require__(21);
5831
5832var _removeNonPrintingValuesTransformer2 = _interopRequireDefault(_removeNonPrintingValuesTransformer);
5833
5834function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
5835
5836exports.default = _removeNonPrintingValuesTransformer2.default;
5837module.exports = exports['default'];
5838//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9yZW1vdmVOb25QcmludGluZ1ZhbHVlc1RyYW5zZm9ybWVyL2luZGV4LmpzIl0sIm5hbWVzIjpbImRlZmF1bHQiXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7UUFBT0EsTyIsImZpbGUiOiJpbmRleC5qcyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBkZWZhdWx0IGZyb20gJy4vcmVtb3ZlTm9uUHJpbnRpbmdWYWx1ZXNUcmFuc2Zvcm1lcic7XG4iXX0=
5839
5840/***/ }),
5841/* 9 */
5842/***/ (function(module, exports, __webpack_require__) {
5843
5844"use strict";
5845
5846var __makeTemplateObject = (this && this.__makeTemplateObject) || function (cooked, raw) {
5847 if (Object.defineProperty) { Object.defineProperty(cooked, "raw", { value: raw }); } else { cooked.raw = raw; }
5848 return cooked;
5849};
5850var __assign = (this && this.__assign) || function () {
5851 __assign = Object.assign || function(t) {
5852 for (var s, i = 1, n = arguments.length; i < n; i++) {
5853 s = arguments[i];
5854 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
5855 t[p] = s[p];
5856 }
5857 return t;
5858 };
5859 return __assign.apply(this, arguments);
5860};
5861Object.defineProperty(exports, "__esModule", { value: true });
5862var handlebars_1 = __webpack_require__(10);
5863var common_tags_1 = __webpack_require__(11);
5864function blockComment(str) {
5865 if (!str || str === '') {
5866 return '';
5867 }
5868 return new handlebars_1.SafeString([
5869 '\n',
5870 '// ====================================================',
5871 '// ' + common_tags_1.oneLineTrim(templateObject_1 || (templateObject_1 = __makeTemplateObject(["", ""], ["", ""])), str || ''),
5872 '// ====================================================',
5873 '\n'
5874 ].join('\n'));
5875}
5876exports.helpers = {
5877 for: function (from, to, incr, block) {
5878 var accum = '';
5879 for (var i = from; i < to; i += incr) {
5880 accum += block.fn(i);
5881 }
5882 return accum;
5883 },
5884 ifCond: function (v1, operator, v2, options) {
5885 switch (operator) {
5886 case '==':
5887 return v1 === v2 ? options.fn(this) : options.inverse(this);
5888 case '===':
5889 return v1 === v2 ? options.fn(this) : options.inverse(this);
5890 case '!=':
5891 return v1 !== v2 ? options.fn(this) : options.inverse(this);
5892 case '!==':
5893 return v1 !== v2 ? options.fn(this) : options.inverse(this);
5894 case '<':
5895 return v1 < v2 ? options.fn(this) : options.inverse(this);
5896 case '<=':
5897 return v1 <= v2 ? options.fn(this) : options.inverse(this);
5898 case '>':
5899 return v1 > v2 ? options.fn(this) : options.inverse(this);
5900 case '>=':
5901 return v1 >= v2 ? options.fn(this) : options.inverse(this);
5902 case '&&':
5903 return v1 && v2 ? options.fn(this) : options.inverse(this);
5904 case '||':
5905 return v1 || v2 ? options.fn(this) : options.inverse(this);
5906 default:
5907 return options.inverse(this);
5908 }
5909 },
5910 toScalar: function (scalars) { return function (type) {
5911 return scalars[type] || type || '';
5912 }; },
5913 blockCommentIf: function (str, list) {
5914 if (list === void 0) { list = []; }
5915 if (list && list.length > 0) {
5916 return blockComment(str);
5917 }
5918 return '';
5919 },
5920 blockComment: blockComment,
5921 toComment: function (str) {
5922 if (!str || str === '') {
5923 return '';
5924 }
5925 return new handlebars_1.SafeString('/** ' + common_tags_1.oneLineTrim(templateObject_2 || (templateObject_2 = __makeTemplateObject(["", ""], ["", ""])), str || '') + ' */');
5926 },
5927 toLowerCase: function (str) {
5928 return (str || '').toLowerCase();
5929 },
5930 toUpperCase: function (str) {
5931 return (str || '').toUpperCase();
5932 },
5933 stringify: function (obj) {
5934 return new handlebars_1.SafeString(JSON.stringify(obj));
5935 },
5936 times: function (n, block) {
5937 var accum = '';
5938 for (var i = 0; i < n; ++i) {
5939 accum += block.fn(i);
5940 }
5941 return accum;
5942 },
5943 ifDirective: function (context, directiveName, options) {
5944 if (context && context['directives'] && directiveName && typeof directiveName === 'string') {
5945 var directives = context['directives'];
5946 var directiveValue = directives[directiveName];
5947 if (directiveValue) {
5948 return options && options.fn ? options.fn(__assign({}, (directiveValue || {}), context)) : '';
5949 }
5950 else {
5951 return options && options.inverse ? options.inverse(context) : '';
5952 }
5953 }
5954 return options && options.inverse ? options.inverse(context) : '';
5955 },
5956 unlessDirective: function (context, directiveName, options) {
5957 if (context && context['directives'] && directiveName && typeof directiveName === 'string') {
5958 var directives = context['directives'];
5959 var directiveValue = directives[directiveName];
5960 if (!directiveValue) {
5961 return options && options.fn ? options.fn(__assign({}, (directiveValue || {}), context)) : '';
5962 }
5963 else {
5964 return options && options.inverse ? options.inverse(context) : '';
5965 }
5966 }
5967 return options && options.inverse ? options.inverse(context) : '';
5968 }
5969};
5970var templateObject_1, templateObject_2;
5971
5972
5973/***/ }),
5974/* 10 */
5975/***/ (function(module, exports, __webpack_require__) {
5976
5977/**!
5978
5979 @license
5980 handlebars v4.0.12
5981
5982Copyright (C) 2011-2017 by Yehuda Katz
5983
5984Permission is hereby granted, free of charge, to any person obtaining a copy
5985of this software and associated documentation files (the "Software"), to deal
5986in the Software without restriction, including without limitation the rights
5987to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
5988copies of the Software, and to permit persons to whom the Software is
5989furnished to do so, subject to the following conditions:
5990
5991The above copyright notice and this permission notice shall be included in
5992all copies or substantial portions of the Software.
5993
5994THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
5995IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
5996FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
5997AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
5998LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
5999OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
6000THE SOFTWARE.
6001
6002*/
6003(function webpackUniversalModuleDefinition(root, factory) {
6004 if(true)
6005 module.exports = factory();
6006 else {}
6007})(this, function() {
6008return /******/ (function(modules) { // webpackBootstrap
6009/******/ // The module cache
6010/******/ var installedModules = {};
6011
6012/******/ // The require function
6013/******/ function __webpack_require__(moduleId) {
6014
6015/******/ // Check if module is in cache
6016/******/ if(installedModules[moduleId])
6017/******/ return installedModules[moduleId].exports;
6018
6019/******/ // Create a new module (and put it into the cache)
6020/******/ var module = installedModules[moduleId] = {
6021/******/ exports: {},
6022/******/ id: moduleId,
6023/******/ loaded: false
6024/******/ };
6025
6026/******/ // Execute the module function
6027/******/ modules[moduleId].call(module.exports, module, module.exports, __webpack_require__);
6028
6029/******/ // Flag the module as loaded
6030/******/ module.loaded = true;
6031
6032/******/ // Return the exports of the module
6033/******/ return module.exports;
6034/******/ }
6035
6036
6037/******/ // expose the modules object (__webpack_modules__)
6038/******/ __webpack_require__.m = modules;
6039
6040/******/ // expose the module cache
6041/******/ __webpack_require__.c = installedModules;
6042
6043/******/ // __webpack_public_path__
6044/******/ __webpack_require__.p = "";
6045
6046/******/ // Load entry module and return exports
6047/******/ return __webpack_require__(0);
6048/******/ })
6049/************************************************************************/
6050/******/ ([
6051/* 0 */
6052/***/ (function(module, exports, __webpack_require__) {
6053
6054 'use strict';
6055
6056 var _interopRequireDefault = __webpack_require__(1)['default'];
6057
6058 exports.__esModule = true;
6059
6060 var _handlebarsRuntime = __webpack_require__(2);
6061
6062 var _handlebarsRuntime2 = _interopRequireDefault(_handlebarsRuntime);
6063
6064 // Compiler imports
6065
6066 var _handlebarsCompilerAst = __webpack_require__(35);
6067
6068 var _handlebarsCompilerAst2 = _interopRequireDefault(_handlebarsCompilerAst);
6069
6070 var _handlebarsCompilerBase = __webpack_require__(36);
6071
6072 var _handlebarsCompilerCompiler = __webpack_require__(41);
6073
6074 var _handlebarsCompilerJavascriptCompiler = __webpack_require__(42);
6075
6076 var _handlebarsCompilerJavascriptCompiler2 = _interopRequireDefault(_handlebarsCompilerJavascriptCompiler);
6077
6078 var _handlebarsCompilerVisitor = __webpack_require__(39);
6079
6080 var _handlebarsCompilerVisitor2 = _interopRequireDefault(_handlebarsCompilerVisitor);
6081
6082 var _handlebarsNoConflict = __webpack_require__(34);
6083
6084 var _handlebarsNoConflict2 = _interopRequireDefault(_handlebarsNoConflict);
6085
6086 var _create = _handlebarsRuntime2['default'].create;
6087 function create() {
6088 var hb = _create();
6089
6090 hb.compile = function (input, options) {
6091 return _handlebarsCompilerCompiler.compile(input, options, hb);
6092 };
6093 hb.precompile = function (input, options) {
6094 return _handlebarsCompilerCompiler.precompile(input, options, hb);
6095 };
6096
6097 hb.AST = _handlebarsCompilerAst2['default'];
6098 hb.Compiler = _handlebarsCompilerCompiler.Compiler;
6099 hb.JavaScriptCompiler = _handlebarsCompilerJavascriptCompiler2['default'];
6100 hb.Parser = _handlebarsCompilerBase.parser;
6101 hb.parse = _handlebarsCompilerBase.parse;
6102
6103 return hb;
6104 }
6105
6106 var inst = create();
6107 inst.create = create;
6108
6109 _handlebarsNoConflict2['default'](inst);
6110
6111 inst.Visitor = _handlebarsCompilerVisitor2['default'];
6112
6113 inst['default'] = inst;
6114
6115 exports['default'] = inst;
6116 module.exports = exports['default'];
6117
6118/***/ }),
6119/* 1 */
6120/***/ (function(module, exports) {
6121
6122 "use strict";
6123
6124 exports["default"] = function (obj) {
6125 return obj && obj.__esModule ? obj : {
6126 "default": obj
6127 };
6128 };
6129
6130 exports.__esModule = true;
6131
6132/***/ }),
6133/* 2 */
6134/***/ (function(module, exports, __webpack_require__) {
6135
6136 'use strict';
6137
6138 var _interopRequireWildcard = __webpack_require__(3)['default'];
6139
6140 var _interopRequireDefault = __webpack_require__(1)['default'];
6141
6142 exports.__esModule = true;
6143
6144 var _handlebarsBase = __webpack_require__(4);
6145
6146 var base = _interopRequireWildcard(_handlebarsBase);
6147
6148 // Each of these augment the Handlebars object. No need to setup here.
6149 // (This is done to easily share code between commonjs and browse envs)
6150
6151 var _handlebarsSafeString = __webpack_require__(21);
6152
6153 var _handlebarsSafeString2 = _interopRequireDefault(_handlebarsSafeString);
6154
6155 var _handlebarsException = __webpack_require__(6);
6156
6157 var _handlebarsException2 = _interopRequireDefault(_handlebarsException);
6158
6159 var _handlebarsUtils = __webpack_require__(5);
6160
6161 var Utils = _interopRequireWildcard(_handlebarsUtils);
6162
6163 var _handlebarsRuntime = __webpack_require__(22);
6164
6165 var runtime = _interopRequireWildcard(_handlebarsRuntime);
6166
6167 var _handlebarsNoConflict = __webpack_require__(34);
6168
6169 var _handlebarsNoConflict2 = _interopRequireDefault(_handlebarsNoConflict);
6170
6171 // For compatibility and usage outside of module systems, make the Handlebars object a namespace
6172 function create() {
6173 var hb = new base.HandlebarsEnvironment();
6174
6175 Utils.extend(hb, base);
6176 hb.SafeString = _handlebarsSafeString2['default'];
6177 hb.Exception = _handlebarsException2['default'];
6178 hb.Utils = Utils;
6179 hb.escapeExpression = Utils.escapeExpression;
6180
6181 hb.VM = runtime;
6182 hb.template = function (spec) {
6183 return runtime.template(spec, hb);
6184 };
6185
6186 return hb;
6187 }
6188
6189 var inst = create();
6190 inst.create = create;
6191
6192 _handlebarsNoConflict2['default'](inst);
6193
6194 inst['default'] = inst;
6195
6196 exports['default'] = inst;
6197 module.exports = exports['default'];
6198
6199/***/ }),
6200/* 3 */
6201/***/ (function(module, exports) {
6202
6203 "use strict";
6204
6205 exports["default"] = function (obj) {
6206 if (obj && obj.__esModule) {
6207 return obj;
6208 } else {
6209 var newObj = {};
6210
6211 if (obj != null) {
6212 for (var key in obj) {
6213 if (Object.prototype.hasOwnProperty.call(obj, key)) newObj[key] = obj[key];
6214 }
6215 }
6216
6217 newObj["default"] = obj;
6218 return newObj;
6219 }
6220 };
6221
6222 exports.__esModule = true;
6223
6224/***/ }),
6225/* 4 */
6226/***/ (function(module, exports, __webpack_require__) {
6227
6228 'use strict';
6229
6230 var _interopRequireDefault = __webpack_require__(1)['default'];
6231
6232 exports.__esModule = true;
6233 exports.HandlebarsEnvironment = HandlebarsEnvironment;
6234
6235 var _utils = __webpack_require__(5);
6236
6237 var _exception = __webpack_require__(6);
6238
6239 var _exception2 = _interopRequireDefault(_exception);
6240
6241 var _helpers = __webpack_require__(10);
6242
6243 var _decorators = __webpack_require__(18);
6244
6245 var _logger = __webpack_require__(20);
6246
6247 var _logger2 = _interopRequireDefault(_logger);
6248
6249 var VERSION = '4.0.12';
6250 exports.VERSION = VERSION;
6251 var COMPILER_REVISION = 7;
6252
6253 exports.COMPILER_REVISION = COMPILER_REVISION;
6254 var REVISION_CHANGES = {
6255 1: '<= 1.0.rc.2', // 1.0.rc.2 is actually rev2 but doesn't report it
6256 2: '== 1.0.0-rc.3',
6257 3: '== 1.0.0-rc.4',
6258 4: '== 1.x.x',
6259 5: '== 2.0.0-alpha.x',
6260 6: '>= 2.0.0-beta.1',
6261 7: '>= 4.0.0'
6262 };
6263
6264 exports.REVISION_CHANGES = REVISION_CHANGES;
6265 var objectType = '[object Object]';
6266
6267 function HandlebarsEnvironment(helpers, partials, decorators) {
6268 this.helpers = helpers || {};
6269 this.partials = partials || {};
6270 this.decorators = decorators || {};
6271
6272 _helpers.registerDefaultHelpers(this);
6273 _decorators.registerDefaultDecorators(this);
6274 }
6275
6276 HandlebarsEnvironment.prototype = {
6277 constructor: HandlebarsEnvironment,
6278
6279 logger: _logger2['default'],
6280 log: _logger2['default'].log,
6281
6282 registerHelper: function registerHelper(name, fn) {
6283 if (_utils.toString.call(name) === objectType) {
6284 if (fn) {
6285 throw new _exception2['default']('Arg not supported with multiple helpers');
6286 }
6287 _utils.extend(this.helpers, name);
6288 } else {
6289 this.helpers[name] = fn;
6290 }
6291 },
6292 unregisterHelper: function unregisterHelper(name) {
6293 delete this.helpers[name];
6294 },
6295
6296 registerPartial: function registerPartial(name, partial) {
6297 if (_utils.toString.call(name) === objectType) {
6298 _utils.extend(this.partials, name);
6299 } else {
6300 if (typeof partial === 'undefined') {
6301 throw new _exception2['default']('Attempting to register a partial called "' + name + '" as undefined');
6302 }
6303 this.partials[name] = partial;
6304 }
6305 },
6306 unregisterPartial: function unregisterPartial(name) {
6307 delete this.partials[name];
6308 },
6309
6310 registerDecorator: function registerDecorator(name, fn) {
6311 if (_utils.toString.call(name) === objectType) {
6312 if (fn) {
6313 throw new _exception2['default']('Arg not supported with multiple decorators');
6314 }
6315 _utils.extend(this.decorators, name);
6316 } else {
6317 this.decorators[name] = fn;
6318 }
6319 },
6320 unregisterDecorator: function unregisterDecorator(name) {
6321 delete this.decorators[name];
6322 }
6323 };
6324
6325 var log = _logger2['default'].log;
6326
6327 exports.log = log;
6328 exports.createFrame = _utils.createFrame;
6329 exports.logger = _logger2['default'];
6330
6331/***/ }),
6332/* 5 */
6333/***/ (function(module, exports) {
6334
6335 'use strict';
6336
6337 exports.__esModule = true;
6338 exports.extend = extend;
6339 exports.indexOf = indexOf;
6340 exports.escapeExpression = escapeExpression;
6341 exports.isEmpty = isEmpty;
6342 exports.createFrame = createFrame;
6343 exports.blockParams = blockParams;
6344 exports.appendContextPath = appendContextPath;
6345 var escape = {
6346 '&': '&amp;',
6347 '<': '&lt;',
6348 '>': '&gt;',
6349 '"': '&quot;',
6350 "'": '&#x27;',
6351 '`': '&#x60;',
6352 '=': '&#x3D;'
6353 };
6354
6355 var badChars = /[&<>"'`=]/g,
6356 possible = /[&<>"'`=]/;
6357
6358 function escapeChar(chr) {
6359 return escape[chr];
6360 }
6361
6362 function extend(obj /* , ...source */) {
6363 for (var i = 1; i < arguments.length; i++) {
6364 for (var key in arguments[i]) {
6365 if (Object.prototype.hasOwnProperty.call(arguments[i], key)) {
6366 obj[key] = arguments[i][key];
6367 }
6368 }
6369 }
6370
6371 return obj;
6372 }
6373
6374 var toString = Object.prototype.toString;
6375
6376 exports.toString = toString;
6377 // Sourced from lodash
6378 // https://github.com/bestiejs/lodash/blob/master/LICENSE.txt
6379 /* eslint-disable func-style */
6380 var isFunction = function isFunction(value) {
6381 return typeof value === 'function';
6382 };
6383 // fallback for older versions of Chrome and Safari
6384 /* istanbul ignore next */
6385 if (isFunction(/x/)) {
6386 exports.isFunction = isFunction = function (value) {
6387 return typeof value === 'function' && toString.call(value) === '[object Function]';
6388 };
6389 }
6390 exports.isFunction = isFunction;
6391
6392 /* eslint-enable func-style */
6393
6394 /* istanbul ignore next */
6395 var isArray = Array.isArray || function (value) {
6396 return value && typeof value === 'object' ? toString.call(value) === '[object Array]' : false;
6397 };
6398
6399 exports.isArray = isArray;
6400 // Older IE versions do not directly support indexOf so we must implement our own, sadly.
6401
6402 function indexOf(array, value) {
6403 for (var i = 0, len = array.length; i < len; i++) {
6404 if (array[i] === value) {
6405 return i;
6406 }
6407 }
6408 return -1;
6409 }
6410
6411 function escapeExpression(string) {
6412 if (typeof string !== 'string') {
6413 // don't escape SafeStrings, since they're already safe
6414 if (string && string.toHTML) {
6415 return string.toHTML();
6416 } else if (string == null) {
6417 return '';
6418 } else if (!string) {
6419 return string + '';
6420 }
6421
6422 // Force a string conversion as this will be done by the append regardless and
6423 // the regex test will do this transparently behind the scenes, causing issues if
6424 // an object's to string has escaped characters in it.
6425 string = '' + string;
6426 }
6427
6428 if (!possible.test(string)) {
6429 return string;
6430 }
6431 return string.replace(badChars, escapeChar);
6432 }
6433
6434 function isEmpty(value) {
6435 if (!value && value !== 0) {
6436 return true;
6437 } else if (isArray(value) && value.length === 0) {
6438 return true;
6439 } else {
6440 return false;
6441 }
6442 }
6443
6444 function createFrame(object) {
6445 var frame = extend({}, object);
6446 frame._parent = object;
6447 return frame;
6448 }
6449
6450 function blockParams(params, ids) {
6451 params.path = ids;
6452 return params;
6453 }
6454
6455 function appendContextPath(contextPath, id) {
6456 return (contextPath ? contextPath + '.' : '') + id;
6457 }
6458
6459/***/ }),
6460/* 6 */
6461/***/ (function(module, exports, __webpack_require__) {
6462
6463 'use strict';
6464
6465 var _Object$defineProperty = __webpack_require__(7)['default'];
6466
6467 exports.__esModule = true;
6468
6469 var errorProps = ['description', 'fileName', 'lineNumber', 'message', 'name', 'number', 'stack'];
6470
6471 function Exception(message, node) {
6472 var loc = node && node.loc,
6473 line = undefined,
6474 column = undefined;
6475 if (loc) {
6476 line = loc.start.line;
6477 column = loc.start.column;
6478
6479 message += ' - ' + line + ':' + column;
6480 }
6481
6482 var tmp = Error.prototype.constructor.call(this, message);
6483
6484 // Unfortunately errors are not enumerable in Chrome (at least), so `for prop in tmp` doesn't work.
6485 for (var idx = 0; idx < errorProps.length; idx++) {
6486 this[errorProps[idx]] = tmp[errorProps[idx]];
6487 }
6488
6489 /* istanbul ignore else */
6490 if (Error.captureStackTrace) {
6491 Error.captureStackTrace(this, Exception);
6492 }
6493
6494 try {
6495 if (loc) {
6496 this.lineNumber = line;
6497
6498 // Work around issue under safari where we can't directly set the column value
6499 /* istanbul ignore next */
6500 if (_Object$defineProperty) {
6501 Object.defineProperty(this, 'column', {
6502 value: column,
6503 enumerable: true
6504 });
6505 } else {
6506 this.column = column;
6507 }
6508 }
6509 } catch (nop) {
6510 /* Ignore if the browser is very particular */
6511 }
6512 }
6513
6514 Exception.prototype = new Error();
6515
6516 exports['default'] = Exception;
6517 module.exports = exports['default'];
6518
6519/***/ }),
6520/* 7 */
6521/***/ (function(module, exports, __webpack_require__) {
6522
6523 module.exports = { "default": __webpack_require__(8), __esModule: true };
6524
6525/***/ }),
6526/* 8 */
6527/***/ (function(module, exports, __webpack_require__) {
6528
6529 var $ = __webpack_require__(9);
6530 module.exports = function defineProperty(it, key, desc){
6531 return $.setDesc(it, key, desc);
6532 };
6533
6534/***/ }),
6535/* 9 */
6536/***/ (function(module, exports) {
6537
6538 var $Object = Object;
6539 module.exports = {
6540 create: $Object.create,
6541 getProto: $Object.getPrototypeOf,
6542 isEnum: {}.propertyIsEnumerable,
6543 getDesc: $Object.getOwnPropertyDescriptor,
6544 setDesc: $Object.defineProperty,
6545 setDescs: $Object.defineProperties,
6546 getKeys: $Object.keys,
6547 getNames: $Object.getOwnPropertyNames,
6548 getSymbols: $Object.getOwnPropertySymbols,
6549 each: [].forEach
6550 };
6551
6552/***/ }),
6553/* 10 */
6554/***/ (function(module, exports, __webpack_require__) {
6555
6556 'use strict';
6557
6558 var _interopRequireDefault = __webpack_require__(1)['default'];
6559
6560 exports.__esModule = true;
6561 exports.registerDefaultHelpers = registerDefaultHelpers;
6562
6563 var _helpersBlockHelperMissing = __webpack_require__(11);
6564
6565 var _helpersBlockHelperMissing2 = _interopRequireDefault(_helpersBlockHelperMissing);
6566
6567 var _helpersEach = __webpack_require__(12);
6568
6569 var _helpersEach2 = _interopRequireDefault(_helpersEach);
6570
6571 var _helpersHelperMissing = __webpack_require__(13);
6572
6573 var _helpersHelperMissing2 = _interopRequireDefault(_helpersHelperMissing);
6574
6575 var _helpersIf = __webpack_require__(14);
6576
6577 var _helpersIf2 = _interopRequireDefault(_helpersIf);
6578
6579 var _helpersLog = __webpack_require__(15);
6580
6581 var _helpersLog2 = _interopRequireDefault(_helpersLog);
6582
6583 var _helpersLookup = __webpack_require__(16);
6584
6585 var _helpersLookup2 = _interopRequireDefault(_helpersLookup);
6586
6587 var _helpersWith = __webpack_require__(17);
6588
6589 var _helpersWith2 = _interopRequireDefault(_helpersWith);
6590
6591 function registerDefaultHelpers(instance) {
6592 _helpersBlockHelperMissing2['default'](instance);
6593 _helpersEach2['default'](instance);
6594 _helpersHelperMissing2['default'](instance);
6595 _helpersIf2['default'](instance);
6596 _helpersLog2['default'](instance);
6597 _helpersLookup2['default'](instance);
6598 _helpersWith2['default'](instance);
6599 }
6600
6601/***/ }),
6602/* 11 */
6603/***/ (function(module, exports, __webpack_require__) {
6604
6605 'use strict';
6606
6607 exports.__esModule = true;
6608
6609 var _utils = __webpack_require__(5);
6610
6611 exports['default'] = function (instance) {
6612 instance.registerHelper('blockHelperMissing', function (context, options) {
6613 var inverse = options.inverse,
6614 fn = options.fn;
6615
6616 if (context === true) {
6617 return fn(this);
6618 } else if (context === false || context == null) {
6619 return inverse(this);
6620 } else if (_utils.isArray(context)) {
6621 if (context.length > 0) {
6622 if (options.ids) {
6623 options.ids = [options.name];
6624 }
6625
6626 return instance.helpers.each(context, options);
6627 } else {
6628 return inverse(this);
6629 }
6630 } else {
6631 if (options.data && options.ids) {
6632 var data = _utils.createFrame(options.data);
6633 data.contextPath = _utils.appendContextPath(options.data.contextPath, options.name);
6634 options = { data: data };
6635 }
6636
6637 return fn(context, options);
6638 }
6639 });
6640 };
6641
6642 module.exports = exports['default'];
6643
6644/***/ }),
6645/* 12 */
6646/***/ (function(module, exports, __webpack_require__) {
6647
6648 'use strict';
6649
6650 var _interopRequireDefault = __webpack_require__(1)['default'];
6651
6652 exports.__esModule = true;
6653
6654 var _utils = __webpack_require__(5);
6655
6656 var _exception = __webpack_require__(6);
6657
6658 var _exception2 = _interopRequireDefault(_exception);
6659
6660 exports['default'] = function (instance) {
6661 instance.registerHelper('each', function (context, options) {
6662 if (!options) {
6663 throw new _exception2['default']('Must pass iterator to #each');
6664 }
6665
6666 var fn = options.fn,
6667 inverse = options.inverse,
6668 i = 0,
6669 ret = '',
6670 data = undefined,
6671 contextPath = undefined;
6672
6673 if (options.data && options.ids) {
6674 contextPath = _utils.appendContextPath(options.data.contextPath, options.ids[0]) + '.';
6675 }
6676
6677 if (_utils.isFunction(context)) {
6678 context = context.call(this);
6679 }
6680
6681 if (options.data) {
6682 data = _utils.createFrame(options.data);
6683 }
6684
6685 function execIteration(field, index, last) {
6686 if (data) {
6687 data.key = field;
6688 data.index = index;
6689 data.first = index === 0;
6690 data.last = !!last;
6691
6692 if (contextPath) {
6693 data.contextPath = contextPath + field;
6694 }
6695 }
6696
6697 ret = ret + fn(context[field], {
6698 data: data,
6699 blockParams: _utils.blockParams([context[field], field], [contextPath + field, null])
6700 });
6701 }
6702
6703 if (context && typeof context === 'object') {
6704 if (_utils.isArray(context)) {
6705 for (var j = context.length; i < j; i++) {
6706 if (i in context) {
6707 execIteration(i, i, i === context.length - 1);
6708 }
6709 }
6710 } else {
6711 var priorKey = undefined;
6712
6713 for (var key in context) {
6714 if (context.hasOwnProperty(key)) {
6715 // We're running the iterations one step out of sync so we can detect
6716 // the last iteration without have to scan the object twice and create
6717 // an itermediate keys array.
6718 if (priorKey !== undefined) {
6719 execIteration(priorKey, i - 1);
6720 }
6721 priorKey = key;
6722 i++;
6723 }
6724 }
6725 if (priorKey !== undefined) {
6726 execIteration(priorKey, i - 1, true);
6727 }
6728 }
6729 }
6730
6731 if (i === 0) {
6732 ret = inverse(this);
6733 }
6734
6735 return ret;
6736 });
6737 };
6738
6739 module.exports = exports['default'];
6740
6741/***/ }),
6742/* 13 */
6743/***/ (function(module, exports, __webpack_require__) {
6744
6745 'use strict';
6746
6747 var _interopRequireDefault = __webpack_require__(1)['default'];
6748
6749 exports.__esModule = true;
6750
6751 var _exception = __webpack_require__(6);
6752
6753 var _exception2 = _interopRequireDefault(_exception);
6754
6755 exports['default'] = function (instance) {
6756 instance.registerHelper('helperMissing', function () /* [args, ]options */{
6757 if (arguments.length === 1) {
6758 // A missing field in a {{foo}} construct.
6759 return undefined;
6760 } else {
6761 // Someone is actually trying to call something, blow up.
6762 throw new _exception2['default']('Missing helper: "' + arguments[arguments.length - 1].name + '"');
6763 }
6764 });
6765 };
6766
6767 module.exports = exports['default'];
6768
6769/***/ }),
6770/* 14 */
6771/***/ (function(module, exports, __webpack_require__) {
6772
6773 'use strict';
6774
6775 exports.__esModule = true;
6776
6777 var _utils = __webpack_require__(5);
6778
6779 exports['default'] = function (instance) {
6780 instance.registerHelper('if', function (conditional, options) {
6781 if (_utils.isFunction(conditional)) {
6782 conditional = conditional.call(this);
6783 }
6784
6785 // Default behavior is to render the positive path if the value is truthy and not empty.
6786 // The `includeZero` option may be set to treat the condtional as purely not empty based on the
6787 // behavior of isEmpty. Effectively this determines if 0 is handled by the positive path or negative.
6788 if (!options.hash.includeZero && !conditional || _utils.isEmpty(conditional)) {
6789 return options.inverse(this);
6790 } else {
6791 return options.fn(this);
6792 }
6793 });
6794
6795 instance.registerHelper('unless', function (conditional, options) {
6796 return instance.helpers['if'].call(this, conditional, { fn: options.inverse, inverse: options.fn, hash: options.hash });
6797 });
6798 };
6799
6800 module.exports = exports['default'];
6801
6802/***/ }),
6803/* 15 */
6804/***/ (function(module, exports) {
6805
6806 'use strict';
6807
6808 exports.__esModule = true;
6809
6810 exports['default'] = function (instance) {
6811 instance.registerHelper('log', function () /* message, options */{
6812 var args = [undefined],
6813 options = arguments[arguments.length - 1];
6814 for (var i = 0; i < arguments.length - 1; i++) {
6815 args.push(arguments[i]);
6816 }
6817
6818 var level = 1;
6819 if (options.hash.level != null) {
6820 level = options.hash.level;
6821 } else if (options.data && options.data.level != null) {
6822 level = options.data.level;
6823 }
6824 args[0] = level;
6825
6826 instance.log.apply(instance, args);
6827 });
6828 };
6829
6830 module.exports = exports['default'];
6831
6832/***/ }),
6833/* 16 */
6834/***/ (function(module, exports) {
6835
6836 'use strict';
6837
6838 exports.__esModule = true;
6839
6840 exports['default'] = function (instance) {
6841 instance.registerHelper('lookup', function (obj, field) {
6842 return obj && obj[field];
6843 });
6844 };
6845
6846 module.exports = exports['default'];
6847
6848/***/ }),
6849/* 17 */
6850/***/ (function(module, exports, __webpack_require__) {
6851
6852 'use strict';
6853
6854 exports.__esModule = true;
6855
6856 var _utils = __webpack_require__(5);
6857
6858 exports['default'] = function (instance) {
6859 instance.registerHelper('with', function (context, options) {
6860 if (_utils.isFunction(context)) {
6861 context = context.call(this);
6862 }
6863
6864 var fn = options.fn;
6865
6866 if (!_utils.isEmpty(context)) {
6867 var data = options.data;
6868 if (options.data && options.ids) {
6869 data = _utils.createFrame(options.data);
6870 data.contextPath = _utils.appendContextPath(options.data.contextPath, options.ids[0]);
6871 }
6872
6873 return fn(context, {
6874 data: data,
6875 blockParams: _utils.blockParams([context], [data && data.contextPath])
6876 });
6877 } else {
6878 return options.inverse(this);
6879 }
6880 });
6881 };
6882
6883 module.exports = exports['default'];
6884
6885/***/ }),
6886/* 18 */
6887/***/ (function(module, exports, __webpack_require__) {
6888
6889 'use strict';
6890
6891 var _interopRequireDefault = __webpack_require__(1)['default'];
6892
6893 exports.__esModule = true;
6894 exports.registerDefaultDecorators = registerDefaultDecorators;
6895
6896 var _decoratorsInline = __webpack_require__(19);
6897
6898 var _decoratorsInline2 = _interopRequireDefault(_decoratorsInline);
6899
6900 function registerDefaultDecorators(instance) {
6901 _decoratorsInline2['default'](instance);
6902 }
6903
6904/***/ }),
6905/* 19 */
6906/***/ (function(module, exports, __webpack_require__) {
6907
6908 'use strict';
6909
6910 exports.__esModule = true;
6911
6912 var _utils = __webpack_require__(5);
6913
6914 exports['default'] = function (instance) {
6915 instance.registerDecorator('inline', function (fn, props, container, options) {
6916 var ret = fn;
6917 if (!props.partials) {
6918 props.partials = {};
6919 ret = function (context, options) {
6920 // Create a new partials stack frame prior to exec.
6921 var original = container.partials;
6922 container.partials = _utils.extend({}, original, props.partials);
6923 var ret = fn(context, options);
6924 container.partials = original;
6925 return ret;
6926 };
6927 }
6928
6929 props.partials[options.args[0]] = options.fn;
6930
6931 return ret;
6932 });
6933 };
6934
6935 module.exports = exports['default'];
6936
6937/***/ }),
6938/* 20 */
6939/***/ (function(module, exports, __webpack_require__) {
6940
6941 'use strict';
6942
6943 exports.__esModule = true;
6944
6945 var _utils = __webpack_require__(5);
6946
6947 var logger = {
6948 methodMap: ['debug', 'info', 'warn', 'error'],
6949 level: 'info',
6950
6951 // Maps a given level value to the `methodMap` indexes above.
6952 lookupLevel: function lookupLevel(level) {
6953 if (typeof level === 'string') {
6954 var levelMap = _utils.indexOf(logger.methodMap, level.toLowerCase());
6955 if (levelMap >= 0) {
6956 level = levelMap;
6957 } else {
6958 level = parseInt(level, 10);
6959 }
6960 }
6961
6962 return level;
6963 },
6964
6965 // Can be overridden in the host environment
6966 log: function log(level) {
6967 level = logger.lookupLevel(level);
6968
6969 if (typeof console !== 'undefined' && logger.lookupLevel(logger.level) <= level) {
6970 var method = logger.methodMap[level];
6971 if (!console[method]) {
6972 // eslint-disable-line no-console
6973 method = 'log';
6974 }
6975
6976 for (var _len = arguments.length, message = Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {
6977 message[_key - 1] = arguments[_key];
6978 }
6979
6980 console[method].apply(console, message); // eslint-disable-line no-console
6981 }
6982 }
6983 };
6984
6985 exports['default'] = logger;
6986 module.exports = exports['default'];
6987
6988/***/ }),
6989/* 21 */
6990/***/ (function(module, exports) {
6991
6992 // Build out our basic SafeString type
6993 'use strict';
6994
6995 exports.__esModule = true;
6996 function SafeString(string) {
6997 this.string = string;
6998 }
6999
7000 SafeString.prototype.toString = SafeString.prototype.toHTML = function () {
7001 return '' + this.string;
7002 };
7003
7004 exports['default'] = SafeString;
7005 module.exports = exports['default'];
7006
7007/***/ }),
7008/* 22 */
7009/***/ (function(module, exports, __webpack_require__) {
7010
7011 'use strict';
7012
7013 var _Object$seal = __webpack_require__(23)['default'];
7014
7015 var _interopRequireWildcard = __webpack_require__(3)['default'];
7016
7017 var _interopRequireDefault = __webpack_require__(1)['default'];
7018
7019 exports.__esModule = true;
7020 exports.checkRevision = checkRevision;
7021 exports.template = template;
7022 exports.wrapProgram = wrapProgram;
7023 exports.resolvePartial = resolvePartial;
7024 exports.invokePartial = invokePartial;
7025 exports.noop = noop;
7026
7027 var _utils = __webpack_require__(5);
7028
7029 var Utils = _interopRequireWildcard(_utils);
7030
7031 var _exception = __webpack_require__(6);
7032
7033 var _exception2 = _interopRequireDefault(_exception);
7034
7035 var _base = __webpack_require__(4);
7036
7037 function checkRevision(compilerInfo) {
7038 var compilerRevision = compilerInfo && compilerInfo[0] || 1,
7039 currentRevision = _base.COMPILER_REVISION;
7040
7041 if (compilerRevision !== currentRevision) {
7042 if (compilerRevision < currentRevision) {
7043 var runtimeVersions = _base.REVISION_CHANGES[currentRevision],
7044 compilerVersions = _base.REVISION_CHANGES[compilerRevision];
7045 throw new _exception2['default']('Template was precompiled with an older version of Handlebars than the current runtime. ' + 'Please update your precompiler to a newer version (' + runtimeVersions + ') or downgrade your runtime to an older version (' + compilerVersions + ').');
7046 } else {
7047 // Use the embedded version info since the runtime doesn't know about this revision yet
7048 throw new _exception2['default']('Template was precompiled with a newer version of Handlebars than the current runtime. ' + 'Please update your runtime to a newer version (' + compilerInfo[1] + ').');
7049 }
7050 }
7051 }
7052
7053 function template(templateSpec, env) {
7054 /* istanbul ignore next */
7055 if (!env) {
7056 throw new _exception2['default']('No environment passed to template');
7057 }
7058 if (!templateSpec || !templateSpec.main) {
7059 throw new _exception2['default']('Unknown template object: ' + typeof templateSpec);
7060 }
7061
7062 templateSpec.main.decorator = templateSpec.main_d;
7063
7064 // Note: Using env.VM references rather than local var references throughout this section to allow
7065 // for external users to override these as psuedo-supported APIs.
7066 env.VM.checkRevision(templateSpec.compiler);
7067
7068 function invokePartialWrapper(partial, context, options) {
7069 if (options.hash) {
7070 context = Utils.extend({}, context, options.hash);
7071 if (options.ids) {
7072 options.ids[0] = true;
7073 }
7074 }
7075
7076 partial = env.VM.resolvePartial.call(this, partial, context, options);
7077 var result = env.VM.invokePartial.call(this, partial, context, options);
7078
7079 if (result == null && env.compile) {
7080 options.partials[options.name] = env.compile(partial, templateSpec.compilerOptions, env);
7081 result = options.partials[options.name](context, options);
7082 }
7083 if (result != null) {
7084 if (options.indent) {
7085 var lines = result.split('\n');
7086 for (var i = 0, l = lines.length; i < l; i++) {
7087 if (!lines[i] && i + 1 === l) {
7088 break;
7089 }
7090
7091 lines[i] = options.indent + lines[i];
7092 }
7093 result = lines.join('\n');
7094 }
7095 return result;
7096 } else {
7097 throw new _exception2['default']('The partial ' + options.name + ' could not be compiled when running in runtime-only mode');
7098 }
7099 }
7100
7101 // Just add water
7102 var container = {
7103 strict: function strict(obj, name) {
7104 if (!(name in obj)) {
7105 throw new _exception2['default']('"' + name + '" not defined in ' + obj);
7106 }
7107 return obj[name];
7108 },
7109 lookup: function lookup(depths, name) {
7110 var len = depths.length;
7111 for (var i = 0; i < len; i++) {
7112 if (depths[i] && depths[i][name] != null) {
7113 return depths[i][name];
7114 }
7115 }
7116 },
7117 lambda: function lambda(current, context) {
7118 return typeof current === 'function' ? current.call(context) : current;
7119 },
7120
7121 escapeExpression: Utils.escapeExpression,
7122 invokePartial: invokePartialWrapper,
7123
7124 fn: function fn(i) {
7125 var ret = templateSpec[i];
7126 ret.decorator = templateSpec[i + '_d'];
7127 return ret;
7128 },
7129
7130 programs: [],
7131 program: function program(i, data, declaredBlockParams, blockParams, depths) {
7132 var programWrapper = this.programs[i],
7133 fn = this.fn(i);
7134 if (data || depths || blockParams || declaredBlockParams) {
7135 programWrapper = wrapProgram(this, i, fn, data, declaredBlockParams, blockParams, depths);
7136 } else if (!programWrapper) {
7137 programWrapper = this.programs[i] = wrapProgram(this, i, fn);
7138 }
7139 return programWrapper;
7140 },
7141
7142 data: function data(value, depth) {
7143 while (value && depth--) {
7144 value = value._parent;
7145 }
7146 return value;
7147 },
7148 merge: function merge(param, common) {
7149 var obj = param || common;
7150
7151 if (param && common && param !== common) {
7152 obj = Utils.extend({}, common, param);
7153 }
7154
7155 return obj;
7156 },
7157 // An empty object to use as replacement for null-contexts
7158 nullContext: _Object$seal({}),
7159
7160 noop: env.VM.noop,
7161 compilerInfo: templateSpec.compiler
7162 };
7163
7164 function ret(context) {
7165 var options = arguments.length <= 1 || arguments[1] === undefined ? {} : arguments[1];
7166
7167 var data = options.data;
7168
7169 ret._setup(options);
7170 if (!options.partial && templateSpec.useData) {
7171 data = initData(context, data);
7172 }
7173 var depths = undefined,
7174 blockParams = templateSpec.useBlockParams ? [] : undefined;
7175 if (templateSpec.useDepths) {
7176 if (options.depths) {
7177 depths = context != options.depths[0] ? [context].concat(options.depths) : options.depths;
7178 } else {
7179 depths = [context];
7180 }
7181 }
7182
7183 function main(context /*, options*/) {
7184 return '' + templateSpec.main(container, context, container.helpers, container.partials, data, blockParams, depths);
7185 }
7186 main = executeDecorators(templateSpec.main, main, container, options.depths || [], data, blockParams);
7187 return main(context, options);
7188 }
7189 ret.isTop = true;
7190
7191 ret._setup = function (options) {
7192 if (!options.partial) {
7193 container.helpers = container.merge(options.helpers, env.helpers);
7194
7195 if (templateSpec.usePartial) {
7196 container.partials = container.merge(options.partials, env.partials);
7197 }
7198 if (templateSpec.usePartial || templateSpec.useDecorators) {
7199 container.decorators = container.merge(options.decorators, env.decorators);
7200 }
7201 } else {
7202 container.helpers = options.helpers;
7203 container.partials = options.partials;
7204 container.decorators = options.decorators;
7205 }
7206 };
7207
7208 ret._child = function (i, data, blockParams, depths) {
7209 if (templateSpec.useBlockParams && !blockParams) {
7210 throw new _exception2['default']('must pass block params');
7211 }
7212 if (templateSpec.useDepths && !depths) {
7213 throw new _exception2['default']('must pass parent depths');
7214 }
7215
7216 return wrapProgram(container, i, templateSpec[i], data, 0, blockParams, depths);
7217 };
7218 return ret;
7219 }
7220
7221 function wrapProgram(container, i, fn, data, declaredBlockParams, blockParams, depths) {
7222 function prog(context) {
7223 var options = arguments.length <= 1 || arguments[1] === undefined ? {} : arguments[1];
7224
7225 var currentDepths = depths;
7226 if (depths && context != depths[0] && !(context === container.nullContext && depths[0] === null)) {
7227 currentDepths = [context].concat(depths);
7228 }
7229
7230 return fn(container, context, container.helpers, container.partials, options.data || data, blockParams && [options.blockParams].concat(blockParams), currentDepths);
7231 }
7232
7233 prog = executeDecorators(fn, prog, container, depths, data, blockParams);
7234
7235 prog.program = i;
7236 prog.depth = depths ? depths.length : 0;
7237 prog.blockParams = declaredBlockParams || 0;
7238 return prog;
7239 }
7240
7241 function resolvePartial(partial, context, options) {
7242 if (!partial) {
7243 if (options.name === '@partial-block') {
7244 partial = options.data['partial-block'];
7245 } else {
7246 partial = options.partials[options.name];
7247 }
7248 } else if (!partial.call && !options.name) {
7249 // This is a dynamic partial that returned a string
7250 options.name = partial;
7251 partial = options.partials[partial];
7252 }
7253 return partial;
7254 }
7255
7256 function invokePartial(partial, context, options) {
7257 // Use the current closure context to save the partial-block if this partial
7258 var currentPartialBlock = options.data && options.data['partial-block'];
7259 options.partial = true;
7260 if (options.ids) {
7261 options.data.contextPath = options.ids[0] || options.data.contextPath;
7262 }
7263
7264 var partialBlock = undefined;
7265 if (options.fn && options.fn !== noop) {
7266 (function () {
7267 options.data = _base.createFrame(options.data);
7268 // Wrapper function to get access to currentPartialBlock from the closure
7269 var fn = options.fn;
7270 partialBlock = options.data['partial-block'] = function partialBlockWrapper(context) {
7271 var options = arguments.length <= 1 || arguments[1] === undefined ? {} : arguments[1];
7272
7273 // Restore the partial-block from the closure for the execution of the block
7274 // i.e. the part inside the block of the partial call.
7275 options.data = _base.createFrame(options.data);
7276 options.data['partial-block'] = currentPartialBlock;
7277 return fn(context, options);
7278 };
7279 if (fn.partials) {
7280 options.partials = Utils.extend({}, options.partials, fn.partials);
7281 }
7282 })();
7283 }
7284
7285 if (partial === undefined && partialBlock) {
7286 partial = partialBlock;
7287 }
7288
7289 if (partial === undefined) {
7290 throw new _exception2['default']('The partial ' + options.name + ' could not be found');
7291 } else if (partial instanceof Function) {
7292 return partial(context, options);
7293 }
7294 }
7295
7296 function noop() {
7297 return '';
7298 }
7299
7300 function initData(context, data) {
7301 if (!data || !('root' in data)) {
7302 data = data ? _base.createFrame(data) : {};
7303 data.root = context;
7304 }
7305 return data;
7306 }
7307
7308 function executeDecorators(fn, prog, container, depths, data, blockParams) {
7309 if (fn.decorator) {
7310 var props = {};
7311 prog = fn.decorator(prog, props, container, depths && depths[0], data, blockParams, depths);
7312 Utils.extend(prog, props);
7313 }
7314 return prog;
7315 }
7316
7317/***/ }),
7318/* 23 */
7319/***/ (function(module, exports, __webpack_require__) {
7320
7321 module.exports = { "default": __webpack_require__(24), __esModule: true };
7322
7323/***/ }),
7324/* 24 */
7325/***/ (function(module, exports, __webpack_require__) {
7326
7327 __webpack_require__(25);
7328 module.exports = __webpack_require__(30).Object.seal;
7329
7330/***/ }),
7331/* 25 */
7332/***/ (function(module, exports, __webpack_require__) {
7333
7334 // 19.1.2.17 Object.seal(O)
7335 var isObject = __webpack_require__(26);
7336
7337 __webpack_require__(27)('seal', function($seal){
7338 return function seal(it){
7339 return $seal && isObject(it) ? $seal(it) : it;
7340 };
7341 });
7342
7343/***/ }),
7344/* 26 */
7345/***/ (function(module, exports) {
7346
7347 module.exports = function(it){
7348 return typeof it === 'object' ? it !== null : typeof it === 'function';
7349 };
7350
7351/***/ }),
7352/* 27 */
7353/***/ (function(module, exports, __webpack_require__) {
7354
7355 // most Object methods by ES6 should accept primitives
7356 var $export = __webpack_require__(28)
7357 , core = __webpack_require__(30)
7358 , fails = __webpack_require__(33);
7359 module.exports = function(KEY, exec){
7360 var fn = (core.Object || {})[KEY] || Object[KEY]
7361 , exp = {};
7362 exp[KEY] = exec(fn);
7363 $export($export.S + $export.F * fails(function(){ fn(1); }), 'Object', exp);
7364 };
7365
7366/***/ }),
7367/* 28 */
7368/***/ (function(module, exports, __webpack_require__) {
7369
7370 var global = __webpack_require__(29)
7371 , core = __webpack_require__(30)
7372 , ctx = __webpack_require__(31)
7373 , PROTOTYPE = 'prototype';
7374
7375 var $export = function(type, name, source){
7376 var IS_FORCED = type & $export.F
7377 , IS_GLOBAL = type & $export.G
7378 , IS_STATIC = type & $export.S
7379 , IS_PROTO = type & $export.P
7380 , IS_BIND = type & $export.B
7381 , IS_WRAP = type & $export.W
7382 , exports = IS_GLOBAL ? core : core[name] || (core[name] = {})
7383 , target = IS_GLOBAL ? global : IS_STATIC ? global[name] : (global[name] || {})[PROTOTYPE]
7384 , key, own, out;
7385 if(IS_GLOBAL)source = name;
7386 for(key in source){
7387 // contains in native
7388 own = !IS_FORCED && target && key in target;
7389 if(own && key in exports)continue;
7390 // export native or passed
7391 out = own ? target[key] : source[key];
7392 // prevent global pollution for namespaces
7393 exports[key] = IS_GLOBAL && typeof target[key] != 'function' ? source[key]
7394 // bind timers to global for call from export context
7395 : IS_BIND && own ? ctx(out, global)
7396 // wrap global constructors for prevent change them in library
7397 : IS_WRAP && target[key] == out ? (function(C){
7398 var F = function(param){
7399 return this instanceof C ? new C(param) : C(param);
7400 };
7401 F[PROTOTYPE] = C[PROTOTYPE];
7402 return F;
7403 // make static versions for prototype methods
7404 })(out) : IS_PROTO && typeof out == 'function' ? ctx(Function.call, out) : out;
7405 if(IS_PROTO)(exports[PROTOTYPE] || (exports[PROTOTYPE] = {}))[key] = out;
7406 }
7407 };
7408 // type bitmap
7409 $export.F = 1; // forced
7410 $export.G = 2; // global
7411 $export.S = 4; // static
7412 $export.P = 8; // proto
7413 $export.B = 16; // bind
7414 $export.W = 32; // wrap
7415 module.exports = $export;
7416
7417/***/ }),
7418/* 29 */
7419/***/ (function(module, exports) {
7420
7421 // https://github.com/zloirock/core-js/issues/86#issuecomment-115759028
7422 var global = module.exports = typeof window != 'undefined' && window.Math == Math
7423 ? window : typeof self != 'undefined' && self.Math == Math ? self : Function('return this')();
7424 if(typeof __g == 'number')__g = global; // eslint-disable-line no-undef
7425
7426/***/ }),
7427/* 30 */
7428/***/ (function(module, exports) {
7429
7430 var core = module.exports = {version: '1.2.6'};
7431 if(typeof __e == 'number')__e = core; // eslint-disable-line no-undef
7432
7433/***/ }),
7434/* 31 */
7435/***/ (function(module, exports, __webpack_require__) {
7436
7437 // optional / simple context binding
7438 var aFunction = __webpack_require__(32);
7439 module.exports = function(fn, that, length){
7440 aFunction(fn);
7441 if(that === undefined)return fn;
7442 switch(length){
7443 case 1: return function(a){
7444 return fn.call(that, a);
7445 };
7446 case 2: return function(a, b){
7447 return fn.call(that, a, b);
7448 };
7449 case 3: return function(a, b, c){
7450 return fn.call(that, a, b, c);
7451 };
7452 }
7453 return function(/* ...args */){
7454 return fn.apply(that, arguments);
7455 };
7456 };
7457
7458/***/ }),
7459/* 32 */
7460/***/ (function(module, exports) {
7461
7462 module.exports = function(it){
7463 if(typeof it != 'function')throw TypeError(it + ' is not a function!');
7464 return it;
7465 };
7466
7467/***/ }),
7468/* 33 */
7469/***/ (function(module, exports) {
7470
7471 module.exports = function(exec){
7472 try {
7473 return !!exec();
7474 } catch(e){
7475 return true;
7476 }
7477 };
7478
7479/***/ }),
7480/* 34 */
7481/***/ (function(module, exports) {
7482
7483 /* WEBPACK VAR INJECTION */(function(global) {/* global window */
7484 'use strict';
7485
7486 exports.__esModule = true;
7487
7488 exports['default'] = function (Handlebars) {
7489 /* istanbul ignore next */
7490 var root = typeof global !== 'undefined' ? global : window,
7491 $Handlebars = root.Handlebars;
7492 /* istanbul ignore next */
7493 Handlebars.noConflict = function () {
7494 if (root.Handlebars === Handlebars) {
7495 root.Handlebars = $Handlebars;
7496 }
7497 return Handlebars;
7498 };
7499 };
7500
7501 module.exports = exports['default'];
7502 /* WEBPACK VAR INJECTION */}.call(exports, (function() { return this; }())))
7503
7504/***/ }),
7505/* 35 */
7506/***/ (function(module, exports) {
7507
7508 'use strict';
7509
7510 exports.__esModule = true;
7511 var AST = {
7512 // Public API used to evaluate derived attributes regarding AST nodes
7513 helpers: {
7514 // a mustache is definitely a helper if:
7515 // * it is an eligible helper, and
7516 // * it has at least one parameter or hash segment
7517 helperExpression: function helperExpression(node) {
7518 return node.type === 'SubExpression' || (node.type === 'MustacheStatement' || node.type === 'BlockStatement') && !!(node.params && node.params.length || node.hash);
7519 },
7520
7521 scopedId: function scopedId(path) {
7522 return (/^\.|this\b/.test(path.original)
7523 );
7524 },
7525
7526 // an ID is simple if it only has one part, and that part is not
7527 // `..` or `this`.
7528 simpleId: function simpleId(path) {
7529 return path.parts.length === 1 && !AST.helpers.scopedId(path) && !path.depth;
7530 }
7531 }
7532 };
7533
7534 // Must be exported as an object rather than the root of the module as the jison lexer
7535 // must modify the object to operate properly.
7536 exports['default'] = AST;
7537 module.exports = exports['default'];
7538
7539/***/ }),
7540/* 36 */
7541/***/ (function(module, exports, __webpack_require__) {
7542
7543 'use strict';
7544
7545 var _interopRequireDefault = __webpack_require__(1)['default'];
7546
7547 var _interopRequireWildcard = __webpack_require__(3)['default'];
7548
7549 exports.__esModule = true;
7550 exports.parse = parse;
7551
7552 var _parser = __webpack_require__(37);
7553
7554 var _parser2 = _interopRequireDefault(_parser);
7555
7556 var _whitespaceControl = __webpack_require__(38);
7557
7558 var _whitespaceControl2 = _interopRequireDefault(_whitespaceControl);
7559
7560 var _helpers = __webpack_require__(40);
7561
7562 var Helpers = _interopRequireWildcard(_helpers);
7563
7564 var _utils = __webpack_require__(5);
7565
7566 exports.parser = _parser2['default'];
7567
7568 var yy = {};
7569 _utils.extend(yy, Helpers);
7570
7571 function parse(input, options) {
7572 // Just return if an already-compiled AST was passed in.
7573 if (input.type === 'Program') {
7574 return input;
7575 }
7576
7577 _parser2['default'].yy = yy;
7578
7579 // Altering the shared object here, but this is ok as parser is a sync operation
7580 yy.locInfo = function (locInfo) {
7581 return new yy.SourceLocation(options && options.srcName, locInfo);
7582 };
7583
7584 var strip = new _whitespaceControl2['default'](options);
7585 return strip.accept(_parser2['default'].parse(input));
7586 }
7587
7588/***/ }),
7589/* 37 */
7590/***/ (function(module, exports) {
7591
7592 // File ignored in coverage tests via setting in .istanbul.yml
7593 /* Jison generated parser */
7594 "use strict";
7595
7596 exports.__esModule = true;
7597 var handlebars = (function () {
7598 var parser = { trace: function trace() {},
7599 yy: {},
7600 symbols_: { "error": 2, "root": 3, "program": 4, "EOF": 5, "program_repetition0": 6, "statement": 7, "mustache": 8, "block": 9, "rawBlock": 10, "partial": 11, "partialBlock": 12, "content": 13, "COMMENT": 14, "CONTENT": 15, "openRawBlock": 16, "rawBlock_repetition_plus0": 17, "END_RAW_BLOCK": 18, "OPEN_RAW_BLOCK": 19, "helperName": 20, "openRawBlock_repetition0": 21, "openRawBlock_option0": 22, "CLOSE_RAW_BLOCK": 23, "openBlock": 24, "block_option0": 25, "closeBlock": 26, "openInverse": 27, "block_option1": 28, "OPEN_BLOCK": 29, "openBlock_repetition0": 30, "openBlock_option0": 31, "openBlock_option1": 32, "CLOSE": 33, "OPEN_INVERSE": 34, "openInverse_repetition0": 35, "openInverse_option0": 36, "openInverse_option1": 37, "openInverseChain": 38, "OPEN_INVERSE_CHAIN": 39, "openInverseChain_repetition0": 40, "openInverseChain_option0": 41, "openInverseChain_option1": 42, "inverseAndProgram": 43, "INVERSE": 44, "inverseChain": 45, "inverseChain_option0": 46, "OPEN_ENDBLOCK": 47, "OPEN": 48, "mustache_repetition0": 49, "mustache_option0": 50, "OPEN_UNESCAPED": 51, "mustache_repetition1": 52, "mustache_option1": 53, "CLOSE_UNESCAPED": 54, "OPEN_PARTIAL": 55, "partialName": 56, "partial_repetition0": 57, "partial_option0": 58, "openPartialBlock": 59, "OPEN_PARTIAL_BLOCK": 60, "openPartialBlock_repetition0": 61, "openPartialBlock_option0": 62, "param": 63, "sexpr": 64, "OPEN_SEXPR": 65, "sexpr_repetition0": 66, "sexpr_option0": 67, "CLOSE_SEXPR": 68, "hash": 69, "hash_repetition_plus0": 70, "hashSegment": 71, "ID": 72, "EQUALS": 73, "blockParams": 74, "OPEN_BLOCK_PARAMS": 75, "blockParams_repetition_plus0": 76, "CLOSE_BLOCK_PARAMS": 77, "path": 78, "dataName": 79, "STRING": 80, "NUMBER": 81, "BOOLEAN": 82, "UNDEFINED": 83, "NULL": 84, "DATA": 85, "pathSegments": 86, "SEP": 87, "$accept": 0, "$end": 1 },
7601 terminals_: { 2: "error", 5: "EOF", 14: "COMMENT", 15: "CONTENT", 18: "END_RAW_BLOCK", 19: "OPEN_RAW_BLOCK", 23: "CLOSE_RAW_BLOCK", 29: "OPEN_BLOCK", 33: "CLOSE", 34: "OPEN_INVERSE", 39: "OPEN_INVERSE_CHAIN", 44: "INVERSE", 47: "OPEN_ENDBLOCK", 48: "OPEN", 51: "OPEN_UNESCAPED", 54: "CLOSE_UNESCAPED", 55: "OPEN_PARTIAL", 60: "OPEN_PARTIAL_BLOCK", 65: "OPEN_SEXPR", 68: "CLOSE_SEXPR", 72: "ID", 73: "EQUALS", 75: "OPEN_BLOCK_PARAMS", 77: "CLOSE_BLOCK_PARAMS", 80: "STRING", 81: "NUMBER", 82: "BOOLEAN", 83: "UNDEFINED", 84: "NULL", 85: "DATA", 87: "SEP" },
7602 productions_: [0, [3, 2], [4, 1], [7, 1], [7, 1], [7, 1], [7, 1], [7, 1], [7, 1], [7, 1], [13, 1], [10, 3], [16, 5], [9, 4], [9, 4], [24, 6], [27, 6], [38, 6], [43, 2], [45, 3], [45, 1], [26, 3], [8, 5], [8, 5], [11, 5], [12, 3], [59, 5], [63, 1], [63, 1], [64, 5], [69, 1], [71, 3], [74, 3], [20, 1], [20, 1], [20, 1], [20, 1], [20, 1], [20, 1], [20, 1], [56, 1], [56, 1], [79, 2], [78, 1], [86, 3], [86, 1], [6, 0], [6, 2], [17, 1], [17, 2], [21, 0], [21, 2], [22, 0], [22, 1], [25, 0], [25, 1], [28, 0], [28, 1], [30, 0], [30, 2], [31, 0], [31, 1], [32, 0], [32, 1], [35, 0], [35, 2], [36, 0], [36, 1], [37, 0], [37, 1], [40, 0], [40, 2], [41, 0], [41, 1], [42, 0], [42, 1], [46, 0], [46, 1], [49, 0], [49, 2], [50, 0], [50, 1], [52, 0], [52, 2], [53, 0], [53, 1], [57, 0], [57, 2], [58, 0], [58, 1], [61, 0], [61, 2], [62, 0], [62, 1], [66, 0], [66, 2], [67, 0], [67, 1], [70, 1], [70, 2], [76, 1], [76, 2]],
7603 performAction: function anonymous(yytext, yyleng, yylineno, yy, yystate, $$, _$
7604 /*``*/) {
7605
7606 var $0 = $$.length - 1;
7607 switch (yystate) {
7608 case 1:
7609 return $$[$0 - 1];
7610 break;
7611 case 2:
7612 this.$ = yy.prepareProgram($$[$0]);
7613 break;
7614 case 3:
7615 this.$ = $$[$0];
7616 break;
7617 case 4:
7618 this.$ = $$[$0];
7619 break;
7620 case 5:
7621 this.$ = $$[$0];
7622 break;
7623 case 6:
7624 this.$ = $$[$0];
7625 break;
7626 case 7:
7627 this.$ = $$[$0];
7628 break;
7629 case 8:
7630 this.$ = $$[$0];
7631 break;
7632 case 9:
7633 this.$ = {
7634 type: 'CommentStatement',
7635 value: yy.stripComment($$[$0]),
7636 strip: yy.stripFlags($$[$0], $$[$0]),
7637 loc: yy.locInfo(this._$)
7638 };
7639
7640 break;
7641 case 10:
7642 this.$ = {
7643 type: 'ContentStatement',
7644 original: $$[$0],
7645 value: $$[$0],
7646 loc: yy.locInfo(this._$)
7647 };
7648
7649 break;
7650 case 11:
7651 this.$ = yy.prepareRawBlock($$[$0 - 2], $$[$0 - 1], $$[$0], this._$);
7652 break;
7653 case 12:
7654 this.$ = { path: $$[$0 - 3], params: $$[$0 - 2], hash: $$[$0 - 1] };
7655 break;
7656 case 13:
7657 this.$ = yy.prepareBlock($$[$0 - 3], $$[$0 - 2], $$[$0 - 1], $$[$0], false, this._$);
7658 break;
7659 case 14:
7660 this.$ = yy.prepareBlock($$[$0 - 3], $$[$0 - 2], $$[$0 - 1], $$[$0], true, this._$);
7661 break;
7662 case 15:
7663 this.$ = { open: $$[$0 - 5], path: $$[$0 - 4], params: $$[$0 - 3], hash: $$[$0 - 2], blockParams: $$[$0 - 1], strip: yy.stripFlags($$[$0 - 5], $$[$0]) };
7664 break;
7665 case 16:
7666 this.$ = { path: $$[$0 - 4], params: $$[$0 - 3], hash: $$[$0 - 2], blockParams: $$[$0 - 1], strip: yy.stripFlags($$[$0 - 5], $$[$0]) };
7667 break;
7668 case 17:
7669 this.$ = { path: $$[$0 - 4], params: $$[$0 - 3], hash: $$[$0 - 2], blockParams: $$[$0 - 1], strip: yy.stripFlags($$[$0 - 5], $$[$0]) };
7670 break;
7671 case 18:
7672 this.$ = { strip: yy.stripFlags($$[$0 - 1], $$[$0 - 1]), program: $$[$0] };
7673 break;
7674 case 19:
7675 var inverse = yy.prepareBlock($$[$0 - 2], $$[$0 - 1], $$[$0], $$[$0], false, this._$),
7676 program = yy.prepareProgram([inverse], $$[$0 - 1].loc);
7677 program.chained = true;
7678
7679 this.$ = { strip: $$[$0 - 2].strip, program: program, chain: true };
7680
7681 break;
7682 case 20:
7683 this.$ = $$[$0];
7684 break;
7685 case 21:
7686 this.$ = { path: $$[$0 - 1], strip: yy.stripFlags($$[$0 - 2], $$[$0]) };
7687 break;
7688 case 22:
7689 this.$ = yy.prepareMustache($$[$0 - 3], $$[$0 - 2], $$[$0 - 1], $$[$0 - 4], yy.stripFlags($$[$0 - 4], $$[$0]), this._$);
7690 break;
7691 case 23:
7692 this.$ = yy.prepareMustache($$[$0 - 3], $$[$0 - 2], $$[$0 - 1], $$[$0 - 4], yy.stripFlags($$[$0 - 4], $$[$0]), this._$);
7693 break;
7694 case 24:
7695 this.$ = {
7696 type: 'PartialStatement',
7697 name: $$[$0 - 3],
7698 params: $$[$0 - 2],
7699 hash: $$[$0 - 1],
7700 indent: '',
7701 strip: yy.stripFlags($$[$0 - 4], $$[$0]),
7702 loc: yy.locInfo(this._$)
7703 };
7704
7705 break;
7706 case 25:
7707 this.$ = yy.preparePartialBlock($$[$0 - 2], $$[$0 - 1], $$[$0], this._$);
7708 break;
7709 case 26:
7710 this.$ = { path: $$[$0 - 3], params: $$[$0 - 2], hash: $$[$0 - 1], strip: yy.stripFlags($$[$0 - 4], $$[$0]) };
7711 break;
7712 case 27:
7713 this.$ = $$[$0];
7714 break;
7715 case 28:
7716 this.$ = $$[$0];
7717 break;
7718 case 29:
7719 this.$ = {
7720 type: 'SubExpression',
7721 path: $$[$0 - 3],
7722 params: $$[$0 - 2],
7723 hash: $$[$0 - 1],
7724 loc: yy.locInfo(this._$)
7725 };
7726
7727 break;
7728 case 30:
7729 this.$ = { type: 'Hash', pairs: $$[$0], loc: yy.locInfo(this._$) };
7730 break;
7731 case 31:
7732 this.$ = { type: 'HashPair', key: yy.id($$[$0 - 2]), value: $$[$0], loc: yy.locInfo(this._$) };
7733 break;
7734 case 32:
7735 this.$ = yy.id($$[$0 - 1]);
7736 break;
7737 case 33:
7738 this.$ = $$[$0];
7739 break;
7740 case 34:
7741 this.$ = $$[$0];
7742 break;
7743 case 35:
7744 this.$ = { type: 'StringLiteral', value: $$[$0], original: $$[$0], loc: yy.locInfo(this._$) };
7745 break;
7746 case 36:
7747 this.$ = { type: 'NumberLiteral', value: Number($$[$0]), original: Number($$[$0]), loc: yy.locInfo(this._$) };
7748 break;
7749 case 37:
7750 this.$ = { type: 'BooleanLiteral', value: $$[$0] === 'true', original: $$[$0] === 'true', loc: yy.locInfo(this._$) };
7751 break;
7752 case 38:
7753 this.$ = { type: 'UndefinedLiteral', original: undefined, value: undefined, loc: yy.locInfo(this._$) };
7754 break;
7755 case 39:
7756 this.$ = { type: 'NullLiteral', original: null, value: null, loc: yy.locInfo(this._$) };
7757 break;
7758 case 40:
7759 this.$ = $$[$0];
7760 break;
7761 case 41:
7762 this.$ = $$[$0];
7763 break;
7764 case 42:
7765 this.$ = yy.preparePath(true, $$[$0], this._$);
7766 break;
7767 case 43:
7768 this.$ = yy.preparePath(false, $$[$0], this._$);
7769 break;
7770 case 44:
7771 $$[$0 - 2].push({ part: yy.id($$[$0]), original: $$[$0], separator: $$[$0 - 1] });this.$ = $$[$0 - 2];
7772 break;
7773 case 45:
7774 this.$ = [{ part: yy.id($$[$0]), original: $$[$0] }];
7775 break;
7776 case 46:
7777 this.$ = [];
7778 break;
7779 case 47:
7780 $$[$0 - 1].push($$[$0]);
7781 break;
7782 case 48:
7783 this.$ = [$$[$0]];
7784 break;
7785 case 49:
7786 $$[$0 - 1].push($$[$0]);
7787 break;
7788 case 50:
7789 this.$ = [];
7790 break;
7791 case 51:
7792 $$[$0 - 1].push($$[$0]);
7793 break;
7794 case 58:
7795 this.$ = [];
7796 break;
7797 case 59:
7798 $$[$0 - 1].push($$[$0]);
7799 break;
7800 case 64:
7801 this.$ = [];
7802 break;
7803 case 65:
7804 $$[$0 - 1].push($$[$0]);
7805 break;
7806 case 70:
7807 this.$ = [];
7808 break;
7809 case 71:
7810 $$[$0 - 1].push($$[$0]);
7811 break;
7812 case 78:
7813 this.$ = [];
7814 break;
7815 case 79:
7816 $$[$0 - 1].push($$[$0]);
7817 break;
7818 case 82:
7819 this.$ = [];
7820 break;
7821 case 83:
7822 $$[$0 - 1].push($$[$0]);
7823 break;
7824 case 86:
7825 this.$ = [];
7826 break;
7827 case 87:
7828 $$[$0 - 1].push($$[$0]);
7829 break;
7830 case 90:
7831 this.$ = [];
7832 break;
7833 case 91:
7834 $$[$0 - 1].push($$[$0]);
7835 break;
7836 case 94:
7837 this.$ = [];
7838 break;
7839 case 95:
7840 $$[$0 - 1].push($$[$0]);
7841 break;
7842 case 98:
7843 this.$ = [$$[$0]];
7844 break;
7845 case 99:
7846 $$[$0 - 1].push($$[$0]);
7847 break;
7848 case 100:
7849 this.$ = [$$[$0]];
7850 break;
7851 case 101:
7852 $$[$0 - 1].push($$[$0]);
7853 break;
7854 }
7855 },
7856 table: [{ 3: 1, 4: 2, 5: [2, 46], 6: 3, 14: [2, 46], 15: [2, 46], 19: [2, 46], 29: [2, 46], 34: [2, 46], 48: [2, 46], 51: [2, 46], 55: [2, 46], 60: [2, 46] }, { 1: [3] }, { 5: [1, 4] }, { 5: [2, 2], 7: 5, 8: 6, 9: 7, 10: 8, 11: 9, 12: 10, 13: 11, 14: [1, 12], 15: [1, 20], 16: 17, 19: [1, 23], 24: 15, 27: 16, 29: [1, 21], 34: [1, 22], 39: [2, 2], 44: [2, 2], 47: [2, 2], 48: [1, 13], 51: [1, 14], 55: [1, 18], 59: 19, 60: [1, 24] }, { 1: [2, 1] }, { 5: [2, 47], 14: [2, 47], 15: [2, 47], 19: [2, 47], 29: [2, 47], 34: [2, 47], 39: [2, 47], 44: [2, 47], 47: [2, 47], 48: [2, 47], 51: [2, 47], 55: [2, 47], 60: [2, 47] }, { 5: [2, 3], 14: [2, 3], 15: [2, 3], 19: [2, 3], 29: [2, 3], 34: [2, 3], 39: [2, 3], 44: [2, 3], 47: [2, 3], 48: [2, 3], 51: [2, 3], 55: [2, 3], 60: [2, 3] }, { 5: [2, 4], 14: [2, 4], 15: [2, 4], 19: [2, 4], 29: [2, 4], 34: [2, 4], 39: [2, 4], 44: [2, 4], 47: [2, 4], 48: [2, 4], 51: [2, 4], 55: [2, 4], 60: [2, 4] }, { 5: [2, 5], 14: [2, 5], 15: [2, 5], 19: [2, 5], 29: [2, 5], 34: [2, 5], 39: [2, 5], 44: [2, 5], 47: [2, 5], 48: [2, 5], 51: [2, 5], 55: [2, 5], 60: [2, 5] }, { 5: [2, 6], 14: [2, 6], 15: [2, 6], 19: [2, 6], 29: [2, 6], 34: [2, 6], 39: [2, 6], 44: [2, 6], 47: [2, 6], 48: [2, 6], 51: [2, 6], 55: [2, 6], 60: [2, 6] }, { 5: [2, 7], 14: [2, 7], 15: [2, 7], 19: [2, 7], 29: [2, 7], 34: [2, 7], 39: [2, 7], 44: [2, 7], 47: [2, 7], 48: [2, 7], 51: [2, 7], 55: [2, 7], 60: [2, 7] }, { 5: [2, 8], 14: [2, 8], 15: [2, 8], 19: [2, 8], 29: [2, 8], 34: [2, 8], 39: [2, 8], 44: [2, 8], 47: [2, 8], 48: [2, 8], 51: [2, 8], 55: [2, 8], 60: [2, 8] }, { 5: [2, 9], 14: [2, 9], 15: [2, 9], 19: [2, 9], 29: [2, 9], 34: [2, 9], 39: [2, 9], 44: [2, 9], 47: [2, 9], 48: [2, 9], 51: [2, 9], 55: [2, 9], 60: [2, 9] }, { 20: 25, 72: [1, 35], 78: 26, 79: 27, 80: [1, 28], 81: [1, 29], 82: [1, 30], 83: [1, 31], 84: [1, 32], 85: [1, 34], 86: 33 }, { 20: 36, 72: [1, 35], 78: 26, 79: 27, 80: [1, 28], 81: [1, 29], 82: [1, 30], 83: [1, 31], 84: [1, 32], 85: [1, 34], 86: 33 }, { 4: 37, 6: 3, 14: [2, 46], 15: [2, 46], 19: [2, 46], 29: [2, 46], 34: [2, 46], 39: [2, 46], 44: [2, 46], 47: [2, 46], 48: [2, 46], 51: [2, 46], 55: [2, 46], 60: [2, 46] }, { 4: 38, 6: 3, 14: [2, 46], 15: [2, 46], 19: [2, 46], 29: [2, 46], 34: [2, 46], 44: [2, 46], 47: [2, 46], 48: [2, 46], 51: [2, 46], 55: [2, 46], 60: [2, 46] }, { 13: 40, 15: [1, 20], 17: 39 }, { 20: 42, 56: 41, 64: 43, 65: [1, 44], 72: [1, 35], 78: 26, 79: 27, 80: [1, 28], 81: [1, 29], 82: [1, 30], 83: [1, 31], 84: [1, 32], 85: [1, 34], 86: 33 }, { 4: 45, 6: 3, 14: [2, 46], 15: [2, 46], 19: [2, 46], 29: [2, 46], 34: [2, 46], 47: [2, 46], 48: [2, 46], 51: [2, 46], 55: [2, 46], 60: [2, 46] }, { 5: [2, 10], 14: [2, 10], 15: [2, 10], 18: [2, 10], 19: [2, 10], 29: [2, 10], 34: [2, 10], 39: [2, 10], 44: [2, 10], 47: [2, 10], 48: [2, 10], 51: [2, 10], 55: [2, 10], 60: [2, 10] }, { 20: 46, 72: [1, 35], 78: 26, 79: 27, 80: [1, 28], 81: [1, 29], 82: [1, 30], 83: [1, 31], 84: [1, 32], 85: [1, 34], 86: 33 }, { 20: 47, 72: [1, 35], 78: 26, 79: 27, 80: [1, 28], 81: [1, 29], 82: [1, 30], 83: [1, 31], 84: [1, 32], 85: [1, 34], 86: 33 }, { 20: 48, 72: [1, 35], 78: 26, 79: 27, 80: [1, 28], 81: [1, 29], 82: [1, 30], 83: [1, 31], 84: [1, 32], 85: [1, 34], 86: 33 }, { 20: 42, 56: 49, 64: 43, 65: [1, 44], 72: [1, 35], 78: 26, 79: 27, 80: [1, 28], 81: [1, 29], 82: [1, 30], 83: [1, 31], 84: [1, 32], 85: [1, 34], 86: 33 }, { 33: [2, 78], 49: 50, 65: [2, 78], 72: [2, 78], 80: [2, 78], 81: [2, 78], 82: [2, 78], 83: [2, 78], 84: [2, 78], 85: [2, 78] }, { 23: [2, 33], 33: [2, 33], 54: [2, 33], 65: [2, 33], 68: [2, 33], 72: [2, 33], 75: [2, 33], 80: [2, 33], 81: [2, 33], 82: [2, 33], 83: [2, 33], 84: [2, 33], 85: [2, 33] }, { 23: [2, 34], 33: [2, 34], 54: [2, 34], 65: [2, 34], 68: [2, 34], 72: [2, 34], 75: [2, 34], 80: [2, 34], 81: [2, 34], 82: [2, 34], 83: [2, 34], 84: [2, 34], 85: [2, 34] }, { 23: [2, 35], 33: [2, 35], 54: [2, 35], 65: [2, 35], 68: [2, 35], 72: [2, 35], 75: [2, 35], 80: [2, 35], 81: [2, 35], 82: [2, 35], 83: [2, 35], 84: [2, 35], 85: [2, 35] }, { 23: [2, 36], 33: [2, 36], 54: [2, 36], 65: [2, 36], 68: [2, 36], 72: [2, 36], 75: [2, 36], 80: [2, 36], 81: [2, 36], 82: [2, 36], 83: [2, 36], 84: [2, 36], 85: [2, 36] }, { 23: [2, 37], 33: [2, 37], 54: [2, 37], 65: [2, 37], 68: [2, 37], 72: [2, 37], 75: [2, 37], 80: [2, 37], 81: [2, 37], 82: [2, 37], 83: [2, 37], 84: [2, 37], 85: [2, 37] }, { 23: [2, 38], 33: [2, 38], 54: [2, 38], 65: [2, 38], 68: [2, 38], 72: [2, 38], 75: [2, 38], 80: [2, 38], 81: [2, 38], 82: [2, 38], 83: [2, 38], 84: [2, 38], 85: [2, 38] }, { 23: [2, 39], 33: [2, 39], 54: [2, 39], 65: [2, 39], 68: [2, 39], 72: [2, 39], 75: [2, 39], 80: [2, 39], 81: [2, 39], 82: [2, 39], 83: [2, 39], 84: [2, 39], 85: [2, 39] }, { 23: [2, 43], 33: [2, 43], 54: [2, 43], 65: [2, 43], 68: [2, 43], 72: [2, 43], 75: [2, 43], 80: [2, 43], 81: [2, 43], 82: [2, 43], 83: [2, 43], 84: [2, 43], 85: [2, 43], 87: [1, 51] }, { 72: [1, 35], 86: 52 }, { 23: [2, 45], 33: [2, 45], 54: [2, 45], 65: [2, 45], 68: [2, 45], 72: [2, 45], 75: [2, 45], 80: [2, 45], 81: [2, 45], 82: [2, 45], 83: [2, 45], 84: [2, 45], 85: [2, 45], 87: [2, 45] }, { 52: 53, 54: [2, 82], 65: [2, 82], 72: [2, 82], 80: [2, 82], 81: [2, 82], 82: [2, 82], 83: [2, 82], 84: [2, 82], 85: [2, 82] }, { 25: 54, 38: 56, 39: [1, 58], 43: 57, 44: [1, 59], 45: 55, 47: [2, 54] }, { 28: 60, 43: 61, 44: [1, 59], 47: [2, 56] }, { 13: 63, 15: [1, 20], 18: [1, 62] }, { 15: [2, 48], 18: [2, 48] }, { 33: [2, 86], 57: 64, 65: [2, 86], 72: [2, 86], 80: [2, 86], 81: [2, 86], 82: [2, 86], 83: [2, 86], 84: [2, 86], 85: [2, 86] }, { 33: [2, 40], 65: [2, 40], 72: [2, 40], 80: [2, 40], 81: [2, 40], 82: [2, 40], 83: [2, 40], 84: [2, 40], 85: [2, 40] }, { 33: [2, 41], 65: [2, 41], 72: [2, 41], 80: [2, 41], 81: [2, 41], 82: [2, 41], 83: [2, 41], 84: [2, 41], 85: [2, 41] }, { 20: 65, 72: [1, 35], 78: 26, 79: 27, 80: [1, 28], 81: [1, 29], 82: [1, 30], 83: [1, 31], 84: [1, 32], 85: [1, 34], 86: 33 }, { 26: 66, 47: [1, 67] }, { 30: 68, 33: [2, 58], 65: [2, 58], 72: [2, 58], 75: [2, 58], 80: [2, 58], 81: [2, 58], 82: [2, 58], 83: [2, 58], 84: [2, 58], 85: [2, 58] }, { 33: [2, 64], 35: 69, 65: [2, 64], 72: [2, 64], 75: [2, 64], 80: [2, 64], 81: [2, 64], 82: [2, 64], 83: [2, 64], 84: [2, 64], 85: [2, 64] }, { 21: 70, 23: [2, 50], 65: [2, 50], 72: [2, 50], 80: [2, 50], 81: [2, 50], 82: [2, 50], 83: [2, 50], 84: [2, 50], 85: [2, 50] }, { 33: [2, 90], 61: 71, 65: [2, 90], 72: [2, 90], 80: [2, 90], 81: [2, 90], 82: [2, 90], 83: [2, 90], 84: [2, 90], 85: [2, 90] }, { 20: 75, 33: [2, 80], 50: 72, 63: 73, 64: 76, 65: [1, 44], 69: 74, 70: 77, 71: 78, 72: [1, 79], 78: 26, 79: 27, 80: [1, 28], 81: [1, 29], 82: [1, 30], 83: [1, 31], 84: [1, 32], 85: [1, 34], 86: 33 }, { 72: [1, 80] }, { 23: [2, 42], 33: [2, 42], 54: [2, 42], 65: [2, 42], 68: [2, 42], 72: [2, 42], 75: [2, 42], 80: [2, 42], 81: [2, 42], 82: [2, 42], 83: [2, 42], 84: [2, 42], 85: [2, 42], 87: [1, 51] }, { 20: 75, 53: 81, 54: [2, 84], 63: 82, 64: 76, 65: [1, 44], 69: 83, 70: 77, 71: 78, 72: [1, 79], 78: 26, 79: 27, 80: [1, 28], 81: [1, 29], 82: [1, 30], 83: [1, 31], 84: [1, 32], 85: [1, 34], 86: 33 }, { 26: 84, 47: [1, 67] }, { 47: [2, 55] }, { 4: 85, 6: 3, 14: [2, 46], 15: [2, 46], 19: [2, 46], 29: [2, 46], 34: [2, 46], 39: [2, 46], 44: [2, 46], 47: [2, 46], 48: [2, 46], 51: [2, 46], 55: [2, 46], 60: [2, 46] }, { 47: [2, 20] }, { 20: 86, 72: [1, 35], 78: 26, 79: 27, 80: [1, 28], 81: [1, 29], 82: [1, 30], 83: [1, 31], 84: [1, 32], 85: [1, 34], 86: 33 }, { 4: 87, 6: 3, 14: [2, 46], 15: [2, 46], 19: [2, 46], 29: [2, 46], 34: [2, 46], 47: [2, 46], 48: [2, 46], 51: [2, 46], 55: [2, 46], 60: [2, 46] }, { 26: 88, 47: [1, 67] }, { 47: [2, 57] }, { 5: [2, 11], 14: [2, 11], 15: [2, 11], 19: [2, 11], 29: [2, 11], 34: [2, 11], 39: [2, 11], 44: [2, 11], 47: [2, 11], 48: [2, 11], 51: [2, 11], 55: [2, 11], 60: [2, 11] }, { 15: [2, 49], 18: [2, 49] }, { 20: 75, 33: [2, 88], 58: 89, 63: 90, 64: 76, 65: [1, 44], 69: 91, 70: 77, 71: 78, 72: [1, 79], 78: 26, 79: 27, 80: [1, 28], 81: [1, 29], 82: [1, 30], 83: [1, 31], 84: [1, 32], 85: [1, 34], 86: 33 }, { 65: [2, 94], 66: 92, 68: [2, 94], 72: [2, 94], 80: [2, 94], 81: [2, 94], 82: [2, 94], 83: [2, 94], 84: [2, 94], 85: [2, 94] }, { 5: [2, 25], 14: [2, 25], 15: [2, 25], 19: [2, 25], 29: [2, 25], 34: [2, 25], 39: [2, 25], 44: [2, 25], 47: [2, 25], 48: [2, 25], 51: [2, 25], 55: [2, 25], 60: [2, 25] }, { 20: 93, 72: [1, 35], 78: 26, 79: 27, 80: [1, 28], 81: [1, 29], 82: [1, 30], 83: [1, 31], 84: [1, 32], 85: [1, 34], 86: 33 }, { 20: 75, 31: 94, 33: [2, 60], 63: 95, 64: 76, 65: [1, 44], 69: 96, 70: 77, 71: 78, 72: [1, 79], 75: [2, 60], 78: 26, 79: 27, 80: [1, 28], 81: [1, 29], 82: [1, 30], 83: [1, 31], 84: [1, 32], 85: [1, 34], 86: 33 }, { 20: 75, 33: [2, 66], 36: 97, 63: 98, 64: 76, 65: [1, 44], 69: 99, 70: 77, 71: 78, 72: [1, 79], 75: [2, 66], 78: 26, 79: 27, 80: [1, 28], 81: [1, 29], 82: [1, 30], 83: [1, 31], 84: [1, 32], 85: [1, 34], 86: 33 }, { 20: 75, 22: 100, 23: [2, 52], 63: 101, 64: 76, 65: [1, 44], 69: 102, 70: 77, 71: 78, 72: [1, 79], 78: 26, 79: 27, 80: [1, 28], 81: [1, 29], 82: [1, 30], 83: [1, 31], 84: [1, 32], 85: [1, 34], 86: 33 }, { 20: 75, 33: [2, 92], 62: 103, 63: 104, 64: 76, 65: [1, 44], 69: 105, 70: 77, 71: 78, 72: [1, 79], 78: 26, 79: 27, 80: [1, 28], 81: [1, 29], 82: [1, 30], 83: [1, 31], 84: [1, 32], 85: [1, 34], 86: 33 }, { 33: [1, 106] }, { 33: [2, 79], 65: [2, 79], 72: [2, 79], 80: [2, 79], 81: [2, 79], 82: [2, 79], 83: [2, 79], 84: [2, 79], 85: [2, 79] }, { 33: [2, 81] }, { 23: [2, 27], 33: [2, 27], 54: [2, 27], 65: [2, 27], 68: [2, 27], 72: [2, 27], 75: [2, 27], 80: [2, 27], 81: [2, 27], 82: [2, 27], 83: [2, 27], 84: [2, 27], 85: [2, 27] }, { 23: [2, 28], 33: [2, 28], 54: [2, 28], 65: [2, 28], 68: [2, 28], 72: [2, 28], 75: [2, 28], 80: [2, 28], 81: [2, 28], 82: [2, 28], 83: [2, 28], 84: [2, 28], 85: [2, 28] }, { 23: [2, 30], 33: [2, 30], 54: [2, 30], 68: [2, 30], 71: 107, 72: [1, 108], 75: [2, 30] }, { 23: [2, 98], 33: [2, 98], 54: [2, 98], 68: [2, 98], 72: [2, 98], 75: [2, 98] }, { 23: [2, 45], 33: [2, 45], 54: [2, 45], 65: [2, 45], 68: [2, 45], 72: [2, 45], 73: [1, 109], 75: [2, 45], 80: [2, 45], 81: [2, 45], 82: [2, 45], 83: [2, 45], 84: [2, 45], 85: [2, 45], 87: [2, 45] }, { 23: [2, 44], 33: [2, 44], 54: [2, 44], 65: [2, 44], 68: [2, 44], 72: [2, 44], 75: [2, 44], 80: [2, 44], 81: [2, 44], 82: [2, 44], 83: [2, 44], 84: [2, 44], 85: [2, 44], 87: [2, 44] }, { 54: [1, 110] }, { 54: [2, 83], 65: [2, 83], 72: [2, 83], 80: [2, 83], 81: [2, 83], 82: [2, 83], 83: [2, 83], 84: [2, 83], 85: [2, 83] }, { 54: [2, 85] }, { 5: [2, 13], 14: [2, 13], 15: [2, 13], 19: [2, 13], 29: [2, 13], 34: [2, 13], 39: [2, 13], 44: [2, 13], 47: [2, 13], 48: [2, 13], 51: [2, 13], 55: [2, 13], 60: [2, 13] }, { 38: 56, 39: [1, 58], 43: 57, 44: [1, 59], 45: 112, 46: 111, 47: [2, 76] }, { 33: [2, 70], 40: 113, 65: [2, 70], 72: [2, 70], 75: [2, 70], 80: [2, 70], 81: [2, 70], 82: [2, 70], 83: [2, 70], 84: [2, 70], 85: [2, 70] }, { 47: [2, 18] }, { 5: [2, 14], 14: [2, 14], 15: [2, 14], 19: [2, 14], 29: [2, 14], 34: [2, 14], 39: [2, 14], 44: [2, 14], 47: [2, 14], 48: [2, 14], 51: [2, 14], 55: [2, 14], 60: [2, 14] }, { 33: [1, 114] }, { 33: [2, 87], 65: [2, 87], 72: [2, 87], 80: [2, 87], 81: [2, 87], 82: [2, 87], 83: [2, 87], 84: [2, 87], 85: [2, 87] }, { 33: [2, 89] }, { 20: 75, 63: 116, 64: 76, 65: [1, 44], 67: 115, 68: [2, 96], 69: 117, 70: 77, 71: 78, 72: [1, 79], 78: 26, 79: 27, 80: [1, 28], 81: [1, 29], 82: [1, 30], 83: [1, 31], 84: [1, 32], 85: [1, 34], 86: 33 }, { 33: [1, 118] }, { 32: 119, 33: [2, 62], 74: 120, 75: [1, 121] }, { 33: [2, 59], 65: [2, 59], 72: [2, 59], 75: [2, 59], 80: [2, 59], 81: [2, 59], 82: [2, 59], 83: [2, 59], 84: [2, 59], 85: [2, 59] }, { 33: [2, 61], 75: [2, 61] }, { 33: [2, 68], 37: 122, 74: 123, 75: [1, 121] }, { 33: [2, 65], 65: [2, 65], 72: [2, 65], 75: [2, 65], 80: [2, 65], 81: [2, 65], 82: [2, 65], 83: [2, 65], 84: [2, 65], 85: [2, 65] }, { 33: [2, 67], 75: [2, 67] }, { 23: [1, 124] }, { 23: [2, 51], 65: [2, 51], 72: [2, 51], 80: [2, 51], 81: [2, 51], 82: [2, 51], 83: [2, 51], 84: [2, 51], 85: [2, 51] }, { 23: [2, 53] }, { 33: [1, 125] }, { 33: [2, 91], 65: [2, 91], 72: [2, 91], 80: [2, 91], 81: [2, 91], 82: [2, 91], 83: [2, 91], 84: [2, 91], 85: [2, 91] }, { 33: [2, 93] }, { 5: [2, 22], 14: [2, 22], 15: [2, 22], 19: [2, 22], 29: [2, 22], 34: [2, 22], 39: [2, 22], 44: [2, 22], 47: [2, 22], 48: [2, 22], 51: [2, 22], 55: [2, 22], 60: [2, 22] }, { 23: [2, 99], 33: [2, 99], 54: [2, 99], 68: [2, 99], 72: [2, 99], 75: [2, 99] }, { 73: [1, 109] }, { 20: 75, 63: 126, 64: 76, 65: [1, 44], 72: [1, 35], 78: 26, 79: 27, 80: [1, 28], 81: [1, 29], 82: [1, 30], 83: [1, 31], 84: [1, 32], 85: [1, 34], 86: 33 }, { 5: [2, 23], 14: [2, 23], 15: [2, 23], 19: [2, 23], 29: [2, 23], 34: [2, 23], 39: [2, 23], 44: [2, 23], 47: [2, 23], 48: [2, 23], 51: [2, 23], 55: [2, 23], 60: [2, 23] }, { 47: [2, 19] }, { 47: [2, 77] }, { 20: 75, 33: [2, 72], 41: 127, 63: 128, 64: 76, 65: [1, 44], 69: 129, 70: 77, 71: 78, 72: [1, 79], 75: [2, 72], 78: 26, 79: 27, 80: [1, 28], 81: [1, 29], 82: [1, 30], 83: [1, 31], 84: [1, 32], 85: [1, 34], 86: 33 }, { 5: [2, 24], 14: [2, 24], 15: [2, 24], 19: [2, 24], 29: [2, 24], 34: [2, 24], 39: [2, 24], 44: [2, 24], 47: [2, 24], 48: [2, 24], 51: [2, 24], 55: [2, 24], 60: [2, 24] }, { 68: [1, 130] }, { 65: [2, 95], 68: [2, 95], 72: [2, 95], 80: [2, 95], 81: [2, 95], 82: [2, 95], 83: [2, 95], 84: [2, 95], 85: [2, 95] }, { 68: [2, 97] }, { 5: [2, 21], 14: [2, 21], 15: [2, 21], 19: [2, 21], 29: [2, 21], 34: [2, 21], 39: [2, 21], 44: [2, 21], 47: [2, 21], 48: [2, 21], 51: [2, 21], 55: [2, 21], 60: [2, 21] }, { 33: [1, 131] }, { 33: [2, 63] }, { 72: [1, 133], 76: 132 }, { 33: [1, 134] }, { 33: [2, 69] }, { 15: [2, 12] }, { 14: [2, 26], 15: [2, 26], 19: [2, 26], 29: [2, 26], 34: [2, 26], 47: [2, 26], 48: [2, 26], 51: [2, 26], 55: [2, 26], 60: [2, 26] }, { 23: [2, 31], 33: [2, 31], 54: [2, 31], 68: [2, 31], 72: [2, 31], 75: [2, 31] }, { 33: [2, 74], 42: 135, 74: 136, 75: [1, 121] }, { 33: [2, 71], 65: [2, 71], 72: [2, 71], 75: [2, 71], 80: [2, 71], 81: [2, 71], 82: [2, 71], 83: [2, 71], 84: [2, 71], 85: [2, 71] }, { 33: [2, 73], 75: [2, 73] }, { 23: [2, 29], 33: [2, 29], 54: [2, 29], 65: [2, 29], 68: [2, 29], 72: [2, 29], 75: [2, 29], 80: [2, 29], 81: [2, 29], 82: [2, 29], 83: [2, 29], 84: [2, 29], 85: [2, 29] }, { 14: [2, 15], 15: [2, 15], 19: [2, 15], 29: [2, 15], 34: [2, 15], 39: [2, 15], 44: [2, 15], 47: [2, 15], 48: [2, 15], 51: [2, 15], 55: [2, 15], 60: [2, 15] }, { 72: [1, 138], 77: [1, 137] }, { 72: [2, 100], 77: [2, 100] }, { 14: [2, 16], 15: [2, 16], 19: [2, 16], 29: [2, 16], 34: [2, 16], 44: [2, 16], 47: [2, 16], 48: [2, 16], 51: [2, 16], 55: [2, 16], 60: [2, 16] }, { 33: [1, 139] }, { 33: [2, 75] }, { 33: [2, 32] }, { 72: [2, 101], 77: [2, 101] }, { 14: [2, 17], 15: [2, 17], 19: [2, 17], 29: [2, 17], 34: [2, 17], 39: [2, 17], 44: [2, 17], 47: [2, 17], 48: [2, 17], 51: [2, 17], 55: [2, 17], 60: [2, 17] }],
7857 defaultActions: { 4: [2, 1], 55: [2, 55], 57: [2, 20], 61: [2, 57], 74: [2, 81], 83: [2, 85], 87: [2, 18], 91: [2, 89], 102: [2, 53], 105: [2, 93], 111: [2, 19], 112: [2, 77], 117: [2, 97], 120: [2, 63], 123: [2, 69], 124: [2, 12], 136: [2, 75], 137: [2, 32] },
7858 parseError: function parseError(str, hash) {
7859 throw new Error(str);
7860 },
7861 parse: function parse(input) {
7862 var self = this,
7863 stack = [0],
7864 vstack = [null],
7865 lstack = [],
7866 table = this.table,
7867 yytext = "",
7868 yylineno = 0,
7869 yyleng = 0,
7870 recovering = 0,
7871 TERROR = 2,
7872 EOF = 1;
7873 this.lexer.setInput(input);
7874 this.lexer.yy = this.yy;
7875 this.yy.lexer = this.lexer;
7876 this.yy.parser = this;
7877 if (typeof this.lexer.yylloc == "undefined") this.lexer.yylloc = {};
7878 var yyloc = this.lexer.yylloc;
7879 lstack.push(yyloc);
7880 var ranges = this.lexer.options && this.lexer.options.ranges;
7881 if (typeof this.yy.parseError === "function") this.parseError = this.yy.parseError;
7882 function popStack(n) {
7883 stack.length = stack.length - 2 * n;
7884 vstack.length = vstack.length - n;
7885 lstack.length = lstack.length - n;
7886 }
7887 function lex() {
7888 var token;
7889 token = self.lexer.lex() || 1;
7890 if (typeof token !== "number") {
7891 token = self.symbols_[token] || token;
7892 }
7893 return token;
7894 }
7895 var symbol,
7896 preErrorSymbol,
7897 state,
7898 action,
7899 a,
7900 r,
7901 yyval = {},
7902 p,
7903 len,
7904 newState,
7905 expected;
7906 while (true) {
7907 state = stack[stack.length - 1];
7908 if (this.defaultActions[state]) {
7909 action = this.defaultActions[state];
7910 } else {
7911 if (symbol === null || typeof symbol == "undefined") {
7912 symbol = lex();
7913 }
7914 action = table[state] && table[state][symbol];
7915 }
7916 if (typeof action === "undefined" || !action.length || !action[0]) {
7917 var errStr = "";
7918 if (!recovering) {
7919 expected = [];
7920 for (p in table[state]) if (this.terminals_[p] && p > 2) {
7921 expected.push("'" + this.terminals_[p] + "'");
7922 }
7923 if (this.lexer.showPosition) {
7924 errStr = "Parse error on line " + (yylineno + 1) + ":\n" + this.lexer.showPosition() + "\nExpecting " + expected.join(", ") + ", got '" + (this.terminals_[symbol] || symbol) + "'";
7925 } else {
7926 errStr = "Parse error on line " + (yylineno + 1) + ": Unexpected " + (symbol == 1 ? "end of input" : "'" + (this.terminals_[symbol] || symbol) + "'");
7927 }
7928 this.parseError(errStr, { text: this.lexer.match, token: this.terminals_[symbol] || symbol, line: this.lexer.yylineno, loc: yyloc, expected: expected });
7929 }
7930 }
7931 if (action[0] instanceof Array && action.length > 1) {
7932 throw new Error("Parse Error: multiple actions possible at state: " + state + ", token: " + symbol);
7933 }
7934 switch (action[0]) {
7935 case 1:
7936 stack.push(symbol);
7937 vstack.push(this.lexer.yytext);
7938 lstack.push(this.lexer.yylloc);
7939 stack.push(action[1]);
7940 symbol = null;
7941 if (!preErrorSymbol) {
7942 yyleng = this.lexer.yyleng;
7943 yytext = this.lexer.yytext;
7944 yylineno = this.lexer.yylineno;
7945 yyloc = this.lexer.yylloc;
7946 if (recovering > 0) recovering--;
7947 } else {
7948 symbol = preErrorSymbol;
7949 preErrorSymbol = null;
7950 }
7951 break;
7952 case 2:
7953 len = this.productions_[action[1]][1];
7954 yyval.$ = vstack[vstack.length - len];
7955 yyval._$ = { first_line: lstack[lstack.length - (len || 1)].first_line, last_line: lstack[lstack.length - 1].last_line, first_column: lstack[lstack.length - (len || 1)].first_column, last_column: lstack[lstack.length - 1].last_column };
7956 if (ranges) {
7957 yyval._$.range = [lstack[lstack.length - (len || 1)].range[0], lstack[lstack.length - 1].range[1]];
7958 }
7959 r = this.performAction.call(yyval, yytext, yyleng, yylineno, this.yy, action[1], vstack, lstack);
7960 if (typeof r !== "undefined") {
7961 return r;
7962 }
7963 if (len) {
7964 stack = stack.slice(0, -1 * len * 2);
7965 vstack = vstack.slice(0, -1 * len);
7966 lstack = lstack.slice(0, -1 * len);
7967 }
7968 stack.push(this.productions_[action[1]][0]);
7969 vstack.push(yyval.$);
7970 lstack.push(yyval._$);
7971 newState = table[stack[stack.length - 2]][stack[stack.length - 1]];
7972 stack.push(newState);
7973 break;
7974 case 3:
7975 return true;
7976 }
7977 }
7978 return true;
7979 }
7980 };
7981 /* Jison generated lexer */
7982 var lexer = (function () {
7983 var lexer = { EOF: 1,
7984 parseError: function parseError(str, hash) {
7985 if (this.yy.parser) {
7986 this.yy.parser.parseError(str, hash);
7987 } else {
7988 throw new Error(str);
7989 }
7990 },
7991 setInput: function setInput(input) {
7992 this._input = input;
7993 this._more = this._less = this.done = false;
7994 this.yylineno = this.yyleng = 0;
7995 this.yytext = this.matched = this.match = '';
7996 this.conditionStack = ['INITIAL'];
7997 this.yylloc = { first_line: 1, first_column: 0, last_line: 1, last_column: 0 };
7998 if (this.options.ranges) this.yylloc.range = [0, 0];
7999 this.offset = 0;
8000 return this;
8001 },
8002 input: function input() {
8003 var ch = this._input[0];
8004 this.yytext += ch;
8005 this.yyleng++;
8006 this.offset++;
8007 this.match += ch;
8008 this.matched += ch;
8009 var lines = ch.match(/(?:\r\n?|\n).*/g);
8010 if (lines) {
8011 this.yylineno++;
8012 this.yylloc.last_line++;
8013 } else {
8014 this.yylloc.last_column++;
8015 }
8016 if (this.options.ranges) this.yylloc.range[1]++;
8017
8018 this._input = this._input.slice(1);
8019 return ch;
8020 },
8021 unput: function unput(ch) {
8022 var len = ch.length;
8023 var lines = ch.split(/(?:\r\n?|\n)/g);
8024
8025 this._input = ch + this._input;
8026 this.yytext = this.yytext.substr(0, this.yytext.length - len - 1);
8027 //this.yyleng -= len;
8028 this.offset -= len;
8029 var oldLines = this.match.split(/(?:\r\n?|\n)/g);
8030 this.match = this.match.substr(0, this.match.length - 1);
8031 this.matched = this.matched.substr(0, this.matched.length - 1);
8032
8033 if (lines.length - 1) this.yylineno -= lines.length - 1;
8034 var r = this.yylloc.range;
8035
8036 this.yylloc = { first_line: this.yylloc.first_line,
8037 last_line: this.yylineno + 1,
8038 first_column: this.yylloc.first_column,
8039 last_column: lines ? (lines.length === oldLines.length ? this.yylloc.first_column : 0) + oldLines[oldLines.length - lines.length].length - lines[0].length : this.yylloc.first_column - len
8040 };
8041
8042 if (this.options.ranges) {
8043 this.yylloc.range = [r[0], r[0] + this.yyleng - len];
8044 }
8045 return this;
8046 },
8047 more: function more() {
8048 this._more = true;
8049 return this;
8050 },
8051 less: function less(n) {
8052 this.unput(this.match.slice(n));
8053 },
8054 pastInput: function pastInput() {
8055 var past = this.matched.substr(0, this.matched.length - this.match.length);
8056 return (past.length > 20 ? '...' : '') + past.substr(-20).replace(/\n/g, "");
8057 },
8058 upcomingInput: function upcomingInput() {
8059 var next = this.match;
8060 if (next.length < 20) {
8061 next += this._input.substr(0, 20 - next.length);
8062 }
8063 return (next.substr(0, 20) + (next.length > 20 ? '...' : '')).replace(/\n/g, "");
8064 },
8065 showPosition: function showPosition() {
8066 var pre = this.pastInput();
8067 var c = new Array(pre.length + 1).join("-");
8068 return pre + this.upcomingInput() + "\n" + c + "^";
8069 },
8070 next: function next() {
8071 if (this.done) {
8072 return this.EOF;
8073 }
8074 if (!this._input) this.done = true;
8075
8076 var token, match, tempMatch, index, col, lines;
8077 if (!this._more) {
8078 this.yytext = '';
8079 this.match = '';
8080 }
8081 var rules = this._currentRules();
8082 for (var i = 0; i < rules.length; i++) {
8083 tempMatch = this._input.match(this.rules[rules[i]]);
8084 if (tempMatch && (!match || tempMatch[0].length > match[0].length)) {
8085 match = tempMatch;
8086 index = i;
8087 if (!this.options.flex) break;
8088 }
8089 }
8090 if (match) {
8091 lines = match[0].match(/(?:\r\n?|\n).*/g);
8092 if (lines) this.yylineno += lines.length;
8093 this.yylloc = { first_line: this.yylloc.last_line,
8094 last_line: this.yylineno + 1,
8095 first_column: this.yylloc.last_column,
8096 last_column: lines ? lines[lines.length - 1].length - lines[lines.length - 1].match(/\r?\n?/)[0].length : this.yylloc.last_column + match[0].length };
8097 this.yytext += match[0];
8098 this.match += match[0];
8099 this.matches = match;
8100 this.yyleng = this.yytext.length;
8101 if (this.options.ranges) {
8102 this.yylloc.range = [this.offset, this.offset += this.yyleng];
8103 }
8104 this._more = false;
8105 this._input = this._input.slice(match[0].length);
8106 this.matched += match[0];
8107 token = this.performAction.call(this, this.yy, this, rules[index], this.conditionStack[this.conditionStack.length - 1]);
8108 if (this.done && this._input) this.done = false;
8109 if (token) return token;else return;
8110 }
8111 if (this._input === "") {
8112 return this.EOF;
8113 } else {
8114 return this.parseError('Lexical error on line ' + (this.yylineno + 1) + '. Unrecognized text.\n' + this.showPosition(), { text: "", token: null, line: this.yylineno });
8115 }
8116 },
8117 lex: function lex() {
8118 var r = this.next();
8119 if (typeof r !== 'undefined') {
8120 return r;
8121 } else {
8122 return this.lex();
8123 }
8124 },
8125 begin: function begin(condition) {
8126 this.conditionStack.push(condition);
8127 },
8128 popState: function popState() {
8129 return this.conditionStack.pop();
8130 },
8131 _currentRules: function _currentRules() {
8132 return this.conditions[this.conditionStack[this.conditionStack.length - 1]].rules;
8133 },
8134 topState: function topState() {
8135 return this.conditionStack[this.conditionStack.length - 2];
8136 },
8137 pushState: function begin(condition) {
8138 this.begin(condition);
8139 } };
8140 lexer.options = {};
8141 lexer.performAction = function anonymous(yy, yy_, $avoiding_name_collisions, YY_START
8142 /*``*/) {
8143
8144 function strip(start, end) {
8145 return yy_.yytext = yy_.yytext.substr(start, yy_.yyleng - end);
8146 }
8147
8148 var YYSTATE = YY_START;
8149 switch ($avoiding_name_collisions) {
8150 case 0:
8151 if (yy_.yytext.slice(-2) === "\\\\") {
8152 strip(0, 1);
8153 this.begin("mu");
8154 } else if (yy_.yytext.slice(-1) === "\\") {
8155 strip(0, 1);
8156 this.begin("emu");
8157 } else {
8158 this.begin("mu");
8159 }
8160 if (yy_.yytext) return 15;
8161
8162 break;
8163 case 1:
8164 return 15;
8165 break;
8166 case 2:
8167 this.popState();
8168 return 15;
8169
8170 break;
8171 case 3:
8172 this.begin('raw');return 15;
8173 break;
8174 case 4:
8175 this.popState();
8176 // Should be using `this.topState()` below, but it currently
8177 // returns the second top instead of the first top. Opened an
8178 // issue about it at https://github.com/zaach/jison/issues/291
8179 if (this.conditionStack[this.conditionStack.length - 1] === 'raw') {
8180 return 15;
8181 } else {
8182 yy_.yytext = yy_.yytext.substr(5, yy_.yyleng - 9);
8183 return 'END_RAW_BLOCK';
8184 }
8185
8186 break;
8187 case 5:
8188 return 15;
8189 break;
8190 case 6:
8191 this.popState();
8192 return 14;
8193
8194 break;
8195 case 7:
8196 return 65;
8197 break;
8198 case 8:
8199 return 68;
8200 break;
8201 case 9:
8202 return 19;
8203 break;
8204 case 10:
8205 this.popState();
8206 this.begin('raw');
8207 return 23;
8208
8209 break;
8210 case 11:
8211 return 55;
8212 break;
8213 case 12:
8214 return 60;
8215 break;
8216 case 13:
8217 return 29;
8218 break;
8219 case 14:
8220 return 47;
8221 break;
8222 case 15:
8223 this.popState();return 44;
8224 break;
8225 case 16:
8226 this.popState();return 44;
8227 break;
8228 case 17:
8229 return 34;
8230 break;
8231 case 18:
8232 return 39;
8233 break;
8234 case 19:
8235 return 51;
8236 break;
8237 case 20:
8238 return 48;
8239 break;
8240 case 21:
8241 this.unput(yy_.yytext);
8242 this.popState();
8243 this.begin('com');
8244
8245 break;
8246 case 22:
8247 this.popState();
8248 return 14;
8249
8250 break;
8251 case 23:
8252 return 48;
8253 break;
8254 case 24:
8255 return 73;
8256 break;
8257 case 25:
8258 return 72;
8259 break;
8260 case 26:
8261 return 72;
8262 break;
8263 case 27:
8264 return 87;
8265 break;
8266 case 28:
8267 // ignore whitespace
8268 break;
8269 case 29:
8270 this.popState();return 54;
8271 break;
8272 case 30:
8273 this.popState();return 33;
8274 break;
8275 case 31:
8276 yy_.yytext = strip(1, 2).replace(/\\"/g, '"');return 80;
8277 break;
8278 case 32:
8279 yy_.yytext = strip(1, 2).replace(/\\'/g, "'");return 80;
8280 break;
8281 case 33:
8282 return 85;
8283 break;
8284 case 34:
8285 return 82;
8286 break;
8287 case 35:
8288 return 82;
8289 break;
8290 case 36:
8291 return 83;
8292 break;
8293 case 37:
8294 return 84;
8295 break;
8296 case 38:
8297 return 81;
8298 break;
8299 case 39:
8300 return 75;
8301 break;
8302 case 40:
8303 return 77;
8304 break;
8305 case 41:
8306 return 72;
8307 break;
8308 case 42:
8309 yy_.yytext = yy_.yytext.replace(/\\([\\\]])/g, '$1');return 72;
8310 break;
8311 case 43:
8312 return 'INVALID';
8313 break;
8314 case 44:
8315 return 5;
8316 break;
8317 }
8318 };
8319 lexer.rules = [/^(?:[^\x00]*?(?=(\{\{)))/, /^(?:[^\x00]+)/, /^(?:[^\x00]{2,}?(?=(\{\{|\\\{\{|\\\\\{\{|$)))/, /^(?:\{\{\{\{(?=[^\/]))/, /^(?:\{\{\{\{\/[^\s!"#%-,\.\/;->@\[-\^`\{-~]+(?=[=}\s\/.])\}\}\}\})/, /^(?:[^\x00]*?(?=(\{\{\{\{)))/, /^(?:[\s\S]*?--(~)?\}\})/, /^(?:\()/, /^(?:\))/, /^(?:\{\{\{\{)/, /^(?:\}\}\}\})/, /^(?:\{\{(~)?>)/, /^(?:\{\{(~)?#>)/, /^(?:\{\{(~)?#\*?)/, /^(?:\{\{(~)?\/)/, /^(?:\{\{(~)?\^\s*(~)?\}\})/, /^(?:\{\{(~)?\s*else\s*(~)?\}\})/, /^(?:\{\{(~)?\^)/, /^(?:\{\{(~)?\s*else\b)/, /^(?:\{\{(~)?\{)/, /^(?:\{\{(~)?&)/, /^(?:\{\{(~)?!--)/, /^(?:\{\{(~)?![\s\S]*?\}\})/, /^(?:\{\{(~)?\*?)/, /^(?:=)/, /^(?:\.\.)/, /^(?:\.(?=([=~}\s\/.)|])))/, /^(?:[\/.])/, /^(?:\s+)/, /^(?:\}(~)?\}\})/, /^(?:(~)?\}\})/, /^(?:"(\\["]|[^"])*")/, /^(?:'(\\[']|[^'])*')/, /^(?:@)/, /^(?:true(?=([~}\s)])))/, /^(?:false(?=([~}\s)])))/, /^(?:undefined(?=([~}\s)])))/, /^(?:null(?=([~}\s)])))/, /^(?:-?[0-9]+(?:\.[0-9]+)?(?=([~}\s)])))/, /^(?:as\s+\|)/, /^(?:\|)/, /^(?:([^\s!"#%-,\.\/;->@\[-\^`\{-~]+(?=([=~}\s\/.)|]))))/, /^(?:\[(\\\]|[^\]])*\])/, /^(?:.)/, /^(?:$)/];
8320 lexer.conditions = { "mu": { "rules": [7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44], "inclusive": false }, "emu": { "rules": [2], "inclusive": false }, "com": { "rules": [6], "inclusive": false }, "raw": { "rules": [3, 4, 5], "inclusive": false }, "INITIAL": { "rules": [0, 1, 44], "inclusive": true } };
8321 return lexer;
8322 })();
8323 parser.lexer = lexer;
8324 function Parser() {
8325 this.yy = {};
8326 }Parser.prototype = parser;parser.Parser = Parser;
8327 return new Parser();
8328 })();exports["default"] = handlebars;
8329 module.exports = exports["default"];
8330
8331/***/ }),
8332/* 38 */
8333/***/ (function(module, exports, __webpack_require__) {
8334
8335 'use strict';
8336
8337 var _interopRequireDefault = __webpack_require__(1)['default'];
8338
8339 exports.__esModule = true;
8340
8341 var _visitor = __webpack_require__(39);
8342
8343 var _visitor2 = _interopRequireDefault(_visitor);
8344
8345 function WhitespaceControl() {
8346 var options = arguments.length <= 0 || arguments[0] === undefined ? {} : arguments[0];
8347
8348 this.options = options;
8349 }
8350 WhitespaceControl.prototype = new _visitor2['default']();
8351
8352 WhitespaceControl.prototype.Program = function (program) {
8353 var doStandalone = !this.options.ignoreStandalone;
8354
8355 var isRoot = !this.isRootSeen;
8356 this.isRootSeen = true;
8357
8358 var body = program.body;
8359 for (var i = 0, l = body.length; i < l; i++) {
8360 var current = body[i],
8361 strip = this.accept(current);
8362
8363 if (!strip) {
8364 continue;
8365 }
8366
8367 var _isPrevWhitespace = isPrevWhitespace(body, i, isRoot),
8368 _isNextWhitespace = isNextWhitespace(body, i, isRoot),
8369 openStandalone = strip.openStandalone && _isPrevWhitespace,
8370 closeStandalone = strip.closeStandalone && _isNextWhitespace,
8371 inlineStandalone = strip.inlineStandalone && _isPrevWhitespace && _isNextWhitespace;
8372
8373 if (strip.close) {
8374 omitRight(body, i, true);
8375 }
8376 if (strip.open) {
8377 omitLeft(body, i, true);
8378 }
8379
8380 if (doStandalone && inlineStandalone) {
8381 omitRight(body, i);
8382
8383 if (omitLeft(body, i)) {
8384 // If we are on a standalone node, save the indent info for partials
8385 if (current.type === 'PartialStatement') {
8386 // Pull out the whitespace from the final line
8387 current.indent = /([ \t]+$)/.exec(body[i - 1].original)[1];
8388 }
8389 }
8390 }
8391 if (doStandalone && openStandalone) {
8392 omitRight((current.program || current.inverse).body);
8393
8394 // Strip out the previous content node if it's whitespace only
8395 omitLeft(body, i);
8396 }
8397 if (doStandalone && closeStandalone) {
8398 // Always strip the next node
8399 omitRight(body, i);
8400
8401 omitLeft((current.inverse || current.program).body);
8402 }
8403 }
8404
8405 return program;
8406 };
8407
8408 WhitespaceControl.prototype.BlockStatement = WhitespaceControl.prototype.DecoratorBlock = WhitespaceControl.prototype.PartialBlockStatement = function (block) {
8409 this.accept(block.program);
8410 this.accept(block.inverse);
8411
8412 // Find the inverse program that is involed with whitespace stripping.
8413 var program = block.program || block.inverse,
8414 inverse = block.program && block.inverse,
8415 firstInverse = inverse,
8416 lastInverse = inverse;
8417
8418 if (inverse && inverse.chained) {
8419 firstInverse = inverse.body[0].program;
8420
8421 // Walk the inverse chain to find the last inverse that is actually in the chain.
8422 while (lastInverse.chained) {
8423 lastInverse = lastInverse.body[lastInverse.body.length - 1].program;
8424 }
8425 }
8426
8427 var strip = {
8428 open: block.openStrip.open,
8429 close: block.closeStrip.close,
8430
8431 // Determine the standalone candiacy. Basically flag our content as being possibly standalone
8432 // so our parent can determine if we actually are standalone
8433 openStandalone: isNextWhitespace(program.body),
8434 closeStandalone: isPrevWhitespace((firstInverse || program).body)
8435 };
8436
8437 if (block.openStrip.close) {
8438 omitRight(program.body, null, true);
8439 }
8440
8441 if (inverse) {
8442 var inverseStrip = block.inverseStrip;
8443
8444 if (inverseStrip.open) {
8445 omitLeft(program.body, null, true);
8446 }
8447
8448 if (inverseStrip.close) {
8449 omitRight(firstInverse.body, null, true);
8450 }
8451 if (block.closeStrip.open) {
8452 omitLeft(lastInverse.body, null, true);
8453 }
8454
8455 // Find standalone else statments
8456 if (!this.options.ignoreStandalone && isPrevWhitespace(program.body) && isNextWhitespace(firstInverse.body)) {
8457 omitLeft(program.body);
8458 omitRight(firstInverse.body);
8459 }
8460 } else if (block.closeStrip.open) {
8461 omitLeft(program.body, null, true);
8462 }
8463
8464 return strip;
8465 };
8466
8467 WhitespaceControl.prototype.Decorator = WhitespaceControl.prototype.MustacheStatement = function (mustache) {
8468 return mustache.strip;
8469 };
8470
8471 WhitespaceControl.prototype.PartialStatement = WhitespaceControl.prototype.CommentStatement = function (node) {
8472 /* istanbul ignore next */
8473 var strip = node.strip || {};
8474 return {
8475 inlineStandalone: true,
8476 open: strip.open,
8477 close: strip.close
8478 };
8479 };
8480
8481 function isPrevWhitespace(body, i, isRoot) {
8482 if (i === undefined) {
8483 i = body.length;
8484 }
8485
8486 // Nodes that end with newlines are considered whitespace (but are special
8487 // cased for strip operations)
8488 var prev = body[i - 1],
8489 sibling = body[i - 2];
8490 if (!prev) {
8491 return isRoot;
8492 }
8493
8494 if (prev.type === 'ContentStatement') {
8495 return (sibling || !isRoot ? /\r?\n\s*?$/ : /(^|\r?\n)\s*?$/).test(prev.original);
8496 }
8497 }
8498 function isNextWhitespace(body, i, isRoot) {
8499 if (i === undefined) {
8500 i = -1;
8501 }
8502
8503 var next = body[i + 1],
8504 sibling = body[i + 2];
8505 if (!next) {
8506 return isRoot;
8507 }
8508
8509 if (next.type === 'ContentStatement') {
8510 return (sibling || !isRoot ? /^\s*?\r?\n/ : /^\s*?(\r?\n|$)/).test(next.original);
8511 }
8512 }
8513
8514 // Marks the node to the right of the position as omitted.
8515 // I.e. {{foo}}' ' will mark the ' ' node as omitted.
8516 //
8517 // If i is undefined, then the first child will be marked as such.
8518 //
8519 // If mulitple is truthy then all whitespace will be stripped out until non-whitespace
8520 // content is met.
8521 function omitRight(body, i, multiple) {
8522 var current = body[i == null ? 0 : i + 1];
8523 if (!current || current.type !== 'ContentStatement' || !multiple && current.rightStripped) {
8524 return;
8525 }
8526
8527 var original = current.value;
8528 current.value = current.value.replace(multiple ? /^\s+/ : /^[ \t]*\r?\n?/, '');
8529 current.rightStripped = current.value !== original;
8530 }
8531
8532 // Marks the node to the left of the position as omitted.
8533 // I.e. ' '{{foo}} will mark the ' ' node as omitted.
8534 //
8535 // If i is undefined then the last child will be marked as such.
8536 //
8537 // If mulitple is truthy then all whitespace will be stripped out until non-whitespace
8538 // content is met.
8539 function omitLeft(body, i, multiple) {
8540 var current = body[i == null ? body.length - 1 : i - 1];
8541 if (!current || current.type !== 'ContentStatement' || !multiple && current.leftStripped) {
8542 return;
8543 }
8544
8545 // We omit the last node if it's whitespace only and not preceeded by a non-content node.
8546 var original = current.value;
8547 current.value = current.value.replace(multiple ? /\s+$/ : /[ \t]+$/, '');
8548 current.leftStripped = current.value !== original;
8549 return current.leftStripped;
8550 }
8551
8552 exports['default'] = WhitespaceControl;
8553 module.exports = exports['default'];
8554
8555/***/ }),
8556/* 39 */
8557/***/ (function(module, exports, __webpack_require__) {
8558
8559 'use strict';
8560
8561 var _interopRequireDefault = __webpack_require__(1)['default'];
8562
8563 exports.__esModule = true;
8564
8565 var _exception = __webpack_require__(6);
8566
8567 var _exception2 = _interopRequireDefault(_exception);
8568
8569 function Visitor() {
8570 this.parents = [];
8571 }
8572
8573 Visitor.prototype = {
8574 constructor: Visitor,
8575 mutating: false,
8576
8577 // Visits a given value. If mutating, will replace the value if necessary.
8578 acceptKey: function acceptKey(node, name) {
8579 var value = this.accept(node[name]);
8580 if (this.mutating) {
8581 // Hacky sanity check: This may have a few false positives for type for the helper
8582 // methods but will generally do the right thing without a lot of overhead.
8583 if (value && !Visitor.prototype[value.type]) {
8584 throw new _exception2['default']('Unexpected node type "' + value.type + '" found when accepting ' + name + ' on ' + node.type);
8585 }
8586 node[name] = value;
8587 }
8588 },
8589
8590 // Performs an accept operation with added sanity check to ensure
8591 // required keys are not removed.
8592 acceptRequired: function acceptRequired(node, name) {
8593 this.acceptKey(node, name);
8594
8595 if (!node[name]) {
8596 throw new _exception2['default'](node.type + ' requires ' + name);
8597 }
8598 },
8599
8600 // Traverses a given array. If mutating, empty respnses will be removed
8601 // for child elements.
8602 acceptArray: function acceptArray(array) {
8603 for (var i = 0, l = array.length; i < l; i++) {
8604 this.acceptKey(array, i);
8605
8606 if (!array[i]) {
8607 array.splice(i, 1);
8608 i--;
8609 l--;
8610 }
8611 }
8612 },
8613
8614 accept: function accept(object) {
8615 if (!object) {
8616 return;
8617 }
8618
8619 /* istanbul ignore next: Sanity code */
8620 if (!this[object.type]) {
8621 throw new _exception2['default']('Unknown type: ' + object.type, object);
8622 }
8623
8624 if (this.current) {
8625 this.parents.unshift(this.current);
8626 }
8627 this.current = object;
8628
8629 var ret = this[object.type](object);
8630
8631 this.current = this.parents.shift();
8632
8633 if (!this.mutating || ret) {
8634 return ret;
8635 } else if (ret !== false) {
8636 return object;
8637 }
8638 },
8639
8640 Program: function Program(program) {
8641 this.acceptArray(program.body);
8642 },
8643
8644 MustacheStatement: visitSubExpression,
8645 Decorator: visitSubExpression,
8646
8647 BlockStatement: visitBlock,
8648 DecoratorBlock: visitBlock,
8649
8650 PartialStatement: visitPartial,
8651 PartialBlockStatement: function PartialBlockStatement(partial) {
8652 visitPartial.call(this, partial);
8653
8654 this.acceptKey(partial, 'program');
8655 },
8656
8657 ContentStatement: function ContentStatement() /* content */{},
8658 CommentStatement: function CommentStatement() /* comment */{},
8659
8660 SubExpression: visitSubExpression,
8661
8662 PathExpression: function PathExpression() /* path */{},
8663
8664 StringLiteral: function StringLiteral() /* string */{},
8665 NumberLiteral: function NumberLiteral() /* number */{},
8666 BooleanLiteral: function BooleanLiteral() /* bool */{},
8667 UndefinedLiteral: function UndefinedLiteral() /* literal */{},
8668 NullLiteral: function NullLiteral() /* literal */{},
8669
8670 Hash: function Hash(hash) {
8671 this.acceptArray(hash.pairs);
8672 },
8673 HashPair: function HashPair(pair) {
8674 this.acceptRequired(pair, 'value');
8675 }
8676 };
8677
8678 function visitSubExpression(mustache) {
8679 this.acceptRequired(mustache, 'path');
8680 this.acceptArray(mustache.params);
8681 this.acceptKey(mustache, 'hash');
8682 }
8683 function visitBlock(block) {
8684 visitSubExpression.call(this, block);
8685
8686 this.acceptKey(block, 'program');
8687 this.acceptKey(block, 'inverse');
8688 }
8689 function visitPartial(partial) {
8690 this.acceptRequired(partial, 'name');
8691 this.acceptArray(partial.params);
8692 this.acceptKey(partial, 'hash');
8693 }
8694
8695 exports['default'] = Visitor;
8696 module.exports = exports['default'];
8697
8698/***/ }),
8699/* 40 */
8700/***/ (function(module, exports, __webpack_require__) {
8701
8702 'use strict';
8703
8704 var _interopRequireDefault = __webpack_require__(1)['default'];
8705
8706 exports.__esModule = true;
8707 exports.SourceLocation = SourceLocation;
8708 exports.id = id;
8709 exports.stripFlags = stripFlags;
8710 exports.stripComment = stripComment;
8711 exports.preparePath = preparePath;
8712 exports.prepareMustache = prepareMustache;
8713 exports.prepareRawBlock = prepareRawBlock;
8714 exports.prepareBlock = prepareBlock;
8715 exports.prepareProgram = prepareProgram;
8716 exports.preparePartialBlock = preparePartialBlock;
8717
8718 var _exception = __webpack_require__(6);
8719
8720 var _exception2 = _interopRequireDefault(_exception);
8721
8722 function validateClose(open, close) {
8723 close = close.path ? close.path.original : close;
8724
8725 if (open.path.original !== close) {
8726 var errorNode = { loc: open.path.loc };
8727
8728 throw new _exception2['default'](open.path.original + " doesn't match " + close, errorNode);
8729 }
8730 }
8731
8732 function SourceLocation(source, locInfo) {
8733 this.source = source;
8734 this.start = {
8735 line: locInfo.first_line,
8736 column: locInfo.first_column
8737 };
8738 this.end = {
8739 line: locInfo.last_line,
8740 column: locInfo.last_column
8741 };
8742 }
8743
8744 function id(token) {
8745 if (/^\[.*\]$/.test(token)) {
8746 return token.substr(1, token.length - 2);
8747 } else {
8748 return token;
8749 }
8750 }
8751
8752 function stripFlags(open, close) {
8753 return {
8754 open: open.charAt(2) === '~',
8755 close: close.charAt(close.length - 3) === '~'
8756 };
8757 }
8758
8759 function stripComment(comment) {
8760 return comment.replace(/^\{\{~?!-?-?/, '').replace(/-?-?~?\}\}$/, '');
8761 }
8762
8763 function preparePath(data, parts, loc) {
8764 loc = this.locInfo(loc);
8765
8766 var original = data ? '@' : '',
8767 dig = [],
8768 depth = 0;
8769
8770 for (var i = 0, l = parts.length; i < l; i++) {
8771 var part = parts[i].part,
8772
8773 // If we have [] syntax then we do not treat path references as operators,
8774 // i.e. foo.[this] resolves to approximately context.foo['this']
8775 isLiteral = parts[i].original !== part;
8776 original += (parts[i].separator || '') + part;
8777
8778 if (!isLiteral && (part === '..' || part === '.' || part === 'this')) {
8779 if (dig.length > 0) {
8780 throw new _exception2['default']('Invalid path: ' + original, { loc: loc });
8781 } else if (part === '..') {
8782 depth++;
8783 }
8784 } else {
8785 dig.push(part);
8786 }
8787 }
8788
8789 return {
8790 type: 'PathExpression',
8791 data: data,
8792 depth: depth,
8793 parts: dig,
8794 original: original,
8795 loc: loc
8796 };
8797 }
8798
8799 function prepareMustache(path, params, hash, open, strip, locInfo) {
8800 // Must use charAt to support IE pre-10
8801 var escapeFlag = open.charAt(3) || open.charAt(2),
8802 escaped = escapeFlag !== '{' && escapeFlag !== '&';
8803
8804 var decorator = /\*/.test(open);
8805 return {
8806 type: decorator ? 'Decorator' : 'MustacheStatement',
8807 path: path,
8808 params: params,
8809 hash: hash,
8810 escaped: escaped,
8811 strip: strip,
8812 loc: this.locInfo(locInfo)
8813 };
8814 }
8815
8816 function prepareRawBlock(openRawBlock, contents, close, locInfo) {
8817 validateClose(openRawBlock, close);
8818
8819 locInfo = this.locInfo(locInfo);
8820 var program = {
8821 type: 'Program',
8822 body: contents,
8823 strip: {},
8824 loc: locInfo
8825 };
8826
8827 return {
8828 type: 'BlockStatement',
8829 path: openRawBlock.path,
8830 params: openRawBlock.params,
8831 hash: openRawBlock.hash,
8832 program: program,
8833 openStrip: {},
8834 inverseStrip: {},
8835 closeStrip: {},
8836 loc: locInfo
8837 };
8838 }
8839
8840 function prepareBlock(openBlock, program, inverseAndProgram, close, inverted, locInfo) {
8841 if (close && close.path) {
8842 validateClose(openBlock, close);
8843 }
8844
8845 var decorator = /\*/.test(openBlock.open);
8846
8847 program.blockParams = openBlock.blockParams;
8848
8849 var inverse = undefined,
8850 inverseStrip = undefined;
8851
8852 if (inverseAndProgram) {
8853 if (decorator) {
8854 throw new _exception2['default']('Unexpected inverse block on decorator', inverseAndProgram);
8855 }
8856
8857 if (inverseAndProgram.chain) {
8858 inverseAndProgram.program.body[0].closeStrip = close.strip;
8859 }
8860
8861 inverseStrip = inverseAndProgram.strip;
8862 inverse = inverseAndProgram.program;
8863 }
8864
8865 if (inverted) {
8866 inverted = inverse;
8867 inverse = program;
8868 program = inverted;
8869 }
8870
8871 return {
8872 type: decorator ? 'DecoratorBlock' : 'BlockStatement',
8873 path: openBlock.path,
8874 params: openBlock.params,
8875 hash: openBlock.hash,
8876 program: program,
8877 inverse: inverse,
8878 openStrip: openBlock.strip,
8879 inverseStrip: inverseStrip,
8880 closeStrip: close && close.strip,
8881 loc: this.locInfo(locInfo)
8882 };
8883 }
8884
8885 function prepareProgram(statements, loc) {
8886 if (!loc && statements.length) {
8887 var firstLoc = statements[0].loc,
8888 lastLoc = statements[statements.length - 1].loc;
8889
8890 /* istanbul ignore else */
8891 if (firstLoc && lastLoc) {
8892 loc = {
8893 source: firstLoc.source,
8894 start: {
8895 line: firstLoc.start.line,
8896 column: firstLoc.start.column
8897 },
8898 end: {
8899 line: lastLoc.end.line,
8900 column: lastLoc.end.column
8901 }
8902 };
8903 }
8904 }
8905
8906 return {
8907 type: 'Program',
8908 body: statements,
8909 strip: {},
8910 loc: loc
8911 };
8912 }
8913
8914 function preparePartialBlock(open, program, close, locInfo) {
8915 validateClose(open, close);
8916
8917 return {
8918 type: 'PartialBlockStatement',
8919 name: open.path,
8920 params: open.params,
8921 hash: open.hash,
8922 program: program,
8923 openStrip: open.strip,
8924 closeStrip: close && close.strip,
8925 loc: this.locInfo(locInfo)
8926 };
8927 }
8928
8929/***/ }),
8930/* 41 */
8931/***/ (function(module, exports, __webpack_require__) {
8932
8933 /* eslint-disable new-cap */
8934
8935 'use strict';
8936
8937 var _interopRequireDefault = __webpack_require__(1)['default'];
8938
8939 exports.__esModule = true;
8940 exports.Compiler = Compiler;
8941 exports.precompile = precompile;
8942 exports.compile = compile;
8943
8944 var _exception = __webpack_require__(6);
8945
8946 var _exception2 = _interopRequireDefault(_exception);
8947
8948 var _utils = __webpack_require__(5);
8949
8950 var _ast = __webpack_require__(35);
8951
8952 var _ast2 = _interopRequireDefault(_ast);
8953
8954 var slice = [].slice;
8955
8956 function Compiler() {}
8957
8958 // the foundHelper register will disambiguate helper lookup from finding a
8959 // function in a context. This is necessary for mustache compatibility, which
8960 // requires that context functions in blocks are evaluated by blockHelperMissing,
8961 // and then proceed as if the resulting value was provided to blockHelperMissing.
8962
8963 Compiler.prototype = {
8964 compiler: Compiler,
8965
8966 equals: function equals(other) {
8967 var len = this.opcodes.length;
8968 if (other.opcodes.length !== len) {
8969 return false;
8970 }
8971
8972 for (var i = 0; i < len; i++) {
8973 var opcode = this.opcodes[i],
8974 otherOpcode = other.opcodes[i];
8975 if (opcode.opcode !== otherOpcode.opcode || !argEquals(opcode.args, otherOpcode.args)) {
8976 return false;
8977 }
8978 }
8979
8980 // We know that length is the same between the two arrays because they are directly tied
8981 // to the opcode behavior above.
8982 len = this.children.length;
8983 for (var i = 0; i < len; i++) {
8984 if (!this.children[i].equals(other.children[i])) {
8985 return false;
8986 }
8987 }
8988
8989 return true;
8990 },
8991
8992 guid: 0,
8993
8994 compile: function compile(program, options) {
8995 this.sourceNode = [];
8996 this.opcodes = [];
8997 this.children = [];
8998 this.options = options;
8999 this.stringParams = options.stringParams;
9000 this.trackIds = options.trackIds;
9001
9002 options.blockParams = options.blockParams || [];
9003
9004 // These changes will propagate to the other compiler components
9005 var knownHelpers = options.knownHelpers;
9006 options.knownHelpers = {
9007 'helperMissing': true,
9008 'blockHelperMissing': true,
9009 'each': true,
9010 'if': true,
9011 'unless': true,
9012 'with': true,
9013 'log': true,
9014 'lookup': true
9015 };
9016 if (knownHelpers) {
9017 // the next line should use "Object.keys", but the code has been like this a long time and changing it, might
9018 // cause backwards-compatibility issues... It's an old library...
9019 // eslint-disable-next-line guard-for-in
9020 for (var _name in knownHelpers) {
9021 this.options.knownHelpers[_name] = knownHelpers[_name];
9022 }
9023 }
9024
9025 return this.accept(program);
9026 },
9027
9028 compileProgram: function compileProgram(program) {
9029 var childCompiler = new this.compiler(),
9030 // eslint-disable-line new-cap
9031 result = childCompiler.compile(program, this.options),
9032 guid = this.guid++;
9033
9034 this.usePartial = this.usePartial || result.usePartial;
9035
9036 this.children[guid] = result;
9037 this.useDepths = this.useDepths || result.useDepths;
9038
9039 return guid;
9040 },
9041
9042 accept: function accept(node) {
9043 /* istanbul ignore next: Sanity code */
9044 if (!this[node.type]) {
9045 throw new _exception2['default']('Unknown type: ' + node.type, node);
9046 }
9047
9048 this.sourceNode.unshift(node);
9049 var ret = this[node.type](node);
9050 this.sourceNode.shift();
9051 return ret;
9052 },
9053
9054 Program: function Program(program) {
9055 this.options.blockParams.unshift(program.blockParams);
9056
9057 var body = program.body,
9058 bodyLength = body.length;
9059 for (var i = 0; i < bodyLength; i++) {
9060 this.accept(body[i]);
9061 }
9062
9063 this.options.blockParams.shift();
9064
9065 this.isSimple = bodyLength === 1;
9066 this.blockParams = program.blockParams ? program.blockParams.length : 0;
9067
9068 return this;
9069 },
9070
9071 BlockStatement: function BlockStatement(block) {
9072 transformLiteralToPath(block);
9073
9074 var program = block.program,
9075 inverse = block.inverse;
9076
9077 program = program && this.compileProgram(program);
9078 inverse = inverse && this.compileProgram(inverse);
9079
9080 var type = this.classifySexpr(block);
9081
9082 if (type === 'helper') {
9083 this.helperSexpr(block, program, inverse);
9084 } else if (type === 'simple') {
9085 this.simpleSexpr(block);
9086
9087 // now that the simple mustache is resolved, we need to
9088 // evaluate it by executing `blockHelperMissing`
9089 this.opcode('pushProgram', program);
9090 this.opcode('pushProgram', inverse);
9091 this.opcode('emptyHash');
9092 this.opcode('blockValue', block.path.original);
9093 } else {
9094 this.ambiguousSexpr(block, program, inverse);
9095
9096 // now that the simple mustache is resolved, we need to
9097 // evaluate it by executing `blockHelperMissing`
9098 this.opcode('pushProgram', program);
9099 this.opcode('pushProgram', inverse);
9100 this.opcode('emptyHash');
9101 this.opcode('ambiguousBlockValue');
9102 }
9103
9104 this.opcode('append');
9105 },
9106
9107 DecoratorBlock: function DecoratorBlock(decorator) {
9108 var program = decorator.program && this.compileProgram(decorator.program);
9109 var params = this.setupFullMustacheParams(decorator, program, undefined),
9110 path = decorator.path;
9111
9112 this.useDecorators = true;
9113 this.opcode('registerDecorator', params.length, path.original);
9114 },
9115
9116 PartialStatement: function PartialStatement(partial) {
9117 this.usePartial = true;
9118
9119 var program = partial.program;
9120 if (program) {
9121 program = this.compileProgram(partial.program);
9122 }
9123
9124 var params = partial.params;
9125 if (params.length > 1) {
9126 throw new _exception2['default']('Unsupported number of partial arguments: ' + params.length, partial);
9127 } else if (!params.length) {
9128 if (this.options.explicitPartialContext) {
9129 this.opcode('pushLiteral', 'undefined');
9130 } else {
9131 params.push({ type: 'PathExpression', parts: [], depth: 0 });
9132 }
9133 }
9134
9135 var partialName = partial.name.original,
9136 isDynamic = partial.name.type === 'SubExpression';
9137 if (isDynamic) {
9138 this.accept(partial.name);
9139 }
9140
9141 this.setupFullMustacheParams(partial, program, undefined, true);
9142
9143 var indent = partial.indent || '';
9144 if (this.options.preventIndent && indent) {
9145 this.opcode('appendContent', indent);
9146 indent = '';
9147 }
9148
9149 this.opcode('invokePartial', isDynamic, partialName, indent);
9150 this.opcode('append');
9151 },
9152 PartialBlockStatement: function PartialBlockStatement(partialBlock) {
9153 this.PartialStatement(partialBlock);
9154 },
9155
9156 MustacheStatement: function MustacheStatement(mustache) {
9157 this.SubExpression(mustache);
9158
9159 if (mustache.escaped && !this.options.noEscape) {
9160 this.opcode('appendEscaped');
9161 } else {
9162 this.opcode('append');
9163 }
9164 },
9165 Decorator: function Decorator(decorator) {
9166 this.DecoratorBlock(decorator);
9167 },
9168
9169 ContentStatement: function ContentStatement(content) {
9170 if (content.value) {
9171 this.opcode('appendContent', content.value);
9172 }
9173 },
9174
9175 CommentStatement: function CommentStatement() {},
9176
9177 SubExpression: function SubExpression(sexpr) {
9178 transformLiteralToPath(sexpr);
9179 var type = this.classifySexpr(sexpr);
9180
9181 if (type === 'simple') {
9182 this.simpleSexpr(sexpr);
9183 } else if (type === 'helper') {
9184 this.helperSexpr(sexpr);
9185 } else {
9186 this.ambiguousSexpr(sexpr);
9187 }
9188 },
9189 ambiguousSexpr: function ambiguousSexpr(sexpr, program, inverse) {
9190 var path = sexpr.path,
9191 name = path.parts[0],
9192 isBlock = program != null || inverse != null;
9193
9194 this.opcode('getContext', path.depth);
9195
9196 this.opcode('pushProgram', program);
9197 this.opcode('pushProgram', inverse);
9198
9199 path.strict = true;
9200 this.accept(path);
9201
9202 this.opcode('invokeAmbiguous', name, isBlock);
9203 },
9204
9205 simpleSexpr: function simpleSexpr(sexpr) {
9206 var path = sexpr.path;
9207 path.strict = true;
9208 this.accept(path);
9209 this.opcode('resolvePossibleLambda');
9210 },
9211
9212 helperSexpr: function helperSexpr(sexpr, program, inverse) {
9213 var params = this.setupFullMustacheParams(sexpr, program, inverse),
9214 path = sexpr.path,
9215 name = path.parts[0];
9216
9217 if (this.options.knownHelpers[name]) {
9218 this.opcode('invokeKnownHelper', params.length, name);
9219 } else if (this.options.knownHelpersOnly) {
9220 throw new _exception2['default']('You specified knownHelpersOnly, but used the unknown helper ' + name, sexpr);
9221 } else {
9222 path.strict = true;
9223 path.falsy = true;
9224
9225 this.accept(path);
9226 this.opcode('invokeHelper', params.length, path.original, _ast2['default'].helpers.simpleId(path));
9227 }
9228 },
9229
9230 PathExpression: function PathExpression(path) {
9231 this.addDepth(path.depth);
9232 this.opcode('getContext', path.depth);
9233
9234 var name = path.parts[0],
9235 scoped = _ast2['default'].helpers.scopedId(path),
9236 blockParamId = !path.depth && !scoped && this.blockParamIndex(name);
9237
9238 if (blockParamId) {
9239 this.opcode('lookupBlockParam', blockParamId, path.parts);
9240 } else if (!name) {
9241 // Context reference, i.e. `{{foo .}}` or `{{foo ..}}`
9242 this.opcode('pushContext');
9243 } else if (path.data) {
9244 this.options.data = true;
9245 this.opcode('lookupData', path.depth, path.parts, path.strict);
9246 } else {
9247 this.opcode('lookupOnContext', path.parts, path.falsy, path.strict, scoped);
9248 }
9249 },
9250
9251 StringLiteral: function StringLiteral(string) {
9252 this.opcode('pushString', string.value);
9253 },
9254
9255 NumberLiteral: function NumberLiteral(number) {
9256 this.opcode('pushLiteral', number.value);
9257 },
9258
9259 BooleanLiteral: function BooleanLiteral(bool) {
9260 this.opcode('pushLiteral', bool.value);
9261 },
9262
9263 UndefinedLiteral: function UndefinedLiteral() {
9264 this.opcode('pushLiteral', 'undefined');
9265 },
9266
9267 NullLiteral: function NullLiteral() {
9268 this.opcode('pushLiteral', 'null');
9269 },
9270
9271 Hash: function Hash(hash) {
9272 var pairs = hash.pairs,
9273 i = 0,
9274 l = pairs.length;
9275
9276 this.opcode('pushHash');
9277
9278 for (; i < l; i++) {
9279 this.pushParam(pairs[i].value);
9280 }
9281 while (i--) {
9282 this.opcode('assignToHash', pairs[i].key);
9283 }
9284 this.opcode('popHash');
9285 },
9286
9287 // HELPERS
9288 opcode: function opcode(name) {
9289 this.opcodes.push({ opcode: name, args: slice.call(arguments, 1), loc: this.sourceNode[0].loc });
9290 },
9291
9292 addDepth: function addDepth(depth) {
9293 if (!depth) {
9294 return;
9295 }
9296
9297 this.useDepths = true;
9298 },
9299
9300 classifySexpr: function classifySexpr(sexpr) {
9301 var isSimple = _ast2['default'].helpers.simpleId(sexpr.path);
9302
9303 var isBlockParam = isSimple && !!this.blockParamIndex(sexpr.path.parts[0]);
9304
9305 // a mustache is an eligible helper if:
9306 // * its id is simple (a single part, not `this` or `..`)
9307 var isHelper = !isBlockParam && _ast2['default'].helpers.helperExpression(sexpr);
9308
9309 // if a mustache is an eligible helper but not a definite
9310 // helper, it is ambiguous, and will be resolved in a later
9311 // pass or at runtime.
9312 var isEligible = !isBlockParam && (isHelper || isSimple);
9313
9314 // if ambiguous, we can possibly resolve the ambiguity now
9315 // An eligible helper is one that does not have a complex path, i.e. `this.foo`, `../foo` etc.
9316 if (isEligible && !isHelper) {
9317 var _name2 = sexpr.path.parts[0],
9318 options = this.options;
9319
9320 if (options.knownHelpers[_name2]) {
9321 isHelper = true;
9322 } else if (options.knownHelpersOnly) {
9323 isEligible = false;
9324 }
9325 }
9326
9327 if (isHelper) {
9328 return 'helper';
9329 } else if (isEligible) {
9330 return 'ambiguous';
9331 } else {
9332 return 'simple';
9333 }
9334 },
9335
9336 pushParams: function pushParams(params) {
9337 for (var i = 0, l = params.length; i < l; i++) {
9338 this.pushParam(params[i]);
9339 }
9340 },
9341
9342 pushParam: function pushParam(val) {
9343 var value = val.value != null ? val.value : val.original || '';
9344
9345 if (this.stringParams) {
9346 if (value.replace) {
9347 value = value.replace(/^(\.?\.\/)*/g, '').replace(/\//g, '.');
9348 }
9349
9350 if (val.depth) {
9351 this.addDepth(val.depth);
9352 }
9353 this.opcode('getContext', val.depth || 0);
9354 this.opcode('pushStringParam', value, val.type);
9355
9356 if (val.type === 'SubExpression') {
9357 // SubExpressions get evaluated and passed in
9358 // in string params mode.
9359 this.accept(val);
9360 }
9361 } else {
9362 if (this.trackIds) {
9363 var blockParamIndex = undefined;
9364 if (val.parts && !_ast2['default'].helpers.scopedId(val) && !val.depth) {
9365 blockParamIndex = this.blockParamIndex(val.parts[0]);
9366 }
9367 if (blockParamIndex) {
9368 var blockParamChild = val.parts.slice(1).join('.');
9369 this.opcode('pushId', 'BlockParam', blockParamIndex, blockParamChild);
9370 } else {
9371 value = val.original || value;
9372 if (value.replace) {
9373 value = value.replace(/^this(?:\.|$)/, '').replace(/^\.\//, '').replace(/^\.$/, '');
9374 }
9375
9376 this.opcode('pushId', val.type, value);
9377 }
9378 }
9379 this.accept(val);
9380 }
9381 },
9382
9383 setupFullMustacheParams: function setupFullMustacheParams(sexpr, program, inverse, omitEmpty) {
9384 var params = sexpr.params;
9385 this.pushParams(params);
9386
9387 this.opcode('pushProgram', program);
9388 this.opcode('pushProgram', inverse);
9389
9390 if (sexpr.hash) {
9391 this.accept(sexpr.hash);
9392 } else {
9393 this.opcode('emptyHash', omitEmpty);
9394 }
9395
9396 return params;
9397 },
9398
9399 blockParamIndex: function blockParamIndex(name) {
9400 for (var depth = 0, len = this.options.blockParams.length; depth < len; depth++) {
9401 var blockParams = this.options.blockParams[depth],
9402 param = blockParams && _utils.indexOf(blockParams, name);
9403 if (blockParams && param >= 0) {
9404 return [depth, param];
9405 }
9406 }
9407 }
9408 };
9409
9410 function precompile(input, options, env) {
9411 if (input == null || typeof input !== 'string' && input.type !== 'Program') {
9412 throw new _exception2['default']('You must pass a string or Handlebars AST to Handlebars.precompile. You passed ' + input);
9413 }
9414
9415 options = options || {};
9416 if (!('data' in options)) {
9417 options.data = true;
9418 }
9419 if (options.compat) {
9420 options.useDepths = true;
9421 }
9422
9423 var ast = env.parse(input, options),
9424 environment = new env.Compiler().compile(ast, options);
9425 return new env.JavaScriptCompiler().compile(environment, options);
9426 }
9427
9428 function compile(input, options, env) {
9429 if (options === undefined) options = {};
9430
9431 if (input == null || typeof input !== 'string' && input.type !== 'Program') {
9432 throw new _exception2['default']('You must pass a string or Handlebars AST to Handlebars.compile. You passed ' + input);
9433 }
9434
9435 options = _utils.extend({}, options);
9436 if (!('data' in options)) {
9437 options.data = true;
9438 }
9439 if (options.compat) {
9440 options.useDepths = true;
9441 }
9442
9443 var compiled = undefined;
9444
9445 function compileInput() {
9446 var ast = env.parse(input, options),
9447 environment = new env.Compiler().compile(ast, options),
9448 templateSpec = new env.JavaScriptCompiler().compile(environment, options, undefined, true);
9449 return env.template(templateSpec);
9450 }
9451
9452 // Template is only compiled on first use and cached after that point.
9453 function ret(context, execOptions) {
9454 if (!compiled) {
9455 compiled = compileInput();
9456 }
9457 return compiled.call(this, context, execOptions);
9458 }
9459 ret._setup = function (setupOptions) {
9460 if (!compiled) {
9461 compiled = compileInput();
9462 }
9463 return compiled._setup(setupOptions);
9464 };
9465 ret._child = function (i, data, blockParams, depths) {
9466 if (!compiled) {
9467 compiled = compileInput();
9468 }
9469 return compiled._child(i, data, blockParams, depths);
9470 };
9471 return ret;
9472 }
9473
9474 function argEquals(a, b) {
9475 if (a === b) {
9476 return true;
9477 }
9478
9479 if (_utils.isArray(a) && _utils.isArray(b) && a.length === b.length) {
9480 for (var i = 0; i < a.length; i++) {
9481 if (!argEquals(a[i], b[i])) {
9482 return false;
9483 }
9484 }
9485 return true;
9486 }
9487 }
9488
9489 function transformLiteralToPath(sexpr) {
9490 if (!sexpr.path.parts) {
9491 var literal = sexpr.path;
9492 // Casting to string here to make false and 0 literal values play nicely with the rest
9493 // of the system.
9494 sexpr.path = {
9495 type: 'PathExpression',
9496 data: false,
9497 depth: 0,
9498 parts: [literal.original + ''],
9499 original: literal.original + '',
9500 loc: literal.loc
9501 };
9502 }
9503 }
9504
9505/***/ }),
9506/* 42 */
9507/***/ (function(module, exports, __webpack_require__) {
9508
9509 'use strict';
9510
9511 var _interopRequireDefault = __webpack_require__(1)['default'];
9512
9513 exports.__esModule = true;
9514
9515 var _base = __webpack_require__(4);
9516
9517 var _exception = __webpack_require__(6);
9518
9519 var _exception2 = _interopRequireDefault(_exception);
9520
9521 var _utils = __webpack_require__(5);
9522
9523 var _codeGen = __webpack_require__(43);
9524
9525 var _codeGen2 = _interopRequireDefault(_codeGen);
9526
9527 function Literal(value) {
9528 this.value = value;
9529 }
9530
9531 function JavaScriptCompiler() {}
9532
9533 JavaScriptCompiler.prototype = {
9534 // PUBLIC API: You can override these methods in a subclass to provide
9535 // alternative compiled forms for name lookup and buffering semantics
9536 nameLookup: function nameLookup(parent, name /* , type*/) {
9537 if (JavaScriptCompiler.isValidJavaScriptVariableName(name)) {
9538 return [parent, '.', name];
9539 } else {
9540 return [parent, '[', JSON.stringify(name), ']'];
9541 }
9542 },
9543 depthedLookup: function depthedLookup(name) {
9544 return [this.aliasable('container.lookup'), '(depths, "', name, '")'];
9545 },
9546
9547 compilerInfo: function compilerInfo() {
9548 var revision = _base.COMPILER_REVISION,
9549 versions = _base.REVISION_CHANGES[revision];
9550 return [revision, versions];
9551 },
9552
9553 appendToBuffer: function appendToBuffer(source, location, explicit) {
9554 // Force a source as this simplifies the merge logic.
9555 if (!_utils.isArray(source)) {
9556 source = [source];
9557 }
9558 source = this.source.wrap(source, location);
9559
9560 if (this.environment.isSimple) {
9561 return ['return ', source, ';'];
9562 } else if (explicit) {
9563 // This is a case where the buffer operation occurs as a child of another
9564 // construct, generally braces. We have to explicitly output these buffer
9565 // operations to ensure that the emitted code goes in the correct location.
9566 return ['buffer += ', source, ';'];
9567 } else {
9568 source.appendToBuffer = true;
9569 return source;
9570 }
9571 },
9572
9573 initializeBuffer: function initializeBuffer() {
9574 return this.quotedString('');
9575 },
9576 // END PUBLIC API
9577
9578 compile: function compile(environment, options, context, asObject) {
9579 this.environment = environment;
9580 this.options = options;
9581 this.stringParams = this.options.stringParams;
9582 this.trackIds = this.options.trackIds;
9583 this.precompile = !asObject;
9584
9585 this.name = this.environment.name;
9586 this.isChild = !!context;
9587 this.context = context || {
9588 decorators: [],
9589 programs: [],
9590 environments: []
9591 };
9592
9593 this.preamble();
9594
9595 this.stackSlot = 0;
9596 this.stackVars = [];
9597 this.aliases = {};
9598 this.registers = { list: [] };
9599 this.hashes = [];
9600 this.compileStack = [];
9601 this.inlineStack = [];
9602 this.blockParams = [];
9603
9604 this.compileChildren(environment, options);
9605
9606 this.useDepths = this.useDepths || environment.useDepths || environment.useDecorators || this.options.compat;
9607 this.useBlockParams = this.useBlockParams || environment.useBlockParams;
9608
9609 var opcodes = environment.opcodes,
9610 opcode = undefined,
9611 firstLoc = undefined,
9612 i = undefined,
9613 l = undefined;
9614
9615 for (i = 0, l = opcodes.length; i < l; i++) {
9616 opcode = opcodes[i];
9617
9618 this.source.currentLocation = opcode.loc;
9619 firstLoc = firstLoc || opcode.loc;
9620 this[opcode.opcode].apply(this, opcode.args);
9621 }
9622
9623 // Flush any trailing content that might be pending.
9624 this.source.currentLocation = firstLoc;
9625 this.pushSource('');
9626
9627 /* istanbul ignore next */
9628 if (this.stackSlot || this.inlineStack.length || this.compileStack.length) {
9629 throw new _exception2['default']('Compile completed with content left on stack');
9630 }
9631
9632 if (!this.decorators.isEmpty()) {
9633 this.useDecorators = true;
9634
9635 this.decorators.prepend('var decorators = container.decorators;\n');
9636 this.decorators.push('return fn;');
9637
9638 if (asObject) {
9639 this.decorators = Function.apply(this, ['fn', 'props', 'container', 'depth0', 'data', 'blockParams', 'depths', this.decorators.merge()]);
9640 } else {
9641 this.decorators.prepend('function(fn, props, container, depth0, data, blockParams, depths) {\n');
9642 this.decorators.push('}\n');
9643 this.decorators = this.decorators.merge();
9644 }
9645 } else {
9646 this.decorators = undefined;
9647 }
9648
9649 var fn = this.createFunctionContext(asObject);
9650 if (!this.isChild) {
9651 var ret = {
9652 compiler: this.compilerInfo(),
9653 main: fn
9654 };
9655
9656 if (this.decorators) {
9657 ret.main_d = this.decorators; // eslint-disable-line camelcase
9658 ret.useDecorators = true;
9659 }
9660
9661 var _context = this.context;
9662 var programs = _context.programs;
9663 var decorators = _context.decorators;
9664
9665 for (i = 0, l = programs.length; i < l; i++) {
9666 if (programs[i]) {
9667 ret[i] = programs[i];
9668 if (decorators[i]) {
9669 ret[i + '_d'] = decorators[i];
9670 ret.useDecorators = true;
9671 }
9672 }
9673 }
9674
9675 if (this.environment.usePartial) {
9676 ret.usePartial = true;
9677 }
9678 if (this.options.data) {
9679 ret.useData = true;
9680 }
9681 if (this.useDepths) {
9682 ret.useDepths = true;
9683 }
9684 if (this.useBlockParams) {
9685 ret.useBlockParams = true;
9686 }
9687 if (this.options.compat) {
9688 ret.compat = true;
9689 }
9690
9691 if (!asObject) {
9692 ret.compiler = JSON.stringify(ret.compiler);
9693
9694 this.source.currentLocation = { start: { line: 1, column: 0 } };
9695 ret = this.objectLiteral(ret);
9696
9697 if (options.srcName) {
9698 ret = ret.toStringWithSourceMap({ file: options.destName });
9699 ret.map = ret.map && ret.map.toString();
9700 } else {
9701 ret = ret.toString();
9702 }
9703 } else {
9704 ret.compilerOptions = this.options;
9705 }
9706
9707 return ret;
9708 } else {
9709 return fn;
9710 }
9711 },
9712
9713 preamble: function preamble() {
9714 // track the last context pushed into place to allow skipping the
9715 // getContext opcode when it would be a noop
9716 this.lastContext = 0;
9717 this.source = new _codeGen2['default'](this.options.srcName);
9718 this.decorators = new _codeGen2['default'](this.options.srcName);
9719 },
9720
9721 createFunctionContext: function createFunctionContext(asObject) {
9722 var varDeclarations = '';
9723
9724 var locals = this.stackVars.concat(this.registers.list);
9725 if (locals.length > 0) {
9726 varDeclarations += ', ' + locals.join(', ');
9727 }
9728
9729 // Generate minimizer alias mappings
9730 //
9731 // When using true SourceNodes, this will update all references to the given alias
9732 // as the source nodes are reused in situ. For the non-source node compilation mode,
9733 // aliases will not be used, but this case is already being run on the client and
9734 // we aren't concern about minimizing the template size.
9735 var aliasCount = 0;
9736 for (var alias in this.aliases) {
9737 // eslint-disable-line guard-for-in
9738 var node = this.aliases[alias];
9739
9740 if (this.aliases.hasOwnProperty(alias) && node.children && node.referenceCount > 1) {
9741 varDeclarations += ', alias' + ++aliasCount + '=' + alias;
9742 node.children[0] = 'alias' + aliasCount;
9743 }
9744 }
9745
9746 var params = ['container', 'depth0', 'helpers', 'partials', 'data'];
9747
9748 if (this.useBlockParams || this.useDepths) {
9749 params.push('blockParams');
9750 }
9751 if (this.useDepths) {
9752 params.push('depths');
9753 }
9754
9755 // Perform a second pass over the output to merge content when possible
9756 var source = this.mergeSource(varDeclarations);
9757
9758 if (asObject) {
9759 params.push(source);
9760
9761 return Function.apply(this, params);
9762 } else {
9763 return this.source.wrap(['function(', params.join(','), ') {\n ', source, '}']);
9764 }
9765 },
9766 mergeSource: function mergeSource(varDeclarations) {
9767 var isSimple = this.environment.isSimple,
9768 appendOnly = !this.forceBuffer,
9769 appendFirst = undefined,
9770 sourceSeen = undefined,
9771 bufferStart = undefined,
9772 bufferEnd = undefined;
9773 this.source.each(function (line) {
9774 if (line.appendToBuffer) {
9775 if (bufferStart) {
9776 line.prepend(' + ');
9777 } else {
9778 bufferStart = line;
9779 }
9780 bufferEnd = line;
9781 } else {
9782 if (bufferStart) {
9783 if (!sourceSeen) {
9784 appendFirst = true;
9785 } else {
9786 bufferStart.prepend('buffer += ');
9787 }
9788 bufferEnd.add(';');
9789 bufferStart = bufferEnd = undefined;
9790 }
9791
9792 sourceSeen = true;
9793 if (!isSimple) {
9794 appendOnly = false;
9795 }
9796 }
9797 });
9798
9799 if (appendOnly) {
9800 if (bufferStart) {
9801 bufferStart.prepend('return ');
9802 bufferEnd.add(';');
9803 } else if (!sourceSeen) {
9804 this.source.push('return "";');
9805 }
9806 } else {
9807 varDeclarations += ', buffer = ' + (appendFirst ? '' : this.initializeBuffer());
9808
9809 if (bufferStart) {
9810 bufferStart.prepend('return buffer + ');
9811 bufferEnd.add(';');
9812 } else {
9813 this.source.push('return buffer;');
9814 }
9815 }
9816
9817 if (varDeclarations) {
9818 this.source.prepend('var ' + varDeclarations.substring(2) + (appendFirst ? '' : ';\n'));
9819 }
9820
9821 return this.source.merge();
9822 },
9823
9824 // [blockValue]
9825 //
9826 // On stack, before: hash, inverse, program, value
9827 // On stack, after: return value of blockHelperMissing
9828 //
9829 // The purpose of this opcode is to take a block of the form
9830 // `{{#this.foo}}...{{/this.foo}}`, resolve the value of `foo`, and
9831 // replace it on the stack with the result of properly
9832 // invoking blockHelperMissing.
9833 blockValue: function blockValue(name) {
9834 var blockHelperMissing = this.aliasable('helpers.blockHelperMissing'),
9835 params = [this.contextName(0)];
9836 this.setupHelperArgs(name, 0, params);
9837
9838 var blockName = this.popStack();
9839 params.splice(1, 0, blockName);
9840
9841 this.push(this.source.functionCall(blockHelperMissing, 'call', params));
9842 },
9843
9844 // [ambiguousBlockValue]
9845 //
9846 // On stack, before: hash, inverse, program, value
9847 // Compiler value, before: lastHelper=value of last found helper, if any
9848 // On stack, after, if no lastHelper: same as [blockValue]
9849 // On stack, after, if lastHelper: value
9850 ambiguousBlockValue: function ambiguousBlockValue() {
9851 // We're being a bit cheeky and reusing the options value from the prior exec
9852 var blockHelperMissing = this.aliasable('helpers.blockHelperMissing'),
9853 params = [this.contextName(0)];
9854 this.setupHelperArgs('', 0, params, true);
9855
9856 this.flushInline();
9857
9858 var current = this.topStack();
9859 params.splice(1, 0, current);
9860
9861 this.pushSource(['if (!', this.lastHelper, ') { ', current, ' = ', this.source.functionCall(blockHelperMissing, 'call', params), '}']);
9862 },
9863
9864 // [appendContent]
9865 //
9866 // On stack, before: ...
9867 // On stack, after: ...
9868 //
9869 // Appends the string value of `content` to the current buffer
9870 appendContent: function appendContent(content) {
9871 if (this.pendingContent) {
9872 content = this.pendingContent + content;
9873 } else {
9874 this.pendingLocation = this.source.currentLocation;
9875 }
9876
9877 this.pendingContent = content;
9878 },
9879
9880 // [append]
9881 //
9882 // On stack, before: value, ...
9883 // On stack, after: ...
9884 //
9885 // Coerces `value` to a String and appends it to the current buffer.
9886 //
9887 // If `value` is truthy, or 0, it is coerced into a string and appended
9888 // Otherwise, the empty string is appended
9889 append: function append() {
9890 if (this.isInline()) {
9891 this.replaceStack(function (current) {
9892 return [' != null ? ', current, ' : ""'];
9893 });
9894
9895 this.pushSource(this.appendToBuffer(this.popStack()));
9896 } else {
9897 var local = this.popStack();
9898 this.pushSource(['if (', local, ' != null) { ', this.appendToBuffer(local, undefined, true), ' }']);
9899 if (this.environment.isSimple) {
9900 this.pushSource(['else { ', this.appendToBuffer("''", undefined, true), ' }']);
9901 }
9902 }
9903 },
9904
9905 // [appendEscaped]
9906 //
9907 // On stack, before: value, ...
9908 // On stack, after: ...
9909 //
9910 // Escape `value` and append it to the buffer
9911 appendEscaped: function appendEscaped() {
9912 this.pushSource(this.appendToBuffer([this.aliasable('container.escapeExpression'), '(', this.popStack(), ')']));
9913 },
9914
9915 // [getContext]
9916 //
9917 // On stack, before: ...
9918 // On stack, after: ...
9919 // Compiler value, after: lastContext=depth
9920 //
9921 // Set the value of the `lastContext` compiler value to the depth
9922 getContext: function getContext(depth) {
9923 this.lastContext = depth;
9924 },
9925
9926 // [pushContext]
9927 //
9928 // On stack, before: ...
9929 // On stack, after: currentContext, ...
9930 //
9931 // Pushes the value of the current context onto the stack.
9932 pushContext: function pushContext() {
9933 this.pushStackLiteral(this.contextName(this.lastContext));
9934 },
9935
9936 // [lookupOnContext]
9937 //
9938 // On stack, before: ...
9939 // On stack, after: currentContext[name], ...
9940 //
9941 // Looks up the value of `name` on the current context and pushes
9942 // it onto the stack.
9943 lookupOnContext: function lookupOnContext(parts, falsy, strict, scoped) {
9944 var i = 0;
9945
9946 if (!scoped && this.options.compat && !this.lastContext) {
9947 // The depthed query is expected to handle the undefined logic for the root level that
9948 // is implemented below, so we evaluate that directly in compat mode
9949 this.push(this.depthedLookup(parts[i++]));
9950 } else {
9951 this.pushContext();
9952 }
9953
9954 this.resolvePath('context', parts, i, falsy, strict);
9955 },
9956
9957 // [lookupBlockParam]
9958 //
9959 // On stack, before: ...
9960 // On stack, after: blockParam[name], ...
9961 //
9962 // Looks up the value of `parts` on the given block param and pushes
9963 // it onto the stack.
9964 lookupBlockParam: function lookupBlockParam(blockParamId, parts) {
9965 this.useBlockParams = true;
9966
9967 this.push(['blockParams[', blockParamId[0], '][', blockParamId[1], ']']);
9968 this.resolvePath('context', parts, 1);
9969 },
9970
9971 // [lookupData]
9972 //
9973 // On stack, before: ...
9974 // On stack, after: data, ...
9975 //
9976 // Push the data lookup operator
9977 lookupData: function lookupData(depth, parts, strict) {
9978 if (!depth) {
9979 this.pushStackLiteral('data');
9980 } else {
9981 this.pushStackLiteral('container.data(data, ' + depth + ')');
9982 }
9983
9984 this.resolvePath('data', parts, 0, true, strict);
9985 },
9986
9987 resolvePath: function resolvePath(type, parts, i, falsy, strict) {
9988 // istanbul ignore next
9989
9990 var _this = this;
9991
9992 if (this.options.strict || this.options.assumeObjects) {
9993 this.push(strictLookup(this.options.strict && strict, this, parts, type));
9994 return;
9995 }
9996
9997 var len = parts.length;
9998 for (; i < len; i++) {
9999 /* eslint-disable no-loop-func */
10000 this.replaceStack(function (current) {
10001 var lookup = _this.nameLookup(current, parts[i], type);
10002 // We want to ensure that zero and false are handled properly if the context (falsy flag)
10003 // needs to have the special handling for these values.
10004 if (!falsy) {
10005 return [' != null ? ', lookup, ' : ', current];
10006 } else {
10007 // Otherwise we can use generic falsy handling
10008 return [' && ', lookup];
10009 }
10010 });
10011 /* eslint-enable no-loop-func */
10012 }
10013 },
10014
10015 // [resolvePossibleLambda]
10016 //
10017 // On stack, before: value, ...
10018 // On stack, after: resolved value, ...
10019 //
10020 // If the `value` is a lambda, replace it on the stack by
10021 // the return value of the lambda
10022 resolvePossibleLambda: function resolvePossibleLambda() {
10023 this.push([this.aliasable('container.lambda'), '(', this.popStack(), ', ', this.contextName(0), ')']);
10024 },
10025
10026 // [pushStringParam]
10027 //
10028 // On stack, before: ...
10029 // On stack, after: string, currentContext, ...
10030 //
10031 // This opcode is designed for use in string mode, which
10032 // provides the string value of a parameter along with its
10033 // depth rather than resolving it immediately.
10034 pushStringParam: function pushStringParam(string, type) {
10035 this.pushContext();
10036 this.pushString(type);
10037
10038 // If it's a subexpression, the string result
10039 // will be pushed after this opcode.
10040 if (type !== 'SubExpression') {
10041 if (typeof string === 'string') {
10042 this.pushString(string);
10043 } else {
10044 this.pushStackLiteral(string);
10045 }
10046 }
10047 },
10048
10049 emptyHash: function emptyHash(omitEmpty) {
10050 if (this.trackIds) {
10051 this.push('{}'); // hashIds
10052 }
10053 if (this.stringParams) {
10054 this.push('{}'); // hashContexts
10055 this.push('{}'); // hashTypes
10056 }
10057 this.pushStackLiteral(omitEmpty ? 'undefined' : '{}');
10058 },
10059 pushHash: function pushHash() {
10060 if (this.hash) {
10061 this.hashes.push(this.hash);
10062 }
10063 this.hash = { values: [], types: [], contexts: [], ids: [] };
10064 },
10065 popHash: function popHash() {
10066 var hash = this.hash;
10067 this.hash = this.hashes.pop();
10068
10069 if (this.trackIds) {
10070 this.push(this.objectLiteral(hash.ids));
10071 }
10072 if (this.stringParams) {
10073 this.push(this.objectLiteral(hash.contexts));
10074 this.push(this.objectLiteral(hash.types));
10075 }
10076
10077 this.push(this.objectLiteral(hash.values));
10078 },
10079
10080 // [pushString]
10081 //
10082 // On stack, before: ...
10083 // On stack, after: quotedString(string), ...
10084 //
10085 // Push a quoted version of `string` onto the stack
10086 pushString: function pushString(string) {
10087 this.pushStackLiteral(this.quotedString(string));
10088 },
10089
10090 // [pushLiteral]
10091 //
10092 // On stack, before: ...
10093 // On stack, after: value, ...
10094 //
10095 // Pushes a value onto the stack. This operation prevents
10096 // the compiler from creating a temporary variable to hold
10097 // it.
10098 pushLiteral: function pushLiteral(value) {
10099 this.pushStackLiteral(value);
10100 },
10101
10102 // [pushProgram]
10103 //
10104 // On stack, before: ...
10105 // On stack, after: program(guid), ...
10106 //
10107 // Push a program expression onto the stack. This takes
10108 // a compile-time guid and converts it into a runtime-accessible
10109 // expression.
10110 pushProgram: function pushProgram(guid) {
10111 if (guid != null) {
10112 this.pushStackLiteral(this.programExpression(guid));
10113 } else {
10114 this.pushStackLiteral(null);
10115 }
10116 },
10117
10118 // [registerDecorator]
10119 //
10120 // On stack, before: hash, program, params..., ...
10121 // On stack, after: ...
10122 //
10123 // Pops off the decorator's parameters, invokes the decorator,
10124 // and inserts the decorator into the decorators list.
10125 registerDecorator: function registerDecorator(paramSize, name) {
10126 var foundDecorator = this.nameLookup('decorators', name, 'decorator'),
10127 options = this.setupHelperArgs(name, paramSize);
10128
10129 this.decorators.push(['fn = ', this.decorators.functionCall(foundDecorator, '', ['fn', 'props', 'container', options]), ' || fn;']);
10130 },
10131
10132 // [invokeHelper]
10133 //
10134 // On stack, before: hash, inverse, program, params..., ...
10135 // On stack, after: result of helper invocation
10136 //
10137 // Pops off the helper's parameters, invokes the helper,
10138 // and pushes the helper's return value onto the stack.
10139 //
10140 // If the helper is not found, `helperMissing` is called.
10141 invokeHelper: function invokeHelper(paramSize, name, isSimple) {
10142 var nonHelper = this.popStack(),
10143 helper = this.setupHelper(paramSize, name),
10144 simple = isSimple ? [helper.name, ' || '] : '';
10145
10146 var lookup = ['('].concat(simple, nonHelper);
10147 if (!this.options.strict) {
10148 lookup.push(' || ', this.aliasable('helpers.helperMissing'));
10149 }
10150 lookup.push(')');
10151
10152 this.push(this.source.functionCall(lookup, 'call', helper.callParams));
10153 },
10154
10155 // [invokeKnownHelper]
10156 //
10157 // On stack, before: hash, inverse, program, params..., ...
10158 // On stack, after: result of helper invocation
10159 //
10160 // This operation is used when the helper is known to exist,
10161 // so a `helperMissing` fallback is not required.
10162 invokeKnownHelper: function invokeKnownHelper(paramSize, name) {
10163 var helper = this.setupHelper(paramSize, name);
10164 this.push(this.source.functionCall(helper.name, 'call', helper.callParams));
10165 },
10166
10167 // [invokeAmbiguous]
10168 //
10169 // On stack, before: hash, inverse, program, params..., ...
10170 // On stack, after: result of disambiguation
10171 //
10172 // This operation is used when an expression like `{{foo}}`
10173 // is provided, but we don't know at compile-time whether it
10174 // is a helper or a path.
10175 //
10176 // This operation emits more code than the other options,
10177 // and can be avoided by passing the `knownHelpers` and
10178 // `knownHelpersOnly` flags at compile-time.
10179 invokeAmbiguous: function invokeAmbiguous(name, helperCall) {
10180 this.useRegister('helper');
10181
10182 var nonHelper = this.popStack();
10183
10184 this.emptyHash();
10185 var helper = this.setupHelper(0, name, helperCall);
10186
10187 var helperName = this.lastHelper = this.nameLookup('helpers', name, 'helper');
10188
10189 var lookup = ['(', '(helper = ', helperName, ' || ', nonHelper, ')'];
10190 if (!this.options.strict) {
10191 lookup[0] = '(helper = ';
10192 lookup.push(' != null ? helper : ', this.aliasable('helpers.helperMissing'));
10193 }
10194
10195 this.push(['(', lookup, helper.paramsInit ? ['),(', helper.paramsInit] : [], '),', '(typeof helper === ', this.aliasable('"function"'), ' ? ', this.source.functionCall('helper', 'call', helper.callParams), ' : helper))']);
10196 },
10197
10198 // [invokePartial]
10199 //
10200 // On stack, before: context, ...
10201 // On stack after: result of partial invocation
10202 //
10203 // This operation pops off a context, invokes a partial with that context,
10204 // and pushes the result of the invocation back.
10205 invokePartial: function invokePartial(isDynamic, name, indent) {
10206 var params = [],
10207 options = this.setupParams(name, 1, params);
10208
10209 if (isDynamic) {
10210 name = this.popStack();
10211 delete options.name;
10212 }
10213
10214 if (indent) {
10215 options.indent = JSON.stringify(indent);
10216 }
10217 options.helpers = 'helpers';
10218 options.partials = 'partials';
10219 options.decorators = 'container.decorators';
10220
10221 if (!isDynamic) {
10222 params.unshift(this.nameLookup('partials', name, 'partial'));
10223 } else {
10224 params.unshift(name);
10225 }
10226
10227 if (this.options.compat) {
10228 options.depths = 'depths';
10229 }
10230 options = this.objectLiteral(options);
10231 params.push(options);
10232
10233 this.push(this.source.functionCall('container.invokePartial', '', params));
10234 },
10235
10236 // [assignToHash]
10237 //
10238 // On stack, before: value, ..., hash, ...
10239 // On stack, after: ..., hash, ...
10240 //
10241 // Pops a value off the stack and assigns it to the current hash
10242 assignToHash: function assignToHash(key) {
10243 var value = this.popStack(),
10244 context = undefined,
10245 type = undefined,
10246 id = undefined;
10247
10248 if (this.trackIds) {
10249 id = this.popStack();
10250 }
10251 if (this.stringParams) {
10252 type = this.popStack();
10253 context = this.popStack();
10254 }
10255
10256 var hash = this.hash;
10257 if (context) {
10258 hash.contexts[key] = context;
10259 }
10260 if (type) {
10261 hash.types[key] = type;
10262 }
10263 if (id) {
10264 hash.ids[key] = id;
10265 }
10266 hash.values[key] = value;
10267 },
10268
10269 pushId: function pushId(type, name, child) {
10270 if (type === 'BlockParam') {
10271 this.pushStackLiteral('blockParams[' + name[0] + '].path[' + name[1] + ']' + (child ? ' + ' + JSON.stringify('.' + child) : ''));
10272 } else if (type === 'PathExpression') {
10273 this.pushString(name);
10274 } else if (type === 'SubExpression') {
10275 this.pushStackLiteral('true');
10276 } else {
10277 this.pushStackLiteral('null');
10278 }
10279 },
10280
10281 // HELPERS
10282
10283 compiler: JavaScriptCompiler,
10284
10285 compileChildren: function compileChildren(environment, options) {
10286 var children = environment.children,
10287 child = undefined,
10288 compiler = undefined;
10289
10290 for (var i = 0, l = children.length; i < l; i++) {
10291 child = children[i];
10292 compiler = new this.compiler(); // eslint-disable-line new-cap
10293
10294 var existing = this.matchExistingProgram(child);
10295
10296 if (existing == null) {
10297 this.context.programs.push(''); // Placeholder to prevent name conflicts for nested children
10298 var index = this.context.programs.length;
10299 child.index = index;
10300 child.name = 'program' + index;
10301 this.context.programs[index] = compiler.compile(child, options, this.context, !this.precompile);
10302 this.context.decorators[index] = compiler.decorators;
10303 this.context.environments[index] = child;
10304
10305 this.useDepths = this.useDepths || compiler.useDepths;
10306 this.useBlockParams = this.useBlockParams || compiler.useBlockParams;
10307 child.useDepths = this.useDepths;
10308 child.useBlockParams = this.useBlockParams;
10309 } else {
10310 child.index = existing.index;
10311 child.name = 'program' + existing.index;
10312
10313 this.useDepths = this.useDepths || existing.useDepths;
10314 this.useBlockParams = this.useBlockParams || existing.useBlockParams;
10315 }
10316 }
10317 },
10318 matchExistingProgram: function matchExistingProgram(child) {
10319 for (var i = 0, len = this.context.environments.length; i < len; i++) {
10320 var environment = this.context.environments[i];
10321 if (environment && environment.equals(child)) {
10322 return environment;
10323 }
10324 }
10325 },
10326
10327 programExpression: function programExpression(guid) {
10328 var child = this.environment.children[guid],
10329 programParams = [child.index, 'data', child.blockParams];
10330
10331 if (this.useBlockParams || this.useDepths) {
10332 programParams.push('blockParams');
10333 }
10334 if (this.useDepths) {
10335 programParams.push('depths');
10336 }
10337
10338 return 'container.program(' + programParams.join(', ') + ')';
10339 },
10340
10341 useRegister: function useRegister(name) {
10342 if (!this.registers[name]) {
10343 this.registers[name] = true;
10344 this.registers.list.push(name);
10345 }
10346 },
10347
10348 push: function push(expr) {
10349 if (!(expr instanceof Literal)) {
10350 expr = this.source.wrap(expr);
10351 }
10352
10353 this.inlineStack.push(expr);
10354 return expr;
10355 },
10356
10357 pushStackLiteral: function pushStackLiteral(item) {
10358 this.push(new Literal(item));
10359 },
10360
10361 pushSource: function pushSource(source) {
10362 if (this.pendingContent) {
10363 this.source.push(this.appendToBuffer(this.source.quotedString(this.pendingContent), this.pendingLocation));
10364 this.pendingContent = undefined;
10365 }
10366
10367 if (source) {
10368 this.source.push(source);
10369 }
10370 },
10371
10372 replaceStack: function replaceStack(callback) {
10373 var prefix = ['('],
10374 stack = undefined,
10375 createdStack = undefined,
10376 usedLiteral = undefined;
10377
10378 /* istanbul ignore next */
10379 if (!this.isInline()) {
10380 throw new _exception2['default']('replaceStack on non-inline');
10381 }
10382
10383 // We want to merge the inline statement into the replacement statement via ','
10384 var top = this.popStack(true);
10385
10386 if (top instanceof Literal) {
10387 // Literals do not need to be inlined
10388 stack = [top.value];
10389 prefix = ['(', stack];
10390 usedLiteral = true;
10391 } else {
10392 // Get or create the current stack name for use by the inline
10393 createdStack = true;
10394 var _name = this.incrStack();
10395
10396 prefix = ['((', this.push(_name), ' = ', top, ')'];
10397 stack = this.topStack();
10398 }
10399
10400 var item = callback.call(this, stack);
10401
10402 if (!usedLiteral) {
10403 this.popStack();
10404 }
10405 if (createdStack) {
10406 this.stackSlot--;
10407 }
10408 this.push(prefix.concat(item, ')'));
10409 },
10410
10411 incrStack: function incrStack() {
10412 this.stackSlot++;
10413 if (this.stackSlot > this.stackVars.length) {
10414 this.stackVars.push('stack' + this.stackSlot);
10415 }
10416 return this.topStackName();
10417 },
10418 topStackName: function topStackName() {
10419 return 'stack' + this.stackSlot;
10420 },
10421 flushInline: function flushInline() {
10422 var inlineStack = this.inlineStack;
10423 this.inlineStack = [];
10424 for (var i = 0, len = inlineStack.length; i < len; i++) {
10425 var entry = inlineStack[i];
10426 /* istanbul ignore if */
10427 if (entry instanceof Literal) {
10428 this.compileStack.push(entry);
10429 } else {
10430 var stack = this.incrStack();
10431 this.pushSource([stack, ' = ', entry, ';']);
10432 this.compileStack.push(stack);
10433 }
10434 }
10435 },
10436 isInline: function isInline() {
10437 return this.inlineStack.length;
10438 },
10439
10440 popStack: function popStack(wrapped) {
10441 var inline = this.isInline(),
10442 item = (inline ? this.inlineStack : this.compileStack).pop();
10443
10444 if (!wrapped && item instanceof Literal) {
10445 return item.value;
10446 } else {
10447 if (!inline) {
10448 /* istanbul ignore next */
10449 if (!this.stackSlot) {
10450 throw new _exception2['default']('Invalid stack pop');
10451 }
10452 this.stackSlot--;
10453 }
10454 return item;
10455 }
10456 },
10457
10458 topStack: function topStack() {
10459 var stack = this.isInline() ? this.inlineStack : this.compileStack,
10460 item = stack[stack.length - 1];
10461
10462 /* istanbul ignore if */
10463 if (item instanceof Literal) {
10464 return item.value;
10465 } else {
10466 return item;
10467 }
10468 },
10469
10470 contextName: function contextName(context) {
10471 if (this.useDepths && context) {
10472 return 'depths[' + context + ']';
10473 } else {
10474 return 'depth' + context;
10475 }
10476 },
10477
10478 quotedString: function quotedString(str) {
10479 return this.source.quotedString(str);
10480 },
10481
10482 objectLiteral: function objectLiteral(obj) {
10483 return this.source.objectLiteral(obj);
10484 },
10485
10486 aliasable: function aliasable(name) {
10487 var ret = this.aliases[name];
10488 if (ret) {
10489 ret.referenceCount++;
10490 return ret;
10491 }
10492
10493 ret = this.aliases[name] = this.source.wrap(name);
10494 ret.aliasable = true;
10495 ret.referenceCount = 1;
10496
10497 return ret;
10498 },
10499
10500 setupHelper: function setupHelper(paramSize, name, blockHelper) {
10501 var params = [],
10502 paramsInit = this.setupHelperArgs(name, paramSize, params, blockHelper);
10503 var foundHelper = this.nameLookup('helpers', name, 'helper'),
10504 callContext = this.aliasable(this.contextName(0) + ' != null ? ' + this.contextName(0) + ' : (container.nullContext || {})');
10505
10506 return {
10507 params: params,
10508 paramsInit: paramsInit,
10509 name: foundHelper,
10510 callParams: [callContext].concat(params)
10511 };
10512 },
10513
10514 setupParams: function setupParams(helper, paramSize, params) {
10515 var options = {},
10516 contexts = [],
10517 types = [],
10518 ids = [],
10519 objectArgs = !params,
10520 param = undefined;
10521
10522 if (objectArgs) {
10523 params = [];
10524 }
10525
10526 options.name = this.quotedString(helper);
10527 options.hash = this.popStack();
10528
10529 if (this.trackIds) {
10530 options.hashIds = this.popStack();
10531 }
10532 if (this.stringParams) {
10533 options.hashTypes = this.popStack();
10534 options.hashContexts = this.popStack();
10535 }
10536
10537 var inverse = this.popStack(),
10538 program = this.popStack();
10539
10540 // Avoid setting fn and inverse if neither are set. This allows
10541 // helpers to do a check for `if (options.fn)`
10542 if (program || inverse) {
10543 options.fn = program || 'container.noop';
10544 options.inverse = inverse || 'container.noop';
10545 }
10546
10547 // The parameters go on to the stack in order (making sure that they are evaluated in order)
10548 // so we need to pop them off the stack in reverse order
10549 var i = paramSize;
10550 while (i--) {
10551 param = this.popStack();
10552 params[i] = param;
10553
10554 if (this.trackIds) {
10555 ids[i] = this.popStack();
10556 }
10557 if (this.stringParams) {
10558 types[i] = this.popStack();
10559 contexts[i] = this.popStack();
10560 }
10561 }
10562
10563 if (objectArgs) {
10564 options.args = this.source.generateArray(params);
10565 }
10566
10567 if (this.trackIds) {
10568 options.ids = this.source.generateArray(ids);
10569 }
10570 if (this.stringParams) {
10571 options.types = this.source.generateArray(types);
10572 options.contexts = this.source.generateArray(contexts);
10573 }
10574
10575 if (this.options.data) {
10576 options.data = 'data';
10577 }
10578 if (this.useBlockParams) {
10579 options.blockParams = 'blockParams';
10580 }
10581 return options;
10582 },
10583
10584 setupHelperArgs: function setupHelperArgs(helper, paramSize, params, useRegister) {
10585 var options = this.setupParams(helper, paramSize, params);
10586 options = this.objectLiteral(options);
10587 if (useRegister) {
10588 this.useRegister('options');
10589 params.push('options');
10590 return ['options=', options];
10591 } else if (params) {
10592 params.push(options);
10593 return '';
10594 } else {
10595 return options;
10596 }
10597 }
10598 };
10599
10600 (function () {
10601 var reservedWords = ('break else new var' + ' case finally return void' + ' catch for switch while' + ' continue function this with' + ' default if throw' + ' delete in try' + ' do instanceof typeof' + ' abstract enum int short' + ' boolean export interface static' + ' byte extends long super' + ' char final native synchronized' + ' class float package throws' + ' const goto private transient' + ' debugger implements protected volatile' + ' double import public let yield await' + ' null true false').split(' ');
10602
10603 var compilerWords = JavaScriptCompiler.RESERVED_WORDS = {};
10604
10605 for (var i = 0, l = reservedWords.length; i < l; i++) {
10606 compilerWords[reservedWords[i]] = true;
10607 }
10608 })();
10609
10610 JavaScriptCompiler.isValidJavaScriptVariableName = function (name) {
10611 return !JavaScriptCompiler.RESERVED_WORDS[name] && /^[a-zA-Z_$][0-9a-zA-Z_$]*$/.test(name);
10612 };
10613
10614 function strictLookup(requireTerminal, compiler, parts, type) {
10615 var stack = compiler.popStack(),
10616 i = 0,
10617 len = parts.length;
10618 if (requireTerminal) {
10619 len--;
10620 }
10621
10622 for (; i < len; i++) {
10623 stack = compiler.nameLookup(stack, parts[i], type);
10624 }
10625
10626 if (requireTerminal) {
10627 return [compiler.aliasable('container.strict'), '(', stack, ', ', compiler.quotedString(parts[i]), ')'];
10628 } else {
10629 return stack;
10630 }
10631 }
10632
10633 exports['default'] = JavaScriptCompiler;
10634 module.exports = exports['default'];
10635
10636/***/ }),
10637/* 43 */
10638/***/ (function(module, exports, __webpack_require__) {
10639
10640 /* global define */
10641 'use strict';
10642
10643 exports.__esModule = true;
10644
10645 var _utils = __webpack_require__(5);
10646
10647 var SourceNode = undefined;
10648
10649 try {
10650 /* istanbul ignore next */
10651 if (false) { var SourceMap; }
10652 } catch (err) {}
10653 /* NOP */
10654
10655 /* istanbul ignore if: tested but not covered in istanbul due to dist build */
10656 if (!SourceNode) {
10657 SourceNode = function (line, column, srcFile, chunks) {
10658 this.src = '';
10659 if (chunks) {
10660 this.add(chunks);
10661 }
10662 };
10663 /* istanbul ignore next */
10664 SourceNode.prototype = {
10665 add: function add(chunks) {
10666 if (_utils.isArray(chunks)) {
10667 chunks = chunks.join('');
10668 }
10669 this.src += chunks;
10670 },
10671 prepend: function prepend(chunks) {
10672 if (_utils.isArray(chunks)) {
10673 chunks = chunks.join('');
10674 }
10675 this.src = chunks + this.src;
10676 },
10677 toStringWithSourceMap: function toStringWithSourceMap() {
10678 return { code: this.toString() };
10679 },
10680 toString: function toString() {
10681 return this.src;
10682 }
10683 };
10684 }
10685
10686 function castChunk(chunk, codeGen, loc) {
10687 if (_utils.isArray(chunk)) {
10688 var ret = [];
10689
10690 for (var i = 0, len = chunk.length; i < len; i++) {
10691 ret.push(codeGen.wrap(chunk[i], loc));
10692 }
10693 return ret;
10694 } else if (typeof chunk === 'boolean' || typeof chunk === 'number') {
10695 // Handle primitives that the SourceNode will throw up on
10696 return chunk + '';
10697 }
10698 return chunk;
10699 }
10700
10701 function CodeGen(srcFile) {
10702 this.srcFile = srcFile;
10703 this.source = [];
10704 }
10705
10706 CodeGen.prototype = {
10707 isEmpty: function isEmpty() {
10708 return !this.source.length;
10709 },
10710 prepend: function prepend(source, loc) {
10711 this.source.unshift(this.wrap(source, loc));
10712 },
10713 push: function push(source, loc) {
10714 this.source.push(this.wrap(source, loc));
10715 },
10716
10717 merge: function merge() {
10718 var source = this.empty();
10719 this.each(function (line) {
10720 source.add([' ', line, '\n']);
10721 });
10722 return source;
10723 },
10724
10725 each: function each(iter) {
10726 for (var i = 0, len = this.source.length; i < len; i++) {
10727 iter(this.source[i]);
10728 }
10729 },
10730
10731 empty: function empty() {
10732 var loc = this.currentLocation || { start: {} };
10733 return new SourceNode(loc.start.line, loc.start.column, this.srcFile);
10734 },
10735 wrap: function wrap(chunk) {
10736 var loc = arguments.length <= 1 || arguments[1] === undefined ? this.currentLocation || { start: {} } : arguments[1];
10737
10738 if (chunk instanceof SourceNode) {
10739 return chunk;
10740 }
10741
10742 chunk = castChunk(chunk, this, loc);
10743
10744 return new SourceNode(loc.start.line, loc.start.column, this.srcFile, chunk);
10745 },
10746
10747 functionCall: function functionCall(fn, type, params) {
10748 params = this.generateList(params);
10749 return this.wrap([fn, type ? '.' + type + '(' : '(', params, ')']);
10750 },
10751
10752 quotedString: function quotedString(str) {
10753 return '"' + (str + '').replace(/\\/g, '\\\\').replace(/"/g, '\\"').replace(/\n/g, '\\n').replace(/\r/g, '\\r').replace(/\u2028/g, '\\u2028') // Per Ecma-262 7.3 + 7.8.4
10754 .replace(/\u2029/g, '\\u2029') + '"';
10755 },
10756
10757 objectLiteral: function objectLiteral(obj) {
10758 var pairs = [];
10759
10760 for (var key in obj) {
10761 if (obj.hasOwnProperty(key)) {
10762 var value = castChunk(obj[key], this);
10763 if (value !== 'undefined') {
10764 pairs.push([this.quotedString(key), ':', value]);
10765 }
10766 }
10767 }
10768
10769 var ret = this.generateList(pairs);
10770 ret.prepend('{');
10771 ret.add('}');
10772 return ret;
10773 },
10774
10775 generateList: function generateList(entries) {
10776 var ret = this.empty();
10777
10778 for (var i = 0, len = entries.length; i < len; i++) {
10779 if (i) {
10780 ret.add(',');
10781 }
10782
10783 ret.add(castChunk(entries[i], this));
10784 }
10785
10786 return ret;
10787 },
10788
10789 generateArray: function generateArray(entries) {
10790 var ret = this.generateList(entries);
10791 ret.prepend('[');
10792 ret.add(']');
10793
10794 return ret;
10795 }
10796 };
10797
10798 exports['default'] = CodeGen;
10799 module.exports = exports['default'];
10800
10801/***/ })
10802/******/ ])
10803});
10804;
10805
10806/***/ }),
10807/* 11 */
10808/***/ (function(module, exports, __webpack_require__) {
10809
10810"use strict";
10811
10812
10813Object.defineProperty(exports, "__esModule", {
10814 value: true
10815});
10816exports.stripIndents = exports.stripIndent = exports.oneLineInlineLists = exports.inlineLists = exports.oneLineCommaListsAnd = exports.oneLineCommaListsOr = exports.oneLineCommaLists = exports.oneLineTrim = exports.oneLine = exports.safeHtml = exports.source = exports.codeBlock = exports.html = exports.commaListsOr = exports.commaListsAnd = exports.commaLists = exports.removeNonPrintingValuesTransformer = exports.splitStringTransformer = exports.inlineArrayTransformer = exports.replaceStringTransformer = exports.replaceSubstitutionTransformer = exports.replaceResultTransformer = exports.stripIndentTransformer = exports.trimResultTransformer = exports.TemplateTag = undefined;
10817
10818var _TemplateTag2 = __webpack_require__(0);
10819
10820var _TemplateTag3 = _interopRequireDefault(_TemplateTag2);
10821
10822var _trimResultTransformer2 = __webpack_require__(1);
10823
10824var _trimResultTransformer3 = _interopRequireDefault(_trimResultTransformer2);
10825
10826var _stripIndentTransformer2 = __webpack_require__(3);
10827
10828var _stripIndentTransformer3 = _interopRequireDefault(_stripIndentTransformer2);
10829
10830var _replaceResultTransformer2 = __webpack_require__(4);
10831
10832var _replaceResultTransformer3 = _interopRequireDefault(_replaceResultTransformer2);
10833
10834var _replaceSubstitutionTransformer2 = __webpack_require__(7);
10835
10836var _replaceSubstitutionTransformer3 = _interopRequireDefault(_replaceSubstitutionTransformer2);
10837
10838var _replaceStringTransformer2 = __webpack_require__(17);
10839
10840var _replaceStringTransformer3 = _interopRequireDefault(_replaceStringTransformer2);
10841
10842var _inlineArrayTransformer2 = __webpack_require__(2);
10843
10844var _inlineArrayTransformer3 = _interopRequireDefault(_inlineArrayTransformer2);
10845
10846var _splitStringTransformer2 = __webpack_require__(5);
10847
10848var _splitStringTransformer3 = _interopRequireDefault(_splitStringTransformer2);
10849
10850var _removeNonPrintingValuesTransformer2 = __webpack_require__(8);
10851
10852var _removeNonPrintingValuesTransformer3 = _interopRequireDefault(_removeNonPrintingValuesTransformer2);
10853
10854var _commaLists2 = __webpack_require__(22);
10855
10856var _commaLists3 = _interopRequireDefault(_commaLists2);
10857
10858var _commaListsAnd2 = __webpack_require__(24);
10859
10860var _commaListsAnd3 = _interopRequireDefault(_commaListsAnd2);
10861
10862var _commaListsOr2 = __webpack_require__(26);
10863
10864var _commaListsOr3 = _interopRequireDefault(_commaListsOr2);
10865
10866var _html2 = __webpack_require__(6);
10867
10868var _html3 = _interopRequireDefault(_html2);
10869
10870var _codeBlock2 = __webpack_require__(29);
10871
10872var _codeBlock3 = _interopRequireDefault(_codeBlock2);
10873
10874var _source2 = __webpack_require__(30);
10875
10876var _source3 = _interopRequireDefault(_source2);
10877
10878var _safeHtml2 = __webpack_require__(31);
10879
10880var _safeHtml3 = _interopRequireDefault(_safeHtml2);
10881
10882var _oneLine2 = __webpack_require__(33);
10883
10884var _oneLine3 = _interopRequireDefault(_oneLine2);
10885
10886var _oneLineTrim2 = __webpack_require__(35);
10887
10888var _oneLineTrim3 = _interopRequireDefault(_oneLineTrim2);
10889
10890var _oneLineCommaLists2 = __webpack_require__(37);
10891
10892var _oneLineCommaLists3 = _interopRequireDefault(_oneLineCommaLists2);
10893
10894var _oneLineCommaListsOr2 = __webpack_require__(39);
10895
10896var _oneLineCommaListsOr3 = _interopRequireDefault(_oneLineCommaListsOr2);
10897
10898var _oneLineCommaListsAnd2 = __webpack_require__(41);
10899
10900var _oneLineCommaListsAnd3 = _interopRequireDefault(_oneLineCommaListsAnd2);
10901
10902var _inlineLists2 = __webpack_require__(43);
10903
10904var _inlineLists3 = _interopRequireDefault(_inlineLists2);
10905
10906var _oneLineInlineLists2 = __webpack_require__(45);
10907
10908var _oneLineInlineLists3 = _interopRequireDefault(_oneLineInlineLists2);
10909
10910var _stripIndent2 = __webpack_require__(47);
10911
10912var _stripIndent3 = _interopRequireDefault(_stripIndent2);
10913
10914var _stripIndents2 = __webpack_require__(49);
10915
10916var _stripIndents3 = _interopRequireDefault(_stripIndents2);
10917
10918function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
10919
10920exports.TemplateTag = _TemplateTag3.default;
10921
10922// transformers
10923// core
10924
10925exports.trimResultTransformer = _trimResultTransformer3.default;
10926exports.stripIndentTransformer = _stripIndentTransformer3.default;
10927exports.replaceResultTransformer = _replaceResultTransformer3.default;
10928exports.replaceSubstitutionTransformer = _replaceSubstitutionTransformer3.default;
10929exports.replaceStringTransformer = _replaceStringTransformer3.default;
10930exports.inlineArrayTransformer = _inlineArrayTransformer3.default;
10931exports.splitStringTransformer = _splitStringTransformer3.default;
10932exports.removeNonPrintingValuesTransformer = _removeNonPrintingValuesTransformer3.default;
10933
10934// tags
10935
10936exports.commaLists = _commaLists3.default;
10937exports.commaListsAnd = _commaListsAnd3.default;
10938exports.commaListsOr = _commaListsOr3.default;
10939exports.html = _html3.default;
10940exports.codeBlock = _codeBlock3.default;
10941exports.source = _source3.default;
10942exports.safeHtml = _safeHtml3.default;
10943exports.oneLine = _oneLine3.default;
10944exports.oneLineTrim = _oneLineTrim3.default;
10945exports.oneLineCommaLists = _oneLineCommaLists3.default;
10946exports.oneLineCommaListsOr = _oneLineCommaListsOr3.default;
10947exports.oneLineCommaListsAnd = _oneLineCommaListsAnd3.default;
10948exports.inlineLists = _inlineLists3.default;
10949exports.oneLineInlineLists = _oneLineInlineLists3.default;
10950exports.stripIndent = _stripIndent3.default;
10951exports.stripIndents = _stripIndents3.default;
10952//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9pbmRleC5qcyJdLCJuYW1lcyI6WyJUZW1wbGF0ZVRhZyIsInRyaW1SZXN1bHRUcmFuc2Zvcm1lciIsInN0cmlwSW5kZW50VHJhbnNmb3JtZXIiLCJyZXBsYWNlUmVzdWx0VHJhbnNmb3JtZXIiLCJyZXBsYWNlU3Vic3RpdHV0aW9uVHJhbnNmb3JtZXIiLCJyZXBsYWNlU3RyaW5nVHJhbnNmb3JtZXIiLCJpbmxpbmVBcnJheVRyYW5zZm9ybWVyIiwic3BsaXRTdHJpbmdUcmFuc2Zvcm1lciIsInJlbW92ZU5vblByaW50aW5nVmFsdWVzVHJhbnNmb3JtZXIiLCJjb21tYUxpc3RzIiwiY29tbWFMaXN0c0FuZCIsImNvbW1hTGlzdHNPciIsImh0bWwiLCJjb2RlQmxvY2siLCJzb3VyY2UiLCJzYWZlSHRtbCIsIm9uZUxpbmUiLCJvbmVMaW5lVHJpbSIsIm9uZUxpbmVDb21tYUxpc3RzIiwib25lTGluZUNvbW1hTGlzdHNPciIsIm9uZUxpbmVDb21tYUxpc3RzQW5kIiwiaW5saW5lTGlzdHMiLCJvbmVMaW5lSW5saW5lTGlzdHMiLCJzdHJpcEluZGVudCIsInN0cmlwSW5kZW50cyJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztRQUNPQSxXOztBQUVQO0FBSEE7O1FBSU9DLHFCO1FBQ0FDLHNCO1FBQ0FDLHdCO1FBQ0FDLDhCO1FBQ0FDLHdCO1FBQ0FDLHNCO1FBQ0FDLHNCO1FBQ0FDLGtDOztBQUVQOztRQUNPQyxVO1FBQ0FDLGE7UUFDQUMsWTtRQUNBQyxJO1FBQ0FDLFM7UUFDQUMsTTtRQUNBQyxRO1FBQ0FDLE87UUFDQUMsVztRQUNBQyxpQjtRQUNBQyxtQjtRQUNBQyxvQjtRQUNBQyxXO1FBQ0FDLGtCO1FBQ0FDLFc7UUFDQUMsWSIsImZpbGUiOiJpbmRleC5qcyIsInNvdXJjZXNDb250ZW50IjpbIi8vIGNvcmVcbmV4cG9ydCBUZW1wbGF0ZVRhZyBmcm9tICcuL1RlbXBsYXRlVGFnJztcblxuLy8gdHJhbnNmb3JtZXJzXG5leHBvcnQgdHJpbVJlc3VsdFRyYW5zZm9ybWVyIGZyb20gJy4vdHJpbVJlc3VsdFRyYW5zZm9ybWVyJztcbmV4cG9ydCBzdHJpcEluZGVudFRyYW5zZm9ybWVyIGZyb20gJy4vc3RyaXBJbmRlbnRUcmFuc2Zvcm1lcic7XG5leHBvcnQgcmVwbGFjZVJlc3VsdFRyYW5zZm9ybWVyIGZyb20gJy4vcmVwbGFjZVJlc3VsdFRyYW5zZm9ybWVyJztcbmV4cG9ydCByZXBsYWNlU3Vic3RpdHV0aW9uVHJhbnNmb3JtZXIgZnJvbSAnLi9yZXBsYWNlU3Vic3RpdHV0aW9uVHJhbnNmb3JtZXInO1xuZXhwb3J0IHJlcGxhY2VTdHJpbmdUcmFuc2Zvcm1lciBmcm9tICcuL3JlcGxhY2VTdHJpbmdUcmFuc2Zvcm1lcic7XG5leHBvcnQgaW5saW5lQXJyYXlUcmFuc2Zvcm1lciBmcm9tICcuL2lubGluZUFycmF5VHJhbnNmb3JtZXInO1xuZXhwb3J0IHNwbGl0U3RyaW5nVHJhbnNmb3JtZXIgZnJvbSAnLi9zcGxpdFN0cmluZ1RyYW5zZm9ybWVyJztcbmV4cG9ydCByZW1vdmVOb25QcmludGluZ1ZhbHVlc1RyYW5zZm9ybWVyIGZyb20gJy4vcmVtb3ZlTm9uUHJpbnRpbmdWYWx1ZXNUcmFuc2Zvcm1lcic7XG5cbi8vIHRhZ3NcbmV4cG9ydCBjb21tYUxpc3RzIGZyb20gJy4vY29tbWFMaXN0cyc7XG5leHBvcnQgY29tbWFMaXN0c0FuZCBmcm9tICcuL2NvbW1hTGlzdHNBbmQnO1xuZXhwb3J0IGNvbW1hTGlzdHNPciBmcm9tICcuL2NvbW1hTGlzdHNPcic7XG5leHBvcnQgaHRtbCBmcm9tICcuL2h0bWwnO1xuZXhwb3J0IGNvZGVCbG9jayBmcm9tICcuL2NvZGVCbG9jayc7XG5leHBvcnQgc291cmNlIGZyb20gJy4vc291cmNlJztcbmV4cG9ydCBzYWZlSHRtbCBmcm9tICcuL3NhZmVIdG1sJztcbmV4cG9ydCBvbmVMaW5lIGZyb20gJy4vb25lTGluZSc7XG5leHBvcnQgb25lTGluZVRyaW0gZnJvbSAnLi9vbmVMaW5lVHJpbSc7XG5leHBvcnQgb25lTGluZUNvbW1hTGlzdHMgZnJvbSAnLi9vbmVMaW5lQ29tbWFMaXN0cyc7XG5leHBvcnQgb25lTGluZUNvbW1hTGlzdHNPciBmcm9tICcuL29uZUxpbmVDb21tYUxpc3RzT3InO1xuZXhwb3J0IG9uZUxpbmVDb21tYUxpc3RzQW5kIGZyb20gJy4vb25lTGluZUNvbW1hTGlzdHNBbmQnO1xuZXhwb3J0IGlubGluZUxpc3RzIGZyb20gJy4vaW5saW5lTGlzdHMnO1xuZXhwb3J0IG9uZUxpbmVJbmxpbmVMaXN0cyBmcm9tICcuL29uZUxpbmVJbmxpbmVMaXN0cyc7XG5leHBvcnQgc3RyaXBJbmRlbnQgZnJvbSAnLi9zdHJpcEluZGVudCc7XG5leHBvcnQgc3RyaXBJbmRlbnRzIGZyb20gJy4vc3RyaXBJbmRlbnRzJztcbiJdfQ==
10953
10954/***/ }),
10955/* 12 */
10956/***/ (function(module, exports, __webpack_require__) {
10957
10958"use strict";
10959
10960
10961Object.defineProperty(exports, "__esModule", {
10962 value: true
10963});
10964
10965var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();
10966
10967var _templateObject = _taggedTemplateLiteral(['', ''], ['', '']);
10968
10969function _taggedTemplateLiteral(strings, raw) { return Object.freeze(Object.defineProperties(strings, { raw: { value: Object.freeze(raw) } })); }
10970
10971function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
10972
10973/**
10974 * @class TemplateTag
10975 * @classdesc Consumes a pipeline of composable transformer plugins and produces a template tag.
10976 */
10977var TemplateTag = function () {
10978 /**
10979 * constructs a template tag
10980 * @constructs TemplateTag
10981 * @param {...Object} [...transformers] - an array or arguments list of transformers
10982 * @return {Function} - a template tag
10983 */
10984 function TemplateTag() {
10985 var _this = this;
10986
10987 for (var _len = arguments.length, transformers = Array(_len), _key = 0; _key < _len; _key++) {
10988 transformers[_key] = arguments[_key];
10989 }
10990
10991 _classCallCheck(this, TemplateTag);
10992
10993 this.tag = function (strings) {
10994 for (var _len2 = arguments.length, expressions = Array(_len2 > 1 ? _len2 - 1 : 0), _key2 = 1; _key2 < _len2; _key2++) {
10995 expressions[_key2 - 1] = arguments[_key2];
10996 }
10997
10998 if (typeof strings === 'function') {
10999 // if the first argument passed is a function, assume it is a template tag and return
11000 // an intermediary tag that processes the template using the aforementioned tag, passing the
11001 // result to our tag
11002 return _this.interimTag.bind(_this, strings);
11003 }
11004
11005 if (typeof strings === 'string') {
11006 // if the first argument passed is a string, just transform it
11007 return _this.transformEndResult(strings);
11008 }
11009
11010 // else, return a transformed end result of processing the template with our tag
11011 strings = strings.map(_this.transformString.bind(_this));
11012 return _this.transformEndResult(strings.reduce(_this.processSubstitutions.bind(_this, expressions)));
11013 };
11014
11015 // if first argument is an array, extrude it as a list of transformers
11016 if (transformers.length > 0 && Array.isArray(transformers[0])) {
11017 transformers = transformers[0];
11018 }
11019
11020 // if any transformers are functions, this means they are not initiated - automatically initiate them
11021 this.transformers = transformers.map(function (transformer) {
11022 return typeof transformer === 'function' ? transformer() : transformer;
11023 });
11024
11025 // return an ES2015 template tag
11026 return this.tag;
11027 }
11028
11029 /**
11030 * Applies all transformers to a template literal tagged with this method.
11031 * If a function is passed as the first argument, assumes the function is a template tag
11032 * and applies it to the template, returning a template tag.
11033 * @param {(Function|String|Array<String>)} strings - Either a template tag or an array containing template strings separated by identifier
11034 * @param {...*} ...expressions - Optional list of substitution values.
11035 * @return {(String|Function)} - Either an intermediary tag function or the results of processing the template.
11036 */
11037
11038
11039 _createClass(TemplateTag, [{
11040 key: 'interimTag',
11041
11042
11043 /**
11044 * An intermediary template tag that receives a template tag and passes the result of calling the template with the received
11045 * template tag to our own template tag.
11046 * @param {Function} nextTag - the received template tag
11047 * @param {Array<String>} template - the template to process
11048 * @param {...*} ...substitutions - `substitutions` is an array of all substitutions in the template
11049 * @return {*} - the final processed value
11050 */
11051 value: function interimTag(previousTag, template) {
11052 for (var _len3 = arguments.length, substitutions = Array(_len3 > 2 ? _len3 - 2 : 0), _key3 = 2; _key3 < _len3; _key3++) {
11053 substitutions[_key3 - 2] = arguments[_key3];
11054 }
11055
11056 return this.tag(_templateObject, previousTag.apply(undefined, [template].concat(substitutions)));
11057 }
11058
11059 /**
11060 * Performs bulk processing on the tagged template, transforming each substitution and then
11061 * concatenating the resulting values into a string.
11062 * @param {Array<*>} substitutions - an array of all remaining substitutions present in this template
11063 * @param {String} resultSoFar - this iteration's result string so far
11064 * @param {String} remainingPart - the template chunk after the current substitution
11065 * @return {String} - the result of joining this iteration's processed substitution with the result
11066 */
11067
11068 }, {
11069 key: 'processSubstitutions',
11070 value: function processSubstitutions(substitutions, resultSoFar, remainingPart) {
11071 var substitution = this.transformSubstitution(substitutions.shift(), resultSoFar);
11072 return ''.concat(resultSoFar, substitution, remainingPart);
11073 }
11074
11075 /**
11076 * Iterate through each transformer, applying the transformer's `onString` method to the template
11077 * strings before all substitutions are processed.
11078 * @param {String} str - The input string
11079 * @return {String} - The final results of processing each transformer
11080 */
11081
11082 }, {
11083 key: 'transformString',
11084 value: function transformString(str) {
11085 var cb = function cb(res, transform) {
11086 return transform.onString ? transform.onString(res) : res;
11087 };
11088 return this.transformers.reduce(cb, str);
11089 }
11090
11091 /**
11092 * When a substitution is encountered, iterates through each transformer and applies the transformer's
11093 * `onSubstitution` method to the substitution.
11094 * @param {*} substitution - The current substitution
11095 * @param {String} resultSoFar - The result up to and excluding this substitution.
11096 * @return {*} - The final result of applying all substitution transformations.
11097 */
11098
11099 }, {
11100 key: 'transformSubstitution',
11101 value: function transformSubstitution(substitution, resultSoFar) {
11102 var cb = function cb(res, transform) {
11103 return transform.onSubstitution ? transform.onSubstitution(res, resultSoFar) : res;
11104 };
11105 return this.transformers.reduce(cb, substitution);
11106 }
11107
11108 /**
11109 * Iterates through each transformer, applying the transformer's `onEndResult` method to the
11110 * template literal after all substitutions have finished processing.
11111 * @param {String} endResult - The processed template, just before it is returned from the tag
11112 * @return {String} - The final results of processing each transformer
11113 */
11114
11115 }, {
11116 key: 'transformEndResult',
11117 value: function transformEndResult(endResult) {
11118 var cb = function cb(res, transform) {
11119 return transform.onEndResult ? transform.onEndResult(res) : res;
11120 };
11121 return this.transformers.reduce(cb, endResult);
11122 }
11123 }]);
11124
11125 return TemplateTag;
11126}();
11127
11128exports.default = TemplateTag;
11129module.exports = exports['default'];
11130//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9UZW1wbGF0ZVRhZy9UZW1wbGF0ZVRhZy5qcyJdLCJuYW1lcyI6WyJUZW1wbGF0ZVRhZyIsInRyYW5zZm9ybWVycyIsInRhZyIsInN0cmluZ3MiLCJleHByZXNzaW9ucyIsImludGVyaW1UYWciLCJiaW5kIiwidHJhbnNmb3JtRW5kUmVzdWx0IiwibWFwIiwidHJhbnNmb3JtU3RyaW5nIiwicmVkdWNlIiwicHJvY2Vzc1N1YnN0aXR1dGlvbnMiLCJsZW5ndGgiLCJBcnJheSIsImlzQXJyYXkiLCJ0cmFuc2Zvcm1lciIsInByZXZpb3VzVGFnIiwidGVtcGxhdGUiLCJzdWJzdGl0dXRpb25zIiwicmVzdWx0U29GYXIiLCJyZW1haW5pbmdQYXJ0Iiwic3Vic3RpdHV0aW9uIiwidHJhbnNmb3JtU3Vic3RpdHV0aW9uIiwic2hpZnQiLCJjb25jYXQiLCJzdHIiLCJjYiIsInJlcyIsInRyYW5zZm9ybSIsIm9uU3RyaW5nIiwib25TdWJzdGl0dXRpb24iLCJlbmRSZXN1bHQiLCJvbkVuZFJlc3VsdCJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7QUFBQTs7OztJQUlxQkEsVztBQUNuQjs7Ozs7O0FBTUEseUJBQTZCO0FBQUE7O0FBQUEsc0NBQWRDLFlBQWM7QUFBZEEsa0JBQWM7QUFBQTs7QUFBQTs7QUFBQSxTQXVCN0JDLEdBdkI2QixHQXVCdkIsVUFBQ0MsT0FBRCxFQUE2QjtBQUFBLHlDQUFoQkMsV0FBZ0I7QUFBaEJBLG1CQUFnQjtBQUFBOztBQUNqQyxVQUFJLE9BQU9ELE9BQVAsS0FBbUIsVUFBdkIsRUFBbUM7QUFDakM7QUFDQTtBQUNBO0FBQ0EsZUFBTyxNQUFLRSxVQUFMLENBQWdCQyxJQUFoQixRQUEyQkgsT0FBM0IsQ0FBUDtBQUNEOztBQUVELFVBQUksT0FBT0EsT0FBUCxLQUFtQixRQUF2QixFQUFpQztBQUMvQjtBQUNBLGVBQU8sTUFBS0ksa0JBQUwsQ0FBd0JKLE9BQXhCLENBQVA7QUFDRDs7QUFFRDtBQUNBQSxnQkFBVUEsUUFBUUssR0FBUixDQUFZLE1BQUtDLGVBQUwsQ0FBcUJILElBQXJCLE9BQVosQ0FBVjtBQUNBLGFBQU8sTUFBS0Msa0JBQUwsQ0FDTEosUUFBUU8sTUFBUixDQUFlLE1BQUtDLG9CQUFMLENBQTBCTCxJQUExQixRQUFxQ0YsV0FBckMsQ0FBZixDQURLLENBQVA7QUFHRCxLQXpDNEI7O0FBQzNCO0FBQ0EsUUFBSUgsYUFBYVcsTUFBYixHQUFzQixDQUF0QixJQUEyQkMsTUFBTUMsT0FBTixDQUFjYixhQUFhLENBQWIsQ0FBZCxDQUEvQixFQUErRDtBQUM3REEscUJBQWVBLGFBQWEsQ0FBYixDQUFmO0FBQ0Q7O0FBRUQ7QUFDQSxTQUFLQSxZQUFMLEdBQW9CQSxhQUFhTyxHQUFiLENBQWlCLHVCQUFlO0FBQ2xELGFBQU8sT0FBT08sV0FBUCxLQUF1QixVQUF2QixHQUFvQ0EsYUFBcEMsR0FBb0RBLFdBQTNEO0FBQ0QsS0FGbUIsQ0FBcEI7O0FBSUE7QUFDQSxXQUFPLEtBQUtiLEdBQVo7QUFDRDs7QUFFRDs7Ozs7Ozs7Ozs7Ozs7QUE0QkE7Ozs7Ozs7OytCQVFXYyxXLEVBQWFDLFEsRUFBNEI7QUFBQSx5Q0FBZkMsYUFBZTtBQUFmQSxxQkFBZTtBQUFBOztBQUNsRCxhQUFPLEtBQUtoQixHQUFaLGtCQUFrQmMsOEJBQVlDLFFBQVosU0FBeUJDLGFBQXpCLEVBQWxCO0FBQ0Q7O0FBRUQ7Ozs7Ozs7Ozs7O3lDQVFxQkEsYSxFQUFlQyxXLEVBQWFDLGEsRUFBZTtBQUM5RCxVQUFNQyxlQUFlLEtBQUtDLHFCQUFMLENBQ25CSixjQUFjSyxLQUFkLEVBRG1CLEVBRW5CSixXQUZtQixDQUFyQjtBQUlBLGFBQU8sR0FBR0ssTUFBSCxDQUFVTCxXQUFWLEVBQXVCRSxZQUF2QixFQUFxQ0QsYUFBckMsQ0FBUDtBQUNEOztBQUVEOzs7Ozs7Ozs7b0NBTWdCSyxHLEVBQUs7QUFDbkIsVUFBTUMsS0FBSyxTQUFMQSxFQUFLLENBQUNDLEdBQUQsRUFBTUMsU0FBTjtBQUFBLGVBQ1RBLFVBQVVDLFFBQVYsR0FBcUJELFVBQVVDLFFBQVYsQ0FBbUJGLEdBQW5CLENBQXJCLEdBQStDQSxHQUR0QztBQUFBLE9BQVg7QUFFQSxhQUFPLEtBQUsxQixZQUFMLENBQWtCUyxNQUFsQixDQUF5QmdCLEVBQXpCLEVBQTZCRCxHQUE3QixDQUFQO0FBQ0Q7O0FBRUQ7Ozs7Ozs7Ozs7MENBT3NCSixZLEVBQWNGLFcsRUFBYTtBQUMvQyxVQUFNTyxLQUFLLFNBQUxBLEVBQUssQ0FBQ0MsR0FBRCxFQUFNQyxTQUFOO0FBQUEsZUFDVEEsVUFBVUUsY0FBVixHQUNJRixVQUFVRSxjQUFWLENBQXlCSCxHQUF6QixFQUE4QlIsV0FBOUIsQ0FESixHQUVJUSxHQUhLO0FBQUEsT0FBWDtBQUlBLGFBQU8sS0FBSzFCLFlBQUwsQ0FBa0JTLE1BQWxCLENBQXlCZ0IsRUFBekIsRUFBNkJMLFlBQTdCLENBQVA7QUFDRDs7QUFFRDs7Ozs7Ozs7O3VDQU1tQlUsUyxFQUFXO0FBQzVCLFVBQU1MLEtBQUssU0FBTEEsRUFBSyxDQUFDQyxHQUFELEVBQU1DLFNBQU47QUFBQSxlQUNUQSxVQUFVSSxXQUFWLEdBQXdCSixVQUFVSSxXQUFWLENBQXNCTCxHQUF0QixDQUF4QixHQUFxREEsR0FENUM7QUFBQSxPQUFYO0FBRUEsYUFBTyxLQUFLMUIsWUFBTCxDQUFrQlMsTUFBbEIsQ0FBeUJnQixFQUF6QixFQUE2QkssU0FBN0IsQ0FBUDtBQUNEOzs7Ozs7a0JBbkhrQi9CLFciLCJmaWxlIjoiVGVtcGxhdGVUYWcuanMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEBjbGFzcyBUZW1wbGF0ZVRhZ1xuICogQGNsYXNzZGVzYyBDb25zdW1lcyBhIHBpcGVsaW5lIG9mIGNvbXBvc2FibGUgdHJhbnNmb3JtZXIgcGx1Z2lucyBhbmQgcHJvZHVjZXMgYSB0ZW1wbGF0ZSB0YWcuXG4gKi9cbmV4cG9ydCBkZWZhdWx0IGNsYXNzIFRlbXBsYXRlVGFnIHtcbiAgLyoqXG4gICAqIGNvbnN0cnVjdHMgYSB0ZW1wbGF0ZSB0YWdcbiAgICogQGNvbnN0cnVjdHMgVGVtcGxhdGVUYWdcbiAgICogQHBhcmFtICB7Li4uT2JqZWN0fSBbLi4udHJhbnNmb3JtZXJzXSAtIGFuIGFycmF5IG9yIGFyZ3VtZW50cyBsaXN0IG9mIHRyYW5zZm9ybWVyc1xuICAgKiBAcmV0dXJuIHtGdW5jdGlvbn0gICAgICAgICAgICAgICAgICAgIC0gYSB0ZW1wbGF0ZSB0YWdcbiAgICovXG4gIGNvbnN0cnVjdG9yKC4uLnRyYW5zZm9ybWVycykge1xuICAgIC8vIGlmIGZpcnN0IGFyZ3VtZW50IGlzIGFuIGFycmF5LCBleHRydWRlIGl0IGFzIGEgbGlzdCBvZiB0cmFuc2Zvcm1lcnNcbiAgICBpZiAodHJhbnNmb3JtZXJzLmxlbmd0aCA+IDAgJiYgQXJyYXkuaXNBcnJheSh0cmFuc2Zvcm1lcnNbMF0pKSB7XG4gICAgICB0cmFuc2Zvcm1lcnMgPSB0cmFuc2Zvcm1lcnNbMF07XG4gICAgfVxuXG4gICAgLy8gaWYgYW55IHRyYW5zZm9ybWVycyBhcmUgZnVuY3Rpb25zLCB0aGlzIG1lYW5zIHRoZXkgYXJlIG5vdCBpbml0aWF0ZWQgLSBhdXRvbWF0aWNhbGx5IGluaXRpYXRlIHRoZW1cbiAgICB0aGlzLnRyYW5zZm9ybWVycyA9IHRyYW5zZm9ybWVycy5tYXAodHJhbnNmb3JtZXIgPT4ge1xuICAgICAgcmV0dXJuIHR5cGVvZiB0cmFuc2Zvcm1lciA9PT0gJ2Z1bmN0aW9uJyA/IHRyYW5zZm9ybWVyKCkgOiB0cmFuc2Zvcm1lcjtcbiAgICB9KTtcblxuICAgIC8vIHJldHVybiBhbiBFUzIwMTUgdGVtcGxhdGUgdGFnXG4gICAgcmV0dXJuIHRoaXMudGFnO1xuICB9XG5cbiAgLyoqXG4gICAqIEFwcGxpZXMgYWxsIHRyYW5zZm9ybWVycyB0byBhIHRlbXBsYXRlIGxpdGVyYWwgdGFnZ2VkIHdpdGggdGhpcyBtZXRob2QuXG4gICAqIElmIGEgZnVuY3Rpb24gaXMgcGFzc2VkIGFzIHRoZSBmaXJzdCBhcmd1bWVudCwgYXNzdW1lcyB0aGUgZnVuY3Rpb24gaXMgYSB0ZW1wbGF0ZSB0YWdcbiAgICogYW5kIGFwcGxpZXMgaXQgdG8gdGhlIHRlbXBsYXRlLCByZXR1cm5pbmcgYSB0ZW1wbGF0ZSB0YWcuXG4gICAqIEBwYXJhbSAgeyhGdW5jdGlvbnxTdHJpbmd8QXJyYXk8U3RyaW5nPil9IHN0cmluZ3MgICAgICAgIC0gRWl0aGVyIGEgdGVtcGxhdGUgdGFnIG9yIGFuIGFycmF5IGNvbnRhaW5pbmcgdGVtcGxhdGUgc3RyaW5ncyBzZXBhcmF0ZWQgYnkgaWRlbnRpZmllclxuICAgKiBAcGFyYW0gIHsuLi4qfSAgICAgICAgICAgICAgICAgICAgICAgICAgICAuLi5leHByZXNzaW9ucyAtIE9wdGlvbmFsIGxpc3Qgb2Ygc3Vic3RpdHV0aW9uIHZhbHVlcy5cbiAgICogQHJldHVybiB7KFN0cmluZ3xGdW5jdGlvbil9ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLSBFaXRoZXIgYW4gaW50ZXJtZWRpYXJ5IHRhZyBmdW5jdGlvbiBvciB0aGUgcmVzdWx0cyBvZiBwcm9jZXNzaW5nIHRoZSB0ZW1wbGF0ZS5cbiAgICovXG4gIHRhZyA9IChzdHJpbmdzLCAuLi5leHByZXNzaW9ucykgPT4ge1xuICAgIGlmICh0eXBlb2Ygc3RyaW5ncyA9PT0gJ2Z1bmN0aW9uJykge1xuICAgICAgLy8gaWYgdGhlIGZpcnN0IGFyZ3VtZW50IHBhc3NlZCBpcyBhIGZ1bmN0aW9uLCBhc3N1bWUgaXQgaXMgYSB0ZW1wbGF0ZSB0YWcgYW5kIHJldHVyblxuICAgICAgLy8gYW4gaW50ZXJtZWRpYXJ5IHRhZyB0aGF0IHByb2Nlc3NlcyB0aGUgdGVtcGxhdGUgdXNpbmcgdGhlIGFmb3JlbWVudGlvbmVkIHRhZywgcGFzc2luZyB0aGVcbiAgICAgIC8vIHJlc3VsdCB0byBvdXIgdGFnXG4gICAgICByZXR1cm4gdGhpcy5pbnRlcmltVGFnLmJpbmQodGhpcywgc3RyaW5ncyk7XG4gICAgfVxuXG4gICAgaWYgKHR5cGVvZiBzdHJpbmdzID09PSAnc3RyaW5nJykge1xuICAgICAgLy8gaWYgdGhlIGZpcnN0IGFyZ3VtZW50IHBhc3NlZCBpcyBhIHN0cmluZywganVzdCB0cmFuc2Zvcm0gaXRcbiAgICAgIHJldHVybiB0aGlzLnRyYW5zZm9ybUVuZFJlc3VsdChzdHJpbmdzKTtcbiAgICB9XG5cbiAgICAvLyBlbHNlLCByZXR1cm4gYSB0cmFuc2Zvcm1lZCBlbmQgcmVzdWx0IG9mIHByb2Nlc3NpbmcgdGhlIHRlbXBsYXRlIHdpdGggb3VyIHRhZ1xuICAgIHN0cmluZ3MgPSBzdHJpbmdzLm1hcCh0aGlzLnRyYW5zZm9ybVN0cmluZy5iaW5kKHRoaXMpKTtcbiAgICByZXR1cm4gdGhpcy50cmFuc2Zvcm1FbmRSZXN1bHQoXG4gICAgICBzdHJpbmdzLnJlZHVjZSh0aGlzLnByb2Nlc3NTdWJzdGl0dXRpb25zLmJpbmQodGhpcywgZXhwcmVzc2lvbnMpKSxcbiAgICApO1xuICB9O1xuXG4gIC8qKlxuICAgKiBBbiBpbnRlcm1lZGlhcnkgdGVtcGxhdGUgdGFnIHRoYXQgcmVjZWl2ZXMgYSB0ZW1wbGF0ZSB0YWcgYW5kIHBhc3NlcyB0aGUgcmVzdWx0IG9mIGNhbGxpbmcgdGhlIHRlbXBsYXRlIHdpdGggdGhlIHJlY2VpdmVkXG4gICAqIHRlbXBsYXRlIHRhZyB0byBvdXIgb3duIHRlbXBsYXRlIHRhZy5cbiAgICogQHBhcmFtICB7RnVuY3Rpb259ICAgICAgICBuZXh0VGFnICAgICAgICAgIC0gdGhlIHJlY2VpdmVkIHRlbXBsYXRlIHRhZ1xuICAgKiBAcGFyYW0gIHtBcnJheTxTdHJpbmc+fSAgIHRlbXBsYXRlICAgICAgICAgLSB0aGUgdGVtcGxhdGUgdG8gcHJvY2Vzc1xuICAgKiBAcGFyYW0gIHsuLi4qfSAgICAgICAgICAgIC4uLnN1YnN0aXR1dGlvbnMgLSBgc3Vic3RpdHV0aW9uc2AgaXMgYW4gYXJyYXkgb2YgYWxsIHN1YnN0aXR1dGlvbnMgaW4gdGhlIHRlbXBsYXRlXG4gICAqIEByZXR1cm4geyp9ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAtIHRoZSBmaW5hbCBwcm9jZXNzZWQgdmFsdWVcbiAgICovXG4gIGludGVyaW1UYWcocHJldmlvdXNUYWcsIHRlbXBsYXRlLCAuLi5zdWJzdGl0dXRpb25zKSB7XG4gICAgcmV0dXJuIHRoaXMudGFnYCR7cHJldmlvdXNUYWcodGVtcGxhdGUsIC4uLnN1YnN0aXR1dGlvbnMpfWA7XG4gIH1cblxuICAvKipcbiAgICogUGVyZm9ybXMgYnVsayBwcm9jZXNzaW5nIG9uIHRoZSB0YWdnZWQgdGVtcGxhdGUsIHRyYW5zZm9ybWluZyBlYWNoIHN1YnN0aXR1dGlvbiBhbmQgdGhlblxuICAgKiBjb25jYXRlbmF0aW5nIHRoZSByZXN1bHRpbmcgdmFsdWVzIGludG8gYSBzdHJpbmcuXG4gICAqIEBwYXJhbSAge0FycmF5PCo+fSBzdWJzdGl0dXRpb25zIC0gYW4gYXJyYXkgb2YgYWxsIHJlbWFpbmluZyBzdWJzdGl0dXRpb25zIHByZXNlbnQgaW4gdGhpcyB0ZW1wbGF0ZVxuICAgKiBAcGFyYW0gIHtTdHJpbmd9ICAgcmVzdWx0U29GYXIgICAtIHRoaXMgaXRlcmF0aW9uJ3MgcmVzdWx0IHN0cmluZyBzbyBmYXJcbiAgICogQHBhcmFtICB7U3RyaW5nfSAgIHJlbWFpbmluZ1BhcnQgLSB0aGUgdGVtcGxhdGUgY2h1bmsgYWZ0ZXIgdGhlIGN1cnJlbnQgc3Vic3RpdHV0aW9uXG4gICAqIEByZXR1cm4ge1N0cmluZ30gICAgICAgICAgICAgICAgIC0gdGhlIHJlc3VsdCBvZiBqb2luaW5nIHRoaXMgaXRlcmF0aW9uJ3MgcHJvY2Vzc2VkIHN1YnN0aXR1dGlvbiB3aXRoIHRoZSByZXN1bHRcbiAgICovXG4gIHByb2Nlc3NTdWJzdGl0dXRpb25zKHN1YnN0aXR1dGlvbnMsIHJlc3VsdFNvRmFyLCByZW1haW5pbmdQYXJ0KSB7XG4gICAgY29uc3Qgc3Vic3RpdHV0aW9uID0gdGhpcy50cmFuc2Zvcm1TdWJzdGl0dXRpb24oXG4gICAgICBzdWJzdGl0dXRpb25zLnNoaWZ0KCksXG4gICAgICByZXN1bHRTb0ZhcixcbiAgICApO1xuICAgIHJldHVybiAnJy5jb25jYXQocmVzdWx0U29GYXIsIHN1YnN0aXR1dGlvbiwgcmVtYWluaW5nUGFydCk7XG4gIH1cblxuICAvKipcbiAgICogSXRlcmF0ZSB0aHJvdWdoIGVhY2ggdHJhbnNmb3JtZXIsIGFwcGx5aW5nIHRoZSB0cmFuc2Zvcm1lcidzIGBvblN0cmluZ2AgbWV0aG9kIHRvIHRoZSB0ZW1wbGF0ZVxuICAgKiBzdHJpbmdzIGJlZm9yZSBhbGwgc3Vic3RpdHV0aW9ucyBhcmUgcHJvY2Vzc2VkLlxuICAgKiBAcGFyYW0ge1N0cmluZ30gIHN0ciAtIFRoZSBpbnB1dCBzdHJpbmdcbiAgICogQHJldHVybiB7U3RyaW5nfSAgICAgLSBUaGUgZmluYWwgcmVzdWx0cyBvZiBwcm9jZXNzaW5nIGVhY2ggdHJhbnNmb3JtZXJcbiAgICovXG4gIHRyYW5zZm9ybVN0cmluZyhzdHIpIHtcbiAgICBjb25zdCBjYiA9IChyZXMsIHRyYW5zZm9ybSkgPT5cbiAgICAgIHRyYW5zZm9ybS5vblN0cmluZyA/IHRyYW5zZm9ybS5vblN0cmluZyhyZXMpIDogcmVzO1xuICAgIHJldHVybiB0aGlzLnRyYW5zZm9ybWVycy5yZWR1Y2UoY2IsIHN0cik7XG4gIH1cblxuICAvKipcbiAgICogV2hlbiBhIHN1YnN0aXR1dGlvbiBpcyBlbmNvdW50ZXJlZCwgaXRlcmF0ZXMgdGhyb3VnaCBlYWNoIHRyYW5zZm9ybWVyIGFuZCBhcHBsaWVzIHRoZSB0cmFuc2Zvcm1lcidzXG4gICAqIGBvblN1YnN0aXR1dGlvbmAgbWV0aG9kIHRvIHRoZSBzdWJzdGl0dXRpb24uXG4gICAqIEBwYXJhbSAgeyp9ICAgICAgc3Vic3RpdHV0aW9uIC0gVGhlIGN1cnJlbnQgc3Vic3RpdHV0aW9uXG4gICAqIEBwYXJhbSAge1N0cmluZ30gcmVzdWx0U29GYXIgIC0gVGhlIHJlc3VsdCB1cCB0byBhbmQgZXhjbHVkaW5nIHRoaXMgc3Vic3RpdHV0aW9uLlxuICAgKiBAcmV0dXJuIHsqfSAgICAgICAgICAgICAgICAgICAtIFRoZSBmaW5hbCByZXN1bHQgb2YgYXBwbHlpbmcgYWxsIHN1YnN0aXR1dGlvbiB0cmFuc2Zvcm1hdGlvbnMuXG4gICAqL1xuICB0cmFuc2Zvcm1TdWJzdGl0dXRpb24oc3Vic3RpdHV0aW9uLCByZXN1bHRTb0Zhcikge1xuICAgIGNvbnN0IGNiID0gKHJlcywgdHJhbnNmb3JtKSA9PlxuICAgICAgdHJhbnNmb3JtLm9uU3Vic3RpdHV0aW9uXG4gICAgICAgID8gdHJhbnNmb3JtLm9uU3Vic3RpdHV0aW9uKHJlcywgcmVzdWx0U29GYXIpXG4gICAgICAgIDogcmVzO1xuICAgIHJldHVybiB0aGlzLnRyYW5zZm9ybWVycy5yZWR1Y2UoY2IsIHN1YnN0aXR1dGlvbik7XG4gIH1cblxuICAvKipcbiAgICogSXRlcmF0ZXMgdGhyb3VnaCBlYWNoIHRyYW5zZm9ybWVyLCBhcHBseWluZyB0aGUgdHJhbnNmb3JtZXIncyBgb25FbmRSZXN1bHRgIG1ldGhvZCB0byB0aGVcbiAgICogdGVtcGxhdGUgbGl0ZXJhbCBhZnRlciBhbGwgc3Vic3RpdHV0aW9ucyBoYXZlIGZpbmlzaGVkIHByb2Nlc3NpbmcuXG4gICAqIEBwYXJhbSAge1N0cmluZ30gZW5kUmVzdWx0IC0gVGhlIHByb2Nlc3NlZCB0ZW1wbGF0ZSwganVzdCBiZWZvcmUgaXQgaXMgcmV0dXJuZWQgZnJvbSB0aGUgdGFnXG4gICAqIEByZXR1cm4ge1N0cmluZ30gICAgICAgICAgIC0gVGhlIGZpbmFsIHJlc3VsdHMgb2YgcHJvY2Vzc2luZyBlYWNoIHRyYW5zZm9ybWVyXG4gICAqL1xuICB0cmFuc2Zvcm1FbmRSZXN1bHQoZW5kUmVzdWx0KSB7XG4gICAgY29uc3QgY2IgPSAocmVzLCB0cmFuc2Zvcm0pID0+XG4gICAgICB0cmFuc2Zvcm0ub25FbmRSZXN1bHQgPyB0cmFuc2Zvcm0ub25FbmRSZXN1bHQocmVzKSA6IHJlcztcbiAgICByZXR1cm4gdGhpcy50cmFuc2Zvcm1lcnMucmVkdWNlKGNiLCBlbmRSZXN1bHQpO1xuICB9XG59XG4iXX0=
11131
11132/***/ }),
11133/* 13 */
11134/***/ (function(module, exports, __webpack_require__) {
11135
11136"use strict";
11137
11138
11139Object.defineProperty(exports, "__esModule", {
11140 value: true
11141});
11142/**
11143 * TemplateTag transformer that trims whitespace on the end result of a tagged template
11144 * @param {String} side = '' - The side of the string to trim. Can be 'start' or 'end' (alternatively 'left' or 'right')
11145 * @return {Object} - a TemplateTag transformer
11146 */
11147var trimResultTransformer = function trimResultTransformer() {
11148 var side = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : '';
11149 return {
11150 onEndResult: function onEndResult(endResult) {
11151 if (side === '') {
11152 return endResult.trim();
11153 }
11154
11155 side = side.toLowerCase();
11156
11157 if (side === 'start' || side === 'left') {
11158 return endResult.replace(/^\s*/, '');
11159 }
11160
11161 if (side === 'end' || side === 'right') {
11162 return endResult.replace(/\s*$/, '');
11163 }
11164
11165 throw new Error('Side not supported: ' + side);
11166 }
11167 };
11168};
11169
11170exports.default = trimResultTransformer;
11171module.exports = exports['default'];
11172//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy90cmltUmVzdWx0VHJhbnNmb3JtZXIvdHJpbVJlc3VsdFRyYW5zZm9ybWVyLmpzIl0sIm5hbWVzIjpbInRyaW1SZXN1bHRUcmFuc2Zvcm1lciIsInNpZGUiLCJvbkVuZFJlc3VsdCIsImVuZFJlc3VsdCIsInRyaW0iLCJ0b0xvd2VyQ2FzZSIsInJlcGxhY2UiLCJFcnJvciJdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBQTs7Ozs7QUFLQSxJQUFNQSx3QkFBd0IsU0FBeEJBLHFCQUF3QjtBQUFBLE1BQUNDLElBQUQsdUVBQVEsRUFBUjtBQUFBLFNBQWdCO0FBQzVDQyxlQUQ0Qyx1QkFDaENDLFNBRGdDLEVBQ3JCO0FBQ3JCLFVBQUlGLFNBQVMsRUFBYixFQUFpQjtBQUNmLGVBQU9FLFVBQVVDLElBQVYsRUFBUDtBQUNEOztBQUVESCxhQUFPQSxLQUFLSSxXQUFMLEVBQVA7O0FBRUEsVUFBSUosU0FBUyxPQUFULElBQW9CQSxTQUFTLE1BQWpDLEVBQXlDO0FBQ3ZDLGVBQU9FLFVBQVVHLE9BQVYsQ0FBa0IsTUFBbEIsRUFBMEIsRUFBMUIsQ0FBUDtBQUNEOztBQUVELFVBQUlMLFNBQVMsS0FBVCxJQUFrQkEsU0FBUyxPQUEvQixFQUF3QztBQUN0QyxlQUFPRSxVQUFVRyxPQUFWLENBQWtCLE1BQWxCLEVBQTBCLEVBQTFCLENBQVA7QUFDRDs7QUFFRCxZQUFNLElBQUlDLEtBQUosMEJBQWlDTixJQUFqQyxDQUFOO0FBQ0Q7QUFqQjJDLEdBQWhCO0FBQUEsQ0FBOUI7O2tCQW9CZUQscUIiLCJmaWxlIjoidHJpbVJlc3VsdFRyYW5zZm9ybWVyLmpzIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBUZW1wbGF0ZVRhZyB0cmFuc2Zvcm1lciB0aGF0IHRyaW1zIHdoaXRlc3BhY2Ugb24gdGhlIGVuZCByZXN1bHQgb2YgYSB0YWdnZWQgdGVtcGxhdGVcbiAqIEBwYXJhbSAge1N0cmluZ30gc2lkZSA9ICcnIC0gVGhlIHNpZGUgb2YgdGhlIHN0cmluZyB0byB0cmltLiBDYW4gYmUgJ3N0YXJ0JyBvciAnZW5kJyAoYWx0ZXJuYXRpdmVseSAnbGVmdCcgb3IgJ3JpZ2h0JylcbiAqIEByZXR1cm4ge09iamVjdH0gICAgICAgICAgIC0gYSBUZW1wbGF0ZVRhZyB0cmFuc2Zvcm1lclxuICovXG5jb25zdCB0cmltUmVzdWx0VHJhbnNmb3JtZXIgPSAoc2lkZSA9ICcnKSA9PiAoe1xuICBvbkVuZFJlc3VsdChlbmRSZXN1bHQpIHtcbiAgICBpZiAoc2lkZSA9PT0gJycpIHtcbiAgICAgIHJldHVybiBlbmRSZXN1bHQudHJpbSgpO1xuICAgIH1cblxuICAgIHNpZGUgPSBzaWRlLnRvTG93ZXJDYXNlKCk7XG5cbiAgICBpZiAoc2lkZSA9PT0gJ3N0YXJ0JyB8fCBzaWRlID09PSAnbGVmdCcpIHtcbiAgICAgIHJldHVybiBlbmRSZXN1bHQucmVwbGFjZSgvXlxccyovLCAnJyk7XG4gICAgfVxuXG4gICAgaWYgKHNpZGUgPT09ICdlbmQnIHx8IHNpZGUgPT09ICdyaWdodCcpIHtcbiAgICAgIHJldHVybiBlbmRSZXN1bHQucmVwbGFjZSgvXFxzKiQvLCAnJyk7XG4gICAgfVxuXG4gICAgdGhyb3cgbmV3IEVycm9yKGBTaWRlIG5vdCBzdXBwb3J0ZWQ6ICR7c2lkZX1gKTtcbiAgfSxcbn0pO1xuXG5leHBvcnQgZGVmYXVsdCB0cmltUmVzdWx0VHJhbnNmb3JtZXI7XG4iXX0=
11173
11174/***/ }),
11175/* 14 */
11176/***/ (function(module, exports, __webpack_require__) {
11177
11178"use strict";
11179
11180
11181Object.defineProperty(exports, "__esModule", {
11182 value: true
11183});
11184
11185function _toConsumableArray(arr) { if (Array.isArray(arr)) { for (var i = 0, arr2 = Array(arr.length); i < arr.length; i++) { arr2[i] = arr[i]; } return arr2; } else { return Array.from(arr); } }
11186
11187/**
11188 * strips indentation from a template literal
11189 * @param {String} type = 'initial' - whether to remove all indentation or just leading indentation. can be 'all' or 'initial'
11190 * @return {Object} - a TemplateTag transformer
11191 */
11192var stripIndentTransformer = function stripIndentTransformer() {
11193 var type = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 'initial';
11194 return {
11195 onEndResult: function onEndResult(endResult) {
11196 if (type === 'initial') {
11197 // remove the shortest leading indentation from each line
11198 var match = endResult.match(/^[^\S\n]*(?=\S)/gm);
11199 var indent = match && Math.min.apply(Math, _toConsumableArray(match.map(function (el) {
11200 return el.length;
11201 })));
11202 if (indent) {
11203 var regexp = new RegExp('^.{' + indent + '}', 'gm');
11204 return endResult.replace(regexp, '');
11205 }
11206 return endResult;
11207 }
11208 if (type === 'all') {
11209 // remove all indentation from each line
11210 return endResult.replace(/^[^\S\n]+/gm, '');
11211 }
11212 throw new Error('Unknown type: ' + type);
11213 }
11214 };
11215};
11216
11217exports.default = stripIndentTransformer;
11218module.exports = exports['default'];
11219//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9zdHJpcEluZGVudFRyYW5zZm9ybWVyL3N0cmlwSW5kZW50VHJhbnNmb3JtZXIuanMiXSwibmFtZXMiOlsic3RyaXBJbmRlbnRUcmFuc2Zvcm1lciIsInR5cGUiLCJvbkVuZFJlc3VsdCIsImVuZFJlc3VsdCIsIm1hdGNoIiwiaW5kZW50IiwiTWF0aCIsIm1pbiIsIm1hcCIsImVsIiwibGVuZ3RoIiwicmVnZXhwIiwiUmVnRXhwIiwicmVwbGFjZSIsIkVycm9yIl0sIm1hcHBpbmdzIjoiOzs7Ozs7OztBQUFBOzs7OztBQUtBLElBQU1BLHlCQUF5QixTQUF6QkEsc0JBQXlCO0FBQUEsTUFBQ0MsSUFBRCx1RUFBUSxTQUFSO0FBQUEsU0FBdUI7QUFDcERDLGVBRG9ELHVCQUN4Q0MsU0FEd0MsRUFDN0I7QUFDckIsVUFBSUYsU0FBUyxTQUFiLEVBQXdCO0FBQ3RCO0FBQ0EsWUFBTUcsUUFBUUQsVUFBVUMsS0FBVixDQUFnQixtQkFBaEIsQ0FBZDtBQUNBLFlBQU1DLFNBQVNELFNBQVNFLEtBQUtDLEdBQUwsZ0NBQVlILE1BQU1JLEdBQU4sQ0FBVTtBQUFBLGlCQUFNQyxHQUFHQyxNQUFUO0FBQUEsU0FBVixDQUFaLEVBQXhCO0FBQ0EsWUFBSUwsTUFBSixFQUFZO0FBQ1YsY0FBTU0sU0FBUyxJQUFJQyxNQUFKLFNBQWlCUCxNQUFqQixRQUE0QixJQUE1QixDQUFmO0FBQ0EsaUJBQU9GLFVBQVVVLE9BQVYsQ0FBa0JGLE1BQWxCLEVBQTBCLEVBQTFCLENBQVA7QUFDRDtBQUNELGVBQU9SLFNBQVA7QUFDRDtBQUNELFVBQUlGLFNBQVMsS0FBYixFQUFvQjtBQUNsQjtBQUNBLGVBQU9FLFVBQVVVLE9BQVYsQ0FBa0IsYUFBbEIsRUFBaUMsRUFBakMsQ0FBUDtBQUNEO0FBQ0QsWUFBTSxJQUFJQyxLQUFKLG9CQUEyQmIsSUFBM0IsQ0FBTjtBQUNEO0FBakJtRCxHQUF2QjtBQUFBLENBQS9COztrQkFvQmVELHNCIiwiZmlsZSI6InN0cmlwSW5kZW50VHJhbnNmb3JtZXIuanMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIHN0cmlwcyBpbmRlbnRhdGlvbiBmcm9tIGEgdGVtcGxhdGUgbGl0ZXJhbFxuICogQHBhcmFtICB7U3RyaW5nfSB0eXBlID0gJ2luaXRpYWwnIC0gd2hldGhlciB0byByZW1vdmUgYWxsIGluZGVudGF0aW9uIG9yIGp1c3QgbGVhZGluZyBpbmRlbnRhdGlvbi4gY2FuIGJlICdhbGwnIG9yICdpbml0aWFsJ1xuICogQHJldHVybiB7T2JqZWN0fSAgICAgICAgICAgICAgICAgIC0gYSBUZW1wbGF0ZVRhZyB0cmFuc2Zvcm1lclxuICovXG5jb25zdCBzdHJpcEluZGVudFRyYW5zZm9ybWVyID0gKHR5cGUgPSAnaW5pdGlhbCcpID0+ICh7XG4gIG9uRW5kUmVzdWx0KGVuZFJlc3VsdCkge1xuICAgIGlmICh0eXBlID09PSAnaW5pdGlhbCcpIHtcbiAgICAgIC8vIHJlbW92ZSB0aGUgc2hvcnRlc3QgbGVhZGluZyBpbmRlbnRhdGlvbiBmcm9tIGVhY2ggbGluZVxuICAgICAgY29uc3QgbWF0Y2ggPSBlbmRSZXN1bHQubWF0Y2goL15bXlxcU1xcbl0qKD89XFxTKS9nbSk7XG4gICAgICBjb25zdCBpbmRlbnQgPSBtYXRjaCAmJiBNYXRoLm1pbiguLi5tYXRjaC5tYXAoZWwgPT4gZWwubGVuZ3RoKSk7XG4gICAgICBpZiAoaW5kZW50KSB7XG4gICAgICAgIGNvbnN0IHJlZ2V4cCA9IG5ldyBSZWdFeHAoYF4ueyR7aW5kZW50fX1gLCAnZ20nKTtcbiAgICAgICAgcmV0dXJuIGVuZFJlc3VsdC5yZXBsYWNlKHJlZ2V4cCwgJycpO1xuICAgICAgfVxuICAgICAgcmV0dXJuIGVuZFJlc3VsdDtcbiAgICB9XG4gICAgaWYgKHR5cGUgPT09ICdhbGwnKSB7XG4gICAgICAvLyByZW1vdmUgYWxsIGluZGVudGF0aW9uIGZyb20gZWFjaCBsaW5lXG4gICAgICByZXR1cm4gZW5kUmVzdWx0LnJlcGxhY2UoL15bXlxcU1xcbl0rL2dtLCAnJyk7XG4gICAgfVxuICAgIHRocm93IG5ldyBFcnJvcihgVW5rbm93biB0eXBlOiAke3R5cGV9YCk7XG4gIH0sXG59KTtcblxuZXhwb3J0IGRlZmF1bHQgc3RyaXBJbmRlbnRUcmFuc2Zvcm1lcjtcbiJdfQ==
11220
11221/***/ }),
11222/* 15 */
11223/***/ (function(module, exports, __webpack_require__) {
11224
11225"use strict";
11226
11227
11228Object.defineProperty(exports, "__esModule", {
11229 value: true
11230});
11231/**
11232 * Replaces tabs, newlines and spaces with the chosen value when they occur in sequences
11233 * @param {(String|RegExp)} replaceWhat - the value or pattern that should be replaced
11234 * @param {*} replaceWith - the replacement value
11235 * @return {Object} - a TemplateTag transformer
11236 */
11237var replaceResultTransformer = function replaceResultTransformer(replaceWhat, replaceWith) {
11238 return {
11239 onEndResult: function onEndResult(endResult) {
11240 if (replaceWhat == null || replaceWith == null) {
11241 throw new Error('replaceResultTransformer requires at least 2 arguments.');
11242 }
11243 return endResult.replace(replaceWhat, replaceWith);
11244 }
11245 };
11246};
11247
11248exports.default = replaceResultTransformer;
11249module.exports = exports['default'];
11250//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9yZXBsYWNlUmVzdWx0VHJhbnNmb3JtZXIvcmVwbGFjZVJlc3VsdFRyYW5zZm9ybWVyLmpzIl0sIm5hbWVzIjpbInJlcGxhY2VSZXN1bHRUcmFuc2Zvcm1lciIsInJlcGxhY2VXaGF0IiwicmVwbGFjZVdpdGgiLCJvbkVuZFJlc3VsdCIsImVuZFJlc3VsdCIsIkVycm9yIiwicmVwbGFjZSJdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBQTs7Ozs7O0FBTUEsSUFBTUEsMkJBQTJCLFNBQTNCQSx3QkFBMkIsQ0FBQ0MsV0FBRCxFQUFjQyxXQUFkO0FBQUEsU0FBK0I7QUFDOURDLGVBRDhELHVCQUNsREMsU0FEa0QsRUFDdkM7QUFDckIsVUFBSUgsZUFBZSxJQUFmLElBQXVCQyxlQUFlLElBQTFDLEVBQWdEO0FBQzlDLGNBQU0sSUFBSUcsS0FBSixDQUNKLHlEQURJLENBQU47QUFHRDtBQUNELGFBQU9ELFVBQVVFLE9BQVYsQ0FBa0JMLFdBQWxCLEVBQStCQyxXQUEvQixDQUFQO0FBQ0Q7QUFSNkQsR0FBL0I7QUFBQSxDQUFqQzs7a0JBV2VGLHdCIiwiZmlsZSI6InJlcGxhY2VSZXN1bHRUcmFuc2Zvcm1lci5qcyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogUmVwbGFjZXMgdGFicywgbmV3bGluZXMgYW5kIHNwYWNlcyB3aXRoIHRoZSBjaG9zZW4gdmFsdWUgd2hlbiB0aGV5IG9jY3VyIGluIHNlcXVlbmNlc1xuICogQHBhcmFtICB7KFN0cmluZ3xSZWdFeHApfSByZXBsYWNlV2hhdCAtIHRoZSB2YWx1ZSBvciBwYXR0ZXJuIHRoYXQgc2hvdWxkIGJlIHJlcGxhY2VkXG4gKiBAcGFyYW0gIHsqfSAgICAgICAgICAgICAgIHJlcGxhY2VXaXRoIC0gdGhlIHJlcGxhY2VtZW50IHZhbHVlXG4gKiBAcmV0dXJuIHtPYmplY3R9ICAgICAgICAgICAgICAgICAgICAgIC0gYSBUZW1wbGF0ZVRhZyB0cmFuc2Zvcm1lclxuICovXG5jb25zdCByZXBsYWNlUmVzdWx0VHJhbnNmb3JtZXIgPSAocmVwbGFjZVdoYXQsIHJlcGxhY2VXaXRoKSA9PiAoe1xuICBvbkVuZFJlc3VsdChlbmRSZXN1bHQpIHtcbiAgICBpZiAocmVwbGFjZVdoYXQgPT0gbnVsbCB8fCByZXBsYWNlV2l0aCA9PSBudWxsKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICAgICdyZXBsYWNlUmVzdWx0VHJhbnNmb3JtZXIgcmVxdWlyZXMgYXQgbGVhc3QgMiBhcmd1bWVudHMuJyxcbiAgICAgICk7XG4gICAgfVxuICAgIHJldHVybiBlbmRSZXN1bHQucmVwbGFjZShyZXBsYWNlV2hhdCwgcmVwbGFjZVdpdGgpO1xuICB9LFxufSk7XG5cbmV4cG9ydCBkZWZhdWx0IHJlcGxhY2VSZXN1bHRUcmFuc2Zvcm1lcjtcbiJdfQ==
11251
11252/***/ }),
11253/* 16 */
11254/***/ (function(module, exports, __webpack_require__) {
11255
11256"use strict";
11257
11258
11259Object.defineProperty(exports, "__esModule", {
11260 value: true
11261});
11262var replaceSubstitutionTransformer = function replaceSubstitutionTransformer(replaceWhat, replaceWith) {
11263 return {
11264 onSubstitution: function onSubstitution(substitution, resultSoFar) {
11265 if (replaceWhat == null || replaceWith == null) {
11266 throw new Error('replaceSubstitutionTransformer requires at least 2 arguments.');
11267 }
11268
11269 // Do not touch if null or undefined
11270 if (substitution == null) {
11271 return substitution;
11272 } else {
11273 return substitution.toString().replace(replaceWhat, replaceWith);
11274 }
11275 }
11276 };
11277};
11278
11279exports.default = replaceSubstitutionTransformer;
11280module.exports = exports['default'];
11281//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9yZXBsYWNlU3Vic3RpdHV0aW9uVHJhbnNmb3JtZXIvcmVwbGFjZVN1YnN0aXR1dGlvblRyYW5zZm9ybWVyLmpzIl0sIm5hbWVzIjpbInJlcGxhY2VTdWJzdGl0dXRpb25UcmFuc2Zvcm1lciIsInJlcGxhY2VXaGF0IiwicmVwbGFjZVdpdGgiLCJvblN1YnN0aXR1dGlvbiIsInN1YnN0aXR1dGlvbiIsInJlc3VsdFNvRmFyIiwiRXJyb3IiLCJ0b1N0cmluZyIsInJlcGxhY2UiXSwibWFwcGluZ3MiOiI7Ozs7O0FBQUEsSUFBTUEsaUNBQWlDLFNBQWpDQSw4QkFBaUMsQ0FBQ0MsV0FBRCxFQUFjQyxXQUFkO0FBQUEsU0FBK0I7QUFDcEVDLGtCQURvRSwwQkFDckRDLFlBRHFELEVBQ3ZDQyxXQUR1QyxFQUMxQjtBQUN4QyxVQUFJSixlQUFlLElBQWYsSUFBdUJDLGVBQWUsSUFBMUMsRUFBZ0Q7QUFDOUMsY0FBTSxJQUFJSSxLQUFKLENBQ0osK0RBREksQ0FBTjtBQUdEOztBQUVEO0FBQ0EsVUFBSUYsZ0JBQWdCLElBQXBCLEVBQTBCO0FBQ3hCLGVBQU9BLFlBQVA7QUFDRCxPQUZELE1BRU87QUFDTCxlQUFPQSxhQUFhRyxRQUFiLEdBQXdCQyxPQUF4QixDQUFnQ1AsV0FBaEMsRUFBNkNDLFdBQTdDLENBQVA7QUFDRDtBQUNGO0FBZG1FLEdBQS9CO0FBQUEsQ0FBdkM7O2tCQWlCZUYsOEIiLCJmaWxlIjoicmVwbGFjZVN1YnN0aXR1dGlvblRyYW5zZm9ybWVyLmpzIiwic291cmNlc0NvbnRlbnQiOlsiY29uc3QgcmVwbGFjZVN1YnN0aXR1dGlvblRyYW5zZm9ybWVyID0gKHJlcGxhY2VXaGF0LCByZXBsYWNlV2l0aCkgPT4gKHtcbiAgb25TdWJzdGl0dXRpb24oc3Vic3RpdHV0aW9uLCByZXN1bHRTb0Zhcikge1xuICAgIGlmIChyZXBsYWNlV2hhdCA9PSBudWxsIHx8IHJlcGxhY2VXaXRoID09IG51bGwpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgICAgJ3JlcGxhY2VTdWJzdGl0dXRpb25UcmFuc2Zvcm1lciByZXF1aXJlcyBhdCBsZWFzdCAyIGFyZ3VtZW50cy4nLFxuICAgICAgKTtcbiAgICB9XG5cbiAgICAvLyBEbyBub3QgdG91Y2ggaWYgbnVsbCBvciB1bmRlZmluZWRcbiAgICBpZiAoc3Vic3RpdHV0aW9uID09IG51bGwpIHtcbiAgICAgIHJldHVybiBzdWJzdGl0dXRpb247XG4gICAgfSBlbHNlIHtcbiAgICAgIHJldHVybiBzdWJzdGl0dXRpb24udG9TdHJpbmcoKS5yZXBsYWNlKHJlcGxhY2VXaGF0LCByZXBsYWNlV2l0aCk7XG4gICAgfVxuICB9LFxufSk7XG5cbmV4cG9ydCBkZWZhdWx0IHJlcGxhY2VTdWJzdGl0dXRpb25UcmFuc2Zvcm1lcjtcbiJdfQ==
11282
11283/***/ }),
11284/* 17 */
11285/***/ (function(module, exports, __webpack_require__) {
11286
11287"use strict";
11288
11289
11290Object.defineProperty(exports, "__esModule", {
11291 value: true
11292});
11293exports.default = undefined;
11294
11295var _replaceStringTransformer = __webpack_require__(18);
11296
11297var _replaceStringTransformer2 = _interopRequireDefault(_replaceStringTransformer);
11298
11299function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
11300
11301exports.default = _replaceStringTransformer2.default;
11302module.exports = exports['default'];
11303//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9yZXBsYWNlU3RyaW5nVHJhbnNmb3JtZXIvaW5kZXguanMiXSwibmFtZXMiOlsiZGVmYXVsdCJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7OztRQUFPQSxPIiwiZmlsZSI6ImluZGV4LmpzIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGRlZmF1bHQgZnJvbSAnLi9yZXBsYWNlU3RyaW5nVHJhbnNmb3JtZXInO1xuIl19
11304
11305/***/ }),
11306/* 18 */
11307/***/ (function(module, exports, __webpack_require__) {
11308
11309"use strict";
11310
11311
11312Object.defineProperty(exports, "__esModule", {
11313 value: true
11314});
11315var replaceStringTransformer = function replaceStringTransformer(replaceWhat, replaceWith) {
11316 return {
11317 onString: function onString(str) {
11318 if (replaceWhat == null || replaceWith == null) {
11319 throw new Error('replaceStringTransformer requires at least 2 arguments.');
11320 }
11321
11322 return str.replace(replaceWhat, replaceWith);
11323 }
11324 };
11325};
11326
11327exports.default = replaceStringTransformer;
11328module.exports = exports['default'];
11329//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9yZXBsYWNlU3RyaW5nVHJhbnNmb3JtZXIvcmVwbGFjZVN0cmluZ1RyYW5zZm9ybWVyLmpzIl0sIm5hbWVzIjpbInJlcGxhY2VTdHJpbmdUcmFuc2Zvcm1lciIsInJlcGxhY2VXaGF0IiwicmVwbGFjZVdpdGgiLCJvblN0cmluZyIsInN0ciIsIkVycm9yIiwicmVwbGFjZSJdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBQSxJQUFNQSwyQkFBMkIsU0FBM0JBLHdCQUEyQixDQUFDQyxXQUFELEVBQWNDLFdBQWQ7QUFBQSxTQUErQjtBQUM5REMsWUFEOEQsb0JBQ3JEQyxHQURxRCxFQUNoRDtBQUNaLFVBQUlILGVBQWUsSUFBZixJQUF1QkMsZUFBZSxJQUExQyxFQUFnRDtBQUM5QyxjQUFNLElBQUlHLEtBQUosQ0FDSix5REFESSxDQUFOO0FBR0Q7O0FBRUQsYUFBT0QsSUFBSUUsT0FBSixDQUFZTCxXQUFaLEVBQXlCQyxXQUF6QixDQUFQO0FBQ0Q7QUFUNkQsR0FBL0I7QUFBQSxDQUFqQzs7a0JBWWVGLHdCIiwiZmlsZSI6InJlcGxhY2VTdHJpbmdUcmFuc2Zvcm1lci5qcyIsInNvdXJjZXNDb250ZW50IjpbImNvbnN0IHJlcGxhY2VTdHJpbmdUcmFuc2Zvcm1lciA9IChyZXBsYWNlV2hhdCwgcmVwbGFjZVdpdGgpID0+ICh7XG4gIG9uU3RyaW5nKHN0cikge1xuICAgIGlmIChyZXBsYWNlV2hhdCA9PSBudWxsIHx8IHJlcGxhY2VXaXRoID09IG51bGwpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgICAgJ3JlcGxhY2VTdHJpbmdUcmFuc2Zvcm1lciByZXF1aXJlcyBhdCBsZWFzdCAyIGFyZ3VtZW50cy4nLFxuICAgICAgKTtcbiAgICB9XG5cbiAgICByZXR1cm4gc3RyLnJlcGxhY2UocmVwbGFjZVdoYXQsIHJlcGxhY2VXaXRoKTtcbiAgfSxcbn0pO1xuXG5leHBvcnQgZGVmYXVsdCByZXBsYWNlU3RyaW5nVHJhbnNmb3JtZXI7XG4iXX0=
11330
11331/***/ }),
11332/* 19 */
11333/***/ (function(module, exports, __webpack_require__) {
11334
11335"use strict";
11336
11337
11338Object.defineProperty(exports, "__esModule", {
11339 value: true
11340});
11341var defaults = {
11342 separator: '',
11343 conjunction: '',
11344 serial: false
11345};
11346
11347/**
11348 * Converts an array substitution to a string containing a list
11349 * @param {String} [opts.separator = ''] - the character that separates each item
11350 * @param {String} [opts.conjunction = ''] - replace the last separator with this
11351 * @param {Boolean} [opts.serial = false] - include the separator before the conjunction? (Oxford comma use-case)
11352 *
11353 * @return {Object} - a TemplateTag transformer
11354 */
11355var inlineArrayTransformer = function inlineArrayTransformer() {
11356 var opts = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : defaults;
11357 return {
11358 onSubstitution: function onSubstitution(substitution, resultSoFar) {
11359 // only operate on arrays
11360 if (Array.isArray(substitution)) {
11361 var arrayLength = substitution.length;
11362 var separator = opts.separator;
11363 var conjunction = opts.conjunction;
11364 var serial = opts.serial;
11365 // join each item in the array into a string where each item is separated by separator
11366 // be sure to maintain indentation
11367 var indent = resultSoFar.match(/(\n?[^\S\n]+)$/);
11368 if (indent) {
11369 substitution = substitution.join(separator + indent[1]);
11370 } else {
11371 substitution = substitution.join(separator + ' ');
11372 }
11373 // if conjunction is set, replace the last separator with conjunction, but only if there is more than one substitution
11374 if (conjunction && arrayLength > 1) {
11375 var separatorIndex = substitution.lastIndexOf(separator);
11376 substitution = substitution.slice(0, separatorIndex) + (serial ? separator : '') + ' ' + conjunction + substitution.slice(separatorIndex + 1);
11377 }
11378 }
11379 return substitution;
11380 }
11381 };
11382};
11383
11384exports.default = inlineArrayTransformer;
11385module.exports = exports['default'];
11386//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9pbmxpbmVBcnJheVRyYW5zZm9ybWVyL2lubGluZUFycmF5VHJhbnNmb3JtZXIuanMiXSwibmFtZXMiOlsiZGVmYXVsdHMiLCJzZXBhcmF0b3IiLCJjb25qdW5jdGlvbiIsInNlcmlhbCIsImlubGluZUFycmF5VHJhbnNmb3JtZXIiLCJvcHRzIiwib25TdWJzdGl0dXRpb24iLCJzdWJzdGl0dXRpb24iLCJyZXN1bHRTb0ZhciIsIkFycmF5IiwiaXNBcnJheSIsImFycmF5TGVuZ3RoIiwibGVuZ3RoIiwiaW5kZW50IiwibWF0Y2giLCJqb2luIiwic2VwYXJhdG9ySW5kZXgiLCJsYXN0SW5kZXhPZiIsInNsaWNlIl0sIm1hcHBpbmdzIjoiOzs7OztBQUFBLElBQU1BLFdBQVc7QUFDZkMsYUFBVyxFQURJO0FBRWZDLGVBQWEsRUFGRTtBQUdmQyxVQUFRO0FBSE8sQ0FBakI7O0FBTUE7Ozs7Ozs7O0FBUUEsSUFBTUMseUJBQXlCLFNBQXpCQSxzQkFBeUI7QUFBQSxNQUFDQyxJQUFELHVFQUFRTCxRQUFSO0FBQUEsU0FBc0I7QUFDbkRNLGtCQURtRCwwQkFDcENDLFlBRG9DLEVBQ3RCQyxXQURzQixFQUNUO0FBQ3hDO0FBQ0EsVUFBSUMsTUFBTUMsT0FBTixDQUFjSCxZQUFkLENBQUosRUFBaUM7QUFDL0IsWUFBTUksY0FBY0osYUFBYUssTUFBakM7QUFDQSxZQUFNWCxZQUFZSSxLQUFLSixTQUF2QjtBQUNBLFlBQU1DLGNBQWNHLEtBQUtILFdBQXpCO0FBQ0EsWUFBTUMsU0FBU0UsS0FBS0YsTUFBcEI7QUFDQTtBQUNBO0FBQ0EsWUFBTVUsU0FBU0wsWUFBWU0sS0FBWixDQUFrQixnQkFBbEIsQ0FBZjtBQUNBLFlBQUlELE1BQUosRUFBWTtBQUNWTix5QkFBZUEsYUFBYVEsSUFBYixDQUFrQmQsWUFBWVksT0FBTyxDQUFQLENBQTlCLENBQWY7QUFDRCxTQUZELE1BRU87QUFDTE4seUJBQWVBLGFBQWFRLElBQWIsQ0FBa0JkLFlBQVksR0FBOUIsQ0FBZjtBQUNEO0FBQ0Q7QUFDQSxZQUFJQyxlQUFlUyxjQUFjLENBQWpDLEVBQW9DO0FBQ2xDLGNBQU1LLGlCQUFpQlQsYUFBYVUsV0FBYixDQUF5QmhCLFNBQXpCLENBQXZCO0FBQ0FNLHlCQUNFQSxhQUFhVyxLQUFiLENBQW1CLENBQW5CLEVBQXNCRixjQUF0QixLQUNDYixTQUFTRixTQUFULEdBQXFCLEVBRHRCLElBRUEsR0FGQSxHQUdBQyxXQUhBLEdBSUFLLGFBQWFXLEtBQWIsQ0FBbUJGLGlCQUFpQixDQUFwQyxDQUxGO0FBTUQ7QUFDRjtBQUNELGFBQU9ULFlBQVA7QUFDRDtBQTVCa0QsR0FBdEI7QUFBQSxDQUEvQjs7a0JBK0JlSCxzQiIsImZpbGUiOiJpbmxpbmVBcnJheVRyYW5zZm9ybWVyLmpzIiwic291cmNlc0NvbnRlbnQiOlsiY29uc3QgZGVmYXVsdHMgPSB7XG4gIHNlcGFyYXRvcjogJycsXG4gIGNvbmp1bmN0aW9uOiAnJyxcbiAgc2VyaWFsOiBmYWxzZSxcbn07XG5cbi8qKlxuICogQ29udmVydHMgYW4gYXJyYXkgc3Vic3RpdHV0aW9uIHRvIGEgc3RyaW5nIGNvbnRhaW5pbmcgYSBsaXN0XG4gKiBAcGFyYW0gIHtTdHJpbmd9IFtvcHRzLnNlcGFyYXRvciA9ICcnXSAtIHRoZSBjaGFyYWN0ZXIgdGhhdCBzZXBhcmF0ZXMgZWFjaCBpdGVtXG4gKiBAcGFyYW0gIHtTdHJpbmd9IFtvcHRzLmNvbmp1bmN0aW9uID0gJyddICAtIHJlcGxhY2UgdGhlIGxhc3Qgc2VwYXJhdG9yIHdpdGggdGhpc1xuICogQHBhcmFtICB7Qm9vbGVhbn0gW29wdHMuc2VyaWFsID0gZmFsc2VdIC0gaW5jbHVkZSB0aGUgc2VwYXJhdG9yIGJlZm9yZSB0aGUgY29uanVuY3Rpb24/IChPeGZvcmQgY29tbWEgdXNlLWNhc2UpXG4gKlxuICogQHJldHVybiB7T2JqZWN0fSAgICAgICAgICAgICAgICAgICAgIC0gYSBUZW1wbGF0ZVRhZyB0cmFuc2Zvcm1lclxuICovXG5jb25zdCBpbmxpbmVBcnJheVRyYW5zZm9ybWVyID0gKG9wdHMgPSBkZWZhdWx0cykgPT4gKHtcbiAgb25TdWJzdGl0dXRpb24oc3Vic3RpdHV0aW9uLCByZXN1bHRTb0Zhcikge1xuICAgIC8vIG9ubHkgb3BlcmF0ZSBvbiBhcnJheXNcbiAgICBpZiAoQXJyYXkuaXNBcnJheShzdWJzdGl0dXRpb24pKSB7XG4gICAgICBjb25zdCBhcnJheUxlbmd0aCA9IHN1YnN0aXR1dGlvbi5sZW5ndGg7XG4gICAgICBjb25zdCBzZXBhcmF0b3IgPSBvcHRzLnNlcGFyYXRvcjtcbiAgICAgIGNvbnN0IGNvbmp1bmN0aW9uID0gb3B0cy5jb25qdW5jdGlvbjtcbiAgICAgIGNvbnN0IHNlcmlhbCA9IG9wdHMuc2VyaWFsO1xuICAgICAgLy8gam9pbiBlYWNoIGl0ZW0gaW4gdGhlIGFycmF5IGludG8gYSBzdHJpbmcgd2hlcmUgZWFjaCBpdGVtIGlzIHNlcGFyYXRlZCBieSBzZXBhcmF0b3JcbiAgICAgIC8vIGJlIHN1cmUgdG8gbWFpbnRhaW4gaW5kZW50YXRpb25cbiAgICAgIGNvbnN0IGluZGVudCA9IHJlc3VsdFNvRmFyLm1hdGNoKC8oXFxuP1teXFxTXFxuXSspJC8pO1xuICAgICAgaWYgKGluZGVudCkge1xuICAgICAgICBzdWJzdGl0dXRpb24gPSBzdWJzdGl0dXRpb24uam9pbihzZXBhcmF0b3IgKyBpbmRlbnRbMV0pO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgc3Vic3RpdHV0aW9uID0gc3Vic3RpdHV0aW9uLmpvaW4oc2VwYXJhdG9yICsgJyAnKTtcbiAgICAgIH1cbiAgICAgIC8vIGlmIGNvbmp1bmN0aW9uIGlzIHNldCwgcmVwbGFjZSB0aGUgbGFzdCBzZXBhcmF0b3Igd2l0aCBjb25qdW5jdGlvbiwgYnV0IG9ubHkgaWYgdGhlcmUgaXMgbW9yZSB0aGFuIG9uZSBzdWJzdGl0dXRpb25cbiAgICAgIGlmIChjb25qdW5jdGlvbiAmJiBhcnJheUxlbmd0aCA+IDEpIHtcbiAgICAgICAgY29uc3Qgc2VwYXJhdG9ySW5kZXggPSBzdWJzdGl0dXRpb24ubGFzdEluZGV4T2Yoc2VwYXJhdG9yKTtcbiAgICAgICAgc3Vic3RpdHV0aW9uID1cbiAgICAgICAgICBzdWJzdGl0dXRpb24uc2xpY2UoMCwgc2VwYXJhdG9ySW5kZXgpICtcbiAgICAgICAgICAoc2VyaWFsID8gc2VwYXJhdG9yIDogJycpICtcbiAgICAgICAgICAnICcgK1xuICAgICAgICAgIGNvbmp1bmN0aW9uICtcbiAgICAgICAgICBzdWJzdGl0dXRpb24uc2xpY2Uoc2VwYXJhdG9ySW5kZXggKyAxKTtcbiAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIHN1YnN0aXR1dGlvbjtcbiAgfSxcbn0pO1xuXG5leHBvcnQgZGVmYXVsdCBpbmxpbmVBcnJheVRyYW5zZm9ybWVyO1xuIl19
11387
11388/***/ }),
11389/* 20 */
11390/***/ (function(module, exports, __webpack_require__) {
11391
11392"use strict";
11393
11394
11395Object.defineProperty(exports, "__esModule", {
11396 value: true
11397});
11398var splitStringTransformer = function splitStringTransformer(splitBy) {
11399 return {
11400 onSubstitution: function onSubstitution(substitution, resultSoFar) {
11401 if (splitBy != null && typeof splitBy === 'string') {
11402 if (typeof substitution === 'string' && substitution.includes(splitBy)) {
11403 substitution = substitution.split(splitBy);
11404 }
11405 } else {
11406 throw new Error('You need to specify a string character to split by.');
11407 }
11408 return substitution;
11409 }
11410 };
11411};
11412
11413exports.default = splitStringTransformer;
11414module.exports = exports['default'];
11415//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9zcGxpdFN0cmluZ1RyYW5zZm9ybWVyL3NwbGl0U3RyaW5nVHJhbnNmb3JtZXIuanMiXSwibmFtZXMiOlsic3BsaXRTdHJpbmdUcmFuc2Zvcm1lciIsIm9uU3Vic3RpdHV0aW9uIiwic3Vic3RpdHV0aW9uIiwicmVzdWx0U29GYXIiLCJzcGxpdEJ5IiwiaW5jbHVkZXMiLCJzcGxpdCIsIkVycm9yIl0sIm1hcHBpbmdzIjoiOzs7OztBQUFBLElBQU1BLHlCQUF5QixTQUF6QkEsc0JBQXlCO0FBQUEsU0FBWTtBQUN6Q0Msa0JBRHlDLDBCQUMxQkMsWUFEMEIsRUFDWkMsV0FEWSxFQUNDO0FBQ3hDLFVBQUlDLFdBQVcsSUFBWCxJQUFtQixPQUFPQSxPQUFQLEtBQW1CLFFBQTFDLEVBQW9EO0FBQ2xELFlBQUksT0FBT0YsWUFBUCxLQUF3QixRQUF4QixJQUFvQ0EsYUFBYUcsUUFBYixDQUFzQkQsT0FBdEIsQ0FBeEMsRUFBd0U7QUFDdEVGLHlCQUFlQSxhQUFhSSxLQUFiLENBQW1CRixPQUFuQixDQUFmO0FBQ0Q7QUFDRixPQUpELE1BSU87QUFDTCxjQUFNLElBQUlHLEtBQUosQ0FBVSxxREFBVixDQUFOO0FBQ0Q7QUFDRCxhQUFPTCxZQUFQO0FBQ0Q7QUFWd0MsR0FBWjtBQUFBLENBQS9COztrQkFhZUYsc0IiLCJmaWxlIjoic3BsaXRTdHJpbmdUcmFuc2Zvcm1lci5qcyIsInNvdXJjZXNDb250ZW50IjpbImNvbnN0IHNwbGl0U3RyaW5nVHJhbnNmb3JtZXIgPSBzcGxpdEJ5ID0+ICh7XG4gIG9uU3Vic3RpdHV0aW9uKHN1YnN0aXR1dGlvbiwgcmVzdWx0U29GYXIpIHtcbiAgICBpZiAoc3BsaXRCeSAhPSBudWxsICYmIHR5cGVvZiBzcGxpdEJ5ID09PSAnc3RyaW5nJykge1xuICAgICAgaWYgKHR5cGVvZiBzdWJzdGl0dXRpb24gPT09ICdzdHJpbmcnICYmIHN1YnN0aXR1dGlvbi5pbmNsdWRlcyhzcGxpdEJ5KSkge1xuICAgICAgICBzdWJzdGl0dXRpb24gPSBzdWJzdGl0dXRpb24uc3BsaXQoc3BsaXRCeSk7XG4gICAgICB9XG4gICAgfSBlbHNlIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcignWW91IG5lZWQgdG8gc3BlY2lmeSBhIHN0cmluZyBjaGFyYWN0ZXIgdG8gc3BsaXQgYnkuJyk7XG4gICAgfVxuICAgIHJldHVybiBzdWJzdGl0dXRpb247XG4gIH0sXG59KTtcblxuZXhwb3J0IGRlZmF1bHQgc3BsaXRTdHJpbmdUcmFuc2Zvcm1lcjtcbiJdfQ==
11416
11417/***/ }),
11418/* 21 */
11419/***/ (function(module, exports, __webpack_require__) {
11420
11421"use strict";
11422
11423
11424Object.defineProperty(exports, "__esModule", {
11425 value: true
11426});
11427var isValidValue = function isValidValue(x) {
11428 return x != null && !Number.isNaN(x) && typeof x !== 'boolean';
11429};
11430
11431var removeNonPrintingValuesTransformer = function removeNonPrintingValuesTransformer() {
11432 return {
11433 onSubstitution: function onSubstitution(substitution) {
11434 if (Array.isArray(substitution)) {
11435 return substitution.filter(isValidValue);
11436 }
11437 if (isValidValue(substitution)) {
11438 return substitution;
11439 }
11440 return '';
11441 }
11442 };
11443};
11444
11445exports.default = removeNonPrintingValuesTransformer;
11446module.exports = exports['default'];
11447//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9yZW1vdmVOb25QcmludGluZ1ZhbHVlc1RyYW5zZm9ybWVyL3JlbW92ZU5vblByaW50aW5nVmFsdWVzVHJhbnNmb3JtZXIuanMiXSwibmFtZXMiOlsiaXNWYWxpZFZhbHVlIiwieCIsIk51bWJlciIsImlzTmFOIiwicmVtb3ZlTm9uUHJpbnRpbmdWYWx1ZXNUcmFuc2Zvcm1lciIsIm9uU3Vic3RpdHV0aW9uIiwic3Vic3RpdHV0aW9uIiwiQXJyYXkiLCJpc0FycmF5IiwiZmlsdGVyIl0sIm1hcHBpbmdzIjoiOzs7OztBQUFBLElBQU1BLGVBQWUsU0FBZkEsWUFBZTtBQUFBLFNBQ25CQyxLQUFLLElBQUwsSUFBYSxDQUFDQyxPQUFPQyxLQUFQLENBQWFGLENBQWIsQ0FBZCxJQUFpQyxPQUFPQSxDQUFQLEtBQWEsU0FEM0I7QUFBQSxDQUFyQjs7QUFHQSxJQUFNRyxxQ0FBcUMsU0FBckNBLGtDQUFxQztBQUFBLFNBQU87QUFDaERDLGtCQURnRCwwQkFDakNDLFlBRGlDLEVBQ25CO0FBQzNCLFVBQUlDLE1BQU1DLE9BQU4sQ0FBY0YsWUFBZCxDQUFKLEVBQWlDO0FBQy9CLGVBQU9BLGFBQWFHLE1BQWIsQ0FBb0JULFlBQXBCLENBQVA7QUFDRDtBQUNELFVBQUlBLGFBQWFNLFlBQWIsQ0FBSixFQUFnQztBQUM5QixlQUFPQSxZQUFQO0FBQ0Q7QUFDRCxhQUFPLEVBQVA7QUFDRDtBQVQrQyxHQUFQO0FBQUEsQ0FBM0M7O2tCQVllRixrQyIsImZpbGUiOiJyZW1vdmVOb25QcmludGluZ1ZhbHVlc1RyYW5zZm9ybWVyLmpzIiwic291cmNlc0NvbnRlbnQiOlsiY29uc3QgaXNWYWxpZFZhbHVlID0geCA9PlxuICB4ICE9IG51bGwgJiYgIU51bWJlci5pc05hTih4KSAmJiB0eXBlb2YgeCAhPT0gJ2Jvb2xlYW4nO1xuXG5jb25zdCByZW1vdmVOb25QcmludGluZ1ZhbHVlc1RyYW5zZm9ybWVyID0gKCkgPT4gKHtcbiAgb25TdWJzdGl0dXRpb24oc3Vic3RpdHV0aW9uKSB7XG4gICAgaWYgKEFycmF5LmlzQXJyYXkoc3Vic3RpdHV0aW9uKSkge1xuICAgICAgcmV0dXJuIHN1YnN0aXR1dGlvbi5maWx0ZXIoaXNWYWxpZFZhbHVlKTtcbiAgICB9XG4gICAgaWYgKGlzVmFsaWRWYWx1ZShzdWJzdGl0dXRpb24pKSB7XG4gICAgICByZXR1cm4gc3Vic3RpdHV0aW9uO1xuICAgIH1cbiAgICByZXR1cm4gJyc7XG4gIH0sXG59KTtcblxuZXhwb3J0IGRlZmF1bHQgcmVtb3ZlTm9uUHJpbnRpbmdWYWx1ZXNUcmFuc2Zvcm1lcjtcbiJdfQ==
11448
11449/***/ }),
11450/* 22 */
11451/***/ (function(module, exports, __webpack_require__) {
11452
11453"use strict";
11454
11455
11456Object.defineProperty(exports, "__esModule", {
11457 value: true
11458});
11459exports.default = undefined;
11460
11461var _commaLists = __webpack_require__(23);
11462
11463var _commaLists2 = _interopRequireDefault(_commaLists);
11464
11465function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
11466
11467exports.default = _commaLists2.default;
11468module.exports = exports['default'];
11469//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9jb21tYUxpc3RzL2luZGV4LmpzIl0sIm5hbWVzIjpbImRlZmF1bHQiXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7UUFBT0EsTyIsImZpbGUiOiJpbmRleC5qcyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBkZWZhdWx0IGZyb20gJy4vY29tbWFMaXN0cyc7XG4iXX0=
11470
11471/***/ }),
11472/* 23 */
11473/***/ (function(module, exports, __webpack_require__) {
11474
11475"use strict";
11476
11477
11478Object.defineProperty(exports, "__esModule", {
11479 value: true
11480});
11481
11482var _TemplateTag = __webpack_require__(0);
11483
11484var _TemplateTag2 = _interopRequireDefault(_TemplateTag);
11485
11486var _stripIndentTransformer = __webpack_require__(3);
11487
11488var _stripIndentTransformer2 = _interopRequireDefault(_stripIndentTransformer);
11489
11490var _inlineArrayTransformer = __webpack_require__(2);
11491
11492var _inlineArrayTransformer2 = _interopRequireDefault(_inlineArrayTransformer);
11493
11494var _trimResultTransformer = __webpack_require__(1);
11495
11496var _trimResultTransformer2 = _interopRequireDefault(_trimResultTransformer);
11497
11498function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
11499
11500var commaLists = new _TemplateTag2.default((0, _inlineArrayTransformer2.default)({ separator: ',' }), _stripIndentTransformer2.default, _trimResultTransformer2.default);
11501
11502exports.default = commaLists;
11503module.exports = exports['default'];
11504//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9jb21tYUxpc3RzL2NvbW1hTGlzdHMuanMiXSwibmFtZXMiOlsiY29tbWFMaXN0cyIsInNlcGFyYXRvciJdLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBQUE7Ozs7QUFDQTs7OztBQUNBOzs7O0FBQ0E7Ozs7OztBQUVBLElBQU1BLGFBQWEsMEJBQ2pCLHNDQUF1QixFQUFFQyxXQUFXLEdBQWIsRUFBdkIsQ0FEaUIsb0VBQW5COztrQkFNZUQsVSIsImZpbGUiOiJjb21tYUxpc3RzLmpzIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IFRlbXBsYXRlVGFnIGZyb20gJy4uL1RlbXBsYXRlVGFnJztcbmltcG9ydCBzdHJpcEluZGVudFRyYW5zZm9ybWVyIGZyb20gJy4uL3N0cmlwSW5kZW50VHJhbnNmb3JtZXInO1xuaW1wb3J0IGlubGluZUFycmF5VHJhbnNmb3JtZXIgZnJvbSAnLi4vaW5saW5lQXJyYXlUcmFuc2Zvcm1lcic7XG5pbXBvcnQgdHJpbVJlc3VsdFRyYW5zZm9ybWVyIGZyb20gJy4uL3RyaW1SZXN1bHRUcmFuc2Zvcm1lcic7XG5cbmNvbnN0IGNvbW1hTGlzdHMgPSBuZXcgVGVtcGxhdGVUYWcoXG4gIGlubGluZUFycmF5VHJhbnNmb3JtZXIoeyBzZXBhcmF0b3I6ICcsJyB9KSxcbiAgc3RyaXBJbmRlbnRUcmFuc2Zvcm1lcixcbiAgdHJpbVJlc3VsdFRyYW5zZm9ybWVyLFxuKTtcblxuZXhwb3J0IGRlZmF1bHQgY29tbWFMaXN0cztcbiJdfQ==
11505
11506/***/ }),
11507/* 24 */
11508/***/ (function(module, exports, __webpack_require__) {
11509
11510"use strict";
11511
11512
11513Object.defineProperty(exports, "__esModule", {
11514 value: true
11515});
11516exports.default = undefined;
11517
11518var _commaListsAnd = __webpack_require__(25);
11519
11520var _commaListsAnd2 = _interopRequireDefault(_commaListsAnd);
11521
11522function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
11523
11524exports.default = _commaListsAnd2.default;
11525module.exports = exports['default'];
11526//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9jb21tYUxpc3RzQW5kL2luZGV4LmpzIl0sIm5hbWVzIjpbImRlZmF1bHQiXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7UUFBT0EsTyIsImZpbGUiOiJpbmRleC5qcyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBkZWZhdWx0IGZyb20gJy4vY29tbWFMaXN0c0FuZCc7XG4iXX0=
11527
11528/***/ }),
11529/* 25 */
11530/***/ (function(module, exports, __webpack_require__) {
11531
11532"use strict";
11533
11534
11535Object.defineProperty(exports, "__esModule", {
11536 value: true
11537});
11538
11539var _TemplateTag = __webpack_require__(0);
11540
11541var _TemplateTag2 = _interopRequireDefault(_TemplateTag);
11542
11543var _stripIndentTransformer = __webpack_require__(3);
11544
11545var _stripIndentTransformer2 = _interopRequireDefault(_stripIndentTransformer);
11546
11547var _inlineArrayTransformer = __webpack_require__(2);
11548
11549var _inlineArrayTransformer2 = _interopRequireDefault(_inlineArrayTransformer);
11550
11551var _trimResultTransformer = __webpack_require__(1);
11552
11553var _trimResultTransformer2 = _interopRequireDefault(_trimResultTransformer);
11554
11555function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
11556
11557var commaListsAnd = new _TemplateTag2.default((0, _inlineArrayTransformer2.default)({ separator: ',', conjunction: 'and' }), _stripIndentTransformer2.default, _trimResultTransformer2.default);
11558
11559exports.default = commaListsAnd;
11560module.exports = exports['default'];
11561//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9jb21tYUxpc3RzQW5kL2NvbW1hTGlzdHNBbmQuanMiXSwibmFtZXMiOlsiY29tbWFMaXN0c0FuZCIsInNlcGFyYXRvciIsImNvbmp1bmN0aW9uIl0sIm1hcHBpbmdzIjoiOzs7Ozs7QUFBQTs7OztBQUNBOzs7O0FBQ0E7Ozs7QUFDQTs7Ozs7O0FBRUEsSUFBTUEsZ0JBQWdCLDBCQUNwQixzQ0FBdUIsRUFBRUMsV0FBVyxHQUFiLEVBQWtCQyxhQUFhLEtBQS9CLEVBQXZCLENBRG9CLG9FQUF0Qjs7a0JBTWVGLGEiLCJmaWxlIjoiY29tbWFMaXN0c0FuZC5qcyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBUZW1wbGF0ZVRhZyBmcm9tICcuLi9UZW1wbGF0ZVRhZyc7XG5pbXBvcnQgc3RyaXBJbmRlbnRUcmFuc2Zvcm1lciBmcm9tICcuLi9zdHJpcEluZGVudFRyYW5zZm9ybWVyJztcbmltcG9ydCBpbmxpbmVBcnJheVRyYW5zZm9ybWVyIGZyb20gJy4uL2lubGluZUFycmF5VHJhbnNmb3JtZXInO1xuaW1wb3J0IHRyaW1SZXN1bHRUcmFuc2Zvcm1lciBmcm9tICcuLi90cmltUmVzdWx0VHJhbnNmb3JtZXInO1xuXG5jb25zdCBjb21tYUxpc3RzQW5kID0gbmV3IFRlbXBsYXRlVGFnKFxuICBpbmxpbmVBcnJheVRyYW5zZm9ybWVyKHsgc2VwYXJhdG9yOiAnLCcsIGNvbmp1bmN0aW9uOiAnYW5kJyB9KSxcbiAgc3RyaXBJbmRlbnRUcmFuc2Zvcm1lcixcbiAgdHJpbVJlc3VsdFRyYW5zZm9ybWVyLFxuKTtcblxuZXhwb3J0IGRlZmF1bHQgY29tbWFMaXN0c0FuZDtcbiJdfQ==
11562
11563/***/ }),
11564/* 26 */
11565/***/ (function(module, exports, __webpack_require__) {
11566
11567"use strict";
11568
11569
11570Object.defineProperty(exports, "__esModule", {
11571 value: true
11572});
11573exports.default = undefined;
11574
11575var _commaListsOr = __webpack_require__(27);
11576
11577var _commaListsOr2 = _interopRequireDefault(_commaListsOr);
11578
11579function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
11580
11581exports.default = _commaListsOr2.default;
11582module.exports = exports['default'];
11583//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9jb21tYUxpc3RzT3IvaW5kZXguanMiXSwibmFtZXMiOlsiZGVmYXVsdCJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7OztRQUFPQSxPIiwiZmlsZSI6ImluZGV4LmpzIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGRlZmF1bHQgZnJvbSAnLi9jb21tYUxpc3RzT3InO1xuIl19
11584
11585/***/ }),
11586/* 27 */
11587/***/ (function(module, exports, __webpack_require__) {
11588
11589"use strict";
11590
11591
11592Object.defineProperty(exports, "__esModule", {
11593 value: true
11594});
11595
11596var _TemplateTag = __webpack_require__(0);
11597
11598var _TemplateTag2 = _interopRequireDefault(_TemplateTag);
11599
11600var _stripIndentTransformer = __webpack_require__(3);
11601
11602var _stripIndentTransformer2 = _interopRequireDefault(_stripIndentTransformer);
11603
11604var _inlineArrayTransformer = __webpack_require__(2);
11605
11606var _inlineArrayTransformer2 = _interopRequireDefault(_inlineArrayTransformer);
11607
11608var _trimResultTransformer = __webpack_require__(1);
11609
11610var _trimResultTransformer2 = _interopRequireDefault(_trimResultTransformer);
11611
11612function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
11613
11614var commaListsOr = new _TemplateTag2.default((0, _inlineArrayTransformer2.default)({ separator: ',', conjunction: 'or' }), _stripIndentTransformer2.default, _trimResultTransformer2.default);
11615
11616exports.default = commaListsOr;
11617module.exports = exports['default'];
11618//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9jb21tYUxpc3RzT3IvY29tbWFMaXN0c09yLmpzIl0sIm5hbWVzIjpbImNvbW1hTGlzdHNPciIsInNlcGFyYXRvciIsImNvbmp1bmN0aW9uIl0sIm1hcHBpbmdzIjoiOzs7Ozs7QUFBQTs7OztBQUNBOzs7O0FBQ0E7Ozs7QUFDQTs7Ozs7O0FBRUEsSUFBTUEsZUFBZSwwQkFDbkIsc0NBQXVCLEVBQUVDLFdBQVcsR0FBYixFQUFrQkMsYUFBYSxJQUEvQixFQUF2QixDQURtQixvRUFBckI7O2tCQU1lRixZIiwiZmlsZSI6ImNvbW1hTGlzdHNPci5qcyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBUZW1wbGF0ZVRhZyBmcm9tICcuLi9UZW1wbGF0ZVRhZyc7XG5pbXBvcnQgc3RyaXBJbmRlbnRUcmFuc2Zvcm1lciBmcm9tICcuLi9zdHJpcEluZGVudFRyYW5zZm9ybWVyJztcbmltcG9ydCBpbmxpbmVBcnJheVRyYW5zZm9ybWVyIGZyb20gJy4uL2lubGluZUFycmF5VHJhbnNmb3JtZXInO1xuaW1wb3J0IHRyaW1SZXN1bHRUcmFuc2Zvcm1lciBmcm9tICcuLi90cmltUmVzdWx0VHJhbnNmb3JtZXInO1xuXG5jb25zdCBjb21tYUxpc3RzT3IgPSBuZXcgVGVtcGxhdGVUYWcoXG4gIGlubGluZUFycmF5VHJhbnNmb3JtZXIoeyBzZXBhcmF0b3I6ICcsJywgY29uanVuY3Rpb246ICdvcicgfSksXG4gIHN0cmlwSW5kZW50VHJhbnNmb3JtZXIsXG4gIHRyaW1SZXN1bHRUcmFuc2Zvcm1lcixcbik7XG5cbmV4cG9ydCBkZWZhdWx0IGNvbW1hTGlzdHNPcjtcbiJdfQ==
11619
11620/***/ }),
11621/* 28 */
11622/***/ (function(module, exports, __webpack_require__) {
11623
11624"use strict";
11625
11626
11627Object.defineProperty(exports, "__esModule", {
11628 value: true
11629});
11630
11631var _TemplateTag = __webpack_require__(0);
11632
11633var _TemplateTag2 = _interopRequireDefault(_TemplateTag);
11634
11635var _stripIndentTransformer = __webpack_require__(3);
11636
11637var _stripIndentTransformer2 = _interopRequireDefault(_stripIndentTransformer);
11638
11639var _inlineArrayTransformer = __webpack_require__(2);
11640
11641var _inlineArrayTransformer2 = _interopRequireDefault(_inlineArrayTransformer);
11642
11643var _trimResultTransformer = __webpack_require__(1);
11644
11645var _trimResultTransformer2 = _interopRequireDefault(_trimResultTransformer);
11646
11647var _splitStringTransformer = __webpack_require__(5);
11648
11649var _splitStringTransformer2 = _interopRequireDefault(_splitStringTransformer);
11650
11651var _removeNonPrintingValuesTransformer = __webpack_require__(8);
11652
11653var _removeNonPrintingValuesTransformer2 = _interopRequireDefault(_removeNonPrintingValuesTransformer);
11654
11655function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
11656
11657var html = new _TemplateTag2.default((0, _splitStringTransformer2.default)('\n'), _removeNonPrintingValuesTransformer2.default, _inlineArrayTransformer2.default, _stripIndentTransformer2.default, _trimResultTransformer2.default);
11658
11659exports.default = html;
11660module.exports = exports['default'];
11661//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9odG1sL2h0bWwuanMiXSwibmFtZXMiOlsiaHRtbCJdLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBQUE7Ozs7QUFDQTs7OztBQUNBOzs7O0FBQ0E7Ozs7QUFDQTs7OztBQUNBOzs7Ozs7QUFFQSxJQUFNQSxPQUFPLDBCQUNYLHNDQUF1QixJQUF2QixDQURXLG9KQUFiOztrQkFRZUEsSSIsImZpbGUiOiJodG1sLmpzIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IFRlbXBsYXRlVGFnIGZyb20gJy4uL1RlbXBsYXRlVGFnJztcbmltcG9ydCBzdHJpcEluZGVudFRyYW5zZm9ybWVyIGZyb20gJy4uL3N0cmlwSW5kZW50VHJhbnNmb3JtZXInO1xuaW1wb3J0IGlubGluZUFycmF5VHJhbnNmb3JtZXIgZnJvbSAnLi4vaW5saW5lQXJyYXlUcmFuc2Zvcm1lcic7XG5pbXBvcnQgdHJpbVJlc3VsdFRyYW5zZm9ybWVyIGZyb20gJy4uL3RyaW1SZXN1bHRUcmFuc2Zvcm1lcic7XG5pbXBvcnQgc3BsaXRTdHJpbmdUcmFuc2Zvcm1lciBmcm9tICcuLi9zcGxpdFN0cmluZ1RyYW5zZm9ybWVyJztcbmltcG9ydCByZW1vdmVOb25QcmludGluZ1ZhbHVlc1RyYW5zZm9ybWVyIGZyb20gJy4uL3JlbW92ZU5vblByaW50aW5nVmFsdWVzVHJhbnNmb3JtZXInO1xuXG5jb25zdCBodG1sID0gbmV3IFRlbXBsYXRlVGFnKFxuICBzcGxpdFN0cmluZ1RyYW5zZm9ybWVyKCdcXG4nKSxcbiAgcmVtb3ZlTm9uUHJpbnRpbmdWYWx1ZXNUcmFuc2Zvcm1lcixcbiAgaW5saW5lQXJyYXlUcmFuc2Zvcm1lcixcbiAgc3RyaXBJbmRlbnRUcmFuc2Zvcm1lcixcbiAgdHJpbVJlc3VsdFRyYW5zZm9ybWVyLFxuKTtcblxuZXhwb3J0IGRlZmF1bHQgaHRtbDtcbiJdfQ==
11662
11663/***/ }),
11664/* 29 */
11665/***/ (function(module, exports, __webpack_require__) {
11666
11667"use strict";
11668
11669
11670Object.defineProperty(exports, "__esModule", {
11671 value: true
11672});
11673exports.default = undefined;
11674
11675var _html = __webpack_require__(6);
11676
11677var _html2 = _interopRequireDefault(_html);
11678
11679function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
11680
11681exports.default = _html2.default;
11682module.exports = exports['default'];
11683//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9jb2RlQmxvY2svaW5kZXguanMiXSwibmFtZXMiOlsiZGVmYXVsdCJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7OztRQUFPQSxPIiwiZmlsZSI6ImluZGV4LmpzIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGRlZmF1bHQgZnJvbSAnLi4vaHRtbCc7XG4iXX0=
11684
11685/***/ }),
11686/* 30 */
11687/***/ (function(module, exports, __webpack_require__) {
11688
11689"use strict";
11690
11691
11692Object.defineProperty(exports, "__esModule", {
11693 value: true
11694});
11695exports.default = undefined;
11696
11697var _html = __webpack_require__(6);
11698
11699var _html2 = _interopRequireDefault(_html);
11700
11701function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
11702
11703exports.default = _html2.default;
11704module.exports = exports['default'];
11705//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9zb3VyY2UvaW5kZXguanMiXSwibmFtZXMiOlsiZGVmYXVsdCJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7OztRQUFPQSxPIiwiZmlsZSI6ImluZGV4LmpzIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGRlZmF1bHQgZnJvbSAnLi4vaHRtbCc7XG4iXX0=
11706
11707/***/ }),
11708/* 31 */
11709/***/ (function(module, exports, __webpack_require__) {
11710
11711"use strict";
11712
11713
11714Object.defineProperty(exports, "__esModule", {
11715 value: true
11716});
11717exports.default = undefined;
11718
11719var _safeHtml = __webpack_require__(32);
11720
11721var _safeHtml2 = _interopRequireDefault(_safeHtml);
11722
11723function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
11724
11725exports.default = _safeHtml2.default;
11726module.exports = exports['default'];
11727//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9zYWZlSHRtbC9pbmRleC5qcyJdLCJuYW1lcyI6WyJkZWZhdWx0Il0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7O1FBQU9BLE8iLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgZGVmYXVsdCBmcm9tICcuL3NhZmVIdG1sJztcbiJdfQ==
11728
11729/***/ }),
11730/* 32 */
11731/***/ (function(module, exports, __webpack_require__) {
11732
11733"use strict";
11734
11735
11736Object.defineProperty(exports, "__esModule", {
11737 value: true
11738});
11739
11740var _TemplateTag = __webpack_require__(0);
11741
11742var _TemplateTag2 = _interopRequireDefault(_TemplateTag);
11743
11744var _stripIndentTransformer = __webpack_require__(3);
11745
11746var _stripIndentTransformer2 = _interopRequireDefault(_stripIndentTransformer);
11747
11748var _inlineArrayTransformer = __webpack_require__(2);
11749
11750var _inlineArrayTransformer2 = _interopRequireDefault(_inlineArrayTransformer);
11751
11752var _trimResultTransformer = __webpack_require__(1);
11753
11754var _trimResultTransformer2 = _interopRequireDefault(_trimResultTransformer);
11755
11756var _splitStringTransformer = __webpack_require__(5);
11757
11758var _splitStringTransformer2 = _interopRequireDefault(_splitStringTransformer);
11759
11760var _replaceSubstitutionTransformer = __webpack_require__(7);
11761
11762var _replaceSubstitutionTransformer2 = _interopRequireDefault(_replaceSubstitutionTransformer);
11763
11764function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
11765
11766var safeHtml = new _TemplateTag2.default((0, _splitStringTransformer2.default)('\n'), _inlineArrayTransformer2.default, _stripIndentTransformer2.default, _trimResultTransformer2.default, (0, _replaceSubstitutionTransformer2.default)(/&/g, '&amp;'), (0, _replaceSubstitutionTransformer2.default)(/</g, '&lt;'), (0, _replaceSubstitutionTransformer2.default)(/>/g, '&gt;'), (0, _replaceSubstitutionTransformer2.default)(/"/g, '&quot;'), (0, _replaceSubstitutionTransformer2.default)(/'/g, '&#x27;'), (0, _replaceSubstitutionTransformer2.default)(/`/g, '&#x60;'));
11767
11768exports.default = safeHtml;
11769module.exports = exports['default'];
11770//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9zYWZlSHRtbC9zYWZlSHRtbC5qcyJdLCJuYW1lcyI6WyJzYWZlSHRtbCJdLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBQUE7Ozs7QUFDQTs7OztBQUNBOzs7O0FBQ0E7Ozs7QUFDQTs7OztBQUNBOzs7Ozs7QUFFQSxJQUFNQSxXQUFXLDBCQUNmLHNDQUF1QixJQUF2QixDQURlLHVHQUtmLDhDQUErQixJQUEvQixFQUFxQyxPQUFyQyxDQUxlLEVBTWYsOENBQStCLElBQS9CLEVBQXFDLE1BQXJDLENBTmUsRUFPZiw4Q0FBK0IsSUFBL0IsRUFBcUMsTUFBckMsQ0FQZSxFQVFmLDhDQUErQixJQUEvQixFQUFxQyxRQUFyQyxDQVJlLEVBU2YsOENBQStCLElBQS9CLEVBQXFDLFFBQXJDLENBVGUsRUFVZiw4Q0FBK0IsSUFBL0IsRUFBcUMsUUFBckMsQ0FWZSxDQUFqQjs7a0JBYWVBLFEiLCJmaWxlIjoic2FmZUh0bWwuanMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgVGVtcGxhdGVUYWcgZnJvbSAnLi4vVGVtcGxhdGVUYWcnO1xuaW1wb3J0IHN0cmlwSW5kZW50VHJhbnNmb3JtZXIgZnJvbSAnLi4vc3RyaXBJbmRlbnRUcmFuc2Zvcm1lcic7XG5pbXBvcnQgaW5saW5lQXJyYXlUcmFuc2Zvcm1lciBmcm9tICcuLi9pbmxpbmVBcnJheVRyYW5zZm9ybWVyJztcbmltcG9ydCB0cmltUmVzdWx0VHJhbnNmb3JtZXIgZnJvbSAnLi4vdHJpbVJlc3VsdFRyYW5zZm9ybWVyJztcbmltcG9ydCBzcGxpdFN0cmluZ1RyYW5zZm9ybWVyIGZyb20gJy4uL3NwbGl0U3RyaW5nVHJhbnNmb3JtZXInO1xuaW1wb3J0IHJlcGxhY2VTdWJzdGl0dXRpb25UcmFuc2Zvcm1lciBmcm9tICcuLi9yZXBsYWNlU3Vic3RpdHV0aW9uVHJhbnNmb3JtZXInO1xuXG5jb25zdCBzYWZlSHRtbCA9IG5ldyBUZW1wbGF0ZVRhZyhcbiAgc3BsaXRTdHJpbmdUcmFuc2Zvcm1lcignXFxuJyksXG4gIGlubGluZUFycmF5VHJhbnNmb3JtZXIsXG4gIHN0cmlwSW5kZW50VHJhbnNmb3JtZXIsXG4gIHRyaW1SZXN1bHRUcmFuc2Zvcm1lcixcbiAgcmVwbGFjZVN1YnN0aXR1dGlvblRyYW5zZm9ybWVyKC8mL2csICcmYW1wOycpLFxuICByZXBsYWNlU3Vic3RpdHV0aW9uVHJhbnNmb3JtZXIoLzwvZywgJyZsdDsnKSxcbiAgcmVwbGFjZVN1YnN0aXR1dGlvblRyYW5zZm9ybWVyKC8+L2csICcmZ3Q7JyksXG4gIHJlcGxhY2VTdWJzdGl0dXRpb25UcmFuc2Zvcm1lcigvXCIvZywgJyZxdW90OycpLFxuICByZXBsYWNlU3Vic3RpdHV0aW9uVHJhbnNmb3JtZXIoLycvZywgJyYjeDI3OycpLFxuICByZXBsYWNlU3Vic3RpdHV0aW9uVHJhbnNmb3JtZXIoL2AvZywgJyYjeDYwOycpLFxuKTtcblxuZXhwb3J0IGRlZmF1bHQgc2FmZUh0bWw7XG4iXX0=
11771
11772/***/ }),
11773/* 33 */
11774/***/ (function(module, exports, __webpack_require__) {
11775
11776"use strict";
11777
11778
11779Object.defineProperty(exports, "__esModule", {
11780 value: true
11781});
11782exports.default = undefined;
11783
11784var _oneLine = __webpack_require__(34);
11785
11786var _oneLine2 = _interopRequireDefault(_oneLine);
11787
11788function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
11789
11790exports.default = _oneLine2.default;
11791module.exports = exports['default'];
11792//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9vbmVMaW5lL2luZGV4LmpzIl0sIm5hbWVzIjpbImRlZmF1bHQiXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7UUFBT0EsTyIsImZpbGUiOiJpbmRleC5qcyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBkZWZhdWx0IGZyb20gJy4vb25lTGluZSc7XG4iXX0=
11793
11794/***/ }),
11795/* 34 */
11796/***/ (function(module, exports, __webpack_require__) {
11797
11798"use strict";
11799
11800
11801Object.defineProperty(exports, "__esModule", {
11802 value: true
11803});
11804
11805var _TemplateTag = __webpack_require__(0);
11806
11807var _TemplateTag2 = _interopRequireDefault(_TemplateTag);
11808
11809var _trimResultTransformer = __webpack_require__(1);
11810
11811var _trimResultTransformer2 = _interopRequireDefault(_trimResultTransformer);
11812
11813var _replaceResultTransformer = __webpack_require__(4);
11814
11815var _replaceResultTransformer2 = _interopRequireDefault(_replaceResultTransformer);
11816
11817function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
11818
11819var oneLine = new _TemplateTag2.default((0, _replaceResultTransformer2.default)(/(?:\n(?:\s*))+/g, ' '), _trimResultTransformer2.default);
11820
11821exports.default = oneLine;
11822module.exports = exports['default'];
11823//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9vbmVMaW5lL29uZUxpbmUuanMiXSwibmFtZXMiOlsib25lTGluZSJdLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBQUE7Ozs7QUFDQTs7OztBQUNBOzs7Ozs7QUFFQSxJQUFNQSxVQUFVLDBCQUNkLHdDQUF5QixpQkFBekIsRUFBNEMsR0FBNUMsQ0FEYyxrQ0FBaEI7O2tCQUtlQSxPIiwiZmlsZSI6Im9uZUxpbmUuanMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgVGVtcGxhdGVUYWcgZnJvbSAnLi4vVGVtcGxhdGVUYWcnO1xuaW1wb3J0IHRyaW1SZXN1bHRUcmFuc2Zvcm1lciBmcm9tICcuLi90cmltUmVzdWx0VHJhbnNmb3JtZXInO1xuaW1wb3J0IHJlcGxhY2VSZXN1bHRUcmFuc2Zvcm1lciBmcm9tICcuLi9yZXBsYWNlUmVzdWx0VHJhbnNmb3JtZXInO1xuXG5jb25zdCBvbmVMaW5lID0gbmV3IFRlbXBsYXRlVGFnKFxuICByZXBsYWNlUmVzdWx0VHJhbnNmb3JtZXIoLyg/Olxcbig/OlxccyopKSsvZywgJyAnKSxcbiAgdHJpbVJlc3VsdFRyYW5zZm9ybWVyLFxuKTtcblxuZXhwb3J0IGRlZmF1bHQgb25lTGluZTtcbiJdfQ==
11824
11825/***/ }),
11826/* 35 */
11827/***/ (function(module, exports, __webpack_require__) {
11828
11829"use strict";
11830
11831
11832Object.defineProperty(exports, "__esModule", {
11833 value: true
11834});
11835exports.default = undefined;
11836
11837var _oneLineTrim = __webpack_require__(36);
11838
11839var _oneLineTrim2 = _interopRequireDefault(_oneLineTrim);
11840
11841function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
11842
11843exports.default = _oneLineTrim2.default;
11844module.exports = exports['default'];
11845//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9vbmVMaW5lVHJpbS9pbmRleC5qcyJdLCJuYW1lcyI6WyJkZWZhdWx0Il0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7O1FBQU9BLE8iLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgZGVmYXVsdCBmcm9tICcuL29uZUxpbmVUcmltJztcbiJdfQ==
11846
11847/***/ }),
11848/* 36 */
11849/***/ (function(module, exports, __webpack_require__) {
11850
11851"use strict";
11852
11853
11854Object.defineProperty(exports, "__esModule", {
11855 value: true
11856});
11857
11858var _TemplateTag = __webpack_require__(0);
11859
11860var _TemplateTag2 = _interopRequireDefault(_TemplateTag);
11861
11862var _trimResultTransformer = __webpack_require__(1);
11863
11864var _trimResultTransformer2 = _interopRequireDefault(_trimResultTransformer);
11865
11866var _replaceResultTransformer = __webpack_require__(4);
11867
11868var _replaceResultTransformer2 = _interopRequireDefault(_replaceResultTransformer);
11869
11870function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
11871
11872var oneLineTrim = new _TemplateTag2.default((0, _replaceResultTransformer2.default)(/(?:\n\s*)/g, ''), _trimResultTransformer2.default);
11873
11874exports.default = oneLineTrim;
11875module.exports = exports['default'];
11876//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9vbmVMaW5lVHJpbS9vbmVMaW5lVHJpbS5qcyJdLCJuYW1lcyI6WyJvbmVMaW5lVHJpbSJdLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBQUE7Ozs7QUFDQTs7OztBQUNBOzs7Ozs7QUFFQSxJQUFNQSxjQUFjLDBCQUNsQix3Q0FBeUIsWUFBekIsRUFBdUMsRUFBdkMsQ0FEa0Isa0NBQXBCOztrQkFLZUEsVyIsImZpbGUiOiJvbmVMaW5lVHJpbS5qcyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBUZW1wbGF0ZVRhZyBmcm9tICcuLi9UZW1wbGF0ZVRhZyc7XG5pbXBvcnQgdHJpbVJlc3VsdFRyYW5zZm9ybWVyIGZyb20gJy4uL3RyaW1SZXN1bHRUcmFuc2Zvcm1lcic7XG5pbXBvcnQgcmVwbGFjZVJlc3VsdFRyYW5zZm9ybWVyIGZyb20gJy4uL3JlcGxhY2VSZXN1bHRUcmFuc2Zvcm1lcic7XG5cbmNvbnN0IG9uZUxpbmVUcmltID0gbmV3IFRlbXBsYXRlVGFnKFxuICByZXBsYWNlUmVzdWx0VHJhbnNmb3JtZXIoLyg/OlxcblxccyopL2csICcnKSxcbiAgdHJpbVJlc3VsdFRyYW5zZm9ybWVyLFxuKTtcblxuZXhwb3J0IGRlZmF1bHQgb25lTGluZVRyaW07XG4iXX0=
11877
11878/***/ }),
11879/* 37 */
11880/***/ (function(module, exports, __webpack_require__) {
11881
11882"use strict";
11883
11884
11885Object.defineProperty(exports, "__esModule", {
11886 value: true
11887});
11888exports.default = undefined;
11889
11890var _oneLineCommaLists = __webpack_require__(38);
11891
11892var _oneLineCommaLists2 = _interopRequireDefault(_oneLineCommaLists);
11893
11894function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
11895
11896exports.default = _oneLineCommaLists2.default;
11897module.exports = exports['default'];
11898//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9vbmVMaW5lQ29tbWFMaXN0cy9pbmRleC5qcyJdLCJuYW1lcyI6WyJkZWZhdWx0Il0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7O1FBQU9BLE8iLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgZGVmYXVsdCBmcm9tICcuL29uZUxpbmVDb21tYUxpc3RzJztcbiJdfQ==
11899
11900/***/ }),
11901/* 38 */
11902/***/ (function(module, exports, __webpack_require__) {
11903
11904"use strict";
11905
11906
11907Object.defineProperty(exports, "__esModule", {
11908 value: true
11909});
11910
11911var _TemplateTag = __webpack_require__(0);
11912
11913var _TemplateTag2 = _interopRequireDefault(_TemplateTag);
11914
11915var _inlineArrayTransformer = __webpack_require__(2);
11916
11917var _inlineArrayTransformer2 = _interopRequireDefault(_inlineArrayTransformer);
11918
11919var _trimResultTransformer = __webpack_require__(1);
11920
11921var _trimResultTransformer2 = _interopRequireDefault(_trimResultTransformer);
11922
11923var _replaceResultTransformer = __webpack_require__(4);
11924
11925var _replaceResultTransformer2 = _interopRequireDefault(_replaceResultTransformer);
11926
11927function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
11928
11929var oneLineCommaLists = new _TemplateTag2.default((0, _inlineArrayTransformer2.default)({ separator: ',' }), (0, _replaceResultTransformer2.default)(/(?:\s+)/g, ' '), _trimResultTransformer2.default);
11930
11931exports.default = oneLineCommaLists;
11932module.exports = exports['default'];
11933//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9vbmVMaW5lQ29tbWFMaXN0cy9vbmVMaW5lQ29tbWFMaXN0cy5qcyJdLCJuYW1lcyI6WyJvbmVMaW5lQ29tbWFMaXN0cyIsInNlcGFyYXRvciJdLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBQUE7Ozs7QUFDQTs7OztBQUNBOzs7O0FBQ0E7Ozs7OztBQUVBLElBQU1BLG9CQUFvQiwwQkFDeEIsc0NBQXVCLEVBQUVDLFdBQVcsR0FBYixFQUF2QixDQUR3QixFQUV4Qix3Q0FBeUIsVUFBekIsRUFBcUMsR0FBckMsQ0FGd0Isa0NBQTFCOztrQkFNZUQsaUIiLCJmaWxlIjoib25lTGluZUNvbW1hTGlzdHMuanMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgVGVtcGxhdGVUYWcgZnJvbSAnLi4vVGVtcGxhdGVUYWcnO1xuaW1wb3J0IGlubGluZUFycmF5VHJhbnNmb3JtZXIgZnJvbSAnLi4vaW5saW5lQXJyYXlUcmFuc2Zvcm1lcic7XG5pbXBvcnQgdHJpbVJlc3VsdFRyYW5zZm9ybWVyIGZyb20gJy4uL3RyaW1SZXN1bHRUcmFuc2Zvcm1lcic7XG5pbXBvcnQgcmVwbGFjZVJlc3VsdFRyYW5zZm9ybWVyIGZyb20gJy4uL3JlcGxhY2VSZXN1bHRUcmFuc2Zvcm1lcic7XG5cbmNvbnN0IG9uZUxpbmVDb21tYUxpc3RzID0gbmV3IFRlbXBsYXRlVGFnKFxuICBpbmxpbmVBcnJheVRyYW5zZm9ybWVyKHsgc2VwYXJhdG9yOiAnLCcgfSksXG4gIHJlcGxhY2VSZXN1bHRUcmFuc2Zvcm1lcigvKD86XFxzKykvZywgJyAnKSxcbiAgdHJpbVJlc3VsdFRyYW5zZm9ybWVyLFxuKTtcblxuZXhwb3J0IGRlZmF1bHQgb25lTGluZUNvbW1hTGlzdHM7XG4iXX0=
11934
11935/***/ }),
11936/* 39 */
11937/***/ (function(module, exports, __webpack_require__) {
11938
11939"use strict";
11940
11941
11942Object.defineProperty(exports, "__esModule", {
11943 value: true
11944});
11945exports.default = undefined;
11946
11947var _oneLineCommaListsOr = __webpack_require__(40);
11948
11949var _oneLineCommaListsOr2 = _interopRequireDefault(_oneLineCommaListsOr);
11950
11951function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
11952
11953exports.default = _oneLineCommaListsOr2.default;
11954module.exports = exports['default'];
11955//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9vbmVMaW5lQ29tbWFMaXN0c09yL2luZGV4LmpzIl0sIm5hbWVzIjpbImRlZmF1bHQiXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7UUFBT0EsTyIsImZpbGUiOiJpbmRleC5qcyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBkZWZhdWx0IGZyb20gJy4vb25lTGluZUNvbW1hTGlzdHNPcic7XG4iXX0=
11956
11957/***/ }),
11958/* 40 */
11959/***/ (function(module, exports, __webpack_require__) {
11960
11961"use strict";
11962
11963
11964Object.defineProperty(exports, "__esModule", {
11965 value: true
11966});
11967
11968var _TemplateTag = __webpack_require__(0);
11969
11970var _TemplateTag2 = _interopRequireDefault(_TemplateTag);
11971
11972var _inlineArrayTransformer = __webpack_require__(2);
11973
11974var _inlineArrayTransformer2 = _interopRequireDefault(_inlineArrayTransformer);
11975
11976var _trimResultTransformer = __webpack_require__(1);
11977
11978var _trimResultTransformer2 = _interopRequireDefault(_trimResultTransformer);
11979
11980var _replaceResultTransformer = __webpack_require__(4);
11981
11982var _replaceResultTransformer2 = _interopRequireDefault(_replaceResultTransformer);
11983
11984function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
11985
11986var oneLineCommaListsOr = new _TemplateTag2.default((0, _inlineArrayTransformer2.default)({ separator: ',', conjunction: 'or' }), (0, _replaceResultTransformer2.default)(/(?:\s+)/g, ' '), _trimResultTransformer2.default);
11987
11988exports.default = oneLineCommaListsOr;
11989module.exports = exports['default'];
11990//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9vbmVMaW5lQ29tbWFMaXN0c09yL29uZUxpbmVDb21tYUxpc3RzT3IuanMiXSwibmFtZXMiOlsib25lTGluZUNvbW1hTGlzdHNPciIsInNlcGFyYXRvciIsImNvbmp1bmN0aW9uIl0sIm1hcHBpbmdzIjoiOzs7Ozs7QUFBQTs7OztBQUNBOzs7O0FBQ0E7Ozs7QUFDQTs7Ozs7O0FBRUEsSUFBTUEsc0JBQXNCLDBCQUMxQixzQ0FBdUIsRUFBRUMsV0FBVyxHQUFiLEVBQWtCQyxhQUFhLElBQS9CLEVBQXZCLENBRDBCLEVBRTFCLHdDQUF5QixVQUF6QixFQUFxQyxHQUFyQyxDQUYwQixrQ0FBNUI7O2tCQU1lRixtQiIsImZpbGUiOiJvbmVMaW5lQ29tbWFMaXN0c09yLmpzIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IFRlbXBsYXRlVGFnIGZyb20gJy4uL1RlbXBsYXRlVGFnJztcbmltcG9ydCBpbmxpbmVBcnJheVRyYW5zZm9ybWVyIGZyb20gJy4uL2lubGluZUFycmF5VHJhbnNmb3JtZXInO1xuaW1wb3J0IHRyaW1SZXN1bHRUcmFuc2Zvcm1lciBmcm9tICcuLi90cmltUmVzdWx0VHJhbnNmb3JtZXInO1xuaW1wb3J0IHJlcGxhY2VSZXN1bHRUcmFuc2Zvcm1lciBmcm9tICcuLi9yZXBsYWNlUmVzdWx0VHJhbnNmb3JtZXInO1xuXG5jb25zdCBvbmVMaW5lQ29tbWFMaXN0c09yID0gbmV3IFRlbXBsYXRlVGFnKFxuICBpbmxpbmVBcnJheVRyYW5zZm9ybWVyKHsgc2VwYXJhdG9yOiAnLCcsIGNvbmp1bmN0aW9uOiAnb3InIH0pLFxuICByZXBsYWNlUmVzdWx0VHJhbnNmb3JtZXIoLyg/OlxccyspL2csICcgJyksXG4gIHRyaW1SZXN1bHRUcmFuc2Zvcm1lcixcbik7XG5cbmV4cG9ydCBkZWZhdWx0IG9uZUxpbmVDb21tYUxpc3RzT3I7XG4iXX0=
11991
11992/***/ }),
11993/* 41 */
11994/***/ (function(module, exports, __webpack_require__) {
11995
11996"use strict";
11997
11998
11999Object.defineProperty(exports, "__esModule", {
12000 value: true
12001});
12002exports.default = undefined;
12003
12004var _oneLineCommaListsAnd = __webpack_require__(42);
12005
12006var _oneLineCommaListsAnd2 = _interopRequireDefault(_oneLineCommaListsAnd);
12007
12008function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
12009
12010exports.default = _oneLineCommaListsAnd2.default;
12011module.exports = exports['default'];
12012//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9vbmVMaW5lQ29tbWFMaXN0c0FuZC9pbmRleC5qcyJdLCJuYW1lcyI6WyJkZWZhdWx0Il0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7O1FBQU9BLE8iLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgZGVmYXVsdCBmcm9tICcuL29uZUxpbmVDb21tYUxpc3RzQW5kJztcbiJdfQ==
12013
12014/***/ }),
12015/* 42 */
12016/***/ (function(module, exports, __webpack_require__) {
12017
12018"use strict";
12019
12020
12021Object.defineProperty(exports, "__esModule", {
12022 value: true
12023});
12024
12025var _TemplateTag = __webpack_require__(0);
12026
12027var _TemplateTag2 = _interopRequireDefault(_TemplateTag);
12028
12029var _inlineArrayTransformer = __webpack_require__(2);
12030
12031var _inlineArrayTransformer2 = _interopRequireDefault(_inlineArrayTransformer);
12032
12033var _trimResultTransformer = __webpack_require__(1);
12034
12035var _trimResultTransformer2 = _interopRequireDefault(_trimResultTransformer);
12036
12037var _replaceResultTransformer = __webpack_require__(4);
12038
12039var _replaceResultTransformer2 = _interopRequireDefault(_replaceResultTransformer);
12040
12041function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
12042
12043var oneLineCommaListsAnd = new _TemplateTag2.default((0, _inlineArrayTransformer2.default)({ separator: ',', conjunction: 'and' }), (0, _replaceResultTransformer2.default)(/(?:\s+)/g, ' '), _trimResultTransformer2.default);
12044
12045exports.default = oneLineCommaListsAnd;
12046module.exports = exports['default'];
12047//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9vbmVMaW5lQ29tbWFMaXN0c0FuZC9vbmVMaW5lQ29tbWFMaXN0c0FuZC5qcyJdLCJuYW1lcyI6WyJvbmVMaW5lQ29tbWFMaXN0c0FuZCIsInNlcGFyYXRvciIsImNvbmp1bmN0aW9uIl0sIm1hcHBpbmdzIjoiOzs7Ozs7QUFBQTs7OztBQUNBOzs7O0FBQ0E7Ozs7QUFDQTs7Ozs7O0FBRUEsSUFBTUEsdUJBQXVCLDBCQUMzQixzQ0FBdUIsRUFBRUMsV0FBVyxHQUFiLEVBQWtCQyxhQUFhLEtBQS9CLEVBQXZCLENBRDJCLEVBRTNCLHdDQUF5QixVQUF6QixFQUFxQyxHQUFyQyxDQUYyQixrQ0FBN0I7O2tCQU1lRixvQiIsImZpbGUiOiJvbmVMaW5lQ29tbWFMaXN0c0FuZC5qcyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBUZW1wbGF0ZVRhZyBmcm9tICcuLi9UZW1wbGF0ZVRhZyc7XG5pbXBvcnQgaW5saW5lQXJyYXlUcmFuc2Zvcm1lciBmcm9tICcuLi9pbmxpbmVBcnJheVRyYW5zZm9ybWVyJztcbmltcG9ydCB0cmltUmVzdWx0VHJhbnNmb3JtZXIgZnJvbSAnLi4vdHJpbVJlc3VsdFRyYW5zZm9ybWVyJztcbmltcG9ydCByZXBsYWNlUmVzdWx0VHJhbnNmb3JtZXIgZnJvbSAnLi4vcmVwbGFjZVJlc3VsdFRyYW5zZm9ybWVyJztcblxuY29uc3Qgb25lTGluZUNvbW1hTGlzdHNBbmQgPSBuZXcgVGVtcGxhdGVUYWcoXG4gIGlubGluZUFycmF5VHJhbnNmb3JtZXIoeyBzZXBhcmF0b3I6ICcsJywgY29uanVuY3Rpb246ICdhbmQnIH0pLFxuICByZXBsYWNlUmVzdWx0VHJhbnNmb3JtZXIoLyg/OlxccyspL2csICcgJyksXG4gIHRyaW1SZXN1bHRUcmFuc2Zvcm1lcixcbik7XG5cbmV4cG9ydCBkZWZhdWx0IG9uZUxpbmVDb21tYUxpc3RzQW5kO1xuIl19
12048
12049/***/ }),
12050/* 43 */
12051/***/ (function(module, exports, __webpack_require__) {
12052
12053"use strict";
12054
12055
12056Object.defineProperty(exports, "__esModule", {
12057 value: true
12058});
12059exports.default = undefined;
12060
12061var _inlineLists = __webpack_require__(44);
12062
12063var _inlineLists2 = _interopRequireDefault(_inlineLists);
12064
12065function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
12066
12067exports.default = _inlineLists2.default;
12068module.exports = exports['default'];
12069//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9pbmxpbmVMaXN0cy9pbmRleC5qcyJdLCJuYW1lcyI6WyJkZWZhdWx0Il0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7O1FBQU9BLE8iLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgZGVmYXVsdCBmcm9tICcuL2lubGluZUxpc3RzJztcbiJdfQ==
12070
12071/***/ }),
12072/* 44 */
12073/***/ (function(module, exports, __webpack_require__) {
12074
12075"use strict";
12076
12077
12078Object.defineProperty(exports, "__esModule", {
12079 value: true
12080});
12081
12082var _TemplateTag = __webpack_require__(0);
12083
12084var _TemplateTag2 = _interopRequireDefault(_TemplateTag);
12085
12086var _stripIndentTransformer = __webpack_require__(3);
12087
12088var _stripIndentTransformer2 = _interopRequireDefault(_stripIndentTransformer);
12089
12090var _inlineArrayTransformer = __webpack_require__(2);
12091
12092var _inlineArrayTransformer2 = _interopRequireDefault(_inlineArrayTransformer);
12093
12094var _trimResultTransformer = __webpack_require__(1);
12095
12096var _trimResultTransformer2 = _interopRequireDefault(_trimResultTransformer);
12097
12098function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
12099
12100var inlineLists = new _TemplateTag2.default(_inlineArrayTransformer2.default, _stripIndentTransformer2.default, _trimResultTransformer2.default);
12101
12102exports.default = inlineLists;
12103module.exports = exports['default'];
12104//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9pbmxpbmVMaXN0cy9pbmxpbmVMaXN0cy5qcyJdLCJuYW1lcyI6WyJpbmxpbmVMaXN0cyJdLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBQUE7Ozs7QUFDQTs7OztBQUNBOzs7O0FBQ0E7Ozs7OztBQUVBLElBQU1BLGNBQWMsOEhBQXBCOztrQkFNZUEsVyIsImZpbGUiOiJpbmxpbmVMaXN0cy5qcyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBUZW1wbGF0ZVRhZyBmcm9tICcuLi9UZW1wbGF0ZVRhZyc7XG5pbXBvcnQgc3RyaXBJbmRlbnRUcmFuc2Zvcm1lciBmcm9tICcuLi9zdHJpcEluZGVudFRyYW5zZm9ybWVyJztcbmltcG9ydCBpbmxpbmVBcnJheVRyYW5zZm9ybWVyIGZyb20gJy4uL2lubGluZUFycmF5VHJhbnNmb3JtZXInO1xuaW1wb3J0IHRyaW1SZXN1bHRUcmFuc2Zvcm1lciBmcm9tICcuLi90cmltUmVzdWx0VHJhbnNmb3JtZXInO1xuXG5jb25zdCBpbmxpbmVMaXN0cyA9IG5ldyBUZW1wbGF0ZVRhZyhcbiAgaW5saW5lQXJyYXlUcmFuc2Zvcm1lcixcbiAgc3RyaXBJbmRlbnRUcmFuc2Zvcm1lcixcbiAgdHJpbVJlc3VsdFRyYW5zZm9ybWVyLFxuKTtcblxuZXhwb3J0IGRlZmF1bHQgaW5saW5lTGlzdHM7XG4iXX0=
12105
12106/***/ }),
12107/* 45 */
12108/***/ (function(module, exports, __webpack_require__) {
12109
12110"use strict";
12111
12112
12113Object.defineProperty(exports, "__esModule", {
12114 value: true
12115});
12116exports.default = undefined;
12117
12118var _oneLineInlineLists = __webpack_require__(46);
12119
12120var _oneLineInlineLists2 = _interopRequireDefault(_oneLineInlineLists);
12121
12122function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
12123
12124exports.default = _oneLineInlineLists2.default;
12125module.exports = exports['default'];
12126//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9vbmVMaW5lSW5saW5lTGlzdHMvaW5kZXguanMiXSwibmFtZXMiOlsiZGVmYXVsdCJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7OztRQUFPQSxPIiwiZmlsZSI6ImluZGV4LmpzIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGRlZmF1bHQgZnJvbSAnLi9vbmVMaW5lSW5saW5lTGlzdHMnO1xuIl19
12127
12128/***/ }),
12129/* 46 */
12130/***/ (function(module, exports, __webpack_require__) {
12131
12132"use strict";
12133
12134
12135Object.defineProperty(exports, "__esModule", {
12136 value: true
12137});
12138
12139var _TemplateTag = __webpack_require__(0);
12140
12141var _TemplateTag2 = _interopRequireDefault(_TemplateTag);
12142
12143var _inlineArrayTransformer = __webpack_require__(2);
12144
12145var _inlineArrayTransformer2 = _interopRequireDefault(_inlineArrayTransformer);
12146
12147var _trimResultTransformer = __webpack_require__(1);
12148
12149var _trimResultTransformer2 = _interopRequireDefault(_trimResultTransformer);
12150
12151var _replaceResultTransformer = __webpack_require__(4);
12152
12153var _replaceResultTransformer2 = _interopRequireDefault(_replaceResultTransformer);
12154
12155function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
12156
12157var oneLineInlineLists = new _TemplateTag2.default(_inlineArrayTransformer2.default, (0, _replaceResultTransformer2.default)(/(?:\s+)/g, ' '), _trimResultTransformer2.default);
12158
12159exports.default = oneLineInlineLists;
12160module.exports = exports['default'];
12161//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9vbmVMaW5lSW5saW5lTGlzdHMvb25lTGluZUlubGluZUxpc3RzLmpzIl0sIm5hbWVzIjpbIm9uZUxpbmVJbmxpbmVMaXN0cyJdLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBQUE7Ozs7QUFDQTs7OztBQUNBOzs7O0FBQ0E7Ozs7OztBQUVBLElBQU1BLHFCQUFxQiw0REFFekIsd0NBQXlCLFVBQXpCLEVBQXFDLEdBQXJDLENBRnlCLGtDQUEzQjs7a0JBTWVBLGtCIiwiZmlsZSI6Im9uZUxpbmVJbmxpbmVMaXN0cy5qcyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBUZW1wbGF0ZVRhZyBmcm9tICcuLi9UZW1wbGF0ZVRhZyc7XG5pbXBvcnQgaW5saW5lQXJyYXlUcmFuc2Zvcm1lciBmcm9tICcuLi9pbmxpbmVBcnJheVRyYW5zZm9ybWVyJztcbmltcG9ydCB0cmltUmVzdWx0VHJhbnNmb3JtZXIgZnJvbSAnLi4vdHJpbVJlc3VsdFRyYW5zZm9ybWVyJztcbmltcG9ydCByZXBsYWNlUmVzdWx0VHJhbnNmb3JtZXIgZnJvbSAnLi4vcmVwbGFjZVJlc3VsdFRyYW5zZm9ybWVyJztcblxuY29uc3Qgb25lTGluZUlubGluZUxpc3RzID0gbmV3IFRlbXBsYXRlVGFnKFxuICBpbmxpbmVBcnJheVRyYW5zZm9ybWVyLFxuICByZXBsYWNlUmVzdWx0VHJhbnNmb3JtZXIoLyg/OlxccyspL2csICcgJyksXG4gIHRyaW1SZXN1bHRUcmFuc2Zvcm1lcixcbik7XG5cbmV4cG9ydCBkZWZhdWx0IG9uZUxpbmVJbmxpbmVMaXN0cztcbiJdfQ==
12162
12163/***/ }),
12164/* 47 */
12165/***/ (function(module, exports, __webpack_require__) {
12166
12167"use strict";
12168
12169
12170Object.defineProperty(exports, "__esModule", {
12171 value: true
12172});
12173exports.default = undefined;
12174
12175var _stripIndent = __webpack_require__(48);
12176
12177var _stripIndent2 = _interopRequireDefault(_stripIndent);
12178
12179function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
12180
12181exports.default = _stripIndent2.default;
12182module.exports = exports['default'];
12183//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9zdHJpcEluZGVudC9pbmRleC5qcyJdLCJuYW1lcyI6WyJkZWZhdWx0Il0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7O1FBQU9BLE8iLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgZGVmYXVsdCBmcm9tICcuL3N0cmlwSW5kZW50JztcbiJdfQ==
12184
12185/***/ }),
12186/* 48 */
12187/***/ (function(module, exports, __webpack_require__) {
12188
12189"use strict";
12190
12191
12192Object.defineProperty(exports, "__esModule", {
12193 value: true
12194});
12195
12196var _TemplateTag = __webpack_require__(0);
12197
12198var _TemplateTag2 = _interopRequireDefault(_TemplateTag);
12199
12200var _stripIndentTransformer = __webpack_require__(3);
12201
12202var _stripIndentTransformer2 = _interopRequireDefault(_stripIndentTransformer);
12203
12204var _trimResultTransformer = __webpack_require__(1);
12205
12206var _trimResultTransformer2 = _interopRequireDefault(_trimResultTransformer);
12207
12208function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
12209
12210var stripIndent = new _TemplateTag2.default(_stripIndentTransformer2.default, _trimResultTransformer2.default);
12211
12212exports.default = stripIndent;
12213module.exports = exports['default'];
12214//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9zdHJpcEluZGVudC9zdHJpcEluZGVudC5qcyJdLCJuYW1lcyI6WyJzdHJpcEluZGVudCJdLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBQUE7Ozs7QUFDQTs7OztBQUNBOzs7Ozs7QUFFQSxJQUFNQSxjQUFjLDRGQUFwQjs7a0JBS2VBLFciLCJmaWxlIjoic3RyaXBJbmRlbnQuanMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgVGVtcGxhdGVUYWcgZnJvbSAnLi4vVGVtcGxhdGVUYWcnO1xuaW1wb3J0IHN0cmlwSW5kZW50VHJhbnNmb3JtZXIgZnJvbSAnLi4vc3RyaXBJbmRlbnRUcmFuc2Zvcm1lcic7XG5pbXBvcnQgdHJpbVJlc3VsdFRyYW5zZm9ybWVyIGZyb20gJy4uL3RyaW1SZXN1bHRUcmFuc2Zvcm1lcic7XG5cbmNvbnN0IHN0cmlwSW5kZW50ID0gbmV3IFRlbXBsYXRlVGFnKFxuICBzdHJpcEluZGVudFRyYW5zZm9ybWVyLFxuICB0cmltUmVzdWx0VHJhbnNmb3JtZXIsXG4pO1xuXG5leHBvcnQgZGVmYXVsdCBzdHJpcEluZGVudDtcbiJdfQ==
12215
12216/***/ }),
12217/* 49 */
12218/***/ (function(module, exports, __webpack_require__) {
12219
12220"use strict";
12221
12222
12223Object.defineProperty(exports, "__esModule", {
12224 value: true
12225});
12226exports.default = undefined;
12227
12228var _stripIndents = __webpack_require__(50);
12229
12230var _stripIndents2 = _interopRequireDefault(_stripIndents);
12231
12232function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
12233
12234exports.default = _stripIndents2.default;
12235module.exports = exports['default'];
12236//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9zdHJpcEluZGVudHMvaW5kZXguanMiXSwibmFtZXMiOlsiZGVmYXVsdCJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7OztRQUFPQSxPIiwiZmlsZSI6ImluZGV4LmpzIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGRlZmF1bHQgZnJvbSAnLi9zdHJpcEluZGVudHMnO1xuIl19
12237
12238/***/ }),
12239/* 50 */
12240/***/ (function(module, exports, __webpack_require__) {
12241
12242"use strict";
12243
12244
12245Object.defineProperty(exports, "__esModule", {
12246 value: true
12247});
12248
12249var _TemplateTag = __webpack_require__(0);
12250
12251var _TemplateTag2 = _interopRequireDefault(_TemplateTag);
12252
12253var _stripIndentTransformer = __webpack_require__(3);
12254
12255var _stripIndentTransformer2 = _interopRequireDefault(_stripIndentTransformer);
12256
12257var _trimResultTransformer = __webpack_require__(1);
12258
12259var _trimResultTransformer2 = _interopRequireDefault(_trimResultTransformer);
12260
12261function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
12262
12263var stripIndents = new _TemplateTag2.default((0, _stripIndentTransformer2.default)('all'), _trimResultTransformer2.default);
12264
12265exports.default = stripIndents;
12266module.exports = exports['default'];
12267//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9zdHJpcEluZGVudHMvc3RyaXBJbmRlbnRzLmpzIl0sIm5hbWVzIjpbInN0cmlwSW5kZW50cyJdLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBQUE7Ozs7QUFDQTs7OztBQUNBOzs7Ozs7QUFFQSxJQUFNQSxlQUFlLDBCQUNuQixzQ0FBdUIsS0FBdkIsQ0FEbUIsa0NBQXJCOztrQkFLZUEsWSIsImZpbGUiOiJzdHJpcEluZGVudHMuanMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgVGVtcGxhdGVUYWcgZnJvbSAnLi4vVGVtcGxhdGVUYWcnO1xuaW1wb3J0IHN0cmlwSW5kZW50VHJhbnNmb3JtZXIgZnJvbSAnLi4vc3RyaXBJbmRlbnRUcmFuc2Zvcm1lcic7XG5pbXBvcnQgdHJpbVJlc3VsdFRyYW5zZm9ybWVyIGZyb20gJy4uL3RyaW1SZXN1bHRUcmFuc2Zvcm1lcic7XG5cbmNvbnN0IHN0cmlwSW5kZW50cyA9IG5ldyBUZW1wbGF0ZVRhZyhcbiAgc3RyaXBJbmRlbnRUcmFuc2Zvcm1lcignYWxsJyksXG4gIHRyaW1SZXN1bHRUcmFuc2Zvcm1lcixcbik7XG5cbmV4cG9ydCBkZWZhdWx0IHN0cmlwSW5kZW50cztcbiJdfQ==
12268
12269/***/ })
12270/******/ ])));
12271//# sourceMappingURL=index.js.map
12272
12273/***/ }),
12274/* 11 */
12275/***/ (function(module, exports) {
12276
12277module.exports = __webpack_require__(1);
12278
12279/***/ }),
12280/* 12 */
12281/***/ (function(module, exports) {
12282
12283module.exports = "{{{ toComment description }}}\n{{#if @root.config.enumsAsTypes }}\nexport type {{@root.config.interfacePrefix}}{{ convert name }} = {{#each values }}{{{ getEnumValue ../name value }}}{{#unless @last}} | {{/unless}}{{/each}};\n{{else}}\nexport {{#if @root.config.constEnums }}const {{/if}}enum {{@root.config.interfacePrefix}}{{ convert name }} {\n{{#each values }}\n {{value}} = {{{ getEnumValue ../name value }}},\n{{/each}}\n}\n{{/if}}\n"
12284
12285/***/ }),
12286/* 13 */
12287/***/ (function(module, exports) {
12288
12289module.exports = "{{ toComment description }}\nexport interface {{@root.config.interfacePrefix}}{{ convert name }}{{#if hasInterfaces}} extends {{#each interfaces}}{{@root.config.interfacePrefix}}{{ convert this }}{{#unless @last}},{{/unless}}{{/each}}{{/if}} {\n{{#each fields}}\n {{ toComment description }}\n {{#if @root.config.immutableTypes }}readonly {{/if}}{{ name }}{{ getOptionals this }}: {{ convertedType this }};\n{{/each}}\n}\n"
12290
12291/***/ }),
12292/* 14 */
12293/***/ (function(module, exports) {
12294
12295module.exports = "{{#each inputTypes}}\n {{~> type }}\n{{/each}}\n{{#each enums}}\n {{~> enum }}\n{{/each}}\n{{#each scalars}}\n\n{{ toComment description }}\n{{#ifCond (convert name) \"!==\" (getScalarType name) }}export type {{ convert name }} = {{ getScalarType name }};{{/ifCond}}\n{{/each}}"
12296
12297/***/ }),
12298/* 15 */
12299/***/ (function(module, exports, __webpack_require__) {
12300
12301exports.no = exports.noCase = __webpack_require__(0)
12302exports.dot = exports.dotCase = __webpack_require__(19)
12303exports.swap = exports.swapCase = __webpack_require__(20)
12304exports.path = exports.pathCase = __webpack_require__(21)
12305exports.upper = exports.upperCase = __webpack_require__(1)
12306exports.lower = exports.lowerCase = __webpack_require__(2)
12307exports.camel = exports.camelCase = __webpack_require__(5)
12308exports.snake = exports.snakeCase = __webpack_require__(6)
12309exports.title = exports.titleCase = __webpack_require__(22)
12310exports.param = exports.paramCase = __webpack_require__(23)
12311exports.header = exports.headerCase = __webpack_require__(24)
12312exports.pascal = exports.pascalCase = __webpack_require__(25)
12313exports.constant = exports.constantCase = __webpack_require__(26)
12314exports.sentence = exports.sentenceCase = __webpack_require__(27)
12315exports.isUpper = exports.isUpperCase = __webpack_require__(28)
12316exports.isLower = exports.isLowerCase = __webpack_require__(29)
12317exports.ucFirst = exports.upperCaseFirst = __webpack_require__(3)
12318exports.lcFirst = exports.lowerCaseFirst = __webpack_require__(30)
12319
12320
12321/***/ }),
12322/* 16 */
12323/***/ (function(module, exports) {
12324
12325module.exports = /[^A-Za-z\xAA\xB5\xBA\xC0-\xD6\xD8-\xF6\xF8-\u02C1\u02C6-\u02D1\u02E0-\u02E4\u02EC\u02EE\u0370-\u0374\u0376\u0377\u037A-\u037D\u037F\u0386\u0388-\u038A\u038C\u038E-\u03A1\u03A3-\u03F5\u03F7-\u0481\u048A-\u052F\u0531-\u0556\u0559\u0561-\u0587\u05D0-\u05EA\u05F0-\u05F2\u0620-\u064A\u066E\u066F\u0671-\u06D3\u06D5\u06E5\u06E6\u06EE\u06EF\u06FA-\u06FC\u06FF\u0710\u0712-\u072F\u074D-\u07A5\u07B1\u07CA-\u07EA\u07F4\u07F5\u07FA\u0800-\u0815\u081A\u0824\u0828\u0840-\u0858\u08A0-\u08B4\u0904-\u0939\u093D\u0950\u0958-\u0961\u0971-\u0980\u0985-\u098C\u098F\u0990\u0993-\u09A8\u09AA-\u09B0\u09B2\u09B6-\u09B9\u09BD\u09CE\u09DC\u09DD\u09DF-\u09E1\u09F0\u09F1\u0A05-\u0A0A\u0A0F\u0A10\u0A13-\u0A28\u0A2A-\u0A30\u0A32\u0A33\u0A35\u0A36\u0A38\u0A39\u0A59-\u0A5C\u0A5E\u0A72-\u0A74\u0A85-\u0A8D\u0A8F-\u0A91\u0A93-\u0AA8\u0AAA-\u0AB0\u0AB2\u0AB3\u0AB5-\u0AB9\u0ABD\u0AD0\u0AE0\u0AE1\u0AF9\u0B05-\u0B0C\u0B0F\u0B10\u0B13-\u0B28\u0B2A-\u0B30\u0B32\u0B33\u0B35-\u0B39\u0B3D\u0B5C\u0B5D\u0B5F-\u0B61\u0B71\u0B83\u0B85-\u0B8A\u0B8E-\u0B90\u0B92-\u0B95\u0B99\u0B9A\u0B9C\u0B9E\u0B9F\u0BA3\u0BA4\u0BA8-\u0BAA\u0BAE-\u0BB9\u0BD0\u0C05-\u0C0C\u0C0E-\u0C10\u0C12-\u0C28\u0C2A-\u0C39\u0C3D\u0C58-\u0C5A\u0C60\u0C61\u0C85-\u0C8C\u0C8E-\u0C90\u0C92-\u0CA8\u0CAA-\u0CB3\u0CB5-\u0CB9\u0CBD\u0CDE\u0CE0\u0CE1\u0CF1\u0CF2\u0D05-\u0D0C\u0D0E-\u0D10\u0D12-\u0D3A\u0D3D\u0D4E\u0D5F-\u0D61\u0D7A-\u0D7F\u0D85-\u0D96\u0D9A-\u0DB1\u0DB3-\u0DBB\u0DBD\u0DC0-\u0DC6\u0E01-\u0E30\u0E32\u0E33\u0E40-\u0E46\u0E81\u0E82\u0E84\u0E87\u0E88\u0E8A\u0E8D\u0E94-\u0E97\u0E99-\u0E9F\u0EA1-\u0EA3\u0EA5\u0EA7\u0EAA\u0EAB\u0EAD-\u0EB0\u0EB2\u0EB3\u0EBD\u0EC0-\u0EC4\u0EC6\u0EDC-\u0EDF\u0F00\u0F40-\u0F47\u0F49-\u0F6C\u0F88-\u0F8C\u1000-\u102A\u103F\u1050-\u1055\u105A-\u105D\u1061\u1065\u1066\u106E-\u1070\u1075-\u1081\u108E\u10A0-\u10C5\u10C7\u10CD\u10D0-\u10FA\u10FC-\u1248\u124A-\u124D\u1250-\u1256\u1258\u125A-\u125D\u1260-\u1288\u128A-\u128D\u1290-\u12B0\u12B2-\u12B5\u12B8-\u12BE\u12C0\u12C2-\u12C5\u12C8-\u12D6\u12D8-\u1310\u1312-\u1315\u1318-\u135A\u1380-\u138F\u13A0-\u13F5\u13F8-\u13FD\u1401-\u166C\u166F-\u167F\u1681-\u169A\u16A0-\u16EA\u16F1-\u16F8\u1700-\u170C\u170E-\u1711\u1720-\u1731\u1740-\u1751\u1760-\u176C\u176E-\u1770\u1780-\u17B3\u17D7\u17DC\u1820-\u1877\u1880-\u18A8\u18AA\u18B0-\u18F5\u1900-\u191E\u1950-\u196D\u1970-\u1974\u1980-\u19AB\u19B0-\u19C9\u1A00-\u1A16\u1A20-\u1A54\u1AA7\u1B05-\u1B33\u1B45-\u1B4B\u1B83-\u1BA0\u1BAE\u1BAF\u1BBA-\u1BE5\u1C00-\u1C23\u1C4D-\u1C4F\u1C5A-\u1C7D\u1CE9-\u1CEC\u1CEE-\u1CF1\u1CF5\u1CF6\u1D00-\u1DBF\u1E00-\u1F15\u1F18-\u1F1D\u1F20-\u1F45\u1F48-\u1F4D\u1F50-\u1F57\u1F59\u1F5B\u1F5D\u1F5F-\u1F7D\u1F80-\u1FB4\u1FB6-\u1FBC\u1FBE\u1FC2-\u1FC4\u1FC6-\u1FCC\u1FD0-\u1FD3\u1FD6-\u1FDB\u1FE0-\u1FEC\u1FF2-\u1FF4\u1FF6-\u1FFC\u2071\u207F\u2090-\u209C\u2102\u2107\u210A-\u2113\u2115\u2119-\u211D\u2124\u2126\u2128\u212A-\u212D\u212F-\u2139\u213C-\u213F\u2145-\u2149\u214E\u2183\u2184\u2C00-\u2C2E\u2C30-\u2C5E\u2C60-\u2CE4\u2CEB-\u2CEE\u2CF2\u2CF3\u2D00-\u2D25\u2D27\u2D2D\u2D30-\u2D67\u2D6F\u2D80-\u2D96\u2DA0-\u2DA6\u2DA8-\u2DAE\u2DB0-\u2DB6\u2DB8-\u2DBE\u2DC0-\u2DC6\u2DC8-\u2DCE\u2DD0-\u2DD6\u2DD8-\u2DDE\u2E2F\u3005\u3006\u3031-\u3035\u303B\u303C\u3041-\u3096\u309D-\u309F\u30A1-\u30FA\u30FC-\u30FF\u3105-\u312D\u3131-\u318E\u31A0-\u31BA\u31F0-\u31FF\u3400-\u4DB5\u4E00-\u9FD5\uA000-\uA48C\uA4D0-\uA4FD\uA500-\uA60C\uA610-\uA61F\uA62A\uA62B\uA640-\uA66E\uA67F-\uA69D\uA6A0-\uA6E5\uA717-\uA71F\uA722-\uA788\uA78B-\uA7AD\uA7B0-\uA7B7\uA7F7-\uA801\uA803-\uA805\uA807-\uA80A\uA80C-\uA822\uA840-\uA873\uA882-\uA8B3\uA8F2-\uA8F7\uA8FB\uA8FD\uA90A-\uA925\uA930-\uA946\uA960-\uA97C\uA984-\uA9B2\uA9CF\uA9E0-\uA9E4\uA9E6-\uA9EF\uA9FA-\uA9FE\uAA00-\uAA28\uAA40-\uAA42\uAA44-\uAA4B\uAA60-\uAA76\uAA7A\uAA7E-\uAAAF\uAAB1\uAAB5\uAAB6\uAAB9-\uAABD\uAAC0\uAAC2\uAADB-\uAADD\uAAE0-\uAAEA\uAAF2-\uAAF4\uAB01-\uAB06\uAB09-\uAB0E\uAB11-\uAB16\uAB20-\uAB26\uAB28-\uAB2E\uAB30-\uAB5A\uAB5C-\uAB65\uAB70-\uABE2\uAC00-\uD7A3\uD7B0-\uD7C6\uD7CB-\uD7FB\uF900-\uFA6D\uFA70-\uFAD9\uFB00-\uFB06\uFB13-\uFB17\uFB1D\uFB1F-\uFB28\uFB2A-\uFB36\uFB38-\uFB3C\uFB3E\uFB40\uFB41\uFB43\uFB44\uFB46-\uFBB1\uFBD3-\uFD3D\uFD50-\uFD8F\uFD92-\uFDC7\uFDF0-\uFDFB\uFE70-\uFE74\uFE76-\uFEFC\uFF21-\uFF3A\uFF41-\uFF5A\uFF66-\uFFBE\uFFC2-\uFFC7\uFFCA-\uFFCF\uFFD2-\uFFD7\uFFDA-\uFFDC0-9\xB2\xB3\xB9\xBC-\xBE\u0660-\u0669\u06F0-\u06F9\u07C0-\u07C9\u0966-\u096F\u09E6-\u09EF\u09F4-\u09F9\u0A66-\u0A6F\u0AE6-\u0AEF\u0B66-\u0B6F\u0B72-\u0B77\u0BE6-\u0BF2\u0C66-\u0C6F\u0C78-\u0C7E\u0CE6-\u0CEF\u0D66-\u0D75\u0DE6-\u0DEF\u0E50-\u0E59\u0ED0-\u0ED9\u0F20-\u0F33\u1040-\u1049\u1090-\u1099\u1369-\u137C\u16EE-\u16F0\u17E0-\u17E9\u17F0-\u17F9\u1810-\u1819\u1946-\u194F\u19D0-\u19DA\u1A80-\u1A89\u1A90-\u1A99\u1B50-\u1B59\u1BB0-\u1BB9\u1C40-\u1C49\u1C50-\u1C59\u2070\u2074-\u2079\u2080-\u2089\u2150-\u2182\u2185-\u2189\u2460-\u249B\u24EA-\u24FF\u2776-\u2793\u2CFD\u3007\u3021-\u3029\u3038-\u303A\u3192-\u3195\u3220-\u3229\u3248-\u324F\u3251-\u325F\u3280-\u3289\u32B1-\u32BF\uA620-\uA629\uA6E6-\uA6EF\uA830-\uA835\uA8D0-\uA8D9\uA900-\uA909\uA9D0-\uA9D9\uA9F0-\uA9F9\uAA50-\uAA59\uABF0-\uABF9\uFF10-\uFF19]+/g
12326
12327
12328/***/ }),
12329/* 17 */
12330/***/ (function(module, exports) {
12331
12332module.exports = /([a-z\xB5\xDF-\xF6\xF8-\xFF\u0101\u0103\u0105\u0107\u0109\u010B\u010D\u010F\u0111\u0113\u0115\u0117\u0119\u011B\u011D\u011F\u0121\u0123\u0125\u0127\u0129\u012B\u012D\u012F\u0131\u0133\u0135\u0137\u0138\u013A\u013C\u013E\u0140\u0142\u0144\u0146\u0148\u0149\u014B\u014D\u014F\u0151\u0153\u0155\u0157\u0159\u015B\u015D\u015F\u0161\u0163\u0165\u0167\u0169\u016B\u016D\u016F\u0171\u0173\u0175\u0177\u017A\u017C\u017E-\u0180\u0183\u0185\u0188\u018C\u018D\u0192\u0195\u0199-\u019B\u019E\u01A1\u01A3\u01A5\u01A8\u01AA\u01AB\u01AD\u01B0\u01B4\u01B6\u01B9\u01BA\u01BD-\u01BF\u01C6\u01C9\u01CC\u01CE\u01D0\u01D2\u01D4\u01D6\u01D8\u01DA\u01DC\u01DD\u01DF\u01E1\u01E3\u01E5\u01E7\u01E9\u01EB\u01ED\u01EF\u01F0\u01F3\u01F5\u01F9\u01FB\u01FD\u01FF\u0201\u0203\u0205\u0207\u0209\u020B\u020D\u020F\u0211\u0213\u0215\u0217\u0219\u021B\u021D\u021F\u0221\u0223\u0225\u0227\u0229\u022B\u022D\u022F\u0231\u0233-\u0239\u023C\u023F\u0240\u0242\u0247\u0249\u024B\u024D\u024F-\u0293\u0295-\u02AF\u0371\u0373\u0377\u037B-\u037D\u0390\u03AC-\u03CE\u03D0\u03D1\u03D5-\u03D7\u03D9\u03DB\u03DD\u03DF\u03E1\u03E3\u03E5\u03E7\u03E9\u03EB\u03ED\u03EF-\u03F3\u03F5\u03F8\u03FB\u03FC\u0430-\u045F\u0461\u0463\u0465\u0467\u0469\u046B\u046D\u046F\u0471\u0473\u0475\u0477\u0479\u047B\u047D\u047F\u0481\u048B\u048D\u048F\u0491\u0493\u0495\u0497\u0499\u049B\u049D\u049F\u04A1\u04A3\u04A5\u04A7\u04A9\u04AB\u04AD\u04AF\u04B1\u04B3\u04B5\u04B7\u04B9\u04BB\u04BD\u04BF\u04C2\u04C4\u04C6\u04C8\u04CA\u04CC\u04CE\u04CF\u04D1\u04D3\u04D5\u04D7\u04D9\u04DB\u04DD\u04DF\u04E1\u04E3\u04E5\u04E7\u04E9\u04EB\u04ED\u04EF\u04F1\u04F3\u04F5\u04F7\u04F9\u04FB\u04FD\u04FF\u0501\u0503\u0505\u0507\u0509\u050B\u050D\u050F\u0511\u0513\u0515\u0517\u0519\u051B\u051D\u051F\u0521\u0523\u0525\u0527\u0529\u052B\u052D\u052F\u0561-\u0587\u13F8-\u13FD\u1D00-\u1D2B\u1D6B-\u1D77\u1D79-\u1D9A\u1E01\u1E03\u1E05\u1E07\u1E09\u1E0B\u1E0D\u1E0F\u1E11\u1E13\u1E15\u1E17\u1E19\u1E1B\u1E1D\u1E1F\u1E21\u1E23\u1E25\u1E27\u1E29\u1E2B\u1E2D\u1E2F\u1E31\u1E33\u1E35\u1E37\u1E39\u1E3B\u1E3D\u1E3F\u1E41\u1E43\u1E45\u1E47\u1E49\u1E4B\u1E4D\u1E4F\u1E51\u1E53\u1E55\u1E57\u1E59\u1E5B\u1E5D\u1E5F\u1E61\u1E63\u1E65\u1E67\u1E69\u1E6B\u1E6D\u1E6F\u1E71\u1E73\u1E75\u1E77\u1E79\u1E7B\u1E7D\u1E7F\u1E81\u1E83\u1E85\u1E87\u1E89\u1E8B\u1E8D\u1E8F\u1E91\u1E93\u1E95-\u1E9D\u1E9F\u1EA1\u1EA3\u1EA5\u1EA7\u1EA9\u1EAB\u1EAD\u1EAF\u1EB1\u1EB3\u1EB5\u1EB7\u1EB9\u1EBB\u1EBD\u1EBF\u1EC1\u1EC3\u1EC5\u1EC7\u1EC9\u1ECB\u1ECD\u1ECF\u1ED1\u1ED3\u1ED5\u1ED7\u1ED9\u1EDB\u1EDD\u1EDF\u1EE1\u1EE3\u1EE5\u1EE7\u1EE9\u1EEB\u1EED\u1EEF\u1EF1\u1EF3\u1EF5\u1EF7\u1EF9\u1EFB\u1EFD\u1EFF-\u1F07\u1F10-\u1F15\u1F20-\u1F27\u1F30-\u1F37\u1F40-\u1F45\u1F50-\u1F57\u1F60-\u1F67\u1F70-\u1F7D\u1F80-\u1F87\u1F90-\u1F97\u1FA0-\u1FA7\u1FB0-\u1FB4\u1FB6\u1FB7\u1FBE\u1FC2-\u1FC4\u1FC6\u1FC7\u1FD0-\u1FD3\u1FD6\u1FD7\u1FE0-\u1FE7\u1FF2-\u1FF4\u1FF6\u1FF7\u210A\u210E\u210F\u2113\u212F\u2134\u2139\u213C\u213D\u2146-\u2149\u214E\u2184\u2C30-\u2C5E\u2C61\u2C65\u2C66\u2C68\u2C6A\u2C6C\u2C71\u2C73\u2C74\u2C76-\u2C7B\u2C81\u2C83\u2C85\u2C87\u2C89\u2C8B\u2C8D\u2C8F\u2C91\u2C93\u2C95\u2C97\u2C99\u2C9B\u2C9D\u2C9F\u2CA1\u2CA3\u2CA5\u2CA7\u2CA9\u2CAB\u2CAD\u2CAF\u2CB1\u2CB3\u2CB5\u2CB7\u2CB9\u2CBB\u2CBD\u2CBF\u2CC1\u2CC3\u2CC5\u2CC7\u2CC9\u2CCB\u2CCD\u2CCF\u2CD1\u2CD3\u2CD5\u2CD7\u2CD9\u2CDB\u2CDD\u2CDF\u2CE1\u2CE3\u2CE4\u2CEC\u2CEE\u2CF3\u2D00-\u2D25\u2D27\u2D2D\uA641\uA643\uA645\uA647\uA649\uA64B\uA64D\uA64F\uA651\uA653\uA655\uA657\uA659\uA65B\uA65D\uA65F\uA661\uA663\uA665\uA667\uA669\uA66B\uA66D\uA681\uA683\uA685\uA687\uA689\uA68B\uA68D\uA68F\uA691\uA693\uA695\uA697\uA699\uA69B\uA723\uA725\uA727\uA729\uA72B\uA72D\uA72F-\uA731\uA733\uA735\uA737\uA739\uA73B\uA73D\uA73F\uA741\uA743\uA745\uA747\uA749\uA74B\uA74D\uA74F\uA751\uA753\uA755\uA757\uA759\uA75B\uA75D\uA75F\uA761\uA763\uA765\uA767\uA769\uA76B\uA76D\uA76F\uA771-\uA778\uA77A\uA77C\uA77F\uA781\uA783\uA785\uA787\uA78C\uA78E\uA791\uA793-\uA795\uA797\uA799\uA79B\uA79D\uA79F\uA7A1\uA7A3\uA7A5\uA7A7\uA7A9\uA7B5\uA7B7\uA7FA\uAB30-\uAB5A\uAB60-\uAB65\uAB70-\uABBF\uFB00-\uFB06\uFB13-\uFB17\uFF41-\uFF5A0-9\xB2\xB3\xB9\xBC-\xBE\u0660-\u0669\u06F0-\u06F9\u07C0-\u07C9\u0966-\u096F\u09E6-\u09EF\u09F4-\u09F9\u0A66-\u0A6F\u0AE6-\u0AEF\u0B66-\u0B6F\u0B72-\u0B77\u0BE6-\u0BF2\u0C66-\u0C6F\u0C78-\u0C7E\u0CE6-\u0CEF\u0D66-\u0D75\u0DE6-\u0DEF\u0E50-\u0E59\u0ED0-\u0ED9\u0F20-\u0F33\u1040-\u1049\u1090-\u1099\u1369-\u137C\u16EE-\u16F0\u17E0-\u17E9\u17F0-\u17F9\u1810-\u1819\u1946-\u194F\u19D0-\u19DA\u1A80-\u1A89\u1A90-\u1A99\u1B50-\u1B59\u1BB0-\u1BB9\u1C40-\u1C49\u1C50-\u1C59\u2070\u2074-\u2079\u2080-\u2089\u2150-\u2182\u2185-\u2189\u2460-\u249B\u24EA-\u24FF\u2776-\u2793\u2CFD\u3007\u3021-\u3029\u3038-\u303A\u3192-\u3195\u3220-\u3229\u3248-\u324F\u3251-\u325F\u3280-\u3289\u32B1-\u32BF\uA620-\uA629\uA6E6-\uA6EF\uA830-\uA835\uA8D0-\uA8D9\uA900-\uA909\uA9D0-\uA9D9\uA9F0-\uA9F9\uAA50-\uAA59\uABF0-\uABF9\uFF10-\uFF19])([A-Z\xC0-\xD6\xD8-\xDE\u0100\u0102\u0104\u0106\u0108\u010A\u010C\u010E\u0110\u0112\u0114\u0116\u0118\u011A\u011C\u011E\u0120\u0122\u0124\u0126\u0128\u012A\u012C\u012E\u0130\u0132\u0134\u0136\u0139\u013B\u013D\u013F\u0141\u0143\u0145\u0147\u014A\u014C\u014E\u0150\u0152\u0154\u0156\u0158\u015A\u015C\u015E\u0160\u0162\u0164\u0166\u0168\u016A\u016C\u016E\u0170\u0172\u0174\u0176\u0178\u0179\u017B\u017D\u0181\u0182\u0184\u0186\u0187\u0189-\u018B\u018E-\u0191\u0193\u0194\u0196-\u0198\u019C\u019D\u019F\u01A0\u01A2\u01A4\u01A6\u01A7\u01A9\u01AC\u01AE\u01AF\u01B1-\u01B3\u01B5\u01B7\u01B8\u01BC\u01C4\u01C7\u01CA\u01CD\u01CF\u01D1\u01D3\u01D5\u01D7\u01D9\u01DB\u01DE\u01E0\u01E2\u01E4\u01E6\u01E8\u01EA\u01EC\u01EE\u01F1\u01F4\u01F6-\u01F8\u01FA\u01FC\u01FE\u0200\u0202\u0204\u0206\u0208\u020A\u020C\u020E\u0210\u0212\u0214\u0216\u0218\u021A\u021C\u021E\u0220\u0222\u0224\u0226\u0228\u022A\u022C\u022E\u0230\u0232\u023A\u023B\u023D\u023E\u0241\u0243-\u0246\u0248\u024A\u024C\u024E\u0370\u0372\u0376\u037F\u0386\u0388-\u038A\u038C\u038E\u038F\u0391-\u03A1\u03A3-\u03AB\u03CF\u03D2-\u03D4\u03D8\u03DA\u03DC\u03DE\u03E0\u03E2\u03E4\u03E6\u03E8\u03EA\u03EC\u03EE\u03F4\u03F7\u03F9\u03FA\u03FD-\u042F\u0460\u0462\u0464\u0466\u0468\u046A\u046C\u046E\u0470\u0472\u0474\u0476\u0478\u047A\u047C\u047E\u0480\u048A\u048C\u048E\u0490\u0492\u0494\u0496\u0498\u049A\u049C\u049E\u04A0\u04A2\u04A4\u04A6\u04A8\u04AA\u04AC\u04AE\u04B0\u04B2\u04B4\u04B6\u04B8\u04BA\u04BC\u04BE\u04C0\u04C1\u04C3\u04C5\u04C7\u04C9\u04CB\u04CD\u04D0\u04D2\u04D4\u04D6\u04D8\u04DA\u04DC\u04DE\u04E0\u04E2\u04E4\u04E6\u04E8\u04EA\u04EC\u04EE\u04F0\u04F2\u04F4\u04F6\u04F8\u04FA\u04FC\u04FE\u0500\u0502\u0504\u0506\u0508\u050A\u050C\u050E\u0510\u0512\u0514\u0516\u0518\u051A\u051C\u051E\u0520\u0522\u0524\u0526\u0528\u052A\u052C\u052E\u0531-\u0556\u10A0-\u10C5\u10C7\u10CD\u13A0-\u13F5\u1E00\u1E02\u1E04\u1E06\u1E08\u1E0A\u1E0C\u1E0E\u1E10\u1E12\u1E14\u1E16\u1E18\u1E1A\u1E1C\u1E1E\u1E20\u1E22\u1E24\u1E26\u1E28\u1E2A\u1E2C\u1E2E\u1E30\u1E32\u1E34\u1E36\u1E38\u1E3A\u1E3C\u1E3E\u1E40\u1E42\u1E44\u1E46\u1E48\u1E4A\u1E4C\u1E4E\u1E50\u1E52\u1E54\u1E56\u1E58\u1E5A\u1E5C\u1E5E\u1E60\u1E62\u1E64\u1E66\u1E68\u1E6A\u1E6C\u1E6E\u1E70\u1E72\u1E74\u1E76\u1E78\u1E7A\u1E7C\u1E7E\u1E80\u1E82\u1E84\u1E86\u1E88\u1E8A\u1E8C\u1E8E\u1E90\u1E92\u1E94\u1E9E\u1EA0\u1EA2\u1EA4\u1EA6\u1EA8\u1EAA\u1EAC\u1EAE\u1EB0\u1EB2\u1EB4\u1EB6\u1EB8\u1EBA\u1EBC\u1EBE\u1EC0\u1EC2\u1EC4\u1EC6\u1EC8\u1ECA\u1ECC\u1ECE\u1ED0\u1ED2\u1ED4\u1ED6\u1ED8\u1EDA\u1EDC\u1EDE\u1EE0\u1EE2\u1EE4\u1EE6\u1EE8\u1EEA\u1EEC\u1EEE\u1EF0\u1EF2\u1EF4\u1EF6\u1EF8\u1EFA\u1EFC\u1EFE\u1F08-\u1F0F\u1F18-\u1F1D\u1F28-\u1F2F\u1F38-\u1F3F\u1F48-\u1F4D\u1F59\u1F5B\u1F5D\u1F5F\u1F68-\u1F6F\u1FB8-\u1FBB\u1FC8-\u1FCB\u1FD8-\u1FDB\u1FE8-\u1FEC\u1FF8-\u1FFB\u2102\u2107\u210B-\u210D\u2110-\u2112\u2115\u2119-\u211D\u2124\u2126\u2128\u212A-\u212D\u2130-\u2133\u213E\u213F\u2145\u2183\u2C00-\u2C2E\u2C60\u2C62-\u2C64\u2C67\u2C69\u2C6B\u2C6D-\u2C70\u2C72\u2C75\u2C7E-\u2C80\u2C82\u2C84\u2C86\u2C88\u2C8A\u2C8C\u2C8E\u2C90\u2C92\u2C94\u2C96\u2C98\u2C9A\u2C9C\u2C9E\u2CA0\u2CA2\u2CA4\u2CA6\u2CA8\u2CAA\u2CAC\u2CAE\u2CB0\u2CB2\u2CB4\u2CB6\u2CB8\u2CBA\u2CBC\u2CBE\u2CC0\u2CC2\u2CC4\u2CC6\u2CC8\u2CCA\u2CCC\u2CCE\u2CD0\u2CD2\u2CD4\u2CD6\u2CD8\u2CDA\u2CDC\u2CDE\u2CE0\u2CE2\u2CEB\u2CED\u2CF2\uA640\uA642\uA644\uA646\uA648\uA64A\uA64C\uA64E\uA650\uA652\uA654\uA656\uA658\uA65A\uA65C\uA65E\uA660\uA662\uA664\uA666\uA668\uA66A\uA66C\uA680\uA682\uA684\uA686\uA688\uA68A\uA68C\uA68E\uA690\uA692\uA694\uA696\uA698\uA69A\uA722\uA724\uA726\uA728\uA72A\uA72C\uA72E\uA732\uA734\uA736\uA738\uA73A\uA73C\uA73E\uA740\uA742\uA744\uA746\uA748\uA74A\uA74C\uA74E\uA750\uA752\uA754\uA756\uA758\uA75A\uA75C\uA75E\uA760\uA762\uA764\uA766\uA768\uA76A\uA76C\uA76E\uA779\uA77B\uA77D\uA77E\uA780\uA782\uA784\uA786\uA78B\uA78D\uA790\uA792\uA796\uA798\uA79A\uA79C\uA79E\uA7A0\uA7A2\uA7A4\uA7A6\uA7A8\uA7AA-\uA7AD\uA7B0-\uA7B4\uA7B6\uFF21-\uFF3A])/g
12333
12334
12335/***/ }),
12336/* 18 */
12337/***/ (function(module, exports) {
12338
12339module.exports = /([A-Z\xC0-\xD6\xD8-\xDE\u0100\u0102\u0104\u0106\u0108\u010A\u010C\u010E\u0110\u0112\u0114\u0116\u0118\u011A\u011C\u011E\u0120\u0122\u0124\u0126\u0128\u012A\u012C\u012E\u0130\u0132\u0134\u0136\u0139\u013B\u013D\u013F\u0141\u0143\u0145\u0147\u014A\u014C\u014E\u0150\u0152\u0154\u0156\u0158\u015A\u015C\u015E\u0160\u0162\u0164\u0166\u0168\u016A\u016C\u016E\u0170\u0172\u0174\u0176\u0178\u0179\u017B\u017D\u0181\u0182\u0184\u0186\u0187\u0189-\u018B\u018E-\u0191\u0193\u0194\u0196-\u0198\u019C\u019D\u019F\u01A0\u01A2\u01A4\u01A6\u01A7\u01A9\u01AC\u01AE\u01AF\u01B1-\u01B3\u01B5\u01B7\u01B8\u01BC\u01C4\u01C7\u01CA\u01CD\u01CF\u01D1\u01D3\u01D5\u01D7\u01D9\u01DB\u01DE\u01E0\u01E2\u01E4\u01E6\u01E8\u01EA\u01EC\u01EE\u01F1\u01F4\u01F6-\u01F8\u01FA\u01FC\u01FE\u0200\u0202\u0204\u0206\u0208\u020A\u020C\u020E\u0210\u0212\u0214\u0216\u0218\u021A\u021C\u021E\u0220\u0222\u0224\u0226\u0228\u022A\u022C\u022E\u0230\u0232\u023A\u023B\u023D\u023E\u0241\u0243-\u0246\u0248\u024A\u024C\u024E\u0370\u0372\u0376\u037F\u0386\u0388-\u038A\u038C\u038E\u038F\u0391-\u03A1\u03A3-\u03AB\u03CF\u03D2-\u03D4\u03D8\u03DA\u03DC\u03DE\u03E0\u03E2\u03E4\u03E6\u03E8\u03EA\u03EC\u03EE\u03F4\u03F7\u03F9\u03FA\u03FD-\u042F\u0460\u0462\u0464\u0466\u0468\u046A\u046C\u046E\u0470\u0472\u0474\u0476\u0478\u047A\u047C\u047E\u0480\u048A\u048C\u048E\u0490\u0492\u0494\u0496\u0498\u049A\u049C\u049E\u04A0\u04A2\u04A4\u04A6\u04A8\u04AA\u04AC\u04AE\u04B0\u04B2\u04B4\u04B6\u04B8\u04BA\u04BC\u04BE\u04C0\u04C1\u04C3\u04C5\u04C7\u04C9\u04CB\u04CD\u04D0\u04D2\u04D4\u04D6\u04D8\u04DA\u04DC\u04DE\u04E0\u04E2\u04E4\u04E6\u04E8\u04EA\u04EC\u04EE\u04F0\u04F2\u04F4\u04F6\u04F8\u04FA\u04FC\u04FE\u0500\u0502\u0504\u0506\u0508\u050A\u050C\u050E\u0510\u0512\u0514\u0516\u0518\u051A\u051C\u051E\u0520\u0522\u0524\u0526\u0528\u052A\u052C\u052E\u0531-\u0556\u10A0-\u10C5\u10C7\u10CD\u13A0-\u13F5\u1E00\u1E02\u1E04\u1E06\u1E08\u1E0A\u1E0C\u1E0E\u1E10\u1E12\u1E14\u1E16\u1E18\u1E1A\u1E1C\u1E1E\u1E20\u1E22\u1E24\u1E26\u1E28\u1E2A\u1E2C\u1E2E\u1E30\u1E32\u1E34\u1E36\u1E38\u1E3A\u1E3C\u1E3E\u1E40\u1E42\u1E44\u1E46\u1E48\u1E4A\u1E4C\u1E4E\u1E50\u1E52\u1E54\u1E56\u1E58\u1E5A\u1E5C\u1E5E\u1E60\u1E62\u1E64\u1E66\u1E68\u1E6A\u1E6C\u1E6E\u1E70\u1E72\u1E74\u1E76\u1E78\u1E7A\u1E7C\u1E7E\u1E80\u1E82\u1E84\u1E86\u1E88\u1E8A\u1E8C\u1E8E\u1E90\u1E92\u1E94\u1E9E\u1EA0\u1EA2\u1EA4\u1EA6\u1EA8\u1EAA\u1EAC\u1EAE\u1EB0\u1EB2\u1EB4\u1EB6\u1EB8\u1EBA\u1EBC\u1EBE\u1EC0\u1EC2\u1EC4\u1EC6\u1EC8\u1ECA\u1ECC\u1ECE\u1ED0\u1ED2\u1ED4\u1ED6\u1ED8\u1EDA\u1EDC\u1EDE\u1EE0\u1EE2\u1EE4\u1EE6\u1EE8\u1EEA\u1EEC\u1EEE\u1EF0\u1EF2\u1EF4\u1EF6\u1EF8\u1EFA\u1EFC\u1EFE\u1F08-\u1F0F\u1F18-\u1F1D\u1F28-\u1F2F\u1F38-\u1F3F\u1F48-\u1F4D\u1F59\u1F5B\u1F5D\u1F5F\u1F68-\u1F6F\u1FB8-\u1FBB\u1FC8-\u1FCB\u1FD8-\u1FDB\u1FE8-\u1FEC\u1FF8-\u1FFB\u2102\u2107\u210B-\u210D\u2110-\u2112\u2115\u2119-\u211D\u2124\u2126\u2128\u212A-\u212D\u2130-\u2133\u213E\u213F\u2145\u2183\u2C00-\u2C2E\u2C60\u2C62-\u2C64\u2C67\u2C69\u2C6B\u2C6D-\u2C70\u2C72\u2C75\u2C7E-\u2C80\u2C82\u2C84\u2C86\u2C88\u2C8A\u2C8C\u2C8E\u2C90\u2C92\u2C94\u2C96\u2C98\u2C9A\u2C9C\u2C9E\u2CA0\u2CA2\u2CA4\u2CA6\u2CA8\u2CAA\u2CAC\u2CAE\u2CB0\u2CB2\u2CB4\u2CB6\u2CB8\u2CBA\u2CBC\u2CBE\u2CC0\u2CC2\u2CC4\u2CC6\u2CC8\u2CCA\u2CCC\u2CCE\u2CD0\u2CD2\u2CD4\u2CD6\u2CD8\u2CDA\u2CDC\u2CDE\u2CE0\u2CE2\u2CEB\u2CED\u2CF2\uA640\uA642\uA644\uA646\uA648\uA64A\uA64C\uA64E\uA650\uA652\uA654\uA656\uA658\uA65A\uA65C\uA65E\uA660\uA662\uA664\uA666\uA668\uA66A\uA66C\uA680\uA682\uA684\uA686\uA688\uA68A\uA68C\uA68E\uA690\uA692\uA694\uA696\uA698\uA69A\uA722\uA724\uA726\uA728\uA72A\uA72C\uA72E\uA732\uA734\uA736\uA738\uA73A\uA73C\uA73E\uA740\uA742\uA744\uA746\uA748\uA74A\uA74C\uA74E\uA750\uA752\uA754\uA756\uA758\uA75A\uA75C\uA75E\uA760\uA762\uA764\uA766\uA768\uA76A\uA76C\uA76E\uA779\uA77B\uA77D\uA77E\uA780\uA782\uA784\uA786\uA78B\uA78D\uA790\uA792\uA796\uA798\uA79A\uA79C\uA79E\uA7A0\uA7A2\uA7A4\uA7A6\uA7A8\uA7AA-\uA7AD\uA7B0-\uA7B4\uA7B6\uFF21-\uFF3A])([A-Z\xC0-\xD6\xD8-\xDE\u0100\u0102\u0104\u0106\u0108\u010A\u010C\u010E\u0110\u0112\u0114\u0116\u0118\u011A\u011C\u011E\u0120\u0122\u0124\u0126\u0128\u012A\u012C\u012E\u0130\u0132\u0134\u0136\u0139\u013B\u013D\u013F\u0141\u0143\u0145\u0147\u014A\u014C\u014E\u0150\u0152\u0154\u0156\u0158\u015A\u015C\u015E\u0160\u0162\u0164\u0166\u0168\u016A\u016C\u016E\u0170\u0172\u0174\u0176\u0178\u0179\u017B\u017D\u0181\u0182\u0184\u0186\u0187\u0189-\u018B\u018E-\u0191\u0193\u0194\u0196-\u0198\u019C\u019D\u019F\u01A0\u01A2\u01A4\u01A6\u01A7\u01A9\u01AC\u01AE\u01AF\u01B1-\u01B3\u01B5\u01B7\u01B8\u01BC\u01C4\u01C7\u01CA\u01CD\u01CF\u01D1\u01D3\u01D5\u01D7\u01D9\u01DB\u01DE\u01E0\u01E2\u01E4\u01E6\u01E8\u01EA\u01EC\u01EE\u01F1\u01F4\u01F6-\u01F8\u01FA\u01FC\u01FE\u0200\u0202\u0204\u0206\u0208\u020A\u020C\u020E\u0210\u0212\u0214\u0216\u0218\u021A\u021C\u021E\u0220\u0222\u0224\u0226\u0228\u022A\u022C\u022E\u0230\u0232\u023A\u023B\u023D\u023E\u0241\u0243-\u0246\u0248\u024A\u024C\u024E\u0370\u0372\u0376\u037F\u0386\u0388-\u038A\u038C\u038E\u038F\u0391-\u03A1\u03A3-\u03AB\u03CF\u03D2-\u03D4\u03D8\u03DA\u03DC\u03DE\u03E0\u03E2\u03E4\u03E6\u03E8\u03EA\u03EC\u03EE\u03F4\u03F7\u03F9\u03FA\u03FD-\u042F\u0460\u0462\u0464\u0466\u0468\u046A\u046C\u046E\u0470\u0472\u0474\u0476\u0478\u047A\u047C\u047E\u0480\u048A\u048C\u048E\u0490\u0492\u0494\u0496\u0498\u049A\u049C\u049E\u04A0\u04A2\u04A4\u04A6\u04A8\u04AA\u04AC\u04AE\u04B0\u04B2\u04B4\u04B6\u04B8\u04BA\u04BC\u04BE\u04C0\u04C1\u04C3\u04C5\u04C7\u04C9\u04CB\u04CD\u04D0\u04D2\u04D4\u04D6\u04D8\u04DA\u04DC\u04DE\u04E0\u04E2\u04E4\u04E6\u04E8\u04EA\u04EC\u04EE\u04F0\u04F2\u04F4\u04F6\u04F8\u04FA\u04FC\u04FE\u0500\u0502\u0504\u0506\u0508\u050A\u050C\u050E\u0510\u0512\u0514\u0516\u0518\u051A\u051C\u051E\u0520\u0522\u0524\u0526\u0528\u052A\u052C\u052E\u0531-\u0556\u10A0-\u10C5\u10C7\u10CD\u13A0-\u13F5\u1E00\u1E02\u1E04\u1E06\u1E08\u1E0A\u1E0C\u1E0E\u1E10\u1E12\u1E14\u1E16\u1E18\u1E1A\u1E1C\u1E1E\u1E20\u1E22\u1E24\u1E26\u1E28\u1E2A\u1E2C\u1E2E\u1E30\u1E32\u1E34\u1E36\u1E38\u1E3A\u1E3C\u1E3E\u1E40\u1E42\u1E44\u1E46\u1E48\u1E4A\u1E4C\u1E4E\u1E50\u1E52\u1E54\u1E56\u1E58\u1E5A\u1E5C\u1E5E\u1E60\u1E62\u1E64\u1E66\u1E68\u1E6A\u1E6C\u1E6E\u1E70\u1E72\u1E74\u1E76\u1E78\u1E7A\u1E7C\u1E7E\u1E80\u1E82\u1E84\u1E86\u1E88\u1E8A\u1E8C\u1E8E\u1E90\u1E92\u1E94\u1E9E\u1EA0\u1EA2\u1EA4\u1EA6\u1EA8\u1EAA\u1EAC\u1EAE\u1EB0\u1EB2\u1EB4\u1EB6\u1EB8\u1EBA\u1EBC\u1EBE\u1EC0\u1EC2\u1EC4\u1EC6\u1EC8\u1ECA\u1ECC\u1ECE\u1ED0\u1ED2\u1ED4\u1ED6\u1ED8\u1EDA\u1EDC\u1EDE\u1EE0\u1EE2\u1EE4\u1EE6\u1EE8\u1EEA\u1EEC\u1EEE\u1EF0\u1EF2\u1EF4\u1EF6\u1EF8\u1EFA\u1EFC\u1EFE\u1F08-\u1F0F\u1F18-\u1F1D\u1F28-\u1F2F\u1F38-\u1F3F\u1F48-\u1F4D\u1F59\u1F5B\u1F5D\u1F5F\u1F68-\u1F6F\u1FB8-\u1FBB\u1FC8-\u1FCB\u1FD8-\u1FDB\u1FE8-\u1FEC\u1FF8-\u1FFB\u2102\u2107\u210B-\u210D\u2110-\u2112\u2115\u2119-\u211D\u2124\u2126\u2128\u212A-\u212D\u2130-\u2133\u213E\u213F\u2145\u2183\u2C00-\u2C2E\u2C60\u2C62-\u2C64\u2C67\u2C69\u2C6B\u2C6D-\u2C70\u2C72\u2C75\u2C7E-\u2C80\u2C82\u2C84\u2C86\u2C88\u2C8A\u2C8C\u2C8E\u2C90\u2C92\u2C94\u2C96\u2C98\u2C9A\u2C9C\u2C9E\u2CA0\u2CA2\u2CA4\u2CA6\u2CA8\u2CAA\u2CAC\u2CAE\u2CB0\u2CB2\u2CB4\u2CB6\u2CB8\u2CBA\u2CBC\u2CBE\u2CC0\u2CC2\u2CC4\u2CC6\u2CC8\u2CCA\u2CCC\u2CCE\u2CD0\u2CD2\u2CD4\u2CD6\u2CD8\u2CDA\u2CDC\u2CDE\u2CE0\u2CE2\u2CEB\u2CED\u2CF2\uA640\uA642\uA644\uA646\uA648\uA64A\uA64C\uA64E\uA650\uA652\uA654\uA656\uA658\uA65A\uA65C\uA65E\uA660\uA662\uA664\uA666\uA668\uA66A\uA66C\uA680\uA682\uA684\uA686\uA688\uA68A\uA68C\uA68E\uA690\uA692\uA694\uA696\uA698\uA69A\uA722\uA724\uA726\uA728\uA72A\uA72C\uA72E\uA732\uA734\uA736\uA738\uA73A\uA73C\uA73E\uA740\uA742\uA744\uA746\uA748\uA74A\uA74C\uA74E\uA750\uA752\uA754\uA756\uA758\uA75A\uA75C\uA75E\uA760\uA762\uA764\uA766\uA768\uA76A\uA76C\uA76E\uA779\uA77B\uA77D\uA77E\uA780\uA782\uA784\uA786\uA78B\uA78D\uA790\uA792\uA796\uA798\uA79A\uA79C\uA79E\uA7A0\uA7A2\uA7A4\uA7A6\uA7A8\uA7AA-\uA7AD\uA7B0-\uA7B4\uA7B6\uFF21-\uFF3A][a-z\xB5\xDF-\xF6\xF8-\xFF\u0101\u0103\u0105\u0107\u0109\u010B\u010D\u010F\u0111\u0113\u0115\u0117\u0119\u011B\u011D\u011F\u0121\u0123\u0125\u0127\u0129\u012B\u012D\u012F\u0131\u0133\u0135\u0137\u0138\u013A\u013C\u013E\u0140\u0142\u0144\u0146\u0148\u0149\u014B\u014D\u014F\u0151\u0153\u0155\u0157\u0159\u015B\u015D\u015F\u0161\u0163\u0165\u0167\u0169\u016B\u016D\u016F\u0171\u0173\u0175\u0177\u017A\u017C\u017E-\u0180\u0183\u0185\u0188\u018C\u018D\u0192\u0195\u0199-\u019B\u019E\u01A1\u01A3\u01A5\u01A8\u01AA\u01AB\u01AD\u01B0\u01B4\u01B6\u01B9\u01BA\u01BD-\u01BF\u01C6\u01C9\u01CC\u01CE\u01D0\u01D2\u01D4\u01D6\u01D8\u01DA\u01DC\u01DD\u01DF\u01E1\u01E3\u01E5\u01E7\u01E9\u01EB\u01ED\u01EF\u01F0\u01F3\u01F5\u01F9\u01FB\u01FD\u01FF\u0201\u0203\u0205\u0207\u0209\u020B\u020D\u020F\u0211\u0213\u0215\u0217\u0219\u021B\u021D\u021F\u0221\u0223\u0225\u0227\u0229\u022B\u022D\u022F\u0231\u0233-\u0239\u023C\u023F\u0240\u0242\u0247\u0249\u024B\u024D\u024F-\u0293\u0295-\u02AF\u0371\u0373\u0377\u037B-\u037D\u0390\u03AC-\u03CE\u03D0\u03D1\u03D5-\u03D7\u03D9\u03DB\u03DD\u03DF\u03E1\u03E3\u03E5\u03E7\u03E9\u03EB\u03ED\u03EF-\u03F3\u03F5\u03F8\u03FB\u03FC\u0430-\u045F\u0461\u0463\u0465\u0467\u0469\u046B\u046D\u046F\u0471\u0473\u0475\u0477\u0479\u047B\u047D\u047F\u0481\u048B\u048D\u048F\u0491\u0493\u0495\u0497\u0499\u049B\u049D\u049F\u04A1\u04A3\u04A5\u04A7\u04A9\u04AB\u04AD\u04AF\u04B1\u04B3\u04B5\u04B7\u04B9\u04BB\u04BD\u04BF\u04C2\u04C4\u04C6\u04C8\u04CA\u04CC\u04CE\u04CF\u04D1\u04D3\u04D5\u04D7\u04D9\u04DB\u04DD\u04DF\u04E1\u04E3\u04E5\u04E7\u04E9\u04EB\u04ED\u04EF\u04F1\u04F3\u04F5\u04F7\u04F9\u04FB\u04FD\u04FF\u0501\u0503\u0505\u0507\u0509\u050B\u050D\u050F\u0511\u0513\u0515\u0517\u0519\u051B\u051D\u051F\u0521\u0523\u0525\u0527\u0529\u052B\u052D\u052F\u0561-\u0587\u13F8-\u13FD\u1D00-\u1D2B\u1D6B-\u1D77\u1D79-\u1D9A\u1E01\u1E03\u1E05\u1E07\u1E09\u1E0B\u1E0D\u1E0F\u1E11\u1E13\u1E15\u1E17\u1E19\u1E1B\u1E1D\u1E1F\u1E21\u1E23\u1E25\u1E27\u1E29\u1E2B\u1E2D\u1E2F\u1E31\u1E33\u1E35\u1E37\u1E39\u1E3B\u1E3D\u1E3F\u1E41\u1E43\u1E45\u1E47\u1E49\u1E4B\u1E4D\u1E4F\u1E51\u1E53\u1E55\u1E57\u1E59\u1E5B\u1E5D\u1E5F\u1E61\u1E63\u1E65\u1E67\u1E69\u1E6B\u1E6D\u1E6F\u1E71\u1E73\u1E75\u1E77\u1E79\u1E7B\u1E7D\u1E7F\u1E81\u1E83\u1E85\u1E87\u1E89\u1E8B\u1E8D\u1E8F\u1E91\u1E93\u1E95-\u1E9D\u1E9F\u1EA1\u1EA3\u1EA5\u1EA7\u1EA9\u1EAB\u1EAD\u1EAF\u1EB1\u1EB3\u1EB5\u1EB7\u1EB9\u1EBB\u1EBD\u1EBF\u1EC1\u1EC3\u1EC5\u1EC7\u1EC9\u1ECB\u1ECD\u1ECF\u1ED1\u1ED3\u1ED5\u1ED7\u1ED9\u1EDB\u1EDD\u1EDF\u1EE1\u1EE3\u1EE5\u1EE7\u1EE9\u1EEB\u1EED\u1EEF\u1EF1\u1EF3\u1EF5\u1EF7\u1EF9\u1EFB\u1EFD\u1EFF-\u1F07\u1F10-\u1F15\u1F20-\u1F27\u1F30-\u1F37\u1F40-\u1F45\u1F50-\u1F57\u1F60-\u1F67\u1F70-\u1F7D\u1F80-\u1F87\u1F90-\u1F97\u1FA0-\u1FA7\u1FB0-\u1FB4\u1FB6\u1FB7\u1FBE\u1FC2-\u1FC4\u1FC6\u1FC7\u1FD0-\u1FD3\u1FD6\u1FD7\u1FE0-\u1FE7\u1FF2-\u1FF4\u1FF6\u1FF7\u210A\u210E\u210F\u2113\u212F\u2134\u2139\u213C\u213D\u2146-\u2149\u214E\u2184\u2C30-\u2C5E\u2C61\u2C65\u2C66\u2C68\u2C6A\u2C6C\u2C71\u2C73\u2C74\u2C76-\u2C7B\u2C81\u2C83\u2C85\u2C87\u2C89\u2C8B\u2C8D\u2C8F\u2C91\u2C93\u2C95\u2C97\u2C99\u2C9B\u2C9D\u2C9F\u2CA1\u2CA3\u2CA5\u2CA7\u2CA9\u2CAB\u2CAD\u2CAF\u2CB1\u2CB3\u2CB5\u2CB7\u2CB9\u2CBB\u2CBD\u2CBF\u2CC1\u2CC3\u2CC5\u2CC7\u2CC9\u2CCB\u2CCD\u2CCF\u2CD1\u2CD3\u2CD5\u2CD7\u2CD9\u2CDB\u2CDD\u2CDF\u2CE1\u2CE3\u2CE4\u2CEC\u2CEE\u2CF3\u2D00-\u2D25\u2D27\u2D2D\uA641\uA643\uA645\uA647\uA649\uA64B\uA64D\uA64F\uA651\uA653\uA655\uA657\uA659\uA65B\uA65D\uA65F\uA661\uA663\uA665\uA667\uA669\uA66B\uA66D\uA681\uA683\uA685\uA687\uA689\uA68B\uA68D\uA68F\uA691\uA693\uA695\uA697\uA699\uA69B\uA723\uA725\uA727\uA729\uA72B\uA72D\uA72F-\uA731\uA733\uA735\uA737\uA739\uA73B\uA73D\uA73F\uA741\uA743\uA745\uA747\uA749\uA74B\uA74D\uA74F\uA751\uA753\uA755\uA757\uA759\uA75B\uA75D\uA75F\uA761\uA763\uA765\uA767\uA769\uA76B\uA76D\uA76F\uA771-\uA778\uA77A\uA77C\uA77F\uA781\uA783\uA785\uA787\uA78C\uA78E\uA791\uA793-\uA795\uA797\uA799\uA79B\uA79D\uA79F\uA7A1\uA7A3\uA7A5\uA7A7\uA7A9\uA7B5\uA7B7\uA7FA\uAB30-\uAB5A\uAB60-\uAB65\uAB70-\uABBF\uFB00-\uFB06\uFB13-\uFB17\uFF41-\uFF5A])/g
12340
12341
12342/***/ }),
12343/* 19 */
12344/***/ (function(module, exports, __webpack_require__) {
12345
12346var noCase = __webpack_require__(0)
12347
12348/**
12349 * Dot case a string.
12350 *
12351 * @param {string} value
12352 * @param {string} [locale]
12353 * @return {string}
12354 */
12355module.exports = function (value, locale) {
12356 return noCase(value, locale, '.')
12357}
12358
12359
12360/***/ }),
12361/* 20 */
12362/***/ (function(module, exports, __webpack_require__) {
12363
12364var upperCase = __webpack_require__(1)
12365var lowerCase = __webpack_require__(2)
12366
12367/**
12368 * Swap the case of a string. Manually iterate over every character and check
12369 * instead of replacing certain characters for better unicode support.
12370 *
12371 * @param {String} str
12372 * @param {String} [locale]
12373 * @return {String}
12374 */
12375module.exports = function (str, locale) {
12376 if (str == null) {
12377 return ''
12378 }
12379
12380 var result = ''
12381
12382 for (var i = 0; i < str.length; i++) {
12383 var c = str[i]
12384 var u = upperCase(c, locale)
12385
12386 result += u === c ? lowerCase(c, locale) : u
12387 }
12388
12389 return result
12390}
12391
12392
12393/***/ }),
12394/* 21 */
12395/***/ (function(module, exports, __webpack_require__) {
12396
12397var noCase = __webpack_require__(0)
12398
12399/**
12400 * Path case a string.
12401 *
12402 * @param {string} value
12403 * @param {string} [locale]
12404 * @return {string}
12405 */
12406module.exports = function (value, locale) {
12407 return noCase(value, locale, '/')
12408}
12409
12410
12411/***/ }),
12412/* 22 */
12413/***/ (function(module, exports, __webpack_require__) {
12414
12415var noCase = __webpack_require__(0)
12416var upperCase = __webpack_require__(1)
12417
12418/**
12419 * Title case a string.
12420 *
12421 * @param {string} value
12422 * @param {string} [locale]
12423 * @return {string}
12424 */
12425module.exports = function (value, locale) {
12426 return noCase(value, locale).replace(/^.| ./g, function (m) {
12427 return upperCase(m, locale)
12428 })
12429}
12430
12431
12432/***/ }),
12433/* 23 */
12434/***/ (function(module, exports, __webpack_require__) {
12435
12436var noCase = __webpack_require__(0)
12437
12438/**
12439 * Param case a string.
12440 *
12441 * @param {string} value
12442 * @param {string} [locale]
12443 * @return {string}
12444 */
12445module.exports = function (value, locale) {
12446 return noCase(value, locale, '-')
12447}
12448
12449
12450/***/ }),
12451/* 24 */
12452/***/ (function(module, exports, __webpack_require__) {
12453
12454var noCase = __webpack_require__(0)
12455var upperCase = __webpack_require__(1)
12456
12457/**
12458 * Header case a string.
12459 *
12460 * @param {string} value
12461 * @param {string} [locale]
12462 * @return {string}
12463 */
12464module.exports = function (value, locale) {
12465 return noCase(value, locale, '-').replace(/^.|-./g, function (m) {
12466 return upperCase(m, locale)
12467 })
12468}
12469
12470
12471/***/ }),
12472/* 25 */
12473/***/ (function(module, exports, __webpack_require__) {
12474
12475var camelCase = __webpack_require__(5)
12476var upperCaseFirst = __webpack_require__(3)
12477
12478/**
12479 * Pascal case a string.
12480 *
12481 * @param {string} value
12482 * @param {string} [locale]
12483 * @param {boolean} [mergeNumbers]
12484 * @return {string}
12485 */
12486module.exports = function (value, locale, mergeNumbers) {
12487 return upperCaseFirst(camelCase(value, locale, mergeNumbers), locale)
12488}
12489
12490
12491/***/ }),
12492/* 26 */
12493/***/ (function(module, exports, __webpack_require__) {
12494
12495var upperCase = __webpack_require__(1)
12496var snakeCase = __webpack_require__(6)
12497
12498/**
12499 * Constant case a string.
12500 *
12501 * @param {string} value
12502 * @param {string} [locale]
12503 * @return {string}
12504 */
12505module.exports = function (value, locale) {
12506 return upperCase(snakeCase(value, locale), locale)
12507}
12508
12509
12510/***/ }),
12511/* 27 */
12512/***/ (function(module, exports, __webpack_require__) {
12513
12514var noCase = __webpack_require__(0)
12515var upperCaseFirst = __webpack_require__(3)
12516
12517/**
12518 * Sentence case a string.
12519 *
12520 * @param {string} value
12521 * @param {string} [locale]
12522 * @return {string}
12523 */
12524module.exports = function (value, locale) {
12525 return upperCaseFirst(noCase(value, locale), locale)
12526}
12527
12528
12529/***/ }),
12530/* 28 */
12531/***/ (function(module, exports, __webpack_require__) {
12532
12533var upperCase = __webpack_require__(1)
12534
12535/**
12536 * Check if a string is upper case.
12537 *
12538 * @param {String} string
12539 * @param {String} [locale]
12540 * @return {Boolean}
12541 */
12542module.exports = function (string, locale) {
12543 return upperCase(string, locale) === string
12544}
12545
12546
12547/***/ }),
12548/* 29 */
12549/***/ (function(module, exports, __webpack_require__) {
12550
12551var lowerCase = __webpack_require__(2)
12552
12553/**
12554 * Check if a string is lower case.
12555 *
12556 * @param {String} string
12557 * @param {String} [locale]
12558 * @return {Boolean}
12559 */
12560module.exports = function (string, locale) {
12561 return lowerCase(string, locale) === string
12562}
12563
12564
12565/***/ }),
12566/* 30 */
12567/***/ (function(module, exports, __webpack_require__) {
12568
12569var lowerCase = __webpack_require__(2)
12570
12571/**
12572 * Lower case the first character of a string.
12573 *
12574 * @param {String} str
12575 * @return {String}
12576 */
12577module.exports = function (str, locale) {
12578 if (str == null) {
12579 return ''
12580 }
12581
12582 str = String(str)
12583
12584 return lowerCase(str.charAt(0), locale) + str.substr(1)
12585}
12586
12587
12588/***/ })
12589/******/ ])));
12590//# sourceMappingURL=index.js.map
12591
12592/***/ }),
12593/* 4 */
12594/***/ (function(module, exports, __webpack_require__) {
12595
12596/**!
12597
12598 @license
12599 handlebars v4.0.12
12600
12601Copyright (C) 2011-2017 by Yehuda Katz
12602
12603Permission is hereby granted, free of charge, to any person obtaining a copy
12604of this software and associated documentation files (the "Software"), to deal
12605in the Software without restriction, including without limitation the rights
12606to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
12607copies of the Software, and to permit persons to whom the Software is
12608furnished to do so, subject to the following conditions:
12609
12610The above copyright notice and this permission notice shall be included in
12611all copies or substantial portions of the Software.
12612
12613THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
12614IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
12615FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
12616AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
12617LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
12618OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
12619THE SOFTWARE.
12620
12621*/
12622(function webpackUniversalModuleDefinition(root, factory) {
12623 if(true)
12624 module.exports = factory();
12625 else {}
12626})(this, function() {
12627return /******/ (function(modules) { // webpackBootstrap
12628/******/ // The module cache
12629/******/ var installedModules = {};
12630
12631/******/ // The require function
12632/******/ function __webpack_require__(moduleId) {
12633
12634/******/ // Check if module is in cache
12635/******/ if(installedModules[moduleId])
12636/******/ return installedModules[moduleId].exports;
12637
12638/******/ // Create a new module (and put it into the cache)
12639/******/ var module = installedModules[moduleId] = {
12640/******/ exports: {},
12641/******/ id: moduleId,
12642/******/ loaded: false
12643/******/ };
12644
12645/******/ // Execute the module function
12646/******/ modules[moduleId].call(module.exports, module, module.exports, __webpack_require__);
12647
12648/******/ // Flag the module as loaded
12649/******/ module.loaded = true;
12650
12651/******/ // Return the exports of the module
12652/******/ return module.exports;
12653/******/ }
12654
12655
12656/******/ // expose the modules object (__webpack_modules__)
12657/******/ __webpack_require__.m = modules;
12658
12659/******/ // expose the module cache
12660/******/ __webpack_require__.c = installedModules;
12661
12662/******/ // __webpack_public_path__
12663/******/ __webpack_require__.p = "";
12664
12665/******/ // Load entry module and return exports
12666/******/ return __webpack_require__(0);
12667/******/ })
12668/************************************************************************/
12669/******/ ([
12670/* 0 */
12671/***/ (function(module, exports, __webpack_require__) {
12672
12673 'use strict';
12674
12675 var _interopRequireDefault = __webpack_require__(1)['default'];
12676
12677 exports.__esModule = true;
12678
12679 var _handlebarsRuntime = __webpack_require__(2);
12680
12681 var _handlebarsRuntime2 = _interopRequireDefault(_handlebarsRuntime);
12682
12683 // Compiler imports
12684
12685 var _handlebarsCompilerAst = __webpack_require__(35);
12686
12687 var _handlebarsCompilerAst2 = _interopRequireDefault(_handlebarsCompilerAst);
12688
12689 var _handlebarsCompilerBase = __webpack_require__(36);
12690
12691 var _handlebarsCompilerCompiler = __webpack_require__(41);
12692
12693 var _handlebarsCompilerJavascriptCompiler = __webpack_require__(42);
12694
12695 var _handlebarsCompilerJavascriptCompiler2 = _interopRequireDefault(_handlebarsCompilerJavascriptCompiler);
12696
12697 var _handlebarsCompilerVisitor = __webpack_require__(39);
12698
12699 var _handlebarsCompilerVisitor2 = _interopRequireDefault(_handlebarsCompilerVisitor);
12700
12701 var _handlebarsNoConflict = __webpack_require__(34);
12702
12703 var _handlebarsNoConflict2 = _interopRequireDefault(_handlebarsNoConflict);
12704
12705 var _create = _handlebarsRuntime2['default'].create;
12706 function create() {
12707 var hb = _create();
12708
12709 hb.compile = function (input, options) {
12710 return _handlebarsCompilerCompiler.compile(input, options, hb);
12711 };
12712 hb.precompile = function (input, options) {
12713 return _handlebarsCompilerCompiler.precompile(input, options, hb);
12714 };
12715
12716 hb.AST = _handlebarsCompilerAst2['default'];
12717 hb.Compiler = _handlebarsCompilerCompiler.Compiler;
12718 hb.JavaScriptCompiler = _handlebarsCompilerJavascriptCompiler2['default'];
12719 hb.Parser = _handlebarsCompilerBase.parser;
12720 hb.parse = _handlebarsCompilerBase.parse;
12721
12722 return hb;
12723 }
12724
12725 var inst = create();
12726 inst.create = create;
12727
12728 _handlebarsNoConflict2['default'](inst);
12729
12730 inst.Visitor = _handlebarsCompilerVisitor2['default'];
12731
12732 inst['default'] = inst;
12733
12734 exports['default'] = inst;
12735 module.exports = exports['default'];
12736
12737/***/ }),
12738/* 1 */
12739/***/ (function(module, exports) {
12740
12741 "use strict";
12742
12743 exports["default"] = function (obj) {
12744 return obj && obj.__esModule ? obj : {
12745 "default": obj
12746 };
12747 };
12748
12749 exports.__esModule = true;
12750
12751/***/ }),
12752/* 2 */
12753/***/ (function(module, exports, __webpack_require__) {
12754
12755 'use strict';
12756
12757 var _interopRequireWildcard = __webpack_require__(3)['default'];
12758
12759 var _interopRequireDefault = __webpack_require__(1)['default'];
12760
12761 exports.__esModule = true;
12762
12763 var _handlebarsBase = __webpack_require__(4);
12764
12765 var base = _interopRequireWildcard(_handlebarsBase);
12766
12767 // Each of these augment the Handlebars object. No need to setup here.
12768 // (This is done to easily share code between commonjs and browse envs)
12769
12770 var _handlebarsSafeString = __webpack_require__(21);
12771
12772 var _handlebarsSafeString2 = _interopRequireDefault(_handlebarsSafeString);
12773
12774 var _handlebarsException = __webpack_require__(6);
12775
12776 var _handlebarsException2 = _interopRequireDefault(_handlebarsException);
12777
12778 var _handlebarsUtils = __webpack_require__(5);
12779
12780 var Utils = _interopRequireWildcard(_handlebarsUtils);
12781
12782 var _handlebarsRuntime = __webpack_require__(22);
12783
12784 var runtime = _interopRequireWildcard(_handlebarsRuntime);
12785
12786 var _handlebarsNoConflict = __webpack_require__(34);
12787
12788 var _handlebarsNoConflict2 = _interopRequireDefault(_handlebarsNoConflict);
12789
12790 // For compatibility and usage outside of module systems, make the Handlebars object a namespace
12791 function create() {
12792 var hb = new base.HandlebarsEnvironment();
12793
12794 Utils.extend(hb, base);
12795 hb.SafeString = _handlebarsSafeString2['default'];
12796 hb.Exception = _handlebarsException2['default'];
12797 hb.Utils = Utils;
12798 hb.escapeExpression = Utils.escapeExpression;
12799
12800 hb.VM = runtime;
12801 hb.template = function (spec) {
12802 return runtime.template(spec, hb);
12803 };
12804
12805 return hb;
12806 }
12807
12808 var inst = create();
12809 inst.create = create;
12810
12811 _handlebarsNoConflict2['default'](inst);
12812
12813 inst['default'] = inst;
12814
12815 exports['default'] = inst;
12816 module.exports = exports['default'];
12817
12818/***/ }),
12819/* 3 */
12820/***/ (function(module, exports) {
12821
12822 "use strict";
12823
12824 exports["default"] = function (obj) {
12825 if (obj && obj.__esModule) {
12826 return obj;
12827 } else {
12828 var newObj = {};
12829
12830 if (obj != null) {
12831 for (var key in obj) {
12832 if (Object.prototype.hasOwnProperty.call(obj, key)) newObj[key] = obj[key];
12833 }
12834 }
12835
12836 newObj["default"] = obj;
12837 return newObj;
12838 }
12839 };
12840
12841 exports.__esModule = true;
12842
12843/***/ }),
12844/* 4 */
12845/***/ (function(module, exports, __webpack_require__) {
12846
12847 'use strict';
12848
12849 var _interopRequireDefault = __webpack_require__(1)['default'];
12850
12851 exports.__esModule = true;
12852 exports.HandlebarsEnvironment = HandlebarsEnvironment;
12853
12854 var _utils = __webpack_require__(5);
12855
12856 var _exception = __webpack_require__(6);
12857
12858 var _exception2 = _interopRequireDefault(_exception);
12859
12860 var _helpers = __webpack_require__(10);
12861
12862 var _decorators = __webpack_require__(18);
12863
12864 var _logger = __webpack_require__(20);
12865
12866 var _logger2 = _interopRequireDefault(_logger);
12867
12868 var VERSION = '4.0.12';
12869 exports.VERSION = VERSION;
12870 var COMPILER_REVISION = 7;
12871
12872 exports.COMPILER_REVISION = COMPILER_REVISION;
12873 var REVISION_CHANGES = {
12874 1: '<= 1.0.rc.2', // 1.0.rc.2 is actually rev2 but doesn't report it
12875 2: '== 1.0.0-rc.3',
12876 3: '== 1.0.0-rc.4',
12877 4: '== 1.x.x',
12878 5: '== 2.0.0-alpha.x',
12879 6: '>= 2.0.0-beta.1',
12880 7: '>= 4.0.0'
12881 };
12882
12883 exports.REVISION_CHANGES = REVISION_CHANGES;
12884 var objectType = '[object Object]';
12885
12886 function HandlebarsEnvironment(helpers, partials, decorators) {
12887 this.helpers = helpers || {};
12888 this.partials = partials || {};
12889 this.decorators = decorators || {};
12890
12891 _helpers.registerDefaultHelpers(this);
12892 _decorators.registerDefaultDecorators(this);
12893 }
12894
12895 HandlebarsEnvironment.prototype = {
12896 constructor: HandlebarsEnvironment,
12897
12898 logger: _logger2['default'],
12899 log: _logger2['default'].log,
12900
12901 registerHelper: function registerHelper(name, fn) {
12902 if (_utils.toString.call(name) === objectType) {
12903 if (fn) {
12904 throw new _exception2['default']('Arg not supported with multiple helpers');
12905 }
12906 _utils.extend(this.helpers, name);
12907 } else {
12908 this.helpers[name] = fn;
12909 }
12910 },
12911 unregisterHelper: function unregisterHelper(name) {
12912 delete this.helpers[name];
12913 },
12914
12915 registerPartial: function registerPartial(name, partial) {
12916 if (_utils.toString.call(name) === objectType) {
12917 _utils.extend(this.partials, name);
12918 } else {
12919 if (typeof partial === 'undefined') {
12920 throw new _exception2['default']('Attempting to register a partial called "' + name + '" as undefined');
12921 }
12922 this.partials[name] = partial;
12923 }
12924 },
12925 unregisterPartial: function unregisterPartial(name) {
12926 delete this.partials[name];
12927 },
12928
12929 registerDecorator: function registerDecorator(name, fn) {
12930 if (_utils.toString.call(name) === objectType) {
12931 if (fn) {
12932 throw new _exception2['default']('Arg not supported with multiple decorators');
12933 }
12934 _utils.extend(this.decorators, name);
12935 } else {
12936 this.decorators[name] = fn;
12937 }
12938 },
12939 unregisterDecorator: function unregisterDecorator(name) {
12940 delete this.decorators[name];
12941 }
12942 };
12943
12944 var log = _logger2['default'].log;
12945
12946 exports.log = log;
12947 exports.createFrame = _utils.createFrame;
12948 exports.logger = _logger2['default'];
12949
12950/***/ }),
12951/* 5 */
12952/***/ (function(module, exports) {
12953
12954 'use strict';
12955
12956 exports.__esModule = true;
12957 exports.extend = extend;
12958 exports.indexOf = indexOf;
12959 exports.escapeExpression = escapeExpression;
12960 exports.isEmpty = isEmpty;
12961 exports.createFrame = createFrame;
12962 exports.blockParams = blockParams;
12963 exports.appendContextPath = appendContextPath;
12964 var escape = {
12965 '&': '&amp;',
12966 '<': '&lt;',
12967 '>': '&gt;',
12968 '"': '&quot;',
12969 "'": '&#x27;',
12970 '`': '&#x60;',
12971 '=': '&#x3D;'
12972 };
12973
12974 var badChars = /[&<>"'`=]/g,
12975 possible = /[&<>"'`=]/;
12976
12977 function escapeChar(chr) {
12978 return escape[chr];
12979 }
12980
12981 function extend(obj /* , ...source */) {
12982 for (var i = 1; i < arguments.length; i++) {
12983 for (var key in arguments[i]) {
12984 if (Object.prototype.hasOwnProperty.call(arguments[i], key)) {
12985 obj[key] = arguments[i][key];
12986 }
12987 }
12988 }
12989
12990 return obj;
12991 }
12992
12993 var toString = Object.prototype.toString;
12994
12995 exports.toString = toString;
12996 // Sourced from lodash
12997 // https://github.com/bestiejs/lodash/blob/master/LICENSE.txt
12998 /* eslint-disable func-style */
12999 var isFunction = function isFunction(value) {
13000 return typeof value === 'function';
13001 };
13002 // fallback for older versions of Chrome and Safari
13003 /* istanbul ignore next */
13004 if (isFunction(/x/)) {
13005 exports.isFunction = isFunction = function (value) {
13006 return typeof value === 'function' && toString.call(value) === '[object Function]';
13007 };
13008 }
13009 exports.isFunction = isFunction;
13010
13011 /* eslint-enable func-style */
13012
13013 /* istanbul ignore next */
13014 var isArray = Array.isArray || function (value) {
13015 return value && typeof value === 'object' ? toString.call(value) === '[object Array]' : false;
13016 };
13017
13018 exports.isArray = isArray;
13019 // Older IE versions do not directly support indexOf so we must implement our own, sadly.
13020
13021 function indexOf(array, value) {
13022 for (var i = 0, len = array.length; i < len; i++) {
13023 if (array[i] === value) {
13024 return i;
13025 }
13026 }
13027 return -1;
13028 }
13029
13030 function escapeExpression(string) {
13031 if (typeof string !== 'string') {
13032 // don't escape SafeStrings, since they're already safe
13033 if (string && string.toHTML) {
13034 return string.toHTML();
13035 } else if (string == null) {
13036 return '';
13037 } else if (!string) {
13038 return string + '';
13039 }
13040
13041 // Force a string conversion as this will be done by the append regardless and
13042 // the regex test will do this transparently behind the scenes, causing issues if
13043 // an object's to string has escaped characters in it.
13044 string = '' + string;
13045 }
13046
13047 if (!possible.test(string)) {
13048 return string;
13049 }
13050 return string.replace(badChars, escapeChar);
13051 }
13052
13053 function isEmpty(value) {
13054 if (!value && value !== 0) {
13055 return true;
13056 } else if (isArray(value) && value.length === 0) {
13057 return true;
13058 } else {
13059 return false;
13060 }
13061 }
13062
13063 function createFrame(object) {
13064 var frame = extend({}, object);
13065 frame._parent = object;
13066 return frame;
13067 }
13068
13069 function blockParams(params, ids) {
13070 params.path = ids;
13071 return params;
13072 }
13073
13074 function appendContextPath(contextPath, id) {
13075 return (contextPath ? contextPath + '.' : '') + id;
13076 }
13077
13078/***/ }),
13079/* 6 */
13080/***/ (function(module, exports, __webpack_require__) {
13081
13082 'use strict';
13083
13084 var _Object$defineProperty = __webpack_require__(7)['default'];
13085
13086 exports.__esModule = true;
13087
13088 var errorProps = ['description', 'fileName', 'lineNumber', 'message', 'name', 'number', 'stack'];
13089
13090 function Exception(message, node) {
13091 var loc = node && node.loc,
13092 line = undefined,
13093 column = undefined;
13094 if (loc) {
13095 line = loc.start.line;
13096 column = loc.start.column;
13097
13098 message += ' - ' + line + ':' + column;
13099 }
13100
13101 var tmp = Error.prototype.constructor.call(this, message);
13102
13103 // Unfortunately errors are not enumerable in Chrome (at least), so `for prop in tmp` doesn't work.
13104 for (var idx = 0; idx < errorProps.length; idx++) {
13105 this[errorProps[idx]] = tmp[errorProps[idx]];
13106 }
13107
13108 /* istanbul ignore else */
13109 if (Error.captureStackTrace) {
13110 Error.captureStackTrace(this, Exception);
13111 }
13112
13113 try {
13114 if (loc) {
13115 this.lineNumber = line;
13116
13117 // Work around issue under safari where we can't directly set the column value
13118 /* istanbul ignore next */
13119 if (_Object$defineProperty) {
13120 Object.defineProperty(this, 'column', {
13121 value: column,
13122 enumerable: true
13123 });
13124 } else {
13125 this.column = column;
13126 }
13127 }
13128 } catch (nop) {
13129 /* Ignore if the browser is very particular */
13130 }
13131 }
13132
13133 Exception.prototype = new Error();
13134
13135 exports['default'] = Exception;
13136 module.exports = exports['default'];
13137
13138/***/ }),
13139/* 7 */
13140/***/ (function(module, exports, __webpack_require__) {
13141
13142 module.exports = { "default": __webpack_require__(8), __esModule: true };
13143
13144/***/ }),
13145/* 8 */
13146/***/ (function(module, exports, __webpack_require__) {
13147
13148 var $ = __webpack_require__(9);
13149 module.exports = function defineProperty(it, key, desc){
13150 return $.setDesc(it, key, desc);
13151 };
13152
13153/***/ }),
13154/* 9 */
13155/***/ (function(module, exports) {
13156
13157 var $Object = Object;
13158 module.exports = {
13159 create: $Object.create,
13160 getProto: $Object.getPrototypeOf,
13161 isEnum: {}.propertyIsEnumerable,
13162 getDesc: $Object.getOwnPropertyDescriptor,
13163 setDesc: $Object.defineProperty,
13164 setDescs: $Object.defineProperties,
13165 getKeys: $Object.keys,
13166 getNames: $Object.getOwnPropertyNames,
13167 getSymbols: $Object.getOwnPropertySymbols,
13168 each: [].forEach
13169 };
13170
13171/***/ }),
13172/* 10 */
13173/***/ (function(module, exports, __webpack_require__) {
13174
13175 'use strict';
13176
13177 var _interopRequireDefault = __webpack_require__(1)['default'];
13178
13179 exports.__esModule = true;
13180 exports.registerDefaultHelpers = registerDefaultHelpers;
13181
13182 var _helpersBlockHelperMissing = __webpack_require__(11);
13183
13184 var _helpersBlockHelperMissing2 = _interopRequireDefault(_helpersBlockHelperMissing);
13185
13186 var _helpersEach = __webpack_require__(12);
13187
13188 var _helpersEach2 = _interopRequireDefault(_helpersEach);
13189
13190 var _helpersHelperMissing = __webpack_require__(13);
13191
13192 var _helpersHelperMissing2 = _interopRequireDefault(_helpersHelperMissing);
13193
13194 var _helpersIf = __webpack_require__(14);
13195
13196 var _helpersIf2 = _interopRequireDefault(_helpersIf);
13197
13198 var _helpersLog = __webpack_require__(15);
13199
13200 var _helpersLog2 = _interopRequireDefault(_helpersLog);
13201
13202 var _helpersLookup = __webpack_require__(16);
13203
13204 var _helpersLookup2 = _interopRequireDefault(_helpersLookup);
13205
13206 var _helpersWith = __webpack_require__(17);
13207
13208 var _helpersWith2 = _interopRequireDefault(_helpersWith);
13209
13210 function registerDefaultHelpers(instance) {
13211 _helpersBlockHelperMissing2['default'](instance);
13212 _helpersEach2['default'](instance);
13213 _helpersHelperMissing2['default'](instance);
13214 _helpersIf2['default'](instance);
13215 _helpersLog2['default'](instance);
13216 _helpersLookup2['default'](instance);
13217 _helpersWith2['default'](instance);
13218 }
13219
13220/***/ }),
13221/* 11 */
13222/***/ (function(module, exports, __webpack_require__) {
13223
13224 'use strict';
13225
13226 exports.__esModule = true;
13227
13228 var _utils = __webpack_require__(5);
13229
13230 exports['default'] = function (instance) {
13231 instance.registerHelper('blockHelperMissing', function (context, options) {
13232 var inverse = options.inverse,
13233 fn = options.fn;
13234
13235 if (context === true) {
13236 return fn(this);
13237 } else if (context === false || context == null) {
13238 return inverse(this);
13239 } else if (_utils.isArray(context)) {
13240 if (context.length > 0) {
13241 if (options.ids) {
13242 options.ids = [options.name];
13243 }
13244
13245 return instance.helpers.each(context, options);
13246 } else {
13247 return inverse(this);
13248 }
13249 } else {
13250 if (options.data && options.ids) {
13251 var data = _utils.createFrame(options.data);
13252 data.contextPath = _utils.appendContextPath(options.data.contextPath, options.name);
13253 options = { data: data };
13254 }
13255
13256 return fn(context, options);
13257 }
13258 });
13259 };
13260
13261 module.exports = exports['default'];
13262
13263/***/ }),
13264/* 12 */
13265/***/ (function(module, exports, __webpack_require__) {
13266
13267 'use strict';
13268
13269 var _interopRequireDefault = __webpack_require__(1)['default'];
13270
13271 exports.__esModule = true;
13272
13273 var _utils = __webpack_require__(5);
13274
13275 var _exception = __webpack_require__(6);
13276
13277 var _exception2 = _interopRequireDefault(_exception);
13278
13279 exports['default'] = function (instance) {
13280 instance.registerHelper('each', function (context, options) {
13281 if (!options) {
13282 throw new _exception2['default']('Must pass iterator to #each');
13283 }
13284
13285 var fn = options.fn,
13286 inverse = options.inverse,
13287 i = 0,
13288 ret = '',
13289 data = undefined,
13290 contextPath = undefined;
13291
13292 if (options.data && options.ids) {
13293 contextPath = _utils.appendContextPath(options.data.contextPath, options.ids[0]) + '.';
13294 }
13295
13296 if (_utils.isFunction(context)) {
13297 context = context.call(this);
13298 }
13299
13300 if (options.data) {
13301 data = _utils.createFrame(options.data);
13302 }
13303
13304 function execIteration(field, index, last) {
13305 if (data) {
13306 data.key = field;
13307 data.index = index;
13308 data.first = index === 0;
13309 data.last = !!last;
13310
13311 if (contextPath) {
13312 data.contextPath = contextPath + field;
13313 }
13314 }
13315
13316 ret = ret + fn(context[field], {
13317 data: data,
13318 blockParams: _utils.blockParams([context[field], field], [contextPath + field, null])
13319 });
13320 }
13321
13322 if (context && typeof context === 'object') {
13323 if (_utils.isArray(context)) {
13324 for (var j = context.length; i < j; i++) {
13325 if (i in context) {
13326 execIteration(i, i, i === context.length - 1);
13327 }
13328 }
13329 } else {
13330 var priorKey = undefined;
13331
13332 for (var key in context) {
13333 if (context.hasOwnProperty(key)) {
13334 // We're running the iterations one step out of sync so we can detect
13335 // the last iteration without have to scan the object twice and create
13336 // an itermediate keys array.
13337 if (priorKey !== undefined) {
13338 execIteration(priorKey, i - 1);
13339 }
13340 priorKey = key;
13341 i++;
13342 }
13343 }
13344 if (priorKey !== undefined) {
13345 execIteration(priorKey, i - 1, true);
13346 }
13347 }
13348 }
13349
13350 if (i === 0) {
13351 ret = inverse(this);
13352 }
13353
13354 return ret;
13355 });
13356 };
13357
13358 module.exports = exports['default'];
13359
13360/***/ }),
13361/* 13 */
13362/***/ (function(module, exports, __webpack_require__) {
13363
13364 'use strict';
13365
13366 var _interopRequireDefault = __webpack_require__(1)['default'];
13367
13368 exports.__esModule = true;
13369
13370 var _exception = __webpack_require__(6);
13371
13372 var _exception2 = _interopRequireDefault(_exception);
13373
13374 exports['default'] = function (instance) {
13375 instance.registerHelper('helperMissing', function () /* [args, ]options */{
13376 if (arguments.length === 1) {
13377 // A missing field in a {{foo}} construct.
13378 return undefined;
13379 } else {
13380 // Someone is actually trying to call something, blow up.
13381 throw new _exception2['default']('Missing helper: "' + arguments[arguments.length - 1].name + '"');
13382 }
13383 });
13384 };
13385
13386 module.exports = exports['default'];
13387
13388/***/ }),
13389/* 14 */
13390/***/ (function(module, exports, __webpack_require__) {
13391
13392 'use strict';
13393
13394 exports.__esModule = true;
13395
13396 var _utils = __webpack_require__(5);
13397
13398 exports['default'] = function (instance) {
13399 instance.registerHelper('if', function (conditional, options) {
13400 if (_utils.isFunction(conditional)) {
13401 conditional = conditional.call(this);
13402 }
13403
13404 // Default behavior is to render the positive path if the value is truthy and not empty.
13405 // The `includeZero` option may be set to treat the condtional as purely not empty based on the
13406 // behavior of isEmpty. Effectively this determines if 0 is handled by the positive path or negative.
13407 if (!options.hash.includeZero && !conditional || _utils.isEmpty(conditional)) {
13408 return options.inverse(this);
13409 } else {
13410 return options.fn(this);
13411 }
13412 });
13413
13414 instance.registerHelper('unless', function (conditional, options) {
13415 return instance.helpers['if'].call(this, conditional, { fn: options.inverse, inverse: options.fn, hash: options.hash });
13416 });
13417 };
13418
13419 module.exports = exports['default'];
13420
13421/***/ }),
13422/* 15 */
13423/***/ (function(module, exports) {
13424
13425 'use strict';
13426
13427 exports.__esModule = true;
13428
13429 exports['default'] = function (instance) {
13430 instance.registerHelper('log', function () /* message, options */{
13431 var args = [undefined],
13432 options = arguments[arguments.length - 1];
13433 for (var i = 0; i < arguments.length - 1; i++) {
13434 args.push(arguments[i]);
13435 }
13436
13437 var level = 1;
13438 if (options.hash.level != null) {
13439 level = options.hash.level;
13440 } else if (options.data && options.data.level != null) {
13441 level = options.data.level;
13442 }
13443 args[0] = level;
13444
13445 instance.log.apply(instance, args);
13446 });
13447 };
13448
13449 module.exports = exports['default'];
13450
13451/***/ }),
13452/* 16 */
13453/***/ (function(module, exports) {
13454
13455 'use strict';
13456
13457 exports.__esModule = true;
13458
13459 exports['default'] = function (instance) {
13460 instance.registerHelper('lookup', function (obj, field) {
13461 return obj && obj[field];
13462 });
13463 };
13464
13465 module.exports = exports['default'];
13466
13467/***/ }),
13468/* 17 */
13469/***/ (function(module, exports, __webpack_require__) {
13470
13471 'use strict';
13472
13473 exports.__esModule = true;
13474
13475 var _utils = __webpack_require__(5);
13476
13477 exports['default'] = function (instance) {
13478 instance.registerHelper('with', function (context, options) {
13479 if (_utils.isFunction(context)) {
13480 context = context.call(this);
13481 }
13482
13483 var fn = options.fn;
13484
13485 if (!_utils.isEmpty(context)) {
13486 var data = options.data;
13487 if (options.data && options.ids) {
13488 data = _utils.createFrame(options.data);
13489 data.contextPath = _utils.appendContextPath(options.data.contextPath, options.ids[0]);
13490 }
13491
13492 return fn(context, {
13493 data: data,
13494 blockParams: _utils.blockParams([context], [data && data.contextPath])
13495 });
13496 } else {
13497 return options.inverse(this);
13498 }
13499 });
13500 };
13501
13502 module.exports = exports['default'];
13503
13504/***/ }),
13505/* 18 */
13506/***/ (function(module, exports, __webpack_require__) {
13507
13508 'use strict';
13509
13510 var _interopRequireDefault = __webpack_require__(1)['default'];
13511
13512 exports.__esModule = true;
13513 exports.registerDefaultDecorators = registerDefaultDecorators;
13514
13515 var _decoratorsInline = __webpack_require__(19);
13516
13517 var _decoratorsInline2 = _interopRequireDefault(_decoratorsInline);
13518
13519 function registerDefaultDecorators(instance) {
13520 _decoratorsInline2['default'](instance);
13521 }
13522
13523/***/ }),
13524/* 19 */
13525/***/ (function(module, exports, __webpack_require__) {
13526
13527 'use strict';
13528
13529 exports.__esModule = true;
13530
13531 var _utils = __webpack_require__(5);
13532
13533 exports['default'] = function (instance) {
13534 instance.registerDecorator('inline', function (fn, props, container, options) {
13535 var ret = fn;
13536 if (!props.partials) {
13537 props.partials = {};
13538 ret = function (context, options) {
13539 // Create a new partials stack frame prior to exec.
13540 var original = container.partials;
13541 container.partials = _utils.extend({}, original, props.partials);
13542 var ret = fn(context, options);
13543 container.partials = original;
13544 return ret;
13545 };
13546 }
13547
13548 props.partials[options.args[0]] = options.fn;
13549
13550 return ret;
13551 });
13552 };
13553
13554 module.exports = exports['default'];
13555
13556/***/ }),
13557/* 20 */
13558/***/ (function(module, exports, __webpack_require__) {
13559
13560 'use strict';
13561
13562 exports.__esModule = true;
13563
13564 var _utils = __webpack_require__(5);
13565
13566 var logger = {
13567 methodMap: ['debug', 'info', 'warn', 'error'],
13568 level: 'info',
13569
13570 // Maps a given level value to the `methodMap` indexes above.
13571 lookupLevel: function lookupLevel(level) {
13572 if (typeof level === 'string') {
13573 var levelMap = _utils.indexOf(logger.methodMap, level.toLowerCase());
13574 if (levelMap >= 0) {
13575 level = levelMap;
13576 } else {
13577 level = parseInt(level, 10);
13578 }
13579 }
13580
13581 return level;
13582 },
13583
13584 // Can be overridden in the host environment
13585 log: function log(level) {
13586 level = logger.lookupLevel(level);
13587
13588 if (typeof console !== 'undefined' && logger.lookupLevel(logger.level) <= level) {
13589 var method = logger.methodMap[level];
13590 if (!console[method]) {
13591 // eslint-disable-line no-console
13592 method = 'log';
13593 }
13594
13595 for (var _len = arguments.length, message = Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {
13596 message[_key - 1] = arguments[_key];
13597 }
13598
13599 console[method].apply(console, message); // eslint-disable-line no-console
13600 }
13601 }
13602 };
13603
13604 exports['default'] = logger;
13605 module.exports = exports['default'];
13606
13607/***/ }),
13608/* 21 */
13609/***/ (function(module, exports) {
13610
13611 // Build out our basic SafeString type
13612 'use strict';
13613
13614 exports.__esModule = true;
13615 function SafeString(string) {
13616 this.string = string;
13617 }
13618
13619 SafeString.prototype.toString = SafeString.prototype.toHTML = function () {
13620 return '' + this.string;
13621 };
13622
13623 exports['default'] = SafeString;
13624 module.exports = exports['default'];
13625
13626/***/ }),
13627/* 22 */
13628/***/ (function(module, exports, __webpack_require__) {
13629
13630 'use strict';
13631
13632 var _Object$seal = __webpack_require__(23)['default'];
13633
13634 var _interopRequireWildcard = __webpack_require__(3)['default'];
13635
13636 var _interopRequireDefault = __webpack_require__(1)['default'];
13637
13638 exports.__esModule = true;
13639 exports.checkRevision = checkRevision;
13640 exports.template = template;
13641 exports.wrapProgram = wrapProgram;
13642 exports.resolvePartial = resolvePartial;
13643 exports.invokePartial = invokePartial;
13644 exports.noop = noop;
13645
13646 var _utils = __webpack_require__(5);
13647
13648 var Utils = _interopRequireWildcard(_utils);
13649
13650 var _exception = __webpack_require__(6);
13651
13652 var _exception2 = _interopRequireDefault(_exception);
13653
13654 var _base = __webpack_require__(4);
13655
13656 function checkRevision(compilerInfo) {
13657 var compilerRevision = compilerInfo && compilerInfo[0] || 1,
13658 currentRevision = _base.COMPILER_REVISION;
13659
13660 if (compilerRevision !== currentRevision) {
13661 if (compilerRevision < currentRevision) {
13662 var runtimeVersions = _base.REVISION_CHANGES[currentRevision],
13663 compilerVersions = _base.REVISION_CHANGES[compilerRevision];
13664 throw new _exception2['default']('Template was precompiled with an older version of Handlebars than the current runtime. ' + 'Please update your precompiler to a newer version (' + runtimeVersions + ') or downgrade your runtime to an older version (' + compilerVersions + ').');
13665 } else {
13666 // Use the embedded version info since the runtime doesn't know about this revision yet
13667 throw new _exception2['default']('Template was precompiled with a newer version of Handlebars than the current runtime. ' + 'Please update your runtime to a newer version (' + compilerInfo[1] + ').');
13668 }
13669 }
13670 }
13671
13672 function template(templateSpec, env) {
13673 /* istanbul ignore next */
13674 if (!env) {
13675 throw new _exception2['default']('No environment passed to template');
13676 }
13677 if (!templateSpec || !templateSpec.main) {
13678 throw new _exception2['default']('Unknown template object: ' + typeof templateSpec);
13679 }
13680
13681 templateSpec.main.decorator = templateSpec.main_d;
13682
13683 // Note: Using env.VM references rather than local var references throughout this section to allow
13684 // for external users to override these as psuedo-supported APIs.
13685 env.VM.checkRevision(templateSpec.compiler);
13686
13687 function invokePartialWrapper(partial, context, options) {
13688 if (options.hash) {
13689 context = Utils.extend({}, context, options.hash);
13690 if (options.ids) {
13691 options.ids[0] = true;
13692 }
13693 }
13694
13695 partial = env.VM.resolvePartial.call(this, partial, context, options);
13696 var result = env.VM.invokePartial.call(this, partial, context, options);
13697
13698 if (result == null && env.compile) {
13699 options.partials[options.name] = env.compile(partial, templateSpec.compilerOptions, env);
13700 result = options.partials[options.name](context, options);
13701 }
13702 if (result != null) {
13703 if (options.indent) {
13704 var lines = result.split('\n');
13705 for (var i = 0, l = lines.length; i < l; i++) {
13706 if (!lines[i] && i + 1 === l) {
13707 break;
13708 }
13709
13710 lines[i] = options.indent + lines[i];
13711 }
13712 result = lines.join('\n');
13713 }
13714 return result;
13715 } else {
13716 throw new _exception2['default']('The partial ' + options.name + ' could not be compiled when running in runtime-only mode');
13717 }
13718 }
13719
13720 // Just add water
13721 var container = {
13722 strict: function strict(obj, name) {
13723 if (!(name in obj)) {
13724 throw new _exception2['default']('"' + name + '" not defined in ' + obj);
13725 }
13726 return obj[name];
13727 },
13728 lookup: function lookup(depths, name) {
13729 var len = depths.length;
13730 for (var i = 0; i < len; i++) {
13731 if (depths[i] && depths[i][name] != null) {
13732 return depths[i][name];
13733 }
13734 }
13735 },
13736 lambda: function lambda(current, context) {
13737 return typeof current === 'function' ? current.call(context) : current;
13738 },
13739
13740 escapeExpression: Utils.escapeExpression,
13741 invokePartial: invokePartialWrapper,
13742
13743 fn: function fn(i) {
13744 var ret = templateSpec[i];
13745 ret.decorator = templateSpec[i + '_d'];
13746 return ret;
13747 },
13748
13749 programs: [],
13750 program: function program(i, data, declaredBlockParams, blockParams, depths) {
13751 var programWrapper = this.programs[i],
13752 fn = this.fn(i);
13753 if (data || depths || blockParams || declaredBlockParams) {
13754 programWrapper = wrapProgram(this, i, fn, data, declaredBlockParams, blockParams, depths);
13755 } else if (!programWrapper) {
13756 programWrapper = this.programs[i] = wrapProgram(this, i, fn);
13757 }
13758 return programWrapper;
13759 },
13760
13761 data: function data(value, depth) {
13762 while (value && depth--) {
13763 value = value._parent;
13764 }
13765 return value;
13766 },
13767 merge: function merge(param, common) {
13768 var obj = param || common;
13769
13770 if (param && common && param !== common) {
13771 obj = Utils.extend({}, common, param);
13772 }
13773
13774 return obj;
13775 },
13776 // An empty object to use as replacement for null-contexts
13777 nullContext: _Object$seal({}),
13778
13779 noop: env.VM.noop,
13780 compilerInfo: templateSpec.compiler
13781 };
13782
13783 function ret(context) {
13784 var options = arguments.length <= 1 || arguments[1] === undefined ? {} : arguments[1];
13785
13786 var data = options.data;
13787
13788 ret._setup(options);
13789 if (!options.partial && templateSpec.useData) {
13790 data = initData(context, data);
13791 }
13792 var depths = undefined,
13793 blockParams = templateSpec.useBlockParams ? [] : undefined;
13794 if (templateSpec.useDepths) {
13795 if (options.depths) {
13796 depths = context != options.depths[0] ? [context].concat(options.depths) : options.depths;
13797 } else {
13798 depths = [context];
13799 }
13800 }
13801
13802 function main(context /*, options*/) {
13803 return '' + templateSpec.main(container, context, container.helpers, container.partials, data, blockParams, depths);
13804 }
13805 main = executeDecorators(templateSpec.main, main, container, options.depths || [], data, blockParams);
13806 return main(context, options);
13807 }
13808 ret.isTop = true;
13809
13810 ret._setup = function (options) {
13811 if (!options.partial) {
13812 container.helpers = container.merge(options.helpers, env.helpers);
13813
13814 if (templateSpec.usePartial) {
13815 container.partials = container.merge(options.partials, env.partials);
13816 }
13817 if (templateSpec.usePartial || templateSpec.useDecorators) {
13818 container.decorators = container.merge(options.decorators, env.decorators);
13819 }
13820 } else {
13821 container.helpers = options.helpers;
13822 container.partials = options.partials;
13823 container.decorators = options.decorators;
13824 }
13825 };
13826
13827 ret._child = function (i, data, blockParams, depths) {
13828 if (templateSpec.useBlockParams && !blockParams) {
13829 throw new _exception2['default']('must pass block params');
13830 }
13831 if (templateSpec.useDepths && !depths) {
13832 throw new _exception2['default']('must pass parent depths');
13833 }
13834
13835 return wrapProgram(container, i, templateSpec[i], data, 0, blockParams, depths);
13836 };
13837 return ret;
13838 }
13839
13840 function wrapProgram(container, i, fn, data, declaredBlockParams, blockParams, depths) {
13841 function prog(context) {
13842 var options = arguments.length <= 1 || arguments[1] === undefined ? {} : arguments[1];
13843
13844 var currentDepths = depths;
13845 if (depths && context != depths[0] && !(context === container.nullContext && depths[0] === null)) {
13846 currentDepths = [context].concat(depths);
13847 }
13848
13849 return fn(container, context, container.helpers, container.partials, options.data || data, blockParams && [options.blockParams].concat(blockParams), currentDepths);
13850 }
13851
13852 prog = executeDecorators(fn, prog, container, depths, data, blockParams);
13853
13854 prog.program = i;
13855 prog.depth = depths ? depths.length : 0;
13856 prog.blockParams = declaredBlockParams || 0;
13857 return prog;
13858 }
13859
13860 function resolvePartial(partial, context, options) {
13861 if (!partial) {
13862 if (options.name === '@partial-block') {
13863 partial = options.data['partial-block'];
13864 } else {
13865 partial = options.partials[options.name];
13866 }
13867 } else if (!partial.call && !options.name) {
13868 // This is a dynamic partial that returned a string
13869 options.name = partial;
13870 partial = options.partials[partial];
13871 }
13872 return partial;
13873 }
13874
13875 function invokePartial(partial, context, options) {
13876 // Use the current closure context to save the partial-block if this partial
13877 var currentPartialBlock = options.data && options.data['partial-block'];
13878 options.partial = true;
13879 if (options.ids) {
13880 options.data.contextPath = options.ids[0] || options.data.contextPath;
13881 }
13882
13883 var partialBlock = undefined;
13884 if (options.fn && options.fn !== noop) {
13885 (function () {
13886 options.data = _base.createFrame(options.data);
13887 // Wrapper function to get access to currentPartialBlock from the closure
13888 var fn = options.fn;
13889 partialBlock = options.data['partial-block'] = function partialBlockWrapper(context) {
13890 var options = arguments.length <= 1 || arguments[1] === undefined ? {} : arguments[1];
13891
13892 // Restore the partial-block from the closure for the execution of the block
13893 // i.e. the part inside the block of the partial call.
13894 options.data = _base.createFrame(options.data);
13895 options.data['partial-block'] = currentPartialBlock;
13896 return fn(context, options);
13897 };
13898 if (fn.partials) {
13899 options.partials = Utils.extend({}, options.partials, fn.partials);
13900 }
13901 })();
13902 }
13903
13904 if (partial === undefined && partialBlock) {
13905 partial = partialBlock;
13906 }
13907
13908 if (partial === undefined) {
13909 throw new _exception2['default']('The partial ' + options.name + ' could not be found');
13910 } else if (partial instanceof Function) {
13911 return partial(context, options);
13912 }
13913 }
13914
13915 function noop() {
13916 return '';
13917 }
13918
13919 function initData(context, data) {
13920 if (!data || !('root' in data)) {
13921 data = data ? _base.createFrame(data) : {};
13922 data.root = context;
13923 }
13924 return data;
13925 }
13926
13927 function executeDecorators(fn, prog, container, depths, data, blockParams) {
13928 if (fn.decorator) {
13929 var props = {};
13930 prog = fn.decorator(prog, props, container, depths && depths[0], data, blockParams, depths);
13931 Utils.extend(prog, props);
13932 }
13933 return prog;
13934 }
13935
13936/***/ }),
13937/* 23 */
13938/***/ (function(module, exports, __webpack_require__) {
13939
13940 module.exports = { "default": __webpack_require__(24), __esModule: true };
13941
13942/***/ }),
13943/* 24 */
13944/***/ (function(module, exports, __webpack_require__) {
13945
13946 __webpack_require__(25);
13947 module.exports = __webpack_require__(30).Object.seal;
13948
13949/***/ }),
13950/* 25 */
13951/***/ (function(module, exports, __webpack_require__) {
13952
13953 // 19.1.2.17 Object.seal(O)
13954 var isObject = __webpack_require__(26);
13955
13956 __webpack_require__(27)('seal', function($seal){
13957 return function seal(it){
13958 return $seal && isObject(it) ? $seal(it) : it;
13959 };
13960 });
13961
13962/***/ }),
13963/* 26 */
13964/***/ (function(module, exports) {
13965
13966 module.exports = function(it){
13967 return typeof it === 'object' ? it !== null : typeof it === 'function';
13968 };
13969
13970/***/ }),
13971/* 27 */
13972/***/ (function(module, exports, __webpack_require__) {
13973
13974 // most Object methods by ES6 should accept primitives
13975 var $export = __webpack_require__(28)
13976 , core = __webpack_require__(30)
13977 , fails = __webpack_require__(33);
13978 module.exports = function(KEY, exec){
13979 var fn = (core.Object || {})[KEY] || Object[KEY]
13980 , exp = {};
13981 exp[KEY] = exec(fn);
13982 $export($export.S + $export.F * fails(function(){ fn(1); }), 'Object', exp);
13983 };
13984
13985/***/ }),
13986/* 28 */
13987/***/ (function(module, exports, __webpack_require__) {
13988
13989 var global = __webpack_require__(29)
13990 , core = __webpack_require__(30)
13991 , ctx = __webpack_require__(31)
13992 , PROTOTYPE = 'prototype';
13993
13994 var $export = function(type, name, source){
13995 var IS_FORCED = type & $export.F
13996 , IS_GLOBAL = type & $export.G
13997 , IS_STATIC = type & $export.S
13998 , IS_PROTO = type & $export.P
13999 , IS_BIND = type & $export.B
14000 , IS_WRAP = type & $export.W
14001 , exports = IS_GLOBAL ? core : core[name] || (core[name] = {})
14002 , target = IS_GLOBAL ? global : IS_STATIC ? global[name] : (global[name] || {})[PROTOTYPE]
14003 , key, own, out;
14004 if(IS_GLOBAL)source = name;
14005 for(key in source){
14006 // contains in native
14007 own = !IS_FORCED && target && key in target;
14008 if(own && key in exports)continue;
14009 // export native or passed
14010 out = own ? target[key] : source[key];
14011 // prevent global pollution for namespaces
14012 exports[key] = IS_GLOBAL && typeof target[key] != 'function' ? source[key]
14013 // bind timers to global for call from export context
14014 : IS_BIND && own ? ctx(out, global)
14015 // wrap global constructors for prevent change them in library
14016 : IS_WRAP && target[key] == out ? (function(C){
14017 var F = function(param){
14018 return this instanceof C ? new C(param) : C(param);
14019 };
14020 F[PROTOTYPE] = C[PROTOTYPE];
14021 return F;
14022 // make static versions for prototype methods
14023 })(out) : IS_PROTO && typeof out == 'function' ? ctx(Function.call, out) : out;
14024 if(IS_PROTO)(exports[PROTOTYPE] || (exports[PROTOTYPE] = {}))[key] = out;
14025 }
14026 };
14027 // type bitmap
14028 $export.F = 1; // forced
14029 $export.G = 2; // global
14030 $export.S = 4; // static
14031 $export.P = 8; // proto
14032 $export.B = 16; // bind
14033 $export.W = 32; // wrap
14034 module.exports = $export;
14035
14036/***/ }),
14037/* 29 */
14038/***/ (function(module, exports) {
14039
14040 // https://github.com/zloirock/core-js/issues/86#issuecomment-115759028
14041 var global = module.exports = typeof window != 'undefined' && window.Math == Math
14042 ? window : typeof self != 'undefined' && self.Math == Math ? self : Function('return this')();
14043 if(typeof __g == 'number')__g = global; // eslint-disable-line no-undef
14044
14045/***/ }),
14046/* 30 */
14047/***/ (function(module, exports) {
14048
14049 var core = module.exports = {version: '1.2.6'};
14050 if(typeof __e == 'number')__e = core; // eslint-disable-line no-undef
14051
14052/***/ }),
14053/* 31 */
14054/***/ (function(module, exports, __webpack_require__) {
14055
14056 // optional / simple context binding
14057 var aFunction = __webpack_require__(32);
14058 module.exports = function(fn, that, length){
14059 aFunction(fn);
14060 if(that === undefined)return fn;
14061 switch(length){
14062 case 1: return function(a){
14063 return fn.call(that, a);
14064 };
14065 case 2: return function(a, b){
14066 return fn.call(that, a, b);
14067 };
14068 case 3: return function(a, b, c){
14069 return fn.call(that, a, b, c);
14070 };
14071 }
14072 return function(/* ...args */){
14073 return fn.apply(that, arguments);
14074 };
14075 };
14076
14077/***/ }),
14078/* 32 */
14079/***/ (function(module, exports) {
14080
14081 module.exports = function(it){
14082 if(typeof it != 'function')throw TypeError(it + ' is not a function!');
14083 return it;
14084 };
14085
14086/***/ }),
14087/* 33 */
14088/***/ (function(module, exports) {
14089
14090 module.exports = function(exec){
14091 try {
14092 return !!exec();
14093 } catch(e){
14094 return true;
14095 }
14096 };
14097
14098/***/ }),
14099/* 34 */
14100/***/ (function(module, exports) {
14101
14102 /* WEBPACK VAR INJECTION */(function(global) {/* global window */
14103 'use strict';
14104
14105 exports.__esModule = true;
14106
14107 exports['default'] = function (Handlebars) {
14108 /* istanbul ignore next */
14109 var root = typeof global !== 'undefined' ? global : window,
14110 $Handlebars = root.Handlebars;
14111 /* istanbul ignore next */
14112 Handlebars.noConflict = function () {
14113 if (root.Handlebars === Handlebars) {
14114 root.Handlebars = $Handlebars;
14115 }
14116 return Handlebars;
14117 };
14118 };
14119
14120 module.exports = exports['default'];
14121 /* WEBPACK VAR INJECTION */}.call(exports, (function() { return this; }())))
14122
14123/***/ }),
14124/* 35 */
14125/***/ (function(module, exports) {
14126
14127 'use strict';
14128
14129 exports.__esModule = true;
14130 var AST = {
14131 // Public API used to evaluate derived attributes regarding AST nodes
14132 helpers: {
14133 // a mustache is definitely a helper if:
14134 // * it is an eligible helper, and
14135 // * it has at least one parameter or hash segment
14136 helperExpression: function helperExpression(node) {
14137 return node.type === 'SubExpression' || (node.type === 'MustacheStatement' || node.type === 'BlockStatement') && !!(node.params && node.params.length || node.hash);
14138 },
14139
14140 scopedId: function scopedId(path) {
14141 return (/^\.|this\b/.test(path.original)
14142 );
14143 },
14144
14145 // an ID is simple if it only has one part, and that part is not
14146 // `..` or `this`.
14147 simpleId: function simpleId(path) {
14148 return path.parts.length === 1 && !AST.helpers.scopedId(path) && !path.depth;
14149 }
14150 }
14151 };
14152
14153 // Must be exported as an object rather than the root of the module as the jison lexer
14154 // must modify the object to operate properly.
14155 exports['default'] = AST;
14156 module.exports = exports['default'];
14157
14158/***/ }),
14159/* 36 */
14160/***/ (function(module, exports, __webpack_require__) {
14161
14162 'use strict';
14163
14164 var _interopRequireDefault = __webpack_require__(1)['default'];
14165
14166 var _interopRequireWildcard = __webpack_require__(3)['default'];
14167
14168 exports.__esModule = true;
14169 exports.parse = parse;
14170
14171 var _parser = __webpack_require__(37);
14172
14173 var _parser2 = _interopRequireDefault(_parser);
14174
14175 var _whitespaceControl = __webpack_require__(38);
14176
14177 var _whitespaceControl2 = _interopRequireDefault(_whitespaceControl);
14178
14179 var _helpers = __webpack_require__(40);
14180
14181 var Helpers = _interopRequireWildcard(_helpers);
14182
14183 var _utils = __webpack_require__(5);
14184
14185 exports.parser = _parser2['default'];
14186
14187 var yy = {};
14188 _utils.extend(yy, Helpers);
14189
14190 function parse(input, options) {
14191 // Just return if an already-compiled AST was passed in.
14192 if (input.type === 'Program') {
14193 return input;
14194 }
14195
14196 _parser2['default'].yy = yy;
14197
14198 // Altering the shared object here, but this is ok as parser is a sync operation
14199 yy.locInfo = function (locInfo) {
14200 return new yy.SourceLocation(options && options.srcName, locInfo);
14201 };
14202
14203 var strip = new _whitespaceControl2['default'](options);
14204 return strip.accept(_parser2['default'].parse(input));
14205 }
14206
14207/***/ }),
14208/* 37 */
14209/***/ (function(module, exports) {
14210
14211 // File ignored in coverage tests via setting in .istanbul.yml
14212 /* Jison generated parser */
14213 "use strict";
14214
14215 exports.__esModule = true;
14216 var handlebars = (function () {
14217 var parser = { trace: function trace() {},
14218 yy: {},
14219 symbols_: { "error": 2, "root": 3, "program": 4, "EOF": 5, "program_repetition0": 6, "statement": 7, "mustache": 8, "block": 9, "rawBlock": 10, "partial": 11, "partialBlock": 12, "content": 13, "COMMENT": 14, "CONTENT": 15, "openRawBlock": 16, "rawBlock_repetition_plus0": 17, "END_RAW_BLOCK": 18, "OPEN_RAW_BLOCK": 19, "helperName": 20, "openRawBlock_repetition0": 21, "openRawBlock_option0": 22, "CLOSE_RAW_BLOCK": 23, "openBlock": 24, "block_option0": 25, "closeBlock": 26, "openInverse": 27, "block_option1": 28, "OPEN_BLOCK": 29, "openBlock_repetition0": 30, "openBlock_option0": 31, "openBlock_option1": 32, "CLOSE": 33, "OPEN_INVERSE": 34, "openInverse_repetition0": 35, "openInverse_option0": 36, "openInverse_option1": 37, "openInverseChain": 38, "OPEN_INVERSE_CHAIN": 39, "openInverseChain_repetition0": 40, "openInverseChain_option0": 41, "openInverseChain_option1": 42, "inverseAndProgram": 43, "INVERSE": 44, "inverseChain": 45, "inverseChain_option0": 46, "OPEN_ENDBLOCK": 47, "OPEN": 48, "mustache_repetition0": 49, "mustache_option0": 50, "OPEN_UNESCAPED": 51, "mustache_repetition1": 52, "mustache_option1": 53, "CLOSE_UNESCAPED": 54, "OPEN_PARTIAL": 55, "partialName": 56, "partial_repetition0": 57, "partial_option0": 58, "openPartialBlock": 59, "OPEN_PARTIAL_BLOCK": 60, "openPartialBlock_repetition0": 61, "openPartialBlock_option0": 62, "param": 63, "sexpr": 64, "OPEN_SEXPR": 65, "sexpr_repetition0": 66, "sexpr_option0": 67, "CLOSE_SEXPR": 68, "hash": 69, "hash_repetition_plus0": 70, "hashSegment": 71, "ID": 72, "EQUALS": 73, "blockParams": 74, "OPEN_BLOCK_PARAMS": 75, "blockParams_repetition_plus0": 76, "CLOSE_BLOCK_PARAMS": 77, "path": 78, "dataName": 79, "STRING": 80, "NUMBER": 81, "BOOLEAN": 82, "UNDEFINED": 83, "NULL": 84, "DATA": 85, "pathSegments": 86, "SEP": 87, "$accept": 0, "$end": 1 },
14220 terminals_: { 2: "error", 5: "EOF", 14: "COMMENT", 15: "CONTENT", 18: "END_RAW_BLOCK", 19: "OPEN_RAW_BLOCK", 23: "CLOSE_RAW_BLOCK", 29: "OPEN_BLOCK", 33: "CLOSE", 34: "OPEN_INVERSE", 39: "OPEN_INVERSE_CHAIN", 44: "INVERSE", 47: "OPEN_ENDBLOCK", 48: "OPEN", 51: "OPEN_UNESCAPED", 54: "CLOSE_UNESCAPED", 55: "OPEN_PARTIAL", 60: "OPEN_PARTIAL_BLOCK", 65: "OPEN_SEXPR", 68: "CLOSE_SEXPR", 72: "ID", 73: "EQUALS", 75: "OPEN_BLOCK_PARAMS", 77: "CLOSE_BLOCK_PARAMS", 80: "STRING", 81: "NUMBER", 82: "BOOLEAN", 83: "UNDEFINED", 84: "NULL", 85: "DATA", 87: "SEP" },
14221 productions_: [0, [3, 2], [4, 1], [7, 1], [7, 1], [7, 1], [7, 1], [7, 1], [7, 1], [7, 1], [13, 1], [10, 3], [16, 5], [9, 4], [9, 4], [24, 6], [27, 6], [38, 6], [43, 2], [45, 3], [45, 1], [26, 3], [8, 5], [8, 5], [11, 5], [12, 3], [59, 5], [63, 1], [63, 1], [64, 5], [69, 1], [71, 3], [74, 3], [20, 1], [20, 1], [20, 1], [20, 1], [20, 1], [20, 1], [20, 1], [56, 1], [56, 1], [79, 2], [78, 1], [86, 3], [86, 1], [6, 0], [6, 2], [17, 1], [17, 2], [21, 0], [21, 2], [22, 0], [22, 1], [25, 0], [25, 1], [28, 0], [28, 1], [30, 0], [30, 2], [31, 0], [31, 1], [32, 0], [32, 1], [35, 0], [35, 2], [36, 0], [36, 1], [37, 0], [37, 1], [40, 0], [40, 2], [41, 0], [41, 1], [42, 0], [42, 1], [46, 0], [46, 1], [49, 0], [49, 2], [50, 0], [50, 1], [52, 0], [52, 2], [53, 0], [53, 1], [57, 0], [57, 2], [58, 0], [58, 1], [61, 0], [61, 2], [62, 0], [62, 1], [66, 0], [66, 2], [67, 0], [67, 1], [70, 1], [70, 2], [76, 1], [76, 2]],
14222 performAction: function anonymous(yytext, yyleng, yylineno, yy, yystate, $$, _$
14223 /*``*/) {
14224
14225 var $0 = $$.length - 1;
14226 switch (yystate) {
14227 case 1:
14228 return $$[$0 - 1];
14229 break;
14230 case 2:
14231 this.$ = yy.prepareProgram($$[$0]);
14232 break;
14233 case 3:
14234 this.$ = $$[$0];
14235 break;
14236 case 4:
14237 this.$ = $$[$0];
14238 break;
14239 case 5:
14240 this.$ = $$[$0];
14241 break;
14242 case 6:
14243 this.$ = $$[$0];
14244 break;
14245 case 7:
14246 this.$ = $$[$0];
14247 break;
14248 case 8:
14249 this.$ = $$[$0];
14250 break;
14251 case 9:
14252 this.$ = {
14253 type: 'CommentStatement',
14254 value: yy.stripComment($$[$0]),
14255 strip: yy.stripFlags($$[$0], $$[$0]),
14256 loc: yy.locInfo(this._$)
14257 };
14258
14259 break;
14260 case 10:
14261 this.$ = {
14262 type: 'ContentStatement',
14263 original: $$[$0],
14264 value: $$[$0],
14265 loc: yy.locInfo(this._$)
14266 };
14267
14268 break;
14269 case 11:
14270 this.$ = yy.prepareRawBlock($$[$0 - 2], $$[$0 - 1], $$[$0], this._$);
14271 break;
14272 case 12:
14273 this.$ = { path: $$[$0 - 3], params: $$[$0 - 2], hash: $$[$0 - 1] };
14274 break;
14275 case 13:
14276 this.$ = yy.prepareBlock($$[$0 - 3], $$[$0 - 2], $$[$0 - 1], $$[$0], false, this._$);
14277 break;
14278 case 14:
14279 this.$ = yy.prepareBlock($$[$0 - 3], $$[$0 - 2], $$[$0 - 1], $$[$0], true, this._$);
14280 break;
14281 case 15:
14282 this.$ = { open: $$[$0 - 5], path: $$[$0 - 4], params: $$[$0 - 3], hash: $$[$0 - 2], blockParams: $$[$0 - 1], strip: yy.stripFlags($$[$0 - 5], $$[$0]) };
14283 break;
14284 case 16:
14285 this.$ = { path: $$[$0 - 4], params: $$[$0 - 3], hash: $$[$0 - 2], blockParams: $$[$0 - 1], strip: yy.stripFlags($$[$0 - 5], $$[$0]) };
14286 break;
14287 case 17:
14288 this.$ = { path: $$[$0 - 4], params: $$[$0 - 3], hash: $$[$0 - 2], blockParams: $$[$0 - 1], strip: yy.stripFlags($$[$0 - 5], $$[$0]) };
14289 break;
14290 case 18:
14291 this.$ = { strip: yy.stripFlags($$[$0 - 1], $$[$0 - 1]), program: $$[$0] };
14292 break;
14293 case 19:
14294 var inverse = yy.prepareBlock($$[$0 - 2], $$[$0 - 1], $$[$0], $$[$0], false, this._$),
14295 program = yy.prepareProgram([inverse], $$[$0 - 1].loc);
14296 program.chained = true;
14297
14298 this.$ = { strip: $$[$0 - 2].strip, program: program, chain: true };
14299
14300 break;
14301 case 20:
14302 this.$ = $$[$0];
14303 break;
14304 case 21:
14305 this.$ = { path: $$[$0 - 1], strip: yy.stripFlags($$[$0 - 2], $$[$0]) };
14306 break;
14307 case 22:
14308 this.$ = yy.prepareMustache($$[$0 - 3], $$[$0 - 2], $$[$0 - 1], $$[$0 - 4], yy.stripFlags($$[$0 - 4], $$[$0]), this._$);
14309 break;
14310 case 23:
14311 this.$ = yy.prepareMustache($$[$0 - 3], $$[$0 - 2], $$[$0 - 1], $$[$0 - 4], yy.stripFlags($$[$0 - 4], $$[$0]), this._$);
14312 break;
14313 case 24:
14314 this.$ = {
14315 type: 'PartialStatement',
14316 name: $$[$0 - 3],
14317 params: $$[$0 - 2],
14318 hash: $$[$0 - 1],
14319 indent: '',
14320 strip: yy.stripFlags($$[$0 - 4], $$[$0]),
14321 loc: yy.locInfo(this._$)
14322 };
14323
14324 break;
14325 case 25:
14326 this.$ = yy.preparePartialBlock($$[$0 - 2], $$[$0 - 1], $$[$0], this._$);
14327 break;
14328 case 26:
14329 this.$ = { path: $$[$0 - 3], params: $$[$0 - 2], hash: $$[$0 - 1], strip: yy.stripFlags($$[$0 - 4], $$[$0]) };
14330 break;
14331 case 27:
14332 this.$ = $$[$0];
14333 break;
14334 case 28:
14335 this.$ = $$[$0];
14336 break;
14337 case 29:
14338 this.$ = {
14339 type: 'SubExpression',
14340 path: $$[$0 - 3],
14341 params: $$[$0 - 2],
14342 hash: $$[$0 - 1],
14343 loc: yy.locInfo(this._$)
14344 };
14345
14346 break;
14347 case 30:
14348 this.$ = { type: 'Hash', pairs: $$[$0], loc: yy.locInfo(this._$) };
14349 break;
14350 case 31:
14351 this.$ = { type: 'HashPair', key: yy.id($$[$0 - 2]), value: $$[$0], loc: yy.locInfo(this._$) };
14352 break;
14353 case 32:
14354 this.$ = yy.id($$[$0 - 1]);
14355 break;
14356 case 33:
14357 this.$ = $$[$0];
14358 break;
14359 case 34:
14360 this.$ = $$[$0];
14361 break;
14362 case 35:
14363 this.$ = { type: 'StringLiteral', value: $$[$0], original: $$[$0], loc: yy.locInfo(this._$) };
14364 break;
14365 case 36:
14366 this.$ = { type: 'NumberLiteral', value: Number($$[$0]), original: Number($$[$0]), loc: yy.locInfo(this._$) };
14367 break;
14368 case 37:
14369 this.$ = { type: 'BooleanLiteral', value: $$[$0] === 'true', original: $$[$0] === 'true', loc: yy.locInfo(this._$) };
14370 break;
14371 case 38:
14372 this.$ = { type: 'UndefinedLiteral', original: undefined, value: undefined, loc: yy.locInfo(this._$) };
14373 break;
14374 case 39:
14375 this.$ = { type: 'NullLiteral', original: null, value: null, loc: yy.locInfo(this._$) };
14376 break;
14377 case 40:
14378 this.$ = $$[$0];
14379 break;
14380 case 41:
14381 this.$ = $$[$0];
14382 break;
14383 case 42:
14384 this.$ = yy.preparePath(true, $$[$0], this._$);
14385 break;
14386 case 43:
14387 this.$ = yy.preparePath(false, $$[$0], this._$);
14388 break;
14389 case 44:
14390 $$[$0 - 2].push({ part: yy.id($$[$0]), original: $$[$0], separator: $$[$0 - 1] });this.$ = $$[$0 - 2];
14391 break;
14392 case 45:
14393 this.$ = [{ part: yy.id($$[$0]), original: $$[$0] }];
14394 break;
14395 case 46:
14396 this.$ = [];
14397 break;
14398 case 47:
14399 $$[$0 - 1].push($$[$0]);
14400 break;
14401 case 48:
14402 this.$ = [$$[$0]];
14403 break;
14404 case 49:
14405 $$[$0 - 1].push($$[$0]);
14406 break;
14407 case 50:
14408 this.$ = [];
14409 break;
14410 case 51:
14411 $$[$0 - 1].push($$[$0]);
14412 break;
14413 case 58:
14414 this.$ = [];
14415 break;
14416 case 59:
14417 $$[$0 - 1].push($$[$0]);
14418 break;
14419 case 64:
14420 this.$ = [];
14421 break;
14422 case 65:
14423 $$[$0 - 1].push($$[$0]);
14424 break;
14425 case 70:
14426 this.$ = [];
14427 break;
14428 case 71:
14429 $$[$0 - 1].push($$[$0]);
14430 break;
14431 case 78:
14432 this.$ = [];
14433 break;
14434 case 79:
14435 $$[$0 - 1].push($$[$0]);
14436 break;
14437 case 82:
14438 this.$ = [];
14439 break;
14440 case 83:
14441 $$[$0 - 1].push($$[$0]);
14442 break;
14443 case 86:
14444 this.$ = [];
14445 break;
14446 case 87:
14447 $$[$0 - 1].push($$[$0]);
14448 break;
14449 case 90:
14450 this.$ = [];
14451 break;
14452 case 91:
14453 $$[$0 - 1].push($$[$0]);
14454 break;
14455 case 94:
14456 this.$ = [];
14457 break;
14458 case 95:
14459 $$[$0 - 1].push($$[$0]);
14460 break;
14461 case 98:
14462 this.$ = [$$[$0]];
14463 break;
14464 case 99:
14465 $$[$0 - 1].push($$[$0]);
14466 break;
14467 case 100:
14468 this.$ = [$$[$0]];
14469 break;
14470 case 101:
14471 $$[$0 - 1].push($$[$0]);
14472 break;
14473 }
14474 },
14475 table: [{ 3: 1, 4: 2, 5: [2, 46], 6: 3, 14: [2, 46], 15: [2, 46], 19: [2, 46], 29: [2, 46], 34: [2, 46], 48: [2, 46], 51: [2, 46], 55: [2, 46], 60: [2, 46] }, { 1: [3] }, { 5: [1, 4] }, { 5: [2, 2], 7: 5, 8: 6, 9: 7, 10: 8, 11: 9, 12: 10, 13: 11, 14: [1, 12], 15: [1, 20], 16: 17, 19: [1, 23], 24: 15, 27: 16, 29: [1, 21], 34: [1, 22], 39: [2, 2], 44: [2, 2], 47: [2, 2], 48: [1, 13], 51: [1, 14], 55: [1, 18], 59: 19, 60: [1, 24] }, { 1: [2, 1] }, { 5: [2, 47], 14: [2, 47], 15: [2, 47], 19: [2, 47], 29: [2, 47], 34: [2, 47], 39: [2, 47], 44: [2, 47], 47: [2, 47], 48: [2, 47], 51: [2, 47], 55: [2, 47], 60: [2, 47] }, { 5: [2, 3], 14: [2, 3], 15: [2, 3], 19: [2, 3], 29: [2, 3], 34: [2, 3], 39: [2, 3], 44: [2, 3], 47: [2, 3], 48: [2, 3], 51: [2, 3], 55: [2, 3], 60: [2, 3] }, { 5: [2, 4], 14: [2, 4], 15: [2, 4], 19: [2, 4], 29: [2, 4], 34: [2, 4], 39: [2, 4], 44: [2, 4], 47: [2, 4], 48: [2, 4], 51: [2, 4], 55: [2, 4], 60: [2, 4] }, { 5: [2, 5], 14: [2, 5], 15: [2, 5], 19: [2, 5], 29: [2, 5], 34: [2, 5], 39: [2, 5], 44: [2, 5], 47: [2, 5], 48: [2, 5], 51: [2, 5], 55: [2, 5], 60: [2, 5] }, { 5: [2, 6], 14: [2, 6], 15: [2, 6], 19: [2, 6], 29: [2, 6], 34: [2, 6], 39: [2, 6], 44: [2, 6], 47: [2, 6], 48: [2, 6], 51: [2, 6], 55: [2, 6], 60: [2, 6] }, { 5: [2, 7], 14: [2, 7], 15: [2, 7], 19: [2, 7], 29: [2, 7], 34: [2, 7], 39: [2, 7], 44: [2, 7], 47: [2, 7], 48: [2, 7], 51: [2, 7], 55: [2, 7], 60: [2, 7] }, { 5: [2, 8], 14: [2, 8], 15: [2, 8], 19: [2, 8], 29: [2, 8], 34: [2, 8], 39: [2, 8], 44: [2, 8], 47: [2, 8], 48: [2, 8], 51: [2, 8], 55: [2, 8], 60: [2, 8] }, { 5: [2, 9], 14: [2, 9], 15: [2, 9], 19: [2, 9], 29: [2, 9], 34: [2, 9], 39: [2, 9], 44: [2, 9], 47: [2, 9], 48: [2, 9], 51: [2, 9], 55: [2, 9], 60: [2, 9] }, { 20: 25, 72: [1, 35], 78: 26, 79: 27, 80: [1, 28], 81: [1, 29], 82: [1, 30], 83: [1, 31], 84: [1, 32], 85: [1, 34], 86: 33 }, { 20: 36, 72: [1, 35], 78: 26, 79: 27, 80: [1, 28], 81: [1, 29], 82: [1, 30], 83: [1, 31], 84: [1, 32], 85: [1, 34], 86: 33 }, { 4: 37, 6: 3, 14: [2, 46], 15: [2, 46], 19: [2, 46], 29: [2, 46], 34: [2, 46], 39: [2, 46], 44: [2, 46], 47: [2, 46], 48: [2, 46], 51: [2, 46], 55: [2, 46], 60: [2, 46] }, { 4: 38, 6: 3, 14: [2, 46], 15: [2, 46], 19: [2, 46], 29: [2, 46], 34: [2, 46], 44: [2, 46], 47: [2, 46], 48: [2, 46], 51: [2, 46], 55: [2, 46], 60: [2, 46] }, { 13: 40, 15: [1, 20], 17: 39 }, { 20: 42, 56: 41, 64: 43, 65: [1, 44], 72: [1, 35], 78: 26, 79: 27, 80: [1, 28], 81: [1, 29], 82: [1, 30], 83: [1, 31], 84: [1, 32], 85: [1, 34], 86: 33 }, { 4: 45, 6: 3, 14: [2, 46], 15: [2, 46], 19: [2, 46], 29: [2, 46], 34: [2, 46], 47: [2, 46], 48: [2, 46], 51: [2, 46], 55: [2, 46], 60: [2, 46] }, { 5: [2, 10], 14: [2, 10], 15: [2, 10], 18: [2, 10], 19: [2, 10], 29: [2, 10], 34: [2, 10], 39: [2, 10], 44: [2, 10], 47: [2, 10], 48: [2, 10], 51: [2, 10], 55: [2, 10], 60: [2, 10] }, { 20: 46, 72: [1, 35], 78: 26, 79: 27, 80: [1, 28], 81: [1, 29], 82: [1, 30], 83: [1, 31], 84: [1, 32], 85: [1, 34], 86: 33 }, { 20: 47, 72: [1, 35], 78: 26, 79: 27, 80: [1, 28], 81: [1, 29], 82: [1, 30], 83: [1, 31], 84: [1, 32], 85: [1, 34], 86: 33 }, { 20: 48, 72: [1, 35], 78: 26, 79: 27, 80: [1, 28], 81: [1, 29], 82: [1, 30], 83: [1, 31], 84: [1, 32], 85: [1, 34], 86: 33 }, { 20: 42, 56: 49, 64: 43, 65: [1, 44], 72: [1, 35], 78: 26, 79: 27, 80: [1, 28], 81: [1, 29], 82: [1, 30], 83: [1, 31], 84: [1, 32], 85: [1, 34], 86: 33 }, { 33: [2, 78], 49: 50, 65: [2, 78], 72: [2, 78], 80: [2, 78], 81: [2, 78], 82: [2, 78], 83: [2, 78], 84: [2, 78], 85: [2, 78] }, { 23: [2, 33], 33: [2, 33], 54: [2, 33], 65: [2, 33], 68: [2, 33], 72: [2, 33], 75: [2, 33], 80: [2, 33], 81: [2, 33], 82: [2, 33], 83: [2, 33], 84: [2, 33], 85: [2, 33] }, { 23: [2, 34], 33: [2, 34], 54: [2, 34], 65: [2, 34], 68: [2, 34], 72: [2, 34], 75: [2, 34], 80: [2, 34], 81: [2, 34], 82: [2, 34], 83: [2, 34], 84: [2, 34], 85: [2, 34] }, { 23: [2, 35], 33: [2, 35], 54: [2, 35], 65: [2, 35], 68: [2, 35], 72: [2, 35], 75: [2, 35], 80: [2, 35], 81: [2, 35], 82: [2, 35], 83: [2, 35], 84: [2, 35], 85: [2, 35] }, { 23: [2, 36], 33: [2, 36], 54: [2, 36], 65: [2, 36], 68: [2, 36], 72: [2, 36], 75: [2, 36], 80: [2, 36], 81: [2, 36], 82: [2, 36], 83: [2, 36], 84: [2, 36], 85: [2, 36] }, { 23: [2, 37], 33: [2, 37], 54: [2, 37], 65: [2, 37], 68: [2, 37], 72: [2, 37], 75: [2, 37], 80: [2, 37], 81: [2, 37], 82: [2, 37], 83: [2, 37], 84: [2, 37], 85: [2, 37] }, { 23: [2, 38], 33: [2, 38], 54: [2, 38], 65: [2, 38], 68: [2, 38], 72: [2, 38], 75: [2, 38], 80: [2, 38], 81: [2, 38], 82: [2, 38], 83: [2, 38], 84: [2, 38], 85: [2, 38] }, { 23: [2, 39], 33: [2, 39], 54: [2, 39], 65: [2, 39], 68: [2, 39], 72: [2, 39], 75: [2, 39], 80: [2, 39], 81: [2, 39], 82: [2, 39], 83: [2, 39], 84: [2, 39], 85: [2, 39] }, { 23: [2, 43], 33: [2, 43], 54: [2, 43], 65: [2, 43], 68: [2, 43], 72: [2, 43], 75: [2, 43], 80: [2, 43], 81: [2, 43], 82: [2, 43], 83: [2, 43], 84: [2, 43], 85: [2, 43], 87: [1, 51] }, { 72: [1, 35], 86: 52 }, { 23: [2, 45], 33: [2, 45], 54: [2, 45], 65: [2, 45], 68: [2, 45], 72: [2, 45], 75: [2, 45], 80: [2, 45], 81: [2, 45], 82: [2, 45], 83: [2, 45], 84: [2, 45], 85: [2, 45], 87: [2, 45] }, { 52: 53, 54: [2, 82], 65: [2, 82], 72: [2, 82], 80: [2, 82], 81: [2, 82], 82: [2, 82], 83: [2, 82], 84: [2, 82], 85: [2, 82] }, { 25: 54, 38: 56, 39: [1, 58], 43: 57, 44: [1, 59], 45: 55, 47: [2, 54] }, { 28: 60, 43: 61, 44: [1, 59], 47: [2, 56] }, { 13: 63, 15: [1, 20], 18: [1, 62] }, { 15: [2, 48], 18: [2, 48] }, { 33: [2, 86], 57: 64, 65: [2, 86], 72: [2, 86], 80: [2, 86], 81: [2, 86], 82: [2, 86], 83: [2, 86], 84: [2, 86], 85: [2, 86] }, { 33: [2, 40], 65: [2, 40], 72: [2, 40], 80: [2, 40], 81: [2, 40], 82: [2, 40], 83: [2, 40], 84: [2, 40], 85: [2, 40] }, { 33: [2, 41], 65: [2, 41], 72: [2, 41], 80: [2, 41], 81: [2, 41], 82: [2, 41], 83: [2, 41], 84: [2, 41], 85: [2, 41] }, { 20: 65, 72: [1, 35], 78: 26, 79: 27, 80: [1, 28], 81: [1, 29], 82: [1, 30], 83: [1, 31], 84: [1, 32], 85: [1, 34], 86: 33 }, { 26: 66, 47: [1, 67] }, { 30: 68, 33: [2, 58], 65: [2, 58], 72: [2, 58], 75: [2, 58], 80: [2, 58], 81: [2, 58], 82: [2, 58], 83: [2, 58], 84: [2, 58], 85: [2, 58] }, { 33: [2, 64], 35: 69, 65: [2, 64], 72: [2, 64], 75: [2, 64], 80: [2, 64], 81: [2, 64], 82: [2, 64], 83: [2, 64], 84: [2, 64], 85: [2, 64] }, { 21: 70, 23: [2, 50], 65: [2, 50], 72: [2, 50], 80: [2, 50], 81: [2, 50], 82: [2, 50], 83: [2, 50], 84: [2, 50], 85: [2, 50] }, { 33: [2, 90], 61: 71, 65: [2, 90], 72: [2, 90], 80: [2, 90], 81: [2, 90], 82: [2, 90], 83: [2, 90], 84: [2, 90], 85: [2, 90] }, { 20: 75, 33: [2, 80], 50: 72, 63: 73, 64: 76, 65: [1, 44], 69: 74, 70: 77, 71: 78, 72: [1, 79], 78: 26, 79: 27, 80: [1, 28], 81: [1, 29], 82: [1, 30], 83: [1, 31], 84: [1, 32], 85: [1, 34], 86: 33 }, { 72: [1, 80] }, { 23: [2, 42], 33: [2, 42], 54: [2, 42], 65: [2, 42], 68: [2, 42], 72: [2, 42], 75: [2, 42], 80: [2, 42], 81: [2, 42], 82: [2, 42], 83: [2, 42], 84: [2, 42], 85: [2, 42], 87: [1, 51] }, { 20: 75, 53: 81, 54: [2, 84], 63: 82, 64: 76, 65: [1, 44], 69: 83, 70: 77, 71: 78, 72: [1, 79], 78: 26, 79: 27, 80: [1, 28], 81: [1, 29], 82: [1, 30], 83: [1, 31], 84: [1, 32], 85: [1, 34], 86: 33 }, { 26: 84, 47: [1, 67] }, { 47: [2, 55] }, { 4: 85, 6: 3, 14: [2, 46], 15: [2, 46], 19: [2, 46], 29: [2, 46], 34: [2, 46], 39: [2, 46], 44: [2, 46], 47: [2, 46], 48: [2, 46], 51: [2, 46], 55: [2, 46], 60: [2, 46] }, { 47: [2, 20] }, { 20: 86, 72: [1, 35], 78: 26, 79: 27, 80: [1, 28], 81: [1, 29], 82: [1, 30], 83: [1, 31], 84: [1, 32], 85: [1, 34], 86: 33 }, { 4: 87, 6: 3, 14: [2, 46], 15: [2, 46], 19: [2, 46], 29: [2, 46], 34: [2, 46], 47: [2, 46], 48: [2, 46], 51: [2, 46], 55: [2, 46], 60: [2, 46] }, { 26: 88, 47: [1, 67] }, { 47: [2, 57] }, { 5: [2, 11], 14: [2, 11], 15: [2, 11], 19: [2, 11], 29: [2, 11], 34: [2, 11], 39: [2, 11], 44: [2, 11], 47: [2, 11], 48: [2, 11], 51: [2, 11], 55: [2, 11], 60: [2, 11] }, { 15: [2, 49], 18: [2, 49] }, { 20: 75, 33: [2, 88], 58: 89, 63: 90, 64: 76, 65: [1, 44], 69: 91, 70: 77, 71: 78, 72: [1, 79], 78: 26, 79: 27, 80: [1, 28], 81: [1, 29], 82: [1, 30], 83: [1, 31], 84: [1, 32], 85: [1, 34], 86: 33 }, { 65: [2, 94], 66: 92, 68: [2, 94], 72: [2, 94], 80: [2, 94], 81: [2, 94], 82: [2, 94], 83: [2, 94], 84: [2, 94], 85: [2, 94] }, { 5: [2, 25], 14: [2, 25], 15: [2, 25], 19: [2, 25], 29: [2, 25], 34: [2, 25], 39: [2, 25], 44: [2, 25], 47: [2, 25], 48: [2, 25], 51: [2, 25], 55: [2, 25], 60: [2, 25] }, { 20: 93, 72: [1, 35], 78: 26, 79: 27, 80: [1, 28], 81: [1, 29], 82: [1, 30], 83: [1, 31], 84: [1, 32], 85: [1, 34], 86: 33 }, { 20: 75, 31: 94, 33: [2, 60], 63: 95, 64: 76, 65: [1, 44], 69: 96, 70: 77, 71: 78, 72: [1, 79], 75: [2, 60], 78: 26, 79: 27, 80: [1, 28], 81: [1, 29], 82: [1, 30], 83: [1, 31], 84: [1, 32], 85: [1, 34], 86: 33 }, { 20: 75, 33: [2, 66], 36: 97, 63: 98, 64: 76, 65: [1, 44], 69: 99, 70: 77, 71: 78, 72: [1, 79], 75: [2, 66], 78: 26, 79: 27, 80: [1, 28], 81: [1, 29], 82: [1, 30], 83: [1, 31], 84: [1, 32], 85: [1, 34], 86: 33 }, { 20: 75, 22: 100, 23: [2, 52], 63: 101, 64: 76, 65: [1, 44], 69: 102, 70: 77, 71: 78, 72: [1, 79], 78: 26, 79: 27, 80: [1, 28], 81: [1, 29], 82: [1, 30], 83: [1, 31], 84: [1, 32], 85: [1, 34], 86: 33 }, { 20: 75, 33: [2, 92], 62: 103, 63: 104, 64: 76, 65: [1, 44], 69: 105, 70: 77, 71: 78, 72: [1, 79], 78: 26, 79: 27, 80: [1, 28], 81: [1, 29], 82: [1, 30], 83: [1, 31], 84: [1, 32], 85: [1, 34], 86: 33 }, { 33: [1, 106] }, { 33: [2, 79], 65: [2, 79], 72: [2, 79], 80: [2, 79], 81: [2, 79], 82: [2, 79], 83: [2, 79], 84: [2, 79], 85: [2, 79] }, { 33: [2, 81] }, { 23: [2, 27], 33: [2, 27], 54: [2, 27], 65: [2, 27], 68: [2, 27], 72: [2, 27], 75: [2, 27], 80: [2, 27], 81: [2, 27], 82: [2, 27], 83: [2, 27], 84: [2, 27], 85: [2, 27] }, { 23: [2, 28], 33: [2, 28], 54: [2, 28], 65: [2, 28], 68: [2, 28], 72: [2, 28], 75: [2, 28], 80: [2, 28], 81: [2, 28], 82: [2, 28], 83: [2, 28], 84: [2, 28], 85: [2, 28] }, { 23: [2, 30], 33: [2, 30], 54: [2, 30], 68: [2, 30], 71: 107, 72: [1, 108], 75: [2, 30] }, { 23: [2, 98], 33: [2, 98], 54: [2, 98], 68: [2, 98], 72: [2, 98], 75: [2, 98] }, { 23: [2, 45], 33: [2, 45], 54: [2, 45], 65: [2, 45], 68: [2, 45], 72: [2, 45], 73: [1, 109], 75: [2, 45], 80: [2, 45], 81: [2, 45], 82: [2, 45], 83: [2, 45], 84: [2, 45], 85: [2, 45], 87: [2, 45] }, { 23: [2, 44], 33: [2, 44], 54: [2, 44], 65: [2, 44], 68: [2, 44], 72: [2, 44], 75: [2, 44], 80: [2, 44], 81: [2, 44], 82: [2, 44], 83: [2, 44], 84: [2, 44], 85: [2, 44], 87: [2, 44] }, { 54: [1, 110] }, { 54: [2, 83], 65: [2, 83], 72: [2, 83], 80: [2, 83], 81: [2, 83], 82: [2, 83], 83: [2, 83], 84: [2, 83], 85: [2, 83] }, { 54: [2, 85] }, { 5: [2, 13], 14: [2, 13], 15: [2, 13], 19: [2, 13], 29: [2, 13], 34: [2, 13], 39: [2, 13], 44: [2, 13], 47: [2, 13], 48: [2, 13], 51: [2, 13], 55: [2, 13], 60: [2, 13] }, { 38: 56, 39: [1, 58], 43: 57, 44: [1, 59], 45: 112, 46: 111, 47: [2, 76] }, { 33: [2, 70], 40: 113, 65: [2, 70], 72: [2, 70], 75: [2, 70], 80: [2, 70], 81: [2, 70], 82: [2, 70], 83: [2, 70], 84: [2, 70], 85: [2, 70] }, { 47: [2, 18] }, { 5: [2, 14], 14: [2, 14], 15: [2, 14], 19: [2, 14], 29: [2, 14], 34: [2, 14], 39: [2, 14], 44: [2, 14], 47: [2, 14], 48: [2, 14], 51: [2, 14], 55: [2, 14], 60: [2, 14] }, { 33: [1, 114] }, { 33: [2, 87], 65: [2, 87], 72: [2, 87], 80: [2, 87], 81: [2, 87], 82: [2, 87], 83: [2, 87], 84: [2, 87], 85: [2, 87] }, { 33: [2, 89] }, { 20: 75, 63: 116, 64: 76, 65: [1, 44], 67: 115, 68: [2, 96], 69: 117, 70: 77, 71: 78, 72: [1, 79], 78: 26, 79: 27, 80: [1, 28], 81: [1, 29], 82: [1, 30], 83: [1, 31], 84: [1, 32], 85: [1, 34], 86: 33 }, { 33: [1, 118] }, { 32: 119, 33: [2, 62], 74: 120, 75: [1, 121] }, { 33: [2, 59], 65: [2, 59], 72: [2, 59], 75: [2, 59], 80: [2, 59], 81: [2, 59], 82: [2, 59], 83: [2, 59], 84: [2, 59], 85: [2, 59] }, { 33: [2, 61], 75: [2, 61] }, { 33: [2, 68], 37: 122, 74: 123, 75: [1, 121] }, { 33: [2, 65], 65: [2, 65], 72: [2, 65], 75: [2, 65], 80: [2, 65], 81: [2, 65], 82: [2, 65], 83: [2, 65], 84: [2, 65], 85: [2, 65] }, { 33: [2, 67], 75: [2, 67] }, { 23: [1, 124] }, { 23: [2, 51], 65: [2, 51], 72: [2, 51], 80: [2, 51], 81: [2, 51], 82: [2, 51], 83: [2, 51], 84: [2, 51], 85: [2, 51] }, { 23: [2, 53] }, { 33: [1, 125] }, { 33: [2, 91], 65: [2, 91], 72: [2, 91], 80: [2, 91], 81: [2, 91], 82: [2, 91], 83: [2, 91], 84: [2, 91], 85: [2, 91] }, { 33: [2, 93] }, { 5: [2, 22], 14: [2, 22], 15: [2, 22], 19: [2, 22], 29: [2, 22], 34: [2, 22], 39: [2, 22], 44: [2, 22], 47: [2, 22], 48: [2, 22], 51: [2, 22], 55: [2, 22], 60: [2, 22] }, { 23: [2, 99], 33: [2, 99], 54: [2, 99], 68: [2, 99], 72: [2, 99], 75: [2, 99] }, { 73: [1, 109] }, { 20: 75, 63: 126, 64: 76, 65: [1, 44], 72: [1, 35], 78: 26, 79: 27, 80: [1, 28], 81: [1, 29], 82: [1, 30], 83: [1, 31], 84: [1, 32], 85: [1, 34], 86: 33 }, { 5: [2, 23], 14: [2, 23], 15: [2, 23], 19: [2, 23], 29: [2, 23], 34: [2, 23], 39: [2, 23], 44: [2, 23], 47: [2, 23], 48: [2, 23], 51: [2, 23], 55: [2, 23], 60: [2, 23] }, { 47: [2, 19] }, { 47: [2, 77] }, { 20: 75, 33: [2, 72], 41: 127, 63: 128, 64: 76, 65: [1, 44], 69: 129, 70: 77, 71: 78, 72: [1, 79], 75: [2, 72], 78: 26, 79: 27, 80: [1, 28], 81: [1, 29], 82: [1, 30], 83: [1, 31], 84: [1, 32], 85: [1, 34], 86: 33 }, { 5: [2, 24], 14: [2, 24], 15: [2, 24], 19: [2, 24], 29: [2, 24], 34: [2, 24], 39: [2, 24], 44: [2, 24], 47: [2, 24], 48: [2, 24], 51: [2, 24], 55: [2, 24], 60: [2, 24] }, { 68: [1, 130] }, { 65: [2, 95], 68: [2, 95], 72: [2, 95], 80: [2, 95], 81: [2, 95], 82: [2, 95], 83: [2, 95], 84: [2, 95], 85: [2, 95] }, { 68: [2, 97] }, { 5: [2, 21], 14: [2, 21], 15: [2, 21], 19: [2, 21], 29: [2, 21], 34: [2, 21], 39: [2, 21], 44: [2, 21], 47: [2, 21], 48: [2, 21], 51: [2, 21], 55: [2, 21], 60: [2, 21] }, { 33: [1, 131] }, { 33: [2, 63] }, { 72: [1, 133], 76: 132 }, { 33: [1, 134] }, { 33: [2, 69] }, { 15: [2, 12] }, { 14: [2, 26], 15: [2, 26], 19: [2, 26], 29: [2, 26], 34: [2, 26], 47: [2, 26], 48: [2, 26], 51: [2, 26], 55: [2, 26], 60: [2, 26] }, { 23: [2, 31], 33: [2, 31], 54: [2, 31], 68: [2, 31], 72: [2, 31], 75: [2, 31] }, { 33: [2, 74], 42: 135, 74: 136, 75: [1, 121] }, { 33: [2, 71], 65: [2, 71], 72: [2, 71], 75: [2, 71], 80: [2, 71], 81: [2, 71], 82: [2, 71], 83: [2, 71], 84: [2, 71], 85: [2, 71] }, { 33: [2, 73], 75: [2, 73] }, { 23: [2, 29], 33: [2, 29], 54: [2, 29], 65: [2, 29], 68: [2, 29], 72: [2, 29], 75: [2, 29], 80: [2, 29], 81: [2, 29], 82: [2, 29], 83: [2, 29], 84: [2, 29], 85: [2, 29] }, { 14: [2, 15], 15: [2, 15], 19: [2, 15], 29: [2, 15], 34: [2, 15], 39: [2, 15], 44: [2, 15], 47: [2, 15], 48: [2, 15], 51: [2, 15], 55: [2, 15], 60: [2, 15] }, { 72: [1, 138], 77: [1, 137] }, { 72: [2, 100], 77: [2, 100] }, { 14: [2, 16], 15: [2, 16], 19: [2, 16], 29: [2, 16], 34: [2, 16], 44: [2, 16], 47: [2, 16], 48: [2, 16], 51: [2, 16], 55: [2, 16], 60: [2, 16] }, { 33: [1, 139] }, { 33: [2, 75] }, { 33: [2, 32] }, { 72: [2, 101], 77: [2, 101] }, { 14: [2, 17], 15: [2, 17], 19: [2, 17], 29: [2, 17], 34: [2, 17], 39: [2, 17], 44: [2, 17], 47: [2, 17], 48: [2, 17], 51: [2, 17], 55: [2, 17], 60: [2, 17] }],
14476 defaultActions: { 4: [2, 1], 55: [2, 55], 57: [2, 20], 61: [2, 57], 74: [2, 81], 83: [2, 85], 87: [2, 18], 91: [2, 89], 102: [2, 53], 105: [2, 93], 111: [2, 19], 112: [2, 77], 117: [2, 97], 120: [2, 63], 123: [2, 69], 124: [2, 12], 136: [2, 75], 137: [2, 32] },
14477 parseError: function parseError(str, hash) {
14478 throw new Error(str);
14479 },
14480 parse: function parse(input) {
14481 var self = this,
14482 stack = [0],
14483 vstack = [null],
14484 lstack = [],
14485 table = this.table,
14486 yytext = "",
14487 yylineno = 0,
14488 yyleng = 0,
14489 recovering = 0,
14490 TERROR = 2,
14491 EOF = 1;
14492 this.lexer.setInput(input);
14493 this.lexer.yy = this.yy;
14494 this.yy.lexer = this.lexer;
14495 this.yy.parser = this;
14496 if (typeof this.lexer.yylloc == "undefined") this.lexer.yylloc = {};
14497 var yyloc = this.lexer.yylloc;
14498 lstack.push(yyloc);
14499 var ranges = this.lexer.options && this.lexer.options.ranges;
14500 if (typeof this.yy.parseError === "function") this.parseError = this.yy.parseError;
14501 function popStack(n) {
14502 stack.length = stack.length - 2 * n;
14503 vstack.length = vstack.length - n;
14504 lstack.length = lstack.length - n;
14505 }
14506 function lex() {
14507 var token;
14508 token = self.lexer.lex() || 1;
14509 if (typeof token !== "number") {
14510 token = self.symbols_[token] || token;
14511 }
14512 return token;
14513 }
14514 var symbol,
14515 preErrorSymbol,
14516 state,
14517 action,
14518 a,
14519 r,
14520 yyval = {},
14521 p,
14522 len,
14523 newState,
14524 expected;
14525 while (true) {
14526 state = stack[stack.length - 1];
14527 if (this.defaultActions[state]) {
14528 action = this.defaultActions[state];
14529 } else {
14530 if (symbol === null || typeof symbol == "undefined") {
14531 symbol = lex();
14532 }
14533 action = table[state] && table[state][symbol];
14534 }
14535 if (typeof action === "undefined" || !action.length || !action[0]) {
14536 var errStr = "";
14537 if (!recovering) {
14538 expected = [];
14539 for (p in table[state]) if (this.terminals_[p] && p > 2) {
14540 expected.push("'" + this.terminals_[p] + "'");
14541 }
14542 if (this.lexer.showPosition) {
14543 errStr = "Parse error on line " + (yylineno + 1) + ":\n" + this.lexer.showPosition() + "\nExpecting " + expected.join(", ") + ", got '" + (this.terminals_[symbol] || symbol) + "'";
14544 } else {
14545 errStr = "Parse error on line " + (yylineno + 1) + ": Unexpected " + (symbol == 1 ? "end of input" : "'" + (this.terminals_[symbol] || symbol) + "'");
14546 }
14547 this.parseError(errStr, { text: this.lexer.match, token: this.terminals_[symbol] || symbol, line: this.lexer.yylineno, loc: yyloc, expected: expected });
14548 }
14549 }
14550 if (action[0] instanceof Array && action.length > 1) {
14551 throw new Error("Parse Error: multiple actions possible at state: " + state + ", token: " + symbol);
14552 }
14553 switch (action[0]) {
14554 case 1:
14555 stack.push(symbol);
14556 vstack.push(this.lexer.yytext);
14557 lstack.push(this.lexer.yylloc);
14558 stack.push(action[1]);
14559 symbol = null;
14560 if (!preErrorSymbol) {
14561 yyleng = this.lexer.yyleng;
14562 yytext = this.lexer.yytext;
14563 yylineno = this.lexer.yylineno;
14564 yyloc = this.lexer.yylloc;
14565 if (recovering > 0) recovering--;
14566 } else {
14567 symbol = preErrorSymbol;
14568 preErrorSymbol = null;
14569 }
14570 break;
14571 case 2:
14572 len = this.productions_[action[1]][1];
14573 yyval.$ = vstack[vstack.length - len];
14574 yyval._$ = { first_line: lstack[lstack.length - (len || 1)].first_line, last_line: lstack[lstack.length - 1].last_line, first_column: lstack[lstack.length - (len || 1)].first_column, last_column: lstack[lstack.length - 1].last_column };
14575 if (ranges) {
14576 yyval._$.range = [lstack[lstack.length - (len || 1)].range[0], lstack[lstack.length - 1].range[1]];
14577 }
14578 r = this.performAction.call(yyval, yytext, yyleng, yylineno, this.yy, action[1], vstack, lstack);
14579 if (typeof r !== "undefined") {
14580 return r;
14581 }
14582 if (len) {
14583 stack = stack.slice(0, -1 * len * 2);
14584 vstack = vstack.slice(0, -1 * len);
14585 lstack = lstack.slice(0, -1 * len);
14586 }
14587 stack.push(this.productions_[action[1]][0]);
14588 vstack.push(yyval.$);
14589 lstack.push(yyval._$);
14590 newState = table[stack[stack.length - 2]][stack[stack.length - 1]];
14591 stack.push(newState);
14592 break;
14593 case 3:
14594 return true;
14595 }
14596 }
14597 return true;
14598 }
14599 };
14600 /* Jison generated lexer */
14601 var lexer = (function () {
14602 var lexer = { EOF: 1,
14603 parseError: function parseError(str, hash) {
14604 if (this.yy.parser) {
14605 this.yy.parser.parseError(str, hash);
14606 } else {
14607 throw new Error(str);
14608 }
14609 },
14610 setInput: function setInput(input) {
14611 this._input = input;
14612 this._more = this._less = this.done = false;
14613 this.yylineno = this.yyleng = 0;
14614 this.yytext = this.matched = this.match = '';
14615 this.conditionStack = ['INITIAL'];
14616 this.yylloc = { first_line: 1, first_column: 0, last_line: 1, last_column: 0 };
14617 if (this.options.ranges) this.yylloc.range = [0, 0];
14618 this.offset = 0;
14619 return this;
14620 },
14621 input: function input() {
14622 var ch = this._input[0];
14623 this.yytext += ch;
14624 this.yyleng++;
14625 this.offset++;
14626 this.match += ch;
14627 this.matched += ch;
14628 var lines = ch.match(/(?:\r\n?|\n).*/g);
14629 if (lines) {
14630 this.yylineno++;
14631 this.yylloc.last_line++;
14632 } else {
14633 this.yylloc.last_column++;
14634 }
14635 if (this.options.ranges) this.yylloc.range[1]++;
14636
14637 this._input = this._input.slice(1);
14638 return ch;
14639 },
14640 unput: function unput(ch) {
14641 var len = ch.length;
14642 var lines = ch.split(/(?:\r\n?|\n)/g);
14643
14644 this._input = ch + this._input;
14645 this.yytext = this.yytext.substr(0, this.yytext.length - len - 1);
14646 //this.yyleng -= len;
14647 this.offset -= len;
14648 var oldLines = this.match.split(/(?:\r\n?|\n)/g);
14649 this.match = this.match.substr(0, this.match.length - 1);
14650 this.matched = this.matched.substr(0, this.matched.length - 1);
14651
14652 if (lines.length - 1) this.yylineno -= lines.length - 1;
14653 var r = this.yylloc.range;
14654
14655 this.yylloc = { first_line: this.yylloc.first_line,
14656 last_line: this.yylineno + 1,
14657 first_column: this.yylloc.first_column,
14658 last_column: lines ? (lines.length === oldLines.length ? this.yylloc.first_column : 0) + oldLines[oldLines.length - lines.length].length - lines[0].length : this.yylloc.first_column - len
14659 };
14660
14661 if (this.options.ranges) {
14662 this.yylloc.range = [r[0], r[0] + this.yyleng - len];
14663 }
14664 return this;
14665 },
14666 more: function more() {
14667 this._more = true;
14668 return this;
14669 },
14670 less: function less(n) {
14671 this.unput(this.match.slice(n));
14672 },
14673 pastInput: function pastInput() {
14674 var past = this.matched.substr(0, this.matched.length - this.match.length);
14675 return (past.length > 20 ? '...' : '') + past.substr(-20).replace(/\n/g, "");
14676 },
14677 upcomingInput: function upcomingInput() {
14678 var next = this.match;
14679 if (next.length < 20) {
14680 next += this._input.substr(0, 20 - next.length);
14681 }
14682 return (next.substr(0, 20) + (next.length > 20 ? '...' : '')).replace(/\n/g, "");
14683 },
14684 showPosition: function showPosition() {
14685 var pre = this.pastInput();
14686 var c = new Array(pre.length + 1).join("-");
14687 return pre + this.upcomingInput() + "\n" + c + "^";
14688 },
14689 next: function next() {
14690 if (this.done) {
14691 return this.EOF;
14692 }
14693 if (!this._input) this.done = true;
14694
14695 var token, match, tempMatch, index, col, lines;
14696 if (!this._more) {
14697 this.yytext = '';
14698 this.match = '';
14699 }
14700 var rules = this._currentRules();
14701 for (var i = 0; i < rules.length; i++) {
14702 tempMatch = this._input.match(this.rules[rules[i]]);
14703 if (tempMatch && (!match || tempMatch[0].length > match[0].length)) {
14704 match = tempMatch;
14705 index = i;
14706 if (!this.options.flex) break;
14707 }
14708 }
14709 if (match) {
14710 lines = match[0].match(/(?:\r\n?|\n).*/g);
14711 if (lines) this.yylineno += lines.length;
14712 this.yylloc = { first_line: this.yylloc.last_line,
14713 last_line: this.yylineno + 1,
14714 first_column: this.yylloc.last_column,
14715 last_column: lines ? lines[lines.length - 1].length - lines[lines.length - 1].match(/\r?\n?/)[0].length : this.yylloc.last_column + match[0].length };
14716 this.yytext += match[0];
14717 this.match += match[0];
14718 this.matches = match;
14719 this.yyleng = this.yytext.length;
14720 if (this.options.ranges) {
14721 this.yylloc.range = [this.offset, this.offset += this.yyleng];
14722 }
14723 this._more = false;
14724 this._input = this._input.slice(match[0].length);
14725 this.matched += match[0];
14726 token = this.performAction.call(this, this.yy, this, rules[index], this.conditionStack[this.conditionStack.length - 1]);
14727 if (this.done && this._input) this.done = false;
14728 if (token) return token;else return;
14729 }
14730 if (this._input === "") {
14731 return this.EOF;
14732 } else {
14733 return this.parseError('Lexical error on line ' + (this.yylineno + 1) + '. Unrecognized text.\n' + this.showPosition(), { text: "", token: null, line: this.yylineno });
14734 }
14735 },
14736 lex: function lex() {
14737 var r = this.next();
14738 if (typeof r !== 'undefined') {
14739 return r;
14740 } else {
14741 return this.lex();
14742 }
14743 },
14744 begin: function begin(condition) {
14745 this.conditionStack.push(condition);
14746 },
14747 popState: function popState() {
14748 return this.conditionStack.pop();
14749 },
14750 _currentRules: function _currentRules() {
14751 return this.conditions[this.conditionStack[this.conditionStack.length - 1]].rules;
14752 },
14753 topState: function topState() {
14754 return this.conditionStack[this.conditionStack.length - 2];
14755 },
14756 pushState: function begin(condition) {
14757 this.begin(condition);
14758 } };
14759 lexer.options = {};
14760 lexer.performAction = function anonymous(yy, yy_, $avoiding_name_collisions, YY_START
14761 /*``*/) {
14762
14763 function strip(start, end) {
14764 return yy_.yytext = yy_.yytext.substr(start, yy_.yyleng - end);
14765 }
14766
14767 var YYSTATE = YY_START;
14768 switch ($avoiding_name_collisions) {
14769 case 0:
14770 if (yy_.yytext.slice(-2) === "\\\\") {
14771 strip(0, 1);
14772 this.begin("mu");
14773 } else if (yy_.yytext.slice(-1) === "\\") {
14774 strip(0, 1);
14775 this.begin("emu");
14776 } else {
14777 this.begin("mu");
14778 }
14779 if (yy_.yytext) return 15;
14780
14781 break;
14782 case 1:
14783 return 15;
14784 break;
14785 case 2:
14786 this.popState();
14787 return 15;
14788
14789 break;
14790 case 3:
14791 this.begin('raw');return 15;
14792 break;
14793 case 4:
14794 this.popState();
14795 // Should be using `this.topState()` below, but it currently
14796 // returns the second top instead of the first top. Opened an
14797 // issue about it at https://github.com/zaach/jison/issues/291
14798 if (this.conditionStack[this.conditionStack.length - 1] === 'raw') {
14799 return 15;
14800 } else {
14801 yy_.yytext = yy_.yytext.substr(5, yy_.yyleng - 9);
14802 return 'END_RAW_BLOCK';
14803 }
14804
14805 break;
14806 case 5:
14807 return 15;
14808 break;
14809 case 6:
14810 this.popState();
14811 return 14;
14812
14813 break;
14814 case 7:
14815 return 65;
14816 break;
14817 case 8:
14818 return 68;
14819 break;
14820 case 9:
14821 return 19;
14822 break;
14823 case 10:
14824 this.popState();
14825 this.begin('raw');
14826 return 23;
14827
14828 break;
14829 case 11:
14830 return 55;
14831 break;
14832 case 12:
14833 return 60;
14834 break;
14835 case 13:
14836 return 29;
14837 break;
14838 case 14:
14839 return 47;
14840 break;
14841 case 15:
14842 this.popState();return 44;
14843 break;
14844 case 16:
14845 this.popState();return 44;
14846 break;
14847 case 17:
14848 return 34;
14849 break;
14850 case 18:
14851 return 39;
14852 break;
14853 case 19:
14854 return 51;
14855 break;
14856 case 20:
14857 return 48;
14858 break;
14859 case 21:
14860 this.unput(yy_.yytext);
14861 this.popState();
14862 this.begin('com');
14863
14864 break;
14865 case 22:
14866 this.popState();
14867 return 14;
14868
14869 break;
14870 case 23:
14871 return 48;
14872 break;
14873 case 24:
14874 return 73;
14875 break;
14876 case 25:
14877 return 72;
14878 break;
14879 case 26:
14880 return 72;
14881 break;
14882 case 27:
14883 return 87;
14884 break;
14885 case 28:
14886 // ignore whitespace
14887 break;
14888 case 29:
14889 this.popState();return 54;
14890 break;
14891 case 30:
14892 this.popState();return 33;
14893 break;
14894 case 31:
14895 yy_.yytext = strip(1, 2).replace(/\\"/g, '"');return 80;
14896 break;
14897 case 32:
14898 yy_.yytext = strip(1, 2).replace(/\\'/g, "'");return 80;
14899 break;
14900 case 33:
14901 return 85;
14902 break;
14903 case 34:
14904 return 82;
14905 break;
14906 case 35:
14907 return 82;
14908 break;
14909 case 36:
14910 return 83;
14911 break;
14912 case 37:
14913 return 84;
14914 break;
14915 case 38:
14916 return 81;
14917 break;
14918 case 39:
14919 return 75;
14920 break;
14921 case 40:
14922 return 77;
14923 break;
14924 case 41:
14925 return 72;
14926 break;
14927 case 42:
14928 yy_.yytext = yy_.yytext.replace(/\\([\\\]])/g, '$1');return 72;
14929 break;
14930 case 43:
14931 return 'INVALID';
14932 break;
14933 case 44:
14934 return 5;
14935 break;
14936 }
14937 };
14938 lexer.rules = [/^(?:[^\x00]*?(?=(\{\{)))/, /^(?:[^\x00]+)/, /^(?:[^\x00]{2,}?(?=(\{\{|\\\{\{|\\\\\{\{|$)))/, /^(?:\{\{\{\{(?=[^\/]))/, /^(?:\{\{\{\{\/[^\s!"#%-,\.\/;->@\[-\^`\{-~]+(?=[=}\s\/.])\}\}\}\})/, /^(?:[^\x00]*?(?=(\{\{\{\{)))/, /^(?:[\s\S]*?--(~)?\}\})/, /^(?:\()/, /^(?:\))/, /^(?:\{\{\{\{)/, /^(?:\}\}\}\})/, /^(?:\{\{(~)?>)/, /^(?:\{\{(~)?#>)/, /^(?:\{\{(~)?#\*?)/, /^(?:\{\{(~)?\/)/, /^(?:\{\{(~)?\^\s*(~)?\}\})/, /^(?:\{\{(~)?\s*else\s*(~)?\}\})/, /^(?:\{\{(~)?\^)/, /^(?:\{\{(~)?\s*else\b)/, /^(?:\{\{(~)?\{)/, /^(?:\{\{(~)?&)/, /^(?:\{\{(~)?!--)/, /^(?:\{\{(~)?![\s\S]*?\}\})/, /^(?:\{\{(~)?\*?)/, /^(?:=)/, /^(?:\.\.)/, /^(?:\.(?=([=~}\s\/.)|])))/, /^(?:[\/.])/, /^(?:\s+)/, /^(?:\}(~)?\}\})/, /^(?:(~)?\}\})/, /^(?:"(\\["]|[^"])*")/, /^(?:'(\\[']|[^'])*')/, /^(?:@)/, /^(?:true(?=([~}\s)])))/, /^(?:false(?=([~}\s)])))/, /^(?:undefined(?=([~}\s)])))/, /^(?:null(?=([~}\s)])))/, /^(?:-?[0-9]+(?:\.[0-9]+)?(?=([~}\s)])))/, /^(?:as\s+\|)/, /^(?:\|)/, /^(?:([^\s!"#%-,\.\/;->@\[-\^`\{-~]+(?=([=~}\s\/.)|]))))/, /^(?:\[(\\\]|[^\]])*\])/, /^(?:.)/, /^(?:$)/];
14939 lexer.conditions = { "mu": { "rules": [7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44], "inclusive": false }, "emu": { "rules": [2], "inclusive": false }, "com": { "rules": [6], "inclusive": false }, "raw": { "rules": [3, 4, 5], "inclusive": false }, "INITIAL": { "rules": [0, 1, 44], "inclusive": true } };
14940 return lexer;
14941 })();
14942 parser.lexer = lexer;
14943 function Parser() {
14944 this.yy = {};
14945 }Parser.prototype = parser;parser.Parser = Parser;
14946 return new Parser();
14947 })();exports["default"] = handlebars;
14948 module.exports = exports["default"];
14949
14950/***/ }),
14951/* 38 */
14952/***/ (function(module, exports, __webpack_require__) {
14953
14954 'use strict';
14955
14956 var _interopRequireDefault = __webpack_require__(1)['default'];
14957
14958 exports.__esModule = true;
14959
14960 var _visitor = __webpack_require__(39);
14961
14962 var _visitor2 = _interopRequireDefault(_visitor);
14963
14964 function WhitespaceControl() {
14965 var options = arguments.length <= 0 || arguments[0] === undefined ? {} : arguments[0];
14966
14967 this.options = options;
14968 }
14969 WhitespaceControl.prototype = new _visitor2['default']();
14970
14971 WhitespaceControl.prototype.Program = function (program) {
14972 var doStandalone = !this.options.ignoreStandalone;
14973
14974 var isRoot = !this.isRootSeen;
14975 this.isRootSeen = true;
14976
14977 var body = program.body;
14978 for (var i = 0, l = body.length; i < l; i++) {
14979 var current = body[i],
14980 strip = this.accept(current);
14981
14982 if (!strip) {
14983 continue;
14984 }
14985
14986 var _isPrevWhitespace = isPrevWhitespace(body, i, isRoot),
14987 _isNextWhitespace = isNextWhitespace(body, i, isRoot),
14988 openStandalone = strip.openStandalone && _isPrevWhitespace,
14989 closeStandalone = strip.closeStandalone && _isNextWhitespace,
14990 inlineStandalone = strip.inlineStandalone && _isPrevWhitespace && _isNextWhitespace;
14991
14992 if (strip.close) {
14993 omitRight(body, i, true);
14994 }
14995 if (strip.open) {
14996 omitLeft(body, i, true);
14997 }
14998
14999 if (doStandalone && inlineStandalone) {
15000 omitRight(body, i);
15001
15002 if (omitLeft(body, i)) {
15003 // If we are on a standalone node, save the indent info for partials
15004 if (current.type === 'PartialStatement') {
15005 // Pull out the whitespace from the final line
15006 current.indent = /([ \t]+$)/.exec(body[i - 1].original)[1];
15007 }
15008 }
15009 }
15010 if (doStandalone && openStandalone) {
15011 omitRight((current.program || current.inverse).body);
15012
15013 // Strip out the previous content node if it's whitespace only
15014 omitLeft(body, i);
15015 }
15016 if (doStandalone && closeStandalone) {
15017 // Always strip the next node
15018 omitRight(body, i);
15019
15020 omitLeft((current.inverse || current.program).body);
15021 }
15022 }
15023
15024 return program;
15025 };
15026
15027 WhitespaceControl.prototype.BlockStatement = WhitespaceControl.prototype.DecoratorBlock = WhitespaceControl.prototype.PartialBlockStatement = function (block) {
15028 this.accept(block.program);
15029 this.accept(block.inverse);
15030
15031 // Find the inverse program that is involed with whitespace stripping.
15032 var program = block.program || block.inverse,
15033 inverse = block.program && block.inverse,
15034 firstInverse = inverse,
15035 lastInverse = inverse;
15036
15037 if (inverse && inverse.chained) {
15038 firstInverse = inverse.body[0].program;
15039
15040 // Walk the inverse chain to find the last inverse that is actually in the chain.
15041 while (lastInverse.chained) {
15042 lastInverse = lastInverse.body[lastInverse.body.length - 1].program;
15043 }
15044 }
15045
15046 var strip = {
15047 open: block.openStrip.open,
15048 close: block.closeStrip.close,
15049
15050 // Determine the standalone candiacy. Basically flag our content as being possibly standalone
15051 // so our parent can determine if we actually are standalone
15052 openStandalone: isNextWhitespace(program.body),
15053 closeStandalone: isPrevWhitespace((firstInverse || program).body)
15054 };
15055
15056 if (block.openStrip.close) {
15057 omitRight(program.body, null, true);
15058 }
15059
15060 if (inverse) {
15061 var inverseStrip = block.inverseStrip;
15062
15063 if (inverseStrip.open) {
15064 omitLeft(program.body, null, true);
15065 }
15066
15067 if (inverseStrip.close) {
15068 omitRight(firstInverse.body, null, true);
15069 }
15070 if (block.closeStrip.open) {
15071 omitLeft(lastInverse.body, null, true);
15072 }
15073
15074 // Find standalone else statments
15075 if (!this.options.ignoreStandalone && isPrevWhitespace(program.body) && isNextWhitespace(firstInverse.body)) {
15076 omitLeft(program.body);
15077 omitRight(firstInverse.body);
15078 }
15079 } else if (block.closeStrip.open) {
15080 omitLeft(program.body, null, true);
15081 }
15082
15083 return strip;
15084 };
15085
15086 WhitespaceControl.prototype.Decorator = WhitespaceControl.prototype.MustacheStatement = function (mustache) {
15087 return mustache.strip;
15088 };
15089
15090 WhitespaceControl.prototype.PartialStatement = WhitespaceControl.prototype.CommentStatement = function (node) {
15091 /* istanbul ignore next */
15092 var strip = node.strip || {};
15093 return {
15094 inlineStandalone: true,
15095 open: strip.open,
15096 close: strip.close
15097 };
15098 };
15099
15100 function isPrevWhitespace(body, i, isRoot) {
15101 if (i === undefined) {
15102 i = body.length;
15103 }
15104
15105 // Nodes that end with newlines are considered whitespace (but are special
15106 // cased for strip operations)
15107 var prev = body[i - 1],
15108 sibling = body[i - 2];
15109 if (!prev) {
15110 return isRoot;
15111 }
15112
15113 if (prev.type === 'ContentStatement') {
15114 return (sibling || !isRoot ? /\r?\n\s*?$/ : /(^|\r?\n)\s*?$/).test(prev.original);
15115 }
15116 }
15117 function isNextWhitespace(body, i, isRoot) {
15118 if (i === undefined) {
15119 i = -1;
15120 }
15121
15122 var next = body[i + 1],
15123 sibling = body[i + 2];
15124 if (!next) {
15125 return isRoot;
15126 }
15127
15128 if (next.type === 'ContentStatement') {
15129 return (sibling || !isRoot ? /^\s*?\r?\n/ : /^\s*?(\r?\n|$)/).test(next.original);
15130 }
15131 }
15132
15133 // Marks the node to the right of the position as omitted.
15134 // I.e. {{foo}}' ' will mark the ' ' node as omitted.
15135 //
15136 // If i is undefined, then the first child will be marked as such.
15137 //
15138 // If mulitple is truthy then all whitespace will be stripped out until non-whitespace
15139 // content is met.
15140 function omitRight(body, i, multiple) {
15141 var current = body[i == null ? 0 : i + 1];
15142 if (!current || current.type !== 'ContentStatement' || !multiple && current.rightStripped) {
15143 return;
15144 }
15145
15146 var original = current.value;
15147 current.value = current.value.replace(multiple ? /^\s+/ : /^[ \t]*\r?\n?/, '');
15148 current.rightStripped = current.value !== original;
15149 }
15150
15151 // Marks the node to the left of the position as omitted.
15152 // I.e. ' '{{foo}} will mark the ' ' node as omitted.
15153 //
15154 // If i is undefined then the last child will be marked as such.
15155 //
15156 // If mulitple is truthy then all whitespace will be stripped out until non-whitespace
15157 // content is met.
15158 function omitLeft(body, i, multiple) {
15159 var current = body[i == null ? body.length - 1 : i - 1];
15160 if (!current || current.type !== 'ContentStatement' || !multiple && current.leftStripped) {
15161 return;
15162 }
15163
15164 // We omit the last node if it's whitespace only and not preceeded by a non-content node.
15165 var original = current.value;
15166 current.value = current.value.replace(multiple ? /\s+$/ : /[ \t]+$/, '');
15167 current.leftStripped = current.value !== original;
15168 return current.leftStripped;
15169 }
15170
15171 exports['default'] = WhitespaceControl;
15172 module.exports = exports['default'];
15173
15174/***/ }),
15175/* 39 */
15176/***/ (function(module, exports, __webpack_require__) {
15177
15178 'use strict';
15179
15180 var _interopRequireDefault = __webpack_require__(1)['default'];
15181
15182 exports.__esModule = true;
15183
15184 var _exception = __webpack_require__(6);
15185
15186 var _exception2 = _interopRequireDefault(_exception);
15187
15188 function Visitor() {
15189 this.parents = [];
15190 }
15191
15192 Visitor.prototype = {
15193 constructor: Visitor,
15194 mutating: false,
15195
15196 // Visits a given value. If mutating, will replace the value if necessary.
15197 acceptKey: function acceptKey(node, name) {
15198 var value = this.accept(node[name]);
15199 if (this.mutating) {
15200 // Hacky sanity check: This may have a few false positives for type for the helper
15201 // methods but will generally do the right thing without a lot of overhead.
15202 if (value && !Visitor.prototype[value.type]) {
15203 throw new _exception2['default']('Unexpected node type "' + value.type + '" found when accepting ' + name + ' on ' + node.type);
15204 }
15205 node[name] = value;
15206 }
15207 },
15208
15209 // Performs an accept operation with added sanity check to ensure
15210 // required keys are not removed.
15211 acceptRequired: function acceptRequired(node, name) {
15212 this.acceptKey(node, name);
15213
15214 if (!node[name]) {
15215 throw new _exception2['default'](node.type + ' requires ' + name);
15216 }
15217 },
15218
15219 // Traverses a given array. If mutating, empty respnses will be removed
15220 // for child elements.
15221 acceptArray: function acceptArray(array) {
15222 for (var i = 0, l = array.length; i < l; i++) {
15223 this.acceptKey(array, i);
15224
15225 if (!array[i]) {
15226 array.splice(i, 1);
15227 i--;
15228 l--;
15229 }
15230 }
15231 },
15232
15233 accept: function accept(object) {
15234 if (!object) {
15235 return;
15236 }
15237
15238 /* istanbul ignore next: Sanity code */
15239 if (!this[object.type]) {
15240 throw new _exception2['default']('Unknown type: ' + object.type, object);
15241 }
15242
15243 if (this.current) {
15244 this.parents.unshift(this.current);
15245 }
15246 this.current = object;
15247
15248 var ret = this[object.type](object);
15249
15250 this.current = this.parents.shift();
15251
15252 if (!this.mutating || ret) {
15253 return ret;
15254 } else if (ret !== false) {
15255 return object;
15256 }
15257 },
15258
15259 Program: function Program(program) {
15260 this.acceptArray(program.body);
15261 },
15262
15263 MustacheStatement: visitSubExpression,
15264 Decorator: visitSubExpression,
15265
15266 BlockStatement: visitBlock,
15267 DecoratorBlock: visitBlock,
15268
15269 PartialStatement: visitPartial,
15270 PartialBlockStatement: function PartialBlockStatement(partial) {
15271 visitPartial.call(this, partial);
15272
15273 this.acceptKey(partial, 'program');
15274 },
15275
15276 ContentStatement: function ContentStatement() /* content */{},
15277 CommentStatement: function CommentStatement() /* comment */{},
15278
15279 SubExpression: visitSubExpression,
15280
15281 PathExpression: function PathExpression() /* path */{},
15282
15283 StringLiteral: function StringLiteral() /* string */{},
15284 NumberLiteral: function NumberLiteral() /* number */{},
15285 BooleanLiteral: function BooleanLiteral() /* bool */{},
15286 UndefinedLiteral: function UndefinedLiteral() /* literal */{},
15287 NullLiteral: function NullLiteral() /* literal */{},
15288
15289 Hash: function Hash(hash) {
15290 this.acceptArray(hash.pairs);
15291 },
15292 HashPair: function HashPair(pair) {
15293 this.acceptRequired(pair, 'value');
15294 }
15295 };
15296
15297 function visitSubExpression(mustache) {
15298 this.acceptRequired(mustache, 'path');
15299 this.acceptArray(mustache.params);
15300 this.acceptKey(mustache, 'hash');
15301 }
15302 function visitBlock(block) {
15303 visitSubExpression.call(this, block);
15304
15305 this.acceptKey(block, 'program');
15306 this.acceptKey(block, 'inverse');
15307 }
15308 function visitPartial(partial) {
15309 this.acceptRequired(partial, 'name');
15310 this.acceptArray(partial.params);
15311 this.acceptKey(partial, 'hash');
15312 }
15313
15314 exports['default'] = Visitor;
15315 module.exports = exports['default'];
15316
15317/***/ }),
15318/* 40 */
15319/***/ (function(module, exports, __webpack_require__) {
15320
15321 'use strict';
15322
15323 var _interopRequireDefault = __webpack_require__(1)['default'];
15324
15325 exports.__esModule = true;
15326 exports.SourceLocation = SourceLocation;
15327 exports.id = id;
15328 exports.stripFlags = stripFlags;
15329 exports.stripComment = stripComment;
15330 exports.preparePath = preparePath;
15331 exports.prepareMustache = prepareMustache;
15332 exports.prepareRawBlock = prepareRawBlock;
15333 exports.prepareBlock = prepareBlock;
15334 exports.prepareProgram = prepareProgram;
15335 exports.preparePartialBlock = preparePartialBlock;
15336
15337 var _exception = __webpack_require__(6);
15338
15339 var _exception2 = _interopRequireDefault(_exception);
15340
15341 function validateClose(open, close) {
15342 close = close.path ? close.path.original : close;
15343
15344 if (open.path.original !== close) {
15345 var errorNode = { loc: open.path.loc };
15346
15347 throw new _exception2['default'](open.path.original + " doesn't match " + close, errorNode);
15348 }
15349 }
15350
15351 function SourceLocation(source, locInfo) {
15352 this.source = source;
15353 this.start = {
15354 line: locInfo.first_line,
15355 column: locInfo.first_column
15356 };
15357 this.end = {
15358 line: locInfo.last_line,
15359 column: locInfo.last_column
15360 };
15361 }
15362
15363 function id(token) {
15364 if (/^\[.*\]$/.test(token)) {
15365 return token.substr(1, token.length - 2);
15366 } else {
15367 return token;
15368 }
15369 }
15370
15371 function stripFlags(open, close) {
15372 return {
15373 open: open.charAt(2) === '~',
15374 close: close.charAt(close.length - 3) === '~'
15375 };
15376 }
15377
15378 function stripComment(comment) {
15379 return comment.replace(/^\{\{~?!-?-?/, '').replace(/-?-?~?\}\}$/, '');
15380 }
15381
15382 function preparePath(data, parts, loc) {
15383 loc = this.locInfo(loc);
15384
15385 var original = data ? '@' : '',
15386 dig = [],
15387 depth = 0;
15388
15389 for (var i = 0, l = parts.length; i < l; i++) {
15390 var part = parts[i].part,
15391
15392 // If we have [] syntax then we do not treat path references as operators,
15393 // i.e. foo.[this] resolves to approximately context.foo['this']
15394 isLiteral = parts[i].original !== part;
15395 original += (parts[i].separator || '') + part;
15396
15397 if (!isLiteral && (part === '..' || part === '.' || part === 'this')) {
15398 if (dig.length > 0) {
15399 throw new _exception2['default']('Invalid path: ' + original, { loc: loc });
15400 } else if (part === '..') {
15401 depth++;
15402 }
15403 } else {
15404 dig.push(part);
15405 }
15406 }
15407
15408 return {
15409 type: 'PathExpression',
15410 data: data,
15411 depth: depth,
15412 parts: dig,
15413 original: original,
15414 loc: loc
15415 };
15416 }
15417
15418 function prepareMustache(path, params, hash, open, strip, locInfo) {
15419 // Must use charAt to support IE pre-10
15420 var escapeFlag = open.charAt(3) || open.charAt(2),
15421 escaped = escapeFlag !== '{' && escapeFlag !== '&';
15422
15423 var decorator = /\*/.test(open);
15424 return {
15425 type: decorator ? 'Decorator' : 'MustacheStatement',
15426 path: path,
15427 params: params,
15428 hash: hash,
15429 escaped: escaped,
15430 strip: strip,
15431 loc: this.locInfo(locInfo)
15432 };
15433 }
15434
15435 function prepareRawBlock(openRawBlock, contents, close, locInfo) {
15436 validateClose(openRawBlock, close);
15437
15438 locInfo = this.locInfo(locInfo);
15439 var program = {
15440 type: 'Program',
15441 body: contents,
15442 strip: {},
15443 loc: locInfo
15444 };
15445
15446 return {
15447 type: 'BlockStatement',
15448 path: openRawBlock.path,
15449 params: openRawBlock.params,
15450 hash: openRawBlock.hash,
15451 program: program,
15452 openStrip: {},
15453 inverseStrip: {},
15454 closeStrip: {},
15455 loc: locInfo
15456 };
15457 }
15458
15459 function prepareBlock(openBlock, program, inverseAndProgram, close, inverted, locInfo) {
15460 if (close && close.path) {
15461 validateClose(openBlock, close);
15462 }
15463
15464 var decorator = /\*/.test(openBlock.open);
15465
15466 program.blockParams = openBlock.blockParams;
15467
15468 var inverse = undefined,
15469 inverseStrip = undefined;
15470
15471 if (inverseAndProgram) {
15472 if (decorator) {
15473 throw new _exception2['default']('Unexpected inverse block on decorator', inverseAndProgram);
15474 }
15475
15476 if (inverseAndProgram.chain) {
15477 inverseAndProgram.program.body[0].closeStrip = close.strip;
15478 }
15479
15480 inverseStrip = inverseAndProgram.strip;
15481 inverse = inverseAndProgram.program;
15482 }
15483
15484 if (inverted) {
15485 inverted = inverse;
15486 inverse = program;
15487 program = inverted;
15488 }
15489
15490 return {
15491 type: decorator ? 'DecoratorBlock' : 'BlockStatement',
15492 path: openBlock.path,
15493 params: openBlock.params,
15494 hash: openBlock.hash,
15495 program: program,
15496 inverse: inverse,
15497 openStrip: openBlock.strip,
15498 inverseStrip: inverseStrip,
15499 closeStrip: close && close.strip,
15500 loc: this.locInfo(locInfo)
15501 };
15502 }
15503
15504 function prepareProgram(statements, loc) {
15505 if (!loc && statements.length) {
15506 var firstLoc = statements[0].loc,
15507 lastLoc = statements[statements.length - 1].loc;
15508
15509 /* istanbul ignore else */
15510 if (firstLoc && lastLoc) {
15511 loc = {
15512 source: firstLoc.source,
15513 start: {
15514 line: firstLoc.start.line,
15515 column: firstLoc.start.column
15516 },
15517 end: {
15518 line: lastLoc.end.line,
15519 column: lastLoc.end.column
15520 }
15521 };
15522 }
15523 }
15524
15525 return {
15526 type: 'Program',
15527 body: statements,
15528 strip: {},
15529 loc: loc
15530 };
15531 }
15532
15533 function preparePartialBlock(open, program, close, locInfo) {
15534 validateClose(open, close);
15535
15536 return {
15537 type: 'PartialBlockStatement',
15538 name: open.path,
15539 params: open.params,
15540 hash: open.hash,
15541 program: program,
15542 openStrip: open.strip,
15543 closeStrip: close && close.strip,
15544 loc: this.locInfo(locInfo)
15545 };
15546 }
15547
15548/***/ }),
15549/* 41 */
15550/***/ (function(module, exports, __webpack_require__) {
15551
15552 /* eslint-disable new-cap */
15553
15554 'use strict';
15555
15556 var _interopRequireDefault = __webpack_require__(1)['default'];
15557
15558 exports.__esModule = true;
15559 exports.Compiler = Compiler;
15560 exports.precompile = precompile;
15561 exports.compile = compile;
15562
15563 var _exception = __webpack_require__(6);
15564
15565 var _exception2 = _interopRequireDefault(_exception);
15566
15567 var _utils = __webpack_require__(5);
15568
15569 var _ast = __webpack_require__(35);
15570
15571 var _ast2 = _interopRequireDefault(_ast);
15572
15573 var slice = [].slice;
15574
15575 function Compiler() {}
15576
15577 // the foundHelper register will disambiguate helper lookup from finding a
15578 // function in a context. This is necessary for mustache compatibility, which
15579 // requires that context functions in blocks are evaluated by blockHelperMissing,
15580 // and then proceed as if the resulting value was provided to blockHelperMissing.
15581
15582 Compiler.prototype = {
15583 compiler: Compiler,
15584
15585 equals: function equals(other) {
15586 var len = this.opcodes.length;
15587 if (other.opcodes.length !== len) {
15588 return false;
15589 }
15590
15591 for (var i = 0; i < len; i++) {
15592 var opcode = this.opcodes[i],
15593 otherOpcode = other.opcodes[i];
15594 if (opcode.opcode !== otherOpcode.opcode || !argEquals(opcode.args, otherOpcode.args)) {
15595 return false;
15596 }
15597 }
15598
15599 // We know that length is the same between the two arrays because they are directly tied
15600 // to the opcode behavior above.
15601 len = this.children.length;
15602 for (var i = 0; i < len; i++) {
15603 if (!this.children[i].equals(other.children[i])) {
15604 return false;
15605 }
15606 }
15607
15608 return true;
15609 },
15610
15611 guid: 0,
15612
15613 compile: function compile(program, options) {
15614 this.sourceNode = [];
15615 this.opcodes = [];
15616 this.children = [];
15617 this.options = options;
15618 this.stringParams = options.stringParams;
15619 this.trackIds = options.trackIds;
15620
15621 options.blockParams = options.blockParams || [];
15622
15623 // These changes will propagate to the other compiler components
15624 var knownHelpers = options.knownHelpers;
15625 options.knownHelpers = {
15626 'helperMissing': true,
15627 'blockHelperMissing': true,
15628 'each': true,
15629 'if': true,
15630 'unless': true,
15631 'with': true,
15632 'log': true,
15633 'lookup': true
15634 };
15635 if (knownHelpers) {
15636 // the next line should use "Object.keys", but the code has been like this a long time and changing it, might
15637 // cause backwards-compatibility issues... It's an old library...
15638 // eslint-disable-next-line guard-for-in
15639 for (var _name in knownHelpers) {
15640 this.options.knownHelpers[_name] = knownHelpers[_name];
15641 }
15642 }
15643
15644 return this.accept(program);
15645 },
15646
15647 compileProgram: function compileProgram(program) {
15648 var childCompiler = new this.compiler(),
15649 // eslint-disable-line new-cap
15650 result = childCompiler.compile(program, this.options),
15651 guid = this.guid++;
15652
15653 this.usePartial = this.usePartial || result.usePartial;
15654
15655 this.children[guid] = result;
15656 this.useDepths = this.useDepths || result.useDepths;
15657
15658 return guid;
15659 },
15660
15661 accept: function accept(node) {
15662 /* istanbul ignore next: Sanity code */
15663 if (!this[node.type]) {
15664 throw new _exception2['default']('Unknown type: ' + node.type, node);
15665 }
15666
15667 this.sourceNode.unshift(node);
15668 var ret = this[node.type](node);
15669 this.sourceNode.shift();
15670 return ret;
15671 },
15672
15673 Program: function Program(program) {
15674 this.options.blockParams.unshift(program.blockParams);
15675
15676 var body = program.body,
15677 bodyLength = body.length;
15678 for (var i = 0; i < bodyLength; i++) {
15679 this.accept(body[i]);
15680 }
15681
15682 this.options.blockParams.shift();
15683
15684 this.isSimple = bodyLength === 1;
15685 this.blockParams = program.blockParams ? program.blockParams.length : 0;
15686
15687 return this;
15688 },
15689
15690 BlockStatement: function BlockStatement(block) {
15691 transformLiteralToPath(block);
15692
15693 var program = block.program,
15694 inverse = block.inverse;
15695
15696 program = program && this.compileProgram(program);
15697 inverse = inverse && this.compileProgram(inverse);
15698
15699 var type = this.classifySexpr(block);
15700
15701 if (type === 'helper') {
15702 this.helperSexpr(block, program, inverse);
15703 } else if (type === 'simple') {
15704 this.simpleSexpr(block);
15705
15706 // now that the simple mustache is resolved, we need to
15707 // evaluate it by executing `blockHelperMissing`
15708 this.opcode('pushProgram', program);
15709 this.opcode('pushProgram', inverse);
15710 this.opcode('emptyHash');
15711 this.opcode('blockValue', block.path.original);
15712 } else {
15713 this.ambiguousSexpr(block, program, inverse);
15714
15715 // now that the simple mustache is resolved, we need to
15716 // evaluate it by executing `blockHelperMissing`
15717 this.opcode('pushProgram', program);
15718 this.opcode('pushProgram', inverse);
15719 this.opcode('emptyHash');
15720 this.opcode('ambiguousBlockValue');
15721 }
15722
15723 this.opcode('append');
15724 },
15725
15726 DecoratorBlock: function DecoratorBlock(decorator) {
15727 var program = decorator.program && this.compileProgram(decorator.program);
15728 var params = this.setupFullMustacheParams(decorator, program, undefined),
15729 path = decorator.path;
15730
15731 this.useDecorators = true;
15732 this.opcode('registerDecorator', params.length, path.original);
15733 },
15734
15735 PartialStatement: function PartialStatement(partial) {
15736 this.usePartial = true;
15737
15738 var program = partial.program;
15739 if (program) {
15740 program = this.compileProgram(partial.program);
15741 }
15742
15743 var params = partial.params;
15744 if (params.length > 1) {
15745 throw new _exception2['default']('Unsupported number of partial arguments: ' + params.length, partial);
15746 } else if (!params.length) {
15747 if (this.options.explicitPartialContext) {
15748 this.opcode('pushLiteral', 'undefined');
15749 } else {
15750 params.push({ type: 'PathExpression', parts: [], depth: 0 });
15751 }
15752 }
15753
15754 var partialName = partial.name.original,
15755 isDynamic = partial.name.type === 'SubExpression';
15756 if (isDynamic) {
15757 this.accept(partial.name);
15758 }
15759
15760 this.setupFullMustacheParams(partial, program, undefined, true);
15761
15762 var indent = partial.indent || '';
15763 if (this.options.preventIndent && indent) {
15764 this.opcode('appendContent', indent);
15765 indent = '';
15766 }
15767
15768 this.opcode('invokePartial', isDynamic, partialName, indent);
15769 this.opcode('append');
15770 },
15771 PartialBlockStatement: function PartialBlockStatement(partialBlock) {
15772 this.PartialStatement(partialBlock);
15773 },
15774
15775 MustacheStatement: function MustacheStatement(mustache) {
15776 this.SubExpression(mustache);
15777
15778 if (mustache.escaped && !this.options.noEscape) {
15779 this.opcode('appendEscaped');
15780 } else {
15781 this.opcode('append');
15782 }
15783 },
15784 Decorator: function Decorator(decorator) {
15785 this.DecoratorBlock(decorator);
15786 },
15787
15788 ContentStatement: function ContentStatement(content) {
15789 if (content.value) {
15790 this.opcode('appendContent', content.value);
15791 }
15792 },
15793
15794 CommentStatement: function CommentStatement() {},
15795
15796 SubExpression: function SubExpression(sexpr) {
15797 transformLiteralToPath(sexpr);
15798 var type = this.classifySexpr(sexpr);
15799
15800 if (type === 'simple') {
15801 this.simpleSexpr(sexpr);
15802 } else if (type === 'helper') {
15803 this.helperSexpr(sexpr);
15804 } else {
15805 this.ambiguousSexpr(sexpr);
15806 }
15807 },
15808 ambiguousSexpr: function ambiguousSexpr(sexpr, program, inverse) {
15809 var path = sexpr.path,
15810 name = path.parts[0],
15811 isBlock = program != null || inverse != null;
15812
15813 this.opcode('getContext', path.depth);
15814
15815 this.opcode('pushProgram', program);
15816 this.opcode('pushProgram', inverse);
15817
15818 path.strict = true;
15819 this.accept(path);
15820
15821 this.opcode('invokeAmbiguous', name, isBlock);
15822 },
15823
15824 simpleSexpr: function simpleSexpr(sexpr) {
15825 var path = sexpr.path;
15826 path.strict = true;
15827 this.accept(path);
15828 this.opcode('resolvePossibleLambda');
15829 },
15830
15831 helperSexpr: function helperSexpr(sexpr, program, inverse) {
15832 var params = this.setupFullMustacheParams(sexpr, program, inverse),
15833 path = sexpr.path,
15834 name = path.parts[0];
15835
15836 if (this.options.knownHelpers[name]) {
15837 this.opcode('invokeKnownHelper', params.length, name);
15838 } else if (this.options.knownHelpersOnly) {
15839 throw new _exception2['default']('You specified knownHelpersOnly, but used the unknown helper ' + name, sexpr);
15840 } else {
15841 path.strict = true;
15842 path.falsy = true;
15843
15844 this.accept(path);
15845 this.opcode('invokeHelper', params.length, path.original, _ast2['default'].helpers.simpleId(path));
15846 }
15847 },
15848
15849 PathExpression: function PathExpression(path) {
15850 this.addDepth(path.depth);
15851 this.opcode('getContext', path.depth);
15852
15853 var name = path.parts[0],
15854 scoped = _ast2['default'].helpers.scopedId(path),
15855 blockParamId = !path.depth && !scoped && this.blockParamIndex(name);
15856
15857 if (blockParamId) {
15858 this.opcode('lookupBlockParam', blockParamId, path.parts);
15859 } else if (!name) {
15860 // Context reference, i.e. `{{foo .}}` or `{{foo ..}}`
15861 this.opcode('pushContext');
15862 } else if (path.data) {
15863 this.options.data = true;
15864 this.opcode('lookupData', path.depth, path.parts, path.strict);
15865 } else {
15866 this.opcode('lookupOnContext', path.parts, path.falsy, path.strict, scoped);
15867 }
15868 },
15869
15870 StringLiteral: function StringLiteral(string) {
15871 this.opcode('pushString', string.value);
15872 },
15873
15874 NumberLiteral: function NumberLiteral(number) {
15875 this.opcode('pushLiteral', number.value);
15876 },
15877
15878 BooleanLiteral: function BooleanLiteral(bool) {
15879 this.opcode('pushLiteral', bool.value);
15880 },
15881
15882 UndefinedLiteral: function UndefinedLiteral() {
15883 this.opcode('pushLiteral', 'undefined');
15884 },
15885
15886 NullLiteral: function NullLiteral() {
15887 this.opcode('pushLiteral', 'null');
15888 },
15889
15890 Hash: function Hash(hash) {
15891 var pairs = hash.pairs,
15892 i = 0,
15893 l = pairs.length;
15894
15895 this.opcode('pushHash');
15896
15897 for (; i < l; i++) {
15898 this.pushParam(pairs[i].value);
15899 }
15900 while (i--) {
15901 this.opcode('assignToHash', pairs[i].key);
15902 }
15903 this.opcode('popHash');
15904 },
15905
15906 // HELPERS
15907 opcode: function opcode(name) {
15908 this.opcodes.push({ opcode: name, args: slice.call(arguments, 1), loc: this.sourceNode[0].loc });
15909 },
15910
15911 addDepth: function addDepth(depth) {
15912 if (!depth) {
15913 return;
15914 }
15915
15916 this.useDepths = true;
15917 },
15918
15919 classifySexpr: function classifySexpr(sexpr) {
15920 var isSimple = _ast2['default'].helpers.simpleId(sexpr.path);
15921
15922 var isBlockParam = isSimple && !!this.blockParamIndex(sexpr.path.parts[0]);
15923
15924 // a mustache is an eligible helper if:
15925 // * its id is simple (a single part, not `this` or `..`)
15926 var isHelper = !isBlockParam && _ast2['default'].helpers.helperExpression(sexpr);
15927
15928 // if a mustache is an eligible helper but not a definite
15929 // helper, it is ambiguous, and will be resolved in a later
15930 // pass or at runtime.
15931 var isEligible = !isBlockParam && (isHelper || isSimple);
15932
15933 // if ambiguous, we can possibly resolve the ambiguity now
15934 // An eligible helper is one that does not have a complex path, i.e. `this.foo`, `../foo` etc.
15935 if (isEligible && !isHelper) {
15936 var _name2 = sexpr.path.parts[0],
15937 options = this.options;
15938
15939 if (options.knownHelpers[_name2]) {
15940 isHelper = true;
15941 } else if (options.knownHelpersOnly) {
15942 isEligible = false;
15943 }
15944 }
15945
15946 if (isHelper) {
15947 return 'helper';
15948 } else if (isEligible) {
15949 return 'ambiguous';
15950 } else {
15951 return 'simple';
15952 }
15953 },
15954
15955 pushParams: function pushParams(params) {
15956 for (var i = 0, l = params.length; i < l; i++) {
15957 this.pushParam(params[i]);
15958 }
15959 },
15960
15961 pushParam: function pushParam(val) {
15962 var value = val.value != null ? val.value : val.original || '';
15963
15964 if (this.stringParams) {
15965 if (value.replace) {
15966 value = value.replace(/^(\.?\.\/)*/g, '').replace(/\//g, '.');
15967 }
15968
15969 if (val.depth) {
15970 this.addDepth(val.depth);
15971 }
15972 this.opcode('getContext', val.depth || 0);
15973 this.opcode('pushStringParam', value, val.type);
15974
15975 if (val.type === 'SubExpression') {
15976 // SubExpressions get evaluated and passed in
15977 // in string params mode.
15978 this.accept(val);
15979 }
15980 } else {
15981 if (this.trackIds) {
15982 var blockParamIndex = undefined;
15983 if (val.parts && !_ast2['default'].helpers.scopedId(val) && !val.depth) {
15984 blockParamIndex = this.blockParamIndex(val.parts[0]);
15985 }
15986 if (blockParamIndex) {
15987 var blockParamChild = val.parts.slice(1).join('.');
15988 this.opcode('pushId', 'BlockParam', blockParamIndex, blockParamChild);
15989 } else {
15990 value = val.original || value;
15991 if (value.replace) {
15992 value = value.replace(/^this(?:\.|$)/, '').replace(/^\.\//, '').replace(/^\.$/, '');
15993 }
15994
15995 this.opcode('pushId', val.type, value);
15996 }
15997 }
15998 this.accept(val);
15999 }
16000 },
16001
16002 setupFullMustacheParams: function setupFullMustacheParams(sexpr, program, inverse, omitEmpty) {
16003 var params = sexpr.params;
16004 this.pushParams(params);
16005
16006 this.opcode('pushProgram', program);
16007 this.opcode('pushProgram', inverse);
16008
16009 if (sexpr.hash) {
16010 this.accept(sexpr.hash);
16011 } else {
16012 this.opcode('emptyHash', omitEmpty);
16013 }
16014
16015 return params;
16016 },
16017
16018 blockParamIndex: function blockParamIndex(name) {
16019 for (var depth = 0, len = this.options.blockParams.length; depth < len; depth++) {
16020 var blockParams = this.options.blockParams[depth],
16021 param = blockParams && _utils.indexOf(blockParams, name);
16022 if (blockParams && param >= 0) {
16023 return [depth, param];
16024 }
16025 }
16026 }
16027 };
16028
16029 function precompile(input, options, env) {
16030 if (input == null || typeof input !== 'string' && input.type !== 'Program') {
16031 throw new _exception2['default']('You must pass a string or Handlebars AST to Handlebars.precompile. You passed ' + input);
16032 }
16033
16034 options = options || {};
16035 if (!('data' in options)) {
16036 options.data = true;
16037 }
16038 if (options.compat) {
16039 options.useDepths = true;
16040 }
16041
16042 var ast = env.parse(input, options),
16043 environment = new env.Compiler().compile(ast, options);
16044 return new env.JavaScriptCompiler().compile(environment, options);
16045 }
16046
16047 function compile(input, options, env) {
16048 if (options === undefined) options = {};
16049
16050 if (input == null || typeof input !== 'string' && input.type !== 'Program') {
16051 throw new _exception2['default']('You must pass a string or Handlebars AST to Handlebars.compile. You passed ' + input);
16052 }
16053
16054 options = _utils.extend({}, options);
16055 if (!('data' in options)) {
16056 options.data = true;
16057 }
16058 if (options.compat) {
16059 options.useDepths = true;
16060 }
16061
16062 var compiled = undefined;
16063
16064 function compileInput() {
16065 var ast = env.parse(input, options),
16066 environment = new env.Compiler().compile(ast, options),
16067 templateSpec = new env.JavaScriptCompiler().compile(environment, options, undefined, true);
16068 return env.template(templateSpec);
16069 }
16070
16071 // Template is only compiled on first use and cached after that point.
16072 function ret(context, execOptions) {
16073 if (!compiled) {
16074 compiled = compileInput();
16075 }
16076 return compiled.call(this, context, execOptions);
16077 }
16078 ret._setup = function (setupOptions) {
16079 if (!compiled) {
16080 compiled = compileInput();
16081 }
16082 return compiled._setup(setupOptions);
16083 };
16084 ret._child = function (i, data, blockParams, depths) {
16085 if (!compiled) {
16086 compiled = compileInput();
16087 }
16088 return compiled._child(i, data, blockParams, depths);
16089 };
16090 return ret;
16091 }
16092
16093 function argEquals(a, b) {
16094 if (a === b) {
16095 return true;
16096 }
16097
16098 if (_utils.isArray(a) && _utils.isArray(b) && a.length === b.length) {
16099 for (var i = 0; i < a.length; i++) {
16100 if (!argEquals(a[i], b[i])) {
16101 return false;
16102 }
16103 }
16104 return true;
16105 }
16106 }
16107
16108 function transformLiteralToPath(sexpr) {
16109 if (!sexpr.path.parts) {
16110 var literal = sexpr.path;
16111 // Casting to string here to make false and 0 literal values play nicely with the rest
16112 // of the system.
16113 sexpr.path = {
16114 type: 'PathExpression',
16115 data: false,
16116 depth: 0,
16117 parts: [literal.original + ''],
16118 original: literal.original + '',
16119 loc: literal.loc
16120 };
16121 }
16122 }
16123
16124/***/ }),
16125/* 42 */
16126/***/ (function(module, exports, __webpack_require__) {
16127
16128 'use strict';
16129
16130 var _interopRequireDefault = __webpack_require__(1)['default'];
16131
16132 exports.__esModule = true;
16133
16134 var _base = __webpack_require__(4);
16135
16136 var _exception = __webpack_require__(6);
16137
16138 var _exception2 = _interopRequireDefault(_exception);
16139
16140 var _utils = __webpack_require__(5);
16141
16142 var _codeGen = __webpack_require__(43);
16143
16144 var _codeGen2 = _interopRequireDefault(_codeGen);
16145
16146 function Literal(value) {
16147 this.value = value;
16148 }
16149
16150 function JavaScriptCompiler() {}
16151
16152 JavaScriptCompiler.prototype = {
16153 // PUBLIC API: You can override these methods in a subclass to provide
16154 // alternative compiled forms for name lookup and buffering semantics
16155 nameLookup: function nameLookup(parent, name /* , type*/) {
16156 if (JavaScriptCompiler.isValidJavaScriptVariableName(name)) {
16157 return [parent, '.', name];
16158 } else {
16159 return [parent, '[', JSON.stringify(name), ']'];
16160 }
16161 },
16162 depthedLookup: function depthedLookup(name) {
16163 return [this.aliasable('container.lookup'), '(depths, "', name, '")'];
16164 },
16165
16166 compilerInfo: function compilerInfo() {
16167 var revision = _base.COMPILER_REVISION,
16168 versions = _base.REVISION_CHANGES[revision];
16169 return [revision, versions];
16170 },
16171
16172 appendToBuffer: function appendToBuffer(source, location, explicit) {
16173 // Force a source as this simplifies the merge logic.
16174 if (!_utils.isArray(source)) {
16175 source = [source];
16176 }
16177 source = this.source.wrap(source, location);
16178
16179 if (this.environment.isSimple) {
16180 return ['return ', source, ';'];
16181 } else if (explicit) {
16182 // This is a case where the buffer operation occurs as a child of another
16183 // construct, generally braces. We have to explicitly output these buffer
16184 // operations to ensure that the emitted code goes in the correct location.
16185 return ['buffer += ', source, ';'];
16186 } else {
16187 source.appendToBuffer = true;
16188 return source;
16189 }
16190 },
16191
16192 initializeBuffer: function initializeBuffer() {
16193 return this.quotedString('');
16194 },
16195 // END PUBLIC API
16196
16197 compile: function compile(environment, options, context, asObject) {
16198 this.environment = environment;
16199 this.options = options;
16200 this.stringParams = this.options.stringParams;
16201 this.trackIds = this.options.trackIds;
16202 this.precompile = !asObject;
16203
16204 this.name = this.environment.name;
16205 this.isChild = !!context;
16206 this.context = context || {
16207 decorators: [],
16208 programs: [],
16209 environments: []
16210 };
16211
16212 this.preamble();
16213
16214 this.stackSlot = 0;
16215 this.stackVars = [];
16216 this.aliases = {};
16217 this.registers = { list: [] };
16218 this.hashes = [];
16219 this.compileStack = [];
16220 this.inlineStack = [];
16221 this.blockParams = [];
16222
16223 this.compileChildren(environment, options);
16224
16225 this.useDepths = this.useDepths || environment.useDepths || environment.useDecorators || this.options.compat;
16226 this.useBlockParams = this.useBlockParams || environment.useBlockParams;
16227
16228 var opcodes = environment.opcodes,
16229 opcode = undefined,
16230 firstLoc = undefined,
16231 i = undefined,
16232 l = undefined;
16233
16234 for (i = 0, l = opcodes.length; i < l; i++) {
16235 opcode = opcodes[i];
16236
16237 this.source.currentLocation = opcode.loc;
16238 firstLoc = firstLoc || opcode.loc;
16239 this[opcode.opcode].apply(this, opcode.args);
16240 }
16241
16242 // Flush any trailing content that might be pending.
16243 this.source.currentLocation = firstLoc;
16244 this.pushSource('');
16245
16246 /* istanbul ignore next */
16247 if (this.stackSlot || this.inlineStack.length || this.compileStack.length) {
16248 throw new _exception2['default']('Compile completed with content left on stack');
16249 }
16250
16251 if (!this.decorators.isEmpty()) {
16252 this.useDecorators = true;
16253
16254 this.decorators.prepend('var decorators = container.decorators;\n');
16255 this.decorators.push('return fn;');
16256
16257 if (asObject) {
16258 this.decorators = Function.apply(this, ['fn', 'props', 'container', 'depth0', 'data', 'blockParams', 'depths', this.decorators.merge()]);
16259 } else {
16260 this.decorators.prepend('function(fn, props, container, depth0, data, blockParams, depths) {\n');
16261 this.decorators.push('}\n');
16262 this.decorators = this.decorators.merge();
16263 }
16264 } else {
16265 this.decorators = undefined;
16266 }
16267
16268 var fn = this.createFunctionContext(asObject);
16269 if (!this.isChild) {
16270 var ret = {
16271 compiler: this.compilerInfo(),
16272 main: fn
16273 };
16274
16275 if (this.decorators) {
16276 ret.main_d = this.decorators; // eslint-disable-line camelcase
16277 ret.useDecorators = true;
16278 }
16279
16280 var _context = this.context;
16281 var programs = _context.programs;
16282 var decorators = _context.decorators;
16283
16284 for (i = 0, l = programs.length; i < l; i++) {
16285 if (programs[i]) {
16286 ret[i] = programs[i];
16287 if (decorators[i]) {
16288 ret[i + '_d'] = decorators[i];
16289 ret.useDecorators = true;
16290 }
16291 }
16292 }
16293
16294 if (this.environment.usePartial) {
16295 ret.usePartial = true;
16296 }
16297 if (this.options.data) {
16298 ret.useData = true;
16299 }
16300 if (this.useDepths) {
16301 ret.useDepths = true;
16302 }
16303 if (this.useBlockParams) {
16304 ret.useBlockParams = true;
16305 }
16306 if (this.options.compat) {
16307 ret.compat = true;
16308 }
16309
16310 if (!asObject) {
16311 ret.compiler = JSON.stringify(ret.compiler);
16312
16313 this.source.currentLocation = { start: { line: 1, column: 0 } };
16314 ret = this.objectLiteral(ret);
16315
16316 if (options.srcName) {
16317 ret = ret.toStringWithSourceMap({ file: options.destName });
16318 ret.map = ret.map && ret.map.toString();
16319 } else {
16320 ret = ret.toString();
16321 }
16322 } else {
16323 ret.compilerOptions = this.options;
16324 }
16325
16326 return ret;
16327 } else {
16328 return fn;
16329 }
16330 },
16331
16332 preamble: function preamble() {
16333 // track the last context pushed into place to allow skipping the
16334 // getContext opcode when it would be a noop
16335 this.lastContext = 0;
16336 this.source = new _codeGen2['default'](this.options.srcName);
16337 this.decorators = new _codeGen2['default'](this.options.srcName);
16338 },
16339
16340 createFunctionContext: function createFunctionContext(asObject) {
16341 var varDeclarations = '';
16342
16343 var locals = this.stackVars.concat(this.registers.list);
16344 if (locals.length > 0) {
16345 varDeclarations += ', ' + locals.join(', ');
16346 }
16347
16348 // Generate minimizer alias mappings
16349 //
16350 // When using true SourceNodes, this will update all references to the given alias
16351 // as the source nodes are reused in situ. For the non-source node compilation mode,
16352 // aliases will not be used, but this case is already being run on the client and
16353 // we aren't concern about minimizing the template size.
16354 var aliasCount = 0;
16355 for (var alias in this.aliases) {
16356 // eslint-disable-line guard-for-in
16357 var node = this.aliases[alias];
16358
16359 if (this.aliases.hasOwnProperty(alias) && node.children && node.referenceCount > 1) {
16360 varDeclarations += ', alias' + ++aliasCount + '=' + alias;
16361 node.children[0] = 'alias' + aliasCount;
16362 }
16363 }
16364
16365 var params = ['container', 'depth0', 'helpers', 'partials', 'data'];
16366
16367 if (this.useBlockParams || this.useDepths) {
16368 params.push('blockParams');
16369 }
16370 if (this.useDepths) {
16371 params.push('depths');
16372 }
16373
16374 // Perform a second pass over the output to merge content when possible
16375 var source = this.mergeSource(varDeclarations);
16376
16377 if (asObject) {
16378 params.push(source);
16379
16380 return Function.apply(this, params);
16381 } else {
16382 return this.source.wrap(['function(', params.join(','), ') {\n ', source, '}']);
16383 }
16384 },
16385 mergeSource: function mergeSource(varDeclarations) {
16386 var isSimple = this.environment.isSimple,
16387 appendOnly = !this.forceBuffer,
16388 appendFirst = undefined,
16389 sourceSeen = undefined,
16390 bufferStart = undefined,
16391 bufferEnd = undefined;
16392 this.source.each(function (line) {
16393 if (line.appendToBuffer) {
16394 if (bufferStart) {
16395 line.prepend(' + ');
16396 } else {
16397 bufferStart = line;
16398 }
16399 bufferEnd = line;
16400 } else {
16401 if (bufferStart) {
16402 if (!sourceSeen) {
16403 appendFirst = true;
16404 } else {
16405 bufferStart.prepend('buffer += ');
16406 }
16407 bufferEnd.add(';');
16408 bufferStart = bufferEnd = undefined;
16409 }
16410
16411 sourceSeen = true;
16412 if (!isSimple) {
16413 appendOnly = false;
16414 }
16415 }
16416 });
16417
16418 if (appendOnly) {
16419 if (bufferStart) {
16420 bufferStart.prepend('return ');
16421 bufferEnd.add(';');
16422 } else if (!sourceSeen) {
16423 this.source.push('return "";');
16424 }
16425 } else {
16426 varDeclarations += ', buffer = ' + (appendFirst ? '' : this.initializeBuffer());
16427
16428 if (bufferStart) {
16429 bufferStart.prepend('return buffer + ');
16430 bufferEnd.add(';');
16431 } else {
16432 this.source.push('return buffer;');
16433 }
16434 }
16435
16436 if (varDeclarations) {
16437 this.source.prepend('var ' + varDeclarations.substring(2) + (appendFirst ? '' : ';\n'));
16438 }
16439
16440 return this.source.merge();
16441 },
16442
16443 // [blockValue]
16444 //
16445 // On stack, before: hash, inverse, program, value
16446 // On stack, after: return value of blockHelperMissing
16447 //
16448 // The purpose of this opcode is to take a block of the form
16449 // `{{#this.foo}}...{{/this.foo}}`, resolve the value of `foo`, and
16450 // replace it on the stack with the result of properly
16451 // invoking blockHelperMissing.
16452 blockValue: function blockValue(name) {
16453 var blockHelperMissing = this.aliasable('helpers.blockHelperMissing'),
16454 params = [this.contextName(0)];
16455 this.setupHelperArgs(name, 0, params);
16456
16457 var blockName = this.popStack();
16458 params.splice(1, 0, blockName);
16459
16460 this.push(this.source.functionCall(blockHelperMissing, 'call', params));
16461 },
16462
16463 // [ambiguousBlockValue]
16464 //
16465 // On stack, before: hash, inverse, program, value
16466 // Compiler value, before: lastHelper=value of last found helper, if any
16467 // On stack, after, if no lastHelper: same as [blockValue]
16468 // On stack, after, if lastHelper: value
16469 ambiguousBlockValue: function ambiguousBlockValue() {
16470 // We're being a bit cheeky and reusing the options value from the prior exec
16471 var blockHelperMissing = this.aliasable('helpers.blockHelperMissing'),
16472 params = [this.contextName(0)];
16473 this.setupHelperArgs('', 0, params, true);
16474
16475 this.flushInline();
16476
16477 var current = this.topStack();
16478 params.splice(1, 0, current);
16479
16480 this.pushSource(['if (!', this.lastHelper, ') { ', current, ' = ', this.source.functionCall(blockHelperMissing, 'call', params), '}']);
16481 },
16482
16483 // [appendContent]
16484 //
16485 // On stack, before: ...
16486 // On stack, after: ...
16487 //
16488 // Appends the string value of `content` to the current buffer
16489 appendContent: function appendContent(content) {
16490 if (this.pendingContent) {
16491 content = this.pendingContent + content;
16492 } else {
16493 this.pendingLocation = this.source.currentLocation;
16494 }
16495
16496 this.pendingContent = content;
16497 },
16498
16499 // [append]
16500 //
16501 // On stack, before: value, ...
16502 // On stack, after: ...
16503 //
16504 // Coerces `value` to a String and appends it to the current buffer.
16505 //
16506 // If `value` is truthy, or 0, it is coerced into a string and appended
16507 // Otherwise, the empty string is appended
16508 append: function append() {
16509 if (this.isInline()) {
16510 this.replaceStack(function (current) {
16511 return [' != null ? ', current, ' : ""'];
16512 });
16513
16514 this.pushSource(this.appendToBuffer(this.popStack()));
16515 } else {
16516 var local = this.popStack();
16517 this.pushSource(['if (', local, ' != null) { ', this.appendToBuffer(local, undefined, true), ' }']);
16518 if (this.environment.isSimple) {
16519 this.pushSource(['else { ', this.appendToBuffer("''", undefined, true), ' }']);
16520 }
16521 }
16522 },
16523
16524 // [appendEscaped]
16525 //
16526 // On stack, before: value, ...
16527 // On stack, after: ...
16528 //
16529 // Escape `value` and append it to the buffer
16530 appendEscaped: function appendEscaped() {
16531 this.pushSource(this.appendToBuffer([this.aliasable('container.escapeExpression'), '(', this.popStack(), ')']));
16532 },
16533
16534 // [getContext]
16535 //
16536 // On stack, before: ...
16537 // On stack, after: ...
16538 // Compiler value, after: lastContext=depth
16539 //
16540 // Set the value of the `lastContext` compiler value to the depth
16541 getContext: function getContext(depth) {
16542 this.lastContext = depth;
16543 },
16544
16545 // [pushContext]
16546 //
16547 // On stack, before: ...
16548 // On stack, after: currentContext, ...
16549 //
16550 // Pushes the value of the current context onto the stack.
16551 pushContext: function pushContext() {
16552 this.pushStackLiteral(this.contextName(this.lastContext));
16553 },
16554
16555 // [lookupOnContext]
16556 //
16557 // On stack, before: ...
16558 // On stack, after: currentContext[name], ...
16559 //
16560 // Looks up the value of `name` on the current context and pushes
16561 // it onto the stack.
16562 lookupOnContext: function lookupOnContext(parts, falsy, strict, scoped) {
16563 var i = 0;
16564
16565 if (!scoped && this.options.compat && !this.lastContext) {
16566 // The depthed query is expected to handle the undefined logic for the root level that
16567 // is implemented below, so we evaluate that directly in compat mode
16568 this.push(this.depthedLookup(parts[i++]));
16569 } else {
16570 this.pushContext();
16571 }
16572
16573 this.resolvePath('context', parts, i, falsy, strict);
16574 },
16575
16576 // [lookupBlockParam]
16577 //
16578 // On stack, before: ...
16579 // On stack, after: blockParam[name], ...
16580 //
16581 // Looks up the value of `parts` on the given block param and pushes
16582 // it onto the stack.
16583 lookupBlockParam: function lookupBlockParam(blockParamId, parts) {
16584 this.useBlockParams = true;
16585
16586 this.push(['blockParams[', blockParamId[0], '][', blockParamId[1], ']']);
16587 this.resolvePath('context', parts, 1);
16588 },
16589
16590 // [lookupData]
16591 //
16592 // On stack, before: ...
16593 // On stack, after: data, ...
16594 //
16595 // Push the data lookup operator
16596 lookupData: function lookupData(depth, parts, strict) {
16597 if (!depth) {
16598 this.pushStackLiteral('data');
16599 } else {
16600 this.pushStackLiteral('container.data(data, ' + depth + ')');
16601 }
16602
16603 this.resolvePath('data', parts, 0, true, strict);
16604 },
16605
16606 resolvePath: function resolvePath(type, parts, i, falsy, strict) {
16607 // istanbul ignore next
16608
16609 var _this = this;
16610
16611 if (this.options.strict || this.options.assumeObjects) {
16612 this.push(strictLookup(this.options.strict && strict, this, parts, type));
16613 return;
16614 }
16615
16616 var len = parts.length;
16617 for (; i < len; i++) {
16618 /* eslint-disable no-loop-func */
16619 this.replaceStack(function (current) {
16620 var lookup = _this.nameLookup(current, parts[i], type);
16621 // We want to ensure that zero and false are handled properly if the context (falsy flag)
16622 // needs to have the special handling for these values.
16623 if (!falsy) {
16624 return [' != null ? ', lookup, ' : ', current];
16625 } else {
16626 // Otherwise we can use generic falsy handling
16627 return [' && ', lookup];
16628 }
16629 });
16630 /* eslint-enable no-loop-func */
16631 }
16632 },
16633
16634 // [resolvePossibleLambda]
16635 //
16636 // On stack, before: value, ...
16637 // On stack, after: resolved value, ...
16638 //
16639 // If the `value` is a lambda, replace it on the stack by
16640 // the return value of the lambda
16641 resolvePossibleLambda: function resolvePossibleLambda() {
16642 this.push([this.aliasable('container.lambda'), '(', this.popStack(), ', ', this.contextName(0), ')']);
16643 },
16644
16645 // [pushStringParam]
16646 //
16647 // On stack, before: ...
16648 // On stack, after: string, currentContext, ...
16649 //
16650 // This opcode is designed for use in string mode, which
16651 // provides the string value of a parameter along with its
16652 // depth rather than resolving it immediately.
16653 pushStringParam: function pushStringParam(string, type) {
16654 this.pushContext();
16655 this.pushString(type);
16656
16657 // If it's a subexpression, the string result
16658 // will be pushed after this opcode.
16659 if (type !== 'SubExpression') {
16660 if (typeof string === 'string') {
16661 this.pushString(string);
16662 } else {
16663 this.pushStackLiteral(string);
16664 }
16665 }
16666 },
16667
16668 emptyHash: function emptyHash(omitEmpty) {
16669 if (this.trackIds) {
16670 this.push('{}'); // hashIds
16671 }
16672 if (this.stringParams) {
16673 this.push('{}'); // hashContexts
16674 this.push('{}'); // hashTypes
16675 }
16676 this.pushStackLiteral(omitEmpty ? 'undefined' : '{}');
16677 },
16678 pushHash: function pushHash() {
16679 if (this.hash) {
16680 this.hashes.push(this.hash);
16681 }
16682 this.hash = { values: [], types: [], contexts: [], ids: [] };
16683 },
16684 popHash: function popHash() {
16685 var hash = this.hash;
16686 this.hash = this.hashes.pop();
16687
16688 if (this.trackIds) {
16689 this.push(this.objectLiteral(hash.ids));
16690 }
16691 if (this.stringParams) {
16692 this.push(this.objectLiteral(hash.contexts));
16693 this.push(this.objectLiteral(hash.types));
16694 }
16695
16696 this.push(this.objectLiteral(hash.values));
16697 },
16698
16699 // [pushString]
16700 //
16701 // On stack, before: ...
16702 // On stack, after: quotedString(string), ...
16703 //
16704 // Push a quoted version of `string` onto the stack
16705 pushString: function pushString(string) {
16706 this.pushStackLiteral(this.quotedString(string));
16707 },
16708
16709 // [pushLiteral]
16710 //
16711 // On stack, before: ...
16712 // On stack, after: value, ...
16713 //
16714 // Pushes a value onto the stack. This operation prevents
16715 // the compiler from creating a temporary variable to hold
16716 // it.
16717 pushLiteral: function pushLiteral(value) {
16718 this.pushStackLiteral(value);
16719 },
16720
16721 // [pushProgram]
16722 //
16723 // On stack, before: ...
16724 // On stack, after: program(guid), ...
16725 //
16726 // Push a program expression onto the stack. This takes
16727 // a compile-time guid and converts it into a runtime-accessible
16728 // expression.
16729 pushProgram: function pushProgram(guid) {
16730 if (guid != null) {
16731 this.pushStackLiteral(this.programExpression(guid));
16732 } else {
16733 this.pushStackLiteral(null);
16734 }
16735 },
16736
16737 // [registerDecorator]
16738 //
16739 // On stack, before: hash, program, params..., ...
16740 // On stack, after: ...
16741 //
16742 // Pops off the decorator's parameters, invokes the decorator,
16743 // and inserts the decorator into the decorators list.
16744 registerDecorator: function registerDecorator(paramSize, name) {
16745 var foundDecorator = this.nameLookup('decorators', name, 'decorator'),
16746 options = this.setupHelperArgs(name, paramSize);
16747
16748 this.decorators.push(['fn = ', this.decorators.functionCall(foundDecorator, '', ['fn', 'props', 'container', options]), ' || fn;']);
16749 },
16750
16751 // [invokeHelper]
16752 //
16753 // On stack, before: hash, inverse, program, params..., ...
16754 // On stack, after: result of helper invocation
16755 //
16756 // Pops off the helper's parameters, invokes the helper,
16757 // and pushes the helper's return value onto the stack.
16758 //
16759 // If the helper is not found, `helperMissing` is called.
16760 invokeHelper: function invokeHelper(paramSize, name, isSimple) {
16761 var nonHelper = this.popStack(),
16762 helper = this.setupHelper(paramSize, name),
16763 simple = isSimple ? [helper.name, ' || '] : '';
16764
16765 var lookup = ['('].concat(simple, nonHelper);
16766 if (!this.options.strict) {
16767 lookup.push(' || ', this.aliasable('helpers.helperMissing'));
16768 }
16769 lookup.push(')');
16770
16771 this.push(this.source.functionCall(lookup, 'call', helper.callParams));
16772 },
16773
16774 // [invokeKnownHelper]
16775 //
16776 // On stack, before: hash, inverse, program, params..., ...
16777 // On stack, after: result of helper invocation
16778 //
16779 // This operation is used when the helper is known to exist,
16780 // so a `helperMissing` fallback is not required.
16781 invokeKnownHelper: function invokeKnownHelper(paramSize, name) {
16782 var helper = this.setupHelper(paramSize, name);
16783 this.push(this.source.functionCall(helper.name, 'call', helper.callParams));
16784 },
16785
16786 // [invokeAmbiguous]
16787 //
16788 // On stack, before: hash, inverse, program, params..., ...
16789 // On stack, after: result of disambiguation
16790 //
16791 // This operation is used when an expression like `{{foo}}`
16792 // is provided, but we don't know at compile-time whether it
16793 // is a helper or a path.
16794 //
16795 // This operation emits more code than the other options,
16796 // and can be avoided by passing the `knownHelpers` and
16797 // `knownHelpersOnly` flags at compile-time.
16798 invokeAmbiguous: function invokeAmbiguous(name, helperCall) {
16799 this.useRegister('helper');
16800
16801 var nonHelper = this.popStack();
16802
16803 this.emptyHash();
16804 var helper = this.setupHelper(0, name, helperCall);
16805
16806 var helperName = this.lastHelper = this.nameLookup('helpers', name, 'helper');
16807
16808 var lookup = ['(', '(helper = ', helperName, ' || ', nonHelper, ')'];
16809 if (!this.options.strict) {
16810 lookup[0] = '(helper = ';
16811 lookup.push(' != null ? helper : ', this.aliasable('helpers.helperMissing'));
16812 }
16813
16814 this.push(['(', lookup, helper.paramsInit ? ['),(', helper.paramsInit] : [], '),', '(typeof helper === ', this.aliasable('"function"'), ' ? ', this.source.functionCall('helper', 'call', helper.callParams), ' : helper))']);
16815 },
16816
16817 // [invokePartial]
16818 //
16819 // On stack, before: context, ...
16820 // On stack after: result of partial invocation
16821 //
16822 // This operation pops off a context, invokes a partial with that context,
16823 // and pushes the result of the invocation back.
16824 invokePartial: function invokePartial(isDynamic, name, indent) {
16825 var params = [],
16826 options = this.setupParams(name, 1, params);
16827
16828 if (isDynamic) {
16829 name = this.popStack();
16830 delete options.name;
16831 }
16832
16833 if (indent) {
16834 options.indent = JSON.stringify(indent);
16835 }
16836 options.helpers = 'helpers';
16837 options.partials = 'partials';
16838 options.decorators = 'container.decorators';
16839
16840 if (!isDynamic) {
16841 params.unshift(this.nameLookup('partials', name, 'partial'));
16842 } else {
16843 params.unshift(name);
16844 }
16845
16846 if (this.options.compat) {
16847 options.depths = 'depths';
16848 }
16849 options = this.objectLiteral(options);
16850 params.push(options);
16851
16852 this.push(this.source.functionCall('container.invokePartial', '', params));
16853 },
16854
16855 // [assignToHash]
16856 //
16857 // On stack, before: value, ..., hash, ...
16858 // On stack, after: ..., hash, ...
16859 //
16860 // Pops a value off the stack and assigns it to the current hash
16861 assignToHash: function assignToHash(key) {
16862 var value = this.popStack(),
16863 context = undefined,
16864 type = undefined,
16865 id = undefined;
16866
16867 if (this.trackIds) {
16868 id = this.popStack();
16869 }
16870 if (this.stringParams) {
16871 type = this.popStack();
16872 context = this.popStack();
16873 }
16874
16875 var hash = this.hash;
16876 if (context) {
16877 hash.contexts[key] = context;
16878 }
16879 if (type) {
16880 hash.types[key] = type;
16881 }
16882 if (id) {
16883 hash.ids[key] = id;
16884 }
16885 hash.values[key] = value;
16886 },
16887
16888 pushId: function pushId(type, name, child) {
16889 if (type === 'BlockParam') {
16890 this.pushStackLiteral('blockParams[' + name[0] + '].path[' + name[1] + ']' + (child ? ' + ' + JSON.stringify('.' + child) : ''));
16891 } else if (type === 'PathExpression') {
16892 this.pushString(name);
16893 } else if (type === 'SubExpression') {
16894 this.pushStackLiteral('true');
16895 } else {
16896 this.pushStackLiteral('null');
16897 }
16898 },
16899
16900 // HELPERS
16901
16902 compiler: JavaScriptCompiler,
16903
16904 compileChildren: function compileChildren(environment, options) {
16905 var children = environment.children,
16906 child = undefined,
16907 compiler = undefined;
16908
16909 for (var i = 0, l = children.length; i < l; i++) {
16910 child = children[i];
16911 compiler = new this.compiler(); // eslint-disable-line new-cap
16912
16913 var existing = this.matchExistingProgram(child);
16914
16915 if (existing == null) {
16916 this.context.programs.push(''); // Placeholder to prevent name conflicts for nested children
16917 var index = this.context.programs.length;
16918 child.index = index;
16919 child.name = 'program' + index;
16920 this.context.programs[index] = compiler.compile(child, options, this.context, !this.precompile);
16921 this.context.decorators[index] = compiler.decorators;
16922 this.context.environments[index] = child;
16923
16924 this.useDepths = this.useDepths || compiler.useDepths;
16925 this.useBlockParams = this.useBlockParams || compiler.useBlockParams;
16926 child.useDepths = this.useDepths;
16927 child.useBlockParams = this.useBlockParams;
16928 } else {
16929 child.index = existing.index;
16930 child.name = 'program' + existing.index;
16931
16932 this.useDepths = this.useDepths || existing.useDepths;
16933 this.useBlockParams = this.useBlockParams || existing.useBlockParams;
16934 }
16935 }
16936 },
16937 matchExistingProgram: function matchExistingProgram(child) {
16938 for (var i = 0, len = this.context.environments.length; i < len; i++) {
16939 var environment = this.context.environments[i];
16940 if (environment && environment.equals(child)) {
16941 return environment;
16942 }
16943 }
16944 },
16945
16946 programExpression: function programExpression(guid) {
16947 var child = this.environment.children[guid],
16948 programParams = [child.index, 'data', child.blockParams];
16949
16950 if (this.useBlockParams || this.useDepths) {
16951 programParams.push('blockParams');
16952 }
16953 if (this.useDepths) {
16954 programParams.push('depths');
16955 }
16956
16957 return 'container.program(' + programParams.join(', ') + ')';
16958 },
16959
16960 useRegister: function useRegister(name) {
16961 if (!this.registers[name]) {
16962 this.registers[name] = true;
16963 this.registers.list.push(name);
16964 }
16965 },
16966
16967 push: function push(expr) {
16968 if (!(expr instanceof Literal)) {
16969 expr = this.source.wrap(expr);
16970 }
16971
16972 this.inlineStack.push(expr);
16973 return expr;
16974 },
16975
16976 pushStackLiteral: function pushStackLiteral(item) {
16977 this.push(new Literal(item));
16978 },
16979
16980 pushSource: function pushSource(source) {
16981 if (this.pendingContent) {
16982 this.source.push(this.appendToBuffer(this.source.quotedString(this.pendingContent), this.pendingLocation));
16983 this.pendingContent = undefined;
16984 }
16985
16986 if (source) {
16987 this.source.push(source);
16988 }
16989 },
16990
16991 replaceStack: function replaceStack(callback) {
16992 var prefix = ['('],
16993 stack = undefined,
16994 createdStack = undefined,
16995 usedLiteral = undefined;
16996
16997 /* istanbul ignore next */
16998 if (!this.isInline()) {
16999 throw new _exception2['default']('replaceStack on non-inline');
17000 }
17001
17002 // We want to merge the inline statement into the replacement statement via ','
17003 var top = this.popStack(true);
17004
17005 if (top instanceof Literal) {
17006 // Literals do not need to be inlined
17007 stack = [top.value];
17008 prefix = ['(', stack];
17009 usedLiteral = true;
17010 } else {
17011 // Get or create the current stack name for use by the inline
17012 createdStack = true;
17013 var _name = this.incrStack();
17014
17015 prefix = ['((', this.push(_name), ' = ', top, ')'];
17016 stack = this.topStack();
17017 }
17018
17019 var item = callback.call(this, stack);
17020
17021 if (!usedLiteral) {
17022 this.popStack();
17023 }
17024 if (createdStack) {
17025 this.stackSlot--;
17026 }
17027 this.push(prefix.concat(item, ')'));
17028 },
17029
17030 incrStack: function incrStack() {
17031 this.stackSlot++;
17032 if (this.stackSlot > this.stackVars.length) {
17033 this.stackVars.push('stack' + this.stackSlot);
17034 }
17035 return this.topStackName();
17036 },
17037 topStackName: function topStackName() {
17038 return 'stack' + this.stackSlot;
17039 },
17040 flushInline: function flushInline() {
17041 var inlineStack = this.inlineStack;
17042 this.inlineStack = [];
17043 for (var i = 0, len = inlineStack.length; i < len; i++) {
17044 var entry = inlineStack[i];
17045 /* istanbul ignore if */
17046 if (entry instanceof Literal) {
17047 this.compileStack.push(entry);
17048 } else {
17049 var stack = this.incrStack();
17050 this.pushSource([stack, ' = ', entry, ';']);
17051 this.compileStack.push(stack);
17052 }
17053 }
17054 },
17055 isInline: function isInline() {
17056 return this.inlineStack.length;
17057 },
17058
17059 popStack: function popStack(wrapped) {
17060 var inline = this.isInline(),
17061 item = (inline ? this.inlineStack : this.compileStack).pop();
17062
17063 if (!wrapped && item instanceof Literal) {
17064 return item.value;
17065 } else {
17066 if (!inline) {
17067 /* istanbul ignore next */
17068 if (!this.stackSlot) {
17069 throw new _exception2['default']('Invalid stack pop');
17070 }
17071 this.stackSlot--;
17072 }
17073 return item;
17074 }
17075 },
17076
17077 topStack: function topStack() {
17078 var stack = this.isInline() ? this.inlineStack : this.compileStack,
17079 item = stack[stack.length - 1];
17080
17081 /* istanbul ignore if */
17082 if (item instanceof Literal) {
17083 return item.value;
17084 } else {
17085 return item;
17086 }
17087 },
17088
17089 contextName: function contextName(context) {
17090 if (this.useDepths && context) {
17091 return 'depths[' + context + ']';
17092 } else {
17093 return 'depth' + context;
17094 }
17095 },
17096
17097 quotedString: function quotedString(str) {
17098 return this.source.quotedString(str);
17099 },
17100
17101 objectLiteral: function objectLiteral(obj) {
17102 return this.source.objectLiteral(obj);
17103 },
17104
17105 aliasable: function aliasable(name) {
17106 var ret = this.aliases[name];
17107 if (ret) {
17108 ret.referenceCount++;
17109 return ret;
17110 }
17111
17112 ret = this.aliases[name] = this.source.wrap(name);
17113 ret.aliasable = true;
17114 ret.referenceCount = 1;
17115
17116 return ret;
17117 },
17118
17119 setupHelper: function setupHelper(paramSize, name, blockHelper) {
17120 var params = [],
17121 paramsInit = this.setupHelperArgs(name, paramSize, params, blockHelper);
17122 var foundHelper = this.nameLookup('helpers', name, 'helper'),
17123 callContext = this.aliasable(this.contextName(0) + ' != null ? ' + this.contextName(0) + ' : (container.nullContext || {})');
17124
17125 return {
17126 params: params,
17127 paramsInit: paramsInit,
17128 name: foundHelper,
17129 callParams: [callContext].concat(params)
17130 };
17131 },
17132
17133 setupParams: function setupParams(helper, paramSize, params) {
17134 var options = {},
17135 contexts = [],
17136 types = [],
17137 ids = [],
17138 objectArgs = !params,
17139 param = undefined;
17140
17141 if (objectArgs) {
17142 params = [];
17143 }
17144
17145 options.name = this.quotedString(helper);
17146 options.hash = this.popStack();
17147
17148 if (this.trackIds) {
17149 options.hashIds = this.popStack();
17150 }
17151 if (this.stringParams) {
17152 options.hashTypes = this.popStack();
17153 options.hashContexts = this.popStack();
17154 }
17155
17156 var inverse = this.popStack(),
17157 program = this.popStack();
17158
17159 // Avoid setting fn and inverse if neither are set. This allows
17160 // helpers to do a check for `if (options.fn)`
17161 if (program || inverse) {
17162 options.fn = program || 'container.noop';
17163 options.inverse = inverse || 'container.noop';
17164 }
17165
17166 // The parameters go on to the stack in order (making sure that they are evaluated in order)
17167 // so we need to pop them off the stack in reverse order
17168 var i = paramSize;
17169 while (i--) {
17170 param = this.popStack();
17171 params[i] = param;
17172
17173 if (this.trackIds) {
17174 ids[i] = this.popStack();
17175 }
17176 if (this.stringParams) {
17177 types[i] = this.popStack();
17178 contexts[i] = this.popStack();
17179 }
17180 }
17181
17182 if (objectArgs) {
17183 options.args = this.source.generateArray(params);
17184 }
17185
17186 if (this.trackIds) {
17187 options.ids = this.source.generateArray(ids);
17188 }
17189 if (this.stringParams) {
17190 options.types = this.source.generateArray(types);
17191 options.contexts = this.source.generateArray(contexts);
17192 }
17193
17194 if (this.options.data) {
17195 options.data = 'data';
17196 }
17197 if (this.useBlockParams) {
17198 options.blockParams = 'blockParams';
17199 }
17200 return options;
17201 },
17202
17203 setupHelperArgs: function setupHelperArgs(helper, paramSize, params, useRegister) {
17204 var options = this.setupParams(helper, paramSize, params);
17205 options = this.objectLiteral(options);
17206 if (useRegister) {
17207 this.useRegister('options');
17208 params.push('options');
17209 return ['options=', options];
17210 } else if (params) {
17211 params.push(options);
17212 return '';
17213 } else {
17214 return options;
17215 }
17216 }
17217 };
17218
17219 (function () {
17220 var reservedWords = ('break else new var' + ' case finally return void' + ' catch for switch while' + ' continue function this with' + ' default if throw' + ' delete in try' + ' do instanceof typeof' + ' abstract enum int short' + ' boolean export interface static' + ' byte extends long super' + ' char final native synchronized' + ' class float package throws' + ' const goto private transient' + ' debugger implements protected volatile' + ' double import public let yield await' + ' null true false').split(' ');
17221
17222 var compilerWords = JavaScriptCompiler.RESERVED_WORDS = {};
17223
17224 for (var i = 0, l = reservedWords.length; i < l; i++) {
17225 compilerWords[reservedWords[i]] = true;
17226 }
17227 })();
17228
17229 JavaScriptCompiler.isValidJavaScriptVariableName = function (name) {
17230 return !JavaScriptCompiler.RESERVED_WORDS[name] && /^[a-zA-Z_$][0-9a-zA-Z_$]*$/.test(name);
17231 };
17232
17233 function strictLookup(requireTerminal, compiler, parts, type) {
17234 var stack = compiler.popStack(),
17235 i = 0,
17236 len = parts.length;
17237 if (requireTerminal) {
17238 len--;
17239 }
17240
17241 for (; i < len; i++) {
17242 stack = compiler.nameLookup(stack, parts[i], type);
17243 }
17244
17245 if (requireTerminal) {
17246 return [compiler.aliasable('container.strict'), '(', stack, ', ', compiler.quotedString(parts[i]), ')'];
17247 } else {
17248 return stack;
17249 }
17250 }
17251
17252 exports['default'] = JavaScriptCompiler;
17253 module.exports = exports['default'];
17254
17255/***/ }),
17256/* 43 */
17257/***/ (function(module, exports, __webpack_require__) {
17258
17259 /* global define */
17260 'use strict';
17261
17262 exports.__esModule = true;
17263
17264 var _utils = __webpack_require__(5);
17265
17266 var SourceNode = undefined;
17267
17268 try {
17269 /* istanbul ignore next */
17270 if (false) { var SourceMap; }
17271 } catch (err) {}
17272 /* NOP */
17273
17274 /* istanbul ignore if: tested but not covered in istanbul due to dist build */
17275 if (!SourceNode) {
17276 SourceNode = function (line, column, srcFile, chunks) {
17277 this.src = '';
17278 if (chunks) {
17279 this.add(chunks);
17280 }
17281 };
17282 /* istanbul ignore next */
17283 SourceNode.prototype = {
17284 add: function add(chunks) {
17285 if (_utils.isArray(chunks)) {
17286 chunks = chunks.join('');
17287 }
17288 this.src += chunks;
17289 },
17290 prepend: function prepend(chunks) {
17291 if (_utils.isArray(chunks)) {
17292 chunks = chunks.join('');
17293 }
17294 this.src = chunks + this.src;
17295 },
17296 toStringWithSourceMap: function toStringWithSourceMap() {
17297 return { code: this.toString() };
17298 },
17299 toString: function toString() {
17300 return this.src;
17301 }
17302 };
17303 }
17304
17305 function castChunk(chunk, codeGen, loc) {
17306 if (_utils.isArray(chunk)) {
17307 var ret = [];
17308
17309 for (var i = 0, len = chunk.length; i < len; i++) {
17310 ret.push(codeGen.wrap(chunk[i], loc));
17311 }
17312 return ret;
17313 } else if (typeof chunk === 'boolean' || typeof chunk === 'number') {
17314 // Handle primitives that the SourceNode will throw up on
17315 return chunk + '';
17316 }
17317 return chunk;
17318 }
17319
17320 function CodeGen(srcFile) {
17321 this.srcFile = srcFile;
17322 this.source = [];
17323 }
17324
17325 CodeGen.prototype = {
17326 isEmpty: function isEmpty() {
17327 return !this.source.length;
17328 },
17329 prepend: function prepend(source, loc) {
17330 this.source.unshift(this.wrap(source, loc));
17331 },
17332 push: function push(source, loc) {
17333 this.source.push(this.wrap(source, loc));
17334 },
17335
17336 merge: function merge() {
17337 var source = this.empty();
17338 this.each(function (line) {
17339 source.add([' ', line, '\n']);
17340 });
17341 return source;
17342 },
17343
17344 each: function each(iter) {
17345 for (var i = 0, len = this.source.length; i < len; i++) {
17346 iter(this.source[i]);
17347 }
17348 },
17349
17350 empty: function empty() {
17351 var loc = this.currentLocation || { start: {} };
17352 return new SourceNode(loc.start.line, loc.start.column, this.srcFile);
17353 },
17354 wrap: function wrap(chunk) {
17355 var loc = arguments.length <= 1 || arguments[1] === undefined ? this.currentLocation || { start: {} } : arguments[1];
17356
17357 if (chunk instanceof SourceNode) {
17358 return chunk;
17359 }
17360
17361 chunk = castChunk(chunk, this, loc);
17362
17363 return new SourceNode(loc.start.line, loc.start.column, this.srcFile, chunk);
17364 },
17365
17366 functionCall: function functionCall(fn, type, params) {
17367 params = this.generateList(params);
17368 return this.wrap([fn, type ? '.' + type + '(' : '(', params, ')']);
17369 },
17370
17371 quotedString: function quotedString(str) {
17372 return '"' + (str + '').replace(/\\/g, '\\\\').replace(/"/g, '\\"').replace(/\n/g, '\\n').replace(/\r/g, '\\r').replace(/\u2028/g, '\\u2028') // Per Ecma-262 7.3 + 7.8.4
17373 .replace(/\u2029/g, '\\u2029') + '"';
17374 },
17375
17376 objectLiteral: function objectLiteral(obj) {
17377 var pairs = [];
17378
17379 for (var key in obj) {
17380 if (obj.hasOwnProperty(key)) {
17381 var value = castChunk(obj[key], this);
17382 if (value !== 'undefined') {
17383 pairs.push([this.quotedString(key), ':', value]);
17384 }
17385 }
17386 }
17387
17388 var ret = this.generateList(pairs);
17389 ret.prepend('{');
17390 ret.add('}');
17391 return ret;
17392 },
17393
17394 generateList: function generateList(entries) {
17395 var ret = this.empty();
17396
17397 for (var i = 0, len = entries.length; i < len; i++) {
17398 if (i) {
17399 ret.add(',');
17400 }
17401
17402 ret.add(castChunk(entries[i], this));
17403 }
17404
17405 return ret;
17406 },
17407
17408 generateArray: function generateArray(entries) {
17409 var ret = this.generateList(entries);
17410 ret.prepend('[');
17411 ret.add(']');
17412
17413 return ret;
17414 }
17415 };
17416
17417 exports['default'] = CodeGen;
17418 module.exports = exports['default'];
17419
17420/***/ })
17421/******/ ])
17422});
17423;
17424
17425/***/ }),
17426/* 5 */
17427/***/ (function(module, exports) {
17428
17429module.exports = "{{#ifCond operations.length '!==' 0}}\nimport { FunctionalComponent } from '@stencil/core';\n\n{{#unless @root.config.noGraphqlTag}}\nimport gql from 'graphql-tag';\n{{/unless}}\n\n{{ blockCommentIf 'Fragments' fragments }}\n{{{generateFragments fragments}}}\n\n{{ blockCommentIf 'Components' operations }}\n{{#each operations }}\n {{#unless @root.config.noNamespaces}}\nexport namespace {{convert name}} {\n {{/unless}}\n export const {{#if @root.config.noNamespaces}}{{ convert name }}{{/if}}Document = {{{ gql this }}};\n export interface ComponentProps {\n variables ?: {{#if @root.config.noNamespaces}}{{ convert name }}{{/if}}Variables;\n onReady ?: import('stencil-apollo/dist/types/components/apollo-{{ toLowerCase operationType }}/types').On{{ convert operationType }}ReadyFn<{{#if @root.config.noNamespaces}}{{ convert name }}{{/if}}{{ convert operationType }}, {{#if @root.config.noNamespaces}}{{ convert name }}{{/if}}Variables>;\n }\n export const {{#if @root.config.noNamespaces}}{{ convert name }}{{/if}}Component: FunctionalComponent<ComponentProps> = (props, children) => {\n return (\n <apollo-{{ toLowerCase operationType }}\n {{ toLowerCase operationType }}={ {{#if @root.config.noNamespaces}}{{ convert name }}{{/if}}Document }\n {...props}\n >\n {children}\n </apollo-{{ toLowerCase operationType }}>\n );\n }\n {{#unless @root.config.noNamespaces}}\n}\n {{/unless}}\n{{/each}}\n{{/ifCond}}\n"
17430
17431/***/ }),
17432/* 6 */
17433/***/ (function(module, exports, __webpack_require__) {
17434
17435"use strict";
17436
17437Object.defineProperty(exports, "__esModule", { value: true });
17438var dependency_graph_1 = __webpack_require__(7);
17439var graphql_tag_1 = __webpack_require__(8);
17440exports.generateFragments = function (convert) { return function (fragments, options) {
17441 var cachedFragments = {};
17442 if (!fragments) {
17443 return '';
17444 }
17445 var graph = new dependency_graph_1.DepGraph({ circular: true });
17446 fragments.forEach(function (fragment) {
17447 graph.addNode(fragment.name, fragment);
17448 });
17449 fragments.forEach(function (fragment) {
17450 var depends = extractFragments(fragment.document);
17451 if (depends) {
17452 depends.forEach(function (name) {
17453 graph.addDependency(fragment.name, name);
17454 });
17455 }
17456 });
17457 return graph
17458 .overallOrder()
17459 .map(function (name) { return generateFragment(graph.getNodeData(name), options); })
17460 .join('\n');
17461 function generateFragment(fragment, options) {
17462 var cached = cachedFragments[fragment.name];
17463 if (!cached) {
17464 cachedFragments[fragment.name] = fragment;
17465 var config = options.data.root.config || {};
17466 var pascalCasedFragmentName = convert(fragment.name);
17467 // fooBar, FooBar and foo_bar may cause conflict due to the pascalCase.
17468 // Because all of them will have same namespace FooBar
17469 if (config.noNamespaces) {
17470 return "\n export const " + pascalCasedFragmentName + "FragmentDoc = " + exports.gql(convert)(fragment, options) + ";\n ";
17471 }
17472 else {
17473 return "\n export namespace " + pascalCasedFragmentName + " {\n export const FragmentDoc = " + exports.gql(convert)(fragment, options) + ";\n }\n ";
17474 }
17475 }
17476 else {
17477 if (fragment.document !== cached.document) {
17478 throw new Error("Duplicated fragment called '" + fragment.name + "'");
17479 }
17480 }
17481 }
17482}; };
17483exports.gql = function (convert) { return function (operation, options) {
17484 var config = options.data.root.config || {};
17485 var doc = "\n " + operation.document + "\n " + includeFragments(transformFragments(convert)(operation.document, options)) + "\n ";
17486 return config.noGraphqlTag ? JSON.stringify(graphql_tag_1.default(doc)) : 'gql`' + doc + '`';
17487}; };
17488function includeFragments(fragments) {
17489 if (fragments) {
17490 return "\n " + fragments
17491 .filter(function (name, i, all) { return all.indexOf(name) === i; })
17492 .map(function (name) { return '${' + name + '}'; })
17493 .join('\n') + "\n ";
17494 }
17495 return '';
17496}
17497function extractFragments(document) {
17498 return (document.match(/\.\.\.[a-z0-9\_]+/gi) || []).map(function (name) { return name.replace('...', ''); });
17499}
17500exports.extractFragments = extractFragments;
17501var transformFragments = function (convert) { return function (document, options) {
17502 return extractFragments(document).map(function (document) { return exports.toFragmentName(convert)(document, options); });
17503}; };
17504exports.toFragmentName = function (convert) { return function (fragmentName, options) {
17505 var config = options.data.root.config || {};
17506 if (config.noNamespaces) {
17507 return convert(fragmentName + "FragmentDoc");
17508 }
17509 else {
17510 return convert(fragmentName) + '.FragmentDoc';
17511 }
17512}; };
17513
17514
17515/***/ }),
17516/* 7 */
17517/***/ (function(module, exports) {
17518
17519/**
17520 * A simple dependency graph
17521 */
17522
17523/**
17524 * Helper for creating a Depth-First-Search on
17525 * a set of edges.
17526 *
17527 * Detects cycles and throws an Error if one is detected.
17528 *
17529 * @param edges The set of edges to DFS through
17530 * @param leavesOnly Whether to only return "leaf" nodes (ones who have no edges)
17531 * @param result An array in which the results will be populated
17532 * @param circular A boolean to allow circular dependencies
17533 */
17534function createDFS(edges, leavesOnly, result, circular) {
17535 var currentPath = [];
17536 var visited = {};
17537 return function DFS(currentNode) {
17538 visited[currentNode] = true;
17539 currentPath.push(currentNode);
17540 edges[currentNode].forEach(function (node) {
17541 if (!visited[node]) {
17542 DFS(node);
17543 } else if (currentPath.indexOf(node) >= 0) {
17544 currentPath.push(node);
17545 if (!circular) {
17546 throw new Error('Dependency Cycle Found: ' + currentPath.join(' -> '));
17547 }
17548 }
17549 });
17550 currentPath.pop();
17551 if ((!leavesOnly || edges[currentNode].length === 0) && result.indexOf(currentNode) === -1) {
17552 result.push(currentNode);
17553 }
17554 };
17555}
17556
17557/**
17558 * Simple Dependency Graph
17559 */
17560var DepGraph = exports.DepGraph = function DepGraph(opts) {
17561 this.nodes = {}; // Node -> Node/Data (treated like a Set)
17562 this.outgoingEdges = {}; // Node -> [Dependency Node]
17563 this.incomingEdges = {}; // Node -> [Dependant Node]
17564 this.circular = opts && !!opts.circular; // Allows circular deps
17565};
17566DepGraph.prototype = {
17567 /**
17568 * The number of nodes in the graph.
17569 */
17570 size:function () {
17571 return Object.keys(this.nodes).length;
17572 },
17573 /**
17574 * Add a node to the dependency graph. If a node already exists, this method will do nothing.
17575 */
17576 addNode:function (node, data) {
17577 if (!this.hasNode(node)) {
17578 // Checking the arguments length allows the user to add a node with undefined data
17579 if (arguments.length === 2) {
17580 this.nodes[node] = data;
17581 } else {
17582 this.nodes[node] = node;
17583 }
17584 this.outgoingEdges[node] = [];
17585 this.incomingEdges[node] = [];
17586 }
17587 },
17588 /**
17589 * Remove a node from the dependency graph. If a node does not exist, this method will do nothing.
17590 */
17591 removeNode:function (node) {
17592 if (this.hasNode(node)) {
17593 delete this.nodes[node];
17594 delete this.outgoingEdges[node];
17595 delete this.incomingEdges[node];
17596 [this.incomingEdges, this.outgoingEdges].forEach(function (edgeList) {
17597 Object.keys(edgeList).forEach(function (key) {
17598 var idx = edgeList[key].indexOf(node);
17599 if (idx >= 0) {
17600 edgeList[key].splice(idx, 1);
17601 }
17602 }, this);
17603 });
17604 }
17605 },
17606 /**
17607 * Check if a node exists in the graph
17608 */
17609 hasNode:function (node) {
17610 return this.nodes.hasOwnProperty(node);
17611 },
17612 /**
17613 * Get the data associated with a node name
17614 */
17615 getNodeData:function (node) {
17616 if (this.hasNode(node)) {
17617 return this.nodes[node];
17618 } else {
17619 throw new Error('Node does not exist: ' + node);
17620 }
17621 },
17622 /**
17623 * Set the associated data for a given node name. If the node does not exist, this method will throw an error
17624 */
17625 setNodeData:function (node, data) {
17626 if (this.hasNode(node)) {
17627 this.nodes[node] = data;
17628 } else {
17629 throw new Error('Node does not exist: ' + node);
17630 }
17631 },
17632 /**
17633 * Add a dependency between two nodes. If either of the nodes does not exist,
17634 * an Error will be thrown.
17635 */
17636 addDependency:function (from, to) {
17637 if (!this.hasNode(from)) {
17638 throw new Error('Node does not exist: ' + from);
17639 }
17640 if (!this.hasNode(to)) {
17641 throw new Error('Node does not exist: ' + to);
17642 }
17643 if (this.outgoingEdges[from].indexOf(to) === -1) {
17644 this.outgoingEdges[from].push(to);
17645 }
17646 if (this.incomingEdges[to].indexOf(from) === -1) {
17647 this.incomingEdges[to].push(from);
17648 }
17649 return true;
17650 },
17651 /**
17652 * Remove a dependency between two nodes.
17653 */
17654 removeDependency:function (from, to) {
17655 var idx;
17656 if (this.hasNode(from)) {
17657 idx = this.outgoingEdges[from].indexOf(to);
17658 if (idx >= 0) {
17659 this.outgoingEdges[from].splice(idx, 1);
17660 }
17661 }
17662
17663 if (this.hasNode(to)) {
17664 idx = this.incomingEdges[to].indexOf(from);
17665 if (idx >= 0) {
17666 this.incomingEdges[to].splice(idx, 1);
17667 }
17668 }
17669 },
17670 /**
17671 * Return a clone of the dependency graph. If any custom data is attached
17672 * to the nodes, it will only be shallow copied.
17673 */
17674 clone:function () {
17675 var source = this;
17676 var result = new DepGraph();
17677 var keys = Object.keys(source.nodes);
17678 keys.forEach(function (n) {
17679 result.nodes[n] = source.nodes[n];
17680 result.outgoingEdges[n] = source.outgoingEdges[n].slice(0);
17681 result.incomingEdges[n] = source.incomingEdges[n].slice(0);
17682 });
17683 return result;
17684 },
17685 /**
17686 * Get an array containing the nodes that the specified node depends on (transitively).
17687 *
17688 * Throws an Error if the graph has a cycle, or the specified node does not exist.
17689 *
17690 * If `leavesOnly` is true, only nodes that do not depend on any other nodes will be returned
17691 * in the array.
17692 */
17693 dependenciesOf:function (node, leavesOnly) {
17694 if (this.hasNode(node)) {
17695 var result = [];
17696 var DFS = createDFS(this.outgoingEdges, leavesOnly, result, this.circular);
17697 DFS(node);
17698 var idx = result.indexOf(node);
17699 if (idx >= 0) {
17700 result.splice(idx, 1);
17701 }
17702 return result;
17703 }
17704 else {
17705 throw new Error('Node does not exist: ' + node);
17706 }
17707 },
17708 /**
17709 * get an array containing the nodes that depend on the specified node (transitively).
17710 *
17711 * Throws an Error if the graph has a cycle, or the specified node does not exist.
17712 *
17713 * If `leavesOnly` is true, only nodes that do not have any dependants will be returned in the array.
17714 */
17715 dependantsOf:function (node, leavesOnly) {
17716 if (this.hasNode(node)) {
17717 var result = [];
17718 var DFS = createDFS(this.incomingEdges, leavesOnly, result, this.circular);
17719 DFS(node);
17720 var idx = result.indexOf(node);
17721 if (idx >= 0) {
17722 result.splice(idx, 1);
17723 }
17724 return result;
17725 } else {
17726 throw new Error('Node does not exist: ' + node);
17727 }
17728 },
17729 /**
17730 * Construct the overall processing order for the dependency graph.
17731 *
17732 * Throws an Error if the graph has a cycle.
17733 *
17734 * If `leavesOnly` is true, only nodes that do not depend on any other nodes will be returned.
17735 */
17736 overallOrder:function (leavesOnly) {
17737 var self = this;
17738 var result = [];
17739 var keys = Object.keys(this.nodes);
17740 if (keys.length === 0) {
17741 return result; // Empty graph
17742 } else {
17743 // Look for cycles - we run the DFS starting at all the nodes in case there
17744 // are several disconnected subgraphs inside this dependency graph.
17745 var CycleDFS = createDFS(this.outgoingEdges, false, [], this.circular);
17746 keys.forEach(function(n) {
17747 CycleDFS(n);
17748 });
17749
17750 var DFS = createDFS(this.outgoingEdges, leavesOnly, result, this.circular);
17751 // Find all potential starting points (nodes with nothing depending on them) an
17752 // run a DFS starting at these points to get the order
17753 keys.filter(function (node) {
17754 return self.incomingEdges[node].length === 0;
17755 }).forEach(function (n) {
17756 DFS(n);
17757 });
17758
17759 return result;
17760 }
17761 }
17762};
17763
17764
17765/***/ }),
17766/* 8 */
17767/***/ (function(module, exports) {
17768
17769module.exports = require("graphql-tag");
17770
17771/***/ }),
17772/* 9 */
17773/***/ (function(module, exports) {
17774
17775module.exports = require("path");
17776
17777/***/ })
17778/******/ ])));
17779//# sourceMappingURL=index.js.map
\No newline at end of file