@growsober/sdk 1.0.21 → 1.0.23

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/api/types.js CHANGED
@@ -11,4 +11,4 @@
11
11
  * 3. Rebuild SDK: npm run build
12
12
  */
13
13
  Object.defineProperty(exports, "__esModule", { value: true });
14
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHlwZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvYXBpL3R5cGVzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQTs7Ozs7Ozs7OztHQVVHIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBHcm93U29iZXIgU0RLIFR5cGVzXG4gKlxuICogQWxsIHR5cGVzIGFyZSBkZXJpdmVkIGZyb20gdGhlIEBncm93c29iZXIvdHlwZXMgcGFja2FnZSB3aGljaCBpcyBhdXRvLWdlbmVyYXRlZFxuICogZnJvbSB0aGUgQVBJIE9wZW5BUEkgc3BlY2lmaWNhdGlvbi4gVGhpcyBlbnN1cmVzIHNpbmdsZSBzb3VyY2Ugb2YgdHJ1dGggZnJvbSBQcmlzbWEuXG4gKlxuICogVG8gcmVnZW5lcmF0ZSB0eXBlczpcbiAqIDEuIFN0YXJ0IHRoZSBBUEk6IGNkIC4uL2dyb3dzb2Jlci1hcGkgJiYgbnBtIHJ1biBzdGFydDpkZXZcbiAqIDIuIEdlbmVyYXRlIHR5cGVzOiBjZCAuLi9ncm93c29iZXItdHlwZXMgJiYgbnBtIHJ1biBnZW5lcmF0ZSAmJiBucG0gcnVuIGJ1aWxkXG4gKiAzLiBSZWJ1aWxkIFNESzogbnBtIHJ1biBidWlsZFxuICovXG5cbmltcG9ydCB0eXBlIHsgcGF0aHMsIGNvbXBvbmVudHMgfSBmcm9tICdAZ3Jvd3NvYmVyL3R5cGVzJztcblxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuLy8gVFlQRSBFWFRSQUNUSU9OIEhFTFBFUlNcbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuLyoqXG4gKiBFeHRyYWN0IHJlcXVlc3QgYm9keSB0eXBlIGZvciBhIGdpdmVuIGVuZHBvaW50IGFuZCBtZXRob2RcbiAqL1xuZXhwb3J0IHR5cGUgUmVxdWVzdEJvZHk8XG4gIFBhdGggZXh0ZW5kcyBrZXlvZiBwYXRocyxcbiAgTWV0aG9kIGV4dGVuZHMga2V5b2YgcGF0aHNbUGF0aF1cbj4gPSBwYXRoc1tQYXRoXVtNZXRob2RdIGV4dGVuZHMgeyByZXF1ZXN0Qm9keTogeyBjb250ZW50OiB7ICdhcHBsaWNhdGlvbi9qc29uJzogaW5mZXIgVCB9IH0gfVxuICA/IFRcbiAgOiBuZXZlcjtcblxuLyoqXG4gKiBFeHRyYWN0IHJlc3BvbnNlIHR5cGUgZm9yIGEgZ2l2ZW4gZW5kcG9pbnQsIG1ldGhvZCwgYW5kIHN0YXR1cyBjb2RlXG4gKi9cbmV4cG9ydCB0eXBlIFJlc3BvbnNlQm9keTxcbiAgUGF0aCBleHRlbmRzIGtleW9mIHBhdGhzLFxuICBNZXRob2QgZXh0ZW5kcyBrZXlvZiBwYXRoc1tQYXRoXSxcbiAgU3RhdHVzIGV4dGVuZHMgbnVtYmVyID0gMjAwXG4+ID0gcGF0aHNbUGF0aF1bTWV0aG9kXSBleHRlbmRzIHsgcmVzcG9uc2VzOiB7IFtLIGluIFN0YXR1c106IHsgY29udGVudDogeyAnYXBwbGljYXRpb24vanNvbic6IGluZmVyIFQgfSB9IH0gfVxuICA/IFRcbiAgOiBuZXZlcjtcblxuLyoqXG4gKiBFeHRyYWN0IHF1ZXJ5IHBhcmFtZXRlcnMgdHlwZSBmb3IgYSBnaXZlbiBlbmRwb2ludCBhbmQgbWV0aG9kXG4gKi9cbmV4cG9ydCB0eXBlIFF1ZXJ5UGFyYW1zPFxuICBQYXRoIGV4dGVuZHMga2V5b2YgcGF0aHMsXG4gIE1ldGhvZCBleHRlbmRzIGtleW9mIHBhdGhzW1BhdGhdXG4+ID0gcGF0aHNbUGF0aF1bTWV0aG9kXSBleHRlbmRzIHsgcGFyYW1ldGVyczogeyBxdWVyeT86IGluZmVyIFEgfSB9XG4gID8gUVxuICA6IFJlY29yZDxzdHJpbmcsIG5ldmVyPjtcblxuLyoqXG4gKiBFeHRyYWN0IHBhdGggcGFyYW1ldGVycyB0eXBlIGZvciBhIGdpdmVuIGVuZHBvaW50IGFuZCBtZXRob2RcbiAqL1xuZXhwb3J0IHR5cGUgUGF0aFBhcmFtczxcbiAgUGF0aCBleHRlbmRzIGtleW9mIHBhdGhzLFxuICBNZXRob2QgZXh0ZW5kcyBrZXlvZiBwYXRoc1tQYXRoXVxuPiA9IHBhdGhzW1BhdGhdW01ldGhvZF0gZXh0ZW5kcyB7IHBhcmFtZXRlcnM6IHsgcGF0aDogaW5mZXIgUCB9IH1cbiAgPyBQXG4gIDogUmVjb3JkPHN0cmluZywgbmV2ZXI+O1xuXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4vLyBFTlVNIFRZUEVTIChleHRyYWN0ZWQgZnJvbSBnZW5lcmF0ZWQgc2NoZW1hcyAtIHNpbmdsZSBzb3VyY2Ugb2YgdHJ1dGgpXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cbi8vIEJ1c2luZXNzL1ZlbnVlIHR5cGUgKHVzZWQgZm9yIGJvdGggQnVzaW5lc3MgYW5kIFZlbnVlIG1vZGVscylcbmV4cG9ydCB0eXBlIEJ1c2luZXNzVHlwZSA9IGNvbXBvbmVudHNbJ3NjaGVtYXMnXVsnQnVzaW5lc3NSZXNwb25zZUR0byddWyd0eXBlJ107XG5cbi8vIE93bmVyc2hpcCByb2xlc1xuZXhwb3J0IHR5cGUgVmVudWVPd25lclJvbGUgPSBjb21wb25lbnRzWydzY2hlbWFzJ11bJ1ZlbnVlT3duZXJSZXNwb25zZUR0byddWydyb2xlJ107XG5leHBvcnQgdHlwZSBCcmFuZE93bmVyUm9sZSA9IGNvbXBvbmVudHNbJ3NjaGVtYXMnXVsnQnJhbmRPd25lclJlc3BvbnNlRHRvJ11bJ3JvbGUnXTtcblxuLy8gRXZlbnQgdHlwZXNcbmV4cG9ydCB0eXBlIEdhdGhlcmluZ1R5cGUgPSBOb25OdWxsYWJsZTxjb21wb25lbnRzWydzY2hlbWFzJ11bJ0V2ZW50UmVzcG9uc2VEdG8nXVsnZ2F0aGVyaW5nVHlwZSddPjtcbmV4cG9ydCB0eXBlIEV2ZW50VmlzaWJpbGl0eSA9IGNvbXBvbmVudHNbJ3NjaGVtYXMnXVsnRXZlbnRSZXNwb25zZUR0byddWyd2aXNpYmlsaXR5J107XG5leHBvcnQgdHlwZSBFdmVudFN0YXR1cyA9IGNvbXBvbmVudHNbJ3NjaGVtYXMnXVsnRXZlbnRSZXNwb25zZUR0byddWydzdGF0dXMnXTtcblxuLy8gQ2hhdCByb2xlc1xuZXhwb3J0IHR5cGUgQ2hhdE1lbWJlclJvbGUgPSBjb21wb25lbnRzWydzY2hlbWFzJ11bJ0NoYXRNZW1iZXJSZXNwb25zZUR0byddWydyb2xlJ107XG5cbi8vIENvbnRlbnQgc3RhdHVzXG5leHBvcnQgdHlwZSBDb250ZW50U3RhdHVzID0gY29tcG9uZW50c1snc2NoZW1hcyddWydMaWJyYXJ5Q29udGVudFJlc3BvbnNlRHRvJ11bJ2NvbnRlbnRTdGF0dXMnXTtcblxuLy8gQmFkZ2UgdHlwZXNcbmV4cG9ydCB0eXBlIEJhZGdlVHlwZSA9IGNvbXBvbmVudHNbJ3NjaGVtYXMnXVsnQmFkZ2VSZXNwb25zZUR0byddWyd0eXBlJ107XG5cbi8vIE5vdGlmaWNhdGlvbiB0eXBlc1xuZXhwb3J0IHR5cGUgTm90aWZpY2F0aW9uVHlwZSA9IGNvbXBvbmVudHNbJ3NjaGVtYXMnXVsnTm90aWZpY2F0aW9uUmVzcG9uc2VEdG8nXVsndHlwZSddO1xuXG4vLyBTdHJlYWsgdHlwZXNcbmV4cG9ydCB0eXBlIFN0cmVha1R5cGUgPSBjb21wb25lbnRzWydzY2hlbWFzJ11bJ1N0cmVha1Jlc3BvbnNlRHRvJ11bJ3R5cGUnXTtcblxuLy8gQ3JhdmluZyB0cmlnZ2Vyc1xuZXhwb3J0IHR5cGUgQ3JhdmluZ1RyaWdnZXIgPSBOb25OdWxsYWJsZTxjb21wb25lbnRzWydzY2hlbWFzJ11bJ0NyYXZpbmdMb2dSZXNwb25zZUR0byddWyd0cmlnZ2VyVHlwZSddPjtcblxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuLy8gQVVUSCBUWVBFU1xuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG5leHBvcnQgdHlwZSBSZWdpc3RlclJlcXVlc3QgPSBjb21wb25lbnRzWydzY2hlbWFzJ11bJ1JlZ2lzdGVyRHRvJ107XG5leHBvcnQgdHlwZSBBdXRoUmVzcG9uc2UgPSBjb21wb25lbnRzWydzY2hlbWFzJ11bJ0F1dGhSZXNwb25zZUR0byddO1xuZXhwb3J0IHR5cGUgTG9naW5SZXF1ZXN0ID0gY29tcG9uZW50c1snc2NoZW1hcyddWydMb2dpbkR0byddO1xuZXhwb3J0IHR5cGUgUmVmcmVzaFRva2VuUmVxdWVzdCA9IGNvbXBvbmVudHNbJ3NjaGVtYXMnXVsnUmVmcmVzaFRva2VuRHRvJ107XG5leHBvcnQgdHlwZSBUb2tlblJlc3BvbnNlID0gY29tcG9uZW50c1snc2NoZW1hcyddWydUb2tlblJlc3BvbnNlRHRvJ107XG5leHBvcnQgdHlwZSBGaXJlYmFzZUF1dGhSZXF1ZXN0ID0gY29tcG9uZW50c1snc2NoZW1hcyddWydGaXJlYmFzZUF1dGhEdG8nXTtcbmV4cG9ydCB0eXBlIFNlbmRPdHBSZXF1ZXN0ID0gY29tcG9uZW50c1snc2NoZW1hcyddWydTZW5kT3RwRHRvJ107XG5leHBvcnQgdHlwZSBPdHBTZW50UmVzcG9uc2UgPSBjb21wb25lbnRzWydzY2hlbWFzJ11bJ090cFNlbnRSZXNwb25zZUR0byddO1xuZXhwb3J0IHR5cGUgVmVyaWZ5T3RwUmVxdWVzdCA9IGNvbXBvbmVudHNbJ3NjaGVtYXMnXVsnVmVyaWZ5T3RwRHRvJ107XG5cbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbi8vIFVTRVIgVFlQRVNcbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuZXhwb3J0IHR5cGUgVXNlclJlc3BvbnNlID0gY29tcG9uZW50c1snc2NoZW1hcyddWydVc2VyUmVzcG9uc2VEdG8nXTtcbmV4cG9ydCB0eXBlIFVzZXJQdWJsaWNSZXNwb25zZSA9IGNvbXBvbmVudHNbJ3NjaGVtYXMnXVsnVXNlclB1YmxpY1Jlc3BvbnNlRHRvJ107XG5leHBvcnQgdHlwZSBDcmVhdGVVc2VyUmVxdWVzdCA9IGNvbXBvbmVudHNbJ3NjaGVtYXMnXVsnQ3JlYXRlVXNlckR0byddO1xuZXhwb3J0IHR5cGUgVXBkYXRlVXNlclJlcXVlc3QgPSBjb21wb25lbnRzWydzY2hlbWFzJ11bJ1VwZGF0ZVVzZXJEdG8nXTtcblxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuLy8gSFVCIFRZUEVTXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cbmV4cG9ydCB0eXBlIEh1YlJlc3BvbnNlID0gY29tcG9uZW50c1snc2NoZW1hcyddWydIdWJSZXNwb25zZUR0byddO1xuZXhwb3J0IHR5cGUgQ3JlYXRlSHViUmVxdWVzdCA9IGNvbXBvbmVudHNbJ3NjaGVtYXMnXVsnQ3JlYXRlSHViRHRvJ107XG5leHBvcnQgdHlwZSBVcGRhdGVIdWJSZXF1ZXN0ID0gY29tcG9uZW50c1snc2NoZW1hcyddWydVcGRhdGVIdWJEdG8nXTtcblxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuLy8gRVZFTlQgVFlQRVNcbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuZXhwb3J0IHR5cGUgRXZlbnRSZXNwb25zZSA9IGNvbXBvbmVudHNbJ3NjaGVtYXMnXVsnRXZlbnRSZXNwb25zZUR0byddO1xuZXhwb3J0IHR5cGUgQ3JlYXRlRXZlbnRSZXF1ZXN0ID0gY29tcG9uZW50c1snc2NoZW1hcyddWydDcmVhdGVFdmVudER0byddO1xuZXhwb3J0IHR5cGUgVXBkYXRlRXZlbnRSZXF1ZXN0ID0gY29tcG9uZW50c1snc2NoZW1hcyddWydVcGRhdGVFdmVudER0byddO1xuXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4vLyBCT09LSU5HIFRZUEVTXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cbmV4cG9ydCB0eXBlIEJvb2tpbmdSZXNwb25zZSA9IGNvbXBvbmVudHNbJ3NjaGVtYXMnXVsnQm9va2luZ1Jlc3BvbnNlRHRvJ107XG5leHBvcnQgdHlwZSBDcmVhdGVCb29raW5nUmVxdWVzdCA9IGNvbXBvbmVudHNbJ3NjaGVtYXMnXVsnQ3JlYXRlQm9va2luZ0R0byddO1xuXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4vLyBMSUJSQVJZIFRZUEVTXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cbmV4cG9ydCB0eXBlIExpYnJhcnlDb250ZW50UmVzcG9uc2UgPSBjb21wb25lbnRzWydzY2hlbWFzJ11bJ0xpYnJhcnlDb250ZW50UmVzcG9uc2VEdG8nXTtcbmV4cG9ydCB0eXBlIExpYnJhcnlDb250ZW50RGV0YWlsUmVzcG9uc2UgPSBjb21wb25lbnRzWydzY2hlbWFzJ11bJ0xpYnJhcnlDb250ZW50RGV0YWlsUmVzcG9uc2VEdG8nXTtcbmV4cG9ydCB0eXBlIExpYnJhcnlQcm9ncmVzc1Jlc3BvbnNlID0gY29tcG9uZW50c1snc2NoZW1hcyddWydMaWJyYXJ5UHJvZ3Jlc3NSZXNwb25zZUR0byddO1xuZXhwb3J0IHR5cGUgQ29udGVudFR5cGUgPSBjb21wb25lbnRzWydzY2hlbWFzJ11bJ0xpYnJhcnlDb250ZW50UmVzcG9uc2VEdG8nXVsndHlwZSddO1xuXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4vLyBCVVNJTkVTUyAmIE9GRkVSIFRZUEVTIChMZWdhY3kpXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cbmV4cG9ydCB0eXBlIEJ1c2luZXNzUmVzcG9uc2UgPSBjb21wb25lbnRzWydzY2hlbWFzJ11bJ0J1c2luZXNzUmVzcG9uc2VEdG8nXTtcbmV4cG9ydCB0eXBlIE9mZmVyUmVzcG9uc2UgPSBjb21wb25lbnRzWydzY2hlbWFzJ11bJ09mZmVyUmVzcG9uc2VEdG8nXTtcbmV4cG9ydCB0eXBlIFJlZGVlbU9mZmVyUmVxdWVzdCA9IGNvbXBvbmVudHNbJ3NjaGVtYXMnXVsnUmVkZWVtT2ZmZXJEdG8nXTtcblxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuLy8gVkVOVUUgVFlQRVMgKGZyb20gZ2VuZXJhdGVkIE9wZW5BUEkgdHlwZXMpXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cbmV4cG9ydCB0eXBlIFZlbnVlUmVzcG9uc2UgPSBjb21wb25lbnRzWydzY2hlbWFzJ11bJ1ZlbnVlUmVzcG9uc2VEdG8nXTtcbmV4cG9ydCB0eXBlIFZlbnVlT3duZXJSZXNwb25zZSA9IGNvbXBvbmVudHNbJ3NjaGVtYXMnXVsnVmVudWVPd25lclJlc3BvbnNlRHRvJ107XG5cbi8vIFJlcXVlc3QgdHlwZXMgZm9yIHZlbnVlIG9wZXJhdGlvbnNcbmV4cG9ydCBpbnRlcmZhY2UgQ3JlYXRlVmVudWVSZXF1ZXN0IHtcbiAgbmFtZTogc3RyaW5nO1xuICBzbHVnOiBzdHJpbmc7XG4gIGRlc2NyaXB0aW9uPzogc3RyaW5nO1xuICB0eXBlOiBCdXNpbmVzc1R5cGU7XG4gIGhhc0FmRHJpbmtzPzogYm9vbGVhbjtcbiAgaXNBZlZlbnVlPzogYm9vbGVhbjtcbiAgYWZIaWdobGlnaHRzPzogc3RyaW5nW107XG4gIGFkZHJlc3M/OiBzdHJpbmc7XG4gIGNpdHlJZD86IHN0cmluZztcbiAgbG9jYXRpb25MYXQ/OiBudW1iZXI7XG4gIGxvY2F0aW9uTG9uZz86IG51bWJlcjtcbiAgcGhvbmU/OiBzdHJpbmc7XG4gIGVtYWlsPzogc3RyaW5nO1xuICB3ZWJzaXRlPzogc3RyaW5nO1xuICBpbnN0YWdyYW0/OiBzdHJpbmc7XG4gIHByb2ZpbGVJbWFnZT86IHN0cmluZztcbiAgYmFubmVySW1hZ2U/OiBzdHJpbmc7XG4gIHBob3Rvcz86IHN0cmluZ1tdO1xuICBvcGVuaW5nSG91cnM/OiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+O1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFVwZGF0ZVZlbnVlUmVxdWVzdCBleHRlbmRzIFBhcnRpYWw8Q3JlYXRlVmVudWVSZXF1ZXN0PiB7fVxuXG5leHBvcnQgaW50ZXJmYWNlIEFkZFZlbnVlT3duZXJSZXF1ZXN0IHtcbiAgdXNlcklkOiBzdHJpbmc7XG4gIHJvbGU6IFZlbnVlT3duZXJSb2xlO1xufVxuXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4vLyBDUkVBVE9SIFRZUEVTIChmcm9tIGdlbmVyYXRlZCBPcGVuQVBJIHR5cGVzKVxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG5leHBvcnQgdHlwZSBDcmVhdG9yUmVzcG9uc2UgPSBjb21wb25lbnRzWydzY2hlbWFzJ11bJ0NyZWF0b3JSZXNwb25zZUR0byddO1xuZXhwb3J0IHR5cGUgQ3JlYXRvckF2YWlsYWJpbGl0eVJlc3BvbnNlID0gY29tcG9uZW50c1snc2NoZW1hcyddWydDcmVhdG9yQXZhaWxhYmlsaXR5UmVzcG9uc2VEdG8nXTtcblxuZXhwb3J0IGludGVyZmFjZSBDcmVhdGVDcmVhdG9yUmVxdWVzdCB7XG4gIHNsdWc6IHN0cmluZztcbiAgZGlzcGxheU5hbWU6IHN0cmluZztcbiAgYmlvPzogc3RyaW5nO1xuICBhdmF0YXJVcmw/OiBzdHJpbmc7XG4gIGNpdHlJZHM/OiBzdHJpbmdbXTtcbiAgY2FuRmFjaWxpdGF0ZT86IGJvb2xlYW47XG4gIGNhbkNyZWF0ZUNvbnRlbnQ/OiBib29sZWFuO1xuICBpc0luZmx1ZW5jZXI/OiBib29sZWFuO1xuICBzcGVjaWFsdGllcz86IHN0cmluZ1tdO1xuICBjZXJ0aWZpY2F0aW9ucz86IHN0cmluZ1tdO1xuICBzZXNzaW9uUmF0ZT86IG51bWJlcjtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBVcGRhdGVDcmVhdG9yUmVxdWVzdCBleHRlbmRzIFBhcnRpYWw8Q3JlYXRlQ3JlYXRvclJlcXVlc3Q+IHt9XG5cbmV4cG9ydCBpbnRlcmZhY2UgQ3JlYXRlQXZhaWxhYmlsaXR5UmVxdWVzdCB7XG4gIGRheU9mV2Vlaz86IG51bWJlcjtcbiAgc3RhcnRUaW1lOiBzdHJpbmc7XG4gIGVuZFRpbWU6IHN0cmluZztcbiAgdGltZXpvbmU6IHN0cmluZztcbiAgaXNSZWN1cnJpbmc/OiBib29sZWFuO1xuICBzcGVjaWZpY0RhdGU/OiBzdHJpbmc7XG59XG5cbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbi8vIEdBVEhFUklORyBUWVBFIFRFTVBMQVRFUyAoZm9yIGZhY2lsaXRhdG9yIGV2ZW50IHR5cGVzKVxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG5leHBvcnQgdHlwZSBHYXRoZXJpbmdUeXBlUmVzcG9uc2UgPSBjb21wb25lbnRzWydzY2hlbWFzJ11bJ0dhdGhlcmluZ1R5cGVSZXNwb25zZUR0byddO1xuZXhwb3J0IHR5cGUgQ3JlYXRlR2F0aGVyaW5nVHlwZVJlcXVlc3QgPSBjb21wb25lbnRzWydzY2hlbWFzJ11bJ0NyZWF0ZUdhdGhlcmluZ1R5cGVEdG8nXTtcbmV4cG9ydCB0eXBlIFVwZGF0ZUdhdGhlcmluZ1R5cGVSZXF1ZXN0ID0gY29tcG9uZW50c1snc2NoZW1hcyddWydVcGRhdGVHYXRoZXJpbmdUeXBlRHRvJ107XG5cbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbi8vIEJSQU5EIFRZUEVTIChmcm9tIGdlbmVyYXRlZCBPcGVuQVBJIHR5cGVzKVxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG5leHBvcnQgdHlwZSBCcmFuZFJlc3BvbnNlID0gY29tcG9uZW50c1snc2NoZW1hcyddWydCcmFuZFJlc3BvbnNlRHRvJ107XG5leHBvcnQgdHlwZSBCcmFuZE93bmVyUmVzcG9uc2UgPSBjb21wb25lbnRzWydzY2hlbWFzJ11bJ0JyYW5kT3duZXJSZXNwb25zZUR0byddO1xuZXhwb3J0IHR5cGUgQnJhbmRDcmVhdG9yUmVzcG9uc2UgPSBjb21wb25lbnRzWydzY2hlbWFzJ11bJ0JyYW5kQ3JlYXRvclJlc3BvbnNlRHRvJ107XG5cbmV4cG9ydCBpbnRlcmZhY2UgQ3JlYXRlQnJhbmRSZXF1ZXN0IHtcbiAgc2x1Zzogc3RyaW5nO1xuICBuYW1lOiBzdHJpbmc7XG4gIGRlc2NyaXB0aW9uPzogc3RyaW5nO1xuICBsb2dvVXJsPzogc3RyaW5nO1xuICBiYW5uZXJVcmw/OiBzdHJpbmc7XG4gIHByaW1hcnlDb2xvcj86IHN0cmluZztcbiAgd2Vic2l0ZT86IHN0cmluZztcbiAgZW1haWw/OiBzdHJpbmc7XG4gIGluc3RhZ3JhbT86IHN0cmluZztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBVcGRhdGVCcmFuZFJlcXVlc3QgZXh0ZW5kcyBQYXJ0aWFsPENyZWF0ZUJyYW5kUmVxdWVzdD4ge31cblxuZXhwb3J0IGludGVyZmFjZSBBZGRCcmFuZE93bmVyUmVxdWVzdCB7XG4gIHVzZXJJZDogc3RyaW5nO1xuICByb2xlOiBCcmFuZE93bmVyUm9sZTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBBZGRCcmFuZENyZWF0b3JSZXF1ZXN0IHtcbiAgY3JlYXRvcklkOiBzdHJpbmc7XG4gIGNvbW1pc3Npb25SYXRlPzogbnVtYmVyO1xuICBpc0FjdGl2ZT86IGJvb2xlYW47XG4gIHN0YXJ0RGF0ZT86IHN0cmluZztcbiAgZW5kRGF0ZT86IHN0cmluZztcbn1cblxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuLy8gU1VCU0NSSVBUSU9OIFRZUEVTXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cbmV4cG9ydCB0eXBlIFN1YnNjcmlwdGlvblJlc3BvbnNlID0gY29tcG9uZW50c1snc2NoZW1hcyddWydTdWJzY3JpcHRpb25SZXNwb25zZUR0byddO1xuZXhwb3J0IHR5cGUgQ3JlYXRlQ2hlY2tvdXRSZXF1ZXN0ID0gY29tcG9uZW50c1snc2NoZW1hcyddWydDcmVhdGVDaGVja291dER0byddO1xuXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4vLyBOT1RJRklDQVRJT04gVFlQRVNcbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuZXhwb3J0IHR5cGUgTm90aWZpY2F0aW9uUmVzcG9uc2UgPSBjb21wb25lbnRzWydzY2hlbWFzJ11bJ05vdGlmaWNhdGlvblJlc3BvbnNlRHRvJ107XG5cbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbi8vIERFVklDRSBUT0tFTiBUWVBFU1xuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG5leHBvcnQgdHlwZSBSZWdpc3RlckRldmljZVRva2VuUmVxdWVzdCA9IGNvbXBvbmVudHNbJ3NjaGVtYXMnXVsnUmVnaXN0ZXJEZXZpY2VEdG8nXTtcblxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuLy8gU1VQUE9SVCBUWVBFU1xuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG4vLyBDaGVjay1pbnNcbmV4cG9ydCB0eXBlIENoZWNrSW5SZXNwb25zZSA9IGNvbXBvbmVudHNbJ3NjaGVtYXMnXVsnQ2hlY2tJblJlc3BvbnNlRHRvJ107XG5leHBvcnQgdHlwZSBDcmVhdGVDaGVja0luUmVxdWVzdCA9IGNvbXBvbmVudHNbJ3NjaGVtYXMnXVsnQ3JlYXRlQ2hlY2tJbkR0byddO1xuZXhwb3J0IHR5cGUgVXBkYXRlQ2hlY2tJblJlcXVlc3QgPSBjb21wb25lbnRzWydzY2hlbWFzJ11bJ1VwZGF0ZUNoZWNrSW5EdG8nXTtcbmV4cG9ydCB0eXBlIENoZWNrSW5TdHJlYWtSZXNwb25zZSA9IGNvbXBvbmVudHNbJ3NjaGVtYXMnXVsnQ2hlY2tJblN0cmVha0R0byddO1xuXG4vLyBXaW5zXG5leHBvcnQgdHlwZSBXaW5SZXNwb25zZSA9IGNvbXBvbmVudHNbJ3NjaGVtYXMnXVsnV2luUmVzcG9uc2VEdG8nXTtcbmV4cG9ydCB0eXBlIENyZWF0ZVdpblJlcXVlc3QgPSBjb21wb25lbnRzWydzY2hlbWFzJ11bJ0NyZWF0ZVdpbkR0byddO1xuZXhwb3J0IHR5cGUgV2luQ291bnRSZXNwb25zZSA9IGNvbXBvbmVudHNbJ3NjaGVtYXMnXVsnV2luQ291bnREdG8nXTtcblxuLy8gSmFjayBBSSBDb252ZXJzYXRpb25zXG5leHBvcnQgdHlwZSBDb252ZXJzYXRpb25SZXNwb25zZSA9IGNvbXBvbmVudHNbJ3NjaGVtYXMnXVsnQ29udmVyc2F0aW9uUmVzcG9uc2VEdG8nXTtcbmV4cG9ydCB0eXBlIENvbnZlcnNhdGlvbldpdGhNZXNzYWdlc1Jlc3BvbnNlID0gY29tcG9uZW50c1snc2NoZW1hcyddWydKYWNrQ29udmVyc2F0aW9uV2l0aE1lc3NhZ2VzRHRvJ107XG5leHBvcnQgdHlwZSBDcmVhdGVDb252ZXJzYXRpb25SZXF1ZXN0ID0gY29tcG9uZW50c1snc2NoZW1hcyddWydDcmVhdGVDb252ZXJzYXRpb25EdG8nXTtcbmV4cG9ydCB0eXBlIEphY2tNZXNzYWdlUmVzcG9uc2UgPSBjb21wb25lbnRzWydzY2hlbWFzJ11bJ0phY2tNZXNzYWdlUmVzcG9uc2VEdG8nXTtcbmV4cG9ydCB0eXBlIFNlbmRKYWNrTWVzc2FnZVJlcXVlc3QgPSBjb21wb25lbnRzWydzY2hlbWFzJ11bJ1NlbmRKYWNrTWVzc2FnZUR0byddO1xuXG4vLyBNb29kIExvZ3NcbmV4cG9ydCB0eXBlIE1vb2RMb2dSZXNwb25zZSA9IGNvbXBvbmVudHNbJ3NjaGVtYXMnXVsnTW9vZExvZ1Jlc3BvbnNlRHRvJ107XG5leHBvcnQgdHlwZSBMb2dNb29kUmVxdWVzdCA9IGNvbXBvbmVudHNbJ3NjaGVtYXMnXVsnTG9nTW9vZER0byddO1xuZXhwb3J0IHR5cGUgTW9vZFN0YXRzUmVzcG9uc2UgPSBjb21wb25lbnRzWydzY2hlbWFzJ11bJ01vb2RTdGF0c0R0byddO1xuXG4vLyBIYWJpdHNcbmV4cG9ydCB0eXBlIEhhYml0UmVzcG9uc2UgPSBjb21wb25lbnRzWydzY2hlbWFzJ11bJ0hhYml0UmVzcG9uc2VEdG8nXTtcbmV4cG9ydCB0eXBlIENyZWF0ZUhhYml0UmVxdWVzdCA9IGNvbXBvbmVudHNbJ3NjaGVtYXMnXVsnQ3JlYXRlSGFiaXREdG8nXTtcbmV4cG9ydCB0eXBlIFVwZGF0ZUhhYml0UmVxdWVzdCA9IGNvbXBvbmVudHNbJ3NjaGVtYXMnXVsnVXBkYXRlSGFiaXREdG8nXTtcbmV4cG9ydCB0eXBlIENvbXBsZXRlSGFiaXRSZXF1ZXN0ID0gY29tcG9uZW50c1snc2NoZW1hcyddWydDb21wbGV0ZUhhYml0RHRvJ107XG5leHBvcnQgdHlwZSBIYWJpdENvbXBsZXRpb25SZXNwb25zZSA9IGNvbXBvbmVudHNbJ3NjaGVtYXMnXVsnSGFiaXRDb21wbGV0aW9uUmVzcG9uc2VEdG8nXTtcblxuLy8gUmVmbGVjdGlvbnNcbmV4cG9ydCB0eXBlIFJlZmxlY3Rpb25SZXNwb25zZSA9IGNvbXBvbmVudHNbJ3NjaGVtYXMnXVsnUmVmbGVjdGlvblJlc3BvbnNlRHRvJ107XG5leHBvcnQgdHlwZSBDcmVhdGVSZWZsZWN0aW9uUmVxdWVzdCA9IGNvbXBvbmVudHNbJ3NjaGVtYXMnXVsnQ3JlYXRlUmVmbGVjdGlvbkR0byddO1xuZXhwb3J0IHR5cGUgVXBkYXRlUmVmbGVjdGlvblJlcXVlc3QgPSBjb21wb25lbnRzWydzY2hlbWFzJ11bJ1VwZGF0ZVJlZmxlY3Rpb25EdG8nXTtcblxuLy8gQ3JhdmluZ3NcbmV4cG9ydCB0eXBlIENyYXZpbmdMb2dSZXNwb25zZSA9IGNvbXBvbmVudHNbJ3NjaGVtYXMnXVsnQ3JhdmluZ0xvZ1Jlc3BvbnNlRHRvJ107XG5leHBvcnQgdHlwZSBMb2dDcmF2aW5nUmVxdWVzdCA9IGNvbXBvbmVudHNbJ3NjaGVtYXMnXVsnTG9nQ3JhdmluZ0R0byddO1xuZXhwb3J0IHR5cGUgQ3JhdmluZ1N0YXRzUmVzcG9uc2UgPSBjb21wb25lbnRzWydzY2hlbWFzJ11bJ0NyYXZpbmdTdGF0c0R0byddO1xuXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4vLyBNQVAgVFlQRVNcbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuZXhwb3J0IHR5cGUgTWFwTWVtYmVyUmVzcG9uc2UgPSBjb21wb25lbnRzWydzY2hlbWFzJ11bJ01hcE1lbWJlckR0byddO1xuZXhwb3J0IHR5cGUgTWFwSHViUmVzcG9uc2UgPSBjb21wb25lbnRzWydzY2hlbWFzJ11bJ01hcEh1YkR0byddO1xuZXhwb3J0IHR5cGUgTWFwRXZlbnRSZXNwb25zZSA9IGNvbXBvbmVudHNbJ3NjaGVtYXMnXVsnTWFwRXZlbnREdG8nXTtcblxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuLy8gQU1CQVNTQURPUiBUWVBFU1xuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG5leHBvcnQgdHlwZSBBbWJhc3NhZG9yUmVzcG9uc2UgPSBjb21wb25lbnRzWydzY2hlbWFzJ11bJ0FtYmFzc2Fkb3JSZXNwb25zZUR0byddO1xuZXhwb3J0IHR5cGUgQXBwbHlBbWJhc3NhZG9yUmVxdWVzdCA9IGNvbXBvbmVudHNbJ3NjaGVtYXMnXVsnQXBwbHlBbWJhc3NhZG9yRHRvJ107XG5leHBvcnQgdHlwZSBVcGRhdGVBbWJhc3NhZG9yUmVxdWVzdCA9IGNvbXBvbmVudHNbJ3NjaGVtYXMnXVsnVXBkYXRlQW1iYXNzYWRvckR0byddO1xuXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4vLyBHUk9XOTAgVFlQRVNcbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuZXhwb3J0IHR5cGUgR3JvdzkwRW5yb2xsbWVudFJlc3BvbnNlID0gY29tcG9uZW50c1snc2NoZW1hcyddWydHcm93OTBFbnJvbGxtZW50UmVzcG9uc2VEdG8nXTtcbmV4cG9ydCB0eXBlIEdyb3c5MFByb2dyZXNzUmVzcG9uc2UgPSBjb21wb25lbnRzWydzY2hlbWFzJ11bJ0dyb3c5MFByb2dyZXNzUmVzcG9uc2VEdG8nXTtcbmV4cG9ydCB0eXBlIEdyb3c5MFRvZGF5UmVzcG9uc2UgPSBjb21wb25lbnRzWydzY2hlbWFzJ11bJ0dyb3c5MFRvZGF5UmVzcG9uc2VEdG8nXTtcbmV4cG9ydCB0eXBlIEdyb3c5MFN0YXRzUmVzcG9uc2UgPSBjb21wb25lbnRzWydzY2hlbWFzJ11bJ0dyb3c5MFN0YXRzUmVzcG9uc2VEdG8nXTtcbmV4cG9ydCB0eXBlIEVucm9sbEdyb3c5MFJlcXVlc3QgPSBjb21wb25lbnRzWydzY2hlbWFzJ11bJ0Vucm9sbEdyb3c5MER0byddO1xuZXhwb3J0IHR5cGUgVXBkYXRlR3JvdzkwUHJvZ3Jlc3NSZXF1ZXN0ID0gY29tcG9uZW50c1snc2NoZW1hcyddWydVcGRhdGVQcm9ncmVzc0R0byddO1xuZXhwb3J0IHR5cGUgVXBkYXRlR3JvdzkwU2V0dGluZ3NSZXF1ZXN0ID0gY29tcG9uZW50c1snc2NoZW1hcyddWydVcGRhdGVTZXR0aW5nc0R0byddO1xuXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4vLyBNQVRDSElORyBUWVBFU1xuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG5leHBvcnQgdHlwZSBDcmVhdGVNYXRjaFJlcXVlc3QgPSBjb21wb25lbnRzWydzY2hlbWFzJ11bJ0NyZWF0ZU1hdGNoRHRvJ107XG5leHBvcnQgdHlwZSBVcGRhdGVNYXRjaFJlcXVlc3QgPSBjb21wb25lbnRzWydzY2hlbWFzJ11bJ1VwZGF0ZU1hdGNoRHRvJ107XG5leHBvcnQgdHlwZSBDcmVhdGVCdWRkeVJlcXVlc3QgPSBjb21wb25lbnRzWydzY2hlbWFzJ11bJ0NyZWF0ZUJ1ZGR5UmVxdWVzdER0byddO1xuZXhwb3J0IHR5cGUgVXBkYXRlQnVkZHlSZXF1ZXN0ID0gY29tcG9uZW50c1snc2NoZW1hcyddWydVcGRhdGVCdWRkeUR0byddO1xuZXhwb3J0IHR5cGUgTG9nQnVkZHlBY3Rpdml0eVJlcXVlc3QgPSBjb21wb25lbnRzWydzY2hlbWFzJ11bJ0xvZ0J1ZGR5QWN0aXZpdHlEdG8nXTtcblxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuLy8gRVZFTlQgQ0hBVCBUWVBFU1xuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG5leHBvcnQgdHlwZSBFdmVudENoYXRSZXNwb25zZSA9IGNvbXBvbmVudHNbJ3NjaGVtYXMnXVsnRXZlbnRDaGF0UmVzcG9uc2VEdG8nXTtcbmV4cG9ydCB0eXBlIENoYXRNZW1iZXJSZXNwb25zZSA9IGNvbXBvbmVudHNbJ3NjaGVtYXMnXVsnQ2hhdE1lbWJlclJlc3BvbnNlRHRvJ107XG5leHBvcnQgdHlwZSBDaGF0TWVzc2FnZVJlc3BvbnNlID0gY29tcG9uZW50c1snc2NoZW1hcyddWydFdmVudENoYXRNZXNzYWdlUmVzcG9uc2VEdG8nXTtcbmV4cG9ydCB0eXBlIFBhZ2luYXRlZE1lc3NhZ2VzUmVzcG9uc2UgPSBjb21wb25lbnRzWydzY2hlbWFzJ11bJ1BhZ2luYXRlZEV2ZW50Q2hhdE1lc3NhZ2VzRHRvJ107XG5leHBvcnQgdHlwZSBTZW5kQ2hhdE1lc3NhZ2VSZXF1ZXN0ID0gY29tcG9uZW50c1snc2NoZW1hcyddWydTZW5kRXZlbnRDaGF0TWVzc2FnZUR0byddO1xuZXhwb3J0IHR5cGUgVXBkYXRlQ2hhdE1lc3NhZ2VSZXF1ZXN0ID0gY29tcG9uZW50c1snc2NoZW1hcyddWydVcGRhdGVFdmVudENoYXRNZXNzYWdlRHRvJ107XG5leHBvcnQgdHlwZSBVcGRhdGVDaGF0U2V0dGluZ3NSZXF1ZXN0ID0gY29tcG9uZW50c1snc2NoZW1hcyddWydVcGRhdGVDaGF0U2V0dGluZ3NEdG8nXTtcbmV4cG9ydCB0eXBlIFVwZGF0ZU1lbWJlclNldHRpbmdzUmVxdWVzdCA9IGNvbXBvbmVudHNbJ3NjaGVtYXMnXVsnVXBkYXRlTWVtYmVyU2V0dGluZ3NEdG8nXTtcblxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuLy8gQURNSU4gVFlQRVNcbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuZXhwb3J0IHR5cGUgQWRtaW5Mb2dpblJlcXVlc3QgPSBjb21wb25lbnRzWydzY2hlbWFzJ11bJ0FkbWluTG9naW5EdG8nXTtcbmV4cG9ydCB0eXBlIEFkbWluVG9rZW5zUmVzcG9uc2UgPSBjb21wb25lbnRzWydzY2hlbWFzJ11bJ0FkbWluVG9rZW5zRHRvJ107XG5leHBvcnQgdHlwZSBBZG1pblVwZGF0ZVVzZXJSZXF1ZXN0ID0gY29tcG9uZW50c1snc2NoZW1hcyddWydBZG1pblVwZGF0ZVVzZXJEdG8nXTtcbmV4cG9ydCB0eXBlIEFkbWluQ3JlYXRlSHViUmVxdWVzdCA9IGNvbXBvbmVudHNbJ3NjaGVtYXMnXVsnQWRtaW5DcmVhdGVIdWJEdG8nXTtcbmV4cG9ydCB0eXBlIEFkbWluVXBkYXRlRXZlbnRSZXF1ZXN0ID0gY29tcG9uZW50c1snc2NoZW1hcyddWydBZG1pblVwZGF0ZUV2ZW50RHRvJ107XG5leHBvcnQgdHlwZSBBZG1pbkNyZWF0ZUNvbnRlbnRSZXF1ZXN0ID0gY29tcG9uZW50c1snc2NoZW1hcyddWydBZG1pbkNyZWF0ZUNvbnRlbnREdG8nXTtcbmV4cG9ydCB0eXBlIEFkbWluQ3JlYXRlQnVzaW5lc3NSZXF1ZXN0ID0gY29tcG9uZW50c1snc2NoZW1hcyddWydBZG1pbkNyZWF0ZUJ1c2luZXNzRHRvJ107XG5leHBvcnQgdHlwZSBBZG1pbk92ZXJ2aWV3U3RhdHNSZXNwb25zZSA9IGNvbXBvbmVudHNbJ3NjaGVtYXMnXVsnQWRtaW5PdmVydmlld1N0YXRzRHRvJ107XG5cbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbi8vIEJBREdFIFRZUEVTIChmcm9tIGdlbmVyYXRlZCBPcGVuQVBJIHR5cGVzKVxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG5leHBvcnQgdHlwZSBCYWRnZVJlc3BvbnNlID0gY29tcG9uZW50c1snc2NoZW1hcyddWydCYWRnZVJlc3BvbnNlRHRvJ107XG5leHBvcnQgdHlwZSBVc2VyQmFkZ2VSZXNwb25zZSA9IGNvbXBvbmVudHNbJ3NjaGVtYXMnXVsnVXNlckJhZGdlUmVzcG9uc2VEdG8nXTtcbmV4cG9ydCB0eXBlIEJhZGdlUHJvZ3Jlc3NSZXNwb25zZSA9IGNvbXBvbmVudHNbJ3NjaGVtYXMnXVsnQmFkZ2VQcm9ncmVzc0R0byddO1xuXG4vLyBBbGlhcyBmb3IgU0RLIGNvbnNpc3RlbmN5XG5leHBvcnQgaW50ZXJmYWNlIEJhZGdlV2l0aFByb2dyZXNzIHtcbiAgYmFkZ2U6IEJhZGdlUmVzcG9uc2U7XG4gIGN1cnJlbnRQcm9ncmVzczogbnVtYmVyO1xuICByZXF1aXJlZFByb2dyZXNzOiBudW1iZXI7XG4gIHBlcmNlbnRDb21wbGV0ZTogbnVtYmVyO1xuICBpc0Vhcm5lZDogYm9vbGVhbjtcbn1cblxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuLy8gVU5JRklFRCBSRVdBUkQgVFlQRVNcbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuLy8gUmVkZWVtVHlwZSBlbnVtIC0gZXh0cmFjdGVkIGZyb20gUHJpc21hIHZpYSBBUElcbmV4cG9ydCB0eXBlIFJlZGVlbVR5cGUgPSAnSU5fUEVSU09OJyB8ICdPTkxJTkUnIHwgJ0JPVEgnO1xuXG4vLyBSZXdhcmQgcmVzcG9uc2Ugd2l0aCByZWxhdGlvbnNcbmV4cG9ydCBpbnRlcmZhY2UgUmV3YXJkUmVzcG9uc2Uge1xuICBpZDogc3RyaW5nO1xuICB2ZW51ZUlkOiBzdHJpbmcgfCBudWxsO1xuICBicmFuZElkOiBzdHJpbmcgfCBudWxsO1xuICBiYWRnZUlkOiBzdHJpbmc7XG4gIHRpdGxlOiBzdHJpbmc7XG4gIGRlc2NyaXB0aW9uOiBzdHJpbmcgfCBudWxsO1xuICBjb2RlOiBzdHJpbmcgfCBudWxsO1xuICByZWRlZW1UeXBlOiBSZWRlZW1UeXBlO1xuICBtYXhSZWRlbXB0aW9uczogbnVtYmVyIHwgbnVsbDtcbiAgcmVkZW1wdGlvbnNVc2VkOiBudW1iZXI7XG4gIHBlclVzZXJMaW1pdDogbnVtYmVyO1xuICB2YWxpZEZyb206IHN0cmluZyB8IG51bGw7XG4gIHZhbGlkVW50aWw6IHN0cmluZyB8IG51bGw7XG4gIGlzQWN0aXZlOiBib29sZWFuO1xuICBjcmVhdGVkQXQ6IHN0cmluZztcbiAgYmFkZ2U6IHtcbiAgICBpZDogc3RyaW5nO1xuICAgIG5hbWU6IHN0cmluZztcbiAgICBzbHVnOiBzdHJpbmc7XG4gICAgaWNvbjogc3RyaW5nIHwgbnVsbDtcbiAgfTtcbiAgdmVudWU/OiB7XG4gICAgaWQ6IHN0cmluZztcbiAgICBuYW1lOiBzdHJpbmc7XG4gICAgc2x1Zzogc3RyaW5nO1xuICAgIHByb2ZpbGVJbWFnZTogc3RyaW5nIHwgbnVsbDtcbiAgICBhZGRyZXNzOiBzdHJpbmcgfCBudWxsO1xuICB9IHwgbnVsbDtcbiAgYnJhbmQ/OiB7XG4gICAgaWQ6IHN0cmluZztcbiAgICBuYW1lOiBzdHJpbmc7XG4gICAgc2x1Zzogc3RyaW5nO1xuICAgIGxvZ29Vcmw6IHN0cmluZyB8IG51bGw7XG4gIH0gfCBudWxsO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFJld2FyZFJlZGVtcHRpb25SZXNwb25zZSB7XG4gIGlkOiBzdHJpbmc7XG4gIHVzZXJJZDogc3RyaW5nO1xuICByZXdhcmRJZDogc3RyaW5nO1xuICByZWRlZW1lZEF0OiBzdHJpbmc7XG4gIHZlcmlmaWVkQXQ6IHN0cmluZyB8IG51bGw7XG4gIHZlcmlmaWVkQnk6IHN0cmluZyB8IG51bGw7XG4gIGNvZGVVc2VkOiBzdHJpbmcgfCBudWxsO1xuICByZXdhcmQ6IFJld2FyZFJlc3BvbnNlO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIENyZWF0ZVJld2FyZFJlcXVlc3Qge1xuICBiYWRnZUlkOiBzdHJpbmc7XG4gIHRpdGxlOiBzdHJpbmc7XG4gIGRlc2NyaXB0aW9uPzogc3RyaW5nO1xuICBjb2RlPzogc3RyaW5nO1xuICByZWRlZW1UeXBlPzogUmVkZWVtVHlwZTtcbiAgbWF4UmVkZW1wdGlvbnM/OiBudW1iZXI7XG4gIHBlclVzZXJMaW1pdD86IG51bWJlcjtcbiAgdmFsaWRGcm9tPzogc3RyaW5nO1xuICB2YWxpZFVudGlsPzogc3RyaW5nO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFVwZGF0ZVJld2FyZFJlcXVlc3Qge1xuICB0aXRsZT86IHN0cmluZztcbiAgZGVzY3JpcHRpb24/OiBzdHJpbmc7XG4gIGNvZGU/OiBzdHJpbmc7XG4gIHJlZGVlbVR5cGU/OiBSZWRlZW1UeXBlO1xuICBtYXhSZWRlbXB0aW9ucz86IG51bWJlcjtcbiAgcGVyVXNlckxpbWl0PzogbnVtYmVyO1xuICB2YWxpZEZyb20/OiBzdHJpbmc7XG4gIHZhbGlkVW50aWw/OiBzdHJpbmc7XG4gIGlzQWN0aXZlPzogYm9vbGVhbjtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBVc2VyV2FsbGV0UmVzcG9uc2Uge1xuICBiYWRnZXM6IEFycmF5PHtcbiAgICBpZDogc3RyaW5nO1xuICAgIGJhZGdlSWQ6IHN0cmluZztcbiAgICB1c2VySWQ6IHN0cmluZztcbiAgICBhd2FyZGVkQXQ6IHN0cmluZztcbiAgICBiYWRnZTogQmFkZ2VSZXNwb25zZTtcbiAgICBhdmFpbGFibGVSZXdhcmRzOiBSZXdhcmRSZXNwb25zZVtdO1xuICAgIHJlZGVlbWVkUmV3YXJkczogQXJyYXk8UmV3YXJkUmVkZW1wdGlvblJlc3BvbnNlICYgeyBxclRva2VuOiBzdHJpbmcgfT47XG4gIH0+O1xuICBzdGF0czoge1xuICAgIHRvdGFsQmFkZ2VzOiBudW1iZXI7XG4gICAgdG90YWxBdmFpbGFibGVSZXdhcmRzOiBudW1iZXI7XG4gICAgdG90YWxSZWRlZW1lZFJld2FyZHM6IG51bWJlcjtcbiAgfTtcbn1cblxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuLy8gTEVHQUNZIFRZUEVTIChkZXByZWNhdGVkIC0gdXNlIHVuaWZpZWQgdHlwZXMpXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cbi8qKiBAZGVwcmVjYXRlZCBVc2UgUmV3YXJkUmVzcG9uc2UgaW5zdGVhZCAqL1xuZXhwb3J0IGludGVyZmFjZSBQYXJ0bmVyUmV3YXJkUmVzcG9uc2Uge1xuICBpZDogc3RyaW5nO1xuICBidXNpbmVzc0lkOiBzdHJpbmc7XG4gIGJhZGdlSWQ6IHN0cmluZztcbiAgdGl0bGU6IHN0cmluZztcbiAgZGVzY3JpcHRpb246IHN0cmluZyB8IG51bGw7XG4gIGNvZGU6IHN0cmluZyB8IG51bGw7XG4gIG1heFJlZGVtcHRpb25zOiBudW1iZXIgfCBudWxsO1xuICByZWRlbXB0aW9uc1VzZWQ6IG51bWJlcjtcbiAgcGVyVXNlckxpbWl0OiBudW1iZXI7XG4gIHZhbGlkRnJvbTogc3RyaW5nO1xuICB2YWxpZFVudGlsOiBzdHJpbmcgfCBudWxsO1xuICBpc0FjdGl2ZTogYm9vbGVhbjtcbiAgY3JlYXRlZEF0OiBzdHJpbmc7XG4gIGJhZGdlOiB7XG4gICAgaWQ6IHN0cmluZztcbiAgICBuYW1lOiBzdHJpbmc7XG4gICAgc2x1Zzogc3RyaW5nO1xuICAgIGljb246IHN0cmluZyB8IG51bGw7XG4gIH07XG4gIGJ1c2luZXNzOiB7XG4gICAgaWQ6IHN0cmluZztcbiAgICBuYW1lOiBzdHJpbmc7XG4gICAgcHJvZmlsZUltYWdlOiBzdHJpbmcgfCBudWxsO1xuICB9O1xufVxuXG4vKiogQGRlcHJlY2F0ZWQgVXNlIFJld2FyZFJlZGVtcHRpb25SZXNwb25zZSBpbnN0ZWFkICovXG5leHBvcnQgaW50ZXJmYWNlIFBhcnRuZXJSZXdhcmRSZWRlbXB0aW9uUmVzcG9uc2Uge1xuICBpZDogc3RyaW5nO1xuICB1c2VySWQ6IHN0cmluZztcbiAgcGFydG5lclJld2FyZElkOiBzdHJpbmc7XG4gIHJlZGVlbWVkQXQ6IHN0cmluZztcbiAgdmVyaWZpZWRBdDogc3RyaW5nIHwgbnVsbDtcbiAgcGFydG5lclJld2FyZDogUGFydG5lclJld2FyZFJlc3BvbnNlO1xufVxuXG4vKiogQGRlcHJlY2F0ZWQgVXNlIENyZWF0ZVJld2FyZFJlcXVlc3QgaW5zdGVhZCAqL1xuZXhwb3J0IGludGVyZmFjZSBDcmVhdGVQYXJ0bmVyUmV3YXJkUmVxdWVzdCB7XG4gIGJhZGdlSWQ6IHN0cmluZztcbiAgdGl0bGU6IHN0cmluZztcbiAgZGVzY3JpcHRpb24/OiBzdHJpbmc7XG4gIGNvZGU/OiBzdHJpbmc7XG4gIG1heFJlZGVtcHRpb25zPzogbnVtYmVyO1xuICBwZXJVc2VyTGltaXQ/OiBudW1iZXI7XG4gIHZhbGlkVW50aWw/OiBzdHJpbmc7XG59XG5cbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbi8vIFJFLUVYUE9SVFNcbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuLy8gUmUtZXhwb3J0IHBhdGhzIGFuZCBjb21wb25lbnRzIGZvciBhZHZhbmNlZCB1c2FnZVxuZXhwb3J0IHR5cGUgeyBwYXRocywgY29tcG9uZW50cyB9O1xuIl19
14
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHlwZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvYXBpL3R5cGVzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQTs7Ozs7Ozs7OztHQVVHIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBHcm93U29iZXIgU0RLIFR5cGVzXG4gKlxuICogQWxsIHR5cGVzIGFyZSBkZXJpdmVkIGZyb20gdGhlIEBncm93c29iZXIvdHlwZXMgcGFja2FnZSB3aGljaCBpcyBhdXRvLWdlbmVyYXRlZFxuICogZnJvbSB0aGUgQVBJIE9wZW5BUEkgc3BlY2lmaWNhdGlvbi4gVGhpcyBlbnN1cmVzIHNpbmdsZSBzb3VyY2Ugb2YgdHJ1dGggZnJvbSBQcmlzbWEuXG4gKlxuICogVG8gcmVnZW5lcmF0ZSB0eXBlczpcbiAqIDEuIFN0YXJ0IHRoZSBBUEk6IGNkIC4uL2dyb3dzb2Jlci1hcGkgJiYgbnBtIHJ1biBzdGFydDpkZXZcbiAqIDIuIEdlbmVyYXRlIHR5cGVzOiBjZCAuLi9ncm93c29iZXItdHlwZXMgJiYgbnBtIHJ1biBnZW5lcmF0ZSAmJiBucG0gcnVuIGJ1aWxkXG4gKiAzLiBSZWJ1aWxkIFNESzogbnBtIHJ1biBidWlsZFxuICovXG5cbmltcG9ydCB0eXBlIHsgcGF0aHMsIGNvbXBvbmVudHMgfSBmcm9tICdAZ3Jvd3NvYmVyL3R5cGVzJztcblxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuLy8gVFlQRSBFWFRSQUNUSU9OIEhFTFBFUlNcbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuLyoqXG4gKiBFeHRyYWN0IHJlcXVlc3QgYm9keSB0eXBlIGZvciBhIGdpdmVuIGVuZHBvaW50IGFuZCBtZXRob2RcbiAqL1xuZXhwb3J0IHR5cGUgUmVxdWVzdEJvZHk8XG4gIFBhdGggZXh0ZW5kcyBrZXlvZiBwYXRocyxcbiAgTWV0aG9kIGV4dGVuZHMga2V5b2YgcGF0aHNbUGF0aF1cbj4gPSBwYXRoc1tQYXRoXVtNZXRob2RdIGV4dGVuZHMgeyByZXF1ZXN0Qm9keTogeyBjb250ZW50OiB7ICdhcHBsaWNhdGlvbi9qc29uJzogaW5mZXIgVCB9IH0gfVxuICA/IFRcbiAgOiBuZXZlcjtcblxuLyoqXG4gKiBFeHRyYWN0IHJlc3BvbnNlIHR5cGUgZm9yIGEgZ2l2ZW4gZW5kcG9pbnQsIG1ldGhvZCwgYW5kIHN0YXR1cyBjb2RlXG4gKi9cbmV4cG9ydCB0eXBlIFJlc3BvbnNlQm9keTxcbiAgUGF0aCBleHRlbmRzIGtleW9mIHBhdGhzLFxuICBNZXRob2QgZXh0ZW5kcyBrZXlvZiBwYXRoc1tQYXRoXSxcbiAgU3RhdHVzIGV4dGVuZHMgbnVtYmVyID0gMjAwXG4+ID0gcGF0aHNbUGF0aF1bTWV0aG9kXSBleHRlbmRzIHsgcmVzcG9uc2VzOiB7IFtLIGluIFN0YXR1c106IHsgY29udGVudDogeyAnYXBwbGljYXRpb24vanNvbic6IGluZmVyIFQgfSB9IH0gfVxuICA/IFRcbiAgOiBuZXZlcjtcblxuLyoqXG4gKiBFeHRyYWN0IHF1ZXJ5IHBhcmFtZXRlcnMgdHlwZSBmb3IgYSBnaXZlbiBlbmRwb2ludCBhbmQgbWV0aG9kXG4gKi9cbmV4cG9ydCB0eXBlIFF1ZXJ5UGFyYW1zPFxuICBQYXRoIGV4dGVuZHMga2V5b2YgcGF0aHMsXG4gIE1ldGhvZCBleHRlbmRzIGtleW9mIHBhdGhzW1BhdGhdXG4+ID0gcGF0aHNbUGF0aF1bTWV0aG9kXSBleHRlbmRzIHsgcGFyYW1ldGVyczogeyBxdWVyeT86IGluZmVyIFEgfSB9XG4gID8gUVxuICA6IFJlY29yZDxzdHJpbmcsIG5ldmVyPjtcblxuLyoqXG4gKiBFeHRyYWN0IHBhdGggcGFyYW1ldGVycyB0eXBlIGZvciBhIGdpdmVuIGVuZHBvaW50IGFuZCBtZXRob2RcbiAqL1xuZXhwb3J0IHR5cGUgUGF0aFBhcmFtczxcbiAgUGF0aCBleHRlbmRzIGtleW9mIHBhdGhzLFxuICBNZXRob2QgZXh0ZW5kcyBrZXlvZiBwYXRoc1tQYXRoXVxuPiA9IHBhdGhzW1BhdGhdW01ldGhvZF0gZXh0ZW5kcyB7IHBhcmFtZXRlcnM6IHsgcGF0aDogaW5mZXIgUCB9IH1cbiAgPyBQXG4gIDogUmVjb3JkPHN0cmluZywgbmV2ZXI+O1xuXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4vLyBFTlVNIFRZUEVTIChleHRyYWN0ZWQgZnJvbSBnZW5lcmF0ZWQgc2NoZW1hcyAtIHNpbmdsZSBzb3VyY2Ugb2YgdHJ1dGgpXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cbi8vIEJ1c2luZXNzL1ZlbnVlIHR5cGUgKHVzZWQgZm9yIGJvdGggQnVzaW5lc3MgYW5kIFZlbnVlIG1vZGVscylcbmV4cG9ydCB0eXBlIEJ1c2luZXNzVHlwZSA9IGNvbXBvbmVudHNbJ3NjaGVtYXMnXVsnQnVzaW5lc3NSZXNwb25zZUR0byddWyd0eXBlJ107XG5cbi8vIE93bmVyc2hpcCByb2xlc1xuZXhwb3J0IHR5cGUgVmVudWVPd25lclJvbGUgPSBjb21wb25lbnRzWydzY2hlbWFzJ11bJ1ZlbnVlT3duZXJSZXNwb25zZUR0byddWydyb2xlJ107XG5leHBvcnQgdHlwZSBCcmFuZE93bmVyUm9sZSA9IGNvbXBvbmVudHNbJ3NjaGVtYXMnXVsnQnJhbmRPd25lclJlc3BvbnNlRHRvJ11bJ3JvbGUnXTtcblxuLy8gRXZlbnQgdHlwZXNcbmV4cG9ydCB0eXBlIEdhdGhlcmluZ1R5cGUgPSBOb25OdWxsYWJsZTxjb21wb25lbnRzWydzY2hlbWFzJ11bJ0V2ZW50UmVzcG9uc2VEdG8nXVsnZ2F0aGVyaW5nVHlwZSddPjtcbmV4cG9ydCB0eXBlIEV2ZW50VmlzaWJpbGl0eSA9IGNvbXBvbmVudHNbJ3NjaGVtYXMnXVsnRXZlbnRSZXNwb25zZUR0byddWyd2aXNpYmlsaXR5J107XG5leHBvcnQgdHlwZSBFdmVudFN0YXR1cyA9IGNvbXBvbmVudHNbJ3NjaGVtYXMnXVsnRXZlbnRSZXNwb25zZUR0byddWydzdGF0dXMnXTtcblxuLy8gQ2hhdCByb2xlc1xuZXhwb3J0IHR5cGUgQ2hhdE1lbWJlclJvbGUgPSBjb21wb25lbnRzWydzY2hlbWFzJ11bJ0NoYXRNZW1iZXJSZXNwb25zZUR0byddWydyb2xlJ107XG5cbi8vIENvbnRlbnQgc3RhdHVzXG5leHBvcnQgdHlwZSBDb250ZW50U3RhdHVzID0gY29tcG9uZW50c1snc2NoZW1hcyddWydMaWJyYXJ5Q29udGVudFJlc3BvbnNlRHRvJ11bJ2NvbnRlbnRTdGF0dXMnXTtcblxuLy8gQmFkZ2UgdHlwZXNcbmV4cG9ydCB0eXBlIEJhZGdlVHlwZSA9IGNvbXBvbmVudHNbJ3NjaGVtYXMnXVsnQmFkZ2VSZXNwb25zZUR0byddWyd0eXBlJ107XG5cbi8vIE5vdGlmaWNhdGlvbiB0eXBlc1xuZXhwb3J0IHR5cGUgTm90aWZpY2F0aW9uVHlwZSA9IGNvbXBvbmVudHNbJ3NjaGVtYXMnXVsnTm90aWZpY2F0aW9uUmVzcG9uc2VEdG8nXVsndHlwZSddO1xuXG4vLyBTdHJlYWsgdHlwZXNcbmV4cG9ydCB0eXBlIFN0cmVha1R5cGUgPSBjb21wb25lbnRzWydzY2hlbWFzJ11bJ1N0cmVha1Jlc3BvbnNlRHRvJ11bJ3R5cGUnXTtcblxuLy8gQ3JhdmluZyB0cmlnZ2Vyc1xuZXhwb3J0IHR5cGUgQ3JhdmluZ1RyaWdnZXIgPSBOb25OdWxsYWJsZTxjb21wb25lbnRzWydzY2hlbWFzJ11bJ0NyYXZpbmdMb2dSZXNwb25zZUR0byddWyd0cmlnZ2VyVHlwZSddPjtcblxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuLy8gQVVUSCBUWVBFU1xuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG5leHBvcnQgdHlwZSBSZWdpc3RlclJlcXVlc3QgPSBjb21wb25lbnRzWydzY2hlbWFzJ11bJ1JlZ2lzdGVyRHRvJ107XG5leHBvcnQgdHlwZSBBdXRoUmVzcG9uc2UgPSBjb21wb25lbnRzWydzY2hlbWFzJ11bJ0F1dGhSZXNwb25zZUR0byddO1xuZXhwb3J0IHR5cGUgTG9naW5SZXF1ZXN0ID0gY29tcG9uZW50c1snc2NoZW1hcyddWydMb2dpbkR0byddO1xuZXhwb3J0IHR5cGUgUmVmcmVzaFRva2VuUmVxdWVzdCA9IGNvbXBvbmVudHNbJ3NjaGVtYXMnXVsnUmVmcmVzaFRva2VuRHRvJ107XG5leHBvcnQgdHlwZSBUb2tlblJlc3BvbnNlID0gY29tcG9uZW50c1snc2NoZW1hcyddWydUb2tlblJlc3BvbnNlRHRvJ107XG5leHBvcnQgdHlwZSBGaXJlYmFzZUF1dGhSZXF1ZXN0ID0gY29tcG9uZW50c1snc2NoZW1hcyddWydGaXJlYmFzZUF1dGhEdG8nXTtcbmV4cG9ydCB0eXBlIFNlbmRPdHBSZXF1ZXN0ID0gY29tcG9uZW50c1snc2NoZW1hcyddWydTZW5kT3RwRHRvJ107XG5leHBvcnQgdHlwZSBPdHBTZW50UmVzcG9uc2UgPSBjb21wb25lbnRzWydzY2hlbWFzJ11bJ090cFNlbnRSZXNwb25zZUR0byddO1xuZXhwb3J0IHR5cGUgVmVyaWZ5T3RwUmVxdWVzdCA9IGNvbXBvbmVudHNbJ3NjaGVtYXMnXVsnVmVyaWZ5T3RwRHRvJ107XG5cbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbi8vIFVTRVIgVFlQRVNcbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuZXhwb3J0IHR5cGUgVXNlclJlc3BvbnNlID0gY29tcG9uZW50c1snc2NoZW1hcyddWydVc2VyUmVzcG9uc2VEdG8nXTtcbmV4cG9ydCB0eXBlIFVzZXJQdWJsaWNSZXNwb25zZSA9IGNvbXBvbmVudHNbJ3NjaGVtYXMnXVsnVXNlclB1YmxpY1Jlc3BvbnNlRHRvJ107XG5leHBvcnQgdHlwZSBDcmVhdGVVc2VyUmVxdWVzdCA9IGNvbXBvbmVudHNbJ3NjaGVtYXMnXVsnQ3JlYXRlVXNlckR0byddO1xuZXhwb3J0IHR5cGUgVXBkYXRlVXNlclJlcXVlc3QgPSBjb21wb25lbnRzWydzY2hlbWFzJ11bJ1VwZGF0ZVVzZXJEdG8nXTtcblxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuLy8gSFVCIFRZUEVTXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cbmV4cG9ydCB0eXBlIEh1YlJlc3BvbnNlID0gY29tcG9uZW50c1snc2NoZW1hcyddWydIdWJSZXNwb25zZUR0byddO1xuZXhwb3J0IHR5cGUgQ3JlYXRlSHViUmVxdWVzdCA9IGNvbXBvbmVudHNbJ3NjaGVtYXMnXVsnQ3JlYXRlSHViRHRvJ107XG5leHBvcnQgdHlwZSBVcGRhdGVIdWJSZXF1ZXN0ID0gY29tcG9uZW50c1snc2NoZW1hcyddWydVcGRhdGVIdWJEdG8nXTtcblxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuLy8gRVZFTlQgVFlQRVNcbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuZXhwb3J0IHR5cGUgRXZlbnRSZXNwb25zZSA9IGNvbXBvbmVudHNbJ3NjaGVtYXMnXVsnRXZlbnRSZXNwb25zZUR0byddO1xuZXhwb3J0IHR5cGUgQ3JlYXRlRXZlbnRSZXF1ZXN0ID0gY29tcG9uZW50c1snc2NoZW1hcyddWydDcmVhdGVFdmVudER0byddO1xuZXhwb3J0IHR5cGUgVXBkYXRlRXZlbnRSZXF1ZXN0ID0gY29tcG9uZW50c1snc2NoZW1hcyddWydVcGRhdGVFdmVudER0byddO1xuXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4vLyBCT09LSU5HIFRZUEVTXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cbmV4cG9ydCB0eXBlIEJvb2tpbmdSZXNwb25zZSA9IGNvbXBvbmVudHNbJ3NjaGVtYXMnXVsnQm9va2luZ1Jlc3BvbnNlRHRvJ107XG5leHBvcnQgdHlwZSBDcmVhdGVCb29raW5nUmVxdWVzdCA9IGNvbXBvbmVudHNbJ3NjaGVtYXMnXVsnQ3JlYXRlQm9va2luZ0R0byddO1xuXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4vLyBMSUJSQVJZIFRZUEVTXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cbmV4cG9ydCB0eXBlIExpYnJhcnlDb250ZW50UmVzcG9uc2UgPSBjb21wb25lbnRzWydzY2hlbWFzJ11bJ0xpYnJhcnlDb250ZW50UmVzcG9uc2VEdG8nXTtcbmV4cG9ydCB0eXBlIExpYnJhcnlDb250ZW50RGV0YWlsUmVzcG9uc2UgPSBjb21wb25lbnRzWydzY2hlbWFzJ11bJ0xpYnJhcnlDb250ZW50RGV0YWlsUmVzcG9uc2VEdG8nXTtcbmV4cG9ydCB0eXBlIExpYnJhcnlQcm9ncmVzc1Jlc3BvbnNlID0gY29tcG9uZW50c1snc2NoZW1hcyddWydMaWJyYXJ5UHJvZ3Jlc3NSZXNwb25zZUR0byddO1xuZXhwb3J0IHR5cGUgQ29udGVudFR5cGUgPSBjb21wb25lbnRzWydzY2hlbWFzJ11bJ0xpYnJhcnlDb250ZW50UmVzcG9uc2VEdG8nXVsndHlwZSddO1xuXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4vLyBCVVNJTkVTUyAmIE9GRkVSIFRZUEVTIChMZWdhY3kpXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cbmV4cG9ydCB0eXBlIEJ1c2luZXNzUmVzcG9uc2UgPSBjb21wb25lbnRzWydzY2hlbWFzJ11bJ0J1c2luZXNzUmVzcG9uc2VEdG8nXTtcbmV4cG9ydCB0eXBlIE9mZmVyUmVzcG9uc2UgPSBjb21wb25lbnRzWydzY2hlbWFzJ11bJ09mZmVyUmVzcG9uc2VEdG8nXTtcbmV4cG9ydCB0eXBlIFJlZGVlbU9mZmVyUmVxdWVzdCA9IGNvbXBvbmVudHNbJ3NjaGVtYXMnXVsnUmVkZWVtT2ZmZXJEdG8nXTtcblxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuLy8gVkVOVUUgVFlQRVMgKGZyb20gZ2VuZXJhdGVkIE9wZW5BUEkgdHlwZXMpXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cbmV4cG9ydCB0eXBlIFZlbnVlUmVzcG9uc2UgPSBjb21wb25lbnRzWydzY2hlbWFzJ11bJ1ZlbnVlUmVzcG9uc2VEdG8nXTtcbmV4cG9ydCB0eXBlIFZlbnVlT3duZXJSZXNwb25zZSA9IGNvbXBvbmVudHNbJ3NjaGVtYXMnXVsnVmVudWVPd25lclJlc3BvbnNlRHRvJ107XG5cbi8vIFJlcXVlc3QgdHlwZXMgZm9yIHZlbnVlIG9wZXJhdGlvbnNcbmV4cG9ydCBpbnRlcmZhY2UgQ3JlYXRlVmVudWVSZXF1ZXN0IHtcbiAgbmFtZTogc3RyaW5nO1xuICBzbHVnOiBzdHJpbmc7XG4gIGRlc2NyaXB0aW9uPzogc3RyaW5nO1xuICB0eXBlOiBCdXNpbmVzc1R5cGU7XG4gIGhhc0FmRHJpbmtzPzogYm9vbGVhbjtcbiAgaXNBZlZlbnVlPzogYm9vbGVhbjtcbiAgYWZIaWdobGlnaHRzPzogc3RyaW5nW107XG4gIGFkZHJlc3M/OiBzdHJpbmc7XG4gIGNpdHlJZD86IHN0cmluZztcbiAgbG9jYXRpb25MYXQ/OiBudW1iZXI7XG4gIGxvY2F0aW9uTG9uZz86IG51bWJlcjtcbiAgcGhvbmU/OiBzdHJpbmc7XG4gIGVtYWlsPzogc3RyaW5nO1xuICB3ZWJzaXRlPzogc3RyaW5nO1xuICBpbnN0YWdyYW0/OiBzdHJpbmc7XG4gIHByb2ZpbGVJbWFnZT86IHN0cmluZztcbiAgYmFubmVySW1hZ2U/OiBzdHJpbmc7XG4gIHBob3Rvcz86IHN0cmluZ1tdO1xuICBvcGVuaW5nSG91cnM/OiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+O1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFVwZGF0ZVZlbnVlUmVxdWVzdCBleHRlbmRzIFBhcnRpYWw8Q3JlYXRlVmVudWVSZXF1ZXN0PiB7fVxuXG5leHBvcnQgaW50ZXJmYWNlIEFkZFZlbnVlT3duZXJSZXF1ZXN0IHtcbiAgdXNlcklkOiBzdHJpbmc7XG4gIHJvbGU6IFZlbnVlT3duZXJSb2xlO1xufVxuXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4vLyBDUkVBVE9SIFRZUEVTIChmcm9tIGdlbmVyYXRlZCBPcGVuQVBJIHR5cGVzKVxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG5leHBvcnQgdHlwZSBDcmVhdG9yUmVzcG9uc2UgPSBjb21wb25lbnRzWydzY2hlbWFzJ11bJ0NyZWF0b3JSZXNwb25zZUR0byddO1xuZXhwb3J0IHR5cGUgQ3JlYXRvckF2YWlsYWJpbGl0eVJlc3BvbnNlID0gY29tcG9uZW50c1snc2NoZW1hcyddWydDcmVhdG9yQXZhaWxhYmlsaXR5UmVzcG9uc2VEdG8nXTtcblxuZXhwb3J0IGludGVyZmFjZSBDcmVhdGVDcmVhdG9yUmVxdWVzdCB7XG4gIHNsdWc6IHN0cmluZztcbiAgZGlzcGxheU5hbWU6IHN0cmluZztcbiAgYmlvPzogc3RyaW5nO1xuICBhdmF0YXJVcmw/OiBzdHJpbmc7XG4gIGNpdHlJZHM/OiBzdHJpbmdbXTtcbiAgY2FuRmFjaWxpdGF0ZT86IGJvb2xlYW47XG4gIGNhbkNyZWF0ZUNvbnRlbnQ/OiBib29sZWFuO1xuICBpc0luZmx1ZW5jZXI/OiBib29sZWFuO1xuICBzcGVjaWFsdGllcz86IHN0cmluZ1tdO1xuICBjZXJ0aWZpY2F0aW9ucz86IHN0cmluZ1tdO1xuICBzZXNzaW9uUmF0ZT86IG51bWJlcjtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBVcGRhdGVDcmVhdG9yUmVxdWVzdCBleHRlbmRzIFBhcnRpYWw8Q3JlYXRlQ3JlYXRvclJlcXVlc3Q+IHt9XG5cbmV4cG9ydCBpbnRlcmZhY2UgQ3JlYXRlQXZhaWxhYmlsaXR5UmVxdWVzdCB7XG4gIGRheU9mV2Vlaz86IG51bWJlcjtcbiAgc3RhcnRUaW1lOiBzdHJpbmc7XG4gIGVuZFRpbWU6IHN0cmluZztcbiAgdGltZXpvbmU6IHN0cmluZztcbiAgaXNSZWN1cnJpbmc/OiBib29sZWFuO1xuICBzcGVjaWZpY0RhdGU/OiBzdHJpbmc7XG59XG5cbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbi8vIEdBVEhFUklORyBUWVBFIFRFTVBMQVRFUyAoZm9yIGZhY2lsaXRhdG9yIGV2ZW50IHR5cGVzKVxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG5leHBvcnQgdHlwZSBHYXRoZXJpbmdUeXBlUmVzcG9uc2UgPSBjb21wb25lbnRzWydzY2hlbWFzJ11bJ0dhdGhlcmluZ1R5cGVSZXNwb25zZUR0byddO1xuZXhwb3J0IHR5cGUgQ3JlYXRlR2F0aGVyaW5nVHlwZVJlcXVlc3QgPSBjb21wb25lbnRzWydzY2hlbWFzJ11bJ0NyZWF0ZUdhdGhlcmluZ1R5cGVEdG8nXTtcbmV4cG9ydCB0eXBlIFVwZGF0ZUdhdGhlcmluZ1R5cGVSZXF1ZXN0ID0gY29tcG9uZW50c1snc2NoZW1hcyddWydVcGRhdGVHYXRoZXJpbmdUeXBlRHRvJ107XG5cbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbi8vIEJSQU5EIFRZUEVTIChmcm9tIGdlbmVyYXRlZCBPcGVuQVBJIHR5cGVzKVxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG5leHBvcnQgdHlwZSBCcmFuZFJlc3BvbnNlID0gY29tcG9uZW50c1snc2NoZW1hcyddWydCcmFuZFJlc3BvbnNlRHRvJ107XG5leHBvcnQgdHlwZSBCcmFuZE93bmVyUmVzcG9uc2UgPSBjb21wb25lbnRzWydzY2hlbWFzJ11bJ0JyYW5kT3duZXJSZXNwb25zZUR0byddO1xuZXhwb3J0IHR5cGUgQnJhbmRDcmVhdG9yUmVzcG9uc2UgPSBjb21wb25lbnRzWydzY2hlbWFzJ11bJ0JyYW5kQ3JlYXRvclJlc3BvbnNlRHRvJ107XG5cbmV4cG9ydCBpbnRlcmZhY2UgQ3JlYXRlQnJhbmRSZXF1ZXN0IHtcbiAgc2x1Zzogc3RyaW5nO1xuICBuYW1lOiBzdHJpbmc7XG4gIGRlc2NyaXB0aW9uPzogc3RyaW5nO1xuICBsb2dvVXJsPzogc3RyaW5nO1xuICBiYW5uZXJVcmw/OiBzdHJpbmc7XG4gIHByaW1hcnlDb2xvcj86IHN0cmluZztcbiAgd2Vic2l0ZT86IHN0cmluZztcbiAgZW1haWw/OiBzdHJpbmc7XG4gIGluc3RhZ3JhbT86IHN0cmluZztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBVcGRhdGVCcmFuZFJlcXVlc3QgZXh0ZW5kcyBQYXJ0aWFsPENyZWF0ZUJyYW5kUmVxdWVzdD4ge31cblxuZXhwb3J0IGludGVyZmFjZSBBZGRCcmFuZE93bmVyUmVxdWVzdCB7XG4gIHVzZXJJZDogc3RyaW5nO1xuICByb2xlOiBCcmFuZE93bmVyUm9sZTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBBZGRCcmFuZENyZWF0b3JSZXF1ZXN0IHtcbiAgY3JlYXRvcklkOiBzdHJpbmc7XG4gIGNvbW1pc3Npb25SYXRlPzogbnVtYmVyO1xuICBpc0FjdGl2ZT86IGJvb2xlYW47XG4gIHN0YXJ0RGF0ZT86IHN0cmluZztcbiAgZW5kRGF0ZT86IHN0cmluZztcbn1cblxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuLy8gU1VCU0NSSVBUSU9OIFRZUEVTXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cbmV4cG9ydCB0eXBlIFN1YnNjcmlwdGlvblJlc3BvbnNlID0gY29tcG9uZW50c1snc2NoZW1hcyddWydTdWJzY3JpcHRpb25SZXNwb25zZUR0byddO1xuZXhwb3J0IHR5cGUgQ3JlYXRlQ2hlY2tvdXRSZXF1ZXN0ID0gY29tcG9uZW50c1snc2NoZW1hcyddWydDcmVhdGVDaGVja291dER0byddO1xuXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4vLyBOT1RJRklDQVRJT04gVFlQRVNcbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuZXhwb3J0IHR5cGUgTm90aWZpY2F0aW9uUmVzcG9uc2UgPSBjb21wb25lbnRzWydzY2hlbWFzJ11bJ05vdGlmaWNhdGlvblJlc3BvbnNlRHRvJ107XG5cbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbi8vIERFVklDRSBUT0tFTiBUWVBFU1xuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG5leHBvcnQgdHlwZSBSZWdpc3RlckRldmljZVRva2VuUmVxdWVzdCA9IGNvbXBvbmVudHNbJ3NjaGVtYXMnXVsnUmVnaXN0ZXJEZXZpY2VEdG8nXTtcblxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuLy8gU1VQUE9SVCBUWVBFU1xuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG4vLyBDaGVjay1pbnNcbmV4cG9ydCB0eXBlIENoZWNrSW5SZXNwb25zZSA9IGNvbXBvbmVudHNbJ3NjaGVtYXMnXVsnQ2hlY2tJblJlc3BvbnNlRHRvJ107XG5leHBvcnQgdHlwZSBDcmVhdGVDaGVja0luUmVxdWVzdCA9IGNvbXBvbmVudHNbJ3NjaGVtYXMnXVsnQ3JlYXRlQ2hlY2tJbkR0byddO1xuZXhwb3J0IHR5cGUgVXBkYXRlQ2hlY2tJblJlcXVlc3QgPSBjb21wb25lbnRzWydzY2hlbWFzJ11bJ1VwZGF0ZUNoZWNrSW5EdG8nXTtcbmV4cG9ydCB0eXBlIENoZWNrSW5TdHJlYWtSZXNwb25zZSA9IGNvbXBvbmVudHNbJ3NjaGVtYXMnXVsnQ2hlY2tJblN0cmVha0R0byddO1xuXG4vLyBXaW5zXG5leHBvcnQgdHlwZSBXaW5SZXNwb25zZSA9IGNvbXBvbmVudHNbJ3NjaGVtYXMnXVsnV2luUmVzcG9uc2VEdG8nXTtcbmV4cG9ydCB0eXBlIENyZWF0ZVdpblJlcXVlc3QgPSBjb21wb25lbnRzWydzY2hlbWFzJ11bJ0NyZWF0ZVdpbkR0byddO1xuZXhwb3J0IHR5cGUgV2luQ291bnRSZXNwb25zZSA9IGNvbXBvbmVudHNbJ3NjaGVtYXMnXVsnV2luQ291bnREdG8nXTtcblxuLy8gSmFjayBBSSBDb252ZXJzYXRpb25zXG5leHBvcnQgdHlwZSBDb252ZXJzYXRpb25SZXNwb25zZSA9IGNvbXBvbmVudHNbJ3NjaGVtYXMnXVsnQ29udmVyc2F0aW9uUmVzcG9uc2VEdG8nXTtcbmV4cG9ydCB0eXBlIENvbnZlcnNhdGlvbldpdGhNZXNzYWdlc1Jlc3BvbnNlID0gY29tcG9uZW50c1snc2NoZW1hcyddWydKYWNrQ29udmVyc2F0aW9uV2l0aE1lc3NhZ2VzRHRvJ107XG5leHBvcnQgdHlwZSBDcmVhdGVDb252ZXJzYXRpb25SZXF1ZXN0ID0gY29tcG9uZW50c1snc2NoZW1hcyddWydDcmVhdGVDb252ZXJzYXRpb25EdG8nXTtcbmV4cG9ydCB0eXBlIEphY2tNZXNzYWdlUmVzcG9uc2UgPSBjb21wb25lbnRzWydzY2hlbWFzJ11bJ0phY2tNZXNzYWdlUmVzcG9uc2VEdG8nXTtcbmV4cG9ydCB0eXBlIFNlbmRKYWNrTWVzc2FnZVJlcXVlc3QgPSBjb21wb25lbnRzWydzY2hlbWFzJ11bJ1NlbmRKYWNrTWVzc2FnZUR0byddO1xuXG4vLyBNb29kIExvZ3NcbmV4cG9ydCB0eXBlIE1vb2RMb2dSZXNwb25zZSA9IGNvbXBvbmVudHNbJ3NjaGVtYXMnXVsnTW9vZExvZ1Jlc3BvbnNlRHRvJ107XG5leHBvcnQgdHlwZSBMb2dNb29kUmVxdWVzdCA9IGNvbXBvbmVudHNbJ3NjaGVtYXMnXVsnTG9nTW9vZER0byddO1xuZXhwb3J0IHR5cGUgTW9vZFN0YXRzUmVzcG9uc2UgPSBjb21wb25lbnRzWydzY2hlbWFzJ11bJ01vb2RTdGF0c0R0byddO1xuXG4vLyBIYWJpdHNcbmV4cG9ydCB0eXBlIEhhYml0UmVzcG9uc2UgPSBjb21wb25lbnRzWydzY2hlbWFzJ11bJ0hhYml0UmVzcG9uc2VEdG8nXTtcbmV4cG9ydCB0eXBlIENyZWF0ZUhhYml0UmVxdWVzdCA9IGNvbXBvbmVudHNbJ3NjaGVtYXMnXVsnQ3JlYXRlSGFiaXREdG8nXTtcbmV4cG9ydCB0eXBlIFVwZGF0ZUhhYml0UmVxdWVzdCA9IGNvbXBvbmVudHNbJ3NjaGVtYXMnXVsnVXBkYXRlSGFiaXREdG8nXTtcbmV4cG9ydCB0eXBlIENvbXBsZXRlSGFiaXRSZXF1ZXN0ID0gY29tcG9uZW50c1snc2NoZW1hcyddWydDb21wbGV0ZUhhYml0RHRvJ107XG5leHBvcnQgdHlwZSBIYWJpdENvbXBsZXRpb25SZXNwb25zZSA9IGNvbXBvbmVudHNbJ3NjaGVtYXMnXVsnSGFiaXRDb21wbGV0aW9uUmVzcG9uc2VEdG8nXTtcblxuLy8gUmVmbGVjdGlvbnNcbmV4cG9ydCB0eXBlIFJlZmxlY3Rpb25SZXNwb25zZSA9IGNvbXBvbmVudHNbJ3NjaGVtYXMnXVsnUmVmbGVjdGlvblJlc3BvbnNlRHRvJ107XG5leHBvcnQgdHlwZSBDcmVhdGVSZWZsZWN0aW9uUmVxdWVzdCA9IGNvbXBvbmVudHNbJ3NjaGVtYXMnXVsnQ3JlYXRlUmVmbGVjdGlvbkR0byddO1xuZXhwb3J0IHR5cGUgVXBkYXRlUmVmbGVjdGlvblJlcXVlc3QgPSBjb21wb25lbnRzWydzY2hlbWFzJ11bJ1VwZGF0ZVJlZmxlY3Rpb25EdG8nXTtcblxuLy8gQ3JhdmluZ3NcbmV4cG9ydCB0eXBlIENyYXZpbmdMb2dSZXNwb25zZSA9IGNvbXBvbmVudHNbJ3NjaGVtYXMnXVsnQ3JhdmluZ0xvZ1Jlc3BvbnNlRHRvJ107XG5leHBvcnQgdHlwZSBMb2dDcmF2aW5nUmVxdWVzdCA9IGNvbXBvbmVudHNbJ3NjaGVtYXMnXVsnTG9nQ3JhdmluZ0R0byddO1xuZXhwb3J0IHR5cGUgQ3JhdmluZ1N0YXRzUmVzcG9uc2UgPSBjb21wb25lbnRzWydzY2hlbWFzJ11bJ0NyYXZpbmdTdGF0c0R0byddO1xuXG4vLyBKb3VybmFsXG5leHBvcnQgdHlwZSBKb3VybmFsRW50cnlSZXNwb25zZSA9IGNvbXBvbmVudHNbJ3NjaGVtYXMnXVsnSm91cm5hbEVudHJ5UmVzcG9uc2VEdG8nXTtcbmV4cG9ydCB0eXBlIENyZWF0ZUpvdXJuYWxFbnRyeVJlcXVlc3QgPSBjb21wb25lbnRzWydzY2hlbWFzJ11bJ0NyZWF0ZUpvdXJuYWxFbnRyeUR0byddO1xuZXhwb3J0IHR5cGUgVXBkYXRlSm91cm5hbEVudHJ5UmVxdWVzdCA9IGNvbXBvbmVudHNbJ3NjaGVtYXMnXVsnVXBkYXRlSm91cm5hbEVudHJ5RHRvJ107XG5cbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbi8vIE1BUCBUWVBFU1xuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG5leHBvcnQgdHlwZSBNYXBNZW1iZXJSZXNwb25zZSA9IGNvbXBvbmVudHNbJ3NjaGVtYXMnXVsnTWFwTWVtYmVyRHRvJ107XG5leHBvcnQgdHlwZSBNYXBIdWJSZXNwb25zZSA9IGNvbXBvbmVudHNbJ3NjaGVtYXMnXVsnTWFwSHViRHRvJ107XG5leHBvcnQgdHlwZSBNYXBFdmVudFJlc3BvbnNlID0gY29tcG9uZW50c1snc2NoZW1hcyddWydNYXBFdmVudER0byddO1xuXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4vLyBBTUJBU1NBRE9SIFRZUEVTXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cbmV4cG9ydCB0eXBlIEFtYmFzc2Fkb3JSZXNwb25zZSA9IGNvbXBvbmVudHNbJ3NjaGVtYXMnXVsnQW1iYXNzYWRvclJlc3BvbnNlRHRvJ107XG5leHBvcnQgdHlwZSBBcHBseUFtYmFzc2Fkb3JSZXF1ZXN0ID0gY29tcG9uZW50c1snc2NoZW1hcyddWydBcHBseUFtYmFzc2Fkb3JEdG8nXTtcbmV4cG9ydCB0eXBlIFVwZGF0ZUFtYmFzc2Fkb3JSZXF1ZXN0ID0gY29tcG9uZW50c1snc2NoZW1hcyddWydVcGRhdGVBbWJhc3NhZG9yRHRvJ107XG5cbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbi8vIEdST1c5MCBUWVBFU1xuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG5leHBvcnQgdHlwZSBHcm93OTBFbnJvbGxtZW50UmVzcG9uc2UgPSBjb21wb25lbnRzWydzY2hlbWFzJ11bJ0dyb3c5MEVucm9sbG1lbnRSZXNwb25zZUR0byddO1xuZXhwb3J0IHR5cGUgR3JvdzkwUHJvZ3Jlc3NSZXNwb25zZSA9IGNvbXBvbmVudHNbJ3NjaGVtYXMnXVsnR3JvdzkwUHJvZ3Jlc3NSZXNwb25zZUR0byddO1xuZXhwb3J0IHR5cGUgR3JvdzkwVG9kYXlSZXNwb25zZSA9IGNvbXBvbmVudHNbJ3NjaGVtYXMnXVsnR3JvdzkwVG9kYXlSZXNwb25zZUR0byddO1xuZXhwb3J0IHR5cGUgR3JvdzkwU3RhdHNSZXNwb25zZSA9IGNvbXBvbmVudHNbJ3NjaGVtYXMnXVsnR3JvdzkwU3RhdHNSZXNwb25zZUR0byddO1xuZXhwb3J0IHR5cGUgRW5yb2xsR3JvdzkwUmVxdWVzdCA9IGNvbXBvbmVudHNbJ3NjaGVtYXMnXVsnRW5yb2xsR3JvdzkwRHRvJ107XG5leHBvcnQgdHlwZSBVcGRhdGVHcm93OTBQcm9ncmVzc1JlcXVlc3QgPSBjb21wb25lbnRzWydzY2hlbWFzJ11bJ1VwZGF0ZVByb2dyZXNzRHRvJ107XG5leHBvcnQgdHlwZSBVcGRhdGVHcm93OTBTZXR0aW5nc1JlcXVlc3QgPSBjb21wb25lbnRzWydzY2hlbWFzJ11bJ1VwZGF0ZVNldHRpbmdzRHRvJ107XG5cbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbi8vIE1BVENISU5HIFRZUEVTXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cbmV4cG9ydCB0eXBlIENyZWF0ZU1hdGNoUmVxdWVzdCA9IGNvbXBvbmVudHNbJ3NjaGVtYXMnXVsnQ3JlYXRlTWF0Y2hEdG8nXTtcbmV4cG9ydCB0eXBlIFVwZGF0ZU1hdGNoUmVxdWVzdCA9IGNvbXBvbmVudHNbJ3NjaGVtYXMnXVsnVXBkYXRlTWF0Y2hEdG8nXTtcbmV4cG9ydCB0eXBlIENyZWF0ZUJ1ZGR5UmVxdWVzdCA9IGNvbXBvbmVudHNbJ3NjaGVtYXMnXVsnQ3JlYXRlQnVkZHlSZXF1ZXN0RHRvJ107XG5leHBvcnQgdHlwZSBVcGRhdGVCdWRkeVJlcXVlc3QgPSBjb21wb25lbnRzWydzY2hlbWFzJ11bJ1VwZGF0ZUJ1ZGR5RHRvJ107XG5leHBvcnQgdHlwZSBMb2dCdWRkeUFjdGl2aXR5UmVxdWVzdCA9IGNvbXBvbmVudHNbJ3NjaGVtYXMnXVsnTG9nQnVkZHlBY3Rpdml0eUR0byddO1xuXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4vLyBFVkVOVCBDSEFUIFRZUEVTXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cbmV4cG9ydCB0eXBlIEV2ZW50Q2hhdFJlc3BvbnNlID0gY29tcG9uZW50c1snc2NoZW1hcyddWydFdmVudENoYXRSZXNwb25zZUR0byddO1xuZXhwb3J0IHR5cGUgQ2hhdE1lbWJlclJlc3BvbnNlID0gY29tcG9uZW50c1snc2NoZW1hcyddWydDaGF0TWVtYmVyUmVzcG9uc2VEdG8nXTtcbmV4cG9ydCB0eXBlIENoYXRNZXNzYWdlUmVzcG9uc2UgPSBjb21wb25lbnRzWydzY2hlbWFzJ11bJ0V2ZW50Q2hhdE1lc3NhZ2VSZXNwb25zZUR0byddO1xuZXhwb3J0IHR5cGUgUGFnaW5hdGVkTWVzc2FnZXNSZXNwb25zZSA9IGNvbXBvbmVudHNbJ3NjaGVtYXMnXVsnUGFnaW5hdGVkRXZlbnRDaGF0TWVzc2FnZXNEdG8nXTtcbmV4cG9ydCB0eXBlIFNlbmRDaGF0TWVzc2FnZVJlcXVlc3QgPSBjb21wb25lbnRzWydzY2hlbWFzJ11bJ1NlbmRFdmVudENoYXRNZXNzYWdlRHRvJ107XG5leHBvcnQgdHlwZSBVcGRhdGVDaGF0TWVzc2FnZVJlcXVlc3QgPSBjb21wb25lbnRzWydzY2hlbWFzJ11bJ1VwZGF0ZUV2ZW50Q2hhdE1lc3NhZ2VEdG8nXTtcbmV4cG9ydCB0eXBlIFVwZGF0ZUNoYXRTZXR0aW5nc1JlcXVlc3QgPSBjb21wb25lbnRzWydzY2hlbWFzJ11bJ1VwZGF0ZUNoYXRTZXR0aW5nc0R0byddO1xuZXhwb3J0IHR5cGUgVXBkYXRlTWVtYmVyU2V0dGluZ3NSZXF1ZXN0ID0gY29tcG9uZW50c1snc2NoZW1hcyddWydVcGRhdGVNZW1iZXJTZXR0aW5nc0R0byddO1xuXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4vLyBBRE1JTiBUWVBFU1xuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG5leHBvcnQgdHlwZSBBZG1pbkxvZ2luUmVxdWVzdCA9IGNvbXBvbmVudHNbJ3NjaGVtYXMnXVsnQWRtaW5Mb2dpbkR0byddO1xuZXhwb3J0IHR5cGUgQWRtaW5Ub2tlbnNSZXNwb25zZSA9IGNvbXBvbmVudHNbJ3NjaGVtYXMnXVsnQWRtaW5Ub2tlbnNEdG8nXTtcbmV4cG9ydCB0eXBlIEFkbWluVXBkYXRlVXNlclJlcXVlc3QgPSBjb21wb25lbnRzWydzY2hlbWFzJ11bJ0FkbWluVXBkYXRlVXNlckR0byddO1xuZXhwb3J0IHR5cGUgQWRtaW5DcmVhdGVIdWJSZXF1ZXN0ID0gY29tcG9uZW50c1snc2NoZW1hcyddWydBZG1pbkNyZWF0ZUh1YkR0byddO1xuZXhwb3J0IHR5cGUgQWRtaW5VcGRhdGVFdmVudFJlcXVlc3QgPSBjb21wb25lbnRzWydzY2hlbWFzJ11bJ0FkbWluVXBkYXRlRXZlbnREdG8nXTtcbmV4cG9ydCB0eXBlIEFkbWluQ3JlYXRlQ29udGVudFJlcXVlc3QgPSBjb21wb25lbnRzWydzY2hlbWFzJ11bJ0FkbWluQ3JlYXRlQ29udGVudER0byddO1xuZXhwb3J0IHR5cGUgQWRtaW5DcmVhdGVCdXNpbmVzc1JlcXVlc3QgPSBjb21wb25lbnRzWydzY2hlbWFzJ11bJ0FkbWluQ3JlYXRlQnVzaW5lc3NEdG8nXTtcbmV4cG9ydCB0eXBlIEFkbWluT3ZlcnZpZXdTdGF0c1Jlc3BvbnNlID0gY29tcG9uZW50c1snc2NoZW1hcyddWydBZG1pbk92ZXJ2aWV3U3RhdHNEdG8nXTtcblxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuLy8gQkFER0UgVFlQRVMgKGZyb20gZ2VuZXJhdGVkIE9wZW5BUEkgdHlwZXMpXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cbmV4cG9ydCB0eXBlIEJhZGdlUmVzcG9uc2UgPSBjb21wb25lbnRzWydzY2hlbWFzJ11bJ0JhZGdlUmVzcG9uc2VEdG8nXTtcbmV4cG9ydCB0eXBlIFVzZXJCYWRnZVJlc3BvbnNlID0gY29tcG9uZW50c1snc2NoZW1hcyddWydVc2VyQmFkZ2VSZXNwb25zZUR0byddO1xuZXhwb3J0IHR5cGUgQmFkZ2VQcm9ncmVzc1Jlc3BvbnNlID0gY29tcG9uZW50c1snc2NoZW1hcyddWydCYWRnZVByb2dyZXNzRHRvJ107XG5cbi8vIEFsaWFzIGZvciBTREsgY29uc2lzdGVuY3lcbmV4cG9ydCBpbnRlcmZhY2UgQmFkZ2VXaXRoUHJvZ3Jlc3Mge1xuICBiYWRnZTogQmFkZ2VSZXNwb25zZTtcbiAgY3VycmVudFByb2dyZXNzOiBudW1iZXI7XG4gIHJlcXVpcmVkUHJvZ3Jlc3M6IG51bWJlcjtcbiAgcGVyY2VudENvbXBsZXRlOiBudW1iZXI7XG4gIGlzRWFybmVkOiBib29sZWFuO1xufVxuXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4vLyBVTklGSUVEIFJFV0FSRCBUWVBFU1xuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG4vLyBSZWRlZW1UeXBlIGVudW0gLSBleHRyYWN0ZWQgZnJvbSBQcmlzbWEgdmlhIEFQSVxuZXhwb3J0IHR5cGUgUmVkZWVtVHlwZSA9ICdJTl9QRVJTT04nIHwgJ09OTElORScgfCAnQk9USCc7XG5cbi8vIFJld2FyZCByZXNwb25zZSB3aXRoIHJlbGF0aW9uc1xuZXhwb3J0IGludGVyZmFjZSBSZXdhcmRSZXNwb25zZSB7XG4gIGlkOiBzdHJpbmc7XG4gIHZlbnVlSWQ6IHN0cmluZyB8IG51bGw7XG4gIGJyYW5kSWQ6IHN0cmluZyB8IG51bGw7XG4gIGJhZGdlSWQ6IHN0cmluZztcbiAgdGl0bGU6IHN0cmluZztcbiAgZGVzY3JpcHRpb246IHN0cmluZyB8IG51bGw7XG4gIGNvZGU6IHN0cmluZyB8IG51bGw7XG4gIHJlZGVlbVR5cGU6IFJlZGVlbVR5cGU7XG4gIG1heFJlZGVtcHRpb25zOiBudW1iZXIgfCBudWxsO1xuICByZWRlbXB0aW9uc1VzZWQ6IG51bWJlcjtcbiAgcGVyVXNlckxpbWl0OiBudW1iZXI7XG4gIHZhbGlkRnJvbTogc3RyaW5nIHwgbnVsbDtcbiAgdmFsaWRVbnRpbDogc3RyaW5nIHwgbnVsbDtcbiAgaXNBY3RpdmU6IGJvb2xlYW47XG4gIGNyZWF0ZWRBdDogc3RyaW5nO1xuICBiYWRnZToge1xuICAgIGlkOiBzdHJpbmc7XG4gICAgbmFtZTogc3RyaW5nO1xuICAgIHNsdWc6IHN0cmluZztcbiAgICBpY29uOiBzdHJpbmcgfCBudWxsO1xuICB9O1xuICB2ZW51ZT86IHtcbiAgICBpZDogc3RyaW5nO1xuICAgIG5hbWU6IHN0cmluZztcbiAgICBzbHVnOiBzdHJpbmc7XG4gICAgcHJvZmlsZUltYWdlOiBzdHJpbmcgfCBudWxsO1xuICAgIGFkZHJlc3M6IHN0cmluZyB8IG51bGw7XG4gIH0gfCBudWxsO1xuICBicmFuZD86IHtcbiAgICBpZDogc3RyaW5nO1xuICAgIG5hbWU6IHN0cmluZztcbiAgICBzbHVnOiBzdHJpbmc7XG4gICAgbG9nb1VybDogc3RyaW5nIHwgbnVsbDtcbiAgfSB8IG51bGw7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgUmV3YXJkUmVkZW1wdGlvblJlc3BvbnNlIHtcbiAgaWQ6IHN0cmluZztcbiAgdXNlcklkOiBzdHJpbmc7XG4gIHJld2FyZElkOiBzdHJpbmc7XG4gIHJlZGVlbWVkQXQ6IHN0cmluZztcbiAgdmVyaWZpZWRBdDogc3RyaW5nIHwgbnVsbDtcbiAgdmVyaWZpZWRCeTogc3RyaW5nIHwgbnVsbDtcbiAgY29kZVVzZWQ6IHN0cmluZyB8IG51bGw7XG4gIHJld2FyZDogUmV3YXJkUmVzcG9uc2U7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgQ3JlYXRlUmV3YXJkUmVxdWVzdCB7XG4gIGJhZGdlSWQ6IHN0cmluZztcbiAgdGl0bGU6IHN0cmluZztcbiAgZGVzY3JpcHRpb24/OiBzdHJpbmc7XG4gIGNvZGU/OiBzdHJpbmc7XG4gIHJlZGVlbVR5cGU/OiBSZWRlZW1UeXBlO1xuICBtYXhSZWRlbXB0aW9ucz86IG51bWJlcjtcbiAgcGVyVXNlckxpbWl0PzogbnVtYmVyO1xuICB2YWxpZEZyb20/OiBzdHJpbmc7XG4gIHZhbGlkVW50aWw/OiBzdHJpbmc7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgVXBkYXRlUmV3YXJkUmVxdWVzdCB7XG4gIHRpdGxlPzogc3RyaW5nO1xuICBkZXNjcmlwdGlvbj86IHN0cmluZztcbiAgY29kZT86IHN0cmluZztcbiAgcmVkZWVtVHlwZT86IFJlZGVlbVR5cGU7XG4gIG1heFJlZGVtcHRpb25zPzogbnVtYmVyO1xuICBwZXJVc2VyTGltaXQ/OiBudW1iZXI7XG4gIHZhbGlkRnJvbT86IHN0cmluZztcbiAgdmFsaWRVbnRpbD86IHN0cmluZztcbiAgaXNBY3RpdmU/OiBib29sZWFuO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFVzZXJXYWxsZXRSZXNwb25zZSB7XG4gIGJhZGdlczogQXJyYXk8e1xuICAgIGlkOiBzdHJpbmc7XG4gICAgYmFkZ2VJZDogc3RyaW5nO1xuICAgIHVzZXJJZDogc3RyaW5nO1xuICAgIGF3YXJkZWRBdDogc3RyaW5nO1xuICAgIGJhZGdlOiBCYWRnZVJlc3BvbnNlO1xuICAgIGF2YWlsYWJsZVJld2FyZHM6IFJld2FyZFJlc3BvbnNlW107XG4gICAgcmVkZWVtZWRSZXdhcmRzOiBBcnJheTxSZXdhcmRSZWRlbXB0aW9uUmVzcG9uc2UgJiB7IHFyVG9rZW46IHN0cmluZyB9PjtcbiAgfT47XG4gIHN0YXRzOiB7XG4gICAgdG90YWxCYWRnZXM6IG51bWJlcjtcbiAgICB0b3RhbEF2YWlsYWJsZVJld2FyZHM6IG51bWJlcjtcbiAgICB0b3RhbFJlZGVlbWVkUmV3YXJkczogbnVtYmVyO1xuICB9O1xufVxuXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4vLyBMRUdBQ1kgVFlQRVMgKGRlcHJlY2F0ZWQgLSB1c2UgdW5pZmllZCB0eXBlcylcbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuLyoqIEBkZXByZWNhdGVkIFVzZSBSZXdhcmRSZXNwb25zZSBpbnN0ZWFkICovXG5leHBvcnQgaW50ZXJmYWNlIFBhcnRuZXJSZXdhcmRSZXNwb25zZSB7XG4gIGlkOiBzdHJpbmc7XG4gIGJ1c2luZXNzSWQ6IHN0cmluZztcbiAgYmFkZ2VJZDogc3RyaW5nO1xuICB0aXRsZTogc3RyaW5nO1xuICBkZXNjcmlwdGlvbjogc3RyaW5nIHwgbnVsbDtcbiAgY29kZTogc3RyaW5nIHwgbnVsbDtcbiAgbWF4UmVkZW1wdGlvbnM6IG51bWJlciB8IG51bGw7XG4gIHJlZGVtcHRpb25zVXNlZDogbnVtYmVyO1xuICBwZXJVc2VyTGltaXQ6IG51bWJlcjtcbiAgdmFsaWRGcm9tOiBzdHJpbmc7XG4gIHZhbGlkVW50aWw6IHN0cmluZyB8IG51bGw7XG4gIGlzQWN0aXZlOiBib29sZWFuO1xuICBjcmVhdGVkQXQ6IHN0cmluZztcbiAgYmFkZ2U6IHtcbiAgICBpZDogc3RyaW5nO1xuICAgIG5hbWU6IHN0cmluZztcbiAgICBzbHVnOiBzdHJpbmc7XG4gICAgaWNvbjogc3RyaW5nIHwgbnVsbDtcbiAgfTtcbiAgYnVzaW5lc3M6IHtcbiAgICBpZDogc3RyaW5nO1xuICAgIG5hbWU6IHN0cmluZztcbiAgICBwcm9maWxlSW1hZ2U6IHN0cmluZyB8IG51bGw7XG4gIH07XG59XG5cbi8qKiBAZGVwcmVjYXRlZCBVc2UgUmV3YXJkUmVkZW1wdGlvblJlc3BvbnNlIGluc3RlYWQgKi9cbmV4cG9ydCBpbnRlcmZhY2UgUGFydG5lclJld2FyZFJlZGVtcHRpb25SZXNwb25zZSB7XG4gIGlkOiBzdHJpbmc7XG4gIHVzZXJJZDogc3RyaW5nO1xuICBwYXJ0bmVyUmV3YXJkSWQ6IHN0cmluZztcbiAgcmVkZWVtZWRBdDogc3RyaW5nO1xuICB2ZXJpZmllZEF0OiBzdHJpbmcgfCBudWxsO1xuICBwYXJ0bmVyUmV3YXJkOiBQYXJ0bmVyUmV3YXJkUmVzcG9uc2U7XG59XG5cbi8qKiBAZGVwcmVjYXRlZCBVc2UgQ3JlYXRlUmV3YXJkUmVxdWVzdCBpbnN0ZWFkICovXG5leHBvcnQgaW50ZXJmYWNlIENyZWF0ZVBhcnRuZXJSZXdhcmRSZXF1ZXN0IHtcbiAgYmFkZ2VJZDogc3RyaW5nO1xuICB0aXRsZTogc3RyaW5nO1xuICBkZXNjcmlwdGlvbj86IHN0cmluZztcbiAgY29kZT86IHN0cmluZztcbiAgbWF4UmVkZW1wdGlvbnM/OiBudW1iZXI7XG4gIHBlclVzZXJMaW1pdD86IG51bWJlcjtcbiAgdmFsaWRVbnRpbD86IHN0cmluZztcbn1cblxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuLy8gUkUtRVhQT1JUU1xuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG4vLyBSZS1leHBvcnQgcGF0aHMgYW5kIGNvbXBvbmVudHMgZm9yIGFkdmFuY2VkIHVzYWdlXG5leHBvcnQgdHlwZSB7IHBhdGhzLCBjb21wb25lbnRzIH07XG4iXX0=
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@growsober/sdk",
3
- "version": "1.0.21",
3
+ "version": "1.0.23",
4
4
  "description": "Shared TypeScript SDK for GrowSober API - TanStack Query hooks, API client, and utilities",
5
5
  "main": "dist/index.js",
6
6
  "module": "dist/index.js",
@@ -50,7 +50,8 @@
50
50
  "zod": "^3.0.0"
51
51
  },
52
52
  "dependencies": {
53
- "@growsober/types": "^1.0.9"
53
+ "@growsober/sdk": "^1.0.22",
54
+ "@growsober/types": "^1.0.10"
54
55
  },
55
56
  "devDependencies": {
56
57
  "@tanstack/react-query": "^5.90.16",
@@ -64,7 +64,7 @@ export function useCreateBooking(
64
64
  if (ticketCount) data.ticketCount = ticketCount;
65
65
  if (notes) data.notes = notes;
66
66
  const response = await client.post(`/api/v1/events/${eventId}/book`, data);
67
- return response.data;
67
+ return response.data?.data || response.data;
68
68
  },
69
69
  onSuccess: (newBooking, variables, context) => {
70
70
  // Invalidate user's bookings list
@@ -138,6 +138,34 @@ export function useCancelBooking(
138
138
  });
139
139
  }
140
140
 
141
+ /**
142
+ * Create a Stripe payment intent for a paid event booking
143
+ */
144
+ export function useCreateEventPaymentIntent(
145
+ options?: Omit<
146
+ UseMutationOptions<
147
+ { clientSecret: string; paymentIntentId: string },
148
+ Error,
149
+ { eventId: string; bookingId: string }
150
+ >,
151
+ 'mutationFn'
152
+ >
153
+ ) {
154
+ return useMutation({
155
+ mutationFn: async (vars: {
156
+ eventId: string;
157
+ bookingId: string;
158
+ }): Promise<{ clientSecret: string; paymentIntentId: string }> => {
159
+ const client = getApiClient();
160
+ const response = await client.post(
161
+ `/api/v1/events/${vars.eventId}/book/${vars.bookingId}/payment-intent`
162
+ );
163
+ return response.data?.data || response.data;
164
+ },
165
+ ...options,
166
+ });
167
+ }
168
+
141
169
  /**
142
170
  * Check in a booking
143
171
  *
@@ -20,6 +20,8 @@ import type {
20
20
  CreateReflectionRequest,
21
21
  CravingLogResponse,
22
22
  LogCravingRequest,
23
+ JournalEntryResponse,
24
+ CreateJournalEntryRequest,
23
25
  } from '../types';
24
26
  import { supportKeys } from '../queries/support';
25
27
 
@@ -432,3 +434,38 @@ export function useLogCraving(
432
434
  ...options,
433
435
  });
434
436
  }
437
+
438
+ /**
439
+ * Create a journal entry
440
+ *
441
+ * @example
442
+ * ```tsx
443
+ * const { mutate, isPending } = useCreateJournalEntry();
444
+ *
445
+ * mutate({
446
+ * content: 'Today I felt grateful...',
447
+ * title: 'Gratitude',
448
+ * mood: 4
449
+ * });
450
+ * ```
451
+ */
452
+ export function useCreateJournalEntry(
453
+ options?: Omit<
454
+ UseMutationOptions<JournalEntryResponse, Error, CreateJournalEntryRequest>,
455
+ 'mutationFn'
456
+ >
457
+ ): UseMutationResult<JournalEntryResponse, Error, CreateJournalEntryRequest> {
458
+ const queryClient = useQueryClient();
459
+
460
+ return useMutation({
461
+ mutationFn: async (data: CreateJournalEntryRequest): Promise<JournalEntryResponse> => {
462
+ const client = getApiClient();
463
+ const response = await client.post('/api/v1/support/journal', data);
464
+ return response.data;
465
+ },
466
+ onSuccess: (newEntry, variables, context) => {
467
+ queryClient.invalidateQueries({ queryKey: supportKeys.journalEntries() });
468
+ },
469
+ ...options,
470
+ });
471
+ }
@@ -86,7 +86,7 @@ export function useBusinesses(
86
86
  const response = await client.get('/api/v1/businesses', {
87
87
  params: filters,
88
88
  });
89
- return response.data;
89
+ return response.data?.data || response.data;
90
90
  },
91
91
  ...options,
92
92
  });
@@ -23,6 +23,8 @@ export const creatorKeys = {
23
23
  byUser: (userId: string) => [...creatorKeys.all, 'user', userId] as const,
24
24
  me: () => [...creatorKeys.all, 'me'] as const,
25
25
  availability: (creatorId: string) => [...creatorKeys.detail(creatorId), 'availability'] as const,
26
+ availableDates: (creatorId: string, from: string, to: string) => [...creatorKeys.detail(creatorId), 'available-dates', from, to] as const,
27
+ availableSlots: (creatorId: string, date: string, durationMinutes: number) => [...creatorKeys.detail(creatorId), 'available-slots', date, durationMinutes] as const,
26
28
  content: (creatorId: string) => [...creatorKeys.detail(creatorId), 'content'] as const,
27
29
  allContent: (creatorId: string) => [...creatorKeys.detail(creatorId), 'content', 'all'] as const,
28
30
  events: (creatorId: string) => [...creatorKeys.detail(creatorId), 'events'] as const,
@@ -91,7 +93,7 @@ export function useCreators(
91
93
  const response = await client.get('/api/v1/creators', {
92
94
  params: filters,
93
95
  });
94
- return response.data;
96
+ return response.data?.data || response.data;
95
97
  },
96
98
  ...options,
97
99
  });
@@ -229,6 +231,74 @@ export function useCreatorAvailability(
229
231
  });
230
232
  }
231
233
 
234
+ // ============================================================================
235
+ // AVAILABILITY-AWARE SCHEDULING
236
+ // ============================================================================
237
+
238
+ export interface AvailableDateEntry {
239
+ date: string;
240
+ hasAvailability: boolean;
241
+ }
242
+
243
+ export interface AvailableDatesResponse {
244
+ dates: AvailableDateEntry[];
245
+ }
246
+
247
+ export interface AvailableSlotEntry {
248
+ startTime: string;
249
+ endTime: string;
250
+ available: boolean;
251
+ }
252
+
253
+ export interface AvailableSlotsResponse {
254
+ date: string;
255
+ slots: AvailableSlotEntry[];
256
+ }
257
+
258
+ /**
259
+ * Get dates with availability for a creator in a date range
260
+ */
261
+ export function useCreatorAvailableDates(
262
+ creatorId: string,
263
+ params: { from: string; to: string },
264
+ options?: Omit<UseQueryOptions<AvailableDatesResponse>, 'queryKey' | 'queryFn'>
265
+ ) {
266
+ return useQuery({
267
+ queryKey: creatorKeys.availableDates(creatorId, params.from, params.to),
268
+ queryFn: async (): Promise<AvailableDatesResponse> => {
269
+ const client = getApiClient();
270
+ const response = await client.get(`/api/v1/creators/${creatorId}/available-dates`, {
271
+ params,
272
+ });
273
+ return response.data;
274
+ },
275
+ enabled: !!creatorId && !!params.from && !!params.to,
276
+ ...options,
277
+ });
278
+ }
279
+
280
+ /**
281
+ * Get available time slots for a creator on a specific date
282
+ */
283
+ export function useCreatorAvailableSlots(
284
+ creatorId: string,
285
+ params: { date: string; durationMinutes?: number },
286
+ options?: Omit<UseQueryOptions<AvailableSlotsResponse>, 'queryKey' | 'queryFn'>
287
+ ) {
288
+ return useQuery({
289
+ queryKey: creatorKeys.availableSlots(creatorId, params.date, params.durationMinutes || 60),
290
+ queryFn: async (): Promise<AvailableSlotsResponse> => {
291
+ const client = getApiClient();
292
+ const response = await client.get(`/api/v1/creators/${creatorId}/available-slots`, {
293
+ params,
294
+ });
295
+ return response.data;
296
+ },
297
+ enabled: !!creatorId && !!params.date,
298
+ ...options,
299
+ });
300
+ }
301
+
232
302
  /**
233
303
  * Get a creator's published library content
234
304
  *
@@ -30,8 +30,8 @@ export function useEventChat(eventId: string | undefined) {
30
30
  queryFn: async () => {
31
31
  if (!eventId) throw new Error('Event ID is required');
32
32
  const client = getApiClient();
33
- const response = await client.get<EventChatResponse>(`/api/v1/events/${eventId}/chat`);
34
- return response.data;
33
+ const response = await client.get(`/api/v1/events/${eventId}/chat`);
34
+ return (response.data?.data || response.data) as EventChatResponse;
35
35
  },
36
36
  enabled: !!eventId,
37
37
  });
@@ -46,8 +46,8 @@ export function useEventChatMembers(eventId: string | undefined) {
46
46
  queryFn: async () => {
47
47
  if (!eventId) throw new Error('Event ID is required');
48
48
  const client = getApiClient();
49
- const response = await client.get<ChatMemberResponse[]>(`/api/v1/events/${eventId}/chat/members`);
50
- return response.data;
49
+ const response = await client.get(`/api/v1/events/${eventId}/chat/members`);
50
+ return (response.data?.data || response.data) as ChatMemberResponse[];
51
51
  },
52
52
  enabled: !!eventId,
53
53
  });
@@ -66,10 +66,10 @@ export function useEventChatMessages(eventId: string | undefined, limit = 50) {
66
66
  if (pageParam) {
67
67
  params.append('cursor', pageParam);
68
68
  }
69
- const response = await client.get<PaginatedMessagesResponse>(
69
+ const response = await client.get(
70
70
  `/api/v1/events/${eventId}/chat/messages?${params.toString()}`
71
71
  );
72
- return response.data;
72
+ return (response.data?.data || response.data) as PaginatedMessagesResponse;
73
73
  },
74
74
  initialPageParam: undefined as string | undefined,
75
75
  getNextPageParam: (lastPage) => lastPage.nextCursor,
@@ -162,7 +162,7 @@ export function useUpcomingEvents(
162
162
  const response = await client.get('/api/v1/events/upcoming', {
163
163
  params: { limit },
164
164
  });
165
- return response.data;
165
+ return response.data?.data || response.data;
166
166
  },
167
167
  ...options,
168
168
  });
@@ -9,6 +9,7 @@ import type {
9
9
  ReflectionResponse,
10
10
  CravingLogResponse,
11
11
  CravingStatsResponse,
12
+ JournalEntryResponse,
12
13
  } from '../types';
13
14
 
14
15
  // ============================================================================
@@ -27,6 +28,7 @@ export const supportKeys = {
27
28
  winsByCategory: () => [...supportKeys.wins(), 'by-category'] as const,
28
29
  habits: () => [...supportKeys.all, 'habits'] as const,
29
30
  reflections: () => [...supportKeys.all, 'reflections'] as const,
31
+ journalEntries: () => [...supportKeys.all, 'journal'] as const,
30
32
  };
31
33
 
32
34
  // ============================================================================
@@ -287,3 +289,25 @@ export function useCravingStats(
287
289
  ...options,
288
290
  });
289
291
  }
292
+
293
+ /**
294
+ * Get journal entries for the current user
295
+ *
296
+ * @example
297
+ * ```tsx
298
+ * const { data, isLoading } = useJournalEntries();
299
+ * ```
300
+ */
301
+ export function useJournalEntries(
302
+ options?: Omit<UseQueryOptions<JournalEntryResponse[]>, 'queryKey' | 'queryFn'>
303
+ ) {
304
+ return useQuery({
305
+ queryKey: supportKeys.journalEntries(),
306
+ queryFn: async (): Promise<JournalEntryResponse[]> => {
307
+ const client = getApiClient();
308
+ const response = await client.get('/api/v1/support/journal');
309
+ return response.data;
310
+ },
311
+ ...options,
312
+ });
313
+ }
package/src/api/types.ts CHANGED
@@ -329,6 +329,11 @@ export type CravingLogResponse = components['schemas']['CravingLogResponseDto'];
329
329
  export type LogCravingRequest = components['schemas']['LogCravingDto'];
330
330
  export type CravingStatsResponse = components['schemas']['CravingStatsDto'];
331
331
 
332
+ // Journal
333
+ export type JournalEntryResponse = components['schemas']['JournalEntryResponseDto'];
334
+ export type CreateJournalEntryRequest = components['schemas']['CreateJournalEntryDto'];
335
+ export type UpdateJournalEntryRequest = components['schemas']['UpdateJournalEntryDto'];
336
+
332
337
  // ============================================================================
333
338
  // MAP TYPES
334
339
  // ============================================================================