UNPKG

@tai-kun/surrealdb

Version:

The SurrealDB SDK for JavaScript

91 lines (89 loc) 23.6 kB
"use strict"; var __defProp = Object.defineProperty; var __getOwnPropDesc = Object.getOwnPropertyDescriptor; var __getOwnPropNames = Object.getOwnPropertyNames; var __hasOwnProp = Object.prototype.hasOwnProperty; var __name = (target, value) => __defProp(target, "name", { value, configurable: true }); var __export = (target, all) => { for (var name in all) __defProp(target, name, { get: all[name], enumerable: true }); }; var __copyProps = (to, from, except, desc) => { if (from && typeof from === "object" || typeof from === "function") { for (let key of __getOwnPropNames(from)) if (!__hasOwnProp.call(to, key) && key !== except) __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable }); } return to; }; var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod); // src/cbor/spec.ts var spec_exports = {}; __export(spec_exports, { AI_EIGHT_BYTES: () => AI_EIGHT_BYTES, AI_FOUR_BYTES: () => AI_FOUR_BYTES, AI_INDEFINITE_NUM_BYTES: () => AI_INDEFINITE_NUM_BYTES, AI_ONE_BYTE: () => AI_ONE_BYTE, AI_SIMPLE_FALSE: () => AI_SIMPLE_FALSE, AI_SIMPLE_NULL: () => AI_SIMPLE_NULL, AI_SIMPLE_TRUE: () => AI_SIMPLE_TRUE, AI_SIMPLE_UNDEFINED: () => AI_SIMPLE_UNDEFINED, AI_TWO_BYTES: () => AI_TWO_BYTES, BREAK: () => BREAK, CBOR_MAX_UNSIGNED_INTEGER: () => CBOR_MAX_UNSIGNED_INTEGER, CBOR_MIN_NEGATIVE_INTEGER: () => CBOR_MIN_NEGATIVE_INTEGER, HEADER_FALSE: () => HEADER_FALSE, HEADER_FLOAT_DOUBLE: () => HEADER_FLOAT_DOUBLE, HEADER_FLOAT_HALF: () => HEADER_FLOAT_HALF, HEADER_NULL: () => HEADER_NULL, HEADER_TRUE: () => HEADER_TRUE, HEADER_UNDEFINED: () => HEADER_UNDEFINED, JS_MAX_SAFE_UNSIGNED_BIG_INTEGER: () => JS_MAX_SAFE_UNSIGNED_BIG_INTEGER, JS_MAX_SAFE_UNSIGNED_INTEGER: () => JS_MAX_SAFE_UNSIGNED_INTEGER, MT_ARRAY: () => MT_ARRAY, MT_BYTE_STRING: () => MT_BYTE_STRING, MT_MAP: () => MT_MAP, MT_NEGATIVE_INTEGER: () => MT_NEGATIVE_INTEGER, MT_SIMPLE_FLOAT: () => MT_SIMPLE_FLOAT, MT_TAG: () => MT_TAG, MT_UNSIGNED_INTEGER: () => MT_UNSIGNED_INTEGER, MT_UTF8_STRING: () => MT_UTF8_STRING, Simple: () => Simple }); module.exports = __toCommonJS(spec_exports); var MT_UNSIGNED_INTEGER = 0; var MT_NEGATIVE_INTEGER = 1; var MT_BYTE_STRING = 2; var MT_UTF8_STRING = 3; var MT_ARRAY = 4; var MT_MAP = 5; var MT_TAG = 6; var MT_SIMPLE_FLOAT = 7; var AI_SIMPLE_FALSE = 20; var AI_SIMPLE_TRUE = 21; var AI_SIMPLE_NULL = 22; var AI_SIMPLE_UNDEFINED = 23; var AI_ONE_BYTE = 24; var AI_TWO_BYTES = 25; var AI_FOUR_BYTES = 26; var AI_EIGHT_BYTES = 27; var AI_INDEFINITE_NUM_BYTES = 31; var BREAK = Symbol.for("@tai-kun/surrealdb/cbor/break"); var CBOR_MAX_UNSIGNED_INTEGER = 18446744073709551615n; var CBOR_MIN_NEGATIVE_INTEGER = -18446744073709551616n; var JS_MAX_SAFE_UNSIGNED_INTEGER = 9007199254740991; var JS_MAX_SAFE_UNSIGNED_BIG_INTEGER = 9007199254740991n; var HEADER_FLOAT_HALF = 249; var HEADER_FLOAT_DOUBLE = 251; var HEADER_FALSE = 244; var HEADER_TRUE = 245; var HEADER_NULL = 246; var HEADER_UNDEFINED = 247; var _Simple = class _Simple { constructor(value) { this.value = value; } }; __name(_Simple, "Simple"); var Simple = _Simple; //# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vc3JjL2Nib3Ivc3BlYy50cyJdLAogICJzb3VyY2VzQ29udGVudCI6IFsiZXhwb3J0IGNvbnN0IE1UX1VOU0lHTkVEX0lOVEVHRVIgPSAwIGFzIGNvbnN0O1xuZXhwb3J0IGNvbnN0IE1UX05FR0FUSVZFX0lOVEVHRVIgPSAxIGFzIGNvbnN0O1xuZXhwb3J0IGNvbnN0IE1UX0JZVEVfU1RSSU5HID0gMiBhcyBjb25zdDtcbmV4cG9ydCBjb25zdCBNVF9VVEY4X1NUUklORyA9IDMgYXMgY29uc3Q7XG5leHBvcnQgY29uc3QgTVRfQVJSQVkgPSA0IGFzIGNvbnN0O1xuZXhwb3J0IGNvbnN0IE1UX01BUCA9IDUgYXMgY29uc3Q7XG5leHBvcnQgY29uc3QgTVRfVEFHID0gNiBhcyBjb25zdDtcbmV4cG9ydCBjb25zdCBNVF9TSU1QTEVfRkxPQVQgPSA3IGFzIGNvbnN0O1xuXG5leHBvcnQgY29uc3QgQUlfU0lNUExFX0ZBTFNFID0gMjAgYXMgY29uc3Q7XG5leHBvcnQgY29uc3QgQUlfU0lNUExFX1RSVUUgPSAyMSBhcyBjb25zdDtcbmV4cG9ydCBjb25zdCBBSV9TSU1QTEVfTlVMTCA9IDIyIGFzIGNvbnN0O1xuZXhwb3J0IGNvbnN0IEFJX1NJTVBMRV9VTkRFRklORUQgPSAyMyBhcyBjb25zdDtcblxuZXhwb3J0IGNvbnN0IEFJX09ORV9CWVRFID0gMjQgYXMgY29uc3Q7XG5leHBvcnQgY29uc3QgQUlfVFdPX0JZVEVTID0gMjUgYXMgY29uc3Q7XG5leHBvcnQgY29uc3QgQUlfRk9VUl9CWVRFUyA9IDI2IGFzIGNvbnN0O1xuZXhwb3J0IGNvbnN0IEFJX0VJR0hUX0JZVEVTID0gMjcgYXMgY29uc3Q7XG5leHBvcnQgY29uc3QgQUlfSU5ERUZJTklURV9OVU1fQllURVMgPSAzMSBhcyBjb25zdDtcblxuZXhwb3J0IGNvbnN0IEJSRUFLID0gU3ltYm9sLmZvcihcIkB0YWkta3VuL3N1cnJlYWxkYi9jYm9yL2JyZWFrXCIpO1xuXG5leHBvcnQgY29uc3QgQ0JPUl9NQVhfVU5TSUdORURfSU5URUdFUiA9IDE4NDQ2NzQ0MDczNzA5NTUxNjE1bjsgLy8gMl42NC0xXG5leHBvcnQgY29uc3QgQ0JPUl9NSU5fTkVHQVRJVkVfSU5URUdFUiA9IC0xODQ0Njc0NDA3MzcwOTU1MTYxNm47IC8vIC0oMl42NClcblxuZXhwb3J0IGNvbnN0IEpTX01BWF9TQUZFX1VOU0lHTkVEX0lOVEVHRVIgPSA5MDA3MTk5MjU0NzQwOTkxOyAvLyAyXjUzLTFcbmV4cG9ydCBjb25zdCBKU19NQVhfU0FGRV9VTlNJR05FRF9CSUdfSU5URUdFUiA9IDkwMDcxOTkyNTQ3NDA5OTFuOyAvLyAyXjUzLTFcblxuZXhwb3J0IGNvbnN0IEhFQURFUl9GTE9BVF9IQUxGID0gMHhmOTsgLy8gKE1UX1NJTVBMRV9GTE9BVCA8PCA1KSB8IEFJX1RXT19CWVRFUztcbi8vIGV4cG9ydCBjb25zdCBIRUFERVJfRkxPQVRfU0lOR0xFID0gMHhmYTsgLy8gKE1UX1NJTVBMRV9GTE9BVCA8PCA1KSB8IEFJX0ZPVVJfQllURVM7XG5leHBvcnQgY29uc3QgSEVBREVSX0ZMT0FUX0RPVUJMRSA9IDB4ZmI7IC8vIChNVF9TSU1QTEVfRkxPQVQgPDwgNSkgfCBBSV9FSUdIVF9CWVRFUztcbmV4cG9ydCBjb25zdCBIRUFERVJfRkFMU0UgPSAweGY0OyAvLyAoTVRfU0lNUExFX0ZMT0FUIDw8IDUpIHwgQUlfU0lNUExFX0ZBTFNFO1xuZXhwb3J0IGNvbnN0IEhFQURFUl9UUlVFID0gMHhmNTsgLy8gKE1UX1NJTVBMRV9GTE9BVCA8PCA1KSB8IEFJX1NJTVBMRV9UUlVFO1xuZXhwb3J0IGNvbnN0IEhFQURFUl9OVUxMID0gMHhmNjsgLy8gKE1UX1NJTVBMRV9GTE9BVCA8PCA1KSB8IEFJX1NJTVBMRV9OVUxMO1xuZXhwb3J0IGNvbnN0IEhFQURFUl9VTkRFRklORUQgPSAweGY3OyAvLyAoTVRfU0lNUExFX0ZMT0FUIDw8IDUpIHwgQUlfU0lNUExFX1VOREVGSU5FRDtcblxuLyoqXG4gKiBbQVBJIFJlZmVyZW5jZV0oaHR0cHM6Ly90YWkta3VuLmdpdGh1Yi5pby9zdXJyZWFsZGIuanMvdjIvYXBpL2Nib3Ivc2ltcGxlLylcbiAqL1xuZXhwb3J0IGNsYXNzIFNpbXBsZSB7XG4gIC8qKlxuICAgKiAwIH4gMTksIDMyIH4gMjU1XG4gICAqIEBzZWUgaHR0cHM6Ly93d3cucmZjLWVkaXRvci5vcmcvcmZjL3JmYzg5NDkuaHRtbCNuYW1lLXNpbXBsZS12YWx1ZXNcbiAgICovXG4gIHZhbHVlOiBudW1iZXI7XG5cbiAgY29uc3RydWN0b3IodmFsdWU6IG51bWJlcikge1xuICAgIHRoaXMudmFsdWUgPSB2YWx1ZTtcbiAgfVxufVxuXG4vKiogMyBCaXRzICgwIH4gNykgKi9cbmV4cG9ydCB0eXBlIE1ham9yVHlwZSA9XG4gIHwgdHlwZW9mIE1UX1VOU0lHTkVEX0lOVEVHRVJcbiAgfCB0eXBlb2YgTVRfTkVHQVRJVkVfSU5URUdFUlxuICB8IHR5cGVvZiBNVF9CWVRFX1NUUklOR1xuICB8IHR5cGVvZiBNVF9VVEY4X1NUUklOR1xuICB8IHR5cGVvZiBNVF9BUlJBWVxuICB8IHR5cGVvZiBNVF9NQVBcbiAgfCB0eXBlb2YgTVRfVEFHXG4gIHwgdHlwZW9mIE1UX1NJTVBMRV9GTE9BVDtcblxuLy8gZHByaW50LWlnbm9yZVxuZXhwb3J0IG5hbWVzcGFjZSBBZGRpdGlvbmFsSW5mbyB7XG4gIC8vIDAgfiAyM1xuICBleHBvcnQgdHlwZSBWYWx1ZSA9IFxuICAgIHwgIDAgfCAgMSB8ICAyIHwgIDMgfCAgNCB8ICA1IHwgIDYgfCAgN1xuICAgIHwgIDggfCAgOSB8IDEwIHwgMTEgfCAxMiB8IDEzIHwgMTQgfCAxNVxuICAgIHwgMTYgfCAxNyB8IDE4IHwgMTkgfCAyMCB8IDIxIHwgMjIgfCAyM1xuXG4gIC8vIDI0IH4gMjdcbiAgZXhwb3J0IHR5cGUgTnVtQnl0ZXMgPVxuICAgIHwgdHlwZW9mIEFJX09ORV9CWVRFXG4gICAgfCB0eXBlb2YgQUlfVFdPX0JZVEVTXG4gICAgfCB0eXBlb2YgQUlfRk9VUl9CWVRFU1xuICAgIHwgdHlwZW9mIEFJX0VJR0hUX0JZVEVTXG5cbiAgLy8gMjggfiAzMFxuICBleHBvcnQgdHlwZSBSZXNlcnZlZEZvckZ1dHVyZSA9IDI4IHwgMjkgfCAzMFxuXG4gIC8vIDMxXG4gIGV4cG9ydCB0eXBlIEluZGVmaW5pdGUgPSB0eXBlb2YgQUlfSU5ERUZJTklURV9OVU1fQllURVNcbn1cblxuLyoqIDUgQml0cyAoMCB+IDMxKSAqL1xuLy8gZHByaW50LWlnbm9yZVxuZXhwb3J0IHR5cGUgQWRkaXRpb25hbEluZm8gPVxuICB8IEFkZGl0aW9uYWxJbmZvLlZhbHVlXG4gIHwgQWRkaXRpb25hbEluZm8uTnVtQnl0ZXNcbiAgfCBBZGRpdGlvbmFsSW5mby5SZXNlcnZlZEZvckZ1dHVyZVxuICB8IEFkZGl0aW9uYWxJbmZvLkluZGVmaW5pdGVcblxuZXhwb3J0IHR5cGUgRGF0YUl0ZW1WYWx1ZSA9XG4gIHwgbnVtYmVyXG4gIHwgYmlnaW50XG4gIHwgc3RyaW5nXG4gIHwgVWludDhBcnJheVxuICB8IGJvb2xlYW5cbiAgfCBudWxsXG4gIHwgdW5kZWZpbmVkXG4gIHwgdHlwZW9mIEJSRUFLXG4gIHwgU2ltcGxlO1xuXG5leHBvcnQgbmFtZXNwYWNlIERhdGFJdGVtIHtcbiAgLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG4gIC8vXG4gIC8vIE1ham9yIFR5cGUgMCAoVW5zaWduZWQgaW50ZWdlcilcbiAgLy9cbiAgLy8gaHR0cHM6Ly93d3cucmZjLWVkaXRvci5vcmcvcmZjL3JmYzg5NDkuaHRtbCNzZWN0aW9uLTMuMS0yLjJcbiAgLy9cbiAgLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG5cbiAgZXhwb3J0IG5hbWVzcGFjZSBVbnNpZ25lZEludGVnZXIge1xuICAgIGV4cG9ydCBpbnRlcmZhY2UgVGlueSB7XG4gICAgICBtdDogdHlwZW9mIE1UX1VOU0lHTkVEX0lOVEVHRVI7XG4gICAgICBhaTogQWRkaXRpb25hbEluZm8uVmFsdWU7XG4gICAgICAvKiogMCB+IDIzICovXG4gICAgICB2YWx1ZTogbnVtYmVyO1xuICAgICAgLy8gbGVuZ3RoOiAwO1xuICAgIH1cblxuICAgIGV4cG9ydCBpbnRlcmZhY2UgT25lQnl0ZSB7XG4gICAgICBtdDogdHlwZW9mIE1UX1VOU0lHTkVEX0lOVEVHRVI7XG4gICAgICBhaTogdHlwZW9mIEFJX09ORV9CWVRFO1xuICAgICAgLyoqIDI0IH4gMl44LTEgKi9cbiAgICAgIHZhbHVlOiBudW1iZXI7XG4gICAgICAvLyBsZW5ndGg6IDE7XG4gICAgfVxuXG4gICAgZXhwb3J0IGludGVyZmFjZSBUd29CeXRlcyB7XG4gICAgICBtdDogdHlwZW9mIE1UX1VOU0lHTkVEX0lOVEVHRVI7XG4gICAgICBhaTogdHlwZW9mIEFJX1RXT19CWVRFUztcbiAgICAgIC8qKiAyXjggfiAyXjE2LTEgKi9cbiAgICAgIHZhbHVlOiBudW1iZXI7XG4gICAgICAvLyBsZW5ndGg6IDI7XG4gICAgfVxuXG4gICAgZXhwb3J0IGludGVyZmFjZSBGb3VyQnl0ZXMge1xuICAgICAgbXQ6IHR5cGVvZiBNVF9VTlNJR05FRF9JTlRFR0VSO1xuICAgICAgYWk6IHR5cGVvZiBBSV9GT1VSX0JZVEVTO1xuICAgICAgLyoqIDJeMTYgfiAyXjMyLTEgKi9cbiAgICAgIHZhbHVlOiBudW1iZXI7XG4gICAgICAvLyBsZW5ndGg6IDQ7XG4gICAgfVxuXG4gICAgZXhwb3J0IGludGVyZmFjZSBFaWdodEJ5dGVzIHtcbiAgICAgIG10OiB0eXBlb2YgTVRfVU5TSUdORURfSU5URUdFUjtcbiAgICAgIGFpOiB0eXBlb2YgQUlfRUlHSFRfQllURVM7XG4gICAgICAvKiogMl4zMiB+IDJeNjQtMSAqL1xuICAgICAgdmFsdWU6IG51bWJlciB8IGJpZ2ludDtcbiAgICAgIC8vIGxlbmd0aDogODtcbiAgICB9XG4gIH1cblxuICBleHBvcnQgdHlwZSBVbnNpZ25lZEludGVnZXIgPVxuICAgIHwgVW5zaWduZWRJbnRlZ2VyLlRpbnlcbiAgICB8IFVuc2lnbmVkSW50ZWdlci5PbmVCeXRlXG4gICAgfCBVbnNpZ25lZEludGVnZXIuVHdvQnl0ZXNcbiAgICB8IFVuc2lnbmVkSW50ZWdlci5Gb3VyQnl0ZXNcbiAgICB8IFVuc2lnbmVkSW50ZWdlci5FaWdodEJ5dGVzO1xuXG4gIC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuICAvL1xuICAvLyBNYWpvciBUeXBlIDEgKE5lZ2F0aXZlIGludGVnZXIpXG4gIC8vXG4gIC8vIGh0dHBzOi8vd3d3LnJmYy1lZGl0b3Iub3JnL3JmYy9yZmM4OTQ5Lmh0bWwjc2VjdGlvbi0zLjEtMi40XG4gIC8vXG4gIC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuXG4gIGV4cG9ydCBuYW1lc3BhY2UgTmVnYXRpdmVJbnRlZ2VyIHtcbiAgICBleHBvcnQgaW50ZXJmYWNlIFRpbnkge1xuICAgICAgbXQ6IHR5cGVvZiBNVF9ORUdBVElWRV9JTlRFR0VSO1xuICAgICAgYWk6IEFkZGl0aW9uYWxJbmZvLlZhbHVlO1xuICAgICAgLyoqIC0yNCB+IC0xICovXG4gICAgICB2YWx1ZTogbnVtYmVyO1xuICAgICAgLy8gbGVuZ3RoOiAwO1xuICAgIH1cblxuICAgIGV4cG9ydCBpbnRlcmZhY2UgT25lQnl0ZSB7XG4gICAgICBtdDogdHlwZW9mIE1UX05FR0FUSVZFX0lOVEVHRVI7XG4gICAgICBhaTogdHlwZW9mIEFJX09ORV9CWVRFO1xuICAgICAgLyoqIC0oMl44KSB+IC0yNSAqL1xuICAgICAgdmFsdWU6IG51bWJlcjtcbiAgICAgIC8vIGxlbmd0aDogMTtcbiAgICB9XG5cbiAgICBleHBvcnQgaW50ZXJmYWNlIFR3b0J5dGVzIHtcbiAgICAgIG10OiB0eXBlb2YgTVRfTkVHQVRJVkVfSU5URUdFUjtcbiAgICAgIGFpOiB0eXBlb2YgQUlfVFdPX0JZVEVTO1xuICAgICAgLyoqIC0oMl4xNikgfiAtKDJeOCsxKSAqL1xuICAgICAgdmFsdWU6IG51bWJlcjtcbiAgICAgIC8vIGxlbmd0aDogMjtcbiAgICB9XG5cbiAgICBleHBvcnQgaW50ZXJmYWNlIEZvdXJCeXRlcyB7XG4gICAgICBtdDogdHlwZW9mIE1UX05FR0FUSVZFX0lOVEVHRVI7XG4gICAgICBhaTogdHlwZW9mIEFJX0ZPVVJfQllURVM7XG4gICAgICAvKiogLSgyXjMyKSB+IC0oMl4xNisxKSAqL1xuICAgICAgdmFsdWU6IG51bWJlcjtcbiAgICAgIC8vIGxlbmd0aDogNDtcbiAgICB9XG5cbiAgICBleHBvcnQgaW50ZXJmYWNlIEVpZ2h0Qnl0ZXMge1xuICAgICAgbXQ6IHR5cGVvZiBNVF9ORUdBVElWRV9JTlRFR0VSO1xuICAgICAgYWk6IHR5cGVvZiBBSV9FSUdIVF9CWVRFUztcbiAgICAgIC8qKiAtKDJeNjQpIH4gLSgyXjMyKzEpICovXG4gICAgICB2YWx1ZTogbnVtYmVyIHwgYmlnaW50O1xuICAgICAgLy8gbGVuZ3RoOiA4O1xuICAgIH1cbiAgfVxuXG4gIGV4cG9ydCB0eXBlIE5lZ2F0aXZlSW50ZWdlciA9XG4gICAgfCBOZWdhdGl2ZUludGVnZXIuVGlueVxuICAgIHwgTmVnYXRpdmVJbnRlZ2VyLk9uZUJ5dGVcbiAgICB8IE5lZ2F0aXZlSW50ZWdlci5Ud29CeXRlc1xuICAgIHwgTmVnYXRpdmVJbnRlZ2VyLkZvdXJCeXRlc1xuICAgIHwgTmVnYXRpdmVJbnRlZ2VyLkVpZ2h0Qnl0ZXM7XG5cbiAgLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG4gIC8vXG4gIC8vIE1ham9yIFR5cGUgMiAoQnl0ZSBzdHJpbmcpXG4gIC8vXG4gIC8vIGh0dHBzOi8vd3d3LnJmYy1lZGl0b3Iub3JnL3JmYy9yZmM4OTQ5Lmh0bWwjc2VjdGlvbi0zLjEtMi42XG4gIC8vXG4gIC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuXG4gIGV4cG9ydCBuYW1lc3BhY2UgQnl0ZVN0cmluZyB7XG4gICAgZXhwb3J0IGludGVyZmFjZSBGaXhlZExlbmd0aCB7XG4gICAgICBtdDogdHlwZW9mIE1UX0JZVEVfU1RSSU5HO1xuICAgICAgYWk6IEFkZGl0aW9uYWxJbmZvLlZhbHVlIHwgQWRkaXRpb25hbEluZm8uTnVtQnl0ZXM7XG4gICAgICB2YWx1ZTogVWludDhBcnJheTtcbiAgICAgIC8vIFx1OTE0RFx1NTIxN1x1MzA2RVx1NjcwMFx1NTkyN1x1OTU3N1x1MzA2RiAyXjUzIC0gMSAoTnVtYmVyLk1BWF9TQUZFX0lOVEVHRVIpIFx1MzA2QVx1MzA2RVx1MzA2N1x1MzAwMVxuICAgICAgLy8gYGxlbmd0aGAgXHUzMDZFXHU1NzhCXHUzMDZGIG51bWJlciBcdTU3OEJcdTMwNjdcdTU1NEZcdTk4NENcdTMwNkFcdTMwNDRcdTMwMDJcbiAgICAgIC8vIGxlbmd0aDogbnVtYmVyO1xuICAgIH1cblxuICAgIGV4cG9ydCBpbnRlcmZhY2UgSW5kZWZpbml0ZUxlbmd0aCB7XG4gICAgICBtdDogdHlwZW9mIE1UX0JZVEVfU1RSSU5HO1xuICAgICAgYWk6IEFkZGl0aW9uYWxJbmZvLkluZGVmaW5pdGU7XG4gICAgICAvKiogK0luZmluaXR5ICovXG4gICAgICB2YWx1ZTogbnVtYmVyO1xuICAgICAgLy8gbGVuZ3RoOiBudW1iZXI7IC8vIFBvc2l0aXZlIEluZmluaXR5XG4gICAgfVxuICB9XG5cbiAgZXhwb3J0IHR5cGUgQnl0ZVN0cmluZyA9XG4gICAgfCBCeXRlU3RyaW5nLkZpeGVkTGVuZ3RoXG4gICAgfCBCeXRlU3RyaW5nLkluZGVmaW5pdGVMZW5ndGg7XG5cbiAgLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG4gIC8vXG4gIC8vIE1ham9yIFR5cGUgMyAoVGV4dCBzdHJpbmcgZW5jb2RlZCBhcyBVVEYtOClcbiAgLy9cbiAgLy8gaHR0cHM6Ly93d3cucmZjLWVkaXRvci5vcmcvcmZjL3JmYzg5NDkuaHRtbCNzZWN0aW9uLTMuMS0yLjhcbiAgLy9cbiAgLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG5cbiAgZXhwb3J0IG5hbWVzcGFjZSBVdGY4U3RyaW5nIHtcbiAgICBleHBvcnQgaW50ZXJmYWNlIEZpeGVkTGVuZ3RoIHtcbiAgICAgIG10OiB0eXBlb2YgTVRfVVRGOF9TVFJJTkc7XG4gICAgICBhaTogQWRkaXRpb25hbEluZm8uVmFsdWUgfCBBZGRpdGlvbmFsSW5mby5OdW1CeXRlcztcbiAgICAgIHZhbHVlOiBzdHJpbmc7XG4gICAgICAvLyBsZW5ndGg6IG51bWJlcjtcbiAgICB9XG5cbiAgICBleHBvcnQgaW50ZXJmYWNlIEluZGVmaW5pdGVMZW5ndGgge1xuICAgICAgbXQ6IHR5cGVvZiBNVF9VVEY4X1NUUklORztcbiAgICAgIGFpOiBBZGRpdGlvbmFsSW5mby5JbmRlZmluaXRlO1xuICAgICAgLyoqICtJbmZpbml0eSAqL1xuICAgICAgdmFsdWU6IG51bWJlcjtcbiAgICAgIC8vIGxlbmd0aDogbnVtYmVyOyAvLyBQb3NpdGl2ZSBJbmZpbml0eVxuICAgIH1cbiAgfVxuXG4gIGV4cG9ydCB0eXBlIFV0ZjhTdHJpbmcgPVxuICAgIHwgVXRmOFN0cmluZy5GaXhlZExlbmd0aFxuICAgIHwgVXRmOFN0cmluZy5JbmRlZmluaXRlTGVuZ3RoO1xuXG4gIC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuICAvL1xuICAvLyBNYWpvciBUeXBlIDQgKEFycmF5IG9mIGRhdGEgaXRlbXMpXG4gIC8vXG4gIC8vIGh0dHBzOi8vd3d3LnJmYy1lZGl0b3Iub3JnL3JmYy9yZmM4OTQ5Lmh0bWwjc2VjdGlvbi0zLjEtMi4xMFxuICAvL1xuICAvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cblxuICBleHBvcnQgbmFtZXNwYWNlIEFycmF5IHtcbiAgICBleHBvcnQgaW50ZXJmYWNlIEZpeGVkTGVuZ3RoIHtcbiAgICAgIG10OiB0eXBlb2YgTVRfQVJSQVk7XG4gICAgICBhaTogQWRkaXRpb25hbEluZm8uVmFsdWUgfCBBZGRpdGlvbmFsSW5mby5OdW1CeXRlcztcbiAgICAgIC8vIFx1OTE0RFx1NTIxN1x1MzA2RVx1NjcwMFx1NTkyN1x1OTU3N1x1MzA2RiAyXjUzIC0gMSAoTnVtYmVyLk1BWF9TQUZFX0lOVEVHRVIpIFx1MzA2QVx1MzA2RVx1MzA2N1x1MzAwMVxuICAgICAgLy8gYHZhbHVlYCBcdTMwNkVcdTU3OEJcdTMwNkYgbnVtYmVyIFx1NTc4Qlx1MzA2N1x1NTU0Rlx1OTg0Q1x1MzA2QVx1MzA0NFx1MzAwMlxuICAgICAgLyoqIDAgfiAyXjUzIC0gMSAqL1xuICAgICAgdmFsdWU6IG51bWJlcjtcbiAgICAgIC8vIGxlbmd0aDogbnVtYmVyO1xuICAgIH1cblxuICAgIGV4cG9ydCBpbnRlcmZhY2UgSW5kZWZpbml0ZUxlbmd0aCB7XG4gICAgICBtdDogdHlwZW9mIE1UX0FSUkFZO1xuICAgICAgYWk6IEFkZGl0aW9uYWxJbmZvLkluZGVmaW5pdGU7XG4gICAgICAvKiogK0luZmluaXR5ICovXG4gICAgICB2YWx1ZTogbnVtYmVyO1xuICAgICAgLy8gbGVuZ3RoOiBudW1iZXI7IC8vIFBvc2l0aXZlIEluZmluaXR5XG4gICAgfVxuICB9XG5cbiAgZXhwb3J0IHR5cGUgQXJyYXkgPVxuICAgIHwgQXJyYXkuRml4ZWRMZW5ndGhcbiAgICB8IEFycmF5LkluZGVmaW5pdGVMZW5ndGg7XG5cbiAgLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG4gIC8vXG4gIC8vIE1ham9yIFR5cGUgNSAoTWFwIG9mIHBhaXJzIG9mIGRhdGEgaXRlbXMpXG4gIC8vXG4gIC8vIGh0dHBzOi8vd3d3LnJmYy1lZGl0b3Iub3JnL3JmYy9yZmM4OTQ5Lmh0bWwjc2VjdGlvbi0zLjEtMi4xMlxuICAvL1xuICAvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cblxuICBleHBvcnQgbmFtZXNwYWNlIE1hcCB7XG4gICAgZXhwb3J0IGludGVyZmFjZSBGaXhlZExlbmd0aCB7XG4gICAgICBtdDogdHlwZW9mIE1UX01BUDtcbiAgICAgIGFpOiBBZGRpdGlvbmFsSW5mby5WYWx1ZSB8IEFkZGl0aW9uYWxJbmZvLk51bUJ5dGVzO1xuICAgICAgLy8gXHUzMEFBXHUzMEQ2XHUzMEI4XHUzMEE3XHUzMEFGXHUzMEM4XHUzMDZFXHUzMEQ3XHUzMEVEXHUzMEQxXHUzMEM2XHUzMEEzXHU2NTcwXHUzMDZFXHU0RTBBXHU5NjUwXHU1MDI0XHUzMDkyXHU4QUJGXHUzMDc5XHUzMDY2XHUzMDdGXHUzMDhCXHUzMDY4XG4gICAgICAvLyAgIFY4OiAgICAgICA4XzQzMF8wMDBcbiAgICAgIC8vICAgRmlyZWZveDogMTZfODcwXzAwMFxuICAgICAgLy8gXHUzMDYwXHUzMDYzXHUzMDVGXHUzMDZFXHUzMDY3XHUzMDAxYHZhbHVlYCBcdTMwNkVcdTU3OEJcdTMwNkYgbnVtYmVyIFx1NTc4Qlx1MzA2N1x1NTU0Rlx1OTg0Q1x1MzA2QVx1MzA0NFx1MzA2OFx1NjAxRFx1MzA4Rlx1MzA4Q1x1MzA4Qlx1MzAwMlxuICAgICAgLy8gaHR0cHM6Ly9zdGFja292ZXJmbG93LmNvbS9xdWVzdGlvbnMvOTI4Mjg2OS9hcmUtdGhlcmUtbGltaXRzLXRvLXRoZS1udW1iZXItb2YtcHJvcGVydGllcy1pbi1hLWphdmFzY3JpcHQtb2JqZWN0XG4gICAgICAvKiogMCB+IEZpbml0ZSBwb3NpdGl2ZSBpbnRlZ2VyICovXG4gICAgICB2YWx1ZTogbnVtYmVyO1xuICAgICAgLy8gbGVuZ3RoOiBudW1iZXI7XG4gICAgfVxuXG4gICAgZXhwb3J0IGludGVyZmFjZSBJbmRlZmluaXRlTGVuZ3RoIHtcbiAgICAgIG10OiB0eXBlb2YgTVRfTUFQO1xuICAgICAgYWk6IEFkZGl0aW9uYWxJbmZvLkluZGVmaW5pdGU7XG4gICAgICAvKiogK0luZmluaXR5ICovXG4gICAgICB2YWx1ZTogbnVtYmVyO1xuICAgICAgLy8gbGVuZ3RoOiBudW1iZXI7IC8vIFBvc2l0aXZlIEluZmluaXR5XG4gICAgfVxuICB9XG5cbiAgZXhwb3J0IHR5cGUgTWFwID1cbiAgICB8IE1hcC5GaXhlZExlbmd0aFxuICAgIHwgTWFwLkluZGVmaW5pdGVMZW5ndGg7XG5cbiAgLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG4gIC8vXG4gIC8vIE1ham9yIFR5cGUgNiAoVGFnZ2VkIGRhdGEgaXRlbSlcbiAgLy9cbiAgLy8gaHR0cHM6Ly93d3cucmZjLWVkaXRvci5vcmcvcmZjL3JmYzg5NDkuaHRtbCNzZWN0aW9uLTMuMS0yLjE0XG4gIC8vXG4gIC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuXG4gIGV4cG9ydCBpbnRlcmZhY2UgVGFnIHtcbiAgICBtdDogdHlwZW9mIE1UX1RBRztcbiAgICBhaTogQWRkaXRpb25hbEluZm8uVmFsdWUgfCBBZGRpdGlvbmFsSW5mby5OdW1CeXRlcztcbiAgICB2YWx1ZTogbnVtYmVyIHwgYmlnaW50O1xuICAgIC8vIGxlbmd0aDogMCB8IDEgfCAyIHwgNCB8IDg7XG4gIH1cblxuICAvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbiAgLy9cbiAgLy8gTWFqb3IgVHlwZSA3IChGbG9hdGluZy1wb2ludCBudW1iZXJzIGFuZCBzaW1wbGUgdmFsdWVzLCBhcyB3ZWwgYXMgdGhlXG4gIC8vICAgICAgICAgICAgICAgXCJicmVha1wiIHN0b3AgY29kZSlcbiAgLy9cbiAgLy8gaHR0cHM6Ly93d3cucmZjLWVkaXRvci5vcmcvcmZjL3JmYzg5NDkuaHRtbCNzZWN0aW9uLTMuMS0yLjE2XG4gIC8vXG4gIC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuXG4gIGV4cG9ydCBuYW1lc3BhY2UgU2ltcGxlRmxvYXQge1xuICAgIGV4cG9ydCBuYW1lc3BhY2UgVW5hc3NpZ25lZCB7XG4gICAgICBleHBvcnQgaW50ZXJmYWNlIFRpbnkge1xuICAgICAgICBtdDogdHlwZW9mIE1UX1NJTVBMRV9GTE9BVDtcbiAgICAgICAgYWk6IEV4Y2x1ZGU8XG4gICAgICAgICAgQWRkaXRpb25hbEluZm8uVmFsdWUsXG4gICAgICAgICAgKEZhbHNlIHwgVHJ1ZSB8IE51bGwgfCBVbmRlZmluZWQpW1wiYWlcIl1cbiAgICAgICAgPjsgLy8gMCB+IDE5XG4gICAgICAgIC8qKlxuICAgICAgICAgKiAwIH4gMTlcbiAgICAgICAgICogQHNlZSBodHRwczovL3d3dy5yZmMtZWRpdG9yLm9yZy9yZmMvcmZjODk0OS5odG1sI25hbWUtc2ltcGxlLXZhbHVlc1xuICAgICAgICAgKi9cbiAgICAgICAgdmFsdWU6IFNpbXBsZTtcbiAgICAgICAgLy8gbGVuZ3RoOiAwO1xuICAgICAgfVxuXG4gICAgICAvLyB2YWx1ZTogMjAgICAgICAuLi4gZmFsc2VcbiAgICAgIC8vIHZhbHVlOiAyMSAgICAgIC4uLiB0cnVlXG4gICAgICAvLyB2YWx1ZTogMjIgICAgICAuLi4gbnVsbFxuICAgICAgLy8gdmFsdWU6IDIzICAgICAgLi4uIHVuZGVmaW5lZFxuICAgICAgLy8gdmFsdWU6IDI0IH4gMzEgLi4uIChyZXNlcnZlZClcblxuICAgICAgZXhwb3J0IGludGVyZmFjZSBTaG9ydCB7XG4gICAgICAgIG10OiB0eXBlb2YgTVRfU0lNUExFX0ZMT0FUO1xuICAgICAgICBhaTogdHlwZW9mIEFJX09ORV9CWVRFOyAvLyAyNFxuICAgICAgICAvKipcbiAgICAgICAgICogMzIgfiAyNTVcbiAgICAgICAgICogQHNlZSBodHRwczovL3d3dy5yZmMtZWRpdG9yLm9yZy9yZmMvcmZjODk0OS5odG1sI25hbWUtc2ltcGxlLXZhbHVlc1xuICAgICAgICAgKi9cbiAgICAgICAgdmFsdWU6IFNpbXBsZTtcbiAgICAgICAgLy8gbGVuZ3RoOiAxO1xuICAgICAgfVxuICAgIH1cblxuICAgIC8vIGFpOiAwIH4gMTksIDI0XG4gICAgZXhwb3J0IHR5cGUgVW5hc3NpZ25lZCA9XG4gICAgICB8IFVuYXNzaWduZWQuVGlueVxuICAgICAgfCBVbmFzc2lnbmVkLlNob3J0O1xuXG4gICAgLy8gYWk6IDIwXG4gICAgZXhwb3J0IGludGVyZmFjZSBGYWxzZSB7XG4gICAgICBtdDogdHlwZW9mIE1UX1NJTVBMRV9GTE9BVDtcbiAgICAgIGFpOiB0eXBlb2YgQUlfU0lNUExFX0ZBTFNFO1xuICAgICAgdmFsdWU6IGZhbHNlOyAvLyBDb252ZXJ0ZWQgZnJvbSAyMFxuICAgICAgLy8gbGVuZ3RoOiAwO1xuICAgIH1cblxuICAgIC8vIGFpOiAyMVxuICAgIGV4cG9ydCBpbnRlcmZhY2UgVHJ1ZSB7XG4gICAgICBtdDogdHlwZW9mIE1UX1NJTVBMRV9GTE9BVDtcbiAgICAgIGFpOiB0eXBlb2YgQUlfU0lNUExFX1RSVUU7XG4gICAgICB2YWx1ZTogdHJ1ZTsgLy8gQ29udmVydGVkIGZyb20gMjFcbiAgICAgIC8vIGxlbmd0aDogMDtcbiAgICB9XG5cbiAgICAvLyBhaTogMjJcbiAgICBleHBvcnQgaW50ZXJmYWNlIE51bGwge1xuICAgICAgbXQ6IHR5cGVvZiBNVF9TSU1QTEVfRkxPQVQ7XG4gICAgICBhaTogdHlwZW9mIEFJX1NJTVBMRV9OVUxMO1xuICAgICAgdmFsdWU6IG51bGw7IC8vIENvbnZlcnRlZCBmcm9tIDIyXG4gICAgICAvLyBsZW5ndGg6IDA7XG4gICAgfVxuXG4gICAgLy8gYWk6IDIzXG4gICAgZXhwb3J0IGludGVyZmFjZSBVbmRlZmluZWQge1xuICAgICAgbXQ6IHR5cGVvZiBNVF9TSU1QTEVfRkxPQVQ7XG4gICAgICBhaTogdHlwZW9mIEFJX1NJTVBMRV9VTkRFRklORUQ7XG4gICAgICB2YWx1ZTogdW5kZWZpbmVkOyAvLyBDb252ZXJ0ZWQgZnJvbSAyM1xuICAgICAgLy8gbGVuZ3RoOiAwO1xuICAgIH1cblxuICAgIC8vIGFpOiAyNFxuICAgIC8vIFVuYXNzaWduZWQuU2hvcnRcblxuICAgIGV4cG9ydCBuYW1lc3BhY2UgRmxvYXQge1xuICAgICAgZXhwb3J0IGludGVyZmFjZSBIYWxmIHtcbiAgICAgICAgbXQ6IHR5cGVvZiBNVF9TSU1QTEVfRkxPQVQ7XG4gICAgICAgIGFpOiB0eXBlb2YgQUlfVFdPX0JZVEVTOyAvLyAyNVxuICAgICAgICB2YWx1ZTogbnVtYmVyO1xuICAgICAgICAvLyBsZW5ndGg6IDI7XG4gICAgICB9XG5cbiAgICAgIGV4cG9ydCBpbnRlcmZhY2UgU2luZ2xlIHtcbiAgICAgICAgbXQ6IHR5cGVvZiBNVF9TSU1QTEVfRkxPQVQ7XG4gICAgICAgIGFpOiB0eXBlb2YgQUlfRk9VUl9CWVRFUzsgLy8gMjZcbiAgICAgICAgdmFsdWU6IG51bWJlcjtcbiAgICAgICAgLy8gbGVuZ3RoOiA0O1xuICAgICAgfVxuXG4gICAgICBleHBvcnQgaW50ZXJmYWNlIERvdWJsZSB7XG4gICAgICAgIG10OiB0eXBlb2YgTVRfU0lNUExFX0ZMT0FUO1xuICAgICAgICBhaTogdHlwZW9mIEFJX0VJR0hUX0JZVEVTOyAvLyAyN1xuICAgICAgICB2YWx1ZTogbnVtYmVyO1xuICAgICAgICAvLyBsZW5ndGg6IDg7XG4gICAgICB9XG4gICAgfVxuXG4gICAgLy8gYWk6IDI1IH4gMjdcbiAgICBleHBvcnQgdHlwZSBGbG9hdCA9XG4gICAgICB8IEZsb2F0LkhhbGZcbiAgICAgIHwgRmxvYXQuU2luZ2xlXG4gICAgICB8IEZsb2F0LkRvdWJsZTtcblxuICAgIC8vIGFpOiAyOCB+IDMwXG4gICAgLy8gQWRkaXRpb25hbEluZm8uUmVzZXJ2ZWRGb3JGdXR1cmVcblxuICAgIC8vIGFpOiAzMVxuICAgIGV4cG9ydCBpbnRlcmZhY2UgQnJlYWsge1xuICAgICAgbXQ6IHR5cGVvZiBNVF9TSU1QTEVfRkxPQVQ7XG4gICAgICBhaTogdHlwZW9mIEFJX0lOREVGSU5JVEVfTlVNX0JZVEVTOyAvLyAzMVxuICAgICAgdmFsdWU6IHR5cGVvZiBCUkVBSztcbiAgICAgIC8vIGxlbmd0aDogMDtcbiAgICB9XG4gIH1cblxuICBleHBvcnQgdHlwZSBTaW1wbGVGbG9hdCA9XG4gICAgfCBTaW1wbGVGbG9hdC5VbmFzc2lnbmVkXG4gICAgfCBTaW1wbGVGbG9hdC5GYWxzZVxuICAgIHwgU2ltcGxlRmxvYXQuVHJ1ZVxuICAgIHwgU2ltcGxlRmxvYXQuTnVsbFxuICAgIHwgU2ltcGxlRmxvYXQuVW5kZWZpbmVkXG4gICAgfCBTaW1wbGVGbG9hdC5GbG9hdFxuICAgIHwgU2ltcGxlRmxvYXQuQnJlYWs7XG59XG5cbmV4cG9ydCB0eXBlIERhdGFJdGVtID1cbiAgfCBEYXRhSXRlbS5VbnNpZ25lZEludGVnZXJcbiAgfCBEYXRhSXRlbS5OZWdhdGl2ZUludGVnZXJcbiAgfCBEYXRhSXRlbS5CeXRlU3RyaW5nXG4gIHwgRGF0YUl0ZW0uVXRmOFN0cmluZ1xuICB8IERhdGFJdGVtLkFycmF5XG4gIHwgRGF0YUl0ZW0uTWFwXG4gIHwgRGF0YUl0ZW0uVGFnXG4gIHwgRGF0YUl0ZW0uU2ltcGxlRmxvYXQ7XG4iXSwKICAibWFwcGluZ3MiOiAiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBTyxJQUFNLHNCQUFzQjtBQUM1QixJQUFNLHNCQUFzQjtBQUM1QixJQUFNLGlCQUFpQjtBQUN2QixJQUFNLGlCQUFpQjtBQUN2QixJQUFNLFdBQVc7QUFDakIsSUFBTSxTQUFTO0FBQ2YsSUFBTSxTQUFTO0FBQ2YsSUFBTSxrQkFBa0I7QUFFeEIsSUFBTSxrQkFBa0I7QUFDeEIsSUFBTSxpQkFBaUI7QUFDdkIsSUFBTSxpQkFBaUI7QUFDdkIsSUFBTSxzQkFBc0I7QUFFNUIsSUFBTSxjQUFjO0FBQ3BCLElBQU0sZUFBZTtBQUNyQixJQUFNLGdCQUFnQjtBQUN0QixJQUFNLGlCQUFpQjtBQUN2QixJQUFNLDBCQUEwQjtBQUVoQyxJQUFNLFFBQVEsT0FBTyxJQUFJLCtCQUErQjtBQUV4RCxJQUFNLDRCQUE0QjtBQUNsQyxJQUFNLDRCQUE0QixDQUFDO0FBRW5DLElBQU0sK0JBQStCO0FBQ3JDLElBQU0sbUNBQW1DO0FBRXpDLElBQU0sb0JBQW9CO0FBRTFCLElBQU0sc0JBQXNCO0FBQzVCLElBQU0sZUFBZTtBQUNyQixJQUFNLGNBQWM7QUFDcEIsSUFBTSxjQUFjO0FBQ3BCLElBQU0sbUJBQW1CO0FBS3pCLElBQU0sVUFBTixNQUFNLFFBQU87QUFBQSxFQU9sQixZQUFZLE9BQWU7QUFDekIsU0FBSyxRQUFRO0FBQUEsRUFDZjtBQUNGO0FBVm9CO0FBQWIsSUFBTSxTQUFOOyIsCiAgIm5hbWVzIjogW10KfQo=