forked from contentstack/contentstack-javascript
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathcontentstack.js
More file actions
504 lines (398 loc) · 398 KB
/
contentstack.js
File metadata and controls
504 lines (398 loc) · 398 KB
1
2
3
4
5
6
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
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
module.exports =
/******/ (function(modules) { // webpackBootstrap
/******/ // The module cache
/******/ var installedModules = {};
/******/
/******/ // The require function
/******/ function __webpack_require__(moduleId) {
/******/
/******/ // Check if module is in cache
/******/ if(installedModules[moduleId]) {
/******/ return installedModules[moduleId].exports;
/******/ }
/******/ // Create a new module (and put it into the cache)
/******/ var module = installedModules[moduleId] = {
/******/ i: moduleId,
/******/ l: false,
/******/ exports: {}
/******/ };
/******/
/******/ // Execute the module function
/******/ modules[moduleId].call(module.exports, module, module.exports, __webpack_require__);
/******/
/******/ // Flag the module as loaded
/******/ module.l = true;
/******/
/******/ // Return the exports of the module
/******/ return module.exports;
/******/ }
/******/
/******/
/******/ // expose the modules object (__webpack_modules__)
/******/ __webpack_require__.m = modules;
/******/
/******/ // expose the module cache
/******/ __webpack_require__.c = installedModules;
/******/
/******/ // define getter function for harmony exports
/******/ __webpack_require__.d = function(exports, name, getter) {
/******/ if(!__webpack_require__.o(exports, name)) {
/******/ Object.defineProperty(exports, name, { enumerable: true, get: getter });
/******/ }
/******/ };
/******/
/******/ // define __esModule on exports
/******/ __webpack_require__.r = function(exports) {
/******/ if(typeof Symbol !== 'undefined' && Symbol.toStringTag) {
/******/ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
/******/ }
/******/ Object.defineProperty(exports, '__esModule', { value: true });
/******/ };
/******/
/******/ // create a fake namespace object
/******/ // mode & 1: value is a module id, require it
/******/ // mode & 2: merge all properties of value into the ns
/******/ // mode & 4: return value when already ns object
/******/ // mode & 8|1: behave like require
/******/ __webpack_require__.t = function(value, mode) {
/******/ if(mode & 1) value = __webpack_require__(value);
/******/ if(mode & 8) return value;
/******/ if((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;
/******/ var ns = Object.create(null);
/******/ __webpack_require__.r(ns);
/******/ Object.defineProperty(ns, 'default', { enumerable: true, value: value });
/******/ if(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));
/******/ return ns;
/******/ };
/******/
/******/ // getDefaultExport function for compatibility with non-harmony modules
/******/ __webpack_require__.n = function(module) {
/******/ var getter = module && module.__esModule ?
/******/ function getDefault() { return module['default']; } :
/******/ function getModuleExports() { return module; };
/******/ __webpack_require__.d(getter, 'a', getter);
/******/ return getter;
/******/ };
/******/
/******/ // Object.prototype.hasOwnProperty.call
/******/ __webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };
/******/
/******/ // __webpack_public_path__
/******/ __webpack_require__.p = "";
/******/
/******/
/******/ // Load entry module and return exports
/******/ return __webpack_require__(__webpack_require__.s = "./src/core/contentstack.js");
/******/ })
/************************************************************************/
/******/ ({
/***/ "./config.js":
/*!*******************!*\
!*** ./config.js ***!
\*******************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {
"use strict";
eval("\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nvar config = {\n protocol: \"https\",\n host: \"cdn.contentstack.io\",\n port: 443,\n version: \"v3\",\n urls: {\n sync: \"/stacks/sync\",\n content_types: \"/content_types/\",\n entries: \"/entries/\",\n assets: \"/assets/\",\n environments: \"/environments/\"\n }\n};\n\nexports.default = config;\n\n//# sourceURL=webpack://Contentstack/./config.js?");
/***/ }),
/***/ "./node_modules/@contentstack/utils/dist/index.es.js":
/*!***********************************************************!*\
!*** ./node_modules/@contentstack/utils/dist/index.es.js ***!
\***********************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {
"use strict";
eval("\n\nvar _typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; };\n\nObject.defineProperty(exports, '__esModule', { value: true });\n\nvar nodeHtmlParser = __webpack_require__(/*! node-html-parser */ \"./node_modules/node-html-parser/dist/esm/index.js\");\n\nvar StyleType;\n(function (StyleType) {\n StyleType[\"BLOCK\"] = \"block\";\n StyleType[\"INLINE\"] = \"inline\";\n StyleType[\"LINK\"] = \"link\";\n StyleType[\"DISPLAY\"] = \"display\";\n StyleType[\"DOWNLOAD\"] = \"download\";\n})(StyleType || (StyleType = {}));\nvar StyleType$1 = StyleType;\n\n/*! *****************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\n\nvar _assign = function __assign() {\n _assign = Object.assign || function __assign(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) {\n if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\n }\n }\n return t;\n };\n return _assign.apply(this, arguments);\n};\n\nfunction elementToJson(element) {\n var obj = _assign({}, element.rawAttributes);\n element.childNodes.forEach(function (chileNode) {\n var node = chileNode;\n obj = _assign(_assign({}, obj), parseElement(node));\n });\n return obj;\n}\nfunction parseElement(node) {\n var obj = {};\n if (node.nodeType === 3) {\n obj['#text'] = node.text;\n } else if (node.nodeType === 1) {\n obj[node.tagName.toLowerCase()] = elementToJson(node);\n }\n return obj;\n}\n\nfunction createMetadata(attribute) {\n var metadata = {\n text: attribute['#text'],\n itemUid: attribute[\"data-sys-entry-uid\"] || attribute[\"data-sys-asset-uid\"],\n itemType: attribute.type,\n styleType: attribute[\"sys-style-type\"],\n attributes: attribute,\n contentTypeUid: attribute[\"data-sys-content-type-uid\"]\n };\n return metadata;\n}\n\nvar frameflag = 'documentfragmentcontainer';\nString.prototype.forEachEmbeddedObject = function (callbackfn) {\n var str = \"<\" + frameflag + \">\" + this.toString() + \"</\" + frameflag + \">\";\n var root = nodeHtmlParser.parse(str);\n var embeddedEntries = root.querySelectorAll(\".embedded-entry\");\n embeddedEntries.forEach(function (element) {\n callbackfn(element.outerHTML, createMetadata(elementToJson(element)));\n });\n var embeddedAsset = root.querySelectorAll(\".embedded-asset\");\n embeddedAsset.forEach(function (element) {\n callbackfn(element.outerHTML, createMetadata(elementToJson(element)));\n });\n};\n\nvar _a;\nvar defaultOptions = (_a = {}, _a[StyleType$1.BLOCK] = function (entry) {\n return \"<div><p>\" + (entry.title || entry.uid) + \"</p><p>Content type: <span>\" + entry._content_type_uid + \"</span></p></div>\";\n}, _a[StyleType$1.INLINE] = function (entry) {\n return \"<span>\" + (entry.title || entry.uid) + \"</span>\";\n}, _a[StyleType$1.LINK] = function (entry, metadata) {\n return \"<a href=\\\"\" + entry.url + \"\\\">\" + (metadata.text || entry.title || entry.uid) + \"</a>\";\n}, _a[StyleType$1.DISPLAY] = function (asset, metadata) {\n return \"<img src=\\\"\" + asset.url + \"\\\" alt=\\\"\" + (metadata.attributes.alt || asset.title || asset.filename || asset.uid) + \"\\\" />\";\n}, _a[StyleType$1.DOWNLOAD] = function (entry, metadata) {\n return \"<a href=\\\"\" + entry.url + \"\\\">\" + (metadata.text || entry.title || entry.uid) + \"</a>\";\n}, _a);\n\n// This function will find Embedded object present in string\nfunction findEmbeddedEntry(uid, contentTypeUid, embeddeditems) {\n if (embeddeditems === void 0) {\n embeddeditems = [];\n }\n return embeddeditems.filter(function (entry) {\n if (entry.uid === uid && entry._content_type_uid === contentTypeUid) {\n return entry;\n }\n });\n}\nfunction findEmbeddedAsset(uid, embeddedAssets) {\n if (embeddedAssets === void 0) {\n embeddedAssets = [];\n }\n return embeddedAssets.filter(function (asset) {\n if (asset.uid === uid) {\n return asset;\n }\n });\n}\nfunction findEmbeddedObjects(object, entry) {\n if (object && object !== undefined && entry && entry !== undefined) {\n if (entry._embedded_items !== undefined) {\n var entryEmbedable = entry;\n if (object.itemType === 'entry') {\n return findEmbeddedEntry(object.itemUid, object.contentTypeUid, Object.values(entryEmbedable._embedded_items || []).reduce(function (accumulator, value) {\n return accumulator.concat(value);\n }, []));\n } else {\n return findEmbeddedAsset(object.itemUid, Object.values(entryEmbedable._embedded_items || []).reduce(function (accumulator, value) {\n return accumulator.concat(value);\n }, []));\n }\n }\n }\n return [];\n}\nfunction findRenderString(metadata, renderModel, renderOptions) {\n if (!renderModel && renderModel === undefined || !metadata && metadata === undefined) {\n return '';\n }\n if (renderOptions && renderOptions[metadata.styleType] !== undefined) {\n var renderFunction = renderOptions[metadata.styleType];\n if (metadata.attributes['data-sys-content-type-uid'] !== undefined && typeof renderFunction !== 'function' && renderFunction[metadata.attributes['data-sys-content-type-uid']] !== undefined) {\n return renderFunction[metadata.attributes['data-sys-content-type-uid']](renderModel, metadata);\n } else if (metadata.attributes['data-sys-content-type-uid'] !== undefined && typeof renderFunction !== 'function' && renderFunction.$default !== undefined) {\n return renderFunction.$default(renderModel, metadata);\n } else if (typeof renderFunction === 'function') {\n return renderFunction(renderModel, metadata);\n }\n }\n var defaultRenderFunction = defaultOptions[metadata.styleType];\n return defaultRenderFunction(renderModel, metadata);\n}\n\nfunction findRenderContent(keyPaths, entry, render) {\n getContent(keyPaths.split(\".\"), entry, render);\n}\nfunction getContent(keys, object, render) {\n if (keys) {\n var key = keys[0];\n if (keys.length === 1 && object[key]) {\n object[key] = render(object[key]);\n } else if (keys.length > 0) {\n if (object[key]) {\n var newKeys = keys.slice(1);\n if (Array.isArray(object[key])) {\n // tslint:disable-next-line: prefer-for-of\n for (var i = 0; i < object[key].length; i++) {\n getContent(newKeys, object[key][i], render);\n }\n } else if (_typeof(object[key]) === 'object') {\n getContent(newKeys, object[key], render);\n }\n }\n }\n }\n}\n\n/**\r\n *\r\n * @param {EntryEmbedable| EntryEmbedable[]} entry - Objects that contains RTE with embedded objects\r\n * @param {string[]} paths - Key paths for RTE contents in Entry object\r\n * @param {RenderOption?} renderOption - Optional render options to render content\r\n */\nfunction render(option) {\n function findContent(path, entry) {\n findRenderContent(path, entry, function (content) {\n return renderContent(content, { entry: entry, renderOption: option.renderOption });\n });\n }\n function findAndRender(entry) {\n if (!option.paths || option.paths.length === 0) {\n Object.keys(_assign({}, entry._embedded_items)).forEach(function (path) {\n findContent(path, entry);\n });\n } else {\n option.paths.forEach(function (path) {\n findContent(path, entry);\n });\n }\n }\n if (option.entry instanceof Array) {\n option.entry.forEach(function (entry) {\n findAndRender(entry);\n });\n } else {\n findAndRender(option.entry);\n }\n}\n/**\r\n *\r\n * @param {string | string[]} content - RTE content to render\r\n * @param {EntryEmbedable} options.entry - Entry object containing embedded objects\r\n * @param {RenderOption?} options.renderOption - Optional render options to render content\r\n */\nfunction renderContent(content, option) {\n // return blank if content not present\n if (!content || content === undefined) {\n return '';\n }\n // render content of type string\n if (typeof content === 'string') {\n var contentToReplace_1 = content;\n content.forEachEmbeddedObject(function (embededObjectTag, object) {\n contentToReplace_1 = findAndReplaceEmbeddedObject(contentToReplace_1, embededObjectTag, object, option);\n });\n return contentToReplace_1;\n }\n // render content of type array of string\n var resultContent = [];\n content.forEach(function (element) {\n resultContent.push(renderContent(element, option));\n });\n return resultContent;\n}\nfunction findAndReplaceEmbeddedObject(content, embededObjectTag, object, option) {\n var embeddedObjects = findEmbeddedObjects(object, option.entry);\n var renderString = findRenderString(object, embeddedObjects[0], option.renderOption);\n return content.replace(embededObjectTag, renderString);\n}\n\nexports.StyleType = StyleType$1;\nexports.render = render;\nexports.renderContent = renderContent;\n//# sourceMappingURL=index.es.js.map\n\n//# sourceURL=webpack://Contentstack/./node_modules/@contentstack/utils/dist/index.es.js?");
/***/ }),
/***/ "./node_modules/es6-promise/dist/es6-promise.js":
/*!******************************************************!*\
!*** ./node_modules/es6-promise/dist/es6-promise.js ***!
\******************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {
"use strict";
eval("var __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_RESULT__;var require;\n\nvar _typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; };\n\n/*!\n * @overview es6-promise - a tiny implementation of Promises/A+.\n * @copyright Copyright (c) 2014 Yehuda Katz, Tom Dale, Stefan Penner and contributors (Conversion to ES6 API by Jake Archibald)\n * @license Licensed under MIT license\n * See https://raw.githubusercontent.com/stefanpenner/es6-promise/master/LICENSE\n * @version 4.1.1\n */\n\n(function (global, factory) {\n ( false ? undefined : _typeof(exports)) === 'object' && typeof module !== 'undefined' ? module.exports = factory() : true ? !(__WEBPACK_AMD_DEFINE_FACTORY__ = (factory),\n\t\t\t\t__WEBPACK_AMD_DEFINE_RESULT__ = (typeof __WEBPACK_AMD_DEFINE_FACTORY__ === 'function' ?\n\t\t\t\t(__WEBPACK_AMD_DEFINE_FACTORY__.call(exports, __webpack_require__, exports, module)) :\n\t\t\t\t__WEBPACK_AMD_DEFINE_FACTORY__),\n\t\t\t\t__WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__)) : undefined;\n})(undefined, function () {\n 'use strict';\n\n function objectOrFunction(x) {\n var type = typeof x === 'undefined' ? 'undefined' : _typeof(x);\n return x !== null && (type === 'object' || type === 'function');\n }\n\n function isFunction(x) {\n return typeof x === 'function';\n }\n\n var _isArray = undefined;\n if (Array.isArray) {\n _isArray = Array.isArray;\n } else {\n _isArray = function _isArray(x) {\n return Object.prototype.toString.call(x) === '[object Array]';\n };\n }\n\n var isArray = _isArray;\n\n var len = 0;\n var vertxNext = undefined;\n var customSchedulerFn = undefined;\n\n var asap = function asap(callback, arg) {\n queue[len] = callback;\n queue[len + 1] = arg;\n len += 2;\n if (len === 2) {\n // If len is 2, that means that we need to schedule an async flush.\n // If additional callbacks are queued before the queue is flushed, they\n // will be processed by this flush that we are scheduling.\n if (customSchedulerFn) {\n customSchedulerFn(flush);\n } else {\n scheduleFlush();\n }\n }\n };\n\n function setScheduler(scheduleFn) {\n customSchedulerFn = scheduleFn;\n }\n\n function setAsap(asapFn) {\n asap = asapFn;\n }\n\n var browserWindow = typeof window !== 'undefined' ? window : undefined;\n var browserGlobal = browserWindow || {};\n var BrowserMutationObserver = browserGlobal.MutationObserver || browserGlobal.WebKitMutationObserver;\n var isNode = typeof self === 'undefined' && typeof process !== 'undefined' && {}.toString.call(process) === '[object process]';\n\n // test for web worker but not in IE10\n var isWorker = typeof Uint8ClampedArray !== 'undefined' && typeof importScripts !== 'undefined' && typeof MessageChannel !== 'undefined';\n\n // node\n function useNextTick() {\n // node version 0.10.x displays a deprecation warning when nextTick is used recursively\n // see https://github.com/cujojs/when/issues/410 for details\n return function () {\n return process.nextTick(flush);\n };\n }\n\n // vertx\n function useVertxTimer() {\n if (typeof vertxNext !== 'undefined') {\n return function () {\n vertxNext(flush);\n };\n }\n\n return useSetTimeout();\n }\n\n function useMutationObserver() {\n var iterations = 0;\n var observer = new BrowserMutationObserver(flush);\n var node = document.createTextNode('');\n observer.observe(node, { characterData: true });\n\n return function () {\n node.data = iterations = ++iterations % 2;\n };\n }\n\n // web worker\n function useMessageChannel() {\n var channel = new MessageChannel();\n channel.port1.onmessage = flush;\n return function () {\n return channel.port2.postMessage(0);\n };\n }\n\n function useSetTimeout() {\n // Store setTimeout reference so es6-promise will be unaffected by\n // other code modifying setTimeout (like sinon.useFakeTimers())\n var globalSetTimeout = setTimeout;\n return function () {\n return globalSetTimeout(flush, 1);\n };\n }\n\n var queue = new Array(1000);\n function flush() {\n for (var i = 0; i < len; i += 2) {\n var callback = queue[i];\n var arg = queue[i + 1];\n\n callback(arg);\n\n queue[i] = undefined;\n queue[i + 1] = undefined;\n }\n\n len = 0;\n }\n\n function attemptVertx() {\n try {\n var r = require;\n var vertx = __webpack_require__(!(function webpackMissingModule() { var e = new Error(\"Cannot find module 'vertx'\"); e.code = 'MODULE_NOT_FOUND'; throw e; }()));\n vertxNext = vertx.runOnLoop || vertx.runOnContext;\n return useVertxTimer();\n } catch (e) {\n return useSetTimeout();\n }\n }\n\n var scheduleFlush = undefined;\n // Decide what async method to use to triggering processing of queued callbacks:\n if (isNode) {\n scheduleFlush = useNextTick();\n } else if (BrowserMutationObserver) {\n scheduleFlush = useMutationObserver();\n } else if (isWorker) {\n scheduleFlush = useMessageChannel();\n } else if (browserWindow === undefined && \"function\" === 'function') {\n scheduleFlush = attemptVertx();\n } else {\n scheduleFlush = useSetTimeout();\n }\n\n function then(onFulfillment, onRejection) {\n var _arguments = arguments;\n\n var parent = this;\n\n var child = new this.constructor(noop);\n\n if (child[PROMISE_ID] === undefined) {\n makePromise(child);\n }\n\n var _state = parent._state;\n\n if (_state) {\n (function () {\n var callback = _arguments[_state - 1];\n asap(function () {\n return invokeCallback(_state, child, callback, parent._result);\n });\n })();\n } else {\n subscribe(parent, child, onFulfillment, onRejection);\n }\n\n return child;\n }\n\n /**\n `Promise.resolve` returns a promise that will become resolved with the\n passed `value`. It is shorthand for the following:\n \n ```javascript\n let promise = new Promise(function(resolve, reject){\n resolve(1);\n });\n \n promise.then(function(value){\n // value === 1\n });\n ```\n \n Instead of writing the above, your code now simply becomes the following:\n \n ```javascript\n let promise = Promise.resolve(1);\n \n promise.then(function(value){\n // value === 1\n });\n ```\n \n @method resolve\n @static\n @param {Any} value value that the returned promise will be resolved with\n Useful for tooling.\n @return {Promise} a promise that will become fulfilled with the given\n `value`\n */\n function resolve$1(object) {\n /*jshint validthis:true */\n var Constructor = this;\n\n if (object && (typeof object === 'undefined' ? 'undefined' : _typeof(object)) === 'object' && object.constructor === Constructor) {\n return object;\n }\n\n var promise = new Constructor(noop);\n resolve(promise, object);\n return promise;\n }\n\n var PROMISE_ID = Math.random().toString(36).substring(16);\n\n function noop() {}\n\n var PENDING = void 0;\n var FULFILLED = 1;\n var REJECTED = 2;\n\n var GET_THEN_ERROR = new ErrorObject();\n\n function selfFulfillment() {\n return new TypeError(\"You cannot resolve a promise with itself\");\n }\n\n function cannotReturnOwn() {\n return new TypeError('A promises callback cannot return that same promise.');\n }\n\n function getThen(promise) {\n try {\n return promise.then;\n } catch (error) {\n GET_THEN_ERROR.error = error;\n return GET_THEN_ERROR;\n }\n }\n\n function tryThen(then$$1, value, fulfillmentHandler, rejectionHandler) {\n try {\n then$$1.call(value, fulfillmentHandler, rejectionHandler);\n } catch (e) {\n return e;\n }\n }\n\n function handleForeignThenable(promise, thenable, then$$1) {\n asap(function (promise) {\n var sealed = false;\n var error = tryThen(then$$1, thenable, function (value) {\n if (sealed) {\n return;\n }\n sealed = true;\n if (thenable !== value) {\n resolve(promise, value);\n } else {\n fulfill(promise, value);\n }\n }, function (reason) {\n if (sealed) {\n return;\n }\n sealed = true;\n\n reject(promise, reason);\n }, 'Settle: ' + (promise._label || ' unknown promise'));\n\n if (!sealed && error) {\n sealed = true;\n reject(promise, error);\n }\n }, promise);\n }\n\n function handleOwnThenable(promise, thenable) {\n if (thenable._state === FULFILLED) {\n fulfill(promise, thenable._result);\n } else if (thenable._state === REJECTED) {\n reject(promise, thenable._result);\n } else {\n subscribe(thenable, undefined, function (value) {\n return resolve(promise, value);\n }, function (reason) {\n return reject(promise, reason);\n });\n }\n }\n\n function handleMaybeThenable(promise, maybeThenable, then$$1) {\n if (maybeThenable.constructor === promise.constructor && then$$1 === then && maybeThenable.constructor.resolve === resolve$1) {\n handleOwnThenable(promise, maybeThenable);\n } else {\n if (then$$1 === GET_THEN_ERROR) {\n reject(promise, GET_THEN_ERROR.error);\n GET_THEN_ERROR.error = null;\n } else if (then$$1 === undefined) {\n fulfill(promise, maybeThenable);\n } else if (isFunction(then$$1)) {\n handleForeignThenable(promise, maybeThenable, then$$1);\n } else {\n fulfill(promise, maybeThenable);\n }\n }\n }\n\n function resolve(promise, value) {\n if (promise === value) {\n reject(promise, selfFulfillment());\n } else if (objectOrFunction(value)) {\n handleMaybeThenable(promise, value, getThen(value));\n } else {\n fulfill(promise, value);\n }\n }\n\n function publishRejection(promise) {\n if (promise._onerror) {\n promise._onerror(promise._result);\n }\n\n publish(promise);\n }\n\n function fulfill(promise, value) {\n if (promise._state !== PENDING) {\n return;\n }\n\n promise._result = value;\n promise._state = FULFILLED;\n\n if (promise._subscribers.length !== 0) {\n asap(publish, promise);\n }\n }\n\n function reject(promise, reason) {\n if (promise._state !== PENDING) {\n return;\n }\n promise._state = REJECTED;\n promise._result = reason;\n\n asap(publishRejection, promise);\n }\n\n function subscribe(parent, child, onFulfillment, onRejection) {\n var _subscribers = parent._subscribers;\n var length = _subscribers.length;\n\n parent._onerror = null;\n\n _subscribers[length] = child;\n _subscribers[length + FULFILLED] = onFulfillment;\n _subscribers[length + REJECTED] = onRejection;\n\n if (length === 0 && parent._state) {\n asap(publish, parent);\n }\n }\n\n function publish(promise) {\n var subscribers = promise._subscribers;\n var settled = promise._state;\n\n if (subscribers.length === 0) {\n return;\n }\n\n var child = undefined,\n callback = undefined,\n detail = promise._result;\n\n for (var i = 0; i < subscribers.length; i += 3) {\n child = subscribers[i];\n callback = subscribers[i + settled];\n\n if (child) {\n invokeCallback(settled, child, callback, detail);\n } else {\n callback(detail);\n }\n }\n\n promise._subscribers.length = 0;\n }\n\n function ErrorObject() {\n this.error = null;\n }\n\n var TRY_CATCH_ERROR = new ErrorObject();\n\n function tryCatch(callback, detail) {\n try {\n return callback(detail);\n } catch (e) {\n TRY_CATCH_ERROR.error = e;\n return TRY_CATCH_ERROR;\n }\n }\n\n function invokeCallback(settled, promise, callback, detail) {\n var hasCallback = isFunction(callback),\n value = undefined,\n error = undefined,\n succeeded = undefined,\n failed = undefined;\n\n if (hasCallback) {\n value = tryCatch(callback, detail);\n\n if (value === TRY_CATCH_ERROR) {\n failed = true;\n error = value.error;\n value.error = null;\n } else {\n succeeded = true;\n }\n\n if (promise === value) {\n reject(promise, cannotReturnOwn());\n return;\n }\n } else {\n value = detail;\n succeeded = true;\n }\n\n if (promise._state !== PENDING) {\n // noop\n } else if (hasCallback && succeeded) {\n resolve(promise, value);\n } else if (failed) {\n reject(promise, error);\n } else if (settled === FULFILLED) {\n fulfill(promise, value);\n } else if (settled === REJECTED) {\n reject(promise, value);\n }\n }\n\n function initializePromise(promise, resolver) {\n try {\n resolver(function resolvePromise(value) {\n resolve(promise, value);\n }, function rejectPromise(reason) {\n reject(promise, reason);\n });\n } catch (e) {\n reject(promise, e);\n }\n }\n\n var id = 0;\n function nextId() {\n return id++;\n }\n\n function makePromise(promise) {\n promise[PROMISE_ID] = id++;\n promise._state = undefined;\n promise._result = undefined;\n promise._subscribers = [];\n }\n\n function Enumerator$1(Constructor, input) {\n this._instanceConstructor = Constructor;\n this.promise = new Constructor(noop);\n\n if (!this.promise[PROMISE_ID]) {\n makePromise(this.promise);\n }\n\n if (isArray(input)) {\n this.length = input.length;\n this._remaining = input.length;\n\n this._result = new Array(this.length);\n\n if (this.length === 0) {\n fulfill(this.promise, this._result);\n } else {\n this.length = this.length || 0;\n this._enumerate(input);\n if (this._remaining === 0) {\n fulfill(this.promise, this._result);\n }\n }\n } else {\n reject(this.promise, validationError());\n }\n }\n\n function validationError() {\n return new Error('Array Methods must be provided an Array');\n }\n\n Enumerator$1.prototype._enumerate = function (input) {\n for (var i = 0; this._state === PENDING && i < input.length; i++) {\n this._eachEntry(input[i], i);\n }\n };\n\n Enumerator$1.prototype._eachEntry = function (entry, i) {\n var c = this._instanceConstructor;\n var resolve$$1 = c.resolve;\n\n if (resolve$$1 === resolve$1) {\n var _then = getThen(entry);\n\n if (_then === then && entry._state !== PENDING) {\n this._settledAt(entry._state, i, entry._result);\n } else if (typeof _then !== 'function') {\n this._remaining--;\n this._result[i] = entry;\n } else if (c === Promise$2) {\n var promise = new c(noop);\n handleMaybeThenable(promise, entry, _then);\n this._willSettleAt(promise, i);\n } else {\n this._willSettleAt(new c(function (resolve$$1) {\n return resolve$$1(entry);\n }), i);\n }\n } else {\n this._willSettleAt(resolve$$1(entry), i);\n }\n };\n\n Enumerator$1.prototype._settledAt = function (state, i, value) {\n var promise = this.promise;\n\n if (promise._state === PENDING) {\n this._remaining--;\n\n if (state === REJECTED) {\n reject(promise, value);\n } else {\n this._result[i] = value;\n }\n }\n\n if (this._remaining === 0) {\n fulfill(promise, this._result);\n }\n };\n\n Enumerator$1.prototype._willSettleAt = function (promise, i) {\n var enumerator = this;\n\n subscribe(promise, undefined, function (value) {\n return enumerator._settledAt(FULFILLED, i, value);\n }, function (reason) {\n return enumerator._settledAt(REJECTED, i, reason);\n });\n };\n\n /**\n `Promise.all` accepts an array of promises, and returns a new promise which\n is fulfilled with an array of fulfillment values for the passed promises, or\n rejected with the reason of the first passed promise to be rejected. It casts all\n elements of the passed iterable to promises as it runs this algorithm.\n \n Example:\n \n ```javascript\n let promise1 = resolve(1);\n let promise2 = resolve(2);\n let promise3 = resolve(3);\n let promises = [ promise1, promise2, promise3 ];\n \n Promise.all(promises).then(function(array){\n // The array here would be [ 1, 2, 3 ];\n });\n ```\n \n If any of the `promises` given to `all` are rejected, the first promise\n that is rejected will be given as an argument to the returned promises's\n rejection handler. For example:\n \n Example:\n \n ```javascript\n let promise1 = resolve(1);\n let promise2 = reject(new Error(\"2\"));\n let promise3 = reject(new Error(\"3\"));\n let promises = [ promise1, promise2, promise3 ];\n \n Promise.all(promises).then(function(array){\n // Code here never runs because there are rejected promises!\n }, function(error) {\n // error.message === \"2\"\n });\n ```\n \n @method all\n @static\n @param {Array} entries array of promises\n @param {String} label optional string for labeling the promise.\n Useful for tooling.\n @return {Promise} promise that is fulfilled when all `promises` have been\n fulfilled, or rejected if any of them become rejected.\n @static\n */\n function all$1(entries) {\n return new Enumerator$1(this, entries).promise;\n }\n\n /**\n `Promise.race` returns a new promise which is settled in the same way as the\n first passed promise to settle.\n \n Example:\n \n ```javascript\n let promise1 = new Promise(function(resolve, reject){\n setTimeout(function(){\n resolve('promise 1');\n }, 200);\n });\n \n let promise2 = new Promise(function(resolve, reject){\n setTimeout(function(){\n resolve('promise 2');\n }, 100);\n });\n \n Promise.race([promise1, promise2]).then(function(result){\n // result === 'promise 2' because it was resolved before promise1\n // was resolved.\n });\n ```\n \n `Promise.race` is deterministic in that only the state of the first\n settled promise matters. For example, even if other promises given to the\n `promises` array argument are resolved, but the first settled promise has\n become rejected before the other promises became fulfilled, the returned\n promise will become rejected:\n \n ```javascript\n let promise1 = new Promise(function(resolve, reject){\n setTimeout(function(){\n resolve('promise 1');\n }, 200);\n });\n \n let promise2 = new Promise(function(resolve, reject){\n setTimeout(function(){\n reject(new Error('promise 2'));\n }, 100);\n });\n \n Promise.race([promise1, promise2]).then(function(result){\n // Code here never runs\n }, function(reason){\n // reason.message === 'promise 2' because promise 2 became rejected before\n // promise 1 became fulfilled\n });\n ```\n \n An example real-world use case is implementing timeouts:\n \n ```javascript\n Promise.race([ajax('foo.json'), timeout(5000)])\n ```\n \n @method race\n @static\n @param {Array} promises array of promises to observe\n Useful for tooling.\n @return {Promise} a promise which settles in the same way as the first passed\n promise to settle.\n */\n function race$1(entries) {\n /*jshint validthis:true */\n var Constructor = this;\n\n if (!isArray(entries)) {\n return new Constructor(function (_, reject) {\n return reject(new TypeError('You must pass an array to race.'));\n });\n } else {\n return new Constructor(function (resolve, reject) {\n var length = entries.length;\n for (var i = 0; i < length; i++) {\n Constructor.resolve(entries[i]).then(resolve, reject);\n }\n });\n }\n }\n\n /**\n `Promise.reject` returns a promise rejected with the passed `reason`.\n It is shorthand for the following:\n \n ```javascript\n let promise = new Promise(function(resolve, reject){\n reject(new Error('WHOOPS'));\n });\n \n promise.then(function(value){\n // Code here doesn't run because the promise is rejected!\n }, function(reason){\n // reason.message === 'WHOOPS'\n });\n ```\n \n Instead of writing the above, your code now simply becomes the following:\n \n ```javascript\n let promise = Promise.reject(new Error('WHOOPS'));\n \n promise.then(function(value){\n // Code here doesn't run because the promise is rejected!\n }, function(reason){\n // reason.message === 'WHOOPS'\n });\n ```\n \n @method reject\n @static\n @param {Any} reason value that the returned promise will be rejected with.\n Useful for tooling.\n @return {Promise} a promise rejected with the given `reason`.\n */\n function reject$1(reason) {\n /*jshint validthis:true */\n var Constructor = this;\n var promise = new Constructor(noop);\n reject(promise, reason);\n return promise;\n }\n\n function needsResolver() {\n throw new TypeError('You must pass a resolver function as the first argument to the promise constructor');\n }\n\n function needsNew() {\n throw new TypeError(\"Failed to construct 'Promise': Please use the 'new' operator, this object constructor cannot be called as a function.\");\n }\n\n /**\n Promise objects represent the eventual result of an asynchronous operation. The\n primary way of interacting with a promise is through its `then` method, which\n registers callbacks to receive either a promise's eventual value or the reason\n why the promise cannot be fulfilled.\n \n Terminology\n -----------\n \n - `promise` is an object or function with a `then` method whose behavior conforms to this specification.\n - `thenable` is an object or function that defines a `then` method.\n - `value` is any legal JavaScript value (including undefined, a thenable, or a promise).\n - `exception` is a value that is thrown using the throw statement.\n - `reason` is a value that indicates why a promise was rejected.\n - `settled` the final resting state of a promise, fulfilled or rejected.\n \n A promise can be in one of three states: pending, fulfilled, or rejected.\n \n Promises that are fulfilled have a fulfillment value and are in the fulfilled\n state. Promises that are rejected have a rejection reason and are in the\n rejected state. A fulfillment value is never a thenable.\n \n Promises can also be said to *resolve* a value. If this value is also a\n promise, then the original promise's settled state will match the value's\n settled state. So a promise that *resolves* a promise that rejects will\n itself reject, and a promise that *resolves* a promise that fulfills will\n itself fulfill.\n \n \n Basic Usage:\n ------------\n \n ```js\n let promise = new Promise(function(resolve, reject) {\n // on success\n resolve(value);\n \n // on failure\n reject(reason);\n });\n \n promise.then(function(value) {\n // on fulfillment\n }, function(reason) {\n // on rejection\n });\n ```\n \n Advanced Usage:\n ---------------\n \n Promises shine when abstracting away asynchronous interactions such as\n `XMLHttpRequest`s.\n \n ```js\n function getJSON(url) {\n return new Promise(function(resolve, reject){\n let xhr = new XMLHttpRequest();\n \n xhr.open('GET', url);\n xhr.onreadystatechange = handler;\n xhr.responseType = 'json';\n xhr.setRequestHeader('Accept', 'application/json');\n xhr.send();\n \n function handler() {\n if (this.readyState === this.DONE) {\n if (this.status === 200) {\n resolve(this.response);\n } else {\n reject(new Error('getJSON: `' + url + '` failed with status: [' + this.status + ']'));\n }\n }\n };\n });\n }\n \n getJSON('/posts.json').then(function(json) {\n // on fulfillment\n }, function(reason) {\n // on rejection\n });\n ```\n \n Unlike callbacks, promises are great composable primitives.\n \n ```js\n Promise.all([\n getJSON('/posts'),\n getJSON('/comments')\n ]).then(function(values){\n values[0] // => postsJSON\n values[1] // => commentsJSON\n \n return values;\n });\n ```\n \n @class Promise\n @param {function} resolver\n Useful for tooling.\n @constructor\n */\n function Promise$2(resolver) {\n this[PROMISE_ID] = nextId();\n this._result = this._state = undefined;\n this._subscribers = [];\n\n if (noop !== resolver) {\n typeof resolver !== 'function' && needsResolver();\n this instanceof Promise$2 ? initializePromise(this, resolver) : needsNew();\n }\n }\n\n Promise$2.all = all$1;\n Promise$2.race = race$1;\n Promise$2.resolve = resolve$1;\n Promise$2.reject = reject$1;\n Promise$2._setScheduler = setScheduler;\n Promise$2._setAsap = setAsap;\n Promise$2._asap = asap;\n\n Promise$2.prototype = {\n constructor: Promise$2,\n\n /**\n The primary way of interacting with a promise is through its `then` method,\n which registers callbacks to receive either a promise's eventual value or the\n reason why the promise cannot be fulfilled.\n \n ```js\n findUser().then(function(user){\n // user is available\n }, function(reason){\n // user is unavailable, and you are given the reason why\n });\n ```\n \n Chaining\n --------\n \n The return value of `then` is itself a promise. This second, 'downstream'\n promise is resolved with the return value of the first promise's fulfillment\n or rejection handler, or rejected if the handler throws an exception.\n \n ```js\n findUser().then(function (user) {\n return user.name;\n }, function (reason) {\n return 'default name';\n }).then(function (userName) {\n // If `findUser` fulfilled, `userName` will be the user's name, otherwise it\n // will be `'default name'`\n });\n \n findUser().then(function (user) {\n throw new Error('Found user, but still unhappy');\n }, function (reason) {\n throw new Error('`findUser` rejected and we're unhappy');\n }).then(function (value) {\n // never reached\n }, function (reason) {\n // if `findUser` fulfilled, `reason` will be 'Found user, but still unhappy'.\n // If `findUser` rejected, `reason` will be '`findUser` rejected and we're unhappy'.\n });\n ```\n If the downstream promise does not specify a rejection handler, rejection reasons will be propagated further downstream.\n \n ```js\n findUser().then(function (user) {\n throw new PedagogicalException('Upstream error');\n }).then(function (value) {\n // never reached\n }).then(function (value) {\n // never reached\n }, function (reason) {\n // The `PedgagocialException` is propagated all the way down to here\n });\n ```\n \n Assimilation\n ------------\n \n Sometimes the value you want to propagate to a downstream promise can only be\n retrieved asynchronously. This can be achieved by returning a promise in the\n fulfillment or rejection handler. The downstream promise will then be pending\n until the returned promise is settled. This is called *assimilation*.\n \n ```js\n findUser().then(function (user) {\n return findCommentsByAuthor(user);\n }).then(function (comments) {\n // The user's comments are now available\n });\n ```\n \n If the assimliated promise rejects, then the downstream promise will also reject.\n \n ```js\n findUser().then(function (user) {\n return findCommentsByAuthor(user);\n }).then(function (comments) {\n // If `findCommentsByAuthor` fulfills, we'll have the value here\n }, function (reason) {\n // If `findCommentsByAuthor` rejects, we'll have the reason here\n });\n ```\n \n Simple Example\n --------------\n \n Synchronous Example\n \n ```javascript\n let result;\n \n try {\n result = findResult();\n // success\n } catch(reason) {\n // failure\n }\n ```\n \n Errback Example\n \n ```js\n findResult(function(result, err){\n if (err) {\n // failure\n } else {\n // success\n }\n });\n ```\n \n Promise Example;\n \n ```javascript\n findResult().then(function(result){\n // success\n }, function(reason){\n // failure\n });\n ```\n \n Advanced Example\n --------------\n \n Synchronous Example\n \n ```javascript\n let author, books;\n \n try {\n author = findAuthor();\n books = findBooksByAuthor(author);\n // success\n } catch(reason) {\n // failure\n }\n ```\n \n Errback Example\n \n ```js\n \n function foundBooks(books) {\n \n }\n \n function failure(reason) {\n \n }\n \n findAuthor(function(author, err){\n if (err) {\n failure(err);\n // failure\n } else {\n try {\n findBoooksByAuthor(author, function(books, err) {\n if (err) {\n failure(err);\n } else {\n try {\n foundBooks(books);\n } catch(reason) {\n failure(reason);\n }\n }\n });\n } catch(error) {\n failure(err);\n }\n // success\n }\n });\n ```\n \n Promise Example;\n \n ```javascript\n findAuthor().\n then(findBooksByAuthor).\n then(function(books){\n // found books\n }).catch(function(reason){\n // something went wrong\n });\n ```\n \n @method then\n @param {Function} onFulfilled\n @param {Function} onRejected\n Useful for tooling.\n @return {Promise}\n */\n then: then,\n\n /**\n `catch` is simply sugar for `then(undefined, onRejection)` which makes it the same\n as the catch block of a try/catch statement.\n \n ```js\n function findAuthor(){\n throw new Error('couldn't find that author');\n }\n \n // synchronous\n try {\n findAuthor();\n } catch(reason) {\n // something went wrong\n }\n \n // async with promises\n findAuthor().catch(function(reason){\n // something went wrong\n });\n ```\n \n @method catch\n @param {Function} onRejection\n Useful for tooling.\n @return {Promise}\n */\n 'catch': function _catch(onRejection) {\n return this.then(null, onRejection);\n }\n };\n\n /*global self*/\n function polyfill$1() {\n var local = undefined;\n\n if (typeof global !== 'undefined') {\n local = global;\n } else if (typeof self !== 'undefined') {\n local = self;\n } else {\n try {\n local = Function('return this')();\n } catch (e) {\n throw new Error('polyfill failed because global object is unavailable in this environment');\n }\n }\n\n var P = local.Promise;\n\n if (P) {\n var promiseToString = null;\n try {\n promiseToString = Object.prototype.toString.call(P.resolve());\n } catch (e) {\n // silently ignored\n }\n\n if (promiseToString === '[object Promise]' && !P.cast) {\n return;\n }\n }\n\n local.Promise = Promise$2;\n }\n\n // Strange compat..\n Promise$2.polyfill = polyfill$1;\n Promise$2.Promise = Promise$2;\n\n return Promise$2;\n});\n\n//# sourceMappingURL=es6-promise.map\n\n//# sourceURL=webpack://Contentstack/./node_modules/es6-promise/dist/es6-promise.js?");
/***/ }),
/***/ "./node_modules/he/he.js":
/*!*******************************!*\
!*** ./node_modules/he/he.js ***!
\*******************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {
"use strict";
eval("/* WEBPACK VAR INJECTION */(function(module) {var __WEBPACK_AMD_DEFINE_RESULT__;\n\nvar _typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; };\n\n/*! https://mths.be/he v1.2.0 by @mathias | MIT license */\n;(function (root) {\n\n\t// Detect free variables `exports`.\n\tvar freeExports = ( false ? undefined : _typeof(exports)) == 'object' && exports;\n\n\t// Detect free variable `module`.\n\tvar freeModule = ( false ? undefined : _typeof(module)) == 'object' && module && module.exports == freeExports && module;\n\n\t// Detect free variable `global`, from Node.js or Browserified code,\n\t// and use it as `root`.\n\tvar freeGlobal = (typeof global === 'undefined' ? 'undefined' : _typeof(global)) == 'object' && global;\n\tif (freeGlobal.global === freeGlobal || freeGlobal.window === freeGlobal) {\n\t\troot = freeGlobal;\n\t}\n\n\t/*--------------------------------------------------------------------------*/\n\n\t// All astral symbols.\n\tvar regexAstralSymbols = /[\\uD800-\\uDBFF][\\uDC00-\\uDFFF]/g;\n\t// All ASCII symbols (not just printable ASCII) except those listed in the\n\t// first column of the overrides table.\n\t// https://html.spec.whatwg.org/multipage/syntax.html#table-charref-overrides\n\tvar regexAsciiWhitelist = /[\\x01-\\x7F]/g;\n\t// All BMP symbols that are not ASCII newlines, printable ASCII symbols, or\n\t// code points listed in the first column of the overrides table on\n\t// https://html.spec.whatwg.org/multipage/syntax.html#table-charref-overrides.\n\tvar regexBmpWhitelist = /[\\x01-\\t\\x0B\\f\\x0E-\\x1F\\x7F\\x81\\x8D\\x8F\\x90\\x9D\\xA0-\\uFFFF]/g;\n\n\tvar regexEncodeNonAscii = /<\\u20D2|=\\u20E5|>\\u20D2|\\u205F\\u200A|\\u219D\\u0338|\\u2202\\u0338|\\u2220\\u20D2|\\u2229\\uFE00|\\u222A\\uFE00|\\u223C\\u20D2|\\u223D\\u0331|\\u223E\\u0333|\\u2242\\u0338|\\u224B\\u0338|\\u224D\\u20D2|\\u224E\\u0338|\\u224F\\u0338|\\u2250\\u0338|\\u2261\\u20E5|\\u2264\\u20D2|\\u2265\\u20D2|\\u2266\\u0338|\\u2267\\u0338|\\u2268\\uFE00|\\u2269\\uFE00|\\u226A\\u0338|\\u226A\\u20D2|\\u226B\\u0338|\\u226B\\u20D2|\\u227F\\u0338|\\u2282\\u20D2|\\u2283\\u20D2|\\u228A\\uFE00|\\u228B\\uFE00|\\u228F\\u0338|\\u2290\\u0338|\\u2293\\uFE00|\\u2294\\uFE00|\\u22B4\\u20D2|\\u22B5\\u20D2|\\u22D8\\u0338|\\u22D9\\u0338|\\u22DA\\uFE00|\\u22DB\\uFE00|\\u22F5\\u0338|\\u22F9\\u0338|\\u2933\\u0338|\\u29CF\\u0338|\\u29D0\\u0338|\\u2A6D\\u0338|\\u2A70\\u0338|\\u2A7D\\u0338|\\u2A7E\\u0338|\\u2AA1\\u0338|\\u2AA2\\u0338|\\u2AAC\\uFE00|\\u2AAD\\uFE00|\\u2AAF\\u0338|\\u2AB0\\u0338|\\u2AC5\\u0338|\\u2AC6\\u0338|\\u2ACB\\uFE00|\\u2ACC\\uFE00|\\u2AFD\\u20E5|[\\xA0-\\u0113\\u0116-\\u0122\\u0124-\\u012B\\u012E-\\u014D\\u0150-\\u017E\\u0192\\u01B5\\u01F5\\u0237\\u02C6\\u02C7\\u02D8-\\u02DD\\u0311\\u0391-\\u03A1\\u03A3-\\u03A9\\u03B1-\\u03C9\\u03D1\\u03D2\\u03D5\\u03D6\\u03DC\\u03DD\\u03F0\\u03F1\\u03F5\\u03F6\\u0401-\\u040C\\u040E-\\u044F\\u0451-\\u045C\\u045E\\u045F\\u2002-\\u2005\\u2007-\\u2010\\u2013-\\u2016\\u2018-\\u201A\\u201C-\\u201E\\u2020-\\u2022\\u2025\\u2026\\u2030-\\u2035\\u2039\\u203A\\u203E\\u2041\\u2043\\u2044\\u204F\\u2057\\u205F-\\u2063\\u20AC\\u20DB\\u20DC\\u2102\\u2105\\u210A-\\u2113\\u2115-\\u211E\\u2122\\u2124\\u2127-\\u2129\\u212C\\u212D\\u212F-\\u2131\\u2133-\\u2138\\u2145-\\u2148\\u2153-\\u215E\\u2190-\\u219B\\u219D-\\u21A7\\u21A9-\\u21AE\\u21B0-\\u21B3\\u21B5-\\u21B7\\u21BA-\\u21DB\\u21DD\\u21E4\\u21E5\\u21F5\\u21FD-\\u2205\\u2207-\\u2209\\u220B\\u220C\\u220F-\\u2214\\u2216-\\u2218\\u221A\\u221D-\\u2238\\u223A-\\u2257\\u2259\\u225A\\u225C\\u225F-\\u2262\\u2264-\\u228B\\u228D-\\u229B\\u229D-\\u22A5\\u22A7-\\u22B0\\u22B2-\\u22BB\\u22BD-\\u22DB\\u22DE-\\u22E3\\u22E6-\\u22F7\\u22F9-\\u22FE\\u2305\\u2306\\u2308-\\u2310\\u2312\\u2313\\u2315\\u2316\\u231C-\\u231F\\u2322\\u2323\\u232D\\u232E\\u2336\\u233D\\u233F\\u237C\\u23B0\\u23B1\\u23B4-\\u23B6\\u23DC-\\u23DF\\u23E2\\u23E7\\u2423\\u24C8\\u2500\\u2502\\u250C\\u2510\\u2514\\u2518\\u251C\\u2524\\u252C\\u2534\\u253C\\u2550-\\u256C\\u2580\\u2584\\u2588\\u2591-\\u2593\\u25A1\\u25AA\\u25AB\\u25AD\\u25AE\\u25B1\\u25B3-\\u25B5\\u25B8\\u25B9\\u25BD-\\u25BF\\u25C2\\u25C3\\u25CA\\u25CB\\u25EC\\u25EF\\u25F8-\\u25FC\\u2605\\u2606\\u260E\\u2640\\u2642\\u2660\\u2663\\u2665\\u2666\\u266A\\u266D-\\u266F\\u2713\\u2717\\u2720\\u2736\\u2758\\u2772\\u2773\\u27C8\\u27C9\\u27E6-\\u27ED\\u27F5-\\u27FA\\u27FC\\u27FF\\u2902-\\u2905\\u290C-\\u2913\\u2916\\u2919-\\u2920\\u2923-\\u292A\\u2933\\u2935-\\u2939\\u293C\\u293D\\u2945\\u2948-\\u294B\\u294E-\\u2976\\u2978\\u2979\\u297B-\\u297F\\u2985\\u2986\\u298B-\\u2996\\u299A\\u299C\\u299D\\u29A4-\\u29B7\\u29B9\\u29BB\\u29BC\\u29BE-\\u29C5\\u29C9\\u29CD-\\u29D0\\u29DC-\\u29DE\\u29E3-\\u29E5\\u29EB\\u29F4\\u29F6\\u2A00-\\u2A02\\u2A04\\u2A06\\u2A0C\\u2A0D\\u2A10-\\u2A17\\u2A22-\\u2A27\\u2A29\\u2A2A\\u2A2D-\\u2A31\\u2A33-\\u2A3C\\u2A3F\\u2A40\\u2A42-\\u2A4D\\u2A50\\u2A53-\\u2A58\\u2A5A-\\u2A5D\\u2A5F\\u2A66\\u2A6A\\u2A6D-\\u2A75\\u2A77-\\u2A9A\\u2A9D-\\u2AA2\\u2AA4-\\u2AB0\\u2AB3-\\u2AC8\\u2ACB\\u2ACC\\u2ACF-\\u2ADB\\u2AE4\\u2AE6-\\u2AE9\\u2AEB-\\u2AF3\\u2AFD\\uFB00-\\uFB04]|\\uD835[\\uDC9C\\uDC9E\\uDC9F\\uDCA2\\uDCA5\\uDCA6\\uDCA9-\\uDCAC\\uDCAE-\\uDCB9\\uDCBB\\uDCBD-\\uDCC3\\uDCC5-\\uDCCF\\uDD04\\uDD05\\uDD07-\\uDD0A\\uDD0D-\\uDD14\\uDD16-\\uDD1C\\uDD1E-\\uDD39\\uDD3B-\\uDD3E\\uDD40-\\uDD44\\uDD46\\uDD4A-\\uDD50\\uDD52-\\uDD6B]/g;\n\tvar encodeMap = { '\\xAD': 'shy', '\\u200C': 'zwnj', '\\u200D': 'zwj', '\\u200E': 'lrm', '\\u2063': 'ic', '\\u2062': 'it', '\\u2061': 'af', '\\u200F': 'rlm', '\\u200B': 'ZeroWidthSpace', '\\u2060': 'NoBreak', '\\u0311': 'DownBreve', '\\u20DB': 'tdot', '\\u20DC': 'DotDot', '\\t': 'Tab', '\\n': 'NewLine', '\\u2008': 'puncsp', '\\u205F': 'MediumSpace', '\\u2009': 'thinsp', '\\u200A': 'hairsp', '\\u2004': 'emsp13', '\\u2002': 'ensp', '\\u2005': 'emsp14', '\\u2003': 'emsp', '\\u2007': 'numsp', '\\xA0': 'nbsp', '\\u205F\\u200A': 'ThickSpace', '\\u203E': 'oline', '_': 'lowbar', '\\u2010': 'dash', '\\u2013': 'ndash', '\\u2014': 'mdash', '\\u2015': 'horbar', ',': 'comma', ';': 'semi', '\\u204F': 'bsemi', ':': 'colon', '\\u2A74': 'Colone', '!': 'excl', '\\xA1': 'iexcl', '?': 'quest', '\\xBF': 'iquest', '.': 'period', '\\u2025': 'nldr', '\\u2026': 'mldr', '\\xB7': 'middot', '\\'': 'apos', '\\u2018': 'lsquo', '\\u2019': 'rsquo', '\\u201A': 'sbquo', '\\u2039': 'lsaquo', '\\u203A': 'rsaquo', '\"': 'quot', '\\u201C': 'ldquo', '\\u201D': 'rdquo', '\\u201E': 'bdquo', '\\xAB': 'laquo', '\\xBB': 'raquo', '(': 'lpar', ')': 'rpar', '[': 'lsqb', ']': 'rsqb', '{': 'lcub', '}': 'rcub', '\\u2308': 'lceil', '\\u2309': 'rceil', '\\u230A': 'lfloor', '\\u230B': 'rfloor', '\\u2985': 'lopar', '\\u2986': 'ropar', '\\u298B': 'lbrke', '\\u298C': 'rbrke', '\\u298D': 'lbrkslu', '\\u298E': 'rbrksld', '\\u298F': 'lbrksld', '\\u2990': 'rbrkslu', '\\u2991': 'langd', '\\u2992': 'rangd', '\\u2993': 'lparlt', '\\u2994': 'rpargt', '\\u2995': 'gtlPar', '\\u2996': 'ltrPar', '\\u27E6': 'lobrk', '\\u27E7': 'robrk', '\\u27E8': 'lang', '\\u27E9': 'rang', '\\u27EA': 'Lang', '\\u27EB': 'Rang', '\\u27EC': 'loang', '\\u27ED': 'roang', '\\u2772': 'lbbrk', '\\u2773': 'rbbrk', '\\u2016': 'Vert', '\\xA7': 'sect', '\\xB6': 'para', '@': 'commat', '*': 'ast', '/': 'sol', 'undefined': null, '&': 'amp', '#': 'num', '%': 'percnt', '\\u2030': 'permil', '\\u2031': 'pertenk', '\\u2020': 'dagger', '\\u2021': 'Dagger', '\\u2022': 'bull', '\\u2043': 'hybull', '\\u2032': 'prime', '\\u2033': 'Prime', '\\u2034': 'tprime', '\\u2057': 'qprime', '\\u2035': 'bprime', '\\u2041': 'caret', '`': 'grave', '\\xB4': 'acute', '\\u02DC': 'tilde', '^': 'Hat', '\\xAF': 'macr', '\\u02D8': 'breve', '\\u02D9': 'dot', '\\xA8': 'die', '\\u02DA': 'ring', '\\u02DD': 'dblac', '\\xB8': 'cedil', '\\u02DB': 'ogon', '\\u02C6': 'circ', '\\u02C7': 'caron', '\\xB0': 'deg', '\\xA9': 'copy', '\\xAE': 'reg', '\\u2117': 'copysr', '\\u2118': 'wp', '\\u211E': 'rx', '\\u2127': 'mho', '\\u2129': 'iiota', '\\u2190': 'larr', '\\u219A': 'nlarr', '\\u2192': 'rarr', '\\u219B': 'nrarr', '\\u2191': 'uarr', '\\u2193': 'darr', '\\u2194': 'harr', '\\u21AE': 'nharr', '\\u2195': 'varr', '\\u2196': 'nwarr', '\\u2197': 'nearr', '\\u2198': 'searr', '\\u2199': 'swarr', '\\u219D': 'rarrw', '\\u219D\\u0338': 'nrarrw', '\\u219E': 'Larr', '\\u219F': 'Uarr', '\\u21A0': 'Rarr', '\\u21A1': 'Darr', '\\u21A2': 'larrtl', '\\u21A3': 'rarrtl', '\\u21A4': 'mapstoleft', '\\u21A5': 'mapstoup', '\\u21A6': 'map', '\\u21A7': 'mapstodown', '\\u21A9': 'larrhk', '\\u21AA': 'rarrhk', '\\u21AB': 'larrlp', '\\u21AC': 'rarrlp', '\\u21AD': 'harrw', '\\u21B0': 'lsh', '\\u21B1': 'rsh', '\\u21B2': 'ldsh', '\\u21B3': 'rdsh', '\\u21B5': 'crarr', '\\u21B6': 'cularr', '\\u21B7': 'curarr', '\\u21BA': 'olarr', '\\u21BB': 'orarr', '\\u21BC': 'lharu', '\\u21BD': 'lhard', '\\u21BE': 'uharr', '\\u21BF': 'uharl', '\\u21C0': 'rharu', '\\u21C1': 'rhard', '\\u21C2': 'dharr', '\\u21C3': 'dharl', '\\u21C4': 'rlarr', '\\u21C5': 'udarr', '\\u21C6': 'lrarr', '\\u21C7': 'llarr', '\\u21C8': 'uuarr', '\\u21C9': 'rrarr', '\\u21CA': 'ddarr', '\\u21CB': 'lrhar', '\\u21CC': 'rlhar', '\\u21D0': 'lArr', '\\u21CD': 'nlArr', '\\u21D1': 'uArr', '\\u21D2': 'rArr', '\\u21CF': 'nrArr', '\\u21D3': 'dArr', '\\u21D4': 'iff', '\\u21CE': 'nhArr', '\\u21D5': 'vArr', '\\u21D6': 'nwArr', '\\u21D7': 'neArr', '\\u21D8': 'seArr', '\\u21D9': 'swArr', '\\u21DA': 'lAarr', '\\u21DB': 'rAarr', '\\u21DD': 'zigrarr', '\\u21E4': 'larrb', '\\u21E5': 'rarrb', '\\u21F5': 'duarr', '\\u21FD': 'loarr', '\\u21FE': 'roarr', '\\u21FF': 'hoarr', '\\u2200': 'forall', '\\u2201': 'comp', '\\u2202': 'part', '\\u2202\\u0338': 'npart', '\\u2203': 'exist', '\\u2204': 'nexist', '\\u2205': 'empty', '\\u2207': 'Del', '\\u2208': 'in', '\\u2209': 'notin', '\\u220B': 'ni', '\\u220C': 'notni', '\\u03F6': 'bepsi', '\\u220F': 'prod', '\\u2210': 'coprod', '\\u2211': 'sum', '+': 'plus', '\\xB1': 'pm', '\\xF7': 'div', '\\xD7': 'times', '<': 'lt', '\\u226E': 'nlt', '<\\u20D2': 'nvlt', '=': 'equals', '\\u2260': 'ne', '=\\u20E5': 'bne', '\\u2A75': 'Equal', '>': 'gt', '\\u226F': 'ngt', '>\\u20D2': 'nvgt', '\\xAC': 'not', '|': 'vert', '\\xA6': 'brvbar', '\\u2212': 'minus', '\\u2213': 'mp', '\\u2214': 'plusdo', '\\u2044': 'frasl', '\\u2216': 'setmn', '\\u2217': 'lowast', '\\u2218': 'compfn', '\\u221A': 'Sqrt', '\\u221D': 'prop', '\\u221E': 'infin', '\\u221F': 'angrt', '\\u2220': 'ang', '\\u2220\\u20D2': 'nang', '\\u2221': 'angmsd', '\\u2222': 'angsph', '\\u2223': 'mid', '\\u2224': 'nmid', '\\u2225': 'par', '\\u2226': 'npar', '\\u2227': 'and', '\\u2228': 'or', '\\u2229': 'cap', '\\u2229\\uFE00': 'caps', '\\u222A': 'cup', '\\u222A\\uFE00': 'cups', '\\u222B': 'int', '\\u222C': 'Int', '\\u222D': 'tint', '\\u2A0C': 'qint', '\\u222E': 'oint', '\\u222F': 'Conint', '\\u2230': 'Cconint', '\\u2231': 'cwint', '\\u2232': 'cwconint', '\\u2233': 'awconint', '\\u2234': 'there4', '\\u2235': 'becaus', '\\u2236': 'ratio', '\\u2237': 'Colon', '\\u2238': 'minusd', '\\u223A': 'mDDot', '\\u223B': 'homtht', '\\u223C': 'sim', '\\u2241': 'nsim', '\\u223C\\u20D2': 'nvsim', '\\u223D': 'bsim', '\\u223D\\u0331': 'race', '\\u223E': 'ac', '\\u223E\\u0333': 'acE', '\\u223F': 'acd', '\\u2240': 'wr', '\\u2242': 'esim', '\\u2242\\u0338': 'nesim', '\\u2243': 'sime', '\\u2244': 'nsime', '\\u2245': 'cong', '\\u2247': 'ncong', '\\u2246': 'simne', '\\u2248': 'ap', '\\u2249': 'nap', '\\u224A': 'ape', '\\u224B': 'apid', '\\u224B\\u0338': 'napid', '\\u224C': 'bcong', '\\u224D': 'CupCap', '\\u226D': 'NotCupCap', '\\u224D\\u20D2': 'nvap', '\\u224E': 'bump', '\\u224E\\u0338': 'nbump', '\\u224F': 'bumpe', '\\u224F\\u0338': 'nbumpe', '\\u2250': 'doteq', '\\u2250\\u0338': 'nedot', '\\u2251': 'eDot', '\\u2252': 'efDot', '\\u2253': 'erDot', '\\u2254': 'colone', '\\u2255': 'ecolon', '\\u2256': 'ecir', '\\u2257': 'cire', '\\u2259': 'wedgeq', '\\u225A': 'veeeq', '\\u225C': 'trie', '\\u225F': 'equest', '\\u2261': 'equiv', '\\u2262': 'nequiv', '\\u2261\\u20E5': 'bnequiv', '\\u2264': 'le', '\\u2270': 'nle', '\\u2264\\u20D2': 'nvle', '\\u2265': 'ge', '\\u2271': 'nge', '\\u2265\\u20D2': 'nvge', '\\u2266': 'lE', '\\u2266\\u0338': 'nlE', '\\u2267': 'gE', '\\u2267\\u0338': 'ngE', '\\u2268\\uFE00': 'lvnE', '\\u2268': 'lnE', '\\u2269': 'gnE', '\\u2269\\uFE00': 'gvnE', '\\u226A': 'll', '\\u226A\\u0338': 'nLtv', '\\u226A\\u20D2': 'nLt', '\\u226B': 'gg', '\\u226B\\u0338': 'nGtv', '\\u226B\\u20D2': 'nGt', '\\u226C': 'twixt', '\\u2272': 'lsim', '\\u2274': 'nlsim', '\\u2273': 'gsim', '\\u2275': 'ngsim', '\\u2276': 'lg', '\\u2278': 'ntlg', '\\u2277': 'gl', '\\u2279': 'ntgl', '\\u227A': 'pr', '\\u2280': 'npr', '\\u227B': 'sc', '\\u2281': 'nsc', '\\u227C': 'prcue', '\\u22E0': 'nprcue', '\\u227D': 'sccue', '\\u22E1': 'nsccue', '\\u227E': 'prsim', '\\u227F': 'scsim', '\\u227F\\u0338': 'NotSucceedsTilde', '\\u2282': 'sub', '\\u2284': 'nsub', '\\u2282\\u20D2': 'vnsub', '\\u2283': 'sup', '\\u2285': 'nsup', '\\u2283\\u20D2': 'vnsup', '\\u2286': 'sube', '\\u2288': 'nsube', '\\u2287': 'supe', '\\u2289': 'nsupe', '\\u228A\\uFE00': 'vsubne', '\\u228A': 'subne', '\\u228B\\uFE00': 'vsupne', '\\u228B': 'supne', '\\u228D': 'cupdot', '\\u228E': 'uplus', '\\u228F': 'sqsub', '\\u228F\\u0338': 'NotSquareSubset', '\\u2290': 'sqsup', '\\u2290\\u0338': 'NotSquareSuperset', '\\u2291': 'sqsube', '\\u22E2': 'nsqsube', '\\u2292': 'sqsupe', '\\u22E3': 'nsqsupe', '\\u2293': 'sqcap', '\\u2293\\uFE00': 'sqcaps', '\\u2294': 'sqcup', '\\u2294\\uFE00': 'sqcups', '\\u2295': 'oplus', '\\u2296': 'ominus', '\\u2297': 'otimes', '\\u2298': 'osol', '\\u2299': 'odot', '\\u229A': 'ocir', '\\u229B': 'oast', '\\u229D': 'odash', '\\u229E': 'plusb', '\\u229F': 'minusb', '\\u22A0': 'timesb', '\\u22A1': 'sdotb', '\\u22A2': 'vdash', '\\u22AC': 'nvdash', '\\u22A3': 'dashv', '\\u22A4': 'top', '\\u22A5': 'bot', '\\u22A7': 'models', '\\u22A8': 'vDash', '\\u22AD': 'nvDash', '\\u22A9': 'Vdash', '\\u22AE': 'nVdash', '\\u22AA': 'Vvdash', '\\u22AB': 'VDash', '\\u22AF': 'nVDash', '\\u22B0': 'prurel', '\\u22B2': 'vltri', '\\u22EA': 'nltri', '\\u22B3': 'vrtri', '\\u22EB': 'nrtri', '\\u22B4': 'ltrie', '\\u22EC': 'nltrie', '\\u22B4\\u20D2': 'nvltrie', '\\u22B5': 'rtrie', '\\u22ED': 'nrtrie', '\\u22B5\\u20D2': 'nvrtrie', '\\u22B6': 'origof', '\\u22B7': 'imof', '\\u22B8': 'mumap', '\\u22B9': 'hercon', '\\u22BA': 'intcal', '\\u22BB': 'veebar', '\\u22BD': 'barvee', '\\u22BE': 'angrtvb', '\\u22BF': 'lrtri', '\\u22C0': 'Wedge', '\\u22C1': 'Vee', '\\u22C2': 'xcap', '\\u22C3': 'xcup', '\\u22C4': 'diam', '\\u22C5': 'sdot', '\\u22C6': 'Star', '\\u22C7': 'divonx', '\\u22C8': 'bowtie', '\\u22C9': 'ltimes', '\\u22CA': 'rtimes', '\\u22CB': 'lthree', '\\u22CC': 'rthree', '\\u22CD': 'bsime', '\\u22CE': 'cuvee', '\\u22CF': 'cuwed', '\\u22D0': 'Sub', '\\u22D1': 'Sup', '\\u22D2': 'Cap', '\\u22D3': 'Cup', '\\u22D4': 'fork', '\\u22D5': 'epar', '\\u22D6': 'ltdot', '\\u22D7': 'gtdot', '\\u22D8': 'Ll', '\\u22D8\\u0338': 'nLl', '\\u22D9': 'Gg', '\\u22D9\\u0338': 'nGg', '\\u22DA\\uFE00': 'lesg', '\\u22DA': 'leg', '\\u22DB': 'gel', '\\u22DB\\uFE00': 'gesl', '\\u22DE': 'cuepr', '\\u22DF': 'cuesc', '\\u22E6': 'lnsim', '\\u22E7': 'gnsim', '\\u22E8': 'prnsim', '\\u22E9': 'scnsim', '\\u22EE': 'vellip', '\\u22EF': 'ctdot', '\\u22F0': 'utdot', '\\u22F1': 'dtdot', '\\u22F2': 'disin', '\\u22F3': 'isinsv', '\\u22F4': 'isins', '\\u22F5': 'isindot', '\\u22F5\\u0338': 'notindot', '\\u22F6': 'notinvc', '\\u22F7': 'notinvb', '\\u22F9': 'isinE', '\\u22F9\\u0338': 'notinE', '\\u22FA': 'nisd', '\\u22FB': 'xnis', '\\u22FC': 'nis', '\\u22FD': 'notnivc', '\\u22FE': 'notnivb', '\\u2305': 'barwed', '\\u2306': 'Barwed', '\\u230C': 'drcrop', '\\u230D': 'dlcrop', '\\u230E': 'urcrop', '\\u230F': 'ulcrop', '\\u2310': 'bnot', '\\u2312': 'profline', '\\u2313': 'profsurf', '\\u2315': 'telrec', '\\u2316': 'target', '\\u231C': 'ulcorn', '\\u231D': 'urcorn', '\\u231E': 'dlcorn', '\\u231F': 'drcorn', '\\u2322': 'frown', '\\u2323': 'smile', '\\u232D': 'cylcty', '\\u232E': 'profalar', '\\u2336': 'topbot', '\\u233D': 'ovbar', '\\u233F': 'solbar', '\\u237C': 'angzarr', '\\u23B0': 'lmoust', '\\u23B1': 'rmoust', '\\u23B4': 'tbrk', '\\u23B5': 'bbrk', '\\u23B6': 'bbrktbrk', '\\u23DC': 'OverParenthesis', '\\u23DD': 'UnderParenthesis', '\\u23DE': 'OverBrace', '\\u23DF': 'UnderBrace', '\\u23E2': 'trpezium', '\\u23E7': 'elinters', '\\u2423': 'blank', '\\u2500': 'boxh', '\\u2502': 'boxv', '\\u250C': 'boxdr', '\\u2510': 'boxdl', '\\u2514': 'boxur', '\\u2518': 'boxul', '\\u251C': 'boxvr', '\\u2524': 'boxvl', '\\u252C': 'boxhd', '\\u2534': 'boxhu', '\\u253C': 'boxvh', '\\u2550': 'boxH', '\\u2551': 'boxV', '\\u2552': 'boxdR', '\\u2553': 'boxDr', '\\u2554': 'boxDR', '\\u2555': 'boxdL', '\\u2556': 'boxDl', '\\u2557': 'boxDL', '\\u2558': 'boxuR', '\\u2559': 'boxUr', '\\u255A': 'boxUR', '\\u255B': 'boxuL', '\\u255C': 'boxUl', '\\u255D': 'boxUL', '\\u255E': 'boxvR', '\\u255F': 'boxVr', '\\u2560': 'boxVR', '\\u2561': 'boxvL', '\\u2562': 'boxVl', '\\u2563': 'boxVL', '\\u2564': 'boxHd', '\\u2565': 'boxhD', '\\u2566': 'boxHD', '\\u2567': 'boxHu', '\\u2568': 'boxhU', '\\u2569': 'boxHU', '\\u256A': 'boxvH', '\\u256B': 'boxVh', '\\u256C': 'boxVH', '\\u2580': 'uhblk', '\\u2584': 'lhblk', '\\u2588': 'block', '\\u2591': 'blk14', '\\u2592': 'blk12', '\\u2593': 'blk34', '\\u25A1': 'squ', '\\u25AA': 'squf', '\\u25AB': 'EmptyVerySmallSquare', '\\u25AD': 'rect', '\\u25AE': 'marker', '\\u25B1': 'fltns', '\\u25B3': 'xutri', '\\u25B4': 'utrif', '\\u25B5': 'utri', '\\u25B8': 'rtrif', '\\u25B9': 'rtri', '\\u25BD': 'xdtri', '\\u25BE': 'dtrif', '\\u25BF': 'dtri', '\\u25C2': 'ltrif', '\\u25C3': 'ltri', '\\u25CA': 'loz', '\\u25CB': 'cir', '\\u25EC': 'tridot', '\\u25EF': 'xcirc', '\\u25F8': 'ultri', '\\u25F9': 'urtri', '\\u25FA': 'lltri', '\\u25FB': 'EmptySmallSquare', '\\u25FC': 'FilledSmallSquare', '\\u2605': 'starf', '\\u2606': 'star', '\\u260E': 'phone', '\\u2640': 'female', '\\u2642': 'male', '\\u2660': 'spades', '\\u2663': 'clubs', '\\u2665': 'hearts', '\\u2666': 'diams', '\\u266A': 'sung', '\\u2713': 'check', '\\u2717': 'cross', '\\u2720': 'malt', '\\u2736': 'sext', '\\u2758': 'VerticalSeparator', '\\u27C8': 'bsolhsub', '\\u27C9': 'suphsol', '\\u27F5': 'xlarr', '\\u27F6': 'xrarr', '\\u27F7': 'xharr', '\\u27F8': 'xlArr', '\\u27F9': 'xrArr', '\\u27FA': 'xhArr', '\\u27FC': 'xmap', '\\u27FF': 'dzigrarr', '\\u2902': 'nvlArr', '\\u2903': 'nvrArr', '\\u2904': 'nvHarr', '\\u2905': 'Map', '\\u290C': 'lbarr', '\\u290D': 'rbarr', '\\u290E': 'lBarr', '\\u290F': 'rBarr', '\\u2910': 'RBarr', '\\u2911': 'DDotrahd', '\\u2912': 'UpArrowBar', '\\u2913': 'DownArrowBar', '\\u2916': 'Rarrtl', '\\u2919': 'latail', '\\u291A': 'ratail', '\\u291B': 'lAtail', '\\u291C': 'rAtail', '\\u291D': 'larrfs', '\\u291E': 'rarrfs', '\\u291F': 'larrbfs', '\\u2920': 'rarrbfs', '\\u2923': 'nwarhk', '\\u2924': 'nearhk', '\\u2925': 'searhk', '\\u2926': 'swarhk', '\\u2927': 'nwnear', '\\u2928': 'toea', '\\u2929': 'tosa', '\\u292A': 'swnwar', '\\u2933': 'rarrc', '\\u2933\\u0338': 'nrarrc', '\\u2935': 'cudarrr', '\\u2936': 'ldca', '\\u2937': 'rdca', '\\u2938': 'cudarrl', '\\u2939': 'larrpl', '\\u293C': 'curarrm', '\\u293D': 'cularrp', '\\u2945': 'rarrpl', '\\u2948': 'harrcir', '\\u2949': 'Uarrocir', '\\u294A': 'lurdshar', '\\u294B': 'ldrushar', '\\u294E': 'LeftRightVector', '\\u294F': 'RightUpDownVector', '\\u2950': 'DownLeftRightVector', '\\u2951': 'LeftUpDownVector', '\\u2952': 'LeftVectorBar', '\\u2953': 'RightVectorBar', '\\u2954': 'RightUpVectorBar', '\\u2955': 'RightDownVectorBar', '\\u2956': 'DownLeftVectorBar', '\\u2957': 'DownRightVectorBar', '\\u2958': 'LeftUpVectorBar', '\\u2959': 'LeftDownVectorBar', '\\u295A': 'LeftTeeVector', '\\u295B': 'RightTeeVector', '\\u295C': 'RightUpTeeVector', '\\u295D': 'RightDownTeeVector', '\\u295E': 'DownLeftTeeVector', '\\u295F': 'DownRightTeeVector', '\\u2960': 'LeftUpTeeVector', '\\u2961': 'LeftDownTeeVector', '\\u2962': 'lHar', '\\u2963': 'uHar', '\\u2964': 'rHar', '\\u2965': 'dHar', '\\u2966': 'luruhar', '\\u2967': 'ldrdhar', '\\u2968': 'ruluhar', '\\u2969': 'rdldhar', '\\u296A': 'lharul', '\\u296B': 'llhard', '\\u296C': 'rharul', '\\u296D': 'lrhard', '\\u296E': 'udhar', '\\u296F': 'duhar', '\\u2970': 'RoundImplies', '\\u2971': 'erarr', '\\u2972': 'simrarr', '\\u2973': 'larrsim', '\\u2974': 'rarrsim', '\\u2975': 'rarrap', '\\u2976': 'ltlarr', '\\u2978': 'gtrarr', '\\u2979': 'subrarr', '\\u297B': 'suplarr', '\\u297C': 'lfisht', '\\u297D': 'rfisht', '\\u297E': 'ufisht', '\\u297F': 'dfisht', '\\u299A': 'vzigzag', '\\u299C': 'vangrt', '\\u299D': 'angrtvbd', '\\u29A4': 'ange', '\\u29A5': 'range', '\\u29A6': 'dwangle', '\\u29A7': 'uwangle', '\\u29A8': 'angmsdaa', '\\u29A9': 'angmsdab', '\\u29AA': 'angmsdac', '\\u29AB': 'angmsdad', '\\u29AC': 'angmsdae', '\\u29AD': 'angmsdaf', '\\u29AE': 'angmsdag', '\\u29AF': 'angmsdah', '\\u29B0': 'bemptyv', '\\u29B1': 'demptyv', '\\u29B2': 'cemptyv', '\\u29B3': 'raemptyv', '\\u29B4': 'laemptyv', '\\u29B5': 'ohbar', '\\u29B6': 'omid', '\\u29B7': 'opar', '\\u29B9': 'operp', '\\u29BB': 'olcross', '\\u29BC': 'odsold', '\\u29BE': 'olcir', '\\u29BF': 'ofcir', '\\u29C0': 'olt', '\\u29C1': 'ogt', '\\u29C2': 'cirscir', '\\u29C3': 'cirE', '\\u29C4': 'solb', '\\u29C5': 'bsolb', '\\u29C9': 'boxbox', '\\u29CD': 'trisb', '\\u29CE': 'rtriltri', '\\u29CF': 'LeftTriangleBar', '\\u29CF\\u0338': 'NotLeftTriangleBar', '\\u29D0': 'RightTriangleBar', '\\u29D0\\u0338': 'NotRightTriangleBar', '\\u29DC': 'iinfin', '\\u29DD': 'infintie', '\\u29DE': 'nvinfin', '\\u29E3': 'eparsl', '\\u29E4': 'smeparsl', '\\u29E5': 'eqvparsl', '\\u29EB': 'lozf', '\\u29F4': 'RuleDelayed', '\\u29F6': 'dsol', '\\u2A00': 'xodot', '\\u2A01': 'xoplus', '\\u2A02': 'xotime', '\\u2A04': 'xuplus', '\\u2A06': 'xsqcup', '\\u2A0D': 'fpartint', '\\u2A10': 'cirfnint', '\\u2A11': 'awint', '\\u2A12': 'rppolint', '\\u2A13': 'scpolint', '\\u2A14': 'npolint', '\\u2A15': 'pointint', '\\u2A16': 'quatint', '\\u2A17': 'intlarhk', '\\u2A22': 'pluscir', '\\u2A23': 'plusacir', '\\u2A24': 'simplus', '\\u2A25': 'plusdu', '\\u2A26': 'plussim', '\\u2A27': 'plustwo', '\\u2A29': 'mcomma', '\\u2A2A': 'minusdu', '\\u2A2D': 'loplus', '\\u2A2E': 'roplus', '\\u2A2F': 'Cross', '\\u2A30': 'timesd', '\\u2A31': 'timesbar', '\\u2A33': 'smashp', '\\u2A34': 'lotimes', '\\u2A35': 'rotimes', '\\u2A36': 'otimesas', '\\u2A37': 'Otimes', '\\u2A38': 'odiv', '\\u2A39': 'triplus', '\\u2A3A': 'triminus', '\\u2A3B': 'tritime', '\\u2A3C': 'iprod', '\\u2A3F': 'amalg', '\\u2A40': 'capdot', '\\u2A42': 'ncup', '\\u2A43': 'ncap', '\\u2A44': 'capand', '\\u2A45': 'cupor', '\\u2A46': 'cupcap', '\\u2A47': 'capcup', '\\u2A48': 'cupbrcap', '\\u2A49': 'capbrcup', '\\u2A4A': 'cupcup', '\\u2A4B': 'capcap', '\\u2A4C': 'ccups', '\\u2A4D': 'ccaps', '\\u2A50': 'ccupssm', '\\u2A53': 'And', '\\u2A54': 'Or', '\\u2A55': 'andand', '\\u2A56': 'oror', '\\u2A57': 'orslope', '\\u2A58': 'andslope', '\\u2A5A': 'andv', '\\u2A5B': 'orv', '\\u2A5C': 'andd', '\\u2A5D': 'ord', '\\u2A5F': 'wedbar', '\\u2A66': 'sdote', '\\u2A6A': 'simdot', '\\u2A6D': 'congdot', '\\u2A6D\\u0338': 'ncongdot', '\\u2A6E': 'easter', '\\u2A6F': 'apacir', '\\u2A70': 'apE', '\\u2A70\\u0338': 'napE', '\\u2A71': 'eplus', '\\u2A72': 'pluse', '\\u2A73': 'Esim', '\\u2A77': 'eDDot', '\\u2A78': 'equivDD', '\\u2A79': 'ltcir', '\\u2A7A': 'gtcir', '\\u2A7B': 'ltquest', '\\u2A7C': 'gtquest', '\\u2A7D': 'les', '\\u2A7D\\u0338': 'nles', '\\u2A7E': 'ges', '\\u2A7E\\u0338': 'nges', '\\u2A7F': 'lesdot', '\\u2A80': 'gesdot', '\\u2A81': 'lesdoto', '\\u2A82': 'gesdoto', '\\u2A83': 'lesdotor', '\\u2A84': 'gesdotol', '\\u2A85': 'lap', '\\u2A86': 'gap', '\\u2A87': 'lne', '\\u2A88': 'gne', '\\u2A89': 'lnap', '\\u2A8A': 'gnap', '\\u2A8B': 'lEg', '\\u2A8C': 'gEl', '\\u2A8D': 'lsime', '\\u2A8E': 'gsime', '\\u2A8F': 'lsimg', '\\u2A90': 'gsiml', '\\u2A91': 'lgE', '\\u2A92': 'glE', '\\u2A93': 'lesges', '\\u2A94': 'gesles', '\\u2A95': 'els', '\\u2A96': 'egs', '\\u2A97': 'elsdot', '\\u2A98': 'egsdot', '\\u2A99': 'el', '\\u2A9A': 'eg', '\\u2A9D': 'siml', '\\u2A9E': 'simg', '\\u2A9F': 'simlE', '\\u2AA0': 'simgE', '\\u2AA1': 'LessLess', '\\u2AA1\\u0338': 'NotNestedLessLess', '\\u2AA2': 'GreaterGreater', '\\u2AA2\\u0338': 'NotNestedGreaterGreater', '\\u2AA4': 'glj', '\\u2AA5': 'gla', '\\u2AA6': 'ltcc', '\\u2AA7': 'gtcc', '\\u2AA8': 'lescc', '\\u2AA9': 'gescc', '\\u2AAA': 'smt', '\\u2AAB': 'lat', '\\u2AAC': 'smte', '\\u2AAC\\uFE00': 'smtes', '\\u2AAD': 'late', '\\u2AAD\\uFE00': 'lates', '\\u2AAE': 'bumpE', '\\u2AAF': 'pre', '\\u2AAF\\u0338': 'npre', '\\u2AB0': 'sce', '\\u2AB0\\u0338': 'nsce', '\\u2AB3': 'prE', '\\u2AB4': 'scE', '\\u2AB5': 'prnE', '\\u2AB6': 'scnE', '\\u2AB7': 'prap', '\\u2AB8': 'scap', '\\u2AB9': 'prnap', '\\u2ABA': 'scnap', '\\u2ABB': 'Pr', '\\u2ABC': 'Sc', '\\u2ABD': 'subdot', '\\u2ABE': 'supdot', '\\u2ABF': 'subplus', '\\u2AC0': 'supplus', '\\u2AC1': 'submult', '\\u2AC2': 'supmult', '\\u2AC3': 'subedot', '\\u2AC4': 'supedot', '\\u2AC5': 'subE', '\\u2AC5\\u0338': 'nsubE', '\\u2AC6': 'supE', '\\u2AC6\\u0338': 'nsupE', '\\u2AC7': 'subsim', '\\u2AC8': 'supsim', '\\u2ACB\\uFE00': 'vsubnE', '\\u2ACB': 'subnE', '\\u2ACC\\uFE00': 'vsupnE', '\\u2ACC': 'supnE', '\\u2ACF': 'csub', '\\u2AD0': 'csup', '\\u2AD1': 'csube', '\\u2AD2': 'csupe', '\\u2AD3': 'subsup', '\\u2AD4': 'supsub', '\\u2AD5': 'subsub', '\\u2AD6': 'supsup', '\\u2AD7': 'suphsub', '\\u2AD8': 'supdsub', '\\u2AD9': 'forkv', '\\u2ADA': 'topfork', '\\u2ADB': 'mlcp', '\\u2AE4': 'Dashv', '\\u2AE6': 'Vdashl', '\\u2AE7': 'Barv', '\\u2AE8': 'vBar', '\\u2AE9': 'vBarv', '\\u2AEB': 'Vbar', '\\u2AEC': 'Not', '\\u2AED': 'bNot', '\\u2AEE': 'rnmid', '\\u2AEF': 'cirmid', '\\u2AF0': 'midcir', '\\u2AF1': 'topcir', '\\u2AF2': 'nhpar', '\\u2AF3': 'parsim', '\\u2AFD': 'parsl', '\\u2AFD\\u20E5': 'nparsl', '\\u266D': 'flat', '\\u266E': 'natur', '\\u266F': 'sharp', '\\xA4': 'curren', '\\xA2': 'cent', '$': 'dollar', '\\xA3': 'pound', '\\xA5': 'yen', '\\u20AC': 'euro', '\\xB9': 'sup1', '\\xBD': 'half', '\\u2153': 'frac13', '\\xBC': 'frac14', '\\u2155': 'frac15', '\\u2159': 'frac16', '\\u215B': 'frac18', '\\xB2': 'sup2', '\\u2154': 'frac23', '\\u2156': 'frac25', '\\xB3': 'sup3', '\\xBE': 'frac34', '\\u2157': 'frac35', '\\u215C': 'frac38', '\\u2158': 'frac45', '\\u215A': 'frac56', '\\u215D': 'frac58', '\\u215E': 'frac78', '\\uD835\\uDCB6': 'ascr', '\\uD835\\uDD52': 'aopf', '\\uD835\\uDD1E': 'afr', '\\uD835\\uDD38': 'Aopf', '\\uD835\\uDD04': 'Afr', '\\uD835\\uDC9C': 'Ascr', '\\xAA': 'ordf', '\\xE1': 'aacute', '\\xC1': 'Aacute', '\\xE0': 'agrave', '\\xC0': 'Agrave', '\\u0103': 'abreve', '\\u0102': 'Abreve', '\\xE2': 'acirc', '\\xC2': 'Acirc', '\\xE5': 'aring', '\\xC5': 'angst', '\\xE4': 'auml', '\\xC4': 'Auml', '\\xE3': 'atilde', '\\xC3': 'Atilde', '\\u0105': 'aogon', '\\u0104': 'Aogon', '\\u0101': 'amacr', '\\u0100': 'Amacr', '\\xE6': 'aelig', '\\xC6': 'AElig', '\\uD835\\uDCB7': 'bscr', '\\uD835\\uDD53': 'bopf', '\\uD835\\uDD1F': 'bfr', '\\uD835\\uDD39': 'Bopf', '\\u212C': 'Bscr', '\\uD835\\uDD05': 'Bfr', '\\uD835\\uDD20': 'cfr', '\\uD835\\uDCB8': 'cscr', '\\uD835\\uDD54': 'copf', '\\u212D': 'Cfr', '\\uD835\\uDC9E': 'Cscr', '\\u2102': 'Copf', '\\u0107': 'cacute', '\\u0106': 'Cacute', '\\u0109': 'ccirc', '\\u0108': 'Ccirc', '\\u010D': 'ccaron', '\\u010C': 'Ccaron', '\\u010B': 'cdot', '\\u010A': 'Cdot', '\\xE7': 'ccedil', '\\xC7': 'Ccedil', '\\u2105': 'incare', '\\uD835\\uDD21': 'dfr', '\\u2146': 'dd', '\\uD835\\uDD55': 'dopf', '\\uD835\\uDCB9': 'dscr', '\\uD835\\uDC9F': 'Dscr', '\\uD835\\uDD07': 'Dfr', '\\u2145': 'DD', '\\uD835\\uDD3B': 'Dopf', '\\u010F': 'dcaron', '\\u010E': 'Dcaron', '\\u0111': 'dstrok', '\\u0110': 'Dstrok', '\\xF0': 'eth', '\\xD0': 'ETH', '\\u2147': 'ee', '\\u212F': 'escr', '\\uD835\\uDD22': 'efr', '\\uD835\\uDD56': 'eopf', '\\u2130': 'Escr', '\\uD835\\uDD08': 'Efr', '\\uD835\\uDD3C': 'Eopf', '\\xE9': 'eacute', '\\xC9': 'Eacute', '\\xE8': 'egrave', '\\xC8': 'Egrave', '\\xEA': 'ecirc', '\\xCA': 'Ecirc', '\\u011B': 'ecaron', '\\u011A': 'Ecaron', '\\xEB': 'euml', '\\xCB': 'Euml', '\\u0117': 'edot', '\\u0116': 'Edot', '\\u0119': 'eogon', '\\u0118': 'Eogon', '\\u0113': 'emacr', '\\u0112': 'Emacr', '\\uD835\\uDD23': 'ffr', '\\uD835\\uDD57': 'fopf', '\\uD835\\uDCBB': 'fscr', '\\uD835\\uDD09': 'Ffr', '\\uD835\\uDD3D': 'Fopf', '\\u2131': 'Fscr', '\\uFB00': 'fflig', '\\uFB03': 'ffilig', '\\uFB04': 'ffllig', '\\uFB01': 'filig', 'fj': 'fjlig', '\\uFB02': 'fllig', '\\u0192': 'fnof', '\\u210A': 'gscr', '\\uD835\\uDD58': 'gopf', '\\uD835\\uDD24': 'gfr', '\\uD835\\uDCA2': 'Gscr', '\\uD835\\uDD3E': 'Gopf', '\\uD835\\uDD0A': 'Gfr', '\\u01F5': 'gacute', '\\u011F': 'gbreve', '\\u011E': 'Gbreve', '\\u011D': 'gcirc', '\\u011C': 'Gcirc', '\\u0121': 'gdot', '\\u0120': 'Gdot', '\\u0122': 'Gcedil', '\\uD835\\uDD25': 'hfr', '\\u210E': 'planckh', '\\uD835\\uDCBD': 'hscr', '\\uD835\\uDD59': 'hopf', '\\u210B': 'Hscr', '\\u210C': 'Hfr', '\\u210D': 'Hopf', '\\u0125': 'hcirc', '\\u0124': 'Hcirc', '\\u210F': 'hbar', '\\u0127': 'hstrok', '\\u0126': 'Hstrok', '\\uD835\\uDD5A': 'iopf', '\\uD835\\uDD26': 'ifr', '\\uD835\\uDCBE': 'iscr', '\\u2148': 'ii', '\\uD835\\uDD40': 'Iopf', '\\u2110': 'Iscr', '\\u2111': 'Im', '\\xED': 'iacute', '\\xCD': 'Iacute', '\\xEC': 'igrave', '\\xCC': 'Igrave', '\\xEE': 'icirc', '\\xCE': 'Icirc', '\\xEF': 'iuml', '\\xCF': 'Iuml', '\\u0129': 'itilde', '\\u0128': 'Itilde', '\\u0130': 'Idot', '\\u012F': 'iogon', '\\u012E': 'Iogon', '\\u012B': 'imacr', '\\u012A': 'Imacr', '\\u0133': 'ijlig', '\\u0132': 'IJlig', '\\u0131': 'imath', '\\uD835\\uDCBF': 'jscr', '\\uD835\\uDD5B': 'jopf', '\\uD835\\uDD27': 'jfr', '\\uD835\\uDCA5': 'Jscr', '\\uD835\\uDD0D': 'Jfr', '\\uD835\\uDD41': 'Jopf', '\\u0135': 'jcirc', '\\u0134': 'Jcirc', '\\u0237': 'jmath', '\\uD835\\uDD5C': 'kopf', '\\uD835\\uDCC0': 'kscr', '\\uD835\\uDD28': 'kfr', '\\uD835\\uDCA6': 'Kscr', '\\uD835\\uDD42': 'Kopf', '\\uD835\\uDD0E': 'Kfr', '\\u0137': 'kcedil', '\\u0136': 'Kcedil', '\\uD835\\uDD29': 'lfr', '\\uD835\\uDCC1': 'lscr', '\\u2113': 'ell', '\\uD835\\uDD5D': 'lopf', '\\u2112': 'Lscr', '\\uD835\\uDD0F': 'Lfr', '\\uD835\\uDD43': 'Lopf', '\\u013A': 'lacute', '\\u0139': 'Lacute', '\\u013E': 'lcaron', '\\u013D': 'Lcaron', '\\u013C': 'lcedil', '\\u013B': 'Lcedil', '\\u0142': 'lstrok', '\\u0141': 'Lstrok', '\\u0140': 'lmidot', '\\u013F': 'Lmidot', '\\uD835\\uDD2A': 'mfr', '\\uD835\\uDD5E': 'mopf', '\\uD835\\uDCC2': 'mscr', '\\uD835\\uDD10': 'Mfr', '\\uD835\\uDD44': 'Mopf', '\\u2133': 'Mscr', '\\uD835\\uDD2B': 'nfr', '\\uD835\\uDD5F': 'nopf', '\\uD835\\uDCC3': 'nscr', '\\u2115': 'Nopf', '\\uD835\\uDCA9': 'Nscr', '\\uD835\\uDD11': 'Nfr', '\\u0144': 'nacute', '\\u0143': 'Nacute', '\\u0148': 'ncaron', '\\u0147': 'Ncaron', '\\xF1': 'ntilde', '\\xD1': 'Ntilde', '\\u0146': 'ncedil', '\\u0145': 'Ncedil', '\\u2116': 'numero', '\\u014B': 'eng', '\\u014A': 'ENG', '\\uD835\\uDD60': 'oopf', '\\uD835\\uDD2C': 'ofr', '\\u2134': 'oscr', '\\uD835\\uDCAA': 'Oscr', '\\uD835\\uDD12': 'Ofr', '\\uD835\\uDD46': 'Oopf', '\\xBA': 'ordm', '\\xF3': 'oacute', '\\xD3': 'Oacute', '\\xF2': 'ograve', '\\xD2': 'Ograve', '\\xF4': 'ocirc', '\\xD4': 'Ocirc', '\\xF6': 'ouml', '\\xD6': 'Ouml', '\\u0151': 'odblac', '\\u0150': 'Odblac', '\\xF5': 'otilde', '\\xD5': 'Otilde', '\\xF8': 'oslash', '\\xD8': 'Oslash', '\\u014D': 'omacr', '\\u014C': 'Omacr', '\\u0153': 'oelig', '\\u0152': 'OElig', '\\uD835\\uDD2D': 'pfr', '\\uD835\\uDCC5': 'pscr', '\\uD835\\uDD61': 'popf', '\\u2119': 'Popf', '\\uD835\\uDD13': 'Pfr', '\\uD835\\uDCAB': 'Pscr', '\\uD835\\uDD62': 'qopf', '\\uD835\\uDD2E': 'qfr', '\\uD835\\uDCC6': 'qscr', '\\uD835\\uDCAC': 'Qscr', '\\uD835\\uDD14': 'Qfr', '\\u211A': 'Qopf', '\\u0138': 'kgreen', '\\uD835\\uDD2F': 'rfr', '\\uD835\\uDD63': 'ropf', '\\uD835\\uDCC7': 'rscr', '\\u211B': 'Rscr', '\\u211C': 'Re', '\\u211D': 'Ropf', '\\u0155': 'racute', '\\u0154': 'Racute', '\\u0159': 'rcaron', '\\u0158': 'Rcaron', '\\u0157': 'rcedil', '\\u0156': 'Rcedil', '\\uD835\\uDD64': 'sopf', '\\uD835\\uDCC8': 'sscr', '\\uD835\\uDD30': 'sfr', '\\uD835\\uDD4A': 'Sopf', '\\uD835\\uDD16': 'Sfr', '\\uD835\\uDCAE': 'Sscr', '\\u24C8': 'oS', '\\u015B': 'sacute', '\\u015A': 'Sacute', '\\u015D': 'scirc', '\\u015C': 'Scirc', '\\u0161': 'scaron', '\\u0160': 'Scaron', '\\u015F': 'scedil', '\\u015E': 'Scedil', '\\xDF': 'szlig', '\\uD835\\uDD31': 'tfr', '\\uD835\\uDCC9': 'tscr', '\\uD835\\uDD65': 'topf', '\\uD835\\uDCAF': 'Tscr', '\\uD835\\uDD17': 'Tfr', '\\uD835\\uDD4B': 'Topf', '\\u0165': 'tcaron', '\\u0164': 'Tcaron', '\\u0163': 'tcedil', '\\u0162': 'Tcedil', '\\u2122': 'trade', '\\u0167': 'tstrok', '\\u0166': 'Tstrok', '\\uD835\\uDCCA': 'uscr', '\\uD835\\uDD66': 'uopf', '\\uD835\\uDD32': 'ufr', '\\uD835\\uDD4C': 'Uopf', '\\uD835\\uDD18': 'Ufr', '\\uD835\\uDCB0': 'Uscr', '\\xFA': 'uacute', '\\xDA': 'Uacute', '\\xF9': 'ugrave', '\\xD9': 'Ugrave', '\\u016D': 'ubreve', '\\u016C': 'Ubreve', '\\xFB': 'ucirc', '\\xDB': 'Ucirc', '\\u016F': 'uring', '\\u016E': 'Uring', '\\xFC': 'uuml', '\\xDC': 'Uuml', '\\u0171': 'udblac', '\\u0170': 'Udblac', '\\u0169': 'utilde', '\\u0168': 'Utilde', '\\u0173': 'uogon', '\\u0172': 'Uogon', '\\u016B': 'umacr', '\\u016A': 'Umacr', '\\uD835\\uDD33': 'vfr', '\\uD835\\uDD67': 'vopf', '\\uD835\\uDCCB': 'vscr', '\\uD835\\uDD19': 'Vfr', '\\uD835\\uDD4D': 'Vopf', '\\uD835\\uDCB1': 'Vscr', '\\uD835\\uDD68': 'wopf', '\\uD835\\uDCCC': 'wscr', '\\uD835\\uDD34': 'wfr', '\\uD835\\uDCB2': 'Wscr', '\\uD835\\uDD4E': 'Wopf', '\\uD835\\uDD1A': 'Wfr', '\\u0175': 'wcirc', '\\u0174': 'Wcirc', '\\uD835\\uDD35': 'xfr', '\\uD835\\uDCCD': 'xscr', '\\uD835\\uDD69': 'xopf', '\\uD835\\uDD4F': 'Xopf', '\\uD835\\uDD1B': 'Xfr', '\\uD835\\uDCB3': 'Xscr', '\\uD835\\uDD36': 'yfr', '\\uD835\\uDCCE': 'yscr', '\\uD835\\uDD6A': 'yopf', '\\uD835\\uDCB4': 'Yscr', '\\uD835\\uDD1C': 'Yfr', '\\uD835\\uDD50': 'Yopf', '\\xFD': 'yacute', '\\xDD': 'Yacute', '\\u0177': 'ycirc', '\\u0176': 'Ycirc', '\\xFF': 'yuml', '\\u0178': 'Yuml', '\\uD835\\uDCCF': 'zscr', '\\uD835\\uDD37': 'zfr', '\\uD835\\uDD6B': 'zopf', '\\u2128': 'Zfr', '\\u2124': 'Zopf', '\\uD835\\uDCB5': 'Zscr', '\\u017A': 'zacute', '\\u0179': 'Zacute', '\\u017E': 'zcaron', '\\u017D': 'Zcaron', '\\u017C': 'zdot', '\\u017B': 'Zdot', '\\u01B5': 'imped', '\\xFE': 'thorn', '\\xDE': 'THORN', '\\u0149': 'napos', '\\u03B1': 'alpha', '\\u0391': 'Alpha', '\\u03B2': 'beta', '\\u0392': 'Beta', '\\u03B3': 'gamma', '\\u0393': 'Gamma', '\\u03B4': 'delta', '\\u0394': 'Delta', '\\u03B5': 'epsi', '\\u03F5': 'epsiv', '\\u0395': 'Epsilon', '\\u03DD': 'gammad', '\\u03DC': 'Gammad', '\\u03B6': 'zeta', '\\u0396': 'Zeta', '\\u03B7': 'eta', '\\u0397': 'Eta', '\\u03B8': 'theta', '\\u03D1': 'thetav', '\\u0398': 'Theta', '\\u03B9': 'iota', '\\u0399': 'Iota', '\\u03BA': 'kappa', '\\u03F0': 'kappav', '\\u039A': 'Kappa', '\\u03BB': 'lambda', '\\u039B': 'Lambda', '\\u03BC': 'mu', '\\xB5': 'micro', '\\u039C': 'Mu', '\\u03BD': 'nu', '\\u039D': 'Nu', '\\u03BE': 'xi', '\\u039E': 'Xi', '\\u03BF': 'omicron', '\\u039F': 'Omicron', '\\u03C0': 'pi', '\\u03D6': 'piv', '\\u03A0': 'Pi', '\\u03C1': 'rho', '\\u03F1': 'rhov', '\\u03A1': 'Rho', '\\u03C3': 'sigma', '\\u03A3': 'Sigma', '\\u03C2': 'sigmaf', '\\u03C4': 'tau', '\\u03A4': 'Tau', '\\u03C5': 'upsi', '\\u03A5': 'Upsilon', '\\u03D2': 'Upsi', '\\u03C6': 'phi', '\\u03D5': 'phiv', '\\u03A6': 'Phi', '\\u03C7': 'chi', '\\u03A7': 'Chi', '\\u03C8': 'psi', '\\u03A8': 'Psi', '\\u03C9': 'omega', '\\u03A9': 'ohm', '\\u0430': 'acy', '\\u0410': 'Acy', '\\u0431': 'bcy', '\\u0411': 'Bcy', '\\u0432': 'vcy', '\\u0412': 'Vcy', '\\u0433': 'gcy', '\\u0413': 'Gcy', '\\u0453': 'gjcy', '\\u0403': 'GJcy', '\\u0434': 'dcy', '\\u0414': 'Dcy', '\\u0452': 'djcy', '\\u0402': 'DJcy', '\\u0435': 'iecy', '\\u0415': 'IEcy', '\\u0451': 'iocy', '\\u0401': 'IOcy', '\\u0454': 'jukcy', '\\u0404': 'Jukcy', '\\u0436': 'zhcy', '\\u0416': 'ZHcy', '\\u0437': 'zcy', '\\u0417': 'Zcy', '\\u0455': 'dscy', '\\u0405': 'DScy', '\\u0438': 'icy', '\\u0418': 'Icy', '\\u0456': 'iukcy', '\\u0406': 'Iukcy', '\\u0457': 'yicy', '\\u0407': 'YIcy', '\\u0439': 'jcy', '\\u0419': 'Jcy', '\\u0458': 'jsercy', '\\u0408': 'Jsercy', '\\u043A': 'kcy', '\\u041A': 'Kcy', '\\u045C': 'kjcy', '\\u040C': 'KJcy', '\\u043B': 'lcy', '\\u041B': 'Lcy', '\\u0459': 'ljcy', '\\u0409': 'LJcy', '\\u043C': 'mcy', '\\u041C': 'Mcy', '\\u043D': 'ncy', '\\u041D': 'Ncy', '\\u045A': 'njcy', '\\u040A': 'NJcy', '\\u043E': 'ocy', '\\u041E': 'Ocy', '\\u043F': 'pcy', '\\u041F': 'Pcy', '\\u0440': 'rcy', '\\u0420': 'Rcy', '\\u0441': 'scy', '\\u0421': 'Scy', '\\u0442': 'tcy', '\\u0422': 'Tcy', '\\u045B': 'tshcy', '\\u040B': 'TSHcy', '\\u0443': 'ucy', '\\u0423': 'Ucy', '\\u045E': 'ubrcy', '\\u040E': 'Ubrcy', '\\u0444': 'fcy', '\\u0424': 'Fcy', '\\u0445': 'khcy', '\\u0425': 'KHcy', '\\u0446': 'tscy', '\\u0426': 'TScy', '\\u0447': 'chcy', '\\u0427': 'CHcy', '\\u045F': 'dzcy', '\\u040F': 'DZcy', '\\u0448': 'shcy', '\\u0428': 'SHcy', '\\u0449': 'shchcy', '\\u0429': 'SHCHcy', '\\u044A': 'hardcy', '\\u042A': 'HARDcy', '\\u044B': 'ycy', '\\u042B': 'Ycy', '\\u044C': 'softcy', '\\u042C': 'SOFTcy', '\\u044D': 'ecy', '\\u042D': 'Ecy', '\\u044E': 'yucy', '\\u042E': 'YUcy', '\\u044F': 'yacy', '\\u042F': 'YAcy', '\\u2135': 'aleph', '\\u2136': 'beth', '\\u2137': 'gimel', '\\u2138': 'daleth' };\n\n\tvar regexEscape = /[\"&'<>`]/g;\n\tvar escapeMap = {\n\t\t'\"': '"',\n\t\t'&': '&',\n\t\t'\\'': ''',\n\t\t'<': '<',\n\t\t// See https://mathiasbynens.be/notes/ambiguous-ampersands: in HTML, the\n\t\t// following is not strictly necessary unless it’s part of a tag or an\n\t\t// unquoted attribute value. We’re only escaping it to support those\n\t\t// situations, and for XML support.\n\t\t'>': '>',\n\t\t// In Internet Explorer ≤ 8, the backtick character can be used\n\t\t// to break out of (un)quoted attribute values or HTML comments.\n\t\t// See http://html5sec.org/#102, http://html5sec.org/#108, and\n\t\t// http://html5sec.org/#133.\n\t\t'`': '`'\n\t};\n\n\tvar regexInvalidEntity = /&#(?:[xX][^a-fA-F0-9]|[^0-9xX])/;\n\tvar regexInvalidRawCodePoint = /[\\0-\\x08\\x0B\\x0E-\\x1F\\x7F-\\x9F\\uFDD0-\\uFDEF\\uFFFE\\uFFFF]|[\\uD83F\\uD87F\\uD8BF\\uD8FF\\uD93F\\uD97F\\uD9BF\\uD9FF\\uDA3F\\uDA7F\\uDABF\\uDAFF\\uDB3F\\uDB7F\\uDBBF\\uDBFF][\\uDFFE\\uDFFF]|[\\uD800-\\uDBFF](?![\\uDC00-\\uDFFF])|(?:[^\\uD800-\\uDBFF]|^)[\\uDC00-\\uDFFF]/;\n\tvar regexDecode = /&(CounterClockwiseContourIntegral|DoubleLongLeftRightArrow|ClockwiseContourIntegral|NotNestedGreaterGreater|NotSquareSupersetEqual|DiacriticalDoubleAcute|NotRightTriangleEqual|NotSucceedsSlantEqual|NotPrecedesSlantEqual|CloseCurlyDoubleQuote|NegativeVeryThinSpace|DoubleContourIntegral|FilledVerySmallSquare|CapitalDifferentialD|OpenCurlyDoubleQuote|EmptyVerySmallSquare|NestedGreaterGreater|DoubleLongRightArrow|NotLeftTriangleEqual|NotGreaterSlantEqual|ReverseUpEquilibrium|DoubleLeftRightArrow|NotSquareSubsetEqual|NotDoubleVerticalBar|RightArrowLeftArrow|NotGreaterFullEqual|NotRightTriangleBar|SquareSupersetEqual|DownLeftRightVector|DoubleLongLeftArrow|leftrightsquigarrow|LeftArrowRightArrow|NegativeMediumSpace|blacktriangleright|RightDownVectorBar|PrecedesSlantEqual|RightDoubleBracket|SucceedsSlantEqual|NotLeftTriangleBar|RightTriangleEqual|SquareIntersection|RightDownTeeVector|ReverseEquilibrium|NegativeThickSpace|longleftrightarrow|Longleftrightarrow|LongLeftRightArrow|DownRightTeeVector|DownRightVectorBar|GreaterSlantEqual|SquareSubsetEqual|LeftDownVectorBar|LeftDoubleBracket|VerticalSeparator|rightleftharpoons|NotGreaterGreater|NotSquareSuperset|blacktriangleleft|blacktriangledown|NegativeThinSpace|LeftDownTeeVector|NotLessSlantEqual|leftrightharpoons|DoubleUpDownArrow|DoubleVerticalBar|LeftTriangleEqual|FilledSmallSquare|twoheadrightarrow|NotNestedLessLess|DownLeftTeeVector|DownLeftVectorBar|RightAngleBracket|NotTildeFullEqual|NotReverseElement|RightUpDownVector|DiacriticalTilde|NotSucceedsTilde|circlearrowright|NotPrecedesEqual|rightharpoondown|DoubleRightArrow|NotSucceedsEqual|NonBreakingSpace|NotRightTriangle|LessEqualGreater|RightUpTeeVector|LeftAngleBracket|GreaterFullEqual|DownArrowUpArrow|RightUpVectorBar|twoheadleftarrow|GreaterEqualLess|downharpoonright|RightTriangleBar|ntrianglerighteq|NotSupersetEqual|LeftUpDownVector|DiacriticalAcute|rightrightarrows|vartriangleright|UpArrowDownArrow|DiacriticalGrave|UnderParenthesis|EmptySmallSquare|LeftUpVectorBar|leftrightarrows|DownRightVector|downharpoonleft|trianglerighteq|ShortRightArrow|OverParenthesis|DoubleLeftArrow|DoubleDownArrow|NotSquareSubset|bigtriangledown|ntrianglelefteq|UpperRightArrow|curvearrowright|vartriangleleft|NotLeftTriangle|nleftrightarrow|LowerRightArrow|NotHumpDownHump|NotGreaterTilde|rightthreetimes|LeftUpTeeVector|NotGreaterEqual|straightepsilon|LeftTriangleBar|rightsquigarrow|ContourIntegral|rightleftarrows|CloseCurlyQuote|RightDownVector|LeftRightVector|nLeftrightarrow|leftharpoondown|circlearrowleft|SquareSuperset|OpenCurlyQuote|hookrightarrow|HorizontalLine|DiacriticalDot|NotLessGreater|ntriangleright|DoubleRightTee|InvisibleComma|InvisibleTimes|LowerLeftArrow|DownLeftVector|NotSubsetEqual|curvearrowleft|trianglelefteq|NotVerticalBar|TildeFullEqual|downdownarrows|NotGreaterLess|RightTeeVector|ZeroWidthSpace|looparrowright|LongRightArrow|doublebarwedge|ShortLeftArrow|ShortDownArrow|RightVectorBar|GreaterGreater|ReverseElement|rightharpoonup|LessSlantEqual|leftthreetimes|upharpoonright|rightarrowtail|LeftDownVector|Longrightarrow|NestedLessLess|UpperLeftArrow|nshortparallel|leftleftarrows|leftrightarrow|Leftrightarrow|LeftRightArrow|longrightarrow|upharpoonleft|RightArrowBar|ApplyFunction|LeftTeeVector|leftarrowtail|NotEqualTilde|varsubsetneqq|varsupsetneqq|RightTeeArrow|SucceedsEqual|SucceedsTilde|LeftVectorBar|SupersetEqual|hookleftarrow|DifferentialD|VerticalTilde|VeryThinSpace|blacktriangle|bigtriangleup|LessFullEqual|divideontimes|leftharpoonup|UpEquilibrium|ntriangleleft|RightTriangle|measuredangle|shortparallel|longleftarrow|Longleftarrow|LongLeftArrow|DoubleLeftTee|Poincareplane|PrecedesEqual|triangleright|DoubleUpArrow|RightUpVector|fallingdotseq|looparrowleft|PrecedesTilde|NotTildeEqual|NotTildeTilde|smallsetminus|Proportional|triangleleft|triangledown|UnderBracket|NotHumpEqual|exponentiale|ExponentialE|NotLessTilde|HilbertSpace|RightCeiling|blacklozenge|varsupsetneq|HumpDownHump|GreaterEqual|VerticalLine|LeftTeeArrow|NotLessEqual|DownTeeArrow|LeftTriangle|varsubsetneq|Intersection|NotCongruent|DownArrowBar|LeftUpVector|LeftArrowBar|risingdotseq|GreaterTilde|RoundImplies|SquareSubset|ShortUpArrow|NotSuperset|quaternions|precnapprox|backepsilon|preccurlyeq|OverBracket|blacksquare|MediumSpace|VerticalBar|circledcirc|circleddash|CircleMinus|CircleTimes|LessGreater|curlyeqprec|curlyeqsucc|diamondsuit|UpDownArrow|Updownarrow|RuleDelayed|Rrightarrow|updownarrow|RightVector|nRightarrow|nrightarrow|eqslantless|LeftCeiling|Equilibrium|SmallCircle|expectation|NotSucceeds|thickapprox|GreaterLess|SquareUnion|NotPrecedes|NotLessLess|straightphi|succnapprox|succcurlyeq|SubsetEqual|sqsupseteq|Proportion|Laplacetrf|ImaginaryI|supsetneqq|NotGreater|gtreqqless|NotElement|ThickSpace|TildeEqual|TildeTilde|Fouriertrf|rmoustache|EqualTilde|eqslantgtr|UnderBrace|LeftVector|UpArrowBar|nLeftarrow|nsubseteqq|subsetneqq|nsupseteqq|nleftarrow|succapprox|lessapprox|UpTeeArrow|upuparrows|curlywedge|lesseqqgtr|varepsilon|varnothing|RightFloor|complement|CirclePlus|sqsubseteq|Lleftarrow|circledast|RightArrow|Rightarrow|rightarrow|lmoustache|Bernoullis|precapprox|mapstoleft|mapstodown|longmapsto|dotsquare|downarrow|DoubleDot|nsubseteq|supsetneq|leftarrow|nsupseteq|subsetneq|ThinSpace|ngeqslant|subseteqq|HumpEqual|NotSubset|triangleq|NotCupCap|lesseqgtr|heartsuit|TripleDot|Leftarrow|Coproduct|Congruent|varpropto|complexes|gvertneqq|LeftArrow|LessTilde|supseteqq|MinusPlus|CircleDot|nleqslant|NotExists|gtreqless|nparallel|UnionPlus|LeftFloor|checkmark|CenterDot|centerdot|Mellintrf|gtrapprox|bigotimes|OverBrace|spadesuit|therefore|pitchfork|rationals|PlusMinus|Backslash|Therefore|DownBreve|backsimeq|backprime|DownArrow|nshortmid|Downarrow|lvertneqq|eqvparsl|imagline|imagpart|infintie|integers|Integral|intercal|LessLess|Uarrocir|intlarhk|sqsupset|angmsdaf|sqsubset|llcorner|vartheta|cupbrcap|lnapprox|Superset|SuchThat|succnsim|succneqq|angmsdag|biguplus|curlyvee|trpezium|Succeeds|NotTilde|bigwedge|angmsdah|angrtvbd|triminus|cwconint|fpartint|lrcorner|smeparsl|subseteq|urcorner|lurdshar|laemptyv|DDotrahd|approxeq|ldrushar|awconint|mapstoup|backcong|shortmid|triangle|geqslant|gesdotol|timesbar|circledR|circledS|setminus|multimap|naturals|scpolint|ncongdot|RightTee|boxminus|gnapprox|boxtimes|andslope|thicksim|angmsdaa|varsigma|cirfnint|rtriltri|angmsdab|rppolint|angmsdac|barwedge|drbkarow|clubsuit|thetasym|bsolhsub|capbrcup|dzigrarr|doteqdot|DotEqual|dotminus|UnderBar|NotEqual|realpart|otimesas|ulcorner|hksearow|hkswarow|parallel|PartialD|elinters|emptyset|plusacir|bbrktbrk|angmsdad|pointint|bigoplus|angmsdae|Precedes|bigsqcup|varkappa|notindot|supseteq|precneqq|precnsim|profalar|profline|profsurf|leqslant|lesdotor|raemptyv|subplus|notnivb|notnivc|subrarr|zigrarr|vzigzag|submult|subedot|Element|between|cirscir|larrbfs|larrsim|lotimes|lbrksld|lbrkslu|lozenge|ldrdhar|dbkarow|bigcirc|epsilon|simrarr|simplus|ltquest|Epsilon|luruhar|gtquest|maltese|npolint|eqcolon|npreceq|bigodot|ddagger|gtrless|bnequiv|harrcir|ddotseq|equivDD|backsim|demptyv|nsqsube|nsqsupe|Upsilon|nsubset|upsilon|minusdu|nsucceq|swarrow|nsupset|coloneq|searrow|boxplus|napprox|natural|asympeq|alefsym|congdot|nearrow|bigstar|diamond|supplus|tritime|LeftTee|nvinfin|triplus|NewLine|nvltrie|nvrtrie|nwarrow|nexists|Diamond|ruluhar|Implies|supmult|angzarr|suplarr|suphsub|questeq|because|digamma|Because|olcross|bemptyv|omicron|Omicron|rotimes|NoBreak|intprod|angrtvb|orderof|uwangle|suphsol|lesdoto|orslope|DownTee|realine|cudarrl|rdldhar|OverBar|supedot|lessdot|supdsub|topfork|succsim|rbrkslu|rbrksld|pertenk|cudarrr|isindot|planckh|lessgtr|pluscir|gesdoto|plussim|plustwo|lesssim|cularrp|rarrsim|Cayleys|notinva|notinvb|notinvc|UpArrow|Uparrow|uparrow|NotLess|dwangle|precsim|Product|curarrm|Cconint|dotplus|rarrbfs|ccupssm|Cedilla|cemptyv|notniva|quatint|frac35|frac38|frac45|frac56|frac58|frac78|tridot|xoplus|gacute|gammad|Gammad|lfisht|lfloor|bigcup|sqsupe|gbreve|Gbreve|lharul|sqsube|sqcups|Gcedil|apacir|llhard|lmidot|Lmidot|lmoust|andand|sqcaps|approx|Abreve|spades|circeq|tprime|divide|topcir|Assign|topbot|gesdot|divonx|xuplus|timesd|gesles|atilde|solbar|SOFTcy|loplus|timesb|lowast|lowbar|dlcorn|dlcrop|softcy|dollar|lparlt|thksim|lrhard|Atilde|lsaquo|smashp|bigvee|thinsp|wreath|bkarow|lsquor|lstrok|Lstrok|lthree|ltimes|ltlarr|DotDot|simdot|ltrPar|weierp|xsqcup|angmsd|sigmav|sigmaf|zeetrf|Zcaron|zcaron|mapsto|vsupne|thetav|cirmid|marker|mcomma|Zacute|vsubnE|there4|gtlPar|vsubne|bottom|gtrarr|SHCHcy|shchcy|midast|midcir|middot|minusb|minusd|gtrdot|bowtie|sfrown|mnplus|models|colone|seswar|Colone|mstpos|searhk|gtrsim|nacute|Nacute|boxbox|telrec|hairsp|Tcedil|nbumpe|scnsim|ncaron|Ncaron|ncedil|Ncedil|hamilt|Scedil|nearhk|hardcy|HARDcy|tcedil|Tcaron|commat|nequiv|nesear|tcaron|target|hearts|nexist|varrho|scedil|Scaron|scaron|hellip|Sacute|sacute|hercon|swnwar|compfn|rtimes|rthree|rsquor|rsaquo|zacute|wedgeq|homtht|barvee|barwed|Barwed|rpargt|horbar|conint|swarhk|roplus|nltrie|hslash|hstrok|Hstrok|rmoust|Conint|bprime|hybull|hyphen|iacute|Iacute|supsup|supsub|supsim|varphi|coprod|brvbar|agrave|Supset|supset|igrave|Igrave|notinE|Agrave|iiiint|iinfin|copysr|wedbar|Verbar|vangrt|becaus|incare|verbar|inodot|bullet|drcorn|intcal|drcrop|cularr|vellip|Utilde|bumpeq|cupcap|dstrok|Dstrok|CupCap|cupcup|cupdot|eacute|Eacute|supdot|iquest|easter|ecaron|Ecaron|ecolon|isinsv|utilde|itilde|Itilde|curarr|succeq|Bumpeq|cacute|ulcrop|nparsl|Cacute|nprcue|egrave|Egrave|nrarrc|nrarrw|subsup|subsub|nrtrie|jsercy|nsccue|Jsercy|kappav|kcedil|Kcedil|subsim|ulcorn|nsimeq|egsdot|veebar|kgreen|capand|elsdot|Subset|subset|curren|aacute|lacute|Lacute|emptyv|ntilde|Ntilde|lagran|lambda|Lambda|capcap|Ugrave|langle|subdot|emsp13|numero|emsp14|nvdash|nvDash|nVdash|nVDash|ugrave|ufisht|nvHarr|larrfs|nvlArr|larrhk|larrlp|larrpl|nvrArr|Udblac|nwarhk|larrtl|nwnear|oacute|Oacute|latail|lAtail|sstarf|lbrace|odblac|Odblac|lbrack|udblac|odsold|eparsl|lcaron|Lcaron|ograve|Ograve|lcedil|Lcedil|Aacute|ssmile|ssetmn|squarf|ldquor|capcup|ominus|cylcty|rharul|eqcirc|dagger|rfloor|rfisht|Dagger|daleth|equals|origof|capdot|equest|dcaron|Dcaron|rdquor|oslash|Oslash|otilde|Otilde|otimes|Otimes|urcrop|Ubreve|ubreve|Yacute|Uacute|uacute|Rcedil|rcedil|urcorn|parsim|Rcaron|Vdashl|rcaron|Tstrok|percnt|period|permil|Exists|yacute|rbrack|rbrace|phmmat|ccaron|Ccaron|planck|ccedil|plankv|tstrok|female|plusdo|plusdu|ffilig|plusmn|ffllig|Ccedil|rAtail|dfisht|bernou|ratail|Rarrtl|rarrtl|angsph|rarrpl|rarrlp|rarrhk|xwedge|xotime|forall|ForAll|Vvdash|vsupnE|preceq|bigcap|frac12|frac13|frac14|primes|rarrfs|prnsim|frac15|Square|frac16|square|lesdot|frac18|frac23|propto|prurel|rarrap|rangle|puncsp|frac25|Racute|qprime|racute|lesges|frac34|abreve|AElig|eqsim|utdot|setmn|urtri|Equal|Uring|seArr|uring|searr|dashv|Dashv|mumap|nabla|iogon|Iogon|sdote|sdotb|scsim|napid|napos|equiv|natur|Acirc|dblac|erarr|nbump|iprod|erDot|ucirc|awint|esdot|angrt|ncong|isinE|scnap|Scirc|scirc|ndash|isins|Ubrcy|nearr|neArr|isinv|nedot|ubrcy|acute|Ycirc|iukcy|Iukcy|xutri|nesim|caret|jcirc|Jcirc|caron|twixt|ddarr|sccue|exist|jmath|sbquo|ngeqq|angst|ccaps|lceil|ngsim|UpTee|delta|Delta|rtrif|nharr|nhArr|nhpar|rtrie|jukcy|Jukcy|kappa|rsquo|Kappa|nlarr|nlArr|TSHcy|rrarr|aogon|Aogon|fflig|xrarr|tshcy|ccirc|nleqq|filig|upsih|nless|dharl|nlsim|fjlig|ropar|nltri|dharr|robrk|roarr|fllig|fltns|roang|rnmid|subnE|subne|lAarr|trisb|Ccirc|acirc|ccups|blank|VDash|forkv|Vdash|langd|cedil|blk12|blk14|laquo|strns|diams|notin|vDash|larrb|blk34|block|disin|uplus|vdash|vBarv|aelig|starf|Wedge|check|xrArr|lates|lbarr|lBarr|notni|lbbrk|bcong|frasl|lbrke|frown|vrtri|vprop|vnsup|gamma|Gamma|wedge|xodot|bdquo|srarr|doteq|ldquo|boxdl|boxdL|gcirc|Gcirc|boxDl|boxDL|boxdr|boxdR|boxDr|TRADE|trade|rlhar|boxDR|vnsub|npart|vltri|rlarr|boxhd|boxhD|nprec|gescc|nrarr|nrArr|boxHd|boxHD|boxhu|boxhU|nrtri|boxHu|clubs|boxHU|times|colon|Colon|gimel|xlArr|Tilde|nsime|tilde|nsmid|nspar|THORN|thorn|xlarr|nsube|nsubE|thkap|xhArr|comma|nsucc|boxul|boxuL|nsupe|nsupE|gneqq|gnsim|boxUl|boxUL|grave|boxur|boxuR|boxUr|boxUR|lescc|angle|bepsi|boxvh|varpi|boxvH|numsp|Theta|gsime|gsiml|theta|boxVh|boxVH|boxvl|gtcir|gtdot|boxvL|boxVl|boxVL|crarr|cross|Cross|nvsim|boxvr|nwarr|nwArr|sqsup|dtdot|Uogon|lhard|lharu|dtrif|ocirc|Ocirc|lhblk|duarr|odash|sqsub|Hacek|sqcup|llarr|duhar|oelig|OElig|ofcir|boxvR|uogon|lltri|boxVr|csube|uuarr|ohbar|csupe|ctdot|olarr|olcir|harrw|oline|sqcap|omacr|Omacr|omega|Omega|boxVR|aleph|lneqq|lnsim|loang|loarr|rharu|lobrk|hcirc|operp|oplus|rhard|Hcirc|orarr|Union|order|ecirc|Ecirc|cuepr|szlig|cuesc|breve|reals|eDDot|Breve|hoarr|lopar|utrif|rdquo|Umacr|umacr|efDot|swArr|ultri|alpha|rceil|ovbar|swarr|Wcirc|wcirc|smtes|smile|bsemi|lrarr|aring|parsl|lrhar|bsime|uhblk|lrtri|cupor|Aring|uharr|uharl|slarr|rbrke|bsolb|lsime|rbbrk|RBarr|lsimg|phone|rBarr|rbarr|icirc|lsquo|Icirc|emacr|Emacr|ratio|simne|plusb|simlE|simgE|simeq|pluse|ltcir|ltdot|empty|xharr|xdtri|iexcl|Alpha|ltrie|rarrw|pound|ltrif|xcirc|bumpe|prcue|bumpE|asymp|amacr|cuvee|Sigma|sigma|iiint|udhar|iiota|ijlig|IJlig|supnE|imacr|Imacr|prime|Prime|image|prnap|eogon|Eogon|rarrc|mdash|mDDot|cuwed|imath|supne|imped|Amacr|udarr|prsim|micro|rarrb|cwint|raquo|infin|eplus|range|rangd|Ucirc|radic|minus|amalg|veeeq|rAarr|epsiv|ycirc|quest|sharp|quot|zwnj|Qscr|race|qscr|Qopf|qopf|qint|rang|Rang|Zscr|zscr|Zopf|zopf|rarr|rArr|Rarr|Pscr|pscr|prop|prod|prnE|prec|ZHcy|zhcy|prap|Zeta|zeta|Popf|popf|Zdot|plus|zdot|Yuml|yuml|phiv|YUcy|yucy|Yscr|yscr|perp|Yopf|yopf|part|para|YIcy|Ouml|rcub|yicy|YAcy|rdca|ouml|osol|Oscr|rdsh|yacy|real|oscr|xvee|andd|rect|andv|Xscr|oror|ordm|ordf|xscr|ange|aopf|Aopf|rHar|Xopf|opar|Oopf|xopf|xnis|rhov|oopf|omid|xmap|oint|apid|apos|ogon|ascr|Ascr|odot|odiv|xcup|xcap|ocir|oast|nvlt|nvle|nvgt|nvge|nvap|Wscr|wscr|auml|ntlg|ntgl|nsup|nsub|nsim|Nscr|nscr|nsce|Wopf|ring|npre|wopf|npar|Auml|Barv|bbrk|Nopf|nopf|nmid|nLtv|beta|ropf|Ropf|Beta|beth|nles|rpar|nleq|bnot|bNot|nldr|NJcy|rscr|Rscr|Vscr|vscr|rsqb|njcy|bopf|nisd|Bopf|rtri|Vopf|nGtv|ngtr|vopf|boxh|boxH|boxv|nges|ngeq|boxV|bscr|scap|Bscr|bsim|Vert|vert|bsol|bull|bump|caps|cdot|ncup|scnE|ncap|nbsp|napE|Cdot|cent|sdot|Vbar|nang|vBar|chcy|Mscr|mscr|sect|semi|CHcy|Mopf|mopf|sext|circ|cire|mldr|mlcp|cirE|comp|shcy|SHcy|vArr|varr|cong|copf|Copf|copy|COPY|malt|male|macr|lvnE|cscr|ltri|sime|ltcc|simg|Cscr|siml|csub|Uuml|lsqb|lsim|uuml|csup|Lscr|lscr|utri|smid|lpar|cups|smte|lozf|darr|Lopf|Uscr|solb|lopf|sopf|Sopf|lneq|uscr|spar|dArr|lnap|Darr|dash|Sqrt|LJcy|ljcy|lHar|dHar|Upsi|upsi|diam|lesg|djcy|DJcy|leqq|dopf|Dopf|dscr|Dscr|dscy|ldsh|ldca|squf|DScy|sscr|Sscr|dsol|lcub|late|star|Star|Uopf|Larr|lArr|larr|uopf|dtri|dzcy|sube|subE|Lang|lang|Kscr|kscr|Kopf|kopf|KJcy|kjcy|KHcy|khcy|DZcy|ecir|edot|eDot|Jscr|jscr|succ|Jopf|jopf|Edot|uHar|emsp|ensp|Iuml|iuml|eopf|isin|Iscr|iscr|Eopf|epar|sung|epsi|escr|sup1|sup2|sup3|Iota|iota|supe|supE|Iopf|iopf|IOcy|iocy|Escr|esim|Esim|imof|Uarr|QUOT|uArr|uarr|euml|IEcy|iecy|Idot|Euml|euro|excl|Hscr|hscr|Hopf|hopf|TScy|tscy|Tscr|hbar|tscr|flat|tbrk|fnof|hArr|harr|half|fopf|Fopf|tdot|gvnE|fork|trie|gtcc|fscr|Fscr|gdot|gsim|Gscr|gscr|Gopf|gopf|gneq|Gdot|tosa|gnap|Topf|topf|geqq|toea|GJcy|gjcy|tint|gesl|mid|Sfr|ggg|top|ges|gla|glE|glj|geq|gne|gEl|gel|gnE|Gcy|gcy|gap|Tfr|tfr|Tcy|tcy|Hat|Tau|Ffr|tau|Tab|hfr|Hfr|ffr|Fcy|fcy|icy|Icy|iff|ETH|eth|ifr|Ifr|Eta|eta|int|Int|Sup|sup|ucy|Ucy|Sum|sum|jcy|ENG|ufr|Ufr|eng|Jcy|jfr|els|ell|egs|Efr|efr|Jfr|uml|kcy|Kcy|Ecy|ecy|kfr|Kfr|lap|Sub|sub|lat|lcy|Lcy|leg|Dot|dot|lEg|leq|les|squ|div|die|lfr|Lfr|lgE|Dfr|dfr|Del|deg|Dcy|dcy|lne|lnE|sol|loz|smt|Cup|lrm|cup|lsh|Lsh|sim|shy|map|Map|mcy|Mcy|mfr|Mfr|mho|gfr|Gfr|sfr|cir|Chi|chi|nap|Cfr|vcy|Vcy|cfr|Scy|scy|ncy|Ncy|vee|Vee|Cap|cap|nfr|scE|sce|Nfr|nge|ngE|nGg|vfr|Vfr|ngt|bot|nGt|nis|niv|Rsh|rsh|nle|nlE|bne|Bfr|bfr|nLl|nlt|nLt|Bcy|bcy|not|Not|rlm|wfr|Wfr|npr|nsc|num|ocy|ast|Ocy|ofr|xfr|Xfr|Ofr|ogt|ohm|apE|olt|Rho|ape|rho|Rfr|rfr|ord|REG|ang|reg|orv|And|and|AMP|Rcy|amp|Afr|ycy|Ycy|yen|yfr|Yfr|rcy|par|pcy|Pcy|pfr|Pfr|phi|Phi|afr|Acy|acy|zcy|Zcy|piv|acE|acd|zfr|Zfr|pre|prE|psi|Psi|qfr|Qfr|zwj|Or|ge|Gg|gt|gg|el|oS|lt|Lt|LT|Re|lg|gl|eg|ne|Im|it|le|DD|wp|wr|nu|Nu|dd|lE|Sc|sc|pi|Pi|ee|af|ll|Ll|rx|gE|xi|pm|Xi|ic|pr|Pr|in|ni|mp|mu|ac|Mu|or|ap|Gt|GT|ii);|&(Aacute|Agrave|Atilde|Ccedil|Eacute|Egrave|Iacute|Igrave|Ntilde|Oacute|Ograve|Oslash|Otilde|Uacute|Ugrave|Yacute|aacute|agrave|atilde|brvbar|ccedil|curren|divide|eacute|egrave|frac12|frac14|frac34|iacute|igrave|iquest|middot|ntilde|oacute|ograve|oslash|otilde|plusmn|uacute|ugrave|yacute|AElig|Acirc|Aring|Ecirc|Icirc|Ocirc|THORN|Ucirc|acirc|acute|aelig|aring|cedil|ecirc|icirc|iexcl|laquo|micro|ocirc|pound|raquo|szlig|thorn|times|ucirc|Auml|COPY|Euml|Iuml|Ouml|QUOT|Uuml|auml|cent|copy|euml|iuml|macr|nbsp|ordf|ordm|ouml|para|quot|sect|sup1|sup2|sup3|uuml|yuml|AMP|ETH|REG|amp|deg|eth|not|reg|shy|uml|yen|GT|LT|gt|lt)(?!;)([=a-zA-Z0-9]?)|&#([0-9]+)(;?)|&#[xX]([a-fA-F0-9]+)(;?)|&([0-9a-zA-Z]+)/g;\n\tvar decodeMap = { 'aacute': '\\xE1', 'Aacute': '\\xC1', 'abreve': '\\u0103', 'Abreve': '\\u0102', 'ac': '\\u223E', 'acd': '\\u223F', 'acE': '\\u223E\\u0333', 'acirc': '\\xE2', 'Acirc': '\\xC2', 'acute': '\\xB4', 'acy': '\\u0430', 'Acy': '\\u0410', 'aelig': '\\xE6', 'AElig': '\\xC6', 'af': '\\u2061', 'afr': '\\uD835\\uDD1E', 'Afr': '\\uD835\\uDD04', 'agrave': '\\xE0', 'Agrave': '\\xC0', 'alefsym': '\\u2135', 'aleph': '\\u2135', 'alpha': '\\u03B1', 'Alpha': '\\u0391', 'amacr': '\\u0101', 'Amacr': '\\u0100', 'amalg': '\\u2A3F', 'amp': '&', 'AMP': '&', 'and': '\\u2227', 'And': '\\u2A53', 'andand': '\\u2A55', 'andd': '\\u2A5C', 'andslope': '\\u2A58', 'andv': '\\u2A5A', 'ang': '\\u2220', 'ange': '\\u29A4', 'angle': '\\u2220', 'angmsd': '\\u2221', 'angmsdaa': '\\u29A8', 'angmsdab': '\\u29A9', 'angmsdac': '\\u29AA', 'angmsdad': '\\u29AB', 'angmsdae': '\\u29AC', 'angmsdaf': '\\u29AD', 'angmsdag': '\\u29AE', 'angmsdah': '\\u29AF', 'angrt': '\\u221F', 'angrtvb': '\\u22BE', 'angrtvbd': '\\u299D', 'angsph': '\\u2222', 'angst': '\\xC5', 'angzarr': '\\u237C', 'aogon': '\\u0105', 'Aogon': '\\u0104', 'aopf': '\\uD835\\uDD52', 'Aopf': '\\uD835\\uDD38', 'ap': '\\u2248', 'apacir': '\\u2A6F', 'ape': '\\u224A', 'apE': '\\u2A70', 'apid': '\\u224B', 'apos': '\\'', 'ApplyFunction': '\\u2061', 'approx': '\\u2248', 'approxeq': '\\u224A', 'aring': '\\xE5', 'Aring': '\\xC5', 'ascr': '\\uD835\\uDCB6', 'Ascr': '\\uD835\\uDC9C', 'Assign': '\\u2254', 'ast': '*', 'asymp': '\\u2248', 'asympeq': '\\u224D', 'atilde': '\\xE3', 'Atilde': '\\xC3', 'auml': '\\xE4', 'Auml': '\\xC4', 'awconint': '\\u2233', 'awint': '\\u2A11', 'backcong': '\\u224C', 'backepsilon': '\\u03F6', 'backprime': '\\u2035', 'backsim': '\\u223D', 'backsimeq': '\\u22CD', 'Backslash': '\\u2216', 'Barv': '\\u2AE7', 'barvee': '\\u22BD', 'barwed': '\\u2305', 'Barwed': '\\u2306', 'barwedge': '\\u2305', 'bbrk': '\\u23B5', 'bbrktbrk': '\\u23B6', 'bcong': '\\u224C', 'bcy': '\\u0431', 'Bcy': '\\u0411', 'bdquo': '\\u201E', 'becaus': '\\u2235', 'because': '\\u2235', 'Because': '\\u2235', 'bemptyv': '\\u29B0', 'bepsi': '\\u03F6', 'bernou': '\\u212C', 'Bernoullis': '\\u212C', 'beta': '\\u03B2', 'Beta': '\\u0392', 'beth': '\\u2136', 'between': '\\u226C', 'bfr': '\\uD835\\uDD1F', 'Bfr': '\\uD835\\uDD05', 'bigcap': '\\u22C2', 'bigcirc': '\\u25EF', 'bigcup': '\\u22C3', 'bigodot': '\\u2A00', 'bigoplus': '\\u2A01', 'bigotimes': '\\u2A02', 'bigsqcup': '\\u2A06', 'bigstar': '\\u2605', 'bigtriangledown': '\\u25BD', 'bigtriangleup': '\\u25B3', 'biguplus': '\\u2A04', 'bigvee': '\\u22C1', 'bigwedge': '\\u22C0', 'bkarow': '\\u290D', 'blacklozenge': '\\u29EB', 'blacksquare': '\\u25AA', 'blacktriangle': '\\u25B4', 'blacktriangledown': '\\u25BE', 'blacktriangleleft': '\\u25C2', 'blacktriangleright': '\\u25B8', 'blank': '\\u2423', 'blk12': '\\u2592', 'blk14': '\\u2591', 'blk34': '\\u2593', 'block': '\\u2588', 'bne': '=\\u20E5', 'bnequiv': '\\u2261\\u20E5', 'bnot': '\\u2310', 'bNot': '\\u2AED', 'bopf': '\\uD835\\uDD53', 'Bopf': '\\uD835\\uDD39', 'bot': '\\u22A5', 'bottom': '\\u22A5', 'bowtie': '\\u22C8', 'boxbox': '\\u29C9', 'boxdl': '\\u2510', 'boxdL': '\\u2555', 'boxDl': '\\u2556', 'boxDL': '\\u2557', 'boxdr': '\\u250C', 'boxdR': '\\u2552', 'boxDr': '\\u2553', 'boxDR': '\\u2554', 'boxh': '\\u2500', 'boxH': '\\u2550', 'boxhd': '\\u252C', 'boxhD': '\\u2565', 'boxHd': '\\u2564', 'boxHD': '\\u2566', 'boxhu': '\\u2534', 'boxhU': '\\u2568', 'boxHu': '\\u2567', 'boxHU': '\\u2569', 'boxminus': '\\u229F', 'boxplus': '\\u229E', 'boxtimes': '\\u22A0', 'boxul': '\\u2518', 'boxuL': '\\u255B', 'boxUl': '\\u255C', 'boxUL': '\\u255D', 'boxur': '\\u2514', 'boxuR': '\\u2558', 'boxUr': '\\u2559', 'boxUR': '\\u255A', 'boxv': '\\u2502', 'boxV': '\\u2551', 'boxvh': '\\u253C', 'boxvH': '\\u256A', 'boxVh': '\\u256B', 'boxVH': '\\u256C', 'boxvl': '\\u2524', 'boxvL': '\\u2561', 'boxVl': '\\u2562', 'boxVL': '\\u2563', 'boxvr': '\\u251C', 'boxvR': '\\u255E', 'boxVr': '\\u255F', 'boxVR': '\\u2560', 'bprime': '\\u2035', 'breve': '\\u02D8', 'Breve': '\\u02D8', 'brvbar': '\\xA6', 'bscr': '\\uD835\\uDCB7', 'Bscr': '\\u212C', 'bsemi': '\\u204F', 'bsim': '\\u223D', 'bsime': '\\u22CD', 'bsol': '\\\\', 'bsolb': '\\u29C5', 'bsolhsub': '\\u27C8', 'bull': '\\u2022', 'bullet': '\\u2022', 'bump': '\\u224E', 'bumpe': '\\u224F', 'bumpE': '\\u2AAE', 'bumpeq': '\\u224F', 'Bumpeq': '\\u224E', 'cacute': '\\u0107', 'Cacute': '\\u0106', 'cap': '\\u2229', 'Cap': '\\u22D2', 'capand': '\\u2A44', 'capbrcup': '\\u2A49', 'capcap': '\\u2A4B', 'capcup': '\\u2A47', 'capdot': '\\u2A40', 'CapitalDifferentialD': '\\u2145', 'caps': '\\u2229\\uFE00', 'caret': '\\u2041', 'caron': '\\u02C7', 'Cayleys': '\\u212D', 'ccaps': '\\u2A4D', 'ccaron': '\\u010D', 'Ccaron': '\\u010C', 'ccedil': '\\xE7', 'Ccedil': '\\xC7', 'ccirc': '\\u0109', 'Ccirc': '\\u0108', 'Cconint': '\\u2230', 'ccups': '\\u2A4C', 'ccupssm': '\\u2A50', 'cdot': '\\u010B', 'Cdot': '\\u010A', 'cedil': '\\xB8', 'Cedilla': '\\xB8', 'cemptyv': '\\u29B2', 'cent': '\\xA2', 'centerdot': '\\xB7', 'CenterDot': '\\xB7', 'cfr': '\\uD835\\uDD20', 'Cfr': '\\u212D', 'chcy': '\\u0447', 'CHcy': '\\u0427', 'check': '\\u2713', 'checkmark': '\\u2713', 'chi': '\\u03C7', 'Chi': '\\u03A7', 'cir': '\\u25CB', 'circ': '\\u02C6', 'circeq': '\\u2257', 'circlearrowleft': '\\u21BA', 'circlearrowright': '\\u21BB', 'circledast': '\\u229B', 'circledcirc': '\\u229A', 'circleddash': '\\u229D', 'CircleDot': '\\u2299', 'circledR': '\\xAE', 'circledS': '\\u24C8', 'CircleMinus': '\\u2296', 'CirclePlus': '\\u2295', 'CircleTimes': '\\u2297', 'cire': '\\u2257', 'cirE': '\\u29C3', 'cirfnint': '\\u2A10', 'cirmid': '\\u2AEF', 'cirscir': '\\u29C2', 'ClockwiseContourIntegral': '\\u2232', 'CloseCurlyDoubleQuote': '\\u201D', 'CloseCurlyQuote': '\\u2019', 'clubs': '\\u2663', 'clubsuit': '\\u2663', 'colon': ':', 'Colon': '\\u2237', 'colone': '\\u2254', 'Colone': '\\u2A74', 'coloneq': '\\u2254', 'comma': ',', 'commat': '@', 'comp': '\\u2201', 'compfn': '\\u2218', 'complement': '\\u2201', 'complexes': '\\u2102', 'cong': '\\u2245', 'congdot': '\\u2A6D', 'Congruent': '\\u2261', 'conint': '\\u222E', 'Conint': '\\u222F', 'ContourIntegral': '\\u222E', 'copf': '\\uD835\\uDD54', 'Copf': '\\u2102', 'coprod': '\\u2210', 'Coproduct': '\\u2210', 'copy': '\\xA9', 'COPY': '\\xA9', 'copysr': '\\u2117', 'CounterClockwiseContourIntegral': '\\u2233', 'crarr': '\\u21B5', 'cross': '\\u2717', 'Cross': '\\u2A2F', 'cscr': '\\uD835\\uDCB8', 'Cscr': '\\uD835\\uDC9E', 'csub': '\\u2ACF', 'csube': '\\u2AD1', 'csup': '\\u2AD0', 'csupe': '\\u2AD2', 'ctdot': '\\u22EF', 'cudarrl': '\\u2938', 'cudarrr': '\\u2935', 'cuepr': '\\u22DE', 'cuesc': '\\u22DF', 'cularr': '\\u21B6', 'cularrp': '\\u293D', 'cup': '\\u222A', 'Cup': '\\u22D3', 'cupbrcap': '\\u2A48', 'cupcap': '\\u2A46', 'CupCap': '\\u224D', 'cupcup': '\\u2A4A', 'cupdot': '\\u228D', 'cupor': '\\u2A45', 'cups': '\\u222A\\uFE00', 'curarr': '\\u21B7', 'curarrm': '\\u293C', 'curlyeqprec': '\\u22DE', 'curlyeqsucc': '\\u22DF', 'curlyvee': '\\u22CE', 'curlywedge': '\\u22CF', 'curren': '\\xA4', 'curvearrowleft': '\\u21B6', 'curvearrowright': '\\u21B7', 'cuvee': '\\u22CE', 'cuwed': '\\u22CF', 'cwconint': '\\u2232', 'cwint': '\\u2231', 'cylcty': '\\u232D', 'dagger': '\\u2020', 'Dagger': '\\u2021', 'daleth': '\\u2138', 'darr': '\\u2193', 'dArr': '\\u21D3', 'Darr': '\\u21A1', 'dash': '\\u2010', 'dashv': '\\u22A3', 'Dashv': '\\u2AE4', 'dbkarow': '\\u290F', 'dblac': '\\u02DD', 'dcaron': '\\u010F', 'Dcaron': '\\u010E', 'dcy': '\\u0434', 'Dcy': '\\u0414', 'dd': '\\u2146', 'DD': '\\u2145', 'ddagger': '\\u2021', 'ddarr': '\\u21CA', 'DDotrahd': '\\u2911', 'ddotseq': '\\u2A77', 'deg': '\\xB0', 'Del': '\\u2207', 'delta': '\\u03B4', 'Delta': '\\u0394', 'demptyv': '\\u29B1', 'dfisht': '\\u297F', 'dfr': '\\uD835\\uDD21', 'Dfr': '\\uD835\\uDD07', 'dHar': '\\u2965', 'dharl': '\\u21C3', 'dharr': '\\u21C2', 'DiacriticalAcute': '\\xB4', 'DiacriticalDot': '\\u02D9', 'DiacriticalDoubleAcute': '\\u02DD', 'DiacriticalGrave': '`', 'DiacriticalTilde': '\\u02DC', 'diam': '\\u22C4', 'diamond': '\\u22C4', 'Diamond': '\\u22C4', 'diamondsuit': '\\u2666', 'diams': '\\u2666', 'die': '\\xA8', 'DifferentialD': '\\u2146', 'digamma': '\\u03DD', 'disin': '\\u22F2', 'div': '\\xF7', 'divide': '\\xF7', 'divideontimes': '\\u22C7', 'divonx': '\\u22C7', 'djcy': '\\u0452', 'DJcy': '\\u0402', 'dlcorn': '\\u231E', 'dlcrop': '\\u230D', 'dollar': '$', 'dopf': '\\uD835\\uDD55', 'Dopf': '\\uD835\\uDD3B', 'dot': '\\u02D9', 'Dot': '\\xA8', 'DotDot': '\\u20DC', 'doteq': '\\u2250', 'doteqdot': '\\u2251', 'DotEqual': '\\u2250', 'dotminus': '\\u2238', 'dotplus': '\\u2214', 'dotsquare': '\\u22A1', 'doublebarwedge': '\\u2306', 'DoubleContourIntegral': '\\u222F', 'DoubleDot': '\\xA8', 'DoubleDownArrow': '\\u21D3', 'DoubleLeftArrow': '\\u21D0', 'DoubleLeftRightArrow': '\\u21D4', 'DoubleLeftTee': '\\u2AE4', 'DoubleLongLeftArrow': '\\u27F8', 'DoubleLongLeftRightArrow': '\\u27FA', 'DoubleLongRightArrow': '\\u27F9', 'DoubleRightArrow': '\\u21D2', 'DoubleRightTee': '\\u22A8', 'DoubleUpArrow': '\\u21D1', 'DoubleUpDownArrow': '\\u21D5', 'DoubleVerticalBar': '\\u2225', 'downarrow': '\\u2193', 'Downarrow': '\\u21D3', 'DownArrow': '\\u2193', 'DownArrowBar': '\\u2913', 'DownArrowUpArrow': '\\u21F5', 'DownBreve': '\\u0311', 'downdownarrows': '\\u21CA', 'downharpoonleft': '\\u21C3', 'downharpoonright': '\\u21C2', 'DownLeftRightVector': '\\u2950', 'DownLeftTeeVector': '\\u295E', 'DownLeftVector': '\\u21BD', 'DownLeftVectorBar': '\\u2956', 'DownRightTeeVector': '\\u295F', 'DownRightVector': '\\u21C1', 'DownRightVectorBar': '\\u2957', 'DownTee': '\\u22A4', 'DownTeeArrow': '\\u21A7', 'drbkarow': '\\u2910', 'drcorn': '\\u231F', 'drcrop': '\\u230C', 'dscr': '\\uD835\\uDCB9', 'Dscr': '\\uD835\\uDC9F', 'dscy': '\\u0455', 'DScy': '\\u0405', 'dsol': '\\u29F6', 'dstrok': '\\u0111', 'Dstrok': '\\u0110', 'dtdot': '\\u22F1', 'dtri': '\\u25BF', 'dtrif': '\\u25BE', 'duarr': '\\u21F5', 'duhar': '\\u296F', 'dwangle': '\\u29A6', 'dzcy': '\\u045F', 'DZcy': '\\u040F', 'dzigrarr': '\\u27FF', 'eacute': '\\xE9', 'Eacute': '\\xC9', 'easter': '\\u2A6E', 'ecaron': '\\u011B', 'Ecaron': '\\u011A', 'ecir': '\\u2256', 'ecirc': '\\xEA', 'Ecirc': '\\xCA', 'ecolon': '\\u2255', 'ecy': '\\u044D', 'Ecy': '\\u042D', 'eDDot': '\\u2A77', 'edot': '\\u0117', 'eDot': '\\u2251', 'Edot': '\\u0116', 'ee': '\\u2147', 'efDot': '\\u2252', 'efr': '\\uD835\\uDD22', 'Efr': '\\uD835\\uDD08', 'eg': '\\u2A9A', 'egrave': '\\xE8', 'Egrave': '\\xC8', 'egs': '\\u2A96', 'egsdot': '\\u2A98', 'el': '\\u2A99', 'Element': '\\u2208', 'elinters': '\\u23E7', 'ell': '\\u2113', 'els': '\\u2A95', 'elsdot': '\\u2A97', 'emacr': '\\u0113', 'Emacr': '\\u0112', 'empty': '\\u2205', 'emptyset': '\\u2205', 'EmptySmallSquare': '\\u25FB', 'emptyv': '\\u2205', 'EmptyVerySmallSquare': '\\u25AB', 'emsp': '\\u2003', 'emsp13': '\\u2004', 'emsp14': '\\u2005', 'eng': '\\u014B', 'ENG': '\\u014A', 'ensp': '\\u2002', 'eogon': '\\u0119', 'Eogon': '\\u0118', 'eopf': '\\uD835\\uDD56', 'Eopf': '\\uD835\\uDD3C', 'epar': '\\u22D5', 'eparsl': '\\u29E3', 'eplus': '\\u2A71', 'epsi': '\\u03B5', 'epsilon': '\\u03B5', 'Epsilon': '\\u0395', 'epsiv': '\\u03F5', 'eqcirc': '\\u2256', 'eqcolon': '\\u2255', 'eqsim': '\\u2242', 'eqslantgtr': '\\u2A96', 'eqslantless': '\\u2A95', 'Equal': '\\u2A75', 'equals': '=', 'EqualTilde': '\\u2242', 'equest': '\\u225F', 'Equilibrium': '\\u21CC', 'equiv': '\\u2261', 'equivDD': '\\u2A78', 'eqvparsl': '\\u29E5', 'erarr': '\\u2971', 'erDot': '\\u2253', 'escr': '\\u212F', 'Escr': '\\u2130', 'esdot': '\\u2250', 'esim': '\\u2242', 'Esim': '\\u2A73', 'eta': '\\u03B7', 'Eta': '\\u0397', 'eth': '\\xF0', 'ETH': '\\xD0', 'euml': '\\xEB', 'Euml': '\\xCB', 'euro': '\\u20AC', 'excl': '!', 'exist': '\\u2203', 'Exists': '\\u2203', 'expectation': '\\u2130', 'exponentiale': '\\u2147', 'ExponentialE': '\\u2147', 'fallingdotseq': '\\u2252', 'fcy': '\\u0444', 'Fcy': '\\u0424', 'female': '\\u2640', 'ffilig': '\\uFB03', 'fflig': '\\uFB00', 'ffllig': '\\uFB04', 'ffr': '\\uD835\\uDD23', 'Ffr': '\\uD835\\uDD09', 'filig': '\\uFB01', 'FilledSmallSquare': '\\u25FC', 'FilledVerySmallSquare': '\\u25AA', 'fjlig': 'fj', 'flat': '\\u266D', 'fllig': '\\uFB02', 'fltns': '\\u25B1', 'fnof': '\\u0192', 'fopf': '\\uD835\\uDD57', 'Fopf': '\\uD835\\uDD3D', 'forall': '\\u2200', 'ForAll': '\\u2200', 'fork': '\\u22D4', 'forkv': '\\u2AD9', 'Fouriertrf': '\\u2131', 'fpartint': '\\u2A0D', 'frac12': '\\xBD', 'frac13': '\\u2153', 'frac14': '\\xBC', 'frac15': '\\u2155', 'frac16': '\\u2159', 'frac18': '\\u215B', 'frac23': '\\u2154', 'frac25': '\\u2156', 'frac34': '\\xBE', 'frac35': '\\u2157', 'frac38': '\\u215C', 'frac45': '\\u2158', 'frac56': '\\u215A', 'frac58': '\\u215D', 'frac78': '\\u215E', 'frasl': '\\u2044', 'frown': '\\u2322', 'fscr': '\\uD835\\uDCBB', 'Fscr': '\\u2131', 'gacute': '\\u01F5', 'gamma': '\\u03B3', 'Gamma': '\\u0393', 'gammad': '\\u03DD', 'Gammad': '\\u03DC', 'gap': '\\u2A86', 'gbreve': '\\u011F', 'Gbreve': '\\u011E', 'Gcedil': '\\u0122', 'gcirc': '\\u011D', 'Gcirc': '\\u011C', 'gcy': '\\u0433', 'Gcy': '\\u0413', 'gdot': '\\u0121', 'Gdot': '\\u0120', 'ge': '\\u2265', 'gE': '\\u2267', 'gel': '\\u22DB', 'gEl': '\\u2A8C', 'geq': '\\u2265', 'geqq': '\\u2267', 'geqslant': '\\u2A7E', 'ges': '\\u2A7E', 'gescc': '\\u2AA9', 'gesdot': '\\u2A80', 'gesdoto': '\\u2A82', 'gesdotol': '\\u2A84', 'gesl': '\\u22DB\\uFE00', 'gesles': '\\u2A94', 'gfr': '\\uD835\\uDD24', 'Gfr': '\\uD835\\uDD0A', 'gg': '\\u226B', 'Gg': '\\u22D9', 'ggg': '\\u22D9', 'gimel': '\\u2137', 'gjcy': '\\u0453', 'GJcy': '\\u0403', 'gl': '\\u2277', 'gla': '\\u2AA5', 'glE': '\\u2A92', 'glj': '\\u2AA4', 'gnap': '\\u2A8A', 'gnapprox': '\\u2A8A', 'gne': '\\u2A88', 'gnE': '\\u2269', 'gneq': '\\u2A88', 'gneqq': '\\u2269', 'gnsim': '\\u22E7', 'gopf': '\\uD835\\uDD58', 'Gopf': '\\uD835\\uDD3E', 'grave': '`', 'GreaterEqual': '\\u2265', 'GreaterEqualLess': '\\u22DB', 'GreaterFullEqual': '\\u2267', 'GreaterGreater': '\\u2AA2', 'GreaterLess': '\\u2277', 'GreaterSlantEqual': '\\u2A7E', 'GreaterTilde': '\\u2273', 'gscr': '\\u210A', 'Gscr': '\\uD835\\uDCA2', 'gsim': '\\u2273', 'gsime': '\\u2A8E', 'gsiml': '\\u2A90', 'gt': '>', 'Gt': '\\u226B', 'GT': '>', 'gtcc': '\\u2AA7', 'gtcir': '\\u2A7A', 'gtdot': '\\u22D7', 'gtlPar': '\\u2995', 'gtquest': '\\u2A7C', 'gtrapprox': '\\u2A86', 'gtrarr': '\\u2978', 'gtrdot': '\\u22D7', 'gtreqless': '\\u22DB', 'gtreqqless': '\\u2A8C', 'gtrless': '\\u2277', 'gtrsim': '\\u2273', 'gvertneqq': '\\u2269\\uFE00', 'gvnE': '\\u2269\\uFE00', 'Hacek': '\\u02C7', 'hairsp': '\\u200A', 'half': '\\xBD', 'hamilt': '\\u210B', 'hardcy': '\\u044A', 'HARDcy': '\\u042A', 'harr': '\\u2194', 'hArr': '\\u21D4', 'harrcir': '\\u2948', 'harrw': '\\u21AD', 'Hat': '^', 'hbar': '\\u210F', 'hcirc': '\\u0125', 'Hcirc': '\\u0124', 'hearts': '\\u2665', 'heartsuit': '\\u2665', 'hellip': '\\u2026', 'hercon': '\\u22B9', 'hfr': '\\uD835\\uDD25', 'Hfr': '\\u210C', 'HilbertSpace': '\\u210B', 'hksearow': '\\u2925', 'hkswarow': '\\u2926', 'hoarr': '\\u21FF', 'homtht': '\\u223B', 'hookleftarrow': '\\u21A9', 'hookrightarrow': '\\u21AA', 'hopf': '\\uD835\\uDD59', 'Hopf': '\\u210D', 'horbar': '\\u2015', 'HorizontalLine': '\\u2500', 'hscr': '\\uD835\\uDCBD', 'Hscr': '\\u210B', 'hslash': '\\u210F', 'hstrok': '\\u0127', 'Hstrok': '\\u0126', 'HumpDownHump': '\\u224E', 'HumpEqual': '\\u224F', 'hybull': '\\u2043', 'hyphen': '\\u2010', 'iacute': '\\xED', 'Iacute': '\\xCD', 'ic': '\\u2063', 'icirc': '\\xEE', 'Icirc': '\\xCE', 'icy': '\\u0438', 'Icy': '\\u0418', 'Idot': '\\u0130', 'iecy': '\\u0435', 'IEcy': '\\u0415', 'iexcl': '\\xA1', 'iff': '\\u21D4', 'ifr': '\\uD835\\uDD26', 'Ifr': '\\u2111', 'igrave': '\\xEC', 'Igrave': '\\xCC', 'ii': '\\u2148', 'iiiint': '\\u2A0C', 'iiint': '\\u222D', 'iinfin': '\\u29DC', 'iiota': '\\u2129', 'ijlig': '\\u0133', 'IJlig': '\\u0132', 'Im': '\\u2111', 'imacr': '\\u012B', 'Imacr': '\\u012A', 'image': '\\u2111', 'ImaginaryI': '\\u2148', 'imagline': '\\u2110', 'imagpart': '\\u2111', 'imath': '\\u0131', 'imof': '\\u22B7', 'imped': '\\u01B5', 'Implies': '\\u21D2', 'in': '\\u2208', 'incare': '\\u2105', 'infin': '\\u221E', 'infintie': '\\u29DD', 'inodot': '\\u0131', 'int': '\\u222B', 'Int': '\\u222C', 'intcal': '\\u22BA', 'integers': '\\u2124', 'Integral': '\\u222B', 'intercal': '\\u22BA', 'Intersection': '\\u22C2', 'intlarhk': '\\u2A17', 'intprod': '\\u2A3C', 'InvisibleComma': '\\u2063', 'InvisibleTimes': '\\u2062', 'iocy': '\\u0451', 'IOcy': '\\u0401', 'iogon': '\\u012F', 'Iogon': '\\u012E', 'iopf': '\\uD835\\uDD5A', 'Iopf': '\\uD835\\uDD40', 'iota': '\\u03B9', 'Iota': '\\u0399', 'iprod': '\\u2A3C', 'iquest': '\\xBF', 'iscr': '\\uD835\\uDCBE', 'Iscr': '\\u2110', 'isin': '\\u2208', 'isindot': '\\u22F5', 'isinE': '\\u22F9', 'isins': '\\u22F4', 'isinsv': '\\u22F3', 'isinv': '\\u2208', 'it': '\\u2062', 'itilde': '\\u0129', 'Itilde': '\\u0128', 'iukcy': '\\u0456', 'Iukcy': '\\u0406', 'iuml': '\\xEF', 'Iuml': '\\xCF', 'jcirc': '\\u0135', 'Jcirc': '\\u0134', 'jcy': '\\u0439', 'Jcy': '\\u0419', 'jfr': '\\uD835\\uDD27', 'Jfr': '\\uD835\\uDD0D', 'jmath': '\\u0237', 'jopf': '\\uD835\\uDD5B', 'Jopf': '\\uD835\\uDD41', 'jscr': '\\uD835\\uDCBF', 'Jscr': '\\uD835\\uDCA5', 'jsercy': '\\u0458', 'Jsercy': '\\u0408', 'jukcy': '\\u0454', 'Jukcy': '\\u0404', 'kappa': '\\u03BA', 'Kappa': '\\u039A', 'kappav': '\\u03F0', 'kcedil': '\\u0137', 'Kcedil': '\\u0136', 'kcy': '\\u043A', 'Kcy': '\\u041A', 'kfr': '\\uD835\\uDD28', 'Kfr': '\\uD835\\uDD0E', 'kgreen': '\\u0138', 'khcy': '\\u0445', 'KHcy': '\\u0425', 'kjcy': '\\u045C', 'KJcy': '\\u040C', 'kopf': '\\uD835\\uDD5C', 'Kopf': '\\uD835\\uDD42', 'kscr': '\\uD835\\uDCC0', 'Kscr': '\\uD835\\uDCA6', 'lAarr': '\\u21DA', 'lacute': '\\u013A', 'Lacute': '\\u0139', 'laemptyv': '\\u29B4', 'lagran': '\\u2112', 'lambda': '\\u03BB', 'Lambda': '\\u039B', 'lang': '\\u27E8', 'Lang': '\\u27EA', 'langd': '\\u2991', 'langle': '\\u27E8', 'lap': '\\u2A85', 'Laplacetrf': '\\u2112', 'laquo': '\\xAB', 'larr': '\\u2190', 'lArr': '\\u21D0', 'Larr': '\\u219E', 'larrb': '\\u21E4', 'larrbfs': '\\u291F', 'larrfs': '\\u291D', 'larrhk': '\\u21A9', 'larrlp': '\\u21AB', 'larrpl': '\\u2939', 'larrsim': '\\u2973', 'larrtl': '\\u21A2', 'lat': '\\u2AAB', 'latail': '\\u2919', 'lAtail': '\\u291B', 'late': '\\u2AAD', 'lates': '\\u2AAD\\uFE00', 'lbarr': '\\u290C', 'lBarr': '\\u290E', 'lbbrk': '\\u2772', 'lbrace': '{', 'lbrack': '[', 'lbrke': '\\u298B', 'lbrksld': '\\u298F', 'lbrkslu': '\\u298D', 'lcaron': '\\u013E', 'Lcaron': '\\u013D', 'lcedil': '\\u013C', 'Lcedil': '\\u013B', 'lceil': '\\u2308', 'lcub': '{', 'lcy': '\\u043B', 'Lcy': '\\u041B', 'ldca': '\\u2936', 'ldquo': '\\u201C', 'ldquor': '\\u201E', 'ldrdhar': '\\u2967', 'ldrushar': '\\u294B', 'ldsh': '\\u21B2', 'le': '\\u2264', 'lE': '\\u2266', 'LeftAngleBracket': '\\u27E8', 'leftarrow': '\\u2190', 'Leftarrow': '\\u21D0', 'LeftArrow': '\\u2190', 'LeftArrowBar': '\\u21E4', 'LeftArrowRightArrow': '\\u21C6', 'leftarrowtail': '\\u21A2', 'LeftCeiling': '\\u2308', 'LeftDoubleBracket': '\\u27E6', 'LeftDownTeeVector': '\\u2961', 'LeftDownVector': '\\u21C3', 'LeftDownVectorBar': '\\u2959', 'LeftFloor': '\\u230A', 'leftharpoondown': '\\u21BD', 'leftharpoonup': '\\u21BC', 'leftleftarrows': '\\u21C7', 'leftrightarrow': '\\u2194', 'Leftrightarrow': '\\u21D4', 'LeftRightArrow': '\\u2194', 'leftrightarrows': '\\u21C6', 'leftrightharpoons': '\\u21CB', 'leftrightsquigarrow': '\\u21AD', 'LeftRightVector': '\\u294E', 'LeftTee': '\\u22A3', 'LeftTeeArrow': '\\u21A4', 'LeftTeeVector': '\\u295A', 'leftthreetimes': '\\u22CB', 'LeftTriangle': '\\u22B2', 'LeftTriangleBar': '\\u29CF', 'LeftTriangleEqual': '\\u22B4', 'LeftUpDownVector': '\\u2951', 'LeftUpTeeVector': '\\u2960', 'LeftUpVector': '\\u21BF', 'LeftUpVectorBar': '\\u2958', 'LeftVector': '\\u21BC', 'LeftVectorBar': '\\u2952', 'leg': '\\u22DA', 'lEg': '\\u2A8B', 'leq': '\\u2264', 'leqq': '\\u2266', 'leqslant': '\\u2A7D', 'les': '\\u2A7D', 'lescc': '\\u2AA8', 'lesdot': '\\u2A7F', 'lesdoto': '\\u2A81', 'lesdotor': '\\u2A83', 'lesg': '\\u22DA\\uFE00', 'lesges': '\\u2A93', 'lessapprox': '\\u2A85', 'lessdot': '\\u22D6', 'lesseqgtr': '\\u22DA', 'lesseqqgtr': '\\u2A8B', 'LessEqualGreater': '\\u22DA', 'LessFullEqual': '\\u2266', 'LessGreater': '\\u2276', 'lessgtr': '\\u2276', 'LessLess': '\\u2AA1', 'lesssim': '\\u2272', 'LessSlantEqual': '\\u2A7D', 'LessTilde': '\\u2272', 'lfisht': '\\u297C', 'lfloor': '\\u230A', 'lfr': '\\uD835\\uDD29', 'Lfr': '\\uD835\\uDD0F', 'lg': '\\u2276', 'lgE': '\\u2A91', 'lHar': '\\u2962', 'lhard': '\\u21BD', 'lharu': '\\u21BC', 'lharul': '\\u296A', 'lhblk': '\\u2584', 'ljcy': '\\u0459', 'LJcy': '\\u0409', 'll': '\\u226A', 'Ll': '\\u22D8', 'llarr': '\\u21C7', 'llcorner': '\\u231E', 'Lleftarrow': '\\u21DA', 'llhard': '\\u296B', 'lltri': '\\u25FA', 'lmidot': '\\u0140', 'Lmidot': '\\u013F', 'lmoust': '\\u23B0', 'lmoustache': '\\u23B0', 'lnap': '\\u2A89', 'lnapprox': '\\u2A89', 'lne': '\\u2A87', 'lnE': '\\u2268', 'lneq': '\\u2A87', 'lneqq': '\\u2268', 'lnsim': '\\u22E6', 'loang': '\\u27EC', 'loarr': '\\u21FD', 'lobrk': '\\u27E6', 'longleftarrow': '\\u27F5', 'Longleftarrow': '\\u27F8', 'LongLeftArrow': '\\u27F5', 'longleftrightarrow': '\\u27F7', 'Longleftrightarrow': '\\u27FA', 'LongLeftRightArrow': '\\u27F7', 'longmapsto': '\\u27FC', 'longrightarrow': '\\u27F6', 'Longrightarrow': '\\u27F9', 'LongRightArrow': '\\u27F6', 'looparrowleft': '\\u21AB', 'looparrowright': '\\u21AC', 'lopar': '\\u2985', 'lopf': '\\uD835\\uDD5D', 'Lopf': '\\uD835\\uDD43', 'loplus': '\\u2A2D', 'lotimes': '\\u2A34', 'lowast': '\\u2217', 'lowbar': '_', 'LowerLeftArrow': '\\u2199', 'LowerRightArrow': '\\u2198', 'loz': '\\u25CA', 'lozenge': '\\u25CA', 'lozf': '\\u29EB', 'lpar': '(', 'lparlt': '\\u2993', 'lrarr': '\\u21C6', 'lrcorner': '\\u231F', 'lrhar': '\\u21CB', 'lrhard': '\\u296D', 'lrm': '\\u200E', 'lrtri': '\\u22BF', 'lsaquo': '\\u2039', 'lscr': '\\uD835\\uDCC1', 'Lscr': '\\u2112', 'lsh': '\\u21B0', 'Lsh': '\\u21B0', 'lsim': '\\u2272', 'lsime': '\\u2A8D', 'lsimg': '\\u2A8F', 'lsqb': '[', 'lsquo': '\\u2018', 'lsquor': '\\u201A', 'lstrok': '\\u0142', 'Lstrok': '\\u0141', 'lt': '<', 'Lt': '\\u226A', 'LT': '<', 'ltcc': '\\u2AA6', 'ltcir': '\\u2A79', 'ltdot': '\\u22D6', 'lthree': '\\u22CB', 'ltimes': '\\u22C9', 'ltlarr': '\\u2976', 'ltquest': '\\u2A7B', 'ltri': '\\u25C3', 'ltrie': '\\u22B4', 'ltrif': '\\u25C2', 'ltrPar': '\\u2996', 'lurdshar': '\\u294A', 'luruhar': '\\u2966', 'lvertneqq': '\\u2268\\uFE00', 'lvnE': '\\u2268\\uFE00', 'macr': '\\xAF', 'male': '\\u2642', 'malt': '\\u2720', 'maltese': '\\u2720', 'map': '\\u21A6', 'Map': '\\u2905', 'mapsto': '\\u21A6', 'mapstodown': '\\u21A7', 'mapstoleft': '\\u21A4', 'mapstoup': '\\u21A5', 'marker': '\\u25AE', 'mcomma': '\\u2A29', 'mcy': '\\u043C', 'Mcy': '\\u041C', 'mdash': '\\u2014', 'mDDot': '\\u223A', 'measuredangle': '\\u2221', 'MediumSpace': '\\u205F', 'Mellintrf': '\\u2133', 'mfr': '\\uD835\\uDD2A', 'Mfr': '\\uD835\\uDD10', 'mho': '\\u2127', 'micro': '\\xB5', 'mid': '\\u2223', 'midast': '*', 'midcir': '\\u2AF0', 'middot': '\\xB7', 'minus': '\\u2212', 'minusb': '\\u229F', 'minusd': '\\u2238', 'minusdu': '\\u2A2A', 'MinusPlus': '\\u2213', 'mlcp': '\\u2ADB', 'mldr': '\\u2026', 'mnplus': '\\u2213', 'models': '\\u22A7', 'mopf': '\\uD835\\uDD5E', 'Mopf': '\\uD835\\uDD44', 'mp': '\\u2213', 'mscr': '\\uD835\\uDCC2', 'Mscr': '\\u2133', 'mstpos': '\\u223E', 'mu': '\\u03BC', 'Mu': '\\u039C', 'multimap': '\\u22B8', 'mumap': '\\u22B8', 'nabla': '\\u2207', 'nacute': '\\u0144', 'Nacute': '\\u0143', 'nang': '\\u2220\\u20D2', 'nap': '\\u2249', 'napE': '\\u2A70\\u0338', 'napid': '\\u224B\\u0338', 'napos': '\\u0149', 'napprox': '\\u2249', 'natur': '\\u266E', 'natural': '\\u266E', 'naturals': '\\u2115', 'nbsp': '\\xA0', 'nbump': '\\u224E\\u0338', 'nbumpe': '\\u224F\\u0338', 'ncap': '\\u2A43', 'ncaron': '\\u0148', 'Ncaron': '\\u0147', 'ncedil': '\\u0146', 'Ncedil': '\\u0145', 'ncong': '\\u2247', 'ncongdot': '\\u2A6D\\u0338', 'ncup': '\\u2A42', 'ncy': '\\u043D', 'Ncy': '\\u041D', 'ndash': '\\u2013', 'ne': '\\u2260', 'nearhk': '\\u2924', 'nearr': '\\u2197', 'neArr': '\\u21D7', 'nearrow': '\\u2197', 'nedot': '\\u2250\\u0338', 'NegativeMediumSpace': '\\u200B', 'NegativeThickSpace': '\\u200B', 'NegativeThinSpace': '\\u200B', 'NegativeVeryThinSpace': '\\u200B', 'nequiv': '\\u2262', 'nesear': '\\u2928', 'nesim': '\\u2242\\u0338', 'NestedGreaterGreater': '\\u226B', 'NestedLessLess': '\\u226A', 'NewLine': '\\n', 'nexist': '\\u2204', 'nexists': '\\u2204', 'nfr': '\\uD835\\uDD2B', 'Nfr': '\\uD835\\uDD11', 'nge': '\\u2271', 'ngE': '\\u2267\\u0338', 'ngeq': '\\u2271', 'ngeqq': '\\u2267\\u0338', 'ngeqslant': '\\u2A7E\\u0338', 'nges': '\\u2A7E\\u0338', 'nGg': '\\u22D9\\u0338', 'ngsim': '\\u2275', 'ngt': '\\u226F', 'nGt': '\\u226B\\u20D2', 'ngtr': '\\u226F', 'nGtv': '\\u226B\\u0338', 'nharr': '\\u21AE', 'nhArr': '\\u21CE', 'nhpar': '\\u2AF2', 'ni': '\\u220B', 'nis': '\\u22FC', 'nisd': '\\u22FA', 'niv': '\\u220B', 'njcy': '\\u045A', 'NJcy': '\\u040A', 'nlarr': '\\u219A', 'nlArr': '\\u21CD', 'nldr': '\\u2025', 'nle': '\\u2270', 'nlE': '\\u2266\\u0338', 'nleftarrow': '\\u219A', 'nLeftarrow': '\\u21CD', 'nleftrightarrow': '\\u21AE', 'nLeftrightarrow': '\\u21CE', 'nleq': '\\u2270', 'nleqq': '\\u2266\\u0338', 'nleqslant': '\\u2A7D\\u0338', 'nles': '\\u2A7D\\u0338', 'nless': '\\u226E', 'nLl': '\\u22D8\\u0338', 'nlsim': '\\u2274', 'nlt': '\\u226E', 'nLt': '\\u226A\\u20D2', 'nltri': '\\u22EA', 'nltrie': '\\u22EC', 'nLtv': '\\u226A\\u0338', 'nmid': '\\u2224', 'NoBreak': '\\u2060', 'NonBreakingSpace': '\\xA0', 'nopf': '\\uD835\\uDD5F', 'Nopf': '\\u2115', 'not': '\\xAC', 'Not': '\\u2AEC', 'NotCongruent': '\\u2262', 'NotCupCap': '\\u226D', 'NotDoubleVerticalBar': '\\u2226', 'NotElement': '\\u2209', 'NotEqual': '\\u2260', 'NotEqualTilde': '\\u2242\\u0338', 'NotExists': '\\u2204', 'NotGreater': '\\u226F', 'NotGreaterEqual': '\\u2271', 'NotGreaterFullEqual': '\\u2267\\u0338', 'NotGreaterGreater': '\\u226B\\u0338', 'NotGreaterLess': '\\u2279', 'NotGreaterSlantEqual': '\\u2A7E\\u0338', 'NotGreaterTilde': '\\u2275', 'NotHumpDownHump': '\\u224E\\u0338', 'NotHumpEqual': '\\u224F\\u0338', 'notin': '\\u2209', 'notindot': '\\u22F5\\u0338', 'notinE': '\\u22F9\\u0338', 'notinva': '\\u2209', 'notinvb': '\\u22F7', 'notinvc': '\\u22F6', 'NotLeftTriangle': '\\u22EA', 'NotLeftTriangleBar': '\\u29CF\\u0338', 'NotLeftTriangleEqual': '\\u22EC', 'NotLess': '\\u226E', 'NotLessEqual': '\\u2270', 'NotLessGreater': '\\u2278', 'NotLessLess': '\\u226A\\u0338', 'NotLessSlantEqual': '\\u2A7D\\u0338', 'NotLessTilde': '\\u2274', 'NotNestedGreaterGreater': '\\u2AA2\\u0338', 'NotNestedLessLess': '\\u2AA1\\u0338', 'notni': '\\u220C', 'notniva': '\\u220C', 'notnivb': '\\u22FE', 'notnivc': '\\u22FD', 'NotPrecedes': '\\u2280', 'NotPrecedesEqual': '\\u2AAF\\u0338', 'NotPrecedesSlantEqual': '\\u22E0', 'NotReverseElement': '\\u220C', 'NotRightTriangle': '\\u22EB', 'NotRightTriangleBar': '\\u29D0\\u0338', 'NotRightTriangleEqual': '\\u22ED', 'NotSquareSubset': '\\u228F\\u0338', 'NotSquareSubsetEqual': '\\u22E2', 'NotSquareSuperset': '\\u2290\\u0338', 'NotSquareSupersetEqual': '\\u22E3', 'NotSubset': '\\u2282\\u20D2', 'NotSubsetEqual': '\\u2288', 'NotSucceeds': '\\u2281', 'NotSucceedsEqual': '\\u2AB0\\u0338', 'NotSucceedsSlantEqual': '\\u22E1', 'NotSucceedsTilde': '\\u227F\\u0338', 'NotSuperset': '\\u2283\\u20D2', 'NotSupersetEqual': '\\u2289', 'NotTilde': '\\u2241', 'NotTildeEqual': '\\u2244', 'NotTildeFullEqual': '\\u2247', 'NotTildeTilde': '\\u2249', 'NotVerticalBar': '\\u2224', 'npar': '\\u2226', 'nparallel': '\\u2226', 'nparsl': '\\u2AFD\\u20E5', 'npart': '\\u2202\\u0338', 'npolint': '\\u2A14', 'npr': '\\u2280', 'nprcue': '\\u22E0', 'npre': '\\u2AAF\\u0338', 'nprec': '\\u2280', 'npreceq': '\\u2AAF\\u0338', 'nrarr': '\\u219B', 'nrArr': '\\u21CF', 'nrarrc': '\\u2933\\u0338', 'nrarrw': '\\u219D\\u0338', 'nrightarrow': '\\u219B', 'nRightarrow': '\\u21CF', 'nrtri': '\\u22EB', 'nrtrie': '\\u22ED', 'nsc': '\\u2281', 'nsccue': '\\u22E1', 'nsce': '\\u2AB0\\u0338', 'nscr': '\\uD835\\uDCC3', 'Nscr': '\\uD835\\uDCA9', 'nshortmid': '\\u2224', 'nshortparallel': '\\u2226', 'nsim': '\\u2241', 'nsime': '\\u2244', 'nsimeq': '\\u2244', 'nsmid': '\\u2224', 'nspar': '\\u2226', 'nsqsube': '\\u22E2', 'nsqsupe': '\\u22E3', 'nsub': '\\u2284', 'nsube': '\\u2288', 'nsubE': '\\u2AC5\\u0338', 'nsubset': '\\u2282\\u20D2', 'nsubseteq': '\\u2288', 'nsubseteqq': '\\u2AC5\\u0338', 'nsucc': '\\u2281', 'nsucceq': '\\u2AB0\\u0338', 'nsup': '\\u2285', 'nsupe': '\\u2289', 'nsupE': '\\u2AC6\\u0338', 'nsupset': '\\u2283\\u20D2', 'nsupseteq': '\\u2289', 'nsupseteqq': '\\u2AC6\\u0338', 'ntgl': '\\u2279', 'ntilde': '\\xF1', 'Ntilde': '\\xD1', 'ntlg': '\\u2278', 'ntriangleleft': '\\u22EA', 'ntrianglelefteq': '\\u22EC', 'ntriangleright': '\\u22EB', 'ntrianglerighteq': '\\u22ED', 'nu': '\\u03BD', 'Nu': '\\u039D', 'num': '#', 'numero': '\\u2116', 'numsp': '\\u2007', 'nvap': '\\u224D\\u20D2', 'nvdash': '\\u22AC', 'nvDash': '\\u22AD', 'nVdash': '\\u22AE', 'nVDash': '\\u22AF', 'nvge': '\\u2265\\u20D2', 'nvgt': '>\\u20D2', 'nvHarr': '\\u2904', 'nvinfin': '\\u29DE', 'nvlArr': '\\u2902', 'nvle': '\\u2264\\u20D2', 'nvlt': '<\\u20D2', 'nvltrie': '\\u22B4\\u20D2', 'nvrArr': '\\u2903', 'nvrtrie': '\\u22B5\\u20D2', 'nvsim': '\\u223C\\u20D2', 'nwarhk': '\\u2923', 'nwarr': '\\u2196', 'nwArr': '\\u21D6', 'nwarrow': '\\u2196', 'nwnear': '\\u2927', 'oacute': '\\xF3', 'Oacute': '\\xD3', 'oast': '\\u229B', 'ocir': '\\u229A', 'ocirc': '\\xF4', 'Ocirc': '\\xD4', 'ocy': '\\u043E', 'Ocy': '\\u041E', 'odash': '\\u229D', 'odblac': '\\u0151', 'Odblac': '\\u0150', 'odiv': '\\u2A38', 'odot': '\\u2299', 'odsold': '\\u29BC', 'oelig': '\\u0153', 'OElig': '\\u0152', 'ofcir': '\\u29BF', 'ofr': '\\uD835\\uDD2C', 'Ofr': '\\uD835\\uDD12', 'ogon': '\\u02DB', 'ograve': '\\xF2', 'Ograve': '\\xD2', 'ogt': '\\u29C1', 'ohbar': '\\u29B5', 'ohm': '\\u03A9', 'oint': '\\u222E', 'olarr': '\\u21BA', 'olcir': '\\u29BE', 'olcross': '\\u29BB', 'oline': '\\u203E', 'olt': '\\u29C0', 'omacr': '\\u014D', 'Omacr': '\\u014C', 'omega': '\\u03C9', 'Omega': '\\u03A9', 'omicron': '\\u03BF', 'Omicron': '\\u039F', 'omid': '\\u29B6', 'ominus': '\\u2296', 'oopf': '\\uD835\\uDD60', 'Oopf': '\\uD835\\uDD46', 'opar': '\\u29B7', 'OpenCurlyDoubleQuote': '\\u201C', 'OpenCurlyQuote': '\\u2018', 'operp': '\\u29B9', 'oplus': '\\u2295', 'or': '\\u2228', 'Or': '\\u2A54', 'orarr': '\\u21BB', 'ord': '\\u2A5D', 'order': '\\u2134', 'orderof': '\\u2134', 'ordf': '\\xAA', 'ordm': '\\xBA', 'origof': '\\u22B6', 'oror': '\\u2A56', 'orslope': '\\u2A57', 'orv': '\\u2A5B', 'oS': '\\u24C8', 'oscr': '\\u2134', 'Oscr': '\\uD835\\uDCAA', 'oslash': '\\xF8', 'Oslash': '\\xD8', 'osol': '\\u2298', 'otilde': '\\xF5', 'Otilde': '\\xD5', 'otimes': '\\u2297', 'Otimes': '\\u2A37', 'otimesas': '\\u2A36', 'ouml': '\\xF6', 'Ouml': '\\xD6', 'ovbar': '\\u233D', 'OverBar': '\\u203E', 'OverBrace': '\\u23DE', 'OverBracket': '\\u23B4', 'OverParenthesis': '\\u23DC', 'par': '\\u2225', 'para': '\\xB6', 'parallel': '\\u2225', 'parsim': '\\u2AF3', 'parsl': '\\u2AFD', 'part': '\\u2202', 'PartialD': '\\u2202', 'pcy': '\\u043F', 'Pcy': '\\u041F', 'percnt': '%', 'period': '.', 'permil': '\\u2030', 'perp': '\\u22A5', 'pertenk': '\\u2031', 'pfr': '\\uD835\\uDD2D', 'Pfr': '\\uD835\\uDD13', 'phi': '\\u03C6', 'Phi': '\\u03A6', 'phiv': '\\u03D5', 'phmmat': '\\u2133', 'phone': '\\u260E', 'pi': '\\u03C0', 'Pi': '\\u03A0', 'pitchfork': '\\u22D4', 'piv': '\\u03D6', 'planck': '\\u210F', 'planckh': '\\u210E', 'plankv': '\\u210F', 'plus': '+', 'plusacir': '\\u2A23', 'plusb': '\\u229E', 'pluscir': '\\u2A22', 'plusdo': '\\u2214', 'plusdu': '\\u2A25', 'pluse': '\\u2A72', 'PlusMinus': '\\xB1', 'plusmn': '\\xB1', 'plussim': '\\u2A26', 'plustwo': '\\u2A27', 'pm': '\\xB1', 'Poincareplane': '\\u210C', 'pointint': '\\u2A15', 'popf': '\\uD835\\uDD61', 'Popf': '\\u2119', 'pound': '\\xA3', 'pr': '\\u227A', 'Pr': '\\u2ABB', 'prap': '\\u2AB7', 'prcue': '\\u227C', 'pre': '\\u2AAF', 'prE': '\\u2AB3', 'prec': '\\u227A', 'precapprox': '\\u2AB7', 'preccurlyeq': '\\u227C', 'Precedes': '\\u227A', 'PrecedesEqual': '\\u2AAF', 'PrecedesSlantEqual': '\\u227C', 'PrecedesTilde': '\\u227E', 'preceq': '\\u2AAF', 'precnapprox': '\\u2AB9', 'precneqq': '\\u2AB5', 'precnsim': '\\u22E8', 'precsim': '\\u227E', 'prime': '\\u2032', 'Prime': '\\u2033', 'primes': '\\u2119', 'prnap': '\\u2AB9', 'prnE': '\\u2AB5', 'prnsim': '\\u22E8', 'prod': '\\u220F', 'Product': '\\u220F', 'profalar': '\\u232E', 'profline': '\\u2312', 'profsurf': '\\u2313', 'prop': '\\u221D', 'Proportion': '\\u2237', 'Proportional': '\\u221D', 'propto': '\\u221D', 'prsim': '\\u227E', 'prurel': '\\u22B0', 'pscr': '\\uD835\\uDCC5', 'Pscr': '\\uD835\\uDCAB', 'psi': '\\u03C8', 'Psi': '\\u03A8', 'puncsp': '\\u2008', 'qfr': '\\uD835\\uDD2E', 'Qfr': '\\uD835\\uDD14', 'qint': '\\u2A0C', 'qopf': '\\uD835\\uDD62', 'Qopf': '\\u211A', 'qprime': '\\u2057', 'qscr': '\\uD835\\uDCC6', 'Qscr': '\\uD835\\uDCAC', 'quaternions': '\\u210D', 'quatint': '\\u2A16', 'quest': '?', 'questeq': '\\u225F', 'quot': '\"', 'QUOT': '\"', 'rAarr': '\\u21DB', 'race': '\\u223D\\u0331', 'racute': '\\u0155', 'Racute': '\\u0154', 'radic': '\\u221A', 'raemptyv': '\\u29B3', 'rang': '\\u27E9', 'Rang': '\\u27EB', 'rangd': '\\u2992', 'range': '\\u29A5', 'rangle': '\\u27E9', 'raquo': '\\xBB', 'rarr': '\\u2192', 'rArr': '\\u21D2', 'Rarr': '\\u21A0', 'rarrap': '\\u2975', 'rarrb': '\\u21E5', 'rarrbfs': '\\u2920', 'rarrc': '\\u2933', 'rarrfs': '\\u291E', 'rarrhk': '\\u21AA', 'rarrlp': '\\u21AC', 'rarrpl': '\\u2945', 'rarrsim': '\\u2974', 'rarrtl': '\\u21A3', 'Rarrtl': '\\u2916', 'rarrw': '\\u219D', 'ratail': '\\u291A', 'rAtail': '\\u291C', 'ratio': '\\u2236', 'rationals': '\\u211A', 'rbarr': '\\u290D', 'rBarr': '\\u290F', 'RBarr': '\\u2910', 'rbbrk': '\\u2773', 'rbrace': '}', 'rbrack': ']', 'rbrke': '\\u298C', 'rbrksld': '\\u298E', 'rbrkslu': '\\u2990', 'rcaron': '\\u0159', 'Rcaron': '\\u0158', 'rcedil': '\\u0157', 'Rcedil': '\\u0156', 'rceil': '\\u2309', 'rcub': '}', 'rcy': '\\u0440', 'Rcy': '\\u0420', 'rdca': '\\u2937', 'rdldhar': '\\u2969', 'rdquo': '\\u201D', 'rdquor': '\\u201D', 'rdsh': '\\u21B3', 'Re': '\\u211C', 'real': '\\u211C', 'realine': '\\u211B', 'realpart': '\\u211C', 'reals': '\\u211D', 'rect': '\\u25AD', 'reg': '\\xAE', 'REG': '\\xAE', 'ReverseElement': '\\u220B', 'ReverseEquilibrium': '\\u21CB', 'ReverseUpEquilibrium': '\\u296F', 'rfisht': '\\u297D', 'rfloor': '\\u230B', 'rfr': '\\uD835\\uDD2F', 'Rfr': '\\u211C', 'rHar': '\\u2964', 'rhard': '\\u21C1', 'rharu': '\\u21C0', 'rharul': '\\u296C', 'rho': '\\u03C1', 'Rho': '\\u03A1', 'rhov': '\\u03F1', 'RightAngleBracket': '\\u27E9', 'rightarrow': '\\u2192', 'Rightarrow': '\\u21D2', 'RightArrow': '\\u2192', 'RightArrowBar': '\\u21E5', 'RightArrowLeftArrow': '\\u21C4', 'rightarrowtail': '\\u21A3', 'RightCeiling': '\\u2309', 'RightDoubleBracket': '\\u27E7', 'RightDownTeeVector': '\\u295D', 'RightDownVector': '\\u21C2', 'RightDownVectorBar': '\\u2955', 'RightFloor': '\\u230B', 'rightharpoondown': '\\u21C1', 'rightharpoonup': '\\u21C0', 'rightleftarrows': '\\u21C4', 'rightleftharpoons': '\\u21CC', 'rightrightarrows': '\\u21C9', 'rightsquigarrow': '\\u219D', 'RightTee': '\\u22A2', 'RightTeeArrow': '\\u21A6', 'RightTeeVector': '\\u295B', 'rightthreetimes': '\\u22CC', 'RightTriangle': '\\u22B3', 'RightTriangleBar': '\\u29D0', 'RightTriangleEqual': '\\u22B5', 'RightUpDownVector': '\\u294F', 'RightUpTeeVector': '\\u295C', 'RightUpVector': '\\u21BE', 'RightUpVectorBar': '\\u2954', 'RightVector': '\\u21C0', 'RightVectorBar': '\\u2953', 'ring': '\\u02DA', 'risingdotseq': '\\u2253', 'rlarr': '\\u21C4', 'rlhar': '\\u21CC', 'rlm': '\\u200F', 'rmoust': '\\u23B1', 'rmoustache': '\\u23B1', 'rnmid': '\\u2AEE', 'roang': '\\u27ED', 'roarr': '\\u21FE', 'robrk': '\\u27E7', 'ropar': '\\u2986', 'ropf': '\\uD835\\uDD63', 'Ropf': '\\u211D', 'roplus': '\\u2A2E', 'rotimes': '\\u2A35', 'RoundImplies': '\\u2970', 'rpar': ')', 'rpargt': '\\u2994', 'rppolint': '\\u2A12', 'rrarr': '\\u21C9', 'Rrightarrow': '\\u21DB', 'rsaquo': '\\u203A', 'rscr': '\\uD835\\uDCC7', 'Rscr': '\\u211B', 'rsh': '\\u21B1', 'Rsh': '\\u21B1', 'rsqb': ']', 'rsquo': '\\u2019', 'rsquor': '\\u2019', 'rthree': '\\u22CC', 'rtimes': '\\u22CA', 'rtri': '\\u25B9', 'rtrie': '\\u22B5', 'rtrif': '\\u25B8', 'rtriltri': '\\u29CE', 'RuleDelayed': '\\u29F4', 'ruluhar': '\\u2968', 'rx': '\\u211E', 'sacute': '\\u015B', 'Sacute': '\\u015A', 'sbquo': '\\u201A', 'sc': '\\u227B', 'Sc': '\\u2ABC', 'scap': '\\u2AB8', 'scaron': '\\u0161', 'Scaron': '\\u0160', 'sccue': '\\u227D', 'sce': '\\u2AB0', 'scE': '\\u2AB4', 'scedil': '\\u015F', 'Scedil': '\\u015E', 'scirc': '\\u015D', 'Scirc': '\\u015C', 'scnap': '\\u2ABA', 'scnE': '\\u2AB6', 'scnsim': '\\u22E9', 'scpolint': '\\u2A13', 'scsim': '\\u227F', 'scy': '\\u0441', 'Scy': '\\u0421', 'sdot': '\\u22C5', 'sdotb': '\\u22A1', 'sdote': '\\u2A66', 'searhk': '\\u2925', 'searr': '\\u2198', 'seArr': '\\u21D8', 'searrow': '\\u2198', 'sect': '\\xA7', 'semi': ';', 'seswar': '\\u2929', 'setminus': '\\u2216', 'setmn': '\\u2216', 'sext': '\\u2736', 'sfr': '\\uD835\\uDD30', 'Sfr': '\\uD835\\uDD16', 'sfrown': '\\u2322', 'sharp': '\\u266F', 'shchcy': '\\u0449', 'SHCHcy': '\\u0429', 'shcy': '\\u0448', 'SHcy': '\\u0428', 'ShortDownArrow': '\\u2193', 'ShortLeftArrow': '\\u2190', 'shortmid': '\\u2223', 'shortparallel': '\\u2225', 'ShortRightArrow': '\\u2192', 'ShortUpArrow': '\\u2191', 'shy': '\\xAD', 'sigma': '\\u03C3', 'Sigma': '\\u03A3', 'sigmaf': '\\u03C2', 'sigmav': '\\u03C2', 'sim': '\\u223C', 'simdot': '\\u2A6A', 'sime': '\\u2243', 'simeq': '\\u2243', 'simg': '\\u2A9E', 'simgE': '\\u2AA0', 'siml': '\\u2A9D', 'simlE': '\\u2A9F', 'simne': '\\u2246', 'simplus': '\\u2A24', 'simrarr': '\\u2972', 'slarr': '\\u2190', 'SmallCircle': '\\u2218', 'smallsetminus': '\\u2216', 'smashp': '\\u2A33', 'smeparsl': '\\u29E4', 'smid': '\\u2223', 'smile': '\\u2323', 'smt': '\\u2AAA', 'smte': '\\u2AAC', 'smtes': '\\u2AAC\\uFE00', 'softcy': '\\u044C', 'SOFTcy': '\\u042C', 'sol': '/', 'solb': '\\u29C4', 'solbar': '\\u233F', 'sopf': '\\uD835\\uDD64', 'Sopf': '\\uD835\\uDD4A', 'spades': '\\u2660', 'spadesuit': '\\u2660', 'spar': '\\u2225', 'sqcap': '\\u2293', 'sqcaps': '\\u2293\\uFE00', 'sqcup': '\\u2294', 'sqcups': '\\u2294\\uFE00', 'Sqrt': '\\u221A', 'sqsub': '\\u228F', 'sqsube': '\\u2291', 'sqsubset': '\\u228F', 'sqsubseteq': '\\u2291', 'sqsup': '\\u2290', 'sqsupe': '\\u2292', 'sqsupset': '\\u2290', 'sqsupseteq': '\\u2292', 'squ': '\\u25A1', 'square': '\\u25A1', 'Square': '\\u25A1', 'SquareIntersection': '\\u2293', 'SquareSubset': '\\u228F', 'SquareSubsetEqual': '\\u2291', 'SquareSuperset': '\\u2290', 'SquareSupersetEqual': '\\u2292', 'SquareUnion': '\\u2294', 'squarf': '\\u25AA', 'squf': '\\u25AA', 'srarr': '\\u2192', 'sscr': '\\uD835\\uDCC8', 'Sscr': '\\uD835\\uDCAE', 'ssetmn': '\\u2216', 'ssmile': '\\u2323', 'sstarf': '\\u22C6', 'star': '\\u2606', 'Star': '\\u22C6', 'starf': '\\u2605', 'straightepsilon': '\\u03F5', 'straightphi': '\\u03D5', 'strns': '\\xAF', 'sub': '\\u2282', 'Sub': '\\u22D0', 'subdot': '\\u2ABD', 'sube': '\\u2286', 'subE': '\\u2AC5', 'subedot': '\\u2AC3', 'submult': '\\u2AC1', 'subne': '\\u228A', 'subnE': '\\u2ACB', 'subplus': '\\u2ABF', 'subrarr': '\\u2979', 'subset': '\\u2282', 'Subset': '\\u22D0', 'subseteq': '\\u2286', 'subseteqq': '\\u2AC5', 'SubsetEqual': '\\u2286', 'subsetneq': '\\u228A', 'subsetneqq': '\\u2ACB', 'subsim': '\\u2AC7', 'subsub': '\\u2AD5', 'subsup': '\\u2AD3', 'succ': '\\u227B', 'succapprox': '\\u2AB8', 'succcurlyeq': '\\u227D', 'Succeeds': '\\u227B', 'SucceedsEqual': '\\u2AB0', 'SucceedsSlantEqual': '\\u227D', 'SucceedsTilde': '\\u227F', 'succeq': '\\u2AB0', 'succnapprox': '\\u2ABA', 'succneqq': '\\u2AB6', 'succnsim': '\\u22E9', 'succsim': '\\u227F', 'SuchThat': '\\u220B', 'sum': '\\u2211', 'Sum': '\\u2211', 'sung': '\\u266A', 'sup': '\\u2283', 'Sup': '\\u22D1', 'sup1': '\\xB9', 'sup2': '\\xB2', 'sup3': '\\xB3', 'supdot': '\\u2ABE', 'supdsub': '\\u2AD8', 'supe': '\\u2287', 'supE': '\\u2AC6', 'supedot': '\\u2AC4', 'Superset': '\\u2283', 'SupersetEqual': '\\u2287', 'suphsol': '\\u27C9', 'suphsub': '\\u2AD7', 'suplarr': '\\u297B', 'supmult': '\\u2AC2', 'supne': '\\u228B', 'supnE': '\\u2ACC', 'supplus': '\\u2AC0', 'supset': '\\u2283', 'Supset': '\\u22D1', 'supseteq': '\\u2287', 'supseteqq': '\\u2AC6', 'supsetneq': '\\u228B', 'supsetneqq': '\\u2ACC', 'supsim': '\\u2AC8', 'supsub': '\\u2AD4', 'supsup': '\\u2AD6', 'swarhk': '\\u2926', 'swarr': '\\u2199', 'swArr': '\\u21D9', 'swarrow': '\\u2199', 'swnwar': '\\u292A', 'szlig': '\\xDF', 'Tab': '\\t', 'target': '\\u2316', 'tau': '\\u03C4', 'Tau': '\\u03A4', 'tbrk': '\\u23B4', 'tcaron': '\\u0165', 'Tcaron': '\\u0164', 'tcedil': '\\u0163', 'Tcedil': '\\u0162', 'tcy': '\\u0442', 'Tcy': '\\u0422', 'tdot': '\\u20DB', 'telrec': '\\u2315', 'tfr': '\\uD835\\uDD31', 'Tfr': '\\uD835\\uDD17', 'there4': '\\u2234', 'therefore': '\\u2234', 'Therefore': '\\u2234', 'theta': '\\u03B8', 'Theta': '\\u0398', 'thetasym': '\\u03D1', 'thetav': '\\u03D1', 'thickapprox': '\\u2248', 'thicksim': '\\u223C', 'ThickSpace': '\\u205F\\u200A', 'thinsp': '\\u2009', 'ThinSpace': '\\u2009', 'thkap': '\\u2248', 'thksim': '\\u223C', 'thorn': '\\xFE', 'THORN': '\\xDE', 'tilde': '\\u02DC', 'Tilde': '\\u223C', 'TildeEqual': '\\u2243', 'TildeFullEqual': '\\u2245', 'TildeTilde': '\\u2248', 'times': '\\xD7', 'timesb': '\\u22A0', 'timesbar': '\\u2A31', 'timesd': '\\u2A30', 'tint': '\\u222D', 'toea': '\\u2928', 'top': '\\u22A4', 'topbot': '\\u2336', 'topcir': '\\u2AF1', 'topf': '\\uD835\\uDD65', 'Topf': '\\uD835\\uDD4B', 'topfork': '\\u2ADA', 'tosa': '\\u2929', 'tprime': '\\u2034', 'trade': '\\u2122', 'TRADE': '\\u2122', 'triangle': '\\u25B5', 'triangledown': '\\u25BF', 'triangleleft': '\\u25C3', 'trianglelefteq': '\\u22B4', 'triangleq': '\\u225C', 'triangleright': '\\u25B9', 'trianglerighteq': '\\u22B5', 'tridot': '\\u25EC', 'trie': '\\u225C', 'triminus': '\\u2A3A', 'TripleDot': '\\u20DB', 'triplus': '\\u2A39', 'trisb': '\\u29CD', 'tritime': '\\u2A3B', 'trpezium': '\\u23E2', 'tscr': '\\uD835\\uDCC9', 'Tscr': '\\uD835\\uDCAF', 'tscy': '\\u0446', 'TScy': '\\u0426', 'tshcy': '\\u045B', 'TSHcy': '\\u040B', 'tstrok': '\\u0167', 'Tstrok': '\\u0166', 'twixt': '\\u226C', 'twoheadleftarrow': '\\u219E', 'twoheadrightarrow': '\\u21A0', 'uacute': '\\xFA', 'Uacute': '\\xDA', 'uarr': '\\u2191', 'uArr': '\\u21D1', 'Uarr': '\\u219F', 'Uarrocir': '\\u2949', 'ubrcy': '\\u045E', 'Ubrcy': '\\u040E', 'ubreve': '\\u016D', 'Ubreve': '\\u016C', 'ucirc': '\\xFB', 'Ucirc': '\\xDB', 'ucy': '\\u0443', 'Ucy': '\\u0423', 'udarr': '\\u21C5', 'udblac': '\\u0171', 'Udblac': '\\u0170', 'udhar': '\\u296E', 'ufisht': '\\u297E', 'ufr': '\\uD835\\uDD32', 'Ufr': '\\uD835\\uDD18', 'ugrave': '\\xF9', 'Ugrave': '\\xD9', 'uHar': '\\u2963', 'uharl': '\\u21BF', 'uharr': '\\u21BE', 'uhblk': '\\u2580', 'ulcorn': '\\u231C', 'ulcorner': '\\u231C', 'ulcrop': '\\u230F', 'ultri': '\\u25F8', 'umacr': '\\u016B', 'Umacr': '\\u016A', 'uml': '\\xA8', 'UnderBar': '_', 'UnderBrace': '\\u23DF', 'UnderBracket': '\\u23B5', 'UnderParenthesis': '\\u23DD', 'Union': '\\u22C3', 'UnionPlus': '\\u228E', 'uogon': '\\u0173', 'Uogon': '\\u0172', 'uopf': '\\uD835\\uDD66', 'Uopf': '\\uD835\\uDD4C', 'uparrow': '\\u2191', 'Uparrow': '\\u21D1', 'UpArrow': '\\u2191', 'UpArrowBar': '\\u2912', 'UpArrowDownArrow': '\\u21C5', 'updownarrow': '\\u2195', 'Updownarrow': '\\u21D5', 'UpDownArrow': '\\u2195', 'UpEquilibrium': '\\u296E', 'upharpoonleft': '\\u21BF', 'upharpoonright': '\\u21BE', 'uplus': '\\u228E', 'UpperLeftArrow': '\\u2196', 'UpperRightArrow': '\\u2197', 'upsi': '\\u03C5', 'Upsi': '\\u03D2', 'upsih': '\\u03D2', 'upsilon': '\\u03C5', 'Upsilon': '\\u03A5', 'UpTee': '\\u22A5', 'UpTeeArrow': '\\u21A5', 'upuparrows': '\\u21C8', 'urcorn': '\\u231D', 'urcorner': '\\u231D', 'urcrop': '\\u230E', 'uring': '\\u016F', 'Uring': '\\u016E', 'urtri': '\\u25F9', 'uscr': '\\uD835\\uDCCA', 'Uscr': '\\uD835\\uDCB0', 'utdot': '\\u22F0', 'utilde': '\\u0169', 'Utilde': '\\u0168', 'utri': '\\u25B5', 'utrif': '\\u25B4', 'uuarr': '\\u21C8', 'uuml': '\\xFC', 'Uuml': '\\xDC', 'uwangle': '\\u29A7', 'vangrt': '\\u299C', 'varepsilon': '\\u03F5', 'varkappa': '\\u03F0', 'varnothing': '\\u2205', 'varphi': '\\u03D5', 'varpi': '\\u03D6', 'varpropto': '\\u221D', 'varr': '\\u2195', 'vArr': '\\u21D5', 'varrho': '\\u03F1', 'varsigma': '\\u03C2', 'varsubsetneq': '\\u228A\\uFE00', 'varsubsetneqq': '\\u2ACB\\uFE00', 'varsupsetneq': '\\u228B\\uFE00', 'varsupsetneqq': '\\u2ACC\\uFE00', 'vartheta': '\\u03D1', 'vartriangleleft': '\\u22B2', 'vartriangleright': '\\u22B3', 'vBar': '\\u2AE8', 'Vbar': '\\u2AEB', 'vBarv': '\\u2AE9', 'vcy': '\\u0432', 'Vcy': '\\u0412', 'vdash': '\\u22A2', 'vDash': '\\u22A8', 'Vdash': '\\u22A9', 'VDash': '\\u22AB', 'Vdashl': '\\u2AE6', 'vee': '\\u2228', 'Vee': '\\u22C1', 'veebar': '\\u22BB', 'veeeq': '\\u225A', 'vellip': '\\u22EE', 'verbar': '|', 'Verbar': '\\u2016', 'vert': '|', 'Vert': '\\u2016', 'VerticalBar': '\\u2223', 'VerticalLine': '|', 'VerticalSeparator': '\\u2758', 'VerticalTilde': '\\u2240', 'VeryThinSpace': '\\u200A', 'vfr': '\\uD835\\uDD33', 'Vfr': '\\uD835\\uDD19', 'vltri': '\\u22B2', 'vnsub': '\\u2282\\u20D2', 'vnsup': '\\u2283\\u20D2', 'vopf': '\\uD835\\uDD67', 'Vopf': '\\uD835\\uDD4D', 'vprop': '\\u221D', 'vrtri': '\\u22B3', 'vscr': '\\uD835\\uDCCB', 'Vscr': '\\uD835\\uDCB1', 'vsubne': '\\u228A\\uFE00', 'vsubnE': '\\u2ACB\\uFE00', 'vsupne': '\\u228B\\uFE00', 'vsupnE': '\\u2ACC\\uFE00', 'Vvdash': '\\u22AA', 'vzigzag': '\\u299A', 'wcirc': '\\u0175', 'Wcirc': '\\u0174', 'wedbar': '\\u2A5F', 'wedge': '\\u2227', 'Wedge': '\\u22C0', 'wedgeq': '\\u2259', 'weierp': '\\u2118', 'wfr': '\\uD835\\uDD34', 'Wfr': '\\uD835\\uDD1A', 'wopf': '\\uD835\\uDD68', 'Wopf': '\\uD835\\uDD4E', 'wp': '\\u2118', 'wr': '\\u2240', 'wreath': '\\u2240', 'wscr': '\\uD835\\uDCCC', 'Wscr': '\\uD835\\uDCB2', 'xcap': '\\u22C2', 'xcirc': '\\u25EF', 'xcup': '\\u22C3', 'xdtri': '\\u25BD', 'xfr': '\\uD835\\uDD35', 'Xfr': '\\uD835\\uDD1B', 'xharr': '\\u27F7', 'xhArr': '\\u27FA', 'xi': '\\u03BE', 'Xi': '\\u039E', 'xlarr': '\\u27F5', 'xlArr': '\\u27F8', 'xmap': '\\u27FC', 'xnis': '\\u22FB', 'xodot': '\\u2A00', 'xopf': '\\uD835\\uDD69', 'Xopf': '\\uD835\\uDD4F', 'xoplus': '\\u2A01', 'xotime': '\\u2A02', 'xrarr': '\\u27F6', 'xrArr': '\\u27F9', 'xscr': '\\uD835\\uDCCD', 'Xscr': '\\uD835\\uDCB3', 'xsqcup': '\\u2A06', 'xuplus': '\\u2A04', 'xutri': '\\u25B3', 'xvee': '\\u22C1', 'xwedge': '\\u22C0', 'yacute': '\\xFD', 'Yacute': '\\xDD', 'yacy': '\\u044F', 'YAcy': '\\u042F', 'ycirc': '\\u0177', 'Ycirc': '\\u0176', 'ycy': '\\u044B', 'Ycy': '\\u042B', 'yen': '\\xA5', 'yfr': '\\uD835\\uDD36', 'Yfr': '\\uD835\\uDD1C', 'yicy': '\\u0457', 'YIcy': '\\u0407', 'yopf': '\\uD835\\uDD6A', 'Yopf': '\\uD835\\uDD50', 'yscr': '\\uD835\\uDCCE', 'Yscr': '\\uD835\\uDCB4', 'yucy': '\\u044E', 'YUcy': '\\u042E', 'yuml': '\\xFF', 'Yuml': '\\u0178', 'zacute': '\\u017A', 'Zacute': '\\u0179', 'zcaron': '\\u017E', 'Zcaron': '\\u017D', 'zcy': '\\u0437', 'Zcy': '\\u0417', 'zdot': '\\u017C', 'Zdot': '\\u017B', 'zeetrf': '\\u2128', 'ZeroWidthSpace': '\\u200B', 'zeta': '\\u03B6', 'Zeta': '\\u0396', 'zfr': '\\uD835\\uDD37', 'Zfr': '\\u2128', 'zhcy': '\\u0436', 'ZHcy': '\\u0416', 'zigrarr': '\\u21DD', 'zopf': '\\uD835\\uDD6B', 'Zopf': '\\u2124', 'zscr': '\\uD835\\uDCCF', 'Zscr': '\\uD835\\uDCB5', 'zwj': '\\u200D', 'zwnj': '\\u200C' };\n\tvar decodeMapLegacy = { 'aacute': '\\xE1', 'Aacute': '\\xC1', 'acirc': '\\xE2', 'Acirc': '\\xC2', 'acute': '\\xB4', 'aelig': '\\xE6', 'AElig': '\\xC6', 'agrave': '\\xE0', 'Agrave': '\\xC0', 'amp': '&', 'AMP': '&', 'aring': '\\xE5', 'Aring': '\\xC5', 'atilde': '\\xE3', 'Atilde': '\\xC3', 'auml': '\\xE4', 'Auml': '\\xC4', 'brvbar': '\\xA6', 'ccedil': '\\xE7', 'Ccedil': '\\xC7', 'cedil': '\\xB8', 'cent': '\\xA2', 'copy': '\\xA9', 'COPY': '\\xA9', 'curren': '\\xA4', 'deg': '\\xB0', 'divide': '\\xF7', 'eacute': '\\xE9', 'Eacute': '\\xC9', 'ecirc': '\\xEA', 'Ecirc': '\\xCA', 'egrave': '\\xE8', 'Egrave': '\\xC8', 'eth': '\\xF0', 'ETH': '\\xD0', 'euml': '\\xEB', 'Euml': '\\xCB', 'frac12': '\\xBD', 'frac14': '\\xBC', 'frac34': '\\xBE', 'gt': '>', 'GT': '>', 'iacute': '\\xED', 'Iacute': '\\xCD', 'icirc': '\\xEE', 'Icirc': '\\xCE', 'iexcl': '\\xA1', 'igrave': '\\xEC', 'Igrave': '\\xCC', 'iquest': '\\xBF', 'iuml': '\\xEF', 'Iuml': '\\xCF', 'laquo': '\\xAB', 'lt': '<', 'LT': '<', 'macr': '\\xAF', 'micro': '\\xB5', 'middot': '\\xB7', 'nbsp': '\\xA0', 'not': '\\xAC', 'ntilde': '\\xF1', 'Ntilde': '\\xD1', 'oacute': '\\xF3', 'Oacute': '\\xD3', 'ocirc': '\\xF4', 'Ocirc': '\\xD4', 'ograve': '\\xF2', 'Ograve': '\\xD2', 'ordf': '\\xAA', 'ordm': '\\xBA', 'oslash': '\\xF8', 'Oslash': '\\xD8', 'otilde': '\\xF5', 'Otilde': '\\xD5', 'ouml': '\\xF6', 'Ouml': '\\xD6', 'para': '\\xB6', 'plusmn': '\\xB1', 'pound': '\\xA3', 'quot': '\"', 'QUOT': '\"', 'raquo': '\\xBB', 'reg': '\\xAE', 'REG': '\\xAE', 'sect': '\\xA7', 'shy': '\\xAD', 'sup1': '\\xB9', 'sup2': '\\xB2', 'sup3': '\\xB3', 'szlig': '\\xDF', 'thorn': '\\xFE', 'THORN': '\\xDE', 'times': '\\xD7', 'uacute': '\\xFA', 'Uacute': '\\xDA', 'ucirc': '\\xFB', 'Ucirc': '\\xDB', 'ugrave': '\\xF9', 'Ugrave': '\\xD9', 'uml': '\\xA8', 'uuml': '\\xFC', 'Uuml': '\\xDC', 'yacute': '\\xFD', 'Yacute': '\\xDD', 'yen': '\\xA5', 'yuml': '\\xFF' };\n\tvar decodeMapNumeric = { '0': '\\uFFFD', '128': '\\u20AC', '130': '\\u201A', '131': '\\u0192', '132': '\\u201E', '133': '\\u2026', '134': '\\u2020', '135': '\\u2021', '136': '\\u02C6', '137': '\\u2030', '138': '\\u0160', '139': '\\u2039', '140': '\\u0152', '142': '\\u017D', '145': '\\u2018', '146': '\\u2019', '147': '\\u201C', '148': '\\u201D', '149': '\\u2022', '150': '\\u2013', '151': '\\u2014', '152': '\\u02DC', '153': '\\u2122', '154': '\\u0161', '155': '\\u203A', '156': '\\u0153', '158': '\\u017E', '159': '\\u0178' };\n\tvar invalidReferenceCodePoints = [1, 2, 3, 4, 5, 6, 7, 8, 11, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 64976, 64977, 64978, 64979, 64980, 64981, 64982, 64983, 64984, 64985, 64986, 64987, 64988, 64989, 64990, 64991, 64992, 64993, 64994, 64995, 64996, 64997, 64998, 64999, 65000, 65001, 65002, 65003, 65004, 65005, 65006, 65007, 65534, 65535, 131070, 131071, 196606, 196607, 262142, 262143, 327678, 327679, 393214, 393215, 458750, 458751, 524286, 524287, 589822, 589823, 655358, 655359, 720894, 720895, 786430, 786431, 851966, 851967, 917502, 917503, 983038, 983039, 1048574, 1048575, 1114110, 1114111];\n\n\t/*--------------------------------------------------------------------------*/\n\n\tvar stringFromCharCode = String.fromCharCode;\n\n\tvar object = {};\n\tvar hasOwnProperty = object.hasOwnProperty;\n\tvar has = function has(object, propertyName) {\n\t\treturn hasOwnProperty.call(object, propertyName);\n\t};\n\n\tvar contains = function contains(array, value) {\n\t\tvar index = -1;\n\t\tvar length = array.length;\n\t\twhile (++index < length) {\n\t\t\tif (array[index] == value) {\n\t\t\t\treturn true;\n\t\t\t}\n\t\t}\n\t\treturn false;\n\t};\n\n\tvar merge = function merge(options, defaults) {\n\t\tif (!options) {\n\t\t\treturn defaults;\n\t\t}\n\t\tvar result = {};\n\t\tvar key;\n\t\tfor (key in defaults) {\n\t\t\t// A `hasOwnProperty` check is not needed here, since only recognized\n\t\t\t// option names are used anyway. Any others are ignored.\n\t\t\tresult[key] = has(options, key) ? options[key] : defaults[key];\n\t\t}\n\t\treturn result;\n\t};\n\n\t// Modified version of `ucs2encode`; see https://mths.be/punycode.\n\tvar codePointToSymbol = function codePointToSymbol(codePoint, strict) {\n\t\tvar output = '';\n\t\tif (codePoint >= 0xD800 && codePoint <= 0xDFFF || codePoint > 0x10FFFF) {\n\t\t\t// See issue #4:\n\t\t\t// “Otherwise, if the number is in the range 0xD800 to 0xDFFF or is\n\t\t\t// greater than 0x10FFFF, then this is a parse error. Return a U+FFFD\n\t\t\t// REPLACEMENT CHARACTER.”\n\t\t\tif (strict) {\n\t\t\t\tparseError('character reference outside the permissible Unicode range');\n\t\t\t}\n\t\t\treturn '\\uFFFD';\n\t\t}\n\t\tif (has(decodeMapNumeric, codePoint)) {\n\t\t\tif (strict) {\n\t\t\t\tparseError('disallowed character reference');\n\t\t\t}\n\t\t\treturn decodeMapNumeric[codePoint];\n\t\t}\n\t\tif (strict && contains(invalidReferenceCodePoints, codePoint)) {\n\t\t\tparseError('disallowed character reference');\n\t\t}\n\t\tif (codePoint > 0xFFFF) {\n\t\t\tcodePoint -= 0x10000;\n\t\t\toutput += stringFromCharCode(codePoint >>> 10 & 0x3FF | 0xD800);\n\t\t\tcodePoint = 0xDC00 | codePoint & 0x3FF;\n\t\t}\n\t\toutput += stringFromCharCode(codePoint);\n\t\treturn output;\n\t};\n\n\tvar hexEscape = function hexEscape(codePoint) {\n\t\treturn '&#x' + codePoint.toString(16).toUpperCase() + ';';\n\t};\n\n\tvar decEscape = function decEscape(codePoint) {\n\t\treturn '&#' + codePoint + ';';\n\t};\n\n\tvar parseError = function parseError(message) {\n\t\tthrow Error('Parse error: ' + message);\n\t};\n\n\t/*--------------------------------------------------------------------------*/\n\n\tvar encode = function encode(string, options) {\n\t\toptions = merge(options, encode.options);\n\t\tvar strict = options.strict;\n\t\tif (strict && regexInvalidRawCodePoint.test(string)) {\n\t\t\tparseError('forbidden code point');\n\t\t}\n\t\tvar encodeEverything = options.encodeEverything;\n\t\tvar useNamedReferences = options.useNamedReferences;\n\t\tvar allowUnsafeSymbols = options.allowUnsafeSymbols;\n\t\tvar escapeCodePoint = options.decimal ? decEscape : hexEscape;\n\n\t\tvar escapeBmpSymbol = function escapeBmpSymbol(symbol) {\n\t\t\treturn escapeCodePoint(symbol.charCodeAt(0));\n\t\t};\n\n\t\tif (encodeEverything) {\n\t\t\t// Encode ASCII symbols.\n\t\t\tstring = string.replace(regexAsciiWhitelist, function (symbol) {\n\t\t\t\t// Use named references if requested & possible.\n\t\t\t\tif (useNamedReferences && has(encodeMap, symbol)) {\n\t\t\t\t\treturn '&' + encodeMap[symbol] + ';';\n\t\t\t\t}\n\t\t\t\treturn escapeBmpSymbol(symbol);\n\t\t\t});\n\t\t\t// Shorten a few escapes that represent two symbols, of which at least one\n\t\t\t// is within the ASCII range.\n\t\t\tif (useNamedReferences) {\n\t\t\t\tstring = string.replace(/>\\u20D2/g, '>⃒').replace(/<\\u20D2/g, '<⃒').replace(/fj/g, 'fj');\n\t\t\t}\n\t\t\t// Encode non-ASCII symbols.\n\t\t\tif (useNamedReferences) {\n\t\t\t\t// Encode non-ASCII symbols that can be replaced with a named reference.\n\t\t\t\tstring = string.replace(regexEncodeNonAscii, function (string) {\n\t\t\t\t\t// Note: there is no need to check `has(encodeMap, string)` here.\n\t\t\t\t\treturn '&' + encodeMap[string] + ';';\n\t\t\t\t});\n\t\t\t}\n\t\t\t// Note: any remaining non-ASCII symbols are handled outside of the `if`.\n\t\t} else if (useNamedReferences) {\n\t\t\t// Apply named character references.\n\t\t\t// Encode `<>\"'&` using named character references.\n\t\t\tif (!allowUnsafeSymbols) {\n\t\t\t\tstring = string.replace(regexEscape, function (string) {\n\t\t\t\t\treturn '&' + encodeMap[string] + ';'; // no need to check `has()` here\n\t\t\t\t});\n\t\t\t}\n\t\t\t// Shorten escapes that represent two symbols, of which at least one is\n\t\t\t// `<>\"'&`.\n\t\t\tstring = string.replace(/>\\u20D2/g, '>⃒').replace(/<\\u20D2/g, '<⃒');\n\t\t\t// Encode non-ASCII symbols that can be replaced with a named reference.\n\t\t\tstring = string.replace(regexEncodeNonAscii, function (string) {\n\t\t\t\t// Note: there is no need to check `has(encodeMap, string)` here.\n\t\t\t\treturn '&' + encodeMap[string] + ';';\n\t\t\t});\n\t\t} else if (!allowUnsafeSymbols) {\n\t\t\t// Encode `<>\"'&` using hexadecimal escapes, now that they’re not handled\n\t\t\t// using named character references.\n\t\t\tstring = string.replace(regexEscape, escapeBmpSymbol);\n\t\t}\n\t\treturn string\n\t\t// Encode astral symbols.\n\t\t.replace(regexAstralSymbols, function ($0) {\n\t\t\t// https://mathiasbynens.be/notes/javascript-encoding#surrogate-formulae\n\t\t\tvar high = $0.charCodeAt(0);\n\t\t\tvar low = $0.charCodeAt(1);\n\t\t\tvar codePoint = (high - 0xD800) * 0x400 + low - 0xDC00 + 0x10000;\n\t\t\treturn escapeCodePoint(codePoint);\n\t\t})\n\t\t// Encode any remaining BMP symbols that are not printable ASCII symbols\n\t\t// using a hexadecimal escape.\n\t\t.replace(regexBmpWhitelist, escapeBmpSymbol);\n\t};\n\t// Expose default options (so they can be overridden globally).\n\tencode.options = {\n\t\t'allowUnsafeSymbols': false,\n\t\t'encodeEverything': false,\n\t\t'strict': false,\n\t\t'useNamedReferences': false,\n\t\t'decimal': false\n\t};\n\n\tvar decode = function decode(html, options) {\n\t\toptions = merge(options, decode.options);\n\t\tvar strict = options.strict;\n\t\tif (strict && regexInvalidEntity.test(html)) {\n\t\t\tparseError('malformed character reference');\n\t\t}\n\t\treturn html.replace(regexDecode, function ($0, $1, $2, $3, $4, $5, $6, $7, $8) {\n\t\t\tvar codePoint;\n\t\t\tvar semicolon;\n\t\t\tvar decDigits;\n\t\t\tvar hexDigits;\n\t\t\tvar reference;\n\t\t\tvar next;\n\n\t\t\tif ($1) {\n\t\t\t\treference = $1;\n\t\t\t\t// Note: there is no need to check `has(decodeMap, reference)`.\n\t\t\t\treturn decodeMap[reference];\n\t\t\t}\n\n\t\t\tif ($2) {\n\t\t\t\t// Decode named character references without trailing `;`, e.g. `&`.\n\t\t\t\t// This is only a parse error if it gets converted to `&`, or if it is\n\t\t\t\t// followed by `=` in an attribute context.\n\t\t\t\treference = $2;\n\t\t\t\tnext = $3;\n\t\t\t\tif (next && options.isAttributeValue) {\n\t\t\t\t\tif (strict && next == '=') {\n\t\t\t\t\t\tparseError('`&` did not start a character reference');\n\t\t\t\t\t}\n\t\t\t\t\treturn $0;\n\t\t\t\t} else {\n\t\t\t\t\tif (strict) {\n\t\t\t\t\t\tparseError('named character reference was not terminated by a semicolon');\n\t\t\t\t\t}\n\t\t\t\t\t// Note: there is no need to check `has(decodeMapLegacy, reference)`.\n\t\t\t\t\treturn decodeMapLegacy[reference] + (next || '');\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tif ($4) {\n\t\t\t\t// Decode decimal escapes, e.g. `𝌆`.\n\t\t\t\tdecDigits = $4;\n\t\t\t\tsemicolon = $5;\n\t\t\t\tif (strict && !semicolon) {\n\t\t\t\t\tparseError('character reference was not terminated by a semicolon');\n\t\t\t\t}\n\t\t\t\tcodePoint = parseInt(decDigits, 10);\n\t\t\t\treturn codePointToSymbol(codePoint, strict);\n\t\t\t}\n\n\t\t\tif ($6) {\n\t\t\t\t// Decode hexadecimal escapes, e.g. `𝌆`.\n\t\t\t\thexDigits = $6;\n\t\t\t\tsemicolon = $7;\n\t\t\t\tif (strict && !semicolon) {\n\t\t\t\t\tparseError('character reference was not terminated by a semicolon');\n\t\t\t\t}\n\t\t\t\tcodePoint = parseInt(hexDigits, 16);\n\t\t\t\treturn codePointToSymbol(codePoint, strict);\n\t\t\t}\n\n\t\t\t// If we’re still here, `if ($7)` is implied; it’s an ambiguous\n\t\t\t// ampersand for sure. https://mths.be/notes/ambiguous-ampersands\n\t\t\tif (strict) {\n\t\t\t\tparseError('named character reference was not terminated by a semicolon');\n\t\t\t}\n\t\t\treturn $0;\n\t\t});\n\t};\n\t// Expose default options (so they can be overridden globally).\n\tdecode.options = {\n\t\t'isAttributeValue': false,\n\t\t'strict': false\n\t};\n\n\tvar escape = function escape(string) {\n\t\treturn string.replace(regexEscape, function ($0) {\n\t\t\t// Note: there is no need to check `has(escapeMap, $0)` here.\n\t\t\treturn escapeMap[$0];\n\t\t});\n\t};\n\n\t/*--------------------------------------------------------------------------*/\n\n\tvar he = {\n\t\t'version': '1.2.0',\n\t\t'encode': encode,\n\t\t'decode': decode,\n\t\t'escape': escape,\n\t\t'unescape': decode\n\t};\n\n\t// Some AMD build optimizers, like r.js, check for specific condition patterns\n\t// like the following:\n\tif ( true && _typeof(__webpack_require__(/*! !webpack amd options */ \"./node_modules/webpack/buildin/amd-options.js\")) == 'object' && __webpack_require__(/*! !webpack amd options */ \"./node_modules/webpack/buildin/amd-options.js\")) {\n\t\t!(__WEBPACK_AMD_DEFINE_RESULT__ = (function () {\n\t\t\treturn he;\n\t\t}).call(exports, __webpack_require__, exports, module),\n\t\t\t\t__WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));\n\t} else if (freeExports && !freeExports.nodeType) {\n\t\tif (freeModule) {\n\t\t\t// in Node.js, io.js, or RingoJS v0.8.0+\n\t\t\tfreeModule.exports = he;\n\t\t} else {\n\t\t\t// in Narwhal or RingoJS v0.7.0-\n\t\t\tfor (var key in he) {\n\t\t\t\thas(he, key) && (freeExports[key] = he[key]);\n\t\t\t}\n\t\t}\n\t} else {\n\t\t// in Rhino or a web browser\n\t\troot.he = he;\n\t}\n})(undefined);\n/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(/*! ./../webpack/buildin/module.js */ \"./node_modules/webpack/buildin/module.js\")(module)))\n\n//# sourceURL=webpack://Contentstack/./node_modules/he/he.js?");
/***/ }),
/***/ "./node_modules/localStorage/lib/localStorage.js":
/*!*******************************************************!*\
!*** ./node_modules/localStorage/lib/localStorage.js ***!
\*******************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {
"use strict";
eval("\n\n// http://www.rajdeepd.com/articles/chrome/localstrg/LocalStorageSample.htm\n\n// NOTE:\n// this varies from actual localStorage in some subtle ways\n\n// also, there is no persistence\n// TODO persist\n(function () {\n \"use strict\";\n\n var db;\n\n function LocalStorage() {}\n db = LocalStorage;\n\n db.prototype.getItem = function (key) {\n if (this.hasOwnProperty(key)) {\n return String(this[key]);\n }\n return null;\n };\n\n db.prototype.setItem = function (key, val) {\n this[key] = String(val);\n };\n\n db.prototype.removeItem = function (key) {\n delete this[key];\n };\n\n db.prototype.clear = function () {\n var self = this;\n Object.keys(self).forEach(function (key) {\n self[key] = undefined;\n delete self[key];\n });\n };\n\n db.prototype.key = function (i) {\n i = i || 0;\n return Object.keys(this)[i];\n };\n\n db.prototype.__defineGetter__('length', function () {\n return Object.keys(this).length;\n });\n\n if (global.localStorage) {\n module.exports = localStorage;\n } else {\n module.exports = new LocalStorage();\n }\n})();\n\n//# sourceURL=webpack://Contentstack/./node_modules/localStorage/lib/localStorage.js?");
/***/ }),
/***/ "./node_modules/node-fetch/lib/index.mjs":
/*!***********************************************!*\
!*** ./node_modules/node-fetch/lib/index.mjs ***!
\***********************************************/
/*! exports provided: default, Headers, Request, Response, FetchError */
/***/ (function(__webpack_module__, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"Headers\", function() { return Headers; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"Request\", function() { return Request; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"Response\", function() { return Response; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"FetchError\", function() { return FetchError; });\n/* harmony import */ var stream__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! stream */ \"stream\");\n/* harmony import */ var http__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! http */ \"http\");\n/* harmony import */ var url__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! url */ \"url\");\n/* harmony import */ var https__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! https */ \"https\");\n/* harmony import */ var zlib__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! zlib */ \"zlib\");\n\n\n\n\n\n\n// Based on https://github.com/tmpvar/jsdom/blob/aa85b2abf07766ff7bf5c1f6daafb3726f2f2db5/lib/jsdom/living/blob.js\n\n// fix for \"Readable\" isn't a named export issue\nconst Readable = stream__WEBPACK_IMPORTED_MODULE_0__.Readable;\n\nconst BUFFER = Symbol('buffer');\nconst TYPE = Symbol('type');\n\nclass Blob {\n\tconstructor() {\n\t\tthis[TYPE] = '';\n\n\t\tconst blobParts = arguments[0];\n\t\tconst options = arguments[1];\n\n\t\tconst buffers = [];\n\t\tlet size = 0;\n\n\t\tif (blobParts) {\n\t\t\tconst a = blobParts;\n\t\t\tconst length = Number(a.length);\n\t\t\tfor (let i = 0; i < length; i++) {\n\t\t\t\tconst element = a[i];\n\t\t\t\tlet buffer;\n\t\t\t\tif (element instanceof Buffer) {\n\t\t\t\t\tbuffer = element;\n\t\t\t\t} else if (ArrayBuffer.isView(element)) {\n\t\t\t\t\tbuffer = Buffer.from(element.buffer, element.byteOffset, element.byteLength);\n\t\t\t\t} else if (element instanceof ArrayBuffer) {\n\t\t\t\t\tbuffer = Buffer.from(element);\n\t\t\t\t} else if (element instanceof Blob) {\n\t\t\t\t\tbuffer = element[BUFFER];\n\t\t\t\t} else {\n\t\t\t\t\tbuffer = Buffer.from(typeof element === 'string' ? element : String(element));\n\t\t\t\t}\n\t\t\t\tsize += buffer.length;\n\t\t\t\tbuffers.push(buffer);\n\t\t\t}\n\t\t}\n\n\t\tthis[BUFFER] = Buffer.concat(buffers);\n\n\t\tlet type = options && options.type !== undefined && String(options.type).toLowerCase();\n\t\tif (type && !/[^\\u0020-\\u007E]/.test(type)) {\n\t\t\tthis[TYPE] = type;\n\t\t}\n\t}\n\tget size() {\n\t\treturn this[BUFFER].length;\n\t}\n\tget type() {\n\t\treturn this[TYPE];\n\t}\n\ttext() {\n\t\treturn Promise.resolve(this[BUFFER].toString());\n\t}\n\tarrayBuffer() {\n\t\tconst buf = this[BUFFER];\n\t\tconst ab = buf.buffer.slice(buf.byteOffset, buf.byteOffset + buf.byteLength);\n\t\treturn Promise.resolve(ab);\n\t}\n\tstream() {\n\t\tconst readable = new Readable();\n\t\treadable._read = function () {};\n\t\treadable.push(this[BUFFER]);\n\t\treadable.push(null);\n\t\treturn readable;\n\t}\n\ttoString() {\n\t\treturn '[object Blob]';\n\t}\n\tslice() {\n\t\tconst size = this.size;\n\n\t\tconst start = arguments[0];\n\t\tconst end = arguments[1];\n\t\tlet relativeStart, relativeEnd;\n\t\tif (start === undefined) {\n\t\t\trelativeStart = 0;\n\t\t} else if (start < 0) {\n\t\t\trelativeStart = Math.max(size + start, 0);\n\t\t} else {\n\t\t\trelativeStart = Math.min(start, size);\n\t\t}\n\t\tif (end === undefined) {\n\t\t\trelativeEnd = size;\n\t\t} else if (end < 0) {\n\t\t\trelativeEnd = Math.max(size + end, 0);\n\t\t} else {\n\t\t\trelativeEnd = Math.min(end, size);\n\t\t}\n\t\tconst span = Math.max(relativeEnd - relativeStart, 0);\n\n\t\tconst buffer = this[BUFFER];\n\t\tconst slicedBuffer = buffer.slice(relativeStart, relativeStart + span);\n\t\tconst blob = new Blob([], { type: arguments[2] });\n\t\tblob[BUFFER] = slicedBuffer;\n\t\treturn blob;\n\t}\n}\n\nObject.defineProperties(Blob.prototype, {\n\tsize: { enumerable: true },\n\ttype: { enumerable: true },\n\tslice: { enumerable: true }\n});\n\nObject.defineProperty(Blob.prototype, Symbol.toStringTag, {\n\tvalue: 'Blob',\n\twritable: false,\n\tenumerable: false,\n\tconfigurable: true\n});\n\n/**\n * fetch-error.js\n *\n * FetchError interface for operational errors\n */\n\n/**\n * Create FetchError instance\n *\n * @param String message Error message for human\n * @param String type Error type for machine\n * @param String systemError For Node.js system error\n * @return FetchError\n */\nfunction FetchError(message, type, systemError) {\n Error.call(this, message);\n\n this.message = message;\n this.type = type;\n\n // when err.type is `system`, err.code contains system error code\n if (systemError) {\n this.code = this.errno = systemError.code;\n }\n\n // hide custom error implementation details from end-users\n Error.captureStackTrace(this, this.constructor);\n}\n\nFetchError.prototype = Object.create(Error.prototype);\nFetchError.prototype.constructor = FetchError;\nFetchError.prototype.name = 'FetchError';\n\nlet convert;\ntry {\n\tconvert = require('encoding').convert;\n} catch (e) {}\n\nconst INTERNALS = Symbol('Body internals');\n\n// fix an issue where \"PassThrough\" isn't a named export for node <10\nconst PassThrough = stream__WEBPACK_IMPORTED_MODULE_0__.PassThrough;\n\n/**\n * Body mixin\n *\n * Ref: https://fetch.spec.whatwg.org/#body\n *\n * @param Stream body Readable stream\n * @param Object opts Response options\n * @return Void\n */\nfunction Body(body) {\n\tvar _this = this;\n\n\tvar _ref = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {},\n\t _ref$size = _ref.size;\n\n\tlet size = _ref$size === undefined ? 0 : _ref$size;\n\tvar _ref$timeout = _ref.timeout;\n\tlet timeout = _ref$timeout === undefined ? 0 : _ref$timeout;\n\n\tif (body == null) {\n\t\t// body is undefined or null\n\t\tbody = null;\n\t} else if (isURLSearchParams(body)) {\n\t\t// body is a URLSearchParams\n\t\tbody = Buffer.from(body.toString());\n\t} else if (isBlob(body)) ; else if (Buffer.isBuffer(body)) ; else if (Object.prototype.toString.call(body) === '[object ArrayBuffer]') {\n\t\t// body is ArrayBuffer\n\t\tbody = Buffer.from(body);\n\t} else if (ArrayBuffer.isView(body)) {\n\t\t// body is ArrayBufferView\n\t\tbody = Buffer.from(body.buffer, body.byteOffset, body.byteLength);\n\t} else if (body instanceof stream__WEBPACK_IMPORTED_MODULE_0__) ; else {\n\t\t// none of the above\n\t\t// coerce to string then buffer\n\t\tbody = Buffer.from(String(body));\n\t}\n\tthis[INTERNALS] = {\n\t\tbody,\n\t\tdisturbed: false,\n\t\terror: null\n\t};\n\tthis.size = size;\n\tthis.timeout = timeout;\n\n\tif (body instanceof stream__WEBPACK_IMPORTED_MODULE_0__) {\n\t\tbody.on('error', function (err) {\n\t\t\tconst error = err.name === 'AbortError' ? err : new FetchError(`Invalid response body while trying to fetch ${_this.url}: ${err.message}`, 'system', err);\n\t\t\t_this[INTERNALS].error = error;\n\t\t});\n\t}\n}\n\nBody.prototype = {\n\tget body() {\n\t\treturn this[INTERNALS].body;\n\t},\n\n\tget bodyUsed() {\n\t\treturn this[INTERNALS].disturbed;\n\t},\n\n\t/**\n * Decode response as ArrayBuffer\n *\n * @return Promise\n */\n\tarrayBuffer() {\n\t\treturn consumeBody.call(this).then(function (buf) {\n\t\t\treturn buf.buffer.slice(buf.byteOffset, buf.byteOffset + buf.byteLength);\n\t\t});\n\t},\n\n\t/**\n * Return raw response as Blob\n *\n * @return Promise\n */\n\tblob() {\n\t\tlet ct = this.headers && this.headers.get('content-type') || '';\n\t\treturn consumeBody.call(this).then(function (buf) {\n\t\t\treturn Object.assign(\n\t\t\t// Prevent copying\n\t\t\tnew Blob([], {\n\t\t\t\ttype: ct.toLowerCase()\n\t\t\t}), {\n\t\t\t\t[BUFFER]: buf\n\t\t\t});\n\t\t});\n\t},\n\n\t/**\n * Decode response as json\n *\n * @return Promise\n */\n\tjson() {\n\t\tvar _this2 = this;\n\n\t\treturn consumeBody.call(this).then(function (buffer) {\n\t\t\ttry {\n\t\t\t\treturn JSON.parse(buffer.toString());\n\t\t\t} catch (err) {\n\t\t\t\treturn Body.Promise.reject(new FetchError(`invalid json response body at ${_this2.url} reason: ${err.message}`, 'invalid-json'));\n\t\t\t}\n\t\t});\n\t},\n\n\t/**\n * Decode response as text\n *\n * @return Promise\n */\n\ttext() {\n\t\treturn consumeBody.call(this).then(function (buffer) {\n\t\t\treturn buffer.toString();\n\t\t});\n\t},\n\n\t/**\n * Decode response as buffer (non-spec api)\n *\n * @return Promise\n */\n\tbuffer() {\n\t\treturn consumeBody.call(this);\n\t},\n\n\t/**\n * Decode response as text, while automatically detecting the encoding and\n * trying to decode to UTF-8 (non-spec api)\n *\n * @return Promise\n */\n\ttextConverted() {\n\t\tvar _this3 = this;\n\n\t\treturn consumeBody.call(this).then(function (buffer) {\n\t\t\treturn convertBody(buffer, _this3.headers);\n\t\t});\n\t}\n};\n\n// In browsers, all properties are enumerable.\nObject.defineProperties(Body.prototype, {\n\tbody: { enumerable: true },\n\tbodyUsed: { enumerable: true },\n\tarrayBuffer: { enumerable: true },\n\tblob: { enumerable: true },\n\tjson: { enumerable: true },\n\ttext: { enumerable: true }\n});\n\nBody.mixIn = function (proto) {\n\tfor (const name of Object.getOwnPropertyNames(Body.prototype)) {\n\t\t// istanbul ignore else: future proof\n\t\tif (!(name in proto)) {\n\t\t\tconst desc = Object.getOwnPropertyDescriptor(Body.prototype, name);\n\t\t\tObject.defineProperty(proto, name, desc);\n\t\t}\n\t}\n};\n\n/**\n * Consume and convert an entire Body to a Buffer.\n *\n * Ref: https://fetch.spec.whatwg.org/#concept-body-consume-body\n *\n * @return Promise\n */\nfunction consumeBody() {\n\tvar _this4 = this;\n\n\tif (this[INTERNALS].disturbed) {\n\t\treturn Body.Promise.reject(new TypeError(`body used already for: ${this.url}`));\n\t}\n\n\tthis[INTERNALS].disturbed = true;\n\n\tif (this[INTERNALS].error) {\n\t\treturn Body.Promise.reject(this[INTERNALS].error);\n\t}\n\n\tlet body = this.body;\n\n\t// body is null\n\tif (body === null) {\n\t\treturn Body.Promise.resolve(Buffer.alloc(0));\n\t}\n\n\t// body is blob\n\tif (isBlob(body)) {\n\t\tbody = body.stream();\n\t}\n\n\t// body is buffer\n\tif (Buffer.isBuffer(body)) {\n\t\treturn Body.Promise.resolve(body);\n\t}\n\n\t// istanbul ignore if: should never happen\n\tif (!(body instanceof stream__WEBPACK_IMPORTED_MODULE_0__)) {\n\t\treturn Body.Promise.resolve(Buffer.alloc(0));\n\t}\n\n\t// body is stream\n\t// get ready to actually consume the body\n\tlet accum = [];\n\tlet accumBytes = 0;\n\tlet abort = false;\n\n\treturn new Body.Promise(function (resolve, reject) {\n\t\tlet resTimeout;\n\n\t\t// allow timeout on slow response body\n\t\tif (_this4.timeout) {\n\t\t\tresTimeout = setTimeout(function () {\n\t\t\t\tabort = true;\n\t\t\t\treject(new FetchError(`Response timeout while trying to fetch ${_this4.url} (over ${_this4.timeout}ms)`, 'body-timeout'));\n\t\t\t}, _this4.timeout);\n\t\t}\n\n\t\t// handle stream errors\n\t\tbody.on('error', function (err) {\n\t\t\tif (err.name === 'AbortError') {\n\t\t\t\t// if the request was aborted, reject with this Error\n\t\t\t\tabort = true;\n\t\t\t\treject(err);\n\t\t\t} else {\n\t\t\t\t// other errors, such as incorrect content-encoding\n\t\t\t\treject(new FetchError(`Invalid response body while trying to fetch ${_this4.url}: ${err.message}`, 'system', err));\n\t\t\t}\n\t\t});\n\n\t\tbody.on('data', function (chunk) {\n\t\t\tif (abort || chunk === null) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tif (_this4.size && accumBytes + chunk.length > _this4.size) {\n\t\t\t\tabort = true;\n\t\t\t\treject(new FetchError(`content size at ${_this4.url} over limit: ${_this4.size}`, 'max-size'));\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\taccumBytes += chunk.length;\n\t\t\taccum.push(chunk);\n\t\t});\n\n\t\tbody.on('end', function () {\n\t\t\tif (abort) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tclearTimeout(resTimeout);\n\n\t\t\ttry {\n\t\t\t\tresolve(Buffer.concat(accum, accumBytes));\n\t\t\t} catch (err) {\n\t\t\t\t// handle streams that have accumulated too much data (issue #414)\n\t\t\t\treject(new FetchError(`Could not create Buffer from response body for ${_this4.url}: ${err.message}`, 'system', err));\n\t\t\t}\n\t\t});\n\t});\n}\n\n/**\n * Detect buffer encoding and convert to target encoding\n * ref: http://www.w3.org/TR/2011/WD-html5-20110113/parsing.html#determining-the-character-encoding\n *\n * @param Buffer buffer Incoming buffer\n * @param String encoding Target encoding\n * @return String\n */\nfunction convertBody(buffer, headers) {\n\tif (typeof convert !== 'function') {\n\t\tthrow new Error('The package `encoding` must be installed to use the textConverted() function');\n\t}\n\n\tconst ct = headers.get('content-type');\n\tlet charset = 'utf-8';\n\tlet res, str;\n\n\t// header\n\tif (ct) {\n\t\tres = /charset=([^;]*)/i.exec(ct);\n\t}\n\n\t// no charset in content type, peek at response body for at most 1024 bytes\n\tstr = buffer.slice(0, 1024).toString();\n\n\t// html5\n\tif (!res && str) {\n\t\tres = /<meta.+?charset=(['\"])(.+?)\\1/i.exec(str);\n\t}\n\n\t// html4\n\tif (!res && str) {\n\t\tres = /<meta[\\s]+?http-equiv=(['\"])content-type\\1[\\s]+?content=(['\"])(.+?)\\2/i.exec(str);\n\t\tif (!res) {\n\t\t\tres = /<meta[\\s]+?content=(['\"])(.+?)\\1[\\s]+?http-equiv=(['\"])content-type\\3/i.exec(str);\n\t\t\tif (res) {\n\t\t\t\tres.pop(); // drop last quote\n\t\t\t}\n\t\t}\n\n\t\tif (res) {\n\t\t\tres = /charset=(.*)/i.exec(res.pop());\n\t\t}\n\t}\n\n\t// xml\n\tif (!res && str) {\n\t\tres = /<\\?xml.+?encoding=(['\"])(.+?)\\1/i.exec(str);\n\t}\n\n\t// found charset\n\tif (res) {\n\t\tcharset = res.pop();\n\n\t\t// prevent decode issues when sites use incorrect encoding\n\t\t// ref: https://hsivonen.fi/encoding-menu/\n\t\tif (charset === 'gb2312' || charset === 'gbk') {\n\t\t\tcharset = 'gb18030';\n\t\t}\n\t}\n\n\t// turn raw buffers into a single utf-8 buffer\n\treturn convert(buffer, 'UTF-8', charset).toString();\n}\n\n/**\n * Detect a URLSearchParams object\n * ref: https://github.com/bitinn/node-fetch/issues/296#issuecomment-307598143\n *\n * @param Object obj Object to detect by type or brand\n * @return String\n */\nfunction isURLSearchParams(obj) {\n\t// Duck-typing as a necessary condition.\n\tif (typeof obj !== 'object' || typeof obj.append !== 'function' || typeof obj.delete !== 'function' || typeof obj.get !== 'function' || typeof obj.getAll !== 'function' || typeof obj.has !== 'function' || typeof obj.set !== 'function') {\n\t\treturn false;\n\t}\n\n\t// Brand-checking and more duck-typing as optional condition.\n\treturn obj.constructor.name === 'URLSearchParams' || Object.prototype.toString.call(obj) === '[object URLSearchParams]' || typeof obj.sort === 'function';\n}\n\n/**\n * Check if `obj` is a W3C `Blob` object (which `File` inherits from)\n * @param {*} obj\n * @return {boolean}\n */\nfunction isBlob(obj) {\n\treturn typeof obj === 'object' && typeof obj.arrayBuffer === 'function' && typeof obj.type === 'string' && typeof obj.stream === 'function' && typeof obj.constructor === 'function' && typeof obj.constructor.name === 'string' && /^(Blob|File)$/.test(obj.constructor.name) && /^(Blob|File)$/.test(obj[Symbol.toStringTag]);\n}\n\n/**\n * Clone body given Res/Req instance\n *\n * @param Mixed instance Response or Request instance\n * @return Mixed\n */\nfunction clone(instance) {\n\tlet p1, p2;\n\tlet body = instance.body;\n\n\t// don't allow cloning a used body\n\tif (instance.bodyUsed) {\n\t\tthrow new Error('cannot clone body after it is used');\n\t}\n\n\t// check that body is a stream and not form-data object\n\t// note: we can't clone the form-data object without having it as a dependency\n\tif (body instanceof stream__WEBPACK_IMPORTED_MODULE_0__ && typeof body.getBoundary !== 'function') {\n\t\t// tee instance body\n\t\tp1 = new PassThrough();\n\t\tp2 = new PassThrough();\n\t\tbody.pipe(p1);\n\t\tbody.pipe(p2);\n\t\t// set instance body to teed body and return the other teed body\n\t\tinstance[INTERNALS].body = p1;\n\t\tbody = p2;\n\t}\n\n\treturn body;\n}\n\n/**\n * Performs the operation \"extract a `Content-Type` value from |object|\" as\n * specified in the specification:\n * https://fetch.spec.whatwg.org/#concept-bodyinit-extract\n *\n * This function assumes that instance.body is present.\n *\n * @param Mixed instance Any options.body input\n */\nfunction extractContentType(body) {\n\tif (body === null) {\n\t\t// body is null\n\t\treturn null;\n\t} else if (typeof body === 'string') {\n\t\t// body is string\n\t\treturn 'text/plain;charset=UTF-8';\n\t} else if (isURLSearchParams(body)) {\n\t\t// body is a URLSearchParams\n\t\treturn 'application/x-www-form-urlencoded;charset=UTF-8';\n\t} else if (isBlob(body)) {\n\t\t// body is blob\n\t\treturn body.type || null;\n\t} else if (Buffer.isBuffer(body)) {\n\t\t// body is buffer\n\t\treturn null;\n\t} else if (Object.prototype.toString.call(body) === '[object ArrayBuffer]') {\n\t\t// body is ArrayBuffer\n\t\treturn null;\n\t} else if (ArrayBuffer.isView(body)) {\n\t\t// body is ArrayBufferView\n\t\treturn null;\n\t} else if (typeof body.getBoundary === 'function') {\n\t\t// detect form data input from form-data module\n\t\treturn `multipart/form-data;boundary=${body.getBoundary()}`;\n\t} else if (body instanceof stream__WEBPACK_IMPORTED_MODULE_0__) {\n\t\t// body is stream\n\t\t// can't really do much about this\n\t\treturn null;\n\t} else {\n\t\t// Body constructor defaults other things to string\n\t\treturn 'text/plain;charset=UTF-8';\n\t}\n}\n\n/**\n * The Fetch Standard treats this as if \"total bytes\" is a property on the body.\n * For us, we have to explicitly get it with a function.\n *\n * ref: https://fetch.spec.whatwg.org/#concept-body-total-bytes\n *\n * @param Body instance Instance of Body\n * @return Number? Number of bytes, or null if not possible\n */\nfunction getTotalBytes(instance) {\n\tconst body = instance.body;\n\n\n\tif (body === null) {\n\t\t// body is null\n\t\treturn 0;\n\t} else if (isBlob(body)) {\n\t\treturn body.size;\n\t} else if (Buffer.isBuffer(body)) {\n\t\t// body is buffer\n\t\treturn body.length;\n\t} else if (body && typeof body.getLengthSync === 'function') {\n\t\t// detect form data input from form-data module\n\t\tif (body._lengthRetrievers && body._lengthRetrievers.length == 0 || // 1.x\n\t\tbody.hasKnownLength && body.hasKnownLength()) {\n\t\t\t// 2.x\n\t\t\treturn body.getLengthSync();\n\t\t}\n\t\treturn null;\n\t} else {\n\t\t// body is stream\n\t\treturn null;\n\t}\n}\n\n/**\n * Write a Body to a Node.js WritableStream (e.g. http.Request) object.\n *\n * @param Body instance Instance of Body\n * @return Void\n */\nfunction writeToStream(dest, instance) {\n\tconst body = instance.body;\n\n\n\tif (body === null) {\n\t\t// body is null\n\t\tdest.end();\n\t} else if (isBlob(body)) {\n\t\tbody.stream().pipe(dest);\n\t} else if (Buffer.isBuffer(body)) {\n\t\t// body is buffer\n\t\tdest.write(body);\n\t\tdest.end();\n\t} else {\n\t\t// body is stream\n\t\tbody.pipe(dest);\n\t}\n}\n\n// expose Promise\nBody.Promise = global.Promise;\n\n/**\n * headers.js\n *\n * Headers class offers convenient helpers\n */\n\nconst invalidTokenRegex = /[^\\^_`a-zA-Z\\-0-9!#$%&'*+.|~]/;\nconst invalidHeaderCharRegex = /[^\\t\\x20-\\x7e\\x80-\\xff]/;\n\nfunction validateName(name) {\n\tname = `${name}`;\n\tif (invalidTokenRegex.test(name) || name === '') {\n\t\tthrow new TypeError(`${name} is not a legal HTTP header name`);\n\t}\n}\n\nfunction validateValue(value) {\n\tvalue = `${value}`;\n\tif (invalidHeaderCharRegex.test(value)) {\n\t\tthrow new TypeError(`${value} is not a legal HTTP header value`);\n\t}\n}\n\n/**\n * Find the key in the map object given a header name.\n *\n * Returns undefined if not found.\n *\n * @param String name Header name\n * @return String|Undefined\n */\nfunction find(map, name) {\n\tname = name.toLowerCase();\n\tfor (const key in map) {\n\t\tif (key.toLowerCase() === name) {\n\t\t\treturn key;\n\t\t}\n\t}\n\treturn undefined;\n}\n\nconst MAP = Symbol('map');\nclass Headers {\n\t/**\n * Headers class\n *\n * @param Object headers Response headers\n * @return Void\n */\n\tconstructor() {\n\t\tlet init = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : undefined;\n\n\t\tthis[MAP] = Object.create(null);\n\n\t\tif (init instanceof Headers) {\n\t\t\tconst rawHeaders = init.raw();\n\t\t\tconst headerNames = Object.keys(rawHeaders);\n\n\t\t\tfor (const headerName of headerNames) {\n\t\t\t\tfor (const value of rawHeaders[headerName]) {\n\t\t\t\t\tthis.append(headerName, value);\n\t\t\t\t}\n\t\t\t}\n\n\t\t\treturn;\n\t\t}\n\n\t\t// We don't worry about converting prop to ByteString here as append()\n\t\t// will handle it.\n\t\tif (init == null) ; else if (typeof init === 'object') {\n\t\t\tconst method = init[Symbol.iterator];\n\t\t\tif (method != null) {\n\t\t\t\tif (typeof method !== 'function') {\n\t\t\t\t\tthrow new TypeError('Header pairs must be iterable');\n\t\t\t\t}\n\n\t\t\t\t// sequence<sequence<ByteString>>\n\t\t\t\t// Note: per spec we have to first exhaust the lists then process them\n\t\t\t\tconst pairs = [];\n\t\t\t\tfor (const pair of init) {\n\t\t\t\t\tif (typeof pair !== 'object' || typeof pair[Symbol.iterator] !== 'function') {\n\t\t\t\t\t\tthrow new TypeError('Each header pair must be iterable');\n\t\t\t\t\t}\n\t\t\t\t\tpairs.push(Array.from(pair));\n\t\t\t\t}\n\n\t\t\t\tfor (const pair of pairs) {\n\t\t\t\t\tif (pair.length !== 2) {\n\t\t\t\t\t\tthrow new TypeError('Each header pair must be a name/value tuple');\n\t\t\t\t\t}\n\t\t\t\t\tthis.append(pair[0], pair[1]);\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\t// record<ByteString, ByteString>\n\t\t\t\tfor (const key of Object.keys(init)) {\n\t\t\t\t\tconst value = init[key];\n\t\t\t\t\tthis.append(key, value);\n\t\t\t\t}\n\t\t\t}\n\t\t} else {\n\t\t\tthrow new TypeError('Provided initializer must be an object');\n\t\t}\n\t}\n\n\t/**\n * Return combined header value given name\n *\n * @param String name Header name\n * @return Mixed\n */\n\tget(name) {\n\t\tname = `${name}`;\n\t\tvalidateName(name);\n\t\tconst key = find(this[MAP], name);\n\t\tif (key === undefined) {\n\t\t\treturn null;\n\t\t}\n\n\t\treturn this[MAP][key].join(', ');\n\t}\n\n\t/**\n * Iterate over all headers\n *\n * @param Function callback Executed for each item with parameters (value, name, thisArg)\n * @param Boolean thisArg `this` context for callback function\n * @return Void\n */\n\tforEach(callback) {\n\t\tlet thisArg = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : undefined;\n\n\t\tlet pairs = getHeaders(this);\n\t\tlet i = 0;\n\t\twhile (i < pairs.length) {\n\t\t\tvar _pairs$i = pairs[i];\n\t\t\tconst name = _pairs$i[0],\n\t\t\t value = _pairs$i[1];\n\n\t\t\tcallback.call(thisArg, value, name, this);\n\t\t\tpairs = getHeaders(this);\n\t\t\ti++;\n\t\t}\n\t}\n\n\t/**\n * Overwrite header values given name\n *\n * @param String name Header name\n * @param String value Header value\n * @return Void\n */\n\tset(name, value) {\n\t\tname = `${name}`;\n\t\tvalue = `${value}`;\n\t\tvalidateName(name);\n\t\tvalidateValue(value);\n\t\tconst key = find(this[MAP], name);\n\t\tthis[MAP][key !== undefined ? key : name] = [value];\n\t}\n\n\t/**\n * Append a value onto existing header\n *\n * @param String name Header name\n * @param String value Header value\n * @return Void\n */\n\tappend(name, value) {\n\t\tname = `${name}`;\n\t\tvalue = `${value}`;\n\t\tvalidateName(name);\n\t\tvalidateValue(value);\n\t\tconst key = find(this[MAP], name);\n\t\tif (key !== undefined) {\n\t\t\tthis[MAP][key].push(value);\n\t\t} else {\n\t\t\tthis[MAP][name] = [value];\n\t\t}\n\t}\n\n\t/**\n * Check for header name existence\n *\n * @param String name Header name\n * @return Boolean\n */\n\thas(name) {\n\t\tname = `${name}`;\n\t\tvalidateName(name);\n\t\treturn find(this[MAP], name) !== undefined;\n\t}\n\n\t/**\n * Delete all header values given name\n *\n * @param String name Header name\n * @return Void\n */\n\tdelete(name) {\n\t\tname = `${name}`;\n\t\tvalidateName(name);\n\t\tconst key = find(this[MAP], name);\n\t\tif (key !== undefined) {\n\t\t\tdelete this[MAP][key];\n\t\t}\n\t}\n\n\t/**\n * Return raw headers (non-spec api)\n *\n * @return Object\n */\n\traw() {\n\t\treturn this[MAP];\n\t}\n\n\t/**\n * Get an iterator on keys.\n *\n * @return Iterator\n */\n\tkeys() {\n\t\treturn createHeadersIterator(this, 'key');\n\t}\n\n\t/**\n * Get an iterator on values.\n *\n * @return Iterator\n */\n\tvalues() {\n\t\treturn createHeadersIterator(this, 'value');\n\t}\n\n\t/**\n * Get an iterator on entries.\n *\n * This is the default iterator of the Headers object.\n *\n * @return Iterator\n */\n\t[Symbol.iterator]() {\n\t\treturn createHeadersIterator(this, 'key+value');\n\t}\n}\nHeaders.prototype.entries = Headers.prototype[Symbol.iterator];\n\nObject.defineProperty(Headers.prototype, Symbol.toStringTag, {\n\tvalue: 'Headers',\n\twritable: false,\n\tenumerable: false,\n\tconfigurable: true\n});\n\nObject.defineProperties(Headers.prototype, {\n\tget: { enumerable: true },\n\tforEach: { enumerable: true },\n\tset: { enumerable: true },\n\tappend: { enumerable: true },\n\thas: { enumerable: true },\n\tdelete: { enumerable: true },\n\tkeys: { enumerable: true },\n\tvalues: { enumerable: true },\n\tentries: { enumerable: true }\n});\n\nfunction getHeaders(headers) {\n\tlet kind = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'key+value';\n\n\tconst keys = Object.keys(headers[MAP]).sort();\n\treturn keys.map(kind === 'key' ? function (k) {\n\t\treturn k.toLowerCase();\n\t} : kind === 'value' ? function (k) {\n\t\treturn headers[MAP][k].join(', ');\n\t} : function (k) {\n\t\treturn [k.toLowerCase(), headers[MAP][k].join(', ')];\n\t});\n}\n\nconst INTERNAL = Symbol('internal');\n\nfunction createHeadersIterator(target, kind) {\n\tconst iterator = Object.create(HeadersIteratorPrototype);\n\titerator[INTERNAL] = {\n\t\ttarget,\n\t\tkind,\n\t\tindex: 0\n\t};\n\treturn iterator;\n}\n\nconst HeadersIteratorPrototype = Object.setPrototypeOf({\n\tnext() {\n\t\t// istanbul ignore if\n\t\tif (!this || Object.getPrototypeOf(this) !== HeadersIteratorPrototype) {\n\t\t\tthrow new TypeError('Value of `this` is not a HeadersIterator');\n\t\t}\n\n\t\tvar _INTERNAL = this[INTERNAL];\n\t\tconst target = _INTERNAL.target,\n\t\t kind = _INTERNAL.kind,\n\t\t index = _INTERNAL.index;\n\n\t\tconst values = getHeaders(target, kind);\n\t\tconst len = values.length;\n\t\tif (index >= len) {\n\t\t\treturn {\n\t\t\t\tvalue: undefined,\n\t\t\t\tdone: true\n\t\t\t};\n\t\t}\n\n\t\tthis[INTERNAL].index = index + 1;\n\n\t\treturn {\n\t\t\tvalue: values[index],\n\t\t\tdone: false\n\t\t};\n\t}\n}, Object.getPrototypeOf(Object.getPrototypeOf([][Symbol.iterator]())));\n\nObject.defineProperty(HeadersIteratorPrototype, Symbol.toStringTag, {\n\tvalue: 'HeadersIterator',\n\twritable: false,\n\tenumerable: false,\n\tconfigurable: true\n});\n\n/**\n * Export the Headers object in a form that Node.js can consume.\n *\n * @param Headers headers\n * @return Object\n */\nfunction exportNodeCompatibleHeaders(headers) {\n\tconst obj = Object.assign({ __proto__: null }, headers[MAP]);\n\n\t// http.request() only supports string as Host header. This hack makes\n\t// specifying custom Host header possible.\n\tconst hostHeaderKey = find(headers[MAP], 'Host');\n\tif (hostHeaderKey !== undefined) {\n\t\tobj[hostHeaderKey] = obj[hostHeaderKey][0];\n\t}\n\n\treturn obj;\n}\n\n/**\n * Create a Headers object from an object of headers, ignoring those that do\n * not conform to HTTP grammar productions.\n *\n * @param Object obj Object of headers\n * @return Headers\n */\nfunction createHeadersLenient(obj) {\n\tconst headers = new Headers();\n\tfor (const name of Object.keys(obj)) {\n\t\tif (invalidTokenRegex.test(name)) {\n\t\t\tcontinue;\n\t\t}\n\t\tif (Array.isArray(obj[name])) {\n\t\t\tfor (const val of obj[name]) {\n\t\t\t\tif (invalidHeaderCharRegex.test(val)) {\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\t\t\t\tif (headers[MAP][name] === undefined) {\n\t\t\t\t\theaders[MAP][name] = [val];\n\t\t\t\t} else {\n\t\t\t\t\theaders[MAP][name].push(val);\n\t\t\t\t}\n\t\t\t}\n\t\t} else if (!invalidHeaderCharRegex.test(obj[name])) {\n\t\t\theaders[MAP][name] = [obj[name]];\n\t\t}\n\t}\n\treturn headers;\n}\n\nconst INTERNALS$1 = Symbol('Response internals');\n\n// fix an issue where \"STATUS_CODES\" aren't a named export for node <10\nconst STATUS_CODES = http__WEBPACK_IMPORTED_MODULE_1__.STATUS_CODES;\n\n/**\n * Response class\n *\n * @param Stream body Readable stream\n * @param Object opts Response options\n * @return Void\n */\nclass Response {\n\tconstructor() {\n\t\tlet body = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : null;\n\t\tlet opts = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n\n\t\tBody.call(this, body, opts);\n\n\t\tconst status = opts.status || 200;\n\t\tconst headers = new Headers(opts.headers);\n\n\t\tif (body != null && !headers.has('Content-Type')) {\n\t\t\tconst contentType = extractContentType(body);\n\t\t\tif (contentType) {\n\t\t\t\theaders.append('Content-Type', contentType);\n\t\t\t}\n\t\t}\n\n\t\tthis[INTERNALS$1] = {\n\t\t\turl: opts.url,\n\t\t\tstatus,\n\t\t\tstatusText: opts.statusText || STATUS_CODES[status],\n\t\t\theaders,\n\t\t\tcounter: opts.counter\n\t\t};\n\t}\n\n\tget url() {\n\t\treturn this[INTERNALS$1].url || '';\n\t}\n\n\tget status() {\n\t\treturn this[INTERNALS$1].status;\n\t}\n\n\t/**\n * Convenience property representing if the request ended normally\n */\n\tget ok() {\n\t\treturn this[INTERNALS$1].status >= 200 && this[INTERNALS$1].status < 300;\n\t}\n\n\tget redirected() {\n\t\treturn this[INTERNALS$1].counter > 0;\n\t}\n\n\tget statusText() {\n\t\treturn this[INTERNALS$1].statusText;\n\t}\n\n\tget headers() {\n\t\treturn this[INTERNALS$1].headers;\n\t}\n\n\t/**\n * Clone this response\n *\n * @return Response\n */\n\tclone() {\n\t\treturn new Response(clone(this), {\n\t\t\turl: this.url,\n\t\t\tstatus: this.status,\n\t\t\tstatusText: this.statusText,\n\t\t\theaders: this.headers,\n\t\t\tok: this.ok,\n\t\t\tredirected: this.redirected\n\t\t});\n\t}\n}\n\nBody.mixIn(Response.prototype);\n\nObject.defineProperties(Response.prototype, {\n\turl: { enumerable: true },\n\tstatus: { enumerable: true },\n\tok: { enumerable: true },\n\tredirected: { enumerable: true },\n\tstatusText: { enumerable: true },\n\theaders: { enumerable: true },\n\tclone: { enumerable: true }\n});\n\nObject.defineProperty(Response.prototype, Symbol.toStringTag, {\n\tvalue: 'Response',\n\twritable: false,\n\tenumerable: false,\n\tconfigurable: true\n});\n\nconst INTERNALS$2 = Symbol('Request internals');\n\n// fix an issue where \"format\", \"parse\" aren't a named export for node <10\nconst parse_url = url__WEBPACK_IMPORTED_MODULE_2__.parse;\nconst format_url = url__WEBPACK_IMPORTED_MODULE_2__.format;\n\nconst streamDestructionSupported = 'destroy' in stream__WEBPACK_IMPORTED_MODULE_0__.Readable.prototype;\n\n/**\n * Check if a value is an instance of Request.\n *\n * @param Mixed input\n * @return Boolean\n */\nfunction isRequest(input) {\n\treturn typeof input === 'object' && typeof input[INTERNALS$2] === 'object';\n}\n\nfunction isAbortSignal(signal) {\n\tconst proto = signal && typeof signal === 'object' && Object.getPrototypeOf(signal);\n\treturn !!(proto && proto.constructor.name === 'AbortSignal');\n}\n\n/**\n * Request class\n *\n * @param Mixed input Url or Request instance\n * @param Object init Custom options\n * @return Void\n */\nclass Request {\n\tconstructor(input) {\n\t\tlet init = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n\n\t\tlet parsedURL;\n\n\t\t// normalize input\n\t\tif (!isRequest(input)) {\n\t\t\tif (input && input.href) {\n\t\t\t\t// in order to support Node.js' Url objects; though WHATWG's URL objects\n\t\t\t\t// will fall into this branch also (since their `toString()` will return\n\t\t\t\t// `href` property anyway)\n\t\t\t\tparsedURL = parse_url(input.href);\n\t\t\t} else {\n\t\t\t\t// coerce input to a string before attempting to parse\n\t\t\t\tparsedURL = parse_url(`${input}`);\n\t\t\t}\n\t\t\tinput = {};\n\t\t} else {\n\t\t\tparsedURL = parse_url(input.url);\n\t\t}\n\n\t\tlet method = init.method || input.method || 'GET';\n\t\tmethod = method.toUpperCase();\n\n\t\tif ((init.body != null || isRequest(input) && input.body !== null) && (method === 'GET' || method === 'HEAD')) {\n\t\t\tthrow new TypeError('Request with GET/HEAD method cannot have body');\n\t\t}\n\n\t\tlet inputBody = init.body != null ? init.body : isRequest(input) && input.body !== null ? clone(input) : null;\n\n\t\tBody.call(this, inputBody, {\n\t\t\ttimeout: init.timeout || input.timeout || 0,\n\t\t\tsize: init.size || input.size || 0\n\t\t});\n\n\t\tconst headers = new Headers(init.headers || input.headers || {});\n\n\t\tif (inputBody != null && !headers.has('Content-Type')) {\n\t\t\tconst contentType = extractContentType(inputBody);\n\t\t\tif (contentType) {\n\t\t\t\theaders.append('Content-Type', contentType);\n\t\t\t}\n\t\t}\n\n\t\tlet signal = isRequest(input) ? input.signal : null;\n\t\tif ('signal' in init) signal = init.signal;\n\n\t\tif (signal != null && !isAbortSignal(signal)) {\n\t\t\tthrow new TypeError('Expected signal to be an instanceof AbortSignal');\n\t\t}\n\n\t\tthis[INTERNALS$2] = {\n\t\t\tmethod,\n\t\t\tredirect: init.redirect || input.redirect || 'follow',\n\t\t\theaders,\n\t\t\tparsedURL,\n\t\t\tsignal\n\t\t};\n\n\t\t// node-fetch-only options\n\t\tthis.follow = init.follow !== undefined ? init.follow : input.follow !== undefined ? input.follow : 20;\n\t\tthis.compress = init.compress !== undefined ? init.compress : input.compress !== undefined ? input.compress : true;\n\t\tthis.counter = init.counter || input.counter || 0;\n\t\tthis.agent = init.agent || input.agent;\n\t}\n\n\tget method() {\n\t\treturn this[INTERNALS$2].method;\n\t}\n\n\tget url() {\n\t\treturn format_url(this[INTERNALS$2].parsedURL);\n\t}\n\n\tget headers() {\n\t\treturn this[INTERNALS$2].headers;\n\t}\n\n\tget redirect() {\n\t\treturn this[INTERNALS$2].redirect;\n\t}\n\n\tget signal() {\n\t\treturn this[INTERNALS$2].signal;\n\t}\n\n\t/**\n * Clone this request\n *\n * @return Request\n */\n\tclone() {\n\t\treturn new Request(this);\n\t}\n}\n\nBody.mixIn(Request.prototype);\n\nObject.defineProperty(Request.prototype, Symbol.toStringTag, {\n\tvalue: 'Request',\n\twritable: false,\n\tenumerable: false,\n\tconfigurable: true\n});\n\nObject.defineProperties(Request.prototype, {\n\tmethod: { enumerable: true },\n\turl: { enumerable: true },\n\theaders: { enumerable: true },\n\tredirect: { enumerable: true },\n\tclone: { enumerable: true },\n\tsignal: { enumerable: true }\n});\n\n/**\n * Convert a Request to Node.js http request options.\n *\n * @param Request A Request instance\n * @return Object The options object to be passed to http.request\n */\nfunction getNodeRequestOptions(request) {\n\tconst parsedURL = request[INTERNALS$2].parsedURL;\n\tconst headers = new Headers(request[INTERNALS$2].headers);\n\n\t// fetch step 1.3\n\tif (!headers.has('Accept')) {\n\t\theaders.set('Accept', '*/*');\n\t}\n\n\t// Basic fetch\n\tif (!parsedURL.protocol || !parsedURL.hostname) {\n\t\tthrow new TypeError('Only absolute URLs are supported');\n\t}\n\n\tif (!/^https?:$/.test(parsedURL.protocol)) {\n\t\tthrow new TypeError('Only HTTP(S) protocols are supported');\n\t}\n\n\tif (request.signal && request.body instanceof stream__WEBPACK_IMPORTED_MODULE_0__.Readable && !streamDestructionSupported) {\n\t\tthrow new Error('Cancellation of streamed requests with AbortSignal is not supported in node < 8');\n\t}\n\n\t// HTTP-network-or-cache fetch steps 2.4-2.7\n\tlet contentLengthValue = null;\n\tif (request.body == null && /^(POST|PUT)$/i.test(request.method)) {\n\t\tcontentLengthValue = '0';\n\t}\n\tif (request.body != null) {\n\t\tconst totalBytes = getTotalBytes(request);\n\t\tif (typeof totalBytes === 'number') {\n\t\t\tcontentLengthValue = String(totalBytes);\n\t\t}\n\t}\n\tif (contentLengthValue) {\n\t\theaders.set('Content-Length', contentLengthValue);\n\t}\n\n\t// HTTP-network-or-cache fetch step 2.11\n\tif (!headers.has('User-Agent')) {\n\t\theaders.set('User-Agent', 'node-fetch/1.0 (+https://github.com/bitinn/node-fetch)');\n\t}\n\n\t// HTTP-network-or-cache fetch step 2.15\n\tif (request.compress && !headers.has('Accept-Encoding')) {\n\t\theaders.set('Accept-Encoding', 'gzip,deflate');\n\t}\n\n\tlet agent = request.agent;\n\tif (typeof agent === 'function') {\n\t\tagent = agent(parsedURL);\n\t}\n\n\tif (!headers.has('Connection') && !agent) {\n\t\theaders.set('Connection', 'close');\n\t}\n\n\t// HTTP-network fetch step 4.2\n\t// chunked encoding is handled by Node.js\n\n\treturn Object.assign({}, parsedURL, {\n\t\tmethod: request.method,\n\t\theaders: exportNodeCompatibleHeaders(headers),\n\t\tagent\n\t});\n}\n\n/**\n * abort-error.js\n *\n * AbortError interface for cancelled requests\n */\n\n/**\n * Create AbortError instance\n *\n * @param String message Error message for human\n * @return AbortError\n */\nfunction AbortError(message) {\n Error.call(this, message);\n\n this.type = 'aborted';\n this.message = message;\n\n // hide custom error implementation details from end-users\n Error.captureStackTrace(this, this.constructor);\n}\n\nAbortError.prototype = Object.create(Error.prototype);\nAbortError.prototype.constructor = AbortError;\nAbortError.prototype.name = 'AbortError';\n\n// fix an issue where \"PassThrough\", \"resolve\" aren't a named export for node <10\nconst PassThrough$1 = stream__WEBPACK_IMPORTED_MODULE_0__.PassThrough;\nconst resolve_url = url__WEBPACK_IMPORTED_MODULE_2__.resolve;\n\n/**\n * Fetch function\n *\n * @param Mixed url Absolute url or Request instance\n * @param Object opts Fetch options\n * @return Promise\n */\nfunction fetch(url, opts) {\n\n\t// allow custom promise\n\tif (!fetch.Promise) {\n\t\tthrow new Error('native promise missing, set fetch.Promise to your favorite alternative');\n\t}\n\n\tBody.Promise = fetch.Promise;\n\n\t// wrap http.request into fetch\n\treturn new fetch.Promise(function (resolve, reject) {\n\t\t// build request object\n\t\tconst request = new Request(url, opts);\n\t\tconst options = getNodeRequestOptions(request);\n\n\t\tconst send = (options.protocol === 'https:' ? https__WEBPACK_IMPORTED_MODULE_3__ : http__WEBPACK_IMPORTED_MODULE_1__).request;\n\t\tconst signal = request.signal;\n\n\t\tlet response = null;\n\n\t\tconst abort = function abort() {\n\t\t\tlet error = new AbortError('The user aborted a request.');\n\t\t\treject(error);\n\t\t\tif (request.body && request.body instanceof stream__WEBPACK_IMPORTED_MODULE_0__.Readable) {\n\t\t\t\trequest.body.destroy(error);\n\t\t\t}\n\t\t\tif (!response || !response.body) return;\n\t\t\tresponse.body.emit('error', error);\n\t\t};\n\n\t\tif (signal && signal.aborted) {\n\t\t\tabort();\n\t\t\treturn;\n\t\t}\n\n\t\tconst abortAndFinalize = function abortAndFinalize() {\n\t\t\tabort();\n\t\t\tfinalize();\n\t\t};\n\n\t\t// send request\n\t\tconst req = send(options);\n\t\tlet reqTimeout;\n\n\t\tif (signal) {\n\t\t\tsignal.addEventListener('abort', abortAndFinalize);\n\t\t}\n\n\t\tfunction finalize() {\n\t\t\treq.abort();\n\t\t\tif (signal) signal.removeEventListener('abort', abortAndFinalize);\n\t\t\tclearTimeout(reqTimeout);\n\t\t}\n\n\t\tif (request.timeout) {\n\t\t\treq.once('socket', function (socket) {\n\t\t\t\treqTimeout = setTimeout(function () {\n\t\t\t\t\treject(new FetchError(`network timeout at: ${request.url}`, 'request-timeout'));\n\t\t\t\t\tfinalize();\n\t\t\t\t}, request.timeout);\n\t\t\t});\n\t\t}\n\n\t\treq.on('error', function (err) {\n\t\t\treject(new FetchError(`request to ${request.url} failed, reason: ${err.message}`, 'system', err));\n\t\t\tfinalize();\n\t\t});\n\n\t\treq.on('response', function (res) {\n\t\t\tclearTimeout(reqTimeout);\n\n\t\t\tconst headers = createHeadersLenient(res.headers);\n\n\t\t\t// HTTP fetch step 5\n\t\t\tif (fetch.isRedirect(res.statusCode)) {\n\t\t\t\t// HTTP fetch step 5.2\n\t\t\t\tconst location = headers.get('Location');\n\n\t\t\t\t// HTTP fetch step 5.3\n\t\t\t\tconst locationURL = location === null ? null : resolve_url(request.url, location);\n\n\t\t\t\t// HTTP fetch step 5.5\n\t\t\t\tswitch (request.redirect) {\n\t\t\t\t\tcase 'error':\n\t\t\t\t\t\treject(new FetchError(`uri requested responds with a redirect, redirect mode is set to error: ${request.url}`, 'no-redirect'));\n\t\t\t\t\t\tfinalize();\n\t\t\t\t\t\treturn;\n\t\t\t\t\tcase 'manual':\n\t\t\t\t\t\t// node-fetch-specific step: make manual redirect a bit easier to use by setting the Location header value to the resolved URL.\n\t\t\t\t\t\tif (locationURL !== null) {\n\t\t\t\t\t\t\t// handle corrupted header\n\t\t\t\t\t\t\ttry {\n\t\t\t\t\t\t\t\theaders.set('Location', locationURL);\n\t\t\t\t\t\t\t} catch (err) {\n\t\t\t\t\t\t\t\t// istanbul ignore next: nodejs server prevent invalid response headers, we can't test this through normal request\n\t\t\t\t\t\t\t\treject(err);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase 'follow':\n\t\t\t\t\t\t// HTTP-redirect fetch step 2\n\t\t\t\t\t\tif (locationURL === null) {\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\t// HTTP-redirect fetch step 5\n\t\t\t\t\t\tif (request.counter >= request.follow) {\n\t\t\t\t\t\t\treject(new FetchError(`maximum redirect reached at: ${request.url}`, 'max-redirect'));\n\t\t\t\t\t\t\tfinalize();\n\t\t\t\t\t\t\treturn;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\t// HTTP-redirect fetch step 6 (counter increment)\n\t\t\t\t\t\t// Create a new Request object.\n\t\t\t\t\t\tconst requestOpts = {\n\t\t\t\t\t\t\theaders: new Headers(request.headers),\n\t\t\t\t\t\t\tfollow: request.follow,\n\t\t\t\t\t\t\tcounter: request.counter + 1,\n\t\t\t\t\t\t\tagent: request.agent,\n\t\t\t\t\t\t\tcompress: request.compress,\n\t\t\t\t\t\t\tmethod: request.method,\n\t\t\t\t\t\t\tbody: request.body,\n\t\t\t\t\t\t\tsignal: request.signal,\n\t\t\t\t\t\t\ttimeout: request.timeout,\n\t\t\t\t\t\t\tsize: request.size\n\t\t\t\t\t\t};\n\n\t\t\t\t\t\t// HTTP-redirect fetch step 9\n\t\t\t\t\t\tif (res.statusCode !== 303 && request.body && getTotalBytes(request) === null) {\n\t\t\t\t\t\t\treject(new FetchError('Cannot follow redirect with body being a readable stream', 'unsupported-redirect'));\n\t\t\t\t\t\t\tfinalize();\n\t\t\t\t\t\t\treturn;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\t// HTTP-redirect fetch step 11\n\t\t\t\t\t\tif (res.statusCode === 303 || (res.statusCode === 301 || res.statusCode === 302) && request.method === 'POST') {\n\t\t\t\t\t\t\trequestOpts.method = 'GET';\n\t\t\t\t\t\t\trequestOpts.body = undefined;\n\t\t\t\t\t\t\trequestOpts.headers.delete('content-length');\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\t// HTTP-redirect fetch step 15\n\t\t\t\t\t\tresolve(fetch(new Request(locationURL, requestOpts)));\n\t\t\t\t\t\tfinalize();\n\t\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// prepare response\n\t\t\tres.once('end', function () {\n\t\t\t\tif (signal) signal.removeEventListener('abort', abortAndFinalize);\n\t\t\t});\n\t\t\tlet body = res.pipe(new PassThrough$1());\n\n\t\t\tconst response_options = {\n\t\t\t\turl: request.url,\n\t\t\t\tstatus: res.statusCode,\n\t\t\t\tstatusText: res.statusMessage,\n\t\t\t\theaders: headers,\n\t\t\t\tsize: request.size,\n\t\t\t\ttimeout: request.timeout,\n\t\t\t\tcounter: request.counter\n\t\t\t};\n\n\t\t\t// HTTP-network fetch step 12.1.1.3\n\t\t\tconst codings = headers.get('Content-Encoding');\n\n\t\t\t// HTTP-network fetch step 12.1.1.4: handle content codings\n\n\t\t\t// in following scenarios we ignore compression support\n\t\t\t// 1. compression support is disabled\n\t\t\t// 2. HEAD request\n\t\t\t// 3. no Content-Encoding header\n\t\t\t// 4. no content response (204)\n\t\t\t// 5. content not modified response (304)\n\t\t\tif (!request.compress || request.method === 'HEAD' || codings === null || res.statusCode === 204 || res.statusCode === 304) {\n\t\t\t\tresponse = new Response(body, response_options);\n\t\t\t\tresolve(response);\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\t// For Node v6+\n\t\t\t// Be less strict when decoding compressed responses, since sometimes\n\t\t\t// servers send slightly invalid responses that are still accepted\n\t\t\t// by common browsers.\n\t\t\t// Always using Z_SYNC_FLUSH is what cURL does.\n\t\t\tconst zlibOptions = {\n\t\t\t\tflush: zlib__WEBPACK_IMPORTED_MODULE_4__.Z_SYNC_FLUSH,\n\t\t\t\tfinishFlush: zlib__WEBPACK_IMPORTED_MODULE_4__.Z_SYNC_FLUSH\n\t\t\t};\n\n\t\t\t// for gzip\n\t\t\tif (codings == 'gzip' || codings == 'x-gzip') {\n\t\t\t\tbody = body.pipe(zlib__WEBPACK_IMPORTED_MODULE_4__.createGunzip(zlibOptions));\n\t\t\t\tresponse = new Response(body, response_options);\n\t\t\t\tresolve(response);\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\t// for deflate\n\t\t\tif (codings == 'deflate' || codings == 'x-deflate') {\n\t\t\t\t// handle the infamous raw deflate response from old servers\n\t\t\t\t// a hack for old IIS and Apache servers\n\t\t\t\tconst raw = res.pipe(new PassThrough$1());\n\t\t\t\traw.once('data', function (chunk) {\n\t\t\t\t\t// see http://stackoverflow.com/questions/37519828\n\t\t\t\t\tif ((chunk[0] & 0x0F) === 0x08) {\n\t\t\t\t\t\tbody = body.pipe(zlib__WEBPACK_IMPORTED_MODULE_4__.createInflate());\n\t\t\t\t\t} else {\n\t\t\t\t\t\tbody = body.pipe(zlib__WEBPACK_IMPORTED_MODULE_4__.createInflateRaw());\n\t\t\t\t\t}\n\t\t\t\t\tresponse = new Response(body, response_options);\n\t\t\t\t\tresolve(response);\n\t\t\t\t});\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\t// for br\n\t\t\tif (codings == 'br' && typeof zlib__WEBPACK_IMPORTED_MODULE_4__.createBrotliDecompress === 'function') {\n\t\t\t\tbody = body.pipe(zlib__WEBPACK_IMPORTED_MODULE_4__.createBrotliDecompress());\n\t\t\t\tresponse = new Response(body, response_options);\n\t\t\t\tresolve(response);\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\t// otherwise, use response as-is\n\t\t\tresponse = new Response(body, response_options);\n\t\t\tresolve(response);\n\t\t});\n\n\t\twriteToStream(req, request);\n\t});\n}\n/**\n * Redirect code matching\n *\n * @param Number code Status code\n * @return Boolean\n */\nfetch.isRedirect = function (code) {\n\treturn code === 301 || code === 302 || code === 303 || code === 307 || code === 308;\n};\n\n// expose Promise\nfetch.Promise = global.Promise;\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (fetch);\n\n\n\n//# sourceURL=webpack://Contentstack/./node_modules/node-fetch/lib/index.mjs?");
/***/ }),
/***/ "./node_modules/node-html-parser/dist/esm/back.js":
/*!********************************************************!*\
!*** ./node_modules/node-html-parser/dist/esm/back.js ***!
\********************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {
"use strict";
eval("\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = arr_back;\nfunction arr_back(arr) {\n return arr[arr.length - 1];\n}\n\n//# sourceURL=webpack://Contentstack/./node_modules/node-html-parser/dist/esm/back.js?");
/***/ }),
/***/ "./node_modules/node-html-parser/dist/esm/index.js":
/*!*********************************************************!*\
!*** ./node_modules/node-html-parser/dist/esm/index.js ***!
\*********************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {
"use strict";
eval("\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _comment = __webpack_require__(/*! ./nodes/comment */ \"./node_modules/node-html-parser/dist/esm/nodes/comment.js\");\n\nObject.defineProperty(exports, 'CommentNode', {\n enumerable: true,\n get: function get() {\n return _interopRequireDefault(_comment).default;\n }\n});\n\nvar _html = __webpack_require__(/*! ./nodes/html */ \"./node_modules/node-html-parser/dist/esm/nodes/html.js\");\n\nObject.defineProperty(exports, 'HTMLElement', {\n enumerable: true,\n get: function get() {\n return _interopRequireDefault(_html).default;\n }\n});\nObject.defineProperty(exports, 'parse', {\n enumerable: true,\n get: function get() {\n return _html.parse;\n }\n});\nObject.defineProperty(exports, 'default', {\n enumerable: true,\n get: function get() {\n return _html.parse;\n }\n});\n\nvar _node = __webpack_require__(/*! ./nodes/node */ \"./node_modules/node-html-parser/dist/esm/nodes/node.js\");\n\nObject.defineProperty(exports, 'Node', {\n enumerable: true,\n get: function get() {\n return _interopRequireDefault(_node).default;\n }\n});\n\nvar _text = __webpack_require__(/*! ./nodes/text */ \"./node_modules/node-html-parser/dist/esm/nodes/text.js\");\n\nObject.defineProperty(exports, 'TextNode', {\n enumerable: true,\n get: function get() {\n return _interopRequireDefault(_text).default;\n }\n});\n\nvar _type = __webpack_require__(/*! ./nodes/type */ \"./node_modules/node-html-parser/dist/esm/nodes/type.js\");\n\nObject.defineProperty(exports, 'NodeType', {\n enumerable: true,\n get: function get() {\n return _interopRequireDefault(_type).default;\n }\n});\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n//# sourceURL=webpack://Contentstack/./node_modules/node-html-parser/dist/esm/index.js?");
/***/ }),
/***/ "./node_modules/node-html-parser/dist/esm/matcher.js":
/*!***********************************************************!*\
!*** ./node_modules/node-html-parser/dist/esm/matcher.js ***!
\***********************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {
"use strict";
eval("\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _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; }; }();\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\n/**\n * Cache to store generated match functions\n * @type {Object}\n */\nvar pMatchFunctionCache = {};\nfunction compare_tagname(tag1, tag2) {\n if (!tag1) {\n return !tag2;\n }\n if (!tag2) {\n return !tag1;\n }\n return tag1.toLowerCase() === tag2.toLowerCase();\n}\n/**\n * Function cache\n */\nvar functionCache = {\n f145: function f145(el, tagName, classes) {\n 'use strict';\n\n tagName = tagName || '';\n classes = classes || [];\n if (el.id !== tagName.substr(1)) {\n return false;\n }\n for (var cls = classes, i = 0; i < cls.length; i++) {\n if (el.classNames.indexOf(cls[i]) === -1) {\n return false;\n }\n }\n return true;\n },\n f45: function f45(el, tagName, classes) {\n 'use strict';\n\n tagName = tagName || '';\n classes = classes || [];\n for (var cls = classes, i = 0; i < cls.length; i++) {\n if (el.classNames.indexOf(cls[i]) === -1) {\n return false;\n }\n }\n return true;\n },\n f15: function f15(el, tagName) {\n 'use strict';\n\n tagName = tagName || '';\n if (el.id !== tagName.substr(1)) {\n return false;\n }\n return true;\n },\n f1: function f1(el, tagName) {\n 'use strict';\n\n tagName = tagName || '';\n if (el.id !== tagName.substr(1)) {\n return false;\n }\n },\n f5: function f5() {\n 'use strict';\n\n return true;\n },\n f55: function f55(el, tagName, classes, attr_key) {\n 'use strict';\n\n tagName = tagName || '';\n classes = classes || [];\n attr_key = attr_key || '';\n var attrs = el.attributes;\n return attrs.hasOwnProperty(attr_key);\n },\n f245: function f245(el, tagName, classes, attr_key, value) {\n 'use strict';\n\n tagName = tagName || '';\n classes = classes || [];\n attr_key = (attr_key || '').toLowerCase();\n value = value || '';\n var attrs = el.attributes;\n return Object.keys(attrs).some(function (key) {\n var val = attrs[key];\n return key.toLowerCase() === attr_key && val === value;\n });\n // for (let cls = classes, i = 0; i < cls.length; i++) {if (el.classNames.indexOf(cls[i]) === -1){ return false;}}\n // return true;\n },\n f25: function f25(el, tagName, classes, attr_key, value) {\n 'use strict';\n\n tagName = tagName || '';\n classes = classes || [];\n attr_key = (attr_key || '').toLowerCase();\n value = value || '';\n var attrs = el.attributes;\n return Object.keys(attrs).some(function (key) {\n var val = attrs[key];\n return key.toLowerCase() === attr_key && val === value;\n });\n // return true;\n },\n f2: function f2(el, tagName, classes, attr_key, value) {\n 'use strict';\n\n tagName = tagName || '';\n classes = classes || [];\n attr_key = (attr_key || '').toLowerCase();\n value = value || '';\n var attrs = el.attributes;\n return Object.keys(attrs).some(function (key) {\n var val = attrs[key];\n return key.toLowerCase() === attr_key && val === value;\n });\n },\n f345: function f345(el, tagName, classes) {\n 'use strict';\n\n tagName = tagName || '';\n classes = classes || [];\n if (!compare_tagname(el.tagName, tagName)) {\n return false;\n }\n for (var cls = classes, i = 0; i < cls.length; i++) {\n if (el.classNames.indexOf(cls[i]) === -1) {\n return false;\n }\n }\n return true;\n },\n f35: function f35(el, tagName) {\n 'use strict';\n\n tagName = tagName || '';\n return compare_tagname(el.tagName, tagName);\n },\n f3: function f3(el, tagName) {\n 'use strict';\n\n tagName = tagName || '';\n // if (el.tagName !== tagName) {\n // \treturn false;\n // }\n return compare_tagname(el.tagName, tagName);\n }\n};\n/**\n * Matcher class to make CSS match\n *\n * @class Matcher\n */\n\nvar Matcher = function () {\n /**\n * Creates an instance of Matcher.\n * @param {string} selector\n *\n * @memberof Matcher\n */\n function Matcher(selector) {\n _classCallCheck(this, Matcher);\n\n this.nextMatch = 0;\n this.matchers = selector.split(' ').map(function (matcher) {\n if (pMatchFunctionCache[matcher]) {\n return pMatchFunctionCache[matcher];\n }\n var parts = matcher.split('.');\n var tagName = parts[0];\n var classes = parts.slice(1).sort();\n // let source = '\"use strict\";';\n var function_name = 'f';\n var attr_key = '';\n var value = '';\n if (tagName && tagName !== '*') {\n if (tagName.startsWith('#')) {\n // source += 'if (el.id != ' + JSON.stringify(tagName.substr(1)) + ') return false;';// 1\n function_name += '1';\n } else {\n // https://github.com/taoqf/node-html-parser/issues/86\n // const reg = /\\[\\s*([\\w-]+)(\\s*=\\s*(((?<quote>'|\")\\s*(.*)(\\k<quote>))|(\\S*)))?\\s*\\]/.exec(tagName);\n // `[a-b]`,`[ a-b ]`,`[a-b=c]`, `[a-b=c'd]`,`[a-b='c\\' d\"e ']`,`[ a-b = 'c\\' d\"e ' ]`,`[a-b=\"c' d\\\"e \" ]`,`[ a-b = \"c' d\\\"e \" ]`\n var reg = /\\[\\s*([\\w-]+)(\\s*=\\s*(('\\s*(.*)'|\"\\s*(.*)\")|(\\S*)))?\\s*\\]/.exec(tagName);\n if (reg) {\n attr_key = reg[1];\n value = reg[5] || reg[6] || reg[7];\n // source += `let attrs = el.attributes;for (let key in attrs){const val = attrs[key]; if (key == \"${attr_key}\" && val == \"${value}\"){return true;}} return false;`;// 2\n function_name += '2';\n } else {\n // source += 'if (el.tagName != ' + JSON.stringify(tagName) + ') return false;';// 3\n function_name += '3';\n }\n }\n }\n if (classes.length > 0) {\n // source += 'for (let cls = ' + JSON.stringify(classes) + ', i = 0; i < cls.length; i++) if (el.classNames.indexOf(cls[i]) === -1) return false;';// 4\n function_name += '4';\n }\n // source += 'return true;';// 5\n function_name += '5';\n var obj = {\n func: functionCache[function_name],\n tagName: tagName || '',\n classes: classes || '',\n attr_key: attr_key || '',\n value: value || ''\n };\n // source = source || '';\n return pMatchFunctionCache[matcher] = obj;\n });\n }\n /**\n * Trying to advance match pointer\n * @param {HTMLElement} el element to make the match\n * @return {bool} true when pointer advanced.\n */\n\n\n _createClass(Matcher, [{\n key: 'advance',\n value: function advance(el) {\n if (this.nextMatch < this.matchers.length && this.matchers[this.nextMatch].func(el, this.matchers[this.nextMatch].tagName, this.matchers[this.nextMatch].classes, this.matchers[this.nextMatch].attr_key, this.matchers[this.nextMatch].value)) {\n this.nextMatch++;\n return true;\n }\n return false;\n }\n /**\n * Rewind the match pointer\n */\n\n }, {\n key: 'rewind',\n value: function rewind() {\n this.nextMatch--;\n }\n /**\n * Trying to determine if match made.\n * @return {bool} true when the match is made\n */\n\n }, {\n key: 'reset',\n\n /**\n * Rest match pointer.\n * @return {[type]} [description]\n */\n value: function reset() {\n this.nextMatch = 0;\n }\n /**\n * flush cache to free memory\n */\n\n }, {\n key: 'flushCache',\n value: function flushCache() {\n pMatchFunctionCache = {};\n }\n }, {\n key: 'matched',\n get: function get() {\n return this.nextMatch === this.matchers.length;\n }\n }]);\n\n return Matcher;\n}();\n\nexports.default = Matcher;\n\n//# sourceURL=webpack://Contentstack/./node_modules/node-html-parser/dist/esm/matcher.js?");
/***/ }),
/***/ "./node_modules/node-html-parser/dist/esm/nodes/comment.js":
/*!*****************************************************************!*\
!*** ./node_modules/node-html-parser/dist/esm/nodes/comment.js ***!
\*****************************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {
"use strict";
eval("\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _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; }; }();\n\nvar _node = __webpack_require__(/*! ./node */ \"./node_modules/node-html-parser/dist/esm/nodes/node.js\");\n\nvar _node2 = _interopRequireDefault(_node);\n\nvar _type = __webpack_require__(/*! ./type */ \"./node_modules/node-html-parser/dist/esm/nodes/type.js\");\n\nvar _type2 = _interopRequireDefault(_type);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar CommentNode = function (_Node) {\n _inherits(CommentNode, _Node);\n\n function CommentNode(rawText) {\n _classCallCheck(this, CommentNode);\n\n var _this = _possibleConstructorReturn(this, (CommentNode.__proto__ || Object.getPrototypeOf(CommentNode)).call(this));\n\n _this.rawText = rawText;\n /**\n * Node Type declaration.\n * @type {Number}\n */\n _this.nodeType = _type2.default.COMMENT_NODE;\n return _this;\n }\n /**\n * Get unescaped text value of current node and its children.\n * @return {string} text content\n */\n\n\n _createClass(CommentNode, [{\n key: 'toString',\n value: function toString() {\n return '<!--' + this.rawText + '-->';\n }\n }, {\n key: 'text',\n get: function get() {\n return this.rawText;\n }\n }]);\n\n return CommentNode;\n}(_node2.default);\n\nexports.default = CommentNode;\n\n//# sourceURL=webpack://Contentstack/./node_modules/node-html-parser/dist/esm/nodes/comment.js?");
/***/ }),
/***/ "./node_modules/node-html-parser/dist/esm/nodes/html.js":
/*!**************************************************************!*\
!*** ./node_modules/node-html-parser/dist/esm/nodes/html.js ***!
\**************************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {
"use strict";
eval("\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _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; }; }();\n\nexports.parse = parse;\n\nvar _he = __webpack_require__(/*! he */ \"./node_modules/he/he.js\");\n\nvar _node = __webpack_require__(/*! ./node */ \"./node_modules/node-html-parser/dist/esm/nodes/node.js\");\n\nvar _node2 = _interopRequireDefault(_node);\n\nvar _type = __webpack_require__(/*! ./type */ \"./node_modules/node-html-parser/dist/esm/nodes/type.js\");\n\nvar _type2 = _interopRequireDefault(_type);\n\nvar _text3 = __webpack_require__(/*! ./text */ \"./node_modules/node-html-parser/dist/esm/nodes/text.js\");\n\nvar _text4 = _interopRequireDefault(_text3);\n\nvar _matcher = __webpack_require__(/*! ../matcher */ \"./node_modules/node-html-parser/dist/esm/matcher.js\");\n\nvar _matcher2 = _interopRequireDefault(_matcher);\n\nvar _back = __webpack_require__(/*! ../back */ \"./node_modules/node-html-parser/dist/esm/back.js\");\n\nvar _back2 = _interopRequireDefault(_back);\n\nvar _comment = __webpack_require__(/*! ./comment */ \"./node_modules/node-html-parser/dist/esm/nodes/comment.js\");\n\nvar _comment2 = _interopRequireDefault(_comment);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _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); } }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar kBlockElements = new Map();\nkBlockElements.set('DIV', true);\nkBlockElements.set('div', true);\nkBlockElements.set('P', true);\nkBlockElements.set('p', true);\n// ul: true,\n// ol: true,\nkBlockElements.set('LI', true);\nkBlockElements.set('li', true);\n// table: true,\n// tr: true,\nkBlockElements.set('TD', true);\nkBlockElements.set('td', true);\nkBlockElements.set('SECTION', true);\nkBlockElements.set('section', true);\nkBlockElements.set('BR', true);\nkBlockElements.set('br', true);\n/**\n * HTMLElement, which contains a set of children.\n *\n * Note: this is a minimalist implementation, no complete tree\n * structure provided (no parentNode, nextSibling,\n * previousSibling etc).\n * @class HTMLElement\n * @extends {Node}\n */\n\nvar HTMLElement = function (_Node) {\n _inherits(HTMLElement, _Node);\n\n /**\n * Creates an instance of HTMLElement.\n * @param keyAttrs\tid and class attribute\n * @param [rawAttrs]\tattributes in string\n *\n * @memberof HTMLElement\n */\n function HTMLElement(tagName, keyAttrs) {\n var rawAttrs = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : '';\n var parentNode = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : null;\n\n _classCallCheck(this, HTMLElement);\n\n var _this = _possibleConstructorReturn(this, (HTMLElement.__proto__ || Object.getPrototypeOf(HTMLElement)).call(this));\n\n _this.rawAttrs = rawAttrs;\n _this.parentNode = parentNode;\n _this.classNames = [];\n /**\n * Node Type declaration.\n */\n _this.nodeType = _type2.default.ELEMENT_NODE;\n _this.rawTagName = tagName;\n _this.rawAttrs = rawAttrs || '';\n _this.parentNode = parentNode || null;\n _this.childNodes = [];\n if (keyAttrs.id) {\n _this.id = keyAttrs.id;\n if (!rawAttrs) {\n _this.rawAttrs = 'id=\"' + keyAttrs.id + '\"';\n }\n }\n if (keyAttrs.class) {\n _this.classNames = keyAttrs.class.split(/\\s+/);\n if (!rawAttrs) {\n var cls = 'class=\"' + _this.classNames.join(' ') + '\"';\n if (_this.rawAttrs) {\n _this.rawAttrs += ' ' + cls;\n } else {\n _this.rawAttrs = cls;\n }\n }\n }\n return _this;\n }\n /**\n * Remove current element\n */\n\n\n _createClass(HTMLElement, [{\n key: 'remove',\n value: function remove() {\n var _this2 = this;\n\n if (this.parentNode) {\n var children = this.parentNode.childNodes;\n this.parentNode.childNodes = children.filter(function (child) {\n return _this2 !== child;\n });\n }\n }\n /**\n * Remove Child element from childNodes array\n * @param {HTMLElement} node node to remove\n */\n\n }, {\n key: 'removeChild',\n value: function removeChild(node) {\n this.childNodes = this.childNodes.filter(function (child) {\n return child !== node;\n });\n }\n /**\n * Exchanges given child with new child\n * @param {HTMLElement} oldNode node to exchange\n * @param {HTMLElement} newNode new node\n */\n\n }, {\n key: 'exchangeChild',\n value: function exchangeChild(oldNode, newNode) {\n var children = this.childNodes;\n this.childNodes = children.map(function (child) {\n if (child === oldNode) {\n return newNode;\n }\n return child;\n });\n }\n }, {\n key: 'toString',\n value: function toString() {\n var tag = this.rawTagName;\n if (tag) {\n var is_void = /^(area|base|br|col|embed|hr|img|input|link|meta|param|source|track|wbr)$/i.test(tag);\n var attrs = this.rawAttrs ? ' ' + this.rawAttrs : '';\n if (is_void) {\n return '<' + tag + attrs + '>';\n }\n return '<' + tag + attrs + '>' + this.innerHTML + '</' + tag + '>';\n }\n return this.innerHTML;\n }\n }, {\n key: 'set_content',\n value: function set_content(content) {\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n\n if (content instanceof _node2.default) {\n content = [content];\n } else if (typeof content == 'string') {\n var r = parse(content, options);\n content = r.childNodes.length ? r.childNodes : [new _text4.default(content)];\n }\n this.childNodes = content;\n }\n }, {\n key: 'trimRight',\n\n /**\n * Trim element from right (in block) after seeing pattern in a TextNode.\n * @param {RegExp} pattern pattern to find\n * @return {HTMLElement} reference to current node\n */\n value: function trimRight(pattern) {\n for (var i = 0; i < this.childNodes.length; i++) {\n var childNode = this.childNodes[i];\n if (childNode.nodeType === _type2.default.ELEMENT_NODE) {\n childNode.trimRight(pattern);\n } else {\n var index = childNode.rawText.search(pattern);\n if (index > -1) {\n childNode.rawText = childNode.rawText.substr(0, index);\n // trim all following nodes.\n this.childNodes.length = i + 1;\n }\n }\n }\n return this;\n }\n /**\n * Get DOM structure\n * @return {string} strucutre\n */\n\n }, {\n key: 'removeWhitespace',\n\n /**\n * Remove whitespaces in this sub tree.\n * @return {HTMLElement} pointer to this\n */\n value: function removeWhitespace() {\n var _this3 = this;\n\n var o = 0;\n this.childNodes.forEach(function (node) {\n if (node.nodeType === _type2.default.TEXT_NODE) {\n if (node.isWhitespace) {\n return;\n }\n node.rawText = node.rawText.trim();\n } else if (node.nodeType === _type2.default.ELEMENT_NODE) {\n node.removeWhitespace();\n }\n _this3.childNodes[o++] = node;\n });\n this.childNodes.length = o;\n return this;\n }\n /**\n * Query CSS selector to find matching nodes.\n * @param {string} selector Simplified CSS selector\n * @param {Matcher} selector A Matcher instance\n * @return {HTMLElement[]} matching elements\n */\n\n }, {\n key: 'querySelectorAll',\n value: function querySelectorAll(selector) {\n var _this4 = this;\n\n var matcher = void 0;\n if (selector instanceof _matcher2.default) {\n matcher = selector;\n matcher.reset();\n } else {\n if (selector.includes(',')) {\n var selectors = selector.split(',');\n return Array.from(selectors.reduce(function (pre, cur) {\n var result = _this4.querySelectorAll(cur.trim());\n return result.reduce(function (p, c) {\n return p.add(c);\n }, pre);\n }, new Set()));\n }\n matcher = new _matcher2.default(selector);\n }\n var stack = [];\n return this.childNodes.reduce(function (res, cur) {\n stack.push([cur, 0, false]);\n while (stack.length) {\n var state = (0, _back2.default)(stack); // get last element\n var el = state[0];\n if (state[1] === 0) {\n // Seen for first time.\n if (el.nodeType !== _type2.default.ELEMENT_NODE) {\n stack.pop();\n continue;\n }\n var html_el = el;\n state[2] = matcher.advance(html_el);\n if (state[2]) {\n if (matcher.matched) {\n res.push(html_el);\n res.push.apply(res, _toConsumableArray(html_el.querySelectorAll(selector)));\n // no need to go further.\n matcher.rewind();\n stack.pop();\n continue;\n }\n }\n }\n if (state[1] < el.childNodes.length) {\n stack.push([el.childNodes[state[1]++], 0, false]);\n } else {\n if (state[2]) {\n matcher.rewind();\n }\n stack.pop();\n }\n }\n return res;\n }, []);\n }\n /**\n * Query CSS Selector to find matching node.\n * @param {string} selector Simplified CSS selector\n * @param {Matcher} selector A Matcher instance\n * @return {HTMLElement} matching node\n */\n\n }, {\n key: 'querySelector',\n value: function querySelector(selector) {\n var matcher = void 0;\n if (selector instanceof _matcher2.default) {\n matcher = selector;\n matcher.reset();\n } else {\n matcher = new _matcher2.default(selector);\n }\n var stack = [];\n var _iteratorNormalCompletion = true;\n var _didIteratorError = false;\n var _iteratorError = undefined;\n\n try {\n for (var _iterator = this.childNodes[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {\n var node = _step.value;\n\n stack.push([node, 0, false]);\n while (stack.length) {\n var state = (0, _back2.default)(stack);\n var el = state[0];\n if (state[1] === 0) {\n // Seen for first time.\n if (el.nodeType !== _type2.default.ELEMENT_NODE) {\n stack.pop();\n continue;\n }\n state[2] = matcher.advance(el);\n if (state[2]) {\n if (matcher.matched) {\n return el;\n }\n }\n }\n if (state[1] < el.childNodes.length) {\n stack.push([el.childNodes[state[1]++], 0, false]);\n } else {\n if (state[2]) {\n matcher.rewind();\n }\n stack.pop();\n }\n }\n }\n } catch (err) {\n _didIteratorError = true;\n _iteratorError = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion && _iterator.return) {\n _iterator.return();\n }\n } finally {\n if (_didIteratorError) {\n throw _iteratorError;\n }\n }\n }\n\n return null;\n }\n /**\n * Append a child node to childNodes\n * @param {Node} node node to append\n * @return {Node} node appended\n */\n\n }, {\n key: 'appendChild',\n value: function appendChild(node) {\n // node.parentNode = this;\n this.childNodes.push(node);\n if (node instanceof HTMLElement) {\n node.parentNode = this;\n }\n return node;\n }\n /**\n * Get first child node\n * @return {Node} first child node\n */\n\n }, {\n key: 'removeAttribute',\n value: function removeAttribute(key) {\n var attrs = this.rawAttributes;\n delete attrs[key];\n // Update this.attribute\n if (this._attrs) {\n delete this._attrs[key];\n }\n // Update rawString\n this.rawAttrs = Object.keys(attrs).map(function (name) {\n var val = JSON.stringify(attrs[name]);\n if (val === undefined || val === 'null') {\n return name;\n }\n return name + '=' + val;\n }).join(' ');\n }\n }, {\n key: 'hasAttribute',\n value: function hasAttribute(key) {\n return key in this.attributes;\n }\n /**\n * Get an attribute\n * @return {string} value of the attribute\n */\n\n }, {\n key: 'getAttribute',\n value: function getAttribute(key) {\n return this.attributes[key];\n }\n /**\n * Set an attribute value to the HTMLElement\n * @param {string} key The attribute name\n * @param {string} value The value to set, or null / undefined to remove an attribute\n */\n\n }, {\n key: 'setAttribute',\n value: function setAttribute(key, value) {\n if (arguments.length < 2) {\n throw new Error('Failed to execute \\'setAttribute\\' on \\'Element\\'');\n }\n var attrs = this.rawAttributes;\n attrs[key] = String(value);\n if (this._attrs) {\n this._attrs[key] = (0, _he.decode)(attrs[key]);\n }\n // Update rawString\n this.rawAttrs = Object.keys(attrs).map(function (name) {\n var val = JSON.stringify(attrs[name]);\n if (val === 'null' || val === '\"\"') {\n return name;\n }\n return name + '=' + val;\n }).join(' ');\n }\n /**\n * Replace all the attributes of the HTMLElement by the provided attributes\n * @param {Attributes} attributes the new attribute set\n */\n\n }, {\n key: 'setAttributes',\n value: function setAttributes(attributes) {\n // Invalidate current this.attributes\n if (this._attrs) {\n delete this._attrs;\n }\n // Invalidate current this.rawAttributes\n if (this._rawAttrs) {\n delete this._rawAttrs;\n }\n // Update rawString\n this.rawAttrs = Object.keys(attributes).map(function (name) {\n var val = attributes[name];\n if (val === 'null' || val === '\"\"') {\n return name;\n }\n return name + '=' + JSON.stringify(String(val));\n }).join(' ');\n }\n }, {\n key: 'insertAdjacentHTML',\n value: function insertAdjacentHTML(where, html) {\n var _this5 = this;\n\n if (arguments.length < 2) {\n throw new Error('2 arguments required');\n }\n var p = parse(html);\n if (where === 'afterend') {\n var _parentNode$childNode;\n\n var idx = this.parentNode.childNodes.findIndex(function (child) {\n return child === _this5;\n });\n (_parentNode$childNode = this.parentNode.childNodes).splice.apply(_parentNode$childNode, [idx + 1, 0].concat(_toConsumableArray(p.childNodes)));\n p.childNodes.forEach(function (n) {\n if (n instanceof HTMLElement) {\n n.parentNode = _this5.parentNode;\n }\n });\n } else if (where === 'afterbegin') {\n var _childNodes;\n\n (_childNodes = this.childNodes).unshift.apply(_childNodes, _toConsumableArray(p.childNodes));\n } else if (where === 'beforeend') {\n p.childNodes.forEach(function (n) {\n _this5.appendChild(n);\n });\n } else if (where === 'beforebegin') {\n var _parentNode$childNode2;\n\n var _idx = this.parentNode.childNodes.findIndex(function (child) {\n return child === _this5;\n });\n (_parentNode$childNode2 = this.parentNode.childNodes).splice.apply(_parentNode$childNode2, [_idx, 0].concat(_toConsumableArray(p.childNodes)));\n p.childNodes.forEach(function (n) {\n if (n instanceof HTMLElement) {\n n.parentNode = _this5.parentNode;\n }\n });\n } else {\n throw new Error('The value provided (\\'' + where + '\\') is not one of \\'beforebegin\\', \\'afterbegin\\', \\'beforeend\\', or \\'afterend\\'');\n }\n // if (!where || html === undefined || html === null) {\n // \treturn;\n // }\n }\n }, {\n key: 'tagName',\n get: function get() {\n return this.rawTagName ? this.rawTagName.toUpperCase() : this.rawTagName;\n }\n /**\n * Get escpaed (as-it) text value of current node and its children.\n * @return {string} text content\n */\n\n }, {\n key: 'rawText',\n get: function get() {\n return this.childNodes.reduce(function (pre, cur) {\n return pre += cur.rawText;\n }, '');\n }\n /**\n * Get unescaped text value of current node and its children.\n * @return {string} text content\n */\n\n }, {\n key: 'text',\n get: function get() {\n return (0, _he.decode)(this.rawText);\n }\n /**\n * Get structured Text (with '\\n' etc.)\n * @return {string} structured text\n */\n\n }, {\n key: 'structuredText',\n get: function get() {\n var currentBlock = [];\n var blocks = [currentBlock];\n function dfs(node) {\n if (node.nodeType === _type2.default.ELEMENT_NODE) {\n if (kBlockElements.get(node.rawTagName)) {\n if (currentBlock.length > 0) {\n blocks.push(currentBlock = []);\n }\n node.childNodes.forEach(dfs);\n if (currentBlock.length > 0) {\n blocks.push(currentBlock = []);\n }\n } else {\n node.childNodes.forEach(dfs);\n }\n } else if (node.nodeType === _type2.default.TEXT_NODE) {\n if (node.isWhitespace) {\n // Whitespace node, postponed output\n currentBlock.prependWhitespace = true;\n } else {\n var text = node.text;\n if (currentBlock.prependWhitespace) {\n text = ' ' + text;\n currentBlock.prependWhitespace = false;\n }\n currentBlock.push(text);\n }\n }\n }\n dfs(this);\n return blocks.map(function (block) {\n // Normalize each line's whitespace\n return block.join('').trim().replace(/\\s{2,}/g, ' ');\n }).join('\\n').replace(/\\s+$/, ''); // trimRight;\n }\n }, {\n key: 'innerHTML',\n get: function get() {\n return this.childNodes.map(function (child) {\n return child.toString();\n }).join('');\n }\n }, {\n key: 'outerHTML',\n get: function get() {\n return this.toString();\n }\n }, {\n key: 'structure',\n get: function get() {\n var res = [];\n var indention = 0;\n function write(str) {\n res.push(' '.repeat(indention) + str);\n }\n function dfs(node) {\n var idStr = node.id ? '#' + node.id : '';\n var classStr = node.classNames.length ? '.' + node.classNames.join('.') : '';\n write(node.rawTagName + idStr + classStr);\n indention++;\n node.childNodes.forEach(function (childNode) {\n if (childNode.nodeType === _type2.default.ELEMENT_NODE) {\n dfs(childNode);\n } else if (childNode.nodeType === _type2.default.TEXT_NODE) {\n if (!childNode.isWhitespace) {\n write('#text');\n }\n }\n });\n indention--;\n }\n dfs(this);\n return res.join('\\n');\n }\n }, {\n key: 'firstChild',\n get: function get() {\n return this.childNodes[0];\n }\n /**\n * Get last child node\n * @return {Node} last child node\n */\n\n }, {\n key: 'lastChild',\n get: function get() {\n return (0, _back2.default)(this.childNodes);\n }\n /**\n * Get attributes\n * @return {Object} parsed and unescaped attributes\n */\n\n }, {\n key: 'attributes',\n get: function get() {\n if (this._attrs) {\n return this._attrs;\n }\n this._attrs = {};\n var attrs = this.rawAttributes;\n for (var key in attrs) {\n var val = attrs[key] || '';\n this._attrs[key] = (0, _he.decode)(val);\n }\n return this._attrs;\n }\n /**\n * Get escaped (as-it) attributes\n * @return {Object} parsed attributes\n */\n\n }, {\n key: 'rawAttributes',\n get: function get() {\n if (this._rawAttrs) {\n return this._rawAttrs;\n }\n var attrs = {};\n if (this.rawAttrs) {\n var re = /\\b([a-z][a-z0-9-]*)(?:\\s*=\\s*(?:\"([^\"]*)\"|'([^']*)'|(\\S+)))?/ig;\n var match = void 0;\n while (match = re.exec(this.rawAttrs)) {\n attrs[match[1]] = match[2] || match[3] || match[4] || null;\n }\n }\n this._rawAttrs = attrs;\n return attrs;\n }\n }, {\n key: 'nextSibling',\n get: function get() {\n if (this.parentNode) {\n var children = this.parentNode.childNodes;\n var i = 0;\n while (i < children.length) {\n var child = children[i++];\n if (this === child) {\n return children[i] || null;\n }\n }\n return null;\n }\n }\n }, {\n key: 'nextElementSibling',\n get: function get() {\n if (this.parentNode) {\n var children = this.parentNode.childNodes;\n var i = 0;\n var find = false;\n while (i < children.length) {\n var child = children[i++];\n if (find) {\n if (child instanceof HTMLElement) {\n return child || null;\n }\n } else if (this === child) {\n find = true;\n }\n }\n return null;\n }\n }\n }]);\n\n return HTMLElement;\n}(_node2.default);\n// https://html.spec.whatwg.org/multipage/custom-elements.html#valid-custom-element-name\n\n\nexports.default = HTMLElement;\nvar kMarkupPattern = /<!--[^]*?(?=-->)-->|<(\\/?)([a-z][-.:0-9_a-z]*)\\s*([^>]*?)(\\/?)>/ig;\n// <(?<tag>[^\\s]*)(.*)>(.*)</\\k<tag>>\n// <([a-z][-.:0-9_a-z]*)\\s*\\/>\n// <(area|base|br|col|hr|img|input|link|meta|source)\\s*(.*)\\/?>\n// <(area|base|br|col|hr|img|input|link|meta|source)\\s*(.*)\\/?>|<(?<tag>[^\\s]*)(.*)>(.*)</\\k<tag>>\nvar kAttributePattern = /(^|\\s)(id|class)\\s*=\\s*(\"([^\"]+)\"|'([^']+)'|(\\S+))/ig;\nvar kSelfClosingElements = {\n area: true,\n AREA: true,\n base: true,\n BASE: true,\n br: true,\n BR: true,\n col: true,\n COL: true,\n hr: true,\n HR: true,\n img: true,\n IMG: true,\n input: true,\n INPUT: true,\n link: true,\n LINK: true,\n meta: true,\n META: true,\n source: true,\n SOURCE: true,\n embed: true,\n EMBED: true,\n param: true,\n PARAM: true,\n track: true,\n TRACK: true,\n wbr: true,\n WBR: true\n};\nvar kElementsClosedByOpening = {\n li: { li: true, LI: true },\n LI: { li: true, LI: true },\n p: { p: true, div: true, P: true, DIV: true },\n P: { p: true, div: true, P: true, DIV: true },\n b: { div: true, DIV: true },\n B: { div: true, DIV: true },\n td: { td: true, th: true, TD: true, TH: true },\n TD: { td: true, th: true, TD: true, TH: true },\n th: { td: true, th: true, TD: true, TH: true },\n TH: { td: true, th: true, TD: true, TH: true },\n h1: { h1: true, H1: true },\n H1: { h1: true, H1: true },\n h2: { h2: true, H2: true },\n H2: { h2: true, H2: true },\n h3: { h3: true, H3: true },\n H3: { h3: true, H3: true },\n h4: { h4: true, H4: true },\n H4: { h4: true, H4: true },\n h5: { h5: true, H5: true },\n H5: { h5: true, H5: true },\n h6: { h6: true, H6: true },\n H6: { h6: true, H6: true }\n};\nvar kElementsClosedByClosing = {\n li: { ul: true, ol: true, UL: true, OL: true },\n LI: { ul: true, ol: true, UL: true, OL: true },\n a: { div: true, DIV: true },\n A: { div: true, DIV: true },\n b: { div: true, DIV: true },\n B: { div: true, DIV: true },\n i: { div: true, DIV: true },\n I: { div: true, DIV: true },\n p: { div: true, DIV: true },\n P: { div: true, DIV: true },\n td: { tr: true, table: true, TR: true, TABLE: true },\n TD: { tr: true, table: true, TR: true, TABLE: true },\n th: { tr: true, table: true, TR: true, TABLE: true },\n TH: { tr: true, table: true, TR: true, TABLE: true }\n};\nvar frameflag = 'documentfragmentcontainer';\nfunction parse(data) {\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : { lowerCaseTagName: false, comment: false };\n\n var elements = options.blockTextElements || {\n script: true,\n noscript: true,\n style: true,\n pre: true\n };\n var element_names = Object.keys(elements);\n var kBlockTextElements = element_names.map(function (it) {\n return new RegExp(it, 'i');\n });\n var kIgnoreElements = element_names.filter(function (it) {\n return elements[it];\n }).map(function (it) {\n return new RegExp(it, 'i');\n });\n function element_should_be_ignore(tag) {\n return kIgnoreElements.some(function (it) {\n return it.test(tag);\n });\n }\n function is_block_text_element(tag) {\n return kBlockTextElements.some(function (it) {\n return it.test(tag);\n });\n }\n var root = new HTMLElement(null, {});\n var currentParent = root;\n var stack = [root];\n var lastTextPos = -1;\n var match = void 0;\n // https://github.com/taoqf/node-html-parser/issues/38\n data = '<' + frameflag + '>' + data + '</' + frameflag + '>';\n while (match = kMarkupPattern.exec(data)) {\n if (lastTextPos > -1) {\n if (lastTextPos + match[0].length < kMarkupPattern.lastIndex) {\n // if has content\n var text = data.substring(lastTextPos, kMarkupPattern.lastIndex - match[0].length);\n currentParent.appendChild(new _text4.default(text));\n }\n }\n lastTextPos = kMarkupPattern.lastIndex;\n if (match[2] === frameflag) {\n continue;\n }\n if (match[0][1] === '!') {\n // this is a comment\n if (options.comment) {\n // Only keep what is in between <!-- and -->\n var _text = data.substring(lastTextPos - 3, lastTextPos - match[0].length + 4);\n currentParent.appendChild(new _comment2.default(_text));\n }\n continue;\n }\n if (options.lowerCaseTagName) {\n match[2] = match[2].toLowerCase();\n }\n if (!match[1]) {\n // not </ tags\n var attrs = {};\n for (var attMatch; attMatch = kAttributePattern.exec(match[3]);) {\n attrs[attMatch[2].toLowerCase()] = attMatch[4] || attMatch[5] || attMatch[6];\n }\n var tagName = currentParent.rawTagName;\n if (!match[4] && kElementsClosedByOpening[tagName]) {\n if (kElementsClosedByOpening[tagName][match[2]]) {\n stack.pop();\n currentParent = (0, _back2.default)(stack);\n }\n }\n // ignore container tag we add above\n // https://github.com/taoqf/node-html-parser/issues/38\n currentParent = currentParent.appendChild(new HTMLElement(match[2], attrs, match[3]));\n stack.push(currentParent);\n if (is_block_text_element(match[2])) {\n (function () {\n // a little test to find next </script> or </style> ...\n var closeMarkup = '</' + match[2] + '>';\n var index = function () {\n if (options.lowerCaseTagName) {\n return data.toLocaleLowerCase().indexOf(closeMarkup, kMarkupPattern.lastIndex);\n }\n return data.indexOf(closeMarkup, kMarkupPattern.lastIndex);\n }();\n if (element_should_be_ignore(match[2])) {\n var _text2 = void 0;\n if (index === -1) {\n // there is no matching ending for the text element.\n _text2 = data.substr(kMarkupPattern.lastIndex);\n } else {\n _text2 = data.substring(kMarkupPattern.lastIndex, index);\n }\n if (_text2.length > 0) {\n currentParent.appendChild(new _text4.default(_text2));\n }\n }\n if (index === -1) {\n lastTextPos = kMarkupPattern.lastIndex = data.length + 1;\n } else {\n lastTextPos = kMarkupPattern.lastIndex = index + closeMarkup.length;\n match[1] = 'true';\n }\n })();\n }\n }\n if (match[1] || match[4] || kSelfClosingElements[match[2]]) {\n // </ or /> or <br> etc.\n while (true) {\n if (currentParent.rawTagName === match[2]) {\n stack.pop();\n currentParent = (0, _back2.default)(stack);\n break;\n } else {\n var _tagName = currentParent.tagName;\n // Trying to close current tag, and move on\n if (kElementsClosedByClosing[_tagName]) {\n if (kElementsClosedByClosing[_tagName][match[2]]) {\n stack.pop();\n currentParent = (0, _back2.default)(stack);\n continue;\n }\n }\n // Use aggressive strategy to handle unmatching markups.\n break;\n }\n }\n }\n }\n var valid = Boolean(stack.length === 1);\n if (!options.noFix) {\n var _response = root;\n _response.valid = valid;\n\n var _loop = function _loop() {\n // Handle each error elements.\n var last = stack.pop();\n var oneBefore = (0, _back2.default)(stack);\n if (last.parentNode && last.parentNode.parentNode) {\n if (last.parentNode === oneBefore && last.tagName === oneBefore.tagName) {\n // Pair error case <h3> <h3> handle : Fixes to <h3> </h3>\n oneBefore.removeChild(last);\n last.childNodes.forEach(function (child) {\n oneBefore.parentNode.appendChild(child);\n });\n stack.pop();\n } else {\n // Single error <div> <h3> </div> handle: Just removes <h3>\n oneBefore.removeChild(last);\n last.childNodes.forEach(function (child) {\n oneBefore.appendChild(child);\n });\n }\n } else {\n // If it's final element just skip.\n }\n };\n\n while (stack.length > 1) {\n _loop();\n }\n _response.childNodes.forEach(function (node) {\n if (node instanceof HTMLElement) {\n node.parentNode = null;\n }\n });\n return _response;\n }\n var response = new _text4.default(data);\n response.valid = valid;\n return response;\n}\n\n//# sourceURL=webpack://Contentstack/./node_modules/node-html-parser/dist/esm/nodes/html.js?");
/***/ }),
/***/ "./node_modules/node-html-parser/dist/esm/nodes/node.js":
/*!**************************************************************!*\
!*** ./node_modules/node-html-parser/dist/esm/nodes/node.js ***!
\**************************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {
"use strict";
eval("\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _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; }; }();\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\n/**\n * Node Class as base class for TextNode and HTMLElement.\n */\nvar Node = function () {\n function Node() {\n _classCallCheck(this, Node);\n\n this.childNodes = [];\n }\n\n _createClass(Node, [{\n key: \"innerText\",\n get: function get() {\n return this.rawText;\n }\n }]);\n\n return Node;\n}();\n\nexports.default = Node;\n\n//# sourceURL=webpack://Contentstack/./node_modules/node-html-parser/dist/esm/nodes/node.js?");
/***/ }),
/***/ "./node_modules/node-html-parser/dist/esm/nodes/text.js":
/*!**************************************************************!*\
!*** ./node_modules/node-html-parser/dist/esm/nodes/text.js ***!
\**************************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {
"use strict";
eval("\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _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; }; }();\n\nvar _type = __webpack_require__(/*! ./type */ \"./node_modules/node-html-parser/dist/esm/nodes/type.js\");\n\nvar _type2 = _interopRequireDefault(_type);\n\nvar _node = __webpack_require__(/*! ./node */ \"./node_modules/node-html-parser/dist/esm/nodes/node.js\");\n\nvar _node2 = _interopRequireDefault(_node);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\n/**\n * TextNode to contain a text element in DOM tree.\n * @param {string} value [description]\n */\nvar TextNode = function (_Node) {\n _inherits(TextNode, _Node);\n\n function TextNode(rawText) {\n _classCallCheck(this, TextNode);\n\n var _this = _possibleConstructorReturn(this, (TextNode.__proto__ || Object.getPrototypeOf(TextNode)).call(this));\n\n _this.rawText = rawText;\n /**\n * Node Type declaration.\n * @type {Number}\n */\n _this.nodeType = _type2.default.TEXT_NODE;\n return _this;\n }\n /**\n * Get unescaped text value of current node and its children.\n * @return {string} text content\n */\n\n\n _createClass(TextNode, [{\n key: 'toString',\n value: function toString() {\n return this.text;\n }\n }, {\n key: 'text',\n get: function get() {\n return this.rawText;\n }\n /**\n * Detect if the node contains only white space.\n * @return {bool}\n */\n\n }, {\n key: 'isWhitespace',\n get: function get() {\n return (/^(\\s| )*$/.test(this.rawText)\n );\n }\n }]);\n\n return TextNode;\n}(_node2.default);\n\nexports.default = TextNode;\n\n//# sourceURL=webpack://Contentstack/./node_modules/node-html-parser/dist/esm/nodes/text.js?");
/***/ }),
/***/ "./node_modules/node-html-parser/dist/esm/nodes/type.js":
/*!**************************************************************!*\
!*** ./node_modules/node-html-parser/dist/esm/nodes/type.js ***!
\**************************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {
"use strict";
eval("\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nvar NodeType;\n(function (NodeType) {\n NodeType[NodeType[\"ELEMENT_NODE\"] = 1] = \"ELEMENT_NODE\";\n NodeType[NodeType[\"TEXT_NODE\"] = 3] = \"TEXT_NODE\";\n NodeType[NodeType[\"COMMENT_NODE\"] = 8] = \"COMMENT_NODE\";\n})(NodeType || (NodeType = {}));\nexports.default = NodeType;\n\n//# sourceURL=webpack://Contentstack/./node_modules/node-html-parser/dist/esm/nodes/type.js?");
/***/ }),
/***/ "./node_modules/webpack/buildin/amd-options.js":
/*!****************************************!*\
!*** (webpack)/buildin/amd-options.js ***!
\****************************************/
/*! no static exports found */
/***/ (function(module, exports) {
eval("/* WEBPACK VAR INJECTION */(function(__webpack_amd_options__) {/* globals __webpack_amd_options__ */\nmodule.exports = __webpack_amd_options__;\n\n/* WEBPACK VAR INJECTION */}.call(this, {}))\n\n//# sourceURL=webpack://Contentstack/(webpack)/buildin/amd-options.js?");
/***/ }),
/***/ "./node_modules/webpack/buildin/module.js":
/*!***********************************!*\
!*** (webpack)/buildin/module.js ***!
\***********************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {
"use strict";
eval("\n\nmodule.exports = function (module) {\n\tif (!module.webpackPolyfill) {\n\t\tmodule.deprecate = function () {};\n\t\tmodule.paths = [];\n\t\t// module.parent = undefined by default\n\t\tif (!module.children) module.children = [];\n\t\tObject.defineProperty(module, \"loaded\", {\n\t\t\tenumerable: true,\n\t\t\tget: function get() {\n\t\t\t\treturn module.l;\n\t\t\t}\n\t\t});\n\t\tObject.defineProperty(module, \"id\", {\n\t\t\tenumerable: true,\n\t\t\tget: function get() {\n\t\t\t\treturn module.i;\n\t\t\t}\n\t\t});\n\t\tmodule.webpackPolyfill = 1;\n\t}\n\treturn module;\n};\n\n//# sourceURL=webpack://Contentstack/(webpack)/buildin/module.js?");
/***/ }),
/***/ "./src/core/cache-provider/index.js":
/*!******************************************!*\
!*** ./src/core/cache-provider/index.js ***!
\******************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {
"use strict";
eval("\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _localstorage = __webpack_require__(/*! ./localstorage */ \"./src/core/cache-provider/localstorage.js\");\n\nvar _localstorage2 = _interopRequireDefault(_localstorage);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar CacheProvider = {};\n\nCacheProvider.providers = function (provider) {\n if (provider) {\n return _localstorage2.default;\n } else {\n console.error(\"Kindly provide valid provider.\");\n }\n};\n\nCacheProvider.policies = {\n IGNORE_CACHE: -1,\n ONLY_NETWORK: 0,\n CACHE_ELSE_NETWORK: 1,\n NETWORK_ELSE_CACHE: 2,\n CACHE_THEN_NETWORK: 3\n};\n\nexports.default = CacheProvider;\n\n//# sourceURL=webpack://Contentstack/./src/core/cache-provider/index.js?");
/***/ }),
/***/ "./src/core/cache-provider/localstorage.js":
/*!*************************************************!*\
!*** ./src/core/cache-provider/localstorage.js ***!
\*************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {
"use strict";
eval("\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _cache = __webpack_require__(/*! ./../cache */ \"./src/core/cache.js\");\n\nvar cache = _interopRequireWildcard(_cache);\n\nfunction _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) newObj[key] = obj[key]; } } newObj.default = obj; return newObj; } }\n\nvar localStorage = {};\n\nlocalStorage.get = function (key, callback) {\n try {\n callback(null, cache.get(key));\n } catch (e) {\n callback(e);\n }\n};\n\nlocalStorage.set = function (key, value, callback) {\n try {\n if (key && value) cache.set(key, value);\n callback();\n } catch (e) {\n callback(e);\n }\n};\n\nfunction clearValuesForKey(keyArray, append) {\n if (!append && keyArray && keyArray.length) keyArray.push('');\n var _key = void 0,\n keys = cache.getKeys(),\n storage = cache.getStorage();\n if (!keyArray || !keyArray.length) {\n for (var i = 0, _i = keys.length; i < _i; i++) {\n delete storage[keys[i]];\n }\n } else {\n _key = keyArray.join('.');\n for (var _i2 = 0, _i3 = keys.length; _i2 < _i3; _i2++) {\n if (keys[_i2] && keys[_i2].indexOf(_key) === 0) delete storage[keys[_i2]];\n }\n }\n}\n\nlocalStorage.clearByContentType = function () {\n try {\n if (arguments.length === 2 || arguments.length === 3) {\n var args = Array.prototype.slice.call(arguments);\n var _callback = args.splice(-1, 1).pop();\n var valueArray = [];\n valueArray.push.apply(valueArray, args);\n clearValuesForKey(valueArray);\n _callback();\n }\n } catch (e) {\n callback(e);\n }\n};\n\nlocalStorage.clearByQuery = function (query, callback) {\n try {\n var keys = cache.getKeys(),\n storage = cache.getStorage();\n for (var i = 0, _i = keys.length; i < _i; i++) {\n if (keys[i] && ~keys[i].indexOf(query)) delete storage[keys[i]];\n }\n callback();\n } catch (e) {\n callback(e);\n }\n};\n\nlocalStorage.clearAll = function (callback) {\n try {\n clearValuesForKey();\n callback();\n } catch (e) {\n callback(e);\n }\n};\n\nexports.default = localStorage;\n\n//# sourceURL=webpack://Contentstack/./src/core/cache-provider/localstorage.js?");
/***/ }),
/***/ "./src/core/cache.js":
/*!***************************!*\
!*** ./src/core/cache.js ***!
\***************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {
"use strict";
eval("\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; };\n\nexports.get = get;\nexports.set = set;\nexports.getStorage = getStorage;\nexports.getKeys = getKeys;\n\nvar _utils = __webpack_require__(/*! ./lib/utils.js */ \"./src/core/lib/utils.js\");\n\nvar Utils = _interopRequireWildcard(_utils);\n\nvar _localstorage = __webpack_require__(/*! runtime/localstorage.js */ \"./src/runtime/node/localstorage.js\");\n\nvar _localstorage2 = _interopRequireDefault(_localstorage);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) newObj[key] = obj[key]; } } newObj.default = obj; return newObj; } }\n\nfunction get(key) {\n var data = _localstorage2.default.getItem(key);\n try {\n data = JSON.parse(data);\n } catch (e) {\n return data;\n }\n return data || null;\n};\n\nfunction set(key, data) {\n try {\n if ((typeof data === 'undefined' ? 'undefined' : _typeof(data)) === 'object') {\n _localstorage2.default.setItem(key, JSON.stringify(data));\n } else {\n _localstorage2.default.setItem(key, data);\n }\n } catch (error) {}\n};\n\nfunction getStorage() {\n return _localstorage2.default || null;\n};\n\nfunction getKeys() {\n return _localstorage2.default ? Object.keys(_localstorage2.default) : [];\n};\n\n//# sourceURL=webpack://Contentstack/./src/core/cache.js?");
/***/ }),
/***/ "./src/core/contentstack.js":
/*!**********************************!*\
!*** ./src/core/contentstack.js ***!
\**********************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {
"use strict";
eval("\n\nvar _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; }; }();\n\nvar _stack = __webpack_require__(/*! ./stack */ \"./src/core/stack.js\");\n\nvar _stack2 = _interopRequireDefault(_stack);\n\nvar _index = __webpack_require__(/*! ./cache-provider/index */ \"./src/core/cache-provider/index.js\");\n\nvar _index2 = _interopRequireDefault(_index);\n\nvar _contentstackregion = __webpack_require__(/*! ./contentstackregion */ \"./src/core/contentstackregion.js\");\n\nvar _contentstackregion2 = _interopRequireDefault(_contentstackregion);\n\nvar _utils = __webpack_require__(/*! @contentstack/utils */ \"./node_modules/@contentstack/utils/dist/index.es.js\");\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\n/**\n* @class \n Contentstack \n* @description Creates an instance of `Contentstack`.\n* @instance\n*/\n\nvar Contentstack = function () {\n\tfunction Contentstack() {\n\t\t_classCallCheck(this, Contentstack);\n\n\t\t/**\n * @memberOf Contentstack\n * @description CachePolicy contains different cache policies constants.\n * @example\n * Contentstack.CachePolicy.IGNORE_CACHE\n * Contentstack.CachePolicy.ONLY_NETWORK\n * Contentstack.CachePolicy.CACHE_ELSE_NETWORK\n * Contentstack.CachePolicy.NETWORK_ELSE_CACHE\n * Contentstack.CachePolicy.CACHE_THEN_NETWORK\n */\n\t\tthis.CachePolicy = _index2.default.policies;\n\t\tthis.Region = _contentstackregion2.default;\n\n\t\tthis.Utils = {\n\t\t\t/**\n * @memberof Contentstack\n * @description Renders embedded objects in Rich text from Entry or Multiple Entry Object.\n * \n * @param {EntryEmbedable| EntryEmbedable[]} entry - Objects that contains RTE with embedded objects\n * @param {string[]} keyPaths - Key paths for RTE contents in Entry object\n * @param {RenderOption?} renderOption - Optional render options to render content\n */\n\t\t\trender: _utils.render,\n\t\t\t/**\n * @memberof Contentstack\n * @description Renders embedded objects in Rich text from String or String of array.\n * @param {string | string[]} content - RTE content to render \n * @param {EntryEmbedable} options.entry - Entry object containing embedded objects\n * @param {RenderOption?} options.renderOption - Optional render options to render content\n */\n\t\t\trenderContent: _utils.renderContent\n\t\t};\n\t}\n\t/**\n \n * @memberOf Contentstack\n */\n\n\n\t_createClass(Contentstack, [{\n\t\tkey: \"Stack\",\n\t\tvalue: function Stack() {\n\t\t\tfor (var _len = arguments.length, stack_arguments = Array(_len), _key = 0; _key < _len; _key++) {\n\t\t\t\tstack_arguments[_key] = arguments[_key];\n\t\t\t}\n\n\t\t\treturn new (Function.prototype.bind.apply(_stack2.default, [null].concat(stack_arguments)))();\n\t\t}\n\t}]);\n\n\treturn Contentstack;\n}();\n\nmodule.exports = new Contentstack();\n\n//# sourceURL=webpack://Contentstack/./src/core/contentstack.js?");
/***/ }),
/***/ "./src/core/contentstackregion.js":
/*!****************************************!*\
!*** ./src/core/contentstackregion.js ***!
\****************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {
"use strict";
eval("\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nvar ContentstackRegion = {\n EU: \"eu\",\n US: \"us\"\n};\n\nexports.default = ContentstackRegion;\n//module.exports = ContentstackRegion;\n\n//# sourceURL=webpack://Contentstack/./src/core/contentstackregion.js?");
/***/ }),
/***/ "./src/core/lib/request.js":
/*!*********************************!*\
!*** ./src/core/lib/request.js ***!
\*********************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {
"use strict";
eval("\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; };\n\nexports.default = Request;\n\nvar _utils = __webpack_require__(/*! ./utils.js */ \"./src/core/lib/utils.js\");\n\nvar Utils = _interopRequireWildcard(_utils);\n\nvar _http = __webpack_require__(/*! runtime/http.js */ \"./src/runtime/node/http.js\");\n\nvar _http2 = _interopRequireDefault(_http);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) newObj[key] = obj[key]; } } newObj.default = obj; return newObj; } }\n\n//JS SDK version\nvar version = '3.13.0';\nvar environment = void 0,\n api_key = void 0;\nfunction Request(options, fetchOptions) {\n return new Promise(function (resolve, reject) {\n var queryParams = void 0;\n var serialize = function serialize(obj, prefix) {\n\n var str = [],\n p = void 0;\n if ((typeof obj === \"undefined\" ? \"undefined\" : _typeof(obj)) === \"object\" && obj.length !== undefined) {\n for (var i = 0, _i = obj.length; i < _i; i++) {\n str.push(prefix + '[]=' + obj[i]);\n }\n } else {\n for (p in obj) {\n var k = prefix ? prefix + \"[\" + p + \"]\" : p,\n v = obj[p];\n str.push(v !== null && (typeof v === \"undefined\" ? \"undefined\" : _typeof(v)) === \"object\" && p !== 'query' ? serialize(v, k) : k + \"=\" + encodeURIComponent(p !== 'query' ? v : JSON.stringify(v)));\n }\n }\n return str.join(\"&\");\n };\n\n var url = options.url,\n headers = options.headers;\n\n // setting headers\n headers['Content-Type'] = 'application/json; charset=UTF-8';\n headers['X-User-Agent'] = 'contentstack-nodejs/' + version;\n\n if (options.body && _typeof(options.body) === 'object') {\n delete options.body._method;\n if (_typeof(options.body.query) === \"object\" && Object.keys(options.body.query).length === 0) delete options.body.query;\n queryParams = serialize(options.body);\n }\n\n return fetchRetry(url + '?' + queryParams, headers, fetchOptions.retryDelay, fetchOptions.retryLimit, fetchOptions, resolve, reject);\n });\n}\n\nfunction wait(retryDelay) {\n return new Promise(function (resolve) {\n setTimeout(resolve, retryDelay);\n });\n}\nasync function safeParseJSON(response) {\n var body = await response.text();\n}\nfunction fetchRetry(url, headers) {\n var retryDelay = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 300;\n var retryLimit = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : 5;\n var fetchOptions = arguments[4];\n var resolve = arguments[5];\n var reject = arguments[6];\n\n var option = Object.assign({\n method: 'GET',\n headers: headers,\n timeout: 30000\n }, fetchOptions);\n\n function onError(error) {\n if (retryLimit === 0) {\n reject(error);\n } else {\n var msDelay = retryDelay;\n retryLimit = retryLimit - 1;\n var retryCount = fetchOptions.retryLimit - retryLimit;\n if (fetchOptions.retryDelayOptions) {\n if (fetchOptions.retryDelayOptions.base) {\n msDelay = fetchOptions.retryDelayOptions.base * retryCount;\n } else if (fetchOptions.retryDelayOptions.customBackoff) {\n msDelay = fetchOptions.retryDelayOptions.customBackoff(retryCount, error);\n }\n }\n wait(msDelay).then(function () {\n return fetchRetry(url, headers, retryDelay, retryLimit, fetchOptions, resolve, reject);\n });\n }\n }\n (0, _http2.default)(url, option).then(function (response) {\n var data = response.json();\n if (response.ok && response.status === 200) {\n resolve(data);\n } else {\n data.then(function (json) {\n if (fetchOptions.retryCondition && fetchOptions.retryCondition(response)) {\n onError(json);\n } else {\n reject(json);\n }\n }).catch(function () {\n reject({ status: response.status, statusText: response.statusText });\n });\n }\n }).catch(function (error) {\n reject(error);\n });\n}\n\n//# sourceURL=webpack://Contentstack/./src/core/lib/request.js?");
/***/ }),
/***/ "./src/core/lib/utils.js":
/*!*******************************!*\
!*** ./src/core/lib/utils.js ***!
\*******************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {
"use strict";
eval("\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _typeof2 = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; };\n\nexports.transform = transform;\nexports._type = _type;\nexports.mergeDeep = mergeDeep;\nexports.merge = merge;\nexports.isBrowser = isBrowser;\nexports.parseQueryFromParams = parseQueryFromParams;\nexports.getHash = getHash;\nexports.generateHash = generateHash;\nexports.resultWrapper = resultWrapper;\nexports.spreadResult = spreadResult;\nexports.sendRequest = sendRequest;\n\nvar _request = __webpack_require__(/*! ./request */ \"./src/core/lib/request.js\");\n\nvar _request2 = _interopRequireDefault(_request);\n\nvar _result = __webpack_require__(/*! ../modules/result */ \"./src/core/modules/result.js\");\n\nvar _result2 = _interopRequireDefault(_result);\n\nvar _config = __webpack_require__(/*! ../../../config */ \"./config.js\");\n\nvar _config2 = _interopRequireDefault(_config);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * @method addSpread\n * @description method to add the spread.\n */\n(function addSpread() {\n if (Promise.prototype.spread) return;\n Promise.prototype.spread = function (fn, errFunc) {\n errFunc = errFunc || function (err) {};\n return this.then(function (args) {\n return fn.apply(fn, args);\n }).catch(function (err) {\n errFunc(err);\n });\n };\n})();\n\nfunction transform(type) {\n return function () {\n this._query[type] = this._query[type] || {};\n switch (arguments.length) {\n case 1:\n if (Array.isArray(arguments[0]) || typeof arguments[0] === \"string\") {\n var query = this._query[type]['BASE'] || [];\n query = query.concat(arguments[0]);\n this._query[type]['BASE'] = query;\n return this;\n } else {\n console.error(\"Kindly provide valid parameters\");\n }\n break;\n case 2:\n if (typeof arguments[0] === \"string\" && (Array.isArray(arguments[1]) || typeof arguments[1] === \"string\")) {\n var _query2 = this._query[type][arguments[0]] || [];\n _query2 = _query2.concat(arguments[1]);\n this._query[type][arguments[0]] = _query2;\n return this;\n } else {\n console.error(\"Kindly provide valid parameters\");\n }\n break;\n default:\n console.error(\"Kindly provide valid parameters\");\n }\n };\n}\n\nfunction _type(val) {\n var _typeof = void 0,\n __typeof = typeof val === 'undefined' ? 'undefined' : _typeof2(val);\n switch (__typeof) {\n case 'object':\n _typeof = __typeof;\n if (Array.isArray(val)) {\n __typeof = 'array';\n }\n break;\n default:\n _typeof = __typeof;\n }\n return __typeof;\n};\n\n// merge two objects\nfunction mergeDeep(target, source) {\n var self = this;\n var _merge_recursive = function _merge_recursive(target, source) {\n for (var key in source) {\n if (self._type(source[key]) == 'object' && self._type(target[key]) == self._type(source[key])) {\n _merge_recursive(target[key], source[key]);\n } else if (self._type(source[key]) == 'array' && self._type(target[key]) == self._type(source[key])) {\n target[key] = target[key].concat(source[key]);\n } else {\n target[key] = source[key];\n }\n }\n };\n _merge_recursive(target, source);\n return target;\n};\n\n// merge two objects\nfunction merge(target, source) {\n if (target && source) {\n for (var key in source) {\n target[key] = source[key];\n }\n }\n return target;\n};\n\n// return true if process is running in browser else false\nfunction isBrowser() {\n return typeof window !== \"undefined\" && (typeof process === 'undefined' ? 'undefined' : _typeof2(process)) === \"object\" && process.title === \"browser\";\n};\n\n// return the query from the params\nfunction parseQueryFromParams(queryObject, single, toJSON) {\n if (queryObject && queryObject.requestParams) {\n var _query = merge({}, queryObject.requestParams.body ? queryObject.requestParams.body.query || {} : {});\n if (_query.environment_uid) {\n delete _query.environment_uid;\n _query.environment = queryObject.environment;\n }\n _query.environment = queryObject.environment;\n return {\n content_type_uid: queryObject.content_type_uid,\n locale: _query.locale || 'en-us',\n query: _query,\n entry_uid: queryObject.entry_uid,\n asset_uid: queryObject.asset_uid,\n single: single || \"false\",\n toJSON: toJSON || \"false\",\n api_key: queryObject.requestParams.headers ? queryObject.requestParams.headers.api_key : \"\"\n };\n }\n};\n\n// returrn the hash value of the query\nfunction getHash(query) {\n try {\n var hashValue = generateHash(JSON.stringify(query)),\n keyArray = [];\n keyArray.push(query.content_type_uid);\n keyArray.push(query.locale);\n if (query.entry_uid) keyArray.push(query.entry_uid);\n if (query.asset_uid) keyArray.push(query.asset_uid);\n keyArray.push(hashValue);\n return keyArray.join('.');\n } catch (e) {}\n};\n\n// return the hash value of the string\nfunction generateHash(str) {\n var hash = 0,\n i = void 0,\n chr = void 0,\n len = void 0;\n if (str.length === 0) return hash;\n for (i = 0, len = str.length; i < len; i++) {\n chr = str.charCodeAt(i);\n hash = (hash << 5) - hash + chr;\n hash |= 0; // Convert to 32bit integer\n }\n return hash < -1 ? hash * -1 : hash;\n};\n\n// generate the Result object\nfunction resultWrapper(result) {\n if (result && typeof result.entries !== 'undefined') {\n if (result.entries && result.entries.length) {\n for (var i = 0, _i = result.entries.length; i < _i; i++) {\n result.entries[i] = (0, _result2.default)(result.entries[i]);\n }\n } else {\n result.entries = [];\n }\n } else if (result && result.assets && typeof result.assets !== 'undefined') {\n if (result.assets && result.assets.length) {\n for (var j = 0, _j = result.assets.length; j < _j; j++) {\n result.assets[j] = (0, _result2.default)(result.assets[j]);\n }\n } else {\n result.assets = [];\n }\n } else if (result && typeof result.entry !== 'undefined') {\n result.entry = (0, _result2.default)(result.entry);\n } else if (result && typeof result.asset !== 'undefined') {\n result.asset = (0, _result2.default)(result.asset);\n } else if (result && typeof result.items !== 'undefined') {\n result.items = (0, _result2.default)(result.items).toJSON();\n }\n\n return result;\n};\n\n// // spread the result object\n// export function spreadResult(result) {\n// let _results = [];\n// if (result && Object.keys(result).length) {\n// if (typeof result.entries !== 'undefined') _results.push(result.entries);\n// if (typeof result.assets !== 'undefined') _results.push(result.assets);\n// if (typeof result.content_type !== 'undefined' || typeof result.schema !== 'undefined') _results.push(result.content_type || result.schema);\n// if (typeof result.count !== 'undefined') _results.push(result.count);\n// if (typeof result.entry !== 'undefined') _results = result.entry;\n// if (typeof result.asset !== 'undefined') _results = result.asset;\n// if (typeof result.items !== 'undefined') _results.push(result);\n// }\n// return _results;\n// };\n\n// spread the result object\nfunction spreadResult(result) {\n var _results = [];\n if (result && Object.keys(result).length) {\n if (typeof result.entries !== 'undefined') {\n _results.push(result.entries);\n if (result.content_type) {\n _results['schema'] = result.content_type;\n }\n }\n if (typeof result.assets !== 'undefined') _results.push(result.assets);\n if (typeof result.content_type !== 'undefined' || typeof result.schema !== 'undefined') _results.push(result.content_type || result.schema);\n if (typeof result.count !== 'undefined') _results.push(result.count);\n if (typeof result.entry !== 'undefined') {\n _results = result.entry;\n if (result.schema) {\n _results['schema'] = result.schema;\n }\n if (result.content_type) {\n _results['content_type'] = result.content_type;\n }\n }\n if (typeof result.asset !== 'undefined') _results = result.asset;\n if (typeof result.items !== 'undefined') _results.push(result);\n }\n return _results;\n};\n\nfunction sendRequest(queryObject, options) {\n\n var env_uid = queryObject.environment_uid;\n if (env_uid) {\n queryObject._query.environment_uid = env_uid;\n } else {\n if (queryObject._query) {\n queryObject._query.environment = queryObject.environment;\n } else {\n queryObject['_query'] = {};\n queryObject._query['environment'] = queryObject.environment;\n }\n }\n\n var self = queryObject;\n var continueFlag = false;\n var cachePolicy = typeof self.queryCachePolicy !== 'undefined' ? self.queryCachePolicy : self.cachePolicy;\n var tojson = typeof self.tojson !== 'undefined' ? self.tojson : false;\n var isSingle = self.entry_uid || self.singleEntry || self.asset_uid ? true : false;\n var hashQuery = getHash(parseQueryFromParams(self, isSingle, tojson));\n if (queryObject.requestParams.url.includes(_config2.default.urls.sync)) {\n cachePolicy = -1;\n }\n /**\n for new api v3\n */\n if (queryObject && queryObject.requestParams && queryObject.requestParams.body && queryObject.requestParams.body.query) {\n var cloneQueryObj = JSON.parse(JSON.stringify(queryObject.requestParams.body.query));\n if ((typeof cloneQueryObj === 'undefined' ? 'undefined' : _typeof2(cloneQueryObj)) !== 'object') {\n cloneQueryObj = JSON.parse(cloneQueryObj);\n }\n delete queryObject.requestParams.body.query;\n queryObject.requestParams.body = merge(queryObject.requestParams.body, cloneQueryObj);\n }\n\n var getCacheCallback = function getCacheCallback() {\n return function (err, entries) {\n return new Promise(function (resolve, reject) {\n try {\n if (err) throw err;\n if (!tojson) entries = resultWrapper(entries);\n resolve(spreadResult(entries));\n } catch (e) {\n reject(e);\n }\n });\n };\n };\n\n var callback = function callback(continueFlag, resolve, reject) {\n if (continueFlag) {\n (0, _request2.default)(queryObject.requestParams, options).then(function (data) {\n try {\n self.entry_uid = self.asset_uid = self.tojson = self.queryCachePolicy = undefined;\n var entries = {};\n var syncstack = {};\n if (queryObject.singleEntry) {\n queryObject.singleEntry = false;\n if (data.schema) entries.schema = data.schema;\n if (data.content_type) {\n entries.content_type = data.content_type;\n delete entries.schema;\n }\n if (data.entries && data.entries.length) {\n entries.entry = data.entries[0];\n } else if (data.assets && data.assets.length) {\n entries.assets = data.assets[0];\n } else {\n if (cachePolicy === 2 && self.provider !== null) {\n self.provider.get(hashQuery, getCacheCallback());\n } else {\n return reject({ error_code: 141, error_message: 'The requested entry doesn\\'t exist.' });\n }\n return;\n }\n } else if (data.items) {\n syncstack = {\n items: data.items,\n pagination_token: data.pagination_token,\n sync_token: data.sync_token,\n total_count: data.total_count\n };\n } else {\n entries = data;\n }\n\n if (cachePolicy !== -1 && self.provider !== null) {\n self.provider.set(hashQuery, entries, function (err) {\n try {\n if (err) throw err;\n if (!tojson) entries = resultWrapper(entries);\n return resolve(spreadResult(entries));\n } catch (e) {\n return reject(e);\n }\n });\n return resolve(spreadResult(entries));\n }\n\n if (Object.keys(syncstack).length) {\n return resolve(syncstack);\n }\n\n if (!tojson) entries = resultWrapper(entries);\n return resolve(spreadResult(entries));\n } catch (e) {\n return reject({\n message: e.message\n });\n }\n }.bind(self)).catch(function (error) {\n if (cachePolicy === 2 && self.provider !== null) {\n self.provider.get(hashQuery, getCacheCallback());\n } else {\n return reject(error);\n }\n });\n }\n };\n switch (cachePolicy) {\n case 1:\n return new Promise(function (resolve, reject) {\n if (self.provider !== null) {\n self.provider.get(hashQuery, function (err, _data) {\n try {\n if (err || !_data) {\n callback(true, resolve, reject);\n } else {\n if (!tojson) _data = resultWrapper(_data);\n return resolve(spreadResult(_data));\n }\n } catch (e) {\n return reject(e);\n }\n });\n } else {\n callback(true, resolve, reject);\n }\n });\n break;\n case 2:\n case 0:\n case undefined:\n case -1:\n return new Promise(function (resolve, reject) {\n callback(true, resolve, reject);\n });\n };\n\n if (cachePolicy === 3) {\n\n var promise = new Promise(function (resolve, reject) {\n if (self.provider !== null) {\n self.provider.get(hashQuery, function (err, _data) {\n try {\n if (err || !_data) {\n reject(err);\n //reject(Error(\"It broke\"));\n } else {\n if (!tojson) _data = resultWrapper(_data);\n resolve(spreadResult(_data));\n }\n } catch (e) {\n reject(e);\n }\n });\n }\n });\n\n return promise.then(function () {\n return new Promise(function (resolve, reject) {\n callback(true, resolve, reject);\n });\n }).catch(function (error) {\n return new Promise(function (resolve, reject) {\n callback(true, resolve, reject);\n });\n console.error(error);\n });\n }\n};\n\n//# sourceURL=webpack://Contentstack/./src/core/lib/utils.js?");
/***/ }),
/***/ "./src/core/modules/assets.js":
/*!************************************!*\
!*** ./src/core/modules/assets.js ***!
\************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {
"use strict";
eval("\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _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; }; }();\n\nvar _utils = __webpack_require__(/*! ../lib/utils */ \"./src/core/lib/utils.js\");\n\nvar Utils = _interopRequireWildcard(_utils);\n\nvar _stack = __webpack_require__(/*! ../stack */ \"./src/core/stack.js\");\n\nvar _stack2 = _interopRequireDefault(_stack);\n\nvar _query = __webpack_require__(/*! ./query */ \"./src/core/modules/query.js\");\n\nvar _query2 = _interopRequireDefault(_query);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) newObj[key] = obj[key]; } } newObj.default = obj; return newObj; } }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\n/**\n * @class \n Assets \n* @summary Creates an instance of `Assets`.\n* @description Retrieves all assets of a stack by default. To retrieve a single asset, specify its UID.\n* @param {String} uid - uid of asset you want to retrieve\n* @example \n* let data = Stack.Assets('bltsomething123').toJSON().fetch()\n* data\n* .then(function(result) {\n* // ‘result’ is a single asset object of specified uid \n* }, function(error) {\n* // error function\n* })\n* @example \n* // Retrieves all assets*\n* let data = Stack.Assets().Query().toJSON().find()\n* data\n* .then(function(result) {\n* // All the asset with limit of 100\n* // Use skip and limit functions to paginate\n* // ‘result’ will display all assets present in stack \n* }, function(error) {\n* // error function\n* })\n* @returns {Assets}\n* @instance\n*/\n\nvar Assets = function () {\n function Assets() {\n _classCallCheck(this, Assets);\n\n this._query = {};\n this.only = Utils.transform('only');\n return this;\n }\n\n /**\n * Converts your response into plain JavasScript object\n * @memberOf Assets\n * @example var Query = Stack.ContentType('blog').Query()\n Query \n .toJSON()\n .find()\n .then(function (result) {\n // 'result' is an object which content the data in json object form\n },function (error) {\n // error function\n })\n * @returns {Assets}\n * @instance\n */\n\n _createClass(Assets, [{\n key: 'toJSON',\n value: function toJSON() {\n this.tojson = true;\n return this;\n }\n\n /**\n * Includes query parameters in your queries.\n * @memberOf Assets\n * @example var data = Stack.Assets(assetUid).addParam('include_dimension', 'true').toJSON().fetch()\n * data.then(function (result) {\n * // 'result' is an object which content the data including count in json object form\n * },function (error) {\n * // error function\n * })\n * @returns {Assets}\n * @instance\n */\n\n }, {\n key: 'addParam',\n value: function addParam(key, value) {\n if (key && typeof key === 'string' && value && typeof value === 'string') {\n this._query[key] = value;\n return this;\n } else {\n console.error(\"Kindly provide a valid parameters.\");\n }\n }\n\n /**\n * @method includeFallback\n * @memberOf Entry\n * @description Include the fallback locale publish content, if specified locale content is not publish.\n * @example stack.ContentType(contentType_uid).Entry(entry_uid).includeFallback().fetch()\n * @returns {Asset}\n * @instance\n */\n\n }, {\n key: 'includeFallback',\n value: function includeFallback() {\n this._query['include_fallback'] = true;\n return this;\n }\n\n /**\n * Fetches a particular asset based on the provided asset UID.\n * @memberOf Assets\n * @example\n * Stack.Assets('assets_uid').toJSON().fetch()\n * @example\n * Stack.Assets('assets_uid').toJSON().fetch({\n * \n * })\n * @returns {promise}\n * @instance\n */\n\n }, {\n key: 'fetch',\n value: function fetch(fetchOptions) {\n if (this.asset_uid) {\n this.requestParams = {\n method: 'POST',\n headers: this.headers,\n url: this.config.protocol + \"://\" + this.config.host + ':' + this.config.port + '/' + this.config.version + this.config.urls.assets + this.asset_uid,\n body: {\n _method: 'GET',\n query: this._query\n }\n };\n var options = Object.assign({}, this.fetchOptions, fetchOptions);\n return Utils.sendRequest(this, options);\n } else {\n console.error(\"Kindly provide an asset uid. e.g. .Assets('bltsomething123')\");\n }\n }\n }]);\n\n return Assets;\n}();\n\nexports.default = Assets;\n\n//# sourceURL=webpack://Contentstack/./src/core/modules/assets.js?");
/***/ }),
/***/ "./src/core/modules/entry.js":
/*!***********************************!*\
!*** ./src/core/modules/entry.js ***!
\***********************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {
"use strict";
eval("\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; };\n\nvar _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; }; }();\n\nvar _utils = __webpack_require__(/*! ../lib/utils */ \"./src/core/lib/utils.js\");\n\nvar Utils = _interopRequireWildcard(_utils);\n\nvar _stack = __webpack_require__(/*! ../stack */ \"./src/core/stack.js\");\n\nvar _stack2 = _interopRequireDefault(_stack);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) newObj[key] = obj[key]; } } newObj.default = obj; return newObj; } }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\n/**\n * @class \n Entry \n* @summary Creates an instance of `Entry`. \n* @description An initializer is responsible for creating Entry object.\n* @param {String} uid - uid of the entry\n* @example\n* let Entry = Stack.ContentType('example').Entry('entry_uid');\n* @returns {Entry}\n* @instance\n*/\n\nvar Entry = function () {\n function Entry() {\n _classCallCheck(this, Entry);\n\n this._query = {};\n /**\n * @method only\n * @memberOf Entry\n * @description Displays values of only the specified fields of entries or assets in the response\n * @param {String} [key=BASE] - Assets: </br>\n * <p>Retrieves specified field of asset</p>\n * @param {String} - Entries:</br>\n * <p>- retrieves default fields of the schema.</p>\n * <p>- referenced_content-type-uid : retrieves fields of the referred content type.</p>\n * @param {Array} values - array of fields that you want to display in the response\n * @example\n * <caption> The only function with field_uid will include the data of only the specified fields for each entry and exclude the data of all other fields. </caption>\n * Stack.ContentType('contentTypeUid').Query().only('title').toJSON().find()\n * @example\n * <caption> The only function with an array of field_uids will include multiple fields for each entry and exclude the data of all other fields.</caption>\n * Stack.ContentType('contentTypeUid').Query().only(['title','description']).toJSON().find()\n * @example\n * <caption> In only, we have the only with a reference parameter, where you need to enter the UID of the reference field in place of \"reference_field_uid\", and the second parameter to include the data of only the specified field_uid for each entry and exclude the data of all other fields.</caption>\n * Stack.ContentType('contentTypeUid').Query().includeReference('reference_field_uid').only('reference_field_uid','title').toJSON().find()\n * @example\n * <caption> In only, we have the only with a reference parameter with an array, where you need to enter the UID of the reference field in place of \"reference_field_uid\", and the second parameter with an array of fields to include the data of only the specified array of field_uids for each entry and exclude the data of all other fields.</caption>\n * Stack.ContentType('contentTypeUid').Query().includeReference('reference_field_uid').only('reference_field_uid', ['title', 'description']).toJSON().find()\n * \n * @returns {Entry}\n * @instance\n */\n this.only = Utils.transform('only');\n /**\n * @method except\n * @memberOf Entry\n * @description Displays all data of an entries or assets excluding the data of the specified fields.\n * @param {String} [key=BASE] - BASE (default value) - retrieves default fields of the schema.\n - referenced_content-type-uid - retrieves fields of the referred content type.\n * @param {Array} values - array of fields that you want to skip in the response\n * @example\n * <caption> The except function with field_uid will exclude the data of only the specified fields for each entry and includes the data of all other fields. </caption>\n * Stack.ContentType('contentTypeUid').Query().except('title').toJSON().find()\n * @example\n * <caption> The except function with an array of field_uids will except multiple fields for each entry and include the data of all other fields.</caption>\n * Stack.ContentType('contentTypeUid').Query().except(['title','description']).toJSON().find()\n * @example\n * <caption> In except, we have the only with a reference parameter, where you need to enter the UID of the reference field in place of \"reference_field_uid\", and the second parameter to except the data of only the specified field_uid for each entry and include the data of all other fields.</caption>\n * Stack.ContentType('contentTypeUid').Query().includeReference('reference_field_uid').except('reference_field_uid','title').toJSON().find()\n * @example\n * <caption> In except, we have the only with a reference parameter with an array, where you need to enter the UID of the reference field in place of \"reference_field_uid\", and the second parameter with an array of fields to except the data of only the specified array of field_uids for each entry and include the data of all other fields.</caption>\n * Stack.ContentType('contentTypeUid').Query().includeReference('reference_field_uid').except('reference_field_uid', ['title', 'description']).toJSON().find()\n * @returns {Entry}\n * @instance \n */\n this.except = Utils.transform('except');\n return this;\n }\n\n _createClass(Entry, [{\n key: \"setCacheProvider\",\n value: function setCacheProvider(provider) {\n if (provider && (typeof provider === \"undefined\" ? \"undefined\" : _typeof(provider)) === 'object') {\n this.provider = provider;\n }\n return this;\n }\n }, {\n key: \"setCachePolicy\",\n value: function setCachePolicy(policy) {\n if (typeof policy === 'number' && policy >= -1 && policy < 4) {\n if (!this._query) {\n this.cachePolicy = policy;\n } else {\n this.queryCachePolicy = policy;\n }\n } else {\n console.error(\"Kindly provide the valid policy\");\n }\n return this;\n }\n\n /**\n * @method includeReference\n * @memberOf Entry\n * @description Fetches the entire content of referenced entry(ies). <a href='https://www.contentstack.com/docs/developers/apis/content-delivery-api/#include-reference'>Read More</a>\n * @example\n * <caption> .includeReference with reference_field_uids as array </caption>\n * var Query = Stack.ContentType(contentTypes.source).Query();\n Query\n .includeReference(['reference_field_uid', 'other_reference_field_uid'])\n .toJSON()\n .find()\n .then(function success(entries) {\n //'entries' is an object used to retrieve data including reference entries.\n })\n * @example\n * <caption> .includeReference with reference_field_uids and its children reference </caption>\n * var Query = Stack.ContentType(contentTypes.source).Query();\n Query\n .includeReference(['reference_field_uid', 'reference_field_uid.child_reference_field_uid'])\n .toJSON()\n .find()\n .then(function success(entries) {\n //'entries' is an object used to retrieve data including reference entries.\n })\n * @example\n * <caption> .includeReference with reference_field_uids </caption>\n * var Query = Stack.ContentType(contentTypes.source).Query(); \n Query\n .includeReference('reference_field_uid')\n .toJSON()\n .find()\n .then(function success(entries) {\n //'entries' is an object used to retrieve data including particular reference using reference_uid.\n })\n * @returns {Entry}\n * @instance\n */\n\n }, {\n key: \"includeReference\",\n value: function includeReference() {\n for (var _len = arguments.length, val = Array(_len), _key = 0; _key < _len; _key++) {\n val[_key] = arguments[_key];\n }\n\n if (Array.isArray(val) || typeof val === \"string\") {\n if (arguments.length) {\n for (var i = 0; i < arguments.length; i++) {\n this._query['include'] = this._query['include'] || [];\n this._query['include'] = this._query['include'].concat(arguments[i]);\n }\n }\n return this;\n } else {\n console.error(\"Argument should be a String or an Array.\");\n }\n }\n\n /**\n * Sets the language code of which you want to retrieve data.\n * @param {String} language_code - language code. e.g. 'en-us', 'ja-jp', etc.\n * @memberOf Entry\n * @example \n * let data = Stack.ContentType(contentTypeUid).Entry(entryUid).language('ja-jp').fetch()\n * data\n * .then(function(result) {\n * // 'result' is an object used to retrieve data of ja-jp language.\n * }, function(error) {\n * // error function\n * })\n * \n * @returns {Entry}\n * @instance\n */\n\n }, {\n key: \"language\",\n value: function language(language_code) {\n if (language_code && typeof language_code === 'string') {\n this._query['locale'] = language_code;\n return this;\n } else {\n console.error(\"Argument should be a String.\");\n }\n }\n\n /**\n * @method addQuery\n * @memberOf Entry\n * @description Adds query to Entry object\n * @param {String} key - key of the query\n * @param {String} value - value of the query\n * @example Stack.ContentType(contentTypeUid).Entry(entry_uid).addQuery('include_schema',true)\n * @returns {Entry}\n * @instance\n */\n\n }, {\n key: \"addQuery\",\n value: function addQuery(key, value) {\n if (key && value && typeof key === 'string') {\n this._query[key] = value;\n return this;\n } else {\n console.error(\"First argument should be a String.\");\n }\n }\n\n /**\n * @method includeEmbeddedObjects\n * @memberOf Entry\n * @description Include Embedded Objects (Entries and Assets) along with entry/entries details.\n * @example Stack.ContentType(\"contentType_uid\").Entry(\"entry_uid\").includeEmbeddedObjects().fetch()\n * @returns {Entry}\n * @instance\n */\n\n }, {\n key: \"includeEmbeddedItems\",\n value: function includeEmbeddedItems() {\n this._query['include_embedded_items'] = [\"BASE\"];\n return this;\n }\n\n /**\n * @method includeSchema\n * @memberOf Entry\n * @deprecated since verion 3.3.0\n * @description Include schema of the current content type along with entry/entries details.\n * @example Stack.ContentType(\"contentType_uid\").Entry(\"entry_uid\").includeSchema().fetch()\n * @returns {Entry}\n * @instance\n */\n\n }, {\n key: \"includeSchema\",\n value: function includeSchema() {\n this._query['include_schema'] = true;\n return this;\n }\n\n /**\n * @method includeReferenceContentTypeUid\n * @memberOf Entry\n * @description This method also includes the content type UIDs of the referenced entries returned in the response.\n * @example Stack.ContentType(\"contentType_uid\").Entry(\"entry_uid\").includeReferenceContentTypeUID().fetch()\n * @example \n * Query = Stack.ContentType(\"contentType_uid\").Entry(\"entry_uid\").includeReferenceContentTypeUID().fetch()\n * Query\n * .toJSON()\n * .then(function (result) {\n * let value = result.get(field_uid)\n * },function (error) {\n * // error function\n * })\n * @returns {Entry}\n * @instance\n */\n\n }, {\n key: \"includeReferenceContentTypeUID\",\n value: function includeReferenceContentTypeUID() {\n this._query['include_reference_content_type_uid'] = true;\n return this;\n }\n\n /**\n * @method includeFallback\n * @memberOf Entry\n * @description Include the fallback locale publish content, if specified locale content is not publish.\n * @example stack.ContentType(contentType_uid).Entry(entry_uid).includeFallback().fetch()\n * @returns {Entry}\n * @instance\n */\n\n }, {\n key: \"includeFallback\",\n value: function includeFallback() {\n this._query['include_fallback'] = true;\n return this;\n }\n\n /**\n * @method includeContentType\n * @memberOf Entry\n * @description Include the details of the content type along with the entry/entries details.\n * @example stack.ContentType(contentType_uid).Entry(entry_uid).includeContentType().fetch()\n * @returns {Entry}\n * @instance\n */\n\n }, {\n key: \"includeContentType\",\n value: function includeContentType() {\n this._query['include_content_type'] = true;\n return this;\n }\n\n /**\n * @method includeOwner\n * @memberOf Entry \n * @description Includes the owner details of the entry/entries\n * @example stack.ContentType(contentType_uid).Entry(entry_uid).includeOwner().fetch()\n * @returns {Entry}\n * @instance\n */\n\n }, {\n key: \"includeOwner\",\n value: function includeOwner() {\n this._query['include_owner'] = true;\n return this;\n }\n\n /**\n * @method toJSON\n * @memberOf Entry \n * @description Converts your response into plain JavasScript object.Supports both entry and asset queries.\n * @example\n * Query = Stack.ContentType(contentTypeUid).Entry(entryUid).fetch()\n * Query\n * .toJSON()\n * .then(function (result) {\n * let value = result.get(field_uid)\n * },function (error) {\n * // error function\n * })\n * @returns {Entry}\n * @instance\n */\n\n }, {\n key: \"toJSON\",\n value: function toJSON() {\n this.tojson = true;\n return this;\n }\n\n /**\n * @method addParam\n * @memberOf Entry \n * @description Includes query parameters in your queries.\n * @example var data = Stack.ContentType(contentTypeUid).Entry(entryUid).addParam('include_count', 'true').fetch()\n * data.then(function (result) {\n * // 'result' is an object which content the data including count in json object form\n * },function (error) {\n * // error function\n * })\n * @returns {Entry}\n * @instance\n */\n\n }, {\n key: \"addParam\",\n value: function addParam(key, value) {\n if (key && value && typeof key === 'string' && typeof value === 'string') {\n this._query[key] = value;\n return this;\n } else {\n console.error(\"Kindly provide valid parameters.\");\n }\n }\n\n /**\n * @method fetch\n * @memberOf Entry \n * @description Fetches a particular entry based on the provided entry UID.\n * @example\n * Stack.ContentType(contentTypeUid).Entry(entryUid).toJSON().fetch()\n * \n * @example\n * Stack.ContentType(contentTypeUid).Entry(entryUid).toJSON().fetch({\n * \n * })\n * @returns {promise}\n * @instance\n */\n\n }, {\n key: \"fetch\",\n value: function fetch(fetchOptions) {\n if (this.entry_uid) {\n this.requestParams = {\n method: 'POST',\n headers: this.headers,\n url: this.config.protocol + \"://\" + this.config.host + ':' + this.config.port + '/' + this.config.version + this.config.urls.content_types + this.content_type_uid + this.config.urls.entries + this.entry_uid,\n body: {\n _method: 'GET',\n query: this._query\n }\n };\n var options = Object.assign({}, this.fetchOptions, fetchOptions);\n return Utils.sendRequest(this, options);\n } else {\n console.error(\"Kindly provide an entry uid. e.g. .Entry('bltsomething123')\");\n }\n }\n }]);\n\n return Entry;\n}();\n\nexports.default = Entry;\n\n//# sourceURL=webpack://Contentstack/./src/core/modules/entry.js?");
/***/ }),
/***/ "./src/core/modules/query.js":
/*!***********************************!*\
!*** ./src/core/modules/query.js ***!
\***********************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {
"use strict";
eval("\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _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; }; }();\n\nvar _typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; };\n\nvar _request = __webpack_require__(/*! ../lib/request */ \"./src/core/lib/request.js\");\n\nvar _request2 = _interopRequireDefault(_request);\n\nvar _utils = __webpack_require__(/*! ../lib/utils.js */ \"./src/core/lib/utils.js\");\n\nvar Utils = _interopRequireWildcard(_utils);\n\nvar _entry = __webpack_require__(/*! ./entry */ \"./src/core/modules/entry.js\");\n\nvar _entry2 = _interopRequireDefault(_entry);\n\nfunction _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) newObj[key] = obj[key]; } } newObj.default = obj; return newObj; } }\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar _extend = {\n compare: function compare(type) {\n return function (key, value) {\n if (key && value && typeof key === 'string' && typeof value !== 'undefined') {\n this._query['query'][key] = this._query['query']['file_size'] || {};\n this._query['query'][key][type] = value;\n return this;\n } else {\n console.error(\"Kindly provide valid parameters.\");\n }\n };\n },\n contained: function contained(bool) {\n var type = bool ? '$in' : '$nin';\n return function (key, value) {\n if (key && value && typeof key === 'string' && Array.isArray(value)) {\n this._query['query'][key] = this._query['query'][key] || {};\n this._query['query'][key][type] = this._query['query'][key][type] || [];\n this._query['query'][key][type] = this._query['query'][key][type].concat(value);\n return this;\n } else {\n console.error(\"Kindly provide valid parameters.\");\n }\n };\n },\n exists: function exists(bool) {\n return function (key) {\n if (key && typeof key === 'string') {\n this._query['query'][key] = this._query['query'][key] || {};\n this._query['query'][key]['$exists'] = bool;\n return this;\n } else {\n console.error(\"Kindly provide valid parameters.\");\n }\n };\n },\n logical: function logical(type) {\n return function () {\n var _query = [];\n for (var i = 0, _i = arguments.length; i < _i; i++) {\n if (arguments[i] instanceof Query && arguments[i]._query.query) {\n _query.push(arguments[i]._query.query);\n } else if (_typeof(arguments[i]) === \"object\") {\n _query.push(arguments[i]);\n }\n }\n if (this._query['query'][type]) {\n this._query['query'][type] = this._query['query'][type].concat(_query);\n } else {\n this._query['query'][type] = _query;\n }\n return this;\n };\n },\n sort: function sort(type) {\n return function (key) {\n if (key && typeof key === 'string') {\n this._query[type] = key;\n return this;\n } else {\n console.error(\"Argument should be a string.\");\n }\n };\n },\n pagination: function pagination(type) {\n return function (value) {\n if (typeof value === 'number') {\n this._query[type] = value;\n return this;\n } else {\n console.error(\"Argument should be a number.\");\n }\n };\n }\n};\n\n/**\n * @class \n Query \n * @description\n * An initializer is responsible for creating Query object.Provides support for all search queries\n * @example\n * <caption>Query instance creation.</caption>\n * let Query = Contentstack.Stack().ContentType('example').Query();\n * let assetQuery = Contentstack.Stack().Assets().Query();\n * @returns {Query}\n */\n\nvar Query = function (_Entry) {\n _inherits(Query, _Entry);\n\n function Query() {\n _classCallCheck(this, Query);\n\n var _this = _possibleConstructorReturn(this, (Query.__proto__ || Object.getPrototypeOf(Query)).call(this));\n\n _this._query = _this._query || {};\n _this._query['query'] = _this._query['query'] || {};\n /**\n * @method lessThan\n * @memberOf Query\n * @description Retrieves entries in which the value of a field is lesser than the provided value\n * @param {String} key - uid of the field\n * @param {*} value - Value used to match or compare\n * @example let blogQuery = Stack().ContentType('example').Query();\n * let data = blogQuery.lessThan('created_at','2015-06-22').find()\n * data.then(function (result) {\n * // result content the data who's 'created_at date' is less than '2015-06-22'\n * },function (error) {\n * // error function\n * })\n * @returns {Query}\n * @instance\n */\n _this.lessThan = _extend.compare('$lt');\n\n /**\n * @method lessThanOrEqualTo\n * @memberOf Query\n * @description Retrieves entries in which the value of a field is lesser than or equal to the provided value.\n * @param {String} key - uid of the field\n * @param {*} value - Value used to match or compare\n * @example let blogQuery = Stack().ContentType('example').Query();\n * let data = blogQuery.lessThanOrEqualTo('created_at','2015-06-22').find()\n * data.then(function (result) {\n * // result contain the data of entries where the 'created_at' date will be less than or equalto '2015-06-22'.\n * },function (error) {\n * // error function\n * })\n * @returns {Query}\n * @instance\n */\n _this.lessThanOrEqualTo = _extend.compare('$lte');\n /**\n * @method greaterThan\n * @memberOf Query\n * @description Retrieves entries in which the value for a field is greater than the provided value.\n * @param {String} key - uid of the field\n * @param {*} value - value used to match or compare\n * @example \n * let blogQuery = Stack().ContentType('example').Query();\n * let data = blogQuery.greaterThan('created_at','2015-03-12').find()\n * data.then(function(result) {\n * // result contains the data of entries where the 'created_at' date will be greaterthan '2015-06-22'\n * },function (error) {\n * // error function\n * })\n * @returns {Query}\n * @instance\n */\n _this.greaterThan = _extend.compare('$gt');\n\n /**\n * @method greaterThanOrEqualTo\n * @memberOf Query\n * @description Retrieves entries in which the value for a field is greater than or equal to the provided value.\n * @param {String} key - uid of the field \n * @param {*} value - Value used to match or compare\n * @example let blogQuery = Stack().ContentType('example').Query();\n * let data = blogQuery.greaterThanOrEqualTo('created_at','2015-03-12').find()\n * data.then(function(result) {\n * // result contains the data of entries where the 'created_at' date will be greaterThan or equalto '2015-06-22'\n * },function (error) {\n * // error function\n * })\n * @returns {Query}\n * @instance\n */\n _this.greaterThanOrEqualTo = _extend.compare('$gte');\n\n /**\n * @method notEqualTo\n * @memberOf Query\n * @description Retrieves entries in which the value for a field does not match the provided value.\n * @param {String} key - uid of the field \n * @param {*} value - Value used to match or compare\n * @example let blogQuery = Stack().ContentType('example').Query();\n * let data = blogQuery.notEqualTo('title','Demo').find()\n * data.then(function(result) {\n * // ‘result’ contains the list of entries where value of the ‘title’ field will not be 'Demo'.\n * },function (error) {\n * // error function\n * })\n * @returns {Query}\n * @instance\n */\n _this.notEqualTo = _extend.compare('$ne');\n\n /**\n * @method containedIn\n * @memberOf Query\n * @description Retrieve entries in which the value of a field matches with any of the provided array of values\n * @param {String} key - uid of the field\n * @param {*} value - Array of values that are to be used to match or compare\n * @example let blogQuery = Stack().ContentType('example').Query();\n * let data = blogQuery.containedIn('title', ['Demo', 'Welcome']).find()\n * data.then(function(result) {\n * // ‘result’ contains the list of entries where value of the ‘title’ field will contain either 'Demo' or ‘Welcome’.\n * },function (error) {\n * // error function\n * })\n * @returns {Query}\n * @instance\n */\n _this.containedIn = _extend.contained(true);\n\n /**\n * @method notContainedIn\n * @memberOf Query\n * @description Retrieve entries in which the value of a field does not match with any of the provided array of values.\n * @param {String} key - uid of the field\n * @param {Array} value - Array of values that are to be used to match or compare\n * @example let blogQuery = Stack().ContentType('example').Query();\n * let data = blogQuery.notContainedIn('title', ['Demo', 'Welcome']).find()\n * data.then(function(result) {\n * // 'result' contains the list of entries where value of the title field should not be either \"Demo\" or ‘Welcome’\n * },function (error) {\n * // error function\n * })\n * @returns {Query}\n * @instance\n */\n _this.notContainedIn = _extend.contained(false);\n\n /**\n * @method exists \n * @memberOf Query\n * @description Retrieve entries if value of the field, mentioned in the condition, exists.\n * @param {String} key - uid of the field\n * @example blogQuery.exists('featured')\n * @example let blogQuery = Stack().ContentType('example').Query();\n * let data = blogQuery.exists('featured').find()\n * data.then(function(result) {\n * // ‘result’ contains the list of entries in which \"featured\" exists.\n * },function (error) {\n * // error function\n * })\n * @returns {Query}\n * @instance\n */\n _this.exists = _extend.exists(true);\n\n /**\n * @method notExists\n * @memberOf Query\n * @description Retrieve entries if value of the field, mentioned in the condition, does not exists.\n * @param {String} key - uid of the field\n * @example blogQuery.notExists('featured')\n * @example let blogQuery = Stack().ContentType('example').Query();\n * let data = blogQuery.notExists('featured').find()\n * data.then(function(result) {\n * // result is the list of non-existing’featured’\" data.\n * },function (error) {\n * // error function\n * })\n * @returns {Query}\n * @instance\n */\n _this.notExists = _extend.exists(false);\n\n /**\n * @method ascending\n * @memberOf Query\n * @description Sort fetched entries in the ascending order with respect to a specific field.\n * @param {String} key - field uid based on which the ordering will be done\n * @example let blogQuery = Stack().ContentType('example').Query();\n * let data = blogQuery.ascending('created_at').find()\n * data.then(function(result) {\n * // ‘result’ contains the list of entries which is sorted in ascending order on the basis of ‘created_at’. \n * },function (error) {\n * // error function\n * })\n * @returns {Query}\n * @instance\n */\n _this.ascending = _extend.sort('asc');\n\n /**\n * @method descending\n * @memberOf Query\n * @description Sort fetched entries in the descending order with respect to a specific field\n * @param {String} key - field uid based on which the ordering will be done.\n * @example let blogQuery = Stack().ContentType('example').Query();\n * let data = blogQuery.descending('created_at').find()\n * data.then(function(result) {\n * // ‘result’ contains the list of entries which is sorted in descending order on the basis of ‘created_at’. \n * },function (error) {\n * // error function\n * })\n * @returns {Query}\n * @instance\n */\n _this.descending = _extend.sort('desc');\n\n /**\n * @method beforeUid\n * @memberOf Query\n * @description Sort fetched entries in the descending order with respect to a specific field\n * @param {String} uid - field uid based on which the ordering will be done.\n * @example blogQuery.beforeUid('blt1234567890abcdef')\n * @returns {Query}\n * @instance\n */\n _this.beforeUid = _extend.sort('before_uid');\n\n /**\n * @method afterUid\n * @memberOf Query\n * @description This method provides only the entries after the specified entry id.\n * @param {String} uid - uid of the entry\n * @example blogQuery.afterUid('blt1234567890abcdef')\n * @returns {Query}\n * @instance\n */\n _this.afterUid = _extend.sort('after_uid');\n\n /**\n * @method skip\n * @memberOf Query\n * @description Skips at specific number of entries.\n * @param {Number} skip - number of entries to be skipped\n * @example blogQuery.skip(5)\n * @example let blogQuery = Stack().ContentType('example').Query();\n * let data = blogQuery.skip(5).find()\n * data.then(function(result) {\n * // result contains the list of data which is sorted in descending order on 'created_at' bases. \n * },function (error) {\n * // error function\n * })\n * @returns {Query}\n * @instance\n */\n _this.skip = _extend.pagination('skip');\n\n /**\n * @method limit\n * @memberOf Query\n * @description Returns a specific number of entries based on the set limit\n * @param {Number} limit - maximum number of entries to be returned\n * @example let blogQuery = Stack().ContentType('example').Query();\n * let data = blogQuery.limit(10).find()\n * data.then(function(result) {\n * // result contains the limited number of entries\n * },function (error) {\n * // error function\n * })\n * @returns {Query}\n * @instance\n */\n _this.limit = _extend.pagination('limit');\n\n /**\n * @method or\n * @memberOf Query\n * @description Retrieves entries that satisfy at least one of the given conditions\n * @param {object} queries - array of Query objects or raw queries\n * @example\n * <caption> .or with Query instances</caption>\n * let Query1 = Stack.ContentType('blog').Query().where('title', 'Demo').find()\n * let Query2 = Stack.ContentType('blog').Query().lessThan('comments', 10).find()\n * blogQuery.or(Query1, Query2)\n * @example\n * <caption> .or with raw queries</caption>\n * let Query1 = Stack.ContentType('blog').Query().where('title', 'Demo').getQuery()\n * let Query2 = Stack.ContentType('blog').Query().lessThan('comments', 10).getQuery()\n * blogQuery.or(Query1, Query2)\n * @returns {Query}\n * @instance\n */\n _this.or = _extend.logical('$or');\n\n /**\n * @method and\n * @memberOf Query\n * @description Retrieve entries that satisfy all the provided conditions.\n * @param {object} queries - array of query objects or raw queries.\n * @example\n * <caption> .and with Query instances</caption>\n * let Query1 = Stack.ContentType('blog').Query().where('title', 'Demo')\n * let Query2 = Stack.ContentType('blog').Query().lessThan('comments', 10)\n * blogQuery.and(Query1, Query2)\n * @example\n * <caption> .and with raw queries</caption>\n * let Query1 = Stack.ContentType('blog').Query().where('title', 'Demo').getQuery()\n * let Query2 = Stack.ContentType('blog').Query().lessThan('comments', 10).getQuery()\n * blogQuery.and(Query1, Query2)\n * @returns {Query}\n * @instance\n */\n _this.and = _extend.logical('$and');\n return _this;\n }\n\n _createClass(Query, [{\n key: 'equalTo',\n value: function equalTo(key, value) {\n if (key && typeof key === 'string') {\n this._query['query'][key] = value;\n\n return this;\n } else {\n console.error(\"Kindly provide valid parameters.\");\n }\n }\n\n /**\n * @memberOf Query\n * @description Retrieve entries in which a specific field satisfies the value provided\n * @param {String} key - uid of the field\n * @param {*} value - value used to match or compare\n * @example let blogQuery = Stack().ContentType('example').Query();\n * let data = blogQuery.where('title','Demo').find()\n * data.then(function(result) {\n * // ‘result’ contains the list of entries where value of ‘title’ is equal to ‘Demo’. \n * },function (error) {\n * // error function\n * })\n * @returns {Query}\n * @instance\n */\n\n }, {\n key: 'where',\n value: function where(key, value) {\n if (key && typeof key === 'string') {\n this._query['query'][key] = value;\n return this;\n } else {\n console.error(\"Kindly provide valid parameters.\");\n }\n }\n\n /**\n * @method count\n * @memberOf Query\n * @description Returns the total number of entries\n * @example blogQuery.count()\n * @example let blogQuery = Stack().ContentType('example').Query();\n * let data = blogQuery.count().find()\n * data.then(function(result) {\n * // ‘result’ contains the total count. \n * },function (error) {\n * // error function\n * })\n * @returns {Query}\n * @instance\n */\n\n }, {\n key: 'count',\n value: function count() {\n var host = this.config.protocol + \"://\" + this.config.host + ':' + this.config.port + '/' + this.config.version,\n url = this.type && this.type === 'asset' ? host + this.config.urls.assets : host + this.config.urls.content_types + this.content_type_uid + this.config.urls.entries;\n this._query['count'] = true;\n this.requestParams = {\n method: 'POST',\n headers: this.headers,\n url: url,\n body: {\n _method: 'GET',\n query: this._query\n }\n };\n return this;\n }\n\n /**\n * @method query\n * @memberOf Query\n * @description Retrieve entries based on raw queries\n * @param {object} query - RAW (JSON) queries \n * @returns {Query}\n * @instance\n * @example \n * let blogQuery = Stack().ContentType('example').Query();\n * let data = blogQuery.query({\"brand\": {\"$nin_query\": {\"title\": \"Apple Inc.\"}}}).find()\n * data.then(function(result) {\n * // ‘result’ contains the total count. \n * },function (error) {\n * // error function\n * })\n */\n\n }, {\n key: 'query',\n value: function query(_query2) {\n if ((typeof _query2 === 'undefined' ? 'undefined' : _typeof(_query2)) === \"object\") {\n this._query['query'] = Utils.mergeDeep(this._query['query'], _query2);\n return this;\n } else {\n console.error(\"Kindly provide valid parameters\");\n }\n }\n\n /**\n * @method referenceIn\n * @memberOf Query\n * @description Retrieve entries that satisfy the query conditions made on referenced fields.\n * @param {Query} query - RAW (JSON) queries \n * @returns {Query}\n * @instance\n * @example \n * <caption> referenceIn with Query instances</caption>\n * let blogQuery = Stack().ContentType('example').Query();\n * let Query = Stack.ContentType('blog').Query().where('title', 'Demo')\n * let data = blogQuery.referenceIn(\"brand\", Query).find()\n * data.then(function(result) {\n * // ‘result’ contains the total count. \n * },function (error) {\n * // error function\n * })\n * \n * @example \n * <caption> referenceIn with raw queries</caption>\n * let blogQuery = Stack().ContentType('example').Query();\n * let data = blogQuery.referenceIn(\"brand\", {'title': 'Demo'}).find()\n * data.then(function(result) {\n * // ‘result’ contains the total count. \n * },function (error) {\n * // error function\n * })\n */\n\n }, {\n key: 'referenceIn',\n value: function referenceIn(key, query) {\n var _query = {};\n if (query instanceof Query && query._query.query) {\n _query[\"$in_query\"] = query._query.query;\n } else if ((typeof query === 'undefined' ? 'undefined' : _typeof(query)) === \"object\") {\n _query[\"$in_query\"] = query;\n }\n if (this._query['query'][key]) {\n this._query['query'][key] = this._query['query'][key].concat(_query);\n } else {\n this._query['query'][key] = _query;\n }\n return this;\n }\n\n /**\n * @method referenceNotIn\n * @memberOf Query\n * @description Retrieve entries that does not satisfy the query conditions made on referenced fields.\n * @param {Query} query - RAW (JSON) queries \n * @returns {Query}\n * @instance\n * @example \n * <caption> referenceNotIn with Query instances</caption>\n * let blogQuery = Stack().ContentType('example').Query();\n * let data = blogQuery.referenceNotIn(\"brand\", {'title': 'Demo'}).find()\n * data.then(function(result) {\n * // ‘result’ contains the total count. \n * },function (error) {\n * // error function\n * })\n * \n * @example \n * <caption> referenceNotIn with raw queries</caption>\n * let blogQuery = Stack().ContentType('example').Query();\n * let Query = Stack.ContentType('blog').Query().where('title', 'Demo')\n * let data = blogQuery.referenceNotIn(\"brand\", Query).find()\n * data.then(function(result) {\n * // ‘result’ contains the total count. \n * },function (error) {\n * // error function\n * })\n */\n\n }, {\n key: 'referenceNotIn',\n value: function referenceNotIn(key, query) {\n var _query = {};\n if (query instanceof Query && query._query.query) {\n _query[\"$nin_query\"] = query._query.query;\n } else if ((typeof query === 'undefined' ? 'undefined' : _typeof(query)) === \"object\") {\n _query[\"$nin_query\"] = query;\n }\n if (this._query['query'][key]) {\n this._query['query'][key] = this._query['query'][key].concat(_query);\n } else {\n this._query['query'][key] = _query;\n }\n return this;\n }\n\n /**\n * @method tags\n * @memberOf Query\n * @description Retrieves entries based on the provided tags\n * @param {Array} values - tags\n * @example let blogQuery = Stack().ContentType('example').Query();\n * let data = blogQuery.tags(['technology', 'business']).find()\n * data.then(function(result) {\n * // ‘result’ contains list of entries which have tags \"’technology’\" and ‘\"business’\".\n * },function (error) {\n * // error function\n * })\n * @returns {Query}\n * @instance\n */\n\n }, {\n key: 'tags',\n value: function tags(values) {\n if (Array.isArray(values)) {\n this._query['tags'] = values;\n return this;\n } else {\n console.error(\"Kindly provide valid parameters\");\n }\n }\n\n /**\n * @method includeReferenceContentTypeUid\n * @memberOf Query\n * @description This method also includes the content type UIDs of the referenced entries returned in the response.\n * @example Stack.ContentType(\"contentType_uid\").Query().includeReferenceContentTypeUID().find()\n * @example \n * let blogQuery = Stack.ContentType(\"contentType_uid\").Query();\n * let data = blogQuery.includeReferenceContentTypeUID().find()\n * data.then(function(result) {\n * // ‘result’ contains a list of entries in which content type UIDs is present. \n * },function (error) {\n * // error function\n * })\n * @returns {Query}\n * @instance\n */\n\n }, {\n key: 'includeReferenceContentTypeUID',\n value: function includeReferenceContentTypeUID() {\n this._query['include_reference_content_type_uid'] = true;\n return this;\n }\n\n /**\n * @method includeCount\n * @memberOf Query\n * @description Includes the total number of entries returned in the response.\n * @example blogQuery.includeCount()\n * @example let blogQuery = Stack().ContentType('example').Query();\n * let data = blogQuery.includeCount().find()\n * data.then(function(result) {\n * // ‘result’ contains a list of entries in which count of object is present at array[1] position. \n * },function (error) {\n * // error function\n * })\n * @returns {Query}\n * @instance\n */\n\n }, {\n key: 'includeCount',\n value: function includeCount() {\n this._query['include_count'] = true;\n return this;\n }\n\n /**\n * @method addParam\n * @description Includes query parameters in your queries.\n * @memberOf Query\n * @example var data = blogQuery.addParam('include_count', 'true').fetch()\n * data.then(function (result) {\n * // 'result' is an object which content the data including count in json object form\n * },function (error) {\n * // error function\n * })\n * @returns {Query}\n * @instance\n */\n\n }, {\n key: 'addParam',\n value: function addParam(key, value) {\n if (key && value && typeof key === 'string' && typeof value === 'string') {\n this._query[key] = value;\n return this;\n } else {\n console.error(\"Kindly provide valid parameters.\");\n }\n }\n\n /**\n * @method getQuery\n * @memberOf Query\n * @description Returns the raw (JSON) query based on the filters applied on Query object.\n * @example Stack.ContentType('contentType_uid').Query().where('title','Demo').getQuery().find()\n * @returns {Query}\n * @instance\n */\n\n }, {\n key: 'getQuery',\n value: function getQuery() {\n return this._query.query || {};\n }\n\n /**\n * @method regex\n * @memberOf Query\n * @description Retrieve entries that match the provided regular expressions\n * @param {String} key - uid of the field\n * @param {*} value - value used to match or compare\n * @param {String} [options] - match or compare value in entry\n * @example\n * <caption> .regex without options</caption>\n * blogQuery.regex('title','^Demo')\n * @example\n * <caption> .regex with options</caption>\n * blogQuery.regex('title','^Demo', 'i')\n * @returns {Query}\n * @instance\n */\n\n }, {\n key: 'regex',\n value: function regex(key, value, options) {\n if (key && value && typeof key === 'string' && typeof value === 'string') {\n this._query['query'][key] = {\n $regex: value\n };\n if (options) this._query['query'][key]['$options'] = options;\n return this;\n } else {\n console.error(\"Kindly provide valid parameters.\");\n }\n }\n\n /**\n * @method search\n * @memberOf Query\n * @description Retrieve entries that have fields which match the provided search value.\n * @param {string} value - value to search in entries\n * @example blogQuery.search('Welcome to demo')\n * @example let blogQuery = Stack().ContentType('example').Query();\n * let data = blogQuery.search('welcome to demo').find()\n * data.then(function(result) {\n * // ‘result’ contains the object that possess the text \"’welcome to demo’\".\n * },function (error) {\n * // error function\n * })\n * @returns {Query}\n * @instance\n */\n\n }, {\n key: 'search',\n value: function search(value) {\n if (value && typeof value === 'string') {\n this._query['typeahead'] = value;\n return this;\n } else {\n console.error(\"Kindly provide valid parameters.\");\n }\n }\n\n /**\n * @method find\n * @memberOf Query\n * @description Retrieves entries that satisfied the specified query\n * @example let blogQuery = Stack().ContentType('example').Query().find();\n * blogQuery.then(function(result) {\n * // result contains the list of object. \n * },function (error) {\n * // error function\n * })\n * blogQuery.find()\n * @example\n * let blogQuery = Stack.ContentType(contentTypeUid).Query().find({\n * \n * });\n * blogQuery.then(function(result) {\n * // result contains the list of object. \n * },function (error) {\n * // error function\n * })\n * blogQuery.find()\n * @returns {promise}\n * @instance\n */\n\n }, {\n key: 'find',\n value: function find(fetchOptions) {\n var host = this.config.protocol + \"://\" + this.config.host + ':' + this.config.port + '/' + this.config.version,\n url = this.type && this.type === 'asset' ? host + this.config.urls.assets : host + this.config.urls.content_types + this.content_type_uid + this.config.urls.entries;\n this.requestParams = {\n method: 'POST',\n headers: this.headers,\n url: url,\n body: {\n _method: 'GET',\n query: this._query\n }\n };\n var options = Object.assign({}, this.fetchOptions, fetchOptions);\n return Utils.sendRequest(this, options);\n }\n\n /**\n * @method findOne\n * @memberOf Query\n * @deprecated since verion 3.3.0\n * @description Retrieve a single entry from the result\n * @example let blogQuery = Stack().ContentType('example').Query().findOne();\n * blogQuery.then(function(result) {\n * // result contains the single item object. \n * },function (error) {\n * // error function\n * })\n * blogQuery.findOne()\n * @returns {promise}\n * @instance\n */\n\n }, {\n key: 'findOne',\n value: function findOne() {\n var host = this.config.protocol + \"://\" + this.config.host + ':' + this.config.port + '/' + this.config.version,\n url = this.type && this.type === 'asset' ? host + this.config.urls.assets : host + this.config.urls.content_types + this.content_type_uid + this.config.urls.entries;\n this.singleEntry = true;\n this._query.limit = 1;\n this.requestParams = {\n method: 'POST',\n headers: this.headers,\n url: url,\n body: {\n _method: 'GET',\n query: this._query\n }\n };\n var options = Object.assign({}, this.fetchOptions);\n return Utils.sendRequest(this, options);\n }\n }]);\n\n return Query;\n}(_entry2.default);\n\nexports.default = Query;\n\n//# sourceURL=webpack://Contentstack/./src/core/modules/query.js?");
/***/ }),
/***/ "./src/core/modules/result.js":
/*!************************************!*\
!*** ./src/core/modules/result.js ***!
\************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {
"use strict";
eval("\n\nvar _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; }; }();\n\nvar _utils = __webpack_require__(/*! ../lib/utils */ \"./src/core/lib/utils.js\");\n\nvar Utils = _interopRequireWildcard(_utils);\n\nfunction _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) newObj[key] = obj[key]; } } newObj.default = obj; return newObj; } }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\n/**\n * @class Result\n * @summary Creates an instance of `Result`.\n * @description An initializer is responsible for creating Result object.\n * @param {Object} object - API result object\n * @example\n * blogEntry.then(function (result) {\n * // sucess function\n * },function (error) {\n * // error function\n * })\n * @example\n * assetQuery.then(function (result) {\n * // sucess function\n * },function (error) {\n * // error function\n * })\n * @returns {Result}\n * @instance \n */\nvar Result = function () {\n function Result(object) {\n _classCallCheck(this, Result);\n\n if (object) {\n this.object = function () {\n return object;\n };\n }\n return this;\n }\n\n /**\n * @method toJSON\n * @memberOf Result\n * @description Converts `Result` to plain javascript object.\n * @example\n * blogEntry.then(function (result) {\n * result = result[0][0].toJSON()\n * },function (error) {\n * // error function\n * })\n * @example\n * assetQuery.then(function (result) {\n * result = result[0][0].toJSON()\n * },function (error) {\n * // error function\n * })\n * @returns {object}\n * @instance \n */\n\n\n _createClass(Result, [{\n key: 'toJSON',\n value: function toJSON() {\n return this.object() ? Utils.mergeDeep(JSON.parse(JSON.stringify({})), this.object()) : null;\n }\n\n /**\n * @method get\n * @memberOf Result\n * @description Retrieve details of a field based on the UID provided\n * @param field_uid uid of the field\n * @example\n * blogEntry.then(function (result) {\n * let value = result[0][0].get(field_uid)\n * },function (error) {\n * // error function\n * })\n * @example\n * assetQuery.then(function (result) {\n * let value = result[0][0].get(field_uid)\n * },function (error) {\n * // error function\n * })\n * @returns {promise}\n * @instance \n */\n\n }, {\n key: 'get',\n value: function get(key) {\n if (this.object() && key) {\n var fields = key.split('.');\n var value = fields.reduce(function (prev, field) {\n return prev[field];\n }, this.object());\n return value;\n }\n return;\n }\n\n /**\n * @method getDownloadUrl\n * @memberOf Result\n * @description Retrieves the download URL based on the disposition value.\n * @param {String} string - disposition value\n * @example\n * assetQuery.then(function (result) {\n * let value = result[0][0].getDownloadUrl(disposition_value)\n * },function (error) {\n * // error function\n * })\n * @returns {Object}\n * @instance \n */\n\n }, {\n key: 'getDownloadUrl',\n value: function getDownloadUrl(disposition) {\n if (this.object()) {\n var url = this.object().url ? this.object().url : null,\n _disposition = disposition && typeof disposition === 'string' ? disposition : 'attachment';\n return url ? url + '?disposition=' + _disposition : null;\n }\n }\n }]);\n\n return Result;\n}();\n\nmodule.exports = function (object) {\n return new Result(object);\n};\n\n//# sourceURL=webpack://Contentstack/./src/core/modules/result.js?");
/***/ }),
/***/ "./src/core/stack.js":
/*!***************************!*\
!*** ./src/core/stack.js ***!
\***************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {
"use strict";
eval("\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; };\n\nvar _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; }; }();\n\nvar _config = __webpack_require__(/*! ../../config */ \"./config.js\");\n\nvar _config2 = _interopRequireDefault(_config);\n\nvar _utils = __webpack_require__(/*! ./lib/utils */ \"./src/core/lib/utils.js\");\n\nvar Utils = _interopRequireWildcard(_utils);\n\nvar _entry = __webpack_require__(/*! ./modules/entry */ \"./src/core/modules/entry.js\");\n\nvar _entry2 = _interopRequireDefault(_entry);\n\nvar _assets = __webpack_require__(/*! ./modules/assets */ \"./src/core/modules/assets.js\");\n\nvar _assets2 = _interopRequireDefault(_assets);\n\nvar _query = __webpack_require__(/*! ./modules/query */ \"./src/core/modules/query.js\");\n\nvar _query2 = _interopRequireDefault(_query);\n\nvar _request = __webpack_require__(/*! ./lib/request */ \"./src/core/lib/request.js\");\n\nvar _request2 = _interopRequireDefault(_request);\n\nvar _index = __webpack_require__(/*! ./cache-provider/index */ \"./src/core/cache-provider/index.js\");\n\nvar _index2 = _interopRequireDefault(_index);\n\nfunction _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) newObj[key] = obj[key]; } } newObj.default = obj; return newObj; } }\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nvar errorRetry = [408, 429];\n\n/**\n * @class \n Stack \n * @description Initialize an instance of ‘Stack’\n * @param api_key - Stack API Key.\n * @param delivery_token - Stack Delivery token.\n * @param environment - Stack Environment name.\n * @param region - DB region for Stack.\n * @param fetchOptions - Custom setting for the request.\n * @param fetchOptions.timeout - Set timeout for the request.\n * @param fetchOptions.retryLimit - The number of retries before failure. Default is 5\n * @param fetchOptions.retryDelay - The number of ms to use for operation retries. Default is 300ms\n * @param fetchOptions.retryCondition - A function to determine if the error can be retried. Default retry is on status codes 408, 429.\n * @param fetchOptions.retryDelayOptions.base - The base number of milliseconds to use in the exponential backoff for operation retries.\n * @param fetchOptions.retryDelayOptions.customBackoff - A custom function that accepts a retry count and error and returns the amount of time to delay in milliseconds.\n * @example\n * var Stack = Contentstack.Stack({\n * 'api_key':'api_key',\n * 'delivery_token':'delivery_token',\n * 'environment':'environment_name',\n * 'region': 'us',\n * 'fetchOptions': {\n * \n * }\n * });\n * \n * @example\n * var Stack = Contentstack.Stack('api_key', 'access_token', 'environment', {\n * \n * });\n * \n * @example\n * // For Setting the European Region:\n * // If you want to set and use European region, refer to the code below:\n * const Stack = Contentstack.Stack(\"api_key\", \"delivery_token\", \"environment_name\", Contentstack.Region.EU);\n * \n * @returns {Stack}\n * @instance\n */\n\nvar Stack = function () {\n function Stack() {\n _classCallCheck(this, Stack);\n\n this.fetchOptions = {\n retryLimit: 5,\n retryCondition: function retryCondition(error) {\n if (errorRetry.includes(error.status)) {\n return true;\n }\n return false;\n }\n };\n this.config = Object.assign({}, _config2.default);\n\n for (var _len = arguments.length, stack_arguments = Array(_len), _key = 0; _key < _len; _key++) {\n stack_arguments[_key] = arguments[_key];\n }\n\n if (stack_arguments[0].region && stack_arguments[0].region !== undefined && stack_arguments[0].region !== \"us\") {\n this.config['host'] = stack_arguments[0].region + \"-\" + \"cdn.contentstack.com\";\n }\n\n if (stack_arguments[0].fetchOptions && stack_arguments[0].fetchOptions !== undefined) {\n this.fetchOptions = Object.assign(this.fetchOptions, stack_arguments[0].fetchOptions);\n }\n\n this.cachePolicy = _index2.default.policies.IGNORE_CACHE;\n this.provider = _index2.default.providers('localstorage');\n\n switch (stack_arguments.length) {\n case 1:\n if (_typeof(stack_arguments[0]) === \"object\" && typeof stack_arguments[0].api_key === \"string\" && typeof stack_arguments[0].delivery_token === \"string\" && typeof stack_arguments[0].environment === \"string\") {\n this.headers = {\n api_key: stack_arguments[0].api_key,\n access_token: stack_arguments[0].delivery_token\n };\n this.environment = stack_arguments[0].environment;\n return this;\n } else {\n console.error(\"Kindly provide valid object parameters. The specified API Key, Delivery Token, or Environment Name is invalid.\");\n }\n case 3:\n if (typeof stack_arguments[0] === \"string\" && typeof stack_arguments[1] === \"string\" && typeof stack_arguments[2] === \"string\") {\n this.headers = {\n api_key: stack_arguments[0],\n access_token: stack_arguments[1]\n };\n this.environment = stack_arguments[2];\n return this;\n } else {\n console.error(\"Kindly provide valid string parameters.\");\n }\n case 4:\n if (typeof stack_arguments[0] === \"string\" && typeof stack_arguments[1] === \"string\" && typeof stack_arguments[2] === \"string\") {\n this.headers = {\n api_key: stack_arguments[0],\n access_token: stack_arguments[1]\n };\n this.environment = stack_arguments[2];\n } else {\n console.error(\"Kindly provide valid string parameters.\");\n }\n if (stack_arguments[3]) {\n if (typeof stack_arguments[3] === \"string\" && stack_arguments[3] !== undefined && stack_arguments[3] !== \"us\") {\n this.config['host'] = stack_arguments[3] + \"-\" + \"cdn.contentstack.com\";\n } else if (_typeof(stack_arguments[3]) === 'object') {\n this.fetchOptions = Object.assign(this.fetchOptions, stack_arguments[3]);\n }\n }\n return this;\n case 5:\n if (typeof stack_arguments[0] === \"string\" && typeof stack_arguments[1] === \"string\" && typeof stack_arguments[2] === \"string\") {\n this.headers = {\n api_key: stack_arguments[0],\n access_token: stack_arguments[1]\n };\n this.environment = stack_arguments[2];\n } else {\n console.error(\"Kindly provide valid string parameters.\");\n }\n\n if (stack_arguments[3]) {\n if (typeof stack_arguments[3] === \"string\" && stack_arguments[3] !== undefined && stack_arguments[3] !== \"us\") {\n this.config['host'] = stack_arguments[3] + \"-\" + \"cdn.contentstack.com\";\n } else if (_typeof(stack_arguments[3]) === 'object') {\n this.fetchOptions = Object.assign(this.fetchOptions, stack_arguments[3]);\n }\n }\n if (stack_arguments[4] && _typeof(stack_arguments[4]) === 'object') {\n this.fetchOptions = Object.assign(this.fetchOptions, stack_arguments[4]);\n }\n return this;\n default:\n console.error(\"Kindly provide valid parameters to initialize the Contentstack javascript-SDK Stack.\");\n }\n }\n\n /**\n * @method setPort\n * @memberOf Stack\n * @description Sets the port of the host\n * @param {Number} port - Port Number\n * @return {Stack}\n * @instance\n * */\n\n\n _createClass(Stack, [{\n key: 'setPort',\n value: function setPort(port) {\n if (typeof port === \"number\") this.config.port = port;\n return this;\n }\n\n /**\n * @method setProtocol\n * @memberOf Stack\n * @description Sets the protocol for the host\n * @param {String} protocol - http/https protocol\n * @return {Stack}\n * @instance\n * */\n\n }, {\n key: 'setProtocol',\n value: function setProtocol(protocol) {\n if (typeof protocol === \"string\" && ~[\"https\", \"http\"].indexOf(protocol)) this.config.protocol = protocol;\n return this;\n }\n\n /**\n * @method setHost\n * @memberOf Stack\n * @description Sets the host of the API server\n * @param {String} host - valid ip or host\n * @return {Stack}\n * @instance\n * */\n\n }, {\n key: 'setHost',\n value: function setHost(host) {\n if (typeof host === \"string\" && host) this.config.host = host;\n return this;\n }\n\n /**\n * @method setCachePolicy\n * @memberOf Stack\n * @description Allows you to set cache policies\n * @param {Constant} [key=ONLY_NETWORK] - Cache policy to be applied on Stack or Query.\n * @example\n * Stack.setCachePolicy(Contentstack.CachePolicy.IGNORE_CACHE)\n * Stack.setCachePolicy(Contentstack.CachePolicy.ONLY_NETWORK)\n * Stack.setCachePolicy(Contentstack.CachePolicy.CACHE_ELSE_NETWORK)\n * Stack.setCachePolicy(Contentstack.CachePolicy.NETWORK_ELSE_CACHE)\n * Stack.setCachePolicy(Contentstack.CachePolicy.CACHE_THEN_NETWORK)\n * @returns {Stack}\n * @instance\n */\n\n }, {\n key: 'setCachePolicy',\n value: function setCachePolicy(policy) {\n if (typeof policy === 'number' && policy >= -1 && policy < 4) {\n if (!this._query) {\n this.cachePolicy = policy;\n } else {\n this.queryCachePolicy = policy;\n }\n } else {\n console.error(\"Kindly provide the valid policy\");\n }\n return this;\n }\n\n /**\n * @method setCacheProvider\n * @memberOf Stack\n * @description Allows you to set an object of the cache provider\n * @example\n * Stack\n * .setCacheProvider({\n * get: function (key, callback) {\n * // custom logic\n * },\n * set: function (key, value, callback) {\n * // custom logic\n * }\n * });\n * @returns {Stack}\n * @instance\n */\n\n }, {\n key: 'setCacheProvider',\n value: function setCacheProvider(provider) {\n if (provider && (typeof provider === 'undefined' ? 'undefined' : _typeof(provider)) === 'object') {\n this.provider = provider;\n }\n return this;\n }\n\n /**\n * @method clearByQuery\n * @memberOf Stack\n * @description 'clearByQuery' function to clear the query from the cache.\n * @example\n * Stack.clearQuery(query, callback);\n * @returns {Stack}\n * @instance\n */\n\n }, {\n key: 'clearByQuery',\n value: function clearByQuery() {\n if (this.provider && typeof this.provider.clearByQuery === 'function') {\n return this.provider.clearByQuery.apply(this.provider, arguments);\n }\n }\n\n /**\n * @method clearByContentType\n * @memberOf Stack\n * @description 'clearByContentType' function to clear the query from the cache by specified content type.\n * @example\n * Stack.clearByContentType(content_type_uid, callback);\n * Stack.clearByContentType(content_type_uid, language_uid, callback);\n * @returns {Stack}\n * @instance\n */\n\n }, {\n key: 'clearByContentType',\n value: function clearByContentType() {\n if (this.provider && typeof this.provider.clearByContentType === 'function') {\n return this.provider.clearByContentType.apply(this.provider, arguments);\n }\n }\n\n /**\n * @method clearAll\n * @memberOf Stack\n * @description 'clearAll' function to clear all the queries from cache.\n * @example\n * Stack.clearAll(callback);\n * @returns {Stack}\n * @instance \n */\n\n }, {\n key: 'clearAll',\n value: function clearAll() {\n if (this.provider && typeof this.provider.clearAll === 'function') {\n return this.provider.clearAll.apply(this.provider, arguments);\n }\n }\n\n /**\n * @method getCacheProvider\n * @memberOf Stack\n * @description Returns the currently set object of 'CacheProvider'\n * @example Stack.getCacheProvider();\n * @returns {object}\n * @instance\n */\n\n }, {\n key: 'getCacheProvider',\n value: function getCacheProvider() {\n return this.provider;\n }\n\n /**\n * @method ContentType\n * @memberOf Stack\n * @description Set the content type of which you want to retrieve the entries\n * @param {String} [content_type_uid] - uid of the existing content type\n * @example \n * let data = Stack.ContentType('blog').Query().toJSON().find()\n * data\n * .then(function(result) {\n * // 'result' content the list of entries of particular content type blog. \n * }, function(error) {\n * // error function\n * })\n * @returns {Stack}\n * @instance\n */\n\n }, {\n key: 'ContentType',\n value: function ContentType(uid) {\n if (uid && typeof uid === 'string') {\n this.content_type_uid = uid;\n this.type = \"contentType\";\n }\n return this;\n }\n\n /**\n * @method Entry\n * @memberOf ContentType\n * @param {String} uid - uid of the entry \n * @description An initializer is responsible for creating Entry object\n * @returns {Entry}\n * @instance \n */\n\n }, {\n key: 'Entry',\n value: function Entry(uid) {\n var entry = new _entry2.default();\n if (uid && typeof uid === \"string\") {\n entry.entry_uid = uid;\n }\n return Utils.merge(entry, this);\n }\n\n /**\n * @method fetch\n * @memberOf ContentType\n * @description This method returns the complete information of a specific content type.\n * @example\n * let single_contenttype = Stack.ContentType(content_type_uid).fetch()\n * single_contenttype\n * .then(function(result) {\n * // 'result' is a single contentType information. \n * }).catch((error) => {\n * console.log(error)\n * });\n * @returns {promise}\n * @instance \n */\n\n }, {\n key: 'fetch',\n value: function fetch(fetchOptions) {\n var result = {\n method: 'POST',\n headers: this.headers,\n url: this.config.protocol + \"://\" + this.config.host + ':' + this.config.port + '/' + this.config.version + this.config.urls.content_types + this.content_type_uid,\n body: {\n _method: 'GET',\n environment: this.environment\n }\n };\n var options = Object.assign({}, this.fetchOptions, fetchOptions);\n return (0, _request2.default)(result, options);\n }\n\n /**\n * @method Assets\n * @memberOf Stack\n * @param {String} uid - uid of the asset \n * @description Retrieves all assets of a stack by default. To retrieve a single asset, specify its UID.\n * @example \n * // Retrieves all assets\n * let data = Stack.Assets().Query().toJSON().find()\n * data\n * .then(function(result) {\n * // All the asset with limit of 100\n * // Use skip and limit functions to paginate\n * // ‘result’ will display all assets present in stack \n * }, function(error) {\n * // error function\n * })\n * \n * @example \n * let data = Stack.Assets('bltsomething123').toJSON().fetch()\n * data\n * .then(function(result) {\n * // ‘result’ is a single asset object of specified uid \n * }, function(error) {\n * // error function\n * })\n * \n * @returns {Assets}\n * @instance \n */\n\n }, {\n key: 'Assets',\n value: function Assets(uid) {\n this.type = 'asset';\n if (uid && typeof uid === \"string\") {\n var asset = new _assets2.default();\n asset.asset_uid = uid;\n return Utils.merge(asset, this);\n }\n return this;\n }\n\n /**\n * @method Query\n * @memberOf Stack\n * @description An initializer is responsible for creating Query object.Provides support for all search queries\n * @returns {Query}\n * @instance \n */\n\n }, {\n key: 'Query',\n value: function Query() {\n var query = new _query2.default();\n return Utils.merge(query, this);\n }\n\n /**\n * @method getLastActivities\n * @memberOf Stack\n * @description getLastActivities get all the ContentTypes whose last activity updated.\n * @example Stack.getLastActivities()\n * @example \n * let data = Stack.getLastActivities().toJSON().fetch()\n * data\n * .then(function(result) {\n * // 'result' is list of contentTypes whose last activity updated. \n * }, function(error) {\n * // error function\n * })\n * @returns {promise}\n * @instance\n */\n\n }, {\n key: 'getLastActivities',\n value: function getLastActivities() {\n var query = {\n method: 'POST',\n headers: this.headers,\n url: this.config.protocol + \"://\" + this.config.host + ':' + this.config.port + '/' + this.config.version + this.config.urls.content_types,\n body: {\n _method: 'GET',\n only_last_activity: true,\n environment: this.environment\n }\n };\n return (0, _request2.default)(query, this.fetchOptions);\n }\n\n /**\n * @method getContentTypes\n * @memberOf Stack\n * @param {String} param - Query on contentTypes\n * @description This method returns comprehensive information of all the content types of a particular stack in your account.\n * @example \n * let data = Stack.getContentTypes({\"include_global_field_schema\": true})\n * data\n * .then(function(result) {\n * // 'result' is list of contentTypes. \n * }, function(error) {\n * // error function\n * })\n * @returns {promise}\n * @instance\n */\n\n }, {\n key: 'getContentTypes',\n value: function getContentTypes() {\n var param = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n\n var query = {\n method: 'POST',\n headers: this.headers,\n url: this.config.protocol + \"://\" + this.config.host + ':' + this.config.port + '/' + this.config.version + this.config.urls.content_types,\n body: {\n _method: 'GET',\n environment: this.environment\n }\n };\n if (param && param !== undefined) {\n for (var key in param) {\n query.body[key] = param[key];\n }\n }\n return (0, _request2.default)(query, this.fetchOptions);\n }\n\n /**\n * @method sync\n * @memberOf Stack\n * @description Syncs your Contentstack data with your app and ensures that the data is always up-to-date by providing delta updates\n * @param {object} params - params is an object that supports ‘locale’, ‘start_date’, ‘content_type_uid’, and ‘type’ queries.\n * @example \n * Stack.sync({'init': true}) // For initializing sync\n * @example \n * Stack.sync({'init': true, 'locale': 'en-us'}) //For initializing sync with entries of a specific locale\n * @example \n * Stack.sync({'init': true, 'start_date': '2018-10-22'}) //For initializing sync with entries published after a specific date\n * @example \n * Stack.sync({'init': true, 'content_type_uid': 'session'}) //For initializing sync with entries of a specific content type\n * @example \n * Stack.sync({'init': true, 'type': 'entry_published'}) //Use the type parameter to get a specific type of content.Supports 'asset_published', 'entry_published', 'asset_unpublished', 'entry_unpublished', 'asset_deleted', 'entry_deleted', 'content_type_deleted'.\n * @example \n * Stack.sync({'pagination_token': '<btlsomething>'}) // For fetching the next batch of entries using pagination token\n * @example \n * Stack.sync({'sync_token': '<btlsomething>'}) // For performing subsequent sync after initial sync\n * @returns {promise}\n * @instance\n */\n\n }, {\n key: 'sync',\n value: function sync(params, fetchOptions) {\n this._query = {};\n this._query = Object.assign(this._query, params);\n this.requestParams = {\n method: 'POST',\n headers: this.headers,\n url: this.config.protocol + \"://\" + this.config.host + ':' + this.config.port + '/' + this.config.version + this.config.urls.sync,\n body: {\n _method: 'GET',\n query: this._query\n }\n };\n var options = Object.assign({}, this.fetchOptions, fetchOptions);\n return Utils.sendRequest(this, options);\n }\n\n /**\n * @method imageTransform\n * @memberOf Stack\n * @description Performs transformations on images of mentioned url based on transformation parameters \n * @param {String} url - Image url on which transformations need to be applied.\n * @param {String} params - Object with transformation parameters\n * @example\n * Stack.imageTransform(imageURL, {height: 100, width: 200, disable: \"upscale\"});\n * @example\n * Stack.imageTransform(imageURL, {crop: \"150,100\"});\n * @example\n * Stack.imageTransform(imageURL, {format: \"png\", crop: \"150,100\"});\n * @returns {string} [Image url with transformation parameters.]\n * @instance\n */\n\n }, {\n key: 'imageTransform',\n value: function imageTransform(url, params) {\n if (url && typeof url === \"string\" && (typeof params === 'undefined' ? 'undefined' : _typeof(params)) === \"object\" && params.length === undefined) {\n var queryParams = [];\n for (var operation in params) {\n queryParams.push(operation + '=' + params[operation]);\n }\n url += url.indexOf(\"?\") <= -1 ? \"?\" + queryParams.join('&') : \"&\" + queryParams.join('&');\n }\n\n return url;\n }\n }]);\n\n return Stack;\n}();\n\nexports.default = Stack;\n\n//# sourceURL=webpack://Contentstack/./src/core/stack.js?");
/***/ }),
/***/ "./src/runtime/node/http.js":
/*!**********************************!*\
!*** ./src/runtime/node/http.js ***!
\**********************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {
"use strict";
eval("\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _es6Promise = __webpack_require__(/*! es6-promise */ \"./node_modules/es6-promise/dist/es6-promise.js\");\n\nvar _es6Promise2 = _interopRequireDefault(_es6Promise);\n\nvar _nodeFetch = __webpack_require__(/*! node-fetch */ \"./node_modules/node-fetch/lib/index.mjs\");\n\nvar _nodeFetch2 = _interopRequireDefault(_nodeFetch);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n_es6Promise2.default.polyfill();\n\nexports.default = _nodeFetch2.default;\n\n//# sourceURL=webpack://Contentstack/./src/runtime/node/http.js?");
/***/ }),
/***/ "./src/runtime/node/localstorage.js":
/*!******************************************!*\
!*** ./src/runtime/node/localstorage.js ***!
\******************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {
"use strict";
eval("\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _localStorage = __webpack_require__(/*! localStorage */ \"./node_modules/localStorage/lib/localStorage.js\");\n\nvar _localStorage2 = _interopRequireDefault(_localStorage);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nexports.default = _localStorage2.default;\n\n//# sourceURL=webpack://Contentstack/./src/runtime/node/localstorage.js?");
/***/ }),
/***/ "http":
/*!***********************!*\
!*** external "http" ***!
\***********************/
/*! no static exports found */
/***/ (function(module, exports) {
eval("module.exports = require(\"http\");\n\n//# sourceURL=webpack://Contentstack/external_%22http%22?");
/***/ }),
/***/ "https":
/*!************************!*\
!*** external "https" ***!
\************************/
/*! no static exports found */
/***/ (function(module, exports) {
eval("module.exports = require(\"https\");\n\n//# sourceURL=webpack://Contentstack/external_%22https%22?");
/***/ }),
/***/ "stream":
/*!*************************!*\
!*** external "stream" ***!
\*************************/
/*! no static exports found */
/***/ (function(module, exports) {
eval("module.exports = require(\"stream\");\n\n//# sourceURL=webpack://Contentstack/external_%22stream%22?");
/***/ }),
/***/ "url":
/*!**********************!*\
!*** external "url" ***!
\**********************/
/*! no static exports found */
/***/ (function(module, exports) {
eval("module.exports = require(\"url\");\n\n//# sourceURL=webpack://Contentstack/external_%22url%22?");
/***/ }),
/***/ "zlib":
/*!***********************!*\
!*** external "zlib" ***!
\***********************/
/*! no static exports found */
/***/ (function(module, exports) {
eval("module.exports = require(\"zlib\");\n\n//# sourceURL=webpack://Contentstack/external_%22zlib%22?");
/***/ })
/******/ });