| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118218318418518618718818919019119219319419519619719819920020120220320420520620720820921021121221321421521621721821922022122222322422522622722822923023123223323423523623723823924024124224324424524624724824925025125225325425525625725825926026126226326426526626726826927027127227327427527627727827928028128228328428528628728828929029129229329429529629729829930030130230330430530630730830931031131231331431531631731831932032132232332432532632732832933033133233333433533633733833934034134234334434534634734834935035135235335435535635735835936036136236336436536636736836937037137237337437537637737837938038138238338438538638738838939039139239339439539639739839940040140240340440540640740840941041141241341441541641741841942042142242342442542642742842943043143243343443543643743843944044144244344444544644744844945045145245345445545645745845946046146246346446546646746846947047147247347447547647747847948048148248348448548648748848949049149249349449549649749849950050150250350450550650750850951051151251351451551651751851952052152252352452552652752852953053153253353453553653753853954054154254354454554654754854955055155255355455555655755855956056156256356456556656756856957057157257357457557657757857958058158258358458558658758858959059159259359459559659759859960060160260360460560660760860961061161261361461561661761861962062162262362462562662762862963063163263363463563663763863964064164264364464564664764864965065165265365465565665765865966066166266366466566666766866967067167267367467567667767867968068168268368468568668768868969069169269369469569669769869970070170270370470570670770870971071171271371471571671771871972072172272372472572672772872973073173273373473573673773873974074174274374474574674774874975075175275375475575675775875976076176276376476576676776876977077177277377477577677777877978078178278378478578678778878979079179279379479579679779879980080180280380480580680780880981081181281381481581681781881982082182282382482582682782882983083183283383483583683783883984084184284384484584684784884985085185285385485585685785885986086186286386486586686786886987087187287387487587687787887988088188288388488588688788888989089189289389489589689789889990090190290390490590690790890991091191291391491591691791891992092192292392492592692792892993093193293393493593693793893994094194294394494594694794894995095195295395495595695795895996096196296396496596696796896997097197297397497597697797897998098198298398498598698798898999099199299399499599699799899910001001100210031004100510061007100810091010101110121013101410151016101710181019102010211022102310241025102610271028102910301031103210331034103510361037103810391040104110421043104410451046104710481049105010511052105310541055105610571058105910601061106210631064106510661067106810691070107110721073107410751076107710781079108010811082108310841085108610871088108910901091109210931094109510961097109810991100 |
- (window["webpackJsonp"] = window["webpackJsonp"] || []).push([["js/commons"],{
- /***/ "./node_modules/engine.io-client/node_modules/debug/src/browser.js":
- /*!*************************************************************************!*\
- !*** ./node_modules/engine.io-client/node_modules/debug/src/browser.js ***!
- \*************************************************************************/
- /*! no static exports found */
- /***/ (function(module, exports, __webpack_require__) {
- eval("/* WEBPACK VAR INJECTION */(function(process) {/* eslint-env browser */\n\n/**\n * This is the web browser implementation of `debug()`.\n */\n\nexports.log = log;\nexports.formatArgs = formatArgs;\nexports.save = save;\nexports.load = load;\nexports.useColors = useColors;\nexports.storage = localstorage();\n\n/**\n * Colors.\n */\n\nexports.colors = [\n\t'#0000CC',\n\t'#0000FF',\n\t'#0033CC',\n\t'#0033FF',\n\t'#0066CC',\n\t'#0066FF',\n\t'#0099CC',\n\t'#0099FF',\n\t'#00CC00',\n\t'#00CC33',\n\t'#00CC66',\n\t'#00CC99',\n\t'#00CCCC',\n\t'#00CCFF',\n\t'#3300CC',\n\t'#3300FF',\n\t'#3333CC',\n\t'#3333FF',\n\t'#3366CC',\n\t'#3366FF',\n\t'#3399CC',\n\t'#3399FF',\n\t'#33CC00',\n\t'#33CC33',\n\t'#33CC66',\n\t'#33CC99',\n\t'#33CCCC',\n\t'#33CCFF',\n\t'#6600CC',\n\t'#6600FF',\n\t'#6633CC',\n\t'#6633FF',\n\t'#66CC00',\n\t'#66CC33',\n\t'#9900CC',\n\t'#9900FF',\n\t'#9933CC',\n\t'#9933FF',\n\t'#99CC00',\n\t'#99CC33',\n\t'#CC0000',\n\t'#CC0033',\n\t'#CC0066',\n\t'#CC0099',\n\t'#CC00CC',\n\t'#CC00FF',\n\t'#CC3300',\n\t'#CC3333',\n\t'#CC3366',\n\t'#CC3399',\n\t'#CC33CC',\n\t'#CC33FF',\n\t'#CC6600',\n\t'#CC6633',\n\t'#CC9900',\n\t'#CC9933',\n\t'#CCCC00',\n\t'#CCCC33',\n\t'#FF0000',\n\t'#FF0033',\n\t'#FF0066',\n\t'#FF0099',\n\t'#FF00CC',\n\t'#FF00FF',\n\t'#FF3300',\n\t'#FF3333',\n\t'#FF3366',\n\t'#FF3399',\n\t'#FF33CC',\n\t'#FF33FF',\n\t'#FF6600',\n\t'#FF6633',\n\t'#FF9900',\n\t'#FF9933',\n\t'#FFCC00',\n\t'#FFCC33'\n];\n\n/**\n * Currently only WebKit-based Web Inspectors, Firefox >= v31,\n * and the Firebug extension (any Firefox version) are known\n * to support \"%c\" CSS customizations.\n *\n * TODO: add a `localStorage` variable to explicitly enable/disable colors\n */\n\n// eslint-disable-next-line complexity\nfunction useColors() {\n\t// NB: In an Electron preload script, document will be defined but not fully\n\t// initialized. Since we know we're in Chrome, we'll just detect this case\n\t// explicitly\n\tif (typeof window !== 'undefined' && window.process && (window.process.type === 'renderer' || window.process.__nwjs)) {\n\t\treturn true;\n\t}\n\n\t// Internet Explorer and Edge do not support colors.\n\tif (typeof navigator !== 'undefined' && navigator.userAgent && navigator.userAgent.toLowerCase().match(/(edge|trident)\\/(\\d+)/)) {\n\t\treturn false;\n\t}\n\n\t// Is webkit? http://stackoverflow.com/a/16459606/376773\n\t// document is undefined in react-native: https://github.com/facebook/react-native/pull/1632\n\treturn (typeof document !== 'undefined' && document.documentElement && document.documentElement.style && document.documentElement.style.WebkitAppearance) ||\n\t\t// Is firebug? http://stackoverflow.com/a/398120/376773\n\t\t(typeof window !== 'undefined' && window.console && (window.console.firebug || (window.console.exception && window.console.table))) ||\n\t\t// Is firefox >= v31?\n\t\t// https://developer.mozilla.org/en-US/docs/Tools/Web_Console#Styling_messages\n\t\t(typeof navigator !== 'undefined' && navigator.userAgent && navigator.userAgent.toLowerCase().match(/firefox\\/(\\d+)/) && parseInt(RegExp.$1, 10) >= 31) ||\n\t\t// Double check webkit in userAgent just in case we are in a worker\n\t\t(typeof navigator !== 'undefined' && navigator.userAgent && navigator.userAgent.toLowerCase().match(/applewebkit\\/(\\d+)/));\n}\n\n/**\n * Colorize log arguments if enabled.\n *\n * @api public\n */\n\nfunction formatArgs(args) {\n\targs[0] = (this.useColors ? '%c' : '') +\n\t\tthis.namespace +\n\t\t(this.useColors ? ' %c' : ' ') +\n\t\targs[0] +\n\t\t(this.useColors ? '%c ' : ' ') +\n\t\t'+' + module.exports.humanize(this.diff);\n\n\tif (!this.useColors) {\n\t\treturn;\n\t}\n\n\tconst c = 'color: ' + this.color;\n\targs.splice(1, 0, c, 'color: inherit');\n\n\t// The final \"%c\" is somewhat tricky, because there could be other\n\t// arguments passed either before or after the %c, so we need to\n\t// figure out the correct index to insert the CSS into\n\tlet index = 0;\n\tlet lastC = 0;\n\targs[0].replace(/%[a-zA-Z%]/g, match => {\n\t\tif (match === '%%') {\n\t\t\treturn;\n\t\t}\n\t\tindex++;\n\t\tif (match === '%c') {\n\t\t\t// We only are interested in the *last* %c\n\t\t\t// (the user may have provided their own)\n\t\t\tlastC = index;\n\t\t}\n\t});\n\n\targs.splice(lastC, 0, c);\n}\n\n/**\n * Invokes `console.log()` when available.\n * No-op when `console.log` is not a \"function\".\n *\n * @api public\n */\nfunction log(...args) {\n\t// This hackery is required for IE8/9, where\n\t// the `console.log` function doesn't have 'apply'\n\treturn typeof console === 'object' &&\n\t\tconsole.log &&\n\t\tconsole.log(...args);\n}\n\n/**\n * Save `namespaces`.\n *\n * @param {String} namespaces\n * @api private\n */\nfunction save(namespaces) {\n\ttry {\n\t\tif (namespaces) {\n\t\t\texports.storage.setItem('debug', namespaces);\n\t\t} else {\n\t\t\texports.storage.removeItem('debug');\n\t\t}\n\t} catch (error) {\n\t\t// Swallow\n\t\t// XXX (@Qix-) should we be logging these?\n\t}\n}\n\n/**\n * Load `namespaces`.\n *\n * @return {String} returns the previously persisted debug modes\n * @api private\n */\nfunction load() {\n\tlet r;\n\ttry {\n\t\tr = exports.storage.getItem('debug');\n\t} catch (error) {\n\t\t// Swallow\n\t\t// XXX (@Qix-) should we be logging these?\n\t}\n\n\t// If debug isn't set in LS, and we're in Electron, try to load $DEBUG\n\tif (!r && typeof process !== 'undefined' && 'env' in process) {\n\t\tr = process.env.DEBUG;\n\t}\n\n\treturn r;\n}\n\n/**\n * Localstorage attempts to return the localstorage.\n *\n * This is necessary because safari throws\n * when a user disables cookies/localstorage\n * and you attempt to access it.\n *\n * @return {LocalStorage}\n * @api private\n */\n\nfunction localstorage() {\n\ttry {\n\t\t// TVMLKit (Apple TV JS Runtime) does not have a window object, just localStorage in the global context\n\t\t// The Browser also has localStorage in the global context.\n\t\treturn localStorage;\n\t} catch (error) {\n\t\t// Swallow\n\t\t// XXX (@Qix-) should we be logging these?\n\t}\n}\n\nmodule.exports = __webpack_require__(/*! ./common */ \"./node_modules/engine.io-client/node_modules/debug/src/common.js\")(exports);\n\nconst {formatters} = module.exports;\n\n/**\n * Map %j to `JSON.stringify()`, since no Web Inspectors do that by default.\n */\n\nformatters.j = function (v) {\n\ttry {\n\t\treturn JSON.stringify(v);\n\t} catch (error) {\n\t\treturn '[UnexpectedJSONParseError]: ' + error.message;\n\t}\n};\n\n/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(/*! ./../../../../process/browser.js */ \"./node_modules/process/browser.js\")))//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvZW5naW5lLmlvLWNsaWVudC9ub2RlX21vZHVsZXMvZGVidWcvc3JjL2Jyb3dzZXIuanMuanMiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvZW5naW5lLmlvLWNsaWVudC9ub2RlX21vZHVsZXMvZGVidWcvc3JjL2Jyb3dzZXIuanM/MWUzMiJdLCJzb3VyY2VzQ29udGVudCI6WyIvKiBlc2xpbnQtZW52IGJyb3dzZXIgKi9cblxuLyoqXG4gKiBUaGlzIGlzIHRoZSB3ZWIgYnJvd3NlciBpbXBsZW1lbnRhdGlvbiBvZiBgZGVidWcoKWAuXG4gKi9cblxuZXhwb3J0cy5sb2cgPSBsb2c7XG5leHBvcnRzLmZvcm1hdEFyZ3MgPSBmb3JtYXRBcmdzO1xuZXhwb3J0cy5zYXZlID0gc2F2ZTtcbmV4cG9ydHMubG9hZCA9IGxvYWQ7XG5leHBvcnRzLnVzZUNvbG9ycyA9IHVzZUNvbG9ycztcbmV4cG9ydHMuc3RvcmFnZSA9IGxvY2Fsc3RvcmFnZSgpO1xuXG4vKipcbiAqIENvbG9ycy5cbiAqL1xuXG5leHBvcnRzLmNvbG9ycyA9IFtcblx0JyMwMDAwQ0MnLFxuXHQnIzAwMDBGRicsXG5cdCcjMDAzM0NDJyxcblx0JyMwMDMzRkYnLFxuXHQnIzAwNjZDQycsXG5cdCcjMDA2NkZGJyxcblx0JyMwMDk5Q0MnLFxuXHQnIzAwOTlGRicsXG5cdCcjMDBDQzAwJyxcblx0JyMwMENDMzMnLFxuXHQnIzAwQ0M2NicsXG5cdCcjMDBDQzk5Jyxcblx0JyMwMENDQ0MnLFxuXHQnIzAwQ0NGRicsXG5cdCcjMzMwMENDJyxcblx0JyMzMzAwRkYnLFxuXHQnIzMzMzNDQycsXG5cdCcjMzMzM0ZGJyxcblx0JyMzMzY2Q0MnLFxuXHQnIzMzNjZGRicsXG5cdCcjMzM5OUNDJyxcblx0JyMzMzk5RkYnLFxuXHQnIzMzQ0MwMCcsXG5cdCcjMzNDQzMzJyxcblx0JyMzM0NDNjYnLFxuXHQnIzMzQ0M5OScsXG5cdCcjMzNDQ0NDJyxcblx0JyMzM0NDRkYnLFxuXHQnIzY2MDBDQycsXG5cdCcjNjYwMEZGJyxcblx0JyM2NjMzQ0MnLFxuXHQnIzY2MzNGRicsXG5cdCcjNjZDQzAwJyxcblx0JyM2NkNDMzMnLFxuXHQnIzk5MDBDQycsXG5cdCcjOTkwMEZGJyxcblx0JyM5OTMzQ0MnLFxuXHQnIzk5MzNGRicsXG5cdCcjOTlDQzAwJyxcblx0JyM5OUNDMzMnLFxuXHQnI0NDMDAwMCcsXG5cdCcjQ0MwMDMzJyxcblx0JyNDQzAwNjYnLFxuXHQnI0NDMDA5OScsXG5cdCcjQ0MwMENDJyxcblx0JyNDQzAwRkYnLFxuXHQnI0NDMzMwMCcsXG5cdCcjQ0MzMzMzJyxcblx0JyNDQzMzNjYnLFxuXHQnI0NDMzM5OScsXG5cdCcjQ0MzM0NDJyxcblx0JyNDQzMzRkYnLFxuXHQnI0NDNjYwMCcsXG5cdCcjQ0M2NjMzJyxcblx0JyNDQzk5MDAnLFxuXHQnI0NDOTkzMycsXG5cdCcjQ0NDQzAwJyxcblx0JyNDQ0NDMzMnLFxuXHQnI0ZGMDAwMCcsXG5cdCcjRkYwMDMzJyxcblx0JyNGRjAwNjYnLFxuXHQnI0ZGMDA5OScsXG5cdCcjRkYwMENDJyxcblx0JyNGRjAwRkYnLFxuXHQnI0ZGMzMwMCcsXG5cdCcjRkYzMzMzJyxcblx0JyNGRjMzNjYnLFxuXHQnI0ZGMzM5OScsXG5cdCcjRkYzM0NDJyxcblx0JyNGRjMzRkYnLFxuXHQnI0ZGNjYwMCcsXG5cdCcjRkY2NjMzJyxcblx0JyNGRjk5MDAnLFxuXHQnI0ZGOTkzMycsXG5cdCcjRkZDQzAwJyxcblx0JyNGRkNDMzMnXG5dO1xuXG4vKipcbiAqIEN1cnJlbnRseSBvbmx5IFdlYktpdC1iYXNlZCBXZWIgSW5zcGVjdG9ycywgRmlyZWZveCA+PSB2MzEsXG4gKiBhbmQgdGhlIEZpcmVidWcgZXh0ZW5zaW9uIChhbnkgRmlyZWZveCB2ZXJzaW9uKSBhcmUga25vd25cbiAqIHRvIHN1cHBvcnQgXCIlY1wiIENTUyBjdXN0b21pemF0aW9ucy5cbiAqXG4gKiBUT0RPOiBhZGQgYSBgbG9jYWxTdG9yYWdlYCB2YXJpYWJsZSB0byBleHBsaWNpdGx5IGVuYWJsZS9kaXNhYmxlIGNvbG9yc1xuICovXG5cbi8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBjb21wbGV4aXR5XG5mdW5jdGlvbiB1c2VDb2xvcnMoKSB7XG5cdC8vIE5COiBJbiBhbiBFbGVjdHJvbiBwcmVsb2FkIHNjcmlwdCwgZG9jdW1lbnQgd2lsbCBiZSBkZWZpbmVkIGJ1dCBub3QgZnVsbHlcblx0Ly8gaW5pdGlhbGl6ZWQuIFNpbmNlIHdlIGtub3cgd2UncmUgaW4gQ2hyb21lLCB3ZSdsbCBqdXN0IGRldGVjdCB0aGlzIGNhc2Vcblx0Ly8gZXhwbGljaXRseVxuXHRpZiAodHlwZW9mIHdpbmRvdyAhPT0gJ3VuZGVmaW5lZCcgJiYgd2luZG93LnByb2Nlc3MgJiYgKHdpbmRvdy5wcm9jZXNzLnR5cGUgPT09ICdyZW5kZXJlcicgfHwgd2luZG93LnByb2Nlc3MuX19ud2pzKSkge1xuXHRcdHJldHVybiB0cnVlO1xuXHR9XG5cblx0Ly8gSW50ZXJuZXQgRXhwbG9yZXIgYW5kIEVkZ2UgZG8gbm90IHN1cHBvcnQgY29sb3JzLlxuXHRpZiAodHlwZW9mIG5hdmlnYXRvciAhPT0gJ3VuZGVmaW5lZCcgJiYgbmF2aWdhdG9yLnVzZXJBZ2VudCAmJiBuYXZpZ2F0b3IudXNlckFnZW50LnRvTG93ZXJDYXNlKCkubWF0Y2goLyhlZGdlfHRyaWRlbnQpXFwvKFxcZCspLykpIHtcblx0XHRyZXR1cm4gZmFsc2U7XG5cdH1cblxuXHQvLyBJcyB3ZWJraXQ/IGh0dHA6Ly9zdGFja292ZXJmbG93LmNvbS9hLzE2NDU5NjA2LzM3Njc3M1xuXHQvLyBkb2N1bWVudCBpcyB1bmRlZmluZWQgaW4gcmVhY3QtbmF0aXZlOiBodHRwczovL2dpdGh1Yi5jb20vZmFjZWJvb2svcmVhY3QtbmF0aXZlL3B1bGwvMTYzMlxuXHRyZXR1cm4gKHR5cGVvZiBkb2N1bWVudCAhPT0gJ3VuZGVmaW5lZCcgJiYgZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50ICYmIGRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5zdHlsZSAmJiBkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQuc3R5bGUuV2Via2l0QXBwZWFyYW5jZSkgfHxcblx0XHQvLyBJcyBmaXJlYnVnPyBodHRwOi8vc3RhY2tvdmVyZmxvdy5jb20vYS8zOTgxMjAvMzc2NzczXG5cdFx0KHR5cGVvZiB3aW5kb3cgIT09ICd1bmRlZmluZWQnICYmIHdpbmRvdy5jb25zb2xlICYmICh3aW5kb3cuY29uc29sZS5maXJlYnVnIHx8ICh3aW5kb3cuY29uc29sZS5leGNlcHRpb24gJiYgd2luZG93LmNvbnNvbGUudGFibGUpKSkgfHxcblx0XHQvLyBJcyBmaXJlZm94ID49IHYzMT9cblx0XHQvLyBodHRwczovL2RldmVsb3Blci5tb3ppbGxhLm9yZy9lbi1VUy9kb2NzL1Rvb2xzL1dlYl9Db25zb2xlI1N0eWxpbmdfbWVzc2FnZXNcblx0XHQodHlwZW9mIG5hdmlnYXRvciAhPT0gJ3VuZGVmaW5lZCcgJiYgbmF2aWdhdG9yLnVzZXJBZ2VudCAmJiBuYXZpZ2F0b3IudXNlckFnZW50LnRvTG93ZXJDYXNlKCkubWF0Y2goL2ZpcmVmb3hcXC8oXFxkKykvKSAmJiBwYXJzZUludChSZWdFeHAuJDEsIDEwKSA+PSAzMSkgfHxcblx0XHQvLyBEb3VibGUgY2hlY2sgd2Via2l0IGluIHVzZXJBZ2VudCBqdXN0IGluIGNhc2Ugd2UgYXJlIGluIGEgd29ya2VyXG5cdFx0KHR5cGVvZiBuYXZpZ2F0b3IgIT09ICd1bmRlZmluZWQnICYmIG5hdmlnYXRvci51c2VyQWdlbnQgJiYgbmF2aWdhdG9yLnVzZXJBZ2VudC50b0xvd2VyQ2FzZSgpLm1hdGNoKC9hcHBsZXdlYmtpdFxcLyhcXGQrKS8pKTtcbn1cblxuLyoqXG4gKiBDb2xvcml6ZSBsb2cgYXJndW1lbnRzIGlmIGVuYWJsZWQuXG4gKlxuICogQGFwaSBwdWJsaWNcbiAqL1xuXG5mdW5jdGlvbiBmb3JtYXRBcmdzKGFyZ3MpIHtcblx0YXJnc1swXSA9ICh0aGlzLnVzZUNvbG9ycyA/ICclYycgOiAnJykgK1xuXHRcdHRoaXMubmFtZXNwYWNlICtcblx0XHQodGhpcy51c2VDb2xvcnMgPyAnICVjJyA6ICcgJykgK1xuXHRcdGFyZ3NbMF0gK1xuXHRcdCh0aGlzLnVzZUNvbG9ycyA/ICclYyAnIDogJyAnKSArXG5cdFx0JysnICsgbW9kdWxlLmV4cG9ydHMuaHVtYW5pemUodGhpcy5kaWZmKTtcblxuXHRpZiAoIXRoaXMudXNlQ29sb3JzKSB7XG5cdFx0cmV0dXJuO1xuXHR9XG5cblx0Y29uc3QgYyA9ICdjb2xvcjogJyArIHRoaXMuY29sb3I7XG5cdGFyZ3Muc3BsaWNlKDEsIDAsIGMsICdjb2xvcjogaW5oZXJpdCcpO1xuXG5cdC8vIFRoZSBmaW5hbCBcIiVjXCIgaXMgc29tZXdoYXQgdHJpY2t5LCBiZWNhdXNlIHRoZXJlIGNvdWxkIGJlIG90aGVyXG5cdC8vIGFyZ3VtZW50cyBwYXNzZWQgZWl0aGVyIGJlZm9yZSBvciBhZnRlciB0aGUgJWMsIHNvIHdlIG5lZWQgdG9cblx0Ly8gZmlndXJlIG91dCB0aGUgY29ycmVjdCBpbmRleCB0byBpbnNlcnQgdGhlIENTUyBpbnRvXG5cdGxldCBpbmRleCA9IDA7XG5cdGxldCBsYXN0QyA9IDA7XG5cdGFyZ3NbMF0ucmVwbGFjZSgvJVthLXpBLVolXS9nLCBtYXRjaCA9PiB7XG5cdFx0aWYgKG1hdGNoID09PSAnJSUnKSB7XG5cdFx0XHRyZXR1cm47XG5cdFx0fVxuXHRcdGluZGV4Kys7XG5cdFx0aWYgKG1hdGNoID09PSAnJWMnKSB7XG5cdFx0XHQvLyBXZSBvbmx5IGFyZSBpbnRlcmVzdGVkIGluIHRoZSAqbGFzdCogJWNcblx0XHRcdC8vICh0aGUgdXNlciBtYXkgaGF2ZSBwcm92aWRlZCB0aGVpciBvd24pXG5cdFx0XHRsYXN0QyA9IGluZGV4O1xuXHRcdH1cblx0fSk7XG5cblx0YXJncy5zcGxpY2UobGFzdEMsIDAsIGMpO1xufVxuXG4vKipcbiAqIEludm9rZXMgYGNvbnNvbGUubG9nKClgIHdoZW4gYXZhaWxhYmxlLlxuICogTm8tb3Agd2hlbiBgY29uc29sZS5sb2dgIGlzIG5vdCBhIFwiZnVuY3Rpb25cIi5cbiAqXG4gKiBAYXBpIHB1YmxpY1xuICovXG5mdW5jdGlvbiBsb2coLi4uYXJncykge1xuXHQvLyBUaGlzIGhhY2tlcnkgaXMgcmVxdWlyZWQgZm9yIElFOC85LCB3aGVyZVxuXHQvLyB0aGUgYGNvbnNvbGUubG9nYCBmdW5jdGlvbiBkb2Vzbid0IGhhdmUgJ2FwcGx5J1xuXHRyZXR1cm4gdHlwZW9mIGNvbnNvbGUgPT09ICdvYmplY3QnICYmXG5cdFx0Y29uc29sZS5sb2cgJiZcblx0XHRjb25zb2xlLmxvZyguLi5hcmdzKTtcbn1cblxuLyoqXG4gKiBTYXZlIGBuYW1lc3BhY2VzYC5cbiAqXG4gKiBAcGFyYW0ge1N0cmluZ30gbmFtZXNwYWNlc1xuICogQGFwaSBwcml2YXRlXG4gKi9cbmZ1bmN0aW9uIHNhdmUobmFtZXNwYWNlcykge1xuXHR0cnkge1xuXHRcdGlmIChuYW1lc3BhY2VzKSB7XG5cdFx0XHRleHBvcnRzLnN0b3JhZ2Uuc2V0SXRlbSgnZGVidWcnLCBuYW1lc3BhY2VzKTtcblx0XHR9IGVsc2Uge1xuXHRcdFx0ZXhwb3J0cy5zdG9yYWdlLnJlbW92ZUl0ZW0oJ2RlYnVnJyk7XG5cdFx0fVxuXHR9IGNhdGNoIChlcnJvcikge1xuXHRcdC8vIFN3YWxsb3dcblx0XHQvLyBYWFggKEBRaXgtKSBzaG91bGQgd2UgYmUgbG9nZ2luZyB0aGVzZT9cblx0fVxufVxuXG4vKipcbiAqIExvYWQgYG5hbWVzcGFjZXNgLlxuICpcbiAqIEByZXR1cm4ge1N0cmluZ30gcmV0dXJucyB0aGUgcHJldmlvdXNseSBwZXJzaXN0ZWQgZGVidWcgbW9kZXNcbiAqIEBhcGkgcHJpdmF0ZVxuICovXG5mdW5jdGlvbiBsb2FkKCkge1xuXHRsZXQgcjtcblx0dHJ5IHtcblx0XHRyID0gZXhwb3J0cy5zdG9yYWdlLmdldEl0ZW0oJ2RlYnVnJyk7XG5cdH0gY2F0Y2ggKGVycm9yKSB7XG5cdFx0Ly8gU3dhbGxvd1xuXHRcdC8vIFhYWCAoQFFpeC0pIHNob3VsZCB3ZSBiZSBsb2dnaW5nIHRoZXNlP1xuXHR9XG5cblx0Ly8gSWYgZGVidWcgaXNuJ3Qgc2V0IGluIExTLCBhbmQgd2UncmUgaW4gRWxlY3Ryb24sIHRyeSB0byBsb2FkICRERUJVR1xuXHRpZiAoIXIgJiYgdHlwZW9mIHByb2Nlc3MgIT09ICd1bmRlZmluZWQnICYmICdlbnYnIGluIHByb2Nlc3MpIHtcblx0XHRyID0gcHJvY2Vzcy5lbnYuREVCVUc7XG5cdH1cblxuXHRyZXR1cm4gcjtcbn1cblxuLyoqXG4gKiBMb2NhbHN0b3JhZ2UgYXR0ZW1wdHMgdG8gcmV0dXJuIHRoZSBsb2NhbHN0b3JhZ2UuXG4gKlxuICogVGhpcyBpcyBuZWNlc3NhcnkgYmVjYXVzZSBzYWZhcmkgdGhyb3dzXG4gKiB3aGVuIGEgdXNlciBkaXNhYmxlcyBjb29raWVzL2xvY2Fsc3RvcmFnZVxuICogYW5kIHlvdSBhdHRlbXB0IHRvIGFjY2VzcyBpdC5cbiAqXG4gKiBAcmV0dXJuIHtMb2NhbFN0b3JhZ2V9XG4gKiBAYXBpIHByaXZhdGVcbiAqL1xuXG5mdW5jdGlvbiBsb2NhbHN0b3JhZ2UoKSB7XG5cdHRyeSB7XG5cdFx0Ly8gVFZNTEtpdCAoQXBwbGUgVFYgSlMgUnVudGltZSkgZG9lcyBub3QgaGF2ZSBhIHdpbmRvdyBvYmplY3QsIGp1c3QgbG9jYWxTdG9yYWdlIGluIHRoZSBnbG9iYWwgY29udGV4dFxuXHRcdC8vIFRoZSBCcm93c2VyIGFsc28gaGFzIGxvY2FsU3RvcmFnZSBpbiB0aGUgZ2xvYmFsIGNvbnRleHQuXG5cdFx0cmV0dXJuIGxvY2FsU3RvcmFnZTtcblx0fSBjYXRjaCAoZXJyb3IpIHtcblx0XHQvLyBTd2FsbG93XG5cdFx0Ly8gWFhYIChAUWl4LSkgc2hvdWxkIHdlIGJlIGxvZ2dpbmcgdGhlc2U/XG5cdH1cbn1cblxubW9kdWxlLmV4cG9ydHMgPSByZXF1aXJlKCcuL2NvbW1vbicpKGV4cG9ydHMpO1xuXG5jb25zdCB7Zm9ybWF0dGVyc30gPSBtb2R1bGUuZXhwb3J0cztcblxuLyoqXG4gKiBNYXAgJWogdG8gYEpTT04uc3RyaW5naWZ5KClgLCBzaW5jZSBubyBXZWIgSW5zcGVjdG9ycyBkbyB0aGF0IGJ5IGRlZmF1bHQuXG4gKi9cblxuZm9ybWF0dGVycy5qID0gZnVuY3Rpb24gKHYpIHtcblx0dHJ5IHtcblx0XHRyZXR1cm4gSlNPTi5zdHJpbmdpZnkodik7XG5cdH0gY2F0Y2ggKGVycm9yKSB7XG5cdFx0cmV0dXJuICdbVW5leHBlY3RlZEpTT05QYXJzZUVycm9yXTogJyArIGVycm9yLm1lc3NhZ2U7XG5cdH1cbn07XG4iXSwibWFwcGluZ3MiOiJBQUFBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QSIsInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./node_modules/engine.io-client/node_modules/debug/src/browser.js\n");
- /***/ }),
- /***/ "./node_modules/engine.io-client/node_modules/debug/src/common.js":
- /*!************************************************************************!*\
- !*** ./node_modules/engine.io-client/node_modules/debug/src/common.js ***!
- \************************************************************************/
- /*! no static exports found */
- /***/ (function(module, exports, __webpack_require__) {
- eval("\n/**\n * This is the common logic for both the Node.js and web browser\n * implementations of `debug()`.\n */\n\nfunction setup(env) {\n\tcreateDebug.debug = createDebug;\n\tcreateDebug.default = createDebug;\n\tcreateDebug.coerce = coerce;\n\tcreateDebug.disable = disable;\n\tcreateDebug.enable = enable;\n\tcreateDebug.enabled = enabled;\n\tcreateDebug.humanize = __webpack_require__(/*! ms */ \"./node_modules/ms/index.js\");\n\n\tObject.keys(env).forEach(key => {\n\t\tcreateDebug[key] = env[key];\n\t});\n\n\t/**\n\t* Active `debug` instances.\n\t*/\n\tcreateDebug.instances = [];\n\n\t/**\n\t* The currently active debug mode names, and names to skip.\n\t*/\n\n\tcreateDebug.names = [];\n\tcreateDebug.skips = [];\n\n\t/**\n\t* Map of special \"%n\" handling functions, for the debug \"format\" argument.\n\t*\n\t* Valid key names are a single, lower or upper-case letter, i.e. \"n\" and \"N\".\n\t*/\n\tcreateDebug.formatters = {};\n\n\t/**\n\t* Selects a color for a debug namespace\n\t* @param {String} namespace The namespace string for the for the debug instance to be colored\n\t* @return {Number|String} An ANSI color code for the given namespace\n\t* @api private\n\t*/\n\tfunction selectColor(namespace) {\n\t\tlet hash = 0;\n\n\t\tfor (let i = 0; i < namespace.length; i++) {\n\t\t\thash = ((hash << 5) - hash) + namespace.charCodeAt(i);\n\t\t\thash |= 0; // Convert to 32bit integer\n\t\t}\n\n\t\treturn createDebug.colors[Math.abs(hash) % createDebug.colors.length];\n\t}\n\tcreateDebug.selectColor = selectColor;\n\n\t/**\n\t* Create a debugger with the given `namespace`.\n\t*\n\t* @param {String} namespace\n\t* @return {Function}\n\t* @api public\n\t*/\n\tfunction createDebug(namespace) {\n\t\tlet prevTime;\n\n\t\tfunction debug(...args) {\n\t\t\t// Disabled?\n\t\t\tif (!debug.enabled) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tconst self = debug;\n\n\t\t\t// Set `diff` timestamp\n\t\t\tconst curr = Number(new Date());\n\t\t\tconst ms = curr - (prevTime || curr);\n\t\t\tself.diff = ms;\n\t\t\tself.prev = prevTime;\n\t\t\tself.curr = curr;\n\t\t\tprevTime = curr;\n\n\t\t\targs[0] = createDebug.coerce(args[0]);\n\n\t\t\tif (typeof args[0] !== 'string') {\n\t\t\t\t// Anything else let's inspect with %O\n\t\t\t\targs.unshift('%O');\n\t\t\t}\n\n\t\t\t// Apply any `formatters` transformations\n\t\t\tlet index = 0;\n\t\t\targs[0] = args[0].replace(/%([a-zA-Z%])/g, (match, format) => {\n\t\t\t\t// If we encounter an escaped % then don't increase the array index\n\t\t\t\tif (match === '%%') {\n\t\t\t\t\treturn match;\n\t\t\t\t}\n\t\t\t\tindex++;\n\t\t\t\tconst formatter = createDebug.formatters[format];\n\t\t\t\tif (typeof formatter === 'function') {\n\t\t\t\t\tconst val = args[index];\n\t\t\t\t\tmatch = formatter.call(self, val);\n\n\t\t\t\t\t// Now we need to remove `args[index]` since it's inlined in the `format`\n\t\t\t\t\targs.splice(index, 1);\n\t\t\t\t\tindex--;\n\t\t\t\t}\n\t\t\t\treturn match;\n\t\t\t});\n\n\t\t\t// Apply env-specific formatting (colors, etc.)\n\t\t\tcreateDebug.formatArgs.call(self, args);\n\n\t\t\tconst logFn = self.log || createDebug.log;\n\t\t\tlogFn.apply(self, args);\n\t\t}\n\n\t\tdebug.namespace = namespace;\n\t\tdebug.enabled = createDebug.enabled(namespace);\n\t\tdebug.useColors = createDebug.useColors();\n\t\tdebug.color = selectColor(namespace);\n\t\tdebug.destroy = destroy;\n\t\tdebug.extend = extend;\n\t\t// Debug.formatArgs = formatArgs;\n\t\t// debug.rawLog = rawLog;\n\n\t\t// env-specific initialization logic for debug instances\n\t\tif (typeof createDebug.init === 'function') {\n\t\t\tcreateDebug.init(debug);\n\t\t}\n\n\t\tcreateDebug.instances.push(debug);\n\n\t\treturn debug;\n\t}\n\n\tfunction destroy() {\n\t\tconst index = createDebug.instances.indexOf(this);\n\t\tif (index !== -1) {\n\t\t\tcreateDebug.instances.splice(index, 1);\n\t\t\treturn true;\n\t\t}\n\t\treturn false;\n\t}\n\n\tfunction extend(namespace, delimiter) {\n\t\tconst newDebug = createDebug(this.namespace + (typeof delimiter === 'undefined' ? ':' : delimiter) + namespace);\n\t\tnewDebug.log = this.log;\n\t\treturn newDebug;\n\t}\n\n\t/**\n\t* Enables a debug mode by namespaces. This can include modes\n\t* separated by a colon and wildcards.\n\t*\n\t* @param {String} namespaces\n\t* @api public\n\t*/\n\tfunction enable(namespaces) {\n\t\tcreateDebug.save(namespaces);\n\n\t\tcreateDebug.names = [];\n\t\tcreateDebug.skips = [];\n\n\t\tlet i;\n\t\tconst split = (typeof namespaces === 'string' ? namespaces : '').split(/[\\s,]+/);\n\t\tconst len = split.length;\n\n\t\tfor (i = 0; i < len; i++) {\n\t\t\tif (!split[i]) {\n\t\t\t\t// ignore empty strings\n\t\t\t\tcontinue;\n\t\t\t}\n\n\t\t\tnamespaces = split[i].replace(/\\*/g, '.*?');\n\n\t\t\tif (namespaces[0] === '-') {\n\t\t\t\tcreateDebug.skips.push(new RegExp('^' + namespaces.substr(1) + '$'));\n\t\t\t} else {\n\t\t\t\tcreateDebug.names.push(new RegExp('^' + namespaces + '$'));\n\t\t\t}\n\t\t}\n\n\t\tfor (i = 0; i < createDebug.instances.length; i++) {\n\t\t\tconst instance = createDebug.instances[i];\n\t\t\tinstance.enabled = createDebug.enabled(instance.namespace);\n\t\t}\n\t}\n\n\t/**\n\t* Disable debug output.\n\t*\n\t* @return {String} namespaces\n\t* @api public\n\t*/\n\tfunction disable() {\n\t\tconst namespaces = [\n\t\t\t...createDebug.names.map(toNamespace),\n\t\t\t...createDebug.skips.map(toNamespace).map(namespace => '-' + namespace)\n\t\t].join(',');\n\t\tcreateDebug.enable('');\n\t\treturn namespaces;\n\t}\n\n\t/**\n\t* Returns true if the given mode name is enabled, false otherwise.\n\t*\n\t* @param {String} name\n\t* @return {Boolean}\n\t* @api public\n\t*/\n\tfunction enabled(name) {\n\t\tif (name[name.length - 1] === '*') {\n\t\t\treturn true;\n\t\t}\n\n\t\tlet i;\n\t\tlet len;\n\n\t\tfor (i = 0, len = createDebug.skips.length; i < len; i++) {\n\t\t\tif (createDebug.skips[i].test(name)) {\n\t\t\t\treturn false;\n\t\t\t}\n\t\t}\n\n\t\tfor (i = 0, len = createDebug.names.length; i < len; i++) {\n\t\t\tif (createDebug.names[i].test(name)) {\n\t\t\t\treturn true;\n\t\t\t}\n\t\t}\n\n\t\treturn false;\n\t}\n\n\t/**\n\t* Convert regexp to namespace\n\t*\n\t* @param {RegExp} regxep\n\t* @return {String} namespace\n\t* @api private\n\t*/\n\tfunction toNamespace(regexp) {\n\t\treturn regexp.toString()\n\t\t\t.substring(2, regexp.toString().length - 2)\n\t\t\t.replace(/\\.\\*\\?$/, '*');\n\t}\n\n\t/**\n\t* Coerce `val`.\n\t*\n\t* @param {Mixed} val\n\t* @return {Mixed}\n\t* @api private\n\t*/\n\tfunction coerce(val) {\n\t\tif (val instanceof Error) {\n\t\t\treturn val.stack || val.message;\n\t\t}\n\t\treturn val;\n\t}\n\n\tcreateDebug.enable(createDebug.load());\n\n\treturn createDebug;\n}\n\nmodule.exports = setup;\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvZW5naW5lLmlvLWNsaWVudC9ub2RlX21vZHVsZXMvZGVidWcvc3JjL2NvbW1vbi5qcy5qcyIsInNvdXJjZXMiOlsid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9lbmdpbmUuaW8tY2xpZW50L25vZGVfbW9kdWxlcy9kZWJ1Zy9zcmMvY29tbW9uLmpzP2JhZDIiXSwic291cmNlc0NvbnRlbnQiOlsiXG4vKipcbiAqIFRoaXMgaXMgdGhlIGNvbW1vbiBsb2dpYyBmb3IgYm90aCB0aGUgTm9kZS5qcyBhbmQgd2ViIGJyb3dzZXJcbiAqIGltcGxlbWVudGF0aW9ucyBvZiBgZGVidWcoKWAuXG4gKi9cblxuZnVuY3Rpb24gc2V0dXAoZW52KSB7XG5cdGNyZWF0ZURlYnVnLmRlYnVnID0gY3JlYXRlRGVidWc7XG5cdGNyZWF0ZURlYnVnLmRlZmF1bHQgPSBjcmVhdGVEZWJ1Zztcblx0Y3JlYXRlRGVidWcuY29lcmNlID0gY29lcmNlO1xuXHRjcmVhdGVEZWJ1Zy5kaXNhYmxlID0gZGlzYWJsZTtcblx0Y3JlYXRlRGVidWcuZW5hYmxlID0gZW5hYmxlO1xuXHRjcmVhdGVEZWJ1Zy5lbmFibGVkID0gZW5hYmxlZDtcblx0Y3JlYXRlRGVidWcuaHVtYW5pemUgPSByZXF1aXJlKCdtcycpO1xuXG5cdE9iamVjdC5rZXlzKGVudikuZm9yRWFjaChrZXkgPT4ge1xuXHRcdGNyZWF0ZURlYnVnW2tleV0gPSBlbnZba2V5XTtcblx0fSk7XG5cblx0LyoqXG5cdCogQWN0aXZlIGBkZWJ1Z2AgaW5zdGFuY2VzLlxuXHQqL1xuXHRjcmVhdGVEZWJ1Zy5pbnN0YW5jZXMgPSBbXTtcblxuXHQvKipcblx0KiBUaGUgY3VycmVudGx5IGFjdGl2ZSBkZWJ1ZyBtb2RlIG5hbWVzLCBhbmQgbmFtZXMgdG8gc2tpcC5cblx0Ki9cblxuXHRjcmVhdGVEZWJ1Zy5uYW1lcyA9IFtdO1xuXHRjcmVhdGVEZWJ1Zy5za2lwcyA9IFtdO1xuXG5cdC8qKlxuXHQqIE1hcCBvZiBzcGVjaWFsIFwiJW5cIiBoYW5kbGluZyBmdW5jdGlvbnMsIGZvciB0aGUgZGVidWcgXCJmb3JtYXRcIiBhcmd1bWVudC5cblx0KlxuXHQqIFZhbGlkIGtleSBuYW1lcyBhcmUgYSBzaW5nbGUsIGxvd2VyIG9yIHVwcGVyLWNhc2UgbGV0dGVyLCBpLmUuIFwiblwiIGFuZCBcIk5cIi5cblx0Ki9cblx0Y3JlYXRlRGVidWcuZm9ybWF0dGVycyA9IHt9O1xuXG5cdC8qKlxuXHQqIFNlbGVjdHMgYSBjb2xvciBmb3IgYSBkZWJ1ZyBuYW1lc3BhY2Vcblx0KiBAcGFyYW0ge1N0cmluZ30gbmFtZXNwYWNlIFRoZSBuYW1lc3BhY2Ugc3RyaW5nIGZvciB0aGUgZm9yIHRoZSBkZWJ1ZyBpbnN0YW5jZSB0byBiZSBjb2xvcmVkXG5cdCogQHJldHVybiB7TnVtYmVyfFN0cmluZ30gQW4gQU5TSSBjb2xvciBjb2RlIGZvciB0aGUgZ2l2ZW4gbmFtZXNwYWNlXG5cdCogQGFwaSBwcml2YXRlXG5cdCovXG5cdGZ1bmN0aW9uIHNlbGVjdENvbG9yKG5hbWVzcGFjZSkge1xuXHRcdGxldCBoYXNoID0gMDtcblxuXHRcdGZvciAobGV0IGkgPSAwOyBpIDwgbmFtZXNwYWNlLmxlbmd0aDsgaSsrKSB7XG5cdFx0XHRoYXNoID0gKChoYXNoIDw8IDUpIC0gaGFzaCkgKyBuYW1lc3BhY2UuY2hhckNvZGVBdChpKTtcblx0XHRcdGhhc2ggfD0gMDsgLy8gQ29udmVydCB0byAzMmJpdCBpbnRlZ2VyXG5cdFx0fVxuXG5cdFx0cmV0dXJuIGNyZWF0ZURlYnVnLmNvbG9yc1tNYXRoLmFicyhoYXNoKSAlIGNyZWF0ZURlYnVnLmNvbG9ycy5sZW5ndGhdO1xuXHR9XG5cdGNyZWF0ZURlYnVnLnNlbGVjdENvbG9yID0gc2VsZWN0Q29sb3I7XG5cblx0LyoqXG5cdCogQ3JlYXRlIGEgZGVidWdnZXIgd2l0aCB0aGUgZ2l2ZW4gYG5hbWVzcGFjZWAuXG5cdCpcblx0KiBAcGFyYW0ge1N0cmluZ30gbmFtZXNwYWNlXG5cdCogQHJldHVybiB7RnVuY3Rpb259XG5cdCogQGFwaSBwdWJsaWNcblx0Ki9cblx0ZnVuY3Rpb24gY3JlYXRlRGVidWcobmFtZXNwYWNlKSB7XG5cdFx0bGV0IHByZXZUaW1lO1xuXG5cdFx0ZnVuY3Rpb24gZGVidWcoLi4uYXJncykge1xuXHRcdFx0Ly8gRGlzYWJsZWQ/XG5cdFx0XHRpZiAoIWRlYnVnLmVuYWJsZWQpIHtcblx0XHRcdFx0cmV0dXJuO1xuXHRcdFx0fVxuXG5cdFx0XHRjb25zdCBzZWxmID0gZGVidWc7XG5cblx0XHRcdC8vIFNldCBgZGlmZmAgdGltZXN0YW1wXG5cdFx0XHRjb25zdCBjdXJyID0gTnVtYmVyKG5ldyBEYXRlKCkpO1xuXHRcdFx0Y29uc3QgbXMgPSBjdXJyIC0gKHByZXZUaW1lIHx8IGN1cnIpO1xuXHRcdFx0c2VsZi5kaWZmID0gbXM7XG5cdFx0XHRzZWxmLnByZXYgPSBwcmV2VGltZTtcblx0XHRcdHNlbGYuY3VyciA9IGN1cnI7XG5cdFx0XHRwcmV2VGltZSA9IGN1cnI7XG5cblx0XHRcdGFyZ3NbMF0gPSBjcmVhdGVEZWJ1Zy5jb2VyY2UoYXJnc1swXSk7XG5cblx0XHRcdGlmICh0eXBlb2YgYXJnc1swXSAhPT0gJ3N0cmluZycpIHtcblx0XHRcdFx0Ly8gQW55dGhpbmcgZWxzZSBsZXQncyBpbnNwZWN0IHdpdGggJU9cblx0XHRcdFx0YXJncy51bnNoaWZ0KCclTycpO1xuXHRcdFx0fVxuXG5cdFx0XHQvLyBBcHBseSBhbnkgYGZvcm1hdHRlcnNgIHRyYW5zZm9ybWF0aW9uc1xuXHRcdFx0bGV0IGluZGV4ID0gMDtcblx0XHRcdGFyZ3NbMF0gPSBhcmdzWzBdLnJlcGxhY2UoLyUoW2EtekEtWiVdKS9nLCAobWF0Y2gsIGZvcm1hdCkgPT4ge1xuXHRcdFx0XHQvLyBJZiB3ZSBlbmNvdW50ZXIgYW4gZXNjYXBlZCAlIHRoZW4gZG9uJ3QgaW5jcmVhc2UgdGhlIGFycmF5IGluZGV4XG5cdFx0XHRcdGlmIChtYXRjaCA9PT0gJyUlJykge1xuXHRcdFx0XHRcdHJldHVybiBtYXRjaDtcblx0XHRcdFx0fVxuXHRcdFx0XHRpbmRleCsrO1xuXHRcdFx0XHRjb25zdCBmb3JtYXR0ZXIgPSBjcmVhdGVEZWJ1Zy5mb3JtYXR0ZXJzW2Zvcm1hdF07XG5cdFx0XHRcdGlmICh0eXBlb2YgZm9ybWF0dGVyID09PSAnZnVuY3Rpb24nKSB7XG5cdFx0XHRcdFx0Y29uc3QgdmFsID0gYXJnc1tpbmRleF07XG5cdFx0XHRcdFx0bWF0Y2ggPSBmb3JtYXR0ZXIuY2FsbChzZWxmLCB2YWwpO1xuXG5cdFx0XHRcdFx0Ly8gTm93IHdlIG5lZWQgdG8gcmVtb3ZlIGBhcmdzW2luZGV4XWAgc2luY2UgaXQncyBpbmxpbmVkIGluIHRoZSBgZm9ybWF0YFxuXHRcdFx0XHRcdGFyZ3Muc3BsaWNlKGluZGV4LCAxKTtcblx0XHRcdFx0XHRpbmRleC0tO1xuXHRcdFx0XHR9XG5cdFx0XHRcdHJldHVybiBtYXRjaDtcblx0XHRcdH0pO1xuXG5cdFx0XHQvLyBBcHBseSBlbnYtc3BlY2lmaWMgZm9ybWF0dGluZyAoY29sb3JzLCBldGMuKVxuXHRcdFx0Y3JlYXRlRGVidWcuZm9ybWF0QXJncy5jYWxsKHNlbGYsIGFyZ3MpO1xuXG5cdFx0XHRjb25zdCBsb2dGbiA9IHNlbGYubG9nIHx8IGNyZWF0ZURlYnVnLmxvZztcblx0XHRcdGxvZ0ZuLmFwcGx5KHNlbGYsIGFyZ3MpO1xuXHRcdH1cblxuXHRcdGRlYnVnLm5hbWVzcGFjZSA9IG5hbWVzcGFjZTtcblx0XHRkZWJ1Zy5lbmFibGVkID0gY3JlYXRlRGVidWcuZW5hYmxlZChuYW1lc3BhY2UpO1xuXHRcdGRlYnVnLnVzZUNvbG9ycyA9IGNyZWF0ZURlYnVnLnVzZUNvbG9ycygpO1xuXHRcdGRlYnVnLmNvbG9yID0gc2VsZWN0Q29sb3IobmFtZXNwYWNlKTtcblx0XHRkZWJ1Zy5kZXN0cm95ID0gZGVzdHJveTtcblx0XHRkZWJ1Zy5leHRlbmQgPSBleHRlbmQ7XG5cdFx0Ly8gRGVidWcuZm9ybWF0QXJncyA9IGZvcm1hdEFyZ3M7XG5cdFx0Ly8gZGVidWcucmF3TG9nID0gcmF3TG9nO1xuXG5cdFx0Ly8gZW52LXNwZWNpZmljIGluaXRpYWxpemF0aW9uIGxvZ2ljIGZvciBkZWJ1ZyBpbnN0YW5jZXNcblx0XHRpZiAodHlwZW9mIGNyZWF0ZURlYnVnLmluaXQgPT09ICdmdW5jdGlvbicpIHtcblx0XHRcdGNyZWF0ZURlYnVnLmluaXQoZGVidWcpO1xuXHRcdH1cblxuXHRcdGNyZWF0ZURlYnVnLmluc3RhbmNlcy5wdXNoKGRlYnVnKTtcblxuXHRcdHJldHVybiBkZWJ1Zztcblx0fVxuXG5cdGZ1bmN0aW9uIGRlc3Ryb3koKSB7XG5cdFx0Y29uc3QgaW5kZXggPSBjcmVhdGVEZWJ1Zy5pbnN0YW5jZXMuaW5kZXhPZih0aGlzKTtcblx0XHRpZiAoaW5kZXggIT09IC0xKSB7XG5cdFx0XHRjcmVhdGVEZWJ1Zy5pbnN0YW5jZXMuc3BsaWNlKGluZGV4LCAxKTtcblx0XHRcdHJldHVybiB0cnVlO1xuXHRcdH1cblx0XHRyZXR1cm4gZmFsc2U7XG5cdH1cblxuXHRmdW5jdGlvbiBleHRlbmQobmFtZXNwYWNlLCBkZWxpbWl0ZXIpIHtcblx0XHRjb25zdCBuZXdEZWJ1ZyA9IGNyZWF0ZURlYnVnKHRoaXMubmFtZXNwYWNlICsgKHR5cGVvZiBkZWxpbWl0ZXIgPT09ICd1bmRlZmluZWQnID8gJzonIDogZGVsaW1pdGVyKSArIG5hbWVzcGFjZSk7XG5cdFx0bmV3RGVidWcubG9nID0gdGhpcy5sb2c7XG5cdFx0cmV0dXJuIG5ld0RlYnVnO1xuXHR9XG5cblx0LyoqXG5cdCogRW5hYmxlcyBhIGRlYnVnIG1vZGUgYnkgbmFtZXNwYWNlcy4gVGhpcyBjYW4gaW5jbHVkZSBtb2Rlc1xuXHQqIHNlcGFyYXRlZCBieSBhIGNvbG9uIGFuZCB3aWxkY2FyZHMuXG5cdCpcblx0KiBAcGFyYW0ge1N0cmluZ30gbmFtZXNwYWNlc1xuXHQqIEBhcGkgcHVibGljXG5cdCovXG5cdGZ1bmN0aW9uIGVuYWJsZShuYW1lc3BhY2VzKSB7XG5cdFx0Y3JlYXRlRGVidWcuc2F2ZShuYW1lc3BhY2VzKTtcblxuXHRcdGNyZWF0ZURlYnVnLm5hbWVzID0gW107XG5cdFx0Y3JlYXRlRGVidWcuc2tpcHMgPSBbXTtcblxuXHRcdGxldCBpO1xuXHRcdGNvbnN0IHNwbGl0ID0gKHR5cGVvZiBuYW1lc3BhY2VzID09PSAnc3RyaW5nJyA/IG5hbWVzcGFjZXMgOiAnJykuc3BsaXQoL1tcXHMsXSsvKTtcblx0XHRjb25zdCBsZW4gPSBzcGxpdC5sZW5ndGg7XG5cblx0XHRmb3IgKGkgPSAwOyBpIDwgbGVuOyBpKyspIHtcblx0XHRcdGlmICghc3BsaXRbaV0pIHtcblx0XHRcdFx0Ly8gaWdub3JlIGVtcHR5IHN0cmluZ3Ncblx0XHRcdFx0Y29udGludWU7XG5cdFx0XHR9XG5cblx0XHRcdG5hbWVzcGFjZXMgPSBzcGxpdFtpXS5yZXBsYWNlKC9cXCovZywgJy4qPycpO1xuXG5cdFx0XHRpZiAobmFtZXNwYWNlc1swXSA9PT0gJy0nKSB7XG5cdFx0XHRcdGNyZWF0ZURlYnVnLnNraXBzLnB1c2gobmV3IFJlZ0V4cCgnXicgKyBuYW1lc3BhY2VzLnN1YnN0cigxKSArICckJykpO1xuXHRcdFx0fSBlbHNlIHtcblx0XHRcdFx0Y3JlYXRlRGVidWcubmFtZXMucHVzaChuZXcgUmVnRXhwKCdeJyArIG5hbWVzcGFjZXMgKyAnJCcpKTtcblx0XHRcdH1cblx0XHR9XG5cblx0XHRmb3IgKGkgPSAwOyBpIDwgY3JlYXRlRGVidWcuaW5zdGFuY2VzLmxlbmd0aDsgaSsrKSB7XG5cdFx0XHRjb25zdCBpbnN0YW5jZSA9IGNyZWF0ZURlYnVnLmluc3RhbmNlc1tpXTtcblx0XHRcdGluc3RhbmNlLmVuYWJsZWQgPSBjcmVhdGVEZWJ1Zy5lbmFibGVkKGluc3RhbmNlLm5hbWVzcGFjZSk7XG5cdFx0fVxuXHR9XG5cblx0LyoqXG5cdCogRGlzYWJsZSBkZWJ1ZyBvdXRwdXQuXG5cdCpcblx0KiBAcmV0dXJuIHtTdHJpbmd9IG5hbWVzcGFjZXNcblx0KiBAYXBpIHB1YmxpY1xuXHQqL1xuXHRmdW5jdGlvbiBkaXNhYmxlKCkge1xuXHRcdGNvbnN0IG5hbWVzcGFjZXMgPSBbXG5cdFx0XHQuLi5jcmVhdGVEZWJ1Zy5uYW1lcy5tYXAodG9OYW1lc3BhY2UpLFxuXHRcdFx0Li4uY3JlYXRlRGVidWcuc2tpcHMubWFwKHRvTmFtZXNwYWNlKS5tYXAobmFtZXNwYWNlID0+ICctJyArIG5hbWVzcGFjZSlcblx0XHRdLmpvaW4oJywnKTtcblx0XHRjcmVhdGVEZWJ1Zy5lbmFibGUoJycpO1xuXHRcdHJldHVybiBuYW1lc3BhY2VzO1xuXHR9XG5cblx0LyoqXG5cdCogUmV0dXJucyB0cnVlIGlmIHRoZSBnaXZlbiBtb2RlIG5hbWUgaXMgZW5hYmxlZCwgZmFsc2Ugb3RoZXJ3aXNlLlxuXHQqXG5cdCogQHBhcmFtIHtTdHJpbmd9IG5hbWVcblx0KiBAcmV0dXJuIHtCb29sZWFufVxuXHQqIEBhcGkgcHVibGljXG5cdCovXG5cdGZ1bmN0aW9uIGVuYWJsZWQobmFtZSkge1xuXHRcdGlmIChuYW1lW25hbWUubGVuZ3RoIC0gMV0gPT09ICcqJykge1xuXHRcdFx0cmV0dXJuIHRydWU7XG5cdFx0fVxuXG5cdFx0bGV0IGk7XG5cdFx0bGV0IGxlbjtcblxuXHRcdGZvciAoaSA9IDAsIGxlbiA9IGNyZWF0ZURlYnVnLnNraXBzLmxlbmd0aDsgaSA8IGxlbjsgaSsrKSB7XG5cdFx0XHRpZiAoY3JlYXRlRGVidWcuc2tpcHNbaV0udGVzdChuYW1lKSkge1xuXHRcdFx0XHRyZXR1cm4gZmFsc2U7XG5cdFx0XHR9XG5cdFx0fVxuXG5cdFx0Zm9yIChpID0gMCwgbGVuID0gY3JlYXRlRGVidWcubmFtZXMubGVuZ3RoOyBpIDwgbGVuOyBpKyspIHtcblx0XHRcdGlmIChjcmVhdGVEZWJ1Zy5uYW1lc1tpXS50ZXN0KG5hbWUpKSB7XG5cdFx0XHRcdHJldHVybiB0cnVlO1xuXHRcdFx0fVxuXHRcdH1cblxuXHRcdHJldHVybiBmYWxzZTtcblx0fVxuXG5cdC8qKlxuXHQqIENvbnZlcnQgcmVnZXhwIHRvIG5hbWVzcGFjZVxuXHQqXG5cdCogQHBhcmFtIHtSZWdFeHB9IHJlZ3hlcFxuXHQqIEByZXR1cm4ge1N0cmluZ30gbmFtZXNwYWNlXG5cdCogQGFwaSBwcml2YXRlXG5cdCovXG5cdGZ1bmN0aW9uIHRvTmFtZXNwYWNlKHJlZ2V4cCkge1xuXHRcdHJldHVybiByZWdleHAudG9TdHJpbmcoKVxuXHRcdFx0LnN1YnN0cmluZygyLCByZWdleHAudG9TdHJpbmcoKS5sZW5ndGggLSAyKVxuXHRcdFx0LnJlcGxhY2UoL1xcLlxcKlxcPyQvLCAnKicpO1xuXHR9XG5cblx0LyoqXG5cdCogQ29lcmNlIGB2YWxgLlxuXHQqXG5cdCogQHBhcmFtIHtNaXhlZH0gdmFsXG5cdCogQHJldHVybiB7TWl4ZWR9XG5cdCogQGFwaSBwcml2YXRlXG5cdCovXG5cdGZ1bmN0aW9uIGNvZXJjZSh2YWwpIHtcblx0XHRpZiAodmFsIGluc3RhbmNlb2YgRXJyb3IpIHtcblx0XHRcdHJldHVybiB2YWwuc3RhY2sgfHwgdmFsLm1lc3NhZ2U7XG5cdFx0fVxuXHRcdHJldHVybiB2YWw7XG5cdH1cblxuXHRjcmVhdGVEZWJ1Zy5lbmFibGUoY3JlYXRlRGVidWcubG9hZCgpKTtcblxuXHRyZXR1cm4gY3JlYXRlRGVidWc7XG59XG5cbm1vZHVsZS5leHBvcnRzID0gc2V0dXA7XG4iXSwibWFwcGluZ3MiOiJBQUFBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7Iiwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./node_modules/engine.io-client/node_modules/debug/src/common.js\n");
- /***/ }),
- /***/ "./node_modules/growi-commons/src/index.js":
- /*!*************************************************!*\
- !*** ./node_modules/growi-commons/src/index.js ***!
- \*************************************************/
- /*! no static exports found */
- /***/ (function(module, exports, __webpack_require__) {
- eval("module.exports = {\n BasicInterceptor: __webpack_require__(/*! ./util/basic-interceptor */ \"./node_modules/growi-commons/src/util/basic-interceptor.js\"),\n pathUtils: __webpack_require__(/*! ./util/path-utils */ \"./node_modules/growi-commons/src/util/path-utils.js\"),\n envUtils: __webpack_require__(/*! ./util/env-utils */ \"./node_modules/growi-commons/src/util/env-utils.js\"),\n // plugin\n customTagUtils: __webpack_require__(/*! ./plugin/util/custom-tag-utils */ \"./node_modules/growi-commons/src/plugin/util/custom-tag-utils.js\"),\n TagCacheManager: __webpack_require__(/*! ./plugin/service/tag-cache-manager */ \"./node_modules/growi-commons/src/plugin/service/tag-cache-manager.js\"),\n // service\n LocalStorageManager: __webpack_require__(/*! ./service/localstorage-manager */ \"./node_modules/growi-commons/src/service/localstorage-manager.js\")\n};//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvZ3Jvd2ktY29tbW9ucy9zcmMvaW5kZXguanMuanMiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvZ3Jvd2ktY29tbW9ucy9zcmMvaW5kZXguanM/N2ZiYiJdLCJzb3VyY2VzQ29udGVudCI6WyJtb2R1bGUuZXhwb3J0cyA9IHtcbiAgQmFzaWNJbnRlcmNlcHRvcjogcmVxdWlyZSgnLi91dGlsL2Jhc2ljLWludGVyY2VwdG9yJyksXG4gIHBhdGhVdGlsczogcmVxdWlyZSgnLi91dGlsL3BhdGgtdXRpbHMnKSxcbiAgZW52VXRpbHM6IHJlcXVpcmUoJy4vdXRpbC9lbnYtdXRpbHMnKSxcbiAgLy8gcGx1Z2luXG4gIGN1c3RvbVRhZ1V0aWxzOiByZXF1aXJlKCcuL3BsdWdpbi91dGlsL2N1c3RvbS10YWctdXRpbHMnKSxcbiAgVGFnQ2FjaGVNYW5hZ2VyOiByZXF1aXJlKCcuL3BsdWdpbi9zZXJ2aWNlL3RhZy1jYWNoZS1tYW5hZ2VyJyksXG4gIC8vIHNlcnZpY2VcbiAgTG9jYWxTdG9yYWdlTWFuYWdlcjogcmVxdWlyZSgnLi9zZXJ2aWNlL2xvY2Fsc3RvcmFnZS1tYW5hZ2VyJyksXG59O1xuIl0sIm1hcHBpbmdzIjoiQUFBQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFSQSIsInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./node_modules/growi-commons/src/index.js\n");
- /***/ }),
- /***/ "./node_modules/growi-commons/src/plugin/model/tag-context.js":
- /*!********************************************************************!*\
- !*** ./node_modules/growi-commons/src/plugin/model/tag-context.js ***!
- \********************************************************************/
- /*! no static exports found */
- /***/ (function(module, exports) {
- eval("/**\n * Context class for custom-tag-utils#findTagAndReplace\n */\nclass TagContext {\n constructor(initArgs = {}) {\n this.tagExpression = initArgs.tagExpression || null;\n this.method = initArgs.method || null;\n this.args = initArgs.args || null;\n }\n\n}\n\nmodule.exports = TagContext;//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvZ3Jvd2ktY29tbW9ucy9zcmMvcGx1Z2luL21vZGVsL3RhZy1jb250ZXh0LmpzLmpzIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL2dyb3dpLWNvbW1vbnMvc3JjL3BsdWdpbi9tb2RlbC90YWctY29udGV4dC5qcz8xNmY5Il0sInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQ29udGV4dCBjbGFzcyBmb3IgY3VzdG9tLXRhZy11dGlscyNmaW5kVGFnQW5kUmVwbGFjZVxuICovXG5jbGFzcyBUYWdDb250ZXh0IHtcblxuICBjb25zdHJ1Y3Rvcihpbml0QXJncyA9IHt9KSB7XG4gICAgdGhpcy50YWdFeHByZXNzaW9uID0gaW5pdEFyZ3MudGFnRXhwcmVzc2lvbiB8fCBudWxsO1xuICAgIHRoaXMubWV0aG9kID0gaW5pdEFyZ3MubWV0aG9kIHx8IG51bGw7XG4gICAgdGhpcy5hcmdzID0gaW5pdEFyZ3MuYXJncyB8fCBudWxsO1xuICB9XG5cbn1cblxubW9kdWxlLmV4cG9ydHMgPSBUYWdDb250ZXh0O1xuIl0sIm1hcHBpbmdzIjoiQUFBQTs7O0FBR0E7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFQQTtBQUNBO0FBU0EiLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./node_modules/growi-commons/src/plugin/model/tag-context.js\n");
- /***/ }),
- /***/ "./node_modules/growi-commons/src/plugin/service/tag-cache-manager.js":
- /*!****************************************************************************!*\
- !*** ./node_modules/growi-commons/src/plugin/service/tag-cache-manager.js ***!
- \****************************************************************************/
- /*! no static exports found */
- /***/ (function(module, exports, __webpack_require__) {
- eval("const LocalStorageManager = __webpack_require__(/*! ../../service/localstorage-manager */ \"./node_modules/growi-commons/src/service/localstorage-manager.js\");\n/**\n * Service Class for caching React state and TagContext\n */\n\n\nclass TagCacheManager {\n /**\n * @callback generateCacheKey\n * @param {TagContext} tagContext - TagContext instance\n * @returns {string} Cache key from TagContext\n *\n */\n\n /**\n * Constructor\n * @param {string} cacheNs Used as LocalStorageManager namespace\n * @param {generateCacheKey} generateCacheKey\n */\n constructor(cacheNs, generateCacheKey) {\n if (cacheNs == null) {\n throw new Error('args \\'cacheNs\\' is required.');\n }\n\n if (generateCacheKey == null) {\n throw new Error('args \\'generateCacheKey\\' is required.');\n }\n\n if (typeof generateCacheKey !== 'function') {\n throw new Error('args \\'generateCacheKey\\' should be function.');\n }\n\n this.cacheNs = cacheNs;\n this.generateCacheKey = generateCacheKey;\n }\n /**\n * Retrieve state cache object from local storage\n * @param {TagContext} tagContext\n * @returns {object} a cache object that correspont to the specified `tagContext`\n */\n\n\n getStateCache(tagContext) {\n const localStorageManager = LocalStorageManager.getInstance();\n const key = this.generateCacheKey(tagContext);\n const stateCache = localStorageManager.retrieveFromSessionStorage(this.cacheNs, key);\n return stateCache;\n }\n /**\n * store state object of React Component with specified key\n *\n * @param {TagContext} tagContext\n * @param {object} state state object of React Component\n */\n\n\n cacheState(tagContext, state) {\n const localStorageManager = LocalStorageManager.getInstance();\n const key = this.generateCacheKey(tagContext);\n localStorageManager.saveToSessionStorage(this.cacheNs, key, state);\n }\n /**\n * clear all state caches\n */\n\n\n clearAllStateCaches() {\n const localStorageManager = LocalStorageManager.getInstance();\n localStorageManager.clearAllStateCaches(this.cacheNs);\n }\n\n}\n\nmodule.exports = TagCacheManager;//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvZ3Jvd2ktY29tbW9ucy9zcmMvcGx1Z2luL3NlcnZpY2UvdGFnLWNhY2hlLW1hbmFnZXIuanMuanMiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvZ3Jvd2ktY29tbW9ucy9zcmMvcGx1Z2luL3NlcnZpY2UvdGFnLWNhY2hlLW1hbmFnZXIuanM/NzBhZCJdLCJzb3VyY2VzQ29udGVudCI6WyJjb25zdCBMb2NhbFN0b3JhZ2VNYW5hZ2VyID0gcmVxdWlyZSgnLi4vLi4vc2VydmljZS9sb2NhbHN0b3JhZ2UtbWFuYWdlcicpO1xuXG4vKipcbiAqIFNlcnZpY2UgQ2xhc3MgZm9yIGNhY2hpbmcgUmVhY3Qgc3RhdGUgYW5kIFRhZ0NvbnRleHRcbiAqL1xuY2xhc3MgVGFnQ2FjaGVNYW5hZ2VyIHtcblxuICAvKipcbiAgICogQGNhbGxiYWNrIGdlbmVyYXRlQ2FjaGVLZXlcbiAgICogQHBhcmFtIHtUYWdDb250ZXh0fSB0YWdDb250ZXh0IC0gVGFnQ29udGV4dCBpbnN0YW5jZVxuICAgKiBAcmV0dXJucyB7c3RyaW5nfSBDYWNoZSBrZXkgZnJvbSBUYWdDb250ZXh0XG4gICAqXG4gICAqL1xuXG4gIC8qKlxuICAgKiBDb25zdHJ1Y3RvclxuICAgKiBAcGFyYW0ge3N0cmluZ30gY2FjaGVOcyBVc2VkIGFzIExvY2FsU3RvcmFnZU1hbmFnZXIgbmFtZXNwYWNlXG4gICAqIEBwYXJhbSB7Z2VuZXJhdGVDYWNoZUtleX0gZ2VuZXJhdGVDYWNoZUtleVxuICAgKi9cbiAgY29uc3RydWN0b3IoY2FjaGVOcywgZ2VuZXJhdGVDYWNoZUtleSkge1xuICAgIGlmIChjYWNoZU5zID09IG51bGwpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcignYXJncyBcXCdjYWNoZU5zXFwnIGlzIHJlcXVpcmVkLicpO1xuICAgIH1cbiAgICBpZiAoZ2VuZXJhdGVDYWNoZUtleSA9PSBudWxsKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ2FyZ3MgXFwnZ2VuZXJhdGVDYWNoZUtleVxcJyBpcyByZXF1aXJlZC4nKTtcbiAgICB9XG4gICAgaWYgKHR5cGVvZiBnZW5lcmF0ZUNhY2hlS2V5ICE9PSAnZnVuY3Rpb24nKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ2FyZ3MgXFwnZ2VuZXJhdGVDYWNoZUtleVxcJyBzaG91bGQgYmUgZnVuY3Rpb24uJyk7XG4gICAgfVxuXG4gICAgdGhpcy5jYWNoZU5zID0gY2FjaGVOcztcbiAgICB0aGlzLmdlbmVyYXRlQ2FjaGVLZXkgPSBnZW5lcmF0ZUNhY2hlS2V5O1xuICB9XG5cbiAgLyoqXG4gICAqIFJldHJpZXZlIHN0YXRlIGNhY2hlIG9iamVjdCBmcm9tIGxvY2FsIHN0b3JhZ2VcbiAgICogQHBhcmFtIHtUYWdDb250ZXh0fSB0YWdDb250ZXh0XG4gICAqIEByZXR1cm5zIHtvYmplY3R9IGEgY2FjaGUgb2JqZWN0IHRoYXQgY29ycmVzcG9udCB0byB0aGUgc3BlY2lmaWVkIGB0YWdDb250ZXh0YFxuICAgKi9cbiAgZ2V0U3RhdGVDYWNoZSh0YWdDb250ZXh0KSB7XG4gICAgY29uc3QgbG9jYWxTdG9yYWdlTWFuYWdlciA9IExvY2FsU3RvcmFnZU1hbmFnZXIuZ2V0SW5zdGFuY2UoKTtcblxuICAgIGNvbnN0IGtleSA9IHRoaXMuZ2VuZXJhdGVDYWNoZUtleSh0YWdDb250ZXh0KTtcbiAgICBjb25zdCBzdGF0ZUNhY2hlID0gbG9jYWxTdG9yYWdlTWFuYWdlci5yZXRyaWV2ZUZyb21TZXNzaW9uU3RvcmFnZSh0aGlzLmNhY2hlTnMsIGtleSk7XG5cbiAgICByZXR1cm4gc3RhdGVDYWNoZTtcbiAgfVxuXG4gIC8qKlxuICAgKiBzdG9yZSBzdGF0ZSBvYmplY3Qgb2YgUmVhY3QgQ29tcG9uZW50IHdpdGggc3BlY2lmaWVkIGtleVxuICAgKlxuICAgKiBAcGFyYW0ge1RhZ0NvbnRleHR9IHRhZ0NvbnRleHRcbiAgICogQHBhcmFtIHtvYmplY3R9IHN0YXRlIHN0YXRlIG9iamVjdCBvZiBSZWFjdCBDb21wb25lbnRcbiAgICovXG4gIGNhY2hlU3RhdGUodGFnQ29udGV4dCwgc3RhdGUpIHtcbiAgICBjb25zdCBsb2NhbFN0b3JhZ2VNYW5hZ2VyID0gTG9jYWxTdG9yYWdlTWFuYWdlci5nZXRJbnN0YW5jZSgpO1xuICAgIGNvbnN0IGtleSA9IHRoaXMuZ2VuZXJhdGVDYWNoZUtleSh0YWdDb250ZXh0KTtcbiAgICBsb2NhbFN0b3JhZ2VNYW5hZ2VyLnNhdmVUb1Nlc3Npb25TdG9yYWdlKHRoaXMuY2FjaGVOcywga2V5LCBzdGF0ZSk7XG4gIH1cblxuICAvKipcbiAgICogY2xlYXIgYWxsIHN0YXRlIGNhY2hlc1xuICAgKi9cbiAgY2xlYXJBbGxTdGF0ZUNhY2hlcygpIHtcbiAgICBjb25zdCBsb2NhbFN0b3JhZ2VNYW5hZ2VyID0gTG9jYWxTdG9yYWdlTWFuYWdlci5nZXRJbnN0YW5jZSgpO1xuICAgIGxvY2FsU3RvcmFnZU1hbmFnZXIuY2xlYXJBbGxTdGF0ZUNhY2hlcyh0aGlzLmNhY2hlTnMpO1xuICB9XG5cbn1cblxubW9kdWxlLmV4cG9ydHMgPSBUYWdDYWNoZU1hbmFnZXI7XG4iXSwibWFwcGluZ3MiOiJBQUFBO0FBRUE7Ozs7O0FBR0E7QUFFQTs7Ozs7OztBQU9BOzs7OztBQUtBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFBQTtBQUNBO0FBQ0E7QUFDQTtBQUFBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBRUE7Ozs7Ozs7QUFLQTtBQUNBO0FBRUE7QUFDQTtBQUVBO0FBQ0E7QUFFQTs7Ozs7Ozs7QUFNQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBRUE7Ozs7O0FBR0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQTlEQTtBQUNBO0FBZ0VBIiwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./node_modules/growi-commons/src/plugin/service/tag-cache-manager.js\n");
- /***/ }),
- /***/ "./node_modules/growi-commons/src/plugin/util/args-parser.js":
- /*!*******************************************************************!*\
- !*** ./node_modules/growi-commons/src/plugin/util/args-parser.js ***!
- \*******************************************************************/
- /*! no static exports found */
- /***/ (function(module, exports) {
- eval("/**\n * Arguments parser for custom tag\n */\nclass ArgsParser {\n /**\n * @typedef ParseArgsResult\n * @property {string} firstArgsKey - key of the first argument\n * @property {string} firstArgsValue - value of the first argument\n * @property {object} options - key of the first argument\n */\n\n /**\n * parse plugin argument strings\n *\n * @static\n * @param {string} str\n * @returns {ParseArgsResult}\n */\n static parse(str) {\n let firstArgsKey = null;\n let firstArgsValue = null;\n const options = {};\n\n if (str != null && str.length > 0) {\n const splittedArgs = str.split(',');\n splittedArgs.forEach((rawArg, index) => {\n const arg = rawArg.trim(); // parse string like 'key1=value1, key2=value2, ...'\n // see https://regex101.com/r/pYHcOM/1\n\n const match = arg.match(/([^=]+)=?(.+)?/);\n\n if (match == null) {\n return;\n }\n\n const key = match[1];\n const value = match[2] || true;\n options[key] = value;\n\n if (index === 0) {\n firstArgsKey = key;\n firstArgsValue = value;\n }\n });\n }\n\n return {\n firstArgsKey,\n firstArgsValue,\n options\n };\n }\n\n}\n\nmodule.exports = ArgsParser;//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvZ3Jvd2ktY29tbW9ucy9zcmMvcGx1Z2luL3V0aWwvYXJncy1wYXJzZXIuanMuanMiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvZ3Jvd2ktY29tbW9ucy9zcmMvcGx1Z2luL3V0aWwvYXJncy1wYXJzZXIuanM/NDdiYiJdLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEFyZ3VtZW50cyBwYXJzZXIgZm9yIGN1c3RvbSB0YWdcbiAqL1xuY2xhc3MgQXJnc1BhcnNlciB7XG5cbiAgLyoqXG4gICAqIEB0eXBlZGVmIFBhcnNlQXJnc1Jlc3VsdFxuICAgKiBAcHJvcGVydHkge3N0cmluZ30gZmlyc3RBcmdzS2V5IC0ga2V5IG9mIHRoZSBmaXJzdCBhcmd1bWVudFxuICAgKiBAcHJvcGVydHkge3N0cmluZ30gZmlyc3RBcmdzVmFsdWUgLSB2YWx1ZSBvZiB0aGUgZmlyc3QgYXJndW1lbnRcbiAgICogQHByb3BlcnR5IHtvYmplY3R9IG9wdGlvbnMgLSBrZXkgb2YgdGhlIGZpcnN0IGFyZ3VtZW50XG4gICAqL1xuXG4gIC8qKlxuICAgKiBwYXJzZSBwbHVnaW4gYXJndW1lbnQgc3RyaW5nc1xuICAgKlxuICAgKiBAc3RhdGljXG4gICAqIEBwYXJhbSB7c3RyaW5nfSBzdHJcbiAgICogQHJldHVybnMge1BhcnNlQXJnc1Jlc3VsdH1cbiAgICovXG4gIHN0YXRpYyBwYXJzZShzdHIpIHtcbiAgICBsZXQgZmlyc3RBcmdzS2V5ID0gbnVsbDtcbiAgICBsZXQgZmlyc3RBcmdzVmFsdWUgPSBudWxsO1xuICAgIGNvbnN0IG9wdGlvbnMgPSB7fTtcblxuICAgIGlmIChzdHIgIT0gbnVsbCAmJiBzdHIubGVuZ3RoID4gMCkge1xuICAgICAgY29uc3Qgc3BsaXR0ZWRBcmdzID0gc3RyLnNwbGl0KCcsJyk7XG5cbiAgICAgIHNwbGl0dGVkQXJncy5mb3JFYWNoKChyYXdBcmcsIGluZGV4KSA9PiB7XG4gICAgICAgIGNvbnN0IGFyZyA9IHJhd0FyZy50cmltKCk7XG5cbiAgICAgICAgLy8gcGFyc2Ugc3RyaW5nIGxpa2UgJ2tleTE9dmFsdWUxLCBrZXkyPXZhbHVlMiwgLi4uJ1xuICAgICAgICAvLyBzZWUgaHR0cHM6Ly9yZWdleDEwMS5jb20vci9wWUhjT00vMVxuICAgICAgICBjb25zdCBtYXRjaCA9IGFyZy5tYXRjaCgvKFtePV0rKT0/KC4rKT8vKTtcblxuICAgICAgICBpZiAobWF0Y2ggPT0gbnVsbCkge1xuICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0IGtleSA9IG1hdGNoWzFdO1xuICAgICAgICBjb25zdCB2YWx1ZSA9IG1hdGNoWzJdIHx8IHRydWU7XG4gICAgICAgIG9wdGlvbnNba2V5XSA9IHZhbHVlO1xuXG4gICAgICAgIGlmIChpbmRleCA9PT0gMCkge1xuICAgICAgICAgIGZpcnN0QXJnc0tleSA9IGtleTtcbiAgICAgICAgICBmaXJzdEFyZ3NWYWx1ZSA9IHZhbHVlO1xuICAgICAgICB9XG4gICAgICB9KTtcbiAgICB9XG5cbiAgICByZXR1cm4ge1xuICAgICAgZmlyc3RBcmdzS2V5LFxuICAgICAgZmlyc3RBcmdzVmFsdWUsXG4gICAgICBvcHRpb25zLFxuICAgIH07XG4gIH1cblxufVxuXG5tb2R1bGUuZXhwb3J0cyA9IEFyZ3NQYXJzZXI7XG4iXSwibWFwcGluZ3MiOiJBQUFBOzs7QUFHQTtBQUVBOzs7Ozs7O0FBT0E7Ozs7Ozs7QUFPQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUVBO0FBQ0E7QUFHQTtBQUNBO0FBQUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBSEE7QUFLQTtBQUNBO0FBcERBO0FBQ0E7QUFzREEiLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./node_modules/growi-commons/src/plugin/util/args-parser.js\n");
- /***/ }),
- /***/ "./node_modules/growi-commons/src/plugin/util/custom-tag-utils.js":
- /*!************************************************************************!*\
- !*** ./node_modules/growi-commons/src/plugin/util/custom-tag-utils.js ***!
- \************************************************************************/
- /*! no static exports found */
- /***/ (function(module, exports, __webpack_require__) {
- eval("const TagContext = __webpack_require__(/*! ../model/tag-context */ \"./node_modules/growi-commons/src/plugin/model/tag-context.js\");\n/**\n * @private\n *\n * create random strings\n * @see http://qiita.com/ryounagaoka/items/4736c225bdd86a74d59c\n *\n * @param {number} length\n * @return {string} random strings\n */\n\n\nfunction createRandomStr(length) {\n const bag = 'abcdefghijklmnopqrstuvwxyz0123456789';\n let generated = '';\n\n for (let i = 0; i < length; i++) {\n generated += bag[Math.floor(Math.random() * bag.length)];\n }\n\n return generated;\n}\n/**\n * @typedef FindTagAndReplaceResult\n * @property {string} html - HTML string\n * @property {Object} tagContextMap - Object.<string, [TagContext]{@link ../model/tag-context.html#TagContext}>\n *\n * @memberof customTagUtils\n */\n\n/**\n * @param {RegExp} tagPattern\n * @param {string} html\n * @param {function} replace replace function\n * @return {FindTagAndReplaceResult}\n *\n * @memberof customTagUtils\n */\n\n\nfunction findTagAndReplace(tagPattern, html, replace) {\n let replacedHtml = html;\n const tagContextMap = {};\n\n if (tagPattern == null || html == null) {\n return {\n html: replacedHtml,\n tagContextMap\n };\n } // see: https://regex101.com/r/NQq3s9/9\n\n\n const pattern = new RegExp(`\\\\$(${tagPattern.source})\\\\((.*?)\\\\)(?=[<\\\\[\\\\s\\\\$])|\\\\$(${tagPattern.source})\\\\((.*)\\\\)(?![<\\\\[\\\\s\\\\$])`, 'g');\n replacedHtml = html.replace(pattern, (all, group1, group2, group3, group4) => {\n const tagExpression = all;\n const method = (group1 || group3).trim();\n const args = (group2 || group4 || '').trim(); // create contexts\n\n const tagContext = new TagContext({\n tagExpression,\n method,\n args\n });\n\n if (replace != null) {\n return replace(tagContext);\n } // replace with empty dom\n\n\n const domId = `${method}-${createRandomStr(8)}`;\n tagContextMap[domId] = tagContext;\n return `<div id=\"${domId}\"></div>`;\n });\n return {\n html: replacedHtml,\n tagContextMap\n };\n}\n/**\n * @namespace customTagUtils\n */\n\n\nmodule.exports = {\n findTagAndReplace,\n\n /**\n * Context class used by findTagAndReplace\n * @memberof customTagUtils\n */\n TagContext,\n\n /**\n * [ArgsParser]{@link ./args-parser#ArgsParser}\n * @memberof customTagUtils\n */\n ArgsParser: __webpack_require__(/*! ./args-parser */ \"./node_modules/growi-commons/src/plugin/util/args-parser.js\"),\n\n /**\n * [OptionParser]{@link ./option-parser#OptionParser}\n * @memberof customTagUtils\n */\n OptionParser: __webpack_require__(/*! ./option-parser */ \"./node_modules/growi-commons/src/plugin/util/option-parser.js\")\n};//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvZ3Jvd2ktY29tbW9ucy9zcmMvcGx1Z2luL3V0aWwvY3VzdG9tLXRhZy11dGlscy5qcy5qcyIsInNvdXJjZXMiOlsid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9ncm93aS1jb21tb25zL3NyYy9wbHVnaW4vdXRpbC9jdXN0b20tdGFnLXV0aWxzLmpzP2UwODEiXSwic291cmNlc0NvbnRlbnQiOlsiY29uc3QgVGFnQ29udGV4dCA9IHJlcXVpcmUoJy4uL21vZGVsL3RhZy1jb250ZXh0Jyk7XG5cbi8qKlxuICogQHByaXZhdGVcbiAqXG4gKiBjcmVhdGUgcmFuZG9tIHN0cmluZ3NcbiAqIEBzZWUgaHR0cDovL3FpaXRhLmNvbS9yeW91bmFnYW9rYS9pdGVtcy80NzM2YzIyNWJkZDg2YTc0ZDU5Y1xuICpcbiAqIEBwYXJhbSB7bnVtYmVyfSBsZW5ndGhcbiAqIEByZXR1cm4ge3N0cmluZ30gcmFuZG9tIHN0cmluZ3NcbiAqL1xuZnVuY3Rpb24gY3JlYXRlUmFuZG9tU3RyKGxlbmd0aCkge1xuICBjb25zdCBiYWcgPSAnYWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXowMTIzNDU2Nzg5JztcbiAgbGV0IGdlbmVyYXRlZCA9ICcnO1xuICBmb3IgKGxldCBpID0gMDsgaSA8IGxlbmd0aDsgaSsrKSB7XG4gICAgZ2VuZXJhdGVkICs9IGJhZ1tNYXRoLmZsb29yKE1hdGgucmFuZG9tKCkgKiBiYWcubGVuZ3RoKV07XG4gIH1cbiAgcmV0dXJuIGdlbmVyYXRlZDtcbn1cblxuLyoqXG4gKiBAdHlwZWRlZiBGaW5kVGFnQW5kUmVwbGFjZVJlc3VsdFxuICogQHByb3BlcnR5IHtzdHJpbmd9IGh0bWwgLSBIVE1MIHN0cmluZ1xuICogQHByb3BlcnR5IHtPYmplY3R9IHRhZ0NvbnRleHRNYXAgLSBPYmplY3QuPHN0cmluZywgW1RhZ0NvbnRleHRde0BsaW5rIC4uL21vZGVsL3RhZy1jb250ZXh0Lmh0bWwjVGFnQ29udGV4dH0+XG4gKlxuICogQG1lbWJlcm9mIGN1c3RvbVRhZ1V0aWxzXG4gKi9cbi8qKlxuICogQHBhcmFtIHtSZWdFeHB9IHRhZ1BhdHRlcm5cbiAqIEBwYXJhbSB7c3RyaW5nfSBodG1sXG4gKiBAcGFyYW0ge2Z1bmN0aW9ufSByZXBsYWNlIHJlcGxhY2UgZnVuY3Rpb25cbiAqIEByZXR1cm4ge0ZpbmRUYWdBbmRSZXBsYWNlUmVzdWx0fVxuICpcbiAqIEBtZW1iZXJvZiBjdXN0b21UYWdVdGlsc1xuICovXG5mdW5jdGlvbiBmaW5kVGFnQW5kUmVwbGFjZSh0YWdQYXR0ZXJuLCBodG1sLCByZXBsYWNlKSB7XG4gIGxldCByZXBsYWNlZEh0bWwgPSBodG1sO1xuICBjb25zdCB0YWdDb250ZXh0TWFwID0ge307XG5cbiAgaWYgKHRhZ1BhdHRlcm4gPT0gbnVsbCB8fCBodG1sID09IG51bGwpIHtcbiAgICByZXR1cm4geyBodG1sOiByZXBsYWNlZEh0bWwsIHRhZ0NvbnRleHRNYXAgfTtcbiAgfVxuXG4gIC8vIHNlZTogaHR0cHM6Ly9yZWdleDEwMS5jb20vci9OUXEzczkvOVxuICBjb25zdCBwYXR0ZXJuID0gbmV3IFJlZ0V4cChgXFxcXCQoJHt0YWdQYXR0ZXJuLnNvdXJjZX0pXFxcXCgoLio/KVxcXFwpKD89WzxcXFxcW1xcXFxzXFxcXCRdKXxcXFxcJCgke3RhZ1BhdHRlcm4uc291cmNlfSlcXFxcKCguKilcXFxcKSg/IVs8XFxcXFtcXFxcc1xcXFwkXSlgLCAnZycpO1xuXG4gIHJlcGxhY2VkSHRtbCA9IGh0bWwucmVwbGFjZShwYXR0ZXJuLCAoYWxsLCBncm91cDEsIGdyb3VwMiwgZ3JvdXAzLCBncm91cDQpID0+IHtcbiAgICBjb25zdCB0YWdFeHByZXNzaW9uID0gYWxsO1xuICAgIGNvbnN0IG1ldGhvZCA9IChncm91cDEgfHwgZ3JvdXAzKS50cmltKCk7XG4gICAgY29uc3QgYXJncyA9IChncm91cDIgfHwgZ3JvdXA0IHx8ICcnKS50cmltKCk7XG5cbiAgICAvLyBjcmVhdGUgY29udGV4dHNcbiAgICBjb25zdCB0YWdDb250ZXh0ID0gbmV3IFRhZ0NvbnRleHQoeyB0YWdFeHByZXNzaW9uLCBtZXRob2QsIGFyZ3MgfSk7XG5cbiAgICBpZiAocmVwbGFjZSAhPSBudWxsKSB7XG4gICAgICByZXR1cm4gcmVwbGFjZSh0YWdDb250ZXh0KTtcbiAgICB9XG5cbiAgICAvLyByZXBsYWNlIHdpdGggZW1wdHkgZG9tXG4gICAgY29uc3QgZG9tSWQgPSBgJHttZXRob2R9LSR7Y3JlYXRlUmFuZG9tU3RyKDgpfWA7XG4gICAgdGFnQ29udGV4dE1hcFtkb21JZF0gPSB0YWdDb250ZXh0O1xuICAgIHJldHVybiBgPGRpdiBpZD1cIiR7ZG9tSWR9XCI+PC9kaXY+YDtcbiAgfSk7XG5cbiAgcmV0dXJuIHsgaHRtbDogcmVwbGFjZWRIdG1sLCB0YWdDb250ZXh0TWFwIH07XG59XG5cbi8qKlxuICogQG5hbWVzcGFjZSBjdXN0b21UYWdVdGlsc1xuICovXG5tb2R1bGUuZXhwb3J0cyA9IHtcbiAgZmluZFRhZ0FuZFJlcGxhY2UsXG4gIC8qKlxuICAgKiBDb250ZXh0IGNsYXNzIHVzZWQgYnkgZmluZFRhZ0FuZFJlcGxhY2VcbiAgICogQG1lbWJlcm9mIGN1c3RvbVRhZ1V0aWxzXG4gICAqL1xuICBUYWdDb250ZXh0LFxuICAvKipcbiAgICogW0FyZ3NQYXJzZXJde0BsaW5rIC4vYXJncy1wYXJzZXIjQXJnc1BhcnNlcn1cbiAgICogQG1lbWJlcm9mIGN1c3RvbVRhZ1V0aWxzXG4gICAqL1xuICBBcmdzUGFyc2VyOiByZXF1aXJlKCcuL2FyZ3MtcGFyc2VyJyksXG4gIC8qKlxuICAgKiBbT3B0aW9uUGFyc2VyXXtAbGluayAuL29wdGlvbi1wYXJzZXIjT3B0aW9uUGFyc2VyfVxuICAgKiBAbWVtYmVyb2YgY3VzdG9tVGFnVXRpbHNcbiAgICovXG4gIE9wdGlvblBhcnNlcjogcmVxdWlyZSgnLi9vcHRpb24tcGFyc2VyJyksXG59O1xuIl0sIm1hcHBpbmdzIjoiQUFBQTtBQUVBOzs7Ozs7Ozs7OztBQVNBO0FBQ0E7QUFDQTtBQUNBO0FBQUE7QUFDQTtBQUNBO0FBQ0E7QUFBQTtBQUNBO0FBRUE7Ozs7Ozs7O0FBT0E7Ozs7Ozs7Ozs7QUFRQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFBQTtBQUFBO0FBQUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFFQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFFQTtBQUFBO0FBQUE7QUFBQTtBQUNBO0FBRUE7Ozs7O0FBR0E7QUFDQTtBQUNBO0FBQUE7Ozs7QUFJQTtBQUNBO0FBQUE7Ozs7QUFJQTtBQUNBO0FBQUE7Ozs7QUFJQTtBQWhCQSIsInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./node_modules/growi-commons/src/plugin/util/custom-tag-utils.js\n");
- /***/ }),
- /***/ "./node_modules/growi-commons/src/plugin/util/option-parser.js":
- /*!*********************************************************************!*\
- !*** ./node_modules/growi-commons/src/plugin/util/option-parser.js ***!
- \*********************************************************************/
- /*! no static exports found */
- /***/ (function(module, exports) {
- eval("/**\n * Options parser for custom tag\n */\nclass OptionParser {\n /**\n * @typedef ParseRangeResult\n * @property {number} start - start index\n * @property {number} end - end index\n */\n\n /**\n * Parse range expression\n *\n * <ul>\n * <li>ex:</li>\n * <ul>\n * <li>1:2 -> { start: 1, end: 2 }</li>\n * <li>1: -> { start: 1, end: -1 }</li>\n * <li>2+3 -> { start: 1, end: 5 }</li>\n * </ul>\n * </ul>\n *\n * @see https://regex101.com/r/w4KCwC/4\n *\n * @static\n * @param {string} str\n * @returns {ParseRangeResult}\n */\n static parseRange(str) {\n if (str == null) {\n return null;\n } // see: https://regex101.com/r/w4KCwC/4\n\n\n const match = str.match(/^(-?[0-9]+)(([:+]{1})(-?[0-9]+)?)?$/);\n\n if (!match) {\n return null;\n } // determine start\n\n\n let start;\n let end; // has operator\n\n if (match[3] != null) {\n start = +match[1];\n const operator = match[3]; // determine end\n\n if (operator === ':') {\n end = +match[4] || -1; // set last(-1) if undefined\n } else if (operator === '+') {\n end = +match[4] || 0; // plus zero if undefined\n\n end += start;\n }\n } // don't have operator\n else {\n start = 1;\n end = +match[1];\n }\n\n return {\n start,\n end\n };\n }\n\n}\n\nmodule.exports = OptionParser;//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvZ3Jvd2ktY29tbW9ucy9zcmMvcGx1Z2luL3V0aWwvb3B0aW9uLXBhcnNlci5qcy5qcyIsInNvdXJjZXMiOlsid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9ncm93aS1jb21tb25zL3NyYy9wbHVnaW4vdXRpbC9vcHRpb24tcGFyc2VyLmpzP2FlMzkiXSwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBPcHRpb25zIHBhcnNlciBmb3IgY3VzdG9tIHRhZ1xuICovXG5jbGFzcyBPcHRpb25QYXJzZXIge1xuXG4gIC8qKlxuICAgKiBAdHlwZWRlZiBQYXJzZVJhbmdlUmVzdWx0XG4gICAqIEBwcm9wZXJ0eSB7bnVtYmVyfSBzdGFydCAtIHN0YXJ0IGluZGV4XG4gICAqIEBwcm9wZXJ0eSB7bnVtYmVyfSBlbmQgLSBlbmQgaW5kZXhcbiAgICovXG5cbiAgLyoqXG4gICAqIFBhcnNlIHJhbmdlIGV4cHJlc3Npb25cbiAgICpcbiAgICogPHVsPlxuICAgKiAgPGxpPmV4OjwvbGk+XG4gICAqICA8dWw+XG4gICAqICAgIDxsaT4xOjIgLT4geyBzdGFydDogMSwgZW5kOiAyIH08L2xpPlxuICAgKiAgICA8bGk+MTogIC0+IHsgc3RhcnQ6IDEsIGVuZDogLTEgfTwvbGk+XG4gICAqICAgIDxsaT4yKzMgLT4geyBzdGFydDogMSwgZW5kOiA1IH08L2xpPlxuICAgKiAgPC91bD5cbiAgICogPC91bD5cbiAgICpcbiAgICogQHNlZSBodHRwczovL3JlZ2V4MTAxLmNvbS9yL3c0S0N3Qy80XG4gICAqXG4gICAqIEBzdGF0aWNcbiAgICogQHBhcmFtIHtzdHJpbmd9IHN0clxuICAgKiBAcmV0dXJucyB7UGFyc2VSYW5nZVJlc3VsdH1cbiAgICovXG4gIHN0YXRpYyBwYXJzZVJhbmdlKHN0cikge1xuICAgIGlmIChzdHIgPT0gbnVsbCkge1xuICAgICAgcmV0dXJuIG51bGw7XG4gICAgfVxuXG4gICAgLy8gc2VlOiBodHRwczovL3JlZ2V4MTAxLmNvbS9yL3c0S0N3Qy80XG4gICAgY29uc3QgbWF0Y2ggPSBzdHIubWF0Y2goL14oLT9bMC05XSspKChbOitdezF9KSgtP1swLTldKyk/KT8kLyk7XG4gICAgaWYgKCFtYXRjaCkge1xuICAgICAgcmV0dXJuIG51bGw7XG4gICAgfVxuXG4gICAgLy8gZGV0ZXJtaW5lIHN0YXJ0XG4gICAgbGV0IHN0YXJ0O1xuICAgIGxldCBlbmQ7XG5cbiAgICAvLyBoYXMgb3BlcmF0b3JcbiAgICBpZiAobWF0Y2hbM10gIT0gbnVsbCkge1xuICAgICAgc3RhcnQgPSArbWF0Y2hbMV07XG4gICAgICBjb25zdCBvcGVyYXRvciA9IG1hdGNoWzNdO1xuXG4gICAgICAvLyBkZXRlcm1pbmUgZW5kXG4gICAgICBpZiAob3BlcmF0b3IgPT09ICc6Jykge1xuICAgICAgICBlbmQgPSArbWF0Y2hbNF0gfHwgLTE7IC8vIHNldCBsYXN0KC0xKSBpZiB1bmRlZmluZWRcbiAgICAgIH1cbiAgICAgIGVsc2UgaWYgKG9wZXJhdG9yID09PSAnKycpIHtcbiAgICAgICAgZW5kID0gK21hdGNoWzRdIHx8IDA7IC8vIHBsdXMgemVybyBpZiB1bmRlZmluZWRcbiAgICAgICAgZW5kICs9IHN0YXJ0O1xuICAgICAgfVxuICAgIH1cbiAgICAvLyBkb24ndCBoYXZlIG9wZXJhdG9yXG4gICAgZWxzZSB7XG4gICAgICBzdGFydCA9IDE7XG4gICAgICBlbmQgPSArbWF0Y2hbMV07XG4gICAgfVxuXG4gICAgcmV0dXJuIHsgc3RhcnQsIGVuZCB9O1xuICB9XG5cbn1cblxubW9kdWxlLmV4cG9ydHMgPSBPcHRpb25QYXJzZXI7XG4iXSwibWFwcGluZ3MiOiJBQUFBOzs7QUFHQTtBQUVBOzs7Ozs7QUFNQTs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBa0JBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFBQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFFQTtBQUNBO0FBQ0E7QUFFQTtBQUNBO0FBQUE7QUFDQTtBQUNBO0FBWkE7QUFlQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQUE7QUFBQTtBQUFBO0FBQ0E7QUFDQTtBQS9EQTtBQUNBO0FBaUVBIiwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./node_modules/growi-commons/src/plugin/util/option-parser.js\n");
- /***/ }),
- /***/ "./node_modules/growi-commons/src/service/localstorage-manager.js":
- /*!************************************************************************!*\
- !*** ./node_modules/growi-commons/src/service/localstorage-manager.js ***!
- \************************************************************************/
- /*! no static exports found */
- /***/ (function(module, exports) {
- eval("let _instance = null;\n\nclass LocalStorageManager {\n static getInstance() {\n if (_instance == null) {\n _instance = new LocalStorageManager();\n }\n\n return _instance;\n }\n /**\n * retrieve and return parsed JSON object\n * @param {string} namespace\n * @param {string} key\n * @returns {object}\n */\n\n\n retrieveFromSessionStorage(namespace, key) {\n const item = JSON.parse(sessionStorage.getItem(namespace)) || {};\n\n if (key != null) {\n return item[key];\n }\n\n return item;\n }\n /**\n * save JavaScript object as stringified JSON object\n *\n * @param {string} namespace\n * @param {string | object} cacheObjOrKey cache object or key (if third param is undefined)\n * @param {object} cacheObj\n */\n\n\n saveToSessionStorage(namespace, cacheObjOrKey, cacheObj) {\n let item = JSON.parse(sessionStorage.getItem(namespace)) || {};\n\n if (cacheObj !== undefined) {\n const key = cacheObjOrKey;\n item[key] = cacheObj;\n } else {\n item = cacheObjOrKey;\n }\n\n sessionStorage.setItem(namespace, JSON.stringify(item));\n }\n /**\n * clear all state caches\n *\n * @param {string} namespace\n */\n\n\n clearAllStateCaches(namespace) {\n sessionStorage.removeItem(namespace);\n }\n\n}\n\nmodule.exports = LocalStorageManager;//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvZ3Jvd2ktY29tbW9ucy9zcmMvc2VydmljZS9sb2NhbHN0b3JhZ2UtbWFuYWdlci5qcy5qcyIsInNvdXJjZXMiOlsid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9ncm93aS1jb21tb25zL3NyYy9zZXJ2aWNlL2xvY2Fsc3RvcmFnZS1tYW5hZ2VyLmpzP2FjZTgiXSwic291cmNlc0NvbnRlbnQiOlsibGV0IF9pbnN0YW5jZSA9IG51bGw7XG5jbGFzcyBMb2NhbFN0b3JhZ2VNYW5hZ2VyIHtcblxuICBzdGF0aWMgZ2V0SW5zdGFuY2UoKSB7XG4gICAgaWYgKF9pbnN0YW5jZSA9PSBudWxsKSB7XG4gICAgICBfaW5zdGFuY2UgPSBuZXcgTG9jYWxTdG9yYWdlTWFuYWdlcigpO1xuICAgIH1cblxuICAgIHJldHVybiBfaW5zdGFuY2U7XG4gIH1cblxuICAvKipcbiAgICogcmV0cmlldmUgYW5kIHJldHVybiBwYXJzZWQgSlNPTiBvYmplY3RcbiAgICogQHBhcmFtIHtzdHJpbmd9IG5hbWVzcGFjZVxuICAgKiBAcGFyYW0ge3N0cmluZ30ga2V5XG4gICAqIEByZXR1cm5zIHtvYmplY3R9XG4gICAqL1xuICByZXRyaWV2ZUZyb21TZXNzaW9uU3RvcmFnZShuYW1lc3BhY2UsIGtleSkge1xuICAgIGNvbnN0IGl0ZW0gPSBKU09OLnBhcnNlKHNlc3Npb25TdG9yYWdlLmdldEl0ZW0obmFtZXNwYWNlKSkgfHwge307XG4gICAgaWYgKGtleSAhPSBudWxsKSB7XG4gICAgICByZXR1cm4gaXRlbVtrZXldO1xuICAgIH1cbiAgICByZXR1cm4gaXRlbTtcbiAgfVxuXG4gIC8qKlxuICAgKiBzYXZlIEphdmFTY3JpcHQgb2JqZWN0IGFzIHN0cmluZ2lmaWVkIEpTT04gb2JqZWN0XG4gICAqXG4gICAqIEBwYXJhbSB7c3RyaW5nfSBuYW1lc3BhY2VcbiAgICogQHBhcmFtIHtzdHJpbmcgfCBvYmplY3R9IGNhY2hlT2JqT3JLZXkgY2FjaGUgb2JqZWN0IG9yIGtleSAoaWYgdGhpcmQgcGFyYW0gaXMgdW5kZWZpbmVkKVxuICAgKiBAcGFyYW0ge29iamVjdH0gY2FjaGVPYmpcbiAgICovXG4gIHNhdmVUb1Nlc3Npb25TdG9yYWdlKG5hbWVzcGFjZSwgY2FjaGVPYmpPcktleSwgY2FjaGVPYmopIHtcbiAgICBsZXQgaXRlbSA9IEpTT04ucGFyc2Uoc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbShuYW1lc3BhY2UpKSB8fCB7fTtcbiAgICBpZiAoY2FjaGVPYmogIT09IHVuZGVmaW5lZCkge1xuICAgICAgY29uc3Qga2V5ID0gY2FjaGVPYmpPcktleTtcbiAgICAgIGl0ZW1ba2V5XSA9IGNhY2hlT2JqO1xuICAgIH1cbiAgICBlbHNlIHtcbiAgICAgIGl0ZW0gPSBjYWNoZU9iak9yS2V5O1xuICAgIH1cbiAgICBzZXNzaW9uU3RvcmFnZS5zZXRJdGVtKG5hbWVzcGFjZSwgSlNPTi5zdHJpbmdpZnkoaXRlbSkpO1xuICB9XG5cbiAgLyoqXG4gICAqIGNsZWFyIGFsbCBzdGF0ZSBjYWNoZXNcbiAgICpcbiAgICogQHBhcmFtIHtzdHJpbmd9IG5hbWVzcGFjZVxuICAgKi9cbiAgY2xlYXJBbGxTdGF0ZUNhY2hlcyhuYW1lc3BhY2UpIHtcbiAgICBzZXNzaW9uU3RvcmFnZS5yZW1vdmVJdGVtKG5hbWVzcGFjZSk7XG4gIH1cblxufVxuXG5tb2R1bGUuZXhwb3J0cyA9IExvY2FsU3RvcmFnZU1hbmFnZXI7XG4iXSwibWFwcGluZ3MiOiJBQUFBO0FBQ0E7QUFBQTtBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBRUE7Ozs7Ozs7O0FBTUE7QUFDQTtBQUNBO0FBQUE7QUFDQTtBQUNBO0FBQ0E7QUFBQTtBQUNBO0FBRUE7Ozs7Ozs7OztBQU9BO0FBQ0E7QUFDQTtBQUFBO0FBQ0E7QUFDQTtBQUNBO0FBRUE7QUFDQTtBQUNBO0FBQUE7QUFDQTtBQUVBOzs7Ozs7O0FBS0E7QUFDQTtBQUNBO0FBQ0E7QUFuREE7QUFDQTtBQXFEQSIsInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./node_modules/growi-commons/src/service/localstorage-manager.js\n");
- /***/ }),
- /***/ "./node_modules/growi-commons/src/util/basic-interceptor.js":
- /*!******************************************************************!*\
- !*** ./node_modules/growi-commons/src/util/basic-interceptor.js ***!
- \******************************************************************/
- /*! no static exports found */
- /***/ (function(module, exports) {
- eval("/**\n * Basic Interceptor class\n */\nclass BasicInterceptor {\n /**\n * getter for id\n */\n getId() {\n return this.constructor.name;\n }\n /**\n * return whether this interceptor works by specified contextName\n *\n * @param {string} contextName\n * @return {boolean}\n */\n\n\n isInterceptWhen(contextName) {\n // implement this\n return false;\n }\n /**\n * return whether this interceptor processes in parallel mode or sequencial mode\n * @return {boolean}\n */\n\n\n isProcessableParallel() {\n // implement this\n return true;\n }\n /**\n * process method\n *\n * @param {string} contextName\n * @param {any} args\n * @return {Promise<any>}\n */\n\n\n process(contextName, ...args) {\n // override this\n return Promise.resolve(...args);\n }\n\n}\n\nmodule.exports = BasicInterceptor;//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvZ3Jvd2ktY29tbW9ucy9zcmMvdXRpbC9iYXNpYy1pbnRlcmNlcHRvci5qcy5qcyIsInNvdXJjZXMiOlsid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9ncm93aS1jb21tb25zL3NyYy91dGlsL2Jhc2ljLWludGVyY2VwdG9yLmpzPzI3NDYiXSwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBCYXNpYyBJbnRlcmNlcHRvciBjbGFzc1xuICovXG5jbGFzcyBCYXNpY0ludGVyY2VwdG9yIHtcblxuICAvKipcbiAgICogZ2V0dGVyIGZvciBpZFxuICAgKi9cbiAgZ2V0SWQoKSB7XG4gICAgcmV0dXJuIHRoaXMuY29uc3RydWN0b3IubmFtZTtcbiAgfVxuXG4gIC8qKlxuICAgKiByZXR1cm4gd2hldGhlciB0aGlzIGludGVyY2VwdG9yIHdvcmtzIGJ5IHNwZWNpZmllZCBjb250ZXh0TmFtZVxuICAgKlxuICAgKiBAcGFyYW0ge3N0cmluZ30gY29udGV4dE5hbWVcbiAgICogQHJldHVybiB7Ym9vbGVhbn1cbiAgICovXG4gIGlzSW50ZXJjZXB0V2hlbihjb250ZXh0TmFtZSkge1xuICAgIC8vIGltcGxlbWVudCB0aGlzXG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG5cbiAgLyoqXG4gICAqIHJldHVybiB3aGV0aGVyIHRoaXMgaW50ZXJjZXB0b3IgcHJvY2Vzc2VzIGluIHBhcmFsbGVsIG1vZGUgb3Igc2VxdWVuY2lhbCBtb2RlXG4gICAqIEByZXR1cm4ge2Jvb2xlYW59XG4gICAqL1xuICBpc1Byb2Nlc3NhYmxlUGFyYWxsZWwoKSB7XG4gICAgLy8gaW1wbGVtZW50IHRoaXNcbiAgICByZXR1cm4gdHJ1ZTtcbiAgfVxuXG4gIC8qKlxuICAgKiBwcm9jZXNzIG1ldGhvZFxuICAgKlxuICAgKiBAcGFyYW0ge3N0cmluZ30gY29udGV4dE5hbWVcbiAgICogQHBhcmFtIHthbnl9IGFyZ3NcbiAgICogQHJldHVybiB7UHJvbWlzZTxhbnk+fVxuICAgKi9cbiAgcHJvY2Vzcyhjb250ZXh0TmFtZSwgLi4uYXJncykge1xuICAgIC8vIG92ZXJyaWRlIHRoaXNcbiAgICByZXR1cm4gUHJvbWlzZS5yZXNvbHZlKC4uLmFyZ3MpO1xuICB9XG5cbn1cblxubW9kdWxlLmV4cG9ydHMgPSBCYXNpY0ludGVyY2VwdG9yO1xuIl0sIm1hcHBpbmdzIjoiQUFBQTs7O0FBR0E7QUFFQTs7O0FBR0E7QUFDQTtBQUNBO0FBRUE7Ozs7Ozs7O0FBTUE7QUFDQTtBQUNBO0FBQ0E7QUFFQTs7Ozs7O0FBSUE7QUFDQTtBQUNBO0FBQ0E7QUFFQTs7Ozs7Ozs7O0FBT0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQXhDQTtBQUNBO0FBMENBIiwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./node_modules/growi-commons/src/util/basic-interceptor.js\n");
- /***/ }),
- /***/ "./node_modules/growi-commons/src/util/env-utils.js":
- /*!**********************************************************!*\
- !*** ./node_modules/growi-commons/src/util/env-utils.js ***!
- \**********************************************************/
- /*! no static exports found */
- /***/ (function(module, exports) {
- eval("/**\n * convert to boolean\n *\n * @param {string} value\n * @returns {boolean}\n * @memberof envUtils\n */\nfunction toBoolean(value) {\n return /^(true|1)$/i.test(value);\n}\n/**\n * @namespace envUtils\n */\n\n\nmodule.exports = {\n toBoolean\n};//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvZ3Jvd2ktY29tbW9ucy9zcmMvdXRpbC9lbnYtdXRpbHMuanMuanMiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvZ3Jvd2ktY29tbW9ucy9zcmMvdXRpbC9lbnYtdXRpbHMuanM/YzQ1OSJdLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIGNvbnZlcnQgdG8gYm9vbGVhblxuICpcbiAqIEBwYXJhbSB7c3RyaW5nfSB2YWx1ZVxuICogQHJldHVybnMge2Jvb2xlYW59XG4gKiBAbWVtYmVyb2YgZW52VXRpbHNcbiAqL1xuZnVuY3Rpb24gdG9Cb29sZWFuKHZhbHVlKSB7XG4gIHJldHVybiAvXih0cnVlfDEpJC9pLnRlc3QodmFsdWUpO1xufVxuXG4vKipcbiAqIEBuYW1lc3BhY2UgZW52VXRpbHNcbiAqL1xubW9kdWxlLmV4cG9ydHMgPSB7XG4gIHRvQm9vbGVhbixcbn07XG4iXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7O0FBT0E7QUFDQTtBQUNBO0FBRUE7Ozs7O0FBR0E7QUFDQTtBQURBIiwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./node_modules/growi-commons/src/util/env-utils.js\n");
- /***/ }),
- /***/ "./node_modules/growi-commons/src/util/path-utils.js":
- /*!***********************************************************!*\
- !*** ./node_modules/growi-commons/src/util/path-utils.js ***!
- \***********************************************************/
- /*! no static exports found */
- /***/ (function(module, exports) {
- eval("/**\n * @private\n *\n *\n * @param {string} path\n * @returns {RegExpMatchArray}\n * @memberof pathUtils\n */\nfunction matchSlashes(path) {\n // https://regex101.com/r/Z21fEd/5\n return path.match(/^((\\/+)?(.+?))(\\/+)?$/);\n}\n/**\n *\n * @param {string} path\n * @returns {boolean}\n * @memberof pathUtils\n */\n\n\nfunction hasHeadingSlash(path) {\n if (path === '') {\n return false;\n }\n\n const match = matchSlashes(path);\n return match[2] != null;\n}\n/**\n *\n * @param {string} path\n * @returns {boolean}\n * @memberof pathUtils\n */\n\n\nfunction hasTrailingSlash(path) {\n if (path === '') {\n return false;\n }\n\n const match = matchSlashes(path);\n return match[4] != null;\n}\n/**\n *\n * @param {string} path\n * @returns {string}\n * @memberof pathUtils\n */\n\n\nfunction addHeadingSlash(path) {\n if (path === '/') {\n return path;\n }\n\n if (!hasHeadingSlash(path)) {\n return `/${path}`;\n }\n\n return path;\n}\n/**\n *\n * @param {string} path\n * @returns {string}\n * @memberof pathUtils\n */\n\n\nfunction addTrailingSlash(path) {\n if (path === '/') {\n return path;\n }\n\n if (!hasTrailingSlash(path)) {\n return `${path}/`;\n }\n\n return path;\n}\n/**\n *\n * @param {string} path\n * @returns {string}\n * @memberof pathUtils\n */\n\n\nfunction removeTrailingSlash(path) {\n if (path === '/') {\n return path;\n }\n\n const match = matchSlashes(path);\n return match[1];\n}\n/**\n * A short-hand method to add heading slash and remove trailing slash.\n *\n * @param {string} path\n * @returns {string}\n * @memberof pathUtils\n */\n\n\nfunction normalizePath(path) {\n if (path === '' || path === '/') {\n return '/';\n }\n\n const match = matchSlashes(path);\n\n if (match == null) {\n return '/';\n }\n\n return `/${match[3]}`;\n}\n/**\n * @namespace pathUtils\n */\n\n\nmodule.exports = {\n hasHeadingSlash,\n hasTrailingSlash,\n addHeadingSlash,\n addTrailingSlash,\n removeTrailingSlash,\n normalizePath\n};//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvZ3Jvd2ktY29tbW9ucy9zcmMvdXRpbC9wYXRoLXV0aWxzLmpzLmpzIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL2dyb3dpLWNvbW1vbnMvc3JjL3V0aWwvcGF0aC11dGlscy5qcz85MmM4Il0sInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQHByaXZhdGVcbiAqXG4gKlxuICogQHBhcmFtIHtzdHJpbmd9IHBhdGhcbiAqIEByZXR1cm5zIHtSZWdFeHBNYXRjaEFycmF5fVxuICogQG1lbWJlcm9mIHBhdGhVdGlsc1xuICovXG5mdW5jdGlvbiBtYXRjaFNsYXNoZXMocGF0aCkge1xuICAvLyBodHRwczovL3JlZ2V4MTAxLmNvbS9yL1oyMWZFZC81XG4gIHJldHVybiBwYXRoLm1hdGNoKC9eKChcXC8rKT8oLis/KSkoXFwvKyk/JC8pO1xufVxuXG4vKipcbiAqXG4gKiBAcGFyYW0ge3N0cmluZ30gcGF0aFxuICogQHJldHVybnMge2Jvb2xlYW59XG4gKiBAbWVtYmVyb2YgcGF0aFV0aWxzXG4gKi9cbmZ1bmN0aW9uIGhhc0hlYWRpbmdTbGFzaChwYXRoKSB7XG4gIGlmIChwYXRoID09PSAnJykge1xuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuICBjb25zdCBtYXRjaCA9IG1hdGNoU2xhc2hlcyhwYXRoKTtcbiAgcmV0dXJuIChtYXRjaFsyXSAhPSBudWxsKTtcbn1cblxuLyoqXG4gKlxuICogQHBhcmFtIHtzdHJpbmd9IHBhdGhcbiAqIEByZXR1cm5zIHtib29sZWFufVxuICogQG1lbWJlcm9mIHBhdGhVdGlsc1xuICovXG5mdW5jdGlvbiBoYXNUcmFpbGluZ1NsYXNoKHBhdGgpIHtcbiAgaWYgKHBhdGggPT09ICcnKSB7XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG4gIGNvbnN0IG1hdGNoID0gbWF0Y2hTbGFzaGVzKHBhdGgpO1xuICByZXR1cm4gKG1hdGNoWzRdICE9IG51bGwpO1xufVxuXG4vKipcbiAqXG4gKiBAcGFyYW0ge3N0cmluZ30gcGF0aFxuICogQHJldHVybnMge3N0cmluZ31cbiAqIEBtZW1iZXJvZiBwYXRoVXRpbHNcbiAqL1xuZnVuY3Rpb24gYWRkSGVhZGluZ1NsYXNoKHBhdGgpIHtcbiAgaWYgKHBhdGggPT09ICcvJykge1xuICAgIHJldHVybiBwYXRoO1xuICB9XG5cbiAgaWYgKCFoYXNIZWFkaW5nU2xhc2gocGF0aCkpIHtcbiAgICByZXR1cm4gYC8ke3BhdGh9YDtcbiAgfVxuICByZXR1cm4gcGF0aDtcbn1cblxuLyoqXG4gKlxuICogQHBhcmFtIHtzdHJpbmd9IHBhdGhcbiAqIEByZXR1cm5zIHtzdHJpbmd9XG4gKiBAbWVtYmVyb2YgcGF0aFV0aWxzXG4gKi9cbmZ1bmN0aW9uIGFkZFRyYWlsaW5nU2xhc2gocGF0aCkge1xuICBpZiAocGF0aCA9PT0gJy8nKSB7XG4gICAgcmV0dXJuIHBhdGg7XG4gIH1cblxuICBpZiAoIWhhc1RyYWlsaW5nU2xhc2gocGF0aCkpIHtcbiAgICByZXR1cm4gYCR7cGF0aH0vYDtcbiAgfVxuICByZXR1cm4gcGF0aDtcbn1cblxuLyoqXG4gKlxuICogQHBhcmFtIHtzdHJpbmd9IHBhdGhcbiAqIEByZXR1cm5zIHtzdHJpbmd9XG4gKiBAbWVtYmVyb2YgcGF0aFV0aWxzXG4gKi9cbmZ1bmN0aW9uIHJlbW92ZVRyYWlsaW5nU2xhc2gocGF0aCkge1xuICBpZiAocGF0aCA9PT0gJy8nKSB7XG4gICAgcmV0dXJuIHBhdGg7XG4gIH1cblxuICBjb25zdCBtYXRjaCA9IG1hdGNoU2xhc2hlcyhwYXRoKTtcbiAgcmV0dXJuIG1hdGNoWzFdO1xufVxuXG4vKipcbiAqIEEgc2hvcnQtaGFuZCBtZXRob2QgdG8gYWRkIGhlYWRpbmcgc2xhc2ggYW5kIHJlbW92ZSB0cmFpbGluZyBzbGFzaC5cbiAqXG4gKiBAcGFyYW0ge3N0cmluZ30gcGF0aFxuICogQHJldHVybnMge3N0cmluZ31cbiAqIEBtZW1iZXJvZiBwYXRoVXRpbHNcbiAqL1xuZnVuY3Rpb24gbm9ybWFsaXplUGF0aChwYXRoKSB7XG4gIGlmIChwYXRoID09PSAnJyB8fCBwYXRoID09PSAnLycpIHtcbiAgICByZXR1cm4gJy8nO1xuICB9XG5cbiAgY29uc3QgbWF0Y2ggPSBtYXRjaFNsYXNoZXMocGF0aCk7XG4gIGlmIChtYXRjaCA9PSBudWxsKSB7XG4gICAgcmV0dXJuICcvJztcbiAgfVxuICByZXR1cm4gYC8ke21hdGNoWzNdfWA7XG59XG5cbi8qKlxuICogQG5hbWVzcGFjZSBwYXRoVXRpbHNcbiAqL1xubW9kdWxlLmV4cG9ydHMgPSB7XG4gIGhhc0hlYWRpbmdTbGFzaCxcbiAgaGFzVHJhaWxpbmdTbGFzaCxcbiAgYWRkSGVhZGluZ1NsYXNoLFxuICBhZGRUcmFpbGluZ1NsYXNoLFxuICByZW1vdmVUcmFpbGluZ1NsYXNoLFxuICBub3JtYWxpemVQYXRoLFxufTtcbiJdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7Ozs7O0FBUUE7QUFDQTtBQUNBO0FBQ0E7QUFFQTs7Ozs7Ozs7QUFNQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQUE7QUFDQTtBQUNBO0FBRUE7Ozs7Ozs7O0FBTUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUFBO0FBQ0E7QUFDQTtBQUVBOzs7Ozs7OztBQU1BO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUFBO0FBQ0E7QUFFQTs7Ozs7Ozs7QUFNQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFBQTtBQUNBO0FBRUE7Ozs7Ozs7O0FBTUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUVBOzs7Ozs7Ozs7QUFPQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUFBO0FBQ0E7QUFDQTtBQUNBO0FBQUE7QUFDQTtBQUVBOzs7OztBQUdBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBTkEiLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./node_modules/growi-commons/src/util/path-utils.js\n");
- /***/ }),
- /***/ "./node_modules/has/src/index.js":
- /*!***************************************!*\
- !*** ./node_modules/has/src/index.js ***!
- \***************************************/
- /*! no static exports found */
- /***/ (function(module, exports, __webpack_require__) {
- "use strict";
- eval("\n\nvar bind = __webpack_require__(/*! function-bind */ \"./node_modules/function-bind/index.js\");\n\nmodule.exports = bind.call(Function.call, Object.prototype.hasOwnProperty);\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvaGFzL3NyYy9pbmRleC5qcy5qcyIsInNvdXJjZXMiOlsid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9oYXMvc3JjL2luZGV4LmpzP2EwZDMiXSwic291cmNlc0NvbnRlbnQiOlsiJ3VzZSBzdHJpY3QnO1xuXG52YXIgYmluZCA9IHJlcXVpcmUoJ2Z1bmN0aW9uLWJpbmQnKTtcblxubW9kdWxlLmV4cG9ydHMgPSBiaW5kLmNhbGwoRnVuY3Rpb24uY2FsbCwgT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eSk7XG4iXSwibWFwcGluZ3MiOiJBQUFBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7Iiwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./node_modules/has/src/index.js\n");
- /***/ }),
- /***/ "./node_modules/socket.io-client/node_modules/debug/src/browser.js":
- /*!*************************************************************************!*\
- !*** ./node_modules/socket.io-client/node_modules/debug/src/browser.js ***!
- \*************************************************************************/
- /*! no static exports found */
- /***/ (function(module, exports, __webpack_require__) {
- eval("/* WEBPACK VAR INJECTION */(function(process) {/* eslint-env browser */\n\n/**\n * This is the web browser implementation of `debug()`.\n */\n\nexports.log = log;\nexports.formatArgs = formatArgs;\nexports.save = save;\nexports.load = load;\nexports.useColors = useColors;\nexports.storage = localstorage();\n\n/**\n * Colors.\n */\n\nexports.colors = [\n\t'#0000CC',\n\t'#0000FF',\n\t'#0033CC',\n\t'#0033FF',\n\t'#0066CC',\n\t'#0066FF',\n\t'#0099CC',\n\t'#0099FF',\n\t'#00CC00',\n\t'#00CC33',\n\t'#00CC66',\n\t'#00CC99',\n\t'#00CCCC',\n\t'#00CCFF',\n\t'#3300CC',\n\t'#3300FF',\n\t'#3333CC',\n\t'#3333FF',\n\t'#3366CC',\n\t'#3366FF',\n\t'#3399CC',\n\t'#3399FF',\n\t'#33CC00',\n\t'#33CC33',\n\t'#33CC66',\n\t'#33CC99',\n\t'#33CCCC',\n\t'#33CCFF',\n\t'#6600CC',\n\t'#6600FF',\n\t'#6633CC',\n\t'#6633FF',\n\t'#66CC00',\n\t'#66CC33',\n\t'#9900CC',\n\t'#9900FF',\n\t'#9933CC',\n\t'#9933FF',\n\t'#99CC00',\n\t'#99CC33',\n\t'#CC0000',\n\t'#CC0033',\n\t'#CC0066',\n\t'#CC0099',\n\t'#CC00CC',\n\t'#CC00FF',\n\t'#CC3300',\n\t'#CC3333',\n\t'#CC3366',\n\t'#CC3399',\n\t'#CC33CC',\n\t'#CC33FF',\n\t'#CC6600',\n\t'#CC6633',\n\t'#CC9900',\n\t'#CC9933',\n\t'#CCCC00',\n\t'#CCCC33',\n\t'#FF0000',\n\t'#FF0033',\n\t'#FF0066',\n\t'#FF0099',\n\t'#FF00CC',\n\t'#FF00FF',\n\t'#FF3300',\n\t'#FF3333',\n\t'#FF3366',\n\t'#FF3399',\n\t'#FF33CC',\n\t'#FF33FF',\n\t'#FF6600',\n\t'#FF6633',\n\t'#FF9900',\n\t'#FF9933',\n\t'#FFCC00',\n\t'#FFCC33'\n];\n\n/**\n * Currently only WebKit-based Web Inspectors, Firefox >= v31,\n * and the Firebug extension (any Firefox version) are known\n * to support \"%c\" CSS customizations.\n *\n * TODO: add a `localStorage` variable to explicitly enable/disable colors\n */\n\n// eslint-disable-next-line complexity\nfunction useColors() {\n\t// NB: In an Electron preload script, document will be defined but not fully\n\t// initialized. Since we know we're in Chrome, we'll just detect this case\n\t// explicitly\n\tif (typeof window !== 'undefined' && window.process && (window.process.type === 'renderer' || window.process.__nwjs)) {\n\t\treturn true;\n\t}\n\n\t// Internet Explorer and Edge do not support colors.\n\tif (typeof navigator !== 'undefined' && navigator.userAgent && navigator.userAgent.toLowerCase().match(/(edge|trident)\\/(\\d+)/)) {\n\t\treturn false;\n\t}\n\n\t// Is webkit? http://stackoverflow.com/a/16459606/376773\n\t// document is undefined in react-native: https://github.com/facebook/react-native/pull/1632\n\treturn (typeof document !== 'undefined' && document.documentElement && document.documentElement.style && document.documentElement.style.WebkitAppearance) ||\n\t\t// Is firebug? http://stackoverflow.com/a/398120/376773\n\t\t(typeof window !== 'undefined' && window.console && (window.console.firebug || (window.console.exception && window.console.table))) ||\n\t\t// Is firefox >= v31?\n\t\t// https://developer.mozilla.org/en-US/docs/Tools/Web_Console#Styling_messages\n\t\t(typeof navigator !== 'undefined' && navigator.userAgent && navigator.userAgent.toLowerCase().match(/firefox\\/(\\d+)/) && parseInt(RegExp.$1, 10) >= 31) ||\n\t\t// Double check webkit in userAgent just in case we are in a worker\n\t\t(typeof navigator !== 'undefined' && navigator.userAgent && navigator.userAgent.toLowerCase().match(/applewebkit\\/(\\d+)/));\n}\n\n/**\n * Colorize log arguments if enabled.\n *\n * @api public\n */\n\nfunction formatArgs(args) {\n\targs[0] = (this.useColors ? '%c' : '') +\n\t\tthis.namespace +\n\t\t(this.useColors ? ' %c' : ' ') +\n\t\targs[0] +\n\t\t(this.useColors ? '%c ' : ' ') +\n\t\t'+' + module.exports.humanize(this.diff);\n\n\tif (!this.useColors) {\n\t\treturn;\n\t}\n\n\tconst c = 'color: ' + this.color;\n\targs.splice(1, 0, c, 'color: inherit');\n\n\t// The final \"%c\" is somewhat tricky, because there could be other\n\t// arguments passed either before or after the %c, so we need to\n\t// figure out the correct index to insert the CSS into\n\tlet index = 0;\n\tlet lastC = 0;\n\targs[0].replace(/%[a-zA-Z%]/g, match => {\n\t\tif (match === '%%') {\n\t\t\treturn;\n\t\t}\n\t\tindex++;\n\t\tif (match === '%c') {\n\t\t\t// We only are interested in the *last* %c\n\t\t\t// (the user may have provided their own)\n\t\t\tlastC = index;\n\t\t}\n\t});\n\n\targs.splice(lastC, 0, c);\n}\n\n/**\n * Invokes `console.log()` when available.\n * No-op when `console.log` is not a \"function\".\n *\n * @api public\n */\nfunction log(...args) {\n\t// This hackery is required for IE8/9, where\n\t// the `console.log` function doesn't have 'apply'\n\treturn typeof console === 'object' &&\n\t\tconsole.log &&\n\t\tconsole.log(...args);\n}\n\n/**\n * Save `namespaces`.\n *\n * @param {String} namespaces\n * @api private\n */\nfunction save(namespaces) {\n\ttry {\n\t\tif (namespaces) {\n\t\t\texports.storage.setItem('debug', namespaces);\n\t\t} else {\n\t\t\texports.storage.removeItem('debug');\n\t\t}\n\t} catch (error) {\n\t\t// Swallow\n\t\t// XXX (@Qix-) should we be logging these?\n\t}\n}\n\n/**\n * Load `namespaces`.\n *\n * @return {String} returns the previously persisted debug modes\n * @api private\n */\nfunction load() {\n\tlet r;\n\ttry {\n\t\tr = exports.storage.getItem('debug');\n\t} catch (error) {\n\t\t// Swallow\n\t\t// XXX (@Qix-) should we be logging these?\n\t}\n\n\t// If debug isn't set in LS, and we're in Electron, try to load $DEBUG\n\tif (!r && typeof process !== 'undefined' && 'env' in process) {\n\t\tr = process.env.DEBUG;\n\t}\n\n\treturn r;\n}\n\n/**\n * Localstorage attempts to return the localstorage.\n *\n * This is necessary because safari throws\n * when a user disables cookies/localstorage\n * and you attempt to access it.\n *\n * @return {LocalStorage}\n * @api private\n */\n\nfunction localstorage() {\n\ttry {\n\t\t// TVMLKit (Apple TV JS Runtime) does not have a window object, just localStorage in the global context\n\t\t// The Browser also has localStorage in the global context.\n\t\treturn localStorage;\n\t} catch (error) {\n\t\t// Swallow\n\t\t// XXX (@Qix-) should we be logging these?\n\t}\n}\n\nmodule.exports = __webpack_require__(/*! ./common */ \"./node_modules/socket.io-client/node_modules/debug/src/common.js\")(exports);\n\nconst {formatters} = module.exports;\n\n/**\n * Map %j to `JSON.stringify()`, since no Web Inspectors do that by default.\n */\n\nformatters.j = function (v) {\n\ttry {\n\t\treturn JSON.stringify(v);\n\t} catch (error) {\n\t\treturn '[UnexpectedJSONParseError]: ' + error.message;\n\t}\n};\n\n/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(/*! ./../../../../process/browser.js */ \"./node_modules/process/browser.js\")))//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvc29ja2V0LmlvLWNsaWVudC9ub2RlX21vZHVsZXMvZGVidWcvc3JjL2Jyb3dzZXIuanMuanMiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvc29ja2V0LmlvLWNsaWVudC9ub2RlX21vZHVsZXMvZGVidWcvc3JjL2Jyb3dzZXIuanM/YzdiMCJdLCJzb3VyY2VzQ29udGVudCI6WyIvKiBlc2xpbnQtZW52IGJyb3dzZXIgKi9cblxuLyoqXG4gKiBUaGlzIGlzIHRoZSB3ZWIgYnJvd3NlciBpbXBsZW1lbnRhdGlvbiBvZiBgZGVidWcoKWAuXG4gKi9cblxuZXhwb3J0cy5sb2cgPSBsb2c7XG5leHBvcnRzLmZvcm1hdEFyZ3MgPSBmb3JtYXRBcmdzO1xuZXhwb3J0cy5zYXZlID0gc2F2ZTtcbmV4cG9ydHMubG9hZCA9IGxvYWQ7XG5leHBvcnRzLnVzZUNvbG9ycyA9IHVzZUNvbG9ycztcbmV4cG9ydHMuc3RvcmFnZSA9IGxvY2Fsc3RvcmFnZSgpO1xuXG4vKipcbiAqIENvbG9ycy5cbiAqL1xuXG5leHBvcnRzLmNvbG9ycyA9IFtcblx0JyMwMDAwQ0MnLFxuXHQnIzAwMDBGRicsXG5cdCcjMDAzM0NDJyxcblx0JyMwMDMzRkYnLFxuXHQnIzAwNjZDQycsXG5cdCcjMDA2NkZGJyxcblx0JyMwMDk5Q0MnLFxuXHQnIzAwOTlGRicsXG5cdCcjMDBDQzAwJyxcblx0JyMwMENDMzMnLFxuXHQnIzAwQ0M2NicsXG5cdCcjMDBDQzk5Jyxcblx0JyMwMENDQ0MnLFxuXHQnIzAwQ0NGRicsXG5cdCcjMzMwMENDJyxcblx0JyMzMzAwRkYnLFxuXHQnIzMzMzNDQycsXG5cdCcjMzMzM0ZGJyxcblx0JyMzMzY2Q0MnLFxuXHQnIzMzNjZGRicsXG5cdCcjMzM5OUNDJyxcblx0JyMzMzk5RkYnLFxuXHQnIzMzQ0MwMCcsXG5cdCcjMzNDQzMzJyxcblx0JyMzM0NDNjYnLFxuXHQnIzMzQ0M5OScsXG5cdCcjMzNDQ0NDJyxcblx0JyMzM0NDRkYnLFxuXHQnIzY2MDBDQycsXG5cdCcjNjYwMEZGJyxcblx0JyM2NjMzQ0MnLFxuXHQnIzY2MzNGRicsXG5cdCcjNjZDQzAwJyxcblx0JyM2NkNDMzMnLFxuXHQnIzk5MDBDQycsXG5cdCcjOTkwMEZGJyxcblx0JyM5OTMzQ0MnLFxuXHQnIzk5MzNGRicsXG5cdCcjOTlDQzAwJyxcblx0JyM5OUNDMzMnLFxuXHQnI0NDMDAwMCcsXG5cdCcjQ0MwMDMzJyxcblx0JyNDQzAwNjYnLFxuXHQnI0NDMDA5OScsXG5cdCcjQ0MwMENDJyxcblx0JyNDQzAwRkYnLFxuXHQnI0NDMzMwMCcsXG5cdCcjQ0MzMzMzJyxcblx0JyNDQzMzNjYnLFxuXHQnI0NDMzM5OScsXG5cdCcjQ0MzM0NDJyxcblx0JyNDQzMzRkYnLFxuXHQnI0NDNjYwMCcsXG5cdCcjQ0M2NjMzJyxcblx0JyNDQzk5MDAnLFxuXHQnI0NDOTkzMycsXG5cdCcjQ0NDQzAwJyxcblx0JyNDQ0NDMzMnLFxuXHQnI0ZGMDAwMCcsXG5cdCcjRkYwMDMzJyxcblx0JyNGRjAwNjYnLFxuXHQnI0ZGMDA5OScsXG5cdCcjRkYwMENDJyxcblx0JyNGRjAwRkYnLFxuXHQnI0ZGMzMwMCcsXG5cdCcjRkYzMzMzJyxcblx0JyNGRjMzNjYnLFxuXHQnI0ZGMzM5OScsXG5cdCcjRkYzM0NDJyxcblx0JyNGRjMzRkYnLFxuXHQnI0ZGNjYwMCcsXG5cdCcjRkY2NjMzJyxcblx0JyNGRjk5MDAnLFxuXHQnI0ZGOTkzMycsXG5cdCcjRkZDQzAwJyxcblx0JyNGRkNDMzMnXG5dO1xuXG4vKipcbiAqIEN1cnJlbnRseSBvbmx5IFdlYktpdC1iYXNlZCBXZWIgSW5zcGVjdG9ycywgRmlyZWZveCA+PSB2MzEsXG4gKiBhbmQgdGhlIEZpcmVidWcgZXh0ZW5zaW9uIChhbnkgRmlyZWZveCB2ZXJzaW9uKSBhcmUga25vd25cbiAqIHRvIHN1cHBvcnQgXCIlY1wiIENTUyBjdXN0b21pemF0aW9ucy5cbiAqXG4gKiBUT0RPOiBhZGQgYSBgbG9jYWxTdG9yYWdlYCB2YXJpYWJsZSB0byBleHBsaWNpdGx5IGVuYWJsZS9kaXNhYmxlIGNvbG9yc1xuICovXG5cbi8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBjb21wbGV4aXR5XG5mdW5jdGlvbiB1c2VDb2xvcnMoKSB7XG5cdC8vIE5COiBJbiBhbiBFbGVjdHJvbiBwcmVsb2FkIHNjcmlwdCwgZG9jdW1lbnQgd2lsbCBiZSBkZWZpbmVkIGJ1dCBub3QgZnVsbHlcblx0Ly8gaW5pdGlhbGl6ZWQuIFNpbmNlIHdlIGtub3cgd2UncmUgaW4gQ2hyb21lLCB3ZSdsbCBqdXN0IGRldGVjdCB0aGlzIGNhc2Vcblx0Ly8gZXhwbGljaXRseVxuXHRpZiAodHlwZW9mIHdpbmRvdyAhPT0gJ3VuZGVmaW5lZCcgJiYgd2luZG93LnByb2Nlc3MgJiYgKHdpbmRvdy5wcm9jZXNzLnR5cGUgPT09ICdyZW5kZXJlcicgfHwgd2luZG93LnByb2Nlc3MuX19ud2pzKSkge1xuXHRcdHJldHVybiB0cnVlO1xuXHR9XG5cblx0Ly8gSW50ZXJuZXQgRXhwbG9yZXIgYW5kIEVkZ2UgZG8gbm90IHN1cHBvcnQgY29sb3JzLlxuXHRpZiAodHlwZW9mIG5hdmlnYXRvciAhPT0gJ3VuZGVmaW5lZCcgJiYgbmF2aWdhdG9yLnVzZXJBZ2VudCAmJiBuYXZpZ2F0b3IudXNlckFnZW50LnRvTG93ZXJDYXNlKCkubWF0Y2goLyhlZGdlfHRyaWRlbnQpXFwvKFxcZCspLykpIHtcblx0XHRyZXR1cm4gZmFsc2U7XG5cdH1cblxuXHQvLyBJcyB3ZWJraXQ/IGh0dHA6Ly9zdGFja292ZXJmbG93LmNvbS9hLzE2NDU5NjA2LzM3Njc3M1xuXHQvLyBkb2N1bWVudCBpcyB1bmRlZmluZWQgaW4gcmVhY3QtbmF0aXZlOiBodHRwczovL2dpdGh1Yi5jb20vZmFjZWJvb2svcmVhY3QtbmF0aXZlL3B1bGwvMTYzMlxuXHRyZXR1cm4gKHR5cGVvZiBkb2N1bWVudCAhPT0gJ3VuZGVmaW5lZCcgJiYgZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50ICYmIGRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5zdHlsZSAmJiBkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQuc3R5bGUuV2Via2l0QXBwZWFyYW5jZSkgfHxcblx0XHQvLyBJcyBmaXJlYnVnPyBodHRwOi8vc3RhY2tvdmVyZmxvdy5jb20vYS8zOTgxMjAvMzc2NzczXG5cdFx0KHR5cGVvZiB3aW5kb3cgIT09ICd1bmRlZmluZWQnICYmIHdpbmRvdy5jb25zb2xlICYmICh3aW5kb3cuY29uc29sZS5maXJlYnVnIHx8ICh3aW5kb3cuY29uc29sZS5leGNlcHRpb24gJiYgd2luZG93LmNvbnNvbGUudGFibGUpKSkgfHxcblx0XHQvLyBJcyBmaXJlZm94ID49IHYzMT9cblx0XHQvLyBodHRwczovL2RldmVsb3Blci5tb3ppbGxhLm9yZy9lbi1VUy9kb2NzL1Rvb2xzL1dlYl9Db25zb2xlI1N0eWxpbmdfbWVzc2FnZXNcblx0XHQodHlwZW9mIG5hdmlnYXRvciAhPT0gJ3VuZGVmaW5lZCcgJiYgbmF2aWdhdG9yLnVzZXJBZ2VudCAmJiBuYXZpZ2F0b3IudXNlckFnZW50LnRvTG93ZXJDYXNlKCkubWF0Y2goL2ZpcmVmb3hcXC8oXFxkKykvKSAmJiBwYXJzZUludChSZWdFeHAuJDEsIDEwKSA+PSAzMSkgfHxcblx0XHQvLyBEb3VibGUgY2hlY2sgd2Via2l0IGluIHVzZXJBZ2VudCBqdXN0IGluIGNhc2Ugd2UgYXJlIGluIGEgd29ya2VyXG5cdFx0KHR5cGVvZiBuYXZpZ2F0b3IgIT09ICd1bmRlZmluZWQnICYmIG5hdmlnYXRvci51c2VyQWdlbnQgJiYgbmF2aWdhdG9yLnVzZXJBZ2VudC50b0xvd2VyQ2FzZSgpLm1hdGNoKC9hcHBsZXdlYmtpdFxcLyhcXGQrKS8pKTtcbn1cblxuLyoqXG4gKiBDb2xvcml6ZSBsb2cgYXJndW1lbnRzIGlmIGVuYWJsZWQuXG4gKlxuICogQGFwaSBwdWJsaWNcbiAqL1xuXG5mdW5jdGlvbiBmb3JtYXRBcmdzKGFyZ3MpIHtcblx0YXJnc1swXSA9ICh0aGlzLnVzZUNvbG9ycyA/ICclYycgOiAnJykgK1xuXHRcdHRoaXMubmFtZXNwYWNlICtcblx0XHQodGhpcy51c2VDb2xvcnMgPyAnICVjJyA6ICcgJykgK1xuXHRcdGFyZ3NbMF0gK1xuXHRcdCh0aGlzLnVzZUNvbG9ycyA/ICclYyAnIDogJyAnKSArXG5cdFx0JysnICsgbW9kdWxlLmV4cG9ydHMuaHVtYW5pemUodGhpcy5kaWZmKTtcblxuXHRpZiAoIXRoaXMudXNlQ29sb3JzKSB7XG5cdFx0cmV0dXJuO1xuXHR9XG5cblx0Y29uc3QgYyA9ICdjb2xvcjogJyArIHRoaXMuY29sb3I7XG5cdGFyZ3Muc3BsaWNlKDEsIDAsIGMsICdjb2xvcjogaW5oZXJpdCcpO1xuXG5cdC8vIFRoZSBmaW5hbCBcIiVjXCIgaXMgc29tZXdoYXQgdHJpY2t5LCBiZWNhdXNlIHRoZXJlIGNvdWxkIGJlIG90aGVyXG5cdC8vIGFyZ3VtZW50cyBwYXNzZWQgZWl0aGVyIGJlZm9yZSBvciBhZnRlciB0aGUgJWMsIHNvIHdlIG5lZWQgdG9cblx0Ly8gZmlndXJlIG91dCB0aGUgY29ycmVjdCBpbmRleCB0byBpbnNlcnQgdGhlIENTUyBpbnRvXG5cdGxldCBpbmRleCA9IDA7XG5cdGxldCBsYXN0QyA9IDA7XG5cdGFyZ3NbMF0ucmVwbGFjZSgvJVthLXpBLVolXS9nLCBtYXRjaCA9PiB7XG5cdFx0aWYgKG1hdGNoID09PSAnJSUnKSB7XG5cdFx0XHRyZXR1cm47XG5cdFx0fVxuXHRcdGluZGV4Kys7XG5cdFx0aWYgKG1hdGNoID09PSAnJWMnKSB7XG5cdFx0XHQvLyBXZSBvbmx5IGFyZSBpbnRlcmVzdGVkIGluIHRoZSAqbGFzdCogJWNcblx0XHRcdC8vICh0aGUgdXNlciBtYXkgaGF2ZSBwcm92aWRlZCB0aGVpciBvd24pXG5cdFx0XHRsYXN0QyA9IGluZGV4O1xuXHRcdH1cblx0fSk7XG5cblx0YXJncy5zcGxpY2UobGFzdEMsIDAsIGMpO1xufVxuXG4vKipcbiAqIEludm9rZXMgYGNvbnNvbGUubG9nKClgIHdoZW4gYXZhaWxhYmxlLlxuICogTm8tb3Agd2hlbiBgY29uc29sZS5sb2dgIGlzIG5vdCBhIFwiZnVuY3Rpb25cIi5cbiAqXG4gKiBAYXBpIHB1YmxpY1xuICovXG5mdW5jdGlvbiBsb2coLi4uYXJncykge1xuXHQvLyBUaGlzIGhhY2tlcnkgaXMgcmVxdWlyZWQgZm9yIElFOC85LCB3aGVyZVxuXHQvLyB0aGUgYGNvbnNvbGUubG9nYCBmdW5jdGlvbiBkb2Vzbid0IGhhdmUgJ2FwcGx5J1xuXHRyZXR1cm4gdHlwZW9mIGNvbnNvbGUgPT09ICdvYmplY3QnICYmXG5cdFx0Y29uc29sZS5sb2cgJiZcblx0XHRjb25zb2xlLmxvZyguLi5hcmdzKTtcbn1cblxuLyoqXG4gKiBTYXZlIGBuYW1lc3BhY2VzYC5cbiAqXG4gKiBAcGFyYW0ge1N0cmluZ30gbmFtZXNwYWNlc1xuICogQGFwaSBwcml2YXRlXG4gKi9cbmZ1bmN0aW9uIHNhdmUobmFtZXNwYWNlcykge1xuXHR0cnkge1xuXHRcdGlmIChuYW1lc3BhY2VzKSB7XG5cdFx0XHRleHBvcnRzLnN0b3JhZ2Uuc2V0SXRlbSgnZGVidWcnLCBuYW1lc3BhY2VzKTtcblx0XHR9IGVsc2Uge1xuXHRcdFx0ZXhwb3J0cy5zdG9yYWdlLnJlbW92ZUl0ZW0oJ2RlYnVnJyk7XG5cdFx0fVxuXHR9IGNhdGNoIChlcnJvcikge1xuXHRcdC8vIFN3YWxsb3dcblx0XHQvLyBYWFggKEBRaXgtKSBzaG91bGQgd2UgYmUgbG9nZ2luZyB0aGVzZT9cblx0fVxufVxuXG4vKipcbiAqIExvYWQgYG5hbWVzcGFjZXNgLlxuICpcbiAqIEByZXR1cm4ge1N0cmluZ30gcmV0dXJucyB0aGUgcHJldmlvdXNseSBwZXJzaXN0ZWQgZGVidWcgbW9kZXNcbiAqIEBhcGkgcHJpdmF0ZVxuICovXG5mdW5jdGlvbiBsb2FkKCkge1xuXHRsZXQgcjtcblx0dHJ5IHtcblx0XHRyID0gZXhwb3J0cy5zdG9yYWdlLmdldEl0ZW0oJ2RlYnVnJyk7XG5cdH0gY2F0Y2ggKGVycm9yKSB7XG5cdFx0Ly8gU3dhbGxvd1xuXHRcdC8vIFhYWCAoQFFpeC0pIHNob3VsZCB3ZSBiZSBsb2dnaW5nIHRoZXNlP1xuXHR9XG5cblx0Ly8gSWYgZGVidWcgaXNuJ3Qgc2V0IGluIExTLCBhbmQgd2UncmUgaW4gRWxlY3Ryb24sIHRyeSB0byBsb2FkICRERUJVR1xuXHRpZiAoIXIgJiYgdHlwZW9mIHByb2Nlc3MgIT09ICd1bmRlZmluZWQnICYmICdlbnYnIGluIHByb2Nlc3MpIHtcblx0XHRyID0gcHJvY2Vzcy5lbnYuREVCVUc7XG5cdH1cblxuXHRyZXR1cm4gcjtcbn1cblxuLyoqXG4gKiBMb2NhbHN0b3JhZ2UgYXR0ZW1wdHMgdG8gcmV0dXJuIHRoZSBsb2NhbHN0b3JhZ2UuXG4gKlxuICogVGhpcyBpcyBuZWNlc3NhcnkgYmVjYXVzZSBzYWZhcmkgdGhyb3dzXG4gKiB3aGVuIGEgdXNlciBkaXNhYmxlcyBjb29raWVzL2xvY2Fsc3RvcmFnZVxuICogYW5kIHlvdSBhdHRlbXB0IHRvIGFjY2VzcyBpdC5cbiAqXG4gKiBAcmV0dXJuIHtMb2NhbFN0b3JhZ2V9XG4gKiBAYXBpIHByaXZhdGVcbiAqL1xuXG5mdW5jdGlvbiBsb2NhbHN0b3JhZ2UoKSB7XG5cdHRyeSB7XG5cdFx0Ly8gVFZNTEtpdCAoQXBwbGUgVFYgSlMgUnVudGltZSkgZG9lcyBub3QgaGF2ZSBhIHdpbmRvdyBvYmplY3QsIGp1c3QgbG9jYWxTdG9yYWdlIGluIHRoZSBnbG9iYWwgY29udGV4dFxuXHRcdC8vIFRoZSBCcm93c2VyIGFsc28gaGFzIGxvY2FsU3RvcmFnZSBpbiB0aGUgZ2xvYmFsIGNvbnRleHQuXG5cdFx0cmV0dXJuIGxvY2FsU3RvcmFnZTtcblx0fSBjYXRjaCAoZXJyb3IpIHtcblx0XHQvLyBTd2FsbG93XG5cdFx0Ly8gWFhYIChAUWl4LSkgc2hvdWxkIHdlIGJlIGxvZ2dpbmcgdGhlc2U/XG5cdH1cbn1cblxubW9kdWxlLmV4cG9ydHMgPSByZXF1aXJlKCcuL2NvbW1vbicpKGV4cG9ydHMpO1xuXG5jb25zdCB7Zm9ybWF0dGVyc30gPSBtb2R1bGUuZXhwb3J0cztcblxuLyoqXG4gKiBNYXAgJWogdG8gYEpTT04uc3RyaW5naWZ5KClgLCBzaW5jZSBubyBXZWIgSW5zcGVjdG9ycyBkbyB0aGF0IGJ5IGRlZmF1bHQuXG4gKi9cblxuZm9ybWF0dGVycy5qID0gZnVuY3Rpb24gKHYpIHtcblx0dHJ5IHtcblx0XHRyZXR1cm4gSlNPTi5zdHJpbmdpZnkodik7XG5cdH0gY2F0Y2ggKGVycm9yKSB7XG5cdFx0cmV0dXJuICdbVW5leHBlY3RlZEpTT05QYXJzZUVycm9yXTogJyArIGVycm9yLm1lc3NhZ2U7XG5cdH1cbn07XG4iXSwibWFwcGluZ3MiOiJBQUFBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QSIsInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./node_modules/socket.io-client/node_modules/debug/src/browser.js\n");
- /***/ }),
- /***/ "./node_modules/socket.io-client/node_modules/debug/src/common.js":
- /*!************************************************************************!*\
- !*** ./node_modules/socket.io-client/node_modules/debug/src/common.js ***!
- \************************************************************************/
- /*! no static exports found */
- /***/ (function(module, exports, __webpack_require__) {
- eval("\n/**\n * This is the common logic for both the Node.js and web browser\n * implementations of `debug()`.\n */\n\nfunction setup(env) {\n\tcreateDebug.debug = createDebug;\n\tcreateDebug.default = createDebug;\n\tcreateDebug.coerce = coerce;\n\tcreateDebug.disable = disable;\n\tcreateDebug.enable = enable;\n\tcreateDebug.enabled = enabled;\n\tcreateDebug.humanize = __webpack_require__(/*! ms */ \"./node_modules/ms/index.js\");\n\n\tObject.keys(env).forEach(key => {\n\t\tcreateDebug[key] = env[key];\n\t});\n\n\t/**\n\t* Active `debug` instances.\n\t*/\n\tcreateDebug.instances = [];\n\n\t/**\n\t* The currently active debug mode names, and names to skip.\n\t*/\n\n\tcreateDebug.names = [];\n\tcreateDebug.skips = [];\n\n\t/**\n\t* Map of special \"%n\" handling functions, for the debug \"format\" argument.\n\t*\n\t* Valid key names are a single, lower or upper-case letter, i.e. \"n\" and \"N\".\n\t*/\n\tcreateDebug.formatters = {};\n\n\t/**\n\t* Selects a color for a debug namespace\n\t* @param {String} namespace The namespace string for the for the debug instance to be colored\n\t* @return {Number|String} An ANSI color code for the given namespace\n\t* @api private\n\t*/\n\tfunction selectColor(namespace) {\n\t\tlet hash = 0;\n\n\t\tfor (let i = 0; i < namespace.length; i++) {\n\t\t\thash = ((hash << 5) - hash) + namespace.charCodeAt(i);\n\t\t\thash |= 0; // Convert to 32bit integer\n\t\t}\n\n\t\treturn createDebug.colors[Math.abs(hash) % createDebug.colors.length];\n\t}\n\tcreateDebug.selectColor = selectColor;\n\n\t/**\n\t* Create a debugger with the given `namespace`.\n\t*\n\t* @param {String} namespace\n\t* @return {Function}\n\t* @api public\n\t*/\n\tfunction createDebug(namespace) {\n\t\tlet prevTime;\n\n\t\tfunction debug(...args) {\n\t\t\t// Disabled?\n\t\t\tif (!debug.enabled) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tconst self = debug;\n\n\t\t\t// Set `diff` timestamp\n\t\t\tconst curr = Number(new Date());\n\t\t\tconst ms = curr - (prevTime || curr);\n\t\t\tself.diff = ms;\n\t\t\tself.prev = prevTime;\n\t\t\tself.curr = curr;\n\t\t\tprevTime = curr;\n\n\t\t\targs[0] = createDebug.coerce(args[0]);\n\n\t\t\tif (typeof args[0] !== 'string') {\n\t\t\t\t// Anything else let's inspect with %O\n\t\t\t\targs.unshift('%O');\n\t\t\t}\n\n\t\t\t// Apply any `formatters` transformations\n\t\t\tlet index = 0;\n\t\t\targs[0] = args[0].replace(/%([a-zA-Z%])/g, (match, format) => {\n\t\t\t\t// If we encounter an escaped % then don't increase the array index\n\t\t\t\tif (match === '%%') {\n\t\t\t\t\treturn match;\n\t\t\t\t}\n\t\t\t\tindex++;\n\t\t\t\tconst formatter = createDebug.formatters[format];\n\t\t\t\tif (typeof formatter === 'function') {\n\t\t\t\t\tconst val = args[index];\n\t\t\t\t\tmatch = formatter.call(self, val);\n\n\t\t\t\t\t// Now we need to remove `args[index]` since it's inlined in the `format`\n\t\t\t\t\targs.splice(index, 1);\n\t\t\t\t\tindex--;\n\t\t\t\t}\n\t\t\t\treturn match;\n\t\t\t});\n\n\t\t\t// Apply env-specific formatting (colors, etc.)\n\t\t\tcreateDebug.formatArgs.call(self, args);\n\n\t\t\tconst logFn = self.log || createDebug.log;\n\t\t\tlogFn.apply(self, args);\n\t\t}\n\n\t\tdebug.namespace = namespace;\n\t\tdebug.enabled = createDebug.enabled(namespace);\n\t\tdebug.useColors = createDebug.useColors();\n\t\tdebug.color = selectColor(namespace);\n\t\tdebug.destroy = destroy;\n\t\tdebug.extend = extend;\n\t\t// Debug.formatArgs = formatArgs;\n\t\t// debug.rawLog = rawLog;\n\n\t\t// env-specific initialization logic for debug instances\n\t\tif (typeof createDebug.init === 'function') {\n\t\t\tcreateDebug.init(debug);\n\t\t}\n\n\t\tcreateDebug.instances.push(debug);\n\n\t\treturn debug;\n\t}\n\n\tfunction destroy() {\n\t\tconst index = createDebug.instances.indexOf(this);\n\t\tif (index !== -1) {\n\t\t\tcreateDebug.instances.splice(index, 1);\n\t\t\treturn true;\n\t\t}\n\t\treturn false;\n\t}\n\n\tfunction extend(namespace, delimiter) {\n\t\tconst newDebug = createDebug(this.namespace + (typeof delimiter === 'undefined' ? ':' : delimiter) + namespace);\n\t\tnewDebug.log = this.log;\n\t\treturn newDebug;\n\t}\n\n\t/**\n\t* Enables a debug mode by namespaces. This can include modes\n\t* separated by a colon and wildcards.\n\t*\n\t* @param {String} namespaces\n\t* @api public\n\t*/\n\tfunction enable(namespaces) {\n\t\tcreateDebug.save(namespaces);\n\n\t\tcreateDebug.names = [];\n\t\tcreateDebug.skips = [];\n\n\t\tlet i;\n\t\tconst split = (typeof namespaces === 'string' ? namespaces : '').split(/[\\s,]+/);\n\t\tconst len = split.length;\n\n\t\tfor (i = 0; i < len; i++) {\n\t\t\tif (!split[i]) {\n\t\t\t\t// ignore empty strings\n\t\t\t\tcontinue;\n\t\t\t}\n\n\t\t\tnamespaces = split[i].replace(/\\*/g, '.*?');\n\n\t\t\tif (namespaces[0] === '-') {\n\t\t\t\tcreateDebug.skips.push(new RegExp('^' + namespaces.substr(1) + '$'));\n\t\t\t} else {\n\t\t\t\tcreateDebug.names.push(new RegExp('^' + namespaces + '$'));\n\t\t\t}\n\t\t}\n\n\t\tfor (i = 0; i < createDebug.instances.length; i++) {\n\t\t\tconst instance = createDebug.instances[i];\n\t\t\tinstance.enabled = createDebug.enabled(instance.namespace);\n\t\t}\n\t}\n\n\t/**\n\t* Disable debug output.\n\t*\n\t* @return {String} namespaces\n\t* @api public\n\t*/\n\tfunction disable() {\n\t\tconst namespaces = [\n\t\t\t...createDebug.names.map(toNamespace),\n\t\t\t...createDebug.skips.map(toNamespace).map(namespace => '-' + namespace)\n\t\t].join(',');\n\t\tcreateDebug.enable('');\n\t\treturn namespaces;\n\t}\n\n\t/**\n\t* Returns true if the given mode name is enabled, false otherwise.\n\t*\n\t* @param {String} name\n\t* @return {Boolean}\n\t* @api public\n\t*/\n\tfunction enabled(name) {\n\t\tif (name[name.length - 1] === '*') {\n\t\t\treturn true;\n\t\t}\n\n\t\tlet i;\n\t\tlet len;\n\n\t\tfor (i = 0, len = createDebug.skips.length; i < len; i++) {\n\t\t\tif (createDebug.skips[i].test(name)) {\n\t\t\t\treturn false;\n\t\t\t}\n\t\t}\n\n\t\tfor (i = 0, len = createDebug.names.length; i < len; i++) {\n\t\t\tif (createDebug.names[i].test(name)) {\n\t\t\t\treturn true;\n\t\t\t}\n\t\t}\n\n\t\treturn false;\n\t}\n\n\t/**\n\t* Convert regexp to namespace\n\t*\n\t* @param {RegExp} regxep\n\t* @return {String} namespace\n\t* @api private\n\t*/\n\tfunction toNamespace(regexp) {\n\t\treturn regexp.toString()\n\t\t\t.substring(2, regexp.toString().length - 2)\n\t\t\t.replace(/\\.\\*\\?$/, '*');\n\t}\n\n\t/**\n\t* Coerce `val`.\n\t*\n\t* @param {Mixed} val\n\t* @return {Mixed}\n\t* @api private\n\t*/\n\tfunction coerce(val) {\n\t\tif (val instanceof Error) {\n\t\t\treturn val.stack || val.message;\n\t\t}\n\t\treturn val;\n\t}\n\n\tcreateDebug.enable(createDebug.load());\n\n\treturn createDebug;\n}\n\nmodule.exports = setup;\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvc29ja2V0LmlvLWNsaWVudC9ub2RlX21vZHVsZXMvZGVidWcvc3JjL2NvbW1vbi5qcy5qcyIsInNvdXJjZXMiOlsid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9zb2NrZXQuaW8tY2xpZW50L25vZGVfbW9kdWxlcy9kZWJ1Zy9zcmMvY29tbW9uLmpzPzJmY2MiXSwic291cmNlc0NvbnRlbnQiOlsiXG4vKipcbiAqIFRoaXMgaXMgdGhlIGNvbW1vbiBsb2dpYyBmb3IgYm90aCB0aGUgTm9kZS5qcyBhbmQgd2ViIGJyb3dzZXJcbiAqIGltcGxlbWVudGF0aW9ucyBvZiBgZGVidWcoKWAuXG4gKi9cblxuZnVuY3Rpb24gc2V0dXAoZW52KSB7XG5cdGNyZWF0ZURlYnVnLmRlYnVnID0gY3JlYXRlRGVidWc7XG5cdGNyZWF0ZURlYnVnLmRlZmF1bHQgPSBjcmVhdGVEZWJ1Zztcblx0Y3JlYXRlRGVidWcuY29lcmNlID0gY29lcmNlO1xuXHRjcmVhdGVEZWJ1Zy5kaXNhYmxlID0gZGlzYWJsZTtcblx0Y3JlYXRlRGVidWcuZW5hYmxlID0gZW5hYmxlO1xuXHRjcmVhdGVEZWJ1Zy5lbmFibGVkID0gZW5hYmxlZDtcblx0Y3JlYXRlRGVidWcuaHVtYW5pemUgPSByZXF1aXJlKCdtcycpO1xuXG5cdE9iamVjdC5rZXlzKGVudikuZm9yRWFjaChrZXkgPT4ge1xuXHRcdGNyZWF0ZURlYnVnW2tleV0gPSBlbnZba2V5XTtcblx0fSk7XG5cblx0LyoqXG5cdCogQWN0aXZlIGBkZWJ1Z2AgaW5zdGFuY2VzLlxuXHQqL1xuXHRjcmVhdGVEZWJ1Zy5pbnN0YW5jZXMgPSBbXTtcblxuXHQvKipcblx0KiBUaGUgY3VycmVudGx5IGFjdGl2ZSBkZWJ1ZyBtb2RlIG5hbWVzLCBhbmQgbmFtZXMgdG8gc2tpcC5cblx0Ki9cblxuXHRjcmVhdGVEZWJ1Zy5uYW1lcyA9IFtdO1xuXHRjcmVhdGVEZWJ1Zy5za2lwcyA9IFtdO1xuXG5cdC8qKlxuXHQqIE1hcCBvZiBzcGVjaWFsIFwiJW5cIiBoYW5kbGluZyBmdW5jdGlvbnMsIGZvciB0aGUgZGVidWcgXCJmb3JtYXRcIiBhcmd1bWVudC5cblx0KlxuXHQqIFZhbGlkIGtleSBuYW1lcyBhcmUgYSBzaW5nbGUsIGxvd2VyIG9yIHVwcGVyLWNhc2UgbGV0dGVyLCBpLmUuIFwiblwiIGFuZCBcIk5cIi5cblx0Ki9cblx0Y3JlYXRlRGVidWcuZm9ybWF0dGVycyA9IHt9O1xuXG5cdC8qKlxuXHQqIFNlbGVjdHMgYSBjb2xvciBmb3IgYSBkZWJ1ZyBuYW1lc3BhY2Vcblx0KiBAcGFyYW0ge1N0cmluZ30gbmFtZXNwYWNlIFRoZSBuYW1lc3BhY2Ugc3RyaW5nIGZvciB0aGUgZm9yIHRoZSBkZWJ1ZyBpbnN0YW5jZSB0byBiZSBjb2xvcmVkXG5cdCogQHJldHVybiB7TnVtYmVyfFN0cmluZ30gQW4gQU5TSSBjb2xvciBjb2RlIGZvciB0aGUgZ2l2ZW4gbmFtZXNwYWNlXG5cdCogQGFwaSBwcml2YXRlXG5cdCovXG5cdGZ1bmN0aW9uIHNlbGVjdENvbG9yKG5hbWVzcGFjZSkge1xuXHRcdGxldCBoYXNoID0gMDtcblxuXHRcdGZvciAobGV0IGkgPSAwOyBpIDwgbmFtZXNwYWNlLmxlbmd0aDsgaSsrKSB7XG5cdFx0XHRoYXNoID0gKChoYXNoIDw8IDUpIC0gaGFzaCkgKyBuYW1lc3BhY2UuY2hhckNvZGVBdChpKTtcblx0XHRcdGhhc2ggfD0gMDsgLy8gQ29udmVydCB0byAzMmJpdCBpbnRlZ2VyXG5cdFx0fVxuXG5cdFx0cmV0dXJuIGNyZWF0ZURlYnVnLmNvbG9yc1tNYXRoLmFicyhoYXNoKSAlIGNyZWF0ZURlYnVnLmNvbG9ycy5sZW5ndGhdO1xuXHR9XG5cdGNyZWF0ZURlYnVnLnNlbGVjdENvbG9yID0gc2VsZWN0Q29sb3I7XG5cblx0LyoqXG5cdCogQ3JlYXRlIGEgZGVidWdnZXIgd2l0aCB0aGUgZ2l2ZW4gYG5hbWVzcGFjZWAuXG5cdCpcblx0KiBAcGFyYW0ge1N0cmluZ30gbmFtZXNwYWNlXG5cdCogQHJldHVybiB7RnVuY3Rpb259XG5cdCogQGFwaSBwdWJsaWNcblx0Ki9cblx0ZnVuY3Rpb24gY3JlYXRlRGVidWcobmFtZXNwYWNlKSB7XG5cdFx0bGV0IHByZXZUaW1lO1xuXG5cdFx0ZnVuY3Rpb24gZGVidWcoLi4uYXJncykge1xuXHRcdFx0Ly8gRGlzYWJsZWQ/XG5cdFx0XHRpZiAoIWRlYnVnLmVuYWJsZWQpIHtcblx0XHRcdFx0cmV0dXJuO1xuXHRcdFx0fVxuXG5cdFx0XHRjb25zdCBzZWxmID0gZGVidWc7XG5cblx0XHRcdC8vIFNldCBgZGlmZmAgdGltZXN0YW1wXG5cdFx0XHRjb25zdCBjdXJyID0gTnVtYmVyKG5ldyBEYXRlKCkpO1xuXHRcdFx0Y29uc3QgbXMgPSBjdXJyIC0gKHByZXZUaW1lIHx8IGN1cnIpO1xuXHRcdFx0c2VsZi5kaWZmID0gbXM7XG5cdFx0XHRzZWxmLnByZXYgPSBwcmV2VGltZTtcblx0XHRcdHNlbGYuY3VyciA9IGN1cnI7XG5cdFx0XHRwcmV2VGltZSA9IGN1cnI7XG5cblx0XHRcdGFyZ3NbMF0gPSBjcmVhdGVEZWJ1Zy5jb2VyY2UoYXJnc1swXSk7XG5cblx0XHRcdGlmICh0eXBlb2YgYXJnc1swXSAhPT0gJ3N0cmluZycpIHtcblx0XHRcdFx0Ly8gQW55dGhpbmcgZWxzZSBsZXQncyBpbnNwZWN0IHdpdGggJU9cblx0XHRcdFx0YXJncy51bnNoaWZ0KCclTycpO1xuXHRcdFx0fVxuXG5cdFx0XHQvLyBBcHBseSBhbnkgYGZvcm1hdHRlcnNgIHRyYW5zZm9ybWF0aW9uc1xuXHRcdFx0bGV0IGluZGV4ID0gMDtcblx0XHRcdGFyZ3NbMF0gPSBhcmdzWzBdLnJlcGxhY2UoLyUoW2EtekEtWiVdKS9nLCAobWF0Y2gsIGZvcm1hdCkgPT4ge1xuXHRcdFx0XHQvLyBJZiB3ZSBlbmNvdW50ZXIgYW4gZXNjYXBlZCAlIHRoZW4gZG9uJ3QgaW5jcmVhc2UgdGhlIGFycmF5IGluZGV4XG5cdFx0XHRcdGlmIChtYXRjaCA9PT0gJyUlJykge1xuXHRcdFx0XHRcdHJldHVybiBtYXRjaDtcblx0XHRcdFx0fVxuXHRcdFx0XHRpbmRleCsrO1xuXHRcdFx0XHRjb25zdCBmb3JtYXR0ZXIgPSBjcmVhdGVEZWJ1Zy5mb3JtYXR0ZXJzW2Zvcm1hdF07XG5cdFx0XHRcdGlmICh0eXBlb2YgZm9ybWF0dGVyID09PSAnZnVuY3Rpb24nKSB7XG5cdFx0XHRcdFx0Y29uc3QgdmFsID0gYXJnc1tpbmRleF07XG5cdFx0XHRcdFx0bWF0Y2ggPSBmb3JtYXR0ZXIuY2FsbChzZWxmLCB2YWwpO1xuXG5cdFx0XHRcdFx0Ly8gTm93IHdlIG5lZWQgdG8gcmVtb3ZlIGBhcmdzW2luZGV4XWAgc2luY2UgaXQncyBpbmxpbmVkIGluIHRoZSBgZm9ybWF0YFxuXHRcdFx0XHRcdGFyZ3Muc3BsaWNlKGluZGV4LCAxKTtcblx0XHRcdFx0XHRpbmRleC0tO1xuXHRcdFx0XHR9XG5cdFx0XHRcdHJldHVybiBtYXRjaDtcblx0XHRcdH0pO1xuXG5cdFx0XHQvLyBBcHBseSBlbnYtc3BlY2lmaWMgZm9ybWF0dGluZyAoY29sb3JzLCBldGMuKVxuXHRcdFx0Y3JlYXRlRGVidWcuZm9ybWF0QXJncy5jYWxsKHNlbGYsIGFyZ3MpO1xuXG5cdFx0XHRjb25zdCBsb2dGbiA9IHNlbGYubG9nIHx8IGNyZWF0ZURlYnVnLmxvZztcblx0XHRcdGxvZ0ZuLmFwcGx5KHNlbGYsIGFyZ3MpO1xuXHRcdH1cblxuXHRcdGRlYnVnLm5hbWVzcGFjZSA9IG5hbWVzcGFjZTtcblx0XHRkZWJ1Zy5lbmFibGVkID0gY3JlYXRlRGVidWcuZW5hYmxlZChuYW1lc3BhY2UpO1xuXHRcdGRlYnVnLnVzZUNvbG9ycyA9IGNyZWF0ZURlYnVnLnVzZUNvbG9ycygpO1xuXHRcdGRlYnVnLmNvbG9yID0gc2VsZWN0Q29sb3IobmFtZXNwYWNlKTtcblx0XHRkZWJ1Zy5kZXN0cm95ID0gZGVzdHJveTtcblx0XHRkZWJ1Zy5leHRlbmQgPSBleHRlbmQ7XG5cdFx0Ly8gRGVidWcuZm9ybWF0QXJncyA9IGZvcm1hdEFyZ3M7XG5cdFx0Ly8gZGVidWcucmF3TG9nID0gcmF3TG9nO1xuXG5cdFx0Ly8gZW52LXNwZWNpZmljIGluaXRpYWxpemF0aW9uIGxvZ2ljIGZvciBkZWJ1ZyBpbnN0YW5jZXNcblx0XHRpZiAodHlwZW9mIGNyZWF0ZURlYnVnLmluaXQgPT09ICdmdW5jdGlvbicpIHtcblx0XHRcdGNyZWF0ZURlYnVnLmluaXQoZGVidWcpO1xuXHRcdH1cblxuXHRcdGNyZWF0ZURlYnVnLmluc3RhbmNlcy5wdXNoKGRlYnVnKTtcblxuXHRcdHJldHVybiBkZWJ1Zztcblx0fVxuXG5cdGZ1bmN0aW9uIGRlc3Ryb3koKSB7XG5cdFx0Y29uc3QgaW5kZXggPSBjcmVhdGVEZWJ1Zy5pbnN0YW5jZXMuaW5kZXhPZih0aGlzKTtcblx0XHRpZiAoaW5kZXggIT09IC0xKSB7XG5cdFx0XHRjcmVhdGVEZWJ1Zy5pbnN0YW5jZXMuc3BsaWNlKGluZGV4LCAxKTtcblx0XHRcdHJldHVybiB0cnVlO1xuXHRcdH1cblx0XHRyZXR1cm4gZmFsc2U7XG5cdH1cblxuXHRmdW5jdGlvbiBleHRlbmQobmFtZXNwYWNlLCBkZWxpbWl0ZXIpIHtcblx0XHRjb25zdCBuZXdEZWJ1ZyA9IGNyZWF0ZURlYnVnKHRoaXMubmFtZXNwYWNlICsgKHR5cGVvZiBkZWxpbWl0ZXIgPT09ICd1bmRlZmluZWQnID8gJzonIDogZGVsaW1pdGVyKSArIG5hbWVzcGFjZSk7XG5cdFx0bmV3RGVidWcubG9nID0gdGhpcy5sb2c7XG5cdFx0cmV0dXJuIG5ld0RlYnVnO1xuXHR9XG5cblx0LyoqXG5cdCogRW5hYmxlcyBhIGRlYnVnIG1vZGUgYnkgbmFtZXNwYWNlcy4gVGhpcyBjYW4gaW5jbHVkZSBtb2Rlc1xuXHQqIHNlcGFyYXRlZCBieSBhIGNvbG9uIGFuZCB3aWxkY2FyZHMuXG5cdCpcblx0KiBAcGFyYW0ge1N0cmluZ30gbmFtZXNwYWNlc1xuXHQqIEBhcGkgcHVibGljXG5cdCovXG5cdGZ1bmN0aW9uIGVuYWJsZShuYW1lc3BhY2VzKSB7XG5cdFx0Y3JlYXRlRGVidWcuc2F2ZShuYW1lc3BhY2VzKTtcblxuXHRcdGNyZWF0ZURlYnVnLm5hbWVzID0gW107XG5cdFx0Y3JlYXRlRGVidWcuc2tpcHMgPSBbXTtcblxuXHRcdGxldCBpO1xuXHRcdGNvbnN0IHNwbGl0ID0gKHR5cGVvZiBuYW1lc3BhY2VzID09PSAnc3RyaW5nJyA/IG5hbWVzcGFjZXMgOiAnJykuc3BsaXQoL1tcXHMsXSsvKTtcblx0XHRjb25zdCBsZW4gPSBzcGxpdC5sZW5ndGg7XG5cblx0XHRmb3IgKGkgPSAwOyBpIDwgbGVuOyBpKyspIHtcblx0XHRcdGlmICghc3BsaXRbaV0pIHtcblx0XHRcdFx0Ly8gaWdub3JlIGVtcHR5IHN0cmluZ3Ncblx0XHRcdFx0Y29udGludWU7XG5cdFx0XHR9XG5cblx0XHRcdG5hbWVzcGFjZXMgPSBzcGxpdFtpXS5yZXBsYWNlKC9cXCovZywgJy4qPycpO1xuXG5cdFx0XHRpZiAobmFtZXNwYWNlc1swXSA9PT0gJy0nKSB7XG5cdFx0XHRcdGNyZWF0ZURlYnVnLnNraXBzLnB1c2gobmV3IFJlZ0V4cCgnXicgKyBuYW1lc3BhY2VzLnN1YnN0cigxKSArICckJykpO1xuXHRcdFx0fSBlbHNlIHtcblx0XHRcdFx0Y3JlYXRlRGVidWcubmFtZXMucHVzaChuZXcgUmVnRXhwKCdeJyArIG5hbWVzcGFjZXMgKyAnJCcpKTtcblx0XHRcdH1cblx0XHR9XG5cblx0XHRmb3IgKGkgPSAwOyBpIDwgY3JlYXRlRGVidWcuaW5zdGFuY2VzLmxlbmd0aDsgaSsrKSB7XG5cdFx0XHRjb25zdCBpbnN0YW5jZSA9IGNyZWF0ZURlYnVnLmluc3RhbmNlc1tpXTtcblx0XHRcdGluc3RhbmNlLmVuYWJsZWQgPSBjcmVhdGVEZWJ1Zy5lbmFibGVkKGluc3RhbmNlLm5hbWVzcGFjZSk7XG5cdFx0fVxuXHR9XG5cblx0LyoqXG5cdCogRGlzYWJsZSBkZWJ1ZyBvdXRwdXQuXG5cdCpcblx0KiBAcmV0dXJuIHtTdHJpbmd9IG5hbWVzcGFjZXNcblx0KiBAYXBpIHB1YmxpY1xuXHQqL1xuXHRmdW5jdGlvbiBkaXNhYmxlKCkge1xuXHRcdGNvbnN0IG5hbWVzcGFjZXMgPSBbXG5cdFx0XHQuLi5jcmVhdGVEZWJ1Zy5uYW1lcy5tYXAodG9OYW1lc3BhY2UpLFxuXHRcdFx0Li4uY3JlYXRlRGVidWcuc2tpcHMubWFwKHRvTmFtZXNwYWNlKS5tYXAobmFtZXNwYWNlID0+ICctJyArIG5hbWVzcGFjZSlcblx0XHRdLmpvaW4oJywnKTtcblx0XHRjcmVhdGVEZWJ1Zy5lbmFibGUoJycpO1xuXHRcdHJldHVybiBuYW1lc3BhY2VzO1xuXHR9XG5cblx0LyoqXG5cdCogUmV0dXJucyB0cnVlIGlmIHRoZSBnaXZlbiBtb2RlIG5hbWUgaXMgZW5hYmxlZCwgZmFsc2Ugb3RoZXJ3aXNlLlxuXHQqXG5cdCogQHBhcmFtIHtTdHJpbmd9IG5hbWVcblx0KiBAcmV0dXJuIHtCb29sZWFufVxuXHQqIEBhcGkgcHVibGljXG5cdCovXG5cdGZ1bmN0aW9uIGVuYWJsZWQobmFtZSkge1xuXHRcdGlmIChuYW1lW25hbWUubGVuZ3RoIC0gMV0gPT09ICcqJykge1xuXHRcdFx0cmV0dXJuIHRydWU7XG5cdFx0fVxuXG5cdFx0bGV0IGk7XG5cdFx0bGV0IGxlbjtcblxuXHRcdGZvciAoaSA9IDAsIGxlbiA9IGNyZWF0ZURlYnVnLnNraXBzLmxlbmd0aDsgaSA8IGxlbjsgaSsrKSB7XG5cdFx0XHRpZiAoY3JlYXRlRGVidWcuc2tpcHNbaV0udGVzdChuYW1lKSkge1xuXHRcdFx0XHRyZXR1cm4gZmFsc2U7XG5cdFx0XHR9XG5cdFx0fVxuXG5cdFx0Zm9yIChpID0gMCwgbGVuID0gY3JlYXRlRGVidWcubmFtZXMubGVuZ3RoOyBpIDwgbGVuOyBpKyspIHtcblx0XHRcdGlmIChjcmVhdGVEZWJ1Zy5uYW1lc1tpXS50ZXN0KG5hbWUpKSB7XG5cdFx0XHRcdHJldHVybiB0cnVlO1xuXHRcdFx0fVxuXHRcdH1cblxuXHRcdHJldHVybiBmYWxzZTtcblx0fVxuXG5cdC8qKlxuXHQqIENvbnZlcnQgcmVnZXhwIHRvIG5hbWVzcGFjZVxuXHQqXG5cdCogQHBhcmFtIHtSZWdFeHB9IHJlZ3hlcFxuXHQqIEByZXR1cm4ge1N0cmluZ30gbmFtZXNwYWNlXG5cdCogQGFwaSBwcml2YXRlXG5cdCovXG5cdGZ1bmN0aW9uIHRvTmFtZXNwYWNlKHJlZ2V4cCkge1xuXHRcdHJldHVybiByZWdleHAudG9TdHJpbmcoKVxuXHRcdFx0LnN1YnN0cmluZygyLCByZWdleHAudG9TdHJpbmcoKS5sZW5ndGggLSAyKVxuXHRcdFx0LnJlcGxhY2UoL1xcLlxcKlxcPyQvLCAnKicpO1xuXHR9XG5cblx0LyoqXG5cdCogQ29lcmNlIGB2YWxgLlxuXHQqXG5cdCogQHBhcmFtIHtNaXhlZH0gdmFsXG5cdCogQHJldHVybiB7TWl4ZWR9XG5cdCogQGFwaSBwcml2YXRlXG5cdCovXG5cdGZ1bmN0aW9uIGNvZXJjZSh2YWwpIHtcblx0XHRpZiAodmFsIGluc3RhbmNlb2YgRXJyb3IpIHtcblx0XHRcdHJldHVybiB2YWwuc3RhY2sgfHwgdmFsLm1lc3NhZ2U7XG5cdFx0fVxuXHRcdHJldHVybiB2YWw7XG5cdH1cblxuXHRjcmVhdGVEZWJ1Zy5lbmFibGUoY3JlYXRlRGVidWcubG9hZCgpKTtcblxuXHRyZXR1cm4gY3JlYXRlRGVidWc7XG59XG5cbm1vZHVsZS5leHBvcnRzID0gc2V0dXA7XG4iXSwibWFwcGluZ3MiOiJBQUFBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7Iiwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./node_modules/socket.io-client/node_modules/debug/src/common.js\n");
- /***/ }),
- /***/ "./resource/locales/index.js":
- /*!***********************************!*\
- !*** ./resource/locales/index.js ***!
- \***********************************/
- /*! no static exports found */
- /***/ (function(module, exports) {
- eval("module.exports = {\n \"en_US\": {\n \"admin\": {\n \"mailer_setup_required\": \"<a href='/admin/app'>Email settings</a> are required to send.\",\n \"admin_top\": {\n \"management_wiki\": \"Management Wiki\",\n \"system_information\": \"System information\",\n \"wiki_administrator\": \"Only wiki administrator can access this page\",\n \"assign_administrator\": \"You can assign the selected user to be a wiki administrator on the User Management page using the 'Give admin access' button\",\n \"list_of_installed_plugins\": \"List of installed plugins\",\n \"package_name\": \"Package name\",\n \"specified_version\": \"Specified version\",\n \"installed_version\": \"Installed version\",\n \"list_of_env_vars\": \"List of environment variables\",\n \"env_var_priority\": \"For environment variables other than security, the value of the database is obtained preferentially.\",\n \"about_security\": \"Check <a href='/admin/security'>Securtiy Settings</a> for security environment variables.\"\n },\n \"app_setting\": {\n \"site_name\": \"Site name\",\n \"sitename_change\": \"You can change site name which is used for header and HTML title.\",\n \"header_content\": \"The contents entered here will be shown in the header etc.\",\n \"site_url_desc\": \"This is for the site URL setting.\",\n \"site_url_warn\": \"Some features don't work because the site URL is not set.\",\n \"siteurl_help\": \"Site full URL beginning from <code>http://</code> or <code>https://</code>.\",\n \"confidential_name\": \"Confidential name\",\n \"confidential_example\": \"ex): internal use only\",\n \"default_language\": \"Default language for new users\",\n \"default_mail_visibility\": \"Disclose e-mail for new users\",\n \"file_uploading\": \"File uploading\",\n \"enable_files_except_image\": \"Enabling this option will allow upload of any file type. Without this option, only image file upload is supported.\",\n \"attach_enable\": \"You can attach files other than image files if you enable this option.\",\n \"update\": \"Update\",\n \"mail_settings\": \"E-mail Settings\",\n \"mailer_is_not_set_up\": \"E-mail setting is not set up.\",\n \"from_e-mail_address\": \"From e-mail address\",\n \"transmission_method\": \"Transmission Method\",\n \"smtp_label\": \"SMTP\",\n \"ses_label\": \"SES(AWS)\",\n \"send_test_email\": \"Send a test-email\",\n \"success_to_send_test_email\": \"Success to send a test-email\",\n \"smtp_settings\": \"SMTP settings\",\n \"host\": \"Host\",\n \"port\": \"Port\",\n \"user\": \"User\",\n \"initialize_mail_settings\": \"initialize e-mail settings\",\n \"initialize_mail_modal_header\": \"Initialize e-mail settings\",\n \"confirm_to_initialize_mail_settings\": \"You can't restore to the current settings. Are you sure you want to initialize e-mail settings?\",\n \"file_upload_settings\": \"File Upload Settings\",\n \"file_upload_method\": \"File Upload Method\",\n \"file_delivery_method\": \"File Delivery Method\",\n \"file_delivery_method_redirect\": \"Redirect\",\n \"file_delivery_method_relay\": \"Internal System Relay\",\n \"file_delivery_method_redirect_info\": \"Redirect: It redirects to a signed URL without GROWI server, it gives excellent performance.\",\n \"file_delivery_method_relay_info\": \"Internal System Relay: The GROWI server delivers to clients, it provides complete security.\",\n \"fixed_by_env_var\": \"This is fixed by the env var <code>FILE_UPLOAD={{fileUploadType}}</code>.\",\n \"gcs_label\": \"GCP(GCS)\",\n \"aws_label\": \"AWS(S3)\",\n \"local_label\": \"Local\",\n \"gridfs_label\": \"MongoDB(GridFS)\",\n \"file_upload\": \"This is for uploading file settings. If you complete file upload settings, file upload function, profile picture function etc will be enabled.\",\n \"ses_settings\": \"SES settings\",\n \"test_connection\": \"Test connection to mail\",\n \"change_setting\": \"Caution:if you change this setting not completed, you will not be able to access files you have uploaded so far.\",\n \"region\": \"Region\",\n \"bucket_name\": \"Bucket name\",\n \"custom_endpoint\": \"Custom endpoint\",\n \"custom_endpoint_change\": \"Input the URL of the endpoint of an object storage service like MinIO that has a S3-compatible API. Amazon S3 is used if empty.\",\n \"plugin_settings\": \"Plugin settings\",\n \"enable_plugin_loading\": \"Enable plugin loading\",\n \"load_plugins\": \"Load_plugins\",\n \"enable\": \"Enable\",\n \"disable\": \"Disable\",\n \"use_env_var_if_empty\": \"If the value in the database is empty, the value of the environment variable <code>{{variable}}</code> is used.\",\n \"note_for_the_only_env_option\": \"The GCS Settings is limited by the value of environment variable.<br>To change this setting, please change to false or delete the value of the environment variable <code>{{env}}</code> .\"\n },\n \"markdown_setting\": {\n \"lineBreak_header\": \"Line break setting\",\n \"lineBreak_desc\": \"You can change line break settings.\",\n \"lineBreak_options\": {\n \"enable_lineBreak\": \"Enable line break\",\n \"enable_lineBreak_desc\": \"Convert line break in the text page to<code><br></code>in HTML\",\n \"enable_lineBreak_for_comment\": \"Enable line break in comment\",\n \"enable_lineBreak_for_comment_desc\": \"Convert line break in comment to<code><br></code>in HTML\"\n },\n \"indent_header\": \"Indent setting\",\n \"indent_desc\": \"You can change indent settings.\",\n \"indent_options\": {\n \"indentSize\": \"Default indent size\",\n \"indentSize_desc\": \"Set the default indent size for the Markdown editor\",\n \"disallow_indent_change\": \"Disallow change of indent size by users\",\n \"disallow_indent_change_desc\": \"Force users to use ther default indent size.\"\n },\n \"presentation_header\": \"Presentation setting\",\n \"presentation_desc\": \"You can change presentation settings.\",\n \"presentation_options\": {\n \"page_break_setting\": \"Page break setting\",\n \"preset_one_separator\": \"Preset 1\",\n \"preset_one_separator_desc\": \"3 Blank lines\",\n \"preset_one_separator_value\": \"\\\\n\\\\n\\\\n\",\n \"preset_two_separator\": \"Preset 2\",\n \"preset_two_separator_desc\": \"5 Hyphens\",\n \"preset_two_separator_value\": \"-----\",\n \"custom_separator\": \"Custom\",\n \"custom_separator_desc\": \"Regular expression\"\n },\n \"xss_header\": \"Prevent XSS(cross site scripting) setting\",\n \"xss_desc\": \"You can change the handling of HTML tags in markdown text.\",\n \"xss_options\": {\n \"enable_xss_prevention\": \"Enable XSS prevention\",\n \"remove_all_tags\": \"Remove all tags\",\n \"remove_all_tags_desc\": \"Stripe all HTML tags and attributes\",\n \"recommended_setting\": \"Recommended setting\",\n \"custom_whitelist\": \"Custom whitelist\",\n \"tag_names\": \"Tag names\",\n \"tag_attributes\": \"Tag attributes\",\n \"import_recommended\": \"Import recommended {{target}}\"\n }\n },\n \"customize_setting\": {\n \"layout\": \"Layout\",\n \"layout_options\": {\n \"default\": \"Default content width\",\n \"expanded\": \"Content width 100%\"\n },\n \"theme\": \"Theme\",\n \"theme_desc\": {\n \"light_and_dark\": \"Light and dark modes\",\n \"unique\": \"Only one mode\"\n },\n \"function\": \"Function\",\n \"function_desc\": \"You can choose Valid/Invalid of the function\",\n \"function_options\": {\n \"timeline\": \"Timeline function\",\n \"timeline_desc1\": \"You can show the timeline of the child pages.\",\n \"timeline_desc2\": \"If there are many child pages, performance decreases while page loading.\",\n \"timeline_desc3\": \"You can speed up list page display by invalidating.\",\n \"tab_switch\": \"Save tab-switching in the browser\",\n \"tab_switch_desc1\": \"Save edit tab and history tab switching in the browser and make it object for forward/back command of the browser.\",\n \"tab_switch_desc2\": \"By invalidating, you can make page transition as the only object for forward/back command of the browser.\",\n \"attach_title_header\": \"Add h1 section when create new page automatically\",\n \"attach_title_header_desc\": \"Add page path to the first line as h1 section when create new page.\",\n \"list_num_s\": \"Number of list displayed on modals\",\n \"list_num_desc_s\": \"Set number of list per page such as 'Page List', 'Timeline', 'Page History' and 'Attachment' pages.\",\n \"list_num_m\": \"Number of list displayed on article pages included other contents\",\n \"list_num_desc_m\": \"Set number of list per page such as 'Bookmarks' and 'Recently created' pages.\",\n \"list_num_l\": \"Number of list displayed on 'Search' pages\",\n \"list_num_desc_l\": \"Set number of list per page such as 'Search' pages.\",\n \"list_num_xl\": \"Number of list displayed on article pages\",\n \"list_num_desc_xl\": \"Set number of list per page such as 'Not found' and 'Trash' pages.\",\n \"stale_notification\": \"Display notification on stale pages\",\n \"stale_notification_desc\": \"Displays the notification to pages more than 1 year since the last update.\",\n \"show_all_reply_comments\": \"Show all reply comments\",\n \"show_all_reply_comments_desc\": \"When the setting value is off, comments other than the latest two are omitted.\"\n },\n \"code_highlight\": \"Code highlight\",\n \"nocdn_desc\": \"This function is disabled when the environment variable <code>NO_CDN=true</code>.<br>Github style has been forcibly applied.\",\n \"custom_title\": \"Custom title\",\n \"custom_title_detail\": \"You can customize <code><title></code> tag. Following placeholders will be automatically replaced:\",\n \"custom_title_detail_placeholder1\": \"<code>{{sitename}}</code> - The site name of this wiki.\",\n \"custom_title_detail_placeholder2\": \"<code>{{pagename}}</code> - The page name of the current page.\",\n \"custom_title_detail_placeholder3\": \"<code>{{pagepath}}</code> - The page path of the current page.\",\n \"custom_header\": \"Custom HTML header\",\n \"custom_header_detail\": \"You can customize HTML header that applies all pages. Your custom script will be inserted in <code><header></code> but above other <code><script></code> tags.<br>Relaod page to see changes.\",\n \"custom_css\": \"Custom CSS\",\n \"write_css\": \"You can write CSS that is applied to whole system.\",\n \"ctrl_space\": \"Ctrl+Space to autocomplete\",\n \"custom_script\": \"Custom script\",\n \"write_java\": \"You can write Javascript that is applied to whole system.\",\n \"reflect_change\": \"You need to reload the page to reflect the change.\"\n },\n \"importer_management\": {\n \"beta_warning\": \"This function is Beta.\",\n \"import_from\": \"Import from {{from}}\",\n \"import_growi_archive\": \"Import GROWI archive\",\n \"growi_settings\": {\n \"description_of_import_mode\": {\n \"about\": \"When you import data with the same name as an existing one, choose from the following three modes below.\",\n \"insert\": \"Insert: Skip importing the data.\",\n \"upsert\": \"Upsert: Overwrite and update the existing data with imported data.\",\n \"flash_and_insert\": \"Flash and Insert: After deleting the existing data completely, import the data\"\n },\n \"growi_archive_file\": \"GROWI Archive File\",\n \"uploaded_data\": \"Uploaded Data\",\n \"extracted_file\": \"Extracted File\",\n \"collection\": \"Collection\",\n \"upload\": \"Upload\",\n \"discard\": \"Discard uploaded data\",\n \"errors\": {\n \"different_versions\": \"this growi and the uploarded data versions are not met\",\n \"at_least_one\": \"Select one or more collections.\",\n \"page_and_revision\": \"'Pages' and 'Revisions' must be imported both.\",\n \"depends\": \"'{{target}}' must be selected when '{{condition}}' is selected.\"\n },\n \"configuration\": {\n \"pages\": {\n \"overwrite_author\": {\n \"label\": \"Overwrite page's author with the current user\",\n \"desc\": \"Recommended <span class=\\\"text-danger\\\">NOT</span> to check this when users will also be restored.\"\n },\n \"set_public_to_page\": {\n \"label\": \"Set 'Public' to the pages that is '{{from}}'\",\n \"desc\": \"Make sure that this configuration makes all <b>'{{from}}'</b> pages readable from <span class=\\\"text-danger\\\">ANY users</span>.\"\n },\n \"initialize_meta_datas\": {\n \"label\": \"Initialize page's like, read users and comment count\",\n \"desc\": \"Recommended <span class=\\\"text-danger\\\">NOT</span> to check this when users will also be restored.\"\n },\n \"initialize_hackmd_related_datas\": {\n \"label\": \"Initialize HackMD related data\",\n \"desc\": \"Recommended to check this unless there is important drafts on HackMD.\"\n }\n },\n \"revisions\": {\n \"overwrite_author\": {\n \"label\": \"Overwrite revision's author with the current user\",\n \"desc\": \"Recommended <span class=\\\"text-danger\\\">NOT</span> to check this when users will also be restored.\"\n }\n }\n }\n },\n \"esa_settings\": {\n \"team_name\": \"Team name\",\n \"access_token\": \"Access token\",\n \"test_connection\": \"Test connection to esa\"\n },\n \"qiita_settings\": {\n \"team_name\": \"Team name\",\n \"access_token\": \"Access token\",\n \"test_connection\": \"Test connection to qiita:team\"\n },\n \"import\": \"Import\",\n \"skip_username_and_email_when_overlapped\": \"Skip username and email using same username and email in new environment\",\n \"prepare_new_account_for_migration\": \"Prepare new account for migration\",\n \"archive_data_import_detail\": \"More Details? Ckick here.\",\n \"admin_archive_data_import_guide_url\": \"https://docs.growi.org/en/admin-guide/management-cookbook/import.html\",\n \"page_skip\": \"Pages with a name that already exists on GROWI are not imported\",\n \"Directory_hierarchy_tag\": \"Directory hierarchy tag\"\n },\n \"export_management\": {\n \"exporting_collection_list\": \"Exporting Collection List\",\n \"exported_data_list\": \"Exported Archive Data List\",\n \"export_collections\": \"Export Collections\",\n \"check_all\": \"Check All\",\n \"uncheck_all\": \"Uncheck All\",\n \"desc_password_seed\": \"<p>DO NOT FORGET to set current <code>PASSWORD_SEED</code> to your new GROWI system when restoring user data, or users will NOT be able to login with their password.<br><br><strong>HINT:</strong><br>The current <code>PASSWORD_SEED</code> will be stored in <code>meta.json</code> in exported ZIP.</p>\",\n \"create_new_archive_data\": \"Create New Archive Data\",\n \"export\": \"Export\",\n \"cancel\": \"Cancel\",\n \"file\": \"File\",\n \"growi_version\": \"Growi Version\",\n \"collections\": \"Collections\",\n \"exported_at\": \"Exported At\",\n \"export_menu\": \"Export Menu\",\n \"download\": \"Download\",\n \"delete\": \"Delete\"\n },\n \"slack_integration\": {\n \"selecting_bot_types\": {\n \"slack_bot\": \"Slack bot\",\n \"detailed_explanation\": \"Detailed explanation\",\n \"official_bot\": \"Official bot\",\n \"custom_bot\": \"Custom bot\",\n \"without_proxy\": \"without proxy\",\n \"with_proxy\": \"with proxy\",\n \"recommended\": \"Recommended\",\n \"set_up\": \"Set up\",\n \"multiple_workspaces_integration\": \"Multiple workspaces integration\",\n \"security_control\": \"Security control\",\n \"easy\": \"Easy\",\n \"normal\": \"Normal\",\n \"hard\": \"Hard\",\n \"possible\": \"Possible\",\n \"impossible\": \"Impossible\"\n },\n \"bot_reset_successful\": \"Bot settings have been reset.\",\n \"adding_slack_ws_integration_settings_successful\": \"Slack workspace integration settings have been added\",\n \"bot_all_reset_successful\": \"All Bot settings have been reset.\",\n \"copied_to_clipboard\": \"Copied to clipboard\",\n \"set_scope\": \"Please set up Bot Token Scopes from Slack settings\",\n \"modal\": {\n \"warning\": \"Warning\",\n \"sure_change_bot_type\": \"Are you sure you want to change the bot type?\",\n \"changes_will_be_deleted\": \"Settings for other bot types will be deleted.\",\n \"cancel\": \"Cancel\",\n \"change\": \"Change\"\n },\n \"use_env_var_if_empty\": \"If the value in the database is empty, the value of the environment variable <code>{{variable}}</code> is used.\",\n \"access_token_settings\": {\n \"regenerate\": \"Regenerate\"\n },\n \"delete\": \"Delete\",\n \"integration_procedure\": \"Integration Procedure\",\n \"custom_bot_without_proxy_settings\": \"Custom Bot without proxy Settings\",\n \"integration_failed\": \"Integration failed\",\n \"official_bot_settings\": \"Official bot Settings\",\n \"reset\": \"Reset\",\n \"reset_all_settings\": \"Reset all settings\",\n \"delete_slackbot_settings\": \"Delete Slack Bot settings\",\n \"slackbot_settings_notice\": \"The Slack workspace integration procedure will be deleted. <br> Are you sure?\",\n \"all_settings_of_the_bot_will_be_reset\": \"All settings of the Bot will be reset.<br>Are you sure?\",\n \"accordion\": {\n \"create_bot\": \"Create Bot\",\n \"how_to_create_a_bot\": \"How to create a bot\",\n \"how_to_install\": \"How to install\",\n \"install_bot_to_slack\": \"Install Bot To Slack\",\n \"install_now\": \"Install now\",\n \"generate_access_token\": \"Generate Access Token\",\n \"register_for_growi_official_bot_proxy_service\": \"Register for GROWI Official Bot Proxy Service\",\n \"register_for_growi_custom_bot_proxy\": \"Register for your GROWI Custom Bot Proxy\",\n \"enter_growi_register_on_slack\": \"Enter <b>/growi register</b> on slack\",\n \"paste_growi_url\": \"Since a modal is displayed, enter the following URL in <b>GROWI URL</b>.\",\n \"enter_access_token_for_growi_and_proxy\": \"Enter <b>Access Token Proxy to GROWI</b> and <b>Access Token GROWI to Proxy</b>\",\n \"set_proxy_url_on_growi\": \"Set Proxy URL on GROWI\",\n \"copy_proxy_url\": \"1. When the above step ② are completed successfully, the Proxy URL will be displayed in the Slack Channel you selected in the modal, so copy it.\",\n \"enter_proxy_url_and_update\": \"2. Enter and update the Proxy URL that you copied in step ③ in the <b>Proxy URL</b> of the <b>Custom bot with proxy integration</b> on this page.\",\n \"dont_need_update\": \"※If the value is already in there, there is no need to update it.\",\n \"select_install_your_app\": \"Select \\\"Install your app\\\".\",\n \"select_install_to_workspace\": \"Select \\\"Install to Workspace\\\".\",\n \"register_proxy_url\": \"Register Proxy URL with GROWI\",\n \"click_allow\": \"Select \\\"Allow\\\".\",\n \"install_complete_if_checked\": \"Confirm that \\\"Install your app\\\" is checked.\",\n \"invite_bot_to_channel\": \"Invite GROWI bot to channel by calling @example.\",\n \"register_secret_and_token\": \"Set Signing Secret and Bot Token\",\n \"test_connection\": \"Test Connection\",\n \"test_connection_by_pressing_button\": \"Press the button to test the connection\",\n \"error_check_logs_below\": \"An error has occurred. Please check the logs below.\",\n \"send_message_to_slack_work_space\": \"Send message to Slack work space.\",\n \"add_slack_workspace\": \"Add a Slack Workspace\"\n },\n \"custom_bot_without_proxy_integration\": \"Custom Bot Without Proxy Integration\",\n \"integration_sentence\": {\n \"integration_is_not_complete\": \"Integration is not complete.<br>Proceed with the following integration procedure.\",\n \"integration_successful\": \"Integration successful\",\n \"integration_some_ws_is_not_complete\": \"Some work spaces is not linked\"\n },\n \"custom_bot_with_proxy_integration\": \"Custom Bot With Proxy Integration\",\n \"official_bot_integration\": \"Official bot integration\",\n \"docs_url\": {\n \"slack_integration\": \"https://docs.growi.org/en/admin-guide/management-cookbook/slack-integration/\",\n \"official_bot\": \"https://docs.growi.org/en/admin-guide/management-cookbook/slack-integration/#official-bot-%E3%80%90recommended%E3%80%91\",\n \"custom_bot_without_proxy\": \"https://docs.growi.org/en/admin-guide/management-cookbook/slack-integration/#custom-bot-without-proxy\",\n \"custom_bot_with_proxy\": \"https://docs.growi.org/en/admin-guide/management-cookbook/slack-integration/#custom-bot-with-proxy\",\n \"official_bot_setting\": \"https://docs.growi.org/en/admin-guide/management-cookbook/slack-integration/official-bot-settings.html\",\n \"custom_bot_without_proxy_setting\": \"https://docs.growi.org/en/admin-guide/management-cookbook/slack-integration/custom-bot-without-proxy-settings.html\",\n \"custom_bot_with_proxy_setting\": \"https://docs.growi.org/en/admin-guide/management-cookbook/slack-integration/custom-bot-with-proxy-settings.html\"\n }\n },\n \"user_management\": {\n \"invite_users\": \"Temporarily issue a new user\",\n \"click_twice_same_checkbox\": \"You should check at least one checkbox.\",\n \"invite_modal\": {\n \"emails\": \"Emails (Possible to issue multiple people with new lines)\",\n \"description1\": \"Temporarily issue new users by email addresses.\",\n \"description2\": \"A temporary password will be generated for the first login.\",\n \"invite_thru_email\": \"Send invitation email\",\n \"mail_setting_link\": \"<i class='icon-settings mr-2'></i><a href='/admin/app'>Email settings</a>\",\n \"valid_email\": \"Valid email address is required\",\n \"temporary_password\": \"The created user has a temporary password\",\n \"send_new_password\": \"Please send the new password to the user.\",\n \"send_temporary_password\": \"If you have not sent an invitation email, copy the temporary password on this screen and contact the inviter.\",\n \"send_email\": \"You can also send or resend the invitation email from the drop-down in the users table.\",\n \"existing_email\": \"The following emails already exist\",\n \"issue\": \"Issue\"\n },\n \"user_table\": {\n \"administrator\": \"Administrator\",\n \"edit_menu\": \"Edit menu\",\n \"reset_password\": \"Reset password\",\n \"administrator_menu\": \"Administrator Menu\",\n \"accept\": \"Accept\",\n \"deactivate_account\": \"Deactivate account\",\n \"your_own\": \"You cannot deactivate your own account\",\n \"remove_admin_access\": \"Remove admin access\",\n \"cannot_remove\": \"You cannot remove yourself from administrator\",\n \"give_admin_access\": \"Give admin access\",\n \"send_invitation_email\": \"Send invitation email\",\n \"resend_invitation_email\": \"Resend invitation email\"\n },\n \"reset_password\": \"Reset Password\",\n \"reset_password_modal\": {\n \"password_never_seen\": \"The temporary password can never be retrieved after this screen is closed.\",\n \"password_reset_message\": \"Let the user know the new password below and strongly recommend to change another one immediately.\",\n \"send_new_password\": \"Please send the new password to the user.\",\n \"target_user\": \"Target User\",\n \"new_password\": \"New Password\"\n },\n \"external_account\": \"External Account Management\",\n \"external_accounts\": \"External accounts\",\n \"create_external_account\": \"Create external account\",\n \"external_account_list\": \"External Account List\",\n \"external_account_none\": \"No External Account\",\n \"invite\": \"Invite\",\n \"invited\": \"User was invited\",\n \"back_to_user_management\": \"Back to User Management\",\n \"authentication_provider\": \"Authentication provider\",\n \"manage\": \"Manage\",\n \"password_setting\": \"Password setting\",\n \"password_setting_help\": \"Is password set?\",\n \"set\": \"Yes\",\n \"unset\": \"No\",\n \"related_username\": \"Related user's \",\n \"cannot_invite_maximum_users\": \"Can not invite more than the maximum number of users.\",\n \"current_users\": \"Current users:\"\n },\n \"user_group_management\": {\n \"create_group\": \"Create new group\",\n \"deny_create_group\": \"You can't create a new group with the current settings.\",\n \"group_name\": \"Group name\",\n \"group_example\": \"e.g. : Group1\",\n \"add_modal\": {\n \"add_user\": \"Add a user to the created group\",\n \"search_option\": \"Search option\",\n \"enable_option\": \"Enable {{option}}\",\n \"forward_match\": \"Forword match\",\n \"partial_match\": \"Partial match\",\n \"backward_match\": \"Backward match\"\n },\n \"group_list\": \"Group list\",\n \"back_to_list\": \"Go back to group list\",\n \"basic_info\": \"Basic info\",\n \"user_list\": \"User list\",\n \"created_group\": \"Group was created\",\n \"is_loading_data\": \"Fetch data...\",\n \"no_pages\": \"There are no pages the group has view permission.\",\n \"remove_from_group\": \"Remove this user\",\n \"delete_modal\": {\n \"header\": \"Delete group\",\n \"desc\": \"Once deleted, the deleted group and its private pages cannot be retrieved.\",\n \"dropdown_desc\": \"Choose an action for private pages\",\n \"select_group\": \"Select a group\",\n \"no_groups\": \"No groups to select\",\n \"publish_pages\": \"Publish all\",\n \"delete_pages\": \"Delete all\",\n \"transfer_pages\": \"Transfer to another group\"\n }\n }\n },\n \"meta\": {\n \"id\": \"en_US\",\n \"displayName\": \"English\",\n \"aliases\": [\"en\"]\n },\n \"translation\": {\n \"Help\": \"Help\",\n \"view\": \"View\",\n \"Edit\": \"Edit\",\n \"Delete\": \"Delete\",\n \"delete_all\": \"Delete all\",\n \"Duplicate\": \"Duplicate\",\n \"Copy\": \"Copy\",\n \"preview\": \"Preview\",\n \"desktop\": \"Desktop\",\n \"phone\": \"Smartphone\",\n \"tablet\": \"Tablet\",\n \"Click to copy\": \"Click to copy\",\n \"Move/Rename\": \"Move/Rename\",\n \"Moved\": \"Moved\",\n \"Redirected\": \"Redirected\",\n \"Unlinked\": \"Unlinked\",\n \"Like!\": \"Like!\",\n \"Seen by\": \"Seen by\",\n \"Done\": \"Done\",\n \"Cancel\": \"Cancel\",\n \"Create\": \"Create\",\n \"Admin\": \"Admin\",\n \"administrator\": \"Admin\",\n \"Tag\": \"Tag\",\n \"Tags\": \"Tags\",\n \"New\": \"New\",\n \"Close\": \"Close\",\n \"Shortcuts\": \"Shortcuts\",\n \"eg\": \"e.g.\",\n \"add\": \"Add\",\n \"Undo\": \"Undo\",\n \"Article\": \"Article\",\n \"Page\": \"Page\",\n \"Page Path\": \"Page path\",\n \"Category\": \"Category\",\n \"User\": \"User\",\n \"status\": \"Status\",\n \"account_id\": \"Account Id\",\n \"Update\": \"Update\",\n \"Update Page\": \"Update Page\",\n \"Warning\": \"Warning\",\n \"Sign in\": \"Sign in\",\n \"Sign up is here\": \"Sign up\",\n \"Sign in is here\": \"Sign in\",\n \"Sign up\": \"Sign up\",\n \"Sign up with Google Account\": \"Sign up with Google Account\",\n \"Sign in with Google Account\": \"Sign in with Google Account\",\n \"Sign up with this Google Account\": \"Sign up with this Google Account\",\n \"Example\": \"Example\",\n \"Taro Yamada\": \"John Doe\",\n \"List View\": \"List\",\n \"Timeline View\": \"Timeline\",\n \"History\": \"History\",\n \"attachment_data\": \"Attachment Data\",\n \"No_attachments_yet\": \"No attachments yet.\",\n \"Presentation Mode\": \"Presentation\",\n \"The end\": \"The end\",\n \"Not available for guest\": \"Not available for guest\",\n \"Create Archive Page\": \"Create Archive Page\",\n \"File type\": \"File type\",\n \"Target page\": \"Target page\",\n \"Include Attachment File\": \"Include Attachment File\",\n \"Include Comment\": \"Include Comment\",\n \"Include Subordinated Page\": \"Include Subordinated Page\",\n \"All Subordinated Page\": \"All Subordinated Page\",\n \"Specify Hierarchy\": \"Specify Hierarchy\",\n \"Submitted the request to create the archive\": \"Submitted the request to create the archive\",\n \"username\": \"Username\",\n \"Created\": \"Created\",\n \"Last updated\": \"Updated\",\n \"Last_Login\": \"Last login\",\n \"Share\": \"Share\",\n \"Markdown Link\": \"Markdown Link\",\n \"Create/Edit Template\": \"Create/Edit template page\",\n \"Go to this version\": \"View this version\",\n \"View diff\": \"View diff\",\n \"No diff\": \"No diff\",\n \"User ID\": \"User ID\",\n \"User Information\": \"User information\",\n \"Basic Info\": \"Basic info\",\n \"Name\": \"Name\",\n \"Email\": \"Email\",\n \"Language\": \"Language\",\n \"English\": \"English\",\n \"Japanese\": \"Japanese\",\n \"Set Profile Image\": \"Set profile image\",\n \"Upload Image\": \"Upload image\",\n \"Current Image\": \"Current image\",\n \"Delete Image\": \"Delete Image\",\n \"Delete this image?\": \"Delete this image?\",\n \"Updated\": \"Updated\",\n \"Upload new image\": \"Upload new image\",\n \"Connected\": \"Connected\",\n \"Show\": \"Show\",\n \"Hide\": \"Hide\",\n \"Disclose E-mail\": \"Disclose E-mail\",\n \"page exists\": \"this page already exists\",\n \"Error occurred\": \"Error occurred\",\n \"Create today's\": \"Create today's ...\",\n \"Memo\": \"memo\",\n \"Input page name\": \"Input page name\",\n \"Input page name (optional)\": \"Input page name (optional)\",\n \"New Page\": \"New page\",\n \"Create under\": \"Create page under below:\",\n \"Wiki Management Home Page\": \"Wiki Management Home Page\",\n \"App Settings\": \"App Settings\",\n \"Site URL settings\": \"Site URL settings\",\n \"Markdown Settings\": \"Markdown Settings\",\n \"Customize\": \"Customize\",\n \"Notification Settings\": \"Notification Settings\",\n \"slack_integration\": \"Slack Integration\",\n \"External_Notification\": \"External Notification\",\n \"Legacy_Slack_Integration\": \"Legacy Slack Integration\",\n \"User_Management\": \"User Management\",\n \"external_account_management\": \"External Account Management\",\n \"UserGroup Management\": \"UserGroup Management\",\n \"Full Text Search Management\": \"Full Text Search Management\",\n \"Import Data\": \"Import Data\",\n \"Export Archive Data\": \"Export Archive Data\",\n \"Basic Settings\": \"Basic Settings\",\n \"Basic authentication\": \"Basic authentication\",\n \"Register limitation\": \"Register limitation\",\n \"The contents entered here will be shown in the header etc\": \"The contents entered here will be shown in the header etc\",\n \"Public\": \"Public\",\n \"Anyone with the link\": \"Anyone with the link\",\n \"Specified users only\": \"Specified users only\",\n \"Only me\": \"Only me\",\n \"Only inside the group\": \"Only inside the group\",\n \"page_list\": \"Page List\",\n \"scope_of_page_disclosure\": \"Scope of page disclosure\",\n \"set_point\": \"Set point\",\n \"always_displayed\": \"Always displayed\",\n \"always_hidden\": \"Always hidden\",\n \"displayed_or_hidden\": \"Displayed / Hidden\",\n \"Reselect the group\": \"Reselect the group\",\n \"Shareable link\": \"Shareable link\",\n \"The whitelist of registration permission E-mail address\": \"The whitelist of registration permission E-mail address\",\n \"Add tags for this page\": \"Add tags for this page\",\n \"You have no tag, You can set tags on pages\": \"You have no tag, You can set tags on pages\",\n \"Show latest\": \"Show latest\",\n \"Load latest\": \"Load latest\",\n \"edited this page\": \"edited this page.\",\n \"List Drafts\": \"Drafts\",\n \"Deleted Pages\": \"Deleted Pages\",\n \"Sign out\": \"Logout\",\n \"Disassociate\": \"Disassociate\",\n \"No bookmarks yet\": \"No bookmarks yet\",\n \"Recent Created\": \"Recent Created\",\n \"Recent Changes\": \"Recent Changes\",\n \"original_path\": \"Original path\",\n \"new_path\": \"New path\",\n \"duplicated_path\": \"duplicated_path\",\n \"Link sharing is disabled\": \"Link sharing is disabled\",\n \"personal_dropdown\": {\n \"home\": \"Home\",\n \"settings\": \"Settings\",\n \"color_mode\": \"Color mode\",\n \"sidebar_mode\": \"Sidebar mode\",\n \"sidebar_mode_editor\": \"Sidebar mode on editor\",\n \"use_os_settings\": \"Use OS settings\"\n },\n \"form_validation\": {\n \"error_message\": \"Some values are incorrect\",\n \"required\": \"%s is required\",\n \"invalid_syntax\": \"The syntax of %s is invalid.\"\n },\n \"not_found_page\": {\n \"Create Page\": \"Create Page\",\n \"page_not_exist\": \"This page does not exist.\",\n \"page_not_exist_alert\": \"This page does not exist. Please create a new page.\"\n },\n \"custom_navigation\": {\n \"no_page_list\": \"There are no pages under this page.\",\n \"link_sharing_is_disabled\": \"Link sharing is disabled.\"\n },\n \"installer\": {\n \"setup\": \"Setup\",\n \"create_initial_account\": \"Create an initial account\",\n \"initial_account_will_be_administrator_automatically\": \"The initial account will be administrator automatically.\",\n \"unavaliable_user_id\": \"This 'User ID' is unavailable.\"\n },\n \"breaking_changes\": {\n \"v346_using_basic_auth\": \"Basic Authentication currently in use will <strong>no longer be available</strong> in the near future. Remove settings from %s\"\n },\n \"page_register\": {\n \"notice\": {\n \"restricted\": \"Admin approval required.\",\n \"restricted_defail\": \"Once the admin approves your sign up, you'll be able to access this wiki.\"\n },\n \"form_help\": {\n \"email\": \"You must have email address which listed below to sign up to this wiki.\",\n \"password\": \"Your password must be at least 6 characters long.\",\n \"user_id\": \"The URL of pages you create will contain your User ID. Your User ID can consist of letters, numbers, and some symbols.\"\n }\n },\n \"page_me\": {\n \"form_help\": {\n \"profile_image1\": \"Image upload settings not completed.\",\n \"profile_image2\": \"Set up AWS or enable local uploads.\"\n }\n },\n \"page_me_apitoken\": {\n \"api_token\": \"API Token\",\n \"notice\": {\n \"apitoken_issued\": \"API token is not issued.\",\n \"update_token1\": \"You can update to generate a new API token.\",\n \"update_token2\": \"You will need to update the API token in any existing processes.\"\n },\n \"form_help\": {}\n },\n \"Password\": \"Password\",\n \"Password Settings\": \"Password settings\",\n \"personal_settings\": {\n \"disassociate_external_account\": \"Disassociate External Account\",\n \"disassociate_external_account_desc\": \"Are you sure to disassociate the <strong>{{providerType}}</strong> account <strong>{{accountId}}</strong>?\",\n \"set_new_password\": \"Set new Password\",\n \"update_password\": \"Update password\",\n \"current_password\": \"Current password\",\n \"new_password\": \"New password\",\n \"new_password_confirm\": \"Re-enter new password\",\n \"password_is_not_set\": \"Password is not set\"\n },\n \"security_settings\": \"Security settings\",\n \"share_links\": {\n \"Shere this page link to public\": \"Shere this page link to public\",\n \"share_link_list\": \"Share link list\",\n \"share_link_management\": \"Share Link Management\",\n \"No_share_links\": \"No share links\",\n \"Share Link\": \"Share Link\",\n \"Page Path\": \"Page Path\",\n \"share_link_notice\": \"remove all share links\",\n \"delete_all_share_links\": \"Delete all share links\",\n \"expire\": \"Expiration\",\n \"Days\": \"Days\",\n \"Custom\": \"Custom\",\n \"description\": \"description\",\n \"enter_desc\": \"Enter description\",\n \"Unlimited\": \"unlimited\",\n \"Issue\": \"Issue\",\n \"share_settings\": \"Share settings\",\n \"Invalid_Number_of_Date\": \"You entered invalid value\"\n },\n \"API Settings\": \"API settings\",\n \"API Token Settings\": \"API token settings\",\n \"Current API Token\": \"Current API token\",\n \"Update API Token\": \"Update API token\",\n \"header_search_box\": {\n \"label\": {\n \"All pages\": \"All pages\",\n \"This tree\": \"This tree\"\n },\n \"item_label\": {\n \"All pages\": \"All pages\",\n \"This tree\": \"Only children of this tree\"\n }\n },\n \"copy_to_clipboard\": {\n \"Copy to clipboard\": \"Copy to clipboard\",\n \"Page path\": \"Page path\",\n \"Page URL\": \"Page URL\",\n \"Permanent link\": \"Permanent link\",\n \"Page path and permanent link\": \"Page path and permanent link\",\n \"Markdown link\": \"Markdown link\"\n },\n \"search_help\": {\n \"title\": \"Searching Help\",\n \"and\": {\n \"syntax help\": \"divide with space\",\n \"desc\": \"Search pages that include both {{word1}}, {{word2}} in the title or body\"\n },\n \"exclude\": {\n \"desc\": \"Exclude pages that include {{word}} in the title or body\"\n },\n \"phrase\": {\n \"syntax help\": \"surround with double quotes\",\n \"desc\": \"Search pages that include the phrase \\\"{{phrase}}\\\"\"\n },\n \"prefix\": {\n \"desc\": \"Search only the pages that the title start with {{path}}\"\n },\n \"exclude_prefix\": {\n \"desc\": \"Exclude the pages that the title start with {{path}}\"\n },\n \"tag\": {\n \"desc\": \"Search for pages with {{tag}} tag\"\n },\n \"exclude_tag\": {\n \"desc\": \"Exclude pages with {{tag}} tag\"\n }\n },\n \"search\": {\n \"search page bodies\": \"Hit [Enter] key to full-text search\"\n },\n \"page_page\": {\n \"notice\": {\n \"version\": \"This is not the current version.\",\n \"moved\": \"This page was moved from\",\n \"moved_period\": \".\",\n \"redirected\": \"You are redirected from\",\n \"redirected_period\": \".\",\n \"duplicated\": \"This page was duplicated from\",\n \"duplicated_period\": \".\",\n \"unlinked\": \"Redirect pages to this page have been deleted.\",\n \"restricted\": \"Access to this page is restricted\",\n \"stale\": \"More than {{count}} year has passed since last update.\",\n \"stale_plural\": \"More than {{count}} years has passed since last update.\",\n \"expiration\": \"This share link will expire at <strong>{{expiredAt}}</strong>.\",\n \"no_deadline\": \"This page has no expiration date\"\n }\n },\n \"page_table_of_contents\": {\n \"empty\": \"Table of Contents is empty\"\n },\n \"page_edit\": {\n \"Show active line\": \"Show active line\",\n \"auto_format_table\": \"Auto format table\",\n \"overwrite_scopes\": \"{{operation}} and Overwrite scopes of all descendants\",\n \"notice\": {\n \"conflict\": \"Couldn't save the changes you made because someone else was editing this page. Please re-edit the affected section after reloading the page.\"\n }\n },\n \"page_comment\": {\n \"display_the_page_when_posting_this_comment\": \"Display the page when posting this comment\"\n },\n \"page_api_error\": {\n \"notfound_or_forbidden\": \"Original page is not found or forbidden.\",\n \"already_exists\": \"New page is already exists.\",\n \"outdated\": \"Page is updated someone and now outdated.\",\n \"user_not_admin\": \"Only admin user can delete completely\"\n },\n \"page_history\": {\n \"revision_list\": \"Revision list\",\n \"revision\": \"version\",\n \"comparing_source\": \"Source\",\n \"comparing_target\": \"Target\",\n \"comparing_revisions\": \"Comparing the difference\",\n \"compare_latest\": \"Compare latest revision\",\n \"compare_previous\": \"Compare previous revision\"\n },\n \"modal_rename\": {\n \"label\": {\n \"Move/Rename page\": \"Move/Rename page\",\n \"New page name\": \"New page name\",\n \"Fail to get subordinated pages\": \"Fail to get subordinated pages\",\n \"Fail to get exist path\": \"Fail to get exist path\",\n \"Rename without exist path\": \"Rename without exist path\",\n \"Current page name\": \"Current page name\",\n \"Recursively\": \"Recursively\",\n \"Do not update metadata\": \"Do not update metadata\",\n \"Redirect\": \"Redirect\"\n },\n \"help\": {\n \"redirect\": \"Redirect to new page if someone accesses under this path\",\n \"metadata\": \"Remains last update user and updated date as is\",\n \"recursive\": \"Move/Rename children of under this path recursively\"\n }\n },\n \"Put Back\": \"Put back\",\n \"Delete Completely\": \"Delete completely\",\n \"modal_delete\": {\n \"delete_page\": \"Delete page\",\n \"deleting_page\": \"Deleting page\",\n \"delete_recursively\": \"Delete child pages recursively.\",\n \"delete_completely\": \"Delete completely\",\n \"delete_completely_restriction\": \"You don't have the authority to delete pages completely.\",\n \"recursively\": \"Delete pages under this path recursively.\",\n \"completely\": \"Delete completely instead of putting it into trash.\"\n },\n \"modal_empty\": {\n \"empty_the_trash\": \"Empty The Trash\",\n \"notice\": \"The pages deleted completely are unrecoverable.\"\n },\n \"modal_duplicate\": {\n \"label\": {\n \"Duplicate page\": \"Duplicate page\",\n \"New page name\": \"New page name\",\n \"Fail to get subordinated pages\": \"Fail to get subordinated pages\",\n \"Current page name\": \"Current page name\",\n \"Recursively\": \"Recursively\",\n \"Duplicate without exist path\": \"Duplicate without exist path\",\n \"Same page already exists\": \"Same page already exists\"\n },\n \"help\": {\n \"recursive\": \"Duplicate children of under this path recursively\"\n }\n },\n \"modal_putback\": {\n \"label\": {\n \"Put Back Page\": \"Put back page\",\n \"recursively\": \"Put back recursively\"\n },\n \"help\": {\n \"recursively\": \"Put back page under this path recursively\"\n }\n },\n \"modal_shortcuts\": {\n \"global\": {\n \"title\": \"Global shortcuts\",\n \"Open/Close shortcut help\": \"Open/Close<br>shortcut help\",\n \"Edit Page\": \"Edit Page\",\n \"Create Page\": \"Create Page\",\n \"Show Contributors\": \"Show Contributors\",\n \"MirrorMode\": \"Mirror Mode\",\n \"Konami Code\": \"Konami Code\",\n \"konami_code_url\": \"https://en.wikipedia.org/wiki/Konami_Code\"\n },\n \"editor\": {\n \"title\": \"Editor shortcuts\",\n \"Indent\": \"Indent\",\n \"Outdent\": \"Outdent\",\n \"Save Page\": \"Save Page\",\n \"Delete Line\": \"Delete Line\"\n },\n \"commentform\": {\n \"title\": \"Comment Form shortcuts\",\n \"Post\": \"Post\"\n }\n },\n \"link_edit\": {\n \"edit_link\": \"Edit Link\",\n \"set_link_and_label\": \"Set link and label\",\n \"link\": \"Link\",\n \"placeholder_of_link_input\": \"Input page path or URL\",\n \"label\": \"Label\",\n \"path_format\": \"Path format\",\n \"use_relative_path\": \"Use relative path\",\n \"use_permanent_link\": \"Use permanent link\",\n \"notation\": \"Notation\",\n \"markdown\": \"Markdown\",\n \"GROWI_original\": \"GROWI original\",\n \"pukiwiki\": \"Pukiwiki\",\n \"preview\": \"Preview\",\n \"page_not_found_in_preview\": \"\\\"{{path}}\\\" is not a GROWI page.\"\n },\n \"toaster\": {\n \"update_successed\": \"Succeeded to update {{target}}\",\n \"initialize_successed\": \"Succeeded to initialize {{target}}\",\n \"give_user_admin\": \"Succeeded to give {{username}} admin\",\n \"remove_user_admin\": \"Succeeded to remove {{username}} admin\",\n \"delete_slack_integration_procedure\": \"Succeeded to delete the slack integration procedure\",\n \"activate_user_success\": \"Succeeded to activating {{username}}\",\n \"deactivate_user_success\": \"Succeeded to deactivate {{username}}\",\n \"remove_user_success\": \"Succeeded to removing {{username}}\",\n \"remove_external_user_success\": \"Succeeded to remove {{accountId}}\",\n \"remove_share_link_success\": \"Succeeded to remove {{shareLinkId}}\",\n \"issue_share_link\": \"Succeeded to issue new share link\",\n \"remove_share_link\": \"Succeeded to remove {{count}} share links\",\n \"switch_disable_link_sharing_success\": \"Succeeded to update share link setting\",\n \"failed_to_reset_password\": \"Failed to reset password\"\n },\n \"template\": {\n \"modal_label\": {\n \"Create/Edit Template Page\": \"Create/Edit template page\",\n \"Create template under\": \"Create template page under this page\"\n },\n \"option_label\": {\n \"create/edit\": \"Create/Edit template page..\",\n \"select\": \"Select template page type\"\n },\n \"children\": {\n \"label\": \"Template for children\",\n \"desc\": \"Applies only to the same level pages which the template exists\"\n },\n \"decendants\": {\n \"label\": \"Template for descendants\",\n \"desc\": \"Applies to all decendant pages\"\n }\n },\n \"sandbox\": {\n \"header\": \"Header\",\n \"header_x\": \"Header {{index}}\",\n \"block\": \"Paragraph\",\n \"block_detail\": \"makes a paragraph\",\n \"empty_line\": \"Empty Line\",\n \"line_break\": \"Line Break\",\n \"line_break_detail\": \"(2 spaces) make a line break\",\n \"typography\": \"Typography\",\n \"italics\": \"Italics\",\n \"bold\": \"Bold\",\n \"italic_bold\": \"Italic Bold\",\n \"strikethrough\": \"strikethrough\",\n \"link\": \"Link\",\n \"code_highlight\": \"Code Highlight\",\n \"list\": \"List\",\n \"unordered_list_x\": \"Unordered List {{index}}\",\n \"ordered_list_x\": \"Ordered List {{index}}\",\n \"task\": \"Task\",\n \"task_checked\": \"Checked\",\n \"task_unchecked\": \"Unchecked\",\n \"quote\": \"Quote\",\n \"quote1\": \"You can write\",\n \"quote2\": \"multi-line quotations\",\n \"quote_nested\": \"Nested Quote\",\n \"table\": \"Table\",\n \"image\": \"Image\",\n \"alt_text\": \"Alt Text\",\n \"insert_image\": \"inserts an image\",\n \"open_sandbox\": \"Open Sandbox\"\n },\n \"hackmd\": {\n \"hack_md\": \"HackMD\",\n \"not_set_up\": \"HackMD is not set up.\",\n \"used_for_not_found\": \"Can not use HackMD to a page that does not exist.\",\n \"start_to_edit\": \"Start to edit with HackMD\",\n \"clone_page_content\": \"Click to clone page content and start to edit.\",\n \"unsaved_draft\": \"HackMD has unsaved draft.\",\n \"draft_outdated\": \"DRAFT MAY BE OUTDATED\",\n \"based_on_revision\": \"The current draft on HackMD is based on\",\n \"view_outdated_draft\": \"View the outdated draft on HackMD\",\n \"resume_to_edit\": \"Resume to edit with HackMD\",\n \"discard_changes\": \"Discard changes of HackMD\",\n \"integration_failed\": \"HackMD Integration failed\",\n \"fail_to_connect\": \"GROWI client failed to connect to GROWI agent for HackMD.\",\n \"check_configuration\": \"Check your configuration following <a href='https://docs.growi.org/guide/admin-cookbook/integrate-with-hackmd.html'>the manual</a>.\",\n \"not_initialized\": \"HackmdEditor component has not initialized\",\n \"someone_editing\": \"Someone editing this page on HackMD\",\n \"this_page_has_draft\": \"This page has a draft on HackMD\",\n \"need_to_associate_with_growi_to_use_hackmd_refer_to_this\": \"To use HackMD for simultaneous multi-person editing, need to associate HackMD with GROWI.Please refer to <a href='https://docs.growi.org/en/admin-guide/admin-cookbook/integrate-with-hackmd.html'>here</a>.\",\n \"need_to_make_page\": \"To use HackMD, please make a new page from the <a href='#edit'>built-in editor.</a>\"\n },\n \"slack_notification\": {\n \"popover_title\": \"Slack Notification\",\n \"popover_desc\": \"Input channel name. You can notify multiple channels by entering a comma-separated list.\"\n },\n \"search_result\": {\n \"result_meta\": \"Found \\\"{{keyword}}\\\" in {{total}}.\",\n \"deletion_mode_btn_lavel\": \"Select and delete page\",\n \"cancel\": \"Cancel\",\n \"delete\": \"Delete\",\n \"check_all\": \"Check all\",\n \"deletion_modal_header\": \"Delete page\",\n \"delete_completely\": \"Delete completely\"\n },\n \"security_setting\": {\n \"Guest Users Access\": \"Guest users access\",\n \"Fixed by env var\": \"This is fixed by the env var <code>%s=%s</code>.\",\n \"Register limitation\": \"Register limitation\",\n \"Register limitation desc\": \"Restriction of new users' registration\",\n \"The whitelist of registration permission E-mail address\": \"The whitelist of registration permission E-mail address\",\n \"users_without_account\": \"Users without account is not accessible\",\n \"example\": \"Example\",\n \"restrict_emails\": \"You can restrict email registration to your wiki by writing an email domain (beginning with @). \",\n \"for_example\": \" For example, if you would like to restrict registration to users within the growi.org domain, you can write \",\n \"in_this_case\": \"; in this case, only users within the growi.org domain would be able to register, and all other users would be rejected.\",\n \"insert_single\": \"Please insert single e-mail address per line.\",\n \"page_list_and_search_results\": \"Page list / Search results\",\n \"page_listing_1\": \"Page listing/searching<br>restricted by 'Only me'\",\n \"page_listing_1_desc\": \"Show pages that are restricted by 'Only me' option when listing/searching\",\n \"page_listing_2\": \"Page listing/searching<br>restricted by User group\",\n \"page_listing_2_desc\": \"Show pages that are restricted by User group when listing/searching\",\n \"page_access_and_delete_rights\": \"Page access / Delete rights\",\n \"complete_deletion\": \"Restrict complete deletion of pages\",\n \"complete_deletion_explain\": \"Restricts users who can completely delete pages.\",\n \"admin_only\": \"Admin only\",\n \"admin_and_author\": \"Admin and author\",\n \"anyone\": \"Anyone\",\n \"session\": \"Session\",\n \"max_age\": \"Max age (msec)\",\n \"max_age_desc\": \"Specifies the number (in milliseconds) to expire users session.<br>Default: 2592000000 (30days)\",\n \"max_age_caution\": \"Restarting the server is required after you modify this value.\",\n \"Authentication mechanism settings\": \"Authentication Mechanism Settings\",\n \"setup_is_not_yet_complete\": \"Setup is not yet complete\",\n \"alert_siteUrl_is_not_set\": \"'Site URL' is NOT set. Set it from the {{link}}\",\n \"xss_prevent_setting\": \"Prevent XSS(Cross Site Scripting)\",\n \"xss_prevent_setting_link\": \"Go to Markdown Settings\",\n \"callback_URL\": \"Callback URL\",\n \"providerName\": \"Provider Name\",\n \"issuerHost\": \"Issuer Host\",\n \"scope\": \"Scope\",\n \"desc_of_callback_URL\": \"Use it in the setting of the {{AuthName}} Identity provider\",\n \"authorization_endpoint\": \"Authorization Endpoint\",\n \"token_endpoint\": \"Token Endpoint\",\n \"revocation_endpoint\": \"Revocation Endpoint\",\n \"introspection_endpoint\": \"Introspection Endpoint\",\n \"userinfo_endpoint\": \"UserInfo Endpoint\",\n \"end_session_endpoint\": \"EndSessioin Endpoint\",\n \"registration_endpoint\": \"Registration Endpoint\",\n \"jwks_uri\": \"JSON Web Key Set URL\",\n \"clientID\": \"Client ID\",\n \"client_secret\": \"Client Secret\",\n \"updated_general_security_setting\": \"Succeeded to update security setting\",\n \"setup_not_completed_yet\": \"Setup not completed yet\",\n \"guest_mode\": {\n \"deny\": \"Deny (Registered users only)\",\n \"readonly\": \"Accept (Guests can read only)\"\n },\n \"registration_mode\": {\n \"open\": \"Open (Anyone can register)\",\n \"restricted\": \"Restricted (Requires approval by administrators)\",\n \"closed\": \"Closed (Invitation Only)\"\n },\n \"share_link_rights\": \"Share link rights\",\n \"enable_link_sharing\": \"Enable link sharing\",\n \"all_share_links\": \"All share links\",\n \"configuration\": \" Configuration\",\n \"optional\": \"Optional\",\n \"Treat username matching as identical\": \"Automatically bind external accounts newly logged in to local accounts when <code>username</code> match\",\n \"Treat username matching as identical_warn\": \"WARNING: Be aware of security because the system treats the same user as a match of <code>username</code>.\",\n \"Treat email matching as identical\": \"Automatically bind external accounts newly logged in to local accounts when <code>email</code> match\",\n \"Treat email matching as identical_warn\": \"WARNING: Be aware of security because the system treats the same user as a match of <code>email</code>.\",\n \"Use env var if empty\": \"Use env var <code>{{env}}</code> if empty\",\n \"Use default if both are empty\": \"If both are empty, the default value <code>{{target}}</code> is used.\",\n \"missing mandatory configs\": \"The following mandatory items are not set in either database nor environment variables.\",\n \"Local\": {\n \"name\": \"ID/Password\",\n \"note for the only env option\": \"The LOCAL authentication is limited by the value of environment variable.<br>To change this setting, please change to false or delete the value of the environment variable <code>{{env}}</code> .\",\n \"enable_local\": \"Enable ID/Password\"\n },\n \"ldap\": {\n \"enable_ldap\": \"Enable LDAP\",\n \"server_url_detail\": \"The LDAP URL of the directory service in the format <code>ldap://host:port/DN</code> or <code>ldaps://host:port/DN</code>.\",\n \"bind_mode\": \"Binding Mode\",\n \"bind_manager\": \"Manager Bind\",\n \"bind_user\": \"User Bind\",\n \"bind_DN_manager_detail\": \"The DN of the account that authenticates and queries the directory service\",\n \"bind_DN_user_detail1\": \"The query used to bind with the directory service.\",\n \"bind_DN_user_detail2\": \"Use <code>{{username}}</code> to reference the username entered in the login page.\",\n \"bind_DN_password\": \"Bind DN Password\",\n \"bind_DN_password_manager_detail\": \"The password for the Bind DN account.\",\n \"bind_DN_password_user_detail\": \"The password that is entered in the login page will be used to bind.\",\n \"search_filter\": \"Search Filter\",\n \"search_filter_detail1\": \"The query used to locate the authenticated user.\",\n \"search_filter_detail2\": \"Use <code>{{username}}</code> to reference the username entered in the login page.\",\n \"search_filter_detail3\": \"If empty, the filter <code>(uid={{username}})</code> is used.\",\n \"search_filter_example1\": \"Match with 'uid' or 'mail'\",\n \"search_filter_example2\": \"Match with 'sAMAccountName' for Active Directory\",\n \"username_detail\": \"Specification of mappings for <code>username</code> when creating new users\",\n \"name_detail\": \"Specification of mappings for full name when creating new users\",\n \"mail_detail\": \"Specification of mappings for mail address when creating new users\",\n \"group_search_base_DN\": \"Group Search Base DN\",\n \"group_search_base_DN_detail\": \"The base DN from which to search for groups. If defined, also <code>Group Search Filter</code> must be defined for the search to work.\",\n \"group_search_filter\": \"Group Search Filter\",\n \"group_search_filter_detail1\": \"The query used to filter for groups.\",\n \"group_search_filter_detail2\": \"Login via LDAP is accepted only when this query hits one or more groups.\",\n \"group_search_filter_detail3\": \"Use <code>{{dn}}</code> to have it replaced of the found user object.\",\n \"group_search_filter_detail4\": \"<code>(&(cn=group1)(memberUid={{dn}}))</code> hits the groups which has <code>cn=group1</code> and <code>memberUid</code> includes the user's <code>uid</code>(when <code>Group DN Property</code> is not changed from the default value.)\",\n \"group_search_user_DN_property\": \"User DN Property\",\n \"group_search_user_DN_property_detail\": \"The property of user object to use in <code>{{dn}}</code> interpolation of <code>Group Search Filter</code>.\",\n \"test_config\": \"Test Saved Configuration\",\n \"updated_ldap\": \"Succeeded to update LDAP setting\"\n },\n \"SAML\": {\n \"name\": \"SAML\",\n \"enable_saml\": \"Enable SAML\",\n \"id_detail\": \"Specification of the name of attribute which can identify the user in SAML Identity Provider\",\n \"username_detail\": \"Specification of mappings for <code>username</code> when creating new users\",\n \"mapping_detail\": \"Specification of mappings for {{target}} when creating new users\",\n \"cert_detail\": \"PEM-encoded X.509 signing certificate to validate the response from IdP\",\n \"Use env var if empty\": \"If the value in the database is empty, the value of the environment variable <code>{{env}}</code> is used.\",\n \"note for the only env option\": \"The setting item that enables or disables the SAML authentication and the highlighted setting items use only the value of environment variables.<br>To change this setting, please change to false or delete the value of the environment variable <code>{{env}}</code> .\",\n \"attr_based_login_control_detail\": \"Limit who can sign up by using <code><saml: Attribute></code> element included in <code><saml: AttributeStatement></code> element and its child element <code><saml: AttributeValue></code>.\",\n \"attr_based_login_control_rule_detail\": \"See <a href=\\\"https://lucene.apache.org/core/2_9_4/queryparsersyntax.html\\\" target=\\\"_blank\\\">Apache Lucene - Query Parser Syntax</a>.<h6>Supported Queries:</h6><ul><li>Terms</li><li>Fields</li><li>AND/NOT/OR Operator</li><li>Grouping</li></ul><h6>Unsupported Queries:</h6><ul><li>Wildcard, Fuzzy, Proximity, Range and Boosting</li><li>+/- Operator</li><li>Field Grouping</li></ul>\",\n \"attr_based_login_control_rule_example\": \"<h6>Example</h6>If a rule is <code>(Department: A || Department: B) && Position: Leader</code>, users who have either <code>Department: A</code> or <code>Department: B</code> and have <code>Position: Leader</code> <strong>can</strong> sign in.\",\n \"updated_saml\": \"Succeeded to update SAML setting\"\n },\n \"Basic\": {\n \"enable_basic\": \"Enable Basic\",\n \"name\": \"Basic Authentication\",\n \"desc_1\": \"Login with <code>username</code> in Authorization header.\",\n \"desc_2\": \"User will be automatically generated if not exist.\",\n \"updated_basic\": \"Succeeded to update Basic setting\"\n },\n \"OAuth\": {\n \"enable_oidc\": \"Enable OIDC\",\n \"register\": \"Register for %s\",\n \"change_redirect_url\": \"Enter <code>%s</code> <br>(where <code>%s</code> is your host name) for \\\"Authorized redirect URIs\\\".\",\n \"Google\": {\n \"enable_google\": \"Enable Google OAuth\",\n \"name\": \"Google OAuth\",\n \"register_1\": \"Access {{link}}\",\n \"register_2\": \"Create Project if no projects exist\",\n \"register_3\": \"Create Credentials → OAuth client ID → Select \\\"Web application\\\"\",\n \"register_4\": \"Register your OAuth App with one of Authorized redirect URIs as <code>{{url}}</code>\",\n \"register_5\": \"Copy and paste your ClientID and Client Secret above\",\n \"updated_google\": \"Succeeded to update Google OAuth setting\"\n },\n \"Facebook\": {\n \"name\": \"Facebook OAuth\"\n },\n \"Twitter\": {\n \"enable_twitter\": \"Enable Twitter OAuth\",\n \"name\": \"Twitter OAuth\",\n \"register_1\": \"Access {{link}}\",\n \"register_2\": \"Sign in Twitter\",\n \"register_3\": \"Create Credentials → OAuth client ID → Select \\\"Web application\\\"\",\n \"register_4\": \"Register your OAuth App with one of Authorized redirect URIs as <code>{{url}}</code>\",\n \"register_5\": \"Copy and paste your ClientID and Client Secret above\",\n \"updated_twitter\": \"Succeeded to update Twitter OAuth setting\"\n },\n \"GitHub\": {\n \"enable_github\": \"Enable GitHub OAuth\",\n \"name\": \"GitHub OAuth\",\n \"register_1\": \"Access {{link}}\",\n \"register_2\": \"Register your OAuth App with \\\"Authorization callback URL\\\" as <code>{{url}}</code>\",\n \"register_3\": \"Copy and paste your ClientID and Client Secret above\",\n \"updated_github\": \"Succeeded to update GitHub OAuth setting\"\n },\n \"OIDC\": {\n \"name\": \"OpenID Connect\",\n \"id_detail\": \"Specification of the name of attribute which can identify the user in OIDC claims\",\n \"username_detail\": \"Specification of mappings for <code>username</code> when creating new users\",\n \"name_detail\": \"Specification of mappings for <code>name</code> when creating new users\",\n \"mapping_detail\": \"Specification of mappings for %s when creating new users\",\n \"register_1\": \"Contant to OIDC IdP Administrator\",\n \"register_2\": \"Register your OIDC App with \\\"Authorization callback URL\\\" as <code>%s</code>\",\n \"register_3\": \"Copy and paste your ClientID and Client Secret above\",\n \"updated_oidc\": \"Succeeded to update OpenID Connect\",\n \"Use discovered URL if empty\": \"Use discovered URL from \\\"Issuer Host\\\" if empty\"\n },\n \"how_to\": {\n \"google\": \"How to configure Google OAuth?\",\n \"github\": \"How to configure GitHub OAuth?\",\n \"twitter\": \"How to configure Twitter OAuth?\",\n \"oidc\": \"How to configure OIDC?\"\n }\n },\n \"form_item_name\": {\n \"entryPoint\": \"Entry point\",\n \"issuer\": \"Issuer\",\n \"cert\": \"Certificate\",\n \"attrMapId\": \"ID\",\n \"attrMapUsername\": \"Username\",\n \"attrMapMail\": \"Mail Address\",\n \"attrMapFirstName\": \"First Name\",\n \"attrMapLastName\": \"Last Name\",\n \"ABLCRule\": \"Rule\"\n }\n },\n \"notification_setting\": {\n \"slack_incoming_configuration\": \"Slack Incoming Webhooks configuration\",\n \"prioritize_webhook\": \"Prioritize incoming webhook than Slack App\",\n \"prioritize_webhook_desc\": \"Check this option and GROWI use Incoming Webhooks even if Slack App settings are enabled.\",\n \"slack_app_configuration\": \"Slack app configuration\",\n \"slack_app_configuration_desc\": \"This is the way that compatible with Crowi,<br /> but not recommended in GROWI because it is <strong>too complex</strong>.\",\n \"use_instead\": \"Please use Slack Incoming Webhooks Configuration instead.\",\n \"how_to\": {\n \"header\": \"How to configure Incoming Webhooks?\",\n \"workspace\": \"(At Workspace) Add a hook\",\n \"workspace_desc1\": \"Go to <a href='https://slack.com/services/new/incoming-webhook'>Incoming Webhooks configuration page</a>.\",\n \"workspace_desc2\": \"Choose the default channel to post.\",\n \"workspace_desc3\": \"Add.\",\n \"at_growi\": \"(At GROWI admin page) Set Webhook URL\",\n \"at_growi_desc\": \"Input ”Webhook URL” and submit on this page.\"\n },\n \"user_trigger_notification_header\": \"Default notification settings for patterns\",\n \"pattern\": \"Pattern\",\n \"channel\": \"Channel\",\n \"pattern_desc\": \"Path name of wiki. Pattern expression with <code>*</code> can be used.\",\n \"channel_desc\": \"Slack channel name. Without <code>#</code>.\",\n \"valid_page\": \"Enable/disable Notification\",\n \"link_notification_help\": \"<strong>The page that is able to be viewed only by those who know the link 'Anyone with the link'</strong> is not notified always.\",\n \"just_me_notification_help\": \"<strong>The page that is restricted by 'Only Me'</strong> is notify when the page edited.\",\n \"group_notification_help\": \"<strong>The page that is restricted by 'User Group'</strong> is notify when the page edited.\",\n \"notification_list\": \"List of notification settings\",\n \"add_notification\": \"Add new\",\n \"trigger_path\": \"Trigger path\",\n \"trigger_path_help\": \"(expression with <code>*</code> is supported)\",\n \"trigger_events\": \"Trigger events\",\n \"notify_to\": \"Notify to\",\n \"back_to_list\": \"Go back to list\",\n \"notification_detail\": \"Notification Setting Details\",\n \"event_pageCreate\": \"When new page is \\\"CREATED\\\"\",\n \"event_pageEdit\": \"When page is \\\"EDITED\\\"\",\n \"event_pageDelete\": \"When page is \\\"DELETED\\\"\",\n \"event_pageMove\": \"When page is \\\"MOVED\\\" (renamed)\",\n \"event_pageLike\": \"When someone \\\"LIKES\\\" page\",\n \"event_comment\": \"When someone \\\"COMMENTS\\\" on page\",\n \"email\": {\n \"ifttt_link\": \"Create a new IFTTT applet with Email trigger\"\n },\n \"updated_slackApp\": \"Succeeded to update Slack App Configuration setting\",\n \"add_notification_pattern\": \"Add user trigger notification patterns\",\n \"delete_notification_pattern\": \"Delete notification pattern\",\n \"delete_notification_pattern_desc1\": \"Delete Path: {{path}}\",\n \"delete_notification_pattern_desc2\": \"Once deleted, it cannot be recovered\",\n \"toggle_notification\": \"Updated setting of {{path}}\"\n },\n \"full_text_search_management\": {\n \"elasticsearch_management\": \"Elasticsearch management\",\n \"connection_status\": \"Connection status\",\n \"connection_status_label_unconfigured\": \"UNCONFIGURED\",\n \"connection_status_label_connected\": \"CONNECTED\",\n \"connection_status_label_disconnected\": \"DISCONNECTED\",\n \"connection_status_label_erroroccured\": \"ERROR OCCURED ON SEARCH SERVICE\",\n \"indices_status\": \"Indices Status\",\n \"indices_status_label_normalized\": \"NORMALIZED\",\n \"indices_status_label_unnormalized\": \"REBUILDING or BROKEN\",\n \"indices_summary\": \"Indices summary\",\n \"reconnect\": \"Reconnect\",\n \"reconnect_button\": \"Try to reconnect\",\n \"reconnect_description\": \"Click the button to try to reconnect to Elasticsearch.\",\n \"normalize\": \"Normalize\",\n \"normalize_button\": \"Normalize indices\",\n \"normalize_description\": \"Click the button to repair broken indices.\",\n \"rebuild\": \"Rebuild\",\n \"rebuild_button\": \"Rebuild index\",\n \"rebuild_description_1\": \"Click the button to rebuild index and add all page datas.\",\n \"rebuild_description_2\": \"This may take a while.\"\n },\n \"to_cloud_settings\": \"Open GROWI.cloud Settings\",\n \"login\": {\n \"Sign in error\": \"Login error\",\n \"Registration successful\": \"Registration successful\",\n \"Setup\": \"Setup\"\n },\n \"export_bulk\": {\n \"failed_to_export\": \"Failed to export\",\n \"failed_to_count_pages\": \"Failed to count pages\",\n \"export_page_markdown\": \"Export page as Markdown\",\n \"export_page_pdf\": \"Export page as PDF\"\n },\n \"message\": {\n \"successfully_connected\": \"Successfully Connected!\",\n \"fail_to_save_access_token\": \"Failed to save access_token. Please try again.\",\n \"fail_to_fetch_access_token\": \"Failed to fetch access_token. Please do connect again.\",\n \"successfully_disconnected\": \"Successfully Disconnected!\",\n \"strategy_has_not_been_set_up\": \"{{strategy}} has not been set up\",\n \"maximum_number_of_users\": \"Can not register more than the maximum number of users.\",\n \"database_error\": \"Database Server Error occured\",\n \"sign_in_failure\": \"Sign in failure.\",\n \"aws_sttings_required\": \"AWS settings required to use this function. Please ask the administrator.\",\n \"application_already_installed\": \"Application already installed.\",\n \"email_address_could_not_be_used\": \"This email address could not be used. (Make sure the allowed email address)\",\n \"user_id_is_not_available.\": \"This User ID is not available.\",\n \"email_address_is_already_registered\": \"This email address is already registered.\",\n \"can_not_register_maximum_number_of_users\": \"Can not register more than the maximum number of users.\",\n \"failed_to_register\": \"Failed to register.\",\n \"successfully_created\": \"The user {{username}} is successfully created.\",\n \"can_not_activate_maximum_number_of_users\": \"Can not activate more than the maximum number of users.\",\n \"failed_to_activate\": \"Failed to activate.\",\n \"unable_to_use_this_user\": \"Unable to use this user.\",\n \"complete_to_install1\": \"Complete to Install GROWI ! Please login as admin account.\",\n \"complete_to_install2\": \"Complete to Install GROWI ! Please check each settings on this page first.\",\n \"failed_to_create_admin_user\": \"Failed to create admin user. {{errMessage}}\"\n },\n \"grid_edit\": {\n \"create_bootstrap_4_grid\": \"Create Bootstrap 4 Grid\",\n \"grid_settings\": \"Grid Settings\",\n \"grid_pattern\": \"Grid Pattern\",\n \"division\": \"Divisions\",\n \"smart_no\": \"Smartphone / No Break\",\n \"break_point\": \"Break point by display size\"\n },\n \"validation\": {\n \"aws_region\": \"For the region, enter the AWS region name. ex):us-east-1\",\n \"aws_custom_endpoint\": \"For the custom endpoint, specify the URL that starts with http(s)://. Also, the trailing slash is not required.\",\n \"failed_to_send_a_test_email\": \"Failed to send a test email using SMTP. Please check your settings.\"\n }\n }\n },\n \"ja_JP\": {\n \"admin\": {\n \"mailer_setup_required\": \"送信するには <a href='/admin/app'>メールの設定</a> が必要です。\",\n \"admin_top\": {\n \"management_wiki\": \"Wiki管理\",\n \"system_information\": \"システム情報\",\n \"wiki_administrator\": \"この画面はWiki管理者のみがアクセスできる画面です。\",\n \"assign_administrator\": \"「ユーザー管理」から「管理者にする」ボタンを使ってユーザーをWiki管理者に任命することができます。\",\n \"list_of_installed_plugins\": \"インストールされているプラグイン一覧\",\n \"package_name\": \"パッケージ名\",\n \"specified_version\": \"指定バージョン\",\n \"installed_version\": \"インストールされているバージョン\",\n \"list_of_env_vars\": \"サーバー側で設定されている環境変数一覧\",\n \"env_var_priority\": \"セキュリティに関する環境変数を除き、データベースの値が優先的に取得されます。\",\n \"about_security\": \"セキュリティに関する環境変数は <a href='/admin/security'>セキュリティ設定画面</a> からご確認ください。\"\n },\n \"app_setting\": {\n \"site_name\": \"サイト名\",\n \"sitename_change\": \"ヘッダーや HTML タイトルに使用されるサイト名を変更できます。\",\n \"header_content\": \"ここに入力した内容は、ヘッダー等に表示されます。\",\n \"site_url_desc\": \"サイトURLを設定します。\",\n \"site_url_warn\": \"サイトURLが設定されていないため、一部機能が動作しない状態になっています。\",\n \"siteurl_help\": \"<code>http://</code> または <code>https://</code> から始まるサイトのURL\",\n \"confidential_name\": \"コンフィデンシャル表示\",\n \"confidential_example\": \"例: 社外秘\",\n \"default_language\": \"新規ユーザーのデフォルト設定言語\",\n \"default_mail_visibility\": \"新規ユーザーの初期メール公開設定\",\n \"file_uploading\": \"ファイルアップロード\",\n \"enable_files_except_image\": \"画像以外のファイルアップロードを許可\",\n \"attach_enable\": \"許可をしている場合、画像以外のファイルをページに添付可能になります。\",\n \"update\": \"更新\",\n \"mail_settings\": \"メールの設定\",\n \"mailer_is_not_set_up\": \"メール設定がセットアップされていません。\",\n \"from_e-mail_address\": \"Fromアドレス\",\n \"transmission_method\": \"送信方法\",\n \"smtp_label\": \"SMTP\",\n \"ses_label\": \"SES(AWS)\",\n \"send_test_email\": \"テストメールを送信\",\n \"success_to_send_test_email\": \"テストメールを送信しました。\",\n \"smtp_settings\": \"SMTP設定\",\n \"host\": \"ホスト\",\n \"port\": \"ポート\",\n \"user\": \"ユーザー\",\n \"initialize_mail_settings\": \"設定を初期化\",\n \"initialize_mail_modal_header\": \"メール設定の初期化\",\n \"confirm_to_initialize_mail_settings\": \"一度初期化した設定は戻せません。本当に初期化しますか?\",\n \"file_upload_settings\": \"ファイルアップロード設定\",\n \"file_upload_method\": \"ファイルアップロード方法\",\n \"file_delivery_method\": \"ファイルの配信方法\",\n \"file_delivery_method_redirect\": \"リダイレクト\",\n \"file_delivery_method_relay\": \"内部システム中継\",\n \"file_delivery_method_redirect_info\": \"リダイレクト: GROWIサーバーを介さずに署名付きURLにリダイレクトされるため、優れたパフォーマンスを出します。\",\n \"file_delivery_method_relay_info\": \"内部システム中継: GROWIサーバーがクライアントに配信するため、完全なセキュリティーを提供します。\",\n \"gcs_label\": \"GCP(GCS)\",\n \"aws_label\": \"AWS(S3)\",\n \"local_label\": \"Local\",\n \"gridfs_label\": \"MongoDB(GridFS)\",\n \"fixed_by_env_var\": \"環境変数 <code>FILE_UPLOAD={{fileUploadType}}</code> により固定されています。\",\n \"file_upload\": \"ファイルをアップロードするための設定を行います。ファイルアップロードの設定を完了させると、ファイルアップロード機能、プロフィール写真機能などが有効になります。\",\n \"ses_settings\": \"SES設定\",\n \"test_connection\": \"接続テスト\",\n \"change_setting\": \"この設定を途中で変更すると、これまでにアップロードしたファイル等へのアクセスができなくなりますのでご注意下さい。\",\n \"region\": \"リージョン\",\n \"bucket_name\": \"バケット名\",\n \"custom_endpoint\": \"カスタムエンドポイント\",\n \"custom_endpoint_change\": \"MinIOなど、S3互換APIを持つ他のオブジェクトストレージサービスを使用する場合のみ、そのエンドポイントのURLを入力してください。空欄の場合は、Amazon S3を使用します。\",\n \"plugin_settings\": \"プラグイン設定\",\n \"enable_plugin_loading\": \"プラグインの読み込みを有効にします。\",\n \"load_plugins\": \"プラグインを読み込む\",\n \"enable\": \"有効\",\n \"disable\": \"無効\",\n \"use_env_var_if_empty\": \"データベース側の値が空の場合、環境変数 <code>{{variable}}</code> の値を利用します\",\n \"note_for_the_only_env_option\": \"現在GCS設定は環境変数の値によって制限されています<br>この設定を変更する場合は環境変数 <code>{{env}}</code> の値をfalseに変更もしくは削除してください\"\n },\n \"markdown_setting\": {\n \"lineBreak_header\": \"Line Break設定\",\n \"lineBreak_desc\": \"Line Breakの設定を変更できます。\",\n \"lineBreak_options\": {\n \"enable_lineBreak\": \"Line Break を有効にする\",\n \"enable_lineBreak_desc\": \"ページテキスト中の改行を、HTML内で<code><br></code>として扱います\",\n \"enable_lineBreak_for_comment\": \"コメント欄で Line Break を有効にする\",\n \"enable_lineBreak_for_comment_desc\": \"コメント中の改行を、HTML内で<code><br></code>として扱います\"\n },\n \"indent_header\": \"インデント設定\",\n \"indent_desc\": \"インデントの設定を変更できます。\",\n \"indent_options\": {\n \"indentSize\": \"既定のインデント幅\",\n \"indentSize_desc\": \"既定のインデント幅を指定します。\",\n \"disallow_indent_change\": \"ユーザによるインデント幅変更を許可しない\",\n \"disallow_indent_change_desc\": \"ユーザにデフォルトのインデント幅の使用を強制します。\"\n },\n \"presentation_header\": \"プレゼンテーション設定\",\n \"presentation_desc\": \"プレゼンテーションの設定を変更できます。\",\n \"presentation_options\": {\n \"page_break_setting\": \"改頁を設定する\",\n \"preset_one_separator\": \"プリセット 1\",\n \"preset_one_separator_desc\": \"連続した空行3行で改頁します\",\n \"preset_one_separator_value\": \"\\\\n\\\\n\\\\n\",\n \"preset_two_separator\": \"プリセット 2\",\n \"preset_two_separator_desc\": \"連続したハイフン5つで改頁します\",\n \"preset_two_separator_value\": \"-----\",\n \"custom_separator\": \"カスタム\",\n \"custom_separator_desc\": \"正規表現を設定できます\"\n },\n \"xss_header\": \"XSS(Cross Site Scripting)対策設定\",\n \"xss_desc\": \"マークダウンテキスト内の HTML タグの扱いを設定し、悪意のあるプログラムからの攻撃を防ぎます\",\n \"xss_options\": {\n \"enable_xss_prevention\": \"XSSを抑制する\",\n \"remove_all_tags\": \"すべてのタグを抑制する\",\n \"remove_all_tags_desc\": \"すべてのHTMLタグと属性を使用不可にします\",\n \"recommended_setting\": \"おすすめ設定\",\n \"custom_whitelist\": \"カスタムホワイトリスト\",\n \"tag_names\": \"タグ名\",\n \"tag_attributes\": \"タグ属性\",\n \"import_recommended\": \"{{target}} のおすすめをインポート\"\n }\n },\n \"customize_setting\": {\n \"layout\": \"レイアウト\",\n \"layout_options\": {\n \"default\": \"デフォルトのコンテンツ幅\",\n \"expanded\": \"コンテンツ幅 100%\"\n },\n \"theme\": \"テーマ\",\n \"theme_desc\": {\n \"light_and_dark\": \"Light/Dark モード選択あり\",\n \"unique\": \"モード選択なし\"\n },\n \"function\": \"機能\",\n \"function_desc\": \"機能の有効/無効を選択できます。\",\n \"function_options\": {\n \"timeline\": \"タイムライン機能\",\n \"timeline_desc1\": \"配下ページのタイムラインを表示できます。\",\n \"timeline_desc2\": \"配下ページが多い場合はページロード時のパフォーマンスが落ちます。\",\n \"timeline_desc3\": \"無効化することでリストページの表示を高速化できます。\",\n \"tab_switch\": \"タブ変更をブラウザ履歴に保存\",\n \"tab_switch_desc1\": \"編集タブやヒストリータブ等の切り替えをブラウザ履歴に保存し、ブラウザの戻る/進む操作の対象にします。\",\n \"tab_switch_desc2\": \"無効化することで、ページ遷移のみを戻る/進む操作の対象にすることができます。\",\n \"attach_title_header\": \"新規ページ作成時の h1 セクション自動挿入\",\n \"attach_title_header_desc\": \"新規作成したページの1行目に、ページのパスを h1 セクションとして挿入します。\",\n \"list_num_s\": \"モーダルに表示されるリスト数\",\n \"list_num_desc_s\": \"モーダルにおける <ページリスト> <タイムライン> <更新履歴> <添付ファイル>での、1ページあたりの表示数を設定します。\",\n \"list_num_m\": \"ユーザーページに表示されるリスト数\",\n \"list_num_desc_m\": \"ユーザーページにおける <Bookmarks> <Recently Created>での、1ページあたりの表示数を設定します。\",\n \"list_num_l\": \"検索ページに表示されるリスト数\",\n \"list_num_desc_l\": \"<Search>での、1ページあたりの表示数を設定します。\",\n \"list_num_xl\": \"Not FoundページやTrashページに表示されるリスト数\",\n \"list_num_desc_xl\": \"記事エリアにおける<Not Found> <Trash>での、1ページあたりの表示数を設定します。\",\n \"stale_notification\": \"古いページに通知を表示する\",\n \"stale_notification_desc\": \"最後の更新から1年を超えるページへの通知を表示します。\",\n \"show_all_reply_comments\": \"返信コメントを全て表示する\",\n \"show_all_reply_comments_desc\": \"OFFの場合、最新2件のコメント以外が省略されます。\"\n },\n \"code_highlight\": \"コードハイライト\",\n \"nocdn_desc\": \"この機能は、環境変数 <code>NO_CDN=true</code> の時は無効化されます。<br>GitHub スタイルが適用されています。\",\n \"custom_title\": \"カスタム Title\",\n \"custom_title_detail\": \"<code><title></code>タグのコンテンツをカスタマイズできます。以下のプレースホルダーは自動的に置換されます:\",\n \"custom_title_detail_placeholder1\": \"<code>{{sitename}}</code> - この Wiki のサイト名\",\n \"custom_title_detail_placeholder2\": \"<code>{{pagename}}</code> - 現在表示中のページ名\",\n \"custom_title_detail_placeholder3\": \"<code>{{pagepath}}</code> - 現在表示中のページパス\",\n \"custom_header\": \"カスタム HTML Header\",\n \"custom_header_detail\": \"システム全体に適用される HTML を記述できます。<code><header></code> タグ内の他の <code><script></code> タグ読み込み前に展開されます。<br>変更の反映はページの更新が必要です。\",\n \"custom_css\": \"カスタム CSS\",\n \"write_css\": \" システム全体に適用されるCSSを記述できます。\",\n \"ctrl_space\": \"Ctrl+Space でコード補完\",\n \"custom_script\": \"カスタムスクリプト\",\n \"write_java\": \"システム全体に適用されるJavaScriptを記述できます。\",\n \"reflect_change\": \"変更の反映はページの更新が必要です。\"\n },\n \"export_management\": {\n \"exporting_collection_list\": \"エクスポート中のコレクション\",\n \"exported_data_list\": \"エクスポートされたアーカイブリスト\",\n \"export_collections\": \"コレクションのエクスポート\",\n \"check_all\": \"全てにチェックを付ける\",\n \"uncheck_all\": \"全てからチェックを外す\",\n \"desc_password_seed\": \"<p>ユーザーデータをバックアップ/リストアする場合、現在の <code>PASSWORD_SEED</code> を新しい GROWI システムにセットすることを忘れないでください。さもなくば、ユーザーがパスワードでログインできなくなります。<br><br><strong>ヒント:</strong><br>現在の <code>PASSWORD_SEED</code> は、エクスポートされる ZIP 中の <code>meta.json</code> に保存されます。</p>\",\n \"create_new_archive_data\": \"アーカイブデータの新規作成\",\n \"export\": \"エクスポート\",\n \"cancel\": \"キャンセル\",\n \"file\": \"ファイル名\",\n \"growi_version\": \"Growi バージョン\",\n \"collections\": \"コレクション\",\n \"exported_at\": \"エクスポートされた時間\",\n \"export_menu\": \"エクスポートメニュー\",\n \"download\": \"ダウンロード\",\n \"delete\": \"削除\"\n },\n \"importer_management\": {\n \"beta_warning\": \"この機能はベータ版です\",\n \"import_from\": \"{{from}} からインポート\",\n \"import_growi_archive\": \"GROWI アーカイブをインポート\",\n \"growi_settings\": {\n \"description_of_import_mode\": {\n \"about\": \"既存のデータと同名であるデータをインポートする際の挙動は以下の3つのモードから選べます。\",\n \"insert\": \"Insert: 当該データのインポートをスキップします。\",\n \"upsert\": \"Upsert: 既存のデータをインポートデータで上書き更新します。\",\n \"flash_and_insert\": \"Flash and Insert: 既存のデータを完全に削除した後、インポートを行います。\"\n },\n \"growi_archive_file\": \"GROWI アーカイブファイル\",\n \"uploaded_data\": \"アップロードされたデータ\",\n \"extracted_file\": \"展開されたファイル\",\n \"collection\": \"コレクション\",\n \"upload\": \"アップロード\",\n \"discard\": \"アップロードしたデータを破棄する\",\n \"errors\": {\n \"different_versions\": \"現在のGROWIとアップロードしたデータのバージョンが違います\",\n \"at_least_one\": \"コレクションが選択されていません\",\n \"page_and_revision\": \"'Pages' と 'Revisions' はセットでインポートする必要があります\",\n \"depends\": \"'{{condition}}' をインポートする場合は、'{{target}}' を一緒に選択する必要があります\"\n },\n \"configuration\": {\n \"pages\": {\n \"overwrite_author\": {\n \"label\": \"ページ作成者を現在のユーザーで上書きする\",\n \"desc\": \"users を同時に復元しない場合、このオプションは<span class=\\\"text-danger\\\">非推奨</span>です。\"\n },\n \"set_public_to_page\": {\n \"label\": \"'{{from}}' 設定のページを '公開' 設定にする\",\n \"desc\": \"全ての <b>'{{from}}'</b> 設定のページが<span class=\\\"text-danger\\\">全ユーザーから</span>読み取り可能になることに注意してください。\"\n },\n \"initialize_meta_datas\": {\n \"label\": \"「いいね」「閲覧したユーザー」「コメント数」を初期化する\",\n \"desc\": \"users を同時に復元しない場合、このオプションは<span class=\\\"text-danger\\\">非推奨</span>です。\"\n },\n \"initialize_hackmd_related_datas\": {\n \"label\": \"HackMD 関連データを初期化する\",\n \"desc\": \"HackMD に重要な下書きデータがない限りはこのオプションをチェックすることを推奨します。\"\n }\n },\n \"revisions\": {\n \"overwrite_author\": {\n \"label\": \"リビジョン作成者を現在のユーザーで上書きする\",\n \"desc\": \"users を同時に復元しない場合、このオプションは<span class=\\\"text-danger\\\">非推奨</span>です。\"\n }\n }\n }\n },\n \"esa_settings\": {\n \"team_name\": \"チーム名\",\n \"access_token\": \"アクセストークン\",\n \"test_connection\": \"接続テスト\"\n },\n \"qiita_settings\": {\n \"team_name\": \"チーム名\",\n \"access_token\": \"アクセストークン\",\n \"test_connection\": \"接続テスト\"\n },\n \"import\": \"インポート\",\n \"skip_username_and_email_when_overlapped\": \"ユーザー名またはメールアドレスが同じ場合、その部分がスキップされます。\",\n \"prepare_new_account_for_migration\": \"移行用のアカウントを新環境で用意してください。\",\n \"archive_data_import_detail\": \"参考: GROWI Docs - データのインポート\",\n \"admin_archive_data_import_guide_url\": \"https://docs.growi.org/ja/admin-guide/management-cookbook/import.html#growi-%E3%82%A2%E3%83%BC%E3%82%AB%E3%82%A4%E3%83%96%E3%83%87%E3%83%BC%E3%82%BF%E3%82%A4%E3%83%B3%E3%83%9D%E3%83%BC%E3%83%88\",\n \"page_skip\": \"既に GROWI 側に同名のページが存在する場合、そのページはスキップされます\",\n \"Directory_hierarchy_tag\": \"ディレクトリ階層タグ\"\n },\n \"slack_integration\": {\n \"selecting_bot_types\": {\n \"slack_bot\": \"Slack bot\",\n \"detailed_explanation\": \"詳しい説明はこちら\",\n \"official_bot\": \"Official bot\",\n \"custom_bot\": \"Custom bot\",\n \"without_proxy\": \"without proxy\",\n \"with_proxy\": \"with proxy\",\n \"recommended\": \"おすすめ\",\n \"set_up\": \"セットアップ\",\n \"multiple_workspaces_integration\": \"複数ワークスペースとの連携\",\n \"security_control\": \"セキュリティコントロール\",\n \"easy\": \"かんたん\",\n \"normal\": \"ふつう\",\n \"hard\": \"むずかしい\",\n \"possible\": \"可能\",\n \"impossible\": \"不可\"\n },\n \"bot_reset_successful\": \"Botの設定を消去しました。\",\n \"adding_slack_ws_integration_settings_successful\": \"Slack ワークスペースとの連携設定を追加しました。\",\n \"bot_all_reset_successful\": \"全ての Bot の設定を消去しました。\",\n \"copied_to_clipboard\": \"クリップボードにコピーされました。\",\n \"set_scope\": \"Slackの設定画面からBot Token Scopeを設定してください\",\n \"modal\": {\n \"warning\": \"注意\",\n \"sure_change_bot_type\": \"Botの種類を変更しますか?\",\n \"changes_will_be_deleted\": \"他のBotの設定が消去されます。\",\n \"cancel\": \"取消\",\n \"change\": \"変更する\"\n },\n \"use_env_var_if_empty\": \"データベース側の値が空の場合、環境変数 <code>{{variable}}</code> の値を利用します\",\n \"access_token_settings\": {\n \"regenerate\": \"再発行\"\n },\n \"delete\": \"削除\",\n \"integration_procedure\": \"連携手順\",\n \"custom_bot_without_proxy_settings\": \"Custom Bot without proxy 設定\",\n \"integration_failed\": \"連携に失敗しました\",\n \"reset\": \"リセット\",\n \"reset_all_settings\": \"全ての設定をリセット\",\n \"delete_slackbot_settings\": \"Slack Bot 設定を削除する\",\n \"slackbot_settings_notice\": \"Slak ワークスペースの連携手順が削除されます。<br>よろしいですか?\",\n \"all_settings_of_the_bot_will_be_reset\": \"Botの全ての設定がリセットされます。<br>よろしいですか?\",\n \"accordion\": {\n \"create_bot\": \"Bot を作成する\",\n \"how_to_create_a_bot\": \"作成手順はこちら\",\n \"how_to_install\": \"インストール方法はこちら\",\n \"install_bot_to_slack\": \"Bot を Slack にインストールする\",\n \"install_now\": \"今すぐインストール\",\n \"generate_access_token\": \"Access Tokenの発行\",\n \"register_for_growi_official_bot_proxy_service\": \"GROWI Official Bot Proxy サービスへの登録\",\n \"register_for_growi_custom_bot_proxy\": \"GROWI Custom Bot Proxy への登録\",\n \"enter_growi_register_on_slack\": \"Slack上で <b>/growi register</b> と打ちます。\",\n \"paste_growi_url\": \"モーダルが表示されるので、<b>GROWI URL</b> には下記のURLを入力します。\",\n \"enter_access_token_for_growi_and_proxy\": \"上記で発行した<b>Access Token Proxy to GROWI</b> と <b>Access Token GROWI to Proxy</b>を入れる\",\n \"set_proxy_url_on_growi\": \"ProxyのURLをGROWIに登録する\",\n \"copy_proxy_url\": \"1. ②が正常に完了すると、モーダル内で選択したSlack ChannelにProxy URLが表示されるので、コピーします。\",\n \"enter_proxy_url_and_update\": \"2. 連携手順③でコピーしたProxy URLを、このページの<b>Custom bot with proxy 連携</b>の<b>Proxy URL</b>に入力、更新します。\",\n \"dont_need_update\": \"※既に値が入っている場合は更新する必要はありません\",\n \"select_install_your_app\": \"Install your app をクリックします。\",\n \"select_install_to_workspace\": \"Install to Workspace をクリックします。\",\n \"register_proxy_url\": \"Proxy の URLをGROWIに登録する\",\n \"click_allow\": \"遷移先の画面にて、Allowをクリックします。\",\n \"install_complete_if_checked\": \"Install your app の右側に緑色のチェックがつけばワークスペースへのインストール完了です。\",\n \"invite_bot_to_channel\": \"GROWI bot を使いたいチャンネルに @example を使用して招待します。\",\n \"register_secret_and_token\": \"Signing Secret と Bot Token を登録する\",\n \"test_connection\": \"連携状況のテストをする\",\n \"test_connection_by_pressing_button\": \"以下のテストボタンを押して、Slack連携が完了しているかの確認をしましょう\",\n \"error_check_logs_below\": \"エラーが発生しました。下記のログを確認してください。\",\n \"send_message_to_slack_work_space\": \"Slack ワークスペースに送信しました\",\n \"add_slack_workspace\": \"Slackワークスペースを追加\"\n },\n \"custom_bot_without_proxy_integration\": \"Custom bot without proxy 連携\",\n \"integration_sentence\": {\n \"integration_is_not_complete\": \"連携は完了していません<br>下の連携手順を進めてください\",\n \"integration_successful\": \"連携は完了しています。\",\n \"integration_some_ws_is_not_complete\": \"連携に失敗している ワークスペースがあります。\"\n },\n \"custom_bot_with_proxy_integration\": \"Custom bot with proxy 連携\",\n \"official_bot_integration\": \"Official bot 連携\",\n \"docs_url\": {\n \"slack_integration\": \"https://docs.growi.org/ja/admin-guide/management-cookbook/slack-integration/\",\n \"official_bot\": \"https://docs.growi.org/ja/admin-guide/management-cookbook/slack-integration/#official-bot-%E6%8E%A8%E5%A5%A8\",\n \"custom_bot_without_proxy\": \"https://docs.growi.org/ja/admin-guide/management-cookbook/slack-integration/#custom-bot-without-proxy\",\n \"custom_bot_with_proxy\": \"https://docs.growi.org/ja/admin-guide/management-cookbook/slack-integration/#custom-bot-with-proxy\",\n \"official_bot_setting\": \"https://docs.growi.org/ja/admin-guide/management-cookbook/slack-integration/official-bot-settings.html\",\n \"custom_bot_without_proxy_setting\": \"https://docs.growi.org/ja/admin-guide/management-cookbook/slack-integration/custom-bot-without-proxy-settings.html\",\n \"custom_bot_with_proxy_setting\": \"https://docs.growi.org/ja/admin-guide/management-cookbook/slack-integration/custom-bot-with-proxy-settings.html\"\n }\n },\n \"user_management\": {\n \"invite_users\": \"新規ユーザーの仮発行\",\n \"click_twice_same_checkbox\": \"少なくとも一つはチェックしてください。\",\n \"invite_modal\": {\n \"emails\": \"メールアドレス (複数行入力で複数人発行可能)\",\n \"description1\": \"メールアドレスを使用して新規ユーザーを仮発行します。\",\n \"description2\": \"初回のログイン時に使用する仮パスワードが生成されます。\",\n \"invite_thru_email\": \"招待メールを送信する\",\n \"mail_setting_link\": \"<i class='icon-settings mr-2'></i><a href='/admin/app'>メールの設定</a>\",\n \"valid_email\": \"メールアドレスを入力してください。\",\n \"temporary_password\": \"作成したユーザーは仮パスワードが設定されています。\",\n \"send_new_password\": \"新規発行したパスワードを、対象ユーザーへ連絡してください。\",\n \"send_temporary_password\": \"招待メールを送っていない場合、この画面で仮パスワードをコピーし、招待者へ連絡してください。\",\n \"send_email\": \"ユーザーテーブルのドロップダウンから招待メールの送信または再送信を行うこともできます。\",\n \"existing_email\": \"以下のEmailはすでに存在しています。\",\n \"issue\": \"発行\"\n },\n \"user_table\": {\n \"administrator\": \"管理者\",\n \"edit_menu\": \"編集メニュー\",\n \"reset_password\": \"パスワードの再発行\",\n \"administrator_menu\": \"管理者メニュー\",\n \"accept\": \"承認する\",\n \"deactivate_account\": \"アカウント停止\",\n \"your_own\": \"自分自身のアカウントを停止することはできません\",\n \"remove_admin_access\": \"管理者から外す\",\n \"cannot_remove\": \"自分自身を管理者から外すことはできません\",\n \"give_admin_access\": \"管理者にする\",\n \"send_invitation_email\": \"招待メールの送信\",\n \"resend_invitation_email\": \"招待メールの再送信\"\n },\n \"reset_password\": \"パスワードのリセット\",\n \"reset_password_modal\": {\n \"password_never_seen\": \"表示されたパスワードはこの画面を閉じると二度と表示できませんのでご注意ください。\",\n \"password_reset_message\": \"対象ユーザーに下記のパスワードを伝え、すぐに新しく別のパスワードを設定するよう伝えてください。\",\n \"send_new_password\": \"新規発行したパスワードを、対象ユーザーへ連絡してください。\",\n \"target_user\": \"対象ユーザー\",\n \"new_password\": \"新しいパスワード\"\n },\n \"external_account\": \"外部アカウントの管理\",\n \"external_accounts\": \"外部アカウント\",\n \"create_external_account\": \"外部アカウントの作成\",\n \"external_account_list\": \"外部アカウント一覧\",\n \"external_account_none\": \"外部アカウントはありません\",\n \"invite\": \"招待する\",\n \"invited\": \"ユーザーを招待しました\",\n \"back_to_user_management\": \"ユーザー管理に戻る\",\n \"authentication_provider\": \"認証情報プロバイダ\",\n \"manage\": \"操作\",\n \"password_setting\": \"パスワード設定\",\n \"password_setting_help\": \"関連付けられているユーザーがパスワードを設定しているかどうかを表示します\",\n \"set\": \"設定済み\",\n \"unset\": \"未設定\",\n \"related_username\": \"関連付けられているユーザーの \",\n \"cannot_invite_maximum_users\": \"ユーザーが上限に達したため招待できません。\",\n \"current_users\": \"現在のユーザー数:\"\n },\n \"user_group_management\": {\n \"create_group\": \"新規グループの作成\",\n \"deny_create_group\": \"新規グループの作成はできません。\",\n \"group_name\": \"グループ名\",\n \"group_example\": \"例: Group1\",\n \"add_modal\": {\n \"add_user\": \"グループへのユーザー追加\",\n \"search_option\": \"検索オプション\",\n \"enable_option\": \"{{option}}を有効にする\",\n \"forward_match\": \"前方一致\",\n \"partial_match\": \"部分一致\",\n \"backward_match\": \"後方一致\"\n },\n \"group_list\": \"グループ一覧\",\n \"back_to_list\": \"グループ一覧に戻る\",\n \"basic_info\": \"基本情報\",\n \"user_list\": \"ユーザー一覧\",\n \"created_group\": \"グループを作成しました\",\n \"is_loading_data\": \"データを取得中です...\",\n \"no_pages\": \"グループが閲覧権限を保有するページはありません\",\n \"remove_from_group\": \"グループから外す\",\n \"delete_modal\": {\n \"header\": \"グループの削除\",\n \"desc\": \"グループ及び限定公開のページの削除を行うと元に戻すことはできませんのでご注意ください。\",\n \"dropdown_desc\": \"削除するグループの限定公開ページの処理を選択してください\",\n \"select_group\": \"グループを選択してください\",\n \"no_groups\": \"グループがありません\",\n \"publish_pages\": \"全て公開する\",\n \"delete_pages\": \"全て削除する\",\n \"transfer_pages\": \"全て他のグループに移譲する\"\n }\n }\n },\n \"meta\": {\n \"id\": \"ja_JP\",\n \"displayName\": \"日本語\",\n \"aliases\": [\"ja\"]\n },\n \"translation\": {\n \"Help\": \"ヘルプ\",\n \"view\": \"View\",\n \"Edit\": \"編集\",\n \"Delete\": \"削除\",\n \"delete_all\": \"全て削除\",\n \"Duplicate\": \"複製\",\n \"Copy\": \"コピー\",\n \"preview\": \"プレビュー\",\n \"desktop\": \"パソコン\",\n \"phone\": \"スマホ\",\n \"tablet\": \"タブレット\",\n \"Click to copy\": \"クリックでコピー\",\n \"Move/Rename\": \"移動/名前変更\",\n \"Moved\": \"移動しました\",\n \"Redirected\": \"リダイレクトされました\",\n \"Unlinked\": \"リダイレクト削除\",\n \"Like!\": \"いいね!\",\n \"Seen by\": \"見た人\",\n \"Done\": \"完了\",\n \"Cancel\": \"キャンセル\",\n \"Create\": \"作成\",\n \"Admin\": \"管理\",\n \"administrator\": \"管理者\",\n \"Tag\": \"タグ\",\n \"Tags\": \"タグ\",\n \"New\": \"作成\",\n \"Close\": \"閉じる\",\n \"Shortcuts\": \"ショートカット\",\n \"eg\": \"例:\",\n \"add\": \"追加\",\n \"Undo\": \"元に戻す\",\n \"Article\": \"記事\",\n \"Page\": \"ページ\",\n \"Page Path\": \"ページパス\",\n \"Category\": \"カテゴリー\",\n \"User\": \"ユーザー\",\n \"status\": \"ステータス\",\n \"account_id\": \"アカウントID\",\n \"Initialize\": \"初期化\",\n \"Update\": \"更新\",\n \"Update Page\": \"ページを更新\",\n \"Warning\": \"注意\",\n \"Sign in\": \"ログイン\",\n \"Sign up is here\": \"新規登録はこちら\",\n \"Sign in is here\": \"ログインはこちら\",\n \"Sign up\": \"新規登録\",\n \"Sign up with Google Account\": \"Google で登録\",\n \"Sign in with Google Account\": \"Google でログイン\",\n \"Sign up with this Google Account\": \"この Google アカウントで登録します\",\n \"Example\": \"例\",\n \"Taro Yamada\": \"山田 太郎\",\n \"List View\": \"リスト表示\",\n \"Timeline View\": \"タイムライン\",\n \"History\": \"更新履歴\",\n \"attachment_data\": \"添付データ\",\n \"No_attachments_yet\": \"No attachments yet.\",\n \"Presentation Mode\": \"プレゼンテーション\",\n \"The end\": \"おしまい\",\n \"Not available for guest\": \"ゲストユーザーは利用できません\",\n \"Create Archive Page\": \"アーカイブページの作成\",\n \"Target page\": \"対象ページ\",\n \"File type\": \"ファイル形式\",\n \"Include Attachment File\": \"添付ファイルも含める\",\n \"Include Comment\": \"コメントも含める\",\n \"Include Subordinated Page\": \"配下ページも含める\",\n \"All Subordinated Page\": \"全ての配下ページ\",\n \"Specify Hierarchy\": \"階層の深さを指定\",\n \"Submitted the request to create the archive\": \"アーカイブ作成のリクエストを正常に送信しました\",\n \"username\": \"ユーザー名\",\n \"Created\": \"作成日\",\n \"Last updated\": \"最終更新\",\n \"Last_Login\": \"最終ログイン\",\n \"Share\": \"共有\",\n \"Markdown Link\": \"Markdown形式のリンク\",\n \"Create/Edit Template\": \"テンプレートページの作成/編集\",\n \"Go to this version\": \"このバージョンを見る\",\n \"View diff\": \"差分を表示\",\n \"No diff\": \"差分なし\",\n \"User ID\": \"ユーザーID\",\n \"User Information\": \"ユーザー情報\",\n \"Basic Info\": \"ユーザーの基本情報\",\n \"Name\": \"名前\",\n \"Email\": \"メールアドレス\",\n \"Language\": \"言語\",\n \"English\": \"英語\",\n \"Japanese\": \"日本語\",\n \"Set Profile Image\": \"プロフィール画像の設定\",\n \"Upload Image\": \"画像をアップロード\",\n \"Current Image\": \"現在の画像\",\n \"Delete Image\": \"画像を削除\",\n \"Delete this image?\": \"削除してよろしいですか?\",\n \"Updated\": \"更新しました\",\n \"Upload new image\": \"新しい画像をアップロード\",\n \"Connected\": \"接続されています\",\n \"Show\": \"公開\",\n \"Hide\": \"非公開\",\n \"Disclose E-mail\": \"メールアドレスの公開\",\n \"page exists\": \"このページはすでに存在しています\",\n \"Error occurred\": \"エラーが発生しました\",\n \"Create today's\": \"今日の◯◯を作成\",\n \"Memo\": \"メモ\",\n \"Input page name\": \"ページ名を入力\",\n \"Input page name (optional)\": \"ページ名を入力(空欄OK)\",\n \"New Page\": \"新規ページ\",\n \"Create under\": \"ページを以下に作成\",\n \"Wiki Management Home Page\": \"Wiki管理トップ\",\n \"App Settings\": \"アプリ設定\",\n \"Site URL settings\": \"サイトURL設定\",\n \"Markdown Settings\": \"マークダウン設定\",\n \"Customize\": \"カスタマイズ\",\n \"Notification Settings\": \"通知設定\",\n \"slack_integration\": \"Slack連携\",\n \"External_Notification\": \"外部ツールへの通知\",\n \"Legacy_Slack_Integration\": \"Slack連携 (レガシー)\",\n \"User_Management\": \"ユーザー管理\",\n \"external_account_management\": \"外部アカウント管理\",\n \"UserGroup Management\": \"グループ管理\",\n \"Full Text Search Management\": \"全文検索管理\",\n \"Import Data\": \"データインポート\",\n \"Export Archive Data\": \"データアーカイブ\",\n \"Basic Settings\": \"基本設定\",\n \"Register limitation\": \"登録の制限\",\n \"The contents entered here will be shown in the header etc\": \"ここに入力した内容は、ヘッダー等に表示されます。\",\n \"Public\": \"公開\",\n \"Anyone with the link\": \"リンクを知っている人のみ\",\n \"Specified users\": \"特定ユーザーのみ\",\n \"Only me\": \"自分のみ\",\n \"Only inside the group\": \"特定グループのみ\",\n \"page_list\": \"ページリスト\",\n \"scope_of_page_disclosure\": \"ページの公開範囲\",\n \"set_point\": \"設定値\",\n \"always_displayed\": \"表示 (固定)\",\n \"always_hidden\": \"非表示 (固定)\",\n \"displayed_or_hidden\": \"表示 / 非表示\",\n \"Reselect the group\": \"グループの再選択\",\n \"Shareable link\": \"このページの共有用URL\",\n \"The whitelist of registration permission E-mail address\": \"登録許可メールアドレスの<br>ホワイトリスト\",\n \"Add tags for this page\": \"タグを付ける\",\n \"You have no tag, You can set tags on pages\": \"使用中のタグがありません\",\n \"Show latest\": \"最新のページを表示\",\n \"Load latest\": \"最新版を読み込む\",\n \"edited this page\": \"さんがこのページを編集しました。\",\n \"List Drafts\": \"下書き一覧\",\n \"Deleted Pages\": \"削除済みページ\",\n \"Sign out\": \"ログアウト\",\n \"Disassociate\": \"連携解除\",\n \"Color mode\": \"カラーモード\",\n \"Sidebar mode\": \"サイドバーモード\",\n \"Sidebar mode on Editor\": \"サイドバーモード(編集時)\",\n \"No bookmarks yet\": \"No bookmarks yet\",\n \"Recent Created\": \"最新の作成\",\n \"Recent Changes\": \"最新の変更\",\n \"original_path\": \"元のパス\",\n \"new_path\": \"新しいパス\",\n \"duplicated_path\": \"重複したパス\",\n \"Link sharing is disabled\": \"リンクのシェアは無効化されています\",\n \"personal_dropdown\": {\n \"home\": \"ホーム\",\n \"settings\": \"設定\",\n \"color_mode\": \"カラーモード\",\n \"sidebar_mode\": \"サイドバーモード\",\n \"sidebar_mode_editor\": \"サイドバーモード(編集時)\",\n \"use_os_settings\": \"OS設定を利用する\"\n },\n \"form_validation\": {\n \"error_message\": \"いくつかの値が設定されていません\",\n \"required\": \"%sに値を入力してください\",\n \"invalid_syntax\": \"%sの構文が不正です\"\n },\n \"not_found_page\": {\n \"Create Page\": \"ページを作成する\",\n \"page_not_exist\": \"このページは存在しません。\",\n \"page_not_exist_alert\": \"このページは存在しません。新たに作成する必要があります。\"\n },\n \"custom_navigation\": {\n \"no_page_list\": \"このページの配下にはページが存在しません。\",\n \"link_sharing_is_disabled\": \"リンクのシェアは無効化されています\"\n },\n \"installer\": {\n \"setup\": \"セットアップ\",\n \"create_initial_account\": \"最初のアカウントの作成\",\n \"initial_account_will_be_administrator_automatically\": \"初めに作成するアカウントは、自動的に管理者権限が付与されます\",\n \"unavaliable_user_id\": \"このユーザーIDは利用できません。\"\n },\n \"breaking_changes\": {\n \"v346_using_basic_auth\": \"現在利用中の Basic 認証機能は、近い将来<strong>廃止されます</strong>。%s から設定を削除してください。\"\n },\n \"page_register\": {\n \"notice\": {\n \"restricted\": \"この Wiki への新規登録は制限されています。\",\n \"restricted_defail\": \"利用を開始するには、新規登録後、管理者による承認が必要です。\"\n },\n \"form_help\": {\n \"email\": \"この Wiki では以下のメールアドレスのみ登録可能です。\",\n \"password\": \"パスワードには、6文字以上の半角英数字または記号等を設定してください。\",\n \"user_id\": \"ユーザーIDは、ユーザーページのURLなどに利用されます。半角英数字と一部の記号のみ利用できます。\"\n }\n },\n \"page_me\": {\n \"form_help\": {\n \"profile_image1\": \"画像をアップロードをするための設定がされていません。\",\n \"profile_image2\": \"アップロードできるようにするには、AWS またはローカルアップロードの設定をしてください。\"\n }\n },\n \"page_me_apitoken\": {\n \"api_token\": \"API Token\",\n \"notice\": {\n \"apitoken_issued\": \"API Token が設定されていません。\",\n \"update_token1\": \"API Token を更新すると、自動的に新しい Token が生成されます。\",\n \"update_token2\": \"現在の Token を利用している処理は動かなくなります。\"\n },\n \"form_help\": {}\n },\n \"Password\": \"パスワード\",\n \"Password Settings\": \"パスワード設定\",\n \"personal_settings\": {\n \"disassociate_external_account\": \"External Account の連携解除\",\n \"disassociate_external_account_desc\": \"<strong>{{providerType}}</strong> プロバイダーの <strong>{{accountId}}</strong> アカウントを連携解除します\",\n \"set_new_password\": \"パスワードを新規に設定\",\n \"update_password\": \"パスワードを更新\",\n \"current_password\": \"現在のパスワード\",\n \"new_password\": \"新しいパスワード\",\n \"new_password_confirm\": \"(確認用)\",\n \"password_is_not_set\": \"パスワードが設定されていません\"\n },\n \"security_settings\": \"セキュリティ設定\",\n \"share_links\": {\n \"Shere this page link to public\": \"外部に共有するリンクを発行する\",\n \"share_link_list\": \"共有リンクリスト\",\n \"share_link_management\": \"共有リンク管理\",\n \"No_share_links\": \"共有リンクが存在しません\",\n \"Share Link\": \"共有用リンク\",\n \"Page Path\": \"ページパス\",\n \"share_link_notice\": \"共有リンクを全て削除します\",\n \"delete_all_share_links\": \"全ての共有リンクを削除します\",\n \"expire\": \"有効期限\",\n \"Days\": \"日間\",\n \"Custom\": \"カスタム\",\n \"description\": \"概要\",\n \"enter_desc\": \"概要を入力\",\n \"Unlimited\": \"無期限\",\n \"Issue\": \"発行\",\n \"share_settings\": \"共有設定\",\n \"Invalid_Number_of_Date\": \"有効期限の日数には整数を入力してください\"\n },\n \"API Settings\": \"API設定\",\n \"API Token Settings\": \"API Token設定\",\n \"Current API Token\": \"現在のAPI Token\",\n \"Update API Token\": \"API Tokenを更新\",\n \"header_search_box\": {\n \"label\": {\n \"All pages\": \"全てのページ\",\n \"This tree\": \"この階層\"\n },\n \"item_label\": {\n \"All pages\": \"全てのページ\",\n \"This tree\": \"この階層下の子ページのみ\"\n }\n },\n \"copy_to_clipboard\": {\n \"Copy to clipboard\": \"クリップボードにコピー\",\n \"Page path\": \"ページ名\",\n \"Page URL\": \"ページURL\",\n \"Permanent link\": \"パーマリンク\",\n \"Page path and permanent link\": \"ページ名とパーマリンク\",\n \"Markdown link\": \"マークダウン形式のリンク\"\n },\n \"search_help\": {\n \"title\": \"検索のヘルプ\",\n \"and\": {\n \"syntax help\": \"スペース区切り\",\n \"desc\": \"ページ名 or 本文に {{word1}}, {{word2}} の両方を含むページを検索\"\n },\n \"exclude\": {\n \"desc\": \"ページ名 or 本文に {{word}} を含むページを除外\"\n },\n \"phrase\": {\n \"syntax help\": \"ダブルクォートで囲う\",\n \"desc\": \"{{phrase}} という文章を含むページを検索\"\n },\n \"prefix\": {\n \"desc\": \"ページ名が {{path}} から始まるページに絞る\"\n },\n \"exclude_prefix\": {\n \"desc\": \"ページ名が {{path}} から始まるページを除外\"\n },\n \"tag\": {\n \"desc\": \"{{tag}} というタグを含むページを検索\"\n },\n \"exclude_tag\": {\n \"desc\": \"{{tag}} というタグを含むページを除外\"\n }\n },\n \"search\": {\n \"search page bodies\": \"[Enter] キー押下で全文検索\"\n },\n \"page_page\": {\n \"notice\": {\n \"version\": \"これは現在の版ではありません。\",\n \"moved\": \"このページは\",\n \"moved_period\": \"から移動しました。\",\n \"redirected\": \"リダイレクト元 >>\",\n \"redirected_period\": \"\",\n \"duplicated\": \"このページは\",\n \"duplicated_period\": \"から複製されました。\",\n \"unlinked\": \"このページへのリダイレクトは削除されました。\",\n \"restricted\": \"このページの閲覧は制限されています\",\n \"stale\": \"このページは最終更新日から{{count}}年以上が経過しています。\",\n \"expiration\": \"この共有パーマリンクの有効期限は <strong>{{expiredAt}}</strong> です。\",\n \"no_deadline\": \"このページに有効期限は設定されていません。\"\n }\n },\n \"page_table_of_contents\": {\n \"empty\": \"目次は空です\"\n },\n \"page_edit\": {\n \"Show active line\": \"アクティブ行をハイライト\",\n \"auto_format_table\": \"表の自動整形\",\n \"overwrite_scopes\": \"{{operation}}と同時に全ての配下ページのスコープを上書き\",\n \"notice\": {\n \"conflict\": \"すでに他の人がこのページを編集していたため保存できませんでした。ページを再読み込み後、自分の編集箇所のみ再度編集してください。\"\n }\n },\n \"page_comment\": {\n \"display_the_page_when_posting_this_comment\": \"投稿時のページを表示する\"\n },\n \"page_api_error\": {\n \"notfound_or_forbidden\": \"元のページが見つからないか、アクセス権がありません。\",\n \"already_exists\": \"新しいページが既に存在しています。\",\n \"outdated\": \"ページが他のユーザーによって更新されました。\",\n \"user_not_admin\": \"権限のあるユーザーのみが完全削除できます\"\n },\n \"page_history\": {\n \"revision_list\": \"更新履歴\",\n \"revision\": \"バージョン\",\n \"comparing_source\": \"ソース\",\n \"comparing_target\": \"ターゲット\",\n \"comparing_revisions\": \"差分を比較する\",\n \"compare_latest\": \"最新と比較\",\n \"compare_previous\": \"1つ前のバージョンと比較\"\n },\n \"modal_rename\": {\n \"label\": {\n \"Move/Rename page\": \"ページを移動/名前変更する\",\n \"New page name\": \"移動先のページ名\",\n \"Fail to get subordinated pages\": \"配下ページの取得に失敗しました\",\n \"Fail to get exist path\": \"存在するパスの取得に失敗しました\",\n \"Rename without exist path\": \"存在するパス以外を名前変更する\",\n \"Current page name\": \"現在のページ名\",\n \"Recursively\": \"再帰的に移動/名前変更\",\n \"Do not update metadata\": \"メタデータを更新しない\",\n \"Redirect\": \"リダイレクトする\"\n },\n \"help\": {\n \"redirect\": \"アクセスされた際に自動的に新しいページにジャンプします\",\n \"metadata\": \"最終更新ユーザー、最終更新日を更新せず維持します\",\n \"recursive\": \"配下のページも移動/名前変更します\"\n }\n },\n \"Put Back\": \"元に戻す\",\n \"Delete Completely\": \"完全削除\",\n \"modal_delete\": {\n \"delete_page\": \"ページを削除する\",\n \"deleting_page\": \"ページパス\",\n \"delete_recursively\": \"全ての子ページも削除\",\n \"delete_completely\": \"完全削除\",\n \"delete_completely_restriction\": \"完全削除をするための権限がありません。\",\n \"recursively\": \"配下のページも削除します\",\n \"completely\": \"ゴミ箱を経由せず、完全に削除します\"\n },\n \"modal_empty\": {\n \"empty_the_trash\": \"ゴミ箱を空にする\",\n \"notice\": \"完全削除したページは元に戻すことができません\"\n },\n \"modal_duplicate\": {\n \"label\": {\n \"Duplicate page\": \"ページを複製する\",\n \"New page name\": \"複製後のページ名\",\n \"Fail to get subordinated pages\": \"配下ページの取得に失敗しました\",\n \"Current page name\": \"現在のページ名\",\n \"Recursively\": \"再帰的に複製\",\n \"Duplicate without exist path\": \"存在するパス以外を複製する\",\n \"Same page already exists\": \"同じページがすでに存在します\"\n },\n \"help\": {\n \"recursive\": \"配下のページも複製します\"\n }\n },\n \"modal_putback\": {\n \"label\": {\n \"Put Back Page\": \"ページを元に戻す\",\n \"recursively\": \"全ての子ページも元に戻す\"\n },\n \"help\": {\n \"recursively\": \"配下のページも元に戻します\"\n }\n },\n \"modal_shortcuts\": {\n \"global\": {\n \"title\": \"グローバルショートカット\",\n \"Open/Close shortcut help\": \"ショートカットヘルプ<br>の表示/非表示\",\n \"Edit Page\": \"ページ編集\",\n \"Create Page\": \"ページ作成\",\n \"Show Contributors\": \"コントリビューター<br>を表示\",\n \"MirrorMode\": \"ミラーモード\",\n \"Konami Code\": \"コナミコマンド\",\n \"konami_code_url\": \"https://ja.wikipedia.org/wiki/コナミコマンド\"\n },\n \"editor\": {\n \"title\": \"エディターショートカット\",\n \"Indent\": \"インデント\",\n \"Outdent\": \"左インデント\",\n \"Save Page\": \"保存\",\n \"Delete Line\": \"行削除\"\n },\n \"commentform\": {\n \"title\": \"コメントフォームショートカット\",\n \"Post\": \"投稿\"\n }\n },\n \"link_edit\": {\n \"edit_link\": \"リンク編集\",\n \"set_link_and_label\": \"リンク情報\",\n \"link\": \"リンク\",\n \"placeholder_of_link_input\": \"ページパスまたはURLを入力してください\",\n \"label\": \"ラベル\",\n \"path_format\": \"ページパス設定\",\n \"use_relative_path\": \"相対パスを使う\",\n \"use_permanent_link\": \"パーマリンクを使う\",\n \"notation\": \"リンクの形式\",\n \"markdown\": \"マークダウン 記法\",\n \"GROWI_original\": \"GROWI 独自記法\",\n \"pukiwiki\": \"Pukiwiki 記法\",\n \"preview\": \"プレビュー\",\n \"page_not_found_in_preview\": \"\\\"{{path}}\\\" というページはありません。\"\n },\n \"toaster\": {\n \"update_successed\": \"{{target}}を更新しました\",\n \"initialize_successed\": \"{{target}}を初期化しました\",\n \"give_user_admin\": \"{{username}}を管理者に設定しました\",\n \"remove_user_admin\": \"{{username}}を管理者から外しました\",\n \"delete_slack_integration_procedure\": \"Slack 連携手順を削除しました\",\n \"activate_user_success\": \"{{username}}を有効化しました\",\n \"deactivate_user_success\": \"{{username}}を無効化しました\",\n \"remove_user_success\": \"{{username}}を削除しました\",\n \"remove_external_user_success\": \"{{accountId}}を削除しました\",\n \"remove_share_link_success\": \"{{shareLinkId}}を削除しました\",\n \"issue_share_link\": \"共有リンクを作成しました\",\n \"remove_share_link\": \"共有リンクを{{count}}件削除しました\",\n \"switch_disable_link_sharing_success\": \"共有リンクの設定を変更しました\",\n \"failed_to_reset_password\": \"パスワードのリセットに失敗しました\"\n },\n \"template\": {\n \"modal_label\": {\n \"Create/Edit Template Page\": \"テンプレートページの作成/編集\",\n \"Create template under\": \"配下にテンプレートページを作成\"\n },\n \"option_label\": {\n \"select\": \"テンプレートタイプを選択してください\",\n \"create/edit\": \"テンプレートページの作成/編集..\"\n },\n \"children\": {\n \"label\": \"同一階層テンプレート\",\n \"desc\": \"テンプレートページが存在する階層にのみ適用されます\"\n },\n \"decendants\": {\n \"label\": \"下位層テンプレート\",\n \"desc\": \"テンプレートページが存在する下位層のすべてのページに適用されます\"\n }\n },\n \"sandbox\": {\n \"header\": \"見出し\",\n \"header_x\": \"見出し {{index}}\",\n \"block\": \"ブロック\",\n \"block_detail\": \"を挟むことで段落になります\",\n \"empty_line\": \"空白行\",\n \"line_break\": \"改行\",\n \"line_break_detail\": \"(スペース2つ) で改行されます\",\n \"typography\": \"タイポグラフィー\",\n \"italics\": \"斜体\",\n \"bold\": \"強調\",\n \"italic_bold\": \"イタリックボールド\",\n \"strikethrough\": \"取り消し線\",\n \"link\": \"リンク\",\n \"code_highlight\": \"コードハイライト\",\n \"list\": \"リスト\",\n \"unordered_list_x\": \"リスト {{index}}\",\n \"ordered_list_x\": \"番号付きリスト {{index}}\",\n \"task\": \"タスク\",\n \"task_checked\": \"チェック付き\",\n \"task_unchecked\": \"チェックなし\",\n \"quote\": \"引用\",\n \"quote1\": \"複数行の引用文を\",\n \"quote2\": \"書くことができます\",\n \"table\": \"テーブル\",\n \"quote_nested\": \"多重引用\",\n \"image\": \"画像\",\n \"alt_text\": \"Alt文字列\",\n \"insert_image\": \"で画像を挿入できます\",\n \"open_sandbox\": \"Sandbox を開く\"\n },\n \"hackmd\": {\n \"hack_md\": \"HackMD\",\n \"not_set_up\": \"HackMD はセットアップされていません\",\n \"used_for_not_found\": \"HackMD は新しいページの作成には利用できません\",\n \"start_to_edit\": \"HackMD を開始する\",\n \"clone_page_content\": \"ページを複製して編集を開始します\",\n \"unsaved_draft\": \"HackMD のドラフトが保存されていません\",\n \"draft_outdated\": \"ドラフトは古くなっている可能性があります\",\n \"based_on_revision\": \"現在のドラフトは次の revision に基づいています\",\n \"view_outdated_draft\": \"HackMD で古いドラフトを表示する\",\n \"resume_to_edit\": \"HackMD で編集を再開する\",\n \"discard_changes\": \"HackMD の変更を破棄する\",\n \"integration_failed\": \"HackMD の統合に失敗しました\",\n \"fail_to_connect\": \"GROWI クライアントが HackMD の GROWI agent に接続できませんでした。\",\n \"check_configuration\": \"<a href='https://docs.growi.org/ja/admin-guide/admin-cookbook/integrate-with-hackmd.html'>こちらのマニュアル</a>から設定を確認してください\",\n \"not_initialized\": \"HackMD コンポーネントは初期化されていません\",\n \"someone_editing\": \"このページは、HackMD で編集されています。\",\n \"this_page_has_draft\": \"このページは、HackMD のドラフトがあります。\",\n \"need_to_associate_with_growi_to_use_hackmd_refer_to_this\": \"HackMD を利用して同時多人数編集を行うには、HackMD と GROWI を連携する必要があります。<a href='https://docs.growi.org/ja/admin-guide/admin-cookbook/integrate-with-hackmd.html'>こちら</a>を参照してください。\",\n \"need_to_make_page\": \"HackMD を利用するためには、<a href='#edit'>ビルトインエディタ</a>で新しいページを作成してください。\"\n },\n \"slack_notification\": {\n \"popover_title\": \"Slack 通知\",\n \"popover_desc\": \"チャンネル名を入れてください。カンマ区切りのリストを入力することで複数のチャンネルに通知することができます。\"\n },\n \"search_result\": {\n \"result_meta\": \"{{total}}件のページが見つかりました。検索ワード: \\\"{{keyword}}\\\"\",\n \"deletion_mode_btn_lavel\": \"ページを指定して削除\",\n \"cancel\": \"キャンセル\",\n \"delete\": \"削除\",\n \"check_all\": \"すべてチェック\",\n \"deletion_modal_header\": \"以下のページを削除\",\n \"delete_completely\": \"完全に削除する\"\n },\n \"security_setting\": {\n \"Guest Users Access\": \"ゲストユーザーのアクセス\",\n \"Fixed by env var\": \"環境変数 <code>{{forcewikimode}}={{wikimode}}</code> により固定されています。\",\n \"Register limitation\": \"登録の制限\",\n \"Register limitation desc\": \"新しいユーザーを登録する方法を制限します.\",\n \"The whitelist of registration permission E-mail address\": \"登録許可メールアドレスの<br>ホワイトリスト\",\n \"users_without_account\": \"アカウントを持たないユーザーはアクセス不可\",\n \"example\": \"例\",\n \"restrict_emails\": \"登録可能なメールアドレスを制限することができます。\",\n \"for_example\": \"例えば、\",\n \"in_this_case\": \"と記載することで、そのドメインのメールアドレスを持っている人のみ登録可能になります。\",\n \"insert_single\": \"1行に1メールアドレス入力してください。\",\n \"page_list_and_search_results\": \"ページリスト・検索結果\",\n \"page_listing_1\": \"ページのリスト表示と検索<br>'自分のみ'に閲覧制限しているページ\",\n \"page_listing_1_desc\": \"ページのリスト表示や検索結果において、'自分のみ'に閲覧制限をしているページをアクセス権のないユーザーにも表示します。\",\n \"page_listing_2\": \"ページのリスト表示と検索<br>特定グループに閲覧制限しているページ\",\n \"page_listing_2_desc\": \"ページのリスト表示や検索結果において、特定グループにのみ閲覧制限をしているページをアクセス権のないユーザーにも表示します。\",\n \"page_access_and_delete_rights\": \"ページの閲覧・削除権限\",\n \"complete_deletion\": \"ページの完全削除\",\n \"complete_deletion_explain\": \"ページを完全に削除できるユーザーを制限します。\",\n \"admin_only\": \"管理者のみ可能\",\n \"admin_and_author\": \"管理者とページ作者が可能\",\n \"anyone\": \"誰でも可能\",\n \"session\": \"セッション\",\n \"max_age\": \"有効期間 (ミリ秒)\",\n \"max_age_desc\": \"ユーザーのセッション情報の有効期間をミリ秒で指定できます。<br>デフォルト値: 2592000000 (30日間)\",\n \"max_age_caution\": \"この値を変更した後は、サーバーを再起動する必要があります。\",\n \"Authentication mechanism settings\": \"認証機構設定\",\n \"setup_is_not_yet_complete\": \"セットアップはまだ完了してません\",\n \"alert_siteUrl_is_not_set\": \"'サイトURL' が設定されていません。{{link}} から設定してください。\",\n \"xss_prevent_setting\": \"XSS(Cross Site Scripting)対策設定\",\n \"xss_prevent_setting_link\": \"マークダウン設定ページに移動\",\n \"callback_URL\": \"コールバックURL\",\n \"desc_of_callback_URL\": \"{{AuthName}} プロバイダ側の設定で利用してください。\",\n \"authorization_endpoint\": \"認可エンドポイント\",\n \"token_endpoint\": \"トークンエンドポイント\",\n \"revocation_endpoint\": \"失効エンドポイント\",\n \"introspection_endpoint\": \"検証エンドポイント\",\n \"userinfo_endpoint\": \"ユーザ情報エンドポイント\",\n \"end_session_endpoint\": \"セッション終了エンドポイント\",\n \"registration_endpoint\": \"登録エンドポイント\",\n \"jwks_uri\": \"JSON Web Key Set URL\",\n \"clientID\": \"クライアントID\",\n \"client_secret\": \"クライアントシークレット\",\n \"updated_general_security_setting\": \"セキュリティ設定を更新しました。\",\n \"setup_not_completed_yet\": \"まだセットアップは完了していません。\",\n \"guest_mode\": {\n \"deny\": \"拒否 (アカウントを持つユーザーのみ利用可能)\",\n \"readonly\": \"許可 (ゲストユーザーも閲覧のみ可能)\"\n },\n \"registration_mode\": {\n \"open\": \"公開 (だれでも登録可能)\",\n \"restricted\": \"制限 (登録完了には管理者の承認が必要)\",\n \"closed\": \"非公開 (登録には管理者による招待が必要)\"\n },\n \"share_link_rights\": \"シェアリンクの権限\",\n \"enable_link_sharing\": \"リンクのシェアを許可\",\n \"all_share_links\": \"全てのシェアリンク\",\n \"configuration\": \"設定\",\n \"optional\": \"オプション\",\n \"Treat username matching as identical\": \"新規ログイン時、<code>username</code> が一致したローカルアカウントが存在した場合は自動的に紐付ける\",\n \"Treat username matching as identical_warn\": \"警告: <code>username</code> の一致を以て同一ユーザーであるとみなすので、セキュリティに注意してください\",\n \"Treat email matching as identical\": \"新規ログイン時、<code>email</code> が一致したローカルアカウントが存在した場合は自動的に紐付ける\",\n \"Treat email matching as identical_warn\": \"警告: <code>email</code> の一致を以て同一ユーザーであるとみなすので、セキュリティに注意してください\",\n \"Use env var if empty\": \"空の場合、環境変数 <code>{{env}}</code> を利用します\",\n \"Use default if both are empty\": \"どちらの値も空の場合、デフォルト値 <code>{{target}}</code> を利用します\",\n \"missing mandatory configs\": \"以下の必須項目の値がデータベースと環境変数のどちらにも設定されていません\",\n \"Local\": {\n \"name\": \"ID/Password\",\n \"note for the only env option\": \"現在LOCAL認証のON/OFFは環境変数の値によって制限されています<br>この設定を変更する場合は環境変数 <code>{{env}}</code> の値をfalseに変更もしくは削除してください\",\n \"enable_local\": \"ID/Password を有効にする\"\n },\n \"ldap\": {\n \"enable_ldap\": \"LDAP を有効にする\",\n \"server_url_detail\": \"LDAP URLを <code>ldap://host:port/DN</code> または <code>ldaps://host:port/DN</code> の形式で入力してください。\",\n \"bind_mode\": \"Bind モード\",\n \"bind_manager\": \"管理者 Bind\",\n \"bind_user\": \"ユーザー Bind\",\n \"bind_DN_manager_detail\": \"ディレクトリーサービスに認証する際のアカウント DN\",\n \"bind_DN_user_detail1\": \"ディレクトリーサービスに Bind するアカウント DN を決定するためのクエリ\",\n \"bind_DN_user_detail2\": \"ログイン時に入力されるユーザー名を使用するには <code>{{username}}</code> の形式を使用してください。\",\n \"bind_DN_password\": \"Bind DN パスワード\",\n \"bind_DN_password_manager_detail\": \"Bind DN アカウントのパスワード\",\n \"bind_DN_password_user_detail\": \"ログイン時のパスワードが使用されます。\",\n \"search_filter\": \"検索フィルター\",\n \"search_filter_detail1\": \"認証されるユーザーを一意に決定するための LDAP フィルタ\",\n \"search_filter_detail2\": \"ログイン時のユーザー名を使用するには <code>{{username}}</code> の形式を使用してください。\",\n \"search_filter_detail3\": \"空欄の場合 <code>(uid={{username}})</code> が使用されます。\",\n \"search_filter_example1\": \"'uid' または 'mail' に一致\",\n \"search_filter_example2\": \"'sAMAccountName' に一致 (Active Directory)\",\n \"username_detail\": \"新規ユーザーのアカウント名(<code>username</code>)に関連付ける属性\",\n \"name_detail\": \"新規ユーザーの表示名に関連付ける属性\",\n \"mail_detail\": \"新規ユーザーのメールアドレスに関連付ける属性\",\n \"group_search_base_DN\": \"グループ検索ベース DN\",\n \"group_search_base_DN_detail\": \"グループ検索を実行するベース DN。利用する場合は <code>グループ検索フィルター</code> も入力する必要があります。\",\n \"group_search_filter\": \"グループ検索フィルター\",\n \"group_search_filter_detail1\": \"グループフィルターに用いるクエリ\",\n \"group_search_filter_detail2\": \"このクエリにヒットするグループがあったときのみ、LDAPでのログインが成功します。\",\n \"group_search_filter_detail3\": \"ログイン対象ユーザーオブジェクトのプロパティーで置換する場合は <code>{{dn}}</code> を用いてください。\",\n \"group_search_filter_detail4\": \"<code>(&(cn=group1)(memberUid={{dn}}))</code> は <code>cn=group1</code> と、ユーザーの <code>uid</code> を含む <code>memberUid</code> を持つグループにヒットします(<code>ユーザーの DN プロパティー</code> がデフォルトから変更されていない場合)\",\n \"group_search_user_DN_property\": \"ユーザーの DN プロパティー\",\n \"group_search_user_DN_property_detail\": \"<code>グループ検索フィルター</code> 内の <code>{{dn}}</code> で置換される、ユーザーオブジェクトのプロパティー\",\n \"test_config\": \"ログインテスト\",\n \"updated_ldap\": \"LDAP設定 を更新しました\"\n },\n \"SAML\": {\n \"name\": \"SAML\",\n \"enable_saml\": \"SAML を有効にする\",\n \"id_detail\": \"SAML Identity プロバイダ内で一意に識別可能な値を格納している属性\",\n \"username_detail\": \"新規ユーザーのアカウント名(<code>username</code>)に関連付ける属性\",\n \"mapping_detail\": \"新規ユーザーの{{target}}に関連付ける属性\",\n \"cert_detail\": \"IdP からのレスポンスの validation を行うためのPEMエンコードされた X.509 証明書\",\n \"Use env var if empty\": \"データベース側の値が空の場合、環境変数 <code>{{env}}</code> の値を利用します\",\n \"note for the only env option\": \"現在SAML認証のON/OFFの設定値及びハイライトされている設定値は環境変数の値のみを使用するようになっています<br>この設定を変更する場合は環境変数 <code>{{env}}</code> の値をfalseに変更もしくは削除してください\",\n \"attr_based_login_control_detail\": \"SAMLの <code><saml:AttributeStatement></code> 要素に含まれる <code><saml:Attribute></code> 要素と、その子要素 <code><saml:AttributeValue></code> を利用してログインの可否を制御します。\",\n \"attr_based_login_control_rule_detail\": \"See <a href=\\\"https://lucene.apache.org/core/2_9_4/queryparsersyntax.html\\\" target=\\\"_blank\\\">Apache Lucene - Query Parser Syntax</a>.<h6>利用可能なクエリ:</h6><ul><li>Terms</li><li>Fields</li><li>AND/NOT/OR Operator</li><li>Grouping</li></ul><h6>利用不可なクエリ:</h6><ul><li>Wildcard, Fuzzy, Proximity, Range and Boosting</li><li>+/- Operator</li><li>Field Grouping</li></ul>\",\n \"attr_based_login_control_rule_example\": \"<h6>Example</h6>ルールに <code>(Department: A || Department: B) && Position: Leader</code> を指定した場合, <code>Department: A</code> または <code>Department: B</code> のどちらかに該当し、かつ <code>Position: Leader</code> を持つユーザーにログインを<strong>許可</strong>します。\"\n },\n \"Basic\": {\n \"enable_basic\": \"Basic を有効にする\",\n \"name\": \"Basic 認証\",\n \"desc_1\": \"Authorization ヘッダに格納されている <code>username</code> でログインします。\",\n \"desc_2\": \"ユーザーが存在しなかった場合は自動生成します。\",\n \"updated_basic\": \"Basic認証 を更新しました\"\n },\n \"OAuth\": {\n \"enable_oidc\": \"OIDC を有効にする\",\n \"register\": \"%sに登録\",\n \"change_redirect_url\": \"承認済みのリダイレクトURLに、 <code>%s</code> を入力\",\n \"Google\": {\n \"enable_google\": \"Google OAuth を有効にする\",\n \"name\": \"Google OAuth\",\n \"register_1\": \"{{link}}へアクセス\",\n \"register_2\": \"プロジェクトがない場合はプロジェクトを作成\",\n \"register_3\": \"認証情報を作成 → OAuthクライアントID → ウェブアプリケーションを選択\",\n \"register_4\": \"承認済みのリダイレクトURIを<code>{{url}}</code>としてGrowiを登録\",\n \"register_5\": \"上記フォームにクライアントIDとクライアントシークレットを入力\",\n \"updated_google\": \"Google OAuth を更新しました\"\n },\n \"Facebook\": {\n \"name\": \"Facebook OAuth\"\n },\n \"Twitter\": {\n \"enable_twitter\": \"Twitter OAuth を有効にする\",\n \"name\": \"Twitter OAuth\",\n \"register_1\": \"{{link}} へアクセス\",\n \"register_2\": \"Twitterにサインイン\",\n \"register_3\": \"Create New Appをクリック → Application Detailsの各項目を入力\",\n \"register_4\": \"Create your Twitter Applicationで作成\",\n \"register_5\": \"上記フォームにクライアントIDとクライアントシークレットを入力\",\n \"updated_twitter\": \"Twitter OAuth を更新しました\"\n },\n \"GitHub\": {\n \"enable_github\": \"GitHub OAuth を有効にする\",\n \"name\": \"GitHub OAuth\",\n \"register_1\": \"{{link}} へアクセス\",\n \"register_2\": \"\\\"Authorization callback URL\\\"を<code>{{url}}</code>としてGrowiを登録\",\n \"register_3\": \"上記フォームにクライアントIDとクライアントシークレットを入力\",\n \"updated_github\": \"GitHub OAuth を更新しました\"\n },\n \"OIDC\": {\n \"name\": \"OpenID Connect\",\n \"id_detail\": \"OIDC claims で一意に識別可能な値を格納している属性\",\n \"username_detail\": \"新規ユーザーのアカウント名(<code>username</code>)に関連付ける属性\",\n \"name_detail\": \"新規ユーザー名(<code>name</code>)に関連付ける属性\",\n \"mapping_detail\": \"新規ユーザーの{{target}}に関連付ける属性\",\n \"updated_oidc\": \"OpenID Connect を更新しました\",\n \"Use discovered URL if empty\": \"データベース側の値が空の場合、\\\"Issuer Host\\\"から検出した値を利用します。\"\n },\n \"how_to\": {\n \"google\": \"Google OAuth の設定方法\",\n \"github\": \"GitHub OAuth の設定方法\",\n \"twitter\": \"Twitter OAuth の設定方法\"\n }\n },\n \"form_item_name\": {\n \"entryPoint\": \"エントリーポイント\",\n \"issuer\": \"発行者\",\n \"cert\": \"証明書\",\n \"attrMapId\": \"ID\",\n \"attrMapUsername\": \"ユーザー名\",\n \"attrMapMail\": \"メールアドレス\",\n \"attrMapFirstName\": \"姓\",\n \"attrMapLastName\": \"名\",\n \"ABLCRule\": \"ルール\"\n }\n },\n \"notification_setting\": {\n \"slack_incoming_configuration\": \"Slack Incoming Webhooks 設定\",\n \"prioritize_webhook\": \"Slack アプリより Incoming Webhook を優先する\",\n \"prioritize_webhook_desc\": \"このオプションをオンにすると、 Slack App が有効になっていても GROWI は Incoming Webhook を使用します。\",\n \"slack_app_configuration\": \"Slack App 設定\",\n \"slack_app_configuration_desc\": \"Crowi 互換の機能です。<br /> <strong>設定が複雑すぎる</strong>のでオススメしません。\",\n \"use_instead\": \"代わりに Slack Incoming Webhooks 設定を使用してください。\",\n \"how_to\": {\n \"header\": \"Incoming Webhooks の設定方法\",\n \"workspace\": \"ワークスペースで Webhook を追加します。\",\n \"workspace_desc1\": \"<a href='https://slack.com/services/new/incoming-webhook'>Incoming Webhooks Configuration page</a> にアクセスします。\",\n \"workspace_desc2\": \"投稿するチャンネルを選びます。\",\n \"workspace_desc3\": \"追加します。\",\n \"at_growi\": \"GROWI 管理画面で Webhook URL を設定します。\",\n \"at_growi_desc\": \"このページで ”Webhook URL” を入力して送信します。\"\n },\n \"user_trigger_notification_header\": \"デフォルトパターンの通知設定\",\n \"pattern\": \"パターン\",\n \"channel\": \"チャンネル名\",\n \"pattern_desc\": \"Wiki のパス名。 パスには <code>*</code> を使用できます。\",\n \"channel_desc\": \"<code>#</code> を除いた Slack チャンネル名\",\n \"valid_page\": \"通知の有効 / 無効\",\n \"link_notification_help\": \"<strong>linkを知っている人のみ閲覧できるページ</strong>は常に通知されません。\",\n \"just_me_notification_help\": \"<strong>'自分のみ'に閲覧制限をしているページ</strong>に変更を加えた際に通知する\",\n \"group_notification_help\": \"<strong>'特定グループにのみ'に閲覧制限をしているページ</strong>に変更を加えた際に通知する\",\n \"notification_list\": \"通知設定の一覧\",\n \"add_notification\": \"通知設定の追加\",\n \"trigger_path\": \"トリガーパス\",\n \"trigger_path_help\": \"(<code>*</code>が使用できます)\",\n \"trigger_events\": \"トリガーイベント\",\n \"notify_to\": \"通知先\",\n \"back_to_list\": \"通知設定一覧に戻る\",\n \"notification_detail\": \"通知詳細設定\",\n \"event_pageCreate\": \"ページが新規作成されたとき\",\n \"event_pageEdit\": \"ページが編集されたとき\",\n \"event_pageDelete\": \"ページが削除されたとき\",\n \"event_pageMove\": \"ページが移動(名前が変更)されたとき\",\n \"event_pageLike\": \"ページに「いいね」がついたとき\",\n \"event_comment\": \"コメントが投稿されたとき\",\n \"email\": {\n \"ifttt_link\": \"IFTTT でメールトリガの新しいアプレットを作る\"\n },\n \"updated_slackApp\": \"SlackApp設定を更新しました\",\n \"add_notification_pattern\": \"通知パターンを追加しました。\",\n \"delete_notification_pattern\": \"通知パターンを削除しました。\",\n \"delete_notification_pattern_desc1\": \"Path: {{path}} を削除します。\",\n \"delete_notification_pattern_desc2\": \"Once deleted, it cannot be recovered\",\n \"toggle_notification\": \"{{path}}の通知設定を変更しました\"\n },\n \"full_text_search_management\": {\n \"elasticsearch_management\": \"Elasticsearch 管理\",\n \"connection_status\": \"接続の状態\",\n \"connection_status_label_unconfigured\": \"設定されていません\",\n \"connection_status_label_connected\": \"接続されています\",\n \"connection_status_label_disconnected\": \"切断されています\",\n \"connection_status_label_erroroccured\": \"SearchService でエラーが発生しています\",\n \"indices_status\": \"インデックスの状態\",\n \"indices_status_label_normalized\": \"正規化されています\",\n \"indices_status_label_unnormalized\": \"リビルド中 または 破損しています\",\n \"indices_summary\": \"インデックスのサマリ\",\n \"reconnect\": \"再接続\",\n \"reconnect_button\": \"再接続の試行\",\n \"reconnect_description\": \"Elasticsearch への再接続を試みます。\",\n \"normalize\": \"正規化\",\n \"normalize_button\": \"インデックスの正規化\",\n \"normalize_description\": \"破損したインデックスを修復します。\",\n \"rebuild\": \"リビルド\",\n \"rebuild_button\": \"インデックスのリビルド\",\n \"rebuild_description_1\": \"全てのページのインデックスを削除し、作り直します。\",\n \"rebuild_description_2\": \"この作業には数秒かかります。\"\n },\n \"to_cloud_settings\": \"GROWI.cloud の管理画面へ\",\n \"login\": {\n \"Sign in error\": \"ログインエラー\",\n \"Registration successful\": \"登録完了\",\n \"Setup\": \"セットアップ\"\n },\n \"export_bulk\": {\n \"failed_to_export\": \"ページのエクスポートに失敗しました\",\n \"failed_to_count_pages\": \"ページ数の取得に失敗しました\",\n \"export_page_markdown\": \"マークダウン形式でページをエクスポート\",\n \"export_page_pdf\": \"PDF形式でページをエクスポート\"\n },\n \"message\": {\n \"successfully_connected\": \"接続に成功しました!\",\n \"fail_to_save_access_token\": \"アクセストークンの保存に失敗しました、再度お試しください。\",\n \"fail_to_fetch_access_token\": \"アクセストークンの取得に失敗しました、再度お試しください。\",\n \"successfully_disconnected\": \"切断に成功しました!\",\n \"strategy_has_not_been_set_up\": \"{{strategy}} はセットアップされていません。\",\n \"maximum_number_of_users\": \"ユーザー数が上限を超えたためアクティベートできません。\",\n \"database_error\": \"データベースサーバーに問題があります。\",\n \"sign_in_failure\": \"ログインに失敗しました。\",\n \"aws_sttings_required\": \"この機能にはAWS設定が必要です。管理者に訪ねて下さい。\",\n \"application_already_installed\": \"アプリケーションのインストールが完了しました。\",\n \"email_address_could_not_be_used\": \"このメールアドレスは使用できません。(許可されたメールアドレスを確認してください。)\",\n \"user_id_is_not_available\": \"このユーザーIDは使用できません。\",\n \"email_address_is_already_registered\": \"このメールアドレスは既に登録されています。\",\n \"can_not_register_maximum_number_of_users\": \"ユーザー数が上限を超えたため登録できません。\",\n \"failed_to_register\": \"登録に失敗しました。\",\n \"successfully_created\": \"{{username}} が作成されました。\",\n \"can_not_activate_maximum_number_of_users\": \"ユーザーが上限に達したためアクティベートできません。\",\n \"failed_to_activate\": \"アクティベートに失敗しました。\",\n \"unable_to_use_this_user\": \"利用できないユーザーIDです。\",\n \"complete_to_install1\": \"GROWI のインストールが完了しました!管理者アカウントでログインしてください。\",\n \"complete_to_install2\": \"GROWI のインストールが完了しました!はじめに、このページで各種設定を確認してください。\",\n \"failed_to_create_admin_user\": \"管理ユーザーの作成に失敗しました。{{errMessage}}\"\n },\n \"grid_edit\": {\n \"create_bootstrap_4_grid\": \"Bootstrap 4 グリッドを作成\",\n \"grid_settings\": \"グリッド設定\",\n \"grid_pattern\": \"グリッド パターン\",\n \"division\": \"分割\",\n \"smart_no\": \"スマホ / 分割なし\",\n \"break_point\": \"画面サイズより分割\"\n },\n \"validation\": {\n \"aws_region\": \"リージョンには、AWSリージョン名を入力してください。例: ap-northeast-1\",\n \"aws_custom_endpoint\": \"カスタムエンドポイントは、http(s)://で始まるURLを指定してください。また、末尾の/は不要です。\",\n \"failed_to_send_a_test_email\": \"SMTPを利用したテストメール送信に失敗しました。設定をみなおしてください。\"\n }\n }\n },\n \"zh_CN\": {\n \"admin\": {\n \"mailer_setup_required\": \"<a href='/admin/app'>Email settings</a> are required to send.\",\n \"admin_top\": {\n \"management_wiki\": \"管理Wiki\",\n \"system_information\": \"系统信息\",\n \"wiki_administrator\": \"只有wiki管理员可以访问此页\",\n \"assign_administrator\": \"您可以使用“授予管理员访问权限”按钮在“用户管理”页上将所选用户指定为wiki管理员\",\n \"list_of_installed_plugins\": \"已安装插件列表\",\n \"package_name\": \"包名称\",\n \"specified_version\": \"指定版本\",\n \"installed_version\": \"已安装版本\",\n \"list_of_env_vars\": \"环境变量列表\",\n \"env_var_priority\": \"对于安全性以外的环境变量,优先获取数据库的值。\",\n \"about_security\": \"检查安全环境变量的<a href='/admin/security'>安全设置</a>。\"\n },\n \"app_setting\": {\n \"site_name\": \"网站名称 \",\n \"sitename_change\": \"您可以更改用于标题和HTML标题的网站名称。\",\n \"header_content\": \"此处输入的内容将显示在标题等中。\",\n \"site_url_desc\": \"用于网站URL设置。\",\n \"site_url_warn\": \"某些功能不起作用,因为未设置网站URL。\",\n \"siteurl_help\": \"网站完整URL起始于 <code>http://</code> or <code>https://</code>.\",\n \"confidential_name\": \"内部名称\",\n \"confidential_example\": \"ex):仅供内部使用\",\n \"default_language\": \"新用户的默认语言\",\n \"default_mail_visibility\": \"新用户的默认电子邮件可见性\",\n \"file_uploading\": \"文件上传\",\n \"enable_files_except_image\": \"启用此选项将允许上传任何文件类型。如果没有此选项,则仅支持图像文件上载。\",\n \"attach_enable\": \"如果启用此选项,则可以附加图像文件以外的文件。\",\n \"update\": \"更新\",\n \"mail_settings\": \"邮件设置\",\n \"mailer_is_not_set_up\": \"邮件设置尚未完成。\",\n \"transmission_method\": \"传送方法\",\n \"smtp_label\": \"SMTP\",\n \"ses_label\": \"SES(AWS)\",\n \"from_e-mail_address\": \"邮件发出地址\",\n \"send_test_email\": \"发送测试邮件\",\n \"success_to_send_test_email\": \"成功发送了一封测试邮件\",\n \"smtp_settings\": \"SMTP 设置\",\n \"host\": \"服务器\",\n \"port\": \"端口号\",\n \"user\": \"用户名\",\n \"initialize_mail_settings\": \"重置邮件设置\",\n \"initialize_mail_modal_header\": \"重置邮件设置\",\n \"confirm_to_initialize_mail_settings\": \"当前设置将被清空且不可恢复。确认重置?\",\n \"file_upload_settings\": \"文件上传设置\",\n \"file_upload_method\": \"文件上传方法\",\n \"file_delivery_method\": \"File Delivery Method\",\n \"file_delivery_method_redirect\": \"Redirect\",\n \"file_delivery_method_relay\": \"Internal System Relay\",\n \"file_delivery_method_redirect_info\": \"Redirect: It redirects to a signed URL without GROWI server, it gives excellent performance.\",\n \"file_delivery_method_relay_info\": \"Internal System Relay: The GROWI server delivers to clients, it provides complete security.\",\n \"gcs_label\": \"GCP(GCS)\",\n \"aws_label\": \"AWS(S3)\",\n \"local_label\": \"Local\",\n \"gridfs_label\": \"MongoDB(GridFS)\",\n \"ses_settings\": \"SES设置\",\n \"test_connection\": \"测试邮件服务器连接\",\n \"\": \"如果您没有SMTP设置,电子邮件将通过SES发送。您需要从电子邮件地址和生产设置进行验证。\",\n \"change_setting\": \"注意:如果你更改此设置未完成,您将无法访问迄今为止上传的文件。\",\n \"region\": \"Region\",\n \"bucket_name\": \"Bucket name\",\n \"custom_endpoint\": \"Custom endpoint\",\n \"custom_endpoint_change\": \"输入对象存储服务(如MinIO)端点的URL,MinIO具有与S3兼容的API。如果为空,则使用Amazon S3。\",\n \"plugin_settings\": \"插件设置\",\n \"enable_plugin_loading\": \"启用插件加载\",\n \"load_plugins\": \"加载插件\",\n \"enable\": \"启用\",\n \"disable\": \"停用\",\n \"use_env_var_if_empty\": \"如果数据库中的值为空,则环境变量的值 <cod>{{variable}}</code> 启用。\",\n \"note_for_the_only_env_option\": \"The GCS settings is limited by the value of environment variable.<br>To change this setting, please change to false or delete the value of the environment variable <code>{{env}}</code> .\"\n },\n \"markdown_setting\": {\n \"lineBreak_header\": \"换行设置\",\n \"lineBreak_desc\": \"您可以更改换行设置。\",\n \"lineBreak_options\": {\n \"enable_lineBreak\": \"启用换行符\",\n \"enable_lineBreak_desc\": \"HTML中将文本页中的换行符转换为<code><br></code>\",\n \"enable_lineBreak_for_comment\": \"注释中启用换行符\",\n \"enable_lineBreak_for_comment_desc\": \"HTML中将注释中的换行符转换为<code><br></code>\"\n },\n \"indent_header\": \"缩进设置\",\n \"indent_desc\": \"您可以更改缩进设置。\",\n \"indent_options\": {\n \"indentSize\": \"默认的缩进值\",\n \"indentSize_desc\": \"您可以更改Markdown编辑器的默认的缩进值。\",\n \"disallow_indent_change\": \"不允许用户更改缩进值\",\n \"disallow_indent_change_desc\": \"您可以不允许用户更改缩进值。\"\n },\n \"presentation_header\": \"演示文稿设置\",\n \"presentation_desc\": \"您可以更改演示文稿设置。\",\n \"presentation_options\": {\n \"page_break_setting\": \"分页设置\",\n \"preset_one_separator\": \"预设 1\",\n \"preset_one_separator_desc\": \"3 空行\",\n \"preset_one_separator_value\": \"\\\\n\\\\n\\\\n\",\n \"preset_two_separator\": \"预设 2\",\n \"preset_two_separator_desc\": \"5 连字符\",\n \"preset_two_separator_value\": \"-----\",\n \"custom_separator\": \"自定义\",\n \"custom_separator_desc\": \"正则表达式\"\n },\n \"xss_header\": \"阻止XSS(跨站点脚本)设置\",\n \"xss_desc\": \"您可以更改标记文本中HTML标记的处理方式。\",\n \"xss_options\": {\n \"enable_xss_prevention\": \"启用XSS预防\",\n \"remove_all_tags\": \"删除所有标记\",\n \"remove_all_tags_desc\": \"Stripe all HTML tags and attributes\",\n \"recommended_setting\": \"推荐设置\",\n \"custom_whitelist\": \"自定义白名单\",\n \"tag_names\": \"标记名\",\n \"tag_attributes\": \"标记属性\",\n \"import_recommended\": \"导入建议 {{target}}\"\n }\n },\n \"customize_setting\": {\n \"layout\": \"布局\",\n \"layout_options\": {\n \"default\": \"默认内容宽度 \",\n \"expanded\": \"内容宽度100% \"\n },\n \"theme\": \"主体\",\n \"behavior\": \"行为\",\n \"behavior_desc\": {\n \"growi_text1\": \"<code>/page</code> and <code>/page/</code> 都显示同一页。\",\n \"growi_text2\": \"<code>/nonexistent_page</code> 显示编辑表单\",\n \"growi_text3\": \"如果使用GROWI增强布局,则所有页面都显示子页面列表\",\n \"crowi_text1\": \"<code>/page</code> 显示页面\",\n \"crowi_text2\": \"<code>/page/</code> 显示子页列表\",\n \"crowi_text3\": \"如果portal应用于<code>/page/</code>,则会显示portal和子页面列表\",\n \"crowi_text4\": \"<code>/nonexistent_page</code> 显示编辑表单<\",\n \"crowi_text5\": \"<code>/nonexistent_page/</code> 子页列表\"\n },\n \"theme_desc\": {\n \"light_and_dark\": \"明暗模式\",\n \"unique\": \"只有一种模式\"\n },\n \"function\": \"功能\",\n \"function_desc\": \"您可以选择函数的有效/无效\",\n \"function_options\": {\n \"timeline\": \"时间线函数\",\n \"timeline_desc1\": \"您可以显示子页的时间线。\",\n \"timeline_desc2\": \"如果有许多子页,则在加载页时性能会降低。\",\n \"timeline_desc3\": \"通过使列表页无效,可以加快列表页的显示速度。\",\n \"tab_switch\": \"在浏览器中保存选项卡切换\",\n \"tab_switch_desc1\": \"在浏览器中保存编辑选项卡和历史选项卡切换,并使其成为浏览器的前向/后向命令的对象。\",\n \"tab_switch_desc2\": \"通过失效,您可以将页面转换作为浏览器的前向/后向命令的唯一对象。\",\n \"attach_title_header\": \"自动创建新页面时添加h1节\",\n \"attach_title_header_desc\": \"创建新页面时,将页面路径作为h1节添加到第一行\",\n \"list_num_s\": \"Number of list displayed on modals\",\n \"list_num_desc_s\": \"Set number of list per page such as 'Page List', 'Timeline', 'Page History' and 'Attachment' pages.\",\n \"list_num_m\": \"Number of list displayed on article pages included other contents\",\n \"list_num_desc_m\": \"Set number of list per page such as 'Bookmarks' and 'Recently created' pages.\",\n \"list_num_l\": \"Number of list displayed on 'Search' pages\",\n \"list_num_desc_l\": \"Set number of list per page such as 'Search' pages.\",\n \"list_num_xl\": \"Number of list displayed on article pages\",\n \"list_num_desc_xl\": \"Set number of list per page such as 'Not found' and 'Trash' pages.\",\n \"stale_notification\": \"在过期页上显示通知\",\n \"stale_notification_desc\": \"显示自上次更新以来超过1年的页面通知。\",\n \"show_all_reply_comments\": \"显示所有回复评论\",\n \"show_all_reply_comments_desc\": \"当设置值为“关”时,将忽略最近两个之外的注释。\"\n },\n \"code_highlight\": \"代码突出显示\",\n \"nocdn_desc\": \"当强制应用环境变量<code>NO_CDN=true</code><br>Github样式时,此函数被禁用。\",\n \"custom_title\": \"自定义标题\",\n \"custom_title_detail\": \"您可以自定义<code><;title>;</code>标记。<br><code>&123;&123;sitename&&125;&125;</code>将自动替换为应用程序名称,并且<code>&123;&123;page&&125;&125;</code>将替换为页面名称/路径。\",\n \"custom_title_detail_placeholder1\": \"<code>{;{;站点名称};};</code>-此wiki的站点名称。\",\n \"custom_title_detail_placeholder2\": \"<code>{;{;页名};};</code>-当前页的页名。\",\n \"custom_title_detail_placeholder3\": \"<code>{;{;页面路径};};</code>-当前页面的页面路径。\",\n \"custom_header\": \"自定义HTML标题\",\n \"custom_header_detail\": \"您可以自定义应用所有页面的HTML标题。您的自定义脚本将插入<code><;header>;</code>中,但位于其他<code><;script>;</code>标记之上。<br>重新链接页面以查看更改。\",\n \"custom_css\": \"自定义CSS\",\n \"write_css\": \"您可以编写应用于整个系统的CSS。\",\n \"ctrl_space\": \"Ctrl+Space 自动完成\",\n \"custom_script\": \"定制纸条\",\n \"write_java\": \"您可以编写应用于整个系统的Javascript。\",\n \"reflect_change\": \"您需要重新加载页面以反映更改。\"\n },\n \"importer_management\": {\n \"beta_warning\": \"这个函数是Beta。\",\n \"import_from\": \"Import from {{from}}\",\n \"import_growi_archive\": \"Import GROWI archive\",\n \"growi_settings\": {\n \"description_of_import_mode\": {\n \"about\": \"When you import data with the same name as an existing one, choose from the following three modes below.\",\n \"insert\": \"Insert: Skip importing the data.\",\n \"upsert\": \"Upsert: Overwrite and update the existing data with imported data.\",\n \"flash_and_insert\": \"Flash and Insert: After deleting the existing data completely, import the data\"\n },\n \"growi_archive_file\": \"GROWI Archive File\",\n \"uploaded_data\": \"Uploaded Data\",\n \"extracted_file\": \"Extracted File\",\n \"collection\": \"Collection\",\n \"upload\": \"Upload\",\n \"discard\": \"Discard uploaded data\",\n \"errors\": {\n \"versions_not_met\": \"this growi and the uploaded data versions are not met\",\n \"at_least_one\": \"Select one or more collections.\",\n \"page_and_revision\": \"'Pages' and 'Revisions' must be imported both.\",\n \"depends\": \"'{{target}}' must be selected when '{{condition}}' is selected.\"\n },\n \"configuration\": {\n \"pages\": {\n \"overwrite_author\": {\n \"label\": \"Overwrite page's author with the current user\",\n \"desc\": \"Recommended <span class=\\\"text-danger\\\">NOT</span> to check this when users will also be restored.\"\n },\n \"set_public_to_page\": {\n \"label\": \"Set 'Public' to the pages that is '{{from}}'\",\n \"desc\": \"Make sure that this configuration makes all <b>'{{from}}'</b> pages readable from <span class=\\\"text-danger\\\">ANY users</span>.\"\n },\n \"initialize_meta_datas\": {\n \"label\": \"Initialize page's like, read users and comment count\",\n \"desc\": \"Recommended <span class=\\\"text-danger\\\">NOT</span> to check this when users will also be restored.\"\n },\n \"initialize_hackmd_related_datas\": {\n \"label\": \"Initialize HackMD related data\",\n \"desc\": \"Recommended to check this unless there is important drafts on HackMD.\"\n }\n },\n \"revisions\": {\n \"overwrite_author\": {\n \"label\": \"Overwrite revision's author with the current user\",\n \"desc\": \"Recommended <span class=\\\"text-danger\\\">NOT</span> to check this when users will also be restored.\"\n }\n }\n }\n },\n \"esa_settings\": {\n \"team_name\": \"Team name\",\n \"access_token\": \"Access token\",\n \"test_connection\": \"Test connection to esa\"\n },\n \"qiita_settings\": {\n \"team_name\": \"Team name\",\n \"access_token\": \"Access token\",\n \"test_connection\": \"Test connection to qiita:team\"\n },\n \"import\": \"Import\",\n \"skip_username_and_email_when_overlapped\": \"Skip username and email using same username and email in new environment\",\n \"prepare_new_account_for_migration\": \"Prepare new account for migration\",\n \"archive_data_import_detail\": \"More details? Click here.\",\n \"admin_archive_data_import_guide_url\": \"https://docs.growi.org/en/admin-guide/management-cookbook/import.html\",\n \"page_skip\": \"Pages with a name that already exists on GROWI are not imported\",\n \"Directory_hierarchy_tag\": \"Directory hierarchy tag\"\n },\n \"export_management\": {\n \"exporting_collection_list\": \"正在导出集合列表\",\n \"exported_data_list\": \"导出的存档数据列表\",\n \"export_collections\": \"导出集合\",\n \"check_all\": \"全部检查\",\n \"uncheck_all\": \"全部取消选中\",\n \"desc_password_seed\": \"<p>还原用户数据时,不要忘记将当前的<code>密码种子设置到新的GROWI系统,否则用户将无法使用其密码登录。<br><br><strong>提示:</strong><br>当前的<code>密码种子将存储在<code>meta.json格式</code>在导出的zip压缩包中。</p>\",\n \"create_new_archive_data\": \"创建新的存档数据\",\n \"export\": \"导出\",\n \"cancel\": \"取消\",\n \"file\": \"文件\",\n \"growi_version\": \"Growi Version\",\n \"collections\": \"Collections\",\n \"exported_at\": \"Exported At\",\n \"export_menu\": \"导出菜单\",\n \"download\": \"下载\",\n \"delete\": \"删除\"\n },\n \"slack_integration\": {\n \"selecting_bot_types\": {\n \"slack_bot\": \"Slack bot\",\n \"detailed_explanation\": \"详细说明\",\n \"official_bot\": \"Official bot\",\n \"custom_bot\": \"Custom bot\",\n \"without_proxy\": \"without proxy\",\n \"with_proxy\": \"with proxy\",\n \"recommended\": \"受到推崇的\",\n \"set_up\": \"设置\",\n \"multiple_workspaces_integration\": \"集成到多个工作区\",\n \"security_control\": \"安全控制\",\n \"easy\": \"简单\",\n \"normal\": \"通常\",\n \"hard\": \"难的\",\n \"possible\": \"可能的\",\n \"impossible\": \"不可能\"\n },\n \"bot_reset_successful\": \"删除了BOT设置。\",\n \"adding_slack_ws_integration_settings_successful\": \"添加了用于与 Slack 工作空间链接的设置。\",\n \"bot_all_reset_successful\": \"所有的 Bot 设置都被清除了。\",\n \"copied_to_clipboard\": \"它已复制到剪贴板。\",\n \"set_scope\": \"在Slack设置页面中配置Bot Token Scope。\",\n \"modal\": {\n \"warning\": \"警告\",\n \"sure_change_bot_type\": \"您确定要更改设置吗?\",\n \"changes_will_be_deleted\": \"其他Bot类型的设置将被删除。\",\n \"cancel\": \"取消\",\n \"change\": \"改变\"\n },\n \"use_env_var_if_empty\": \"如果数据库中的值为空,则环境变量的值 <code>{{variable}}</code> 启用。\",\n \"access_token_settings\": {\n \"regenerate\": \"再生\"\n },\n \"delete\": \"取消\",\n \"integration_procedure\": \"协作程序\",\n \"custom_bot_without_proxy_settings\": \"Custom Bot without proxy 设置\",\n \"integration_failed\": \"联动失败\",\n \"reset\": \"重置\",\n \"reset_all_settings\": \"重置所有设置\",\n \"delete_slackbot_settings\": \"删除 Slack Bot 设置\",\n \"slackbot_settings_notice\": \"Slak 工作区集成过程已被删除。 <br> 你确定吗?\",\n \"all_settings_of_the_bot_will_be_reset\": \"bot的所有设置将被重置。<br>你确定吗?\",\n \"accordion\": {\n \"create_bot\": \"创建 Bot\",\n \"how_to_create_a_bot\": \"如何创建一个 Bot\",\n \"how_to_install\": \"点击这里查看安装说明\",\n \"install_bot_to_slack\": \"将 Bot 安装到 Slack\",\n \"install_now\": \"现在安装\",\n \"generate_access_token\": \"生成Access Token\",\n \"register_for_growi_official_bot_proxy_service\": \"注册 GROWI Official Bot Proxy Service\",\n \"register_for_growi_custom_bot_proxy\": \"注册 GROWI Custom Bot Proxy\",\n \"enter_growi_register_on_slack\": \"在Slack中,输入 <b>/growi register</b>\",\n \"paste_growi_url\": \"由于显示了模式,请在 <b>GROWI URL</b> 中输入以下URL\",\n \"enter_access_token_for_growi_and_proxy\": \"插入上面发出的 <b>Access Token Proxy to GROWI</b> 和 <b>Access Token GROWI to Proxy</b>。\",\n \"set_proxy_url_on_growi\": \"向GROWI注册Proxy的URL\",\n \"copy_proxy_url\": \"1. 当上述步骤②成功完成后,Proxy URL将显示在你在模版中选择的Slack频道中,所以请复制它。\",\n \"enter_proxy_url_and_update\": \"2. 输入并更新你在步骤③中复制的ProxyURL到本页的<b>Custom bot with proxy 一体化</b>的<b>ProxyURL</b>。\",\n \"dont_need_update\": \"※如果值已经在里面了,就不需要再更新。\",\n \"select_install_your_app\": \"选择 \\\"Install your app\\\"。\",\n \"select_install_to_workspace\": \"选择 \\\"Install to Workspace\\\"。\",\n \"register_proxy_url\": \"向 GROWI 注册代理 URL\",\n \"click_allow\": \"选择 \\\"Allow\\\"。\",\n \"install_complete_if_checked\": \"确认已选中 \\\"Install your app\\\"。\",\n \"invite_bot_to_channel\": \"通过调用 @example 邀请 GROWI Bot 进行频道。\",\n \"register_secret_and_token\": \"设置签名秘密和BOT令牌\",\n \"test_connection\": \"测试连接\",\n \"test_connection_by_pressing_button\": \"按下按钮以测试连接\",\n \"error_check_logs_below\": \"发生了错误。请检查以下日志。\",\n \"send_message_to_slack_work_space\": \"发送到 Slack 工作区。\",\n \"add_slack_workspace\": \"添加Slack Workspace\"\n },\n \"custom_bot_without_proxy_integration\": \"Custom bot without proxy 一体化\",\n \"integration_sentence\": {\n \"integration_is_not_complete\": \"一体化未完成。<br>进行以下一体化程序。\",\n \"integration_successful\": \"一体化成功\",\n \"integration_some_ws_is_not_complete\": \"有的工作空间未能连接\"\n },\n \"custom_bot_with_proxy_integration\": \"Custom bot with proxy 一体化\",\n \"official_bot_integration\": \"Official bot 一体化\",\n \"docs_url\": {\n \"slack_integration\": \"https://docs.growi.org/en/admin-guide/management-cookbook/slack-integration/\",\n \"official_bot\": \"https://docs.growi.org/en/admin-guide/management-cookbook/slack-integration/#official-bot-%E3%80%90recommended%E3%80%91\",\n \"custom_bot_without_proxy\": \"https://docs.growi.org/en/admin-guide/management-cookbook/slack-integration/#custom-bot-without-proxy\",\n \"custom_bot_with_proxy\": \"https://docs.growi.org/en/admin-guide/management-cookbook/slack-integration/#custom-bot-with-proxy\",\n \"official_bot_setting\": \"https://docs.growi.org/en/admin-guide/management-cookbook/slack-integration/official-bot-settings.html\",\n \"custom_bot_without_proxy_setting\": \"https://docs.growi.org/en/admin-guide/management-cookbook/slack-integration/custom-bot-without-proxy-settings.html\",\n \"custom_bot_with_proxy_setting\": \"https://docs.growi.org/en/admin-guide/management-cookbook/slack-integration/custom-bot-with-proxy-settings.html\"\n }\n },\n \"user_management\": {\n \"invite_users\": \"临时发布新用户\",\n \"click_twice_same_checkbox\": \"您应该至少选中一个复选框。\",\n \"invite_modal\": {\n \"emails\": \"电子邮件\",\n \"description1\": \"通过电子邮件地址临时发布新用户。\",\n \"description2\": \"将为首次登录生成一个临时密码。\",\n \"mail_setting_link\": \"<i class='icon-settings mr-2'></i><a href='/admin/app'>Email settings</a>\",\n \"valid_email\": \"需要有效的电子邮件地址\",\n \"invite_thru_email\": \"发送邀请电子邮件\",\n \"temporary_password\": \"创建的用户具有临时密码\",\n \"send_new_password\": \"请将新密码发送给用户。\",\n \"send_temporary_password\": \"如果你没有发送电子邮件邀请,请复制此屏幕上的临时密码并联系邀请人。\",\n \"send_email\": \"你也可以从用户表中的下拉菜单中发送或重新发送邀请邮件。\",\n \"existing_email\": \"以下电子邮件已存在\",\n \"issue\": \"Issue\"\n },\n \"user_table\": {\n \"administrator\": \"管理员\",\n \"edit_menu\": \"编辑菜单\",\n \"reset_password\": \"重置密码\",\n \"administrator_menu\": \"管理员菜单\",\n \"accept\": \"接受\",\n \"deactivate_account\": \"停用帐户\",\n \"your_own\": \"您不能停用自己的帐户\",\n \"remove_admin_access\": \"删除管理员访问权限\",\n \"cannot_remove\": \"您不能从管理员中删除自己\",\n \"give_admin_access\": \"授予管理员访问权限\",\n \"send_invitation_email\": \"发送邀请邮件\",\n \"resend_invitation_email\": \"重发邀请函\"\n },\n \"reset_password\": \"重置密码\",\n \"reset_password_modal\": {\n \"password_never_seen\": \"The temporary password can never be retrieved after this screen is closed.\",\n \"password_reset_message\": \"Let the user know the new password below and strongly recommend to change another one immediately.\",\n \"send_new_password\": \"Please send the new password to the user.\",\n \"target_user\": \"Target User\",\n \"new_password\": \"New Password\"\n },\n \"external_account\": \"外部账户管理\",\n \"external_accounts\": \"外部账户\",\n \"create_external_account\": \"创建外部账户\",\n \"external_account_list\": \"外部账户列表\",\n \"external_account_none\": \"No External Account\",\n \"invite\": \"邀请\",\n \"invited\": \"已邀请用户\",\n \"back_to_user_management\": \"返回用户管理\",\n \"authentication_provider\": \"身份认证\",\n \"manage\": \"管理\",\n \"password_setting\": \"密码设置\",\n \"password_setting_help\": \"是否设置了密码?\",\n \"set\": \"是\",\n \"unset\": \"否\",\n \"related_username\": \"相关用户的\",\n \"cannot_invite_maximum_users\": \"邀请的用户数不能超过最大值。\",\n \"current_users\": \"当前用户:\"\n },\n \"user_group_management\": {\n \"create_group\": \"创建新组\",\n \"deny_create_group\": \"不能用当前设置创建新组。\",\n \"group_name\": \"组名\",\n \"group_example\": \"e.g.:第1组\",\n \"add_modal\": {\n \"add_user\": \"将用户添加到创建的组\",\n \"search_option\": \"搜索选项\",\n \"enable_option\": \"启用{{option}\",\n \"forward_match\": \"Forword匹配\",\n \"partial_match\": \"部分匹配\",\n \"backward_match\": \"向后匹配\"\n },\n \"group_list\": \"组列表\",\n \"back_to_list\": \"返回组列表\",\n \"basic_info\": \"基本信息\",\n \"user_list\": \"用户列表\",\n \"created_group\": \"已创建组\",\n \"is_loading_data\": \"获取数据。。。\",\n \"no_pages\": \"组没有查看权限的页面。\",\n \"remove_from_group\": \"删除此用户\",\n \"delete_modal\": {\n \"header\": \"删除组\",\n \"desc\": \"删除后,将无法检索已删除的组及其私人页。\",\n \"dropdown_desc\": \"为私人页选择操作\",\n \"select_group\": \"选择组\",\n \"no_groups\": \"没有可选择的组\",\n \"publish_pages\": \"全部发布\",\n \"delete_pages\": \"全部删除\",\n \"transfer_pages\": \"转移到另一组\"\n }\n }\n },\n \"meta\": {\n \"id\": \"zh_CN\",\n \"displayName\": \"简体中文\",\n \"aliases\": [\"zh\", \"zh-HK\", \"zh-CN\", \"zh-TW\", \"zh-hk\", \"zh-cn\", \"zh-tw\"]\n },\n \"translation\": {\n \"Help\": \"帮助\",\n \"view\": \"View\",\n \"Edit\": \"编辑\",\n \"Delete\": \"删除\",\n \"delete_all\": \"删除所有\",\n \"Duplicate\": \"复制\",\n \"Copy\": \"复制\",\n \"preview\": \"预览\",\n \"desktop\": \"电脑\",\n \"phone\": \"手机\",\n \"tablet\": \"平板\",\n \"Login\": \"登录\",\n \"Click to copy\": \"点击复制\",\n \"Move/Rename\": \"移动/重命名\",\n \"Moved\": \"移动\",\n \"Redirected\": \"重定向\",\n \"Unlinked\": \"Unlinked\",\n \"Like!\": \"Like!\",\n \"Seen by\": \"Seen by\",\n \"Done\": \"Done\",\n \"Cancel\": \"取消\",\n \"Create\": \"创建\",\n \"Admin\": \"管理\",\n \"administrator\": \"管理员\",\n \"Tag\": \"标签\",\n \"Tags\": \"Tags\",\n \"New\": \"新建\",\n \"Close\": \"Close\",\n \"Shortcuts\": \"快捷方式\",\n \"eg\": \"e.g.\",\n \"add\": \"添加\",\n \"Undo\": \"撤销\",\n \"Article\": \"主题\",\n \"Page\": \"页面\",\n \"Page Path\": \"相对路径\",\n \"Category\": \"分类\",\n \"User\": \"用户\",\n \"status\": \"状态\",\n \"account_id\": \"用户Id\",\n \"Initialize\": \"初始化\",\n \"Update\": \"更新\",\n \"Update Page\": \"更新本页\",\n \"Warning\": \"警告\",\n \"Sign in\": \"登录\",\n \"Sign up is here\": \"注册\",\n \"Sign in is here\": \"登录\",\n \"Sign up\": \"注册\",\n \"Sign up with Google Account\": \"Sign up with Google Account\",\n \"Sign in with Google Account\": \"Sign in with Google Account\",\n \"Sign up with this Google Account\": \"Sign up with this Google Account\",\n \"Example\": \"例如\",\n \"Taro Yamada\": \"John Doe\",\n \"List View\": \"列表\",\n \"Timeline View\": \"时间线\",\n \"History\": \"历史\",\n \"attachment_data\": \"Attachment Data\",\n \"No_attachments_yet\": \"暂无附件\",\n \"Presentation Mode\": \"演示文稿\",\n \"The end\": \"结束\",\n \"Not available for guest\": \"Not available for guest\",\n \"Create Archive Page\": \"创建归档页\",\n \"File type\": \"文件类型\",\n \"Target page\": \"目标页面\",\n \"Include Attachment File\": \"包含附件\",\n \"Include Comment\": \"包含评论\",\n \"Include Subordinated Page\": \"包括子页面\",\n \"All Subordinated Page\": \"所有子页面\",\n \"Specify Hierarchy\": \"指定层级\",\n \"Submitted the request to create the archive\": \"提交创建归档请求\",\n \"username\": \"用户名\",\n \"Created\": \"创建\",\n \"Last updated\": \"上次更新\",\n \"Last_Login\": \"上次登录\",\n \"Share\": \"分享\",\n \"Share Link\": \"分享链接\",\n \"Markdown Link\": \"Markdown链接\",\n \"Create/Edit Template\": \"创建/编辑 模板页面\",\n \"Unportalize\": \"未启动\",\n \"Go to this version\": \"查看此版本\",\n \"View diff\": \"查看差异\",\n \"No diff\": \"无差异\",\n \"User ID\": \"用户ID\",\n \"Home\": \"首页\",\n \"My Drafts\": \"My Drafts\",\n \"User Settings\": \"用户设置\",\n \"User Information\": \"用户信息\",\n \"Basic Info\": \"基础信息\",\n \"Name\": \"姓名\",\n \"Email\": \"邮箱\",\n \"Language\": \"语言\",\n \"English\": \"英语\",\n \"Japanese\": \"日语\",\n \"Chinese\": \"简体中文\",\n \"Set Profile Image\": \"头像\",\n \"Upload Image\": \"上传图片\",\n \"Current Image\": \"当前图片\",\n \"Delete Image\": \"删除图片\",\n \"Delete this image?\": \"删除图片?\",\n \"Updated\": \"更新\",\n \"Upload new image\": \"上传新图像\",\n \"Connected\": \"Connected\",\n \"Show\": \"显示\",\n \"Hide\": \"隐藏\",\n \"Reset\": \"重置\",\n \"Disclose E-mail\": \"显示邮箱\",\n \"page exists\": \"页面已存在\",\n \"Error occurred\": \"Error occurred\",\n \"Create today's\": \"Create today's ...\",\n \"Memo\": \"memo\",\n \"Input page name\": \"Input page name\",\n \"Input page name (optional)\": \"Input page name (optional)\",\n \"New Page\": \"新页面\",\n \"Create under\": \"Create page under below:\",\n \"Wiki Management Home Page\": \"Wiki管理首页\",\n \"App Settings\": \"系统设置\",\n \"Site URL settings\": \"主页URL设置\",\n \"Markdown Settings\": \"Markdown设置\",\n \"Customize\": \"页面定制\",\n \"Notification Settings\": \"通知设置\",\n \"slack_integration\": \"Slack一体化\",\n \"External_Notification\": \"外部通知\",\n \"Legacy_Slack_Integration\": \"旧版Slack一体化\",\n \"User_Management\": \"用户管理\",\n \"external_account_management\": \"外部账户管理\",\n \"UserGroup Management\": \"用户组管理\",\n \"Full Text Search Management\": \"全文搜索管理\",\n \"Import Data\": \"导入数据\",\n \"Export Archive Data\": \"导出主题数据\",\n \"Basic Settings\": \"基础设置\",\n \"Basic authentication\": \"基本身份验证\",\n \"Register limitation\": \"注册限制\",\n \"The contents entered here will be shown in the header etc\": \"此处输入的内容将显示在标题等中\",\n \"Public\": \"公共\",\n \"Anyone with the link\": \"任何人\",\n \"Specified users only\": \"仅指定用户\",\n \"Only me\": \"只有我\",\n \"Only inside the group\": \"仅组内\",\n \"page_list\": \"Page List\",\n \"scope_of_page_disclosure\": \"页面公开范围\",\n \"set_point\": \"设定值\",\n \"always_displayed\": \"始终显示\",\n \"always_hidden\": \"总是隐藏\",\n \"displayed_or_hidden\": \"显示/隐藏\",\n \"Reselect the group\": \"重新选择组\",\n \"Shareable link\": \"可分享链接\",\n \"The whitelist of registration permission E-mail address\": \"注册许可电子邮件地址的白名单\",\n \"Add tags for this page\": \"添加标签\",\n \"You have no tag, You can set tags on pages\": \"你没有标签,可以在页面上设置标签\",\n \"Show latest\": \"显示最新\",\n \"Load latest\": \"家在最新\",\n \"edited this page\": \"edited this page.\",\n \"List Drafts\": \"草稿\",\n \"Deleted Pages\": \"已删除页\",\n \"Sign out\": \"退出\",\n \"Disassociate\": \"解除关联\",\n \"No bookmarks yet\": \"暂无书签\",\n \"Recent Created\": \"最新创建\",\n \"Recent Changes\": \"最新修改\",\n \"original_path\": \"Original path\",\n \"new_path\": \"New path\",\n \"duplicated_path\": \"duplicated_path\",\n \"Link sharing is disabled\": \"你不允许分享该链接\",\n \"form_validation\": {\n \"error_message\": \"有些值不正确\",\n \"required\": \"%s 是必需的\",\n \"invalid_syntax\": \"%s的语法无效。\"\n },\n \"not_found_page\": {\n \"Create Page\": \"创建页面\",\n \"page_not_exist\": \"该页面不存在\",\n \"page_not_exist_alert\": \"该页面不存在,请创建一个新页面\"\n },\n \"custom_navigation\": {\n \"no_page_list\": \"There are no pages under this page.\",\n \"link_sharing_is_disabled\": \"链接共享已被禁用\"\n },\n \"installer\": {\n \"setup\": \"安装\",\n \"create_initial_account\": \"创建初始用户\",\n \"initial_account_will_be_administrator_automatically\": \"初始帐户将自动成为管理员。\",\n \"unavaliable_user_id\": \"用户ID不可用\"\n },\n \"breaking_changes\": {\n \"v346_using_basic_auth\": \"当前使用的基本身份验证在不久的将来将不再可用。从%s中删除设置\"\n },\n \"page_register\": {\n \"notice\": {\n \"restricted\": \"需要管理员批准。\",\n \"restricted_defail\": \"一旦管理员批准您的注册,您就可以访问此wiki。\"\n },\n \"form_help\": {\n \"email\": \"您必须有下面列出的电子邮件地址才能注册此wiki。\",\n \"password\": \"密码长度必须至少为6个字符。\",\n \"user_id\": \"您创建的网页的URL将包含您的用户ID。您的用户ID可以由字母、数字和一些符号组成。\"\n }\n },\n \"Settings\": \"设置\",\n \"page_me\": {\n \"form_help\": {\n \"profile_image1\": \"图像上传设置未完成。\",\n \"profile_image2\": \"设置AWS或启用本地上传。\"\n }\n },\n \"page_me_apitoken\": {\n \"api_token\": \"API Token\",\n \"notice\": {\n \"apitoken_issued\": \"API token 未发布。\",\n \"update_token1\": \"您可以更新以生成新的API令牌。\",\n \"update_token2\": \"您需要更新任何现有进程中的API令牌。\"\n }\n },\n \"Password\": \"密码\",\n \"Password Settings\": \"密码设置\",\n \"personal_settings\": {\n \"disassociate_external_account\": \"解除与外部帐户的关联\",\n \"disassociate_external_account_desc\": \"是否确实要解除与<strong>{{providerType}}</strong>帐户<strong>{{providerType}}</strong> 的关联?\",\n \"set_new_password\": \"设置新密码\",\n \"update_password\": \"更新密码\",\n \"current_password\": \"当前密码\",\n \"new_password\": \"新密码\",\n \"new_password_confirm\": \"重复新密码\",\n \"password_is_not_set\": \"密码未设置\"\n },\n \"Security Settings\": \"安全设置\",\n \"API Settings\": \"API设置\",\n \"API Token Settings\": \"API token 设置\",\n \"Current API Token\": \"当前 API token\",\n \"Update API Token\": \"更新 API token\",\n \"header_search_box\": {\n \"label\": {\n \"All pages\": \"所有页面\",\n \"This tree\": \"当前分支\"\n },\n \"item_label\": {\n \"All pages\": \"所有页面\",\n \"This tree\": \"当前分支以下内容\"\n }\n },\n \"copy_to_clipboard\": {\n \"Copy to clipboard\": \"复制到剪贴板\",\n \"Page path\": \"页面路径\",\n \"Page URL\": \"页面Url\",\n \"Parmanent link\": \"参数化链接\",\n \"Page path and parmanent link\": \"页面路径及参数化链接\",\n \"Markdown link\": \"Markdown链接\"\n },\n \"search_help\": {\n \"title\": \"搜索帮助\",\n \"and\": {\n \"syntax help\": \"用空格分隔\",\n \"desc\": \"在标题或正文中同时包含{{word1}、{{word2}的搜索页\"\n },\n \"exclude\": {\n \"desc\": \"排除标题或正文中包含{{word}的页\"\n },\n \"phrase\": {\n \"syntax help\": \"用双引号括起来\",\n \"desc\": \"包含短语“{{phrase}”的搜索页\"\n },\n \"prefix\": {\n \"desc\": \"只搜索标题以{{path}开头的页\"\n },\n \"exclude_prefix\": {\n \"desc\": \"排除标题以{{path}开头的页\"\n },\n \"tag\": {\n \"desc\": \"搜索带有{{tag}标记的页面\"\n },\n \"exclude_tag\": {\n \"desc\": \"排除带有{{tag}标记的页\"\n }\n },\n \"search\": {\n \"search page bodies\": \"按[回车]键进行全文搜索\"\n },\n \"page_page\": {\n \"notice\": {\n \"version\": \"这不是当前版本。\",\n \"moved\": \"此页已从\",\n \"moved_period\": \"\",\n \"redirected\": \"您将从\",\n \"redirected_period\": \"\",\n \"duplicated\": \"此页来自\",\n \"duplicated_period\": \"\",\n \"unlinked\": \"将网页重定向到此网页已被删除。\",\n \"restricted\": \"访问此页受到限制\",\n \"stale\": \"自上次更新以来,已超过{{count}年。\",\n \"stale_plural\": \"自上次更新以来已过去{{count}年以上。\",\n \"no_deadline\": \"This page has no expiration date\"\n }\n },\n \"page_edit\": {\n \"Show active line\": \"显示活动行\",\n \"auto_format_table\": \"自动格式化表格\",\n \"overwrite_scopes\": \"{{operation}和覆盖所有子体的作用域\",\n \"notice\": {\n \"conflict\": \"无法保存您所做的更改,因为其他人正在编辑此页。请在重新加载页面后重新编辑受影响的部分。\"\n }\n },\n \"page_table_of_contents\": {\n \"empty\": \"目录为空\"\n },\n \"page_comment\": {\n \"display_the_page_when_posting_this_comment\": \"Display the page when posting this comment\"\n },\n \"page_api_error\": {\n \"notfound_or_forbidden\": \"未找到或禁止原始页。\",\n \"already_exists\": \"新建页面已存在\",\n \"outdated\": \"页面已被某人更新,现在已过时。\",\n \"user_not_admin\": \"仅管理员用户可以完全删除\"\n },\n \"page_history\": {\n \"revision_list\": \"修订清单\",\n \"revision\": \"版本\",\n \"comparing_source\": \"源头\",\n \"comparing_target\": \"目标\",\n \"comparing_revisions\": \"比较两者的区别\",\n \"compare_latest\": \"比較最新版本\",\n \"compare_previous\": \"比較以前的版本\"\n },\n \"modal_rename\": {\n \"label\": {\n \"Move/Rename page\": \"页面 移动/重命名\",\n \"New page name\": \"新建页面名称\",\n \"Fail to get subordinated pages\": \"Fail to get subordinated pages\",\n \"Fail to get exist path\": \"Fail to get exist path\",\n \"Rename without exist path\": \"Rename without exist path\",\n \"Current page name\": \"当前页面名称\",\n \"Recursively\": \"递归地\",\n \"Do not update metadata\": \"不更新元数据\",\n \"Redirect\": \"重定向\"\n },\n \"help\": {\n \"redirect\": \"Redirect to new page if someone accesses <code>%s</code>\",\n \"metadata\": \"Remains last update user and updated date as is\",\n \"recursive\": \"Move/Rename children of under <code>%s</code> recursively\"\n }\n },\n \"Put Back\": \"Put back\",\n \"Delete Completely\": \"Delete completely\",\n \"modal_delete\": {\n \"delete_page\": \"Delete page\",\n \"deleting_page\": \"Deleting page\",\n \"delete_recursively\": \"Delete child pages recursively.\",\n \"delete_completely\": \"Delete completely\",\n \"delete_completely_restriction\": \"You don't have the authority to delete pages completely.\",\n \"recursively\": \"Delete children of <code>%s</code> recursively.\",\n \"completely\": \"Delete completely instead of putting it into trash.\"\n },\n \"modal_empty\": {\n \"empty_the_trash\": \"Empty The Trash\",\n \"notice\": \"完全删除的页面是不可恢复的。\"\n },\n \"modal_duplicate\": {\n \"label\": {\n \"Duplicate page\": \"Duplicate page\",\n \"New page name\": \"New page name\",\n \"Fail to get subordinated pages\": \"Fail to get subordinated pages\",\n \"Current page name\": \"Current page name\",\n \"Recursively\": \"Recursively\",\n \"Duplicate without exist path\": \"Duplicate without exist path\",\n \"Same page already exists\": \"Same page already exists\"\n },\n \"help\": {\n \"recursive\": \"Duplicate children of under this path recursively\"\n }\n },\n \"modal_putback\": {\n \"label\": {\n \"Put Back Page\": \"Put back page\",\n \"recursively\": \"Put back recursively\"\n },\n \"help\": {\n \"recursively\": \"Put back children of under <code>%s</code> recursively\"\n }\n },\n \"modal_shortcuts\": {\n \"global\": {\n \"title\": \"全局快捷方式\",\n \"Open/Close shortcut help\": \"打开/关闭快捷方式帮助\",\n \"Edit Page\": \"编辑页面\",\n \"Create Page\": \"创建页面\",\n \"Show Contributors\": \"显示参与者\",\n \"Konami Code\": \"Konami Code\",\n \"konami_code_url\": \"https://en.wikipedia.org/wiki/Konami_Code\"\n },\n \"editor\": {\n \"title\": \"编辑器快捷方式\",\n \"Indent\": \"缩进\",\n \"Outdent\": \"回退缩进\",\n \"Save Page\": \"保存页面\",\n \"Delete Line\": \"删除行\"\n },\n \"commentform\": {\n \"title\": \"注释窗体快捷方式\",\n \"Post\": \"提交\"\n }\n },\n \"link_edit\": {\n \"edit_link\": \"Edit Link\",\n \"set_link_and_label\": \"Set link and label\",\n \"link\": \"Link\",\n \"placeholder_of_link_input\": \"Input page path or URL\",\n \"label\": \"Label\",\n \"path_format\": \"Path format\",\n \"use_relative_path\": \"Use relative path\",\n \"use_permanent_link\": \"Use permanent link\",\n \"notation\": \"Notation\",\n \"markdown\": \"Markdown\",\n \"GROWI_original\": \"GROWI original\",\n \"pukiwiki\": \"Pukiwiki\",\n \"preview\": \"Preview\",\n \"page_not_found_in_preview\": \"\\\"{{path}}\\\" is not a GROWI page.\"\n },\n \"toaster\": {\n \"update_successed\": \"Succeeded to update {{target}}\",\n \"initialize_successed\": \"Succeeded to initialize {{target}}\",\n \"give_user_admin\": \"Succeeded to give {{username}} admin\",\n \"remove_user_admin\": \"Succeeded to remove {{username}} admin \",\n \"delete_slack_integration_procedure\": \"删除了 Slack 集成程序\",\n \"activate_user_success\": \"Succeeded to activating {{username}}\",\n \"deactivate_user_success\": \"Succeeded to deactivate {{username}}\",\n \"remove_user_success\": \"Succeeded to removing {{username}} \",\n \"remove_external_user_success\": \"Succeeded to remove {{accountId}} \",\n \"switch_disable_link_sharing_success\": \"成功更新分享链接设置\",\n \"failed_to_reset_password\": \"Failed to reset password\"\n },\n \"template\": {\n \"modal_label\": {\n \"Create/Edit Template Page\": \"创建/编辑模板页\",\n \"Create template under\": \"在下面创建模板页:<br/><code><small>%s</small></code>\"\n },\n \"option_label\": {\n \"create/edit\": \"创建/编辑模板页。\",\n \"select\": \"选择模板页面类型\"\n },\n \"children\": {\n \"label\": \"子模板\",\n \"desc\": \"仅应用于模板存在的同一级别页\"\n },\n \"decendants\": {\n \"label\": \"子代模板\",\n \"desc\": \"适用于所有分散页\"\n }\n },\n \"sandbox\": {\n \"header\": \"标题\",\n \"header_x\": \"标题{{index}\",\n \"block\": \"段落\",\n \"block_detail\": \"写一段\",\n \"empty_line\": \"空行\",\n \"line_break\": \"换行符\",\n \"line_break_detail\": \"(2空格)换行\",\n \"typography\": \"排版\",\n \"italics\": \"斜体\",\n \"bold\": \"加粗\",\n \"italic_bold\": \"斜体加粗\",\n \"strikethrough\": \"删除线\",\n \"link\": \"链接\",\n \"code_highlight\": \"代码突出显示\",\n \"list\": \"列表\",\n \"unordered_list_x\": \"无序列表{{index}}\",\n \"ordered_list_x\": \"有序列表{{index}}\",\n \"task\": \"任务\",\n \"task_checked\": \"选中的\",\n \"task_unchecked\": \"未选中的\",\n \"quote\": \"引用\",\n \"quote1\": \"你可以写\",\n \"quote2\": \"多行引用\",\n \"quote_nested\": \"嵌套引用\",\n \"table\": \"表格\",\n \"image\": \"图片\",\n \"alt_text\": \"Alt文本\",\n \"insert_image\": \"插入图像\",\n \"open_sandbox\": \"开放式沙箱\"\n },\n \"hackmd\": {\n \"hack_md\": \"HackMD\",\n \"not_set_up\": \"HackMD is not set up.\",\n \"used_for_not_found\": \"Can not use HackMD to a page that does not exist.\",\n \"start_to_edit\": \"Start to edit with HackMD\",\n \"clone_page_content\": \"Click to clone page content and start to edit.\",\n \"unsaved_draft\": \"HackMD has unsaved draft.\",\n \"draft_outdated\": \"DRAFT MAY BE OUTDATED\",\n \"based_on_revision\": \"The current draft on HackMD is based on\",\n \"view_outdated_draft\": \"View the outdated draft on HackMD\",\n \"resume_to_edit\": \"Resume to edit with HackMD\",\n \"discard_changes\": \"Discard changes of HackMD\",\n \"integration_failed\": \"HackMD Integration failed\",\n \"fail_to_connect\": \"GROWI client failed to connect to GROWI agent for HackMD.\",\n \"check_configuration\": \"Check your configuration following <a href='https://docs.growi.org/guide/admin-cookbook/integrate-with-hackmd.html'>the manual</a>.\",\n \"not_initialized\": \"HackmdEditor component has not initialized\",\n \"someone_editing\": \"Someone editing this page on HackMD\",\n \"this_page_has_draft\": \"This page has a draft on HackMD\",\n \"need_to_associate_with_growi_to_use_hackmd_refer_to_this\": \"若要使用HackMD的多人同时编辑功能,请先关联HackMD和GROWI。详情请参考<a href='https://docs.growi.org/cn/admin-guide/admin-cookbook/integrate-with-hackmd.html'>这里</a>。\",\n \"need_to_make_page\": \"To use HackMD, please make a new page from the <a href='#edit'>built-in editor.</a>\"\n },\n \"slack_notification\": {\n \"popover_title\": \"Slack Notification\",\n \"popover_desc\": \"Input channel name. You can notify multiple channels by entering a comma-separated list.\"\n },\n \"security_settings\": \"安全设置\",\n \"share_links\": {\n \"Shere this page link to public\": \"Shere this page link to public\",\n \"share_link_list\": \"Share link list\",\n \"share_link_management\": \"Share Link Management\",\n \"No_share_links\": \"No share links\",\n \"Share Link\": \"Share Link\",\n \"Page Path\": \"Page Path\",\n \"share_link_notice\": \"remove all share links\",\n \"delete_all_share_links\": \"Delete all share links\",\n \"expire\": \"Expiration\",\n \"Days\": \"Days\",\n \"Custom\": \"Custom\",\n \"description\": \"description\",\n \"enter_desc\": \"Enter description\",\n \"Unlimited\": \"unlimited\",\n \"Issue\": \"Issue\",\n \"share_settings\": \"Share settings\",\n \"Invalid_Number_of_Date\": \"You entered invalid value\"\n },\n \"security_setting\": {\n \"Guest Users Access\": \"来宾用户访问\",\n \"Fixed by env var\": \"这是由env var<code>%s=%s</code>修复的。\",\n \"Register limitation\": \"注册限制\",\n \"Register limitation desc\": \"限制新用户注册\",\n \"The whitelist of registration permission E-mail address\": \"注册许可电子邮件地址的白名单\",\n \"users_without_account\": \"无法访问没有帐户的用户\",\n \"example\": \"例子\",\n \"restrict_emails\": \"您可以通过编写电子邮件域(以@开头)将电子邮件注册限制为wiki。\",\n \"for_example\": \" 例如,如果要将注册限制为growi.org网站域,你可以写\",\n \"in_this_case\": \";在这种情况下,只有growi.org网站域将能够注册,所有其他用户将被拒绝。\",\n \"insert_single\": \"请每行插入一个电子邮件地址。\",\n \"page_list_and_search_results\": \"页面列表/搜索结果\",\n \"page_listing_1\": \"页面列表/搜索<br>受“仅限我”限制\",\n \"page_listing_1_desc\": \"列出/搜索时显示受“仅限我”选项限制的页面\",\n \"page_listing_2\": \"页面列表/搜索<br>受用户组限制\",\n \"page_listing_2_desc\": \"显示列出/搜索时受用户组限制的页面\",\n \"page_access_and_delete_rights\": \"页面访问/删除权限\",\n \"complete_deletion\": \"限制完全删除页面\",\n \"complete_deletion_explain\": \"限制可以完全删除页面的用户。\",\n \"admin_only\": \"仅管理员\",\n \"admin_and_author\": \"管理员|作者\",\n \"anyone\": \"任何人\",\n \"session\": \"会议\",\n \"max_age\": \"有效期间 (msec)\",\n \"max_age_desc\": \"指定使用户会话过期的数量(以毫秒为单位)。<br>默认值: 2592000000 (30天)\",\n \"max_age_caution\": \"修改该值后需要重启服务器。\",\n \"Authentication mechanism settings\": \"身份验证机制设置\",\n \"setup_is_not_yet_complete\": \"安装尚未完成\",\n \"alert_siteUrl_is_not_set\": \"主页URL未设置,通过 {{link}} 设置\",\n \"xss_prevent_setting\": \"阻止XSS(跨站点脚本)\",\n \"xss_prevent_setting_link\": \"转到Markdown设置\",\n \"callback_URL\": \"回调URL\",\n \"providerName\": \"提供程序名称\",\n \"issuerHost\": \"发行者主机\",\n \"scope\": \"Scope\",\n \"desc_of_callback_URL\": \"在{{AuthName}}身份提供程序的设置中使用它\",\n \"authorization_endpoint\": \"Authorization Endpoint\",\n \"token_endpoint\": \"Token Endpoint\",\n \"revocation_endpoint\": \"Revocation Endpoint\",\n \"introspection_endpoint\": \"Introspection Endpoint\",\n \"userinfo_endpoint\": \"UserInfo Endpoint\",\n \"end_session_endpoint\": \"EndSessioin Endpoint\",\n \"registration_endpoint\": \"Registration Endpoint\",\n \"jwks_uri\": \"JSON Web Key Set URL\",\n \"clientID\": \"Client ID\",\n \"client_secret\": \"客户机密\",\n \"updated_general_security_setting\": \"更新安全设置成功\",\n \"setup_not_completed_yet\": \"安装尚未完成\",\n \"guest_mode\": {\n \"deny\": \"拒绝(仅限注册用户)\",\n \"readonly\": \"接受(来宾可以只读)\"\n },\n \"registration_mode\": {\n \"open\": \"打开(任何人都可以注册)\",\n \"restricted\": \"受限(需要管理员批准)\",\n \"closed\": \"已关闭(仅限邀请)\"\n },\n \"share_link_rights\": \"分享链接权\",\n \"enable_link_sharing\": \"启用链接共享\",\n \"all_share_links\": \"所有共享链接\",\n \"configuration\": \" 配置\",\n \"optional\": \"可选的\",\n \"Treat username matching as identical\": \"Automatically bind external accounts newly logged in to local accounts when <code>username</code> match\",\n \"Treat username matching as identical_warn\": \"WARNING: Be aware of security because the system treats the same user as a match of <code>username</code>.\",\n \"Treat email matching as identical\": \"Automatically bind external accounts newly logged in to local accounts when <code>email</code> match\",\n \"Treat email matching as identical_warn\": \"WARNING: Be aware of security because the system treats the same user as a match of <code>email</code>.\",\n \"Use env var if empty\": \"Use env var <code>{{env}}</code> if empty\",\n \"Use default if both are empty\": \"If both are empty, the default value <code>{{target}}</code> is used.\",\n \"missing mandatory configs\": \"The following mandatory items are not set in either database nor environment variables.\",\n \"Local\": {\n \"name\": \"ID/Password\",\n \"note for the only env option\": \"The LOCAL authentication is limited by the value of environment variable.<br>To change this setting, please change to false or delete the value of the environment variable <code>{{env}}</code> .\",\n \"enable_local\": \"Enable ID/Password\"\n },\n \"ldap\": {\n \"enable_ldap\": \"Enable LDAP\",\n \"server_url_detail\": \"The LDAP URL of the directory service in the format <code>ldap://host:port/DN</code> or <code>ldaps://host:port/DN</code>.\",\n \"bind_mode\": \"Binding Mode\",\n \"bind_manager\": \"Manager Bind\",\n \"bind_user\": \"User Bind\",\n \"bind_DN_manager_detail\": \"The DN of the account that authenticates and queries the directory service\",\n \"bind_DN_user_detail1\": \"The query used to bind with the directory service.\",\n \"bind_DN_user_detail2\": \"Use <code>{{username}}</code> to reference the username entered in the login page.\",\n \"bind_DN_password\": \"Bind DN Password\",\n \"bind_DN_password_manager_detail\": \"The password for the Bind DN account.\",\n \"bind_DN_password_user_detail\": \"The password that is entered in the login page will be used to bind.\",\n \"search_filter\": \"Search Filter\",\n \"search_filter_detail1\": \"The query used to locate the authenticated user.\",\n \"search_filter_detail2\": \"Use <code>{{username}}</code> to reference the username entered in the login page.\",\n \"search_filter_detail3\": \"If empty, the filter <code>(uid={{username}})</code> is used.\",\n \"search_filter_example1\": \"Match with 'uid' or 'mail'\",\n \"search_filter_example2\": \"Match with 'sAMAccountName' for Active Directory\",\n \"username_detail\": \"Specification of mappings for <code>username</code> when creating new users\",\n \"name_detail\": \"Specification of mappings for full name when creating new users\",\n \"mail_detail\": \"Specification of mappings for mail address when creating new users\",\n \"group_search_base_DN\": \"Group Search Base DN\",\n \"group_search_base_DN_detail\": \"The base DN from which to search for groups. If defined, also <code>Group Search Filter</code> must be defined for the search to work.\",\n \"group_search_filter\": \"Group Search Filter\",\n \"group_search_filter_detail1\": \"The query used to filter for groups.\",\n \"group_search_filter_detail2\": \"Login via LDAP is accepted only when this query hits one or more groups.\",\n \"group_search_filter_detail3\": \"Use <code>{{dn}}</code> to have it replaced of the found user object.\",\n \"group_search_filter_detail4\": \"<code>(&(cn=group1)(memberUid={{dn}}))</code> hits the groups which has <code>cn=group1</code> and <code>memberUid</code> includes the user's <code>uid</code>(when <code>Group DN Property</code> is not changed from the default value.)\",\n \"group_search_user_DN_property\": \"User DN Property\",\n \"group_search_user_DN_property_detail\": \"The property of user object to use in <code>{{dn}}</code> interpolation of <code>Group Search Filter</code>.\",\n \"test_config\": \"Test Saved Configuration\",\n \"updated_ldap\": \"Succeeded to update LDAP setting\"\n },\n \"SAML\": {\n \"name\": \"SAML\",\n \"enable_saml\": \"Enable SAML\",\n \"id_detail\": \"Specification of the name of attribute which can identify the user in SAML Identity Provider\",\n \"username_detail\": \"Specification of mappings for <code>username</code> when creating new users\",\n \"mapping_detail\": \"Specification of mappings for {{target}} when creating new users\",\n \"cert_detail\": \"PEM-encoded X.509 signing certificate to validate the response from IdP\",\n \"Use env var if empty\": \"If the value in the database is empty, the value of the environment variable <code>{{env}}</code> is used.\",\n \"note for the only env option\": \"The setting item that enables or disables the SAML authentication and the highlighted setting items use only the value of environment variables.<br>To change this setting, please change to false or delete the value of the environment variable <code>{{env}}</code> .\",\n \"attr_based_login_control_detail\": \"Limit who can sign up by using <code><saml: Attribute></code> element included in <code><saml: AttributeStatement></code> element and its child element <code><saml: AttributeValue></code>.\",\n \"attr_based_login_control_rule_detail\": \"See <a href=\\\"https://lucene.apache.org/core/2_9_4/queryparsersyntax.html\\\" target=\\\"_blank\\\">Apache Lucene - Query Parser Syntax</a>.<h6>Supported Queries:</h6><ul><li>Terms</li><li>Fields</li><li>AND/NOT/OR Operator</li><li>Grouping</li></ul><h6>Unsupported Queries:</h6><ul><li>Wildcard, Fuzzy, Proximity, Range and Boosting</li><li>+/- Operator</li><li>Field Grouping</li></ul>\",\n \"attr_based_login_control_rule_example\": \"<h6>Example</h6>If a rule is <code>(Department: A || Department: B) && Position: Leader</code>, users who have either <code>Department: A</code> or <code>Department: B</code> and have <code>Position: Leader</code> <strong>can</strong> sign in.\",\n \"updated_saml\": \"Succeeded to update SAML setting\"\n },\n \"Basic\": {\n \"enable_basic\": \"Enable Basic\",\n \"name\": \"Basic Authentication\",\n \"desc_1\": \"Login with <code>username</code> in Authorization header.\",\n \"desc_2\": \"User will be automatically generated if not exist.\",\n \"updated_basic\": \"Succeeded to update Basic setting\"\n },\n \"OAuth\": {\n \"enable_oidc\": \"Enable OIDC\",\n \"register\": \"Register for %s\",\n \"change_redirect_url\": \"Enter <code>%s</code> <br>(where <code>%s</code> is your host name) for \\\"Authorized redirect URIs\\\".\",\n \"Google\": {\n \"enable_google\": \"Enable Google OAuth\",\n \"name\": \"Google OAuth\",\n \"register_1\": \"Access {{link}}\",\n \"register_2\": \"Create Project if no projects exist\",\n \"register_3\": \"Create Credentials → OAuth client ID → Select \\\"Web application\\\"\",\n \"register_4\": \"Register your OAuth App with one of Authorized redirect URIs as <code>{{url}}</code>\",\n \"register_5\": \"Copy and paste your ClientID and Client Secret above\",\n \"updated_google\": \"Succeeded to update Google OAuth setting\"\n },\n \"Facebook\": {\n \"name\": \"Facebook OAuth\"\n },\n \"Twitter\": {\n \"enable_twitter\": \"Enable Twitter OAuth\",\n \"name\": \"Twitter OAuth\",\n \"register_1\": \"Access {{link}}\",\n \"register_2\": \"Sign in Twitter\",\n \"register_3\": \"Create Credentials → OAuth client ID → Select \\\"Web application\\\"\",\n \"register_4\": \"Register your OAuth App with one of Authorized redirect URIs as <code>{{url}}</code>\",\n \"register_5\": \"Copy and paste your ClientID and Client Secret above\",\n \"updated_twitter\": \"Succeeded to update Twitter OAuth setting\"\n },\n \"GitHub\": {\n \"enable_github\": \"Enable GitHub OAuth\",\n \"name\": \"GitHub OAuth\",\n \"register_1\": \"Access {{link}}\",\n \"register_2\": \"Register your OAuth App with \\\"Authorization callback URL\\\" as <code>{{url}}</code>\",\n \"register_3\": \"Copy and paste your ClientID and Client Secret above\",\n \"updated_github\": \"Succeeded to update GitHub OAuth setting\"\n },\n \"OIDC\": {\n \"name\": \"OpenID Connect\",\n \"id_detail\": \"Specification of the name of attribute which can identify the user in OIDC claims\",\n \"username_detail\": \"Specification of mappings for <code>username</code> when creating new users\",\n \"name_detail\": \"Specification of mappings for <code>name</code> when creating new users\",\n \"mapping_detail\": \"Specification of mappings for %s when creating new users\",\n \"register_1\": \"Contant to OIDC IdP Administrator\",\n \"register_2\": \"Register your OIDC App with \\\"Authorization callback URL\\\" as <code>%s</code>\",\n \"register_3\": \"Copy and paste your ClientID and Client Secret above\",\n \"updated_oidc\": \"Succeeded to update OpenID Connect\",\n \"Use discovered URL if empty\": \"Use discovered URL from \\\"Issuer Host\\\" if empty\"\n },\n \"how_to\": {\n \"google\": \"How to configure Google OAuth?\",\n \"github\": \"How to configure GitHub OAuth?\",\n \"twitter\": \"How to configure Twitter OAuth?\",\n \"oidc\": \"How to configure OIDC?\"\n }\n },\n \"form_item_name\": {\n \"entryPoint\": \"Entry point\",\n \"issuer\": \"Issuer\",\n \"cert\": \"Certificate\",\n \"attrMapId\": \"ID\",\n \"attrMapUsername\": \"Username\",\n \"attrMapMail\": \"Mail Address\",\n \"attrMapFirstName\": \"First Name\",\n \"attrMapLastName\": \"Last Name\",\n \"ABLCRule\": \"Rule\"\n }\n },\n \"notification_setting\": {\n \"slack_incoming_configuration\": \"Slack Incoming Webhooks configuration\",\n \"prioritize_webhook\": \"Prioritize incoming webhook than Slack App\",\n \"prioritize_webhook_desc\": \"Check this option and GROWI use Incoming Webhooks even if Slack App settings are enabled.\",\n \"slack_app_configuration\": \"Slack app configuration\",\n \"slack_app_configuration_desc\": \"This is the way that compatible with Crowi,<br /> but not recommended in GROWI because it is <strong>too complex</strong>.\",\n \"use_instead\": \"Please use Slack Incoming Webhooks Configuration instead.\",\n \"how_to\": {\n \"header\": \"How to configure Incoming Webhooks?\",\n \"workspace\": \"(At Workspace) Add a hook\",\n \"workspace_desc1\": \"Go to <a href='https://slack.com/services/new/incoming-webhook'>Incoming Webhooks configuration page</a>.\",\n \"workspace_desc2\": \"Choose the default channel to post.\",\n \"workspace_desc3\": \"Add.\",\n \"at_growi\": \"(At GROWI admin page) Set Webhook URL\",\n \"at_growi_desc\": \"Input ”Webhook URL” and submit on this page.\"\n },\n \"user_trigger_notification_header\": \"Default notification settings for patterns\",\n \"pattern\": \"Pattern\",\n \"channel\": \"Channel\",\n \"pattern_desc\": \"Path name of wiki. Pattern expression with <code>*</code> can be used.\",\n \"channel_desc\": \"Slack channel name. Without <code>#</code>.\",\n \"valid_page\": \"启用/禁用通知\",\n \"link_notification_help\": \"<strong>只有那些知道“链接的任何人”链接的人才能查看的页面并不总是得到通知。</strong> \",\n \"just_me_notification_help\": \"<strong>被“仅限我”限制的页在编辑时被通知。</strong>\",\n \"group_notification_help\": \"<strong>被“用户组”限制的页面在编辑时被通知。</strong>\",\n \"notification_list\": \"List of notification settings\",\n \"add_notification\": \"Add new\",\n \"trigger_path\": \"Trigger path\",\n \"trigger_path_help\": \"(expression with <code>*</code> is supported)\",\n \"trigger_events\": \"Trigger events\",\n \"notify_to\": \"Notify to\",\n \"back_to_list\": \"Go back to list\",\n \"notification_detail\": \"Notification Setting Details\",\n \"event_pageCreate\": \"When new page is \\\"CREATED\\\"\",\n \"event_pageEdit\": \"When page is \\\"EDITED\\\"\",\n \"event_pageDelete\": \"When page is \\\"DELETED\\\"\",\n \"event_pageMove\": \"When page is \\\"MOVED\\\" (renamed)\",\n \"event_pageLike\": \"When someone \\\"LIKES\\\" page\",\n \"event_comment\": \"When someone \\\"COMMENTS\\\" on page\",\n \"email\": {\n \"ifttt_link\": \"Create a new IFTTT applet with Email trigger\"\n },\n \"updated_slackApp\": \"Succeeded to update Slack App Configuration setting\",\n \"add_notification_pattern\": \"Add user trigger notification patterns\",\n \"delete_notification_pattern\": \"Delete notification pattern\",\n \"delete_notification_pattern_desc1\": \"Delete Path: {{path}}\",\n \"delete_notification_pattern_desc2\": \"Once deleted, it cannot be recovered\",\n \"toggle_notification\": \"Updated setting of {{path}}\"\n },\n \"full_text_search_management\": {\n \"elasticsearch_management\": \"Elasticsearch管理\",\n \"connection_status\": \"连接状态\",\n \"connection_status_label_unconfigured\": \"未配置\",\n \"connection_status_label_connected\": \"已连接\",\n \"connection_status_label_disconnected\": \"断开的\",\n \"connection_status_label_erroroccured\": \"搜索服务出错\",\n \"indices_status\": \"索引状态\",\n \"indices_status_label_normalized\": \"标准化\",\n \"indices_status_label_unnormalized\": \"重建或损坏\",\n \"indices_summary\": \"索引摘要\",\n \"reconnect\": \"重新连接\",\n \"reconnect_button\": \"尝试重新连接\",\n \"reconnect_description\": \"单击按钮尝试重新连接到Elasticsearch。\",\n \"normalize\": \"规范化\",\n \"normalize_button\": \"规范化索引\",\n \"normalize_description\": \"单击按钮修复损坏的索引。\",\n \"rebuild\": \"重建\",\n \"rebuild_button\": \"重建索引\",\n \"rebuild_description_1\": \"单击按钮以重新生成索引并添加所有页面数据。\",\n \"rebuild_description_2\": \"这可能需要一段时间。\"\n },\n \"personal_dropdown\": {\n \"home\": \"家\",\n \"settings\": \"设置\",\n \"color_mode\": \"颜色模式\",\n \"sidebar_mode\": \"边栏模式\",\n \"sidebar_mode_editor\": \"编辑器上的边栏模式\",\n \"use_os_settings\": \"使用操作系统设置\"\n },\n \"search_result\": {\n \"result_meta\": \"在{{total}中找到了{{keyword}。\",\n \"deletion_mode_btn_lavel\": \"选择并删除页面\",\n \"cancel\": \"取消\",\n \"delete\": \"删除\",\n \"check_all\": \"全部检查\",\n \"deletion_modal_header\": \"删除页\",\n \"delete_completely\": \"完全删除\"\n },\n \"to_cloud_settings\": \"進入 GROWI.cloud 的管理界面\",\n \"login\": {\n \"Sign in error\": \"登录错误\",\n \"Registration successful\": \"注册成功\",\n \"Setup\": \"安装程序\"\n },\n \"export_bulk\": {\n \"failed_to_export\": \"导出失败\",\n \"failed_to_count_pages\": \"页面计数失败\",\n \"export_page_markdown\": \"以Markdown格式导出页面\",\n \"export_page_pdf\": \"以PDF格式导出页面\"\n },\n \"message\": {\n \"successfully_connected\": \"连接成功!\",\n \"fail_to_save_access_token\": \"无法保存访问令牌。请再试一次。\",\n \"fail_to_fetch_access_token\": \"无法获取访问令牌。请重新连接。\",\n \"successfully_disconnected\": \"成功断开连接!\",\n \"strategy_has_not_been_set_up\": \"{{strategy}尚未设置\",\n \"maximum_number_of_users\": \"注册的用户数不能超过最大值。\",\n \"database_error\": \"发生数据库服务器错误\",\n \"sign_in_failure\": \"登录失败。\",\n \"aws_sttings_required\": \"使用此功能所需的AWS设置。请询问管理员。\",\n \"application_already_installed\": \"应用程序已安装。\",\n \"email_address_could_not_be_used\": \"无法使用此电子邮件地址。(确保允许的电子邮件地址)\",\n \"user_id_is_not_available.\": \"此用户ID不可用。\",\n \"email_address_is_already_registered\": \"此电子邮件地址已注册。\",\n \"can_not_register_maximum_number_of_users\": \"注册的用户数不能超过最大值。\",\n \"failed_to_register\": \"注册失败。\",\n \"successfully_created\": \"已成功创建用户{{username}。\",\n \"can_not_activate_maximum_number_of_users\": \"无法激活超过最大用户数的用户。\",\n \"failed_to_activate\": \"无法激活。\",\n \"unable_to_use_this_user\": \"无法使用此用户。\",\n \"complete_to_install1\": \"完成安装GROWI!请以管理员帐户登录。\",\n \"complete_to_install2\": \"完成安装GROWI!请先检查此页上的每个设置。\",\n \"failed_to_create_admin_user\": \"无法创建管理用户。{{errMessage}\"\n },\n \"grid_edit\": {\n \"create_bootstrap_4_grid\": \"创建Bootstrap 4网格\",\n \"grid_settings\": \"网格设置\",\n \"grid_pattern\": \"网格样式\",\n \"division\": \"分割\",\n \"smart_no\": \"手机/不分割\",\n \"break_point\": \"按画面大小分割\"\n },\n \"validation\": {\n \"aws_region\": \"关于地区,请输入AWS地区名,例如:ap-east-1\",\n \"aws_custom_endpoint\": \"关于自定义端点,请指定以http(s)://开头的URL,链接末尾不需要添加“/”\",\n \"failed_to_send_a_test_email\": \"SMTP方式测试邮件发送失败,请检查相关设定。\"\n }\n }\n }\n};//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9yZXNvdXJjZS9sb2NhbGVzL2luZGV4LmpzLmpzIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vLy4vcmVzb3VyY2UvbG9jYWxlcy9pbmRleC5qcz9mOWQ0Il0sInNvdXJjZXNDb250ZW50IjpbIm1vZHVsZS5leHBvcnRzID0ge1wiZW5fVVNcIjp7XCJhZG1pblwiOntcIm1haWxlcl9zZXR1cF9yZXF1aXJlZFwiOlwiPGEgaHJlZj0nL2FkbWluL2FwcCc+RW1haWwgc2V0dGluZ3M8L2E+IGFyZSByZXF1aXJlZCB0byBzZW5kLlwiLFwiYWRtaW5fdG9wXCI6e1wibWFuYWdlbWVudF93aWtpXCI6XCJNYW5hZ2VtZW50IFdpa2lcIixcInN5c3RlbV9pbmZvcm1hdGlvblwiOlwiU3lzdGVtIGluZm9ybWF0aW9uXCIsXCJ3aWtpX2FkbWluaXN0cmF0b3JcIjpcIk9ubHkgd2lraSBhZG1pbmlzdHJhdG9yIGNhbiBhY2Nlc3MgdGhpcyBwYWdlXCIsXCJhc3NpZ25fYWRtaW5pc3RyYXRvclwiOlwiWW91IGNhbiBhc3NpZ24gdGhlIHNlbGVjdGVkIHVzZXIgdG8gYmUgYSB3aWtpIGFkbWluaXN0cmF0b3Igb24gdGhlIFVzZXIgTWFuYWdlbWVudCBwYWdlIHVzaW5nIHRoZSAnR2l2ZSBhZG1pbiBhY2Nlc3MnIGJ1dHRvblwiLFwibGlzdF9vZl9pbnN0YWxsZWRfcGx1Z2luc1wiOlwiTGlzdCBvZiBpbnN0YWxsZWQgcGx1Z2luc1wiLFwicGFja2FnZV9uYW1lXCI6XCJQYWNrYWdlIG5hbWVcIixcInNwZWNpZmllZF92ZXJzaW9uXCI6XCJTcGVjaWZpZWQgdmVyc2lvblwiLFwiaW5zdGFsbGVkX3ZlcnNpb25cIjpcIkluc3RhbGxlZCB2ZXJzaW9uXCIsXCJsaXN0X29mX2Vudl92YXJzXCI6XCJMaXN0IG9mIGVudmlyb25tZW50IHZhcmlhYmxlc1wiLFwiZW52X3Zhcl9wcmlvcml0eVwiOlwiRm9yIGVudmlyb25tZW50IHZhcmlhYmxlcyBvdGhlciB0aGFuIHNlY3VyaXR5LCB0aGUgdmFsdWUgb2YgdGhlIGRhdGFiYXNlIGlzIG9idGFpbmVkIHByZWZlcmVudGlhbGx5LlwiLFwiYWJvdXRfc2VjdXJpdHlcIjpcIkNoZWNrIDxhIGhyZWY9Jy9hZG1pbi9zZWN1cml0eSc+U2VjdXJ0aXkgU2V0dGluZ3M8L2E+IGZvciBzZWN1cml0eSBlbnZpcm9ubWVudCB2YXJpYWJsZXMuXCJ9LFwiYXBwX3NldHRpbmdcIjp7XCJzaXRlX25hbWVcIjpcIlNpdGUgbmFtZVwiLFwic2l0ZW5hbWVfY2hhbmdlXCI6XCJZb3UgY2FuIGNoYW5nZSBzaXRlIG5hbWUgd2hpY2ggaXMgdXNlZCBmb3IgaGVhZGVyIGFuZCBIVE1MIHRpdGxlLlwiLFwiaGVhZGVyX2NvbnRlbnRcIjpcIlRoZSBjb250ZW50cyBlbnRlcmVkIGhlcmUgd2lsbCBiZSBzaG93biBpbiB0aGUgaGVhZGVyIGV0Yy5cIixcInNpdGVfdXJsX2Rlc2NcIjpcIlRoaXMgaXMgZm9yIHRoZSBzaXRlIFVSTCBzZXR0aW5nLlwiLFwic2l0ZV91cmxfd2FyblwiOlwiU29tZSBmZWF0dXJlcyBkb24ndCB3b3JrIGJlY2F1c2UgdGhlIHNpdGUgVVJMIGlzIG5vdCBzZXQuXCIsXCJzaXRldXJsX2hlbHBcIjpcIlNpdGUgZnVsbCBVUkwgYmVnaW5uaW5nIGZyb20gPGNvZGU+aHR0cDovLzwvY29kZT4gb3IgPGNvZGU+aHR0cHM6Ly88L2NvZGU+LlwiLFwiY29uZmlkZW50aWFsX25hbWVcIjpcIkNvbmZpZGVudGlhbCBuYW1lXCIsXCJjb25maWRlbnRpYWxfZXhhbXBsZVwiOlwiZXgpOiBpbnRlcm5hbCB1c2Ugb25seVwiLFwiZGVmYXVsdF9sYW5ndWFnZVwiOlwiRGVmYXVsdCBsYW5ndWFnZSBmb3IgbmV3IHVzZXJzXCIsXCJkZWZhdWx0X21haWxfdmlzaWJpbGl0eVwiOlwiRGlzY2xvc2UgZS1tYWlsIGZvciBuZXcgdXNlcnNcIixcImZpbGVfdXBsb2FkaW5nXCI6XCJGaWxlIHVwbG9hZGluZ1wiLFwiZW5hYmxlX2ZpbGVzX2V4Y2VwdF9pbWFnZVwiOlwiRW5hYmxpbmcgdGhpcyBvcHRpb24gd2lsbCBhbGxvdyB1cGxvYWQgb2YgYW55IGZpbGUgdHlwZS4gV2l0aG91dCB0aGlzIG9wdGlvbiwgb25seSBpbWFnZSBmaWxlIHVwbG9hZCBpcyBzdXBwb3J0ZWQuXCIsXCJhdHRhY2hfZW5hYmxlXCI6XCJZb3UgY2FuIGF0dGFjaCBmaWxlcyBvdGhlciB0aGFuIGltYWdlIGZpbGVzIGlmIHlvdSBlbmFibGUgdGhpcyBvcHRpb24uXCIsXCJ1cGRhdGVcIjpcIlVwZGF0ZVwiLFwibWFpbF9zZXR0aW5nc1wiOlwiRS1tYWlsIFNldHRpbmdzXCIsXCJtYWlsZXJfaXNfbm90X3NldF91cFwiOlwiRS1tYWlsIHNldHRpbmcgaXMgbm90IHNldCB1cC5cIixcImZyb21fZS1tYWlsX2FkZHJlc3NcIjpcIkZyb20gZS1tYWlsIGFkZHJlc3NcIixcInRyYW5zbWlzc2lvbl9tZXRob2RcIjpcIlRyYW5zbWlzc2lvbiBNZXRob2RcIixcInNtdHBfbGFiZWxcIjpcIlNNVFBcIixcInNlc19sYWJlbFwiOlwiU0VTKEFXUylcIixcInNlbmRfdGVzdF9lbWFpbFwiOlwiU2VuZCBhIHRlc3QtZW1haWxcIixcInN1Y2Nlc3NfdG9fc2VuZF90ZXN0X2VtYWlsXCI6XCJTdWNjZXNzIHRvIHNlbmQgYSB0ZXN0LWVtYWlsXCIsXCJzbXRwX3NldHRpbmdzXCI6XCJTTVRQIHNldHRpbmdzXCIsXCJob3N0XCI6XCJIb3N0XCIsXCJwb3J0XCI6XCJQb3J0XCIsXCJ1c2VyXCI6XCJVc2VyXCIsXCJpbml0aWFsaXplX21haWxfc2V0dGluZ3NcIjpcImluaXRpYWxpemUgZS1tYWlsIHNldHRpbmdzXCIsXCJpbml0aWFsaXplX21haWxfbW9kYWxfaGVhZGVyXCI6XCJJbml0aWFsaXplIGUtbWFpbCBzZXR0aW5nc1wiLFwiY29uZmlybV90b19pbml0aWFsaXplX21haWxfc2V0dGluZ3NcIjpcIllvdSBjYW4ndCByZXN0b3JlIHRvIHRoZSBjdXJyZW50IHNldHRpbmdzLiBBcmUgeW91IHN1cmUgeW91IHdhbnQgdG8gaW5pdGlhbGl6ZSBlLW1haWwgc2V0dGluZ3M/XCIsXCJmaWxlX3VwbG9hZF9zZXR0aW5nc1wiOlwiRmlsZSBVcGxvYWQgU2V0dGluZ3NcIixcImZpbGVfdXBsb2FkX21ldGhvZFwiOlwiRmlsZSBVcGxvYWQgTWV0aG9kXCIsXCJmaWxlX2RlbGl2ZXJ5X21ldGhvZFwiOlwiRmlsZSBEZWxpdmVyeSBNZXRob2RcIixcImZpbGVfZGVsaXZlcnlfbWV0aG9kX3JlZGlyZWN0XCI6XCJSZWRpcmVjdFwiLFwiZmlsZV9kZWxpdmVyeV9tZXRob2RfcmVsYXlcIjpcIkludGVybmFsIFN5c3RlbSBSZWxheVwiLFwiZmlsZV9kZWxpdmVyeV9tZXRob2RfcmVkaXJlY3RfaW5mb1wiOlwiUmVkaXJlY3Q6IEl0IHJlZGlyZWN0cyB0byBhIHNpZ25lZCBVUkwgd2l0aG91dCBHUk9XSSBzZXJ2ZXIsIGl0IGdpdmVzIGV4Y2VsbGVudCBwZXJmb3JtYW5jZS5cIixcImZpbGVfZGVsaXZlcnlfbWV0aG9kX3JlbGF5X2luZm9cIjpcIkludGVybmFsIFN5c3RlbSBSZWxheTogVGhlIEdST1dJIHNlcnZlciBkZWxpdmVycyB0byBjbGllbnRzLCBpdCBwcm92aWRlcyBjb21wbGV0ZSBzZWN1cml0eS5cIixcImZpeGVkX2J5X2Vudl92YXJcIjpcIlRoaXMgaXMgZml4ZWQgYnkgdGhlIGVudiB2YXIgPGNvZGU+RklMRV9VUExPQUQ9e3tmaWxlVXBsb2FkVHlwZX19PC9jb2RlPi5cIixcImdjc19sYWJlbFwiOlwiR0NQKEdDUylcIixcImF3c19sYWJlbFwiOlwiQVdTKFMzKVwiLFwibG9jYWxfbGFiZWxcIjpcIkxvY2FsXCIsXCJncmlkZnNfbGFiZWxcIjpcIk1vbmdvREIoR3JpZEZTKVwiLFwiZmlsZV91cGxvYWRcIjpcIlRoaXMgaXMgZm9yIHVwbG9hZGluZyBmaWxlIHNldHRpbmdzLiBJZiB5b3UgY29tcGxldGUgZmlsZSB1cGxvYWQgc2V0dGluZ3MsIGZpbGUgdXBsb2FkIGZ1bmN0aW9uLCBwcm9maWxlIHBpY3R1cmUgZnVuY3Rpb24gZXRjIHdpbGwgYmUgZW5hYmxlZC5cIixcInNlc19zZXR0aW5nc1wiOlwiU0VTIHNldHRpbmdzXCIsXCJ0ZXN0X2Nvbm5lY3Rpb25cIjpcIlRlc3QgY29ubmVjdGlvbiB0byBtYWlsXCIsXCJjaGFuZ2Vfc2V0dGluZ1wiOlwiQ2F1dGlvbjppZiB5b3UgY2hhbmdlIHRoaXMgc2V0dGluZyBub3QgY29tcGxldGVkLCB5b3Ugd2lsbCBub3QgYmUgYWJsZSB0byBhY2Nlc3MgZmlsZXMgeW91IGhhdmUgdXBsb2FkZWQgc28gZmFyLlwiLFwicmVnaW9uXCI6XCJSZWdpb25cIixcImJ1Y2tldF9uYW1lXCI6XCJCdWNrZXQgbmFtZVwiLFwiY3VzdG9tX2VuZHBvaW50XCI6XCJDdXN0b20gZW5kcG9pbnRcIixcImN1c3RvbV9lbmRwb2ludF9jaGFuZ2VcIjpcIklucHV0IHRoZSBVUkwgb2YgdGhlIGVuZHBvaW50IG9mIGFuIG9iamVjdCBzdG9yYWdlIHNlcnZpY2UgbGlrZSBNaW5JTyB0aGF0IGhhcyBhIFMzLWNvbXBhdGlibGUgQVBJLiAgQW1hem9uIFMzIGlzIHVzZWQgaWYgZW1wdHkuXCIsXCJwbHVnaW5fc2V0dGluZ3NcIjpcIlBsdWdpbiBzZXR0aW5nc1wiLFwiZW5hYmxlX3BsdWdpbl9sb2FkaW5nXCI6XCJFbmFibGUgcGx1Z2luIGxvYWRpbmdcIixcImxvYWRfcGx1Z2luc1wiOlwiTG9hZF9wbHVnaW5zXCIsXCJlbmFibGVcIjpcIkVuYWJsZVwiLFwiZGlzYWJsZVwiOlwiRGlzYWJsZVwiLFwidXNlX2Vudl92YXJfaWZfZW1wdHlcIjpcIklmIHRoZSB2YWx1ZSBpbiB0aGUgZGF0YWJhc2UgaXMgZW1wdHksIHRoZSB2YWx1ZSBvZiB0aGUgZW52aXJvbm1lbnQgdmFyaWFibGUgPGNvZGU+e3t2YXJpYWJsZX19PC9jb2RlPiBpcyB1c2VkLlwiLFwibm90ZV9mb3JfdGhlX29ubHlfZW52X29wdGlvblwiOlwiVGhlIEdDUyBTZXR0aW5ncyBpcyBsaW1pdGVkIGJ5IHRoZSB2YWx1ZSBvZiBlbnZpcm9ubWVudCB2YXJpYWJsZS48YnI+VG8gY2hhbmdlIHRoaXMgc2V0dGluZywgcGxlYXNlIGNoYW5nZSB0byBmYWxzZSBvciBkZWxldGUgdGhlIHZhbHVlIG9mIHRoZSBlbnZpcm9ubWVudCB2YXJpYWJsZSA8Y29kZT57e2Vudn19PC9jb2RlPiAuXCJ9LFwibWFya2Rvd25fc2V0dGluZ1wiOntcImxpbmVCcmVha19oZWFkZXJcIjpcIkxpbmUgYnJlYWsgc2V0dGluZ1wiLFwibGluZUJyZWFrX2Rlc2NcIjpcIllvdSBjYW4gY2hhbmdlIGxpbmUgYnJlYWsgc2V0dGluZ3MuXCIsXCJsaW5lQnJlYWtfb3B0aW9uc1wiOntcImVuYWJsZV9saW5lQnJlYWtcIjpcIkVuYWJsZSBsaW5lIGJyZWFrXCIsXCJlbmFibGVfbGluZUJyZWFrX2Rlc2NcIjpcIkNvbnZlcnQgbGluZSBicmVhayBpbiB0aGUgdGV4dCBwYWdlIHRvPGNvZGU+Jmx0O2JyJmd0OzwvY29kZT5pbiBIVE1MXCIsXCJlbmFibGVfbGluZUJyZWFrX2Zvcl9jb21tZW50XCI6XCJFbmFibGUgbGluZSBicmVhayBpbiBjb21tZW50XCIsXCJlbmFibGVfbGluZUJyZWFrX2Zvcl9jb21tZW50X2Rlc2NcIjpcIkNvbnZlcnQgbGluZSBicmVhayBpbiBjb21tZW50IHRvPGNvZGU+Jmx0O2JyJmd0OzwvY29kZT5pbiBIVE1MXCJ9LFwiaW5kZW50X2hlYWRlclwiOlwiSW5kZW50IHNldHRpbmdcIixcImluZGVudF9kZXNjXCI6XCJZb3UgY2FuIGNoYW5nZSBpbmRlbnQgc2V0dGluZ3MuXCIsXCJpbmRlbnRfb3B0aW9uc1wiOntcImluZGVudFNpemVcIjpcIkRlZmF1bHQgaW5kZW50IHNpemVcIixcImluZGVudFNpemVfZGVzY1wiOlwiU2V0IHRoZSBkZWZhdWx0IGluZGVudCBzaXplIGZvciB0aGUgTWFya2Rvd24gZWRpdG9yXCIsXCJkaXNhbGxvd19pbmRlbnRfY2hhbmdlXCI6XCJEaXNhbGxvdyBjaGFuZ2Ugb2YgaW5kZW50IHNpemUgYnkgdXNlcnNcIixcImRpc2FsbG93X2luZGVudF9jaGFuZ2VfZGVzY1wiOlwiRm9yY2UgdXNlcnMgdG8gdXNlIHRoZXIgZGVmYXVsdCBpbmRlbnQgc2l6ZS5cIn0sXCJwcmVzZW50YXRpb25faGVhZGVyXCI6XCJQcmVzZW50YXRpb24gc2V0dGluZ1wiLFwicHJlc2VudGF0aW9uX2Rlc2NcIjpcIllvdSBjYW4gY2hhbmdlIHByZXNlbnRhdGlvbiBzZXR0aW5ncy5cIixcInByZXNlbnRhdGlvbl9vcHRpb25zXCI6e1wicGFnZV9icmVha19zZXR0aW5nXCI6XCJQYWdlIGJyZWFrIHNldHRpbmdcIixcInByZXNldF9vbmVfc2VwYXJhdG9yXCI6XCJQcmVzZXQgMVwiLFwicHJlc2V0X29uZV9zZXBhcmF0b3JfZGVzY1wiOlwiMyBCbGFuayBsaW5lc1wiLFwicHJlc2V0X29uZV9zZXBhcmF0b3JfdmFsdWVcIjpcIlxcXFxuXFxcXG5cXFxcblwiLFwicHJlc2V0X3R3b19zZXBhcmF0b3JcIjpcIlByZXNldCAyXCIsXCJwcmVzZXRfdHdvX3NlcGFyYXRvcl9kZXNjXCI6XCI1IEh5cGhlbnNcIixcInByZXNldF90d29fc2VwYXJhdG9yX3ZhbHVlXCI6XCItLS0tLVwiLFwiY3VzdG9tX3NlcGFyYXRvclwiOlwiQ3VzdG9tXCIsXCJjdXN0b21fc2VwYXJhdG9yX2Rlc2NcIjpcIlJlZ3VsYXIgZXhwcmVzc2lvblwifSxcInhzc19oZWFkZXJcIjpcIlByZXZlbnQgWFNTKGNyb3NzIHNpdGUgc2NyaXB0aW5nKSBzZXR0aW5nXCIsXCJ4c3NfZGVzY1wiOlwiWW91IGNhbiBjaGFuZ2UgdGhlIGhhbmRsaW5nIG9mIEhUTUwgdGFncyBpbiBtYXJrZG93biB0ZXh0LlwiLFwieHNzX29wdGlvbnNcIjp7XCJlbmFibGVfeHNzX3ByZXZlbnRpb25cIjpcIkVuYWJsZSBYU1MgcHJldmVudGlvblwiLFwicmVtb3ZlX2FsbF90YWdzXCI6XCJSZW1vdmUgYWxsIHRhZ3NcIixcInJlbW92ZV9hbGxfdGFnc19kZXNjXCI6XCJTdHJpcGUgYWxsIEhUTUwgdGFncyBhbmQgYXR0cmlidXRlc1wiLFwicmVjb21tZW5kZWRfc2V0dGluZ1wiOlwiUmVjb21tZW5kZWQgc2V0dGluZ1wiLFwiY3VzdG9tX3doaXRlbGlzdFwiOlwiQ3VzdG9tIHdoaXRlbGlzdFwiLFwidGFnX25hbWVzXCI6XCJUYWcgbmFtZXNcIixcInRhZ19hdHRyaWJ1dGVzXCI6XCJUYWcgYXR0cmlidXRlc1wiLFwiaW1wb3J0X3JlY29tbWVuZGVkXCI6XCJJbXBvcnQgcmVjb21tZW5kZWQge3t0YXJnZXR9fVwifX0sXCJjdXN0b21pemVfc2V0dGluZ1wiOntcImxheW91dFwiOlwiTGF5b3V0XCIsXCJsYXlvdXRfb3B0aW9uc1wiOntcImRlZmF1bHRcIjpcIkRlZmF1bHQgY29udGVudCB3aWR0aFwiLFwiZXhwYW5kZWRcIjpcIkNvbnRlbnQgd2lkdGggMTAwJVwifSxcInRoZW1lXCI6XCJUaGVtZVwiLFwidGhlbWVfZGVzY1wiOntcImxpZ2h0X2FuZF9kYXJrXCI6XCJMaWdodCBhbmQgZGFyayBtb2Rlc1wiLFwidW5pcXVlXCI6XCJPbmx5IG9uZSBtb2RlXCJ9LFwiZnVuY3Rpb25cIjpcIkZ1bmN0aW9uXCIsXCJmdW5jdGlvbl9kZXNjXCI6XCJZb3UgY2FuIGNob29zZSBWYWxpZC9JbnZhbGlkIG9mIHRoZSBmdW5jdGlvblwiLFwiZnVuY3Rpb25fb3B0aW9uc1wiOntcInRpbWVsaW5lXCI6XCJUaW1lbGluZSBmdW5jdGlvblwiLFwidGltZWxpbmVfZGVzYzFcIjpcIllvdSBjYW4gc2hvdyB0aGUgdGltZWxpbmUgb2YgdGhlIGNoaWxkIHBhZ2VzLlwiLFwidGltZWxpbmVfZGVzYzJcIjpcIklmIHRoZXJlIGFyZSBtYW55IGNoaWxkIHBhZ2VzLCBwZXJmb3JtYW5jZSBkZWNyZWFzZXMgd2hpbGUgcGFnZSBsb2FkaW5nLlwiLFwidGltZWxpbmVfZGVzYzNcIjpcIllvdSBjYW4gc3BlZWQgdXAgbGlzdCBwYWdlIGRpc3BsYXkgYnkgaW52YWxpZGF0aW5nLlwiLFwidGFiX3N3aXRjaFwiOlwiU2F2ZSB0YWItc3dpdGNoaW5nIGluIHRoZSBicm93c2VyXCIsXCJ0YWJfc3dpdGNoX2Rlc2MxXCI6XCJTYXZlIGVkaXQgdGFiIGFuZCBoaXN0b3J5IHRhYiBzd2l0Y2hpbmcgaW4gdGhlIGJyb3dzZXIgYW5kIG1ha2UgaXQgb2JqZWN0IGZvciBmb3J3YXJkL2JhY2sgY29tbWFuZCBvZiB0aGUgYnJvd3Nlci5cIixcInRhYl9zd2l0Y2hfZGVzYzJcIjpcIkJ5IGludmFsaWRhdGluZywgeW91IGNhbiBtYWtlIHBhZ2UgdHJhbnNpdGlvbiBhcyB0aGUgb25seSBvYmplY3QgZm9yIGZvcndhcmQvYmFjayBjb21tYW5kIG9mIHRoZSBicm93c2VyLlwiLFwiYXR0YWNoX3RpdGxlX2hlYWRlclwiOlwiQWRkIGgxIHNlY3Rpb24gd2hlbiBjcmVhdGUgbmV3IHBhZ2UgYXV0b21hdGljYWxseVwiLFwiYXR0YWNoX3RpdGxlX2hlYWRlcl9kZXNjXCI6XCJBZGQgcGFnZSBwYXRoIHRvIHRoZSBmaXJzdCBsaW5lIGFzIGgxIHNlY3Rpb24gd2hlbiBjcmVhdGUgbmV3IHBhZ2UuXCIsXCJsaXN0X251bV9zXCI6XCJOdW1iZXIgb2YgbGlzdCBkaXNwbGF5ZWQgb24gbW9kYWxzXCIsXCJsaXN0X251bV9kZXNjX3NcIjpcIlNldCBudW1iZXIgb2YgbGlzdCBwZXIgcGFnZSBzdWNoIGFzICdQYWdlIExpc3QnLCAnVGltZWxpbmUnLCAnUGFnZSBIaXN0b3J5JyBhbmQgJ0F0dGFjaG1lbnQnIHBhZ2VzLlwiLFwibGlzdF9udW1fbVwiOlwiTnVtYmVyIG9mIGxpc3QgZGlzcGxheWVkIG9uIGFydGljbGUgcGFnZXMgaW5jbHVkZWQgb3RoZXIgY29udGVudHNcIixcImxpc3RfbnVtX2Rlc2NfbVwiOlwiU2V0IG51bWJlciBvZiBsaXN0IHBlciBwYWdlIHN1Y2ggYXMgJ0Jvb2ttYXJrcycgYW5kICdSZWNlbnRseSBjcmVhdGVkJyBwYWdlcy5cIixcImxpc3RfbnVtX2xcIjpcIk51bWJlciBvZiBsaXN0IGRpc3BsYXllZCBvbiAnU2VhcmNoJyBwYWdlc1wiLFwibGlzdF9udW1fZGVzY19sXCI6XCJTZXQgbnVtYmVyIG9mIGxpc3QgcGVyIHBhZ2Ugc3VjaCBhcyAnU2VhcmNoJyBwYWdlcy5cIixcImxpc3RfbnVtX3hsXCI6XCJOdW1iZXIgb2YgbGlzdCBkaXNwbGF5ZWQgb24gYXJ0aWNsZSBwYWdlc1wiLFwibGlzdF9udW1fZGVzY194bFwiOlwiU2V0IG51bWJlciBvZiBsaXN0IHBlciBwYWdlIHN1Y2ggYXMgJ05vdCBmb3VuZCcgYW5kICdUcmFzaCcgcGFnZXMuXCIsXCJzdGFsZV9ub3RpZmljYXRpb25cIjpcIkRpc3BsYXkgbm90aWZpY2F0aW9uIG9uIHN0YWxlIHBhZ2VzXCIsXCJzdGFsZV9ub3RpZmljYXRpb25fZGVzY1wiOlwiRGlzcGxheXMgdGhlIG5vdGlmaWNhdGlvbiB0byBwYWdlcyBtb3JlIHRoYW4gMSB5ZWFyIHNpbmNlIHRoZSBsYXN0IHVwZGF0ZS5cIixcInNob3dfYWxsX3JlcGx5X2NvbW1lbnRzXCI6XCJTaG93IGFsbCByZXBseSBjb21tZW50c1wiLFwic2hvd19hbGxfcmVwbHlfY29tbWVudHNfZGVzY1wiOlwiV2hlbiB0aGUgc2V0dGluZyB2YWx1ZSBpcyBvZmYsIGNvbW1lbnRzIG90aGVyIHRoYW4gdGhlIGxhdGVzdCB0d28gYXJlIG9taXR0ZWQuXCJ9LFwiY29kZV9oaWdobGlnaHRcIjpcIkNvZGUgaGlnaGxpZ2h0XCIsXCJub2Nkbl9kZXNjXCI6XCJUaGlzIGZ1bmN0aW9uIGlzIGRpc2FibGVkIHdoZW4gdGhlIGVudmlyb25tZW50IHZhcmlhYmxlIDxjb2RlPk5PX0NETj10cnVlPC9jb2RlPi48YnI+R2l0aHViIHN0eWxlIGhhcyBiZWVuIGZvcmNpYmx5IGFwcGxpZWQuXCIsXCJjdXN0b21fdGl0bGVcIjpcIkN1c3RvbSB0aXRsZVwiLFwiY3VzdG9tX3RpdGxlX2RldGFpbFwiOlwiWW91IGNhbiBjdXN0b21pemUgPGNvZGU+Jmx0O3RpdGxlJmd0OzwvY29kZT4gdGFnLiBGb2xsb3dpbmcgcGxhY2Vob2xkZXJzIHdpbGwgYmUgYXV0b21hdGljYWxseSByZXBsYWNlZDpcIixcImN1c3RvbV90aXRsZV9kZXRhaWxfcGxhY2Vob2xkZXIxXCI6XCI8Y29kZT4mIzEyMzsmIzEyMztzaXRlbmFtZSYjMTI1OyYjMTI1OzwvY29kZT4gLSBUaGUgc2l0ZSBuYW1lIG9mIHRoaXMgd2lraS5cIixcImN1c3RvbV90aXRsZV9kZXRhaWxfcGxhY2Vob2xkZXIyXCI6XCI8Y29kZT4mIzEyMzsmIzEyMztwYWdlbmFtZSYjMTI1OyYjMTI1OzwvY29kZT4gLSBUaGUgcGFnZSBuYW1lIG9mIHRoZSBjdXJyZW50IHBhZ2UuXCIsXCJjdXN0b21fdGl0bGVfZGV0YWlsX3BsYWNlaG9sZGVyM1wiOlwiPGNvZGU+JiMxMjM7JiMxMjM7cGFnZXBhdGgmIzEyNTsmIzEyNTs8L2NvZGU+IC0gVGhlIHBhZ2UgcGF0aCBvZiB0aGUgY3VycmVudCBwYWdlLlwiLFwiY3VzdG9tX2hlYWRlclwiOlwiQ3VzdG9tIEhUTUwgaGVhZGVyXCIsXCJjdXN0b21faGVhZGVyX2RldGFpbFwiOlwiWW91IGNhbiBjdXN0b21pemUgSFRNTCBoZWFkZXIgdGhhdCBhcHBsaWVzIGFsbCBwYWdlcy4gWW91ciBjdXN0b20gc2NyaXB0IHdpbGwgYmUgaW5zZXJ0ZWQgaW4gPGNvZGU+Jmx0O2hlYWRlciZndDs8L2NvZGU+IGJ1dCBhYm92ZSBvdGhlciA8Y29kZT4mbHQ7c2NyaXB0Jmd0OzwvY29kZT4gdGFncy48YnI+UmVsYW9kIHBhZ2UgdG8gc2VlIGNoYW5nZXMuXCIsXCJjdXN0b21fY3NzXCI6XCJDdXN0b20gQ1NTXCIsXCJ3cml0ZV9jc3NcIjpcIllvdSBjYW4gd3JpdGUgQ1NTIHRoYXQgaXMgYXBwbGllZCB0byB3aG9sZSBzeXN0ZW0uXCIsXCJjdHJsX3NwYWNlXCI6XCJDdHJsK1NwYWNlIHRvIGF1dG9jb21wbGV0ZVwiLFwiY3VzdG9tX3NjcmlwdFwiOlwiQ3VzdG9tIHNjcmlwdFwiLFwid3JpdGVfamF2YVwiOlwiWW91IGNhbiB3cml0ZSBKYXZhc2NyaXB0IHRoYXQgaXMgYXBwbGllZCB0byB3aG9sZSBzeXN0ZW0uXCIsXCJyZWZsZWN0X2NoYW5nZVwiOlwiWW91IG5lZWQgdG8gcmVsb2FkIHRoZSBwYWdlIHRvIHJlZmxlY3QgdGhlIGNoYW5nZS5cIn0sXCJpbXBvcnRlcl9tYW5hZ2VtZW50XCI6e1wiYmV0YV93YXJuaW5nXCI6XCJUaGlzIGZ1bmN0aW9uIGlzIEJldGEuXCIsXCJpbXBvcnRfZnJvbVwiOlwiSW1wb3J0IGZyb20ge3tmcm9tfX1cIixcImltcG9ydF9ncm93aV9hcmNoaXZlXCI6XCJJbXBvcnQgR1JPV0kgYXJjaGl2ZVwiLFwiZ3Jvd2lfc2V0dGluZ3NcIjp7XCJkZXNjcmlwdGlvbl9vZl9pbXBvcnRfbW9kZVwiOntcImFib3V0XCI6XCJXaGVuIHlvdSBpbXBvcnQgZGF0YSB3aXRoIHRoZSBzYW1lIG5hbWUgYXMgYW4gZXhpc3Rpbmcgb25lLCBjaG9vc2UgZnJvbSB0aGUgZm9sbG93aW5nIHRocmVlIG1vZGVzIGJlbG93LlwiLFwiaW5zZXJ0XCI6XCJJbnNlcnQ6IFNraXAgaW1wb3J0aW5nIHRoZSBkYXRhLlwiLFwidXBzZXJ0XCI6XCJVcHNlcnQ6IE92ZXJ3cml0ZSBhbmQgdXBkYXRlIHRoZSBleGlzdGluZyBkYXRhIHdpdGggaW1wb3J0ZWQgZGF0YS5cIixcImZsYXNoX2FuZF9pbnNlcnRcIjpcIkZsYXNoIGFuZCBJbnNlcnQ6IEFmdGVyIGRlbGV0aW5nIHRoZSBleGlzdGluZyBkYXRhIGNvbXBsZXRlbHksIGltcG9ydCB0aGUgZGF0YVwifSxcImdyb3dpX2FyY2hpdmVfZmlsZVwiOlwiR1JPV0kgQXJjaGl2ZSBGaWxlXCIsXCJ1cGxvYWRlZF9kYXRhXCI6XCJVcGxvYWRlZCBEYXRhXCIsXCJleHRyYWN0ZWRfZmlsZVwiOlwiRXh0cmFjdGVkIEZpbGVcIixcImNvbGxlY3Rpb25cIjpcIkNvbGxlY3Rpb25cIixcInVwbG9hZFwiOlwiVXBsb2FkXCIsXCJkaXNjYXJkXCI6XCJEaXNjYXJkIHVwbG9hZGVkIGRhdGFcIixcImVycm9yc1wiOntcImRpZmZlcmVudF92ZXJzaW9uc1wiOlwidGhpcyBncm93aSBhbmQgdGhlIHVwbG9hcmRlZCBkYXRhIHZlcnNpb25zIGFyZSBub3QgbWV0XCIsXCJhdF9sZWFzdF9vbmVcIjpcIlNlbGVjdCBvbmUgb3IgbW9yZSBjb2xsZWN0aW9ucy5cIixcInBhZ2VfYW5kX3JldmlzaW9uXCI6XCInUGFnZXMnIGFuZCAnUmV2aXNpb25zJyBtdXN0IGJlIGltcG9ydGVkIGJvdGguXCIsXCJkZXBlbmRzXCI6XCIne3t0YXJnZXR9fScgbXVzdCBiZSBzZWxlY3RlZCB3aGVuICd7e2NvbmRpdGlvbn19JyBpcyBzZWxlY3RlZC5cIn0sXCJjb25maWd1cmF0aW9uXCI6e1wicGFnZXNcIjp7XCJvdmVyd3JpdGVfYXV0aG9yXCI6e1wibGFiZWxcIjpcIk92ZXJ3cml0ZSBwYWdlJ3MgYXV0aG9yIHdpdGggdGhlIGN1cnJlbnQgdXNlclwiLFwiZGVzY1wiOlwiUmVjb21tZW5kZWQgPHNwYW4gY2xhc3M9XFxcInRleHQtZGFuZ2VyXFxcIj5OT1Q8L3NwYW4+IHRvIGNoZWNrIHRoaXMgd2hlbiB1c2VycyB3aWxsIGFsc28gYmUgcmVzdG9yZWQuXCJ9LFwic2V0X3B1YmxpY190b19wYWdlXCI6e1wibGFiZWxcIjpcIlNldCAnUHVibGljJyB0byB0aGUgcGFnZXMgdGhhdCBpcyAne3tmcm9tfX0nXCIsXCJkZXNjXCI6XCJNYWtlIHN1cmUgdGhhdCB0aGlzIGNvbmZpZ3VyYXRpb24gbWFrZXMgYWxsIDxiPid7e2Zyb219fSc8L2I+IHBhZ2VzIHJlYWRhYmxlIGZyb20gPHNwYW4gY2xhc3M9XFxcInRleHQtZGFuZ2VyXFxcIj5BTlkgdXNlcnM8L3NwYW4+LlwifSxcImluaXRpYWxpemVfbWV0YV9kYXRhc1wiOntcImxhYmVsXCI6XCJJbml0aWFsaXplIHBhZ2UncyBsaWtlLCByZWFkIHVzZXJzIGFuZCBjb21tZW50IGNvdW50XCIsXCJkZXNjXCI6XCJSZWNvbW1lbmRlZCA8c3BhbiBjbGFzcz1cXFwidGV4dC1kYW5nZXJcXFwiPk5PVDwvc3Bhbj4gdG8gY2hlY2sgdGhpcyB3aGVuIHVzZXJzIHdpbGwgYWxzbyBiZSByZXN0b3JlZC5cIn0sXCJpbml0aWFsaXplX2hhY2ttZF9yZWxhdGVkX2RhdGFzXCI6e1wibGFiZWxcIjpcIkluaXRpYWxpemUgSGFja01EIHJlbGF0ZWQgZGF0YVwiLFwiZGVzY1wiOlwiUmVjb21tZW5kZWQgdG8gY2hlY2sgdGhpcyB1bmxlc3MgdGhlcmUgaXMgaW1wb3J0YW50IGRyYWZ0cyBvbiBIYWNrTUQuXCJ9fSxcInJldmlzaW9uc1wiOntcIm92ZXJ3cml0ZV9hdXRob3JcIjp7XCJsYWJlbFwiOlwiT3ZlcndyaXRlIHJldmlzaW9uJ3MgYXV0aG9yIHdpdGggdGhlIGN1cnJlbnQgdXNlclwiLFwiZGVzY1wiOlwiUmVjb21tZW5kZWQgPHNwYW4gY2xhc3M9XFxcInRleHQtZGFuZ2VyXFxcIj5OT1Q8L3NwYW4+IHRvIGNoZWNrIHRoaXMgd2hlbiB1c2VycyB3aWxsIGFsc28gYmUgcmVzdG9yZWQuXCJ9fX19LFwiZXNhX3NldHRpbmdzXCI6e1widGVhbV9uYW1lXCI6XCJUZWFtIG5hbWVcIixcImFjY2Vzc190b2tlblwiOlwiQWNjZXNzIHRva2VuXCIsXCJ0ZXN0X2Nvbm5lY3Rpb25cIjpcIlRlc3QgY29ubmVjdGlvbiB0byBlc2FcIn0sXCJxaWl0YV9zZXR0aW5nc1wiOntcInRlYW1fbmFtZVwiOlwiVGVhbSBuYW1lXCIsXCJhY2Nlc3NfdG9rZW5cIjpcIkFjY2VzcyB0b2tlblwiLFwidGVzdF9jb25uZWN0aW9uXCI6XCJUZXN0IGNvbm5lY3Rpb24gdG8gcWlpdGE6dGVhbVwifSxcImltcG9ydFwiOlwiSW1wb3J0XCIsXCJza2lwX3VzZXJuYW1lX2FuZF9lbWFpbF93aGVuX292ZXJsYXBwZWRcIjpcIlNraXAgdXNlcm5hbWUgYW5kIGVtYWlsIHVzaW5nIHNhbWUgdXNlcm5hbWUgYW5kIGVtYWlsIGluIG5ldyBlbnZpcm9ubWVudFwiLFwicHJlcGFyZV9uZXdfYWNjb3VudF9mb3JfbWlncmF0aW9uXCI6XCJQcmVwYXJlIG5ldyBhY2NvdW50IGZvciBtaWdyYXRpb25cIixcImFyY2hpdmVfZGF0YV9pbXBvcnRfZGV0YWlsXCI6XCJNb3JlIERldGFpbHM/IENraWNrIGhlcmUuXCIsXCJhZG1pbl9hcmNoaXZlX2RhdGFfaW1wb3J0X2d1aWRlX3VybFwiOlwiaHR0cHM6Ly9kb2NzLmdyb3dpLm9yZy9lbi9hZG1pbi1ndWlkZS9tYW5hZ2VtZW50LWNvb2tib29rL2ltcG9ydC5odG1sXCIsXCJwYWdlX3NraXBcIjpcIlBhZ2VzIHdpdGggYSBuYW1lIHRoYXQgYWxyZWFkeSBleGlzdHMgb24gR1JPV0kgYXJlIG5vdCBpbXBvcnRlZFwiLFwiRGlyZWN0b3J5X2hpZXJhcmNoeV90YWdcIjpcIkRpcmVjdG9yeSBoaWVyYXJjaHkgdGFnXCJ9LFwiZXhwb3J0X21hbmFnZW1lbnRcIjp7XCJleHBvcnRpbmdfY29sbGVjdGlvbl9saXN0XCI6XCJFeHBvcnRpbmcgQ29sbGVjdGlvbiBMaXN0XCIsXCJleHBvcnRlZF9kYXRhX2xpc3RcIjpcIkV4cG9ydGVkIEFyY2hpdmUgRGF0YSBMaXN0XCIsXCJleHBvcnRfY29sbGVjdGlvbnNcIjpcIkV4cG9ydCBDb2xsZWN0aW9uc1wiLFwiY2hlY2tfYWxsXCI6XCJDaGVjayBBbGxcIixcInVuY2hlY2tfYWxsXCI6XCJVbmNoZWNrIEFsbFwiLFwiZGVzY19wYXNzd29yZF9zZWVkXCI6XCI8cD5ETyBOT1QgRk9SR0VUIHRvIHNldCBjdXJyZW50IDxjb2RlPlBBU1NXT1JEX1NFRUQ8L2NvZGU+IHRvIHlvdXIgbmV3IEdST1dJIHN5c3RlbSB3aGVuIHJlc3RvcmluZyB1c2VyIGRhdGEsIG9yIHVzZXJzIHdpbGwgTk9UIGJlIGFibGUgdG8gbG9naW4gd2l0aCB0aGVpciBwYXNzd29yZC48YnI+PGJyPjxzdHJvbmc+SElOVDo8L3N0cm9uZz48YnI+VGhlIGN1cnJlbnQgPGNvZGU+UEFTU1dPUkRfU0VFRDwvY29kZT4gd2lsbCBiZSBzdG9yZWQgaW4gPGNvZGU+bWV0YS5qc29uPC9jb2RlPiBpbiBleHBvcnRlZCBaSVAuPC9wPlwiLFwiY3JlYXRlX25ld19hcmNoaXZlX2RhdGFcIjpcIkNyZWF0ZSBOZXcgQXJjaGl2ZSBEYXRhXCIsXCJleHBvcnRcIjpcIkV4cG9ydFwiLFwiY2FuY2VsXCI6XCJDYW5jZWxcIixcImZpbGVcIjpcIkZpbGVcIixcImdyb3dpX3ZlcnNpb25cIjpcIkdyb3dpIFZlcnNpb25cIixcImNvbGxlY3Rpb25zXCI6XCJDb2xsZWN0aW9uc1wiLFwiZXhwb3J0ZWRfYXRcIjpcIkV4cG9ydGVkIEF0XCIsXCJleHBvcnRfbWVudVwiOlwiRXhwb3J0IE1lbnVcIixcImRvd25sb2FkXCI6XCJEb3dubG9hZFwiLFwiZGVsZXRlXCI6XCJEZWxldGVcIn0sXCJzbGFja19pbnRlZ3JhdGlvblwiOntcInNlbGVjdGluZ19ib3RfdHlwZXNcIjp7XCJzbGFja19ib3RcIjpcIlNsYWNrIGJvdFwiLFwiZGV0YWlsZWRfZXhwbGFuYXRpb25cIjpcIkRldGFpbGVkIGV4cGxhbmF0aW9uXCIsXCJvZmZpY2lhbF9ib3RcIjpcIk9mZmljaWFsIGJvdFwiLFwiY3VzdG9tX2JvdFwiOlwiQ3VzdG9tIGJvdFwiLFwid2l0aG91dF9wcm94eVwiOlwid2l0aG91dCBwcm94eVwiLFwid2l0aF9wcm94eVwiOlwid2l0aCBwcm94eVwiLFwicmVjb21tZW5kZWRcIjpcIlJlY29tbWVuZGVkXCIsXCJzZXRfdXBcIjpcIlNldCB1cFwiLFwibXVsdGlwbGVfd29ya3NwYWNlc19pbnRlZ3JhdGlvblwiOlwiTXVsdGlwbGUgd29ya3NwYWNlcyBpbnRlZ3JhdGlvblwiLFwic2VjdXJpdHlfY29udHJvbFwiOlwiU2VjdXJpdHkgY29udHJvbFwiLFwiZWFzeVwiOlwiRWFzeVwiLFwibm9ybWFsXCI6XCJOb3JtYWxcIixcImhhcmRcIjpcIkhhcmRcIixcInBvc3NpYmxlXCI6XCJQb3NzaWJsZVwiLFwiaW1wb3NzaWJsZVwiOlwiSW1wb3NzaWJsZVwifSxcImJvdF9yZXNldF9zdWNjZXNzZnVsXCI6XCJCb3Qgc2V0dGluZ3MgaGF2ZSBiZWVuIHJlc2V0LlwiLFwiYWRkaW5nX3NsYWNrX3dzX2ludGVncmF0aW9uX3NldHRpbmdzX3N1Y2Nlc3NmdWxcIjpcIlNsYWNrIHdvcmtzcGFjZSBpbnRlZ3JhdGlvbiBzZXR0aW5ncyBoYXZlIGJlZW4gYWRkZWRcIixcImJvdF9hbGxfcmVzZXRfc3VjY2Vzc2Z1bFwiOlwiQWxsIEJvdCBzZXR0aW5ncyBoYXZlIGJlZW4gcmVzZXQuXCIsXCJjb3BpZWRfdG9fY2xpcGJvYXJkXCI6XCJDb3BpZWQgdG8gY2xpcGJvYXJkXCIsXCJzZXRfc2NvcGVcIjpcIlBsZWFzZSBzZXQgdXAgQm90IFRva2VuIFNjb3BlcyBmcm9tIFNsYWNrIHNldHRpbmdzXCIsXCJtb2RhbFwiOntcIndhcm5pbmdcIjpcIldhcm5pbmdcIixcInN1cmVfY2hhbmdlX2JvdF90eXBlXCI6XCJBcmUgeW91IHN1cmUgeW91IHdhbnQgdG8gY2hhbmdlIHRoZSBib3QgdHlwZT9cIixcImNoYW5nZXNfd2lsbF9iZV9kZWxldGVkXCI6XCJTZXR0aW5ncyBmb3Igb3RoZXIgYm90IHR5cGVzIHdpbGwgYmUgZGVsZXRlZC5cIixcImNhbmNlbFwiOlwiQ2FuY2VsXCIsXCJjaGFuZ2VcIjpcIkNoYW5nZVwifSxcInVzZV9lbnZfdmFyX2lmX2VtcHR5XCI6XCJJZiB0aGUgdmFsdWUgaW4gdGhlIGRhdGFiYXNlIGlzIGVtcHR5LCB0aGUgdmFsdWUgb2YgdGhlIGVudmlyb25tZW50IHZhcmlhYmxlIDxjb2RlPnt7dmFyaWFibGV9fTwvY29kZT4gaXMgdXNlZC5cIixcImFjY2Vzc190b2tlbl9zZXR0aW5nc1wiOntcInJlZ2VuZXJhdGVcIjpcIlJlZ2VuZXJhdGVcIn0sXCJkZWxldGVcIjpcIkRlbGV0ZVwiLFwiaW50ZWdyYXRpb25fcHJvY2VkdXJlXCI6XCJJbnRlZ3JhdGlvbiBQcm9jZWR1cmVcIixcImN1c3RvbV9ib3Rfd2l0aG91dF9wcm94eV9zZXR0aW5nc1wiOlwiQ3VzdG9tIEJvdCB3aXRob3V0IHByb3h5IFNldHRpbmdzXCIsXCJpbnRlZ3JhdGlvbl9mYWlsZWRcIjpcIkludGVncmF0aW9uIGZhaWxlZFwiLFwib2ZmaWNpYWxfYm90X3NldHRpbmdzXCI6XCJPZmZpY2lhbCBib3QgU2V0dGluZ3NcIixcInJlc2V0XCI6XCJSZXNldFwiLFwicmVzZXRfYWxsX3NldHRpbmdzXCI6XCJSZXNldCBhbGwgc2V0dGluZ3NcIixcImRlbGV0ZV9zbGFja2JvdF9zZXR0aW5nc1wiOlwiRGVsZXRlIFNsYWNrIEJvdCBzZXR0aW5nc1wiLFwic2xhY2tib3Rfc2V0dGluZ3Nfbm90aWNlXCI6XCJUaGUgU2xhY2sgd29ya3NwYWNlIGludGVncmF0aW9uIHByb2NlZHVyZSB3aWxsIGJlIGRlbGV0ZWQuIDxicj4gQXJlIHlvdSBzdXJlP1wiLFwiYWxsX3NldHRpbmdzX29mX3RoZV9ib3Rfd2lsbF9iZV9yZXNldFwiOlwiQWxsIHNldHRpbmdzIG9mIHRoZSBCb3Qgd2lsbCBiZSByZXNldC48YnI+QXJlIHlvdSBzdXJlP1wiLFwiYWNjb3JkaW9uXCI6e1wiY3JlYXRlX2JvdFwiOlwiQ3JlYXRlIEJvdFwiLFwiaG93X3RvX2NyZWF0ZV9hX2JvdFwiOlwiSG93IHRvIGNyZWF0ZSBhIGJvdFwiLFwiaG93X3RvX2luc3RhbGxcIjpcIkhvdyB0byBpbnN0YWxsXCIsXCJpbnN0YWxsX2JvdF90b19zbGFja1wiOlwiSW5zdGFsbCBCb3QgVG8gU2xhY2tcIixcImluc3RhbGxfbm93XCI6XCJJbnN0YWxsIG5vd1wiLFwiZ2VuZXJhdGVfYWNjZXNzX3Rva2VuXCI6XCJHZW5lcmF0ZSBBY2Nlc3MgVG9rZW5cIixcInJlZ2lzdGVyX2Zvcl9ncm93aV9vZmZpY2lhbF9ib3RfcHJveHlfc2VydmljZVwiOlwiUmVnaXN0ZXIgZm9yIEdST1dJIE9mZmljaWFsIEJvdCBQcm94eSBTZXJ2aWNlXCIsXCJyZWdpc3Rlcl9mb3JfZ3Jvd2lfY3VzdG9tX2JvdF9wcm94eVwiOlwiUmVnaXN0ZXIgZm9yIHlvdXIgR1JPV0kgQ3VzdG9tIEJvdCBQcm94eVwiLFwiZW50ZXJfZ3Jvd2lfcmVnaXN0ZXJfb25fc2xhY2tcIjpcIkVudGVyIDxiPi9ncm93aSByZWdpc3RlcjwvYj4gb24gc2xhY2tcIixcInBhc3RlX2dyb3dpX3VybFwiOlwiU2luY2UgYSBtb2RhbCBpcyBkaXNwbGF5ZWQsIGVudGVyIHRoZSBmb2xsb3dpbmcgVVJMIGluIDxiPkdST1dJIFVSTDwvYj4uXCIsXCJlbnRlcl9hY2Nlc3NfdG9rZW5fZm9yX2dyb3dpX2FuZF9wcm94eVwiOlwiRW50ZXIgPGI+QWNjZXNzIFRva2VuIFByb3h5IHRvIEdST1dJPC9iPiBhbmQgPGI+QWNjZXNzIFRva2VuIEdST1dJIHRvIFByb3h5PC9iPlwiLFwic2V0X3Byb3h5X3VybF9vbl9ncm93aVwiOlwiU2V0IFByb3h5IFVSTCBvbiBHUk9XSVwiLFwiY29weV9wcm94eV91cmxcIjpcIjEuIFdoZW4gdGhlIGFib3ZlIHN0ZXAg4pGhIGFyZSBjb21wbGV0ZWQgc3VjY2Vzc2Z1bGx5LCB0aGUgUHJveHkgVVJMIHdpbGwgYmUgZGlzcGxheWVkIGluIHRoZSBTbGFjayBDaGFubmVsIHlvdSBzZWxlY3RlZCBpbiB0aGUgbW9kYWwsIHNvIGNvcHkgaXQuXCIsXCJlbnRlcl9wcm94eV91cmxfYW5kX3VwZGF0ZVwiOlwiMi4gRW50ZXIgYW5kIHVwZGF0ZSB0aGUgUHJveHkgVVJMIHRoYXQgeW91IGNvcGllZCBpbiBzdGVwIOKRoiBpbiB0aGUgPGI+UHJveHkgVVJMPC9iPiAgb2YgdGhlIDxiPkN1c3RvbSBib3Qgd2l0aCBwcm94eSBpbnRlZ3JhdGlvbjwvYj4gb24gdGhpcyBwYWdlLlwiLFwiZG9udF9uZWVkX3VwZGF0ZVwiOlwi4oC7SWYgdGhlIHZhbHVlIGlzIGFscmVhZHkgaW4gdGhlcmUsIHRoZXJlIGlzIG5vIG5lZWQgdG8gdXBkYXRlIGl0LlwiLFwic2VsZWN0X2luc3RhbGxfeW91cl9hcHBcIjpcIlNlbGVjdCBcXFwiSW5zdGFsbCB5b3VyIGFwcFxcXCIuXCIsXCJzZWxlY3RfaW5zdGFsbF90b193b3Jrc3BhY2VcIjpcIlNlbGVjdCBcXFwiSW5zdGFsbCB0byBXb3Jrc3BhY2VcXFwiLlwiLFwicmVnaXN0ZXJfcHJveHlfdXJsXCI6XCJSZWdpc3RlciBQcm94eSBVUkwgd2l0aCBHUk9XSVwiLFwiY2xpY2tfYWxsb3dcIjpcIlNlbGVjdCBcXFwiQWxsb3dcXFwiLlwiLFwiaW5zdGFsbF9jb21wbGV0ZV9pZl9jaGVja2VkXCI6XCJDb25maXJtIHRoYXQgXFxcIkluc3RhbGwgeW91ciBhcHBcXFwiIGlzIGNoZWNrZWQuXCIsXCJpbnZpdGVfYm90X3RvX2NoYW5uZWxcIjpcIkludml0ZSBHUk9XSSBib3QgdG8gY2hhbm5lbCBieSBjYWxsaW5nIEBleGFtcGxlLlwiLFwicmVnaXN0ZXJfc2VjcmV0X2FuZF90b2tlblwiOlwiU2V0IFNpZ25pbmcgU2VjcmV0IGFuZCBCb3QgVG9rZW5cIixcInRlc3RfY29ubmVjdGlvblwiOlwiVGVzdCBDb25uZWN0aW9uXCIsXCJ0ZXN0X2Nvbm5lY3Rpb25fYnlfcHJlc3NpbmdfYnV0dG9uXCI6XCJQcmVzcyB0aGUgYnV0dG9uIHRvIHRlc3QgdGhlIGNvbm5lY3Rpb25cIixcImVycm9yX2NoZWNrX2xvZ3NfYmVsb3dcIjpcIkFuIGVycm9yIGhhcyBvY2N1cnJlZC4gUGxlYXNlIGNoZWNrIHRoZSBsb2dzIGJlbG93LlwiLFwic2VuZF9tZXNzYWdlX3RvX3NsYWNrX3dvcmtfc3BhY2VcIjpcIlNlbmQgbWVzc2FnZSB0byBTbGFjayB3b3JrIHNwYWNlLlwiLFwiYWRkX3NsYWNrX3dvcmtzcGFjZVwiOlwiQWRkIGEgU2xhY2sgV29ya3NwYWNlXCJ9LFwiY3VzdG9tX2JvdF93aXRob3V0X3Byb3h5X2ludGVncmF0aW9uXCI6XCJDdXN0b20gQm90IFdpdGhvdXQgUHJveHkgSW50ZWdyYXRpb25cIixcImludGVncmF0aW9uX3NlbnRlbmNlXCI6e1wiaW50ZWdyYXRpb25faXNfbm90X2NvbXBsZXRlXCI6XCJJbnRlZ3JhdGlvbiBpcyBub3QgY29tcGxldGUuPGJyPlByb2NlZWQgd2l0aCB0aGUgZm9sbG93aW5nIGludGVncmF0aW9uIHByb2NlZHVyZS5cIixcImludGVncmF0aW9uX3N1Y2Nlc3NmdWxcIjpcIkludGVncmF0aW9uIHN1Y2Nlc3NmdWxcIixcImludGVncmF0aW9uX3NvbWVfd3NfaXNfbm90X2NvbXBsZXRlXCI6XCJTb21lIHdvcmsgc3BhY2VzIGlzIG5vdCBsaW5rZWRcIn0sXCJjdXN0b21fYm90X3dpdGhfcHJveHlfaW50ZWdyYXRpb25cIjpcIkN1c3RvbSBCb3QgV2l0aCBQcm94eSBJbnRlZ3JhdGlvblwiLFwib2ZmaWNpYWxfYm90X2ludGVncmF0aW9uXCI6XCJPZmZpY2lhbCBib3QgaW50ZWdyYXRpb25cIixcImRvY3NfdXJsXCI6e1wic2xhY2tfaW50ZWdyYXRpb25cIjpcImh0dHBzOi8vZG9jcy5ncm93aS5vcmcvZW4vYWRtaW4tZ3VpZGUvbWFuYWdlbWVudC1jb29rYm9vay9zbGFjay1pbnRlZ3JhdGlvbi9cIixcIm9mZmljaWFsX2JvdFwiOlwiaHR0cHM6Ly9kb2NzLmdyb3dpLm9yZy9lbi9hZG1pbi1ndWlkZS9tYW5hZ2VtZW50LWNvb2tib29rL3NsYWNrLWludGVncmF0aW9uLyNvZmZpY2lhbC1ib3QtJUUzJTgwJTkwcmVjb21tZW5kZWQlRTMlODAlOTFcIixcImN1c3RvbV9ib3Rfd2l0aG91dF9wcm94eVwiOlwiaHR0cHM6Ly9kb2NzLmdyb3dpLm9yZy9lbi9hZG1pbi1ndWlkZS9tYW5hZ2VtZW50LWNvb2tib29rL3NsYWNrLWludGVncmF0aW9uLyNjdXN0b20tYm90LXdpdGhvdXQtcHJveHlcIixcImN1c3RvbV9ib3Rfd2l0aF9wcm94eVwiOlwiaHR0cHM6Ly9kb2NzLmdyb3dpLm9yZy9lbi9hZG1pbi1ndWlkZS9tYW5hZ2VtZW50LWNvb2tib29rL3NsYWNrLWludGVncmF0aW9uLyNjdXN0b20tYm90LXdpdGgtcHJveHlcIixcIm9mZmljaWFsX2JvdF9zZXR0aW5nXCI6XCJodHRwczovL2RvY3MuZ3Jvd2kub3JnL2VuL2FkbWluLWd1aWRlL21hbmFnZW1lbnQtY29va2Jvb2svc2xhY2staW50ZWdyYXRpb24vb2ZmaWNpYWwtYm90LXNldHRpbmdzLmh0bWxcIixcImN1c3RvbV9ib3Rfd2l0aG91dF9wcm94eV9zZXR0aW5nXCI6XCJodHRwczovL2RvY3MuZ3Jvd2kub3JnL2VuL2FkbWluLWd1aWRlL21hbmFnZW1lbnQtY29va2Jvb2svc2xhY2staW50ZWdyYXRpb24vY3VzdG9tLWJvdC13aXRob3V0LXByb3h5LXNldHRpbmdzLmh0bWxcIixcImN1c3RvbV9ib3Rfd2l0aF9wcm94eV9zZXR0aW5nXCI6XCJodHRwczovL2RvY3MuZ3Jvd2kub3JnL2VuL2FkbWluLWd1aWRlL21hbmFnZW1lbnQtY29va2Jvb2svc2xhY2staW50ZWdyYXRpb24vY3VzdG9tLWJvdC13aXRoLXByb3h5LXNldHRpbmdzLmh0bWxcIn19LFwidXNlcl9tYW5hZ2VtZW50XCI6e1wiaW52aXRlX3VzZXJzXCI6XCJUZW1wb3JhcmlseSBpc3N1ZSBhIG5ldyB1c2VyXCIsXCJjbGlja190d2ljZV9zYW1lX2NoZWNrYm94XCI6XCJZb3Ugc2hvdWxkIGNoZWNrIGF0IGxlYXN0IG9uZSBjaGVja2JveC5cIixcImludml0ZV9tb2RhbFwiOntcImVtYWlsc1wiOlwiRW1haWxzIChQb3NzaWJsZSB0byBpc3N1ZSBtdWx0aXBsZSBwZW9wbGUgd2l0aCBuZXcgbGluZXMpXCIsXCJkZXNjcmlwdGlvbjFcIjpcIlRlbXBvcmFyaWx5IGlzc3VlIG5ldyB1c2VycyBieSBlbWFpbCBhZGRyZXNzZXMuXCIsXCJkZXNjcmlwdGlvbjJcIjpcIkEgdGVtcG9yYXJ5IHBhc3N3b3JkIHdpbGwgYmUgZ2VuZXJhdGVkIGZvciB0aGUgZmlyc3QgbG9naW4uXCIsXCJpbnZpdGVfdGhydV9lbWFpbFwiOlwiU2VuZCBpbnZpdGF0aW9uIGVtYWlsXCIsXCJtYWlsX3NldHRpbmdfbGlua1wiOlwiPGkgY2xhc3M9J2ljb24tc2V0dGluZ3MgbXItMic+PC9pPjxhIGhyZWY9Jy9hZG1pbi9hcHAnPkVtYWlsIHNldHRpbmdzPC9hPlwiLFwidmFsaWRfZW1haWxcIjpcIlZhbGlkIGVtYWlsIGFkZHJlc3MgaXMgcmVxdWlyZWRcIixcInRlbXBvcmFyeV9wYXNzd29yZFwiOlwiVGhlIGNyZWF0ZWQgdXNlciBoYXMgYSB0ZW1wb3JhcnkgcGFzc3dvcmRcIixcInNlbmRfbmV3X3Bhc3N3b3JkXCI6XCJQbGVhc2Ugc2VuZCB0aGUgbmV3IHBhc3N3b3JkIHRvIHRoZSB1c2VyLlwiLFwic2VuZF90ZW1wb3JhcnlfcGFzc3dvcmRcIjpcIklmIHlvdSBoYXZlIG5vdCBzZW50IGFuIGludml0YXRpb24gZW1haWwsIGNvcHkgdGhlIHRlbXBvcmFyeSBwYXNzd29yZCBvbiB0aGlzIHNjcmVlbiBhbmQgY29udGFjdCB0aGUgaW52aXRlci5cIixcInNlbmRfZW1haWxcIjpcIllvdSBjYW4gYWxzbyBzZW5kIG9yIHJlc2VuZCB0aGUgaW52aXRhdGlvbiBlbWFpbCBmcm9tIHRoZSBkcm9wLWRvd24gaW4gdGhlIHVzZXJzIHRhYmxlLlwiLFwiZXhpc3RpbmdfZW1haWxcIjpcIlRoZSBmb2xsb3dpbmcgZW1haWxzIGFscmVhZHkgZXhpc3RcIixcImlzc3VlXCI6XCJJc3N1ZVwifSxcInVzZXJfdGFibGVcIjp7XCJhZG1pbmlzdHJhdG9yXCI6XCJBZG1pbmlzdHJhdG9yXCIsXCJlZGl0X21lbnVcIjpcIkVkaXQgbWVudVwiLFwicmVzZXRfcGFzc3dvcmRcIjpcIlJlc2V0IHBhc3N3b3JkXCIsXCJhZG1pbmlzdHJhdG9yX21lbnVcIjpcIkFkbWluaXN0cmF0b3IgTWVudVwiLFwiYWNjZXB0XCI6XCJBY2NlcHRcIixcImRlYWN0aXZhdGVfYWNjb3VudFwiOlwiRGVhY3RpdmF0ZSBhY2NvdW50XCIsXCJ5b3VyX293blwiOlwiWW91IGNhbm5vdCBkZWFjdGl2YXRlIHlvdXIgb3duIGFjY291bnRcIixcInJlbW92ZV9hZG1pbl9hY2Nlc3NcIjpcIlJlbW92ZSBhZG1pbiBhY2Nlc3NcIixcImNhbm5vdF9yZW1vdmVcIjpcIllvdSBjYW5ub3QgcmVtb3ZlIHlvdXJzZWxmIGZyb20gYWRtaW5pc3RyYXRvclwiLFwiZ2l2ZV9hZG1pbl9hY2Nlc3NcIjpcIkdpdmUgYWRtaW4gYWNjZXNzXCIsXCJzZW5kX2ludml0YXRpb25fZW1haWxcIjpcIlNlbmQgaW52aXRhdGlvbiBlbWFpbFwiLFwicmVzZW5kX2ludml0YXRpb25fZW1haWxcIjpcIlJlc2VuZCBpbnZpdGF0aW9uIGVtYWlsXCJ9LFwicmVzZXRfcGFzc3dvcmRcIjpcIlJlc2V0IFBhc3N3b3JkXCIsXCJyZXNldF9wYXNzd29yZF9tb2RhbFwiOntcInBhc3N3b3JkX25ldmVyX3NlZW5cIjpcIlRoZSB0ZW1wb3JhcnkgcGFzc3dvcmQgY2FuIG5ldmVyIGJlIHJldHJpZXZlZCBhZnRlciB0aGlzIHNjcmVlbiBpcyBjbG9zZWQuXCIsXCJwYXNzd29yZF9yZXNldF9tZXNzYWdlXCI6XCJMZXQgdGhlIHVzZXIga25vdyB0aGUgbmV3IHBhc3N3b3JkIGJlbG93IGFuZCBzdHJvbmdseSByZWNvbW1lbmQgdG8gY2hhbmdlIGFub3RoZXIgb25lIGltbWVkaWF0ZWx5LlwiLFwic2VuZF9uZXdfcGFzc3dvcmRcIjpcIlBsZWFzZSBzZW5kIHRoZSBuZXcgcGFzc3dvcmQgdG8gdGhlIHVzZXIuXCIsXCJ0YXJnZXRfdXNlclwiOlwiVGFyZ2V0IFVzZXJcIixcIm5ld19wYXNzd29yZFwiOlwiTmV3IFBhc3N3b3JkXCJ9LFwiZXh0ZXJuYWxfYWNjb3VudFwiOlwiRXh0ZXJuYWwgQWNjb3VudCBNYW5hZ2VtZW50XCIsXCJleHRlcm5hbF9hY2NvdW50c1wiOlwiRXh0ZXJuYWwgYWNjb3VudHNcIixcImNyZWF0ZV9leHRlcm5hbF9hY2NvdW50XCI6XCJDcmVhdGUgZXh0ZXJuYWwgYWNjb3VudFwiLFwiZXh0ZXJuYWxfYWNjb3VudF9saXN0XCI6XCJFeHRlcm5hbCBBY2NvdW50IExpc3RcIixcImV4dGVybmFsX2FjY291bnRfbm9uZVwiOlwiTm8gRXh0ZXJuYWwgQWNjb3VudFwiLFwiaW52aXRlXCI6XCJJbnZpdGVcIixcImludml0ZWRcIjpcIlVzZXIgd2FzIGludml0ZWRcIixcImJhY2tfdG9fdXNlcl9tYW5hZ2VtZW50XCI6XCJCYWNrIHRvIFVzZXIgTWFuYWdlbWVudFwiLFwiYXV0aGVudGljYXRpb25fcHJvdmlkZXJcIjpcIkF1dGhlbnRpY2F0aW9uIHByb3ZpZGVyXCIsXCJtYW5hZ2VcIjpcIk1hbmFnZVwiLFwicGFzc3dvcmRfc2V0dGluZ1wiOlwiUGFzc3dvcmQgc2V0dGluZ1wiLFwicGFzc3dvcmRfc2V0dGluZ19oZWxwXCI6XCJJcyBwYXNzd29yZCBzZXQ/XCIsXCJzZXRcIjpcIlllc1wiLFwidW5zZXRcIjpcIk5vXCIsXCJyZWxhdGVkX3VzZXJuYW1lXCI6XCJSZWxhdGVkIHVzZXIncyBcIixcImNhbm5vdF9pbnZpdGVfbWF4aW11bV91c2Vyc1wiOlwiQ2FuIG5vdCBpbnZpdGUgbW9yZSB0aGFuIHRoZSBtYXhpbXVtIG51bWJlciBvZiB1c2Vycy5cIixcImN1cnJlbnRfdXNlcnNcIjpcIkN1cnJlbnQgdXNlcnM6XCJ9LFwidXNlcl9ncm91cF9tYW5hZ2VtZW50XCI6e1wiY3JlYXRlX2dyb3VwXCI6XCJDcmVhdGUgbmV3IGdyb3VwXCIsXCJkZW55X2NyZWF0ZV9ncm91cFwiOlwiWW91IGNhbid0IGNyZWF0ZSBhIG5ldyBncm91cCB3aXRoIHRoZSBjdXJyZW50IHNldHRpbmdzLlwiLFwiZ3JvdXBfbmFtZVwiOlwiR3JvdXAgbmFtZVwiLFwiZ3JvdXBfZXhhbXBsZVwiOlwiZS5nLiA6IEdyb3VwMVwiLFwiYWRkX21vZGFsXCI6e1wiYWRkX3VzZXJcIjpcIkFkZCBhIHVzZXIgdG8gdGhlIGNyZWF0ZWQgZ3JvdXBcIixcInNlYXJjaF9vcHRpb25cIjpcIlNlYXJjaCBvcHRpb25cIixcImVuYWJsZV9vcHRpb25cIjpcIkVuYWJsZSB7e29wdGlvbn19XCIsXCJmb3J3YXJkX21hdGNoXCI6XCJGb3J3b3JkIG1hdGNoXCIsXCJwYXJ0aWFsX21hdGNoXCI6XCJQYXJ0aWFsIG1hdGNoXCIsXCJiYWNrd2FyZF9tYXRjaFwiOlwiQmFja3dhcmQgbWF0Y2hcIn0sXCJncm91cF9saXN0XCI6XCJHcm91cCBsaXN0XCIsXCJiYWNrX3RvX2xpc3RcIjpcIkdvIGJhY2sgdG8gZ3JvdXAgbGlzdFwiLFwiYmFzaWNfaW5mb1wiOlwiQmFzaWMgaW5mb1wiLFwidXNlcl9saXN0XCI6XCJVc2VyIGxpc3RcIixcImNyZWF0ZWRfZ3JvdXBcIjpcIkdyb3VwIHdhcyBjcmVhdGVkXCIsXCJpc19sb2FkaW5nX2RhdGFcIjpcIkZldGNoIGRhdGEuLi5cIixcIm5vX3BhZ2VzXCI6XCJUaGVyZSBhcmUgbm8gcGFnZXMgdGhlIGdyb3VwIGhhcyB2aWV3IHBlcm1pc3Npb24uXCIsXCJyZW1vdmVfZnJvbV9ncm91cFwiOlwiUmVtb3ZlIHRoaXMgdXNlclwiLFwiZGVsZXRlX21vZGFsXCI6e1wiaGVhZGVyXCI6XCJEZWxldGUgZ3JvdXBcIixcImRlc2NcIjpcIk9uY2UgZGVsZXRlZCwgdGhlIGRlbGV0ZWQgZ3JvdXAgYW5kIGl0cyBwcml2YXRlIHBhZ2VzIGNhbm5vdCBiZSByZXRyaWV2ZWQuXCIsXCJkcm9wZG93bl9kZXNjXCI6XCJDaG9vc2UgYW4gYWN0aW9uIGZvciBwcml2YXRlIHBhZ2VzXCIsXCJzZWxlY3RfZ3JvdXBcIjpcIlNlbGVjdCBhIGdyb3VwXCIsXCJub19ncm91cHNcIjpcIk5vIGdyb3VwcyB0byBzZWxlY3RcIixcInB1Ymxpc2hfcGFnZXNcIjpcIlB1Ymxpc2ggYWxsXCIsXCJkZWxldGVfcGFnZXNcIjpcIkRlbGV0ZSBhbGxcIixcInRyYW5zZmVyX3BhZ2VzXCI6XCJUcmFuc2ZlciB0byBhbm90aGVyIGdyb3VwXCJ9fX0sXCJtZXRhXCI6e1wiaWRcIjpcImVuX1VTXCIsXCJkaXNwbGF5TmFtZVwiOlwiRW5nbGlzaFwiLFwiYWxpYXNlc1wiOltcImVuXCJdfSxcInRyYW5zbGF0aW9uXCI6e1wiSGVscFwiOlwiSGVscFwiLFwidmlld1wiOlwiVmlld1wiLFwiRWRpdFwiOlwiRWRpdFwiLFwiRGVsZXRlXCI6XCJEZWxldGVcIixcImRlbGV0ZV9hbGxcIjpcIkRlbGV0ZSBhbGxcIixcIkR1cGxpY2F0ZVwiOlwiRHVwbGljYXRlXCIsXCJDb3B5XCI6XCJDb3B5XCIsXCJwcmV2aWV3XCI6XCJQcmV2aWV3XCIsXCJkZXNrdG9wXCI6XCJEZXNrdG9wXCIsXCJwaG9uZVwiOlwiU21hcnRwaG9uZVwiLFwidGFibGV0XCI6XCJUYWJsZXRcIixcIkNsaWNrIHRvIGNvcHlcIjpcIkNsaWNrIHRvIGNvcHlcIixcIk1vdmUvUmVuYW1lXCI6XCJNb3ZlL1JlbmFtZVwiLFwiTW92ZWRcIjpcIk1vdmVkXCIsXCJSZWRpcmVjdGVkXCI6XCJSZWRpcmVjdGVkXCIsXCJVbmxpbmtlZFwiOlwiVW5saW5rZWRcIixcIkxpa2UhXCI6XCJMaWtlIVwiLFwiU2VlbiBieVwiOlwiU2VlbiBieVwiLFwiRG9uZVwiOlwiRG9uZVwiLFwiQ2FuY2VsXCI6XCJDYW5jZWxcIixcIkNyZWF0ZVwiOlwiQ3JlYXRlXCIsXCJBZG1pblwiOlwiQWRtaW5cIixcImFkbWluaXN0cmF0b3JcIjpcIkFkbWluXCIsXCJUYWdcIjpcIlRhZ1wiLFwiVGFnc1wiOlwiVGFnc1wiLFwiTmV3XCI6XCJOZXdcIixcIkNsb3NlXCI6XCJDbG9zZVwiLFwiU2hvcnRjdXRzXCI6XCJTaG9ydGN1dHNcIixcImVnXCI6XCJlLmcuXCIsXCJhZGRcIjpcIkFkZFwiLFwiVW5kb1wiOlwiVW5kb1wiLFwiQXJ0aWNsZVwiOlwiQXJ0aWNsZVwiLFwiUGFnZVwiOlwiUGFnZVwiLFwiUGFnZSBQYXRoXCI6XCJQYWdlIHBhdGhcIixcIkNhdGVnb3J5XCI6XCJDYXRlZ29yeVwiLFwiVXNlclwiOlwiVXNlclwiLFwic3RhdHVzXCI6XCJTdGF0dXNcIixcImFjY291bnRfaWRcIjpcIkFjY291bnQgSWRcIixcIlVwZGF0ZVwiOlwiVXBkYXRlXCIsXCJVcGRhdGUgUGFnZVwiOlwiVXBkYXRlIFBhZ2VcIixcIldhcm5pbmdcIjpcIldhcm5pbmdcIixcIlNpZ24gaW5cIjpcIlNpZ24gaW5cIixcIlNpZ24gdXAgaXMgaGVyZVwiOlwiU2lnbiB1cFwiLFwiU2lnbiBpbiBpcyBoZXJlXCI6XCJTaWduIGluXCIsXCJTaWduIHVwXCI6XCJTaWduIHVwXCIsXCJTaWduIHVwIHdpdGggR29vZ2xlIEFjY291bnRcIjpcIlNpZ24gdXAgd2l0aCBHb29nbGUgQWNjb3VudFwiLFwiU2lnbiBpbiB3aXRoIEdvb2dsZSBBY2NvdW50XCI6XCJTaWduIGluIHdpdGggR29vZ2xlIEFjY291bnRcIixcIlNpZ24gdXAgd2l0aCB0aGlzIEdvb2dsZSBBY2NvdW50XCI6XCJTaWduIHVwIHdpdGggdGhpcyBHb29nbGUgQWNjb3VudFwiLFwiRXhhbXBsZVwiOlwiRXhhbXBsZVwiLFwiVGFybyBZYW1hZGFcIjpcIkpvaG4gRG9lXCIsXCJMaXN0IFZpZXdcIjpcIkxpc3RcIixcIlRpbWVsaW5lIFZpZXdcIjpcIlRpbWVsaW5lXCIsXCJIaXN0b3J5XCI6XCJIaXN0b3J5XCIsXCJhdHRhY2htZW50X2RhdGFcIjpcIkF0dGFjaG1lbnQgRGF0YVwiLFwiTm9fYXR0YWNobWVudHNfeWV0XCI6XCJObyBhdHRhY2htZW50cyB5ZXQuXCIsXCJQcmVzZW50YXRpb24gTW9kZVwiOlwiUHJlc2VudGF0aW9uXCIsXCJUaGUgZW5kXCI6XCJUaGUgZW5kXCIsXCJOb3QgYXZhaWxhYmxlIGZvciBndWVzdFwiOlwiTm90IGF2YWlsYWJsZSBmb3IgZ3Vlc3RcIixcIkNyZWF0ZSBBcmNoaXZlIFBhZ2VcIjpcIkNyZWF0ZSBBcmNoaXZlIFBhZ2VcIixcIkZpbGUgdHlwZVwiOlwiRmlsZSB0eXBlXCIsXCJUYXJnZXQgcGFnZVwiOlwiVGFyZ2V0IHBhZ2VcIixcIkluY2x1ZGUgQXR0YWNobWVudCBGaWxlXCI6XCJJbmNsdWRlIEF0dGFjaG1lbnQgRmlsZVwiLFwiSW5jbHVkZSBDb21tZW50XCI6XCJJbmNsdWRlIENvbW1lbnRcIixcIkluY2x1ZGUgU3Vib3JkaW5hdGVkIFBhZ2VcIjpcIkluY2x1ZGUgU3Vib3JkaW5hdGVkIFBhZ2VcIixcIkFsbCBTdWJvcmRpbmF0ZWQgUGFnZVwiOlwiQWxsIFN1Ym9yZGluYXRlZCBQYWdlXCIsXCJTcGVjaWZ5IEhpZXJhcmNoeVwiOlwiU3BlY2lmeSBIaWVyYXJjaHlcIixcIlN1Ym1pdHRlZCB0aGUgcmVxdWVzdCB0byBjcmVhdGUgdGhlIGFyY2hpdmVcIjpcIlN1Ym1pdHRlZCB0aGUgcmVxdWVzdCB0byBjcmVhdGUgdGhlIGFyY2hpdmVcIixcInVzZXJuYW1lXCI6XCJVc2VybmFtZVwiLFwiQ3JlYXRlZFwiOlwiQ3JlYXRlZFwiLFwiTGFzdCB1cGRhdGVkXCI6XCJVcGRhdGVkXCIsXCJMYXN0X0xvZ2luXCI6XCJMYXN0IGxvZ2luXCIsXCJTaGFyZVwiOlwiU2hhcmVcIixcIk1hcmtkb3duIExpbmtcIjpcIk1hcmtkb3duIExpbmtcIixcIkNyZWF0ZS9FZGl0IFRlbXBsYXRlXCI6XCJDcmVhdGUvRWRpdCB0ZW1wbGF0ZSBwYWdlXCIsXCJHbyB0byB0aGlzIHZlcnNpb25cIjpcIlZpZXcgdGhpcyB2ZXJzaW9uXCIsXCJWaWV3IGRpZmZcIjpcIlZpZXcgZGlmZlwiLFwiTm8gZGlmZlwiOlwiTm8gZGlmZlwiLFwiVXNlciBJRFwiOlwiVXNlciBJRFwiLFwiVXNlciBJbmZvcm1hdGlvblwiOlwiVXNlciBpbmZvcm1hdGlvblwiLFwiQmFzaWMgSW5mb1wiOlwiQmFzaWMgaW5mb1wiLFwiTmFtZVwiOlwiTmFtZVwiLFwiRW1haWxcIjpcIkVtYWlsXCIsXCJMYW5ndWFnZVwiOlwiTGFuZ3VhZ2VcIixcIkVuZ2xpc2hcIjpcIkVuZ2xpc2hcIixcIkphcGFuZXNlXCI6XCJKYXBhbmVzZVwiLFwiU2V0IFByb2ZpbGUgSW1hZ2VcIjpcIlNldCBwcm9maWxlIGltYWdlXCIsXCJVcGxvYWQgSW1hZ2VcIjpcIlVwbG9hZCBpbWFnZVwiLFwiQ3VycmVudCBJbWFnZVwiOlwiQ3VycmVudCBpbWFnZVwiLFwiRGVsZXRlIEltYWdlXCI6XCJEZWxldGUgSW1hZ2VcIixcIkRlbGV0ZSB0aGlzIGltYWdlP1wiOlwiRGVsZXRlIHRoaXMgaW1hZ2U/XCIsXCJVcGRhdGVkXCI6XCJVcGRhdGVkXCIsXCJVcGxvYWQgbmV3IGltYWdlXCI6XCJVcGxvYWQgbmV3IGltYWdlXCIsXCJDb25uZWN0ZWRcIjpcIkNvbm5lY3RlZFwiLFwiU2hvd1wiOlwiU2hvd1wiLFwiSGlkZVwiOlwiSGlkZVwiLFwiRGlzY2xvc2UgRS1tYWlsXCI6XCJEaXNjbG9zZSBFLW1haWxcIixcInBhZ2UgZXhpc3RzXCI6XCJ0aGlzIHBhZ2UgYWxyZWFkeSBleGlzdHNcIixcIkVycm9yIG9jY3VycmVkXCI6XCJFcnJvciBvY2N1cnJlZFwiLFwiQ3JlYXRlIHRvZGF5J3NcIjpcIkNyZWF0ZSB0b2RheSdzIC4uLlwiLFwiTWVtb1wiOlwibWVtb1wiLFwiSW5wdXQgcGFnZSBuYW1lXCI6XCJJbnB1dCBwYWdlIG5hbWVcIixcIklucHV0IHBhZ2UgbmFtZSAob3B0aW9uYWwpXCI6XCJJbnB1dCBwYWdlIG5hbWUgKG9wdGlvbmFsKVwiLFwiTmV3IFBhZ2VcIjpcIk5ldyBwYWdlXCIsXCJDcmVhdGUgdW5kZXJcIjpcIkNyZWF0ZSBwYWdlIHVuZGVyIGJlbG93OlwiLFwiV2lraSBNYW5hZ2VtZW50IEhvbWUgUGFnZVwiOlwiV2lraSBNYW5hZ2VtZW50IEhvbWUgUGFnZVwiLFwiQXBwIFNldHRpbmdzXCI6XCJBcHAgU2V0dGluZ3NcIixcIlNpdGUgVVJMIHNldHRpbmdzXCI6XCJTaXRlIFVSTCBzZXR0aW5nc1wiLFwiTWFya2Rvd24gU2V0dGluZ3NcIjpcIk1hcmtkb3duIFNldHRpbmdzXCIsXCJDdXN0b21pemVcIjpcIkN1c3RvbWl6ZVwiLFwiTm90aWZpY2F0aW9uIFNldHRpbmdzXCI6XCJOb3RpZmljYXRpb24gU2V0dGluZ3NcIixcInNsYWNrX2ludGVncmF0aW9uXCI6XCJTbGFjayBJbnRlZ3JhdGlvblwiLFwiRXh0ZXJuYWxfTm90aWZpY2F0aW9uXCI6XCJFeHRlcm5hbCBOb3RpZmljYXRpb25cIixcIkxlZ2FjeV9TbGFja19JbnRlZ3JhdGlvblwiOlwiTGVnYWN5IFNsYWNrIEludGVncmF0aW9uXCIsXCJVc2VyX01hbmFnZW1lbnRcIjpcIlVzZXIgTWFuYWdlbWVudFwiLFwiZXh0ZXJuYWxfYWNjb3VudF9tYW5hZ2VtZW50XCI6XCJFeHRlcm5hbCBBY2NvdW50IE1hbmFnZW1lbnRcIixcIlVzZXJHcm91cCBNYW5hZ2VtZW50XCI6XCJVc2VyR3JvdXAgTWFuYWdlbWVudFwiLFwiRnVsbCBUZXh0IFNlYXJjaCBNYW5hZ2VtZW50XCI6XCJGdWxsIFRleHQgU2VhcmNoIE1hbmFnZW1lbnRcIixcIkltcG9ydCBEYXRhXCI6XCJJbXBvcnQgRGF0YVwiLFwiRXhwb3J0IEFyY2hpdmUgRGF0YVwiOlwiRXhwb3J0IEFyY2hpdmUgRGF0YVwiLFwiQmFzaWMgU2V0dGluZ3NcIjpcIkJhc2ljIFNldHRpbmdzXCIsXCJCYXNpYyBhdXRoZW50aWNhdGlvblwiOlwiQmFzaWMgYXV0aGVudGljYXRpb25cIixcIlJlZ2lzdGVyIGxpbWl0YXRpb25cIjpcIlJlZ2lzdGVyIGxpbWl0YXRpb25cIixcIlRoZSBjb250ZW50cyBlbnRlcmVkIGhlcmUgd2lsbCBiZSBzaG93biBpbiB0aGUgaGVhZGVyIGV0Y1wiOlwiVGhlIGNvbnRlbnRzIGVudGVyZWQgaGVyZSB3aWxsIGJlIHNob3duIGluIHRoZSBoZWFkZXIgZXRjXCIsXCJQdWJsaWNcIjpcIlB1YmxpY1wiLFwiQW55b25lIHdpdGggdGhlIGxpbmtcIjpcIkFueW9uZSB3aXRoIHRoZSBsaW5rXCIsXCJTcGVjaWZpZWQgdXNlcnMgb25seVwiOlwiU3BlY2lmaWVkIHVzZXJzIG9ubHlcIixcIk9ubHkgbWVcIjpcIk9ubHkgbWVcIixcIk9ubHkgaW5zaWRlIHRoZSBncm91cFwiOlwiT25seSBpbnNpZGUgdGhlIGdyb3VwXCIsXCJwYWdlX2xpc3RcIjpcIlBhZ2UgTGlzdFwiLFwic2NvcGVfb2ZfcGFnZV9kaXNjbG9zdXJlXCI6XCJTY29wZSBvZiBwYWdlIGRpc2Nsb3N1cmVcIixcInNldF9wb2ludFwiOlwiU2V0IHBvaW50XCIsXCJhbHdheXNfZGlzcGxheWVkXCI6XCJBbHdheXMgZGlzcGxheWVkXCIsXCJhbHdheXNfaGlkZGVuXCI6XCJBbHdheXMgaGlkZGVuXCIsXCJkaXNwbGF5ZWRfb3JfaGlkZGVuXCI6XCJEaXNwbGF5ZWQgLyBIaWRkZW5cIixcIlJlc2VsZWN0IHRoZSBncm91cFwiOlwiUmVzZWxlY3QgdGhlIGdyb3VwXCIsXCJTaGFyZWFibGUgbGlua1wiOlwiU2hhcmVhYmxlIGxpbmtcIixcIlRoZSB3aGl0ZWxpc3Qgb2YgcmVnaXN0cmF0aW9uIHBlcm1pc3Npb24gRS1tYWlsIGFkZHJlc3NcIjpcIlRoZSB3aGl0ZWxpc3Qgb2YgcmVnaXN0cmF0aW9uIHBlcm1pc3Npb24gRS1tYWlsIGFkZHJlc3NcIixcIkFkZCB0YWdzIGZvciB0aGlzIHBhZ2VcIjpcIkFkZCB0YWdzIGZvciB0aGlzIHBhZ2VcIixcIllvdSBoYXZlIG5vIHRhZywgWW91IGNhbiBzZXQgdGFncyBvbiBwYWdlc1wiOlwiWW91IGhhdmUgbm8gdGFnLCBZb3UgY2FuIHNldCB0YWdzIG9uIHBhZ2VzXCIsXCJTaG93IGxhdGVzdFwiOlwiU2hvdyBsYXRlc3RcIixcIkxvYWQgbGF0ZXN0XCI6XCJMb2FkIGxhdGVzdFwiLFwiZWRpdGVkIHRoaXMgcGFnZVwiOlwiZWRpdGVkIHRoaXMgcGFnZS5cIixcIkxpc3QgRHJhZnRzXCI6XCJEcmFmdHNcIixcIkRlbGV0ZWQgUGFnZXNcIjpcIkRlbGV0ZWQgUGFnZXNcIixcIlNpZ24gb3V0XCI6XCJMb2dvdXRcIixcIkRpc2Fzc29jaWF0ZVwiOlwiRGlzYXNzb2NpYXRlXCIsXCJObyBib29rbWFya3MgeWV0XCI6XCJObyBib29rbWFya3MgeWV0XCIsXCJSZWNlbnQgQ3JlYXRlZFwiOlwiUmVjZW50IENyZWF0ZWRcIixcIlJlY2VudCBDaGFuZ2VzXCI6XCJSZWNlbnQgQ2hhbmdlc1wiLFwib3JpZ2luYWxfcGF0aFwiOlwiT3JpZ2luYWwgcGF0aFwiLFwibmV3X3BhdGhcIjpcIk5ldyBwYXRoXCIsXCJkdXBsaWNhdGVkX3BhdGhcIjpcImR1cGxpY2F0ZWRfcGF0aFwiLFwiTGluayBzaGFyaW5nIGlzIGRpc2FibGVkXCI6XCJMaW5rIHNoYXJpbmcgaXMgZGlzYWJsZWRcIixcInBlcnNvbmFsX2Ryb3Bkb3duXCI6e1wiaG9tZVwiOlwiSG9tZVwiLFwic2V0dGluZ3NcIjpcIlNldHRpbmdzXCIsXCJjb2xvcl9tb2RlXCI6XCJDb2xvciBtb2RlXCIsXCJzaWRlYmFyX21vZGVcIjpcIlNpZGViYXIgbW9kZVwiLFwic2lkZWJhcl9tb2RlX2VkaXRvclwiOlwiU2lkZWJhciBtb2RlIG9uIGVkaXRvclwiLFwidXNlX29zX3NldHRpbmdzXCI6XCJVc2UgT1Mgc2V0dGluZ3NcIn0sXCJmb3JtX3ZhbGlkYXRpb25cIjp7XCJlcnJvcl9tZXNzYWdlXCI6XCJTb21lIHZhbHVlcyDigIvigIthcmUgaW5jb3JyZWN0XCIsXCJyZXF1aXJlZFwiOlwiJXMgaXMgcmVxdWlyZWRcIixcImludmFsaWRfc3ludGF4XCI6XCJUaGUgc3ludGF4IG9mICVzIGlzIGludmFsaWQuXCJ9LFwibm90X2ZvdW5kX3BhZ2VcIjp7XCJDcmVhdGUgUGFnZVwiOlwiQ3JlYXRlIFBhZ2VcIixcInBhZ2Vfbm90X2V4aXN0XCI6XCJUaGlzIHBhZ2UgZG9lcyBub3QgZXhpc3QuXCIsXCJwYWdlX25vdF9leGlzdF9hbGVydFwiOlwiVGhpcyBwYWdlIGRvZXMgbm90IGV4aXN0LiBQbGVhc2UgY3JlYXRlIGEgbmV3IHBhZ2UuXCJ9LFwiY3VzdG9tX25hdmlnYXRpb25cIjp7XCJub19wYWdlX2xpc3RcIjpcIlRoZXJlIGFyZSBubyBwYWdlcyB1bmRlciB0aGlzIHBhZ2UuXCIsXCJsaW5rX3NoYXJpbmdfaXNfZGlzYWJsZWRcIjpcIkxpbmsgc2hhcmluZyBpcyBkaXNhYmxlZC5cIn0sXCJpbnN0YWxsZXJcIjp7XCJzZXR1cFwiOlwiU2V0dXBcIixcImNyZWF0ZV9pbml0aWFsX2FjY291bnRcIjpcIkNyZWF0ZSBhbiBpbml0aWFsIGFjY291bnRcIixcImluaXRpYWxfYWNjb3VudF93aWxsX2JlX2FkbWluaXN0cmF0b3JfYXV0b21hdGljYWxseVwiOlwiVGhlIGluaXRpYWwgYWNjb3VudCB3aWxsIGJlIGFkbWluaXN0cmF0b3IgYXV0b21hdGljYWxseS5cIixcInVuYXZhbGlhYmxlX3VzZXJfaWRcIjpcIlRoaXMgJ1VzZXIgSUQnIGlzIHVuYXZhaWxhYmxlLlwifSxcImJyZWFraW5nX2NoYW5nZXNcIjp7XCJ2MzQ2X3VzaW5nX2Jhc2ljX2F1dGhcIjpcIkJhc2ljIEF1dGhlbnRpY2F0aW9uIGN1cnJlbnRseSBpbiB1c2Ugd2lsbCA8c3Ryb25nPm5vIGxvbmdlciBiZSBhdmFpbGFibGU8L3N0cm9uZz4gaW4gdGhlIG5lYXIgZnV0dXJlLiBSZW1vdmUgc2V0dGluZ3MgZnJvbSAlc1wifSxcInBhZ2VfcmVnaXN0ZXJcIjp7XCJub3RpY2VcIjp7XCJyZXN0cmljdGVkXCI6XCJBZG1pbiBhcHByb3ZhbCByZXF1aXJlZC5cIixcInJlc3RyaWN0ZWRfZGVmYWlsXCI6XCJPbmNlIHRoZSBhZG1pbiBhcHByb3ZlcyB5b3VyIHNpZ24gdXAsIHlvdSdsbCBiZSBhYmxlIHRvIGFjY2VzcyB0aGlzIHdpa2kuXCJ9LFwiZm9ybV9oZWxwXCI6e1wiZW1haWxcIjpcIllvdSBtdXN0IGhhdmUgZW1haWwgYWRkcmVzcyB3aGljaCBsaXN0ZWQgYmVsb3cgdG8gc2lnbiB1cCB0byB0aGlzIHdpa2kuXCIsXCJwYXNzd29yZFwiOlwiWW91ciBwYXNzd29yZCBtdXN0IGJlIGF0IGxlYXN0IDYgY2hhcmFjdGVycyBsb25nLlwiLFwidXNlcl9pZFwiOlwiVGhlIFVSTCBvZiBwYWdlcyB5b3UgY3JlYXRlIHdpbGwgY29udGFpbiB5b3VyIFVzZXIgSUQuIFlvdXIgVXNlciBJRCBjYW4gY29uc2lzdCBvZiBsZXR0ZXJzLCBudW1iZXJzLCBhbmQgc29tZSBzeW1ib2xzLlwifX0sXCJwYWdlX21lXCI6e1wiZm9ybV9oZWxwXCI6e1wicHJvZmlsZV9pbWFnZTFcIjpcIkltYWdlIHVwbG9hZCBzZXR0aW5ncyBub3QgY29tcGxldGVkLlwiLFwicHJvZmlsZV9pbWFnZTJcIjpcIlNldCB1cCBBV1Mgb3IgZW5hYmxlIGxvY2FsIHVwbG9hZHMuXCJ9fSxcInBhZ2VfbWVfYXBpdG9rZW5cIjp7XCJhcGlfdG9rZW5cIjpcIkFQSSBUb2tlblwiLFwibm90aWNlXCI6e1wiYXBpdG9rZW5faXNzdWVkXCI6XCJBUEkgdG9rZW4gaXMgbm90IGlzc3VlZC5cIixcInVwZGF0ZV90b2tlbjFcIjpcIllvdSBjYW4gdXBkYXRlIHRvIGdlbmVyYXRlIGEgbmV3IEFQSSB0b2tlbi5cIixcInVwZGF0ZV90b2tlbjJcIjpcIllvdSB3aWxsIG5lZWQgdG8gdXBkYXRlIHRoZSBBUEkgdG9rZW4gaW4gYW55IGV4aXN0aW5nIHByb2Nlc3Nlcy5cIn0sXCJmb3JtX2hlbHBcIjp7fX0sXCJQYXNzd29yZFwiOlwiUGFzc3dvcmRcIixcIlBhc3N3b3JkIFNldHRpbmdzXCI6XCJQYXNzd29yZCBzZXR0aW5nc1wiLFwicGVyc29uYWxfc2V0dGluZ3NcIjp7XCJkaXNhc3NvY2lhdGVfZXh0ZXJuYWxfYWNjb3VudFwiOlwiRGlzYXNzb2NpYXRlIEV4dGVybmFsIEFjY291bnRcIixcImRpc2Fzc29jaWF0ZV9leHRlcm5hbF9hY2NvdW50X2Rlc2NcIjpcIkFyZSB5b3Ugc3VyZSB0byBkaXNhc3NvY2lhdGUgdGhlIDxzdHJvbmc+e3twcm92aWRlclR5cGV9fTwvc3Ryb25nPiBhY2NvdW50IDxzdHJvbmc+e3thY2NvdW50SWR9fTwvc3Ryb25nPj9cIixcInNldF9uZXdfcGFzc3dvcmRcIjpcIlNldCBuZXcgUGFzc3dvcmRcIixcInVwZGF0ZV9wYXNzd29yZFwiOlwiVXBkYXRlIHBhc3N3b3JkXCIsXCJjdXJyZW50X3Bhc3N3b3JkXCI6XCJDdXJyZW50IHBhc3N3b3JkXCIsXCJuZXdfcGFzc3dvcmRcIjpcIk5ldyBwYXNzd29yZFwiLFwibmV3X3Bhc3N3b3JkX2NvbmZpcm1cIjpcIlJlLWVudGVyIG5ldyBwYXNzd29yZFwiLFwicGFzc3dvcmRfaXNfbm90X3NldFwiOlwiUGFzc3dvcmQgaXMgbm90IHNldFwifSxcInNlY3VyaXR5X3NldHRpbmdzXCI6XCJTZWN1cml0eSBzZXR0aW5nc1wiLFwic2hhcmVfbGlua3NcIjp7XCJTaGVyZSB0aGlzIHBhZ2UgbGluayB0byBwdWJsaWNcIjpcIlNoZXJlIHRoaXMgcGFnZSBsaW5rIHRvIHB1YmxpY1wiLFwic2hhcmVfbGlua19saXN0XCI6XCJTaGFyZSBsaW5rIGxpc3RcIixcInNoYXJlX2xpbmtfbWFuYWdlbWVudFwiOlwiU2hhcmUgTGluayBNYW5hZ2VtZW50XCIsXCJOb19zaGFyZV9saW5rc1wiOlwiTm8gc2hhcmUgbGlua3NcIixcIlNoYXJlIExpbmtcIjpcIlNoYXJlIExpbmtcIixcIlBhZ2UgUGF0aFwiOlwiUGFnZSBQYXRoXCIsXCJzaGFyZV9saW5rX25vdGljZVwiOlwicmVtb3ZlIGFsbCBzaGFyZSBsaW5rc1wiLFwiZGVsZXRlX2FsbF9zaGFyZV9saW5rc1wiOlwiRGVsZXRlIGFsbCBzaGFyZSBsaW5rc1wiLFwiZXhwaXJlXCI6XCJFeHBpcmF0aW9uXCIsXCJEYXlzXCI6XCJEYXlzXCIsXCJDdXN0b21cIjpcIkN1c3RvbVwiLFwiZGVzY3JpcHRpb25cIjpcImRlc2NyaXB0aW9uXCIsXCJlbnRlcl9kZXNjXCI6XCJFbnRlciBkZXNjcmlwdGlvblwiLFwiVW5saW1pdGVkXCI6XCJ1bmxpbWl0ZWRcIixcIklzc3VlXCI6XCJJc3N1ZVwiLFwic2hhcmVfc2V0dGluZ3NcIjpcIlNoYXJlIHNldHRpbmdzXCIsXCJJbnZhbGlkX051bWJlcl9vZl9EYXRlXCI6XCJZb3UgZW50ZXJlZCBpbnZhbGlkIHZhbHVlXCJ9LFwiQVBJIFNldHRpbmdzXCI6XCJBUEkgc2V0dGluZ3NcIixcIkFQSSBUb2tlbiBTZXR0aW5nc1wiOlwiQVBJIHRva2VuIHNldHRpbmdzXCIsXCJDdXJyZW50IEFQSSBUb2tlblwiOlwiQ3VycmVudCBBUEkgdG9rZW5cIixcIlVwZGF0ZSBBUEkgVG9rZW5cIjpcIlVwZGF0ZSBBUEkgdG9rZW5cIixcImhlYWRlcl9zZWFyY2hfYm94XCI6e1wibGFiZWxcIjp7XCJBbGwgcGFnZXNcIjpcIkFsbCBwYWdlc1wiLFwiVGhpcyB0cmVlXCI6XCJUaGlzIHRyZWVcIn0sXCJpdGVtX2xhYmVsXCI6e1wiQWxsIHBhZ2VzXCI6XCJBbGwgcGFnZXNcIixcIlRoaXMgdHJlZVwiOlwiT25seSBjaGlsZHJlbiBvZiB0aGlzIHRyZWVcIn19LFwiY29weV90b19jbGlwYm9hcmRcIjp7XCJDb3B5IHRvIGNsaXBib2FyZFwiOlwiQ29weSB0byBjbGlwYm9hcmRcIixcIlBhZ2UgcGF0aFwiOlwiUGFnZSBwYXRoXCIsXCJQYWdlIFVSTFwiOlwiUGFnZSBVUkxcIixcIlBlcm1hbmVudCBsaW5rXCI6XCJQZXJtYW5lbnQgbGlua1wiLFwiUGFnZSBwYXRoIGFuZCBwZXJtYW5lbnQgbGlua1wiOlwiUGFnZSBwYXRoIGFuZCBwZXJtYW5lbnQgbGlua1wiLFwiTWFya2Rvd24gbGlua1wiOlwiTWFya2Rvd24gbGlua1wifSxcInNlYXJjaF9oZWxwXCI6e1widGl0bGVcIjpcIlNlYXJjaGluZyBIZWxwXCIsXCJhbmRcIjp7XCJzeW50YXggaGVscFwiOlwiZGl2aWRlIHdpdGggc3BhY2VcIixcImRlc2NcIjpcIlNlYXJjaCBwYWdlcyB0aGF0IGluY2x1ZGUgYm90aCB7e3dvcmQxfX0sIHt7d29yZDJ9fSBpbiB0aGUgdGl0bGUgb3IgYm9keVwifSxcImV4Y2x1ZGVcIjp7XCJkZXNjXCI6XCJFeGNsdWRlIHBhZ2VzIHRoYXQgaW5jbHVkZSB7e3dvcmR9fSBpbiB0aGUgdGl0bGUgb3IgYm9keVwifSxcInBocmFzZVwiOntcInN5bnRheCBoZWxwXCI6XCJzdXJyb3VuZCB3aXRoIGRvdWJsZSBxdW90ZXNcIixcImRlc2NcIjpcIlNlYXJjaCBwYWdlcyB0aGF0IGluY2x1ZGUgdGhlIHBocmFzZSBcXFwie3twaHJhc2V9fVxcXCJcIn0sXCJwcmVmaXhcIjp7XCJkZXNjXCI6XCJTZWFyY2ggb25seSB0aGUgcGFnZXMgdGhhdCB0aGUgdGl0bGUgc3RhcnQgd2l0aCB7e3BhdGh9fVwifSxcImV4Y2x1ZGVfcHJlZml4XCI6e1wiZGVzY1wiOlwiRXhjbHVkZSB0aGUgcGFnZXMgdGhhdCB0aGUgdGl0bGUgc3RhcnQgd2l0aCB7e3BhdGh9fVwifSxcInRhZ1wiOntcImRlc2NcIjpcIlNlYXJjaCBmb3IgcGFnZXMgd2l0aCB7e3RhZ319IHRhZ1wifSxcImV4Y2x1ZGVfdGFnXCI6e1wiZGVzY1wiOlwiRXhjbHVkZSBwYWdlcyB3aXRoIHt7dGFnfX0gdGFnXCJ9fSxcInNlYXJjaFwiOntcInNlYXJjaCBwYWdlIGJvZGllc1wiOlwiSGl0IFtFbnRlcl0ga2V5IHRvIGZ1bGwtdGV4dCBzZWFyY2hcIn0sXCJwYWdlX3BhZ2VcIjp7XCJub3RpY2VcIjp7XCJ2ZXJzaW9uXCI6XCJUaGlzIGlzIG5vdCB0aGUgY3VycmVudCB2ZXJzaW9uLlwiLFwibW92ZWRcIjpcIlRoaXMgcGFnZSB3YXMgbW92ZWQgZnJvbVwiLFwibW92ZWRfcGVyaW9kXCI6XCIuXCIsXCJyZWRpcmVjdGVkXCI6XCJZb3UgYXJlIHJlZGlyZWN0ZWQgZnJvbVwiLFwicmVkaXJlY3RlZF9wZXJpb2RcIjpcIi5cIixcImR1cGxpY2F0ZWRcIjpcIlRoaXMgcGFnZSB3YXMgZHVwbGljYXRlZCBmcm9tXCIsXCJkdXBsaWNhdGVkX3BlcmlvZFwiOlwiLlwiLFwidW5saW5rZWRcIjpcIlJlZGlyZWN0IHBhZ2VzIHRvIHRoaXMgcGFnZSBoYXZlIGJlZW4gZGVsZXRlZC5cIixcInJlc3RyaWN0ZWRcIjpcIkFjY2VzcyB0byB0aGlzIHBhZ2UgaXMgcmVzdHJpY3RlZFwiLFwic3RhbGVcIjpcIk1vcmUgdGhhbiB7e2NvdW50fX0geWVhciBoYXMgcGFzc2VkIHNpbmNlIGxhc3QgdXBkYXRlLlwiLFwic3RhbGVfcGx1cmFsXCI6XCJNb3JlIHRoYW4ge3tjb3VudH19IHllYXJzIGhhcyBwYXNzZWQgc2luY2UgbGFzdCB1cGRhdGUuXCIsXCJleHBpcmF0aW9uXCI6XCJUaGlzIHNoYXJlIGxpbmsgd2lsbCBleHBpcmUgYXQgPHN0cm9uZz57e2V4cGlyZWRBdH19PC9zdHJvbmc+LlwiLFwibm9fZGVhZGxpbmVcIjpcIlRoaXMgcGFnZSBoYXMgbm8gZXhwaXJhdGlvbiBkYXRlXCJ9fSxcInBhZ2VfdGFibGVfb2ZfY29udGVudHNcIjp7XCJlbXB0eVwiOlwiVGFibGUgb2YgQ29udGVudHMgaXMgZW1wdHlcIn0sXCJwYWdlX2VkaXRcIjp7XCJTaG93IGFjdGl2ZSBsaW5lXCI6XCJTaG93IGFjdGl2ZSBsaW5lXCIsXCJhdXRvX2Zvcm1hdF90YWJsZVwiOlwiQXV0byBmb3JtYXQgdGFibGVcIixcIm92ZXJ3cml0ZV9zY29wZXNcIjpcInt7b3BlcmF0aW9ufX0gYW5kIE92ZXJ3cml0ZSBzY29wZXMgb2YgYWxsIGRlc2NlbmRhbnRzXCIsXCJub3RpY2VcIjp7XCJjb25mbGljdFwiOlwiQ291bGRuJ3Qgc2F2ZSB0aGUgY2hhbmdlcyB5b3UgbWFkZSBiZWNhdXNlIHNvbWVvbmUgZWxzZSB3YXMgZWRpdGluZyB0aGlzIHBhZ2UuIFBsZWFzZSByZS1lZGl0IHRoZSBhZmZlY3RlZCBzZWN0aW9uIGFmdGVyIHJlbG9hZGluZyB0aGUgcGFnZS5cIn19LFwicGFnZV9jb21tZW50XCI6e1wiZGlzcGxheV90aGVfcGFnZV93aGVuX3Bvc3RpbmdfdGhpc19jb21tZW50XCI6XCJEaXNwbGF5IHRoZSBwYWdlIHdoZW4gcG9zdGluZyB0aGlzIGNvbW1lbnRcIn0sXCJwYWdlX2FwaV9lcnJvclwiOntcIm5vdGZvdW5kX29yX2ZvcmJpZGRlblwiOlwiT3JpZ2luYWwgcGFnZSBpcyBub3QgZm91bmQgb3IgZm9yYmlkZGVuLlwiLFwiYWxyZWFkeV9leGlzdHNcIjpcIk5ldyBwYWdlIGlzIGFscmVhZHkgZXhpc3RzLlwiLFwib3V0ZGF0ZWRcIjpcIlBhZ2UgaXMgdXBkYXRlZCBzb21lb25lIGFuZCBub3cgb3V0ZGF0ZWQuXCIsXCJ1c2VyX25vdF9hZG1pblwiOlwiT25seSBhZG1pbiB1c2VyIGNhbiBkZWxldGUgY29tcGxldGVseVwifSxcInBhZ2VfaGlzdG9yeVwiOntcInJldmlzaW9uX2xpc3RcIjpcIlJldmlzaW9uIGxpc3RcIixcInJldmlzaW9uXCI6XCJ2ZXJzaW9uXCIsXCJjb21wYXJpbmdfc291cmNlXCI6XCJTb3VyY2VcIixcImNvbXBhcmluZ190YXJnZXRcIjpcIlRhcmdldFwiLFwiY29tcGFyaW5nX3JldmlzaW9uc1wiOlwiQ29tcGFyaW5nIHRoZSBkaWZmZXJlbmNlXCIsXCJjb21wYXJlX2xhdGVzdFwiOlwiQ29tcGFyZSBsYXRlc3QgcmV2aXNpb25cIixcImNvbXBhcmVfcHJldmlvdXNcIjpcIkNvbXBhcmUgcHJldmlvdXMgcmV2aXNpb25cIn0sXCJtb2RhbF9yZW5hbWVcIjp7XCJsYWJlbFwiOntcIk1vdmUvUmVuYW1lIHBhZ2VcIjpcIk1vdmUvUmVuYW1lIHBhZ2VcIixcIk5ldyBwYWdlIG5hbWVcIjpcIk5ldyBwYWdlIG5hbWVcIixcIkZhaWwgdG8gZ2V0IHN1Ym9yZGluYXRlZCBwYWdlc1wiOlwiRmFpbCB0byBnZXQgc3Vib3JkaW5hdGVkIHBhZ2VzXCIsXCJGYWlsIHRvIGdldCBleGlzdCBwYXRoXCI6XCJGYWlsIHRvIGdldCBleGlzdCBwYXRoXCIsXCJSZW5hbWUgd2l0aG91dCBleGlzdCBwYXRoXCI6XCJSZW5hbWUgd2l0aG91dCBleGlzdCBwYXRoXCIsXCJDdXJyZW50IHBhZ2UgbmFtZVwiOlwiQ3VycmVudCBwYWdlIG5hbWVcIixcIlJlY3Vyc2l2ZWx5XCI6XCJSZWN1cnNpdmVseVwiLFwiRG8gbm90IHVwZGF0ZSBtZXRhZGF0YVwiOlwiRG8gbm90IHVwZGF0ZSBtZXRhZGF0YVwiLFwiUmVkaXJlY3RcIjpcIlJlZGlyZWN0XCJ9LFwiaGVscFwiOntcInJlZGlyZWN0XCI6XCJSZWRpcmVjdCB0byBuZXcgcGFnZSBpZiBzb21lb25lIGFjY2Vzc2VzIHVuZGVyIHRoaXMgcGF0aFwiLFwibWV0YWRhdGFcIjpcIlJlbWFpbnMgbGFzdCB1cGRhdGUgdXNlciBhbmQgdXBkYXRlZCBkYXRlIGFzIGlzXCIsXCJyZWN1cnNpdmVcIjpcIk1vdmUvUmVuYW1lIGNoaWxkcmVuIG9mIHVuZGVyIHRoaXMgcGF0aCByZWN1cnNpdmVseVwifX0sXCJQdXQgQmFja1wiOlwiUHV0IGJhY2tcIixcIkRlbGV0ZSBDb21wbGV0ZWx5XCI6XCJEZWxldGUgY29tcGxldGVseVwiLFwibW9kYWxfZGVsZXRlXCI6e1wiZGVsZXRlX3BhZ2VcIjpcIkRlbGV0ZSBwYWdlXCIsXCJkZWxldGluZ19wYWdlXCI6XCJEZWxldGluZyBwYWdlXCIsXCJkZWxldGVfcmVjdXJzaXZlbHlcIjpcIkRlbGV0ZSBjaGlsZCBwYWdlcyByZWN1cnNpdmVseS5cIixcImRlbGV0ZV9jb21wbGV0ZWx5XCI6XCJEZWxldGUgY29tcGxldGVseVwiLFwiZGVsZXRlX2NvbXBsZXRlbHlfcmVzdHJpY3Rpb25cIjpcIllvdSBkb24ndCBoYXZlIHRoZSBhdXRob3JpdHkgdG8gZGVsZXRlIHBhZ2VzIGNvbXBsZXRlbHkuXCIsXCJyZWN1cnNpdmVseVwiOlwiRGVsZXRlIHBhZ2VzIHVuZGVyIHRoaXMgcGF0aCByZWN1cnNpdmVseS5cIixcImNvbXBsZXRlbHlcIjpcIkRlbGV0ZSBjb21wbGV0ZWx5IGluc3RlYWQgb2YgcHV0dGluZyBpdCBpbnRvIHRyYXNoLlwifSxcIm1vZGFsX2VtcHR5XCI6e1wiZW1wdHlfdGhlX3RyYXNoXCI6XCJFbXB0eSBUaGUgVHJhc2hcIixcIm5vdGljZVwiOlwiVGhlIHBhZ2VzIGRlbGV0ZWQgY29tcGxldGVseSBhcmUgdW5yZWNvdmVyYWJsZS5cIn0sXCJtb2RhbF9kdXBsaWNhdGVcIjp7XCJsYWJlbFwiOntcIkR1cGxpY2F0ZSBwYWdlXCI6XCJEdXBsaWNhdGUgcGFnZVwiLFwiTmV3IHBhZ2UgbmFtZVwiOlwiTmV3IHBhZ2UgbmFtZVwiLFwiRmFpbCB0byBnZXQgc3Vib3JkaW5hdGVkIHBhZ2VzXCI6XCJGYWlsIHRvIGdldCBzdWJvcmRpbmF0ZWQgcGFnZXNcIixcIkN1cnJlbnQgcGFnZSBuYW1lXCI6XCJDdXJyZW50IHBhZ2UgbmFtZVwiLFwiUmVjdXJzaXZlbHlcIjpcIlJlY3Vyc2l2ZWx5XCIsXCJEdXBsaWNhdGUgd2l0aG91dCBleGlzdCBwYXRoXCI6XCJEdXBsaWNhdGUgd2l0aG91dCBleGlzdCBwYXRoXCIsXCJTYW1lIHBhZ2UgYWxyZWFkeSBleGlzdHNcIjpcIlNhbWUgcGFnZSBhbHJlYWR5IGV4aXN0c1wifSxcImhlbHBcIjp7XCJyZWN1cnNpdmVcIjpcIkR1cGxpY2F0ZSBjaGlsZHJlbiBvZiB1bmRlciB0aGlzIHBhdGggcmVjdXJzaXZlbHlcIn19LFwibW9kYWxfcHV0YmFja1wiOntcImxhYmVsXCI6e1wiUHV0IEJhY2sgUGFnZVwiOlwiUHV0IGJhY2sgcGFnZVwiLFwicmVjdXJzaXZlbHlcIjpcIlB1dCBiYWNrIHJlY3Vyc2l2ZWx5XCJ9LFwiaGVscFwiOntcInJlY3Vyc2l2ZWx5XCI6XCJQdXQgYmFjayBwYWdlIHVuZGVyIHRoaXMgcGF0aCByZWN1cnNpdmVseVwifX0sXCJtb2RhbF9zaG9ydGN1dHNcIjp7XCJnbG9iYWxcIjp7XCJ0aXRsZVwiOlwiR2xvYmFsIHNob3J0Y3V0c1wiLFwiT3Blbi9DbG9zZSBzaG9ydGN1dCBoZWxwXCI6XCJPcGVuL0Nsb3NlPGJyPnNob3J0Y3V0IGhlbHBcIixcIkVkaXQgUGFnZVwiOlwiRWRpdCBQYWdlXCIsXCJDcmVhdGUgUGFnZVwiOlwiQ3JlYXRlIFBhZ2VcIixcIlNob3cgQ29udHJpYnV0b3JzXCI6XCJTaG93IENvbnRyaWJ1dG9yc1wiLFwiTWlycm9yTW9kZVwiOlwiTWlycm9yIE1vZGVcIixcIktvbmFtaSBDb2RlXCI6XCJLb25hbWkgQ29kZVwiLFwia29uYW1pX2NvZGVfdXJsXCI6XCJodHRwczovL2VuLndpa2lwZWRpYS5vcmcvd2lraS9Lb25hbWlfQ29kZVwifSxcImVkaXRvclwiOntcInRpdGxlXCI6XCJFZGl0b3Igc2hvcnRjdXRzXCIsXCJJbmRlbnRcIjpcIkluZGVudFwiLFwiT3V0ZGVudFwiOlwiT3V0ZGVudFwiLFwiU2F2ZSBQYWdlXCI6XCJTYXZlIFBhZ2VcIixcIkRlbGV0ZSBMaW5lXCI6XCJEZWxldGUgTGluZVwifSxcImNvbW1lbnRmb3JtXCI6e1widGl0bGVcIjpcIkNvbW1lbnQgRm9ybSBzaG9ydGN1dHNcIixcIlBvc3RcIjpcIlBvc3RcIn19LFwibGlua19lZGl0XCI6e1wiZWRpdF9saW5rXCI6XCJFZGl0IExpbmtcIixcInNldF9saW5rX2FuZF9sYWJlbFwiOlwiU2V0IGxpbmsgYW5kIGxhYmVsXCIsXCJsaW5rXCI6XCJMaW5rXCIsXCJwbGFjZWhvbGRlcl9vZl9saW5rX2lucHV0XCI6XCJJbnB1dCBwYWdlIHBhdGggb3IgVVJMXCIsXCJsYWJlbFwiOlwiTGFiZWxcIixcInBhdGhfZm9ybWF0XCI6XCJQYXRoIGZvcm1hdFwiLFwidXNlX3JlbGF0aXZlX3BhdGhcIjpcIlVzZSByZWxhdGl2ZSBwYXRoXCIsXCJ1c2VfcGVybWFuZW50X2xpbmtcIjpcIlVzZSBwZXJtYW5lbnQgbGlua1wiLFwibm90YXRpb25cIjpcIk5vdGF0aW9uXCIsXCJtYXJrZG93blwiOlwiTWFya2Rvd25cIixcIkdST1dJX29yaWdpbmFsXCI6XCJHUk9XSSBvcmlnaW5hbFwiLFwicHVraXdpa2lcIjpcIlB1a2l3aWtpXCIsXCJwcmV2aWV3XCI6XCJQcmV2aWV3XCIsXCJwYWdlX25vdF9mb3VuZF9pbl9wcmV2aWV3XCI6XCJcXFwie3twYXRofX1cXFwiIGlzIG5vdCBhIEdST1dJIHBhZ2UuXCJ9LFwidG9hc3RlclwiOntcInVwZGF0ZV9zdWNjZXNzZWRcIjpcIlN1Y2NlZWRlZCB0byB1cGRhdGUge3t0YXJnZXR9fVwiLFwiaW5pdGlhbGl6ZV9zdWNjZXNzZWRcIjpcIlN1Y2NlZWRlZCB0byBpbml0aWFsaXplIHt7dGFyZ2V0fX1cIixcImdpdmVfdXNlcl9hZG1pblwiOlwiU3VjY2VlZGVkIHRvIGdpdmUge3t1c2VybmFtZX19IGFkbWluXCIsXCJyZW1vdmVfdXNlcl9hZG1pblwiOlwiU3VjY2VlZGVkIHRvIHJlbW92ZSB7e3VzZXJuYW1lfX0gYWRtaW5cIixcImRlbGV0ZV9zbGFja19pbnRlZ3JhdGlvbl9wcm9jZWR1cmVcIjpcIlN1Y2NlZWRlZCB0byBkZWxldGUgdGhlIHNsYWNrIGludGVncmF0aW9uIHByb2NlZHVyZVwiLFwiYWN0aXZhdGVfdXNlcl9zdWNjZXNzXCI6XCJTdWNjZWVkZWQgdG8gYWN0aXZhdGluZyB7e3VzZXJuYW1lfX1cIixcImRlYWN0aXZhdGVfdXNlcl9zdWNjZXNzXCI6XCJTdWNjZWVkZWQgdG8gZGVhY3RpdmF0ZSB7e3VzZXJuYW1lfX1cIixcInJlbW92ZV91c2VyX3N1Y2Nlc3NcIjpcIlN1Y2NlZWRlZCB0byByZW1vdmluZyB7e3VzZXJuYW1lfX1cIixcInJlbW92ZV9leHRlcm5hbF91c2VyX3N1Y2Nlc3NcIjpcIlN1Y2NlZWRlZCB0byByZW1vdmUge3thY2NvdW50SWR9fVwiLFwicmVtb3ZlX3NoYXJlX2xpbmtfc3VjY2Vzc1wiOlwiU3VjY2VlZGVkIHRvIHJlbW92ZSB7e3NoYXJlTGlua0lkfX1cIixcImlzc3VlX3NoYXJlX2xpbmtcIjpcIlN1Y2NlZWRlZCB0byBpc3N1ZSBuZXcgc2hhcmUgbGlua1wiLFwicmVtb3ZlX3NoYXJlX2xpbmtcIjpcIlN1Y2NlZWRlZCB0byByZW1vdmUge3tjb3VudH19IHNoYXJlIGxpbmtzXCIsXCJzd2l0Y2hfZGlzYWJsZV9saW5rX3NoYXJpbmdfc3VjY2Vzc1wiOlwiU3VjY2VlZGVkIHRvIHVwZGF0ZSBzaGFyZSBsaW5rIHNldHRpbmdcIixcImZhaWxlZF90b19yZXNldF9wYXNzd29yZFwiOlwiRmFpbGVkIHRvIHJlc2V0IHBhc3N3b3JkXCJ9LFwidGVtcGxhdGVcIjp7XCJtb2RhbF9sYWJlbFwiOntcIkNyZWF0ZS9FZGl0IFRlbXBsYXRlIFBhZ2VcIjpcIkNyZWF0ZS9FZGl0IHRlbXBsYXRlIHBhZ2VcIixcIkNyZWF0ZSB0ZW1wbGF0ZSB1bmRlclwiOlwiQ3JlYXRlIHRlbXBsYXRlIHBhZ2UgdW5kZXIgdGhpcyBwYWdlXCJ9LFwib3B0aW9uX2xhYmVsXCI6e1wiY3JlYXRlL2VkaXRcIjpcIkNyZWF0ZS9FZGl0IHRlbXBsYXRlIHBhZ2UuLlwiLFwic2VsZWN0XCI6XCJTZWxlY3QgdGVtcGxhdGUgcGFnZSB0eXBlXCJ9LFwiY2hpbGRyZW5cIjp7XCJsYWJlbFwiOlwiVGVtcGxhdGUgZm9yIGNoaWxkcmVuXCIsXCJkZXNjXCI6XCJBcHBsaWVzIG9ubHkgdG8gdGhlIHNhbWUgbGV2ZWwgcGFnZXMgd2hpY2ggdGhlIHRlbXBsYXRlIGV4aXN0c1wifSxcImRlY2VuZGFudHNcIjp7XCJsYWJlbFwiOlwiVGVtcGxhdGUgZm9yIGRlc2NlbmRhbnRzXCIsXCJkZXNjXCI6XCJBcHBsaWVzIHRvIGFsbCBkZWNlbmRhbnQgcGFnZXNcIn19LFwic2FuZGJveFwiOntcImhlYWRlclwiOlwiSGVhZGVyXCIsXCJoZWFkZXJfeFwiOlwiSGVhZGVyIHt7aW5kZXh9fVwiLFwiYmxvY2tcIjpcIlBhcmFncmFwaFwiLFwiYmxvY2tfZGV0YWlsXCI6XCJtYWtlcyBhIHBhcmFncmFwaFwiLFwiZW1wdHlfbGluZVwiOlwiRW1wdHkgTGluZVwiLFwibGluZV9icmVha1wiOlwiTGluZSBCcmVha1wiLFwibGluZV9icmVha19kZXRhaWxcIjpcIigyIHNwYWNlcykgbWFrZSBhIGxpbmUgYnJlYWtcIixcInR5cG9ncmFwaHlcIjpcIlR5cG9ncmFwaHlcIixcIml0YWxpY3NcIjpcIkl0YWxpY3NcIixcImJvbGRcIjpcIkJvbGRcIixcIml0YWxpY19ib2xkXCI6XCJJdGFsaWMgQm9sZFwiLFwic3RyaWtldGhyb3VnaFwiOlwic3RyaWtldGhyb3VnaFwiLFwibGlua1wiOlwiTGlua1wiLFwiY29kZV9oaWdobGlnaHRcIjpcIkNvZGUgSGlnaGxpZ2h0XCIsXCJsaXN0XCI6XCJMaXN0XCIsXCJ1bm9yZGVyZWRfbGlzdF94XCI6XCJVbm9yZGVyZWQgTGlzdCB7e2luZGV4fX1cIixcIm9yZGVyZWRfbGlzdF94XCI6XCJPcmRlcmVkIExpc3Qge3tpbmRleH19XCIsXCJ0YXNrXCI6XCJUYXNrXCIsXCJ0YXNrX2NoZWNrZWRcIjpcIkNoZWNrZWRcIixcInRhc2tfdW5jaGVja2VkXCI6XCJVbmNoZWNrZWRcIixcInF1b3RlXCI6XCJRdW90ZVwiLFwicXVvdGUxXCI6XCJZb3UgY2FuIHdyaXRlXCIsXCJxdW90ZTJcIjpcIm11bHRpLWxpbmUgcXVvdGF0aW9uc1wiLFwicXVvdGVfbmVzdGVkXCI6XCJOZXN0ZWQgUXVvdGVcIixcInRhYmxlXCI6XCJUYWJsZVwiLFwiaW1hZ2VcIjpcIkltYWdlXCIsXCJhbHRfdGV4dFwiOlwiQWx0IFRleHRcIixcImluc2VydF9pbWFnZVwiOlwiaW5zZXJ0cyBhbiBpbWFnZVwiLFwib3Blbl9zYW5kYm94XCI6XCJPcGVuIFNhbmRib3hcIn0sXCJoYWNrbWRcIjp7XCJoYWNrX21kXCI6XCJIYWNrTURcIixcIm5vdF9zZXRfdXBcIjpcIkhhY2tNRCBpcyBub3Qgc2V0IHVwLlwiLFwidXNlZF9mb3Jfbm90X2ZvdW5kXCI6XCJDYW4gbm90IHVzZSBIYWNrTUQgdG8gYSBwYWdlIHRoYXQgZG9lcyBub3QgZXhpc3QuXCIsXCJzdGFydF90b19lZGl0XCI6XCJTdGFydCB0byBlZGl0IHdpdGggSGFja01EXCIsXCJjbG9uZV9wYWdlX2NvbnRlbnRcIjpcIkNsaWNrIHRvIGNsb25lIHBhZ2UgY29udGVudCBhbmQgc3RhcnQgdG8gZWRpdC5cIixcInVuc2F2ZWRfZHJhZnRcIjpcIkhhY2tNRCBoYXMgdW5zYXZlZCBkcmFmdC5cIixcImRyYWZ0X291dGRhdGVkXCI6XCJEUkFGVCBNQVkgQkUgT1VUREFURURcIixcImJhc2VkX29uX3JldmlzaW9uXCI6XCJUaGUgY3VycmVudCBkcmFmdCBvbiBIYWNrTUQgaXMgYmFzZWQgb25cIixcInZpZXdfb3V0ZGF0ZWRfZHJhZnRcIjpcIlZpZXcgdGhlIG91dGRhdGVkIGRyYWZ0IG9uIEhhY2tNRFwiLFwicmVzdW1lX3RvX2VkaXRcIjpcIlJlc3VtZSB0byBlZGl0IHdpdGggSGFja01EXCIsXCJkaXNjYXJkX2NoYW5nZXNcIjpcIkRpc2NhcmQgY2hhbmdlcyBvZiBIYWNrTURcIixcImludGVncmF0aW9uX2ZhaWxlZFwiOlwiSGFja01EIEludGVncmF0aW9uIGZhaWxlZFwiLFwiZmFpbF90b19jb25uZWN0XCI6XCJHUk9XSSBjbGllbnQgZmFpbGVkIHRvIGNvbm5lY3QgdG8gR1JPV0kgYWdlbnQgZm9yIEhhY2tNRC5cIixcImNoZWNrX2NvbmZpZ3VyYXRpb25cIjpcIkNoZWNrIHlvdXIgY29uZmlndXJhdGlvbiBmb2xsb3dpbmcgPGEgaHJlZj0naHR0cHM6Ly9kb2NzLmdyb3dpLm9yZy9ndWlkZS9hZG1pbi1jb29rYm9vay9pbnRlZ3JhdGUtd2l0aC1oYWNrbWQuaHRtbCc+dGhlIG1hbnVhbDwvYT4uXCIsXCJub3RfaW5pdGlhbGl6ZWRcIjpcIkhhY2ttZEVkaXRvciBjb21wb25lbnQgaGFzIG5vdCBpbml0aWFsaXplZFwiLFwic29tZW9uZV9lZGl0aW5nXCI6XCJTb21lb25lIGVkaXRpbmcgdGhpcyBwYWdlIG9uIEhhY2tNRFwiLFwidGhpc19wYWdlX2hhc19kcmFmdFwiOlwiVGhpcyBwYWdlIGhhcyBhIGRyYWZ0IG9uIEhhY2tNRFwiLFwibmVlZF90b19hc3NvY2lhdGVfd2l0aF9ncm93aV90b191c2VfaGFja21kX3JlZmVyX3RvX3RoaXNcIjpcIlRvIHVzZSBIYWNrTUQgZm9yIHNpbXVsdGFuZW91cyBtdWx0aS1wZXJzb24gZWRpdGluZywgbmVlZCB0byBhc3NvY2lhdGUgSGFja01EIHdpdGggR1JPV0kuUGxlYXNlIHJlZmVyIHRvIDxhIGhyZWY9J2h0dHBzOi8vZG9jcy5ncm93aS5vcmcvZW4vYWRtaW4tZ3VpZGUvYWRtaW4tY29va2Jvb2svaW50ZWdyYXRlLXdpdGgtaGFja21kLmh0bWwnPmhlcmU8L2E+LlwiLFwibmVlZF90b19tYWtlX3BhZ2VcIjpcIlRvIHVzZSBIYWNrTUQsIHBsZWFzZSBtYWtlIGEgbmV3IHBhZ2UgZnJvbSB0aGUgPGEgaHJlZj0nI2VkaXQnPmJ1aWx0LWluIGVkaXRvci48L2E+XCJ9LFwic2xhY2tfbm90aWZpY2F0aW9uXCI6e1wicG9wb3Zlcl90aXRsZVwiOlwiU2xhY2sgTm90aWZpY2F0aW9uXCIsXCJwb3BvdmVyX2Rlc2NcIjpcIklucHV0IGNoYW5uZWwgbmFtZS4gWW91IGNhbiBub3RpZnkgbXVsdGlwbGUgY2hhbm5lbHMgYnkgZW50ZXJpbmcgYSBjb21tYS1zZXBhcmF0ZWQgbGlzdC5cIn0sXCJzZWFyY2hfcmVzdWx0XCI6e1wicmVzdWx0X21ldGFcIjpcIkZvdW5kIFxcXCJ7e2tleXdvcmR9fVxcXCIgaW4ge3t0b3RhbH19LlwiLFwiZGVsZXRpb25fbW9kZV9idG5fbGF2ZWxcIjpcIlNlbGVjdCBhbmQgZGVsZXRlIHBhZ2VcIixcImNhbmNlbFwiOlwiQ2FuY2VsXCIsXCJkZWxldGVcIjpcIkRlbGV0ZVwiLFwiY2hlY2tfYWxsXCI6XCJDaGVjayBhbGxcIixcImRlbGV0aW9uX21vZGFsX2hlYWRlclwiOlwiRGVsZXRlIHBhZ2VcIixcImRlbGV0ZV9jb21wbGV0ZWx5XCI6XCJEZWxldGUgY29tcGxldGVseVwifSxcInNlY3VyaXR5X3NldHRpbmdcIjp7XCJHdWVzdCBVc2VycyBBY2Nlc3NcIjpcIkd1ZXN0IHVzZXJzIGFjY2Vzc1wiLFwiRml4ZWQgYnkgZW52IHZhclwiOlwiVGhpcyBpcyBmaXhlZCBieSB0aGUgZW52IHZhciA8Y29kZT4lcz0lczwvY29kZT4uXCIsXCJSZWdpc3RlciBsaW1pdGF0aW9uXCI6XCJSZWdpc3RlciBsaW1pdGF0aW9uXCIsXCJSZWdpc3RlciBsaW1pdGF0aW9uIGRlc2NcIjpcIlJlc3RyaWN0aW9uIG9mIG5ldyB1c2VycycgcmVnaXN0cmF0aW9uXCIsXCJUaGUgd2hpdGVsaXN0IG9mIHJlZ2lzdHJhdGlvbiBwZXJtaXNzaW9uIEUtbWFpbCBhZGRyZXNzXCI6XCJUaGUgd2hpdGVsaXN0IG9mIHJlZ2lzdHJhdGlvbiBwZXJtaXNzaW9uIEUtbWFpbCBhZGRyZXNzXCIsXCJ1c2Vyc193aXRob3V0X2FjY291bnRcIjpcIlVzZXJzIHdpdGhvdXQgYWNjb3VudCBpcyBub3QgYWNjZXNzaWJsZVwiLFwiZXhhbXBsZVwiOlwiRXhhbXBsZVwiLFwicmVzdHJpY3RfZW1haWxzXCI6XCJZb3UgY2FuIHJlc3RyaWN0IGVtYWlsIHJlZ2lzdHJhdGlvbiB0byB5b3VyIHdpa2kgYnkgd3JpdGluZyBhbiBlbWFpbCBkb21haW4gKGJlZ2lubmluZyB3aXRoIEApLiBcIixcImZvcl9leGFtcGxlXCI6XCIgRm9yIGV4YW1wbGUsIGlmIHlvdSB3b3VsZCBsaWtlIHRvIHJlc3RyaWN0IHJlZ2lzdHJhdGlvbiB0byB1c2VycyB3aXRoaW4gdGhlIGdyb3dpLm9yZyBkb21haW4sIHlvdSBjYW4gd3JpdGUgXCIsXCJpbl90aGlzX2Nhc2VcIjpcIjsgaW4gdGhpcyBjYXNlLCBvbmx5IHVzZXJzIHdpdGhpbiB0aGUgZ3Jvd2kub3JnIGRvbWFpbiB3b3VsZCBiZSBhYmxlIHRvIHJlZ2lzdGVyLCBhbmQgYWxsIG90aGVyIHVzZXJzIHdvdWxkIGJlIHJlamVjdGVkLlwiLFwiaW5zZXJ0X3NpbmdsZVwiOlwiUGxlYXNlIGluc2VydCBzaW5nbGUgZS1tYWlsIGFkZHJlc3MgcGVyIGxpbmUuXCIsXCJwYWdlX2xpc3RfYW5kX3NlYXJjaF9yZXN1bHRzXCI6XCJQYWdlIGxpc3QgLyBTZWFyY2ggcmVzdWx0c1wiLFwicGFnZV9saXN0aW5nXzFcIjpcIlBhZ2UgbGlzdGluZy9zZWFyY2hpbmc8YnI+cmVzdHJpY3RlZCBieSAnT25seSBtZSdcIixcInBhZ2VfbGlzdGluZ18xX2Rlc2NcIjpcIlNob3cgcGFnZXMgdGhhdCBhcmUgcmVzdHJpY3RlZCBieSAnT25seSBtZScgb3B0aW9uIHdoZW4gbGlzdGluZy9zZWFyY2hpbmdcIixcInBhZ2VfbGlzdGluZ18yXCI6XCJQYWdlIGxpc3Rpbmcvc2VhcmNoaW5nPGJyPnJlc3RyaWN0ZWQgYnkgVXNlciBncm91cFwiLFwicGFnZV9saXN0aW5nXzJfZGVzY1wiOlwiU2hvdyBwYWdlcyB0aGF0IGFyZSByZXN0cmljdGVkIGJ5IFVzZXIgZ3JvdXAgd2hlbiBsaXN0aW5nL3NlYXJjaGluZ1wiLFwicGFnZV9hY2Nlc3NfYW5kX2RlbGV0ZV9yaWdodHNcIjpcIlBhZ2UgYWNjZXNzIC8gRGVsZXRlIHJpZ2h0c1wiLFwiY29tcGxldGVfZGVsZXRpb25cIjpcIlJlc3RyaWN0IGNvbXBsZXRlIGRlbGV0aW9uIG9mIHBhZ2VzXCIsXCJjb21wbGV0ZV9kZWxldGlvbl9leHBsYWluXCI6XCJSZXN0cmljdHMgdXNlcnMgd2hvIGNhbiBjb21wbGV0ZWx5IGRlbGV0ZSBwYWdlcy5cIixcImFkbWluX29ubHlcIjpcIkFkbWluIG9ubHlcIixcImFkbWluX2FuZF9hdXRob3JcIjpcIkFkbWluIGFuZCBhdXRob3JcIixcImFueW9uZVwiOlwiQW55b25lXCIsXCJzZXNzaW9uXCI6XCJTZXNzaW9uXCIsXCJtYXhfYWdlXCI6XCJNYXggYWdlIChtc2VjKVwiLFwibWF4X2FnZV9kZXNjXCI6XCJTcGVjaWZpZXMgdGhlIG51bWJlciAoaW4gbWlsbGlzZWNvbmRzKSB0byBleHBpcmUgdXNlcnMgc2Vzc2lvbi48YnI+RGVmYXVsdDogMjU5MjAwMDAwMCAoMzBkYXlzKVwiLFwibWF4X2FnZV9jYXV0aW9uXCI6XCJSZXN0YXJ0aW5nIHRoZSBzZXJ2ZXIgaXMgcmVxdWlyZWQgYWZ0ZXIgeW91IG1vZGlmeSB0aGlzIHZhbHVlLlwiLFwiQXV0aGVudGljYXRpb24gbWVjaGFuaXNtIHNldHRpbmdzXCI6XCJBdXRoZW50aWNhdGlvbiBNZWNoYW5pc20gU2V0dGluZ3NcIixcInNldHVwX2lzX25vdF95ZXRfY29tcGxldGVcIjpcIlNldHVwIGlzIG5vdCB5ZXQgY29tcGxldGVcIixcImFsZXJ0X3NpdGVVcmxfaXNfbm90X3NldFwiOlwiJ1NpdGUgVVJMJyBpcyBOT1Qgc2V0LiBTZXQgaXQgZnJvbSB0aGUge3tsaW5rfX1cIixcInhzc19wcmV2ZW50X3NldHRpbmdcIjpcIlByZXZlbnQgWFNTKENyb3NzIFNpdGUgU2NyaXB0aW5nKVwiLFwieHNzX3ByZXZlbnRfc2V0dGluZ19saW5rXCI6XCJHbyB0byBNYXJrZG93biBTZXR0aW5nc1wiLFwiY2FsbGJhY2tfVVJMXCI6XCJDYWxsYmFjayBVUkxcIixcInByb3ZpZGVyTmFtZVwiOlwiUHJvdmlkZXIgTmFtZVwiLFwiaXNzdWVySG9zdFwiOlwiSXNzdWVyIEhvc3RcIixcInNjb3BlXCI6XCJTY29wZVwiLFwiZGVzY19vZl9jYWxsYmFja19VUkxcIjpcIlVzZSBpdCBpbiB0aGUgc2V0dGluZyBvZiB0aGUge3tBdXRoTmFtZX19IElkZW50aXR5IHByb3ZpZGVyXCIsXCJhdXRob3JpemF0aW9uX2VuZHBvaW50XCI6XCJBdXRob3JpemF0aW9uIEVuZHBvaW50XCIsXCJ0b2tlbl9lbmRwb2ludFwiOlwiVG9rZW4gRW5kcG9pbnRcIixcInJldm9jYXRpb25fZW5kcG9pbnRcIjpcIlJldm9jYXRpb24gRW5kcG9pbnRcIixcImludHJvc3BlY3Rpb25fZW5kcG9pbnRcIjpcIkludHJvc3BlY3Rpb24gRW5kcG9pbnRcIixcInVzZXJpbmZvX2VuZHBvaW50XCI6XCJVc2VySW5mbyBFbmRwb2ludFwiLFwiZW5kX3Nlc3Npb25fZW5kcG9pbnRcIjpcIkVuZFNlc3Npb2luIEVuZHBvaW50XCIsXCJyZWdpc3RyYXRpb25fZW5kcG9pbnRcIjpcIlJlZ2lzdHJhdGlvbiBFbmRwb2ludFwiLFwiandrc191cmlcIjpcIkpTT04gV2ViIEtleSBTZXQgVVJMXCIsXCJjbGllbnRJRFwiOlwiQ2xpZW50IElEXCIsXCJjbGllbnRfc2VjcmV0XCI6XCJDbGllbnQgU2VjcmV0XCIsXCJ1cGRhdGVkX2dlbmVyYWxfc2VjdXJpdHlfc2V0dGluZ1wiOlwiU3VjY2VlZGVkIHRvIHVwZGF0ZSBzZWN1cml0eSBzZXR0aW5nXCIsXCJzZXR1cF9ub3RfY29tcGxldGVkX3lldFwiOlwiU2V0dXAgbm90IGNvbXBsZXRlZCB5ZXRcIixcImd1ZXN0X21vZGVcIjp7XCJkZW55XCI6XCJEZW55IChSZWdpc3RlcmVkIHVzZXJzIG9ubHkpXCIsXCJyZWFkb25seVwiOlwiQWNjZXB0IChHdWVzdHMgY2FuIHJlYWQgb25seSlcIn0sXCJyZWdpc3RyYXRpb25fbW9kZVwiOntcIm9wZW5cIjpcIk9wZW4gKEFueW9uZSBjYW4gcmVnaXN0ZXIpXCIsXCJyZXN0cmljdGVkXCI6XCJSZXN0cmljdGVkIChSZXF1aXJlcyBhcHByb3ZhbCBieSBhZG1pbmlzdHJhdG9ycylcIixcImNsb3NlZFwiOlwiQ2xvc2VkIChJbnZpdGF0aW9uIE9ubHkpXCJ9LFwic2hhcmVfbGlua19yaWdodHNcIjpcIlNoYXJlIGxpbmsgcmlnaHRzXCIsXCJlbmFibGVfbGlua19zaGFyaW5nXCI6XCJFbmFibGUgbGluayBzaGFyaW5nXCIsXCJhbGxfc2hhcmVfbGlua3NcIjpcIkFsbCBzaGFyZSBsaW5rc1wiLFwiY29uZmlndXJhdGlvblwiOlwiIENvbmZpZ3VyYXRpb25cIixcIm9wdGlvbmFsXCI6XCJPcHRpb25hbFwiLFwiVHJlYXQgdXNlcm5hbWUgbWF0Y2hpbmcgYXMgaWRlbnRpY2FsXCI6XCJBdXRvbWF0aWNhbGx5IGJpbmQgZXh0ZXJuYWwgYWNjb3VudHMgbmV3bHkgbG9nZ2VkIGluIHRvIGxvY2FsIGFjY291bnRzIHdoZW4gPGNvZGU+dXNlcm5hbWU8L2NvZGU+IG1hdGNoXCIsXCJUcmVhdCB1c2VybmFtZSBtYXRjaGluZyBhcyBpZGVudGljYWxfd2FyblwiOlwiV0FSTklORzogQmUgYXdhcmUgb2Ygc2VjdXJpdHkgYmVjYXVzZSB0aGUgc3lzdGVtIHRyZWF0cyB0aGUgc2FtZSB1c2VyIGFzIGEgbWF0Y2ggb2YgPGNvZGU+dXNlcm5hbWU8L2NvZGU+LlwiLFwiVHJlYXQgZW1haWwgbWF0Y2hpbmcgYXMgaWRlbnRpY2FsXCI6XCJBdXRvbWF0aWNhbGx5IGJpbmQgZXh0ZXJuYWwgYWNjb3VudHMgbmV3bHkgbG9nZ2VkIGluIHRvIGxvY2FsIGFjY291bnRzIHdoZW4gPGNvZGU+ZW1haWw8L2NvZGU+IG1hdGNoXCIsXCJUcmVhdCBlbWFpbCBtYXRjaGluZyBhcyBpZGVudGljYWxfd2FyblwiOlwiV0FSTklORzogQmUgYXdhcmUgb2Ygc2VjdXJpdHkgYmVjYXVzZSB0aGUgc3lzdGVtIHRyZWF0cyB0aGUgc2FtZSB1c2VyIGFzIGEgbWF0Y2ggb2YgPGNvZGU+ZW1haWw8L2NvZGU+LlwiLFwiVXNlIGVudiB2YXIgaWYgZW1wdHlcIjpcIlVzZSBlbnYgdmFyIDxjb2RlPnt7ZW52fX08L2NvZGU+IGlmIGVtcHR5XCIsXCJVc2UgZGVmYXVsdCBpZiBib3RoIGFyZSBlbXB0eVwiOlwiSWYgYm90aCDigIvigIthcmUgZW1wdHksIHRoZSBkZWZhdWx0IHZhbHVlIDxjb2RlPnt7dGFyZ2V0fX08L2NvZGU+IGlzIHVzZWQuXCIsXCJtaXNzaW5nIG1hbmRhdG9yeSBjb25maWdzXCI6XCJUaGUgZm9sbG93aW5nIG1hbmRhdG9yeSBpdGVtcyBhcmUgbm90IHNldCBpbiBlaXRoZXIgZGF0YWJhc2Ugbm9yIGVudmlyb25tZW50IHZhcmlhYmxlcy5cIixcIkxvY2FsXCI6e1wibmFtZVwiOlwiSUQvUGFzc3dvcmRcIixcIm5vdGUgZm9yIHRoZSBvbmx5IGVudiBvcHRpb25cIjpcIlRoZSBMT0NBTCBhdXRoZW50aWNhdGlvbiBpcyBsaW1pdGVkIGJ5IHRoZSB2YWx1ZSBvZiBlbnZpcm9ubWVudCB2YXJpYWJsZS48YnI+VG8gY2hhbmdlIHRoaXMgc2V0dGluZywgcGxlYXNlIGNoYW5nZSB0byBmYWxzZSBvciBkZWxldGUgdGhlIHZhbHVlIG9mIHRoZSBlbnZpcm9ubWVudCB2YXJpYWJsZSA8Y29kZT57e2Vudn19PC9jb2RlPiAuXCIsXCJlbmFibGVfbG9jYWxcIjpcIkVuYWJsZSBJRC9QYXNzd29yZFwifSxcImxkYXBcIjp7XCJlbmFibGVfbGRhcFwiOlwiRW5hYmxlIExEQVBcIixcInNlcnZlcl91cmxfZGV0YWlsXCI6XCJUaGUgTERBUCBVUkwgb2YgdGhlIGRpcmVjdG9yeSBzZXJ2aWNlIGluIHRoZSBmb3JtYXQgPGNvZGU+bGRhcDovL2hvc3Q6cG9ydC9ETjwvY29kZT4gb3IgPGNvZGU+bGRhcHM6Ly9ob3N0OnBvcnQvRE48L2NvZGU+LlwiLFwiYmluZF9tb2RlXCI6XCJCaW5kaW5nIE1vZGVcIixcImJpbmRfbWFuYWdlclwiOlwiTWFuYWdlciBCaW5kXCIsXCJiaW5kX3VzZXJcIjpcIlVzZXIgQmluZFwiLFwiYmluZF9ETl9tYW5hZ2VyX2RldGFpbFwiOlwiVGhlIEROIG9mIHRoZSBhY2NvdW50IHRoYXQgYXV0aGVudGljYXRlcyBhbmQgcXVlcmllcyB0aGUgZGlyZWN0b3J5IHNlcnZpY2VcIixcImJpbmRfRE5fdXNlcl9kZXRhaWwxXCI6XCJUaGUgcXVlcnkgdXNlZCB0byBiaW5kIHdpdGggdGhlIGRpcmVjdG9yeSBzZXJ2aWNlLlwiLFwiYmluZF9ETl91c2VyX2RldGFpbDJcIjpcIlVzZSA8Y29kZT4mIzEyMzsmIzEyMzt1c2VybmFtZSYjMTI1OyYjMTI1OzwvY29kZT4gdG8gcmVmZXJlbmNlIHRoZSB1c2VybmFtZSBlbnRlcmVkIGluIHRoZSBsb2dpbiBwYWdlLlwiLFwiYmluZF9ETl9wYXNzd29yZFwiOlwiQmluZCBETiBQYXNzd29yZFwiLFwiYmluZF9ETl9wYXNzd29yZF9tYW5hZ2VyX2RldGFpbFwiOlwiVGhlIHBhc3N3b3JkIGZvciB0aGUgQmluZCBETiBhY2NvdW50LlwiLFwiYmluZF9ETl9wYXNzd29yZF91c2VyX2RldGFpbFwiOlwiVGhlIHBhc3N3b3JkIHRoYXQgaXMgZW50ZXJlZCBpbiB0aGUgbG9naW4gcGFnZSB3aWxsIGJlIHVzZWQgdG8gYmluZC5cIixcInNlYXJjaF9maWx0ZXJcIjpcIlNlYXJjaCBGaWx0ZXJcIixcInNlYXJjaF9maWx0ZXJfZGV0YWlsMVwiOlwiVGhlIHF1ZXJ5IHVzZWQgdG8gbG9jYXRlIHRoZSBhdXRoZW50aWNhdGVkIHVzZXIuXCIsXCJzZWFyY2hfZmlsdGVyX2RldGFpbDJcIjpcIlVzZSA8Y29kZT4mIzEyMzsmIzEyMzt1c2VybmFtZSYjMTI1OyYjMTI1OzwvY29kZT4gdG8gcmVmZXJlbmNlIHRoZSB1c2VybmFtZSBlbnRlcmVkIGluIHRoZSBsb2dpbiBwYWdlLlwiLFwic2VhcmNoX2ZpbHRlcl9kZXRhaWwzXCI6XCJJZiBlbXB0eSwgdGhlIGZpbHRlciA8Y29kZT4odWlkPSYjMTIzOyYjMTIzO3VzZXJuYW1lJiMxMjU7JiMxMjU7KTwvY29kZT4gaXMgdXNlZC5cIixcInNlYXJjaF9maWx0ZXJfZXhhbXBsZTFcIjpcIk1hdGNoIHdpdGggJ3VpZCcgb3IgJ21haWwnXCIsXCJzZWFyY2hfZmlsdGVyX2V4YW1wbGUyXCI6XCJNYXRjaCB3aXRoICdzQU1BY2NvdW50TmFtZScgZm9yIEFjdGl2ZSBEaXJlY3RvcnlcIixcInVzZXJuYW1lX2RldGFpbFwiOlwiU3BlY2lmaWNhdGlvbiBvZiBtYXBwaW5ncyBmb3IgPGNvZGU+dXNlcm5hbWU8L2NvZGU+IHdoZW4gY3JlYXRpbmcgbmV3IHVzZXJzXCIsXCJuYW1lX2RldGFpbFwiOlwiU3BlY2lmaWNhdGlvbiBvZiBtYXBwaW5ncyBmb3IgZnVsbCBuYW1lIHdoZW4gY3JlYXRpbmcgbmV3IHVzZXJzXCIsXCJtYWlsX2RldGFpbFwiOlwiU3BlY2lmaWNhdGlvbiBvZiBtYXBwaW5ncyBmb3IgbWFpbCBhZGRyZXNzIHdoZW4gY3JlYXRpbmcgbmV3IHVzZXJzXCIsXCJncm91cF9zZWFyY2hfYmFzZV9ETlwiOlwiR3JvdXAgU2VhcmNoIEJhc2UgRE5cIixcImdyb3VwX3NlYXJjaF9iYXNlX0ROX2RldGFpbFwiOlwiVGhlIGJhc2UgRE4gZnJvbSB3aGljaCB0byBzZWFyY2ggZm9yIGdyb3Vwcy4gSWYgZGVmaW5lZCwgYWxzbyA8Y29kZT5Hcm91cCBTZWFyY2ggRmlsdGVyPC9jb2RlPiBtdXN0IGJlIGRlZmluZWQgZm9yIHRoZSBzZWFyY2ggdG8gd29yay5cIixcImdyb3VwX3NlYXJjaF9maWx0ZXJcIjpcIkdyb3VwIFNlYXJjaCBGaWx0ZXJcIixcImdyb3VwX3NlYXJjaF9maWx0ZXJfZGV0YWlsMVwiOlwiVGhlIHF1ZXJ5IHVzZWQgdG8gZmlsdGVyIGZvciBncm91cHMuXCIsXCJncm91cF9zZWFyY2hfZmlsdGVyX2RldGFpbDJcIjpcIkxvZ2luIHZpYSBMREFQIGlzIGFjY2VwdGVkIG9ubHkgd2hlbiB0aGlzIHF1ZXJ5IGhpdHMgb25lIG9yIG1vcmUgZ3JvdXBzLlwiLFwiZ3JvdXBfc2VhcmNoX2ZpbHRlcl9kZXRhaWwzXCI6XCJVc2UgPGNvZGU+JiMxMjM7JiMxMjM7ZG4mIzEyNTsmIzEyNTs8L2NvZGU+IHRvIGhhdmUgaXQgcmVwbGFjZWQgb2YgdGhlIGZvdW5kIHVzZXIgb2JqZWN0LlwiLFwiZ3JvdXBfc2VhcmNoX2ZpbHRlcl9kZXRhaWw0XCI6XCI8Y29kZT4oJihjbj1ncm91cDEpKG1lbWJlclVpZD0mIzEyMzsmIzEyMztkbiYjMTI1OyYjMTI1OykpPC9jb2RlPiBoaXRzIHRoZSBncm91cHMgd2hpY2ggaGFzIDxjb2RlPmNuPWdyb3VwMTwvY29kZT4gYW5kIDxjb2RlPm1lbWJlclVpZDwvY29kZT4gaW5jbHVkZXMgdGhlIHVzZXIncyA8Y29kZT51aWQ8L2NvZGU+KHdoZW4gPGNvZGU+R3JvdXAgRE4gUHJvcGVydHk8L2NvZGU+IGlzIG5vdCBjaGFuZ2VkIGZyb20gdGhlIGRlZmF1bHQgdmFsdWUuKVwiLFwiZ3JvdXBfc2VhcmNoX3VzZXJfRE5fcHJvcGVydHlcIjpcIlVzZXIgRE4gUHJvcGVydHlcIixcImdyb3VwX3NlYXJjaF91c2VyX0ROX3Byb3BlcnR5X2RldGFpbFwiOlwiVGhlIHByb3BlcnR5IG9mIHVzZXIgb2JqZWN0IHRvIHVzZSBpbiA8Y29kZT4mIzEyMzsmIzEyMztkbiYjMTI1OyYjMTI1OzwvY29kZT4gaW50ZXJwb2xhdGlvbiBvZiA8Y29kZT5Hcm91cCBTZWFyY2ggRmlsdGVyPC9jb2RlPi5cIixcInRlc3RfY29uZmlnXCI6XCJUZXN0IFNhdmVkIENvbmZpZ3VyYXRpb25cIixcInVwZGF0ZWRfbGRhcFwiOlwiU3VjY2VlZGVkIHRvIHVwZGF0ZSBMREFQIHNldHRpbmdcIn0sXCJTQU1MXCI6e1wibmFtZVwiOlwiU0FNTFwiLFwiZW5hYmxlX3NhbWxcIjpcIkVuYWJsZSBTQU1MXCIsXCJpZF9kZXRhaWxcIjpcIlNwZWNpZmljYXRpb24gb2YgdGhlIG5hbWUgb2YgYXR0cmlidXRlIHdoaWNoIGNhbiBpZGVudGlmeSB0aGUgdXNlciBpbiBTQU1MIElkZW50aXR5IFByb3ZpZGVyXCIsXCJ1c2VybmFtZV9kZXRhaWxcIjpcIlNwZWNpZmljYXRpb24gb2YgbWFwcGluZ3MgZm9yIDxjb2RlPnVzZXJuYW1lPC9jb2RlPiB3aGVuIGNyZWF0aW5nIG5ldyB1c2Vyc1wiLFwibWFwcGluZ19kZXRhaWxcIjpcIlNwZWNpZmljYXRpb24gb2YgbWFwcGluZ3MgZm9yIHt7dGFyZ2V0fX0gd2hlbiBjcmVhdGluZyBuZXcgdXNlcnNcIixcImNlcnRfZGV0YWlsXCI6XCJQRU0tZW5jb2RlZCBYLjUwOSBzaWduaW5nIGNlcnRpZmljYXRlIHRvIHZhbGlkYXRlIHRoZSByZXNwb25zZSBmcm9tIElkUFwiLFwiVXNlIGVudiB2YXIgaWYgZW1wdHlcIjpcIklmIHRoZSB2YWx1ZSBpbiB0aGUgZGF0YWJhc2UgaXMgZW1wdHksIHRoZSB2YWx1ZSBvZiB0aGUgZW52aXJvbm1lbnQgdmFyaWFibGUgPGNvZGU+e3tlbnZ9fTwvY29kZT4gaXMgdXNlZC5cIixcIm5vdGUgZm9yIHRoZSBvbmx5IGVudiBvcHRpb25cIjpcIlRoZSBzZXR0aW5nIGl0ZW0gdGhhdCBlbmFibGVzIG9yIGRpc2FibGVzIHRoZSBTQU1MIGF1dGhlbnRpY2F0aW9uIGFuZCB0aGUgaGlnaGxpZ2h0ZWQgc2V0dGluZyBpdGVtcyB1c2Ugb25seSB0aGUgdmFsdWUgb2YgZW52aXJvbm1lbnQgdmFyaWFibGVzLjxicj5UbyBjaGFuZ2UgdGhpcyBzZXR0aW5nLCBwbGVhc2UgY2hhbmdlIHRvIGZhbHNlIG9yIGRlbGV0ZSB0aGUgdmFsdWUgb2YgdGhlIGVudmlyb25tZW50IHZhcmlhYmxlIDxjb2RlPnt7ZW52fX08L2NvZGU+IC5cIixcImF0dHJfYmFzZWRfbG9naW5fY29udHJvbF9kZXRhaWxcIjpcIkxpbWl0IHdobyBjYW4gc2lnbiB1cCBieSB1c2luZyA8Y29kZT4mbHQ7c2FtbDogQXR0cmlidXRlJmd0OzwvY29kZT4gZWxlbWVudCBpbmNsdWRlZCBpbiA8Y29kZT4mbHQ7c2FtbDogQXR0cmlidXRlU3RhdGVtZW50Jmd0OzwvY29kZT4gZWxlbWVudCBhbmQgaXRzIGNoaWxkIGVsZW1lbnQgPGNvZGU+Jmx0O3NhbWw6IEF0dHJpYnV0ZVZhbHVlJmd0OzwvY29kZT4uXCIsXCJhdHRyX2Jhc2VkX2xvZ2luX2NvbnRyb2xfcnVsZV9kZXRhaWxcIjpcIlNlZSA8YSBocmVmPVxcXCJodHRwczovL2x1Y2VuZS5hcGFjaGUub3JnL2NvcmUvMl85XzQvcXVlcnlwYXJzZXJzeW50YXguaHRtbFxcXCIgdGFyZ2V0PVxcXCJfYmxhbmtcXFwiPkFwYWNoZSBMdWNlbmUgLSBRdWVyeSBQYXJzZXIgU3ludGF4PC9hPi48aDY+U3VwcG9ydGVkIFF1ZXJpZXM6PC9oNj48dWw+PGxpPlRlcm1zPC9saT48bGk+RmllbGRzPC9saT48bGk+QU5EL05PVC9PUiBPcGVyYXRvcjwvbGk+PGxpPkdyb3VwaW5nPC9saT48L3VsPjxoNj5VbnN1cHBvcnRlZCBRdWVyaWVzOjwvaDY+PHVsPjxsaT5XaWxkY2FyZCwgRnV6enksIFByb3hpbWl0eSwgUmFuZ2UgYW5kIEJvb3N0aW5nPC9saT48bGk+Ky8tIE9wZXJhdG9yPC9saT48bGk+RmllbGQgR3JvdXBpbmc8L2xpPjwvdWw+XCIsXCJhdHRyX2Jhc2VkX2xvZ2luX2NvbnRyb2xfcnVsZV9leGFtcGxlXCI6XCI8aDY+RXhhbXBsZTwvaDY+SWYgYSBydWxlIGlzIDxjb2RlPihEZXBhcnRtZW50OiBBIHx8IERlcGFydG1lbnQ6IEIpICYmIFBvc2l0aW9uOiBMZWFkZXI8L2NvZGU+LCB1c2VycyB3aG8gaGF2ZSBlaXRoZXIgPGNvZGU+RGVwYXJ0bWVudDogQTwvY29kZT4gb3IgPGNvZGU+RGVwYXJ0bWVudDogQjwvY29kZT4gYW5kIGhhdmUgPGNvZGU+UG9zaXRpb246IExlYWRlcjwvY29kZT4gPHN0cm9uZz5jYW48L3N0cm9uZz4gc2lnbiBpbi5cIixcInVwZGF0ZWRfc2FtbFwiOlwiU3VjY2VlZGVkIHRvIHVwZGF0ZSBTQU1MIHNldHRpbmdcIn0sXCJCYXNpY1wiOntcImVuYWJsZV9iYXNpY1wiOlwiRW5hYmxlIEJhc2ljXCIsXCJuYW1lXCI6XCJCYXNpYyBBdXRoZW50aWNhdGlvblwiLFwiZGVzY18xXCI6XCJMb2dpbiB3aXRoIDxjb2RlPnVzZXJuYW1lPC9jb2RlPiBpbiBBdXRob3JpemF0aW9uIGhlYWRlci5cIixcImRlc2NfMlwiOlwiVXNlciB3aWxsIGJlIGF1dG9tYXRpY2FsbHkgZ2VuZXJhdGVkIGlmIG5vdCBleGlzdC5cIixcInVwZGF0ZWRfYmFzaWNcIjpcIlN1Y2NlZWRlZCB0byB1cGRhdGUgQmFzaWMgc2V0dGluZ1wifSxcIk9BdXRoXCI6e1wiZW5hYmxlX29pZGNcIjpcIkVuYWJsZSBPSURDXCIsXCJyZWdpc3RlclwiOlwiUmVnaXN0ZXIgZm9yICVzXCIsXCJjaGFuZ2VfcmVkaXJlY3RfdXJsXCI6XCJFbnRlciA8Y29kZT4lczwvY29kZT4gPGJyPih3aGVyZSA8Y29kZT4lczwvY29kZT4gaXMgeW91ciBob3N0IG5hbWUpIGZvciBcXFwiQXV0aG9yaXplZCByZWRpcmVjdCBVUklzXFxcIi5cIixcIkdvb2dsZVwiOntcImVuYWJsZV9nb29nbGVcIjpcIkVuYWJsZSBHb29nbGUgT0F1dGhcIixcIm5hbWVcIjpcIkdvb2dsZSBPQXV0aFwiLFwicmVnaXN0ZXJfMVwiOlwiQWNjZXNzIHt7bGlua319XCIsXCJyZWdpc3Rlcl8yXCI6XCJDcmVhdGUgUHJvamVjdCBpZiBubyBwcm9qZWN0cyBleGlzdFwiLFwicmVnaXN0ZXJfM1wiOlwiQ3JlYXRlIENyZWRlbnRpYWxzICZyaWdodGFycm93OyBPQXV0aCBjbGllbnQgSUQgJnJpZ2h0YXJyb3c7IFNlbGVjdCBcXFwiV2ViIGFwcGxpY2F0aW9uXFxcIlwiLFwicmVnaXN0ZXJfNFwiOlwiUmVnaXN0ZXIgeW91ciBPQXV0aCBBcHAgd2l0aCBvbmUgb2YgQXV0aG9yaXplZCByZWRpcmVjdCBVUklzIGFzIDxjb2RlPnt7dXJsfX08L2NvZGU+XCIsXCJyZWdpc3Rlcl81XCI6XCJDb3B5IGFuZCBwYXN0ZSB5b3VyIENsaWVudElEIGFuZCBDbGllbnQgU2VjcmV0IGFib3ZlXCIsXCJ1cGRhdGVkX2dvb2dsZVwiOlwiU3VjY2VlZGVkIHRvIHVwZGF0ZSBHb29nbGUgT0F1dGggc2V0dGluZ1wifSxcIkZhY2Vib29rXCI6e1wibmFtZVwiOlwiRmFjZWJvb2sgT0F1dGhcIn0sXCJUd2l0dGVyXCI6e1wiZW5hYmxlX3R3aXR0ZXJcIjpcIkVuYWJsZSBUd2l0dGVyIE9BdXRoXCIsXCJuYW1lXCI6XCJUd2l0dGVyIE9BdXRoXCIsXCJyZWdpc3Rlcl8xXCI6XCJBY2Nlc3Mge3tsaW5rfX1cIixcInJlZ2lzdGVyXzJcIjpcIlNpZ24gaW4gVHdpdHRlclwiLFwicmVnaXN0ZXJfM1wiOlwiQ3JlYXRlIENyZWRlbnRpYWxzICZyaWdodGFycm93OyBPQXV0aCBjbGllbnQgSUQgJnJpZ2h0YXJyb3c7IFNlbGVjdCBcXFwiV2ViIGFwcGxpY2F0aW9uXFxcIlwiLFwicmVnaXN0ZXJfNFwiOlwiUmVnaXN0ZXIgeW91ciBPQXV0aCBBcHAgd2l0aCBvbmUgb2YgQXV0aG9yaXplZCByZWRpcmVjdCBVUklzIGFzIDxjb2RlPnt7dXJsfX08L2NvZGU+XCIsXCJyZWdpc3Rlcl81XCI6XCJDb3B5IGFuZCBwYXN0ZSB5b3VyIENsaWVudElEIGFuZCBDbGllbnQgU2VjcmV0IGFib3ZlXCIsXCJ1cGRhdGVkX3R3aXR0ZXJcIjpcIlN1Y2NlZWRlZCB0byB1cGRhdGUgVHdpdHRlciBPQXV0aCBzZXR0aW5nXCJ9LFwiR2l0SHViXCI6e1wiZW5hYmxlX2dpdGh1YlwiOlwiRW5hYmxlIEdpdEh1YiBPQXV0aFwiLFwibmFtZVwiOlwiR2l0SHViIE9BdXRoXCIsXCJyZWdpc3Rlcl8xXCI6XCJBY2Nlc3Mge3tsaW5rfX1cIixcInJlZ2lzdGVyXzJcIjpcIlJlZ2lzdGVyIHlvdXIgT0F1dGggQXBwIHdpdGggXFxcIkF1dGhvcml6YXRpb24gY2FsbGJhY2sgVVJMXFxcIiBhcyA8Y29kZT57e3VybH19PC9jb2RlPlwiLFwicmVnaXN0ZXJfM1wiOlwiQ29weSBhbmQgcGFzdGUgeW91ciBDbGllbnRJRCBhbmQgQ2xpZW50IFNlY3JldCBhYm92ZVwiLFwidXBkYXRlZF9naXRodWJcIjpcIlN1Y2NlZWRlZCB0byB1cGRhdGUgR2l0SHViIE9BdXRoIHNldHRpbmdcIn0sXCJPSURDXCI6e1wibmFtZVwiOlwiT3BlbklEIENvbm5lY3RcIixcImlkX2RldGFpbFwiOlwiU3BlY2lmaWNhdGlvbiBvZiB0aGUgbmFtZSBvZiBhdHRyaWJ1dGUgd2hpY2ggY2FuIGlkZW50aWZ5IHRoZSB1c2VyIGluIE9JREMgY2xhaW1zXCIsXCJ1c2VybmFtZV9kZXRhaWxcIjpcIlNwZWNpZmljYXRpb24gb2YgbWFwcGluZ3MgZm9yIDxjb2RlPnVzZXJuYW1lPC9jb2RlPiB3aGVuIGNyZWF0aW5nIG5ldyB1c2Vyc1wiLFwibmFtZV9kZXRhaWxcIjpcIlNwZWNpZmljYXRpb24gb2YgbWFwcGluZ3MgZm9yIDxjb2RlPm5hbWU8L2NvZGU+IHdoZW4gY3JlYXRpbmcgbmV3IHVzZXJzXCIsXCJtYXBwaW5nX2RldGFpbFwiOlwiU3BlY2lmaWNhdGlvbiBvZiBtYXBwaW5ncyBmb3IgJXMgd2hlbiBjcmVhdGluZyBuZXcgdXNlcnNcIixcInJlZ2lzdGVyXzFcIjpcIkNvbnRhbnQgdG8gT0lEQyBJZFAgQWRtaW5pc3RyYXRvclwiLFwicmVnaXN0ZXJfMlwiOlwiUmVnaXN0ZXIgeW91ciBPSURDIEFwcCB3aXRoIFxcXCJBdXRob3JpemF0aW9uIGNhbGxiYWNrIFVSTFxcXCIgYXMgPGNvZGU+JXM8L2NvZGU+XCIsXCJyZWdpc3Rlcl8zXCI6XCJDb3B5IGFuZCBwYXN0ZSB5b3VyIENsaWVudElEIGFuZCBDbGllbnQgU2VjcmV0IGFib3ZlXCIsXCJ1cGRhdGVkX29pZGNcIjpcIlN1Y2NlZWRlZCB0byB1cGRhdGUgT3BlbklEIENvbm5lY3RcIixcIlVzZSBkaXNjb3ZlcmVkIFVSTCBpZiBlbXB0eVwiOlwiVXNlIGRpc2NvdmVyZWQgVVJMIGZyb20gXFxcIklzc3VlciBIb3N0XFxcIiBpZiBlbXB0eVwifSxcImhvd190b1wiOntcImdvb2dsZVwiOlwiSG93IHRvIGNvbmZpZ3VyZSBHb29nbGUgT0F1dGg/XCIsXCJnaXRodWJcIjpcIkhvdyB0byBjb25maWd1cmUgR2l0SHViIE9BdXRoP1wiLFwidHdpdHRlclwiOlwiSG93IHRvIGNvbmZpZ3VyZSBUd2l0dGVyIE9BdXRoP1wiLFwib2lkY1wiOlwiSG93IHRvIGNvbmZpZ3VyZSBPSURDP1wifX0sXCJmb3JtX2l0ZW1fbmFtZVwiOntcImVudHJ5UG9pbnRcIjpcIkVudHJ5IHBvaW50XCIsXCJpc3N1ZXJcIjpcIklzc3VlclwiLFwiY2VydFwiOlwiQ2VydGlmaWNhdGVcIixcImF0dHJNYXBJZFwiOlwiSURcIixcImF0dHJNYXBVc2VybmFtZVwiOlwiVXNlcm5hbWVcIixcImF0dHJNYXBNYWlsXCI6XCJNYWlsIEFkZHJlc3NcIixcImF0dHJNYXBGaXJzdE5hbWVcIjpcIkZpcnN0IE5hbWVcIixcImF0dHJNYXBMYXN0TmFtZVwiOlwiTGFzdCBOYW1lXCIsXCJBQkxDUnVsZVwiOlwiUnVsZVwifX0sXCJub3RpZmljYXRpb25fc2V0dGluZ1wiOntcInNsYWNrX2luY29taW5nX2NvbmZpZ3VyYXRpb25cIjpcIlNsYWNrIEluY29taW5nIFdlYmhvb2tzIGNvbmZpZ3VyYXRpb25cIixcInByaW9yaXRpemVfd2ViaG9va1wiOlwiUHJpb3JpdGl6ZSBpbmNvbWluZyB3ZWJob29rIHRoYW4gU2xhY2sgQXBwXCIsXCJwcmlvcml0aXplX3dlYmhvb2tfZGVzY1wiOlwiQ2hlY2sgdGhpcyBvcHRpb24gYW5kIEdST1dJIHVzZSBJbmNvbWluZyBXZWJob29rcyBldmVuIGlmIFNsYWNrIEFwcCBzZXR0aW5ncyBhcmUgZW5hYmxlZC5cIixcInNsYWNrX2FwcF9jb25maWd1cmF0aW9uXCI6XCJTbGFjayBhcHAgY29uZmlndXJhdGlvblwiLFwic2xhY2tfYXBwX2NvbmZpZ3VyYXRpb25fZGVzY1wiOlwiVGhpcyBpcyB0aGUgd2F5IHRoYXQgY29tcGF0aWJsZSB3aXRoIENyb3dpLDxiciAvPiBidXQgbm90IHJlY29tbWVuZGVkIGluIEdST1dJIGJlY2F1c2UgaXQgaXMgPHN0cm9uZz50b28gY29tcGxleDwvc3Ryb25nPi5cIixcInVzZV9pbnN0ZWFkXCI6XCJQbGVhc2UgdXNlIFNsYWNrIEluY29taW5nIFdlYmhvb2tzIENvbmZpZ3VyYXRpb24gaW5zdGVhZC5cIixcImhvd190b1wiOntcImhlYWRlclwiOlwiSG93IHRvIGNvbmZpZ3VyZSBJbmNvbWluZyBXZWJob29rcz9cIixcIndvcmtzcGFjZVwiOlwiKEF0IFdvcmtzcGFjZSkgQWRkIGEgaG9va1wiLFwid29ya3NwYWNlX2Rlc2MxXCI6XCJHbyB0byA8YSBocmVmPSdodHRwczovL3NsYWNrLmNvbS9zZXJ2aWNlcy9uZXcvaW5jb21pbmctd2ViaG9vayc+SW5jb21pbmcgV2ViaG9va3MgY29uZmlndXJhdGlvbiBwYWdlPC9hPi5cIixcIndvcmtzcGFjZV9kZXNjMlwiOlwiQ2hvb3NlIHRoZSBkZWZhdWx0IGNoYW5uZWwgdG8gcG9zdC5cIixcIndvcmtzcGFjZV9kZXNjM1wiOlwiQWRkLlwiLFwiYXRfZ3Jvd2lcIjpcIihBdCBHUk9XSSBhZG1pbiBwYWdlKSBTZXQgV2ViaG9vayBVUkxcIixcImF0X2dyb3dpX2Rlc2NcIjpcIklucHV0ICZyZHF1bztXZWJob29rIFVSTCZyZHF1bzsgYW5kIHN1Ym1pdCBvbiB0aGlzIHBhZ2UuXCJ9LFwidXNlcl90cmlnZ2VyX25vdGlmaWNhdGlvbl9oZWFkZXJcIjpcIkRlZmF1bHQgbm90aWZpY2F0aW9uIHNldHRpbmdzIGZvciBwYXR0ZXJuc1wiLFwicGF0dGVyblwiOlwiUGF0dGVyblwiLFwiY2hhbm5lbFwiOlwiQ2hhbm5lbFwiLFwicGF0dGVybl9kZXNjXCI6XCJQYXRoIG5hbWUgb2Ygd2lraS4gUGF0dGVybiBleHByZXNzaW9uIHdpdGggPGNvZGU+KjwvY29kZT4gY2FuIGJlIHVzZWQuXCIsXCJjaGFubmVsX2Rlc2NcIjpcIlNsYWNrIGNoYW5uZWwgbmFtZS4gV2l0aG91dCA8Y29kZT4jPC9jb2RlPi5cIixcInZhbGlkX3BhZ2VcIjpcIkVuYWJsZS9kaXNhYmxlIE5vdGlmaWNhdGlvblwiLFwibGlua19ub3RpZmljYXRpb25faGVscFwiOlwiPHN0cm9uZz5UaGUgcGFnZSB0aGF0IGlzIGFibGUgdG8gYmUgdmlld2VkIG9ubHkgYnkgdGhvc2Ugd2hvIGtub3cgdGhlIGxpbmsgJ0FueW9uZSB3aXRoIHRoZSBsaW5rJzwvc3Ryb25nPiBpcyBub3Qgbm90aWZpZWQgYWx3YXlzLlwiLFwianVzdF9tZV9ub3RpZmljYXRpb25faGVscFwiOlwiPHN0cm9uZz5UaGUgcGFnZSB0aGF0IGlzIHJlc3RyaWN0ZWQgYnkgJ09ubHkgTWUnPC9zdHJvbmc+IGlzIG5vdGlmeSB3aGVuIHRoZSBwYWdlIGVkaXRlZC5cIixcImdyb3VwX25vdGlmaWNhdGlvbl9oZWxwXCI6XCI8c3Ryb25nPlRoZSBwYWdlIHRoYXQgaXMgcmVzdHJpY3RlZCBieSAnVXNlciBHcm91cCc8L3N0cm9uZz4gaXMgbm90aWZ5IHdoZW4gdGhlIHBhZ2UgZWRpdGVkLlwiLFwibm90aWZpY2F0aW9uX2xpc3RcIjpcIkxpc3Qgb2Ygbm90aWZpY2F0aW9uIHNldHRpbmdzXCIsXCJhZGRfbm90aWZpY2F0aW9uXCI6XCJBZGQgbmV3XCIsXCJ0cmlnZ2VyX3BhdGhcIjpcIlRyaWdnZXIgcGF0aFwiLFwidHJpZ2dlcl9wYXRoX2hlbHBcIjpcIihleHByZXNzaW9uIHdpdGggPGNvZGU+KjwvY29kZT4gaXMgc3VwcG9ydGVkKVwiLFwidHJpZ2dlcl9ldmVudHNcIjpcIlRyaWdnZXIgZXZlbnRzXCIsXCJub3RpZnlfdG9cIjpcIk5vdGlmeSB0b1wiLFwiYmFja190b19saXN0XCI6XCJHbyBiYWNrIHRvIGxpc3RcIixcIm5vdGlmaWNhdGlvbl9kZXRhaWxcIjpcIk5vdGlmaWNhdGlvbiBTZXR0aW5nIERldGFpbHNcIixcImV2ZW50X3BhZ2VDcmVhdGVcIjpcIldoZW4gbmV3IHBhZ2UgaXMgXFxcIkNSRUFURURcXFwiXCIsXCJldmVudF9wYWdlRWRpdFwiOlwiV2hlbiBwYWdlIGlzIFxcXCJFRElURURcXFwiXCIsXCJldmVudF9wYWdlRGVsZXRlXCI6XCJXaGVuIHBhZ2UgaXMgXFxcIkRFTEVURURcXFwiXCIsXCJldmVudF9wYWdlTW92ZVwiOlwiV2hlbiBwYWdlIGlzIFxcXCJNT1ZFRFxcXCIgKHJlbmFtZWQpXCIsXCJldmVudF9wYWdlTGlrZVwiOlwiV2hlbiBzb21lb25lIFxcXCJMSUtFU1xcXCIgcGFnZVwiLFwiZXZlbnRfY29tbWVudFwiOlwiV2hlbiBzb21lb25lIFxcXCJDT01NRU5UU1xcXCIgb24gcGFnZVwiLFwiZW1haWxcIjp7XCJpZnR0dF9saW5rXCI6XCJDcmVhdGUgYSBuZXcgSUZUVFQgYXBwbGV0IHdpdGggRW1haWwgdHJpZ2dlclwifSxcInVwZGF0ZWRfc2xhY2tBcHBcIjpcIlN1Y2NlZWRlZCB0byB1cGRhdGUgU2xhY2sgQXBwIENvbmZpZ3VyYXRpb24gc2V0dGluZ1wiLFwiYWRkX25vdGlmaWNhdGlvbl9wYXR0ZXJuXCI6XCJBZGQgdXNlciB0cmlnZ2VyIG5vdGlmaWNhdGlvbiBwYXR0ZXJuc1wiLFwiZGVsZXRlX25vdGlmaWNhdGlvbl9wYXR0ZXJuXCI6XCJEZWxldGUgbm90aWZpY2F0aW9uIHBhdHRlcm5cIixcImRlbGV0ZV9ub3RpZmljYXRpb25fcGF0dGVybl9kZXNjMVwiOlwiRGVsZXRlIFBhdGg6IHt7cGF0aH19XCIsXCJkZWxldGVfbm90aWZpY2F0aW9uX3BhdHRlcm5fZGVzYzJcIjpcIk9uY2UgZGVsZXRlZCwgaXQgY2Fubm90IGJlIHJlY292ZXJlZFwiLFwidG9nZ2xlX25vdGlmaWNhdGlvblwiOlwiVXBkYXRlZCBzZXR0aW5nIG9mIHt7cGF0aH19XCJ9LFwiZnVsbF90ZXh0X3NlYXJjaF9tYW5hZ2VtZW50XCI6e1wiZWxhc3RpY3NlYXJjaF9tYW5hZ2VtZW50XCI6XCJFbGFzdGljc2VhcmNoIG1hbmFnZW1lbnRcIixcImNvbm5lY3Rpb25fc3RhdHVzXCI6XCJDb25uZWN0aW9uIHN0YXR1c1wiLFwiY29ubmVjdGlvbl9zdGF0dXNfbGFiZWxfdW5jb25maWd1cmVkXCI6XCJVTkNPTkZJR1VSRURcIixcImNvbm5lY3Rpb25fc3RhdHVzX2xhYmVsX2Nvbm5lY3RlZFwiOlwiQ09OTkVDVEVEXCIsXCJjb25uZWN0aW9uX3N0YXR1c19sYWJlbF9kaXNjb25uZWN0ZWRcIjpcIkRJU0NPTk5FQ1RFRFwiLFwiY29ubmVjdGlvbl9zdGF0dXNfbGFiZWxfZXJyb3JvY2N1cmVkXCI6XCJFUlJPUiBPQ0NVUkVEIE9OIFNFQVJDSCBTRVJWSUNFXCIsXCJpbmRpY2VzX3N0YXR1c1wiOlwiSW5kaWNlcyBTdGF0dXNcIixcImluZGljZXNfc3RhdHVzX2xhYmVsX25vcm1hbGl6ZWRcIjpcIk5PUk1BTElaRURcIixcImluZGljZXNfc3RhdHVzX2xhYmVsX3Vubm9ybWFsaXplZFwiOlwiUkVCVUlMRElORyBvciBCUk9LRU5cIixcImluZGljZXNfc3VtbWFyeVwiOlwiSW5kaWNlcyBzdW1tYXJ5XCIsXCJyZWNvbm5lY3RcIjpcIlJlY29ubmVjdFwiLFwicmVjb25uZWN0X2J1dHRvblwiOlwiVHJ5IHRvIHJlY29ubmVjdFwiLFwicmVjb25uZWN0X2Rlc2NyaXB0aW9uXCI6XCJDbGljayB0aGUgYnV0dG9uIHRvIHRyeSB0byByZWNvbm5lY3QgdG8gRWxhc3RpY3NlYXJjaC5cIixcIm5vcm1hbGl6ZVwiOlwiTm9ybWFsaXplXCIsXCJub3JtYWxpemVfYnV0dG9uXCI6XCJOb3JtYWxpemUgaW5kaWNlc1wiLFwibm9ybWFsaXplX2Rlc2NyaXB0aW9uXCI6XCJDbGljayB0aGUgYnV0dG9uIHRvIHJlcGFpciBicm9rZW4gaW5kaWNlcy5cIixcInJlYnVpbGRcIjpcIlJlYnVpbGRcIixcInJlYnVpbGRfYnV0dG9uXCI6XCJSZWJ1aWxkIGluZGV4XCIsXCJyZWJ1aWxkX2Rlc2NyaXB0aW9uXzFcIjpcIkNsaWNrIHRoZSBidXR0b24gdG8gcmVidWlsZCBpbmRleCBhbmQgYWRkIGFsbCBwYWdlIGRhdGFzLlwiLFwicmVidWlsZF9kZXNjcmlwdGlvbl8yXCI6XCJUaGlzIG1heSB0YWtlIGEgd2hpbGUuXCJ9LFwidG9fY2xvdWRfc2V0dGluZ3NcIjpcIk9wZW4gR1JPV0kuY2xvdWQgU2V0dGluZ3NcIixcImxvZ2luXCI6e1wiU2lnbiBpbiBlcnJvclwiOlwiTG9naW4gZXJyb3JcIixcIlJlZ2lzdHJhdGlvbiBzdWNjZXNzZnVsXCI6XCJSZWdpc3RyYXRpb24gc3VjY2Vzc2Z1bFwiLFwiU2V0dXBcIjpcIlNldHVwXCJ9LFwiZXhwb3J0X2J1bGtcIjp7XCJmYWlsZWRfdG9fZXhwb3J0XCI6XCJGYWlsZWQgdG8gZXhwb3J0XCIsXCJmYWlsZWRfdG9fY291bnRfcGFnZXNcIjpcIkZhaWxlZCB0byBjb3VudCBwYWdlc1wiLFwiZXhwb3J0X3BhZ2VfbWFya2Rvd25cIjpcIkV4cG9ydCBwYWdlIGFzIE1hcmtkb3duXCIsXCJleHBvcnRfcGFnZV9wZGZcIjpcIkV4cG9ydCBwYWdlIGFzIFBERlwifSxcIm1lc3NhZ2VcIjp7XCJzdWNjZXNzZnVsbHlfY29ubmVjdGVkXCI6XCJTdWNjZXNzZnVsbHkgQ29ubmVjdGVkIVwiLFwiZmFpbF90b19zYXZlX2FjY2Vzc190b2tlblwiOlwiRmFpbGVkIHRvIHNhdmUgYWNjZXNzX3Rva2VuLiBQbGVhc2UgdHJ5IGFnYWluLlwiLFwiZmFpbF90b19mZXRjaF9hY2Nlc3NfdG9rZW5cIjpcIkZhaWxlZCB0byBmZXRjaCBhY2Nlc3NfdG9rZW4uIFBsZWFzZSBkbyBjb25uZWN0IGFnYWluLlwiLFwic3VjY2Vzc2Z1bGx5X2Rpc2Nvbm5lY3RlZFwiOlwiU3VjY2Vzc2Z1bGx5IERpc2Nvbm5lY3RlZCFcIixcInN0cmF0ZWd5X2hhc19ub3RfYmVlbl9zZXRfdXBcIjpcInt7c3RyYXRlZ3l9fSBoYXMgbm90IGJlZW4gc2V0IHVwXCIsXCJtYXhpbXVtX251bWJlcl9vZl91c2Vyc1wiOlwiQ2FuIG5vdCByZWdpc3RlciBtb3JlIHRoYW4gdGhlIG1heGltdW0gbnVtYmVyIG9mIHVzZXJzLlwiLFwiZGF0YWJhc2VfZXJyb3JcIjpcIkRhdGFiYXNlIFNlcnZlciBFcnJvciBvY2N1cmVkXCIsXCJzaWduX2luX2ZhaWx1cmVcIjpcIlNpZ24gaW4gZmFpbHVyZS5cIixcImF3c19zdHRpbmdzX3JlcXVpcmVkXCI6XCJBV1Mgc2V0dGluZ3MgcmVxdWlyZWQgdG8gdXNlIHRoaXMgZnVuY3Rpb24uIFBsZWFzZSBhc2sgdGhlIGFkbWluaXN0cmF0b3IuXCIsXCJhcHBsaWNhdGlvbl9hbHJlYWR5X2luc3RhbGxlZFwiOlwiQXBwbGljYXRpb24gYWxyZWFkeSBpbnN0YWxsZWQuXCIsXCJlbWFpbF9hZGRyZXNzX2NvdWxkX25vdF9iZV91c2VkXCI6XCJUaGlzIGVtYWlsIGFkZHJlc3MgY291bGQgbm90IGJlIHVzZWQuIChNYWtlIHN1cmUgdGhlIGFsbG93ZWQgZW1haWwgYWRkcmVzcylcIixcInVzZXJfaWRfaXNfbm90X2F2YWlsYWJsZS5cIjpcIlRoaXMgVXNlciBJRCBpcyBub3QgYXZhaWxhYmxlLlwiLFwiZW1haWxfYWRkcmVzc19pc19hbHJlYWR5X3JlZ2lzdGVyZWRcIjpcIlRoaXMgZW1haWwgYWRkcmVzcyBpcyBhbHJlYWR5IHJlZ2lzdGVyZWQuXCIsXCJjYW5fbm90X3JlZ2lzdGVyX21heGltdW1fbnVtYmVyX29mX3VzZXJzXCI6XCJDYW4gbm90IHJlZ2lzdGVyIG1vcmUgdGhhbiB0aGUgbWF4aW11bSBudW1iZXIgb2YgdXNlcnMuXCIsXCJmYWlsZWRfdG9fcmVnaXN0ZXJcIjpcIkZhaWxlZCB0byByZWdpc3Rlci5cIixcInN1Y2Nlc3NmdWxseV9jcmVhdGVkXCI6XCJUaGUgdXNlciB7e3VzZXJuYW1lfX0gaXMgc3VjY2Vzc2Z1bGx5IGNyZWF0ZWQuXCIsXCJjYW5fbm90X2FjdGl2YXRlX21heGltdW1fbnVtYmVyX29mX3VzZXJzXCI6XCJDYW4gbm90IGFjdGl2YXRlIG1vcmUgdGhhbiB0aGUgbWF4aW11bSBudW1iZXIgb2YgdXNlcnMuXCIsXCJmYWlsZWRfdG9fYWN0aXZhdGVcIjpcIkZhaWxlZCB0byBhY3RpdmF0ZS5cIixcInVuYWJsZV90b191c2VfdGhpc191c2VyXCI6XCJVbmFibGUgdG8gdXNlIHRoaXMgdXNlci5cIixcImNvbXBsZXRlX3RvX2luc3RhbGwxXCI6XCJDb21wbGV0ZSB0byBJbnN0YWxsIEdST1dJICEgUGxlYXNlIGxvZ2luIGFzIGFkbWluIGFjY291bnQuXCIsXCJjb21wbGV0ZV90b19pbnN0YWxsMlwiOlwiQ29tcGxldGUgdG8gSW5zdGFsbCBHUk9XSSAhIFBsZWFzZSBjaGVjayBlYWNoIHNldHRpbmdzIG9uIHRoaXMgcGFnZSBmaXJzdC5cIixcImZhaWxlZF90b19jcmVhdGVfYWRtaW5fdXNlclwiOlwiRmFpbGVkIHRvIGNyZWF0ZSBhZG1pbiB1c2VyLiB7e2Vyck1lc3NhZ2V9fVwifSxcImdyaWRfZWRpdFwiOntcImNyZWF0ZV9ib290c3RyYXBfNF9ncmlkXCI6XCJDcmVhdGUgQm9vdHN0cmFwIDQgR3JpZFwiLFwiZ3JpZF9zZXR0aW5nc1wiOlwiR3JpZCBTZXR0aW5nc1wiLFwiZ3JpZF9wYXR0ZXJuXCI6XCJHcmlkIFBhdHRlcm5cIixcImRpdmlzaW9uXCI6XCJEaXZpc2lvbnNcIixcInNtYXJ0X25vXCI6XCJTbWFydHBob25lIC8gTm8gQnJlYWtcIixcImJyZWFrX3BvaW50XCI6XCJCcmVhayBwb2ludCBieSBkaXNwbGF5IHNpemVcIn0sXCJ2YWxpZGF0aW9uXCI6e1wiYXdzX3JlZ2lvblwiOlwiRm9yIHRoZSByZWdpb24sIGVudGVyIHRoZSBBV1MgcmVnaW9uIG5hbWUuIGV4KTp1cy1lYXN0LTFcIixcImF3c19jdXN0b21fZW5kcG9pbnRcIjpcIkZvciB0aGUgY3VzdG9tIGVuZHBvaW50LCBzcGVjaWZ5IHRoZSBVUkwgdGhhdCBzdGFydHMgd2l0aCBodHRwKHMpOi8vLiBBbHNvLCB0aGUgdHJhaWxpbmcgc2xhc2ggaXMgbm90IHJlcXVpcmVkLlwiLFwiZmFpbGVkX3RvX3NlbmRfYV90ZXN0X2VtYWlsXCI6XCJGYWlsZWQgdG8gc2VuZCBhIHRlc3QgZW1haWwgdXNpbmcgU01UUC4gUGxlYXNlIGNoZWNrIHlvdXIgc2V0dGluZ3MuXCJ9fX0sXCJqYV9KUFwiOntcImFkbWluXCI6e1wibWFpbGVyX3NldHVwX3JlcXVpcmVkXCI6XCLpgIHkv6HjgZnjgovjgavjga8gPGEgaHJlZj0nL2FkbWluL2FwcCc+44Oh44O844Or44Gu6Kit5a6aPC9hPiDjgYzlv4XopoHjgafjgZnjgIJcIixcImFkbWluX3RvcFwiOntcIm1hbmFnZW1lbnRfd2lraVwiOlwiV2lraeeuoeeQhlwiLFwic3lzdGVtX2luZm9ybWF0aW9uXCI6XCLjgrfjgrnjg4bjg6Dmg4XloLFcIixcIndpa2lfYWRtaW5pc3RyYXRvclwiOlwi44GT44Gu55S76Z2i44GvV2lraeeuoeeQhuiAheOBruOBv+OBjOOCouOCr+OCu+OCueOBp+OBjeOCi+eUu+mdouOBp+OBmeOAglwiLFwiYXNzaWduX2FkbWluaXN0cmF0b3JcIjpcIuOAjOODpuODvOOCtuODvOeuoeeQhuOAjeOBi+OCieOAjOeuoeeQhuiAheOBq+OBmeOCi+OAjeODnOOCv+ODs+OCkuS9v+OBo+OBpuODpuODvOOCtuODvOOCkldpa2nnrqHnkIbogIXjgavku7vlkb3jgZnjgovjgZPjgajjgYzjgafjgY3jgb7jgZnjgIJcIixcImxpc3Rfb2ZfaW5zdGFsbGVkX3BsdWdpbnNcIjpcIuOCpOODs+OCueODiOODvOODq+OBleOCjOOBpuOBhOOCi+ODl+ODqeOCsOOCpOODs+S4gOimp1wiLFwicGFja2FnZV9uYW1lXCI6XCLjg5Hjg4PjgrHjg7zjgrjlkI1cIixcInNwZWNpZmllZF92ZXJzaW9uXCI6XCLmjIflrprjg5Djg7zjgrjjg6fjg7NcIixcImluc3RhbGxlZF92ZXJzaW9uXCI6XCLjgqTjg7Pjgrnjg4jjg7zjg6vjgZXjgozjgabjgYTjgovjg5Djg7zjgrjjg6fjg7NcIixcImxpc3Rfb2ZfZW52X3ZhcnNcIjpcIuOCteODvOODkOODvOWBtOOBp+ioreWumuOBleOCjOOBpuOBhOOCi+eSsOWig+WkieaVsOS4gOimp1wiLFwiZW52X3Zhcl9wcmlvcml0eVwiOlwi44K744Kt44Ol44Oq44OG44Kj44Gr6Zai44GZ44KL55Kw5aKD5aSJ5pWw44KS6Zmk44GN44CB44OH44O844K/44OZ44O844K544Gu5YCk44GM5YSq5YWI55qE44Gr5Y+W5b6X44GV44KM44G+44GZ44CCXCIsXCJhYm91dF9zZWN1cml0eVwiOlwi44K744Kt44Ol44Oq44OG44Kj44Gr6Zai44GZ44KL55Kw5aKD5aSJ5pWw44GvIDxhIGhyZWY9Jy9hZG1pbi9zZWN1cml0eSc+44K744Kt44Ol44Oq44OG44Kj6Kit5a6a55S76Z2iPC9hPiDjgYvjgonjgZTnorroqo3jgY/jgaDjgZXjgYTjgIJcIn0sXCJhcHBfc2V0dGluZ1wiOntcInNpdGVfbmFtZVwiOlwi44K144Kk44OI5ZCNXCIsXCJzaXRlbmFtZV9jaGFuZ2VcIjpcIuODmOODg+ODgOODvOOChCBIVE1MIOOCv+OCpOODiOODq+OBq+S9v+eUqOOBleOCjOOCi+OCteOCpOODiOWQjeOCkuWkieabtOOBp+OBjeOBvuOBmeOAglwiLFwiaGVhZGVyX2NvbnRlbnRcIjpcIuOBk+OBk+OBq+WFpeWKm+OBl+OBn+WGheWuueOBr+OAgeODmOODg+ODgOODvOetieOBq+ihqOekuuOBleOCjOOBvuOBmeOAglwiLFwic2l0ZV91cmxfZGVzY1wiOlwi44K144Kk44OIVVJM44KS6Kit5a6a44GX44G+44GZ44CCXCIsXCJzaXRlX3VybF93YXJuXCI6XCLjgrXjgqTjg4hVUkzjgYzoqK3lrprjgZXjgozjgabjgYTjgarjgYTjgZ/jgoHjgIHkuIDpg6jmqZ/og73jgYzli5XkvZzjgZfjgarjgYTnirbmhYvjgavjgarjgaPjgabjgYTjgb7jgZnjgIJcIixcInNpdGV1cmxfaGVscFwiOlwiPGNvZGU+aHR0cDovLzwvY29kZT4g44G+44Gf44GvIDxjb2RlPmh0dHBzOi8vPC9jb2RlPiDjgYvjgonlp4vjgb7jgovjgrXjgqTjg4jjga5VUkxcIixcImNvbmZpZGVudGlhbF9uYW1lXCI6XCLjgrPjg7Pjg5XjgqPjg4fjg7Pjgrfjg6Pjg6vooajnpLpcIixcImNvbmZpZGVudGlhbF9leGFtcGxlXCI6XCLkvos6IOekvuWkluenmFwiLFwiZGVmYXVsdF9sYW5ndWFnZVwiOlwi5paw6KaP44Om44O844K244O844Gu44OH44OV44Kp44Or44OI6Kit5a6a6KiA6KqeXCIsXCJkZWZhdWx0X21haWxfdmlzaWJpbGl0eVwiOlwi5paw6KaP44Om44O844K244O844Gu5Yid5pyf44Oh44O844Or5YWs6ZaL6Kit5a6aXCIsXCJmaWxlX3VwbG9hZGluZ1wiOlwi44OV44Kh44Kk44Or44Ki44OD44OX44Ot44O844OJXCIsXCJlbmFibGVfZmlsZXNfZXhjZXB0X2ltYWdlXCI6XCLnlLvlg4/ku6XlpJbjga7jg5XjgqHjgqTjg6vjgqLjg4Pjg5fjg63jg7zjg4njgpLoqLHlj69cIixcImF0dGFjaF9lbmFibGVcIjpcIuioseWPr+OCkuOBl+OBpuOBhOOCi+WgtOWQiOOAgeeUu+WDj+S7peWkluOBruODleOCoeOCpOODq+OCkuODmuODvOOCuOOBq+a3u+S7mOWPr+iDveOBq+OBquOCiuOBvuOBmeOAglwiLFwidXBkYXRlXCI6XCLmm7TmlrBcIixcIm1haWxfc2V0dGluZ3NcIjpcIuODoeODvOODq+OBruioreWumlwiLFwibWFpbGVyX2lzX25vdF9zZXRfdXBcIjpcIuODoeODvOODq+ioreWumuOBjOOCu+ODg+ODiOOCouODg+ODl+OBleOCjOOBpuOBhOOBvuOBm+OCk+OAglwiLFwiZnJvbV9lLW1haWxfYWRkcmVzc1wiOlwiRnJvbeOCouODieODrOOCuVwiLFwidHJhbnNtaXNzaW9uX21ldGhvZFwiOlwi6YCB5L+h5pa55rOVXCIsXCJzbXRwX2xhYmVsXCI6XCJTTVRQXCIsXCJzZXNfbGFiZWxcIjpcIlNFUyhBV1MpXCIsXCJzZW5kX3Rlc3RfZW1haWxcIjpcIuODhuOCueODiOODoeODvOODq+OCkumAgeS/oVwiLFwic3VjY2Vzc190b19zZW5kX3Rlc3RfZW1haWxcIjpcIuODhuOCueODiOODoeODvOODq+OCkumAgeS/oeOBl+OBvuOBl+OBn+OAglwiLFwic210cF9zZXR0aW5nc1wiOlwiU01UUOioreWumlwiLFwiaG9zdFwiOlwi44Ob44K544OIXCIsXCJwb3J0XCI6XCLjg53jg7zjg4hcIixcInVzZXJcIjpcIuODpuODvOOCtuODvFwiLFwiaW5pdGlhbGl6ZV9tYWlsX3NldHRpbmdzXCI6XCLoqK3lrprjgpLliJ3mnJ/ljJZcIixcImluaXRpYWxpemVfbWFpbF9tb2RhbF9oZWFkZXJcIjpcIuODoeODvOODq+ioreWumuOBruWIneacn+WMllwiLFwiY29uZmlybV90b19pbml0aWFsaXplX21haWxfc2V0dGluZ3NcIjpcIuS4gOW6puWIneacn+WMluOBl+OBn+ioreWumuOBr+aIu+OBm+OBvuOBm+OCk+OAguacrOW9k+OBq+WIneacn+WMluOBl+OBvuOBmeOBi++8n1wiLFwiZmlsZV91cGxvYWRfc2V0dGluZ3NcIjpcIuODleOCoeOCpOODq+OCouODg+ODl+ODreODvOODieioreWumlwiLFwiZmlsZV91cGxvYWRfbWV0aG9kXCI6XCLjg5XjgqHjgqTjg6vjgqLjg4Pjg5fjg63jg7zjg4nmlrnms5VcIixcImZpbGVfZGVsaXZlcnlfbWV0aG9kXCI6XCLjg5XjgqHjgqTjg6vjga7phY3kv6Hmlrnms5VcIixcImZpbGVfZGVsaXZlcnlfbWV0aG9kX3JlZGlyZWN0XCI6XCLjg6rjg4DjgqTjg6zjgq/jg4hcIixcImZpbGVfZGVsaXZlcnlfbWV0aG9kX3JlbGF5XCI6XCLlhoXpg6jjgrfjgrnjg4bjg6DkuK3ntplcIixcImZpbGVfZGVsaXZlcnlfbWV0aG9kX3JlZGlyZWN0X2luZm9cIjpcIuODquODgOOCpOODrOOCr+ODiO+8miBHUk9XSeOCteODvOODkOODvOOCkuS7i+OBleOBmuOBq+e9suWQjeS7mOOBjVVSTOOBq+ODquODgOOCpOODrOOCr+ODiOOBleOCjOOCi+OBn+OCgeOAgeWEquOCjOOBn+ODkeODleOCqeODvOODnuODs+OCueOCkuWHuuOBl+OBvuOBmeOAglwiLFwiZmlsZV9kZWxpdmVyeV9tZXRob2RfcmVsYXlfaW5mb1wiOlwi5YaF6YOo44K344K544OG44Og5Lit57aZ77yaIEdST1dJ44K144O844OQ44O844GM44Kv44Op44Kk44Ki44Oz44OI44Gr6YWN5L+h44GZ44KL44Gf44KB44CB5a6M5YWo44Gq44K744Kt44Ol44Oq44OG44Kj44O844KS5o+Q5L6b44GX44G+44GZ44CCXCIsXCJnY3NfbGFiZWxcIjpcIkdDUChHQ1MpXCIsXCJhd3NfbGFiZWxcIjpcIkFXUyhTMylcIixcImxvY2FsX2xhYmVsXCI6XCJMb2NhbFwiLFwiZ3JpZGZzX2xhYmVsXCI6XCJNb25nb0RCKEdyaWRGUylcIixcImZpeGVkX2J5X2Vudl92YXJcIjpcIueSsOWig+WkieaVsCA8Y29kZT5GSUxFX1VQTE9BRD17e2ZpbGVVcGxvYWRUeXBlfX08L2NvZGU+IOOBq+OCiOOCiuWbuuWumuOBleOCjOOBpuOBhOOBvuOBmeOAglwiLFwiZmlsZV91cGxvYWRcIjpcIuODleOCoeOCpOODq+OCkuOCouODg+ODl+ODreODvOODieOBmeOCi+OBn+OCgeOBruioreWumuOCkuihjOOBhOOBvuOBmeOAguODleOCoeOCpOODq+OCouODg+ODl+ODreODvOODieOBruioreWumuOCkuWujOS6huOBleOBm+OCi+OBqOOAgeODleOCoeOCpOODq+OCouODg+ODl+ODreODvOODieapn+iDveOAgeODl+ODreODleOCo+ODvOODq+WGmeecn+apn+iDveOBquOBqeOBjOacieWKueOBq+OBquOCiuOBvuOBmeOAglwiLFwic2VzX3NldHRpbmdzXCI6XCJTRVPoqK3lrppcIixcInRlc3RfY29ubmVjdGlvblwiOlwi5o6l57aa44OG44K544OIXCIsXCJjaGFuZ2Vfc2V0dGluZ1wiOlwi44GT44Gu6Kit5a6a44KS6YCU5Lit44Gn5aSJ5pu044GZ44KL44Go44CB44GT44KM44G+44Gn44Gr44Ki44OD44OX44Ot44O844OJ44GX44Gf44OV44Kh44Kk44Or562J44G444Gu44Ki44Kv44K744K544GM44Gn44GN44Gq44GP44Gq44KK44G+44GZ44Gu44Gn44GU5rOo5oSP5LiL44GV44GE44CCXCIsXCJyZWdpb25cIjpcIuODquODvOOCuOODp+ODs1wiLFwiYnVja2V0X25hbWVcIjpcIuODkOOCseODg+ODiOWQjVwiLFwiY3VzdG9tX2VuZHBvaW50XCI6XCLjgqvjgrnjgr/jg6Djgqjjg7Pjg4njg53jgqTjg7Pjg4hcIixcImN1c3RvbV9lbmRwb2ludF9jaGFuZ2VcIjpcIk1pbklP44Gq44Gp44CBUzPkupLmj5tBUEnjgpLmjIHjgaTku5bjga7jgqrjg5bjgrjjgqfjgq/jg4jjgrnjg4jjg6zjg7zjgrjjgrXjg7zjg5PjgrnjgpLkvb/nlKjjgZnjgovloLTlkIjjga7jgb/jgIHjgZ3jga7jgqjjg7Pjg4njg53jgqTjg7Pjg4jjga5VUkzjgpLlhaXlipvjgZfjgabjgY/jgaDjgZXjgYTjgILnqbrmrITjga7loLTlkIjjga/jgIFBbWF6b24gUzPjgpLkvb/nlKjjgZfjgb7jgZnjgIJcIixcInBsdWdpbl9zZXR0aW5nc1wiOlwi44OX44Op44Kw44Kk44Oz6Kit5a6aXCIsXCJlbmFibGVfcGx1Z2luX2xvYWRpbmdcIjpcIuODl+ODqeOCsOOCpOODs+OBruiqreOBv+i+vOOBv+OCkuacieWKueOBq+OBl+OBvuOBmeOAglwiLFwibG9hZF9wbHVnaW5zXCI6XCLjg5fjg6njgrDjgqTjg7PjgpLoqq3jgb/ovrzjgoBcIixcImVuYWJsZVwiOlwi5pyJ5Yq5XCIsXCJkaXNhYmxlXCI6XCLnhKHlirlcIixcInVzZV9lbnZfdmFyX2lmX2VtcHR5XCI6XCLjg4fjg7zjgr/jg5njg7zjgrnlgbTjga7lgKTjgYznqbrjga7loLTlkIjjgIHnkrDlooPlpInmlbAgPGNvZGU+e3t2YXJpYWJsZX19PC9jb2RlPiDjga7lgKTjgpLliKnnlKjjgZfjgb7jgZlcIixcIm5vdGVfZm9yX3RoZV9vbmx5X2Vudl9vcHRpb25cIjpcIuePvuWcqEdDU+ioreWumuOBr+eSsOWig+WkieaVsOOBruWApOOBq+OCiOOBo+OBpuWItumZkOOBleOCjOOBpuOBhOOBvuOBmTxicj7jgZPjga7oqK3lrprjgpLlpInmm7TjgZnjgovloLTlkIjjga/nkrDlooPlpInmlbAgPGNvZGU+e3tlbnZ9fTwvY29kZT4g44Gu5YCk44KSZmFsc2XjgavlpInmm7TjgoLjgZfjgY/jga/liYrpmaTjgZfjgabjgY/jgaDjgZXjgYRcIn0sXCJtYXJrZG93bl9zZXR0aW5nXCI6e1wibGluZUJyZWFrX2hlYWRlclwiOlwiTGluZSBCcmVha+ioreWumlwiLFwibGluZUJyZWFrX2Rlc2NcIjpcIkxpbmUgQnJlYWvjga7oqK3lrprjgpLlpInmm7TjgafjgY3jgb7jgZnjgIJcIixcImxpbmVCcmVha19vcHRpb25zXCI6e1wiZW5hYmxlX2xpbmVCcmVha1wiOlwiTGluZSBCcmVhayDjgpLmnInlirnjgavjgZnjgotcIixcImVuYWJsZV9saW5lQnJlYWtfZGVzY1wiOlwi44Oa44O844K444OG44Kt44K544OI5Lit44Gu5pS56KGM44KS44CBSFRNTOWGheOBpzxjb2RlPiZsdDticiZndDs8L2NvZGU+44Go44GX44Gm5omx44GE44G+44GZXCIsXCJlbmFibGVfbGluZUJyZWFrX2Zvcl9jb21tZW50XCI6XCLjgrPjg6Hjg7Pjg4jmrITjgacgTGluZSBCcmVhayDjgpLmnInlirnjgavjgZnjgotcIixcImVuYWJsZV9saW5lQnJlYWtfZm9yX2NvbW1lbnRfZGVzY1wiOlwi44Kz44Oh44Oz44OI5Lit44Gu5pS56KGM44KS44CBSFRNTOWGheOBpzxjb2RlPiZsdDticiZndDs8L2NvZGU+44Go44GX44Gm5omx44GE44G+44GZXCJ9LFwiaW5kZW50X2hlYWRlclwiOlwi44Kk44Oz44OH44Oz44OI6Kit5a6aXCIsXCJpbmRlbnRfZGVzY1wiOlwi44Kk44Oz44OH44Oz44OI44Gu6Kit5a6a44KS5aSJ5pu044Gn44GN44G+44GZ44CCXCIsXCJpbmRlbnRfb3B0aW9uc1wiOntcImluZGVudFNpemVcIjpcIuaXouWumuOBruOCpOODs+ODh+ODs+ODiOW5hVwiLFwiaW5kZW50U2l6ZV9kZXNjXCI6XCLml6Llrprjga7jgqTjg7Pjg4fjg7Pjg4jluYXjgpLmjIflrprjgZfjgb7jgZnjgIJcIixcImRpc2FsbG93X2luZGVudF9jaGFuZ2VcIjpcIuODpuODvOOCtuOBq+OCiOOCi+OCpOODs+ODh+ODs+ODiOW5heWkieabtOOCkuioseWPr+OBl+OBquOBhFwiLFwiZGlzYWxsb3dfaW5kZW50X2NoYW5nZV9kZXNjXCI6XCLjg6bjg7zjgrbjgavjg4fjg5Xjgqnjg6vjg4jjga7jgqTjg7Pjg4fjg7Pjg4jluYXjga7kvb/nlKjjgpLlvLfliLbjgZfjgb7jgZnjgIJcIn0sXCJwcmVzZW50YXRpb25faGVhZGVyXCI6XCLjg5fjg6zjgrzjg7Pjg4bjg7zjgrfjg6fjg7PoqK3lrppcIixcInByZXNlbnRhdGlvbl9kZXNjXCI6XCLjg5fjg6zjgrzjg7Pjg4bjg7zjgrfjg6fjg7Pjga7oqK3lrprjgpLlpInmm7TjgafjgY3jgb7jgZnjgIJcIixcInByZXNlbnRhdGlvbl9vcHRpb25zXCI6e1wicGFnZV9icmVha19zZXR0aW5nXCI6XCLmlLnpoIHjgpLoqK3lrprjgZnjgotcIixcInByZXNldF9vbmVfc2VwYXJhdG9yXCI6XCLjg5fjg6rjgrvjg4Pjg4ggMVwiLFwicHJlc2V0X29uZV9zZXBhcmF0b3JfZGVzY1wiOlwi6YCj57aa44GX44Gf56m66KGMM+ihjOOBp+aUuemggeOBl+OBvuOBmVwiLFwicHJlc2V0X29uZV9zZXBhcmF0b3JfdmFsdWVcIjpcIlxcXFxuXFxcXG5cXFxcblwiLFwicHJlc2V0X3R3b19zZXBhcmF0b3JcIjpcIuODl+ODquOCu+ODg+ODiCAyXCIsXCJwcmVzZXRfdHdvX3NlcGFyYXRvcl9kZXNjXCI6XCLpgKPntprjgZfjgZ/jg4/jgqTjg5Xjg7M144Gk44Gn5pS56aCB44GX44G+44GZXCIsXCJwcmVzZXRfdHdvX3NlcGFyYXRvcl92YWx1ZVwiOlwiLS0tLS1cIixcImN1c3RvbV9zZXBhcmF0b3JcIjpcIuOCq+OCueOCv+ODoFwiLFwiY3VzdG9tX3NlcGFyYXRvcl9kZXNjXCI6XCLmraPopo/ooajnj77jgpLoqK3lrprjgafjgY3jgb7jgZlcIn0sXCJ4c3NfaGVhZGVyXCI6XCJYU1MoQ3Jvc3MgU2l0ZSBTY3JpcHRpbmcp5a++562W6Kit5a6aXCIsXCJ4c3NfZGVzY1wiOlwi44Oe44O844Kv44OA44Km44Oz44OG44Kt44K544OI5YaF44GuIEhUTUwg44K/44Kw44Gu5omx44GE44KS6Kit5a6a44GX44CB5oKq5oSP44Gu44GC44KL44OX44Ot44Kw44Op44Og44GL44KJ44Gu5pS75pKD44KS6Ziy44GO44G+44GZXCIsXCJ4c3Nfb3B0aW9uc1wiOntcImVuYWJsZV94c3NfcHJldmVudGlvblwiOlwiWFNT44KS5oqR5Yi244GZ44KLXCIsXCJyZW1vdmVfYWxsX3RhZ3NcIjpcIuOBmeOBueOBpuOBruOCv+OCsOOCkuaKkeWItuOBmeOCi1wiLFwicmVtb3ZlX2FsbF90YWdzX2Rlc2NcIjpcIuOBmeOBueOBpuOBrkhUTUzjgr/jgrDjgajlsZ7mgKfjgpLkvb/nlKjkuI3lj6/jgavjgZfjgb7jgZlcIixcInJlY29tbWVuZGVkX3NldHRpbmdcIjpcIuOBiuOBmeOBmeOCgeioreWumlwiLFwiY3VzdG9tX3doaXRlbGlzdFwiOlwi44Kr44K544K/44Og44Ob44Ov44Kk44OI44Oq44K544OIXCIsXCJ0YWdfbmFtZXNcIjpcIuOCv+OCsOWQjVwiLFwidGFnX2F0dHJpYnV0ZXNcIjpcIuOCv+OCsOWxnuaAp1wiLFwiaW1wb3J0X3JlY29tbWVuZGVkXCI6XCJ7e3RhcmdldH19IOOBruOBiuOBmeOBmeOCgeOCkuOCpOODs+ODneODvOODiFwifX0sXCJjdXN0b21pemVfc2V0dGluZ1wiOntcImxheW91dFwiOlwi44Os44Kk44Ki44Km44OIXCIsXCJsYXlvdXRfb3B0aW9uc1wiOntcImRlZmF1bHRcIjpcIuODh+ODleOCqeODq+ODiOOBruOCs+ODs+ODhuODs+ODhOW5hVwiLFwiZXhwYW5kZWRcIjpcIuOCs+ODs+ODhuODs+ODhOW5hSAxMDAlXCJ9LFwidGhlbWVcIjpcIuODhuODvOODnlwiLFwidGhlbWVfZGVzY1wiOntcImxpZ2h0X2FuZF9kYXJrXCI6XCJMaWdodC9EYXJrIOODouODvOODiemBuOaKnuOBguOCilwiLFwidW5pcXVlXCI6XCLjg6Ljg7zjg4npgbjmip7jgarjgZdcIn0sXCJmdW5jdGlvblwiOlwi5qmf6IO9XCIsXCJmdW5jdGlvbl9kZXNjXCI6XCLmqZ/og73jga7mnInlirkv54Sh5Yq544KS6YG45oqe44Gn44GN44G+44GZ44CCXCIsXCJmdW5jdGlvbl9vcHRpb25zXCI6e1widGltZWxpbmVcIjpcIuOCv+OCpOODoOODqeOCpOODs+apn+iDvVwiLFwidGltZWxpbmVfZGVzYzFcIjpcIumFjeS4i+ODmuODvOOCuOOBruOCv+OCpOODoOODqeOCpOODs+OCkuihqOekuuOBp+OBjeOBvuOBmeOAglwiLFwidGltZWxpbmVfZGVzYzJcIjpcIumFjeS4i+ODmuODvOOCuOOBjOWkmuOBhOWgtOWQiOOBr+ODmuODvOOCuOODreODvOODieaZguOBruODkeODleOCqeODvOODnuODs+OCueOBjOiQveOBoeOBvuOBmeOAglwiLFwidGltZWxpbmVfZGVzYzNcIjpcIueEoeWKueWMluOBmeOCi+OBk+OBqOOBp+ODquOCueODiOODmuODvOOCuOOBruihqOekuuOCkumrmOmAn+WMluOBp+OBjeOBvuOBmeOAglwiLFwidGFiX3N3aXRjaFwiOlwi44K/44OW5aSJ5pu044KS44OW44Op44Km44K25bGl5q2044Gr5L+d5a2YXCIsXCJ0YWJfc3dpdGNoX2Rlc2MxXCI6XCLnt6jpm4bjgr/jg5bjgoTjg5Ljgrnjg4jjg6rjg7zjgr/jg5bnrYnjga7liIfjgormm7/jgYjjgpLjg5bjg6njgqbjgrblsaXmrbTjgavkv53lrZjjgZfjgIHjg5bjg6njgqbjgrbjga7miLvjgosv6YCy44KA5pON5L2c44Gu5a++6LGh44Gr44GX44G+44GZ44CCXCIsXCJ0YWJfc3dpdGNoX2Rlc2MyXCI6XCLnhKHlirnljJbjgZnjgovjgZPjgajjgafjgIHjg5rjg7zjgrjpgbfnp7vjga7jgb/jgpLmiLvjgosv6YCy44KA5pON5L2c44Gu5a++6LGh44Gr44GZ44KL44GT44Go44GM44Gn44GN44G+44GZ44CCXCIsXCJhdHRhY2hfdGl0bGVfaGVhZGVyXCI6XCLmlrDopo/jg5rjg7zjgrjkvZzmiJDmmYLjga4gaDEg44K744Kv44K344On44Oz6Ieq5YuV5oy/5YWlXCIsXCJhdHRhY2hfdGl0bGVfaGVhZGVyX2Rlc2NcIjpcIuaWsOimj+S9nOaIkOOBl+OBn+ODmuODvOOCuOOBrjHooYznm67jgavjgIHjg5rjg7zjgrjjga7jg5HjgrnjgpIgaDEg44K744Kv44K344On44Oz44Go44GX44Gm5oy/5YWl44GX44G+44GZ44CCXCIsXCJsaXN0X251bV9zXCI6XCLjg6Ljg7zjg4Djg6vjgavooajnpLrjgZXjgozjgovjg6rjgrnjg4jmlbBcIixcImxpc3RfbnVtX2Rlc2Nfc1wiOlwi44Oi44O844OA44Or44Gr44GK44GR44KLIDzjg5rjg7zjgrjjg6rjgrnjg4g+IDzjgr/jgqTjg6Djg6njgqTjg7M+IDzmm7TmlrDlsaXmrbQ+IDzmt7vku5jjg5XjgqHjgqTjg6s+44Gn44Gu44CBMeODmuODvOOCuOOBguOBn+OCiuOBruihqOekuuaVsOOCkuioreWumuOBl+OBvuOBmeOAglwiLFwibGlzdF9udW1fbVwiOlwi44Om44O844K244O844Oa44O844K444Gr6KGo56S644GV44KM44KL44Oq44K544OI5pWwXCIsXCJsaXN0X251bV9kZXNjX21cIjpcIuODpuODvOOCtuODvOODmuODvOOCuOOBq+OBiuOBkeOCiyA8Qm9va21hcmtzPiA8UmVjZW50bHkgQ3JlYXRlZD7jgafjga7jgIEx44Oa44O844K444GC44Gf44KK44Gu6KGo56S65pWw44KS6Kit5a6a44GX44G+44GZ44CCXCIsXCJsaXN0X251bV9sXCI6XCLmpJzntKLjg5rjg7zjgrjjgavooajnpLrjgZXjgozjgovjg6rjgrnjg4jmlbBcIixcImxpc3RfbnVtX2Rlc2NfbFwiOlwiPFNlYXJjaD7jgafjga7jgIEx44Oa44O844K444GC44Gf44KK44Gu6KGo56S65pWw44KS6Kit5a6a44GX44G+44GZ44CCXCIsXCJsaXN0X251bV94bFwiOlwiTm90IEZvdW5k44Oa44O844K444KEVHJhc2jjg5rjg7zjgrjjgavooajnpLrjgZXjgozjgovjg6rjgrnjg4jmlbBcIixcImxpc3RfbnVtX2Rlc2NfeGxcIjpcIuiomOS6i+OCqOODquOCouOBq+OBiuOBkeOCizxOb3QgRm91bmQ+IDxUcmFzaD7jgafjga7jgIEx44Oa44O844K444GC44Gf44KK44Gu6KGo56S65pWw44KS6Kit5a6a44GX44G+44GZ44CCXCIsXCJzdGFsZV9ub3RpZmljYXRpb25cIjpcIuWPpOOBhOODmuODvOOCuOOBq+mAmuefpeOCkuihqOekuuOBmeOCi1wiLFwic3RhbGVfbm90aWZpY2F0aW9uX2Rlc2NcIjpcIuacgOW+jOOBruabtOaWsOOBi+OCiTHlubTjgpLotoXjgYjjgovjg5rjg7zjgrjjgbjjga7pgJrnn6XjgpLooajnpLrjgZfjgb7jgZnjgIJcIixcInNob3dfYWxsX3JlcGx5X2NvbW1lbnRzXCI6XCLov5Tkv6HjgrPjg6Hjg7Pjg4jjgpLlhajjgabooajnpLrjgZnjgotcIixcInNob3dfYWxsX3JlcGx5X2NvbW1lbnRzX2Rlc2NcIjpcIk9GRuOBruWgtOWQiOOAgeacgOaWsDLku7bjga7jgrPjg6Hjg7Pjg4jku6XlpJbjgYznnIHnlaXjgZXjgozjgb7jgZnjgIJcIn0sXCJjb2RlX2hpZ2hsaWdodFwiOlwi44Kz44O844OJ44OP44Kk44Op44Kk44OIXCIsXCJub2Nkbl9kZXNjXCI6XCLjgZPjga7mqZ/og73jga/jgIHnkrDlooPlpInmlbAgPGNvZGU+Tk9fQ0ROPXRydWU8L2NvZGU+IOOBruaZguOBr+eEoeWKueWMluOBleOCjOOBvuOBmeOAgjxicj5HaXRIdWIg44K544K/44Kk44Or44GM6YGp55So44GV44KM44Gm44GE44G+44GZ44CCXCIsXCJjdXN0b21fdGl0bGVcIjpcIuOCq+OCueOCv+ODoCBUaXRsZVwiLFwiY3VzdG9tX3RpdGxlX2RldGFpbFwiOlwiPGNvZGU+Jmx0O3RpdGxlJmd0OzwvY29kZT7jgr/jgrDjga7jgrPjg7Pjg4bjg7Pjg4TjgpLjgqvjgrnjgr/jg57jgqTjgrrjgafjgY3jgb7jgZnjgILku6XkuIvjga7jg5fjg6zjg7zjgrnjg5vjg6vjg4Djg7zjga/oh6rli5XnmoTjgavnva7mj5vjgZXjgozjgb7jgZk6XCIsXCJjdXN0b21fdGl0bGVfZGV0YWlsX3BsYWNlaG9sZGVyMVwiOlwiPGNvZGU+JiMxMjM7JiMxMjM7c2l0ZW5hbWUmIzEyNTsmIzEyNTs8L2NvZGU+IC0g44GT44GuIFdpa2kg44Gu44K144Kk44OI5ZCNXCIsXCJjdXN0b21fdGl0bGVfZGV0YWlsX3BsYWNlaG9sZGVyMlwiOlwiPGNvZGU+JiMxMjM7JiMxMjM7cGFnZW5hbWUmIzEyNTsmIzEyNTs8L2NvZGU+IC0g54++5Zyo6KGo56S65Lit44Gu44Oa44O844K45ZCNXCIsXCJjdXN0b21fdGl0bGVfZGV0YWlsX3BsYWNlaG9sZGVyM1wiOlwiPGNvZGU+JiMxMjM7JiMxMjM7cGFnZXBhdGgmIzEyNTsmIzEyNTs8L2NvZGU+IC0g54++5Zyo6KGo56S65Lit44Gu44Oa44O844K444OR44K5XCIsXCJjdXN0b21faGVhZGVyXCI6XCLjgqvjgrnjgr/jg6AgSFRNTCBIZWFkZXJcIixcImN1c3RvbV9oZWFkZXJfZGV0YWlsXCI6XCLjgrfjgrnjg4bjg6DlhajkvZPjgavpgannlKjjgZXjgozjgosgSFRNTCDjgpLoqJjov7DjgafjgY3jgb7jgZnjgII8Y29kZT4mbHQ7aGVhZGVyJmd0OzwvY29kZT4g44K/44Kw5YaF44Gu5LuW44GuIDxjb2RlPiZsdDtzY3JpcHQmZ3Q7PC9jb2RlPiDjgr/jgrDoqq3jgb/ovrzjgb/liY3jgavlsZXplovjgZXjgozjgb7jgZnjgII8YnI+5aSJ5pu044Gu5Y+N5pig44Gv44Oa44O844K444Gu5pu05paw44GM5b+F6KaB44Gn44GZ44CCXCIsXCJjdXN0b21fY3NzXCI6XCLjgqvjgrnjgr/jg6AgQ1NTXCIsXCJ3cml0ZV9jc3NcIjpcIiDjgrfjgrnjg4bjg6DlhajkvZPjgavpgannlKjjgZXjgozjgotDU1PjgpLoqJjov7DjgafjgY3jgb7jgZnjgIJcIixcImN0cmxfc3BhY2VcIjpcIkN0cmwrU3BhY2Ug44Gn44Kz44O844OJ6KOc5a6MXCIsXCJjdXN0b21fc2NyaXB0XCI6XCLjgqvjgrnjgr/jg6Djgrnjgq/jg6rjg5fjg4hcIixcIndyaXRlX2phdmFcIjpcIuOCt+OCueODhuODoOWFqOS9k+OBq+mBqeeUqOOBleOCjOOCi0phdmFTY3JpcHTjgpLoqJjov7DjgafjgY3jgb7jgZnjgIJcIixcInJlZmxlY3RfY2hhbmdlXCI6XCLlpInmm7Tjga7lj43mmKDjga/jg5rjg7zjgrjjga7mm7TmlrDjgYzlv4XopoHjgafjgZnjgIJcIn0sXCJleHBvcnRfbWFuYWdlbWVudFwiOntcImV4cG9ydGluZ19jb2xsZWN0aW9uX2xpc3RcIjpcIuOCqOOCr+OCueODneODvOODiOS4reOBruOCs+ODrOOCr+OCt+ODp+ODs1wiLFwiZXhwb3J0ZWRfZGF0YV9saXN0XCI6XCLjgqjjgq/jgrnjg53jg7zjg4jjgZXjgozjgZ/jgqLjg7zjgqvjgqTjg5bjg6rjgrnjg4hcIixcImV4cG9ydF9jb2xsZWN0aW9uc1wiOlwi44Kz44Os44Kv44K344On44Oz44Gu44Ko44Kv44K544Od44O844OIXCIsXCJjaGVja19hbGxcIjpcIuWFqOOBpuOBq+ODgeOCp+ODg+OCr+OCkuS7mOOBkeOCi1wiLFwidW5jaGVja19hbGxcIjpcIuWFqOOBpuOBi+OCieODgeOCp+ODg+OCr+OCkuWkluOBmVwiLFwiZGVzY19wYXNzd29yZF9zZWVkXCI6XCI8cD7jg6bjg7zjgrbjg7zjg4fjg7zjgr/jgpLjg5Djg4Pjgq/jgqLjg4Pjg5cv44Oq44K544OI44Ki44GZ44KL5aC05ZCI44CB54++5Zyo44GuIDxjb2RlPlBBU1NXT1JEX1NFRUQ8L2NvZGU+IOOCkuaWsOOBl+OBhCBHUk9XSSDjgrfjgrnjg4bjg6Djgavjgrvjg4Pjg4jjgZnjgovjgZPjgajjgpLlv5jjgozjgarjgYTjgafjgY/jgaDjgZXjgYTjgILjgZXjgoLjgarjgY/jgbDjgIHjg6bjg7zjgrbjg7zjgYzjg5Hjgrnjg6/jg7zjg4njgafjg63jgrDjgqTjg7PjgafjgY3jgarjgY/jgarjgorjgb7jgZnjgII8YnI+PGJyPjxzdHJvbmc+44OS44Oz44OIOjwvc3Ryb25nPjxicj7nj77lnKjjga4gPGNvZGU+UEFTU1dPUkRfU0VFRDwvY29kZT4g44Gv44CB44Ko44Kv44K544Od44O844OI44GV44KM44KLIFpJUCDkuK3jga4gPGNvZGU+bWV0YS5qc29uPC9jb2RlPiDjgavkv53lrZjjgZXjgozjgb7jgZnjgII8L3A+XCIsXCJjcmVhdGVfbmV3X2FyY2hpdmVfZGF0YVwiOlwi44Ki44O844Kr44Kk44OW44OH44O844K/44Gu5paw6KaP5L2c5oiQXCIsXCJleHBvcnRcIjpcIuOCqOOCr+OCueODneODvOODiFwiLFwiY2FuY2VsXCI6XCLjgq3jg6Pjg7Pjgrvjg6tcIixcImZpbGVcIjpcIuODleOCoeOCpOODq+WQjVwiLFwiZ3Jvd2lfdmVyc2lvblwiOlwiR3Jvd2kg44OQ44O844K444On44OzXCIsXCJjb2xsZWN0aW9uc1wiOlwi44Kz44Os44Kv44K344On44OzXCIsXCJleHBvcnRlZF9hdFwiOlwi44Ko44Kv44K544Od44O844OI44GV44KM44Gf5pmC6ZaTXCIsXCJleHBvcnRfbWVudVwiOlwi44Ko44Kv44K544Od44O844OI44Oh44OL44Ol44O8XCIsXCJkb3dubG9hZFwiOlwi44OA44Km44Oz44Ot44O844OJXCIsXCJkZWxldGVcIjpcIuWJiumZpFwifSxcImltcG9ydGVyX21hbmFnZW1lbnRcIjp7XCJiZXRhX3dhcm5pbmdcIjpcIuOBk+OBruapn+iDveOBr+ODmeODvOOCv+eJiOOBp+OBmVwiLFwiaW1wb3J0X2Zyb21cIjpcInt7ZnJvbX19IOOBi+OCieOCpOODs+ODneODvOODiFwiLFwiaW1wb3J0X2dyb3dpX2FyY2hpdmVcIjpcIkdST1dJIOOCouODvOOCq+OCpOODluOCkuOCpOODs+ODneODvOODiFwiLFwiZ3Jvd2lfc2V0dGluZ3NcIjp7XCJkZXNjcmlwdGlvbl9vZl9pbXBvcnRfbW9kZVwiOntcImFib3V0XCI6XCLml6LlrZjjga7jg4fjg7zjgr/jgajlkIzlkI3jgafjgYLjgovjg4fjg7zjgr/jgpLjgqTjg7Pjg53jg7zjg4jjgZnjgovpmpvjga7mjJnli5Xjga/ku6XkuIvjga4z44Gk44Gu44Oi44O844OJ44GL44KJ6YG444G544G+44GZ44CCXCIsXCJpbnNlcnRcIjpcIkluc2VydDog5b2T6Kmy44OH44O844K/44Gu44Kk44Oz44Od44O844OI44KS44K544Kt44OD44OX44GX44G+44GZ44CCXCIsXCJ1cHNlcnRcIjpcIlVwc2VydDog5pei5a2Y44Gu44OH44O844K/44KS44Kk44Oz44Od44O844OI44OH44O844K/44Gn5LiK5pu444GN5pu05paw44GX44G+44GZ44CCXCIsXCJmbGFzaF9hbmRfaW5zZXJ0XCI6XCJGbGFzaCBhbmQgSW5zZXJ0OiDml6LlrZjjga7jg4fjg7zjgr/jgpLlrozlhajjgavliYrpmaTjgZfjgZ/lvozjgIHjgqTjg7Pjg53jg7zjg4jjgpLooYzjgYTjgb7jgZnjgIJcIn0sXCJncm93aV9hcmNoaXZlX2ZpbGVcIjpcIkdST1dJIOOCouODvOOCq+OCpOODluODleOCoeOCpOODq1wiLFwidXBsb2FkZWRfZGF0YVwiOlwi44Ki44OD44OX44Ot44O844OJ44GV44KM44Gf44OH44O844K/XCIsXCJleHRyYWN0ZWRfZmlsZVwiOlwi5bGV6ZaL44GV44KM44Gf44OV44Kh44Kk44OrXCIsXCJjb2xsZWN0aW9uXCI6XCLjgrPjg6zjgq/jgrfjg6fjg7NcIixcInVwbG9hZFwiOlwi44Ki44OD44OX44Ot44O844OJXCIsXCJkaXNjYXJkXCI6XCLjgqLjg4Pjg5fjg63jg7zjg4njgZfjgZ/jg4fjg7zjgr/jgpLnoLTmo4TjgZnjgotcIixcImVycm9yc1wiOntcImRpZmZlcmVudF92ZXJzaW9uc1wiOlwi54++5Zyo44GuR1JPV0njgajjgqLjg4Pjg5fjg63jg7zjg4njgZfjgZ/jg4fjg7zjgr/jga7jg5Djg7zjgrjjg6fjg7PjgYzpgZXjgYTjgb7jgZlcIixcImF0X2xlYXN0X29uZVwiOlwi44Kz44Os44Kv44K344On44Oz44GM6YG45oqe44GV44KM44Gm44GE44G+44Gb44KTXCIsXCJwYWdlX2FuZF9yZXZpc2lvblwiOlwiJ1BhZ2VzJyDjgaggJ1JldmlzaW9ucycg44Gv44K744OD44OI44Gn44Kk44Oz44Od44O844OI44GZ44KL5b+F6KaB44GM44GC44KK44G+44GZXCIsXCJkZXBlbmRzXCI6XCIne3tjb25kaXRpb259fScg44KS44Kk44Oz44Od44O844OI44GZ44KL5aC05ZCI44Gv44CBJ3t7dGFyZ2V0fX0nIOOCkuS4gOe3kuOBq+mBuOaKnuOBmeOCi+W/heimgeOBjOOBguOCiuOBvuOBmVwifSxcImNvbmZpZ3VyYXRpb25cIjp7XCJwYWdlc1wiOntcIm92ZXJ3cml0ZV9hdXRob3JcIjp7XCJsYWJlbFwiOlwi44Oa44O844K45L2c5oiQ6ICF44KS54++5Zyo44Gu44Om44O844K244O844Gn5LiK5pu444GN44GZ44KLXCIsXCJkZXNjXCI6XCJ1c2VycyDjgpLlkIzmmYLjgavlvqnlhYPjgZfjgarjgYTloLTlkIjjgIHjgZPjga7jgqrjg5fjgrfjg6fjg7Pjga88c3BhbiBjbGFzcz1cXFwidGV4dC1kYW5nZXJcXFwiPumdnuaOqOWlqDwvc3Bhbj7jgafjgZnjgIJcIn0sXCJzZXRfcHVibGljX3RvX3BhZ2VcIjp7XCJsYWJlbFwiOlwiJ3t7ZnJvbX19JyDoqK3lrprjga7jg5rjg7zjgrjjgpIgJ+WFrOmWiycg6Kit5a6a44Gr44GZ44KLXCIsXCJkZXNjXCI6XCLlhajjgabjga4gPGI+J3t7ZnJvbX19JzwvYj4g6Kit5a6a44Gu44Oa44O844K444GMPHNwYW4gY2xhc3M9XFxcInRleHQtZGFuZ2VyXFxcIj7lhajjg6bjg7zjgrbjg7zjgYvjgok8L3NwYW4+6Kqt44G/5Y+W44KK5Y+v6IO944Gr44Gq44KL44GT44Go44Gr5rOo5oSP44GX44Gm44GP44Gg44GV44GE44CCXCJ9LFwiaW5pdGlhbGl6ZV9tZXRhX2RhdGFzXCI6e1wibGFiZWxcIjpcIuOAjOOBhOOBhOOBreOAjeOAjOmWsuimp+OBl+OBn+ODpuODvOOCtuODvOOAjeOAjOOCs+ODoeODs+ODiOaVsOOAjeOCkuWIneacn+WMluOBmeOCi1wiLFwiZGVzY1wiOlwidXNlcnMg44KS5ZCM5pmC44Gr5b6p5YWD44GX44Gq44GE5aC05ZCI44CB44GT44Gu44Kq44OX44K344On44Oz44GvPHNwYW4gY2xhc3M9XFxcInRleHQtZGFuZ2VyXFxcIj7pnZ7mjqjlpag8L3NwYW4+44Gn44GZ44CCXCJ9LFwiaW5pdGlhbGl6ZV9oYWNrbWRfcmVsYXRlZF9kYXRhc1wiOntcImxhYmVsXCI6XCJIYWNrTUQg6Zai6YCj44OH44O844K/44KS5Yid5pyf5YyW44GZ44KLXCIsXCJkZXNjXCI6XCJIYWNrTUQg44Gr6YeN6KaB44Gq5LiL5pu444GN44OH44O844K/44GM44Gq44GE6ZmQ44KK44Gv44GT44Gu44Kq44OX44K344On44Oz44KS44OB44Kn44OD44Kv44GZ44KL44GT44Go44KS5o6o5aWo44GX44G+44GZ44CCXCJ9fSxcInJldmlzaW9uc1wiOntcIm92ZXJ3cml0ZV9hdXRob3JcIjp7XCJsYWJlbFwiOlwi44Oq44OT44K444On44Oz5L2c5oiQ6ICF44KS54++5Zyo44Gu44Om44O844K244O844Gn5LiK5pu444GN44GZ44KLXCIsXCJkZXNjXCI6XCJ1c2VycyDjgpLlkIzmmYLjgavlvqnlhYPjgZfjgarjgYTloLTlkIjjgIHjgZPjga7jgqrjg5fjgrfjg6fjg7Pjga88c3BhbiBjbGFzcz1cXFwidGV4dC1kYW5nZXJcXFwiPumdnuaOqOWlqDwvc3Bhbj7jgafjgZnjgIJcIn19fX0sXCJlc2Ffc2V0dGluZ3NcIjp7XCJ0ZWFtX25hbWVcIjpcIuODgeODvOODoOWQjVwiLFwiYWNjZXNzX3Rva2VuXCI6XCLjgqLjgq/jgrvjgrnjg4jjg7zjgq/jg7NcIixcInRlc3RfY29ubmVjdGlvblwiOlwi5o6l57aa44OG44K544OIXCJ9LFwicWlpdGFfc2V0dGluZ3NcIjp7XCJ0ZWFtX25hbWVcIjpcIuODgeODvOODoOWQjVwiLFwiYWNjZXNzX3Rva2VuXCI6XCLjgqLjgq/jgrvjgrnjg4jjg7zjgq/jg7NcIixcInRlc3RfY29ubmVjdGlvblwiOlwi5o6l57aa44OG44K544OIXCJ9LFwiaW1wb3J0XCI6XCLjgqTjg7Pjg53jg7zjg4hcIixcInNraXBfdXNlcm5hbWVfYW5kX2VtYWlsX3doZW5fb3ZlcmxhcHBlZFwiOlwi44Om44O844K244O85ZCN44G+44Gf44Gv44Oh44O844Or44Ki44OJ44Os44K544GM5ZCM44GY5aC05ZCI44CB44Gd44Gu6YOo5YiG44GM44K544Kt44OD44OX44GV44KM44G+44GZ44CCXCIsXCJwcmVwYXJlX25ld19hY2NvdW50X2Zvcl9taWdyYXRpb25cIjpcIuenu+ihjOeUqOOBruOCouOCq+OCpuODs+ODiOOCkuaWsOeSsOWig+OBp+eUqOaEj+OBl+OBpuOBj+OBoOOBleOBhOOAglwiLFwiYXJjaGl2ZV9kYXRhX2ltcG9ydF9kZXRhaWxcIjpcIuWPguiAg++8miBHUk9XSSBEb2NzIC0g44OH44O844K/44Gu44Kk44Oz44Od44O844OIXCIsXCJhZG1pbl9hcmNoaXZlX2RhdGFfaW1wb3J0X2d1aWRlX3VybFwiOlwiaHR0cHM6Ly9kb2NzLmdyb3dpLm9yZy9qYS9hZG1pbi1ndWlkZS9tYW5hZ2VtZW50LWNvb2tib29rL2ltcG9ydC5odG1sI2dyb3dpLSVFMyU4MiVBMiVFMyU4MyVCQyVFMyU4MiVBQiVFMyU4MiVBNCVFMyU4MyU5NiVFMyU4MyU4NyVFMyU4MyVCQyVFMyU4MiVCRiVFMyU4MiVBNCVFMyU4MyVCMyVFMyU4MyU5RCVFMyU4MyVCQyVFMyU4MyU4OFwiLFwicGFnZV9za2lwXCI6XCLml6LjgasgR1JPV0kg5YG044Gr5ZCM5ZCN44Gu44Oa44O844K444GM5a2Y5Zyo44GZ44KL5aC05ZCI44CB44Gd44Gu44Oa44O844K444Gv44K544Kt44OD44OX44GV44KM44G+44GZXCIsXCJEaXJlY3RvcnlfaGllcmFyY2h5X3RhZ1wiOlwi44OH44Kj44Os44Kv44OI44Oq6ZqO5bGk44K/44KwXCJ9LFwic2xhY2tfaW50ZWdyYXRpb25cIjp7XCJzZWxlY3RpbmdfYm90X3R5cGVzXCI6e1wic2xhY2tfYm90XCI6XCJTbGFjayBib3RcIixcImRldGFpbGVkX2V4cGxhbmF0aW9uXCI6XCLoqbPjgZfjgYToqqzmmI7jga/jgZPjgaHjgolcIixcIm9mZmljaWFsX2JvdFwiOlwiT2ZmaWNpYWwgYm90XCIsXCJjdXN0b21fYm90XCI6XCJDdXN0b20gYm90XCIsXCJ3aXRob3V0X3Byb3h5XCI6XCJ3aXRob3V0IHByb3h5XCIsXCJ3aXRoX3Byb3h5XCI6XCJ3aXRoIHByb3h5XCIsXCJyZWNvbW1lbmRlZFwiOlwi44GK44GZ44GZ44KBXCIsXCJzZXRfdXBcIjpcIuOCu+ODg+ODiOOCouODg+ODl1wiLFwibXVsdGlwbGVfd29ya3NwYWNlc19pbnRlZ3JhdGlvblwiOlwi6KSH5pWw44Ov44O844Kv44K544Oa44O844K544Go44Gu6YCj5pC6XCIsXCJzZWN1cml0eV9jb250cm9sXCI6XCLjgrvjgq3jg6Xjg6rjg4bjgqPjgrPjg7Pjg4jjg63jg7zjg6tcIixcImVhc3lcIjpcIuOBi+OCk+OBn+OCk1wiLFwibm9ybWFsXCI6XCLjgbXjgaTjgYZcIixcImhhcmRcIjpcIuOCgOOBmuOBi+OBl+OBhFwiLFwicG9zc2libGVcIjpcIuWPr+iDvVwiLFwiaW1wb3NzaWJsZVwiOlwi5LiN5Y+vXCJ9LFwiYm90X3Jlc2V0X3N1Y2Nlc3NmdWxcIjpcIkJvdOOBruioreWumuOCkua2iOWOu+OBl+OBvuOBl+OBn+OAglwiLFwiYWRkaW5nX3NsYWNrX3dzX2ludGVncmF0aW9uX3NldHRpbmdzX3N1Y2Nlc3NmdWxcIjpcIlNsYWNrIOODr+ODvOOCr+OCueODmuODvOOCueOBqOOBrumAo+aQuuioreWumuOCkui/veWKoOOBl+OBvuOBl+OBn+OAglwiLFwiYm90X2FsbF9yZXNldF9zdWNjZXNzZnVsXCI6XCLlhajjgabjga4gQm90IOOBruioreWumuOCkua2iOWOu+OBl+OBvuOBl+OBn+OAglwiLFwiY29waWVkX3RvX2NsaXBib2FyZFwiOlwi44Kv44Oq44OD44OX44Oc44O844OJ44Gr44Kz44OU44O844GV44KM44G+44GX44Gf44CCXCIsXCJzZXRfc2NvcGVcIjpcIlNsYWNr44Gu6Kit5a6a55S76Z2i44GL44KJQm90IFRva2VuIFNjb3Bl44KS6Kit5a6a44GX44Gm44GP44Gg44GV44GEXCIsXCJtb2RhbFwiOntcIndhcm5pbmdcIjpcIuazqOaEj1wiLFwic3VyZV9jaGFuZ2VfYm90X3R5cGVcIjpcIkJvdOOBrueorumhnuOCkuWkieabtOOBl+OBvuOBmeOBiz9cIixcImNoYW5nZXNfd2lsbF9iZV9kZWxldGVkXCI6XCLku5bjga5Cb3Tjga7oqK3lrprjgYzmtojljrvjgZXjgozjgb7jgZnjgIJcIixcImNhbmNlbFwiOlwi5Y+W5raIXCIsXCJjaGFuZ2VcIjpcIuWkieabtOOBmeOCi1wifSxcInVzZV9lbnZfdmFyX2lmX2VtcHR5XCI6XCLjg4fjg7zjgr/jg5njg7zjgrnlgbTjga7lgKTjgYznqbrjga7loLTlkIjjgIHnkrDlooPlpInmlbAgPGNvZGU+e3t2YXJpYWJsZX19PC9jb2RlPiDjga7lgKTjgpLliKnnlKjjgZfjgb7jgZlcIixcImFjY2Vzc190b2tlbl9zZXR0aW5nc1wiOntcInJlZ2VuZXJhdGVcIjpcIuWGjeeZuuihjFwifSxcImRlbGV0ZVwiOlwi5YmK6ZmkXCIsXCJpbnRlZ3JhdGlvbl9wcm9jZWR1cmVcIjpcIumAo+aQuuaJi+mghlwiLFwiY3VzdG9tX2JvdF93aXRob3V0X3Byb3h5X3NldHRpbmdzXCI6XCJDdXN0b20gQm90IHdpdGhvdXQgcHJveHkg6Kit5a6aXCIsXCJpbnRlZ3JhdGlvbl9mYWlsZWRcIjpcIumAo+aQuuOBq+WkseaVl+OBl+OBvuOBl+OBn1wiLFwicmVzZXRcIjpcIuODquOCu+ODg+ODiFwiLFwicmVzZXRfYWxsX3NldHRpbmdzXCI6XCLlhajjgabjga7oqK3lrprjgpLjg6rjgrvjg4Pjg4hcIixcImRlbGV0ZV9zbGFja2JvdF9zZXR0aW5nc1wiOlwiU2xhY2sgQm90IOioreWumuOCkuWJiumZpOOBmeOCi1wiLFwic2xhY2tib3Rfc2V0dGluZ3Nfbm90aWNlXCI6XCJTbGFrIOODr+ODvOOCr+OCueODmuODvOOCueOBrumAo+aQuuaJi+mghuOBjOWJiumZpOOBleOCjOOBvuOBmeOAgjxicj7jgojjgo3jgZfjgYTjgafjgZnjgYvvvJ9cIixcImFsbF9zZXR0aW5nc19vZl90aGVfYm90X3dpbGxfYmVfcmVzZXRcIjpcIkJvdOOBruWFqOOBpuOBruioreWumuOBjOODquOCu+ODg+ODiOOBleOCjOOBvuOBmeOAgjxicj7jgojjgo3jgZfjgYTjgafjgZnjgYvvvJ9cIixcImFjY29yZGlvblwiOntcImNyZWF0ZV9ib3RcIjpcIkJvdCDjgpLkvZzmiJDjgZnjgotcIixcImhvd190b19jcmVhdGVfYV9ib3RcIjpcIuS9nOaIkOaJi+mghuOBr+OBk+OBoeOCiVwiLFwiaG93X3RvX2luc3RhbGxcIjpcIuOCpOODs+OCueODiOODvOODq+aWueazleOBr+OBk+OBoeOCiVwiLFwiaW5zdGFsbF9ib3RfdG9fc2xhY2tcIjpcIkJvdCDjgpIgU2xhY2sg44Gr44Kk44Oz44K544OI44O844Or44GZ44KLXCIsXCJpbnN0YWxsX25vd1wiOlwi5LuK44GZ44GQ44Kk44Oz44K544OI44O844OrXCIsXCJnZW5lcmF0ZV9hY2Nlc3NfdG9rZW5cIjpcIkFjY2VzcyBUb2tlbuOBrueZuuihjFwiLFwicmVnaXN0ZXJfZm9yX2dyb3dpX29mZmljaWFsX2JvdF9wcm94eV9zZXJ2aWNlXCI6XCJHUk9XSSBPZmZpY2lhbCBCb3QgUHJveHkg44K144O844OT44K544G444Gu55m76YyyXCIsXCJyZWdpc3Rlcl9mb3JfZ3Jvd2lfY3VzdG9tX2JvdF9wcm94eVwiOlwiR1JPV0kgQ3VzdG9tIEJvdCBQcm94eSDjgbjjga7nmbvpjLJcIixcImVudGVyX2dyb3dpX3JlZ2lzdGVyX29uX3NsYWNrXCI6XCJTbGFja+S4iuOBpyA8Yj4vZ3Jvd2kgcmVnaXN0ZXI8L2I+IOOBqOaJk+OBoeOBvuOBmeOAglwiLFwicGFzdGVfZ3Jvd2lfdXJsXCI6XCLjg6Ljg7zjg4Djg6vjgYzooajnpLrjgZXjgozjgovjga7jgafjgIE8Yj5HUk9XSSBVUkw8L2I+IOOBq+OBr+S4i+iomOOBrlVSTOOCkuWFpeWKm+OBl+OBvuOBmeOAglwiLFwiZW50ZXJfYWNjZXNzX3Rva2VuX2Zvcl9ncm93aV9hbmRfcHJveHlcIjpcIuS4iuiomOOBp+eZuuihjOOBl+OBnzxiPkFjY2VzcyBUb2tlbiBQcm94eSB0byBHUk9XSTwvYj4g44GoIDxiPkFjY2VzcyBUb2tlbiBHUk9XSSB0byBQcm94eTwvYj7jgpLlhaXjgozjgotcIixcInNldF9wcm94eV91cmxfb25fZ3Jvd2lcIjpcIlByb3h544GuVVJM44KSR1JPV0njgavnmbvpjLLjgZnjgotcIixcImNvcHlfcHJveHlfdXJsXCI6XCIxLiDikaHjgYzmraPluLjjgavlrozkuobjgZnjgovjgajjgIHjg6Ljg7zjg4Djg6vlhoXjgafpgbjmip7jgZfjgZ9TbGFjayBDaGFubmVs44GrUHJveHkgVVJM44GM6KGo56S644GV44KM44KL44Gu44Gn44CB44Kz44OU44O844GX44G+44GZ44CCXCIsXCJlbnRlcl9wcm94eV91cmxfYW5kX3VwZGF0ZVwiOlwiMi4g6YCj5pC65omL6aCG4pGi44Gn44Kz44OU44O844GX44GfUHJveHkgVVJM44KS44CB44GT44Gu44Oa44O844K444GuPGI+Q3VzdG9tIGJvdCB3aXRoIHByb3h5IOmAo+aQujwvYj7jga48Yj5Qcm94eSBVUkw8L2I+44Gr5YWl5Yqb44CB5pu05paw44GX44G+44GZ44CCXCIsXCJkb250X25lZWRfdXBkYXRlXCI6XCLigLvml6LjgavlgKTjgYzlhaXjgaPjgabjgYTjgovloLTlkIjjga/mm7TmlrDjgZnjgovlv4XopoHjga/jgYLjgorjgb7jgZvjgpNcIixcInNlbGVjdF9pbnN0YWxsX3lvdXJfYXBwXCI6XCJJbnN0YWxsIHlvdXIgYXBwIOOCkuOCr+ODquODg+OCr+OBl+OBvuOBmeOAglwiLFwic2VsZWN0X2luc3RhbGxfdG9fd29ya3NwYWNlXCI6XCJJbnN0YWxsIHRvIFdvcmtzcGFjZSDjgpLjgq/jg6rjg4Pjgq/jgZfjgb7jgZnjgIJcIixcInJlZ2lzdGVyX3Byb3h5X3VybFwiOlwiUHJveHkg44GuIFVSTOOCkkdST1dJ44Gr55m76Yyy44GZ44KLXCIsXCJjbGlja19hbGxvd1wiOlwi6YG356e75YWI44Gu55S76Z2i44Gr44Gm44CBQWxsb3fjgpLjgq/jg6rjg4Pjgq/jgZfjgb7jgZnjgIJcIixcImluc3RhbGxfY29tcGxldGVfaWZfY2hlY2tlZFwiOlwiSW5zdGFsbCB5b3VyIGFwcCDjga7lj7PlgbTjgavnt5HoibLjga7jg4Hjgqfjg4Pjgq/jgYzjgaTjgZHjgbDjg6/jg7zjgq/jgrnjg5rjg7zjgrnjgbjjga7jgqTjg7Pjgrnjg4jjg7zjg6vlrozkuobjgafjgZnjgIJcIixcImludml0ZV9ib3RfdG9fY2hhbm5lbFwiOlwiR1JPV0kgYm90IOOCkuS9v+OBhOOBn+OBhOODgeODo+ODs+ODjeODq+OBqyBAZXhhbXBsZSDjgpLkvb/nlKjjgZfjgabmi5vlvoXjgZfjgb7jgZnjgIJcIixcInJlZ2lzdGVyX3NlY3JldF9hbmRfdG9rZW5cIjpcIlNpZ25pbmcgU2VjcmV0IOOBqCBCb3QgVG9rZW4g44KS55m76Yyy44GZ44KLXCIsXCJ0ZXN0X2Nvbm5lY3Rpb25cIjpcIumAo+aQuueKtuazgeOBruODhuOCueODiOOCkuOBmeOCi1wiLFwidGVzdF9jb25uZWN0aW9uX2J5X3ByZXNzaW5nX2J1dHRvblwiOlwi5Lul5LiL44Gu44OG44K544OI44Oc44K/44Oz44KS5oq844GX44Gm44CBU2xhY2vpgKPmkLrjgYzlrozkuobjgZfjgabjgYTjgovjgYvjga7norroqo3jgpLjgZfjgb7jgZfjgofjgYZcIixcImVycm9yX2NoZWNrX2xvZ3NfYmVsb3dcIjpcIuOCqOODqeODvOOBjOeZuueUn+OBl+OBvuOBl+OBn+OAguS4i+iomOOBruODreOCsOOCkueiuuiqjeOBl+OBpuOBj+OBoOOBleOBhOOAglwiLFwic2VuZF9tZXNzYWdlX3RvX3NsYWNrX3dvcmtfc3BhY2VcIjpcIlNsYWNrIOODr+ODvOOCr+OCueODmuODvOOCueOBq+mAgeS/oeOBl+OBvuOBl+OBn1wiLFwiYWRkX3NsYWNrX3dvcmtzcGFjZVwiOlwiU2xhY2vjg6/jg7zjgq/jgrnjg5rjg7zjgrnjgpLov73liqBcIn0sXCJjdXN0b21fYm90X3dpdGhvdXRfcHJveHlfaW50ZWdyYXRpb25cIjpcIkN1c3RvbSBib3Qgd2l0aG91dCBwcm94eSDpgKPmkLpcIixcImludGVncmF0aW9uX3NlbnRlbmNlXCI6e1wiaW50ZWdyYXRpb25faXNfbm90X2NvbXBsZXRlXCI6XCLpgKPmkLrjga/lrozkuobjgZfjgabjgYTjgb7jgZvjgpM8YnI+5LiL44Gu6YCj5pC65omL6aCG44KS6YCy44KB44Gm44GP44Gg44GV44GEXCIsXCJpbnRlZ3JhdGlvbl9zdWNjZXNzZnVsXCI6XCLpgKPmkLrjga/lrozkuobjgZfjgabjgYTjgb7jgZnjgIJcIixcImludGVncmF0aW9uX3NvbWVfd3NfaXNfbm90X2NvbXBsZXRlXCI6XCLpgKPmkLrjgavlpLHmlZfjgZfjgabjgYTjgosg44Ov44O844Kv44K544Oa44O844K544GM44GC44KK44G+44GZ44CCXCJ9LFwiY3VzdG9tX2JvdF93aXRoX3Byb3h5X2ludGVncmF0aW9uXCI6XCJDdXN0b20gYm90IHdpdGggcHJveHkg6YCj5pC6XCIsXCJvZmZpY2lhbF9ib3RfaW50ZWdyYXRpb25cIjpcIk9mZmljaWFsIGJvdCDpgKPmkLpcIixcImRvY3NfdXJsXCI6e1wic2xhY2tfaW50ZWdyYXRpb25cIjpcImh0dHBzOi8vZG9jcy5ncm93aS5vcmcvamEvYWRtaW4tZ3VpZGUvbWFuYWdlbWVudC1jb29rYm9vay9zbGFjay1pbnRlZ3JhdGlvbi9cIixcIm9mZmljaWFsX2JvdFwiOlwiaHR0cHM6Ly9kb2NzLmdyb3dpLm9yZy9qYS9hZG1pbi1ndWlkZS9tYW5hZ2VtZW50LWNvb2tib29rL3NsYWNrLWludGVncmF0aW9uLyNvZmZpY2lhbC1ib3QtJUU2JThFJUE4JUU1JUE1JUE4XCIsXCJjdXN0b21fYm90X3dpdGhvdXRfcHJveHlcIjpcImh0dHBzOi8vZG9jcy5ncm93aS5vcmcvamEvYWRtaW4tZ3VpZGUvbWFuYWdlbWVudC1jb29rYm9vay9zbGFjay1pbnRlZ3JhdGlvbi8jY3VzdG9tLWJvdC13aXRob3V0LXByb3h5XCIsXCJjdXN0b21fYm90X3dpdGhfcHJveHlcIjpcImh0dHBzOi8vZG9jcy5ncm93aS5vcmcvamEvYWRtaW4tZ3VpZGUvbWFuYWdlbWVudC1jb29rYm9vay9zbGFjay1pbnRlZ3JhdGlvbi8jY3VzdG9tLWJvdC13aXRoLXByb3h5XCIsXCJvZmZpY2lhbF9ib3Rfc2V0dGluZ1wiOlwiaHR0cHM6Ly9kb2NzLmdyb3dpLm9yZy9qYS9hZG1pbi1ndWlkZS9tYW5hZ2VtZW50LWNvb2tib29rL3NsYWNrLWludGVncmF0aW9uL29mZmljaWFsLWJvdC1zZXR0aW5ncy5odG1sXCIsXCJjdXN0b21fYm90X3dpdGhvdXRfcHJveHlfc2V0dGluZ1wiOlwiaHR0cHM6Ly9kb2NzLmdyb3dpLm9yZy9qYS9hZG1pbi1ndWlkZS9tYW5hZ2VtZW50LWNvb2tib29rL3NsYWNrLWludGVncmF0aW9uL2N1c3RvbS1ib3Qtd2l0aG91dC1wcm94eS1zZXR0aW5ncy5odG1sXCIsXCJjdXN0b21fYm90X3dpdGhfcHJveHlfc2V0dGluZ1wiOlwiaHR0cHM6Ly9kb2NzLmdyb3dpLm9yZy9qYS9hZG1pbi1ndWlkZS9tYW5hZ2VtZW50LWNvb2tib29rL3NsYWNrLWludGVncmF0aW9uL2N1c3RvbS1ib3Qtd2l0aC1wcm94eS1zZXR0aW5ncy5odG1sXCJ9fSxcInVzZXJfbWFuYWdlbWVudFwiOntcImludml0ZV91c2Vyc1wiOlwi5paw6KaP44Om44O844K244O844Gu5Luu55m66KGMXCIsXCJjbGlja190d2ljZV9zYW1lX2NoZWNrYm94XCI6XCLlsJHjgarjgY/jgajjgoLkuIDjgaTjga/jg4Hjgqfjg4Pjgq/jgZfjgabjgY/jgaDjgZXjgYTjgIJcIixcImludml0ZV9tb2RhbFwiOntcImVtYWlsc1wiOlwi44Oh44O844Or44Ki44OJ44Os44K5ICjopIfmlbDooYzlhaXlipvjgafopIfmlbDkurrnmbrooYzlj6/og70pXCIsXCJkZXNjcmlwdGlvbjFcIjpcIuODoeODvOODq+OCouODieODrOOCueOCkuS9v+eUqOOBl+OBpuaWsOimj+ODpuODvOOCtuODvOOCkuS7rueZuuihjOOBl+OBvuOBmeOAglwiLFwiZGVzY3JpcHRpb24yXCI6XCLliJ3lm57jga7jg63jgrDjgqTjg7PmmYLjgavkvb/nlKjjgZnjgovku67jg5Hjgrnjg6/jg7zjg4njgYznlJ/miJDjgZXjgozjgb7jgZnjgIJcIixcImludml0ZV90aHJ1X2VtYWlsXCI6XCLmi5vlvoXjg6Hjg7zjg6vjgpLpgIHkv6HjgZnjgotcIixcIm1haWxfc2V0dGluZ19saW5rXCI6XCI8aSBjbGFzcz0naWNvbi1zZXR0aW5ncyBtci0yJz48L2k+PGEgaHJlZj0nL2FkbWluL2FwcCc+44Oh44O844Or44Gu6Kit5a6aPC9hPlwiLFwidmFsaWRfZW1haWxcIjpcIuODoeODvOODq+OCouODieODrOOCueOCkuWFpeWKm+OBl+OBpuOBj+OBoOOBleOBhOOAglwiLFwidGVtcG9yYXJ5X3Bhc3N3b3JkXCI6XCLkvZzmiJDjgZfjgZ/jg6bjg7zjgrbjg7zjga/ku67jg5Hjgrnjg6/jg7zjg4njgYzoqK3lrprjgZXjgozjgabjgYTjgb7jgZnjgIJcIixcInNlbmRfbmV3X3Bhc3N3b3JkXCI6XCLmlrDopo/nmbrooYzjgZfjgZ/jg5Hjgrnjg6/jg7zjg4njgpLjgIHlr77osaHjg6bjg7zjgrbjg7zjgbjpgKPntaHjgZfjgabjgY/jgaDjgZXjgYTjgIJcIixcInNlbmRfdGVtcG9yYXJ5X3Bhc3N3b3JkXCI6XCLmi5vlvoXjg6Hjg7zjg6vjgpLpgIHjgaPjgabjgYTjgarjgYTloLTlkIjjgIHjgZPjga7nlLvpnaLjgafku67jg5Hjgrnjg6/jg7zjg4njgpLjgrPjg5Tjg7zjgZfjgIHmi5vlvoXogIXjgbjpgKPntaHjgZfjgabjgY/jgaDjgZXjgYTjgIJcIixcInNlbmRfZW1haWxcIjpcIuODpuODvOOCtuODvOODhuODvOODluODq+OBruODieODreODg+ODl+ODgOOCpuODs+OBi+OCieaLm+W+heODoeODvOODq+OBrumAgeS/oeOBvuOBn+OBr+WGjemAgeS/oeOCkuihjOOBhuOBk+OBqOOCguOBp+OBjeOBvuOBmeOAglwiLFwiZXhpc3RpbmdfZW1haWxcIjpcIuS7peS4i+OBrkVtYWls44Gv44GZ44Gn44Gr5a2Y5Zyo44GX44Gm44GE44G+44GZ44CCXCIsXCJpc3N1ZVwiOlwi55m66KGMXCJ9LFwidXNlcl90YWJsZVwiOntcImFkbWluaXN0cmF0b3JcIjpcIueuoeeQhuiAhVwiLFwiZWRpdF9tZW51XCI6XCLnt6jpm4bjg6Hjg4vjg6Xjg7xcIixcInJlc2V0X3Bhc3N3b3JkXCI6XCLjg5Hjgrnjg6/jg7zjg4njga7lho3nmbrooYxcIixcImFkbWluaXN0cmF0b3JfbWVudVwiOlwi566h55CG6ICF44Oh44OL44Ol44O8XCIsXCJhY2NlcHRcIjpcIuaJv+iqjeOBmeOCi1wiLFwiZGVhY3RpdmF0ZV9hY2NvdW50XCI6XCLjgqLjgqvjgqbjg7Pjg4jlgZzmraJcIixcInlvdXJfb3duXCI6XCLoh6rliIboh6rouqvjga7jgqLjgqvjgqbjg7Pjg4jjgpLlgZzmraLjgZnjgovjgZPjgajjga/jgafjgY3jgb7jgZvjgpNcIixcInJlbW92ZV9hZG1pbl9hY2Nlc3NcIjpcIueuoeeQhuiAheOBi+OCieWkluOBmVwiLFwiY2Fubm90X3JlbW92ZVwiOlwi6Ieq5YiG6Ieq6Lqr44KS566h55CG6ICF44GL44KJ5aSW44GZ44GT44Go44Gv44Gn44GN44G+44Gb44KTXCIsXCJnaXZlX2FkbWluX2FjY2Vzc1wiOlwi566h55CG6ICF44Gr44GZ44KLXCIsXCJzZW5kX2ludml0YXRpb25fZW1haWxcIjpcIuaLm+W+heODoeODvOODq+OBrumAgeS/oVwiLFwicmVzZW5kX2ludml0YXRpb25fZW1haWxcIjpcIuaLm+W+heODoeODvOODq+OBruWGjemAgeS/oVwifSxcInJlc2V0X3Bhc3N3b3JkXCI6XCLjg5Hjgrnjg6/jg7zjg4njga7jg6rjgrvjg4Pjg4hcIixcInJlc2V0X3Bhc3N3b3JkX21vZGFsXCI6e1wicGFzc3dvcmRfbmV2ZXJfc2VlblwiOlwi6KGo56S644GV44KM44Gf44OR44K544Ov44O844OJ44Gv44GT44Gu55S76Z2i44KS6ZaJ44GY44KL44Go5LqM5bqm44Go6KGo56S644Gn44GN44G+44Gb44KT44Gu44Gn44GU5rOo5oSP44GP44Gg44GV44GE44CCXCIsXCJwYXNzd29yZF9yZXNldF9tZXNzYWdlXCI6XCLlr77osaHjg6bjg7zjgrbjg7zjgavkuIvoqJjjga7jg5Hjgrnjg6/jg7zjg4njgpLkvJ3jgYjjgIHjgZnjgZDjgavmlrDjgZfjgY/liKXjga7jg5Hjgrnjg6/jg7zjg4njgpLoqK3lrprjgZnjgovjgojjgYbkvJ3jgYjjgabjgY/jgaDjgZXjgYTjgIJcIixcInNlbmRfbmV3X3Bhc3N3b3JkXCI6XCLmlrDopo/nmbrooYzjgZfjgZ/jg5Hjgrnjg6/jg7zjg4njgpLjgIHlr77osaHjg6bjg7zjgrbjg7zjgbjpgKPntaHjgZfjgabjgY/jgaDjgZXjgYTjgIJcIixcInRhcmdldF91c2VyXCI6XCLlr77osaHjg6bjg7zjgrbjg7xcIixcIm5ld19wYXNzd29yZFwiOlwi5paw44GX44GE44OR44K544Ov44O844OJXCJ9LFwiZXh0ZXJuYWxfYWNjb3VudFwiOlwi5aSW6YOo44Ki44Kr44Km44Oz44OI44Gu566h55CGXCIsXCJleHRlcm5hbF9hY2NvdW50c1wiOlwi5aSW6YOo44Ki44Kr44Km44Oz44OIXCIsXCJjcmVhdGVfZXh0ZXJuYWxfYWNjb3VudFwiOlwi5aSW6YOo44Ki44Kr44Km44Oz44OI44Gu5L2c5oiQXCIsXCJleHRlcm5hbF9hY2NvdW50X2xpc3RcIjpcIuWklumDqOOCouOCq+OCpuODs+ODiOS4gOimp1wiLFwiZXh0ZXJuYWxfYWNjb3VudF9ub25lXCI6XCLlpJbpg6jjgqLjgqvjgqbjg7Pjg4jjga/jgYLjgorjgb7jgZvjgpNcIixcImludml0ZVwiOlwi5oub5b6F44GZ44KLXCIsXCJpbnZpdGVkXCI6XCLjg6bjg7zjgrbjg7zjgpLmi5vlvoXjgZfjgb7jgZfjgZ9cIixcImJhY2tfdG9fdXNlcl9tYW5hZ2VtZW50XCI6XCLjg6bjg7zjgrbjg7znrqHnkIbjgavmiLvjgotcIixcImF1dGhlbnRpY2F0aW9uX3Byb3ZpZGVyXCI6XCLoqo3oqLzmg4XloLHjg5fjg63jg5DjgqTjg4BcIixcIm1hbmFnZVwiOlwi5pON5L2cXCIsXCJwYXNzd29yZF9zZXR0aW5nXCI6XCLjg5Hjgrnjg6/jg7zjg4noqK3lrppcIixcInBhc3N3b3JkX3NldHRpbmdfaGVscFwiOlwi6Zai6YCj5LuY44GR44KJ44KM44Gm44GE44KL44Om44O844K244O844GM44OR44K544Ov44O844OJ44KS6Kit5a6a44GX44Gm44GE44KL44GL44Gp44GG44GL44KS6KGo56S644GX44G+44GZXCIsXCJzZXRcIjpcIuioreWumua4iOOBv1wiLFwidW5zZXRcIjpcIuacquioreWumlwiLFwicmVsYXRlZF91c2VybmFtZVwiOlwi6Zai6YCj5LuY44GR44KJ44KM44Gm44GE44KL44Om44O844K244O844GuIFwiLFwiY2Fubm90X2ludml0ZV9tYXhpbXVtX3VzZXJzXCI6XCLjg6bjg7zjgrbjg7zjgYzkuIrpmZDjgavpgZTjgZfjgZ/jgZ/jgoHmi5vlvoXjgafjgY3jgb7jgZvjgpPjgIJcIixcImN1cnJlbnRfdXNlcnNcIjpcIuePvuWcqOOBruODpuODvOOCtuODvOaVsO+8mlwifSxcInVzZXJfZ3JvdXBfbWFuYWdlbWVudFwiOntcImNyZWF0ZV9ncm91cFwiOlwi5paw6KaP44Kw44Or44O844OX44Gu5L2c5oiQXCIsXCJkZW55X2NyZWF0ZV9ncm91cFwiOlwi5paw6KaP44Kw44Or44O844OX44Gu5L2c5oiQ44Gv44Gn44GN44G+44Gb44KT44CCXCIsXCJncm91cF9uYW1lXCI6XCLjgrDjg6vjg7zjg5flkI1cIixcImdyb3VwX2V4YW1wbGVcIjpcIuS+izogR3JvdXAxXCIsXCJhZGRfbW9kYWxcIjp7XCJhZGRfdXNlclwiOlwi44Kw44Or44O844OX44G444Gu44Om44O844K244O86L+95YqgXCIsXCJzZWFyY2hfb3B0aW9uXCI6XCLmpJzntKLjgqrjg5fjgrfjg6fjg7NcIixcImVuYWJsZV9vcHRpb25cIjpcInt7b3B0aW9ufX3jgpLmnInlirnjgavjgZnjgotcIixcImZvcndhcmRfbWF0Y2hcIjpcIuWJjeaWueS4gOiHtFwiLFwicGFydGlhbF9tYXRjaFwiOlwi6YOo5YiG5LiA6Ie0XCIsXCJiYWNrd2FyZF9tYXRjaFwiOlwi5b6M5pa55LiA6Ie0XCJ9LFwiZ3JvdXBfbGlzdFwiOlwi44Kw44Or44O844OX5LiA6KanXCIsXCJiYWNrX3RvX2xpc3RcIjpcIuOCsOODq+ODvOODl+S4gOimp+OBq+aIu+OCi1wiLFwiYmFzaWNfaW5mb1wiOlwi5Z+65pys5oOF5aCxXCIsXCJ1c2VyX2xpc3RcIjpcIuODpuODvOOCtuODvOS4gOimp1wiLFwiY3JlYXRlZF9ncm91cFwiOlwi44Kw44Or44O844OX44KS5L2c5oiQ44GX44G+44GX44GfXCIsXCJpc19sb2FkaW5nX2RhdGFcIjpcIuODh+ODvOOCv+OCkuWPluW+l+S4reOBp+OBmS4uLlwiLFwibm9fcGFnZXNcIjpcIuOCsOODq+ODvOODl+OBjOmWsuimp+aoqemZkOOCkuS/neacieOBmeOCi+ODmuODvOOCuOOBr+OBguOCiuOBvuOBm+OCk1wiLFwicmVtb3ZlX2Zyb21fZ3JvdXBcIjpcIuOCsOODq+ODvOODl+OBi+OCieWkluOBmVwiLFwiZGVsZXRlX21vZGFsXCI6e1wiaGVhZGVyXCI6XCLjgrDjg6vjg7zjg5fjga7liYrpmaRcIixcImRlc2NcIjpcIuOCsOODq+ODvOODl+WPiuOBs+mZkOWumuWFrOmWi+OBruODmuODvOOCuOOBruWJiumZpOOCkuihjOOBhuOBqOWFg+OBq+aIu+OBmeOBk+OBqOOBr+OBp+OBjeOBvuOBm+OCk+OBruOBp+OBlOazqOaEj+OBj+OBoOOBleOBhOOAglwiLFwiZHJvcGRvd25fZGVzY1wiOlwi5YmK6Zmk44GZ44KL44Kw44Or44O844OX44Gu6ZmQ5a6a5YWs6ZaL44Oa44O844K444Gu5Yem55CG44KS6YG45oqe44GX44Gm44GP44Gg44GV44GEXCIsXCJzZWxlY3RfZ3JvdXBcIjpcIuOCsOODq+ODvOODl+OCkumBuOaKnuOBl+OBpuOBj+OBoOOBleOBhFwiLFwibm9fZ3JvdXBzXCI6XCLjgrDjg6vjg7zjg5fjgYzjgYLjgorjgb7jgZvjgpNcIixcInB1Ymxpc2hfcGFnZXNcIjpcIuWFqOOBpuWFrOmWi+OBmeOCi1wiLFwiZGVsZXRlX3BhZ2VzXCI6XCLlhajjgabliYrpmaTjgZnjgotcIixcInRyYW5zZmVyX3BhZ2VzXCI6XCLlhajjgabku5bjga7jgrDjg6vjg7zjg5fjgavnp7vorbLjgZnjgotcIn19fSxcIm1ldGFcIjp7XCJpZFwiOlwiamFfSlBcIixcImRpc3BsYXlOYW1lXCI6XCLml6XmnKzoqp5cIixcImFsaWFzZXNcIjpbXCJqYVwiXX0sXCJ0cmFuc2xhdGlvblwiOntcIkhlbHBcIjpcIuODmOODq+ODl1wiLFwidmlld1wiOlwiVmlld1wiLFwiRWRpdFwiOlwi57eo6ZuGXCIsXCJEZWxldGVcIjpcIuWJiumZpFwiLFwiZGVsZXRlX2FsbFwiOlwi5YWo44Gm5YmK6ZmkXCIsXCJEdXBsaWNhdGVcIjpcIuikh+ijvVwiLFwiQ29weVwiOlwi44Kz44OU44O8XCIsXCJwcmV2aWV3XCI6XCLjg5fjg6zjg5Pjg6Xjg7xcIixcImRlc2t0b3BcIjpcIuODkeOCveOCs+ODs1wiLFwicGhvbmVcIjpcIuOCueODnuODm1wiLFwidGFibGV0XCI6XCLjgr/jg5bjg6zjg4Pjg4hcIixcIkNsaWNrIHRvIGNvcHlcIjpcIuOCr+ODquODg+OCr+OBp+OCs+ODlOODvFwiLFwiTW92ZS9SZW5hbWVcIjpcIuenu+WLlS/lkI3liY3lpInmm7RcIixcIk1vdmVkXCI6XCLnp7vli5XjgZfjgb7jgZfjgZ9cIixcIlJlZGlyZWN0ZWRcIjpcIuODquODgOOCpOODrOOCr+ODiOOBleOCjOOBvuOBl+OBn1wiLFwiVW5saW5rZWRcIjpcIuODquODgOOCpOODrOOCr+ODiOWJiumZpFwiLFwiTGlrZSFcIjpcIuOBhOOBhOOBre+8gVwiLFwiU2VlbiBieVwiOlwi6KaL44Gf5Lq6XCIsXCJEb25lXCI6XCLlrozkuoZcIixcIkNhbmNlbFwiOlwi44Kt44Oj44Oz44K744OrXCIsXCJDcmVhdGVcIjpcIuS9nOaIkFwiLFwiQWRtaW5cIjpcIueuoeeQhlwiLFwiYWRtaW5pc3RyYXRvclwiOlwi566h55CG6ICFXCIsXCJUYWdcIjpcIuOCv+OCsFwiLFwiVGFnc1wiOlwi44K/44KwXCIsXCJOZXdcIjpcIuS9nOaIkFwiLFwiQ2xvc2VcIjpcIumWieOBmOOCi1wiLFwiU2hvcnRjdXRzXCI6XCLjgrfjg6fjg7zjg4jjgqvjg4Pjg4hcIixcImVnXCI6XCLkvos6XCIsXCJhZGRcIjpcIui/veWKoFwiLFwiVW5kb1wiOlwi5YWD44Gr5oi744GZXCIsXCJBcnRpY2xlXCI6XCLoqJjkuotcIixcIlBhZ2VcIjpcIuODmuODvOOCuFwiLFwiUGFnZSBQYXRoXCI6XCLjg5rjg7zjgrjjg5HjgrlcIixcIkNhdGVnb3J5XCI6XCLjgqvjg4bjgrTjg6rjg7xcIixcIlVzZXJcIjpcIuODpuODvOOCtuODvFwiLFwic3RhdHVzXCI6XCLjgrnjg4bjg7zjgr/jgrlcIixcImFjY291bnRfaWRcIjpcIuOCouOCq+OCpuODs+ODiElEXCIsXCJJbml0aWFsaXplXCI6XCLliJ3mnJ/ljJZcIixcIlVwZGF0ZVwiOlwi5pu05pawXCIsXCJVcGRhdGUgUGFnZVwiOlwi44Oa44O844K444KS5pu05pawXCIsXCJXYXJuaW5nXCI6XCLms6jmhI9cIixcIlNpZ24gaW5cIjpcIuODreOCsOOCpOODs1wiLFwiU2lnbiB1cCBpcyBoZXJlXCI6XCLmlrDopo/nmbvpjLLjga/jgZPjgaHjgolcIixcIlNpZ24gaW4gaXMgaGVyZVwiOlwi44Ot44Kw44Kk44Oz44Gv44GT44Gh44KJXCIsXCJTaWduIHVwXCI6XCLmlrDopo/nmbvpjLJcIixcIlNpZ24gdXAgd2l0aCBHb29nbGUgQWNjb3VudFwiOlwiR29vZ2xlIOOBp+eZu+mMslwiLFwiU2lnbiBpbiB3aXRoIEdvb2dsZSBBY2NvdW50XCI6XCJHb29nbGUg44Gn44Ot44Kw44Kk44OzXCIsXCJTaWduIHVwIHdpdGggdGhpcyBHb29nbGUgQWNjb3VudFwiOlwi44GT44GuIEdvb2dsZSDjgqLjgqvjgqbjg7Pjg4jjgafnmbvpjLLjgZfjgb7jgZlcIixcIkV4YW1wbGVcIjpcIuS+i1wiLFwiVGFybyBZYW1hZGFcIjpcIuWxseeUsCDlpKrpg45cIixcIkxpc3QgVmlld1wiOlwi44Oq44K544OI6KGo56S6XCIsXCJUaW1lbGluZSBWaWV3XCI6XCLjgr/jgqTjg6Djg6njgqTjg7NcIixcIkhpc3RvcnlcIjpcIuabtOaWsOWxpeattFwiLFwiYXR0YWNobWVudF9kYXRhXCI6XCLmt7vku5jjg4fjg7zjgr9cIixcIk5vX2F0dGFjaG1lbnRzX3lldFwiOlwiTm8gYXR0YWNobWVudHMgeWV0LlwiLFwiUHJlc2VudGF0aW9uIE1vZGVcIjpcIuODl+ODrOOCvOODs+ODhuODvOOCt+ODp+ODs1wiLFwiVGhlIGVuZFwiOlwi44GK44GX44G+44GEXCIsXCJOb3QgYXZhaWxhYmxlIGZvciBndWVzdFwiOlwi44Ky44K544OI44Om44O844K244O844Gv5Yip55So44Gn44GN44G+44Gb44KTXCIsXCJDcmVhdGUgQXJjaGl2ZSBQYWdlXCI6XCLjgqLjg7zjgqvjgqTjg5bjg5rjg7zjgrjjga7kvZzmiJBcIixcIlRhcmdldCBwYWdlXCI6XCLlr77osaHjg5rjg7zjgrhcIixcIkZpbGUgdHlwZVwiOlwi44OV44Kh44Kk44Or5b2i5byPXCIsXCJJbmNsdWRlIEF0dGFjaG1lbnQgRmlsZVwiOlwi5re75LuY44OV44Kh44Kk44Or44KC5ZCr44KB44KLXCIsXCJJbmNsdWRlIENvbW1lbnRcIjpcIuOCs+ODoeODs+ODiOOCguWQq+OCgeOCi1wiLFwiSW5jbHVkZSBTdWJvcmRpbmF0ZWQgUGFnZVwiOlwi6YWN5LiL44Oa44O844K444KC5ZCr44KB44KLXCIsXCJBbGwgU3Vib3JkaW5hdGVkIFBhZ2VcIjpcIuWFqOOBpuOBrumFjeS4i+ODmuODvOOCuFwiLFwiU3BlY2lmeSBIaWVyYXJjaHlcIjpcIumajuWxpOOBrua3seOBleOCkuaMh+WumlwiLFwiU3VibWl0dGVkIHRoZSByZXF1ZXN0IHRvIGNyZWF0ZSB0aGUgYXJjaGl2ZVwiOlwi44Ki44O844Kr44Kk44OW5L2c5oiQ44Gu44Oq44Kv44Ko44K544OI44KS5q2j5bi444Gr6YCB5L+h44GX44G+44GX44GfXCIsXCJ1c2VybmFtZVwiOlwi44Om44O844K244O85ZCNXCIsXCJDcmVhdGVkXCI6XCLkvZzmiJDml6VcIixcIkxhc3QgdXBkYXRlZFwiOlwi5pyA57WC5pu05pawXCIsXCJMYXN0X0xvZ2luXCI6XCLmnIDntYLjg63jgrDjgqTjg7NcIixcIlNoYXJlXCI6XCLlhbHmnIlcIixcIk1hcmtkb3duIExpbmtcIjpcIk1hcmtkb3du5b2i5byP44Gu44Oq44Oz44KvXCIsXCJDcmVhdGUvRWRpdCBUZW1wbGF0ZVwiOlwi44OG44Oz44OX44Os44O844OI44Oa44O844K444Gu5L2c5oiQL+e3qOmbhlwiLFwiR28gdG8gdGhpcyB2ZXJzaW9uXCI6XCLjgZPjga7jg5Djg7zjgrjjg6fjg7PjgpLopovjgotcIixcIlZpZXcgZGlmZlwiOlwi5beu5YiG44KS6KGo56S6XCIsXCJObyBkaWZmXCI6XCLlt67liIbjgarjgZdcIixcIlVzZXIgSURcIjpcIuODpuODvOOCtuODvElEXCIsXCJVc2VyIEluZm9ybWF0aW9uXCI6XCLjg6bjg7zjgrbjg7zmg4XloLFcIixcIkJhc2ljIEluZm9cIjpcIuODpuODvOOCtuODvOOBruWfuuacrOaDheWgsVwiLFwiTmFtZVwiOlwi5ZCN5YmNXCIsXCJFbWFpbFwiOlwi44Oh44O844Or44Ki44OJ44Os44K5XCIsXCJMYW5ndWFnZVwiOlwi6KiA6KqeXCIsXCJFbmdsaXNoXCI6XCLoi7Hoqp5cIixcIkphcGFuZXNlXCI6XCLml6XmnKzoqp5cIixcIlNldCBQcm9maWxlIEltYWdlXCI6XCLjg5fjg63jg5XjgqPjg7zjg6vnlLvlg4/jga7oqK3lrppcIixcIlVwbG9hZCBJbWFnZVwiOlwi55S75YOP44KS44Ki44OD44OX44Ot44O844OJXCIsXCJDdXJyZW50IEltYWdlXCI6XCLnj77lnKjjga7nlLvlg49cIixcIkRlbGV0ZSBJbWFnZVwiOlwi55S75YOP44KS5YmK6ZmkXCIsXCJEZWxldGUgdGhpcyBpbWFnZT9cIjpcIuWJiumZpOOBl+OBpuOCiOOCjeOBl+OBhOOBp+OBmeOBi++8n1wiLFwiVXBkYXRlZFwiOlwi5pu05paw44GX44G+44GX44GfXCIsXCJVcGxvYWQgbmV3IGltYWdlXCI6XCLmlrDjgZfjgYTnlLvlg4/jgpLjgqLjg4Pjg5fjg63jg7zjg4lcIixcIkNvbm5lY3RlZFwiOlwi5o6l57aa44GV44KM44Gm44GE44G+44GZXCIsXCJTaG93XCI6XCLlhazplotcIixcIkhpZGVcIjpcIumdnuWFrOmWi1wiLFwiRGlzY2xvc2UgRS1tYWlsXCI6XCLjg6Hjg7zjg6vjgqLjg4njg6zjgrnjga7lhazplotcIixcInBhZ2UgZXhpc3RzXCI6XCLjgZPjga7jg5rjg7zjgrjjga/jgZnjgafjgavlrZjlnKjjgZfjgabjgYTjgb7jgZlcIixcIkVycm9yIG9jY3VycmVkXCI6XCLjgqjjg6njg7zjgYznmbrnlJ/jgZfjgb7jgZfjgZ9cIixcIkNyZWF0ZSB0b2RheSdzXCI6XCLku4rml6Xjga7il6/il6/jgpLkvZzmiJBcIixcIk1lbW9cIjpcIuODoeODolwiLFwiSW5wdXQgcGFnZSBuYW1lXCI6XCLjg5rjg7zjgrjlkI3jgpLlhaXliptcIixcIklucHV0IHBhZ2UgbmFtZSAob3B0aW9uYWwpXCI6XCLjg5rjg7zjgrjlkI3jgpLlhaXlipso56m65qyET0spXCIsXCJOZXcgUGFnZVwiOlwi5paw6KaP44Oa44O844K4XCIsXCJDcmVhdGUgdW5kZXJcIjpcIuODmuODvOOCuOOCkuS7peS4i+OBq+S9nOaIkFwiLFwiV2lraSBNYW5hZ2VtZW50IEhvbWUgUGFnZVwiOlwiV2lraeeuoeeQhuODiOODg+ODl1wiLFwiQXBwIFNldHRpbmdzXCI6XCLjgqLjg5fjg6roqK3lrppcIixcIlNpdGUgVVJMIHNldHRpbmdzXCI6XCLjgrXjgqTjg4hVUkzoqK3lrppcIixcIk1hcmtkb3duIFNldHRpbmdzXCI6XCLjg57jg7zjgq/jg4Djgqbjg7PoqK3lrppcIixcIkN1c3RvbWl6ZVwiOlwi44Kr44K544K/44Oe44Kk44K6XCIsXCJOb3RpZmljYXRpb24gU2V0dGluZ3NcIjpcIumAmuefpeioreWumlwiLFwic2xhY2tfaW50ZWdyYXRpb25cIjpcIlNsYWNr6YCj5pC6XCIsXCJFeHRlcm5hbF9Ob3RpZmljYXRpb25cIjpcIuWklumDqOODhOODvOODq+OBuOOBrumAmuefpVwiLFwiTGVnYWN5X1NsYWNrX0ludGVncmF0aW9uXCI6XCJTbGFja+mAo+aQuiAo44Os44Ks44K344O8KVwiLFwiVXNlcl9NYW5hZ2VtZW50XCI6XCLjg6bjg7zjgrbjg7znrqHnkIZcIixcImV4dGVybmFsX2FjY291bnRfbWFuYWdlbWVudFwiOlwi5aSW6YOo44Ki44Kr44Km44Oz44OI566h55CGXCIsXCJVc2VyR3JvdXAgTWFuYWdlbWVudFwiOlwi44Kw44Or44O844OX566h55CGXCIsXCJGdWxsIFRleHQgU2VhcmNoIE1hbmFnZW1lbnRcIjpcIuWFqOaWh+aknOe0oueuoeeQhlwiLFwiSW1wb3J0IERhdGFcIjpcIuODh+ODvOOCv+OCpOODs+ODneODvOODiFwiLFwiRXhwb3J0IEFyY2hpdmUgRGF0YVwiOlwi44OH44O844K/44Ki44O844Kr44Kk44OWXCIsXCJCYXNpYyBTZXR0aW5nc1wiOlwi5Z+65pys6Kit5a6aXCIsXCJSZWdpc3RlciBsaW1pdGF0aW9uXCI6XCLnmbvpjLLjga7liLbpmZBcIixcIlRoZSBjb250ZW50cyBlbnRlcmVkIGhlcmUgd2lsbCBiZSBzaG93biBpbiB0aGUgaGVhZGVyIGV0Y1wiOlwi44GT44GT44Gr5YWl5Yqb44GX44Gf5YaF5a6544Gv44CB44OY44OD44OA44O8562J44Gr6KGo56S644GV44KM44G+44GZ44CCXCIsXCJQdWJsaWNcIjpcIuWFrOmWi1wiLFwiQW55b25lIHdpdGggdGhlIGxpbmtcIjpcIuODquODs+OCr+OCkuefpeOBo+OBpuOBhOOCi+S6uuOBruOBv1wiLFwiU3BlY2lmaWVkIHVzZXJzXCI6XCLnibnlrprjg6bjg7zjgrbjg7zjga7jgb9cIixcIk9ubHkgbWVcIjpcIuiHquWIhuOBruOBv1wiLFwiT25seSBpbnNpZGUgdGhlIGdyb3VwXCI6XCLnibnlrprjgrDjg6vjg7zjg5fjga7jgb9cIixcInBhZ2VfbGlzdFwiOlwi44Oa44O844K444Oq44K544OIXCIsXCJzY29wZV9vZl9wYWdlX2Rpc2Nsb3N1cmVcIjpcIuODmuODvOOCuOOBruWFrOmWi+evhOWbslwiLFwic2V0X3BvaW50XCI6XCLoqK3lrprlgKRcIixcImFsd2F5c19kaXNwbGF5ZWRcIjpcIuihqOekuiAo5Zu65a6aKVwiLFwiYWx3YXlzX2hpZGRlblwiOlwi6Z2e6KGo56S6ICjlm7rlrpopXCIsXCJkaXNwbGF5ZWRfb3JfaGlkZGVuXCI6XCLooajnpLogLyDpnZ7ooajnpLpcIixcIlJlc2VsZWN0IHRoZSBncm91cFwiOlwi44Kw44Or44O844OX44Gu5YaN6YG45oqeXCIsXCJTaGFyZWFibGUgbGlua1wiOlwi44GT44Gu44Oa44O844K444Gu5YWx5pyJ55SoVVJMXCIsXCJUaGUgd2hpdGVsaXN0IG9mIHJlZ2lzdHJhdGlvbiBwZXJtaXNzaW9uIEUtbWFpbCBhZGRyZXNzXCI6XCLnmbvpjLLoqLHlj6/jg6Hjg7zjg6vjgqLjg4njg6zjgrnjga48YnI+44Ob44Ov44Kk44OI44Oq44K544OIXCIsXCJBZGQgdGFncyBmb3IgdGhpcyBwYWdlXCI6XCLjgr/jgrDjgpLku5jjgZHjgotcIixcIllvdSBoYXZlIG5vIHRhZywgWW91IGNhbiBzZXQgdGFncyBvbiBwYWdlc1wiOlwi5L2/55So5Lit44Gu44K/44Kw44GM44GC44KK44G+44Gb44KTXCIsXCJTaG93IGxhdGVzdFwiOlwi5pyA5paw44Gu44Oa44O844K444KS6KGo56S6XCIsXCJMb2FkIGxhdGVzdFwiOlwi5pyA5paw54mI44KS6Kqt44G/6L6844KAXCIsXCJlZGl0ZWQgdGhpcyBwYWdlXCI6XCLjgZXjgpPjgYzjgZPjga7jg5rjg7zjgrjjgpLnt6jpm4bjgZfjgb7jgZfjgZ/jgIJcIixcIkxpc3QgRHJhZnRzXCI6XCLkuIvmm7jjgY3kuIDopqdcIixcIkRlbGV0ZWQgUGFnZXNcIjpcIuWJiumZpOa4iOOBv+ODmuODvOOCuFwiLFwiU2lnbiBvdXRcIjpcIuODreOCsOOCouOCpuODiFwiLFwiRGlzYXNzb2NpYXRlXCI6XCLpgKPmkLrop6PpmaRcIixcIkNvbG9yIG1vZGVcIjpcIuOCq+ODqeODvOODouODvOODiVwiLFwiU2lkZWJhciBtb2RlXCI6XCLjgrXjgqTjg4njg5Djg7zjg6Ljg7zjg4lcIixcIlNpZGViYXIgbW9kZSBvbiBFZGl0b3JcIjpcIuOCteOCpOODieODkOODvOODouODvOODiSjnt6jpm4bmmYIpXCIsXCJObyBib29rbWFya3MgeWV0XCI6XCJObyBib29rbWFya3MgeWV0XCIsXCJSZWNlbnQgQ3JlYXRlZFwiOlwi5pyA5paw44Gu5L2c5oiQXCIsXCJSZWNlbnQgQ2hhbmdlc1wiOlwi5pyA5paw44Gu5aSJ5pu0XCIsXCJvcmlnaW5hbF9wYXRoXCI6XCLlhYPjga7jg5HjgrlcIixcIm5ld19wYXRoXCI6XCLmlrDjgZfjgYTjg5HjgrlcIixcImR1cGxpY2F0ZWRfcGF0aFwiOlwi6YeN6KSH44GX44Gf44OR44K5XCIsXCJMaW5rIHNoYXJpbmcgaXMgZGlzYWJsZWRcIjpcIuODquODs+OCr+OBruOCt+OCp+OCouOBr+eEoeWKueWMluOBleOCjOOBpuOBhOOBvuOBmVwiLFwicGVyc29uYWxfZHJvcGRvd25cIjp7XCJob21lXCI6XCLjg5vjg7zjg6BcIixcInNldHRpbmdzXCI6XCLoqK3lrppcIixcImNvbG9yX21vZGVcIjpcIuOCq+ODqeODvOODouODvOODiVwiLFwic2lkZWJhcl9tb2RlXCI6XCLjgrXjgqTjg4njg5Djg7zjg6Ljg7zjg4lcIixcInNpZGViYXJfbW9kZV9lZGl0b3JcIjpcIuOCteOCpOODieODkOODvOODouODvOODiSjnt6jpm4bmmYIpXCIsXCJ1c2Vfb3Nfc2V0dGluZ3NcIjpcIk9T6Kit5a6a44KS5Yip55So44GZ44KLXCJ9LFwiZm9ybV92YWxpZGF0aW9uXCI6e1wiZXJyb3JfbWVzc2FnZVwiOlwi44GE44GP44Gk44GL44Gu5YCk44GM6Kit5a6a44GV44KM44Gm44GE44G+44Gb44KTXCIsXCJyZXF1aXJlZFwiOlwiJXPjgavlgKTjgpLlhaXlipvjgZfjgabjgY/jgaDjgZXjgYRcIixcImludmFsaWRfc3ludGF4XCI6XCIlc+OBruani+aWh+OBjOS4jeato+OBp+OBmVwifSxcIm5vdF9mb3VuZF9wYWdlXCI6e1wiQ3JlYXRlIFBhZ2VcIjpcIuODmuODvOOCuOOCkuS9nOaIkOOBmeOCi1wiLFwicGFnZV9ub3RfZXhpc3RcIjpcIuOBk+OBruODmuODvOOCuOOBr+WtmOWcqOOBl+OBvuOBm+OCk+OAglwiLFwicGFnZV9ub3RfZXhpc3RfYWxlcnRcIjpcIuOBk+OBruODmuODvOOCuOOBr+WtmOWcqOOBl+OBvuOBm+OCk+OAguaWsOOBn+OBq+S9nOaIkOOBmeOCi+W/heimgeOBjOOBguOCiuOBvuOBmeOAglwifSxcImN1c3RvbV9uYXZpZ2F0aW9uXCI6e1wibm9fcGFnZV9saXN0XCI6XCLjgZPjga7jg5rjg7zjgrjjga7phY3kuIvjgavjga/jg5rjg7zjgrjjgYzlrZjlnKjjgZfjgb7jgZvjgpPjgIJcIixcImxpbmtfc2hhcmluZ19pc19kaXNhYmxlZFwiOlwi44Oq44Oz44Kv44Gu44K344Kn44Ki44Gv54Sh5Yq55YyW44GV44KM44Gm44GE44G+44GZXCJ9LFwiaW5zdGFsbGVyXCI6e1wic2V0dXBcIjpcIuOCu+ODg+ODiOOCouODg+ODl1wiLFwiY3JlYXRlX2luaXRpYWxfYWNjb3VudFwiOlwi5pyA5Yid44Gu44Ki44Kr44Km44Oz44OI44Gu5L2c5oiQXCIsXCJpbml0aWFsX2FjY291bnRfd2lsbF9iZV9hZG1pbmlzdHJhdG9yX2F1dG9tYXRpY2FsbHlcIjpcIuWIneOCgeOBq+S9nOaIkOOBmeOCi+OCouOCq+OCpuODs+ODiOOBr+OAgeiHquWLleeahOOBq+euoeeQhuiAheaoqemZkOOBjOS7mOS4juOBleOCjOOBvuOBmVwiLFwidW5hdmFsaWFibGVfdXNlcl9pZFwiOlwi44GT44Gu44Om44O844K244O8SUTjga/liKnnlKjjgafjgY3jgb7jgZvjgpPjgIJcIn0sXCJicmVha2luZ19jaGFuZ2VzXCI6e1widjM0Nl91c2luZ19iYXNpY19hdXRoXCI6XCLnj77lnKjliKnnlKjkuK3jga4gQmFzaWMg6KqN6Ki85qmf6IO944Gv44CB6L+R44GE5bCG5p2lPHN0cm9uZz7lu4PmraLjgZXjgozjgb7jgZk8L3N0cm9uZz7jgIIlcyDjgYvjgonoqK3lrprjgpLliYrpmaTjgZfjgabjgY/jgaDjgZXjgYTjgIJcIn0sXCJwYWdlX3JlZ2lzdGVyXCI6e1wibm90aWNlXCI6e1wicmVzdHJpY3RlZFwiOlwi44GT44GuIFdpa2kg44G444Gu5paw6KaP55m76Yyy44Gv5Yi26ZmQ44GV44KM44Gm44GE44G+44GZ44CCXCIsXCJyZXN0cmljdGVkX2RlZmFpbFwiOlwi5Yip55So44KS6ZaL5aeL44GZ44KL44Gr44Gv44CB5paw6KaP55m76Yyy5b6M44CB566h55CG6ICF44Gr44KI44KL5om/6KqN44GM5b+F6KaB44Gn44GZ44CCXCJ9LFwiZm9ybV9oZWxwXCI6e1wiZW1haWxcIjpcIuOBk+OBriBXaWtpIOOBp+OBr+S7peS4i+OBruODoeODvOODq+OCouODieODrOOCueOBruOBv+eZu+mMsuWPr+iDveOBp+OBmeOAglwiLFwicGFzc3dvcmRcIjpcIuODkeOCueODr+ODvOODieOBq+OBr+OAgTbmloflrZfku6XkuIrjga7ljYrop5Loi7HmlbDlrZfjgb7jgZ/jga/oqJjlj7fnrYnjgpLoqK3lrprjgZfjgabjgY/jgaDjgZXjgYTjgIJcIixcInVzZXJfaWRcIjpcIuODpuODvOOCtuODvElE44Gv44CB44Om44O844K244O844Oa44O844K444GuVVJM44Gq44Gp44Gr5Yip55So44GV44KM44G+44GZ44CC5Y2K6KeS6Iux5pWw5a2X44Go5LiA6YOo44Gu6KiY5Y+344Gu44G/5Yip55So44Gn44GN44G+44GZ44CCXCJ9fSxcInBhZ2VfbWVcIjp7XCJmb3JtX2hlbHBcIjp7XCJwcm9maWxlX2ltYWdlMVwiOlwi55S75YOP44KS44Ki44OD44OX44Ot44O844OJ44KS44GZ44KL44Gf44KB44Gu6Kit5a6a44GM44GV44KM44Gm44GE44G+44Gb44KT44CCXCIsXCJwcm9maWxlX2ltYWdlMlwiOlwi44Ki44OD44OX44Ot44O844OJ44Gn44GN44KL44KI44GG44Gr44GZ44KL44Gr44Gv44CBQVdTIOOBvuOBn+OBr+ODreODvOOCq+ODq+OCouODg+ODl+ODreODvOODieOBruioreWumuOCkuOBl+OBpuOBj+OBoOOBleOBhOOAglwifX0sXCJwYWdlX21lX2FwaXRva2VuXCI6e1wiYXBpX3Rva2VuXCI6XCJBUEkgVG9rZW5cIixcIm5vdGljZVwiOntcImFwaXRva2VuX2lzc3VlZFwiOlwiQVBJIFRva2VuIOOBjOioreWumuOBleOCjOOBpuOBhOOBvuOBm+OCk+OAglwiLFwidXBkYXRlX3Rva2VuMVwiOlwiQVBJIFRva2VuIOOCkuabtOaWsOOBmeOCi+OBqOOAgeiHquWLleeahOOBq+aWsOOBl+OBhCBUb2tlbiDjgYznlJ/miJDjgZXjgozjgb7jgZnjgIJcIixcInVwZGF0ZV90b2tlbjJcIjpcIuePvuWcqOOBriBUb2tlbiDjgpLliKnnlKjjgZfjgabjgYTjgovlh6bnkIbjga/li5XjgYvjgarjgY/jgarjgorjgb7jgZnjgIJcIn0sXCJmb3JtX2hlbHBcIjp7fX0sXCJQYXNzd29yZFwiOlwi44OR44K544Ov44O844OJXCIsXCJQYXNzd29yZCBTZXR0aW5nc1wiOlwi44OR44K544Ov44O844OJ6Kit5a6aXCIsXCJwZXJzb25hbF9zZXR0aW5nc1wiOntcImRpc2Fzc29jaWF0ZV9leHRlcm5hbF9hY2NvdW50XCI6XCJFeHRlcm5hbCBBY2NvdW50IOOBrumAo+aQuuino+mZpFwiLFwiZGlzYXNzb2NpYXRlX2V4dGVybmFsX2FjY291bnRfZGVzY1wiOlwiPHN0cm9uZz57e3Byb3ZpZGVyVHlwZX19PC9zdHJvbmc+IOODl+ODreODkOOCpOODgOODvOOBriA8c3Ryb25nPnt7YWNjb3VudElkfX08L3N0cm9uZz4g44Ki44Kr44Km44Oz44OI44KS6YCj5pC66Kej6Zmk44GX44G+44GZXCIsXCJzZXRfbmV3X3Bhc3N3b3JkXCI6XCLjg5Hjgrnjg6/jg7zjg4njgpLmlrDopo/jgavoqK3lrppcIixcInVwZGF0ZV9wYXNzd29yZFwiOlwi44OR44K544Ov44O844OJ44KS5pu05pawXCIsXCJjdXJyZW50X3Bhc3N3b3JkXCI6XCLnj77lnKjjga7jg5Hjgrnjg6/jg7zjg4lcIixcIm5ld19wYXNzd29yZFwiOlwi5paw44GX44GE44OR44K544Ov44O844OJXCIsXCJuZXdfcGFzc3dvcmRfY29uZmlybVwiOlwiKOeiuuiqjeeUqClcIixcInBhc3N3b3JkX2lzX25vdF9zZXRcIjpcIuODkeOCueODr+ODvOODieOBjOioreWumuOBleOCjOOBpuOBhOOBvuOBm+OCk1wifSxcInNlY3VyaXR5X3NldHRpbmdzXCI6XCLjgrvjgq3jg6Xjg6rjg4bjgqPoqK3lrppcIixcInNoYXJlX2xpbmtzXCI6e1wiU2hlcmUgdGhpcyBwYWdlIGxpbmsgdG8gcHVibGljXCI6XCLlpJbpg6jjgavlhbHmnInjgZnjgovjg6rjg7Pjgq/jgpLnmbrooYzjgZnjgotcIixcInNoYXJlX2xpbmtfbGlzdFwiOlwi5YWx5pyJ44Oq44Oz44Kv44Oq44K544OIXCIsXCJzaGFyZV9saW5rX21hbmFnZW1lbnRcIjpcIuWFseacieODquODs+OCr+euoeeQhlwiLFwiTm9fc2hhcmVfbGlua3NcIjpcIuWFseacieODquODs+OCr+OBjOWtmOWcqOOBl+OBvuOBm+OCk1wiLFwiU2hhcmUgTGlua1wiOlwi5YWx5pyJ55So44Oq44Oz44KvXCIsXCJQYWdlIFBhdGhcIjpcIuODmuODvOOCuOODkeOCuVwiLFwic2hhcmVfbGlua19ub3RpY2VcIjpcIuWFseacieODquODs+OCr+OCkuWFqOOBpuWJiumZpOOBl+OBvuOBmVwiLFwiZGVsZXRlX2FsbF9zaGFyZV9saW5rc1wiOlwi5YWo44Gm44Gu5YWx5pyJ44Oq44Oz44Kv44KS5YmK6Zmk44GX44G+44GZXCIsXCJleHBpcmVcIjpcIuacieWKueacn+mZkFwiLFwiRGF5c1wiOlwi5pel6ZaTXCIsXCJDdXN0b21cIjpcIuOCq+OCueOCv+ODoFwiLFwiZGVzY3JpcHRpb25cIjpcIuamguimgVwiLFwiZW50ZXJfZGVzY1wiOlwi5qaC6KaB44KS5YWl5YqbXCIsXCJVbmxpbWl0ZWRcIjpcIueEoeacn+mZkFwiLFwiSXNzdWVcIjpcIueZuuihjFwiLFwic2hhcmVfc2V0dGluZ3NcIjpcIuWFseacieioreWumlwiLFwiSW52YWxpZF9OdW1iZXJfb2ZfRGF0ZVwiOlwi5pyJ5Yq55pyf6ZmQ44Gu5pel5pWw44Gr44Gv5pW05pWw44KS5YWl5Yqb44GX44Gm44GP44Gg44GV44GEXCJ9LFwiQVBJIFNldHRpbmdzXCI6XCJBUEnoqK3lrppcIixcIkFQSSBUb2tlbiBTZXR0aW5nc1wiOlwiQVBJIFRva2Vu6Kit5a6aXCIsXCJDdXJyZW50IEFQSSBUb2tlblwiOlwi54++5Zyo44GuQVBJIFRva2VuXCIsXCJVcGRhdGUgQVBJIFRva2VuXCI6XCJBUEkgVG9rZW7jgpLmm7TmlrBcIixcImhlYWRlcl9zZWFyY2hfYm94XCI6e1wibGFiZWxcIjp7XCJBbGwgcGFnZXNcIjpcIuWFqOOBpuOBruODmuODvOOCuFwiLFwiVGhpcyB0cmVlXCI6XCLjgZPjga7pmo7lsaRcIn0sXCJpdGVtX2xhYmVsXCI6e1wiQWxsIHBhZ2VzXCI6XCLlhajjgabjga7jg5rjg7zjgrhcIixcIlRoaXMgdHJlZVwiOlwi44GT44Gu6ZqO5bGk5LiL44Gu5a2Q44Oa44O844K444Gu44G/XCJ9fSxcImNvcHlfdG9fY2xpcGJvYXJkXCI6e1wiQ29weSB0byBjbGlwYm9hcmRcIjpcIuOCr+ODquODg+ODl+ODnOODvOODieOBq+OCs+ODlOODvFwiLFwiUGFnZSBwYXRoXCI6XCLjg5rjg7zjgrjlkI1cIixcIlBhZ2UgVVJMXCI6XCLjg5rjg7zjgrhVUkxcIixcIlBlcm1hbmVudCBsaW5rXCI6XCLjg5Hjg7zjg57jg6rjg7Pjgq9cIixcIlBhZ2UgcGF0aCBhbmQgcGVybWFuZW50IGxpbmtcIjpcIuODmuODvOOCuOWQjeOBqOODkeODvOODnuODquODs+OCr1wiLFwiTWFya2Rvd24gbGlua1wiOlwi44Oe44O844Kv44OA44Km44Oz5b2i5byP44Gu44Oq44Oz44KvXCJ9LFwic2VhcmNoX2hlbHBcIjp7XCJ0aXRsZVwiOlwi5qSc57Si44Gu44OY44Or44OXXCIsXCJhbmRcIjp7XCJzeW50YXggaGVscFwiOlwi44K544Oa44O844K55Yy65YiH44KKXCIsXCJkZXNjXCI6XCLjg5rjg7zjgrjlkI0gb3Ig5pys5paH44GrIHt7d29yZDF9fSwge3t3b3JkMn19IOOBruS4oeaWueOCkuWQq+OCgOODmuODvOOCuOOCkuaknOe0olwifSxcImV4Y2x1ZGVcIjp7XCJkZXNjXCI6XCLjg5rjg7zjgrjlkI0gb3Ig5pys5paH44GrIHt7d29yZH19IOOCkuWQq+OCgOODmuODvOOCuOOCkumZpOWkllwifSxcInBocmFzZVwiOntcInN5bnRheCBoZWxwXCI6XCLjg4Djg5bjg6vjgq/jgqnjg7zjg4jjgaflm7LjgYZcIixcImRlc2NcIjpcInt7cGhyYXNlfX0g44Go44GE44GG5paH56ug44KS5ZCr44KA44Oa44O844K444KS5qSc57SiXCJ9LFwicHJlZml4XCI6e1wiZGVzY1wiOlwi44Oa44O844K45ZCN44GMIHt7cGF0aH19IOOBi+OCieWni+OBvuOCi+ODmuODvOOCuOOBq+e1nuOCi1wifSxcImV4Y2x1ZGVfcHJlZml4XCI6e1wiZGVzY1wiOlwi44Oa44O844K45ZCN44GMIHt7cGF0aH19IOOBi+OCieWni+OBvuOCi+ODmuODvOOCuOOCkumZpOWkllwifSxcInRhZ1wiOntcImRlc2NcIjpcInt7dGFnfX0g44Go44GE44GG44K/44Kw44KS5ZCr44KA44Oa44O844K444KS5qSc57SiXCJ9LFwiZXhjbHVkZV90YWdcIjp7XCJkZXNjXCI6XCJ7e3RhZ319IOOBqOOBhOOBhuOCv+OCsOOCkuWQq+OCgOODmuODvOOCuOOCkumZpOWkllwifX0sXCJzZWFyY2hcIjp7XCJzZWFyY2ggcGFnZSBib2RpZXNcIjpcIltFbnRlcl0g44Kt44O85oq85LiL44Gn5YWo5paH5qSc57SiXCJ9LFwicGFnZV9wYWdlXCI6e1wibm90aWNlXCI6e1widmVyc2lvblwiOlwi44GT44KM44Gv54++5Zyo44Gu54mI44Gn44Gv44GC44KK44G+44Gb44KT44CCXCIsXCJtb3ZlZFwiOlwi44GT44Gu44Oa44O844K444GvXCIsXCJtb3ZlZF9wZXJpb2RcIjpcIuOBi+OCieenu+WLleOBl+OBvuOBl+OBn+OAglwiLFwicmVkaXJlY3RlZFwiOlwi44Oq44OA44Kk44Os44Kv44OI5YWDID4+XCIsXCJyZWRpcmVjdGVkX3BlcmlvZFwiOlwiXCIsXCJkdXBsaWNhdGVkXCI6XCLjgZPjga7jg5rjg7zjgrjjga9cIixcImR1cGxpY2F0ZWRfcGVyaW9kXCI6XCLjgYvjgonopIfoo73jgZXjgozjgb7jgZfjgZ/jgIJcIixcInVubGlua2VkXCI6XCLjgZPjga7jg5rjg7zjgrjjgbjjga7jg6rjg4DjgqTjg6zjgq/jg4jjga/liYrpmaTjgZXjgozjgb7jgZfjgZ/jgIJcIixcInJlc3RyaWN0ZWRcIjpcIuOBk+OBruODmuODvOOCuOOBrumWsuimp+OBr+WItumZkOOBleOCjOOBpuOBhOOBvuOBmVwiLFwic3RhbGVcIjpcIuOBk+OBruODmuODvOOCuOOBr+acgOe1guabtOaWsOaXpeOBi+OCiXt7Y291bnR9feW5tOS7peS4iuOBjOe1jOmBjuOBl+OBpuOBhOOBvuOBmeOAglwiLFwiZXhwaXJhdGlvblwiOlwi44GT44Gu5YWx5pyJ44OR44O844Oe44Oq44Oz44Kv44Gu5pyJ5Yq55pyf6ZmQ44GvIDxzdHJvbmc+e3tleHBpcmVkQXR9fTwvc3Ryb25nPiDjgafjgZnjgIJcIixcIm5vX2RlYWRsaW5lXCI6XCLjgZPjga7jg5rjg7zjgrjjgavmnInlirnmnJ/pmZDjga/oqK3lrprjgZXjgozjgabjgYTjgb7jgZvjgpPjgIJcIn19LFwicGFnZV90YWJsZV9vZl9jb250ZW50c1wiOntcImVtcHR5XCI6XCLnm67mrKHjga/nqbrjgafjgZlcIn0sXCJwYWdlX2VkaXRcIjp7XCJTaG93IGFjdGl2ZSBsaW5lXCI6XCLjgqLjgq/jg4bjgqPjg5booYzjgpLjg4/jgqTjg6njgqTjg4hcIixcImF1dG9fZm9ybWF0X3RhYmxlXCI6XCLooajjga7oh6rli5XmlbTlvaJcIixcIm92ZXJ3cml0ZV9zY29wZXNcIjpcInt7b3BlcmF0aW9ufX3jgajlkIzmmYLjgavlhajjgabjga7phY3kuIvjg5rjg7zjgrjjga7jgrnjgrPjg7zjg5fjgpLkuIrmm7jjgY1cIixcIm5vdGljZVwiOntcImNvbmZsaWN0XCI6XCLjgZnjgafjgavku5bjga7kurrjgYzjgZPjga7jg5rjg7zjgrjjgpLnt6jpm4bjgZfjgabjgYTjgZ/jgZ/jgoHkv53lrZjjgafjgY3jgb7jgZvjgpPjgafjgZfjgZ/jgILjg5rjg7zjgrjjgpLlho3oqq3jgb/ovrzjgb/lvozjgIHoh6rliIbjga7nt6jpm4bnrofmiYDjga7jgb/lho3luqbnt6jpm4bjgZfjgabjgY/jgaDjgZXjgYTjgIJcIn19LFwicGFnZV9jb21tZW50XCI6e1wiZGlzcGxheV90aGVfcGFnZV93aGVuX3Bvc3RpbmdfdGhpc19jb21tZW50XCI6XCLmipXnqL/mmYLjga7jg5rjg7zjgrjjgpLooajnpLrjgZnjgotcIn0sXCJwYWdlX2FwaV9lcnJvclwiOntcIm5vdGZvdW5kX29yX2ZvcmJpZGRlblwiOlwi5YWD44Gu44Oa44O844K444GM6KaL44Gk44GL44KJ44Gq44GE44GL44CB44Ki44Kv44K744K55qip44GM44GC44KK44G+44Gb44KT44CCXCIsXCJhbHJlYWR5X2V4aXN0c1wiOlwi5paw44GX44GE44Oa44O844K444GM5pei44Gr5a2Y5Zyo44GX44Gm44GE44G+44GZ44CCXCIsXCJvdXRkYXRlZFwiOlwi44Oa44O844K444GM5LuW44Gu44Om44O844K244O844Gr44KI44Gj44Gm5pu05paw44GV44KM44G+44GX44Gf44CCXCIsXCJ1c2VyX25vdF9hZG1pblwiOlwi5qip6ZmQ44Gu44GC44KL44Om44O844K244O844Gu44G/44GM5a6M5YWo5YmK6Zmk44Gn44GN44G+44GZXCJ9LFwicGFnZV9oaXN0b3J5XCI6e1wicmV2aXNpb25fbGlzdFwiOlwi5pu05paw5bGl5q20XCIsXCJyZXZpc2lvblwiOlwi44OQ44O844K444On44OzXCIsXCJjb21wYXJpbmdfc291cmNlXCI6XCLjgr3jg7zjgrlcIixcImNvbXBhcmluZ190YXJnZXRcIjpcIuOCv+ODvOOCsuODg+ODiFwiLFwiY29tcGFyaW5nX3JldmlzaW9uc1wiOlwi5beu5YiG44KS5q+U6LyD44GZ44KLXCIsXCJjb21wYXJlX2xhdGVzdFwiOlwi5pyA5paw44Go5q+U6LyDXCIsXCJjb21wYXJlX3ByZXZpb3VzXCI6XCIx44Gk5YmN44Gu44OQ44O844K444On44Oz44Go5q+U6LyDXCJ9LFwibW9kYWxfcmVuYW1lXCI6e1wibGFiZWxcIjp7XCJNb3ZlL1JlbmFtZSBwYWdlXCI6XCLjg5rjg7zjgrjjgpLnp7vli5Uv5ZCN5YmN5aSJ5pu044GZ44KLXCIsXCJOZXcgcGFnZSBuYW1lXCI6XCLnp7vli5XlhYjjga7jg5rjg7zjgrjlkI1cIixcIkZhaWwgdG8gZ2V0IHN1Ym9yZGluYXRlZCBwYWdlc1wiOlwi6YWN5LiL44Oa44O844K444Gu5Y+W5b6X44Gr5aSx5pWX44GX44G+44GX44GfXCIsXCJGYWlsIHRvIGdldCBleGlzdCBwYXRoXCI6XCLlrZjlnKjjgZnjgovjg5Hjgrnjga7lj5blvpfjgavlpLHmlZfjgZfjgb7jgZfjgZ9cIixcIlJlbmFtZSB3aXRob3V0IGV4aXN0IHBhdGhcIjpcIuWtmOWcqOOBmeOCi+ODkeOCueS7peWkluOCkuWQjeWJjeWkieabtOOBmeOCi1wiLFwiQ3VycmVudCBwYWdlIG5hbWVcIjpcIuePvuWcqOOBruODmuODvOOCuOWQjVwiLFwiUmVjdXJzaXZlbHlcIjpcIuWGjeW4sOeahOOBq+enu+WLlS/lkI3liY3lpInmm7RcIixcIkRvIG5vdCB1cGRhdGUgbWV0YWRhdGFcIjpcIuODoeOCv+ODh+ODvOOCv+OCkuabtOaWsOOBl+OBquOBhFwiLFwiUmVkaXJlY3RcIjpcIuODquODgOOCpOODrOOCr+ODiOOBmeOCi1wifSxcImhlbHBcIjp7XCJyZWRpcmVjdFwiOlwi44Ki44Kv44K744K544GV44KM44Gf6Zqb44Gr6Ieq5YuV55qE44Gr5paw44GX44GE44Oa44O844K444Gr44K444Oj44Oz44OX44GX44G+44GZXCIsXCJtZXRhZGF0YVwiOlwi5pyA57WC5pu05paw44Om44O844K244O844CB5pyA57WC5pu05paw5pel44KS5pu05paw44Gb44Ga57at5oyB44GX44G+44GZXCIsXCJyZWN1cnNpdmVcIjpcIumFjeS4i+OBruODmuODvOOCuOOCguenu+WLlS/lkI3liY3lpInmm7TjgZfjgb7jgZlcIn19LFwiUHV0IEJhY2tcIjpcIuWFg+OBq+aIu+OBmVwiLFwiRGVsZXRlIENvbXBsZXRlbHlcIjpcIuWujOWFqOWJiumZpFwiLFwibW9kYWxfZGVsZXRlXCI6e1wiZGVsZXRlX3BhZ2VcIjpcIuODmuODvOOCuOOCkuWJiumZpOOBmeOCi1wiLFwiZGVsZXRpbmdfcGFnZVwiOlwi44Oa44O844K444OR44K5XCIsXCJkZWxldGVfcmVjdXJzaXZlbHlcIjpcIuWFqOOBpuOBruWtkOODmuODvOOCuOOCguWJiumZpFwiLFwiZGVsZXRlX2NvbXBsZXRlbHlcIjpcIuWujOWFqOWJiumZpFwiLFwiZGVsZXRlX2NvbXBsZXRlbHlfcmVzdHJpY3Rpb25cIjpcIuWujOWFqOWJiumZpOOCkuOBmeOCi+OBn+OCgeOBruaoqemZkOOBjOOBguOCiuOBvuOBm+OCk+OAglwiLFwicmVjdXJzaXZlbHlcIjpcIumFjeS4i+OBruODmuODvOOCuOOCguWJiumZpOOBl+OBvuOBmVwiLFwiY29tcGxldGVseVwiOlwi44K044Of566x44KS57WM55Sx44Gb44Ga44CB5a6M5YWo44Gr5YmK6Zmk44GX44G+44GZXCJ9LFwibW9kYWxfZW1wdHlcIjp7XCJlbXB0eV90aGVfdHJhc2hcIjpcIuOCtOODn+euseOCkuepuuOBq+OBmeOCi1wiLFwibm90aWNlXCI6XCLlrozlhajliYrpmaTjgZfjgZ/jg5rjg7zjgrjjga/lhYPjgavmiLvjgZnjgZPjgajjgYzjgafjgY3jgb7jgZvjgpNcIn0sXCJtb2RhbF9kdXBsaWNhdGVcIjp7XCJsYWJlbFwiOntcIkR1cGxpY2F0ZSBwYWdlXCI6XCLjg5rjg7zjgrjjgpLopIfoo73jgZnjgotcIixcIk5ldyBwYWdlIG5hbWVcIjpcIuikh+ijveW+jOOBruODmuODvOOCuOWQjVwiLFwiRmFpbCB0byBnZXQgc3Vib3JkaW5hdGVkIHBhZ2VzXCI6XCLphY3kuIvjg5rjg7zjgrjjga7lj5blvpfjgavlpLHmlZfjgZfjgb7jgZfjgZ9cIixcIkN1cnJlbnQgcGFnZSBuYW1lXCI6XCLnj77lnKjjga7jg5rjg7zjgrjlkI1cIixcIlJlY3Vyc2l2ZWx5XCI6XCLlho3luLDnmoTjgavopIfoo71cIixcIkR1cGxpY2F0ZSB3aXRob3V0IGV4aXN0IHBhdGhcIjpcIuWtmOWcqOOBmeOCi+ODkeOCueS7peWkluOCkuikh+ijveOBmeOCi1wiLFwiU2FtZSBwYWdlIGFscmVhZHkgZXhpc3RzXCI6XCLlkIzjgZjjg5rjg7zjgrjjgYzjgZnjgafjgavlrZjlnKjjgZfjgb7jgZlcIn0sXCJoZWxwXCI6e1wicmVjdXJzaXZlXCI6XCLphY3kuIvjga7jg5rjg7zjgrjjgoLopIfoo73jgZfjgb7jgZlcIn19LFwibW9kYWxfcHV0YmFja1wiOntcImxhYmVsXCI6e1wiUHV0IEJhY2sgUGFnZVwiOlwi44Oa44O844K444KS5YWD44Gr5oi744GZXCIsXCJyZWN1cnNpdmVseVwiOlwi5YWo44Gm44Gu5a2Q44Oa44O844K444KC5YWD44Gr5oi744GZXCJ9LFwiaGVscFwiOntcInJlY3Vyc2l2ZWx5XCI6XCLphY3kuIvjga7jg5rjg7zjgrjjgoLlhYPjgavmiLvjgZfjgb7jgZlcIn19LFwibW9kYWxfc2hvcnRjdXRzXCI6e1wiZ2xvYmFsXCI6e1widGl0bGVcIjpcIuOCsOODreODvOODkOODq+OCt+ODp+ODvOODiOOCq+ODg+ODiFwiLFwiT3Blbi9DbG9zZSBzaG9ydGN1dCBoZWxwXCI6XCLjgrfjg6fjg7zjg4jjgqvjg4Pjg4jjg5jjg6vjg5c8YnI+44Gu6KGo56S6L+mdnuihqOekulwiLFwiRWRpdCBQYWdlXCI6XCLjg5rjg7zjgrjnt6jpm4ZcIixcIkNyZWF0ZSBQYWdlXCI6XCLjg5rjg7zjgrjkvZzmiJBcIixcIlNob3cgQ29udHJpYnV0b3JzXCI6XCLjgrPjg7Pjg4jjg6rjg5Pjg6Xjg7zjgr/jg7w8YnI+44KS6KGo56S6XCIsXCJNaXJyb3JNb2RlXCI6XCLjg5/jg6njg7zjg6Ljg7zjg4lcIixcIktvbmFtaSBDb2RlXCI6XCLjgrPjg4rjg5/jgrPjg57jg7Pjg4lcIixcImtvbmFtaV9jb2RlX3VybFwiOlwiaHR0cHM6Ly9qYS53aWtpcGVkaWEub3JnL3dpa2kv44Kz44OK44Of44Kz44Oe44Oz44OJXCJ9LFwiZWRpdG9yXCI6e1widGl0bGVcIjpcIuOCqOODh+OCo+OCv+ODvOOCt+ODp+ODvOODiOOCq+ODg+ODiFwiLFwiSW5kZW50XCI6XCLjgqTjg7Pjg4fjg7Pjg4hcIixcIk91dGRlbnRcIjpcIuW3puOCpOODs+ODh+ODs+ODiFwiLFwiU2F2ZSBQYWdlXCI6XCLkv53lrZhcIixcIkRlbGV0ZSBMaW5lXCI6XCLooYzliYrpmaRcIn0sXCJjb21tZW50Zm9ybVwiOntcInRpdGxlXCI6XCLjgrPjg6Hjg7Pjg4jjg5Xjgqnjg7zjg6Djgrfjg6fjg7zjg4jjgqvjg4Pjg4hcIixcIlBvc3RcIjpcIuaKleeov1wifX0sXCJsaW5rX2VkaXRcIjp7XCJlZGl0X2xpbmtcIjpcIuODquODs+OCr+e3qOmbhlwiLFwic2V0X2xpbmtfYW5kX2xhYmVsXCI6XCLjg6rjg7Pjgq/mg4XloLFcIixcImxpbmtcIjpcIuODquODs+OCr1wiLFwicGxhY2Vob2xkZXJfb2ZfbGlua19pbnB1dFwiOlwi44Oa44O844K444OR44K544G+44Gf44GvVVJM44KS5YWl5Yqb44GX44Gm44GP44Gg44GV44GEXCIsXCJsYWJlbFwiOlwi44Op44OZ44OrXCIsXCJwYXRoX2Zvcm1hdFwiOlwi44Oa44O844K444OR44K56Kit5a6aXCIsXCJ1c2VfcmVsYXRpdmVfcGF0aFwiOlwi55u45a++44OR44K544KS5L2/44GGXCIsXCJ1c2VfcGVybWFuZW50X2xpbmtcIjpcIuODkeODvOODnuODquODs+OCr+OCkuS9v+OBhlwiLFwibm90YXRpb25cIjpcIuODquODs+OCr+OBruW9ouW8j1wiLFwibWFya2Rvd25cIjpcIuODnuODvOOCr+ODgOOCpuODsyDoqJjms5VcIixcIkdST1dJX29yaWdpbmFsXCI6XCJHUk9XSSDni6zoh6roqJjms5VcIixcInB1a2l3aWtpXCI6XCJQdWtpd2lraSDoqJjms5VcIixcInByZXZpZXdcIjpcIuODl+ODrOODk+ODpeODvFwiLFwicGFnZV9ub3RfZm91bmRfaW5fcHJldmlld1wiOlwiXFxcInt7cGF0aH19XFxcIiDjgajjgYTjgYbjg5rjg7zjgrjjga/jgYLjgorjgb7jgZvjgpPjgIJcIn0sXCJ0b2FzdGVyXCI6e1widXBkYXRlX3N1Y2Nlc3NlZFwiOlwie3t0YXJnZXR9feOCkuabtOaWsOOBl+OBvuOBl+OBn1wiLFwiaW5pdGlhbGl6ZV9zdWNjZXNzZWRcIjpcInt7dGFyZ2V0fX3jgpLliJ3mnJ/ljJbjgZfjgb7jgZfjgZ9cIixcImdpdmVfdXNlcl9hZG1pblwiOlwie3t1c2VybmFtZX1944KS566h55CG6ICF44Gr6Kit5a6a44GX44G+44GX44GfXCIsXCJyZW1vdmVfdXNlcl9hZG1pblwiOlwie3t1c2VybmFtZX1944KS566h55CG6ICF44GL44KJ5aSW44GX44G+44GX44GfXCIsXCJkZWxldGVfc2xhY2tfaW50ZWdyYXRpb25fcHJvY2VkdXJlXCI6XCJTbGFjayDpgKPmkLrmiYvpoIbjgpLliYrpmaTjgZfjgb7jgZfjgZ9cIixcImFjdGl2YXRlX3VzZXJfc3VjY2Vzc1wiOlwie3t1c2VybmFtZX1944KS5pyJ5Yq55YyW44GX44G+44GX44GfXCIsXCJkZWFjdGl2YXRlX3VzZXJfc3VjY2Vzc1wiOlwie3t1c2VybmFtZX1944KS54Sh5Yq55YyW44GX44G+44GX44GfXCIsXCJyZW1vdmVfdXNlcl9zdWNjZXNzXCI6XCJ7e3VzZXJuYW1lfX3jgpLliYrpmaTjgZfjgb7jgZfjgZ9cIixcInJlbW92ZV9leHRlcm5hbF91c2VyX3N1Y2Nlc3NcIjpcInt7YWNjb3VudElkfX3jgpLliYrpmaTjgZfjgb7jgZfjgZ9cIixcInJlbW92ZV9zaGFyZV9saW5rX3N1Y2Nlc3NcIjpcInt7c2hhcmVMaW5rSWR9feOCkuWJiumZpOOBl+OBvuOBl+OBn1wiLFwiaXNzdWVfc2hhcmVfbGlua1wiOlwi5YWx5pyJ44Oq44Oz44Kv44KS5L2c5oiQ44GX44G+44GX44GfXCIsXCJyZW1vdmVfc2hhcmVfbGlua1wiOlwi5YWx5pyJ44Oq44Oz44Kv44KSe3tjb3VudH195Lu25YmK6Zmk44GX44G+44GX44GfXCIsXCJzd2l0Y2hfZGlzYWJsZV9saW5rX3NoYXJpbmdfc3VjY2Vzc1wiOlwi5YWx5pyJ44Oq44Oz44Kv44Gu6Kit5a6a44KS5aSJ5pu044GX44G+44GX44GfXCIsXCJmYWlsZWRfdG9fcmVzZXRfcGFzc3dvcmRcIjpcIuODkeOCueODr+ODvOODieOBruODquOCu+ODg+ODiOOBq+WkseaVl+OBl+OBvuOBl+OBn1wifSxcInRlbXBsYXRlXCI6e1wibW9kYWxfbGFiZWxcIjp7XCJDcmVhdGUvRWRpdCBUZW1wbGF0ZSBQYWdlXCI6XCLjg4bjg7Pjg5fjg6zjg7zjg4jjg5rjg7zjgrjjga7kvZzmiJAv57eo6ZuGXCIsXCJDcmVhdGUgdGVtcGxhdGUgdW5kZXJcIjpcIumFjeS4i+OBq+ODhuODs+ODl+ODrOODvOODiOODmuODvOOCuOOCkuS9nOaIkFwifSxcIm9wdGlvbl9sYWJlbFwiOntcInNlbGVjdFwiOlwi44OG44Oz44OX44Os44O844OI44K/44Kk44OX44KS6YG45oqe44GX44Gm44GP44Gg44GV44GEXCIsXCJjcmVhdGUvZWRpdFwiOlwi44OG44Oz44OX44Os44O844OI44Oa44O844K444Gu5L2c5oiQL+e3qOmbhi4uXCJ9LFwiY2hpbGRyZW5cIjp7XCJsYWJlbFwiOlwi5ZCM5LiA6ZqO5bGk44OG44Oz44OX44Os44O844OIXCIsXCJkZXNjXCI6XCLjg4bjg7Pjg5fjg6zjg7zjg4jjg5rjg7zjgrjjgYzlrZjlnKjjgZnjgovpmo7lsaTjgavjga7jgb/pgannlKjjgZXjgozjgb7jgZlcIn0sXCJkZWNlbmRhbnRzXCI6e1wibGFiZWxcIjpcIuS4i+S9jeWxpOODhuODs+ODl+ODrOODvOODiFwiLFwiZGVzY1wiOlwi44OG44Oz44OX44Os44O844OI44Oa44O844K444GM5a2Y5Zyo44GZ44KL5LiL5L2N5bGk44Gu44GZ44G544Gm44Gu44Oa44O844K444Gr6YGp55So44GV44KM44G+44GZXCJ9fSxcInNhbmRib3hcIjp7XCJoZWFkZXJcIjpcIuimi+WHuuOBl1wiLFwiaGVhZGVyX3hcIjpcIuimi+WHuuOBlyB7e2luZGV4fX1cIixcImJsb2NrXCI6XCLjg5bjg63jg4Pjgq9cIixcImJsb2NrX2RldGFpbFwiOlwi44KS5oyf44KA44GT44Go44Gn5q616JC944Gr44Gq44KK44G+44GZXCIsXCJlbXB0eV9saW5lXCI6XCLnqbrnmb3ooYxcIixcImxpbmVfYnJlYWtcIjpcIuaUueihjFwiLFwibGluZV9icmVha19kZXRhaWxcIjpcIijjgrnjg5rjg7zjgrky44GkKSDjgafmlLnooYzjgZXjgozjgb7jgZlcIixcInR5cG9ncmFwaHlcIjpcIuOCv+OCpOODneOCsOODqeODleOCo+ODvFwiLFwiaXRhbGljc1wiOlwi5pac5L2TXCIsXCJib2xkXCI6XCLlvLfoqr9cIixcIml0YWxpY19ib2xkXCI6XCLjgqTjgr/jg6rjg4Pjgq/jg5zjg7zjg6vjg4lcIixcInN0cmlrZXRocm91Z2hcIjpcIuWPluOCiua2iOOBl+e3mlwiLFwibGlua1wiOlwi44Oq44Oz44KvXCIsXCJjb2RlX2hpZ2hsaWdodFwiOlwi44Kz44O844OJ44OP44Kk44Op44Kk44OIXCIsXCJsaXN0XCI6XCLjg6rjgrnjg4hcIixcInVub3JkZXJlZF9saXN0X3hcIjpcIuODquOCueODiCB7e2luZGV4fX1cIixcIm9yZGVyZWRfbGlzdF94XCI6XCLnlarlj7fku5jjgY3jg6rjgrnjg4gge3tpbmRleH19XCIsXCJ0YXNrXCI6XCLjgr/jgrnjgq9cIixcInRhc2tfY2hlY2tlZFwiOlwi44OB44Kn44OD44Kv5LuY44GNXCIsXCJ0YXNrX3VuY2hlY2tlZFwiOlwi44OB44Kn44OD44Kv44Gq44GXXCIsXCJxdW90ZVwiOlwi5byV55SoXCIsXCJxdW90ZTFcIjpcIuikh+aVsOihjOOBruW8leeUqOaWh+OCklwiLFwicXVvdGUyXCI6XCLmm7jjgY/jgZPjgajjgYzjgafjgY3jgb7jgZlcIixcInRhYmxlXCI6XCLjg4bjg7zjg5bjg6tcIixcInF1b3RlX25lc3RlZFwiOlwi5aSa6YeN5byV55SoXCIsXCJpbWFnZVwiOlwi55S75YOPXCIsXCJhbHRfdGV4dFwiOlwiQWx05paH5a2X5YiXXCIsXCJpbnNlcnRfaW1hZ2VcIjpcIuOBp+eUu+WDj+OCkuaMv+WFpeOBp+OBjeOBvuOBmVwiLFwib3Blbl9zYW5kYm94XCI6XCJTYW5kYm94IOOCkumWi+OBj1wifSxcImhhY2ttZFwiOntcImhhY2tfbWRcIjpcIkhhY2tNRFwiLFwibm90X3NldF91cFwiOlwiSGFja01EIOOBr+OCu+ODg+ODiOOCouODg+ODl+OBleOCjOOBpuOBhOOBvuOBm+OCk1wiLFwidXNlZF9mb3Jfbm90X2ZvdW5kXCI6XCJIYWNrTUQg44Gv5paw44GX44GE44Oa44O844K444Gu5L2c5oiQ44Gr44Gv5Yip55So44Gn44GN44G+44Gb44KTXCIsXCJzdGFydF90b19lZGl0XCI6XCJIYWNrTUQg44KS6ZaL5aeL44GZ44KLXCIsXCJjbG9uZV9wYWdlX2NvbnRlbnRcIjpcIuODmuODvOOCuOOCkuikh+ijveOBl+OBpue3qOmbhuOCkumWi+Wni+OBl+OBvuOBmVwiLFwidW5zYXZlZF9kcmFmdFwiOlwiSGFja01EIOOBruODieODqeODleODiOOBjOS/neWtmOOBleOCjOOBpuOBhOOBvuOBm+OCk1wiLFwiZHJhZnRfb3V0ZGF0ZWRcIjpcIuODieODqeODleODiOOBr+WPpOOBj+OBquOBo+OBpuOBhOOCi+WPr+iDveaAp+OBjOOBguOCiuOBvuOBmVwiLFwiYmFzZWRfb25fcmV2aXNpb25cIjpcIuePvuWcqOOBruODieODqeODleODiOOBr+asoeOBriByZXZpc2lvbiDjgavln7rjgaXjgYTjgabjgYTjgb7jgZlcIixcInZpZXdfb3V0ZGF0ZWRfZHJhZnRcIjpcIkhhY2tNRCDjgaflj6TjgYTjg4njg6njg5Xjg4jjgpLooajnpLrjgZnjgotcIixcInJlc3VtZV90b19lZGl0XCI6XCJIYWNrTUQg44Gn57eo6ZuG44KS5YaN6ZaL44GZ44KLXCIsXCJkaXNjYXJkX2NoYW5nZXNcIjpcIkhhY2tNRCDjga7lpInmm7TjgpLnoLTmo4TjgZnjgotcIixcImludGVncmF0aW9uX2ZhaWxlZFwiOlwiSGFja01EIOOBrue1seWQiOOBq+WkseaVl+OBl+OBvuOBl+OBn1wiLFwiZmFpbF90b19jb25uZWN0XCI6XCJHUk9XSSDjgq/jg6njgqTjgqLjg7Pjg4jjgYwgSGFja01EIOOBriBHUk9XSSBhZ2VudCDjgavmjqXntprjgafjgY3jgb7jgZvjgpPjgafjgZfjgZ/jgIJcIixcImNoZWNrX2NvbmZpZ3VyYXRpb25cIjpcIjxhIGhyZWY9J2h0dHBzOi8vZG9jcy5ncm93aS5vcmcvamEvYWRtaW4tZ3VpZGUvYWRtaW4tY29va2Jvb2svaW50ZWdyYXRlLXdpdGgtaGFja21kLmh0bWwnPuOBk+OBoeOCieOBruODnuODi+ODpeOCouODqzwvYT7jgYvjgonoqK3lrprjgpLnorroqo3jgZfjgabjgY/jgaDjgZXjgYRcIixcIm5vdF9pbml0aWFsaXplZFwiOlwiSGFja01EIOOCs+ODs+ODneODvOODjeODs+ODiOOBr+WIneacn+WMluOBleOCjOOBpuOBhOOBvuOBm+OCk1wiLFwic29tZW9uZV9lZGl0aW5nXCI6XCLjgZPjga7jg5rjg7zjgrjjga/jgIFIYWNrTUQg44Gn57eo6ZuG44GV44KM44Gm44GE44G+44GZ44CCXCIsXCJ0aGlzX3BhZ2VfaGFzX2RyYWZ0XCI6XCLjgZPjga7jg5rjg7zjgrjjga/jgIFIYWNrTUQg44Gu44OJ44Op44OV44OI44GM44GC44KK44G+44GZ44CCXCIsXCJuZWVkX3RvX2Fzc29jaWF0ZV93aXRoX2dyb3dpX3RvX3VzZV9oYWNrbWRfcmVmZXJfdG9fdGhpc1wiOlwiSGFja01EIOOCkuWIqeeUqOOBl+OBpuWQjOaZguWkmuS6uuaVsOe3qOmbhuOCkuihjOOBhuOBq+OBr+OAgUhhY2tNRCDjgaggR1JPV0kg44KS6YCj5pC644GZ44KL5b+F6KaB44GM44GC44KK44G+44GZ44CCPGEgaHJlZj0naHR0cHM6Ly9kb2NzLmdyb3dpLm9yZy9qYS9hZG1pbi1ndWlkZS9hZG1pbi1jb29rYm9vay9pbnRlZ3JhdGUtd2l0aC1oYWNrbWQuaHRtbCc+44GT44Gh44KJPC9hPuOCkuWPgueFp+OBl+OBpuOBj+OBoOOBleOBhOOAglwiLFwibmVlZF90b19tYWtlX3BhZ2VcIjpcIkhhY2tNRCDjgpLliKnnlKjjgZnjgovjgZ/jgoHjgavjga/jgIE8YSBocmVmPScjZWRpdCc+44OT44Or44OI44Kk44Oz44Ko44OH44Kj44K/PC9hPuOBp+aWsOOBl+OBhOODmuODvOOCuOOCkuS9nOaIkOOBl+OBpuOBj+OBoOOBleOBhOOAglwifSxcInNsYWNrX25vdGlmaWNhdGlvblwiOntcInBvcG92ZXJfdGl0bGVcIjpcIlNsYWNrIOmAmuefpVwiLFwicG9wb3Zlcl9kZXNjXCI6XCLjg4Hjg6Pjg7Pjg43jg6vlkI3jgpLlhaXjgozjgabjgY/jgaDjgZXjgYTjgILjgqvjg7Pjg57ljLrliIfjgorjga7jg6rjgrnjg4jjgpLlhaXlipvjgZnjgovjgZPjgajjgafopIfmlbDjga7jg4Hjg6Pjg7Pjg43jg6vjgavpgJrnn6XjgZnjgovjgZPjgajjgYzjgafjgY3jgb7jgZnjgIJcIn0sXCJzZWFyY2hfcmVzdWx0XCI6e1wicmVzdWx0X21ldGFcIjpcInt7dG90YWx9feS7tuOBruODmuODvOOCuOOBjOimi+OBpOOBi+OCiuOBvuOBl+OBn+OAguaknOe0ouODr+ODvOODiTogXFxcInt7a2V5d29yZH19XFxcIlwiLFwiZGVsZXRpb25fbW9kZV9idG5fbGF2ZWxcIjpcIuODmuODvOOCuOOCkuaMh+WumuOBl+OBpuWJiumZpFwiLFwiY2FuY2VsXCI6XCLjgq3jg6Pjg7Pjgrvjg6tcIixcImRlbGV0ZVwiOlwi5YmK6ZmkXCIsXCJjaGVja19hbGxcIjpcIuOBmeOBueOBpuODgeOCp+ODg+OCr1wiLFwiZGVsZXRpb25fbW9kYWxfaGVhZGVyXCI6XCLku6XkuIvjga7jg5rjg7zjgrjjgpLliYrpmaRcIixcImRlbGV0ZV9jb21wbGV0ZWx5XCI6XCLlrozlhajjgavliYrpmaTjgZnjgotcIn0sXCJzZWN1cml0eV9zZXR0aW5nXCI6e1wiR3Vlc3QgVXNlcnMgQWNjZXNzXCI6XCLjgrLjgrnjg4jjg6bjg7zjgrbjg7zjga7jgqLjgq/jgrvjgrlcIixcIkZpeGVkIGJ5IGVudiB2YXJcIjpcIueSsOWig+WkieaVsCA8Y29kZT57e2ZvcmNld2lraW1vZGV9fT17e3dpa2ltb2RlfX08L2NvZGU+IOOBq+OCiOOCiuWbuuWumuOBleOCjOOBpuOBhOOBvuOBmeOAglwiLFwiUmVnaXN0ZXIgbGltaXRhdGlvblwiOlwi55m76Yyy44Gu5Yi26ZmQXCIsXCJSZWdpc3RlciBsaW1pdGF0aW9uIGRlc2NcIjpcIuaWsOOBl+OBhOODpuODvOOCtuODvOOCkueZu+mMsuOBmeOCi+aWueazleOCkuWItumZkOOBl+OBvuOBmS5cIixcIlRoZSB3aGl0ZWxpc3Qgb2YgcmVnaXN0cmF0aW9uIHBlcm1pc3Npb24gRS1tYWlsIGFkZHJlc3NcIjpcIueZu+mMsuioseWPr+ODoeODvOODq+OCouODieODrOOCueOBrjxicj7jg5vjg6/jgqTjg4jjg6rjgrnjg4hcIixcInVzZXJzX3dpdGhvdXRfYWNjb3VudFwiOlwi44Ki44Kr44Km44Oz44OI44KS5oyB44Gf44Gq44GE44Om44O844K244O844Gv44Ki44Kv44K744K55LiN5Y+vXCIsXCJleGFtcGxlXCI6XCLkvotcIixcInJlc3RyaWN0X2VtYWlsc1wiOlwi55m76Yyy5Y+v6IO944Gq44Oh44O844Or44Ki44OJ44Os44K544KS5Yi26ZmQ44GZ44KL44GT44Go44GM44Gn44GN44G+44GZ44CCXCIsXCJmb3JfZXhhbXBsZVwiOlwi5L6L44GI44Gw44CBXCIsXCJpbl90aGlzX2Nhc2VcIjpcIuOBqOiomOi8ieOBmeOCi+OBk+OBqOOBp+OAgeOBneOBruODieODoeOCpOODs+OBruODoeODvOODq+OCouODieODrOOCueOCkuaMgeOBo+OBpuOBhOOCi+S6uuOBruOBv+eZu+mMsuWPr+iDveOBq+OBquOCiuOBvuOBmeOAglwiLFwiaW5zZXJ0X3NpbmdsZVwiOlwiMeihjOOBqzHjg6Hjg7zjg6vjgqLjg4njg6zjgrnlhaXlipvjgZfjgabjgY/jgaDjgZXjgYTjgIJcIixcInBhZ2VfbGlzdF9hbmRfc2VhcmNoX3Jlc3VsdHNcIjpcIuODmuODvOOCuOODquOCueODiOODu+aknOe0oue1kOaenFwiLFwicGFnZV9saXN0aW5nXzFcIjpcIuODmuODvOOCuOOBruODquOCueODiOihqOekuuOBqOaknOe0ojxicj4n6Ieq5YiG44Gu44G/J+OBq+mWsuimp+WItumZkOOBl+OBpuOBhOOCi+ODmuODvOOCuFwiLFwicGFnZV9saXN0aW5nXzFfZGVzY1wiOlwi44Oa44O844K444Gu44Oq44K544OI6KGo56S644KE5qSc57Si57WQ5p6c44Gr44GK44GE44Gm44CBJ+iHquWIhuOBruOBvyfjgavplrLopqfliLbpmZDjgpLjgZfjgabjgYTjgovjg5rjg7zjgrjjgpLjgqLjgq/jgrvjgrnmqKnjga7jgarjgYTjg6bjg7zjgrbjg7zjgavjgoLooajnpLrjgZfjgb7jgZnjgIJcIixcInBhZ2VfbGlzdGluZ18yXCI6XCLjg5rjg7zjgrjjga7jg6rjgrnjg4jooajnpLrjgajmpJzntKI8YnI+54m55a6a44Kw44Or44O844OX44Gr6Zay6Kan5Yi26ZmQ44GX44Gm44GE44KL44Oa44O844K4XCIsXCJwYWdlX2xpc3RpbmdfMl9kZXNjXCI6XCLjg5rjg7zjgrjjga7jg6rjgrnjg4jooajnpLrjgoTmpJzntKLntZDmnpzjgavjgYrjgYTjgabjgIHnibnlrprjgrDjg6vjg7zjg5fjgavjga7jgb/plrLopqfliLbpmZDjgpLjgZfjgabjgYTjgovjg5rjg7zjgrjjgpLjgqLjgq/jgrvjgrnmqKnjga7jgarjgYTjg6bjg7zjgrbjg7zjgavjgoLooajnpLrjgZfjgb7jgZnjgIJcIixcInBhZ2VfYWNjZXNzX2FuZF9kZWxldGVfcmlnaHRzXCI6XCLjg5rjg7zjgrjjga7plrLopqfjg7vliYrpmaTmqKnpmZBcIixcImNvbXBsZXRlX2RlbGV0aW9uXCI6XCLjg5rjg7zjgrjjga7lrozlhajliYrpmaRcIixcImNvbXBsZXRlX2RlbGV0aW9uX2V4cGxhaW5cIjpcIuODmuODvOOCuOOCkuWujOWFqOOBq+WJiumZpOOBp+OBjeOCi+ODpuODvOOCtuODvOOCkuWItumZkOOBl+OBvuOBmeOAglwiLFwiYWRtaW5fb25seVwiOlwi566h55CG6ICF44Gu44G/5Y+v6IO9XCIsXCJhZG1pbl9hbmRfYXV0aG9yXCI6XCLnrqHnkIbogIXjgajjg5rjg7zjgrjkvZzogIXjgYzlj6/og71cIixcImFueW9uZVwiOlwi6Kqw44Gn44KC5Y+v6IO9XCIsXCJzZXNzaW9uXCI6XCLjgrvjg4Pjgrfjg6fjg7NcIixcIm1heF9hZ2VcIjpcIuacieWKueacn+mWkyAo44Of44Oq56eSKVwiLFwibWF4X2FnZV9kZXNjXCI6XCLjg6bjg7zjgrbjg7zjga7jgrvjg4Pjgrfjg6fjg7Pmg4XloLHjga7mnInlirnmnJ/plpPjgpLjg5/jg6rnp5LjgafmjIflrprjgafjgY3jgb7jgZnjgII8YnI+44OH44OV44Kp44Or44OI5YCkOiAyNTkyMDAwMDAwICgzMOaXpemWkylcIixcIm1heF9hZ2VfY2F1dGlvblwiOlwi44GT44Gu5YCk44KS5aSJ5pu044GX44Gf5b6M44Gv44CB44K144O844OQ44O844KS5YaN6LW35YuV44GZ44KL5b+F6KaB44GM44GC44KK44G+44GZ44CCXCIsXCJBdXRoZW50aWNhdGlvbiBtZWNoYW5pc20gc2V0dGluZ3NcIjpcIuiqjeiovOapn+ani+ioreWumlwiLFwic2V0dXBfaXNfbm90X3lldF9jb21wbGV0ZVwiOlwi44K744OD44OI44Ki44OD44OX44Gv44G+44Gg5a6M5LqG44GX44Gm44G+44Gb44KTXCIsXCJhbGVydF9zaXRlVXJsX2lzX25vdF9zZXRcIjpcIifjgrXjgqTjg4hVUkwnIOOBjOioreWumuOBleOCjOOBpuOBhOOBvuOBm+OCk+OAgnt7bGlua319IOOBi+OCieioreWumuOBl+OBpuOBj+OBoOOBleOBhOOAglwiLFwieHNzX3ByZXZlbnRfc2V0dGluZ1wiOlwiWFNTKENyb3NzIFNpdGUgU2NyaXB0aW5nKeWvvuetluioreWumlwiLFwieHNzX3ByZXZlbnRfc2V0dGluZ19saW5rXCI6XCLjg57jg7zjgq/jg4Djgqbjg7PoqK3lrprjg5rjg7zjgrjjgavnp7vli5VcIixcImNhbGxiYWNrX1VSTFwiOlwi44Kz44O844Or44OQ44OD44KvVVJMXCIsXCJkZXNjX29mX2NhbGxiYWNrX1VSTFwiOlwie3tBdXRoTmFtZX19IOODl+ODreODkOOCpOODgOWBtOOBruioreWumuOBp+WIqeeUqOOBl+OBpuOBj+OBoOOBleOBhOOAglwiLFwiYXV0aG9yaXphdGlvbl9lbmRwb2ludFwiOlwi6KqN5Y+v44Ko44Oz44OJ44Od44Kk44Oz44OIXCIsXCJ0b2tlbl9lbmRwb2ludFwiOlwi44OI44O844Kv44Oz44Ko44Oz44OJ44Od44Kk44Oz44OIXCIsXCJyZXZvY2F0aW9uX2VuZHBvaW50XCI6XCLlpLHlirnjgqjjg7Pjg4njg53jgqTjg7Pjg4hcIixcImludHJvc3BlY3Rpb25fZW5kcG9pbnRcIjpcIuaknOiovOOCqOODs+ODieODneOCpOODs+ODiFwiLFwidXNlcmluZm9fZW5kcG9pbnRcIjpcIuODpuODvOOCtuaDheWgseOCqOODs+ODieODneOCpOODs+ODiFwiLFwiZW5kX3Nlc3Npb25fZW5kcG9pbnRcIjpcIuOCu+ODg+OCt+ODp+ODs+e1guS6huOCqOODs+ODieODneOCpOODs+ODiFwiLFwicmVnaXN0cmF0aW9uX2VuZHBvaW50XCI6XCLnmbvpjLLjgqjjg7Pjg4njg53jgqTjg7Pjg4hcIixcImp3a3NfdXJpXCI6XCJKU09OIFdlYiBLZXkgU2V0IFVSTFwiLFwiY2xpZW50SURcIjpcIuOCr+ODqeOCpOOCouODs+ODiElEXCIsXCJjbGllbnRfc2VjcmV0XCI6XCLjgq/jg6njgqTjgqLjg7Pjg4jjgrfjg7zjgq/jg6zjg4Pjg4hcIixcInVwZGF0ZWRfZ2VuZXJhbF9zZWN1cml0eV9zZXR0aW5nXCI6XCLjgrvjgq3jg6Xjg6rjg4bjgqPoqK3lrprjgpLmm7TmlrDjgZfjgb7jgZfjgZ/jgIJcIixcInNldHVwX25vdF9jb21wbGV0ZWRfeWV0XCI6XCLjgb7jgaDjgrvjg4Pjg4jjgqLjg4Pjg5fjga/lrozkuobjgZfjgabjgYTjgb7jgZvjgpPjgIJcIixcImd1ZXN0X21vZGVcIjp7XCJkZW55XCI6XCLmi5LlkKYgKOOCouOCq+OCpuODs+ODiOOCkuaMgeOBpOODpuODvOOCtuODvOOBruOBv+WIqeeUqOWPr+iDvSlcIixcInJlYWRvbmx5XCI6XCLoqLHlj68gKOOCsuOCueODiOODpuODvOOCtuODvOOCgumWsuimp+OBruOBv+WPr+iDvSlcIn0sXCJyZWdpc3RyYXRpb25fbW9kZVwiOntcIm9wZW5cIjpcIuWFrOmWiyAo44Gg44KM44Gn44KC55m76Yyy5Y+v6IO9KVwiLFwicmVzdHJpY3RlZFwiOlwi5Yi26ZmQICjnmbvpjLLlrozkuobjgavjga/nrqHnkIbogIXjga7mib/oqo3jgYzlv4XopoEpXCIsXCJjbG9zZWRcIjpcIumdnuWFrOmWiyAo55m76Yyy44Gr44Gv566h55CG6ICF44Gr44KI44KL5oub5b6F44GM5b+F6KaBKVwifSxcInNoYXJlX2xpbmtfcmlnaHRzXCI6XCLjgrfjgqfjgqLjg6rjg7Pjgq/jga7mqKnpmZBcIixcImVuYWJsZV9saW5rX3NoYXJpbmdcIjpcIuODquODs+OCr+OBruOCt+OCp+OCouOCkuioseWPr1wiLFwiYWxsX3NoYXJlX2xpbmtzXCI6XCLlhajjgabjga7jgrfjgqfjgqLjg6rjg7Pjgq9cIixcImNvbmZpZ3VyYXRpb25cIjpcIuioreWumlwiLFwib3B0aW9uYWxcIjpcIuOCquODl+OCt+ODp+ODs1wiLFwiVHJlYXQgdXNlcm5hbWUgbWF0Y2hpbmcgYXMgaWRlbnRpY2FsXCI6XCLmlrDopo/jg63jgrDjgqTjg7PmmYLjgIE8Y29kZT51c2VybmFtZTwvY29kZT4g44GM5LiA6Ie044GX44Gf44Ot44O844Kr44Or44Ki44Kr44Km44Oz44OI44GM5a2Y5Zyo44GX44Gf5aC05ZCI44Gv6Ieq5YuV55qE44Gr57SQ5LuY44GR44KLXCIsXCJUcmVhdCB1c2VybmFtZSBtYXRjaGluZyBhcyBpZGVudGljYWxfd2FyblwiOlwi6K2m5ZGKOiA8Y29kZT51c2VybmFtZTwvY29kZT4g44Gu5LiA6Ie044KS5Lul44Gm5ZCM5LiA44Om44O844K244O844Gn44GC44KL44Go44G/44Gq44GZ44Gu44Gn44CB44K744Kt44Ol44Oq44OG44Kj44Gr5rOo5oSP44GX44Gm44GP44Gg44GV44GEXCIsXCJUcmVhdCBlbWFpbCBtYXRjaGluZyBhcyBpZGVudGljYWxcIjpcIuaWsOimj+ODreOCsOOCpOODs+aZguOAgTxjb2RlPmVtYWlsPC9jb2RlPiDjgYzkuIDoh7TjgZfjgZ/jg63jg7zjgqvjg6vjgqLjgqvjgqbjg7Pjg4jjgYzlrZjlnKjjgZfjgZ/loLTlkIjjga/oh6rli5XnmoTjgavntJDku5jjgZHjgotcIixcIlRyZWF0IGVtYWlsIG1hdGNoaW5nIGFzIGlkZW50aWNhbF93YXJuXCI6XCLorablkYo6IDxjb2RlPmVtYWlsPC9jb2RlPiDjga7kuIDoh7TjgpLku6XjgablkIzkuIDjg6bjg7zjgrbjg7zjgafjgYLjgovjgajjgb/jgarjgZnjga7jgafjgIHjgrvjgq3jg6Xjg6rjg4bjgqPjgavms6jmhI/jgZfjgabjgY/jgaDjgZXjgYRcIixcIlVzZSBlbnYgdmFyIGlmIGVtcHR5XCI6XCLnqbrjga7loLTlkIjjgIHnkrDlooPlpInmlbAgPGNvZGU+e3tlbnZ9fTwvY29kZT4g44KS5Yip55So44GX44G+44GZXCIsXCJVc2UgZGVmYXVsdCBpZiBib3RoIGFyZSBlbXB0eVwiOlwi44Gp44Gh44KJ44Gu5YCk44KC56m644Gu5aC05ZCI44CB44OH44OV44Kp44Or44OI5YCkIDxjb2RlPnt7dGFyZ2V0fX08L2NvZGU+IOOCkuWIqeeUqOOBl+OBvuOBmVwiLFwibWlzc2luZyBtYW5kYXRvcnkgY29uZmlnc1wiOlwi5Lul5LiL44Gu5b+F6aCI6aCF55uu44Gu5YCk44GM44OH44O844K/44OZ44O844K544Go55Kw5aKD5aSJ5pWw44Gu44Gp44Gh44KJ44Gr44KC6Kit5a6a44GV44KM44Gm44GE44G+44Gb44KTXCIsXCJMb2NhbFwiOntcIm5hbWVcIjpcIklEL1Bhc3N3b3JkXCIsXCJub3RlIGZvciB0aGUgb25seSBlbnYgb3B0aW9uXCI6XCLnj77lnKhMT0NBTOiqjeiovOOBrk9OL09GRuOBr+eSsOWig+WkieaVsOOBruWApOOBq+OCiOOBo+OBpuWItumZkOOBleOCjOOBpuOBhOOBvuOBmTxicj7jgZPjga7oqK3lrprjgpLlpInmm7TjgZnjgovloLTlkIjjga/nkrDlooPlpInmlbAgPGNvZGU+e3tlbnZ9fTwvY29kZT4g44Gu5YCk44KSZmFsc2XjgavlpInmm7TjgoLjgZfjgY/jga/liYrpmaTjgZfjgabjgY/jgaDjgZXjgYRcIixcImVuYWJsZV9sb2NhbFwiOlwiSUQvUGFzc3dvcmQg44KS5pyJ5Yq544Gr44GZ44KLXCJ9LFwibGRhcFwiOntcImVuYWJsZV9sZGFwXCI6XCJMREFQIOOCkuacieWKueOBq+OBmeOCi1wiLFwic2VydmVyX3VybF9kZXRhaWxcIjpcIkxEQVAgVVJM44KSIDxjb2RlPmxkYXA6Ly9ob3N0OnBvcnQvRE48L2NvZGU+IOOBvuOBn+OBryA8Y29kZT5sZGFwczovL2hvc3Q6cG9ydC9ETjwvY29kZT4g44Gu5b2i5byP44Gn5YWl5Yqb44GX44Gm44GP44Gg44GV44GE44CCXCIsXCJiaW5kX21vZGVcIjpcIkJpbmQg44Oi44O844OJXCIsXCJiaW5kX21hbmFnZXJcIjpcIueuoeeQhuiAhSBCaW5kXCIsXCJiaW5kX3VzZXJcIjpcIuODpuODvOOCtuODvCBCaW5kXCIsXCJiaW5kX0ROX21hbmFnZXJfZGV0YWlsXCI6XCLjg4fjgqPjg6zjgq/jg4jjg6rjg7zjgrXjg7zjg5Pjgrnjgavoqo3oqLzjgZnjgovpmpvjga7jgqLjgqvjgqbjg7Pjg4ggRE5cIixcImJpbmRfRE5fdXNlcl9kZXRhaWwxXCI6XCLjg4fjgqPjg6zjgq/jg4jjg6rjg7zjgrXjg7zjg5PjgrnjgasgQmluZCDjgZnjgovjgqLjgqvjgqbjg7Pjg4ggRE4g44KS5rG65a6a44GZ44KL44Gf44KB44Gu44Kv44Ko44OqXCIsXCJiaW5kX0ROX3VzZXJfZGV0YWlsMlwiOlwi44Ot44Kw44Kk44Oz5pmC44Gr5YWl5Yqb44GV44KM44KL44Om44O844K244O85ZCN44KS5L2/55So44GZ44KL44Gr44GvIDxjb2RlPiYjMTIzOyYjMTIzO3VzZXJuYW1lJiMxMjU7JiMxMjU7PC9jb2RlPiDjga7lvaLlvI/jgpLkvb/nlKjjgZfjgabjgY/jgaDjgZXjgYTjgIJcIixcImJpbmRfRE5fcGFzc3dvcmRcIjpcIkJpbmQgRE4g44OR44K544Ov44O844OJXCIsXCJiaW5kX0ROX3Bhc3N3b3JkX21hbmFnZXJfZGV0YWlsXCI6XCJCaW5kIEROIOOCouOCq+OCpuODs+ODiOOBruODkeOCueODr+ODvOODiVwiLFwiYmluZF9ETl9wYXNzd29yZF91c2VyX2RldGFpbFwiOlwi44Ot44Kw44Kk44Oz5pmC44Gu44OR44K544Ov44O844OJ44GM5L2/55So44GV44KM44G+44GZ44CCXCIsXCJzZWFyY2hfZmlsdGVyXCI6XCLmpJzntKLjg5XjgqPjg6vjgr/jg7xcIixcInNlYXJjaF9maWx0ZXJfZGV0YWlsMVwiOlwi6KqN6Ki844GV44KM44KL44Om44O844K244O844KS5LiA5oSP44Gr5rG65a6a44GZ44KL44Gf44KB44GuIExEQVAg44OV44Kj44Or44K/XCIsXCJzZWFyY2hfZmlsdGVyX2RldGFpbDJcIjpcIuODreOCsOOCpOODs+aZguOBruODpuODvOOCtuODvOWQjeOCkuS9v+eUqOOBmeOCi+OBq+OBryA8Y29kZT4mIzEyMzsmIzEyMzt1c2VybmFtZSYjMTI1OyYjMTI1OzwvY29kZT4g44Gu5b2i5byP44KS5L2/55So44GX44Gm44GP44Gg44GV44GE44CCXCIsXCJzZWFyY2hfZmlsdGVyX2RldGFpbDNcIjpcIuepuuashOOBruWgtOWQiCA8Y29kZT4odWlkPSYjMTIzOyYjMTIzO3VzZXJuYW1lJiMxMjU7JiMxMjU7KTwvY29kZT4g44GM5L2/55So44GV44KM44G+44GZ44CCXCIsXCJzZWFyY2hfZmlsdGVyX2V4YW1wbGUxXCI6XCIndWlkJyDjgb7jgZ/jga8gJ21haWwnIOOBq+S4gOiHtFwiLFwic2VhcmNoX2ZpbHRlcl9leGFtcGxlMlwiOlwiJ3NBTUFjY291bnROYW1lJyDjgavkuIDoh7QgKEFjdGl2ZSBEaXJlY3RvcnkpXCIsXCJ1c2VybmFtZV9kZXRhaWxcIjpcIuaWsOimj+ODpuODvOOCtuODvOOBruOCouOCq+OCpuODs+ODiOWQjSg8Y29kZT51c2VybmFtZTwvY29kZT4p44Gr6Zai6YCj5LuY44GR44KL5bGe5oCnXCIsXCJuYW1lX2RldGFpbFwiOlwi5paw6KaP44Om44O844K244O844Gu6KGo56S65ZCN44Gr6Zai6YCj5LuY44GR44KL5bGe5oCnXCIsXCJtYWlsX2RldGFpbFwiOlwi5paw6KaP44Om44O844K244O844Gu44Oh44O844Or44Ki44OJ44Os44K544Gr6Zai6YCj5LuY44GR44KL5bGe5oCnXCIsXCJncm91cF9zZWFyY2hfYmFzZV9ETlwiOlwi44Kw44Or44O844OX5qSc57Si44OZ44O844K5IEROXCIsXCJncm91cF9zZWFyY2hfYmFzZV9ETl9kZXRhaWxcIjpcIuOCsOODq+ODvOODl+aknOe0ouOCkuWun+ihjOOBmeOCi+ODmeODvOOCuSBETuOAguWIqeeUqOOBmeOCi+WgtOWQiOOBryA8Y29kZT7jgrDjg6vjg7zjg5fmpJzntKLjg5XjgqPjg6vjgr/jg7w8L2NvZGU+IOOCguWFpeWKm+OBmeOCi+W/heimgeOBjOOBguOCiuOBvuOBmeOAglwiLFwiZ3JvdXBfc2VhcmNoX2ZpbHRlclwiOlwi44Kw44Or44O844OX5qSc57Si44OV44Kj44Or44K/44O8XCIsXCJncm91cF9zZWFyY2hfZmlsdGVyX2RldGFpbDFcIjpcIuOCsOODq+ODvOODl+ODleOCo+ODq+OCv+ODvOOBq+eUqOOBhOOCi+OCr+OCqOODqlwiLFwiZ3JvdXBfc2VhcmNoX2ZpbHRlcl9kZXRhaWwyXCI6XCLjgZPjga7jgq/jgqjjg6rjgavjg5Ljg4Pjg4jjgZnjgovjgrDjg6vjg7zjg5fjgYzjgYLjgaPjgZ/jgajjgY3jga7jgb/jgIFMREFQ44Gn44Gu44Ot44Kw44Kk44Oz44GM5oiQ5Yqf44GX44G+44GZ44CCXCIsXCJncm91cF9zZWFyY2hfZmlsdGVyX2RldGFpbDNcIjpcIuODreOCsOOCpOODs+WvvuixoeODpuODvOOCtuODvOOCquODluOCuOOCp+OCr+ODiOOBruODl+ODreODkeODhuOCo+ODvOOBp+e9ruaPm+OBmeOCi+WgtOWQiOOBryA8Y29kZT4mIzEyMzsmIzEyMztkbiYjMTI1OyYjMTI1OzwvY29kZT4g44KS55So44GE44Gm44GP44Gg44GV44GE44CCXCIsXCJncm91cF9zZWFyY2hfZmlsdGVyX2RldGFpbDRcIjpcIjxjb2RlPigmKGNuPWdyb3VwMSkobWVtYmVyVWlkPSYjMTIzOyYjMTIzO2RuJiMxMjU7JiMxMjU7KSk8L2NvZGU+IOOBryA8Y29kZT5jbj1ncm91cDE8L2NvZGU+IOOBqOOAgeODpuODvOOCtuODvOOBriA8Y29kZT51aWQ8L2NvZGU+IOOCkuWQq+OCgCA8Y29kZT5tZW1iZXJVaWQ8L2NvZGU+IOOCkuaMgeOBpOOCsOODq+ODvOODl+OBq+ODkuODg+ODiOOBl+OBvuOBmSg8Y29kZT7jg6bjg7zjgrbjg7zjga4gRE4g44OX44Ot44OR44OG44Kj44O8PC9jb2RlPiDjgYzjg4fjg5Xjgqnjg6vjg4jjgYvjgonlpInmm7TjgZXjgozjgabjgYTjgarjgYTloLTlkIgpXCIsXCJncm91cF9zZWFyY2hfdXNlcl9ETl9wcm9wZXJ0eVwiOlwi44Om44O844K244O844GuIEROIOODl+ODreODkeODhuOCo+ODvFwiLFwiZ3JvdXBfc2VhcmNoX3VzZXJfRE5fcHJvcGVydHlfZGV0YWlsXCI6XCI8Y29kZT7jgrDjg6vjg7zjg5fmpJzntKLjg5XjgqPjg6vjgr/jg7w8L2NvZGU+IOWGheOBriA8Y29kZT4mIzEyMzsmIzEyMztkbiYjMTI1OyYjMTI1OzwvY29kZT4g44Gn572u5o+b44GV44KM44KL44CB44Om44O844K244O844Kq44OW44K444Kn44Kv44OI44Gu44OX44Ot44OR44OG44Kj44O8XCIsXCJ0ZXN0X2NvbmZpZ1wiOlwi44Ot44Kw44Kk44Oz44OG44K544OIXCIsXCJ1cGRhdGVkX2xkYXBcIjpcIkxEQVDoqK3lrpog44KS5pu05paw44GX44G+44GX44GfXCJ9LFwiU0FNTFwiOntcIm5hbWVcIjpcIlNBTUxcIixcImVuYWJsZV9zYW1sXCI6XCJTQU1MIOOCkuacieWKueOBq+OBmeOCi1wiLFwiaWRfZGV0YWlsXCI6XCJTQU1MIElkZW50aXR5IOODl+ODreODkOOCpOODgOWGheOBp+S4gOaEj+OBq+itmOWIpeWPr+iDveOBquWApOOCkuagvOe0jeOBl+OBpuOBhOOCi+WxnuaAp1wiLFwidXNlcm5hbWVfZGV0YWlsXCI6XCLmlrDopo/jg6bjg7zjgrbjg7zjga7jgqLjgqvjgqbjg7Pjg4jlkI0oPGNvZGU+dXNlcm5hbWU8L2NvZGU+KeOBq+mWoumAo+S7mOOBkeOCi+WxnuaAp1wiLFwibWFwcGluZ19kZXRhaWxcIjpcIuaWsOimj+ODpuODvOOCtuODvOOBrnt7dGFyZ2V0fX3jgavplqLpgKPku5jjgZHjgovlsZ7mgKdcIixcImNlcnRfZGV0YWlsXCI6XCJJZFAg44GL44KJ44Gu44Os44K544Od44Oz44K544GuIHZhbGlkYXRpb24g44KS6KGM44GG44Gf44KB44GuUEVN44Ko44Oz44Kz44O844OJ44GV44KM44GfIFguNTA5IOiovOaYjuabuFwiLFwiVXNlIGVudiB2YXIgaWYgZW1wdHlcIjpcIuODh+ODvOOCv+ODmeODvOOCueWBtOOBruWApOOBjOepuuOBruWgtOWQiOOAgeeSsOWig+WkieaVsCA8Y29kZT57e2Vudn19PC9jb2RlPiDjga7lgKTjgpLliKnnlKjjgZfjgb7jgZlcIixcIm5vdGUgZm9yIHRoZSBvbmx5IGVudiBvcHRpb25cIjpcIuePvuWcqFNBTUzoqo3oqLzjga5PTi9PRkbjga7oqK3lrprlgKTlj4rjgbPjg4/jgqTjg6njgqTjg4jjgZXjgozjgabjgYTjgovoqK3lrprlgKTjga/nkrDlooPlpInmlbDjga7lgKTjga7jgb/jgpLkvb/nlKjjgZnjgovjgojjgYbjgavjgarjgaPjgabjgYTjgb7jgZk8YnI+44GT44Gu6Kit5a6a44KS5aSJ5pu044GZ44KL5aC05ZCI44Gv55Kw5aKD5aSJ5pWwIDxjb2RlPnt7ZW52fX08L2NvZGU+IOOBruWApOOCkmZhbHNl44Gr5aSJ5pu044KC44GX44GP44Gv5YmK6Zmk44GX44Gm44GP44Gg44GV44GEXCIsXCJhdHRyX2Jhc2VkX2xvZ2luX2NvbnRyb2xfZGV0YWlsXCI6XCJTQU1M44GuIDxjb2RlPiZsdDtzYW1sOkF0dHJpYnV0ZVN0YXRlbWVudCZndDs8L2NvZGU+IOimgee0oOOBq+WQq+OBvuOCjOOCiyA8Y29kZT4mbHQ7c2FtbDpBdHRyaWJ1dGUmZ3Q7PC9jb2RlPiDopoHntKDjgajjgIHjgZ3jga7lrZDopoHntKAgPGNvZGU+Jmx0O3NhbWw6QXR0cmlidXRlVmFsdWUmZ3Q7PC9jb2RlPiDjgpLliKnnlKjjgZfjgabjg63jgrDjgqTjg7Pjga7lj6/lkKbjgpLliLblvqHjgZfjgb7jgZnjgIJcIixcImF0dHJfYmFzZWRfbG9naW5fY29udHJvbF9ydWxlX2RldGFpbFwiOlwiU2VlIDxhIGhyZWY9XFxcImh0dHBzOi8vbHVjZW5lLmFwYWNoZS5vcmcvY29yZS8yXzlfNC9xdWVyeXBhcnNlcnN5bnRheC5odG1sXFxcIiB0YXJnZXQ9XFxcIl9ibGFua1xcXCI+QXBhY2hlIEx1Y2VuZSAtIFF1ZXJ5IFBhcnNlciBTeW50YXg8L2E+LjxoNj7liKnnlKjlj6/og73jgarjgq/jgqjjg6o6PC9oNj48dWw+PGxpPlRlcm1zPC9saT48bGk+RmllbGRzPC9saT48bGk+QU5EL05PVC9PUiBPcGVyYXRvcjwvbGk+PGxpPkdyb3VwaW5nPC9saT48L3VsPjxoNj7liKnnlKjkuI3lj6/jgarjgq/jgqjjg6o6PC9oNj48dWw+PGxpPldpbGRjYXJkLCBGdXp6eSwgUHJveGltaXR5LCBSYW5nZSBhbmQgQm9vc3Rpbmc8L2xpPjxsaT4rLy0gT3BlcmF0b3I8L2xpPjxsaT5GaWVsZCBHcm91cGluZzwvbGk+PC91bD5cIixcImF0dHJfYmFzZWRfbG9naW5fY29udHJvbF9ydWxlX2V4YW1wbGVcIjpcIjxoNj5FeGFtcGxlPC9oNj7jg6vjg7zjg6vjgasgPGNvZGU+KERlcGFydG1lbnQ6IEEgfHwgRGVwYXJ0bWVudDogQikgJiYgUG9zaXRpb246IExlYWRlcjwvY29kZT4g44KS5oyH5a6a44GX44Gf5aC05ZCILCA8Y29kZT5EZXBhcnRtZW50OiBBPC9jb2RlPiDjgb7jgZ/jga8gPGNvZGU+RGVwYXJ0bWVudDogQjwvY29kZT4g44Gu44Gp44Gh44KJ44GL44Gr6Kmy5b2T44GX44CB44GL44GkIDxjb2RlPlBvc2l0aW9uOiBMZWFkZXI8L2NvZGU+IOOCkuaMgeOBpOODpuODvOOCtuODvOOBq+ODreOCsOOCpOODs+OCkjxzdHJvbmc+6Kix5Y+vPC9zdHJvbmc+44GX44G+44GZ44CCXCJ9LFwiQmFzaWNcIjp7XCJlbmFibGVfYmFzaWNcIjpcIkJhc2ljIOOCkuacieWKueOBq+OBmeOCi1wiLFwibmFtZVwiOlwiQmFzaWMg6KqN6Ki8XCIsXCJkZXNjXzFcIjpcIkF1dGhvcml6YXRpb24g44OY44OD44OA44Gr5qC857SN44GV44KM44Gm44GE44KLIDxjb2RlPnVzZXJuYW1lPC9jb2RlPiDjgafjg63jgrDjgqTjg7PjgZfjgb7jgZnjgIJcIixcImRlc2NfMlwiOlwi44Om44O844K244O844GM5a2Y5Zyo44GX44Gq44GL44Gj44Gf5aC05ZCI44Gv6Ieq5YuV55Sf5oiQ44GX44G+44GZ44CCXCIsXCJ1cGRhdGVkX2Jhc2ljXCI6XCJCYXNpY+iqjeiovCDjgpLmm7TmlrDjgZfjgb7jgZfjgZ9cIn0sXCJPQXV0aFwiOntcImVuYWJsZV9vaWRjXCI6XCJPSURDIOOCkuacieWKueOBq+OBmeOCi1wiLFwicmVnaXN0ZXJcIjpcIiVz44Gr55m76YyyXCIsXCJjaGFuZ2VfcmVkaXJlY3RfdXJsXCI6XCLmib/oqo3muIjjgb/jga7jg6rjg4DjgqTjg6zjgq/jg4hVUkzjgavjgIEgPGNvZGU+JXM8L2NvZGU+IOOCkuWFpeWKm1wiLFwiR29vZ2xlXCI6e1wiZW5hYmxlX2dvb2dsZVwiOlwiR29vZ2xlIE9BdXRoIOOCkuacieWKueOBq+OBmeOCi1wiLFwibmFtZVwiOlwiR29vZ2xlIE9BdXRoXCIsXCJyZWdpc3Rlcl8xXCI6XCJ7e2xpbmt9feOBuOOCouOCr+OCu+OCuVwiLFwicmVnaXN0ZXJfMlwiOlwi44OX44Ot44K444Kn44Kv44OI44GM44Gq44GE5aC05ZCI44Gv44OX44Ot44K444Kn44Kv44OI44KS5L2c5oiQXCIsXCJyZWdpc3Rlcl8zXCI6XCLoqo3oqLzmg4XloLHjgpLkvZzmiJAgJnJpZ2h0YXJyb3c7IE9BdXRo44Kv44Op44Kk44Ki44Oz44OISUQgJnJpZ2h0YXJyb3c7IOOCpuOCp+ODluOCouODl+ODquOCseODvOOCt+ODp+ODs+OCkumBuOaKnlwiLFwicmVnaXN0ZXJfNFwiOlwi5om/6KqN5riI44G/44Gu44Oq44OA44Kk44Os44Kv44OIVVJJ44KSPGNvZGU+e3t1cmx9fTwvY29kZT7jgajjgZfjgaZHcm93aeOCkueZu+mMslwiLFwicmVnaXN0ZXJfNVwiOlwi5LiK6KiY44OV44Kp44O844Og44Gr44Kv44Op44Kk44Ki44Oz44OISUTjgajjgq/jg6njgqTjgqLjg7Pjg4jjgrfjg7zjgq/jg6zjg4Pjg4jjgpLlhaXliptcIixcInVwZGF0ZWRfZ29vZ2xlXCI6XCJHb29nbGUgT0F1dGgg44KS5pu05paw44GX44G+44GX44GfXCJ9LFwiRmFjZWJvb2tcIjp7XCJuYW1lXCI6XCJGYWNlYm9vayBPQXV0aFwifSxcIlR3aXR0ZXJcIjp7XCJlbmFibGVfdHdpdHRlclwiOlwiVHdpdHRlciBPQXV0aCDjgpLmnInlirnjgavjgZnjgotcIixcIm5hbWVcIjpcIlR3aXR0ZXIgT0F1dGhcIixcInJlZ2lzdGVyXzFcIjpcInt7bGlua319IOOBuOOCouOCr+OCu+OCuVwiLFwicmVnaXN0ZXJfMlwiOlwiVHdpdHRlcuOBq+OCteOCpOODs+OCpOODs1wiLFwicmVnaXN0ZXJfM1wiOlwiQ3JlYXRlIE5ldyBBcHDjgpLjgq/jg6rjg4Pjgq8gJnJpZ2h0YXJyb3c7IEFwcGxpY2F0aW9uIERldGFpbHPjga7lkITpoIXnm67jgpLlhaXliptcIixcInJlZ2lzdGVyXzRcIjpcIkNyZWF0ZSB5b3VyIFR3aXR0ZXIgQXBwbGljYXRpb27jgafkvZzmiJBcIixcInJlZ2lzdGVyXzVcIjpcIuS4iuiomOODleOCqeODvOODoOOBq+OCr+ODqeOCpOOCouODs+ODiElE44Go44Kv44Op44Kk44Ki44Oz44OI44K344O844Kv44Os44OD44OI44KS5YWl5YqbXCIsXCJ1cGRhdGVkX3R3aXR0ZXJcIjpcIlR3aXR0ZXIgT0F1dGgg44KS5pu05paw44GX44G+44GX44GfXCJ9LFwiR2l0SHViXCI6e1wiZW5hYmxlX2dpdGh1YlwiOlwiR2l0SHViIE9BdXRoIOOCkuacieWKueOBq+OBmeOCi1wiLFwibmFtZVwiOlwiR2l0SHViIE9BdXRoXCIsXCJyZWdpc3Rlcl8xXCI6XCJ7e2xpbmt9fSDjgbjjgqLjgq/jgrvjgrlcIixcInJlZ2lzdGVyXzJcIjpcIlxcXCJBdXRob3JpemF0aW9uIGNhbGxiYWNrIFVSTFxcXCLjgpI8Y29kZT57e3VybH19PC9jb2RlPuOBqOOBl+OBpkdyb3dp44KS55m76YyyXCIsXCJyZWdpc3Rlcl8zXCI6XCLkuIroqJjjg5Xjgqnjg7zjg6Djgavjgq/jg6njgqTjgqLjg7Pjg4hJROOBqOOCr+ODqeOCpOOCouODs+ODiOOCt+ODvOOCr+ODrOODg+ODiOOCkuWFpeWKm1wiLFwidXBkYXRlZF9naXRodWJcIjpcIkdpdEh1YiBPQXV0aCDjgpLmm7TmlrDjgZfjgb7jgZfjgZ9cIn0sXCJPSURDXCI6e1wibmFtZVwiOlwiT3BlbklEIENvbm5lY3RcIixcImlkX2RldGFpbFwiOlwiT0lEQyBjbGFpbXMg44Gn5LiA5oSP44Gr6K2Y5Yil5Y+v6IO944Gq5YCk44KS5qC857SN44GX44Gm44GE44KL5bGe5oCnXCIsXCJ1c2VybmFtZV9kZXRhaWxcIjpcIuaWsOimj+ODpuODvOOCtuODvOOBruOCouOCq+OCpuODs+ODiOWQjSg8Y29kZT51c2VybmFtZTwvY29kZT4p44Gr6Zai6YCj5LuY44GR44KL5bGe5oCnXCIsXCJuYW1lX2RldGFpbFwiOlwi5paw6KaP44Om44O844K244O85ZCNKDxjb2RlPm5hbWU8L2NvZGU+KeOBq+mWoumAo+S7mOOBkeOCi+WxnuaAp1wiLFwibWFwcGluZ19kZXRhaWxcIjpcIuaWsOimj+ODpuODvOOCtuODvOOBrnt7dGFyZ2V0fX3jgavplqLpgKPku5jjgZHjgovlsZ7mgKdcIixcInVwZGF0ZWRfb2lkY1wiOlwiT3BlbklEIENvbm5lY3Qg44KS5pu05paw44GX44G+44GX44GfXCIsXCJVc2UgZGlzY292ZXJlZCBVUkwgaWYgZW1wdHlcIjpcIuODh+ODvOOCv+ODmeODvOOCueWBtOOBruWApOOBjOepuuOBruWgtOWQiOOAgVxcXCJJc3N1ZXIgSG9zdFxcXCLjgYvjgonmpJzlh7rjgZfjgZ/lgKTjgpLliKnnlKjjgZfjgb7jgZnjgIJcIn0sXCJob3dfdG9cIjp7XCJnb29nbGVcIjpcIkdvb2dsZSBPQXV0aCDjga7oqK3lrprmlrnms5VcIixcImdpdGh1YlwiOlwiR2l0SHViIE9BdXRoIOOBruioreWumuaWueazlVwiLFwidHdpdHRlclwiOlwiVHdpdHRlciBPQXV0aCDjga7oqK3lrprmlrnms5VcIn19LFwiZm9ybV9pdGVtX25hbWVcIjp7XCJlbnRyeVBvaW50XCI6XCLjgqjjg7Pjg4jjg6rjg7zjg53jgqTjg7Pjg4hcIixcImlzc3VlclwiOlwi55m66KGM6ICFXCIsXCJjZXJ0XCI6XCLoqLzmmI7mm7hcIixcImF0dHJNYXBJZFwiOlwiSURcIixcImF0dHJNYXBVc2VybmFtZVwiOlwi44Om44O844K244O85ZCNXCIsXCJhdHRyTWFwTWFpbFwiOlwi44Oh44O844Or44Ki44OJ44Os44K5XCIsXCJhdHRyTWFwRmlyc3ROYW1lXCI6XCLlp5NcIixcImF0dHJNYXBMYXN0TmFtZVwiOlwi5ZCNXCIsXCJBQkxDUnVsZVwiOlwi44Or44O844OrXCJ9fSxcIm5vdGlmaWNhdGlvbl9zZXR0aW5nXCI6e1wic2xhY2tfaW5jb21pbmdfY29uZmlndXJhdGlvblwiOlwiU2xhY2sgSW5jb21pbmcgV2ViaG9va3Mg6Kit5a6aXCIsXCJwcmlvcml0aXplX3dlYmhvb2tcIjpcIlNsYWNrIOOCouODl+ODquOCiOOCiiBJbmNvbWluZyBXZWJob29rIOOCkuWEquWFiOOBmeOCi1wiLFwicHJpb3JpdGl6ZV93ZWJob29rX2Rlc2NcIjpcIuOBk+OBruOCquODl+OCt+ODp+ODs+OCkuOCquODs+OBq+OBmeOCi+OBqOOAgSBTbGFjayBBcHAg44GM5pyJ5Yq544Gr44Gq44Gj44Gm44GE44Gm44KCIEdST1dJIOOBryBJbmNvbWluZyBXZWJob29rIOOCkuS9v+eUqOOBl+OBvuOBmeOAglwiLFwic2xhY2tfYXBwX2NvbmZpZ3VyYXRpb25cIjpcIlNsYWNrIEFwcCDoqK3lrppcIixcInNsYWNrX2FwcF9jb25maWd1cmF0aW9uX2Rlc2NcIjpcIkNyb3dpIOS6kuaPm+OBruapn+iDveOBp+OBmeOAgjxiciAvPiA8c3Ryb25nPuioreWumuOBjOikh+mbkeOBmeOBjuOCizwvc3Ryb25nPuOBruOBp+OCquOCueOCueODoeOBl+OBvuOBm+OCk+OAglwiLFwidXNlX2luc3RlYWRcIjpcIuS7o+OCj+OCiuOBqyBTbGFjayBJbmNvbWluZyBXZWJob29rcyDoqK3lrprjgpLkvb/nlKjjgZfjgabjgY/jgaDjgZXjgYTjgIJcIixcImhvd190b1wiOntcImhlYWRlclwiOlwiSW5jb21pbmcgV2ViaG9va3Mg44Gu6Kit5a6a5pa55rOVXCIsXCJ3b3Jrc3BhY2VcIjpcIuODr+ODvOOCr+OCueODmuODvOOCueOBpyBXZWJob29rIOOCkui/veWKoOOBl+OBvuOBmeOAglwiLFwid29ya3NwYWNlX2Rlc2MxXCI6XCI8YSBocmVmPSdodHRwczovL3NsYWNrLmNvbS9zZXJ2aWNlcy9uZXcvaW5jb21pbmctd2ViaG9vayc+SW5jb21pbmcgV2ViaG9va3MgQ29uZmlndXJhdGlvbiBwYWdlPC9hPiDjgavjgqLjgq/jgrvjgrnjgZfjgb7jgZnjgIJcIixcIndvcmtzcGFjZV9kZXNjMlwiOlwi5oqV56i/44GZ44KL44OB44Oj44Oz44ON44Or44KS6YG444Gz44G+44GZ44CCXCIsXCJ3b3Jrc3BhY2VfZGVzYzNcIjpcIui/veWKoOOBl+OBvuOBmeOAglwiLFwiYXRfZ3Jvd2lcIjpcIkdST1dJIOeuoeeQhueUu+mdouOBpyBXZWJob29rIFVSTCDjgpLoqK3lrprjgZfjgb7jgZnjgIJcIixcImF0X2dyb3dpX2Rlc2NcIjpcIuOBk+OBruODmuODvOOCuOOBpyAmcmRxdW87V2ViaG9vayBVUkwmcmRxdW87IOOCkuWFpeWKm+OBl+OBpumAgeS/oeOBl+OBvuOBmeOAglwifSxcInVzZXJfdHJpZ2dlcl9ub3RpZmljYXRpb25faGVhZGVyXCI6XCLjg4fjg5Xjgqnjg6vjg4jjg5Hjgr/jg7zjg7Pjga7pgJrnn6XoqK3lrppcIixcInBhdHRlcm5cIjpcIuODkeOCv+ODvOODs1wiLFwiY2hhbm5lbFwiOlwi44OB44Oj44Oz44ON44Or5ZCNXCIsXCJwYXR0ZXJuX2Rlc2NcIjpcIldpa2kg44Gu44OR44K55ZCN44CCIOODkeOCueOBq+OBryA8Y29kZT4qPC9jb2RlPiDjgpLkvb/nlKjjgafjgY3jgb7jgZnjgIJcIixcImNoYW5uZWxfZGVzY1wiOlwiPGNvZGU+IzwvY29kZT4g44KS6Zmk44GE44GfIFNsYWNrIOODgeODo+ODs+ODjeODq+WQjVwiLFwidmFsaWRfcGFnZVwiOlwi6YCa55+l44Gu5pyJ5Yq5IC8g54Sh5Yq5XCIsXCJsaW5rX25vdGlmaWNhdGlvbl9oZWxwXCI6XCI8c3Ryb25nPmxpbmvjgpLnn6XjgaPjgabjgYTjgovkurrjga7jgb/plrLopqfjgafjgY3jgovjg5rjg7zjgrg8L3N0cm9uZz7jga/luLjjgavpgJrnn6XjgZXjgozjgb7jgZvjgpPjgIJcIixcImp1c3RfbWVfbm90aWZpY2F0aW9uX2hlbHBcIjpcIjxzdHJvbmc+J+iHquWIhuOBruOBvyfjgavplrLopqfliLbpmZDjgpLjgZfjgabjgYTjgovjg5rjg7zjgrg8L3N0cm9uZz7jgavlpInmm7TjgpLliqDjgYjjgZ/pmpvjgavpgJrnn6XjgZnjgotcIixcImdyb3VwX25vdGlmaWNhdGlvbl9oZWxwXCI6XCI8c3Ryb25nPifnibnlrprjgrDjg6vjg7zjg5fjgavjga7jgb8n44Gr6Zay6Kan5Yi26ZmQ44KS44GX44Gm44GE44KL44Oa44O844K4PC9zdHJvbmc+44Gr5aSJ5pu044KS5Yqg44GI44Gf6Zqb44Gr6YCa55+l44GZ44KLXCIsXCJub3RpZmljYXRpb25fbGlzdFwiOlwi6YCa55+l6Kit5a6a44Gu5LiA6KanXCIsXCJhZGRfbm90aWZpY2F0aW9uXCI6XCLpgJrnn6XoqK3lrprjga7ov73liqBcIixcInRyaWdnZXJfcGF0aFwiOlwi44OI44Oq44Ks44O844OR44K5XCIsXCJ0cmlnZ2VyX3BhdGhfaGVscFwiOlwiKDxjb2RlPio8L2NvZGU+44GM5L2/55So44Gn44GN44G+44GZKVwiLFwidHJpZ2dlcl9ldmVudHNcIjpcIuODiOODquOCrOODvOOCpOODmeODs+ODiFwiLFwibm90aWZ5X3RvXCI6XCLpgJrnn6XlhYhcIixcImJhY2tfdG9fbGlzdFwiOlwi6YCa55+l6Kit5a6a5LiA6Kan44Gr5oi744KLXCIsXCJub3RpZmljYXRpb25fZGV0YWlsXCI6XCLpgJrnn6XoqbPntLDoqK3lrppcIixcImV2ZW50X3BhZ2VDcmVhdGVcIjpcIuODmuODvOOCuOOBjOaWsOimj+S9nOaIkOOBleOCjOOBn+OBqOOBjVwiLFwiZXZlbnRfcGFnZUVkaXRcIjpcIuODmuODvOOCuOOBjOe3qOmbhuOBleOCjOOBn+OBqOOBjVwiLFwiZXZlbnRfcGFnZURlbGV0ZVwiOlwi44Oa44O844K444GM5YmK6Zmk44GV44KM44Gf44Go44GNXCIsXCJldmVudF9wYWdlTW92ZVwiOlwi44Oa44O844K444GM56e75YuVKOWQjeWJjeOBjOWkieabtCnjgZXjgozjgZ/jgajjgY1cIixcImV2ZW50X3BhZ2VMaWtlXCI6XCLjg5rjg7zjgrjjgavjgIzjgYTjgYTjga3jgI3jgYzjgaTjgYTjgZ/jgajjgY1cIixcImV2ZW50X2NvbW1lbnRcIjpcIuOCs+ODoeODs+ODiOOBjOaKleeov+OBleOCjOOBn+OBqOOBjVwiLFwiZW1haWxcIjp7XCJpZnR0dF9saW5rXCI6XCJJRlRUVCDjgafjg6Hjg7zjg6vjg4jjg6rjgqzjga7mlrDjgZfjgYTjgqLjg5fjg6zjg4Pjg4jjgpLkvZzjgotcIn0sXCJ1cGRhdGVkX3NsYWNrQXBwXCI6XCJTbGFja0FwcOioreWumuOCkuabtOaWsOOBl+OBvuOBl+OBn1wiLFwiYWRkX25vdGlmaWNhdGlvbl9wYXR0ZXJuXCI6XCLpgJrnn6Xjg5Hjgr/jg7zjg7PjgpLov73liqDjgZfjgb7jgZfjgZ/jgIJcIixcImRlbGV0ZV9ub3RpZmljYXRpb25fcGF0dGVyblwiOlwi6YCa55+l44OR44K/44O844Oz44KS5YmK6Zmk44GX44G+44GX44Gf44CCXCIsXCJkZWxldGVfbm90aWZpY2F0aW9uX3BhdHRlcm5fZGVzYzFcIjpcIlBhdGg6IHt7cGF0aH19IOOCkuWJiumZpOOBl+OBvuOBmeOAglwiLFwiZGVsZXRlX25vdGlmaWNhdGlvbl9wYXR0ZXJuX2Rlc2MyXCI6XCJPbmNlIGRlbGV0ZWQsIGl0IGNhbm5vdCBiZSByZWNvdmVyZWRcIixcInRvZ2dsZV9ub3RpZmljYXRpb25cIjpcInt7cGF0aH1944Gu6YCa55+l6Kit5a6a44KS5aSJ5pu044GX44G+44GX44GfXCJ9LFwiZnVsbF90ZXh0X3NlYXJjaF9tYW5hZ2VtZW50XCI6e1wiZWxhc3RpY3NlYXJjaF9tYW5hZ2VtZW50XCI6XCJFbGFzdGljc2VhcmNoIOeuoeeQhlwiLFwiY29ubmVjdGlvbl9zdGF0dXNcIjpcIuaOpee2muOBrueKtuaFi1wiLFwiY29ubmVjdGlvbl9zdGF0dXNfbGFiZWxfdW5jb25maWd1cmVkXCI6XCLoqK3lrprjgZXjgozjgabjgYTjgb7jgZvjgpNcIixcImNvbm5lY3Rpb25fc3RhdHVzX2xhYmVsX2Nvbm5lY3RlZFwiOlwi5o6l57aa44GV44KM44Gm44GE44G+44GZXCIsXCJjb25uZWN0aW9uX3N0YXR1c19sYWJlbF9kaXNjb25uZWN0ZWRcIjpcIuWIh+aWreOBleOCjOOBpuOBhOOBvuOBmVwiLFwiY29ubmVjdGlvbl9zdGF0dXNfbGFiZWxfZXJyb3JvY2N1cmVkXCI6XCJTZWFyY2hTZXJ2aWNlIOOBp+OCqOODqeODvOOBjOeZuueUn+OBl+OBpuOBhOOBvuOBmVwiLFwiaW5kaWNlc19zdGF0dXNcIjpcIuOCpOODs+ODh+ODg+OCr+OCueOBrueKtuaFi1wiLFwiaW5kaWNlc19zdGF0dXNfbGFiZWxfbm9ybWFsaXplZFwiOlwi5q2j6KaP5YyW44GV44KM44Gm44GE44G+44GZXCIsXCJpbmRpY2VzX3N0YXR1c19sYWJlbF91bm5vcm1hbGl6ZWRcIjpcIuODquODk+ODq+ODieS4rSDjgb7jgZ/jga8g56C05pCN44GX44Gm44GE44G+44GZXCIsXCJpbmRpY2VzX3N1bW1hcnlcIjpcIuOCpOODs+ODh+ODg+OCr+OCueOBruOCteODnuODqlwiLFwicmVjb25uZWN0XCI6XCLlho3mjqXntppcIixcInJlY29ubmVjdF9idXR0b25cIjpcIuWGjeaOpee2muOBruippuihjFwiLFwicmVjb25uZWN0X2Rlc2NyaXB0aW9uXCI6XCJFbGFzdGljc2VhcmNoIOOBuOOBruWGjeaOpee2muOCkuippuOBv+OBvuOBmeOAglwiLFwibm9ybWFsaXplXCI6XCLmraPopo/ljJZcIixcIm5vcm1hbGl6ZV9idXR0b25cIjpcIuOCpOODs+ODh+ODg+OCr+OCueOBruato+imj+WMllwiLFwibm9ybWFsaXplX2Rlc2NyaXB0aW9uXCI6XCLnoLTmkI3jgZfjgZ/jgqTjg7Pjg4fjg4Pjgq/jgrnjgpLkv67lvqnjgZfjgb7jgZnjgIJcIixcInJlYnVpbGRcIjpcIuODquODk+ODq+ODiVwiLFwicmVidWlsZF9idXR0b25cIjpcIuOCpOODs+ODh+ODg+OCr+OCueOBruODquODk+ODq+ODiVwiLFwicmVidWlsZF9kZXNjcmlwdGlvbl8xXCI6XCLlhajjgabjga7jg5rjg7zjgrjjga7jgqTjg7Pjg4fjg4Pjgq/jgrnjgpLliYrpmaTjgZfjgIHkvZzjgornm7TjgZfjgb7jgZnjgIJcIixcInJlYnVpbGRfZGVzY3JpcHRpb25fMlwiOlwi44GT44Gu5L2c5qWt44Gr44Gv5pWw56eS44GL44GL44KK44G+44GZ44CCXCJ9LFwidG9fY2xvdWRfc2V0dGluZ3NcIjpcIkdST1dJLmNsb3VkIOOBrueuoeeQhueUu+mdouOBuFwiLFwibG9naW5cIjp7XCJTaWduIGluIGVycm9yXCI6XCLjg63jgrDjgqTjg7Pjgqjjg6njg7xcIixcIlJlZ2lzdHJhdGlvbiBzdWNjZXNzZnVsXCI6XCLnmbvpjLLlrozkuoZcIixcIlNldHVwXCI6XCLjgrvjg4Pjg4jjgqLjg4Pjg5dcIn0sXCJleHBvcnRfYnVsa1wiOntcImZhaWxlZF90b19leHBvcnRcIjpcIuODmuODvOOCuOOBruOCqOOCr+OCueODneODvOODiOOBq+WkseaVl+OBl+OBvuOBl+OBn1wiLFwiZmFpbGVkX3RvX2NvdW50X3BhZ2VzXCI6XCLjg5rjg7zjgrjmlbDjga7lj5blvpfjgavlpLHmlZfjgZfjgb7jgZfjgZ9cIixcImV4cG9ydF9wYWdlX21hcmtkb3duXCI6XCLjg57jg7zjgq/jg4Djgqbjg7PlvaLlvI/jgafjg5rjg7zjgrjjgpLjgqjjgq/jgrnjg53jg7zjg4hcIixcImV4cG9ydF9wYWdlX3BkZlwiOlwiUERG5b2i5byP44Gn44Oa44O844K444KS44Ko44Kv44K544Od44O844OIXCJ9LFwibWVzc2FnZVwiOntcInN1Y2Nlc3NmdWxseV9jb25uZWN0ZWRcIjpcIuaOpee2muOBq+aIkOWKn+OBl+OBvuOBl+OBnyFcIixcImZhaWxfdG9fc2F2ZV9hY2Nlc3NfdG9rZW5cIjpcIuOCouOCr+OCu+OCueODiOODvOOCr+ODs+OBruS/neWtmOOBq+WkseaVl+OBl+OBvuOBl+OBn+OAgeWGjeW6puOBiuippuOBl+OBj+OBoOOBleOBhOOAglwiLFwiZmFpbF90b19mZXRjaF9hY2Nlc3NfdG9rZW5cIjpcIuOCouOCr+OCu+OCueODiOODvOOCr+ODs+OBruWPluW+l+OBq+WkseaVl+OBl+OBvuOBl+OBn+OAgeWGjeW6puOBiuippuOBl+OBj+OBoOOBleOBhOOAglwiLFwic3VjY2Vzc2Z1bGx5X2Rpc2Nvbm5lY3RlZFwiOlwi5YiH5pat44Gr5oiQ5Yqf44GX44G+44GX44GfIVwiLFwic3RyYXRlZ3lfaGFzX25vdF9iZWVuX3NldF91cFwiOlwie3tzdHJhdGVneX19IOOBr+OCu+ODg+ODiOOCouODg+ODl+OBleOCjOOBpuOBhOOBvuOBm+OCk+OAglwiLFwibWF4aW11bV9udW1iZXJfb2ZfdXNlcnNcIjpcIuODpuODvOOCtuODvOaVsOOBjOS4iumZkOOCkui2heOBiOOBn+OBn+OCgeOCouOCr+ODhuOCo+ODmeODvOODiOOBp+OBjeOBvuOBm+OCk+OAglwiLFwiZGF0YWJhc2VfZXJyb3JcIjpcIuODh+ODvOOCv+ODmeODvOOCueOCteODvOODkOODvOOBq+WVj+mhjOOBjOOBguOCiuOBvuOBmeOAglwiLFwic2lnbl9pbl9mYWlsdXJlXCI6XCLjg63jgrDjgqTjg7PjgavlpLHmlZfjgZfjgb7jgZfjgZ/jgIJcIixcImF3c19zdHRpbmdzX3JlcXVpcmVkXCI6XCLjgZPjga7mqZ/og73jgavjga9BV1PoqK3lrprjgYzlv4XopoHjgafjgZnjgILnrqHnkIbogIXjgavoqKrjga3jgabkuIvjgZXjgYTjgIJcIixcImFwcGxpY2F0aW9uX2FscmVhZHlfaW5zdGFsbGVkXCI6XCLjgqLjg5fjg6rjgrHjg7zjgrfjg6fjg7Pjga7jgqTjg7Pjgrnjg4jjg7zjg6vjgYzlrozkuobjgZfjgb7jgZfjgZ/jgIJcIixcImVtYWlsX2FkZHJlc3NfY291bGRfbm90X2JlX3VzZWRcIjpcIuOBk+OBruODoeODvOODq+OCouODieODrOOCueOBr+S9v+eUqOOBp+OBjeOBvuOBm+OCk+OAgijoqLHlj6/jgZXjgozjgZ/jg6Hjg7zjg6vjgqLjg4njg6zjgrnjgpLnorroqo3jgZfjgabjgY/jgaDjgZXjgYTjgIIpXCIsXCJ1c2VyX2lkX2lzX25vdF9hdmFpbGFibGVcIjpcIuOBk+OBruODpuODvOOCtuODvElE44Gv5L2/55So44Gn44GN44G+44Gb44KT44CCXCIsXCJlbWFpbF9hZGRyZXNzX2lzX2FscmVhZHlfcmVnaXN0ZXJlZFwiOlwi44GT44Gu44Oh44O844Or44Ki44OJ44Os44K544Gv5pei44Gr55m76Yyy44GV44KM44Gm44GE44G+44GZ44CCXCIsXCJjYW5fbm90X3JlZ2lzdGVyX21heGltdW1fbnVtYmVyX29mX3VzZXJzXCI6XCLjg6bjg7zjgrbjg7zmlbDjgYzkuIrpmZDjgpLotoXjgYjjgZ/jgZ/jgoHnmbvpjLLjgafjgY3jgb7jgZvjgpPjgIJcIixcImZhaWxlZF90b19yZWdpc3RlclwiOlwi55m76Yyy44Gr5aSx5pWX44GX44G+44GX44Gf44CCXCIsXCJzdWNjZXNzZnVsbHlfY3JlYXRlZFwiOlwie3t1c2VybmFtZX19IOOBjOS9nOaIkOOBleOCjOOBvuOBl+OBn+OAglwiLFwiY2FuX25vdF9hY3RpdmF0ZV9tYXhpbXVtX251bWJlcl9vZl91c2Vyc1wiOlwi44Om44O844K244O844GM5LiK6ZmQ44Gr6YGU44GX44Gf44Gf44KB44Ki44Kv44OG44Kj44OZ44O844OI44Gn44GN44G+44Gb44KT44CCXCIsXCJmYWlsZWRfdG9fYWN0aXZhdGVcIjpcIuOCouOCr+ODhuOCo+ODmeODvOODiOOBq+WkseaVl+OBl+OBvuOBl+OBn+OAglwiLFwidW5hYmxlX3RvX3VzZV90aGlzX3VzZXJcIjpcIuWIqeeUqOOBp+OBjeOBquOBhOODpuODvOOCtuODvElE44Gn44GZ44CCXCIsXCJjb21wbGV0ZV90b19pbnN0YWxsMVwiOlwiR1JPV0kg44Gu44Kk44Oz44K544OI44O844Or44GM5a6M5LqG44GX44G+44GX44Gf77yB566h55CG6ICF44Ki44Kr44Km44Oz44OI44Gn44Ot44Kw44Kk44Oz44GX44Gm44GP44Gg44GV44GE44CCXCIsXCJjb21wbGV0ZV90b19pbnN0YWxsMlwiOlwiR1JPV0kg44Gu44Kk44Oz44K544OI44O844Or44GM5a6M5LqG44GX44G+44GX44Gf77yB44Gv44GY44KB44Gr44CB44GT44Gu44Oa44O844K444Gn5ZCE56iu6Kit5a6a44KS56K66KqN44GX44Gm44GP44Gg44GV44GE44CCXCIsXCJmYWlsZWRfdG9fY3JlYXRlX2FkbWluX3VzZXJcIjpcIueuoeeQhuODpuODvOOCtuODvOOBruS9nOaIkOOBq+WkseaVl+OBl+OBvuOBl+OBn+OAgnt7ZXJyTWVzc2FnZX19XCJ9LFwiZ3JpZF9lZGl0XCI6e1wiY3JlYXRlX2Jvb3RzdHJhcF80X2dyaWRcIjpcIkJvb3RzdHJhcCA0IOOCsOODquODg+ODieOCkuS9nOaIkFwiLFwiZ3JpZF9zZXR0aW5nc1wiOlwi44Kw44Oq44OD44OJ6Kit5a6aXCIsXCJncmlkX3BhdHRlcm5cIjpcIuOCsOODquODg+ODieOAgOODkeOCv+ODvOODs1wiLFwiZGl2aXNpb25cIjpcIuWIhuWJslwiLFwic21hcnRfbm9cIjpcIuOCueODnuODmyAvIOWIhuWJsuOBquOBl1wiLFwiYnJlYWtfcG9pbnRcIjpcIueUu+mdouOCteOCpOOCuuOCiOOCiuWIhuWJslwifSxcInZhbGlkYXRpb25cIjp7XCJhd3NfcmVnaW9uXCI6XCLjg6rjg7zjgrjjg6fjg7Pjgavjga/jgIFBV1Pjg6rjg7zjgrjjg6fjg7PlkI3jgpLlhaXlipvjgZfjgabjgY/jgaDjgZXjgYTjgILkvos6IGFwLW5vcnRoZWFzdC0xXCIsXCJhd3NfY3VzdG9tX2VuZHBvaW50XCI6XCLjgqvjgrnjgr/jg6Djgqjjg7Pjg4njg53jgqTjg7Pjg4jjga/jgIFodHRwKHMpOi8v44Gn5aeL44G+44KLVVJM44KS5oyH5a6a44GX44Gm44GP44Gg44GV44GE44CC44G+44Gf44CB5pyr5bC+44GuL+OBr+S4jeimgeOBp+OBmeOAglwiLFwiZmFpbGVkX3RvX3NlbmRfYV90ZXN0X2VtYWlsXCI6XCJTTVRQ44KS5Yip55So44GX44Gf44OG44K544OI44Oh44O844Or6YCB5L+h44Gr5aSx5pWX44GX44G+44GX44Gf44CC6Kit5a6a44KS44G/44Gq44GK44GX44Gm44GP44Gg44GV44GE44CCXCJ9fX0sXCJ6aF9DTlwiOntcImFkbWluXCI6e1wibWFpbGVyX3NldHVwX3JlcXVpcmVkXCI6XCI8YSBocmVmPScvYWRtaW4vYXBwJz5FbWFpbCBzZXR0aW5nczwvYT4gYXJlIHJlcXVpcmVkIHRvIHNlbmQuXCIsXCJhZG1pbl90b3BcIjp7XCJtYW5hZ2VtZW50X3dpa2lcIjpcIueuoeeQhldpa2lcIixcInN5c3RlbV9pbmZvcm1hdGlvblwiOlwi57O757uf5L+h5oGvXCIsXCJ3aWtpX2FkbWluaXN0cmF0b3JcIjpcIuWPquaciXdpa2nnrqHnkIblkZjlj6/ku6Xorr/pl67mraTpobVcIixcImFzc2lnbl9hZG1pbmlzdHJhdG9yXCI6XCLmgqjlj6/ku6Xkvb/nlKjigJzmjojkuojnrqHnkIblkZjorr/pl67mnYPpmZDigJ3mjInpkq7lnKjigJznlKjmiLfnrqHnkIbigJ3pobXkuIrlsIbmiYDpgInnlKjmiLfmjIflrprkuLp3aWtp566h55CG5ZGYXCIsXCJsaXN0X29mX2luc3RhbGxlZF9wbHVnaW5zXCI6XCLlt7Llronoo4Xmj5Lku7bliJfooahcIixcInBhY2thZ2VfbmFtZVwiOlwi5YyF5ZCN56ewXCIsXCJzcGVjaWZpZWRfdmVyc2lvblwiOlwi5oyH5a6a54mI5pysXCIsXCJpbnN0YWxsZWRfdmVyc2lvblwiOlwi5bey5a6J6KOF54mI5pysXCIsXCJsaXN0X29mX2Vudl92YXJzXCI6XCLnjq/looPlj5jph4/liJfooahcIixcImVudl92YXJfcHJpb3JpdHlcIjpcIuWvueS6juWuieWFqOaAp+S7peWklueahOeOr+Wig+WPmOmHj++8jOS8mOWFiOiOt+WPluaVsOaNruW6k+eahOWAvOOAglwiLFwiYWJvdXRfc2VjdXJpdHlcIjpcIuajgOafpeWuieWFqOeOr+Wig+WPmOmHj+eahDxhIGhyZWY9Jy9hZG1pbi9zZWN1cml0eSc+5a6J5YWo6K6+572uPC9hPuOAglwifSxcImFwcF9zZXR0aW5nXCI6e1wic2l0ZV9uYW1lXCI6XCLnvZHnq5nlkI3np7AgXCIsXCJzaXRlbmFtZV9jaGFuZ2VcIjpcIuaCqOWPr+S7peabtOaUueeUqOS6juagh+mimOWSjEhUTUzmoIfpopjnmoTnvZHnq5nlkI3np7DjgIJcIixcImhlYWRlcl9jb250ZW50XCI6XCLmraTlpITovpPlhaXnmoTlhoXlrrnlsIbmmL7npLrlnKjmoIfpopjnrYnkuK3jgIJcIixcInNpdGVfdXJsX2Rlc2NcIjpcIueUqOS6jue9keermVVSTOiuvue9ruOAglwiLFwic2l0ZV91cmxfd2FyblwiOlwi5p+Q5Lqb5Yqf6IO95LiN6LW35L2c55So77yM5Zug5Li65pyq6K6+572u572R56uZVVJM44CCXCIsXCJzaXRldXJsX2hlbHBcIjpcIue9keermeWujOaVtFVSTOi1t+Wni+S6jiA8Y29kZT5odHRwOi8vPC9jb2RlPiBvciA8Y29kZT5odHRwczovLzwvY29kZT4uXCIsXCJjb25maWRlbnRpYWxfbmFtZVwiOlwi5YaF6YOo5ZCN56ewXCIsXCJjb25maWRlbnRpYWxfZXhhbXBsZVwiOlwiZXjvvInvvJrku4XkvpvlhoXpg6jkvb/nlKhcIixcImRlZmF1bHRfbGFuZ3VhZ2VcIjpcIuaWsOeUqOaIt+eahOm7mOiupOivreiogFwiLFwiZGVmYXVsdF9tYWlsX3Zpc2liaWxpdHlcIjpcIuaWsOeUqOaIt+eahOm7mOiupOeUteWtkOmCruS7tuWPr+ingeaAp1wiLFwiZmlsZV91cGxvYWRpbmdcIjpcIuaWh+S7tuS4iuS8oFwiLFwiZW5hYmxlX2ZpbGVzX2V4Y2VwdF9pbWFnZVwiOlwi5ZCv55So5q2k6YCJ6aG55bCG5YWB6K645LiK5Lyg5Lu75L2V5paH5Lu257G75Z6L44CC5aaC5p6c5rKh5pyJ5q2k6YCJ6aG577yM5YiZ5LuF5pSv5oyB5Zu+5YOP5paH5Lu25LiK6L2944CCXCIsXCJhdHRhY2hfZW5hYmxlXCI6XCLlpoLmnpzlkK/nlKjmraTpgInpobnvvIzliJnlj6/ku6XpmYTliqDlm77lg4/mlofku7bku6XlpJbnmoTmlofku7bjgIJcIixcInVwZGF0ZVwiOlwi5pu05pawXCIsXCJtYWlsX3NldHRpbmdzXCI6XCLpgq7ku7borr7nva5cIixcIm1haWxlcl9pc19ub3Rfc2V0X3VwXCI6XCLpgq7ku7borr7nva7lsJrmnKrlrozmiJDjgIJcIixcInRyYW5zbWlzc2lvbl9tZXRob2RcIjpcIuS8oOmAgeaWueazlVwiLFwic210cF9sYWJlbFwiOlwiU01UUFwiLFwic2VzX2xhYmVsXCI6XCJTRVMoQVdTKVwiLFwiZnJvbV9lLW1haWxfYWRkcmVzc1wiOlwi6YKu5Lu25Y+R5Ye65Zyw5Z2AXCIsXCJzZW5kX3Rlc3RfZW1haWxcIjpcIuWPkemAgea1i+ivlemCruS7tlwiLFwic3VjY2Vzc190b19zZW5kX3Rlc3RfZW1haWxcIjpcIuaIkOWKn+WPkemAgeS6huS4gOWwgea1i+ivlemCruS7tlwiLFwic210cF9zZXR0aW5nc1wiOlwiU01UUCDorr7nva5cIixcImhvc3RcIjpcIuacjeWKoeWZqFwiLFwicG9ydFwiOlwi56uv5Y+j5Y+3XCIsXCJ1c2VyXCI6XCLnlKjmiLflkI1cIixcImluaXRpYWxpemVfbWFpbF9zZXR0aW5nc1wiOlwi6YeN572u6YKu5Lu26K6+572uXCIsXCJpbml0aWFsaXplX21haWxfbW9kYWxfaGVhZGVyXCI6XCLph43nva7pgq7ku7borr7nva5cIixcImNvbmZpcm1fdG9faW5pdGlhbGl6ZV9tYWlsX3NldHRpbmdzXCI6XCLlvZPliY3orr7nva7lsIbooqvmuIXnqbrkuJTkuI3lj6/mgaLlpI3jgILnoa7orqTph43nva7vvJ9cIixcImZpbGVfdXBsb2FkX3NldHRpbmdzXCI6XCLmlofku7bkuIrkvKDorr7nva5cIixcImZpbGVfdXBsb2FkX21ldGhvZFwiOlwi5paH5Lu25LiK5Lyg5pa55rOVXCIsXCJmaWxlX2RlbGl2ZXJ5X21ldGhvZFwiOlwiRmlsZSBEZWxpdmVyeSBNZXRob2RcIixcImZpbGVfZGVsaXZlcnlfbWV0aG9kX3JlZGlyZWN0XCI6XCJSZWRpcmVjdFwiLFwiZmlsZV9kZWxpdmVyeV9tZXRob2RfcmVsYXlcIjpcIkludGVybmFsIFN5c3RlbSBSZWxheVwiLFwiZmlsZV9kZWxpdmVyeV9tZXRob2RfcmVkaXJlY3RfaW5mb1wiOlwiUmVkaXJlY3Q6IEl0IHJlZGlyZWN0cyB0byBhIHNpZ25lZCBVUkwgd2l0aG91dCBHUk9XSSBzZXJ2ZXIsIGl0IGdpdmVzIGV4Y2VsbGVudCBwZXJmb3JtYW5jZS5cIixcImZpbGVfZGVsaXZlcnlfbWV0aG9kX3JlbGF5X2luZm9cIjpcIkludGVybmFsIFN5c3RlbSBSZWxheTogVGhlIEdST1dJIHNlcnZlciBkZWxpdmVycyB0byBjbGllbnRzLCBpdCBwcm92aWRlcyBjb21wbGV0ZSBzZWN1cml0eS5cIixcImdjc19sYWJlbFwiOlwiR0NQKEdDUylcIixcImF3c19sYWJlbFwiOlwiQVdTKFMzKVwiLFwibG9jYWxfbGFiZWxcIjpcIkxvY2FsXCIsXCJncmlkZnNfbGFiZWxcIjpcIk1vbmdvREIoR3JpZEZTKVwiLFwic2VzX3NldHRpbmdzXCI6XCJTRVPorr7nva5cIixcInRlc3RfY29ubmVjdGlvblwiOlwi5rWL6K+V6YKu5Lu25pyN5Yqh5Zmo6L+e5o6lXCIsXCJcIjpcIuWmguaenOaCqOayoeaciVNNVFDorr7nva7vvIznlLXlrZDpgq7ku7blsIbpgJrov4dTRVPlj5HpgIHjgILmgqjpnIDopoHku47nlLXlrZDpgq7ku7blnLDlnYDlkoznlJ/kuqforr7nva7ov5vooYzpqozor4HjgIJcIixcImNoYW5nZV9zZXR0aW5nXCI6XCLms6jmhI/vvJrlpoLmnpzkvaDmm7TmlLnmraTorr7nva7mnKrlrozmiJDvvIzmgqjlsIbml6Dms5Xorr/pl67ov4Tku4rkuLrmraLkuIrkvKDnmoTmlofku7bjgIJcIixcInJlZ2lvblwiOlwiUmVnaW9uXCIsXCJidWNrZXRfbmFtZVwiOlwiQnVja2V0IG5hbWVcIixcImN1c3RvbV9lbmRwb2ludFwiOlwiQ3VzdG9tIGVuZHBvaW50XCIsXCJjdXN0b21fZW5kcG9pbnRfY2hhbmdlXCI6XCLovpPlhaXlr7nosaHlrZjlgqjmnI3liqHvvIjlpoJNaW5JT++8ieerr+eCueeahFVSTO+8jE1pbklP5YW35pyJ5LiOUzPlhbzlrrnnmoRBUEnjgILlpoLmnpzkuLrnqbrvvIzliJnkvb/nlKhBbWF6b24gUzPjgIJcIixcInBsdWdpbl9zZXR0aW5nc1wiOlwi5o+S5Lu26K6+572uXCIsXCJlbmFibGVfcGx1Z2luX2xvYWRpbmdcIjpcIuWQr+eUqOaPkuS7tuWKoOi9vVwiLFwibG9hZF9wbHVnaW5zXCI6XCLliqDovb3mj5Lku7ZcIixcImVuYWJsZVwiOlwi5ZCv55SoXCIsXCJkaXNhYmxlXCI6XCLlgZznlKhcIixcInVzZV9lbnZfdmFyX2lmX2VtcHR5XCI6XCLlpoLmnpzmlbDmja7lupPkuK3nmoTlgLzkuLrnqbrvvIzliJnnjq/looPlj5jph4/nmoTlgLwgPGNvZD57e3ZhcmlhYmxlfX08L2NvZGU+IOWQr+eUqOOAglwiLFwibm90ZV9mb3JfdGhlX29ubHlfZW52X29wdGlvblwiOlwiVGhlIEdDUyBzZXR0aW5ncyBpcyBsaW1pdGVkIGJ5IHRoZSB2YWx1ZSBvZiBlbnZpcm9ubWVudCB2YXJpYWJsZS48YnI+VG8gY2hhbmdlIHRoaXMgc2V0dGluZywgcGxlYXNlIGNoYW5nZSB0byBmYWxzZSBvciBkZWxldGUgdGhlIHZhbHVlIG9mIHRoZSBlbnZpcm9ubWVudCB2YXJpYWJsZSA8Y29kZT57e2Vudn19PC9jb2RlPiAuXCJ9LFwibWFya2Rvd25fc2V0dGluZ1wiOntcImxpbmVCcmVha19oZWFkZXJcIjpcIuaNouihjOiuvue9rlwiLFwibGluZUJyZWFrX2Rlc2NcIjpcIuaCqOWPr+S7peabtOaUueaNouihjOiuvue9ruOAglwiLFwibGluZUJyZWFrX29wdGlvbnNcIjp7XCJlbmFibGVfbGluZUJyZWFrXCI6XCLlkK/nlKjmjaLooYznrKZcIixcImVuYWJsZV9saW5lQnJlYWtfZGVzY1wiOlwiSFRNTOS4reWwhuaWh+acrOmhteS4reeahOaNouihjOespui9rOaNouS4ujxjb2RlPiZsdDticiZndDs8L2NvZGU+XCIsXCJlbmFibGVfbGluZUJyZWFrX2Zvcl9jb21tZW50XCI6XCLms6jph4rkuK3lkK/nlKjmjaLooYznrKZcIixcImVuYWJsZV9saW5lQnJlYWtfZm9yX2NvbW1lbnRfZGVzY1wiOlwiSFRNTOS4reWwhuazqOmHiuS4reeahOaNouihjOespui9rOaNouS4ujxjb2RlPiZsdDticiZndDs8L2NvZGU+XCJ9LFwiaW5kZW50X2hlYWRlclwiOlwi57yp6L+b6K6+572uXCIsXCJpbmRlbnRfZGVzY1wiOlwi5oKo5Y+v5Lul5pu05pS557yp6L+b6K6+572u44CCXCIsXCJpbmRlbnRfb3B0aW9uc1wiOntcImluZGVudFNpemVcIjpcIum7mOiupOeahOe8qei/m+WAvFwiLFwiaW5kZW50U2l6ZV9kZXNjXCI6XCLmgqjlj6/ku6Xmm7TmlLlNYXJrZG93bue8lui+keWZqOeahOm7mOiupOeahOe8qei/m+WAvOOAglwiLFwiZGlzYWxsb3dfaW5kZW50X2NoYW5nZVwiOlwi5LiN5YWB6K6455So5oi35pu05pS557yp6L+b5YC8XCIsXCJkaXNhbGxvd19pbmRlbnRfY2hhbmdlX2Rlc2NcIjpcIuaCqOWPr+S7peS4jeWFgeiuuOeUqOaIt+abtOaUuee8qei/m+WAvOOAglwifSxcInByZXNlbnRhdGlvbl9oZWFkZXJcIjpcIua8lOekuuaWh+eov+iuvue9rlwiLFwicHJlc2VudGF0aW9uX2Rlc2NcIjpcIuaCqOWPr+S7peabtOaUuea8lOekuuaWh+eov+iuvue9ruOAglwiLFwicHJlc2VudGF0aW9uX29wdGlvbnNcIjp7XCJwYWdlX2JyZWFrX3NldHRpbmdcIjpcIuWIhumhteiuvue9rlwiLFwicHJlc2V0X29uZV9zZXBhcmF0b3JcIjpcIumihOiuviAxXCIsXCJwcmVzZXRfb25lX3NlcGFyYXRvcl9kZXNjXCI6XCIzIOepuuihjFwiLFwicHJlc2V0X29uZV9zZXBhcmF0b3JfdmFsdWVcIjpcIlxcXFxuXFxcXG5cXFxcblwiLFwicHJlc2V0X3R3b19zZXBhcmF0b3JcIjpcIumihOiuviAyXCIsXCJwcmVzZXRfdHdvX3NlcGFyYXRvcl9kZXNjXCI6XCI1IOi/nuWtl+esplwiLFwicHJlc2V0X3R3b19zZXBhcmF0b3JfdmFsdWVcIjpcIi0tLS0tXCIsXCJjdXN0b21fc2VwYXJhdG9yXCI6XCLoh6rlrprkuYlcIixcImN1c3RvbV9zZXBhcmF0b3JfZGVzY1wiOlwi5q2j5YiZ6KGo6L6+5byPXCJ9LFwieHNzX2hlYWRlclwiOlwi6Zi75q2iWFNT77yI6Leo56uZ54K56ISa5pys77yJ6K6+572uXCIsXCJ4c3NfZGVzY1wiOlwi5oKo5Y+v5Lul5pu05pS55qCH6K6w5paH5pys5LitSFRNTOagh+iusOeahOWkhOeQhuaWueW8j+OAglwiLFwieHNzX29wdGlvbnNcIjp7XCJlbmFibGVfeHNzX3ByZXZlbnRpb25cIjpcIuWQr+eUqFhTU+mihOmYslwiLFwicmVtb3ZlX2FsbF90YWdzXCI6XCLliKDpmaTmiYDmnInmoIforrBcIixcInJlbW92ZV9hbGxfdGFnc19kZXNjXCI6XCJTdHJpcGUgYWxsIEhUTUwgdGFncyBhbmQgYXR0cmlidXRlc1wiLFwicmVjb21tZW5kZWRfc2V0dGluZ1wiOlwi5o6o6I2Q6K6+572uXCIsXCJjdXN0b21fd2hpdGVsaXN0XCI6XCLoh6rlrprkuYnnmb3lkI3ljZVcIixcInRhZ19uYW1lc1wiOlwi5qCH6K6w5ZCNXCIsXCJ0YWdfYXR0cmlidXRlc1wiOlwi5qCH6K6w5bGe5oCnXCIsXCJpbXBvcnRfcmVjb21tZW5kZWRcIjpcIuWvvOWFpeW7uuiuriB7e3RhcmdldH19XCJ9fSxcImN1c3RvbWl6ZV9zZXR0aW5nXCI6e1wibGF5b3V0XCI6XCLluIPlsYBcIixcImxheW91dF9vcHRpb25zXCI6e1wiZGVmYXVsdFwiOlwi6buY6K6k5YaF5a655a695bqmIFwiLFwiZXhwYW5kZWRcIjpcIuWGheWuueWuveW6pjEwMO+8hSBcIn0sXCJ0aGVtZVwiOlwi5Li75L2TXCIsXCJiZWhhdmlvclwiOlwi6KGM5Li6XCIsXCJiZWhhdmlvcl9kZXNjXCI6e1wiZ3Jvd2lfdGV4dDFcIjpcIjxjb2RlPi9wYWdlPC9jb2RlPiBhbmQgPGNvZGU+L3BhZ2UvPC9jb2RlPiDpg73mmL7npLrlkIzkuIDpobXjgIJcIixcImdyb3dpX3RleHQyXCI6XCI8Y29kZT4vbm9uZXhpc3RlbnRfcGFnZTwvY29kZT4g5pi+56S657yW6L6R6KGo5Y2VXCIsXCJncm93aV90ZXh0M1wiOlwi5aaC5p6c5L2/55SoR1JPV0nlop7lvLrluIPlsYDvvIzliJnmiYDmnInpobXpnaLpg73mmL7npLrlrZDpobXpnaLliJfooahcIixcImNyb3dpX3RleHQxXCI6XCI8Y29kZT4vcGFnZTwvY29kZT4g5pi+56S66aG16Z2iXCIsXCJjcm93aV90ZXh0MlwiOlwiPGNvZGU+L3BhZ2UvPC9jb2RlPiDmmL7npLrlrZDpobXliJfooahcIixcImNyb3dpX3RleHQzXCI6XCLlpoLmnpxwb3J0YWzlupTnlKjkuo48Y29kZT4vcGFnZS88L2NvZGU+77yM5YiZ5Lya5pi+56S6cG9ydGFs5ZKM5a2Q6aG16Z2i5YiX6KGoXCIsXCJjcm93aV90ZXh0NFwiOlwiPGNvZGU+L25vbmV4aXN0ZW50X3BhZ2U8L2NvZGU+IOaYvuekuue8lui+keihqOWNlTxcIixcImNyb3dpX3RleHQ1XCI6XCI8Y29kZT4vbm9uZXhpc3RlbnRfcGFnZS88L2NvZGU+IOWtkOmhteWIl+ihqFwifSxcInRoZW1lX2Rlc2NcIjp7XCJsaWdodF9hbmRfZGFya1wiOlwi5piO5pqX5qih5byPXCIsXCJ1bmlxdWVcIjpcIuWPquacieS4gOenjeaooeW8j1wifSxcImZ1bmN0aW9uXCI6XCLlip/og71cIixcImZ1bmN0aW9uX2Rlc2NcIjpcIuaCqOWPr+S7pemAieaLqeWHveaVsOeahOacieaViC/ml6DmlYhcIixcImZ1bmN0aW9uX29wdGlvbnNcIjp7XCJ0aW1lbGluZVwiOlwi5pe26Ze057q/5Ye95pWwXCIsXCJ0aW1lbGluZV9kZXNjMVwiOlwi5oKo5Y+v5Lul5pi+56S65a2Q6aG155qE5pe26Ze057q/44CCXCIsXCJ0aW1lbGluZV9kZXNjMlwiOlwi5aaC5p6c5pyJ6K645aSa5a2Q6aG177yM5YiZ5Zyo5Yqg6L296aG15pe25oCn6IO95Lya6ZmN5L2O44CCXCIsXCJ0aW1lbGluZV9kZXNjM1wiOlwi6YCa6L+H5L2/5YiX6KGo6aG15peg5pWI77yM5Y+v5Lul5Yqg5b+r5YiX6KGo6aG155qE5pi+56S66YCf5bqm44CCXCIsXCJ0YWJfc3dpdGNoXCI6XCLlnKjmtY/op4jlmajkuK3kv53lrZjpgInpobnljaHliIfmjaJcIixcInRhYl9zd2l0Y2hfZGVzYzFcIjpcIuWcqOa1j+iniOWZqOS4reS/neWtmOe8lui+kemAiemhueWNoeWSjOWOhuWPsumAiemhueWNoeWIh+aNou+8jOW5tuS9v+WFtuaIkOS4uua1j+iniOWZqOeahOWJjeWQkS/lkI7lkJHlkb3ku6TnmoTlr7nosaHjgIJcIixcInRhYl9zd2l0Y2hfZGVzYzJcIjpcIumAmui/h+WkseaViO+8jOaCqOWPr+S7peWwhumhtemdoui9rOaNouS9nOS4uua1j+iniOWZqOeahOWJjeWQkS/lkI7lkJHlkb3ku6TnmoTllK/kuIDlr7nosaHjgIJcIixcImF0dGFjaF90aXRsZV9oZWFkZXJcIjpcIuiHquWKqOWIm+W7uuaWsOmhtemdouaXtua3u+WKoGgx6IqCXCIsXCJhdHRhY2hfdGl0bGVfaGVhZGVyX2Rlc2NcIjpcIuWIm+W7uuaWsOmhtemdouaXtu+8jOWwhumhtemdoui3r+W+hOS9nOS4umgx6IqC5re75Yqg5Yiw56ys5LiA6KGMXCIsXCJsaXN0X251bV9zXCI6XCJOdW1iZXIgb2YgbGlzdCBkaXNwbGF5ZWQgb24gbW9kYWxzXCIsXCJsaXN0X251bV9kZXNjX3NcIjpcIlNldCBudW1iZXIgb2YgbGlzdCBwZXIgcGFnZSBzdWNoIGFzICdQYWdlIExpc3QnLCAnVGltZWxpbmUnLCAnUGFnZSBIaXN0b3J5JyBhbmQgJ0F0dGFjaG1lbnQnIHBhZ2VzLlwiLFwibGlzdF9udW1fbVwiOlwiTnVtYmVyIG9mIGxpc3QgZGlzcGxheWVkIG9uIGFydGljbGUgcGFnZXMgaW5jbHVkZWQgb3RoZXIgY29udGVudHNcIixcImxpc3RfbnVtX2Rlc2NfbVwiOlwiU2V0IG51bWJlciBvZiBsaXN0IHBlciBwYWdlIHN1Y2ggYXMgJ0Jvb2ttYXJrcycgYW5kICdSZWNlbnRseSBjcmVhdGVkJyBwYWdlcy5cIixcImxpc3RfbnVtX2xcIjpcIk51bWJlciBvZiBsaXN0IGRpc3BsYXllZCBvbiAnU2VhcmNoJyBwYWdlc1wiLFwibGlzdF9udW1fZGVzY19sXCI6XCJTZXQgbnVtYmVyIG9mIGxpc3QgcGVyIHBhZ2Ugc3VjaCBhcyAnU2VhcmNoJyBwYWdlcy5cIixcImxpc3RfbnVtX3hsXCI6XCJOdW1iZXIgb2YgbGlzdCBkaXNwbGF5ZWQgb24gYXJ0aWNsZSBwYWdlc1wiLFwibGlzdF9udW1fZGVzY194bFwiOlwiU2V0IG51bWJlciBvZiBsaXN0IHBlciBwYWdlIHN1Y2ggYXMgJ05vdCBmb3VuZCcgYW5kICdUcmFzaCcgcGFnZXMuXCIsXCJzdGFsZV9ub3RpZmljYXRpb25cIjpcIuWcqOi/h+acn+mhteS4iuaYvuekuumAmuefpVwiLFwic3RhbGVfbm90aWZpY2F0aW9uX2Rlc2NcIjpcIuaYvuekuuiHquS4iuasoeabtOaWsOS7peadpei2hei/hzHlubTnmoTpobXpnaLpgJrnn6XjgIJcIixcInNob3dfYWxsX3JlcGx5X2NvbW1lbnRzXCI6XCLmmL7npLrmiYDmnInlm57lpI3or4TorrpcIixcInNob3dfYWxsX3JlcGx5X2NvbW1lbnRzX2Rlc2NcIjpcIuW9k+iuvue9ruWAvOS4uuKAnOWFs+KAneaXtu+8jOWwhuW/veeVpeacgOi/keS4pOS4quS5i+WklueahOazqOmHiuOAglwifSxcImNvZGVfaGlnaGxpZ2h0XCI6XCLku6PnoIHnqoHlh7rmmL7npLpcIixcIm5vY2RuX2Rlc2NcIjpcIuW9k+W8uuWItuW6lOeUqOeOr+Wig+WPmOmHjzxjb2RlPk5PX0NETj10cnVlPC9jb2RlPjxicj5HaXRodWLmoLflvI/ml7bvvIzmraTlh73mlbDooqvnpoHnlKjjgIJcIixcImN1c3RvbV90aXRsZVwiOlwi6Ieq5a6a5LmJ5qCH6aKYXCIsXCJjdXN0b21fdGl0bGVfZGV0YWlsXCI6XCLmgqjlj6/ku6Xoh6rlrprkuYk8Y29kZT4mbHTvvJt0aXRsZSZndO+8mzwvY29kZT7moIforrDjgII8YnI+PGNvZGU+JjEyM++8myYxMjPvvJtzaXRlbmFtZSYmMTI177ybJjEyNe+8mzwvY29kZT7lsIboh6rliqjmm7/mjaLkuLrlupTnlKjnqIvluo/lkI3np7DvvIzlubbkuJQ8Y29kZT4mMTIz77ybJjEyM++8m3BhZ2UmJjEyNe+8myYxMjXvvJs8L2NvZGU+5bCG5pu/5o2i5Li66aG16Z2i5ZCN56ewL+i3r+W+hOOAglwiLFwiY3VzdG9tX3RpdGxlX2RldGFpbF9wbGFjZWhvbGRlcjFcIjpcIjxjb2RlPiYjMTIz77ybJiMxMjPvvJvnq5nngrnlkI3np7AmIzEyNe+8myYjMTI177ybPC9jb2RlPi3mraR3aWtp55qE56uZ54K55ZCN56ew44CCXCIsXCJjdXN0b21fdGl0bGVfZGV0YWlsX3BsYWNlaG9sZGVyMlwiOlwiPGNvZGU+JiMxMjPvvJsmIzEyM++8m+mhteWQjSYjMTI177ybJiMxMjXvvJs8L2NvZGU+LeW9k+WJjemhteeahOmhteWQjeOAglwiLFwiY3VzdG9tX3RpdGxlX2RldGFpbF9wbGFjZWhvbGRlcjNcIjpcIjxjb2RlPiYjMTIz77ybJiMxMjPvvJvpobXpnaLot6/lvoQmIzEyNe+8myYjMTI177ybPC9jb2RlPi3lvZPliY3pobXpnaLnmoTpobXpnaLot6/lvoTjgIJcIixcImN1c3RvbV9oZWFkZXJcIjpcIuiHquWumuS5iUhUTUzmoIfpophcIixcImN1c3RvbV9oZWFkZXJfZGV0YWlsXCI6XCLmgqjlj6/ku6Xoh6rlrprkuYnlupTnlKjmiYDmnInpobXpnaLnmoRIVE1M5qCH6aKY44CC5oKo55qE6Ieq5a6a5LmJ6ISa5pys5bCG5o+S5YWlPGNvZGU+Jmx077ybaGVhZGVyJmd077ybPC9jb2RlPuS4re+8jOS9huS9jeS6juWFtuS7ljxjb2RlPiZsdO+8m3NjcmlwdCZndO+8mzwvY29kZT7moIforrDkuYvkuIrjgII8YnI+6YeN5paw6ZO+5o6l6aG16Z2i5Lul5p+l55yL5pu05pS544CCXCIsXCJjdXN0b21fY3NzXCI6XCLoh6rlrprkuYlDU1NcIixcIndyaXRlX2Nzc1wiOlwi5oKo5Y+v5Lul57yW5YaZ5bqU55So5LqO5pW05Liq57O757uf55qEQ1NT44CCXCIsXCJjdHJsX3NwYWNlXCI6XCJDdHJsK1NwYWNlIOiHquWKqOWujOaIkFwiLFwiY3VzdG9tX3NjcmlwdFwiOlwi5a6a5Yi257q45p2hXCIsXCJ3cml0ZV9qYXZhXCI6XCLmgqjlj6/ku6XnvJblhpnlupTnlKjkuo7mlbTkuKrns7vnu5/nmoRKYXZhc2NyaXB044CCXCIsXCJyZWZsZWN0X2NoYW5nZVwiOlwi5oKo6ZyA6KaB6YeN5paw5Yqg6L296aG16Z2i5Lul5Y+N5pig5pu05pS544CCXCJ9LFwiaW1wb3J0ZXJfbWFuYWdlbWVudFwiOntcImJldGFfd2FybmluZ1wiOlwi6L+Z5Liq5Ye95pWw5pivQmV0YeOAglwiLFwiaW1wb3J0X2Zyb21cIjpcIkltcG9ydCBmcm9tIHt7ZnJvbX19XCIsXCJpbXBvcnRfZ3Jvd2lfYXJjaGl2ZVwiOlwiSW1wb3J0IEdST1dJIGFyY2hpdmVcIixcImdyb3dpX3NldHRpbmdzXCI6e1wiZGVzY3JpcHRpb25fb2ZfaW1wb3J0X21vZGVcIjp7XCJhYm91dFwiOlwiV2hlbiB5b3UgaW1wb3J0IGRhdGEgd2l0aCB0aGUgc2FtZSBuYW1lIGFzIGFuIGV4aXN0aW5nIG9uZSwgY2hvb3NlIGZyb20gdGhlIGZvbGxvd2luZyB0aHJlZSBtb2RlcyBiZWxvdy5cIixcImluc2VydFwiOlwiSW5zZXJ0OiBTa2lwIGltcG9ydGluZyB0aGUgZGF0YS5cIixcInVwc2VydFwiOlwiVXBzZXJ0OiBPdmVyd3JpdGUgYW5kIHVwZGF0ZSB0aGUgZXhpc3RpbmcgZGF0YSB3aXRoIGltcG9ydGVkIGRhdGEuXCIsXCJmbGFzaF9hbmRfaW5zZXJ0XCI6XCJGbGFzaCBhbmQgSW5zZXJ0OiBBZnRlciBkZWxldGluZyB0aGUgZXhpc3RpbmcgZGF0YSBjb21wbGV0ZWx5LCBpbXBvcnQgdGhlIGRhdGFcIn0sXCJncm93aV9hcmNoaXZlX2ZpbGVcIjpcIkdST1dJIEFyY2hpdmUgRmlsZVwiLFwidXBsb2FkZWRfZGF0YVwiOlwiVXBsb2FkZWQgRGF0YVwiLFwiZXh0cmFjdGVkX2ZpbGVcIjpcIkV4dHJhY3RlZCBGaWxlXCIsXCJjb2xsZWN0aW9uXCI6XCJDb2xsZWN0aW9uXCIsXCJ1cGxvYWRcIjpcIlVwbG9hZFwiLFwiZGlzY2FyZFwiOlwiRGlzY2FyZCB1cGxvYWRlZCBkYXRhXCIsXCJlcnJvcnNcIjp7XCJ2ZXJzaW9uc19ub3RfbWV0XCI6XCJ0aGlzIGdyb3dpIGFuZCB0aGUgdXBsb2FkZWQgZGF0YSB2ZXJzaW9ucyBhcmUgbm90IG1ldFwiLFwiYXRfbGVhc3Rfb25lXCI6XCJTZWxlY3Qgb25lIG9yIG1vcmUgY29sbGVjdGlvbnMuXCIsXCJwYWdlX2FuZF9yZXZpc2lvblwiOlwiJ1BhZ2VzJyBhbmQgJ1JldmlzaW9ucycgbXVzdCBiZSBpbXBvcnRlZCBib3RoLlwiLFwiZGVwZW5kc1wiOlwiJ3t7dGFyZ2V0fX0nIG11c3QgYmUgc2VsZWN0ZWQgd2hlbiAne3tjb25kaXRpb259fScgaXMgc2VsZWN0ZWQuXCJ9LFwiY29uZmlndXJhdGlvblwiOntcInBhZ2VzXCI6e1wib3ZlcndyaXRlX2F1dGhvclwiOntcImxhYmVsXCI6XCJPdmVyd3JpdGUgcGFnZSdzIGF1dGhvciB3aXRoIHRoZSBjdXJyZW50IHVzZXJcIixcImRlc2NcIjpcIlJlY29tbWVuZGVkIDxzcGFuIGNsYXNzPVxcXCJ0ZXh0LWRhbmdlclxcXCI+Tk9UPC9zcGFuPiB0byBjaGVjayB0aGlzIHdoZW4gdXNlcnMgd2lsbCBhbHNvIGJlIHJlc3RvcmVkLlwifSxcInNldF9wdWJsaWNfdG9fcGFnZVwiOntcImxhYmVsXCI6XCJTZXQgJ1B1YmxpYycgdG8gdGhlIHBhZ2VzIHRoYXQgaXMgJ3t7ZnJvbX19J1wiLFwiZGVzY1wiOlwiTWFrZSBzdXJlIHRoYXQgdGhpcyBjb25maWd1cmF0aW9uIG1ha2VzIGFsbCA8Yj4ne3tmcm9tfX0nPC9iPiBwYWdlcyByZWFkYWJsZSBmcm9tIDxzcGFuIGNsYXNzPVxcXCJ0ZXh0LWRhbmdlclxcXCI+QU5ZIHVzZXJzPC9zcGFuPi5cIn0sXCJpbml0aWFsaXplX21ldGFfZGF0YXNcIjp7XCJsYWJlbFwiOlwiSW5pdGlhbGl6ZSBwYWdlJ3MgbGlrZSwgcmVhZCB1c2VycyBhbmQgY29tbWVudCBjb3VudFwiLFwiZGVzY1wiOlwiUmVjb21tZW5kZWQgPHNwYW4gY2xhc3M9XFxcInRleHQtZGFuZ2VyXFxcIj5OT1Q8L3NwYW4+IHRvIGNoZWNrIHRoaXMgd2hlbiB1c2VycyB3aWxsIGFsc28gYmUgcmVzdG9yZWQuXCJ9LFwiaW5pdGlhbGl6ZV9oYWNrbWRfcmVsYXRlZF9kYXRhc1wiOntcImxhYmVsXCI6XCJJbml0aWFsaXplIEhhY2tNRCByZWxhdGVkIGRhdGFcIixcImRlc2NcIjpcIlJlY29tbWVuZGVkIHRvIGNoZWNrIHRoaXMgdW5sZXNzIHRoZXJlIGlzIGltcG9ydGFudCBkcmFmdHMgb24gSGFja01ELlwifX0sXCJyZXZpc2lvbnNcIjp7XCJvdmVyd3JpdGVfYXV0aG9yXCI6e1wibGFiZWxcIjpcIk92ZXJ3cml0ZSByZXZpc2lvbidzIGF1dGhvciB3aXRoIHRoZSBjdXJyZW50IHVzZXJcIixcImRlc2NcIjpcIlJlY29tbWVuZGVkIDxzcGFuIGNsYXNzPVxcXCJ0ZXh0LWRhbmdlclxcXCI+Tk9UPC9zcGFuPiB0byBjaGVjayB0aGlzIHdoZW4gdXNlcnMgd2lsbCBhbHNvIGJlIHJlc3RvcmVkLlwifX19fSxcImVzYV9zZXR0aW5nc1wiOntcInRlYW1fbmFtZVwiOlwiVGVhbSBuYW1lXCIsXCJhY2Nlc3NfdG9rZW5cIjpcIkFjY2VzcyB0b2tlblwiLFwidGVzdF9jb25uZWN0aW9uXCI6XCJUZXN0IGNvbm5lY3Rpb24gdG8gZXNhXCJ9LFwicWlpdGFfc2V0dGluZ3NcIjp7XCJ0ZWFtX25hbWVcIjpcIlRlYW0gbmFtZVwiLFwiYWNjZXNzX3Rva2VuXCI6XCJBY2Nlc3MgdG9rZW5cIixcInRlc3RfY29ubmVjdGlvblwiOlwiVGVzdCBjb25uZWN0aW9uIHRvIHFpaXRhOnRlYW1cIn0sXCJpbXBvcnRcIjpcIkltcG9ydFwiLFwic2tpcF91c2VybmFtZV9hbmRfZW1haWxfd2hlbl9vdmVybGFwcGVkXCI6XCJTa2lwIHVzZXJuYW1lIGFuZCBlbWFpbCB1c2luZyBzYW1lIHVzZXJuYW1lIGFuZCBlbWFpbCBpbiBuZXcgZW52aXJvbm1lbnRcIixcInByZXBhcmVfbmV3X2FjY291bnRfZm9yX21pZ3JhdGlvblwiOlwiUHJlcGFyZSBuZXcgYWNjb3VudCBmb3IgbWlncmF0aW9uXCIsXCJhcmNoaXZlX2RhdGFfaW1wb3J0X2RldGFpbFwiOlwiTW9yZSBkZXRhaWxzPyBDbGljayBoZXJlLlwiLFwiYWRtaW5fYXJjaGl2ZV9kYXRhX2ltcG9ydF9ndWlkZV91cmxcIjpcImh0dHBzOi8vZG9jcy5ncm93aS5vcmcvZW4vYWRtaW4tZ3VpZGUvbWFuYWdlbWVudC1jb29rYm9vay9pbXBvcnQuaHRtbFwiLFwicGFnZV9za2lwXCI6XCJQYWdlcyB3aXRoIGEgbmFtZSB0aGF0IGFscmVhZHkgZXhpc3RzIG9uIEdST1dJIGFyZSBub3QgaW1wb3J0ZWRcIixcIkRpcmVjdG9yeV9oaWVyYXJjaHlfdGFnXCI6XCJEaXJlY3RvcnkgaGllcmFyY2h5IHRhZ1wifSxcImV4cG9ydF9tYW5hZ2VtZW50XCI6e1wiZXhwb3J0aW5nX2NvbGxlY3Rpb25fbGlzdFwiOlwi5q2j5Zyo5a+85Ye66ZuG5ZCI5YiX6KGoXCIsXCJleHBvcnRlZF9kYXRhX2xpc3RcIjpcIuWvvOWHuueahOWtmOaho+aVsOaNruWIl+ihqFwiLFwiZXhwb3J0X2NvbGxlY3Rpb25zXCI6XCLlr7zlh7rpm4blkIhcIixcImNoZWNrX2FsbFwiOlwi5YWo6YOo5qOA5p+lXCIsXCJ1bmNoZWNrX2FsbFwiOlwi5YWo6YOo5Y+W5raI6YCJ5LitXCIsXCJkZXNjX3Bhc3N3b3JkX3NlZWRcIjpcIjxwPui/mOWOn+eUqOaIt+aVsOaNruaXtu+8jOS4jeimgeW/mOiusOWwhuW9k+WJjeeahDxjb2RlPuWvhueggeenjeWtkOiuvue9ruWIsOaWsOeahEdST1dJ57O757uf77yM5ZCm5YiZ55So5oi35bCG5peg5rOV5L2/55So5YW25a+G56CB55m75b2V44CCPGJyPjxicj48c3Ryb25nPuaPkOekuu+8mjwvc3Ryb25nPjxicj7lvZPliY3nmoQ8Y29kZT7lr4bnoIHnp43lrZDlsIblrZjlgqjlnKg8Y29kZT5tZXRhLmpzb27moLzlvI88L2NvZGU+5Zyo5a+85Ye655qEemlw5Y6L57yp5YyF5Lit44CCPC9wPlwiLFwiY3JlYXRlX25ld19hcmNoaXZlX2RhdGFcIjpcIuWIm+W7uuaWsOeahOWtmOaho+aVsOaNrlwiLFwiZXhwb3J0XCI6XCLlr7zlh7pcIixcImNhbmNlbFwiOlwi5Y+W5raIXCIsXCJmaWxlXCI6XCLmlofku7ZcIixcImdyb3dpX3ZlcnNpb25cIjpcIkdyb3dpIFZlcnNpb25cIixcImNvbGxlY3Rpb25zXCI6XCJDb2xsZWN0aW9uc1wiLFwiZXhwb3J0ZWRfYXRcIjpcIkV4cG9ydGVkIEF0XCIsXCJleHBvcnRfbWVudVwiOlwi5a+85Ye66I+c5Y2VXCIsXCJkb3dubG9hZFwiOlwi5LiL6L29XCIsXCJkZWxldGVcIjpcIuWIoOmZpFwifSxcInNsYWNrX2ludGVncmF0aW9uXCI6e1wic2VsZWN0aW5nX2JvdF90eXBlc1wiOntcInNsYWNrX2JvdFwiOlwiU2xhY2sgYm90XCIsXCJkZXRhaWxlZF9leHBsYW5hdGlvblwiOlwi6K+m57uG6K+05piOXCIsXCJvZmZpY2lhbF9ib3RcIjpcIk9mZmljaWFsIGJvdFwiLFwiY3VzdG9tX2JvdFwiOlwiQ3VzdG9tIGJvdFwiLFwid2l0aG91dF9wcm94eVwiOlwid2l0aG91dCBwcm94eVwiLFwid2l0aF9wcm94eVwiOlwid2l0aCBwcm94eVwiLFwicmVjb21tZW5kZWRcIjpcIuWPl+WIsOaOqOW0h+eahFwiLFwic2V0X3VwXCI6XCLorr7nva5cIixcIm11bHRpcGxlX3dvcmtzcGFjZXNfaW50ZWdyYXRpb25cIjpcIumbhuaIkOWIsOWkmuS4quW3peS9nOWMulwiLFwic2VjdXJpdHlfY29udHJvbFwiOlwi5a6J5YWo5o6n5Yi2XCIsXCJlYXN5XCI6XCLnroDljZVcIixcIm5vcm1hbFwiOlwi6YCa5bi4XCIsXCJoYXJkXCI6XCLpmr7nmoRcIixcInBvc3NpYmxlXCI6XCLlj6/og73nmoRcIixcImltcG9zc2libGVcIjpcIuS4jeWPr+iDvVwifSxcImJvdF9yZXNldF9zdWNjZXNzZnVsXCI6XCLliKDpmaTkuoZCT1Torr7nva7jgIJcIixcImFkZGluZ19zbGFja193c19pbnRlZ3JhdGlvbl9zZXR0aW5nc19zdWNjZXNzZnVsXCI6XCLmt7vliqDkuobnlKjkuo7kuI4gU2xhY2sg5bel5L2c56m66Ze06ZO+5o6l55qE6K6+572u44CCXCIsXCJib3RfYWxsX3Jlc2V0X3N1Y2Nlc3NmdWxcIjpcIuaJgOacieeahCBCb3Qg6K6+572u6YO96KKr5riF6Zmk5LqG44CCXCIsXCJjb3BpZWRfdG9fY2xpcGJvYXJkXCI6XCLlroPlt7LlpI3liLbliLDliarotLTmnb/jgIJcIixcInNldF9zY29wZVwiOlwi5ZyoU2xhY2vorr7nva7pobXpnaLkuK3phY3nva5Cb3QgVG9rZW4gU2NvcGXjgIJcIixcIm1vZGFsXCI6e1wid2FybmluZ1wiOlwi6K2m5ZGKXCIsXCJzdXJlX2NoYW5nZV9ib3RfdHlwZVwiOlwi5oKo56Gu5a6a6KaB5pu05pS56K6+572u5ZCX77yfXCIsXCJjaGFuZ2VzX3dpbGxfYmVfZGVsZXRlZFwiOlwi5YW25LuWQm9057G75Z6L55qE6K6+572u5bCG6KKr5Yig6Zmk44CCXCIsXCJjYW5jZWxcIjpcIuWPlua2iFwiLFwiY2hhbmdlXCI6XCLmlLnlj5hcIn0sXCJ1c2VfZW52X3Zhcl9pZl9lbXB0eVwiOlwi5aaC5p6c5pWw5o2u5bqT5Lit55qE5YC85Li656m677yM5YiZ546v5aKD5Y+Y6YeP55qE5YC8IDxjb2RlPnt7dmFyaWFibGV9fTwvY29kZT4g5ZCv55So44CCXCIsXCJhY2Nlc3NfdG9rZW5fc2V0dGluZ3NcIjp7XCJyZWdlbmVyYXRlXCI6XCLlho3nlJ9cIn0sXCJkZWxldGVcIjpcIuWPlua2iFwiLFwiaW50ZWdyYXRpb25fcHJvY2VkdXJlXCI6XCLljY/kvZznqIvluo9cIixcImN1c3RvbV9ib3Rfd2l0aG91dF9wcm94eV9zZXR0aW5nc1wiOlwiQ3VzdG9tIEJvdCB3aXRob3V0IHByb3h5IOiuvue9rlwiLFwiaW50ZWdyYXRpb25fZmFpbGVkXCI6XCLogZTliqjlpLHotKVcIixcInJlc2V0XCI6XCLph43nva5cIixcInJlc2V0X2FsbF9zZXR0aW5nc1wiOlwi6YeN572u5omA5pyJ6K6+572uXCIsXCJkZWxldGVfc2xhY2tib3Rfc2V0dGluZ3NcIjpcIuWIoOmZpCBTbGFjayBCb3Qg6K6+572uXCIsXCJzbGFja2JvdF9zZXR0aW5nc19ub3RpY2VcIjpcIlNsYWsg5bel5L2c5Yy66ZuG5oiQ6L+H56iL5bey6KKr5Yig6Zmk44CCIDxicj4g5L2g56Gu5a6a5ZCX77yfXCIsXCJhbGxfc2V0dGluZ3Nfb2ZfdGhlX2JvdF93aWxsX2JlX3Jlc2V0XCI6XCJib3TnmoTmiYDmnInorr7nva7lsIbooqvph43nva7jgII8YnI+5L2g56Gu5a6a5ZCX77yfXCIsXCJhY2NvcmRpb25cIjp7XCJjcmVhdGVfYm90XCI6XCLliJvlu7ogQm90XCIsXCJob3dfdG9fY3JlYXRlX2FfYm90XCI6XCLlpoLkvZXliJvlu7rkuIDkuKogQm90XCIsXCJob3dfdG9faW5zdGFsbFwiOlwi54K55Ye76L+Z6YeM5p+l55yL5a6J6KOF6K+05piOXCIsXCJpbnN0YWxsX2JvdF90b19zbGFja1wiOlwi5bCGIEJvdCDlronoo4XliLAgU2xhY2tcIixcImluc3RhbGxfbm93XCI6XCLnjrDlnKjlronoo4VcIixcImdlbmVyYXRlX2FjY2Vzc190b2tlblwiOlwi55Sf5oiQQWNjZXNzIFRva2VuXCIsXCJyZWdpc3Rlcl9mb3JfZ3Jvd2lfb2ZmaWNpYWxfYm90X3Byb3h5X3NlcnZpY2VcIjpcIuazqOWGjCBHUk9XSSBPZmZpY2lhbCBCb3QgUHJveHkgU2VydmljZVwiLFwicmVnaXN0ZXJfZm9yX2dyb3dpX2N1c3RvbV9ib3RfcHJveHlcIjpcIuazqOWGjCBHUk9XSSBDdXN0b20gQm90IFByb3h5XCIsXCJlbnRlcl9ncm93aV9yZWdpc3Rlcl9vbl9zbGFja1wiOlwi5ZyoU2xhY2vkuK3vvIzovpPlhaUgPGI+L2dyb3dpIHJlZ2lzdGVyPC9iPlwiLFwicGFzdGVfZ3Jvd2lfdXJsXCI6XCLnlLHkuo7mmL7npLrkuobmqKHlvI/vvIzor7flnKggPGI+R1JPV0kgVVJMPC9iPiDkuK3ovpPlhaXku6XkuItVUkxcIixcImVudGVyX2FjY2Vzc190b2tlbl9mb3JfZ3Jvd2lfYW5kX3Byb3h5XCI6XCLmj5LlhaXkuIrpnaLlj5Hlh7rnmoQgPGI+QWNjZXNzIFRva2VuIFByb3h5IHRvIEdST1dJPC9iPiDlkowgPGI+QWNjZXNzIFRva2VuIEdST1dJIHRvIFByb3h5PC9iPuOAglwiLFwic2V0X3Byb3h5X3VybF9vbl9ncm93aVwiOlwi5ZCRR1JPV0nms6jlhoxQcm94eeeahFVSTFwiLFwiY29weV9wcm94eV91cmxcIjpcIjEuIOW9k+S4iui/sOatpemqpOKRoeaIkOWKn+WujOaIkOWQju+8jFByb3h5IFVSTOWwhuaYvuekuuWcqOS9oOWcqOaooeeJiOS4remAieaLqeeahFNsYWNr6aKR6YGT5Lit77yM5omA5Lul6K+35aSN5Yi25a6D44CCXCIsXCJlbnRlcl9wcm94eV91cmxfYW5kX3VwZGF0ZVwiOlwiMi4g6L6T5YWl5bm25pu05paw5L2g5Zyo5q2l6aqk4pGi5Lit5aSN5Yi255qEUHJveHlVUkzliLDmnKzpobXnmoQ8Yj5DdXN0b20gYm90IHdpdGggcHJveHkg5LiA5L2T5YyWPC9iPueahDxiPlByb3h5VVJMPC9iPuOAglwiLFwiZG9udF9uZWVkX3VwZGF0ZVwiOlwi4oC75aaC5p6c5YC85bey57uP5Zyo6YeM6Z2i5LqG77yM5bCx5LiN6ZyA6KaB5YaN5pu05paw44CCXCIsXCJzZWxlY3RfaW5zdGFsbF95b3VyX2FwcFwiOlwi6YCJ5oupIFxcXCJJbnN0YWxsIHlvdXIgYXBwXFxcIuOAglwiLFwic2VsZWN0X2luc3RhbGxfdG9fd29ya3NwYWNlXCI6XCLpgInmi6kgXFxcIkluc3RhbGwgdG8gV29ya3NwYWNlXFxcIuOAglwiLFwicmVnaXN0ZXJfcHJveHlfdXJsXCI6XCLlkJEgR1JPV0kg5rOo5YaM5Luj55CGIFVSTFwiLFwiY2xpY2tfYWxsb3dcIjpcIumAieaLqSBcXFwiQWxsb3dcXFwi44CCXCIsXCJpbnN0YWxsX2NvbXBsZXRlX2lmX2NoZWNrZWRcIjpcIuehruiupOW3sumAieS4rSBcXFwiSW5zdGFsbCB5b3VyIGFwcFxcXCLjgIJcIixcImludml0ZV9ib3RfdG9fY2hhbm5lbFwiOlwi6YCa6L+H6LCD55SoIEBleGFtcGxlIOmCgOivtyBHUk9XSSBCb3Qg6L+b6KGM6aKR6YGT44CCXCIsXCJyZWdpc3Rlcl9zZWNyZXRfYW5kX3Rva2VuXCI6XCLorr7nva7nrb7lkI3np5jlr4blkoxCT1Tku6TniYxcIixcInRlc3RfY29ubmVjdGlvblwiOlwi5rWL6K+V6L+e5o6lXCIsXCJ0ZXN0X2Nvbm5lY3Rpb25fYnlfcHJlc3NpbmdfYnV0dG9uXCI6XCLmjInkuIvmjInpkq7ku6XmtYvor5Xov57mjqVcIixcImVycm9yX2NoZWNrX2xvZ3NfYmVsb3dcIjpcIuWPkeeUn+S6humUmeivr+OAguivt+ajgOafpeS7peS4i+aXpeW/l+OAglwiLFwic2VuZF9tZXNzYWdlX3RvX3NsYWNrX3dvcmtfc3BhY2VcIjpcIuWPkemAgeWIsCBTbGFjayDlt6XkvZzljLrjgIJcIixcImFkZF9zbGFja193b3Jrc3BhY2VcIjpcIua3u+WKoFNsYWNrIFdvcmtzcGFjZVwifSxcImN1c3RvbV9ib3Rfd2l0aG91dF9wcm94eV9pbnRlZ3JhdGlvblwiOlwiQ3VzdG9tIGJvdCB3aXRob3V0IHByb3h5IOS4gOS9k+WMllwiLFwiaW50ZWdyYXRpb25fc2VudGVuY2VcIjp7XCJpbnRlZ3JhdGlvbl9pc19ub3RfY29tcGxldGVcIjpcIuS4gOS9k+WMluacquWujOaIkOOAgjxicj7ov5vooYzku6XkuIvkuIDkvZPljJbnqIvluo/jgIJcIixcImludGVncmF0aW9uX3N1Y2Nlc3NmdWxcIjpcIuS4gOS9k+WMluaIkOWKn1wiLFwiaW50ZWdyYXRpb25fc29tZV93c19pc19ub3RfY29tcGxldGVcIjpcIuacieeahOW3peS9nOepuumXtOacquiDvei/nuaOpVwifSxcImN1c3RvbV9ib3Rfd2l0aF9wcm94eV9pbnRlZ3JhdGlvblwiOlwiQ3VzdG9tIGJvdCB3aXRoIHByb3h5IOS4gOS9k+WMllwiLFwib2ZmaWNpYWxfYm90X2ludGVncmF0aW9uXCI6XCJPZmZpY2lhbCBib3Qg5LiA5L2T5YyWXCIsXCJkb2NzX3VybFwiOntcInNsYWNrX2ludGVncmF0aW9uXCI6XCJodHRwczovL2RvY3MuZ3Jvd2kub3JnL2VuL2FkbWluLWd1aWRlL21hbmFnZW1lbnQtY29va2Jvb2svc2xhY2staW50ZWdyYXRpb24vXCIsXCJvZmZpY2lhbF9ib3RcIjpcImh0dHBzOi8vZG9jcy5ncm93aS5vcmcvZW4vYWRtaW4tZ3VpZGUvbWFuYWdlbWVudC1jb29rYm9vay9zbGFjay1pbnRlZ3JhdGlvbi8jb2ZmaWNpYWwtYm90LSVFMyU4MCU5MHJlY29tbWVuZGVkJUUzJTgwJTkxXCIsXCJjdXN0b21fYm90X3dpdGhvdXRfcHJveHlcIjpcImh0dHBzOi8vZG9jcy5ncm93aS5vcmcvZW4vYWRtaW4tZ3VpZGUvbWFuYWdlbWVudC1jb29rYm9vay9zbGFjay1pbnRlZ3JhdGlvbi8jY3VzdG9tLWJvdC13aXRob3V0LXByb3h5XCIsXCJjdXN0b21fYm90X3dpdGhfcHJveHlcIjpcImh0dHBzOi8vZG9jcy5ncm93aS5vcmcvZW4vYWRtaW4tZ3VpZGUvbWFuYWdlbWVudC1jb29rYm9vay9zbGFjay1pbnRlZ3JhdGlvbi8jY3VzdG9tLWJvdC13aXRoLXByb3h5XCIsXCJvZmZpY2lhbF9ib3Rfc2V0dGluZ1wiOlwiaHR0cHM6Ly9kb2NzLmdyb3dpLm9yZy9lbi9hZG1pbi1ndWlkZS9tYW5hZ2VtZW50LWNvb2tib29rL3NsYWNrLWludGVncmF0aW9uL29mZmljaWFsLWJvdC1zZXR0aW5ncy5odG1sXCIsXCJjdXN0b21fYm90X3dpdGhvdXRfcHJveHlfc2V0dGluZ1wiOlwiaHR0cHM6Ly9kb2NzLmdyb3dpLm9yZy9lbi9hZG1pbi1ndWlkZS9tYW5hZ2VtZW50LWNvb2tib29rL3NsYWNrLWludGVncmF0aW9uL2N1c3RvbS1ib3Qtd2l0aG91dC1wcm94eS1zZXR0aW5ncy5odG1sXCIsXCJjdXN0b21fYm90X3dpdGhfcHJveHlfc2V0dGluZ1wiOlwiaHR0cHM6Ly9kb2NzLmdyb3dpLm9yZy9lbi9hZG1pbi1ndWlkZS9tYW5hZ2VtZW50LWNvb2tib29rL3NsYWNrLWludGVncmF0aW9uL2N1c3RvbS1ib3Qtd2l0aC1wcm94eS1zZXR0aW5ncy5odG1sXCJ9fSxcInVzZXJfbWFuYWdlbWVudFwiOntcImludml0ZV91c2Vyc1wiOlwi5Li05pe25Y+R5biD5paw55So5oi3XCIsXCJjbGlja190d2ljZV9zYW1lX2NoZWNrYm94XCI6XCLmgqjlupTor6Xoh7PlsJHpgInkuK3kuIDkuKrlpI3pgInmoYbjgIJcIixcImludml0ZV9tb2RhbFwiOntcImVtYWlsc1wiOlwi55S15a2Q6YKu5Lu2XCIsXCJkZXNjcmlwdGlvbjFcIjpcIumAmui/h+eUteWtkOmCruS7tuWcsOWdgOS4tOaXtuWPkeW4g+aWsOeUqOaIt+OAglwiLFwiZGVzY3JpcHRpb24yXCI6XCLlsIbkuLrpppbmrKHnmbvlvZXnlJ/miJDkuIDkuKrkuLTml7blr4bnoIHjgIJcIixcIm1haWxfc2V0dGluZ19saW5rXCI6XCI8aSBjbGFzcz0naWNvbi1zZXR0aW5ncyBtci0yJz48L2k+PGEgaHJlZj0nL2FkbWluL2FwcCc+RW1haWwgc2V0dGluZ3M8L2E+XCIsXCJ2YWxpZF9lbWFpbFwiOlwi6ZyA6KaB5pyJ5pWI55qE55S15a2Q6YKu5Lu25Zyw5Z2AXCIsXCJpbnZpdGVfdGhydV9lbWFpbFwiOlwi5Y+R6YCB6YKA6K+355S15a2Q6YKu5Lu2XCIsXCJ0ZW1wb3JhcnlfcGFzc3dvcmRcIjpcIuWIm+W7uueahOeUqOaIt+WFt+acieS4tOaXtuWvhueggVwiLFwic2VuZF9uZXdfcGFzc3dvcmRcIjpcIuivt+WwhuaWsOWvhueggeWPkemAgee7meeUqOaIt+OAglwiLFwic2VuZF90ZW1wb3JhcnlfcGFzc3dvcmRcIjpcIuWmguaenOS9oOayoeacieWPkemAgeeUteWtkOmCruS7tumCgOivt++8jOivt+WkjeWItuatpOWxj+W5leS4iueahOS4tOaXtuWvhueggeW5tuiBlOezu+mCgOivt+S6uuOAglwiLFwic2VuZF9lbWFpbFwiOlwi5L2g5Lmf5Y+v5Lul5LuO55So5oi36KGo5Lit55qE5LiL5ouJ6I+c5Y2V5Lit5Y+R6YCB5oiW6YeN5paw5Y+R6YCB6YKA6K+36YKu5Lu244CCXCIsXCJleGlzdGluZ19lbWFpbFwiOlwi5Lul5LiL55S15a2Q6YKu5Lu25bey5a2Y5ZyoXCIsXCJpc3N1ZVwiOlwiSXNzdWVcIn0sXCJ1c2VyX3RhYmxlXCI6e1wiYWRtaW5pc3RyYXRvclwiOlwi566h55CG5ZGYXCIsXCJlZGl0X21lbnVcIjpcIue8lui+keiPnOWNlVwiLFwicmVzZXRfcGFzc3dvcmRcIjpcIumHjee9ruWvhueggVwiLFwiYWRtaW5pc3RyYXRvcl9tZW51XCI6XCLnrqHnkIblkZjoj5zljZVcIixcImFjY2VwdFwiOlwi5o6l5Y+XXCIsXCJkZWFjdGl2YXRlX2FjY291bnRcIjpcIuWBnOeUqOW4kOaIt1wiLFwieW91cl9vd25cIjpcIuaCqOS4jeiDveWBnOeUqOiHquW3seeahOW4kOaIt1wiLFwicmVtb3ZlX2FkbWluX2FjY2Vzc1wiOlwi5Yig6Zmk566h55CG5ZGY6K6/6Zeu5p2D6ZmQXCIsXCJjYW5ub3RfcmVtb3ZlXCI6XCLmgqjkuI3og73ku47nrqHnkIblkZjkuK3liKDpmaToh6rlt7FcIixcImdpdmVfYWRtaW5fYWNjZXNzXCI6XCLmjojkuojnrqHnkIblkZjorr/pl67mnYPpmZBcIixcInNlbmRfaW52aXRhdGlvbl9lbWFpbFwiOlwi5Y+R6YCB6YKA6K+36YKu5Lu2XCIsXCJyZXNlbmRfaW52aXRhdGlvbl9lbWFpbFwiOlwi6YeN5Y+R6YKA6K+35Ye9XCJ9LFwicmVzZXRfcGFzc3dvcmRcIjpcIumHjee9ruWvhueggVwiLFwicmVzZXRfcGFzc3dvcmRfbW9kYWxcIjp7XCJwYXNzd29yZF9uZXZlcl9zZWVuXCI6XCJUaGUgdGVtcG9yYXJ5IHBhc3N3b3JkIGNhbiBuZXZlciBiZSByZXRyaWV2ZWQgYWZ0ZXIgdGhpcyBzY3JlZW4gaXMgY2xvc2VkLlwiLFwicGFzc3dvcmRfcmVzZXRfbWVzc2FnZVwiOlwiTGV0IHRoZSB1c2VyIGtub3cgdGhlIG5ldyBwYXNzd29yZCBiZWxvdyBhbmQgc3Ryb25nbHkgcmVjb21tZW5kIHRvIGNoYW5nZSBhbm90aGVyIG9uZSBpbW1lZGlhdGVseS5cIixcInNlbmRfbmV3X3Bhc3N3b3JkXCI6XCJQbGVhc2Ugc2VuZCB0aGUgbmV3IHBhc3N3b3JkIHRvIHRoZSB1c2VyLlwiLFwidGFyZ2V0X3VzZXJcIjpcIlRhcmdldCBVc2VyXCIsXCJuZXdfcGFzc3dvcmRcIjpcIk5ldyBQYXNzd29yZFwifSxcImV4dGVybmFsX2FjY291bnRcIjpcIuWklumDqOi0puaIt+euoeeQhlwiLFwiZXh0ZXJuYWxfYWNjb3VudHNcIjpcIuWklumDqOi0puaIt1wiLFwiY3JlYXRlX2V4dGVybmFsX2FjY291bnRcIjpcIuWIm+W7uuWklumDqOi0puaIt1wiLFwiZXh0ZXJuYWxfYWNjb3VudF9saXN0XCI6XCLlpJbpg6jotKbmiLfliJfooahcIixcImV4dGVybmFsX2FjY291bnRfbm9uZVwiOlwiTm8gRXh0ZXJuYWwgQWNjb3VudFwiLFwiaW52aXRlXCI6XCLpgoDor7dcIixcImludml0ZWRcIjpcIuW3sumCgOivt+eUqOaIt1wiLFwiYmFja190b191c2VyX21hbmFnZW1lbnRcIjpcIui/lOWbnueUqOaIt+euoeeQhlwiLFwiYXV0aGVudGljYXRpb25fcHJvdmlkZXJcIjpcIui6q+S7veiupOivgVwiLFwibWFuYWdlXCI6XCLnrqHnkIZcIixcInBhc3N3b3JkX3NldHRpbmdcIjpcIuWvhueggeiuvue9rlwiLFwicGFzc3dvcmRfc2V0dGluZ19oZWxwXCI6XCLmmK/lkKborr7nva7kuoblr4bnoIHvvJ9cIixcInNldFwiOlwi5pivXCIsXCJ1bnNldFwiOlwi5ZCmXCIsXCJyZWxhdGVkX3VzZXJuYW1lXCI6XCLnm7jlhbPnlKjmiLfnmoRcIixcImNhbm5vdF9pbnZpdGVfbWF4aW11bV91c2Vyc1wiOlwi6YKA6K+355qE55So5oi35pWw5LiN6IO96LaF6L+H5pyA5aSn5YC844CCXCIsXCJjdXJyZW50X3VzZXJzXCI6XCLlvZPliY3nlKjmiLc6XCJ9LFwidXNlcl9ncm91cF9tYW5hZ2VtZW50XCI6e1wiY3JlYXRlX2dyb3VwXCI6XCLliJvlu7rmlrDnu4RcIixcImRlbnlfY3JlYXRlX2dyb3VwXCI6XCLkuI3og73nlKjlvZPliY3orr7nva7liJvlu7rmlrDnu4TjgIJcIixcImdyb3VwX25hbWVcIjpcIue7hOWQjVwiLFwiZ3JvdXBfZXhhbXBsZVwiOlwiZS5nLu+8muesrDHnu4RcIixcImFkZF9tb2RhbFwiOntcImFkZF91c2VyXCI6XCLlsIbnlKjmiLfmt7vliqDliLDliJvlu7rnmoTnu4RcIixcInNlYXJjaF9vcHRpb25cIjpcIuaQnOe0oumAiemhuVwiLFwiZW5hYmxlX29wdGlvblwiOlwi5ZCv55Soe3tvcHRpb259XCIsXCJmb3J3YXJkX21hdGNoXCI6XCJGb3J3b3Jk5Yy56YWNXCIsXCJwYXJ0aWFsX21hdGNoXCI6XCLpg6jliIbljLnphY1cIixcImJhY2t3YXJkX21hdGNoXCI6XCLlkJHlkI7ljLnphY1cIn0sXCJncm91cF9saXN0XCI6XCLnu4TliJfooahcIixcImJhY2tfdG9fbGlzdFwiOlwi6L+U5Zue57uE5YiX6KGoXCIsXCJiYXNpY19pbmZvXCI6XCLln7rmnKzkv6Hmga9cIixcInVzZXJfbGlzdFwiOlwi55So5oi35YiX6KGoXCIsXCJjcmVhdGVkX2dyb3VwXCI6XCLlt7LliJvlu7rnu4RcIixcImlzX2xvYWRpbmdfZGF0YVwiOlwi6I635Y+W5pWw5o2u44CC44CC44CCXCIsXCJub19wYWdlc1wiOlwi57uE5rKh5pyJ5p+l55yL5p2D6ZmQ55qE6aG16Z2i44CCXCIsXCJyZW1vdmVfZnJvbV9ncm91cFwiOlwi5Yig6Zmk5q2k55So5oi3XCIsXCJkZWxldGVfbW9kYWxcIjp7XCJoZWFkZXJcIjpcIuWIoOmZpOe7hFwiLFwiZGVzY1wiOlwi5Yig6Zmk5ZCO77yM5bCG5peg5rOV5qOA57Si5bey5Yig6Zmk55qE57uE5Y+K5YW256eB5Lq66aG144CCXCIsXCJkcm9wZG93bl9kZXNjXCI6XCLkuLrnp4HkurrpobXpgInmi6nmk43kvZxcIixcInNlbGVjdF9ncm91cFwiOlwi6YCJ5oup57uEXCIsXCJub19ncm91cHNcIjpcIuayoeacieWPr+mAieaLqeeahOe7hFwiLFwicHVibGlzaF9wYWdlc1wiOlwi5YWo6YOo5Y+R5biDXCIsXCJkZWxldGVfcGFnZXNcIjpcIuWFqOmDqOWIoOmZpFwiLFwidHJhbnNmZXJfcGFnZXNcIjpcIui9rOenu+WIsOWPpuS4gOe7hFwifX19LFwibWV0YVwiOntcImlkXCI6XCJ6aF9DTlwiLFwiZGlzcGxheU5hbWVcIjpcIueugOS9k+S4reaWh1wiLFwiYWxpYXNlc1wiOltcInpoXCIsXCJ6aC1IS1wiLFwiemgtQ05cIixcInpoLVRXXCIsXCJ6aC1oa1wiLFwiemgtY25cIixcInpoLXR3XCJdfSxcInRyYW5zbGF0aW9uXCI6e1wiSGVscFwiOlwi5biu5YqpXCIsXCJ2aWV3XCI6XCJWaWV3XCIsXCJFZGl0XCI6XCLnvJbovpFcIixcIkRlbGV0ZVwiOlwi5Yig6ZmkXCIsXCJkZWxldGVfYWxsXCI6XCLliKDpmaTmiYDmnIlcIixcIkR1cGxpY2F0ZVwiOlwi5aSN5Yi2XCIsXCJDb3B5XCI6XCLlpI3liLZcIixcInByZXZpZXdcIjpcIumihOiniFwiLFwiZGVza3RvcFwiOlwi55S16ISRXCIsXCJwaG9uZVwiOlwi5omL5py6XCIsXCJ0YWJsZXRcIjpcIuW5s+adv1wiLFwiTG9naW5cIjpcIueZu+W9lVwiLFwiQ2xpY2sgdG8gY29weVwiOlwi54K55Ye75aSN5Yi2XCIsXCJNb3ZlL1JlbmFtZVwiOlwi56e75YqoL+mHjeWRveWQjVwiLFwiTW92ZWRcIjpcIuenu+WKqFwiLFwiUmVkaXJlY3RlZFwiOlwi6YeN5a6a5ZCRXCIsXCJVbmxpbmtlZFwiOlwiVW5saW5rZWRcIixcIkxpa2UhXCI6XCJMaWtlIVwiLFwiU2VlbiBieVwiOlwiU2VlbiBieVwiLFwiRG9uZVwiOlwiRG9uZVwiLFwiQ2FuY2VsXCI6XCLlj5bmtohcIixcIkNyZWF0ZVwiOlwi5Yib5bu6XCIsXCJBZG1pblwiOlwi566h55CGXCIsXCJhZG1pbmlzdHJhdG9yXCI6XCLnrqHnkIblkZhcIixcIlRhZ1wiOlwi5qCH562+XCIsXCJUYWdzXCI6XCJUYWdzXCIsXCJOZXdcIjpcIuaWsOW7ulwiLFwiQ2xvc2VcIjpcIkNsb3NlXCIsXCJTaG9ydGN1dHNcIjpcIuW/q+aNt+aWueW8j1wiLFwiZWdcIjpcImUuZy5cIixcImFkZFwiOlwi5re75YqgXCIsXCJVbmRvXCI6XCLmkqTplIBcIixcIkFydGljbGVcIjpcIuS4u+mimFwiLFwiUGFnZVwiOlwi6aG16Z2iXCIsXCJQYWdlIFBhdGhcIjpcIuebuOWvuei3r+W+hFwiLFwiQ2F0ZWdvcnlcIjpcIuWIhuexu1wiLFwiVXNlclwiOlwi55So5oi3XCIsXCJzdGF0dXNcIjpcIueKtuaAgVwiLFwiYWNjb3VudF9pZFwiOlwi55So5oi3SWRcIixcIkluaXRpYWxpemVcIjpcIuWIneWni+WMllwiLFwiVXBkYXRlXCI6XCLmm7TmlrBcIixcIlVwZGF0ZSBQYWdlXCI6XCLmm7TmlrDmnKzpobVcIixcIldhcm5pbmdcIjpcIuitpuWRilwiLFwiU2lnbiBpblwiOlwi55m75b2VXCIsXCJTaWduIHVwIGlzIGhlcmVcIjpcIuazqOWGjFwiLFwiU2lnbiBpbiBpcyBoZXJlXCI6XCLnmbvlvZVcIixcIlNpZ24gdXBcIjpcIuazqOWGjFwiLFwiU2lnbiB1cCB3aXRoIEdvb2dsZSBBY2NvdW50XCI6XCJTaWduIHVwIHdpdGggR29vZ2xlIEFjY291bnRcIixcIlNpZ24gaW4gd2l0aCBHb29nbGUgQWNjb3VudFwiOlwiU2lnbiBpbiB3aXRoIEdvb2dsZSBBY2NvdW50XCIsXCJTaWduIHVwIHdpdGggdGhpcyBHb29nbGUgQWNjb3VudFwiOlwiU2lnbiB1cCB3aXRoIHRoaXMgR29vZ2xlIEFjY291bnRcIixcIkV4YW1wbGVcIjpcIuS+i+WmglwiLFwiVGFybyBZYW1hZGFcIjpcIkpvaG4gRG9lXCIsXCJMaXN0IFZpZXdcIjpcIuWIl+ihqFwiLFwiVGltZWxpbmUgVmlld1wiOlwi5pe26Ze057q/XCIsXCJIaXN0b3J5XCI6XCLljoblj7JcIixcImF0dGFjaG1lbnRfZGF0YVwiOlwiQXR0YWNobWVudCBEYXRhXCIsXCJOb19hdHRhY2htZW50c195ZXRcIjpcIuaaguaXoOmZhOS7tlwiLFwiUHJlc2VudGF0aW9uIE1vZGVcIjpcIua8lOekuuaWh+eov1wiLFwiVGhlIGVuZFwiOlwi57uT5p2fXCIsXCJOb3QgYXZhaWxhYmxlIGZvciBndWVzdFwiOlwiTm90IGF2YWlsYWJsZSBmb3IgZ3Vlc3RcIixcIkNyZWF0ZSBBcmNoaXZlIFBhZ2VcIjpcIuWIm+W7uuW9kuaho+mhtVwiLFwiRmlsZSB0eXBlXCI6XCLmlofku7bnsbvlnotcIixcIlRhcmdldCBwYWdlXCI6XCLnm67moIfpobXpnaJcIixcIkluY2x1ZGUgQXR0YWNobWVudCBGaWxlXCI6XCLljIXlkKvpmYTku7ZcIixcIkluY2x1ZGUgQ29tbWVudFwiOlwi5YyF5ZCr6K+E6K66XCIsXCJJbmNsdWRlIFN1Ym9yZGluYXRlZCBQYWdlXCI6XCLljIXmi6zlrZDpobXpnaJcIixcIkFsbCBTdWJvcmRpbmF0ZWQgUGFnZVwiOlwi5omA5pyJ5a2Q6aG16Z2iXCIsXCJTcGVjaWZ5IEhpZXJhcmNoeVwiOlwi5oyH5a6a5bGC57qnXCIsXCJTdWJtaXR0ZWQgdGhlIHJlcXVlc3QgdG8gY3JlYXRlIHRoZSBhcmNoaXZlXCI6XCLmj5DkuqTliJvlu7rlvZLmoaPor7fmsYJcIixcInVzZXJuYW1lXCI6XCLnlKjmiLflkI1cIixcIkNyZWF0ZWRcIjpcIuWIm+W7ulwiLFwiTGFzdCB1cGRhdGVkXCI6XCLkuIrmrKHmm7TmlrBcIixcIkxhc3RfTG9naW5cIjpcIuS4iuasoeeZu+W9lVwiLFwiU2hhcmVcIjpcIuWIhuS6q1wiLFwiU2hhcmUgTGlua1wiOlwi5YiG5Lqr6ZO+5o6lXCIsXCJNYXJrZG93biBMaW5rXCI6XCJNYXJrZG93bumTvuaOpVwiLFwiQ3JlYXRlL0VkaXQgVGVtcGxhdGVcIjpcIuWIm+W7ui/nvJbovpEg5qih5p2/6aG16Z2iXCIsXCJVbnBvcnRhbGl6ZVwiOlwi5pyq5ZCv5YqoXCIsXCJHbyB0byB0aGlzIHZlcnNpb25cIjpcIuafpeeci+atpOeJiOacrFwiLFwiVmlldyBkaWZmXCI6XCLmn6XnnIvlt67lvIJcIixcIk5vIGRpZmZcIjpcIuaXoOW3ruW8glwiLFwiVXNlciBJRFwiOlwi55So5oi3SURcIixcIkhvbWVcIjpcIummlumhtVwiLFwiTXkgRHJhZnRzXCI6XCJNeSBEcmFmdHNcIixcIlVzZXIgU2V0dGluZ3NcIjpcIueUqOaIt+iuvue9rlwiLFwiVXNlciBJbmZvcm1hdGlvblwiOlwi55So5oi35L+h5oGvXCIsXCJCYXNpYyBJbmZvXCI6XCLln7rnoYDkv6Hmga9cIixcIk5hbWVcIjpcIuWnk+WQjVwiLFwiRW1haWxcIjpcIumCrueusVwiLFwiTGFuZ3VhZ2VcIjpcIuivreiogFwiLFwiRW5nbGlzaFwiOlwi6Iux6K+tXCIsXCJKYXBhbmVzZVwiOlwi5pel6K+tXCIsXCJDaGluZXNlXCI6XCLnroDkvZPkuK3mlodcIixcIlNldCBQcm9maWxlIEltYWdlXCI6XCLlpLTlg49cIixcIlVwbG9hZCBJbWFnZVwiOlwi5LiK5Lyg5Zu+54mHXCIsXCJDdXJyZW50IEltYWdlXCI6XCLlvZPliY3lm77niYdcIixcIkRlbGV0ZSBJbWFnZVwiOlwi5Yig6Zmk5Zu+54mHXCIsXCJEZWxldGUgdGhpcyBpbWFnZT9cIjpcIuWIoOmZpOWbvueJhz9cIixcIlVwZGF0ZWRcIjpcIuabtOaWsFwiLFwiVXBsb2FkIG5ldyBpbWFnZVwiOlwi5LiK5Lyg5paw5Zu+5YOPXCIsXCJDb25uZWN0ZWRcIjpcIkNvbm5lY3RlZFwiLFwiU2hvd1wiOlwi5pi+56S6XCIsXCJIaWRlXCI6XCLpmpDol49cIixcIlJlc2V0XCI6XCLph43nva5cIixcIkRpc2Nsb3NlIEUtbWFpbFwiOlwi5pi+56S66YKu566xXCIsXCJwYWdlIGV4aXN0c1wiOlwi6aG16Z2i5bey5a2Y5ZyoXCIsXCJFcnJvciBvY2N1cnJlZFwiOlwiRXJyb3Igb2NjdXJyZWRcIixcIkNyZWF0ZSB0b2RheSdzXCI6XCJDcmVhdGUgdG9kYXkncyAuLi5cIixcIk1lbW9cIjpcIm1lbW9cIixcIklucHV0IHBhZ2UgbmFtZVwiOlwiSW5wdXQgcGFnZSBuYW1lXCIsXCJJbnB1dCBwYWdlIG5hbWUgKG9wdGlvbmFsKVwiOlwiSW5wdXQgcGFnZSBuYW1lIChvcHRpb25hbClcIixcIk5ldyBQYWdlXCI6XCLmlrDpobXpnaJcIixcIkNyZWF0ZSB1bmRlclwiOlwiQ3JlYXRlIHBhZ2UgdW5kZXIgYmVsb3c6XCIsXCJXaWtpIE1hbmFnZW1lbnQgSG9tZSBQYWdlXCI6XCJXaWtp566h55CG6aaW6aG1XCIsXCJBcHAgU2V0dGluZ3NcIjpcIuezu+e7n+iuvue9rlwiLFwiU2l0ZSBVUkwgc2V0dGluZ3NcIjpcIuS4u+mhtVVSTOiuvue9rlwiLFwiTWFya2Rvd24gU2V0dGluZ3NcIjpcIk1hcmtkb3du6K6+572uXCIsXCJDdXN0b21pemVcIjpcIumhtemdouWumuWItlwiLFwiTm90aWZpY2F0aW9uIFNldHRpbmdzXCI6XCLpgJrnn6Xorr7nva5cIixcInNsYWNrX2ludGVncmF0aW9uXCI6XCJTbGFja+S4gOS9k+WMllwiLFwiRXh0ZXJuYWxfTm90aWZpY2F0aW9uXCI6XCLlpJbpg6jpgJrnn6VcIixcIkxlZ2FjeV9TbGFja19JbnRlZ3JhdGlvblwiOlwi5pen54mIU2xhY2vkuIDkvZPljJZcIixcIlVzZXJfTWFuYWdlbWVudFwiOlwi55So5oi3566h55CGXCIsXCJleHRlcm5hbF9hY2NvdW50X21hbmFnZW1lbnRcIjpcIuWklumDqOi0puaIt+euoeeQhlwiLFwiVXNlckdyb3VwIE1hbmFnZW1lbnRcIjpcIueUqOaIt+e7hOeuoeeQhlwiLFwiRnVsbCBUZXh0IFNlYXJjaCBNYW5hZ2VtZW50XCI6XCLlhajmlofmkJzntKLnrqHnkIZcIixcIkltcG9ydCBEYXRhXCI6XCLlr7zlhaXmlbDmja5cIixcIkV4cG9ydCBBcmNoaXZlIERhdGFcIjpcIuWvvOWHuuS4u+mimOaVsOaNrlwiLFwiQmFzaWMgU2V0dGluZ3NcIjpcIuWfuuehgOiuvue9rlwiLFwiQmFzaWMgYXV0aGVudGljYXRpb25cIjpcIuWfuuacrOi6q+S7vemqjOivgVwiLFwiUmVnaXN0ZXIgbGltaXRhdGlvblwiOlwi5rOo5YaM6ZmQ5Yi2XCIsXCJUaGUgY29udGVudHMgZW50ZXJlZCBoZXJlIHdpbGwgYmUgc2hvd24gaW4gdGhlIGhlYWRlciBldGNcIjpcIuatpOWkhOi+k+WFpeeahOWGheWuueWwhuaYvuekuuWcqOagh+mimOetieS4rVwiLFwiUHVibGljXCI6XCLlhazlhbFcIixcIkFueW9uZSB3aXRoIHRoZSBsaW5rXCI6XCLku7vkvZXkurpcIixcIlNwZWNpZmllZCB1c2VycyBvbmx5XCI6XCLku4XmjIflrprnlKjmiLdcIixcIk9ubHkgbWVcIjpcIuWPquacieaIkVwiLFwiT25seSBpbnNpZGUgdGhlIGdyb3VwXCI6XCLku4Xnu4TlhoVcIixcInBhZ2VfbGlzdFwiOlwiUGFnZSBMaXN0XCIsXCJzY29wZV9vZl9wYWdlX2Rpc2Nsb3N1cmVcIjpcIumhtemdouWFrOW8gOiMg+WbtFwiLFwic2V0X3BvaW50XCI6XCLorr7lrprlgLxcIixcImFsd2F5c19kaXNwbGF5ZWRcIjpcIuWni+e7iOaYvuekulwiLFwiYWx3YXlzX2hpZGRlblwiOlwi5oC75piv6ZqQ6JePXCIsXCJkaXNwbGF5ZWRfb3JfaGlkZGVuXCI6XCLmmL7npLov6ZqQ6JePXCIsXCJSZXNlbGVjdCB0aGUgZ3JvdXBcIjpcIumHjeaWsOmAieaLqee7hFwiLFwiU2hhcmVhYmxlIGxpbmtcIjpcIuWPr+WIhuS6q+mTvuaOpVwiLFwiVGhlIHdoaXRlbGlzdCBvZiByZWdpc3RyYXRpb24gcGVybWlzc2lvbiBFLW1haWwgYWRkcmVzc1wiOlwi5rOo5YaM6K645Y+v55S15a2Q6YKu5Lu25Zyw5Z2A55qE55m95ZCN5Y2VXCIsXCJBZGQgdGFncyBmb3IgdGhpcyBwYWdlXCI6XCLmt7vliqDmoIfnrb5cIixcIllvdSBoYXZlIG5vIHRhZywgWW91IGNhbiBzZXQgdGFncyBvbiBwYWdlc1wiOlwi5L2g5rKh5pyJ5qCH562+77yM5Y+v5Lul5Zyo6aG16Z2i5LiK6K6+572u5qCH562+XCIsXCJTaG93IGxhdGVzdFwiOlwi5pi+56S65pyA5pawXCIsXCJMb2FkIGxhdGVzdFwiOlwi5a625Zyo5pyA5pawXCIsXCJlZGl0ZWQgdGhpcyBwYWdlXCI6XCJlZGl0ZWQgdGhpcyBwYWdlLlwiLFwiTGlzdCBEcmFmdHNcIjpcIuiNieeov1wiLFwiRGVsZXRlZCBQYWdlc1wiOlwi5bey5Yig6Zmk6aG1XCIsXCJTaWduIG91dFwiOlwi6YCA5Ye6XCIsXCJEaXNhc3NvY2lhdGVcIjpcIuino+mZpOWFs+iBlFwiLFwiTm8gYm9va21hcmtzIHlldFwiOlwi5pqC5peg5Lmm562+XCIsXCJSZWNlbnQgQ3JlYXRlZFwiOlwi5pyA5paw5Yib5bu6XCIsXCJSZWNlbnQgQ2hhbmdlc1wiOlwi5pyA5paw5L+u5pS5XCIsXCJvcmlnaW5hbF9wYXRoXCI6XCJPcmlnaW5hbCBwYXRoXCIsXCJuZXdfcGF0aFwiOlwiTmV3IHBhdGhcIixcImR1cGxpY2F0ZWRfcGF0aFwiOlwiZHVwbGljYXRlZF9wYXRoXCIsXCJMaW5rIHNoYXJpbmcgaXMgZGlzYWJsZWRcIjpcIuS9oOS4jeWFgeiuuOWIhuS6q+ivpemTvuaOpVwiLFwiZm9ybV92YWxpZGF0aW9uXCI6e1wiZXJyb3JfbWVzc2FnZVwiOlwi5pyJ5Lqb5YC85LiN5q2j56GuXCIsXCJyZXF1aXJlZFwiOlwiJXMg5piv5b+F6ZyA55qEXCIsXCJpbnZhbGlkX3N5bnRheFwiOlwiJXPnmoTor63ms5Xml6DmlYjjgIJcIn0sXCJub3RfZm91bmRfcGFnZVwiOntcIkNyZWF0ZSBQYWdlXCI6XCLliJvlu7rpobXpnaJcIixcInBhZ2Vfbm90X2V4aXN0XCI6XCLor6XpobXpnaLkuI3lrZjlnKhcIixcInBhZ2Vfbm90X2V4aXN0X2FsZXJ0XCI6XCLor6XpobXpnaLkuI3lrZjlnKjvvIzor7fliJvlu7rkuIDkuKrmlrDpobXpnaJcIn0sXCJjdXN0b21fbmF2aWdhdGlvblwiOntcIm5vX3BhZ2VfbGlzdFwiOlwiVGhlcmUgYXJlIG5vIHBhZ2VzIHVuZGVyIHRoaXMgcGFnZS5cIixcImxpbmtfc2hhcmluZ19pc19kaXNhYmxlZFwiOlwi6ZO+5o6l5YWx5Lqr5bey6KKr56aB55SoXCJ9LFwiaW5zdGFsbGVyXCI6e1wic2V0dXBcIjpcIuWuieijhVwiLFwiY3JlYXRlX2luaXRpYWxfYWNjb3VudFwiOlwi5Yib5bu65Yid5aeL55So5oi3XCIsXCJpbml0aWFsX2FjY291bnRfd2lsbF9iZV9hZG1pbmlzdHJhdG9yX2F1dG9tYXRpY2FsbHlcIjpcIuWIneWni+W4kOaIt+WwhuiHquWKqOaIkOS4uueuoeeQhuWRmOOAglwiLFwidW5hdmFsaWFibGVfdXNlcl9pZFwiOlwi55So5oi3SUTkuI3lj6/nlKhcIn0sXCJicmVha2luZ19jaGFuZ2VzXCI6e1widjM0Nl91c2luZ19iYXNpY19hdXRoXCI6XCLlvZPliY3kvb/nlKjnmoTln7rmnKzouqvku73pqozor4HlnKjkuI3kuYXnmoTlsIbmnaXlsIbkuI3lho3lj6/nlKjjgILku44lc+S4reWIoOmZpOiuvue9rlwifSxcInBhZ2VfcmVnaXN0ZXJcIjp7XCJub3RpY2VcIjp7XCJyZXN0cmljdGVkXCI6XCLpnIDopoHnrqHnkIblkZjmibnlh4bjgIJcIixcInJlc3RyaWN0ZWRfZGVmYWlsXCI6XCLkuIDml6bnrqHnkIblkZjmibnlh4bmgqjnmoTms6jlhozvvIzmgqjlsLHlj6/ku6Xorr/pl67mraR3aWtp44CCXCJ9LFwiZm9ybV9oZWxwXCI6e1wiZW1haWxcIjpcIuaCqOW/hemhu+acieS4i+mdouWIl+WHuueahOeUteWtkOmCruS7tuWcsOWdgOaJjeiDveazqOWGjOatpHdpa2njgIJcIixcInBhc3N3b3JkXCI6XCLlr4bnoIHplb/luqblv4Xpobvoh7PlsJHkuLo25Liq5a2X56ym44CCXCIsXCJ1c2VyX2lkXCI6XCLmgqjliJvlu7rnmoTnvZHpobXnmoRVUkzlsIbljIXlkKvmgqjnmoTnlKjmiLdJROOAguaCqOeahOeUqOaIt0lE5Y+v5Lul55Sx5a2X5q+N44CB5pWw5a2X5ZKM5LiA5Lqb56ym5Y+357uE5oiQ44CCXCJ9fSxcIlNldHRpbmdzXCI6XCLorr7nva5cIixcInBhZ2VfbWVcIjp7XCJmb3JtX2hlbHBcIjp7XCJwcm9maWxlX2ltYWdlMVwiOlwi5Zu+5YOP5LiK5Lyg6K6+572u5pyq5a6M5oiQ44CCXCIsXCJwcm9maWxlX2ltYWdlMlwiOlwi6K6+572uQVdT5oiW5ZCv55So5pys5Zyw5LiK5Lyg44CCXCJ9fSxcInBhZ2VfbWVfYXBpdG9rZW5cIjp7XCJhcGlfdG9rZW5cIjpcIkFQSSBUb2tlblwiLFwibm90aWNlXCI6e1wiYXBpdG9rZW5faXNzdWVkXCI6XCJBUEkgdG9rZW4g5pyq5Y+R5biD44CCXCIsXCJ1cGRhdGVfdG9rZW4xXCI6XCLmgqjlj6/ku6Xmm7TmlrDku6XnlJ/miJDmlrDnmoRBUEnku6TniYzjgIJcIixcInVwZGF0ZV90b2tlbjJcIjpcIuaCqOmcgOimgeabtOaWsOS7u+S9leeOsOaciei/m+eoi+S4reeahEFQSeS7pOeJjOOAglwifX0sXCJQYXNzd29yZFwiOlwi5a+G56CBXCIsXCJQYXNzd29yZCBTZXR0aW5nc1wiOlwi5a+G56CB6K6+572uXCIsXCJwZXJzb25hbF9zZXR0aW5nc1wiOntcImRpc2Fzc29jaWF0ZV9leHRlcm5hbF9hY2NvdW50XCI6XCLop6PpmaTkuI7lpJbpg6jluJDmiLfnmoTlhbPogZRcIixcImRpc2Fzc29jaWF0ZV9leHRlcm5hbF9hY2NvdW50X2Rlc2NcIjpcIuaYr+WQpuehruWunuimgeino+mZpOS4jjxzdHJvbmc+e3twcm92aWRlclR5cGV9fTwvc3Ryb25nPuW4kOaItzxzdHJvbmc+e3twcm92aWRlclR5cGV9fTwvc3Ryb25nPiDnmoTlhbPogZTvvJ9cIixcInNldF9uZXdfcGFzc3dvcmRcIjpcIuiuvue9ruaWsOWvhueggVwiLFwidXBkYXRlX3Bhc3N3b3JkXCI6XCLmm7TmlrDlr4bnoIFcIixcImN1cnJlbnRfcGFzc3dvcmRcIjpcIuW9k+WJjeWvhueggVwiLFwibmV3X3Bhc3N3b3JkXCI6XCLmlrDlr4bnoIFcIixcIm5ld19wYXNzd29yZF9jb25maXJtXCI6XCLph43lpI3mlrDlr4bnoIFcIixcInBhc3N3b3JkX2lzX25vdF9zZXRcIjpcIuWvhueggeacquiuvue9rlwifSxcIlNlY3VyaXR5IFNldHRpbmdzXCI6XCLlronlhajorr7nva5cIixcIkFQSSBTZXR0aW5nc1wiOlwiQVBJ6K6+572uXCIsXCJBUEkgVG9rZW4gU2V0dGluZ3NcIjpcIkFQSSB0b2tlbiDorr7nva5cIixcIkN1cnJlbnQgQVBJIFRva2VuXCI6XCLlvZPliY0gQVBJIHRva2VuXCIsXCJVcGRhdGUgQVBJIFRva2VuXCI6XCLmm7TmlrAgQVBJIHRva2VuXCIsXCJoZWFkZXJfc2VhcmNoX2JveFwiOntcImxhYmVsXCI6e1wiQWxsIHBhZ2VzXCI6XCLmiYDmnInpobXpnaJcIixcIlRoaXMgdHJlZVwiOlwi5b2T5YmN5YiG5pSvXCJ9LFwiaXRlbV9sYWJlbFwiOntcIkFsbCBwYWdlc1wiOlwi5omA5pyJ6aG16Z2iXCIsXCJUaGlzIHRyZWVcIjpcIuW9k+WJjeWIhuaUr+S7peS4i+WGheWuuVwifX0sXCJjb3B5X3RvX2NsaXBib2FyZFwiOntcIkNvcHkgdG8gY2xpcGJvYXJkXCI6XCLlpI3liLbliLDliarotLTmnb9cIixcIlBhZ2UgcGF0aFwiOlwi6aG16Z2i6Lev5b6EXCIsXCJQYWdlIFVSTFwiOlwi6aG16Z2iVXJsXCIsXCJQYXJtYW5lbnQgbGlua1wiOlwi5Y+C5pWw5YyW6ZO+5o6lXCIsXCJQYWdlIHBhdGggYW5kIHBhcm1hbmVudCBsaW5rXCI6XCLpobXpnaLot6/lvoTlj4rlj4LmlbDljJbpk77mjqVcIixcIk1hcmtkb3duIGxpbmtcIjpcIk1hcmtkb3du6ZO+5o6lXCJ9LFwic2VhcmNoX2hlbHBcIjp7XCJ0aXRsZVwiOlwi5pCc57Si5biu5YqpXCIsXCJhbmRcIjp7XCJzeW50YXggaGVscFwiOlwi55So56m65qC85YiG6ZqUXCIsXCJkZXNjXCI6XCLlnKjmoIfpopjmiJbmraPmlofkuK3lkIzml7bljIXlkKt7e3dvcmQxfeOAgXt7d29yZDJ955qE5pCc57Si6aG1XCJ9LFwiZXhjbHVkZVwiOntcImRlc2NcIjpcIuaOkumZpOagh+mimOaIluato+aWh+S4reWMheWQq3t7d29yZH3nmoTpobVcIn0sXCJwaHJhc2VcIjp7XCJzeW50YXggaGVscFwiOlwi55So5Y+M5byV5Y+35ous6LW35p2lXCIsXCJkZXNjXCI6XCLljIXlkKvnn63or63igJx7e3BocmFzZX3igJ3nmoTmkJzntKLpobVcIn0sXCJwcmVmaXhcIjp7XCJkZXNjXCI6XCLlj6rmkJzntKLmoIfpopjku6V7e3BhdGh95byA5aS055qE6aG1XCJ9LFwiZXhjbHVkZV9wcmVmaXhcIjp7XCJkZXNjXCI6XCLmjpLpmaTmoIfpopjku6V7e3BhdGh95byA5aS055qE6aG1XCJ9LFwidGFnXCI6e1wiZGVzY1wiOlwi5pCc57Si5bim5pyJe3t0YWd95qCH6K6w55qE6aG16Z2iXCJ9LFwiZXhjbHVkZV90YWdcIjp7XCJkZXNjXCI6XCLmjpLpmaTluKbmnIl7e3RhZ33moIforrDnmoTpobVcIn19LFwic2VhcmNoXCI6e1wic2VhcmNoIHBhZ2UgYm9kaWVzXCI6XCLmjIlb5Zue6L2mXemUrui/m+ihjOWFqOaWh+aQnOe0olwifSxcInBhZ2VfcGFnZVwiOntcIm5vdGljZVwiOntcInZlcnNpb25cIjpcIui/meS4jeaYr+W9k+WJjeeJiOacrOOAglwiLFwibW92ZWRcIjpcIuatpOmhteW3suS7jlwiLFwibW92ZWRfcGVyaW9kXCI6XCJcIixcInJlZGlyZWN0ZWRcIjpcIuaCqOWwhuS7jlwiLFwicmVkaXJlY3RlZF9wZXJpb2RcIjpcIlwiLFwiZHVwbGljYXRlZFwiOlwi5q2k6aG15p2l6IeqXCIsXCJkdXBsaWNhdGVkX3BlcmlvZFwiOlwiXCIsXCJ1bmxpbmtlZFwiOlwi5bCG572R6aG16YeN5a6a5ZCR5Yiw5q2k572R6aG15bey6KKr5Yig6Zmk44CCXCIsXCJyZXN0cmljdGVkXCI6XCLorr/pl67mraTpobXlj5fliLDpmZDliLZcIixcInN0YWxlXCI6XCLoh6rkuIrmrKHmm7TmlrDku6XmnaXvvIzlt7LotoXov4d7e2NvdW50feW5tOOAglwiLFwic3RhbGVfcGx1cmFsXCI6XCLoh6rkuIrmrKHmm7TmlrDku6XmnaXlt7Lov4fljrt7e2NvdW50feW5tOS7peS4iuOAglwiLFwibm9fZGVhZGxpbmVcIjpcIlRoaXMgcGFnZSBoYXMgbm8gZXhwaXJhdGlvbiBkYXRlXCJ9fSxcInBhZ2VfZWRpdFwiOntcIlNob3cgYWN0aXZlIGxpbmVcIjpcIuaYvuekuua0u+WKqOihjFwiLFwiYXV0b19mb3JtYXRfdGFibGVcIjpcIuiHquWKqOagvOW8j+WMluihqOagvFwiLFwib3ZlcndyaXRlX3Njb3Blc1wiOlwie3tvcGVyYXRpb2595ZKM6KaG55uW5omA5pyJ5a2Q5L2T55qE5L2c55So5Z+fXCIsXCJub3RpY2VcIjp7XCJjb25mbGljdFwiOlwi5peg5rOV5L+d5a2Y5oKo5omA5YGa55qE5pu05pS577yM5Zug5Li65YW25LuW5Lq65q2j5Zyo57yW6L6R5q2k6aG144CC6K+35Zyo6YeN5paw5Yqg6L296aG16Z2i5ZCO6YeN5paw57yW6L6R5Y+X5b2x5ZON55qE6YOo5YiG44CCXCJ9fSxcInBhZ2VfdGFibGVfb2ZfY29udGVudHNcIjp7XCJlbXB0eVwiOlwi55uu5b2V5Li656m6XCJ9LFwicGFnZV9jb21tZW50XCI6e1wiZGlzcGxheV90aGVfcGFnZV93aGVuX3Bvc3RpbmdfdGhpc19jb21tZW50XCI6XCJEaXNwbGF5IHRoZSBwYWdlIHdoZW4gcG9zdGluZyB0aGlzIGNvbW1lbnRcIn0sXCJwYWdlX2FwaV9lcnJvclwiOntcIm5vdGZvdW5kX29yX2ZvcmJpZGRlblwiOlwi5pyq5om+5Yiw5oiW56aB5q2i5Y6f5aeL6aG144CCXCIsXCJhbHJlYWR5X2V4aXN0c1wiOlwi5paw5bu66aG16Z2i5bey5a2Y5ZyoXCIsXCJvdXRkYXRlZFwiOlwi6aG16Z2i5bey6KKr5p+Q5Lq65pu05paw77yM546w5Zyo5bey6L+H5pe244CCXCIsXCJ1c2VyX25vdF9hZG1pblwiOlwi5LuF566h55CG5ZGY55So5oi35Y+v5Lul5a6M5YWo5Yig6ZmkXCJ9LFwicGFnZV9oaXN0b3J5XCI6e1wicmV2aXNpb25fbGlzdFwiOlwi5L+u6K6i5riF5Y2VXCIsXCJyZXZpc2lvblwiOlwi54mI5pysXCIsXCJjb21wYXJpbmdfc291cmNlXCI6XCLmupDlpLRcIixcImNvbXBhcmluZ190YXJnZXRcIjpcIuebruagh1wiLFwiY29tcGFyaW5nX3JldmlzaW9uc1wiOlwi5q+U6L6D5Lik6ICF55qE5Yy65YirXCIsXCJjb21wYXJlX2xhdGVzdFwiOlwi5q+U6LyD5pyA5paw54mI5pysXCIsXCJjb21wYXJlX3ByZXZpb3VzXCI6XCLmr5TovIPku6XliY3nmoTniYjmnKxcIn0sXCJtb2RhbF9yZW5hbWVcIjp7XCJsYWJlbFwiOntcIk1vdmUvUmVuYW1lIHBhZ2VcIjpcIumhtemdoiDnp7vliqgv6YeN5ZG95ZCNXCIsXCJOZXcgcGFnZSBuYW1lXCI6XCLmlrDlu7rpobXpnaLlkI3np7BcIixcIkZhaWwgdG8gZ2V0IHN1Ym9yZGluYXRlZCBwYWdlc1wiOlwiRmFpbCB0byBnZXQgc3Vib3JkaW5hdGVkIHBhZ2VzXCIsXCJGYWlsIHRvIGdldCBleGlzdCBwYXRoXCI6XCJGYWlsIHRvIGdldCBleGlzdCBwYXRoXCIsXCJSZW5hbWUgd2l0aG91dCBleGlzdCBwYXRoXCI6XCJSZW5hbWUgd2l0aG91dCBleGlzdCBwYXRoXCIsXCJDdXJyZW50IHBhZ2UgbmFtZVwiOlwi5b2T5YmN6aG16Z2i5ZCN56ewXCIsXCJSZWN1cnNpdmVseVwiOlwi6YCS5b2S5ZywXCIsXCJEbyBub3QgdXBkYXRlIG1ldGFkYXRhXCI6XCLkuI3mm7TmlrDlhYPmlbDmja5cIixcIlJlZGlyZWN0XCI6XCLph43lrprlkJFcIn0sXCJoZWxwXCI6e1wicmVkaXJlY3RcIjpcIlJlZGlyZWN0IHRvIG5ldyBwYWdlIGlmIHNvbWVvbmUgYWNjZXNzZXMgPGNvZGU+JXM8L2NvZGU+XCIsXCJtZXRhZGF0YVwiOlwiUmVtYWlucyBsYXN0IHVwZGF0ZSB1c2VyIGFuZCB1cGRhdGVkIGRhdGUgYXMgaXNcIixcInJlY3Vyc2l2ZVwiOlwiTW92ZS9SZW5hbWUgY2hpbGRyZW4gb2YgdW5kZXIgPGNvZGU+JXM8L2NvZGU+IHJlY3Vyc2l2ZWx5XCJ9fSxcIlB1dCBCYWNrXCI6XCJQdXQgYmFja1wiLFwiRGVsZXRlIENvbXBsZXRlbHlcIjpcIkRlbGV0ZSBjb21wbGV0ZWx5XCIsXCJtb2RhbF9kZWxldGVcIjp7XCJkZWxldGVfcGFnZVwiOlwiRGVsZXRlIHBhZ2VcIixcImRlbGV0aW5nX3BhZ2VcIjpcIkRlbGV0aW5nIHBhZ2VcIixcImRlbGV0ZV9yZWN1cnNpdmVseVwiOlwiRGVsZXRlIGNoaWxkIHBhZ2VzIHJlY3Vyc2l2ZWx5LlwiLFwiZGVsZXRlX2NvbXBsZXRlbHlcIjpcIkRlbGV0ZSBjb21wbGV0ZWx5XCIsXCJkZWxldGVfY29tcGxldGVseV9yZXN0cmljdGlvblwiOlwiWW91IGRvbid0IGhhdmUgdGhlIGF1dGhvcml0eSB0byBkZWxldGUgcGFnZXMgY29tcGxldGVseS5cIixcInJlY3Vyc2l2ZWx5XCI6XCJEZWxldGUgY2hpbGRyZW4gb2YgPGNvZGU+JXM8L2NvZGU+IHJlY3Vyc2l2ZWx5LlwiLFwiY29tcGxldGVseVwiOlwiRGVsZXRlIGNvbXBsZXRlbHkgaW5zdGVhZCBvZiBwdXR0aW5nIGl0IGludG8gdHJhc2guXCJ9LFwibW9kYWxfZW1wdHlcIjp7XCJlbXB0eV90aGVfdHJhc2hcIjpcIkVtcHR5IFRoZSBUcmFzaFwiLFwibm90aWNlXCI6XCLlrozlhajliKDpmaTnmoTpobXpnaLmmK/kuI3lj6/mgaLlpI3nmoTjgIJcIn0sXCJtb2RhbF9kdXBsaWNhdGVcIjp7XCJsYWJlbFwiOntcIkR1cGxpY2F0ZSBwYWdlXCI6XCJEdXBsaWNhdGUgcGFnZVwiLFwiTmV3IHBhZ2UgbmFtZVwiOlwiTmV3IHBhZ2UgbmFtZVwiLFwiRmFpbCB0byBnZXQgc3Vib3JkaW5hdGVkIHBhZ2VzXCI6XCJGYWlsIHRvIGdldCBzdWJvcmRpbmF0ZWQgcGFnZXNcIixcIkN1cnJlbnQgcGFnZSBuYW1lXCI6XCJDdXJyZW50IHBhZ2UgbmFtZVwiLFwiUmVjdXJzaXZlbHlcIjpcIlJlY3Vyc2l2ZWx5XCIsXCJEdXBsaWNhdGUgd2l0aG91dCBleGlzdCBwYXRoXCI6XCJEdXBsaWNhdGUgd2l0aG91dCBleGlzdCBwYXRoXCIsXCJTYW1lIHBhZ2UgYWxyZWFkeSBleGlzdHNcIjpcIlNhbWUgcGFnZSBhbHJlYWR5IGV4aXN0c1wifSxcImhlbHBcIjp7XCJyZWN1cnNpdmVcIjpcIkR1cGxpY2F0ZSBjaGlsZHJlbiBvZiB1bmRlciB0aGlzIHBhdGggcmVjdXJzaXZlbHlcIn19LFwibW9kYWxfcHV0YmFja1wiOntcImxhYmVsXCI6e1wiUHV0IEJhY2sgUGFnZVwiOlwiUHV0IGJhY2sgcGFnZVwiLFwicmVjdXJzaXZlbHlcIjpcIlB1dCBiYWNrIHJlY3Vyc2l2ZWx5XCJ9LFwiaGVscFwiOntcInJlY3Vyc2l2ZWx5XCI6XCJQdXQgYmFjayBjaGlsZHJlbiBvZiB1bmRlciA8Y29kZT4lczwvY29kZT4gcmVjdXJzaXZlbHlcIn19LFwibW9kYWxfc2hvcnRjdXRzXCI6e1wiZ2xvYmFsXCI6e1widGl0bGVcIjpcIuWFqOWxgOW/q+aNt+aWueW8j1wiLFwiT3Blbi9DbG9zZSBzaG9ydGN1dCBoZWxwXCI6XCLmiZPlvIAv5YWz6Zet5b+r5o235pa55byP5biu5YqpXCIsXCJFZGl0IFBhZ2VcIjpcIue8lui+kemhtemdolwiLFwiQ3JlYXRlIFBhZ2VcIjpcIuWIm+W7uumhtemdolwiLFwiU2hvdyBDb250cmlidXRvcnNcIjpcIuaYvuekuuWPguS4juiAhVwiLFwiS29uYW1pIENvZGVcIjpcIktvbmFtaSBDb2RlXCIsXCJrb25hbWlfY29kZV91cmxcIjpcImh0dHBzOi8vZW4ud2lraXBlZGlhLm9yZy93aWtpL0tvbmFtaV9Db2RlXCJ9LFwiZWRpdG9yXCI6e1widGl0bGVcIjpcIue8lui+keWZqOW/q+aNt+aWueW8j1wiLFwiSW5kZW50XCI6XCLnvKnov5tcIixcIk91dGRlbnRcIjpcIuWbnumAgOe8qei/m1wiLFwiU2F2ZSBQYWdlXCI6XCLkv53lrZjpobXpnaJcIixcIkRlbGV0ZSBMaW5lXCI6XCLliKDpmaTooYxcIn0sXCJjb21tZW50Zm9ybVwiOntcInRpdGxlXCI6XCLms6jph4rnqpfkvZPlv6vmjbfmlrnlvI9cIixcIlBvc3RcIjpcIuaPkOS6pFwifX0sXCJsaW5rX2VkaXRcIjp7XCJlZGl0X2xpbmtcIjpcIkVkaXQgTGlua1wiLFwic2V0X2xpbmtfYW5kX2xhYmVsXCI6XCJTZXQgbGluayBhbmQgbGFiZWxcIixcImxpbmtcIjpcIkxpbmtcIixcInBsYWNlaG9sZGVyX29mX2xpbmtfaW5wdXRcIjpcIklucHV0IHBhZ2UgcGF0aCBvciBVUkxcIixcImxhYmVsXCI6XCJMYWJlbFwiLFwicGF0aF9mb3JtYXRcIjpcIlBhdGggZm9ybWF0XCIsXCJ1c2VfcmVsYXRpdmVfcGF0aFwiOlwiVXNlIHJlbGF0aXZlIHBhdGhcIixcInVzZV9wZXJtYW5lbnRfbGlua1wiOlwiVXNlIHBlcm1hbmVudCBsaW5rXCIsXCJub3RhdGlvblwiOlwiTm90YXRpb25cIixcIm1hcmtkb3duXCI6XCJNYXJrZG93blwiLFwiR1JPV0lfb3JpZ2luYWxcIjpcIkdST1dJIG9yaWdpbmFsXCIsXCJwdWtpd2lraVwiOlwiUHVraXdpa2lcIixcInByZXZpZXdcIjpcIlByZXZpZXdcIixcInBhZ2Vfbm90X2ZvdW5kX2luX3ByZXZpZXdcIjpcIlxcXCJ7e3BhdGh9fVxcXCIgaXMgbm90IGEgR1JPV0kgcGFnZS5cIn0sXCJ0b2FzdGVyXCI6e1widXBkYXRlX3N1Y2Nlc3NlZFwiOlwiU3VjY2VlZGVkIHRvIHVwZGF0ZSB7e3RhcmdldH19XCIsXCJpbml0aWFsaXplX3N1Y2Nlc3NlZFwiOlwiU3VjY2VlZGVkIHRvIGluaXRpYWxpemUge3t0YXJnZXR9fVwiLFwiZ2l2ZV91c2VyX2FkbWluXCI6XCJTdWNjZWVkZWQgdG8gZ2l2ZSB7e3VzZXJuYW1lfX0gYWRtaW5cIixcInJlbW92ZV91c2VyX2FkbWluXCI6XCJTdWNjZWVkZWQgdG8gcmVtb3ZlIHt7dXNlcm5hbWV9fSBhZG1pbiBcIixcImRlbGV0ZV9zbGFja19pbnRlZ3JhdGlvbl9wcm9jZWR1cmVcIjpcIuWIoOmZpOS6hiBTbGFjayDpm4bmiJDnqIvluo9cIixcImFjdGl2YXRlX3VzZXJfc3VjY2Vzc1wiOlwiU3VjY2VlZGVkIHRvIGFjdGl2YXRpbmcge3t1c2VybmFtZX19XCIsXCJkZWFjdGl2YXRlX3VzZXJfc3VjY2Vzc1wiOlwiU3VjY2VlZGVkIHRvIGRlYWN0aXZhdGUge3t1c2VybmFtZX19XCIsXCJyZW1vdmVfdXNlcl9zdWNjZXNzXCI6XCJTdWNjZWVkZWQgdG8gcmVtb3Zpbmcge3t1c2VybmFtZX19IFwiLFwicmVtb3ZlX2V4dGVybmFsX3VzZXJfc3VjY2Vzc1wiOlwiU3VjY2VlZGVkIHRvIHJlbW92ZSB7e2FjY291bnRJZH19IFwiLFwic3dpdGNoX2Rpc2FibGVfbGlua19zaGFyaW5nX3N1Y2Nlc3NcIjpcIuaIkOWKn+abtOaWsOWIhuS6q+mTvuaOpeiuvue9rlwiLFwiZmFpbGVkX3RvX3Jlc2V0X3Bhc3N3b3JkXCI6XCJGYWlsZWQgdG8gcmVzZXQgcGFzc3dvcmRcIn0sXCJ0ZW1wbGF0ZVwiOntcIm1vZGFsX2xhYmVsXCI6e1wiQ3JlYXRlL0VkaXQgVGVtcGxhdGUgUGFnZVwiOlwi5Yib5bu6L+e8lui+keaooeadv+mhtVwiLFwiQ3JlYXRlIHRlbXBsYXRlIHVuZGVyXCI6XCLlnKjkuIvpnaLliJvlu7rmqKHmnb/pobXvvJo8YnIvPjxjb2RlPjxzbWFsbD4lczwvc21hbGw+PC9jb2RlPlwifSxcIm9wdGlvbl9sYWJlbFwiOntcImNyZWF0ZS9lZGl0XCI6XCLliJvlu7ov57yW6L6R5qih5p2/6aG144CCXCIsXCJzZWxlY3RcIjpcIumAieaLqeaooeadv+mhtemdouexu+Wei1wifSxcImNoaWxkcmVuXCI6e1wibGFiZWxcIjpcIuWtkOaooeadv1wiLFwiZGVzY1wiOlwi5LuF5bqU55So5LqO5qih5p2/5a2Y5Zyo55qE5ZCM5LiA57qn5Yir6aG1XCJ9LFwiZGVjZW5kYW50c1wiOntcImxhYmVsXCI6XCLlrZDku6PmqKHmnb9cIixcImRlc2NcIjpcIumAgueUqOS6juaJgOacieWIhuaVo+mhtVwifX0sXCJzYW5kYm94XCI6e1wiaGVhZGVyXCI6XCLmoIfpophcIixcImhlYWRlcl94XCI6XCLmoIfpoph7e2luZGV4fVwiLFwiYmxvY2tcIjpcIuauteiQvVwiLFwiYmxvY2tfZGV0YWlsXCI6XCLlhpnkuIDmrrVcIixcImVtcHR5X2xpbmVcIjpcIuepuuihjFwiLFwibGluZV9icmVha1wiOlwi5o2i6KGM56ymXCIsXCJsaW5lX2JyZWFrX2RldGFpbFwiOlwi77yIMuepuuagvO+8ieaNouihjFwiLFwidHlwb2dyYXBoeVwiOlwi5o6S54mIXCIsXCJpdGFsaWNzXCI6XCLmlpzkvZNcIixcImJvbGRcIjpcIuWKoOeyl1wiLFwiaXRhbGljX2JvbGRcIjpcIuaWnOS9k+WKoOeyl1wiLFwic3RyaWtldGhyb3VnaFwiOlwi5Yig6Zmk57q/XCIsXCJsaW5rXCI6XCLpk77mjqVcIixcImNvZGVfaGlnaGxpZ2h0XCI6XCLku6PnoIHnqoHlh7rmmL7npLpcIixcImxpc3RcIjpcIuWIl+ihqFwiLFwidW5vcmRlcmVkX2xpc3RfeFwiOlwi5peg5bqP5YiX6KGoe3tpbmRleH19XCIsXCJvcmRlcmVkX2xpc3RfeFwiOlwi5pyJ5bqP5YiX6KGoe3tpbmRleH19XCIsXCJ0YXNrXCI6XCLku7vliqFcIixcInRhc2tfY2hlY2tlZFwiOlwi6YCJ5Lit55qEXCIsXCJ0YXNrX3VuY2hlY2tlZFwiOlwi5pyq6YCJ5Lit55qEXCIsXCJxdW90ZVwiOlwi5byV55SoXCIsXCJxdW90ZTFcIjpcIuS9oOWPr+S7peWGmVwiLFwicXVvdGUyXCI6XCLlpJrooYzlvJXnlKhcIixcInF1b3RlX25lc3RlZFwiOlwi5bWM5aWX5byV55SoXCIsXCJ0YWJsZVwiOlwi6KGo5qC8XCIsXCJpbWFnZVwiOlwi5Zu+54mHXCIsXCJhbHRfdGV4dFwiOlwiQWx05paH5pysXCIsXCJpbnNlcnRfaW1hZ2VcIjpcIuaPkuWFpeWbvuWDj1wiLFwib3Blbl9zYW5kYm94XCI6XCLlvIDmlL7lvI/mspnnrrFcIn0sXCJoYWNrbWRcIjp7XCJoYWNrX21kXCI6XCJIYWNrTURcIixcIm5vdF9zZXRfdXBcIjpcIkhhY2tNRCBpcyBub3Qgc2V0IHVwLlwiLFwidXNlZF9mb3Jfbm90X2ZvdW5kXCI6XCJDYW4gbm90IHVzZSBIYWNrTUQgdG8gYSBwYWdlIHRoYXQgZG9lcyBub3QgZXhpc3QuXCIsXCJzdGFydF90b19lZGl0XCI6XCJTdGFydCB0byBlZGl0IHdpdGggSGFja01EXCIsXCJjbG9uZV9wYWdlX2NvbnRlbnRcIjpcIkNsaWNrIHRvIGNsb25lIHBhZ2UgY29udGVudCBhbmQgc3RhcnQgdG8gZWRpdC5cIixcInVuc2F2ZWRfZHJhZnRcIjpcIkhhY2tNRCBoYXMgdW5zYXZlZCBkcmFmdC5cIixcImRyYWZ0X291dGRhdGVkXCI6XCJEUkFGVCBNQVkgQkUgT1VUREFURURcIixcImJhc2VkX29uX3JldmlzaW9uXCI6XCJUaGUgY3VycmVudCBkcmFmdCBvbiBIYWNrTUQgaXMgYmFzZWQgb25cIixcInZpZXdfb3V0ZGF0ZWRfZHJhZnRcIjpcIlZpZXcgdGhlIG91dGRhdGVkIGRyYWZ0IG9uIEhhY2tNRFwiLFwicmVzdW1lX3RvX2VkaXRcIjpcIlJlc3VtZSB0byBlZGl0IHdpdGggSGFja01EXCIsXCJkaXNjYXJkX2NoYW5nZXNcIjpcIkRpc2NhcmQgY2hhbmdlcyBvZiBIYWNrTURcIixcImludGVncmF0aW9uX2ZhaWxlZFwiOlwiSGFja01EIEludGVncmF0aW9uIGZhaWxlZFwiLFwiZmFpbF90b19jb25uZWN0XCI6XCJHUk9XSSBjbGllbnQgZmFpbGVkIHRvIGNvbm5lY3QgdG8gR1JPV0kgYWdlbnQgZm9yIEhhY2tNRC5cIixcImNoZWNrX2NvbmZpZ3VyYXRpb25cIjpcIkNoZWNrIHlvdXIgY29uZmlndXJhdGlvbiBmb2xsb3dpbmcgPGEgaHJlZj0naHR0cHM6Ly9kb2NzLmdyb3dpLm9yZy9ndWlkZS9hZG1pbi1jb29rYm9vay9pbnRlZ3JhdGUtd2l0aC1oYWNrbWQuaHRtbCc+dGhlIG1hbnVhbDwvYT4uXCIsXCJub3RfaW5pdGlhbGl6ZWRcIjpcIkhhY2ttZEVkaXRvciBjb21wb25lbnQgaGFzIG5vdCBpbml0aWFsaXplZFwiLFwic29tZW9uZV9lZGl0aW5nXCI6XCJTb21lb25lIGVkaXRpbmcgdGhpcyBwYWdlIG9uIEhhY2tNRFwiLFwidGhpc19wYWdlX2hhc19kcmFmdFwiOlwiVGhpcyBwYWdlIGhhcyBhIGRyYWZ0IG9uIEhhY2tNRFwiLFwibmVlZF90b19hc3NvY2lhdGVfd2l0aF9ncm93aV90b191c2VfaGFja21kX3JlZmVyX3RvX3RoaXNcIjpcIuiLpeimgeS9v+eUqEhhY2tNROeahOWkmuS6uuWQjOaXtue8lui+keWKn+iDve+8jOivt+WFiOWFs+iBlEhhY2tNROWSjEdST1dJ44CC6K+m5oOF6K+35Y+C6ICDPGEgaHJlZj0naHR0cHM6Ly9kb2NzLmdyb3dpLm9yZy9jbi9hZG1pbi1ndWlkZS9hZG1pbi1jb29rYm9vay9pbnRlZ3JhdGUtd2l0aC1oYWNrbWQuaHRtbCc+6L+Z6YeMPC9hPuOAglwiLFwibmVlZF90b19tYWtlX3BhZ2VcIjpcIlRvIHVzZSBIYWNrTUQsIHBsZWFzZSBtYWtlIGEgbmV3IHBhZ2UgZnJvbSB0aGUgPGEgaHJlZj0nI2VkaXQnPmJ1aWx0LWluIGVkaXRvci48L2E+XCJ9LFwic2xhY2tfbm90aWZpY2F0aW9uXCI6e1wicG9wb3Zlcl90aXRsZVwiOlwiU2xhY2sgTm90aWZpY2F0aW9uXCIsXCJwb3BvdmVyX2Rlc2NcIjpcIklucHV0IGNoYW5uZWwgbmFtZS4gWW91IGNhbiBub3RpZnkgbXVsdGlwbGUgY2hhbm5lbHMgYnkgZW50ZXJpbmcgYSBjb21tYS1zZXBhcmF0ZWQgbGlzdC5cIn0sXCJzZWN1cml0eV9zZXR0aW5nc1wiOlwi5a6J5YWo6K6+572uXCIsXCJzaGFyZV9saW5rc1wiOntcIlNoZXJlIHRoaXMgcGFnZSBsaW5rIHRvIHB1YmxpY1wiOlwiU2hlcmUgdGhpcyBwYWdlIGxpbmsgdG8gcHVibGljXCIsXCJzaGFyZV9saW5rX2xpc3RcIjpcIlNoYXJlIGxpbmsgbGlzdFwiLFwic2hhcmVfbGlua19tYW5hZ2VtZW50XCI6XCJTaGFyZSBMaW5rIE1hbmFnZW1lbnRcIixcIk5vX3NoYXJlX2xpbmtzXCI6XCJObyBzaGFyZSBsaW5rc1wiLFwiU2hhcmUgTGlua1wiOlwiU2hhcmUgTGlua1wiLFwiUGFnZSBQYXRoXCI6XCJQYWdlIFBhdGhcIixcInNoYXJlX2xpbmtfbm90aWNlXCI6XCJyZW1vdmUgYWxsIHNoYXJlIGxpbmtzXCIsXCJkZWxldGVfYWxsX3NoYXJlX2xpbmtzXCI6XCJEZWxldGUgYWxsIHNoYXJlIGxpbmtzXCIsXCJleHBpcmVcIjpcIkV4cGlyYXRpb25cIixcIkRheXNcIjpcIkRheXNcIixcIkN1c3RvbVwiOlwiQ3VzdG9tXCIsXCJkZXNjcmlwdGlvblwiOlwiZGVzY3JpcHRpb25cIixcImVudGVyX2Rlc2NcIjpcIkVudGVyIGRlc2NyaXB0aW9uXCIsXCJVbmxpbWl0ZWRcIjpcInVubGltaXRlZFwiLFwiSXNzdWVcIjpcIklzc3VlXCIsXCJzaGFyZV9zZXR0aW5nc1wiOlwiU2hhcmUgc2V0dGluZ3NcIixcIkludmFsaWRfTnVtYmVyX29mX0RhdGVcIjpcIllvdSBlbnRlcmVkIGludmFsaWQgdmFsdWVcIn0sXCJzZWN1cml0eV9zZXR0aW5nXCI6e1wiR3Vlc3QgVXNlcnMgQWNjZXNzXCI6XCLmnaXlrr7nlKjmiLforr/pl65cIixcIkZpeGVkIGJ5IGVudiB2YXJcIjpcIui/meaYr+eUsWVudiB2YXI8Y29kZT4lcz0lczwvY29kZT7kv67lpI3nmoTjgIJcIixcIlJlZ2lzdGVyIGxpbWl0YXRpb25cIjpcIuazqOWGjOmZkOWItlwiLFwiUmVnaXN0ZXIgbGltaXRhdGlvbiBkZXNjXCI6XCLpmZDliLbmlrDnlKjmiLfms6jlhoxcIixcIlRoZSB3aGl0ZWxpc3Qgb2YgcmVnaXN0cmF0aW9uIHBlcm1pc3Npb24gRS1tYWlsIGFkZHJlc3NcIjpcIuazqOWGjOiuuOWPr+eUteWtkOmCruS7tuWcsOWdgOeahOeZveWQjeWNlVwiLFwidXNlcnNfd2l0aG91dF9hY2NvdW50XCI6XCLml6Dms5Xorr/pl67msqHmnInluJDmiLfnmoTnlKjmiLdcIixcImV4YW1wbGVcIjpcIuS+i+WtkFwiLFwicmVzdHJpY3RfZW1haWxzXCI6XCLmgqjlj6/ku6XpgJrov4fnvJblhpnnlLXlrZDpgq7ku7bln5/vvIjku6VA5byA5aS077yJ5bCG55S15a2Q6YKu5Lu25rOo5YaM6ZmQ5Yi25Li6d2lraeOAglwiLFwiZm9yX2V4YW1wbGVcIjpcIiDkvovlpoLvvIzlpoLmnpzopoHlsIbms6jlhozpmZDliLbkuLpncm93aS5vcmfnvZHnq5nln5/vvIzkvaDlj6/ku6XlhplcIixcImluX3RoaXNfY2FzZVwiOlwi77yb5Zyo6L+Z56eN5oOF5Ya15LiL77yM5Y+q5pyJZ3Jvd2kub3Jn572R56uZ5Z+f5bCG6IO95aSf5rOo5YaM77yM5omA5pyJ5YW25LuW55So5oi35bCG6KKr5ouS57ud44CCXCIsXCJpbnNlcnRfc2luZ2xlXCI6XCLor7fmr4/ooYzmj5LlhaXkuIDkuKrnlLXlrZDpgq7ku7blnLDlnYDjgIJcIixcInBhZ2VfbGlzdF9hbmRfc2VhcmNoX3Jlc3VsdHNcIjpcIumhtemdouWIl+ihqC/mkJzntKLnu5PmnpxcIixcInBhZ2VfbGlzdGluZ18xXCI6XCLpobXpnaLliJfooagv5pCc57SiPGJyPuWPl+KAnOS7hemZkOaIkeKAnemZkOWItlwiLFwicGFnZV9saXN0aW5nXzFfZGVzY1wiOlwi5YiX5Ye6L+aQnOe0ouaXtuaYvuekuuWPl+KAnOS7hemZkOaIkeKAnemAiemhuemZkOWItueahOmhtemdolwiLFwicGFnZV9saXN0aW5nXzJcIjpcIumhtemdouWIl+ihqC/mkJzntKI8YnI+5Y+X55So5oi357uE6ZmQ5Yi2XCIsXCJwYWdlX2xpc3RpbmdfMl9kZXNjXCI6XCLmmL7npLrliJflh7ov5pCc57Si5pe25Y+X55So5oi357uE6ZmQ5Yi255qE6aG16Z2iXCIsXCJwYWdlX2FjY2Vzc19hbmRfZGVsZXRlX3JpZ2h0c1wiOlwi6aG16Z2i6K6/6ZeuL+WIoOmZpOadg+mZkFwiLFwiY29tcGxldGVfZGVsZXRpb25cIjpcIumZkOWItuWujOWFqOWIoOmZpOmhtemdolwiLFwiY29tcGxldGVfZGVsZXRpb25fZXhwbGFpblwiOlwi6ZmQ5Yi25Y+v5Lul5a6M5YWo5Yig6Zmk6aG16Z2i55qE55So5oi344CCXCIsXCJhZG1pbl9vbmx5XCI6XCLku4XnrqHnkIblkZhcIixcImFkbWluX2FuZF9hdXRob3JcIjpcIueuoeeQhuWRmHzkvZzogIVcIixcImFueW9uZVwiOlwi5Lu75L2V5Lq6XCIsXCJzZXNzaW9uXCI6XCLkvJrorq5cIixcIm1heF9hZ2VcIjpcIuacieaViOacn+mXtCAgKG1zZWMpXCIsXCJtYXhfYWdlX2Rlc2NcIjpcIuaMh+WumuS9v+eUqOaIt+S8muivnei/h+acn+eahOaVsOmHjyjku6Xmr6vnp5LkuLrljZXkvY0p44CCPGJyPum7mOiupOWAvDogMjU5MjAwMDAwMCAoMzDlpKkpXCIsXCJtYXhfYWdlX2NhdXRpb25cIjpcIuS/ruaUueivpeWAvOWQjumcgOimgemHjeWQr+acjeWKoeWZqOOAglwiLFwiQXV0aGVudGljYXRpb24gbWVjaGFuaXNtIHNldHRpbmdzXCI6XCLouqvku73pqozor4HmnLrliLborr7nva5cIixcInNldHVwX2lzX25vdF95ZXRfY29tcGxldGVcIjpcIuWuieijheWwmuacquWujOaIkFwiLFwiYWxlcnRfc2l0ZVVybF9pc19ub3Rfc2V0XCI6XCLkuLvpobVVUkzmnKrorr7nva7vvIzpgJrov4cge3tsaW5rfX0g6K6+572uXCIsXCJ4c3NfcHJldmVudF9zZXR0aW5nXCI6XCLpmLvmraJYU1PvvIjot6jnq5nngrnohJrmnKzvvIlcIixcInhzc19wcmV2ZW50X3NldHRpbmdfbGlua1wiOlwi6L2s5YiwTWFya2Rvd27orr7nva5cIixcImNhbGxiYWNrX1VSTFwiOlwi5Zue6LCDVVJMXCIsXCJwcm92aWRlck5hbWVcIjpcIuaPkOS+m+eoi+W6j+WQjeensFwiLFwiaXNzdWVySG9zdFwiOlwi5Y+R6KGM6ICF5Li75py6XCIsXCJzY29wZVwiOlwiU2NvcGVcIixcImRlc2Nfb2ZfY2FsbGJhY2tfVVJMXCI6XCLlnKh7e0F1dGhOYW1lfX3ouqvku73mj5DkvpvnqIvluo/nmoTorr7nva7kuK3kvb/nlKjlroNcIixcImF1dGhvcml6YXRpb25fZW5kcG9pbnRcIjpcIkF1dGhvcml6YXRpb24gRW5kcG9pbnRcIixcInRva2VuX2VuZHBvaW50XCI6XCJUb2tlbiBFbmRwb2ludFwiLFwicmV2b2NhdGlvbl9lbmRwb2ludFwiOlwiUmV2b2NhdGlvbiBFbmRwb2ludFwiLFwiaW50cm9zcGVjdGlvbl9lbmRwb2ludFwiOlwiSW50cm9zcGVjdGlvbiBFbmRwb2ludFwiLFwidXNlcmluZm9fZW5kcG9pbnRcIjpcIlVzZXJJbmZvIEVuZHBvaW50XCIsXCJlbmRfc2Vzc2lvbl9lbmRwb2ludFwiOlwiRW5kU2Vzc2lvaW4gRW5kcG9pbnRcIixcInJlZ2lzdHJhdGlvbl9lbmRwb2ludFwiOlwiUmVnaXN0cmF0aW9uIEVuZHBvaW50XCIsXCJqd2tzX3VyaVwiOlwiSlNPTiBXZWIgS2V5IFNldCBVUkxcIixcImNsaWVudElEXCI6XCJDbGllbnQgSURcIixcImNsaWVudF9zZWNyZXRcIjpcIuWuouaIt+acuuWvhlwiLFwidXBkYXRlZF9nZW5lcmFsX3NlY3VyaXR5X3NldHRpbmdcIjpcIuabtOaWsOWuieWFqOiuvue9ruaIkOWKn1wiLFwic2V0dXBfbm90X2NvbXBsZXRlZF95ZXRcIjpcIuWuieijheWwmuacquWujOaIkFwiLFwiZ3Vlc3RfbW9kZVwiOntcImRlbnlcIjpcIuaLkue7ne+8iOS7hemZkOazqOWGjOeUqOaIt++8iVwiLFwicmVhZG9ubHlcIjpcIuaOpeWPl++8iOadpeWuvuWPr+S7peWPquivu++8iVwifSxcInJlZ2lzdHJhdGlvbl9tb2RlXCI6e1wib3BlblwiOlwi5omT5byA77yI5Lu75L2V5Lq66YO95Y+v5Lul5rOo5YaM77yJXCIsXCJyZXN0cmljdGVkXCI6XCLlj5fpmZDvvIjpnIDopoHnrqHnkIblkZjmibnlh4bvvIlcIixcImNsb3NlZFwiOlwi5bey5YWz6Zet77yI5LuF6ZmQ6YKA6K+377yJXCJ9LFwic2hhcmVfbGlua19yaWdodHNcIjpcIuWIhuS6q+mTvuaOpeadg1wiLFwiZW5hYmxlX2xpbmtfc2hhcmluZ1wiOlwi5ZCv55So6ZO+5o6l5YWx5LqrXCIsXCJhbGxfc2hhcmVfbGlua3NcIjpcIuaJgOacieWFseS6q+mTvuaOpVwiLFwiY29uZmlndXJhdGlvblwiOlwiIOmFjee9rlwiLFwib3B0aW9uYWxcIjpcIuWPr+mAieeahFwiLFwiVHJlYXQgdXNlcm5hbWUgbWF0Y2hpbmcgYXMgaWRlbnRpY2FsXCI6XCJBdXRvbWF0aWNhbGx5IGJpbmQgZXh0ZXJuYWwgYWNjb3VudHMgbmV3bHkgbG9nZ2VkIGluIHRvIGxvY2FsIGFjY291bnRzIHdoZW4gPGNvZGU+dXNlcm5hbWU8L2NvZGU+IG1hdGNoXCIsXCJUcmVhdCB1c2VybmFtZSBtYXRjaGluZyBhcyBpZGVudGljYWxfd2FyblwiOlwiV0FSTklORzogQmUgYXdhcmUgb2Ygc2VjdXJpdHkgYmVjYXVzZSB0aGUgc3lzdGVtIHRyZWF0cyB0aGUgc2FtZSB1c2VyIGFzIGEgbWF0Y2ggb2YgPGNvZGU+dXNlcm5hbWU8L2NvZGU+LlwiLFwiVHJlYXQgZW1haWwgbWF0Y2hpbmcgYXMgaWRlbnRpY2FsXCI6XCJBdXRvbWF0aWNhbGx5IGJpbmQgZXh0ZXJuYWwgYWNjb3VudHMgbmV3bHkgbG9nZ2VkIGluIHRvIGxvY2FsIGFjY291bnRzIHdoZW4gPGNvZGU+ZW1haWw8L2NvZGU+IG1hdGNoXCIsXCJUcmVhdCBlbWFpbCBtYXRjaGluZyBhcyBpZGVudGljYWxfd2FyblwiOlwiV0FSTklORzogQmUgYXdhcmUgb2Ygc2VjdXJpdHkgYmVjYXVzZSB0aGUgc3lzdGVtIHRyZWF0cyB0aGUgc2FtZSB1c2VyIGFzIGEgbWF0Y2ggb2YgPGNvZGU+ZW1haWw8L2NvZGU+LlwiLFwiVXNlIGVudiB2YXIgaWYgZW1wdHlcIjpcIlVzZSBlbnYgdmFyIDxjb2RlPnt7ZW52fX08L2NvZGU+IGlmIGVtcHR5XCIsXCJVc2UgZGVmYXVsdCBpZiBib3RoIGFyZSBlbXB0eVwiOlwiSWYgYm90aCDigIvigIthcmUgZW1wdHksIHRoZSBkZWZhdWx0IHZhbHVlIDxjb2RlPnt7dGFyZ2V0fX08L2NvZGU+IGlzIHVzZWQuXCIsXCJtaXNzaW5nIG1hbmRhdG9yeSBjb25maWdzXCI6XCJUaGUgZm9sbG93aW5nIG1hbmRhdG9yeSBpdGVtcyBhcmUgbm90IHNldCBpbiBlaXRoZXIgZGF0YWJhc2Ugbm9yIGVudmlyb25tZW50IHZhcmlhYmxlcy5cIixcIkxvY2FsXCI6e1wibmFtZVwiOlwiSUQvUGFzc3dvcmRcIixcIm5vdGUgZm9yIHRoZSBvbmx5IGVudiBvcHRpb25cIjpcIlRoZSBMT0NBTCBhdXRoZW50aWNhdGlvbiBpcyBsaW1pdGVkIGJ5IHRoZSB2YWx1ZSBvZiBlbnZpcm9ubWVudCB2YXJpYWJsZS48YnI+VG8gY2hhbmdlIHRoaXMgc2V0dGluZywgcGxlYXNlIGNoYW5nZSB0byBmYWxzZSBvciBkZWxldGUgdGhlIHZhbHVlIG9mIHRoZSBlbnZpcm9ubWVudCB2YXJpYWJsZSA8Y29kZT57e2Vudn19PC9jb2RlPiAuXCIsXCJlbmFibGVfbG9jYWxcIjpcIkVuYWJsZSBJRC9QYXNzd29yZFwifSxcImxkYXBcIjp7XCJlbmFibGVfbGRhcFwiOlwiRW5hYmxlIExEQVBcIixcInNlcnZlcl91cmxfZGV0YWlsXCI6XCJUaGUgTERBUCBVUkwgb2YgdGhlIGRpcmVjdG9yeSBzZXJ2aWNlIGluIHRoZSBmb3JtYXQgPGNvZGU+bGRhcDovL2hvc3Q6cG9ydC9ETjwvY29kZT4gb3IgPGNvZGU+bGRhcHM6Ly9ob3N0OnBvcnQvRE48L2NvZGU+LlwiLFwiYmluZF9tb2RlXCI6XCJCaW5kaW5nIE1vZGVcIixcImJpbmRfbWFuYWdlclwiOlwiTWFuYWdlciBCaW5kXCIsXCJiaW5kX3VzZXJcIjpcIlVzZXIgQmluZFwiLFwiYmluZF9ETl9tYW5hZ2VyX2RldGFpbFwiOlwiVGhlIEROIG9mIHRoZSBhY2NvdW50IHRoYXQgYXV0aGVudGljYXRlcyBhbmQgcXVlcmllcyB0aGUgZGlyZWN0b3J5IHNlcnZpY2VcIixcImJpbmRfRE5fdXNlcl9kZXRhaWwxXCI6XCJUaGUgcXVlcnkgdXNlZCB0byBiaW5kIHdpdGggdGhlIGRpcmVjdG9yeSBzZXJ2aWNlLlwiLFwiYmluZF9ETl91c2VyX2RldGFpbDJcIjpcIlVzZSA8Y29kZT4mIzEyMzsmIzEyMzt1c2VybmFtZSYjMTI1OyYjMTI1OzwvY29kZT4gdG8gcmVmZXJlbmNlIHRoZSB1c2VybmFtZSBlbnRlcmVkIGluIHRoZSBsb2dpbiBwYWdlLlwiLFwiYmluZF9ETl9wYXNzd29yZFwiOlwiQmluZCBETiBQYXNzd29yZFwiLFwiYmluZF9ETl9wYXNzd29yZF9tYW5hZ2VyX2RldGFpbFwiOlwiVGhlIHBhc3N3b3JkIGZvciB0aGUgQmluZCBETiBhY2NvdW50LlwiLFwiYmluZF9ETl9wYXNzd29yZF91c2VyX2RldGFpbFwiOlwiVGhlIHBhc3N3b3JkIHRoYXQgaXMgZW50ZXJlZCBpbiB0aGUgbG9naW4gcGFnZSB3aWxsIGJlIHVzZWQgdG8gYmluZC5cIixcInNlYXJjaF9maWx0ZXJcIjpcIlNlYXJjaCBGaWx0ZXJcIixcInNlYXJjaF9maWx0ZXJfZGV0YWlsMVwiOlwiVGhlIHF1ZXJ5IHVzZWQgdG8gbG9jYXRlIHRoZSBhdXRoZW50aWNhdGVkIHVzZXIuXCIsXCJzZWFyY2hfZmlsdGVyX2RldGFpbDJcIjpcIlVzZSA8Y29kZT4mIzEyMzsmIzEyMzt1c2VybmFtZSYjMTI1OyYjMTI1OzwvY29kZT4gdG8gcmVmZXJlbmNlIHRoZSB1c2VybmFtZSBlbnRlcmVkIGluIHRoZSBsb2dpbiBwYWdlLlwiLFwic2VhcmNoX2ZpbHRlcl9kZXRhaWwzXCI6XCJJZiBlbXB0eSwgdGhlIGZpbHRlciA8Y29kZT4odWlkPSYjMTIzOyYjMTIzO3VzZXJuYW1lJiMxMjU7JiMxMjU7KTwvY29kZT4gaXMgdXNlZC5cIixcInNlYXJjaF9maWx0ZXJfZXhhbXBsZTFcIjpcIk1hdGNoIHdpdGggJ3VpZCcgb3IgJ21haWwnXCIsXCJzZWFyY2hfZmlsdGVyX2V4YW1wbGUyXCI6XCJNYXRjaCB3aXRoICdzQU1BY2NvdW50TmFtZScgZm9yIEFjdGl2ZSBEaXJlY3RvcnlcIixcInVzZXJuYW1lX2RldGFpbFwiOlwiU3BlY2lmaWNhdGlvbiBvZiBtYXBwaW5ncyBmb3IgPGNvZGU+dXNlcm5hbWU8L2NvZGU+IHdoZW4gY3JlYXRpbmcgbmV3IHVzZXJzXCIsXCJuYW1lX2RldGFpbFwiOlwiU3BlY2lmaWNhdGlvbiBvZiBtYXBwaW5ncyBmb3IgZnVsbCBuYW1lIHdoZW4gY3JlYXRpbmcgbmV3IHVzZXJzXCIsXCJtYWlsX2RldGFpbFwiOlwiU3BlY2lmaWNhdGlvbiBvZiBtYXBwaW5ncyBmb3IgbWFpbCBhZGRyZXNzIHdoZW4gY3JlYXRpbmcgbmV3IHVzZXJzXCIsXCJncm91cF9zZWFyY2hfYmFzZV9ETlwiOlwiR3JvdXAgU2VhcmNoIEJhc2UgRE5cIixcImdyb3VwX3NlYXJjaF9iYXNlX0ROX2RldGFpbFwiOlwiVGhlIGJhc2UgRE4gZnJvbSB3aGljaCB0byBzZWFyY2ggZm9yIGdyb3Vwcy4gSWYgZGVmaW5lZCwgYWxzbyA8Y29kZT5Hcm91cCBTZWFyY2ggRmlsdGVyPC9jb2RlPiBtdXN0IGJlIGRlZmluZWQgZm9yIHRoZSBzZWFyY2ggdG8gd29yay5cIixcImdyb3VwX3NlYXJjaF9maWx0ZXJcIjpcIkdyb3VwIFNlYXJjaCBGaWx0ZXJcIixcImdyb3VwX3NlYXJjaF9maWx0ZXJfZGV0YWlsMVwiOlwiVGhlIHF1ZXJ5IHVzZWQgdG8gZmlsdGVyIGZvciBncm91cHMuXCIsXCJncm91cF9zZWFyY2hfZmlsdGVyX2RldGFpbDJcIjpcIkxvZ2luIHZpYSBMREFQIGlzIGFjY2VwdGVkIG9ubHkgd2hlbiB0aGlzIHF1ZXJ5IGhpdHMgb25lIG9yIG1vcmUgZ3JvdXBzLlwiLFwiZ3JvdXBfc2VhcmNoX2ZpbHRlcl9kZXRhaWwzXCI6XCJVc2UgPGNvZGU+JiMxMjM7JiMxMjM7ZG4mIzEyNTsmIzEyNTs8L2NvZGU+IHRvIGhhdmUgaXQgcmVwbGFjZWQgb2YgdGhlIGZvdW5kIHVzZXIgb2JqZWN0LlwiLFwiZ3JvdXBfc2VhcmNoX2ZpbHRlcl9kZXRhaWw0XCI6XCI8Y29kZT4oJihjbj1ncm91cDEpKG1lbWJlclVpZD0mIzEyMzsmIzEyMztkbiYjMTI1OyYjMTI1OykpPC9jb2RlPiBoaXRzIHRoZSBncm91cHMgd2hpY2ggaGFzIDxjb2RlPmNuPWdyb3VwMTwvY29kZT4gYW5kIDxjb2RlPm1lbWJlclVpZDwvY29kZT4gaW5jbHVkZXMgdGhlIHVzZXIncyA8Y29kZT51aWQ8L2NvZGU+KHdoZW4gPGNvZGU+R3JvdXAgRE4gUHJvcGVydHk8L2NvZGU+IGlzIG5vdCBjaGFuZ2VkIGZyb20gdGhlIGRlZmF1bHQgdmFsdWUuKVwiLFwiZ3JvdXBfc2VhcmNoX3VzZXJfRE5fcHJvcGVydHlcIjpcIlVzZXIgRE4gUHJvcGVydHlcIixcImdyb3VwX3NlYXJjaF91c2VyX0ROX3Byb3BlcnR5X2RldGFpbFwiOlwiVGhlIHByb3BlcnR5IG9mIHVzZXIgb2JqZWN0IHRvIHVzZSBpbiA8Y29kZT4mIzEyMzsmIzEyMztkbiYjMTI1OyYjMTI1OzwvY29kZT4gaW50ZXJwb2xhdGlvbiBvZiA8Y29kZT5Hcm91cCBTZWFyY2ggRmlsdGVyPC9jb2RlPi5cIixcInRlc3RfY29uZmlnXCI6XCJUZXN0IFNhdmVkIENvbmZpZ3VyYXRpb25cIixcInVwZGF0ZWRfbGRhcFwiOlwiU3VjY2VlZGVkIHRvIHVwZGF0ZSBMREFQIHNldHRpbmdcIn0sXCJTQU1MXCI6e1wibmFtZVwiOlwiU0FNTFwiLFwiZW5hYmxlX3NhbWxcIjpcIkVuYWJsZSBTQU1MXCIsXCJpZF9kZXRhaWxcIjpcIlNwZWNpZmljYXRpb24gb2YgdGhlIG5hbWUgb2YgYXR0cmlidXRlIHdoaWNoIGNhbiBpZGVudGlmeSB0aGUgdXNlciBpbiBTQU1MIElkZW50aXR5IFByb3ZpZGVyXCIsXCJ1c2VybmFtZV9kZXRhaWxcIjpcIlNwZWNpZmljYXRpb24gb2YgbWFwcGluZ3MgZm9yIDxjb2RlPnVzZXJuYW1lPC9jb2RlPiB3aGVuIGNyZWF0aW5nIG5ldyB1c2Vyc1wiLFwibWFwcGluZ19kZXRhaWxcIjpcIlNwZWNpZmljYXRpb24gb2YgbWFwcGluZ3MgZm9yIHt7dGFyZ2V0fX0gd2hlbiBjcmVhdGluZyBuZXcgdXNlcnNcIixcImNlcnRfZGV0YWlsXCI6XCJQRU0tZW5jb2RlZCBYLjUwOSBzaWduaW5nIGNlcnRpZmljYXRlIHRvIHZhbGlkYXRlIHRoZSByZXNwb25zZSBmcm9tIElkUFwiLFwiVXNlIGVudiB2YXIgaWYgZW1wdHlcIjpcIklmIHRoZSB2YWx1ZSBpbiB0aGUgZGF0YWJhc2UgaXMgZW1wdHksIHRoZSB2YWx1ZSBvZiB0aGUgZW52aXJvbm1lbnQgdmFyaWFibGUgPGNvZGU+e3tlbnZ9fTwvY29kZT4gaXMgdXNlZC5cIixcIm5vdGUgZm9yIHRoZSBvbmx5IGVudiBvcHRpb25cIjpcIlRoZSBzZXR0aW5nIGl0ZW0gdGhhdCBlbmFibGVzIG9yIGRpc2FibGVzIHRoZSBTQU1MIGF1dGhlbnRpY2F0aW9uIGFuZCB0aGUgaGlnaGxpZ2h0ZWQgc2V0dGluZyBpdGVtcyB1c2Ugb25seSB0aGUgdmFsdWUgb2YgZW52aXJvbm1lbnQgdmFyaWFibGVzLjxicj5UbyBjaGFuZ2UgdGhpcyBzZXR0aW5nLCBwbGVhc2UgY2hhbmdlIHRvIGZhbHNlIG9yIGRlbGV0ZSB0aGUgdmFsdWUgb2YgdGhlIGVudmlyb25tZW50IHZhcmlhYmxlIDxjb2RlPnt7ZW52fX08L2NvZGU+IC5cIixcImF0dHJfYmFzZWRfbG9naW5fY29udHJvbF9kZXRhaWxcIjpcIkxpbWl0IHdobyBjYW4gc2lnbiB1cCBieSB1c2luZyA8Y29kZT4mbHQ7c2FtbDogQXR0cmlidXRlJmd0OzwvY29kZT4gZWxlbWVudCBpbmNsdWRlZCBpbiA8Y29kZT4mbHQ7c2FtbDogQXR0cmlidXRlU3RhdGVtZW50Jmd0OzwvY29kZT4gZWxlbWVudCBhbmQgaXRzIGNoaWxkIGVsZW1lbnQgPGNvZGU+Jmx0O3NhbWw6IEF0dHJpYnV0ZVZhbHVlJmd0OzwvY29kZT4uXCIsXCJhdHRyX2Jhc2VkX2xvZ2luX2NvbnRyb2xfcnVsZV9kZXRhaWxcIjpcIlNlZSA8YSBocmVmPVxcXCJodHRwczovL2x1Y2VuZS5hcGFjaGUub3JnL2NvcmUvMl85XzQvcXVlcnlwYXJzZXJzeW50YXguaHRtbFxcXCIgdGFyZ2V0PVxcXCJfYmxhbmtcXFwiPkFwYWNoZSBMdWNlbmUgLSBRdWVyeSBQYXJzZXIgU3ludGF4PC9hPi48aDY+U3VwcG9ydGVkIFF1ZXJpZXM6PC9oNj48dWw+PGxpPlRlcm1zPC9saT48bGk+RmllbGRzPC9saT48bGk+QU5EL05PVC9PUiBPcGVyYXRvcjwvbGk+PGxpPkdyb3VwaW5nPC9saT48L3VsPjxoNj5VbnN1cHBvcnRlZCBRdWVyaWVzOjwvaDY+PHVsPjxsaT5XaWxkY2FyZCwgRnV6enksIFByb3hpbWl0eSwgUmFuZ2UgYW5kIEJvb3N0aW5nPC9saT48bGk+Ky8tIE9wZXJhdG9yPC9saT48bGk+RmllbGQgR3JvdXBpbmc8L2xpPjwvdWw+XCIsXCJhdHRyX2Jhc2VkX2xvZ2luX2NvbnRyb2xfcnVsZV9leGFtcGxlXCI6XCI8aDY+RXhhbXBsZTwvaDY+SWYgYSBydWxlIGlzIDxjb2RlPihEZXBhcnRtZW50OiBBIHx8IERlcGFydG1lbnQ6IEIpICYmIFBvc2l0aW9uOiBMZWFkZXI8L2NvZGU+LCB1c2VycyB3aG8gaGF2ZSBlaXRoZXIgPGNvZGU+RGVwYXJ0bWVudDogQTwvY29kZT4gb3IgPGNvZGU+RGVwYXJ0bWVudDogQjwvY29kZT4gYW5kIGhhdmUgPGNvZGU+UG9zaXRpb246IExlYWRlcjwvY29kZT4gPHN0cm9uZz5jYW48L3N0cm9uZz4gc2lnbiBpbi5cIixcInVwZGF0ZWRfc2FtbFwiOlwiU3VjY2VlZGVkIHRvIHVwZGF0ZSBTQU1MIHNldHRpbmdcIn0sXCJCYXNpY1wiOntcImVuYWJsZV9iYXNpY1wiOlwiRW5hYmxlIEJhc2ljXCIsXCJuYW1lXCI6XCJCYXNpYyBBdXRoZW50aWNhdGlvblwiLFwiZGVzY18xXCI6XCJMb2dpbiB3aXRoIDxjb2RlPnVzZXJuYW1lPC9jb2RlPiBpbiBBdXRob3JpemF0aW9uIGhlYWRlci5cIixcImRlc2NfMlwiOlwiVXNlciB3aWxsIGJlIGF1dG9tYXRpY2FsbHkgZ2VuZXJhdGVkIGlmIG5vdCBleGlzdC5cIixcInVwZGF0ZWRfYmFzaWNcIjpcIlN1Y2NlZWRlZCB0byB1cGRhdGUgQmFzaWMgc2V0dGluZ1wifSxcIk9BdXRoXCI6e1wiZW5hYmxlX29pZGNcIjpcIkVuYWJsZSBPSURDXCIsXCJyZWdpc3RlclwiOlwiUmVnaXN0ZXIgZm9yICVzXCIsXCJjaGFuZ2VfcmVkaXJlY3RfdXJsXCI6XCJFbnRlciA8Y29kZT4lczwvY29kZT4gPGJyPih3aGVyZSA8Y29kZT4lczwvY29kZT4gaXMgeW91ciBob3N0IG5hbWUpIGZvciBcXFwiQXV0aG9yaXplZCByZWRpcmVjdCBVUklzXFxcIi5cIixcIkdvb2dsZVwiOntcImVuYWJsZV9nb29nbGVcIjpcIkVuYWJsZSBHb29nbGUgT0F1dGhcIixcIm5hbWVcIjpcIkdvb2dsZSBPQXV0aFwiLFwicmVnaXN0ZXJfMVwiOlwiQWNjZXNzIHt7bGlua319XCIsXCJyZWdpc3Rlcl8yXCI6XCJDcmVhdGUgUHJvamVjdCBpZiBubyBwcm9qZWN0cyBleGlzdFwiLFwicmVnaXN0ZXJfM1wiOlwiQ3JlYXRlIENyZWRlbnRpYWxzICZyaWdodGFycm93OyBPQXV0aCBjbGllbnQgSUQgJnJpZ2h0YXJyb3c7IFNlbGVjdCBcXFwiV2ViIGFwcGxpY2F0aW9uXFxcIlwiLFwicmVnaXN0ZXJfNFwiOlwiUmVnaXN0ZXIgeW91ciBPQXV0aCBBcHAgd2l0aCBvbmUgb2YgQXV0aG9yaXplZCByZWRpcmVjdCBVUklzIGFzIDxjb2RlPnt7dXJsfX08L2NvZGU+XCIsXCJyZWdpc3Rlcl81XCI6XCJDb3B5IGFuZCBwYXN0ZSB5b3VyIENsaWVudElEIGFuZCBDbGllbnQgU2VjcmV0IGFib3ZlXCIsXCJ1cGRhdGVkX2dvb2dsZVwiOlwiU3VjY2VlZGVkIHRvIHVwZGF0ZSBHb29nbGUgT0F1dGggc2V0dGluZ1wifSxcIkZhY2Vib29rXCI6e1wibmFtZVwiOlwiRmFjZWJvb2sgT0F1dGhcIn0sXCJUd2l0dGVyXCI6e1wiZW5hYmxlX3R3aXR0ZXJcIjpcIkVuYWJsZSBUd2l0dGVyIE9BdXRoXCIsXCJuYW1lXCI6XCJUd2l0dGVyIE9BdXRoXCIsXCJyZWdpc3Rlcl8xXCI6XCJBY2Nlc3Mge3tsaW5rfX1cIixcInJlZ2lzdGVyXzJcIjpcIlNpZ24gaW4gVHdpdHRlclwiLFwicmVnaXN0ZXJfM1wiOlwiQ3JlYXRlIENyZWRlbnRpYWxzICZyaWdodGFycm93OyBPQXV0aCBjbGllbnQgSUQgJnJpZ2h0YXJyb3c7IFNlbGVjdCBcXFwiV2ViIGFwcGxpY2F0aW9uXFxcIlwiLFwicmVnaXN0ZXJfNFwiOlwiUmVnaXN0ZXIgeW91ciBPQXV0aCBBcHAgd2l0aCBvbmUgb2YgQXV0aG9yaXplZCByZWRpcmVjdCBVUklzIGFzIDxjb2RlPnt7dXJsfX08L2NvZGU+XCIsXCJyZWdpc3Rlcl81XCI6XCJDb3B5IGFuZCBwYXN0ZSB5b3VyIENsaWVudElEIGFuZCBDbGllbnQgU2VjcmV0IGFib3ZlXCIsXCJ1cGRhdGVkX3R3aXR0ZXJcIjpcIlN1Y2NlZWRlZCB0byB1cGRhdGUgVHdpdHRlciBPQXV0aCBzZXR0aW5nXCJ9LFwiR2l0SHViXCI6e1wiZW5hYmxlX2dpdGh1YlwiOlwiRW5hYmxlIEdpdEh1YiBPQXV0aFwiLFwibmFtZVwiOlwiR2l0SHViIE9BdXRoXCIsXCJyZWdpc3Rlcl8xXCI6XCJBY2Nlc3Mge3tsaW5rfX1cIixcInJlZ2lzdGVyXzJcIjpcIlJlZ2lzdGVyIHlvdXIgT0F1dGggQXBwIHdpdGggXFxcIkF1dGhvcml6YXRpb24gY2FsbGJhY2sgVVJMXFxcIiBhcyA8Y29kZT57e3VybH19PC9jb2RlPlwiLFwicmVnaXN0ZXJfM1wiOlwiQ29weSBhbmQgcGFzdGUgeW91ciBDbGllbnRJRCBhbmQgQ2xpZW50IFNlY3JldCBhYm92ZVwiLFwidXBkYXRlZF9naXRodWJcIjpcIlN1Y2NlZWRlZCB0byB1cGRhdGUgR2l0SHViIE9BdXRoIHNldHRpbmdcIn0sXCJPSURDXCI6e1wibmFtZVwiOlwiT3BlbklEIENvbm5lY3RcIixcImlkX2RldGFpbFwiOlwiU3BlY2lmaWNhdGlvbiBvZiB0aGUgbmFtZSBvZiBhdHRyaWJ1dGUgd2hpY2ggY2FuIGlkZW50aWZ5IHRoZSB1c2VyIGluIE9JREMgY2xhaW1zXCIsXCJ1c2VybmFtZV9kZXRhaWxcIjpcIlNwZWNpZmljYXRpb24gb2YgbWFwcGluZ3MgZm9yIDxjb2RlPnVzZXJuYW1lPC9jb2RlPiB3aGVuIGNyZWF0aW5nIG5ldyB1c2Vyc1wiLFwibmFtZV9kZXRhaWxcIjpcIlNwZWNpZmljYXRpb24gb2YgbWFwcGluZ3MgZm9yIDxjb2RlPm5hbWU8L2NvZGU+IHdoZW4gY3JlYXRpbmcgbmV3IHVzZXJzXCIsXCJtYXBwaW5nX2RldGFpbFwiOlwiU3BlY2lmaWNhdGlvbiBvZiBtYXBwaW5ncyBmb3IgJXMgd2hlbiBjcmVhdGluZyBuZXcgdXNlcnNcIixcInJlZ2lzdGVyXzFcIjpcIkNvbnRhbnQgdG8gT0lEQyBJZFAgQWRtaW5pc3RyYXRvclwiLFwicmVnaXN0ZXJfMlwiOlwiUmVnaXN0ZXIgeW91ciBPSURDIEFwcCB3aXRoIFxcXCJBdXRob3JpemF0aW9uIGNhbGxiYWNrIFVSTFxcXCIgYXMgPGNvZGU+JXM8L2NvZGU+XCIsXCJyZWdpc3Rlcl8zXCI6XCJDb3B5IGFuZCBwYXN0ZSB5b3VyIENsaWVudElEIGFuZCBDbGllbnQgU2VjcmV0IGFib3ZlXCIsXCJ1cGRhdGVkX29pZGNcIjpcIlN1Y2NlZWRlZCB0byB1cGRhdGUgT3BlbklEIENvbm5lY3RcIixcIlVzZSBkaXNjb3ZlcmVkIFVSTCBpZiBlbXB0eVwiOlwiVXNlIGRpc2NvdmVyZWQgVVJMIGZyb20gXFxcIklzc3VlciBIb3N0XFxcIiBpZiBlbXB0eVwifSxcImhvd190b1wiOntcImdvb2dsZVwiOlwiSG93IHRvIGNvbmZpZ3VyZSBHb29nbGUgT0F1dGg/XCIsXCJnaXRodWJcIjpcIkhvdyB0byBjb25maWd1cmUgR2l0SHViIE9BdXRoP1wiLFwidHdpdHRlclwiOlwiSG93IHRvIGNvbmZpZ3VyZSBUd2l0dGVyIE9BdXRoP1wiLFwib2lkY1wiOlwiSG93IHRvIGNvbmZpZ3VyZSBPSURDP1wifX0sXCJmb3JtX2l0ZW1fbmFtZVwiOntcImVudHJ5UG9pbnRcIjpcIkVudHJ5IHBvaW50XCIsXCJpc3N1ZXJcIjpcIklzc3VlclwiLFwiY2VydFwiOlwiQ2VydGlmaWNhdGVcIixcImF0dHJNYXBJZFwiOlwiSURcIixcImF0dHJNYXBVc2VybmFtZVwiOlwiVXNlcm5hbWVcIixcImF0dHJNYXBNYWlsXCI6XCJNYWlsIEFkZHJlc3NcIixcImF0dHJNYXBGaXJzdE5hbWVcIjpcIkZpcnN0IE5hbWVcIixcImF0dHJNYXBMYXN0TmFtZVwiOlwiTGFzdCBOYW1lXCIsXCJBQkxDUnVsZVwiOlwiUnVsZVwifX0sXCJub3RpZmljYXRpb25fc2V0dGluZ1wiOntcInNsYWNrX2luY29taW5nX2NvbmZpZ3VyYXRpb25cIjpcIlNsYWNrIEluY29taW5nIFdlYmhvb2tzIGNvbmZpZ3VyYXRpb25cIixcInByaW9yaXRpemVfd2ViaG9va1wiOlwiUHJpb3JpdGl6ZSBpbmNvbWluZyB3ZWJob29rIHRoYW4gU2xhY2sgQXBwXCIsXCJwcmlvcml0aXplX3dlYmhvb2tfZGVzY1wiOlwiQ2hlY2sgdGhpcyBvcHRpb24gYW5kIEdST1dJIHVzZSBJbmNvbWluZyBXZWJob29rcyBldmVuIGlmIFNsYWNrIEFwcCBzZXR0aW5ncyBhcmUgZW5hYmxlZC5cIixcInNsYWNrX2FwcF9jb25maWd1cmF0aW9uXCI6XCJTbGFjayBhcHAgY29uZmlndXJhdGlvblwiLFwic2xhY2tfYXBwX2NvbmZpZ3VyYXRpb25fZGVzY1wiOlwiVGhpcyBpcyB0aGUgd2F5IHRoYXQgY29tcGF0aWJsZSB3aXRoIENyb3dpLDxiciAvPiBidXQgbm90IHJlY29tbWVuZGVkIGluIEdST1dJIGJlY2F1c2UgaXQgaXMgPHN0cm9uZz50b28gY29tcGxleDwvc3Ryb25nPi5cIixcInVzZV9pbnN0ZWFkXCI6XCJQbGVhc2UgdXNlIFNsYWNrIEluY29taW5nIFdlYmhvb2tzIENvbmZpZ3VyYXRpb24gaW5zdGVhZC5cIixcImhvd190b1wiOntcImhlYWRlclwiOlwiSG93IHRvIGNvbmZpZ3VyZSBJbmNvbWluZyBXZWJob29rcz9cIixcIndvcmtzcGFjZVwiOlwiKEF0IFdvcmtzcGFjZSkgQWRkIGEgaG9va1wiLFwid29ya3NwYWNlX2Rlc2MxXCI6XCJHbyB0byA8YSBocmVmPSdodHRwczovL3NsYWNrLmNvbS9zZXJ2aWNlcy9uZXcvaW5jb21pbmctd2ViaG9vayc+SW5jb21pbmcgV2ViaG9va3MgY29uZmlndXJhdGlvbiBwYWdlPC9hPi5cIixcIndvcmtzcGFjZV9kZXNjMlwiOlwiQ2hvb3NlIHRoZSBkZWZhdWx0IGNoYW5uZWwgdG8gcG9zdC5cIixcIndvcmtzcGFjZV9kZXNjM1wiOlwiQWRkLlwiLFwiYXRfZ3Jvd2lcIjpcIihBdCBHUk9XSSBhZG1pbiBwYWdlKSBTZXQgV2ViaG9vayBVUkxcIixcImF0X2dyb3dpX2Rlc2NcIjpcIklucHV0ICZyZHF1bztXZWJob29rIFVSTCZyZHF1bzsgYW5kIHN1Ym1pdCBvbiB0aGlzIHBhZ2UuXCJ9LFwidXNlcl90cmlnZ2VyX25vdGlmaWNhdGlvbl9oZWFkZXJcIjpcIkRlZmF1bHQgbm90aWZpY2F0aW9uIHNldHRpbmdzIGZvciBwYXR0ZXJuc1wiLFwicGF0dGVyblwiOlwiUGF0dGVyblwiLFwiY2hhbm5lbFwiOlwiQ2hhbm5lbFwiLFwicGF0dGVybl9kZXNjXCI6XCJQYXRoIG5hbWUgb2Ygd2lraS4gUGF0dGVybiBleHByZXNzaW9uIHdpdGggPGNvZGU+KjwvY29kZT4gY2FuIGJlIHVzZWQuXCIsXCJjaGFubmVsX2Rlc2NcIjpcIlNsYWNrIGNoYW5uZWwgbmFtZS4gV2l0aG91dCA8Y29kZT4jPC9jb2RlPi5cIixcInZhbGlkX3BhZ2VcIjpcIuWQr+eUqC/npoHnlKjpgJrnn6VcIixcImxpbmtfbm90aWZpY2F0aW9uX2hlbHBcIjpcIjxzdHJvbmc+5Y+q5pyJ6YKj5Lqb55+l6YGT4oCc6ZO+5o6l55qE5Lu75L2V5Lq64oCd6ZO+5o6l55qE5Lq65omN6IO95p+l55yL55qE6aG16Z2i5bm25LiN5oC75piv5b6X5Yiw6YCa55+l44CCPC9zdHJvbmc+IFwiLFwianVzdF9tZV9ub3RpZmljYXRpb25faGVscFwiOlwiPHN0cm9uZz7ooqvigJzku4XpmZDmiJHigJ3pmZDliLbnmoTpobXlnKjnvJbovpHml7booqvpgJrnn6XjgII8L3N0cm9uZz5cIixcImdyb3VwX25vdGlmaWNhdGlvbl9oZWxwXCI6XCI8c3Ryb25nPuiiq+KAnOeUqOaIt+e7hOKAnemZkOWItueahOmhtemdouWcqOe8lui+keaXtuiiq+mAmuefpeOAgjwvc3Ryb25nPlwiLFwibm90aWZpY2F0aW9uX2xpc3RcIjpcIkxpc3Qgb2Ygbm90aWZpY2F0aW9uIHNldHRpbmdzXCIsXCJhZGRfbm90aWZpY2F0aW9uXCI6XCJBZGQgbmV3XCIsXCJ0cmlnZ2VyX3BhdGhcIjpcIlRyaWdnZXIgcGF0aFwiLFwidHJpZ2dlcl9wYXRoX2hlbHBcIjpcIihleHByZXNzaW9uIHdpdGggPGNvZGU+KjwvY29kZT4gaXMgc3VwcG9ydGVkKVwiLFwidHJpZ2dlcl9ldmVudHNcIjpcIlRyaWdnZXIgZXZlbnRzXCIsXCJub3RpZnlfdG9cIjpcIk5vdGlmeSB0b1wiLFwiYmFja190b19saXN0XCI6XCJHbyBiYWNrIHRvIGxpc3RcIixcIm5vdGlmaWNhdGlvbl9kZXRhaWxcIjpcIk5vdGlmaWNhdGlvbiBTZXR0aW5nIERldGFpbHNcIixcImV2ZW50X3BhZ2VDcmVhdGVcIjpcIldoZW4gbmV3IHBhZ2UgaXMgXFxcIkNSRUFURURcXFwiXCIsXCJldmVudF9wYWdlRWRpdFwiOlwiV2hlbiBwYWdlIGlzIFxcXCJFRElURURcXFwiXCIsXCJldmVudF9wYWdlRGVsZXRlXCI6XCJXaGVuIHBhZ2UgaXMgXFxcIkRFTEVURURcXFwiXCIsXCJldmVudF9wYWdlTW92ZVwiOlwiV2hlbiBwYWdlIGlzIFxcXCJNT1ZFRFxcXCIgKHJlbmFtZWQpXCIsXCJldmVudF9wYWdlTGlrZVwiOlwiV2hlbiBzb21lb25lIFxcXCJMSUtFU1xcXCIgcGFnZVwiLFwiZXZlbnRfY29tbWVudFwiOlwiV2hlbiBzb21lb25lIFxcXCJDT01NRU5UU1xcXCIgb24gcGFnZVwiLFwiZW1haWxcIjp7XCJpZnR0dF9saW5rXCI6XCJDcmVhdGUgYSBuZXcgSUZUVFQgYXBwbGV0IHdpdGggRW1haWwgdHJpZ2dlclwifSxcInVwZGF0ZWRfc2xhY2tBcHBcIjpcIlN1Y2NlZWRlZCB0byB1cGRhdGUgU2xhY2sgQXBwIENvbmZpZ3VyYXRpb24gc2V0dGluZ1wiLFwiYWRkX25vdGlmaWNhdGlvbl9wYXR0ZXJuXCI6XCJBZGQgdXNlciB0cmlnZ2VyIG5vdGlmaWNhdGlvbiBwYXR0ZXJuc1wiLFwiZGVsZXRlX25vdGlmaWNhdGlvbl9wYXR0ZXJuXCI6XCJEZWxldGUgbm90aWZpY2F0aW9uIHBhdHRlcm5cIixcImRlbGV0ZV9ub3RpZmljYXRpb25fcGF0dGVybl9kZXNjMVwiOlwiRGVsZXRlIFBhdGg6IHt7cGF0aH19XCIsXCJkZWxldGVfbm90aWZpY2F0aW9uX3BhdHRlcm5fZGVzYzJcIjpcIk9uY2UgZGVsZXRlZCwgaXQgY2Fubm90IGJlIHJlY292ZXJlZFwiLFwidG9nZ2xlX25vdGlmaWNhdGlvblwiOlwiVXBkYXRlZCBzZXR0aW5nIG9mIHt7cGF0aH19XCJ9LFwiZnVsbF90ZXh0X3NlYXJjaF9tYW5hZ2VtZW50XCI6e1wiZWxhc3RpY3NlYXJjaF9tYW5hZ2VtZW50XCI6XCJFbGFzdGljc2VhcmNo566h55CGXCIsXCJjb25uZWN0aW9uX3N0YXR1c1wiOlwi6L+e5o6l54q25oCBXCIsXCJjb25uZWN0aW9uX3N0YXR1c19sYWJlbF91bmNvbmZpZ3VyZWRcIjpcIuacqumFjee9rlwiLFwiY29ubmVjdGlvbl9zdGF0dXNfbGFiZWxfY29ubmVjdGVkXCI6XCLlt7Lov57mjqVcIixcImNvbm5lY3Rpb25fc3RhdHVzX2xhYmVsX2Rpc2Nvbm5lY3RlZFwiOlwi5pat5byA55qEXCIsXCJjb25uZWN0aW9uX3N0YXR1c19sYWJlbF9lcnJvcm9jY3VyZWRcIjpcIuaQnOe0ouacjeWKoeWHuumUmVwiLFwiaW5kaWNlc19zdGF0dXNcIjpcIue0ouW8leeKtuaAgVwiLFwiaW5kaWNlc19zdGF0dXNfbGFiZWxfbm9ybWFsaXplZFwiOlwi5qCH5YeG5YyWXCIsXCJpbmRpY2VzX3N0YXR1c19sYWJlbF91bm5vcm1hbGl6ZWRcIjpcIumHjeW7uuaIluaNn+Wdj1wiLFwiaW5kaWNlc19zdW1tYXJ5XCI6XCLntKLlvJXmkZjopoFcIixcInJlY29ubmVjdFwiOlwi6YeN5paw6L+e5o6lXCIsXCJyZWNvbm5lY3RfYnV0dG9uXCI6XCLlsJ3or5Xph43mlrDov57mjqVcIixcInJlY29ubmVjdF9kZXNjcmlwdGlvblwiOlwi5Y2V5Ye75oyJ6ZKu5bCd6K+V6YeN5paw6L+e5o6l5YiwRWxhc3RpY3NlYXJjaOOAglwiLFwibm9ybWFsaXplXCI6XCLop4TojIPljJZcIixcIm5vcm1hbGl6ZV9idXR0b25cIjpcIuinhOiMg+WMlue0ouW8lVwiLFwibm9ybWFsaXplX2Rlc2NyaXB0aW9uXCI6XCLljZXlh7vmjInpkq7kv67lpI3mjZ/lnY/nmoTntKLlvJXjgIJcIixcInJlYnVpbGRcIjpcIumHjeW7ulwiLFwicmVidWlsZF9idXR0b25cIjpcIumHjeW7uue0ouW8lVwiLFwicmVidWlsZF9kZXNjcmlwdGlvbl8xXCI6XCLljZXlh7vmjInpkq7ku6Xph43mlrDnlJ/miJDntKLlvJXlubbmt7vliqDmiYDmnInpobXpnaLmlbDmja7jgIJcIixcInJlYnVpbGRfZGVzY3JpcHRpb25fMlwiOlwi6L+Z5Y+v6IO96ZyA6KaB5LiA5q615pe26Ze044CCXCJ9LFwicGVyc29uYWxfZHJvcGRvd25cIjp7XCJob21lXCI6XCLlrrZcIixcInNldHRpbmdzXCI6XCLorr7nva5cIixcImNvbG9yX21vZGVcIjpcIuminOiJsuaooeW8j1wiLFwic2lkZWJhcl9tb2RlXCI6XCLovrnmoI/mqKHlvI9cIixcInNpZGViYXJfbW9kZV9lZGl0b3JcIjpcIue8lui+keWZqOS4iueahOi+ueagj+aooeW8j1wiLFwidXNlX29zX3NldHRpbmdzXCI6XCLkvb/nlKjmk43kvZzns7vnu5/orr7nva5cIn0sXCJzZWFyY2hfcmVzdWx0XCI6e1wicmVzdWx0X21ldGFcIjpcIuWcqHt7dG90YWx95Lit5om+5Yiw5LqGe3trZXl3b3JkfeOAglwiLFwiZGVsZXRpb25fbW9kZV9idG5fbGF2ZWxcIjpcIumAieaLqeW5tuWIoOmZpOmhtemdolwiLFwiY2FuY2VsXCI6XCLlj5bmtohcIixcImRlbGV0ZVwiOlwi5Yig6ZmkXCIsXCJjaGVja19hbGxcIjpcIuWFqOmDqOajgOafpVwiLFwiZGVsZXRpb25fbW9kYWxfaGVhZGVyXCI6XCLliKDpmaTpobVcIixcImRlbGV0ZV9jb21wbGV0ZWx5XCI6XCLlrozlhajliKDpmaRcIn0sXCJ0b19jbG91ZF9zZXR0aW5nc1wiOlwi6YCy5YWlIEdST1dJLmNsb3VkIOeahOeuoeeQhueVjOmdolwiLFwibG9naW5cIjp7XCJTaWduIGluIGVycm9yXCI6XCLnmbvlvZXplJnor69cIixcIlJlZ2lzdHJhdGlvbiBzdWNjZXNzZnVsXCI6XCLms6jlhozmiJDlip9cIixcIlNldHVwXCI6XCLlronoo4XnqIvluo9cIn0sXCJleHBvcnRfYnVsa1wiOntcImZhaWxlZF90b19leHBvcnRcIjpcIuWvvOWHuuWksei0pVwiLFwiZmFpbGVkX3RvX2NvdW50X3BhZ2VzXCI6XCLpobXpnaLorqHmlbDlpLHotKVcIixcImV4cG9ydF9wYWdlX21hcmtkb3duXCI6XCLku6VNYXJrZG93buagvOW8j+WvvOWHuumhtemdolwiLFwiZXhwb3J0X3BhZ2VfcGRmXCI6XCLku6VQREbmoLzlvI/lr7zlh7rpobXpnaJcIn0sXCJtZXNzYWdlXCI6e1wic3VjY2Vzc2Z1bGx5X2Nvbm5lY3RlZFwiOlwi6L+e5o6l5oiQ5Yqf77yBXCIsXCJmYWlsX3RvX3NhdmVfYWNjZXNzX3Rva2VuXCI6XCLml6Dms5Xkv53lrZjorr/pl67ku6TniYzjgILor7flho3or5XkuIDmrKHjgIJcIixcImZhaWxfdG9fZmV0Y2hfYWNjZXNzX3Rva2VuXCI6XCLml6Dms5Xojrflj5borr/pl67ku6TniYzjgILor7fph43mlrDov57mjqXjgIJcIixcInN1Y2Nlc3NmdWxseV9kaXNjb25uZWN0ZWRcIjpcIuaIkOWKn+aWreW8gOi/nuaOpe+8gVwiLFwic3RyYXRlZ3lfaGFzX25vdF9iZWVuX3NldF91cFwiOlwie3tzdHJhdGVneX3lsJrmnKrorr7nva5cIixcIm1heGltdW1fbnVtYmVyX29mX3VzZXJzXCI6XCLms6jlhoznmoTnlKjmiLfmlbDkuI3og73otoXov4fmnIDlpKflgLzjgIJcIixcImRhdGFiYXNlX2Vycm9yXCI6XCLlj5HnlJ/mlbDmja7lupPmnI3liqHlmajplJnor69cIixcInNpZ25faW5fZmFpbHVyZVwiOlwi55m75b2V5aSx6LSl44CCXCIsXCJhd3Nfc3R0aW5nc19yZXF1aXJlZFwiOlwi5L2/55So5q2k5Yqf6IO95omA6ZyA55qEQVdT6K6+572u44CC6K+36K+i6Zeu566h55CG5ZGY44CCXCIsXCJhcHBsaWNhdGlvbl9hbHJlYWR5X2luc3RhbGxlZFwiOlwi5bqU55So56iL5bqP5bey5a6J6KOF44CCXCIsXCJlbWFpbF9hZGRyZXNzX2NvdWxkX25vdF9iZV91c2VkXCI6XCLml6Dms5Xkvb/nlKjmraTnlLXlrZDpgq7ku7blnLDlnYDjgILvvIjnoa7kv53lhYHorrjnmoTnlLXlrZDpgq7ku7blnLDlnYDvvIlcIixcInVzZXJfaWRfaXNfbm90X2F2YWlsYWJsZS5cIjpcIuatpOeUqOaIt0lE5LiN5Y+v55So44CCXCIsXCJlbWFpbF9hZGRyZXNzX2lzX2FscmVhZHlfcmVnaXN0ZXJlZFwiOlwi5q2k55S15a2Q6YKu5Lu25Zyw5Z2A5bey5rOo5YaM44CCXCIsXCJjYW5fbm90X3JlZ2lzdGVyX21heGltdW1fbnVtYmVyX29mX3VzZXJzXCI6XCLms6jlhoznmoTnlKjmiLfmlbDkuI3og73otoXov4fmnIDlpKflgLzjgIJcIixcImZhaWxlZF90b19yZWdpc3RlclwiOlwi5rOo5YaM5aSx6LSl44CCXCIsXCJzdWNjZXNzZnVsbHlfY3JlYXRlZFwiOlwi5bey5oiQ5Yqf5Yib5bu655So5oi3e3t1c2VybmFtZX3jgIJcIixcImNhbl9ub3RfYWN0aXZhdGVfbWF4aW11bV9udW1iZXJfb2ZfdXNlcnNcIjpcIuaXoOazlea/gOa0u+i2hei/h+acgOWkp+eUqOaIt+aVsOeahOeUqOaIt+OAglwiLFwiZmFpbGVkX3RvX2FjdGl2YXRlXCI6XCLml6Dms5Xmv4DmtLvjgIJcIixcInVuYWJsZV90b191c2VfdGhpc191c2VyXCI6XCLml6Dms5Xkvb/nlKjmraTnlKjmiLfjgIJcIixcImNvbXBsZXRlX3RvX2luc3RhbGwxXCI6XCLlrozmiJDlronoo4VHUk9XSe+8geivt+S7peeuoeeQhuWRmOW4kOaIt+eZu+W9leOAglwiLFwiY29tcGxldGVfdG9faW5zdGFsbDJcIjpcIuWujOaIkOWuieijhUdST1dJ77yB6K+35YWI5qOA5p+l5q2k6aG15LiK55qE5q+P5Liq6K6+572u44CCXCIsXCJmYWlsZWRfdG9fY3JlYXRlX2FkbWluX3VzZXJcIjpcIuaXoOazleWIm+W7uueuoeeQhueUqOaIt+OAgnt7ZXJyTWVzc2FnZX1cIn0sXCJncmlkX2VkaXRcIjp7XCJjcmVhdGVfYm9vdHN0cmFwXzRfZ3JpZFwiOlwi5Yib5bu6Qm9vdHN0cmFwIDTnvZHmoLxcIixcImdyaWRfc2V0dGluZ3NcIjpcIue9keagvOiuvue9rlwiLFwiZ3JpZF9wYXR0ZXJuXCI6XCLnvZHmoLzmoLflvI9cIixcImRpdmlzaW9uXCI6XCLliIblibJcIixcInNtYXJ0X25vXCI6XCLmiYvmnLov5LiN5YiG5YmyXCIsXCJicmVha19wb2ludFwiOlwi5oyJ55S76Z2i5aSn5bCP5YiG5YmyXCJ9LFwidmFsaWRhdGlvblwiOntcImF3c19yZWdpb25cIjpcIuWFs+S6juWcsOWMuu+8jOivt+i+k+WFpUFXU+WcsOWMuuWQje+8jOS+i+Wmgu+8mmFwLWVhc3QtMVwiLFwiYXdzX2N1c3RvbV9lbmRwb2ludFwiOlwi5YWz5LqO6Ieq5a6a5LmJ56uv54K577yM6K+35oyH5a6a5LulaHR0cChzKTovL+W8gOWktOeahFVSTO+8jOmTvuaOpeacq+WwvuS4jemcgOimgea3u+WKoOKAnC/igJ1cIixcImZhaWxlZF90b19zZW5kX2FfdGVzdF9lbWFpbFwiOlwiU01UUOaWueW8j+a1i+ivlemCruS7tuWPkemAgeWksei0pe+8jOivt+ajgOafpeebuOWFs+iuvuWumuOAglwifX19fSJdLCJtYXBwaW5ncyI6IkFBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBIiwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./resource/locales/index.js\n");
- /***/ }),
- /***/ "./src/client/js/base.jsx":
- /*!********************************!*\
- !*** ./src/client/js/base.jsx ***!
- \********************************/
- /*! exports provided: appContainer, componentMappings */
- /***/ (function(module, __webpack_exports__, __webpack_require__) {
- "use strict";
- eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"appContainer\", function() { return appContainer; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"componentMappings\", function() { return componentMappings; });\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"./node_modules/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var _alias_logger__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @alias/logger */ \"./src/lib/service/logger/index.js\");\n/* harmony import */ var _alias_logger__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_alias_logger__WEBPACK_IMPORTED_MODULE_1__);\n/* harmony import */ var _commons_service_xss__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @commons/service/xss */ \"./src/lib/service/xss/index.js\");\n/* harmony import */ var _commons_service_xss__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(_commons_service_xss__WEBPACK_IMPORTED_MODULE_2__);\n/* harmony import */ var _components_Navbar_GrowiNavbar__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./components/Navbar/GrowiNavbar */ \"./src/client/js/components/Navbar/GrowiNavbar.jsx\");\n/* harmony import */ var _components_Navbar_GrowiNavbarBottom__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./components/Navbar/GrowiNavbarBottom */ \"./src/client/js/components/Navbar/GrowiNavbarBottom.jsx\");\n/* harmony import */ var _components_Hotkeys_HotkeysManager__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./components/Hotkeys/HotkeysManager */ \"./src/client/js/components/Hotkeys/HotkeysManager.jsx\");\n/* harmony import */ var _services_AppContainer__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./services/AppContainer */ \"./src/client/js/services/AppContainer.js\");\n/* harmony import */ var _services_SocketIoContainer__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./services/SocketIoContainer */ \"./src/client/js/services/SocketIoContainer.js\");\n/* harmony import */ var _components_PageCreateModal__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ./components/PageCreateModal */ \"./src/client/js/components/PageCreateModal.jsx\");\n\n\n\n\n\n\n\n\n\nconst logger = _alias_logger__WEBPACK_IMPORTED_MODULE_1___default()('growi:cli:app');\n\nif (!window) {\n window = {};\n} // setup xss library\n\n\nconst xss = new _commons_service_xss__WEBPACK_IMPORTED_MODULE_2___default.a();\nwindow.xss = xss; // create unstated container instance\n\nconst appContainer = new _services_AppContainer__WEBPACK_IMPORTED_MODULE_6__[\"default\"](); // eslint-disable-next-line no-unused-vars\n\nconst socketIoContainer = new _services_SocketIoContainer__WEBPACK_IMPORTED_MODULE_7__[\"default\"](appContainer);\nappContainer.initApp();\nlogger.info('AppContainer has been initialized');\n/**\n * define components\n * key: id of element\n * value: React Element\n */\n\nconst componentMappings = {\n 'grw-navbar': react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(_components_Navbar_GrowiNavbar__WEBPACK_IMPORTED_MODULE_3__[\"default\"], null),\n 'grw-navbar-bottom-container': react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(_components_Navbar_GrowiNavbarBottom__WEBPACK_IMPORTED_MODULE_4__[\"default\"], null),\n 'page-create-modal': react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(_components_PageCreateModal__WEBPACK_IMPORTED_MODULE_8__[\"default\"], null),\n 'grw-hotkeys-manager': react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(_components_Hotkeys_HotkeysManager__WEBPACK_IMPORTED_MODULE_5__[\"default\"], null)\n};\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9zcmMvY2xpZW50L2pzL2Jhc2UuanN4LmpzIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vLy4vc3JjL2NsaWVudC9qcy9iYXNlLmpzeD9hNmZmIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBSZWFjdCBmcm9tICdyZWFjdCc7XG5cbmltcG9ydCBsb2dnZXJGYWN0b3J5IGZyb20gJ0BhbGlhcy9sb2dnZXInO1xuaW1wb3J0IFhzcyBmcm9tICdAY29tbW9ucy9zZXJ2aWNlL3hzcyc7XG5cbmltcG9ydCBHcm93aU5hdmJhciBmcm9tICcuL2NvbXBvbmVudHMvTmF2YmFyL0dyb3dpTmF2YmFyJztcbmltcG9ydCBHcm93aU5hdmJhckJvdHRvbSBmcm9tICcuL2NvbXBvbmVudHMvTmF2YmFyL0dyb3dpTmF2YmFyQm90dG9tJztcbmltcG9ydCBIb3RrZXlzTWFuYWdlciBmcm9tICcuL2NvbXBvbmVudHMvSG90a2V5cy9Ib3RrZXlzTWFuYWdlcic7XG5cbmltcG9ydCBBcHBDb250YWluZXIgZnJvbSAnLi9zZXJ2aWNlcy9BcHBDb250YWluZXInO1xuaW1wb3J0IFNvY2tldElvQ29udGFpbmVyIGZyb20gJy4vc2VydmljZXMvU29ja2V0SW9Db250YWluZXInO1xuaW1wb3J0IFBhZ2VDcmVhdGVNb2RhbCBmcm9tICcuL2NvbXBvbmVudHMvUGFnZUNyZWF0ZU1vZGFsJztcblxuY29uc3QgbG9nZ2VyID0gbG9nZ2VyRmFjdG9yeSgnZ3Jvd2k6Y2xpOmFwcCcpO1xuXG5pZiAoIXdpbmRvdykge1xuICB3aW5kb3cgPSB7fTtcbn1cblxuLy8gc2V0dXAgeHNzIGxpYnJhcnlcbmNvbnN0IHhzcyA9IG5ldyBYc3MoKTtcbndpbmRvdy54c3MgPSB4c3M7XG5cbi8vIGNyZWF0ZSB1bnN0YXRlZCBjb250YWluZXIgaW5zdGFuY2VcbmNvbnN0IGFwcENvbnRhaW5lciA9IG5ldyBBcHBDb250YWluZXIoKTtcbi8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuby11bnVzZWQtdmFyc1xuY29uc3Qgc29ja2V0SW9Db250YWluZXIgPSBuZXcgU29ja2V0SW9Db250YWluZXIoYXBwQ29udGFpbmVyKTtcblxuYXBwQ29udGFpbmVyLmluaXRBcHAoKTtcblxubG9nZ2VyLmluZm8oJ0FwcENvbnRhaW5lciBoYXMgYmVlbiBpbml0aWFsaXplZCcpO1xuXG4vKipcbiAqIGRlZmluZSBjb21wb25lbnRzXG4gKiAga2V5OiBpZCBvZiBlbGVtZW50XG4gKiAgdmFsdWU6IFJlYWN0IEVsZW1lbnRcbiAqL1xuY29uc3QgY29tcG9uZW50TWFwcGluZ3MgPSB7XG4gICdncnctbmF2YmFyJzogPEdyb3dpTmF2YmFyIC8+LFxuICAnZ3J3LW5hdmJhci1ib3R0b20tY29udGFpbmVyJzogPEdyb3dpTmF2YmFyQm90dG9tIC8+LFxuXG4gICdwYWdlLWNyZWF0ZS1tb2RhbCc6IDxQYWdlQ3JlYXRlTW9kYWwgLz4sXG5cbiAgJ2dydy1ob3RrZXlzLW1hbmFnZXInOiA8SG90a2V5c01hbmFnZXIgLz4sXG5cbn07XG5cbmV4cG9ydCB7IGFwcENvbnRhaW5lciwgY29tcG9uZW50TWFwcGluZ3MgfTtcbiJdLCJtYXBwaW5ncyI6IkFBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFFQTtBQUNBO0FBRUE7QUFDQTtBQUNBO0FBRUE7QUFDQTtBQUNBO0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFFQTtBQUNBO0FBQ0E7QUFFQTtBQUVBO0FBRUE7Ozs7OztBQUtBO0FBQ0E7QUFDQTtBQUVBO0FBRUE7QUFOQTsiLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./src/client/js/base.jsx\n");
- /***/ }),
- /***/ "./src/client/js/components/Admin/Security/LdapAuthTest.jsx":
- /*!******************************************************************!*\
- !*** ./src/client/js/components/Admin/Security/LdapAuthTest.jsx ***!
- \******************************************************************/
- /*! exports provided: default */
- /***/ (function(module, __webpack_exports__, __webpack_require__) {
- "use strict";
- eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"./node_modules/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! prop-types */ \"./node_modules/prop-types/index.js\");\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(prop_types__WEBPACK_IMPORTED_MODULE_1__);\n/* harmony import */ var react_i18next__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! react-i18next */ \"./node_modules/react-i18next/dist/es/index.js\");\n/* harmony import */ var _alias_logger__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @alias/logger */ \"./src/lib/service/logger/index.js\");\n/* harmony import */ var _alias_logger__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(_alias_logger__WEBPACK_IMPORTED_MODULE_3__);\n/* harmony import */ var _UnstatedUtils__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../../UnstatedUtils */ \"./src/client/js/components/UnstatedUtils.jsx\");\n/* harmony import */ var _util_apiNotification__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../../../util/apiNotification */ \"./src/client/js/util/apiNotification.js\");\n/* harmony import */ var _services_AppContainer__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../../../services/AppContainer */ \"./src/client/js/services/AppContainer.js\");\n/* harmony import */ var _services_AdminLdapSecurityContainer__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ../../../services/AdminLdapSecurityContainer */ \"./src/client/js/services/AdminLdapSecurityContainer.js\");\n\n\n\n\n\n\n\n\nconst logger = _alias_logger__WEBPACK_IMPORTED_MODULE_3___default()('growi:security:AdminLdapSecurityContainer');\n\nclass LdapAuthTest extends react__WEBPACK_IMPORTED_MODULE_0___default.a.Component {\n constructor(props) {\n super(props);\n this.state = {\n logs: '',\n errorMessage: null,\n successMessage: null\n };\n this.addLogs = this.addLogs.bind(this);\n this.testLdapCredentials = this.testLdapCredentials.bind(this);\n }\n /**\n * add logs\n */\n\n\n addLogs(log) {\n const newLog = `${new Date()} - ${log}\\n\\n`;\n this.setState({\n logs: `${newLog}${this.state.logs}`\n });\n }\n /**\n * Test ldap auth\n */\n\n\n async testLdapCredentials() {\n try {\n const response = await this.props.appContainer.apiPost('/login/testLdap', {\n loginForm: {\n username: this.props.username,\n password: this.props.password\n }\n }); // add logs\n\n if (response.err) {\n Object(_util_apiNotification__WEBPACK_IMPORTED_MODULE_5__[\"toastError\"])(response.err);\n this.addLogs(response.err);\n }\n\n if (response.status === 'warning') {\n this.addLogs(response.message);\n this.setState({\n errorMessage: response.message,\n successMessage: null\n });\n }\n\n if (response.status === 'success') {\n Object(_util_apiNotification__WEBPACK_IMPORTED_MODULE_5__[\"toastSuccess\"])(response.message);\n this.setState({\n successMessage: response.message,\n errorMessage: null\n });\n }\n\n if (response.ldapConfiguration) {\n const prettified = JSON.stringify(response.ldapConfiguration.server, undefined, 4);\n this.addLogs(`LDAP Configuration : ${prettified}`);\n }\n\n if (response.ldapAccountInfo) {\n const prettified = JSON.stringify(response.ldapAccountInfo, undefined, 4);\n this.addLogs(`Retrieved LDAP Account : ${prettified}`);\n }\n } // Catch server communication error\n catch (err) {\n Object(_util_apiNotification__WEBPACK_IMPORTED_MODULE_5__[\"toastError\"])(err);\n logger.error(err);\n }\n }\n\n render() {\n const {\n t\n } = this.props;\n return react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(react__WEBPACK_IMPORTED_MODULE_0___default.a.Fragment, null, this.state.successMessage != null && react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"div\", {\n className: \"alert alert-success\"\n }, this.state.successMessage), this.state.errorMessage != null && react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"div\", {\n className: \"alert alert-warning\"\n }, this.state.errorMessage), react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"div\", {\n className: \"form-group row\"\n }, react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"label\", {\n htmlFor: \"username\",\n className: \"col-3 col-form-label\"\n }, t('username')), react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"div\", {\n className: \"col-6\"\n }, react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"input\", {\n className: \"form-control\",\n name: \"username\",\n value: this.props.username,\n onChange: e => {\n this.props.onChangeUsername(e.target.value);\n }\n }))), react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"div\", {\n className: \"form-group row\"\n }, react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"label\", {\n htmlFor: \"password\",\n className: \"col-3 col-form-label\"\n }, t('Password')), react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"div\", {\n className: \"col-6\"\n }, react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"input\", {\n className: \"form-control\",\n type: \"password\",\n name: \"password\",\n value: this.props.password,\n onChange: e => {\n this.props.onChangePassword(e.target.value);\n }\n }))), react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"div\", {\n className: \"form-group\"\n }, react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"label\", null, react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"h5\", null, \"Logs\")), react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"textarea\", {\n id: \"taLogs\",\n className: \"col form-control\",\n rows: \"4\",\n value: this.state.logs,\n readOnly: true\n })), react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"div\", null, react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"button\", {\n type: \"button\",\n className: \"btn btn-outline-secondary offset-5 col-2\",\n onClick: this.testLdapCredentials\n }, \"Test\")));\n }\n\n}\n\nLdapAuthTest.propTypes = {\n t: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.func.isRequired,\n // i18next\n appContainer: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.instanceOf(_services_AppContainer__WEBPACK_IMPORTED_MODULE_6__[\"default\"]).isRequired,\n adminLdapSecurityContainer: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.instanceOf(_services_AdminLdapSecurityContainer__WEBPACK_IMPORTED_MODULE_7__[\"default\"]).isRequired,\n username: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.string.isRequired,\n password: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.string.isRequired,\n onChangeUsername: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.func.isRequired,\n onChangePassword: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.func.isRequired\n};\nconst LdapAuthTestWrapper = Object(_UnstatedUtils__WEBPACK_IMPORTED_MODULE_4__[\"withUnstatedContainers\"])(LdapAuthTest, [_services_AppContainer__WEBPACK_IMPORTED_MODULE_6__[\"default\"], _services_AdminLdapSecurityContainer__WEBPACK_IMPORTED_MODULE_7__[\"default\"]]);\n/* harmony default export */ __webpack_exports__[\"default\"] = (Object(react_i18next__WEBPACK_IMPORTED_MODULE_2__[\"withTranslation\"])()(LdapAuthTestWrapper));//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9zcmMvY2xpZW50L2pzL2NvbXBvbmVudHMvQWRtaW4vU2VjdXJpdHkvTGRhcEF1dGhUZXN0LmpzeC5qcyIsInNvdXJjZXMiOlsid2VicGFjazovLy8uL3NyYy9jbGllbnQvanMvY29tcG9uZW50cy9BZG1pbi9TZWN1cml0eS9MZGFwQXV0aFRlc3QuanN4P2NhZjQiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IFJlYWN0IGZyb20gJ3JlYWN0JztcbmltcG9ydCBQcm9wVHlwZXMgZnJvbSAncHJvcC10eXBlcyc7XG5pbXBvcnQgeyB3aXRoVHJhbnNsYXRpb24gfSBmcm9tICdyZWFjdC1pMThuZXh0JztcbmltcG9ydCBsb2dnZXJGYWN0b3J5IGZyb20gJ0BhbGlhcy9sb2dnZXInO1xuXG5pbXBvcnQgeyB3aXRoVW5zdGF0ZWRDb250YWluZXJzIH0gZnJvbSAnLi4vLi4vVW5zdGF0ZWRVdGlscyc7XG5pbXBvcnQgeyB0b2FzdFN1Y2Nlc3MsIHRvYXN0RXJyb3IgfSBmcm9tICcuLi8uLi8uLi91dGlsL2FwaU5vdGlmaWNhdGlvbic7XG5cbmltcG9ydCBBcHBDb250YWluZXIgZnJvbSAnLi4vLi4vLi4vc2VydmljZXMvQXBwQ29udGFpbmVyJztcbmltcG9ydCBBZG1pbkxkYXBTZWN1cml0eUNvbnRhaW5lciBmcm9tICcuLi8uLi8uLi9zZXJ2aWNlcy9BZG1pbkxkYXBTZWN1cml0eUNvbnRhaW5lcic7XG5cbmNvbnN0IGxvZ2dlciA9IGxvZ2dlckZhY3RvcnkoJ2dyb3dpOnNlY3VyaXR5OkFkbWluTGRhcFNlY3VyaXR5Q29udGFpbmVyJyk7XG5cbmNsYXNzIExkYXBBdXRoVGVzdCBleHRlbmRzIFJlYWN0LkNvbXBvbmVudCB7XG5cbiAgY29uc3RydWN0b3IocHJvcHMpIHtcbiAgICBzdXBlcihwcm9wcyk7XG5cbiAgICB0aGlzLnN0YXRlID0ge1xuICAgICAgbG9nczogJycsXG4gICAgICBlcnJvck1lc3NhZ2U6IG51bGwsXG4gICAgICBzdWNjZXNzTWVzc2FnZTogbnVsbCxcbiAgICB9O1xuXG4gICAgdGhpcy5hZGRMb2dzID0gdGhpcy5hZGRMb2dzLmJpbmQodGhpcyk7XG4gICAgdGhpcy50ZXN0TGRhcENyZWRlbnRpYWxzID0gdGhpcy50ZXN0TGRhcENyZWRlbnRpYWxzLmJpbmQodGhpcyk7XG4gIH1cblxuICAvKipcbiAgICogYWRkIGxvZ3NcbiAgICovXG4gIGFkZExvZ3MobG9nKSB7XG4gICAgY29uc3QgbmV3TG9nID0gYCR7bmV3IERhdGUoKX0gLSAke2xvZ31cXG5cXG5gO1xuICAgIHRoaXMuc2V0U3RhdGUoe1xuICAgICAgbG9nczogYCR7bmV3TG9nfSR7dGhpcy5zdGF0ZS5sb2dzfWAsXG4gICAgfSk7XG4gIH1cblxuICAvKipcbiAgICogVGVzdCBsZGFwIGF1dGhcbiAgICovXG4gIGFzeW5jIHRlc3RMZGFwQ3JlZGVudGlhbHMoKSB7XG4gICAgdHJ5IHtcbiAgICAgIGNvbnN0IHJlc3BvbnNlID0gYXdhaXQgdGhpcy5wcm9wcy5hcHBDb250YWluZXIuYXBpUG9zdCgnL2xvZ2luL3Rlc3RMZGFwJywge1xuICAgICAgICBsb2dpbkZvcm06IHtcbiAgICAgICAgICB1c2VybmFtZTogdGhpcy5wcm9wcy51c2VybmFtZSxcbiAgICAgICAgICBwYXNzd29yZDogdGhpcy5wcm9wcy5wYXNzd29yZCxcbiAgICAgICAgfSxcbiAgICAgIH0pO1xuXG4gICAgICAvLyBhZGQgbG9nc1xuICAgICAgaWYgKHJlc3BvbnNlLmVycikge1xuICAgICAgICB0b2FzdEVycm9yKHJlc3BvbnNlLmVycik7XG4gICAgICAgIHRoaXMuYWRkTG9ncyhyZXNwb25zZS5lcnIpO1xuICAgICAgfVxuXG4gICAgICBpZiAocmVzcG9uc2Uuc3RhdHVzID09PSAnd2FybmluZycpIHtcbiAgICAgICAgdGhpcy5hZGRMb2dzKHJlc3BvbnNlLm1lc3NhZ2UpO1xuICAgICAgICB0aGlzLnNldFN0YXRlKHsgZXJyb3JNZXNzYWdlOiByZXNwb25zZS5tZXNzYWdlLCBzdWNjZXNzTWVzc2FnZTogbnVsbCB9KTtcbiAgICAgIH1cblxuICAgICAgaWYgKHJlc3BvbnNlLnN0YXR1cyA9PT0gJ3N1Y2Nlc3MnKSB7XG4gICAgICAgIHRvYXN0U3VjY2VzcyhyZXNwb25zZS5tZXNzYWdlKTtcbiAgICAgICAgdGhpcy5zZXRTdGF0ZSh7IHN1Y2Nlc3NNZXNzYWdlOiByZXNwb25zZS5tZXNzYWdlLCBlcnJvck1lc3NhZ2U6IG51bGwgfSk7XG4gICAgICB9XG5cbiAgICAgIGlmIChyZXNwb25zZS5sZGFwQ29uZmlndXJhdGlvbikge1xuICAgICAgICBjb25zdCBwcmV0dGlmaWVkID0gSlNPTi5zdHJpbmdpZnkocmVzcG9uc2UubGRhcENvbmZpZ3VyYXRpb24uc2VydmVyLCB1bmRlZmluZWQsIDQpO1xuICAgICAgICB0aGlzLmFkZExvZ3MoYExEQVAgQ29uZmlndXJhdGlvbiA6ICR7cHJldHRpZmllZH1gKTtcbiAgICAgIH1cbiAgICAgIGlmIChyZXNwb25zZS5sZGFwQWNjb3VudEluZm8pIHtcbiAgICAgICAgY29uc3QgcHJldHRpZmllZCA9IEpTT04uc3RyaW5naWZ5KHJlc3BvbnNlLmxkYXBBY2NvdW50SW5mbywgdW5kZWZpbmVkLCA0KTtcbiAgICAgICAgdGhpcy5hZGRMb2dzKGBSZXRyaWV2ZWQgTERBUCBBY2NvdW50IDogJHtwcmV0dGlmaWVkfWApO1xuICAgICAgfVxuXG4gICAgfVxuICAgIC8vIENhdGNoIHNlcnZlciBjb21tdW5pY2F0aW9uIGVycm9yXG4gICAgY2F0Y2ggKGVycikge1xuICAgICAgdG9hc3RFcnJvcihlcnIpO1xuICAgICAgbG9nZ2VyLmVycm9yKGVycik7XG4gICAgfVxuICB9XG5cbiAgcmVuZGVyKCkge1xuICAgIGNvbnN0IHsgdCB9ID0gdGhpcy5wcm9wcztcblxuICAgIHJldHVybiAoXG4gICAgICA8UmVhY3QuRnJhZ21lbnQ+XG4gICAgICAgIHt0aGlzLnN0YXRlLnN1Y2Nlc3NNZXNzYWdlICE9IG51bGwgJiYgPGRpdiBjbGFzc05hbWU9XCJhbGVydCBhbGVydC1zdWNjZXNzXCI+e3RoaXMuc3RhdGUuc3VjY2Vzc01lc3NhZ2V9PC9kaXY+fVxuICAgICAgICB7dGhpcy5zdGF0ZS5lcnJvck1lc3NhZ2UgIT0gbnVsbCAmJiA8ZGl2IGNsYXNzTmFtZT1cImFsZXJ0IGFsZXJ0LXdhcm5pbmdcIj57dGhpcy5zdGF0ZS5lcnJvck1lc3NhZ2V9PC9kaXY+fVxuICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImZvcm0tZ3JvdXAgcm93XCI+XG4gICAgICAgICAgPGxhYmVsIGh0bWxGb3I9XCJ1c2VybmFtZVwiIGNsYXNzTmFtZT1cImNvbC0zIGNvbC1mb3JtLWxhYmVsXCI+e3QoJ3VzZXJuYW1lJyl9PC9sYWJlbD5cbiAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImNvbC02XCI+XG4gICAgICAgICAgICA8aW5wdXRcbiAgICAgICAgICAgICAgY2xhc3NOYW1lPVwiZm9ybS1jb250cm9sXCJcbiAgICAgICAgICAgICAgbmFtZT1cInVzZXJuYW1lXCJcbiAgICAgICAgICAgICAgdmFsdWU9e3RoaXMucHJvcHMudXNlcm5hbWV9XG4gICAgICAgICAgICAgIG9uQ2hhbmdlPXsoZSkgPT4geyB0aGlzLnByb3BzLm9uQ2hhbmdlVXNlcm5hbWUoZS50YXJnZXQudmFsdWUpIH19XG4gICAgICAgICAgICAvPlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2Rpdj5cbiAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJmb3JtLWdyb3VwIHJvd1wiPlxuICAgICAgICAgIDxsYWJlbCBodG1sRm9yPVwicGFzc3dvcmRcIiBjbGFzc05hbWU9XCJjb2wtMyBjb2wtZm9ybS1sYWJlbFwiPnt0KCdQYXNzd29yZCcpfTwvbGFiZWw+XG4gICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJjb2wtNlwiPlxuICAgICAgICAgICAgPGlucHV0XG4gICAgICAgICAgICAgIGNsYXNzTmFtZT1cImZvcm0tY29udHJvbFwiXG4gICAgICAgICAgICAgIHR5cGU9XCJwYXNzd29yZFwiXG4gICAgICAgICAgICAgIG5hbWU9XCJwYXNzd29yZFwiXG4gICAgICAgICAgICAgIHZhbHVlPXt0aGlzLnByb3BzLnBhc3N3b3JkfVxuICAgICAgICAgICAgICBvbkNoYW5nZT17KGUpID0+IHsgdGhpcy5wcm9wcy5vbkNoYW5nZVBhc3N3b3JkKGUudGFyZ2V0LnZhbHVlKSB9fVxuICAgICAgICAgICAgLz5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9kaXY+XG5cbiAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJmb3JtLWdyb3VwXCI+XG4gICAgICAgICAgPGxhYmVsPjxoNT5Mb2dzPC9oNT48L2xhYmVsPlxuICAgICAgICAgIDx0ZXh0YXJlYSBpZD1cInRhTG9nc1wiIGNsYXNzTmFtZT1cImNvbCBmb3JtLWNvbnRyb2xcIiByb3dzPVwiNFwiIHZhbHVlPXt0aGlzLnN0YXRlLmxvZ3N9IHJlYWRPbmx5IC8+XG4gICAgICAgIDwvZGl2PlxuXG4gICAgICAgIDxkaXY+XG4gICAgICAgICAgPGJ1dHRvbiB0eXBlPVwiYnV0dG9uXCIgY2xhc3NOYW1lPVwiYnRuIGJ0bi1vdXRsaW5lLXNlY29uZGFyeSBvZmZzZXQtNSBjb2wtMlwiIG9uQ2xpY2s9e3RoaXMudGVzdExkYXBDcmVkZW50aWFsc30+VGVzdDwvYnV0dG9uPlxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvUmVhY3QuRnJhZ21lbnQ+XG5cbiAgICApO1xuICB9XG5cbn1cblxuXG5MZGFwQXV0aFRlc3QucHJvcFR5cGVzID0ge1xuICB0OiBQcm9wVHlwZXMuZnVuYy5pc1JlcXVpcmVkLCAvLyBpMThuZXh0XG4gIGFwcENvbnRhaW5lcjogUHJvcFR5cGVzLmluc3RhbmNlT2YoQXBwQ29udGFpbmVyKS5pc1JlcXVpcmVkLFxuICBhZG1pbkxkYXBTZWN1cml0eUNvbnRhaW5lcjogUHJvcFR5cGVzLmluc3RhbmNlT2YoQWRtaW5MZGFwU2VjdXJpdHlDb250YWluZXIpLmlzUmVxdWlyZWQsXG5cbiAgdXNlcm5hbWU6IFByb3BUeXBlcy5zdHJpbmcuaXNSZXF1aXJlZCxcbiAgcGFzc3dvcmQ6IFByb3BUeXBlcy5zdHJpbmcuaXNSZXF1aXJlZCxcbiAgb25DaGFuZ2VVc2VybmFtZTogUHJvcFR5cGVzLmZ1bmMuaXNSZXF1aXJlZCxcbiAgb25DaGFuZ2VQYXNzd29yZDogUHJvcFR5cGVzLmZ1bmMuaXNSZXF1aXJlZCxcbn07XG5cbmNvbnN0IExkYXBBdXRoVGVzdFdyYXBwZXIgPSB3aXRoVW5zdGF0ZWRDb250YWluZXJzKExkYXBBdXRoVGVzdCwgW0FwcENvbnRhaW5lciwgQWRtaW5MZGFwU2VjdXJpdHlDb250YWluZXJdKTtcblxuZXhwb3J0IGRlZmF1bHQgd2l0aFRyYW5zbGF0aW9uKCkoTGRhcEF1dGhUZXN0V3JhcHBlcik7XG4iXSwibWFwcGluZ3MiOiJBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQ0E7QUFDQTtBQUNBO0FBRUE7QUFDQTtBQUVBO0FBQ0E7QUFFQTtBQUNBO0FBQ0E7QUFFQTtBQUNBO0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFIQTtBQU1BO0FBQ0E7QUFDQTtBQUVBOzs7OztBQUdBO0FBQ0E7QUFDQTtBQUNBO0FBREE7QUFHQTtBQUVBOzs7OztBQUdBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUZBO0FBREE7QUFDQTtBQU9BO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFBQTtBQUFBO0FBQUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQUE7QUFBQTtBQUFBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFBQTtBQUNBO0FBQ0E7QUFDQTtBQUVBO0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUFBO0FBQUE7QUFFQTtBQUVBO0FBQUE7QUFDQTtBQUFBO0FBQ0E7QUFBQTtBQUNBO0FBQUE7QUFBQTtBQUNBO0FBQUE7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUFBO0FBQUE7QUFKQTtBQVFBO0FBQUE7QUFDQTtBQUFBO0FBQUE7QUFDQTtBQUFBO0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUFBO0FBQUE7QUFMQTtBQVVBO0FBQUE7QUFFQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFJQTtBQUFBO0FBQUE7QUFBQTtBQUtBO0FBQ0E7QUFqSEE7QUFDQTtBQW9IQTtBQUNBO0FBQUE7QUFDQTtBQUNBO0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFSQTtBQVdBO0FBRUEiLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./src/client/js/components/Admin/Security/LdapAuthTest.jsx\n");
- /***/ }),
- /***/ "./src/client/js/components/CustomNavigation/CustomNav.jsx":
- /*!*****************************************************************!*\
- !*** ./src/client/js/components/CustomNavigation/CustomNav.jsx ***!
- \*****************************************************************/
- /*! exports provided: CustomNavDropdown, CustomNavTab, default */
- /***/ (function(module, __webpack_exports__, __webpack_require__) {
- "use strict";
- eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"CustomNavDropdown\", function() { return CustomNavDropdown; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"CustomNavTab\", function() { return CustomNavTab; });\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"./node_modules/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! prop-types */ \"./node_modules/prop-types/index.js\");\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(prop_types__WEBPACK_IMPORTED_MODULE_1__);\n/* harmony import */ var reactstrap_es_Nav__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! reactstrap/es/Nav */ \"./node_modules/reactstrap/es/Nav.js\");\n/* harmony import */ var reactstrap_es_NavItem__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! reactstrap/es/NavItem */ \"./node_modules/reactstrap/es/NavItem.js\");\n/* harmony import */ var reactstrap_es_NavLink__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! reactstrap/es/NavLink */ \"./node_modules/reactstrap/es/NavLink.js\");\n\n\n\n\n\n\nfunction getBreakpointOneLevelLarger(breakpoint) {\n switch (breakpoint) {\n case 'sm':\n return 'md';\n\n case 'md':\n return 'lg';\n\n case 'lg':\n return 'xl';\n\n case 'xl':\n default:\n return '2xl';\n }\n}\n\nconst CustomNavDropdown = props => {\n const {\n activeTab,\n navTabMapping,\n onNavSelected\n } = props;\n const activeObj = navTabMapping[activeTab];\n const menuItemClickHandler = Object(react__WEBPACK_IMPORTED_MODULE_0__[\"useCallback\"])(key => {\n if (onNavSelected != null) {\n onNavSelected(key);\n }\n }, [onNavSelected]);\n return react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"div\", {\n className: \"grw-custom-nav-dropdown btn-group btn-block\"\n }, react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"button\", {\n className: \"btn btn-outline-primary btn-lg btn-block dropdown-toggle text-right\",\n type: \"button\",\n \"data-toggle\": \"dropdown\",\n \"aria-haspopup\": \"true\",\n \"aria-expanded\": \"false\"\n }, react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"span\", {\n className: \"float-left\"\n }, activeObj != null && react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(react__WEBPACK_IMPORTED_MODULE_0___default.a.Fragment, null, react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(activeObj.Icon, null), \" \", activeObj.i18n))), react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"div\", {\n className: \"dropdown-menu dropdown-menu-right\"\n }, Object.entries(navTabMapping).map(([key, value]) => {\n const isActive = activeTab === key;\n const isLinkEnabled = value.isLinkEnabled != null ? value.isLinkEnabled(value) : true;\n const {\n Icon,\n i18n\n } = value;\n return react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"button\", {\n key: key,\n type: \"button\",\n className: `dropdown-item px-3 py-2 ${isActive ? 'active' : ''}`,\n disabled: !isLinkEnabled,\n onClick: () => menuItemClickHandler(key)\n }, react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(Icon, null), \" \", i18n);\n })));\n};\nCustomNavDropdown.propTypes = {\n activeTab: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.string.isRequired,\n navTabMapping: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.object.isRequired,\n onNavSelected: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.func\n};\nconst CustomNavTab = props => {\n const navContainer = Object(react__WEBPACK_IMPORTED_MODULE_0__[\"useRef\"])();\n const [sliderWidth, setSliderWidth] = Object(react__WEBPACK_IMPORTED_MODULE_0__[\"useState\"])(0);\n const [sliderMarginLeft, setSliderMarginLeft] = Object(react__WEBPACK_IMPORTED_MODULE_0__[\"useState\"])(0);\n const {\n activeTab,\n navTabMapping,\n onNavSelected,\n hideBorderBottom,\n breakpointToHideInactiveTabsDown\n } = props;\n const navTabRefs = Object(react__WEBPACK_IMPORTED_MODULE_0__[\"useMemo\"])(() => {\n const obj = {};\n Object.keys(navTabMapping).forEach(key => {\n obj[key] = react__WEBPACK_IMPORTED_MODULE_0___default.a.createRef();\n });\n return obj;\n }, [navTabMapping]);\n const navLinkClickHandler = Object(react__WEBPACK_IMPORTED_MODULE_0__[\"useCallback\"])(key => {\n if (onNavSelected != null) {\n onNavSelected(key);\n }\n }, [onNavSelected]);\n\n function registerNavLink(key, elm) {\n if (elm != null) {\n navTabRefs[key] = elm;\n }\n } // Might make this dynamic for px, %, pt, em\n\n\n function getPercentage(min, max) {\n return min / max * 100;\n }\n\n Object(react__WEBPACK_IMPORTED_MODULE_0__[\"useEffect\"])(() => {\n if (activeTab === '') {\n return;\n }\n\n if (navContainer == null) {\n return;\n }\n\n let tempML = 0;\n const styles = Object.entries(navTabRefs).map(el => {\n const width = getPercentage(el[1].offsetWidth, navContainer.current.offsetWidth);\n const marginLeft = tempML;\n tempML += width;\n return {\n width,\n marginLeft\n };\n });\n const {\n width,\n marginLeft\n } = styles[navTabMapping[activeTab].index];\n setSliderWidth(width);\n setSliderMarginLeft(marginLeft);\n }, [activeTab, navTabRefs, navTabMapping]); // determine inactive classes to hide NavItem\n\n const inactiveClassnames = [];\n\n if (breakpointToHideInactiveTabsDown != null) {\n const breakpointOneLevelLarger = getBreakpointOneLevelLarger(breakpointToHideInactiveTabsDown);\n inactiveClassnames.push('d-none');\n inactiveClassnames.push(`d-${breakpointOneLevelLarger}-block`);\n }\n\n return react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"div\", {\n className: \"grw-custom-nav-tab\"\n }, react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"div\", {\n ref: navContainer\n }, react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(reactstrap_es_Nav__WEBPACK_IMPORTED_MODULE_2__[\"default\"], {\n className: \"nav-title\"\n }, Object.entries(navTabMapping).map(([key, value]) => {\n const isActive = activeTab === key;\n const isLinkEnabled = value.isLinkEnabled != null ? value.isLinkEnabled(value) : true;\n const {\n Icon,\n i18n\n } = value;\n return react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(reactstrap_es_NavItem__WEBPACK_IMPORTED_MODULE_3__[\"default\"], {\n key: key,\n className: `p-0 ${isActive ? 'active' : inactiveClassnames.join(' ')}`\n }, react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(reactstrap_es_NavLink__WEBPACK_IMPORTED_MODULE_4__[\"default\"], {\n type: \"button\",\n key: key,\n innerRef: elm => registerNavLink(key, elm),\n disabled: !isLinkEnabled,\n onClick: () => navLinkClickHandler(key)\n }, react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(Icon, null), \" \", i18n));\n }))), react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"hr\", {\n className: \"my-0 grw-nav-slide-hr border-none\",\n style: {\n width: `${sliderWidth}%`,\n marginLeft: `${sliderMarginLeft}%`\n }\n }), !hideBorderBottom && react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"hr\", {\n className: \"my-0 border-top-0 border-bottom\"\n }));\n};\nCustomNavTab.propTypes = {\n activeTab: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.string.isRequired,\n navTabMapping: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.object.isRequired,\n onNavSelected: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.func,\n hideBorderBottom: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.bool,\n breakpointToHideInactiveTabsDown: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.oneOf(['xs', 'sm', 'md', 'lg', 'xl'])\n};\nCustomNavTab.defaultProps = {\n hideBorderBottom: false\n};\n\nconst CustomNav = props => {\n const tabClassnames = ['d-none'];\n const dropdownClassnames = ['d-block']; // determine classes to show/hide\n\n const breakpointOneLevelLarger = getBreakpointOneLevelLarger(props.breakpointToSwitchDropdownDown);\n tabClassnames.push(`d-${breakpointOneLevelLarger}-block`);\n dropdownClassnames.push(`d-${breakpointOneLevelLarger}-none`);\n return react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"div\", {\n className: \"grw-custom-nav\"\n }, react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"div\", {\n className: tabClassnames.join(' ')\n }, react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(CustomNavTab, props)), react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"div\", {\n className: dropdownClassnames.join(' ')\n }, react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(CustomNavDropdown, props)));\n};\n\nCustomNav.propTypes = {\n activeTab: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.string.isRequired,\n navTabMapping: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.object.isRequired,\n onNavSelected: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.func,\n hideBorderBottom: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.bool,\n breakpointToHideInactiveTabsDown: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.oneOf(['xs', 'sm', 'md', 'lg', 'xl']),\n breakpointToSwitchDropdownDown: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.oneOf(['xs', 'sm', 'md', 'lg', 'xl'])\n};\nCustomNav.defaultProps = {\n hideBorderBottom: false,\n breakpointToSwitchDropdownDown: 'sm'\n};\n/* harmony default export */ __webpack_exports__[\"default\"] = (CustomNav);//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9zcmMvY2xpZW50L2pzL2NvbXBvbmVudHMvQ3VzdG9tTmF2aWdhdGlvbi9DdXN0b21OYXYuanN4LmpzIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vLy4vc3JjL2NsaWVudC9qcy9jb21wb25lbnRzL0N1c3RvbU5hdmlnYXRpb24vQ3VzdG9tTmF2LmpzeD83NmU0Il0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBSZWFjdCwge1xuICB1c2VFZmZlY3QsIHVzZVN0YXRlLCB1c2VSZWYsIHVzZU1lbW8sIHVzZUNhbGxiYWNrLFxufSBmcm9tICdyZWFjdCc7XG5pbXBvcnQgUHJvcFR5cGVzIGZyb20gJ3Byb3AtdHlwZXMnO1xuaW1wb3J0IHtcbiAgTmF2LCBOYXZJdGVtLCBOYXZMaW5rLFxufSBmcm9tICdyZWFjdHN0cmFwJztcblxuXG5mdW5jdGlvbiBnZXRCcmVha3BvaW50T25lTGV2ZWxMYXJnZXIoYnJlYWtwb2ludCkge1xuICBzd2l0Y2ggKGJyZWFrcG9pbnQpIHtcbiAgICBjYXNlICdzbSc6XG4gICAgICByZXR1cm4gJ21kJztcbiAgICBjYXNlICdtZCc6XG4gICAgICByZXR1cm4gJ2xnJztcbiAgICBjYXNlICdsZyc6XG4gICAgICByZXR1cm4gJ3hsJztcbiAgICBjYXNlICd4bCc6XG4gICAgZGVmYXVsdDpcbiAgICAgIHJldHVybiAnMnhsJztcbiAgfVxufVxuXG5cbmV4cG9ydCBjb25zdCBDdXN0b21OYXZEcm9wZG93biA9IChwcm9wcykgPT4ge1xuICBjb25zdCB7XG4gICAgYWN0aXZlVGFiLCBuYXZUYWJNYXBwaW5nLCBvbk5hdlNlbGVjdGVkLFxuICB9ID0gcHJvcHM7XG5cbiAgY29uc3QgYWN0aXZlT2JqID0gbmF2VGFiTWFwcGluZ1thY3RpdmVUYWJdO1xuXG4gIGNvbnN0IG1lbnVJdGVtQ2xpY2tIYW5kbGVyID0gdXNlQ2FsbGJhY2soKGtleSkgPT4ge1xuICAgIGlmIChvbk5hdlNlbGVjdGVkICE9IG51bGwpIHtcbiAgICAgIG9uTmF2U2VsZWN0ZWQoa2V5KTtcbiAgICB9XG4gIH0sIFtvbk5hdlNlbGVjdGVkXSk7XG5cbiAgcmV0dXJuIChcbiAgICA8ZGl2IGNsYXNzTmFtZT1cImdydy1jdXN0b20tbmF2LWRyb3Bkb3duIGJ0bi1ncm91cCBidG4tYmxvY2tcIj5cbiAgICAgIDxidXR0b25cbiAgICAgICAgY2xhc3NOYW1lPVwiYnRuIGJ0bi1vdXRsaW5lLXByaW1hcnkgYnRuLWxnIGJ0bi1ibG9jayBkcm9wZG93bi10b2dnbGUgdGV4dC1yaWdodFwiXG4gICAgICAgIHR5cGU9XCJidXR0b25cIlxuICAgICAgICBkYXRhLXRvZ2dsZT1cImRyb3Bkb3duXCJcbiAgICAgICAgYXJpYS1oYXNwb3B1cD1cInRydWVcIlxuICAgICAgICBhcmlhLWV4cGFuZGVkPVwiZmFsc2VcIlxuICAgICAgPlxuICAgICAgICA8c3BhbiBjbGFzc05hbWU9XCJmbG9hdC1sZWZ0XCI+XG4gICAgICAgICAgeyBhY3RpdmVPYmogIT0gbnVsbCAmJiAoXG4gICAgICAgICAgICA8PjxhY3RpdmVPYmouSWNvbiAvPiB7YWN0aXZlT2JqLmkxOG59PC8+XG4gICAgICAgICAgKSB9XG4gICAgICAgIDwvc3Bhbj5cbiAgICAgIDwvYnV0dG9uPlxuICAgICAgPGRpdiBjbGFzc05hbWU9XCJkcm9wZG93bi1tZW51IGRyb3Bkb3duLW1lbnUtcmlnaHRcIj5cbiAgICAgICAge09iamVjdC5lbnRyaWVzKG5hdlRhYk1hcHBpbmcpLm1hcCgoW2tleSwgdmFsdWVdKSA9PiB7XG5cbiAgICAgICAgICBjb25zdCBpc0FjdGl2ZSA9IGFjdGl2ZVRhYiA9PT0ga2V5O1xuICAgICAgICAgIGNvbnN0IGlzTGlua0VuYWJsZWQgPSB2YWx1ZS5pc0xpbmtFbmFibGVkICE9IG51bGwgPyB2YWx1ZS5pc0xpbmtFbmFibGVkKHZhbHVlKSA6IHRydWU7XG4gICAgICAgICAgY29uc3QgeyBJY29uLCBpMThuIH0gPSB2YWx1ZTtcblxuICAgICAgICAgIHJldHVybiAoXG4gICAgICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgICAgIGtleT17a2V5fVxuICAgICAgICAgICAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAgICAgICAgICAgY2xhc3NOYW1lPXtgZHJvcGRvd24taXRlbSBweC0zIHB5LTIgJHtpc0FjdGl2ZSA/ICdhY3RpdmUnIDogJyd9YH1cbiAgICAgICAgICAgICAgZGlzYWJsZWQ9eyFpc0xpbmtFbmFibGVkfVxuICAgICAgICAgICAgICBvbkNsaWNrPXsoKSA9PiBtZW51SXRlbUNsaWNrSGFuZGxlcihrZXkpfVxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgICA8SWNvbiAvPiB7aTE4bn1cbiAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgICk7XG4gICAgICAgIH0pfVxuICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG4gICk7XG59O1xuXG5DdXN0b21OYXZEcm9wZG93bi5wcm9wVHlwZXMgPSB7XG4gIGFjdGl2ZVRhYjogUHJvcFR5cGVzLnN0cmluZy5pc1JlcXVpcmVkLFxuICBuYXZUYWJNYXBwaW5nOiBQcm9wVHlwZXMub2JqZWN0LmlzUmVxdWlyZWQsXG4gIG9uTmF2U2VsZWN0ZWQ6IFByb3BUeXBlcy5mdW5jLFxufTtcblxuXG5leHBvcnQgY29uc3QgQ3VzdG9tTmF2VGFiID0gKHByb3BzKSA9PiB7XG4gIGNvbnN0IG5hdkNvbnRhaW5lciA9IHVzZVJlZigpO1xuICBjb25zdCBbc2xpZGVyV2lkdGgsIHNldFNsaWRlcldpZHRoXSA9IHVzZVN0YXRlKDApO1xuICBjb25zdCBbc2xpZGVyTWFyZ2luTGVmdCwgc2V0U2xpZGVyTWFyZ2luTGVmdF0gPSB1c2VTdGF0ZSgwKTtcblxuICBjb25zdCB7XG4gICAgYWN0aXZlVGFiLCBuYXZUYWJNYXBwaW5nLCBvbk5hdlNlbGVjdGVkLCBoaWRlQm9yZGVyQm90dG9tLCBicmVha3BvaW50VG9IaWRlSW5hY3RpdmVUYWJzRG93bixcbiAgfSA9IHByb3BzO1xuXG4gIGNvbnN0IG5hdlRhYlJlZnMgPSB1c2VNZW1vKCgpID0+IHtcbiAgICBjb25zdCBvYmogPSB7fTtcbiAgICBPYmplY3Qua2V5cyhuYXZUYWJNYXBwaW5nKS5mb3JFYWNoKChrZXkpID0+IHtcbiAgICAgIG9ialtrZXldID0gUmVhY3QuY3JlYXRlUmVmKCk7XG4gICAgfSk7XG4gICAgcmV0dXJuIG9iajtcbiAgfSwgW25hdlRhYk1hcHBpbmddKTtcblxuICBjb25zdCBuYXZMaW5rQ2xpY2tIYW5kbGVyID0gdXNlQ2FsbGJhY2soKGtleSkgPT4ge1xuICAgIGlmIChvbk5hdlNlbGVjdGVkICE9IG51bGwpIHtcbiAgICAgIG9uTmF2U2VsZWN0ZWQoa2V5KTtcbiAgICB9XG4gIH0sIFtvbk5hdlNlbGVjdGVkXSk7XG5cbiAgZnVuY3Rpb24gcmVnaXN0ZXJOYXZMaW5rKGtleSwgZWxtKSB7XG4gICAgaWYgKGVsbSAhPSBudWxsKSB7XG4gICAgICBuYXZUYWJSZWZzW2tleV0gPSBlbG07XG4gICAgfVxuICB9XG5cbiAgLy8gTWlnaHQgbWFrZSB0aGlzIGR5bmFtaWMgZm9yIHB4LCAlLCBwdCwgZW1cbiAgZnVuY3Rpb24gZ2V0UGVyY2VudGFnZShtaW4sIG1heCkge1xuICAgIHJldHVybiBtaW4gLyBtYXggKiAxMDA7XG4gIH1cblxuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIGlmIChhY3RpdmVUYWIgPT09ICcnKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgaWYgKG5hdkNvbnRhaW5lciA9PSBudWxsKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgbGV0IHRlbXBNTCA9IDA7XG5cbiAgICBjb25zdCBzdHlsZXMgPSBPYmplY3QuZW50cmllcyhuYXZUYWJSZWZzKS5tYXAoKGVsKSA9PiB7XG4gICAgICBjb25zdCB3aWR0aCA9IGdldFBlcmNlbnRhZ2UoZWxbMV0ub2Zmc2V0V2lkdGgsIG5hdkNvbnRhaW5lci5jdXJyZW50Lm9mZnNldFdpZHRoKTtcbiAgICAgIGNvbnN0IG1hcmdpbkxlZnQgPSB0ZW1wTUw7XG4gICAgICB0ZW1wTUwgKz0gd2lkdGg7XG4gICAgICByZXR1cm4geyB3aWR0aCwgbWFyZ2luTGVmdCB9O1xuICAgIH0pO1xuICAgIGNvbnN0IHsgd2lkdGgsIG1hcmdpbkxlZnQgfSA9IHN0eWxlc1tuYXZUYWJNYXBwaW5nW2FjdGl2ZVRhYl0uaW5kZXhdO1xuXG4gICAgc2V0U2xpZGVyV2lkdGgod2lkdGgpO1xuICAgIHNldFNsaWRlck1hcmdpbkxlZnQobWFyZ2luTGVmdCk7XG5cbiAgfSwgW2FjdGl2ZVRhYiwgbmF2VGFiUmVmcywgbmF2VGFiTWFwcGluZ10pO1xuXG4gIC8vIGRldGVybWluZSBpbmFjdGl2ZSBjbGFzc2VzIHRvIGhpZGUgTmF2SXRlbVxuICBjb25zdCBpbmFjdGl2ZUNsYXNzbmFtZXMgPSBbXTtcbiAgaWYgKGJyZWFrcG9pbnRUb0hpZGVJbmFjdGl2ZVRhYnNEb3duICE9IG51bGwpIHtcbiAgICBjb25zdCBicmVha3BvaW50T25lTGV2ZWxMYXJnZXIgPSBnZXRCcmVha3BvaW50T25lTGV2ZWxMYXJnZXIoYnJlYWtwb2ludFRvSGlkZUluYWN0aXZlVGFic0Rvd24pO1xuICAgIGluYWN0aXZlQ2xhc3NuYW1lcy5wdXNoKCdkLW5vbmUnKTtcbiAgICBpbmFjdGl2ZUNsYXNzbmFtZXMucHVzaChgZC0ke2JyZWFrcG9pbnRPbmVMZXZlbExhcmdlcn0tYmxvY2tgKTtcbiAgfVxuXG4gIHJldHVybiAoXG4gICAgPGRpdiBjbGFzc05hbWU9XCJncnctY3VzdG9tLW5hdi10YWJcIj5cbiAgICAgIDxkaXYgcmVmPXtuYXZDb250YWluZXJ9PlxuICAgICAgICA8TmF2IGNsYXNzTmFtZT1cIm5hdi10aXRsZVwiPlxuICAgICAgICAgIHtPYmplY3QuZW50cmllcyhuYXZUYWJNYXBwaW5nKS5tYXAoKFtrZXksIHZhbHVlXSkgPT4ge1xuXG4gICAgICAgICAgICBjb25zdCBpc0FjdGl2ZSA9IGFjdGl2ZVRhYiA9PT0ga2V5O1xuICAgICAgICAgICAgY29uc3QgaXNMaW5rRW5hYmxlZCA9IHZhbHVlLmlzTGlua0VuYWJsZWQgIT0gbnVsbCA/IHZhbHVlLmlzTGlua0VuYWJsZWQodmFsdWUpIDogdHJ1ZTtcbiAgICAgICAgICAgIGNvbnN0IHsgSWNvbiwgaTE4biB9ID0gdmFsdWU7XG5cbiAgICAgICAgICAgIHJldHVybiAoXG4gICAgICAgICAgICAgIDxOYXZJdGVtXG4gICAgICAgICAgICAgICAga2V5PXtrZXl9XG4gICAgICAgICAgICAgICAgY2xhc3NOYW1lPXtgcC0wICR7aXNBY3RpdmUgPyAnYWN0aXZlJyA6IGluYWN0aXZlQ2xhc3NuYW1lcy5qb2luKCcgJyl9YH1cbiAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgIDxOYXZMaW5rIHR5cGU9XCJidXR0b25cIiBrZXk9e2tleX0gaW5uZXJSZWY9e2VsbSA9PiByZWdpc3Rlck5hdkxpbmsoa2V5LCBlbG0pfSBkaXNhYmxlZD17IWlzTGlua0VuYWJsZWR9IG9uQ2xpY2s9eygpID0+IG5hdkxpbmtDbGlja0hhbmRsZXIoa2V5KX0+XG4gICAgICAgICAgICAgICAgICA8SWNvbiAvPiB7aTE4bn1cbiAgICAgICAgICAgICAgICA8L05hdkxpbms+XG4gICAgICAgICAgICAgIDwvTmF2SXRlbT5cbiAgICAgICAgICAgICk7XG4gICAgICAgICAgfSl9XG4gICAgICAgIDwvTmF2PlxuICAgICAgPC9kaXY+XG4gICAgICA8aHIgY2xhc3NOYW1lPVwibXktMCBncnctbmF2LXNsaWRlLWhyIGJvcmRlci1ub25lXCIgc3R5bGU9e3sgd2lkdGg6IGAke3NsaWRlcldpZHRofSVgLCBtYXJnaW5MZWZ0OiBgJHtzbGlkZXJNYXJnaW5MZWZ0fSVgIH19IC8+XG4gICAgICB7ICFoaWRlQm9yZGVyQm90dG9tICYmIDxociBjbGFzc05hbWU9XCJteS0wIGJvcmRlci10b3AtMCBib3JkZXItYm90dG9tXCIgLz4gfVxuICAgIDwvZGl2PlxuICApO1xuXG59O1xuXG5DdXN0b21OYXZUYWIucHJvcFR5cGVzID0ge1xuICBhY3RpdmVUYWI6IFByb3BUeXBlcy5zdHJpbmcuaXNSZXF1aXJlZCxcbiAgbmF2VGFiTWFwcGluZzogUHJvcFR5cGVzLm9iamVjdC5pc1JlcXVpcmVkLFxuICBvbk5hdlNlbGVjdGVkOiBQcm9wVHlwZXMuZnVuYyxcbiAgaGlkZUJvcmRlckJvdHRvbTogUHJvcFR5cGVzLmJvb2wsXG4gIGJyZWFrcG9pbnRUb0hpZGVJbmFjdGl2ZVRhYnNEb3duOiBQcm9wVHlwZXMub25lT2YoWyd4cycsICdzbScsICdtZCcsICdsZycsICd4bCddKSxcbn07XG5cbkN1c3RvbU5hdlRhYi5kZWZhdWx0UHJvcHMgPSB7XG4gIGhpZGVCb3JkZXJCb3R0b206IGZhbHNlLFxufTtcblxuXG5jb25zdCBDdXN0b21OYXYgPSAocHJvcHMpID0+IHtcblxuICBjb25zdCB0YWJDbGFzc25hbWVzID0gWydkLW5vbmUnXTtcbiAgY29uc3QgZHJvcGRvd25DbGFzc25hbWVzID0gWydkLWJsb2NrJ107XG5cbiAgLy8gZGV0ZXJtaW5lIGNsYXNzZXMgdG8gc2hvdy9oaWRlXG4gIGNvbnN0IGJyZWFrcG9pbnRPbmVMZXZlbExhcmdlciA9IGdldEJyZWFrcG9pbnRPbmVMZXZlbExhcmdlcihwcm9wcy5icmVha3BvaW50VG9Td2l0Y2hEcm9wZG93bkRvd24pO1xuICB0YWJDbGFzc25hbWVzLnB1c2goYGQtJHticmVha3BvaW50T25lTGV2ZWxMYXJnZXJ9LWJsb2NrYCk7XG4gIGRyb3Bkb3duQ2xhc3NuYW1lcy5wdXNoKGBkLSR7YnJlYWtwb2ludE9uZUxldmVsTGFyZ2VyfS1ub25lYCk7XG5cbiAgcmV0dXJuIChcbiAgICA8ZGl2IGNsYXNzTmFtZT1cImdydy1jdXN0b20tbmF2XCI+XG4gICAgICA8ZGl2IGNsYXNzTmFtZT17dGFiQ2xhc3NuYW1lcy5qb2luKCcgJyl9PlxuICAgICAgICA8Q3VzdG9tTmF2VGFiIHsuLi5wcm9wc30gLz5cbiAgICAgIDwvZGl2PlxuICAgICAgPGRpdiBjbGFzc05hbWU9e2Ryb3Bkb3duQ2xhc3NuYW1lcy5qb2luKCcgJyl9PlxuICAgICAgICA8Q3VzdG9tTmF2RHJvcGRvd24gey4uLnByb3BzfSAvPlxuICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG4gICk7XG5cbn07XG5cbkN1c3RvbU5hdi5wcm9wVHlwZXMgPSB7XG4gIGFjdGl2ZVRhYjogUHJvcFR5cGVzLnN0cmluZy5pc1JlcXVpcmVkLFxuICBuYXZUYWJNYXBwaW5nOiBQcm9wVHlwZXMub2JqZWN0LmlzUmVxdWlyZWQsXG4gIG9uTmF2U2VsZWN0ZWQ6IFByb3BUeXBlcy5mdW5jLFxuICBoaWRlQm9yZGVyQm90dG9tOiBQcm9wVHlwZXMuYm9vbCxcbiAgYnJlYWtwb2ludFRvSGlkZUluYWN0aXZlVGFic0Rvd246IFByb3BUeXBlcy5vbmVPZihbJ3hzJywgJ3NtJywgJ21kJywgJ2xnJywgJ3hsJ10pLFxuICBicmVha3BvaW50VG9Td2l0Y2hEcm9wZG93bkRvd246IFByb3BUeXBlcy5vbmVPZihbJ3hzJywgJ3NtJywgJ21kJywgJ2xnJywgJ3hsJ10pLFxufTtcblxuQ3VzdG9tTmF2LmRlZmF1bHRQcm9wcyA9IHtcbiAgaGlkZUJvcmRlckJvdHRvbTogZmFsc2UsXG4gIGJyZWFrcG9pbnRUb1N3aXRjaERyb3Bkb3duRG93bjogJ3NtJyxcbn07XG5cblxuZXhwb3J0IGRlZmF1bHQgQ3VzdG9tTmF2O1xuIl0sIm1hcHBpbmdzIjoiQUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBR0E7Ozs7O0FBTUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUFBO0FBQ0E7QUFDQTtBQUFBO0FBQ0E7QUFDQTtBQUFBO0FBQ0E7QUFDQTtBQVRBO0FBV0E7QUFDQTtBQUVBO0FBQ0E7QUFDQTtBQUFBO0FBQUE7QUFEQTtBQUlBO0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUVBO0FBQ0E7QUFBQTtBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFMQTtBQU9BO0FBQUE7QUFNQTtBQUFBO0FBR0E7QUFDQTtBQUNBO0FBQUE7QUFBQTtBQUFBO0FBRUE7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBTEE7QUFVQTtBQUlBO0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFIQTtBQU9BO0FBQ0E7QUFDQTtBQUNBO0FBRUE7QUFDQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBREE7QUFJQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFBQTtBQUFBO0FBQUE7QUFDQTtBQUNBO0FBQUE7QUFBQTtBQUFBO0FBRUE7QUFDQTtBQUVBO0FBQ0E7QUFFQTtBQUNBO0FBQUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUFBO0FBQ0E7QUFBQTtBQUNBO0FBQUE7QUFHQTtBQUNBO0FBQ0E7QUFBQTtBQUFBO0FBQUE7QUFFQTtBQUVBO0FBQ0E7QUFGQTtBQUlBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUtBO0FBR0E7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQ0E7QUFBQTtBQUlBO0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBTEE7QUFRQTtBQUNBO0FBREE7QUFDQTtBQUlBO0FBRUE7QUFDQTtBQUNBO0FBRUE7QUFDQTtBQUNBO0FBRUE7QUFDQTtBQUFBO0FBQ0E7QUFBQTtBQUdBO0FBQUE7QUFNQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFOQTtBQVNBO0FBQ0E7QUFDQTtBQUZBO0FBTUEiLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./src/client/js/components/CustomNavigation/CustomNav.jsx\n");
- /***/ }),
- /***/ "./src/client/js/components/ErrorBoudary.jsx":
- /*!***************************************************!*\
- !*** ./src/client/js/components/ErrorBoudary.jsx ***!
- \***************************************************/
- /*! exports provided: default */
- /***/ (function(module, __webpack_exports__, __webpack_require__) {
- "use strict";
- eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"./node_modules/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! prop-types */ \"./node_modules/prop-types/index.js\");\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(prop_types__WEBPACK_IMPORTED_MODULE_1__);\n\n\n/**\n * @see https://reactjs.org/docs/error-boundaries.html\n */\n\nclass ErrorBoundary extends react__WEBPACK_IMPORTED_MODULE_0___default.a.Component {\n constructor(props) {\n super(props);\n this.state = {\n error: null,\n errorInfo: null\n };\n }\n\n componentDidCatch(error, errorInfo) {\n // You can also log the error to an error reporting service\n // logErrorToMyService(error, errorInfo);\n // Catch errors in any components below and re-render with error message\n this.setState({\n error,\n errorInfo\n });\n }\n\n render() {\n const {\n error,\n errorInfo\n } = this.state;\n\n if (errorInfo != null) {\n // split componetStack\n // see https://regex101.com/r/Uc448G/1\n const firstStack = errorInfo.componentStack.split(/\\s*in\\s/)[1];\n return react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"div\", {\n className: \"card border-danger\"\n }, react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"div\", {\n className: \"card-header\"\n }, \"Error occured in \", firstStack), react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"div\", {\n className: \"card-body\"\n }, react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"h5\", null, error && error.toString()), react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"details\", {\n className: \"card well small mb-0\",\n style: {\n whiteSpace: 'pre-wrap'\n }\n }, errorInfo.componentStack)));\n } // Normally, just render children\n\n\n return this.props.children;\n }\n\n}\n\nErrorBoundary.propTypes = {\n children: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.object\n};\n/* harmony default export */ __webpack_exports__[\"default\"] = (ErrorBoundary);//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9zcmMvY2xpZW50L2pzL2NvbXBvbmVudHMvRXJyb3JCb3VkYXJ5LmpzeC5qcyIsInNvdXJjZXMiOlsid2VicGFjazovLy8uL3NyYy9jbGllbnQvanMvY29tcG9uZW50cy9FcnJvckJvdWRhcnkuanN4PzEyNzYiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IFJlYWN0IGZyb20gJ3JlYWN0JztcbmltcG9ydCBQcm9wVHlwZXMgZnJvbSAncHJvcC10eXBlcyc7XG5cbi8qKlxuICogQHNlZSBodHRwczovL3JlYWN0anMub3JnL2RvY3MvZXJyb3ItYm91bmRhcmllcy5odG1sXG4gKi9cbmNsYXNzIEVycm9yQm91bmRhcnkgZXh0ZW5kcyBSZWFjdC5Db21wb25lbnQge1xuXG4gIGNvbnN0cnVjdG9yKHByb3BzKSB7XG4gICAgc3VwZXIocHJvcHMpO1xuICAgIHRoaXMuc3RhdGUgPSB7IGVycm9yOiBudWxsLCBlcnJvckluZm86IG51bGwgfTtcbiAgfVxuXG4gIGNvbXBvbmVudERpZENhdGNoKGVycm9yLCBlcnJvckluZm8pIHtcbiAgICAvLyBZb3UgY2FuIGFsc28gbG9nIHRoZSBlcnJvciB0byBhbiBlcnJvciByZXBvcnRpbmcgc2VydmljZVxuICAgIC8vIGxvZ0Vycm9yVG9NeVNlcnZpY2UoZXJyb3IsIGVycm9ySW5mbyk7XG5cbiAgICAvLyBDYXRjaCBlcnJvcnMgaW4gYW55IGNvbXBvbmVudHMgYmVsb3cgYW5kIHJlLXJlbmRlciB3aXRoIGVycm9yIG1lc3NhZ2VcbiAgICB0aGlzLnNldFN0YXRlKHtcbiAgICAgIGVycm9yLFxuICAgICAgZXJyb3JJbmZvLFxuICAgIH0pO1xuICB9XG5cbiAgcmVuZGVyKCkge1xuICAgIGNvbnN0IHsgZXJyb3IsIGVycm9ySW5mbyB9ID0gdGhpcy5zdGF0ZTtcbiAgICBpZiAoZXJyb3JJbmZvICE9IG51bGwpIHtcblxuICAgICAgLy8gc3BsaXQgY29tcG9uZXRTdGFja1xuICAgICAgLy8gc2VlIGh0dHBzOi8vcmVnZXgxMDEuY29tL3IvVWM0NDhHLzFcbiAgICAgIGNvbnN0IGZpcnN0U3RhY2sgPSBlcnJvckluZm8uY29tcG9uZW50U3RhY2suc3BsaXQoL1xccyppblxccy8pWzFdO1xuXG4gICAgICByZXR1cm4gKFxuICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImNhcmQgYm9yZGVyLWRhbmdlclwiPlxuICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiY2FyZC1oZWFkZXJcIj5FcnJvciBvY2N1cmVkIGluIHtmaXJzdFN0YWNrfTwvZGl2PlxuICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiY2FyZC1ib2R5XCI+XG4gICAgICAgICAgICA8aDU+e2Vycm9yICYmIGVycm9yLnRvU3RyaW5nKCl9PC9oNT5cbiAgICAgICAgICAgIDxkZXRhaWxzIGNsYXNzTmFtZT1cImNhcmQgd2VsbCBzbWFsbCBtYi0wXCIgc3R5bGU9e3sgd2hpdGVTcGFjZTogJ3ByZS13cmFwJyB9fT5cbiAgICAgICAgICAgICAge2Vycm9ySW5mby5jb21wb25lbnRTdGFja31cbiAgICAgICAgICAgIDwvZGV0YWlscz5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9kaXY+XG4gICAgICApO1xuICAgIH1cblxuICAgIC8vIE5vcm1hbGx5LCBqdXN0IHJlbmRlciBjaGlsZHJlblxuICAgIHJldHVybiB0aGlzLnByb3BzLmNoaWxkcmVuO1xuICB9XG5cbn1cblxuRXJyb3JCb3VuZGFyeS5wcm9wVHlwZXMgPSB7XG4gIGNoaWxkcmVuOiBQcm9wVHlwZXMub2JqZWN0LFxufTtcblxuZXhwb3J0IGRlZmF1bHQgRXJyb3JCb3VuZGFyeTtcbiJdLCJtYXBwaW5ncyI6IkFBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQ0E7QUFFQTs7OztBQUdBO0FBRUE7QUFDQTtBQUNBO0FBQUE7QUFBQTtBQUFBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBRkE7QUFJQTtBQUNBO0FBQ0E7QUFDQTtBQUFBO0FBQUE7QUFBQTtBQUNBO0FBQUE7QUFFQTtBQUNBO0FBQ0E7QUFFQTtBQUNBO0FBQUE7QUFDQTtBQUFBO0FBQ0E7QUFBQTtBQUVBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFNQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUExQ0E7QUFDQTtBQTRDQTtBQUNBO0FBREE7QUFJQSIsInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./src/client/js/components/ErrorBoudary.jsx\n");
- /***/ }),
- /***/ "./src/client/js/components/Hotkeys/HotkeysDetector.jsx":
- /*!**************************************************************!*\
- !*** ./src/client/js/components/Hotkeys/HotkeysDetector.jsx ***!
- \**************************************************************/
- /*! exports provided: default */
- /***/ (function(module, __webpack_exports__, __webpack_require__) {
- "use strict";
- eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"./node_modules/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! prop-types */ \"./node_modules/prop-types/index.js\");\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(prop_types__WEBPACK_IMPORTED_MODULE_1__);\n/* harmony import */ var react_hotkeys__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! react-hotkeys */ \"./node_modules/react-hotkeys/index.es.js\");\n/* harmony import */ var react_hotkeys__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(react_hotkeys__WEBPACK_IMPORTED_MODULE_2__);\n/* harmony import */ var _models_HotkeyStroke__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../models/HotkeyStroke */ \"./src/client/js/models/HotkeyStroke.js\");\n\n\n\n\n\nconst HotkeysDetector = props => {\n const {\n keySet,\n strokeSet,\n onDetected\n } = props; // memorize HotkeyStroke instances\n\n const hotkeyStrokes = Object(react__WEBPACK_IMPORTED_MODULE_0__[\"useMemo\"])(() => {\n const strokes = Array.from(strokeSet);\n return strokes.map(stroke => new _models_HotkeyStroke__WEBPACK_IMPORTED_MODULE_3__[\"default\"](stroke));\n }, [strokeSet]);\n /**\n * return key expression string includes modifier\n */\n\n const getKeyExpression = Object(react__WEBPACK_IMPORTED_MODULE_0__[\"useCallback\"])(event => {\n let eventKey = event.key;\n\n if (event.ctrlKey) {\n eventKey += '+ctrl';\n }\n\n if (event.metaKey) {\n eventKey += '+meta';\n }\n\n if (event.altKey) {\n eventKey += '+alt';\n }\n\n if (event.shiftKey) {\n eventKey += '+shift';\n }\n\n return eventKey;\n }, []);\n /**\n * evaluate the key user pressed and trigger onDetected\n */\n\n const checkHandler = Object(react__WEBPACK_IMPORTED_MODULE_0__[\"useCallback\"])(event => {\n const eventKey = getKeyExpression(event);\n hotkeyStrokes.forEach(hotkeyStroke => {\n // if any stroke is completed\n if (hotkeyStroke.evaluate(eventKey)) {\n // cancel the key event\n event.preventDefault(); // invoke detected handler\n\n onDetected(hotkeyStroke.stroke);\n }\n });\n }, [hotkeyStrokes, getKeyExpression, onDetected]); // memorize keyMap for GlobalHotKeys\n\n const keyMap = Object(react__WEBPACK_IMPORTED_MODULE_0__[\"useMemo\"])(() => {\n return {\n check: Array.from(keySet)\n };\n }, [keySet]); // memorize handlers for GlobalHotKeys\n\n const handlers = Object(react__WEBPACK_IMPORTED_MODULE_0__[\"useMemo\"])(() => {\n return {\n check: checkHandler\n };\n }, [checkHandler]);\n return react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(react_hotkeys__WEBPACK_IMPORTED_MODULE_2__[\"GlobalHotKeys\"], {\n keyMap: keyMap,\n handlers: handlers\n });\n};\n\nHotkeysDetector.propTypes = {\n onDetected: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.func.isRequired,\n keySet: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.instanceOf(Set).isRequired,\n strokeSet: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.instanceOf(Set).isRequired\n};\n/* harmony default export */ __webpack_exports__[\"default\"] = (HotkeysDetector);//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9zcmMvY2xpZW50L2pzL2NvbXBvbmVudHMvSG90a2V5cy9Ib3RrZXlzRGV0ZWN0b3IuanN4LmpzIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vLy4vc3JjL2NsaWVudC9qcy9jb21wb25lbnRzL0hvdGtleXMvSG90a2V5c0RldGVjdG9yLmpzeD81ZDliIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBSZWFjdCwgeyB1c2VNZW1vLCB1c2VDYWxsYmFjayB9IGZyb20gJ3JlYWN0JztcbmltcG9ydCBQcm9wVHlwZXMgZnJvbSAncHJvcC10eXBlcyc7XG5cbmltcG9ydCB7IEdsb2JhbEhvdEtleXMgfSBmcm9tICdyZWFjdC1ob3RrZXlzJztcblxuaW1wb3J0IEhvdGtleVN0cm9rZSBmcm9tICcuLi8uLi9tb2RlbHMvSG90a2V5U3Ryb2tlJztcblxuY29uc3QgSG90a2V5c0RldGVjdG9yID0gKHByb3BzKSA9PiB7XG5cbiAgY29uc3QgeyBrZXlTZXQsIHN0cm9rZVNldCwgb25EZXRlY3RlZCB9ID0gcHJvcHM7XG5cbiAgLy8gbWVtb3JpemUgSG90a2V5U3Ryb2tlIGluc3RhbmNlc1xuICBjb25zdCBob3RrZXlTdHJva2VzID0gdXNlTWVtbyhcbiAgICAoKSA9PiB7XG4gICAgICBjb25zdCBzdHJva2VzID0gQXJyYXkuZnJvbShzdHJva2VTZXQpO1xuICAgICAgcmV0dXJuIHN0cm9rZXMubWFwKHN0cm9rZSA9PiBuZXcgSG90a2V5U3Ryb2tlKHN0cm9rZSkpO1xuICAgIH0sXG4gICAgW3N0cm9rZVNldF0sXG4gICk7XG5cbiAgLyoqXG4gICAqIHJldHVybiBrZXkgZXhwcmVzc2lvbiBzdHJpbmcgaW5jbHVkZXMgbW9kaWZpZXJcbiAgICovXG4gIGNvbnN0IGdldEtleUV4cHJlc3Npb24gPSB1c2VDYWxsYmFjaygoZXZlbnQpID0+IHtcbiAgICBsZXQgZXZlbnRLZXkgPSBldmVudC5rZXk7XG5cbiAgICBpZiAoZXZlbnQuY3RybEtleSkge1xuICAgICAgZXZlbnRLZXkgKz0gJytjdHJsJztcbiAgICB9XG4gICAgaWYgKGV2ZW50Lm1ldGFLZXkpIHtcbiAgICAgIGV2ZW50S2V5ICs9ICcrbWV0YSc7XG4gICAgfVxuICAgIGlmIChldmVudC5hbHRLZXkpIHtcbiAgICAgIGV2ZW50S2V5ICs9ICcrYWx0JztcbiAgICB9XG4gICAgaWYgKGV2ZW50LnNoaWZ0S2V5KSB7XG4gICAgICBldmVudEtleSArPSAnK3NoaWZ0JztcbiAgICB9XG5cbiAgICByZXR1cm4gZXZlbnRLZXk7XG4gIH0sIFtdKTtcblxuICAvKipcbiAgICogZXZhbHVhdGUgdGhlIGtleSB1c2VyIHByZXNzZWQgYW5kIHRyaWdnZXIgb25EZXRlY3RlZFxuICAgKi9cbiAgY29uc3QgY2hlY2tIYW5kbGVyID0gdXNlQ2FsbGJhY2soKGV2ZW50KSA9PiB7XG4gICAgY29uc3QgZXZlbnRLZXkgPSBnZXRLZXlFeHByZXNzaW9uKGV2ZW50KTtcblxuICAgIGhvdGtleVN0cm9rZXMuZm9yRWFjaCgoaG90a2V5U3Ryb2tlKSA9PiB7XG4gICAgICAvLyBpZiBhbnkgc3Ryb2tlIGlzIGNvbXBsZXRlZFxuICAgICAgaWYgKGhvdGtleVN0cm9rZS5ldmFsdWF0ZShldmVudEtleSkpIHtcbiAgICAgICAgLy8gY2FuY2VsIHRoZSBrZXkgZXZlbnRcbiAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgLy8gaW52b2tlIGRldGVjdGVkIGhhbmRsZXJcbiAgICAgICAgb25EZXRlY3RlZChob3RrZXlTdHJva2Uuc3Ryb2tlKTtcbiAgICAgIH1cbiAgICB9KTtcbiAgfSwgW2hvdGtleVN0cm9rZXMsIGdldEtleUV4cHJlc3Npb24sIG9uRGV0ZWN0ZWRdKTtcblxuICAvLyBtZW1vcml6ZSBrZXlNYXAgZm9yIEdsb2JhbEhvdEtleXNcbiAgY29uc3Qga2V5TWFwID0gdXNlTWVtbygoKSA9PiB7XG4gICAgcmV0dXJuIHsgY2hlY2s6IEFycmF5LmZyb20oa2V5U2V0KSB9O1xuICB9LCBba2V5U2V0XSk7XG5cbiAgLy8gbWVtb3JpemUgaGFuZGxlcnMgZm9yIEdsb2JhbEhvdEtleXNcbiAgY29uc3QgaGFuZGxlcnMgPSB1c2VNZW1vKCgpID0+IHtcbiAgICByZXR1cm4geyBjaGVjazogY2hlY2tIYW5kbGVyIH07XG4gIH0sIFtjaGVja0hhbmRsZXJdKTtcblxuICByZXR1cm4gKFxuICAgIDxHbG9iYWxIb3RLZXlzIGtleU1hcD17a2V5TWFwfSBoYW5kbGVycz17aGFuZGxlcnN9IC8+XG4gICk7XG5cbn07XG5cbkhvdGtleXNEZXRlY3Rvci5wcm9wVHlwZXMgPSB7XG4gIG9uRGV0ZWN0ZWQ6IFByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWQsXG4gIGtleVNldDogUHJvcFR5cGVzLmluc3RhbmNlT2YoU2V0KS5pc1JlcXVpcmVkLFxuICBzdHJva2VTZXQ6IFByb3BUeXBlcy5pbnN0YW5jZU9mKFNldCkuaXNSZXF1aXJlZCxcbn07XG5cbmV4cG9ydCBkZWZhdWx0IEhvdGtleXNEZXRlY3RvcjtcbiJdLCJtYXBwaW5ncyI6IkFBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQ0E7QUFFQTtBQUVBO0FBQ0E7QUFDQTtBQUVBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFDQTtBQUVBO0FBRUE7QUFDQTtBQUNBO0FBSUE7Ozs7QUFHQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUFBO0FBQ0E7QUFDQTtBQUNBO0FBQUE7QUFDQTtBQUNBO0FBQ0E7QUFBQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFFQTs7OztBQUdBO0FBQ0E7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBRUE7QUFDQTtBQUFBO0FBQUE7QUFDQTtBQUNBO0FBRUE7QUFDQTtBQUFBO0FBQUE7QUFDQTtBQUVBO0FBQ0E7QUFBQTtBQUFBO0FBR0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBSEE7QUFNQSIsInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./src/client/js/components/Hotkeys/HotkeysDetector.jsx\n");
- /***/ }),
- /***/ "./src/client/js/components/Hotkeys/HotkeysManager.jsx":
- /*!*************************************************************!*\
- !*** ./src/client/js/components/Hotkeys/HotkeysManager.jsx ***!
- \*************************************************************/
- /*! exports provided: default */
- /***/ (function(module, __webpack_exports__, __webpack_require__) {
- "use strict";
- eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"./node_modules/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var _HotkeysDetector__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./HotkeysDetector */ \"./src/client/js/components/Hotkeys/HotkeysDetector.jsx\");\n/* harmony import */ var _Subscribers_ShowStaffCredit__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./Subscribers/ShowStaffCredit */ \"./src/client/js/components/Hotkeys/Subscribers/ShowStaffCredit.jsx\");\n/* harmony import */ var _Subscribers_SwitchToMirrorMode__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./Subscribers/SwitchToMirrorMode */ \"./src/client/js/components/Hotkeys/Subscribers/SwitchToMirrorMode.jsx\");\n/* harmony import */ var _Subscribers_ShowShortcutsModal__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./Subscribers/ShowShortcutsModal */ \"./src/client/js/components/Hotkeys/Subscribers/ShowShortcutsModal.jsx\");\n/* harmony import */ var _Subscribers_CreatePage__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./Subscribers/CreatePage */ \"./src/client/js/components/Hotkeys/Subscribers/CreatePage.jsx\");\n/* harmony import */ var _Subscribers_EditPage__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./Subscribers/EditPage */ \"./src/client/js/components/Hotkeys/Subscribers/EditPage.jsx\");\n\n\n\n\n\n\n // define supported components list\n\nconst SUPPORTED_COMPONENTS = [_Subscribers_ShowStaffCredit__WEBPACK_IMPORTED_MODULE_2__[\"default\"], _Subscribers_SwitchToMirrorMode__WEBPACK_IMPORTED_MODULE_3__[\"default\"], _Subscribers_ShowShortcutsModal__WEBPACK_IMPORTED_MODULE_4__[\"default\"], _Subscribers_CreatePage__WEBPACK_IMPORTED_MODULE_5__[\"default\"], _Subscribers_EditPage__WEBPACK_IMPORTED_MODULE_6__[\"default\"]];\nconst KEY_SET = new Set();\nconst STROKE_SET = new Set();\nconst STROKE_TO_COMPONENT_MAP = {};\nSUPPORTED_COMPONENTS.forEach(comp => {\n const strokes = comp.getHotkeyStrokes();\n strokes.forEach(stroke => {\n // register key\n stroke.forEach(key => KEY_SET.add(key)); // register stroke\n\n STROKE_SET.add(stroke); // register component\n\n const componentList = STROKE_TO_COMPONENT_MAP[stroke] || [];\n componentList.push(comp);\n STROKE_TO_COMPONENT_MAP[stroke.toString()] = componentList;\n });\n});\n\nconst HotkeysManager = props => {\n const [view, setView] = Object(react__WEBPACK_IMPORTED_MODULE_0__[\"useState\"])([]);\n /**\n * delete the instance in state.view\n */\n\n const deleteRender = instance => {\n const index = view.lastIndexOf(instance);\n const newView = view.slice(); // shallow copy\n\n newView.splice(index, 1);\n setView(newView);\n };\n /**\n * activates when one of the hotkey strokes gets determined from HotkeysDetector\n */\n\n\n const onDetected = strokeDetermined => {\n const key = (Math.random() * 1000).toString();\n const components = STROKE_TO_COMPONENT_MAP[strokeDetermined.toString()];\n const newViews = components.map(Component => react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(Component, {\n key: key,\n onDeleteRender: deleteRender\n }));\n setView(view.concat(newViews).flat());\n };\n\n return react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(react__WEBPACK_IMPORTED_MODULE_0___default.a.Fragment, null, react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(_HotkeysDetector__WEBPACK_IMPORTED_MODULE_1__[\"default\"], {\n onDetected: stroke => onDetected(stroke),\n keySet: KEY_SET,\n strokeSet: STROKE_SET\n }), view);\n};\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (HotkeysManager);//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9zcmMvY2xpZW50L2pzL2NvbXBvbmVudHMvSG90a2V5cy9Ib3RrZXlzTWFuYWdlci5qc3guanMiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9zcmMvY2xpZW50L2pzL2NvbXBvbmVudHMvSG90a2V5cy9Ib3RrZXlzTWFuYWdlci5qc3g/OWM1MCJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgUmVhY3QsIHsgdXNlU3RhdGUgfSBmcm9tICdyZWFjdCc7XG5cbmltcG9ydCBIb3RrZXlzRGV0ZWN0b3IgZnJvbSAnLi9Ib3RrZXlzRGV0ZWN0b3InO1xuXG5pbXBvcnQgU2hvd1N0YWZmQ3JlZGl0IGZyb20gJy4vU3Vic2NyaWJlcnMvU2hvd1N0YWZmQ3JlZGl0JztcbmltcG9ydCBTd2l0Y2hUb01pcnJvck1vZGUgZnJvbSAnLi9TdWJzY3JpYmVycy9Td2l0Y2hUb01pcnJvck1vZGUnO1xuaW1wb3J0IFNob3dTaG9ydGN1dHNNb2RhbCBmcm9tICcuL1N1YnNjcmliZXJzL1Nob3dTaG9ydGN1dHNNb2RhbCc7XG5pbXBvcnQgQ3JlYXRlUGFnZSBmcm9tICcuL1N1YnNjcmliZXJzL0NyZWF0ZVBhZ2UnO1xuaW1wb3J0IEVkaXRQYWdlIGZyb20gJy4vU3Vic2NyaWJlcnMvRWRpdFBhZ2UnO1xuXG4vLyBkZWZpbmUgc3VwcG9ydGVkIGNvbXBvbmVudHMgbGlzdFxuY29uc3QgU1VQUE9SVEVEX0NPTVBPTkVOVFMgPSBbXG4gIFNob3dTdGFmZkNyZWRpdCxcbiAgU3dpdGNoVG9NaXJyb3JNb2RlLFxuICBTaG93U2hvcnRjdXRzTW9kYWwsXG4gIENyZWF0ZVBhZ2UsXG4gIEVkaXRQYWdlLFxuXTtcblxuY29uc3QgS0VZX1NFVCA9IG5ldyBTZXQoKTtcbmNvbnN0IFNUUk9LRV9TRVQgPSBuZXcgU2V0KCk7XG5jb25zdCBTVFJPS0VfVE9fQ09NUE9ORU5UX01BUCA9IHt9O1xuXG5TVVBQT1JURURfQ09NUE9ORU5UUy5mb3JFYWNoKChjb21wKSA9PiB7XG4gIGNvbnN0IHN0cm9rZXMgPSBjb21wLmdldEhvdGtleVN0cm9rZXMoKTtcblxuICBzdHJva2VzLmZvckVhY2goKHN0cm9rZSkgPT4ge1xuICAgIC8vIHJlZ2lzdGVyIGtleVxuICAgIHN0cm9rZS5mb3JFYWNoKGtleSA9PiBLRVlfU0VULmFkZChrZXkpKTtcbiAgICAvLyByZWdpc3RlciBzdHJva2VcbiAgICBTVFJPS0VfU0VULmFkZChzdHJva2UpO1xuICAgIC8vIHJlZ2lzdGVyIGNvbXBvbmVudFxuICAgIGNvbnN0IGNvbXBvbmVudExpc3QgPSBTVFJPS0VfVE9fQ09NUE9ORU5UX01BUFtzdHJva2VdIHx8IFtdO1xuICAgIGNvbXBvbmVudExpc3QucHVzaChjb21wKTtcbiAgICBTVFJPS0VfVE9fQ09NUE9ORU5UX01BUFtzdHJva2UudG9TdHJpbmcoKV0gPSBjb21wb25lbnRMaXN0O1xuICB9KTtcbn0pO1xuXG5jb25zdCBIb3RrZXlzTWFuYWdlciA9IChwcm9wcykgPT4ge1xuICBjb25zdCBbdmlldywgc2V0Vmlld10gPSB1c2VTdGF0ZShbXSk7XG5cbiAgLyoqXG4gICAqIGRlbGV0ZSB0aGUgaW5zdGFuY2UgaW4gc3RhdGUudmlld1xuICAgKi9cbiAgY29uc3QgZGVsZXRlUmVuZGVyID0gKGluc3RhbmNlKSA9PiB7XG4gICAgY29uc3QgaW5kZXggPSB2aWV3Lmxhc3RJbmRleE9mKGluc3RhbmNlKTtcblxuICAgIGNvbnN0IG5ld1ZpZXcgPSB2aWV3LnNsaWNlKCk7IC8vIHNoYWxsb3cgY29weVxuICAgIG5ld1ZpZXcuc3BsaWNlKGluZGV4LCAxKTtcbiAgICBzZXRWaWV3KG5ld1ZpZXcpO1xuICB9O1xuXG4gIC8qKlxuICAgKiBhY3RpdmF0ZXMgd2hlbiBvbmUgb2YgdGhlIGhvdGtleSBzdHJva2VzIGdldHMgZGV0ZXJtaW5lZCBmcm9tIEhvdGtleXNEZXRlY3RvclxuICAgKi9cbiAgY29uc3Qgb25EZXRlY3RlZCA9IChzdHJva2VEZXRlcm1pbmVkKSA9PiB7XG4gICAgY29uc3Qga2V5ID0gKE1hdGgucmFuZG9tKCkgKiAxMDAwKS50b1N0cmluZygpO1xuICAgIGNvbnN0IGNvbXBvbmVudHMgPSBTVFJPS0VfVE9fQ09NUE9ORU5UX01BUFtzdHJva2VEZXRlcm1pbmVkLnRvU3RyaW5nKCldO1xuXG4gICAgY29uc3QgbmV3Vmlld3MgPSBjb21wb25lbnRzLm1hcChDb21wb25lbnQgPT4gKFxuICAgICAgPENvbXBvbmVudCBrZXk9e2tleX0gb25EZWxldGVSZW5kZXI9e2RlbGV0ZVJlbmRlcn0gLz5cbiAgICApKTtcbiAgICBzZXRWaWV3KHZpZXcuY29uY2F0KG5ld1ZpZXdzKS5mbGF0KCkpO1xuICB9O1xuXG4gIHJldHVybiAoXG4gICAgPD5cbiAgICAgIDxIb3RrZXlzRGV0ZWN0b3JcbiAgICAgICAgb25EZXRlY3RlZD17c3Ryb2tlID0+IG9uRGV0ZWN0ZWQoc3Ryb2tlKX1cbiAgICAgICAga2V5U2V0PXtLRVlfU0VUfVxuICAgICAgICBzdHJva2VTZXQ9e1NUUk9LRV9TRVR9XG4gICAgICAvPlxuICAgICAge3ZpZXd9XG4gICAgPC8+XG4gICk7XG5cbn07XG5cbmV4cG9ydCBkZWZhdWx0IEhvdGtleXNNYW5hZ2VyO1xuIl0sIm1hcHBpbmdzIjoiQUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUVBO0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBRUE7QUFRQTtBQUNBO0FBQ0E7QUFFQTtBQUNBO0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUVBOzs7O0FBR0E7QUFDQTtBQUVBO0FBQ0E7QUFBQTtBQUNBO0FBQ0E7QUFFQTs7Ozs7QUFHQTtBQUNBO0FBQ0E7QUFFQTtBQUNBO0FBQUE7QUFBQTtBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBR0E7QUFDQTtBQUNBO0FBSEE7QUFTQTtBQUNBO0FBQ0EiLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./src/client/js/components/Hotkeys/HotkeysManager.jsx\n");
- /***/ }),
- /***/ "./src/client/js/components/Hotkeys/Subscribers/CreatePage.jsx":
- /*!*********************************************************************!*\
- !*** ./src/client/js/components/Hotkeys/Subscribers/CreatePage.jsx ***!
- \*********************************************************************/
- /*! exports provided: default */
- /***/ (function(module, __webpack_exports__, __webpack_require__) {
- "use strict";
- eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"./node_modules/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! prop-types */ \"./node_modules/prop-types/index.js\");\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(prop_types__WEBPACK_IMPORTED_MODULE_1__);\n/* harmony import */ var _services_NavigationContainer__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../../services/NavigationContainer */ \"./src/client/js/services/NavigationContainer.js\");\n/* harmony import */ var _UnstatedUtils__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../UnstatedUtils */ \"./src/client/js/components/UnstatedUtils.jsx\");\n\n\n\n\n\nconst CreatePage = props => {\n // setup effect\n Object(react__WEBPACK_IMPORTED_MODULE_0__[\"useEffect\"])(() => {\n props.navigationContainer.openPageCreateModal(); // remove this\n\n props.onDeleteRender(undefined);\n }, [props]);\n return react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(react__WEBPACK_IMPORTED_MODULE_0___default.a.Fragment, null);\n};\n\nCreatePage.propTypes = {\n navigationContainer: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.instanceOf(_services_NavigationContainer__WEBPACK_IMPORTED_MODULE_2__[\"default\"]).isRequired,\n onDeleteRender: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.func.isRequired\n};\nconst CreatePageWrapper = Object(_UnstatedUtils__WEBPACK_IMPORTED_MODULE_3__[\"withUnstatedContainers\"])(CreatePage, [_services_NavigationContainer__WEBPACK_IMPORTED_MODULE_2__[\"default\"]]);\n\nCreatePageWrapper.getHotkeyStrokes = () => {\n return [['c']];\n};\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (CreatePageWrapper);//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9zcmMvY2xpZW50L2pzL2NvbXBvbmVudHMvSG90a2V5cy9TdWJzY3JpYmVycy9DcmVhdGVQYWdlLmpzeC5qcyIsInNvdXJjZXMiOlsid2VicGFjazovLy8uL3NyYy9jbGllbnQvanMvY29tcG9uZW50cy9Ib3RrZXlzL1N1YnNjcmliZXJzL0NyZWF0ZVBhZ2UuanN4PzU5M2QiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IFJlYWN0LCB7IHVzZUVmZmVjdCB9IGZyb20gJ3JlYWN0JztcbmltcG9ydCBQcm9wVHlwZXMgZnJvbSAncHJvcC10eXBlcyc7XG5cbmltcG9ydCBOYXZpZ2F0aW9uQ29udGFpbmVyIGZyb20gJy4uLy4uLy4uL3NlcnZpY2VzL05hdmlnYXRpb25Db250YWluZXInO1xuaW1wb3J0IHsgd2l0aFVuc3RhdGVkQ29udGFpbmVycyB9IGZyb20gJy4uLy4uL1Vuc3RhdGVkVXRpbHMnO1xuXG5jb25zdCBDcmVhdGVQYWdlID0gKHByb3BzKSA9PiB7XG5cbiAgLy8gc2V0dXAgZWZmZWN0XG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgcHJvcHMubmF2aWdhdGlvbkNvbnRhaW5lci5vcGVuUGFnZUNyZWF0ZU1vZGFsKCk7XG5cbiAgICAvLyByZW1vdmUgdGhpc1xuICAgIHByb3BzLm9uRGVsZXRlUmVuZGVyKHRoaXMpO1xuICB9LCBbcHJvcHNdKTtcblxuICByZXR1cm4gPD48Lz47XG59O1xuXG5DcmVhdGVQYWdlLnByb3BUeXBlcyA9IHtcbiAgbmF2aWdhdGlvbkNvbnRhaW5lcjogUHJvcFR5cGVzLmluc3RhbmNlT2YoTmF2aWdhdGlvbkNvbnRhaW5lcikuaXNSZXF1aXJlZCxcbiAgb25EZWxldGVSZW5kZXI6IFByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWQsXG59O1xuXG5jb25zdCBDcmVhdGVQYWdlV3JhcHBlciA9IHdpdGhVbnN0YXRlZENvbnRhaW5lcnMoQ3JlYXRlUGFnZSwgW05hdmlnYXRpb25Db250YWluZXJdKTtcblxuQ3JlYXRlUGFnZVdyYXBwZXIuZ2V0SG90a2V5U3Ryb2tlcyA9ICgpID0+IHtcbiAgcmV0dXJuIFtbJ2MnXV07XG59O1xuXG5leHBvcnQgZGVmYXVsdCBDcmVhdGVQYWdlV3JhcHBlcjtcbiJdLCJtYXBwaW5ncyI6IkFBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUNBO0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUVBO0FBQ0E7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFGQTtBQUtBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBIiwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./src/client/js/components/Hotkeys/Subscribers/CreatePage.jsx\n");
- /***/ }),
- /***/ "./src/client/js/components/Hotkeys/Subscribers/EditPage.jsx":
- /*!*******************************************************************!*\
- !*** ./src/client/js/components/Hotkeys/Subscribers/EditPage.jsx ***!
- \*******************************************************************/
- /*! exports provided: default */
- /***/ (function(module, __webpack_exports__, __webpack_require__) {
- "use strict";
- eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"./node_modules/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! prop-types */ \"./node_modules/prop-types/index.js\");\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(prop_types__WEBPACK_IMPORTED_MODULE_1__);\n/* harmony import */ var _services_NavigationContainer__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../../services/NavigationContainer */ \"./src/client/js/services/NavigationContainer.js\");\n/* harmony import */ var _UnstatedUtils__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../UnstatedUtils */ \"./src/client/js/components/UnstatedUtils.jsx\");\n\n\n\n\n\nconst EditPage = props => {\n // setup effect\n Object(react__WEBPACK_IMPORTED_MODULE_0__[\"useEffect\"])(() => {\n // ignore when dom that has 'modal in' classes exists\n if (document.getElementsByClassName('modal in').length > 0) {\n return;\n }\n\n props.navigationContainer.setEditorMode('edit'); // remove this\n\n props.onDeleteRender(undefined);\n }, [props]);\n return react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(react__WEBPACK_IMPORTED_MODULE_0___default.a.Fragment, null);\n};\n\nEditPage.propTypes = {\n navigationContainer: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.instanceOf(_services_NavigationContainer__WEBPACK_IMPORTED_MODULE_2__[\"default\"]).isRequired,\n onDeleteRender: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.func.isRequired\n};\nconst EditPageWrapper = Object(_UnstatedUtils__WEBPACK_IMPORTED_MODULE_3__[\"withUnstatedContainers\"])(EditPage, [_services_NavigationContainer__WEBPACK_IMPORTED_MODULE_2__[\"default\"]]);\n\nEditPageWrapper.getHotkeyStrokes = () => {\n return [['e']];\n};\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (EditPageWrapper);//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9zcmMvY2xpZW50L2pzL2NvbXBvbmVudHMvSG90a2V5cy9TdWJzY3JpYmVycy9FZGl0UGFnZS5qc3guanMiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9zcmMvY2xpZW50L2pzL2NvbXBvbmVudHMvSG90a2V5cy9TdWJzY3JpYmVycy9FZGl0UGFnZS5qc3g/MzljYiJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgUmVhY3QsIHsgdXNlRWZmZWN0IH0gZnJvbSAncmVhY3QnO1xuaW1wb3J0IFByb3BUeXBlcyBmcm9tICdwcm9wLXR5cGVzJztcblxuaW1wb3J0IE5hdmlnYXRpb25Db250YWluZXIgZnJvbSAnLi4vLi4vLi4vc2VydmljZXMvTmF2aWdhdGlvbkNvbnRhaW5lcic7XG5pbXBvcnQgeyB3aXRoVW5zdGF0ZWRDb250YWluZXJzIH0gZnJvbSAnLi4vLi4vVW5zdGF0ZWRVdGlscyc7XG5cbmNvbnN0IEVkaXRQYWdlID0gKHByb3BzKSA9PiB7XG5cbiAgLy8gc2V0dXAgZWZmZWN0XG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgLy8gaWdub3JlIHdoZW4gZG9tIHRoYXQgaGFzICdtb2RhbCBpbicgY2xhc3NlcyBleGlzdHNcbiAgICBpZiAoZG9jdW1lbnQuZ2V0RWxlbWVudHNCeUNsYXNzTmFtZSgnbW9kYWwgaW4nKS5sZW5ndGggPiAwKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgcHJvcHMubmF2aWdhdGlvbkNvbnRhaW5lci5zZXRFZGl0b3JNb2RlKCdlZGl0Jyk7XG5cbiAgICAvLyByZW1vdmUgdGhpc1xuICAgIHByb3BzLm9uRGVsZXRlUmVuZGVyKHRoaXMpO1xuICB9LCBbcHJvcHNdKTtcblxuICByZXR1cm4gPD48Lz47XG59O1xuXG5FZGl0UGFnZS5wcm9wVHlwZXMgPSB7XG4gIG5hdmlnYXRpb25Db250YWluZXI6IFByb3BUeXBlcy5pbnN0YW5jZU9mKE5hdmlnYXRpb25Db250YWluZXIpLmlzUmVxdWlyZWQsXG4gIG9uRGVsZXRlUmVuZGVyOiBQcm9wVHlwZXMuZnVuYy5pc1JlcXVpcmVkLFxufTtcblxuY29uc3QgRWRpdFBhZ2VXcmFwcGVyID0gd2l0aFVuc3RhdGVkQ29udGFpbmVycyhFZGl0UGFnZSwgW05hdmlnYXRpb25Db250YWluZXJdKTtcblxuRWRpdFBhZ2VXcmFwcGVyLmdldEhvdGtleVN0cm9rZXMgPSAoKSA9PiB7XG4gIHJldHVybiBbWydlJ11dO1xufTtcblxuZXhwb3J0IGRlZmF1bHQgRWRpdFBhZ2VXcmFwcGVyO1xuIl0sIm1hcHBpbmdzIjoiQUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQ0E7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUVBO0FBQ0E7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFGQTtBQUtBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBIiwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./src/client/js/components/Hotkeys/Subscribers/EditPage.jsx\n");
- /***/ }),
- /***/ "./src/client/js/components/Hotkeys/Subscribers/ShowShortcutsModal.jsx":
- /*!*****************************************************************************!*\
- !*** ./src/client/js/components/Hotkeys/Subscribers/ShowShortcutsModal.jsx ***!
- \*****************************************************************************/
- /*! exports provided: default */
- /***/ (function(module, __webpack_exports__, __webpack_require__) {
- "use strict";
- eval("__webpack_require__.r(__webpack_exports__);\n/* WEBPACK VAR INJECTION */(function($) {/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"./node_modules/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! prop-types */ \"./node_modules/prop-types/index.js\");\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(prop_types__WEBPACK_IMPORTED_MODULE_1__);\n\n\n\nconst ShowShortcutsModal = props => {\n // setup effect\n Object(react__WEBPACK_IMPORTED_MODULE_0__[\"useEffect\"])(() => {\n // show modal to create a page\n $('#shortcuts-modal').modal('toggle'); // remove this\n\n props.onDeleteRender(undefined);\n }, [props]);\n return react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(react__WEBPACK_IMPORTED_MODULE_0___default.a.Fragment, null);\n};\n\nShowShortcutsModal.propTypes = {\n onDeleteRender: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.func.isRequired\n};\n\nShowShortcutsModal.getHotkeyStrokes = () => {\n return [['/+ctrl'], ['/+meta']];\n};\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (ShowShortcutsModal);\n/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(/*! jquery */ \"jquery\")))//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9zcmMvY2xpZW50L2pzL2NvbXBvbmVudHMvSG90a2V5cy9TdWJzY3JpYmVycy9TaG93U2hvcnRjdXRzTW9kYWwuanN4LmpzIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vLy4vc3JjL2NsaWVudC9qcy9jb21wb25lbnRzL0hvdGtleXMvU3Vic2NyaWJlcnMvU2hvd1Nob3J0Y3V0c01vZGFsLmpzeD80NWRmIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBSZWFjdCwgeyB1c2VFZmZlY3QgfSBmcm9tICdyZWFjdCc7XG5pbXBvcnQgUHJvcFR5cGVzIGZyb20gJ3Byb3AtdHlwZXMnO1xuXG5jb25zdCBTaG93U2hvcnRjdXRzTW9kYWwgPSAocHJvcHMpID0+IHtcblxuICAvLyBzZXR1cCBlZmZlY3RcbiAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICAvLyBzaG93IG1vZGFsIHRvIGNyZWF0ZSBhIHBhZ2VcbiAgICAkKCcjc2hvcnRjdXRzLW1vZGFsJykubW9kYWwoJ3RvZ2dsZScpO1xuXG4gICAgLy8gcmVtb3ZlIHRoaXNcbiAgICBwcm9wcy5vbkRlbGV0ZVJlbmRlcih0aGlzKTtcbiAgfSwgW3Byb3BzXSk7XG5cbiAgcmV0dXJuIDw+PC8+O1xufTtcblxuU2hvd1Nob3J0Y3V0c01vZGFsLnByb3BUeXBlcyA9IHtcbiAgb25EZWxldGVSZW5kZXI6IFByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWQsXG59O1xuXG5TaG93U2hvcnRjdXRzTW9kYWwuZ2V0SG90a2V5U3Ryb2tlcyA9ICgpID0+IHtcbiAgcmV0dXJuIFtbJy8rY3RybCddLCBbJy8rbWV0YSddXTtcbn07XG5cbmV4cG9ydCBkZWZhdWx0IFNob3dTaG9ydGN1dHNNb2RhbDtcbiJdLCJtYXBwaW5ncyI6IkFBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQ0E7QUFDQTtBQUNBO0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUVBO0FBQ0E7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBREE7QUFDQTtBQUdBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QSIsInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./src/client/js/components/Hotkeys/Subscribers/ShowShortcutsModal.jsx\n");
- /***/ }),
- /***/ "./src/client/js/components/Hotkeys/Subscribers/ShowStaffCredit.jsx":
- /*!**************************************************************************!*\
- !*** ./src/client/js/components/Hotkeys/Subscribers/ShowStaffCredit.jsx ***!
- \**************************************************************************/
- /*! exports provided: default */
- /***/ (function(module, __webpack_exports__, __webpack_require__) {
- "use strict";
- eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"./node_modules/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! prop-types */ \"./node_modules/prop-types/index.js\");\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(prop_types__WEBPACK_IMPORTED_MODULE_1__);\n/* harmony import */ var _StaffCredit_StaffCredit__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../StaffCredit/StaffCredit */ \"./src/client/js/components/StaffCredit/StaffCredit.jsx\");\n\n\n\n\nconst ShowStaffCredit = props => {\n return react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(_StaffCredit_StaffCredit__WEBPACK_IMPORTED_MODULE_2__[\"default\"], {\n onClosed: () => props.onDeleteRender(undefined)\n });\n};\n\nShowStaffCredit.propTypes = {\n onDeleteRender: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.func.isRequired\n};\n\nShowStaffCredit.getHotkeyStrokes = () => {\n return [['ArrowUp', 'ArrowUp', 'ArrowDown', 'ArrowDown', 'ArrowLeft', 'ArrowRight', 'ArrowLeft', 'ArrowRight', 'b', 'a']];\n};\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (ShowStaffCredit);//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9zcmMvY2xpZW50L2pzL2NvbXBvbmVudHMvSG90a2V5cy9TdWJzY3JpYmVycy9TaG93U3RhZmZDcmVkaXQuanN4LmpzIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vLy4vc3JjL2NsaWVudC9qcy9jb21wb25lbnRzL0hvdGtleXMvU3Vic2NyaWJlcnMvU2hvd1N0YWZmQ3JlZGl0LmpzeD83ZWIwIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBSZWFjdCBmcm9tICdyZWFjdCc7XG5pbXBvcnQgUHJvcFR5cGVzIGZyb20gJ3Byb3AtdHlwZXMnO1xuXG5pbXBvcnQgU3RhZmZDcmVkaXQgZnJvbSAnLi4vLi4vU3RhZmZDcmVkaXQvU3RhZmZDcmVkaXQnO1xuXG5jb25zdCBTaG93U3RhZmZDcmVkaXQgPSAocHJvcHMpID0+IHtcblxuICByZXR1cm4gPFN0YWZmQ3JlZGl0IG9uQ2xvc2VkPXsoKSA9PiBwcm9wcy5vbkRlbGV0ZVJlbmRlcih0aGlzKX0gLz47XG5cbn07XG5cblNob3dTdGFmZkNyZWRpdC5wcm9wVHlwZXMgPSB7XG4gIG9uRGVsZXRlUmVuZGVyOiBQcm9wVHlwZXMuZnVuYy5pc1JlcXVpcmVkLFxufTtcblxuU2hvd1N0YWZmQ3JlZGl0LmdldEhvdGtleVN0cm9rZXMgPSAoKSA9PiB7XG4gIHJldHVybiBbWydBcnJvd1VwJywgJ0Fycm93VXAnLCAnQXJyb3dEb3duJywgJ0Fycm93RG93bicsICdBcnJvd0xlZnQnLCAnQXJyb3dSaWdodCcsICdBcnJvd0xlZnQnLCAnQXJyb3dSaWdodCcsICdiJywgJ2EnXV07XG59O1xuXG5leHBvcnQgZGVmYXVsdCBTaG93U3RhZmZDcmVkaXQ7XG4iXSwibWFwcGluZ3MiOiJBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQ0E7QUFFQTtBQUNBO0FBQ0E7QUFFQTtBQUFBO0FBQUE7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQURBO0FBQ0E7QUFHQTtBQUNBO0FBQ0E7QUFDQTtBQUNBIiwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./src/client/js/components/Hotkeys/Subscribers/ShowStaffCredit.jsx\n");
- /***/ }),
- /***/ "./src/client/js/components/Hotkeys/Subscribers/SwitchToMirrorMode.jsx":
- /*!*****************************************************************************!*\
- !*** ./src/client/js/components/Hotkeys/Subscribers/SwitchToMirrorMode.jsx ***!
- \*****************************************************************************/
- /*! exports provided: default */
- /***/ (function(module, __webpack_exports__, __webpack_require__) {
- "use strict";
- eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"./node_modules/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! prop-types */ \"./node_modules/prop-types/index.js\");\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(prop_types__WEBPACK_IMPORTED_MODULE_1__);\n\n\n\nconst SwitchToMirrorMode = props => {\n // setup effect\n Object(react__WEBPACK_IMPORTED_MODULE_0__[\"useEffect\"])(() => {\n document.body.classList.add('mirror'); // remove this\n\n props.onDeleteRender(undefined);\n }, [props]);\n return react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(react__WEBPACK_IMPORTED_MODULE_0___default.a.Fragment, null);\n};\n\nSwitchToMirrorMode.propTypes = {\n onDeleteRender: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.func.isRequired\n};\n\nSwitchToMirrorMode.getHotkeyStrokes = () => {\n return [['x', 'x', 'b', 'b', 'a', 'y', 'a', 'y', 'ArrowDown', 'ArrowLeft']];\n};\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (SwitchToMirrorMode);//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9zcmMvY2xpZW50L2pzL2NvbXBvbmVudHMvSG90a2V5cy9TdWJzY3JpYmVycy9Td2l0Y2hUb01pcnJvck1vZGUuanN4LmpzIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vLy4vc3JjL2NsaWVudC9qcy9jb21wb25lbnRzL0hvdGtleXMvU3Vic2NyaWJlcnMvU3dpdGNoVG9NaXJyb3JNb2RlLmpzeD9lYTBmIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBSZWFjdCwgeyB1c2VFZmZlY3QgfSBmcm9tICdyZWFjdCc7XG5pbXBvcnQgUHJvcFR5cGVzIGZyb20gJ3Byb3AtdHlwZXMnO1xuXG5jb25zdCBTd2l0Y2hUb01pcnJvck1vZGUgPSAocHJvcHMpID0+IHtcblxuICAvLyBzZXR1cCBlZmZlY3RcbiAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICBkb2N1bWVudC5ib2R5LmNsYXNzTGlzdC5hZGQoJ21pcnJvcicpO1xuXG4gICAgLy8gcmVtb3ZlIHRoaXNcbiAgICBwcm9wcy5vbkRlbGV0ZVJlbmRlcih0aGlzKTtcbiAgfSwgW3Byb3BzXSk7XG5cbiAgcmV0dXJuIDw+PC8+O1xufTtcblxuU3dpdGNoVG9NaXJyb3JNb2RlLnByb3BUeXBlcyA9IHtcbiAgb25EZWxldGVSZW5kZXI6IFByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWQsXG59O1xuXG5Td2l0Y2hUb01pcnJvck1vZGUuZ2V0SG90a2V5U3Ryb2tlcyA9ICgpID0+IHtcbiAgcmV0dXJuIFtbJ3gnLCAneCcsICdiJywgJ2InLCAnYScsICd5JywgJ2EnLCAneScsICdBcnJvd0Rvd24nLCAnQXJyb3dMZWZ0J11dO1xufTtcblxuZXhwb3J0IGRlZmF1bHQgU3dpdGNoVG9NaXJyb3JNb2RlO1xuIl0sIm1hcHBpbmdzIjoiQUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFDQTtBQUNBO0FBQ0E7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUVBO0FBQ0E7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBREE7QUFDQTtBQUdBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EiLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./src/client/js/components/Hotkeys/Subscribers/SwitchToMirrorMode.jsx\n");
- /***/ }),
- /***/ "./src/client/js/components/Icons/GrowiLogo.jsx":
- /*!******************************************************!*\
- !*** ./src/client/js/components/Icons/GrowiLogo.jsx ***!
- \******************************************************/
- /*! exports provided: default */
- /***/ (function(module, __webpack_exports__, __webpack_require__) {
- "use strict";
- eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"./node_modules/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);\n\n\nconst GrowiLogo = () => react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"svg\", {\n xmlns: \"http://www.w3.org/2000/svg\",\n width: \"32\",\n height: \"32\",\n viewBox: \"0 0 226.44 196.11\"\n}, react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"path\", {\n d: \"M56.61 196.11L169.83 196.11 226.44 98.06 188.7 98.06 150.96 163.43 75.48 163.43 56.61 196.11z\",\n className: \"group2\"\n}), react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"path\", {\n // eslint-disable-next-line max-len\n d: \"M75.48 98.05L94.35 65.37 150.96 65.38 207.57 65.37 207.57 65.38 226.44 98.06 169.83 98.06 113.22 98.06 94.39 130.66 94.3 130.66 84.92 114.4 75.48 98.05z\",\n className: \"group1\"\n}), react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"path\", {\n d: \"M0 98.06L56.6 0 113.22 0.01 169.83 0.01 169.83 0.01 188.69 32.68 132.09 32.69 75.47 32.69 18.86 130.74 0 98.06z\",\n className: \"group1\"\n}), react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"path\", {\n d: \"M75.48 163.43L56.61 130.74 37.71 163.46 47.15 179.81 56.54 196.07 56.63 196.07 75.48 163.43z\",\n className: \"group1\"\n}));\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (GrowiLogo);//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9zcmMvY2xpZW50L2pzL2NvbXBvbmVudHMvSWNvbnMvR3Jvd2lMb2dvLmpzeC5qcyIsInNvdXJjZXMiOlsid2VicGFjazovLy8uL3NyYy9jbGllbnQvanMvY29tcG9uZW50cy9JY29ucy9Hcm93aUxvZ28uanN4P2YxZjgiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IFJlYWN0IGZyb20gJ3JlYWN0JztcblxuY29uc3QgR3Jvd2lMb2dvID0gKCkgPT4gKFxuICA8c3ZnXG4gICAgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiXG4gICAgd2lkdGg9XCIzMlwiXG4gICAgaGVpZ2h0PVwiMzJcIlxuICAgIHZpZXdCb3g9XCIwIDAgMjI2LjQ0IDE5Ni4xMVwiXG4gID5cbiAgICA8cGF0aFxuICAgICAgZD1cIk01Ni42MSAxOTYuMTFMMTY5LjgzIDE5Ni4xMSAyMjYuNDQgOTguMDYgMTg4LjcgOTguMDYgMTUwLjk2IDE2My40MyA3NS40OCAxNjMuNDMgNTYuNjEgMTk2LjExelwiXG4gICAgICBjbGFzc05hbWU9XCJncm91cDJcIlxuICAgID5cbiAgICA8L3BhdGg+XG4gICAgPHBhdGhcbiAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBtYXgtbGVuXG4gICAgICBkPVwiTTc1LjQ4IDk4LjA1TDk0LjM1IDY1LjM3IDE1MC45NiA2NS4zOCAyMDcuNTcgNjUuMzcgMjA3LjU3IDY1LjM4IDIyNi40NCA5OC4wNiAxNjkuODMgOTguMDYgMTEzLjIyIDk4LjA2IDk0LjM5IDEzMC42NiA5NC4zIDEzMC42NiA4NC45MiAxMTQuNCA3NS40OCA5OC4wNXpcIlxuICAgICAgY2xhc3NOYW1lPVwiZ3JvdXAxXCJcbiAgICA+XG4gICAgPC9wYXRoPlxuICAgIDxwYXRoXG4gICAgICBkPVwiTTAgOTguMDZMNTYuNiAwIDExMy4yMiAwLjAxIDE2OS44MyAwLjAxIDE2OS44MyAwLjAxIDE4OC42OSAzMi42OCAxMzIuMDkgMzIuNjkgNzUuNDcgMzIuNjkgMTguODYgMTMwLjc0IDAgOTguMDZ6XCJcbiAgICAgIGNsYXNzTmFtZT1cImdyb3VwMVwiXG4gICAgPlxuICAgIDwvcGF0aD5cbiAgICA8cGF0aFxuICAgICAgZD1cIk03NS40OCAxNjMuNDNMNTYuNjEgMTMwLjc0IDM3LjcxIDE2My40NiA0Ny4xNSAxNzkuODEgNTYuNTQgMTk2LjA3IDU2LjYzIDE5Ni4wNyA3NS40OCAxNjMuNDN6XCJcbiAgICAgIGNsYXNzTmFtZT1cImdyb3VwMVwiXG4gICAgPlxuICAgIDwvcGF0aD5cbiAgPC9zdmc+XG4pO1xuXG5leHBvcnQgZGVmYXVsdCBHcm93aUxvZ287XG4iXSwibWFwcGluZ3MiOiJBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQ0E7QUFDQTtBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBSkE7QUFPQTtBQUNBO0FBRkE7QUFNQTtBQUNBO0FBQ0E7QUFIQTtBQU9BO0FBQ0E7QUFGQTtBQU1BO0FBQ0E7QUFGQTtBQUNBO0FBT0EiLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./src/client/js/components/Icons/GrowiLogo.jsx\n");
- /***/ }),
- /***/ "./src/client/js/components/Icons/MoonIcon.jsx":
- /*!*****************************************************!*\
- !*** ./src/client/js/components/Icons/MoonIcon.jsx ***!
- \*****************************************************/
- /*! exports provided: default */
- /***/ (function(module, __webpack_exports__, __webpack_require__) {
- "use strict";
- eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"./node_modules/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);\n\n\nconst MoonIcon = () => react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"svg\", {\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 23 23\"\n}, react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"g\", {\n transform: \"translate(-923.5 -688.5)\"\n}, react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"rect\", {\n width: \"23\",\n height: \"23\",\n fill: \"none\",\n transform: \"translate(923.5 688.5)\"\n}), react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"path\", {\n d: \"M934.893,710.532a10.646,10.646,0,0,1-10.378-8.416.7.7,0,0,1,1.138-.686, 7.621,7.621,0,0,0,10.721-10.744.7.7,0,0,1,.683-1.14,10.6,10.6,0,0,1-2.164, 20.986Zm-8.417-6.9A9.2,9.2,0,1,0,938.583,691.5a9.028,9.028,0,0,1-12.107,12.133Z\"\n})));\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (MoonIcon);//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9zcmMvY2xpZW50L2pzL2NvbXBvbmVudHMvSWNvbnMvTW9vbkljb24uanN4LmpzIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vLy4vc3JjL2NsaWVudC9qcy9jb21wb25lbnRzL0ljb25zL01vb25JY29uLmpzeD80ZmJmIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBSZWFjdCBmcm9tICdyZWFjdCc7XG5cbmNvbnN0IE1vb25JY29uID0gKCkgPT4gKFxuICA8c3ZnXG4gICAgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiXG4gICAgdmlld0JveD1cIjAgMCAyMyAyM1wiXG4gID5cbiAgICA8ZyB0cmFuc2Zvcm09XCJ0cmFuc2xhdGUoLTkyMy41IC02ODguNSlcIj5cbiAgICAgIDxyZWN0IHdpZHRoPVwiMjNcIiBoZWlnaHQ9XCIyM1wiIGZpbGw9XCJub25lXCIgdHJhbnNmb3JtPVwidHJhbnNsYXRlKDkyMy41IDY4OC41KVwiIC8+XG4gICAgICA8cGF0aCBkPVwiTTkzNC44OTMsNzEwLjUzMmExMC42NDYsMTAuNjQ2LDAsMCwxLTEwLjM3OC04LjQxNi43LjcsMCwwLDEsMS4xMzgtLjY4NixcbiAgICAgICA3LjYyMSw3LjYyMSwwLDAsMCwxMC43MjEtMTAuNzQ0LjcuNywwLDAsMSwuNjgzLTEuMTQsMTAuNiwxMC42LDAsMCwxLTIuMTY0LFxuICAgICAgICAyMC45ODZabS04LjQxNy02LjlBOS4yLDkuMiwwLDEsMCw5MzguNTgzLDY5MS41YTkuMDI4LDkuMDI4LDAsMCwxLTEyLjEwNywxMi4xMzNaXCJcbiAgICAgIC8+XG4gICAgPC9nPlxuICA8L3N2Zz5cblxuKTtcblxuXG5leHBvcnQgZGVmYXVsdCBNb29uSWNvbjtcbiJdLCJtYXBwaW5ncyI6IkFBQUE7QUFBQTtBQUFBO0FBQUE7QUFDQTtBQUNBO0FBRUE7QUFDQTtBQUZBO0FBSUE7QUFBQTtBQUNBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFDQTtBQUFBO0FBQ0E7QUFTQSIsInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./src/client/js/components/Icons/MoonIcon.jsx\n");
- /***/ }),
- /***/ "./src/client/js/components/Icons/SidebarDockIcon.jsx":
- /*!************************************************************!*\
- !*** ./src/client/js/components/Icons/SidebarDockIcon.jsx ***!
- \************************************************************/
- /*! exports provided: default */
- /***/ (function(module, __webpack_exports__, __webpack_require__) {
- "use strict";
- eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"./node_modules/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);\n\n\nconst SidebarDockIcon = () => react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"svg\", {\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 23 23\"\n}, react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"rect\", {\n width: \"23\",\n height: \"23\",\n fillOpacity: \"0\"\n}), react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"path\", {\n d: \"M20.86,3.92a.64.64,0,0,1,.64.63v13.9a.64.64,0,0,1-.64.63H2.14a.64.64,0,0, 1-.64-.63V4.55a.64.64,0,0,1,.64-.63H20.86m0-1.5H2.14A2.13,2.13,0,0,0,0,4.55v13.9a2.13, 2.13,0,0,0,2.14,2.13H20.86A2.13,2.13,0,0,0,23,18.45V4.55a2.13,2.13,0,0,0-2.14-2.13Z\"\n}), react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"rect\", {\n x: \"7.49\",\n y: \"3.05\",\n width: \"1.2\",\n height: \"16.91\"\n}));\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (SidebarDockIcon);//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9zcmMvY2xpZW50L2pzL2NvbXBvbmVudHMvSWNvbnMvU2lkZWJhckRvY2tJY29uLmpzeC5qcyIsInNvdXJjZXMiOlsid2VicGFjazovLy8uL3NyYy9jbGllbnQvanMvY29tcG9uZW50cy9JY29ucy9TaWRlYmFyRG9ja0ljb24uanN4PzM5ODYiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IFJlYWN0IGZyb20gJ3JlYWN0JztcblxuY29uc3QgU2lkZWJhckRvY2tJY29uID0gKCkgPT4gKFxuICA8c3ZnXG4gICAgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiXG4gICAgdmlld0JveD1cIjAgMCAyMyAyM1wiXG4gID5cbiAgICA8cmVjdCB3aWR0aD1cIjIzXCIgaGVpZ2h0PVwiMjNcIiBmaWxsT3BhY2l0eT1cIjBcIiAvPlxuICAgIDxwYXRoXG4gICAgICBkPVwiTTIwLjg2LDMuOTJhLjY0LjY0LDAsMCwxLC42NC42M3YxMy45YS42NC42NCwwLDAsMS0uNjQuNjNIMi4xNGEuNjQuNjQsMCwwLFxuICAgICAgMS0uNjQtLjYzVjQuNTVhLjY0LjY0LDAsMCwxLC42NC0uNjNIMjAuODZtMC0xLjVIMi4xNEEyLjEzLDIuMTMsMCwwLDAsMCw0LjU1djEzLjlhMi4xMyxcbiAgICAgIDIuMTMsMCwwLDAsMi4xNCwyLjEzSDIwLjg2QTIuMTMsMi4xMywwLDAsMCwyMywxOC40NVY0LjU1YTIuMTMsMi4xMywwLDAsMC0yLjE0LTIuMTNaXCJcbiAgICAvPlxuICAgIDxyZWN0IHg9XCI3LjQ5XCIgeT1cIjMuMDVcIiB3aWR0aD1cIjEuMlwiIGhlaWdodD1cIjE2LjkxXCIgLz5cbiAgPC9zdmc+XG5cbik7XG5cblxuZXhwb3J0IGRlZmF1bHQgU2lkZWJhckRvY2tJY29uO1xuIl0sIm1hcHBpbmdzIjoiQUFBQTtBQUFBO0FBQUE7QUFBQTtBQUNBO0FBQ0E7QUFFQTtBQUNBO0FBRkE7QUFJQTtBQUFBO0FBQUE7QUFBQTtBQUVBO0FBREE7QUFLQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQ0E7QUFLQSIsInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./src/client/js/components/Icons/SidebarDockIcon.jsx\n");
- /***/ }),
- /***/ "./src/client/js/components/Icons/SidebarDrawerIcon.jsx":
- /*!**************************************************************!*\
- !*** ./src/client/js/components/Icons/SidebarDrawerIcon.jsx ***!
- \**************************************************************/
- /*! exports provided: default */
- /***/ (function(module, __webpack_exports__, __webpack_require__) {
- "use strict";
- eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"./node_modules/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);\n\n\nconst SidebarDrawerIcon = () => react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"svg\", {\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 23 23\"\n}, react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"rect\", {\n width: \"23\",\n height: \"23\",\n fillOpacity: \"0\"\n}), react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"path\", {\n d: \"M20.9,3.9c0.3,0,0.6,0.3,0.6,0.6v13.9c0,0.3-0.3,0.6-0.6,0.6H2.1c-0.3,0-0.6-0.3-0.6-0.6V4.5c0-0.3,0.3-0.6,0.6-0.6H20.9 M20.9,2.4H2.1C1,2.4,0,3.4,0,4.5c0,0,0,0,0,0v13.9c0,1.2,1,2.1,2.1,2.1c0,0,0,0,0,0h18.7c1.2,0,2.1-0.9,2.1-2.1c0,0,0,0,0,0V4.5 C23,3.4,22,2.4,20.9,2.4C20.9,2.4,20.9,2.4,20.9,2.4z\"\n}), react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"rect\", {\n x: \"7.5\",\n y: \"3.9\",\n width: \"1.2\",\n height: \"0.8\"\n}), react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"rect\", {\n x: \"7.5\",\n y: \"15.3\",\n width: \"1.2\",\n height: \"1.5\"\n}), react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"rect\", {\n x: \"7.5\",\n y: \"12.3\",\n width: \"1.2\",\n height: \"1.5\"\n}), react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"rect\", {\n x: \"7.5\",\n y: \"9.2\",\n width: \"1.2\",\n height: \"1.6\"\n}), react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"rect\", {\n x: \"7.5\",\n y: \"6.1\",\n width: \"1.2\",\n height: \"1.6\"\n}), react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"rect\", {\n x: \"7.5\",\n y: \"18.4\",\n width: \"1.2\",\n height: \"0.8\"\n}), react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"path\", {\n d: \"M15.1,14.9c-0.2,0-0.3-0.1-0.4-0.2l-2.8-2.8c-0.2-0.2-0.2-0.6,0-0.8l2.8-2.8c0.2-0.2,0.6-0.2,0.9,0s0.2,0.6,0,0.9l-2.4,2.4 l2.4,2.4c0.2,0.2,0.2,0.6,0,0.9C15.4,14.8,15.3,14.9,15.1,14.9z\"\n}));\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (SidebarDrawerIcon);//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9zcmMvY2xpZW50L2pzL2NvbXBvbmVudHMvSWNvbnMvU2lkZWJhckRyYXdlckljb24uanN4LmpzIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vLy4vc3JjL2NsaWVudC9qcy9jb21wb25lbnRzL0ljb25zL1NpZGViYXJEcmF3ZXJJY29uLmpzeD9mODgwIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBSZWFjdCBmcm9tICdyZWFjdCc7XG5cbmNvbnN0IFNpZGViYXJEcmF3ZXJJY29uID0gKCkgPT4gKFxuICA8c3ZnXG4gICAgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiXG4gICAgdmlld0JveD1cIjAgMCAyMyAyM1wiXG4gID5cbiAgICA8cmVjdCB3aWR0aD1cIjIzXCIgaGVpZ2h0PVwiMjNcIiBmaWxsT3BhY2l0eT1cIjBcIiAvPlxuICAgIDxwYXRoIGQ9XCJNMjAuOSwzLjljMC4zLDAsMC42LDAuMywwLjYsMC42djEzLjljMCwwLjMtMC4zLDAuNi0wLjYsMC42SDIuMWMtMC4zLDAtMC42LTAuMy0wLjYtMC42VjQuNWMwLTAuMywwLjMtMC42LDAuNi0wLjZIMjAuOVxuICAgICAgTTIwLjksMi40SDIuMUMxLDIuNCwwLDMuNCwwLDQuNWMwLDAsMCwwLDAsMHYxMy45YzAsMS4yLDEsMi4xLDIuMSwyLjFjMCwwLDAsMCwwLDBoMTguN2MxLjIsMCwyLjEtMC45LDIuMS0yLjFjMCwwLDAsMCwwLDBWNC41XG4gICAgICBDMjMsMy40LDIyLDIuNCwyMC45LDIuNEMyMC45LDIuNCwyMC45LDIuNCwyMC45LDIuNHpcIlxuICAgIC8+XG4gICAgPHJlY3QgeD1cIjcuNVwiIHk9XCIzLjlcIiB3aWR0aD1cIjEuMlwiIGhlaWdodD1cIjAuOFwiIC8+XG4gICAgPHJlY3QgeD1cIjcuNVwiIHk9XCIxNS4zXCIgd2lkdGg9XCIxLjJcIiBoZWlnaHQ9XCIxLjVcIiAvPlxuICAgIDxyZWN0IHg9XCI3LjVcIiB5PVwiMTIuM1wiIHdpZHRoPVwiMS4yXCIgaGVpZ2h0PVwiMS41XCIgLz5cbiAgICA8cmVjdCB4PVwiNy41XCIgeT1cIjkuMlwiIHdpZHRoPVwiMS4yXCIgaGVpZ2h0PVwiMS42XCIgLz5cbiAgICA8cmVjdCB4PVwiNy41XCIgeT1cIjYuMVwiIHdpZHRoPVwiMS4yXCIgaGVpZ2h0PVwiMS42XCIgLz5cbiAgICA8cmVjdCB4PVwiNy41XCIgeT1cIjE4LjRcIiB3aWR0aD1cIjEuMlwiIGhlaWdodD1cIjAuOFwiIC8+XG4gICAgPHBhdGggZD1cIk0xNS4xLDE0LjljLTAuMiwwLTAuMy0wLjEtMC40LTAuMmwtMi44LTIuOGMtMC4yLTAuMi0wLjItMC42LDAtMC44bDIuOC0yLjhjMC4yLTAuMiwwLjYtMC4yLDAuOSwwczAuMiwwLjYsMCwwLjlsLTIuNCwyLjRcbiAgICAgIGwyLjQsMi40YzAuMiwwLjIsMC4yLDAuNiwwLDAuOUMxNS40LDE0LjgsMTUuMywxNC45LDE1LjEsMTQuOXpcIlxuICAgIC8+XG4gIDwvc3ZnPlxuKTtcblxuZXhwb3J0IGRlZmF1bHQgU2lkZWJhckRyYXdlckljb247XG4iXSwibWFwcGluZ3MiOiJBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQ0E7QUFDQTtBQUVBO0FBQ0E7QUFGQTtBQUlBO0FBQUE7QUFBQTtBQUFBO0FBQ0E7QUFBQTtBQUlBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFDQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQ0E7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUNBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFDQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQ0E7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUNBO0FBQUE7QUFDQTtBQUtBIiwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./src/client/js/components/Icons/SidebarDrawerIcon.jsx\n");
- /***/ }),
- /***/ "./src/client/js/components/Icons/SunIcon.jsx":
- /*!****************************************************!*\
- !*** ./src/client/js/components/Icons/SunIcon.jsx ***!
- \****************************************************/
- /*! exports provided: default */
- /***/ (function(module, __webpack_exports__, __webpack_require__) {
- "use strict";
- eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"./node_modules/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);\n\n\nconst SunIcon = () => react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"svg\", {\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 23 23\"\n}, react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"g\", {\n transform: \"translate(-888.497 -688.492)\"\n}, react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"rect\", {\n width: \"23\",\n height: \"23\",\n transform: \"translate(888.503 688.509)\",\n fillOpacity: \"0\"\n}), react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"path\", {\n d: \"M900,695.489a4.5,4.5,0,1,1-4.5,4.5,4.5,4.5,0,0,1,4.5-4.5m0-1.408a5.9,5.9,0,1,0,5.9,5.9,5.91,5.91,0,0,0-5.9-5.9Z\"\n}), react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"path\", {\n d: \"M893.968,694.573a.6.6,0,0,1-.426-.176l-1.681-1.681a.6.6,0,0,1,.853-.852l1.681,1.68a.6.6,0,0,1-.427,1.029Z\"\n}), react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"path\", {\n d: \"M907.707,708.295a.6.6,0,0,1-.427-.177l-1.681-1.68a.6.6,0,0,1,.854-.853l1.68,1.681a.6.6,0,0,1-.426,1.029Z\"\n}), react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"path\", {\n d: \"M899.991,692.074a.6.6,0,0,1-.6-.6v-2.377a.6.6,0,0,1,1.206,0v2.377A.6.6,0,0,1,899.991,692.074Z\"\n}), react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"path\", {\n d: \"M900,711.491a.6.6,0,0,1-.6-.6v-2.377a.6.6,0,1,1,1.206,0v2.377A.6.6,0,0,1,900,711.491Z\"\n}), react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"path\", {\n d: \"M906.017,694.564a.6.6,0,0,1-.426-1.029l1.68-1.68a.6.6,0,0,1,.853.854l-1.68,1.68A.6.6,0,0,1,906.017,694.564Z\"\n}), react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"path\", {\n d: \"M892.3,708.3a.6.6,0,0,1-.426-1.029l1.68-1.681a.6.6,0,1,1,.853.852l-1.68,1.681A.6.6,0,0,1,892.3,708.3Z\"\n}), react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"path\", {\n d: \"M910.894,700.587h-2.377a.6.6,0,1,1,0-1.2h2.377a.6.6,0,1,1,0,1.2Z\"\n}), react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"path\", {\n d: \"M891.477,700.6H889.1a.6.6,0,1,1,0-1.2h2.377a.6.6,0,1,1,0,1.2Z\"\n})));\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (SunIcon);//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9zcmMvY2xpZW50L2pzL2NvbXBvbmVudHMvSWNvbnMvU3VuSWNvbi5qc3guanMiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9zcmMvY2xpZW50L2pzL2NvbXBvbmVudHMvSWNvbnMvU3VuSWNvbi5qc3g/ZGE1MSJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgUmVhY3QgZnJvbSAncmVhY3QnO1xuXG5jb25zdCBTdW5JY29uID0gKCkgPT4gKFxuICA8c3ZnXG4gICAgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiXG4gICAgdmlld0JveD1cIjAgMCAyMyAyM1wiXG4gID5cbiAgICA8ZyB0cmFuc2Zvcm09XCJ0cmFuc2xhdGUoLTg4OC40OTcgLTY4OC40OTIpXCI+XG4gICAgICA8cmVjdCB3aWR0aD1cIjIzXCIgaGVpZ2h0PVwiMjNcIiB0cmFuc2Zvcm09XCJ0cmFuc2xhdGUoODg4LjUwMyA2ODguNTA5KVwiIGZpbGxPcGFjaXR5PVwiMFwiIC8+XG4gICAgICA8cGF0aCBkPVwiTTkwMCw2OTUuNDg5YTQuNSw0LjUsMCwxLDEtNC41LDQuNSw0LjUsNC41LDAsMCwxLDQuNS00LjVtMC0xLjQwOGE1LjksNS45LDAsMSwwLDUuOSw1LjksNS45MSw1LjkxLDAsMCwwLTUuOS01LjlaXCIgLz5cbiAgICAgIDxwYXRoIGQ9XCJNODkzLjk2OCw2OTQuNTczYS42LjYsMCwwLDEtLjQyNi0uMTc2bC0xLjY4MS0xLjY4MWEuNi42LDAsMCwxLC44NTMtLjg1MmwxLjY4MSwxLjY4YS42LjYsMCwwLDEtLjQyNywxLjAyOVpcIiAvPlxuICAgICAgPHBhdGggZD1cIk05MDcuNzA3LDcwOC4yOTVhLjYuNiwwLDAsMS0uNDI3LS4xNzdsLTEuNjgxLTEuNjhhLjYuNiwwLDAsMSwuODU0LS44NTNsMS42OCwxLjY4MWEuNi42LDAsMCwxLS40MjYsMS4wMjlaXCIgLz5cblxuICAgICAgPHBhdGggZD1cIk04OTkuOTkxLDY5Mi4wNzRhLjYuNiwwLDAsMS0uNi0uNnYtMi4zNzdhLjYuNiwwLDAsMSwxLjIwNiwwdjIuMzc3QS42LjYsMCwwLDEsODk5Ljk5MSw2OTIuMDc0WlwiIC8+XG4gICAgICA8cGF0aCBkPVwiTTkwMCw3MTEuNDkxYS42LjYsMCwwLDEtLjYtLjZ2LTIuMzc3YS42LjYsMCwxLDEsMS4yMDYsMHYyLjM3N0EuNi42LDAsMCwxLDkwMCw3MTEuNDkxWlwiIC8+XG5cbiAgICAgIDxwYXRoIGQ9XCJNOTA2LjAxNyw2OTQuNTY0YS42LjYsMCwwLDEtLjQyNi0xLjAyOWwxLjY4LTEuNjhhLjYuNiwwLDAsMSwuODUzLjg1NGwtMS42OCwxLjY4QS42LjYsMCwwLDEsOTA2LjAxNyw2OTQuNTY0WlwiIC8+XG4gICAgICA8cGF0aCBkPVwiTTg5Mi4zLDcwOC4zYS42LjYsMCwwLDEtLjQyNi0xLjAyOWwxLjY4LTEuNjgxYS42LjYsMCwxLDEsLjg1My44NTJsLTEuNjgsMS42ODFBLjYuNiwwLDAsMSw4OTIuMyw3MDguM1pcIiAvPlxuXG4gICAgICA8cGF0aCBkPVwiTTkxMC44OTQsNzAwLjU4N2gtMi4zNzdhLjYuNiwwLDEsMSwwLTEuMmgyLjM3N2EuNi42LDAsMSwxLDAsMS4yWlwiIC8+XG4gICAgICA8cGF0aCBkPVwiTTg5MS40NzcsNzAwLjZIODg5LjFhLjYuNiwwLDEsMSwwLTEuMmgyLjM3N2EuNi42LDAsMSwxLDAsMS4yWlwiIC8+XG4gICAgPC9nPlxuICA8L3N2Zz5cblxuKTtcblxuXG5leHBvcnQgZGVmYXVsdCBTdW5JY29uO1xuIl0sIm1hcHBpbmdzIjoiQUFBQTtBQUFBO0FBQUE7QUFBQTtBQUNBO0FBQ0E7QUFFQTtBQUNBO0FBRkE7QUFJQTtBQUFBO0FBQ0E7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUNBO0FBQUE7QUFDQTtBQUFBO0FBQ0E7QUFBQTtBQUVBO0FBQUE7QUFDQTtBQUFBO0FBRUE7QUFBQTtBQUNBO0FBQUE7QUFFQTtBQUFBO0FBQ0E7QUFBQTtBQUNBO0FBTUEiLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./src/client/js/components/Icons/SunIcon.jsx\n");
- /***/ }),
- /***/ "./src/client/js/components/Navbar/GlobalSearch.jsx":
- /*!**********************************************************!*\
- !*** ./src/client/js/components/Navbar/GlobalSearch.jsx ***!
- \**********************************************************/
- /*! exports provided: default */
- /***/ (function(module, __webpack_exports__, __webpack_require__) {
- "use strict";
- eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"./node_modules/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! prop-types */ \"./node_modules/prop-types/index.js\");\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(prop_types__WEBPACK_IMPORTED_MODULE_1__);\n/* harmony import */ var react_i18next__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! react-i18next */ \"./node_modules/react-i18next/dist/es/index.js\");\n/* harmony import */ var _UnstatedUtils__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../UnstatedUtils */ \"./src/client/js/components/UnstatedUtils.jsx\");\n/* harmony import */ var _services_AppContainer__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../../services/AppContainer */ \"./src/client/js/services/AppContainer.js\");\n/* harmony import */ var _services_NavigationContainer__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../../services/NavigationContainer */ \"./src/client/js/services/NavigationContainer.js\");\n/* harmony import */ var _SearchForm__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../SearchForm */ \"./src/client/js/components/SearchForm.jsx\");\n\n\n\n\n\n\n\n\nclass GlobalSearch extends react__WEBPACK_IMPORTED_MODULE_0___default.a.Component {\n constructor(props) {\n super(props);\n this.state = {\n text: '',\n isScopeChildren: false\n };\n this.onInputChange = this.onInputChange.bind(this);\n this.onClickAllPages = this.onClickAllPages.bind(this);\n this.onClickChildren = this.onClickChildren.bind(this);\n this.search = this.search.bind(this);\n }\n\n onInputChange(text) {\n this.setState({\n text\n });\n }\n\n onClickAllPages() {\n this.setState({\n isScopeChildren: false\n });\n }\n\n onClickChildren() {\n this.setState({\n isScopeChildren: true\n });\n }\n\n search() {\n const url = new URL(window.location.href);\n url.pathname = '/_search'; // construct search query\n\n let q = this.state.text;\n\n if (this.state.isScopeChildren) {\n q += ` prefix:${window.location.pathname}`;\n }\n\n url.searchParams.append('q', q);\n window.location.href = url.href;\n }\n\n render() {\n const {\n t,\n appContainer,\n dropup\n } = this.props;\n const scopeLabel = this.state.isScopeChildren ? t('header_search_box.label.This tree') : t('header_search_box.label.All pages');\n const config = appContainer.getConfig();\n const isReachable = config.isSearchServiceReachable;\n return react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"div\", {\n className: `form-group mb-0 d-print-none ${isReachable ? '' : 'has-error'}`\n }, react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"div\", {\n className: \"input-group flex-nowrap\"\n }, react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"div\", {\n className: `input-group-prepend ${dropup ? 'dropup' : ''}`\n }, react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"button\", {\n className: \"btn btn-secondary dropdown-toggle py-0\",\n type: \"button\",\n \"data-toggle\": \"dropdown\",\n \"aria-haspopup\": \"true\"\n }, scopeLabel), react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"div\", {\n className: \"dropdown-menu\"\n }, react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"button\", {\n className: \"dropdown-item\",\n type: \"button\",\n onClick: this.onClickAllPages\n }, t('header_search_box.item_label.All pages')), react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"button\", {\n className: \"dropdown-item\",\n type: \"button\",\n onClick: this.onClickChildren\n }, t('header_search_box.item_label.This tree')))), react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(_SearchForm__WEBPACK_IMPORTED_MODULE_6__[\"default\"], {\n t: this.props.t,\n crowi: this.props.appContainer,\n onInputChange: this.onInputChange,\n onSubmit: this.search,\n placeholder: \"Search ...\",\n dropup: dropup\n }), react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"div\", {\n className: \"btn-group-submit-search\"\n }, react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"span\", {\n className: \"btn-link text-decoration-none\",\n onClick: this.search\n }, react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"i\", {\n className: \"icon-magnifier\"\n })))));\n }\n\n}\n\nGlobalSearch.propTypes = {\n t: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.func.isRequired,\n // i18next\n appContainer: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.instanceOf(_services_AppContainer__WEBPACK_IMPORTED_MODULE_4__[\"default\"]).isRequired,\n navigationContainer: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.instanceOf(_services_NavigationContainer__WEBPACK_IMPORTED_MODULE_5__[\"default\"]).isRequired,\n dropup: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.bool\n};\n/**\n * Wrapper component for using unstated\n */\n\nconst GlobalSearchWrapper = Object(_UnstatedUtils__WEBPACK_IMPORTED_MODULE_3__[\"withUnstatedContainers\"])(GlobalSearch, [_services_AppContainer__WEBPACK_IMPORTED_MODULE_4__[\"default\"], _services_NavigationContainer__WEBPACK_IMPORTED_MODULE_5__[\"default\"]]);\n/* harmony default export */ __webpack_exports__[\"default\"] = (Object(react_i18next__WEBPACK_IMPORTED_MODULE_2__[\"withTranslation\"])()(GlobalSearchWrapper));//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9zcmMvY2xpZW50L2pzL2NvbXBvbmVudHMvTmF2YmFyL0dsb2JhbFNlYXJjaC5qc3guanMiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9zcmMvY2xpZW50L2pzL2NvbXBvbmVudHMvTmF2YmFyL0dsb2JhbFNlYXJjaC5qc3g/N2UyMSJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgUmVhY3QgZnJvbSAncmVhY3QnO1xuaW1wb3J0IFByb3BUeXBlcyBmcm9tICdwcm9wLXR5cGVzJztcbmltcG9ydCB7IHdpdGhUcmFuc2xhdGlvbiB9IGZyb20gJ3JlYWN0LWkxOG5leHQnO1xuXG5pbXBvcnQgeyB3aXRoVW5zdGF0ZWRDb250YWluZXJzIH0gZnJvbSAnLi4vVW5zdGF0ZWRVdGlscyc7XG5pbXBvcnQgQXBwQ29udGFpbmVyIGZyb20gJy4uLy4uL3NlcnZpY2VzL0FwcENvbnRhaW5lcic7XG5pbXBvcnQgTmF2aWdhdGlvbkNvbnRhaW5lciBmcm9tICcuLi8uLi9zZXJ2aWNlcy9OYXZpZ2F0aW9uQ29udGFpbmVyJztcblxuaW1wb3J0IFNlYXJjaEZvcm0gZnJvbSAnLi4vU2VhcmNoRm9ybSc7XG5cblxuY2xhc3MgR2xvYmFsU2VhcmNoIGV4dGVuZHMgUmVhY3QuQ29tcG9uZW50IHtcblxuICBjb25zdHJ1Y3Rvcihwcm9wcykge1xuICAgIHN1cGVyKHByb3BzKTtcblxuICAgIHRoaXMuc3RhdGUgPSB7XG4gICAgICB0ZXh0OiAnJyxcbiAgICAgIGlzU2NvcGVDaGlsZHJlbjogZmFsc2UsXG4gICAgfTtcblxuICAgIHRoaXMub25JbnB1dENoYW5nZSA9IHRoaXMub25JbnB1dENoYW5nZS5iaW5kKHRoaXMpO1xuICAgIHRoaXMub25DbGlja0FsbFBhZ2VzID0gdGhpcy5vbkNsaWNrQWxsUGFnZXMuYmluZCh0aGlzKTtcbiAgICB0aGlzLm9uQ2xpY2tDaGlsZHJlbiA9IHRoaXMub25DbGlja0NoaWxkcmVuLmJpbmQodGhpcyk7XG4gICAgdGhpcy5zZWFyY2ggPSB0aGlzLnNlYXJjaC5iaW5kKHRoaXMpO1xuICB9XG5cbiAgb25JbnB1dENoYW5nZSh0ZXh0KSB7XG4gICAgdGhpcy5zZXRTdGF0ZSh7IHRleHQgfSk7XG4gIH1cblxuICBvbkNsaWNrQWxsUGFnZXMoKSB7XG4gICAgdGhpcy5zZXRTdGF0ZSh7IGlzU2NvcGVDaGlsZHJlbjogZmFsc2UgfSk7XG4gIH1cblxuICBvbkNsaWNrQ2hpbGRyZW4oKSB7XG4gICAgdGhpcy5zZXRTdGF0ZSh7IGlzU2NvcGVDaGlsZHJlbjogdHJ1ZSB9KTtcbiAgfVxuXG4gIHNlYXJjaCgpIHtcbiAgICBjb25zdCB1cmwgPSBuZXcgVVJMKHdpbmRvdy5sb2NhdGlvbi5ocmVmKTtcbiAgICB1cmwucGF0aG5hbWUgPSAnL19zZWFyY2gnO1xuXG4gICAgLy8gY29uc3RydWN0IHNlYXJjaCBxdWVyeVxuICAgIGxldCBxID0gdGhpcy5zdGF0ZS50ZXh0O1xuICAgIGlmICh0aGlzLnN0YXRlLmlzU2NvcGVDaGlsZHJlbikge1xuICAgICAgcSArPSBgIHByZWZpeDoke3dpbmRvdy5sb2NhdGlvbi5wYXRobmFtZX1gO1xuICAgIH1cbiAgICB1cmwuc2VhcmNoUGFyYW1zLmFwcGVuZCgncScsIHEpO1xuXG4gICAgd2luZG93LmxvY2F0aW9uLmhyZWYgPSB1cmwuaHJlZjtcbiAgfVxuXG4gIHJlbmRlcigpIHtcbiAgICBjb25zdCB7IHQsIGFwcENvbnRhaW5lciwgZHJvcHVwIH0gPSB0aGlzLnByb3BzO1xuICAgIGNvbnN0IHNjb3BlTGFiZWwgPSB0aGlzLnN0YXRlLmlzU2NvcGVDaGlsZHJlblxuICAgICAgPyB0KCdoZWFkZXJfc2VhcmNoX2JveC5sYWJlbC5UaGlzIHRyZWUnKVxuICAgICAgOiB0KCdoZWFkZXJfc2VhcmNoX2JveC5sYWJlbC5BbGwgcGFnZXMnKTtcblxuICAgIGNvbnN0IGNvbmZpZyA9IGFwcENvbnRhaW5lci5nZXRDb25maWcoKTtcbiAgICBjb25zdCBpc1JlYWNoYWJsZSA9IGNvbmZpZy5pc1NlYXJjaFNlcnZpY2VSZWFjaGFibGU7XG5cbiAgICByZXR1cm4gKFxuICAgICAgPGRpdiBjbGFzc05hbWU9e2Bmb3JtLWdyb3VwIG1iLTAgZC1wcmludC1ub25lICR7aXNSZWFjaGFibGUgPyAnJyA6ICdoYXMtZXJyb3InfWB9PlxuICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImlucHV0LWdyb3VwIGZsZXgtbm93cmFwXCI+XG4gICAgICAgICAgPGRpdiBjbGFzc05hbWU9e2BpbnB1dC1ncm91cC1wcmVwZW5kICR7ZHJvcHVwID8gJ2Ryb3B1cCcgOiAnJ31gfT5cbiAgICAgICAgICAgIDxidXR0b24gY2xhc3NOYW1lPVwiYnRuIGJ0bi1zZWNvbmRhcnkgZHJvcGRvd24tdG9nZ2xlIHB5LTBcIiB0eXBlPVwiYnV0dG9uXCIgZGF0YS10b2dnbGU9XCJkcm9wZG93blwiIGFyaWEtaGFzcG9wdXA9XCJ0cnVlXCI+XG4gICAgICAgICAgICAgIHtzY29wZUxhYmVsfVxuICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImRyb3Bkb3duLW1lbnVcIj5cbiAgICAgICAgICAgICAgPGJ1dHRvbiBjbGFzc05hbWU9XCJkcm9wZG93bi1pdGVtXCIgdHlwZT1cImJ1dHRvblwiIG9uQ2xpY2s9e3RoaXMub25DbGlja0FsbFBhZ2VzfT57IHQoJ2hlYWRlcl9zZWFyY2hfYm94Lml0ZW1fbGFiZWwuQWxsIHBhZ2VzJykgfTwvYnV0dG9uPlxuICAgICAgICAgICAgICA8YnV0dG9uIGNsYXNzTmFtZT1cImRyb3Bkb3duLWl0ZW1cIiB0eXBlPVwiYnV0dG9uXCIgb25DbGljaz17dGhpcy5vbkNsaWNrQ2hpbGRyZW59PnsgdCgnaGVhZGVyX3NlYXJjaF9ib3guaXRlbV9sYWJlbC5UaGlzIHRyZWUnKSB9PC9idXR0b24+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8U2VhcmNoRm9ybVxuICAgICAgICAgICAgdD17dGhpcy5wcm9wcy50fVxuICAgICAgICAgICAgY3Jvd2k9e3RoaXMucHJvcHMuYXBwQ29udGFpbmVyfVxuICAgICAgICAgICAgb25JbnB1dENoYW5nZT17dGhpcy5vbklucHV0Q2hhbmdlfVxuICAgICAgICAgICAgb25TdWJtaXQ9e3RoaXMuc2VhcmNofVxuICAgICAgICAgICAgcGxhY2Vob2xkZXI9XCJTZWFyY2ggLi4uXCJcbiAgICAgICAgICAgIGRyb3B1cD17ZHJvcHVwfVxuICAgICAgICAgIC8+XG4gICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJidG4tZ3JvdXAtc3VibWl0LXNlYXJjaFwiPlxuICAgICAgICAgICAgPHNwYW4gY2xhc3NOYW1lPVwiYnRuLWxpbmsgdGV4dC1kZWNvcmF0aW9uLW5vbmVcIiBvbkNsaWNrPXt0aGlzLnNlYXJjaH0+XG4gICAgICAgICAgICAgIDxpIGNsYXNzTmFtZT1cImljb24tbWFnbmlmaWVyXCI+PC9pPlxuICAgICAgICAgICAgPC9zcGFuPlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvZGl2PlxuICAgICk7XG4gIH1cblxufVxuXG5HbG9iYWxTZWFyY2gucHJvcFR5cGVzID0ge1xuICB0OiBQcm9wVHlwZXMuZnVuYy5pc1JlcXVpcmVkLCAvLyBpMThuZXh0XG4gIGFwcENvbnRhaW5lcjogUHJvcFR5cGVzLmluc3RhbmNlT2YoQXBwQ29udGFpbmVyKS5pc1JlcXVpcmVkLFxuICBuYXZpZ2F0aW9uQ29udGFpbmVyOiBQcm9wVHlwZXMuaW5zdGFuY2VPZihOYXZpZ2F0aW9uQ29udGFpbmVyKS5pc1JlcXVpcmVkLFxuXG4gIGRyb3B1cDogUHJvcFR5cGVzLmJvb2wsXG59O1xuXG4vKipcbiAqIFdyYXBwZXIgY29tcG9uZW50IGZvciB1c2luZyB1bnN0YXRlZFxuICovXG5jb25zdCBHbG9iYWxTZWFyY2hXcmFwcGVyID0gd2l0aFVuc3RhdGVkQ29udGFpbmVycyhHbG9iYWxTZWFyY2gsIFtBcHBDb250YWluZXIsIE5hdmlnYXRpb25Db250YWluZXJdKTtcblxuZXhwb3J0IGRlZmF1bHQgd2l0aFRyYW5zbGF0aW9uKCkoR2xvYmFsU2VhcmNoV3JhcHBlcik7XG4iXSwibWFwcGluZ3MiOiJBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFDQTtBQUNBO0FBRUE7QUFDQTtBQUNBO0FBRUE7QUFDQTtBQUVBO0FBRUE7QUFDQTtBQUVBO0FBQ0E7QUFDQTtBQUZBO0FBS0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUFBO0FBQUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUFBO0FBQUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUFBO0FBQUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFFQTtBQUNBO0FBQUE7QUFDQTtBQUNBO0FBQ0E7QUFBQTtBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUNBO0FBSUE7QUFDQTtBQUVBO0FBQ0E7QUFBQTtBQUNBO0FBQUE7QUFDQTtBQUFBO0FBQ0E7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUdBO0FBQUE7QUFDQTtBQUFBO0FBQUE7QUFBQTtBQUNBO0FBQUE7QUFBQTtBQUFBO0FBSUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBTkE7QUFRQTtBQUFBO0FBQ0E7QUFBQTtBQUFBO0FBQ0E7QUFBQTtBQU1BO0FBQ0E7QUFoRkE7QUFDQTtBQWtGQTtBQUNBO0FBQUE7QUFDQTtBQUNBO0FBRUE7QUFMQTtBQVFBOzs7O0FBR0E7QUFFQSIsInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./src/client/js/components/Navbar/GlobalSearch.jsx\n");
- /***/ }),
- /***/ "./src/client/js/components/Navbar/GrowiNavbar.jsx":
- /*!*********************************************************!*\
- !*** ./src/client/js/components/Navbar/GrowiNavbar.jsx ***!
- \*********************************************************/
- /*! exports provided: default */
- /***/ (function(module, __webpack_exports__, __webpack_require__) {
- "use strict";
- eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"./node_modules/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! prop-types */ \"./node_modules/prop-types/index.js\");\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(prop_types__WEBPACK_IMPORTED_MODULE_1__);\n/* harmony import */ var react_i18next__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! react-i18next */ \"./node_modules/react-i18next/dist/es/index.js\");\n/* harmony import */ var reactstrap_es_UncontrolledTooltip__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! reactstrap/es/UncontrolledTooltip */ \"./node_modules/reactstrap/es/UncontrolledTooltip.js\");\n/* harmony import */ var _UnstatedUtils__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../UnstatedUtils */ \"./src/client/js/components/UnstatedUtils.jsx\");\n/* harmony import */ var _services_NavigationContainer__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../../services/NavigationContainer */ \"./src/client/js/services/NavigationContainer.js\");\n/* harmony import */ var _services_AppContainer__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../../services/AppContainer */ \"./src/client/js/services/AppContainer.js\");\n/* harmony import */ var _Icons_GrowiLogo__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ../Icons/GrowiLogo */ \"./src/client/js/components/Icons/GrowiLogo.jsx\");\n/* harmony import */ var _PersonalDropdown__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ./PersonalDropdown */ \"./src/client/js/components/Navbar/PersonalDropdown.jsx\");\n/* harmony import */ var _GlobalSearch__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ./GlobalSearch */ \"./src/client/js/components/Navbar/GlobalSearch.jsx\");\n\n\n\n\n\n\n\n\n\n\n\nclass GrowiNavbar extends react__WEBPACK_IMPORTED_MODULE_0___default.a.Component {\n renderNavbarRight() {\n const {\n t,\n appContainer,\n navigationContainer\n } = this.props;\n const {\n currentUser\n } = appContainer; // render login button\n\n if (currentUser == null) {\n return react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"li\", {\n id: \"login-user\",\n className: \"nav-item\"\n }, react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"a\", {\n className: \"nav-link\",\n href: \"/login\"\n }, \"Login\"));\n }\n\n return react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(react__WEBPACK_IMPORTED_MODULE_0___default.a.Fragment, null, react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"li\", {\n className: \"nav-item d-none d-md-block\"\n }, react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"button\", {\n className: \"px-md-2 nav-link btn-create-page border-0 bg-transparent\",\n type: \"button\",\n onClick: navigationContainer.openPageCreateModal\n }, react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"i\", {\n className: \"icon-pencil mr-2\"\n }), react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"span\", {\n className: \"d-none d-lg-block\"\n }, t('New')))), react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"li\", {\n className: \"grw-personal-dropdown nav-item dropdown dropdown-toggle dropdown-toggle-no-caret\"\n }, react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(_PersonalDropdown__WEBPACK_IMPORTED_MODULE_8__[\"default\"], null)));\n }\n\n renderConfidential() {\n const {\n appContainer\n } = this.props;\n const {\n crowi\n } = appContainer.config;\n return react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"li\", {\n className: \"nav-item confidential text-light\"\n }, react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"i\", {\n id: \"confidentialTooltip\",\n className: \"icon-info d-md-none\"\n }), react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"span\", {\n className: \"d-none d-md-inline\"\n }, crowi.confidential), react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(reactstrap_es_UncontrolledTooltip__WEBPACK_IMPORTED_MODULE_3__[\"default\"], {\n placement: \"bottom\",\n target: \"confidentialTooltip\",\n className: \"d-md-none\"\n }, crowi.confidential));\n }\n\n render() {\n const {\n appContainer,\n navigationContainer\n } = this.props;\n const {\n crowi,\n isSearchServiceConfigured\n } = appContainer.config;\n const {\n isDeviceSmallerThanMd\n } = navigationContainer.state;\n return react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(react__WEBPACK_IMPORTED_MODULE_0___default.a.Fragment, null, react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"div\", {\n className: \"navbar-brand mr-0\"\n }, react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"a\", {\n className: \"grw-logo d-block\",\n href: \"/\"\n }, react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(_Icons_GrowiLogo__WEBPACK_IMPORTED_MODULE_7__[\"default\"], null))), react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"div\", {\n className: \"grw-app-title d-none d-md-block\"\n }, crowi.title), react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"ul\", {\n className: \"navbar-nav ml-auto\"\n }, this.renderNavbarRight(), crowi.confidential != null && this.renderConfidential()), isSearchServiceConfigured && !isDeviceSmallerThanMd && react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"div\", {\n className: \"grw-global-search grw-global-search-top position-absolute\"\n }, react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(_GlobalSearch__WEBPACK_IMPORTED_MODULE_9__[\"default\"], null)));\n }\n\n}\n/**\n * Wrapper component for using unstated\n */\n\n\nconst GrowiNavbarWrapper = Object(_UnstatedUtils__WEBPACK_IMPORTED_MODULE_4__[\"withUnstatedContainers\"])(GrowiNavbar, [_services_AppContainer__WEBPACK_IMPORTED_MODULE_6__[\"default\"], _services_NavigationContainer__WEBPACK_IMPORTED_MODULE_5__[\"default\"]]);\nGrowiNavbar.propTypes = {\n t: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.func.isRequired,\n // i18next\n appContainer: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.instanceOf(_services_AppContainer__WEBPACK_IMPORTED_MODULE_6__[\"default\"]).isRequired,\n navigationContainer: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.instanceOf(_services_NavigationContainer__WEBPACK_IMPORTED_MODULE_5__[\"default\"]).isRequired\n};\n/* harmony default export */ __webpack_exports__[\"default\"] = (Object(react_i18next__WEBPACK_IMPORTED_MODULE_2__[\"withTranslation\"])()(GrowiNavbarWrapper));//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9zcmMvY2xpZW50L2pzL2NvbXBvbmVudHMvTmF2YmFyL0dyb3dpTmF2YmFyLmpzeC5qcyIsInNvdXJjZXMiOlsid2VicGFjazovLy8uL3NyYy9jbGllbnQvanMvY29tcG9uZW50cy9OYXZiYXIvR3Jvd2lOYXZiYXIuanN4PzFmY2IiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IFJlYWN0IGZyb20gJ3JlYWN0JztcbmltcG9ydCBQcm9wVHlwZXMgZnJvbSAncHJvcC10eXBlcyc7XG5cbmltcG9ydCB7IHdpdGhUcmFuc2xhdGlvbiB9IGZyb20gJ3JlYWN0LWkxOG5leHQnO1xuXG5pbXBvcnQgeyBVbmNvbnRyb2xsZWRUb29sdGlwIH0gZnJvbSAncmVhY3RzdHJhcCc7XG5pbXBvcnQgeyB3aXRoVW5zdGF0ZWRDb250YWluZXJzIH0gZnJvbSAnLi4vVW5zdGF0ZWRVdGlscyc7XG5pbXBvcnQgTmF2aWdhdGlvbkNvbnRhaW5lciBmcm9tICcuLi8uLi9zZXJ2aWNlcy9OYXZpZ2F0aW9uQ29udGFpbmVyJztcbmltcG9ydCBBcHBDb250YWluZXIgZnJvbSAnLi4vLi4vc2VydmljZXMvQXBwQ29udGFpbmVyJztcblxuXG5pbXBvcnQgR3Jvd2lMb2dvIGZyb20gJy4uL0ljb25zL0dyb3dpTG9nbyc7XG5cbmltcG9ydCBQZXJzb25hbERyb3Bkb3duIGZyb20gJy4vUGVyc29uYWxEcm9wZG93bic7XG5pbXBvcnQgR2xvYmFsU2VhcmNoIGZyb20gJy4vR2xvYmFsU2VhcmNoJztcblxuY2xhc3MgR3Jvd2lOYXZiYXIgZXh0ZW5kcyBSZWFjdC5Db21wb25lbnQge1xuXG4gIHJlbmRlck5hdmJhclJpZ2h0KCkge1xuICAgIGNvbnN0IHsgdCwgYXBwQ29udGFpbmVyLCBuYXZpZ2F0aW9uQ29udGFpbmVyIH0gPSB0aGlzLnByb3BzO1xuICAgIGNvbnN0IHsgY3VycmVudFVzZXIgfSA9IGFwcENvbnRhaW5lcjtcblxuICAgIC8vIHJlbmRlciBsb2dpbiBidXR0b25cbiAgICBpZiAoY3VycmVudFVzZXIgPT0gbnVsbCkge1xuICAgICAgcmV0dXJuIDxsaSBpZD1cImxvZ2luLXVzZXJcIiBjbGFzc05hbWU9XCJuYXYtaXRlbVwiPjxhIGNsYXNzTmFtZT1cIm5hdi1saW5rXCIgaHJlZj1cIi9sb2dpblwiPkxvZ2luPC9hPjwvbGk+O1xuICAgIH1cblxuICAgIHJldHVybiAoXG4gICAgICA8PlxuICAgICAgICA8bGkgY2xhc3NOYW1lPVwibmF2LWl0ZW0gZC1ub25lIGQtbWQtYmxvY2tcIj5cbiAgICAgICAgICA8YnV0dG9uIGNsYXNzTmFtZT1cInB4LW1kLTIgbmF2LWxpbmsgYnRuLWNyZWF0ZS1wYWdlIGJvcmRlci0wIGJnLXRyYW5zcGFyZW50XCIgdHlwZT1cImJ1dHRvblwiIG9uQ2xpY2s9e25hdmlnYXRpb25Db250YWluZXIub3BlblBhZ2VDcmVhdGVNb2RhbH0+XG4gICAgICAgICAgICA8aSBjbGFzc05hbWU9XCJpY29uLXBlbmNpbCBtci0yXCI+PC9pPlxuICAgICAgICAgICAgPHNwYW4gY2xhc3NOYW1lPVwiZC1ub25lIGQtbGctYmxvY2tcIj57IHQoJ05ldycpIH08L3NwYW4+XG4gICAgICAgICAgPC9idXR0b24+XG4gICAgICAgIDwvbGk+XG5cbiAgICAgICAgPGxpIGNsYXNzTmFtZT1cImdydy1wZXJzb25hbC1kcm9wZG93biBuYXYtaXRlbSBkcm9wZG93biBkcm9wZG93bi10b2dnbGUgZHJvcGRvd24tdG9nZ2xlLW5vLWNhcmV0XCI+XG4gICAgICAgICAgPFBlcnNvbmFsRHJvcGRvd24gLz5cbiAgICAgICAgPC9saT5cbiAgICAgIDwvPlxuICAgICk7XG4gIH1cblxuICByZW5kZXJDb25maWRlbnRpYWwoKSB7XG4gICAgY29uc3QgeyBhcHBDb250YWluZXIgfSA9IHRoaXMucHJvcHM7XG4gICAgY29uc3QgeyBjcm93aSB9ID0gYXBwQ29udGFpbmVyLmNvbmZpZztcblxuICAgIHJldHVybiAoXG4gICAgICA8bGkgY2xhc3NOYW1lPVwibmF2LWl0ZW0gY29uZmlkZW50aWFsIHRleHQtbGlnaHRcIj5cbiAgICAgICAgPGkgaWQ9XCJjb25maWRlbnRpYWxUb29sdGlwXCIgY2xhc3NOYW1lPVwiaWNvbi1pbmZvIGQtbWQtbm9uZVwiIC8+XG4gICAgICAgIDxzcGFuIGNsYXNzTmFtZT1cImQtbm9uZSBkLW1kLWlubGluZVwiPlxuICAgICAgICAgIHtjcm93aS5jb25maWRlbnRpYWx9XG4gICAgICAgIDwvc3Bhbj5cbiAgICAgICAgPFVuY29udHJvbGxlZFRvb2x0aXBcbiAgICAgICAgICBwbGFjZW1lbnQ9XCJib3R0b21cIlxuICAgICAgICAgIHRhcmdldD1cImNvbmZpZGVudGlhbFRvb2x0aXBcIlxuICAgICAgICAgIGNsYXNzTmFtZT1cImQtbWQtbm9uZVwiXG4gICAgICAgID5cbiAgICAgICAgICB7Y3Jvd2kuY29uZmlkZW50aWFsfVxuICAgICAgICA8L1VuY29udHJvbGxlZFRvb2x0aXA+XG4gICAgICA8L2xpPlxuICAgICk7XG4gIH1cblxuICByZW5kZXIoKSB7XG4gICAgY29uc3QgeyBhcHBDb250YWluZXIsIG5hdmlnYXRpb25Db250YWluZXIgfSA9IHRoaXMucHJvcHM7XG4gICAgY29uc3QgeyBjcm93aSwgaXNTZWFyY2hTZXJ2aWNlQ29uZmlndXJlZCB9ID0gYXBwQ29udGFpbmVyLmNvbmZpZztcbiAgICBjb25zdCB7IGlzRGV2aWNlU21hbGxlclRoYW5NZCB9ID0gbmF2aWdhdGlvbkNvbnRhaW5lci5zdGF0ZTtcblxuICAgIHJldHVybiAoXG4gICAgICA8PlxuXG4gICAgICAgIHsvKiBCcmFuZCBMb2dvICAqL31cbiAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJuYXZiYXItYnJhbmQgbXItMFwiPlxuICAgICAgICAgIDxhIGNsYXNzTmFtZT1cImdydy1sb2dvIGQtYmxvY2tcIiBocmVmPVwiL1wiPlxuICAgICAgICAgICAgPEdyb3dpTG9nbyAvPlxuICAgICAgICAgIDwvYT5cbiAgICAgICAgPC9kaXY+XG5cbiAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJncnctYXBwLXRpdGxlIGQtbm9uZSBkLW1kLWJsb2NrXCI+XG4gICAgICAgICAge2Nyb3dpLnRpdGxlfVxuICAgICAgICA8L2Rpdj5cblxuXG4gICAgICAgIHsvKiBOYXZiYXIgUmlnaHQgICovfVxuICAgICAgICA8dWwgY2xhc3NOYW1lPVwibmF2YmFyLW5hdiBtbC1hdXRvXCI+XG4gICAgICAgICAge3RoaXMucmVuZGVyTmF2YmFyUmlnaHQoKX1cbiAgICAgICAgICB7Y3Jvd2kuY29uZmlkZW50aWFsICE9IG51bGwgJiYgdGhpcy5yZW5kZXJDb25maWRlbnRpYWwoKX1cbiAgICAgICAgPC91bD5cblxuICAgICAgICB7IGlzU2VhcmNoU2VydmljZUNvbmZpZ3VyZWQgJiYgIWlzRGV2aWNlU21hbGxlclRoYW5NZCAmJiAoXG4gICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJncnctZ2xvYmFsLXNlYXJjaCBncnctZ2xvYmFsLXNlYXJjaC10b3AgcG9zaXRpb24tYWJzb2x1dGVcIj5cbiAgICAgICAgICAgIDxHbG9iYWxTZWFyY2ggLz5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgKSB9XG4gICAgICA8Lz5cbiAgICApO1xuICB9XG5cbn1cblxuLyoqXG4gKiBXcmFwcGVyIGNvbXBvbmVudCBmb3IgdXNpbmcgdW5zdGF0ZWRcbiAqL1xuY29uc3QgR3Jvd2lOYXZiYXJXcmFwcGVyID0gd2l0aFVuc3RhdGVkQ29udGFpbmVycyhHcm93aU5hdmJhciwgW0FwcENvbnRhaW5lciwgTmF2aWdhdGlvbkNvbnRhaW5lcl0pO1xuXG5cbkdyb3dpTmF2YmFyLnByb3BUeXBlcyA9IHtcbiAgdDogUHJvcFR5cGVzLmZ1bmMuaXNSZXF1aXJlZCwgLy8gIGkxOG5leHRcblxuICBhcHBDb250YWluZXI6IFByb3BUeXBlcy5pbnN0YW5jZU9mKEFwcENvbnRhaW5lcikuaXNSZXF1aXJlZCxcbiAgbmF2aWdhdGlvbkNvbnRhaW5lcjogUHJvcFR5cGVzLmluc3RhbmNlT2YoTmF2aWdhdGlvbkNvbnRhaW5lcikuaXNSZXF1aXJlZCxcbn07XG5cbmV4cG9ydCBkZWZhdWx0IHdpdGhUcmFuc2xhdGlvbigpKEdyb3dpTmF2YmFyV3JhcHBlcik7XG4iXSwibWFwcGluZ3MiOiJBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFDQTtBQUVBOztBQUdBO0FBQ0E7QUFDQTtBQUdBO0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFFQTtBQUNBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFDQTtBQUFBO0FBQUE7QUFDQTtBQUVBO0FBQ0E7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFDQTtBQUNBO0FBQ0E7QUFFQTtBQUFBO0FBQ0E7QUFBQTtBQUFBO0FBQUE7QUFDQTtBQUFBO0FBQ0E7QUFBQTtBQUlBO0FBQUE7QUFLQTtBQUNBO0FBQ0E7QUFDQTtBQUFBO0FBQUE7QUFDQTtBQUFBO0FBQUE7QUFFQTtBQUNBO0FBQUE7QUFDQTtBQUFBO0FBQUE7QUFDQTtBQUFBO0FBSUE7QUFDQTtBQUNBO0FBSEE7QUFTQTtBQUNBO0FBQ0E7QUFDQTtBQUFBO0FBQUE7QUFBQTtBQUNBO0FBQUE7QUFBQTtBQUFBO0FBQ0E7QUFBQTtBQUFBO0FBRUE7QUFJQTtBQUFBO0FBQ0E7QUFBQTtBQUFBO0FBS0E7QUFBQTtBQU1BO0FBQUE7QUFNQTtBQUFBO0FBTUE7QUFDQTtBQWxGQTtBQXFGQTs7Ozs7QUFHQTtBQUdBO0FBQ0E7QUFBQTtBQUVBO0FBQ0E7QUFKQTtBQU9BIiwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./src/client/js/components/Navbar/GrowiNavbar.jsx\n");
- /***/ }),
- /***/ "./src/client/js/components/Navbar/GrowiNavbarBottom.jsx":
- /*!***************************************************************!*\
- !*** ./src/client/js/components/Navbar/GrowiNavbarBottom.jsx ***!
- \***************************************************************/
- /*! exports provided: default */
- /***/ (function(module, __webpack_exports__, __webpack_require__) {
- "use strict";
- eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"./node_modules/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! prop-types */ \"./node_modules/prop-types/index.js\");\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(prop_types__WEBPACK_IMPORTED_MODULE_1__);\n/* harmony import */ var _services_NavigationContainer__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../services/NavigationContainer */ \"./src/client/js/services/NavigationContainer.js\");\n/* harmony import */ var _UnstatedUtils__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../UnstatedUtils */ \"./src/client/js/components/UnstatedUtils.jsx\");\n/* harmony import */ var _GlobalSearch__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./GlobalSearch */ \"./src/client/js/components/Navbar/GlobalSearch.jsx\");\n\n\n\n\n\n\nconst GrowiNavbarBottom = props => {\n const {\n navigationContainer\n } = props;\n const {\n isDrawerOpened,\n isDeviceSmallerThanMd\n } = navigationContainer.state;\n const additionalClasses = ['grw-navbar-bottom'];\n\n if (isDrawerOpened) {\n additionalClasses.push('grw-navbar-bottom-drawer-opened');\n }\n\n return react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"div\", {\n className: \"d-md-none d-edit-none fixed-bottom\"\n }, isDeviceSmallerThanMd && react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"div\", {\n id: \"grw-global-search-collapse\",\n className: \"grw-global-search collapse bg-dark\"\n }, react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"div\", {\n className: \"p-3\"\n }, react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(_GlobalSearch__WEBPACK_IMPORTED_MODULE_4__[\"default\"], {\n dropup: true\n }))), react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"div\", {\n className: `navbar navbar-expand navbar-dark bg-primary px-0 ${additionalClasses.join(' ')}`\n }, react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"ul\", {\n className: \"navbar-nav w-100\"\n }, react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"li\", {\n className: \"nav-item\"\n }, react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"a\", {\n role: \"button\",\n className: \"nav-link btn-lg\",\n onClick: () => navigationContainer.toggleDrawer()\n }, react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"i\", {\n className: \"icon-menu\"\n }))), react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"li\", {\n className: \"nav-item mx-auto\"\n }, react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"a\", {\n role: \"button\",\n className: \"nav-link btn-lg\",\n \"data-target\": \"#grw-global-search-collapse\",\n \"data-toggle\": \"collapse\"\n }, react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"i\", {\n className: \"icon-magnifier\"\n }))), react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"li\", {\n className: \"nav-item\"\n }, react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"a\", {\n role: \"button\",\n className: \"nav-link btn-lg\",\n onClick: () => navigationContainer.openPageCreateModal()\n }, react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"i\", {\n className: \"icon-pencil\"\n }))))));\n};\n\nGrowiNavbarBottom.propTypes = {\n navigationContainer: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.instanceOf(_services_NavigationContainer__WEBPACK_IMPORTED_MODULE_2__[\"default\"]).isRequired\n};\n/* harmony default export */ __webpack_exports__[\"default\"] = (Object(_UnstatedUtils__WEBPACK_IMPORTED_MODULE_3__[\"withUnstatedContainers\"])(GrowiNavbarBottom, [_services_NavigationContainer__WEBPACK_IMPORTED_MODULE_2__[\"default\"]]));//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9zcmMvY2xpZW50L2pzL2NvbXBvbmVudHMvTmF2YmFyL0dyb3dpTmF2YmFyQm90dG9tLmpzeC5qcyIsInNvdXJjZXMiOlsid2VicGFjazovLy8uL3NyYy9jbGllbnQvanMvY29tcG9uZW50cy9OYXZiYXIvR3Jvd2lOYXZiYXJCb3R0b20uanN4PzllNDEiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IFJlYWN0IGZyb20gJ3JlYWN0JztcbmltcG9ydCBQcm9wVHlwZXMgZnJvbSAncHJvcC10eXBlcyc7XG5cbmltcG9ydCBOYXZpZ2F0aW9uQ29udGFpbmVyIGZyb20gJy4uLy4uL3NlcnZpY2VzL05hdmlnYXRpb25Db250YWluZXInO1xuaW1wb3J0IHsgd2l0aFVuc3RhdGVkQ29udGFpbmVycyB9IGZyb20gJy4uL1Vuc3RhdGVkVXRpbHMnO1xuXG5pbXBvcnQgR2xvYmFsU2VhcmNoIGZyb20gJy4vR2xvYmFsU2VhcmNoJztcblxuY29uc3QgR3Jvd2lOYXZiYXJCb3R0b20gPSAocHJvcHMpID0+IHtcblxuICBjb25zdCB7XG4gICAgbmF2aWdhdGlvbkNvbnRhaW5lcixcbiAgfSA9IHByb3BzO1xuICBjb25zdCB7IGlzRHJhd2VyT3BlbmVkLCBpc0RldmljZVNtYWxsZXJUaGFuTWQgfSA9IG5hdmlnYXRpb25Db250YWluZXIuc3RhdGU7XG5cbiAgY29uc3QgYWRkaXRpb25hbENsYXNzZXMgPSBbJ2dydy1uYXZiYXItYm90dG9tJ107XG4gIGlmIChpc0RyYXdlck9wZW5lZCkge1xuICAgIGFkZGl0aW9uYWxDbGFzc2VzLnB1c2goJ2dydy1uYXZiYXItYm90dG9tLWRyYXdlci1vcGVuZWQnKTtcbiAgfVxuXG4gIHJldHVybiAoXG4gICAgPGRpdiBjbGFzc05hbWU9XCJkLW1kLW5vbmUgZC1lZGl0LW5vbmUgZml4ZWQtYm90dG9tXCI+XG5cbiAgICAgIHsgaXNEZXZpY2VTbWFsbGVyVGhhbk1kICYmIChcbiAgICAgICAgPGRpdiBpZD1cImdydy1nbG9iYWwtc2VhcmNoLWNvbGxhcHNlXCIgY2xhc3NOYW1lPVwiZ3J3LWdsb2JhbC1zZWFyY2ggY29sbGFwc2UgYmctZGFya1wiPlxuICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwicC0zXCI+XG4gICAgICAgICAgICA8R2xvYmFsU2VhcmNoIGRyb3B1cCAvPlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2Rpdj5cbiAgICAgICkgfVxuXG4gICAgICA8ZGl2IGNsYXNzTmFtZT17YG5hdmJhciBuYXZiYXItZXhwYW5kIG5hdmJhci1kYXJrIGJnLXByaW1hcnkgcHgtMCAke2FkZGl0aW9uYWxDbGFzc2VzLmpvaW4oJyAnKX1gfT5cblxuICAgICAgICA8dWwgY2xhc3NOYW1lPVwibmF2YmFyLW5hdiB3LTEwMFwiPlxuICAgICAgICAgIDxsaSBjbGFzc05hbWU9XCJuYXYtaXRlbVwiPlxuICAgICAgICAgICAgPGFcbiAgICAgICAgICAgICAgcm9sZT1cImJ1dHRvblwiXG4gICAgICAgICAgICAgIGNsYXNzTmFtZT1cIm5hdi1saW5rIGJ0bi1sZ1wiXG4gICAgICAgICAgICAgIG9uQ2xpY2s9eygpID0+IG5hdmlnYXRpb25Db250YWluZXIudG9nZ2xlRHJhd2VyKCl9XG4gICAgICAgICAgICA+XG4gICAgICAgICAgICAgIDxpIGNsYXNzTmFtZT1cImljb24tbWVudVwiPjwvaT5cbiAgICAgICAgICAgIDwvYT5cbiAgICAgICAgICA8L2xpPlxuICAgICAgICAgIDxsaSBjbGFzc05hbWU9XCJuYXYtaXRlbSBteC1hdXRvXCI+XG4gICAgICAgICAgICA8YVxuICAgICAgICAgICAgICByb2xlPVwiYnV0dG9uXCJcbiAgICAgICAgICAgICAgY2xhc3NOYW1lPVwibmF2LWxpbmsgYnRuLWxnXCJcbiAgICAgICAgICAgICAgZGF0YS10YXJnZXQ9XCIjZ3J3LWdsb2JhbC1zZWFyY2gtY29sbGFwc2VcIlxuICAgICAgICAgICAgICBkYXRhLXRvZ2dsZT1cImNvbGxhcHNlXCJcbiAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgPGkgY2xhc3NOYW1lPVwiaWNvbi1tYWduaWZpZXJcIj48L2k+XG4gICAgICAgICAgICA8L2E+XG4gICAgICAgICAgPC9saT5cbiAgICAgICAgICA8bGkgY2xhc3NOYW1lPVwibmF2LWl0ZW1cIj5cbiAgICAgICAgICAgIDxhXG4gICAgICAgICAgICAgIHJvbGU9XCJidXR0b25cIlxuICAgICAgICAgICAgICBjbGFzc05hbWU9XCJuYXYtbGluayBidG4tbGdcIlxuICAgICAgICAgICAgICBvbkNsaWNrPXsoKSA9PiBuYXZpZ2F0aW9uQ29udGFpbmVyLm9wZW5QYWdlQ3JlYXRlTW9kYWwoKX1cbiAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgPGkgY2xhc3NOYW1lPVwiaWNvbi1wZW5jaWxcIj48L2k+XG4gICAgICAgICAgICA8L2E+XG4gICAgICAgICAgPC9saT5cbiAgICAgICAgPC91bD5cbiAgICAgIDwvZGl2PlxuXG4gICAgPC9kaXY+XG4gICk7XG59O1xuXG5Hcm93aU5hdmJhckJvdHRvbS5wcm9wVHlwZXMgPSB7XG4gIG5hdmlnYXRpb25Db250YWluZXI6IFByb3BUeXBlcy5pbnN0YW5jZU9mKE5hdmlnYXRpb25Db250YWluZXIpLmlzUmVxdWlyZWQsXG59O1xuXG5leHBvcnQgZGVmYXVsdCB3aXRoVW5zdGF0ZWRDb250YWluZXJzKEdyb3dpTmF2YmFyQm90dG9tLCBbTmF2aWdhdGlvbkNvbnRhaW5lcl0pO1xuIl0sIm1hcHBpbmdzIjoiQUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFDQTtBQUVBO0FBQ0E7QUFFQTtBQUNBO0FBQ0E7QUFFQTtBQUNBO0FBREE7QUFHQTtBQUFBO0FBQUE7QUFBQTtBQUVBO0FBQ0E7QUFBQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFBQTtBQUdBO0FBQUE7QUFBQTtBQUNBO0FBQUE7QUFDQTtBQUFBO0FBS0E7QUFBQTtBQUVBO0FBQUE7QUFDQTtBQUFBO0FBRUE7QUFDQTtBQUNBO0FBSEE7QUFLQTtBQUFBO0FBR0E7QUFBQTtBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBSkE7QUFNQTtBQUFBO0FBR0E7QUFBQTtBQUVBO0FBQ0E7QUFDQTtBQUhBO0FBS0E7QUFBQTtBQVFBO0FBQ0E7QUFDQTtBQUNBO0FBREE7QUFJQSIsInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./src/client/js/components/Navbar/GrowiNavbarBottom.jsx\n");
- /***/ }),
- /***/ "./src/client/js/components/Navbar/PersonalDropdown.jsx":
- /*!**************************************************************!*\
- !*** ./src/client/js/components/Navbar/PersonalDropdown.jsx ***!
- \**************************************************************/
- /*! exports provided: default */
- /***/ (function(module, __webpack_exports__, __webpack_require__) {
- "use strict";
- eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"./node_modules/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! prop-types */ \"./node_modules/prop-types/index.js\");\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(prop_types__WEBPACK_IMPORTED_MODULE_1__);\n/* harmony import */ var react_i18next__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! react-i18next */ \"./node_modules/react-i18next/dist/es/index.js\");\n/* harmony import */ var reactstrap_es_UncontrolledTooltip__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! reactstrap/es/UncontrolledTooltip */ \"./node_modules/reactstrap/es/UncontrolledTooltip.js\");\n/* harmony import */ var _UnstatedUtils__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../UnstatedUtils */ \"./src/client/js/components/UnstatedUtils.jsx\");\n/* harmony import */ var _services_AppContainer__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../../services/AppContainer */ \"./src/client/js/services/AppContainer.js\");\n/* harmony import */ var _services_NavigationContainer__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../../services/NavigationContainer */ \"./src/client/js/services/NavigationContainer.js\");\n/* harmony import */ var _util_color_scheme__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ../../util/color-scheme */ \"./src/client/js/util/color-scheme.js\");\n/* harmony import */ var _User_UserPicture__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ../User/UserPicture */ \"./src/client/js/components/User/UserPicture.jsx\");\n/* harmony import */ var _Icons_SidebarDrawerIcon__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ../Icons/SidebarDrawerIcon */ \"./src/client/js/components/Icons/SidebarDrawerIcon.jsx\");\n/* harmony import */ var _Icons_SidebarDockIcon__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ../Icons/SidebarDockIcon */ \"./src/client/js/components/Icons/SidebarDockIcon.jsx\");\n/* harmony import */ var _Icons_MoonIcon__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! ../Icons/MoonIcon */ \"./src/client/js/components/Icons/MoonIcon.jsx\");\n/* harmony import */ var _Icons_SunIcon__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! ../Icons/SunIcon */ \"./src/client/js/components/Icons/SunIcon.jsx\");\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nconst PersonalDropdown = props => {\n const {\n t,\n appContainer,\n navigationContainer\n } = props;\n const user = appContainer.currentUser || {};\n const [useOsSettings, setOsSettings] = Object(react__WEBPACK_IMPORTED_MODULE_0__[\"useState\"])(!Object(_util_color_scheme__WEBPACK_IMPORTED_MODULE_7__[\"isUserPreferenceExists\"])());\n const [isDarkMode, setIsDarkMode] = Object(react__WEBPACK_IMPORTED_MODULE_0__[\"useState\"])(Object(_util_color_scheme__WEBPACK_IMPORTED_MODULE_7__[\"isDarkMode\"])());\n\n const logoutHandler = () => {\n const {\n interceptorManager\n } = appContainer;\n const context = {\n user,\n currentPagePath: decodeURIComponent(window.location.pathname)\n };\n interceptorManager.process('logout', context);\n window.location.href = '/logout';\n };\n\n const preferDrawerModeSwitchModifiedHandler = bool => {\n navigationContainer.setDrawerModePreference(bool);\n };\n\n const preferDrawerModeOnEditSwitchModifiedHandler = bool => {\n navigationContainer.setDrawerModePreferenceOnEdit(bool);\n };\n\n const followOsCheckboxModifiedHandler = bool => {\n if (bool) {\n Object(_util_color_scheme__WEBPACK_IMPORTED_MODULE_7__[\"removeUserPreference\"])();\n } else {\n Object(_util_color_scheme__WEBPACK_IMPORTED_MODULE_7__[\"updateUserPreferenceWithOsSettings\"])();\n }\n\n Object(_util_color_scheme__WEBPACK_IMPORTED_MODULE_7__[\"applyColorScheme\"])(); // update states\n\n setOsSettings(bool);\n setIsDarkMode(Object(_util_color_scheme__WEBPACK_IMPORTED_MODULE_7__[\"isDarkMode\"])());\n };\n\n const userPreferenceSwitchModifiedHandler = bool => {\n Object(_util_color_scheme__WEBPACK_IMPORTED_MODULE_7__[\"updateUserPreference\"])(bool);\n Object(_util_color_scheme__WEBPACK_IMPORTED_MODULE_7__[\"applyColorScheme\"])(); // update state\n\n setIsDarkMode(Object(_util_color_scheme__WEBPACK_IMPORTED_MODULE_7__[\"isDarkMode\"])());\n };\n /*\n * render\n */\n\n\n const {\n preferDrawerModeByUser,\n preferDrawerModeOnEditByUser\n } = navigationContainer.state;\n /* eslint-disable react/prop-types */\n\n const IconWithTooltip = ({\n id,\n label,\n children,\n additionalClasses\n }) => react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(react__WEBPACK_IMPORTED_MODULE_0___default.a.Fragment, null, react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"div\", {\n id: id,\n className: `px-2 grw-icon-container ${additionalClasses != null ? additionalClasses : ''}`\n }, children), react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(reactstrap_es_UncontrolledTooltip__WEBPACK_IMPORTED_MODULE_3__[\"default\"], {\n placement: \"bottom\",\n fade: false,\n target: id\n }, label));\n /* eslint-enable react/prop-types */\n\n\n return react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(react__WEBPACK_IMPORTED_MODULE_0___default.a.Fragment, null, react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"a\", {\n className: \"px-md-2 nav-link waves-effect waves-light\",\n \"data-toggle\": \"dropdown\"\n }, react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(_User_UserPicture__WEBPACK_IMPORTED_MODULE_8__[\"default\"], {\n user: user,\n noLink: true,\n noTooltip: true\n }), react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"span\", {\n className: \"d-none d-lg-inline-block\"\n }, \"\\xA0\", user.name)), react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"div\", {\n className: \"dropdown-menu dropdown-menu-right\"\n }, react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"div\", {\n className: \"px-4 pt-3 pb-2 text-center\"\n }, react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(_User_UserPicture__WEBPACK_IMPORTED_MODULE_8__[\"default\"], {\n user: user,\n size: \"lg\",\n noLink: true,\n noTooltip: true\n }), react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"h5\", {\n className: \"mt-2\"\n }, user.name), react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"div\", {\n className: \"my-2\"\n }, react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"i\", {\n className: \"icon-user icon-fw\"\n }), user.username, react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"br\", null), react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"i\", {\n className: \"icon-envelope icon-fw\"\n }), react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"span\", {\n className: \"grw-email-sm\"\n }, user.email)), react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"div\", {\n className: \"btn-group btn-block mt-2\",\n role: \"group\"\n }, react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"a\", {\n className: \"btn btn-sm btn-outline-secondary col\",\n href: `/user/${user.username}`\n }, react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"i\", {\n className: \"icon-fw icon-home\"\n }), t('personal_dropdown.home')), react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"a\", {\n className: \"btn btn-sm btn-outline-secondary col\",\n href: \"/me\"\n }, react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"i\", {\n className: \"icon-fw icon-wrench\"\n }), t('personal_dropdown.settings')))), react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"div\", {\n className: \"dropdown-divider\"\n }), react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"h6\", {\n className: \"dropdown-header\"\n }, t('personal_dropdown.sidebar_mode')), react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"form\", {\n className: \"px-4\"\n }, react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"div\", {\n className: \"form-row justify-content-center\"\n }, react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"div\", {\n className: \"form-group col-auto mb-0 d-flex align-items-center\"\n }, react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(IconWithTooltip, {\n id: \"iwt-sidebar-drawer\",\n label: \"Drawer\"\n }, react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(_Icons_SidebarDrawerIcon__WEBPACK_IMPORTED_MODULE_9__[\"default\"], null)), react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"div\", {\n className: \"custom-control custom-switch custom-checkbox-secondary ml-2\"\n }, react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"input\", {\n id: \"swSidebarMode\",\n className: \"custom-control-input\",\n type: \"checkbox\",\n checked: !preferDrawerModeByUser,\n onChange: e => preferDrawerModeSwitchModifiedHandler(!e.target.checked)\n }), react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"label\", {\n className: \"custom-control-label\",\n htmlFor: \"swSidebarMode\"\n })), react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(IconWithTooltip, {\n id: \"iwt-sidebar-dock\",\n label: \"Dock\"\n }, react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(_Icons_SidebarDockIcon__WEBPACK_IMPORTED_MODULE_10__[\"default\"], null))))), react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"h6\", {\n className: \"dropdown-header\"\n }, t('personal_dropdown.sidebar_mode_editor')), react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"form\", {\n className: \"px-4\"\n }, react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"div\", {\n className: \"form-row justify-content-center\"\n }, react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"div\", {\n className: \"form-group col-auto mb-0 d-flex align-items-center\"\n }, react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(IconWithTooltip, {\n id: \"iwt-sidebar-editor-drawer\",\n label: \"Drawer\"\n }, react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(_Icons_SidebarDrawerIcon__WEBPACK_IMPORTED_MODULE_9__[\"default\"], null)), react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"div\", {\n className: \"custom-control custom-switch custom-checkbox-secondary ml-2\"\n }, react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"input\", {\n id: \"swSidebarModeOnEditor\",\n className: \"custom-control-input\",\n type: \"checkbox\",\n checked: !preferDrawerModeOnEditByUser,\n onChange: e => preferDrawerModeOnEditSwitchModifiedHandler(!e.target.checked)\n }), react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"label\", {\n className: \"custom-control-label\",\n htmlFor: \"swSidebarModeOnEditor\"\n })), react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(IconWithTooltip, {\n id: \"iwt-sidebar-editor-dock\",\n label: \"Dock\"\n }, react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(_Icons_SidebarDockIcon__WEBPACK_IMPORTED_MODULE_10__[\"default\"], null))))), react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"div\", {\n className: \"dropdown-divider\"\n }), react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"h6\", {\n className: \"dropdown-header\"\n }, t('personal_dropdown.color_mode')), react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"form\", {\n className: \"px-4\"\n }, react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"div\", {\n className: \"form-row\"\n }, react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"div\", {\n className: \"form-group col-auto\"\n }, react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"div\", {\n className: \"custom-control custom-checkbox\"\n }, react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"input\", {\n id: \"cbFollowOs\",\n className: \"custom-control-input\",\n type: \"checkbox\",\n checked: useOsSettings,\n onChange: e => followOsCheckboxModifiedHandler(e.target.checked)\n }), react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"label\", {\n className: \"custom-control-label text-nowrap\",\n htmlFor: \"cbFollowOs\"\n }, t('personal_dropdown.use_os_settings'))))), react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"div\", {\n className: \"form-row justify-content-center\"\n }, react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"div\", {\n className: \"form-group col-auto mb-0 d-flex align-items-center\"\n }, react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(IconWithTooltip, {\n id: \"iwt-light\",\n label: \"Light\",\n additionalClasses: useOsSettings ? 'grw-icon-container-muted' : ''\n }, react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(_Icons_SunIcon__WEBPACK_IMPORTED_MODULE_12__[\"default\"], null)), react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"div\", {\n className: \"custom-control custom-switch custom-checkbox-secondary ml-2\"\n }, react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"input\", {\n id: \"swUserPreference\",\n className: \"custom-control-input\",\n type: \"checkbox\",\n checked: isDarkMode,\n disabled: useOsSettings,\n onChange: e => userPreferenceSwitchModifiedHandler(e.target.checked)\n }), react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"label\", {\n className: \"custom-control-label\",\n htmlFor: \"swUserPreference\"\n })), react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(IconWithTooltip, {\n id: \"iwt-dark\",\n label: \"Dark\",\n additionalClasses: useOsSettings ? 'grw-icon-container-muted' : ''\n }, react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(_Icons_MoonIcon__WEBPACK_IMPORTED_MODULE_11__[\"default\"], null))))), react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"div\", {\n className: \"dropdown-divider\"\n }), react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"button\", {\n type: \"button\",\n className: \"dropdown-item\",\n onClick: logoutHandler\n }, react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"i\", {\n className: \"icon-fw icon-power\"\n }), t('Sign out'))));\n};\n/**\n * Wrapper component for using unstated\n */\n\n\nconst PersonalDropdownWrapper = Object(_UnstatedUtils__WEBPACK_IMPORTED_MODULE_4__[\"withUnstatedContainers\"])(PersonalDropdown, [_services_AppContainer__WEBPACK_IMPORTED_MODULE_5__[\"default\"], _services_NavigationContainer__WEBPACK_IMPORTED_MODULE_6__[\"default\"]]);\nPersonalDropdown.propTypes = {\n t: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.func.isRequired,\n // i18next\n appContainer: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.instanceOf(_services_AppContainer__WEBPACK_IMPORTED_MODULE_5__[\"default\"]).isRequired,\n navigationContainer: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.instanceOf(_services_NavigationContainer__WEBPACK_IMPORTED_MODULE_6__[\"default\"]).isRequired\n};\n/* harmony default export */ __webpack_exports__[\"default\"] = (Object(react_i18next__WEBPACK_IMPORTED_MODULE_2__[\"withTranslation\"])()(PersonalDropdownWrapper));//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9zcmMvY2xpZW50L2pzL2NvbXBvbmVudHMvTmF2YmFyL1BlcnNvbmFsRHJvcGRvd24uanN4LmpzIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vLy4vc3JjL2NsaWVudC9qcy9jb21wb25lbnRzL05hdmJhci9QZXJzb25hbERyb3Bkb3duLmpzeD83NjIzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBSZWFjdCwgeyB1c2VTdGF0ZSB9IGZyb20gJ3JlYWN0JztcbmltcG9ydCBQcm9wVHlwZXMgZnJvbSAncHJvcC10eXBlcyc7XG5cbmltcG9ydCB7IHdpdGhUcmFuc2xhdGlvbiB9IGZyb20gJ3JlYWN0LWkxOG5leHQnO1xuXG5pbXBvcnQgeyBVbmNvbnRyb2xsZWRUb29sdGlwIH0gZnJvbSAncmVhY3RzdHJhcCc7XG5cbmltcG9ydCB7IHdpdGhVbnN0YXRlZENvbnRhaW5lcnMgfSBmcm9tICcuLi9VbnN0YXRlZFV0aWxzJztcbmltcG9ydCBBcHBDb250YWluZXIgZnJvbSAnLi4vLi4vc2VydmljZXMvQXBwQ29udGFpbmVyJztcbmltcG9ydCBOYXZpZ2F0aW9uQ29udGFpbmVyIGZyb20gJy4uLy4uL3NlcnZpY2VzL05hdmlnYXRpb25Db250YWluZXInO1xuXG5pbXBvcnQge1xuICBpc1VzZXJQcmVmZXJlbmNlRXhpc3RzLFxuICBpc0RhcmtNb2RlIGFzIGlzRGFya01vZGVCeVV0aWwsXG4gIGFwcGx5Q29sb3JTY2hlbWUsXG4gIHJlbW92ZVVzZXJQcmVmZXJlbmNlLFxuICB1cGRhdGVVc2VyUHJlZmVyZW5jZSxcbiAgdXBkYXRlVXNlclByZWZlcmVuY2VXaXRoT3NTZXR0aW5ncyxcbn0gZnJvbSAnLi4vLi4vdXRpbC9jb2xvci1zY2hlbWUnO1xuXG5pbXBvcnQgVXNlclBpY3R1cmUgZnJvbSAnLi4vVXNlci9Vc2VyUGljdHVyZSc7XG5cbmltcG9ydCBTaWRlYmFyRHJhd2VySWNvbiBmcm9tICcuLi9JY29ucy9TaWRlYmFyRHJhd2VySWNvbic7XG5pbXBvcnQgU2lkZWJhckRvY2tJY29uIGZyb20gJy4uL0ljb25zL1NpZGViYXJEb2NrSWNvbic7XG5pbXBvcnQgTW9vbkljb24gZnJvbSAnLi4vSWNvbnMvTW9vbkljb24nO1xuaW1wb3J0IFN1bkljb24gZnJvbSAnLi4vSWNvbnMvU3VuSWNvbic7XG5cblxuY29uc3QgUGVyc29uYWxEcm9wZG93biA9IChwcm9wcykgPT4ge1xuXG4gIGNvbnN0IHsgdCwgYXBwQ29udGFpbmVyLCBuYXZpZ2F0aW9uQ29udGFpbmVyIH0gPSBwcm9wcztcbiAgY29uc3QgdXNlciA9IGFwcENvbnRhaW5lci5jdXJyZW50VXNlciB8fCB7fTtcblxuICBjb25zdCBbdXNlT3NTZXR0aW5ncywgc2V0T3NTZXR0aW5nc10gPSB1c2VTdGF0ZSghaXNVc2VyUHJlZmVyZW5jZUV4aXN0cygpKTtcbiAgY29uc3QgW2lzRGFya01vZGUsIHNldElzRGFya01vZGVdID0gdXNlU3RhdGUoaXNEYXJrTW9kZUJ5VXRpbCgpKTtcblxuICBjb25zdCBsb2dvdXRIYW5kbGVyID0gKCkgPT4ge1xuICAgIGNvbnN0IHsgaW50ZXJjZXB0b3JNYW5hZ2VyIH0gPSBhcHBDb250YWluZXI7XG5cbiAgICBjb25zdCBjb250ZXh0ID0ge1xuICAgICAgdXNlcixcbiAgICAgIGN1cnJlbnRQYWdlUGF0aDogZGVjb2RlVVJJQ29tcG9uZW50KHdpbmRvdy5sb2NhdGlvbi5wYXRobmFtZSksXG4gICAgfTtcbiAgICBpbnRlcmNlcHRvck1hbmFnZXIucHJvY2VzcygnbG9nb3V0JywgY29udGV4dCk7XG5cbiAgICB3aW5kb3cubG9jYXRpb24uaHJlZiA9ICcvbG9nb3V0JztcbiAgfTtcblxuICBjb25zdCBwcmVmZXJEcmF3ZXJNb2RlU3dpdGNoTW9kaWZpZWRIYW5kbGVyID0gKGJvb2wpID0+IHtcbiAgICBuYXZpZ2F0aW9uQ29udGFpbmVyLnNldERyYXdlck1vZGVQcmVmZXJlbmNlKGJvb2wpO1xuICB9O1xuXG4gIGNvbnN0IHByZWZlckRyYXdlck1vZGVPbkVkaXRTd2l0Y2hNb2RpZmllZEhhbmRsZXIgPSAoYm9vbCkgPT4ge1xuICAgIG5hdmlnYXRpb25Db250YWluZXIuc2V0RHJhd2VyTW9kZVByZWZlcmVuY2VPbkVkaXQoYm9vbCk7XG4gIH07XG5cbiAgY29uc3QgZm9sbG93T3NDaGVja2JveE1vZGlmaWVkSGFuZGxlciA9IChib29sKSA9PiB7XG4gICAgaWYgKGJvb2wpIHtcbiAgICAgIHJlbW92ZVVzZXJQcmVmZXJlbmNlKCk7XG4gICAgfVxuICAgIGVsc2Uge1xuICAgICAgdXBkYXRlVXNlclByZWZlcmVuY2VXaXRoT3NTZXR0aW5ncygpO1xuICAgIH1cbiAgICBhcHBseUNvbG9yU2NoZW1lKCk7XG5cbiAgICAvLyB1cGRhdGUgc3RhdGVzXG4gICAgc2V0T3NTZXR0aW5ncyhib29sKTtcbiAgICBzZXRJc0RhcmtNb2RlKGlzRGFya01vZGVCeVV0aWwoKSk7XG4gIH07XG5cbiAgY29uc3QgdXNlclByZWZlcmVuY2VTd2l0Y2hNb2RpZmllZEhhbmRsZXIgPSAoYm9vbCkgPT4ge1xuICAgIHVwZGF0ZVVzZXJQcmVmZXJlbmNlKGJvb2wpO1xuICAgIGFwcGx5Q29sb3JTY2hlbWUoKTtcblxuICAgIC8vIHVwZGF0ZSBzdGF0ZVxuICAgIHNldElzRGFya01vZGUoaXNEYXJrTW9kZUJ5VXRpbCgpKTtcbiAgfTtcblxuXG4gIC8qXG4gICAqIHJlbmRlclxuICAgKi9cbiAgY29uc3Qge1xuICAgIHByZWZlckRyYXdlck1vZGVCeVVzZXIsIHByZWZlckRyYXdlck1vZGVPbkVkaXRCeVVzZXIsXG4gIH0gPSBuYXZpZ2F0aW9uQ29udGFpbmVyLnN0YXRlO1xuXG4gIC8qIGVzbGludC1kaXNhYmxlIHJlYWN0L3Byb3AtdHlwZXMgKi9cbiAgY29uc3QgSWNvbldpdGhUb29sdGlwID0gKHtcbiAgICBpZCwgbGFiZWwsIGNoaWxkcmVuLCBhZGRpdGlvbmFsQ2xhc3NlcyxcbiAgfSkgPT4gKFxuICAgIDw+XG4gICAgICA8ZGl2IGlkPXtpZH0gY2xhc3NOYW1lPXtgcHgtMiBncnctaWNvbi1jb250YWluZXIgJHthZGRpdGlvbmFsQ2xhc3NlcyAhPSBudWxsID8gYWRkaXRpb25hbENsYXNzZXMgOiAnJ31gfT57Y2hpbGRyZW59PC9kaXY+XG4gICAgICA8VW5jb250cm9sbGVkVG9vbHRpcCBwbGFjZW1lbnQ9XCJib3R0b21cIiBmYWRlPXtmYWxzZX0gdGFyZ2V0PXtpZH0+e2xhYmVsfTwvVW5jb250cm9sbGVkVG9vbHRpcD5cbiAgICA8Lz5cbiAgKTtcbiAgLyogZXNsaW50LWVuYWJsZSByZWFjdC9wcm9wLXR5cGVzICovXG5cbiAgcmV0dXJuIChcbiAgICA8PlxuICAgICAgey8qIEJ1dHRvbiAqL31cbiAgICAgIHsvKiByZW1vdmUgLmRyb3Bkb3duLXRvZ2dsZSBmb3IgaGlkZSBjYXJldCAqL31cbiAgICAgIHsvKiBTZWUgaHR0cHM6Ly9zdGFja292ZXJmbG93LmNvbS9hLzQ0NTc3NTEyLzEzMTgzNTcyICovfVxuICAgICAgPGEgY2xhc3NOYW1lPVwicHgtbWQtMiBuYXYtbGluayB3YXZlcy1lZmZlY3Qgd2F2ZXMtbGlnaHRcIiBkYXRhLXRvZ2dsZT1cImRyb3Bkb3duXCI+XG4gICAgICAgIDxVc2VyUGljdHVyZSB1c2VyPXt1c2VyfSBub0xpbmsgbm9Ub29sdGlwIC8+PHNwYW4gY2xhc3NOYW1lPVwiZC1ub25lIGQtbGctaW5saW5lLWJsb2NrXCI+Jm5ic3A7e3VzZXIubmFtZX08L3NwYW4+XG4gICAgICA8L2E+XG5cbiAgICAgIHsvKiBNZW51ICovfVxuICAgICAgPGRpdiBjbGFzc05hbWU9XCJkcm9wZG93bi1tZW51IGRyb3Bkb3duLW1lbnUtcmlnaHRcIj5cblxuICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cInB4LTQgcHQtMyBwYi0yIHRleHQtY2VudGVyXCI+XG4gICAgICAgICAgPFVzZXJQaWN0dXJlIHVzZXI9e3VzZXJ9IHNpemU9XCJsZ1wiIG5vTGluayBub1Rvb2x0aXAgLz5cblxuICAgICAgICAgIDxoNSBjbGFzc05hbWU9XCJtdC0yXCI+XG4gICAgICAgICAgICB7dXNlci5uYW1lfVxuICAgICAgICAgIDwvaDU+XG5cbiAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cIm15LTJcIj5cbiAgICAgICAgICAgIDxpIGNsYXNzTmFtZT1cImljb24tdXNlciBpY29uLWZ3XCI+PC9pPnt1c2VyLnVzZXJuYW1lfTxiciAvPlxuICAgICAgICAgICAgPGkgY2xhc3NOYW1lPVwiaWNvbi1lbnZlbG9wZSBpY29uLWZ3XCI+PC9pPjxzcGFuIGNsYXNzTmFtZT1cImdydy1lbWFpbC1zbVwiPnt1c2VyLmVtYWlsfTwvc3Bhbj5cbiAgICAgICAgICA8L2Rpdj5cblxuICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiYnRuLWdyb3VwIGJ0bi1ibG9jayBtdC0yXCIgcm9sZT1cImdyb3VwXCI+XG4gICAgICAgICAgICA8YSBjbGFzc05hbWU9XCJidG4gYnRuLXNtIGJ0bi1vdXRsaW5lLXNlY29uZGFyeSBjb2xcIiBocmVmPXtgL3VzZXIvJHt1c2VyLnVzZXJuYW1lfWB9PlxuICAgICAgICAgICAgICA8aSBjbGFzc05hbWU9XCJpY29uLWZ3IGljb24taG9tZVwiPjwvaT57IHQoJ3BlcnNvbmFsX2Ryb3Bkb3duLmhvbWUnKSB9XG4gICAgICAgICAgICA8L2E+XG4gICAgICAgICAgICA8YSBjbGFzc05hbWU9XCJidG4gYnRuLXNtIGJ0bi1vdXRsaW5lLXNlY29uZGFyeSBjb2xcIiBocmVmPVwiL21lXCI+XG4gICAgICAgICAgICAgIDxpIGNsYXNzTmFtZT1cImljb24tZncgaWNvbi13cmVuY2hcIj48L2k+eyB0KCdwZXJzb25hbF9kcm9wZG93bi5zZXR0aW5ncycpIH1cbiAgICAgICAgICAgIDwvYT5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9kaXY+XG5cbiAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJkcm9wZG93bi1kaXZpZGVyXCI+PC9kaXY+XG5cbiAgICAgICAgey8qIFNpZGViYXIgTW9kZSAqL31cbiAgICAgICAgPGg2IGNsYXNzTmFtZT1cImRyb3Bkb3duLWhlYWRlclwiPnt0KCdwZXJzb25hbF9kcm9wZG93bi5zaWRlYmFyX21vZGUnKX08L2g2PlxuICAgICAgICA8Zm9ybSBjbGFzc05hbWU9XCJweC00XCI+XG4gICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJmb3JtLXJvdyBqdXN0aWZ5LWNvbnRlbnQtY2VudGVyXCI+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImZvcm0tZ3JvdXAgY29sLWF1dG8gbWItMCBkLWZsZXggYWxpZ24taXRlbXMtY2VudGVyXCI+XG4gICAgICAgICAgICAgIDxJY29uV2l0aFRvb2x0aXAgaWQ9XCJpd3Qtc2lkZWJhci1kcmF3ZXJcIiBsYWJlbD1cIkRyYXdlclwiPlxuICAgICAgICAgICAgICAgIDxTaWRlYmFyRHJhd2VySWNvbiAvPlxuICAgICAgICAgICAgICA8L0ljb25XaXRoVG9vbHRpcD5cbiAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJjdXN0b20tY29udHJvbCBjdXN0b20tc3dpdGNoIGN1c3RvbS1jaGVja2JveC1zZWNvbmRhcnkgbWwtMlwiPlxuICAgICAgICAgICAgICAgIDxpbnB1dFxuICAgICAgICAgICAgICAgICAgaWQ9XCJzd1NpZGViYXJNb2RlXCJcbiAgICAgICAgICAgICAgICAgIGNsYXNzTmFtZT1cImN1c3RvbS1jb250cm9sLWlucHV0XCJcbiAgICAgICAgICAgICAgICAgIHR5cGU9XCJjaGVja2JveFwiXG4gICAgICAgICAgICAgICAgICBjaGVja2VkPXshcHJlZmVyRHJhd2VyTW9kZUJ5VXNlcn1cbiAgICAgICAgICAgICAgICAgIG9uQ2hhbmdlPXtlID0+IHByZWZlckRyYXdlck1vZGVTd2l0Y2hNb2RpZmllZEhhbmRsZXIoIWUudGFyZ2V0LmNoZWNrZWQpfVxuICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgPGxhYmVsIGNsYXNzTmFtZT1cImN1c3RvbS1jb250cm9sLWxhYmVsXCIgaHRtbEZvcj1cInN3U2lkZWJhck1vZGVcIj48L2xhYmVsPlxuICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgPEljb25XaXRoVG9vbHRpcCBpZD1cIml3dC1zaWRlYmFyLWRvY2tcIiBsYWJlbD1cIkRvY2tcIj5cbiAgICAgICAgICAgICAgICA8U2lkZWJhckRvY2tJY29uIC8+XG4gICAgICAgICAgICAgIDwvSWNvbldpdGhUb29sdGlwPlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvZm9ybT5cblxuICAgICAgICB7LyogU2lkZWJhciBNb2RlIG9uIEVkaXRvciAqL31cbiAgICAgICAgPGg2IGNsYXNzTmFtZT1cImRyb3Bkb3duLWhlYWRlclwiPnt0KCdwZXJzb25hbF9kcm9wZG93bi5zaWRlYmFyX21vZGVfZWRpdG9yJyl9PC9oNj5cbiAgICAgICAgPGZvcm0gY2xhc3NOYW1lPVwicHgtNFwiPlxuICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiZm9ybS1yb3cganVzdGlmeS1jb250ZW50LWNlbnRlclwiPlxuICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJmb3JtLWdyb3VwIGNvbC1hdXRvIG1iLTAgZC1mbGV4IGFsaWduLWl0ZW1zLWNlbnRlclwiPlxuICAgICAgICAgICAgICA8SWNvbldpdGhUb29sdGlwIGlkPVwiaXd0LXNpZGViYXItZWRpdG9yLWRyYXdlclwiIGxhYmVsPVwiRHJhd2VyXCI+XG4gICAgICAgICAgICAgICAgPFNpZGViYXJEcmF3ZXJJY29uIC8+XG4gICAgICAgICAgICAgIDwvSWNvbldpdGhUb29sdGlwPlxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImN1c3RvbS1jb250cm9sIGN1c3RvbS1zd2l0Y2ggY3VzdG9tLWNoZWNrYm94LXNlY29uZGFyeSBtbC0yXCI+XG4gICAgICAgICAgICAgICAgPGlucHV0XG4gICAgICAgICAgICAgICAgICBpZD1cInN3U2lkZWJhck1vZGVPbkVkaXRvclwiXG4gICAgICAgICAgICAgICAgICBjbGFzc05hbWU9XCJjdXN0b20tY29udHJvbC1pbnB1dFwiXG4gICAgICAgICAgICAgICAgICB0eXBlPVwiY2hlY2tib3hcIlxuICAgICAgICAgICAgICAgICAgY2hlY2tlZD17IXByZWZlckRyYXdlck1vZGVPbkVkaXRCeVVzZXJ9XG4gICAgICAgICAgICAgICAgICBvbkNoYW5nZT17ZSA9PiBwcmVmZXJEcmF3ZXJNb2RlT25FZGl0U3dpdGNoTW9kaWZpZWRIYW5kbGVyKCFlLnRhcmdldC5jaGVja2VkKX1cbiAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgIDxsYWJlbCBjbGFzc05hbWU9XCJjdXN0b20tY29udHJvbC1sYWJlbFwiIGh0bWxGb3I9XCJzd1NpZGViYXJNb2RlT25FZGl0b3JcIj48L2xhYmVsPlxuICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgPEljb25XaXRoVG9vbHRpcCBpZD1cIml3dC1zaWRlYmFyLWVkaXRvci1kb2NrXCIgbGFiZWw9XCJEb2NrXCI+XG4gICAgICAgICAgICAgICAgPFNpZGViYXJEb2NrSWNvbiAvPlxuICAgICAgICAgICAgICA8L0ljb25XaXRoVG9vbHRpcD5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2Zvcm0+XG5cbiAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJkcm9wZG93bi1kaXZpZGVyXCI+PC9kaXY+XG5cbiAgICAgICAgey8qIENvbG9yIE1vZGUgKi99XG4gICAgICAgIDxoNiBjbGFzc05hbWU9XCJkcm9wZG93bi1oZWFkZXJcIj57dCgncGVyc29uYWxfZHJvcGRvd24uY29sb3JfbW9kZScpfTwvaDY+XG4gICAgICAgIDxmb3JtIGNsYXNzTmFtZT1cInB4LTRcIj5cbiAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImZvcm0tcm93XCI+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImZvcm0tZ3JvdXAgY29sLWF1dG9cIj5cbiAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJjdXN0b20tY29udHJvbCBjdXN0b20tY2hlY2tib3hcIj5cbiAgICAgICAgICAgICAgICA8aW5wdXRcbiAgICAgICAgICAgICAgICAgIGlkPVwiY2JGb2xsb3dPc1wiXG4gICAgICAgICAgICAgICAgICBjbGFzc05hbWU9XCJjdXN0b20tY29udHJvbC1pbnB1dFwiXG4gICAgICAgICAgICAgICAgICB0eXBlPVwiY2hlY2tib3hcIlxuICAgICAgICAgICAgICAgICAgY2hlY2tlZD17dXNlT3NTZXR0aW5nc31cbiAgICAgICAgICAgICAgICAgIG9uQ2hhbmdlPXtlID0+IGZvbGxvd09zQ2hlY2tib3hNb2RpZmllZEhhbmRsZXIoZS50YXJnZXQuY2hlY2tlZCl9XG4gICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICA8bGFiZWwgY2xhc3NOYW1lPVwiY3VzdG9tLWNvbnRyb2wtbGFiZWwgdGV4dC1ub3dyYXBcIiBodG1sRm9yPVwiY2JGb2xsb3dPc1wiPnt0KCdwZXJzb25hbF9kcm9wZG93bi51c2Vfb3Nfc2V0dGluZ3MnKX08L2xhYmVsPlxuICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiZm9ybS1yb3cganVzdGlmeS1jb250ZW50LWNlbnRlclwiPlxuICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJmb3JtLWdyb3VwIGNvbC1hdXRvIG1iLTAgZC1mbGV4IGFsaWduLWl0ZW1zLWNlbnRlclwiPlxuICAgICAgICAgICAgICA8SWNvbldpdGhUb29sdGlwIGlkPVwiaXd0LWxpZ2h0XCIgbGFiZWw9XCJMaWdodFwiIGFkZGl0aW9uYWxDbGFzc2VzPXt1c2VPc1NldHRpbmdzID8gJ2dydy1pY29uLWNvbnRhaW5lci1tdXRlZCcgOiAnJ30+XG4gICAgICAgICAgICAgICAgPFN1bkljb24gLz5cbiAgICAgICAgICAgICAgPC9JY29uV2l0aFRvb2x0aXA+XG4gICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiY3VzdG9tLWNvbnRyb2wgY3VzdG9tLXN3aXRjaCBjdXN0b20tY2hlY2tib3gtc2Vjb25kYXJ5IG1sLTJcIj5cbiAgICAgICAgICAgICAgICA8aW5wdXRcbiAgICAgICAgICAgICAgICAgIGlkPVwic3dVc2VyUHJlZmVyZW5jZVwiXG4gICAgICAgICAgICAgICAgICBjbGFzc05hbWU9XCJjdXN0b20tY29udHJvbC1pbnB1dFwiXG4gICAgICAgICAgICAgICAgICB0eXBlPVwiY2hlY2tib3hcIlxuICAgICAgICAgICAgICAgICAgY2hlY2tlZD17aXNEYXJrTW9kZX1cbiAgICAgICAgICAgICAgICAgIGRpc2FibGVkPXt1c2VPc1NldHRpbmdzfVxuICAgICAgICAgICAgICAgICAgb25DaGFuZ2U9e2UgPT4gdXNlclByZWZlcmVuY2VTd2l0Y2hNb2RpZmllZEhhbmRsZXIoZS50YXJnZXQuY2hlY2tlZCl9XG4gICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICA8bGFiZWwgY2xhc3NOYW1lPVwiY3VzdG9tLWNvbnRyb2wtbGFiZWxcIiBodG1sRm9yPVwic3dVc2VyUHJlZmVyZW5jZVwiPjwvbGFiZWw+XG4gICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICA8SWNvbldpdGhUb29sdGlwIGlkPVwiaXd0LWRhcmtcIiBsYWJlbD1cIkRhcmtcIiBhZGRpdGlvbmFsQ2xhc3Nlcz17dXNlT3NTZXR0aW5ncyA/ICdncnctaWNvbi1jb250YWluZXItbXV0ZWQnIDogJyd9PlxuICAgICAgICAgICAgICAgIDxNb29uSWNvbiAvPlxuICAgICAgICAgICAgICA8L0ljb25XaXRoVG9vbHRpcD5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2Zvcm0+XG5cbiAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJkcm9wZG93bi1kaXZpZGVyXCI+PC9kaXY+XG5cbiAgICAgICAgPGJ1dHRvbiB0eXBlPVwiYnV0dG9uXCIgY2xhc3NOYW1lPVwiZHJvcGRvd24taXRlbVwiIG9uQ2xpY2s9e2xvZ291dEhhbmRsZXJ9PjxpIGNsYXNzTmFtZT1cImljb24tZncgaWNvbi1wb3dlclwiPjwvaT57IHQoJ1NpZ24gb3V0JykgfTwvYnV0dG9uPlxuICAgICAgPC9kaXY+XG5cbiAgICA8Lz5cbiAgKTtcblxufTtcblxuLyoqXG4gKiBXcmFwcGVyIGNvbXBvbmVudCBmb3IgdXNpbmcgdW5zdGF0ZWRcbiAqL1xuY29uc3QgUGVyc29uYWxEcm9wZG93bldyYXBwZXIgPSB3aXRoVW5zdGF0ZWRDb250YWluZXJzKFBlcnNvbmFsRHJvcGRvd24sIFtBcHBDb250YWluZXIsIE5hdmlnYXRpb25Db250YWluZXJdKTtcblxuXG5QZXJzb25hbERyb3Bkb3duLnByb3BUeXBlcyA9IHtcbiAgdDogUHJvcFR5cGVzLmZ1bmMuaXNSZXF1aXJlZCwgLy8gIGkxOG5leHRcbiAgYXBwQ29udGFpbmVyOiBQcm9wVHlwZXMuaW5zdGFuY2VPZihBcHBDb250YWluZXIpLmlzUmVxdWlyZWQsXG4gIG5hdmlnYXRpb25Db250YWluZXI6IFByb3BUeXBlcy5pbnN0YW5jZU9mKE5hdmlnYXRpb25Db250YWluZXIpLmlzUmVxdWlyZWQsXG59O1xuXG5leHBvcnQgZGVmYXVsdCB3aXRoVHJhbnNsYXRpb24oKShQZXJzb25hbERyb3Bkb3duV3JhcHBlcik7XG4iXSwibWFwcGluZ3MiOiJBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFDQTtBQUVBOztBQUlBO0FBQ0E7QUFDQTtBQUVBO0FBU0E7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBRUE7QUFFQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQ0E7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQUE7QUFBQTtBQUVBO0FBQ0E7QUFDQTtBQUZBO0FBSUE7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFFQTtBQUNBO0FBQ0E7QUFBQTtBQUNBO0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUVBO0FBQ0E7QUFHQTs7Ozs7QUFHQTtBQUNBO0FBQUE7QUFEQTtBQUlBO0FBQ0E7QUFBQTtBQUNBO0FBQUE7QUFBQTtBQUFBO0FBREE7QUFJQTtBQUFBO0FBQUE7QUFDQTtBQUFBO0FBQUE7QUFBQTtBQUdBO0FBQ0E7QUFDQTtBQUFBO0FBS0E7QUFBQTtBQUFBO0FBQ0E7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBSUE7QUFBQTtBQUVBO0FBQUE7QUFDQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBRUE7QUFBQTtBQUlBO0FBQUE7QUFDQTtBQUFBO0FBQ0E7QUFBQTtBQUFBO0FBQUE7QUFHQTtBQUFBO0FBQUE7QUFDQTtBQUFBO0FBQUE7QUFDQTtBQUFBO0FBRUE7QUFBQTtBQUFBO0FBQ0E7QUFBQTtBQUtBO0FBQUE7QUFHQTtBQUFBO0FBQ0E7QUFBQTtBQUNBO0FBQUE7QUFDQTtBQUFBO0FBQ0E7QUFBQTtBQUFBO0FBR0E7QUFBQTtBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFMQTtBQU9BO0FBQUE7QUFBQTtBQUVBO0FBQUE7QUFBQTtBQVFBO0FBQUE7QUFDQTtBQUFBO0FBQ0E7QUFBQTtBQUNBO0FBQUE7QUFDQTtBQUFBO0FBQUE7QUFHQTtBQUFBO0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUxBO0FBT0E7QUFBQTtBQUFBO0FBRUE7QUFBQTtBQUFBO0FBT0E7QUFBQTtBQUdBO0FBQUE7QUFDQTtBQUFBO0FBQ0E7QUFBQTtBQUNBO0FBQUE7QUFDQTtBQUFBO0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUxBO0FBT0E7QUFBQTtBQUFBO0FBSUE7QUFBQTtBQUNBO0FBQUE7QUFDQTtBQUFBO0FBQUE7QUFBQTtBQUdBO0FBQUE7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFOQTtBQVFBO0FBQUE7QUFBQTtBQUVBO0FBQUE7QUFBQTtBQUFBO0FBT0E7QUFBQTtBQUVBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQU1BO0FBRUE7Ozs7O0FBR0E7QUFHQTtBQUNBO0FBQUE7QUFDQTtBQUNBO0FBSEE7QUFNQSIsInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./src/client/js/components/Navbar/PersonalDropdown.jsx\n");
- /***/ }),
- /***/ "./src/client/js/components/Page/CopyDropdown.jsx":
- /*!********************************************************!*\
- !*** ./src/client/js/components/Page/CopyDropdown.jsx ***!
- \********************************************************/
- /*! exports provided: default */
- /***/ (function(module, __webpack_exports__, __webpack_require__) {
- "use strict";
- eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"./node_modules/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! prop-types */ \"./node_modules/prop-types/index.js\");\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(prop_types__WEBPACK_IMPORTED_MODULE_1__);\n/* harmony import */ var react_i18next__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! react-i18next */ \"./node_modules/react-i18next/dist/es/index.js\");\n/* harmony import */ var reactstrap_es_Dropdown__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! reactstrap/es/Dropdown */ \"./node_modules/reactstrap/es/Dropdown.js\");\n/* harmony import */ var reactstrap_es_DropdownToggle__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! reactstrap/es/DropdownToggle */ \"./node_modules/reactstrap/es/DropdownToggle.js\");\n/* harmony import */ var reactstrap_es_DropdownMenu__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! reactstrap/es/DropdownMenu */ \"./node_modules/reactstrap/es/DropdownMenu.js\");\n/* harmony import */ var reactstrap_es_DropdownItem__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! reactstrap/es/DropdownItem */ \"./node_modules/reactstrap/es/DropdownItem.js\");\n/* harmony import */ var reactstrap_es_Tooltip__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! reactstrap/es/Tooltip */ \"./node_modules/reactstrap/es/Tooltip.js\");\n/* harmony import */ var react_copy_to_clipboard__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! react-copy-to-clipboard */ \"./node_modules/react-copy-to-clipboard/lib/index.js\");\n/* harmony import */ var react_copy_to_clipboard__WEBPACK_IMPORTED_MODULE_8___default = /*#__PURE__*/__webpack_require__.n(react_copy_to_clipboard__WEBPACK_IMPORTED_MODULE_8__);\n/* harmony import */ var _commons_util_path_utils__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! @commons/util/path-utils */ \"./src/lib/util/path-utils.js\");\n/* harmony import */ var _commons_util_path_utils__WEBPACK_IMPORTED_MODULE_9___default = /*#__PURE__*/__webpack_require__.n(_commons_util_path_utils__WEBPACK_IMPORTED_MODULE_9__);\n\n\n\n\n\n\n\n\n\n\n/* eslint-disable react/prop-types */\n\nconst DropdownItemContents = ({\n title,\n contents\n}) => react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(react__WEBPACK_IMPORTED_MODULE_0___default.a.Fragment, null, react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"div\", {\n className: \"h6 mt-1 mb-2\"\n}, react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"strong\", null, title)), react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"div\", {\n className: \"card well mb-1 p-2\"\n}, contents));\n/* eslint-enable react/prop-types */\n\n\nconst CopyDropdown = props => {\n const [dropdownOpen, setDropdownOpen] = Object(react__WEBPACK_IMPORTED_MODULE_0__[\"useState\"])(false);\n const [tooltipOpen, setTooltipOpen] = Object(react__WEBPACK_IMPORTED_MODULE_0__[\"useState\"])(false);\n const [isParamsAppended, setParamsAppended] = Object(react__WEBPACK_IMPORTED_MODULE_0__[\"useState\"])(!props.isShareLinkMode);\n /*\n * functions to construct labels and URLs\n */\n\n const getUriParams = Object(react__WEBPACK_IMPORTED_MODULE_0__[\"useCallback\"])(() => {\n if (!isParamsAppended || !dropdownOpen) {\n return '';\n }\n\n const {\n search,\n hash\n } = window.location;\n return `${search}${hash}`;\n }, [isParamsAppended, dropdownOpen]);\n const pagePathWithParams = Object(react__WEBPACK_IMPORTED_MODULE_0__[\"useMemo\"])(() => {\n const {\n pagePath\n } = props;\n return decodeURI(`${pagePath}${getUriParams()}`);\n }, [props, getUriParams]);\n const pagePathUrl = Object(react__WEBPACK_IMPORTED_MODULE_0__[\"useMemo\"])(() => {\n const {\n origin\n } = window.location;\n return `${origin}${Object(_commons_util_path_utils__WEBPACK_IMPORTED_MODULE_9__[\"encodeSpaces\"])(pagePathWithParams)}`;\n }, [pagePathWithParams]);\n const permalink = Object(react__WEBPACK_IMPORTED_MODULE_0__[\"useMemo\"])(() => {\n const {\n origin\n } = window.location;\n const {\n pageId,\n isShareLinkMode\n } = props;\n\n if (pageId == null) {\n return null;\n }\n\n if (isShareLinkMode) {\n return decodeURI(`${origin}/share/${pageId}`);\n }\n\n return Object(_commons_util_path_utils__WEBPACK_IMPORTED_MODULE_9__[\"encodeSpaces\"])(decodeURI(`${origin}/${pageId}${getUriParams()}`));\n }, [props, getUriParams]);\n const markdownLink = Object(react__WEBPACK_IMPORTED_MODULE_0__[\"useMemo\"])(() => {\n const {\n pagePath\n } = props;\n const label = decodeURI(`${pagePath}${getUriParams()}`); // const permalink = generatePermalink();\n\n return `[${label}](${permalink})`;\n }, [props, getUriParams, permalink]);\n /**\n * control\n */\n\n const toggleDropdown = Object(react__WEBPACK_IMPORTED_MODULE_0__[\"useCallback\"])(() => {\n setDropdownOpen(!dropdownOpen);\n }, [dropdownOpen]);\n const toggleAppendParams = Object(react__WEBPACK_IMPORTED_MODULE_0__[\"useCallback\"])(() => {\n setParamsAppended(!isParamsAppended);\n }, [isParamsAppended]);\n const showToolTip = Object(react__WEBPACK_IMPORTED_MODULE_0__[\"useCallback\"])(() => {\n setTooltipOpen(true);\n setTimeout(() => {\n setTooltipOpen(false);\n }, 1000);\n }, []);\n /*\n * render\n */\n\n const {\n t,\n dropdownToggleId,\n pageId,\n dropdownToggleClassName,\n children,\n isShareLinkMode\n } = props;\n const customSwitchForParamsId = `customSwitchForParams_${dropdownToggleId}`;\n return react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(react__WEBPACK_IMPORTED_MODULE_0___default.a.Fragment, null, react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(reactstrap_es_Dropdown__WEBPACK_IMPORTED_MODULE_3__[\"default\"], {\n className: \"grw-copy-dropdown\",\n isOpen: dropdownOpen,\n toggle: toggleDropdown\n }, react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(reactstrap_es_DropdownToggle__WEBPACK_IMPORTED_MODULE_4__[\"default\"], {\n caret: true,\n className: dropdownToggleClassName\n }, react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"span\", {\n id: dropdownToggleId\n }, children)), react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(reactstrap_es_DropdownMenu__WEBPACK_IMPORTED_MODULE_5__[\"default\"], {\n positionFixed: true,\n modifiers: {\n preventOverflow: {\n boundariesElement: null\n }\n }\n }, react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"div\", {\n className: \"d-flex align-items-center justify-content-between\"\n }, react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(reactstrap_es_DropdownItem__WEBPACK_IMPORTED_MODULE_6__[\"default\"], {\n header: true,\n className: \"px-3\"\n }, t('copy_to_clipboard.Copy to clipboard')), !isShareLinkMode && react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"div\", {\n className: \"px-3 custom-control custom-switch custom-switch-sm\"\n }, react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"input\", {\n type: \"checkbox\",\n id: customSwitchForParamsId,\n className: \"custom-control-input\",\n checked: isParamsAppended,\n onChange: toggleAppendParams\n }), react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"label\", {\n className: \"custom-control-label small\",\n htmlFor: customSwitchForParamsId\n }, \"Append params\"))), react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(reactstrap_es_DropdownItem__WEBPACK_IMPORTED_MODULE_6__[\"default\"], {\n divider: true,\n className: \"my-0\"\n }), react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(react_copy_to_clipboard__WEBPACK_IMPORTED_MODULE_8__[\"CopyToClipboard\"], {\n text: pagePathWithParams,\n onCopy: showToolTip\n }, react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(reactstrap_es_DropdownItem__WEBPACK_IMPORTED_MODULE_6__[\"default\"], {\n className: \"px-3\"\n }, react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(DropdownItemContents, {\n title: t('copy_to_clipboard.Page path'),\n contents: pagePathWithParams\n }))), react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(reactstrap_es_DropdownItem__WEBPACK_IMPORTED_MODULE_6__[\"default\"], {\n divider: true,\n className: \"my-0\"\n }), react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(react_copy_to_clipboard__WEBPACK_IMPORTED_MODULE_8__[\"CopyToClipboard\"], {\n text: pagePathUrl,\n onCopy: showToolTip\n }, react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(reactstrap_es_DropdownItem__WEBPACK_IMPORTED_MODULE_6__[\"default\"], {\n className: \"px-3\"\n }, react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(DropdownItemContents, {\n title: t('copy_to_clipboard.Page URL'),\n contents: pagePathUrl\n }))), react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(reactstrap_es_DropdownItem__WEBPACK_IMPORTED_MODULE_6__[\"default\"], {\n divider: true,\n className: \"my-0\"\n }), pageId && react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(react_copy_to_clipboard__WEBPACK_IMPORTED_MODULE_8__[\"CopyToClipboard\"], {\n text: permalink,\n onCopy: showToolTip\n }, react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(reactstrap_es_DropdownItem__WEBPACK_IMPORTED_MODULE_6__[\"default\"], {\n className: \"px-3\"\n }, react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(DropdownItemContents, {\n title: t('copy_to_clipboard.Permanent link'),\n contents: permalink\n }))), react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(reactstrap_es_DropdownItem__WEBPACK_IMPORTED_MODULE_6__[\"default\"], {\n divider: true,\n className: \"my-0\"\n }), pageId && react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(react_copy_to_clipboard__WEBPACK_IMPORTED_MODULE_8__[\"CopyToClipboard\"], {\n text: `${pagePathWithParams}\\n${permalink}`,\n onCopy: showToolTip\n }, react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(reactstrap_es_DropdownItem__WEBPACK_IMPORTED_MODULE_6__[\"default\"], {\n className: \"px-3\"\n }, react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(DropdownItemContents, {\n title: t('copy_to_clipboard.Page path and permanent link'),\n contents: react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(react__WEBPACK_IMPORTED_MODULE_0___default.a.Fragment, null, pagePathWithParams, react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"br\", null), permalink)\n }))), react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(reactstrap_es_DropdownItem__WEBPACK_IMPORTED_MODULE_6__[\"default\"], {\n divider: true,\n className: \"my-0\"\n }), pageId && react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(react_copy_to_clipboard__WEBPACK_IMPORTED_MODULE_8__[\"CopyToClipboard\"], {\n text: markdownLink,\n onCopy: showToolTip\n }, react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(reactstrap_es_DropdownItem__WEBPACK_IMPORTED_MODULE_6__[\"default\"], {\n className: \"px-3 text-wrap\"\n }, react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(DropdownItemContents, {\n title: t('copy_to_clipboard.Markdown link'),\n contents: markdownLink,\n isContentsWrap: true\n }))))), react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(reactstrap_es_Tooltip__WEBPACK_IMPORTED_MODULE_7__[\"default\"], {\n placement: \"bottom\",\n isOpen: tooltipOpen,\n target: dropdownToggleId,\n fade: false\n }, \"copied!\"));\n};\n\nCopyDropdown.propTypes = {\n t: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.func.isRequired,\n // i18next\n children: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.node.isRequired,\n dropdownToggleId: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.string.isRequired,\n pagePath: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.string.isRequired,\n pageId: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.string,\n dropdownToggleClassName: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.string,\n isShareLinkMode: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.bool\n};\n/* harmony default export */ __webpack_exports__[\"default\"] = (Object(react_i18next__WEBPACK_IMPORTED_MODULE_2__[\"withTranslation\"])()(CopyDropdown));//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9zcmMvY2xpZW50L2pzL2NvbXBvbmVudHMvUGFnZS9Db3B5RHJvcGRvd24uanN4LmpzIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vLy4vc3JjL2NsaWVudC9qcy9jb21wb25lbnRzL1BhZ2UvQ29weURyb3Bkb3duLmpzeD81ODcyIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBSZWFjdCwge1xuICB1c2VTdGF0ZSwgdXNlTWVtbywgdXNlQ2FsbGJhY2ssXG59IGZyb20gJ3JlYWN0JztcbmltcG9ydCBQcm9wVHlwZXMgZnJvbSAncHJvcC10eXBlcyc7XG5cbmltcG9ydCB7IHdpdGhUcmFuc2xhdGlvbiB9IGZyb20gJ3JlYWN0LWkxOG5leHQnO1xuXG5pbXBvcnQge1xuICBEcm9wZG93biwgRHJvcGRvd25Ub2dnbGUsIERyb3Bkb3duTWVudSwgRHJvcGRvd25JdGVtLFxuICBUb29sdGlwLFxufSBmcm9tICdyZWFjdHN0cmFwJztcblxuaW1wb3J0IHsgQ29weVRvQ2xpcGJvYXJkIH0gZnJvbSAncmVhY3QtY29weS10by1jbGlwYm9hcmQnO1xuXG5pbXBvcnQgeyBlbmNvZGVTcGFjZXMgfSBmcm9tICdAY29tbW9ucy91dGlsL3BhdGgtdXRpbHMnO1xuXG4vKiBlc2xpbnQtZGlzYWJsZSByZWFjdC9wcm9wLXR5cGVzICovXG5jb25zdCBEcm9wZG93bkl0ZW1Db250ZW50cyA9ICh7IHRpdGxlLCBjb250ZW50cyB9KSA9PiAoXG4gIDw+XG4gICAgPGRpdiBjbGFzc05hbWU9XCJoNiBtdC0xIG1iLTJcIj48c3Ryb25nPnt0aXRsZX08L3N0cm9uZz48L2Rpdj5cbiAgICA8ZGl2IGNsYXNzTmFtZT1cImNhcmQgd2VsbCBtYi0xIHAtMlwiPntjb250ZW50c308L2Rpdj5cbiAgPC8+XG4pO1xuLyogZXNsaW50LWVuYWJsZSByZWFjdC9wcm9wLXR5cGVzICovXG5cblxuY29uc3QgQ29weURyb3Bkb3duID0gKHByb3BzKSA9PiB7XG4gIGNvbnN0IFtkcm9wZG93bk9wZW4sIHNldERyb3Bkb3duT3Blbl0gPSB1c2VTdGF0ZShmYWxzZSk7XG4gIGNvbnN0IFt0b29sdGlwT3Blbiwgc2V0VG9vbHRpcE9wZW5dID0gdXNlU3RhdGUoZmFsc2UpO1xuICBjb25zdCBbaXNQYXJhbXNBcHBlbmRlZCwgc2V0UGFyYW1zQXBwZW5kZWRdID0gdXNlU3RhdGUoIXByb3BzLmlzU2hhcmVMaW5rTW9kZSk7XG5cbiAgLypcbiAgICogZnVuY3Rpb25zIHRvIGNvbnN0cnVjdCBsYWJlbHMgYW5kIFVSTHNcbiAgICovXG4gIGNvbnN0IGdldFVyaVBhcmFtcyA9IHVzZUNhbGxiYWNrKCgpID0+IHtcbiAgICBpZiAoIWlzUGFyYW1zQXBwZW5kZWQgfHwgIWRyb3Bkb3duT3Blbikge1xuICAgICAgcmV0dXJuICcnO1xuICAgIH1cblxuICAgIGNvbnN0IHtcbiAgICAgIHNlYXJjaCwgaGFzaCxcbiAgICB9ID0gd2luZG93LmxvY2F0aW9uO1xuXG4gICAgcmV0dXJuIGAke3NlYXJjaH0ke2hhc2h9YDtcbiAgfSwgW2lzUGFyYW1zQXBwZW5kZWQsIGRyb3Bkb3duT3Blbl0pO1xuXG4gIGNvbnN0IHBhZ2VQYXRoV2l0aFBhcmFtcyA9IHVzZU1lbW8oKCkgPT4ge1xuICAgIGNvbnN0IHsgcGFnZVBhdGggfSA9IHByb3BzO1xuICAgIHJldHVybiBkZWNvZGVVUkkoYCR7cGFnZVBhdGh9JHtnZXRVcmlQYXJhbXMoKX1gKTtcbiAgfSwgW3Byb3BzLCBnZXRVcmlQYXJhbXNdKTtcblxuICBjb25zdCBwYWdlUGF0aFVybCA9IHVzZU1lbW8oKCkgPT4ge1xuICAgIGNvbnN0IHsgb3JpZ2luIH0gPSB3aW5kb3cubG9jYXRpb247XG4gICAgcmV0dXJuIGAke29yaWdpbn0ke2VuY29kZVNwYWNlcyhwYWdlUGF0aFdpdGhQYXJhbXMpfWA7XG4gIH0sIFtwYWdlUGF0aFdpdGhQYXJhbXNdKTtcblxuICBjb25zdCBwZXJtYWxpbmsgPSB1c2VNZW1vKCgpID0+IHtcbiAgICBjb25zdCB7IG9yaWdpbiB9ID0gd2luZG93LmxvY2F0aW9uO1xuICAgIGNvbnN0IHsgcGFnZUlkLCBpc1NoYXJlTGlua01vZGUgfSA9IHByb3BzO1xuXG4gICAgaWYgKHBhZ2VJZCA9PSBudWxsKSB7XG4gICAgICByZXR1cm4gbnVsbDtcbiAgICB9XG4gICAgaWYgKGlzU2hhcmVMaW5rTW9kZSkge1xuICAgICAgcmV0dXJuIGRlY29kZVVSSShgJHtvcmlnaW59L3NoYXJlLyR7cGFnZUlkfWApO1xuICAgIH1cblxuICAgIHJldHVybiBlbmNvZGVTcGFjZXMoZGVjb2RlVVJJKGAke29yaWdpbn0vJHtwYWdlSWR9JHtnZXRVcmlQYXJhbXMoKX1gKSk7XG4gIH0sIFtwcm9wcywgZ2V0VXJpUGFyYW1zXSk7XG5cbiAgY29uc3QgbWFya2Rvd25MaW5rID0gdXNlTWVtbygoKSA9PiB7XG4gICAgY29uc3QgeyBwYWdlUGF0aCB9ID0gcHJvcHM7XG5cbiAgICBjb25zdCBsYWJlbCA9IGRlY29kZVVSSShgJHtwYWdlUGF0aH0ke2dldFVyaVBhcmFtcygpfWApO1xuICAgIC8vIGNvbnN0IHBlcm1hbGluayA9IGdlbmVyYXRlUGVybWFsaW5rKCk7XG5cbiAgICByZXR1cm4gYFske2xhYmVsfV0oJHtwZXJtYWxpbmt9KWA7XG4gIH0sIFtwcm9wcywgZ2V0VXJpUGFyYW1zLCBwZXJtYWxpbmtdKTtcblxuXG4gIC8qKlxuICAgKiBjb250cm9sXG4gICAqL1xuICBjb25zdCB0b2dnbGVEcm9wZG93biA9IHVzZUNhbGxiYWNrKCgpID0+IHtcbiAgICBzZXREcm9wZG93bk9wZW4oIWRyb3Bkb3duT3Blbik7XG4gIH0sIFtkcm9wZG93bk9wZW5dKTtcblxuICBjb25zdCB0b2dnbGVBcHBlbmRQYXJhbXMgPSB1c2VDYWxsYmFjaygoKSA9PiB7XG4gICAgc2V0UGFyYW1zQXBwZW5kZWQoIWlzUGFyYW1zQXBwZW5kZWQpO1xuICB9LCBbaXNQYXJhbXNBcHBlbmRlZF0pO1xuXG4gIGNvbnN0IHNob3dUb29sVGlwID0gdXNlQ2FsbGJhY2soKCkgPT4ge1xuICAgIHNldFRvb2x0aXBPcGVuKHRydWUpO1xuICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgc2V0VG9vbHRpcE9wZW4oZmFsc2UpO1xuICAgIH0sIDEwMDApO1xuICB9LCBbXSk7XG5cblxuICAvKlxuICAgKiByZW5kZXJcbiAgICovXG4gIGNvbnN0IHtcbiAgICB0LCBkcm9wZG93blRvZ2dsZUlkLCBwYWdlSWQsIGRyb3Bkb3duVG9nZ2xlQ2xhc3NOYW1lLCBjaGlsZHJlbiwgaXNTaGFyZUxpbmtNb2RlLFxuICB9ID0gcHJvcHM7XG5cbiAgY29uc3QgY3VzdG9tU3dpdGNoRm9yUGFyYW1zSWQgPSBgY3VzdG9tU3dpdGNoRm9yUGFyYW1zXyR7ZHJvcGRvd25Ub2dnbGVJZH1gO1xuXG4gIHJldHVybiAoXG4gICAgPD5cbiAgICAgIDxEcm9wZG93biBjbGFzc05hbWU9XCJncnctY29weS1kcm9wZG93blwiIGlzT3Blbj17ZHJvcGRvd25PcGVufSB0b2dnbGU9e3RvZ2dsZURyb3Bkb3dufT5cbiAgICAgICAgPERyb3Bkb3duVG9nZ2xlXG4gICAgICAgICAgY2FyZXRcbiAgICAgICAgICBjbGFzc05hbWU9e2Ryb3Bkb3duVG9nZ2xlQ2xhc3NOYW1lfVxuICAgICAgICA+XG4gICAgICAgICAgPHNwYW4gaWQ9e2Ryb3Bkb3duVG9nZ2xlSWR9PntjaGlsZHJlbn08L3NwYW4+XG4gICAgICAgIDwvRHJvcGRvd25Ub2dnbGU+XG5cbiAgICAgICAgPERyb3Bkb3duTWVudSBwb3NpdGlvbkZpeGVkIG1vZGlmaWVycz17eyBwcmV2ZW50T3ZlcmZsb3c6IHsgYm91bmRhcmllc0VsZW1lbnQ6IG51bGwgfSB9fT5cblxuICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiZC1mbGV4IGFsaWduLWl0ZW1zLWNlbnRlciBqdXN0aWZ5LWNvbnRlbnQtYmV0d2VlblwiPlxuICAgICAgICAgICAgPERyb3Bkb3duSXRlbSBoZWFkZXIgY2xhc3NOYW1lPVwicHgtM1wiPlxuICAgICAgICAgICAgICB7IHQoJ2NvcHlfdG9fY2xpcGJvYXJkLkNvcHkgdG8gY2xpcGJvYXJkJykgfVxuICAgICAgICAgICAgPC9Ecm9wZG93bkl0ZW0+XG4gICAgICAgICAgICB7ICFpc1NoYXJlTGlua01vZGUgJiYgKFxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cInB4LTMgY3VzdG9tLWNvbnRyb2wgY3VzdG9tLXN3aXRjaCBjdXN0b20tc3dpdGNoLXNtXCI+XG4gICAgICAgICAgICAgICAgPGlucHV0XG4gICAgICAgICAgICAgICAgICB0eXBlPVwiY2hlY2tib3hcIlxuICAgICAgICAgICAgICAgICAgaWQ9e2N1c3RvbVN3aXRjaEZvclBhcmFtc0lkfVxuICAgICAgICAgICAgICAgICAgY2xhc3NOYW1lPVwiY3VzdG9tLWNvbnRyb2wtaW5wdXRcIlxuICAgICAgICAgICAgICAgICAgY2hlY2tlZD17aXNQYXJhbXNBcHBlbmRlZH1cbiAgICAgICAgICAgICAgICAgIG9uQ2hhbmdlPXt0b2dnbGVBcHBlbmRQYXJhbXN9XG4gICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICA8bGFiZWwgY2xhc3NOYW1lPVwiY3VzdG9tLWNvbnRyb2wtbGFiZWwgc21hbGxcIiBodG1sRm9yPXtjdXN0b21Td2l0Y2hGb3JQYXJhbXNJZH0+QXBwZW5kIHBhcmFtczwvbGFiZWw+XG4gICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgKSB9XG4gICAgICAgICAgPC9kaXY+XG5cbiAgICAgICAgICA8RHJvcGRvd25JdGVtIGRpdmlkZXIgY2xhc3NOYW1lPVwibXktMFwiPjwvRHJvcGRvd25JdGVtPlxuXG4gICAgICAgICAgey8qIFBhZ2UgcGF0aCAqL31cbiAgICAgICAgICA8Q29weVRvQ2xpcGJvYXJkIHRleHQ9e3BhZ2VQYXRoV2l0aFBhcmFtc30gb25Db3B5PXtzaG93VG9vbFRpcH0+XG4gICAgICAgICAgICA8RHJvcGRvd25JdGVtIGNsYXNzTmFtZT1cInB4LTNcIj5cbiAgICAgICAgICAgICAgPERyb3Bkb3duSXRlbUNvbnRlbnRzIHRpdGxlPXt0KCdjb3B5X3RvX2NsaXBib2FyZC5QYWdlIHBhdGgnKX0gY29udGVudHM9e3BhZ2VQYXRoV2l0aFBhcmFtc30gLz5cbiAgICAgICAgICAgIDwvRHJvcGRvd25JdGVtPlxuICAgICAgICAgIDwvQ29weVRvQ2xpcGJvYXJkPlxuXG4gICAgICAgICAgPERyb3Bkb3duSXRlbSBkaXZpZGVyIGNsYXNzTmFtZT1cIm15LTBcIj48L0Ryb3Bkb3duSXRlbT5cblxuICAgICAgICAgIHsvKiBQYWdlIHBhdGggVVJMICovfVxuICAgICAgICAgIDxDb3B5VG9DbGlwYm9hcmQgdGV4dD17cGFnZVBhdGhVcmx9IG9uQ29weT17c2hvd1Rvb2xUaXB9PlxuICAgICAgICAgICAgPERyb3Bkb3duSXRlbSBjbGFzc05hbWU9XCJweC0zXCI+XG4gICAgICAgICAgICAgIDxEcm9wZG93bkl0ZW1Db250ZW50cyB0aXRsZT17dCgnY29weV90b19jbGlwYm9hcmQuUGFnZSBVUkwnKX0gY29udGVudHM9e3BhZ2VQYXRoVXJsfSAvPlxuICAgICAgICAgICAgPC9Ecm9wZG93bkl0ZW0+XG4gICAgICAgICAgPC9Db3B5VG9DbGlwYm9hcmQ+XG4gICAgICAgICAgPERyb3Bkb3duSXRlbSBkaXZpZGVyIGNsYXNzTmFtZT1cIm15LTBcIj48L0Ryb3Bkb3duSXRlbT5cblxuICAgICAgICAgIHsvKiBQZXJtYW5lbnQgTGluayAqL31cbiAgICAgICAgICB7IHBhZ2VJZCAmJiAoXG4gICAgICAgICAgICA8Q29weVRvQ2xpcGJvYXJkIHRleHQ9e3Blcm1hbGlua30gb25Db3B5PXtzaG93VG9vbFRpcH0+XG4gICAgICAgICAgICAgIDxEcm9wZG93bkl0ZW0gY2xhc3NOYW1lPVwicHgtM1wiPlxuICAgICAgICAgICAgICAgIDxEcm9wZG93bkl0ZW1Db250ZW50cyB0aXRsZT17dCgnY29weV90b19jbGlwYm9hcmQuUGVybWFuZW50IGxpbmsnKX0gY29udGVudHM9e3Blcm1hbGlua30gLz5cbiAgICAgICAgICAgICAgPC9Ecm9wZG93bkl0ZW0+XG4gICAgICAgICAgICA8L0NvcHlUb0NsaXBib2FyZD5cbiAgICAgICAgICApfVxuXG4gICAgICAgICAgPERyb3Bkb3duSXRlbSBkaXZpZGVyIGNsYXNzTmFtZT1cIm15LTBcIj48L0Ryb3Bkb3duSXRlbT5cblxuICAgICAgICAgIHsvKiBQYWdlIHBhdGggKyBQZXJtYW5lbnQgTGluayAqL31cbiAgICAgICAgICB7IHBhZ2VJZCAmJiAoXG4gICAgICAgICAgICA8Q29weVRvQ2xpcGJvYXJkIHRleHQ9e2Ake3BhZ2VQYXRoV2l0aFBhcmFtc31cXG4ke3Blcm1hbGlua31gfSBvbkNvcHk9e3Nob3dUb29sVGlwfT5cbiAgICAgICAgICAgICAgPERyb3Bkb3duSXRlbSBjbGFzc05hbWU9XCJweC0zXCI+XG4gICAgICAgICAgICAgICAgPERyb3Bkb3duSXRlbUNvbnRlbnRzIHRpdGxlPXt0KCdjb3B5X3RvX2NsaXBib2FyZC5QYWdlIHBhdGggYW5kIHBlcm1hbmVudCBsaW5rJyl9IGNvbnRlbnRzPXs8PntwYWdlUGF0aFdpdGhQYXJhbXN9PGJyIC8+e3Blcm1hbGlua308Lz59IC8+XG4gICAgICAgICAgICAgIDwvRHJvcGRvd25JdGVtPlxuICAgICAgICAgICAgPC9Db3B5VG9DbGlwYm9hcmQ+XG4gICAgICAgICAgKX1cblxuICAgICAgICAgIDxEcm9wZG93bkl0ZW0gZGl2aWRlciBjbGFzc05hbWU9XCJteS0wXCI+PC9Ecm9wZG93bkl0ZW0+XG5cbiAgICAgICAgICB7LyogTWFya2Rvd24gTGluayAqL31cbiAgICAgICAgICB7IHBhZ2VJZCAmJiAoXG4gICAgICAgICAgICA8Q29weVRvQ2xpcGJvYXJkIHRleHQ9e21hcmtkb3duTGlua30gb25Db3B5PXtzaG93VG9vbFRpcH0+XG4gICAgICAgICAgICAgIDxEcm9wZG93bkl0ZW0gY2xhc3NOYW1lPVwicHgtMyB0ZXh0LXdyYXBcIj5cbiAgICAgICAgICAgICAgICA8RHJvcGRvd25JdGVtQ29udGVudHMgdGl0bGU9e3QoJ2NvcHlfdG9fY2xpcGJvYXJkLk1hcmtkb3duIGxpbmsnKX0gY29udGVudHM9e21hcmtkb3duTGlua30gaXNDb250ZW50c1dyYXAgLz5cbiAgICAgICAgICAgICAgPC9Ecm9wZG93bkl0ZW0+XG4gICAgICAgICAgICA8L0NvcHlUb0NsaXBib2FyZD5cbiAgICAgICAgICApfVxuICAgICAgICA8L0Ryb3Bkb3duTWVudT5cblxuICAgICAgPC9Ecm9wZG93bj5cblxuICAgICAgPFRvb2x0aXAgcGxhY2VtZW50PVwiYm90dG9tXCIgaXNPcGVuPXt0b29sdGlwT3Blbn0gdGFyZ2V0PXtkcm9wZG93blRvZ2dsZUlkfSBmYWRlPXtmYWxzZX0+XG4gICAgICAgIGNvcGllZCFcbiAgICAgIDwvVG9vbHRpcD5cbiAgICA8Lz5cbiAgKTtcbn07XG5cbkNvcHlEcm9wZG93bi5wcm9wVHlwZXMgPSB7XG4gIHQ6IFByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWQsIC8vIGkxOG5leHRcblxuICBjaGlsZHJlbjogUHJvcFR5cGVzLm5vZGUuaXNSZXF1aXJlZCxcbiAgZHJvcGRvd25Ub2dnbGVJZDogUHJvcFR5cGVzLnN0cmluZy5pc1JlcXVpcmVkLFxuICBwYWdlUGF0aDogUHJvcFR5cGVzLnN0cmluZy5pc1JlcXVpcmVkLFxuXG4gIHBhZ2VJZDogUHJvcFR5cGVzLnN0cmluZyxcbiAgZHJvcGRvd25Ub2dnbGVDbGFzc05hbWU6IFByb3BUeXBlcy5zdHJpbmcsXG4gIGlzU2hhcmVMaW5rTW9kZTogUHJvcFR5cGVzLmJvb2wsXG59O1xuXG5leHBvcnQgZGVmYXVsdCB3aXRoVHJhbnNsYXRpb24oKShDb3B5RHJvcGRvd24pO1xuIl0sIm1hcHBpbmdzIjoiQUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUdBO0FBRUE7Ozs7OztBQU9BO0FBRUE7QUFFQTtBQUNBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFFQTtBQUFBO0FBQ0E7QUFBQTtBQUdBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBRUE7Ozs7QUFHQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUFBO0FBREE7QUFJQTtBQUNBO0FBRUE7QUFDQTtBQUFBO0FBQUE7QUFDQTtBQUNBO0FBRUE7QUFDQTtBQUFBO0FBQUE7QUFDQTtBQUNBO0FBRUE7QUFDQTtBQUFBO0FBQUE7QUFDQTtBQUFBO0FBQUE7QUFBQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFBQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFFQTtBQUNBO0FBQUE7QUFBQTtBQUVBO0FBQ0E7QUFFQTtBQUNBO0FBR0E7Ozs7QUFHQTtBQUNBO0FBQ0E7QUFFQTtBQUNBO0FBQ0E7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFHQTs7OztBQUdBO0FBQ0E7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBREE7QUFJQTtBQUVBO0FBRUE7QUFBQTtBQUFBO0FBQUE7QUFFQTtBQUNBO0FBRkE7QUFJQTtBQUFBO0FBR0E7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFFQTtBQUFBO0FBQ0E7QUFBQTtBQUFBO0FBSUE7QUFBQTtBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFMQTtBQU9BO0FBQUE7QUFBQTtBQUtBO0FBQUE7QUFBQTtBQUdBO0FBQUE7QUFBQTtBQUNBO0FBQUE7QUFDQTtBQUFBO0FBQUE7QUFJQTtBQUFBO0FBQUE7QUFHQTtBQUFBO0FBQUE7QUFDQTtBQUFBO0FBQ0E7QUFBQTtBQUFBO0FBR0E7QUFBQTtBQUFBO0FBSUE7QUFBQTtBQUFBO0FBQ0E7QUFBQTtBQUNBO0FBQUE7QUFBQTtBQUtBO0FBQUE7QUFBQTtBQUlBO0FBQUE7QUFBQTtBQUNBO0FBQUE7QUFDQTtBQUFBO0FBQUE7QUFLQTtBQUFBO0FBQUE7QUFJQTtBQUFBO0FBQUE7QUFDQTtBQUFBO0FBQ0E7QUFBQTtBQUFBO0FBQUE7QUFRQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBS0E7QUFDQTtBQUNBO0FBQ0E7QUFBQTtBQUVBO0FBQ0E7QUFDQTtBQUVBO0FBQ0E7QUFDQTtBQVRBO0FBWUEiLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./src/client/js/components/Page/CopyDropdown.jsx\n");
- /***/ }),
- /***/ "./src/client/js/components/PageAttachment/Attachment.jsx":
- /*!****************************************************************!*\
- !*** ./src/client/js/components/PageAttachment/Attachment.jsx ***!
- \****************************************************************/
- /*! exports provided: default */
- /***/ (function(module, __webpack_exports__, __webpack_require__) {
- "use strict";
- eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"default\", function() { return Attachment; });\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"./node_modules/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! prop-types */ \"./node_modules/prop-types/index.js\");\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(prop_types__WEBPACK_IMPORTED_MODULE_1__);\n/* harmony import */ var _User_UserPicture__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../User/UserPicture */ \"./src/client/js/components/User/UserPicture.jsx\");\n\n\n\nclass Attachment extends react__WEBPACK_IMPORTED_MODULE_0___default.a.Component {\n constructor(props) {\n super(props);\n this._onAttachmentDeleteClicked = this._onAttachmentDeleteClicked.bind(this);\n }\n\n iconNameByFormat(format) {\n if (format.match(/image\\/.+/i)) {\n return 'icon-picture';\n }\n\n return 'icon-doc';\n }\n\n _onAttachmentDeleteClicked(event) {\n if (this.props.onAttachmentDeleteClicked != null) {\n this.props.onAttachmentDeleteClicked(this.props.attachment);\n }\n }\n\n render() {\n const attachment = this.props.attachment;\n const formatIcon = this.iconNameByFormat(attachment.fileFormat);\n let fileInUse = '';\n\n if (this.props.inUse) {\n fileInUse = react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"span\", {\n className: \"attachment-in-use badge badge-pill badge-info\"\n }, \"In Use\");\n }\n\n const fileType = react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"span\", {\n className: \"attachment-filetype badge badge-pill badge-secondary\"\n }, attachment.fileFormat);\n const btnDownload = this.props.isUserLoggedIn ? react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"a\", {\n className: \"attachment-download\",\n href: attachment.downloadPathProxied\n }, react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"i\", {\n className: \"icon-cloud-download\"\n })) : '';\n const btnTrash = this.props.isUserLoggedIn ?\n /* eslint-disable-next-line */\n react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"a\", {\n className: \"text-danger attachment-delete\",\n onClick: this._onAttachmentDeleteClicked\n }, react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"i\", {\n className: \"icon-trash\"\n })) : '';\n return react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"div\", {\n className: \"attachment mb-2\"\n }, react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"span\", {\n className: \"mr-1 attachment-userpicture\"\n }, react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(_User_UserPicture__WEBPACK_IMPORTED_MODULE_2__[\"default\"], {\n user: attachment.creator,\n size: \"sm\"\n })), react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"a\", {\n className: \"mr-2\",\n href: attachment.filePathProxied\n }, react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"i\", {\n className: formatIcon\n }), \" \", attachment.originalName), react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"span\", {\n className: \"mr-2\"\n }, fileType), react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"span\", {\n className: \"mr-2\"\n }, fileInUse), react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"span\", {\n className: \"mr-2\"\n }, btnDownload), react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"span\", {\n className: \"mr-2\"\n }, btnTrash));\n }\n\n}\nAttachment.propTypes = {\n attachment: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.object.isRequired,\n inUse: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.bool,\n onAttachmentDeleteClicked: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.func,\n isUserLoggedIn: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.bool\n};\nAttachment.defaultProps = {\n inUse: false,\n isUserLoggedIn: false\n};//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9zcmMvY2xpZW50L2pzL2NvbXBvbmVudHMvUGFnZUF0dGFjaG1lbnQvQXR0YWNobWVudC5qc3guanMiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9zcmMvY2xpZW50L2pzL2NvbXBvbmVudHMvUGFnZUF0dGFjaG1lbnQvQXR0YWNobWVudC5qc3g/NWJiNiJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgUmVhY3QgZnJvbSAncmVhY3QnO1xuaW1wb3J0IFByb3BUeXBlcyBmcm9tICdwcm9wLXR5cGVzJztcblxuaW1wb3J0IFVzZXJQaWN0dXJlIGZyb20gJy4uL1VzZXIvVXNlclBpY3R1cmUnO1xuXG5leHBvcnQgZGVmYXVsdCBjbGFzcyBBdHRhY2htZW50IGV4dGVuZHMgUmVhY3QuQ29tcG9uZW50IHtcblxuICBjb25zdHJ1Y3Rvcihwcm9wcykge1xuICAgIHN1cGVyKHByb3BzKTtcblxuICAgIHRoaXMuX29uQXR0YWNobWVudERlbGV0ZUNsaWNrZWQgPSB0aGlzLl9vbkF0dGFjaG1lbnREZWxldGVDbGlja2VkLmJpbmQodGhpcyk7XG4gIH1cblxuICBpY29uTmFtZUJ5Rm9ybWF0KGZvcm1hdCkge1xuICAgIGlmIChmb3JtYXQubWF0Y2goL2ltYWdlXFwvLisvaSkpIHtcbiAgICAgIHJldHVybiAnaWNvbi1waWN0dXJlJztcbiAgICB9XG5cbiAgICByZXR1cm4gJ2ljb24tZG9jJztcbiAgfVxuXG4gIF9vbkF0dGFjaG1lbnREZWxldGVDbGlja2VkKGV2ZW50KSB7XG4gICAgaWYgKHRoaXMucHJvcHMub25BdHRhY2htZW50RGVsZXRlQ2xpY2tlZCAhPSBudWxsKSB7XG4gICAgICB0aGlzLnByb3BzLm9uQXR0YWNobWVudERlbGV0ZUNsaWNrZWQodGhpcy5wcm9wcy5hdHRhY2htZW50KTtcbiAgICB9XG4gIH1cblxuICByZW5kZXIoKSB7XG4gICAgY29uc3QgYXR0YWNobWVudCA9IHRoaXMucHJvcHMuYXR0YWNobWVudDtcbiAgICBjb25zdCBmb3JtYXRJY29uID0gdGhpcy5pY29uTmFtZUJ5Rm9ybWF0KGF0dGFjaG1lbnQuZmlsZUZvcm1hdCk7XG5cbiAgICBsZXQgZmlsZUluVXNlID0gJyc7XG4gICAgaWYgKHRoaXMucHJvcHMuaW5Vc2UpIHtcbiAgICAgIGZpbGVJblVzZSA9IDxzcGFuIGNsYXNzTmFtZT1cImF0dGFjaG1lbnQtaW4tdXNlIGJhZGdlIGJhZGdlLXBpbGwgYmFkZ2UtaW5mb1wiPkluIFVzZTwvc3Bhbj47XG4gICAgfVxuXG4gICAgY29uc3QgZmlsZVR5cGUgPSA8c3BhbiBjbGFzc05hbWU9XCJhdHRhY2htZW50LWZpbGV0eXBlIGJhZGdlIGJhZGdlLXBpbGwgYmFkZ2Utc2Vjb25kYXJ5XCI+e2F0dGFjaG1lbnQuZmlsZUZvcm1hdH08L3NwYW4+O1xuXG4gICAgY29uc3QgYnRuRG93bmxvYWQgPSAodGhpcy5wcm9wcy5pc1VzZXJMb2dnZWRJbilcbiAgICAgID8gKFxuICAgICAgICA8YSBjbGFzc05hbWU9XCJhdHRhY2htZW50LWRvd25sb2FkXCIgaHJlZj17YXR0YWNobWVudC5kb3dubG9hZFBhdGhQcm94aWVkfT5cbiAgICAgICAgICA8aSBjbGFzc05hbWU9XCJpY29uLWNsb3VkLWRvd25sb2FkXCIgLz5cbiAgICAgICAgPC9hPlxuICAgICAgKVxuICAgICAgOiAnJztcblxuICAgIGNvbnN0IGJ0blRyYXNoID0gKHRoaXMucHJvcHMuaXNVc2VyTG9nZ2VkSW4pXG4gICAgICA/IChcbiAgICAgICAgLyogZXNsaW50LWRpc2FibGUtbmV4dC1saW5lICovXG4gICAgICAgIDxhIGNsYXNzTmFtZT1cInRleHQtZGFuZ2VyIGF0dGFjaG1lbnQtZGVsZXRlXCIgb25DbGljaz17dGhpcy5fb25BdHRhY2htZW50RGVsZXRlQ2xpY2tlZH0+XG4gICAgICAgICAgPGkgY2xhc3NOYW1lPVwiaWNvbi10cmFzaFwiIC8+XG4gICAgICAgIDwvYT5cbiAgICAgIClcbiAgICAgIDogJyc7XG5cbiAgICByZXR1cm4gKFxuICAgICAgPGRpdiBjbGFzc05hbWU9XCJhdHRhY2htZW50IG1iLTJcIj5cbiAgICAgICAgPHNwYW4gY2xhc3NOYW1lPVwibXItMSBhdHRhY2htZW50LXVzZXJwaWN0dXJlXCI+XG4gICAgICAgICAgPFVzZXJQaWN0dXJlIHVzZXI9e2F0dGFjaG1lbnQuY3JlYXRvcn0gc2l6ZT1cInNtXCI+PC9Vc2VyUGljdHVyZT5cbiAgICAgICAgPC9zcGFuPlxuICAgICAgICA8YSBjbGFzc05hbWU9XCJtci0yXCIgaHJlZj17YXR0YWNobWVudC5maWxlUGF0aFByb3hpZWR9PjxpIGNsYXNzTmFtZT17Zm9ybWF0SWNvbn0+PC9pPiB7YXR0YWNobWVudC5vcmlnaW5hbE5hbWV9PC9hPlxuICAgICAgICA8c3BhbiBjbGFzc05hbWU9XCJtci0yXCI+e2ZpbGVUeXBlfTwvc3Bhbj5cbiAgICAgICAgPHNwYW4gY2xhc3NOYW1lPVwibXItMlwiPntmaWxlSW5Vc2V9PC9zcGFuPlxuICAgICAgICA8c3BhbiBjbGFzc05hbWU9XCJtci0yXCI+e2J0bkRvd25sb2FkfTwvc3Bhbj5cbiAgICAgICAgPHNwYW4gY2xhc3NOYW1lPVwibXItMlwiPntidG5UcmFzaH08L3NwYW4+XG4gICAgICA8L2Rpdj5cbiAgICApO1xuICB9XG5cbn1cblxuQXR0YWNobWVudC5wcm9wVHlwZXMgPSB7XG4gIGF0dGFjaG1lbnQ6IFByb3BUeXBlcy5vYmplY3QuaXNSZXF1aXJlZCxcbiAgaW5Vc2U6IFByb3BUeXBlcy5ib29sLFxuICBvbkF0dGFjaG1lbnREZWxldGVDbGlja2VkOiBQcm9wVHlwZXMuZnVuYyxcbiAgaXNVc2VyTG9nZ2VkSW46IFByb3BUeXBlcy5ib29sLFxufTtcblxuQXR0YWNobWVudC5kZWZhdWx0UHJvcHMgPSB7XG4gIGluVXNlOiBmYWxzZSxcbiAgaXNVc2VyTG9nZ2VkSW46IGZhbHNlLFxufTtcbiJdLCJtYXBwaW5ncyI6IkFBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUNBO0FBRUE7QUFFQTtBQUVBO0FBQ0E7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBRUE7QUFDQTtBQUFBO0FBQ0E7QUFBQTtBQUFBO0FBQ0E7QUFDQTtBQUNBO0FBQUE7QUFBQTtBQUVBO0FBRUE7QUFBQTtBQUFBO0FBQ0E7QUFBQTtBQUtBO0FBRUE7QUFDQTtBQUFBO0FBQUE7QUFBQTtBQUNBO0FBQUE7QUFLQTtBQUNBO0FBQUE7QUFDQTtBQUFBO0FBQ0E7QUFBQTtBQUFBO0FBRUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUNBO0FBQUE7QUFDQTtBQUFBO0FBQ0E7QUFBQTtBQUNBO0FBQUE7QUFHQTtBQUNBO0FBL0RBO0FBa0VBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFKQTtBQU9BO0FBQ0E7QUFDQTtBQUZBIiwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./src/client/js/components/PageAttachment/Attachment.jsx\n");
- /***/ }),
- /***/ "./src/client/js/components/PageCreateModal.jsx":
- /*!******************************************************!*\
- !*** ./src/client/js/components/PageCreateModal.jsx ***!
- \******************************************************/
- /*! exports provided: default */
- /***/ (function(module, __webpack_exports__, __webpack_require__) {
- "use strict";
- eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"./node_modules/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! prop-types */ \"./node_modules/prop-types/index.js\");\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(prop_types__WEBPACK_IMPORTED_MODULE_1__);\n/* harmony import */ var reactstrap_es_Modal__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! reactstrap/es/Modal */ \"./node_modules/reactstrap/es/Modal.js\");\n/* harmony import */ var reactstrap_es_ModalHeader__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! reactstrap/es/ModalHeader */ \"./node_modules/reactstrap/es/ModalHeader.js\");\n/* harmony import */ var reactstrap_es_ModalBody__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! reactstrap/es/ModalBody */ \"./node_modules/reactstrap/es/ModalBody.js\");\n/* harmony import */ var react_i18next__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! react-i18next */ \"./node_modules/react-i18next/dist/es/index.js\");\n/* harmony import */ var date_fns__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! date-fns */ \"./node_modules/date-fns/esm/index.js\");\n/* harmony import */ var _commons_util_path_utils__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! @commons/util/path-utils */ \"./src/lib/util/path-utils.js\");\n/* harmony import */ var _commons_util_path_utils__WEBPACK_IMPORTED_MODULE_7___default = /*#__PURE__*/__webpack_require__.n(_commons_util_path_utils__WEBPACK_IMPORTED_MODULE_7__);\n/* harmony import */ var growi_commons__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! growi-commons */ \"./node_modules/growi-commons/src/index.js\");\n/* harmony import */ var growi_commons__WEBPACK_IMPORTED_MODULE_8___default = /*#__PURE__*/__webpack_require__.n(growi_commons__WEBPACK_IMPORTED_MODULE_8__);\n/* harmony import */ var _services_AppContainer__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ../services/AppContainer */ \"./src/client/js/services/AppContainer.js\");\n/* harmony import */ var _services_NavigationContainer__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ../services/NavigationContainer */ \"./src/client/js/services/NavigationContainer.js\");\n/* harmony import */ var _UnstatedUtils__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! ./UnstatedUtils */ \"./src/client/js/components/UnstatedUtils.jsx\");\n/* harmony import */ var _util_apiNotification__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! ../util/apiNotification */ \"./src/client/js/util/apiNotification.js\");\n/* harmony import */ var _PagePathAutoComplete__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(/*! ./PagePathAutoComplete */ \"./src/client/js/components/PagePathAutoComplete.jsx\");\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nconst PageCreateModal = props => {\n const {\n t,\n appContainer,\n navigationContainer\n } = props;\n const config = appContainer.getConfig();\n const isReachable = config.isSearchServiceReachable;\n const pathname = decodeURI(window.location.pathname);\n const userPageRootPath = Object(_commons_util_path_utils__WEBPACK_IMPORTED_MODULE_7__[\"userPageRoot\"])(appContainer.currentUser);\n const pageNameInputInitialValue = Object(_commons_util_path_utils__WEBPACK_IMPORTED_MODULE_7__[\"isCreatablePage\"])(pathname) ? growi_commons__WEBPACK_IMPORTED_MODULE_8__[\"pathUtils\"].addTrailingSlash(pathname) : '/';\n const now = Object(date_fns__WEBPACK_IMPORTED_MODULE_6__[\"format\"])(new Date(), 'yyyy/MM/dd');\n const [todayInput1, setTodayInput1] = Object(react__WEBPACK_IMPORTED_MODULE_0__[\"useState\"])(t('Memo'));\n const [todayInput2, setTodayInput2] = Object(react__WEBPACK_IMPORTED_MODULE_0__[\"useState\"])('');\n const [pageNameInput, setPageNameInput] = Object(react__WEBPACK_IMPORTED_MODULE_0__[\"useState\"])(pageNameInputInitialValue);\n const [template, setTemplate] = Object(react__WEBPACK_IMPORTED_MODULE_0__[\"useState\"])(null);\n\n function transitBySubmitEvent(e, transitHandler) {\n // prevent page transition by submit\n e.preventDefault();\n transitHandler();\n }\n /**\n * change todayInput1\n * @param {string} value\n */\n\n\n function onChangeTodayInput1Handler(value) {\n setTodayInput1(value);\n }\n /**\n * change todayInput2\n * @param {string} value\n */\n\n\n function onChangeTodayInput2Handler(value) {\n setTodayInput2(value);\n }\n /**\n * change pageNameInput\n * @param {string} value\n */\n\n\n function onChangePageNameInputHandler(value) {\n setPageNameInput(value);\n }\n /**\n * change template\n * @param {string} value\n */\n\n\n function onChangeTemplateHandler(value) {\n setTemplate(value);\n }\n /**\n * join path, check if creatable, then redirect\n * @param {string} paths\n */\n\n\n async function redirectToEditor(...paths) {\n try {\n const editorPath = await Object(_commons_util_path_utils__WEBPACK_IMPORTED_MODULE_7__[\"generateEditorPath\"])(...paths);\n window.location.href = editorPath;\n } catch (err) {\n Object(_util_apiNotification__WEBPACK_IMPORTED_MODULE_12__[\"toastError\"])(err);\n }\n }\n /**\n * access today page\n */\n\n\n function createTodayPage() {\n let tmpTodayInput1 = todayInput1;\n\n if (tmpTodayInput1 === '') {\n tmpTodayInput1 = t('Memo');\n }\n\n redirectToEditor(userPageRootPath, tmpTodayInput1, now, todayInput2);\n }\n /**\n * access input page\n */\n\n\n function createInputPage() {\n redirectToEditor(pageNameInput);\n }\n\n function ppacInputChangeHandler(value) {\n setPageNameInput(value);\n }\n\n function ppacSubmitHandler() {\n createInputPage();\n }\n /**\n * access template page\n */\n\n\n function createTemplatePage(e) {\n const pageName = template === 'children' ? '_template' : '__template';\n redirectToEditor(pathname, pageName);\n }\n\n function renderCreateTodayForm() {\n return react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"div\", {\n className: \"row\"\n }, react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"fieldset\", {\n className: \"col-12 mb-4\"\n }, react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"h3\", {\n className: \"grw-modal-head pb-2\"\n }, t(\"Create today's\")), react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"div\", {\n className: \"d-sm-flex align-items-center justify-items-between\"\n }, react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"div\", {\n className: \"d-flex align-items-center flex-fill flex-wrap flex-lg-nowrap\"\n }, react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"div\", {\n className: \"d-flex align-items-center\"\n }, react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"span\", null, userPageRootPath, \"/\"), react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"form\", {\n onSubmit: e => transitBySubmitEvent(e, createTodayPage)\n }, react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"input\", {\n type: \"text\",\n className: \"page-today-input1 form-control text-center mx-2\",\n value: todayInput1,\n onChange: e => onChangeTodayInput1Handler(e.target.value)\n })), react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"span\", {\n className: \"page-today-suffix\"\n }, \"/\", now, \"/\")), react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"form\", {\n className: \"mt-1 mt-lg-0 ml-lg-2 w-100\",\n onSubmit: e => transitBySubmitEvent(e, createTodayPage)\n }, react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"input\", {\n type: \"text\",\n className: \"page-today-input2 form-control w-100\",\n id: \"page-today-input2\",\n placeholder: t('Input page name (optional)'),\n value: todayInput2,\n onChange: e => onChangeTodayInput2Handler(e.target.value)\n }))), react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"div\", {\n className: \"d-flex justify-content-end mt-1 mt-sm-0\"\n }, react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"button\", {\n type: \"button\",\n className: \"grw-btn-create-page btn btn-outline-primary rounded-pill text-nowrap ml-3\",\n onClick: createTodayPage\n }, react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"i\", {\n className: \"icon-fw icon-doc\"\n }), t('Create'))))));\n }\n\n function renderInputPageForm() {\n return react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"div\", {\n className: \"row\"\n }, react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"fieldset\", {\n className: \"col-12 mb-4\"\n }, react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"h3\", {\n className: \"grw-modal-head pb-2\"\n }, t('Create under')), react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"div\", {\n className: \"d-sm-flex align-items-center justify-items-between\"\n }, react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"div\", {\n className: \"flex-fill\"\n }, isReachable ? react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(_PagePathAutoComplete__WEBPACK_IMPORTED_MODULE_13__[\"default\"], {\n initializedPath: pageNameInput,\n addTrailingSlash: true,\n onSubmit: ppacSubmitHandler,\n onInputChange: ppacInputChangeHandler,\n autoFocus: true\n }) : react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"form\", {\n onSubmit: e => transitBySubmitEvent(e, createInputPage)\n }, react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"input\", {\n type: \"text\",\n value: pageNameInput,\n className: \"form-control flex-fill\",\n placeholder: t('Input page name'),\n onChange: e => onChangePageNameInputHandler(e.target.value),\n required: true\n }))), react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"div\", {\n className: \"d-flex justify-content-end mt-1 mt-sm-0\"\n }, react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"button\", {\n type: \"button\",\n className: \"grw-btn-create-page btn btn-outline-primary rounded-pill text-nowrap ml-3\",\n onClick: createInputPage\n }, react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"i\", {\n className: \"icon-fw icon-doc\"\n }), t('Create'))))));\n }\n\n function renderTemplatePageForm() {\n return react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"div\", {\n className: \"row\"\n }, react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"fieldset\", {\n className: \"col-12\"\n }, react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"h3\", {\n className: \"grw-modal-head pb-2\"\n }, t('template.modal_label.Create template under'), react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"br\", null), react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"code\", {\n className: \"h6\"\n }, pathname)), react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"div\", {\n className: \"d-sm-flex align-items-center justify-items-between\"\n }, react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"div\", {\n id: \"dd-template-type\",\n className: \"dropdown flex-fill\"\n }, react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"button\", {\n id: \"template-type\",\n type: \"button\",\n className: \"btn btn-secondary btn dropdown-toggle w-100\",\n \"data-toggle\": \"dropdown\"\n }, template == null && t('template.option_label.select'), template === 'children' && t('template.children.label'), template === 'decendants' && t('template.decendants.label')), react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"div\", {\n className: \"dropdown-menu\",\n \"aria-labelledby\": \"userMenu\"\n }, react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"button\", {\n className: \"dropdown-item\",\n type: \"button\",\n onClick: () => onChangeTemplateHandler('children')\n }, t('template.children.label'), \" (_template)\", react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"br\", {\n className: \"d-block d-md-none\"\n }), react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"small\", {\n className: \"text-muted text-wrap\"\n }, \"- \", t('template.children.desc'))), react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"button\", {\n className: \"dropdown-item\",\n type: \"button\",\n onClick: () => onChangeTemplateHandler('decendants')\n }, t('template.decendants.label'), \" (__template) \", react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"br\", {\n className: \"d-block d-md-none\"\n }), react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"small\", {\n className: \"text-muted\"\n }, \"- \", t('template.decendants.desc'))))), react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"div\", {\n className: \"d-flex justify-content-end mt-1 mt-sm-0\"\n }, react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"button\", {\n type: \"button\",\n className: `grw-btn-create-page btn btn-outline-primary rounded-pill text-nowrap ml-3 ${template == null && 'disabled'}`,\n onClick: createTemplatePage\n }, react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"i\", {\n className: \"icon-fw icon-doc\"\n }), t('Edit'))))));\n }\n\n return react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(reactstrap_es_Modal__WEBPACK_IMPORTED_MODULE_2__[\"default\"], {\n size: \"lg\",\n isOpen: navigationContainer.state.isPageCreateModalShown,\n toggle: navigationContainer.closePageCreateModal,\n className: \"grw-create-page\",\n autoFocus: false\n }, react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(reactstrap_es_ModalHeader__WEBPACK_IMPORTED_MODULE_3__[\"default\"], {\n tag: \"h4\",\n toggle: navigationContainer.closePageCreateModal,\n className: \"bg-primary text-light\"\n }, t('New Page')), react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(reactstrap_es_ModalBody__WEBPACK_IMPORTED_MODULE_4__[\"default\"], null, renderCreateTodayForm(), renderInputPageForm(), renderTemplatePageForm()));\n};\n/**\n * Wrapper component for using unstated\n */\n\n\nconst ModalControlWrapper = Object(_UnstatedUtils__WEBPACK_IMPORTED_MODULE_11__[\"withUnstatedContainers\"])(PageCreateModal, [_services_AppContainer__WEBPACK_IMPORTED_MODULE_9__[\"default\"], _services_NavigationContainer__WEBPACK_IMPORTED_MODULE_10__[\"default\"]]);\nPageCreateModal.propTypes = {\n t: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.func.isRequired,\n // i18next\n appContainer: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.instanceOf(_services_AppContainer__WEBPACK_IMPORTED_MODULE_9__[\"default\"]).isRequired,\n navigationContainer: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.instanceOf(_services_NavigationContainer__WEBPACK_IMPORTED_MODULE_10__[\"default\"]).isRequired\n};\n/* harmony default export */ __webpack_exports__[\"default\"] = (Object(react_i18next__WEBPACK_IMPORTED_MODULE_5__[\"withTranslation\"])()(ModalControlWrapper));//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9zcmMvY2xpZW50L2pzL2NvbXBvbmVudHMvUGFnZUNyZWF0ZU1vZGFsLmpzeC5qcyIsInNvdXJjZXMiOlsid2VicGFjazovLy8uL3NyYy9jbGllbnQvanMvY29tcG9uZW50cy9QYWdlQ3JlYXRlTW9kYWwuanN4P2JjOGYiXSwic291cmNlc0NvbnRlbnQiOlsiXG5pbXBvcnQgUmVhY3QsIHsgdXNlU3RhdGUgfSBmcm9tICdyZWFjdCc7XG5pbXBvcnQgUHJvcFR5cGVzIGZyb20gJ3Byb3AtdHlwZXMnO1xuXG5pbXBvcnQgeyBNb2RhbCwgTW9kYWxIZWFkZXIsIE1vZGFsQm9keSB9IGZyb20gJ3JlYWN0c3RyYXAnO1xuXG5pbXBvcnQgeyB3aXRoVHJhbnNsYXRpb24gfSBmcm9tICdyZWFjdC1pMThuZXh0JztcbmltcG9ydCB7IGZvcm1hdCB9IGZyb20gJ2RhdGUtZm5zJztcblxuaW1wb3J0IHtcbiAgdXNlclBhZ2VSb290LCBpc0NyZWF0YWJsZVBhZ2UsIGdlbmVyYXRlRWRpdG9yUGF0aCxcbn0gZnJvbSAnQGNvbW1vbnMvdXRpbC9wYXRoLXV0aWxzJztcbmltcG9ydCB7IHBhdGhVdGlscyB9IGZyb20gJ2dyb3dpLWNvbW1vbnMnO1xuXG5pbXBvcnQgQXBwQ29udGFpbmVyIGZyb20gJy4uL3NlcnZpY2VzL0FwcENvbnRhaW5lcic7XG5pbXBvcnQgTmF2aWdhdGlvbkNvbnRhaW5lciBmcm9tICcuLi9zZXJ2aWNlcy9OYXZpZ2F0aW9uQ29udGFpbmVyJztcbmltcG9ydCB7IHdpdGhVbnN0YXRlZENvbnRhaW5lcnMgfSBmcm9tICcuL1Vuc3RhdGVkVXRpbHMnO1xuaW1wb3J0IHsgdG9hc3RFcnJvciB9IGZyb20gJy4uL3V0aWwvYXBpTm90aWZpY2F0aW9uJztcblxuaW1wb3J0IFBhZ2VQYXRoQXV0b0NvbXBsZXRlIGZyb20gJy4vUGFnZVBhdGhBdXRvQ29tcGxldGUnO1xuXG5jb25zdCBQYWdlQ3JlYXRlTW9kYWwgPSAocHJvcHMpID0+IHtcbiAgY29uc3QgeyB0LCBhcHBDb250YWluZXIsIG5hdmlnYXRpb25Db250YWluZXIgfSA9IHByb3BzO1xuXG4gIGNvbnN0IGNvbmZpZyA9IGFwcENvbnRhaW5lci5nZXRDb25maWcoKTtcbiAgY29uc3QgaXNSZWFjaGFibGUgPSBjb25maWcuaXNTZWFyY2hTZXJ2aWNlUmVhY2hhYmxlO1xuICBjb25zdCBwYXRobmFtZSA9IGRlY29kZVVSSSh3aW5kb3cubG9jYXRpb24ucGF0aG5hbWUpO1xuICBjb25zdCB1c2VyUGFnZVJvb3RQYXRoID0gdXNlclBhZ2VSb290KGFwcENvbnRhaW5lci5jdXJyZW50VXNlcik7XG4gIGNvbnN0IHBhZ2VOYW1lSW5wdXRJbml0aWFsVmFsdWUgPSBpc0NyZWF0YWJsZVBhZ2UocGF0aG5hbWUpID8gcGF0aFV0aWxzLmFkZFRyYWlsaW5nU2xhc2gocGF0aG5hbWUpIDogJy8nO1xuICBjb25zdCBub3cgPSBmb3JtYXQobmV3IERhdGUoKSwgJ3l5eXkvTU0vZGQnKTtcblxuICBjb25zdCBbdG9kYXlJbnB1dDEsIHNldFRvZGF5SW5wdXQxXSA9IHVzZVN0YXRlKHQoJ01lbW8nKSk7XG4gIGNvbnN0IFt0b2RheUlucHV0Miwgc2V0VG9kYXlJbnB1dDJdID0gdXNlU3RhdGUoJycpO1xuICBjb25zdCBbcGFnZU5hbWVJbnB1dCwgc2V0UGFnZU5hbWVJbnB1dF0gPSB1c2VTdGF0ZShwYWdlTmFtZUlucHV0SW5pdGlhbFZhbHVlKTtcbiAgY29uc3QgW3RlbXBsYXRlLCBzZXRUZW1wbGF0ZV0gPSB1c2VTdGF0ZShudWxsKTtcblxuICBmdW5jdGlvbiB0cmFuc2l0QnlTdWJtaXRFdmVudChlLCB0cmFuc2l0SGFuZGxlcikge1xuICAgIC8vIHByZXZlbnQgcGFnZSB0cmFuc2l0aW9uIGJ5IHN1Ym1pdFxuICAgIGUucHJldmVudERlZmF1bHQoKTtcbiAgICB0cmFuc2l0SGFuZGxlcigpO1xuICB9XG5cbiAgLyoqXG4gICAqIGNoYW5nZSB0b2RheUlucHV0MVxuICAgKiBAcGFyYW0ge3N0cmluZ30gdmFsdWVcbiAgICovXG4gIGZ1bmN0aW9uIG9uQ2hhbmdlVG9kYXlJbnB1dDFIYW5kbGVyKHZhbHVlKSB7XG4gICAgc2V0VG9kYXlJbnB1dDEodmFsdWUpO1xuICB9XG5cbiAgLyoqXG4gICAqIGNoYW5nZSB0b2RheUlucHV0MlxuICAgKiBAcGFyYW0ge3N0cmluZ30gdmFsdWVcbiAgICovXG4gIGZ1bmN0aW9uIG9uQ2hhbmdlVG9kYXlJbnB1dDJIYW5kbGVyKHZhbHVlKSB7XG4gICAgc2V0VG9kYXlJbnB1dDIodmFsdWUpO1xuICB9XG5cbiAgLyoqXG4gICAqIGNoYW5nZSBwYWdlTmFtZUlucHV0XG4gICAqIEBwYXJhbSB7c3RyaW5nfSB2YWx1ZVxuICAgKi9cbiAgZnVuY3Rpb24gb25DaGFuZ2VQYWdlTmFtZUlucHV0SGFuZGxlcih2YWx1ZSkge1xuICAgIHNldFBhZ2VOYW1lSW5wdXQodmFsdWUpO1xuICB9XG5cbiAgLyoqXG4gICAqIGNoYW5nZSB0ZW1wbGF0ZVxuICAgKiBAcGFyYW0ge3N0cmluZ30gdmFsdWVcbiAgICovXG4gIGZ1bmN0aW9uIG9uQ2hhbmdlVGVtcGxhdGVIYW5kbGVyKHZhbHVlKSB7XG4gICAgc2V0VGVtcGxhdGUodmFsdWUpO1xuICB9XG5cbiAgLyoqXG4gICAqIGpvaW4gcGF0aCwgY2hlY2sgaWYgY3JlYXRhYmxlLCB0aGVuIHJlZGlyZWN0XG4gICAqIEBwYXJhbSB7c3RyaW5nfSBwYXRoc1xuICAgKi9cbiAgYXN5bmMgZnVuY3Rpb24gcmVkaXJlY3RUb0VkaXRvciguLi5wYXRocykge1xuICAgIHRyeSB7XG4gICAgICBjb25zdCBlZGl0b3JQYXRoID0gYXdhaXQgZ2VuZXJhdGVFZGl0b3JQYXRoKC4uLnBhdGhzKTtcbiAgICAgIHdpbmRvdy5sb2NhdGlvbi5ocmVmID0gZWRpdG9yUGF0aDtcbiAgICB9XG4gICAgY2F0Y2ggKGVycikge1xuICAgICAgdG9hc3RFcnJvcihlcnIpO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBhY2Nlc3MgdG9kYXkgcGFnZVxuICAgKi9cbiAgZnVuY3Rpb24gY3JlYXRlVG9kYXlQYWdlKCkge1xuICAgIGxldCB0bXBUb2RheUlucHV0MSA9IHRvZGF5SW5wdXQxO1xuICAgIGlmICh0bXBUb2RheUlucHV0MSA9PT0gJycpIHtcbiAgICAgIHRtcFRvZGF5SW5wdXQxID0gdCgnTWVtbycpO1xuICAgIH1cbiAgICByZWRpcmVjdFRvRWRpdG9yKHVzZXJQYWdlUm9vdFBhdGgsIHRtcFRvZGF5SW5wdXQxLCBub3csIHRvZGF5SW5wdXQyKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBhY2Nlc3MgaW5wdXQgcGFnZVxuICAgKi9cbiAgZnVuY3Rpb24gY3JlYXRlSW5wdXRQYWdlKCkge1xuICAgIHJlZGlyZWN0VG9FZGl0b3IocGFnZU5hbWVJbnB1dCk7XG4gIH1cblxuICBmdW5jdGlvbiBwcGFjSW5wdXRDaGFuZ2VIYW5kbGVyKHZhbHVlKSB7XG4gICAgc2V0UGFnZU5hbWVJbnB1dCh2YWx1ZSk7XG4gIH1cblxuICBmdW5jdGlvbiBwcGFjU3VibWl0SGFuZGxlcigpIHtcbiAgICBjcmVhdGVJbnB1dFBhZ2UoKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBhY2Nlc3MgdGVtcGxhdGUgcGFnZVxuICAgKi9cbiAgZnVuY3Rpb24gY3JlYXRlVGVtcGxhdGVQYWdlKGUpIHtcbiAgICBjb25zdCBwYWdlTmFtZSA9ICh0ZW1wbGF0ZSA9PT0gJ2NoaWxkcmVuJykgPyAnX3RlbXBsYXRlJyA6ICdfX3RlbXBsYXRlJztcbiAgICByZWRpcmVjdFRvRWRpdG9yKHBhdGhuYW1lLCBwYWdlTmFtZSk7XG4gIH1cblxuICBmdW5jdGlvbiByZW5kZXJDcmVhdGVUb2RheUZvcm0oKSB7XG4gICAgcmV0dXJuIChcbiAgICAgIDxkaXYgY2xhc3NOYW1lPVwicm93XCI+XG4gICAgICAgIDxmaWVsZHNldCBjbGFzc05hbWU9XCJjb2wtMTIgbWItNFwiPlxuICAgICAgICAgIDxoMyBjbGFzc05hbWU9XCJncnctbW9kYWwtaGVhZCBwYi0yXCI+e3QoXCJDcmVhdGUgdG9kYXknc1wiKX08L2gzPlxuXG4gICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJkLXNtLWZsZXggYWxpZ24taXRlbXMtY2VudGVyIGp1c3RpZnktaXRlbXMtYmV0d2VlblwiPlxuXG4gICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImQtZmxleCBhbGlnbi1pdGVtcy1jZW50ZXIgZmxleC1maWxsIGZsZXgtd3JhcCBmbGV4LWxnLW5vd3JhcFwiPlxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImQtZmxleCBhbGlnbi1pdGVtcy1jZW50ZXJcIj5cbiAgICAgICAgICAgICAgICA8c3Bhbj57dXNlclBhZ2VSb290UGF0aH0vPC9zcGFuPlxuICAgICAgICAgICAgICAgIDxmb3JtIG9uU3VibWl0PXtlID0+IHRyYW5zaXRCeVN1Ym1pdEV2ZW50KGUsIGNyZWF0ZVRvZGF5UGFnZSl9PlxuICAgICAgICAgICAgICAgICAgPGlucHV0XG4gICAgICAgICAgICAgICAgICAgIHR5cGU9XCJ0ZXh0XCJcbiAgICAgICAgICAgICAgICAgICAgY2xhc3NOYW1lPVwicGFnZS10b2RheS1pbnB1dDEgZm9ybS1jb250cm9sIHRleHQtY2VudGVyIG14LTJcIlxuICAgICAgICAgICAgICAgICAgICB2YWx1ZT17dG9kYXlJbnB1dDF9XG4gICAgICAgICAgICAgICAgICAgIG9uQ2hhbmdlPXtlID0+IG9uQ2hhbmdlVG9kYXlJbnB1dDFIYW5kbGVyKGUudGFyZ2V0LnZhbHVlKX1cbiAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgPC9mb3JtPlxuICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzTmFtZT1cInBhZ2UtdG9kYXktc3VmZml4XCI+L3tub3d9Lzwvc3Bhbj5cbiAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgIDxmb3JtIGNsYXNzTmFtZT1cIm10LTEgbXQtbGctMCBtbC1sZy0yIHctMTAwXCIgb25TdWJtaXQ9e2UgPT4gdHJhbnNpdEJ5U3VibWl0RXZlbnQoZSwgY3JlYXRlVG9kYXlQYWdlKX0+XG4gICAgICAgICAgICAgICAgPGlucHV0XG4gICAgICAgICAgICAgICAgICB0eXBlPVwidGV4dFwiXG4gICAgICAgICAgICAgICAgICBjbGFzc05hbWU9XCJwYWdlLXRvZGF5LWlucHV0MiBmb3JtLWNvbnRyb2wgdy0xMDBcIlxuICAgICAgICAgICAgICAgICAgaWQ9XCJwYWdlLXRvZGF5LWlucHV0MlwiXG4gICAgICAgICAgICAgICAgICBwbGFjZWhvbGRlcj17dCgnSW5wdXQgcGFnZSBuYW1lIChvcHRpb25hbCknKX1cbiAgICAgICAgICAgICAgICAgIHZhbHVlPXt0b2RheUlucHV0Mn1cbiAgICAgICAgICAgICAgICAgIG9uQ2hhbmdlPXtlID0+IG9uQ2hhbmdlVG9kYXlJbnB1dDJIYW5kbGVyKGUudGFyZ2V0LnZhbHVlKX1cbiAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICA8L2Zvcm0+XG4gICAgICAgICAgICA8L2Rpdj5cblxuICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJkLWZsZXgganVzdGlmeS1jb250ZW50LWVuZCBtdC0xIG10LXNtLTBcIj5cbiAgICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPVwiYnV0dG9uXCIgY2xhc3NOYW1lPVwiZ3J3LWJ0bi1jcmVhdGUtcGFnZSBidG4gYnRuLW91dGxpbmUtcHJpbWFyeSByb3VuZGVkLXBpbGwgdGV4dC1ub3dyYXAgbWwtM1wiIG9uQ2xpY2s9e2NyZWF0ZVRvZGF5UGFnZX0+XG4gICAgICAgICAgICAgICAgPGkgY2xhc3NOYW1lPVwiaWNvbi1mdyBpY29uLWRvY1wiPjwvaT57dCgnQ3JlYXRlJyl9XG4gICAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgICAgPC9kaXY+XG5cbiAgICAgICAgICA8L2Rpdj5cblxuICAgICAgICA8L2ZpZWxkc2V0PlxuICAgICAgPC9kaXY+XG4gICAgKTtcbiAgfVxuXG4gIGZ1bmN0aW9uIHJlbmRlcklucHV0UGFnZUZvcm0oKSB7XG4gICAgcmV0dXJuIChcbiAgICAgIDxkaXYgY2xhc3NOYW1lPVwicm93XCI+XG4gICAgICAgIDxmaWVsZHNldCBjbGFzc05hbWU9XCJjb2wtMTIgbWItNFwiPlxuICAgICAgICAgIDxoMyBjbGFzc05hbWU9XCJncnctbW9kYWwtaGVhZCBwYi0yXCI+e3QoJ0NyZWF0ZSB1bmRlcicpfTwvaDM+XG5cbiAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImQtc20tZmxleCBhbGlnbi1pdGVtcy1jZW50ZXIganVzdGlmeS1pdGVtcy1iZXR3ZWVuXCI+XG5cbiAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiZmxleC1maWxsXCI+XG4gICAgICAgICAgICAgIHtpc1JlYWNoYWJsZVxuICAgICAgICAgICAgICAgID8gKFxuICAgICAgICAgICAgICAgICAgPFBhZ2VQYXRoQXV0b0NvbXBsZXRlXG4gICAgICAgICAgICAgICAgICAgIGluaXRpYWxpemVkUGF0aD17cGFnZU5hbWVJbnB1dH1cbiAgICAgICAgICAgICAgICAgICAgYWRkVHJhaWxpbmdTbGFzaFxuICAgICAgICAgICAgICAgICAgICBvblN1Ym1pdD17cHBhY1N1Ym1pdEhhbmRsZXJ9XG4gICAgICAgICAgICAgICAgICAgIG9uSW5wdXRDaGFuZ2U9e3BwYWNJbnB1dENoYW5nZUhhbmRsZXJ9XG4gICAgICAgICAgICAgICAgICAgIGF1dG9Gb2N1c1xuICAgICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICAgICAgOiAoXG4gICAgICAgICAgICAgICAgICA8Zm9ybSBvblN1Ym1pdD17ZSA9PiB0cmFuc2l0QnlTdWJtaXRFdmVudChlLCBjcmVhdGVJbnB1dFBhZ2UpfT5cbiAgICAgICAgICAgICAgICAgICAgPGlucHV0XG4gICAgICAgICAgICAgICAgICAgICAgdHlwZT1cInRleHRcIlxuICAgICAgICAgICAgICAgICAgICAgIHZhbHVlPXtwYWdlTmFtZUlucHV0fVxuICAgICAgICAgICAgICAgICAgICAgIGNsYXNzTmFtZT1cImZvcm0tY29udHJvbCBmbGV4LWZpbGxcIlxuICAgICAgICAgICAgICAgICAgICAgIHBsYWNlaG9sZGVyPXt0KCdJbnB1dCBwYWdlIG5hbWUnKX1cbiAgICAgICAgICAgICAgICAgICAgICBvbkNoYW5nZT17ZSA9PiBvbkNoYW5nZVBhZ2VOYW1lSW5wdXRIYW5kbGVyKGUudGFyZ2V0LnZhbHVlKX1cbiAgICAgICAgICAgICAgICAgICAgICByZXF1aXJlZFxuICAgICAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgICAgPC9mb3JtPlxuICAgICAgICAgICAgICAgICl9XG4gICAgICAgICAgICA8L2Rpdj5cblxuICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJkLWZsZXgganVzdGlmeS1jb250ZW50LWVuZCBtdC0xIG10LXNtLTBcIj5cbiAgICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPVwiYnV0dG9uXCIgY2xhc3NOYW1lPVwiZ3J3LWJ0bi1jcmVhdGUtcGFnZSBidG4gYnRuLW91dGxpbmUtcHJpbWFyeSByb3VuZGVkLXBpbGwgdGV4dC1ub3dyYXAgbWwtM1wiIG9uQ2xpY2s9e2NyZWF0ZUlucHV0UGFnZX0+XG4gICAgICAgICAgICAgICAgPGkgY2xhc3NOYW1lPVwiaWNvbi1mdyBpY29uLWRvY1wiPjwvaT57dCgnQ3JlYXRlJyl9XG4gICAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgICAgPC9kaXY+XG5cbiAgICAgICAgICA8L2Rpdj5cblxuICAgICAgICA8L2ZpZWxkc2V0PlxuICAgICAgPC9kaXY+XG4gICAgKTtcbiAgfVxuXG4gIGZ1bmN0aW9uIHJlbmRlclRlbXBsYXRlUGFnZUZvcm0oKSB7XG4gICAgcmV0dXJuIChcbiAgICAgIDxkaXYgY2xhc3NOYW1lPVwicm93XCI+XG4gICAgICAgIDxmaWVsZHNldCBjbGFzc05hbWU9XCJjb2wtMTJcIj5cblxuICAgICAgICAgIDxoMyBjbGFzc05hbWU9XCJncnctbW9kYWwtaGVhZCBwYi0yXCI+XG4gICAgICAgICAgICB7dCgndGVtcGxhdGUubW9kYWxfbGFiZWwuQ3JlYXRlIHRlbXBsYXRlIHVuZGVyJyl9PGJyIC8+XG4gICAgICAgICAgICA8Y29kZSBjbGFzc05hbWU9XCJoNlwiPntwYXRobmFtZX08L2NvZGU+XG4gICAgICAgICAgPC9oMz5cblxuICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiZC1zbS1mbGV4IGFsaWduLWl0ZW1zLWNlbnRlciBqdXN0aWZ5LWl0ZW1zLWJldHdlZW5cIj5cblxuICAgICAgICAgICAgPGRpdiBpZD1cImRkLXRlbXBsYXRlLXR5cGVcIiBjbGFzc05hbWU9XCJkcm9wZG93biBmbGV4LWZpbGxcIj5cbiAgICAgICAgICAgICAgPGJ1dHRvbiBpZD1cInRlbXBsYXRlLXR5cGVcIiB0eXBlPVwiYnV0dG9uXCIgY2xhc3NOYW1lPVwiYnRuIGJ0bi1zZWNvbmRhcnkgYnRuIGRyb3Bkb3duLXRvZ2dsZSB3LTEwMFwiIGRhdGEtdG9nZ2xlPVwiZHJvcGRvd25cIj5cbiAgICAgICAgICAgICAgICB7dGVtcGxhdGUgPT0gbnVsbCAmJiB0KCd0ZW1wbGF0ZS5vcHRpb25fbGFiZWwuc2VsZWN0Jyl9XG4gICAgICAgICAgICAgICAge3RlbXBsYXRlID09PSAnY2hpbGRyZW4nICYmIHQoJ3RlbXBsYXRlLmNoaWxkcmVuLmxhYmVsJyl9XG4gICAgICAgICAgICAgICAge3RlbXBsYXRlID09PSAnZGVjZW5kYW50cycgJiYgdCgndGVtcGxhdGUuZGVjZW5kYW50cy5sYWJlbCcpfVxuICAgICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJkcm9wZG93bi1tZW51XCIgYXJpYS1sYWJlbGxlZGJ5PVwidXNlck1lbnVcIj5cbiAgICAgICAgICAgICAgICA8YnV0dG9uIGNsYXNzTmFtZT1cImRyb3Bkb3duLWl0ZW1cIiB0eXBlPVwiYnV0dG9uXCIgb25DbGljaz17KCkgPT4gb25DaGFuZ2VUZW1wbGF0ZUhhbmRsZXIoJ2NoaWxkcmVuJyl9PlxuICAgICAgICAgICAgICAgICAge3QoJ3RlbXBsYXRlLmNoaWxkcmVuLmxhYmVsJyl9IChfdGVtcGxhdGUpPGJyIGNsYXNzTmFtZT1cImQtYmxvY2sgZC1tZC1ub25lXCIgLz5cbiAgICAgICAgICAgICAgICAgIDxzbWFsbCBjbGFzc05hbWU9XCJ0ZXh0LW11dGVkIHRleHQtd3JhcFwiPi0ge3QoJ3RlbXBsYXRlLmNoaWxkcmVuLmRlc2MnKX08L3NtYWxsPlxuICAgICAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgICAgICAgIDxidXR0b24gY2xhc3NOYW1lPVwiZHJvcGRvd24taXRlbVwiIHR5cGU9XCJidXR0b25cIiBvbkNsaWNrPXsoKSA9PiBvbkNoYW5nZVRlbXBsYXRlSGFuZGxlcignZGVjZW5kYW50cycpfT5cbiAgICAgICAgICAgICAgICAgIHt0KCd0ZW1wbGF0ZS5kZWNlbmRhbnRzLmxhYmVsJyl9IChfX3RlbXBsYXRlKSA8YnIgY2xhc3NOYW1lPVwiZC1ibG9jayBkLW1kLW5vbmVcIiAvPlxuICAgICAgICAgICAgICAgICAgPHNtYWxsIGNsYXNzTmFtZT1cInRleHQtbXV0ZWRcIj4tIHt0KCd0ZW1wbGF0ZS5kZWNlbmRhbnRzLmRlc2MnKX08L3NtYWxsPlxuICAgICAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDwvZGl2PlxuXG4gICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImQtZmxleCBqdXN0aWZ5LWNvbnRlbnQtZW5kIG10LTEgbXQtc20tMFwiPlxuICAgICAgICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgICAgICAgICAgICAgY2xhc3NOYW1lPXtgZ3J3LWJ0bi1jcmVhdGUtcGFnZSBidG4gYnRuLW91dGxpbmUtcHJpbWFyeSByb3VuZGVkLXBpbGwgdGV4dC1ub3dyYXAgbWwtMyAke3RlbXBsYXRlID09IG51bGwgJiYgJ2Rpc2FibGVkJ31gfVxuICAgICAgICAgICAgICAgIG9uQ2xpY2s9e2NyZWF0ZVRlbXBsYXRlUGFnZX1cbiAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgIDxpIGNsYXNzTmFtZT1cImljb24tZncgaWNvbi1kb2NcIj48L2k+e3QoJ0VkaXQnKX1cbiAgICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgICA8L2Rpdj5cblxuICAgICAgICAgIDwvZGl2PlxuXG4gICAgICAgIDwvZmllbGRzZXQ+XG4gICAgICA8L2Rpdj5cbiAgICApO1xuICB9XG5cbiAgcmV0dXJuIChcbiAgICA8TW9kYWxcbiAgICAgIHNpemU9XCJsZ1wiXG4gICAgICBpc09wZW49e25hdmlnYXRpb25Db250YWluZXIuc3RhdGUuaXNQYWdlQ3JlYXRlTW9kYWxTaG93bn1cbiAgICAgIHRvZ2dsZT17bmF2aWdhdGlvbkNvbnRhaW5lci5jbG9zZVBhZ2VDcmVhdGVNb2RhbH1cbiAgICAgIGNsYXNzTmFtZT1cImdydy1jcmVhdGUtcGFnZVwiXG4gICAgICBhdXRvRm9jdXM9e2ZhbHNlfVxuICAgID5cbiAgICAgIDxNb2RhbEhlYWRlciB0YWc9XCJoNFwiIHRvZ2dsZT17bmF2aWdhdGlvbkNvbnRhaW5lci5jbG9zZVBhZ2VDcmVhdGVNb2RhbH0gY2xhc3NOYW1lPVwiYmctcHJpbWFyeSB0ZXh0LWxpZ2h0XCI+XG4gICAgICAgIHt0KCdOZXcgUGFnZScpfVxuICAgICAgPC9Nb2RhbEhlYWRlcj5cbiAgICAgIDxNb2RhbEJvZHk+XG4gICAgICAgIHtyZW5kZXJDcmVhdGVUb2RheUZvcm0oKX1cbiAgICAgICAge3JlbmRlcklucHV0UGFnZUZvcm0oKX1cbiAgICAgICAge3JlbmRlclRlbXBsYXRlUGFnZUZvcm0oKX1cbiAgICAgIDwvTW9kYWxCb2R5PlxuICAgIDwvTW9kYWw+XG5cbiAgKTtcbn07XG5cblxuLyoqXG4gKiBXcmFwcGVyIGNvbXBvbmVudCBmb3IgdXNpbmcgdW5zdGF0ZWRcbiAqL1xuY29uc3QgTW9kYWxDb250cm9sV3JhcHBlciA9IHdpdGhVbnN0YXRlZENvbnRhaW5lcnMoUGFnZUNyZWF0ZU1vZGFsLCBbQXBwQ29udGFpbmVyLCBOYXZpZ2F0aW9uQ29udGFpbmVyXSk7XG5cblxuUGFnZUNyZWF0ZU1vZGFsLnByb3BUeXBlcyA9IHtcbiAgdDogUHJvcFR5cGVzLmZ1bmMuaXNSZXF1aXJlZCwgLy8gIGkxOG5leHRcbiAgYXBwQ29udGFpbmVyOiBQcm9wVHlwZXMuaW5zdGFuY2VPZihBcHBDb250YWluZXIpLmlzUmVxdWlyZWQsXG4gIG5hdmlnYXRpb25Db250YWluZXI6IFByb3BUeXBlcy5pbnN0YW5jZU9mKE5hdmlnYXRpb25Db250YWluZXIpLmlzUmVxdWlyZWQsXG59O1xuXG5leHBvcnQgZGVmYXVsdCB3aXRoVHJhbnNsYXRpb24oKShNb2RhbENvbnRyb2xXcmFwcGVyKTtcbiJdLCJtYXBwaW5ncyI6IkFBQ0E7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUNBOzs7O0FBSUE7QUFDQTtBQUVBO0FBR0E7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUVBOzs7Ozs7QUFJQTtBQUNBO0FBQ0E7QUFFQTs7Ozs7O0FBSUE7QUFDQTtBQUNBO0FBRUE7Ozs7OztBQUlBO0FBQ0E7QUFDQTtBQUVBOzs7Ozs7QUFJQTtBQUNBO0FBQ0E7QUFFQTs7Ozs7O0FBSUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUVBO0FBQ0E7QUFDQTtBQUVBOzs7OztBQUdBO0FBQ0E7QUFDQTtBQUFBO0FBQ0E7QUFDQTtBQUNBO0FBQUE7QUFDQTtBQUVBOzs7OztBQUdBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFFQTs7Ozs7QUFHQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQUE7QUFDQTtBQUFBO0FBQ0E7QUFBQTtBQUVBO0FBQUE7QUFFQTtBQUFBO0FBQ0E7QUFBQTtBQUVBO0FBQUE7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUpBO0FBT0E7QUFBQTtBQUVBO0FBQUE7QUFBQTtBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQU5BO0FBV0E7QUFBQTtBQUNBO0FBQUE7QUFBQTtBQUFBO0FBQ0E7QUFBQTtBQVNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFBQTtBQUNBO0FBQUE7QUFDQTtBQUFBO0FBRUE7QUFBQTtBQUVBO0FBQUE7QUFJQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBTEE7QUFTQTtBQUFBO0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBTkE7QUFZQTtBQUFBO0FBQ0E7QUFBQTtBQUFBO0FBQUE7QUFDQTtBQUFBO0FBU0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUFBO0FBQ0E7QUFBQTtBQUVBO0FBQUE7QUFFQTtBQUFBO0FBR0E7QUFBQTtBQUVBO0FBQUE7QUFBQTtBQUNBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFLQTtBQUFBO0FBQUE7QUFDQTtBQUFBO0FBQUE7QUFBQTtBQUNBO0FBQUE7QUFDQTtBQUFBO0FBRUE7QUFBQTtBQUFBO0FBQUE7QUFDQTtBQUFBO0FBQ0E7QUFBQTtBQUtBO0FBQUE7QUFFQTtBQUNBO0FBQ0E7QUFIQTtBQUtBO0FBQUE7QUFTQTtBQUNBO0FBQ0E7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBTEE7QUFPQTtBQUFBO0FBQUE7QUFBQTtBQVdBO0FBR0E7Ozs7O0FBR0E7QUFHQTtBQUNBO0FBQUE7QUFDQTtBQUNBO0FBSEE7QUFNQSIsInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./src/client/js/components/PageCreateModal.jsx\n");
- /***/ }),
- /***/ "./src/client/js/components/PageList/Page.jsx":
- /*!****************************************************!*\
- !*** ./src/client/js/components/PageList/Page.jsx ***!
- \****************************************************/
- /*! exports provided: default */
- /***/ (function(module, __webpack_exports__, __webpack_require__) {
- "use strict";
- eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"default\", function() { return Page; });\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"./node_modules/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! prop-types */ \"./node_modules/prop-types/index.js\");\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(prop_types__WEBPACK_IMPORTED_MODULE_1__);\n/* harmony import */ var _User_UserPicture__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../User/UserPicture */ \"./src/client/js/components/User/UserPicture.jsx\");\n/* harmony import */ var _PageListMeta__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./PageListMeta */ \"./src/client/js/components/PageList/PageListMeta.jsx\");\n/* harmony import */ var _PagePathLabel__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./PagePathLabel */ \"./src/client/js/components/PageList/PagePathLabel.jsx\");\n\n\n\n\n\nclass Page extends react__WEBPACK_IMPORTED_MODULE_0___default.a.Component {\n render() {\n const {\n page,\n noLink\n } = this.props;\n let pagePathElem = react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(_PagePathLabel__WEBPACK_IMPORTED_MODULE_4__[\"default\"], {\n page: page,\n additionalClassNames: ['mx-1']\n });\n\n if (!noLink) {\n pagePathElem = react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"a\", {\n className: \"text-break\",\n href: page.path\n }, pagePathElem);\n }\n\n return react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(react__WEBPACK_IMPORTED_MODULE_0___default.a.Fragment, null, react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(_User_UserPicture__WEBPACK_IMPORTED_MODULE_2__[\"default\"], {\n user: page.lastUpdateUser,\n noLink: noLink\n }), pagePathElem, react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(_PageListMeta__WEBPACK_IMPORTED_MODULE_3__[\"default\"], {\n page: page\n }));\n }\n\n}\nPage.propTypes = {\n page: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.object.isRequired,\n noLink: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.bool\n};\nPage.defaultProps = {\n noLink: false\n};//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9zcmMvY2xpZW50L2pzL2NvbXBvbmVudHMvUGFnZUxpc3QvUGFnZS5qc3guanMiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9zcmMvY2xpZW50L2pzL2NvbXBvbmVudHMvUGFnZUxpc3QvUGFnZS5qc3g/MTQxYSJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgUmVhY3QgZnJvbSAncmVhY3QnO1xuaW1wb3J0IFByb3BUeXBlcyBmcm9tICdwcm9wLXR5cGVzJztcblxuaW1wb3J0IFVzZXJQaWN0dXJlIGZyb20gJy4uL1VzZXIvVXNlclBpY3R1cmUnO1xuaW1wb3J0IFBhZ2VMaXN0TWV0YSBmcm9tICcuL1BhZ2VMaXN0TWV0YSc7XG5pbXBvcnQgUGFnZVBhdGhMYWJlbCBmcm9tICcuL1BhZ2VQYXRoTGFiZWwnO1xuXG5leHBvcnQgZGVmYXVsdCBjbGFzcyBQYWdlIGV4dGVuZHMgUmVhY3QuQ29tcG9uZW50IHtcblxuICByZW5kZXIoKSB7XG4gICAgY29uc3Qge1xuICAgICAgcGFnZSwgbm9MaW5rLFxuICAgIH0gPSB0aGlzLnByb3BzO1xuXG4gICAgbGV0IHBhZ2VQYXRoRWxlbSA9IDxQYWdlUGF0aExhYmVsIHBhZ2U9e3BhZ2V9IGFkZGl0aW9uYWxDbGFzc05hbWVzPXtbJ214LTEnXX0gLz47XG4gICAgaWYgKCFub0xpbmspIHtcbiAgICAgIHBhZ2VQYXRoRWxlbSA9IDxhIGNsYXNzTmFtZT1cInRleHQtYnJlYWtcIiBocmVmPXtwYWdlLnBhdGh9PntwYWdlUGF0aEVsZW19PC9hPjtcbiAgICB9XG5cbiAgICByZXR1cm4gKFxuICAgICAgPD5cbiAgICAgICAgPFVzZXJQaWN0dXJlIHVzZXI9e3BhZ2UubGFzdFVwZGF0ZVVzZXJ9IG5vTGluaz17bm9MaW5rfSAvPlxuICAgICAgICB7cGFnZVBhdGhFbGVtfVxuICAgICAgICA8UGFnZUxpc3RNZXRhIHBhZ2U9e3BhZ2V9IC8+XG4gICAgICA8Lz5cbiAgICApO1xuICB9XG5cbn1cblxuUGFnZS5wcm9wVHlwZXMgPSB7XG4gIHBhZ2U6IFByb3BUeXBlcy5vYmplY3QuaXNSZXF1aXJlZCxcbiAgbm9MaW5rOiBQcm9wVHlwZXMuYm9vbCxcbn07XG5cblBhZ2UuZGVmYXVsdFByb3BzID0ge1xuICBub0xpbms6IGZhbHNlLFxufTtcbiJdLCJtYXBwaW5ncyI6IkFBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFDQTtBQUVBO0FBQ0E7QUFDQTtBQUVBO0FBRUE7QUFDQTtBQUNBO0FBQUE7QUFEQTtBQUlBO0FBQUE7QUFBQTtBQUFBO0FBQ0E7QUFBQTtBQUNBO0FBQUE7QUFBQTtBQUFBO0FBQ0E7QUFDQTtBQUNBO0FBRUE7QUFBQTtBQUFBO0FBRUE7QUFBQTtBQUdBO0FBQ0E7QUFwQkE7QUF1QkE7QUFDQTtBQUNBO0FBRkE7QUFLQTtBQUNBO0FBREEiLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./src/client/js/components/PageList/Page.jsx\n");
- /***/ }),
- /***/ "./src/client/js/components/PageList/PageListMeta.jsx":
- /*!************************************************************!*\
- !*** ./src/client/js/components/PageList/PageListMeta.jsx ***!
- \************************************************************/
- /*! exports provided: default */
- /***/ (function(module, __webpack_exports__, __webpack_require__) {
- "use strict";
- eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"default\", function() { return PageListMeta; });\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"./node_modules/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! prop-types */ \"./node_modules/prop-types/index.js\");\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(prop_types__WEBPACK_IMPORTED_MODULE_1__);\n/* harmony import */ var _commons_util_template_checker__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @commons/util/template-checker */ \"./src/lib/util/template-checker.js\");\n/* harmony import */ var _commons_util_template_checker__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(_commons_util_template_checker__WEBPACK_IMPORTED_MODULE_2__);\n/* harmony import */ var _commons_util_path_utils__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @commons/util/path-utils */ \"./src/lib/util/path-utils.js\");\n/* harmony import */ var _commons_util_path_utils__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(_commons_util_path_utils__WEBPACK_IMPORTED_MODULE_3__);\n\n\n\n\nclass PageListMeta extends react__WEBPACK_IMPORTED_MODULE_0___default.a.Component {\n render() {\n const {\n page\n } = this.props; // top check\n\n let topLabel;\n\n if (Object(_commons_util_path_utils__WEBPACK_IMPORTED_MODULE_3__[\"isTopPage\"])(page.path)) {\n topLabel = react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"span\", {\n className: \"badge badge-info\"\n }, \"TOP\");\n } // template check\n\n\n let templateLabel;\n\n if (_commons_util_template_checker__WEBPACK_IMPORTED_MODULE_2___default()(page.path)) {\n templateLabel = react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"span\", {\n className: \"badge badge-info\"\n }, \"TMPL\");\n }\n\n let commentCount;\n\n if (page.commentCount > 0) {\n commentCount = react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"span\", null, react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"i\", {\n className: \"icon-bubble\"\n }), page.commentCount);\n }\n\n let likerCount;\n\n if (page.liker.length > 0) {\n likerCount = react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"span\", null, react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"i\", {\n className: \"icon-like\"\n }), page.liker.length);\n }\n\n let locked;\n\n if (page.grant !== 1) {\n locked = react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"span\", null, react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"i\", {\n className: \"icon-lock\"\n }));\n }\n\n return react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"span\", {\n className: \"page-list-meta\"\n }, topLabel, templateLabel, commentCount, likerCount, locked);\n }\n\n}\nPageListMeta.propTypes = {\n page: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.object.isRequired\n};\nPageListMeta.defaultProps = {};//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9zcmMvY2xpZW50L2pzL2NvbXBvbmVudHMvUGFnZUxpc3QvUGFnZUxpc3RNZXRhLmpzeC5qcyIsInNvdXJjZXMiOlsid2VicGFjazovLy8uL3NyYy9jbGllbnQvanMvY29tcG9uZW50cy9QYWdlTGlzdC9QYWdlTGlzdE1ldGEuanN4PzVjZjYiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IFJlYWN0IGZyb20gJ3JlYWN0JztcbmltcG9ydCBQcm9wVHlwZXMgZnJvbSAncHJvcC10eXBlcyc7XG5pbXBvcnQgdGVtcGxhdGVDaGVja2VyIGZyb20gJ0Bjb21tb25zL3V0aWwvdGVtcGxhdGUtY2hlY2tlcic7XG5pbXBvcnQgeyBpc1RvcFBhZ2UgfSBmcm9tICdAY29tbW9ucy91dGlsL3BhdGgtdXRpbHMnO1xuXG5leHBvcnQgZGVmYXVsdCBjbGFzcyBQYWdlTGlzdE1ldGEgZXh0ZW5kcyBSZWFjdC5Db21wb25lbnQge1xuXG4gIHJlbmRlcigpIHtcbiAgICBjb25zdCB7IHBhZ2UgfSA9IHRoaXMucHJvcHM7XG5cbiAgICAvLyB0b3AgY2hlY2tcbiAgICBsZXQgdG9wTGFiZWw7XG4gICAgaWYgKGlzVG9wUGFnZShwYWdlLnBhdGgpKSB7XG4gICAgICB0b3BMYWJlbCA9IDxzcGFuIGNsYXNzTmFtZT1cImJhZGdlIGJhZGdlLWluZm9cIj5UT1A8L3NwYW4+O1xuICAgIH1cblxuICAgIC8vIHRlbXBsYXRlIGNoZWNrXG4gICAgbGV0IHRlbXBsYXRlTGFiZWw7XG4gICAgaWYgKHRlbXBsYXRlQ2hlY2tlcihwYWdlLnBhdGgpKSB7XG4gICAgICB0ZW1wbGF0ZUxhYmVsID0gPHNwYW4gY2xhc3NOYW1lPVwiYmFkZ2UgYmFkZ2UtaW5mb1wiPlRNUEw8L3NwYW4+O1xuICAgIH1cblxuICAgIGxldCBjb21tZW50Q291bnQ7XG4gICAgaWYgKHBhZ2UuY29tbWVudENvdW50ID4gMCkge1xuICAgICAgY29tbWVudENvdW50ID0gPHNwYW4+PGkgY2xhc3NOYW1lPVwiaWNvbi1idWJibGVcIiAvPntwYWdlLmNvbW1lbnRDb3VudH08L3NwYW4+O1xuICAgIH1cblxuICAgIGxldCBsaWtlckNvdW50O1xuICAgIGlmIChwYWdlLmxpa2VyLmxlbmd0aCA+IDApIHtcbiAgICAgIGxpa2VyQ291bnQgPSA8c3Bhbj48aSBjbGFzc05hbWU9XCJpY29uLWxpa2VcIiAvPntwYWdlLmxpa2VyLmxlbmd0aH08L3NwYW4+O1xuICAgIH1cblxuICAgIGxldCBsb2NrZWQ7XG4gICAgaWYgKHBhZ2UuZ3JhbnQgIT09IDEpIHtcbiAgICAgIGxvY2tlZCA9IDxzcGFuPjxpIGNsYXNzTmFtZT1cImljb24tbG9ja1wiIC8+PC9zcGFuPjtcbiAgICB9XG5cbiAgICByZXR1cm4gKFxuICAgICAgPHNwYW4gY2xhc3NOYW1lPVwicGFnZS1saXN0LW1ldGFcIj5cbiAgICAgICAge3RvcExhYmVsfVxuICAgICAgICB7dGVtcGxhdGVMYWJlbH1cbiAgICAgICAge2NvbW1lbnRDb3VudH1cbiAgICAgICAge2xpa2VyQ291bnR9XG4gICAgICAgIHtsb2NrZWR9XG4gICAgICA8L3NwYW4+XG4gICAgKTtcbiAgfVxuXG59XG5cblBhZ2VMaXN0TWV0YS5wcm9wVHlwZXMgPSB7XG4gIHBhZ2U6IFByb3BUeXBlcy5vYmplY3QuaXNSZXF1aXJlZCxcbn07XG5cblBhZ2VMaXN0TWV0YS5kZWZhdWx0UHJvcHMgPSB7XG59O1xuIl0sIm1hcHBpbmdzIjoiQUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQ0E7QUFDQTtBQUNBO0FBRUE7QUFFQTtBQUNBO0FBQUE7QUFBQTtBQUNBO0FBRUE7QUFDQTtBQUFBO0FBQ0E7QUFBQTtBQUFBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUFBO0FBQ0E7QUFBQTtBQUFBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFBQTtBQUNBO0FBQUE7QUFBQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQUE7QUFDQTtBQUFBO0FBQUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUFBO0FBQ0E7QUFBQTtBQUFBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFBQTtBQVFBO0FBQ0E7QUExQ0E7QUE2Q0E7QUFDQTtBQURBO0FBSUEiLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./src/client/js/components/PageList/PageListMeta.jsx\n");
- /***/ }),
- /***/ "./src/client/js/components/PageList/PagePathLabel.jsx":
- /*!*************************************************************!*\
- !*** ./src/client/js/components/PageList/PagePathLabel.jsx ***!
- \*************************************************************/
- /*! exports provided: default */
- /***/ (function(module, __webpack_exports__, __webpack_require__) {
- "use strict";
- eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"./node_modules/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! prop-types */ \"./node_modules/prop-types/index.js\");\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(prop_types__WEBPACK_IMPORTED_MODULE_1__);\n/* harmony import */ var _commons_models_devided_page_path__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @commons/models/devided-page-path */ \"./src/lib/models/devided-page-path.js\");\n/* harmony import */ var _commons_models_devided_page_path__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(_commons_models_devided_page_path__WEBPACK_IMPORTED_MODULE_2__);\n\n\n\n\nconst PagePathLabel = props => {\n const dPagePath = new _commons_models_devided_page_path__WEBPACK_IMPORTED_MODULE_2___default.a(props.page.path, false, true);\n let classNames = [''];\n classNames = classNames.concat(props.additionalClassNames);\n\n if (props.isLatterOnly) {\n return react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"span\", {\n className: classNames.join(' ')\n }, dPagePath.latter);\n }\n\n const textElem = dPagePath.isRoot ? react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(react__WEBPACK_IMPORTED_MODULE_0___default.a.Fragment, null, react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"strong\", null, \"/\")) : react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(react__WEBPACK_IMPORTED_MODULE_0___default.a.Fragment, null, dPagePath.former, \"/\", react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"strong\", null, dPagePath.latter));\n return react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"span\", {\n className: classNames.join(' ')\n }, textElem);\n};\n\nPagePathLabel.propTypes = {\n page: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.object.isRequired,\n isLatterOnly: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.bool,\n additionalClassNames: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.arrayOf(prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.string)\n};\nPagePathLabel.defaultProps = {\n additionalClassNames: []\n};\n/* harmony default export */ __webpack_exports__[\"default\"] = (PagePathLabel);//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9zcmMvY2xpZW50L2pzL2NvbXBvbmVudHMvUGFnZUxpc3QvUGFnZVBhdGhMYWJlbC5qc3guanMiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9zcmMvY2xpZW50L2pzL2NvbXBvbmVudHMvUGFnZUxpc3QvUGFnZVBhdGhMYWJlbC5qc3g/NGYzNCJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgUmVhY3QgZnJvbSAncmVhY3QnO1xuaW1wb3J0IFByb3BUeXBlcyBmcm9tICdwcm9wLXR5cGVzJztcblxuaW1wb3J0IERldmlkZWRQYWdlUGF0aCBmcm9tICdAY29tbW9ucy9tb2RlbHMvZGV2aWRlZC1wYWdlLXBhdGgnO1xuXG5jb25zdCBQYWdlUGF0aExhYmVsID0gKHByb3BzKSA9PiB7XG5cbiAgY29uc3QgZFBhZ2VQYXRoID0gbmV3IERldmlkZWRQYWdlUGF0aChwcm9wcy5wYWdlLnBhdGgsIGZhbHNlLCB0cnVlKTtcblxuICBsZXQgY2xhc3NOYW1lcyA9IFsnJ107XG4gIGNsYXNzTmFtZXMgPSBjbGFzc05hbWVzLmNvbmNhdChwcm9wcy5hZGRpdGlvbmFsQ2xhc3NOYW1lcyk7XG5cbiAgaWYgKHByb3BzLmlzTGF0dGVyT25seSkge1xuICAgIHJldHVybiA8c3BhbiBjbGFzc05hbWU9e2NsYXNzTmFtZXMuam9pbignICcpfT57ZFBhZ2VQYXRoLmxhdHRlcn08L3NwYW4+O1xuICB9XG5cbiAgY29uc3QgdGV4dEVsZW0gPSBkUGFnZVBhdGguaXNSb290XG4gICAgPyA8PjxzdHJvbmc+Lzwvc3Ryb25nPjwvPlxuICAgIDogPD57ZFBhZ2VQYXRoLmZvcm1lcn0vPHN0cm9uZz57ZFBhZ2VQYXRoLmxhdHRlcn08L3N0cm9uZz48Lz47XG5cbiAgcmV0dXJuIDxzcGFuIGNsYXNzTmFtZT17Y2xhc3NOYW1lcy5qb2luKCcgJyl9Pnt0ZXh0RWxlbX08L3NwYW4+O1xufTtcblxuUGFnZVBhdGhMYWJlbC5wcm9wVHlwZXMgPSB7XG4gIHBhZ2U6IFByb3BUeXBlcy5vYmplY3QuaXNSZXF1aXJlZCxcbiAgaXNMYXR0ZXJPbmx5OiBQcm9wVHlwZXMuYm9vbCxcbiAgYWRkaXRpb25hbENsYXNzTmFtZXM6IFByb3BUeXBlcy5hcnJheU9mKFByb3BUeXBlcy5zdHJpbmcpLFxufTtcblxuUGFnZVBhdGhMYWJlbC5kZWZhdWx0UHJvcHMgPSB7XG4gIGFkZGl0aW9uYWxDbGFzc05hbWVzOiBbXSxcbn07XG5cbmV4cG9ydCBkZWZhdWx0IFBhZ2VQYXRoTGFiZWw7XG4iXSwibWFwcGluZ3MiOiJBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFDQTtBQUVBO0FBQ0E7QUFDQTtBQUVBO0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUFBO0FBQUE7QUFDQTtBQUNBO0FBQ0E7QUFJQTtBQUFBO0FBQUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFIQTtBQU1BO0FBQ0E7QUFEQTtBQUlBIiwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./src/client/js/components/PageList/PagePathLabel.jsx\n");
- /***/ }),
- /***/ "./src/client/js/components/PagePathAutoComplete.jsx":
- /*!***********************************************************!*\
- !*** ./src/client/js/components/PagePathAutoComplete.jsx ***!
- \***********************************************************/
- /*! exports provided: default */
- /***/ (function(module, __webpack_exports__, __webpack_require__) {
- "use strict";
- eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"./node_modules/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! prop-types */ \"./node_modules/prop-types/index.js\");\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(prop_types__WEBPACK_IMPORTED_MODULE_1__);\n/* harmony import */ var growi_commons__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! growi-commons */ \"./node_modules/growi-commons/src/index.js\");\n/* harmony import */ var growi_commons__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(growi_commons__WEBPACK_IMPORTED_MODULE_2__);\n/* harmony import */ var _SearchTypeahead__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./SearchTypeahead */ \"./src/client/js/components/SearchTypeahead.jsx\");\n\n\n\n\n\nconst PagePathAutoComplete = props => {\n const {\n addTrailingSlash,\n onSubmit,\n onInputChange,\n initializedPath\n } = props;\n\n function inputChangeHandler(pages) {\n if (onInputChange == null) {\n return;\n }\n\n const page = pages[0]; // should be single page selected\n\n if (page != null) {\n onInputChange(page.path);\n }\n }\n\n function submitHandler() {\n if (onSubmit == null) {\n return;\n }\n\n onSubmit();\n }\n\n function getKeywordOnInit(path) {\n return addTrailingSlash ? growi_commons__WEBPACK_IMPORTED_MODULE_2__[\"pathUtils\"].addTrailingSlash(path) : growi_commons__WEBPACK_IMPORTED_MODULE_2__[\"pathUtils\"].removeTrailingSlash(path);\n }\n\n return react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(_SearchTypeahead__WEBPACK_IMPORTED_MODULE_3__[\"default\"], {\n onSubmit: submitHandler,\n onChange: inputChangeHandler,\n onInputChange: props.onInputChange,\n inputName: \"new_path\",\n behaviorOfResetBtn: \"clear\",\n placeholder: \"Input page path\",\n keywordOnInit: getKeywordOnInit(initializedPath),\n autoFocus: props.autoFocus\n });\n};\n\nPagePathAutoComplete.propTypes = {\n initializedPath: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.string,\n addTrailingSlash: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.bool,\n onSubmit: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.func,\n onInputChange: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.func,\n autoFocus: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.bool\n};\nPagePathAutoComplete.defaultProps = {\n initializedPath: '/',\n autoFocus: false\n};\n/* harmony default export */ __webpack_exports__[\"default\"] = (PagePathAutoComplete);//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9zcmMvY2xpZW50L2pzL2NvbXBvbmVudHMvUGFnZVBhdGhBdXRvQ29tcGxldGUuanN4LmpzIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vLy4vc3JjL2NsaWVudC9qcy9jb21wb25lbnRzL1BhZ2VQYXRoQXV0b0NvbXBsZXRlLmpzeD9iZTY3Il0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBSZWFjdCBmcm9tICdyZWFjdCc7XG5pbXBvcnQgUHJvcFR5cGVzIGZyb20gJ3Byb3AtdHlwZXMnO1xuXG5pbXBvcnQgeyBwYXRoVXRpbHMgfSBmcm9tICdncm93aS1jb21tb25zJztcblxuaW1wb3J0IFNlYXJjaFR5cGVhaGVhZCBmcm9tICcuL1NlYXJjaFR5cGVhaGVhZCc7XG5cbmNvbnN0IFBhZ2VQYXRoQXV0b0NvbXBsZXRlID0gKHByb3BzKSA9PiB7XG5cbiAgY29uc3Qge1xuICAgIGFkZFRyYWlsaW5nU2xhc2gsIG9uU3VibWl0LCBvbklucHV0Q2hhbmdlLCBpbml0aWFsaXplZFBhdGgsXG4gIH0gPSBwcm9wcztcblxuICBmdW5jdGlvbiBpbnB1dENoYW5nZUhhbmRsZXIocGFnZXMpIHtcbiAgICBpZiAob25JbnB1dENoYW5nZSA9PSBudWxsKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIGNvbnN0IHBhZ2UgPSBwYWdlc1swXTsgLy8gc2hvdWxkIGJlIHNpbmdsZSBwYWdlIHNlbGVjdGVkXG5cbiAgICBpZiAocGFnZSAhPSBudWxsKSB7XG4gICAgICBvbklucHV0Q2hhbmdlKHBhZ2UucGF0aCk7XG4gICAgfVxuICB9XG5cbiAgZnVuY3Rpb24gc3VibWl0SGFuZGxlcigpIHtcbiAgICBpZiAob25TdWJtaXQgPT0gbnVsbCkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICBvblN1Ym1pdCgpO1xuICB9XG5cbiAgZnVuY3Rpb24gZ2V0S2V5d29yZE9uSW5pdChwYXRoKSB7XG4gICAgcmV0dXJuIGFkZFRyYWlsaW5nU2xhc2hcbiAgICAgID8gcGF0aFV0aWxzLmFkZFRyYWlsaW5nU2xhc2gocGF0aClcbiAgICAgIDogcGF0aFV0aWxzLnJlbW92ZVRyYWlsaW5nU2xhc2gocGF0aCk7XG4gIH1cblxuICByZXR1cm4gKFxuICAgIDxTZWFyY2hUeXBlYWhlYWRcbiAgICAgIG9uU3VibWl0PXtzdWJtaXRIYW5kbGVyfVxuICAgICAgb25DaGFuZ2U9e2lucHV0Q2hhbmdlSGFuZGxlcn1cbiAgICAgIG9uSW5wdXRDaGFuZ2U9e3Byb3BzLm9uSW5wdXRDaGFuZ2V9XG4gICAgICBpbnB1dE5hbWU9XCJuZXdfcGF0aFwiXG4gICAgICBiZWhhdmlvck9mUmVzZXRCdG49XCJjbGVhclwiXG4gICAgICBwbGFjZWhvbGRlcj1cIklucHV0IHBhZ2UgcGF0aFwiXG4gICAgICBrZXl3b3JkT25Jbml0PXtnZXRLZXl3b3JkT25Jbml0KGluaXRpYWxpemVkUGF0aCl9XG4gICAgICBhdXRvRm9jdXM9e3Byb3BzLmF1dG9Gb2N1c31cbiAgICAvPlxuICApO1xuXG59O1xuXG5QYWdlUGF0aEF1dG9Db21wbGV0ZS5wcm9wVHlwZXMgPSB7XG4gIGluaXRpYWxpemVkUGF0aDogIFByb3BUeXBlcy5zdHJpbmcsXG4gIGFkZFRyYWlsaW5nU2xhc2g6IFByb3BUeXBlcy5ib29sLFxuXG4gIG9uU3VibWl0OiAgICAgICAgIFByb3BUeXBlcy5mdW5jLFxuICBvbklucHV0Q2hhbmdlOiAgICBQcm9wVHlwZXMuZnVuYyxcbiAgYXV0b0ZvY3VzOiAgICAgICAgUHJvcFR5cGVzLmJvb2wsXG59O1xuXG5QYWdlUGF0aEF1dG9Db21wbGV0ZS5kZWZhdWx0UHJvcHMgPSB7XG4gIGluaXRpYWxpemVkUGF0aDogICcvJyxcbiAgYXV0b0ZvY3VzOiAgICAgICAgZmFsc2UsXG59O1xuXG5leHBvcnQgZGVmYXVsdCBQYWdlUGF0aEF1dG9Db21wbGV0ZTtcbiJdLCJtYXBwaW5ncyI6IkFBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQ0E7QUFFQTtBQUVBO0FBQ0E7QUFDQTtBQUVBO0FBQ0E7QUFBQTtBQUFBO0FBQUE7QUFEQTtBQUNBO0FBR0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUFBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUFBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFHQTtBQUNBO0FBQ0E7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBUkE7QUFZQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBRUE7QUFDQTtBQUNBO0FBTkE7QUFTQTtBQUNBO0FBQ0E7QUFGQTtBQUtBIiwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./src/client/js/components/PagePathAutoComplete.jsx\n");
- /***/ }),
- /***/ "./src/client/js/components/PaginationWrapper.jsx":
- /*!********************************************************!*\
- !*** ./src/client/js/components/PaginationWrapper.jsx ***!
- \********************************************************/
- /*! exports provided: default */
- /***/ (function(module, __webpack_exports__, __webpack_require__) {
- "use strict";
- eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"./node_modules/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! prop-types */ \"./node_modules/prop-types/index.js\");\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(prop_types__WEBPACK_IMPORTED_MODULE_1__);\n/* harmony import */ var reactstrap_es_Pagination__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! reactstrap/es/Pagination */ \"./node_modules/reactstrap/es/Pagination.js\");\n/* harmony import */ var reactstrap_es_PaginationItem__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! reactstrap/es/PaginationItem */ \"./node_modules/reactstrap/es/PaginationItem.js\");\n/* harmony import */ var reactstrap_es_PaginationLink__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! reactstrap/es/PaginationLink */ \"./node_modules/reactstrap/es/PaginationLink.js\");\n\n\n\n\n\n/**\n *\n * @author Mikitaka Itizawa <itizawa@weseek.co.jp>\n *\n * @export\n * @class PaginationWrapper\n * @extends {React.Component}\n */\n\nconst PaginationWrapper = react__WEBPACK_IMPORTED_MODULE_0___default.a.memo(props => {\n const {\n activePage,\n changePage,\n totalItemsCount,\n pagingLimit,\n align\n } = props;\n /**\n * various numbers used to generate pagination dom\n */\n\n const paginationNumbers = Object(react__WEBPACK_IMPORTED_MODULE_0__[\"useMemo\"])(() => {\n // avoid using null\n const limit = pagingLimit || Infinity; // calc totalPageNumber\n\n const totalPage = Math.floor(totalItemsCount / limit) + (totalItemsCount % limit === 0 ? 0 : 1);\n let paginationStart = activePage - 2;\n let maxViewPageNum = activePage + 2; // if pagiNation Number area size = 5 , pageNumber is calculated here\n // activePage Position calculate ex. 4 5 [6] 7 8 (Page8 over is Max), 3 4 5 [6] 7 (Page7 is Max)\n\n if (paginationStart < 1) {\n const diff = 1 - paginationStart;\n paginationStart += diff;\n maxViewPageNum = Math.min(totalPage, maxViewPageNum + diff);\n }\n\n if (maxViewPageNum > totalPage) {\n const diff = maxViewPageNum - totalPage;\n maxViewPageNum -= diff;\n paginationStart = Math.max(1, paginationStart - diff);\n }\n\n return {\n totalPage,\n paginationStart,\n maxViewPageNum\n };\n }, [activePage, totalItemsCount, pagingLimit]);\n const {\n paginationStart\n } = paginationNumbers;\n const {\n maxViewPageNum\n } = paginationNumbers;\n const {\n totalPage\n } = paginationNumbers;\n /**\n * generate Elements of Pagination First Prev\n * ex. << < 1 2 3 > >>\n * this function set << & <\n */\n\n const generateFirstPrev = Object(react__WEBPACK_IMPORTED_MODULE_0__[\"useCallback\"])(() => {\n const paginationItems = [];\n\n if (activePage !== 1) {\n paginationItems.push(react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(reactstrap_es_PaginationItem__WEBPACK_IMPORTED_MODULE_3__[\"default\"], {\n key: \"painationItemFirst\"\n }, react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(reactstrap_es_PaginationLink__WEBPACK_IMPORTED_MODULE_4__[\"default\"], {\n first: true,\n onClick: () => {\n return changePage(1);\n }\n })), react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(reactstrap_es_PaginationItem__WEBPACK_IMPORTED_MODULE_3__[\"default\"], {\n key: \"painationItemPrevious\"\n }, react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(reactstrap_es_PaginationLink__WEBPACK_IMPORTED_MODULE_4__[\"default\"], {\n previous: true,\n onClick: () => {\n return changePage(activePage - 1);\n }\n })));\n } else {\n paginationItems.push(react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(reactstrap_es_PaginationItem__WEBPACK_IMPORTED_MODULE_3__[\"default\"], {\n key: \"painationItemFirst\",\n disabled: true\n }, react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(reactstrap_es_PaginationLink__WEBPACK_IMPORTED_MODULE_4__[\"default\"], {\n first: true\n })), react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(reactstrap_es_PaginationItem__WEBPACK_IMPORTED_MODULE_3__[\"default\"], {\n key: \"painationItemPrevious\",\n disabled: true\n }, react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(reactstrap_es_PaginationLink__WEBPACK_IMPORTED_MODULE_4__[\"default\"], {\n previous: true\n })));\n }\n\n return paginationItems;\n }, [activePage, changePage]);\n /**\n * generate Elements of Pagination First Prev\n * ex. << < 4 5 6 7 8 > >>, << < 1 2 3 4 > >>\n * this function set numbers\n */\n\n const generatePaginations = Object(react__WEBPACK_IMPORTED_MODULE_0__[\"useCallback\"])(() => {\n const paginationItems = [];\n\n for (let number = paginationStart; number <= maxViewPageNum; number++) {\n paginationItems.push(react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(reactstrap_es_PaginationItem__WEBPACK_IMPORTED_MODULE_3__[\"default\"], {\n key: `paginationItem-${number}`,\n active: number === activePage\n }, react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(reactstrap_es_PaginationLink__WEBPACK_IMPORTED_MODULE_4__[\"default\"], {\n onClick: () => {\n return changePage(number);\n }\n }, number)));\n }\n\n return paginationItems;\n }, [activePage, changePage, paginationStart, maxViewPageNum]);\n /**\n * generate Elements of Pagination First Prev\n * ex. << < 1 2 3 > >>\n * this function set > & >>\n */\n\n const generateNextLast = Object(react__WEBPACK_IMPORTED_MODULE_0__[\"useCallback\"])(() => {\n const paginationItems = [];\n\n if (totalPage !== activePage) {\n paginationItems.push(react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(reactstrap_es_PaginationItem__WEBPACK_IMPORTED_MODULE_3__[\"default\"], {\n key: \"painationItemNext\"\n }, react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(reactstrap_es_PaginationLink__WEBPACK_IMPORTED_MODULE_4__[\"default\"], {\n next: true,\n onClick: () => {\n return changePage(activePage + 1);\n }\n })), react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(reactstrap_es_PaginationItem__WEBPACK_IMPORTED_MODULE_3__[\"default\"], {\n key: \"painationItemLast\"\n }, react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(reactstrap_es_PaginationLink__WEBPACK_IMPORTED_MODULE_4__[\"default\"], {\n last: true,\n onClick: () => {\n return changePage(totalPage);\n }\n })));\n } else {\n paginationItems.push(react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(reactstrap_es_PaginationItem__WEBPACK_IMPORTED_MODULE_3__[\"default\"], {\n key: \"painationItemNext\",\n disabled: true\n }, react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(reactstrap_es_PaginationLink__WEBPACK_IMPORTED_MODULE_4__[\"default\"], {\n next: true\n })), react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(reactstrap_es_PaginationItem__WEBPACK_IMPORTED_MODULE_3__[\"default\"], {\n key: \"painationItemLast\",\n disabled: true\n }, react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(reactstrap_es_PaginationLink__WEBPACK_IMPORTED_MODULE_4__[\"default\"], {\n last: true\n })));\n }\n\n return paginationItems;\n }, [activePage, changePage, totalPage]);\n const getListClassName = Object(react__WEBPACK_IMPORTED_MODULE_0__[\"useMemo\"])(() => {\n const listClassNames = [];\n\n if (align === 'center') {\n listClassNames.push('justify-content-center');\n }\n\n if (align === 'right') {\n listClassNames.push('justify-content-end');\n }\n\n return listClassNames.join(' ');\n }, [align]);\n return react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(react__WEBPACK_IMPORTED_MODULE_0___default.a.Fragment, null, react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(reactstrap_es_Pagination__WEBPACK_IMPORTED_MODULE_2__[\"default\"], {\n size: props.size,\n listClassName: getListClassName\n }, generateFirstPrev(), generatePaginations(), generateNextLast()));\n});\nPaginationWrapper.propTypes = {\n activePage: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.number.isRequired,\n changePage: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.func.isRequired,\n totalItemsCount: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.number.isRequired,\n pagingLimit: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.number,\n align: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.string,\n size: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.string\n};\nPaginationWrapper.defaultProps = {\n align: 'left',\n size: 'md',\n pagingLimit: Infinity\n};\n/* harmony default export */ __webpack_exports__[\"default\"] = (PaginationWrapper);//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9zcmMvY2xpZW50L2pzL2NvbXBvbmVudHMvUGFnaW5hdGlvbldyYXBwZXIuanN4LmpzIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vLy4vc3JjL2NsaWVudC9qcy9jb21wb25lbnRzL1BhZ2luYXRpb25XcmFwcGVyLmpzeD8wZWM0Il0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBSZWFjdCwgeyB1c2VDYWxsYmFjaywgdXNlTWVtbyB9IGZyb20gJ3JlYWN0JztcbmltcG9ydCBQcm9wVHlwZXMgZnJvbSAncHJvcC10eXBlcyc7XG5cbmltcG9ydCB7IFBhZ2luYXRpb24sIFBhZ2luYXRpb25JdGVtLCBQYWdpbmF0aW9uTGluayB9IGZyb20gJ3JlYWN0c3RyYXAnO1xuXG4vKipcbiAqXG4gKiBAYXV0aG9yIE1pa2l0YWthIEl0aXphd2EgPGl0aXphd2FAd2VzZWVrLmNvLmpwPlxuICpcbiAqIEBleHBvcnRcbiAqIEBjbGFzcyBQYWdpbmF0aW9uV3JhcHBlclxuICogQGV4dGVuZHMge1JlYWN0LkNvbXBvbmVudH1cbiAqL1xuXG5jb25zdCBQYWdpbmF0aW9uV3JhcHBlciA9IFJlYWN0Lm1lbW8oKHByb3BzKSA9PiB7XG4gIGNvbnN0IHtcbiAgICBhY3RpdmVQYWdlLCBjaGFuZ2VQYWdlLCB0b3RhbEl0ZW1zQ291bnQsIHBhZ2luZ0xpbWl0LCBhbGlnbixcbiAgfSA9IHByb3BzO1xuXG4gIC8qKlxuICAgKiB2YXJpb3VzIG51bWJlcnMgdXNlZCB0byBnZW5lcmF0ZSBwYWdpbmF0aW9uIGRvbVxuICAgKi9cbiAgY29uc3QgcGFnaW5hdGlvbk51bWJlcnMgPSB1c2VNZW1vKCgpID0+IHtcbiAgICAvLyBhdm9pZCB1c2luZyBudWxsXG4gICAgY29uc3QgbGltaXQgPSBwYWdpbmdMaW1pdCB8fCBJbmZpbml0eTtcblxuICAgIC8vIGNhbGMgdG90YWxQYWdlTnVtYmVyXG4gICAgY29uc3QgdG90YWxQYWdlID0gTWF0aC5mbG9vcih0b3RhbEl0ZW1zQ291bnQgLyBsaW1pdCkgKyAodG90YWxJdGVtc0NvdW50ICUgbGltaXQgPT09IDAgPyAwIDogMSk7XG5cbiAgICBsZXQgcGFnaW5hdGlvblN0YXJ0ID0gYWN0aXZlUGFnZSAtIDI7XG4gICAgbGV0IG1heFZpZXdQYWdlTnVtID0gYWN0aXZlUGFnZSArIDI7XG4gICAgLy8gaWYgcGFnaU5hdGlvbiBOdW1iZXIgYXJlYSBzaXplID0gNSAsIHBhZ2VOdW1iZXIgaXMgY2FsY3VsYXRlZCBoZXJlXG4gICAgLy8gYWN0aXZlUGFnZSBQb3NpdGlvbiBjYWxjdWxhdGUgZXguIDQgNSBbNl0gNyA4IChQYWdlOCBvdmVyIGlzIE1heCksIDMgNCA1IFs2XSA3IChQYWdlNyBpcyBNYXgpXG4gICAgaWYgKHBhZ2luYXRpb25TdGFydCA8IDEpIHtcbiAgICAgIGNvbnN0IGRpZmYgPSAxIC0gcGFnaW5hdGlvblN0YXJ0O1xuICAgICAgcGFnaW5hdGlvblN0YXJ0ICs9IGRpZmY7XG4gICAgICBtYXhWaWV3UGFnZU51bSA9IE1hdGgubWluKHRvdGFsUGFnZSwgbWF4Vmlld1BhZ2VOdW0gKyBkaWZmKTtcbiAgICB9XG4gICAgaWYgKG1heFZpZXdQYWdlTnVtID4gdG90YWxQYWdlKSB7XG4gICAgICBjb25zdCBkaWZmID0gbWF4Vmlld1BhZ2VOdW0gLSB0b3RhbFBhZ2U7XG4gICAgICBtYXhWaWV3UGFnZU51bSAtPSBkaWZmO1xuICAgICAgcGFnaW5hdGlvblN0YXJ0ID0gTWF0aC5tYXgoMSwgcGFnaW5hdGlvblN0YXJ0IC0gZGlmZik7XG4gICAgfVxuXG4gICAgcmV0dXJuIHtcbiAgICAgIHRvdGFsUGFnZSxcbiAgICAgIHBhZ2luYXRpb25TdGFydCxcbiAgICAgIG1heFZpZXdQYWdlTnVtLFxuICAgIH07XG4gIH0sIFthY3RpdmVQYWdlLCB0b3RhbEl0ZW1zQ291bnQsIHBhZ2luZ0xpbWl0XSk7XG5cbiAgY29uc3QgeyBwYWdpbmF0aW9uU3RhcnQgfSA9IHBhZ2luYXRpb25OdW1iZXJzO1xuICBjb25zdCB7IG1heFZpZXdQYWdlTnVtIH0gPSBwYWdpbmF0aW9uTnVtYmVycztcbiAgY29uc3QgeyB0b3RhbFBhZ2UgfSA9IHBhZ2luYXRpb25OdW1iZXJzO1xuXG4gIC8qKlxuICAgKiBnZW5lcmF0ZSBFbGVtZW50cyBvZiBQYWdpbmF0aW9uIEZpcnN0IFByZXZcbiAgICogZXguICA8PCAgIDwgICAxICAyICAzICA+ICA+PlxuICAgKiB0aGlzIGZ1bmN0aW9uIHNldCA8PCAmIDxcbiAgICovXG4gIGNvbnN0IGdlbmVyYXRlRmlyc3RQcmV2ID0gdXNlQ2FsbGJhY2soKCkgPT4ge1xuICAgIGNvbnN0IHBhZ2luYXRpb25JdGVtcyA9IFtdO1xuICAgIGlmIChhY3RpdmVQYWdlICE9PSAxKSB7XG4gICAgICBwYWdpbmF0aW9uSXRlbXMucHVzaChcbiAgICAgICAgPFBhZ2luYXRpb25JdGVtIGtleT1cInBhaW5hdGlvbkl0ZW1GaXJzdFwiPlxuICAgICAgICAgIDxQYWdpbmF0aW9uTGluayBmaXJzdCBvbkNsaWNrPXsoKSA9PiB7IHJldHVybiBjaGFuZ2VQYWdlKDEpIH19IC8+XG4gICAgICAgIDwvUGFnaW5hdGlvbkl0ZW0+LFxuICAgICAgICA8UGFnaW5hdGlvbkl0ZW0ga2V5PVwicGFpbmF0aW9uSXRlbVByZXZpb3VzXCI+XG4gICAgICAgICAgPFBhZ2luYXRpb25MaW5rIHByZXZpb3VzIG9uQ2xpY2s9eygpID0+IHsgcmV0dXJuIGNoYW5nZVBhZ2UoYWN0aXZlUGFnZSAtIDEpIH19IC8+XG4gICAgICAgIDwvUGFnaW5hdGlvbkl0ZW0+LFxuICAgICAgKTtcbiAgICB9XG4gICAgZWxzZSB7XG4gICAgICBwYWdpbmF0aW9uSXRlbXMucHVzaChcbiAgICAgICAgPFBhZ2luYXRpb25JdGVtIGtleT1cInBhaW5hdGlvbkl0ZW1GaXJzdFwiIGRpc2FibGVkPlxuICAgICAgICAgIDxQYWdpbmF0aW9uTGluayBmaXJzdCAvPlxuICAgICAgICA8L1BhZ2luYXRpb25JdGVtPixcbiAgICAgICAgPFBhZ2luYXRpb25JdGVtIGtleT1cInBhaW5hdGlvbkl0ZW1QcmV2aW91c1wiIGRpc2FibGVkPlxuICAgICAgICAgIDxQYWdpbmF0aW9uTGluayBwcmV2aW91cyAvPlxuICAgICAgICA8L1BhZ2luYXRpb25JdGVtPixcbiAgICAgICk7XG4gICAgfVxuICAgIHJldHVybiBwYWdpbmF0aW9uSXRlbXM7XG4gIH0sIFthY3RpdmVQYWdlLCBjaGFuZ2VQYWdlXSk7XG5cbiAgLyoqXG4gICAqIGdlbmVyYXRlIEVsZW1lbnRzIG9mIFBhZ2luYXRpb24gRmlyc3QgUHJldlxuICAgKiAgZXguIDw8IDwgNCA1IDYgNyA4ID4gPj4sIDw8IDwgMSAyIDMgNCA+ID4+XG4gICAqIHRoaXMgZnVuY3Rpb24gc2V0ICBudW1iZXJzXG4gICAqL1xuICBjb25zdCBnZW5lcmF0ZVBhZ2luYXRpb25zID0gdXNlQ2FsbGJhY2soKCkgPT4ge1xuICAgIGNvbnN0IHBhZ2luYXRpb25JdGVtcyA9IFtdO1xuICAgIGZvciAobGV0IG51bWJlciA9IHBhZ2luYXRpb25TdGFydDsgbnVtYmVyIDw9IG1heFZpZXdQYWdlTnVtOyBudW1iZXIrKykge1xuICAgICAgcGFnaW5hdGlvbkl0ZW1zLnB1c2goXG4gICAgICAgIDxQYWdpbmF0aW9uSXRlbSBrZXk9e2BwYWdpbmF0aW9uSXRlbS0ke251bWJlcn1gfSBhY3RpdmU9e251bWJlciA9PT0gYWN0aXZlUGFnZX0+XG4gICAgICAgICAgPFBhZ2luYXRpb25MaW5rIG9uQ2xpY2s9eygpID0+IHsgcmV0dXJuIGNoYW5nZVBhZ2UobnVtYmVyKSB9fT5cbiAgICAgICAgICAgIHtudW1iZXJ9XG4gICAgICAgICAgPC9QYWdpbmF0aW9uTGluaz5cbiAgICAgICAgPC9QYWdpbmF0aW9uSXRlbT4sXG4gICAgICApO1xuICAgIH1cbiAgICByZXR1cm4gcGFnaW5hdGlvbkl0ZW1zO1xuICB9LCBbYWN0aXZlUGFnZSwgY2hhbmdlUGFnZSwgcGFnaW5hdGlvblN0YXJ0LCBtYXhWaWV3UGFnZU51bV0pO1xuXG4gIC8qKlxuICAgKiBnZW5lcmF0ZSBFbGVtZW50cyBvZiBQYWdpbmF0aW9uIEZpcnN0IFByZXZcbiAgICogZXguICA8PCAgIDwgICAxICAyICAzICA+ICA+PlxuICAgKiB0aGlzIGZ1bmN0aW9uIHNldCA+ICYgPj5cbiAgICovXG4gIGNvbnN0IGdlbmVyYXRlTmV4dExhc3QgPSB1c2VDYWxsYmFjaygoKSA9PiB7XG4gICAgY29uc3QgcGFnaW5hdGlvbkl0ZW1zID0gW107XG4gICAgaWYgKHRvdGFsUGFnZSAhPT0gYWN0aXZlUGFnZSkge1xuICAgICAgcGFnaW5hdGlvbkl0ZW1zLnB1c2goXG4gICAgICAgIDxQYWdpbmF0aW9uSXRlbSBrZXk9XCJwYWluYXRpb25JdGVtTmV4dFwiPlxuICAgICAgICAgIDxQYWdpbmF0aW9uTGluayBuZXh0IG9uQ2xpY2s9eygpID0+IHsgcmV0dXJuIGNoYW5nZVBhZ2UoYWN0aXZlUGFnZSArIDEpIH19IC8+XG4gICAgICAgIDwvUGFnaW5hdGlvbkl0ZW0+LFxuICAgICAgICA8UGFnaW5hdGlvbkl0ZW0ga2V5PVwicGFpbmF0aW9uSXRlbUxhc3RcIj5cbiAgICAgICAgICA8UGFnaW5hdGlvbkxpbmsgbGFzdCBvbkNsaWNrPXsoKSA9PiB7IHJldHVybiBjaGFuZ2VQYWdlKHRvdGFsUGFnZSkgfX0gLz5cbiAgICAgICAgPC9QYWdpbmF0aW9uSXRlbT4sXG4gICAgICApO1xuICAgIH1cbiAgICBlbHNlIHtcbiAgICAgIHBhZ2luYXRpb25JdGVtcy5wdXNoKFxuICAgICAgICA8UGFnaW5hdGlvbkl0ZW0ga2V5PVwicGFpbmF0aW9uSXRlbU5leHRcIiBkaXNhYmxlZD5cbiAgICAgICAgICA8UGFnaW5hdGlvbkxpbmsgbmV4dCAvPlxuICAgICAgICA8L1BhZ2luYXRpb25JdGVtPixcbiAgICAgICAgPFBhZ2luYXRpb25JdGVtIGtleT1cInBhaW5hdGlvbkl0ZW1MYXN0XCIgZGlzYWJsZWQ+XG4gICAgICAgICAgPFBhZ2luYXRpb25MaW5rIGxhc3QgLz5cbiAgICAgICAgPC9QYWdpbmF0aW9uSXRlbT4sXG4gICAgICApO1xuICAgIH1cbiAgICByZXR1cm4gcGFnaW5hdGlvbkl0ZW1zO1xuICB9LCBbYWN0aXZlUGFnZSwgY2hhbmdlUGFnZSwgdG90YWxQYWdlXSk7XG5cbiAgY29uc3QgZ2V0TGlzdENsYXNzTmFtZSA9IHVzZU1lbW8oKCkgPT4ge1xuICAgIGNvbnN0IGxpc3RDbGFzc05hbWVzID0gW107XG5cbiAgICBpZiAoYWxpZ24gPT09ICdjZW50ZXInKSB7XG4gICAgICBsaXN0Q2xhc3NOYW1lcy5wdXNoKCdqdXN0aWZ5LWNvbnRlbnQtY2VudGVyJyk7XG4gICAgfVxuICAgIGlmIChhbGlnbiA9PT0gJ3JpZ2h0Jykge1xuICAgICAgbGlzdENsYXNzTmFtZXMucHVzaCgnanVzdGlmeS1jb250ZW50LWVuZCcpO1xuICAgIH1cblxuICAgIHJldHVybiBsaXN0Q2xhc3NOYW1lcy5qb2luKCcgJyk7XG4gIH0sIFthbGlnbl0pO1xuXG4gIHJldHVybiAoXG4gICAgPFJlYWN0LkZyYWdtZW50PlxuICAgICAgPFBhZ2luYXRpb24gc2l6ZT17cHJvcHMuc2l6ZX0gbGlzdENsYXNzTmFtZT17Z2V0TGlzdENsYXNzTmFtZX0+XG4gICAgICAgIHtnZW5lcmF0ZUZpcnN0UHJldigpfVxuICAgICAgICB7Z2VuZXJhdGVQYWdpbmF0aW9ucygpfVxuICAgICAgICB7Z2VuZXJhdGVOZXh0TGFzdCgpfVxuICAgICAgPC9QYWdpbmF0aW9uPlxuICAgIDwvUmVhY3QuRnJhZ21lbnQ+XG4gICk7XG5cbn0pO1xuXG5QYWdpbmF0aW9uV3JhcHBlci5wcm9wVHlwZXMgPSB7XG4gIGFjdGl2ZVBhZ2U6IFByb3BUeXBlcy5udW1iZXIuaXNSZXF1aXJlZCxcbiAgY2hhbmdlUGFnZTogUHJvcFR5cGVzLmZ1bmMuaXNSZXF1aXJlZCxcbiAgdG90YWxJdGVtc0NvdW50OiBQcm9wVHlwZXMubnVtYmVyLmlzUmVxdWlyZWQsXG4gIHBhZ2luZ0xpbWl0OiBQcm9wVHlwZXMubnVtYmVyLFxuICBhbGlnbjogUHJvcFR5cGVzLnN0cmluZyxcbiAgc2l6ZTogUHJvcFR5cGVzLnN0cmluZyxcbn07XG5cblBhZ2luYXRpb25XcmFwcGVyLmRlZmF1bHRQcm9wcyA9IHtcbiAgYWxpZ246ICdsZWZ0JyxcbiAgc2l6ZTogJ21kJyxcbiAgcGFnaW5nTGltaXQ6IEluZmluaXR5LFxufTtcblxuZXhwb3J0IGRlZmF1bHQgUGFnaW5hdGlvbldyYXBwZXI7XG4iXSwibWFwcGluZ3MiOiJBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUNBOzs7O0FBSUE7Ozs7Ozs7OztBQVNBO0FBQ0E7QUFDQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBREE7QUFJQTs7OztBQUdBO0FBQ0E7QUFDQTtBQUNBO0FBRUE7QUFFQTtBQUNBO0FBRUE7QUFDQTtBQUFBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUFBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBSEE7QUFLQTtBQUVBO0FBQUE7QUFBQTtBQUNBO0FBQUE7QUFBQTtBQUNBO0FBQUE7QUFBQTtBQUVBOzs7Ozs7QUFLQTtBQUNBO0FBQ0E7QUFBQTtBQUNBO0FBQ0E7QUFBQTtBQUNBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFFQTtBQUFBO0FBQ0E7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUdBO0FBRUE7QUFDQTtBQUFBO0FBQUE7QUFDQTtBQUFBO0FBRUE7QUFBQTtBQUFBO0FBQ0E7QUFBQTtBQUdBO0FBQ0E7QUFBQTtBQUNBO0FBRUE7Ozs7OztBQUtBO0FBQ0E7QUFDQTtBQUFBO0FBQ0E7QUFDQTtBQUFBO0FBQUE7QUFDQTtBQUFBO0FBQUE7QUFBQTtBQUtBO0FBQ0E7QUFBQTtBQUNBO0FBRUE7Ozs7OztBQUtBO0FBQ0E7QUFDQTtBQUFBO0FBQ0E7QUFDQTtBQUFBO0FBQ0E7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUVBO0FBQUE7QUFDQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBR0E7QUFFQTtBQUNBO0FBQUE7QUFBQTtBQUNBO0FBQUE7QUFFQTtBQUFBO0FBQUE7QUFDQTtBQUFBO0FBR0E7QUFDQTtBQUFBO0FBQ0E7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUFBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUVBO0FBRUE7QUFBQTtBQUFBO0FBUUE7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQU5BO0FBU0E7QUFDQTtBQUNBO0FBQ0E7QUFIQTtBQU1BIiwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./src/client/js/components/PaginationWrapper.jsx\n");
- /***/ }),
- /***/ "./src/client/js/components/SearchForm.jsx":
- /*!*************************************************!*\
- !*** ./src/client/js/components/SearchForm.jsx ***!
- \*************************************************/
- /*! exports provided: default */
- /***/ (function(module, __webpack_exports__, __webpack_require__) {
- "use strict";
- eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"./node_modules/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! prop-types */ \"./node_modules/prop-types/index.js\");\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(prop_types__WEBPACK_IMPORTED_MODULE_1__);\n/* harmony import */ var _UnstatedUtils__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./UnstatedUtils */ \"./src/client/js/components/UnstatedUtils.jsx\");\n/* harmony import */ var _services_AppContainer__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../services/AppContainer */ \"./src/client/js/services/AppContainer.js\");\n/* harmony import */ var _SearchTypeahead__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./SearchTypeahead */ \"./src/client/js/components/SearchTypeahead.jsx\");\n\n\n\n\n // SearchTypeahead wrapper\n\nclass SearchForm extends react__WEBPACK_IMPORTED_MODULE_0___default.a.Component {\n constructor(props) {\n super(props);\n this.state = {\n searchError: null,\n isShownHelp: false\n };\n this.onSearchError = this.onSearchError.bind(this);\n this.onChange = this.onChange.bind(this);\n this.onBlur = this.onBlur.bind(this);\n this.onFocus = this.onFocus.bind(this);\n }\n\n componentDidMount() {}\n\n componentWillUnmount() {}\n\n onSearchError(err) {\n this.setState({\n searchError: err\n });\n }\n\n onChange(selected) {\n const page = selected[0]; // should be single page selected\n // navigate to page\n\n if (page != null) {\n window.location = page.path;\n }\n }\n\n onBlur() {\n this.setState({\n isShownHelp: false\n });\n this.getHelpElement();\n }\n\n onFocus() {\n this.setState({\n isShownHelp: true\n });\n }\n\n getHelpElement() {\n const {\n t,\n appContainer\n } = this.props;\n const {\n isShownHelp\n } = this.state;\n const config = appContainer.getConfig();\n const isReachable = config.isSearchServiceReachable;\n\n if (!isReachable) {\n return react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(react__WEBPACK_IMPORTED_MODULE_0___default.a.Fragment, null, react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"h5\", {\n className: \"text-danger\"\n }, \"Error occured on Search Service\"), \"Try to reconnect from management page.\");\n }\n\n if (!isShownHelp) {\n return react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(react__WEBPACK_IMPORTED_MODULE_0___default.a.Fragment, null);\n }\n\n return react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"table\", {\n className: \"table grw-search-table search-help m-0\"\n }, react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"caption\", {\n className: \"text-left text-primary p-2\"\n }, react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"h5\", {\n className: \"h6\"\n }, react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"i\", {\n className: \"icon-magnifier pr-2 mb-2\"\n }), t('search_help.title'))), react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"tbody\", null, react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"tr\", null, react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"th\", {\n className: \"py-2\"\n }, react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"code\", null, \"word1\"), \" \", react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"code\", null, \"word2\"), react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"br\", null), react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"small\", null, \"(\", t('search_help.and.syntax help'), \")\")), react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"td\", null, react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"h6\", {\n className: \"m-0\"\n }, t('search_help.and.desc', {\n word1: 'word1',\n word2: 'word2'\n })))), react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"tr\", null, react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"th\", {\n className: \"py-2\"\n }, react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"code\", null, \"\\\"This is GROWI\\\"\"), react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"br\", null), react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"small\", null, \"(\", t('search_help.phrase.syntax help'), \")\")), react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"td\", null, react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"h6\", {\n className: \"m-0\"\n }, t('search_help.phrase.desc', {\n phrase: 'This is GROWI'\n })))), react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"tr\", null, react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"th\", {\n className: \"py-2\"\n }, react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"code\", null, \"-keyword\")), react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"td\", null, react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"h6\", {\n className: \"m-0\"\n }, t('search_help.exclude.desc', {\n word: 'keyword'\n })))), react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"tr\", null, react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"th\", {\n className: \"py-2\"\n }, react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"code\", null, \"prefix:/user/\")), react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"td\", null, react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"h6\", {\n className: \"m-0\"\n }, t('search_help.prefix.desc', {\n path: '/user/'\n })))), react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"tr\", null, react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"th\", {\n className: \"py-2\"\n }, react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"code\", null, \"-prefix:/user/\")), react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"td\", null, react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"h6\", {\n className: \"m-0\"\n }, t('search_help.exclude_prefix.desc', {\n path: '/user/'\n })))), react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"tr\", null, react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"th\", {\n className: \"py-2\"\n }, react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"code\", null, \"tag:wiki\")), react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"td\", null, react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"h6\", {\n className: \"m-0\"\n }, t('search_help.tag.desc', {\n tag: 'wiki'\n })))), react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"tr\", null, react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"th\", {\n className: \"py-2\"\n }, react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"code\", null, \"-tag:wiki\")), react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"td\", null, react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"h6\", {\n className: \"m-0\"\n }, t('search_help.exclude_tag.desc', {\n tag: 'wiki'\n }))))));\n }\n\n render() {\n const {\n t,\n appContainer,\n dropup\n } = this.props;\n const config = appContainer.getConfig();\n const isReachable = config.isSearchServiceReachable;\n const placeholder = isReachable ? 'Search ...' : 'Error on Search Service';\n const emptyLabel = this.state.searchError !== null ? 'Error on searching.' : t('search.search page bodies');\n return react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(_SearchTypeahead__WEBPACK_IMPORTED_MODULE_4__[\"default\"], {\n dropup: dropup,\n onChange: this.onChange,\n onSubmit: this.props.onSubmit,\n onInputChange: this.props.onInputChange,\n onSearchError: this.onSearchError,\n emptyLabel: emptyLabel,\n placeholder: placeholder,\n helpElement: this.getHelpElement(),\n keywordOnInit: this.props.keyword,\n onBlur: this.onBlur,\n onFocus: this.onFocus\n });\n }\n\n}\n/**\n * Wrapper component for using unstated\n */\n\n\nconst SearchFormWrapper = Object(_UnstatedUtils__WEBPACK_IMPORTED_MODULE_2__[\"withUnstatedContainers\"])(SearchForm, [_services_AppContainer__WEBPACK_IMPORTED_MODULE_3__[\"default\"]]);\nSearchForm.propTypes = {\n t: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.func.isRequired,\n // i18next\n appContainer: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.instanceOf(_services_AppContainer__WEBPACK_IMPORTED_MODULE_3__[\"default\"]).isRequired,\n dropup: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.bool,\n keyword: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.string,\n onSubmit: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.func.isRequired,\n onInputChange: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.func\n};\nSearchForm.defaultProps = {\n onInputChange: () => {}\n};\n/* harmony default export */ __webpack_exports__[\"default\"] = (SearchFormWrapper);//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9zcmMvY2xpZW50L2pzL2NvbXBvbmVudHMvU2VhcmNoRm9ybS5qc3guanMiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9zcmMvY2xpZW50L2pzL2NvbXBvbmVudHMvU2VhcmNoRm9ybS5qc3g/MThhNCJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgUmVhY3QgZnJvbSAncmVhY3QnO1xuaW1wb3J0IFByb3BUeXBlcyBmcm9tICdwcm9wLXR5cGVzJztcbmltcG9ydCB7IHdpdGhVbnN0YXRlZENvbnRhaW5lcnMgfSBmcm9tICcuL1Vuc3RhdGVkVXRpbHMnO1xuaW1wb3J0IEFwcENvbnRhaW5lciBmcm9tICcuLi9zZXJ2aWNlcy9BcHBDb250YWluZXInO1xuXG5pbXBvcnQgU2VhcmNoVHlwZWFoZWFkIGZyb20gJy4vU2VhcmNoVHlwZWFoZWFkJztcblxuLy8gU2VhcmNoVHlwZWFoZWFkIHdyYXBwZXJcbmNsYXNzIFNlYXJjaEZvcm0gZXh0ZW5kcyBSZWFjdC5Db21wb25lbnQge1xuXG4gIGNvbnN0cnVjdG9yKHByb3BzKSB7XG4gICAgc3VwZXIocHJvcHMpO1xuXG4gICAgdGhpcy5zdGF0ZSA9IHtcbiAgICAgIHNlYXJjaEVycm9yOiBudWxsLFxuICAgICAgaXNTaG93bkhlbHA6IGZhbHNlLFxuICAgIH07XG5cbiAgICB0aGlzLm9uU2VhcmNoRXJyb3IgPSB0aGlzLm9uU2VhcmNoRXJyb3IuYmluZCh0aGlzKTtcbiAgICB0aGlzLm9uQ2hhbmdlID0gdGhpcy5vbkNoYW5nZS5iaW5kKHRoaXMpO1xuICAgIHRoaXMub25CbHVyID0gdGhpcy5vbkJsdXIuYmluZCh0aGlzKTtcbiAgICB0aGlzLm9uRm9jdXMgPSB0aGlzLm9uRm9jdXMuYmluZCh0aGlzKTtcbiAgfVxuXG4gIGNvbXBvbmVudERpZE1vdW50KCkge1xuICB9XG5cbiAgY29tcG9uZW50V2lsbFVubW91bnQoKSB7XG4gIH1cblxuICBvblNlYXJjaEVycm9yKGVycikge1xuICAgIHRoaXMuc2V0U3RhdGUoe1xuICAgICAgc2VhcmNoRXJyb3I6IGVycixcbiAgICB9KTtcbiAgfVxuXG4gIG9uQ2hhbmdlKHNlbGVjdGVkKSB7XG4gICAgY29uc3QgcGFnZSA9IHNlbGVjdGVkWzBdOyAvLyBzaG91bGQgYmUgc2luZ2xlIHBhZ2Ugc2VsZWN0ZWRcblxuICAgIC8vIG5hdmlnYXRlIHRvIHBhZ2VcbiAgICBpZiAocGFnZSAhPSBudWxsKSB7XG4gICAgICB3aW5kb3cubG9jYXRpb24gPSBwYWdlLnBhdGg7XG4gICAgfVxuICB9XG5cbiAgb25CbHVyKCkge1xuICAgIHRoaXMuc2V0U3RhdGUoe1xuICAgICAgaXNTaG93bkhlbHA6IGZhbHNlLFxuICAgIH0pO1xuXG4gICAgdGhpcy5nZXRIZWxwRWxlbWVudCgpO1xuICB9XG5cbiAgb25Gb2N1cygpIHtcbiAgICB0aGlzLnNldFN0YXRlKHtcbiAgICAgIGlzU2hvd25IZWxwOiB0cnVlLFxuICAgIH0pO1xuICB9XG5cbiAgZ2V0SGVscEVsZW1lbnQoKSB7XG4gICAgY29uc3QgeyB0LCBhcHBDb250YWluZXIgfSA9IHRoaXMucHJvcHM7XG4gICAgY29uc3QgeyBpc1Nob3duSGVscCB9ID0gdGhpcy5zdGF0ZTtcblxuICAgIGNvbnN0IGNvbmZpZyA9IGFwcENvbnRhaW5lci5nZXRDb25maWcoKTtcbiAgICBjb25zdCBpc1JlYWNoYWJsZSA9IGNvbmZpZy5pc1NlYXJjaFNlcnZpY2VSZWFjaGFibGU7XG5cblxuICAgIGlmICghaXNSZWFjaGFibGUpIHtcbiAgICAgIHJldHVybiAoXG4gICAgICAgIDw+XG4gICAgICAgICAgPGg1IGNsYXNzTmFtZT1cInRleHQtZGFuZ2VyXCI+RXJyb3Igb2NjdXJlZCBvbiBTZWFyY2ggU2VydmljZTwvaDU+XG4gICAgICAgICAgVHJ5IHRvIHJlY29ubmVjdCBmcm9tIG1hbmFnZW1lbnQgcGFnZS5cbiAgICAgICAgPC8+XG4gICAgICApO1xuICAgIH1cblxuICAgIGlmICghaXNTaG93bkhlbHApIHtcbiAgICAgIHJldHVybiA8PjwvPjtcbiAgICB9XG5cbiAgICByZXR1cm4gKFxuICAgICAgPHRhYmxlIGNsYXNzTmFtZT1cInRhYmxlIGdydy1zZWFyY2gtdGFibGUgc2VhcmNoLWhlbHAgbS0wXCI+XG4gICAgICAgIDxjYXB0aW9uIGNsYXNzTmFtZT1cInRleHQtbGVmdCB0ZXh0LXByaW1hcnkgcC0yXCI+XG4gICAgICAgICAgPGg1IGNsYXNzTmFtZT1cImg2XCI+PGkgY2xhc3NOYW1lPVwiaWNvbi1tYWduaWZpZXIgcHItMiBtYi0yXCIgLz57IHQoJ3NlYXJjaF9oZWxwLnRpdGxlJykgfTwvaDU+XG4gICAgICAgIDwvY2FwdGlvbj5cbiAgICAgICAgPHRib2R5PlxuICAgICAgICAgIDx0cj5cbiAgICAgICAgICAgIDx0aCBjbGFzc05hbWU9XCJweS0yXCI+XG4gICAgICAgICAgICAgIDxjb2RlPndvcmQxPC9jb2RlPiA8Y29kZT53b3JkMjwvY29kZT48YnI+PC9icj5cbiAgICAgICAgICAgICAgPHNtYWxsPih7IHQoJ3NlYXJjaF9oZWxwLmFuZC5zeW50YXggaGVscCcpIH0pPC9zbWFsbD5cbiAgICAgICAgICAgIDwvdGg+XG4gICAgICAgICAgICA8dGQ+PGg2IGNsYXNzTmFtZT1cIm0tMFwiPnsgdCgnc2VhcmNoX2hlbHAuYW5kLmRlc2MnLCB7IHdvcmQxOiAnd29yZDEnLCB3b3JkMjogJ3dvcmQyJyB9KSB9PC9oNj48L3RkPlxuICAgICAgICAgIDwvdHI+XG4gICAgICAgICAgPHRyPlxuICAgICAgICAgICAgPHRoIGNsYXNzTmFtZT1cInB5LTJcIj5cbiAgICAgICAgICAgICAgPGNvZGU+JnF1b3Q7VGhpcyBpcyBHUk9XSSZxdW90OzwvY29kZT48YnI+PC9icj5cbiAgICAgICAgICAgICAgPHNtYWxsPih7IHQoJ3NlYXJjaF9oZWxwLnBocmFzZS5zeW50YXggaGVscCcpIH0pPC9zbWFsbD5cbiAgICAgICAgICAgIDwvdGg+XG4gICAgICAgICAgICA8dGQ+PGg2IGNsYXNzTmFtZT1cIm0tMFwiPnsgdCgnc2VhcmNoX2hlbHAucGhyYXNlLmRlc2MnLCB7IHBocmFzZTogJ1RoaXMgaXMgR1JPV0knIH0pIH08L2g2PjwvdGQ+XG4gICAgICAgICAgPC90cj5cbiAgICAgICAgICA8dHI+XG4gICAgICAgICAgICA8dGggY2xhc3NOYW1lPVwicHktMlwiPjxjb2RlPi1rZXl3b3JkPC9jb2RlPjwvdGg+XG4gICAgICAgICAgICA8dGQ+PGg2IGNsYXNzTmFtZT1cIm0tMFwiPnsgdCgnc2VhcmNoX2hlbHAuZXhjbHVkZS5kZXNjJywgeyB3b3JkOiAna2V5d29yZCcgfSkgfTwvaDY+PC90ZD5cbiAgICAgICAgICA8L3RyPlxuICAgICAgICAgIDx0cj5cbiAgICAgICAgICAgIDx0aCBjbGFzc05hbWU9XCJweS0yXCI+PGNvZGU+cHJlZml4Oi91c2VyLzwvY29kZT48L3RoPlxuICAgICAgICAgICAgPHRkPjxoNiBjbGFzc05hbWU9XCJtLTBcIj57IHQoJ3NlYXJjaF9oZWxwLnByZWZpeC5kZXNjJywgeyBwYXRoOiAnL3VzZXIvJyB9KSB9PC9oNj48L3RkPlxuICAgICAgICAgIDwvdHI+XG4gICAgICAgICAgPHRyPlxuICAgICAgICAgICAgPHRoIGNsYXNzTmFtZT1cInB5LTJcIj48Y29kZT4tcHJlZml4Oi91c2VyLzwvY29kZT48L3RoPlxuICAgICAgICAgICAgPHRkPjxoNiBjbGFzc05hbWU9XCJtLTBcIj57IHQoJ3NlYXJjaF9oZWxwLmV4Y2x1ZGVfcHJlZml4LmRlc2MnLCB7IHBhdGg6ICcvdXNlci8nIH0pIH08L2g2PjwvdGQ+XG4gICAgICAgICAgPC90cj5cbiAgICAgICAgICA8dHI+XG4gICAgICAgICAgICA8dGggY2xhc3NOYW1lPVwicHktMlwiPjxjb2RlPnRhZzp3aWtpPC9jb2RlPjwvdGg+XG4gICAgICAgICAgICA8dGQ+PGg2IGNsYXNzTmFtZT1cIm0tMFwiPnsgdCgnc2VhcmNoX2hlbHAudGFnLmRlc2MnLCB7IHRhZzogJ3dpa2knIH0pIH08L2g2PjwvdGQ+XG4gICAgICAgICAgPC90cj5cbiAgICAgICAgICA8dHI+XG4gICAgICAgICAgICA8dGggY2xhc3NOYW1lPVwicHktMlwiPjxjb2RlPi10YWc6d2lraTwvY29kZT48L3RoPlxuICAgICAgICAgICAgPHRkPjxoNiBjbGFzc05hbWU9XCJtLTBcIj57IHQoJ3NlYXJjaF9oZWxwLmV4Y2x1ZGVfdGFnLmRlc2MnLCB7IHRhZzogJ3dpa2knIH0pIH08L2g2PjwvdGQ+XG4gICAgICAgICAgPC90cj5cbiAgICAgICAgPC90Ym9keT5cbiAgICAgIDwvdGFibGU+XG4gICAgKTtcbiAgfVxuXG4gIHJlbmRlcigpIHtcbiAgICBjb25zdCB7IHQsIGFwcENvbnRhaW5lciwgZHJvcHVwIH0gPSB0aGlzLnByb3BzO1xuXG4gICAgY29uc3QgY29uZmlnID0gYXBwQ29udGFpbmVyLmdldENvbmZpZygpO1xuICAgIGNvbnN0IGlzUmVhY2hhYmxlID0gY29uZmlnLmlzU2VhcmNoU2VydmljZVJlYWNoYWJsZTtcblxuICAgIGNvbnN0IHBsYWNlaG9sZGVyID0gaXNSZWFjaGFibGVcbiAgICAgID8gJ1NlYXJjaCAuLi4nXG4gICAgICA6ICdFcnJvciBvbiBTZWFyY2ggU2VydmljZSc7XG4gICAgY29uc3QgZW1wdHlMYWJlbCA9ICh0aGlzLnN0YXRlLnNlYXJjaEVycm9yICE9PSBudWxsKVxuICAgICAgPyAnRXJyb3Igb24gc2VhcmNoaW5nLidcbiAgICAgIDogdCgnc2VhcmNoLnNlYXJjaCBwYWdlIGJvZGllcycpO1xuXG4gICAgcmV0dXJuIChcbiAgICAgIDxTZWFyY2hUeXBlYWhlYWRcbiAgICAgICAgZHJvcHVwPXtkcm9wdXB9XG4gICAgICAgIG9uQ2hhbmdlPXt0aGlzLm9uQ2hhbmdlfVxuICAgICAgICBvblN1Ym1pdD17dGhpcy5wcm9wcy5vblN1Ym1pdH1cbiAgICAgICAgb25JbnB1dENoYW5nZT17dGhpcy5wcm9wcy5vbklucHV0Q2hhbmdlfVxuICAgICAgICBvblNlYXJjaEVycm9yPXt0aGlzLm9uU2VhcmNoRXJyb3J9XG4gICAgICAgIGVtcHR5TGFiZWw9e2VtcHR5TGFiZWx9XG4gICAgICAgIHBsYWNlaG9sZGVyPXtwbGFjZWhvbGRlcn1cbiAgICAgICAgaGVscEVsZW1lbnQ9e3RoaXMuZ2V0SGVscEVsZW1lbnQoKX1cbiAgICAgICAga2V5d29yZE9uSW5pdD17dGhpcy5wcm9wcy5rZXl3b3JkfVxuICAgICAgICBvbkJsdXI9e3RoaXMub25CbHVyfVxuICAgICAgICBvbkZvY3VzPXt0aGlzLm9uRm9jdXN9XG4gICAgICAvPlxuICAgICk7XG4gIH1cblxufVxuXG4vKipcbiAqIFdyYXBwZXIgY29tcG9uZW50IGZvciB1c2luZyB1bnN0YXRlZFxuICovXG5jb25zdCBTZWFyY2hGb3JtV3JhcHBlciA9IHdpdGhVbnN0YXRlZENvbnRhaW5lcnMoU2VhcmNoRm9ybSwgW0FwcENvbnRhaW5lcl0pO1xuXG5TZWFyY2hGb3JtLnByb3BUeXBlcyA9IHtcbiAgdDogUHJvcFR5cGVzLmZ1bmMuaXNSZXF1aXJlZCwgLy8gaTE4bmV4dFxuICBhcHBDb250YWluZXI6IFByb3BUeXBlcy5pbnN0YW5jZU9mKEFwcENvbnRhaW5lcikuaXNSZXF1aXJlZCxcblxuICBkcm9wdXA6IFByb3BUeXBlcy5ib29sLFxuICBrZXl3b3JkOiBQcm9wVHlwZXMuc3RyaW5nLFxuICBvblN1Ym1pdDogUHJvcFR5cGVzLmZ1bmMuaXNSZXF1aXJlZCxcbiAgb25JbnB1dENoYW5nZTogUHJvcFR5cGVzLmZ1bmMsXG59O1xuXG5TZWFyY2hGb3JtLmRlZmF1bHRQcm9wcyA9IHtcbiAgb25JbnB1dENoYW5nZTogKCkgPT4ge30sXG59O1xuXG5leHBvcnQgZGVmYXVsdCBTZWFyY2hGb3JtV3JhcHBlcjtcbiJdLCJtYXBwaW5ncyI6IkFBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQ0E7QUFDQTtBQUNBO0FBRUE7QUFDQTtBQUVBO0FBRUE7QUFDQTtBQUVBO0FBQ0E7QUFDQTtBQUZBO0FBS0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUVBO0FBQ0E7QUFFQTtBQUNBO0FBQ0E7QUFEQTtBQUdBO0FBQ0E7QUFDQTtBQUNBO0FBRUE7QUFDQTtBQUFBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFEQTtBQUlBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQURBO0FBR0E7QUFDQTtBQUNBO0FBQ0E7QUFBQTtBQUFBO0FBQUE7QUFDQTtBQUFBO0FBQUE7QUFFQTtBQUNBO0FBQ0E7QUFFQTtBQUNBO0FBRUE7QUFBQTtBQUlBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFBQTtBQUNBO0FBQUE7QUFDQTtBQUFBO0FBQUE7QUFBQTtBQUlBO0FBQUE7QUFJQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBR0E7QUFBQTtBQUlBO0FBQUE7QUFBQTtBQUFBO0FBR0E7QUFBQTtBQUNBO0FBQUE7QUFBQTtBQUFBO0FBR0E7QUFBQTtBQUNBO0FBQUE7QUFBQTtBQUFBO0FBR0E7QUFBQTtBQUNBO0FBQUE7QUFBQTtBQUFBO0FBR0E7QUFBQTtBQUNBO0FBQUE7QUFBQTtBQUFBO0FBR0E7QUFBQTtBQUNBO0FBQUE7QUFBQTtBQUFBO0FBS0E7QUFDQTtBQUNBO0FBQ0E7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUVBO0FBQ0E7QUFFQTtBQUdBO0FBSUE7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBWEE7QUFjQTtBQUNBO0FBbEpBO0FBcUpBOzs7OztBQUdBO0FBRUE7QUFDQTtBQUFBO0FBQ0E7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQVBBO0FBVUE7QUFDQTtBQURBO0FBSUEiLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./src/client/js/components/SearchForm.jsx\n");
- /***/ }),
- /***/ "./src/client/js/components/SearchTypeahead.jsx":
- /*!******************************************************!*\
- !*** ./src/client/js/components/SearchTypeahead.jsx ***!
- \******************************************************/
- /*! exports provided: default */
- /***/ (function(module, __webpack_exports__, __webpack_require__) {
- "use strict";
- eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"./node_modules/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! prop-types */ \"./node_modules/prop-types/index.js\");\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(prop_types__WEBPACK_IMPORTED_MODULE_1__);\n/* harmony import */ var lodash_noop__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! lodash/noop */ \"./node_modules/lodash/noop.js\");\n/* harmony import */ var lodash_noop__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(lodash_noop__WEBPACK_IMPORTED_MODULE_2__);\n/* harmony import */ var react_bootstrap_typeahead__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! react-bootstrap-typeahead */ \"./node_modules/react-bootstrap-typeahead/lib/index.js\");\n/* harmony import */ var react_bootstrap_typeahead__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(react_bootstrap_typeahead__WEBPACK_IMPORTED_MODULE_3__);\n/* harmony import */ var _User_UserPicture__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./User/UserPicture */ \"./src/client/js/components/User/UserPicture.jsx\");\n/* harmony import */ var _PageList_PageListMeta__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./PageList/PageListMeta */ \"./src/client/js/components/PageList/PageListMeta.jsx\");\n/* harmony import */ var _PageList_PagePathLabel__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./PageList/PagePathLabel */ \"./src/client/js/components/PageList/PagePathLabel.jsx\");\n/* harmony import */ var _services_AppContainer__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ../services/AppContainer */ \"./src/client/js/services/AppContainer.js\");\n/* harmony import */ var _UnstatedUtils__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ./UnstatedUtils */ \"./src/client/js/components/UnstatedUtils.jsx\");\nfunction _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\n\n\n\n\n\n\n\n\n\n\nclass SearchTypeahead extends react__WEBPACK_IMPORTED_MODULE_0___default.a.Component {\n constructor(props) {\n super(props);\n this.state = {\n input: this.props.keywordOnInit,\n pages: [],\n isLoading: false,\n searchError: null\n };\n this.restoreInitialData = this.restoreInitialData.bind(this);\n this.clearKeyword = this.clearKeyword.bind(this);\n this.changeKeyword = this.changeKeyword.bind(this);\n this.search = this.search.bind(this);\n this.onInputChange = this.onInputChange.bind(this);\n this.onKeyDown = this.onKeyDown.bind(this);\n this.dispatchSubmit = this.dispatchSubmit.bind(this);\n this.getEmptyLabel = this.getEmptyLabel.bind(this);\n this.getResetFormButton = this.getResetFormButton.bind(this);\n this.renderMenuItemChildren = this.renderMenuItemChildren.bind(this);\n this.getTypeahead = this.getTypeahead.bind(this);\n }\n /**\n * Get instance of AsyncTypeahead\n */\n\n\n getTypeahead() {\n return this.typeahead ? this.typeahead.getInstance() : null;\n }\n\n componentDidMount() {}\n\n componentWillUnmount() {}\n /**\n * Initialize keywordyword\n */\n\n\n restoreInitialData() {\n this.changeKeyword(this.props.keywordOnInit);\n }\n /**\n * clear keyword\n */\n\n\n clearKeyword(text) {\n this.changeKeyword('');\n }\n /**\n * change keyword\n */\n\n\n changeKeyword(text) {\n // see https://github.com/ericgio/react-bootstrap-typeahead/issues/266#issuecomment-414987723\n const instance = this.typeahead.getInstance();\n instance.clear();\n instance.setState({\n text\n });\n }\n\n search(keyword) {\n if (keyword === '') {\n return;\n }\n\n this.setState({\n isLoading: true\n });\n this.props.appContainer.apiGet('/search', {\n q: keyword\n }).then(res => {\n this.onSearchSuccess(res);\n }).catch(err => {\n this.onSearchError(err);\n });\n }\n /**\n * Callback function which is occured when search is exit successfully\n * @param {*} pages\n */\n\n\n onSearchSuccess(res) {\n this.setState({\n isLoading: false,\n pages: res.data\n });\n\n if (this.props.onSearchSuccess != null) {\n this.props.onSearchSuccess(res);\n }\n }\n /**\n * Callback function which is occured when search is exit abnormaly\n * @param {*} err\n */\n\n\n onSearchError(err) {\n this.setState({\n isLoading: false,\n searchError: err\n });\n\n if (this.props.onSearchError != null) {\n this.props.onSearchError(err);\n }\n }\n\n onInputChange(text) {\n this.setState({\n input: text\n });\n this.props.onInputChange(text);\n\n if (text === '') {\n this.setState({\n pages: []\n });\n }\n }\n\n onKeyDown(event) {\n if (event.keyCode === 13) {\n this.dispatchSubmit();\n }\n }\n\n dispatchSubmit() {\n if (this.props.onSubmit != null) {\n this.props.onSubmit(this.state.input);\n }\n }\n\n getEmptyLabel() {\n const {\n emptyLabel,\n helpElement\n } = this.props;\n const {\n input\n } = this.state; // show help element if empty\n\n if (input.length === 0) {\n return helpElement;\n } // use props.emptyLabel as is if defined\n\n\n if (emptyLabel !== undefined) {\n return this.props.emptyLabel;\n }\n\n let emptyLabelExceptError = 'No matches found on title...';\n\n if (this.props.emptyLabelExceptError !== undefined) {\n emptyLabelExceptError = this.props.emptyLabelExceptError;\n }\n\n return this.state.searchError !== null ? 'Error on searching.' : emptyLabelExceptError;\n }\n /**\n * Get restore form button to initialize button\n */\n\n\n getResetFormButton() {\n const isClearBtn = this.props.behaviorOfResetBtn === 'clear';\n const initialKeyword = isClearBtn ? '' : this.props.keywordOnInit;\n const isHidden = this.state.input === initialKeyword;\n const resetForm = isClearBtn ? this.clearKeyword : this.restoreInitialData;\n return isHidden ? react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"span\", null) : react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"button\", {\n type: \"button\",\n className: \"btn btn-link search-clear\",\n onMouseDown: resetForm\n }, react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"i\", {\n className: \"icon-close\"\n }));\n }\n\n renderMenuItemChildren(option, props, index) {\n const page = option;\n return react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"span\", null, react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(_User_UserPicture__WEBPACK_IMPORTED_MODULE_4__[\"default\"], {\n user: page.lastUpdateUser,\n size: \"sm\",\n noLink: true\n }), react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"span\", {\n className: \"ml-1 text-break text-wrap\"\n }, react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(_PageList_PagePathLabel__WEBPACK_IMPORTED_MODULE_6__[\"default\"], {\n page: page\n })), react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(_PageList_PageListMeta__WEBPACK_IMPORTED_MODULE_5__[\"default\"], {\n page: page\n }));\n }\n\n render() {\n const defaultSelected = this.props.keywordOnInit !== '' ? [{\n path: this.props.keywordOnInit\n }] : [];\n const inputProps = {\n autoComplete: 'off'\n };\n\n if (this.props.inputName != null) {\n inputProps.name = this.props.inputName;\n }\n\n const resetFormButton = this.getResetFormButton();\n return react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"div\", {\n className: \"search-typeahead\"\n }, react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(react_bootstrap_typeahead__WEBPACK_IMPORTED_MODULE_3__[\"AsyncTypeahead\"], _extends({}, this.props, {\n id: \"search-typeahead-asynctypeahead\",\n ref: c => {\n this.typeahead = c;\n },\n inputProps: inputProps,\n isLoading: this.state.isLoading,\n labelKey: \"path\",\n minLength: 0,\n options: this.state.pages // Search result (Some page names)\n ,\n promptText: this.props.helpElement,\n emptyLabel: this.getEmptyLabel(),\n align: \"left\",\n submitFormOnEnter: true,\n onSearch: this.search,\n onInputChange: this.onInputChange,\n onKeyDown: this.onKeyDown,\n renderMenuItemChildren: this.renderMenuItemChildren,\n caseSensitive: false,\n defaultSelected: defaultSelected,\n autoFocus: this.props.autoFocus,\n onBlur: this.props.onBlur,\n onFocus: this.props.onFocus\n })), resetFormButton);\n }\n\n}\n/**\n * Wrapper component for using unstated\n */\n\n\nconst SearchTypeaheadWrapper = Object(_UnstatedUtils__WEBPACK_IMPORTED_MODULE_8__[\"withUnstatedContainers\"])(SearchTypeahead, [_services_AppContainer__WEBPACK_IMPORTED_MODULE_7__[\"default\"]]);\n/**\n * Properties\n */\n\nSearchTypeahead.propTypes = {\n appContainer: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.instanceOf(_services_AppContainer__WEBPACK_IMPORTED_MODULE_7__[\"default\"]).isRequired,\n onSearchSuccess: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.func,\n onSearchError: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.func,\n onChange: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.func,\n onBlur: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.func,\n onFocus: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.func,\n onSubmit: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.func,\n onInputChange: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.func,\n inputName: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.string,\n emptyLabel: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.string,\n emptyLabelExceptError: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.string,\n placeholder: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.string,\n keywordOnInit: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.string,\n helpElement: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.object,\n autoFocus: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.bool,\n behaviorOfResetBtn: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.oneOf(['restore', 'clear'])\n};\n/**\n * Properties\n */\n\nSearchTypeahead.defaultProps = {\n onSearchSuccess: lodash_noop__WEBPACK_IMPORTED_MODULE_2__[\"noop\"],\n onSearchError: lodash_noop__WEBPACK_IMPORTED_MODULE_2__[\"noop\"],\n onChange: lodash_noop__WEBPACK_IMPORTED_MODULE_2__[\"noop\"],\n placeholder: '',\n keywordOnInit: '',\n behaviorOfResetBtn: 'restore',\n autoFocus: false,\n onInputChange: () => {}\n};\n/* harmony default export */ __webpack_exports__[\"default\"] = (SearchTypeaheadWrapper);//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9zcmMvY2xpZW50L2pzL2NvbXBvbmVudHMvU2VhcmNoVHlwZWFoZWFkLmpzeC5qcyIsInNvdXJjZXMiOlsid2VicGFjazovLy8uL3NyYy9jbGllbnQvanMvY29tcG9uZW50cy9TZWFyY2hUeXBlYWhlYWQuanN4PzZkMGEiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IFJlYWN0IGZyb20gJ3JlYWN0JztcbmltcG9ydCBQcm9wVHlwZXMgZnJvbSAncHJvcC10eXBlcyc7XG5cbmltcG9ydCB7IG5vb3AgfSBmcm9tICdsb2Rhc2gvbm9vcCc7XG5pbXBvcnQgeyBBc3luY1R5cGVhaGVhZCB9IGZyb20gJ3JlYWN0LWJvb3RzdHJhcC10eXBlYWhlYWQnO1xuXG5pbXBvcnQgVXNlclBpY3R1cmUgZnJvbSAnLi9Vc2VyL1VzZXJQaWN0dXJlJztcbmltcG9ydCBQYWdlTGlzdE1ldGEgZnJvbSAnLi9QYWdlTGlzdC9QYWdlTGlzdE1ldGEnO1xuaW1wb3J0IFBhZ2VQYXRoTGFiZWwgZnJvbSAnLi9QYWdlTGlzdC9QYWdlUGF0aExhYmVsJztcbmltcG9ydCBBcHBDb250YWluZXIgZnJvbSAnLi4vc2VydmljZXMvQXBwQ29udGFpbmVyJztcbmltcG9ydCB7IHdpdGhVbnN0YXRlZENvbnRhaW5lcnMgfSBmcm9tICcuL1Vuc3RhdGVkVXRpbHMnO1xuXG5jbGFzcyBTZWFyY2hUeXBlYWhlYWQgZXh0ZW5kcyBSZWFjdC5Db21wb25lbnQge1xuXG4gIGNvbnN0cnVjdG9yKHByb3BzKSB7XG5cbiAgICBzdXBlcihwcm9wcyk7XG5cbiAgICB0aGlzLnN0YXRlID0ge1xuICAgICAgaW5wdXQ6IHRoaXMucHJvcHMua2V5d29yZE9uSW5pdCxcbiAgICAgIHBhZ2VzOiBbXSxcbiAgICAgIGlzTG9hZGluZzogZmFsc2UsXG4gICAgICBzZWFyY2hFcnJvcjogbnVsbCxcbiAgICB9O1xuXG4gICAgdGhpcy5yZXN0b3JlSW5pdGlhbERhdGEgPSB0aGlzLnJlc3RvcmVJbml0aWFsRGF0YS5iaW5kKHRoaXMpO1xuICAgIHRoaXMuY2xlYXJLZXl3b3JkID0gdGhpcy5jbGVhcktleXdvcmQuYmluZCh0aGlzKTtcbiAgICB0aGlzLmNoYW5nZUtleXdvcmQgPSB0aGlzLmNoYW5nZUtleXdvcmQuYmluZCh0aGlzKTtcbiAgICB0aGlzLnNlYXJjaCA9IHRoaXMuc2VhcmNoLmJpbmQodGhpcyk7XG4gICAgdGhpcy5vbklucHV0Q2hhbmdlID0gdGhpcy5vbklucHV0Q2hhbmdlLmJpbmQodGhpcyk7XG4gICAgdGhpcy5vbktleURvd24gPSB0aGlzLm9uS2V5RG93bi5iaW5kKHRoaXMpO1xuICAgIHRoaXMuZGlzcGF0Y2hTdWJtaXQgPSB0aGlzLmRpc3BhdGNoU3VibWl0LmJpbmQodGhpcyk7XG4gICAgdGhpcy5nZXRFbXB0eUxhYmVsID0gdGhpcy5nZXRFbXB0eUxhYmVsLmJpbmQodGhpcyk7XG4gICAgdGhpcy5nZXRSZXNldEZvcm1CdXR0b24gPSB0aGlzLmdldFJlc2V0Rm9ybUJ1dHRvbi5iaW5kKHRoaXMpO1xuICAgIHRoaXMucmVuZGVyTWVudUl0ZW1DaGlsZHJlbiA9IHRoaXMucmVuZGVyTWVudUl0ZW1DaGlsZHJlbi5iaW5kKHRoaXMpO1xuICAgIHRoaXMuZ2V0VHlwZWFoZWFkID0gdGhpcy5nZXRUeXBlYWhlYWQuYmluZCh0aGlzKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBHZXQgaW5zdGFuY2Ugb2YgQXN5bmNUeXBlYWhlYWRcbiAgICovXG4gIGdldFR5cGVhaGVhZCgpIHtcbiAgICByZXR1cm4gdGhpcy50eXBlYWhlYWQgPyB0aGlzLnR5cGVhaGVhZC5nZXRJbnN0YW5jZSgpIDogbnVsbDtcbiAgfVxuXG4gIGNvbXBvbmVudERpZE1vdW50KCkge1xuICB9XG5cbiAgY29tcG9uZW50V2lsbFVubW91bnQoKSB7XG4gIH1cblxuICAvKipcbiAgICogSW5pdGlhbGl6ZSBrZXl3b3JkeXdvcmRcbiAgICovXG4gIHJlc3RvcmVJbml0aWFsRGF0YSgpIHtcbiAgICB0aGlzLmNoYW5nZUtleXdvcmQodGhpcy5wcm9wcy5rZXl3b3JkT25Jbml0KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBjbGVhciBrZXl3b3JkXG4gICAqL1xuICBjbGVhcktleXdvcmQodGV4dCkge1xuICAgIHRoaXMuY2hhbmdlS2V5d29yZCgnJyk7XG4gIH1cblxuICAvKipcbiAgICogY2hhbmdlIGtleXdvcmRcbiAgICovXG4gIGNoYW5nZUtleXdvcmQodGV4dCkge1xuICAgIC8vIHNlZSBodHRwczovL2dpdGh1Yi5jb20vZXJpY2dpby9yZWFjdC1ib290c3RyYXAtdHlwZWFoZWFkL2lzc3Vlcy8yNjYjaXNzdWVjb21tZW50LTQxNDk4NzcyM1xuICAgIGNvbnN0IGluc3RhbmNlID0gdGhpcy50eXBlYWhlYWQuZ2V0SW5zdGFuY2UoKTtcbiAgICBpbnN0YW5jZS5jbGVhcigpO1xuICAgIGluc3RhbmNlLnNldFN0YXRlKHsgdGV4dCB9KTtcbiAgfVxuXG4gIHNlYXJjaChrZXl3b3JkKSB7XG5cbiAgICBpZiAoa2V5d29yZCA9PT0gJycpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICB0aGlzLnNldFN0YXRlKHsgaXNMb2FkaW5nOiB0cnVlIH0pO1xuXG4gICAgdGhpcy5wcm9wcy5hcHBDb250YWluZXIuYXBpR2V0KCcvc2VhcmNoJywgeyBxOiBrZXl3b3JkIH0pXG4gICAgICAudGhlbigocmVzKSA9PiB7IHRoaXMub25TZWFyY2hTdWNjZXNzKHJlcykgfSlcbiAgICAgIC5jYXRjaCgoZXJyKSA9PiB7IHRoaXMub25TZWFyY2hFcnJvcihlcnIpIH0pO1xuICB9XG5cbiAgLyoqXG4gICAqIENhbGxiYWNrIGZ1bmN0aW9uIHdoaWNoIGlzIG9jY3VyZWQgd2hlbiBzZWFyY2ggaXMgZXhpdCBzdWNjZXNzZnVsbHlcbiAgICogQHBhcmFtIHsqfSBwYWdlc1xuICAgKi9cbiAgb25TZWFyY2hTdWNjZXNzKHJlcykge1xuICAgIHRoaXMuc2V0U3RhdGUoe1xuICAgICAgaXNMb2FkaW5nOiBmYWxzZSxcbiAgICAgIHBhZ2VzOiByZXMuZGF0YSxcbiAgICB9KTtcbiAgICBpZiAodGhpcy5wcm9wcy5vblNlYXJjaFN1Y2Nlc3MgIT0gbnVsbCkge1xuICAgICAgdGhpcy5wcm9wcy5vblNlYXJjaFN1Y2Nlc3MocmVzKTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogQ2FsbGJhY2sgZnVuY3Rpb24gd2hpY2ggaXMgb2NjdXJlZCB3aGVuIHNlYXJjaCBpcyBleGl0IGFibm9ybWFseVxuICAgKiBAcGFyYW0geyp9IGVyclxuICAgKi9cbiAgb25TZWFyY2hFcnJvcihlcnIpIHtcbiAgICB0aGlzLnNldFN0YXRlKHtcbiAgICAgIGlzTG9hZGluZzogZmFsc2UsXG4gICAgICBzZWFyY2hFcnJvcjogZXJyLFxuICAgIH0pO1xuICAgIGlmICh0aGlzLnByb3BzLm9uU2VhcmNoRXJyb3IgIT0gbnVsbCkge1xuICAgICAgdGhpcy5wcm9wcy5vblNlYXJjaEVycm9yKGVycik7XG4gICAgfVxuICB9XG5cbiAgb25JbnB1dENoYW5nZSh0ZXh0KSB7XG4gICAgdGhpcy5zZXRTdGF0ZSh7IGlucHV0OiB0ZXh0IH0pO1xuICAgIHRoaXMucHJvcHMub25JbnB1dENoYW5nZSh0ZXh0KTtcbiAgICBpZiAodGV4dCA9PT0gJycpIHtcbiAgICAgIHRoaXMuc2V0U3RhdGUoeyBwYWdlczogW10gfSk7XG4gICAgfVxuICB9XG5cbiAgb25LZXlEb3duKGV2ZW50KSB7XG4gICAgaWYgKGV2ZW50LmtleUNvZGUgPT09IDEzKSB7XG4gICAgICB0aGlzLmRpc3BhdGNoU3VibWl0KCk7XG4gICAgfVxuICB9XG5cbiAgZGlzcGF0Y2hTdWJtaXQoKSB7XG4gICAgaWYgKHRoaXMucHJvcHMub25TdWJtaXQgIT0gbnVsbCkge1xuICAgICAgdGhpcy5wcm9wcy5vblN1Ym1pdCh0aGlzLnN0YXRlLmlucHV0KTtcbiAgICB9XG4gIH1cblxuICBnZXRFbXB0eUxhYmVsKCkge1xuICAgIGNvbnN0IHsgZW1wdHlMYWJlbCwgaGVscEVsZW1lbnQgfSA9IHRoaXMucHJvcHM7XG4gICAgY29uc3QgeyBpbnB1dCB9ID0gdGhpcy5zdGF0ZTtcblxuICAgIC8vIHNob3cgaGVscCBlbGVtZW50IGlmIGVtcHR5XG4gICAgaWYgKGlucHV0Lmxlbmd0aCA9PT0gMCkge1xuICAgICAgcmV0dXJuIGhlbHBFbGVtZW50O1xuICAgIH1cblxuICAgIC8vIHVzZSBwcm9wcy5lbXB0eUxhYmVsIGFzIGlzIGlmIGRlZmluZWRcbiAgICBpZiAoZW1wdHlMYWJlbCAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICByZXR1cm4gdGhpcy5wcm9wcy5lbXB0eUxhYmVsO1xuICAgIH1cblxuICAgIGxldCBlbXB0eUxhYmVsRXhjZXB0RXJyb3IgPSAnTm8gbWF0Y2hlcyBmb3VuZCBvbiB0aXRsZS4uLic7XG4gICAgaWYgKHRoaXMucHJvcHMuZW1wdHlMYWJlbEV4Y2VwdEVycm9yICE9PSB1bmRlZmluZWQpIHtcbiAgICAgIGVtcHR5TGFiZWxFeGNlcHRFcnJvciA9IHRoaXMucHJvcHMuZW1wdHlMYWJlbEV4Y2VwdEVycm9yO1xuICAgIH1cblxuICAgIHJldHVybiAodGhpcy5zdGF0ZS5zZWFyY2hFcnJvciAhPT0gbnVsbClcbiAgICAgID8gJ0Vycm9yIG9uIHNlYXJjaGluZy4nXG4gICAgICA6IGVtcHR5TGFiZWxFeGNlcHRFcnJvcjtcbiAgfVxuXG4gIC8qKlxuICAgKiBHZXQgcmVzdG9yZSBmb3JtIGJ1dHRvbiB0byBpbml0aWFsaXplIGJ1dHRvblxuICAgKi9cbiAgZ2V0UmVzZXRGb3JtQnV0dG9uKCkge1xuICAgIGNvbnN0IGlzQ2xlYXJCdG4gPSB0aGlzLnByb3BzLmJlaGF2aW9yT2ZSZXNldEJ0biA9PT0gJ2NsZWFyJztcbiAgICBjb25zdCBpbml0aWFsS2V5d29yZCA9IGlzQ2xlYXJCdG4gPyAnJyA6IHRoaXMucHJvcHMua2V5d29yZE9uSW5pdDtcbiAgICBjb25zdCBpc0hpZGRlbiA9IHRoaXMuc3RhdGUuaW5wdXQgPT09IGluaXRpYWxLZXl3b3JkO1xuICAgIGNvbnN0IHJlc2V0Rm9ybSA9IGlzQ2xlYXJCdG4gPyB0aGlzLmNsZWFyS2V5d29yZCA6IHRoaXMucmVzdG9yZUluaXRpYWxEYXRhO1xuXG4gICAgcmV0dXJuIGlzSGlkZGVuID8gKFxuICAgICAgPHNwYW4gLz5cbiAgICApIDogKFxuICAgICAgPGJ1dHRvbiB0eXBlPVwiYnV0dG9uXCIgY2xhc3NOYW1lPVwiYnRuIGJ0bi1saW5rIHNlYXJjaC1jbGVhclwiIG9uTW91c2VEb3duPXtyZXNldEZvcm19PlxuICAgICAgICA8aSBjbGFzc05hbWU9XCJpY29uLWNsb3NlXCIgLz5cbiAgICAgIDwvYnV0dG9uPlxuICAgICk7XG4gIH1cblxuICByZW5kZXJNZW51SXRlbUNoaWxkcmVuKG9wdGlvbiwgcHJvcHMsIGluZGV4KSB7XG4gICAgY29uc3QgcGFnZSA9IG9wdGlvbjtcbiAgICByZXR1cm4gKFxuICAgICAgPHNwYW4+XG4gICAgICAgIDxVc2VyUGljdHVyZSB1c2VyPXtwYWdlLmxhc3RVcGRhdGVVc2VyfSBzaXplPVwic21cIiBub0xpbmsgLz5cbiAgICAgICAgPHNwYW4gY2xhc3NOYW1lPVwibWwtMSB0ZXh0LWJyZWFrIHRleHQtd3JhcFwiPjxQYWdlUGF0aExhYmVsIHBhZ2U9e3BhZ2V9IC8+PC9zcGFuPlxuICAgICAgICA8UGFnZUxpc3RNZXRhIHBhZ2U9e3BhZ2V9IC8+XG4gICAgICA8L3NwYW4+XG4gICAgKTtcbiAgfVxuXG4gIHJlbmRlcigpIHtcbiAgICBjb25zdCBkZWZhdWx0U2VsZWN0ZWQgPSAodGhpcy5wcm9wcy5rZXl3b3JkT25Jbml0ICE9PSAnJylcbiAgICAgID8gW3sgcGF0aDogdGhpcy5wcm9wcy5rZXl3b3JkT25Jbml0IH1dXG4gICAgICA6IFtdO1xuICAgIGNvbnN0IGlucHV0UHJvcHMgPSB7IGF1dG9Db21wbGV0ZTogJ29mZicgfTtcbiAgICBpZiAodGhpcy5wcm9wcy5pbnB1dE5hbWUgIT0gbnVsbCkge1xuICAgICAgaW5wdXRQcm9wcy5uYW1lID0gdGhpcy5wcm9wcy5pbnB1dE5hbWU7XG4gICAgfVxuXG4gICAgY29uc3QgcmVzZXRGb3JtQnV0dG9uID0gdGhpcy5nZXRSZXNldEZvcm1CdXR0b24oKTtcblxuICAgIHJldHVybiAoXG4gICAgICA8ZGl2IGNsYXNzTmFtZT1cInNlYXJjaC10eXBlYWhlYWRcIj5cbiAgICAgICAgPEFzeW5jVHlwZWFoZWFkXG4gICAgICAgICAgey4uLnRoaXMucHJvcHN9XG4gICAgICAgICAgaWQ9XCJzZWFyY2gtdHlwZWFoZWFkLWFzeW5jdHlwZWFoZWFkXCJcbiAgICAgICAgICByZWY9eyhjKSA9PiB7IHRoaXMudHlwZWFoZWFkID0gYyB9fVxuICAgICAgICAgIGlucHV0UHJvcHM9e2lucHV0UHJvcHN9XG4gICAgICAgICAgaXNMb2FkaW5nPXt0aGlzLnN0YXRlLmlzTG9hZGluZ31cbiAgICAgICAgICBsYWJlbEtleT1cInBhdGhcIlxuICAgICAgICAgIG1pbkxlbmd0aD17MH1cbiAgICAgICAgICBvcHRpb25zPXt0aGlzLnN0YXRlLnBhZ2VzfSAvLyBTZWFyY2ggcmVzdWx0IChTb21lIHBhZ2UgbmFtZXMpXG4gICAgICAgICAgcHJvbXB0VGV4dD17dGhpcy5wcm9wcy5oZWxwRWxlbWVudH1cbiAgICAgICAgICBlbXB0eUxhYmVsPXt0aGlzLmdldEVtcHR5TGFiZWwoKX1cbiAgICAgICAgICBhbGlnbj1cImxlZnRcIlxuICAgICAgICAgIHN1Ym1pdEZvcm1PbkVudGVyXG4gICAgICAgICAgb25TZWFyY2g9e3RoaXMuc2VhcmNofVxuICAgICAgICAgIG9uSW5wdXRDaGFuZ2U9e3RoaXMub25JbnB1dENoYW5nZX1cbiAgICAgICAgICBvbktleURvd249e3RoaXMub25LZXlEb3dufVxuICAgICAgICAgIHJlbmRlck1lbnVJdGVtQ2hpbGRyZW49e3RoaXMucmVuZGVyTWVudUl0ZW1DaGlsZHJlbn1cbiAgICAgICAgICBjYXNlU2Vuc2l0aXZlPXtmYWxzZX1cbiAgICAgICAgICBkZWZhdWx0U2VsZWN0ZWQ9e2RlZmF1bHRTZWxlY3RlZH1cbiAgICAgICAgICBhdXRvRm9jdXM9e3RoaXMucHJvcHMuYXV0b0ZvY3VzfVxuICAgICAgICAgIG9uQmx1cj17dGhpcy5wcm9wcy5vbkJsdXJ9XG4gICAgICAgICAgb25Gb2N1cz17dGhpcy5wcm9wcy5vbkZvY3VzfVxuICAgICAgICAvPlxuICAgICAgICB7cmVzZXRGb3JtQnV0dG9ufVxuICAgICAgPC9kaXY+XG4gICAgKTtcbiAgfVxuXG59XG5cbi8qKlxuICogV3JhcHBlciBjb21wb25lbnQgZm9yIHVzaW5nIHVuc3RhdGVkXG4gKi9cbmNvbnN0IFNlYXJjaFR5cGVhaGVhZFdyYXBwZXIgPSB3aXRoVW5zdGF0ZWRDb250YWluZXJzKFNlYXJjaFR5cGVhaGVhZCwgW0FwcENvbnRhaW5lcl0pO1xuXG4vKipcbiAqIFByb3BlcnRpZXNcbiAqL1xuU2VhcmNoVHlwZWFoZWFkLnByb3BUeXBlcyA9IHtcbiAgYXBwQ29udGFpbmVyOiBQcm9wVHlwZXMuaW5zdGFuY2VPZihBcHBDb250YWluZXIpLmlzUmVxdWlyZWQsXG5cbiAgb25TZWFyY2hTdWNjZXNzOiBQcm9wVHlwZXMuZnVuYyxcbiAgb25TZWFyY2hFcnJvcjogICBQcm9wVHlwZXMuZnVuYyxcbiAgb25DaGFuZ2U6ICAgICAgICBQcm9wVHlwZXMuZnVuYyxcbiAgb25CbHVyOiAgICAgICAgICBQcm9wVHlwZXMuZnVuYyxcbiAgb25Gb2N1czogICAgICAgICBQcm9wVHlwZXMuZnVuYyxcbiAgb25TdWJtaXQ6ICAgICAgICBQcm9wVHlwZXMuZnVuYyxcbiAgb25JbnB1dENoYW5nZTogICBQcm9wVHlwZXMuZnVuYyxcbiAgaW5wdXROYW1lOiAgICAgICBQcm9wVHlwZXMuc3RyaW5nLFxuICBlbXB0eUxhYmVsOiAgICAgIFByb3BUeXBlcy5zdHJpbmcsXG4gIGVtcHR5TGFiZWxFeGNlcHRFcnJvcjogUHJvcFR5cGVzLnN0cmluZyxcbiAgcGxhY2Vob2xkZXI6ICAgICBQcm9wVHlwZXMuc3RyaW5nLFxuICBrZXl3b3JkT25Jbml0OiAgIFByb3BUeXBlcy5zdHJpbmcsXG4gIGhlbHBFbGVtZW50OiAgICAgUHJvcFR5cGVzLm9iamVjdCxcbiAgYXV0b0ZvY3VzOiAgICAgICBQcm9wVHlwZXMuYm9vbCxcbiAgYmVoYXZpb3JPZlJlc2V0QnRuOiBQcm9wVHlwZXMub25lT2YoWydyZXN0b3JlJywgJ2NsZWFyJ10pLFxufTtcblxuLyoqXG4gKiBQcm9wZXJ0aWVzXG4gKi9cblNlYXJjaFR5cGVhaGVhZC5kZWZhdWx0UHJvcHMgPSB7XG4gIG9uU2VhcmNoU3VjY2Vzczogbm9vcCxcbiAgb25TZWFyY2hFcnJvcjogICBub29wLFxuICBvbkNoYW5nZTogICAgICAgIG5vb3AsXG4gIHBsYWNlaG9sZGVyOiAgICAgJycsXG4gIGtleXdvcmRPbkluaXQ6ICAgJycsXG4gIGJlaGF2aW9yT2ZSZXNldEJ0bjogJ3Jlc3RvcmUnLFxuICBhdXRvRm9jdXM6ICAgICAgIGZhbHNlLFxuICBvbklucHV0Q2hhbmdlOiAoKSA9PiB7fSxcbn07XG5cbmV4cG9ydCBkZWZhdWx0IFNlYXJjaFR5cGVhaGVhZFdyYXBwZXI7XG4iXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQTtBQUNBO0FBRUE7QUFDQTtBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBRUE7QUFFQTtBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFKQTtBQU9BO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUVBOzs7OztBQUdBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUVBO0FBR0E7Ozs7O0FBR0E7QUFDQTtBQUNBO0FBRUE7Ozs7O0FBR0E7QUFDQTtBQUNBO0FBRUE7Ozs7O0FBR0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUFBO0FBQUE7QUFDQTtBQUNBO0FBQ0E7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQUE7QUFBQTtBQUVBO0FBQUE7QUFBQTtBQUNBO0FBQUE7QUFDQTtBQUFBO0FBQ0E7QUFFQTs7Ozs7O0FBSUE7QUFDQTtBQUNBO0FBQ0E7QUFGQTtBQUNBO0FBR0E7QUFDQTtBQUNBO0FBQ0E7QUFFQTs7Ozs7O0FBSUE7QUFDQTtBQUNBO0FBQ0E7QUFGQTtBQUNBO0FBR0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFBQTtBQUFBO0FBQ0E7QUFDQTtBQUFBO0FBQ0E7QUFBQTtBQUFBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUFBO0FBQUE7QUFBQTtBQUNBO0FBQUE7QUFBQTtBQUNBO0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUFBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFHQTtBQUVBOzs7OztBQUdBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFFQTtBQUdBO0FBQUE7QUFBQTtBQUFBO0FBQ0E7QUFBQTtBQUdBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFFQTtBQUFBO0FBQUE7QUFBQTtBQUNBO0FBQUE7QUFBQTtBQUFBO0FBQ0E7QUFBQTtBQUdBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFBQTtBQUVBO0FBQUE7QUFBQTtBQUNBO0FBQUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUVBO0FBQ0E7QUFBQTtBQUdBO0FBQ0E7QUFBQTtBQUFBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQVJBO0FBU0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFyQkE7QUEwQkE7QUFDQTtBQXpOQTtBQTROQTs7Ozs7QUFHQTtBQUVBOzs7O0FBR0E7QUFDQTtBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQWpCQTtBQW9CQTs7OztBQUdBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQVJBO0FBV0EiLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./src/client/js/components/SearchTypeahead.jsx\n");
- /***/ }),
- /***/ "./src/client/js/components/ShareLink/ShareLinkList.jsx":
- /*!**************************************************************!*\
- !*** ./src/client/js/components/ShareLink/ShareLinkList.jsx ***!
- \**************************************************************/
- /*! exports provided: default */
- /***/ (function(module, __webpack_exports__, __webpack_require__) {
- "use strict";
- eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"./node_modules/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! prop-types */ \"./node_modules/prop-types/index.js\");\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(prop_types__WEBPACK_IMPORTED_MODULE_1__);\n/* harmony import */ var react_i18next__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! react-i18next */ \"./node_modules/react-i18next/dist/es/index.js\");\n/* harmony import */ var date_fns_format__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! date-fns/format */ \"./node_modules/date-fns/esm/format/index.js\");\n/* harmony import */ var _UnstatedUtils__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../UnstatedUtils */ \"./src/client/js/components/UnstatedUtils.jsx\");\n/* harmony import */ var _services_AppContainer__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../../services/AppContainer */ \"./src/client/js/services/AppContainer.js\");\n/* harmony import */ var _Page_CopyDropdown__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../Page/CopyDropdown */ \"./src/client/js/components/Page/CopyDropdown.jsx\");\n\n\n\n\n\n\n\n\nconst ShareLinkList = props => {\n const {\n t\n } = props;\n\n function deleteLinkHandler(shareLinkId) {\n if (props.onClickDeleteButton == null) {\n return;\n }\n\n props.onClickDeleteButton(shareLinkId);\n }\n\n function renderShareLinks() {\n return react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(react__WEBPACK_IMPORTED_MODULE_0___default.a.Fragment, null, props.shareLinks.map(shareLink => react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"tr\", {\n key: shareLink._id\n }, react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"td\", null, react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"div\", {\n className: \"d-flex\"\n }, react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"span\", {\n className: \"mr-auto my-auto\"\n }, shareLink._id), react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(_Page_CopyDropdown__WEBPACK_IMPORTED_MODULE_6__[\"default\"], {\n pagePath: shareLink.relatedPage.path,\n dropdownToggleId: `copydropdown-${shareLink._id}`,\n pageId: shareLink._id,\n isShareLinkMode: true\n }, \"Copy Link\"))), props.isAdmin && react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"td\", null, react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"a\", {\n href: shareLink.relatedPage.path\n }, shareLink.relatedPage.path)), react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"td\", null, shareLink.expiredAt && react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"span\", null, Object(date_fns_format__WEBPACK_IMPORTED_MODULE_3__[\"default\"])(new Date(shareLink.expiredAt), 'yyyy-MM-dd HH:mm'))), react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"td\", null, shareLink.description), react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"td\", null, react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"button\", {\n className: \"btn btn-outline-warning\",\n type: \"button\",\n onClick: () => deleteLinkHandler(shareLink._id)\n }, react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"i\", {\n className: \"icon-trash\"\n }), t('Delete'))))));\n }\n\n return react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"div\", {\n className: \"table-responsive\"\n }, react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"table\", {\n className: \"table table-bordered\"\n }, react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"thead\", null, react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"tr\", null, react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"th\", null, t('share_links.Share Link')), props.isAdmin && react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"th\", null, t('share_links.Page Path')), react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"th\", null, t('share_links.expire')), react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"th\", null, t('share_links.description')), react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"th\", null))), react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"tbody\", null, renderShareLinks())));\n};\n/**\n * Wrapper component for using unstated\n */\n\n\nconst ShareLinkListWrapper = Object(_UnstatedUtils__WEBPACK_IMPORTED_MODULE_4__[\"withUnstatedContainers\"])(ShareLinkList, [_services_AppContainer__WEBPACK_IMPORTED_MODULE_5__[\"default\"]]);\nShareLinkList.propTypes = {\n t: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.func.isRequired,\n // i18next\n appContainer: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.instanceOf(_services_AppContainer__WEBPACK_IMPORTED_MODULE_5__[\"default\"]).isRequired,\n shareLinks: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.array.isRequired,\n onClickDeleteButton: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.func,\n isAdmin: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.bool\n};\n/* harmony default export */ __webpack_exports__[\"default\"] = (Object(react_i18next__WEBPACK_IMPORTED_MODULE_2__[\"withTranslation\"])()(ShareLinkListWrapper));//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9zcmMvY2xpZW50L2pzL2NvbXBvbmVudHMvU2hhcmVMaW5rL1NoYXJlTGlua0xpc3QuanN4LmpzIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vLy4vc3JjL2NsaWVudC9qcy9jb21wb25lbnRzL1NoYXJlTGluay9TaGFyZUxpbmtMaXN0LmpzeD8yNjA3Il0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBSZWFjdCBmcm9tICdyZWFjdCc7XG5pbXBvcnQgUHJvcFR5cGVzIGZyb20gJ3Byb3AtdHlwZXMnO1xuXG5cbmltcG9ydCB7IHdpdGhUcmFuc2xhdGlvbiB9IGZyb20gJ3JlYWN0LWkxOG5leHQnO1xuaW1wb3J0IGRhdGVGbnNGb3JtYXQgZnJvbSAnZGF0ZS1mbnMvZm9ybWF0JztcblxuaW1wb3J0IHsgd2l0aFVuc3RhdGVkQ29udGFpbmVycyB9IGZyb20gJy4uL1Vuc3RhdGVkVXRpbHMnO1xuXG5pbXBvcnQgQXBwQ29udGFpbmVyIGZyb20gJy4uLy4uL3NlcnZpY2VzL0FwcENvbnRhaW5lcic7XG5pbXBvcnQgQ29weURyb3Bkb3duIGZyb20gJy4uL1BhZ2UvQ29weURyb3Bkb3duJztcblxuY29uc3QgU2hhcmVMaW5rTGlzdCA9IChwcm9wcykgPT4ge1xuXG4gIGNvbnN0IHsgdCB9ID0gcHJvcHM7XG4gIGZ1bmN0aW9uIGRlbGV0ZUxpbmtIYW5kbGVyKHNoYXJlTGlua0lkKSB7XG4gICAgaWYgKHByb3BzLm9uQ2xpY2tEZWxldGVCdXR0b24gPT0gbnVsbCkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICBwcm9wcy5vbkNsaWNrRGVsZXRlQnV0dG9uKHNoYXJlTGlua0lkKTtcbiAgfVxuXG4gIGZ1bmN0aW9uIHJlbmRlclNoYXJlTGlua3MoKSB7XG4gICAgcmV0dXJuIChcbiAgICAgIDw+XG4gICAgICAgIHtwcm9wcy5zaGFyZUxpbmtzLm1hcChzaGFyZUxpbmsgPT4gKFxuICAgICAgICAgIDx0ciBrZXk9e3NoYXJlTGluay5faWR9PlxuICAgICAgICAgICAgPHRkPlxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImQtZmxleFwiPlxuICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzTmFtZT1cIm1yLWF1dG8gbXktYXV0b1wiPntzaGFyZUxpbmsuX2lkfTwvc3Bhbj5cbiAgICAgICAgICAgICAgICA8Q29weURyb3Bkb3duXG4gICAgICAgICAgICAgICAgICBwYWdlUGF0aD17c2hhcmVMaW5rLnJlbGF0ZWRQYWdlLnBhdGh9XG4gICAgICAgICAgICAgICAgICBkcm9wZG93blRvZ2dsZUlkPXtgY29weWRyb3Bkb3duLSR7c2hhcmVMaW5rLl9pZH1gfVxuICAgICAgICAgICAgICAgICAgcGFnZUlkPXtzaGFyZUxpbmsuX2lkfVxuICAgICAgICAgICAgICAgICAgaXNTaGFyZUxpbmtNb2RlXG4gICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgQ29weSBMaW5rXG4gICAgICAgICAgICAgICAgPC9Db3B5RHJvcGRvd24+XG4gICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPC90ZD5cbiAgICAgICAgICAgIHtwcm9wcy5pc0FkbWluICYmIDx0ZD48YSBocmVmPXtzaGFyZUxpbmsucmVsYXRlZFBhZ2UucGF0aH0+e3NoYXJlTGluay5yZWxhdGVkUGFnZS5wYXRofTwvYT48L3RkPn1cbiAgICAgICAgICAgIDx0ZD57c2hhcmVMaW5rLmV4cGlyZWRBdCAmJiA8c3Bhbj57ZGF0ZUZuc0Zvcm1hdChuZXcgRGF0ZShzaGFyZUxpbmsuZXhwaXJlZEF0KSwgJ3l5eXktTU0tZGQgSEg6bW0nKX08L3NwYW4+fTwvdGQ+XG4gICAgICAgICAgICA8dGQ+e3NoYXJlTGluay5kZXNjcmlwdGlvbn08L3RkPlxuICAgICAgICAgICAgPHRkPlxuICAgICAgICAgICAgICA8YnV0dG9uIGNsYXNzTmFtZT1cImJ0biBidG4tb3V0bGluZS13YXJuaW5nXCIgdHlwZT1cImJ1dHRvblwiIG9uQ2xpY2s9eygpID0+IGRlbGV0ZUxpbmtIYW5kbGVyKHNoYXJlTGluay5faWQpfT5cbiAgICAgICAgICAgICAgICA8aSBjbGFzc05hbWU9XCJpY29uLXRyYXNoXCI+PC9pPnt0KCdEZWxldGUnKX1cbiAgICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgICA8L3RkPlxuICAgICAgICAgIDwvdHI+XG4gICAgICAgICkpfVxuICAgICAgPC8+XG4gICAgKTtcbiAgfVxuXG4gIHJldHVybiAoXG4gICAgPGRpdiBjbGFzc05hbWU9XCJ0YWJsZS1yZXNwb25zaXZlXCI+XG4gICAgICA8dGFibGUgY2xhc3NOYW1lPVwidGFibGUgdGFibGUtYm9yZGVyZWRcIj5cbiAgICAgICAgPHRoZWFkPlxuICAgICAgICAgIDx0cj5cbiAgICAgICAgICAgIDx0aD57dCgnc2hhcmVfbGlua3MuU2hhcmUgTGluaycpfTwvdGg+XG4gICAgICAgICAgICB7cHJvcHMuaXNBZG1pbiAmJiA8dGg+e3QoJ3NoYXJlX2xpbmtzLlBhZ2UgUGF0aCcpfTwvdGg+fVxuICAgICAgICAgICAgPHRoPnt0KCdzaGFyZV9saW5rcy5leHBpcmUnKX08L3RoPlxuICAgICAgICAgICAgPHRoPnt0KCdzaGFyZV9saW5rcy5kZXNjcmlwdGlvbicpfTwvdGg+XG4gICAgICAgICAgICA8dGg+PC90aD5cbiAgICAgICAgICA8L3RyPlxuICAgICAgICA8L3RoZWFkPlxuICAgICAgICA8dGJvZHk+XG4gICAgICAgICAge3JlbmRlclNoYXJlTGlua3MoKX1cbiAgICAgICAgPC90Ym9keT5cbiAgICAgIDwvdGFibGU+XG4gICAgPC9kaXY+XG4gICk7XG59O1xuXG4vKipcbiAqIFdyYXBwZXIgY29tcG9uZW50IGZvciB1c2luZyB1bnN0YXRlZFxuICovXG5jb25zdCBTaGFyZUxpbmtMaXN0V3JhcHBlciA9IHdpdGhVbnN0YXRlZENvbnRhaW5lcnMoU2hhcmVMaW5rTGlzdCwgW0FwcENvbnRhaW5lcl0pO1xuXG5TaGFyZUxpbmtMaXN0LnByb3BUeXBlcyA9IHtcbiAgdDogUHJvcFR5cGVzLmZ1bmMuaXNSZXF1aXJlZCwgLy8gIGkxOG5leHRcbiAgYXBwQ29udGFpbmVyOiBQcm9wVHlwZXMuaW5zdGFuY2VPZihBcHBDb250YWluZXIpLmlzUmVxdWlyZWQsXG5cbiAgc2hhcmVMaW5rczogUHJvcFR5cGVzLmFycmF5LmlzUmVxdWlyZWQsXG4gIG9uQ2xpY2tEZWxldGVCdXR0b246IFByb3BUeXBlcy5mdW5jLFxuICBpc0FkbWluOiBQcm9wVHlwZXMuYm9vbCxcbn07XG5cbmV4cG9ydCBkZWZhdWx0IHdpdGhUcmFuc2xhdGlvbigpKFNoYXJlTGlua0xpc3RXcmFwcGVyKTtcbiJdLCJtYXBwaW5ncyI6IkFBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUNBO0FBR0E7QUFDQTtBQUVBO0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFFQTtBQUFBO0FBQUE7QUFDQTtBQUFBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFBQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBR0E7QUFBQTtBQUVBO0FBQUE7QUFDQTtBQUFBO0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFKQTtBQVVBO0FBQUE7QUFJQTtBQUFBO0FBQUE7QUFBQTtBQUNBO0FBQUE7QUFPQTtBQUNBO0FBQ0E7QUFDQTtBQUFBO0FBQ0E7QUFBQTtBQWdCQTtBQUVBOzs7OztBQUdBO0FBRUE7QUFDQTtBQUFBO0FBQ0E7QUFFQTtBQUNBO0FBQ0E7QUFOQTtBQVNBIiwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./src/client/js/components/ShareLink/ShareLinkList.jsx\n");
- /***/ }),
- /***/ "./src/client/js/components/StaffCredit/StaffCredit.jsx":
- /*!**************************************************************!*\
- !*** ./src/client/js/components/StaffCredit/StaffCredit.jsx ***!
- \**************************************************************/
- /*! exports provided: default */
- /***/ (function(module, __webpack_exports__, __webpack_require__) {
- "use strict";
- eval("__webpack_require__.r(__webpack_exports__);\n/* WEBPACK VAR INJECTION */(function($) {/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"./node_modules/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! prop-types */ \"./node_modules/prop-types/index.js\");\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(prop_types__WEBPACK_IMPORTED_MODULE_1__);\n/* harmony import */ var _alias_logger__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @alias/logger */ \"./src/lib/service/logger/index.js\");\n/* harmony import */ var _alias_logger__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(_alias_logger__WEBPACK_IMPORTED_MODULE_2__);\n/* harmony import */ var reactstrap_es_Modal__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! reactstrap/es/Modal */ \"./node_modules/reactstrap/es/Modal.js\");\n/* harmony import */ var reactstrap_es_ModalBody__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! reactstrap/es/ModalBody */ \"./node_modules/reactstrap/es/ModalBody.js\");\n/* harmony import */ var _services_AppContainer__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../../services/AppContainer */ \"./src/client/js/services/AppContainer.js\");\n/* harmony import */ var _UnstatedUtils__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../UnstatedUtils */ \"./src/client/js/components/UnstatedUtils.jsx\");\n\n\n\n\n\n\n\n/**\n * Page staff credit component\n *\n * @export\n * @class StaffCredit\n * @extends {React.Component}\n */\n// eslint-disable-next-line no-unused-vars\n\nconst logger = _alias_logger__WEBPACK_IMPORTED_MODULE_2___default()('growi:cli:StaffCredit');\n\nclass StaffCredit extends react__WEBPACK_IMPORTED_MODULE_0___default.a.Component {\n constructor(props) {\n super(props);\n this.state = {\n isShown: true,\n contributors: null\n };\n this.deleteCredit = this.deleteCredit.bind(this);\n } // to delete the staffCredit and to inform that to Hotkeys.jsx\n\n\n deleteCredit() {\n if (this.state.isShown) {\n this.setState({\n isShown: false\n });\n }\n }\n\n renderMembers(memberGroup, keyPrefix) {\n // construct members elements\n const members = memberGroup.members.map(member => {\n return react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"div\", {\n className: memberGroup.additionalClass,\n key: `${keyPrefix}-${member.name}-container`\n }, react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"span\", {\n className: \"dev-position\",\n key: `${keyPrefix}-${member.name}-position`\n }, member.position || '\\u00A0'), react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"p\", {\n className: \"dev-name\",\n key: `${keyPrefix}-${member.name}`\n }, member.name));\n });\n return react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(react__WEBPACK_IMPORTED_MODULE_0___default.a.Fragment, {\n key: `${keyPrefix}-fragment`\n }, members);\n }\n\n renderContributors() {\n if (this.state.isShown) {\n const credit = this.state.contributors.map(contributor => {\n // construct members elements\n const memberGroups = contributor.memberGroups.map((memberGroup, idx) => {\n return this.renderMembers(memberGroup, `${contributor.sectionName}-group${idx}`);\n });\n return react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(react__WEBPACK_IMPORTED_MODULE_0___default.a.Fragment, {\n key: `${contributor.sectionName}-fragment`\n }, react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"div\", {\n className: `row ${contributor.additionalClass}`,\n key: `${contributor.sectionName}-row`\n }, react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"h2\", {\n className: \"col-md-12 dev-team staff-credit-mt-10rem staff-credit-mb-6rem\",\n key: contributor.sectionName\n }, contributor.sectionName), memberGroups), react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"div\", {\n className: \"clearfix\"\n }));\n });\n return react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"div\", {\n className: \"text-center staff-credit-content\",\n onClick: this.deleteCredit\n }, react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"h1\", {\n className: \"staff-credit-mb-6rem\"\n }, \"GROWI Contributors\"), react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"div\", {\n className: \"clearfix\"\n }), credit);\n }\n\n return null;\n }\n\n async componentDidMount() {\n const res = await this.props.appContainer.apiv3Get('/staffs');\n const contributors = res.data.contributors;\n this.setState({\n contributors\n });\n setTimeout(() => {\n // px / sec\n const scrollSpeed = 200;\n const target = $('.credit-curtain');\n const scrollTargetHeight = target.children().innerHeight();\n const duration = scrollTargetHeight / scrollSpeed * 1000;\n target.animate({\n scrollTop: scrollTargetHeight\n }, duration, 'linear');\n target.slimScroll({\n height: target.innerHeight(),\n // Able to scroll after automatic schooling is complete so set \"bottom\" to allow scrolling from the bottom.\n start: 'bottom',\n color: '#FFFFFF'\n });\n }, 10);\n }\n\n render() {\n const {\n onClosed\n } = this.props;\n\n if (this.state.contributors === null) {\n return react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(react__WEBPACK_IMPORTED_MODULE_0___default.a.Fragment, null);\n }\n\n return react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(reactstrap_es_Modal__WEBPACK_IMPORTED_MODULE_3__[\"default\"], {\n isOpen: this.state.isShown,\n onClosed: () => {\n if (onClosed != null) {\n onClosed();\n }\n },\n toggle: this.deleteCredit,\n scrollable: true,\n className: \"staff-credit\"\n }, react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(reactstrap_es_ModalBody__WEBPACK_IMPORTED_MODULE_4__[\"default\"], {\n className: \"credit-curtain\"\n }, this.renderContributors()));\n }\n\n}\n\nconst StaffCreditWrapper = Object(_UnstatedUtils__WEBPACK_IMPORTED_MODULE_6__[\"withUnstatedContainers\"])(StaffCredit, [_services_AppContainer__WEBPACK_IMPORTED_MODULE_5__[\"default\"]]);\nStaffCredit.propTypes = {\n onClosed: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.func,\n appContainer: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.instanceOf(_services_AppContainer__WEBPACK_IMPORTED_MODULE_5__[\"default\"]).isRequired\n};\n/* harmony default export */ __webpack_exports__[\"default\"] = (StaffCreditWrapper);\n/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(/*! jquery */ \"jquery\")))//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9zcmMvY2xpZW50L2pzL2NvbXBvbmVudHMvU3RhZmZDcmVkaXQvU3RhZmZDcmVkaXQuanN4LmpzIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vLy4vc3JjL2NsaWVudC9qcy9jb21wb25lbnRzL1N0YWZmQ3JlZGl0L1N0YWZmQ3JlZGl0LmpzeD9iZjNmIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBSZWFjdCBmcm9tICdyZWFjdCc7XG5pbXBvcnQgUHJvcFR5cGVzIGZyb20gJ3Byb3AtdHlwZXMnO1xuaW1wb3J0IGxvZ2dlckZhY3RvcnkgZnJvbSAnQGFsaWFzL2xvZ2dlcic7XG5pbXBvcnQge1xuICBNb2RhbCwgTW9kYWxCb2R5LFxufSBmcm9tICdyZWFjdHN0cmFwJztcbmltcG9ydCBBcHBDb250YWluZXIgZnJvbSAnLi4vLi4vc2VydmljZXMvQXBwQ29udGFpbmVyJztcbmltcG9ydCB7IHdpdGhVbnN0YXRlZENvbnRhaW5lcnMgfSBmcm9tICcuLi9VbnN0YXRlZFV0aWxzJztcblxuLyoqXG4gKiBQYWdlIHN0YWZmIGNyZWRpdCBjb21wb25lbnRcbiAqXG4gKiBAZXhwb3J0XG4gKiBAY2xhc3MgU3RhZmZDcmVkaXRcbiAqIEBleHRlbmRzIHtSZWFjdC5Db21wb25lbnR9XG4gKi9cblxuLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLXVudXNlZC12YXJzXG5jb25zdCBsb2dnZXIgPSBsb2dnZXJGYWN0b3J5KCdncm93aTpjbGk6U3RhZmZDcmVkaXQnKTtcblxuY2xhc3MgU3RhZmZDcmVkaXQgZXh0ZW5kcyBSZWFjdC5Db21wb25lbnQge1xuXG4gIGNvbnN0cnVjdG9yKHByb3BzKSB7XG5cbiAgICBzdXBlcihwcm9wcyk7XG4gICAgdGhpcy5zdGF0ZSA9IHtcbiAgICAgIGlzU2hvd246IHRydWUsXG4gICAgICBjb250cmlidXRvcnM6IG51bGwsXG4gICAgfTtcbiAgICB0aGlzLmRlbGV0ZUNyZWRpdCA9IHRoaXMuZGVsZXRlQ3JlZGl0LmJpbmQodGhpcyk7XG4gIH1cblxuICAvLyB0byBkZWxldGUgdGhlIHN0YWZmQ3JlZGl0IGFuZCB0byBpbmZvcm0gdGhhdCB0byBIb3RrZXlzLmpzeFxuICBkZWxldGVDcmVkaXQoKSB7XG4gICAgaWYgKHRoaXMuc3RhdGUuaXNTaG93bikge1xuICAgICAgdGhpcy5zZXRTdGF0ZSh7IGlzU2hvd246IGZhbHNlIH0pO1xuICAgIH1cbiAgfVxuXG4gIHJlbmRlck1lbWJlcnMobWVtYmVyR3JvdXAsIGtleVByZWZpeCkge1xuICAgIC8vIGNvbnN0cnVjdCBtZW1iZXJzIGVsZW1lbnRzXG4gICAgY29uc3QgbWVtYmVycyA9IG1lbWJlckdyb3VwLm1lbWJlcnMubWFwKChtZW1iZXIpID0+IHtcbiAgICAgIHJldHVybiAoXG4gICAgICAgIDxkaXYgY2xhc3NOYW1lPXttZW1iZXJHcm91cC5hZGRpdGlvbmFsQ2xhc3N9IGtleT17YCR7a2V5UHJlZml4fS0ke21lbWJlci5uYW1lfS1jb250YWluZXJgfT5cbiAgICAgICAgICA8c3BhbiBjbGFzc05hbWU9XCJkZXYtcG9zaXRpb25cIiBrZXk9e2Ake2tleVByZWZpeH0tJHttZW1iZXIubmFtZX0tcG9zaXRpb25gfT5cbiAgICAgICAgICAgIHsvKiBwb3NpdGlvbiBvciAnJm5ic3A7JyAqL31cbiAgICAgICAgICAgIHsgbWVtYmVyLnBvc2l0aW9uIHx8ICdcXHUwMEEwJyB9XG4gICAgICAgICAgPC9zcGFuPlxuICAgICAgICAgIDxwIGNsYXNzTmFtZT1cImRldi1uYW1lXCIga2V5PXtgJHtrZXlQcmVmaXh9LSR7bWVtYmVyLm5hbWV9YH0+e21lbWJlci5uYW1lfTwvcD5cbiAgICAgICAgPC9kaXY+XG4gICAgICApO1xuICAgIH0pO1xuICAgIHJldHVybiAoXG4gICAgICA8UmVhY3QuRnJhZ21lbnQga2V5PXtgJHtrZXlQcmVmaXh9LWZyYWdtZW50YH0+XG4gICAgICAgIHttZW1iZXJzfVxuICAgICAgPC9SZWFjdC5GcmFnbWVudD5cbiAgICApO1xuICB9XG5cbiAgcmVuZGVyQ29udHJpYnV0b3JzKCkge1xuICAgIGlmICh0aGlzLnN0YXRlLmlzU2hvd24pIHtcbiAgICAgIGNvbnN0IGNyZWRpdCA9IHRoaXMuc3RhdGUuY29udHJpYnV0b3JzLm1hcCgoY29udHJpYnV0b3IpID0+IHtcbiAgICAgICAgLy8gY29uc3RydWN0IG1lbWJlcnMgZWxlbWVudHNcbiAgICAgICAgY29uc3QgbWVtYmVyR3JvdXBzID0gY29udHJpYnV0b3IubWVtYmVyR3JvdXBzLm1hcCgobWVtYmVyR3JvdXAsIGlkeCkgPT4ge1xuICAgICAgICAgIHJldHVybiB0aGlzLnJlbmRlck1lbWJlcnMobWVtYmVyR3JvdXAsIGAke2NvbnRyaWJ1dG9yLnNlY3Rpb25OYW1lfS1ncm91cCR7aWR4fWApO1xuICAgICAgICB9KTtcbiAgICAgICAgcmV0dXJuIChcbiAgICAgICAgICA8UmVhY3QuRnJhZ21lbnQga2V5PXtgJHtjb250cmlidXRvci5zZWN0aW9uTmFtZX0tZnJhZ21lbnRgfT5cbiAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPXtgcm93ICR7Y29udHJpYnV0b3IuYWRkaXRpb25hbENsYXNzfWB9IGtleT17YCR7Y29udHJpYnV0b3Iuc2VjdGlvbk5hbWV9LXJvd2B9PlxuICAgICAgICAgICAgICA8aDIgY2xhc3NOYW1lPVwiY29sLW1kLTEyIGRldi10ZWFtIHN0YWZmLWNyZWRpdC1tdC0xMHJlbSBzdGFmZi1jcmVkaXQtbWItNnJlbVwiIGtleT17Y29udHJpYnV0b3Iuc2VjdGlvbk5hbWV9Pntjb250cmlidXRvci5zZWN0aW9uTmFtZX08L2gyPlxuICAgICAgICAgICAgICB7bWVtYmVyR3JvdXBzfVxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImNsZWFyZml4XCI+PC9kaXY+XG4gICAgICAgICAgPC9SZWFjdC5GcmFnbWVudD5cbiAgICAgICAgKTtcbiAgICAgIH0pO1xuICAgICAgcmV0dXJuIChcbiAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJ0ZXh0LWNlbnRlciBzdGFmZi1jcmVkaXQtY29udGVudFwiIG9uQ2xpY2s9e3RoaXMuZGVsZXRlQ3JlZGl0fT5cbiAgICAgICAgICA8aDEgY2xhc3NOYW1lPVwic3RhZmYtY3JlZGl0LW1iLTZyZW1cIj5HUk9XSSBDb250cmlidXRvcnM8L2gxPlxuICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiY2xlYXJmaXhcIj48L2Rpdj5cbiAgICAgICAgICB7Y3JlZGl0fVxuICAgICAgICA8L2Rpdj5cbiAgICAgICk7XG4gICAgfVxuICAgIHJldHVybiBudWxsO1xuICB9XG5cbiAgYXN5bmMgY29tcG9uZW50RGlkTW91bnQoKSB7XG4gICAgY29uc3QgcmVzID0gYXdhaXQgdGhpcy5wcm9wcy5hcHBDb250YWluZXIuYXBpdjNHZXQoJy9zdGFmZnMnKTtcbiAgICBjb25zdCBjb250cmlidXRvcnMgPSByZXMuZGF0YS5jb250cmlidXRvcnM7XG4gICAgdGhpcy5zZXRTdGF0ZSh7IGNvbnRyaWJ1dG9ycyB9KTtcblxuICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgLy8gcHggLyBzZWNcbiAgICAgIGNvbnN0IHNjcm9sbFNwZWVkID0gMjAwO1xuICAgICAgY29uc3QgdGFyZ2V0ID0gJCgnLmNyZWRpdC1jdXJ0YWluJyk7XG4gICAgICBjb25zdCBzY3JvbGxUYXJnZXRIZWlnaHQgPSB0YXJnZXQuY2hpbGRyZW4oKS5pbm5lckhlaWdodCgpO1xuICAgICAgY29uc3QgZHVyYXRpb24gPSBzY3JvbGxUYXJnZXRIZWlnaHQgLyBzY3JvbGxTcGVlZCAqIDEwMDA7XG4gICAgICB0YXJnZXQuYW5pbWF0ZSh7IHNjcm9sbFRvcDogc2Nyb2xsVGFyZ2V0SGVpZ2h0IH0sIGR1cmF0aW9uLCAnbGluZWFyJyk7XG4gICAgICB0YXJnZXQuc2xpbVNjcm9sbCh7XG4gICAgICAgIGhlaWdodDogdGFyZ2V0LmlubmVySGVpZ2h0KCksXG4gICAgICAgIC8vIEFibGUgdG8gc2Nyb2xsIGFmdGVyIGF1dG9tYXRpYyBzY2hvb2xpbmcgaXMgY29tcGxldGUgc28gc2V0IFwiYm90dG9tXCIgdG8gYWxsb3cgc2Nyb2xsaW5nIGZyb20gdGhlIGJvdHRvbS5cbiAgICAgICAgc3RhcnQ6ICdib3R0b20nLFxuICAgICAgICBjb2xvcjogJyNGRkZGRkYnLFxuICAgICAgfSk7XG4gICAgfSwgMTApO1xuICB9XG5cbiAgcmVuZGVyKCkge1xuICAgIGNvbnN0IHsgb25DbG9zZWQgfSA9IHRoaXMucHJvcHM7XG5cbiAgICBpZiAodGhpcy5zdGF0ZS5jb250cmlidXRvcnMgPT09IG51bGwpIHtcbiAgICAgIHJldHVybiA8PjwvPjtcbiAgICB9XG5cbiAgICByZXR1cm4gKFxuICAgICAgPE1vZGFsXG4gICAgICAgIGlzT3Blbj17dGhpcy5zdGF0ZS5pc1Nob3dufVxuICAgICAgICBvbkNsb3NlZD17KCkgPT4ge1xuICAgICAgICAgIGlmIChvbkNsb3NlZCAhPSBudWxsKSB7XG4gICAgICAgICAgICBvbkNsb3NlZCgpO1xuICAgICAgICAgIH1cbiAgICAgICAgfX1cbiAgICAgICAgdG9nZ2xlPXt0aGlzLmRlbGV0ZUNyZWRpdH1cbiAgICAgICAgc2Nyb2xsYWJsZVxuICAgICAgICBjbGFzc05hbWU9XCJzdGFmZi1jcmVkaXRcIlxuICAgICAgPlxuICAgICAgICA8TW9kYWxCb2R5IGNsYXNzTmFtZT1cImNyZWRpdC1jdXJ0YWluXCI+XG4gICAgICAgICAge3RoaXMucmVuZGVyQ29udHJpYnV0b3JzKCl9XG4gICAgICAgIDwvTW9kYWxCb2R5PlxuICAgICAgPC9Nb2RhbD5cbiAgICApO1xuICB9XG5cbn1cblxuY29uc3QgU3RhZmZDcmVkaXRXcmFwcGVyID0gd2l0aFVuc3RhdGVkQ29udGFpbmVycyhTdGFmZkNyZWRpdCwgW0FwcENvbnRhaW5lcl0pO1xuXG5TdGFmZkNyZWRpdC5wcm9wVHlwZXMgPSB7XG4gIG9uQ2xvc2VkOiBQcm9wVHlwZXMuZnVuYyxcbiAgYXBwQ29udGFpbmVyOiBQcm9wVHlwZXMuaW5zdGFuY2VPZihBcHBDb250YWluZXIpLmlzUmVxdWlyZWQsXG59O1xuXG5leHBvcnQgZGVmYXVsdCBTdGFmZkNyZWRpdFdyYXBwZXI7XG4iXSwibWFwcGluZ3MiOiJBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUNBO0FBQ0E7OztBQUlBO0FBQ0E7QUFFQTs7Ozs7OztBQVFBO0FBQ0E7QUFBQTtBQUNBO0FBQ0E7QUFFQTtBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBRkE7QUFJQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUFBO0FBQUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQUE7QUFBQTtBQUNBO0FBQUE7QUFBQTtBQUlBO0FBQUE7QUFBQTtBQUdBO0FBQ0E7QUFDQTtBQUFBO0FBSUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUFBO0FBQ0E7QUFBQTtBQUFBO0FBQ0E7QUFBQTtBQUFBO0FBR0E7QUFBQTtBQUdBO0FBQ0E7QUFDQTtBQUFBO0FBQUE7QUFDQTtBQUFBO0FBQ0E7QUFBQTtBQUlBO0FBQ0E7QUFBQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUFBO0FBQUE7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUFBO0FBQUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBSkE7QUFNQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQUE7QUFBQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQVRBO0FBV0E7QUFBQTtBQUtBO0FBQ0E7QUFqSEE7QUFDQTtBQW1IQTtBQUVBO0FBQ0E7QUFDQTtBQUZBO0FBS0E7QSIsInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./src/client/js/components/StaffCredit/StaffCredit.jsx\n");
- /***/ }),
- /***/ "./src/client/js/components/SuspenseUtils.jsx":
- /*!****************************************************!*\
- !*** ./src/client/js/components/SuspenseUtils.jsx ***!
- \****************************************************/
- /*! exports provided: withLoadingSppiner */
- /***/ (function(module, __webpack_exports__, __webpack_require__) {
- "use strict";
- eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"withLoadingSppiner\", function() { return withLoadingSppiner; });\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"./node_modules/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);\n/* eslint-disable import/prefer-default-export */\n\n/**\n * If you throw a Promise in the component, it will display a sppiner\n * @param {object} Component A React.Component or functional component\n */\n\nfunction withLoadingSppiner(Component) {\n return props => // wrap with <Suspense></Suspense>\n react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(react__WEBPACK_IMPORTED_MODULE_0__[\"Suspense\"], {\n fallback: react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"div\", {\n className: \"my-5 text-center\"\n }, react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"i\", {\n className: \"fa fa-lg fa-spinner fa-pulse mx-auto text-muted\"\n }))\n }, react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(Component, props));\n}//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9zcmMvY2xpZW50L2pzL2NvbXBvbmVudHMvU3VzcGVuc2VVdGlscy5qc3guanMiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9zcmMvY2xpZW50L2pzL2NvbXBvbmVudHMvU3VzcGVuc2VVdGlscy5qc3g/OTA5NyJdLCJzb3VyY2VzQ29udGVudCI6WyIvKiBlc2xpbnQtZGlzYWJsZSBpbXBvcnQvcHJlZmVyLWRlZmF1bHQtZXhwb3J0ICovXG5pbXBvcnQgUmVhY3QsIHsgU3VzcGVuc2UgfSBmcm9tICdyZWFjdCc7XG5cbi8qKlxuICogSWYgeW91IHRocm93IGEgUHJvbWlzZSBpbiB0aGUgY29tcG9uZW50LCBpdCB3aWxsIGRpc3BsYXkgYSBzcHBpbmVyXG4gKiBAcGFyYW0ge29iamVjdH0gQ29tcG9uZW50IEEgUmVhY3QuQ29tcG9uZW50IG9yIGZ1bmN0aW9uYWwgY29tcG9uZW50XG4gKi9cbmV4cG9ydCBmdW5jdGlvbiB3aXRoTG9hZGluZ1NwcGluZXIoQ29tcG9uZW50KSB7XG4gIHJldHVybiAocHJvcHMgPT4gKFxuICAgIC8vIHdyYXAgd2l0aCA8U3VzcGVuc2U+PC9TdXNwZW5zZT5cbiAgICA8U3VzcGVuc2VcbiAgICAgIGZhbGxiYWNrPXsoXG4gICAgICAgIDxkaXYgY2xhc3NOYW1lPVwibXktNSB0ZXh0LWNlbnRlclwiPlxuICAgICAgICAgIDxpIGNsYXNzTmFtZT1cImZhIGZhLWxnIGZhLXNwaW5uZXIgZmEtcHVsc2UgbXgtYXV0byB0ZXh0LW11dGVkXCI+PC9pPlxuICAgICAgICA8L2Rpdj5cbiAgICAgICl9XG4gICAgPlxuICAgICAgPENvbXBvbmVudCB7Li4ucHJvcHN9IC8+XG4gICAgPC9TdXNwZW5zZT5cbiAgKSk7XG59XG4iXSwibWFwcGluZ3MiOiJBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFDQTtBQUVBOzs7OztBQUlBO0FBQ0E7QUFFQTtBQUNBO0FBQ0E7QUFBQTtBQUNBO0FBQUE7QUFIQTtBQVVBIiwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./src/client/js/components/SuspenseUtils.jsx\n");
- /***/ }),
- /***/ "./src/client/js/components/UnstatedUtils.jsx":
- /*!****************************************************!*\
- !*** ./src/client/js/components/UnstatedUtils.jsx ***!
- \****************************************************/
- /*! exports provided: withUnstatedContainers */
- /***/ (function(module, __webpack_exports__, __webpack_require__) {
- "use strict";
- eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"withUnstatedContainers\", function() { return withUnstatedContainers; });\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"./node_modules/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var unstated__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! unstated */ \"./node_modules/unstated/lib/unstated.es.js\");\nfunction _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\n/* eslint-disable import/prefer-default-export */\n\n\n/**\n * generate K/V object by specified instances\n *\n * @param {Array<object>} instances\n * @returns automatically named key and value\n * e.g.\n * {\n * appContainer: <AppContainer />,\n * exampleContainer: <ExampleContainer />,\n * }\n */\n\nfunction generateAutoNamedProps(instances) {\n const props = {};\n instances.forEach(instance => {\n // get class name\n const className = instance.constructor.getClassName(); // convert initial charactor to lower case\n\n const propName = `${className.charAt(0).toLowerCase()}${className.slice(1)}`;\n props[propName] = instance;\n });\n return props;\n}\n/**\n * Return a React component that is injected unstated containers\n *\n * @param {object} Component A React.Component or functional component\n * @param {array} containerClasses unstated container classes to subscribe\n * @returns returns such like a following element:\n * e.g.\n * <Subscribe to={containerClasses}> // containerClasses = [AppContainer, PageContainer]\n * { (appContainer, pageContainer) => (\n * <Component appContainer={appContainer} pageContainer={pageContainer} {...this.props} />\n * )}\n * </Subscribe>\n */\n\n\nfunction withUnstatedContainers(Component, containerClasses) {\n return react__WEBPACK_IMPORTED_MODULE_0___default.a.forwardRef((props, ref) => // wrap with <Subscribe></Subscribe>\n react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(unstated__WEBPACK_IMPORTED_MODULE_1__[\"Subscribe\"], {\n to: containerClasses\n }, (...containers) => {\n const propsForContainers = generateAutoNamedProps(containers);\n return react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(Component, _extends({}, props, propsForContainers, {\n ref: ref\n }));\n }));\n}//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9zcmMvY2xpZW50L2pzL2NvbXBvbmVudHMvVW5zdGF0ZWRVdGlscy5qc3guanMiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9zcmMvY2xpZW50L2pzL2NvbXBvbmVudHMvVW5zdGF0ZWRVdGlscy5qc3g/ZDM5ZiJdLCJzb3VyY2VzQ29udGVudCI6WyIvKiBlc2xpbnQtZGlzYWJsZSBpbXBvcnQvcHJlZmVyLWRlZmF1bHQtZXhwb3J0ICovXG5cbmltcG9ydCBSZWFjdCBmcm9tICdyZWFjdCc7XG5pbXBvcnQgeyBTdWJzY3JpYmUgfSBmcm9tICd1bnN0YXRlZCc7XG5cbi8qKlxuICogZ2VuZXJhdGUgSy9WIG9iamVjdCBieSBzcGVjaWZpZWQgaW5zdGFuY2VzXG4gKlxuICogQHBhcmFtIHtBcnJheTxvYmplY3Q+fSBpbnN0YW5jZXNcbiAqIEByZXR1cm5zIGF1dG9tYXRpY2FsbHkgbmFtZWQga2V5IGFuZCB2YWx1ZVxuICogICBlLmcuXG4gKiAgIHtcbiAqICAgICBhcHBDb250YWluZXI6IDxBcHBDb250YWluZXIgLz4sXG4gKiAgICAgZXhhbXBsZUNvbnRhaW5lcjogPEV4YW1wbGVDb250YWluZXIgLz4sXG4gKiAgIH1cbiAqL1xuZnVuY3Rpb24gZ2VuZXJhdGVBdXRvTmFtZWRQcm9wcyhpbnN0YW5jZXMpIHtcbiAgY29uc3QgcHJvcHMgPSB7fTtcblxuICBpbnN0YW5jZXMuZm9yRWFjaCgoaW5zdGFuY2UpID0+IHtcbiAgICAvLyBnZXQgY2xhc3MgbmFtZVxuICAgIGNvbnN0IGNsYXNzTmFtZSA9IGluc3RhbmNlLmNvbnN0cnVjdG9yLmdldENsYXNzTmFtZSgpO1xuICAgIC8vIGNvbnZlcnQgaW5pdGlhbCBjaGFyYWN0b3IgdG8gbG93ZXIgY2FzZVxuICAgIGNvbnN0IHByb3BOYW1lID0gYCR7Y2xhc3NOYW1lLmNoYXJBdCgwKS50b0xvd2VyQ2FzZSgpfSR7Y2xhc3NOYW1lLnNsaWNlKDEpfWA7XG5cbiAgICBwcm9wc1twcm9wTmFtZV0gPSBpbnN0YW5jZTtcbiAgfSk7XG5cbiAgcmV0dXJuIHByb3BzO1xufVxuXG4vKipcbiAqIFJldHVybiBhIFJlYWN0IGNvbXBvbmVudCB0aGF0IGlzIGluamVjdGVkIHVuc3RhdGVkIGNvbnRhaW5lcnNcbiAqXG4gKiBAcGFyYW0ge29iamVjdH0gQ29tcG9uZW50IEEgUmVhY3QuQ29tcG9uZW50IG9yIGZ1bmN0aW9uYWwgY29tcG9uZW50XG4gKiBAcGFyYW0ge2FycmF5fSBjb250YWluZXJDbGFzc2VzIHVuc3RhdGVkIGNvbnRhaW5lciBjbGFzc2VzIHRvIHN1YnNjcmliZVxuICogQHJldHVybnMgcmV0dXJucyBzdWNoIGxpa2UgYSBmb2xsb3dpbmcgZWxlbWVudDpcbiAqICBlLmcuXG4gKiAgPFN1YnNjcmliZSB0bz17Y29udGFpbmVyQ2xhc3Nlc30+ICAvLyBjb250YWluZXJDbGFzc2VzID0gW0FwcENvbnRhaW5lciwgUGFnZUNvbnRhaW5lcl1cbiAqICAgIHsgKGFwcENvbnRhaW5lciwgcGFnZUNvbnRhaW5lcikgPT4gKFxuICogICAgICA8Q29tcG9uZW50IGFwcENvbnRhaW5lcj17YXBwQ29udGFpbmVyfSBwYWdlQ29udGFpbmVyPXtwYWdlQ29udGFpbmVyfSB7Li4udGhpcy5wcm9wc30gLz5cbiAqICAgICl9XG4gKiAgPC9TdWJzY3JpYmU+XG4gKi9cbmV4cG9ydCBmdW5jdGlvbiB3aXRoVW5zdGF0ZWRDb250YWluZXJzKENvbXBvbmVudCwgY29udGFpbmVyQ2xhc3Nlcykge1xuICByZXR1cm4gUmVhY3QuZm9yd2FyZFJlZigocHJvcHMsIHJlZikgPT4gKFxuICAgIC8vIHdyYXAgd2l0aCA8U3Vic2NyaWJlPjwvU3Vic2NyaWJlPlxuICAgIDxTdWJzY3JpYmUgdG89e2NvbnRhaW5lckNsYXNzZXN9PlxuICAgICAgeyAoLi4uY29udGFpbmVycykgPT4ge1xuICAgICAgICBjb25zdCBwcm9wc0ZvckNvbnRhaW5lcnMgPSBnZW5lcmF0ZUF1dG9OYW1lZFByb3BzKGNvbnRhaW5lcnMpO1xuICAgICAgICByZXR1cm4gPENvbXBvbmVudCB7Li4ucHJvcHN9IHsuLi5wcm9wc0ZvckNvbnRhaW5lcnN9IHJlZj17cmVmfSAvPjtcbiAgICAgIH19XG4gICAgPC9TdWJzY3JpYmU+XG4gICkpO1xufVxuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7O0FBQUE7QUFFQTtBQUNBO0FBRUE7Ozs7Ozs7Ozs7OztBQVdBO0FBQ0E7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBRUE7QUFDQTtBQUVBO0FBQ0E7QUFFQTs7Ozs7Ozs7Ozs7Ozs7O0FBYUE7QUFDQTtBQUVBO0FBQUE7QUFBQTtBQUVBO0FBQ0E7QUFBQTtBQUFBO0FBQ0E7QUFHQSIsInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./src/client/js/components/UnstatedUtils.jsx\n");
- /***/ }),
- /***/ "./src/client/js/components/User/UserPicture.jsx":
- /*!*******************************************************!*\
- !*** ./src/client/js/components/User/UserPicture.jsx ***!
- \*******************************************************/
- /*! exports provided: default */
- /***/ (function(module, __webpack_exports__, __webpack_require__) {
- "use strict";
- eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"default\", function() { return UserPicture; });\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"./node_modules/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! prop-types */ \"./node_modules/prop-types/index.js\");\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(prop_types__WEBPACK_IMPORTED_MODULE_1__);\n/* harmony import */ var _commons_util_path_utils__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @commons/util/path-utils */ \"./src/lib/util/path-utils.js\");\n/* harmony import */ var _commons_util_path_utils__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(_commons_util_path_utils__WEBPACK_IMPORTED_MODULE_2__);\n/* harmony import */ var reactstrap_es_UncontrolledTooltip__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! reactstrap/es/UncontrolledTooltip */ \"./node_modules/reactstrap/es/UncontrolledTooltip.js\");\nfunction _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\n\n\n\n\nconst DEFAULT_IMAGE = '/images/icons/user.svg'; // TODO UserComponent?\n\nclass UserPicture extends react__WEBPACK_IMPORTED_MODULE_0___default.a.Component {\n constructor(...args) {\n super(...args);\n\n this.RootElmWithoutLink = props => {\n return react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"span\", props, props.children);\n };\n\n this.RootElmWithLink = props => {\n const {\n user\n } = this.props;\n const href = Object(_commons_util_path_utils__WEBPACK_IMPORTED_MODULE_2__[\"userPageRoot\"])(user);\n return react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"a\", _extends({\n href: href\n }, props), props.children);\n };\n\n this.withTooltip = RootElm => {\n const {\n user\n } = this.props;\n const id = `user-picture-${Math.random().toString(32).substring(2)}`;\n return props => react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(react__WEBPACK_IMPORTED_MODULE_0___default.a.Fragment, null, react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(RootElm, {\n id: id\n }, props.children), react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(reactstrap_es_UncontrolledTooltip__WEBPACK_IMPORTED_MODULE_3__[\"default\"], {\n placement: \"bottom\",\n target: id,\n delay: 0,\n fade: false\n }, \"@\", user.username, react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"br\", null), user.name));\n };\n }\n\n getClassName() {\n const className = ['rounded-circle', 'picture']; // size\n\n if (this.props.size) {\n className.push(`picture-${this.props.size}`);\n }\n\n return className.join(' ');\n }\n\n renderForNull() {\n return react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"img\", {\n src: DEFAULT_IMAGE,\n alt: \"someone\",\n className: this.getClassName()\n });\n }\n\n render() {\n const user = this.props.user;\n\n if (user == null) {\n return this.renderForNull();\n }\n\n const {\n noLink,\n noTooltip\n } = this.props; // determine RootElm\n\n let RootElm = noLink ? this.RootElmWithoutLink : this.RootElmWithLink;\n\n if (!noTooltip) {\n RootElm = this.withTooltip(RootElm);\n }\n\n const userPictureSrc = user.imageUrlCached || DEFAULT_IMAGE;\n return react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(RootElm, null, react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"img\", {\n src: userPictureSrc,\n alt: user.username,\n className: this.getClassName()\n }));\n }\n\n}\nUserPicture.propTypes = {\n user: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.object,\n size: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.oneOf(['xs', 'sm', 'md', 'lg', 'xl']),\n noLink: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.bool,\n noTooltip: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.bool\n};\nUserPicture.defaultProps = {\n size: null,\n noLink: false,\n noTooltip: false\n};//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9zcmMvY2xpZW50L2pzL2NvbXBvbmVudHMvVXNlci9Vc2VyUGljdHVyZS5qc3guanMiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9zcmMvY2xpZW50L2pzL2NvbXBvbmVudHMvVXNlci9Vc2VyUGljdHVyZS5qc3g/YzIxZSJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgUmVhY3QgZnJvbSAncmVhY3QnO1xuaW1wb3J0IFByb3BUeXBlcyBmcm9tICdwcm9wLXR5cGVzJztcblxuaW1wb3J0IHsgdXNlclBhZ2VSb290IH0gZnJvbSAnQGNvbW1vbnMvdXRpbC9wYXRoLXV0aWxzJztcblxuaW1wb3J0IHsgVW5jb250cm9sbGVkVG9vbHRpcCB9IGZyb20gJ3JlYWN0c3RyYXAnO1xuXG5jb25zdCBERUZBVUxUX0lNQUdFID0gJy9pbWFnZXMvaWNvbnMvdXNlci5zdmcnO1xuXG4vLyBUT0RPIFVzZXJDb21wb25lbnQ/XG5leHBvcnQgZGVmYXVsdCBjbGFzcyBVc2VyUGljdHVyZSBleHRlbmRzIFJlYWN0LkNvbXBvbmVudCB7XG5cbiAgZ2V0Q2xhc3NOYW1lKCkge1xuICAgIGNvbnN0IGNsYXNzTmFtZSA9IFsncm91bmRlZC1jaXJjbGUnLCAncGljdHVyZSddO1xuICAgIC8vIHNpemVcbiAgICBpZiAodGhpcy5wcm9wcy5zaXplKSB7XG4gICAgICBjbGFzc05hbWUucHVzaChgcGljdHVyZS0ke3RoaXMucHJvcHMuc2l6ZX1gKTtcbiAgICB9XG5cbiAgICByZXR1cm4gY2xhc3NOYW1lLmpvaW4oJyAnKTtcbiAgfVxuXG4gIHJlbmRlckZvck51bGwoKSB7XG4gICAgcmV0dXJuIChcbiAgICAgIDxpbWdcbiAgICAgICAgc3JjPXtERUZBVUxUX0lNQUdFfVxuICAgICAgICBhbHQ9XCJzb21lb25lXCJcbiAgICAgICAgY2xhc3NOYW1lPXt0aGlzLmdldENsYXNzTmFtZSgpfVxuICAgICAgLz5cbiAgICApO1xuICB9XG5cbiAgUm9vdEVsbVdpdGhvdXRMaW5rID0gKHByb3BzKSA9PiB7XG4gICAgcmV0dXJuIDxzcGFuIHsuLi5wcm9wc30+e3Byb3BzLmNoaWxkcmVufTwvc3Bhbj47XG4gIH1cblxuICBSb290RWxtV2l0aExpbmsgPSAocHJvcHMpID0+IHtcbiAgICBjb25zdCB7IHVzZXIgfSA9IHRoaXMucHJvcHM7XG4gICAgY29uc3QgaHJlZiA9IHVzZXJQYWdlUm9vdCh1c2VyKTtcblxuICAgIHJldHVybiA8YSBocmVmPXtocmVmfSB7Li4ucHJvcHN9Pntwcm9wcy5jaGlsZHJlbn08L2E+O1xuICB9XG5cbiAgd2l0aFRvb2x0aXAgPSAoUm9vdEVsbSkgPT4ge1xuICAgIGNvbnN0IHsgdXNlciB9ID0gdGhpcy5wcm9wcztcbiAgICBjb25zdCBpZCA9IGB1c2VyLXBpY3R1cmUtJHtNYXRoLnJhbmRvbSgpLnRvU3RyaW5nKDMyKS5zdWJzdHJpbmcoMil9YDtcblxuICAgIHJldHVybiBwcm9wcyA9PiAoXG4gICAgICA8PlxuICAgICAgICA8Um9vdEVsbSBpZD17aWR9Pntwcm9wcy5jaGlsZHJlbn08L1Jvb3RFbG0+XG4gICAgICAgIDxVbmNvbnRyb2xsZWRUb29sdGlwIHBsYWNlbWVudD1cImJvdHRvbVwiIHRhcmdldD17aWR9IGRlbGF5PXswfSBmYWRlPXtmYWxzZX0+XG4gICAgICAgICAgQHt1c2VyLnVzZXJuYW1lfTxiciAvPlxuICAgICAgICAgIHt1c2VyLm5hbWV9XG4gICAgICAgIDwvVW5jb250cm9sbGVkVG9vbHRpcD5cbiAgICAgIDwvPlxuICAgICk7XG4gIH1cblxuICByZW5kZXIoKSB7XG4gICAgY29uc3QgdXNlciA9IHRoaXMucHJvcHMudXNlcjtcblxuICAgIGlmICh1c2VyID09IG51bGwpIHtcbiAgICAgIHJldHVybiB0aGlzLnJlbmRlckZvck51bGwoKTtcbiAgICB9XG5cbiAgICBjb25zdCB7IG5vTGluaywgbm9Ub29sdGlwIH0gPSB0aGlzLnByb3BzO1xuXG4gICAgLy8gZGV0ZXJtaW5lIFJvb3RFbG1cbiAgICBsZXQgUm9vdEVsbSA9IG5vTGluayA/IHRoaXMuUm9vdEVsbVdpdGhvdXRMaW5rIDogdGhpcy5Sb290RWxtV2l0aExpbms7XG4gICAgaWYgKCFub1Rvb2x0aXApIHtcbiAgICAgIFJvb3RFbG0gPSB0aGlzLndpdGhUb29sdGlwKFJvb3RFbG0pO1xuICAgIH1cblxuICAgIGNvbnN0IHVzZXJQaWN0dXJlU3JjID0gdXNlci5pbWFnZVVybENhY2hlZCB8fCBERUZBVUxUX0lNQUdFO1xuXG4gICAgcmV0dXJuIChcbiAgICAgIDxSb290RWxtPlxuICAgICAgICA8aW1nXG4gICAgICAgICAgc3JjPXt1c2VyUGljdHVyZVNyY31cbiAgICAgICAgICBhbHQ9e3VzZXIudXNlcm5hbWV9XG4gICAgICAgICAgY2xhc3NOYW1lPXt0aGlzLmdldENsYXNzTmFtZSgpfVxuICAgICAgICAvPlxuICAgICAgPC9Sb290RWxtPlxuICAgICk7XG4gIH1cblxufVxuXG5Vc2VyUGljdHVyZS5wcm9wVHlwZXMgPSB7XG4gIHVzZXI6IFByb3BUeXBlcy5vYmplY3QsXG4gIHNpemU6IFByb3BUeXBlcy5vbmVPZihbJ3hzJywgJ3NtJywgJ21kJywgJ2xnJywgJ3hsJ10pLFxuICBub0xpbms6IFByb3BUeXBlcy5ib29sLFxuICBub1Rvb2x0aXA6IFByb3BUeXBlcy5ib29sLFxufTtcblxuVXNlclBpY3R1cmUuZGVmYXVsdFByb3BzID0ge1xuICBzaXplOiBudWxsLFxuICBub0xpbms6IGZhbHNlLFxuICBub1Rvb2x0aXA6IGZhbHNlLFxufTtcbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7QUFBQTtBQUNBO0FBRUE7O0FBSUE7QUFDQTtBQUVBO0FBQUE7QUFBQTtBQUNBO0FBREE7QUF1QkE7QUFDQTtBQUNBO0FBekJBO0FBMkJBO0FBQUE7QUFBQTtBQUNBO0FBRUE7QUFBQTtBQUFBO0FBQ0E7QUFDQTtBQWhDQTtBQWtDQTtBQUFBO0FBQUE7QUFDQTtBQUVBO0FBRUE7QUFBQTtBQUNBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFNQTtBQTlDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBRUE7QUFDQTtBQUNBO0FBSEE7QUFNQTtBQUNBO0FBMkJBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFBQTtBQUFBO0FBQUE7QUFDQTtBQUVBO0FBQ0E7QUFBQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBRUE7QUFHQTtBQUNBO0FBQ0E7QUFIQTtBQU9BO0FBQ0E7QUEzRUE7QUE4RUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUpBO0FBT0E7QUFDQTtBQUNBO0FBQ0E7QUFIQSIsInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./src/client/js/components/User/UserPicture.jsx\n");
- /***/ }),
- /***/ "./src/client/js/models/HotkeyStroke.js":
- /*!**********************************************!*\
- !*** ./src/client/js/models/HotkeyStroke.js ***!
- \**********************************************/
- /*! exports provided: default */
- /***/ (function(module, __webpack_exports__, __webpack_require__) {
- "use strict";
- eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"default\", function() { return HotkeyStroke; });\n/* harmony import */ var _alias_logger__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @alias/logger */ \"./src/lib/service/logger/index.js\");\n/* harmony import */ var _alias_logger__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_alias_logger__WEBPACK_IMPORTED_MODULE_0__);\n\nconst logger = _alias_logger__WEBPACK_IMPORTED_MODULE_0___default()('growi:cli:HotkeyStroke');\nclass HotkeyStroke {\n constructor(stroke) {\n this.stroke = stroke;\n this.activeIndices = [];\n }\n\n get firstKey() {\n return this.stroke[0];\n }\n /**\n * Evaluate whether the specified key completes stroke or not\n * @param {string} key\n * @return T/F whether the specified key completes stroke or not\n */\n\n\n evaluate(key) {\n if (key === this.firstKey) {\n // add a new active index\n this.activeIndices.push(0);\n }\n\n let isCompleted = false;\n this.activeIndices = this.activeIndices.map(index => {\n // return null when key does not match\n if (key !== this.stroke[index]) {\n return null;\n }\n\n const nextIndex = index + 1;\n\n if (this.stroke.length <= nextIndex) {\n isCompleted = true;\n return null;\n }\n\n return nextIndex;\n }) // exclude null\n .filter(index => index != null); // reset if completed\n\n if (isCompleted) {\n this.activeIndices = [];\n }\n\n logger.debug('activeIndices for [', this.stroke, '] => [', this.activeIndices, ']');\n return isCompleted;\n }\n\n}//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9zcmMvY2xpZW50L2pzL21vZGVscy9Ib3RrZXlTdHJva2UuanMuanMiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9zcmMvY2xpZW50L2pzL21vZGVscy9Ib3RrZXlTdHJva2UuanM/YWYyYiJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgbG9nZ2VyRmFjdG9yeSBmcm9tICdAYWxpYXMvbG9nZ2VyJztcblxuY29uc3QgbG9nZ2VyID0gbG9nZ2VyRmFjdG9yeSgnZ3Jvd2k6Y2xpOkhvdGtleVN0cm9rZScpO1xuXG5leHBvcnQgZGVmYXVsdCBjbGFzcyBIb3RrZXlTdHJva2Uge1xuXG4gIGNvbnN0cnVjdG9yKHN0cm9rZSkge1xuICAgIHRoaXMuc3Ryb2tlID0gc3Ryb2tlO1xuICAgIHRoaXMuYWN0aXZlSW5kaWNlcyA9IFtdO1xuICB9XG5cbiAgZ2V0IGZpcnN0S2V5KCkge1xuICAgIHJldHVybiB0aGlzLnN0cm9rZVswXTtcbiAgfVxuXG4gIC8qKlxuICAgKiBFdmFsdWF0ZSB3aGV0aGVyIHRoZSBzcGVjaWZpZWQga2V5IGNvbXBsZXRlcyBzdHJva2Ugb3Igbm90XG4gICAqIEBwYXJhbSB7c3RyaW5nfSBrZXlcbiAgICogQHJldHVybiBUL0Ygd2hldGhlciB0aGUgc3BlY2lmaWVkIGtleSBjb21wbGV0ZXMgc3Ryb2tlIG9yIG5vdFxuICAgKi9cbiAgZXZhbHVhdGUoa2V5KSB7XG4gICAgaWYgKGtleSA9PT0gdGhpcy5maXJzdEtleSkge1xuICAgICAgLy8gYWRkIGEgbmV3IGFjdGl2ZSBpbmRleFxuICAgICAgdGhpcy5hY3RpdmVJbmRpY2VzLnB1c2goMCk7XG4gICAgfVxuXG4gICAgbGV0IGlzQ29tcGxldGVkID0gZmFsc2U7XG4gICAgdGhpcy5hY3RpdmVJbmRpY2VzID0gdGhpcy5hY3RpdmVJbmRpY2VzXG4gICAgICAubWFwKChpbmRleCkgPT4ge1xuICAgICAgICAvLyByZXR1cm4gbnVsbCB3aGVuIGtleSBkb2VzIG5vdCBtYXRjaFxuICAgICAgICBpZiAoa2V5ICE9PSB0aGlzLnN0cm9rZVtpbmRleF0pIHtcbiAgICAgICAgICByZXR1cm4gbnVsbDtcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0IG5leHRJbmRleCA9IGluZGV4ICsgMTtcblxuICAgICAgICBpZiAodGhpcy5zdHJva2UubGVuZ3RoIDw9IG5leHRJbmRleCkge1xuICAgICAgICAgIGlzQ29tcGxldGVkID0gdHJ1ZTtcbiAgICAgICAgICByZXR1cm4gbnVsbDtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiBuZXh0SW5kZXg7XG4gICAgICB9KVxuICAgICAgLy8gZXhjbHVkZSBudWxsXG4gICAgICAuZmlsdGVyKGluZGV4ID0+IGluZGV4ICE9IG51bGwpO1xuXG4gICAgLy8gcmVzZXQgaWYgY29tcGxldGVkXG4gICAgaWYgKGlzQ29tcGxldGVkKSB7XG4gICAgICB0aGlzLmFjdGl2ZUluZGljZXMgPSBbXTtcbiAgICB9XG5cbiAgICBsb2dnZXIuZGVidWcoJ2FjdGl2ZUluZGljZXMgZm9yIFsnLCB0aGlzLnN0cm9rZSwgJ10gPT4gWycsIHRoaXMuYWN0aXZlSW5kaWNlcywgJ10nKTtcblxuICAgIHJldHVybiBpc0NvbXBsZXRlZDtcbiAgfVxuXG59XG4iXSwibWFwcGluZ3MiOiJBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFFQTtBQUVBO0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUVBOzs7Ozs7O0FBS0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFmQTtBQUNBO0FBbUJBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFFQTtBQUNBO0FBQ0E7QUFuREEiLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./src/client/js/models/HotkeyStroke.js\n");
- /***/ }),
- /***/ "./src/client/js/services/AdminLdapSecurityContainer.js":
- /*!**************************************************************!*\
- !*** ./src/client/js/services/AdminLdapSecurityContainer.js ***!
- \**************************************************************/
- /*! exports provided: default */
- /***/ (function(module, __webpack_exports__, __webpack_require__) {
- "use strict";
- eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"default\", function() { return AdminLdapSecurityContainer; });\n/* harmony import */ var unstated__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! unstated */ \"./node_modules/unstated/lib/unstated.es.js\");\n/* harmony import */ var _alias_logger__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @alias/logger */ \"./src/lib/service/logger/index.js\");\n/* harmony import */ var _alias_logger__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_alias_logger__WEBPACK_IMPORTED_MODULE_1__);\n/* harmony import */ var _lib_util_removeNullPropertyFromObject__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../../lib/util/removeNullPropertyFromObject */ \"./src/lib/util/removeNullPropertyFromObject.js\");\n/* harmony import */ var _lib_util_removeNullPropertyFromObject__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(_lib_util_removeNullPropertyFromObject__WEBPACK_IMPORTED_MODULE_2__);\n\n\n\nconst logger = _alias_logger__WEBPACK_IMPORTED_MODULE_1___default()('growi:services:AdminLdapSecurityContainer');\n/**\n * Service container for admin security page (SecurityLdapSetting.jsx)\n * @extends {Container} unstated Container\n */\n\nclass AdminLdapSecurityContainer extends unstated__WEBPACK_IMPORTED_MODULE_0__[\"Container\"] {\n constructor(appContainer) {\n super();\n this.appContainer = appContainer;\n this.dummyServerUrl = 0;\n this.dummyServerUrlForError = 1;\n this.state = {\n retrieveError: null,\n // set dummy value tile for using suspense\n serverUrl: this.dummyServerUrl,\n isUserBind: false,\n ldapBindDN: '',\n ldapBindDNPassword: '',\n ldapSearchFilter: '',\n ldapAttrMapUsername: '',\n isSameUsernameTreatedAsIdenticalUser: false,\n ldapAttrMapMail: '',\n ldapAttrMapName: '',\n ldapGroupSearchBase: '',\n ldapGroupSearchFilter: '',\n ldapGroupDnProperty: ''\n };\n }\n /**\n * retrieve security data\n */\n\n\n async retrieveSecurityData() {\n try {\n const response = await this.appContainer.apiv3.get('/security-setting/');\n const {\n ldapAuth\n } = response.data.securityParams;\n this.setState({\n serverUrl: ldapAuth.serverUrl,\n isUserBind: ldapAuth.isUserBind,\n ldapBindDN: ldapAuth.ldapBindDN,\n ldapBindDNPassword: ldapAuth.ldapBindDNPassword,\n ldapSearchFilter: ldapAuth.ldapSearchFilter,\n ldapAttrMapUsername: ldapAuth.ldapAttrMapUsername,\n isSameUsernameTreatedAsIdenticalUser: ldapAuth.isSameUsernameTreatedAsIdenticalUser,\n ldapAttrMapMail: ldapAuth.ldapAttrMapMail,\n ldapAttrMapName: ldapAuth.ldapAttrMapName,\n ldapGroupSearchBase: ldapAuth.ldapGroupSearchBase,\n ldapGroupSearchFilter: ldapAuth.ldapGroupSearchFilter,\n ldapGroupDnProperty: ldapAuth.ldapGroupDnProperty\n });\n } catch (err) {\n this.setState({\n retrieveError: err\n });\n logger.error(err);\n throw new Error('Failed to fetch data');\n }\n }\n /**\n * Workaround for the mangling in production build to break constructor.name\n */\n\n\n static getClassName() {\n return 'AdminLdapSecurityContainer';\n }\n /**\n * Change serverUrl\n */\n\n\n changeServerUrl(serverUrl) {\n this.setState({\n serverUrl\n });\n }\n /**\n * Change ldapBindMode\n */\n\n\n changeLdapBindMode() {\n this.setState({\n isUserBind: !this.state.isUserBind\n });\n }\n /**\n * Change bindDN\n */\n\n\n changeBindDN(ldapBindDN) {\n this.setState({\n ldapBindDN\n });\n }\n /**\n * Change bindDNPassword\n */\n\n\n changeBindDNPassword(ldapBindDNPassword) {\n this.setState({\n ldapBindDNPassword\n });\n }\n /**\n * Change ldapSearchFilter\n */\n\n\n changeSearchFilter(ldapSearchFilter) {\n this.setState({\n ldapSearchFilter\n });\n }\n /**\n * Change ldapAttrMapUsername\n */\n\n\n changeAttrMapUsername(ldapAttrMapUsername) {\n this.setState({\n ldapAttrMapUsername\n });\n }\n /**\n * Switch is same username treated as identical user\n */\n\n\n switchIsSameUsernameTreatedAsIdenticalUser() {\n this.setState({\n isSameUsernameTreatedAsIdenticalUser: !this.state.isSameUsernameTreatedAsIdenticalUser\n });\n }\n /**\n * Change ldapAttrMapMail\n */\n\n\n changeAttrMapMail(ldapAttrMapMail) {\n this.setState({\n ldapAttrMapMail\n });\n }\n /**\n * Change ldapAttrMapName\n */\n\n\n changeAttrMapName(ldapAttrMapName) {\n this.setState({\n ldapAttrMapName\n });\n }\n /**\n * Change ldapGroupSearchBase\n */\n\n\n changeGroupSearchBase(ldapGroupSearchBase) {\n this.setState({\n ldapGroupSearchBase\n });\n }\n /**\n * Change ldapGroupSearchFilter\n */\n\n\n changeGroupSearchFilter(ldapGroupSearchFilter) {\n this.setState({\n ldapGroupSearchFilter\n });\n }\n /**\n * Change ldapGroupDnProperty\n */\n\n\n changeGroupDnProperty(ldapGroupDnProperty) {\n this.setState({\n ldapGroupDnProperty\n });\n }\n /**\n * Update ldap option\n */\n\n\n async updateLdapSetting() {\n const {\n serverUrl,\n isUserBind,\n ldapBindDN,\n ldapBindDNPassword,\n ldapSearchFilter,\n ldapAttrMapUsername,\n isSameUsernameTreatedAsIdenticalUser,\n ldapAttrMapMail,\n ldapAttrMapName,\n ldapGroupSearchBase,\n ldapGroupSearchFilter,\n ldapGroupDnProperty\n } = this.state;\n let requestParams = {\n serverUrl,\n isUserBind,\n ldapBindDN,\n ldapBindDNPassword,\n ldapSearchFilter,\n ldapAttrMapUsername,\n isSameUsernameTreatedAsIdenticalUser,\n ldapAttrMapMail,\n ldapAttrMapName,\n ldapGroupSearchBase,\n ldapGroupSearchFilter,\n ldapGroupDnProperty\n };\n requestParams = await _lib_util_removeNullPropertyFromObject__WEBPACK_IMPORTED_MODULE_2___default()(requestParams);\n const response = await this.appContainer.apiv3.put('/security-setting/ldap', requestParams);\n const {\n securitySettingParams\n } = response.data;\n this.setState({\n serverUrl: securitySettingParams.serverUrl,\n isUserBind: securitySettingParams.isUserBind,\n ldapBindDN: securitySettingParams.ldapBindDN,\n ldapBindDNPassword: securitySettingParams.ldapBindDNPassword,\n ldapSearchFilter: securitySettingParams.ldapSearchFilter,\n ldapAttrMapUsername: securitySettingParams.ldapAttrMapUsername,\n isSameUsernameTreatedAsIdenticalUser: securitySettingParams.isSameUsernameTreatedAsIdenticalUser,\n ldapAttrMapMail: securitySettingParams.ldapAttrMapMail,\n ldapAttrMapName: securitySettingParams.ldapAttrMapName,\n ldapGroupSearchBase: securitySettingParams.ldapGroupSearchBase,\n ldapGroupSearchFilter: securitySettingParams.ldapGroupSearchFilter,\n ldapGroupDnProperty: securitySettingParams.ldapGroupDnProperty\n });\n return response;\n }\n\n}//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9zcmMvY2xpZW50L2pzL3NlcnZpY2VzL0FkbWluTGRhcFNlY3VyaXR5Q29udGFpbmVyLmpzLmpzIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vLy4vc3JjL2NsaWVudC9qcy9zZXJ2aWNlcy9BZG1pbkxkYXBTZWN1cml0eUNvbnRhaW5lci5qcz9jYTQwIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbnRhaW5lciB9IGZyb20gJ3Vuc3RhdGVkJztcbmltcG9ydCBsb2dnZXJGYWN0b3J5IGZyb20gJ0BhbGlhcy9sb2dnZXInO1xuXG5pbXBvcnQgcmVtb3ZlTnVsbFByb3BlcnR5RnJvbU9iamVjdCBmcm9tICcuLi8uLi8uLi9saWIvdXRpbC9yZW1vdmVOdWxsUHJvcGVydHlGcm9tT2JqZWN0JztcblxuY29uc3QgbG9nZ2VyID0gbG9nZ2VyRmFjdG9yeSgnZ3Jvd2k6c2VydmljZXM6QWRtaW5MZGFwU2VjdXJpdHlDb250YWluZXInKTtcblxuLyoqXG4gKiBTZXJ2aWNlIGNvbnRhaW5lciBmb3IgYWRtaW4gc2VjdXJpdHkgcGFnZSAoU2VjdXJpdHlMZGFwU2V0dGluZy5qc3gpXG4gKiBAZXh0ZW5kcyB7Q29udGFpbmVyfSB1bnN0YXRlZCBDb250YWluZXJcbiAqL1xuZXhwb3J0IGRlZmF1bHQgY2xhc3MgQWRtaW5MZGFwU2VjdXJpdHlDb250YWluZXIgZXh0ZW5kcyBDb250YWluZXIge1xuXG4gIGNvbnN0cnVjdG9yKGFwcENvbnRhaW5lcikge1xuICAgIHN1cGVyKCk7XG5cbiAgICB0aGlzLmFwcENvbnRhaW5lciA9IGFwcENvbnRhaW5lcjtcbiAgICB0aGlzLmR1bW15U2VydmVyVXJsID0gMDtcbiAgICB0aGlzLmR1bW15U2VydmVyVXJsRm9yRXJyb3IgPSAxO1xuXG4gICAgdGhpcy5zdGF0ZSA9IHtcbiAgICAgIHJldHJpZXZlRXJyb3I6IG51bGwsXG4gICAgICAvLyBzZXQgZHVtbXkgdmFsdWUgdGlsZSBmb3IgdXNpbmcgc3VzcGVuc2VcbiAgICAgIHNlcnZlclVybDogdGhpcy5kdW1teVNlcnZlclVybCxcbiAgICAgIGlzVXNlckJpbmQ6IGZhbHNlLFxuICAgICAgbGRhcEJpbmRETjogJycsXG4gICAgICBsZGFwQmluZEROUGFzc3dvcmQ6ICcnLFxuICAgICAgbGRhcFNlYXJjaEZpbHRlcjogJycsXG4gICAgICBsZGFwQXR0ck1hcFVzZXJuYW1lOiAnJyxcbiAgICAgIGlzU2FtZVVzZXJuYW1lVHJlYXRlZEFzSWRlbnRpY2FsVXNlcjogZmFsc2UsXG4gICAgICBsZGFwQXR0ck1hcE1haWw6ICcnLFxuICAgICAgbGRhcEF0dHJNYXBOYW1lOiAnJyxcbiAgICAgIGxkYXBHcm91cFNlYXJjaEJhc2U6ICcnLFxuICAgICAgbGRhcEdyb3VwU2VhcmNoRmlsdGVyOiAnJyxcbiAgICAgIGxkYXBHcm91cERuUHJvcGVydHk6ICcnLFxuICAgIH07XG5cbiAgfVxuXG4gIC8qKlxuICAgKiByZXRyaWV2ZSBzZWN1cml0eSBkYXRhXG4gICAqL1xuICBhc3luYyByZXRyaWV2ZVNlY3VyaXR5RGF0YSgpIHtcbiAgICB0cnkge1xuICAgICAgY29uc3QgcmVzcG9uc2UgPSBhd2FpdCB0aGlzLmFwcENvbnRhaW5lci5hcGl2My5nZXQoJy9zZWN1cml0eS1zZXR0aW5nLycpO1xuICAgICAgY29uc3QgeyBsZGFwQXV0aCB9ID0gcmVzcG9uc2UuZGF0YS5zZWN1cml0eVBhcmFtcztcbiAgICAgIHRoaXMuc2V0U3RhdGUoe1xuICAgICAgICBzZXJ2ZXJVcmw6IGxkYXBBdXRoLnNlcnZlclVybCxcbiAgICAgICAgaXNVc2VyQmluZDogbGRhcEF1dGguaXNVc2VyQmluZCxcbiAgICAgICAgbGRhcEJpbmRETjogbGRhcEF1dGgubGRhcEJpbmRETixcbiAgICAgICAgbGRhcEJpbmRETlBhc3N3b3JkOiBsZGFwQXV0aC5sZGFwQmluZEROUGFzc3dvcmQsXG4gICAgICAgIGxkYXBTZWFyY2hGaWx0ZXI6IGxkYXBBdXRoLmxkYXBTZWFyY2hGaWx0ZXIsXG4gICAgICAgIGxkYXBBdHRyTWFwVXNlcm5hbWU6IGxkYXBBdXRoLmxkYXBBdHRyTWFwVXNlcm5hbWUsXG4gICAgICAgIGlzU2FtZVVzZXJuYW1lVHJlYXRlZEFzSWRlbnRpY2FsVXNlcjogbGRhcEF1dGguaXNTYW1lVXNlcm5hbWVUcmVhdGVkQXNJZGVudGljYWxVc2VyLFxuICAgICAgICBsZGFwQXR0ck1hcE1haWw6IGxkYXBBdXRoLmxkYXBBdHRyTWFwTWFpbCxcbiAgICAgICAgbGRhcEF0dHJNYXBOYW1lOiBsZGFwQXV0aC5sZGFwQXR0ck1hcE5hbWUsXG4gICAgICAgIGxkYXBHcm91cFNlYXJjaEJhc2U6IGxkYXBBdXRoLmxkYXBHcm91cFNlYXJjaEJhc2UsXG4gICAgICAgIGxkYXBHcm91cFNlYXJjaEZpbHRlcjogbGRhcEF1dGgubGRhcEdyb3VwU2VhcmNoRmlsdGVyLFxuICAgICAgICBsZGFwR3JvdXBEblByb3BlcnR5OiBsZGFwQXV0aC5sZGFwR3JvdXBEblByb3BlcnR5LFxuICAgICAgfSk7XG4gICAgfVxuICAgIGNhdGNoIChlcnIpIHtcbiAgICAgIHRoaXMuc2V0U3RhdGUoeyByZXRyaWV2ZUVycm9yOiBlcnIgfSk7XG4gICAgICBsb2dnZXIuZXJyb3IoZXJyKTtcbiAgICAgIHRocm93IG5ldyBFcnJvcignRmFpbGVkIHRvIGZldGNoIGRhdGEnKTtcbiAgICB9XG4gIH1cblxuXG4gIC8qKlxuICAgKiBXb3JrYXJvdW5kIGZvciB0aGUgbWFuZ2xpbmcgaW4gcHJvZHVjdGlvbiBidWlsZCB0byBicmVhayBjb25zdHJ1Y3Rvci5uYW1lXG4gICAqL1xuICBzdGF0aWMgZ2V0Q2xhc3NOYW1lKCkge1xuICAgIHJldHVybiAnQWRtaW5MZGFwU2VjdXJpdHlDb250YWluZXInO1xuICB9XG5cbiAgLyoqXG4gICAqIENoYW5nZSBzZXJ2ZXJVcmxcbiAgICovXG4gIGNoYW5nZVNlcnZlclVybChzZXJ2ZXJVcmwpIHtcbiAgICB0aGlzLnNldFN0YXRlKHsgc2VydmVyVXJsIH0pO1xuICB9XG5cbiAgLyoqXG4gICAqIENoYW5nZSBsZGFwQmluZE1vZGVcbiAgICovXG4gIGNoYW5nZUxkYXBCaW5kTW9kZSgpIHtcbiAgICB0aGlzLnNldFN0YXRlKHsgaXNVc2VyQmluZDogIXRoaXMuc3RhdGUuaXNVc2VyQmluZCB9KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBDaGFuZ2UgYmluZEROXG4gICAqL1xuICBjaGFuZ2VCaW5kRE4obGRhcEJpbmRETikge1xuICAgIHRoaXMuc2V0U3RhdGUoeyBsZGFwQmluZEROIH0pO1xuICB9XG5cbiAgLyoqXG4gICAqIENoYW5nZSBiaW5kRE5QYXNzd29yZFxuICAgKi9cbiAgY2hhbmdlQmluZEROUGFzc3dvcmQobGRhcEJpbmRETlBhc3N3b3JkKSB7XG4gICAgdGhpcy5zZXRTdGF0ZSh7IGxkYXBCaW5kRE5QYXNzd29yZCB9KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBDaGFuZ2UgbGRhcFNlYXJjaEZpbHRlclxuICAgKi9cbiAgY2hhbmdlU2VhcmNoRmlsdGVyKGxkYXBTZWFyY2hGaWx0ZXIpIHtcbiAgICB0aGlzLnNldFN0YXRlKHsgbGRhcFNlYXJjaEZpbHRlciB9KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBDaGFuZ2UgbGRhcEF0dHJNYXBVc2VybmFtZVxuICAgKi9cbiAgY2hhbmdlQXR0ck1hcFVzZXJuYW1lKGxkYXBBdHRyTWFwVXNlcm5hbWUpIHtcbiAgICB0aGlzLnNldFN0YXRlKHsgbGRhcEF0dHJNYXBVc2VybmFtZSB9KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBTd2l0Y2ggaXMgc2FtZSB1c2VybmFtZSB0cmVhdGVkIGFzIGlkZW50aWNhbCB1c2VyXG4gICAqL1xuICBzd2l0Y2hJc1NhbWVVc2VybmFtZVRyZWF0ZWRBc0lkZW50aWNhbFVzZXIoKSB7XG4gICAgdGhpcy5zZXRTdGF0ZSh7IGlzU2FtZVVzZXJuYW1lVHJlYXRlZEFzSWRlbnRpY2FsVXNlcjogIXRoaXMuc3RhdGUuaXNTYW1lVXNlcm5hbWVUcmVhdGVkQXNJZGVudGljYWxVc2VyIH0pO1xuICB9XG5cbiAgLyoqXG4gICAqIENoYW5nZSBsZGFwQXR0ck1hcE1haWxcbiAgICovXG4gIGNoYW5nZUF0dHJNYXBNYWlsKGxkYXBBdHRyTWFwTWFpbCkge1xuICAgIHRoaXMuc2V0U3RhdGUoeyBsZGFwQXR0ck1hcE1haWwgfSk7XG4gIH1cblxuICAvKipcbiAgICogQ2hhbmdlIGxkYXBBdHRyTWFwTmFtZVxuICAgKi9cbiAgY2hhbmdlQXR0ck1hcE5hbWUobGRhcEF0dHJNYXBOYW1lKSB7XG4gICAgdGhpcy5zZXRTdGF0ZSh7IGxkYXBBdHRyTWFwTmFtZSB9KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBDaGFuZ2UgbGRhcEdyb3VwU2VhcmNoQmFzZVxuICAgKi9cbiAgY2hhbmdlR3JvdXBTZWFyY2hCYXNlKGxkYXBHcm91cFNlYXJjaEJhc2UpIHtcbiAgICB0aGlzLnNldFN0YXRlKHsgbGRhcEdyb3VwU2VhcmNoQmFzZSB9KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBDaGFuZ2UgbGRhcEdyb3VwU2VhcmNoRmlsdGVyXG4gICAqL1xuICBjaGFuZ2VHcm91cFNlYXJjaEZpbHRlcihsZGFwR3JvdXBTZWFyY2hGaWx0ZXIpIHtcbiAgICB0aGlzLnNldFN0YXRlKHsgbGRhcEdyb3VwU2VhcmNoRmlsdGVyIH0pO1xuICB9XG5cbiAgLyoqXG4gICAqIENoYW5nZSBsZGFwR3JvdXBEblByb3BlcnR5XG4gICAqL1xuICBjaGFuZ2VHcm91cERuUHJvcGVydHkobGRhcEdyb3VwRG5Qcm9wZXJ0eSkge1xuICAgIHRoaXMuc2V0U3RhdGUoeyBsZGFwR3JvdXBEblByb3BlcnR5IH0pO1xuICB9XG5cbiAgLyoqXG4gICAqIFVwZGF0ZSBsZGFwIG9wdGlvblxuICAgKi9cbiAgYXN5bmMgdXBkYXRlTGRhcFNldHRpbmcoKSB7XG4gICAgY29uc3Qge1xuICAgICAgc2VydmVyVXJsLCBpc1VzZXJCaW5kLCBsZGFwQmluZEROLCBsZGFwQmluZEROUGFzc3dvcmQsIGxkYXBTZWFyY2hGaWx0ZXIsIGxkYXBBdHRyTWFwVXNlcm5hbWUsIGlzU2FtZVVzZXJuYW1lVHJlYXRlZEFzSWRlbnRpY2FsVXNlcixcbiAgICAgIGxkYXBBdHRyTWFwTWFpbCwgbGRhcEF0dHJNYXBOYW1lLCBsZGFwR3JvdXBTZWFyY2hCYXNlLCBsZGFwR3JvdXBTZWFyY2hGaWx0ZXIsIGxkYXBHcm91cERuUHJvcGVydHksXG4gICAgfSA9IHRoaXMuc3RhdGU7XG5cbiAgICBsZXQgcmVxdWVzdFBhcmFtcyA9IHtcbiAgICAgIHNlcnZlclVybCxcbiAgICAgIGlzVXNlckJpbmQsXG4gICAgICBsZGFwQmluZEROLFxuICAgICAgbGRhcEJpbmRETlBhc3N3b3JkLFxuICAgICAgbGRhcFNlYXJjaEZpbHRlcixcbiAgICAgIGxkYXBBdHRyTWFwVXNlcm5hbWUsXG4gICAgICBpc1NhbWVVc2VybmFtZVRyZWF0ZWRBc0lkZW50aWNhbFVzZXIsXG4gICAgICBsZGFwQXR0ck1hcE1haWwsXG4gICAgICBsZGFwQXR0ck1hcE5hbWUsXG4gICAgICBsZGFwR3JvdXBTZWFyY2hCYXNlLFxuICAgICAgbGRhcEdyb3VwU2VhcmNoRmlsdGVyLFxuICAgICAgbGRhcEdyb3VwRG5Qcm9wZXJ0eSxcbiAgICB9O1xuXG4gICAgcmVxdWVzdFBhcmFtcyA9IGF3YWl0IHJlbW92ZU51bGxQcm9wZXJ0eUZyb21PYmplY3QocmVxdWVzdFBhcmFtcyk7XG4gICAgY29uc3QgcmVzcG9uc2UgPSBhd2FpdCB0aGlzLmFwcENvbnRhaW5lci5hcGl2My5wdXQoJy9zZWN1cml0eS1zZXR0aW5nL2xkYXAnLCByZXF1ZXN0UGFyYW1zKTtcbiAgICBjb25zdCB7IHNlY3VyaXR5U2V0dGluZ1BhcmFtcyB9ID0gcmVzcG9uc2UuZGF0YTtcblxuICAgIHRoaXMuc2V0U3RhdGUoe1xuICAgICAgc2VydmVyVXJsOiBzZWN1cml0eVNldHRpbmdQYXJhbXMuc2VydmVyVXJsLFxuICAgICAgaXNVc2VyQmluZDogc2VjdXJpdHlTZXR0aW5nUGFyYW1zLmlzVXNlckJpbmQsXG4gICAgICBsZGFwQmluZEROOiBzZWN1cml0eVNldHRpbmdQYXJhbXMubGRhcEJpbmRETixcbiAgICAgIGxkYXBCaW5kRE5QYXNzd29yZDogc2VjdXJpdHlTZXR0aW5nUGFyYW1zLmxkYXBCaW5kRE5QYXNzd29yZCxcbiAgICAgIGxkYXBTZWFyY2hGaWx0ZXI6IHNlY3VyaXR5U2V0dGluZ1BhcmFtcy5sZGFwU2VhcmNoRmlsdGVyLFxuICAgICAgbGRhcEF0dHJNYXBVc2VybmFtZTogc2VjdXJpdHlTZXR0aW5nUGFyYW1zLmxkYXBBdHRyTWFwVXNlcm5hbWUsXG4gICAgICBpc1NhbWVVc2VybmFtZVRyZWF0ZWRBc0lkZW50aWNhbFVzZXI6IHNlY3VyaXR5U2V0dGluZ1BhcmFtcy5pc1NhbWVVc2VybmFtZVRyZWF0ZWRBc0lkZW50aWNhbFVzZXIsXG4gICAgICBsZGFwQXR0ck1hcE1haWw6IHNlY3VyaXR5U2V0dGluZ1BhcmFtcy5sZGFwQXR0ck1hcE1haWwsXG4gICAgICBsZGFwQXR0ck1hcE5hbWU6IHNlY3VyaXR5U2V0dGluZ1BhcmFtcy5sZGFwQXR0ck1hcE5hbWUsXG4gICAgICBsZGFwR3JvdXBTZWFyY2hCYXNlOiBzZWN1cml0eVNldHRpbmdQYXJhbXMubGRhcEdyb3VwU2VhcmNoQmFzZSxcbiAgICAgIGxkYXBHcm91cFNlYXJjaEZpbHRlcjogc2VjdXJpdHlTZXR0aW5nUGFyYW1zLmxkYXBHcm91cFNlYXJjaEZpbHRlcixcbiAgICAgIGxkYXBHcm91cERuUHJvcGVydHk6IHNlY3VyaXR5U2V0dGluZ1BhcmFtcy5sZGFwR3JvdXBEblByb3BlcnR5LFxuICAgIH0pO1xuICAgIHJldHVybiByZXNwb25zZTtcbiAgfVxuXG59XG4iXSwibWFwcGluZ3MiOiJBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFDQTtBQUVBO0FBRUE7QUFFQTs7Ozs7QUFJQTtBQUVBO0FBQ0E7QUFFQTtBQUNBO0FBQ0E7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFkQTtBQWlCQTtBQUVBOzs7OztBQUdBO0FBQ0E7QUFDQTtBQUNBO0FBQUE7QUFBQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBWkE7QUFjQTtBQUVBO0FBQUE7QUFBQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBR0E7Ozs7O0FBR0E7QUFDQTtBQUNBO0FBRUE7Ozs7O0FBR0E7QUFDQTtBQUFBO0FBQUE7QUFDQTtBQUVBOzs7OztBQUdBO0FBQ0E7QUFBQTtBQUFBO0FBQ0E7QUFFQTs7Ozs7QUFHQTtBQUNBO0FBQUE7QUFBQTtBQUNBO0FBRUE7Ozs7O0FBR0E7QUFDQTtBQUFBO0FBQUE7QUFDQTtBQUVBOzs7OztBQUdBO0FBQ0E7QUFBQTtBQUFBO0FBQ0E7QUFFQTs7Ozs7QUFHQTtBQUNBO0FBQUE7QUFBQTtBQUNBO0FBRUE7Ozs7O0FBR0E7QUFDQTtBQUFBO0FBQUE7QUFDQTtBQUVBOzs7OztBQUdBO0FBQ0E7QUFBQTtBQUFBO0FBQ0E7QUFFQTs7Ozs7QUFHQTtBQUNBO0FBQUE7QUFBQTtBQUNBO0FBRUE7Ozs7O0FBR0E7QUFDQTtBQUFBO0FBQUE7QUFDQTtBQUVBOzs7OztBQUdBO0FBQ0E7QUFBQTtBQUFBO0FBQ0E7QUFFQTs7Ozs7QUFHQTtBQUNBO0FBQUE7QUFBQTtBQUNBO0FBRUE7Ozs7O0FBR0E7QUFDQTtBQUNBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQ0E7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUZBO0FBS0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFaQTtBQWVBO0FBQ0E7QUFDQTtBQUFBO0FBQUE7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQVpBO0FBY0E7QUFDQTtBQUNBO0FBak1BIiwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./src/client/js/services/AdminLdapSecurityContainer.js\n");
- /***/ }),
- /***/ "./src/client/js/services/AppContainer.js":
- /*!************************************************!*\
- !*** ./src/client/js/services/AppContainer.js ***!
- \************************************************/
- /*! exports provided: default */
- /***/ (function(module, __webpack_exports__, __webpack_require__) {
- "use strict";
- eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"default\", function() { return AppContainer; });\n/* harmony import */ var unstated__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! unstated */ \"./node_modules/unstated/lib/unstated.es.js\");\n/* harmony import */ var axios__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! axios */ \"./node_modules/axios/index.js\");\n/* harmony import */ var axios__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(axios__WEBPACK_IMPORTED_MODULE_1__);\n/* harmony import */ var url_join__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! url-join */ \"./node_modules/url-join/lib/url-join.js\");\n/* harmony import */ var url_join__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(url_join__WEBPACK_IMPORTED_MODULE_2__);\n/* harmony import */ var _commons_service_interceptor_manager__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @commons/service/interceptor-manager */ \"./src/lib/service/interceptor-manager.js\");\n/* harmony import */ var _commons_service_interceptor_manager__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(_commons_service_interceptor_manager__WEBPACK_IMPORTED_MODULE_3__);\n/* harmony import */ var _util_emojione_emoji_strategy_shrinked_json__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../util/emojione/emoji_strategy_shrinked.json */ \"./src/client/js/util/emojione/emoji_strategy_shrinked.json\");\nvar _util_emojione_emoji_strategy_shrinked_json__WEBPACK_IMPORTED_MODULE_4___namespace = /*#__PURE__*/__webpack_require__.t(/*! ../util/emojione/emoji_strategy_shrinked.json */ \"./src/client/js/util/emojione/emoji_strategy_shrinked.json\", 1);\n/* harmony import */ var _util_GrowiRenderer__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../util/GrowiRenderer */ \"./src/client/js/util/GrowiRenderer.js\");\n/* harmony import */ var _util_color_scheme__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../util/color-scheme */ \"./src/client/js/util/color-scheme.js\");\n/* harmony import */ var _util_apiv1ErrorHandler__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ../util/apiv1ErrorHandler */ \"./src/client/js/util/apiv1ErrorHandler.js\");\n/* harmony import */ var _util_apiv1ErrorHandler__WEBPACK_IMPORTED_MODULE_7___default = /*#__PURE__*/__webpack_require__.n(_util_apiv1ErrorHandler__WEBPACK_IMPORTED_MODULE_7__);\n/* harmony import */ var _util_i18n__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ../util/i18n */ \"./src/client/js/util/i18n.js\");\n/* harmony import */ var _util_apiv3ErrorHandler__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ../util/apiv3ErrorHandler */ \"./src/client/js/util/apiv3ErrorHandler.js\");\n\n\n\n\n\n\n\n\n\n\n/**\n * Service container related to options for Application\n * @extends {Container} unstated Container\n */\n\nclass AppContainer extends unstated__WEBPACK_IMPORTED_MODULE_0__[\"Container\"] {\n constructor() {\n var _this$currentUser;\n\n super();\n this.state = {\n preferDarkModeByMediaQuery: false,\n // stetes for contents\n recentlyUpdatedPages: []\n };\n const body = document.querySelector('body');\n this.csrfToken = body.dataset.csrftoken;\n this.config = JSON.parse(document.getElementById('growi-context-hydrate').textContent || '{}');\n const userAgent = window.navigator.userAgent.toLowerCase();\n this.isMobile = /iphone|ipad|android/.test(userAgent);\n const currentUserElem = document.getElementById('growi-current-user');\n\n if (currentUserElem != null) {\n this.currentUser = JSON.parse(currentUserElem.textContent);\n }\n\n const isSharedPageElem = document.getElementById('is-shared-page'); // check what kind of user\n\n this.isGuestUser = this.currentUser == null;\n this.isSharedUser = isSharedPageElem != null && this.currentUser == null;\n const userLocaleId = (_this$currentUser = this.currentUser) === null || _this$currentUser === void 0 ? void 0 : _this$currentUser.lang;\n this.i18n = Object(_util_i18n__WEBPACK_IMPORTED_MODULE_8__[\"i18nFactory\"])(userLocaleId);\n this.containerInstances = {};\n this.componentInstances = {};\n this.rendererInstances = {};\n this.apiGet = this.apiGet.bind(this);\n this.apiPost = this.apiPost.bind(this);\n this.apiDelete = this.apiDelete.bind(this);\n this.apiRequest = this.apiRequest.bind(this);\n this.apiv3Root = '/_api/v3';\n this.apiv3 = {\n get: this.apiv3Get.bind(this),\n post: this.apiv3Post.bind(this),\n put: this.apiv3Put.bind(this),\n delete: this.apiv3Delete.bind(this)\n };\n }\n /**\n * Workaround for the mangling in production build to break constructor.name\n */\n\n\n static getClassName() {\n return 'AppContainer';\n }\n\n initApp() {\n this.initMediaQueryForColorScheme();\n this.injectToWindow();\n }\n\n initContents() {\n const body = document.querySelector('body');\n this.isAdmin = body.dataset.isAdmin === 'true';\n this.isDocSaved = true;\n this.originRenderer = new _util_GrowiRenderer__WEBPACK_IMPORTED_MODULE_5__[\"default\"](this);\n this.interceptorManager = new _commons_service_interceptor_manager__WEBPACK_IMPORTED_MODULE_3___default.a();\n\n if (this.currentUser != null) {\n // remove old user cache\n this.removeOldUserCache();\n }\n\n const isPluginEnabled = body.dataset.pluginEnabled === 'true';\n\n if (isPluginEnabled) {\n this.initPlugins();\n }\n\n this.injectToWindow();\n }\n\n async initMediaQueryForColorScheme() {\n const switchStateByMediaQuery = async mql => {\n const preferDarkMode = mql.matches;\n this.setState({\n preferDarkModeByMediaQuery: preferDarkMode\n });\n Object(_util_color_scheme__WEBPACK_IMPORTED_MODULE_6__[\"applyColorScheme\"])();\n }; // add event listener\n\n\n _util_color_scheme__WEBPACK_IMPORTED_MODULE_6__[\"mediaQueryListForDarkMode\"].addListener(switchStateByMediaQuery);\n }\n\n initPlugins() {\n const growiPlugin = window.growiPlugin;\n growiPlugin.installAll(this, this.originRenderer);\n }\n\n injectToWindow() {\n window.appContainer = this;\n const originRenderer = this.getOriginRenderer();\n window.growiRenderer = originRenderer; // backward compatibility\n\n window.crowi = this;\n window.crowiRenderer = originRenderer;\n window.crowiPlugin = window.growiPlugin;\n }\n\n get currentUserId() {\n if (this.currentUser == null) {\n return null;\n }\n\n return this.currentUser._id;\n }\n\n get currentUsername() {\n if (this.currentUser == null) {\n return null;\n }\n\n return this.currentUser.username;\n }\n /**\n * @return {Object} window.Crowi (js/legacy/crowi.js)\n */\n\n\n getCrowiForJquery() {\n return window.Crowi;\n }\n\n getConfig() {\n return this.config;\n }\n /**\n * Register unstated container instance\n * @param {object} instance unstated container instance\n */\n\n\n registerContainer(instance) {\n if (instance == null) {\n throw new Error('The specified instance must not be null');\n }\n\n const className = instance.constructor.getClassName();\n\n if (this.containerInstances[className] != null) {\n throw new Error('The specified instance couldn\\'t register because the same type object has already been registered');\n }\n\n this.containerInstances[className] = instance;\n }\n /**\n * Get registered unstated container instance\n * !! THIS METHOD SHOULD ONLY BE USED FROM unstated CONTAINERS !!\n * !! From component instances, inject containers with `import { Subscribe } from 'unstated'` !!\n *\n * @param {string} className\n */\n\n\n getContainer(className) {\n return this.containerInstances[className];\n }\n /**\n * Register React component instance\n * @param {string} id\n * @param {object} instance React component instance\n */\n\n\n registerComponentInstance(id, instance) {\n if (instance == null) {\n throw new Error('The specified instance must not be null');\n }\n\n if (this.componentInstances[id] != null) {\n throw new Error('The specified instance couldn\\'t register because the same id has already been registered');\n }\n\n this.componentInstances[id] = instance;\n }\n /**\n * Get registered React component instance\n * @param {string} id\n */\n\n\n getComponentInstance(id) {\n return this.componentInstances[id];\n }\n /**\n *\n * @param {string} breakpoint id of breakpoint\n * @param {function} handler event handler for media query\n * @param {boolean} invokeOnInit invoke handler after the initialization if true\n */\n\n\n addBreakpointListener(breakpoint, handler, invokeOnInit = false) {\n document.addEventListener('DOMContentLoaded', () => {\n // get the value of '--breakpoint-*'\n const breakpointPixel = parseInt(window.getComputedStyle(document.documentElement).getPropertyValue(`--breakpoint-${breakpoint}`), 10);\n const mediaQuery = window.matchMedia(`(min-width: ${breakpointPixel}px)`); // add event listener\n\n mediaQuery.addListener(handler); // initialize\n\n if (invokeOnInit) {\n handler(mediaQuery);\n }\n });\n }\n\n getOriginRenderer() {\n return this.originRenderer;\n }\n /**\n * factory method\n */\n\n\n getRenderer(mode) {\n if (this.rendererInstances[mode] != null) {\n return this.rendererInstances[mode];\n }\n\n const renderer = new _util_GrowiRenderer__WEBPACK_IMPORTED_MODULE_5__[\"default\"](this, this.originRenderer); // setup\n\n renderer.initMarkdownItConfigurers(mode);\n renderer.setup(mode); // register\n\n this.rendererInstances[mode] = renderer;\n return renderer;\n }\n\n getEmojiStrategy() {\n return _util_emojione_emoji_strategy_shrinked_json__WEBPACK_IMPORTED_MODULE_4__;\n }\n\n removeOldUserCache() {\n if (window.localStorage.userByName == null) {\n return;\n }\n\n const keys = ['userByName', 'userById', 'users', 'lastFetched'];\n keys.forEach(key => {\n window.localStorage.removeItem(key);\n });\n }\n\n async retrieveRecentlyUpdated() {\n const {\n data\n } = await this.apiv3Get('/pages/recent');\n this.setState({\n recentlyUpdatedPages: data.pages\n });\n }\n\n launchHandsontableModal(componentKind, beginLineNumber, endLineNumber) {\n let targetComponent;\n\n switch (componentKind) {\n case 'page':\n targetComponent = this.getComponentInstance('Page');\n break;\n }\n\n targetComponent.launchHandsontableModal(beginLineNumber, endLineNumber);\n }\n\n launchDrawioModal(componentKind, beginLineNumber, endLineNumber) {\n let targetComponent;\n\n switch (componentKind) {\n case 'page':\n targetComponent = this.getComponentInstance('Page');\n break;\n }\n\n targetComponent.launchDrawioModal(beginLineNumber, endLineNumber);\n }\n\n async apiGet(path, params) {\n return this.apiRequest('get', path, {\n params\n });\n }\n\n async apiPost(path, params) {\n if (!params._csrf) {\n params._csrf = this.csrfToken;\n }\n\n return this.apiRequest('post', path, params);\n }\n\n async apiDelete(path, params) {\n if (!params._csrf) {\n params._csrf = this.csrfToken;\n }\n\n return this.apiRequest('delete', path, {\n data: params\n });\n }\n\n async apiRequest(method, path, params) {\n const res = await axios__WEBPACK_IMPORTED_MODULE_1___default.a[method](`/_api${path}`, params);\n\n if (res.data.ok) {\n return res.data;\n } // Return error code if code is exist\n\n\n if (res.data.code != null) {\n const error = new _util_apiv1ErrorHandler__WEBPACK_IMPORTED_MODULE_7___default.a(res.data.error, res.data.code);\n throw error;\n }\n\n throw new Error(res.data.error);\n }\n\n async apiv3Request(method, path, params) {\n try {\n const res = await axios__WEBPACK_IMPORTED_MODULE_1___default.a[method](url_join__WEBPACK_IMPORTED_MODULE_2___default()(this.apiv3Root, path), params);\n return res.data;\n } catch (err) {\n const errors = Object(_util_apiv3ErrorHandler__WEBPACK_IMPORTED_MODULE_9__[\"default\"])(err);\n throw errors;\n }\n }\n\n async apiv3Get(path, params) {\n return this.apiv3Request('get', path, {\n params\n });\n }\n\n async apiv3Post(path, params = {}) {\n if (!params._csrf) {\n params._csrf = this.csrfToken;\n }\n\n return this.apiv3Request('post', path, params);\n }\n\n async apiv3Put(path, params = {}) {\n if (!params._csrf) {\n params._csrf = this.csrfToken;\n }\n\n return this.apiv3Request('put', path, params);\n }\n\n async apiv3Delete(path, params = {}) {\n if (!params._csrf) {\n params._csrf = this.csrfToken;\n }\n\n return this.apiv3Request('delete', path, {\n params\n });\n }\n\n}//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9zcmMvY2xpZW50L2pzL3NlcnZpY2VzL0FwcENvbnRhaW5lci5qcy5qcyIsInNvdXJjZXMiOlsid2VicGFjazovLy8uL3NyYy9jbGllbnQvanMvc2VydmljZXMvQXBwQ29udGFpbmVyLmpzPzAzZmEiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29udGFpbmVyIH0gZnJvbSAndW5zdGF0ZWQnO1xuXG5pbXBvcnQgYXhpb3MgZnJvbSAnYXhpb3MnO1xuaW1wb3J0IHVybGpvaW4gZnJvbSAndXJsLWpvaW4nO1xuXG5pbXBvcnQgSW50ZXJjZXB0b3JNYW5hZ2VyIGZyb20gJ0Bjb21tb25zL3NlcnZpY2UvaW50ZXJjZXB0b3ItbWFuYWdlcic7XG5cbmltcG9ydCBlbW9qaVN0cmF0ZWd5IGZyb20gJy4uL3V0aWwvZW1vamlvbmUvZW1vamlfc3RyYXRlZ3lfc2hyaW5rZWQuanNvbic7XG5pbXBvcnQgR3Jvd2lSZW5kZXJlciBmcm9tICcuLi91dGlsL0dyb3dpUmVuZGVyZXInO1xuXG5pbXBvcnQge1xuICBtZWRpYVF1ZXJ5TGlzdEZvckRhcmtNb2RlLFxuICBhcHBseUNvbG9yU2NoZW1lLFxufSBmcm9tICcuLi91dGlsL2NvbG9yLXNjaGVtZSc7XG5pbXBvcnQgQXBpdjFFcnJvckhhbmRsZXIgZnJvbSAnLi4vdXRpbC9hcGl2MUVycm9ySGFuZGxlcic7XG5cbmltcG9ydCB7IGkxOG5GYWN0b3J5IH0gZnJvbSAnLi4vdXRpbC9pMThuJztcbmltcG9ydCBhcGl2M0Vycm9ySGFuZGxlciBmcm9tICcuLi91dGlsL2FwaXYzRXJyb3JIYW5kbGVyJztcblxuLyoqXG4gKiBTZXJ2aWNlIGNvbnRhaW5lciByZWxhdGVkIHRvIG9wdGlvbnMgZm9yIEFwcGxpY2F0aW9uXG4gKiBAZXh0ZW5kcyB7Q29udGFpbmVyfSB1bnN0YXRlZCBDb250YWluZXJcbiAqL1xuZXhwb3J0IGRlZmF1bHQgY2xhc3MgQXBwQ29udGFpbmVyIGV4dGVuZHMgQ29udGFpbmVyIHtcblxuICBjb25zdHJ1Y3RvcigpIHtcbiAgICBzdXBlcigpO1xuXG4gICAgdGhpcy5zdGF0ZSA9IHtcbiAgICAgIHByZWZlckRhcmtNb2RlQnlNZWRpYVF1ZXJ5OiBmYWxzZSxcblxuICAgICAgLy8gc3RldGVzIGZvciBjb250ZW50c1xuICAgICAgcmVjZW50bHlVcGRhdGVkUGFnZXM6IFtdLFxuICAgIH07XG5cbiAgICBjb25zdCBib2R5ID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvcignYm9keScpO1xuXG4gICAgdGhpcy5jc3JmVG9rZW4gPSBib2R5LmRhdGFzZXQuY3NyZnRva2VuO1xuXG4gICAgdGhpcy5jb25maWcgPSBKU09OLnBhcnNlKGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdncm93aS1jb250ZXh0LWh5ZHJhdGUnKS50ZXh0Q29udGVudCB8fCAne30nKTtcblxuICAgIGNvbnN0IHVzZXJBZ2VudCA9IHdpbmRvdy5uYXZpZ2F0b3IudXNlckFnZW50LnRvTG93ZXJDYXNlKCk7XG4gICAgdGhpcy5pc01vYmlsZSA9IC9pcGhvbmV8aXBhZHxhbmRyb2lkLy50ZXN0KHVzZXJBZ2VudCk7XG5cbiAgICBjb25zdCBjdXJyZW50VXNlckVsZW0gPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnZ3Jvd2ktY3VycmVudC11c2VyJyk7XG4gICAgaWYgKGN1cnJlbnRVc2VyRWxlbSAhPSBudWxsKSB7XG4gICAgICB0aGlzLmN1cnJlbnRVc2VyID0gSlNPTi5wYXJzZShjdXJyZW50VXNlckVsZW0udGV4dENvbnRlbnQpO1xuICAgIH1cblxuICAgIGNvbnN0IGlzU2hhcmVkUGFnZUVsZW0gPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnaXMtc2hhcmVkLXBhZ2UnKTtcblxuICAgIC8vIGNoZWNrIHdoYXQga2luZCBvZiB1c2VyXG4gICAgdGhpcy5pc0d1ZXN0VXNlciA9IHRoaXMuY3VycmVudFVzZXIgPT0gbnVsbDtcbiAgICB0aGlzLmlzU2hhcmVkVXNlciA9IGlzU2hhcmVkUGFnZUVsZW0gIT0gbnVsbCAmJiB0aGlzLmN1cnJlbnRVc2VyID09IG51bGw7XG5cbiAgICBjb25zdCB1c2VyTG9jYWxlSWQgPSB0aGlzLmN1cnJlbnRVc2VyPy5sYW5nO1xuICAgIHRoaXMuaTE4biA9IGkxOG5GYWN0b3J5KHVzZXJMb2NhbGVJZCk7XG5cbiAgICB0aGlzLmNvbnRhaW5lckluc3RhbmNlcyA9IHt9O1xuICAgIHRoaXMuY29tcG9uZW50SW5zdGFuY2VzID0ge307XG4gICAgdGhpcy5yZW5kZXJlckluc3RhbmNlcyA9IHt9O1xuXG4gICAgdGhpcy5hcGlHZXQgPSB0aGlzLmFwaUdldC5iaW5kKHRoaXMpO1xuICAgIHRoaXMuYXBpUG9zdCA9IHRoaXMuYXBpUG9zdC5iaW5kKHRoaXMpO1xuICAgIHRoaXMuYXBpRGVsZXRlID0gdGhpcy5hcGlEZWxldGUuYmluZCh0aGlzKTtcbiAgICB0aGlzLmFwaVJlcXVlc3QgPSB0aGlzLmFwaVJlcXVlc3QuYmluZCh0aGlzKTtcblxuICAgIHRoaXMuYXBpdjNSb290ID0gJy9fYXBpL3YzJztcbiAgICB0aGlzLmFwaXYzID0ge1xuICAgICAgZ2V0OiB0aGlzLmFwaXYzR2V0LmJpbmQodGhpcyksXG4gICAgICBwb3N0OiB0aGlzLmFwaXYzUG9zdC5iaW5kKHRoaXMpLFxuICAgICAgcHV0OiB0aGlzLmFwaXYzUHV0LmJpbmQodGhpcyksXG4gICAgICBkZWxldGU6IHRoaXMuYXBpdjNEZWxldGUuYmluZCh0aGlzKSxcbiAgICB9O1xuICB9XG5cbiAgLyoqXG4gICAqIFdvcmthcm91bmQgZm9yIHRoZSBtYW5nbGluZyBpbiBwcm9kdWN0aW9uIGJ1aWxkIHRvIGJyZWFrIGNvbnN0cnVjdG9yLm5hbWVcbiAgICovXG4gIHN0YXRpYyBnZXRDbGFzc05hbWUoKSB7XG4gICAgcmV0dXJuICdBcHBDb250YWluZXInO1xuICB9XG5cbiAgaW5pdEFwcCgpIHtcbiAgICB0aGlzLmluaXRNZWRpYVF1ZXJ5Rm9yQ29sb3JTY2hlbWUoKTtcblxuICAgIHRoaXMuaW5qZWN0VG9XaW5kb3coKTtcbiAgfVxuXG4gIGluaXRDb250ZW50cygpIHtcbiAgICBjb25zdCBib2R5ID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvcignYm9keScpO1xuXG4gICAgdGhpcy5pc0FkbWluID0gYm9keS5kYXRhc2V0LmlzQWRtaW4gPT09ICd0cnVlJztcblxuICAgIHRoaXMuaXNEb2NTYXZlZCA9IHRydWU7XG5cbiAgICB0aGlzLm9yaWdpblJlbmRlcmVyID0gbmV3IEdyb3dpUmVuZGVyZXIodGhpcyk7XG5cbiAgICB0aGlzLmludGVyY2VwdG9yTWFuYWdlciA9IG5ldyBJbnRlcmNlcHRvck1hbmFnZXIoKTtcblxuICAgIGlmICh0aGlzLmN1cnJlbnRVc2VyICE9IG51bGwpIHtcbiAgICAgIC8vIHJlbW92ZSBvbGQgdXNlciBjYWNoZVxuICAgICAgdGhpcy5yZW1vdmVPbGRVc2VyQ2FjaGUoKTtcbiAgICB9XG5cbiAgICBjb25zdCBpc1BsdWdpbkVuYWJsZWQgPSBib2R5LmRhdGFzZXQucGx1Z2luRW5hYmxlZCA9PT0gJ3RydWUnO1xuICAgIGlmIChpc1BsdWdpbkVuYWJsZWQpIHtcbiAgICAgIHRoaXMuaW5pdFBsdWdpbnMoKTtcbiAgICB9XG5cbiAgICB0aGlzLmluamVjdFRvV2luZG93KCk7XG4gIH1cblxuICBhc3luYyBpbml0TWVkaWFRdWVyeUZvckNvbG9yU2NoZW1lKCkge1xuICAgIGNvbnN0IHN3aXRjaFN0YXRlQnlNZWRpYVF1ZXJ5ID0gYXN5bmMobXFsKSA9PiB7XG4gICAgICBjb25zdCBwcmVmZXJEYXJrTW9kZSA9IG1xbC5tYXRjaGVzO1xuICAgICAgdGhpcy5zZXRTdGF0ZSh7IHByZWZlckRhcmtNb2RlQnlNZWRpYVF1ZXJ5OiBwcmVmZXJEYXJrTW9kZSB9KTtcblxuICAgICAgYXBwbHlDb2xvclNjaGVtZSgpO1xuICAgIH07XG5cbiAgICAvLyBhZGQgZXZlbnQgbGlzdGVuZXJcbiAgICBtZWRpYVF1ZXJ5TGlzdEZvckRhcmtNb2RlLmFkZExpc3RlbmVyKHN3aXRjaFN0YXRlQnlNZWRpYVF1ZXJ5KTtcbiAgfVxuXG4gIGluaXRQbHVnaW5zKCkge1xuICAgIGNvbnN0IGdyb3dpUGx1Z2luID0gd2luZG93Lmdyb3dpUGx1Z2luO1xuICAgIGdyb3dpUGx1Z2luLmluc3RhbGxBbGwodGhpcywgdGhpcy5vcmlnaW5SZW5kZXJlcik7XG4gIH1cblxuICBpbmplY3RUb1dpbmRvdygpIHtcbiAgICB3aW5kb3cuYXBwQ29udGFpbmVyID0gdGhpcztcblxuICAgIGNvbnN0IG9yaWdpblJlbmRlcmVyID0gdGhpcy5nZXRPcmlnaW5SZW5kZXJlcigpO1xuICAgIHdpbmRvdy5ncm93aVJlbmRlcmVyID0gb3JpZ2luUmVuZGVyZXI7XG5cbiAgICAvLyBiYWNrd2FyZCBjb21wYXRpYmlsaXR5XG4gICAgd2luZG93LmNyb3dpID0gdGhpcztcbiAgICB3aW5kb3cuY3Jvd2lSZW5kZXJlciA9IG9yaWdpblJlbmRlcmVyO1xuICAgIHdpbmRvdy5jcm93aVBsdWdpbiA9IHdpbmRvdy5ncm93aVBsdWdpbjtcbiAgfVxuXG4gIGdldCBjdXJyZW50VXNlcklkKCkge1xuICAgIGlmICh0aGlzLmN1cnJlbnRVc2VyID09IG51bGwpIHtcbiAgICAgIHJldHVybiBudWxsO1xuICAgIH1cbiAgICByZXR1cm4gdGhpcy5jdXJyZW50VXNlci5faWQ7XG4gIH1cblxuICBnZXQgY3VycmVudFVzZXJuYW1lKCkge1xuICAgIGlmICh0aGlzLmN1cnJlbnRVc2VyID09IG51bGwpIHtcbiAgICAgIHJldHVybiBudWxsO1xuICAgIH1cbiAgICByZXR1cm4gdGhpcy5jdXJyZW50VXNlci51c2VybmFtZTtcbiAgfVxuXG4gIC8qKlxuICAgKiBAcmV0dXJuIHtPYmplY3R9IHdpbmRvdy5Dcm93aSAoanMvbGVnYWN5L2Nyb3dpLmpzKVxuICAgKi9cbiAgZ2V0Q3Jvd2lGb3JKcXVlcnkoKSB7XG4gICAgcmV0dXJuIHdpbmRvdy5Dcm93aTtcbiAgfVxuXG4gIGdldENvbmZpZygpIHtcbiAgICByZXR1cm4gdGhpcy5jb25maWc7XG4gIH1cblxuICAvKipcbiAgICogUmVnaXN0ZXIgdW5zdGF0ZWQgY29udGFpbmVyIGluc3RhbmNlXG4gICAqIEBwYXJhbSB7b2JqZWN0fSBpbnN0YW5jZSB1bnN0YXRlZCBjb250YWluZXIgaW5zdGFuY2VcbiAgICovXG4gIHJlZ2lzdGVyQ29udGFpbmVyKGluc3RhbmNlKSB7XG4gICAgaWYgKGluc3RhbmNlID09IG51bGwpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcignVGhlIHNwZWNpZmllZCBpbnN0YW5jZSBtdXN0IG5vdCBiZSBudWxsJyk7XG4gICAgfVxuXG4gICAgY29uc3QgY2xhc3NOYW1lID0gaW5zdGFuY2UuY29uc3RydWN0b3IuZ2V0Q2xhc3NOYW1lKCk7XG5cbiAgICBpZiAodGhpcy5jb250YWluZXJJbnN0YW5jZXNbY2xhc3NOYW1lXSAhPSBudWxsKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ1RoZSBzcGVjaWZpZWQgaW5zdGFuY2UgY291bGRuXFwndCByZWdpc3RlciBiZWNhdXNlIHRoZSBzYW1lIHR5cGUgb2JqZWN0IGhhcyBhbHJlYWR5IGJlZW4gcmVnaXN0ZXJlZCcpO1xuICAgIH1cblxuICAgIHRoaXMuY29udGFpbmVySW5zdGFuY2VzW2NsYXNzTmFtZV0gPSBpbnN0YW5jZTtcbiAgfVxuXG4gIC8qKlxuICAgKiBHZXQgcmVnaXN0ZXJlZCB1bnN0YXRlZCBjb250YWluZXIgaW5zdGFuY2VcbiAgICogISEgVEhJUyBNRVRIT0QgU0hPVUxEIE9OTFkgQkUgVVNFRCBGUk9NIHVuc3RhdGVkIENPTlRBSU5FUlMgISFcbiAgICogISEgRnJvbSBjb21wb25lbnQgaW5zdGFuY2VzLCBpbmplY3QgY29udGFpbmVycyB3aXRoIGBpbXBvcnQgeyBTdWJzY3JpYmUgfSBmcm9tICd1bnN0YXRlZCdgICEhXG4gICAqXG4gICAqIEBwYXJhbSB7c3RyaW5nfSBjbGFzc05hbWVcbiAgICovXG4gIGdldENvbnRhaW5lcihjbGFzc05hbWUpIHtcbiAgICByZXR1cm4gdGhpcy5jb250YWluZXJJbnN0YW5jZXNbY2xhc3NOYW1lXTtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZWdpc3RlciBSZWFjdCBjb21wb25lbnQgaW5zdGFuY2VcbiAgICogQHBhcmFtIHtzdHJpbmd9IGlkXG4gICAqIEBwYXJhbSB7b2JqZWN0fSBpbnN0YW5jZSBSZWFjdCBjb21wb25lbnQgaW5zdGFuY2VcbiAgICovXG4gIHJlZ2lzdGVyQ29tcG9uZW50SW5zdGFuY2UoaWQsIGluc3RhbmNlKSB7XG4gICAgaWYgKGluc3RhbmNlID09IG51bGwpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcignVGhlIHNwZWNpZmllZCBpbnN0YW5jZSBtdXN0IG5vdCBiZSBudWxsJyk7XG4gICAgfVxuXG4gICAgaWYgKHRoaXMuY29tcG9uZW50SW5zdGFuY2VzW2lkXSAhPSBudWxsKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ1RoZSBzcGVjaWZpZWQgaW5zdGFuY2UgY291bGRuXFwndCByZWdpc3RlciBiZWNhdXNlIHRoZSBzYW1lIGlkIGhhcyBhbHJlYWR5IGJlZW4gcmVnaXN0ZXJlZCcpO1xuICAgIH1cblxuICAgIHRoaXMuY29tcG9uZW50SW5zdGFuY2VzW2lkXSA9IGluc3RhbmNlO1xuICB9XG5cbiAgLyoqXG4gICAqIEdldCByZWdpc3RlcmVkIFJlYWN0IGNvbXBvbmVudCBpbnN0YW5jZVxuICAgKiBAcGFyYW0ge3N0cmluZ30gaWRcbiAgICovXG4gIGdldENvbXBvbmVudEluc3RhbmNlKGlkKSB7XG4gICAgcmV0dXJuIHRoaXMuY29tcG9uZW50SW5zdGFuY2VzW2lkXTtcbiAgfVxuXG4gIC8qKlxuICAgKlxuICAgKiBAcGFyYW0ge3N0cmluZ30gYnJlYWtwb2ludCBpZCBvZiBicmVha3BvaW50XG4gICAqIEBwYXJhbSB7ZnVuY3Rpb259IGhhbmRsZXIgZXZlbnQgaGFuZGxlciBmb3IgbWVkaWEgcXVlcnlcbiAgICogQHBhcmFtIHtib29sZWFufSBpbnZva2VPbkluaXQgaW52b2tlIGhhbmRsZXIgYWZ0ZXIgdGhlIGluaXRpYWxpemF0aW9uIGlmIHRydWVcbiAgICovXG4gIGFkZEJyZWFrcG9pbnRMaXN0ZW5lcihicmVha3BvaW50LCBoYW5kbGVyLCBpbnZva2VPbkluaXQgPSBmYWxzZSkge1xuICAgIGRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoJ0RPTUNvbnRlbnRMb2FkZWQnLCAoKSA9PiB7XG4gICAgICAvLyBnZXQgdGhlIHZhbHVlIG9mICctLWJyZWFrcG9pbnQtKidcbiAgICAgIGNvbnN0IGJyZWFrcG9pbnRQaXhlbCA9IHBhcnNlSW50KHdpbmRvdy5nZXRDb21wdXRlZFN0eWxlKGRvY3VtZW50LmRvY3VtZW50RWxlbWVudCkuZ2V0UHJvcGVydHlWYWx1ZShgLS1icmVha3BvaW50LSR7YnJlYWtwb2ludH1gKSwgMTApO1xuXG4gICAgICBjb25zdCBtZWRpYVF1ZXJ5ID0gd2luZG93Lm1hdGNoTWVkaWEoYChtaW4td2lkdGg6ICR7YnJlYWtwb2ludFBpeGVsfXB4KWApO1xuXG4gICAgICAvLyBhZGQgZXZlbnQgbGlzdGVuZXJcbiAgICAgIG1lZGlhUXVlcnkuYWRkTGlzdGVuZXIoaGFuZGxlcik7XG4gICAgICAvLyBpbml0aWFsaXplXG4gICAgICBpZiAoaW52b2tlT25Jbml0KSB7XG4gICAgICAgIGhhbmRsZXIobWVkaWFRdWVyeSk7XG4gICAgICB9XG4gICAgfSk7XG4gIH1cblxuICBnZXRPcmlnaW5SZW5kZXJlcigpIHtcbiAgICByZXR1cm4gdGhpcy5vcmlnaW5SZW5kZXJlcjtcbiAgfVxuXG4gIC8qKlxuICAgKiBmYWN0b3J5IG1ldGhvZFxuICAgKi9cbiAgZ2V0UmVuZGVyZXIobW9kZSkge1xuICAgIGlmICh0aGlzLnJlbmRlcmVySW5zdGFuY2VzW21vZGVdICE9IG51bGwpIHtcbiAgICAgIHJldHVybiB0aGlzLnJlbmRlcmVySW5zdGFuY2VzW21vZGVdO1xuICAgIH1cblxuICAgIGNvbnN0IHJlbmRlcmVyID0gbmV3IEdyb3dpUmVuZGVyZXIodGhpcywgdGhpcy5vcmlnaW5SZW5kZXJlcik7XG4gICAgLy8gc2V0dXBcbiAgICByZW5kZXJlci5pbml0TWFya2Rvd25JdENvbmZpZ3VyZXJzKG1vZGUpO1xuICAgIHJlbmRlcmVyLnNldHVwKG1vZGUpO1xuICAgIC8vIHJlZ2lzdGVyXG4gICAgdGhpcy5yZW5kZXJlckluc3RhbmNlc1ttb2RlXSA9IHJlbmRlcmVyO1xuXG4gICAgcmV0dXJuIHJlbmRlcmVyO1xuICB9XG5cbiAgZ2V0RW1vamlTdHJhdGVneSgpIHtcbiAgICByZXR1cm4gZW1vamlTdHJhdGVneTtcbiAgfVxuXG4gIHJlbW92ZU9sZFVzZXJDYWNoZSgpIHtcbiAgICBpZiAod2luZG93LmxvY2FsU3RvcmFnZS51c2VyQnlOYW1lID09IG51bGwpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBjb25zdCBrZXlzID0gWyd1c2VyQnlOYW1lJywgJ3VzZXJCeUlkJywgJ3VzZXJzJywgJ2xhc3RGZXRjaGVkJ107XG5cbiAgICBrZXlzLmZvckVhY2goKGtleSkgPT4ge1xuICAgICAgd2luZG93LmxvY2FsU3RvcmFnZS5yZW1vdmVJdGVtKGtleSk7XG4gICAgfSk7XG4gIH1cblxuICBhc3luYyByZXRyaWV2ZVJlY2VudGx5VXBkYXRlZCgpIHtcbiAgICBjb25zdCB7IGRhdGEgfSA9IGF3YWl0IHRoaXMuYXBpdjNHZXQoJy9wYWdlcy9yZWNlbnQnKTtcbiAgICB0aGlzLnNldFN0YXRlKHsgcmVjZW50bHlVcGRhdGVkUGFnZXM6IGRhdGEucGFnZXMgfSk7XG4gIH1cblxuICBsYXVuY2hIYW5kc29udGFibGVNb2RhbChjb21wb25lbnRLaW5kLCBiZWdpbkxpbmVOdW1iZXIsIGVuZExpbmVOdW1iZXIpIHtcbiAgICBsZXQgdGFyZ2V0Q29tcG9uZW50O1xuICAgIHN3aXRjaCAoY29tcG9uZW50S2luZCkge1xuICAgICAgY2FzZSAncGFnZSc6XG4gICAgICAgIHRhcmdldENvbXBvbmVudCA9IHRoaXMuZ2V0Q29tcG9uZW50SW5zdGFuY2UoJ1BhZ2UnKTtcbiAgICAgICAgYnJlYWs7XG4gICAgfVxuICAgIHRhcmdldENvbXBvbmVudC5sYXVuY2hIYW5kc29udGFibGVNb2RhbChiZWdpbkxpbmVOdW1iZXIsIGVuZExpbmVOdW1iZXIpO1xuICB9XG5cbiAgbGF1bmNoRHJhd2lvTW9kYWwoY29tcG9uZW50S2luZCwgYmVnaW5MaW5lTnVtYmVyLCBlbmRMaW5lTnVtYmVyKSB7XG4gICAgbGV0IHRhcmdldENvbXBvbmVudDtcbiAgICBzd2l0Y2ggKGNvbXBvbmVudEtpbmQpIHtcbiAgICAgIGNhc2UgJ3BhZ2UnOlxuICAgICAgICB0YXJnZXRDb21wb25lbnQgPSB0aGlzLmdldENvbXBvbmVudEluc3RhbmNlKCdQYWdlJyk7XG4gICAgICAgIGJyZWFrO1xuICAgIH1cbiAgICB0YXJnZXRDb21wb25lbnQubGF1bmNoRHJhd2lvTW9kYWwoYmVnaW5MaW5lTnVtYmVyLCBlbmRMaW5lTnVtYmVyKTtcbiAgfVxuXG4gIGFzeW5jIGFwaUdldChwYXRoLCBwYXJhbXMpIHtcbiAgICByZXR1cm4gdGhpcy5hcGlSZXF1ZXN0KCdnZXQnLCBwYXRoLCB7IHBhcmFtcyB9KTtcbiAgfVxuXG4gIGFzeW5jIGFwaVBvc3QocGF0aCwgcGFyYW1zKSB7XG4gICAgaWYgKCFwYXJhbXMuX2NzcmYpIHtcbiAgICAgIHBhcmFtcy5fY3NyZiA9IHRoaXMuY3NyZlRva2VuO1xuICAgIH1cblxuICAgIHJldHVybiB0aGlzLmFwaVJlcXVlc3QoJ3Bvc3QnLCBwYXRoLCBwYXJhbXMpO1xuICB9XG5cbiAgYXN5bmMgYXBpRGVsZXRlKHBhdGgsIHBhcmFtcykge1xuICAgIGlmICghcGFyYW1zLl9jc3JmKSB7XG4gICAgICBwYXJhbXMuX2NzcmYgPSB0aGlzLmNzcmZUb2tlbjtcbiAgICB9XG5cbiAgICByZXR1cm4gdGhpcy5hcGlSZXF1ZXN0KCdkZWxldGUnLCBwYXRoLCB7IGRhdGE6IHBhcmFtcyB9KTtcbiAgfVxuXG4gIGFzeW5jIGFwaVJlcXVlc3QobWV0aG9kLCBwYXRoLCBwYXJhbXMpIHtcbiAgICBjb25zdCByZXMgPSBhd2FpdCBheGlvc1ttZXRob2RdKGAvX2FwaSR7cGF0aH1gLCBwYXJhbXMpO1xuICAgIGlmIChyZXMuZGF0YS5vaykge1xuICAgICAgcmV0dXJuIHJlcy5kYXRhO1xuICAgIH1cblxuICAgIC8vIFJldHVybiBlcnJvciBjb2RlIGlmIGNvZGUgaXMgZXhpc3RcbiAgICBpZiAocmVzLmRhdGEuY29kZSAhPSBudWxsKSB7XG4gICAgICBjb25zdCBlcnJvciA9IG5ldyBBcGl2MUVycm9ySGFuZGxlcihyZXMuZGF0YS5lcnJvciwgcmVzLmRhdGEuY29kZSk7XG4gICAgICB0aHJvdyBlcnJvcjtcbiAgICB9XG5cbiAgICB0aHJvdyBuZXcgRXJyb3IocmVzLmRhdGEuZXJyb3IpO1xuICB9XG5cbiAgYXN5bmMgYXBpdjNSZXF1ZXN0KG1ldGhvZCwgcGF0aCwgcGFyYW1zKSB7XG4gICAgdHJ5IHtcbiAgICAgIGNvbnN0IHJlcyA9IGF3YWl0IGF4aW9zW21ldGhvZF0odXJsam9pbih0aGlzLmFwaXYzUm9vdCwgcGF0aCksIHBhcmFtcyk7XG4gICAgICByZXR1cm4gcmVzLmRhdGE7XG4gICAgfVxuICAgIGNhdGNoIChlcnIpIHtcbiAgICAgIGNvbnN0IGVycm9ycyA9IGFwaXYzRXJyb3JIYW5kbGVyKGVycik7XG4gICAgICB0aHJvdyBlcnJvcnM7XG4gICAgfVxuICB9XG5cbiAgYXN5bmMgYXBpdjNHZXQocGF0aCwgcGFyYW1zKSB7XG4gICAgcmV0dXJuIHRoaXMuYXBpdjNSZXF1ZXN0KCdnZXQnLCBwYXRoLCB7IHBhcmFtcyB9KTtcbiAgfVxuXG4gIGFzeW5jIGFwaXYzUG9zdChwYXRoLCBwYXJhbXMgPSB7fSkge1xuICAgIGlmICghcGFyYW1zLl9jc3JmKSB7XG4gICAgICBwYXJhbXMuX2NzcmYgPSB0aGlzLmNzcmZUb2tlbjtcbiAgICB9XG5cbiAgICByZXR1cm4gdGhpcy5hcGl2M1JlcXVlc3QoJ3Bvc3QnLCBwYXRoLCBwYXJhbXMpO1xuICB9XG5cbiAgYXN5bmMgYXBpdjNQdXQocGF0aCwgcGFyYW1zID0ge30pIHtcbiAgICBpZiAoIXBhcmFtcy5fY3NyZikge1xuICAgICAgcGFyYW1zLl9jc3JmID0gdGhpcy5jc3JmVG9rZW47XG4gICAgfVxuXG4gICAgcmV0dXJuIHRoaXMuYXBpdjNSZXF1ZXN0KCdwdXQnLCBwYXRoLCBwYXJhbXMpO1xuICB9XG5cbiAgYXN5bmMgYXBpdjNEZWxldGUocGF0aCwgcGFyYW1zID0ge30pIHtcbiAgICBpZiAoIXBhcmFtcy5fY3NyZikge1xuICAgICAgcGFyYW1zLl9jc3JmID0gdGhpcy5jc3JmVG9rZW47XG4gICAgfVxuXG4gICAgcmV0dXJuIHRoaXMuYXBpdjNSZXF1ZXN0KCdkZWxldGUnLCBwYXRoLCB7IHBhcmFtcyB9KTtcbiAgfVxuXG59XG4iXSwibWFwcGluZ3MiOiJBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUVBO0FBQ0E7QUFFQTtBQUVBO0FBQ0E7QUFFQTtBQUlBO0FBRUE7QUFDQTtBQUVBOzs7OztBQUlBO0FBRUE7QUFBQTtBQUNBO0FBQUE7QUFFQTtBQUNBO0FBRUE7QUFDQTtBQUpBO0FBT0E7QUFFQTtBQUVBO0FBRUE7QUFDQTtBQUVBO0FBQ0E7QUFBQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFFQTtBQUNBO0FBRUE7QUFDQTtBQUVBO0FBQ0E7QUFDQTtBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBSkE7QUFNQTtBQUVBOzs7OztBQUdBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFFQTtBQUVBO0FBRUE7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFBQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQUE7QUFBQTtBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFFQTtBQUNBO0FBQ0E7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUFBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFBQTtBQUNBO0FBRUE7Ozs7O0FBR0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFFQTs7Ozs7O0FBSUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFFQTs7Ozs7Ozs7O0FBT0E7QUFDQTtBQUNBO0FBRUE7Ozs7Ozs7QUFLQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBRUE7Ozs7OztBQUlBO0FBQ0E7QUFDQTtBQUVBOzs7Ozs7OztBQU1BO0FBQ0E7QUFDQTtBQUNBO0FBRUE7QUFDQTtBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFFQTs7Ozs7QUFHQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUFBO0FBQUE7QUFDQTtBQUFBO0FBQUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQUE7QUFDQTtBQUNBO0FBQ0E7QUFIQTtBQUNBO0FBSUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQUE7QUFDQTtBQUNBO0FBQ0E7QUFIQTtBQUNBO0FBSUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUFBO0FBQUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUFBO0FBQUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFBQTtBQUFBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQUE7QUFBQTtBQUNBO0FBQ0E7QUFwV0EiLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./src/client/js/services/AppContainer.js\n");
- /***/ }),
- /***/ "./src/client/js/services/NavigationContainer.js":
- /*!*******************************************************!*\
- !*** ./src/client/js/services/NavigationContainer.js ***!
- \*******************************************************/
- /*! exports provided: default */
- /***/ (function(module, __webpack_exports__, __webpack_require__) {
- "use strict";
- eval("__webpack_require__.r(__webpack_exports__);\n/* WEBPACK VAR INJECTION */(function($) {/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"default\", function() { return NavigationContainer; });\n/* harmony import */ var unstated__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! unstated */ \"./node_modules/unstated/lib/unstated.es.js\");\n/* harmony import */ var _alias_logger__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @alias/logger */ \"./src/lib/service/logger/index.js\");\n/* harmony import */ var _alias_logger__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_alias_logger__WEBPACK_IMPORTED_MODULE_1__);\n\n\nconst logger = _alias_logger__WEBPACK_IMPORTED_MODULE_1___default()('growi:services:NavigationContainer');\n/**\n * Service container related to options for Application\n * @extends {Container} unstated Container\n */\n\nconst SCROLL_THRES_SKIP = 200;\nconst WIKI_HEADER_LINK = 120;\nclass NavigationContainer extends unstated__WEBPACK_IMPORTED_MODULE_0__[\"Container\"] {\n constructor(appContainer) {\n super();\n this.appContainer = appContainer;\n this.appContainer.registerContainer(this);\n const {\n localStorage\n } = window;\n this.state = {\n editorMode: 'view',\n isDeviceSmallerThanMd: null,\n preferDrawerModeByUser: localStorage.preferDrawerModeByUser === 'true',\n preferDrawerModeOnEditByUser: // default: true\n localStorage.preferDrawerModeOnEditByUser == null || localStorage.preferDrawerModeOnEditByUser === 'true',\n isDrawerMode: null,\n isDrawerOpened: false,\n sidebarContentsId: localStorage.sidebarContentsId || 'recent',\n isScrollTop: true,\n isPageCreateModalShown: false\n };\n this.openPageCreateModal = this.openPageCreateModal.bind(this);\n this.closePageCreateModal = this.closePageCreateModal.bind(this);\n this.setEditorMode = this.setEditorMode.bind(this);\n this.initDeviceSize();\n this.initScrollEvent();\n }\n /**\n * Workaround for the mangling in production build to break constructor.name\n */\n\n\n static getClassName() {\n return 'NavigationContainer';\n }\n\n getPageContainer() {\n return this.appContainer.getContainer('PageContainer');\n }\n\n initDeviceSize() {\n const mdOrAvobeHandler = async mql => {\n let isDeviceSmallerThanMd; // sm -> md\n\n if (mql.matches) {\n isDeviceSmallerThanMd = false;\n } // md -> sm\n else {\n isDeviceSmallerThanMd = true;\n }\n\n this.setState({\n isDeviceSmallerThanMd\n });\n this.updateDrawerMode({ ...this.state,\n isDeviceSmallerThanMd\n }); // generate newest state object\n };\n\n this.appContainer.addBreakpointListener('md', mdOrAvobeHandler, true);\n }\n\n initScrollEvent() {\n window.addEventListener('scroll', () => {\n const currentYOffset = window.pageYOffset; // original throttling\n\n if (SCROLL_THRES_SKIP < currentYOffset) {\n return;\n }\n\n this.setState({\n isScrollTop: currentYOffset === 0\n });\n });\n }\n\n setEditorMode(editorMode) {\n const {\n isNotCreatable\n } = this.getPageContainer().state;\n\n if (this.appContainer.currentUser == null) {\n logger.warn('Please login or signup to edit the page or use hackmd.');\n return;\n }\n\n if (isNotCreatable) {\n logger.warn('This page could not edit.');\n return;\n }\n\n this.setState({\n editorMode\n });\n\n if (editorMode === 'view') {\n $('body').removeClass('on-edit');\n $('body').removeClass('builtin-editor');\n $('body').removeClass('hackmd');\n $('body').removeClass('pathname-sidebar');\n window.history.replaceState(null, '', window.location.pathname);\n }\n\n if (editorMode === 'edit') {\n $('body').addClass('on-edit');\n $('body').addClass('builtin-editor');\n $('body').removeClass('hackmd'); // editing /Sidebar\n\n if (window.location.pathname === '/Sidebar') {\n $('body').addClass('pathname-sidebar');\n }\n\n window.location.hash = '#edit';\n }\n\n if (editorMode === 'hackmd') {\n $('body').addClass('on-edit');\n $('body').addClass('hackmd');\n $('body').removeClass('builtin-editor');\n $('body').removeClass('pathname-sidebar');\n window.location.hash = '#hackmd';\n }\n\n this.updateDrawerMode({ ...this.state,\n editorMode\n }); // generate newest state object\n }\n\n toggleDrawer() {\n const {\n isDrawerOpened\n } = this.state;\n this.setState({\n isDrawerOpened: !isDrawerOpened\n });\n }\n /**\n * Set Sidebar mode preference by user\n * @param {boolean} preferDockMode\n */\n\n\n async setDrawerModePreference(bool) {\n this.setState({\n preferDrawerModeByUser: bool\n });\n this.updateDrawerMode({ ...this.state,\n preferDrawerModeByUser: bool\n }); // generate newest state object\n // store settings to localStorage\n\n const {\n localStorage\n } = window;\n localStorage.preferDrawerModeByUser = bool;\n }\n /**\n * Set Sidebar mode preference by user\n * @param {boolean} preferDockMode\n */\n\n\n async setDrawerModePreferenceOnEdit(bool) {\n this.setState({\n preferDrawerModeOnEditByUser: bool\n });\n this.updateDrawerMode({ ...this.state,\n preferDrawerModeOnEditByUser: bool\n }); // generate newest state object\n // store settings to localStorage\n\n const {\n localStorage\n } = window;\n localStorage.preferDrawerModeOnEditByUser = bool;\n }\n /**\n * Update drawer related state by specified 'newState' object\n * @param {object} newState A newest state object\n *\n * Specify 'newState' like following code:\n *\n * { ...this.state, overwriteParam: overwriteValue }\n *\n * because updating state of unstated container will be delayed unless you use await\n */\n\n\n updateDrawerMode(newState) {\n const {\n editorMode,\n isDeviceSmallerThanMd,\n preferDrawerModeByUser,\n preferDrawerModeOnEditByUser\n } = newState; // get preference on view or edit\n\n const preferDrawerMode = editorMode !== 'view' ? preferDrawerModeOnEditByUser : preferDrawerModeByUser;\n const isDrawerMode = isDeviceSmallerThanMd || preferDrawerMode;\n const isDrawerOpened = false; // close Drawer anyway\n\n this.setState({\n isDrawerMode,\n isDrawerOpened\n });\n }\n\n selectSidebarContents(contentsId) {\n window.localStorage.setItem('sidebarContentsId', contentsId);\n this.setState({\n sidebarContentsId: contentsId\n });\n }\n\n openPageCreateModal() {\n if (this.appContainer.currentUser == null) {\n logger.warn('Please login or signup to create a new page.');\n return;\n }\n\n this.setState({\n isPageCreateModalShown: true\n });\n }\n\n closePageCreateModal() {\n this.setState({\n isPageCreateModalShown: false\n });\n }\n /**\n * Function that implements the click event for realizing smooth scroll\n * @param {array} elements\n */\n\n\n addSmoothScrollEvent(elements = {}) {\n elements.forEach(link => link.addEventListener('click', e => {\n e.preventDefault();\n const href = link.getAttribute('href').replace('#', '');\n window.location.hash = href;\n const targetDom = document.getElementById(href);\n this.smoothScrollIntoView(targetDom, WIKI_HEADER_LINK);\n }));\n }\n\n smoothScrollIntoView(element = null, offsetTop = 0) {\n const targetElement = element || window.document.body; // get the distance to the target element top\n\n const rectTop = targetElement.getBoundingClientRect().top;\n const top = window.pageYOffset + rectTop - offsetTop;\n window.scrollTo({\n top,\n behavior: 'smooth'\n });\n }\n\n}\n/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(/*! jquery */ \"jquery\")))//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9zcmMvY2xpZW50L2pzL3NlcnZpY2VzL05hdmlnYXRpb25Db250YWluZXIuanMuanMiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9zcmMvY2xpZW50L2pzL3NlcnZpY2VzL05hdmlnYXRpb25Db250YWluZXIuanM/ZTAyYyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb250YWluZXIgfSBmcm9tICd1bnN0YXRlZCc7XG5pbXBvcnQgbG9nZ2VyRmFjdG9yeSBmcm9tICdAYWxpYXMvbG9nZ2VyJztcblxuY29uc3QgbG9nZ2VyID0gbG9nZ2VyRmFjdG9yeSgnZ3Jvd2k6c2VydmljZXM6TmF2aWdhdGlvbkNvbnRhaW5lcicpO1xuXG4vKipcbiAqIFNlcnZpY2UgY29udGFpbmVyIHJlbGF0ZWQgdG8gb3B0aW9ucyBmb3IgQXBwbGljYXRpb25cbiAqIEBleHRlbmRzIHtDb250YWluZXJ9IHVuc3RhdGVkIENvbnRhaW5lclxuICovXG5cbmNvbnN0IFNDUk9MTF9USFJFU19TS0lQID0gMjAwO1xuY29uc3QgV0lLSV9IRUFERVJfTElOSyA9IDEyMDtcblxuZXhwb3J0IGRlZmF1bHQgY2xhc3MgTmF2aWdhdGlvbkNvbnRhaW5lciBleHRlbmRzIENvbnRhaW5lciB7XG5cbiAgY29uc3RydWN0b3IoYXBwQ29udGFpbmVyKSB7XG4gICAgc3VwZXIoKTtcblxuICAgIHRoaXMuYXBwQ29udGFpbmVyID0gYXBwQ29udGFpbmVyO1xuICAgIHRoaXMuYXBwQ29udGFpbmVyLnJlZ2lzdGVyQ29udGFpbmVyKHRoaXMpO1xuXG4gICAgY29uc3QgeyBsb2NhbFN0b3JhZ2UgfSA9IHdpbmRvdztcblxuICAgIHRoaXMuc3RhdGUgPSB7XG4gICAgICBlZGl0b3JNb2RlOiAndmlldycsXG5cbiAgICAgIGlzRGV2aWNlU21hbGxlclRoYW5NZDogbnVsbCxcbiAgICAgIHByZWZlckRyYXdlck1vZGVCeVVzZXI6IGxvY2FsU3RvcmFnZS5wcmVmZXJEcmF3ZXJNb2RlQnlVc2VyID09PSAndHJ1ZScsXG4gICAgICBwcmVmZXJEcmF3ZXJNb2RlT25FZGl0QnlVc2VyOiAvLyBkZWZhdWx0OiB0cnVlXG4gICAgICAgIGxvY2FsU3RvcmFnZS5wcmVmZXJEcmF3ZXJNb2RlT25FZGl0QnlVc2VyID09IG51bGwgfHwgbG9jYWxTdG9yYWdlLnByZWZlckRyYXdlck1vZGVPbkVkaXRCeVVzZXIgPT09ICd0cnVlJyxcbiAgICAgIGlzRHJhd2VyTW9kZTogbnVsbCxcbiAgICAgIGlzRHJhd2VyT3BlbmVkOiBmYWxzZSxcblxuICAgICAgc2lkZWJhckNvbnRlbnRzSWQ6IGxvY2FsU3RvcmFnZS5zaWRlYmFyQ29udGVudHNJZCB8fCAncmVjZW50JyxcblxuICAgICAgaXNTY3JvbGxUb3A6IHRydWUsXG5cbiAgICAgIGlzUGFnZUNyZWF0ZU1vZGFsU2hvd246IGZhbHNlLFxuICAgIH07XG5cbiAgICB0aGlzLm9wZW5QYWdlQ3JlYXRlTW9kYWwgPSB0aGlzLm9wZW5QYWdlQ3JlYXRlTW9kYWwuYmluZCh0aGlzKTtcbiAgICB0aGlzLmNsb3NlUGFnZUNyZWF0ZU1vZGFsID0gdGhpcy5jbG9zZVBhZ2VDcmVhdGVNb2RhbC5iaW5kKHRoaXMpO1xuICAgIHRoaXMuc2V0RWRpdG9yTW9kZSA9IHRoaXMuc2V0RWRpdG9yTW9kZS5iaW5kKHRoaXMpO1xuICAgIHRoaXMuaW5pdERldmljZVNpemUoKTtcbiAgICB0aGlzLmluaXRTY3JvbGxFdmVudCgpO1xuICB9XG5cbiAgLyoqXG4gICAqIFdvcmthcm91bmQgZm9yIHRoZSBtYW5nbGluZyBpbiBwcm9kdWN0aW9uIGJ1aWxkIHRvIGJyZWFrIGNvbnN0cnVjdG9yLm5hbWVcbiAgICovXG4gIHN0YXRpYyBnZXRDbGFzc05hbWUoKSB7XG4gICAgcmV0dXJuICdOYXZpZ2F0aW9uQ29udGFpbmVyJztcbiAgfVxuXG4gIGdldFBhZ2VDb250YWluZXIoKSB7XG4gICAgcmV0dXJuIHRoaXMuYXBwQ29udGFpbmVyLmdldENvbnRhaW5lcignUGFnZUNvbnRhaW5lcicpO1xuICB9XG5cbiAgaW5pdERldmljZVNpemUoKSB7XG4gICAgY29uc3QgbWRPckF2b2JlSGFuZGxlciA9IGFzeW5jKG1xbCkgPT4ge1xuICAgICAgbGV0IGlzRGV2aWNlU21hbGxlclRoYW5NZDtcblxuICAgICAgLy8gc20gLT4gbWRcbiAgICAgIGlmIChtcWwubWF0Y2hlcykge1xuICAgICAgICBpc0RldmljZVNtYWxsZXJUaGFuTWQgPSBmYWxzZTtcbiAgICAgIH1cbiAgICAgIC8vIG1kIC0+IHNtXG4gICAgICBlbHNlIHtcbiAgICAgICAgaXNEZXZpY2VTbWFsbGVyVGhhbk1kID0gdHJ1ZTtcbiAgICAgIH1cblxuICAgICAgdGhpcy5zZXRTdGF0ZSh7IGlzRGV2aWNlU21hbGxlclRoYW5NZCB9KTtcbiAgICAgIHRoaXMudXBkYXRlRHJhd2VyTW9kZSh7IC4uLnRoaXMuc3RhdGUsIGlzRGV2aWNlU21hbGxlclRoYW5NZCB9KTsgLy8gZ2VuZXJhdGUgbmV3ZXN0IHN0YXRlIG9iamVjdFxuICAgIH07XG5cbiAgICB0aGlzLmFwcENvbnRhaW5lci5hZGRCcmVha3BvaW50TGlzdGVuZXIoJ21kJywgbWRPckF2b2JlSGFuZGxlciwgdHJ1ZSk7XG4gIH1cblxuICBpbml0U2Nyb2xsRXZlbnQoKSB7XG4gICAgd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoJ3Njcm9sbCcsICgpID0+IHtcbiAgICAgIGNvbnN0IGN1cnJlbnRZT2Zmc2V0ID0gd2luZG93LnBhZ2VZT2Zmc2V0O1xuXG4gICAgICAvLyBvcmlnaW5hbCB0aHJvdHRsaW5nXG4gICAgICBpZiAoU0NST0xMX1RIUkVTX1NLSVAgPCBjdXJyZW50WU9mZnNldCkge1xuICAgICAgICByZXR1cm47XG4gICAgICB9XG5cbiAgICAgIHRoaXMuc2V0U3RhdGUoe1xuICAgICAgICBpc1Njcm9sbFRvcDogY3VycmVudFlPZmZzZXQgPT09IDAsXG4gICAgICB9KTtcbiAgICB9KTtcbiAgfVxuXG4gIHNldEVkaXRvck1vZGUoZWRpdG9yTW9kZSkge1xuICAgIGNvbnN0IHsgaXNOb3RDcmVhdGFibGUgfSA9IHRoaXMuZ2V0UGFnZUNvbnRhaW5lcigpLnN0YXRlO1xuXG4gICAgaWYgKHRoaXMuYXBwQ29udGFpbmVyLmN1cnJlbnRVc2VyID09IG51bGwpIHtcbiAgICAgIGxvZ2dlci53YXJuKCdQbGVhc2UgbG9naW4gb3Igc2lnbnVwIHRvIGVkaXQgdGhlIHBhZ2Ugb3IgdXNlIGhhY2ttZC4nKTtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBpZiAoaXNOb3RDcmVhdGFibGUpIHtcbiAgICAgIGxvZ2dlci53YXJuKCdUaGlzIHBhZ2UgY291bGQgbm90IGVkaXQuJyk7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgdGhpcy5zZXRTdGF0ZSh7IGVkaXRvck1vZGUgfSk7XG4gICAgaWYgKGVkaXRvck1vZGUgPT09ICd2aWV3Jykge1xuICAgICAgJCgnYm9keScpLnJlbW92ZUNsYXNzKCdvbi1lZGl0Jyk7XG4gICAgICAkKCdib2R5JykucmVtb3ZlQ2xhc3MoJ2J1aWx0aW4tZWRpdG9yJyk7XG4gICAgICAkKCdib2R5JykucmVtb3ZlQ2xhc3MoJ2hhY2ttZCcpO1xuICAgICAgJCgnYm9keScpLnJlbW92ZUNsYXNzKCdwYXRobmFtZS1zaWRlYmFyJyk7XG4gICAgICB3aW5kb3cuaGlzdG9yeS5yZXBsYWNlU3RhdGUobnVsbCwgJycsIHdpbmRvdy5sb2NhdGlvbi5wYXRobmFtZSk7XG4gICAgfVxuXG4gICAgaWYgKGVkaXRvck1vZGUgPT09ICdlZGl0Jykge1xuICAgICAgJCgnYm9keScpLmFkZENsYXNzKCdvbi1lZGl0Jyk7XG4gICAgICAkKCdib2R5JykuYWRkQ2xhc3MoJ2J1aWx0aW4tZWRpdG9yJyk7XG4gICAgICAkKCdib2R5JykucmVtb3ZlQ2xhc3MoJ2hhY2ttZCcpO1xuICAgICAgLy8gZWRpdGluZyAvU2lkZWJhclxuICAgICAgaWYgKHdpbmRvdy5sb2NhdGlvbi5wYXRobmFtZSA9PT0gJy9TaWRlYmFyJykge1xuICAgICAgICAkKCdib2R5JykuYWRkQ2xhc3MoJ3BhdGhuYW1lLXNpZGViYXInKTtcbiAgICAgIH1cbiAgICAgIHdpbmRvdy5sb2NhdGlvbi5oYXNoID0gJyNlZGl0JztcbiAgICB9XG5cbiAgICBpZiAoZWRpdG9yTW9kZSA9PT0gJ2hhY2ttZCcpIHtcbiAgICAgICQoJ2JvZHknKS5hZGRDbGFzcygnb24tZWRpdCcpO1xuICAgICAgJCgnYm9keScpLmFkZENsYXNzKCdoYWNrbWQnKTtcbiAgICAgICQoJ2JvZHknKS5yZW1vdmVDbGFzcygnYnVpbHRpbi1lZGl0b3InKTtcbiAgICAgICQoJ2JvZHknKS5yZW1vdmVDbGFzcygncGF0aG5hbWUtc2lkZWJhcicpO1xuICAgICAgd2luZG93LmxvY2F0aW9uLmhhc2ggPSAnI2hhY2ttZCc7XG4gICAgfVxuXG4gICAgdGhpcy51cGRhdGVEcmF3ZXJNb2RlKHsgLi4udGhpcy5zdGF0ZSwgZWRpdG9yTW9kZSB9KTsgLy8gZ2VuZXJhdGUgbmV3ZXN0IHN0YXRlIG9iamVjdFxuICB9XG5cbiAgdG9nZ2xlRHJhd2VyKCkge1xuICAgIGNvbnN0IHsgaXNEcmF3ZXJPcGVuZWQgfSA9IHRoaXMuc3RhdGU7XG4gICAgdGhpcy5zZXRTdGF0ZSh7IGlzRHJhd2VyT3BlbmVkOiAhaXNEcmF3ZXJPcGVuZWQgfSk7XG4gIH1cblxuICAvKipcbiAgICogU2V0IFNpZGViYXIgbW9kZSBwcmVmZXJlbmNlIGJ5IHVzZXJcbiAgICogQHBhcmFtIHtib29sZWFufSBwcmVmZXJEb2NrTW9kZVxuICAgKi9cbiAgYXN5bmMgc2V0RHJhd2VyTW9kZVByZWZlcmVuY2UoYm9vbCkge1xuICAgIHRoaXMuc2V0U3RhdGUoeyBwcmVmZXJEcmF3ZXJNb2RlQnlVc2VyOiBib29sIH0pO1xuICAgIHRoaXMudXBkYXRlRHJhd2VyTW9kZSh7IC4uLnRoaXMuc3RhdGUsIHByZWZlckRyYXdlck1vZGVCeVVzZXI6IGJvb2wgfSk7IC8vIGdlbmVyYXRlIG5ld2VzdCBzdGF0ZSBvYmplY3RcblxuICAgIC8vIHN0b3JlIHNldHRpbmdzIHRvIGxvY2FsU3RvcmFnZVxuICAgIGNvbnN0IHsgbG9jYWxTdG9yYWdlIH0gPSB3aW5kb3c7XG4gICAgbG9jYWxTdG9yYWdlLnByZWZlckRyYXdlck1vZGVCeVVzZXIgPSBib29sO1xuICB9XG5cbiAgLyoqXG4gICAqIFNldCBTaWRlYmFyIG1vZGUgcHJlZmVyZW5jZSBieSB1c2VyXG4gICAqIEBwYXJhbSB7Ym9vbGVhbn0gcHJlZmVyRG9ja01vZGVcbiAgICovXG4gIGFzeW5jIHNldERyYXdlck1vZGVQcmVmZXJlbmNlT25FZGl0KGJvb2wpIHtcbiAgICB0aGlzLnNldFN0YXRlKHsgcHJlZmVyRHJhd2VyTW9kZU9uRWRpdEJ5VXNlcjogYm9vbCB9KTtcbiAgICB0aGlzLnVwZGF0ZURyYXdlck1vZGUoeyAuLi50aGlzLnN0YXRlLCBwcmVmZXJEcmF3ZXJNb2RlT25FZGl0QnlVc2VyOiBib29sIH0pOyAvLyBnZW5lcmF0ZSBuZXdlc3Qgc3RhdGUgb2JqZWN0XG5cbiAgICAvLyBzdG9yZSBzZXR0aW5ncyB0byBsb2NhbFN0b3JhZ2VcbiAgICBjb25zdCB7IGxvY2FsU3RvcmFnZSB9ID0gd2luZG93O1xuICAgIGxvY2FsU3RvcmFnZS5wcmVmZXJEcmF3ZXJNb2RlT25FZGl0QnlVc2VyID0gYm9vbDtcbiAgfVxuXG4gIC8qKlxuICAgKiBVcGRhdGUgZHJhd2VyIHJlbGF0ZWQgc3RhdGUgYnkgc3BlY2lmaWVkICduZXdTdGF0ZScgb2JqZWN0XG4gICAqIEBwYXJhbSB7b2JqZWN0fSBuZXdTdGF0ZSBBIG5ld2VzdCBzdGF0ZSBvYmplY3RcbiAgICpcbiAgICogU3BlY2lmeSAnbmV3U3RhdGUnIGxpa2UgZm9sbG93aW5nIGNvZGU6XG4gICAqXG4gICAqICAgeyAuLi50aGlzLnN0YXRlLCBvdmVyd3JpdGVQYXJhbTogb3ZlcndyaXRlVmFsdWUgfVxuICAgKlxuICAgKiBiZWNhdXNlIHVwZGF0aW5nIHN0YXRlIG9mIHVuc3RhdGVkIGNvbnRhaW5lciB3aWxsIGJlIGRlbGF5ZWQgdW5sZXNzIHlvdSB1c2UgYXdhaXRcbiAgICovXG4gIHVwZGF0ZURyYXdlck1vZGUobmV3U3RhdGUpIHtcbiAgICBjb25zdCB7XG4gICAgICBlZGl0b3JNb2RlLCBpc0RldmljZVNtYWxsZXJUaGFuTWQsIHByZWZlckRyYXdlck1vZGVCeVVzZXIsIHByZWZlckRyYXdlck1vZGVPbkVkaXRCeVVzZXIsXG4gICAgfSA9IG5ld1N0YXRlO1xuXG4gICAgLy8gZ2V0IHByZWZlcmVuY2Ugb24gdmlldyBvciBlZGl0XG4gICAgY29uc3QgcHJlZmVyRHJhd2VyTW9kZSA9IGVkaXRvck1vZGUgIT09ICd2aWV3JyA/IHByZWZlckRyYXdlck1vZGVPbkVkaXRCeVVzZXIgOiBwcmVmZXJEcmF3ZXJNb2RlQnlVc2VyO1xuXG4gICAgY29uc3QgaXNEcmF3ZXJNb2RlID0gaXNEZXZpY2VTbWFsbGVyVGhhbk1kIHx8IHByZWZlckRyYXdlck1vZGU7XG4gICAgY29uc3QgaXNEcmF3ZXJPcGVuZWQgPSBmYWxzZTsgLy8gY2xvc2UgRHJhd2VyIGFueXdheVxuXG4gICAgdGhpcy5zZXRTdGF0ZSh7IGlzRHJhd2VyTW9kZSwgaXNEcmF3ZXJPcGVuZWQgfSk7XG4gIH1cblxuICBzZWxlY3RTaWRlYmFyQ29udGVudHMoY29udGVudHNJZCkge1xuICAgIHdpbmRvdy5sb2NhbFN0b3JhZ2Uuc2V0SXRlbSgnc2lkZWJhckNvbnRlbnRzSWQnLCBjb250ZW50c0lkKTtcbiAgICB0aGlzLnNldFN0YXRlKHsgc2lkZWJhckNvbnRlbnRzSWQ6IGNvbnRlbnRzSWQgfSk7XG4gIH1cblxuICBvcGVuUGFnZUNyZWF0ZU1vZGFsKCkge1xuICAgIGlmICh0aGlzLmFwcENvbnRhaW5lci5jdXJyZW50VXNlciA9PSBudWxsKSB7XG4gICAgICBsb2dnZXIud2FybignUGxlYXNlIGxvZ2luIG9yIHNpZ251cCB0byBjcmVhdGUgYSBuZXcgcGFnZS4nKTtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgdGhpcy5zZXRTdGF0ZSh7IGlzUGFnZUNyZWF0ZU1vZGFsU2hvd246IHRydWUgfSk7XG4gIH1cblxuICBjbG9zZVBhZ2VDcmVhdGVNb2RhbCgpIHtcbiAgICB0aGlzLnNldFN0YXRlKHsgaXNQYWdlQ3JlYXRlTW9kYWxTaG93bjogZmFsc2UgfSk7XG4gIH1cblxuICAvKipcbiAgICogRnVuY3Rpb24gdGhhdCBpbXBsZW1lbnRzIHRoZSBjbGljayBldmVudCBmb3IgcmVhbGl6aW5nIHNtb290aCBzY3JvbGxcbiAgICogQHBhcmFtIHthcnJheX0gZWxlbWVudHNcbiAgICovXG4gIGFkZFNtb290aFNjcm9sbEV2ZW50KGVsZW1lbnRzID0ge30pIHtcbiAgICBlbGVtZW50cy5mb3JFYWNoKGxpbmsgPT4gbGluay5hZGRFdmVudExpc3RlbmVyKCdjbGljaycsIChlKSA9PiB7XG4gICAgICBlLnByZXZlbnREZWZhdWx0KCk7XG5cbiAgICAgIGNvbnN0IGhyZWYgPSBsaW5rLmdldEF0dHJpYnV0ZSgnaHJlZicpLnJlcGxhY2UoJyMnLCAnJyk7XG4gICAgICB3aW5kb3cubG9jYXRpb24uaGFzaCA9IGhyZWY7XG4gICAgICBjb25zdCB0YXJnZXREb20gPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZChocmVmKTtcbiAgICAgIHRoaXMuc21vb3RoU2Nyb2xsSW50b1ZpZXcodGFyZ2V0RG9tLCBXSUtJX0hFQURFUl9MSU5LKTtcbiAgICB9KSk7XG4gIH1cblxuICBzbW9vdGhTY3JvbGxJbnRvVmlldyhlbGVtZW50ID0gbnVsbCwgb2Zmc2V0VG9wID0gMCkge1xuICAgIGNvbnN0IHRhcmdldEVsZW1lbnQgPSBlbGVtZW50IHx8IHdpbmRvdy5kb2N1bWVudC5ib2R5O1xuXG4gICAgLy8gZ2V0IHRoZSBkaXN0YW5jZSB0byB0aGUgdGFyZ2V0IGVsZW1lbnQgdG9wXG4gICAgY29uc3QgcmVjdFRvcCA9IHRhcmdldEVsZW1lbnQuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCkudG9wO1xuXG4gICAgY29uc3QgdG9wID0gd2luZG93LnBhZ2VZT2Zmc2V0ICsgcmVjdFRvcCAtIG9mZnNldFRvcDtcblxuICAgIHdpbmRvdy5zY3JvbGxUbyh7XG4gICAgICB0b3AsXG4gICAgICBiZWhhdmlvcjogJ3Ntb290aCcsXG4gICAgfSk7XG4gIH1cblxufVxuIl0sIm1hcHBpbmdzIjoiQUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFDQTtBQUVBO0FBRUE7Ozs7O0FBS0E7QUFDQTtBQUVBO0FBRUE7QUFDQTtBQUVBO0FBQ0E7QUFFQTtBQUFBO0FBQUE7QUFFQTtBQUNBO0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBRUE7QUFFQTtBQUVBO0FBZEE7QUFpQkE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBRUE7Ozs7O0FBR0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBRUE7QUFDQTtBQUNBO0FBRkE7QUFLQTtBQUNBO0FBQ0E7QUFDQTtBQUFBO0FBQUE7QUFDQTtBQUFBO0FBQUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFEQTtBQUdBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFBQTtBQUFBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQUE7QUFBQTtBQUNBO0FBQUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUFBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUFBO0FBQUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUFBO0FBQUE7QUFDQTtBQUFBO0FBQUE7QUFDQTtBQUVBOzs7Ozs7QUFJQTtBQUNBO0FBQUE7QUFBQTtBQUNBO0FBQUE7QUFBQTtBQUVBO0FBQ0E7QUFBQTtBQUFBO0FBQUE7QUFDQTtBQUNBO0FBRUE7Ozs7OztBQUlBO0FBQ0E7QUFBQTtBQUFBO0FBQ0E7QUFBQTtBQUFBO0FBRUE7QUFDQTtBQUFBO0FBQUE7QUFBQTtBQUNBO0FBQ0E7QUFFQTs7Ozs7Ozs7Ozs7O0FBVUE7QUFDQTtBQUNBO0FBQUE7QUFBQTtBQUFBO0FBREE7QUFDQTtBQUlBO0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFBQTtBQUFBO0FBQUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQUE7QUFBQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFBQTtBQUFBO0FBQUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUFBO0FBQUE7QUFDQTtBQUVBOzs7Ozs7QUFJQTtBQUNBO0FBQ0E7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUVBO0FBRUE7QUFFQTtBQUNBO0FBQ0E7QUFGQTtBQUlBO0FBQ0E7QUFoT0E7QSIsInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./src/client/js/services/NavigationContainer.js\n");
- /***/ }),
- /***/ "./src/client/js/services/SocketIoContainer.js":
- /*!*****************************************************!*\
- !*** ./src/client/js/services/SocketIoContainer.js ***!
- \*****************************************************/
- /*! exports provided: default */
- /***/ (function(module, __webpack_exports__, __webpack_require__) {
- "use strict";
- eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"default\", function() { return SocketIoContainer; });\n/* harmony import */ var unstated__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! unstated */ \"./node_modules/unstated/lib/unstated.es.js\");\n/* harmony import */ var socket_io_client__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! socket.io-client */ \"./node_modules/socket.io-client/lib/index.js\");\n/* harmony import */ var socket_io_client__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(socket_io_client__WEBPACK_IMPORTED_MODULE_1__);\n/* harmony import */ var _alias_logger__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @alias/logger */ \"./src/lib/service/logger/index.js\");\n/* harmony import */ var _alias_logger__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(_alias_logger__WEBPACK_IMPORTED_MODULE_2__);\n\n\n\nconst logger = _alias_logger__WEBPACK_IMPORTED_MODULE_2___default()('growi:cli:SocketIoContainer');\n/**\n * Service container related to options for WebSocket\n * @extends {Container} unstated Container\n */\n\nclass SocketIoContainer extends unstated__WEBPACK_IMPORTED_MODULE_0__[\"Container\"] {\n constructor(appContainer, namespace) {\n super();\n this.appContainer = appContainer;\n this.appContainer.registerContainer(this);\n const ns = namespace || '/';\n this.socket = socket_io_client__WEBPACK_IMPORTED_MODULE_1___default()(ns, {\n transports: ['websocket']\n });\n this.socketClientId = Math.floor(Math.random() * 100000);\n this.socket.on('connect_error', error => {\n logger.error(error);\n });\n this.socket.on('error', error => {\n logger.error(error);\n });\n this.state = {};\n }\n /**\n * Workaround for the mangling in production build to break constructor.name\n */\n\n\n static getClassName() {\n return 'SocketIoContainer';\n }\n\n getSocket() {\n return this.socket;\n }\n\n getSocketClientId() {\n return this.socketClientId;\n }\n\n}//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9zcmMvY2xpZW50L2pzL3NlcnZpY2VzL1NvY2tldElvQ29udGFpbmVyLmpzLmpzIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vLy4vc3JjL2NsaWVudC9qcy9zZXJ2aWNlcy9Tb2NrZXRJb0NvbnRhaW5lci5qcz8zMGIyIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbnRhaW5lciB9IGZyb20gJ3Vuc3RhdGVkJztcblxuaW1wb3J0IGlvIGZyb20gJ3NvY2tldC5pby1jbGllbnQnO1xuXG5pbXBvcnQgbG9nZ2VyRmFjdG9yeSBmcm9tICdAYWxpYXMvbG9nZ2VyJztcblxuY29uc3QgbG9nZ2VyID0gbG9nZ2VyRmFjdG9yeSgnZ3Jvd2k6Y2xpOlNvY2tldElvQ29udGFpbmVyJyk7XG5cbi8qKlxuICogU2VydmljZSBjb250YWluZXIgcmVsYXRlZCB0byBvcHRpb25zIGZvciBXZWJTb2NrZXRcbiAqIEBleHRlbmRzIHtDb250YWluZXJ9IHVuc3RhdGVkIENvbnRhaW5lclxuICovXG5leHBvcnQgZGVmYXVsdCBjbGFzcyBTb2NrZXRJb0NvbnRhaW5lciBleHRlbmRzIENvbnRhaW5lciB7XG5cbiAgY29uc3RydWN0b3IoYXBwQ29udGFpbmVyLCBuYW1lc3BhY2UpIHtcbiAgICBzdXBlcigpO1xuXG4gICAgdGhpcy5hcHBDb250YWluZXIgPSBhcHBDb250YWluZXI7XG4gICAgdGhpcy5hcHBDb250YWluZXIucmVnaXN0ZXJDb250YWluZXIodGhpcyk7XG5cbiAgICBjb25zdCBucyA9IG5hbWVzcGFjZSB8fCAnLyc7XG5cbiAgICB0aGlzLnNvY2tldCA9IGlvKG5zLCB7XG4gICAgICB0cmFuc3BvcnRzOiBbJ3dlYnNvY2tldCddLFxuICAgIH0pO1xuICAgIHRoaXMuc29ja2V0Q2xpZW50SWQgPSBNYXRoLmZsb29yKE1hdGgucmFuZG9tKCkgKiAxMDAwMDApO1xuXG4gICAgdGhpcy5zb2NrZXQub24oJ2Nvbm5lY3RfZXJyb3InLCAoZXJyb3IpID0+IHtcbiAgICAgIGxvZ2dlci5lcnJvcihlcnJvcik7XG4gICAgfSk7XG4gICAgdGhpcy5zb2NrZXQub24oJ2Vycm9yJywgKGVycm9yKSA9PiB7XG4gICAgICBsb2dnZXIuZXJyb3IoZXJyb3IpO1xuICAgIH0pO1xuXG4gICAgdGhpcy5zdGF0ZSA9IHtcbiAgICB9O1xuXG4gIH1cblxuICAvKipcbiAgICogV29ya2Fyb3VuZCBmb3IgdGhlIG1hbmdsaW5nIGluIHByb2R1Y3Rpb24gYnVpbGQgdG8gYnJlYWsgY29uc3RydWN0b3IubmFtZVxuICAgKi9cbiAgc3RhdGljIGdldENsYXNzTmFtZSgpIHtcbiAgICByZXR1cm4gJ1NvY2tldElvQ29udGFpbmVyJztcbiAgfVxuXG4gIGdldFNvY2tldCgpIHtcbiAgICByZXR1cm4gdGhpcy5zb2NrZXQ7XG4gIH1cblxuICBnZXRTb2NrZXRDbGllbnRJZCgpIHtcbiAgICByZXR1cm4gdGhpcy5zb2NrZXRDbGllbnRJZDtcbiAgfVxuXG59XG4iXSwibWFwcGluZ3MiOiJBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFFQTtBQUVBO0FBRUE7QUFFQTs7Ozs7QUFJQTtBQUVBO0FBQ0E7QUFFQTtBQUNBO0FBRUE7QUFFQTtBQUNBO0FBREE7QUFHQTtBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUVBO0FBR0E7QUFFQTs7Ozs7QUFHQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUF6Q0EiLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./src/client/js/services/SocketIoContainer.js\n");
- /***/ }),
- /***/ "./src/client/js/util/GrowiRenderer.js":
- /*!*********************************************!*\
- !*** ./src/client/js/util/GrowiRenderer.js ***!
- \*********************************************/
- /*! exports provided: default */
- /***/ (function(module, __webpack_exports__, __webpack_require__) {
- "use strict";
- eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"default\", function() { return GrowiRenderer; });\n/* harmony import */ var markdown_it__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! markdown-it */ \"./node_modules/markdown-it/index.js\");\n/* harmony import */ var markdown_it__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(markdown_it__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var _PreProcessor_Linker__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./PreProcessor/Linker */ \"./src/client/js/util/PreProcessor/Linker.js\");\n/* harmony import */ var _PreProcessor_CsvToTable__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./PreProcessor/CsvToTable */ \"./src/client/js/util/PreProcessor/CsvToTable.js\");\n/* harmony import */ var _PreProcessor_EasyGrid__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./PreProcessor/EasyGrid */ \"./src/client/js/util/PreProcessor/EasyGrid.js\");\n/* harmony import */ var _PreProcessor_XssFilter__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./PreProcessor/XssFilter */ \"./src/client/js/util/PreProcessor/XssFilter.js\");\n/* harmony import */ var _markdown_it_emoji__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./markdown-it/emoji */ \"./src/client/js/util/markdown-it/emoji.js\");\n/* harmony import */ var _markdown_it_footernote__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./markdown-it/footernote */ \"./src/client/js/util/markdown-it/footernote.js\");\n/* harmony import */ var _markdown_it_header_line_number__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./markdown-it/header-line-number */ \"./src/client/js/util/markdown-it/header-line-number.js\");\n/* harmony import */ var _markdown_it_header__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ./markdown-it/header */ \"./src/client/js/util/markdown-it/header.js\");\n/* harmony import */ var _markdown_it_mathjax__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ./markdown-it/mathjax */ \"./src/client/js/util/markdown-it/mathjax.js\");\n/* harmony import */ var _markdown_it_plantuml__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ./markdown-it/plantuml */ \"./src/client/js/util/markdown-it/plantuml.js\");\n/* harmony import */ var _markdown_it_table__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! ./markdown-it/table */ \"./src/client/js/util/markdown-it/table.js\");\n/* harmony import */ var _markdown_it_task_lists__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! ./markdown-it/task-lists */ \"./src/client/js/util/markdown-it/task-lists.js\");\n/* harmony import */ var _markdown_it_toc_and_anchor__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(/*! ./markdown-it/toc-and-anchor */ \"./src/client/js/util/markdown-it/toc-and-anchor.js\");\n/* harmony import */ var _markdown_it_blockdiag__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__(/*! ./markdown-it/blockdiag */ \"./src/client/js/util/markdown-it/blockdiag.js\");\n/* harmony import */ var _markdown_it_drawio_viewer__WEBPACK_IMPORTED_MODULE_15__ = __webpack_require__(/*! ./markdown-it/drawio-viewer */ \"./src/client/js/util/markdown-it/drawio-viewer.js\");\n/* harmony import */ var _markdown_it_table_with_handsontable_button__WEBPACK_IMPORTED_MODULE_16__ = __webpack_require__(/*! ./markdown-it/table-with-handsontable-button */ \"./src/client/js/util/markdown-it/table-with-handsontable-button.js\");\n/* harmony import */ var _markdown_it_header_with_edit_link__WEBPACK_IMPORTED_MODULE_17__ = __webpack_require__(/*! ./markdown-it/header-with-edit-link */ \"./src/client/js/util/markdown-it/header-with-edit-link.js\");\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nconst logger = __webpack_require__(/*! @alias/logger */ \"./src/lib/service/logger/index.js\")('growi:util:GrowiRenderer');\n\nclass GrowiRenderer {\n /**\n *\n * @param {AppContainer} appContainer\n * @param {GrowiRenderer} originRenderer\n * @param {string} mode\n */\n constructor(appContainer, originRenderer) {\n this.appContainer = appContainer;\n\n if (originRenderer != null) {\n this.preProcessors = originRenderer.preProcessors;\n this.postProcessors = originRenderer.postProcessors;\n } else {\n this.preProcessors = [new _PreProcessor_EasyGrid__WEBPACK_IMPORTED_MODULE_3__[\"default\"](appContainer), new _PreProcessor_Linker__WEBPACK_IMPORTED_MODULE_1__[\"default\"](appContainer), new _PreProcessor_CsvToTable__WEBPACK_IMPORTED_MODULE_2__[\"default\"](appContainer), new _PreProcessor_XssFilter__WEBPACK_IMPORTED_MODULE_4__[\"default\"](appContainer)];\n this.postProcessors = [];\n }\n\n this.initMarkdownItConfigurers = this.initMarkdownItConfigurers.bind(this);\n this.setup = this.setup.bind(this);\n this.process = this.process.bind(this);\n this.codeRenderer = this.codeRenderer.bind(this);\n }\n\n initMarkdownItConfigurers(mode) {\n const appContainer = this.appContainer; // init markdown-it\n\n this.md = new markdown_it__WEBPACK_IMPORTED_MODULE_0___default.a({\n html: true,\n linkify: true,\n highlight: this.codeRenderer\n });\n this.isMarkdownItConfigured = false;\n this.markdownItConfigurers = [new _markdown_it_task_lists__WEBPACK_IMPORTED_MODULE_12__[\"default\"](appContainer), new _markdown_it_header__WEBPACK_IMPORTED_MODULE_8__[\"default\"](appContainer), new _markdown_it_emoji__WEBPACK_IMPORTED_MODULE_5__[\"default\"](appContainer), new _markdown_it_mathjax__WEBPACK_IMPORTED_MODULE_9__[\"default\"](appContainer), new _markdown_it_drawio_viewer__WEBPACK_IMPORTED_MODULE_15__[\"default\"](appContainer), new _markdown_it_plantuml__WEBPACK_IMPORTED_MODULE_10__[\"default\"](appContainer), new _markdown_it_blockdiag__WEBPACK_IMPORTED_MODULE_14__[\"default\"](appContainer)]; // add configurers according to mode\n\n switch (mode) {\n case 'page':\n {\n const pageContainer = appContainer.getContainer('PageContainer');\n this.markdownItConfigurers = this.markdownItConfigurers.concat([new _markdown_it_footernote__WEBPACK_IMPORTED_MODULE_6__[\"default\"](appContainer), new _markdown_it_toc_and_anchor__WEBPACK_IMPORTED_MODULE_13__[\"default\"](appContainer, pageContainer.setTocHtml), new _markdown_it_header_line_number__WEBPACK_IMPORTED_MODULE_7__[\"default\"](appContainer), new _markdown_it_header_with_edit_link__WEBPACK_IMPORTED_MODULE_17__[\"default\"](appContainer), new _markdown_it_table_with_handsontable_button__WEBPACK_IMPORTED_MODULE_16__[\"default\"](appContainer)]);\n break;\n }\n\n case 'editor':\n this.markdownItConfigurers = this.markdownItConfigurers.concat([new _markdown_it_footernote__WEBPACK_IMPORTED_MODULE_6__[\"default\"](appContainer), new _markdown_it_header_line_number__WEBPACK_IMPORTED_MODULE_7__[\"default\"](appContainer), new _markdown_it_table__WEBPACK_IMPORTED_MODULE_11__[\"default\"](appContainer)]);\n break;\n // case 'comment':\n // break;\n\n default:\n this.markdownItConfigurers = this.markdownItConfigurers.concat([new _markdown_it_table__WEBPACK_IMPORTED_MODULE_11__[\"default\"](appContainer)]);\n break;\n }\n }\n /**\n * setup with crowi config\n */\n\n\n setup(mode) {\n const crowiConfig = this.appContainer.config;\n let isEnabledLinebreaks;\n\n switch (mode) {\n case 'comment':\n isEnabledLinebreaks = crowiConfig.isEnabledLinebreaksInComments;\n break;\n\n default:\n isEnabledLinebreaks = crowiConfig.isEnabledLinebreaks;\n break;\n }\n\n this.md.set({\n breaks: isEnabledLinebreaks\n });\n\n if (!this.isMarkdownItConfigured) {\n this.markdownItConfigurers.forEach(configurer => {\n configurer.configure(this.md);\n });\n }\n }\n\n preProcess(markdown) {\n let processed = markdown;\n\n for (let i = 0; i < this.preProcessors.length; i++) {\n if (!this.preProcessors[i].process) {\n continue;\n }\n\n processed = this.preProcessors[i].process(processed);\n }\n\n return processed;\n }\n\n process(markdown) {\n return this.md.render(markdown);\n }\n\n postProcess(html) {\n let processed = html;\n\n for (let i = 0; i < this.postProcessors.length; i++) {\n if (!this.postProcessors[i].process) {\n continue;\n }\n\n processed = this.postProcessors[i].process(processed);\n }\n\n return processed;\n }\n\n codeRenderer(code, langExt) {\n const config = this.appContainer.getConfig();\n const noborder = !config.highlightJsStyleBorder ? 'hljs-no-border' : '';\n let citeTag = '';\n let hljsLang = 'plaintext';\n let showLinenumbers = false;\n\n if (langExt) {\n // https://regex101.com/r/qGs7eZ/3\n const match = langExt.match(/^([^:=\\n]+)?(=([^:=\\n]*))?(:([^:=\\n]*))?(=([^:=\\n]*))?$/);\n const lang = match[1];\n const fileName = match[5] || null;\n showLinenumbers = match[2] != null || match[6] != null;\n\n if (fileName != null) {\n citeTag = `<cite>${fileName}</cite>`;\n }\n\n if (hljs.getLanguage(lang)) {\n hljsLang = lang;\n }\n }\n\n let highlightCode = code;\n\n try {\n highlightCode = hljs.highlight(hljsLang, code, true).value; // add line numbers\n\n if (showLinenumbers) {\n highlightCode = hljs.lineNumbersValue(highlightCode);\n }\n } catch (err) {\n logger.error(err);\n }\n\n return `<pre class=\"hljs ${noborder}\">${citeTag}<code>${highlightCode}</code></pre>`;\n }\n\n highlightCode(code, lang) {}\n\n}//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9zcmMvY2xpZW50L2pzL3V0aWwvR3Jvd2lSZW5kZXJlci5qcy5qcyIsInNvdXJjZXMiOlsid2VicGFjazovLy8uL3NyYy9jbGllbnQvanMvdXRpbC9Hcm93aVJlbmRlcmVyLmpzPzliNTYiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IE1hcmtkb3duSXQgZnJvbSAnbWFya2Rvd24taXQnO1xuXG5pbXBvcnQgTGlua2VyIGZyb20gJy4vUHJlUHJvY2Vzc29yL0xpbmtlcic7XG5pbXBvcnQgQ3N2VG9UYWJsZSBmcm9tICcuL1ByZVByb2Nlc3Nvci9Dc3ZUb1RhYmxlJztcbmltcG9ydCBFYXN5R3JpZCBmcm9tICcuL1ByZVByb2Nlc3Nvci9FYXN5R3JpZCc7XG5pbXBvcnQgWHNzRmlsdGVyIGZyb20gJy4vUHJlUHJvY2Vzc29yL1hzc0ZpbHRlcic7XG5cbmltcG9ydCBFbW9qaUNvbmZpZ3VyZXIgZnJvbSAnLi9tYXJrZG93bi1pdC9lbW9qaSc7XG5pbXBvcnQgRm9vdGVybm90ZUNvbmZpZ3VyZXIgZnJvbSAnLi9tYXJrZG93bi1pdC9mb290ZXJub3RlJztcbmltcG9ydCBIZWFkZXJMaW5lTnVtYmVyQ29uZmlndXJlciBmcm9tICcuL21hcmtkb3duLWl0L2hlYWRlci1saW5lLW51bWJlcic7XG5pbXBvcnQgSGVhZGVyQ29uZmlndXJlciBmcm9tICcuL21hcmtkb3duLWl0L2hlYWRlcic7XG5pbXBvcnQgTWF0aEpheENvbmZpZ3VyZXIgZnJvbSAnLi9tYXJrZG93bi1pdC9tYXRoamF4JztcbmltcG9ydCBQbGFudFVNTENvbmZpZ3VyZXIgZnJvbSAnLi9tYXJrZG93bi1pdC9wbGFudHVtbCc7XG5pbXBvcnQgVGFibGVDb25maWd1cmVyIGZyb20gJy4vbWFya2Rvd24taXQvdGFibGUnO1xuaW1wb3J0IFRhc2tMaXN0c0NvbmZpZ3VyZXIgZnJvbSAnLi9tYXJrZG93bi1pdC90YXNrLWxpc3RzJztcbmltcG9ydCBUb2NBbmRBbmNob3JDb25maWd1cmVyIGZyb20gJy4vbWFya2Rvd24taXQvdG9jLWFuZC1hbmNob3InO1xuaW1wb3J0IEJsb2NrZGlhZ0NvbmZpZ3VyZXIgZnJvbSAnLi9tYXJrZG93bi1pdC9ibG9ja2RpYWcnO1xuaW1wb3J0IERyYXdpb1ZpZXdlckNvbmZpZ3VyZXIgZnJvbSAnLi9tYXJrZG93bi1pdC9kcmF3aW8tdmlld2VyJztcbmltcG9ydCBUYWJsZVdpdGhIYW5kc29udGFibGVCdXR0b25Db25maWd1cmVyIGZyb20gJy4vbWFya2Rvd24taXQvdGFibGUtd2l0aC1oYW5kc29udGFibGUtYnV0dG9uJztcbmltcG9ydCBIZWFkZXJXaXRoRWRpdExpbmtDb25maWd1cmVyIGZyb20gJy4vbWFya2Rvd24taXQvaGVhZGVyLXdpdGgtZWRpdC1saW5rJztcblxuY29uc3QgbG9nZ2VyID0gcmVxdWlyZSgnQGFsaWFzL2xvZ2dlcicpKCdncm93aTp1dGlsOkdyb3dpUmVuZGVyZXInKTtcblxuZXhwb3J0IGRlZmF1bHQgY2xhc3MgR3Jvd2lSZW5kZXJlciB7XG5cbiAgLyoqXG4gICAqXG4gICAqIEBwYXJhbSB7QXBwQ29udGFpbmVyfSBhcHBDb250YWluZXJcbiAgICogQHBhcmFtIHtHcm93aVJlbmRlcmVyfSBvcmlnaW5SZW5kZXJlclxuICAgKiBAcGFyYW0ge3N0cmluZ30gbW9kZVxuICAgKi9cbiAgY29uc3RydWN0b3IoYXBwQ29udGFpbmVyLCBvcmlnaW5SZW5kZXJlcikge1xuICAgIHRoaXMuYXBwQ29udGFpbmVyID0gYXBwQ29udGFpbmVyO1xuXG4gICAgaWYgKG9yaWdpblJlbmRlcmVyICE9IG51bGwpIHtcbiAgICAgIHRoaXMucHJlUHJvY2Vzc29ycyA9IG9yaWdpblJlbmRlcmVyLnByZVByb2Nlc3NvcnM7XG4gICAgICB0aGlzLnBvc3RQcm9jZXNzb3JzID0gb3JpZ2luUmVuZGVyZXIucG9zdFByb2Nlc3NvcnM7XG4gICAgfVxuICAgIGVsc2Uge1xuICAgICAgdGhpcy5wcmVQcm9jZXNzb3JzID0gW1xuICAgICAgICBuZXcgRWFzeUdyaWQoYXBwQ29udGFpbmVyKSxcbiAgICAgICAgbmV3IExpbmtlcihhcHBDb250YWluZXIpLFxuICAgICAgICBuZXcgQ3N2VG9UYWJsZShhcHBDb250YWluZXIpLFxuICAgICAgICBuZXcgWHNzRmlsdGVyKGFwcENvbnRhaW5lciksXG4gICAgICBdO1xuICAgICAgdGhpcy5wb3N0UHJvY2Vzc29ycyA9IFtcbiAgICAgIF07XG4gICAgfVxuXG4gICAgdGhpcy5pbml0TWFya2Rvd25JdENvbmZpZ3VyZXJzID0gdGhpcy5pbml0TWFya2Rvd25JdENvbmZpZ3VyZXJzLmJpbmQodGhpcyk7XG4gICAgdGhpcy5zZXR1cCA9IHRoaXMuc2V0dXAuYmluZCh0aGlzKTtcbiAgICB0aGlzLnByb2Nlc3MgPSB0aGlzLnByb2Nlc3MuYmluZCh0aGlzKTtcbiAgICB0aGlzLmNvZGVSZW5kZXJlciA9IHRoaXMuY29kZVJlbmRlcmVyLmJpbmQodGhpcyk7XG4gIH1cblxuICBpbml0TWFya2Rvd25JdENvbmZpZ3VyZXJzKG1vZGUpIHtcbiAgICBjb25zdCBhcHBDb250YWluZXIgPSB0aGlzLmFwcENvbnRhaW5lcjtcblxuICAgIC8vIGluaXQgbWFya2Rvd24taXRcbiAgICB0aGlzLm1kID0gbmV3IE1hcmtkb3duSXQoe1xuICAgICAgaHRtbDogdHJ1ZSxcbiAgICAgIGxpbmtpZnk6IHRydWUsXG4gICAgICBoaWdobGlnaHQ6IHRoaXMuY29kZVJlbmRlcmVyLFxuICAgIH0pO1xuXG4gICAgdGhpcy5pc01hcmtkb3duSXRDb25maWd1cmVkID0gZmFsc2U7XG5cbiAgICB0aGlzLm1hcmtkb3duSXRDb25maWd1cmVycyA9IFtcbiAgICAgIG5ldyBUYXNrTGlzdHNDb25maWd1cmVyKGFwcENvbnRhaW5lciksXG4gICAgICBuZXcgSGVhZGVyQ29uZmlndXJlcihhcHBDb250YWluZXIpLFxuICAgICAgbmV3IEVtb2ppQ29uZmlndXJlcihhcHBDb250YWluZXIpLFxuICAgICAgbmV3IE1hdGhKYXhDb25maWd1cmVyKGFwcENvbnRhaW5lciksXG4gICAgICBuZXcgRHJhd2lvVmlld2VyQ29uZmlndXJlcihhcHBDb250YWluZXIpLFxuICAgICAgbmV3IFBsYW50VU1MQ29uZmlndXJlcihhcHBDb250YWluZXIpLFxuICAgICAgbmV3IEJsb2NrZGlhZ0NvbmZpZ3VyZXIoYXBwQ29udGFpbmVyKSxcbiAgICBdO1xuXG4gICAgLy8gYWRkIGNvbmZpZ3VyZXJzIGFjY29yZGluZyB0byBtb2RlXG4gICAgc3dpdGNoIChtb2RlKSB7XG4gICAgICBjYXNlICdwYWdlJzoge1xuICAgICAgICBjb25zdCBwYWdlQ29udGFpbmVyID0gYXBwQ29udGFpbmVyLmdldENvbnRhaW5lcignUGFnZUNvbnRhaW5lcicpO1xuXG4gICAgICAgIHRoaXMubWFya2Rvd25JdENvbmZpZ3VyZXJzID0gdGhpcy5tYXJrZG93bkl0Q29uZmlndXJlcnMuY29uY2F0KFtcbiAgICAgICAgICBuZXcgRm9vdGVybm90ZUNvbmZpZ3VyZXIoYXBwQ29udGFpbmVyKSxcbiAgICAgICAgICBuZXcgVG9jQW5kQW5jaG9yQ29uZmlndXJlcihhcHBDb250YWluZXIsIHBhZ2VDb250YWluZXIuc2V0VG9jSHRtbCksXG4gICAgICAgICAgbmV3IEhlYWRlckxpbmVOdW1iZXJDb25maWd1cmVyKGFwcENvbnRhaW5lciksXG4gICAgICAgICAgbmV3IEhlYWRlcldpdGhFZGl0TGlua0NvbmZpZ3VyZXIoYXBwQ29udGFpbmVyKSxcbiAgICAgICAgICBuZXcgVGFibGVXaXRoSGFuZHNvbnRhYmxlQnV0dG9uQ29uZmlndXJlcihhcHBDb250YWluZXIpLFxuICAgICAgICBdKTtcbiAgICAgICAgYnJlYWs7XG4gICAgICB9XG4gICAgICBjYXNlICdlZGl0b3InOlxuICAgICAgICB0aGlzLm1hcmtkb3duSXRDb25maWd1cmVycyA9IHRoaXMubWFya2Rvd25JdENvbmZpZ3VyZXJzLmNvbmNhdChbXG4gICAgICAgICAgbmV3IEZvb3Rlcm5vdGVDb25maWd1cmVyKGFwcENvbnRhaW5lciksXG4gICAgICAgICAgbmV3IEhlYWRlckxpbmVOdW1iZXJDb25maWd1cmVyKGFwcENvbnRhaW5lciksXG4gICAgICAgICAgbmV3IFRhYmxlQ29uZmlndXJlcihhcHBDb250YWluZXIpLFxuICAgICAgICBdKTtcbiAgICAgICAgYnJlYWs7XG4gICAgICAvLyBjYXNlICdjb21tZW50JzpcbiAgICAgIC8vICAgYnJlYWs7XG4gICAgICBkZWZhdWx0OlxuICAgICAgICB0aGlzLm1hcmtkb3duSXRDb25maWd1cmVycyA9IHRoaXMubWFya2Rvd25JdENvbmZpZ3VyZXJzLmNvbmNhdChbXG4gICAgICAgICAgbmV3IFRhYmxlQ29uZmlndXJlcihhcHBDb250YWluZXIpLFxuICAgICAgICBdKTtcbiAgICAgICAgYnJlYWs7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIHNldHVwIHdpdGggY3Jvd2kgY29uZmlnXG4gICAqL1xuICBzZXR1cChtb2RlKSB7XG4gICAgY29uc3QgY3Jvd2lDb25maWcgPSB0aGlzLmFwcENvbnRhaW5lci5jb25maWc7XG5cbiAgICBsZXQgaXNFbmFibGVkTGluZWJyZWFrcztcbiAgICBzd2l0Y2ggKG1vZGUpIHtcbiAgICAgIGNhc2UgJ2NvbW1lbnQnOlxuICAgICAgICBpc0VuYWJsZWRMaW5lYnJlYWtzID0gY3Jvd2lDb25maWcuaXNFbmFibGVkTGluZWJyZWFrc0luQ29tbWVudHM7XG4gICAgICAgIGJyZWFrO1xuICAgICAgZGVmYXVsdDpcbiAgICAgICAgaXNFbmFibGVkTGluZWJyZWFrcyA9IGNyb3dpQ29uZmlnLmlzRW5hYmxlZExpbmVicmVha3M7XG4gICAgICAgIGJyZWFrO1xuICAgIH1cblxuICAgIHRoaXMubWQuc2V0KHtcbiAgICAgIGJyZWFrczogaXNFbmFibGVkTGluZWJyZWFrcyxcbiAgICB9KTtcblxuICAgIGlmICghdGhpcy5pc01hcmtkb3duSXRDb25maWd1cmVkKSB7XG4gICAgICB0aGlzLm1hcmtkb3duSXRDb25maWd1cmVycy5mb3JFYWNoKChjb25maWd1cmVyKSA9PiB7XG4gICAgICAgIGNvbmZpZ3VyZXIuY29uZmlndXJlKHRoaXMubWQpO1xuICAgICAgfSk7XG4gICAgfVxuICB9XG5cbiAgcHJlUHJvY2VzcyhtYXJrZG93bikge1xuICAgIGxldCBwcm9jZXNzZWQgPSBtYXJrZG93bjtcbiAgICBmb3IgKGxldCBpID0gMDsgaSA8IHRoaXMucHJlUHJvY2Vzc29ycy5sZW5ndGg7IGkrKykge1xuICAgICAgaWYgKCF0aGlzLnByZVByb2Nlc3NvcnNbaV0ucHJvY2Vzcykge1xuICAgICAgICBjb250aW51ZTtcbiAgICAgIH1cbiAgICAgIHByb2Nlc3NlZCA9IHRoaXMucHJlUHJvY2Vzc29yc1tpXS5wcm9jZXNzKHByb2Nlc3NlZCk7XG4gICAgfVxuXG4gICAgcmV0dXJuIHByb2Nlc3NlZDtcbiAgfVxuXG4gIHByb2Nlc3MobWFya2Rvd24pIHtcbiAgICByZXR1cm4gdGhpcy5tZC5yZW5kZXIobWFya2Rvd24pO1xuICB9XG5cbiAgcG9zdFByb2Nlc3MoaHRtbCkge1xuICAgIGxldCBwcm9jZXNzZWQgPSBodG1sO1xuICAgIGZvciAobGV0IGkgPSAwOyBpIDwgdGhpcy5wb3N0UHJvY2Vzc29ycy5sZW5ndGg7IGkrKykge1xuICAgICAgaWYgKCF0aGlzLnBvc3RQcm9jZXNzb3JzW2ldLnByb2Nlc3MpIHtcbiAgICAgICAgY29udGludWU7XG4gICAgICB9XG4gICAgICBwcm9jZXNzZWQgPSB0aGlzLnBvc3RQcm9jZXNzb3JzW2ldLnByb2Nlc3MocHJvY2Vzc2VkKTtcbiAgICB9XG5cbiAgICByZXR1cm4gcHJvY2Vzc2VkO1xuICB9XG5cbiAgY29kZVJlbmRlcmVyKGNvZGUsIGxhbmdFeHQpIHtcbiAgICBjb25zdCBjb25maWcgPSB0aGlzLmFwcENvbnRhaW5lci5nZXRDb25maWcoKTtcbiAgICBjb25zdCBub2JvcmRlciA9ICghY29uZmlnLmhpZ2hsaWdodEpzU3R5bGVCb3JkZXIpID8gJ2hsanMtbm8tYm9yZGVyJyA6ICcnO1xuXG4gICAgbGV0IGNpdGVUYWcgPSAnJztcbiAgICBsZXQgaGxqc0xhbmcgPSAncGxhaW50ZXh0JztcbiAgICBsZXQgc2hvd0xpbmVudW1iZXJzID0gZmFsc2U7XG5cbiAgICBpZiAobGFuZ0V4dCkge1xuICAgICAgLy8gaHR0cHM6Ly9yZWdleDEwMS5jb20vci9xR3M3ZVovM1xuICAgICAgY29uc3QgbWF0Y2ggPSBsYW5nRXh0Lm1hdGNoKC9eKFteOj1cXG5dKyk/KD0oW146PVxcbl0qKSk/KDooW146PVxcbl0qKSk/KD0oW146PVxcbl0qKSk/JC8pO1xuXG4gICAgICBjb25zdCBsYW5nID0gbWF0Y2hbMV07XG4gICAgICBjb25zdCBmaWxlTmFtZSA9IG1hdGNoWzVdIHx8IG51bGw7XG4gICAgICBzaG93TGluZW51bWJlcnMgPSAobWF0Y2hbMl0gIT0gbnVsbCkgfHwgKG1hdGNoWzZdICE9IG51bGwpO1xuXG4gICAgICBpZiAoZmlsZU5hbWUgIT0gbnVsbCkge1xuICAgICAgICBjaXRlVGFnID0gYDxjaXRlPiR7ZmlsZU5hbWV9PC9jaXRlPmA7XG4gICAgICB9XG4gICAgICBpZiAoaGxqcy5nZXRMYW5ndWFnZShsYW5nKSkge1xuICAgICAgICBobGpzTGFuZyA9IGxhbmc7XG4gICAgICB9XG4gICAgfVxuXG4gICAgbGV0IGhpZ2hsaWdodENvZGUgPSBjb2RlO1xuICAgIHRyeSB7XG4gICAgICBoaWdobGlnaHRDb2RlID0gaGxqcy5oaWdobGlnaHQoaGxqc0xhbmcsIGNvZGUsIHRydWUpLnZhbHVlO1xuXG4gICAgICAvLyBhZGQgbGluZSBudW1iZXJzXG4gICAgICBpZiAoc2hvd0xpbmVudW1iZXJzKSB7XG4gICAgICAgIGhpZ2hsaWdodENvZGUgPSBobGpzLmxpbmVOdW1iZXJzVmFsdWUoKGhpZ2hsaWdodENvZGUpKTtcbiAgICAgIH1cbiAgICB9XG4gICAgY2F0Y2ggKGVycikge1xuICAgICAgbG9nZ2VyLmVycm9yKGVycik7XG4gICAgfVxuXG4gICAgcmV0dXJuIGA8cHJlIGNsYXNzPVwiaGxqcyAke25vYm9yZGVyfVwiPiR7Y2l0ZVRhZ308Y29kZT4ke2hpZ2hsaWdodENvZGV9PC9jb2RlPjwvcHJlPmA7XG4gIH1cblxuICBoaWdobGlnaHRDb2RlKGNvZGUsIGxhbmcpIHtcbiAgfVxuXG59XG4iXSwibWFwcGluZ3MiOiJBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBRUE7Ozs7OztBQU1BO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBRUE7QUFNQTtBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUhBO0FBTUE7QUFFQTtBQUNBO0FBVUE7QUFDQTtBQUFBO0FBQ0E7QUFFQTtBQU9BO0FBQ0E7QUFDQTtBQUFBO0FBQ0E7QUFLQTtBQUNBO0FBQ0E7QUFDQTtBQUFBO0FBQ0E7QUFHQTtBQTFCQTtBQTRCQTtBQUVBOzs7OztBQUdBO0FBQ0E7QUFFQTtBQUNBO0FBQUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUFBO0FBQ0E7QUFDQTtBQU5BO0FBQ0E7QUFRQTtBQUNBO0FBREE7QUFDQTtBQUdBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUFBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUFBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUFBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQUE7QUFDQTtBQUNBO0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBckxBIiwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./src/client/js/util/GrowiRenderer.js\n");
- /***/ }),
- /***/ "./src/client/js/util/PreProcessor/CsvToTable.js":
- /*!*******************************************************!*\
- !*** ./src/client/js/util/PreProcessor/CsvToTable.js ***!
- \*******************************************************/
- /*! exports provided: default */
- /***/ (function(module, __webpack_exports__, __webpack_require__) {
- "use strict";
- eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"default\", function() { return CsvToTable; });\n/* harmony import */ var csv_to_markdown_table__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! csv-to-markdown-table */ \"./node_modules/csv-to-markdown-table/lib/CsvToMarkdown.js\");\n/* harmony import */ var csv_to_markdown_table__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(csv_to_markdown_table__WEBPACK_IMPORTED_MODULE_0__);\n\nclass CsvToTable {\n process(markdown) {\n // see: https://regex101.com/r/WR6IvX/3\n return markdown.replace(/:::\\s*(\\S+)[\\r\\n]((.|[\\r\\n])*?)[\\r\\n]:::/gm, (all, group1, group2) => {\n switch (group1) {\n case 'tsv':\n return csv_to_markdown_table__WEBPACK_IMPORTED_MODULE_0___default()(group2, '\\t');\n\n case 'tsv-h':\n return csv_to_markdown_table__WEBPACK_IMPORTED_MODULE_0___default()(group2, '\\t', true);\n\n case 'csv':\n return csv_to_markdown_table__WEBPACK_IMPORTED_MODULE_0___default()(group2, ',');\n\n case 'csv-h':\n return csv_to_markdown_table__WEBPACK_IMPORTED_MODULE_0___default()(group2, ',', true);\n\n default:\n return all;\n }\n });\n }\n\n}//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9zcmMvY2xpZW50L2pzL3V0aWwvUHJlUHJvY2Vzc29yL0NzdlRvVGFibGUuanMuanMiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9zcmMvY2xpZW50L2pzL3V0aWwvUHJlUHJvY2Vzc29yL0NzdlRvVGFibGUuanM/ZWU0OSJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgY3N2VG9NYXJrZG93blRhYmxlIGZyb20gJ2Nzdi10by1tYXJrZG93bi10YWJsZSc7XG5cbmV4cG9ydCBkZWZhdWx0IGNsYXNzIENzdlRvVGFibGUge1xuXG4gIHByb2Nlc3MobWFya2Rvd24pIHtcbiAgICAvLyBzZWU6IGh0dHBzOi8vcmVnZXgxMDEuY29tL3IvV1I2SXZYLzNcbiAgICByZXR1cm4gbWFya2Rvd24ucmVwbGFjZSgvOjo6XFxzKihcXFMrKVtcXHJcXG5dKCgufFtcXHJcXG5dKSo/KVtcXHJcXG5dOjo6L2dtLCAoYWxsLCBncm91cDEsIGdyb3VwMikgPT4ge1xuICAgICAgc3dpdGNoIChncm91cDEpIHtcbiAgICAgICAgY2FzZSAndHN2JzpcbiAgICAgICAgICByZXR1cm4gY3N2VG9NYXJrZG93blRhYmxlKGdyb3VwMiwgJ1xcdCcpO1xuICAgICAgICBjYXNlICd0c3YtaCc6XG4gICAgICAgICAgcmV0dXJuIGNzdlRvTWFya2Rvd25UYWJsZShncm91cDIsICdcXHQnLCB0cnVlKTtcbiAgICAgICAgY2FzZSAnY3N2JzpcbiAgICAgICAgICByZXR1cm4gY3N2VG9NYXJrZG93blRhYmxlKGdyb3VwMiwgJywnKTtcbiAgICAgICAgY2FzZSAnY3N2LWgnOlxuICAgICAgICAgIHJldHVybiBjc3ZUb01hcmtkb3duVGFibGUoZ3JvdXAyLCAnLCcsIHRydWUpO1xuICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgIHJldHVybiBhbGw7XG4gICAgICB9XG4gICAgfSk7XG4gIH1cblxufVxuIl0sIm1hcHBpbmdzIjoiQUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBRUE7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUFBO0FBQ0E7QUFDQTtBQUFBO0FBQ0E7QUFDQTtBQUFBO0FBQ0E7QUFDQTtBQUFBO0FBQ0E7QUFWQTtBQVlBO0FBQ0E7QUFDQTtBQW5CQSIsInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./src/client/js/util/PreProcessor/CsvToTable.js\n");
- /***/ }),
- /***/ "./src/client/js/util/PreProcessor/EasyGrid.js":
- /*!*****************************************************!*\
- !*** ./src/client/js/util/PreProcessor/EasyGrid.js ***!
- \*****************************************************/
- /*! exports provided: default */
- /***/ (function(module, __webpack_exports__, __webpack_require__) {
- "use strict";
- eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"default\", function() { return EasyGrid; });\nclass EasyGrid {\n process(markdown) {\n // see: https://regex101.com/r/7NWvUU/2\n return markdown.replace(/:::\\s*editable-row[\\r\\n]((.|[\\r\\n])*?)[\\r\\n]:::/gm, (all, group) => {\n return group;\n });\n }\n\n}//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9zcmMvY2xpZW50L2pzL3V0aWwvUHJlUHJvY2Vzc29yL0Vhc3lHcmlkLmpzLmpzIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vLy4vc3JjL2NsaWVudC9qcy91dGlsL1ByZVByb2Nlc3Nvci9FYXN5R3JpZC5qcz8yYTIzIl0sInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBkZWZhdWx0IGNsYXNzIEVhc3lHcmlkIHtcblxuICBwcm9jZXNzKG1hcmtkb3duKSB7XG4gICAgLy8gc2VlOiBodHRwczovL3JlZ2V4MTAxLmNvbS9yLzdOV3ZVVS8yXG4gICAgcmV0dXJuIG1hcmtkb3duLnJlcGxhY2UoLzo6OlxccyplZGl0YWJsZS1yb3dbXFxyXFxuXSgoLnxbXFxyXFxuXSkqPylbXFxyXFxuXTo6Oi9nbSwgKGFsbCwgZ3JvdXApID0+IHtcbiAgICAgIHJldHVybiBncm91cDtcbiAgICB9KTtcbiAgfVxuXG59XG4iXSwibWFwcGluZ3MiOiJBQUFBO0FBQUE7QUFBQTtBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBUkEiLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./src/client/js/util/PreProcessor/EasyGrid.js\n");
- /***/ }),
- /***/ "./src/client/js/util/PreProcessor/Linker.js":
- /*!***************************************************!*\
- !*** ./src/client/js/util/PreProcessor/Linker.js ***!
- \***************************************************/
- /*! exports provided: default */
- /***/ (function(module, __webpack_exports__, __webpack_require__) {
- "use strict";
- eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"default\", function() { return Linker; });\nclass Linker {\n process(markdown) {\n return markdown // process angle branckets like '</Level1/Level2>'\n // see: https://regex101.com/r/rxAy4F/2\n .replace(/<((\\/[^>\\n]+?){2,})>/g, '<a href=\"$1\">$1</a>') // ページ間リンク: <> でかこまれてて / から始まり、 / が2個以上\n // process square branckets like '[/Level1]'\n // see: https://regex101.com/r/QSt1yu/5\n .replace(/\\[(\\/[^\\]\\n]+?)\\](?!\\()/g, '<a href=\"$1\">$1</a>');\n }\n\n}//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9zcmMvY2xpZW50L2pzL3V0aWwvUHJlUHJvY2Vzc29yL0xpbmtlci5qcy5qcyIsInNvdXJjZXMiOlsid2VicGFjazovLy8uL3NyYy9jbGllbnQvanMvdXRpbC9QcmVQcm9jZXNzb3IvTGlua2VyLmpzP2FkMTAiXSwic291cmNlc0NvbnRlbnQiOlsiXG5leHBvcnQgZGVmYXVsdCBjbGFzcyBMaW5rZXIge1xuXG4gIHByb2Nlc3MobWFya2Rvd24pIHtcbiAgICByZXR1cm4gbWFya2Rvd25cbiAgICAgIC8vIHByb2Nlc3MgYW5nbGUgYnJhbmNrZXRzIGxpa2UgJzwvTGV2ZWwxL0xldmVsMj4nXG4gICAgICAvLyBzZWU6IGh0dHBzOi8vcmVnZXgxMDEuY29tL3IvcnhBeTRGLzJcbiAgICAgIC5yZXBsYWNlKC88KChcXC9bXj5cXG5dKz8pezIsfSk+L2csICc8YSBocmVmPVwiJDFcIj4kMTwvYT4nKSAvLyDjg5rjg7zjgrjplpPjg6rjg7Pjgq86IDw+IOOBp+OBi+OBk+OBvuOCjOOBpuOBpiAvIOOBi+OCieWni+OBvuOCiuOAgSAvIOOBjDLlgIvku6XkuIpcbiAgICAgIC8vIHByb2Nlc3Mgc3F1YXJlIGJyYW5ja2V0cyBsaWtlICdbL0xldmVsMV0nXG4gICAgICAvLyBzZWU6IGh0dHBzOi8vcmVnZXgxMDEuY29tL3IvUVN0MXl1LzVcbiAgICAgIC5yZXBsYWNlKC9cXFsoXFwvW15cXF1cXG5dKz8pXFxdKD8hXFwoKS9nLCAnPGEgaHJlZj1cIiQxXCI+JDE8L2E+Jyk7XG4gIH1cblxufVxuIl0sIm1hcHBpbmdzIjoiQUFDQTtBQUFBO0FBQUE7QUFFQTtBQUNBO0FBRUE7QUFGQTtBQUlBO0FBQ0E7QUFMQTtBQU9BO0FBQ0E7QUFYQSIsInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./src/client/js/util/PreProcessor/Linker.js\n");
- /***/ }),
- /***/ "./src/client/js/util/PreProcessor/XssFilter.js":
- /*!******************************************************!*\
- !*** ./src/client/js/util/PreProcessor/XssFilter.js ***!
- \******************************************************/
- /*! exports provided: default */
- /***/ (function(module, __webpack_exports__, __webpack_require__) {
- "use strict";
- eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"default\", function() { return XssFilter; });\n/* harmony import */ var _commons_service_xss__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @commons/service/xss */ \"./src/lib/service/xss/index.js\");\n/* harmony import */ var _commons_service_xss__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_commons_service_xss__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var _commons_service_xss_xssOption__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @commons/service/xss/xssOption */ \"./src/lib/service/xss/xssOption.js\");\n/* harmony import */ var _commons_service_xss_xssOption__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_commons_service_xss_xssOption__WEBPACK_IMPORTED_MODULE_1__);\n\n\nclass XssFilter {\n constructor(crowi) {\n this.crowi = crowi;\n\n if (crowi.config.isEnabledXssPrevention) {\n this.xssOption = new _commons_service_xss_xssOption__WEBPACK_IMPORTED_MODULE_1___default.a(crowi.config);\n this.xss = new _commons_service_xss__WEBPACK_IMPORTED_MODULE_0___default.a(this.xssOption);\n }\n }\n\n process(markdown) {\n if (this.crowi.config.isEnabledXssPrevention) {\n return this.xss.process(markdown);\n }\n\n return markdown;\n }\n\n}//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9zcmMvY2xpZW50L2pzL3V0aWwvUHJlUHJvY2Vzc29yL1hzc0ZpbHRlci5qcy5qcyIsInNvdXJjZXMiOlsid2VicGFjazovLy8uL3NyYy9jbGllbnQvanMvdXRpbC9QcmVQcm9jZXNzb3IvWHNzRmlsdGVyLmpzP2NhODciXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IFhzcyBmcm9tICdAY29tbW9ucy9zZXJ2aWNlL3hzcyc7XG5pbXBvcnQgWHNzT3B0aW9uIGZyb20gJ0Bjb21tb25zL3NlcnZpY2UveHNzL3hzc09wdGlvbic7XG5cbmV4cG9ydCBkZWZhdWx0IGNsYXNzIFhzc0ZpbHRlciB7XG5cbiAgY29uc3RydWN0b3IoY3Jvd2kpIHtcbiAgICB0aGlzLmNyb3dpID0gY3Jvd2k7XG5cbiAgICBpZiAoY3Jvd2kuY29uZmlnLmlzRW5hYmxlZFhzc1ByZXZlbnRpb24pIHtcbiAgICAgIHRoaXMueHNzT3B0aW9uID0gbmV3IFhzc09wdGlvbihjcm93aS5jb25maWcpO1xuICAgICAgdGhpcy54c3MgPSBuZXcgWHNzKHRoaXMueHNzT3B0aW9uKTtcbiAgICB9XG4gIH1cblxuICBwcm9jZXNzKG1hcmtkb3duKSB7XG4gICAgaWYgKHRoaXMuY3Jvd2kuY29uZmlnLmlzRW5hYmxlZFhzc1ByZXZlbnRpb24pIHtcbiAgICAgIHJldHVybiB0aGlzLnhzcy5wcm9jZXNzKG1hcmtkb3duKTtcbiAgICB9XG5cbiAgICByZXR1cm4gbWFya2Rvd247XG4gIH1cblxufVxuIl0sIm1hcHBpbmdzIjoiQUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUNBO0FBRUE7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBbEJBIiwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./src/client/js/util/PreProcessor/XssFilter.js\n");
- /***/ }),
- /***/ "./src/client/js/util/apiNotification.js":
- /*!***********************************************!*\
- !*** ./src/client/js/util/apiNotification.js ***!
- \***********************************************/
- /*! exports provided: toastError, toastSuccess, toastWarning */
- /***/ (function(module, __webpack_exports__, __webpack_require__) {
- "use strict";
- eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"toastError\", function() { return toastError; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"toastSuccess\", function() { return toastSuccess; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"toastWarning\", function() { return toastWarning; });\n/* harmony import */ var toastr__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! toastr */ \"./node_modules/toastr/toastr.js\");\n/* harmony import */ var toastr__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(toastr__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var _lib_util_toArrayIfNot__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../../lib/util/toArrayIfNot */ \"./src/lib/util/toArrayIfNot.js\");\n/* harmony import */ var _lib_util_toArrayIfNot__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_lib_util_toArrayIfNot__WEBPACK_IMPORTED_MODULE_1__);\n// show API error/sucess toastr\n\n\nconst toastrOption = {\n error: {\n closeButton: true,\n progressBar: true,\n newestOnTop: false,\n showDuration: '100',\n hideDuration: '100',\n timeOut: '0'\n },\n success: {\n closeButton: true,\n progressBar: true,\n newestOnTop: false,\n showDuration: '100',\n hideDuration: '100',\n timeOut: '3000'\n },\n warning: {\n closeButton: true,\n progressBar: true,\n newestOnTop: false,\n showDuration: '100',\n hideDuration: '100',\n timeOut: '6000'\n }\n}; // accepts both a single error and an array of errors\n\nconst toastError = (err, header = 'Error', option = toastrOption.error) => {\n const errs = _lib_util_toArrayIfNot__WEBPACK_IMPORTED_MODULE_1___default()(err);\n\n for (const err of errs) {\n toastr__WEBPACK_IMPORTED_MODULE_0__[\"error\"](err.message, header, option);\n }\n}; // only accepts a single item\n\nconst toastSuccess = (body, header = 'Success', option = toastrOption.success) => {\n toastr__WEBPACK_IMPORTED_MODULE_0__[\"success\"](body, header, option);\n};\nconst toastWarning = (body, header = 'Warning', option = toastrOption.warning) => {\n toastr__WEBPACK_IMPORTED_MODULE_0__[\"warning\"](body, header, option);\n};//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9zcmMvY2xpZW50L2pzL3V0aWwvYXBpTm90aWZpY2F0aW9uLmpzLmpzIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vLy4vc3JjL2NsaWVudC9qcy91dGlsL2FwaU5vdGlmaWNhdGlvbi5qcz82ZTFiIl0sInNvdXJjZXNDb250ZW50IjpbIi8vIHNob3cgQVBJIGVycm9yL3N1Y2VzcyB0b2FzdHJcblxuaW1wb3J0ICogYXMgdG9hc3RyIGZyb20gJ3RvYXN0cic7XG5pbXBvcnQgdG9BcnJheUlmTm90IGZyb20gJy4uLy4uLy4uL2xpYi91dGlsL3RvQXJyYXlJZk5vdCc7XG5cbmNvbnN0IHRvYXN0ck9wdGlvbiA9IHtcbiAgZXJyb3I6IHtcbiAgICBjbG9zZUJ1dHRvbjogdHJ1ZSxcbiAgICBwcm9ncmVzc0JhcjogdHJ1ZSxcbiAgICBuZXdlc3RPblRvcDogZmFsc2UsXG4gICAgc2hvd0R1cmF0aW9uOiAnMTAwJyxcbiAgICBoaWRlRHVyYXRpb246ICcxMDAnLFxuICAgIHRpbWVPdXQ6ICcwJyxcbiAgfSxcbiAgc3VjY2Vzczoge1xuICAgIGNsb3NlQnV0dG9uOiB0cnVlLFxuICAgIHByb2dyZXNzQmFyOiB0cnVlLFxuICAgIG5ld2VzdE9uVG9wOiBmYWxzZSxcbiAgICBzaG93RHVyYXRpb246ICcxMDAnLFxuICAgIGhpZGVEdXJhdGlvbjogJzEwMCcsXG4gICAgdGltZU91dDogJzMwMDAnLFxuICB9LFxuICB3YXJuaW5nOiB7XG4gICAgY2xvc2VCdXR0b246IHRydWUsXG4gICAgcHJvZ3Jlc3NCYXI6IHRydWUsXG4gICAgbmV3ZXN0T25Ub3A6IGZhbHNlLFxuICAgIHNob3dEdXJhdGlvbjogJzEwMCcsXG4gICAgaGlkZUR1cmF0aW9uOiAnMTAwJyxcbiAgICB0aW1lT3V0OiAnNjAwMCcsXG4gIH0sXG59O1xuXG4vLyBhY2NlcHRzIGJvdGggYSBzaW5nbGUgZXJyb3IgYW5kIGFuIGFycmF5IG9mIGVycm9yc1xuZXhwb3J0IGNvbnN0IHRvYXN0RXJyb3IgPSAoZXJyLCBoZWFkZXIgPSAnRXJyb3InLCBvcHRpb24gPSB0b2FzdHJPcHRpb24uZXJyb3IpID0+IHtcbiAgY29uc3QgZXJycyA9IHRvQXJyYXlJZk5vdChlcnIpO1xuXG4gIGZvciAoY29uc3QgZXJyIG9mIGVycnMpIHtcbiAgICB0b2FzdHIuZXJyb3IoZXJyLm1lc3NhZ2UsIGhlYWRlciwgb3B0aW9uKTtcbiAgfVxufTtcblxuLy8gb25seSBhY2NlcHRzIGEgc2luZ2xlIGl0ZW1cbmV4cG9ydCBjb25zdCB0b2FzdFN1Y2Nlc3MgPSAoYm9keSwgaGVhZGVyID0gJ1N1Y2Nlc3MnLCBvcHRpb24gPSB0b2FzdHJPcHRpb24uc3VjY2VzcykgPT4ge1xuICB0b2FzdHIuc3VjY2Vzcyhib2R5LCBoZWFkZXIsIG9wdGlvbik7XG59O1xuXG5leHBvcnQgY29uc3QgdG9hc3RXYXJuaW5nID0gKGJvZHksIGhlYWRlciA9ICdXYXJuaW5nJywgb3B0aW9uID0gdG9hc3RyT3B0aW9uLndhcm5pbmcpID0+IHtcbiAgdG9hc3RyLndhcm5pbmcoYm9keSwgaGVhZGVyLCBvcHRpb24pO1xufTtcbiJdLCJtYXBwaW5ncyI6IkFBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBRUE7QUFDQTtBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFOQTtBQVFBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBTkE7QUFRQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQU5BO0FBakJBO0FBQ0E7QUEyQkE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUVBO0FBQ0E7QUFDQTtBQUVBO0FBQ0E7QUFDQSIsInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./src/client/js/util/apiNotification.js\n");
- /***/ }),
- /***/ "./src/client/js/util/apiv1ErrorHandler.js":
- /*!*************************************************!*\
- !*** ./src/client/js/util/apiv1ErrorHandler.js ***!
- \*************************************************/
- /*! no static exports found */
- /***/ (function(module, exports) {
- eval("class Apiv1ErrorHandler extends Error {\n constructor(message = '', code = '') {\n super();\n this.message = message;\n this.code = code;\n }\n\n}\n\nmodule.exports = Apiv1ErrorHandler;//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9zcmMvY2xpZW50L2pzL3V0aWwvYXBpdjFFcnJvckhhbmRsZXIuanMuanMiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9zcmMvY2xpZW50L2pzL3V0aWwvYXBpdjFFcnJvckhhbmRsZXIuanM/NjdhYyJdLCJzb3VyY2VzQ29udGVudCI6WyJjbGFzcyBBcGl2MUVycm9ySGFuZGxlciBleHRlbmRzIEVycm9yIHtcblxuICBjb25zdHJ1Y3RvcihtZXNzYWdlID0gJycsIGNvZGUgPSAnJykge1xuICAgIHN1cGVyKCk7XG5cbiAgICB0aGlzLm1lc3NhZ2UgPSBtZXNzYWdlO1xuICAgIHRoaXMuY29kZSA9IGNvZGU7XG4gIH1cblxufVxuXG5tb2R1bGUuZXhwb3J0cyA9IEFwaXYxRXJyb3JIYW5kbGVyO1xuIl0sIm1hcHBpbmdzIjoiQUFBQTtBQUVBO0FBQ0E7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQVJBO0FBQ0E7QUFVQSIsInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./src/client/js/util/apiv1ErrorHandler.js\n");
- /***/ }),
- /***/ "./src/client/js/util/apiv3ErrorHandler.js":
- /*!*************************************************!*\
- !*** ./src/client/js/util/apiv3ErrorHandler.js ***!
- \*************************************************/
- /*! exports provided: default */
- /***/ (function(module, __webpack_exports__, __webpack_require__) {
- "use strict";
- eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _lib_util_toArrayIfNot__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../../lib/util/toArrayIfNot */ \"./src/lib/util/toArrayIfNot.js\");\n/* harmony import */ var _lib_util_toArrayIfNot__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_lib_util_toArrayIfNot__WEBPACK_IMPORTED_MODULE_0__);\n// API v3 sends an array of errors in res.data.errors.\n// API v3 errors need to extracted from an error object in order to properly handle them.\n\n\nconst logger = __webpack_require__(/*! @alias/logger */ \"./src/lib/service/logger/index.js\")('growi:apiv3');\n\nconst apiv3ErrorHandler = (_err, header = 'Error') => {\n // extract api errors from general 400 err\n const err = _err.response ? _err.response.data.errors : _err;\n const errs = _lib_util_toArrayIfNot__WEBPACK_IMPORTED_MODULE_0___default()(err);\n\n for (const err of errs) {\n logger.error(err.message);\n }\n\n return errs;\n};\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (apiv3ErrorHandler);//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9zcmMvY2xpZW50L2pzL3V0aWwvYXBpdjNFcnJvckhhbmRsZXIuanMuanMiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9zcmMvY2xpZW50L2pzL3V0aWwvYXBpdjNFcnJvckhhbmRsZXIuanM/NzM2MSJdLCJzb3VyY2VzQ29udGVudCI6WyIvLyBBUEkgdjMgc2VuZHMgYW4gYXJyYXkgb2YgZXJyb3JzIGluIHJlcy5kYXRhLmVycm9ycy5cbi8vIEFQSSB2MyBlcnJvcnMgbmVlZCB0byBleHRyYWN0ZWQgZnJvbSBhbiBlcnJvciBvYmplY3QgaW4gb3JkZXIgdG8gcHJvcGVybHkgaGFuZGxlIHRoZW0uXG5cbmltcG9ydCB0b0FycmF5SWZOb3QgZnJvbSAnLi4vLi4vLi4vbGliL3V0aWwvdG9BcnJheUlmTm90JztcblxuY29uc3QgbG9nZ2VyID0gcmVxdWlyZSgnQGFsaWFzL2xvZ2dlcicpKCdncm93aTphcGl2MycpO1xuXG5jb25zdCBhcGl2M0Vycm9ySGFuZGxlciA9IChfZXJyLCBoZWFkZXIgPSAnRXJyb3InKSA9PiB7XG4gIC8vIGV4dHJhY3QgYXBpIGVycm9ycyBmcm9tIGdlbmVyYWwgNDAwIGVyclxuICBjb25zdCBlcnIgPSBfZXJyLnJlc3BvbnNlID8gX2Vyci5yZXNwb25zZS5kYXRhLmVycm9ycyA6IF9lcnI7XG4gIGNvbnN0IGVycnMgPSB0b0FycmF5SWZOb3QoZXJyKTtcblxuICBmb3IgKGNvbnN0IGVyciBvZiBlcnJzKSB7XG4gICAgbG9nZ2VyLmVycm9yKGVyci5tZXNzYWdlKTtcbiAgfVxuXG4gIHJldHVybiBlcnJzO1xufTtcblxuZXhwb3J0IGRlZmF1bHQgYXBpdjNFcnJvckhhbmRsZXI7XG4iXSwibWFwcGluZ3MiOiJBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQ0E7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBIiwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./src/client/js/util/apiv3ErrorHandler.js\n");
- /***/ }),
- /***/ "./src/client/js/util/codemirror/autorefresh.ext.js":
- /*!**********************************************************!*\
- !*** ./src/client/js/util/codemirror/autorefresh.ext.js ***!
- \**********************************************************/
- /*! no static exports found */
- /***/ (function(module, exports, __webpack_require__) {
- eval("/**\n * extends codemirror/addon/display/autorefresh\n *\n * @author Yuki Takei <yuki@weseek.co.jp>\n * @see https://codemirror.net/addon/display/autorefresh.js\n * @see https://github.com/scniro/react-codemirror2/issues/83#issuecomment-398825212\n */\n\n/* eslint-disable */\n// CodeMirror, copyright (c) by Marijn Haverbeke and others\n// Distributed under an MIT license: http://codemirror.net/LICENSE\n(function (mod) {\n mod(__webpack_require__(/*! codemirror */ \"./node_modules/codemirror/lib/codemirror.js\"));\n})(function (CodeMirror) {\n \"use strict\";\n\n CodeMirror.defineOption(\"autoRefresh\", false, function (cm, val) {\n if (cm.state.autoRefresh) {\n stopListening(cm, cm.state.autoRefresh);\n cm.state.autoRefresh = null;\n }\n\n if (val && (val.force || cm.display.wrapper.offsetHeight == 0)) startListening(cm, cm.state.autoRefresh = {\n delay: val.delay || 250\n });\n });\n\n function startListening(cm, state) {\n function check() {\n if (cm.display.wrapper.offsetHeight) {\n stopListening(cm, state);\n if (cm.display.lastWrapHeight != cm.display.wrapper.clientHeight) cm.refresh();\n } else {\n state.timeout = setTimeout(check, state.delay);\n }\n }\n\n state.timeout = setTimeout(check, state.delay);\n\n state.hurry = function () {\n clearTimeout(state.timeout);\n state.timeout = setTimeout(check, 50);\n };\n\n CodeMirror.on(window, \"mouseup\", state.hurry);\n CodeMirror.on(window, \"keyup\", state.hurry);\n }\n\n function stopListening(_cm, state) {\n clearTimeout(state.timeout);\n CodeMirror.off(window, \"mouseup\", state.hurry);\n CodeMirror.off(window, \"keyup\", state.hurry);\n }\n});//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9zcmMvY2xpZW50L2pzL3V0aWwvY29kZW1pcnJvci9hdXRvcmVmcmVzaC5leHQuanMuanMiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9zcmMvY2xpZW50L2pzL3V0aWwvY29kZW1pcnJvci9hdXRvcmVmcmVzaC5leHQuanM/ZmEyMiJdLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIGV4dGVuZHMgY29kZW1pcnJvci9hZGRvbi9kaXNwbGF5L2F1dG9yZWZyZXNoXG4gKlxuICogQGF1dGhvciBZdWtpIFRha2VpIDx5dWtpQHdlc2Vlay5jby5qcD5cbiAqIEBzZWUgaHR0cHM6Ly9jb2RlbWlycm9yLm5ldC9hZGRvbi9kaXNwbGF5L2F1dG9yZWZyZXNoLmpzXG4gKiBAc2VlIGh0dHBzOi8vZ2l0aHViLmNvbS9zY25pcm8vcmVhY3QtY29kZW1pcnJvcjIvaXNzdWVzLzgzI2lzc3VlY29tbWVudC0zOTg4MjUyMTJcbiAqL1xuLyogZXNsaW50LWRpc2FibGUgKi9cblxuLy8gQ29kZU1pcnJvciwgY29weXJpZ2h0IChjKSBieSBNYXJpam4gSGF2ZXJiZWtlIGFuZCBvdGhlcnNcbi8vIERpc3RyaWJ1dGVkIHVuZGVyIGFuIE1JVCBsaWNlbnNlOiBodHRwOi8vY29kZW1pcnJvci5uZXQvTElDRU5TRVxuXG4oZnVuY3Rpb24obW9kKSB7XG4gIG1vZChyZXF1aXJlKFwiY29kZW1pcnJvclwiKSk7XG59KShmdW5jdGlvbihDb2RlTWlycm9yKSB7XG4gIFwidXNlIHN0cmljdFwiXG5cbiAgQ29kZU1pcnJvci5kZWZpbmVPcHRpb24oXCJhdXRvUmVmcmVzaFwiLCBmYWxzZSwgZnVuY3Rpb24oY20sIHZhbCkge1xuICAgIGlmIChjbS5zdGF0ZS5hdXRvUmVmcmVzaCkge1xuICAgICAgc3RvcExpc3RlbmluZyhjbSwgY20uc3RhdGUuYXV0b1JlZnJlc2gpXG4gICAgICBjbS5zdGF0ZS5hdXRvUmVmcmVzaCA9IG51bGxcbiAgICB9XG4gICAgaWYgKHZhbCAmJiAodmFsLmZvcmNlIHx8IGNtLmRpc3BsYXkud3JhcHBlci5vZmZzZXRIZWlnaHQgPT0gMCkpXG4gICAgICBzdGFydExpc3RlbmluZyhjbSwgY20uc3RhdGUuYXV0b1JlZnJlc2ggPSB7ZGVsYXk6IHZhbC5kZWxheSB8fCAyNTB9KVxuICB9KVxuXG4gIGZ1bmN0aW9uIHN0YXJ0TGlzdGVuaW5nKGNtLCBzdGF0ZSkge1xuICAgIGZ1bmN0aW9uIGNoZWNrKCkge1xuICAgICAgaWYgKGNtLmRpc3BsYXkud3JhcHBlci5vZmZzZXRIZWlnaHQpIHtcbiAgICAgICAgc3RvcExpc3RlbmluZyhjbSwgc3RhdGUpXG4gICAgICAgIGlmIChjbS5kaXNwbGF5Lmxhc3RXcmFwSGVpZ2h0ICE9IGNtLmRpc3BsYXkud3JhcHBlci5jbGllbnRIZWlnaHQpXG4gICAgICAgICAgY20ucmVmcmVzaCgpXG4gICAgICB9IGVsc2Uge1xuICAgICAgICBzdGF0ZS50aW1lb3V0ID0gc2V0VGltZW91dChjaGVjaywgc3RhdGUuZGVsYXkpXG4gICAgICB9XG4gICAgfVxuICAgIHN0YXRlLnRpbWVvdXQgPSBzZXRUaW1lb3V0KGNoZWNrLCBzdGF0ZS5kZWxheSlcbiAgICBzdGF0ZS5odXJyeSA9IGZ1bmN0aW9uKCkge1xuICAgICAgY2xlYXJUaW1lb3V0KHN0YXRlLnRpbWVvdXQpXG4gICAgICBzdGF0ZS50aW1lb3V0ID0gc2V0VGltZW91dChjaGVjaywgNTApXG4gICAgfVxuICAgIENvZGVNaXJyb3Iub24od2luZG93LCBcIm1vdXNldXBcIiwgc3RhdGUuaHVycnkpXG4gICAgQ29kZU1pcnJvci5vbih3aW5kb3csIFwia2V5dXBcIiwgc3RhdGUuaHVycnkpXG4gIH1cblxuICBmdW5jdGlvbiBzdG9wTGlzdGVuaW5nKF9jbSwgc3RhdGUpIHtcbiAgICBjbGVhclRpbWVvdXQoc3RhdGUudGltZW91dClcbiAgICBDb2RlTWlycm9yLm9mZih3aW5kb3csIFwibW91c2V1cFwiLCBzdGF0ZS5odXJyeSlcbiAgICBDb2RlTWlycm9yLm9mZih3aW5kb3csIFwia2V5dXBcIiwgc3RhdGUuaHVycnkpXG4gIH1cbn0pO1xuIl0sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7Ozs7QUFPQTtBQUVBO0FBQ0E7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQUE7QUFDQTtBQUFBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQUE7QUFDQTtBQUFBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFBQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSIsInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./src/client/js/util/codemirror/autorefresh.ext.js\n");
- /***/ }),
- /***/ "./src/client/js/util/color-scheme.js":
- /*!********************************************!*\
- !*** ./src/client/js/util/color-scheme.js ***!
- \********************************************/
- /*! exports provided: mediaQueryListForDarkMode, isUserPreferenceExists, isPreferedDarkModeByUser, isDarkMode, applyColorScheme, removeUserPreference, updateUserPreference, updateUserPreferenceWithOsSettings */
- /***/ (function(module, __webpack_exports__, __webpack_require__) {
- "use strict";
- eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"mediaQueryListForDarkMode\", function() { return mediaQueryListForDarkMode; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"isUserPreferenceExists\", function() { return isUserPreferenceExists; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"isPreferedDarkModeByUser\", function() { return isPreferedDarkModeByUser; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"isDarkMode\", function() { return isDarkMode; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"applyColorScheme\", function() { return applyColorScheme; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"removeUserPreference\", function() { return removeUserPreference; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"updateUserPreference\", function() { return updateUserPreference; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"updateUserPreferenceWithOsSettings\", function() { return updateUserPreferenceWithOsSettings; });\nconst mediaQueryListForDarkMode = window.matchMedia('(prefers-color-scheme: dark)');\n\nfunction isUserPreferenceExists() {\n return localStorage.preferDarkModeByUser != null;\n}\n\nfunction isPreferedDarkModeByUser() {\n return localStorage.preferDarkModeByUser === 'true';\n}\n\nfunction isDarkMode() {\n if (isUserPreferenceExists()) {\n return isPreferedDarkModeByUser();\n }\n\n return mediaQueryListForDarkMode.matches;\n}\n/**\n * Apply color scheme as 'dark' attribute of <html></html>\n */\n\n\nfunction applyColorScheme() {\n let isDarkMode = mediaQueryListForDarkMode.matches;\n\n if (isUserPreferenceExists()) {\n isDarkMode = isPreferedDarkModeByUser();\n } // switch to dark mode\n\n\n if (isDarkMode) {\n document.documentElement.removeAttribute('light');\n document.documentElement.setAttribute('dark', 'true');\n } // switch to light mode\n else {\n document.documentElement.setAttribute('light', 'true');\n document.documentElement.removeAttribute('dark');\n }\n}\n/**\n * Remove color scheme preference\n */\n\n\nfunction removeUserPreference() {\n if (isUserPreferenceExists()) {\n delete localStorage.removeItem('preferDarkModeByUser');\n }\n}\n/**\n * Set color scheme preference\n * @param {boolean} isDarkMode\n */\n\n\nfunction updateUserPreference(isDarkMode) {\n // store settings to localStorage\n localStorage.preferDarkModeByUser = isDarkMode;\n}\n/**\n * Set color scheme preference with OS settings\n */\n\n\nfunction updateUserPreferenceWithOsSettings() {\n localStorage.preferDarkModeByUser = mediaQueryListForDarkMode.matches;\n}\n\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9zcmMvY2xpZW50L2pzL3V0aWwvY29sb3Itc2NoZW1lLmpzLmpzIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vLy4vc3JjL2NsaWVudC9qcy91dGlsL2NvbG9yLXNjaGVtZS5qcz8xMjdiIl0sInNvdXJjZXNDb250ZW50IjpbImNvbnN0IG1lZGlhUXVlcnlMaXN0Rm9yRGFya01vZGUgPSB3aW5kb3cubWF0Y2hNZWRpYSgnKHByZWZlcnMtY29sb3Itc2NoZW1lOiBkYXJrKScpO1xuXG5mdW5jdGlvbiBpc1VzZXJQcmVmZXJlbmNlRXhpc3RzKCkge1xuICByZXR1cm4gbG9jYWxTdG9yYWdlLnByZWZlckRhcmtNb2RlQnlVc2VyICE9IG51bGw7XG59XG5cbmZ1bmN0aW9uIGlzUHJlZmVyZWREYXJrTW9kZUJ5VXNlcigpIHtcbiAgcmV0dXJuIGxvY2FsU3RvcmFnZS5wcmVmZXJEYXJrTW9kZUJ5VXNlciA9PT0gJ3RydWUnO1xufVxuXG5mdW5jdGlvbiBpc0RhcmtNb2RlKCkge1xuICBpZiAoaXNVc2VyUHJlZmVyZW5jZUV4aXN0cygpKSB7XG4gICAgcmV0dXJuIGlzUHJlZmVyZWREYXJrTW9kZUJ5VXNlcigpO1xuICB9XG4gIHJldHVybiBtZWRpYVF1ZXJ5TGlzdEZvckRhcmtNb2RlLm1hdGNoZXM7XG59XG5cbi8qKlxuICogQXBwbHkgY29sb3Igc2NoZW1lIGFzICdkYXJrJyBhdHRyaWJ1dGUgb2YgPGh0bWw+PC9odG1sPlxuICovXG5mdW5jdGlvbiBhcHBseUNvbG9yU2NoZW1lKCkge1xuICBsZXQgaXNEYXJrTW9kZSA9IG1lZGlhUXVlcnlMaXN0Rm9yRGFya01vZGUubWF0Y2hlcztcbiAgaWYgKGlzVXNlclByZWZlcmVuY2VFeGlzdHMoKSkge1xuICAgIGlzRGFya01vZGUgPSBpc1ByZWZlcmVkRGFya01vZGVCeVVzZXIoKTtcbiAgfVxuXG4gIC8vIHN3aXRjaCB0byBkYXJrIG1vZGVcbiAgaWYgKGlzRGFya01vZGUpIHtcbiAgICBkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQucmVtb3ZlQXR0cmlidXRlKCdsaWdodCcpO1xuICAgIGRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5zZXRBdHRyaWJ1dGUoJ2RhcmsnLCAndHJ1ZScpO1xuICB9XG4gIC8vIHN3aXRjaCB0byBsaWdodCBtb2RlXG4gIGVsc2Uge1xuICAgIGRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5zZXRBdHRyaWJ1dGUoJ2xpZ2h0JywgJ3RydWUnKTtcbiAgICBkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQucmVtb3ZlQXR0cmlidXRlKCdkYXJrJyk7XG4gIH1cbn1cblxuLyoqXG4gKiBSZW1vdmUgY29sb3Igc2NoZW1lIHByZWZlcmVuY2VcbiAqL1xuZnVuY3Rpb24gcmVtb3ZlVXNlclByZWZlcmVuY2UoKSB7XG4gIGlmIChpc1VzZXJQcmVmZXJlbmNlRXhpc3RzKCkpIHtcbiAgICBkZWxldGUgbG9jYWxTdG9yYWdlLnJlbW92ZUl0ZW0oJ3ByZWZlckRhcmtNb2RlQnlVc2VyJyk7XG4gIH1cbn1cblxuLyoqXG4gKiBTZXQgY29sb3Igc2NoZW1lIHByZWZlcmVuY2VcbiAqIEBwYXJhbSB7Ym9vbGVhbn0gaXNEYXJrTW9kZVxuICovXG5mdW5jdGlvbiB1cGRhdGVVc2VyUHJlZmVyZW5jZShpc0RhcmtNb2RlKSB7XG4gIC8vIHN0b3JlIHNldHRpbmdzIHRvIGxvY2FsU3RvcmFnZVxuICBsb2NhbFN0b3JhZ2UucHJlZmVyRGFya01vZGVCeVVzZXIgPSBpc0RhcmtNb2RlO1xufVxuXG4vKipcbiAqIFNldCBjb2xvciBzY2hlbWUgcHJlZmVyZW5jZSB3aXRoIE9TIHNldHRpbmdzXG4gKi9cbmZ1bmN0aW9uIHVwZGF0ZVVzZXJQcmVmZXJlbmNlV2l0aE9zU2V0dGluZ3MoKSB7XG4gIGxvY2FsU3RvcmFnZS5wcmVmZXJEYXJrTW9kZUJ5VXNlciA9IG1lZGlhUXVlcnlMaXN0Rm9yRGFya01vZGUubWF0Y2hlcztcbn1cblxuZXhwb3J0IHtcbiAgbWVkaWFRdWVyeUxpc3RGb3JEYXJrTW9kZSxcbiAgaXNVc2VyUHJlZmVyZW5jZUV4aXN0cyxcbiAgaXNQcmVmZXJlZERhcmtNb2RlQnlVc2VyLFxuICBpc0RhcmtNb2RlLFxuICBhcHBseUNvbG9yU2NoZW1lLFxuICByZW1vdmVVc2VyUHJlZmVyZW5jZSxcbiAgdXBkYXRlVXNlclByZWZlcmVuY2UsXG4gIHVwZGF0ZVVzZXJQcmVmZXJlbmNlV2l0aE9zU2V0dGluZ3MsXG59O1xuIl0sIm1hcHBpbmdzIjoiQUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFBQTtBQUNBO0FBRUE7Ozs7O0FBR0E7QUFDQTtBQUNBO0FBQUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBSEE7QUFNQTtBQUNBO0FBQ0E7QUFDQTtBQUVBOzs7OztBQUdBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFFQTs7Ozs7O0FBSUE7QUFDQTtBQUNBO0FBQ0E7QUFFQTs7Ozs7QUFHQTtBQUNBO0FBQ0E7QUFDQTsiLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./src/client/js/util/color-scheme.js\n");
- /***/ }),
- /***/ "./src/client/js/util/emojione/emoji_strategy_shrinked.json":
- /*!******************************************************************!*\
- !*** ./src/client/js/util/emojione/emoji_strategy_shrinked.json ***!
- \******************************************************************/
- /*! exports provided: 2049, 2122, 2139, 2194, 2195, 2196, 2197, 2198, 2199, 2328, 2600, 2601, 2604, 2611, 2614, 2615, 2618, 2622, 2623, 2626, 2638, 2648, 2649, 2650, 2651, 2652, 2653, 2660, 2663, 2665, 2666, 2668, 2693, 2694, 2697, 2699, 2702, 2705, 2708, 2709, 2712, 2714, 2716, 2721, 2728, 2733, 2734, 2744, 2747, 2753, 2754, 2755, 2757, 2764, 2795, 2796, 2797, 2934, 2935, 3030, 3297, 3299, 1f600, 1f603, 1f604, 1f601, 1f606, 1f605, 1f602, 1f923, 263a, 1f60a, 1f607, 1f609, 1f60c, 1f60d, 1f618, 1f617, 1f619, 1f61a, 1f60b, 1f61c, 1f61d, 1f61b, 1f60e, 1f60f, 1f612, 1f61e, 1f614, 1f61f, 1f615, 1f623, 1f616, 1f62b, 1f629, 1f624, 1f620, 1f621, 1f636, 1f610, 1f611, 1f62f, 1f626, 1f627, 1f62e, 1f632, 1f635, 1f633, 1f631, 1f628, 1f630, 1f622, 1f625, 1f924, 1f62d, 1f613, 1f62a, 1f634, 1f914, 1f925, 1f62c, 1f922, 1f927, 1f637, 1f608, 1f47f, 1f479, 1f47a, 1f4a9, 1f47b, 1f480, 1f47d, 1f47e, 1f916, 1f383, 1f63a, 1f638, 1f639, 1f63b, 1f63c, 1f63d, 1f640, 1f63f, 1f63e, 1f450, 1f64c, 1f44f, 1f64f, 1f91d, 1f44d, 1f44e, 1f44a, 270a, 270c, 1f918, 1f44c, 1f448, 1f449, 1f446, 1f447, 261d, 270b, 1f91a, 1f44b, 1f4aa, 1f595, 270d, 1f933, 1f485, 1f48d, 1f484, 1f48b, 1f444, 1f445, 1f442, 1f443, 1f463, 1f441, 1f440, 1f5e3, 1f464, 1f465, 1f476, 1f466, 1f467, 1f468, 1f469, 1f474, 1f475, 1f477, 1f575, 1f469-2695, 1f468-2695, 1f469-1f33e, 1f468-1f33e, 1f469-1f373, 1f468-1f373, 1f469-1f393, 1f468-1f393, 1f469-1f3a4, 1f468-1f3a4, 1f469-1f3eb, 1f468-1f3eb, 1f469-1f3ed, 1f468-1f3ed, 1f469-1f4bb, 1f468-1f4bb, 1f469-1f4bc, 1f468-1f4bc, 1f469-1f527, 1f468-1f527, 1f469-1f52c, 1f468-1f52c, 1f469-1f3a8, 1f468-1f3a8, 1f469-1f692, 1f468-1f692, 1f469-2708, 1f468-2708, 1f469-1f680, 1f468-1f680, 1f469-2696, 1f468-2696, 1f936, 1f385, 1f478, 1f934, 1f470, 1f935, 1f47c, 1f930, 1f926-2640, 1f926-2642, 1f937-2640, 1f937-2642, 1f64d, 1f483, 1f57a, 1f46b, 1f46d, 1f46c, 1f491, 1f46a, 1f469-1f466, 1f469-1f467, 1f469-1f467-1f466, 1f469-1f466-1f466, 1f469-1f467-1f467, 1f468-1f466, 1f468-1f467, 1f468-1f467-1f466, 1f468-1f466-1f466, 1f468-1f467-1f467, 1f45a, 1f455, 1f456, 1f454, 1f457, 1f459, 1f458, 1f460, 1f461, 1f462, 1f45e, 1f45f, 1f452, 1f3a9, 1f393, 1f451, 1f392, 1f45d, 1f45b, 1f45c, 1f4bc, 1f453, 1f576, 1f302, 1f436, 1f431, 1f42d, 1f439, 1f430, 1f43b, 1f43c, 1f428, 1f42f, 1f42e, 1f437, 1f43d, 1f438, 1f435, 1f648, 1f649, 1f64a, 1f412, 1f414, 1f427, 1f426, 1f424, 1f423, 1f425, 1f986, 1f985, 1f989, 1f987, 1f43a, 1f417, 1f434, 1f984, 1f41d, 1f41b, 1f98b, 1f40c, 1f41a, 1f41e, 1f41c, 1f577, 1f578, 1f422, 1f40d, 1f98e, 1f982, 1f980, 1f991, 1f419, 1f990, 1f420, 1f41f, 1f421, 1f42c, 1f988, 1f433, 1f40b, 1f40a, 1f406, 1f405, 1f403, 1f402, 1f404, 1f98c, 1f42a, 1f42b, 1f418, 1f98d, 1f40e, 1f416, 1f410, 1f40f, 1f411, 1f415, 1f429, 1f408, 1f413, 1f983, 1f54a, 1f407, 1f401, 1f400, 1f43f, 1f43e, 1f409, 1f432, 1f335, 1f384, 1f332, 1f333, 1f334, 1f331, 1f33f, 1f340, 1f38d, 1f38b, 1f343, 1f342, 1f341, 1f344, 1f33e, 1f490, 1f337, 1f339, 1f33b, 1f33c, 1f338, 1f33a, 1f30e, 1f30d, 1f30f, 1f315, 1f316, 1f317, 1f318, 1f311, 1f312, 1f313, 1f314, 1f31a, 1f31d, 1f31e, 1f31b, 1f31c, 1f319, 1f4ab, 2b50, 1f31f, 26a1, 1f525, 1f4a5, 26c5, 1f308, 26c4, 1f4a8, 1f32b, 1f30a, 1f4a7, 1f4a6, 1f997, 1f34f, 1f34e, 1f350, 1f34a, 1f34b, 1f34c, 1f349, 1f347, 1f353, 1f348, 1f352, 1f351, 1f34d, 1f951, 1f345, 1f346, 1f952, 1f955, 1f33d, 1f336, 1f954, 1f360, 1f330, 1f95c, 1f36f, 1f950, 1f35e, 1f9c0, 1f95a, 1f953, 1f95e, 1f364, 1f357, 1f356, 1f355, 1f32d, 1f354, 1f35f, 1f959, 1f32e, 1f32f, 1f958, 1f35d, 1f35c, 1f372, 1f365, 1f363, 1f371, 1f35b, 1f359, 1f35a, 1f358, 1f362, 1f361, 1f367, 1f368, 1f366, 1f370, 1f382, 1f36e, 1f36d, 1f36c, 1f36b, 1f37f, 1f369, 1f36a, 1f37c, 1f375, 1f376, 1f37a, 1f37b, 1f377, 1f943, 1f378, 1f379, 1f37e, 1f944, 1f374, 26bd, 1f3c0, 1f3c8, 26be, 1f3be, 1f3d0, 1f3c9, 1f3b1, 1f3d3, 1f3f8, 1f3d1, 26f3, 1f3f9, 1f3a3, 1f94a, 1f94b, 26f8, 1f3bf, 26f7, 1f3c2, 1f93a, 1f93c-2640, 1f93c-2642, 1f938-2640, 1f938-2642, 1f93e-2640, 1f93e-2642, 1f93d-2640, 1f93d-2642, 1f3c7, 1f3bd, 1f3c6, 1f3f5, 1f397, 1f3ab, 1f39f, 1f3aa, 1f939-2640, 1f939-2642, 1f3ad, 1f3a8, 1f3ac, 1f3a4, 1f3a7, 1f3bc, 1f3b9, 1f941, 1f3b7, 1f3ba, 1f3b8, 1f3bb, 1f3b2, 1f3af, 1f3b3, 1f3ae, 1f3b0, 1f697, 1f695, 1f699, 1f68c, 1f68e, 1f693, 1f691, 1f692, 1f690, 1f69a, 1f69b, 1f69c, 1f6b2, 1f6f5, 1f3cd, 1f6a8, 1f694, 1f68d, 1f698, 1f696, 1f6a1, 1f6a0, 1f69f, 1f683, 1f68b, 1f69e, 1f69d, 1f684, 1f685, 1f688, 1f682, 1f686, 1f687, 1f68a, 1f689, 1f681, 1f680, 1f4ba, 1f6f6, 26f5, 1f6a4, 26f4, 1f6a2, 1f6a7, 26fd, 1f68f, 1f6a6, 1f6a5, 1f5ff, 1f5fd, 26f2, 1f5fc, 1f3f0, 1f3ef, 1f3df, 1f3a1, 1f3a2, 1f3a0, 26f1, 26f0, 1f3d4, 1f5fb, 1f30b, 1f3dc, 1f3d5, 26fa, 1f6e4, 1f6e3, 1f3ed, 1f3e0, 1f3e1, 1f3e2, 1f3ec, 1f3e3, 1f3e4, 1f3e5, 1f3e6, 1f3e8, 1f3ea, 1f3eb, 1f3e9, 1f492, 1f3db, 26ea, 1f54c, 1f54d, 1f54b, 26e9, 1f5fe, 1f391, 1f305, 1f304, 1f320, 1f387, 1f386, 1f307, 1f3d9, 1f303, 1f30c, 1f309, 1f301, 231a, 1f4f1, 1f4f2, 1f4bb, 1f5a8, 1f5b2, 1f579, 1f4bd, 1f4be, 1f4bf, 1f4c0, 1f4fc, 1f4f7, 1f4f9, 1f3a5, 1f4de, 260e, 1f4df, 1f4e0, 1f4fa, 1f4fb, 1f39a, 1f39b, 23f1, 23f0, 231b, 23f3, 1f4e1, 1f50b, 1f50c, 1f4a1, 1f526, 1f56f, 1f5d1, 1f4b8, 1f4b5, 1f4b4, 1f4b6, 1f4b7, 1f4b0, 1f4b3, 1f48e, 1f527, 1f528, 26cf, 1f529, 26d3, 1f52b, 1f4a3, 1f52a, 1f5e1, 1f6e1, 1f6ac, 26b0, 1f3fa, 1f52e, 1f4ff, 1f488, 1f52d, 1f52c, 1f573, 1f48a, 1f489, 1f321, 1f6bd, 1f6b0, 1f6bf, 1f6c1, 1f6c0, 1f511, 1f6aa, 1f6cf, 1f6d2, 1f381, 1f388, 1f38f, 1f380, 1f38a, 1f389, 1f38e, 1f3ee, 1f390, 1f4e9, 1f4e8, 1f4e7, 1f48c, 1f4e5, 1f4e4, 1f4e6, 1f3f7, 1f4ea, 1f4eb, 1f4ec, 1f4ed, 1f4ee, 1f4ef, 1f4dc, 1f4c3, 1f4c4, 1f4d1, 1f4ca, 1f4c8, 1f4c9, 1f4c6, 1f4c5, 1f4c7, 1f5f3, 1f5c4, 1f4cb, 1f4c1, 1f4c2, 1f4f0, 1f4d3, 1f4d4, 1f4d2, 1f4d5, 1f4d7, 1f4d8, 1f4d9, 1f4da, 1f4d6, 1f516, 1f517, 1f4ce, 1f587, 1f4d0, 1f4cf, 1f4cc, 1f4cd, 1f58c, 1f58d, 1f4dd, 270f, 1f50d, 1f50e, 1f50f, 1f510, 1f512, 1f513, 1f49b, 1f49a, 1f499, 1f49c, 1f5a4, 1f494, 1f495, 1f49e, 1f493, 1f497, 1f496, 1f498, 1f49d, 1f49f, 262a, 1f52f, 1f54e, 262f, 1f6d0, 26ce, 264a, 264b, 264c, 264d, 264e, 264f, 1f194, 1f251, 1f4f4, 1f4f3, 1f19a, 1f4ae, 1f250, 1f235, 1f170, 1f171, 1f18e, 1f191, 1f17e, 1f198, 274c, 2b55, 26d4, 1f4db, 1f6ab, 1f4af, 1f4a2, 1f6b7, 1f6af, 1f6b3, 1f6b1, 1f51e, 1f4f5, 1f6ad, 203c, 1f505, 1f506, 303d, 26a0, 1f6b8, 1f531, 1f530, 267b, 1f4b9, 274e, 1f310, 1f4a0, 24c2, 1f300, 1f4a4, 1f3e7, 1f6be, 267f, 1f17f, 1f202, 1f6c2, 1f6c3, 1f6c4, 1f6c5, 1f6b9, 1f6ba, 1f6bc, 1f6bb, 1f6ae, 1f3a6, 1f4f6, 1f201, 1f523, 1f524, 1f521, 1f520, 1f196, 1f197, 1f199, 1f192, 1f195, 1f193, 0030-20e3, 0031-20e3, 0032-20e3, 0033-20e3, 0034-20e3, 0035-20e3, 0036-20e3, 0037-20e3, 0038-20e3, 0039-20e3, 1f51f, 1f522, 0023-20e3, 002a-20e3, 25b6, 23f8, 23f9, 23fa, 23e9, 23ea, 23eb, 23ec, 25c0, 1f53c, 1f53d, 27a1, 2b05, 2b06, 2b07, 21aa, 21a9, 1f500, 1f501, 1f502, 1f504, 1f503, 1f3b5, 1f3b6, 1f4b2, 1f4b1, 00a9, 00ae, 27b0, 27bf, 1f51a, 1f519, 1f51b, 1f51d, 1f51c, 1f518, 26aa, 26ab, 1f534, 1f53a, 1f53b, 1f538, 1f539, 1f536, 1f537, 1f533, 1f532, 25aa, 25ab, 25fe, 25fd, 25fc, 25fb, 2b1b, 2b1c, 1f508, 1f507, 1f509, 1f50a, 1f514, 1f515, 1f4e3, 1f4e2, 1f4ac, 1f4ad, 1f0cf, 1f3b4, 1f004, 1f550, 1f551, 1f552, 1f553, 1f554, 1f555, 1f556, 1f557, 1f558, 1f559, 1f55a, 1f55b, 1f55c, 1f55d, 1f55e, 1f55f, 1f560, 1f561, 1f562, 1f563, 1f564, 1f565, 1f566, 1f567, 1f3c1, 1f6a9, 1f3f3-1f308, 1f38c, 1f468-1f469-1f466, 1f469-2764-1f468, default */
- /***/ (function(module) {
- eval("module.exports = JSON.parse(\"{\\\"2049\\\":{\\\"name\\\":\\\"exclamation question mark\\\",\\\"shortname\\\":\\\":interrobang:\\\",\\\"shortname_alternates\\\":[],\\\"keywords\\\":[\\\"exclamation\\\",\\\"interrobang\\\",\\\"mark\\\",\\\"punctuation\\\",\\\"question\\\"],\\\"unicode_output\\\":\\\"2049-fe0f\\\"},\\\"2122\\\":{\\\"name\\\":\\\"trade mark\\\",\\\"shortname\\\":\\\":tm:\\\",\\\"shortname_alternates\\\":[],\\\"keywords\\\":[\\\"mark\\\",\\\"tm\\\",\\\"trademark\\\"],\\\"unicode_output\\\":\\\"2122-fe0f\\\"},\\\"2139\\\":{\\\"name\\\":\\\"information\\\",\\\"shortname\\\":\\\":information_source:\\\",\\\"shortname_alternates\\\":[],\\\"keywords\\\":[\\\"i\\\",\\\"information\\\"],\\\"unicode_output\\\":\\\"2139-fe0f\\\"},\\\"2194\\\":{\\\"name\\\":\\\"left-right arrow\\\",\\\"shortname\\\":\\\":left_right_arrow:\\\",\\\"shortname_alternates\\\":[],\\\"keywords\\\":[\\\"arrow\\\"],\\\"unicode_output\\\":\\\"2194-fe0f\\\"},\\\"2195\\\":{\\\"name\\\":\\\"up-down arrow\\\",\\\"shortname\\\":\\\":arrow_up_down:\\\",\\\"shortname_alternates\\\":[],\\\"keywords\\\":[\\\"arrow\\\"],\\\"unicode_output\\\":\\\"2195-fe0f\\\"},\\\"2196\\\":{\\\"name\\\":\\\"up-left arrow\\\",\\\"shortname\\\":\\\":arrow_upper_left:\\\",\\\"shortname_alternates\\\":[],\\\"keywords\\\":[\\\"arrow\\\",\\\"direction\\\",\\\"intercardinal\\\",\\\"northwest\\\"],\\\"unicode_output\\\":\\\"2196-fe0f\\\"},\\\"2197\\\":{\\\"name\\\":\\\"up-right arrow\\\",\\\"shortname\\\":\\\":arrow_upper_right:\\\",\\\"shortname_alternates\\\":[],\\\"keywords\\\":[\\\"arrow\\\",\\\"direction\\\",\\\"intercardinal\\\",\\\"northeast\\\"],\\\"unicode_output\\\":\\\"2197-fe0f\\\"},\\\"2198\\\":{\\\"name\\\":\\\"down-right arrow\\\",\\\"shortname\\\":\\\":arrow_lower_right:\\\",\\\"shortname_alternates\\\":[],\\\"keywords\\\":[\\\"arrow\\\",\\\"direction\\\",\\\"intercardinal\\\",\\\"southeast\\\"],\\\"unicode_output\\\":\\\"2198-fe0f\\\"},\\\"2199\\\":{\\\"name\\\":\\\"down-left arrow\\\",\\\"shortname\\\":\\\":arrow_lower_left:\\\",\\\"shortname_alternates\\\":[],\\\"keywords\\\":[\\\"arrow\\\",\\\"direction\\\",\\\"intercardinal\\\",\\\"southwest\\\"],\\\"unicode_output\\\":\\\"2199-fe0f\\\"},\\\"2328\\\":{\\\"name\\\":\\\"keyboard\\\",\\\"shortname\\\":\\\":keyboard:\\\",\\\"shortname_alternates\\\":[],\\\"keywords\\\":[\\\"computer\\\"],\\\"unicode_output\\\":\\\"2328-fe0f\\\"},\\\"2600\\\":{\\\"name\\\":\\\"sun\\\",\\\"shortname\\\":\\\":sunny:\\\",\\\"shortname_alternates\\\":[],\\\"keywords\\\":[\\\"bright\\\",\\\"rays\\\",\\\"sunny\\\"],\\\"unicode_output\\\":\\\"2600-fe0f\\\"},\\\"2601\\\":{\\\"name\\\":\\\"cloud\\\",\\\"shortname\\\":\\\":cloud:\\\",\\\"shortname_alternates\\\":[],\\\"keywords\\\":[\\\"weather\\\"],\\\"unicode_output\\\":\\\"2601-fe0f\\\"},\\\"2604\\\":{\\\"name\\\":\\\"comet\\\",\\\"shortname\\\":\\\":comet:\\\",\\\"shortname_alternates\\\":[],\\\"keywords\\\":[\\\"space\\\"],\\\"unicode_output\\\":\\\"2604-fe0f\\\"},\\\"2611\\\":{\\\"name\\\":\\\"ballot box with check\\\",\\\"shortname\\\":\\\":ballot_box_with_check:\\\",\\\"shortname_alternates\\\":[],\\\"keywords\\\":[\\\"ballot\\\",\\\"box\\\",\\\"check\\\"],\\\"unicode_output\\\":\\\"2611-fe0f\\\"},\\\"2614\\\":{\\\"name\\\":\\\"umbrella with rain drops\\\",\\\"shortname\\\":\\\":umbrella:\\\",\\\"shortname_alternates\\\":[],\\\"keywords\\\":[\\\"clothing\\\",\\\"drop\\\",\\\"rain\\\",\\\"umbrella\\\"],\\\"unicode_output\\\":\\\"2614\\\"},\\\"2615\\\":{\\\"name\\\":\\\"hot beverage\\\",\\\"shortname\\\":\\\":coffee:\\\",\\\"shortname_alternates\\\":[],\\\"keywords\\\":[\\\"beverage\\\",\\\"coffee\\\",\\\"drink\\\",\\\"hot\\\",\\\"steaming\\\",\\\"tea\\\"],\\\"unicode_output\\\":\\\"2615\\\"},\\\"2618\\\":{\\\"name\\\":\\\"shamrock\\\",\\\"shortname\\\":\\\":shamrock:\\\",\\\"shortname_alternates\\\":[],\\\"keywords\\\":[\\\"plant\\\"],\\\"unicode_output\\\":\\\"2618-fe0f\\\"},\\\"2622\\\":{\\\"name\\\":\\\"radioactive\\\",\\\"shortname\\\":\\\":radioactive:\\\",\\\"shortname_alternates\\\":[\\\":radioactive_sign:\\\"],\\\"keywords\\\":[\\\"radioactive\\\",\\\"sign\\\"],\\\"unicode_output\\\":\\\"2622-fe0f\\\"},\\\"2623\\\":{\\\"name\\\":\\\"biohazard\\\",\\\"shortname\\\":\\\":biohazard:\\\",\\\"shortname_alternates\\\":[\\\":biohazard_sign:\\\"],\\\"keywords\\\":[\\\"biohazard\\\",\\\"sign\\\"],\\\"unicode_output\\\":\\\"2623-fe0f\\\"},\\\"2626\\\":{\\\"name\\\":\\\"orthodox cross\\\",\\\"shortname\\\":\\\":orthodox_cross:\\\",\\\"shortname_alternates\\\":[],\\\"keywords\\\":[\\\"Christian\\\",\\\"cross\\\",\\\"religion\\\"],\\\"unicode_output\\\":\\\"2626-fe0f\\\"},\\\"2638\\\":{\\\"name\\\":\\\"wheel of dharma\\\",\\\"shortname\\\":\\\":wheel_of_dharma:\\\",\\\"shortname_alternates\\\":[],\\\"keywords\\\":[\\\"Buddhist\\\",\\\"dharma\\\",\\\"religion\\\",\\\"wheel\\\"],\\\"unicode_output\\\":\\\"2638-fe0f\\\"},\\\"2648\\\":{\\\"name\\\":\\\"Aries\\\",\\\"shortname\\\":\\\":aries:\\\",\\\"shortname_alternates\\\":[],\\\"keywords\\\":[\\\"ram\\\",\\\"zodiac\\\"],\\\"unicode_output\\\":\\\"2648\\\"},\\\"2649\\\":{\\\"name\\\":\\\"Taurus\\\",\\\"shortname\\\":\\\":taurus:\\\",\\\"shortname_alternates\\\":[],\\\"keywords\\\":[\\\"bull\\\",\\\"ox\\\",\\\"zodiac\\\"],\\\"unicode_output\\\":\\\"2649\\\"},\\\"2650\\\":{\\\"name\\\":\\\"Sagittarius\\\",\\\"shortname\\\":\\\":sagittarius:\\\",\\\"shortname_alternates\\\":[],\\\"keywords\\\":[\\\"archer\\\",\\\"zodiac\\\"],\\\"unicode_output\\\":\\\"2650\\\"},\\\"2651\\\":{\\\"name\\\":\\\"Capricorn\\\",\\\"shortname\\\":\\\":capricorn:\\\",\\\"shortname_alternates\\\":[],\\\"keywords\\\":[\\\"goat\\\",\\\"zodiac\\\"],\\\"unicode_output\\\":\\\"2651\\\"},\\\"2652\\\":{\\\"name\\\":\\\"Aquarius\\\",\\\"shortname\\\":\\\":aquarius:\\\",\\\"shortname_alternates\\\":[],\\\"keywords\\\":[\\\"bearer\\\",\\\"water\\\",\\\"zodiac\\\"],\\\"unicode_output\\\":\\\"2652\\\"},\\\"2653\\\":{\\\"name\\\":\\\"Pisces\\\",\\\"shortname\\\":\\\":pisces:\\\",\\\"shortname_alternates\\\":[],\\\"keywords\\\":[\\\"fish\\\",\\\"zodiac\\\"],\\\"unicode_output\\\":\\\"2653\\\"},\\\"2660\\\":{\\\"name\\\":\\\"spade suit\\\",\\\"shortname\\\":\\\":spades:\\\",\\\"shortname_alternates\\\":[],\\\"keywords\\\":[\\\"card\\\",\\\"game\\\"],\\\"unicode_output\\\":\\\"2660-fe0f\\\"},\\\"2663\\\":{\\\"name\\\":\\\"club suit\\\",\\\"shortname\\\":\\\":clubs:\\\",\\\"shortname_alternates\\\":[],\\\"keywords\\\":[\\\"card\\\",\\\"game\\\"],\\\"unicode_output\\\":\\\"2663-fe0f\\\"},\\\"2665\\\":{\\\"name\\\":\\\"heart suit\\\",\\\"shortname\\\":\\\":hearts:\\\",\\\"shortname_alternates\\\":[],\\\"keywords\\\":[\\\"card\\\",\\\"game\\\"],\\\"unicode_output\\\":\\\"2665-fe0f\\\"},\\\"2666\\\":{\\\"name\\\":\\\"diamond suit\\\",\\\"shortname\\\":\\\":diamonds:\\\",\\\"shortname_alternates\\\":[],\\\"keywords\\\":[\\\"card\\\",\\\"game\\\"],\\\"unicode_output\\\":\\\"2666-fe0f\\\"},\\\"2668\\\":{\\\"name\\\":\\\"hot springs\\\",\\\"shortname\\\":\\\":hotsprings:\\\",\\\"shortname_alternates\\\":[],\\\"keywords\\\":[\\\"hot\\\",\\\"hotsprings\\\",\\\"springs\\\",\\\"steaming\\\"],\\\"unicode_output\\\":\\\"2668-fe0f\\\"},\\\"2693\\\":{\\\"name\\\":\\\"anchor\\\",\\\"shortname\\\":\\\":anchor:\\\",\\\"shortname_alternates\\\":[],\\\"keywords\\\":[\\\"ship\\\",\\\"tool\\\"],\\\"unicode_output\\\":\\\"2693\\\"},\\\"2694\\\":{\\\"name\\\":\\\"crossed swords\\\",\\\"shortname\\\":\\\":crossed_swords:\\\",\\\"shortname_alternates\\\":[],\\\"keywords\\\":[\\\"crossed\\\",\\\"swords\\\",\\\"weapon\\\"],\\\"unicode_output\\\":\\\"2694-fe0f\\\"},\\\"2697\\\":{\\\"name\\\":\\\"alembic\\\",\\\"shortname\\\":\\\":alembic:\\\",\\\"shortname_alternates\\\":[],\\\"keywords\\\":[\\\"chemistry\\\",\\\"tool\\\"],\\\"unicode_output\\\":\\\"2697-fe0f\\\"},\\\"2699\\\":{\\\"name\\\":\\\"gear\\\",\\\"shortname\\\":\\\":gear:\\\",\\\"shortname_alternates\\\":[],\\\"keywords\\\":[\\\"tool\\\"],\\\"unicode_output\\\":\\\"2699-fe0f\\\"},\\\"2702\\\":{\\\"name\\\":\\\"scissors\\\",\\\"shortname\\\":\\\":scissors:\\\",\\\"shortname_alternates\\\":[],\\\"keywords\\\":[\\\"cutting\\\",\\\"tool\\\"],\\\"unicode_output\\\":\\\"2702-fe0f\\\"},\\\"2705\\\":{\\\"name\\\":\\\"white heavy check mark\\\",\\\"shortname\\\":\\\":white_check_mark:\\\",\\\"shortname_alternates\\\":[],\\\"keywords\\\":[\\\"check\\\",\\\"mark\\\"],\\\"unicode_output\\\":\\\"2705\\\"},\\\"2708\\\":{\\\"name\\\":\\\"airplane\\\",\\\"shortname\\\":\\\":airplane:\\\",\\\"shortname_alternates\\\":[],\\\"keywords\\\":[\\\"aeroplane\\\",\\\"airplane\\\"],\\\"unicode_output\\\":\\\"2708-fe0f\\\"},\\\"2709\\\":{\\\"name\\\":\\\"envelope\\\",\\\"shortname\\\":\\\":envelope:\\\",\\\"shortname_alternates\\\":[],\\\"keywords\\\":[\\\"email\\\",\\\"letter\\\"],\\\"unicode_output\\\":\\\"2709-fe0f\\\"},\\\"2712\\\":{\\\"name\\\":\\\"black nib\\\",\\\"shortname\\\":\\\":black_nib:\\\",\\\"shortname_alternates\\\":[],\\\"keywords\\\":[\\\"nib\\\",\\\"pen\\\"],\\\"unicode_output\\\":\\\"2712-fe0f\\\"},\\\"2714\\\":{\\\"name\\\":\\\"heavy check mark\\\",\\\"shortname\\\":\\\":heavy_check_mark:\\\",\\\"shortname_alternates\\\":[],\\\"keywords\\\":[\\\"check\\\",\\\"mark\\\"],\\\"unicode_output\\\":\\\"2714-fe0f\\\"},\\\"2716\\\":{\\\"name\\\":\\\"heavy multiplication x\\\",\\\"shortname\\\":\\\":heavy_multiplication_x:\\\",\\\"shortname_alternates\\\":[],\\\"keywords\\\":[\\\"cancel\\\",\\\"multiplication\\\",\\\"multiply\\\",\\\"x\\\"],\\\"unicode_output\\\":\\\"2716-fe0f\\\"},\\\"2721\\\":{\\\"name\\\":\\\"star of David\\\",\\\"shortname\\\":\\\":star_of_david:\\\",\\\"shortname_alternates\\\":[],\\\"keywords\\\":[\\\"David\\\",\\\"Jew\\\",\\\"Jewish\\\",\\\"religion\\\",\\\"star\\\"],\\\"unicode_output\\\":\\\"2721-fe0f\\\"},\\\"2728\\\":{\\\"name\\\":\\\"sparkles\\\",\\\"shortname\\\":\\\":sparkles:\\\",\\\"shortname_alternates\\\":[],\\\"keywords\\\":[\\\"sparkle\\\",\\\"star\\\"],\\\"unicode_output\\\":\\\"2728\\\"},\\\"2733\\\":{\\\"name\\\":\\\"eight-spoked asterisk\\\",\\\"shortname\\\":\\\":eight_spoked_asterisk:\\\",\\\"shortname_alternates\\\":[],\\\"keywords\\\":[\\\"asterisk\\\"],\\\"unicode_output\\\":\\\"2733-fe0f\\\"},\\\"2734\\\":{\\\"name\\\":\\\"eight-pointed star\\\",\\\"shortname\\\":\\\":eight_pointed_black_star:\\\",\\\"shortname_alternates\\\":[],\\\"keywords\\\":[\\\"star\\\"],\\\"unicode_output\\\":\\\"2734-fe0f\\\"},\\\"2744\\\":{\\\"name\\\":\\\"snowflake\\\",\\\"shortname\\\":\\\":snowflake:\\\",\\\"shortname_alternates\\\":[],\\\"keywords\\\":[\\\"cold\\\",\\\"snow\\\"],\\\"unicode_output\\\":\\\"2744-fe0f\\\"},\\\"2747\\\":{\\\"name\\\":\\\"sparkle\\\",\\\"shortname\\\":\\\":sparkle:\\\",\\\"shortname_alternates\\\":[],\\\"keywords\\\":[\\\"sparkle\\\"],\\\"unicode_output\\\":\\\"2747-fe0f\\\"},\\\"2753\\\":{\\\"name\\\":\\\"question mark\\\",\\\"shortname\\\":\\\":question:\\\",\\\"shortname_alternates\\\":[],\\\"keywords\\\":[\\\"mark\\\",\\\"punctuation\\\",\\\"question\\\"],\\\"unicode_output\\\":\\\"2753\\\"},\\\"2754\\\":{\\\"name\\\":\\\"white question mark\\\",\\\"shortname\\\":\\\":grey_question:\\\",\\\"shortname_alternates\\\":[],\\\"keywords\\\":[\\\"mark\\\",\\\"outlined\\\",\\\"punctuation\\\",\\\"question\\\"],\\\"unicode_output\\\":\\\"2754\\\"},\\\"2755\\\":{\\\"name\\\":\\\"white exclamation mark\\\",\\\"shortname\\\":\\\":grey_exclamation:\\\",\\\"shortname_alternates\\\":[],\\\"keywords\\\":[\\\"exclamation\\\",\\\"mark\\\",\\\"outlined\\\",\\\"punctuation\\\"],\\\"unicode_output\\\":\\\"2755\\\"},\\\"2757\\\":{\\\"name\\\":\\\"exclamation mark\\\",\\\"shortname\\\":\\\":exclamation:\\\",\\\"shortname_alternates\\\":[],\\\"keywords\\\":[\\\"exclamation\\\",\\\"mark\\\",\\\"punctuation\\\"],\\\"unicode_output\\\":\\\"2757\\\"},\\\"2764\\\":{\\\"name\\\":\\\"red heart\\\",\\\"shortname\\\":\\\":heart:\\\",\\\"shortname_alternates\\\":[],\\\"keywords\\\":[\\\"heart\\\"],\\\"unicode_output\\\":\\\"2764-fe0f\\\"},\\\"2795\\\":{\\\"name\\\":\\\"heavy plus sign\\\",\\\"shortname\\\":\\\":heavy_plus_sign:\\\",\\\"shortname_alternates\\\":[],\\\"keywords\\\":[\\\"math\\\",\\\"plus\\\"],\\\"unicode_output\\\":\\\"2795\\\"},\\\"2796\\\":{\\\"name\\\":\\\"heavy minus sign\\\",\\\"shortname\\\":\\\":heavy_minus_sign:\\\",\\\"shortname_alternates\\\":[],\\\"keywords\\\":[\\\"math\\\",\\\"minus\\\"],\\\"unicode_output\\\":\\\"2796\\\"},\\\"2797\\\":{\\\"name\\\":\\\"heavy division sign\\\",\\\"shortname\\\":\\\":heavy_division_sign:\\\",\\\"shortname_alternates\\\":[],\\\"keywords\\\":[\\\"division\\\",\\\"math\\\"],\\\"unicode_output\\\":\\\"2797\\\"},\\\"2934\\\":{\\\"name\\\":\\\"right arrow curving up\\\",\\\"shortname\\\":\\\":arrow_heading_up:\\\",\\\"shortname_alternates\\\":[],\\\"keywords\\\":[\\\"arrow\\\"],\\\"unicode_output\\\":\\\"2934-fe0f\\\"},\\\"2935\\\":{\\\"name\\\":\\\"right arrow curving down\\\",\\\"shortname\\\":\\\":arrow_heading_down:\\\",\\\"shortname_alternates\\\":[],\\\"keywords\\\":[\\\"arrow\\\",\\\"down\\\"],\\\"unicode_output\\\":\\\"2935-fe0f\\\"},\\\"3030\\\":{\\\"name\\\":\\\"wavy dash\\\",\\\"shortname\\\":\\\":wavy_dash:\\\",\\\"shortname_alternates\\\":[],\\\"keywords\\\":[\\\"dash\\\",\\\"punctuation\\\",\\\"wavy\\\"],\\\"unicode_output\\\":\\\"3030-fe0f\\\"},\\\"3297\\\":{\\\"name\\\":\\\"Japanese “congratulations” button\\\",\\\"shortname\\\":\\\":congratulations:\\\",\\\"shortname_alternates\\\":[],\\\"keywords\\\":[\\\"Japanese\\\",\\\"ideograph\\\",\\\"“congratulations”\\\",\\\"祝\\\"],\\\"unicode_output\\\":\\\"3297-fe0f\\\"},\\\"3299\\\":{\\\"name\\\":\\\"Japanese “secret” button\\\",\\\"shortname\\\":\\\":secret:\\\",\\\"shortname_alternates\\\":[],\\\"keywords\\\":[\\\"Japanese\\\",\\\"ideograph\\\",\\\"“secret”\\\",\\\"秘\\\"],\\\"unicode_output\\\":\\\"3299-fe0f\\\"},\\\"1f600\\\":{\\\"name\\\":\\\"grinning face\\\",\\\"shortname\\\":\\\":grinning:\\\",\\\"shortname_alternates\\\":[],\\\"keywords\\\":[\\\"face\\\",\\\"grin\\\"],\\\"unicode_output\\\":\\\"1f600\\\"},\\\"1f603\\\":{\\\"name\\\":\\\"smiling face with open mouth\\\",\\\"shortname\\\":\\\":smiley:\\\",\\\"shortname_alternates\\\":[],\\\"keywords\\\":[\\\"face\\\",\\\"mouth\\\",\\\"open\\\",\\\"smile\\\"],\\\"unicode_output\\\":\\\"1f603\\\"},\\\"1f604\\\":{\\\"name\\\":\\\"smiling face with open mouth & smiling eyes\\\",\\\"shortname\\\":\\\":smile:\\\",\\\"shortname_alternates\\\":[],\\\"keywords\\\":[\\\"eye\\\",\\\"face\\\",\\\"mouth\\\",\\\"open\\\",\\\"smile\\\"],\\\"unicode_output\\\":\\\"1f604\\\"},\\\"1f601\\\":{\\\"name\\\":\\\"grinning face with smiling eyes\\\",\\\"shortname\\\":\\\":grin:\\\",\\\"shortname_alternates\\\":[],\\\"keywords\\\":[\\\"eye\\\",\\\"face\\\",\\\"grin\\\",\\\"smile\\\"],\\\"unicode_output\\\":\\\"1f601\\\"},\\\"1f606\\\":{\\\"name\\\":\\\"smiling face with open mouth & closed eyes\\\",\\\"shortname\\\":\\\":laughing:\\\",\\\"shortname_alternates\\\":[\\\":satisfied:\\\"],\\\"keywords\\\":[\\\"face\\\",\\\"laugh\\\",\\\"mouth\\\",\\\"open\\\",\\\"satisfied\\\",\\\"smile\\\"],\\\"unicode_output\\\":\\\"1f606\\\"},\\\"1f605\\\":{\\\"name\\\":\\\"smiling face with open mouth & cold sweat\\\",\\\"shortname\\\":\\\":sweat_smile:\\\",\\\"shortname_alternates\\\":[],\\\"keywords\\\":[\\\"cold\\\",\\\"face\\\",\\\"open\\\",\\\"smile\\\",\\\"sweat\\\"],\\\"unicode_output\\\":\\\"1f605\\\"},\\\"1f602\\\":{\\\"name\\\":\\\"face with tears of joy\\\",\\\"shortname\\\":\\\":joy:\\\",\\\"shortname_alternates\\\":[],\\\"keywords\\\":[\\\"face\\\",\\\"joy\\\",\\\"laugh\\\",\\\"tear\\\"],\\\"unicode_output\\\":\\\"1f602\\\"},\\\"1f923\\\":{\\\"name\\\":\\\"rolling on the floor laughing\\\",\\\"shortname\\\":\\\":rofl:\\\",\\\"shortname_alternates\\\":[\\\":rolling_on_the_floor_laughing:\\\"],\\\"keywords\\\":[\\\"face\\\",\\\"floor\\\",\\\"laugh\\\",\\\"rolling\\\"],\\\"unicode_output\\\":\\\"1f923\\\"},\\\"263a\\\":{\\\"name\\\":\\\"smiling face\\\",\\\"shortname\\\":\\\":relaxed:\\\",\\\"shortname_alternates\\\":[],\\\"keywords\\\":[\\\"face\\\",\\\"outlined\\\",\\\"relaxed\\\",\\\"smile\\\"],\\\"unicode_output\\\":\\\"263a-fe0f\\\"},\\\"1f60a\\\":{\\\"name\\\":\\\"smiling face with smiling eyes\\\",\\\"shortname\\\":\\\":blush:\\\",\\\"shortname_alternates\\\":[],\\\"keywords\\\":[\\\"blush\\\",\\\"eye\\\",\\\"face\\\",\\\"smile\\\"],\\\"unicode_output\\\":\\\"1f60a\\\"},\\\"1f607\\\":{\\\"name\\\":\\\"smiling face with halo\\\",\\\"shortname\\\":\\\":innocent:\\\",\\\"shortname_alternates\\\":[],\\\"keywords\\\":[\\\"angel\\\",\\\"face\\\",\\\"fairy tale\\\",\\\"fantasy\\\",\\\"halo\\\",\\\"innocent\\\",\\\"smile\\\"],\\\"unicode_output\\\":\\\"1f607\\\"},\\\"1f609\\\":{\\\"name\\\":\\\"winking face\\\",\\\"shortname\\\":\\\":wink:\\\",\\\"shortname_alternates\\\":[],\\\"keywords\\\":[\\\"face\\\",\\\"wink\\\"],\\\"unicode_output\\\":\\\"1f609\\\"},\\\"1f60c\\\":{\\\"name\\\":\\\"relieved face\\\",\\\"shortname\\\":\\\":relieved:\\\",\\\"shortname_alternates\\\":[],\\\"keywords\\\":[\\\"face\\\",\\\"relieved\\\"],\\\"unicode_output\\\":\\\"1f60c\\\"},\\\"1f60d\\\":{\\\"name\\\":\\\"smiling face with heart-eyes\\\",\\\"shortname\\\":\\\":heart_eyes:\\\",\\\"shortname_alternates\\\":[],\\\"keywords\\\":[\\\"eye\\\",\\\"face\\\",\\\"love\\\",\\\"smile\\\"],\\\"unicode_output\\\":\\\"1f60d\\\"},\\\"1f618\\\":{\\\"name\\\":\\\"face blowing a kiss\\\",\\\"shortname\\\":\\\":kissing_heart:\\\",\\\"shortname_alternates\\\":[],\\\"keywords\\\":[\\\"face\\\",\\\"kiss\\\"],\\\"unicode_output\\\":\\\"1f618\\\"},\\\"1f617\\\":{\\\"name\\\":\\\"kissing face\\\",\\\"shortname\\\":\\\":kissing:\\\",\\\"shortname_alternates\\\":[],\\\"keywords\\\":[\\\"face\\\",\\\"kiss\\\"],\\\"unicode_output\\\":\\\"1f617\\\"},\\\"1f619\\\":{\\\"name\\\":\\\"kissing face with smiling eyes\\\",\\\"shortname\\\":\\\":kissing_smiling_eyes:\\\",\\\"shortname_alternates\\\":[],\\\"keywords\\\":[\\\"eye\\\",\\\"face\\\",\\\"kiss\\\",\\\"smile\\\"],\\\"unicode_output\\\":\\\"1f619\\\"},\\\"1f61a\\\":{\\\"name\\\":\\\"kissing face with closed eyes\\\",\\\"shortname\\\":\\\":kissing_closed_eyes:\\\",\\\"shortname_alternates\\\":[],\\\"keywords\\\":[\\\"closed\\\",\\\"eye\\\",\\\"face\\\",\\\"kiss\\\"],\\\"unicode_output\\\":\\\"1f61a\\\"},\\\"1f60b\\\":{\\\"name\\\":\\\"face savouring delicious food\\\",\\\"shortname\\\":\\\":yum:\\\",\\\"shortname_alternates\\\":[],\\\"keywords\\\":[\\\"delicious\\\",\\\"face\\\",\\\"savouring\\\",\\\"smile\\\",\\\"um\\\",\\\"yum\\\"],\\\"unicode_output\\\":\\\"1f60b\\\"},\\\"1f61c\\\":{\\\"name\\\":\\\"face with stuck-out tongue & winking eye\\\",\\\"shortname\\\":\\\":stuck_out_tongue_winking_eye:\\\",\\\"shortname_alternates\\\":[],\\\"keywords\\\":[\\\"eye\\\",\\\"face\\\",\\\"joke\\\",\\\"tongue\\\",\\\"wink\\\"],\\\"unicode_output\\\":\\\"1f61c\\\"},\\\"1f61d\\\":{\\\"name\\\":\\\"face with stuck-out tongue & closed eyes\\\",\\\"shortname\\\":\\\":stuck_out_tongue_closed_eyes:\\\",\\\"shortname_alternates\\\":[],\\\"keywords\\\":[\\\"eye\\\",\\\"face\\\",\\\"horrible\\\",\\\"taste\\\",\\\"tongue\\\"],\\\"unicode_output\\\":\\\"1f61d\\\"},\\\"1f61b\\\":{\\\"name\\\":\\\"face with stuck-out tongue\\\",\\\"shortname\\\":\\\":stuck_out_tongue:\\\",\\\"shortname_alternates\\\":[],\\\"keywords\\\":[\\\"face\\\",\\\"tongue\\\"],\\\"unicode_output\\\":\\\"1f61b\\\"},\\\"1f60e\\\":{\\\"name\\\":\\\"smiling face with sunglasses\\\",\\\"shortname\\\":\\\":sunglasses:\\\",\\\"shortname_alternates\\\":[],\\\"keywords\\\":[\\\"bright\\\",\\\"cool\\\",\\\"eye\\\",\\\"eyewear\\\",\\\"face\\\",\\\"glasses\\\",\\\"smile\\\",\\\"sun\\\",\\\"sunglasses\\\"],\\\"unicode_output\\\":\\\"1f60e\\\"},\\\"1f60f\\\":{\\\"name\\\":\\\"smirking face\\\",\\\"shortname\\\":\\\":smirk:\\\",\\\"shortname_alternates\\\":[],\\\"keywords\\\":[\\\"face\\\",\\\"smirk\\\"],\\\"unicode_output\\\":\\\"1f60f\\\"},\\\"1f612\\\":{\\\"name\\\":\\\"unamused face\\\",\\\"shortname\\\":\\\":unamused:\\\",\\\"shortname_alternates\\\":[],\\\"keywords\\\":[\\\"face\\\",\\\"unamused\\\",\\\"unhappy\\\"],\\\"unicode_output\\\":\\\"1f612\\\"},\\\"1f61e\\\":{\\\"name\\\":\\\"disappointed face\\\",\\\"shortname\\\":\\\":disappointed:\\\",\\\"shortname_alternates\\\":[],\\\"keywords\\\":[\\\"disappointed\\\",\\\"face\\\"],\\\"unicode_output\\\":\\\"1f61e\\\"},\\\"1f614\\\":{\\\"name\\\":\\\"pensive face\\\",\\\"shortname\\\":\\\":pensive:\\\",\\\"shortname_alternates\\\":[],\\\"keywords\\\":[\\\"dejected\\\",\\\"face\\\",\\\"pensive\\\"],\\\"unicode_output\\\":\\\"1f614\\\"},\\\"1f61f\\\":{\\\"name\\\":\\\"worried face\\\",\\\"shortname\\\":\\\":worried:\\\",\\\"shortname_alternates\\\":[],\\\"keywords\\\":[\\\"face\\\",\\\"worried\\\"],\\\"unicode_output\\\":\\\"1f61f\\\"},\\\"1f615\\\":{\\\"name\\\":\\\"confused face\\\",\\\"shortname\\\":\\\":confused:\\\",\\\"shortname_alternates\\\":[],\\\"keywords\\\":[\\\"confused\\\",\\\"face\\\"],\\\"unicode_output\\\":\\\"1f615\\\"},\\\"1f623\\\":{\\\"name\\\":\\\"persevering face\\\",\\\"shortname\\\":\\\":persevere:\\\",\\\"shortname_alternates\\\":[],\\\"keywords\\\":[\\\"face\\\",\\\"persevere\\\"],\\\"unicode_output\\\":\\\"1f623\\\"},\\\"1f616\\\":{\\\"name\\\":\\\"confounded face\\\",\\\"shortname\\\":\\\":confounded:\\\",\\\"shortname_alternates\\\":[],\\\"keywords\\\":[\\\"confounded\\\",\\\"face\\\"],\\\"unicode_output\\\":\\\"1f616\\\"},\\\"1f62b\\\":{\\\"name\\\":\\\"tired face\\\",\\\"shortname\\\":\\\":tired_face:\\\",\\\"shortname_alternates\\\":[],\\\"keywords\\\":[\\\"face\\\",\\\"tired\\\"],\\\"unicode_output\\\":\\\"1f62b\\\"},\\\"1f629\\\":{\\\"name\\\":\\\"weary face\\\",\\\"shortname\\\":\\\":weary:\\\",\\\"shortname_alternates\\\":[],\\\"keywords\\\":[\\\"face\\\",\\\"tired\\\",\\\"weary\\\"],\\\"unicode_output\\\":\\\"1f629\\\"},\\\"1f624\\\":{\\\"name\\\":\\\"face with steam from nose\\\",\\\"shortname\\\":\\\":triumph:\\\",\\\"shortname_alternates\\\":[],\\\"keywords\\\":[\\\"face\\\",\\\"triumph\\\",\\\"won\\\"],\\\"unicode_output\\\":\\\"1f624\\\"},\\\"1f620\\\":{\\\"name\\\":\\\"angry face\\\",\\\"shortname\\\":\\\":angry:\\\",\\\"shortname_alternates\\\":[],\\\"keywords\\\":[\\\"angry\\\",\\\"face\\\",\\\"mad\\\"],\\\"unicode_output\\\":\\\"1f620\\\"},\\\"1f621\\\":{\\\"name\\\":\\\"pouting face\\\",\\\"shortname\\\":\\\":rage:\\\",\\\"shortname_alternates\\\":[],\\\"keywords\\\":[\\\"angry\\\",\\\"face\\\",\\\"mad\\\",\\\"pouting\\\",\\\"rage\\\",\\\"red\\\"],\\\"unicode_output\\\":\\\"1f621\\\"},\\\"1f636\\\":{\\\"name\\\":\\\"face without mouth\\\",\\\"shortname\\\":\\\":no_mouth:\\\",\\\"shortname_alternates\\\":[],\\\"keywords\\\":[\\\"face\\\",\\\"mouth\\\",\\\"quiet\\\",\\\"silent\\\"],\\\"unicode_output\\\":\\\"1f636\\\"},\\\"1f610\\\":{\\\"name\\\":\\\"neutral face\\\",\\\"shortname\\\":\\\":neutral_face:\\\",\\\"shortname_alternates\\\":[],\\\"keywords\\\":[\\\"deadpan\\\",\\\"face\\\",\\\"neutral\\\"],\\\"unicode_output\\\":\\\"1f610\\\"},\\\"1f611\\\":{\\\"name\\\":\\\"expressionless face\\\",\\\"shortname\\\":\\\":expressionless:\\\",\\\"shortname_alternates\\\":[],\\\"keywords\\\":[\\\"expressionless\\\",\\\"face\\\",\\\"inexpressive\\\",\\\"unexpressive\\\"],\\\"unicode_output\\\":\\\"1f611\\\"},\\\"1f62f\\\":{\\\"name\\\":\\\"hushed face\\\",\\\"shortname\\\":\\\":hushed:\\\",\\\"shortname_alternates\\\":[],\\\"keywords\\\":[\\\"face\\\",\\\"hushed\\\",\\\"stunned\\\",\\\"surprised\\\"],\\\"unicode_output\\\":\\\"1f62f\\\"},\\\"1f626\\\":{\\\"name\\\":\\\"frowning face with open mouth\\\",\\\"shortname\\\":\\\":frowning:\\\",\\\"shortname_alternates\\\":[],\\\"keywords\\\":[\\\"face\\\",\\\"frown\\\",\\\"mouth\\\",\\\"open\\\"],\\\"unicode_output\\\":\\\"1f626\\\"},\\\"1f627\\\":{\\\"name\\\":\\\"anguished face\\\",\\\"shortname\\\":\\\":anguished:\\\",\\\"shortname_alternates\\\":[],\\\"keywords\\\":[\\\"anguished\\\",\\\"face\\\"],\\\"unicode_output\\\":\\\"1f627\\\"},\\\"1f62e\\\":{\\\"name\\\":\\\"face with open mouth\\\",\\\"shortname\\\":\\\":open_mouth:\\\",\\\"shortname_alternates\\\":[],\\\"keywords\\\":[\\\"face\\\",\\\"mouth\\\",\\\"open\\\",\\\"sympathy\\\"],\\\"unicode_output\\\":\\\"1f62e\\\"},\\\"1f632\\\":{\\\"name\\\":\\\"astonished face\\\",\\\"shortname\\\":\\\":astonished:\\\",\\\"shortname_alternates\\\":[],\\\"keywords\\\":[\\\"astonished\\\",\\\"face\\\",\\\"shocked\\\",\\\"totally\\\"],\\\"unicode_output\\\":\\\"1f632\\\"},\\\"1f635\\\":{\\\"name\\\":\\\"dizzy face\\\",\\\"shortname\\\":\\\":dizzy_face:\\\",\\\"shortname_alternates\\\":[],\\\"keywords\\\":[\\\"dizzy\\\",\\\"face\\\"],\\\"unicode_output\\\":\\\"1f635\\\"},\\\"1f633\\\":{\\\"name\\\":\\\"flushed face\\\",\\\"shortname\\\":\\\":flushed:\\\",\\\"shortname_alternates\\\":[],\\\"keywords\\\":[\\\"dazed\\\",\\\"face\\\",\\\"flushed\\\"],\\\"unicode_output\\\":\\\"1f633\\\"},\\\"1f631\\\":{\\\"name\\\":\\\"face screaming in fear\\\",\\\"shortname\\\":\\\":scream:\\\",\\\"shortname_alternates\\\":[],\\\"keywords\\\":[\\\"face\\\",\\\"fear\\\",\\\"fearful\\\",\\\"munch\\\",\\\"scared\\\",\\\"scream\\\"],\\\"unicode_output\\\":\\\"1f631\\\"},\\\"1f628\\\":{\\\"name\\\":\\\"fearful face\\\",\\\"shortname\\\":\\\":fearful:\\\",\\\"shortname_alternates\\\":[],\\\"keywords\\\":[\\\"face\\\",\\\"fear\\\",\\\"fearful\\\",\\\"scared\\\"],\\\"unicode_output\\\":\\\"1f628\\\"},\\\"1f630\\\":{\\\"name\\\":\\\"face with open mouth & cold sweat\\\",\\\"shortname\\\":\\\":cold_sweat:\\\",\\\"shortname_alternates\\\":[],\\\"keywords\\\":[\\\"blue\\\",\\\"cold\\\",\\\"face\\\",\\\"mouth\\\",\\\"open\\\",\\\"rushed\\\",\\\"sweat\\\"],\\\"unicode_output\\\":\\\"1f630\\\"},\\\"1f622\\\":{\\\"name\\\":\\\"crying face\\\",\\\"shortname\\\":\\\":cry:\\\",\\\"shortname_alternates\\\":[],\\\"keywords\\\":[\\\"cry\\\",\\\"face\\\",\\\"sad\\\",\\\"tear\\\"],\\\"unicode_output\\\":\\\"1f622\\\"},\\\"1f625\\\":{\\\"name\\\":\\\"disappointed but relieved face\\\",\\\"shortname\\\":\\\":disappointed_relieved:\\\",\\\"shortname_alternates\\\":[],\\\"keywords\\\":[\\\"disappointed\\\",\\\"face\\\",\\\"relieved\\\",\\\"whew\\\"],\\\"unicode_output\\\":\\\"1f625\\\"},\\\"1f924\\\":{\\\"name\\\":\\\"drooling face\\\",\\\"shortname\\\":\\\":drooling_face:\\\",\\\"shortname_alternates\\\":[\\\":drool:\\\"],\\\"keywords\\\":[\\\"drooling\\\",\\\"face\\\"],\\\"unicode_output\\\":\\\"1f924\\\"},\\\"1f62d\\\":{\\\"name\\\":\\\"loudly crying face\\\",\\\"shortname\\\":\\\":sob:\\\",\\\"shortname_alternates\\\":[],\\\"keywords\\\":[\\\"cry\\\",\\\"face\\\",\\\"sad\\\",\\\"sob\\\",\\\"tear\\\"],\\\"unicode_output\\\":\\\"1f62d\\\"},\\\"1f613\\\":{\\\"name\\\":\\\"face with cold sweat\\\",\\\"shortname\\\":\\\":sweat:\\\",\\\"shortname_alternates\\\":[],\\\"keywords\\\":[\\\"cold\\\",\\\"face\\\",\\\"sweat\\\"],\\\"unicode_output\\\":\\\"1f613\\\"},\\\"1f62a\\\":{\\\"name\\\":\\\"sleepy face\\\",\\\"shortname\\\":\\\":sleepy:\\\",\\\"shortname_alternates\\\":[],\\\"keywords\\\":[\\\"face\\\",\\\"sleep\\\"],\\\"unicode_output\\\":\\\"1f62a\\\"},\\\"1f634\\\":{\\\"name\\\":\\\"sleeping face\\\",\\\"shortname\\\":\\\":sleeping:\\\",\\\"shortname_alternates\\\":[],\\\"keywords\\\":[\\\"face\\\",\\\"sleep\\\",\\\"zzz\\\"],\\\"unicode_output\\\":\\\"1f634\\\"},\\\"1f914\\\":{\\\"name\\\":\\\"thinking face\\\",\\\"shortname\\\":\\\":thinking:\\\",\\\"shortname_alternates\\\":[\\\":thinking_face:\\\"],\\\"keywords\\\":[\\\"face\\\",\\\"thinking\\\"],\\\"unicode_output\\\":\\\"1f914\\\"},\\\"1f925\\\":{\\\"name\\\":\\\"lying face\\\",\\\"shortname\\\":\\\":lying_face:\\\",\\\"shortname_alternates\\\":[\\\":liar:\\\"],\\\"keywords\\\":[\\\"face\\\",\\\"lie\\\",\\\"pinocchio\\\"],\\\"unicode_output\\\":\\\"1f925\\\"},\\\"1f62c\\\":{\\\"name\\\":\\\"grimacing face\\\",\\\"shortname\\\":\\\":grimacing:\\\",\\\"shortname_alternates\\\":[],\\\"keywords\\\":[\\\"face\\\",\\\"grimace\\\"],\\\"unicode_output\\\":\\\"1f62c\\\"},\\\"1f922\\\":{\\\"name\\\":\\\"nauseated face\\\",\\\"shortname\\\":\\\":nauseated_face:\\\",\\\"shortname_alternates\\\":[\\\":sick:\\\"],\\\"keywords\\\":[\\\"face\\\",\\\"nauseated\\\",\\\"vomit\\\"],\\\"unicode_output\\\":\\\"1f922\\\"},\\\"1f927\\\":{\\\"name\\\":\\\"sneezing face\\\",\\\"shortname\\\":\\\":sneezing_face:\\\",\\\"shortname_alternates\\\":[\\\":sneeze:\\\"],\\\"keywords\\\":[\\\"face\\\",\\\"gesundheit\\\",\\\"sneeze\\\"],\\\"unicode_output\\\":\\\"1f927\\\"},\\\"1f637\\\":{\\\"name\\\":\\\"face with medical mask\\\",\\\"shortname\\\":\\\":mask:\\\",\\\"shortname_alternates\\\":[],\\\"keywords\\\":[\\\"cold\\\",\\\"doctor\\\",\\\"face\\\",\\\"mask\\\",\\\"medicine\\\",\\\"sick\\\"],\\\"unicode_output\\\":\\\"1f637\\\"},\\\"1f608\\\":{\\\"name\\\":\\\"smiling face with horns\\\",\\\"shortname\\\":\\\":smiling_imp:\\\",\\\"shortname_alternates\\\":[],\\\"keywords\\\":[\\\"face\\\",\\\"fairy tale\\\",\\\"fantasy\\\",\\\"horns\\\",\\\"smile\\\"],\\\"unicode_output\\\":\\\"1f608\\\"},\\\"1f47f\\\":{\\\"name\\\":\\\"angry face with horns\\\",\\\"shortname\\\":\\\":imp:\\\",\\\"shortname_alternates\\\":[],\\\"keywords\\\":[\\\"demon\\\",\\\"devil\\\",\\\"face\\\",\\\"fairy tale\\\",\\\"fantasy\\\",\\\"imp\\\"],\\\"unicode_output\\\":\\\"1f47f\\\"},\\\"1f479\\\":{\\\"name\\\":\\\"ogre\\\",\\\"shortname\\\":\\\":japanese_ogre:\\\",\\\"shortname_alternates\\\":[],\\\"keywords\\\":[\\\"\\\"],\\\"unicode_output\\\":\\\"1f479\\\"},\\\"1f47a\\\":{\\\"name\\\":\\\"goblin\\\",\\\"shortname\\\":\\\":japanese_goblin:\\\",\\\"shortname_alternates\\\":[],\\\"keywords\\\":[\\\"creature\\\",\\\"face\\\",\\\"fairy tale\\\",\\\"fantasy\\\",\\\"monster\\\"],\\\"unicode_output\\\":\\\"1f47a\\\"},\\\"1f4a9\\\":{\\\"name\\\":\\\"pile of poo\\\",\\\"shortname\\\":\\\":poop:\\\",\\\"shortname_alternates\\\":[\\\":shit:\\\",\\\":hankey:\\\",\\\":poo:\\\"],\\\"keywords\\\":[\\\"comic\\\",\\\"dung\\\",\\\"face\\\",\\\"monster\\\",\\\"poo\\\",\\\"poop\\\"],\\\"unicode_output\\\":\\\"1f4a9\\\"},\\\"1f47b\\\":{\\\"name\\\":\\\"ghost\\\",\\\"shortname\\\":\\\":ghost:\\\",\\\"shortname_alternates\\\":[],\\\"keywords\\\":[\\\"creature\\\",\\\"face\\\",\\\"fairy tale\\\",\\\"fantasy\\\",\\\"monster\\\"],\\\"unicode_output\\\":\\\"1f47b\\\"},\\\"1f480\\\":{\\\"name\\\":\\\"skull\\\",\\\"shortname\\\":\\\":skull:\\\",\\\"shortname_alternates\\\":[\\\":skeleton:\\\"],\\\"keywords\\\":[\\\"death\\\",\\\"face\\\",\\\"fairy tale\\\",\\\"monster\\\"],\\\"unicode_output\\\":\\\"1f480\\\"},\\\"1f47d\\\":{\\\"name\\\":\\\"alien\\\",\\\"shortname\\\":\\\":alien:\\\",\\\"shortname_alternates\\\":[],\\\"keywords\\\":[\\\"creature\\\",\\\"extraterrestrial\\\",\\\"face\\\",\\\"fairy tale\\\",\\\"fantasy\\\",\\\"monster\\\",\\\"ufo\\\"],\\\"unicode_output\\\":\\\"1f47d\\\"},\\\"1f47e\\\":{\\\"name\\\":\\\"alien monster\\\",\\\"shortname\\\":\\\":space_invader:\\\",\\\"shortname_alternates\\\":[],\\\"keywords\\\":[\\\"alien\\\",\\\"creature\\\",\\\"extraterrestrial\\\",\\\"face\\\",\\\"fairy tale\\\",\\\"fantasy\\\",\\\"monster\\\",\\\"ufo\\\"],\\\"unicode_output\\\":\\\"1f47e\\\"},\\\"1f916\\\":{\\\"name\\\":\\\"robot face\\\",\\\"shortname\\\":\\\":robot:\\\",\\\"shortname_alternates\\\":[\\\":robot_face:\\\"],\\\"keywords\\\":[\\\"face\\\",\\\"monster\\\",\\\"robot\\\"],\\\"unicode_output\\\":\\\"1f916\\\"},\\\"1f383\\\":{\\\"name\\\":\\\"jack-o-lantern\\\",\\\"shortname\\\":\\\":jack_o_lantern:\\\",\\\"shortname_alternates\\\":[],\\\"keywords\\\":[\\\"celebration\\\",\\\"halloween\\\",\\\"jack\\\",\\\"lantern\\\"],\\\"unicode_output\\\":\\\"1f383\\\"},\\\"1f63a\\\":{\\\"name\\\":\\\"smiling cat face with open mouth\\\",\\\"shortname\\\":\\\":smiley_cat:\\\",\\\"shortname_alternates\\\":[],\\\"keywords\\\":[\\\"cat\\\",\\\"face\\\",\\\"mouth\\\",\\\"open\\\",\\\"smile\\\"],\\\"unicode_output\\\":\\\"1f63a\\\"},\\\"1f638\\\":{\\\"name\\\":\\\"grinning cat face with smiling eyes\\\",\\\"shortname\\\":\\\":smile_cat:\\\",\\\"shortname_alternates\\\":[],\\\"keywords\\\":[\\\"cat\\\",\\\"eye\\\",\\\"face\\\",\\\"grin\\\",\\\"smile\\\"],\\\"unicode_output\\\":\\\"1f638\\\"},\\\"1f639\\\":{\\\"name\\\":\\\"cat face with tears of joy\\\",\\\"shortname\\\":\\\":joy_cat:\\\",\\\"shortname_alternates\\\":[],\\\"keywords\\\":[\\\"cat\\\",\\\"face\\\",\\\"joy\\\",\\\"tear\\\"],\\\"unicode_output\\\":\\\"1f639\\\"},\\\"1f63b\\\":{\\\"name\\\":\\\"smiling cat face with heart-eyes\\\",\\\"shortname\\\":\\\":heart_eyes_cat:\\\",\\\"shortname_alternates\\\":[],\\\"keywords\\\":[\\\"cat\\\",\\\"eye\\\",\\\"face\\\",\\\"love\\\",\\\"smile\\\"],\\\"unicode_output\\\":\\\"1f63b\\\"},\\\"1f63c\\\":{\\\"name\\\":\\\"cat face with wry smile\\\",\\\"shortname\\\":\\\":smirk_cat:\\\",\\\"shortname_alternates\\\":[],\\\"keywords\\\":[\\\"cat\\\",\\\"face\\\",\\\"ironic\\\",\\\"smile\\\",\\\"wry\\\"],\\\"unicode_output\\\":\\\"1f63c\\\"},\\\"1f63d\\\":{\\\"name\\\":\\\"kissing cat face with closed eyes\\\",\\\"shortname\\\":\\\":kissing_cat:\\\",\\\"shortname_alternates\\\":[],\\\"keywords\\\":[\\\"cat\\\",\\\"eye\\\",\\\"face\\\",\\\"kiss\\\"],\\\"unicode_output\\\":\\\"1f63d\\\"},\\\"1f640\\\":{\\\"name\\\":\\\"weary cat face\\\",\\\"shortname\\\":\\\":scream_cat:\\\",\\\"shortname_alternates\\\":[],\\\"keywords\\\":[\\\"cat\\\",\\\"face\\\",\\\"oh\\\",\\\"surprised\\\",\\\"weary\\\"],\\\"unicode_output\\\":\\\"1f640\\\"},\\\"1f63f\\\":{\\\"name\\\":\\\"crying cat face\\\",\\\"shortname\\\":\\\":crying_cat_face:\\\",\\\"shortname_alternates\\\":[],\\\"keywords\\\":[\\\"cat\\\",\\\"cry\\\",\\\"face\\\",\\\"sad\\\",\\\"tear\\\"],\\\"unicode_output\\\":\\\"1f63f\\\"},\\\"1f63e\\\":{\\\"name\\\":\\\"pouting cat face\\\",\\\"shortname\\\":\\\":pouting_cat:\\\",\\\"shortname_alternates\\\":[],\\\"keywords\\\":[\\\"cat\\\",\\\"face\\\",\\\"pouting\\\"],\\\"unicode_output\\\":\\\"1f63e\\\"},\\\"1f450\\\":{\\\"name\\\":\\\"open hands\\\",\\\"shortname\\\":\\\":open_hands:\\\",\\\"shortname_alternates\\\":[],\\\"keywords\\\":[\\\"hand\\\",\\\"open\\\"],\\\"unicode_output\\\":\\\"1f450\\\"},\\\"1f64c\\\":{\\\"name\\\":\\\"raising hands\\\",\\\"shortname\\\":\\\":raised_hands:\\\",\\\"shortname_alternates\\\":[],\\\"keywords\\\":[\\\"celebration\\\",\\\"gesture\\\",\\\"hand\\\",\\\"hooray\\\",\\\"raised\\\"],\\\"unicode_output\\\":\\\"1f64c\\\"},\\\"1f44f\\\":{\\\"name\\\":\\\"clapping hands\\\",\\\"shortname\\\":\\\":clap:\\\",\\\"shortname_alternates\\\":[],\\\"keywords\\\":[\\\"clap\\\",\\\"hand\\\"],\\\"unicode_output\\\":\\\"1f44f\\\"},\\\"1f64f\\\":{\\\"name\\\":\\\"folded hands\\\",\\\"shortname\\\":\\\":pray:\\\",\\\"shortname_alternates\\\":[],\\\"keywords\\\":[\\\"ask\\\",\\\"bow\\\",\\\"folded\\\",\\\"gesture\\\",\\\"hand\\\",\\\"please\\\",\\\"pray\\\",\\\"thanks\\\"],\\\"unicode_output\\\":\\\"1f64f\\\"},\\\"1f91d\\\":{\\\"name\\\":\\\"handshake\\\",\\\"shortname\\\":\\\":handshake:\\\",\\\"shortname_alternates\\\":[\\\":shaking_hands:\\\"],\\\"keywords\\\":[\\\"agreement\\\",\\\"hand\\\",\\\"handshake\\\",\\\"meeting\\\",\\\"shake\\\"],\\\"unicode_output\\\":\\\"1f91d\\\"},\\\"1f44d\\\":{\\\"name\\\":\\\"thumbs up\\\",\\\"shortname\\\":\\\":thumbsup:\\\",\\\"shortname_alternates\\\":[\\\":+1:\\\",\\\":thumbup:\\\"],\\\"keywords\\\":[\\\"+1\\\",\\\"hand\\\",\\\"thumb\\\",\\\"up\\\"],\\\"unicode_output\\\":\\\"1f44d\\\"},\\\"1f44e\\\":{\\\"name\\\":\\\"thumbs down\\\",\\\"shortname\\\":\\\":thumbsdown:\\\",\\\"shortname_alternates\\\":[\\\":-1:\\\",\\\":thumbdown:\\\"],\\\"keywords\\\":[\\\"-1\\\",\\\"down\\\",\\\"hand\\\",\\\"thumb\\\"],\\\"unicode_output\\\":\\\"1f44e\\\"},\\\"1f44a\\\":{\\\"name\\\":\\\"oncoming fist\\\",\\\"shortname\\\":\\\":punch:\\\",\\\"shortname_alternates\\\":[],\\\"keywords\\\":[\\\"clenched\\\",\\\"fist\\\",\\\"hand\\\",\\\"punch\\\"],\\\"unicode_output\\\":\\\"1f44a\\\"},\\\"270a\\\":{\\\"name\\\":\\\"raised fist\\\",\\\"shortname\\\":\\\":fist:\\\",\\\"shortname_alternates\\\":[],\\\"keywords\\\":[\\\"clenched\\\",\\\"fist\\\",\\\"hand\\\",\\\"punch\\\"],\\\"unicode_output\\\":\\\"270a\\\"},\\\"270c\\\":{\\\"name\\\":\\\"victory hand\\\",\\\"shortname\\\":\\\":v:\\\",\\\"shortname_alternates\\\":[],\\\"keywords\\\":[\\\"hand\\\",\\\"v\\\",\\\"victory\\\"],\\\"unicode_output\\\":\\\"270c-fe0f\\\"},\\\"1f918\\\":{\\\"name\\\":\\\"sign of the horns\\\",\\\"shortname\\\":\\\":metal:\\\",\\\"shortname_alternates\\\":[\\\":sign_of_the_horns:\\\"],\\\"keywords\\\":[\\\"finger\\\",\\\"hand\\\",\\\"horns\\\",\\\"rock-on\\\"],\\\"unicode_output\\\":\\\"1f918\\\"},\\\"1f44c\\\":{\\\"name\\\":\\\"OK hand\\\",\\\"shortname\\\":\\\":ok_hand:\\\",\\\"shortname_alternates\\\":[],\\\"keywords\\\":[\\\"OK\\\",\\\"hand\\\"],\\\"unicode_output\\\":\\\"1f44c\\\"},\\\"1f448\\\":{\\\"name\\\":\\\"backhand index pointing left\\\",\\\"shortname\\\":\\\":point_left:\\\",\\\"shortname_alternates\\\":[],\\\"keywords\\\":[\\\"backhand\\\",\\\"finger\\\",\\\"hand\\\",\\\"index\\\",\\\"point\\\"],\\\"unicode_output\\\":\\\"1f448\\\"},\\\"1f449\\\":{\\\"name\\\":\\\"backhand index pointing right\\\",\\\"shortname\\\":\\\":point_right:\\\",\\\"shortname_alternates\\\":[],\\\"keywords\\\":[\\\"backhand\\\",\\\"finger\\\",\\\"hand\\\",\\\"index\\\",\\\"point\\\"],\\\"unicode_output\\\":\\\"1f449\\\"},\\\"1f446\\\":{\\\"name\\\":\\\"backhand index pointing up\\\",\\\"shortname\\\":\\\":point_up_2:\\\",\\\"shortname_alternates\\\":[],\\\"keywords\\\":[\\\"backhand\\\",\\\"finger\\\",\\\"hand\\\",\\\"index\\\",\\\"point\\\",\\\"up\\\"],\\\"unicode_output\\\":\\\"1f446\\\"},\\\"1f447\\\":{\\\"name\\\":\\\"backhand index pointing down\\\",\\\"shortname\\\":\\\":point_down:\\\",\\\"shortname_alternates\\\":[],\\\"keywords\\\":[\\\"backhand\\\",\\\"down\\\",\\\"finger\\\",\\\"hand\\\",\\\"index\\\",\\\"point\\\"],\\\"unicode_output\\\":\\\"1f447\\\"},\\\"261d\\\":{\\\"name\\\":\\\"index pointing up\\\",\\\"shortname\\\":\\\":point_up:\\\",\\\"shortname_alternates\\\":[],\\\"keywords\\\":[\\\"finger\\\",\\\"hand\\\",\\\"index\\\",\\\"point\\\",\\\"up\\\"],\\\"unicode_output\\\":\\\"261d-fe0f\\\"},\\\"270b\\\":{\\\"name\\\":\\\"raised hand\\\",\\\"shortname\\\":\\\":raised_hand:\\\",\\\"shortname_alternates\\\":[],\\\"keywords\\\":[\\\"hand\\\"],\\\"unicode_output\\\":\\\"270b\\\"},\\\"1f91a\\\":{\\\"name\\\":\\\"raised back of hand\\\",\\\"shortname\\\":\\\":raised_back_of_hand:\\\",\\\"shortname_alternates\\\":[\\\":back_of_hand:\\\"],\\\"keywords\\\":[\\\"backhand\\\",\\\"raised\\\"],\\\"unicode_output\\\":\\\"1f91a\\\"},\\\"1f44b\\\":{\\\"name\\\":\\\"waving hand\\\",\\\"shortname\\\":\\\":wave:\\\",\\\"shortname_alternates\\\":[],\\\"keywords\\\":[\\\"hand\\\",\\\"wave\\\",\\\"waving\\\"],\\\"unicode_output\\\":\\\"1f44b\\\"},\\\"1f4aa\\\":{\\\"name\\\":\\\"flexed biceps\\\",\\\"shortname\\\":\\\":muscle:\\\",\\\"shortname_alternates\\\":[],\\\"keywords\\\":[\\\"biceps\\\",\\\"comic\\\",\\\"flex\\\",\\\"muscle\\\"],\\\"unicode_output\\\":\\\"1f4aa\\\"},\\\"1f595\\\":{\\\"name\\\":\\\"middle finger\\\",\\\"shortname\\\":\\\":middle_finger:\\\",\\\"shortname_alternates\\\":[\\\":reversed_hand_with_middle_finger_extended:\\\"],\\\"keywords\\\":[\\\"finger\\\",\\\"hand\\\"],\\\"unicode_output\\\":\\\"1f595\\\"},\\\"270d\\\":{\\\"name\\\":\\\"writing hand\\\",\\\"shortname\\\":\\\":writing_hand:\\\",\\\"shortname_alternates\\\":[],\\\"keywords\\\":[\\\"hand\\\",\\\"write\\\"],\\\"unicode_output\\\":\\\"270d-fe0f\\\"},\\\"1f933\\\":{\\\"name\\\":\\\"selfie\\\",\\\"shortname\\\":\\\":selfie:\\\",\\\"shortname_alternates\\\":[],\\\"keywords\\\":[\\\"camera\\\",\\\"phone\\\",\\\"selfie\\\"],\\\"unicode_output\\\":\\\"1f933\\\"},\\\"1f485\\\":{\\\"name\\\":\\\"nail polish\\\",\\\"shortname\\\":\\\":nail_care:\\\",\\\"shortname_alternates\\\":[],\\\"keywords\\\":[\\\"care\\\",\\\"cosmetics\\\",\\\"manicure\\\",\\\"nail\\\",\\\"polish\\\"],\\\"unicode_output\\\":\\\"1f485\\\"},\\\"1f48d\\\":{\\\"name\\\":\\\"ring\\\",\\\"shortname\\\":\\\":ring:\\\",\\\"shortname_alternates\\\":[],\\\"keywords\\\":[\\\"diamond\\\"],\\\"unicode_output\\\":\\\"1f48d\\\"},\\\"1f484\\\":{\\\"name\\\":\\\"lipstick\\\",\\\"shortname\\\":\\\":lipstick:\\\",\\\"shortname_alternates\\\":[],\\\"keywords\\\":[\\\"cosmetics\\\",\\\"makeup\\\"],\\\"unicode_output\\\":\\\"1f484\\\"},\\\"1f48b\\\":{\\\"name\\\":\\\"kiss mark\\\",\\\"shortname\\\":\\\":kiss:\\\",\\\"shortname_alternates\\\":[],\\\"keywords\\\":[\\\"kiss\\\",\\\"lips\\\"],\\\"unicode_output\\\":\\\"1f48b\\\"},\\\"1f444\\\":{\\\"name\\\":\\\"mouth\\\",\\\"shortname\\\":\\\":lips:\\\",\\\"shortname_alternates\\\":[],\\\"keywords\\\":[\\\"lips\\\"],\\\"unicode_output\\\":\\\"1f444\\\"},\\\"1f445\\\":{\\\"name\\\":\\\"tongue\\\",\\\"shortname\\\":\\\":tongue:\\\",\\\"shortname_alternates\\\":[],\\\"keywords\\\":[\\\"body\\\"],\\\"unicode_output\\\":\\\"1f445\\\"},\\\"1f442\\\":{\\\"name\\\":\\\"ear\\\",\\\"shortname\\\":\\\":ear:\\\",\\\"shortname_alternates\\\":[],\\\"keywords\\\":[\\\"body\\\"],\\\"unicode_output\\\":\\\"1f442\\\"},\\\"1f443\\\":{\\\"name\\\":\\\"nose\\\",\\\"shortname\\\":\\\":nose:\\\",\\\"shortname_alternates\\\":[],\\\"keywords\\\":[\\\"body\\\"],\\\"unicode_output\\\":\\\"1f443\\\"},\\\"1f463\\\":{\\\"name\\\":\\\"footprints\\\",\\\"shortname\\\":\\\":footprints:\\\",\\\"shortname_alternates\\\":[],\\\"keywords\\\":[\\\"clothing\\\",\\\"footprint\\\",\\\"print\\\"],\\\"unicode_output\\\":\\\"1f463\\\"},\\\"1f441\\\":{\\\"name\\\":\\\"eye\\\",\\\"shortname\\\":\\\":eye:\\\",\\\"shortname_alternates\\\":[],\\\"keywords\\\":[\\\"body\\\"],\\\"unicode_output\\\":\\\"1f441-fe0f\\\"},\\\"1f440\\\":{\\\"name\\\":\\\"eyes\\\",\\\"shortname\\\":\\\":eyes:\\\",\\\"shortname_alternates\\\":[],\\\"keywords\\\":[\\\"eye\\\",\\\"face\\\"],\\\"unicode_output\\\":\\\"1f440\\\"},\\\"1f5e3\\\":{\\\"name\\\":\\\"speaking head\\\",\\\"shortname\\\":\\\":speaking_head:\\\",\\\"shortname_alternates\\\":[\\\":speaking_head_in_silhouette:\\\"],\\\"keywords\\\":[\\\"face\\\",\\\"head\\\",\\\"silhouette\\\",\\\"speak\\\",\\\"speaking\\\"],\\\"unicode_output\\\":\\\"1f5e3-fe0f\\\"},\\\"1f464\\\":{\\\"name\\\":\\\"bust in silhouette\\\",\\\"shortname\\\":\\\":bust_in_silhouette:\\\",\\\"shortname_alternates\\\":[],\\\"keywords\\\":[\\\"bust\\\",\\\"silhouette\\\"],\\\"unicode_output\\\":\\\"1f464\\\"},\\\"1f465\\\":{\\\"name\\\":\\\"busts in silhouette\\\",\\\"shortname\\\":\\\":busts_in_silhouette:\\\",\\\"shortname_alternates\\\":[],\\\"keywords\\\":[\\\"bust\\\",\\\"silhouette\\\"],\\\"unicode_output\\\":\\\"1f465\\\"},\\\"1f476\\\":{\\\"name\\\":\\\"baby\\\",\\\"shortname\\\":\\\":baby:\\\",\\\"shortname_alternates\\\":[],\\\"keywords\\\":[\\\"baby\\\",\\\"young\\\"],\\\"unicode_output\\\":\\\"1f476\\\"},\\\"1f466\\\":{\\\"name\\\":\\\"boy\\\",\\\"shortname\\\":\\\":boy:\\\",\\\"shortname_alternates\\\":[],\\\"keywords\\\":[\\\"boy\\\",\\\"young\\\"],\\\"unicode_output\\\":\\\"1f466\\\"},\\\"1f467\\\":{\\\"name\\\":\\\"girl\\\",\\\"shortname\\\":\\\":girl:\\\",\\\"shortname_alternates\\\":[],\\\"keywords\\\":[\\\"Virgo\\\",\\\"young\\\",\\\"zodiac\\\"],\\\"unicode_output\\\":\\\"1f467\\\"},\\\"1f468\\\":{\\\"name\\\":\\\"man\\\",\\\"shortname\\\":\\\":man:\\\",\\\"shortname_alternates\\\":[],\\\"keywords\\\":[\\\"man\\\"],\\\"unicode_output\\\":\\\"1f468\\\"},\\\"1f469\\\":{\\\"name\\\":\\\"woman\\\",\\\"shortname\\\":\\\":woman:\\\",\\\"shortname_alternates\\\":[],\\\"keywords\\\":[\\\"woman\\\"],\\\"unicode_output\\\":\\\"1f469\\\"},\\\"1f474\\\":{\\\"name\\\":\\\"old man\\\",\\\"shortname\\\":\\\":older_man:\\\",\\\"shortname_alternates\\\":[],\\\"keywords\\\":[\\\"man\\\",\\\"old\\\"],\\\"unicode_output\\\":\\\"1f474\\\"},\\\"1f475\\\":{\\\"name\\\":\\\"old woman\\\",\\\"shortname\\\":\\\":older_woman:\\\",\\\"shortname_alternates\\\":[\\\":grandma:\\\"],\\\"keywords\\\":[\\\"old\\\",\\\"woman\\\"],\\\"unicode_output\\\":\\\"1f475\\\"},\\\"1f477\\\":{\\\"name\\\":\\\"construction worker\\\",\\\"shortname\\\":\\\":construction_worker:\\\",\\\"shortname_alternates\\\":[],\\\"keywords\\\":[\\\"construction\\\",\\\"hat\\\",\\\"worker\\\"],\\\"unicode_output\\\":\\\"1f477\\\"},\\\"1f575\\\":{\\\"name\\\":\\\"detective\\\",\\\"shortname\\\":\\\":detective:\\\",\\\"shortname_alternates\\\":[\\\":spy:\\\",\\\":sleuth_or_spy:\\\"],\\\"keywords\\\":[\\\"detective\\\",\\\"sleuth\\\",\\\"spy\\\"],\\\"unicode_output\\\":\\\"1f575-fe0f\\\"},\\\"1f469-2695\\\":{\\\"name\\\":\\\"woman health worker\\\",\\\"shortname\\\":\\\":woman_health_worker:\\\",\\\"shortname_alternates\\\":[],\\\"keywords\\\":[\\\"doctor\\\",\\\"healthcare\\\",\\\"nurse\\\",\\\"therapist\\\",\\\"woman\\\"],\\\"unicode_output\\\":\\\"1f469-200d-2695-fe0f\\\"},\\\"1f468-2695\\\":{\\\"name\\\":\\\"man health worker\\\",\\\"shortname\\\":\\\":man_health_worker:\\\",\\\"shortname_alternates\\\":[],\\\"keywords\\\":[\\\"doctor\\\",\\\"healthcare\\\",\\\"man\\\",\\\"nurse\\\",\\\"therapist\\\"],\\\"unicode_output\\\":\\\"1f468-200d-2695-fe0f\\\"},\\\"1f469-1f33e\\\":{\\\"name\\\":\\\"woman farmer\\\",\\\"shortname\\\":\\\":woman_farmer:\\\",\\\"shortname_alternates\\\":[],\\\"keywords\\\":[\\\"farmer\\\",\\\"gardener\\\",\\\"rancher\\\",\\\"woman\\\"],\\\"unicode_output\\\":\\\"1f469-200d-1f33e\\\"},\\\"1f468-1f33e\\\":{\\\"name\\\":\\\"man farmer\\\",\\\"shortname\\\":\\\":man_farmer:\\\",\\\"shortname_alternates\\\":[],\\\"keywords\\\":[\\\"farmer\\\",\\\"gardener\\\",\\\"man\\\",\\\"rancher\\\"],\\\"unicode_output\\\":\\\"1f468-200d-1f33e\\\"},\\\"1f469-1f373\\\":{\\\"name\\\":\\\"woman cook\\\",\\\"shortname\\\":\\\":woman_cook:\\\",\\\"shortname_alternates\\\":[],\\\"keywords\\\":[\\\"chef\\\",\\\"cook\\\",\\\"woman\\\"],\\\"unicode_output\\\":\\\"1f469-200d-1f373\\\"},\\\"1f468-1f373\\\":{\\\"name\\\":\\\"man cook\\\",\\\"shortname\\\":\\\":man_cook:\\\",\\\"shortname_alternates\\\":[],\\\"keywords\\\":[\\\"chef\\\",\\\"cook\\\",\\\"man\\\"],\\\"unicode_output\\\":\\\"1f468-200d-1f373\\\"},\\\"1f469-1f393\\\":{\\\"name\\\":\\\"woman student\\\",\\\"shortname\\\":\\\":woman_student:\\\",\\\"shortname_alternates\\\":[],\\\"keywords\\\":[\\\"graduate\\\",\\\"student\\\",\\\"woman\\\"],\\\"unicode_output\\\":\\\"1f469-200d-1f393\\\"},\\\"1f468-1f393\\\":{\\\"name\\\":\\\"man student\\\",\\\"shortname\\\":\\\":man_student:\\\",\\\"shortname_alternates\\\":[],\\\"keywords\\\":[\\\"graduate\\\",\\\"man\\\",\\\"student\\\"],\\\"unicode_output\\\":\\\"1f468-200d-1f393\\\"},\\\"1f469-1f3a4\\\":{\\\"name\\\":\\\"woman singer\\\",\\\"shortname\\\":\\\":woman_singer:\\\",\\\"shortname_alternates\\\":[],\\\"keywords\\\":[\\\"actor\\\",\\\"entertainer\\\",\\\"rock\\\",\\\"singer\\\",\\\"star\\\",\\\"woman\\\"],\\\"unicode_output\\\":\\\"1f469-200d-1f3a4\\\"},\\\"1f468-1f3a4\\\":{\\\"name\\\":\\\"man singer\\\",\\\"shortname\\\":\\\":man_singer:\\\",\\\"shortname_alternates\\\":[],\\\"keywords\\\":[\\\"actor\\\",\\\"entertainer\\\",\\\"man\\\",\\\"rock\\\",\\\"singer\\\",\\\"star\\\"],\\\"unicode_output\\\":\\\"1f468-200d-1f3a4\\\"},\\\"1f469-1f3eb\\\":{\\\"name\\\":\\\"woman teacher\\\",\\\"shortname\\\":\\\":woman_teacher:\\\",\\\"shortname_alternates\\\":[],\\\"keywords\\\":[\\\"instructor\\\",\\\"professor\\\",\\\"teacher\\\",\\\"woman\\\"],\\\"unicode_output\\\":\\\"1f469-200d-1f3eb\\\"},\\\"1f468-1f3eb\\\":{\\\"name\\\":\\\"man teacher\\\",\\\"shortname\\\":\\\":man_teacher:\\\",\\\"shortname_alternates\\\":[],\\\"keywords\\\":[\\\"instructor\\\",\\\"man\\\",\\\"professor\\\",\\\"teacher\\\"],\\\"unicode_output\\\":\\\"1f468-200d-1f3eb\\\"},\\\"1f469-1f3ed\\\":{\\\"name\\\":\\\"woman factory worker\\\",\\\"shortname\\\":\\\":woman_factory_worker:\\\",\\\"shortname_alternates\\\":[],\\\"keywords\\\":[\\\"assembly\\\",\\\"factory\\\",\\\"industrial\\\",\\\"woman\\\",\\\"worker\\\"],\\\"unicode_output\\\":\\\"1f469-200d-1f3ed\\\"},\\\"1f468-1f3ed\\\":{\\\"name\\\":\\\"man factory worker\\\",\\\"shortname\\\":\\\":man_factory_worker:\\\",\\\"shortname_alternates\\\":[],\\\"keywords\\\":[\\\"assembly\\\",\\\"factory\\\",\\\"industrial\\\",\\\"man\\\",\\\"worker\\\"],\\\"unicode_output\\\":\\\"1f468-200d-1f3ed\\\"},\\\"1f469-1f4bb\\\":{\\\"name\\\":\\\"woman technologist\\\",\\\"shortname\\\":\\\":woman_technologist:\\\",\\\"shortname_alternates\\\":[],\\\"keywords\\\":[\\\"coder\\\",\\\"developer\\\",\\\"inventor\\\",\\\"software\\\",\\\"technologist\\\",\\\"woman\\\"],\\\"unicode_output\\\":\\\"1f469-200d-1f4bb\\\"},\\\"1f468-1f4bb\\\":{\\\"name\\\":\\\"man technologist\\\",\\\"shortname\\\":\\\":man_technologist:\\\",\\\"shortname_alternates\\\":[],\\\"keywords\\\":[\\\"coder\\\",\\\"developer\\\",\\\"inventor\\\",\\\"man\\\",\\\"software\\\",\\\"technologist\\\"],\\\"unicode_output\\\":\\\"1f468-200d-1f4bb\\\"},\\\"1f469-1f4bc\\\":{\\\"name\\\":\\\"woman office worker\\\",\\\"shortname\\\":\\\":woman_office_worker:\\\",\\\"shortname_alternates\\\":[],\\\"keywords\\\":[\\\"architect\\\",\\\"business\\\",\\\"manager\\\",\\\"office\\\",\\\"white-collar\\\",\\\"woman\\\"],\\\"unicode_output\\\":\\\"1f469-200d-1f4bc\\\"},\\\"1f468-1f4bc\\\":{\\\"name\\\":\\\"man office worker\\\",\\\"shortname\\\":\\\":man_office_worker:\\\",\\\"shortname_alternates\\\":[],\\\"keywords\\\":[\\\"architect\\\",\\\"business\\\",\\\"man\\\",\\\"manager\\\",\\\"office\\\",\\\"white-collar\\\"],\\\"unicode_output\\\":\\\"1f468-200d-1f4bc\\\"},\\\"1f469-1f527\\\":{\\\"name\\\":\\\"woman mechanic\\\",\\\"shortname\\\":\\\":woman_mechanic:\\\",\\\"shortname_alternates\\\":[],\\\"keywords\\\":[\\\"electrician\\\",\\\"mechanic\\\",\\\"plumber\\\",\\\"tradesperson\\\",\\\"woman\\\"],\\\"unicode_output\\\":\\\"1f469-200d-1f527\\\"},\\\"1f468-1f527\\\":{\\\"name\\\":\\\"man mechanic\\\",\\\"shortname\\\":\\\":man_mechanic:\\\",\\\"shortname_alternates\\\":[],\\\"keywords\\\":[\\\"electrician\\\",\\\"man\\\",\\\"mechanic\\\",\\\"plumber\\\",\\\"tradesperson\\\"],\\\"unicode_output\\\":\\\"1f468-200d-1f527\\\"},\\\"1f469-1f52c\\\":{\\\"name\\\":\\\"woman scientist\\\",\\\"shortname\\\":\\\":woman_scientist:\\\",\\\"shortname_alternates\\\":[],\\\"keywords\\\":[\\\"biologist\\\",\\\"chemist\\\",\\\"engineer\\\",\\\"mathematician\\\",\\\"physicist\\\",\\\"scientist\\\",\\\"woman\\\"],\\\"unicode_output\\\":\\\"1f469-200d-1f52c\\\"},\\\"1f468-1f52c\\\":{\\\"name\\\":\\\"man scientist\\\",\\\"shortname\\\":\\\":man_scientist:\\\",\\\"shortname_alternates\\\":[],\\\"keywords\\\":[\\\"biologist\\\",\\\"chemist\\\",\\\"engineer\\\",\\\"man\\\",\\\"mathematician\\\",\\\"physicist\\\",\\\"scientist\\\"],\\\"unicode_output\\\":\\\"1f468-200d-1f52c\\\"},\\\"1f469-1f3a8\\\":{\\\"name\\\":\\\"woman artist\\\",\\\"shortname\\\":\\\":woman_artist:\\\",\\\"shortname_alternates\\\":[],\\\"keywords\\\":[\\\"artist\\\",\\\"palette\\\",\\\"woman\\\"],\\\"unicode_output\\\":\\\"1f469-200d-1f3a8\\\"},\\\"1f468-1f3a8\\\":{\\\"name\\\":\\\"man artist\\\",\\\"shortname\\\":\\\":man_artist:\\\",\\\"shortname_alternates\\\":[],\\\"keywords\\\":[\\\"artist\\\",\\\"man\\\",\\\"palette\\\"],\\\"unicode_output\\\":\\\"1f468-200d-1f3a8\\\"},\\\"1f469-1f692\\\":{\\\"name\\\":\\\"woman firefighter\\\",\\\"shortname\\\":\\\":woman_firefighter:\\\",\\\"shortname_alternates\\\":[],\\\"keywords\\\":[\\\"firefighter\\\",\\\"firetruck\\\",\\\"woman\\\"],\\\"unicode_output\\\":\\\"1f469-200d-1f692\\\"},\\\"1f468-1f692\\\":{\\\"name\\\":\\\"man firefighter\\\",\\\"shortname\\\":\\\":man_firefighter:\\\",\\\"shortname_alternates\\\":[],\\\"keywords\\\":[\\\"firefighter\\\",\\\"firetruck\\\",\\\"man\\\"],\\\"unicode_output\\\":\\\"1f468-200d-1f692\\\"},\\\"1f469-2708\\\":{\\\"name\\\":\\\"woman pilot\\\",\\\"shortname\\\":\\\":woman_pilot:\\\",\\\"shortname_alternates\\\":[],\\\"keywords\\\":[\\\"pilot\\\",\\\"plane\\\",\\\"woman\\\"],\\\"unicode_output\\\":\\\"1f469-200d-2708-fe0f\\\"},\\\"1f468-2708\\\":{\\\"name\\\":\\\"man pilot\\\",\\\"shortname\\\":\\\":man_pilot:\\\",\\\"shortname_alternates\\\":[],\\\"keywords\\\":[\\\"man\\\",\\\"pilot\\\",\\\"plane\\\"],\\\"unicode_output\\\":\\\"1f468-200d-2708-fe0f\\\"},\\\"1f469-1f680\\\":{\\\"name\\\":\\\"woman astronaut\\\",\\\"shortname\\\":\\\":woman_astronaut:\\\",\\\"shortname_alternates\\\":[],\\\"keywords\\\":[\\\"astronaut\\\",\\\"rocket\\\",\\\"woman\\\"],\\\"unicode_output\\\":\\\"1f469-200d-1f680\\\"},\\\"1f468-1f680\\\":{\\\"name\\\":\\\"man astronaut\\\",\\\"shortname\\\":\\\":man_astronaut:\\\",\\\"shortname_alternates\\\":[],\\\"keywords\\\":[\\\"astronaut\\\",\\\"man\\\",\\\"rocket\\\"],\\\"unicode_output\\\":\\\"1f468-200d-1f680\\\"},\\\"1f469-2696\\\":{\\\"name\\\":\\\"woman judge\\\",\\\"shortname\\\":\\\":woman_judge:\\\",\\\"shortname_alternates\\\":[],\\\"keywords\\\":[\\\"judge\\\",\\\"scales\\\",\\\"woman\\\"],\\\"unicode_output\\\":\\\"1f469-200d-2696-fe0f\\\"},\\\"1f468-2696\\\":{\\\"name\\\":\\\"man judge\\\",\\\"shortname\\\":\\\":man_judge:\\\",\\\"shortname_alternates\\\":[],\\\"keywords\\\":[\\\"justice\\\",\\\"man\\\",\\\"scales\\\"],\\\"unicode_output\\\":\\\"1f468-200d-2696-fe0f\\\"},\\\"1f936\\\":{\\\"name\\\":\\\"Mrs. Claus\\\",\\\"shortname\\\":\\\":mrs_claus:\\\",\\\"shortname_alternates\\\":[\\\":mother_christmas:\\\"],\\\"keywords\\\":[\\\"Christmas\\\",\\\"Mrs.\\\",\\\"celebration\\\",\\\"claus\\\",\\\"mother\\\"],\\\"unicode_output\\\":\\\"1f936\\\"},\\\"1f385\\\":{\\\"name\\\":\\\"Santa Claus\\\",\\\"shortname\\\":\\\":santa:\\\",\\\"shortname_alternates\\\":[],\\\"keywords\\\":[\\\"Christmas\\\",\\\"celebration\\\",\\\"claus\\\",\\\"father\\\",\\\"santa\\\"],\\\"unicode_output\\\":\\\"1f385\\\"},\\\"1f478\\\":{\\\"name\\\":\\\"princess\\\",\\\"shortname\\\":\\\":princess:\\\",\\\"shortname_alternates\\\":[],\\\"keywords\\\":[\\\"fairy tale\\\",\\\"fantasy\\\"],\\\"unicode_output\\\":\\\"1f478\\\"},\\\"1f934\\\":{\\\"name\\\":\\\"prince\\\",\\\"shortname\\\":\\\":prince:\\\",\\\"shortname_alternates\\\":[],\\\"keywords\\\":[\\\"prince\\\"],\\\"unicode_output\\\":\\\"1f934\\\"},\\\"1f470\\\":{\\\"name\\\":\\\"bride with veil\\\",\\\"shortname\\\":\\\":bride_with_veil:\\\",\\\"shortname_alternates\\\":[],\\\"keywords\\\":[\\\"bride\\\",\\\"veil\\\",\\\"wedding\\\"],\\\"unicode_output\\\":\\\"1f470\\\"},\\\"1f935\\\":{\\\"name\\\":\\\"man in tuxedo\\\",\\\"shortname\\\":\\\":man_in_tuxedo:\\\",\\\"shortname_alternates\\\":[],\\\"keywords\\\":[\\\"groom\\\",\\\"man\\\",\\\"tuxedo\\\"],\\\"unicode_output\\\":\\\"1f935\\\"},\\\"1f47c\\\":{\\\"name\\\":\\\"baby angel\\\",\\\"shortname\\\":\\\":angel:\\\",\\\"shortname_alternates\\\":[],\\\"keywords\\\":[\\\"angel\\\",\\\"baby\\\",\\\"face\\\",\\\"fairy tale\\\",\\\"fantasy\\\"],\\\"unicode_output\\\":\\\"1f47c\\\"},\\\"1f930\\\":{\\\"name\\\":\\\"pregnant woman\\\",\\\"shortname\\\":\\\":pregnant_woman:\\\",\\\"shortname_alternates\\\":[\\\":expecting_woman:\\\"],\\\"keywords\\\":[\\\"pregnant\\\",\\\"woman\\\"],\\\"unicode_output\\\":\\\"1f930\\\"},\\\"1f926-2640\\\":{\\\"name\\\":\\\"woman facepalming\\\",\\\"shortname\\\":\\\":woman_facepalming:\\\",\\\"shortname_alternates\\\":[],\\\"keywords\\\":[\\\"disbelief\\\",\\\"exasperation\\\",\\\"facepalm\\\",\\\"woman\\\"],\\\"unicode_output\\\":\\\"1f926-200d-2640-fe0f\\\"},\\\"1f926-2642\\\":{\\\"name\\\":\\\"man facepalming\\\",\\\"shortname\\\":\\\":man_facepalming:\\\",\\\"shortname_alternates\\\":[],\\\"keywords\\\":[\\\"disbelief\\\",\\\"exasperation\\\",\\\"facepalm\\\",\\\"man\\\"],\\\"unicode_output\\\":\\\"1f926-200d-2642-fe0f\\\"},\\\"1f937-2640\\\":{\\\"name\\\":\\\"woman shrugging\\\",\\\"shortname\\\":\\\":woman_shrugging:\\\",\\\"shortname_alternates\\\":[],\\\"keywords\\\":[\\\"doubt\\\",\\\"ignorance\\\",\\\"indifference\\\",\\\"shrug\\\",\\\"woman\\\"],\\\"unicode_output\\\":\\\"1f937-200d-2640-fe0f\\\"},\\\"1f937-2642\\\":{\\\"name\\\":\\\"man shrugging\\\",\\\"shortname\\\":\\\":man_shrugging:\\\",\\\"shortname_alternates\\\":[],\\\"keywords\\\":[\\\"doubt\\\",\\\"ignorance\\\",\\\"indifference\\\",\\\"man\\\",\\\"shrug\\\"],\\\"unicode_output\\\":\\\"1f937-200d-2642-fe0f\\\"},\\\"1f64d\\\":{\\\"name\\\":\\\"person frowning\\\",\\\"shortname\\\":\\\":person_frowning:\\\",\\\"shortname_alternates\\\":[],\\\"keywords\\\":[\\\"frown\\\",\\\"gesture\\\"],\\\"unicode_output\\\":\\\"1f64d\\\"},\\\"1f483\\\":{\\\"name\\\":\\\"woman dancing\\\",\\\"shortname\\\":\\\":dancer:\\\",\\\"shortname_alternates\\\":[],\\\"keywords\\\":[\\\"dancing\\\",\\\"woman\\\"],\\\"unicode_output\\\":\\\"1f483\\\"},\\\"1f57a\\\":{\\\"name\\\":\\\"man dancing\\\",\\\"shortname\\\":\\\":man_dancing:\\\",\\\"shortname_alternates\\\":[\\\":male_dancer:\\\"],\\\"keywords\\\":[\\\"dance\\\",\\\"man\\\"],\\\"unicode_output\\\":\\\"1f57a\\\"},\\\"1f46b\\\":{\\\"name\\\":\\\"man and woman holding hands\\\",\\\"shortname\\\":\\\":couple:\\\",\\\"shortname_alternates\\\":[],\\\"keywords\\\":[\\\"couple\\\",\\\"hand\\\",\\\"hold\\\",\\\"man\\\",\\\"woman\\\"],\\\"unicode_output\\\":\\\"1f46b\\\"},\\\"1f46d\\\":{\\\"name\\\":\\\"two women holding hands\\\",\\\"shortname\\\":\\\":two_women_holding_hands:\\\",\\\"shortname_alternates\\\":[],\\\"keywords\\\":[\\\"couple\\\",\\\"hand\\\",\\\"hold\\\",\\\"woman\\\"],\\\"unicode_output\\\":\\\"1f46d\\\"},\\\"1f46c\\\":{\\\"name\\\":\\\"two men holding hands\\\",\\\"shortname\\\":\\\":two_men_holding_hands:\\\",\\\"shortname_alternates\\\":[],\\\"keywords\\\":[\\\"Gemini\\\",\\\"couple\\\",\\\"hand\\\",\\\"hold\\\",\\\"man\\\",\\\"twins\\\",\\\"zodiac\\\"],\\\"unicode_output\\\":\\\"1f46c\\\"},\\\"1f491\\\":{\\\"name\\\":\\\"couple with heart\\\",\\\"shortname\\\":\\\":couple_with_heart:\\\",\\\"shortname_alternates\\\":[],\\\"keywords\\\":[\\\"couple\\\",\\\"love\\\"],\\\"unicode_output\\\":\\\"1f491\\\"},\\\"1f46a\\\":{\\\"name\\\":\\\"family\\\",\\\"shortname\\\":\\\":family:\\\",\\\"shortname_alternates\\\":[],\\\"keywords\\\":[\\\"family\\\"],\\\"unicode_output\\\":\\\"1f46a\\\"},\\\"1f469-1f466\\\":{\\\"name\\\":\\\"family: woman, boy\\\",\\\"shortname\\\":\\\":family_woman_boy:\\\",\\\"shortname_alternates\\\":[],\\\"keywords\\\":[\\\"boy\\\",\\\"family\\\",\\\"woman\\\"],\\\"unicode_output\\\":\\\"1f469-200d-1f466\\\"},\\\"1f469-1f467\\\":{\\\"name\\\":\\\"family: woman, girl\\\",\\\"shortname\\\":\\\":family_woman_girl:\\\",\\\"shortname_alternates\\\":[],\\\"keywords\\\":[\\\"family\\\",\\\"girl\\\",\\\"woman\\\"],\\\"unicode_output\\\":\\\"1f469-200d-1f467\\\"},\\\"1f469-1f467-1f466\\\":{\\\"name\\\":\\\"family: woman, girl, boy\\\",\\\"shortname\\\":\\\":family_woman_girl_boy:\\\",\\\"shortname_alternates\\\":[],\\\"keywords\\\":[\\\"boy\\\",\\\"family\\\",\\\"girl\\\",\\\"woman\\\"],\\\"unicode_output\\\":\\\"1f469-200d-1f467-200d-1f466\\\"},\\\"1f469-1f466-1f466\\\":{\\\"name\\\":\\\"family: woman, boy, boy\\\",\\\"shortname\\\":\\\":family_woman_boy_boy:\\\",\\\"shortname_alternates\\\":[],\\\"keywords\\\":[\\\"boy\\\",\\\"family\\\",\\\"woman\\\"],\\\"unicode_output\\\":\\\"1f469-200d-1f466-200d-1f466\\\"},\\\"1f469-1f467-1f467\\\":{\\\"name\\\":\\\"family: woman, girl, girl\\\",\\\"shortname\\\":\\\":family_woman_girl_girl:\\\",\\\"shortname_alternates\\\":[],\\\"keywords\\\":[\\\"family\\\",\\\"girl\\\",\\\"woman\\\"],\\\"unicode_output\\\":\\\"1f469-200d-1f467-200d-1f467\\\"},\\\"1f468-1f466\\\":{\\\"name\\\":\\\"family: man, boy\\\",\\\"shortname\\\":\\\":family_man_boy:\\\",\\\"shortname_alternates\\\":[],\\\"keywords\\\":[\\\"boy\\\",\\\"family\\\",\\\"man\\\"],\\\"unicode_output\\\":\\\"1f468-200d-1f466\\\"},\\\"1f468-1f467\\\":{\\\"name\\\":\\\"family: man, girl\\\",\\\"shortname\\\":\\\":family_man_girl:\\\",\\\"shortname_alternates\\\":[],\\\"keywords\\\":[\\\"family\\\",\\\"girl\\\",\\\"man\\\"],\\\"unicode_output\\\":\\\"1f468-200d-1f467\\\"},\\\"1f468-1f467-1f466\\\":{\\\"name\\\":\\\"family: man, girl, boy\\\",\\\"shortname\\\":\\\":family_man_girl_boy:\\\",\\\"shortname_alternates\\\":[],\\\"keywords\\\":[\\\"boy\\\",\\\"family\\\",\\\"girl\\\",\\\"man\\\"],\\\"unicode_output\\\":\\\"1f468-200d-1f467-200d-1f466\\\"},\\\"1f468-1f466-1f466\\\":{\\\"name\\\":\\\"family: man, boy, boy\\\",\\\"shortname\\\":\\\":family_man_boy_boy:\\\",\\\"shortname_alternates\\\":[],\\\"keywords\\\":[\\\"boy\\\",\\\"family\\\",\\\"man\\\"],\\\"unicode_output\\\":\\\"1f468-200d-1f466-200d-1f466\\\"},\\\"1f468-1f467-1f467\\\":{\\\"name\\\":\\\"family: man, girl, girl\\\",\\\"shortname\\\":\\\":family_man_girl_girl:\\\",\\\"shortname_alternates\\\":[],\\\"keywords\\\":[\\\"family\\\",\\\"girl\\\",\\\"man\\\"],\\\"unicode_output\\\":\\\"1f468-200d-1f467-200d-1f467\\\"},\\\"1f45a\\\":{\\\"name\\\":\\\"woman’s clothes\\\",\\\"shortname\\\":\\\":womans_clothes:\\\",\\\"shortname_alternates\\\":[],\\\"keywords\\\":[\\\"clothing\\\",\\\"woman\\\"],\\\"unicode_output\\\":\\\"1f45a\\\"},\\\"1f455\\\":{\\\"name\\\":\\\"t-shirt\\\",\\\"shortname\\\":\\\":shirt:\\\",\\\"shortname_alternates\\\":[],\\\"keywords\\\":[\\\"clothing\\\",\\\"shirt\\\",\\\"tshirt\\\"],\\\"unicode_output\\\":\\\"1f455\\\"},\\\"1f456\\\":{\\\"name\\\":\\\"jeans\\\",\\\"shortname\\\":\\\":jeans:\\\",\\\"shortname_alternates\\\":[],\\\"keywords\\\":[\\\"clothing\\\",\\\"pants\\\",\\\"trousers\\\"],\\\"unicode_output\\\":\\\"1f456\\\"},\\\"1f454\\\":{\\\"name\\\":\\\"necktie\\\",\\\"shortname\\\":\\\":necktie:\\\",\\\"shortname_alternates\\\":[],\\\"keywords\\\":[\\\"clothing\\\"],\\\"unicode_output\\\":\\\"1f454\\\"},\\\"1f457\\\":{\\\"name\\\":\\\"dress\\\",\\\"shortname\\\":\\\":dress:\\\",\\\"shortname_alternates\\\":[],\\\"keywords\\\":[\\\"clothing\\\"],\\\"unicode_output\\\":\\\"1f457\\\"},\\\"1f459\\\":{\\\"name\\\":\\\"bikini\\\",\\\"shortname\\\":\\\":bikini:\\\",\\\"shortname_alternates\\\":[],\\\"keywords\\\":[\\\"clothing\\\",\\\"swim\\\"],\\\"unicode_output\\\":\\\"1f459\\\"},\\\"1f458\\\":{\\\"name\\\":\\\"kimono\\\",\\\"shortname\\\":\\\":kimono:\\\",\\\"shortname_alternates\\\":[],\\\"keywords\\\":[\\\"clothing\\\"],\\\"unicode_output\\\":\\\"1f458\\\"},\\\"1f460\\\":{\\\"name\\\":\\\"high-heeled shoe\\\",\\\"shortname\\\":\\\":high_heel:\\\",\\\"shortname_alternates\\\":[],\\\"keywords\\\":[\\\"clothing\\\",\\\"heel\\\",\\\"shoe\\\",\\\"woman\\\"],\\\"unicode_output\\\":\\\"1f460\\\"},\\\"1f461\\\":{\\\"name\\\":\\\"woman’s sandal\\\",\\\"shortname\\\":\\\":sandal:\\\",\\\"shortname_alternates\\\":[],\\\"keywords\\\":[\\\"clothing\\\",\\\"sandal\\\",\\\"shoe\\\",\\\"woman\\\"],\\\"unicode_output\\\":\\\"1f461\\\"},\\\"1f462\\\":{\\\"name\\\":\\\"woman’s boot\\\",\\\"shortname\\\":\\\":boot:\\\",\\\"shortname_alternates\\\":[],\\\"keywords\\\":[\\\"boot\\\",\\\"clothing\\\",\\\"shoe\\\",\\\"woman\\\"],\\\"unicode_output\\\":\\\"1f462\\\"},\\\"1f45e\\\":{\\\"name\\\":\\\"man’s shoe\\\",\\\"shortname\\\":\\\":mans_shoe:\\\",\\\"shortname_alternates\\\":[],\\\"keywords\\\":[\\\"clothing\\\",\\\"man\\\",\\\"shoe\\\"],\\\"unicode_output\\\":\\\"1f45e\\\"},\\\"1f45f\\\":{\\\"name\\\":\\\"running shoe\\\",\\\"shortname\\\":\\\":athletic_shoe:\\\",\\\"shortname_alternates\\\":[],\\\"keywords\\\":[\\\"athletic\\\",\\\"clothing\\\",\\\"shoe\\\",\\\"sneaker\\\"],\\\"unicode_output\\\":\\\"1f45f\\\"},\\\"1f452\\\":{\\\"name\\\":\\\"woman’s hat\\\",\\\"shortname\\\":\\\":womans_hat:\\\",\\\"shortname_alternates\\\":[],\\\"keywords\\\":[\\\"clothing\\\",\\\"hat\\\",\\\"woman\\\"],\\\"unicode_output\\\":\\\"1f452\\\"},\\\"1f3a9\\\":{\\\"name\\\":\\\"top hat\\\",\\\"shortname\\\":\\\":tophat:\\\",\\\"shortname_alternates\\\":[],\\\"keywords\\\":[\\\"clothing\\\",\\\"hat\\\",\\\"top\\\",\\\"tophat\\\"],\\\"unicode_output\\\":\\\"1f3a9\\\"},\\\"1f393\\\":{\\\"name\\\":\\\"graduation cap\\\",\\\"shortname\\\":\\\":mortar_board:\\\",\\\"shortname_alternates\\\":[],\\\"keywords\\\":[\\\"cap\\\",\\\"celebration\\\",\\\"clothing\\\",\\\"graduation\\\",\\\"hat\\\"],\\\"unicode_output\\\":\\\"1f393\\\"},\\\"1f451\\\":{\\\"name\\\":\\\"crown\\\",\\\"shortname\\\":\\\":crown:\\\",\\\"shortname_alternates\\\":[],\\\"keywords\\\":[\\\"clothing\\\",\\\"king\\\",\\\"queen\\\"],\\\"unicode_output\\\":\\\"1f451\\\"},\\\"1f392\\\":{\\\"name\\\":\\\"school backpack\\\",\\\"shortname\\\":\\\":school_satchel:\\\",\\\"shortname_alternates\\\":[],\\\"keywords\\\":[\\\"bag\\\",\\\"satchel\\\",\\\"school\\\"],\\\"unicode_output\\\":\\\"1f392\\\"},\\\"1f45d\\\":{\\\"name\\\":\\\"clutch bag\\\",\\\"shortname\\\":\\\":pouch:\\\",\\\"shortname_alternates\\\":[],\\\"keywords\\\":[\\\"bag\\\",\\\"clothing\\\",\\\"pouch\\\"],\\\"unicode_output\\\":\\\"1f45d\\\"},\\\"1f45b\\\":{\\\"name\\\":\\\"purse\\\",\\\"shortname\\\":\\\":purse:\\\",\\\"shortname_alternates\\\":[],\\\"keywords\\\":[\\\"clothing\\\",\\\"coin\\\"],\\\"unicode_output\\\":\\\"1f45b\\\"},\\\"1f45c\\\":{\\\"name\\\":\\\"handbag\\\",\\\"shortname\\\":\\\":handbag:\\\",\\\"shortname_alternates\\\":[],\\\"keywords\\\":[\\\"bag\\\",\\\"clothing\\\",\\\"purse\\\"],\\\"unicode_output\\\":\\\"1f45c\\\"},\\\"1f4bc\\\":{\\\"name\\\":\\\"briefcase\\\",\\\"shortname\\\":\\\":briefcase:\\\",\\\"shortname_alternates\\\":[],\\\"keywords\\\":[\\\"briefcase\\\"],\\\"unicode_output\\\":\\\"1f4bc\\\"},\\\"1f453\\\":{\\\"name\\\":\\\"glasses\\\",\\\"shortname\\\":\\\":eyeglasses:\\\",\\\"shortname_alternates\\\":[],\\\"keywords\\\":[\\\"clothing\\\",\\\"eye\\\",\\\"eyeglasses\\\",\\\"eyewear\\\"],\\\"unicode_output\\\":\\\"1f453\\\"},\\\"1f576\\\":{\\\"name\\\":\\\"sunglasses\\\",\\\"shortname\\\":\\\":dark_sunglasses:\\\",\\\"shortname_alternates\\\":[],\\\"keywords\\\":[\\\"dark\\\",\\\"eye\\\",\\\"eyewear\\\",\\\"glasses\\\"],\\\"unicode_output\\\":\\\"1f576-fe0f\\\"},\\\"1f302\\\":{\\\"name\\\":\\\"closed umbrella\\\",\\\"shortname\\\":\\\":closed_umbrella:\\\",\\\"shortname_alternates\\\":[],\\\"keywords\\\":[\\\"clothing\\\",\\\"rain\\\",\\\"umbrella\\\"],\\\"unicode_output\\\":\\\"1f302\\\"},\\\"1f436\\\":{\\\"name\\\":\\\"dog face\\\",\\\"shortname\\\":\\\":dog:\\\",\\\"shortname_alternates\\\":[],\\\"keywords\\\":[\\\"dog\\\",\\\"face\\\",\\\"pet\\\"],\\\"unicode_output\\\":\\\"1f436\\\"},\\\"1f431\\\":{\\\"name\\\":\\\"cat face\\\",\\\"shortname\\\":\\\":cat:\\\",\\\"shortname_alternates\\\":[],\\\"keywords\\\":[\\\"cat\\\",\\\"face\\\",\\\"pet\\\"],\\\"unicode_output\\\":\\\"1f431\\\"},\\\"1f42d\\\":{\\\"name\\\":\\\"mouse face\\\",\\\"shortname\\\":\\\":mouse:\\\",\\\"shortname_alternates\\\":[],\\\"keywords\\\":[\\\"face\\\",\\\"mouse\\\"],\\\"unicode_output\\\":\\\"1f42d\\\"},\\\"1f439\\\":{\\\"name\\\":\\\"hamster face\\\",\\\"shortname\\\":\\\":hamster:\\\",\\\"shortname_alternates\\\":[],\\\"keywords\\\":[\\\"face\\\",\\\"hamster\\\",\\\"pet\\\"],\\\"unicode_output\\\":\\\"1f439\\\"},\\\"1f430\\\":{\\\"name\\\":\\\"rabbit face\\\",\\\"shortname\\\":\\\":rabbit:\\\",\\\"shortname_alternates\\\":[],\\\"keywords\\\":[\\\"bunny\\\",\\\"face\\\",\\\"pet\\\",\\\"rabbit\\\"],\\\"unicode_output\\\":\\\"1f430\\\"},\\\"1f43b\\\":{\\\"name\\\":\\\"bear face\\\",\\\"shortname\\\":\\\":bear:\\\",\\\"shortname_alternates\\\":[],\\\"keywords\\\":[\\\"bear\\\",\\\"face\\\"],\\\"unicode_output\\\":\\\"1f43b\\\"},\\\"1f43c\\\":{\\\"name\\\":\\\"panda face\\\",\\\"shortname\\\":\\\":panda_face:\\\",\\\"shortname_alternates\\\":[],\\\"keywords\\\":[\\\"face\\\",\\\"panda\\\"],\\\"unicode_output\\\":\\\"1f43c\\\"},\\\"1f428\\\":{\\\"name\\\":\\\"koala\\\",\\\"shortname\\\":\\\":koala:\\\",\\\"shortname_alternates\\\":[],\\\"keywords\\\":[\\\"bear\\\"],\\\"unicode_output\\\":\\\"1f428\\\"},\\\"1f42f\\\":{\\\"name\\\":\\\"tiger face\\\",\\\"shortname\\\":\\\":tiger:\\\",\\\"shortname_alternates\\\":[],\\\"keywords\\\":[\\\"face\\\",\\\"tiger\\\"],\\\"unicode_output\\\":\\\"1f42f\\\"},\\\"1f42e\\\":{\\\"name\\\":\\\"cow face\\\",\\\"shortname\\\":\\\":cow:\\\",\\\"shortname_alternates\\\":[],\\\"keywords\\\":[\\\"cow\\\",\\\"face\\\"],\\\"unicode_output\\\":\\\"1f42e\\\"},\\\"1f437\\\":{\\\"name\\\":\\\"pig face\\\",\\\"shortname\\\":\\\":pig:\\\",\\\"shortname_alternates\\\":[],\\\"keywords\\\":[\\\"face\\\",\\\"pig\\\"],\\\"unicode_output\\\":\\\"1f437\\\"},\\\"1f43d\\\":{\\\"name\\\":\\\"pig nose\\\",\\\"shortname\\\":\\\":pig_nose:\\\",\\\"shortname_alternates\\\":[],\\\"keywords\\\":[\\\"face\\\",\\\"nose\\\",\\\"pig\\\"],\\\"unicode_output\\\":\\\"1f43d\\\"},\\\"1f438\\\":{\\\"name\\\":\\\"frog face\\\",\\\"shortname\\\":\\\":frog:\\\",\\\"shortname_alternates\\\":[],\\\"keywords\\\":[\\\"face\\\",\\\"frog\\\"],\\\"unicode_output\\\":\\\"1f438\\\"},\\\"1f435\\\":{\\\"name\\\":\\\"monkey face\\\",\\\"shortname\\\":\\\":monkey_face:\\\",\\\"shortname_alternates\\\":[],\\\"keywords\\\":[\\\"face\\\",\\\"monkey\\\"],\\\"unicode_output\\\":\\\"1f435\\\"},\\\"1f648\\\":{\\\"name\\\":\\\"see-no-evil monkey\\\",\\\"shortname\\\":\\\":see_no_evil:\\\",\\\"shortname_alternates\\\":[],\\\"keywords\\\":[\\\"evil\\\",\\\"face\\\",\\\"forbidden\\\",\\\"gesture\\\",\\\"monkey\\\",\\\"no\\\",\\\"not\\\",\\\"prohibited\\\",\\\"see\\\"],\\\"unicode_output\\\":\\\"1f648\\\"},\\\"1f649\\\":{\\\"name\\\":\\\"hear-no-evil monkey\\\",\\\"shortname\\\":\\\":hear_no_evil:\\\",\\\"shortname_alternates\\\":[],\\\"keywords\\\":[\\\"evil\\\",\\\"face\\\",\\\"forbidden\\\",\\\"gesture\\\",\\\"hear\\\",\\\"monkey\\\",\\\"no\\\",\\\"not\\\",\\\"prohibited\\\"],\\\"unicode_output\\\":\\\"1f649\\\"},\\\"1f64a\\\":{\\\"name\\\":\\\"speak-no-evil monkey\\\",\\\"shortname\\\":\\\":speak_no_evil:\\\",\\\"shortname_alternates\\\":[],\\\"keywords\\\":[\\\"evil\\\",\\\"face\\\",\\\"forbidden\\\",\\\"gesture\\\",\\\"monkey\\\",\\\"no\\\",\\\"not\\\",\\\"prohibited\\\",\\\"speak\\\"],\\\"unicode_output\\\":\\\"1f64a\\\"},\\\"1f412\\\":{\\\"name\\\":\\\"monkey\\\",\\\"shortname\\\":\\\":monkey:\\\",\\\"shortname_alternates\\\":[],\\\"keywords\\\":[\\\"monkey\\\"],\\\"unicode_output\\\":\\\"1f412\\\"},\\\"1f414\\\":{\\\"name\\\":\\\"chicken\\\",\\\"shortname\\\":\\\":chicken:\\\",\\\"shortname_alternates\\\":[],\\\"keywords\\\":[\\\"bird\\\",\\\"chicken\\\"],\\\"unicode_output\\\":\\\"1f414\\\"},\\\"1f427\\\":{\\\"name\\\":\\\"penguin\\\",\\\"shortname\\\":\\\":penguin:\\\",\\\"shortname_alternates\\\":[],\\\"keywords\\\":[\\\"bird\\\",\\\"penguin\\\"],\\\"unicode_output\\\":\\\"1f427\\\"},\\\"1f426\\\":{\\\"name\\\":\\\"bird\\\",\\\"shortname\\\":\\\":bird:\\\",\\\"shortname_alternates\\\":[],\\\"keywords\\\":[\\\"bird\\\"],\\\"unicode_output\\\":\\\"1f426\\\"},\\\"1f424\\\":{\\\"name\\\":\\\"baby chick\\\",\\\"shortname\\\":\\\":baby_chick:\\\",\\\"shortname_alternates\\\":[],\\\"keywords\\\":[\\\"baby\\\",\\\"bird\\\",\\\"chick\\\"],\\\"unicode_output\\\":\\\"1f424\\\"},\\\"1f423\\\":{\\\"name\\\":\\\"hatching chick\\\",\\\"shortname\\\":\\\":hatching_chick:\\\",\\\"shortname_alternates\\\":[],\\\"keywords\\\":[\\\"baby\\\",\\\"bird\\\",\\\"chick\\\",\\\"hatching\\\"],\\\"unicode_output\\\":\\\"1f423\\\"},\\\"1f425\\\":{\\\"name\\\":\\\"front-facing baby chick\\\",\\\"shortname\\\":\\\":hatched_chick:\\\",\\\"shortname_alternates\\\":[],\\\"keywords\\\":[\\\"baby\\\",\\\"bird\\\",\\\"chick\\\"],\\\"unicode_output\\\":\\\"1f425\\\"},\\\"1f986\\\":{\\\"name\\\":\\\"duck\\\",\\\"shortname\\\":\\\":duck:\\\",\\\"shortname_alternates\\\":[],\\\"keywords\\\":[\\\"bird\\\",\\\"duck\\\"],\\\"unicode_output\\\":\\\"1f986\\\"},\\\"1f985\\\":{\\\"name\\\":\\\"eagle\\\",\\\"shortname\\\":\\\":eagle:\\\",\\\"shortname_alternates\\\":[],\\\"keywords\\\":[\\\"bird\\\",\\\"eagle\\\"],\\\"unicode_output\\\":\\\"1f985\\\"},\\\"1f989\\\":{\\\"name\\\":\\\"owl\\\",\\\"shortname\\\":\\\":owl:\\\",\\\"shortname_alternates\\\":[],\\\"keywords\\\":[\\\"bird\\\",\\\"owl\\\",\\\"wise\\\"],\\\"unicode_output\\\":\\\"1f989\\\"},\\\"1f987\\\":{\\\"name\\\":\\\"bat\\\",\\\"shortname\\\":\\\":bat:\\\",\\\"shortname_alternates\\\":[],\\\"keywords\\\":[\\\"bat\\\",\\\"vampire\\\"],\\\"unicode_output\\\":\\\"1f987\\\"},\\\"1f43a\\\":{\\\"name\\\":\\\"wolf face\\\",\\\"shortname\\\":\\\":wolf:\\\",\\\"shortname_alternates\\\":[],\\\"keywords\\\":[\\\"face\\\",\\\"wolf\\\"],\\\"unicode_output\\\":\\\"1f43a\\\"},\\\"1f417\\\":{\\\"name\\\":\\\"boar\\\",\\\"shortname\\\":\\\":boar:\\\",\\\"shortname_alternates\\\":[],\\\"keywords\\\":[\\\"pig\\\"],\\\"unicode_output\\\":\\\"1f417\\\"},\\\"1f434\\\":{\\\"name\\\":\\\"horse face\\\",\\\"shortname\\\":\\\":horse:\\\",\\\"shortname_alternates\\\":[],\\\"keywords\\\":[\\\"face\\\",\\\"horse\\\"],\\\"unicode_output\\\":\\\"1f434\\\"},\\\"1f984\\\":{\\\"name\\\":\\\"unicorn face\\\",\\\"shortname\\\":\\\":unicorn:\\\",\\\"shortname_alternates\\\":[\\\":unicorn_face:\\\"],\\\"keywords\\\":[\\\"face\\\",\\\"unicorn\\\"],\\\"unicode_output\\\":\\\"1f984\\\"},\\\"1f41d\\\":{\\\"name\\\":\\\"honeybee\\\",\\\"shortname\\\":\\\":bee:\\\",\\\"shortname_alternates\\\":[],\\\"keywords\\\":[\\\"bee\\\",\\\"insect\\\"],\\\"unicode_output\\\":\\\"1f41d\\\"},\\\"1f41b\\\":{\\\"name\\\":\\\"bug\\\",\\\"shortname\\\":\\\":bug:\\\",\\\"shortname_alternates\\\":[],\\\"keywords\\\":[\\\"insect\\\"],\\\"unicode_output\\\":\\\"1f41b\\\"},\\\"1f98b\\\":{\\\"name\\\":\\\"butterfly\\\",\\\"shortname\\\":\\\":butterfly:\\\",\\\"shortname_alternates\\\":[],\\\"keywords\\\":[\\\"butterfly\\\",\\\"insect\\\",\\\"pretty\\\"],\\\"unicode_output\\\":\\\"1f98b\\\"},\\\"1f40c\\\":{\\\"name\\\":\\\"snail\\\",\\\"shortname\\\":\\\":snail:\\\",\\\"shortname_alternates\\\":[],\\\"keywords\\\":[\\\"snail\\\"],\\\"unicode_output\\\":\\\"1f40c\\\"},\\\"1f41a\\\":{\\\"name\\\":\\\"spiral shell\\\",\\\"shortname\\\":\\\":shell:\\\",\\\"shortname_alternates\\\":[],\\\"keywords\\\":[\\\"shell\\\",\\\"spiral\\\"],\\\"unicode_output\\\":\\\"1f41a\\\"},\\\"1f41e\\\":{\\\"name\\\":\\\"lady beetle\\\",\\\"shortname\\\":\\\":beetle:\\\",\\\"shortname_alternates\\\":[],\\\"keywords\\\":[\\\"beetle\\\",\\\"insect\\\",\\\"ladybird\\\",\\\"ladybug\\\"],\\\"unicode_output\\\":\\\"1f41e\\\"},\\\"1f41c\\\":{\\\"name\\\":\\\"ant\\\",\\\"shortname\\\":\\\":ant:\\\",\\\"shortname_alternates\\\":[],\\\"keywords\\\":[\\\"insect\\\"],\\\"unicode_output\\\":\\\"1f41c\\\"},\\\"1f577\\\":{\\\"name\\\":\\\"spider\\\",\\\"shortname\\\":\\\":spider:\\\",\\\"shortname_alternates\\\":[],\\\"keywords\\\":[\\\"insect\\\"],\\\"unicode_output\\\":\\\"1f577-fe0f\\\"},\\\"1f578\\\":{\\\"name\\\":\\\"spider web\\\",\\\"shortname\\\":\\\":spider_web:\\\",\\\"shortname_alternates\\\":[],\\\"keywords\\\":[\\\"spider\\\",\\\"web\\\"],\\\"unicode_output\\\":\\\"1f578-fe0f\\\"},\\\"1f422\\\":{\\\"name\\\":\\\"turtle\\\",\\\"shortname\\\":\\\":turtle:\\\",\\\"shortname_alternates\\\":[],\\\"keywords\\\":[\\\"terrapin\\\",\\\"tortoise\\\",\\\"turtle\\\"],\\\"unicode_output\\\":\\\"1f422\\\"},\\\"1f40d\\\":{\\\"name\\\":\\\"snake\\\",\\\"shortname\\\":\\\":snake:\\\",\\\"shortname_alternates\\\":[],\\\"keywords\\\":[\\\"Ophiuchus\\\",\\\"bearer\\\",\\\"serpent\\\",\\\"zodiac\\\"],\\\"unicode_output\\\":\\\"1f40d\\\"},\\\"1f98e\\\":{\\\"name\\\":\\\"lizard\\\",\\\"shortname\\\":\\\":lizard:\\\",\\\"shortname_alternates\\\":[],\\\"keywords\\\":[\\\"lizard\\\",\\\"reptile\\\"],\\\"unicode_output\\\":\\\"1f98e\\\"},\\\"1f982\\\":{\\\"name\\\":\\\"scorpion\\\",\\\"shortname\\\":\\\":scorpion:\\\",\\\"shortname_alternates\\\":[],\\\"keywords\\\":[\\\"Scorpius\\\",\\\"scorpio\\\",\\\"zodiac\\\"],\\\"unicode_output\\\":\\\"1f982\\\"},\\\"1f980\\\":{\\\"name\\\":\\\"crab\\\",\\\"shortname\\\":\\\":crab:\\\",\\\"shortname_alternates\\\":[],\\\"keywords\\\":[\\\"Cancer\\\",\\\"zodiac\\\"],\\\"unicode_output\\\":\\\"1f980\\\"},\\\"1f991\\\":{\\\"name\\\":\\\"squid\\\",\\\"shortname\\\":\\\":squid:\\\",\\\"shortname_alternates\\\":[],\\\"keywords\\\":[\\\"food\\\",\\\"molusc\\\",\\\"squid\\\"],\\\"unicode_output\\\":\\\"1f991\\\"},\\\"1f419\\\":{\\\"name\\\":\\\"octopus\\\",\\\"shortname\\\":\\\":octopus:\\\",\\\"shortname_alternates\\\":[],\\\"keywords\\\":[\\\"octopus\\\"],\\\"unicode_output\\\":\\\"1f419\\\"},\\\"1f990\\\":{\\\"name\\\":\\\"shrimp\\\",\\\"shortname\\\":\\\":shrimp:\\\",\\\"shortname_alternates\\\":[],\\\"keywords\\\":[\\\"food\\\",\\\"shellfish\\\",\\\"shrimp\\\",\\\"small\\\"],\\\"unicode_output\\\":\\\"1f990\\\"},\\\"1f420\\\":{\\\"name\\\":\\\"tropical fish\\\",\\\"shortname\\\":\\\":tropical_fish:\\\",\\\"shortname_alternates\\\":[],\\\"keywords\\\":[\\\"fish\\\",\\\"tropical\\\"],\\\"unicode_output\\\":\\\"1f420\\\"},\\\"1f41f\\\":{\\\"name\\\":\\\"fish\\\",\\\"shortname\\\":\\\":fish:\\\",\\\"shortname_alternates\\\":[],\\\"keywords\\\":[\\\"Pisces\\\",\\\"zodiac\\\"],\\\"unicode_output\\\":\\\"1f41f\\\"},\\\"1f421\\\":{\\\"name\\\":\\\"blowfish\\\",\\\"shortname\\\":\\\":blowfish:\\\",\\\"shortname_alternates\\\":[],\\\"keywords\\\":[\\\"fish\\\"],\\\"unicode_output\\\":\\\"1f421\\\"},\\\"1f42c\\\":{\\\"name\\\":\\\"dolphin\\\",\\\"shortname\\\":\\\":dolphin:\\\",\\\"shortname_alternates\\\":[],\\\"keywords\\\":[\\\"flipper\\\"],\\\"unicode_output\\\":\\\"1f42c\\\"},\\\"1f988\\\":{\\\"name\\\":\\\"shark\\\",\\\"shortname\\\":\\\":shark:\\\",\\\"shortname_alternates\\\":[],\\\"keywords\\\":[\\\"fish\\\",\\\"shark\\\"],\\\"unicode_output\\\":\\\"1f988\\\"},\\\"1f433\\\":{\\\"name\\\":\\\"spouting whale\\\",\\\"shortname\\\":\\\":whale:\\\",\\\"shortname_alternates\\\":[],\\\"keywords\\\":[\\\"face\\\",\\\"spouting\\\",\\\"whale\\\"],\\\"unicode_output\\\":\\\"1f433\\\"},\\\"1f40b\\\":{\\\"name\\\":\\\"whale\\\",\\\"shortname\\\":\\\":whale2:\\\",\\\"shortname_alternates\\\":[],\\\"keywords\\\":[\\\"whale\\\"],\\\"unicode_output\\\":\\\"1f40b\\\"},\\\"1f40a\\\":{\\\"name\\\":\\\"crocodile\\\",\\\"shortname\\\":\\\":crocodile:\\\",\\\"shortname_alternates\\\":[],\\\"keywords\\\":[\\\"crocodile\\\"],\\\"unicode_output\\\":\\\"1f40a\\\"},\\\"1f406\\\":{\\\"name\\\":\\\"leopard\\\",\\\"shortname\\\":\\\":leopard:\\\",\\\"shortname_alternates\\\":[],\\\"keywords\\\":[\\\"leopard\\\"],\\\"unicode_output\\\":\\\"1f406\\\"},\\\"1f405\\\":{\\\"name\\\":\\\"tiger\\\",\\\"shortname\\\":\\\":tiger2:\\\",\\\"shortname_alternates\\\":[],\\\"keywords\\\":[\\\"tiger\\\"],\\\"unicode_output\\\":\\\"1f405\\\"},\\\"1f403\\\":{\\\"name\\\":\\\"water buffalo\\\",\\\"shortname\\\":\\\":water_buffalo:\\\",\\\"shortname_alternates\\\":[],\\\"keywords\\\":[\\\"buffalo\\\",\\\"water\\\"],\\\"unicode_output\\\":\\\"1f403\\\"},\\\"1f402\\\":{\\\"name\\\":\\\"ox\\\",\\\"shortname\\\":\\\":ox:\\\",\\\"shortname_alternates\\\":[],\\\"keywords\\\":[\\\"Taurus\\\",\\\"bull\\\",\\\"zodiac\\\"],\\\"unicode_output\\\":\\\"1f402\\\"},\\\"1f404\\\":{\\\"name\\\":\\\"cow\\\",\\\"shortname\\\":\\\":cow2:\\\",\\\"shortname_alternates\\\":[],\\\"keywords\\\":[\\\"cow\\\"],\\\"unicode_output\\\":\\\"1f404\\\"},\\\"1f98c\\\":{\\\"name\\\":\\\"deer\\\",\\\"shortname\\\":\\\":deer:\\\",\\\"shortname_alternates\\\":[],\\\"keywords\\\":[\\\"deer\\\"],\\\"unicode_output\\\":\\\"1f98c\\\"},\\\"1f42a\\\":{\\\"name\\\":\\\"camel\\\",\\\"shortname\\\":\\\":dromedary_camel:\\\",\\\"shortname_alternates\\\":[],\\\"keywords\\\":[\\\"dromedary\\\",\\\"hump\\\"],\\\"unicode_output\\\":\\\"1f42a\\\"},\\\"1f42b\\\":{\\\"name\\\":\\\"two-hump camel\\\",\\\"shortname\\\":\\\":camel:\\\",\\\"shortname_alternates\\\":[],\\\"keywords\\\":[\\\"bactrian\\\",\\\"camel\\\",\\\"hump\\\"],\\\"unicode_output\\\":\\\"1f42b\\\"},\\\"1f418\\\":{\\\"name\\\":\\\"elephant\\\",\\\"shortname\\\":\\\":elephant:\\\",\\\"shortname_alternates\\\":[],\\\"keywords\\\":[\\\"elephant\\\"],\\\"unicode_output\\\":\\\"1f418\\\"},\\\"1f98d\\\":{\\\"name\\\":\\\"gorilla\\\",\\\"shortname\\\":\\\":gorilla:\\\",\\\"shortname_alternates\\\":[],\\\"keywords\\\":[\\\"gorilla\\\"],\\\"unicode_output\\\":\\\"1f98d\\\"},\\\"1f40e\\\":{\\\"name\\\":\\\"horse\\\",\\\"shortname\\\":\\\":racehorse:\\\",\\\"shortname_alternates\\\":[],\\\"keywords\\\":[\\\"equestrian\\\",\\\"racehorse\\\",\\\"racing\\\"],\\\"unicode_output\\\":\\\"1f40e\\\"},\\\"1f416\\\":{\\\"name\\\":\\\"pig\\\",\\\"shortname\\\":\\\":pig2:\\\",\\\"shortname_alternates\\\":[],\\\"keywords\\\":[\\\"sow\\\"],\\\"unicode_output\\\":\\\"1f416\\\"},\\\"1f410\\\":{\\\"name\\\":\\\"goat\\\",\\\"shortname\\\":\\\":goat:\\\",\\\"shortname_alternates\\\":[],\\\"keywords\\\":[\\\"Capricorn\\\",\\\"zodiac\\\"],\\\"unicode_output\\\":\\\"1f410\\\"},\\\"1f40f\\\":{\\\"name\\\":\\\"ram\\\",\\\"shortname\\\":\\\":ram:\\\",\\\"shortname_alternates\\\":[],\\\"keywords\\\":[\\\"Aries\\\",\\\"male\\\",\\\"sheep\\\",\\\"zodiac\\\"],\\\"unicode_output\\\":\\\"1f40f\\\"},\\\"1f411\\\":{\\\"name\\\":\\\"ewe\\\",\\\"shortname\\\":\\\":sheep:\\\",\\\"shortname_alternates\\\":[],\\\"keywords\\\":[\\\"female\\\",\\\"sheep\\\"],\\\"unicode_output\\\":\\\"1f411\\\"},\\\"1f415\\\":{\\\"name\\\":\\\"dog\\\",\\\"shortname\\\":\\\":dog2:\\\",\\\"shortname_alternates\\\":[],\\\"keywords\\\":[\\\"pet\\\"],\\\"unicode_output\\\":\\\"1f415\\\"},\\\"1f429\\\":{\\\"name\\\":\\\"poodle\\\",\\\"shortname\\\":\\\":poodle:\\\",\\\"shortname_alternates\\\":[],\\\"keywords\\\":[\\\"dog\\\"],\\\"unicode_output\\\":\\\"1f429\\\"},\\\"1f408\\\":{\\\"name\\\":\\\"cat\\\",\\\"shortname\\\":\\\":cat2:\\\",\\\"shortname_alternates\\\":[],\\\"keywords\\\":[\\\"pet\\\"],\\\"unicode_output\\\":\\\"1f408\\\"},\\\"1f413\\\":{\\\"name\\\":\\\"rooster\\\",\\\"shortname\\\":\\\":rooster:\\\",\\\"shortname_alternates\\\":[],\\\"keywords\\\":[\\\"bird\\\",\\\"rooster\\\"],\\\"unicode_output\\\":\\\"1f413\\\"},\\\"1f983\\\":{\\\"name\\\":\\\"turkey\\\",\\\"shortname\\\":\\\":turkey:\\\",\\\"shortname_alternates\\\":[],\\\"keywords\\\":[\\\"bird\\\",\\\"turkey\\\"],\\\"unicode_output\\\":\\\"1f983\\\"},\\\"1f54a\\\":{\\\"name\\\":\\\"dove\\\",\\\"shortname\\\":\\\":dove:\\\",\\\"shortname_alternates\\\":[\\\":dove_of_peace:\\\"],\\\"keywords\\\":[\\\"bird\\\",\\\"fly\\\",\\\"peace\\\"],\\\"unicode_output\\\":\\\"1f54a-fe0f\\\"},\\\"1f407\\\":{\\\"name\\\":\\\"rabbit\\\",\\\"shortname\\\":\\\":rabbit2:\\\",\\\"shortname_alternates\\\":[],\\\"keywords\\\":[\\\"bunny\\\",\\\"pet\\\"],\\\"unicode_output\\\":\\\"1f407\\\"},\\\"1f401\\\":{\\\"name\\\":\\\"mouse\\\",\\\"shortname\\\":\\\":mouse2:\\\",\\\"shortname_alternates\\\":[],\\\"keywords\\\":[\\\"mouse\\\"],\\\"unicode_output\\\":\\\"1f401\\\"},\\\"1f400\\\":{\\\"name\\\":\\\"rat\\\",\\\"shortname\\\":\\\":rat:\\\",\\\"shortname_alternates\\\":[],\\\"keywords\\\":[\\\"rat\\\"],\\\"unicode_output\\\":\\\"1f400\\\"},\\\"1f43f\\\":{\\\"name\\\":\\\"chipmunk\\\",\\\"shortname\\\":\\\":chipmunk:\\\",\\\"shortname_alternates\\\":[],\\\"keywords\\\":[\\\"chipmunk\\\"],\\\"unicode_output\\\":\\\"1f43f-fe0f\\\"},\\\"1f43e\\\":{\\\"name\\\":\\\"paw prints\\\",\\\"shortname\\\":\\\":feet:\\\",\\\"shortname_alternates\\\":[\\\":paw_prints:\\\"],\\\"keywords\\\":[\\\"feet\\\",\\\"paw\\\",\\\"print\\\"],\\\"unicode_output\\\":\\\"1f43e\\\"},\\\"1f409\\\":{\\\"name\\\":\\\"dragon\\\",\\\"shortname\\\":\\\":dragon:\\\",\\\"shortname_alternates\\\":[],\\\"keywords\\\":[\\\"fairy tale\\\"],\\\"unicode_output\\\":\\\"1f409\\\"},\\\"1f432\\\":{\\\"name\\\":\\\"dragon face\\\",\\\"shortname\\\":\\\":dragon_face:\\\",\\\"shortname_alternates\\\":[],\\\"keywords\\\":[\\\"dragon\\\",\\\"face\\\",\\\"fairy tale\\\"],\\\"unicode_output\\\":\\\"1f432\\\"},\\\"1f335\\\":{\\\"name\\\":\\\"cactus\\\",\\\"shortname\\\":\\\":cactus:\\\",\\\"shortname_alternates\\\":[],\\\"keywords\\\":[\\\"plant\\\"],\\\"unicode_output\\\":\\\"1f335\\\"},\\\"1f384\\\":{\\\"name\\\":\\\"Christmas tree\\\",\\\"shortname\\\":\\\":christmas_tree:\\\",\\\"shortname_alternates\\\":[],\\\"keywords\\\":[\\\"Christmas\\\",\\\"celebration\\\",\\\"tree\\\"],\\\"unicode_output\\\":\\\"1f384\\\"},\\\"1f332\\\":{\\\"name\\\":\\\"evergreen tree\\\",\\\"shortname\\\":\\\":evergreen_tree:\\\",\\\"shortname_alternates\\\":[],\\\"keywords\\\":[\\\"tree\\\"],\\\"unicode_output\\\":\\\"1f332\\\"},\\\"1f333\\\":{\\\"name\\\":\\\"deciduous tree\\\",\\\"shortname\\\":\\\":deciduous_tree:\\\",\\\"shortname_alternates\\\":[],\\\"keywords\\\":[\\\"deciduous\\\",\\\"shedding\\\",\\\"tree\\\"],\\\"unicode_output\\\":\\\"1f333\\\"},\\\"1f334\\\":{\\\"name\\\":\\\"palm tree\\\",\\\"shortname\\\":\\\":palm_tree:\\\",\\\"shortname_alternates\\\":[],\\\"keywords\\\":[\\\"palm\\\",\\\"tree\\\"],\\\"unicode_output\\\":\\\"1f334\\\"},\\\"1f331\\\":{\\\"name\\\":\\\"seedling\\\",\\\"shortname\\\":\\\":seedling:\\\",\\\"shortname_alternates\\\":[],\\\"keywords\\\":[\\\"young\\\"],\\\"unicode_output\\\":\\\"1f331\\\"},\\\"1f33f\\\":{\\\"name\\\":\\\"herb\\\",\\\"shortname\\\":\\\":herb:\\\",\\\"shortname_alternates\\\":[],\\\"keywords\\\":[\\\"leaf\\\"],\\\"unicode_output\\\":\\\"1f33f\\\"},\\\"1f340\\\":{\\\"name\\\":\\\"four leaf clover\\\",\\\"shortname\\\":\\\":four_leaf_clover:\\\",\\\"shortname_alternates\\\":[],\\\"keywords\\\":[\\\"4\\\",\\\"clover\\\",\\\"four\\\",\\\"leaf\\\"],\\\"unicode_output\\\":\\\"1f340\\\"},\\\"1f38d\\\":{\\\"name\\\":\\\"pine decoration\\\",\\\"shortname\\\":\\\":bamboo:\\\",\\\"shortname_alternates\\\":[],\\\"keywords\\\":[\\\"Japanese\\\",\\\"bamboo\\\",\\\"celebration\\\",\\\"pine\\\"],\\\"unicode_output\\\":\\\"1f38d\\\"},\\\"1f38b\\\":{\\\"name\\\":\\\"tanabata tree\\\",\\\"shortname\\\":\\\":tanabata_tree:\\\",\\\"shortname_alternates\\\":[],\\\"keywords\\\":[\\\"Japanese\\\",\\\"banner\\\",\\\"celebration\\\",\\\"tree\\\"],\\\"unicode_output\\\":\\\"1f38b\\\"},\\\"1f343\\\":{\\\"name\\\":\\\"leaf fluttering in wind\\\",\\\"shortname\\\":\\\":leaves:\\\",\\\"shortname_alternates\\\":[],\\\"keywords\\\":[\\\"blow\\\",\\\"flutter\\\",\\\"leaf\\\",\\\"wind\\\"],\\\"unicode_output\\\":\\\"1f343\\\"},\\\"1f342\\\":{\\\"name\\\":\\\"fallen leaf\\\",\\\"shortname\\\":\\\":fallen_leaf:\\\",\\\"shortname_alternates\\\":[],\\\"keywords\\\":[\\\"falling\\\",\\\"leaf\\\"],\\\"unicode_output\\\":\\\"1f342\\\"},\\\"1f341\\\":{\\\"name\\\":\\\"maple leaf\\\",\\\"shortname\\\":\\\":maple_leaf:\\\",\\\"shortname_alternates\\\":[],\\\"keywords\\\":[\\\"falling\\\",\\\"leaf\\\",\\\"maple\\\"],\\\"unicode_output\\\":\\\"1f341\\\"},\\\"1f344\\\":{\\\"name\\\":\\\"mushroom\\\",\\\"shortname\\\":\\\":mushroom:\\\",\\\"shortname_alternates\\\":[],\\\"keywords\\\":[\\\"toadstool\\\"],\\\"unicode_output\\\":\\\"1f344\\\"},\\\"1f33e\\\":{\\\"name\\\":\\\"sheaf of rice\\\",\\\"shortname\\\":\\\":ear_of_rice:\\\",\\\"shortname_alternates\\\":[],\\\"keywords\\\":[\\\"ear\\\",\\\"grain\\\",\\\"rice\\\"],\\\"unicode_output\\\":\\\"1f33e\\\"},\\\"1f490\\\":{\\\"name\\\":\\\"bouquet\\\",\\\"shortname\\\":\\\":bouquet:\\\",\\\"shortname_alternates\\\":[],\\\"keywords\\\":[\\\"flower\\\"],\\\"unicode_output\\\":\\\"1f490\\\"},\\\"1f337\\\":{\\\"name\\\":\\\"tulip\\\",\\\"shortname\\\":\\\":tulip:\\\",\\\"shortname_alternates\\\":[],\\\"keywords\\\":[\\\"flower\\\"],\\\"unicode_output\\\":\\\"1f337\\\"},\\\"1f339\\\":{\\\"name\\\":\\\"rose\\\",\\\"shortname\\\":\\\":rose:\\\",\\\"shortname_alternates\\\":[],\\\"keywords\\\":[\\\"flower\\\"],\\\"unicode_output\\\":\\\"1f339\\\"},\\\"1f33b\\\":{\\\"name\\\":\\\"sunflower\\\",\\\"shortname\\\":\\\":sunflower:\\\",\\\"shortname_alternates\\\":[],\\\"keywords\\\":[\\\"flower\\\",\\\"sun\\\"],\\\"unicode_output\\\":\\\"1f33b\\\"},\\\"1f33c\\\":{\\\"name\\\":\\\"blossom\\\",\\\"shortname\\\":\\\":blossom:\\\",\\\"shortname_alternates\\\":[],\\\"keywords\\\":[\\\"flower\\\"],\\\"unicode_output\\\":\\\"1f33c\\\"},\\\"1f338\\\":{\\\"name\\\":\\\"cherry blossom\\\",\\\"shortname\\\":\\\":cherry_blossom:\\\",\\\"shortname_alternates\\\":[],\\\"keywords\\\":[\\\"blossom\\\",\\\"cherry\\\",\\\"flower\\\"],\\\"unicode_output\\\":\\\"1f338\\\"},\\\"1f33a\\\":{\\\"name\\\":\\\"hibiscus\\\",\\\"shortname\\\":\\\":hibiscus:\\\",\\\"shortname_alternates\\\":[],\\\"keywords\\\":[\\\"flower\\\"],\\\"unicode_output\\\":\\\"1f33a\\\"},\\\"1f30e\\\":{\\\"name\\\":\\\"globe showing Americas\\\",\\\"shortname\\\":\\\":earth_americas:\\\",\\\"shortname_alternates\\\":[],\\\"keywords\\\":[\\\"Americas\\\",\\\"earth\\\",\\\"globe\\\",\\\"world\\\"],\\\"unicode_output\\\":\\\"1f30e\\\"},\\\"1f30d\\\":{\\\"name\\\":\\\"globe showing Europe-Africa\\\",\\\"shortname\\\":\\\":earth_africa:\\\",\\\"shortname_alternates\\\":[],\\\"keywords\\\":[\\\"Africa\\\",\\\"Europe\\\",\\\"earth\\\",\\\"globe\\\",\\\"world\\\"],\\\"unicode_output\\\":\\\"1f30d\\\"},\\\"1f30f\\\":{\\\"name\\\":\\\"globe showing Asia-Australia\\\",\\\"shortname\\\":\\\":earth_asia:\\\",\\\"shortname_alternates\\\":[],\\\"keywords\\\":[\\\"Asia\\\",\\\"Australia\\\",\\\"earth\\\",\\\"globe\\\",\\\"world\\\"],\\\"unicode_output\\\":\\\"1f30f\\\"},\\\"1f315\\\":{\\\"name\\\":\\\"full moon\\\",\\\"shortname\\\":\\\":full_moon:\\\",\\\"shortname_alternates\\\":[],\\\"keywords\\\":[\\\"full\\\",\\\"moon\\\"],\\\"unicode_output\\\":\\\"1f315\\\"},\\\"1f316\\\":{\\\"name\\\":\\\"waning gibbous moon\\\",\\\"shortname\\\":\\\":waning_gibbous_moon:\\\",\\\"shortname_alternates\\\":[],\\\"keywords\\\":[\\\"gibbous\\\",\\\"moon\\\",\\\"waning\\\"],\\\"unicode_output\\\":\\\"1f316\\\"},\\\"1f317\\\":{\\\"name\\\":\\\"last quarter moon\\\",\\\"shortname\\\":\\\":last_quarter_moon:\\\",\\\"shortname_alternates\\\":[],\\\"keywords\\\":[\\\"moon\\\",\\\"quarter\\\"],\\\"unicode_output\\\":\\\"1f317\\\"},\\\"1f318\\\":{\\\"name\\\":\\\"waning crescent moon\\\",\\\"shortname\\\":\\\":waning_crescent_moon:\\\",\\\"shortname_alternates\\\":[],\\\"keywords\\\":[\\\"crescent\\\",\\\"moon\\\",\\\"waning\\\"],\\\"unicode_output\\\":\\\"1f318\\\"},\\\"1f311\\\":{\\\"name\\\":\\\"new moon\\\",\\\"shortname\\\":\\\":new_moon:\\\",\\\"shortname_alternates\\\":[],\\\"keywords\\\":[\\\"dark\\\",\\\"moon\\\"],\\\"unicode_output\\\":\\\"1f311\\\"},\\\"1f312\\\":{\\\"name\\\":\\\"waxing crescent moon\\\",\\\"shortname\\\":\\\":waxing_crescent_moon:\\\",\\\"shortname_alternates\\\":[],\\\"keywords\\\":[\\\"crescent\\\",\\\"moon\\\",\\\"waxing\\\"],\\\"unicode_output\\\":\\\"1f312\\\"},\\\"1f313\\\":{\\\"name\\\":\\\"first quarter moon\\\",\\\"shortname\\\":\\\":first_quarter_moon:\\\",\\\"shortname_alternates\\\":[],\\\"keywords\\\":[\\\"moon\\\",\\\"quarter\\\"],\\\"unicode_output\\\":\\\"1f313\\\"},\\\"1f314\\\":{\\\"name\\\":\\\"waxing gibbous moon\\\",\\\"shortname\\\":\\\":waxing_gibbous_moon:\\\",\\\"shortname_alternates\\\":[],\\\"keywords\\\":[\\\"gibbous\\\",\\\"moon\\\",\\\"waxing\\\"],\\\"unicode_output\\\":\\\"1f314\\\"},\\\"1f31a\\\":{\\\"name\\\":\\\"new moon face\\\",\\\"shortname\\\":\\\":new_moon_with_face:\\\",\\\"shortname_alternates\\\":[],\\\"keywords\\\":[\\\"face\\\",\\\"moon\\\"],\\\"unicode_output\\\":\\\"1f31a\\\"},\\\"1f31d\\\":{\\\"name\\\":\\\"full moon with face\\\",\\\"shortname\\\":\\\":full_moon_with_face:\\\",\\\"shortname_alternates\\\":[],\\\"keywords\\\":[\\\"bright\\\",\\\"face\\\",\\\"full\\\",\\\"moon\\\"],\\\"unicode_output\\\":\\\"1f31d\\\"},\\\"1f31e\\\":{\\\"name\\\":\\\"sun with face\\\",\\\"shortname\\\":\\\":sun_with_face:\\\",\\\"shortname_alternates\\\":[],\\\"keywords\\\":[\\\"bright\\\",\\\"face\\\",\\\"sun\\\"],\\\"unicode_output\\\":\\\"1f31e\\\"},\\\"1f31b\\\":{\\\"name\\\":\\\"first quarter moon with face\\\",\\\"shortname\\\":\\\":first_quarter_moon_with_face:\\\",\\\"shortname_alternates\\\":[],\\\"keywords\\\":[\\\"face\\\",\\\"moon\\\",\\\"quarter\\\"],\\\"unicode_output\\\":\\\"1f31b\\\"},\\\"1f31c\\\":{\\\"name\\\":\\\"last quarter moon with face\\\",\\\"shortname\\\":\\\":last_quarter_moon_with_face:\\\",\\\"shortname_alternates\\\":[],\\\"keywords\\\":[\\\"face\\\",\\\"moon\\\",\\\"quarter\\\"],\\\"unicode_output\\\":\\\"1f31c\\\"},\\\"1f319\\\":{\\\"name\\\":\\\"crescent moon\\\",\\\"shortname\\\":\\\":crescent_moon:\\\",\\\"shortname_alternates\\\":[],\\\"keywords\\\":[\\\"crescent\\\",\\\"moon\\\"],\\\"unicode_output\\\":\\\"1f319\\\"},\\\"1f4ab\\\":{\\\"name\\\":\\\"dizzy\\\",\\\"shortname\\\":\\\":dizzy:\\\",\\\"shortname_alternates\\\":[],\\\"keywords\\\":[\\\"comic\\\",\\\"star\\\"],\\\"unicode_output\\\":\\\"1f4ab\\\"},\\\"2b50\\\":{\\\"name\\\":\\\"white medium star\\\",\\\"shortname\\\":\\\":star:\\\",\\\"shortname_alternates\\\":[],\\\"keywords\\\":[\\\"star\\\"],\\\"unicode_output\\\":\\\"2b50\\\"},\\\"1f31f\\\":{\\\"name\\\":\\\"glowing star\\\",\\\"shortname\\\":\\\":star2:\\\",\\\"shortname_alternates\\\":[],\\\"keywords\\\":[\\\"glittery\\\",\\\"glow\\\",\\\"shining\\\",\\\"sparkle\\\",\\\"star\\\"],\\\"unicode_output\\\":\\\"1f31f\\\"},\\\"26a1\\\":{\\\"name\\\":\\\"high voltage\\\",\\\"shortname\\\":\\\":zap:\\\",\\\"shortname_alternates\\\":[],\\\"keywords\\\":[\\\"danger\\\",\\\"electric\\\",\\\"electricity\\\",\\\"lightning\\\",\\\"voltage\\\",\\\"zap\\\"],\\\"unicode_output\\\":\\\"26a1\\\"},\\\"1f525\\\":{\\\"name\\\":\\\"fire\\\",\\\"shortname\\\":\\\":fire:\\\",\\\"shortname_alternates\\\":[\\\":flame:\\\"],\\\"keywords\\\":[\\\"flame\\\",\\\"tool\\\"],\\\"unicode_output\\\":\\\"1f525\\\"},\\\"1f4a5\\\":{\\\"name\\\":\\\"collision\\\",\\\"shortname\\\":\\\":boom:\\\",\\\"shortname_alternates\\\":[],\\\"keywords\\\":[\\\"boom\\\",\\\"comic\\\"],\\\"unicode_output\\\":\\\"1f4a5\\\"},\\\"26c5\\\":{\\\"name\\\":\\\"sun behind cloud\\\",\\\"shortname\\\":\\\":partly_sunny:\\\",\\\"shortname_alternates\\\":[],\\\"keywords\\\":[\\\"cloud\\\",\\\"sun\\\"],\\\"unicode_output\\\":\\\"26c5\\\"},\\\"1f308\\\":{\\\"name\\\":\\\"rainbow\\\",\\\"shortname\\\":\\\":rainbow:\\\",\\\"shortname_alternates\\\":[],\\\"keywords\\\":[\\\"rain\\\"],\\\"unicode_output\\\":\\\"1f308\\\"},\\\"26c4\\\":{\\\"name\\\":\\\"snowman without snow\\\",\\\"shortname\\\":\\\":snowman:\\\",\\\"shortname_alternates\\\":[],\\\"keywords\\\":[\\\"cold\\\",\\\"snow\\\",\\\"snowman\\\"],\\\"unicode_output\\\":\\\"26c4\\\"},\\\"1f4a8\\\":{\\\"name\\\":\\\"dashing away\\\",\\\"shortname\\\":\\\":dash:\\\",\\\"shortname_alternates\\\":[],\\\"keywords\\\":[\\\"comic\\\",\\\"dash\\\",\\\"running\\\"],\\\"unicode_output\\\":\\\"1f4a8\\\"},\\\"1f32b\\\":{\\\"name\\\":\\\"fog\\\",\\\"shortname\\\":\\\":fog:\\\",\\\"shortname_alternates\\\":[],\\\"keywords\\\":[\\\"cloud\\\"],\\\"unicode_output\\\":\\\"1f32b-fe0f\\\"},\\\"1f30a\\\":{\\\"name\\\":\\\"water wave\\\",\\\"shortname\\\":\\\":ocean:\\\",\\\"shortname_alternates\\\":[],\\\"keywords\\\":[\\\"ocean\\\",\\\"water\\\",\\\"wave\\\"],\\\"unicode_output\\\":\\\"1f30a\\\"},\\\"1f4a7\\\":{\\\"name\\\":\\\"droplet\\\",\\\"shortname\\\":\\\":droplet:\\\",\\\"shortname_alternates\\\":[],\\\"keywords\\\":[\\\"cold\\\",\\\"comic\\\",\\\"drop\\\",\\\"sweat\\\"],\\\"unicode_output\\\":\\\"1f4a7\\\"},\\\"1f4a6\\\":{\\\"name\\\":\\\"sweat droplets\\\",\\\"shortname\\\":\\\":sweat_drops:\\\",\\\"shortname_alternates\\\":[],\\\"keywords\\\":[\\\"comic\\\",\\\"splashing\\\",\\\"sweat\\\"],\\\"unicode_output\\\":\\\"1f4a6\\\"},\\\"1f997\\\":{\\\"name\\\":\\\"cricket\\\",\\\"shortname\\\":\\\":cricket:\\\",\\\"shortname_alternates\\\":[],\\\"keywords\\\":[\\\"\\\"],\\\"unicode_output\\\":\\\"1f997\\\"},\\\"1f34f\\\":{\\\"name\\\":\\\"green apple\\\",\\\"shortname\\\":\\\":green_apple:\\\",\\\"shortname_alternates\\\":[],\\\"keywords\\\":[\\\"apple\\\",\\\"fruit\\\",\\\"green\\\"],\\\"unicode_output\\\":\\\"1f34f\\\"},\\\"1f34e\\\":{\\\"name\\\":\\\"red apple\\\",\\\"shortname\\\":\\\":apple:\\\",\\\"shortname_alternates\\\":[],\\\"keywords\\\":[\\\"apple\\\",\\\"fruit\\\",\\\"red\\\"],\\\"unicode_output\\\":\\\"1f34e\\\"},\\\"1f350\\\":{\\\"name\\\":\\\"pear\\\",\\\"shortname\\\":\\\":pear:\\\",\\\"shortname_alternates\\\":[],\\\"keywords\\\":[\\\"fruit\\\"],\\\"unicode_output\\\":\\\"1f350\\\"},\\\"1f34a\\\":{\\\"name\\\":\\\"tangerine\\\",\\\"shortname\\\":\\\":tangerine:\\\",\\\"shortname_alternates\\\":[],\\\"keywords\\\":[\\\"fruit\\\",\\\"orange\\\"],\\\"unicode_output\\\":\\\"1f34a\\\"},\\\"1f34b\\\":{\\\"name\\\":\\\"lemon\\\",\\\"shortname\\\":\\\":lemon:\\\",\\\"shortname_alternates\\\":[],\\\"keywords\\\":[\\\"citrus\\\",\\\"fruit\\\"],\\\"unicode_output\\\":\\\"1f34b\\\"},\\\"1f34c\\\":{\\\"name\\\":\\\"banana\\\",\\\"shortname\\\":\\\":banana:\\\",\\\"shortname_alternates\\\":[],\\\"keywords\\\":[\\\"fruit\\\"],\\\"unicode_output\\\":\\\"1f34c\\\"},\\\"1f349\\\":{\\\"name\\\":\\\"watermelon\\\",\\\"shortname\\\":\\\":watermelon:\\\",\\\"shortname_alternates\\\":[],\\\"keywords\\\":[\\\"fruit\\\"],\\\"unicode_output\\\":\\\"1f349\\\"},\\\"1f347\\\":{\\\"name\\\":\\\"grapes\\\",\\\"shortname\\\":\\\":grapes:\\\",\\\"shortname_alternates\\\":[],\\\"keywords\\\":[\\\"fruit\\\",\\\"grape\\\"],\\\"unicode_output\\\":\\\"1f347\\\"},\\\"1f353\\\":{\\\"name\\\":\\\"strawberry\\\",\\\"shortname\\\":\\\":strawberry:\\\",\\\"shortname_alternates\\\":[],\\\"keywords\\\":[\\\"berry\\\",\\\"fruit\\\"],\\\"unicode_output\\\":\\\"1f353\\\"},\\\"1f348\\\":{\\\"name\\\":\\\"melon\\\",\\\"shortname\\\":\\\":melon:\\\",\\\"shortname_alternates\\\":[],\\\"keywords\\\":[\\\"fruit\\\"],\\\"unicode_output\\\":\\\"1f348\\\"},\\\"1f352\\\":{\\\"name\\\":\\\"cherries\\\",\\\"shortname\\\":\\\":cherries:\\\",\\\"shortname_alternates\\\":[],\\\"keywords\\\":[\\\"cherry\\\",\\\"fruit\\\"],\\\"unicode_output\\\":\\\"1f352\\\"},\\\"1f351\\\":{\\\"name\\\":\\\"peach\\\",\\\"shortname\\\":\\\":peach:\\\",\\\"shortname_alternates\\\":[],\\\"keywords\\\":[\\\"fruit\\\"],\\\"unicode_output\\\":\\\"1f351\\\"},\\\"1f34d\\\":{\\\"name\\\":\\\"pineapple\\\",\\\"shortname\\\":\\\":pineapple:\\\",\\\"shortname_alternates\\\":[],\\\"keywords\\\":[\\\"fruit\\\"],\\\"unicode_output\\\":\\\"1f34d\\\"},\\\"1f951\\\":{\\\"name\\\":\\\"avocado\\\",\\\"shortname\\\":\\\":avocado:\\\",\\\"shortname_alternates\\\":[],\\\"keywords\\\":[\\\"avocado\\\",\\\"food\\\",\\\"fruit\\\"],\\\"unicode_output\\\":\\\"1f951\\\"},\\\"1f345\\\":{\\\"name\\\":\\\"tomato\\\",\\\"shortname\\\":\\\":tomato:\\\",\\\"shortname_alternates\\\":[],\\\"keywords\\\":[\\\"fruit\\\",\\\"vegetable\\\"],\\\"unicode_output\\\":\\\"1f345\\\"},\\\"1f346\\\":{\\\"name\\\":\\\"eggplant\\\",\\\"shortname\\\":\\\":eggplant:\\\",\\\"shortname_alternates\\\":[],\\\"keywords\\\":[\\\"aubergine\\\",\\\"vegetable\\\"],\\\"unicode_output\\\":\\\"1f346\\\"},\\\"1f952\\\":{\\\"name\\\":\\\"cucumber\\\",\\\"shortname\\\":\\\":cucumber:\\\",\\\"shortname_alternates\\\":[],\\\"keywords\\\":[\\\"cucumber\\\",\\\"food\\\",\\\"pickle\\\",\\\"vegetable\\\"],\\\"unicode_output\\\":\\\"1f952\\\"},\\\"1f955\\\":{\\\"name\\\":\\\"carrot\\\",\\\"shortname\\\":\\\":carrot:\\\",\\\"shortname_alternates\\\":[],\\\"keywords\\\":[\\\"carrot\\\",\\\"food\\\",\\\"vegetable\\\"],\\\"unicode_output\\\":\\\"1f955\\\"},\\\"1f33d\\\":{\\\"name\\\":\\\"ear of corn\\\",\\\"shortname\\\":\\\":corn:\\\",\\\"shortname_alternates\\\":[],\\\"keywords\\\":[\\\"corn\\\",\\\"ear\\\",\\\"maize\\\",\\\"maze\\\"],\\\"unicode_output\\\":\\\"1f33d\\\"},\\\"1f336\\\":{\\\"name\\\":\\\"hot pepper\\\",\\\"shortname\\\":\\\":hot_pepper:\\\",\\\"shortname_alternates\\\":[],\\\"keywords\\\":[\\\"hot\\\",\\\"pepper\\\"],\\\"unicode_output\\\":\\\"1f336-fe0f\\\"},\\\"1f954\\\":{\\\"name\\\":\\\"potato\\\",\\\"shortname\\\":\\\":potato:\\\",\\\"shortname_alternates\\\":[],\\\"keywords\\\":[\\\"food\\\",\\\"potato\\\",\\\"vegetable\\\"],\\\"unicode_output\\\":\\\"1f954\\\"},\\\"1f360\\\":{\\\"name\\\":\\\"roasted sweet potato\\\",\\\"shortname\\\":\\\":sweet_potato:\\\",\\\"shortname_alternates\\\":[],\\\"keywords\\\":[\\\"potato\\\",\\\"roasted\\\",\\\"sweet\\\"],\\\"unicode_output\\\":\\\"1f360\\\"},\\\"1f330\\\":{\\\"name\\\":\\\"chestnut\\\",\\\"shortname\\\":\\\":chestnut:\\\",\\\"shortname_alternates\\\":[],\\\"keywords\\\":[\\\"plant\\\"],\\\"unicode_output\\\":\\\"1f330\\\"},\\\"1f95c\\\":{\\\"name\\\":\\\"peanuts\\\",\\\"shortname\\\":\\\":peanuts:\\\",\\\"shortname_alternates\\\":[\\\":shelled_peanut:\\\"],\\\"keywords\\\":[\\\"food\\\",\\\"nut\\\",\\\"peanut\\\",\\\"vegetable\\\"],\\\"unicode_output\\\":\\\"1f95c\\\"},\\\"1f36f\\\":{\\\"name\\\":\\\"honey pot\\\",\\\"shortname\\\":\\\":honey_pot:\\\",\\\"shortname_alternates\\\":[],\\\"keywords\\\":[\\\"honey\\\",\\\"honeypot\\\",\\\"pot\\\",\\\"sweet\\\"],\\\"unicode_output\\\":\\\"1f36f\\\"},\\\"1f950\\\":{\\\"name\\\":\\\"croissant\\\",\\\"shortname\\\":\\\":croissant:\\\",\\\"shortname_alternates\\\":[],\\\"keywords\\\":[\\\"bread\\\",\\\"crescent roll\\\",\\\"croissant\\\",\\\"food\\\",\\\"french\\\"],\\\"unicode_output\\\":\\\"1f950\\\"},\\\"1f35e\\\":{\\\"name\\\":\\\"bread\\\",\\\"shortname\\\":\\\":bread:\\\",\\\"shortname_alternates\\\":[],\\\"keywords\\\":[\\\"loaf\\\"],\\\"unicode_output\\\":\\\"1f35e\\\"},\\\"1f9c0\\\":{\\\"name\\\":\\\"cheese wedge\\\",\\\"shortname\\\":\\\":cheese:\\\",\\\"shortname_alternates\\\":[\\\":cheese_wedge:\\\"],\\\"keywords\\\":[\\\"cheese\\\"],\\\"unicode_output\\\":\\\"1f9c0\\\"},\\\"1f95a\\\":{\\\"name\\\":\\\"egg\\\",\\\"shortname\\\":\\\":egg:\\\",\\\"shortname_alternates\\\":[],\\\"keywords\\\":[\\\"egg\\\",\\\"food\\\"],\\\"unicode_output\\\":\\\"1f95a\\\"},\\\"1f953\\\":{\\\"name\\\":\\\"bacon\\\",\\\"shortname\\\":\\\":bacon:\\\",\\\"shortname_alternates\\\":[],\\\"keywords\\\":[\\\"bacon\\\",\\\"food\\\",\\\"meat\\\"],\\\"unicode_output\\\":\\\"1f953\\\"},\\\"1f95e\\\":{\\\"name\\\":\\\"pancakes\\\",\\\"shortname\\\":\\\":pancakes:\\\",\\\"shortname_alternates\\\":[],\\\"keywords\\\":[\\\"crêpe\\\",\\\"food\\\",\\\"hotcake\\\",\\\"pancake\\\"],\\\"unicode_output\\\":\\\"1f95e\\\"},\\\"1f364\\\":{\\\"name\\\":\\\"fried shrimp\\\",\\\"shortname\\\":\\\":fried_shrimp:\\\",\\\"shortname_alternates\\\":[],\\\"keywords\\\":[\\\"fried\\\",\\\"prawn\\\",\\\"shrimp\\\",\\\"tempura\\\"],\\\"unicode_output\\\":\\\"1f364\\\"},\\\"1f357\\\":{\\\"name\\\":\\\"poultry leg\\\",\\\"shortname\\\":\\\":poultry_leg:\\\",\\\"shortname_alternates\\\":[],\\\"keywords\\\":[\\\"bone\\\",\\\"chicken\\\",\\\"leg\\\",\\\"poultry\\\"],\\\"unicode_output\\\":\\\"1f357\\\"},\\\"1f356\\\":{\\\"name\\\":\\\"meat on bone\\\",\\\"shortname\\\":\\\":meat_on_bone:\\\",\\\"shortname_alternates\\\":[],\\\"keywords\\\":[\\\"bone\\\",\\\"meat\\\"],\\\"unicode_output\\\":\\\"1f356\\\"},\\\"1f355\\\":{\\\"name\\\":\\\"pizza\\\",\\\"shortname\\\":\\\":pizza:\\\",\\\"shortname_alternates\\\":[],\\\"keywords\\\":[\\\"cheese\\\",\\\"slice\\\"],\\\"unicode_output\\\":\\\"1f355\\\"},\\\"1f32d\\\":{\\\"name\\\":\\\"hot dog\\\",\\\"shortname\\\":\\\":hotdog:\\\",\\\"shortname_alternates\\\":[\\\":hot_dog:\\\"],\\\"keywords\\\":[\\\"frankfurter\\\",\\\"hotdog\\\",\\\"sausage\\\"],\\\"unicode_output\\\":\\\"1f32d\\\"},\\\"1f354\\\":{\\\"name\\\":\\\"hamburger\\\",\\\"shortname\\\":\\\":hamburger:\\\",\\\"shortname_alternates\\\":[],\\\"keywords\\\":[\\\"burger\\\"],\\\"unicode_output\\\":\\\"1f354\\\"},\\\"1f35f\\\":{\\\"name\\\":\\\"french fries\\\",\\\"shortname\\\":\\\":fries:\\\",\\\"shortname_alternates\\\":[],\\\"keywords\\\":[\\\"french\\\",\\\"fries\\\"],\\\"unicode_output\\\":\\\"1f35f\\\"},\\\"1f959\\\":{\\\"name\\\":\\\"stuffed flatbread\\\",\\\"shortname\\\":\\\":stuffed_flatbread:\\\",\\\"shortname_alternates\\\":[\\\":stuffed_pita:\\\"],\\\"keywords\\\":[\\\"falafel\\\",\\\"flatbread\\\",\\\"food\\\",\\\"gyro\\\",\\\"kebab\\\",\\\"stuffed\\\"],\\\"unicode_output\\\":\\\"1f959\\\"},\\\"1f32e\\\":{\\\"name\\\":\\\"taco\\\",\\\"shortname\\\":\\\":taco:\\\",\\\"shortname_alternates\\\":[],\\\"keywords\\\":[\\\"mexican\\\"],\\\"unicode_output\\\":\\\"1f32e\\\"},\\\"1f32f\\\":{\\\"name\\\":\\\"burrito\\\",\\\"shortname\\\":\\\":burrito:\\\",\\\"shortname_alternates\\\":[],\\\"keywords\\\":[\\\"mexican\\\",\\\"wrap\\\"],\\\"unicode_output\\\":\\\"1f32f\\\"},\\\"1f958\\\":{\\\"name\\\":\\\"shallow pan of food\\\",\\\"shortname\\\":\\\":shallow_pan_of_food:\\\",\\\"shortname_alternates\\\":[\\\":paella:\\\"],\\\"keywords\\\":[\\\"casserole\\\",\\\"food\\\",\\\"paella\\\",\\\"pan\\\",\\\"shallow\\\"],\\\"unicode_output\\\":\\\"1f958\\\"},\\\"1f35d\\\":{\\\"name\\\":\\\"spaghetti\\\",\\\"shortname\\\":\\\":spaghetti:\\\",\\\"shortname_alternates\\\":[],\\\"keywords\\\":[\\\"pasta\\\"],\\\"unicode_output\\\":\\\"1f35d\\\"},\\\"1f35c\\\":{\\\"name\\\":\\\"steaming bowl\\\",\\\"shortname\\\":\\\":ramen:\\\",\\\"shortname_alternates\\\":[],\\\"keywords\\\":[\\\"bowl\\\",\\\"noodle\\\",\\\"ramen\\\",\\\"steaming\\\"],\\\"unicode_output\\\":\\\"1f35c\\\"},\\\"1f372\\\":{\\\"name\\\":\\\"pot of food\\\",\\\"shortname\\\":\\\":stew:\\\",\\\"shortname_alternates\\\":[],\\\"keywords\\\":[\\\"pot\\\",\\\"stew\\\"],\\\"unicode_output\\\":\\\"1f372\\\"},\\\"1f365\\\":{\\\"name\\\":\\\"fish cake with swirl\\\",\\\"shortname\\\":\\\":fish_cake:\\\",\\\"shortname_alternates\\\":[],\\\"keywords\\\":[\\\"cake\\\",\\\"fish\\\",\\\"pastry\\\",\\\"swirl\\\"],\\\"unicode_output\\\":\\\"1f365\\\"},\\\"1f363\\\":{\\\"name\\\":\\\"sushi\\\",\\\"shortname\\\":\\\":sushi:\\\",\\\"shortname_alternates\\\":[],\\\"keywords\\\":[\\\"sushi\\\"],\\\"unicode_output\\\":\\\"1f363\\\"},\\\"1f371\\\":{\\\"name\\\":\\\"bento box\\\",\\\"shortname\\\":\\\":bento:\\\",\\\"shortname_alternates\\\":[],\\\"keywords\\\":[\\\"bento\\\",\\\"box\\\"],\\\"unicode_output\\\":\\\"1f371\\\"},\\\"1f35b\\\":{\\\"name\\\":\\\"curry rice\\\",\\\"shortname\\\":\\\":curry:\\\",\\\"shortname_alternates\\\":[],\\\"keywords\\\":[\\\"curry\\\",\\\"rice\\\"],\\\"unicode_output\\\":\\\"1f35b\\\"},\\\"1f359\\\":{\\\"name\\\":\\\"rice ball\\\",\\\"shortname\\\":\\\":rice_ball:\\\",\\\"shortname_alternates\\\":[],\\\"keywords\\\":[\\\"Japanese\\\",\\\"ball\\\",\\\"rice\\\"],\\\"unicode_output\\\":\\\"1f359\\\"},\\\"1f35a\\\":{\\\"name\\\":\\\"cooked rice\\\",\\\"shortname\\\":\\\":rice:\\\",\\\"shortname_alternates\\\":[],\\\"keywords\\\":[\\\"cooked\\\",\\\"rice\\\"],\\\"unicode_output\\\":\\\"1f35a\\\"},\\\"1f358\\\":{\\\"name\\\":\\\"rice cracker\\\",\\\"shortname\\\":\\\":rice_cracker:\\\",\\\"shortname_alternates\\\":[],\\\"keywords\\\":[\\\"cracker\\\",\\\"rice\\\"],\\\"unicode_output\\\":\\\"1f358\\\"},\\\"1f362\\\":{\\\"name\\\":\\\"oden\\\",\\\"shortname\\\":\\\":oden:\\\",\\\"shortname_alternates\\\":[],\\\"keywords\\\":[\\\"kebab\\\",\\\"seafood\\\",\\\"skewer\\\",\\\"stick\\\"],\\\"unicode_output\\\":\\\"1f362\\\"},\\\"1f361\\\":{\\\"name\\\":\\\"dango\\\",\\\"shortname\\\":\\\":dango:\\\",\\\"shortname_alternates\\\":[],\\\"keywords\\\":[\\\"Japanese\\\",\\\"dessert\\\",\\\"skewer\\\",\\\"stick\\\",\\\"sweet\\\"],\\\"unicode_output\\\":\\\"1f361\\\"},\\\"1f367\\\":{\\\"name\\\":\\\"shaved ice\\\",\\\"shortname\\\":\\\":shaved_ice:\\\",\\\"shortname_alternates\\\":[],\\\"keywords\\\":[\\\"dessert\\\",\\\"ice\\\",\\\"shaved\\\",\\\"sweet\\\"],\\\"unicode_output\\\":\\\"1f367\\\"},\\\"1f368\\\":{\\\"name\\\":\\\"ice cream\\\",\\\"shortname\\\":\\\":ice_cream:\\\",\\\"shortname_alternates\\\":[],\\\"keywords\\\":[\\\"cream\\\",\\\"dessert\\\",\\\"ice\\\",\\\"sweet\\\"],\\\"unicode_output\\\":\\\"1f368\\\"},\\\"1f366\\\":{\\\"name\\\":\\\"soft ice cream\\\",\\\"shortname\\\":\\\":icecream:\\\",\\\"shortname_alternates\\\":[],\\\"keywords\\\":[\\\"cream\\\",\\\"dessert\\\",\\\"ice\\\",\\\"icecream\\\",\\\"soft\\\",\\\"sweet\\\"],\\\"unicode_output\\\":\\\"1f366\\\"},\\\"1f370\\\":{\\\"name\\\":\\\"shortcake\\\",\\\"shortname\\\":\\\":cake:\\\",\\\"shortname_alternates\\\":[],\\\"keywords\\\":[\\\"cake\\\",\\\"dessert\\\",\\\"pastry\\\",\\\"slice\\\",\\\"sweet\\\"],\\\"unicode_output\\\":\\\"1f370\\\"},\\\"1f382\\\":{\\\"name\\\":\\\"birthday cake\\\",\\\"shortname\\\":\\\":birthday:\\\",\\\"shortname_alternates\\\":[],\\\"keywords\\\":[\\\"birthday\\\",\\\"cake\\\",\\\"celebration\\\",\\\"dessert\\\",\\\"pastry\\\",\\\"sweet\\\"],\\\"unicode_output\\\":\\\"1f382\\\"},\\\"1f36e\\\":{\\\"name\\\":\\\"custard\\\",\\\"shortname\\\":\\\":custard:\\\",\\\"shortname_alternates\\\":[\\\":pudding:\\\",\\\":flan:\\\"],\\\"keywords\\\":[\\\"dessert\\\",\\\"pudding\\\",\\\"sweet\\\"],\\\"unicode_output\\\":\\\"1f36e\\\"},\\\"1f36d\\\":{\\\"name\\\":\\\"lollipop\\\",\\\"shortname\\\":\\\":lollipop:\\\",\\\"shortname_alternates\\\":[],\\\"keywords\\\":[\\\"candy\\\",\\\"dessert\\\",\\\"sweet\\\"],\\\"unicode_output\\\":\\\"1f36d\\\"},\\\"1f36c\\\":{\\\"name\\\":\\\"candy\\\",\\\"shortname\\\":\\\":candy:\\\",\\\"shortname_alternates\\\":[],\\\"keywords\\\":[\\\"dessert\\\",\\\"sweet\\\"],\\\"unicode_output\\\":\\\"1f36c\\\"},\\\"1f36b\\\":{\\\"name\\\":\\\"chocolate bar\\\",\\\"shortname\\\":\\\":chocolate_bar:\\\",\\\"shortname_alternates\\\":[],\\\"keywords\\\":[\\\"bar\\\",\\\"chocolate\\\",\\\"dessert\\\",\\\"sweet\\\"],\\\"unicode_output\\\":\\\"1f36b\\\"},\\\"1f37f\\\":{\\\"name\\\":\\\"popcorn\\\",\\\"shortname\\\":\\\":popcorn:\\\",\\\"shortname_alternates\\\":[],\\\"keywords\\\":[\\\"popcorn\\\"],\\\"unicode_output\\\":\\\"1f37f\\\"},\\\"1f369\\\":{\\\"name\\\":\\\"doughnut\\\",\\\"shortname\\\":\\\":doughnut:\\\",\\\"shortname_alternates\\\":[],\\\"keywords\\\":[\\\"dessert\\\",\\\"donut\\\",\\\"sweet\\\"],\\\"unicode_output\\\":\\\"1f369\\\"},\\\"1f36a\\\":{\\\"name\\\":\\\"cookie\\\",\\\"shortname\\\":\\\":cookie:\\\",\\\"shortname_alternates\\\":[],\\\"keywords\\\":[\\\"dessert\\\",\\\"sweet\\\"],\\\"unicode_output\\\":\\\"1f36a\\\"},\\\"1f37c\\\":{\\\"name\\\":\\\"baby bottle\\\",\\\"shortname\\\":\\\":baby_bottle:\\\",\\\"shortname_alternates\\\":[],\\\"keywords\\\":[\\\"baby\\\",\\\"bottle\\\",\\\"drink\\\",\\\"milk\\\"],\\\"unicode_output\\\":\\\"1f37c\\\"},\\\"1f375\\\":{\\\"name\\\":\\\"teacup without handle\\\",\\\"shortname\\\":\\\":tea:\\\",\\\"shortname_alternates\\\":[],\\\"keywords\\\":[\\\"beverage\\\",\\\"cup\\\",\\\"drink\\\",\\\"tea\\\",\\\"teacup\\\"],\\\"unicode_output\\\":\\\"1f375\\\"},\\\"1f376\\\":{\\\"name\\\":\\\"sake\\\",\\\"shortname\\\":\\\":sake:\\\",\\\"shortname_alternates\\\":[],\\\"keywords\\\":[\\\"bar\\\",\\\"beverage\\\",\\\"bottle\\\",\\\"cup\\\",\\\"drink\\\"],\\\"unicode_output\\\":\\\"1f376\\\"},\\\"1f37a\\\":{\\\"name\\\":\\\"beer mug\\\",\\\"shortname\\\":\\\":beer:\\\",\\\"shortname_alternates\\\":[],\\\"keywords\\\":[\\\"bar\\\",\\\"beer\\\",\\\"drink\\\",\\\"mug\\\"],\\\"unicode_output\\\":\\\"1f37a\\\"},\\\"1f37b\\\":{\\\"name\\\":\\\"clinking beer mugs\\\",\\\"shortname\\\":\\\":beers:\\\",\\\"shortname_alternates\\\":[],\\\"keywords\\\":[\\\"bar\\\",\\\"beer\\\",\\\"clink\\\",\\\"drink\\\",\\\"mug\\\"],\\\"unicode_output\\\":\\\"1f37b\\\"},\\\"1f377\\\":{\\\"name\\\":\\\"wine glass\\\",\\\"shortname\\\":\\\":wine_glass:\\\",\\\"shortname_alternates\\\":[],\\\"keywords\\\":[\\\"bar\\\",\\\"beverage\\\",\\\"drink\\\",\\\"glass\\\",\\\"wine\\\"],\\\"unicode_output\\\":\\\"1f377\\\"},\\\"1f943\\\":{\\\"name\\\":\\\"tumbler glass\\\",\\\"shortname\\\":\\\":tumbler_glass:\\\",\\\"shortname_alternates\\\":[\\\":whisky:\\\"],\\\"keywords\\\":[\\\"glass\\\",\\\"liquor\\\",\\\"shot\\\",\\\"tumbler\\\",\\\"whisky\\\"],\\\"unicode_output\\\":\\\"1f943\\\"},\\\"1f378\\\":{\\\"name\\\":\\\"cocktail glass\\\",\\\"shortname\\\":\\\":cocktail:\\\",\\\"shortname_alternates\\\":[],\\\"keywords\\\":[\\\"bar\\\",\\\"cocktail\\\",\\\"drink\\\",\\\"glass\\\"],\\\"unicode_output\\\":\\\"1f378\\\"},\\\"1f379\\\":{\\\"name\\\":\\\"tropical drink\\\",\\\"shortname\\\":\\\":tropical_drink:\\\",\\\"shortname_alternates\\\":[],\\\"keywords\\\":[\\\"bar\\\",\\\"drink\\\",\\\"tropical\\\"],\\\"unicode_output\\\":\\\"1f379\\\"},\\\"1f37e\\\":{\\\"name\\\":\\\"bottle with popping cork\\\",\\\"shortname\\\":\\\":champagne:\\\",\\\"shortname_alternates\\\":[\\\":bottle_with_popping_cork:\\\"],\\\"keywords\\\":[\\\"bar\\\",\\\"bottle\\\",\\\"cork\\\",\\\"drink\\\",\\\"popping\\\"],\\\"unicode_output\\\":\\\"1f37e\\\"},\\\"1f944\\\":{\\\"name\\\":\\\"spoon\\\",\\\"shortname\\\":\\\":spoon:\\\",\\\"shortname_alternates\\\":[],\\\"keywords\\\":[\\\"spoon\\\",\\\"tableware\\\"],\\\"unicode_output\\\":\\\"1f944\\\"},\\\"1f374\\\":{\\\"name\\\":\\\"fork and knife\\\",\\\"shortname\\\":\\\":fork_and_knife:\\\",\\\"shortname_alternates\\\":[],\\\"keywords\\\":[\\\"cooking\\\",\\\"fork\\\",\\\"knife\\\"],\\\"unicode_output\\\":\\\"1f374\\\"},\\\"26bd\\\":{\\\"name\\\":\\\"soccer ball\\\",\\\"shortname\\\":\\\":soccer:\\\",\\\"shortname_alternates\\\":[],\\\"keywords\\\":[\\\"ball\\\",\\\"football\\\",\\\"soccer\\\"],\\\"unicode_output\\\":\\\"26bd\\\"},\\\"1f3c0\\\":{\\\"name\\\":\\\"basketball\\\",\\\"shortname\\\":\\\":basketball:\\\",\\\"shortname_alternates\\\":[],\\\"keywords\\\":[\\\"ball\\\",\\\"hoop\\\"],\\\"unicode_output\\\":\\\"1f3c0\\\"},\\\"1f3c8\\\":{\\\"name\\\":\\\"american football\\\",\\\"shortname\\\":\\\":football:\\\",\\\"shortname_alternates\\\":[],\\\"keywords\\\":[\\\"american\\\",\\\"ball\\\",\\\"football\\\"],\\\"unicode_output\\\":\\\"1f3c8\\\"},\\\"26be\\\":{\\\"name\\\":\\\"baseball\\\",\\\"shortname\\\":\\\":baseball:\\\",\\\"shortname_alternates\\\":[],\\\"keywords\\\":[\\\"ball\\\"],\\\"unicode_output\\\":\\\"26be\\\"},\\\"1f3be\\\":{\\\"name\\\":\\\"tennis\\\",\\\"shortname\\\":\\\":tennis:\\\",\\\"shortname_alternates\\\":[],\\\"keywords\\\":[\\\"ball\\\",\\\"racquet\\\"],\\\"unicode_output\\\":\\\"1f3be\\\"},\\\"1f3d0\\\":{\\\"name\\\":\\\"volleyball\\\",\\\"shortname\\\":\\\":volleyball:\\\",\\\"shortname_alternates\\\":[],\\\"keywords\\\":[\\\"ball\\\",\\\"game\\\"],\\\"unicode_output\\\":\\\"1f3d0\\\"},\\\"1f3c9\\\":{\\\"name\\\":\\\"rugby football\\\",\\\"shortname\\\":\\\":rugby_football:\\\",\\\"shortname_alternates\\\":[],\\\"keywords\\\":[\\\"ball\\\",\\\"football\\\",\\\"rugby\\\"],\\\"unicode_output\\\":\\\"1f3c9\\\"},\\\"1f3b1\\\":{\\\"name\\\":\\\"pool 8 ball\\\",\\\"shortname\\\":\\\":8ball:\\\",\\\"shortname_alternates\\\":[],\\\"keywords\\\":[\\\"8\\\",\\\"8 ball\\\",\\\"ball\\\",\\\"billiard\\\",\\\"eight\\\",\\\"game\\\"],\\\"unicode_output\\\":\\\"1f3b1\\\"},\\\"1f3d3\\\":{\\\"name\\\":\\\"ping pong\\\",\\\"shortname\\\":\\\":ping_pong:\\\",\\\"shortname_alternates\\\":[\\\":table_tennis:\\\"],\\\"keywords\\\":[\\\"ball\\\",\\\"bat\\\",\\\"game\\\",\\\"paddle\\\",\\\"ping pong\\\",\\\"table tennis\\\"],\\\"unicode_output\\\":\\\"1f3d3\\\"},\\\"1f3f8\\\":{\\\"name\\\":\\\"badminton\\\",\\\"shortname\\\":\\\":badminton:\\\",\\\"shortname_alternates\\\":[],\\\"keywords\\\":[\\\"birdie\\\",\\\"game\\\",\\\"racquet\\\",\\\"shuttlecock\\\"],\\\"unicode_output\\\":\\\"1f3f8\\\"},\\\"1f3d1\\\":{\\\"name\\\":\\\"field hockey\\\",\\\"shortname\\\":\\\":field_hockey:\\\",\\\"shortname_alternates\\\":[],\\\"keywords\\\":[\\\"ball\\\",\\\"field\\\",\\\"game\\\",\\\"hockey\\\",\\\"stick\\\"],\\\"unicode_output\\\":\\\"1f3d1\\\"},\\\"26f3\\\":{\\\"name\\\":\\\"flag in hole\\\",\\\"shortname\\\":\\\":golf:\\\",\\\"shortname_alternates\\\":[],\\\"keywords\\\":[\\\"golf\\\",\\\"hole\\\"],\\\"unicode_output\\\":\\\"26f3\\\"},\\\"1f3f9\\\":{\\\"name\\\":\\\"bow and arrow\\\",\\\"shortname\\\":\\\":bow_and_arrow:\\\",\\\"shortname_alternates\\\":[\\\":archery:\\\"],\\\"keywords\\\":[\\\"Sagittarius\\\",\\\"archer\\\",\\\"archery\\\",\\\"arrow\\\",\\\"bow\\\",\\\"tool\\\",\\\"weapon\\\",\\\"zodiac\\\"],\\\"unicode_output\\\":\\\"1f3f9\\\"},\\\"1f3a3\\\":{\\\"name\\\":\\\"fishing pole\\\",\\\"shortname\\\":\\\":fishing_pole_and_fish:\\\",\\\"shortname_alternates\\\":[],\\\"keywords\\\":[\\\"fish\\\",\\\"pole\\\"],\\\"unicode_output\\\":\\\"1f3a3\\\"},\\\"1f94a\\\":{\\\"name\\\":\\\"boxing glove\\\",\\\"shortname\\\":\\\":boxing_glove:\\\",\\\"shortname_alternates\\\":[\\\":boxing_gloves:\\\"],\\\"keywords\\\":[\\\"boxing\\\",\\\"glove\\\"],\\\"unicode_output\\\":\\\"1f94a\\\"},\\\"1f94b\\\":{\\\"name\\\":\\\"martial arts uniform\\\",\\\"shortname\\\":\\\":martial_arts_uniform:\\\",\\\"shortname_alternates\\\":[\\\":karate_uniform:\\\"],\\\"keywords\\\":[\\\"judo\\\",\\\"karate\\\",\\\"martial arts\\\",\\\"taekwondo\\\",\\\"uniform\\\"],\\\"unicode_output\\\":\\\"1f94b\\\"},\\\"26f8\\\":{\\\"name\\\":\\\"ice skate\\\",\\\"shortname\\\":\\\":ice_skate:\\\",\\\"shortname_alternates\\\":[],\\\"keywords\\\":[\\\"ice\\\",\\\"skate\\\"],\\\"unicode_output\\\":\\\"26f8-fe0f\\\"},\\\"1f3bf\\\":{\\\"name\\\":\\\"skis\\\",\\\"shortname\\\":\\\":ski:\\\",\\\"shortname_alternates\\\":[],\\\"keywords\\\":[\\\"ski\\\",\\\"snow\\\"],\\\"unicode_output\\\":\\\"1f3bf\\\"},\\\"26f7\\\":{\\\"name\\\":\\\"skier\\\",\\\"shortname\\\":\\\":skier:\\\",\\\"shortname_alternates\\\":[],\\\"keywords\\\":[\\\"ski\\\",\\\"snow\\\"],\\\"unicode_output\\\":\\\"26f7-fe0f\\\"},\\\"1f3c2\\\":{\\\"name\\\":\\\"snowboarder\\\",\\\"shortname\\\":\\\":snowboarder:\\\",\\\"shortname_alternates\\\":[],\\\"keywords\\\":[\\\"ski\\\",\\\"snow\\\",\\\"snowboard\\\"],\\\"unicode_output\\\":\\\"1f3c2\\\"},\\\"1f93a\\\":{\\\"name\\\":\\\"person fencing\\\",\\\"shortname\\\":\\\":person_fencing:\\\",\\\"shortname_alternates\\\":[\\\":fencer:\\\",\\\":fencing:\\\"],\\\"keywords\\\":[\\\"fencer\\\",\\\"fencing\\\",\\\"sword\\\"],\\\"unicode_output\\\":\\\"1f93a\\\"},\\\"1f93c-2640\\\":{\\\"name\\\":\\\"women wrestling\\\",\\\"shortname\\\":\\\":women_wrestling:\\\",\\\"shortname_alternates\\\":[],\\\"keywords\\\":[\\\"women\\\",\\\"wrestle\\\"],\\\"unicode_output\\\":\\\"1f93c-200d-2640-fe0f\\\"},\\\"1f93c-2642\\\":{\\\"name\\\":\\\"men wrestling\\\",\\\"shortname\\\":\\\":men_wrestling:\\\",\\\"shortname_alternates\\\":[],\\\"keywords\\\":[\\\"men\\\",\\\"wrestle\\\"],\\\"unicode_output\\\":\\\"1f93c-200d-2642-fe0f\\\"},\\\"1f938-2640\\\":{\\\"name\\\":\\\"woman cartwheeling\\\",\\\"shortname\\\":\\\":woman_cartwheeling:\\\",\\\"shortname_alternates\\\":[],\\\"keywords\\\":[\\\"cartwheel\\\",\\\"gymnastics\\\",\\\"woman\\\"],\\\"unicode_output\\\":\\\"1f938-200d-2640-fe0f\\\"},\\\"1f938-2642\\\":{\\\"name\\\":\\\"man cartwheeling\\\",\\\"shortname\\\":\\\":man_cartwheeling:\\\",\\\"shortname_alternates\\\":[],\\\"keywords\\\":[\\\"cartwheel\\\",\\\"gymnastics\\\",\\\"man\\\"],\\\"unicode_output\\\":\\\"1f938-200d-2642-fe0f\\\"},\\\"1f93e-2640\\\":{\\\"name\\\":\\\"woman playing handball\\\",\\\"shortname\\\":\\\":woman_playing_handball:\\\",\\\"shortname_alternates\\\":[],\\\"keywords\\\":[\\\"handball\\\",\\\"woman\\\"],\\\"unicode_output\\\":\\\"1f93e-200d-2640-fe0f\\\"},\\\"1f93e-2642\\\":{\\\"name\\\":\\\"man playing handball\\\",\\\"shortname\\\":\\\":man_playing_handball:\\\",\\\"shortname_alternates\\\":[],\\\"keywords\\\":[\\\"handball\\\",\\\"man\\\"],\\\"unicode_output\\\":\\\"1f93e-200d-2642-fe0f\\\"},\\\"1f93d-2640\\\":{\\\"name\\\":\\\"woman playing water polo\\\",\\\"shortname\\\":\\\":woman_playing_water_polo:\\\",\\\"shortname_alternates\\\":[],\\\"keywords\\\":[\\\"water polo\\\",\\\"woman\\\"],\\\"unicode_output\\\":\\\"1f93d-200d-2640-fe0f\\\"},\\\"1f93d-2642\\\":{\\\"name\\\":\\\"man playing water polo\\\",\\\"shortname\\\":\\\":man_playing_water_polo:\\\",\\\"shortname_alternates\\\":[],\\\"keywords\\\":[\\\"man\\\",\\\"water polo\\\"],\\\"unicode_output\\\":\\\"1f93d-200d-2642-fe0f\\\"},\\\"1f3c7\\\":{\\\"name\\\":\\\"horse racing\\\",\\\"shortname\\\":\\\":horse_racing:\\\",\\\"shortname_alternates\\\":[],\\\"keywords\\\":[\\\"horse\\\",\\\"jockey\\\",\\\"racehorse\\\",\\\"racing\\\"],\\\"unicode_output\\\":\\\"1f3c7\\\"},\\\"1f3bd\\\":{\\\"name\\\":\\\"running shirt\\\",\\\"shortname\\\":\\\":running_shirt_with_sash:\\\",\\\"shortname_alternates\\\":[],\\\"keywords\\\":[\\\"athletics\\\",\\\"running\\\",\\\"sash\\\",\\\"shirt\\\"],\\\"unicode_output\\\":\\\"1f3bd\\\"},\\\"1f3c6\\\":{\\\"name\\\":\\\"trophy\\\",\\\"shortname\\\":\\\":trophy:\\\",\\\"shortname_alternates\\\":[],\\\"keywords\\\":[\\\"prize\\\"],\\\"unicode_output\\\":\\\"1f3c6\\\"},\\\"1f3f5\\\":{\\\"name\\\":\\\"rosette\\\",\\\"shortname\\\":\\\":rosette:\\\",\\\"shortname_alternates\\\":[],\\\"keywords\\\":[\\\"plant\\\"],\\\"unicode_output\\\":\\\"1f3f5-fe0f\\\"},\\\"1f397\\\":{\\\"name\\\":\\\"reminder ribbon\\\",\\\"shortname\\\":\\\":reminder_ribbon:\\\",\\\"shortname_alternates\\\":[],\\\"keywords\\\":[\\\"celebration\\\",\\\"reminder\\\",\\\"ribbon\\\"],\\\"unicode_output\\\":\\\"1f397-fe0f\\\"},\\\"1f3ab\\\":{\\\"name\\\":\\\"ticket\\\",\\\"shortname\\\":\\\":ticket:\\\",\\\"shortname_alternates\\\":[],\\\"keywords\\\":[\\\"admission\\\"],\\\"unicode_output\\\":\\\"1f3ab\\\"},\\\"1f39f\\\":{\\\"name\\\":\\\"admission tickets\\\",\\\"shortname\\\":\\\":tickets:\\\",\\\"shortname_alternates\\\":[\\\":admission_tickets:\\\"],\\\"keywords\\\":[\\\"admission\\\",\\\"ticket\\\"],\\\"unicode_output\\\":\\\"1f39f-fe0f\\\"},\\\"1f3aa\\\":{\\\"name\\\":\\\"circus tent\\\",\\\"shortname\\\":\\\":circus_tent:\\\",\\\"shortname_alternates\\\":[],\\\"keywords\\\":[\\\"circus\\\",\\\"tent\\\"],\\\"unicode_output\\\":\\\"1f3aa\\\"},\\\"1f939-2640\\\":{\\\"name\\\":\\\"woman juggling\\\",\\\"shortname\\\":\\\":woman_juggling:\\\",\\\"shortname_alternates\\\":[],\\\"keywords\\\":[\\\"juggling\\\",\\\"multitask\\\",\\\"woman\\\"],\\\"unicode_output\\\":\\\"1f939-200d-2640-fe0f\\\"},\\\"1f939-2642\\\":{\\\"name\\\":\\\"man juggling\\\",\\\"shortname\\\":\\\":man_juggling:\\\",\\\"shortname_alternates\\\":[],\\\"keywords\\\":[\\\"juggling\\\",\\\"man\\\",\\\"multitask\\\"],\\\"unicode_output\\\":\\\"1f939-200d-2642-fe0f\\\"},\\\"1f3ad\\\":{\\\"name\\\":\\\"performing arts\\\",\\\"shortname\\\":\\\":performing_arts:\\\",\\\"shortname_alternates\\\":[],\\\"keywords\\\":[\\\"art\\\",\\\"mask\\\",\\\"performing\\\",\\\"theater\\\",\\\"theatre\\\"],\\\"unicode_output\\\":\\\"1f3ad\\\"},\\\"1f3a8\\\":{\\\"name\\\":\\\"artist palette\\\",\\\"shortname\\\":\\\":art:\\\",\\\"shortname_alternates\\\":[],\\\"keywords\\\":[\\\"art\\\",\\\"museum\\\",\\\"painting\\\",\\\"palette\\\"],\\\"unicode_output\\\":\\\"1f3a8\\\"},\\\"1f3ac\\\":{\\\"name\\\":\\\"clapper board\\\",\\\"shortname\\\":\\\":clapper:\\\",\\\"shortname_alternates\\\":[],\\\"keywords\\\":[\\\"clapper\\\",\\\"movie\\\"],\\\"unicode_output\\\":\\\"1f3ac\\\"},\\\"1f3a4\\\":{\\\"name\\\":\\\"microphone\\\",\\\"shortname\\\":\\\":microphone:\\\",\\\"shortname_alternates\\\":[],\\\"keywords\\\":[\\\"karaoke\\\",\\\"mic\\\"],\\\"unicode_output\\\":\\\"1f3a4\\\"},\\\"1f3a7\\\":{\\\"name\\\":\\\"headphone\\\",\\\"shortname\\\":\\\":headphones:\\\",\\\"shortname_alternates\\\":[],\\\"keywords\\\":[\\\"earbud\\\"],\\\"unicode_output\\\":\\\"1f3a7\\\"},\\\"1f3bc\\\":{\\\"name\\\":\\\"musical score\\\",\\\"shortname\\\":\\\":musical_score:\\\",\\\"shortname_alternates\\\":[],\\\"keywords\\\":[\\\"music\\\",\\\"score\\\"],\\\"unicode_output\\\":\\\"1f3bc\\\"},\\\"1f3b9\\\":{\\\"name\\\":\\\"musical keyboard\\\",\\\"shortname\\\":\\\":musical_keyboard:\\\",\\\"shortname_alternates\\\":[],\\\"keywords\\\":[\\\"instrument\\\",\\\"keyboard\\\",\\\"music\\\",\\\"piano\\\"],\\\"unicode_output\\\":\\\"1f3b9\\\"},\\\"1f941\\\":{\\\"name\\\":\\\"drum\\\",\\\"shortname\\\":\\\":drum:\\\",\\\"shortname_alternates\\\":[\\\":drum_with_drumsticks:\\\"],\\\"keywords\\\":[\\\"drum\\\",\\\"drumsticks\\\",\\\"music\\\"],\\\"unicode_output\\\":\\\"1f941\\\"},\\\"1f3b7\\\":{\\\"name\\\":\\\"saxophone\\\",\\\"shortname\\\":\\\":saxophone:\\\",\\\"shortname_alternates\\\":[],\\\"keywords\\\":[\\\"instrument\\\",\\\"music\\\",\\\"sax\\\"],\\\"unicode_output\\\":\\\"1f3b7\\\"},\\\"1f3ba\\\":{\\\"name\\\":\\\"trumpet\\\",\\\"shortname\\\":\\\":trumpet:\\\",\\\"shortname_alternates\\\":[],\\\"keywords\\\":[\\\"instrument\\\",\\\"music\\\"],\\\"unicode_output\\\":\\\"1f3ba\\\"},\\\"1f3b8\\\":{\\\"name\\\":\\\"guitar\\\",\\\"shortname\\\":\\\":guitar:\\\",\\\"shortname_alternates\\\":[],\\\"keywords\\\":[\\\"instrument\\\",\\\"music\\\"],\\\"unicode_output\\\":\\\"1f3b8\\\"},\\\"1f3bb\\\":{\\\"name\\\":\\\"violin\\\",\\\"shortname\\\":\\\":violin:\\\",\\\"shortname_alternates\\\":[],\\\"keywords\\\":[\\\"instrument\\\",\\\"music\\\"],\\\"unicode_output\\\":\\\"1f3bb\\\"},\\\"1f3b2\\\":{\\\"name\\\":\\\"game die\\\",\\\"shortname\\\":\\\":game_die:\\\",\\\"shortname_alternates\\\":[],\\\"keywords\\\":[\\\"dice\\\",\\\"die\\\",\\\"game\\\"],\\\"unicode_output\\\":\\\"1f3b2\\\"},\\\"1f3af\\\":{\\\"name\\\":\\\"direct hit\\\",\\\"shortname\\\":\\\":dart:\\\",\\\"shortname_alternates\\\":[],\\\"keywords\\\":[\\\"bull\\\",\\\"bullseye\\\",\\\"dart\\\",\\\"eye\\\",\\\"game\\\",\\\"hit\\\",\\\"target\\\"],\\\"unicode_output\\\":\\\"1f3af\\\"},\\\"1f3b3\\\":{\\\"name\\\":\\\"bowling\\\",\\\"shortname\\\":\\\":bowling:\\\",\\\"shortname_alternates\\\":[],\\\"keywords\\\":[\\\"ball\\\",\\\"game\\\"],\\\"unicode_output\\\":\\\"1f3b3\\\"},\\\"1f3ae\\\":{\\\"name\\\":\\\"video game\\\",\\\"shortname\\\":\\\":video_game:\\\",\\\"shortname_alternates\\\":[],\\\"keywords\\\":[\\\"controller\\\",\\\"game\\\"],\\\"unicode_output\\\":\\\"1f3ae\\\"},\\\"1f3b0\\\":{\\\"name\\\":\\\"slot machine\\\",\\\"shortname\\\":\\\":slot_machine:\\\",\\\"shortname_alternates\\\":[],\\\"keywords\\\":[\\\"game\\\",\\\"slot\\\"],\\\"unicode_output\\\":\\\"1f3b0\\\"},\\\"1f697\\\":{\\\"name\\\":\\\"automobile\\\",\\\"shortname\\\":\\\":red_car:\\\",\\\"shortname_alternates\\\":[],\\\"keywords\\\":[\\\"car\\\"],\\\"unicode_output\\\":\\\"1f697\\\"},\\\"1f695\\\":{\\\"name\\\":\\\"taxi\\\",\\\"shortname\\\":\\\":taxi:\\\",\\\"shortname_alternates\\\":[],\\\"keywords\\\":[\\\"vehicle\\\"],\\\"unicode_output\\\":\\\"1f695\\\"},\\\"1f699\\\":{\\\"name\\\":\\\"sport utility vehicle\\\",\\\"shortname\\\":\\\":blue_car:\\\",\\\"shortname_alternates\\\":[],\\\"keywords\\\":[\\\"recreational\\\",\\\"sport utility\\\"],\\\"unicode_output\\\":\\\"1f699\\\"},\\\"1f68c\\\":{\\\"name\\\":\\\"bus\\\",\\\"shortname\\\":\\\":bus:\\\",\\\"shortname_alternates\\\":[],\\\"keywords\\\":[\\\"vehicle\\\"],\\\"unicode_output\\\":\\\"1f68c\\\"},\\\"1f68e\\\":{\\\"name\\\":\\\"trolleybus\\\",\\\"shortname\\\":\\\":trolleybus:\\\",\\\"shortname_alternates\\\":[],\\\"keywords\\\":[\\\"bus\\\",\\\"tram\\\",\\\"trolley\\\"],\\\"unicode_output\\\":\\\"1f68e\\\"},\\\"1f693\\\":{\\\"name\\\":\\\"police car\\\",\\\"shortname\\\":\\\":police_car:\\\",\\\"shortname_alternates\\\":[],\\\"keywords\\\":[\\\"car\\\",\\\"patrol\\\",\\\"police\\\"],\\\"unicode_output\\\":\\\"1f693\\\"},\\\"1f691\\\":{\\\"name\\\":\\\"ambulance\\\",\\\"shortname\\\":\\\":ambulance:\\\",\\\"shortname_alternates\\\":[],\\\"keywords\\\":[\\\"vehicle\\\"],\\\"unicode_output\\\":\\\"1f691\\\"},\\\"1f692\\\":{\\\"name\\\":\\\"fire engine\\\",\\\"shortname\\\":\\\":fire_engine:\\\",\\\"shortname_alternates\\\":[],\\\"keywords\\\":[\\\"engine\\\",\\\"fire\\\",\\\"truck\\\"],\\\"unicode_output\\\":\\\"1f692\\\"},\\\"1f690\\\":{\\\"name\\\":\\\"minibus\\\",\\\"shortname\\\":\\\":minibus:\\\",\\\"shortname_alternates\\\":[],\\\"keywords\\\":[\\\"bus\\\"],\\\"unicode_output\\\":\\\"1f690\\\"},\\\"1f69a\\\":{\\\"name\\\":\\\"delivery truck\\\",\\\"shortname\\\":\\\":truck:\\\",\\\"shortname_alternates\\\":[],\\\"keywords\\\":[\\\"delivery\\\",\\\"truck\\\"],\\\"unicode_output\\\":\\\"1f69a\\\"},\\\"1f69b\\\":{\\\"name\\\":\\\"articulated lorry\\\",\\\"shortname\\\":\\\":articulated_lorry:\\\",\\\"shortname_alternates\\\":[],\\\"keywords\\\":[\\\"lorry\\\",\\\"semi\\\",\\\"truck\\\"],\\\"unicode_output\\\":\\\"1f69b\\\"},\\\"1f69c\\\":{\\\"name\\\":\\\"tractor\\\",\\\"shortname\\\":\\\":tractor:\\\",\\\"shortname_alternates\\\":[],\\\"keywords\\\":[\\\"vehicle\\\"],\\\"unicode_output\\\":\\\"1f69c\\\"},\\\"1f6b2\\\":{\\\"name\\\":\\\"bicycle\\\",\\\"shortname\\\":\\\":bike:\\\",\\\"shortname_alternates\\\":[],\\\"keywords\\\":[\\\"bike\\\"],\\\"unicode_output\\\":\\\"1f6b2\\\"},\\\"1f6f5\\\":{\\\"name\\\":\\\"motor scooter\\\",\\\"shortname\\\":\\\":motor_scooter:\\\",\\\"shortname_alternates\\\":[\\\":motorbike:\\\"],\\\"keywords\\\":[\\\"motor\\\",\\\"scooter\\\"],\\\"unicode_output\\\":\\\"1f6f5\\\"},\\\"1f3cd\\\":{\\\"name\\\":\\\"motorcycle\\\",\\\"shortname\\\":\\\":motorcycle:\\\",\\\"shortname_alternates\\\":[\\\":racing_motorcycle:\\\"],\\\"keywords\\\":[\\\"racing\\\"],\\\"unicode_output\\\":\\\"1f3cd-fe0f\\\"},\\\"1f6a8\\\":{\\\"name\\\":\\\"police car light\\\",\\\"shortname\\\":\\\":rotating_light:\\\",\\\"shortname_alternates\\\":[],\\\"keywords\\\":[\\\"beacon\\\",\\\"car\\\",\\\"light\\\",\\\"police\\\",\\\"revolving\\\"],\\\"unicode_output\\\":\\\"1f6a8\\\"},\\\"1f694\\\":{\\\"name\\\":\\\"oncoming police car\\\",\\\"shortname\\\":\\\":oncoming_police_car:\\\",\\\"shortname_alternates\\\":[],\\\"keywords\\\":[\\\"car\\\",\\\"oncoming\\\",\\\"police\\\"],\\\"unicode_output\\\":\\\"1f694\\\"},\\\"1f68d\\\":{\\\"name\\\":\\\"oncoming bus\\\",\\\"shortname\\\":\\\":oncoming_bus:\\\",\\\"shortname_alternates\\\":[],\\\"keywords\\\":[\\\"bus\\\",\\\"oncoming\\\"],\\\"unicode_output\\\":\\\"1f68d\\\"},\\\"1f698\\\":{\\\"name\\\":\\\"oncoming automobile\\\",\\\"shortname\\\":\\\":oncoming_automobile:\\\",\\\"shortname_alternates\\\":[],\\\"keywords\\\":[\\\"automobile\\\",\\\"car\\\",\\\"oncoming\\\"],\\\"unicode_output\\\":\\\"1f698\\\"},\\\"1f696\\\":{\\\"name\\\":\\\"oncoming taxi\\\",\\\"shortname\\\":\\\":oncoming_taxi:\\\",\\\"shortname_alternates\\\":[],\\\"keywords\\\":[\\\"oncoming\\\",\\\"taxi\\\"],\\\"unicode_output\\\":\\\"1f696\\\"},\\\"1f6a1\\\":{\\\"name\\\":\\\"aerial tramway\\\",\\\"shortname\\\":\\\":aerial_tramway:\\\",\\\"shortname_alternates\\\":[],\\\"keywords\\\":[\\\"aerial\\\",\\\"cable\\\",\\\"car\\\",\\\"gondola\\\",\\\"tramway\\\"],\\\"unicode_output\\\":\\\"1f6a1\\\"},\\\"1f6a0\\\":{\\\"name\\\":\\\"mountain cableway\\\",\\\"shortname\\\":\\\":mountain_cableway:\\\",\\\"shortname_alternates\\\":[],\\\"keywords\\\":[\\\"cable\\\",\\\"gondola\\\",\\\"mountain\\\"],\\\"unicode_output\\\":\\\"1f6a0\\\"},\\\"1f69f\\\":{\\\"name\\\":\\\"suspension railway\\\",\\\"shortname\\\":\\\":suspension_railway:\\\",\\\"shortname_alternates\\\":[],\\\"keywords\\\":[\\\"railway\\\",\\\"suspension\\\"],\\\"unicode_output\\\":\\\"1f69f\\\"},\\\"1f683\\\":{\\\"name\\\":\\\"railway car\\\",\\\"shortname\\\":\\\":railway_car:\\\",\\\"shortname_alternates\\\":[],\\\"keywords\\\":[\\\"car\\\",\\\"electric\\\",\\\"railway\\\",\\\"train\\\",\\\"tram\\\",\\\"trolleybus\\\"],\\\"unicode_output\\\":\\\"1f683\\\"},\\\"1f68b\\\":{\\\"name\\\":\\\"tram car\\\",\\\"shortname\\\":\\\":train:\\\",\\\"shortname_alternates\\\":[],\\\"keywords\\\":[\\\"car\\\",\\\"tram\\\",\\\"trolleybus\\\"],\\\"unicode_output\\\":\\\"1f68b\\\"},\\\"1f69e\\\":{\\\"name\\\":\\\"mountain railway\\\",\\\"shortname\\\":\\\":mountain_railway:\\\",\\\"shortname_alternates\\\":[],\\\"keywords\\\":[\\\"car\\\",\\\"mountain\\\",\\\"railway\\\"],\\\"unicode_output\\\":\\\"1f69e\\\"},\\\"1f69d\\\":{\\\"name\\\":\\\"monorail\\\",\\\"shortname\\\":\\\":monorail:\\\",\\\"shortname_alternates\\\":[],\\\"keywords\\\":[\\\"vehicle\\\"],\\\"unicode_output\\\":\\\"1f69d\\\"},\\\"1f684\\\":{\\\"name\\\":\\\"high-speed train\\\",\\\"shortname\\\":\\\":bullettrain_side:\\\",\\\"shortname_alternates\\\":[],\\\"keywords\\\":[\\\"railway\\\",\\\"shinkansen\\\",\\\"speed\\\",\\\"train\\\"],\\\"unicode_output\\\":\\\"1f684\\\"},\\\"1f685\\\":{\\\"name\\\":\\\"high-speed train with bullet nose\\\",\\\"shortname\\\":\\\":bullettrain_front:\\\",\\\"shortname_alternates\\\":[],\\\"keywords\\\":[\\\"bullet\\\",\\\"railway\\\",\\\"shinkansen\\\",\\\"speed\\\",\\\"train\\\"],\\\"unicode_output\\\":\\\"1f685\\\"},\\\"1f688\\\":{\\\"name\\\":\\\"light rail\\\",\\\"shortname\\\":\\\":light_rail:\\\",\\\"shortname_alternates\\\":[],\\\"keywords\\\":[\\\"railway\\\"],\\\"unicode_output\\\":\\\"1f688\\\"},\\\"1f682\\\":{\\\"name\\\":\\\"locomotive\\\",\\\"shortname\\\":\\\":steam_locomotive:\\\",\\\"shortname_alternates\\\":[],\\\"keywords\\\":[\\\"engine\\\",\\\"railway\\\",\\\"steam\\\",\\\"train\\\"],\\\"unicode_output\\\":\\\"1f682\\\"},\\\"1f686\\\":{\\\"name\\\":\\\"train\\\",\\\"shortname\\\":\\\":train2:\\\",\\\"shortname_alternates\\\":[],\\\"keywords\\\":[\\\"railway\\\"],\\\"unicode_output\\\":\\\"1f686\\\"},\\\"1f687\\\":{\\\"name\\\":\\\"metro\\\",\\\"shortname\\\":\\\":metro:\\\",\\\"shortname_alternates\\\":[],\\\"keywords\\\":[\\\"subway\\\"],\\\"unicode_output\\\":\\\"1f687\\\"},\\\"1f68a\\\":{\\\"name\\\":\\\"tram\\\",\\\"shortname\\\":\\\":tram:\\\",\\\"shortname_alternates\\\":[],\\\"keywords\\\":[\\\"trolleybus\\\"],\\\"unicode_output\\\":\\\"1f68a\\\"},\\\"1f689\\\":{\\\"name\\\":\\\"station\\\",\\\"shortname\\\":\\\":station:\\\",\\\"shortname_alternates\\\":[],\\\"keywords\\\":[\\\"railway\\\",\\\"train\\\"],\\\"unicode_output\\\":\\\"1f689\\\"},\\\"1f681\\\":{\\\"name\\\":\\\"helicopter\\\",\\\"shortname\\\":\\\":helicopter:\\\",\\\"shortname_alternates\\\":[],\\\"keywords\\\":[\\\"vehicle\\\"],\\\"unicode_output\\\":\\\"1f681\\\"},\\\"1f680\\\":{\\\"name\\\":\\\"rocket\\\",\\\"shortname\\\":\\\":rocket:\\\",\\\"shortname_alternates\\\":[],\\\"keywords\\\":[\\\"space\\\"],\\\"unicode_output\\\":\\\"1f680\\\"},\\\"1f4ba\\\":{\\\"name\\\":\\\"seat\\\",\\\"shortname\\\":\\\":seat:\\\",\\\"shortname_alternates\\\":[],\\\"keywords\\\":[\\\"chair\\\"],\\\"unicode_output\\\":\\\"1f4ba\\\"},\\\"1f6f6\\\":{\\\"name\\\":\\\"canoe\\\",\\\"shortname\\\":\\\":canoe:\\\",\\\"shortname_alternates\\\":[\\\":kayak:\\\"],\\\"keywords\\\":[\\\"boat\\\",\\\"canoe\\\"],\\\"unicode_output\\\":\\\"1f6f6\\\"},\\\"26f5\\\":{\\\"name\\\":\\\"sailboat\\\",\\\"shortname\\\":\\\":sailboat:\\\",\\\"shortname_alternates\\\":[],\\\"keywords\\\":[\\\"boat\\\",\\\"resort\\\",\\\"sea\\\",\\\"yacht\\\"],\\\"unicode_output\\\":\\\"26f5\\\"},\\\"1f6a4\\\":{\\\"name\\\":\\\"speedboat\\\",\\\"shortname\\\":\\\":speedboat:\\\",\\\"shortname_alternates\\\":[],\\\"keywords\\\":[\\\"boat\\\"],\\\"unicode_output\\\":\\\"1f6a4\\\"},\\\"26f4\\\":{\\\"name\\\":\\\"ferry\\\",\\\"shortname\\\":\\\":ferry:\\\",\\\"shortname_alternates\\\":[],\\\"keywords\\\":[\\\"boat\\\",\\\"passenger\\\"],\\\"unicode_output\\\":\\\"26f4-fe0f\\\"},\\\"1f6a2\\\":{\\\"name\\\":\\\"ship\\\",\\\"shortname\\\":\\\":ship:\\\",\\\"shortname_alternates\\\":[],\\\"keywords\\\":[\\\"boat\\\",\\\"passenger\\\"],\\\"unicode_output\\\":\\\"1f6a2\\\"},\\\"1f6a7\\\":{\\\"name\\\":\\\"construction\\\",\\\"shortname\\\":\\\":construction:\\\",\\\"shortname_alternates\\\":[],\\\"keywords\\\":[\\\"barrier\\\"],\\\"unicode_output\\\":\\\"1f6a7\\\"},\\\"26fd\\\":{\\\"name\\\":\\\"fuel pump\\\",\\\"shortname\\\":\\\":fuelpump:\\\",\\\"shortname_alternates\\\":[],\\\"keywords\\\":[\\\"fuel\\\",\\\"fuelpump\\\",\\\"gas\\\",\\\"pump\\\",\\\"station\\\"],\\\"unicode_output\\\":\\\"26fd\\\"},\\\"1f68f\\\":{\\\"name\\\":\\\"bus stop\\\",\\\"shortname\\\":\\\":busstop:\\\",\\\"shortname_alternates\\\":[],\\\"keywords\\\":[\\\"bus\\\",\\\"busstop\\\",\\\"stop\\\"],\\\"unicode_output\\\":\\\"1f68f\\\"},\\\"1f6a6\\\":{\\\"name\\\":\\\"vertical traffic light\\\",\\\"shortname\\\":\\\":vertical_traffic_light:\\\",\\\"shortname_alternates\\\":[],\\\"keywords\\\":[\\\"light\\\",\\\"signal\\\",\\\"traffic\\\"],\\\"unicode_output\\\":\\\"1f6a6\\\"},\\\"1f6a5\\\":{\\\"name\\\":\\\"horizontal traffic light\\\",\\\"shortname\\\":\\\":traffic_light:\\\",\\\"shortname_alternates\\\":[],\\\"keywords\\\":[\\\"light\\\",\\\"signal\\\",\\\"traffic\\\"],\\\"unicode_output\\\":\\\"1f6a5\\\"},\\\"1f5ff\\\":{\\\"name\\\":\\\"moai\\\",\\\"shortname\\\":\\\":moyai:\\\",\\\"shortname_alternates\\\":[],\\\"keywords\\\":[\\\"face\\\",\\\"moyai\\\",\\\"statue\\\"],\\\"unicode_output\\\":\\\"1f5ff\\\"},\\\"1f5fd\\\":{\\\"name\\\":\\\"Statue of Liberty\\\",\\\"shortname\\\":\\\":statue_of_liberty:\\\",\\\"shortname_alternates\\\":[],\\\"keywords\\\":[\\\"liberty\\\",\\\"statue\\\"],\\\"unicode_output\\\":\\\"1f5fd\\\"},\\\"26f2\\\":{\\\"name\\\":\\\"fountain\\\",\\\"shortname\\\":\\\":fountain:\\\",\\\"shortname_alternates\\\":[],\\\"keywords\\\":[\\\"fountain\\\"],\\\"unicode_output\\\":\\\"26f2\\\"},\\\"1f5fc\\\":{\\\"name\\\":\\\"Tokyo tower\\\",\\\"shortname\\\":\\\":tokyo_tower:\\\",\\\"shortname_alternates\\\":[],\\\"keywords\\\":[\\\"Tokyo\\\",\\\"tower\\\"],\\\"unicode_output\\\":\\\"1f5fc\\\"},\\\"1f3f0\\\":{\\\"name\\\":\\\"castle\\\",\\\"shortname\\\":\\\":european_castle:\\\",\\\"shortname_alternates\\\":[],\\\"keywords\\\":[\\\"European\\\"],\\\"unicode_output\\\":\\\"1f3f0\\\"},\\\"1f3ef\\\":{\\\"name\\\":\\\"Japanese castle\\\",\\\"shortname\\\":\\\":japanese_castle:\\\",\\\"shortname_alternates\\\":[],\\\"keywords\\\":[\\\"Japanese\\\",\\\"castle\\\"],\\\"unicode_output\\\":\\\"1f3ef\\\"},\\\"1f3df\\\":{\\\"name\\\":\\\"stadium\\\",\\\"shortname\\\":\\\":stadium:\\\",\\\"shortname_alternates\\\":[],\\\"keywords\\\":[\\\"stadium\\\"],\\\"unicode_output\\\":\\\"1f3df-fe0f\\\"},\\\"1f3a1\\\":{\\\"name\\\":\\\"ferris wheel\\\",\\\"shortname\\\":\\\":ferris_wheel:\\\",\\\"shortname_alternates\\\":[],\\\"keywords\\\":[\\\"amusement park\\\",\\\"ferris\\\",\\\"wheel\\\"],\\\"unicode_output\\\":\\\"1f3a1\\\"},\\\"1f3a2\\\":{\\\"name\\\":\\\"roller coaster\\\",\\\"shortname\\\":\\\":roller_coaster:\\\",\\\"shortname_alternates\\\":[],\\\"keywords\\\":[\\\"amusement park\\\",\\\"coaster\\\",\\\"roller\\\"],\\\"unicode_output\\\":\\\"1f3a2\\\"},\\\"1f3a0\\\":{\\\"name\\\":\\\"carousel horse\\\",\\\"shortname\\\":\\\":carousel_horse:\\\",\\\"shortname_alternates\\\":[],\\\"keywords\\\":[\\\"carousel\\\",\\\"horse\\\"],\\\"unicode_output\\\":\\\"1f3a0\\\"},\\\"26f1\\\":{\\\"name\\\":\\\"umbrella on ground\\\",\\\"shortname\\\":\\\":beach_umbrella:\\\",\\\"shortname_alternates\\\":[\\\":umbrella_on_ground:\\\"],\\\"keywords\\\":[\\\"rain\\\",\\\"sun\\\",\\\"umbrella\\\"],\\\"unicode_output\\\":\\\"26f1-fe0f\\\"},\\\"26f0\\\":{\\\"name\\\":\\\"mountain\\\",\\\"shortname\\\":\\\":mountain:\\\",\\\"shortname_alternates\\\":[],\\\"keywords\\\":[\\\"mountain\\\"],\\\"unicode_output\\\":\\\"26f0-fe0f\\\"},\\\"1f3d4\\\":{\\\"name\\\":\\\"snow-capped mountain\\\",\\\"shortname\\\":\\\":mountain_snow:\\\",\\\"shortname_alternates\\\":[\\\":snow_capped_mountain:\\\"],\\\"keywords\\\":[\\\"cold\\\",\\\"mountain\\\",\\\"snow\\\"],\\\"unicode_output\\\":\\\"1f3d4-fe0f\\\"},\\\"1f5fb\\\":{\\\"name\\\":\\\"mount fuji\\\",\\\"shortname\\\":\\\":mount_fuji:\\\",\\\"shortname_alternates\\\":[],\\\"keywords\\\":[\\\"fuji\\\",\\\"mountain\\\"],\\\"unicode_output\\\":\\\"1f5fb\\\"},\\\"1f30b\\\":{\\\"name\\\":\\\"volcano\\\",\\\"shortname\\\":\\\":volcano:\\\",\\\"shortname_alternates\\\":[],\\\"keywords\\\":[\\\"eruption\\\",\\\"mountain\\\"],\\\"unicode_output\\\":\\\"1f30b\\\"},\\\"1f3dc\\\":{\\\"name\\\":\\\"desert\\\",\\\"shortname\\\":\\\":desert:\\\",\\\"shortname_alternates\\\":[],\\\"keywords\\\":[\\\"desert\\\"],\\\"unicode_output\\\":\\\"1f3dc-fe0f\\\"},\\\"1f3d5\\\":{\\\"name\\\":\\\"camping\\\",\\\"shortname\\\":\\\":camping:\\\",\\\"shortname_alternates\\\":[],\\\"keywords\\\":[\\\"camping\\\"],\\\"unicode_output\\\":\\\"1f3d5-fe0f\\\"},\\\"26fa\\\":{\\\"name\\\":\\\"tent\\\",\\\"shortname\\\":\\\":tent:\\\",\\\"shortname_alternates\\\":[],\\\"keywords\\\":[\\\"camping\\\"],\\\"unicode_output\\\":\\\"26fa\\\"},\\\"1f6e4\\\":{\\\"name\\\":\\\"railway track\\\",\\\"shortname\\\":\\\":railway_track:\\\",\\\"shortname_alternates\\\":[\\\":railroad_track:\\\"],\\\"keywords\\\":[\\\"railway\\\",\\\"train\\\"],\\\"unicode_output\\\":\\\"1f6e4-fe0f\\\"},\\\"1f6e3\\\":{\\\"name\\\":\\\"motorway\\\",\\\"shortname\\\":\\\":motorway:\\\",\\\"shortname_alternates\\\":[],\\\"keywords\\\":[\\\"highway\\\",\\\"road\\\"],\\\"unicode_output\\\":\\\"1f6e3-fe0f\\\"},\\\"1f3ed\\\":{\\\"name\\\":\\\"factory\\\",\\\"shortname\\\":\\\":factory:\\\",\\\"shortname_alternates\\\":[],\\\"keywords\\\":[\\\"building\\\"],\\\"unicode_output\\\":\\\"1f3ed\\\"},\\\"1f3e0\\\":{\\\"name\\\":\\\"house\\\",\\\"shortname\\\":\\\":house:\\\",\\\"shortname_alternates\\\":[],\\\"keywords\\\":[\\\"home\\\",\\\"house\\\"],\\\"unicode_output\\\":\\\"1f3e0\\\"},\\\"1f3e1\\\":{\\\"name\\\":\\\"house with garden\\\",\\\"shortname\\\":\\\":house_with_garden:\\\",\\\"shortname_alternates\\\":[],\\\"keywords\\\":[\\\"garden\\\",\\\"home\\\",\\\"house\\\"],\\\"unicode_output\\\":\\\"1f3e1\\\"},\\\"1f3e2\\\":{\\\"name\\\":\\\"office building\\\",\\\"shortname\\\":\\\":office:\\\",\\\"shortname_alternates\\\":[],\\\"keywords\\\":[\\\"building\\\"],\\\"unicode_output\\\":\\\"1f3e2\\\"},\\\"1f3ec\\\":{\\\"name\\\":\\\"department store\\\",\\\"shortname\\\":\\\":department_store:\\\",\\\"shortname_alternates\\\":[],\\\"keywords\\\":[\\\"department\\\",\\\"store\\\"],\\\"unicode_output\\\":\\\"1f3ec\\\"},\\\"1f3e3\\\":{\\\"name\\\":\\\"Japanese post office\\\",\\\"shortname\\\":\\\":post_office:\\\",\\\"shortname_alternates\\\":[],\\\"keywords\\\":[\\\"Japanese\\\",\\\"post\\\"],\\\"unicode_output\\\":\\\"1f3e3\\\"},\\\"1f3e4\\\":{\\\"name\\\":\\\"post office\\\",\\\"shortname\\\":\\\":european_post_office:\\\",\\\"shortname_alternates\\\":[],\\\"keywords\\\":[\\\"European\\\",\\\"post\\\"],\\\"unicode_output\\\":\\\"1f3e4\\\"},\\\"1f3e5\\\":{\\\"name\\\":\\\"hospital\\\",\\\"shortname\\\":\\\":hospital:\\\",\\\"shortname_alternates\\\":[],\\\"keywords\\\":[\\\"doctor\\\",\\\"medicine\\\"],\\\"unicode_output\\\":\\\"1f3e5\\\"},\\\"1f3e6\\\":{\\\"name\\\":\\\"bank\\\",\\\"shortname\\\":\\\":bank:\\\",\\\"shortname_alternates\\\":[],\\\"keywords\\\":[\\\"building\\\"],\\\"unicode_output\\\":\\\"1f3e6\\\"},\\\"1f3e8\\\":{\\\"name\\\":\\\"hotel\\\",\\\"shortname\\\":\\\":hotel:\\\",\\\"shortname_alternates\\\":[],\\\"keywords\\\":[\\\"building\\\"],\\\"unicode_output\\\":\\\"1f3e8\\\"},\\\"1f3ea\\\":{\\\"name\\\":\\\"convenience store\\\",\\\"shortname\\\":\\\":convenience_store:\\\",\\\"shortname_alternates\\\":[],\\\"keywords\\\":[\\\"convenience\\\",\\\"store\\\"],\\\"unicode_output\\\":\\\"1f3ea\\\"},\\\"1f3eb\\\":{\\\"name\\\":\\\"school\\\",\\\"shortname\\\":\\\":school:\\\",\\\"shortname_alternates\\\":[],\\\"keywords\\\":[\\\"building\\\"],\\\"unicode_output\\\":\\\"1f3eb\\\"},\\\"1f3e9\\\":{\\\"name\\\":\\\"love hotel\\\",\\\"shortname\\\":\\\":love_hotel:\\\",\\\"shortname_alternates\\\":[],\\\"keywords\\\":[\\\"hotel\\\",\\\"love\\\"],\\\"unicode_output\\\":\\\"1f3e9\\\"},\\\"1f492\\\":{\\\"name\\\":\\\"wedding\\\",\\\"shortname\\\":\\\":wedding:\\\",\\\"shortname_alternates\\\":[],\\\"keywords\\\":[\\\"chapel\\\",\\\"romance\\\"],\\\"unicode_output\\\":\\\"1f492\\\"},\\\"1f3db\\\":{\\\"name\\\":\\\"classical building\\\",\\\"shortname\\\":\\\":classical_building:\\\",\\\"shortname_alternates\\\":[],\\\"keywords\\\":[\\\"classical\\\"],\\\"unicode_output\\\":\\\"1f3db-fe0f\\\"},\\\"26ea\\\":{\\\"name\\\":\\\"church\\\",\\\"shortname\\\":\\\":church:\\\",\\\"shortname_alternates\\\":[],\\\"keywords\\\":[\\\"Christian\\\",\\\"cross\\\",\\\"religion\\\"],\\\"unicode_output\\\":\\\"26ea\\\"},\\\"1f54c\\\":{\\\"name\\\":\\\"mosque\\\",\\\"shortname\\\":\\\":mosque:\\\",\\\"shortname_alternates\\\":[],\\\"keywords\\\":[\\\"Muslim\\\",\\\"islam\\\",\\\"religion\\\"],\\\"unicode_output\\\":\\\"1f54c\\\"},\\\"1f54d\\\":{\\\"name\\\":\\\"synagogue\\\",\\\"shortname\\\":\\\":synagogue:\\\",\\\"shortname_alternates\\\":[],\\\"keywords\\\":[\\\"Jew\\\",\\\"Jewish\\\",\\\"religion\\\",\\\"temple\\\"],\\\"unicode_output\\\":\\\"1f54d\\\"},\\\"1f54b\\\":{\\\"name\\\":\\\"kaaba\\\",\\\"shortname\\\":\\\":kaaba:\\\",\\\"shortname_alternates\\\":[],\\\"keywords\\\":[\\\"Muslim\\\",\\\"islam\\\",\\\"religion\\\"],\\\"unicode_output\\\":\\\"1f54b\\\"},\\\"26e9\\\":{\\\"name\\\":\\\"shinto shrine\\\",\\\"shortname\\\":\\\":shinto_shrine:\\\",\\\"shortname_alternates\\\":[],\\\"keywords\\\":[\\\"religion\\\",\\\"shinto\\\",\\\"shrine\\\"],\\\"unicode_output\\\":\\\"26e9-fe0f\\\"},\\\"1f5fe\\\":{\\\"name\\\":\\\"map of Japan\\\",\\\"shortname\\\":\\\":japan:\\\",\\\"shortname_alternates\\\":[],\\\"keywords\\\":[\\\"Japan\\\",\\\"map\\\"],\\\"unicode_output\\\":\\\"1f5fe\\\"},\\\"1f391\\\":{\\\"name\\\":\\\"moon viewing ceremony\\\",\\\"shortname\\\":\\\":rice_scene:\\\",\\\"shortname_alternates\\\":[],\\\"keywords\\\":[\\\"celebration\\\",\\\"ceremony\\\",\\\"moon\\\"],\\\"unicode_output\\\":\\\"1f391\\\"},\\\"1f305\\\":{\\\"name\\\":\\\"sunrise\\\",\\\"shortname\\\":\\\":sunrise:\\\",\\\"shortname_alternates\\\":[],\\\"keywords\\\":[\\\"morning\\\",\\\"sun\\\"],\\\"unicode_output\\\":\\\"1f305\\\"},\\\"1f304\\\":{\\\"name\\\":\\\"sunrise over mountains\\\",\\\"shortname\\\":\\\":sunrise_over_mountains:\\\",\\\"shortname_alternates\\\":[],\\\"keywords\\\":[\\\"morning\\\",\\\"mountain\\\",\\\"sun\\\",\\\"sunrise\\\"],\\\"unicode_output\\\":\\\"1f304\\\"},\\\"1f320\\\":{\\\"name\\\":\\\"shooting star\\\",\\\"shortname\\\":\\\":stars:\\\",\\\"shortname_alternates\\\":[],\\\"keywords\\\":[\\\"falling\\\",\\\"shooting\\\",\\\"star\\\"],\\\"unicode_output\\\":\\\"1f320\\\"},\\\"1f387\\\":{\\\"name\\\":\\\"sparkler\\\",\\\"shortname\\\":\\\":sparkler:\\\",\\\"shortname_alternates\\\":[],\\\"keywords\\\":[\\\"celebration\\\",\\\"fireworks\\\",\\\"sparkle\\\"],\\\"unicode_output\\\":\\\"1f387\\\"},\\\"1f386\\\":{\\\"name\\\":\\\"fireworks\\\",\\\"shortname\\\":\\\":fireworks:\\\",\\\"shortname_alternates\\\":[],\\\"keywords\\\":[\\\"celebration\\\"],\\\"unicode_output\\\":\\\"1f386\\\"},\\\"1f307\\\":{\\\"name\\\":\\\"sunset\\\",\\\"shortname\\\":\\\":city_sunset:\\\",\\\"shortname_alternates\\\":[\\\":city_sunrise:\\\"],\\\"keywords\\\":[\\\"dusk\\\",\\\"sun\\\"],\\\"unicode_output\\\":\\\"1f307\\\"},\\\"1f3d9\\\":{\\\"name\\\":\\\"cityscape\\\",\\\"shortname\\\":\\\":cityscape:\\\",\\\"shortname_alternates\\\":[],\\\"keywords\\\":[\\\"city\\\"],\\\"unicode_output\\\":\\\"1f3d9-fe0f\\\"},\\\"1f303\\\":{\\\"name\\\":\\\"night with stars\\\",\\\"shortname\\\":\\\":night_with_stars:\\\",\\\"shortname_alternates\\\":[],\\\"keywords\\\":[\\\"night\\\",\\\"star\\\"],\\\"unicode_output\\\":\\\"1f303\\\"},\\\"1f30c\\\":{\\\"name\\\":\\\"milky way\\\",\\\"shortname\\\":\\\":milky_way:\\\",\\\"shortname_alternates\\\":[],\\\"keywords\\\":[\\\"space\\\"],\\\"unicode_output\\\":\\\"1f30c\\\"},\\\"1f309\\\":{\\\"name\\\":\\\"bridge at night\\\",\\\"shortname\\\":\\\":bridge_at_night:\\\",\\\"shortname_alternates\\\":[],\\\"keywords\\\":[\\\"bridge\\\",\\\"night\\\"],\\\"unicode_output\\\":\\\"1f309\\\"},\\\"1f301\\\":{\\\"name\\\":\\\"foggy\\\",\\\"shortname\\\":\\\":foggy:\\\",\\\"shortname_alternates\\\":[],\\\"keywords\\\":[\\\"fog\\\"],\\\"unicode_output\\\":\\\"1f301\\\"},\\\"231a\\\":{\\\"name\\\":\\\"watch\\\",\\\"shortname\\\":\\\":watch:\\\",\\\"shortname_alternates\\\":[],\\\"keywords\\\":[\\\"clock\\\"],\\\"unicode_output\\\":\\\"231a\\\"},\\\"1f4f1\\\":{\\\"name\\\":\\\"mobile phone\\\",\\\"shortname\\\":\\\":iphone:\\\",\\\"shortname_alternates\\\":[],\\\"keywords\\\":[\\\"cell\\\",\\\"mobile\\\",\\\"phone\\\",\\\"telephone\\\"],\\\"unicode_output\\\":\\\"1f4f1\\\"},\\\"1f4f2\\\":{\\\"name\\\":\\\"mobile phone with arrow\\\",\\\"shortname\\\":\\\":calling:\\\",\\\"shortname_alternates\\\":[],\\\"keywords\\\":[\\\"arrow\\\",\\\"call\\\",\\\"cell\\\",\\\"mobile\\\",\\\"phone\\\",\\\"receive\\\",\\\"telephone\\\"],\\\"unicode_output\\\":\\\"1f4f2\\\"},\\\"1f4bb\\\":{\\\"name\\\":\\\"laptop computer\\\",\\\"shortname\\\":\\\":computer:\\\",\\\"shortname_alternates\\\":[],\\\"keywords\\\":[\\\"computer\\\",\\\"pc\\\",\\\"personal\\\"],\\\"unicode_output\\\":\\\"1f4bb\\\"},\\\"1f5a8\\\":{\\\"name\\\":\\\"printer\\\",\\\"shortname\\\":\\\":printer:\\\",\\\"shortname_alternates\\\":[],\\\"keywords\\\":[\\\"computer\\\"],\\\"unicode_output\\\":\\\"1f5a8-fe0f\\\"},\\\"1f5b2\\\":{\\\"name\\\":\\\"trackball\\\",\\\"shortname\\\":\\\":trackball:\\\",\\\"shortname_alternates\\\":[],\\\"keywords\\\":[\\\"computer\\\"],\\\"unicode_output\\\":\\\"1f5b2-fe0f\\\"},\\\"1f579\\\":{\\\"name\\\":\\\"joystick\\\",\\\"shortname\\\":\\\":joystick:\\\",\\\"shortname_alternates\\\":[],\\\"keywords\\\":[\\\"game\\\",\\\"video game\\\"],\\\"unicode_output\\\":\\\"1f579-fe0f\\\"},\\\"1f4bd\\\":{\\\"name\\\":\\\"computer disk\\\",\\\"shortname\\\":\\\":minidisc:\\\",\\\"shortname_alternates\\\":[],\\\"keywords\\\":[\\\"computer\\\",\\\"disk\\\",\\\"minidisk\\\",\\\"optical\\\"],\\\"unicode_output\\\":\\\"1f4bd\\\"},\\\"1f4be\\\":{\\\"name\\\":\\\"floppy disk\\\",\\\"shortname\\\":\\\":floppy_disk:\\\",\\\"shortname_alternates\\\":[],\\\"keywords\\\":[\\\"computer\\\",\\\"disk\\\",\\\"floppy\\\"],\\\"unicode_output\\\":\\\"1f4be\\\"},\\\"1f4bf\\\":{\\\"name\\\":\\\"optical disk\\\",\\\"shortname\\\":\\\":cd:\\\",\\\"shortname_alternates\\\":[],\\\"keywords\\\":[\\\"cd\\\",\\\"computer\\\",\\\"disk\\\",\\\"optical\\\"],\\\"unicode_output\\\":\\\"1f4bf\\\"},\\\"1f4c0\\\":{\\\"name\\\":\\\"dvd\\\",\\\"shortname\\\":\\\":dvd:\\\",\\\"shortname_alternates\\\":[],\\\"keywords\\\":[\\\"blu-ray\\\",\\\"computer\\\",\\\"disk\\\",\\\"dvd\\\",\\\"optical\\\"],\\\"unicode_output\\\":\\\"1f4c0\\\"},\\\"1f4fc\\\":{\\\"name\\\":\\\"videocassette\\\",\\\"shortname\\\":\\\":vhs:\\\",\\\"shortname_alternates\\\":[],\\\"keywords\\\":[\\\"tape\\\",\\\"vhs\\\",\\\"video\\\"],\\\"unicode_output\\\":\\\"1f4fc\\\"},\\\"1f4f7\\\":{\\\"name\\\":\\\"camera\\\",\\\"shortname\\\":\\\":camera:\\\",\\\"shortname_alternates\\\":[],\\\"keywords\\\":[\\\"video\\\"],\\\"unicode_output\\\":\\\"1f4f7\\\"},\\\"1f4f9\\\":{\\\"name\\\":\\\"video camera\\\",\\\"shortname\\\":\\\":video_camera:\\\",\\\"shortname_alternates\\\":[],\\\"keywords\\\":[\\\"camera\\\",\\\"video\\\"],\\\"unicode_output\\\":\\\"1f4f9\\\"},\\\"1f3a5\\\":{\\\"name\\\":\\\"movie camera\\\",\\\"shortname\\\":\\\":movie_camera:\\\",\\\"shortname_alternates\\\":[],\\\"keywords\\\":[\\\"camera\\\",\\\"cinema\\\",\\\"movie\\\"],\\\"unicode_output\\\":\\\"1f3a5\\\"},\\\"1f4de\\\":{\\\"name\\\":\\\"telephone receiver\\\",\\\"shortname\\\":\\\":telephone_receiver:\\\",\\\"shortname_alternates\\\":[],\\\"keywords\\\":[\\\"phone\\\",\\\"receiver\\\",\\\"telephone\\\"],\\\"unicode_output\\\":\\\"1f4de\\\"},\\\"260e\\\":{\\\"name\\\":\\\"telephone\\\",\\\"shortname\\\":\\\":telephone:\\\",\\\"shortname_alternates\\\":[],\\\"keywords\\\":[\\\"phone\\\"],\\\"unicode_output\\\":\\\"260e-fe0f\\\"},\\\"1f4df\\\":{\\\"name\\\":\\\"pager\\\",\\\"shortname\\\":\\\":pager:\\\",\\\"shortname_alternates\\\":[],\\\"keywords\\\":[\\\"pager\\\"],\\\"unicode_output\\\":\\\"1f4df\\\"},\\\"1f4e0\\\":{\\\"name\\\":\\\"fax machine\\\",\\\"shortname\\\":\\\":fax:\\\",\\\"shortname_alternates\\\":[],\\\"keywords\\\":[\\\"fax\\\"],\\\"unicode_output\\\":\\\"1f4e0\\\"},\\\"1f4fa\\\":{\\\"name\\\":\\\"television\\\",\\\"shortname\\\":\\\":tv:\\\",\\\"shortname_alternates\\\":[],\\\"keywords\\\":[\\\"tv\\\",\\\"video\\\"],\\\"unicode_output\\\":\\\"1f4fa\\\"},\\\"1f4fb\\\":{\\\"name\\\":\\\"radio\\\",\\\"shortname\\\":\\\":radio:\\\",\\\"shortname_alternates\\\":[],\\\"keywords\\\":[\\\"video\\\"],\\\"unicode_output\\\":\\\"1f4fb\\\"},\\\"1f39a\\\":{\\\"name\\\":\\\"level slider\\\",\\\"shortname\\\":\\\":level_slider:\\\",\\\"shortname_alternates\\\":[],\\\"keywords\\\":[\\\"level\\\",\\\"music\\\",\\\"slider\\\"],\\\"unicode_output\\\":\\\"1f39a-fe0f\\\"},\\\"1f39b\\\":{\\\"name\\\":\\\"control knobs\\\",\\\"shortname\\\":\\\":control_knobs:\\\",\\\"shortname_alternates\\\":[],\\\"keywords\\\":[\\\"control\\\",\\\"knobs\\\",\\\"music\\\"],\\\"unicode_output\\\":\\\"1f39b-fe0f\\\"},\\\"23f1\\\":{\\\"name\\\":\\\"stopwatch\\\",\\\"shortname\\\":\\\":stopwatch:\\\",\\\"shortname_alternates\\\":[],\\\"keywords\\\":[\\\"clock\\\"],\\\"unicode_output\\\":\\\"23f1-fe0f\\\"},\\\"23f0\\\":{\\\"name\\\":\\\"alarm clock\\\",\\\"shortname\\\":\\\":alarm_clock:\\\",\\\"shortname_alternates\\\":[],\\\"keywords\\\":[\\\"alarm\\\",\\\"clock\\\"],\\\"unicode_output\\\":\\\"23f0\\\"},\\\"231b\\\":{\\\"name\\\":\\\"hourglass\\\",\\\"shortname\\\":\\\":hourglass:\\\",\\\"shortname_alternates\\\":[],\\\"keywords\\\":[\\\"sand\\\",\\\"timer\\\"],\\\"unicode_output\\\":\\\"231b\\\"},\\\"23f3\\\":{\\\"name\\\":\\\"hourglass with flowing sand\\\",\\\"shortname\\\":\\\":hourglass_flowing_sand:\\\",\\\"shortname_alternates\\\":[],\\\"keywords\\\":[\\\"hourglass\\\",\\\"sand\\\",\\\"timer\\\"],\\\"unicode_output\\\":\\\"23f3\\\"},\\\"1f4e1\\\":{\\\"name\\\":\\\"satellite antenna\\\",\\\"shortname\\\":\\\":satellite:\\\",\\\"shortname_alternates\\\":[],\\\"keywords\\\":[\\\"antenna\\\",\\\"dish\\\",\\\"satellite\\\"],\\\"unicode_output\\\":\\\"1f4e1\\\"},\\\"1f50b\\\":{\\\"name\\\":\\\"battery\\\",\\\"shortname\\\":\\\":battery:\\\",\\\"shortname_alternates\\\":[],\\\"keywords\\\":[\\\"battery\\\"],\\\"unicode_output\\\":\\\"1f50b\\\"},\\\"1f50c\\\":{\\\"name\\\":\\\"electric plug\\\",\\\"shortname\\\":\\\":electric_plug:\\\",\\\"shortname_alternates\\\":[],\\\"keywords\\\":[\\\"electric\\\",\\\"electricity\\\",\\\"plug\\\"],\\\"unicode_output\\\":\\\"1f50c\\\"},\\\"1f4a1\\\":{\\\"name\\\":\\\"light bulb\\\",\\\"shortname\\\":\\\":bulb:\\\",\\\"shortname_alternates\\\":[],\\\"keywords\\\":[\\\"bulb\\\",\\\"comic\\\",\\\"electric\\\",\\\"idea\\\",\\\"light\\\"],\\\"unicode_output\\\":\\\"1f4a1\\\"},\\\"1f526\\\":{\\\"name\\\":\\\"flashlight\\\",\\\"shortname\\\":\\\":flashlight:\\\",\\\"shortname_alternates\\\":[],\\\"keywords\\\":[\\\"electric\\\",\\\"light\\\",\\\"tool\\\",\\\"torch\\\"],\\\"unicode_output\\\":\\\"1f526\\\"},\\\"1f56f\\\":{\\\"name\\\":\\\"candle\\\",\\\"shortname\\\":\\\":candle:\\\",\\\"shortname_alternates\\\":[],\\\"keywords\\\":[\\\"light\\\"],\\\"unicode_output\\\":\\\"1f56f-fe0f\\\"},\\\"1f5d1\\\":{\\\"name\\\":\\\"wastebasket\\\",\\\"shortname\\\":\\\":wastebasket:\\\",\\\"shortname_alternates\\\":[],\\\"keywords\\\":[\\\"wastebasket\\\"],\\\"unicode_output\\\":\\\"1f5d1-fe0f\\\"},\\\"1f4b8\\\":{\\\"name\\\":\\\"money with wings\\\",\\\"shortname\\\":\\\":money_with_wings:\\\",\\\"shortname_alternates\\\":[],\\\"keywords\\\":[\\\"bank\\\",\\\"banknote\\\",\\\"bill\\\",\\\"dollar\\\",\\\"fly\\\",\\\"money\\\",\\\"note\\\",\\\"wings\\\"],\\\"unicode_output\\\":\\\"1f4b8\\\"},\\\"1f4b5\\\":{\\\"name\\\":\\\"dollar banknote\\\",\\\"shortname\\\":\\\":dollar:\\\",\\\"shortname_alternates\\\":[],\\\"keywords\\\":[\\\"bank\\\",\\\"banknote\\\",\\\"bill\\\",\\\"currency\\\",\\\"dollar\\\",\\\"money\\\",\\\"note\\\"],\\\"unicode_output\\\":\\\"1f4b5\\\"},\\\"1f4b4\\\":{\\\"name\\\":\\\"yen banknote\\\",\\\"shortname\\\":\\\":yen:\\\",\\\"shortname_alternates\\\":[],\\\"keywords\\\":[\\\"bank\\\",\\\"banknote\\\",\\\"bill\\\",\\\"currency\\\",\\\"money\\\",\\\"note\\\",\\\"yen\\\"],\\\"unicode_output\\\":\\\"1f4b4\\\"},\\\"1f4b6\\\":{\\\"name\\\":\\\"euro banknote\\\",\\\"shortname\\\":\\\":euro:\\\",\\\"shortname_alternates\\\":[],\\\"keywords\\\":[\\\"bank\\\",\\\"banknote\\\",\\\"bill\\\",\\\"currency\\\",\\\"euro\\\",\\\"money\\\",\\\"note\\\"],\\\"unicode_output\\\":\\\"1f4b6\\\"},\\\"1f4b7\\\":{\\\"name\\\":\\\"pound banknote\\\",\\\"shortname\\\":\\\":pound:\\\",\\\"shortname_alternates\\\":[],\\\"keywords\\\":[\\\"bank\\\",\\\"banknote\\\",\\\"bill\\\",\\\"currency\\\",\\\"money\\\",\\\"note\\\",\\\"pound\\\"],\\\"unicode_output\\\":\\\"1f4b7\\\"},\\\"1f4b0\\\":{\\\"name\\\":\\\"money bag\\\",\\\"shortname\\\":\\\":moneybag:\\\",\\\"shortname_alternates\\\":[],\\\"keywords\\\":[\\\"bag\\\",\\\"dollar\\\",\\\"money\\\",\\\"moneybag\\\"],\\\"unicode_output\\\":\\\"1f4b0\\\"},\\\"1f4b3\\\":{\\\"name\\\":\\\"credit card\\\",\\\"shortname\\\":\\\":credit_card:\\\",\\\"shortname_alternates\\\":[],\\\"keywords\\\":[\\\"bank\\\",\\\"card\\\",\\\"credit\\\",\\\"money\\\"],\\\"unicode_output\\\":\\\"1f4b3\\\"},\\\"1f48e\\\":{\\\"name\\\":\\\"gem stone\\\",\\\"shortname\\\":\\\":gem:\\\",\\\"shortname_alternates\\\":[],\\\"keywords\\\":[\\\"diamond\\\",\\\"gem\\\",\\\"jewel\\\"],\\\"unicode_output\\\":\\\"1f48e\\\"},\\\"1f527\\\":{\\\"name\\\":\\\"wrench\\\",\\\"shortname\\\":\\\":wrench:\\\",\\\"shortname_alternates\\\":[],\\\"keywords\\\":[\\\"spanner\\\",\\\"tool\\\",\\\"wrench\\\"],\\\"unicode_output\\\":\\\"1f527\\\"},\\\"1f528\\\":{\\\"name\\\":\\\"hammer\\\",\\\"shortname\\\":\\\":hammer:\\\",\\\"shortname_alternates\\\":[],\\\"keywords\\\":[\\\"tool\\\"],\\\"unicode_output\\\":\\\"1f528\\\"},\\\"26cf\\\":{\\\"name\\\":\\\"pick\\\",\\\"shortname\\\":\\\":pick:\\\",\\\"shortname_alternates\\\":[],\\\"keywords\\\":[\\\"mining\\\",\\\"tool\\\"],\\\"unicode_output\\\":\\\"26cf-fe0f\\\"},\\\"1f529\\\":{\\\"name\\\":\\\"nut and bolt\\\",\\\"shortname\\\":\\\":nut_and_bolt:\\\",\\\"shortname_alternates\\\":[],\\\"keywords\\\":[\\\"bolt\\\",\\\"nut\\\",\\\"tool\\\"],\\\"unicode_output\\\":\\\"1f529\\\"},\\\"26d3\\\":{\\\"name\\\":\\\"chains\\\",\\\"shortname\\\":\\\":chains:\\\",\\\"shortname_alternates\\\":[],\\\"keywords\\\":[\\\"chain\\\"],\\\"unicode_output\\\":\\\"26d3-fe0f\\\"},\\\"1f52b\\\":{\\\"name\\\":\\\"pistol\\\",\\\"shortname\\\":\\\":gun:\\\",\\\"shortname_alternates\\\":[],\\\"keywords\\\":[\\\"gun\\\",\\\"handgun\\\",\\\"revolver\\\",\\\"tool\\\",\\\"weapon\\\"],\\\"unicode_output\\\":\\\"1f52b\\\"},\\\"1f4a3\\\":{\\\"name\\\":\\\"bomb\\\",\\\"shortname\\\":\\\":bomb:\\\",\\\"shortname_alternates\\\":[],\\\"keywords\\\":[\\\"comic\\\"],\\\"unicode_output\\\":\\\"1f4a3\\\"},\\\"1f52a\\\":{\\\"name\\\":\\\"kitchen knife\\\",\\\"shortname\\\":\\\":knife:\\\",\\\"shortname_alternates\\\":[],\\\"keywords\\\":[\\\"cooking\\\",\\\"hocho\\\",\\\"knife\\\",\\\"tool\\\",\\\"weapon\\\"],\\\"unicode_output\\\":\\\"1f52a\\\"},\\\"1f5e1\\\":{\\\"name\\\":\\\"dagger\\\",\\\"shortname\\\":\\\":dagger:\\\",\\\"shortname_alternates\\\":[\\\":dagger_knife:\\\"],\\\"keywords\\\":[\\\"knife\\\",\\\"weapon\\\"],\\\"unicode_output\\\":\\\"1f5e1-fe0f\\\"},\\\"1f6e1\\\":{\\\"name\\\":\\\"shield\\\",\\\"shortname\\\":\\\":shield:\\\",\\\"shortname_alternates\\\":[],\\\"keywords\\\":[\\\"weapon\\\"],\\\"unicode_output\\\":\\\"1f6e1-fe0f\\\"},\\\"1f6ac\\\":{\\\"name\\\":\\\"cigarette\\\",\\\"shortname\\\":\\\":smoking:\\\",\\\"shortname_alternates\\\":[],\\\"keywords\\\":[\\\"smoking\\\"],\\\"unicode_output\\\":\\\"1f6ac\\\"},\\\"26b0\\\":{\\\"name\\\":\\\"coffin\\\",\\\"shortname\\\":\\\":coffin:\\\",\\\"shortname_alternates\\\":[],\\\"keywords\\\":[\\\"death\\\"],\\\"unicode_output\\\":\\\"26b0-fe0f\\\"},\\\"1f3fa\\\":{\\\"name\\\":\\\"amphora\\\",\\\"shortname\\\":\\\":amphora:\\\",\\\"shortname_alternates\\\":[],\\\"keywords\\\":[\\\"Aquarius\\\",\\\"cooking\\\",\\\"drink\\\",\\\"jug\\\",\\\"tool\\\",\\\"weapon\\\",\\\"zodiac\\\"],\\\"unicode_output\\\":\\\"1f3fa\\\"},\\\"1f52e\\\":{\\\"name\\\":\\\"crystal ball\\\",\\\"shortname\\\":\\\":crystal_ball:\\\",\\\"shortname_alternates\\\":[],\\\"keywords\\\":[\\\"ball\\\",\\\"crystal\\\",\\\"fairy tale\\\",\\\"fantasy\\\",\\\"fortune\\\",\\\"tool\\\"],\\\"unicode_output\\\":\\\"1f52e\\\"},\\\"1f4ff\\\":{\\\"name\\\":\\\"prayer beads\\\",\\\"shortname\\\":\\\":prayer_beads:\\\",\\\"shortname_alternates\\\":[],\\\"keywords\\\":[\\\"beads\\\",\\\"clothing\\\",\\\"necklace\\\",\\\"prayer\\\",\\\"religion\\\"],\\\"unicode_output\\\":\\\"1f4ff\\\"},\\\"1f488\\\":{\\\"name\\\":\\\"barber pole\\\",\\\"shortname\\\":\\\":barber:\\\",\\\"shortname_alternates\\\":[],\\\"keywords\\\":[\\\"barber\\\",\\\"haircut\\\",\\\"pole\\\"],\\\"unicode_output\\\":\\\"1f488\\\"},\\\"1f52d\\\":{\\\"name\\\":\\\"telescope\\\",\\\"shortname\\\":\\\":telescope:\\\",\\\"shortname_alternates\\\":[],\\\"keywords\\\":[\\\"science\\\",\\\"tool\\\"],\\\"unicode_output\\\":\\\"1f52d\\\"},\\\"1f52c\\\":{\\\"name\\\":\\\"microscope\\\",\\\"shortname\\\":\\\":microscope:\\\",\\\"shortname_alternates\\\":[],\\\"keywords\\\":[\\\"science\\\",\\\"tool\\\"],\\\"unicode_output\\\":\\\"1f52c\\\"},\\\"1f573\\\":{\\\"name\\\":\\\"hole\\\",\\\"shortname\\\":\\\":hole:\\\",\\\"shortname_alternates\\\":[],\\\"keywords\\\":[\\\"hole\\\"],\\\"unicode_output\\\":\\\"1f573-fe0f\\\"},\\\"1f48a\\\":{\\\"name\\\":\\\"pill\\\",\\\"shortname\\\":\\\":pill:\\\",\\\"shortname_alternates\\\":[],\\\"keywords\\\":[\\\"doctor\\\",\\\"medicine\\\",\\\"sick\\\"],\\\"unicode_output\\\":\\\"1f48a\\\"},\\\"1f489\\\":{\\\"name\\\":\\\"syringe\\\",\\\"shortname\\\":\\\":syringe:\\\",\\\"shortname_alternates\\\":[],\\\"keywords\\\":[\\\"doctor\\\",\\\"medicine\\\",\\\"needle\\\",\\\"shot\\\",\\\"sick\\\",\\\"tool\\\"],\\\"unicode_output\\\":\\\"1f489\\\"},\\\"1f321\\\":{\\\"name\\\":\\\"thermometer\\\",\\\"shortname\\\":\\\":thermometer:\\\",\\\"shortname_alternates\\\":[],\\\"keywords\\\":[\\\"weather\\\"],\\\"unicode_output\\\":\\\"1f321-fe0f\\\"},\\\"1f6bd\\\":{\\\"name\\\":\\\"toilet\\\",\\\"shortname\\\":\\\":toilet:\\\",\\\"shortname_alternates\\\":[],\\\"keywords\\\":[\\\"toilet\\\"],\\\"unicode_output\\\":\\\"1f6bd\\\"},\\\"1f6b0\\\":{\\\"name\\\":\\\"potable water\\\",\\\"shortname\\\":\\\":potable_water:\\\",\\\"shortname_alternates\\\":[],\\\"keywords\\\":[\\\"drinking\\\",\\\"potable\\\",\\\"water\\\"],\\\"unicode_output\\\":\\\"1f6b0\\\"},\\\"1f6bf\\\":{\\\"name\\\":\\\"shower\\\",\\\"shortname\\\":\\\":shower:\\\",\\\"shortname_alternates\\\":[],\\\"keywords\\\":[\\\"water\\\"],\\\"unicode_output\\\":\\\"1f6bf\\\"},\\\"1f6c1\\\":{\\\"name\\\":\\\"bathtub\\\",\\\"shortname\\\":\\\":bathtub:\\\",\\\"shortname_alternates\\\":[],\\\"keywords\\\":[\\\"bath\\\"],\\\"unicode_output\\\":\\\"1f6c1\\\"},\\\"1f6c0\\\":{\\\"name\\\":\\\"person taking bath\\\",\\\"shortname\\\":\\\":bath:\\\",\\\"shortname_alternates\\\":[],\\\"keywords\\\":[\\\"bath\\\",\\\"bathtub\\\"],\\\"unicode_output\\\":\\\"1f6c0\\\"},\\\"1f511\\\":{\\\"name\\\":\\\"key\\\",\\\"shortname\\\":\\\":key:\\\",\\\"shortname_alternates\\\":[],\\\"keywords\\\":[\\\"lock\\\",\\\"password\\\"],\\\"unicode_output\\\":\\\"1f511\\\"},\\\"1f6aa\\\":{\\\"name\\\":\\\"door\\\",\\\"shortname\\\":\\\":door:\\\",\\\"shortname_alternates\\\":[],\\\"keywords\\\":[\\\"door\\\"],\\\"unicode_output\\\":\\\"1f6aa\\\"},\\\"1f6cf\\\":{\\\"name\\\":\\\"bed\\\",\\\"shortname\\\":\\\":bed:\\\",\\\"shortname_alternates\\\":[],\\\"keywords\\\":[\\\"hotel\\\",\\\"sleep\\\"],\\\"unicode_output\\\":\\\"1f6cf-fe0f\\\"},\\\"1f6d2\\\":{\\\"name\\\":\\\"shopping cart\\\",\\\"shortname\\\":\\\":shopping_cart:\\\",\\\"shortname_alternates\\\":[\\\":shopping_trolley:\\\"],\\\"keywords\\\":[\\\"cart\\\",\\\"shopping\\\",\\\"trolley\\\"],\\\"unicode_output\\\":\\\"1f6d2\\\"},\\\"1f381\\\":{\\\"name\\\":\\\"wrapped gift\\\",\\\"shortname\\\":\\\":gift:\\\",\\\"shortname_alternates\\\":[],\\\"keywords\\\":[\\\"box\\\",\\\"celebration\\\",\\\"gift\\\",\\\"present\\\",\\\"wrapped\\\"],\\\"unicode_output\\\":\\\"1f381\\\"},\\\"1f388\\\":{\\\"name\\\":\\\"balloon\\\",\\\"shortname\\\":\\\":balloon:\\\",\\\"shortname_alternates\\\":[],\\\"keywords\\\":[\\\"celebration\\\"],\\\"unicode_output\\\":\\\"1f388\\\"},\\\"1f38f\\\":{\\\"name\\\":\\\"carp streamer\\\",\\\"shortname\\\":\\\":flags:\\\",\\\"shortname_alternates\\\":[],\\\"keywords\\\":[\\\"carp\\\",\\\"celebration\\\",\\\"streamer\\\"],\\\"unicode_output\\\":\\\"1f38f\\\"},\\\"1f380\\\":{\\\"name\\\":\\\"ribbon\\\",\\\"shortname\\\":\\\":ribbon:\\\",\\\"shortname_alternates\\\":[],\\\"keywords\\\":[\\\"celebration\\\"],\\\"unicode_output\\\":\\\"1f380\\\"},\\\"1f38a\\\":{\\\"name\\\":\\\"confetti ball\\\",\\\"shortname\\\":\\\":confetti_ball:\\\",\\\"shortname_alternates\\\":[],\\\"keywords\\\":[\\\"ball\\\",\\\"celebration\\\",\\\"confetti\\\"],\\\"unicode_output\\\":\\\"1f38a\\\"},\\\"1f389\\\":{\\\"name\\\":\\\"party popper\\\",\\\"shortname\\\":\\\":tada:\\\",\\\"shortname_alternates\\\":[],\\\"keywords\\\":[\\\"celebration\\\",\\\"party\\\",\\\"popper\\\",\\\"tada\\\"],\\\"unicode_output\\\":\\\"1f389\\\"},\\\"1f38e\\\":{\\\"name\\\":\\\"Japanese dolls\\\",\\\"shortname\\\":\\\":dolls:\\\",\\\"shortname_alternates\\\":[],\\\"keywords\\\":[\\\"Japanese\\\",\\\"celebration\\\",\\\"doll\\\",\\\"festival\\\"],\\\"unicode_output\\\":\\\"1f38e\\\"},\\\"1f3ee\\\":{\\\"name\\\":\\\"red paper lantern\\\",\\\"shortname\\\":\\\":izakaya_lantern:\\\",\\\"shortname_alternates\\\":[],\\\"keywords\\\":[\\\"bar\\\",\\\"lantern\\\",\\\"light\\\",\\\"red\\\"],\\\"unicode_output\\\":\\\"1f3ee\\\"},\\\"1f390\\\":{\\\"name\\\":\\\"wind chime\\\",\\\"shortname\\\":\\\":wind_chime:\\\",\\\"shortname_alternates\\\":[],\\\"keywords\\\":[\\\"bell\\\",\\\"celebration\\\",\\\"chime\\\",\\\"wind\\\"],\\\"unicode_output\\\":\\\"1f390\\\"},\\\"1f4e9\\\":{\\\"name\\\":\\\"envelope with arrow\\\",\\\"shortname\\\":\\\":envelope_with_arrow:\\\",\\\"shortname_alternates\\\":[],\\\"keywords\\\":[\\\"arrow\\\",\\\"down\\\",\\\"e-mail\\\",\\\"email\\\",\\\"envelope\\\",\\\"letter\\\",\\\"mail\\\",\\\"outgoing\\\",\\\"sent\\\"],\\\"unicode_output\\\":\\\"1f4e9\\\"},\\\"1f4e8\\\":{\\\"name\\\":\\\"incoming envelope\\\",\\\"shortname\\\":\\\":incoming_envelope:\\\",\\\"shortname_alternates\\\":[],\\\"keywords\\\":[\\\"e-mail\\\",\\\"email\\\",\\\"envelope\\\",\\\"incoming\\\",\\\"letter\\\",\\\"mail\\\",\\\"receive\\\"],\\\"unicode_output\\\":\\\"1f4e8\\\"},\\\"1f4e7\\\":{\\\"name\\\":\\\"e-mail\\\",\\\"shortname\\\":\\\":e-mail:\\\",\\\"shortname_alternates\\\":[\\\":email:\\\"],\\\"keywords\\\":[\\\"email\\\",\\\"letter\\\",\\\"mail\\\"],\\\"unicode_output\\\":\\\"1f4e7\\\"},\\\"1f48c\\\":{\\\"name\\\":\\\"love letter\\\",\\\"shortname\\\":\\\":love_letter:\\\",\\\"shortname_alternates\\\":[],\\\"keywords\\\":[\\\"heart\\\",\\\"letter\\\",\\\"love\\\",\\\"mail\\\"],\\\"unicode_output\\\":\\\"1f48c\\\"},\\\"1f4e5\\\":{\\\"name\\\":\\\"inbox tray\\\",\\\"shortname\\\":\\\":inbox_tray:\\\",\\\"shortname_alternates\\\":[],\\\"keywords\\\":[\\\"box\\\",\\\"inbox\\\",\\\"letter\\\",\\\"mail\\\",\\\"receive\\\",\\\"tray\\\"],\\\"unicode_output\\\":\\\"1f4e5\\\"},\\\"1f4e4\\\":{\\\"name\\\":\\\"outbox tray\\\",\\\"shortname\\\":\\\":outbox_tray:\\\",\\\"shortname_alternates\\\":[],\\\"keywords\\\":[\\\"box\\\",\\\"letter\\\",\\\"mail\\\",\\\"outbox\\\",\\\"sent\\\",\\\"tray\\\"],\\\"unicode_output\\\":\\\"1f4e4\\\"},\\\"1f4e6\\\":{\\\"name\\\":\\\"package\\\",\\\"shortname\\\":\\\":package:\\\",\\\"shortname_alternates\\\":[],\\\"keywords\\\":[\\\"box\\\",\\\"parcel\\\"],\\\"unicode_output\\\":\\\"1f4e6\\\"},\\\"1f3f7\\\":{\\\"name\\\":\\\"label\\\",\\\"shortname\\\":\\\":label:\\\",\\\"shortname_alternates\\\":[],\\\"keywords\\\":[\\\"label\\\"],\\\"unicode_output\\\":\\\"1f3f7-fe0f\\\"},\\\"1f4ea\\\":{\\\"name\\\":\\\"closed mailbox with lowered flag\\\",\\\"shortname\\\":\\\":mailbox_closed:\\\",\\\"shortname_alternates\\\":[],\\\"keywords\\\":[\\\"closed\\\",\\\"lowered\\\",\\\"mail\\\",\\\"mailbox\\\",\\\"postbox\\\"],\\\"unicode_output\\\":\\\"1f4ea\\\"},\\\"1f4eb\\\":{\\\"name\\\":\\\"closed mailbox with raised flag\\\",\\\"shortname\\\":\\\":mailbox:\\\",\\\"shortname_alternates\\\":[],\\\"keywords\\\":[\\\"closed\\\",\\\"mail\\\",\\\"mailbox\\\",\\\"postbox\\\"],\\\"unicode_output\\\":\\\"1f4eb\\\"},\\\"1f4ec\\\":{\\\"name\\\":\\\"open mailbox with raised flag\\\",\\\"shortname\\\":\\\":mailbox_with_mail:\\\",\\\"shortname_alternates\\\":[],\\\"keywords\\\":[\\\"mail\\\",\\\"mailbox\\\",\\\"open\\\",\\\"postbox\\\"],\\\"unicode_output\\\":\\\"1f4ec\\\"},\\\"1f4ed\\\":{\\\"name\\\":\\\"open mailbox with lowered flag\\\",\\\"shortname\\\":\\\":mailbox_with_no_mail:\\\",\\\"shortname_alternates\\\":[],\\\"keywords\\\":[\\\"lowered\\\",\\\"mail\\\",\\\"mailbox\\\",\\\"open\\\",\\\"postbox\\\"],\\\"unicode_output\\\":\\\"1f4ed\\\"},\\\"1f4ee\\\":{\\\"name\\\":\\\"postbox\\\",\\\"shortname\\\":\\\":postbox:\\\",\\\"shortname_alternates\\\":[],\\\"keywords\\\":[\\\"mail\\\",\\\"mailbox\\\"],\\\"unicode_output\\\":\\\"1f4ee\\\"},\\\"1f4ef\\\":{\\\"name\\\":\\\"postal horn\\\",\\\"shortname\\\":\\\":postal_horn:\\\",\\\"shortname_alternates\\\":[],\\\"keywords\\\":[\\\"horn\\\",\\\"post\\\",\\\"postal\\\"],\\\"unicode_output\\\":\\\"1f4ef\\\"},\\\"1f4dc\\\":{\\\"name\\\":\\\"scroll\\\",\\\"shortname\\\":\\\":scroll:\\\",\\\"shortname_alternates\\\":[],\\\"keywords\\\":[\\\"paper\\\"],\\\"unicode_output\\\":\\\"1f4dc\\\"},\\\"1f4c3\\\":{\\\"name\\\":\\\"page with curl\\\",\\\"shortname\\\":\\\":page_with_curl:\\\",\\\"shortname_alternates\\\":[],\\\"keywords\\\":[\\\"curl\\\",\\\"document\\\",\\\"page\\\"],\\\"unicode_output\\\":\\\"1f4c3\\\"},\\\"1f4c4\\\":{\\\"name\\\":\\\"page facing up\\\",\\\"shortname\\\":\\\":page_facing_up:\\\",\\\"shortname_alternates\\\":[],\\\"keywords\\\":[\\\"document\\\",\\\"page\\\"],\\\"unicode_output\\\":\\\"1f4c4\\\"},\\\"1f4d1\\\":{\\\"name\\\":\\\"bookmark tabs\\\",\\\"shortname\\\":\\\":bookmark_tabs:\\\",\\\"shortname_alternates\\\":[],\\\"keywords\\\":[\\\"bookmark\\\",\\\"mark\\\",\\\"marker\\\",\\\"tabs\\\"],\\\"unicode_output\\\":\\\"1f4d1\\\"},\\\"1f4ca\\\":{\\\"name\\\":\\\"bar chart\\\",\\\"shortname\\\":\\\":bar_chart:\\\",\\\"shortname_alternates\\\":[],\\\"keywords\\\":[\\\"bar\\\",\\\"chart\\\",\\\"graph\\\"],\\\"unicode_output\\\":\\\"1f4ca\\\"},\\\"1f4c8\\\":{\\\"name\\\":\\\"chart increasing\\\",\\\"shortname\\\":\\\":chart_with_upwards_trend:\\\",\\\"shortname_alternates\\\":[],\\\"keywords\\\":[\\\"chart\\\",\\\"graph\\\",\\\"growth\\\",\\\"trend\\\",\\\"upward\\\"],\\\"unicode_output\\\":\\\"1f4c8\\\"},\\\"1f4c9\\\":{\\\"name\\\":\\\"chart decreasing\\\",\\\"shortname\\\":\\\":chart_with_downwards_trend:\\\",\\\"shortname_alternates\\\":[],\\\"keywords\\\":[\\\"chart\\\",\\\"down\\\",\\\"graph\\\",\\\"trend\\\"],\\\"unicode_output\\\":\\\"1f4c9\\\"},\\\"1f4c6\\\":{\\\"name\\\":\\\"tear-off calendar\\\",\\\"shortname\\\":\\\":calendar:\\\",\\\"shortname_alternates\\\":[],\\\"keywords\\\":[\\\"calendar\\\"],\\\"unicode_output\\\":\\\"1f4c6\\\"},\\\"1f4c5\\\":{\\\"name\\\":\\\"calendar\\\",\\\"shortname\\\":\\\":date:\\\",\\\"shortname_alternates\\\":[],\\\"keywords\\\":[\\\"date\\\"],\\\"unicode_output\\\":\\\"1f4c5\\\"},\\\"1f4c7\\\":{\\\"name\\\":\\\"card index\\\",\\\"shortname\\\":\\\":card_index:\\\",\\\"shortname_alternates\\\":[],\\\"keywords\\\":[\\\"card\\\",\\\"index\\\",\\\"rolodex\\\"],\\\"unicode_output\\\":\\\"1f4c7\\\"},\\\"1f5f3\\\":{\\\"name\\\":\\\"ballot box with ballot\\\",\\\"shortname\\\":\\\":ballot_box:\\\",\\\"shortname_alternates\\\":[\\\":ballot_box_with_ballot:\\\"],\\\"keywords\\\":[\\\"ballot\\\",\\\"box\\\"],\\\"unicode_output\\\":\\\"1f5f3-fe0f\\\"},\\\"1f5c4\\\":{\\\"name\\\":\\\"file cabinet\\\",\\\"shortname\\\":\\\":file_cabinet:\\\",\\\"shortname_alternates\\\":[],\\\"keywords\\\":[\\\"cabinet\\\",\\\"file\\\",\\\"filing\\\"],\\\"unicode_output\\\":\\\"1f5c4-fe0f\\\"},\\\"1f4cb\\\":{\\\"name\\\":\\\"clipboard\\\",\\\"shortname\\\":\\\":clipboard:\\\",\\\"shortname_alternates\\\":[],\\\"keywords\\\":[\\\"clipboard\\\"],\\\"unicode_output\\\":\\\"1f4cb\\\"},\\\"1f4c1\\\":{\\\"name\\\":\\\"file folder\\\",\\\"shortname\\\":\\\":file_folder:\\\",\\\"shortname_alternates\\\":[],\\\"keywords\\\":[\\\"file\\\",\\\"folder\\\"],\\\"unicode_output\\\":\\\"1f4c1\\\"},\\\"1f4c2\\\":{\\\"name\\\":\\\"open file folder\\\",\\\"shortname\\\":\\\":open_file_folder:\\\",\\\"shortname_alternates\\\":[],\\\"keywords\\\":[\\\"file\\\",\\\"folder\\\",\\\"open\\\"],\\\"unicode_output\\\":\\\"1f4c2\\\"},\\\"1f4f0\\\":{\\\"name\\\":\\\"newspaper\\\",\\\"shortname\\\":\\\":newspaper:\\\",\\\"shortname_alternates\\\":[],\\\"keywords\\\":[\\\"news\\\",\\\"paper\\\"],\\\"unicode_output\\\":\\\"1f4f0\\\"},\\\"1f4d3\\\":{\\\"name\\\":\\\"notebook\\\",\\\"shortname\\\":\\\":notebook:\\\",\\\"shortname_alternates\\\":[],\\\"keywords\\\":[\\\"notebook\\\"],\\\"unicode_output\\\":\\\"1f4d3\\\"},\\\"1f4d4\\\":{\\\"name\\\":\\\"notebook with decorative cover\\\",\\\"shortname\\\":\\\":notebook_with_decorative_cover:\\\",\\\"shortname_alternates\\\":[],\\\"keywords\\\":[\\\"book\\\",\\\"cover\\\",\\\"decorated\\\",\\\"notebook\\\"],\\\"unicode_output\\\":\\\"1f4d4\\\"},\\\"1f4d2\\\":{\\\"name\\\":\\\"ledger\\\",\\\"shortname\\\":\\\":ledger:\\\",\\\"shortname_alternates\\\":[],\\\"keywords\\\":[\\\"notebook\\\"],\\\"unicode_output\\\":\\\"1f4d2\\\"},\\\"1f4d5\\\":{\\\"name\\\":\\\"closed book\\\",\\\"shortname\\\":\\\":closed_book:\\\",\\\"shortname_alternates\\\":[],\\\"keywords\\\":[\\\"book\\\",\\\"closed\\\"],\\\"unicode_output\\\":\\\"1f4d5\\\"},\\\"1f4d7\\\":{\\\"name\\\":\\\"green book\\\",\\\"shortname\\\":\\\":green_book:\\\",\\\"shortname_alternates\\\":[],\\\"keywords\\\":[\\\"book\\\",\\\"green\\\"],\\\"unicode_output\\\":\\\"1f4d7\\\"},\\\"1f4d8\\\":{\\\"name\\\":\\\"blue book\\\",\\\"shortname\\\":\\\":blue_book:\\\",\\\"shortname_alternates\\\":[],\\\"keywords\\\":[\\\"blue\\\",\\\"book\\\"],\\\"unicode_output\\\":\\\"1f4d8\\\"},\\\"1f4d9\\\":{\\\"name\\\":\\\"orange book\\\",\\\"shortname\\\":\\\":orange_book:\\\",\\\"shortname_alternates\\\":[],\\\"keywords\\\":[\\\"book\\\",\\\"orange\\\"],\\\"unicode_output\\\":\\\"1f4d9\\\"},\\\"1f4da\\\":{\\\"name\\\":\\\"books\\\",\\\"shortname\\\":\\\":books:\\\",\\\"shortname_alternates\\\":[],\\\"keywords\\\":[\\\"book\\\"],\\\"unicode_output\\\":\\\"1f4da\\\"},\\\"1f4d6\\\":{\\\"name\\\":\\\"open book\\\",\\\"shortname\\\":\\\":book:\\\",\\\"shortname_alternates\\\":[],\\\"keywords\\\":[\\\"book\\\",\\\"open\\\"],\\\"unicode_output\\\":\\\"1f4d6\\\"},\\\"1f516\\\":{\\\"name\\\":\\\"bookmark\\\",\\\"shortname\\\":\\\":bookmark:\\\",\\\"shortname_alternates\\\":[],\\\"keywords\\\":[\\\"mark\\\"],\\\"unicode_output\\\":\\\"1f516\\\"},\\\"1f517\\\":{\\\"name\\\":\\\"link\\\",\\\"shortname\\\":\\\":link:\\\",\\\"shortname_alternates\\\":[],\\\"keywords\\\":[\\\"link\\\"],\\\"unicode_output\\\":\\\"1f517\\\"},\\\"1f4ce\\\":{\\\"name\\\":\\\"paperclip\\\",\\\"shortname\\\":\\\":paperclip:\\\",\\\"shortname_alternates\\\":[],\\\"keywords\\\":[\\\"paperclip\\\"],\\\"unicode_output\\\":\\\"1f4ce\\\"},\\\"1f587\\\":{\\\"name\\\":\\\"linked paperclips\\\",\\\"shortname\\\":\\\":paperclips:\\\",\\\"shortname_alternates\\\":[\\\":linked_paperclips:\\\"],\\\"keywords\\\":[\\\"link\\\",\\\"paperclip\\\"],\\\"unicode_output\\\":\\\"1f587-fe0f\\\"},\\\"1f4d0\\\":{\\\"name\\\":\\\"triangular ruler\\\",\\\"shortname\\\":\\\":triangular_ruler:\\\",\\\"shortname_alternates\\\":[],\\\"keywords\\\":[\\\"ruler\\\",\\\"set\\\",\\\"triangle\\\"],\\\"unicode_output\\\":\\\"1f4d0\\\"},\\\"1f4cf\\\":{\\\"name\\\":\\\"straight ruler\\\",\\\"shortname\\\":\\\":straight_ruler:\\\",\\\"shortname_alternates\\\":[],\\\"keywords\\\":[\\\"ruler\\\",\\\"straight edge\\\"],\\\"unicode_output\\\":\\\"1f4cf\\\"},\\\"1f4cc\\\":{\\\"name\\\":\\\"pushpin\\\",\\\"shortname\\\":\\\":pushpin:\\\",\\\"shortname_alternates\\\":[],\\\"keywords\\\":[\\\"pin\\\"],\\\"unicode_output\\\":\\\"1f4cc\\\"},\\\"1f4cd\\\":{\\\"name\\\":\\\"round pushpin\\\",\\\"shortname\\\":\\\":round_pushpin:\\\",\\\"shortname_alternates\\\":[],\\\"keywords\\\":[\\\"pin\\\",\\\"pushpin\\\"],\\\"unicode_output\\\":\\\"1f4cd\\\"},\\\"1f58c\\\":{\\\"name\\\":\\\"paintbrush\\\",\\\"shortname\\\":\\\":paintbrush:\\\",\\\"shortname_alternates\\\":[\\\":lower_left_paintbrush:\\\"],\\\"keywords\\\":[\\\"painting\\\"],\\\"unicode_output\\\":\\\"1f58c-fe0f\\\"},\\\"1f58d\\\":{\\\"name\\\":\\\"crayon\\\",\\\"shortname\\\":\\\":crayon:\\\",\\\"shortname_alternates\\\":[\\\":lower_left_crayon:\\\"],\\\"keywords\\\":[\\\"crayon\\\"],\\\"unicode_output\\\":\\\"1f58d-fe0f\\\"},\\\"1f4dd\\\":{\\\"name\\\":\\\"memo\\\",\\\"shortname\\\":\\\":pencil:\\\",\\\"shortname_alternates\\\":[\\\":memo:\\\"],\\\"keywords\\\":[\\\"pencil\\\"],\\\"unicode_output\\\":\\\"1f4dd\\\"},\\\"270f\\\":{\\\"name\\\":\\\"pencil\\\",\\\"shortname\\\":\\\":pencil2:\\\",\\\"shortname_alternates\\\":[],\\\"keywords\\\":[\\\"pencil\\\"],\\\"unicode_output\\\":\\\"270f-fe0f\\\"},\\\"1f50d\\\":{\\\"name\\\":\\\"left-pointing magnifying glass\\\",\\\"shortname\\\":\\\":mag:\\\",\\\"shortname_alternates\\\":[],\\\"keywords\\\":[\\\"glass\\\",\\\"magnifying\\\",\\\"search\\\",\\\"tool\\\"],\\\"unicode_output\\\":\\\"1f50d\\\"},\\\"1f50e\\\":{\\\"name\\\":\\\"right-pointing magnifying glass\\\",\\\"shortname\\\":\\\":mag_right:\\\",\\\"shortname_alternates\\\":[],\\\"keywords\\\":[\\\"glass\\\",\\\"magnifying\\\",\\\"search\\\",\\\"tool\\\"],\\\"unicode_output\\\":\\\"1f50e\\\"},\\\"1f50f\\\":{\\\"name\\\":\\\"locked with pen\\\",\\\"shortname\\\":\\\":lock_with_ink_pen:\\\",\\\"shortname_alternates\\\":[],\\\"keywords\\\":[\\\"ink\\\",\\\"lock\\\",\\\"nib\\\",\\\"pen\\\",\\\"privacy\\\"],\\\"unicode_output\\\":\\\"1f50f\\\"},\\\"1f510\\\":{\\\"name\\\":\\\"locked with key\\\",\\\"shortname\\\":\\\":closed_lock_with_key:\\\",\\\"shortname_alternates\\\":[],\\\"keywords\\\":[\\\"closed\\\",\\\"key\\\",\\\"lock\\\",\\\"secure\\\"],\\\"unicode_output\\\":\\\"1f510\\\"},\\\"1f512\\\":{\\\"name\\\":\\\"locked\\\",\\\"shortname\\\":\\\":lock:\\\",\\\"shortname_alternates\\\":[],\\\"keywords\\\":[\\\"closed\\\"],\\\"unicode_output\\\":\\\"1f512\\\"},\\\"1f513\\\":{\\\"name\\\":\\\"unlocked\\\",\\\"shortname\\\":\\\":unlock:\\\",\\\"shortname_alternates\\\":[],\\\"keywords\\\":[\\\"lock\\\",\\\"open\\\",\\\"unlock\\\"],\\\"unicode_output\\\":\\\"1f513\\\"},\\\"1f49b\\\":{\\\"name\\\":\\\"yellow heart\\\",\\\"shortname\\\":\\\":yellow_heart:\\\",\\\"shortname_alternates\\\":[],\\\"keywords\\\":[\\\"yellow\\\"],\\\"unicode_output\\\":\\\"1f49b\\\"},\\\"1f49a\\\":{\\\"name\\\":\\\"green heart\\\",\\\"shortname\\\":\\\":green_heart:\\\",\\\"shortname_alternates\\\":[],\\\"keywords\\\":[\\\"green\\\"],\\\"unicode_output\\\":\\\"1f49a\\\"},\\\"1f499\\\":{\\\"name\\\":\\\"blue heart\\\",\\\"shortname\\\":\\\":blue_heart:\\\",\\\"shortname_alternates\\\":[],\\\"keywords\\\":[\\\"blue\\\"],\\\"unicode_output\\\":\\\"1f499\\\"},\\\"1f49c\\\":{\\\"name\\\":\\\"purple heart\\\",\\\"shortname\\\":\\\":purple_heart:\\\",\\\"shortname_alternates\\\":[],\\\"keywords\\\":[\\\"purple\\\"],\\\"unicode_output\\\":\\\"1f49c\\\"},\\\"1f5a4\\\":{\\\"name\\\":\\\"black heart\\\",\\\"shortname\\\":\\\":black_heart:\\\",\\\"shortname_alternates\\\":[],\\\"keywords\\\":[\\\"black\\\",\\\"evil\\\",\\\"wicked\\\"],\\\"unicode_output\\\":\\\"1f5a4\\\"},\\\"1f494\\\":{\\\"name\\\":\\\"broken heart\\\",\\\"shortname\\\":\\\":broken_heart:\\\",\\\"shortname_alternates\\\":[],\\\"keywords\\\":[\\\"break\\\",\\\"broken\\\"],\\\"unicode_output\\\":\\\"1f494\\\"},\\\"1f495\\\":{\\\"name\\\":\\\"two hearts\\\",\\\"shortname\\\":\\\":two_hearts:\\\",\\\"shortname_alternates\\\":[],\\\"keywords\\\":[\\\"love\\\"],\\\"unicode_output\\\":\\\"1f495\\\"},\\\"1f49e\\\":{\\\"name\\\":\\\"revolving hearts\\\",\\\"shortname\\\":\\\":revolving_hearts:\\\",\\\"shortname_alternates\\\":[],\\\"keywords\\\":[\\\"revolving\\\"],\\\"unicode_output\\\":\\\"1f49e\\\"},\\\"1f493\\\":{\\\"name\\\":\\\"beating heart\\\",\\\"shortname\\\":\\\":heartbeat:\\\",\\\"shortname_alternates\\\":[],\\\"keywords\\\":[\\\"beating\\\",\\\"heartbeat\\\",\\\"pulsating\\\"],\\\"unicode_output\\\":\\\"1f493\\\"},\\\"1f497\\\":{\\\"name\\\":\\\"growing heart\\\",\\\"shortname\\\":\\\":heartpulse:\\\",\\\"shortname_alternates\\\":[],\\\"keywords\\\":[\\\"excited\\\",\\\"growing\\\",\\\"nervous\\\",\\\"pulse\\\"],\\\"unicode_output\\\":\\\"1f497\\\"},\\\"1f496\\\":{\\\"name\\\":\\\"sparkling heart\\\",\\\"shortname\\\":\\\":sparkling_heart:\\\",\\\"shortname_alternates\\\":[],\\\"keywords\\\":[\\\"excited\\\",\\\"sparkle\\\"],\\\"unicode_output\\\":\\\"1f496\\\"},\\\"1f498\\\":{\\\"name\\\":\\\"heart with arrow\\\",\\\"shortname\\\":\\\":cupid:\\\",\\\"shortname_alternates\\\":[],\\\"keywords\\\":[\\\"arrow\\\",\\\"cupid\\\"],\\\"unicode_output\\\":\\\"1f498\\\"},\\\"1f49d\\\":{\\\"name\\\":\\\"heart with ribbon\\\",\\\"shortname\\\":\\\":gift_heart:\\\",\\\"shortname_alternates\\\":[],\\\"keywords\\\":[\\\"ribbon\\\",\\\"valentine\\\"],\\\"unicode_output\\\":\\\"1f49d\\\"},\\\"1f49f\\\":{\\\"name\\\":\\\"heart decoration\\\",\\\"shortname\\\":\\\":heart_decoration:\\\",\\\"shortname_alternates\\\":[],\\\"keywords\\\":[\\\"heart\\\"],\\\"unicode_output\\\":\\\"1f49f\\\"},\\\"262a\\\":{\\\"name\\\":\\\"star and crescent\\\",\\\"shortname\\\":\\\":star_and_crescent:\\\",\\\"shortname_alternates\\\":[],\\\"keywords\\\":[\\\"Muslim\\\",\\\"islam\\\",\\\"religion\\\"],\\\"unicode_output\\\":\\\"262a-fe0f\\\"},\\\"1f52f\\\":{\\\"name\\\":\\\"dotted six-pointed star\\\",\\\"shortname\\\":\\\":six_pointed_star:\\\",\\\"shortname_alternates\\\":[],\\\"keywords\\\":[\\\"fortune\\\",\\\"star\\\"],\\\"unicode_output\\\":\\\"1f52f\\\"},\\\"1f54e\\\":{\\\"name\\\":\\\"menorah\\\",\\\"shortname\\\":\\\":menorah:\\\",\\\"shortname_alternates\\\":[],\\\"keywords\\\":[\\\"candelabrum\\\",\\\"candlestick\\\",\\\"religion\\\"],\\\"unicode_output\\\":\\\"1f54e\\\"},\\\"262f\\\":{\\\"name\\\":\\\"yin yang\\\",\\\"shortname\\\":\\\":yin_yang:\\\",\\\"shortname_alternates\\\":[],\\\"keywords\\\":[\\\"religion\\\",\\\"tao\\\",\\\"taoist\\\",\\\"yang\\\",\\\"yin\\\"],\\\"unicode_output\\\":\\\"262f-fe0f\\\"},\\\"1f6d0\\\":{\\\"name\\\":\\\"place of worship\\\",\\\"shortname\\\":\\\":place_of_worship:\\\",\\\"shortname_alternates\\\":[\\\":worship_symbol:\\\"],\\\"keywords\\\":[\\\"religion\\\",\\\"worship\\\"],\\\"unicode_output\\\":\\\"1f6d0\\\"},\\\"26ce\\\":{\\\"name\\\":\\\"Ophiuchus\\\",\\\"shortname\\\":\\\":ophiuchus:\\\",\\\"shortname_alternates\\\":[],\\\"keywords\\\":[\\\"bearer\\\",\\\"serpent\\\",\\\"snake\\\",\\\"zodiac\\\"],\\\"unicode_output\\\":\\\"26ce\\\"},\\\"264a\\\":{\\\"name\\\":\\\"Gemini\\\",\\\"shortname\\\":\\\":gemini:\\\",\\\"shortname_alternates\\\":[],\\\"keywords\\\":[\\\"twins\\\",\\\"zodiac\\\"],\\\"unicode_output\\\":\\\"264a\\\"},\\\"264b\\\":{\\\"name\\\":\\\"Cancer\\\",\\\"shortname\\\":\\\":cancer:\\\",\\\"shortname_alternates\\\":[],\\\"keywords\\\":[\\\"crab\\\",\\\"zodiac\\\"],\\\"unicode_output\\\":\\\"264b\\\"},\\\"264c\\\":{\\\"name\\\":\\\"Leo\\\",\\\"shortname\\\":\\\":leo:\\\",\\\"shortname_alternates\\\":[],\\\"keywords\\\":[\\\"lion\\\",\\\"zodiac\\\"],\\\"unicode_output\\\":\\\"264c\\\"},\\\"264d\\\":{\\\"name\\\":\\\"Virgo\\\",\\\"shortname\\\":\\\":virgo:\\\",\\\"shortname_alternates\\\":[],\\\"keywords\\\":[\\\"zodiac\\\"],\\\"unicode_output\\\":\\\"264d\\\"},\\\"264e\\\":{\\\"name\\\":\\\"Libra\\\",\\\"shortname\\\":\\\":libra:\\\",\\\"shortname_alternates\\\":[],\\\"keywords\\\":[\\\"balance\\\",\\\"justice\\\",\\\"scales\\\",\\\"zodiac\\\"],\\\"unicode_output\\\":\\\"264e\\\"},\\\"264f\\\":{\\\"name\\\":\\\"Scorpius\\\",\\\"shortname\\\":\\\":scorpius:\\\",\\\"shortname_alternates\\\":[],\\\"keywords\\\":[\\\"scorpio\\\",\\\"scorpion\\\",\\\"zodiac\\\"],\\\"unicode_output\\\":\\\"264f\\\"},\\\"1f194\\\":{\\\"name\\\":\\\"ID button\\\",\\\"shortname\\\":\\\":id:\\\",\\\"shortname_alternates\\\":[],\\\"keywords\\\":[\\\"id\\\",\\\"identity\\\"],\\\"unicode_output\\\":\\\"1f194\\\"},\\\"1f251\\\":{\\\"name\\\":\\\"Japanese “acceptable” button\\\",\\\"shortname\\\":\\\":accept:\\\",\\\"shortname_alternates\\\":[],\\\"keywords\\\":[\\\"Japanese\\\",\\\"ideograph\\\",\\\"“acceptable”\\\",\\\"可\\\"],\\\"unicode_output\\\":\\\"1f251\\\"},\\\"1f4f4\\\":{\\\"name\\\":\\\"mobile phone off\\\",\\\"shortname\\\":\\\":mobile_phone_off:\\\",\\\"shortname_alternates\\\":[],\\\"keywords\\\":[\\\"cell\\\",\\\"mobile\\\",\\\"off\\\",\\\"phone\\\",\\\"telephone\\\"],\\\"unicode_output\\\":\\\"1f4f4\\\"},\\\"1f4f3\\\":{\\\"name\\\":\\\"vibration mode\\\",\\\"shortname\\\":\\\":vibration_mode:\\\",\\\"shortname_alternates\\\":[],\\\"keywords\\\":[\\\"cell\\\",\\\"mobile\\\",\\\"mode\\\",\\\"phone\\\",\\\"telephone\\\",\\\"vibration\\\"],\\\"unicode_output\\\":\\\"1f4f3\\\"},\\\"1f19a\\\":{\\\"name\\\":\\\"VS button\\\",\\\"shortname\\\":\\\":vs:\\\",\\\"shortname_alternates\\\":[],\\\"keywords\\\":[\\\"versus\\\",\\\"vs\\\"],\\\"unicode_output\\\":\\\"1f19a\\\"},\\\"1f4ae\\\":{\\\"name\\\":\\\"white flower\\\",\\\"shortname\\\":\\\":white_flower:\\\",\\\"shortname_alternates\\\":[],\\\"keywords\\\":[\\\"flower\\\"],\\\"unicode_output\\\":\\\"1f4ae\\\"},\\\"1f250\\\":{\\\"name\\\":\\\"Japanese “bargain” button\\\",\\\"shortname\\\":\\\":ideograph_advantage:\\\",\\\"shortname_alternates\\\":[],\\\"keywords\\\":[\\\"Japanese\\\",\\\"ideograph\\\",\\\"“bargain”\\\",\\\"得\\\"],\\\"unicode_output\\\":\\\"1f250\\\"},\\\"1f235\\\":{\\\"name\\\":\\\"Japanese “no vacancy” button\\\",\\\"shortname\\\":\\\":u6e80:\\\",\\\"shortname_alternates\\\":[],\\\"keywords\\\":[\\\"Japanese\\\",\\\"ideograph\\\",\\\"“no vacancy”\\\",\\\"満\\\"],\\\"unicode_output\\\":\\\"1f235\\\"},\\\"1f170\\\":{\\\"name\\\":\\\"A button (blood type)\\\",\\\"shortname\\\":\\\":a:\\\",\\\"shortname_alternates\\\":[],\\\"keywords\\\":[\\\"a\\\",\\\"blood type\\\"],\\\"unicode_output\\\":\\\"1f170-fe0f\\\"},\\\"1f171\\\":{\\\"name\\\":\\\"B button (blood type)\\\",\\\"shortname\\\":\\\":b:\\\",\\\"shortname_alternates\\\":[],\\\"keywords\\\":[\\\"b\\\",\\\"blood type\\\"],\\\"unicode_output\\\":\\\"1f171-fe0f\\\"},\\\"1f18e\\\":{\\\"name\\\":\\\"AB button (blood type)\\\",\\\"shortname\\\":\\\":ab:\\\",\\\"shortname_alternates\\\":[],\\\"keywords\\\":[\\\"ab\\\",\\\"blood type\\\"],\\\"unicode_output\\\":\\\"1f18e\\\"},\\\"1f191\\\":{\\\"name\\\":\\\"CL button\\\",\\\"shortname\\\":\\\":cl:\\\",\\\"shortname_alternates\\\":[],\\\"keywords\\\":[\\\"cl\\\"],\\\"unicode_output\\\":\\\"1f191\\\"},\\\"1f17e\\\":{\\\"name\\\":\\\"O button (blood type)\\\",\\\"shortname\\\":\\\":o2:\\\",\\\"shortname_alternates\\\":[],\\\"keywords\\\":[\\\"blood type\\\",\\\"o\\\"],\\\"unicode_output\\\":\\\"1f17e-fe0f\\\"},\\\"1f198\\\":{\\\"name\\\":\\\"SOS button\\\",\\\"shortname\\\":\\\":sos:\\\",\\\"shortname_alternates\\\":[],\\\"keywords\\\":[\\\"help\\\",\\\"sos\\\"],\\\"unicode_output\\\":\\\"1f198\\\"},\\\"274c\\\":{\\\"name\\\":\\\"cross mark\\\",\\\"shortname\\\":\\\":x:\\\",\\\"shortname_alternates\\\":[],\\\"keywords\\\":[\\\"cancel\\\",\\\"mark\\\",\\\"multiplication\\\",\\\"multiply\\\",\\\"x\\\"],\\\"unicode_output\\\":\\\"274c\\\"},\\\"2b55\\\":{\\\"name\\\":\\\"heavy large circle\\\",\\\"shortname\\\":\\\":o:\\\",\\\"shortname_alternates\\\":[],\\\"keywords\\\":[\\\"circle\\\",\\\"o\\\"],\\\"unicode_output\\\":\\\"2b55\\\"},\\\"26d4\\\":{\\\"name\\\":\\\"no entry\\\",\\\"shortname\\\":\\\":no_entry:\\\",\\\"shortname_alternates\\\":[],\\\"keywords\\\":[\\\"entry\\\",\\\"forbidden\\\",\\\"no\\\",\\\"not\\\",\\\"prohibited\\\",\\\"traffic\\\"],\\\"unicode_output\\\":\\\"26d4\\\"},\\\"1f4db\\\":{\\\"name\\\":\\\"name badge\\\",\\\"shortname\\\":\\\":name_badge:\\\",\\\"shortname_alternates\\\":[],\\\"keywords\\\":[\\\"badge\\\",\\\"name\\\"],\\\"unicode_output\\\":\\\"1f4db\\\"},\\\"1f6ab\\\":{\\\"name\\\":\\\"prohibited\\\",\\\"shortname\\\":\\\":no_entry_sign:\\\",\\\"shortname_alternates\\\":[],\\\"keywords\\\":[\\\"entry\\\",\\\"forbidden\\\",\\\"no\\\",\\\"not\\\"],\\\"unicode_output\\\":\\\"1f6ab\\\"},\\\"1f4af\\\":{\\\"name\\\":\\\"hundred points\\\",\\\"shortname\\\":\\\":100:\\\",\\\"shortname_alternates\\\":[],\\\"keywords\\\":[\\\"100\\\",\\\"full\\\",\\\"hundred\\\",\\\"score\\\"],\\\"unicode_output\\\":\\\"1f4af\\\"},\\\"1f4a2\\\":{\\\"name\\\":\\\"anger symbol\\\",\\\"shortname\\\":\\\":anger:\\\",\\\"shortname_alternates\\\":[],\\\"keywords\\\":[\\\"angry\\\",\\\"comic\\\",\\\"mad\\\"],\\\"unicode_output\\\":\\\"1f4a2\\\"},\\\"1f6b7\\\":{\\\"name\\\":\\\"no pedestrians\\\",\\\"shortname\\\":\\\":no_pedestrians:\\\",\\\"shortname_alternates\\\":[],\\\"keywords\\\":[\\\"forbidden\\\",\\\"no\\\",\\\"not\\\",\\\"pedestrian\\\",\\\"prohibited\\\"],\\\"unicode_output\\\":\\\"1f6b7\\\"},\\\"1f6af\\\":{\\\"name\\\":\\\"no littering\\\",\\\"shortname\\\":\\\":do_not_litter:\\\",\\\"shortname_alternates\\\":[],\\\"keywords\\\":[\\\"forbidden\\\",\\\"litter\\\",\\\"no\\\",\\\"not\\\",\\\"prohibited\\\"],\\\"unicode_output\\\":\\\"1f6af\\\"},\\\"1f6b3\\\":{\\\"name\\\":\\\"no bicycles\\\",\\\"shortname\\\":\\\":no_bicycles:\\\",\\\"shortname_alternates\\\":[],\\\"keywords\\\":[\\\"bicycle\\\",\\\"bike\\\",\\\"forbidden\\\",\\\"no\\\",\\\"not\\\",\\\"prohibited\\\"],\\\"unicode_output\\\":\\\"1f6b3\\\"},\\\"1f6b1\\\":{\\\"name\\\":\\\"non-potable water\\\",\\\"shortname\\\":\\\":non-potable_water:\\\",\\\"shortname_alternates\\\":[],\\\"keywords\\\":[\\\"non-drinking\\\",\\\"non-potable\\\",\\\"water\\\"],\\\"unicode_output\\\":\\\"1f6b1\\\"},\\\"1f51e\\\":{\\\"name\\\":\\\"no one under eighteen\\\",\\\"shortname\\\":\\\":underage:\\\",\\\"shortname_alternates\\\":[],\\\"keywords\\\":[\\\"18\\\",\\\"age restriction\\\",\\\"eighteen\\\",\\\"forbidden\\\",\\\"no\\\",\\\"not\\\",\\\"prohibited\\\",\\\"underage\\\"],\\\"unicode_output\\\":\\\"1f51e\\\"},\\\"1f4f5\\\":{\\\"name\\\":\\\"no mobile phones\\\",\\\"shortname\\\":\\\":no_mobile_phones:\\\",\\\"shortname_alternates\\\":[],\\\"keywords\\\":[\\\"cell\\\",\\\"forbidden\\\",\\\"mobile\\\",\\\"no\\\",\\\"not\\\",\\\"phone\\\",\\\"prohibited\\\",\\\"telephone\\\"],\\\"unicode_output\\\":\\\"1f4f5\\\"},\\\"1f6ad\\\":{\\\"name\\\":\\\"no smoking\\\",\\\"shortname\\\":\\\":no_smoking:\\\",\\\"shortname_alternates\\\":[],\\\"keywords\\\":[\\\"forbidden\\\",\\\"no\\\",\\\"not\\\",\\\"prohibited\\\",\\\"smoking\\\"],\\\"unicode_output\\\":\\\"1f6ad\\\"},\\\"203c\\\":{\\\"name\\\":\\\"double exclamation mark\\\",\\\"shortname\\\":\\\":bangbang:\\\",\\\"shortname_alternates\\\":[],\\\"keywords\\\":[\\\"bangbang\\\",\\\"exclamation\\\",\\\"mark\\\",\\\"punctuation\\\"],\\\"unicode_output\\\":\\\"203c-fe0f\\\"},\\\"1f505\\\":{\\\"name\\\":\\\"dim button\\\",\\\"shortname\\\":\\\":low_brightness:\\\",\\\"shortname_alternates\\\":[],\\\"keywords\\\":[\\\"brightness\\\",\\\"dim\\\",\\\"low\\\"],\\\"unicode_output\\\":\\\"1f505\\\"},\\\"1f506\\\":{\\\"name\\\":\\\"bright button\\\",\\\"shortname\\\":\\\":high_brightness:\\\",\\\"shortname_alternates\\\":[],\\\"keywords\\\":[\\\"bright\\\",\\\"brightness\\\"],\\\"unicode_output\\\":\\\"1f506\\\"},\\\"303d\\\":{\\\"name\\\":\\\"part alternation mark\\\",\\\"shortname\\\":\\\":part_alternation_mark:\\\",\\\"shortname_alternates\\\":[],\\\"keywords\\\":[\\\"mark\\\",\\\"part\\\"],\\\"unicode_output\\\":\\\"303d-fe0f\\\"},\\\"26a0\\\":{\\\"name\\\":\\\"warning\\\",\\\"shortname\\\":\\\":warning:\\\",\\\"shortname_alternates\\\":[],\\\"keywords\\\":[\\\"warning\\\"],\\\"unicode_output\\\":\\\"26a0-fe0f\\\"},\\\"1f6b8\\\":{\\\"name\\\":\\\"children crossing\\\",\\\"shortname\\\":\\\":children_crossing:\\\",\\\"shortname_alternates\\\":[],\\\"keywords\\\":[\\\"child\\\",\\\"crossing\\\",\\\"pedestrian\\\",\\\"traffic\\\"],\\\"unicode_output\\\":\\\"1f6b8\\\"},\\\"1f531\\\":{\\\"name\\\":\\\"trident emblem\\\",\\\"shortname\\\":\\\":trident:\\\",\\\"shortname_alternates\\\":[],\\\"keywords\\\":[\\\"anchor\\\",\\\"emblem\\\",\\\"ship\\\",\\\"tool\\\",\\\"trident\\\"],\\\"unicode_output\\\":\\\"1f531\\\"},\\\"1f530\\\":{\\\"name\\\":\\\"Japanese symbol for beginner\\\",\\\"shortname\\\":\\\":beginner:\\\",\\\"shortname_alternates\\\":[],\\\"keywords\\\":[\\\"Japanese\\\",\\\"beginner\\\",\\\"chevron\\\",\\\"green\\\",\\\"leaf\\\",\\\"tool\\\",\\\"yellow\\\"],\\\"unicode_output\\\":\\\"1f530\\\"},\\\"267b\\\":{\\\"name\\\":\\\"recycling symbol\\\",\\\"shortname\\\":\\\":recycle:\\\",\\\"shortname_alternates\\\":[],\\\"keywords\\\":[\\\"recycle\\\"],\\\"unicode_output\\\":\\\"267b-fe0f\\\"},\\\"1f4b9\\\":{\\\"name\\\":\\\"chart increasing with yen\\\",\\\"shortname\\\":\\\":chart:\\\",\\\"shortname_alternates\\\":[],\\\"keywords\\\":[\\\"bank\\\",\\\"chart\\\",\\\"currency\\\",\\\"graph\\\",\\\"growth\\\",\\\"market\\\",\\\"money\\\",\\\"rise\\\",\\\"trend\\\",\\\"upward\\\",\\\"yen\\\"],\\\"unicode_output\\\":\\\"1f4b9\\\"},\\\"274e\\\":{\\\"name\\\":\\\"cross mark button\\\",\\\"shortname\\\":\\\":negative_squared_cross_mark:\\\",\\\"shortname_alternates\\\":[],\\\"keywords\\\":[\\\"mark\\\",\\\"square\\\"],\\\"unicode_output\\\":\\\"274e\\\"},\\\"1f310\\\":{\\\"name\\\":\\\"globe with meridians\\\",\\\"shortname\\\":\\\":globe_with_meridians:\\\",\\\"shortname_alternates\\\":[],\\\"keywords\\\":[\\\"earth\\\",\\\"globe\\\",\\\"meridians\\\",\\\"world\\\"],\\\"unicode_output\\\":\\\"1f310\\\"},\\\"1f4a0\\\":{\\\"name\\\":\\\"diamond with a dot\\\",\\\"shortname\\\":\\\":diamond_shape_with_a_dot_inside:\\\",\\\"shortname_alternates\\\":[],\\\"keywords\\\":[\\\"comic\\\",\\\"diamond\\\",\\\"geometric\\\",\\\"inside\\\"],\\\"unicode_output\\\":\\\"1f4a0\\\"},\\\"24c2\\\":{\\\"name\\\":\\\"circled M\\\",\\\"shortname\\\":\\\":m:\\\",\\\"shortname_alternates\\\":[],\\\"keywords\\\":[\\\"circle\\\",\\\"m\\\"],\\\"unicode_output\\\":\\\"24c2-fe0f\\\"},\\\"1f300\\\":{\\\"name\\\":\\\"cyclone\\\",\\\"shortname\\\":\\\":cyclone:\\\",\\\"shortname_alternates\\\":[],\\\"keywords\\\":[\\\"dizzy\\\",\\\"twister\\\",\\\"typhoon\\\"],\\\"unicode_output\\\":\\\"1f300\\\"},\\\"1f4a4\\\":{\\\"name\\\":\\\"zzz\\\",\\\"shortname\\\":\\\":zzz:\\\",\\\"shortname_alternates\\\":[],\\\"keywords\\\":[\\\"comic\\\",\\\"sleep\\\"],\\\"unicode_output\\\":\\\"1f4a4\\\"},\\\"1f3e7\\\":{\\\"name\\\":\\\"ATM sign\\\",\\\"shortname\\\":\\\":atm:\\\",\\\"shortname_alternates\\\":[],\\\"keywords\\\":[\\\"atm\\\",\\\"automated\\\",\\\"bank\\\",\\\"teller\\\"],\\\"unicode_output\\\":\\\"1f3e7\\\"},\\\"1f6be\\\":{\\\"name\\\":\\\"water closet\\\",\\\"shortname\\\":\\\":wc:\\\",\\\"shortname_alternates\\\":[],\\\"keywords\\\":[\\\"closet\\\",\\\"lavatory\\\",\\\"restroom\\\",\\\"water\\\",\\\"wc\\\"],\\\"unicode_output\\\":\\\"1f6be\\\"},\\\"267f\\\":{\\\"name\\\":\\\"wheelchair symbol\\\",\\\"shortname\\\":\\\":wheelchair:\\\",\\\"shortname_alternates\\\":[],\\\"keywords\\\":[\\\"access\\\"],\\\"unicode_output\\\":\\\"267f\\\"},\\\"1f17f\\\":{\\\"name\\\":\\\"P button\\\",\\\"shortname\\\":\\\":parking:\\\",\\\"shortname_alternates\\\":[],\\\"keywords\\\":[\\\"parking\\\"],\\\"unicode_output\\\":\\\"1f17f-fe0f\\\"},\\\"1f202\\\":{\\\"name\\\":\\\"Japanese “service charge” button\\\",\\\"shortname\\\":\\\":sa:\\\",\\\"shortname_alternates\\\":[],\\\"keywords\\\":[\\\"Japanese\\\",\\\"katakana\\\",\\\"“service charge”\\\",\\\"サ\\\"],\\\"unicode_output\\\":\\\"1f202-fe0f\\\"},\\\"1f6c2\\\":{\\\"name\\\":\\\"passport control\\\",\\\"shortname\\\":\\\":passport_control:\\\",\\\"shortname_alternates\\\":[],\\\"keywords\\\":[\\\"control\\\",\\\"passport\\\"],\\\"unicode_output\\\":\\\"1f6c2\\\"},\\\"1f6c3\\\":{\\\"name\\\":\\\"customs\\\",\\\"shortname\\\":\\\":customs:\\\",\\\"shortname_alternates\\\":[],\\\"keywords\\\":[\\\"customs\\\"],\\\"unicode_output\\\":\\\"1f6c3\\\"},\\\"1f6c4\\\":{\\\"name\\\":\\\"baggage claim\\\",\\\"shortname\\\":\\\":baggage_claim:\\\",\\\"shortname_alternates\\\":[],\\\"keywords\\\":[\\\"baggage\\\",\\\"claim\\\"],\\\"unicode_output\\\":\\\"1f6c4\\\"},\\\"1f6c5\\\":{\\\"name\\\":\\\"left luggage\\\",\\\"shortname\\\":\\\":left_luggage:\\\",\\\"shortname_alternates\\\":[],\\\"keywords\\\":[\\\"baggage\\\",\\\"locker\\\",\\\"luggage\\\"],\\\"unicode_output\\\":\\\"1f6c5\\\"},\\\"1f6b9\\\":{\\\"name\\\":\\\"men’s room\\\",\\\"shortname\\\":\\\":mens:\\\",\\\"shortname_alternates\\\":[],\\\"keywords\\\":[\\\"lavatory\\\",\\\"man\\\",\\\"restroom\\\",\\\"wc\\\"],\\\"unicode_output\\\":\\\"1f6b9\\\"},\\\"1f6ba\\\":{\\\"name\\\":\\\"women’s room\\\",\\\"shortname\\\":\\\":womens:\\\",\\\"shortname_alternates\\\":[],\\\"keywords\\\":[\\\"lavatory\\\",\\\"restroom\\\",\\\"wc\\\",\\\"woman\\\"],\\\"unicode_output\\\":\\\"1f6ba\\\"},\\\"1f6bc\\\":{\\\"name\\\":\\\"baby symbol\\\",\\\"shortname\\\":\\\":baby_symbol:\\\",\\\"shortname_alternates\\\":[],\\\"keywords\\\":[\\\"baby\\\",\\\"changing\\\"],\\\"unicode_output\\\":\\\"1f6bc\\\"},\\\"1f6bb\\\":{\\\"name\\\":\\\"restroom\\\",\\\"shortname\\\":\\\":restroom:\\\",\\\"shortname_alternates\\\":[],\\\"keywords\\\":[\\\"WC\\\",\\\"lavatory\\\",\\\"restroom\\\"],\\\"unicode_output\\\":\\\"1f6bb\\\"},\\\"1f6ae\\\":{\\\"name\\\":\\\"litter in bin sign\\\",\\\"shortname\\\":\\\":put_litter_in_its_place:\\\",\\\"shortname_alternates\\\":[],\\\"keywords\\\":[\\\"litter\\\",\\\"litter bin\\\"],\\\"unicode_output\\\":\\\"1f6ae\\\"},\\\"1f3a6\\\":{\\\"name\\\":\\\"cinema\\\",\\\"shortname\\\":\\\":cinema:\\\",\\\"shortname_alternates\\\":[],\\\"keywords\\\":[\\\"camera\\\",\\\"film\\\",\\\"movie\\\"],\\\"unicode_output\\\":\\\"1f3a6\\\"},\\\"1f4f6\\\":{\\\"name\\\":\\\"antenna bars\\\",\\\"shortname\\\":\\\":signal_strength:\\\",\\\"shortname_alternates\\\":[],\\\"keywords\\\":[\\\"antenna\\\",\\\"bar\\\",\\\"cell\\\",\\\"mobile\\\",\\\"phone\\\",\\\"signal\\\",\\\"telephone\\\"],\\\"unicode_output\\\":\\\"1f4f6\\\"},\\\"1f201\\\":{\\\"name\\\":\\\"Japanese “here” button\\\",\\\"shortname\\\":\\\":koko:\\\",\\\"shortname_alternates\\\":[],\\\"keywords\\\":[\\\"Japanese\\\",\\\"katakana\\\",\\\"“here”\\\",\\\"ココ\\\"],\\\"unicode_output\\\":\\\"1f201\\\"},\\\"1f523\\\":{\\\"name\\\":\\\"input symbols\\\",\\\"shortname\\\":\\\":symbols:\\\",\\\"shortname_alternates\\\":[],\\\"keywords\\\":[\\\"input\\\",\\\"〒♪&%\\\"],\\\"unicode_output\\\":\\\"1f523\\\"},\\\"1f524\\\":{\\\"name\\\":\\\"input latin letters\\\",\\\"shortname\\\":\\\":abc:\\\",\\\"shortname_alternates\\\":[],\\\"keywords\\\":[\\\"abc\\\",\\\"alphabet\\\",\\\"input\\\",\\\"latin\\\",\\\"letters\\\"],\\\"unicode_output\\\":\\\"1f524\\\"},\\\"1f521\\\":{\\\"name\\\":\\\"input latin lowercase\\\",\\\"shortname\\\":\\\":abcd:\\\",\\\"shortname_alternates\\\":[],\\\"keywords\\\":[\\\"abcd\\\",\\\"input\\\",\\\"latin\\\",\\\"letters\\\",\\\"lowercase\\\"],\\\"unicode_output\\\":\\\"1f521\\\"},\\\"1f520\\\":{\\\"name\\\":\\\"input latin uppercase\\\",\\\"shortname\\\":\\\":capital_abcd:\\\",\\\"shortname_alternates\\\":[],\\\"keywords\\\":[\\\"ABCD\\\",\\\"input\\\",\\\"latin\\\",\\\"letters\\\",\\\"uppercase\\\"],\\\"unicode_output\\\":\\\"1f520\\\"},\\\"1f196\\\":{\\\"name\\\":\\\"NG button\\\",\\\"shortname\\\":\\\":ng:\\\",\\\"shortname_alternates\\\":[],\\\"keywords\\\":[\\\"ng\\\"],\\\"unicode_output\\\":\\\"1f196\\\"},\\\"1f197\\\":{\\\"name\\\":\\\"OK button\\\",\\\"shortname\\\":\\\":ok:\\\",\\\"shortname_alternates\\\":[],\\\"keywords\\\":[\\\"OK\\\"],\\\"unicode_output\\\":\\\"1f197\\\"},\\\"1f199\\\":{\\\"name\\\":\\\"UP! button\\\",\\\"shortname\\\":\\\":up:\\\",\\\"shortname_alternates\\\":[],\\\"keywords\\\":[\\\"mark\\\",\\\"up\\\"],\\\"unicode_output\\\":\\\"1f199\\\"},\\\"1f192\\\":{\\\"name\\\":\\\"COOL button\\\",\\\"shortname\\\":\\\":cool:\\\",\\\"shortname_alternates\\\":[],\\\"keywords\\\":[\\\"cool\\\"],\\\"unicode_output\\\":\\\"1f192\\\"},\\\"1f195\\\":{\\\"name\\\":\\\"NEW button\\\",\\\"shortname\\\":\\\":new:\\\",\\\"shortname_alternates\\\":[],\\\"keywords\\\":[\\\"new\\\"],\\\"unicode_output\\\":\\\"1f195\\\"},\\\"1f193\\\":{\\\"name\\\":\\\"FREE button\\\",\\\"shortname\\\":\\\":free:\\\",\\\"shortname_alternates\\\":[],\\\"keywords\\\":[\\\"free\\\"],\\\"unicode_output\\\":\\\"1f193\\\"},\\\"0030-20e3\\\":{\\\"name\\\":\\\"keycap: 0\\\",\\\"shortname\\\":\\\":zero:\\\",\\\"shortname_alternates\\\":[],\\\"keywords\\\":[\\\"keycap\\\"],\\\"unicode_output\\\":\\\"0030-fe0f-20e3\\\"},\\\"0031-20e3\\\":{\\\"name\\\":\\\"keycap: 1\\\",\\\"shortname\\\":\\\":one:\\\",\\\"shortname_alternates\\\":[],\\\"keywords\\\":[\\\"keycap\\\"],\\\"unicode_output\\\":\\\"0031-fe0f-20e3\\\"},\\\"0032-20e3\\\":{\\\"name\\\":\\\"keycap: 2\\\",\\\"shortname\\\":\\\":two:\\\",\\\"shortname_alternates\\\":[],\\\"keywords\\\":[\\\"keycap\\\"],\\\"unicode_output\\\":\\\"0032-fe0f-20e3\\\"},\\\"0033-20e3\\\":{\\\"name\\\":\\\"keycap: 3\\\",\\\"shortname\\\":\\\":three:\\\",\\\"shortname_alternates\\\":[],\\\"keywords\\\":[\\\"keycap\\\"],\\\"unicode_output\\\":\\\"0033-fe0f-20e3\\\"},\\\"0034-20e3\\\":{\\\"name\\\":\\\"keycap: 4\\\",\\\"shortname\\\":\\\":four:\\\",\\\"shortname_alternates\\\":[],\\\"keywords\\\":[\\\"keycap\\\"],\\\"unicode_output\\\":\\\"0034-fe0f-20e3\\\"},\\\"0035-20e3\\\":{\\\"name\\\":\\\"keycap: 5\\\",\\\"shortname\\\":\\\":five:\\\",\\\"shortname_alternates\\\":[],\\\"keywords\\\":[\\\"keycap\\\"],\\\"unicode_output\\\":\\\"0035-fe0f-20e3\\\"},\\\"0036-20e3\\\":{\\\"name\\\":\\\"keycap: 6\\\",\\\"shortname\\\":\\\":six:\\\",\\\"shortname_alternates\\\":[],\\\"keywords\\\":[\\\"keycap\\\"],\\\"unicode_output\\\":\\\"0036-fe0f-20e3\\\"},\\\"0037-20e3\\\":{\\\"name\\\":\\\"keycap: 7\\\",\\\"shortname\\\":\\\":seven:\\\",\\\"shortname_alternates\\\":[],\\\"keywords\\\":[\\\"keycap\\\"],\\\"unicode_output\\\":\\\"0037-fe0f-20e3\\\"},\\\"0038-20e3\\\":{\\\"name\\\":\\\"keycap: 8\\\",\\\"shortname\\\":\\\":eight:\\\",\\\"shortname_alternates\\\":[],\\\"keywords\\\":[\\\"keycap\\\"],\\\"unicode_output\\\":\\\"0038-fe0f-20e3\\\"},\\\"0039-20e3\\\":{\\\"name\\\":\\\"keycap: 9\\\",\\\"shortname\\\":\\\":nine:\\\",\\\"shortname_alternates\\\":[],\\\"keywords\\\":[\\\"keycap\\\"],\\\"unicode_output\\\":\\\"0039-fe0f-20e3\\\"},\\\"1f51f\\\":{\\\"name\\\":\\\"keycap 10\\\",\\\"shortname\\\":\\\":keycap_ten:\\\",\\\"shortname_alternates\\\":[],\\\"keywords\\\":[\\\"keycap 10\\\"],\\\"unicode_output\\\":\\\"1f51f\\\"},\\\"1f522\\\":{\\\"name\\\":\\\"input numbers\\\",\\\"shortname\\\":\\\":1234:\\\",\\\"shortname_alternates\\\":[],\\\"keywords\\\":[\\\"1234\\\",\\\"input\\\",\\\"numbers\\\"],\\\"unicode_output\\\":\\\"1f522\\\"},\\\"0023-20e3\\\":{\\\"name\\\":\\\"keycap: #\\\",\\\"shortname\\\":\\\":hash:\\\",\\\"shortname_alternates\\\":[],\\\"keywords\\\":[\\\"keycap\\\"],\\\"unicode_output\\\":\\\"0023-fe0f-20e3\\\"},\\\"002a-20e3\\\":{\\\"name\\\":\\\"keycap: *\\\",\\\"shortname\\\":\\\":asterisk:\\\",\\\"shortname_alternates\\\":[\\\":keycap_asterisk:\\\"],\\\"keywords\\\":[\\\"keycap\\\"],\\\"unicode_output\\\":\\\"002a-fe0f-20e3\\\"},\\\"25b6\\\":{\\\"name\\\":\\\"play button\\\",\\\"shortname\\\":\\\":arrow_forward:\\\",\\\"shortname_alternates\\\":[],\\\"keywords\\\":[\\\"arrow\\\",\\\"play\\\",\\\"right\\\",\\\"triangle\\\"],\\\"unicode_output\\\":\\\"25b6-fe0f\\\"},\\\"23f8\\\":{\\\"name\\\":\\\"pause button\\\",\\\"shortname\\\":\\\":pause_button:\\\",\\\"shortname_alternates\\\":[\\\":double_vertical_bar:\\\"],\\\"keywords\\\":[\\\"bar\\\",\\\"double\\\",\\\"pause\\\",\\\"vertical\\\"],\\\"unicode_output\\\":\\\"23f8-fe0f\\\"},\\\"23f9\\\":{\\\"name\\\":\\\"stop button\\\",\\\"shortname\\\":\\\":stop_button:\\\",\\\"shortname_alternates\\\":[],\\\"keywords\\\":[\\\"square\\\",\\\"stop\\\"],\\\"unicode_output\\\":\\\"23f9-fe0f\\\"},\\\"23fa\\\":{\\\"name\\\":\\\"record button\\\",\\\"shortname\\\":\\\":record_button:\\\",\\\"shortname_alternates\\\":[],\\\"keywords\\\":[\\\"circle\\\",\\\"record\\\"],\\\"unicode_output\\\":\\\"23fa-fe0f\\\"},\\\"23e9\\\":{\\\"name\\\":\\\"fast-forward button\\\",\\\"shortname\\\":\\\":fast_forward:\\\",\\\"shortname_alternates\\\":[],\\\"keywords\\\":[\\\"arrow\\\",\\\"double\\\",\\\"fast\\\",\\\"forward\\\"],\\\"unicode_output\\\":\\\"23e9\\\"},\\\"23ea\\\":{\\\"name\\\":\\\"fast reverse button\\\",\\\"shortname\\\":\\\":rewind:\\\",\\\"shortname_alternates\\\":[],\\\"keywords\\\":[\\\"arrow\\\",\\\"double\\\",\\\"rewind\\\"],\\\"unicode_output\\\":\\\"23ea\\\"},\\\"23eb\\\":{\\\"name\\\":\\\"fast up button\\\",\\\"shortname\\\":\\\":arrow_double_up:\\\",\\\"shortname_alternates\\\":[],\\\"keywords\\\":[\\\"arrow\\\",\\\"double\\\"],\\\"unicode_output\\\":\\\"23eb\\\"},\\\"23ec\\\":{\\\"name\\\":\\\"fast down button\\\",\\\"shortname\\\":\\\":arrow_double_down:\\\",\\\"shortname_alternates\\\":[],\\\"keywords\\\":[\\\"arrow\\\",\\\"double\\\",\\\"down\\\"],\\\"unicode_output\\\":\\\"23ec\\\"},\\\"25c0\\\":{\\\"name\\\":\\\"reverse button\\\",\\\"shortname\\\":\\\":arrow_backward:\\\",\\\"shortname_alternates\\\":[],\\\"keywords\\\":[\\\"arrow\\\",\\\"left\\\",\\\"reverse\\\",\\\"triangle\\\"],\\\"unicode_output\\\":\\\"25c0-fe0f\\\"},\\\"1f53c\\\":{\\\"name\\\":\\\"up button\\\",\\\"shortname\\\":\\\":arrow_up_small:\\\",\\\"shortname_alternates\\\":[],\\\"keywords\\\":[\\\"arrow\\\",\\\"button\\\",\\\"red\\\"],\\\"unicode_output\\\":\\\"1f53c\\\"},\\\"1f53d\\\":{\\\"name\\\":\\\"down button\\\",\\\"shortname\\\":\\\":arrow_down_small:\\\",\\\"shortname_alternates\\\":[],\\\"keywords\\\":[\\\"arrow\\\",\\\"button\\\",\\\"down\\\",\\\"red\\\"],\\\"unicode_output\\\":\\\"1f53d\\\"},\\\"27a1\\\":{\\\"name\\\":\\\"right arrow\\\",\\\"shortname\\\":\\\":arrow_right:\\\",\\\"shortname_alternates\\\":[],\\\"keywords\\\":[\\\"arrow\\\",\\\"cardinal\\\",\\\"direction\\\",\\\"east\\\"],\\\"unicode_output\\\":\\\"27a1-fe0f\\\"},\\\"2b05\\\":{\\\"name\\\":\\\"left arrow\\\",\\\"shortname\\\":\\\":arrow_left:\\\",\\\"shortname_alternates\\\":[],\\\"keywords\\\":[\\\"arrow\\\",\\\"cardinal\\\",\\\"direction\\\",\\\"west\\\"],\\\"unicode_output\\\":\\\"2b05-fe0f\\\"},\\\"2b06\\\":{\\\"name\\\":\\\"up arrow\\\",\\\"shortname\\\":\\\":arrow_up:\\\",\\\"shortname_alternates\\\":[],\\\"keywords\\\":[\\\"arrow\\\",\\\"cardinal\\\",\\\"direction\\\",\\\"north\\\"],\\\"unicode_output\\\":\\\"2b06-fe0f\\\"},\\\"2b07\\\":{\\\"name\\\":\\\"down arrow\\\",\\\"shortname\\\":\\\":arrow_down:\\\",\\\"shortname_alternates\\\":[],\\\"keywords\\\":[\\\"arrow\\\",\\\"cardinal\\\",\\\"direction\\\",\\\"down\\\",\\\"south\\\"],\\\"unicode_output\\\":\\\"2b07-fe0f\\\"},\\\"21aa\\\":{\\\"name\\\":\\\"left arrow curving right\\\",\\\"shortname\\\":\\\":arrow_right_hook:\\\",\\\"shortname_alternates\\\":[],\\\"keywords\\\":[\\\"arrow\\\"],\\\"unicode_output\\\":\\\"21aa-fe0f\\\"},\\\"21a9\\\":{\\\"name\\\":\\\"right arrow curving left\\\",\\\"shortname\\\":\\\":leftwards_arrow_with_hook:\\\",\\\"shortname_alternates\\\":[],\\\"keywords\\\":[\\\"arrow\\\"],\\\"unicode_output\\\":\\\"21a9-fe0f\\\"},\\\"1f500\\\":{\\\"name\\\":\\\"shuffle tracks button\\\",\\\"shortname\\\":\\\":twisted_rightwards_arrows:\\\",\\\"shortname_alternates\\\":[],\\\"keywords\\\":[\\\"arrow\\\",\\\"crossed\\\"],\\\"unicode_output\\\":\\\"1f500\\\"},\\\"1f501\\\":{\\\"name\\\":\\\"repeat button\\\",\\\"shortname\\\":\\\":repeat:\\\",\\\"shortname_alternates\\\":[],\\\"keywords\\\":[\\\"arrow\\\",\\\"clockwise\\\",\\\"repeat\\\"],\\\"unicode_output\\\":\\\"1f501\\\"},\\\"1f502\\\":{\\\"name\\\":\\\"repeat single button\\\",\\\"shortname\\\":\\\":repeat_one:\\\",\\\"shortname_alternates\\\":[],\\\"keywords\\\":[\\\"arrow\\\",\\\"clockwise\\\",\\\"once\\\"],\\\"unicode_output\\\":\\\"1f502\\\"},\\\"1f504\\\":{\\\"name\\\":\\\"anticlockwise arrows button\\\",\\\"shortname\\\":\\\":arrows_counterclockwise:\\\",\\\"shortname_alternates\\\":[],\\\"keywords\\\":[\\\"anticlockwise\\\",\\\"arrow\\\",\\\"counterclockwise\\\",\\\"withershins\\\"],\\\"unicode_output\\\":\\\"1f504\\\"},\\\"1f503\\\":{\\\"name\\\":\\\"clockwise vertical arrows\\\",\\\"shortname\\\":\\\":arrows_clockwise:\\\",\\\"shortname_alternates\\\":[],\\\"keywords\\\":[\\\"arrow\\\",\\\"clockwise\\\",\\\"reload\\\"],\\\"unicode_output\\\":\\\"1f503\\\"},\\\"1f3b5\\\":{\\\"name\\\":\\\"musical note\\\",\\\"shortname\\\":\\\":musical_note:\\\",\\\"shortname_alternates\\\":[],\\\"keywords\\\":[\\\"music\\\",\\\"note\\\"],\\\"unicode_output\\\":\\\"1f3b5\\\"},\\\"1f3b6\\\":{\\\"name\\\":\\\"musical notes\\\",\\\"shortname\\\":\\\":notes:\\\",\\\"shortname_alternates\\\":[],\\\"keywords\\\":[\\\"music\\\",\\\"note\\\",\\\"notes\\\"],\\\"unicode_output\\\":\\\"1f3b6\\\"},\\\"1f4b2\\\":{\\\"name\\\":\\\"heavy dollar sign\\\",\\\"shortname\\\":\\\":heavy_dollar_sign:\\\",\\\"shortname_alternates\\\":[],\\\"keywords\\\":[\\\"currency\\\",\\\"dollar\\\",\\\"money\\\"],\\\"unicode_output\\\":\\\"1f4b2\\\"},\\\"1f4b1\\\":{\\\"name\\\":\\\"currency exchange\\\",\\\"shortname\\\":\\\":currency_exchange:\\\",\\\"shortname_alternates\\\":[],\\\"keywords\\\":[\\\"bank\\\",\\\"currency\\\",\\\"exchange\\\",\\\"money\\\"],\\\"unicode_output\\\":\\\"1f4b1\\\"},\\\"00a9\\\":{\\\"name\\\":\\\"copyright\\\",\\\"shortname\\\":\\\":copyright:\\\",\\\"shortname_alternates\\\":[],\\\"keywords\\\":[\\\"copyright\\\"],\\\"unicode_output\\\":\\\"00a9-fe0f\\\"},\\\"00ae\\\":{\\\"name\\\":\\\"registered\\\",\\\"shortname\\\":\\\":registered:\\\",\\\"shortname_alternates\\\":[],\\\"keywords\\\":[\\\"registered\\\"],\\\"unicode_output\\\":\\\"00ae-fe0f\\\"},\\\"27b0\\\":{\\\"name\\\":\\\"curly loop\\\",\\\"shortname\\\":\\\":curly_loop:\\\",\\\"shortname_alternates\\\":[],\\\"keywords\\\":[\\\"curl\\\",\\\"loop\\\"],\\\"unicode_output\\\":\\\"27b0\\\"},\\\"27bf\\\":{\\\"name\\\":\\\"double curly loop\\\",\\\"shortname\\\":\\\":loop:\\\",\\\"shortname_alternates\\\":[],\\\"keywords\\\":[\\\"curl\\\",\\\"double\\\",\\\"loop\\\"],\\\"unicode_output\\\":\\\"27bf\\\"},\\\"1f51a\\\":{\\\"name\\\":\\\"END arrow\\\",\\\"shortname\\\":\\\":end:\\\",\\\"shortname_alternates\\\":[],\\\"keywords\\\":[\\\"arrow\\\",\\\"end\\\"],\\\"unicode_output\\\":\\\"1f51a\\\"},\\\"1f519\\\":{\\\"name\\\":\\\"BACK arrow\\\",\\\"shortname\\\":\\\":back:\\\",\\\"shortname_alternates\\\":[],\\\"keywords\\\":[\\\"arrow\\\",\\\"back\\\"],\\\"unicode_output\\\":\\\"1f519\\\"},\\\"1f51b\\\":{\\\"name\\\":\\\"ON! arrow\\\",\\\"shortname\\\":\\\":on:\\\",\\\"shortname_alternates\\\":[],\\\"keywords\\\":[\\\"arrow\\\",\\\"mark\\\",\\\"on\\\"],\\\"unicode_output\\\":\\\"1f51b\\\"},\\\"1f51d\\\":{\\\"name\\\":\\\"TOP arrow\\\",\\\"shortname\\\":\\\":top:\\\",\\\"shortname_alternates\\\":[],\\\"keywords\\\":[\\\"arrow\\\",\\\"top\\\",\\\"up\\\"],\\\"unicode_output\\\":\\\"1f51d\\\"},\\\"1f51c\\\":{\\\"name\\\":\\\"SOON arrow\\\",\\\"shortname\\\":\\\":soon:\\\",\\\"shortname_alternates\\\":[],\\\"keywords\\\":[\\\"arrow\\\",\\\"soon\\\"],\\\"unicode_output\\\":\\\"1f51c\\\"},\\\"1f518\\\":{\\\"name\\\":\\\"radio button\\\",\\\"shortname\\\":\\\":radio_button:\\\",\\\"shortname_alternates\\\":[],\\\"keywords\\\":[\\\"button\\\",\\\"geometric\\\",\\\"radio\\\"],\\\"unicode_output\\\":\\\"1f518\\\"},\\\"26aa\\\":{\\\"name\\\":\\\"white circle\\\",\\\"shortname\\\":\\\":white_circle:\\\",\\\"shortname_alternates\\\":[],\\\"keywords\\\":[\\\"circle\\\",\\\"geometric\\\"],\\\"unicode_output\\\":\\\"26aa\\\"},\\\"26ab\\\":{\\\"name\\\":\\\"black circle\\\",\\\"shortname\\\":\\\":black_circle:\\\",\\\"shortname_alternates\\\":[],\\\"keywords\\\":[\\\"circle\\\",\\\"geometric\\\"],\\\"unicode_output\\\":\\\"26ab\\\"},\\\"1f534\\\":{\\\"name\\\":\\\"red circle\\\",\\\"shortname\\\":\\\":red_circle:\\\",\\\"shortname_alternates\\\":[],\\\"keywords\\\":[\\\"circle\\\",\\\"geometric\\\",\\\"red\\\"],\\\"unicode_output\\\":\\\"1f534\\\"},\\\"1f53a\\\":{\\\"name\\\":\\\"red triangle pointed up\\\",\\\"shortname\\\":\\\":small_red_triangle:\\\",\\\"shortname_alternates\\\":[],\\\"keywords\\\":[\\\"geometric\\\",\\\"red\\\"],\\\"unicode_output\\\":\\\"1f53a\\\"},\\\"1f53b\\\":{\\\"name\\\":\\\"red triangle pointed down\\\",\\\"shortname\\\":\\\":small_red_triangle_down:\\\",\\\"shortname_alternates\\\":[],\\\"keywords\\\":[\\\"down\\\",\\\"geometric\\\",\\\"red\\\"],\\\"unicode_output\\\":\\\"1f53b\\\"},\\\"1f538\\\":{\\\"name\\\":\\\"small orange diamond\\\",\\\"shortname\\\":\\\":small_orange_diamond:\\\",\\\"shortname_alternates\\\":[],\\\"keywords\\\":[\\\"diamond\\\",\\\"geometric\\\",\\\"orange\\\"],\\\"unicode_output\\\":\\\"1f538\\\"},\\\"1f539\\\":{\\\"name\\\":\\\"small blue diamond\\\",\\\"shortname\\\":\\\":small_blue_diamond:\\\",\\\"shortname_alternates\\\":[],\\\"keywords\\\":[\\\"blue\\\",\\\"diamond\\\",\\\"geometric\\\"],\\\"unicode_output\\\":\\\"1f539\\\"},\\\"1f536\\\":{\\\"name\\\":\\\"large orange diamond\\\",\\\"shortname\\\":\\\":large_orange_diamond:\\\",\\\"shortname_alternates\\\":[],\\\"keywords\\\":[\\\"diamond\\\",\\\"geometric\\\",\\\"orange\\\"],\\\"unicode_output\\\":\\\"1f536\\\"},\\\"1f537\\\":{\\\"name\\\":\\\"large blue diamond\\\",\\\"shortname\\\":\\\":large_blue_diamond:\\\",\\\"shortname_alternates\\\":[],\\\"keywords\\\":[\\\"blue\\\",\\\"diamond\\\",\\\"geometric\\\"],\\\"unicode_output\\\":\\\"1f537\\\"},\\\"1f533\\\":{\\\"name\\\":\\\"white square button\\\",\\\"shortname\\\":\\\":white_square_button:\\\",\\\"shortname_alternates\\\":[],\\\"keywords\\\":[\\\"button\\\",\\\"geometric\\\",\\\"outlined\\\",\\\"square\\\"],\\\"unicode_output\\\":\\\"1f533\\\"},\\\"1f532\\\":{\\\"name\\\":\\\"black square button\\\",\\\"shortname\\\":\\\":black_square_button:\\\",\\\"shortname_alternates\\\":[],\\\"keywords\\\":[\\\"button\\\",\\\"geometric\\\",\\\"square\\\"],\\\"unicode_output\\\":\\\"1f532\\\"},\\\"25aa\\\":{\\\"name\\\":\\\"black small square\\\",\\\"shortname\\\":\\\":black_small_square:\\\",\\\"shortname_alternates\\\":[],\\\"keywords\\\":[\\\"geometric\\\",\\\"square\\\"],\\\"unicode_output\\\":\\\"25aa-fe0f\\\"},\\\"25ab\\\":{\\\"name\\\":\\\"white small square\\\",\\\"shortname\\\":\\\":white_small_square:\\\",\\\"shortname_alternates\\\":[],\\\"keywords\\\":[\\\"geometric\\\",\\\"square\\\"],\\\"unicode_output\\\":\\\"25ab-fe0f\\\"},\\\"25fe\\\":{\\\"name\\\":\\\"black medium-small square\\\",\\\"shortname\\\":\\\":black_medium_small_square:\\\",\\\"shortname_alternates\\\":[],\\\"keywords\\\":[\\\"geometric\\\",\\\"square\\\"],\\\"unicode_output\\\":\\\"25fe\\\"},\\\"25fd\\\":{\\\"name\\\":\\\"white medium-small square\\\",\\\"shortname\\\":\\\":white_medium_small_square:\\\",\\\"shortname_alternates\\\":[],\\\"keywords\\\":[\\\"geometric\\\",\\\"square\\\"],\\\"unicode_output\\\":\\\"25fd\\\"},\\\"25fc\\\":{\\\"name\\\":\\\"black medium square\\\",\\\"shortname\\\":\\\":black_medium_square:\\\",\\\"shortname_alternates\\\":[],\\\"keywords\\\":[\\\"geometric\\\",\\\"square\\\"],\\\"unicode_output\\\":\\\"25fc-fe0f\\\"},\\\"25fb\\\":{\\\"name\\\":\\\"white medium square\\\",\\\"shortname\\\":\\\":white_medium_square:\\\",\\\"shortname_alternates\\\":[],\\\"keywords\\\":[\\\"geometric\\\",\\\"square\\\"],\\\"unicode_output\\\":\\\"25fb-fe0f\\\"},\\\"2b1b\\\":{\\\"name\\\":\\\"black large square\\\",\\\"shortname\\\":\\\":black_large_square:\\\",\\\"shortname_alternates\\\":[],\\\"keywords\\\":[\\\"geometric\\\",\\\"square\\\"],\\\"unicode_output\\\":\\\"2b1b\\\"},\\\"2b1c\\\":{\\\"name\\\":\\\"white large square\\\",\\\"shortname\\\":\\\":white_large_square:\\\",\\\"shortname_alternates\\\":[],\\\"keywords\\\":[\\\"geometric\\\",\\\"square\\\"],\\\"unicode_output\\\":\\\"2b1c\\\"},\\\"1f508\\\":{\\\"name\\\":\\\"speaker low volume\\\",\\\"shortname\\\":\\\":speaker:\\\",\\\"shortname_alternates\\\":[],\\\"keywords\\\":[\\\"soft\\\"],\\\"unicode_output\\\":\\\"1f508\\\"},\\\"1f507\\\":{\\\"name\\\":\\\"muted speaker\\\",\\\"shortname\\\":\\\":mute:\\\",\\\"shortname_alternates\\\":[],\\\"keywords\\\":[\\\"mute\\\",\\\"quiet\\\",\\\"silent\\\",\\\"speaker\\\"],\\\"unicode_output\\\":\\\"1f507\\\"},\\\"1f509\\\":{\\\"name\\\":\\\"speaker medium volume\\\",\\\"shortname\\\":\\\":sound:\\\",\\\"shortname_alternates\\\":[],\\\"keywords\\\":[\\\"medium\\\"],\\\"unicode_output\\\":\\\"1f509\\\"},\\\"1f50a\\\":{\\\"name\\\":\\\"speaker high volume\\\",\\\"shortname\\\":\\\":loud_sound:\\\",\\\"shortname_alternates\\\":[],\\\"keywords\\\":[\\\"loud\\\"],\\\"unicode_output\\\":\\\"1f50a\\\"},\\\"1f514\\\":{\\\"name\\\":\\\"bell\\\",\\\"shortname\\\":\\\":bell:\\\",\\\"shortname_alternates\\\":[],\\\"keywords\\\":[\\\"bell\\\"],\\\"unicode_output\\\":\\\"1f514\\\"},\\\"1f515\\\":{\\\"name\\\":\\\"bell with slash\\\",\\\"shortname\\\":\\\":no_bell:\\\",\\\"shortname_alternates\\\":[],\\\"keywords\\\":[\\\"bell\\\",\\\"forbidden\\\",\\\"mute\\\",\\\"no\\\",\\\"not\\\",\\\"prohibited\\\",\\\"quiet\\\",\\\"silent\\\"],\\\"unicode_output\\\":\\\"1f515\\\"},\\\"1f4e3\\\":{\\\"name\\\":\\\"megaphone\\\",\\\"shortname\\\":\\\":mega:\\\",\\\"shortname_alternates\\\":[],\\\"keywords\\\":[\\\"cheering\\\"],\\\"unicode_output\\\":\\\"1f4e3\\\"},\\\"1f4e2\\\":{\\\"name\\\":\\\"loudspeaker\\\",\\\"shortname\\\":\\\":loudspeaker:\\\",\\\"shortname_alternates\\\":[],\\\"keywords\\\":[\\\"loud\\\",\\\"public address\\\"],\\\"unicode_output\\\":\\\"1f4e2\\\"},\\\"1f4ac\\\":{\\\"name\\\":\\\"speech balloon\\\",\\\"shortname\\\":\\\":speech_balloon:\\\",\\\"shortname_alternates\\\":[],\\\"keywords\\\":[\\\"balloon\\\",\\\"bubble\\\",\\\"comic\\\",\\\"dialog\\\",\\\"speech\\\"],\\\"unicode_output\\\":\\\"1f4ac\\\"},\\\"1f4ad\\\":{\\\"name\\\":\\\"thought balloon\\\",\\\"shortname\\\":\\\":thought_balloon:\\\",\\\"shortname_alternates\\\":[],\\\"keywords\\\":[\\\"balloon\\\",\\\"bubble\\\",\\\"comic\\\",\\\"thought\\\"],\\\"unicode_output\\\":\\\"1f4ad\\\"},\\\"1f0cf\\\":{\\\"name\\\":\\\"joker\\\",\\\"shortname\\\":\\\":black_joker:\\\",\\\"shortname_alternates\\\":[],\\\"keywords\\\":[\\\"card\\\",\\\"game\\\",\\\"wildcard\\\"],\\\"unicode_output\\\":\\\"1f0cf\\\"},\\\"1f3b4\\\":{\\\"name\\\":\\\"flower playing cards\\\",\\\"shortname\\\":\\\":flower_playing_cards:\\\",\\\"shortname_alternates\\\":[],\\\"keywords\\\":[\\\"Japanese\\\",\\\"card\\\",\\\"flower\\\",\\\"game\\\",\\\"playing\\\"],\\\"unicode_output\\\":\\\"1f3b4\\\"},\\\"1f004\\\":{\\\"name\\\":\\\"mahjong red dragon\\\",\\\"shortname\\\":\\\":mahjong:\\\",\\\"shortname_alternates\\\":[],\\\"keywords\\\":[\\\"game\\\",\\\"mahjong\\\",\\\"red\\\"],\\\"unicode_output\\\":\\\"1f004\\\"},\\\"1f550\\\":{\\\"name\\\":\\\"one o’clock\\\",\\\"shortname\\\":\\\":clock1:\\\",\\\"shortname_alternates\\\":[],\\\"keywords\\\":[\\\"00\\\",\\\"1\\\",\\\"1:00\\\",\\\"clock\\\",\\\"one\\\",\\\"o’clock\\\"],\\\"unicode_output\\\":\\\"1f550\\\"},\\\"1f551\\\":{\\\"name\\\":\\\"two o’clock\\\",\\\"shortname\\\":\\\":clock2:\\\",\\\"shortname_alternates\\\":[],\\\"keywords\\\":[\\\"00\\\",\\\"2\\\",\\\"2:00\\\",\\\"clock\\\",\\\"o’clock\\\",\\\"two\\\"],\\\"unicode_output\\\":\\\"1f551\\\"},\\\"1f552\\\":{\\\"name\\\":\\\"three o’clock\\\",\\\"shortname\\\":\\\":clock3:\\\",\\\"shortname_alternates\\\":[],\\\"keywords\\\":[\\\"00\\\",\\\"3\\\",\\\"3:00\\\",\\\"clock\\\",\\\"o’clock\\\",\\\"three\\\"],\\\"unicode_output\\\":\\\"1f552\\\"},\\\"1f553\\\":{\\\"name\\\":\\\"four o’clock\\\",\\\"shortname\\\":\\\":clock4:\\\",\\\"shortname_alternates\\\":[],\\\"keywords\\\":[\\\"00\\\",\\\"4\\\",\\\"4:00\\\",\\\"clock\\\",\\\"four\\\",\\\"o’clock\\\"],\\\"unicode_output\\\":\\\"1f553\\\"},\\\"1f554\\\":{\\\"name\\\":\\\"five o’clock\\\",\\\"shortname\\\":\\\":clock5:\\\",\\\"shortname_alternates\\\":[],\\\"keywords\\\":[\\\"00\\\",\\\"5\\\",\\\"5:00\\\",\\\"clock\\\",\\\"five\\\",\\\"o’clock\\\"],\\\"unicode_output\\\":\\\"1f554\\\"},\\\"1f555\\\":{\\\"name\\\":\\\"six o’clock\\\",\\\"shortname\\\":\\\":clock6:\\\",\\\"shortname_alternates\\\":[],\\\"keywords\\\":[\\\"00\\\",\\\"6\\\",\\\"6:00\\\",\\\"clock\\\",\\\"o’clock\\\",\\\"six\\\"],\\\"unicode_output\\\":\\\"1f555\\\"},\\\"1f556\\\":{\\\"name\\\":\\\"seven o’clock\\\",\\\"shortname\\\":\\\":clock7:\\\",\\\"shortname_alternates\\\":[],\\\"keywords\\\":[\\\"00\\\",\\\"7\\\",\\\"7:00\\\",\\\"clock\\\",\\\"o’clock\\\",\\\"seven\\\"],\\\"unicode_output\\\":\\\"1f556\\\"},\\\"1f557\\\":{\\\"name\\\":\\\"eight o’clock\\\",\\\"shortname\\\":\\\":clock8:\\\",\\\"shortname_alternates\\\":[],\\\"keywords\\\":[\\\"00\\\",\\\"8\\\",\\\"8:00\\\",\\\"clock\\\",\\\"eight\\\",\\\"o’clock\\\"],\\\"unicode_output\\\":\\\"1f557\\\"},\\\"1f558\\\":{\\\"name\\\":\\\"nine o’clock\\\",\\\"shortname\\\":\\\":clock9:\\\",\\\"shortname_alternates\\\":[],\\\"keywords\\\":[\\\"00\\\",\\\"9\\\",\\\"9:00\\\",\\\"clock\\\",\\\"nine\\\",\\\"o’clock\\\"],\\\"unicode_output\\\":\\\"1f558\\\"},\\\"1f559\\\":{\\\"name\\\":\\\"ten o’clock\\\",\\\"shortname\\\":\\\":clock10:\\\",\\\"shortname_alternates\\\":[],\\\"keywords\\\":[\\\"00\\\",\\\"10\\\",\\\"10:00\\\",\\\"clock\\\",\\\"o’clock\\\",\\\"ten\\\"],\\\"unicode_output\\\":\\\"1f559\\\"},\\\"1f55a\\\":{\\\"name\\\":\\\"eleven o’clock\\\",\\\"shortname\\\":\\\":clock11:\\\",\\\"shortname_alternates\\\":[],\\\"keywords\\\":[\\\"00\\\",\\\"11\\\",\\\"11:00\\\",\\\"clock\\\",\\\"eleven\\\",\\\"o’clock\\\"],\\\"unicode_output\\\":\\\"1f55a\\\"},\\\"1f55b\\\":{\\\"name\\\":\\\"twelve o’clock\\\",\\\"shortname\\\":\\\":clock12:\\\",\\\"shortname_alternates\\\":[],\\\"keywords\\\":[\\\"00\\\",\\\"12\\\",\\\"12:00\\\",\\\"clock\\\",\\\"o’clock\\\",\\\"twelve\\\"],\\\"unicode_output\\\":\\\"1f55b\\\"},\\\"1f55c\\\":{\\\"name\\\":\\\"one-thirty\\\",\\\"shortname\\\":\\\":clock130:\\\",\\\"shortname_alternates\\\":[],\\\"keywords\\\":[\\\"1\\\",\\\"1:30\\\",\\\"30\\\",\\\"clock\\\",\\\"one\\\",\\\"thirty\\\"],\\\"unicode_output\\\":\\\"1f55c\\\"},\\\"1f55d\\\":{\\\"name\\\":\\\"two-thirty\\\",\\\"shortname\\\":\\\":clock230:\\\",\\\"shortname_alternates\\\":[],\\\"keywords\\\":[\\\"2\\\",\\\"2:30\\\",\\\"30\\\",\\\"clock\\\",\\\"thirty\\\",\\\"two\\\"],\\\"unicode_output\\\":\\\"1f55d\\\"},\\\"1f55e\\\":{\\\"name\\\":\\\"three-thirty\\\",\\\"shortname\\\":\\\":clock330:\\\",\\\"shortname_alternates\\\":[],\\\"keywords\\\":[\\\"3\\\",\\\"30\\\",\\\"3:30\\\",\\\"clock\\\",\\\"thirty\\\",\\\"three\\\"],\\\"unicode_output\\\":\\\"1f55e\\\"},\\\"1f55f\\\":{\\\"name\\\":\\\"four-thirty\\\",\\\"shortname\\\":\\\":clock430:\\\",\\\"shortname_alternates\\\":[],\\\"keywords\\\":[\\\"4\\\",\\\"30\\\",\\\"4:30\\\",\\\"clock\\\",\\\"four\\\",\\\"thirty\\\"],\\\"unicode_output\\\":\\\"1f55f\\\"},\\\"1f560\\\":{\\\"name\\\":\\\"five-thirty\\\",\\\"shortname\\\":\\\":clock530:\\\",\\\"shortname_alternates\\\":[],\\\"keywords\\\":[\\\"5\\\",\\\"30\\\",\\\"5:30\\\",\\\"clock\\\",\\\"five\\\",\\\"thirty\\\"],\\\"unicode_output\\\":\\\"1f560\\\"},\\\"1f561\\\":{\\\"name\\\":\\\"six-thirty\\\",\\\"shortname\\\":\\\":clock630:\\\",\\\"shortname_alternates\\\":[],\\\"keywords\\\":[\\\"6\\\",\\\"30\\\",\\\"6:30\\\",\\\"clock\\\",\\\"six\\\",\\\"thirty\\\"],\\\"unicode_output\\\":\\\"1f561\\\"},\\\"1f562\\\":{\\\"name\\\":\\\"seven-thirty\\\",\\\"shortname\\\":\\\":clock730:\\\",\\\"shortname_alternates\\\":[],\\\"keywords\\\":[\\\"7\\\",\\\"30\\\",\\\"7:30\\\",\\\"clock\\\",\\\"seven\\\",\\\"thirty\\\"],\\\"unicode_output\\\":\\\"1f562\\\"},\\\"1f563\\\":{\\\"name\\\":\\\"eight-thirty\\\",\\\"shortname\\\":\\\":clock830:\\\",\\\"shortname_alternates\\\":[],\\\"keywords\\\":[\\\"8\\\",\\\"30\\\",\\\"8:30\\\",\\\"clock\\\",\\\"eight\\\",\\\"thirty\\\"],\\\"unicode_output\\\":\\\"1f563\\\"},\\\"1f564\\\":{\\\"name\\\":\\\"nine-thirty\\\",\\\"shortname\\\":\\\":clock930:\\\",\\\"shortname_alternates\\\":[],\\\"keywords\\\":[\\\"9\\\",\\\"30\\\",\\\"9:30\\\",\\\"clock\\\",\\\"nine\\\",\\\"thirty\\\"],\\\"unicode_output\\\":\\\"1f564\\\"},\\\"1f565\\\":{\\\"name\\\":\\\"ten-thirty\\\",\\\"shortname\\\":\\\":clock1030:\\\",\\\"shortname_alternates\\\":[],\\\"keywords\\\":[\\\"10\\\",\\\"10:30\\\",\\\"30\\\",\\\"clock\\\",\\\"ten\\\",\\\"thirty\\\"],\\\"unicode_output\\\":\\\"1f565\\\"},\\\"1f566\\\":{\\\"name\\\":\\\"eleven-thirty\\\",\\\"shortname\\\":\\\":clock1130:\\\",\\\"shortname_alternates\\\":[],\\\"keywords\\\":[\\\"11\\\",\\\"11:30\\\",\\\"30\\\",\\\"clock\\\",\\\"eleven\\\",\\\"thirty\\\"],\\\"unicode_output\\\":\\\"1f566\\\"},\\\"1f567\\\":{\\\"name\\\":\\\"twelve-thirty\\\",\\\"shortname\\\":\\\":clock1230:\\\",\\\"shortname_alternates\\\":[],\\\"keywords\\\":[\\\"12\\\",\\\"12:30\\\",\\\"30\\\",\\\"clock\\\",\\\"thirty\\\",\\\"twelve\\\"],\\\"unicode_output\\\":\\\"1f567\\\"},\\\"1f3c1\\\":{\\\"name\\\":\\\"chequered flag\\\",\\\"shortname\\\":\\\":checkered_flag:\\\",\\\"shortname_alternates\\\":[],\\\"keywords\\\":[\\\"checkered\\\",\\\"chequered\\\",\\\"racing\\\"],\\\"unicode_output\\\":\\\"1f3c1\\\"},\\\"1f6a9\\\":{\\\"name\\\":\\\"triangular flag\\\",\\\"shortname\\\":\\\":triangular_flag_on_post:\\\",\\\"shortname_alternates\\\":[],\\\"keywords\\\":[\\\"post\\\"],\\\"unicode_output\\\":\\\"1f6a9\\\"},\\\"1f3f3-1f308\\\":{\\\"name\\\":\\\"rainbow flag\\\",\\\"shortname\\\":\\\":rainbow_flag:\\\",\\\"shortname_alternates\\\":[\\\":gay_pride_flag:\\\"],\\\"keywords\\\":[\\\"rainbow\\\"],\\\"unicode_output\\\":\\\"1f3f3-fe0f-200d-1f308\\\"},\\\"1f38c\\\":{\\\"name\\\":\\\"crossed flags\\\",\\\"shortname\\\":\\\":crossed_flags:\\\",\\\"shortname_alternates\\\":[],\\\"keywords\\\":[\\\"Japanese\\\",\\\"celebration\\\",\\\"cross\\\",\\\"crossed\\\"],\\\"unicode_output\\\":\\\"1f38c\\\"},\\\"1f468-1f469-1f466\\\":{\\\"name\\\":\\\"family: man, woman, boy\\\",\\\"shortname\\\":\\\":family_man_woman_boy:\\\",\\\"shortname_alternates\\\":[],\\\"keywords\\\":[\\\"boy\\\",\\\"family\\\",\\\"man\\\",\\\"woman\\\"],\\\"unicode_output\\\":\\\"1f468-200d-1f469-200d-1f466\\\"},\\\"1f469-2764-1f468\\\":{\\\"name\\\":\\\"couple with heart: woman, man\\\",\\\"shortname\\\":\\\":couple_with_heart_woman_man:\\\",\\\"shortname_alternates\\\":[],\\\"keywords\\\":[\\\"couple\\\",\\\"love\\\",\\\"man\\\",\\\"woman\\\"],\\\"unicode_output\\\":\\\"1f469-200d-2764-fe0f-200d-1f468\\\"}}\");//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9zcmMvY2xpZW50L2pzL3V0aWwvZW1vamlvbmUvZW1vamlfc3RyYXRlZ3lfc2hyaW5rZWQuanNvbi5qcyIsInNvdXJjZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./src/client/js/util/emojione/emoji_strategy_shrinked.json\n");
- /***/ }),
- /***/ "./src/client/js/util/i18n.js":
- /*!************************************!*\
- !*** ./src/client/js/util/i18n.js ***!
- \************************************/
- /*! exports provided: localeMetadatas, i18nFactory */
- /***/ (function(module, __webpack_exports__, __webpack_require__) {
- "use strict";
- eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"localeMetadatas\", function() { return localeMetadatas; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"i18nFactory\", function() { return i18nFactory; });\n/* harmony import */ var i18next__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! i18next */ \"./node_modules/i18next/dist/esm/i18next.js\");\n/* harmony import */ var i18next_browser_languagedetector__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! i18next-browser-languagedetector */ \"./node_modules/i18next-browser-languagedetector/dist/esm/i18nextBrowserLanguageDetector.js\");\n/* harmony import */ var react_i18next__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! react-i18next */ \"./node_modules/react-i18next/dist/es/index.js\");\n/* harmony import */ var _root_resource_locales__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @root/resource/locales */ \"./resource/locales/index.js\");\n/* harmony import */ var _root_resource_locales__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(_root_resource_locales__WEBPACK_IMPORTED_MODULE_3__);\n\n\n\n\nconst aliasesMapping = {};\nObject.values(_root_resource_locales__WEBPACK_IMPORTED_MODULE_3___default.a).forEach(locale => {\n if (locale.meta.aliases == null) {\n return;\n }\n\n locale.meta.aliases.forEach(alias => {\n aliasesMapping[alias] = locale.meta.id;\n });\n}); // extract metadata list from 'resource/locales/${locale}/meta.json'\n\nconst localeMetadatas = Object.values(_root_resource_locales__WEBPACK_IMPORTED_MODULE_3___default.a).map(locale => locale.meta);\nconst i18nFactory = userLocaleId => {\n // setup LanguageDetector\n const langDetector = new i18next_browser_languagedetector__WEBPACK_IMPORTED_MODULE_1__[\"default\"]();\n langDetector.addDetector({\n name: 'userSettingDetector',\n\n lookup(options) {\n return userLocaleId;\n }\n\n }); // Wrapper to convert lang after detected from browser\n\n langDetector.addDetector({\n name: 'navigatorWrapperToConvertByAlias',\n\n lookup(options) {\n const results = langDetector.detectors.navigator.lookup(options);\n const lang = results[0];\n\n if (lang == null) {\n return;\n }\n\n return aliasesMapping[lang] || lang;\n }\n\n });\n i18next__WEBPACK_IMPORTED_MODULE_0__[\"default\"].use(langDetector).use(react_i18next__WEBPACK_IMPORTED_MODULE_2__[\"initReactI18next\"]) // if not using I18nextProvider\n .init({\n debug: \"development\" !== 'production',\n resources: _root_resource_locales__WEBPACK_IMPORTED_MODULE_3___default.a,\n load: 'currentOnly',\n fallbackLng: 'en_US',\n detection: {\n order: ['userSettingDetector', 'navigatorWrapperToConvertByAlias', 'querystring']\n },\n interpolation: {\n escapeValue: false // not needed for react!!\n\n },\n // react i18next special options (optional)\n react: {\n wait: false,\n withRef: true,\n bindI18n: 'languageChanged loaded',\n bindStore: 'added removed',\n nsMode: 'default'\n }\n });\n return i18next__WEBPACK_IMPORTED_MODULE_0__[\"default\"];\n};//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9zcmMvY2xpZW50L2pzL3V0aWwvaTE4bi5qcy5qcyIsInNvdXJjZXMiOlsid2VicGFjazovLy8uL3NyYy9jbGllbnQvanMvdXRpbC9pMThuLmpzP2RlNzciXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IGkxOG4gZnJvbSAnaTE4bmV4dCc7XG5pbXBvcnQgTGFuZ3VhZ2VEZXRlY3RvciBmcm9tICdpMThuZXh0LWJyb3dzZXItbGFuZ3VhZ2VkZXRlY3Rvcic7XG5pbXBvcnQgeyBpbml0UmVhY3RJMThuZXh0IH0gZnJvbSAncmVhY3QtaTE4bmV4dCc7XG5pbXBvcnQgbG9jYWxlcyBmcm9tICdAcm9vdC9yZXNvdXJjZS9sb2NhbGVzJztcblxuY29uc3QgYWxpYXNlc01hcHBpbmcgPSB7fTtcbk9iamVjdC52YWx1ZXMobG9jYWxlcykuZm9yRWFjaCgobG9jYWxlKSA9PiB7XG4gIGlmIChsb2NhbGUubWV0YS5hbGlhc2VzID09IG51bGwpIHtcbiAgICByZXR1cm47XG4gIH1cbiAgbG9jYWxlLm1ldGEuYWxpYXNlcy5mb3JFYWNoKChhbGlhcykgPT4ge1xuICAgIGFsaWFzZXNNYXBwaW5nW2FsaWFzXSA9IGxvY2FsZS5tZXRhLmlkO1xuICB9KTtcbn0pO1xuXG4vLyBleHRyYWN0IG1ldGFkYXRhIGxpc3QgZnJvbSAncmVzb3VyY2UvbG9jYWxlcy8ke2xvY2FsZX0vbWV0YS5qc29uJ1xuZXhwb3J0IGNvbnN0IGxvY2FsZU1ldGFkYXRhcyA9IE9iamVjdC52YWx1ZXMobG9jYWxlcykubWFwKGxvY2FsZSA9PiBsb2NhbGUubWV0YSk7XG5cbmV4cG9ydCBjb25zdCBpMThuRmFjdG9yeSA9ICh1c2VyTG9jYWxlSWQpID0+IHtcbiAgLy8gc2V0dXAgTGFuZ3VhZ2VEZXRlY3RvclxuICBjb25zdCBsYW5nRGV0ZWN0b3IgPSBuZXcgTGFuZ3VhZ2VEZXRlY3RvcigpO1xuICBsYW5nRGV0ZWN0b3IuYWRkRGV0ZWN0b3Ioe1xuICAgIG5hbWU6ICd1c2VyU2V0dGluZ0RldGVjdG9yJyxcbiAgICBsb29rdXAob3B0aW9ucykge1xuICAgICAgcmV0dXJuIHVzZXJMb2NhbGVJZDtcbiAgICB9LFxuICB9KTtcbiAgLy8gV3JhcHBlciB0byBjb252ZXJ0IGxhbmcgYWZ0ZXIgZGV0ZWN0ZWQgZnJvbSBicm93c2VyXG4gIGxhbmdEZXRlY3Rvci5hZGREZXRlY3Rvcih7XG4gICAgbmFtZTogJ25hdmlnYXRvcldyYXBwZXJUb0NvbnZlcnRCeUFsaWFzJyxcbiAgICBsb29rdXAob3B0aW9ucykge1xuICAgICAgY29uc3QgcmVzdWx0cyA9IGxhbmdEZXRlY3Rvci5kZXRlY3RvcnMubmF2aWdhdG9yLmxvb2t1cChvcHRpb25zKTtcbiAgICAgIGNvbnN0IGxhbmcgPSByZXN1bHRzWzBdO1xuICAgICAgaWYgKGxhbmcgPT0gbnVsbCkge1xuICAgICAgICByZXR1cm47XG4gICAgICB9XG5cbiAgICAgIHJldHVybiBhbGlhc2VzTWFwcGluZ1tsYW5nXSB8fCBsYW5nO1xuICAgIH0sXG4gIH0pO1xuXG4gIGkxOG5cbiAgICAudXNlKGxhbmdEZXRlY3RvcilcbiAgICAudXNlKGluaXRSZWFjdEkxOG5leHQpIC8vIGlmIG5vdCB1c2luZyBJMThuZXh0UHJvdmlkZXJcbiAgICAuaW5pdCh7XG4gICAgICBkZWJ1ZzogKHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSAncHJvZHVjdGlvbicpLFxuICAgICAgcmVzb3VyY2VzOiBsb2NhbGVzLFxuICAgICAgbG9hZDogJ2N1cnJlbnRPbmx5JyxcblxuICAgICAgZmFsbGJhY2tMbmc6ICdlbl9VUycsXG4gICAgICBkZXRlY3Rpb246IHtcbiAgICAgICAgb3JkZXI6IFsndXNlclNldHRpbmdEZXRlY3RvcicsICduYXZpZ2F0b3JXcmFwcGVyVG9Db252ZXJ0QnlBbGlhcycsICdxdWVyeXN0cmluZyddLFxuICAgICAgfSxcblxuICAgICAgaW50ZXJwb2xhdGlvbjoge1xuICAgICAgICBlc2NhcGVWYWx1ZTogZmFsc2UsIC8vIG5vdCBuZWVkZWQgZm9yIHJlYWN0ISFcbiAgICAgIH0sXG5cbiAgICAgIC8vIHJlYWN0IGkxOG5leHQgc3BlY2lhbCBvcHRpb25zIChvcHRpb25hbClcbiAgICAgIHJlYWN0OiB7XG4gICAgICAgIHdhaXQ6IGZhbHNlLFxuICAgICAgICB3aXRoUmVmOiB0cnVlLFxuICAgICAgICBiaW5kSTE4bjogJ2xhbmd1YWdlQ2hhbmdlZCBsb2FkZWQnLFxuICAgICAgICBiaW5kU3RvcmU6ICdhZGRlZCByZW1vdmVkJyxcbiAgICAgICAgbnNNb2RlOiAnZGVmYXVsdCcsXG4gICAgICB9LFxuICAgIH0pO1xuXG4gIHJldHVybiBpMThuO1xufTtcbiJdLCJtYXBwaW5ncyI6IkFBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQ0E7QUFDQTtBQUNBO0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUVBO0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQUE7QUFDQTtBQUNBO0FBQ0E7QUFMQTtBQUNBO0FBTUE7QUFDQTtBQUNBO0FBQUE7QUFDQTtBQUNBO0FBQ0E7QUFBQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQVhBO0FBYUE7QUFBQTtBQUlBO0FBQ0E7QUFDQTtBQUVBO0FBQ0E7QUFDQTtBQURBO0FBSUE7QUFDQTtBQUNBO0FBRkE7QUFJQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUxBO0FBZkE7QUF3QkE7QUFDQSIsInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./src/client/js/util/i18n.js\n");
- /***/ }),
- /***/ "./src/client/js/util/markdown-it/blockdiag.js":
- /*!*****************************************************!*\
- !*** ./src/client/js/util/markdown-it/blockdiag.js ***!
- \*****************************************************/
- /*! exports provided: default */
- /***/ (function(module, __webpack_exports__, __webpack_require__) {
- "use strict";
- eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"default\", function() { return BlockdiagConfigurer; });\nclass BlockdiagConfigurer {\n constructor(crowi) {\n this.crowi = crowi;\n const config = crowi.getConfig();\n this.generateSourceUrl = config.env.BLOCKDIAG_URI || 'https://blockdiag-api.com/';\n }\n\n configure(md) {\n md.use(__webpack_require__(/*! markdown-it-blockdiag */ \"./node_modules/markdown-it-blockdiag/dist/main.js\"), {\n generateSourceUrl: this.generateSourceUrl,\n marker: ':::'\n });\n }\n\n}//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9zcmMvY2xpZW50L2pzL3V0aWwvbWFya2Rvd24taXQvYmxvY2tkaWFnLmpzLmpzIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vLy4vc3JjL2NsaWVudC9qcy91dGlsL21hcmtkb3duLWl0L2Jsb2NrZGlhZy5qcz83NzdlIl0sInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBkZWZhdWx0IGNsYXNzIEJsb2NrZGlhZ0NvbmZpZ3VyZXIge1xuXG4gIGNvbnN0cnVjdG9yKGNyb3dpKSB7XG4gICAgdGhpcy5jcm93aSA9IGNyb3dpO1xuICAgIGNvbnN0IGNvbmZpZyA9IGNyb3dpLmdldENvbmZpZygpO1xuXG4gICAgdGhpcy5nZW5lcmF0ZVNvdXJjZVVybCA9IGNvbmZpZy5lbnYuQkxPQ0tESUFHX1VSSSB8fCAnaHR0cHM6Ly9ibG9ja2RpYWctYXBpLmNvbS8nO1xuICB9XG5cbiAgY29uZmlndXJlKG1kKSB7XG4gICAgbWQudXNlKHJlcXVpcmUoJ21hcmtkb3duLWl0LWJsb2NrZGlhZycpLCB7XG4gICAgICBnZW5lcmF0ZVNvdXJjZVVybDogdGhpcy5nZW5lcmF0ZVNvdXJjZVVybCxcbiAgICAgIG1hcmtlcjogJzo6OicsXG4gICAgfSk7XG4gIH1cblxufVxuIl0sIm1hcHBpbmdzIjoiQUFBQTtBQUFBO0FBQUE7QUFFQTtBQUNBO0FBQ0E7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUZBO0FBSUE7QUFDQTtBQWZBIiwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./src/client/js/util/markdown-it/blockdiag.js\n");
- /***/ }),
- /***/ "./src/client/js/util/markdown-it/drawio-viewer.js":
- /*!*********************************************************!*\
- !*** ./src/client/js/util/markdown-it/drawio-viewer.js ***!
- \*********************************************************/
- /*! exports provided: default */
- /***/ (function(module, __webpack_exports__, __webpack_require__) {
- "use strict";
- eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"default\", function() { return DrawioViewerConfigurer; });\nclass DrawioViewerConfigurer {\n configure(md) {\n md.use(__webpack_require__(/*! markdown-it-drawio-viewer */ \"./node_modules/markdown-it-drawio-viewer/dist/markdown-it-drawio-viewer.js\"), {\n marker: ':::'\n });\n }\n\n}//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9zcmMvY2xpZW50L2pzL3V0aWwvbWFya2Rvd24taXQvZHJhd2lvLXZpZXdlci5qcy5qcyIsInNvdXJjZXMiOlsid2VicGFjazovLy8uL3NyYy9jbGllbnQvanMvdXRpbC9tYXJrZG93bi1pdC9kcmF3aW8tdmlld2VyLmpzPzM0ZTciXSwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGRlZmF1bHQgY2xhc3MgRHJhd2lvVmlld2VyQ29uZmlndXJlciB7XG5cbiAgY29uZmlndXJlKG1kKSB7XG4gICAgbWQudXNlKHJlcXVpcmUoJ21hcmtkb3duLWl0LWRyYXdpby12aWV3ZXInKSwge1xuICAgICAgbWFya2VyOiAnOjo6JyxcbiAgICB9KTtcbiAgfVxuXG59XG4iXSwibWFwcGluZ3MiOiJBQUFBO0FBQUE7QUFBQTtBQUVBO0FBQ0E7QUFDQTtBQURBO0FBR0E7QUFDQTtBQVBBIiwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./src/client/js/util/markdown-it/drawio-viewer.js\n");
- /***/ }),
- /***/ "./src/client/js/util/markdown-it/emoji.js":
- /*!*************************************************!*\
- !*** ./src/client/js/util/markdown-it/emoji.js ***!
- \*************************************************/
- /*! exports provided: default */
- /***/ (function(module, __webpack_exports__, __webpack_require__) {
- "use strict";
- eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"default\", function() { return EmojiConfigurer; });\nclass EmojiConfigurer {\n constructor(crowi) {\n this.crowi = crowi;\n }\n\n configure(md) {\n const emojiStrategy = this.crowi.getEmojiStrategy();\n const emojiShortnameUnicodeMap = {};\n /* eslint-disable guard-for-in, no-restricted-syntax */\n\n for (const unicode in emojiStrategy) {\n const data = emojiStrategy[unicode];\n const shortname = data.shortname.replace(/:/g, '');\n emojiShortnameUnicodeMap[shortname] = String.fromCharCode(unicode);\n }\n /* eslint-enable guard-for-in, no-restricted-syntax */\n\n\n md.use(__webpack_require__(/*! markdown-it-emoji */ \"./node_modules/markdown-it-emoji/index.js\"), {\n defs: emojiShortnameUnicodeMap\n }); // integrate markdown-it-emoji and emojione\n\n md.renderer.rules.emoji = (token, idx) => {\n const shortname = `:${token[idx].markup}:`;\n return emojione.shortnameToImage(shortname);\n };\n }\n\n}//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9zcmMvY2xpZW50L2pzL3V0aWwvbWFya2Rvd24taXQvZW1vamkuanMuanMiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9zcmMvY2xpZW50L2pzL3V0aWwvbWFya2Rvd24taXQvZW1vamkuanM/NzM3YiJdLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgZGVmYXVsdCBjbGFzcyBFbW9qaUNvbmZpZ3VyZXIge1xuXG4gIGNvbnN0cnVjdG9yKGNyb3dpKSB7XG4gICAgdGhpcy5jcm93aSA9IGNyb3dpO1xuICB9XG5cbiAgY29uZmlndXJlKG1kKSB7XG4gICAgY29uc3QgZW1vamlTdHJhdGVneSA9IHRoaXMuY3Jvd2kuZ2V0RW1vamlTdHJhdGVneSgpO1xuXG4gICAgY29uc3QgZW1vamlTaG9ydG5hbWVVbmljb2RlTWFwID0ge307XG5cbiAgICAvKiBlc2xpbnQtZGlzYWJsZSBndWFyZC1mb3ItaW4sIG5vLXJlc3RyaWN0ZWQtc3ludGF4ICovXG4gICAgZm9yIChjb25zdCB1bmljb2RlIGluIGVtb2ppU3RyYXRlZ3kpIHtcbiAgICAgIGNvbnN0IGRhdGEgPSBlbW9qaVN0cmF0ZWd5W3VuaWNvZGVdO1xuICAgICAgY29uc3Qgc2hvcnRuYW1lID0gZGF0YS5zaG9ydG5hbWUucmVwbGFjZSgvOi9nLCAnJyk7XG4gICAgICBlbW9qaVNob3J0bmFtZVVuaWNvZGVNYXBbc2hvcnRuYW1lXSA9IFN0cmluZy5mcm9tQ2hhckNvZGUodW5pY29kZSk7XG4gICAgfVxuICAgIC8qIGVzbGludC1lbmFibGUgZ3VhcmQtZm9yLWluLCBuby1yZXN0cmljdGVkLXN5bnRheCAqL1xuXG4gICAgbWQudXNlKHJlcXVpcmUoJ21hcmtkb3duLWl0LWVtb2ppJyksIHsgZGVmczogZW1vamlTaG9ydG5hbWVVbmljb2RlTWFwIH0pO1xuXG4gICAgLy8gaW50ZWdyYXRlIG1hcmtkb3duLWl0LWVtb2ppIGFuZCBlbW9qaW9uZVxuICAgIG1kLnJlbmRlcmVyLnJ1bGVzLmVtb2ppID0gKHRva2VuLCBpZHgpID0+IHtcbiAgICAgIGNvbnN0IHNob3J0bmFtZSA9IGA6JHt0b2tlbltpZHhdLm1hcmt1cH06YDtcbiAgICAgIHJldHVybiBlbW9qaW9uZS5zaG9ydG5hbWVUb0ltYWdlKHNob3J0bmFtZSk7XG4gICAgfTtcbiAgfVxuXG59XG4iXSwibWFwcGluZ3MiOiJBQUFBO0FBQUE7QUFBQTtBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUVBO0FBRUE7QUFDQTtBQUFBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFBQTtBQUFBO0FBQUE7QUFDQTtBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQTNCQSIsInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./src/client/js/util/markdown-it/emoji.js\n");
- /***/ }),
- /***/ "./src/client/js/util/markdown-it/footernote.js":
- /*!******************************************************!*\
- !*** ./src/client/js/util/markdown-it/footernote.js ***!
- \******************************************************/
- /*! exports provided: default */
- /***/ (function(module, __webpack_exports__, __webpack_require__) {
- "use strict";
- eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"default\", function() { return FooternoteConfigurer; });\nclass FooternoteConfigurer {\n constructor(crowi) {\n this.crowi = crowi;\n }\n\n configure(md) {\n md.use(__webpack_require__(/*! markdown-it-footnote */ \"./node_modules/markdown-it-footnote/index.js\"));\n }\n\n}//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9zcmMvY2xpZW50L2pzL3V0aWwvbWFya2Rvd24taXQvZm9vdGVybm90ZS5qcy5qcyIsInNvdXJjZXMiOlsid2VicGFjazovLy8uL3NyYy9jbGllbnQvanMvdXRpbC9tYXJrZG93bi1pdC9mb290ZXJub3RlLmpzPzA0ZGYiXSwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGRlZmF1bHQgY2xhc3MgRm9vdGVybm90ZUNvbmZpZ3VyZXIge1xuXG4gIGNvbnN0cnVjdG9yKGNyb3dpKSB7XG4gICAgdGhpcy5jcm93aSA9IGNyb3dpO1xuICB9XG5cbiAgY29uZmlndXJlKG1kKSB7XG4gICAgbWQudXNlKHJlcXVpcmUoJ21hcmtkb3duLWl0LWZvb3Rub3RlJykpO1xuICB9XG5cbn1cbiJdLCJtYXBwaW5ncyI6IkFBQUE7QUFBQTtBQUFBO0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQVRBIiwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./src/client/js/util/markdown-it/footernote.js\n");
- /***/ }),
- /***/ "./src/client/js/util/markdown-it/header-line-number.js":
- /*!**************************************************************!*\
- !*** ./src/client/js/util/markdown-it/header-line-number.js ***!
- \**************************************************************/
- /*! exports provided: default */
- /***/ (function(module, __webpack_exports__, __webpack_require__) {
- "use strict";
- eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"default\", function() { return HeaderLineNumberConfigurer; });\nclass HeaderLineNumberConfigurer {\n constructor(crowi) {\n this.crowi = crowi;\n this.firstLine = 0;\n }\n\n configure(md) {\n for (const renderName of ['paragraph_open', 'heading_open', 'image', 'code_block', 'blockquote_open', 'list_item_open']) {\n this.addLineNumberRenderer(md, renderName);\n }\n }\n /**\n * Add line numbers for sync scroll\n * @see https://github.com/Microsoft/vscode/blob/6e8d4d057bd1152d49a1e9780ec6db6363593855/extensions/markdown/src/markdownEngine.ts#L118\n */\n\n\n addLineNumberRenderer(md, ruleName) {\n const original = md.renderer.rules[ruleName];\n\n md.renderer.rules[ruleName] = (tokens, idx, options, env, self) => {\n const token = tokens[idx];\n\n if (token.map && token.map.length) {\n token.attrSet('data-line', this.firstLine + token.map[0]);\n token.attrJoin('class', 'code-line');\n }\n\n if (original) {\n return original(tokens, idx, options, env, self);\n }\n\n return self.renderToken(tokens, idx, options, env, self);\n };\n }\n\n}//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9zcmMvY2xpZW50L2pzL3V0aWwvbWFya2Rvd24taXQvaGVhZGVyLWxpbmUtbnVtYmVyLmpzLmpzIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vLy4vc3JjL2NsaWVudC9qcy91dGlsL21hcmtkb3duLWl0L2hlYWRlci1saW5lLW51bWJlci5qcz9kOTVhIl0sInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBkZWZhdWx0IGNsYXNzIEhlYWRlckxpbmVOdW1iZXJDb25maWd1cmVyIHtcblxuICBjb25zdHJ1Y3Rvcihjcm93aSkge1xuICAgIHRoaXMuY3Jvd2kgPSBjcm93aTtcbiAgICB0aGlzLmZpcnN0TGluZSA9IDA7XG4gIH1cblxuICBjb25maWd1cmUobWQpIHtcbiAgICBmb3IgKGNvbnN0IHJlbmRlck5hbWUgb2YgWydwYXJhZ3JhcGhfb3BlbicsICdoZWFkaW5nX29wZW4nLCAnaW1hZ2UnLCAnY29kZV9ibG9jaycsICdibG9ja3F1b3RlX29wZW4nLCAnbGlzdF9pdGVtX29wZW4nXSkge1xuICAgICAgdGhpcy5hZGRMaW5lTnVtYmVyUmVuZGVyZXIobWQsIHJlbmRlck5hbWUpO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBBZGQgbGluZSBudW1iZXJzIGZvciBzeW5jIHNjcm9sbFxuICAgKiBAc2VlIGh0dHBzOi8vZ2l0aHViLmNvbS9NaWNyb3NvZnQvdnNjb2RlL2Jsb2IvNmU4ZDRkMDU3YmQxMTUyZDQ5YTFlOTc4MGVjNmRiNjM2MzU5Mzg1NS9leHRlbnNpb25zL21hcmtkb3duL3NyYy9tYXJrZG93bkVuZ2luZS50cyNMMTE4XG4gICAqL1xuICBhZGRMaW5lTnVtYmVyUmVuZGVyZXIobWQsIHJ1bGVOYW1lKSB7XG4gICAgY29uc3Qgb3JpZ2luYWwgPSBtZC5yZW5kZXJlci5ydWxlc1tydWxlTmFtZV07XG4gICAgbWQucmVuZGVyZXIucnVsZXNbcnVsZU5hbWVdID0gKHRva2VucywgaWR4LCBvcHRpb25zLCBlbnYsIHNlbGYpID0+IHtcbiAgICAgIGNvbnN0IHRva2VuID0gdG9rZW5zW2lkeF07XG4gICAgICBpZiAodG9rZW4ubWFwICYmIHRva2VuLm1hcC5sZW5ndGgpIHtcbiAgICAgICAgdG9rZW4uYXR0clNldCgnZGF0YS1saW5lJywgdGhpcy5maXJzdExpbmUgKyB0b2tlbi5tYXBbMF0pO1xuICAgICAgICB0b2tlbi5hdHRySm9pbignY2xhc3MnLCAnY29kZS1saW5lJyk7XG4gICAgICB9XG5cbiAgICAgIGlmIChvcmlnaW5hbCkge1xuICAgICAgICByZXR1cm4gb3JpZ2luYWwodG9rZW5zLCBpZHgsIG9wdGlvbnMsIGVudiwgc2VsZik7XG4gICAgICB9XG5cbiAgICAgIHJldHVybiBzZWxmLnJlbmRlclRva2VuKHRva2VucywgaWR4LCBvcHRpb25zLCBlbnYsIHNlbGYpO1xuICAgIH07XG4gIH1cblxufVxuIl0sIm1hcHBpbmdzIjoiQUFBQTtBQUFBO0FBQUE7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUVBOzs7Ozs7QUFJQTtBQUNBO0FBQ0E7QUFBQTtBQUNBO0FBQ0E7QUFBQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQWpDQSIsInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./src/client/js/util/markdown-it/header-line-number.js\n");
- /***/ }),
- /***/ "./src/client/js/util/markdown-it/header-with-edit-link.js":
- /*!*****************************************************************!*\
- !*** ./src/client/js/util/markdown-it/header-with-edit-link.js ***!
- \*****************************************************************/
- /*! exports provided: default */
- /***/ (function(module, __webpack_exports__, __webpack_require__) {
- "use strict";
- eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"default\", function() { return HeaderWithEditLinkConfigurer; });\nclass HeaderWithEditLinkConfigurer {\n constructor(crowi) {\n this.crowi = crowi;\n }\n\n configure(md) {\n md.renderer.rules.heading_close = (tokens, idx) => {\n return `<span class=\"revision-head-edit-button\">\n <a href=\"#edit\" onClick=\"Crowi.setCaretLineData(parseInt(this.parentNode.parentNode.dataset.line, 10))\">\n <i class=\"icon-note\"></i>\n </a>\n </span></${tokens[idx].tag}>`;\n };\n }\n\n}//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9zcmMvY2xpZW50L2pzL3V0aWwvbWFya2Rvd24taXQvaGVhZGVyLXdpdGgtZWRpdC1saW5rLmpzLmpzIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vLy4vc3JjL2NsaWVudC9qcy91dGlsL21hcmtkb3duLWl0L2hlYWRlci13aXRoLWVkaXQtbGluay5qcz8xZjZmIl0sInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBkZWZhdWx0IGNsYXNzIEhlYWRlcldpdGhFZGl0TGlua0NvbmZpZ3VyZXIge1xuXG4gIGNvbnN0cnVjdG9yKGNyb3dpKSB7XG4gICAgdGhpcy5jcm93aSA9IGNyb3dpO1xuICB9XG5cbiAgY29uZmlndXJlKG1kKSB7XG4gICAgbWQucmVuZGVyZXIucnVsZXMuaGVhZGluZ19jbG9zZSA9ICh0b2tlbnMsIGlkeCkgPT4ge1xuICAgICAgcmV0dXJuIGA8c3BhbiBjbGFzcz1cInJldmlzaW9uLWhlYWQtZWRpdC1idXR0b25cIj5cbiAgICAgICAgICAgICAgICA8YSBocmVmPVwiI2VkaXRcIiBvbkNsaWNrPVwiQ3Jvd2kuc2V0Q2FyZXRMaW5lRGF0YShwYXJzZUludCh0aGlzLnBhcmVudE5vZGUucGFyZW50Tm9kZS5kYXRhc2V0LmxpbmUsIDEwKSlcIj5cbiAgICAgICAgICAgICAgICAgIDxpIGNsYXNzPVwiaWNvbi1ub3RlXCI+PC9pPlxuICAgICAgICAgICAgICAgIDwvYT5cbiAgICAgICAgICAgICAgPC9zcGFuPjwvJHt0b2tlbnNbaWR4XS50YWd9PmA7XG4gICAgfTtcbiAgfVxuXG59XG4iXSwibWFwcGluZ3MiOiJBQUFBO0FBQUE7QUFBQTtBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOzs7O0FBSUE7QUFDQTtBQUNBO0FBQ0E7QUFmQSIsInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./src/client/js/util/markdown-it/header-with-edit-link.js\n");
- /***/ }),
- /***/ "./src/client/js/util/markdown-it/header.js":
- /*!**************************************************!*\
- !*** ./src/client/js/util/markdown-it/header.js ***!
- \**************************************************/
- /*! exports provided: default */
- /***/ (function(module, __webpack_exports__, __webpack_require__) {
- "use strict";
- eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"default\", function() { return HeaderConfigurer; });\nclass HeaderConfigurer {\n constructor(crowi) {\n this.crowi = crowi;\n this.injectRevisionHeadClass = this.injectRevisionHeadClass.bind(this);\n }\n\n configure(md) {\n const rules = md.renderer.rules;\n const original = rules.heading_open; // combine rule and set\n // rules.heading_open = this.combineRules(this.injectRevisionHeadClass, headingOpenOrg);\n\n rules.heading_open = (tokens, idx, options, env, self) => {\n // Inject 'revision-head' class\n this.injectRevisionHeadClass(tokens, idx, options, env, self);\n\n if (original) {\n return original(tokens, idx, options, env, self);\n }\n\n return self.renderToken(tokens, idx, options, env, self);\n };\n }\n /**\n * Inject 'revision-head' class\n */\n\n\n injectRevisionHeadClass(tokens, idx, options, env, slf) {\n if (tokens[idx].map && tokens[idx].level === 0) {\n tokens[idx].attrJoin('class', 'revision-head');\n }\n }\n\n}//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9zcmMvY2xpZW50L2pzL3V0aWwvbWFya2Rvd24taXQvaGVhZGVyLmpzLmpzIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vLy4vc3JjL2NsaWVudC9qcy91dGlsL21hcmtkb3duLWl0L2hlYWRlci5qcz9kMWE1Il0sInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBkZWZhdWx0IGNsYXNzIEhlYWRlckNvbmZpZ3VyZXIge1xuXG4gIGNvbnN0cnVjdG9yKGNyb3dpKSB7XG4gICAgdGhpcy5jcm93aSA9IGNyb3dpO1xuXG4gICAgdGhpcy5pbmplY3RSZXZpc2lvbkhlYWRDbGFzcyA9IHRoaXMuaW5qZWN0UmV2aXNpb25IZWFkQ2xhc3MuYmluZCh0aGlzKTtcbiAgfVxuXG4gIGNvbmZpZ3VyZShtZCkge1xuICAgIGNvbnN0IHJ1bGVzID0gbWQucmVuZGVyZXIucnVsZXM7XG4gICAgY29uc3Qgb3JpZ2luYWwgPSBydWxlcy5oZWFkaW5nX29wZW47XG4gICAgLy8gY29tYmluZSBydWxlIGFuZCBzZXRcbiAgICAvLyBydWxlcy5oZWFkaW5nX29wZW4gPSB0aGlzLmNvbWJpbmVSdWxlcyh0aGlzLmluamVjdFJldmlzaW9uSGVhZENsYXNzLCBoZWFkaW5nT3Blbk9yZyk7XG4gICAgcnVsZXMuaGVhZGluZ19vcGVuID0gKHRva2VucywgaWR4LCBvcHRpb25zLCBlbnYsIHNlbGYpID0+IHtcbiAgICAgIC8vIEluamVjdCAncmV2aXNpb24taGVhZCcgY2xhc3NcbiAgICAgIHRoaXMuaW5qZWN0UmV2aXNpb25IZWFkQ2xhc3ModG9rZW5zLCBpZHgsIG9wdGlvbnMsIGVudiwgc2VsZik7XG5cbiAgICAgIGlmIChvcmlnaW5hbCkge1xuICAgICAgICByZXR1cm4gb3JpZ2luYWwodG9rZW5zLCBpZHgsIG9wdGlvbnMsIGVudiwgc2VsZik7XG4gICAgICB9XG5cbiAgICAgIHJldHVybiBzZWxmLnJlbmRlclRva2VuKHRva2VucywgaWR4LCBvcHRpb25zLCBlbnYsIHNlbGYpO1xuICAgIH07XG4gIH1cblxuICAvKipcbiAgICogSW5qZWN0ICdyZXZpc2lvbi1oZWFkJyBjbGFzc1xuICAgKi9cbiAgaW5qZWN0UmV2aXNpb25IZWFkQ2xhc3ModG9rZW5zLCBpZHgsIG9wdGlvbnMsIGVudiwgc2xmKSB7XG4gICAgaWYgKHRva2Vuc1tpZHhdLm1hcCAmJiB0b2tlbnNbaWR4XS5sZXZlbCA9PT0gMCkge1xuICAgICAgdG9rZW5zW2lkeF0uYXR0ckpvaW4oJ2NsYXNzJywgJ3JldmlzaW9uLWhlYWQnKTtcbiAgICB9XG4gIH1cblxufVxuIl0sIm1hcHBpbmdzIjoiQUFBQTtBQUFBO0FBQUE7QUFFQTtBQUNBO0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBRUE7QUFDQTtBQUFBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFFQTs7Ozs7QUFHQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFqQ0EiLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./src/client/js/util/markdown-it/header.js\n");
- /***/ }),
- /***/ "./src/client/js/util/markdown-it/mathjax.js":
- /*!***************************************************!*\
- !*** ./src/client/js/util/markdown-it/mathjax.js ***!
- \***************************************************/
- /*! exports provided: default */
- /***/ (function(module, __webpack_exports__, __webpack_require__) {
- "use strict";
- eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"default\", function() { return MathJaxConfigurer; });\nclass MathJaxConfigurer {\n constructor(crowi) {\n this.crowi = crowi;\n const config = crowi.getConfig();\n this.isEnabled = !!config.env.MATHJAX; // convert to boolean\n }\n\n configure(md) {\n if (this.isEnabled) {\n md.use(__webpack_require__(/*! markdown-it-mathjax */ \"./node_modules/markdown-it-mathjax/markdown-it-mathjax.js\")());\n }\n }\n\n}//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9zcmMvY2xpZW50L2pzL3V0aWwvbWFya2Rvd24taXQvbWF0aGpheC5qcy5qcyIsInNvdXJjZXMiOlsid2VicGFjazovLy8uL3NyYy9jbGllbnQvanMvdXRpbC9tYXJrZG93bi1pdC9tYXRoamF4LmpzP2I1YTkiXSwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGRlZmF1bHQgY2xhc3MgTWF0aEpheENvbmZpZ3VyZXIge1xuXG4gIGNvbnN0cnVjdG9yKGNyb3dpKSB7XG4gICAgdGhpcy5jcm93aSA9IGNyb3dpO1xuXG4gICAgY29uc3QgY29uZmlnID0gY3Jvd2kuZ2V0Q29uZmlnKCk7XG4gICAgdGhpcy5pc0VuYWJsZWQgPSAhIWNvbmZpZy5lbnYuTUFUSEpBWDsgLy8gY29udmVydCB0byBib29sZWFuXG4gIH1cblxuICBjb25maWd1cmUobWQpIHtcbiAgICBpZiAodGhpcy5pc0VuYWJsZWQpIHtcbiAgICAgIG1kLnVzZShyZXF1aXJlKCdtYXJrZG93bi1pdC1tYXRoamF4JykoKSk7XG4gICAgfVxuICB9XG5cbn1cbiJdLCJtYXBwaW5ncyI6IkFBQUE7QUFBQTtBQUFBO0FBRUE7QUFDQTtBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBZEEiLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./src/client/js/util/markdown-it/mathjax.js\n");
- /***/ }),
- /***/ "./src/client/js/util/markdown-it/plantuml.js":
- /*!****************************************************!*\
- !*** ./src/client/js/util/markdown-it/plantuml.js ***!
- \****************************************************/
- /*! exports provided: default */
- /***/ (function(module, __webpack_exports__, __webpack_require__) {
- "use strict";
- eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"default\", function() { return PlantUMLConfigurer; });\n/* harmony import */ var plantuml_encoder__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! plantuml-encoder */ \"./node_modules/plantuml-encoder/index.js\");\n/* harmony import */ var plantuml_encoder__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(plantuml_encoder__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var url_join__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! url-join */ \"./node_modules/url-join/lib/url-join.js\");\n/* harmony import */ var url_join__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(url_join__WEBPACK_IMPORTED_MODULE_1__);\n\n\nclass PlantUMLConfigurer {\n constructor(crowi) {\n this.crowi = crowi;\n const config = crowi.getConfig(); // Do NOT use HTTPS URL because plantuml.com refuse request except from members\n\n this.serverUrl = config.env.PLANTUML_URI || 'http://plantuml.com/plantuml';\n this.generateSource = this.generateSource.bind(this);\n }\n\n configure(md) {\n md.use(__webpack_require__(/*! markdown-it-plantuml */ \"./node_modules/markdown-it-plantuml/index.js\"), {\n generateSource: this.generateSource\n });\n }\n\n generateSource(umlCode) {\n const zippedCode = plantuml_encoder__WEBPACK_IMPORTED_MODULE_0___default.a.encode(`@startuml\\n${umlCode}\\n@enduml`);\n return url_join__WEBPACK_IMPORTED_MODULE_1___default()(this.serverUrl, 'svg', zippedCode);\n }\n\n}//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9zcmMvY2xpZW50L2pzL3V0aWwvbWFya2Rvd24taXQvcGxhbnR1bWwuanMuanMiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9zcmMvY2xpZW50L2pzL3V0aWwvbWFya2Rvd24taXQvcGxhbnR1bWwuanM/ZmNiZSJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgcGxhbnR1bWxFbmNvZGVyIGZyb20gJ3BsYW50dW1sLWVuY29kZXInO1xuaW1wb3J0IHVybGpvaW4gZnJvbSAndXJsLWpvaW4nO1xuXG5leHBvcnQgZGVmYXVsdCBjbGFzcyBQbGFudFVNTENvbmZpZ3VyZXIge1xuXG4gIGNvbnN0cnVjdG9yKGNyb3dpKSB7XG4gICAgdGhpcy5jcm93aSA9IGNyb3dpO1xuICAgIGNvbnN0IGNvbmZpZyA9IGNyb3dpLmdldENvbmZpZygpO1xuXG4gICAgLy8gRG8gTk9UIHVzZSBIVFRQUyBVUkwgYmVjYXVzZSBwbGFudHVtbC5jb20gcmVmdXNlIHJlcXVlc3QgZXhjZXB0IGZyb20gbWVtYmVyc1xuICAgIHRoaXMuc2VydmVyVXJsID0gY29uZmlnLmVudi5QTEFOVFVNTF9VUkkgfHwgJ2h0dHA6Ly9wbGFudHVtbC5jb20vcGxhbnR1bWwnO1xuXG4gICAgdGhpcy5nZW5lcmF0ZVNvdXJjZSA9IHRoaXMuZ2VuZXJhdGVTb3VyY2UuYmluZCh0aGlzKTtcbiAgfVxuXG4gIGNvbmZpZ3VyZShtZCkge1xuICAgIG1kLnVzZShyZXF1aXJlKCdtYXJrZG93bi1pdC1wbGFudHVtbCcpLCB7XG4gICAgICBnZW5lcmF0ZVNvdXJjZTogdGhpcy5nZW5lcmF0ZVNvdXJjZSxcbiAgICB9KTtcbiAgfVxuXG4gIGdlbmVyYXRlU291cmNlKHVtbENvZGUpIHtcbiAgICBjb25zdCB6aXBwZWRDb2RlID0gcGxhbnR1bWxFbmNvZGVyLmVuY29kZShgQHN0YXJ0dW1sXFxuJHt1bWxDb2RlfVxcbkBlbmR1bWxgKTtcbiAgICByZXR1cm4gdXJsam9pbih0aGlzLnNlcnZlclVybCwgJ3N2ZycsIHppcHBlZENvZGUpO1xuICB9XG5cbn1cbiJdLCJtYXBwaW5ncyI6IkFBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFDQTtBQUVBO0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFFQTtBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQURBO0FBR0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUF0QkEiLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./src/client/js/util/markdown-it/plantuml.js\n");
- /***/ }),
- /***/ "./src/client/js/util/markdown-it/table-with-handsontable-button.js":
- /*!**************************************************************************!*\
- !*** ./src/client/js/util/markdown-it/table-with-handsontable-button.js ***!
- \**************************************************************************/
- /*! exports provided: default */
- /***/ (function(module, __webpack_exports__, __webpack_require__) {
- "use strict";
- eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"default\", function() { return TableWithHandsontableButtonConfigurer; });\nclass TableWithHandsontableButtonConfigurer {\n constructor(crowi) {\n this.crowi = crowi;\n }\n\n configure(md) {\n md.renderer.rules.table_open = (tokens, idx) => {\n const beginLine = tokens[idx].map[0] + 1;\n const endLine = tokens[idx].map[1]; // eslint-disable-next-line max-len\n\n return `<div class=\"editable-with-handsontable\"><button class=\"handsontable-modal-trigger\" onClick=\"crowi.launchHandsontableModal('page', ${beginLine}, ${endLine})\"><i class=\"icon-note\"></i></button><table class=\"table table-bordered\">`;\n };\n\n md.renderer.rules.table_close = (tokens, idx) => {\n return '</table></div>';\n };\n }\n\n}//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9zcmMvY2xpZW50L2pzL3V0aWwvbWFya2Rvd24taXQvdGFibGUtd2l0aC1oYW5kc29udGFibGUtYnV0dG9uLmpzLmpzIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vLy4vc3JjL2NsaWVudC9qcy91dGlsL21hcmtkb3duLWl0L3RhYmxlLXdpdGgtaGFuZHNvbnRhYmxlLWJ1dHRvbi5qcz8yMjY3Il0sInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBkZWZhdWx0IGNsYXNzIFRhYmxlV2l0aEhhbmRzb250YWJsZUJ1dHRvbkNvbmZpZ3VyZXIge1xuXG4gIGNvbnN0cnVjdG9yKGNyb3dpKSB7XG4gICAgdGhpcy5jcm93aSA9IGNyb3dpO1xuICB9XG5cbiAgY29uZmlndXJlKG1kKSB7XG4gICAgbWQucmVuZGVyZXIucnVsZXMudGFibGVfb3BlbiA9ICh0b2tlbnMsIGlkeCkgPT4ge1xuICAgICAgY29uc3QgYmVnaW5MaW5lID0gdG9rZW5zW2lkeF0ubWFwWzBdICsgMTtcbiAgICAgIGNvbnN0IGVuZExpbmUgPSB0b2tlbnNbaWR4XS5tYXBbMV07XG4gICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbWF4LWxlblxuICAgICAgcmV0dXJuIGA8ZGl2IGNsYXNzPVwiZWRpdGFibGUtd2l0aC1oYW5kc29udGFibGVcIj48YnV0dG9uIGNsYXNzPVwiaGFuZHNvbnRhYmxlLW1vZGFsLXRyaWdnZXJcIiBvbkNsaWNrPVwiY3Jvd2kubGF1bmNoSGFuZHNvbnRhYmxlTW9kYWwoJ3BhZ2UnLCAke2JlZ2luTGluZX0sICR7ZW5kTGluZX0pXCI+PGkgY2xhc3M9XCJpY29uLW5vdGVcIj48L2k+PC9idXR0b24+PHRhYmxlIGNsYXNzPVwidGFibGUgdGFibGUtYm9yZGVyZWRcIj5gO1xuICAgIH07XG5cbiAgICBtZC5yZW5kZXJlci5ydWxlcy50YWJsZV9jbG9zZSA9ICh0b2tlbnMsIGlkeCkgPT4ge1xuICAgICAgcmV0dXJuICc8L3RhYmxlPjwvZGl2Pic7XG4gICAgfTtcbiAgfVxuXG59XG4iXSwibWFwcGluZ3MiOiJBQUFBO0FBQUE7QUFBQTtBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFsQkEiLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./src/client/js/util/markdown-it/table-with-handsontable-button.js\n");
- /***/ }),
- /***/ "./src/client/js/util/markdown-it/table.js":
- /*!*************************************************!*\
- !*** ./src/client/js/util/markdown-it/table.js ***!
- \*************************************************/
- /*! exports provided: default */
- /***/ (function(module, __webpack_exports__, __webpack_require__) {
- "use strict";
- eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"default\", function() { return TableConfigurer; });\nclass TableConfigurer {\n constructor(crowi) {\n this.crowi = crowi;\n }\n\n configure(md) {\n md.renderer.rules.table_open = (tokens, idx) => {\n return '<table class=\"table table-bordered\">';\n };\n }\n\n}//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9zcmMvY2xpZW50L2pzL3V0aWwvbWFya2Rvd24taXQvdGFibGUuanMuanMiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9zcmMvY2xpZW50L2pzL3V0aWwvbWFya2Rvd24taXQvdGFibGUuanM/MWZkMiJdLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgZGVmYXVsdCBjbGFzcyBUYWJsZUNvbmZpZ3VyZXIge1xuXG4gIGNvbnN0cnVjdG9yKGNyb3dpKSB7XG4gICAgdGhpcy5jcm93aSA9IGNyb3dpO1xuICB9XG5cbiAgY29uZmlndXJlKG1kKSB7XG4gICAgbWQucmVuZGVyZXIucnVsZXMudGFibGVfb3BlbiA9ICh0b2tlbnMsIGlkeCkgPT4ge1xuICAgICAgcmV0dXJuICc8dGFibGUgY2xhc3M9XCJ0YWJsZSB0YWJsZS1ib3JkZXJlZFwiPic7XG4gICAgfTtcbiAgfVxuXG59XG4iXSwibWFwcGluZ3MiOiJBQUFBO0FBQUE7QUFBQTtBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBWEEiLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./src/client/js/util/markdown-it/table.js\n");
- /***/ }),
- /***/ "./src/client/js/util/markdown-it/task-lists.js":
- /*!******************************************************!*\
- !*** ./src/client/js/util/markdown-it/task-lists.js ***!
- \******************************************************/
- /*! exports provided: default */
- /***/ (function(module, __webpack_exports__, __webpack_require__) {
- "use strict";
- eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"default\", function() { return TaskListsConfigurer; });\nclass TaskListsConfigurer {\n constructor(crowi) {\n this.crowi = crowi;\n }\n\n configure(md) {\n md.use(__webpack_require__(/*! markdown-it-task-checkbox */ \"./node_modules/markdown-it-task-checkbox/index.js\"), {\n disabled: true,\n divWrap: true,\n divClass: 'checkbox checkbox-primary',\n idPrefix: 'cbx_',\n ulClass: 'task-list',\n liClass: 'task-list-item'\n });\n }\n\n}//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9zcmMvY2xpZW50L2pzL3V0aWwvbWFya2Rvd24taXQvdGFzay1saXN0cy5qcy5qcyIsInNvdXJjZXMiOlsid2VicGFjazovLy8uL3NyYy9jbGllbnQvanMvdXRpbC9tYXJrZG93bi1pdC90YXNrLWxpc3RzLmpzP2U0MWEiXSwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGRlZmF1bHQgY2xhc3MgVGFza0xpc3RzQ29uZmlndXJlciB7XG5cbiAgY29uc3RydWN0b3IoY3Jvd2kpIHtcbiAgICB0aGlzLmNyb3dpID0gY3Jvd2k7XG4gIH1cblxuICBjb25maWd1cmUobWQpIHtcbiAgICBtZC51c2UocmVxdWlyZSgnbWFya2Rvd24taXQtdGFzay1jaGVja2JveCcpLCB7XG4gICAgICBkaXNhYmxlZDogdHJ1ZSxcbiAgICAgIGRpdldyYXA6IHRydWUsXG4gICAgICBkaXZDbGFzczogJ2NoZWNrYm94IGNoZWNrYm94LXByaW1hcnknLFxuICAgICAgaWRQcmVmaXg6ICdjYnhfJyxcbiAgICAgIHVsQ2xhc3M6ICd0YXNrLWxpc3QnLFxuICAgICAgbGlDbGFzczogJ3Rhc2stbGlzdC1pdGVtJyxcbiAgICB9KTtcbiAgfVxuXG59XG4iXSwibWFwcGluZ3MiOiJBQUFBO0FBQUE7QUFBQTtBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQU5BO0FBUUE7QUFDQTtBQWhCQSIsInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./src/client/js/util/markdown-it/task-lists.js\n");
- /***/ }),
- /***/ "./src/client/js/util/markdown-it/toc-and-anchor.js":
- /*!**********************************************************!*\
- !*** ./src/client/js/util/markdown-it/toc-and-anchor.js ***!
- \**********************************************************/
- /*! exports provided: default */
- /***/ (function(module, __webpack_exports__, __webpack_require__) {
- "use strict";
- eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"default\", function() { return TocAndAnchorConfigurer; });\nclass TocAndAnchorConfigurer {\n constructor(crowi, setHtml) {\n this.crowi = crowi;\n this.setHtml = setHtml;\n }\n\n configure(md) {\n md.use(__webpack_require__(/*! markdown-it-toc-and-anchor-with-slugid */ \"./node_modules/markdown-it-toc-and-anchor-with-slugid/dist/index.js\").default, {\n tocLastLevel: 3,\n anchorLinkBefore: false,\n anchorLinkSymbol: '',\n anchorLinkSymbolClassName: 'icon-link',\n anchorClassName: 'revision-head-link'\n }); // set toc render function\n\n if (this.setHtml != null) {\n md.set({\n tocCallback: (tocMarkdown, tocArray, tocHtml) => {\n this.setHtml(tocHtml);\n }\n });\n }\n }\n\n}//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9zcmMvY2xpZW50L2pzL3V0aWwvbWFya2Rvd24taXQvdG9jLWFuZC1hbmNob3IuanMuanMiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9zcmMvY2xpZW50L2pzL3V0aWwvbWFya2Rvd24taXQvdG9jLWFuZC1hbmNob3IuanM/MzUxZCJdLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgZGVmYXVsdCBjbGFzcyBUb2NBbmRBbmNob3JDb25maWd1cmVyIHtcblxuICBjb25zdHJ1Y3Rvcihjcm93aSwgc2V0SHRtbCkge1xuICAgIHRoaXMuY3Jvd2kgPSBjcm93aTtcbiAgICB0aGlzLnNldEh0bWwgPSBzZXRIdG1sO1xuICB9XG5cbiAgY29uZmlndXJlKG1kKSB7XG4gICAgbWQudXNlKHJlcXVpcmUoJ21hcmtkb3duLWl0LXRvYy1hbmQtYW5jaG9yLXdpdGgtc2x1Z2lkJykuZGVmYXVsdCwge1xuICAgICAgdG9jTGFzdExldmVsOiAzLFxuICAgICAgYW5jaG9yTGlua0JlZm9yZTogZmFsc2UsXG4gICAgICBhbmNob3JMaW5rU3ltYm9sOiAnJyxcbiAgICAgIGFuY2hvckxpbmtTeW1ib2xDbGFzc05hbWU6ICdpY29uLWxpbmsnLFxuICAgICAgYW5jaG9yQ2xhc3NOYW1lOiAncmV2aXNpb24taGVhZC1saW5rJyxcbiAgICB9KTtcblxuICAgIC8vIHNldCB0b2MgcmVuZGVyIGZ1bmN0aW9uXG4gICAgaWYgKHRoaXMuc2V0SHRtbCAhPSBudWxsKSB7XG4gICAgICBtZC5zZXQoe1xuICAgICAgICB0b2NDYWxsYmFjazogKHRvY01hcmtkb3duLCB0b2NBcnJheSwgdG9jSHRtbCkgPT4ge1xuICAgICAgICAgIHRoaXMuc2V0SHRtbCh0b2NIdG1sKTtcbiAgICAgICAgfSxcbiAgICAgIH0pO1xuICAgIH1cbiAgfVxuXG59XG4iXSwibWFwcGluZ3MiOiJBQUFBO0FBQUE7QUFBQTtBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUxBO0FBQ0E7QUFRQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBSEE7QUFLQTtBQUNBO0FBQ0E7QUF6QkEiLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./src/client/js/util/markdown-it/toc-and-anchor.js\n");
- /***/ }),
- /***/ "./src/lib/models/devided-page-path.js":
- /*!*********************************************!*\
- !*** ./src/lib/models/devided-page-path.js ***!
- \*********************************************/
- /*! no static exports found */
- /***/ (function(module, exports, __webpack_require__) {
- eval("const {\n pathUtils\n} = __webpack_require__(/*! growi-commons */ \"./node_modules/growi-commons/src/index.js\"); // https://regex101.com/r/BahpKX/2\n\n\nconst PATTERN_INCLUDE_DATE = /^(.+\\/[^/]+)\\/(\\d{4}|\\d{4}\\/\\d{2}|\\d{4}\\/\\d{2}\\/\\d{2})$/; // https://regex101.com/r/WVpPpY/1\n\nconst PATTERN_DEFAULT = /^((.*)\\/)?([^/]+)$/;\n\nclass DevidedPagePath {\n constructor(path, skipNormalize = false, evalDatePath = false) {\n this.isRoot = false;\n this.isFormerRoot = false;\n this.former = null;\n this.latter = null; // root\n\n if (path == null || path === '' || path === '/') {\n this.isRoot = true;\n this.latter = '/';\n return;\n }\n\n const pagePath = skipNormalize ? path : pathUtils.normalizePath(path);\n this.latter = pagePath; // evaluate date path\n\n if (evalDatePath) {\n const matchDate = pagePath.match(PATTERN_INCLUDE_DATE);\n\n if (matchDate != null) {\n this.former = matchDate[1];\n this.latter = matchDate[2];\n return;\n }\n }\n\n const matchDefault = pagePath.match(PATTERN_DEFAULT);\n\n if (matchDefault != null) {\n this.isFormerRoot = matchDefault[1] === '/';\n this.former = matchDefault[2];\n this.latter = matchDefault[3];\n }\n }\n\n}\n\nmodule.exports = DevidedPagePath;//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9zcmMvbGliL21vZGVscy9kZXZpZGVkLXBhZ2UtcGF0aC5qcy5qcyIsInNvdXJjZXMiOlsid2VicGFjazovLy8uL3NyYy9saWIvbW9kZWxzL2RldmlkZWQtcGFnZS1wYXRoLmpzPzBmNWQiXSwic291cmNlc0NvbnRlbnQiOlsiY29uc3QgeyBwYXRoVXRpbHMgfSA9IHJlcXVpcmUoJ2dyb3dpLWNvbW1vbnMnKTtcblxuLy8gaHR0cHM6Ly9yZWdleDEwMS5jb20vci9CYWhwS1gvMlxuY29uc3QgUEFUVEVSTl9JTkNMVURFX0RBVEUgPSAvXiguK1xcL1teL10rKVxcLyhcXGR7NH18XFxkezR9XFwvXFxkezJ9fFxcZHs0fVxcL1xcZHsyfVxcL1xcZHsyfSkkLztcbi8vIGh0dHBzOi8vcmVnZXgxMDEuY29tL3IvV1ZwUHBZLzFcbmNvbnN0IFBBVFRFUk5fREVGQVVMVCA9IC9eKCguKilcXC8pPyhbXi9dKykkLztcblxuY2xhc3MgRGV2aWRlZFBhZ2VQYXRoIHtcblxuICBjb25zdHJ1Y3RvcihwYXRoLCBza2lwTm9ybWFsaXplID0gZmFsc2UsIGV2YWxEYXRlUGF0aCA9IGZhbHNlKSB7XG5cbiAgICB0aGlzLmlzUm9vdCA9IGZhbHNlO1xuICAgIHRoaXMuaXNGb3JtZXJSb290ID0gZmFsc2U7XG4gICAgdGhpcy5mb3JtZXIgPSBudWxsO1xuICAgIHRoaXMubGF0dGVyID0gbnVsbDtcblxuICAgIC8vIHJvb3RcbiAgICBpZiAocGF0aCA9PSBudWxsIHx8IHBhdGggPT09ICcnIHx8IHBhdGggPT09ICcvJykge1xuICAgICAgdGhpcy5pc1Jvb3QgPSB0cnVlO1xuICAgICAgdGhpcy5sYXR0ZXIgPSAnLyc7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgY29uc3QgcGFnZVBhdGggPSBza2lwTm9ybWFsaXplID8gcGF0aCA6IHBhdGhVdGlscy5ub3JtYWxpemVQYXRoKHBhdGgpO1xuICAgIHRoaXMubGF0dGVyID0gcGFnZVBhdGg7XG5cbiAgICAvLyBldmFsdWF0ZSBkYXRlIHBhdGhcbiAgICBpZiAoZXZhbERhdGVQYXRoKSB7XG4gICAgICBjb25zdCBtYXRjaERhdGUgPSBwYWdlUGF0aC5tYXRjaChQQVRURVJOX0lOQ0xVREVfREFURSk7XG4gICAgICBpZiAobWF0Y2hEYXRlICE9IG51bGwpIHtcbiAgICAgICAgdGhpcy5mb3JtZXIgPSBtYXRjaERhdGVbMV07XG4gICAgICAgIHRoaXMubGF0dGVyID0gbWF0Y2hEYXRlWzJdO1xuICAgICAgICByZXR1cm47XG4gICAgICB9XG4gICAgfVxuXG4gICAgY29uc3QgbWF0Y2hEZWZhdWx0ID0gcGFnZVBhdGgubWF0Y2goUEFUVEVSTl9ERUZBVUxUKTtcbiAgICBpZiAobWF0Y2hEZWZhdWx0ICE9IG51bGwpIHtcbiAgICAgIHRoaXMuaXNGb3JtZXJSb290ID0gbWF0Y2hEZWZhdWx0WzFdID09PSAnLyc7XG4gICAgICB0aGlzLmZvcm1lciA9IG1hdGNoRGVmYXVsdFsyXTtcbiAgICAgIHRoaXMubGF0dGVyID0gbWF0Y2hEZWZhdWx0WzNdO1xuICAgIH1cbiAgfVxuXG59XG5cbm1vZHVsZS5leHBvcnRzID0gRGV2aWRlZFBhZ2VQYXRoO1xuIl0sIm1hcHBpbmdzIjoiQUFBQTtBQUFBO0FBQUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUVBO0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUVBO0FBQ0E7QUFDQTtBQUFBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUFBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBcENBO0FBQ0E7QUFzQ0EiLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./src/lib/models/devided-page-path.js\n");
- /***/ }),
- /***/ "./src/lib/service/interceptor-manager.js":
- /*!************************************************!*\
- !*** ./src/lib/service/interceptor-manager.js ***!
- \************************************************/
- /*! no static exports found */
- /***/ (function(module, exports, __webpack_require__) {
- eval("const logger = __webpack_require__(/*! @alias/logger */ \"./src/lib/service/logger/index.js\")('growi:InterceptorManager');\n/**\n * the manager class of Interceptor\n */\n\n\nclass InterceptorManager {\n constructor() {\n this.interceptorAndOrders = [];\n /* [\n {interceptor: instanceA, order: 200 },\n {interceptor: instanceB, order: 100 },\n ...\n ] */\n\n this.interceptors = [];\n }\n /**\n * add an Interceptor\n * @param {BasicInterceptor} interceptor\n * @param {number} order\n */\n\n\n addInterceptor(interceptor, order) {\n this.addInterceptors([interceptor], order);\n }\n /**\n * add Interceptors\n * @param {BasicInterceptor[]} interceptors\n * @param {number} order\n */\n\n\n addInterceptors(interceptors, order) {\n let isDefaultOrder = false;\n\n if (order == null) {\n order = 100; // eslint-disable-line\n\n isDefaultOrder = true;\n }\n\n const interceptorIds = interceptors.map(i => {\n return i.getId();\n });\n logger.info(`'addInterceptors' invoked. adding interceptors '${interceptorIds}' at order=${order}${isDefaultOrder ? '(default)' : ''}`);\n this.interceptorAndOrders = this.interceptorAndOrders.concat(interceptors.map(interceptor => {\n return {\n interceptor,\n order\n };\n })); // sort asc\n\n this.interceptorAndOrders.sort((a, b) => {\n return a.order - b.order;\n }); // store sorted list\n\n this.interceptors = this.interceptorAndOrders.map(obj => {\n return obj.interceptor;\n });\n const thisInterceptorIds = this.interceptors.map(i => {\n return i.getId();\n });\n logger.info(`interceptors list has initialized: ${thisInterceptorIds}`);\n }\n /**\n * process Interceptors\n *\n * @param {string} contextName\n * @param {any} args\n */\n\n\n process(contextName, ...args) {\n logger.debug(`processing the context '${contextName}'`); // filter only contexts matches to specified 'contextName'\n\n const matchInterceptors = this.interceptors.filter(i => {\n return i.isInterceptWhen(contextName);\n });\n const parallels = matchInterceptors.filter(i => {\n return i.isProcessableParallel();\n });\n const sequentials = matchInterceptors.filter(i => {\n return !i.isProcessableParallel();\n });\n logger.debug(`${parallels.length} parallel interceptors found.`);\n logger.debug(`${sequentials.length} sequencial interceptors found.`);\n return Promise.all( // parallel\n parallels.map(interceptor => {\n return this.doProcess(interceptor, contextName, ...args);\n }) // sequential\n .concat([sequentials.reduce((prevPromise, nextInterceptor) => {\n return prevPromise.then((...results) => {\n return this.doProcess(nextInterceptor, contextName, ...results);\n });\n }, Promise.resolve(...args)\n /* initial Promise */\n )])).then(() => {\n logger.debug(`end processing the context '${contextName}'`);\n });\n }\n\n doProcess(interceptor, contextName, ...args) {\n return interceptor.process(contextName, ...args).then((...results) => {\n logger.debug(`processing '${interceptor.getId()}' in the context '${contextName}'`);\n return Promise.resolve(...results);\n }).catch(reason => {\n logger.debug(`failed when processing '${interceptor.getId()}' in the context '${contextName}'`);\n logger.debug(reason);\n return Promise.resolve(...args);\n });\n }\n\n}\n\nmodule.exports = InterceptorManager;//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9zcmMvbGliL3NlcnZpY2UvaW50ZXJjZXB0b3ItbWFuYWdlci5qcy5qcyIsInNvdXJjZXMiOlsid2VicGFjazovLy8uL3NyYy9saWIvc2VydmljZS9pbnRlcmNlcHRvci1tYW5hZ2VyLmpzP2UzOTMiXSwic291cmNlc0NvbnRlbnQiOlsiY29uc3QgbG9nZ2VyID0gcmVxdWlyZSgnQGFsaWFzL2xvZ2dlcicpKCdncm93aTpJbnRlcmNlcHRvck1hbmFnZXInKTtcblxuLyoqXG4gKiB0aGUgbWFuYWdlciBjbGFzcyBvZiBJbnRlcmNlcHRvclxuICovXG5jbGFzcyBJbnRlcmNlcHRvck1hbmFnZXIge1xuXG4gIGNvbnN0cnVjdG9yKCkge1xuICAgIHRoaXMuaW50ZXJjZXB0b3JBbmRPcmRlcnMgPSBbXTsgLyogW1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge2ludGVyY2VwdG9yOiBpbnN0YW5jZUEsIG9yZGVyOiAyMDAgfSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtpbnRlcmNlcHRvcjogaW5zdGFuY2VCLCBvcmRlcjogMTAwIH0sXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAuLi5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF0gKi9cbiAgICB0aGlzLmludGVyY2VwdG9ycyA9IFtdO1xuICB9XG5cbiAgLyoqXG4gICAqIGFkZCBhbiBJbnRlcmNlcHRvclxuICAgKiBAcGFyYW0ge0Jhc2ljSW50ZXJjZXB0b3J9IGludGVyY2VwdG9yXG4gICAqIEBwYXJhbSB7bnVtYmVyfSBvcmRlclxuICAgKi9cbiAgYWRkSW50ZXJjZXB0b3IoaW50ZXJjZXB0b3IsIG9yZGVyKSB7XG4gICAgdGhpcy5hZGRJbnRlcmNlcHRvcnMoW2ludGVyY2VwdG9yXSwgb3JkZXIpO1xuICB9XG5cbiAgLyoqXG4gICAqIGFkZCBJbnRlcmNlcHRvcnNcbiAgICogQHBhcmFtIHtCYXNpY0ludGVyY2VwdG9yW119IGludGVyY2VwdG9yc1xuICAgKiBAcGFyYW0ge251bWJlcn0gb3JkZXJcbiAgICovXG4gIGFkZEludGVyY2VwdG9ycyhpbnRlcmNlcHRvcnMsIG9yZGVyKSB7XG4gICAgbGV0IGlzRGVmYXVsdE9yZGVyID0gZmFsc2U7XG4gICAgaWYgKG9yZGVyID09IG51bGwpIHtcbiAgICAgIG9yZGVyID0gMTAwOyAvLyBlc2xpbnQtZGlzYWJsZS1saW5lXG4gICAgICBpc0RlZmF1bHRPcmRlciA9IHRydWU7XG4gICAgfVxuXG4gICAgY29uc3QgaW50ZXJjZXB0b3JJZHMgPSBpbnRlcmNlcHRvcnMubWFwKChpKSA9PiB7IHJldHVybiBpLmdldElkKCkgfSk7XG4gICAgbG9nZ2VyLmluZm8oYCdhZGRJbnRlcmNlcHRvcnMnIGludm9rZWQuIGFkZGluZyBpbnRlcmNlcHRvcnMgJyR7aW50ZXJjZXB0b3JJZHN9JyBhdCBvcmRlcj0ke29yZGVyfSR7aXNEZWZhdWx0T3JkZXIgPyAnKGRlZmF1bHQpJyA6ICcnfWApO1xuXG4gICAgdGhpcy5pbnRlcmNlcHRvckFuZE9yZGVycyA9IHRoaXMuaW50ZXJjZXB0b3JBbmRPcmRlcnMuY29uY2F0KFxuICAgICAgaW50ZXJjZXB0b3JzLm1hcCgoaW50ZXJjZXB0b3IpID0+IHtcbiAgICAgICAgcmV0dXJuIHsgaW50ZXJjZXB0b3IsIG9yZGVyIH07XG4gICAgICB9KSxcbiAgICApO1xuXG4gICAgLy8gc29ydCBhc2NcbiAgICB0aGlzLmludGVyY2VwdG9yQW5kT3JkZXJzLnNvcnQoKGEsIGIpID0+IHsgcmV0dXJuIGEub3JkZXIgLSBiLm9yZGVyIH0pO1xuICAgIC8vIHN0b3JlIHNvcnRlZCBsaXN0XG4gICAgdGhpcy5pbnRlcmNlcHRvcnMgPSB0aGlzLmludGVyY2VwdG9yQW5kT3JkZXJzLm1hcCgob2JqKSA9PiB7IHJldHVybiBvYmouaW50ZXJjZXB0b3IgfSk7XG5cbiAgICBjb25zdCB0aGlzSW50ZXJjZXB0b3JJZHMgPSB0aGlzLmludGVyY2VwdG9ycy5tYXAoKGkpID0+IHsgcmV0dXJuIGkuZ2V0SWQoKSB9KTtcbiAgICBsb2dnZXIuaW5mbyhgaW50ZXJjZXB0b3JzIGxpc3QgaGFzIGluaXRpYWxpemVkOiAke3RoaXNJbnRlcmNlcHRvcklkc31gKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBwcm9jZXNzIEludGVyY2VwdG9yc1xuICAgKlxuICAgKiBAcGFyYW0ge3N0cmluZ30gY29udGV4dE5hbWVcbiAgICogQHBhcmFtIHthbnl9IGFyZ3NcbiAgICovXG4gIHByb2Nlc3MoY29udGV4dE5hbWUsIC4uLmFyZ3MpIHtcbiAgICBsb2dnZXIuZGVidWcoYHByb2Nlc3NpbmcgdGhlIGNvbnRleHQgJyR7Y29udGV4dE5hbWV9J2ApO1xuXG4gICAgLy8gZmlsdGVyIG9ubHkgY29udGV4dHMgbWF0Y2hlcyB0byBzcGVjaWZpZWQgJ2NvbnRleHROYW1lJ1xuICAgIGNvbnN0IG1hdGNoSW50ZXJjZXB0b3JzID0gdGhpcy5pbnRlcmNlcHRvcnMuZmlsdGVyKChpKSA9PiB7IHJldHVybiBpLmlzSW50ZXJjZXB0V2hlbihjb250ZXh0TmFtZSkgfSk7XG5cbiAgICBjb25zdCBwYXJhbGxlbHMgPSBtYXRjaEludGVyY2VwdG9ycy5maWx0ZXIoKGkpID0+IHsgcmV0dXJuIGkuaXNQcm9jZXNzYWJsZVBhcmFsbGVsKCkgfSk7XG4gICAgY29uc3Qgc2VxdWVudGlhbHMgPSBtYXRjaEludGVyY2VwdG9ycy5maWx0ZXIoKGkpID0+IHsgcmV0dXJuICFpLmlzUHJvY2Vzc2FibGVQYXJhbGxlbCgpIH0pO1xuXG4gICAgbG9nZ2VyLmRlYnVnKGAke3BhcmFsbGVscy5sZW5ndGh9IHBhcmFsbGVsIGludGVyY2VwdG9ycyBmb3VuZC5gKTtcbiAgICBsb2dnZXIuZGVidWcoYCR7c2VxdWVudGlhbHMubGVuZ3RofSBzZXF1ZW5jaWFsIGludGVyY2VwdG9ycyBmb3VuZC5gKTtcblxuICAgIHJldHVybiBQcm9taXNlLmFsbChcbiAgICAgIC8vIHBhcmFsbGVsXG4gICAgICBwYXJhbGxlbHMubWFwKChpbnRlcmNlcHRvcikgPT4ge1xuICAgICAgICByZXR1cm4gdGhpcy5kb1Byb2Nlc3MoaW50ZXJjZXB0b3IsIGNvbnRleHROYW1lLCAuLi5hcmdzKTtcbiAgICAgIH0pXG4gICAgICAvLyBzZXF1ZW50aWFsXG4gICAgICAgIC5jb25jYXQoW1xuICAgICAgICAgIHNlcXVlbnRpYWxzLnJlZHVjZSgocHJldlByb21pc2UsIG5leHRJbnRlcmNlcHRvcikgPT4ge1xuICAgICAgICAgICAgcmV0dXJuIHByZXZQcm9taXNlLnRoZW4oKC4uLnJlc3VsdHMpID0+IHsgcmV0dXJuIHRoaXMuZG9Qcm9jZXNzKG5leHRJbnRlcmNlcHRvciwgY29udGV4dE5hbWUsIC4uLnJlc3VsdHMpIH0pO1xuICAgICAgICAgIH0sIFByb21pc2UucmVzb2x2ZSguLi5hcmdzKS8qIGluaXRpYWwgUHJvbWlzZSAqLyksXG4gICAgICAgIF0pLFxuICAgICkudGhlbigoKSA9PiB7XG4gICAgICBsb2dnZXIuZGVidWcoYGVuZCBwcm9jZXNzaW5nIHRoZSBjb250ZXh0ICcke2NvbnRleHROYW1lfSdgKTtcbiAgICB9KTtcbiAgfVxuXG4gIGRvUHJvY2VzcyhpbnRlcmNlcHRvciwgY29udGV4dE5hbWUsIC4uLmFyZ3MpIHtcbiAgICByZXR1cm4gaW50ZXJjZXB0b3IucHJvY2Vzcyhjb250ZXh0TmFtZSwgLi4uYXJncylcbiAgICAgIC50aGVuKCguLi5yZXN1bHRzKSA9PiB7XG4gICAgICAgIGxvZ2dlci5kZWJ1ZyhgcHJvY2Vzc2luZyAnJHtpbnRlcmNlcHRvci5nZXRJZCgpfScgaW4gdGhlIGNvbnRleHQgJyR7Y29udGV4dE5hbWV9J2ApO1xuICAgICAgICByZXR1cm4gUHJvbWlzZS5yZXNvbHZlKC4uLnJlc3VsdHMpO1xuICAgICAgfSlcbiAgICAgIC5jYXRjaCgocmVhc29uKSA9PiB7XG4gICAgICAgIGxvZ2dlci5kZWJ1ZyhgZmFpbGVkIHdoZW4gcHJvY2Vzc2luZyAnJHtpbnRlcmNlcHRvci5nZXRJZCgpfScgaW4gdGhlIGNvbnRleHQgJyR7Y29udGV4dE5hbWV9J2ApO1xuICAgICAgICBsb2dnZXIuZGVidWcocmVhc29uKTtcbiAgICAgICAgcmV0dXJuIFByb21pc2UucmVzb2x2ZSguLi5hcmdzKTtcbiAgICAgIH0pO1xuICB9XG5cbn1cblxubW9kdWxlLmV4cG9ydHMgPSBJbnRlcmNlcHRvck1hbmFnZXI7XG4iXSwibWFwcGluZ3MiOiJBQUFBO0FBRUE7Ozs7O0FBR0E7QUFFQTtBQUNBO0FBQUE7Ozs7OztBQUtBO0FBQ0E7QUFFQTs7Ozs7OztBQUtBO0FBQ0E7QUFDQTtBQUVBOzs7Ozs7O0FBS0E7QUFDQTtBQUNBO0FBQUE7QUFDQTtBQUNBO0FBQUE7QUFDQTtBQUNBO0FBQ0E7QUFBQTtBQUFBO0FBQ0E7QUFFQTtBQUVBO0FBQUE7QUFBQTtBQUFBO0FBQ0E7QUFDQTtBQUdBO0FBQUE7QUFBQTtBQUNBO0FBQ0E7QUFBQTtBQUFBO0FBRUE7QUFBQTtBQUFBO0FBQ0E7QUFDQTtBQUVBOzs7Ozs7OztBQU1BO0FBQ0E7QUFDQTtBQUVBO0FBQUE7QUFBQTtBQUVBO0FBQUE7QUFBQTtBQUNBO0FBQUE7QUFBQTtBQUVBO0FBQ0E7QUFFQTtBQUVBO0FBQ0E7QUFDQTtBQUZBO0FBTUE7QUFBQTtBQUFBO0FBQ0E7QUFBQTtBQUZBO0FBS0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBRUE7QUFDQTtBQUNBO0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBaEdBO0FBQ0E7QUFrR0EiLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./src/lib/service/interceptor-manager.js\n");
- /***/ }),
- /***/ "./src/lib/service/logger/index.js":
- /*!*****************************************!*\
- !*** ./src/lib/service/logger/index.js ***!
- \*****************************************/
- /*! no static exports found */
- /***/ (function(module, exports, __webpack_require__) {
- eval("/* WEBPACK VAR INJECTION */(function(process) {const bunyan = __webpack_require__(/*! bunyan */ \"./node_modules/browser-bunyan/lib/index.m.js\"); // will be replaced to browser-bunyan on browser by webpack\n\n\nconst minimatch = __webpack_require__(/*! minimatch */ \"./node_modules/minimatch/minimatch.js\");\n\nconst isBrowser = typeof window !== 'undefined';\nconst isProd = \"development\" === 'production';\n\nconst config = __webpack_require__(/*! @root/config */ \"./config/index.js\").logger;\n\nconst stream = isProd ? __webpack_require__(/*! ./stream.prod */ \"./src/lib/service/logger/stream.prod.js\") : __webpack_require__(/*! ./stream.dev */ \"./src/lib/service/logger/stream.dev.js\"); // logger store\n\nconst loggers = {}; // merge configuration from environment variables\n\nconst envLevelMap = {\n INFO: 'info',\n DEBUG: 'debug',\n WARN: 'warn',\n TRACE: 'trace',\n ERROR: 'error'\n};\nObject.keys(envLevelMap).forEach(envName => {\n // ['INFO', 'DEBUG', ...].forEach\n const envVars = process.env[envName]; // process.env.DEBUG should have a value like 'growi:routes:page,growi:models.page,...'\n\n if (envVars != null) {\n const level = envLevelMap[envName];\n envVars.split(',').forEach(ns => {\n // ['growi:routes:page', 'growi:models.page', ...].forEach\n config[ns.trim()] = level;\n });\n }\n});\n/**\n * determine logger level\n * @param {string} name Logger name\n */\n\nfunction determineLoggerLevel(name) {\n if (isBrowser && isProd) {\n return 'error';\n }\n\n let level = config.default;\n /* eslint-disable array-callback-return, no-useless-return */\n // retrieve configured level\n\n Object.keys(config).some(key => {\n // breakable forEach\n // test whether 'name' matches to 'key'(blob)\n if (minimatch(name, key)) {\n level = config[key];\n return; // break if match\n }\n });\n return level;\n}\n\nmodule.exports = name => {\n // create logger instance if absent\n if (loggers[name] == null) {\n loggers[name] = bunyan.createLogger({\n name,\n stream,\n level: determineLoggerLevel(name)\n });\n }\n\n return loggers[name];\n};\n/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(/*! ./../../../../node_modules/process/browser.js */ \"./node_modules/process/browser.js\")))//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9zcmMvbGliL3NlcnZpY2UvbG9nZ2VyL2luZGV4LmpzLmpzIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vLy4vc3JjL2xpYi9zZXJ2aWNlL2xvZ2dlci9pbmRleC5qcz9hZjljIl0sInNvdXJjZXNDb250ZW50IjpbImNvbnN0IGJ1bnlhbiA9IHJlcXVpcmUoJ2J1bnlhbicpOyAvLyB3aWxsIGJlIHJlcGxhY2VkIHRvIGJyb3dzZXItYnVueWFuIG9uIGJyb3dzZXIgYnkgd2VicGFja1xuY29uc3QgbWluaW1hdGNoID0gcmVxdWlyZSgnbWluaW1hdGNoJyk7XG5cbmNvbnN0IGlzQnJvd3NlciA9IHR5cGVvZiB3aW5kb3cgIT09ICd1bmRlZmluZWQnO1xuY29uc3QgaXNQcm9kID0gcHJvY2Vzcy5lbnYuTk9ERV9FTlYgPT09ICdwcm9kdWN0aW9uJztcblxuY29uc3QgY29uZmlnID0gcmVxdWlyZSgnQHJvb3QvY29uZmlnJykubG9nZ2VyO1xuY29uc3Qgc3RyZWFtID0gaXNQcm9kID8gcmVxdWlyZSgnLi9zdHJlYW0ucHJvZCcpIDogcmVxdWlyZSgnLi9zdHJlYW0uZGV2Jyk7XG5cbi8vIGxvZ2dlciBzdG9yZVxuY29uc3QgbG9nZ2VycyA9IHt9O1xuXG5cbi8vIG1lcmdlIGNvbmZpZ3VyYXRpb24gZnJvbSBlbnZpcm9ubWVudCB2YXJpYWJsZXNcbmNvbnN0IGVudkxldmVsTWFwID0ge1xuICBJTkZPOiAgICdpbmZvJyxcbiAgREVCVUc6ICAnZGVidWcnLFxuICBXQVJOOiAgICd3YXJuJyxcbiAgVFJBQ0U6ICAndHJhY2UnLFxuICBFUlJPUjogICdlcnJvcicsXG59O1xuT2JqZWN0LmtleXMoZW52TGV2ZWxNYXApLmZvckVhY2goKGVudk5hbWUpID0+IHsgLy8gWydJTkZPJywgJ0RFQlVHJywgLi4uXS5mb3JFYWNoXG4gIGNvbnN0IGVudlZhcnMgPSBwcm9jZXNzLmVudltlbnZOYW1lXTsgLy8gcHJvY2Vzcy5lbnYuREVCVUcgc2hvdWxkIGhhdmUgYSB2YWx1ZSBsaWtlICdncm93aTpyb3V0ZXM6cGFnZSxncm93aTptb2RlbHMucGFnZSwuLi4nXG4gIGlmIChlbnZWYXJzICE9IG51bGwpIHtcbiAgICBjb25zdCBsZXZlbCA9IGVudkxldmVsTWFwW2Vudk5hbWVdO1xuICAgIGVudlZhcnMuc3BsaXQoJywnKS5mb3JFYWNoKChucykgPT4geyAvLyBbJ2dyb3dpOnJvdXRlczpwYWdlJywgJ2dyb3dpOm1vZGVscy5wYWdlJywgLi4uXS5mb3JFYWNoXG4gICAgICBjb25maWdbbnMudHJpbSgpXSA9IGxldmVsO1xuICAgIH0pO1xuICB9XG59KTtcblxuXG4vKipcbiAqIGRldGVybWluZSBsb2dnZXIgbGV2ZWxcbiAqIEBwYXJhbSB7c3RyaW5nfSBuYW1lIExvZ2dlciBuYW1lXG4gKi9cbmZ1bmN0aW9uIGRldGVybWluZUxvZ2dlckxldmVsKG5hbWUpIHtcbiAgaWYgKGlzQnJvd3NlciAmJiBpc1Byb2QpIHtcbiAgICByZXR1cm4gJ2Vycm9yJztcbiAgfVxuXG4gIGxldCBsZXZlbCA9IGNvbmZpZy5kZWZhdWx0O1xuXG4gIC8qIGVzbGludC1kaXNhYmxlIGFycmF5LWNhbGxiYWNrLXJldHVybiwgbm8tdXNlbGVzcy1yZXR1cm4gKi9cbiAgLy8gcmV0cmlldmUgY29uZmlndXJlZCBsZXZlbFxuICBPYmplY3Qua2V5cyhjb25maWcpLnNvbWUoKGtleSkgPT4geyAvLyAgYnJlYWthYmxlIGZvckVhY2hcbiAgICAvLyB0ZXN0IHdoZXRoZXIgJ25hbWUnIG1hdGNoZXMgdG8gJ2tleScoYmxvYilcbiAgICBpZiAobWluaW1hdGNoKG5hbWUsIGtleSkpIHtcbiAgICAgIGxldmVsID0gY29uZmlnW2tleV07XG4gICAgICByZXR1cm47IC8vICAgICAgICAgICAgICAgICAgICAgICAgICBicmVhayBpZiBtYXRjaFxuICAgIH1cbiAgfSk7XG5cbiAgcmV0dXJuIGxldmVsO1xufVxuXG5tb2R1bGUuZXhwb3J0cyA9IChuYW1lKSA9PiB7XG4gIC8vIGNyZWF0ZSBsb2dnZXIgaW5zdGFuY2UgaWYgYWJzZW50XG4gIGlmIChsb2dnZXJzW25hbWVdID09IG51bGwpIHtcbiAgICBsb2dnZXJzW25hbWVdID0gYnVueWFuLmNyZWF0ZUxvZ2dlcih7XG4gICAgICBuYW1lLFxuICAgICAgc3RyZWFtLFxuICAgICAgbGV2ZWw6IGRldGVybWluZUxvZ2dlckxldmVsKG5hbWUpLFxuICAgIH0pO1xuICB9XG5cbiAgcmV0dXJuIGxvZ2dlcnNbbmFtZV07XG59O1xuIl0sIm1hcHBpbmdzIjoiQUFBQTtBQUNBO0FBQ0E7QUFEQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUFBO0FBQ0E7QUFFQTtBQUNBO0FBR0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBTEE7QUFPQTtBQUFBO0FBQ0E7QUFDQTtBQUFBO0FBQ0E7QUFDQTtBQUFBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFHQTs7Ozs7QUFJQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFFQTtBQUNBO0FBQ0E7QUFBQTtBQUFBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFIQTtBQUtBO0FBQ0E7QUFDQTtBQUNBO0EiLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./src/lib/service/logger/index.js\n");
- /***/ }),
- /***/ "./src/lib/service/logger/stream.dev.js":
- /*!**********************************************!*\
- !*** ./src/lib/service/logger/stream.dev.js ***!
- \**********************************************/
- /*! no static exports found */
- /***/ (function(module, exports, __webpack_require__) {
- eval("const isBrowser = typeof window !== 'undefined';\nlet stream; // browser settings\n\nif (isBrowser) {\n const ConsoleFormattedStream = __webpack_require__(/*! @browser-bunyan/console-formatted-stream */ \"./node_modules/@browser-bunyan/console-formatted-stream/lib/index.m.js\").ConsoleFormattedStream;\n\n stream = new ConsoleFormattedStream();\n} // node settings\nelse {\n const bunyanFormat = __webpack_require__(/*! bunyan-format */ \"./node_modules/bunyan-format/index.js\");\n\n stream = bunyanFormat({\n outputMode: 'short'\n });\n }\n\nmodule.exports = stream;//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9zcmMvbGliL3NlcnZpY2UvbG9nZ2VyL3N0cmVhbS5kZXYuanMuanMiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9zcmMvbGliL3NlcnZpY2UvbG9nZ2VyL3N0cmVhbS5kZXYuanM/YmYzNiJdLCJzb3VyY2VzQ29udGVudCI6WyJjb25zdCBpc0Jyb3dzZXIgPSB0eXBlb2Ygd2luZG93ICE9PSAndW5kZWZpbmVkJztcblxubGV0IHN0cmVhbTtcblxuLy8gYnJvd3NlciBzZXR0aW5nc1xuaWYgKGlzQnJvd3Nlcikge1xuICBjb25zdCBDb25zb2xlRm9ybWF0dGVkU3RyZWFtID0gcmVxdWlyZSgnQGJyb3dzZXItYnVueWFuL2NvbnNvbGUtZm9ybWF0dGVkLXN0cmVhbScpLkNvbnNvbGVGb3JtYXR0ZWRTdHJlYW07XG4gIHN0cmVhbSA9IG5ldyBDb25zb2xlRm9ybWF0dGVkU3RyZWFtKCk7XG59XG4vLyBub2RlIHNldHRpbmdzXG5lbHNlIHtcbiAgY29uc3QgYnVueWFuRm9ybWF0ID0gcmVxdWlyZSgnYnVueWFuLWZvcm1hdCcpO1xuICBzdHJlYW0gPSBidW55YW5Gb3JtYXQoeyBvdXRwdXRNb2RlOiAnc2hvcnQnIH0pO1xufVxuXG5tb2R1bGUuZXhwb3J0cyA9IHN0cmVhbTtcbiJdLCJtYXBwaW5ncyI6IkFBQUE7QUFFQTtBQUNBO0FBRUE7QUFDQTtBQUNBO0FBQUE7QUFDQTtBQUhBO0FBTUE7QUFDQTtBQUFBO0FBQUE7QUFBQTtBQUNBO0FBQ0E7QUFDQSIsInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./src/lib/service/logger/stream.dev.js\n");
- /***/ }),
- /***/ "./src/lib/service/logger/stream.prod.js":
- /*!***********************************************!*\
- !*** ./src/lib/service/logger/stream.prod.js ***!
- \***********************************************/
- /*! no static exports found */
- /***/ (function(module, exports, __webpack_require__) {
- eval("/* WEBPACK VAR INJECTION */(function(process) {const {\n envUtils\n} = __webpack_require__(/*! growi-commons */ \"./node_modules/growi-commons/src/index.js\");\n\nconst isBrowser = typeof window !== 'undefined';\nlet stream; // browser settings\n\nif (isBrowser) {\n const ConsoleFormattedStream = __webpack_require__(/*! @browser-bunyan/console-formatted-stream */ \"./node_modules/@browser-bunyan/console-formatted-stream/lib/index.m.js\").ConsoleFormattedStream;\n\n stream = new ConsoleFormattedStream();\n} // node settings\nelse {\n const isFormat = process.env.FORMAT_NODE_LOG == null || envUtils.toBoolean(process.env.FORMAT_NODE_LOG);\n\n if (isFormat) {\n const bunyanFormat = __webpack_require__(/*! bunyan-format */ \"./node_modules/bunyan-format/index.js\");\n\n stream = bunyanFormat({\n outputMode: 'long'\n });\n } else {\n stream = process.stdout;\n }\n }\n\nmodule.exports = stream;\n/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(/*! ./../../../../node_modules/process/browser.js */ \"./node_modules/process/browser.js\")))//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9zcmMvbGliL3NlcnZpY2UvbG9nZ2VyL3N0cmVhbS5wcm9kLmpzLmpzIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vLy4vc3JjL2xpYi9zZXJ2aWNlL2xvZ2dlci9zdHJlYW0ucHJvZC5qcz82ZGRkIl0sInNvdXJjZXNDb250ZW50IjpbImNvbnN0IHsgZW52VXRpbHMgfSA9IHJlcXVpcmUoJ2dyb3dpLWNvbW1vbnMnKTtcblxuY29uc3QgaXNCcm93c2VyID0gdHlwZW9mIHdpbmRvdyAhPT0gJ3VuZGVmaW5lZCc7XG5cbmxldCBzdHJlYW07XG5cbi8vIGJyb3dzZXIgc2V0dGluZ3NcbmlmIChpc0Jyb3dzZXIpIHtcbiAgY29uc3QgQ29uc29sZUZvcm1hdHRlZFN0cmVhbSA9IHJlcXVpcmUoJ0Bicm93c2VyLWJ1bnlhbi9jb25zb2xlLWZvcm1hdHRlZC1zdHJlYW0nKS5Db25zb2xlRm9ybWF0dGVkU3RyZWFtO1xuICBzdHJlYW0gPSBuZXcgQ29uc29sZUZvcm1hdHRlZFN0cmVhbSgpO1xufVxuLy8gbm9kZSBzZXR0aW5nc1xuZWxzZSB7XG4gIGNvbnN0IGlzRm9ybWF0ID0gKHByb2Nlc3MuZW52LkZPUk1BVF9OT0RFX0xPRyA9PSBudWxsKSB8fCBlbnZVdGlscy50b0Jvb2xlYW4ocHJvY2Vzcy5lbnYuRk9STUFUX05PREVfTE9HKTtcblxuICBpZiAoaXNGb3JtYXQpIHtcbiAgICBjb25zdCBidW55YW5Gb3JtYXQgPSByZXF1aXJlKCdidW55YW4tZm9ybWF0Jyk7XG4gICAgc3RyZWFtID0gYnVueWFuRm9ybWF0KHsgb3V0cHV0TW9kZTogJ2xvbmcnIH0pO1xuICB9XG4gIGVsc2Uge1xuICAgIHN0cmVhbSA9IHByb2Nlc3Muc3Rkb3V0O1xuICB9XG59XG5cbm1vZHVsZS5leHBvcnRzID0gc3RyZWFtO1xuIl0sIm1hcHBpbmdzIjoiQUFBQTtBQUFBO0FBQUE7QUFDQTtBQUNBO0FBRUE7QUFDQTtBQUVBO0FBQ0E7QUFDQTtBQUFBO0FBQ0E7QUFIQTtBQU1BO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFBQTtBQUFBO0FBQUE7QUFDQTtBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QSIsInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./src/lib/service/logger/stream.prod.js\n");
- /***/ }),
- /***/ "./src/lib/service/xss/commonmark-spec.js":
- /*!************************************************!*\
- !*** ./src/lib/service/xss/commonmark-spec.js ***!
- \************************************************/
- /*! no static exports found */
- /***/ (function(module, exports) {
- eval("/**\n * Valid schemes\n * @see https://spec.commonmark.org/0.16/#autolinks\n */\nconst schemesForAutolink = ['coap', 'doi', 'javascript', 'aaa', 'aaas', 'about', 'acap', 'cap', 'cid', 'crid', 'data', 'dav', 'dict', 'dns', 'file', 'ftp', 'geo', 'go', 'gopher', 'h323', 'http', 'https', 'iax', 'icap', 'im', 'imap', 'info', 'ipp', 'iris', 'iris.beep', 'iris.xpc', 'iris.xpcs', 'iris.lwz', 'ldap', 'mailto', 'mid', 'msrp', 'msrps', 'mtqp', 'mupdate', 'news', 'nfs', 'ni', 'nih', 'nntp', 'opaquelocktoken', 'pop', 'pres', 'rtsp', 'service', 'session', 'shttp', 'sieve', 'sip', 'sips', 'sms', 'snmp,soap.beep', 'soap.beeps', 'tag', 'tel', 'telnet', 'tftp', 'thismessage', 'tn3270', 'tip', 'tv', 'urn', 'vemmi', 'ws', 'wss', 'xcon', 'xcon-userid', 'xmlrpc.beep', 'xmlrpc.beeps', 'xmpp', 'z39.50r', 'z39.50s', 'adiumxtra', 'afp', 'afs', 'aim', 'apt,attachment', 'aw', 'beshare', 'bitcoin', 'bolo', 'callto', 'chrome,chrome-extension', 'com-eventbrite-attendee', 'content', 'cvs,dlna-playsingle', 'dlna-playcontainer', 'dtn', 'dvb', 'ed2k', 'facetime', 'feed', 'finger', 'fish', 'gg', 'git', 'gizmoproject', 'gtalk', 'hcp', 'icon', 'ipn', 'irc', 'irc6', 'ircs', 'itms', 'jar', 'jms', 'keyparc', 'lastfm', 'ldaps', 'magnet', 'maps', 'market,message', 'mms', 'ms-help', 'msnim', 'mumble', 'mvn', 'notes', 'oid', 'palm', 'paparazzi', 'platform', 'proxy', 'psyc', 'query', 'res', 'resource', 'rmi', 'rsync', 'rtmp', 'secondlife', 'sftp', 'sgn', 'skype', 'smb', 'soldat', 'spotify', 'ssh', 'steam', 'svn', 'teamspeak', 'things', 'udp', 'unreal', 'ut2004', 'ventrilo', 'view-source', 'webcal', 'wtai', 'wyciwyg', 'xfire', 'xri', 'ymsgr'];\nconst schemesCondition = schemesForAutolink.join('|');\n/**\n * RegExp for URI\n * @type {RegExp}\n * @see https://spec.commonmark.org/0.16/#autolinks\n */\n\nconst uriAutolinkRegexp = new RegExp(`^(${schemesCondition}):\\\\/\\\\/.+$`);\n/**\n * RegExp for email\n * @type {RegExp}\n * @see https://spec.commonmark.org/0.16/#autolinks\n */\n// eslint-disable-next-line max-len\n\nconst emailAutolinkRegexp = /^[a-zA-Z0-9.!#$%&'*+/=?^_`{|}~-]+@[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\\.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)*$/;\nmodule.exports = {\n uriAutolinkRegexp,\n emailAutolinkRegexp\n};//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9zcmMvbGliL3NlcnZpY2UveHNzL2NvbW1vbm1hcmstc3BlYy5qcy5qcyIsInNvdXJjZXMiOlsid2VicGFjazovLy8uL3NyYy9saWIvc2VydmljZS94c3MvY29tbW9ubWFyay1zcGVjLmpzP2M4ZWEiXSwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBWYWxpZCBzY2hlbWVzXG4gKiBAc2VlIGh0dHBzOi8vc3BlYy5jb21tb25tYXJrLm9yZy8wLjE2LyNhdXRvbGlua3NcbiAqL1xuY29uc3Qgc2NoZW1lc0ZvckF1dG9saW5rID0gW1xuICAnY29hcCcsICdkb2knLCAnamF2YXNjcmlwdCcsICdhYWEnLCAnYWFhcycsICdhYm91dCcsICdhY2FwJywgJ2NhcCcsICdjaWQnLCAnY3JpZCcsICdkYXRhJywgJ2RhdicsICdkaWN0JywgJ2RucycsXG4gICdmaWxlJywgJ2Z0cCcsICdnZW8nLCAnZ28nLCAnZ29waGVyJywgJ2gzMjMnLCAnaHR0cCcsICdodHRwcycsICdpYXgnLCAnaWNhcCcsICdpbScsICdpbWFwJywgJ2luZm8nLCAnaXBwJywgJ2lyaXMnLFxuICAnaXJpcy5iZWVwJywgJ2lyaXMueHBjJywgJ2lyaXMueHBjcycsICdpcmlzLmx3eicsICdsZGFwJywgJ21haWx0bycsICdtaWQnLCAnbXNycCcsICdtc3JwcycsICdtdHFwJywgJ211cGRhdGUnLFxuICAnbmV3cycsICduZnMnLCAnbmknLCAnbmloJywgJ25udHAnLCAnb3BhcXVlbG9ja3Rva2VuJywgJ3BvcCcsICdwcmVzJywgJ3J0c3AnLCAnc2VydmljZScsICdzZXNzaW9uJywgJ3NodHRwJyxcbiAgJ3NpZXZlJywgJ3NpcCcsICdzaXBzJywgJ3NtcycsICdzbm1wLHNvYXAuYmVlcCcsICdzb2FwLmJlZXBzJywgJ3RhZycsICd0ZWwnLCAndGVsbmV0JywgJ3RmdHAnLCAndGhpc21lc3NhZ2UnLFxuICAndG4zMjcwJywgJ3RpcCcsICd0dicsICd1cm4nLCAndmVtbWknLCAnd3MnLCAnd3NzJywgJ3hjb24nLCAneGNvbi11c2VyaWQnLCAneG1scnBjLmJlZXAnLCAneG1scnBjLmJlZXBzJywgJ3htcHAnLFxuICAnejM5LjUwcicsICd6MzkuNTBzJywgJ2FkaXVteHRyYScsICdhZnAnLCAnYWZzJywgJ2FpbScsICdhcHQsYXR0YWNobWVudCcsICdhdycsICdiZXNoYXJlJywgJ2JpdGNvaW4nLCAnYm9sbycsXG4gICdjYWxsdG8nLCAnY2hyb21lLGNocm9tZS1leHRlbnNpb24nLCAnY29tLWV2ZW50YnJpdGUtYXR0ZW5kZWUnLCAnY29udGVudCcsICdjdnMsZGxuYS1wbGF5c2luZ2xlJywgJ2RsbmEtcGxheWNvbnRhaW5lcicsXG4gICdkdG4nLCAnZHZiJywgJ2VkMmsnLCAnZmFjZXRpbWUnLCAnZmVlZCcsICdmaW5nZXInLCAnZmlzaCcsICdnZycsICdnaXQnLCAnZ2l6bW9wcm9qZWN0JywgJ2d0YWxrJywgJ2hjcCcsICdpY29uJyxcbiAgJ2lwbicsICdpcmMnLCAnaXJjNicsICdpcmNzJywgJ2l0bXMnLCAnamFyJywgJ2ptcycsICdrZXlwYXJjJywgJ2xhc3RmbScsICdsZGFwcycsICdtYWduZXQnLCAnbWFwcycsICdtYXJrZXQsbWVzc2FnZScsXG4gICdtbXMnLCAnbXMtaGVscCcsICdtc25pbScsICdtdW1ibGUnLCAnbXZuJywgJ25vdGVzJywgJ29pZCcsICdwYWxtJywgJ3BhcGFyYXp6aScsICdwbGF0Zm9ybScsICdwcm94eScsICdwc3ljJyxcbiAgJ3F1ZXJ5JywgJ3JlcycsICdyZXNvdXJjZScsICdybWknLCAncnN5bmMnLCAncnRtcCcsICdzZWNvbmRsaWZlJywgJ3NmdHAnLCAnc2duJywgJ3NreXBlJywgJ3NtYicsICdzb2xkYXQnLCAnc3BvdGlmeScsXG4gICdzc2gnLCAnc3RlYW0nLCAnc3ZuJywgJ3RlYW1zcGVhaycsICd0aGluZ3MnLCAndWRwJywgJ3VucmVhbCcsICd1dDIwMDQnLCAndmVudHJpbG8nLCAndmlldy1zb3VyY2UnLCAnd2ViY2FsJyxcbiAgJ3d0YWknLCAnd3ljaXd5ZycsICd4ZmlyZScsICd4cmknLCAneW1zZ3InLFxuXTtcbmNvbnN0IHNjaGVtZXNDb25kaXRpb24gPSBzY2hlbWVzRm9yQXV0b2xpbmsuam9pbignfCcpO1xuXG4vKipcbiAqIFJlZ0V4cCBmb3IgVVJJXG4gKiBAdHlwZSB7UmVnRXhwfVxuICogQHNlZSBodHRwczovL3NwZWMuY29tbW9ubWFyay5vcmcvMC4xNi8jYXV0b2xpbmtzXG4gKi9cbmNvbnN0IHVyaUF1dG9saW5rUmVnZXhwID0gbmV3IFJlZ0V4cChgXigke3NjaGVtZXNDb25kaXRpb259KTpcXFxcL1xcXFwvLiskYCk7XG5cbi8qKlxuICogUmVnRXhwIGZvciBlbWFpbFxuICogQHR5cGUge1JlZ0V4cH1cbiAqIEBzZWUgaHR0cHM6Ly9zcGVjLmNvbW1vbm1hcmsub3JnLzAuMTYvI2F1dG9saW5rc1xuICovXG4vLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbWF4LWxlblxuY29uc3QgZW1haWxBdXRvbGlua1JlZ2V4cCA9IC9eW2EtekEtWjAtOS4hIyQlJicqKy89P15fYHt8fX4tXStAW2EtekEtWjAtOV0oPzpbYS16QS1aMC05LV17MCw2MX1bYS16QS1aMC05XSk/KD86XFwuW2EtekEtWjAtOV0oPzpbYS16QS1aMC05LV17MCw2MX1bYS16QS1aMC05XSk/KSokLztcblxuXG5tb2R1bGUuZXhwb3J0cyA9IHtcbiAgdXJpQXV0b2xpbmtSZWdleHAsXG4gIGVtYWlsQXV0b2xpbmtSZWdleHAsXG59O1xuIl0sIm1hcHBpbmdzIjoiQUFBQTs7OztBQUlBO0FBZ0JBO0FBRUE7Ozs7OztBQUtBO0FBRUE7Ozs7O0FBS0E7QUFDQTtBQUFBO0FBR0E7QUFDQTtBQUNBO0FBRkEiLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./src/lib/service/xss/commonmark-spec.js\n");
- /***/ }),
- /***/ "./src/lib/service/xss/index.js":
- /*!**************************************!*\
- !*** ./src/lib/service/xss/index.js ***!
- \**************************************/
- /*! no static exports found */
- /***/ (function(module, exports, __webpack_require__) {
- eval("const xss = __webpack_require__(/*! xss */ \"./node_modules/xss/lib/index.js\");\n\nconst commonmarkSpec = __webpack_require__(/*! ./commonmark-spec */ \"./src/lib/service/xss/commonmark-spec.js\");\n\nconst REPETITIONS_NUM = 50;\n\nclass Xss {\n constructor(xssOption) {\n xssOption = xssOption || {}; // eslint-disable-line no-param-reassign\n\n const tagWhiteList = xssOption.tagWhiteList || [];\n const attrWhiteList = xssOption.attrWhiteList || [];\n const whiteListContent = {}; // default\n\n const option = {\n stripIgnoreTag: true,\n stripIgnoreTagBody: false,\n // see https://github.com/weseek/growi/pull/505\n css: false,\n whiteList: whiteListContent,\n escapeHtml: html => {\n return html;\n },\n // resolve https://github.com/weseek/growi/issues/221\n onTag: (tag, html, options) => {\n // pass autolink\n if (tag.match(commonmarkSpec.uriAutolinkRegexp) || tag.match(commonmarkSpec.emailAutolinkRegexp)) {\n return html;\n }\n }\n };\n tagWhiteList.forEach(tag => {\n whiteListContent[tag] = attrWhiteList;\n }); // create the XSS Filter instance\n\n this.myxss = new xss.FilterXSS(option);\n }\n\n process(document) {\n let count = 0;\n let currDoc = document;\n let prevDoc = document;\n\n do {\n count += 1; // stop running infinitely\n\n if (count > REPETITIONS_NUM) {\n return '--filtered--';\n }\n\n prevDoc = currDoc;\n currDoc = this.myxss.process(currDoc);\n } while (currDoc !== prevDoc);\n\n return currDoc;\n }\n\n}\n\nmodule.exports = Xss;//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9zcmMvbGliL3NlcnZpY2UveHNzL2luZGV4LmpzLmpzIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vLy4vc3JjL2xpYi9zZXJ2aWNlL3hzcy9pbmRleC5qcz85ZTBiIl0sInNvdXJjZXNDb250ZW50IjpbImNvbnN0IHhzcyA9IHJlcXVpcmUoJ3hzcycpO1xuY29uc3QgY29tbW9ubWFya1NwZWMgPSByZXF1aXJlKCcuL2NvbW1vbm1hcmstc3BlYycpO1xuXG5cbmNvbnN0IFJFUEVUSVRJT05TX05VTSA9IDUwO1xuXG5jbGFzcyBYc3Mge1xuXG4gIGNvbnN0cnVjdG9yKHhzc09wdGlvbikge1xuXG4gICAgeHNzT3B0aW9uID0geHNzT3B0aW9uIHx8IHt9OyAvLyBlc2xpbnQtZGlzYWJsZS1saW5lIG5vLXBhcmFtLXJlYXNzaWduXG5cbiAgICBjb25zdCB0YWdXaGl0ZUxpc3QgPSB4c3NPcHRpb24udGFnV2hpdGVMaXN0IHx8IFtdO1xuICAgIGNvbnN0IGF0dHJXaGl0ZUxpc3QgPSB4c3NPcHRpb24uYXR0cldoaXRlTGlzdCB8fCBbXTtcblxuICAgIGNvbnN0IHdoaXRlTGlzdENvbnRlbnQgPSB7fTtcblxuICAgIC8vIGRlZmF1bHRcbiAgICBjb25zdCBvcHRpb24gPSB7XG4gICAgICBzdHJpcElnbm9yZVRhZzogdHJ1ZSxcbiAgICAgIHN0cmlwSWdub3JlVGFnQm9keTogZmFsc2UsIC8vIHNlZSBodHRwczovL2dpdGh1Yi5jb20vd2VzZWVrL2dyb3dpL3B1bGwvNTA1XG4gICAgICBjc3M6IGZhbHNlLFxuICAgICAgd2hpdGVMaXN0OiB3aGl0ZUxpc3RDb250ZW50LFxuICAgICAgZXNjYXBlSHRtbDogKGh0bWwpID0+IHsgcmV0dXJuIGh0bWwgfSwgLy8gcmVzb2x2ZSBodHRwczovL2dpdGh1Yi5jb20vd2VzZWVrL2dyb3dpL2lzc3Vlcy8yMjFcbiAgICAgIG9uVGFnOiAodGFnLCBodG1sLCBvcHRpb25zKSA9PiB7XG4gICAgICAgIC8vIHBhc3MgYXV0b2xpbmtcbiAgICAgICAgaWYgKHRhZy5tYXRjaChjb21tb25tYXJrU3BlYy51cmlBdXRvbGlua1JlZ2V4cCkgfHwgdGFnLm1hdGNoKGNvbW1vbm1hcmtTcGVjLmVtYWlsQXV0b2xpbmtSZWdleHApKSB7XG4gICAgICAgICAgcmV0dXJuIGh0bWw7XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgfTtcblxuICAgIHRhZ1doaXRlTGlzdC5mb3JFYWNoKCh0YWcpID0+IHtcbiAgICAgIHdoaXRlTGlzdENvbnRlbnRbdGFnXSA9IGF0dHJXaGl0ZUxpc3Q7XG4gICAgfSk7XG5cbiAgICAvLyBjcmVhdGUgdGhlIFhTUyBGaWx0ZXIgaW5zdGFuY2VcbiAgICB0aGlzLm15eHNzID0gbmV3IHhzcy5GaWx0ZXJYU1Mob3B0aW9uKTtcbiAgfVxuXG4gIHByb2Nlc3MoZG9jdW1lbnQpIHtcbiAgICBsZXQgY291bnQgPSAwO1xuICAgIGxldCBjdXJyRG9jID0gZG9jdW1lbnQ7XG4gICAgbGV0IHByZXZEb2MgPSBkb2N1bWVudDtcblxuICAgIGRvIHtcbiAgICAgIGNvdW50ICs9IDE7XG4gICAgICAvLyBzdG9wIHJ1bm5pbmcgaW5maW5pdGVseVxuICAgICAgaWYgKGNvdW50ID4gUkVQRVRJVElPTlNfTlVNKSB7XG4gICAgICAgIHJldHVybiAnLS1maWx0ZXJlZC0tJztcbiAgICAgIH1cblxuICAgICAgcHJldkRvYyA9IGN1cnJEb2M7XG4gICAgICBjdXJyRG9jID0gdGhpcy5teXhzcy5wcm9jZXNzKGN1cnJEb2MpO1xuICAgIH1cbiAgICB3aGlsZSAoY3VyckRvYyAhPT0gcHJldkRvYyk7XG5cbiAgICByZXR1cm4gY3VyckRvYztcbiAgfVxuXG59XG5cbm1vZHVsZS5leHBvcnRzID0gWHNzO1xuIl0sIm1hcHBpbmdzIjoiQUFBQTtBQUNBO0FBQUE7QUFDQTtBQUVBO0FBQ0E7QUFDQTtBQUVBO0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFFQTtBQUNBO0FBRUE7QUFDQTtBQUNBO0FBQUE7QUFDQTtBQUNBO0FBQ0E7QUFBQTtBQUFBO0FBQUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFYQTtBQWNBO0FBQ0E7QUFDQTtBQUNBO0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFFQTtBQUNBO0FBQ0E7QUFyREE7QUFDQTtBQXVEQSIsInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./src/lib/service/xss/index.js\n");
- /***/ }),
- /***/ "./src/lib/service/xss/recommended-whitelist.js":
- /*!******************************************************!*\
- !*** ./src/lib/service/xss/recommended-whitelist.js ***!
- \******************************************************/
- /*! no static exports found */
- /***/ (function(module, exports) {
- eval("/**\n * reference: https://meta.stackexchange.com/questions/1777/what-html-tags-are-allowed-on-stack-exchange-sites,\n * https://github.com/jch/html-pipeline/blob/70b6903b025c668ff3c02a6fa382031661182147/lib/html/pipeline/sanitization_filter.rb#L41\n */\nconst tags = ['-', 'a', 'abbr', 'b', 'bdi', 'bdo', 'blockquote', 'br', 'caption', 'cite', 'code', 'col', 'colgroup', 'data', 'dd', 'del', 'details', 'dfn', 'div', 'dl', 'dt', 'em', 'figcaption', 'figure', 'h1', 'h2', 'h3', 'h4', 'h5', 'h6', 'h7', 'h8', 'hr', 'i', 'iframe', 'img', 'ins', 'kbd', 'li', 'mark', 'ol', 'p', 'pre', 'q', 'rb', 'rp', 'rt', 'ruby', 's', 'samp', 'small', 'span', 'strike', 'strong', 'sub', 'summary', 'sup', 'table', 'tbody', 'td', 'tfoot', 'th', 'thead', 'time', 'tr', 'tt', 'u', 'ul', 'var', 'wbr'];\nconst attrs = ['src', 'href', 'class', 'id', 'width', 'height', 'alt', 'title', 'style'];\nmodule.exports = {\n tags,\n attrs\n};//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9zcmMvbGliL3NlcnZpY2UveHNzL3JlY29tbWVuZGVkLXdoaXRlbGlzdC5qcy5qcyIsInNvdXJjZXMiOlsid2VicGFjazovLy8uL3NyYy9saWIvc2VydmljZS94c3MvcmVjb21tZW5kZWQtd2hpdGVsaXN0LmpzP2VjZWQiXSwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiByZWZlcmVuY2U6IGh0dHBzOi8vbWV0YS5zdGFja2V4Y2hhbmdlLmNvbS9xdWVzdGlvbnMvMTc3Ny93aGF0LWh0bWwtdGFncy1hcmUtYWxsb3dlZC1vbi1zdGFjay1leGNoYW5nZS1zaXRlcyxcbiAqICAgICAgICAgICAgaHR0cHM6Ly9naXRodWIuY29tL2pjaC9odG1sLXBpcGVsaW5lL2Jsb2IvNzBiNjkwM2IwMjVjNjY4ZmYzYzAyYTZmYTM4MjAzMTY2MTE4MjE0Ny9saWIvaHRtbC9waXBlbGluZS9zYW5pdGl6YXRpb25fZmlsdGVyLnJiI0w0MVxuICovXG5cbmNvbnN0IHRhZ3MgPSBbXG4gICctJywgJ2EnLCAnYWJicicsICdiJywgJ2JkaScsICdiZG8nLCAnYmxvY2txdW90ZScsICdicicsICdjYXB0aW9uJywgJ2NpdGUnLFxuICAnY29kZScsICdjb2wnLCAnY29sZ3JvdXAnLCAnZGF0YScsICdkZCcsICdkZWwnLCAnZGV0YWlscycsICdkZm4nLCAnZGl2JywgJ2RsJyxcbiAgJ2R0JywgJ2VtJywgJ2ZpZ2NhcHRpb24nLCAnZmlndXJlJywgJ2gxJywgJ2gyJywgJ2gzJywgJ2g0JywgJ2g1JywgJ2g2JywgJ2g3JyxcbiAgJ2g4JywgJ2hyJywgJ2knLCAnaWZyYW1lJywgJ2ltZycsICdpbnMnLCAna2JkJywgJ2xpJywgJ21hcmsnLCAnb2wnLCAncCcsXG4gICdwcmUnLCAncScsICdyYicsICdycCcsICdydCcsICdydWJ5JywgJ3MnLCAnc2FtcCcsICdzbWFsbCcsICdzcGFuJywgJ3N0cmlrZScsXG4gICdzdHJvbmcnLCAnc3ViJywgJ3N1bW1hcnknLCAnc3VwJywgJ3RhYmxlJywgJ3Rib2R5JywgJ3RkJywgJ3Rmb290JywgJ3RoJyxcbiAgJ3RoZWFkJywgJ3RpbWUnLCAndHInLCAndHQnLCAndScsICd1bCcsICd2YXInLCAnd2JyJyxcbl07XG5cbmNvbnN0IGF0dHJzID0gWydzcmMnLCAnaHJlZicsICdjbGFzcycsICdpZCcsICd3aWR0aCcsICdoZWlnaHQnLCAnYWx0JywgJ3RpdGxlJywgJ3N0eWxlJ107XG5cbm1vZHVsZS5leHBvcnRzID0ge1xuICB0YWdzLFxuICBhdHRycyxcbn07XG4iXSwibWFwcGluZ3MiOiJBQUFBOzs7O0FBS0E7QUFVQTtBQUVBO0FBQ0E7QUFDQTtBQUZBIiwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./src/lib/service/xss/recommended-whitelist.js\n");
- /***/ }),
- /***/ "./src/lib/service/xss/xssOption.js":
- /*!******************************************!*\
- !*** ./src/lib/service/xss/xssOption.js ***!
- \******************************************/
- /*! no static exports found */
- /***/ (function(module, exports, __webpack_require__) {
- eval("class XssOption {\n constructor(config) {\n const recommendedWhitelist = __webpack_require__(/*! ./recommended-whitelist */ \"./src/lib/service/xss/recommended-whitelist.js\");\n\n const initializedConfig = config != null ? config : {};\n this.isEnabledXssPrevention = initializedConfig.isEnabledXssPrevention || true;\n this.tagWhiteList = initializedConfig.tagWhiteList || recommendedWhitelist.tags;\n this.attrWhiteList = initializedConfig.attrWhiteList || recommendedWhitelist.attrs;\n }\n\n}\n\nmodule.exports = XssOption;//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9zcmMvbGliL3NlcnZpY2UveHNzL3hzc09wdGlvbi5qcy5qcyIsInNvdXJjZXMiOlsid2VicGFjazovLy8uL3NyYy9saWIvc2VydmljZS94c3MveHNzT3B0aW9uLmpzPzA0MjMiXSwic291cmNlc0NvbnRlbnQiOlsiY2xhc3MgWHNzT3B0aW9uIHtcblxuICBjb25zdHJ1Y3Rvcihjb25maWcpIHtcbiAgICBjb25zdCByZWNvbW1lbmRlZFdoaXRlbGlzdCA9IHJlcXVpcmUoJy4vcmVjb21tZW5kZWQtd2hpdGVsaXN0Jyk7XG4gICAgY29uc3QgaW5pdGlhbGl6ZWRDb25maWcgPSAoY29uZmlnICE9IG51bGwpID8gY29uZmlnIDoge307XG5cbiAgICB0aGlzLmlzRW5hYmxlZFhzc1ByZXZlbnRpb24gPSBpbml0aWFsaXplZENvbmZpZy5pc0VuYWJsZWRYc3NQcmV2ZW50aW9uIHx8IHRydWU7XG4gICAgdGhpcy50YWdXaGl0ZUxpc3QgPSBpbml0aWFsaXplZENvbmZpZy50YWdXaGl0ZUxpc3QgfHwgcmVjb21tZW5kZWRXaGl0ZWxpc3QudGFncztcbiAgICB0aGlzLmF0dHJXaGl0ZUxpc3QgPSBpbml0aWFsaXplZENvbmZpZy5hdHRyV2hpdGVMaXN0IHx8IHJlY29tbWVuZGVkV2hpdGVsaXN0LmF0dHJzO1xuICB9XG5cbn1cbm1vZHVsZS5leHBvcnRzID0gWHNzT3B0aW9uO1xuIl0sIm1hcHBpbmdzIjoiQUFBQTtBQUVBO0FBQ0E7QUFDQTtBQUFBO0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQVZBO0FBQ0E7QUFXQSIsInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./src/lib/service/xss/xssOption.js\n");
- /***/ }),
- /***/ "./src/lib/util/path-utils.js":
- /*!************************************!*\
- !*** ./src/lib/util/path-utils.js ***!
- \************************************/
- /*! no static exports found */
- /***/ (function(module, exports, __webpack_require__) {
- eval("const escapeStringRegexp = __webpack_require__(/*! escape-string-regexp */ \"./node_modules/escape-string-regexp/index.js\");\n/**\n * Whether path is the top page\n * @param {string} path\n * @returns {boolean}\n */\n\n\nconst isTopPage = path => {\n return path === '/';\n};\n/**\n * Whether path belongs to the trash page\n * @param {string} path\n * @returns {boolean}\n */\n\n\nconst isTrashPage = path => {\n // https://regex101.com/r/BSDdRr/1\n if (path.match(/^\\/trash(\\/.*)?$/)) {\n return true;\n }\n\n return false;\n};\n/**\n * Whether path belongs to the user page\n * @param {string} path\n * @returns {boolean}\n */\n\n\nconst isUserPage = path => {\n // https://regex101.com/r/SxPejV/1\n if (path.match(/^\\/user(\\/.*)?$/)) {\n return true;\n }\n\n return false;\n};\n\nconst forbiddenPages = [/\\^|\\$|\\*|\\+|#|%|\\?/, /^\\/-\\/.*/, /^\\/_r\\/.*/, /^\\/_apix?(\\/.*)?/, /^\\/?https?:\\/\\/.+$/, // avoid miss in renaming\n/\\/{2,}/, // avoid miss in renaming\n/\\s+\\/\\s+/, // avoid miss in renaming\n/.+\\/edit$/, /.+\\.md$/, /^(\\.\\.)$/, // see: https://github.com/weseek/growi/issues/3582\n/(\\/\\.\\.)\\/?/, // see: https://github.com/weseek/growi/issues/3582\n/^\\/(installer|register|login|logout|admin|me|files|trash|paste|comments|tags|share)(\\/.*|$)/];\n/**\n * Whether path can be created\n * @param {string} path\n * @returns {boolean}\n */\n\nconst isCreatablePage = path => {\n let isCreatable = true;\n forbiddenPages.forEach(page => {\n const pageNameReg = new RegExp(page);\n\n if (path.match(pageNameReg)) {\n isCreatable = false;\n }\n });\n return isCreatable;\n};\n/**\n * return user path\n * @param {Object} user\n * @return {string}\n */\n\n\nconst userPageRoot = user => {\n if (!user || !user.username) {\n return '';\n }\n\n return `/user/${user.username}`;\n};\n/**\n * return user path\n * @param {string} parentPath\n * @param {string} childPath\n * @param {string} newPath\n *\n * @return {string}\n */\n\n\nconst convertToNewAffiliationPath = (oldPath, newPath, childPath) => {\n if (newPath === null) {\n throw new Error('Please input the new page path');\n }\n\n const pathRegExp = new RegExp(`^${escapeStringRegexp(oldPath)}`, 'i');\n return childPath.replace(pathRegExp, newPath);\n};\n/**\n * Encode SPACE and IDEOGRAPHIC SPACE\n * @param {string} path\n * @returns {string}\n */\n\n\nfunction encodeSpaces(path) {\n if (path == null) {\n return null;\n } // Encode SPACE and IDEOGRAPHIC SPACE\n\n\n return path.replace(/ /g, '%20').replace(/\\u3000/g, '%E3%80%80');\n}\n/**\n * Generate editor path\n * @param {string} paths\n * @returns {string}\n */\n\n\nfunction generateEditorPath(...paths) {\n const joinedPath = [...paths].join('/');\n\n if (!isCreatablePage(joinedPath)) {\n throw new Error('Invalid characters on path');\n }\n\n try {\n const url = new URL(joinedPath, 'https://dummy');\n return `${url.pathname}#edit`;\n } catch (err) {\n throw new Error('Invalid path format');\n }\n}\n\nmodule.exports = {\n isTopPage,\n isTrashPage,\n isUserPage,\n isCreatablePage,\n userPageRoot,\n convertToNewAffiliationPath,\n encodeSpaces,\n generateEditorPath\n};//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9zcmMvbGliL3V0aWwvcGF0aC11dGlscy5qcy5qcyIsInNvdXJjZXMiOlsid2VicGFjazovLy8uL3NyYy9saWIvdXRpbC9wYXRoLXV0aWxzLmpzPzFhOTQiXSwic291cmNlc0NvbnRlbnQiOlsiY29uc3QgZXNjYXBlU3RyaW5nUmVnZXhwID0gcmVxdWlyZSgnZXNjYXBlLXN0cmluZy1yZWdleHAnKTtcblxuLyoqXG4gKiBXaGV0aGVyIHBhdGggaXMgdGhlIHRvcCBwYWdlXG4gKiBAcGFyYW0ge3N0cmluZ30gcGF0aFxuICogQHJldHVybnMge2Jvb2xlYW59XG4gKi9cbmNvbnN0IGlzVG9wUGFnZSA9IChwYXRoKSA9PiB7XG4gIHJldHVybiBwYXRoID09PSAnLyc7XG59O1xuXG4vKipcbiAqIFdoZXRoZXIgcGF0aCBiZWxvbmdzIHRvIHRoZSB0cmFzaCBwYWdlXG4gKiBAcGFyYW0ge3N0cmluZ30gcGF0aFxuICogQHJldHVybnMge2Jvb2xlYW59XG4gKi9cbmNvbnN0IGlzVHJhc2hQYWdlID0gKHBhdGgpID0+IHtcbiAgLy8gaHR0cHM6Ly9yZWdleDEwMS5jb20vci9CU0RkUnIvMVxuICBpZiAocGF0aC5tYXRjaCgvXlxcL3RyYXNoKFxcLy4qKT8kLykpIHtcbiAgICByZXR1cm4gdHJ1ZTtcbiAgfVxuXG4gIHJldHVybiBmYWxzZTtcbn07XG5cbi8qKlxuICogV2hldGhlciBwYXRoIGJlbG9uZ3MgdG8gdGhlIHVzZXIgcGFnZVxuICogQHBhcmFtIHtzdHJpbmd9IHBhdGhcbiAqIEByZXR1cm5zIHtib29sZWFufVxuICovXG5jb25zdCBpc1VzZXJQYWdlID0gKHBhdGgpID0+IHtcbiAgLy8gaHR0cHM6Ly9yZWdleDEwMS5jb20vci9TeFBlalYvMVxuICBpZiAocGF0aC5tYXRjaCgvXlxcL3VzZXIoXFwvLiopPyQvKSkge1xuICAgIHJldHVybiB0cnVlO1xuICB9XG5cbiAgcmV0dXJuIGZhbHNlO1xufTtcblxuY29uc3QgZm9yYmlkZGVuUGFnZXMgPSBbXG4gIC9cXF58XFwkfFxcKnxcXCt8I3wlfFxcPy8sXG4gIC9eXFwvLVxcLy4qLyxcbiAgL15cXC9fclxcLy4qLyxcbiAgL15cXC9fYXBpeD8oXFwvLiopPy8sXG4gIC9eXFwvP2h0dHBzPzpcXC9cXC8uKyQvLCAvLyBhdm9pZCBtaXNzIGluIHJlbmFtaW5nXG4gIC9cXC97Mix9LywgLy8gYXZvaWQgbWlzcyBpbiByZW5hbWluZ1xuICAvXFxzK1xcL1xccysvLCAvLyBhdm9pZCBtaXNzIGluIHJlbmFtaW5nXG4gIC8uK1xcL2VkaXQkLyxcbiAgLy4rXFwubWQkLyxcbiAgL14oXFwuXFwuKSQvLCAvLyBzZWU6IGh0dHBzOi8vZ2l0aHViLmNvbS93ZXNlZWsvZ3Jvd2kvaXNzdWVzLzM1ODJcbiAgLyhcXC9cXC5cXC4pXFwvPy8sIC8vIHNlZTogaHR0cHM6Ly9naXRodWIuY29tL3dlc2Vlay9ncm93aS9pc3N1ZXMvMzU4MlxuICAvXlxcLyhpbnN0YWxsZXJ8cmVnaXN0ZXJ8bG9naW58bG9nb3V0fGFkbWlufG1lfGZpbGVzfHRyYXNofHBhc3RlfGNvbW1lbnRzfHRhZ3N8c2hhcmUpKFxcLy4qfCQpLyxcbl07XG5cbi8qKlxuICogV2hldGhlciBwYXRoIGNhbiBiZSBjcmVhdGVkXG4gKiBAcGFyYW0ge3N0cmluZ30gcGF0aFxuICogQHJldHVybnMge2Jvb2xlYW59XG4gKi9cbmNvbnN0IGlzQ3JlYXRhYmxlUGFnZSA9IChwYXRoKSA9PiB7XG4gIGxldCBpc0NyZWF0YWJsZSA9IHRydWU7XG4gIGZvcmJpZGRlblBhZ2VzLmZvckVhY2goKHBhZ2UpID0+IHtcbiAgICBjb25zdCBwYWdlTmFtZVJlZyA9IG5ldyBSZWdFeHAocGFnZSk7XG4gICAgaWYgKHBhdGgubWF0Y2gocGFnZU5hbWVSZWcpKSB7XG4gICAgICBpc0NyZWF0YWJsZSA9IGZhbHNlO1xuICAgIH1cbiAgfSk7XG5cbiAgcmV0dXJuIGlzQ3JlYXRhYmxlO1xufTtcblxuLyoqXG4gKiByZXR1cm4gdXNlciBwYXRoXG4gKiBAcGFyYW0ge09iamVjdH0gdXNlclxuICogQHJldHVybiB7c3RyaW5nfVxuICovXG5jb25zdCB1c2VyUGFnZVJvb3QgPSAodXNlcikgPT4ge1xuICBpZiAoIXVzZXIgfHwgIXVzZXIudXNlcm5hbWUpIHtcbiAgICByZXR1cm4gJyc7XG4gIH1cbiAgcmV0dXJuIGAvdXNlci8ke3VzZXIudXNlcm5hbWV9YDtcbn07XG5cbi8qKlxuICogcmV0dXJuIHVzZXIgcGF0aFxuICogQHBhcmFtIHtzdHJpbmd9IHBhcmVudFBhdGhcbiAqIEBwYXJhbSB7c3RyaW5nfSBjaGlsZFBhdGhcbiAqIEBwYXJhbSB7c3RyaW5nfSBuZXdQYXRoXG4gKlxuICogQHJldHVybiB7c3RyaW5nfVxuICovXG5jb25zdCBjb252ZXJ0VG9OZXdBZmZpbGlhdGlvblBhdGggPSAob2xkUGF0aCwgbmV3UGF0aCwgY2hpbGRQYXRoKSA9PiB7XG4gIGlmIChuZXdQYXRoID09PSBudWxsKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKCdQbGVhc2UgaW5wdXQgdGhlIG5ldyBwYWdlIHBhdGgnKTtcbiAgfVxuICBjb25zdCBwYXRoUmVnRXhwID0gbmV3IFJlZ0V4cChgXiR7ZXNjYXBlU3RyaW5nUmVnZXhwKG9sZFBhdGgpfWAsICdpJyk7XG4gIHJldHVybiBjaGlsZFBhdGgucmVwbGFjZShwYXRoUmVnRXhwLCBuZXdQYXRoKTtcbn07XG5cbi8qKlxuICogRW5jb2RlIFNQQUNFIGFuZCBJREVPR1JBUEhJQyBTUEFDRVxuICogQHBhcmFtIHtzdHJpbmd9IHBhdGhcbiAqIEByZXR1cm5zIHtzdHJpbmd9XG4gKi9cbmZ1bmN0aW9uIGVuY29kZVNwYWNlcyhwYXRoKSB7XG4gIGlmIChwYXRoID09IG51bGwpIHtcbiAgICByZXR1cm4gbnVsbDtcbiAgfVxuXG4gIC8vIEVuY29kZSBTUEFDRSBhbmQgSURFT0dSQVBISUMgU1BBQ0VcbiAgcmV0dXJuIHBhdGgucmVwbGFjZSgvIC9nLCAnJTIwJykucmVwbGFjZSgvXFx1MzAwMC9nLCAnJUUzJTgwJTgwJyk7XG59XG5cbi8qKlxuICogR2VuZXJhdGUgZWRpdG9yIHBhdGhcbiAqIEBwYXJhbSB7c3RyaW5nfSBwYXRoc1xuICogQHJldHVybnMge3N0cmluZ31cbiAqL1xuZnVuY3Rpb24gZ2VuZXJhdGVFZGl0b3JQYXRoKC4uLnBhdGhzKSB7XG4gIGNvbnN0IGpvaW5lZFBhdGggPSBbLi4ucGF0aHNdLmpvaW4oJy8nKTtcblxuICBpZiAoIWlzQ3JlYXRhYmxlUGFnZShqb2luZWRQYXRoKSkge1xuICAgIHRocm93IG5ldyBFcnJvcignSW52YWxpZCBjaGFyYWN0ZXJzIG9uIHBhdGgnKTtcbiAgfVxuXG4gIHRyeSB7XG4gICAgY29uc3QgdXJsID0gbmV3IFVSTChqb2luZWRQYXRoLCAnaHR0cHM6Ly9kdW1teScpO1xuICAgIHJldHVybiBgJHt1cmwucGF0aG5hbWV9I2VkaXRgO1xuICB9XG4gIGNhdGNoIChlcnIpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoJ0ludmFsaWQgcGF0aCBmb3JtYXQnKTtcbiAgfVxufVxuXG5tb2R1bGUuZXhwb3J0cyA9IHtcbiAgaXNUb3BQYWdlLFxuICBpc1RyYXNoUGFnZSxcbiAgaXNVc2VyUGFnZSxcbiAgaXNDcmVhdGFibGVQYWdlLFxuICB1c2VyUGFnZVJvb3QsXG4gIGNvbnZlcnRUb05ld0FmZmlsaWF0aW9uUGF0aCxcbiAgZW5jb2RlU3BhY2VzLFxuICBnZW5lcmF0ZUVkaXRvclBhdGgsXG59O1xuIl0sIm1hcHBpbmdzIjoiQUFBQTtBQUVBOzs7Ozs7O0FBS0E7QUFDQTtBQUNBO0FBRUE7Ozs7Ozs7QUFLQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBRUE7Ozs7Ozs7QUFLQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQU1BO0FBQ0E7QUFDQTtBQUdBO0FBQ0E7QUFHQTs7Ozs7O0FBS0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUFBO0FBQ0E7QUFDQTtBQUNBO0FBRUE7QUFDQTtBQUVBOzs7Ozs7O0FBS0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUFBO0FBQ0E7QUFFQTs7Ozs7Ozs7OztBQVFBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFBQTtBQUNBO0FBQ0E7QUFFQTs7Ozs7OztBQUtBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFFQTs7Ozs7OztBQUtBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQVJBIiwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./src/lib/util/path-utils.js\n");
- /***/ }),
- /***/ "./src/lib/util/removeNullPropertyFromObject.js":
- /*!******************************************************!*\
- !*** ./src/lib/util/removeNullPropertyFromObject.js ***!
- \******************************************************/
- /*! no static exports found */
- /***/ (function(module, exports) {
- eval("// remove property if value is null\nconst removeNullPropertyFromObject = object => {\n for (const [key, value] of Object.entries(object)) {\n if (value == null) {\n delete object[key];\n }\n }\n\n return object;\n};\n\nmodule.exports = removeNullPropertyFromObject;//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9zcmMvbGliL3V0aWwvcmVtb3ZlTnVsbFByb3BlcnR5RnJvbU9iamVjdC5qcy5qcyIsInNvdXJjZXMiOlsid2VicGFjazovLy8uL3NyYy9saWIvdXRpbC9yZW1vdmVOdWxsUHJvcGVydHlGcm9tT2JqZWN0LmpzPzlkZWIiXSwic291cmNlc0NvbnRlbnQiOlsiLy8gcmVtb3ZlIHByb3BlcnR5IGlmIHZhbHVlIGlzIG51bGxcblxuY29uc3QgcmVtb3ZlTnVsbFByb3BlcnR5RnJvbU9iamVjdCA9IChvYmplY3QpID0+IHtcblxuICBmb3IgKGNvbnN0IFtrZXksIHZhbHVlXSBvZiBPYmplY3QuZW50cmllcyhvYmplY3QpKSB7XG4gICAgaWYgKHZhbHVlID09IG51bGwpIHsgZGVsZXRlIG9iamVjdFtrZXldIH1cbiAgfVxuXG4gIHJldHVybiBvYmplY3Q7XG59O1xuXG5tb2R1bGUuZXhwb3J0cyA9IHJlbW92ZU51bGxQcm9wZXJ0eUZyb21PYmplY3Q7XG4iXSwibWFwcGluZ3MiOiJBQUFBO0FBRUE7QUFFQTtBQUNBO0FBQUE7QUFBQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSIsInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./src/lib/util/removeNullPropertyFromObject.js\n");
- /***/ }),
- /***/ "./src/lib/util/template-checker.js":
- /*!******************************************!*\
- !*** ./src/lib/util/template-checker.js ***!
- \******************************************/
- /*! no static exports found */
- /***/ (function(module, exports) {
- eval("/**\n * templateChecker\n */\nfunction checkTemplatePath(path) {\n if (path.match(/.*\\/_{1,2}template$/)) {\n return true;\n }\n\n return false;\n}\n\nmodule.exports = checkTemplatePath;//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9zcmMvbGliL3V0aWwvdGVtcGxhdGUtY2hlY2tlci5qcy5qcyIsInNvdXJjZXMiOlsid2VicGFjazovLy8uL3NyYy9saWIvdXRpbC90ZW1wbGF0ZS1jaGVja2VyLmpzP2M0MmQiXSwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiB0ZW1wbGF0ZUNoZWNrZXJcbiAqL1xuXG5mdW5jdGlvbiBjaGVja1RlbXBsYXRlUGF0aChwYXRoKSB7XG4gIGlmIChwYXRoLm1hdGNoKC8uKlxcL197MSwyfXRlbXBsYXRlJC8pKSB7XG4gICAgcmV0dXJuIHRydWU7XG4gIH1cblxuICByZXR1cm4gZmFsc2U7XG59XG5cbm1vZHVsZS5leHBvcnRzID0gY2hlY2tUZW1wbGF0ZVBhdGg7XG4iXSwibWFwcGluZ3MiOiJBQUFBOzs7QUFJQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EiLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./src/lib/util/template-checker.js\n");
- /***/ }),
- /***/ "./src/lib/util/toArrayIfNot.js":
- /*!**************************************!*\
- !*** ./src/lib/util/toArrayIfNot.js ***!
- \**************************************/
- /*! no static exports found */
- /***/ (function(module, exports) {
- eval("// converts non-array item to array\nconst toArrayIfNot = item => {\n if (item == null) {\n return [];\n }\n\n if (Array.isArray(item)) {\n return item;\n }\n\n return [item];\n};\n\nmodule.exports = toArrayIfNot;//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9zcmMvbGliL3V0aWwvdG9BcnJheUlmTm90LmpzLmpzIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vLy4vc3JjL2xpYi91dGlsL3RvQXJyYXlJZk5vdC5qcz9jYmI5Il0sInNvdXJjZXNDb250ZW50IjpbIi8vIGNvbnZlcnRzIG5vbi1hcnJheSBpdGVtIHRvIGFycmF5XG5cbmNvbnN0IHRvQXJyYXlJZk5vdCA9IChpdGVtKSA9PiB7XG4gIGlmIChpdGVtID09IG51bGwpIHtcbiAgICByZXR1cm4gW107XG4gIH1cblxuICBpZiAoQXJyYXkuaXNBcnJheShpdGVtKSkge1xuICAgIHJldHVybiBpdGVtO1xuICB9XG5cbiAgcmV0dXJuIFtpdGVtXTtcbn07XG5cbm1vZHVsZS5leHBvcnRzID0gdG9BcnJheUlmTm90O1xuIl0sIm1hcHBpbmdzIjoiQUFBQTtBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBIiwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./src/lib/util/toArrayIfNot.js\n");
- /***/ })
- }]);
|